<?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>223607</bug_id>
          
          <creation_ts>2021-03-22 15:16:20 -0700</creation_ts>
          <short_desc>Update googletest to 1a8ecf1</short_desc>
          <delta_ts>2021-03-23 11:46:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=175722</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>annulen</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742511</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 15:16:20 -0700</bug_when>
    <thetext>Update googletest to 1a8ecf1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742514</commentid>
    <comment_count>1</comment_count>
      <attachid>423946</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 15:20:41 -0700</bug_when>
    <thetext>Created attachment 423946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742523</commentid>
    <comment_count>2</comment_count>
      <attachid>423950</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 15:37:24 -0700</bug_when>
    <thetext>Created attachment 423950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742526</commentid>
    <comment_count>3</comment_count>
      <attachid>423952</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 15:51:25 -0700</bug_when>
    <thetext>Created attachment 423952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742568</commentid>
    <comment_count>4</comment_count>
      <attachid>423961</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 16:48:42 -0700</bug_when>
    <thetext>Created attachment 423961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742604</commentid>
    <comment_count>5</comment_count>
      <attachid>423970</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-03-22 17:30:58 -0700</bug_when>
    <thetext>Created attachment 423970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742921</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-23 11:45:31 -0700</bug_when>
    <thetext>Committed r274887: &lt;https://commits.webkit.org/r274887&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423970.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742922</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-23 11:46:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/75747694&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423946</attachid>
            <date>2021-03-22 15:20:41 -0700</date>
            <delta_ts>2021-03-22 15:46:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223607-20210322152039.patch</filename>
            <type>text/plain</type>
            <size>2169315</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYTFjYTlkYWNh
YzdmNjQzODM5NjY0MTg5YWUyYTZkMmFhYWQ3N2RiYS4uMmI2NGFlNzNmNzczYjJjODUyOGRjODZj
ZjkyNjk3OGMzZjg0Yzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIx
LTAzLTIyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBVcGRhdGUgZ29vZ2xldGVzdCB0byAxYThlY2YxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ZXN0LzoKKyAgICAgICAgVXBkYXRlIGdvb2dsZXRl
c3QsIGJ1dC4uLgorCisgICAgICAgICogZ3Rlc3QvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIEtl
ZXAgb3VyIG93biBjb3B5LCBqdXN0IGFkZCB0aGUgbmV3IHNvdXJjZSBmaWxlLgorCisgICAgICAg
ICogZ3Rlc3QvUkVBRE1FLldlYktpdDogUmVtb3ZlZC4KKyAgICAgICAgKiBndGVzdC9jaGFuZ2Vz
LmRpZmY6IFJlbW92ZWQuCisgICAgICAgIEl0IGFwcGVhcnMgdGhhdCBvdXIgZml4IGZvciBGcmVl
QlNEIGhhcyBiZWVuIHVwc3RyZWFtZWQuCisKIDIwMjEtMDItMjQgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxpbmtlciB3YXJuaW5ncyBidWls
ZGluZyBndGVzdCBmb3IgbWFjQ2F0YWx5c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L0NIQU5HRVMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9DSEFOR0VTCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTUyMTMyNDIxMmM5MTI4N2Q5MjQ0ZDQ0YmFiMzA2ZGI2
NjRiYWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NIQU5HRVMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAs
MCBAQAotQ2hhbmdlcyBmb3IgMS43LjA6Ci0KLSogTmV3IGZlYXR1cmU6IGRlYXRoIHRlc3RzIGFy
ZSBzdXBwb3J0ZWQgb24gT3BlbkJTRCBhbmQgaW4gaU9TCi0gIHNpbXVsYXRvciBub3cuCi0qIE5l
dyBmZWF0dXJlOiBHb29nbGUgVGVzdCBub3cgaW1wbGVtZW50cyBhIHByb3RvY29sIHRvIGFsbG93
Ci0gIGEgdGVzdCBydW5uZXIgdG8gZGV0ZWN0IHRoYXQgYSB0ZXN0IHByb2dyYW0gaGFzIGV4aXRl
ZAotICBwcmVtYXR1cmVseSBhbmQgcmVwb3J0IGl0IGFzIGEgZmFpbHVyZSAoYmVmb3JlIGl0IHdv
dWxkIGJlCi0gIGZhbHNlbHkgcmVwb3J0ZWQgYXMgYSBzdWNjZXNzIGlmIHRoZSBleGl0IGNvZGUg
aXMgMCkuCi0qIE5ldyBmZWF0dXJlOiBUZXN0OjpSZWNvcmRQcm9wZXJ0eSgpIGNhbiBub3cgYmUg
dXNlZCBvdXRzaWRlIG9mIHRoZQotICBsaWZlc3BhbiBvZiBhIHRlc3QgbWV0aG9kLCBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0bwotICB0aGUgY3VycmVudCB0ZXN0IGNhc2Ug
b3IgdGhlIHRlc3QgcHJvZ3JhbSBpbiB0aGUgWE1MIHJlcG9ydC4KLSogTmV3IGZlYXR1cmUgKHBv
dGVudGlhbGx5IGJyZWFraW5nKTogLS1ndGVzdF9saXN0X3Rlc3RzIG5vdyBwcmludHMKLSAgdGhl
IHR5cGUgcGFyYW1ldGVycyBhbmQgdmFsdWUgcGFyYW1ldGVycyBmb3IgZWFjaCB0ZXN0LgotKiBJ
bXByb3ZlbWVudDogY2hhciBwb2ludGVycyBhbmQgY2hhciBhcnJheXMgYXJlIG5vdyBlc2NhcGVk
IHByb3Blcmx5Ci0gIGluIGZhaWx1cmUgbWVzc2FnZXMuCi0qIEltcHJvdmVtZW50OiBmYWlsdXJl
IHN1bW1hcnkgaW4gWE1MIHJlcG9ydHMgbm93IGluY2x1ZGVzIGZpbGUgYW5kCi0gIGxpbmUgaW5m
b3JtYXRpb24uCi0qIEltcHJvdmVtZW50OiB0aGUgPHRlc3RzdWl0ZXM+IFhNTCBlbGVtZW50IG5v
dyBoYXMgYSB0aW1lc3RhbXAgYXR0cmlidXRlLgotKiBJbXByb3ZlbWVudDogV2hlbiAtLWd0ZXN0
X2ZpbHRlciBpcyBzcGVjaWZpZWQsIFhNTCByZXBvcnQgbm93IGRvZXNuJ3QKLSAgY29udGFpbiBp
bmZvcm1hdGlvbiBhYm91dCB0ZXN0cyB0aGF0IGFyZSBmaWx0ZXJlZCBvdXQuCi0qIEZpeGVkIHRo
ZSBidWcgd2hlcmUgbG9uZyAtLWd0ZXN0X2ZpbHRlciBmbGFnIHZhbHVlcyBhcmUgdHJ1bmNhdGVk
IGluCi0gIGRlYXRoIHRlc3RzLgotKiBQb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2U6IFJVTl9B
TExfVEVTVFMoKSBpcyBub3cgaW1wbGVtZW50ZWQgYXMgYQotICBmdW5jdGlvbiBpbnN0ZWFkIG9m
IGEgbWFjcm8gaW4gb3JkZXIgdG8gd29yayBiZXR0ZXIgd2l0aCBDbGFuZy4KLSogQ29tcGF0aWJp
bGl0eSBmaXhlcyB3aXRoIEMrKyAxMSBhbmQgdmFyaW91cyBwbGF0Zm9ybXMuCi0qIEJ1Zy93YXJu
aW5nIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjYuMDoKLQotKiBOZXcgZmVhdHVyZTogQUREX0ZB
SUxVUkVfQVQoKSBmb3IgcmVwb3J0aW5nIGEgdGVzdCBmYWlsdXJlIGF0IHRoZQotICBnaXZlbiBz
b3VyY2UgbG9jYXRpb24gLS0gdXNlZnVsIGZvciB3cml0aW5nIHRlc3RpbmcgdXRpbGl0aWVzLgot
KiBOZXcgZmVhdHVyZTogdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyIGlzIG1vdmVkIGZyb20g
R29vZ2xlIE1vY2sKLSAgdG8gR29vZ2xlIFRlc3QuCi0qIE5ldyBmZWF0dXJlOiB0eXBlIHBhcmFt
ZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgYXJlIHJlcG9ydGVkIGluCi0gIHRoZSBYTUwgcmVw
b3J0IG5vdy4KLSogQSBndGVzdF9kaXNhYmxlX3B0aHJlYWRzIENNYWtlIG9wdGlvbi4KLSogQ29s
b3JlZCBvdXRwdXQgd29ya3MgaW4gR05VIFNjcmVlbiBzZXNzaW9ucyBub3cuCi0qIFBhcmFtZXRl
cnMgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgbm93IHByaW50ZWQgaW4gdGhlCi0g
IHRleHR1YWwgb3V0cHV0LgotKiBGYWlsdXJlcyBmcm9tIGFkIGhvYyB0ZXN0IGFzc2VydGlvbnMg
cnVuIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgYXJlCi0gIG5vdyBjb3JyZWN0bHkgcmVwb3J0ZWQu
Ci0qIEFyZ3VtZW50cyBvZiBBU1NFUlRfWFkgYW5kIEVYUEVDVF9YWSBubyBsb25nZXIgbmVlZCB0
byBzdXBwb3J0IDw8IHRvCi0gIG9zdHJlYW0uCi0qIE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2Yg
ZXhjZXB0aW9ucy4KLSogR1RFU1RfQVNTRVJUX1hZIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgQVNT
RVJUX1hZIGluIGNhc2UgdGhlIGxhdHRlcgotICBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90
aGVyIGxpYnJhcnkuCi0qIC0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucyBpcyBub3cgdHJ1ZSBieSBk
ZWZhdWx0LCBhbGxvd2luZyBhIHRlc3QKLSAgcHJvZ3JhbSB0byBjb250aW51ZSBhZnRlciBhbiBl
eGNlcHRpb24gaXMgdGhyb3duLgotKiBWYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZXMg
Y2FuIG5vdyBkZXJpdmUgZnJvbSBUZXN0IGFuZAotICBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gc2Vw
YXJhdGVseSwgZWFzaW5nIGNvbnZlcnNpb24gb2YgbGVnYWN5IHRlc3RzLgotKiBEZWF0aCB0ZXN0
IG1lc3NhZ2VzIGFyZSBjbGVhcmx5IG1hcmtlZCB0byBtYWtlIHRoZW0gbW9yZQotICBkaXN0aW5n
dWlzaGFibGUgZnJvbSBvdGhlciBtZXNzYWdlcy4KLSogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3Ig
QW5kcm9pZCwgR29vZ2xlIE5hdGl2ZSBDbGllbnQsIE1pbkdXLCBIUCBVWCwKLSAgUG93ZXJQQywg
THVjaWQgYXV0b3Rvb2xzLCBsaWJDU3RkLCBTdW4gQysrLCBCb3JsYW5kIEMrKyBCdWlsZGVyIChD
b2RlIEdlYXIpLAotICBJQk0gWEwgQysrIChWaXN1YWwgQWdlIEMrKyksIGFuZCBDKysweC4KLSog
QnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0qIFBvdGVudGlhbGx5IGlu
Y29tcGF0aWJsZSBjaGFuZ2VzOiBkaXNhYmxlcyB0aGUgaGFybWZ1bCAnbWFrZSBpbnN0YWxsJwot
ICBjb21tYW5kIGluIGF1dG90b29scy4KLQotQ2hhbmdlcyBmb3IgMS41LjA6Ci0KLSAqIE5ldyBm
ZWF0dXJlOiBhc3NlcnRpb25zIGNhbiBiZSBzYWZlbHkgY2FsbGVkIGluIG11bHRpcGxlIHRocmVh
ZHMKLSAgIHdoZXJlIHRoZSBwdGhyZWFkcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4KLSAqIE5ldyBm
ZWF0dXJlOiBwcmVkaWNhdGVzIHVzZWQgaW5zaWRlIEVYUEVDVF9UUlVFKCkgYW5kIGZyaWVuZHMK
LSAgIGNhbiBub3cgZ2VuZXJhdGUgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZXMuCi0gKiBOZXcgZmVh
dHVyZTogR29vZ2xlIFRlc3QgY2FuIG5vdyBiZSBjb21waWxlZCBhcyBhIERMTC4KLSAqIE5ldyBm
ZWF0dXJlOiBmdXNlZCBzb3VyY2UgZmlsZXMgYXJlIGluY2x1ZGVkLgotICogTmV3IGZlYXR1cmU6
IHByaW50cyBoZWxwIHdoZW4gZW5jb3VudGVyaW5nIHVucmVjb2duaXplZCBHb29nbGUgVGVzdCBm
bGFncy4KLSAqIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBDTWFrZSBidWlsZCBzY3JpcHQgKHJlcXVp
cmVzIENNYWtlIDIuNi40KykuCi0gKiBFeHBlcmltZW50YWwgZmVhdHVyZTogdGhlIFB1bXAgc2Ny
aXB0IGZvciBtZXRhIHByb2dyYW1taW5nLgotICogZG91YmxlIHZhbHVlcyBzdHJlYW1lZCB0byBh
biBhc3NlcnRpb24gYXJlIHByaW50ZWQgd2l0aCBlbm91Z2ggcHJlY2lzaW9uCi0gICB0byBkaWZm
ZXJlbnRpYXRlIGFueSB0d28gZGlmZmVyZW50IHZhbHVlcy4KLSAqIEdvb2dsZSBUZXN0IG5vdyB3
b3JrcyBvbiBTb2xhcmlzIGFuZCBBSVguCi0gKiBCdWlsZCBhbmQgdGVzdCBzY3JpcHQgaW1wcm92
ZW1lbnRzLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0KLSBQ
b3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzOgotCi0gKiBTdG9wcGVkIHN1cHBvcnRpbmcgVkMr
KyA3LjEgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLgotICogRHJvcHBlZCBzdXBwb3J0IGZvciAn
bWFrZSBpbnN0YWxsJy4KLQotQ2hhbmdlcyBmb3IgMS40LjA6Ci0KLSAqIE5ldyBmZWF0dXJlOiB0
aGUgZXZlbnQgbGlzdGVuZXIgQVBJCi0gKiBOZXcgZmVhdHVyZTogdGVzdCBzaHVmZmxpbmcKLSAq
IE5ldyBmZWF0dXJlOiB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgaXMgY2xvc2VyIHRvIGp1bml0cmVw
b3J0IGFuZCBjYW4KLSAgIGJlIHBhcnNlZCBieSBIdWRzb24gbm93LgotICogTmV3IGZlYXR1cmU6
IHdoZW4gYSB0ZXN0IHJ1bnMgdW5kZXIgVmlzdWFsIFN0dWRpbywgaXRzIGZhaWx1cmVzIGFyZQot
ICAgaW50ZWdyYXRlZCBpbiB0aGUgSURFLgotICogTmV3IGZlYXR1cmU6IC9NRChkKSB2ZXJzaW9u
cyBvZiBWQysrIHByb2plY3RzLgotICogTmV3IGZlYXR1cmU6IGVsYXBzZWQgdGltZSBmb3IgdGhl
IHRlc3RzIGlzIHByaW50ZWQgYnkgZGVmYXVsdC4KLSAqIE5ldyBmZWF0dXJlOiBjb21lcyB3aXRo
IGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uIHN1Y2ggdGhhdCBCb29zdAotICAgaXMgbm8gbG9u
Z2VyIG5lZWRlZCBmb3IgQ29tYmluZSgpLgotICogTmV3IGZlYXR1cmU6IEVYUEVDVF9ERUFUSF9J
Rl9TVVBQT1JURUQgbWFjcm8gYW5kIGZyaWVuZHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIFhjb2Rl
IHByb2plY3QgY2FuIG5vdyBwcm9kdWNlIHN0YXRpYyBndGVzdAotICAgbGlicmFyaWVzIGluIGFk
ZGl0aW9uIHRvIGEgZnJhbWV3b3JrLgotICogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3IgU29sYXJp
cywgQ3lnd2luLCBtaW5HVywgV2luZG93cyBNb2JpbGUsCi0gICBTeW1iaWFuLCBnY2MsIGFuZCBD
KytCdWlsZGVyLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0K
LUNoYW5nZXMgZm9yIDEuMy4wOgotCi0gKiBOZXcgZmVhdHVyZTogZGVhdGggdGVzdHMgb24gV2lu
ZG93cywgQ3lnd2luLCBhbmQgTWFjLgotICogTmV3IGZlYXR1cmU6IGFiaWxpdHkgdG8gdXNlIEdv
b2dsZSBUZXN0IGFzc2VydGlvbnMgaW4gb3RoZXIgdGVzdGluZwotICAgZnJhbWV3b3Jrcy4KLSAq
IE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHJ1biBkaXNhYmxlZCB0ZXN0IHZpYQotICAgLS1ndGVz
dF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgLS1oZWxwIGZs
YWcgZm9yIHByaW50aW5nIHRoZSB1c2FnZS4KLSAqIE5ldyBmZWF0dXJlOiBhY2Nlc3MgdG8gR29v
Z2xlIFRlc3QgZmxhZyB2YWx1ZXMgaW4gdXNlciBjb2RlLgotICogTmV3IGZlYXR1cmU6IGEgc2Ny
aXB0IHRoYXQgcGFja3MgR29vZ2xlIFRlc3QgaW50byBvbmUgLmggYW5kIG9uZQotICAgLmNjIGZp
bGUgZm9yIGVhc3kgZGVwbG95bWVudC4KLSAqIE5ldyBmZWF0dXJlOiBzdXBwb3J0IGZvciBkaXN0
cmlidXRpbmcgdGVzdCBmdW5jdGlvbnMgdG8gbXVsdGlwbGUKLSAgIG1hY2hpbmVzIChyZXF1aXJl
cyBzdXBwb3J0IGZyb20gdGhlIHRlc3QgcnVubmVyKS4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVt
ZW50YXRpb24gY2xlYW4tdXBzLgotCi1DaGFuZ2VzIGZvciAxLjIuMToKLQotICogQ29tcGF0aWJp
bGl0eSBmaXhlcyBmb3IgTGludXggSUEtNjQgYW5kIElCTSB6L09TLgotICogQWRkZWQgc3VwcG9y
dCBmb3IgdXNpbmcgQm9vc3QgYW5kIG90aGVyIFRSMSBpbXBsZW1lbnRhdGlvbnMuCi0gKiBDaGFu
Z2VzIHRvIHRoZSBidWlsZCBzY3JpcHRzIHRvIHN1cHBvcnQgdXBjb21pbmcgcmVsZWFzZSBvZiBH
b29nbGUgQysrCi0gICBNb2NraW5nIEZyYW1ld29yay4KLSAqIEFkZGVkIE1ha2VmaWxlIHRvIHRo
ZSBkaXN0cmlidXRpb24gcGFja2FnZS4KLSAqIEltcHJvdmVkIGJ1aWxkIGluc3RydWN0aW9ucyBp
biBSRUFETUUuCi0KLUNoYW5nZXMgZm9yIDEuMi4wOgotCi0gKiBOZXcgZmVhdHVyZTogdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgQVNTRVJUL0VYUEVDVF8o
Tk9OKUZBVEFMX0ZBSUxVUkUoX09OX0FMTF9USFJFQURTKQotICAgbWFjcm9zLgotICogQ2hhbmdl
ZCB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgdG8gbWF0Y2ggSlVuaXQvQW50J3MuCi0gKiBBZGRlZCB0
ZXN0cyB0byB0aGUgWGNvZGUgcHJvamVjdC4KLSAqIEFkZGVkIHNjb25zL1NDb25zY3JpcHQgZm9y
IGJ1aWxkaW5nIHdpdGggU0NvbnMuCi0gKiBBZGRlZCBzcmMvZ3Rlc3QtYWxsLmNjIGZvciBidWls
ZGluZyBHb29nbGUgVGVzdCBmcm9tIGEgc2luZ2xlIGZpbGUuCi0gKiBGaXhlZCBjb21wYXRpYmls
aXR5IHdpdGggU29sYXJpcyBhbmQgei9PUy4KLSAqIEVuYWJsZWQgcnVubmluZyBQeXRob24gdGVz
dHMgb24gc3lzdGVtcyB3aXRoIHB5dGhvbiAyLjMgaW5zdGFsbGVkLAotICAgZS5nLiBNYWMgT1Mg
WCAxMC40LgotICogQnVnIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjEuMDoKLQotICogTmV3IGZl
YXR1cmU6IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiBleGNlcHRp
b24gYXNzZXJ0aW9ucy4KLSAqIE5ldyBmZWF0dXJlOiBwcmludGluZyBlbGFwc2VkIHRpbWUgb2Yg
dGVzdHMuCi0gKiBJbXByb3ZlZCB0aGUgcm9idXN0bmVzcyBvZiBkZWF0aCB0ZXN0cy4KLSAqIEFk
ZGVkIGFuIFhjb2RlIHByb2plY3QgYW5kIHNhbXBsZXMuCi0gKiBBZGp1c3RlZCB0aGUgb3V0cHV0
IGZvcm1hdCBvbiBXaW5kb3dzIHRvIGJlIHVuZGVyc3RhbmRhYmxlIGJ5IFZpc3VhbCBTdHVkaW8u
Ci0gKiBNaW5vciBidWcgZml4ZXMuCi0KLUNoYW5nZXMgZm9yIDEuMC4xOgotCi0gKiBBZGRlZCBw
cm9qZWN0IGZpbGVzIGZvciBWaXN1YWwgU3R1ZGlvIDcuMS4KLSAqIEZpeGVkIGlzc3VlcyB3aXRo
IGNvbXBpbGluZyBvbiBNYWMgT1MgWC4KLSAqIEZpeGVkIGlzc3VlcyB3aXRoIGNvbXBpbGluZyBv
biBDeWd3aW4uCi0KLUNoYW5nZXMgZm9yIDEuMC4wOgotCi0gKiBJbml0aWFsIE9wZW4gU291cmNl
IHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50
eHQKaW5kZXggNTEwNDNlMjY2OTI5Y2Y3N2JkZDY1MTg1OWExODg5MzJmNGVmZjZmOS4uOTc1OTdh
Y2NkOTEyYWI5YWRkMGM0OTg3MWFkNmNlMGI5YTMxMmM2MyAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYgKzE0LDcgQEAgc2V0KEdURVNUX1NPVVJDRVMKICAg
ICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKICAgICAke0dURVNUX0RJUn0v
c3JjL2d0ZXN0LWZpbGVwYXRoLmNjCiAgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdF9tYWluLmNj
CisgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdF9tYXRjaGVycy5jYwogICAgICR7R1RFU1RfRElS
fS9zcmMvZ3Rlc3QtcG9ydC5jYwogICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtcHJpbnRlcnMu
Y2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LXRlc3QtcGFydC5jYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ09OVFJJQlVUT1JTIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvQ09OVFJJQlVUT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWFlMmZj
MDQ0MTBkYzMwOGU0NjRhYTI1NmZlMWYyZDMxZWRjOTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NPTlRSSUJV
VE9SUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgVGhpcyBmaWxlIGNvbnRhaW5z
IGEgbGlzdCBvZiBwZW9wbGUgd2hvJ3ZlIG1hZGUgbm9uLXRyaXZpYWwKLSMgY29udHJpYnV0aW9u
IHRvIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIHByb2plY3QuICBQZW9wbGUKLSMg
d2hvIGNvbW1pdCBjb2RlIHRvIHRoZSBwcm9qZWN0IGFyZSBlbmNvdXJhZ2VkIHRvIGFkZCB0aGVp
ciBuYW1lcwotIyBoZXJlLiAgUGxlYXNlIGtlZXAgdGhlIGxpc3Qgc29ydGVkIGJ5IGZpcnN0IG5h
bWVzLgotCi1BamF5IEpvc2hpIDxqYWpAZ29vZ2xlLmNvbT4KLUJhbMOhenMgRMOhbiA8YmFsYXpz
LmRhbkBnbWFpbC5jb20+Ci1CaGFyYXQgTWVkaXJhdHRhIDxiaGFyYXRAbWVuYWx0by5jb20+Ci1D
aGFuZGxlciBDYXJydXRoIDxjaGFuZGxlcmNAZ29vZ2xlLmNvbT4KLUNocmlzIFByaW5jZSA8Y3By
aW5jZUBnb29nbGUuY29tPgotQ2hyaXMgVGF5bG9yIDx0YXlsb3JjQGdvb2dsZS5jb20+Ci1EYW4g
RWdub3IgPGVnbm9yQGdvb2dsZS5jb20+Ci1FcmljIFJvbWFuIDxlcm9tYW5AY2hyb21pdW0ub3Jn
PgotSGFkeSBaYWxlayA8aGFkeS56YWxla0BnbWFpbC5jb20+Ci1KZWZmcmV5IFlhc3NraW4gPGp5
YXNza2luQGdvb2dsZS5jb20+Ci1Kw7NpIFNpZ3Vyw7Bzc29uIDxqb2lAZ29vZ2xlLmNvbT4KLUtl
aXIgTWllcmxlIDxtaWVybGVAZ21haWwuY29tPgotS2VpdGggUmF5IDxrZWl0aC5yYXlAZ21haWwu
Y29tPgotS2VudG9uIFZhcmRhIDxrZW50b25AZ29vZ2xlLmNvbT4KLU1hbnVlbCBLbGltZWsgPGts
aW1la0Bnb29nbGUuY29tPgotTWFya3VzIEhldWxlIDxtYXJrdXMuaGV1bGVAZ21haWwuY29tPgot
TWlrYSBSYWVudG8gPG1pa2llQGlraS5maT4KLU1pa2zDs3MgRmF6ZWthcyA8bWZhemVrYXNAc3pl
bWFmb3IuY29tPgotUGFzaSBWYWxtaW5lbiA8cGFzaS52YWxtaW5lbkBnbWFpbC5jb20+Ci1QYXRy
aWNrIEhhbm5hIDxwaGFubmFAZ29vZ2xlLmNvbT4KLVBhdHJpY2sgUmlsZXkgPHBmckBnb29nbGUu
Y29tPgotUGV0ZXIgS2FtaW5za2kgPHBpb3Rya0Bnb29nbGUuY29tPgotUHJlc3RvbiBKYWNrc29u
IDxwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20+Ci1SYWluZXIgS2xhZmZlbmJvZWNrIDxyYWlu
ZXIua2xhZmZlbmJvZWNrQGR5bmF0cmFjZS5jb20+Ci1SdXNzIENveCA8cnNjQGdvb2dsZS5jb20+
Ci1SdXNzIFJ1ZmVyIDxydXNzQHBlbnRhZC5jb20+Ci1TZWFuIE1jYWZlZSA8ZWVmYWNtQGdtYWls
LmNvbT4KLVNpZ3Vyw7B1ciDDgXNnZWlyc3NvbiA8c2lnZ2lAZ29vZ2xlLmNvbT4KLVRyYWN5IEJp
YWxpayA8dHJhY3lAcGVudGFkLmNvbT4KLVZhZGltIEJlcm1hbiA8dmFkaW1iQGdvb2dsZS5jb20+
Ci1WbGFkIExvc2V2IDx2bGFkbEBnb29nbGUuY29tPgotWmhhbnlvbmcgV2FuIDx3YW5AZ29vZ2xl
LmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0xJQ0VOU0UgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9MSUNFTlNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxOTQxYTExZjhjZTk0Mzg5MTYwYjQ1ODkyN2EyOWJhMjE3NTQyODE4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Db3B5cmlnaHQgMjAwOCwg
R29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9NYWtlZmlsZS5hbSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L01ha2VmaWxlLmFtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNDRjODQxNmJhMDgwYzJmMDE2ZjE2NmIxOGI0MmMwZjczZWNlN2JlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L01ha2VmaWxlLmFtCisrKyAvZGV2L251bGwKQEAgLTEsMzM5ICswLDAgQEAKLSMgQXV0
b21ha2UgZmlsZQotCi1BQ0xPQ0FMX0FNRkxBR1MgPSAtSSBtNAotCi0jIE5vbnN0YW5kYXJkIHBh
Y2thZ2UgZmlsZXMgZm9yIGRpc3RyaWJ1dGlvbgotRVhUUkFfRElTVCA9IFwKLSAgQ0hBTkdFUyBc
Ci0gIENPTlRSSUJVVE9SUyBcCi0gIExJQ0VOU0UgXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBh
cmFtLXRlc3QuaC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11
dGlsLWdlbmVyYXRlZC5oLnB1bXAgXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1
cGxlLmgucHVtcCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmgu
cHVtcCBcCi0gIG1ha2UvTWFrZWZpbGUgXAotICBzY3JpcHRzL2Z1c2VfZ3Rlc3RfZmlsZXMucHkg
XAotICBzY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgXAotICBzY3JpcHRzL3B1bXAucHkg
XAotICBzY3JpcHRzL3Rlc3QvTWFrZWZpbGUKLQotIyBndGVzdCBzb3VyY2UgZmlsZXMgdGhhdCB3
ZSBkb24ndCBjb21waWxlIGRpcmVjdGx5LiAgVGhleSBhcmUKLSMgI2luY2x1ZGVkIGJ5IGd0ZXN0
LWFsbC5jYy4KLUdURVNUX1NSQyA9IFwKLSAgc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MgXAotICBz
cmMvZ3Rlc3QtZmlsZXBhdGguY2MgXAotICBzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmggXAotICBz
cmMvZ3Rlc3QtcG9ydC5jYyBcCi0gIHNyYy9ndGVzdC1wcmludGVycy5jYyBcCi0gIHNyYy9ndGVz
dC10ZXN0LXBhcnQuY2MgXAotICBzcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyBcCi0gIHNyYy9ndGVz
dC5jYwotCi1FWFRSQV9ESVNUICs9ICQoR1RFU1RfU1JDKQotCi0jIFNhbXBsZSBmaWxlcyB0aGF0
IHdlIGRvbid0IGNvbXBpbGUuCi1FWFRSQV9ESVNUICs9IFwKLSAgc2FtcGxlcy9wcmltZV90YWJs
ZXMuaCBcCi0gIHNhbXBsZXMvc2FtcGxlMV91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxl
Ml91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYyBcCi0gIHNhbXBs
ZXMvc2FtcGxlNF91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYyBc
Ci0gIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlN191bml0
dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2Ft
cGxlOV91bml0dGVzdC5jYwotCi0jIEMrKyB0ZXN0IGZpbGVzIHRoYXQgd2UgZG9uJ3QgY29tcGls
ZSBkaXJlY3RseS4KLUVYVFJBX0RJU1QgKz0gXAotICB0ZXN0L2d0ZXN0LWRlYXRoLXRlc3RfZXhf
dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtZGVhdGgtdGVzdF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVz
dC1maWxlcGF0aF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1saW5rZWRfcHRyX3Rlc3QuY2MgXAot
ICB0ZXN0L2d0ZXN0LWxpc3RlbmVyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LW1lc3NhZ2VfdGVz
dC5jYyBcCi0gIHRlc3QvZ3Rlc3Qtb3B0aW9uc190ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0
LXBhcmFtLXRlc3QyLXRlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVz
dC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgXAotICB0ZXN0L2dv
b2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1wYXJhbS10ZXN0X3Rl
c3QuaCBcCi0gIHRlc3QvZ3Rlc3QtcG9ydF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9wcmVtYXR1
cmVfZXhpdF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1wcmludGVyc190ZXN0LmNjIFwKLSAgdGVz
dC9ndGVzdC10ZXN0LXBhcnRfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC10dXBsZS10ZXN0
LmNjIFwKLSAgdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC10
eXBlZC10ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5oIFwKLSAg
dGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1icmVh
ay1vbi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNl
cHRpb25zLXRlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNjIFwKLSAg
dGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X2Vudmlyb25t
ZW50X3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0Xy5jYyBcCi0g
IHRlc3QvZ3Rlc3RfaGVscF90ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3Rz
LXVuaXR0ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfbWFpbl91bml0dGVzdC5jYyBcCi0gIHRlc3Qv
Z3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVz
dF8uY2MgXAotICB0ZXN0L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rl
c3RfcHJvZF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYyBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9zb2xlX2hlYWRlcl90
ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9zdHJlc3NfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3RfdGhy
b3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZh
aWx1cmUtdGVzdF8uY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0Xy5j
YyBcCi0gIHRlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNj
IFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X3ht
bF9vdXRmaWxlMl90ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8u
Y2MgXAotICB0ZXN0L3Byb2R1Y3Rpb24uY2MgXAotICB0ZXN0L3Byb2R1Y3Rpb24uaAotCi0jIFB5
dGhvbiB0ZXN0cyB0aGF0IHdlIGRvbid0IHJ1bi4KLUVYVFJBX0RJU1QgKz0gXAotICB0ZXN0L2dv
b2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVz
dC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtY29sb3ItdGVz
dC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3QucHkgXAotICB0ZXN0L2dvb2ds
ZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3QucHkgXAot
ICB0ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xl
dGVzdC1vdXRwdXQtdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF9nb2xk
ZW5fbGluLnR4dCBcCi0gIHRlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3QucHkgXAotICB0ZXN0
L2d0ZXN0X3Rlc3RfdXRpbHMucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVy
ZS10ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5weSBcCi0g
IHRlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkgXAotICB0ZXN0L2d0ZXN0X3htbF9vdXRw
dXRfdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0X3htbF90ZXN0X3V0aWxzLnB5Ci0KLSMgQ01h
a2Ugc2NyaXB0Ci1FWFRSQV9ESVNUICs9IFwKLSAgQ01ha2VMaXN0cy50eHQgXAotICBjbWFrZS9p
bnRlcm5hbF91dGlscy5jbWFrZQotCi0jIE1TVkMgcHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCAr
PSBcCi0gIG1zdmMvMjAxMC9ndGVzdC1tZC5zbG4gXAotICBtc3ZjLzIwMTAvZ3Rlc3QtbWQudmN4
cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdC5zbG4gXAotICBtc3ZjLzIwMTAvZ3Rlc3QudmN4cHJv
aiBcCi0gIG1zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rl
c3RfbWFpbi52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC1tZC52Y3hwcm9q
IFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0
ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4
cHJvagotCi0jIHhjb2RlIHByb2plY3QgZmlsZXMKLUVYVFJBX0RJU1QgKz0gXAotICB4Y29kZS9D
b25maWcvRGVidWdQcm9qZWN0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL0ZyYW1ld29ya1Rh
cmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL0NvbmZpZy9HZW5lcmFsLnhjY29uZmlnIFwKLSAgeGNv
ZGUvQ29uZmlnL1JlbGVhc2VQcm9qZWN0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL1N0YXRp
Y0xpYnJhcnlUYXJnZXQueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvVGVzdFRhcmdldC54Y2Nv
bmZpZyBcCi0gIHhjb2RlL1Jlc291cmNlcy9JbmZvLnBsaXN0IFwKLSAgeGNvZGUvU2NyaXB0cy9y
dW50ZXN0cy5zaCBcCi0gIHhjb2RlL1NjcmlwdHMvdmVyc2lvbmdlbmVyYXRlLnB5IFwKLSAgeGNv
ZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagotCi0jIHhjb2RlIHNhbXBsZSBmaWxl
cwotRVhUUkFfRElTVCArPSBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL0luZm8u
cGxpc3QgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS9XaWRnZXRGcmFtZXdvcmsu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2Ft
cGxlL3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0
LmNjIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0LmggXAotICB4Y29k
ZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXRfdGVzdC5jYwotCi0jIEMrK0J1aWxkZXIg
cHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIGNvZGVnZWFyL2d0ZXN0LmNicHJvaiBc
Ci0gIGNvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0X2FsbC5jYyBc
Ci0gIGNvZGVnZWFyL2d0ZXN0X2xpbmsuY2MgXAotICBjb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJv
aiBcCi0gIGNvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0LmNicHJvagotCi0jIERpc3RyaWJ1dGUgYW5k
IGluc3RhbGwgTTQgbWFjcm8KLW00ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAotbTRkYXRh
X0RBVEEgPSBtNC9ndGVzdC5tNAotRVhUUkFfRElTVCArPSAkKG00ZGF0YV9EQVRBKQotCi0jIFdl
IGRlZmluZSB0aGUgZ2xvYmFsIEFNX0NQUEZMQUdTIGFzIGV2ZXJ5dGhpbmcgd2UgY29tcGlsZSBp
bmNsdWRlcyBmcm9tIHRoZXNlCi0jIGRpcmVjdG9yaWVzLgotQU1fQ1BQRkxBR1MgPSAtSSQoc3Jj
ZGlyKSAtSSQoc3JjZGlyKS9pbmNsdWRlCi0KLSMgTW9kaWZpZXMgY29tcGlsZXIgYW5kIGxpbmtl
ciBmbGFncyBmb3IgcHRocmVhZHMgY29tcGF0aWJpbGl0eS4KLWlmIEhBVkVfUFRIUkVBRFMKLSAg
QU1fQ1hYRkxBR1MgPSBAUFRIUkVBRF9DRkxBR1NAIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MQotICBB
TV9MSUJTID0gQFBUSFJFQURfTElCU0AKLWVsc2UKLSAgQU1fQ1hYRkxBR1MgPSAtREdURVNUX0hB
U19QVEhSRUFEPTAKLWVuZGlmCi0KLSMgQnVpbGQgcnVsZXMgZm9yIGxpYnJhcmllcy4KLWxpYl9M
VExJQlJBUklFUyA9IGxpYi9saWJndGVzdC5sYSBsaWIvbGliZ3Rlc3RfbWFpbi5sYQotCi1saWJf
bGliZ3Rlc3RfbGFfU09VUkNFUyA9IHNyYy9ndGVzdC1hbGwuY2MKLQotcGtnaW5jbHVkZV9IRUFE
RVJTID0gXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCBcCi0gIGluY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0
LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmggXAotICBpbmNsdWRlL2d0ZXN0
L2d0ZXN0LXNwaS5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCBcCi0gIGlu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC5o
IFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaCBcCi0gIGluY2x1ZGUvZ3Rlc3Qv
Z3Rlc3RfcHJvZC5oCi0KLXBrZ2luY2x1ZGVfaW50ZXJuYWxkaXIgPSAkKHBrZ2luY2x1ZGVkaXIp
L2ludGVybmFsCi1wa2dpbmNsdWRlX2ludGVybmFsX0hFQURFUlMgPSBcCi0gIGluY2x1ZGUvZ3Rl
c3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIFwKLSAgaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC1pbnRlcm5hbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRf
cHRyLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJh
dGVkLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCBcCi0g
IGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3Qtc3RyaW5nLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmggXAot
ICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oIFwKLSAgaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Y3VzdG9tL2d0ZXN0LXBvcnQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0
ZXN0LXByaW50ZXJzLmgKLQotbGliX2xpYmd0ZXN0X21haW5fbGFfU09VUkNFUyA9IHNyYy9ndGVz
dF9tYWluLmNjCi1saWJfbGliZ3Rlc3RfbWFpbl9sYV9MSUJBREQgPSBsaWIvbGliZ3Rlc3QubGEK
LQotIyBCdWlsZCBydWxlcyBmb3Igc2FtcGxlcyBhbmQgdGVzdHMuIEF1dG9tYWtlJ3MgbmFtaW5n
IGZvciBzb21lIG9mCi0jIHRoZXNlIHZhcmlhYmxlcyBpc24ndCB0ZXJyaWJseSBvYnZpb3VzLCBz
byB0aGlzIGlzIGEgYnJpZWYKLSMgcmVmZXJlbmNlOgotIwotIyBURVNUUyAtLSBQcm9ncmFtcyBy
dW4gYXV0b21hdGljYWxseSBieSAibWFrZSBjaGVjayIKLSMgY2hlY2tfUFJPR1JBTVMgLS0gUHJv
Z3JhbXMgYnVpbHQgYnkgIm1ha2UgY2hlY2siIGJ1dCBub3QgbmVjZXNzYXJpbHkgcnVuCi0KLVRF
U1RTPQotVEVTVFNfRU5WSVJPTk1FTlQgPSBHVEVTVF9TT1VSQ0VfRElSPSIkKHNyY2RpcikvdGVz
dCIgXAotICAgICAgICAgICAgICAgICAgICBHVEVTVF9CVUlMRF9ESVI9IiQodG9wX2J1aWxkZGly
KS90ZXN0IgotY2hlY2tfUFJPR1JBTVM9Ci0KLSMgQSBzaW1wbGUgc2FtcGxlIG9uIHVzaW5nIGd0
ZXN0LgotVEVTVFMgKz0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3Nh
bXBsZTJfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdCBcCi0gICAgc2Ft
cGxlcy9zYW1wbGU0X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QgXAot
ICAgIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU3X3VuaXR0
ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxl
OV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdAotY2hlY2tfUFJPR1JB
TVMgKz0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTJfdW5p
dHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1w
bGU0X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QgXAotICAgIHNhbXBs
ZXMvc2FtcGxlNl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0IFwKLSAg
ICBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOV91bml0dGVz
dCBcCi0gICAgc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdAotCi1zYW1wbGVzX3NhbXBsZTFfdW5p
dHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlMV91bml0dGVzdC5jYyBzYW1wbGVzL3NhbXBs
ZTEuY2MKLXNhbXBsZXNfc2FtcGxlMV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWlu
LmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQot
c2FtcGxlc19zYW1wbGUyX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTJfdW5pdHRl
c3QuY2Mgc2FtcGxlcy9zYW1wbGUyLmNjCi1zYW1wbGVzX3NhbXBsZTJfdW5pdHRlc3RfTERBREQg
PSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlM191bml0dGVzdF9TT1VSQ0VTID0gc2Ft
cGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi1zYW1wbGVzX3NhbXBsZTNfdW5pdHRlc3RfTERBREQg
PSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlNF91bml0dGVzdF9TT1VSQ0VTID0gc2Ft
cGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2FtcGxlNC5jYwotc2FtcGxlc19zYW1w
bGU0X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTVfdW5p
dHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYyBzYW1wbGVzL3NhbXBs
ZTEuY2MKLXNhbXBsZXNfc2FtcGxlNV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWlu
LmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQot
c2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTZfdW5pdHRl
c3QuY2MKLXNhbXBsZXNfc2FtcGxlNl91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWlu
LmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQot
c2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTdfdW5pdHRl
c3QuY2MKLXNhbXBsZXNfc2FtcGxlN191bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWlu
LmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQot
c2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZThfdW5pdHRl
c3QuY2MKLXNhbXBsZXNfc2FtcGxlOF91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWlu
LmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQot
Ci0jIEFsc28gdmVyaWZ5IHRoYXQgbGliZ3Rlc3Qgd29ya3MgYnkgaXRzZWxmLgotc2FtcGxlc19z
YW1wbGU5X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKLXNh
bXBsZXNfc2FtcGxlOV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19z
YW1wbGUxMF91bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwot
c2FtcGxlc19zYW1wbGUxMF91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdC5sYQotCi0jIFRo
aXMgdGVzdHMgbW9zdCBjb25zdHJ1Y3RzIG9mIGd0ZXN0IGFuZCB2ZXJpZmllcyB0aGF0IGxpYmd0
ZXN0X21haW4KLSMgYW5kIGxpYmd0ZXN0IHdvcmsuCi1URVNUUyArPSB0ZXN0L2d0ZXN0X2FsbF90
ZXN0Ci1jaGVja19QUk9HUkFNUyArPSB0ZXN0L2d0ZXN0X2FsbF90ZXN0Ci10ZXN0X2d0ZXN0X2Fs
bF90ZXN0X1NPVVJDRVMgPSB0ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjCi10ZXN0X2d0ZXN0X2FsbF90
ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxpYi9saWJndGVzdC5sYQotCi0jIFRlc3RzIHRoYXQgZnVzZWQgZ3Rlc3QgZmlsZXMg
Y29tcGlsZSBhbmQgd29yay4KLUZVU0VEX0dURVNUX1NSQyA9IFwKLSAgZnVzZWQtc3JjL2d0ZXN0
L2d0ZXN0LWFsbC5jYyBcCi0gIGZ1c2VkLXNyYy9ndGVzdC9ndGVzdC5oIFwKLSAgZnVzZWQtc3Jj
L2d0ZXN0L2d0ZXN0X21haW4uY2MKLQotaWYgSEFWRV9QWVRIT04KLVRFU1RTICs9IHRlc3QvZnVz
ZWRfZ3Rlc3RfdGVzdAotY2hlY2tfUFJPR1JBTVMgKz0gdGVzdC9mdXNlZF9ndGVzdF90ZXN0Ci10
ZXN0X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNFUyA9ICQoRlVTRURfR1RFU1RfU1JDKSBcCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZXMvc2FtcGxlMS5jYyBzYW1wbGVzL3Nh
bXBsZTFfdW5pdHRlc3QuY2MKLXRlc3RfZnVzZWRfZ3Rlc3RfdGVzdF9DUFBGTEFHUyA9IC1JIiQo
c3JjZGlyKS9mdXNlZC1zcmMiCi0KLSMgQnVpbGQgcnVsZXMgZm9yIHB1dHRpbmcgZnVzZWQgR29v
Z2xlIFRlc3QgZmlsZXMgaW50byB0aGUgZGlzdHJpYnV0aW9uCi0jIHBhY2thZ2UuIFRoZSB1c2Vy
IGNhbiBhbHNvIGNyZWF0ZSB0aG9zZSBmaWxlcyBieSBtYW51YWxseSBydW5uaW5nCi0jIHNjcmlw
dHMvZnVzZV9ndGVzdF9maWxlcy5weS4KLSQodGVzdF9mdXNlZF9ndGVzdF90ZXN0X1NPVVJDRVMp
OiBmdXNlZC1ndGVzdAotCi1mdXNlZC1ndGVzdDogJChwa2dpbmNsdWRlX0hFQURFUlMpICQocGtn
aW5jbHVkZV9pbnRlcm5hbF9IRUFERVJTKSBcCi0gICAgICAgICAgICAgJChHVEVTVF9TUkMpIHNy
Yy9ndGVzdC1hbGwuY2Mgc3JjL2d0ZXN0X21haW4uY2MgXAotICAgICAgICAgICAgIHNjcmlwdHMv
ZnVzZV9ndGVzdF9maWxlcy5weQotCW1rZGlyIC1wICIkKHNyY2RpcikvZnVzZWQtc3JjIgotCWNo
bW9kIC1SIHUrdyAiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLQlybSAtZiAiJChzcmNkaXIpL2Z1c2Vk
LXNyYy9ndGVzdC9ndGVzdC1hbGwuY2MiCi0Jcm0gLWYgIiQoc3JjZGlyKS9mdXNlZC1zcmMvZ3Rl
c3QvZ3Rlc3QuaCIKLQkiJChzcmNkaXIpL3NjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weSIgIiQo
c3JjZGlyKS9mdXNlZC1zcmMiCi0JY3AgLWYgIiQoc3JjZGlyKS9zcmMvZ3Rlc3RfbWFpbi5jYyIg
IiQoc3JjZGlyKS9mdXNlZC1zcmMvZ3Rlc3QvIgotCi1tYWludGFpbmVyLWNsZWFuLWxvY2FsOgot
CXJtIC1yZiAiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLWVuZGlmCi0KLSMgRGVhdGggdGVzdHMgbWF5
IHByb2R1Y2UgY29yZSBkdW1wcyBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5LiBJbiBjYXNlCi0jIHRo
aXMgaGFwcGVucywgY2xlYW4gdGhlbSB0byBrZWVwIGRpc3RjbGVhbmNoZWNrIGhhcHB5LgotQ0xF
QU5GSUxFUyA9IGNvcmUKLQotIyBEaXNhYmxlcyAnbWFrZSBpbnN0YWxsJyBhcyBpbnN0YWxsaW5n
IGEgY29tcGlsZWQgdmVyc2lvbiBvZiBHb29nbGUKLSMgVGVzdCBjYW4gbGVhZCB0byB1bmRlZmlu
ZWQgYmVoYXZpb3IgZHVlIHRvIHZpb2xhdGlvbiBvZiB0aGUKLSMgT25lLURlZmluaXRpb24gUnVs
ZS4KLQotaW5zdGFsbC1leGVjLWxvY2FsOgotCWVjaG8gIidtYWtlIGluc3RhbGwnIGlzIGRhbmdl
cm91cyBhbmQgbm90IHN1cHBvcnRlZC4gSW5zdGVhZCwgc2VlIFJFQURNRSBmb3IgaG93IHRvIGlu
dGVncmF0ZSBHb29nbGUgVGVzdCBpbnRvIHlvdXIgYnVpbGQgc3lzdGVtLiIKLQlmYWxzZQotCi1p
bnN0YWxsLWRhdGEtbG9jYWw6Ci0JZWNobyAiJ21ha2UgaW5zdGFsbCcgaXMgZGFuZ2Vyb3VzIGFu
ZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBzZWUgUkVBRE1FIGZvciBob3cgdG8gaW50ZWdyYXRl
IEdvb2dsZSBUZXN0IGludG8geW91ciBidWlsZCBzeXN0ZW0uIgotCWZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFETUUuV2ViS2l0IGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvUkVBRE1FLldlYktpdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZl
M2JiZmY4OTFjMWI3MDE3NWZiZjQ2MWNhZDkyYmJkMmEzMWM4Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFE
TUUuV2ViS2l0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1HVGVzdCB2LjEuOC4xCi0K
LWh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9yZWxlYXNlcy90YWcvcmVsZWFz
ZS0xLjguMS8KLQotMjAxNi0wMS0wMiBUaW5nLVdlaSBMYW4gKGxhbnR3NDRAZ21haWwuY29tKQot
ICAgICAgUmVtb3ZlIHVzYWdlIG9mIGVudmlyb24gZ2xvYmFsIHZhcmlhYmxlIHRvIGZpeCB0aGUg
YnVpbGQgb24gRnJlZUJTRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JF
QURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5tZAppbmRleCBlMzBmZTgw
NDcxMjdiZWUxNmQyYzcxZjE0YjUwOWYzNzU3MWFkZDQxLi43MTdjODg2NzkwYmFiYmY3Y2ViNDJi
ZWRjZTQyMDlhNjgxYTUwNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9S
RUFETUUubWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvUkVBRE1FLm1kCkBAIC0yLDgw
ICsyLDUxIEBACiAKICMjIyMgU2V0dXAKIAotVG8gYnVpbGQgR29vZ2xlIFRlc3QgYW5kIHlvdXIg
dGVzdHMgdGhhdCB1c2UgaXQsIHlvdSBuZWVkIHRvIHRlbGwgeW91ciBidWlsZAorVG8gYnVpbGQg
R29vZ2xlVGVzdCBhbmQgeW91ciB0ZXN0cyB0aGF0IHVzZSBpdCwgeW91IG5lZWQgdG8gdGVsbCB5
b3VyIGJ1aWxkCiBzeXN0ZW0gd2hlcmUgdG8gZmluZCBpdHMgaGVhZGVycyBhbmQgc291cmNlIGZp
bGVzLiBUaGUgZXhhY3Qgd2F5IHRvIGRvIGl0CiBkZXBlbmRzIG9uIHdoaWNoIGJ1aWxkIHN5c3Rl
bSB5b3UgdXNlLCBhbmQgaXMgdXN1YWxseSBzdHJhaWdodGZvcndhcmQuCiAKLSMjIyMgQnVpbGQK
KyMjIyBCdWlsZCB3aXRoIENNYWtlCiAKLVN1cHBvc2UgeW91IHB1dCBHb29nbGUgVGVzdCBpbiBk
aXJlY3RvcnkgYCR7R1RFU1RfRElSfWAuIFRvIGJ1aWxkIGl0LCBjcmVhdGUgYQotbGlicmFyeSBi
dWlsZCB0YXJnZXQgKG9yIGEgcHJvamVjdCBhcyBjYWxsZWQgYnkgVmlzdWFsIFN0dWRpbyBhbmQg
WGNvZGUpIHRvCi1jb21waWxlCi0KLSAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWFsbC5jYwot
Ci13aXRoIGAke0dURVNUX0RJUn0vaW5jbHVkZWAgaW4gdGhlIHN5c3RlbSBoZWFkZXIgc2VhcmNo
IHBhdGggYW5kIGAke0dURVNUX0RJUn1gCi1pbiB0aGUgbm9ybWFsIGhlYWRlciBzZWFyY2ggcGF0
aC4gQXNzdW1pbmcgYSBMaW51eC1saWtlIHN5c3RlbSBhbmQgZ2NjLAotc29tZXRoaW5nIGxpa2Ug
dGhlIGZvbGxvd2luZyB3aWxsIGRvOgotCi0gICAgZysrIC1pc3lzdGVtICR7R1RFU1RfRElSfS9p
bmNsdWRlIC1JJHtHVEVTVF9ESVJ9IFwKLSAgICAgICAgLXB0aHJlYWQgLWMgJHtHVEVTVF9ESVJ9
L3NyYy9ndGVzdC1hbGwuY2MKLSAgICBhciAtcnYgbGliZ3Rlc3QuYSBndGVzdC1hbGwubwotCi0o
V2UgbmVlZCBgLXB0aHJlYWRgIGFzIEdvb2dsZSBUZXN0IHVzZXMgdGhyZWFkcy4pCi0KLU5leHQs
IHlvdSBzaG91bGQgY29tcGlsZSB5b3VyIHRlc3Qgc291cmNlIGZpbGUgd2l0aCBgJHtHVEVTVF9E
SVJ9L2luY2x1ZGVgIGluCi10aGUgc3lzdGVtIGhlYWRlciBzZWFyY2ggcGF0aCwgYW5kIGxpbmsg
aXQgd2l0aCBndGVzdCBhbmQgYW55IG90aGVyIG5lY2Vzc2FyeQotbGlicmFyaWVzOgotCi0gICAg
ZysrIC1pc3lzdGVtICR7R1RFU1RfRElSfS9pbmNsdWRlIC1wdGhyZWFkIHBhdGgvdG8veW91cl90
ZXN0LmNjIGxpYmd0ZXN0LmEgXAotICAgICAgICAtbyB5b3VyX3Rlc3QKLQotQXMgYW4gZXhhbXBs
ZSwgdGhlIG1ha2UvIGRpcmVjdG9yeSBjb250YWlucyBhIE1ha2VmaWxlIHRoYXQgeW91IGNhbiB1
c2UgdG8gYnVpbGQKLUdvb2dsZSBUZXN0IG9uIHN5c3RlbXMgd2hlcmUgR05VIG1ha2UgaXMgYXZh
aWxhYmxlIChlLmcuIExpbnV4LCBNYWMgT1MgWCwgYW5kCi1DeWd3aW4pLiBJdCBkb2Vzbid0IHRy
eSB0byBidWlsZCBHb29nbGUgVGVzdCdzIG93biB0ZXN0cy4gSW5zdGVhZCwgaXQganVzdAotYnVp
bGRzIHRoZSBHb29nbGUgVGVzdCBsaWJyYXJ5IGFuZCBhIHNhbXBsZSB0ZXN0LiBZb3UgY2FuIHVz
ZSBpdCBhcyBhIHN0YXJ0aW5nCi1wb2ludCBmb3IgeW91ciBvd24gYnVpbGQgc2NyaXB0LgotCi1J
ZiB0aGUgZGVmYXVsdCBzZXR0aW5ncyBhcmUgY29ycmVjdCBmb3IgeW91ciBlbnZpcm9ubWVudCwg
dGhlIGZvbGxvd2luZyBjb21tYW5kcwotc2hvdWxkIHN1Y2NlZWQ6Ci0KLSAgICBjZCAke0dURVNU
X0RJUn0vbWFrZQotICAgIG1ha2UKLSAgICAuL3NhbXBsZTFfdW5pdHRlc3QKLQotSWYgeW91IHNl
ZSBlcnJvcnMsIHRyeSB0byB0d2VhayB0aGUgY29udGVudHMgb2YgYG1ha2UvTWFrZWZpbGVgIHRv
IG1ha2UgdGhlbSBnbwotYXdheS4gVGhlcmUgYXJlIGluc3RydWN0aW9ucyBpbiBgbWFrZS9NYWtl
ZmlsZWAgb24gaG93IHRvIGRvIGl0LgotCi0jIyMgVXNpbmcgQ01ha2UKLQotR29vZ2xlIFRlc3Qg
Y29tZXMgd2l0aCBhIENNYWtlIGJ1aWxkIHNjcmlwdCAoCi1bQ01ha2VMaXN0cy50eHRdKGh0dHBz
Oi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9DTWFrZUxpc3RzLnR4
dCkpCitHb29nbGVUZXN0IGNvbWVzIHdpdGggYSBDTWFrZSBidWlsZCBzY3JpcHQKKyhbQ01ha2VM
aXN0cy50eHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rl
ci9DTWFrZUxpc3RzLnR4dCkpCiB0aGF0IGNhbiBiZSB1c2VkIG9uIGEgd2lkZSByYW5nZSBvZiBw
bGF0Zm9ybXMgKCJDIiBzdGFuZHMgZm9yIGNyb3NzLXBsYXRmb3JtLikuCiBJZiB5b3UgZG9uJ3Qg
aGF2ZSBDTWFrZSBpbnN0YWxsZWQgYWxyZWFkeSwgeW91IGNhbiBkb3dubG9hZCBpdCBmb3IgZnJl
ZSBmcm9tCiA8aHR0cDovL3d3dy5jbWFrZS5vcmcvPi4KIAogQ01ha2Ugd29ya3MgYnkgZ2VuZXJh
dGluZyBuYXRpdmUgbWFrZWZpbGVzIG9yIGJ1aWxkIHByb2plY3RzIHRoYXQgY2FuIGJlIHVzZWQg
aW4KLXRoZSBjb21waWxlciBlbnZpcm9ubWVudCBvZiB5b3VyIGNob2ljZS4gWW91IGNhbiBlaXRo
ZXIgYnVpbGQgR29vZ2xlIFRlc3QgYXMgYQordGhlIGNvbXBpbGVyIGVudmlyb25tZW50IG9mIHlv
dXIgY2hvaWNlLiBZb3UgY2FuIGVpdGhlciBidWlsZCBHb29nbGVUZXN0IGFzIGEKIHN0YW5kYWxv
bmUgcHJvamVjdCBvciBpdCBjYW4gYmUgaW5jb3Jwb3JhdGVkIGludG8gYW4gZXhpc3RpbmcgQ01h
a2UgYnVpbGQgZm9yCiBhbm90aGVyIHByb2plY3QuCiAKICMjIyMgU3RhbmRhbG9uZSBDTWFrZSBQ
cm9qZWN0CiAKLVdoZW4gYnVpbGRpbmcgR29vZ2xlIFRlc3QgYXMgYSBzdGFuZGFsb25lIHByb2pl
Y3QsIHRoZSB0eXBpY2FsIHdvcmtmbG93IHN0YXJ0cwotd2l0aDoKK1doZW4gYnVpbGRpbmcgR29v
Z2xlVGVzdCBhcyBhIHN0YW5kYWxvbmUgcHJvamVjdCwgdGhlIHR5cGljYWwgd29ya2Zsb3cgc3Rh
cnRzCit3aXRoCiAKLSAgICBta2RpciBteWJ1aWxkICAgICAgICMgQ3JlYXRlIGEgZGlyZWN0b3J5
IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KLSAgICBjZCBteWJ1aWxkCi0gICAgY21ha2UgJHtH
VEVTVF9ESVJ9ICAjIEdlbmVyYXRlIG5hdGl2ZSBidWlsZCBzY3JpcHRzLgorYGBgCitnaXQgY2xv
bmUgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0LmdpdCAtYiByZWxlYXNlLTEu
MTAuMAorY2QgZ29vZ2xldGVzdCAgICAgICAgIyBNYWluIGRpcmVjdG9yeSBvZiB0aGUgY2xvbmVk
IHJlcG9zaXRvcnkuCitta2RpciBidWlsZCAgICAgICAgICAjIENyZWF0ZSBhIGRpcmVjdG9yeSB0
byBob2xkIHRoZSBidWlsZCBvdXRwdXQuCitjZCBidWlsZAorY21ha2UgLi4gICAgICAgICAgICAg
IyBHZW5lcmF0ZSBuYXRpdmUgYnVpbGQgc2NyaXB0cyBmb3IgR29vZ2xlVGVzdC4KK2BgYAogCi1J
ZiB5b3Ugd2FudCB0byBidWlsZCBHb29nbGUgVGVzdCdzIHNhbXBsZXMsIHlvdSBzaG91bGQgcmVw
bGFjZSB0aGUgbGFzdCBjb21tYW5kCi13aXRoCitUaGUgYWJvdmUgY29tbWFuZCBhbHNvIGluY2x1
ZGVzIEdvb2dsZU1vY2sgYnkgZGVmYXVsdC4gQW5kIHNvLCBpZiB5b3Ugd2FudCB0bworYnVpbGQg
b25seSBHb29nbGVUZXN0LCB5b3Ugc2hvdWxkIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRo
CiAKLSAgICBjbWFrZSAtRGd0ZXN0X2J1aWxkX3NhbXBsZXM9T04gJHtHVEVTVF9ESVJ9CitgYGAK
K2NtYWtlIC4uIC1EQlVJTERfR01PQ0s9T0ZGCitgYGAKIAogSWYgeW91IGFyZSBvbiBhIFwqbml4
IHN5c3RlbSwgeW91IHNob3VsZCBub3cgc2VlIGEgTWFrZWZpbGUgaW4gdGhlIGN1cnJlbnQKLWRp
cmVjdG9yeS4gSnVzdCB0eXBlICdtYWtlJyB0byBidWlsZCBndGVzdC4KK2RpcmVjdG9yeS4gSnVz
dCB0eXBlIGBtYWtlYCB0byBidWlsZCBHb29nbGVUZXN0LiBBbmQgdGhlbiB5b3UgY2FuIHNpbXBs
eSBpbnN0YWxsCitHb29nbGVUZXN0IGlmIHlvdSBhcmUgYSBzeXN0ZW0gYWRtaW5pc3RyYXRvci4K
KworYGBgCittYWtlCitzdWRvIG1ha2UgaW5zdGFsbCAgICAjIEluc3RhbGwgaW4gL3Vzci9sb2Nh
bC8gYnkgZGVmYXVsdAorYGBgCiAKIElmIHlvdSB1c2UgV2luZG93cyBhbmQgaGF2ZSBWaXN1YWwg
U3R1ZGlvIGluc3RhbGxlZCwgYSBgZ3Rlc3Quc2xuYCBmaWxlIGFuZAogc2V2ZXJhbCBgLnZjcHJv
amAgZmlsZXMgd2lsbCBiZSBjcmVhdGVkLiBZb3UgY2FuIHRoZW4gYnVpbGQgdGhlbSB1c2luZyBW
aXN1YWwKQEAgLTg1LDEzICs1NiwxOSBAQCBPbiBNYWMgT1MgWCB3aXRoIFhjb2RlIGluc3RhbGxl
ZCwgYSBgLnhjb2RlcHJvamAgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZC4KIAogIyMjIyBJbmNvcnBv
cmF0aW5nIEludG8gQW4gRXhpc3RpbmcgQ01ha2UgUHJvamVjdAogCi1JZiB5b3Ugd2FudCB0byB1
c2UgZ3Rlc3QgaW4gYSBwcm9qZWN0IHdoaWNoIGFscmVhZHkgdXNlcyBDTWFrZSwgdGhlbiBhIG1v
cmUKLXJvYnVzdCBhbmQgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gYnVpbGQgZ3Rlc3QgYXMgcGFy
dCBvZiB0aGF0IHByb2plY3QgZGlyZWN0bHkuCi1UaGlzIGlzIGRvbmUgYnkgbWFraW5nIHRoZSBH
b29nbGVUZXN0IHNvdXJjZSBjb2RlIGF2YWlsYWJsZSB0byB0aGUgbWFpbiBidWlsZAotYW5kIGFk
ZGluZyBpdCB1c2luZyBDTWFrZSdzIGBhZGRfc3ViZGlyZWN0b3J5KClgIGNvbW1hbmQuIFRoaXMg
aGFzIHRoZQotc2lnbmlmaWNhbnQgYWR2YW50YWdlIHRoYXQgdGhlIHNhbWUgY29tcGlsZXIgYW5k
IGxpbmtlciBzZXR0aW5ncyBhcmUgdXNlZAotYmV0d2VlbiBndGVzdCBhbmQgdGhlIHJlc3Qgb2Yg
eW91ciBwcm9qZWN0LCBzbyBpc3N1ZXMgYXNzb2NpYXRlZCB3aXRoIHVzaW5nCi1pbmNvbXBhdGli
bGUgbGlicmFyaWVzIChlZyBkZWJ1Zy9yZWxlYXNlKSwgZXRjLiBhcmUgYXZvaWRlZC4gVGhpcyBp
cworSWYgeW91IHdhbnQgdG8gdXNlIEdvb2dsZVRlc3QgaW4gYSBwcm9qZWN0IHdoaWNoIGFscmVh
ZHkgdXNlcyBDTWFrZSwgdGhlIGVhc2llc3QKK3dheSBpcyB0byBnZXQgaW5zdGFsbGVkIGxpYnJh
cmllcyBhbmQgaGVhZGVycy4KKworKiAgIEltcG9ydCBHb29nbGVUZXN0IGJ5IHVzaW5nIGBmaW5k
X3BhY2thZ2VgIChvciBgcGtnX2NoZWNrX21vZHVsZXNgKS4gRm9yCisgICAgZXhhbXBsZSwgaWYg
YGZpbmRfcGFja2FnZShHVGVzdCBDT05GSUcgUkVRVUlSRUQpYCBpcyBzdWNjZWVkLCB5b3UgY2Fu
IHVzZQorICAgIHRoZSBsaWJyYXJpZXMgYXMgYEdUZXN0OjpndGVzdGAsIGBHVGVzdDo6Z21vY2tg
LgorCitBbmQgYSBtb3JlIHJvYnVzdCBhbmQgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gYnVpbGQg
R29vZ2xlVGVzdCBhcyBwYXJ0IG9mIHRoYXQKK3Byb2plY3QgZGlyZWN0bHkuIFRoaXMgaXMgZG9u
ZSBieSBtYWtpbmcgdGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgYXZhaWxhYmxlIHRvCit0aGUg
bWFpbiBidWlsZCBhbmQgYWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MgYGFkZF9zdWJkaXJlY3Rvcnko
KWAgY29tbWFuZC4gVGhpcworaGFzIHRoZSBzaWduaWZpY2FudCBhZHZhbnRhZ2UgdGhhdCB0aGUg
c2FtZSBjb21waWxlciBhbmQgbGlua2VyIHNldHRpbmdzIGFyZQordXNlZCBiZXR3ZWVuIEdvb2ds
ZVRlc3QgYW5kIHRoZSByZXN0IG9mIHlvdXIgcHJvamVjdCwgc28gaXNzdWVzIGFzc29jaWF0ZWQg
d2l0aAordXNpbmcgaW5jb21wYXRpYmxlIGxpYnJhcmllcyAoZWcgZGVidWcvcmVsZWFzZSksIGV0
Yy4gYXJlIGF2b2lkZWQuIFRoaXMgaXMKIHBhcnRpY3VsYXJseSB1c2VmdWwgb24gV2luZG93cy4g
TWFraW5nIEdvb2dsZVRlc3QncyBzb3VyY2UgY29kZSBhdmFpbGFibGUgdG8gdGhlCiBtYWluIGJ1
aWxkIGNhbiBiZSBkb25lIGEgZmV3IGRpZmZlcmVudCB3YXlzOgogCkBAIC0xMTUsNjAgKzkyLDU3
IEBAIHB1bGxlZCBpbnRvIHRoZSBtYWluIGJ1aWxkIHdpdGggYGFkZF9zdWJkaXJlY3RvcnkoKWAu
IEZvciBleGFtcGxlOgogCiBOZXcgZmlsZSBgQ01ha2VMaXN0cy50eHQuaW5gOgogCi0gICAgY21h
a2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOC4yKQorYGBgY21ha2UKK2NtYWtlX21pbmlt
dW1fcmVxdWlyZWQoVkVSU0lPTiAyLjguMTIpCiAKLSAgICBwcm9qZWN0KGdvb2dsZXRlc3QtZG93
bmxvYWQgTk9ORSkKK3Byb2plY3QoZ29vZ2xldGVzdC1kb3dubG9hZCBOT05FKQogCi0gICAgaW5j
bHVkZShFeHRlcm5hbFByb2plY3QpCi0gICAgRXh0ZXJuYWxQcm9qZWN0X0FkZChnb29nbGV0ZXN0
Ci0gICAgICBHSVRfUkVQT1NJVE9SWSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2ds
ZXRlc3QuZ2l0Ci0gICAgICBHSVRfVEFHICAgICAgICAgICBtYXN0ZXIKLSAgICAgIFNPVVJDRV9E
SVIgICAgICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qtc3JjIgotICAgICAgQklO
QVJZX0RJUiAgICAgICAgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1idWlsZCIKLSAg
ICAgIENPTkZJR1VSRV9DT01NQU5EICIiCi0gICAgICBCVUlMRF9DT01NQU5EICAgICAiIgotICAg
ICAgSU5TVEFMTF9DT01NQU5EICAgIiIKLSAgICAgIFRFU1RfQ09NTUFORCAgICAgICIiCi0gICAg
KQoraW5jbHVkZShFeHRlcm5hbFByb2plY3QpCitFeHRlcm5hbFByb2plY3RfQWRkKGdvb2dsZXRl
c3QKKyAgR0lUX1JFUE9TSVRPUlkgICAgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0
ZXN0LmdpdAorICBHSVRfVEFHICAgICAgICAgICBtYXN0ZXIKKyAgU09VUkNFX0RJUiAgICAgICAg
IiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0LXNyYyIKKyAgQklOQVJZX0RJ
UiAgICAgICAgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkIgor
ICBDT05GSUdVUkVfQ09NTUFORCAiIgorICBCVUlMRF9DT01NQU5EICAgICAiIgorICBJTlNUQUxM
X0NPTU1BTkQgICAiIgorICBURVNUX0NPTU1BTkQgICAgICAiIgorKQorYGBgCiAKIEV4aXN0aW5n
IGJ1aWxkJ3MgYENNYWtlTGlzdHMudHh0YDoKIAotICAgICMgRG93bmxvYWQgYW5kIHVucGFjayBn
b29nbGV0ZXN0IGF0IGNvbmZpZ3VyZSB0aW1lCi0gICAgY29uZmlndXJlX2ZpbGUoQ01ha2VMaXN0
cy50eHQuaW4gZ29vZ2xldGVzdC1kb3dubG9hZC9DTWFrZUxpc3RzLnR4dCkKLSAgICBleGVjdXRl
X3Byb2Nlc3MoQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1HICIke0NNQUtFX0dFTkVSQVRPUn0i
IC4KLSAgICAgIFJFU1VMVF9WQVJJQUJMRSByZXN1bHQKLSAgICAgIFdPUktJTkdfRElSRUNUT1JZ
ICR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1kb3dubG9hZCApCi0gICAgaWYocmVzdWx0
KQotICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01ha2Ugc3RlcCBmb3IgZ29vZ2xldGVzdCBm
YWlsZWQ6ICR7cmVzdWx0fSIpCi0gICAgZW5kaWYoKQotICAgIGV4ZWN1dGVfcHJvY2VzcyhDT01N
QU5EICR7Q01BS0VfQ09NTUFORH0gLS1idWlsZCAuCi0gICAgICBSRVNVTFRfVkFSSUFCTEUgcmVz
dWx0Ci0gICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRl
c3QtZG93bmxvYWQgKQotICAgIGlmKHJlc3VsdCkKLSAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1Ig
IkJ1aWxkIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQotICAgIGVuZGlm
KCkKLQotICAgICMgUHJldmVudCBvdmVycmlkaW5nIHRoZSBwYXJlbnQgcHJvamVjdCdzIGNvbXBp
bGVyL2xpbmtlcgotICAgICMgc2V0dGluZ3Mgb24gV2luZG93cwotICAgIHNldChndGVzdF9mb3Jj
ZV9zaGFyZWRfY3J0IE9OIENBQ0hFIEJPT0wgIiIgRk9SQ0UpCi0KLSAgICAjIEFkZCBnb29nbGV0
ZXN0IGRpcmVjdGx5IHRvIG91ciBidWlsZC4gVGhpcyBkZWZpbmVzCi0gICAgIyB0aGUgZ3Rlc3Qg
YW5kIGd0ZXN0X21haW4gdGFyZ2V0cy4KLSAgICBhZGRfc3ViZGlyZWN0b3J5KCR7Q01BS0VfQklO
QVJZX0RJUn0vZ29vZ2xldGVzdC1zcmMKLSAgICAgICAgICAgICAgICAgICAgICR7Q01BS0VfQklO
QVJZX0RJUn0vZ29vZ2xldGVzdC1idWlsZAotICAgICAgICAgICAgICAgICAgICAgRVhDTFVERV9G
Uk9NX0FMTCkKLQotICAgICMgVGhlIGd0ZXN0L2d0ZXN0X21haW4gdGFyZ2V0cyBjYXJyeSBoZWFk
ZXIgc2VhcmNoIHBhdGgKLSAgICAjIGRlcGVuZGVuY2llcyBhdXRvbWF0aWNhbGx5IHdoZW4gdXNp
bmcgQ01ha2UgMi44LjExIG9yCi0gICAgIyBsYXRlci4gT3RoZXJ3aXNlIHdlIGhhdmUgdG8gYWRk
IHRoZW0gaGVyZSBvdXJzZWx2ZXMuCi0gICAgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNT
IDIuOC4xMSkKLSAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoIiR7Z3Rlc3RfU09VUkNFX0RJUn0v
aW5jbHVkZSIpCi0gICAgZW5kaWYoKQotCi0gICAgIyBOb3cgc2ltcGx5IGxpbmsgYWdhaW5zdCBn
dGVzdCBvciBndGVzdF9tYWluIGFzIG5lZWRlZC4gRWcKLSAgICBhZGRfZXhlY3V0YWJsZShleGFt
cGxlIGV4YW1wbGUuY3BwKQotICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhleGFtcGxlIGd0ZXN0
X21haW4pCi0gICAgYWRkX3Rlc3QoTkFNRSBleGFtcGxlX3Rlc3QgQ09NTUFORCBleGFtcGxlKQor
YGBgY21ha2UKKyMgRG93bmxvYWQgYW5kIHVucGFjayBnb29nbGV0ZXN0IGF0IGNvbmZpZ3VyZSB0
aW1lCitjb25maWd1cmVfZmlsZShDTWFrZUxpc3RzLnR4dC5pbiBnb29nbGV0ZXN0LWRvd25sb2Fk
L0NNYWtlTGlzdHMudHh0KQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtDTUFLRV9DT01NQU5E
fSAtRyAiJHtDTUFLRV9HRU5FUkFUT1J9IiAuCisgIFJFU1VMVF9WQVJJQUJMRSByZXN1bHQKKyAg
V09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qt
ZG93bmxvYWQgKQoraWYocmVzdWx0KQorICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTWFrZSBzdGVw
IGZvciBnb29nbGV0ZXN0IGZhaWxlZDogJHtyZXN1bHR9IikKK2VuZGlmKCkKK2V4ZWN1dGVfcHJv
Y2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLS1idWlsZCAuCisgIFJFU1VMVF9WQVJJQUJM
RSByZXN1bHQKKyAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9
L2dvb2dsZXRlc3QtZG93bmxvYWQgKQoraWYocmVzdWx0KQorICBtZXNzYWdlKEZBVEFMX0VSUk9S
ICJCdWlsZCBzdGVwIGZvciBnb29nbGV0ZXN0IGZhaWxlZDogJHtyZXN1bHR9IikKK2VuZGlmKCkK
KworIyBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIHBhcmVudCBwcm9qZWN0J3MgY29tcGlsZXIvbGlu
a2VyCisjIHNldHRpbmdzIG9uIFdpbmRvd3MKK3NldChndGVzdF9mb3JjZV9zaGFyZWRfY3J0IE9O
IENBQ0hFIEJPT0wgIiIgRk9SQ0UpCisKKyMgQWRkIGdvb2dsZXRlc3QgZGlyZWN0bHkgdG8gb3Vy
IGJ1aWxkLiBUaGlzIGRlZmluZXMKKyMgdGhlIGd0ZXN0IGFuZCBndGVzdF9tYWluIHRhcmdldHMu
CithZGRfc3ViZGlyZWN0b3J5KCR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0
LXNyYworICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZ29vZ2xl
dGVzdC1idWlsZAorICAgICAgICAgICAgICAgICBFWENMVURFX0ZST01fQUxMKQorCisjIE5vdyBz
aW1wbHkgbGluayBhZ2FpbnN0IGd0ZXN0IG9yIGd0ZXN0X21haW4gYXMgbmVlZGVkLiBFZworYWRk
X2V4ZWN1dGFibGUoZXhhbXBsZSBleGFtcGxlLmNwcCkKK3RhcmdldF9saW5rX2xpYnJhcmllcyhl
eGFtcGxlIGd0ZXN0X21haW4pCithZGRfdGVzdChOQU1FIGV4YW1wbGVfdGVzdCBDT01NQU5EIGV4
YW1wbGUpCitgYGAKIAogTm90ZSB0aGF0IHRoaXMgYXBwcm9hY2ggcmVxdWlyZXMgQ01ha2UgMi44
LjIgb3IgbGF0ZXIgZHVlIHRvIGl0cyB1c2Ugb2YgdGhlCiBgRXh0ZXJuYWxQcm9qZWN0X0FkZCgp
YCBjb21tYW5kLiBUaGUgYWJvdmUgdGVjaG5pcXVlIGlzIGRpc2N1c3NlZCBpbiBtb3JlIGRldGFp
bApAQCAtMTc4LDEwNCArMTUyLDQ0IEBAIGFsc28gY29udGFpbnMgYSBsaW5rIHRvIGEgZnVsbHkg
Z2VuZXJhbGl6ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRlY2huaXF1ZS4KICMjIyMjIFZpc3Vh
bCBTdHVkaW8gRHluYW1pYyB2cyBTdGF0aWMgUnVudGltZXMKIAogQnkgZGVmYXVsdCwgbmV3IFZp
c3VhbCBTdHVkaW8gcHJvamVjdHMgbGluayB0aGUgQyBydW50aW1lcyBkeW5hbWljYWxseSBidXQK
LUdvb2dsZSBUZXN0IGxpbmtzIHRoZW0gc3RhdGljYWxseS4gVGhpcyB3aWxsIGdlbmVyYXRlIGFu
IGVycm9yIHRoYXQgbG9va3MKK0dvb2dsZVRlc3QgbGlua3MgdGhlbSBzdGF0aWNhbGx5LiBUaGlz
IHdpbGwgZ2VuZXJhdGUgYW4gZXJyb3IgdGhhdCBsb29rcwogc29tZXRoaW5nIGxpa2UgdGhlIGZv
bGxvd2luZzogZ3Rlc3QubGliKGd0ZXN0LWFsbC5vYmopIDogZXJyb3IgTE5LMjAzODogbWlzbWF0
Y2gKIGRldGVjdGVkIGZvciAnUnVudGltZUxpYnJhcnknOiB2YWx1ZSAnTVRkX1N0YXRpY0RlYnVn
JyBkb2Vzbid0IG1hdGNoIHZhbHVlCiAnTURkX0R5bmFtaWNEZWJ1ZycgaW4gbWFpbi5vYmoKIAot
R29vZ2xlIFRlc3QgYWxyZWFkeSBoYXMgYSBDTWFrZSBvcHRpb24gZm9yIHRoaXM6IGBndGVzdF9m
b3JjZV9zaGFyZWRfY3J0YAorR29vZ2xlVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtlIG9wdGlvbiBm
b3IgdGhpczogYGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnRgCiAKIEVuYWJsaW5nIHRoaXMgb3B0aW9u
IHdpbGwgbWFrZSBndGVzdCBsaW5rIHRoZSBydW50aW1lcyBkeW5hbWljYWxseSB0b28sIGFuZAog
bWF0Y2ggdGhlIHByb2plY3QgaW4gd2hpY2ggaXQgaXMgaW5jbHVkZWQuCiAKLSMjIyBMZWdhY3kg
QnVpbGQgU2NyaXB0cworIyMjIyBDKysgU3RhbmRhcmQgVmVyc2lvbgogCi1CZWZvcmUgc2V0dGxp
bmcgb24gQ01ha2UsIHdlIGhhdmUgYmVlbiBwcm92aWRpbmcgaGFuZC1tYWludGFpbmVkIGJ1aWxk
Ci1wcm9qZWN0cy9zY3JpcHRzIGZvciBWaXN1YWwgU3R1ZGlvLCBYY29kZSwgYW5kIEF1dG90b29s
cy4gV2hpbGUgd2UgY29udGludWUgdG8KLXByb3ZpZGUgdGhlbSBmb3IgY29udmVuaWVuY2UsIHRo
ZXkgYXJlIG5vdCBhY3RpdmVseSBtYWludGFpbmVkIGFueSBtb3JlLiBXZQotaGlnaGx5IHJlY29t
bWVuZCB0aGF0IHlvdSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBpbiB0aGUgYWJvdmUgc2VjdGlv
bnMgdG8KLWludGVncmF0ZSBHb29nbGUgVGVzdCB3aXRoIHlvdXIgZXhpc3RpbmcgYnVpbGQgc3lz
dGVtLgorQW4gZW52aXJvbm1lbnQgdGhhdCBzdXBwb3J0cyBDKysxMSBpcyByZXF1aXJlZCBpbiBv
cmRlciB0byBzdWNjZXNzZnVsbHkgYnVpbGQKK0dvb2dsZVRlc3QuIE9uZSB3YXkgdG8gZW5zdXJl
IHRoaXMgaXMgdG8gc3BlY2lmeSB0aGUgc3RhbmRhcmQgaW4gdGhlIHRvcC1sZXZlbAorcHJvamVj
dCwgZm9yIGV4YW1wbGUgYnkgdXNpbmcgdGhlIGBzZXQoQ01BS0VfQ1hYX1NUQU5EQVJEIDExKWAg
Y29tbWFuZC4gSWYgdGhpcworaXMgbm90IGZlYXNpYmxlLCBmb3IgZXhhbXBsZSBpbiBhIEMgcHJv
amVjdCB1c2luZyBHb29nbGVUZXN0IGZvciB2YWxpZGF0aW9uLAordGhlbiBpdCBjYW4gYmUgc3Bl
Y2lmaWVkIGJ5IGFkZGluZyBpdCB0byB0aGUgb3B0aW9ucyBmb3IgY21ha2UgdmlhIHRoZQorYERD
TUFLRV9DWFhfRkxBR1NgIG9wdGlvbi4KIAotSWYgeW91IHN0aWxsIG5lZWQgdG8gdXNlIHRoZSBs
ZWdhY3kgYnVpbGQgc2NyaXB0cywgaGVyZSdzIGhvdzoKKyMjIyBUd2Vha2luZyBHb29nbGVUZXN0
CiAKLVRoZSBtc3ZjXCBmb2xkZXIgY29udGFpbnMgdHdvIHNvbHV0aW9ucyB3aXRoIFZpc3VhbCBD
KysgcHJvamVjdHMuIE9wZW4gdGhlCi1gZ3Rlc3Quc2xuYCBvciBgZ3Rlc3QtbWQuc2xuYCBmaWxl
IHVzaW5nIFZpc3VhbCBTdHVkaW8sIGFuZCB5b3UgYXJlIHJlYWR5IHRvCi1idWlsZCBHb29nbGUg
VGVzdCB0aGUgc2FtZSB3YXkgeW91IGJ1aWxkIGFueSBWaXN1YWwgU3R1ZGlvIHByb2plY3QuIEZp
bGVzIHRoYXQKLWhhdmUgbmFtZXMgZW5kaW5nIHdpdGggLW1kIHVzZSBETEwgdmVyc2lvbnMgb2Yg
TWljcm9zb2Z0IHJ1bnRpbWUgbGlicmFyaWVzICh0aGUKLS9NRCBvciB0aGUgL01EZCBjb21waWxl
ciBvcHRpb24pLiBGaWxlcyB3aXRob3V0IHRoYXQgc3VmZml4IHVzZSBzdGF0aWMgdmVyc2lvbnMK
LW9mIHRoZSBydW50aW1lIGxpYnJhcmllcyAodGhlIC9NVCBvciB0aGUgL01UZCBvcHRpb24pLiBQ
bGVhc2Ugbm90ZSB0aGF0IG9uZSBtdXN0Ci11c2UgdGhlIHNhbWUgb3B0aW9uIHRvIGNvbXBpbGUg
Ym90aCBndGVzdCBhbmQgdGhlIHRlc3QgY29kZS4gSWYgeW91IHVzZSBWaXN1YWwKLVN0dWRpbyAy
MDA1IG9yIGFib3ZlLCB3ZSByZWNvbW1lbmQgdGhlIC1tZCB2ZXJzaW9uIGFzIC9NRCBpcyB0aGUg
ZGVmYXVsdCBmb3IgbmV3Ci1wcm9qZWN0cyBpbiB0aGVzZSB2ZXJzaW9ucyBvZiBWaXN1YWwgU3R1
ZGlvLgotCi1PbiBNYWMgT1MgWCwgb3BlbiB0aGUgYGd0ZXN0Lnhjb2RlcHJvamAgaW4gdGhlIGB4
Y29kZS9gIGZvbGRlciB1c2luZyBYY29kZS4KLUJ1aWxkIHRoZSAiZ3Rlc3QiIHRhcmdldC4gVGhl
IHVuaXZlcnNhbCBiaW5hcnkgZnJhbWV3b3JrIHdpbGwgZW5kIHVwIGluIHlvdXIKLXNlbGVjdGVk
IGJ1aWxkIGRpcmVjdG9yeSAoc2VsZWN0ZWQgaW4gdGhlIFhjb2RlICJQcmVmZXJlbmNlcy4uLiIg
LT4gIkJ1aWxkaW5nIgotcGFuZSBhbmQgZGVmYXVsdHMgdG8geGNvZGUvYnVpbGQpLiBBbHRlcm5h
dGl2ZWx5LCBhdCB0aGUgY29tbWFuZCBsaW5lLCBlbnRlcjoKLQotICAgIHhjb2RlYnVpbGQKLQot
VGhpcyB3aWxsIGJ1aWxkIHRoZSAiUmVsZWFzZSIgY29uZmlndXJhdGlvbiBvZiBndGVzdC5mcmFt
ZXdvcmsgaW4geW91ciBkZWZhdWx0Ci1idWlsZCBsb2NhdGlvbi4gU2VlIHRoZSAieGNvZGVidWls
ZCIgbWFuIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKLWJ1aWxkaW5nIGRpZmZlcmVu
dCBjb25maWd1cmF0aW9ucyBhbmQgYnVpbGRpbmcgaW4gZGlmZmVyZW50IGxvY2F0aW9ucy4KLQot
SWYgeW91IHdpc2ggdG8gdXNlIHRoZSBHb29nbGUgVGVzdCBYY29kZSBwcm9qZWN0IHdpdGggWGNv
ZGUgNC54IGFuZCBhYm92ZSwgeW91Ci1uZWVkIHRvIGVpdGhlcjoKLQotKiAgIHVwZGF0ZSB0aGUg
U0RLIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbiB4Y29kZS9Db25maWcvR2VuZXJhbC54Y29uZmln
LgotICAgIENvbW1lbnQgb3B0aW9ucyBgU0RLUk9PVGAsIGBNQUNPU19ERVBMT1lNRU5UX1RBUkdF
VGAsIGFuZCBgR0NDX1ZFUlNJT05gLiBJZgotICAgIHlvdSBjaG9vc2UgdGhpcyByb3V0ZSB5b3Ug
bG9zZSB0aGUgYWJpbGl0eSB0byB0YXJnZXQgZWFybGllciB2ZXJzaW9ucyBvZgotICAgIE1hY09T
IFguCi0qICAgSW5zdGFsbCBhbiBTREsgZm9yIGFuIGVhcmxpZXIgdmVyc2lvbi4gVGhpcyBkb2Vz
bid0IGFwcGVhciB0byBiZSBzdXBwb3J0ZWQKLSAgICBieSBBcHBsZSwgYnV0IGhhcyBiZWVuIHJl
cG9ydGVkIHRvIHdvcmsKLSAgICAoaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81
Mzc4NTE4KS4KLQotIyMjIFR3ZWFraW5nIEdvb2dsZSBUZXN0Ci0KLUdvb2dsZSBUZXN0IGNhbiBi
ZSB1c2VkIGluIGRpdmVyc2UgZW52aXJvbm1lbnRzLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9u
IG1heQorR29vZ2xlVGVzdCBjYW4gYmUgdXNlZCBpbiBkaXZlcnNlIGVudmlyb25tZW50cy4gVGhl
IGRlZmF1bHQgY29uZmlndXJhdGlvbiBtYXkKIG5vdCB3b3JrIChvciBtYXkgbm90IHdvcmsgd2Vs
bCkgb3V0IG9mIHRoZSBib3ggaW4gc29tZSBlbnZpcm9ubWVudHMuIEhvd2V2ZXIsCi15b3UgY2Fu
IGVhc2lseSB0d2VhayBHb29nbGUgVGVzdCBieSBkZWZpbmluZyBjb250cm9sIG1hY3JvcyBvbiB0
aGUgY29tcGlsZXIKK3lvdSBjYW4gZWFzaWx5IHR3ZWFrIEdvb2dsZVRlc3QgYnkgZGVmaW5pbmcg
Y29udHJvbCBtYWNyb3Mgb24gdGhlIGNvbXBpbGVyCiBjb21tYW5kIGxpbmUuIEdlbmVyYWxseSwg
dGhlc2UgbWFjcm9zIGFyZSBuYW1lZCBsaWtlIGBHVEVTVF9YWVpgIGFuZCB5b3UgZGVmaW5lCiB0
aGVtIHRvIGVpdGhlciAxIG9yIDAgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSBjZXJ0YWluIGZlYXR1
cmUuCiAKIFdlIGxpc3QgdGhlIG1vc3QgZnJlcXVlbnRseSB1c2VkIG1hY3JvcyBiZWxvdy4gRm9y
IGEgY29tcGxldGUgbGlzdCwgc2VlIGZpbGUKLVtpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXBvcnQuaF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVy
L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oKS4KLQotIyMjIENob29zaW5nIGEg
VFIxIFR1cGxlIExpYnJhcnkKLQotU29tZSBHb29nbGUgVGVzdCBmZWF0dXJlcyByZXF1aXJlIHRo
ZSBDKysgVGVjaG5pY2FsIFJlcG9ydCAxIChUUjEpIHR1cGxlCi1saWJyYXJ5LCB3aGljaCBpcyBu
b3QgeWV0IGF2YWlsYWJsZSB3aXRoIGFsbCBjb21waWxlcnMuIFRoZSBnb29kIG5ld3MgaXMgdGhh
dAotR29vZ2xlIFRlc3QgaW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgdGhhdCdzIGVu
b3VnaCBmb3IgaXRzIG93biBuZWVkLCBhbmQKLXdpbGwgYXV0b21hdGljYWxseSB1c2UgdGhpcyB3
aGVuIHRoZSBjb21waWxlciBkb2Vzbid0IHByb3ZpZGUgVFIxIHR1cGxlLgotCi1Vc3VhbGx5IHlv
dSBkb24ndCBuZWVkIHRvIGNhcmUgYWJvdXQgd2hpY2ggdHVwbGUgbGlicmFyeSBHb29nbGUgVGVz
dCB1c2VzLgotSG93ZXZlciwgaWYgeW91ciBwcm9qZWN0IGFscmVhZHkgdXNlcyBUUjEgdHVwbGUs
IHlvdSBuZWVkIHRvIHRlbGwgR29vZ2xlIFRlc3QgdG8KLXVzZSB0aGUgc2FtZSBUUjEgdHVwbGUg
bGlicmFyeSB0aGUgcmVzdCBvZiB5b3VyIHByb2plY3QgdXNlcywgb3IgdGhlIHR3byB0dXBsZQot
aW1wbGVtZW50YXRpb25zIHdpbGwgY2xhc2guIFRvIGRvIHRoYXQsIGFkZAotCi0gICAgLURHVEVT
VF9VU0VfT1dOX1RSMV9UVVBMRT0wCi0KLXRvIHRoZSBjb21waWxlciBmbGFncyB3aGlsZSBjb21w
aWxpbmcgR29vZ2xlIFRlc3QgYW5kIHlvdXIgdGVzdHMuIElmIHlvdSB3YW50IHRvCi1mb3JjZSBH
b29nbGUgVGVzdCB0byB1c2UgaXRzIG93biB0dXBsZSBsaWJyYXJ5LCBqdXN0IGFkZAotCi0gICAg
LURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0xCi0KLXRvIHRoZSBjb21waWxlciBmbGFncyBpbnN0
ZWFkLgotCi1JZiB5b3UgZG9uJ3Qgd2FudCBHb29nbGUgVGVzdCB0byB1c2UgdHVwbGUgYXQgYWxs
LCBhZGQKLQotICAgIC1ER1RFU1RfSEFTX1RSMV9UVVBMRT0wCi0KLWFuZCBhbGwgZmVhdHVyZXMg
dXNpbmcgdHVwbGUgd2lsbCBiZSBkaXNhYmxlZC4KK1tpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFz
dGVyL2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgpLgogCiAj
IyMgTXVsdGktdGhyZWFkZWQgVGVzdHMKIAotR29vZ2xlIFRlc3QgaXMgdGhyZWFkLXNhZmUgd2hl
cmUgdGhlIHB0aHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuIEFmdGVyCi1gI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiYCwgeW91IGNhbiBjaGVjayB0aGUgYEdURVNUX0lTX1RIUkVBRFNBRkVgIG1h
Y3JvIHRvIHNlZQotd2hldGhlciB0aGlzIGlzIHRoZSBjYXNlICh5ZXMgaWYgdGhlIG1hY3JvIGlz
IGAjZGVmaW5lZGAgdG8gMSwgbm8gaWYgaXQncwotdW5kZWZpbmVkLikuCitHb29nbGVUZXN0IGlz
IHRocmVhZC1zYWZlIHdoZXJlIHRoZSBwdGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxlLiBBZnRl
cgorYCNpbmNsdWRlICJndGVzdC9ndGVzdC5oImAsIHlvdSBjYW4gY2hlY2sgdGhlCitgR1RFU1Rf
SVNfVEhSRUFEU0FGRWAgbWFjcm8gdG8gc2VlIHdoZXRoZXIgdGhpcyBpcyB0aGUgY2FzZSAoeWVz
IGlmIHRoZSBtYWNybyBpcworYCNkZWZpbmVkYCB0byAxLCBubyBpZiBpdCdzIHVuZGVmaW5lZC4p
LgogCi1JZiBHb29nbGUgVGVzdCBkb2Vzbid0IGNvcnJlY3RseSBkZXRlY3Qgd2hldGhlciBwdGhy
ZWFkIGlzIGF2YWlsYWJsZSBpbiB5b3VyCitJZiBHb29nbGVUZXN0IGRvZXNuJ3QgY29ycmVjdGx5
IGRldGVjdCB3aGV0aGVyIHB0aHJlYWQgaXMgYXZhaWxhYmxlIGluIHlvdXIKIGVudmlyb25tZW50
LCB5b3UgY2FuIGZvcmNlIGl0IHdpdGgKIAogICAgIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MQpAQCAt
Mjg0LDE2ICsxOTgsMTYgQEAgb3IKIAogICAgIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MAogCi1XaGVu
IEdvb2dsZSBUZXN0IHVzZXMgcHRocmVhZCwgeW91IG1heSBuZWVkIHRvIGFkZCBmbGFncyB0byB5
b3VyIGNvbXBpbGVyIGFuZC9vcgorV2hlbiBHb29nbGVUZXN0IHVzZXMgcHRocmVhZCwgeW91IG1h
eSBuZWVkIHRvIGFkZCBmbGFncyB0byB5b3VyIGNvbXBpbGVyIGFuZC9vcgogbGlua2VyIHRvIHNl
bGVjdCB0aGUgcHRocmVhZCBsaWJyYXJ5LCBvciB5b3UnbGwgZ2V0IGxpbmsgZXJyb3JzLiBJZiB5
b3UgdXNlIHRoZQotQ01ha2Ugc2NyaXB0IG9yIHRoZSBkZXByZWNhdGVkIEF1dG90b29scyBzY3Jp
cHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91LgotSWYgeW91IHVzZSB5b3VyIG93biBi
dWlsZCBzY3JpcHQsIHlvdSdsbCBuZWVkIHRvIHJlYWQgeW91ciBjb21waWxlciBhbmQgbGlua2Vy
J3MKLW1hbnVhbCB0byBmaWd1cmUgb3V0IHdoYXQgZmxhZ3MgdG8gYWRkLgorQ01ha2Ugc2NyaXB0
LCB0aGlzIGlzIHRha2VuIGNhcmUgb2YgZm9yIHlvdS4gSWYgeW91IHVzZSB5b3VyIG93biBidWls
ZCBzY3JpcHQsCit5b3UnbGwgbmVlZCB0byByZWFkIHlvdXIgY29tcGlsZXIgYW5kIGxpbmtlcidz
IG1hbnVhbCB0byBmaWd1cmUgb3V0IHdoYXQgZmxhZ3MKK3RvIGFkZC4KIAogIyMjIEFzIGEgU2hh
cmVkIExpYnJhcnkgKERMTCkKIAotR29vZ2xlIFRlc3QgaXMgY29tcGFjdCwgc28gbW9zdCB1c2Vy
cyBjYW4gYnVpbGQgYW5kIGxpbmsgaXQgYXMgYSBzdGF0aWMgbGlicmFyeQotZm9yIHRoZSBzaW1w
bGljaXR5LiBZb3UgY2FuIGNob29zZSB0byB1c2UgR29vZ2xlIFRlc3QgYXMgYSBzaGFyZWQgbGli
cmFyeSAoa25vd24KK0dvb2dsZVRlc3QgaXMgY29tcGFjdCwgc28gbW9zdCB1c2VycyBjYW4gYnVp
bGQgYW5kIGxpbmsgaXQgYXMgYSBzdGF0aWMgbGlicmFyeQorZm9yIHRoZSBzaW1wbGljaXR5LiBZ
b3UgY2FuIGNob29zZSB0byB1c2UgR29vZ2xlVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5IChrbm93
bgogYXMgYSBETEwgb24gV2luZG93cykgaWYgeW91IHByZWZlci4KIAogVG8gY29tcGlsZSAqZ3Rl
c3QqIGFzIGEgc2hhcmVkIGxpYnJhcnksIGFkZApAQCAtMzEzLDIyICsyMjcsMjIgQEAgTm90ZTog
d2hpbGUgdGhlIGFib3ZlIHN0ZXBzIGFyZW4ndCB0ZWNobmljYWxseSBuZWNlc3NhcnkgdG9kYXkg
d2hlbiB1c2luZyBzb21lCiBjb21waWxlcnMgKGUuZy4gR0NDKSwgdGhleSBtYXkgYmVjb21lIG5l
Y2Vzc2FyeSBpbiB0aGUgZnV0dXJlLCBpZiB3ZSBkZWNpZGUgdG8KIGltcHJvdmUgdGhlIHNwZWVk
IG9mIGxvYWRpbmcgdGhlIGxpYnJhcnkgKHNlZQogPGh0dHA6Ly9nY2MuZ251Lm9yZy93aWtpL1Zp
c2liaWxpdHk+IGZvciBkZXRhaWxzKS4gVGhlcmVmb3JlIHlvdSBhcmUgcmVjb21tZW5kZWQKLXRv
IGFsd2F5cyBhZGQgdGhlIGFib3ZlIGZsYWdzIHdoZW4gdXNpbmcgR29vZ2xlIFRlc3QgYXMgYSBz
aGFyZWQgbGlicmFyeS4KLU90aGVyd2lzZSBhIGZ1dHVyZSByZWxlYXNlIG9mIEdvb2dsZSBUZXN0
IG1heSBicmVhayB5b3VyIGJ1aWxkIHNjcmlwdC4KK3RvIGFsd2F5cyBhZGQgdGhlIGFib3ZlIGZs
YWdzIHdoZW4gdXNpbmcgR29vZ2xlVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5LgorT3RoZXJ3aXNl
IGEgZnV0dXJlIHJlbGVhc2Ugb2YgR29vZ2xlVGVzdCBtYXkgYnJlYWsgeW91ciBidWlsZCBzY3Jp
cHQuCiAKICMjIyBBdm9pZGluZyBNYWNybyBOYW1lIENsYXNoZXMKIAogSW4gQysrLCBtYWNyb3Mg
ZG9uJ3Qgb2JleSBuYW1lc3BhY2VzLiBUaGVyZWZvcmUgdHdvIGxpYnJhcmllcyB0aGF0IGJvdGgg
ZGVmaW5lIGEKIG1hY3JvIG9mIHRoZSBzYW1lIG5hbWUgd2lsbCBjbGFzaCBpZiB5b3UgYCNpbmNs
dWRlYCBib3RoIGRlZmluaXRpb25zLiBJbiBjYXNlIGEKLUdvb2dsZSBUZXN0IG1hY3JvIGNsYXNo
ZXMgd2l0aCBhbm90aGVyIGxpYnJhcnksIHlvdSBjYW4gZm9yY2UgR29vZ2xlIFRlc3QgdG8KK0dv
b2dsZVRlc3QgbWFjcm8gY2xhc2hlcyB3aXRoIGFub3RoZXIgbGlicmFyeSwgeW91IGNhbiBmb3Jj
ZSBHb29nbGVUZXN0IHRvCiByZW5hbWUgaXRzIG1hY3JvIHRvIGF2b2lkIHRoZSBjb25mbGljdC4K
IAotU3BlY2lmaWNhbGx5LCBpZiBib3RoIEdvb2dsZSBUZXN0IGFuZCBzb21lIG90aGVyIGNvZGUg
ZGVmaW5lIG1hY3JvIEZPTywgeW91IGNhbgorU3BlY2lmaWNhbGx5LCBpZiBib3RoIEdvb2dsZVRl
c3QgYW5kIHNvbWUgb3RoZXIgY29kZSBkZWZpbmUgbWFjcm8gRk9PLCB5b3UgY2FuCiBhZGQKIAog
ICAgIC1ER1RFU1RfRE9OVF9ERUZJTkVfRk9PPTEKIAotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIHRv
IHRlbGwgR29vZ2xlIFRlc3QgdG8gY2hhbmdlIHRoZSBtYWNybydzIG5hbWUgZnJvbSBgRk9PYAor
dG8gdGhlIGNvbXBpbGVyIGZsYWdzIHRvIHRlbGwgR29vZ2xlVGVzdCB0byBjaGFuZ2UgdGhlIG1h
Y3JvJ3MgbmFtZSBmcm9tIGBGT09gCiB0byBgR1RFU1RfRk9PYC4gQ3VycmVudGx5IGBGT09gIGNh
biBiZSBgRkFJTGAsIGBTVUNDRUVEYCwgb3IgYFRFU1RgLiBGb3IKIGV4YW1wbGUsIHdpdGggYC1E
R1RFU1RfRE9OVF9ERUZJTkVfVEVTVD0xYCwgeW91J2xsIG5lZWQgdG8gd3JpdGUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY2hhbmdlcy5kaWZmIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvY2hhbmdlcy5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
OTlkNzk1ZTcwMDUzYWVkODM4ZmUwZTAxNWU5NjUwM2FmYzI1ODk4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2No
YW5nZXMuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLWRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjCi1pbmRleCAwOTA4MzU1MTYx
Mi4uYWM4NjYwMzU0Y2EgMTAwNjQ0Ci0tLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwotKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0
ZXN0LWRlYXRoLXRlc3QuY2MKLUBAIC0xMTUyLDIwICsxMTUyLDYgQEAgc3RydWN0IEV4ZWNEZWF0
aFRlc3RBcmdzIHsKLSAgIGludCBjbG9zZV9mZDsgICAgICAgLy8gRmlsZSBkZXNjcmlwdG9yIHRv
IGNsb3NlOyB0aGUgcmVhZCBlbmQgb2YgYSBwaXBlCi0gfTsKLSAKLS0jICBpZiBHVEVTVF9PU19N
QUMKLS1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7Ci0tICAvLyBXaGVuIEdvb2dsZSBUZXN0
IGlzIGJ1aWx0IGFzIGEgZnJhbWV3b3JrIG9uIE1hY09TIFgsIHRoZSBlbnZpcm9uIHZhcmlhYmxl
Ci0tICAvLyBpcyB1bmF2YWlsYWJsZS4gQXBwbGUncyBkb2N1bWVudGF0aW9uIChtYW4gZW52aXJv
bikgcmVjb21tZW5kcyB1c2luZwotLSAgLy8gX05TR2V0RW52aXJvbigpIGluc3RlYWQuCi0tICBy
ZXR1cm4gKl9OU0dldEVudmlyb24oKTsKLS19Ci0tIyAgZWxzZQotLS8vIFNvbWUgUE9TSVggcGxh
dGZvcm1zIGV4cGVjdCB5b3UgdG8gZGVjbGFyZSBlbnZpcm9uLiBleHRlcm4gIkMiIG1ha2VzCi0t
Ly8gaXQgcmVzaWRlIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgotLWV4dGVybiAiQyIgY2hhcioq
IGVudmlyb247Ci0taW5saW5lIGNoYXIqKiBHZXRFbnZpcm9uKCkgeyByZXR1cm4gZW52aXJvbjsg
fQotLSMgIGVuZGlmICAvLyBHVEVTVF9PU19NQUMKLS0KLSAjICBpZiAhR1RFU1RfT1NfUU5YCi0g
Ly8gVGhlIG1haW4gZnVuY3Rpb24gZm9yIGEgdGhyZWFkc2FmZS1zdHlsZSBkZWF0aCB0ZXN0IGNo
aWxkIHByb2Nlc3MuCi0gLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9uZSgpLWVk
IHByb2Nlc3MgYW5kIHRodXMgbXVzdCBhdm9pZAotQEAgLTExOTEsOCArMTE3NywxMSBAQCBzdGF0
aWMgaW50IEV4ZWNEZWF0aFRlc3RDaGlsZE1haW4odm9pZCogY2hpbGRfYXJnKSB7Ci0gICAvLyB1
bnNhZmUuICBTaW5jZSBleGVjdmUoKSBkb2Vzbid0IHNlYXJjaCB0aGUgUEFUSCwgdGhlIHVzZXIg
bXVzdAotICAgLy8gaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gdmlhIGEgdmFsaWQgcGF0aCB0aGF0
IGNvbnRhaW5zIGF0IGxlYXN0Ci0gICAvLyBvbmUgcGF0aCBzZXBhcmF0b3IuCi0tICBleGVjdmUo
YXJncy0+YXJndlswXSwgYXJncy0+YXJndiwgR2V0RW52aXJvbigpKTsKLS0gIERlYXRoVGVzdEFi
b3J0KHN0ZDo6c3RyaW5nKCJleGVjdmUoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4uKSBpbiAi
ICsKLSsgIC8vIFdlIGhhdmUgcmVwbGFjZWQgZXhlY3ZlKCkgd2l0aCBleGVjdigpIGZvciBXZWJL
aXQgdG8gYXZvaWQgdXNpbmcKLSsgIC8vIGVudmlyb24uIEl0IHNob3VsZCBiZSBzYWZlIGJlY2F1
c2UgZXhlY3YoKSBpcyBqdXN0IGEgc2ltcGxlIHdyYXBwZXIKLSsgIC8vIG9mIGV4ZWN2ZSgpLgot
KyAgZXhlY3YoYXJncy0+YXJndlswXSwgYXJncy0+YXJndik7Ci0rICBEZWF0aFRlc3RBYm9ydChz
dGQ6OnN0cmluZygiZXhlY3YoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4uKSBpbiAiICsKLSAg
ICAgICAgICAgICAgICAgIG9yaWdpbmFsX2RpciArICIgZmFpbGVkOiAiICsKLSAgICAgICAgICAg
ICAgICAgIEdldExhc3RFcnJub0Rlc2NyaXB0aW9uKCkpOwotICAgcmV0dXJuIEVYSVRfRkFJTFVS
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0LnBjLmlu
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3QucGMuaW4KaW5kZXggZTc5Njdh
ZDU2ZmYyYzMyZWQ0YmEwNjcwM2FlYTUyNWRjYWQyY2U3Yi4uYjQxNDhmYWU0MmIxY2Q3ODJkYzFi
NmE1ZDFkN2UxZTNhOGU0ZTY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
Y21ha2UvZ3Rlc3QucGMuaW4KKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rl
c3QucGMuaW4KQEAgLTYsNCArNiw0IEBAIERlc2NyaXB0aW9uOiBHb29nbGVUZXN0ICh3aXRob3V0
IG1haW4oKSBmdW5jdGlvbikKIFZlcnNpb246IEBQUk9KRUNUX1ZFUlNJT05ACiBVUkw6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdAogTGliczogLUwke2xpYmRpcn0gLWxndGVz
dCBAQ01BS0VfVEhSRUFEX0xJQlNfSU5JVEAKLUNmbGFnczogLUkke2luY2x1ZGVkaXJ9IEBHVEVT
VF9IQVNfUFRIUkVBRF9NQUNST0AgQENNQUtFX1RIUkVBRF9MSUJTX0lOSVRACitDZmxhZ3M6IC1J
JHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURfTUFDUk9ACmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdF9tYWluLnBjLmluIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3RfbWFpbi5wYy5pbgppbmRleCBmZTI1ZDljNzNjNjgzYjY0
MTdiOTliYjcwM2MxM2FlMTZiYThhOTUyLi4zOGM4OGM1NGQ1Mzg2ZDk2MGVjNDhkOWY3NjY2NGVi
OTc5OGI0ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVz
dF9tYWluLnBjLmluCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0X21h
aW4ucGMuaW4KQEAgLTUsNiArNSw2IEBAIE5hbWU6IGd0ZXN0X21haW4KIERlc2NyaXB0aW9uOiBH
b29nbGVUZXN0ICh3aXRoIG1haW4oKSBmdW5jdGlvbikKIFZlcnNpb246IEBQUk9KRUNUX1ZFUlNJ
T05ACiBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdAotUmVxdWlyZXM6
IGd0ZXN0CitSZXF1aXJlczogZ3Rlc3QgPSBAUFJPSkVDVF9WRVJTSU9OQAogTGliczogLUwke2xp
YmRpcn0gLWxndGVzdF9tYWluIEBDTUFLRV9USFJFQURfTElCU19JTklUQAotQ2ZsYWdzOiAtSSR7
aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01BQ1JPQCBAQ01BS0VfVEhSRUFEX0xJQlNf
SU5JVEAKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9IEBHVEVTVF9IQVNfUFRIUkVBRF9NQUNST0AK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2ludGVybmFsX3V0aWxz
LmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21h
a2UKaW5kZXggOGMxZjliYTk5Y2Y1MDU3NGY2NjlkZDdkZWJhMzI0ZGNlNDA1OTVmMy4uZGMyYjY4
NWMzYThmMDk5NTM4YTEzNTdlYmRlMjk2ODZjNjRiMDZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKQEAgLTEyLDYgKzEyLDEw
IEBACiAjICAgVGVzdCBhbmQgR29vZ2xlIE1vY2sncyBvcHRpb24oKSBkZWZpbml0aW9ucywgYW5k
IHRodXMgbXVzdCBiZQogIyAgIGNhbGxlZCAqYWZ0ZXIqIHRoZSBvcHRpb25zIGhhdmUgYmVlbiBk
ZWZpbmVkLgogCitpZiAoUE9MSUNZIENNUDAwNTQpCisgIGNtYWtlX3BvbGljeShTRVQgQ01QMDA1
NCBORVcpCitlbmRpZiAoUE9MSUNZIENNUDAwNTQpCisKICMgVHdlYWtzIENNYWtlJ3MgZGVmYXVs
dCBjb21waWxlci9saW5rZXIgc2V0dGluZ3MgdG8gc3VpdCBHb29nbGUgVGVzdCdzIG5lZWRzLgog
IwogIyBUaGlzIG11c3QgYmUgYSBtYWNybygpLCBhcyBpbnNpZGUgYSBmdW5jdGlvbiBzdHJpbmco
KSBjYW4gb25seQpAQCAtMjIsNiArMjYsOCBAQCBtYWNybyhmaXhfZGVmYXVsdF9jb21waWxlcl9z
ZXR0aW5nc18pCiAgICAgIyBUaGlzIHJlcGxhY2VtZW50IGNvZGUgaXMgdGFrZW4gZnJvbSBzYW1w
bGUgaW4gdGhlIENNYWtlIFdpa2kgYXQKICAgICAjIGh0dHBzOi8vZ2l0bGFiLmtpdHdhcmUuY29t
L2NtYWtlL2NvbW11bml0eS93aWtpcy9GQVEjZHluYW1pYy1yZXBsYWNlLgogICAgIGZvcmVhY2gg
KGZsYWdfdmFyCisgICAgICAgICAgICAgQ01BS0VfQ19GTEFHUyBDTUFLRV9DX0ZMQUdTX0RFQlVH
IENNQUtFX0NfRkxBR1NfUkVMRUFTRQorICAgICAgICAgICAgIENNQUtFX0NfRkxBR1NfTUlOU0la
RVJFTCBDTUFLRV9DX0ZMQUdTX1JFTFdJVEhERUJJTkZPCiAgICAgICAgICAgICAgQ01BS0VfQ1hY
X0ZMQUdTIENNQUtFX0NYWF9GTEFHU19ERUJVRyBDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRQogICAg
ICAgICAgICAgIENNQUtFX0NYWF9GTEFHU19NSU5TSVpFUkVMIENNQUtFX0NYWF9GTEFHU19SRUxX
SVRIREVCSU5GTykKICAgICAgIGlmIChOT1QgQlVJTERfU0hBUkVEX0xJQlMgQU5EIE5PVCBndGVz
dF9mb3JjZV9zaGFyZWRfY3J0KQpAQCAtNTYsNyArNjIsNiBAQCBtYWNybyhjb25maWdfY29tcGls
ZXJfYW5kX2xpbmtlcikKICAgdW5zZXQoR1RFU1RfSEFTX1BUSFJFQUQpCiAgIGlmIChOT1QgZ3Rl
c3RfZGlzYWJsZV9wdGhyZWFkcyBBTkQgTk9UIE1JTkdXKQogICAgICMgRGVmaW5lcyBDTUFLRV9V
U0VfUFRIUkVBRFNfSU5JVCBhbmQgQ01BS0VfVEhSRUFEX0xJQlNfSU5JVC4KLSAgICBzZXQoVEhS
RUFEU19QUkVGRVJfUFRIUkVBRF9GTEFHIE9OKQogICAgIGZpbmRfcGFja2FnZShUaHJlYWRzKQog
ICAgIGlmIChDTUFLRV9VU0VfUFRIUkVBRFNfSU5JVCkKICAgICAgIHNldChHVEVTVF9IQVNfUFRI
UkVBRCBPTikKQEAgLTY3LDM3ICs3MiwyMyBAQCBtYWNybyhjb25maWdfY29tcGlsZXJfYW5kX2xp
bmtlcikKICAgaWYgKE1TVkMpCiAgICAgIyBOZXdsaW5lcyBpbnNpZGUgZmxhZ3MgdmFyaWFibGVz
IGJyZWFrIENNYWtlJ3MgTk1ha2UgZ2VuZXJhdG9yLgogICAgICMgVE9ETyh2bGFkbEBnb29nbGUu
Y29tKTogQWRkIC1SVENzIGFuZCAtUlRDdSB0byBkZWJ1ZyBidWlsZHMuCi0gICAgc2V0KGN4eF9i
YXNlX2ZsYWdzICItR1MgLVc0IC1XWCAtd2Q0MjUxIC13ZDQyNzUgLW5vbG9nbyAtSiAtWmkiKQot
ICAgIGlmIChNU1ZDX1ZFUlNJT04gTEVTUyAxNDAwKSAgIyAxNDAwIGlzIFZpc3VhbCBTdHVkaW8g
MjAwNQotICAgICAgIyBTdXBwcmVzcyBzcHVyaW91cyB3YXJuaW5ncyBNU1ZDIDcuMSBzb21ldGlt
ZXMgaXNzdWVzLgotICAgICAgIyBGb3JjaW5nIHZhbHVlIHRvIGJvb2wuCi0gICAgICBzZXQoY3h4
X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ4MDAiKQotICAgICAgIyBDb3B5IGNv
bnN0cnVjdG9yIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9yIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQu
Ci0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ1MTEgLXdk
NDUxMiIpCi0gICAgICAjIENvbXBhdGliaWxpdHkgd2FybmluZ3Mgbm90IGFwcGxpY2FibGUgdG8g
R29vZ2xlIFRlc3QuCi0gICAgICAjIFJlc29sdmVkIG92ZXJsb2FkIHdhcyBmb3VuZCBieSBhcmd1
bWVudC1kZXBlbmRlbnQgbG9va3VwLgotICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9i
YXNlX2ZsYWdzfSAtd2Q0Njc1IikKLSAgICBlbmRpZigpCi0gICAgaWYgKE1TVkNfVkVSU0lPTiBM
RVNTIDE1MDApICAjIDE1MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDA4Ci0gICAgICAjIENvbmRpdGlv
bmFsIGV4cHJlc3Npb24gaXMgY29uc3RhbnQuCi0gICAgICAjIFdoZW4gY29tcGlsaW5nIHdpdGgg
L1c0LCB3ZSBnZXQgc2V2ZXJhbCBpbnN0YW5jZXMgb2YgQzQxMjcKLSAgICAgICMgKENvbmRpdGlv
bmFsIGV4cHJlc3Npb24gaXMgY29uc3RhbnQpLiBJbiBvdXIgY29kZSwgd2UgZGlzYWJsZSB0aGF0
Ci0gICAgICAjIHdhcm5pbmcgb24gYSBjYXNlLWJ5LWNhc2UgYmFzaXMuIEhvd2V2ZXIsIG9uIFZp
c3VhbCBTdHVkaW8gMjAwNSwKLSAgICAgICMgdGhlIHdhcm5pbmcgZmlyZXMgb24gc3RkOjpsaXN0
LiBUaGVyZWZvcmUgb24gdGhhdCBjb21waWxlciBhbmQgZWFybGllciwKLSAgICAgICMgd2UgZGlz
YWJsZSB0aGUgd2FybmluZyBwcm9qZWN0LXdpZGUuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3Mg
IiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQxMjciKQotICAgIGVuZGlmKCkKLSAgICBpZiAoTk9UIChN
U1ZDX1ZFUlNJT04gTEVTUyAxNzAwKSkgICMgMTcwMCBpcyBWaXN1YWwgU3R1ZGlvIDIwMTIuCi0g
ICAgICAjIFN1cHByZXNzICJ1bnJlYWNoYWJsZSBjb2RlIiB3YXJuaW5nIG9uIFZTIDIwMTIgYW5k
IGxhdGVyLgotICAgICAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMyMzI2
NjkgZXhwbGFpbnMgdGhlIGlzc3VlLgotICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9i
YXNlX2ZsYWdzfSAtd2Q0NzAyIikKLSAgICBlbmRpZigpCi0KKyAgICBzZXQoY3h4X2Jhc2VfZmxh
Z3MgIi1HUyAtVzQgLVdYIC13ZDQyNTEgLXdkNDI3NSAtbm9sb2dvIC1KIikKICAgICBzZXQoY3h4
X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC1EX1VOSUNPREUgLURVTklDT0RFIC1EV0lO
MzIgLURfV0lOMzIiKQogICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30g
LURTVFJJQ1QgLURXSU4zMl9MRUFOX0FORF9NRUFOIikKICAgICBzZXQoY3h4X2V4Y2VwdGlvbl9m
bGFncyAiLUVIc2MgLURfSEFTX0VYQ0VQVElPTlM9MSIpCiAgICAgc2V0KGN4eF9ub19leGNlcHRp
b25fZmxhZ3MgIi1FSHMtYy0gLURfSEFTX0VYQ0VQVElPTlM9MCIpCiAgICAgc2V0KGN4eF9ub19y
dHRpX2ZsYWdzICItR1ItIikKKyAgICAjIFN1cHByZXNzICJ1bnJlYWNoYWJsZSBjb2RlIiB3YXJu
aW5nCisgICAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMyMzI2NjkgZXhw
bGFpbnMgdGhlIGlzc3VlLgorICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFn
c30gLXdkNDcwMiIpCisgICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMgc291cmNlIGZpbGVzIGFzIFVU
Ri04IGVuY29kZWQuCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAt
dXRmLTgiKQorICBlbHNlaWYgKENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiQ2xhbmci
KQorICAgIHNldChjeHhfYmFzZV9mbGFncyAiLVdhbGwgLVdzaGFkb3cgLVdlcnJvciAtV2NvbnZl
cnNpb24iKQorICAgIHNldChjeHhfZXhjZXB0aW9uX2ZsYWdzICItZmV4Y2VwdGlvbnMiKQorICAg
IHNldChjeHhfbm9fZXhjZXB0aW9uX2ZsYWdzICItZm5vLWV4Y2VwdGlvbnMiKQorICAgIHNldChj
eHhfc3RyaWN0X2ZsYWdzICItVyAtV3BvaW50ZXItYXJpdGggLVdyZXR1cm4tdHlwZSAtV2Nhc3Qt
cXVhbCAtV3dyaXRlLXN0cmluZ3MgLVdzd2l0Y2ggLVd1bnVzZWQtcGFyYW1ldGVyIC1XY2FzdC1h
bGlnbiAtV2NoYXItc3Vic2NyaXB0cyAtV2lubGluZSAtV3JlZHVuZGFudC1kZWNscyIpCisgICAg
c2V0KGN4eF9ub19ydHRpX2ZsYWdzICItZm5vLXJ0dGkiKQogICBlbHNlaWYgKENNQUtFX0NPTVBJ
TEVSX0lTX0dOVUNYWCkKICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIi1XYWxsIC1Xc2hhZG93IC1X
ZXJyb3IiKQogICAgIGlmKE5PVCBDTUFLRV9DWFhfQ09NUElMRVJfVkVSU0lPTiBWRVJTSU9OX0xF
U1MgNy4wLjApCkBAIC0xNDgsNyArMTM5LDYgQEAgbWFjcm8oY29uZmlnX2NvbXBpbGVyX2FuZF9s
aW5rZXIpCiAgICAgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke2N4eF9iYXNlX2ZsYWdzfSAke2N4eF9u
b19leGNlcHRpb25fZmxhZ3N9IikKICAgc2V0KGN4eF9kZWZhdWx0ICIke2N4eF9leGNlcHRpb259
IikKICAgc2V0KGN4eF9ub19ydHRpICIke2N4eF9kZWZhdWx0fSAke2N4eF9ub19ydHRpX2ZsYWdz
fSIpCi0gIHNldChjeHhfdXNlX293bl90dXBsZSAiJHtjeHhfZGVmYXVsdH0gLURHVEVTVF9VU0Vf
T1dOX1RSMV9UVVBMRT0xIikKIAogICAjIEZvciBidWlsZGluZyB0aGUgZ3Rlc3QgbGlicmFyaWVz
LgogICBzZXQoY3h4X3N0cmljdCAiJHtjeHhfZGVmYXVsdH0gJHtjeHhfc3RyaWN0X2ZsYWdzfSIp
CkBAIC0xNjcsNiArMTU3LDIyIEBAIGZ1bmN0aW9uKGN4eF9saWJyYXJ5X3dpdGhfdHlwZSBuYW1l
IHR5cGUgY3h4X2ZsYWdzKQogICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtuYW1lfQogICAgIFBS
T1BFUlRJRVMKICAgICBERUJVR19QT1NURklYICJkIikKKyAgIyBTZXQgdGhlIG91dHB1dCBkaXJl
Y3RvcnkgZm9yIGJ1aWxkIGFydGlmYWN0cworICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtuYW1l
fQorICAgIFBST1BFUlRJRVMKKyAgICBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vYmluIgorICAgIExJQlJBUllfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9C
SU5BUllfRElSfS9saWIiCisgICAgQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX0JJ
TkFSWV9ESVJ9L2xpYiIKKyAgICBQREJfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllf
RElSfS9iaW4iKQorICAjIG1ha2UgUERCcyBtYXRjaCBsaWJyYXJ5IG5hbWUKKyAgZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShwZGJfZGVidWdfcG9zdGZpeCAke25hbWV9IERFQlVHX1BPU1RGSVgpCisgIHNl
dF90YXJnZXRfcHJvcGVydGllcygke25hbWV9CisgICAgUFJPUEVSVElFUworICAgIFBEQl9OQU1F
ICIke25hbWV9IgorICAgIFBEQl9OQU1FX0RFQlVHICIke25hbWV9JHtwZGJfZGVidWdfcG9zdGZp
eH0iCisgICAgQ09NUElMRV9QREJfTkFNRSAiJHtuYW1lfSIKKyAgICBDT01QSUxFX1BEQl9OQU1F
X0RFQlVHICIke25hbWV9JHtwZGJfZGVidWdfcG9zdGZpeH0iKQorCiAgIGlmIChCVUlMRF9TSEFS
RURfTElCUyBPUiB0eXBlIFNUUkVRVUFMICJTSEFSRUQiKQogICAgIHNldF90YXJnZXRfcHJvcGVy
dGllcygke25hbWV9CiAgICAgICBQUk9QRVJUSUVTCkBAIC0xODQsNiArMTkwLDEwIEBAIGZ1bmN0
aW9uKGN4eF9saWJyYXJ5X3dpdGhfdHlwZSBuYW1lIHR5cGUgY3h4X2ZsYWdzKQogICAgIGVuZGlm
KCkKICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtuYW1lfSBQVUJMSUMgJHt0aHJlYWRzX3Nw
ZWN9KQogICBlbmRpZigpCisKKyAgaWYgKE5PVCAiJHtDTUFLRV9WRVJTSU9OfSIgVkVSU0lPTl9M
RVNTICIzLjgiKQorICAgIHRhcmdldF9jb21waWxlX2ZlYXR1cmVzKCR7bmFtZX0gUFVCTElDIGN4
eF9zdGRfMTEpCisgIGVuZGlmKCkKIGVuZGZ1bmN0aW9uKCkKIAogIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBA
IC0yMDQsNyArMjE0LDcgQEAgZW5kZnVuY3Rpb24oKQogIyBpcyBidWlsdCBmcm9tIHRoZSBnaXZl
biBzb3VyY2UgZmlsZXMgd2l0aCB0aGUgZ2l2ZW4gY29tcGlsZXIgZmxhZ3MuCiBmdW5jdGlvbihj
eHhfZXhlY3V0YWJsZV93aXRoX2ZsYWdzIG5hbWUgY3h4X2ZsYWdzIGxpYnMpCiAgIGFkZF9leGVj
dXRhYmxlKCR7bmFtZX0gJHtBUkdOfSkKLSAgaWYgKE1TVkMgQU5EIChOT1QgKE1TVkNfVkVSU0lP
TiBMRVNTIDE3MDApKSkgICMgMTcwMCBpcyBWaXN1YWwgU3R1ZGlvIDIwMTIuCisgIGlmIChNU1ZD
KQogICAgICMgQmlnT2JqIHJlcXVpcmVkIGZvciB0ZXN0cy4KICAgICBzZXQoY3h4X2ZsYWdzICIk
e2N4eF9mbGFnc30gLWJpZ29iaiIpCiAgIGVuZGlmKCkKQEAgLTIzNiw3ICsyNDYsMTMgQEAgZnVu
Y3Rpb24oY3h4X2V4ZWN1dGFibGUgbmFtZSBkaXIgbGlicykKIGVuZGZ1bmN0aW9uKCkKIAogIyBT
ZXRzIFBZVEhPTklOVEVSUF9GT1VORCBhbmQgUFlUSE9OX0VYRUNVVEFCTEUuCi1maW5kX3BhY2th
Z2UoUHl0aG9uSW50ZXJwKQoraWYgKCIke0NNQUtFX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIjMu
MTIuMCIpCisgIGZpbmRfcGFja2FnZShQeXRob25JbnRlcnApCitlbHNlKCkKKyAgZmluZF9wYWNr
YWdlKFB5dGhvbiBDT01QT05FTlRTIEludGVycHJldGVyKQorICBzZXQoUFlUSE9OSU5URVJQX0ZP
VU5EICR7UHl0aG9uX0ludGVycHJldGVyX0ZPVU5EfSkKKyAgc2V0KFBZVEhPTl9FWEVDVVRBQkxF
ICR7UHl0aG9uX0VYRUNVVEFCTEV9KQorZW5kaWYoKQogCiAjIGN4eF90ZXN0X3dpdGhfZmxhZ3Mo
bmFtZSBjeHhfZmxhZ3MgbGlicyBzcmNzLi4uKQogIwpAQCAtMjQ0LDcgKzI2MCw3IEBAIGZpbmRf
cGFja2FnZShQeXRob25JbnRlcnApCiAjIGZyb20gdGhlIGdpdmVuIHNvdXJjZSBmaWxlcyB3aXRo
IHRoZSBnaXZlbiBjb21waWxlciBmbGFncy4KIGZ1bmN0aW9uKGN4eF90ZXN0X3dpdGhfZmxhZ3Mg
bmFtZSBjeHhfZmxhZ3MgbGlicykKICAgY3h4X2V4ZWN1dGFibGVfd2l0aF9mbGFncygke25hbWV9
ICIke2N4eF9mbGFnc30iICIke2xpYnN9IiAke0FSR059KQotICBhZGRfdGVzdChOQU1FICR7bmFt
ZX0gQ09NTUFORCAke25hbWV9KQorICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfSBDT01NQU5EICIk
PFRBUkdFVF9GSUxFOiR7bmFtZX0+IikKIGVuZGZ1bmN0aW9uKCkKIAogIyBjeHhfdGVzdChuYW1l
IGxpYnMgc3Jjcy4uLikKQEAgLTI2MywzMyArMjc5LDMwIEBAIGVuZGZ1bmN0aW9uKCkKICMgdGVz
dC9uYW1lLnB5LiAgSXQgZG9lcyBub3RoaW5nIGlmIFB5dGhvbiBpcyBub3QgaW5zdGFsbGVkLgog
ZnVuY3Rpb24ocHlfdGVzdCBuYW1lKQogICBpZiAoUFlUSE9OSU5URVJQX0ZPVU5EKQotICAgIGlm
ICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRFUiAz
LjEpCisgICAgaWYgKCIke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lP
Tn0iIFZFUlNJT05fR1JFQVRFUiAzLjEpCiAgICAgICBpZiAoQ01BS0VfQ09ORklHVVJBVElPTl9U
WVBFUykKLQkjIE11bHRpLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBmb3IgVmlz
dWFsIFN0dWRpbyBzYXZlCi0JIyBvdXRwdXQgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgQ01BS0VfQ1VS
UkVOVF9CSU5BUllfRElSIChEZWJ1ZywKLQkjIFJlbGVhc2UgZXRjLiksIHNvIHdlIGhhdmUgdG8g
cHJvdmlkZSBpdCBoZXJlLgotICAgICAgICBhZGRfdGVzdCgKLSAgICAgICAgICBOQU1FICR7bmFt
ZX0KKyAgICAgICAgIyBNdWx0aS1jb25maWd1cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMgYXMgZm9y
IFZpc3VhbCBTdHVkaW8gc2F2ZQorICAgICAgICAjIG91dHB1dCBpbiBhIHN1YmRpcmVjdG9yeSBv
ZiBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIgKERlYnVnLAorICAgICAgICAjIFJlbGVhc2UgZXRj
LiksIHNvIHdlIGhhdmUgdG8gcHJvdmlkZSBpdCBoZXJlLgorICAgICAgICBhZGRfdGVzdChOQU1F
ICR7bmFtZX0KICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS90ZXN0LyR7bmFtZX0ucHkKICAgICAgICAgICAgICAgLS1idWls
ZF9kaXI9JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyQ8Q09ORklHPiAke0FSR059KQogICAg
ICAgZWxzZSAoQ01BS0VfQ09ORklHVVJBVElPTl9UWVBFUykKLQkjIFNpbmdsZS1jb25maWd1cmF0
aW9uIGJ1aWxkIGdlbmVyYXRvcnMgbGlrZSBNYWtlZmlsZSBnZW5lcmF0b3JzCi0JIyBkb24ndCBo
YXZlIHN1YmRpcnMgYmVsb3cgQ01BS0VfQ1VSUkVOVF9CSU5BUllfRElSLgotICAgICAgICBhZGRf
dGVzdCgKLSAgICAgICAgICBOQU1FICR7bmFtZX0KKyAgICAgICAgIyBTaW5nbGUtY29uZmlndXJh
dGlvbiBidWlsZCBnZW5lcmF0b3JzIGxpa2UgTWFrZWZpbGUgZ2VuZXJhdG9ycworICAgICAgICAj
IGRvbid0IGhhdmUgc3ViZGlycyBiZWxvdyBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIuCisgICAg
ICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfQogICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1lfS5weQotICAg
ICAgICAgICAgICAtLWJ1aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0gJHtBUkdO
fSkKKyAgICAgICAgICAgIC0tYnVpbGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSAk
e0FSR059KQogICAgICAgZW5kaWYgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCi0gICAgZWxz
ZSAoJHtDTUFLRV9NQUpPUl9WRVJTSU9OfS4ke0NNQUtFX01JTk9SX1ZFUlNJT059IEdSRUFURVIg
My4xKQorICAgIGVsc2UoKQogICAgICAgIyAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0gaXMg
a25vd24gYXQgY29uZmlndXJhdGlvbiB0aW1lLCBzbyB3ZSBjYW4KICAgICAgICMgZGlyZWN0bHkg
YmluZCBpdCBmcm9tIGNtYWtlLiAke0NURVNUX0NPTkZJR1VSQVRJT05fVFlQRX0gaXMga25vd24K
ICAgICAgICMgb25seSBhdCBjdGVzdCBydW50aW1lIChieSBjYWxsaW5nIGN0ZXN0IC1jIDxDb25m
aWd1cmF0aW9uPiksIHNvCiAgICAgICAjIHdlIGhhdmUgdG8gZXNjYXBlICQgdG8gZGVsYXkgdmFy
aWFibGUgc3Vic3RpdHV0aW9uIGhlcmUuCi0gICAgICBhZGRfdGVzdCgKLSAgICAgICAgJHtuYW1l
fQotICAgICAgICAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJ
Un0vdGVzdC8ke25hbWV9LnB5CisgICAgICBhZGRfdGVzdChOQU1FICR7bmFtZX0KKyAgICAgICAg
Q09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
dGVzdC8ke25hbWV9LnB5CiAgICAgICAgICAgLS1idWlsZF9kaXI9JHtDTUFLRV9DVVJSRU5UX0JJ
TkFSWV9ESVJ9L1wke0NURVNUX0NPTkZJR1VSQVRJT05fVFlQRX0gJHtBUkdOfSkKLSAgICBlbmRp
ZiAoJHtDTUFLRV9NQUpPUl9WRVJTSU9OfS4ke0NNQUtFX01JTk9SX1ZFUlNJT059IEdSRUFURVIg
My4xKQorICAgIGVuZGlmKCkKICAgZW5kaWYoUFlUSE9OSU5URVJQX0ZPVU5EKQogZW5kZnVuY3Rp
b24oKQogCkBAIC0zMDYsNiArMzE5LDE4IEBAIGZ1bmN0aW9uKGluc3RhbGxfcHJvamVjdCkKICAg
ICAgIFJVTlRJTUUgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9CSU5ESVJ9IgogICAgICAg
QVJDSElWRSBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0iCiAgICAgICBMSUJS
QVJZIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfSIpCisgICAgaWYoQ01BS0Vf
Q1hYX0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkMiKQorICAgICAgIyBJbnN0YWxsIFBEQnMKKyAg
ICAgIGZvcmVhY2godCAke0FSR059KQorICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KHRfcGRi
X25hbWUgJHt0fSBDT01QSUxFX1BEQl9OQU1FKQorICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5
KHRfcGRiX25hbWVfZGVidWcgJHt0fSBDT01QSUxFX1BEQl9OQU1FX0RFQlVHKQorICAgICAgICBn
ZXRfdGFyZ2V0X3Byb3BlcnR5KHRfcGRiX291dHB1dF9kaXJlY3RvcnkgJHt0fSBQREJfT1VUUFVU
X0RJUkVDVE9SWSkKKyAgICAgICAgaW5zdGFsbChGSUxFUworICAgICAgICAgICIke3RfcGRiX291
dHB1dF9kaXJlY3Rvcnl9L1wke0NNQUtFX0lOU1RBTExfQ09ORklHX05BTUV9LyQ8JDxDT05GSUc6
RGVidWc+OiR7dF9wZGJfbmFtZV9kZWJ1Z30+JDwkPE5PVDokPENPTkZJRzpEZWJ1Zz4+OiR7dF9w
ZGJfbmFtZX0+LnBkYiIKKyAgICAgICAgICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElC
RElSfQorICAgICAgICAgIE9QVElPTkFMKQorICAgICAgZW5kZm9yZWFjaCgpCisgICAgZW5kaWYo
KQogICAgICMgQ29uZmlndXJlIGFuZCBpbnN0YWxsIHBrZ2NvbmZpZyBmaWxlcy4KICAgICBmb3Jl
YWNoKHQgJHtBUkdOfSkKICAgICAgIHNldChjb25maWd1cmVkX3BjICIke2dlbmVyYXRlZF9kaXJ9
LyR7dH0ucGMiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIv
Z3Rlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3QuY2Jw
cm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWMzMDU0Yjg1MWRhYjRkOGZlNjhj
NTYzZDk1NTI2NjgzMTgyNGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0LmNicHJvagor
KysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAgPFByb3BlcnR5R3JvdXA+DQotICAg
IDxQcm9qZWN0R3VpZD57YmNhMzdhNzItNWIwNy00NmNmLWI0NGUtODlmOGUwNjQ1MWEyfTwvUHJv
amVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSInJChDb25maWcpJz09JyciPlJlbGVh
c2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNlKSchPScnIj4NCi0gICAgPEJhc2U+
dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2ZnXzEpJyE9JyciPg0KLSAgICA8QmFz
ZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2ZnXzE+DQotICAgIDxDZmdQYXJlbnQ+
QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9yICckKENmZ18yKSchPScnIj4NCi0g
ICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRydWU8L0NmZ18yPg0KLSAgICA8Q2Zn
UGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JT
cGVlZD50cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPE91dHB1dEV4dD5saWI8L091
dHB1dEV4dD4NCi0gICAgPERDQ19DQnVpbGRlck91dHB1dD5KUEhORTwvRENDX0NCdWlsZGVyT3V0
cHV0Pg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAgIDxEeW5hbWljUlRM
PnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxVc2VQYWNrYWdlcz50cnVlPC9Vc2VQYWNrYWdlcz4N
Ci0gICAgPFByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L1Byb2plY3RUeXBlPg0KLSAgICA8
QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQ
YWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5i
YW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwu
YnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3Mu
YnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5i
cGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUu
YnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7
dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2Nv
bHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO2RjbFppcEZv
cmdlZDExLmJwaTt2Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9CRFMyMDA2LmJwaTtHUjMyX0RTR05f
QkRTMjAwNi5icGk7SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29yZUQxMVIuYnBpO0p2U3lzdGVtRDEx
Ui5icGk7SnZTdGRDdHJsc0QxMVIuYnBpO0p2QXBwRnJtRDExUi5icGk7SnZCYW5kc0QxMVIuYnBp
O0p2REJEMTFSLmJwaTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQxMVIuYnBpO0p2Q21wRDExUi5icGk7
SnZDcnlwdEQxMVIuYnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1c3RvbUQxMVIuYnBpO0p2RG9ja2lu
Z0QxMVIuYnBpO0p2RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVESUQxMVIuYnBpO0p2R2xvYnVzRDEx
Ui5icGk7SnZITUlEMTFSLmJwaTtKdkludGVycHJldGVyRDExUi5icGk7SnZKYW5zRDExUi5icGk7
SnZNYW5hZ2VkVGhyZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJwaTtKdk5ldEQxMVIuYnBpO0p2UGFn
ZUNvbXBzRDExUi5icGk7SnZQbHVnaW5EMTFSLmJwaTtKdlByaW50UHJldmlld0QxMVIuYnBpO0p2
UnVudGltZURlc2lnbkQxMVIuYnBpO0p2VGltZUZyYW1ld29ya0QxMVIuYnBpO0p2VmFsaWRhdG9y
c0QxMVIuYnBpO0p2V2l6YXJkRDExUi5icGk7SnZYUEN0cmxzRDExUi5icGk7VmNsU21wLmJwaTtD
RXhjZXB0aW9uRXhwZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0cz4NCi0gICAgPEJDQ193cGFyPmZh
bHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxp
bmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4u
PC9JbmNsdWRlUGF0aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJzPnJ0bC5saWI7dmNsLmxpYjwvQWxs
UGFja2FnZUxpYnM+DQotICAgIDxUTElCX1BhZ2VTaXplPjMyPC9UTElCX1BhZ2VTaXplPg0KLSAg
ICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGli
XHBzZGs8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVG
b3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+
ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0Nf
RGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVz
Pg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0K
LSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rp
b25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8
L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJW
YXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmlu
ZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JD
Q19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9J
bnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVl
PC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9C
Q0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkND
X0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxp
YlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxU
QVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1
Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+
DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScnIj4NCi0gICAgPERl
ZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRw
dXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFy
eVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJy
YXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAg
PC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5Q
ZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFs
aXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJyYXJ5PC9Cb3JsYW5k
LlByb2plY3RUeXBlPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxhbmRQcm9qZWN0PjxD
UGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iSW5jbHVkZVZlckluZm8iPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0i
QXV0b0luY0J1aWxkIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1ham9y
VmVyIj4xPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWlub3JWZXIiPjA8L1ZlcnNp
b25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lv
bkluZm8gTmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJEZWJ1
ZyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcmVSZWxlYXNlIj5GYWxz
ZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlNwZWNpYWwiPkZhbHNlPC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJETEwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0i
TG9jYWxlIj4xMDMzPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQ29kZVBhZ2UiPjEy
NTI8L1ZlcnNpb25JbmZvPjwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvS2V5cz48VmVyc2lvbklu
Zm9LZXlzIE5hbWU9IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9L
ZXlzIE5hbWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZv
S2V5cyBOYW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9u
SW5mb0tleXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbklu
Zm9LZXlzIE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbklu
Zm9LZXlzIE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25J
bmZvS2V5cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lv
bkluZm9LZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbklu
Zm9LZXlzIE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZl
cnNpb25JbmZvS2V5cyBOYW1lPSJDb21tZW50cyI+PC9WZXJzaW9uSW5mb0tleXM+PC9WZXJzaW9u
SW5mb0tleXM+PERlYnVnZ2luZz48RGVidWdnaW5nIE5hbWU9IkRlYnVnU291cmNlRGlycyI+PC9E
ZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUnVuUGFy
YW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTGF1bmNoZXIiPjwvUGFyYW1ldGVy
cz48UGFyYW1ldGVycyBOYW1lPSJVc2VMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFt
ZXRlcnMgTmFtZT0iRGVidWdDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJIb3N0
QXBwbGljYXRpb24iPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVIb3N0Ij48
L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGF0aCI+PC9QYXJhbWV0ZXJzPjxQ
YXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9IlJlbW90ZUxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlUmVt
b3RlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUNX
RCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZURlYnVnIj5GYWxzZTwvUGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1ib2xzIFNlYXJjaCBQYXRoIj48L1Bh
cmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5bWJvbHMiPlRydWU8L1BhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVkU3ltYm9scyI+RmFsc2U8L1BhcmFt
ZXRlcnM+PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICANCi0gICAgICAN
Ci0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEw
MC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9F
eGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMp
XGJpblxiY2JvZmZpY2V4cDEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNl
cnZlcnMgUGFja2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2Fn
ZXM+PExpbmtlcj48TGlua2VyIE5hbWU9IkxpYlByZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1l
PSJMaWJTdWZmaXgiPjwvTGlua2VyPjxMaW5rZXIgTmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+
PC9MaW5rZXI+PFByb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRv
U2hvd0RlcHMiPkZhbHNlPC9Qcm9qZWN0UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFt
ZT0iTWFuYWdlUGF0aHMiPlRydWU8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGll
cyBOYW1lPSJWZXJpZnlQYWNrYWdlcyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0
UHJvcGVydGllcz48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obElu
Y2x1ZGVQYXRoIE5hbWU9IkNvdW50Ij4zPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlz
dG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRT
KVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRl
Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGggTmFtZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7
JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJ
bmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTIiPiQoQkRT
KVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4u
XHNyYzsuLlxzcmM7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PC9IaXN0
b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+
PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5
TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGggTmFtZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2Rr
PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5L
X0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZp
bmVzIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNf
aGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+
PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxI
aXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNf
aGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0w
Ij4zMjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9Q
YWdlU2l6ZSBOYW1lPSJJdGVtMSI+MTY8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9I
aXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjwvQ1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0
eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNp
b25zPg0KLSAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkNwcC5U
YXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVk
ZVxndGVzdFxndGVzdC1kZWF0aC10ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjM8L0J1aWxk
T3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVz
dFxndGVzdC1tZXNzYWdlLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjQ8L0J1aWxkT3JkZXI+DQot
ICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1w
YXJhbS10ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjU8L0J1aWxkT3JkZXI+DQotICAgIDwv
Tm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1zcGkuaCI+
DQotICAgICAgPEJ1aWxkT3JkZXI+NjwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LXRlc3QtcGFydC5oIj4NCi0gICAg
ICA8QnVpbGRPcmRlcj43PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtdHlwZWQtdGVzdC5oIj4NCi0gICAgICA8QnVp
bGRPcmRlcj44PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MDwvQnVpbGRP
cmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0
XGd0ZXN0X3ByZWRfaW1wbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xPC9CdWlsZE9yZGVyPg0K
LSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3Rf
cHJvZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4yPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtZGVh
dGgtdGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj45PC9CdWlsZE9yZGVyPg0K
LSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJu
YWxcZ3Rlc3QtZmlsZXBhdGguaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTA8L0J1aWxkT3JkZXI+
DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRl
cm5hbFxndGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xMTwvQnVpbGRPcmRl
cj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGlu
dGVybmFsXGd0ZXN0LWxpbmtlZF9wdHIuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTI8L0J1aWxk
T3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVz
dFxpbnRlcm5hbFxndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIj4NCi0gICAgICA8QnVpbGRP
cmRlcj4xNDwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LXBhcmFtLXV0aWwuaCI+DQotICAgICAgPEJ1
aWxkT3JkZXI+MTM8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVk
ZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1wb3J0LmgiPg0KLSAgICAgIDxCdWls
ZE9yZGVyPjE1PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3Qtc3RyaW5nLmgiPg0KLSAgICAgIDxCdWls
ZE9yZGVyPjE2PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtdHlwZS11dGlsLmgiPg0KLSAgICAgIDxC
dWlsZE9yZGVyPjE3PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxDcHBDb21waWxl
IEluY2x1ZGU9Imd0ZXN0X2FsbC5jYyI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTg8L0J1aWxkT3Jk
ZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRl
PSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJh
dGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAg
ICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVt
R3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvaiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvagpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmFmMzFjYWI2NDBiYjQ1NDA4MTJmODhmNmZhMGZhY2M2ZjAx
MGRiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdC5ncm91cHByb2oKKysrIC9kZXYvbnVs
bApAQCAtMSw1NCArMCwwIEBACi3vu788UHJvamVjdCB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4NCi0gIDxQcm9wZXJ0eUdyb3VwPg0K
LSAgICA8UHJvamVjdEd1aWQ+e2MxZDkyM2UwLTZjYmEtNDMzMi05YjZmLTM0MjBhY2JmNTA5MX08
L1Byb2plY3RHdWlkPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPEl0ZW1Hcm91cCAvPg0KLSAg
PEl0ZW1Hcm91cD4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0LmNicHJvaiIgLz4NCi0g
ICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0X21haW4uY2Jwcm9qIiAvPg0KLSAgICA8UHJvamVj
dHMgSW5jbHVkZT0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiAvPg0KLSAgPC9JdGVtR3JvdXA+DQot
ICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxCb3JsYW5kLlBlcnNvbmFsaXR5PkRlZmF1bHQu
UGVyc29uYWxpdHk8L0JvcmxhbmQuUGVyc29uYWxpdHk+DQotICAgIDxCb3JsYW5kLlByb2plY3RU
eXBlIC8+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3QgeG1sbnM9IiI+
PERlZmF1bHQuUGVyc29uYWxpdHk+PC9EZWZhdWx0LlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2pl
Y3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8VGFyZ2V0
IE5hbWU9Imd0ZXN0Ij4NCi0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0LmNicHJvaiIgVGFy
Z2V0cz0iIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0OkNsZWFuIj4N
Ci0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iQ2xlYW4iIC8+
DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3Q6TWFrZSI+DQotICAgIDxNU0J1
aWxkIFByb2plY3RzPSJndGVzdC5jYnByb2oiIFRhcmdldHM9Ik1ha2UiIC8+DQotICA8L1Rhcmdl
dD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfbWFpbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3Rz
PSJndGVzdF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFy
Z2V0IE5hbWU9Imd0ZXN0X21haW46Q2xlYW4iPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rl
c3RfbWFpbi5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFy
Z2V0IE5hbWU9Imd0ZXN0X21haW46TWFrZSI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVz
dF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iTWFrZSIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdl
dCBOYW1lPSJndGVzdF91bml0dGVzdCI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF91
bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBO
YW1lPSJndGVzdF91bml0dGVzdDpDbGVhbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVz
dF91bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8
VGFyZ2V0IE5hbWU9Imd0ZXN0X3VuaXR0ZXN0Ok1ha2UiPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0
cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJNYWtlIiAvPg0KLSAgPC9UYXJnZXQ+
DQotICA8VGFyZ2V0IE5hbWU9IkJ1aWxkIj4NCi0gICAgPENhbGxUYXJnZXQgVGFyZ2V0cz0iZ3Rl
c3Q7Z3Rlc3RfbWFpbjtndGVzdF91bml0dGVzdCIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdl
dCBOYW1lPSJDbGVhbiI+DQotICAgIDxDYWxsVGFyZ2V0IFRhcmdldHM9Imd0ZXN0OkNsZWFuO2d0
ZXN0X21haW46Q2xlYW47Z3Rlc3RfdW5pdHRlc3Q6Q2xlYW4iIC8+DQotICA8L1RhcmdldD4NCi0g
IDxUYXJnZXQgTmFtZT0iTWFrZSI+DQotICAgIDxDYWxsVGFyZ2V0IFRhcmdldHM9Imd0ZXN0Ok1h
a2U7Z3Rlc3RfbWFpbjpNYWtlO2d0ZXN0X3VuaXR0ZXN0Ok1ha2UiIC8+DQotICA8L1RhcmdldD4N
Ci0gIDxJbXBvcnQgQ29uZGl0aW9uPSJFeGlzdHMoJyQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQu
R3JvdXAuVGFyZ2V0cycpIiBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkdyb3Vw
LlRhcmdldHMiIC8+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2FsbC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2FsbC5jYwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmE3YWQ2OGFkMWNhYTVmYjIwODM4YzcwMDg5NmE0MTgyYmE1
OWQ5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9hbGwuY2MKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLS8vIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBt
ZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
Ly8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0vLwotLy8gQXV0aG9yOiBKb3NoIEtlbGxleSAoam9zaGtlbEBnbWFpbC5jb20pCi0vLwot
Ly8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gQysr
QnVpbGRlcidzIElERSBjYW5ub3QgYnVpbGQgYSBzdGF0aWMgbGlicmFyeSBmcm9tIGZpbGVzIHdp
dGggaHlwaGVucwotLy8gaW4gdGhlaXIgbmFtZS4gIFNlZSBodHRwOi8vcWMuY29kZWdlYXIuY29t
L3djL3FjbWFpbi5hc3B4P2Q9NzA5NzcgLgotLy8gVGhpcyBmaWxlIHNlcnZlcyBhcyBhIHdvcmth
cm91bmQuCi0KLSNpbmNsdWRlICJzcmMvZ3Rlc3QtYWxsLmNjIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI5NTVlYmYyZjkxMTBlNjM1M2M2ODdjYzM5NDIzNDhkYTc5N2NiNTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYworKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
Ly8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBB
dXRob3I6IEpvc2ggS2VsbGV5IChqb3Noa2VsQGdtYWlsLmNvbSkKLS8vCi0vLyBHb29nbGUgQysr
IFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKLS8vCi0vLyBMaW5rcyBndGVzdC5saWIg
YW5kIGd0ZXN0X21haW4ubGliIGludG8gdGhlIGN1cnJlbnQgcHJvamVjdCBpbiBDKytCdWlsZGVy
LgotLy8gVGhpcyBtZWFucyB0aGF0IHRoZXNlIGxpYnJhcmllcyBjYW4ndCBiZSByZW5hbWVkLCBi
dXQgaXQncyB0aGUgb25seSB3YXkgdG8KLS8vIGVuc3VyZSB0aGF0IERlYnVnIHZlcnN1cyBSZWxl
YXNlIHRlc3QgYnVpbGRzIGFyZSBsaW5rZWQgYWdhaW5zdCB0aGUKLS8vIGFwcHJvcHJpYXRlIERl
YnVnIG9yIFJlbGVhc2UgYnVpbGQgb2YgdGhlIGxpYnJhcmllcy4KLQotI3ByYWdtYSBsaW5rICJn
dGVzdC5saWIiCi0jcHJhZ21hIGxpbmsgImd0ZXN0X21haW4ubGliIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbWFpbi5jYnByb2ogYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJvagpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDc2Y2UxMzk4ZmYzOTMzMzMzNzcyNWY0NDY2ZGE1NjNlOTgzMzU4
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJvagorKysgL2Rldi9udWxs
CkBAIC0xLDgyICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxv
cGVyL21zYnVpbGQvMjAwMyI+DQotICA8UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlk
PntiY2EzN2E3Mi01YjA3LTQ2Y2YtYjQ0ZS04OWY4ZTA2NDUxYTJ9PC9Qcm9qZWN0R3VpZD4NCi0g
ICAgPENvbmZpZyBDb25kaXRpb249IickKENvbmZpZyknPT0nJyI+UmVsZWFzZTwvQ29uZmlnPg0K
LSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWcpJz09J0Jhc2UnIG9yICckKEJhc2UpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0K
LSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWcpJz09J0RlYnVnJyBvciAnJChDZmdfMSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+
DQotICAgIDxDZmdfMT50cnVlPC9DZmdfMT4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJl
bnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZyknPT0nUmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8QmFzZT50cnVl
PC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwv
Q2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChCYXNlKSchPScnIj4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPnRydWU8L0JD
Q19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8T3V0cHV0RXh0PmxpYjwvT3V0cHV0RXh0Pg0KLSAg
ICA8RENDX0NCdWlsZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1aWxkZXJPdXRwdXQ+DQotICAgIDxE
ZWZpbmVzPk5PX1NUUklDVDwvRGVmaW5lcz4NCi0gICAgPER5bmFtaWNSVEw+dHJ1ZTwvRHluYW1p
Y1JUTD4NCi0gICAgPFVzZVBhY2thZ2VzPnRydWU8L1VzZVBhY2thZ2VzPg0KLSAgICA8UHJvamVj
dFR5cGU+Q3BwU3RhdGljTGlicmFyeTwvUHJvamVjdFR5cGU+DQotICAgIDxCQ0NfQ1BQQ29tcGls
ZUFsd2F5cz50cnVlPC9CQ0NfQ1BQQ29tcGlsZUFsd2F5cz4NCi0gICAgPFBhY2thZ2VJbXBvcnRz
PnJ0bC5icGk7dmNsLmJwaTtiY2JpZS5icGk7dmNseC5icGk7dmNsYWN0bmJhbmQuYnBpO3htbHJ0
bC5icGk7YmNic21wLmJwaTtkYnJ0bC5icGk7dmNsZGIuYnBpO2JkZXJ0bC5icGk7dmNsZGJ4LmJw
aTtkc25hcC5icGk7ZHNuYXBjb24uYnBpO3ZjbGliLmJwaTtpYnhwcmVzcy5icGk7YWRvcnRsLmJw
aTtkYnhjZHMuYnBpO2RiZXhwcmVzcy5icGk7RGJ4Q29tbW9uRHJpdmVyLmJwaTt3ZWJzbmFwLmJw
aTt2Y2xpZS5icGk7d2ViZHNuYXAuYnBpO2luZXQuYnBpO2luZXRkYmJkZS5icGk7aW5ldGRieHBy
ZXNzLmJwaTtzb2FwcnRsLmJwaTtSYXZlNzVWQ0wuYnBpO3RlZVVJLmJwaTt0ZWUuYnBpO3RlZWRi
LmJwaTtJbmR5Q29yZS5icGk7SW5keVN5c3RlbS5icGk7SW5keVByb3RvY29scy5icGk7SW50cmF3
ZWJEQl85MF8xMDAuYnBpO0ludHJhd2ViXzkwXzEwMC5icGk7ZGNsWmlwRm9yZ2VkMTEuYnBpO3Zj
bFppcEZvcmdlZDExLmJwaTtHUjMyX0JEUzIwMDYuYnBpO0dSMzJfRFNHTl9CRFMyMDA2LmJwaTtK
Y2wuYnBpO0pjbFZjbC5icGk7SnZDb3JlRDExUi5icGk7SnZTeXN0ZW1EMTFSLmJwaTtKdlN0ZEN0
cmxzRDExUi5icGk7SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRzRDExUi5icGk7SnZEQkQxMVIuYnBp
O0p2RGxnc0QxMVIuYnBpO0p2QkRFRDExUi5icGk7SnZDbXBEMTFSLmJwaTtKdkNyeXB0RDExUi5i
cGk7SnZDdHJsc0QxMVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7SnZEb2NraW5nRDExUi5icGk7SnZE
b3ROZXRDdHJsc0QxMVIuYnBpO0p2RURJRDExUi5icGk7SnZHbG9idXNEMTFSLmJwaTtKdkhNSUQx
MVIuYnBpO0p2SW50ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNEMTFSLmJwaTtKdk1hbmFnZWRUaHJl
YWRzRDExUi5icGk7SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5icGk7SnZQYWdlQ29tcHNEMTFSLmJw
aTtKdlBsdWdpbkQxMVIuYnBpO0p2UHJpbnRQcmV2aWV3RDExUi5icGk7SnZSdW50aW1lRGVzaWdu
RDExUi5icGk7SnZUaW1lRnJhbWV3b3JrRDExUi5icGk7SnZWYWxpZGF0b3JzRDExUi5icGk7SnZX
aXphcmREMTFSLmJwaTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xTbXAuYnBpO0NFeGNlcHRpb25FeHBl
cnQxMS5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAgICA8QkNDX3dwYXI+ZmFsc2U8L0JDQ193cGFy
Pg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vt
d2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0luY2x1ZGVQYXRo
Pg0KLSAgICA8QWxsUGFja2FnZUxpYnM+cnRsLmxpYjt2Y2wubGliPC9BbGxQYWNrYWdlTGlicz4N
Ci0gICAgPFRMSUJfUGFnZVNpemU+MzI8L1RMSUJfUGFnZVNpemU+DQotICAgIDxJTElOS19MaWJy
YXJ5UGF0aD4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazwvSUxJTktf
TGlicmFyeVBhdGg+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENmZ18xKSchPScnIj4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPmZhbHNl
PC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPERDQ19PcHRpbWl6ZT5mYWxzZTwvRENDX09w
dGltaXplPg0KLSAgICA8RENDX0RlYnVnSW5mb0luRXhlPnRydWU8L0RDQ19EZWJ1Z0luZm9JbkV4
ZT4NCi0gICAgPERlZmluZXM+X0RFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJTElO
S19GdWxsRGVidWdJbmZvPnRydWU8L0lMSU5LX0Z1bGxEZWJ1Z0luZm8+DQotICAgIDxCQ0NfSW5s
aW5lRnVuY3Rpb25FeHBhbnNpb24+ZmFsc2U8L0JDQ19JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4N
Ci0gICAgPElMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+dHJ1ZTwvSUxJTktfRGlzYWJs
ZUluY3JlbWVudGFsTGlua2luZz4NCi0gICAgPEJDQ19Vc2VSZWdpc3RlclZhcmlhYmxlcz5Ob25l
PC9CQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+DQotICAgIDxEQ0NfRGVmaW5lPkRFQlVHPC9EQ0Nf
RGVmaW5lPg0KLSAgICA8QkNDX0RlYnVnTGluZU51bWJlcnM+dHJ1ZTwvQkNDX0RlYnVnTGluZU51
bWJlcnM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+RGVidWc8L0ludGVybWVkaWF0ZU91
dHB1dERpcj4NCi0gICAgPFRBU01fRGlzcGxheVNvdXJjZUxpbmVzPnRydWU8L1RBU01fRGlzcGxh
eVNvdXJjZUxpbmVzPg0KLSAgICA8QkNDX1N0YWNrRnJhbWVzPnRydWU8L0JDQ19TdGFja0ZyYW1l
cz4NCi0gICAgPEJDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz50cnVlPC9CQ0NfRGlzYWJsZU9wdGlt
aXphdGlvbnM+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylcbGliXGRlYnVnOyQoSUxJ
TktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5n
PkZ1bGw8L1RBU01fRGVidWdnaW5nPg0KLSAgICA8QkNDX1NvdXJjZURlYnVnZ2luZ09uPnRydWU8
L0JDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8RGVmaW5lcz5OREVCVUc7
JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPEludGVybWVkaWF0ZU91dHB1dERpcj5SZWxlYXNl
PC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylc
bGliXHJlbGVhc2U7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAg
ICA8VEFTTV9EZWJ1Z2dpbmc+Tm9uZTwvVEFTTV9EZWJ1Z2dpbmc+DQotICA8L1Byb3BlcnR5R3Jv
dXA+DQotICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxCb3JsYW5kLlBlcnNvbmFsaXR5PkNQ
bHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk8L0JvcmxhbmQuUGVyc29uYWxpdHk+DQotICAgIDxC
b3JsYW5kLlByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L0JvcmxhbmQuUHJvamVjdFR5cGU+
DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3Q+PENQbHVzUGx1c0J1aWxk
ZXIuUGVyc29uYWxpdHk+PFZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJJbmNsdWRlVmVy
SW5mbyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJBdXRvSW5jQnVpbGQi
PkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWFqb3JWZXIiPjE8L1ZlcnNp
b25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJNaW5vclZlciI+MDwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvIE5hbWU9IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJC
dWlsZCI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRlYnVnIj5GYWxzZTwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByZVJlbGVhc2UiPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJQcml2YXRlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9
IkRMTCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJMb2NhbGUiPjEwMzM8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJDb2RlUGFnZSI+MTI1MjwvVmVyc2lvbklu
Zm8+PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0i
Q29tcGFueU5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iRmls
ZURlc2NyaXB0aW9uIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZp
bGVWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1l
PSJJbnRlcm5hbE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0i
TGVnYWxDb3B5cmlnaHQiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0i
TGVnYWxUcmFkZW1hcmtzIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9
Ik9yaWdpbmFsRmlsZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFt
ZT0iUHJvZHVjdE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0i
UHJvZHVjdFZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlz
IE5hbWU9IkNvbW1lbnRzIj48L1ZlcnNpb25JbmZvS2V5cz48L1ZlcnNpb25JbmZvS2V5cz48RGVi
dWdnaW5nPjxEZWJ1Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VEaXJzIj48L0RlYnVnZ2luZz48L0Rl
YnVnZ2luZz48UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSdW5QYXJhbXMiPjwvUGFyYW1l
dGVycz48UGFyYW1ldGVycyBOYW1lPSJMYXVuY2hlciI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJz
IE5hbWU9IlVzZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJE
ZWJ1Z0NXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9Ikhvc3RBcHBsaWNhdGlvbiI+
PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUhvc3QiPjwvUGFyYW1ldGVycz48
UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFt
ZT0iUmVtb3RlUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlTGF1
bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VSZW1vdGVMYXVuY2hlciI+
RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlQ1dEIj48L1BhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlRGVidWciPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJh
bWV0ZXJzIE5hbWU9IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBhdGgiPjwvUGFyYW1ldGVycz48UGFy
YW1ldGVycyBOYW1lPSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwvUGFyYW1ldGVycz48UGFyYW1ldGVy
cyBOYW1lPSJMb2FkVW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxzZTwvUGFyYW1ldGVycz48L1BhcmFt
ZXRlcnM+PEV4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1l
PSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZp
Y2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNs
dWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZXhwMTAwLmJwbCI+Q29kZUdl
YXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdl
cz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdlcz48TGlua2VyPjxMaW5rZXIgTmFtZT0iTGliUHJl
Zml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExpbmtlciBO
YW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48L0xpbmtlcj48UHJvamVjdFByb3BlcnRpZXM+PFBy
b2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+RmFsc2U8L1Byb2plY3RQcm9wZXJ0
aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJvamVjdFBy
b3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5UcnVlPC9Q
cm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQcm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iQ291bnQiPjM8L0hpc3Rv
cnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJ
dGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5j
bHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRo
PjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMSI+JChCRFMpXGluY2x1ZGU7
JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGlu
Y2x1ZGU7Li48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aCBOYW1lPSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vt
d2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXHNyYzsuLlxpbmNsdWRlPC9IaXN0b3J5
TGlzdHNfaGxJbmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5
TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGggTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0
b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGxpYjskKEJE
UylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQ
YXRoPjwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obERl
ZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0
c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0iSXRlbTAiPk5PX1NUUklD
VDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3Rv
cnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemUgTmFt
ZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0c19o
bFRMSUJfUGFnZVNpemUgTmFtZT0iSXRlbTAiPjMyPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VT
aXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0xIj4xNjwvSGlzdG9y
eUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9D
UGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJv
amVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8SW1wb3J0IFByb2plY3Q9IiQoTVNC
dWlsZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+DQotICA8SXRlbUdyb3VwPg0KLSAg
ICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlxzcmNcZ3Rlc3RfbWFpbi5jYyI+DQotICAgICAgPEJ1
aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9DcHBDb21waWxlPg0KLSAgICA8QnVpbGRD
b25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnIj4NCi0gICAgICA8S2V5PkNmZ18xPC9LZXk+DQot
ICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgICA8QnVpbGRDb25maWd1cmF0aW9uIEluY2x1
ZGU9IlJlbGVhc2UiPg0KLSAgICAgIDxLZXk+Q2ZnXzI8L0tleT4NCi0gICAgPC9CdWlsZENvbmZp
Z3VyYXRpb24+DQotICA8L0l0ZW1Hcm91cD4NCi08L1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzVkYjhlNGRhNTk0NTdmYzhlZmFhMmQ2Y2NlYTg3
YzZiODRkYmQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0LmNicHJvagor
KysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
dC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8UHJvcGVydHlHcm91cD4NCi0gICAg
PFByb2plY3RHdWlkPntlZWE2MzM5My01YWM1LTRiOWMtODkwOS1kNzVmZWYyZGFhNDF9PC9Qcm9q
ZWN0R3VpZD4NCi0gICAgPENvbmZpZyBDb25kaXRpb249IickKENvbmZpZyknPT0nJyI+UmVsZWFz
ZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWcpJz09J0Jhc2UnIG9yICckKEJhc2UpJyE9JyciPg0KLSAgICA8QmFzZT50
cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWcpJz09J0RlYnVnJyBvciAnJChDZmdfMSknIT0nJyI+DQotICAgIDxCYXNl
PnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMT50cnVlPC9DZmdfMT4NCi0gICAgPENmZ1BhcmVudD5C
YXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZyknPT0nUmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9JyciPg0KLSAg
ICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQotICAgIDxDZmdQ
YXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5
R3JvdXAgQ29uZGl0aW9uPSInJChCYXNlKSchPScnIj4NCi0gICAgPE91dHB1dEV4dD5leGU8L091
dHB1dEV4dD4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPnRydWU8L0JDQ19PcHRpbWl6ZUZv
clNwZWVkPg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAgIDxEQ0NfQ0J1
aWxkZXJPdXRwdXQ+SlBITkU8L0RDQ19DQnVpbGRlck91dHB1dD4NCi0gICAgPER5bmFtaWNSVEw+
dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAgPElMSU5LX09iamVjdFNlYXJjaFBhdGg+Li5cdGVzdDwv
SUxJTktfT2JqZWN0U2VhcmNoUGF0aD4NCi0gICAgPFVzZVBhY2thZ2VzPnRydWU8L1VzZVBhY2th
Z2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwQ29uc29sZUFwcGxpY2F0aW9uPC9Qcm9qZWN0VHlw
ZT4NCi0gICAgPE5vVkNMPnRydWU8L05vVkNMPg0KLSAgICA8QkNDX0NQUENvbXBpbGVBbHdheXM+
dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdlSW1wb3J0cz5ydGwuYnBp
O3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxydGwuYnBpO2Jj
YnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3ZjbGRieC5icGk7ZHNuYXAu
YnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5icGk7ZGJ4Y2Rz
LmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vic25hcC5icGk7dmNsaWUu
YnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhwcmVzcy5icGk7
c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVkYi5icGk7SW5k
eUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBpO0ludHJhd2ViREJfOTBf
MTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO0pjbC5icGk7SmNsVmNsLmJwaTtKdkNvcmVEMTFS
LmJwaTtKdlN5c3RlbUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFSLmJwaTtKdkFwcEZybUQxMVIuYnBp
O0p2QmFuZHNEMTFSLmJwaTtKdkRCRDExUi5icGk7SnZEbGdzRDExUi5icGk7SnZCREVEMTFSLmJw
aTtKdkNtcEQxMVIuYnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0cmxzRDExUi5icGk7SnZDdXN0b21E
MTFSLmJwaTtKdkRvY2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0cmxzRDExUi5icGk7SnZFRElEMTFS
LmJwaTtKdkdsb2J1c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7SnZJbnRlcnByZXRlckQxMVIuYnBp
O0p2SmFuc0QxMVIuYnBpO0p2TWFuYWdlZFRocmVhZHNEMTFSLmJwaTtKdk1NRDExUi5icGk7SnZO
ZXREMTFSLmJwaTtKdlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1Z2luRDExUi5icGk7SnZQcmludFBy
ZXZpZXdEMTFSLmJwaTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJwaTtKdlRpbWVGcmFtZXdvcmtEMTFS
LmJwaTtKdlZhbGlkYXRvcnNEMTFSLmJwaTtKdldpemFyZEQxMVIuYnBpO0p2WFBDdHJsc0QxMVIu
YnBpO1ZjbFNtcC5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAgICA8QkNDX3dwYXI+ZmFsc2U8L0JD
Q193cGFyPg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVc
ZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTsuLlx0ZXN0Oy4uPC9JbmNs
dWRlUGF0aD4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxv
Ymo7JChCRFMpXGxpYlxwc2RrOy4uXHRlc3Q8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8TXVs
dGl0aHJlYWRlZD50cnVlPC9NdWx0aXRocmVhZGVkPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxCQ0NfT3B0
aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxEQ0NfT3B0
aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4ZT50cnVl
PC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmluZXMpPC9E
ZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxsRGVidWdJ
bmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0NfSW5saW5l
RnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5n
PnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0NfVXNlUmVn
aXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAgICA8REND
X0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1iZXJzPnRy
dWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPkRl
YnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3VyY2VMaW5l
cz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0ZyYW1lcz50
cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+dHJ1
ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChC
RFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQot
ICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJDQ19Tb3Vy
Y2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1Byb3BlcnR5
R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScnIj4NCi0g
ICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRlcm1lZGlh
dGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8SUxJTktf
TGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElO
S19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVidWdnaW5n
Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9y
bGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBl
cnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBDb25zb2xlQXBwbGljYXRp
b248L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFu
ZFByb2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk+PFZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8g
TmFtZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJNaW5vclZl
ciI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlJlbGVhc2UiPjA8L1ZlcnNpb25J
bmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZv
IE5hbWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByZVJl
bGVhc2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iU3BlY2lhbCI+RmFs
c2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcml2YXRlIj5GYWxzZTwvVmVyc2lv
bkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJD
b2RlUGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9uIj48L1ZlcnNpb25JbmZvS2V5cz48
VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tl
eXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5hbWUiPjwvVmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmlnaHQiPjwvVmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1hcmtzIj48L1ZlcnNpb25JbmZvS2V5
cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmlsZW5hbWUiPjwvVmVyc2lvbkluZm9L
ZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5hbWUiPjwvVmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25J
bmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1lbnRzIj48L1ZlcnNpb25JbmZvS2V5
cz48L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1Z2dpbmcgTmFtZT0iRGVidWdTb3Vy
Y2VEaXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMYXVuY2hlciI+
PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1l
dGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJz
IE5hbWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJl
bW90ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXRoIj48L1Bh
cmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFt
ZT0iUmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlRGVidWci
PkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnIFN5bWJvbHMgU2VhcmNo
IFBhdGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkQWxsU3ltYm9scyI+VHJ1
ZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkVW5zcGVjaWZpZWRTeW1ib2xzIj5G
YWxzZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAg
IA0KLSAgICAgIA0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJj
Ym9mZmljZTJrMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgMjAwMCBTZXJ2ZXJz
IFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBO
YW1lPSIkKEJEUylcYmluXGJjYm9mZmljZXhwMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBP
ZmZpY2UgWFAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgPC9FeGNs
dWRlZF9QYWNrYWdlcz48TGlua2VyPjxMaW5rZXIgTmFtZT0iTGliUHJlZml4Ij48L0xpbmtlcj48
TGlua2VyIE5hbWU9IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJWZXJzaW9u
Ij48L0xpbmtlcj48L0xpbmtlcj48UHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVz
IE5hbWU9IkF1dG9TaG93RGVwcyI+RmFsc2U8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJv
cGVydGllcyBOYW1lPSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PFByb2pl
Y3RQcm9wZXJ0aWVzIE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5UcnVlPC9Qcm9qZWN0UHJvcGVydGll
cz48L1Byb2plY3RQcm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9y
eUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iQ291bnQiPjM8L0hpc3RvcnlMaXN0c19obEluY2x1
ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGlu
Y2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5j
bHVkZTsuLlx0ZXN0Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRl
XGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXGluY2x1ZGU7Li5cdGVzdDwvSGlzdG9y
eUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0
ZW0yIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNs
dWRlXHZjbDsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48L0hpc3RvcnlM
aXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlz
dG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0
c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBO
YW1lPSJJdGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs7Li5c
dGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElM
SU5LX0xpYnJhcnlQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQo
QkRTKVxsaWJccHNkazsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48
SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTIiPiQoQkRTKVxsaWI7
JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrOyQoT1VUUFVURElSKTsuLlx0ZXN0PC9IaXN0
b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJh
cnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5h
bWU9IkNvdW50Ij4yPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZp
bmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3Rv
cnlMaXN0c19obERlZmluZXMgTmFtZT0iSXRlbTEiPlNUUklDVDwvSGlzdG9yeUxpc3RzX2hsRGVm
aW5lcz48L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFs
aXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVu
c2lvbnM+DQotICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQuQ3Bw
LlRhcmdldHMiIC8+DQotICA8SXRlbUdyb3VwPg0KLSAgICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSIu
Llx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4NCi0gICAgICA8QnVpbGRPcmRlcj4wPC9CdWlsZE9y
ZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxDcHBDb21waWxlIEluY2x1ZGU9Imd0ZXN0
X2xpbmsuY2MiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE8L0J1aWxkT3JkZXI+DQotICAgIDwvQ3Bw
Q29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQotICAg
ICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAgPEJ1
aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18yPC9L
ZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Qcm9q
ZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvbmZp
Z3VyZS5hYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU0YzhjNGIzMTg4NWQyNTcx
ZmEyMzAwYjYzMWU4YmY5ZDk1YWUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb25maWd1cmUuYWMKKysrIC9k
ZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi1tNF9pbmNsdWRlKG00L2FjeF9wdGhyZWFkLm00KQot
Ci0jIEF0IHRoaXMgcG9pbnQsIHRoZSBYY29kZSBwcm9qZWN0IGFzc3VtZXMgdGhlIHZlcnNpb24g
c3RyaW5nIHdpbGwgYmUgdGhyZWUKLSMgaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMgYW5k
IHN1cnJvdW5kZWQgYnkgc3F1YXJlIGJyYWNrZXRzIChlLmcuCi0jICJbMS4wLjFdIikuIEl0IGFs
c28gYXN1bWVzIHRoYXQgdGhlcmUgd29uJ3QgYmUgYW55IGNsb3NpbmcgcGFyZW50aGVzaXMKLSMg
YmV0d2VlbiAiQUNfSU5JVCgiIGFuZCB0aGUgY2xvc2luZyAiKSIgaW5jbHVkaW5nIGNvbW1lbnRz
IGFuZCBzdHJpbmdzLgotQUNfSU5JVChbR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29ya10sCi0g
ICAgICAgIFsxLjguMF0sCi0gICAgICAgIFtnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdyb3Vw
cy5jb21dLAotICAgICAgICBbZ3Rlc3RdKQotCi0jIFByb3ZpZGUgdmFyaW91cyBvcHRpb25zIHRv
IGluaXRpYWxpemUgdGhlIEF1dG9jb25mIGFuZCBjb25maWd1cmUgcHJvY2Vzc2VzLgotQUNfUFJF
UkVRKFsyLjU5XSkKLUFDX0NPTkZJR19TUkNESVIoWy4vTElDRU5TRV0pCi1BQ19DT05GSUdfTUFD
Uk9fRElSKFttNF0pCi1BQ19DT05GSUdfQVVYX0RJUihbYnVpbGQtYXV4XSkKLUFDX0NPTkZJR19I
RUFERVJTKFtidWlsZC1hdXgvY29uZmlnLmhdKQotQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZV0p
Ci1BQ19DT05GSUdfRklMRVMoW3NjcmlwdHMvZ3Rlc3QtY29uZmlnXSwgW2NobW9kICt4IHNjcmlw
dHMvZ3Rlc3QtY29uZmlnXSkKLQotIyBJbml0aWFsaXplIEF1dG9tYWtlIHdpdGggdmFyaW91cyBv
cHRpb25zLiBXZSByZXF1aXJlIGF0IGxlYXN0IHYxLjksIHByZXZlbnQKLSMgcGVkYW50aWMgY29t
cGxhaW50cyBhYm91dCBwYWNrYWdlIGZpbGVzLCBhbmQgZW5hYmxlIHZhcmlvdXMgZGlzdHJpYnV0
aW9uCi0jIHRhcmdldHMuCi1BTV9JTklUX0FVVE9NQUtFKFsxLjkgZGlzdC1iemlwMiBkaXN0LXpp
cCBmb3JlaWduIHN1YmRpci1vYmplY3RzXSkKLQotIyBDaGVjayBmb3IgcHJvZ3JhbXMgdXNlZCBp
biBidWlsZGluZyBHb29nbGUgVGVzdC4KLUFDX1BST0dfQ0MKLUFDX1BST0dfQ1hYCi1BQ19MQU5H
KFtDKytdKQotQUNfUFJPR19MSUJUT09MCi0KLSMgVE9ETyhjaGFuZGxlcmNAZ29vZ2xlLmNvbSk6
IEN1cnJlbnRseSB3ZSBhcmVuJ3QgcnVubmluZyB0aGUgUHl0aG9uIHRlc3RzCi0jIGFnYWluc3Qg
dGhlIGludGVycHJldGVyIGRldGVjdGVkIGJ5IEFNX1BBVEhfUFlUSE9OLCBhbmQgc28gd2UgY29u
ZGl0aW9uCi0jIEhBVkVfUFlUSE9OIGJ5IHJlcXVpcmluZyAicHl0aG9uIiB0byBiZSBpbiB0aGUg
UEFUSCwgYW5kIHRoYXQgaW50ZXJwcmV0ZXIncwotIyB2ZXJzaW9uIHRvIGJlID49IDIuMy4gVGhp
cyB3aWxsIGFsbG93IHRoZSBzY3JpcHRzIHRvIHVzZSBhICIvdXNyL2Jpbi9lbnYiCi0jIGhhc2hi
YW5nLgotUFlUSE9OPSAgIyBXZSAqZG8gbm90KiBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IGEg
cHl0aG9uIGludGVycHJldGVyCi1BQ19QQVRIX1BST0coW1BZVEhPTl0sW3B5dGhvbl0sWzpdKQot
QVNfSUYoW3Rlc3QgIiRQWVRIT04iICE9ICI6Il0sCi0gICAgICBbQU1fUFlUSE9OX0NIRUNLX1ZF
UlNJT04oWyRQWVRIT05dLFsyLjNdLFs6XSxbUFlUSE9OPSI6Il0pXSkKLUFNX0NPTkRJVElPTkFM
KFtIQVZFX1BZVEhPTl0sW3Rlc3QgIiRQWVRIT04iICE9ICI6Il0pCi0KLSMgQ29uZmlndXJlIHB0
aHJlYWRzLgotQUNfQVJHX1dJVEgoW3B0aHJlYWRzXSwKLSAgICAgICAgICAgIFtBU19IRUxQX1NU
UklORyhbLS13aXRoLXB0aHJlYWRzXSwKLSAgICAgICAgICAgICAgIFt1c2UgcHRocmVhZHMgKGRl
ZmF1bHQgaXMgeWVzKV0pXSwKLSAgICAgICAgICAgIFt3aXRoX3B0aHJlYWRzPSR3aXRodmFsXSwK
LSAgICAgICAgICAgIFt3aXRoX3B0aHJlYWRzPWNoZWNrXSkKLQotaGF2ZV9wdGhyZWFkcz1ubwot
QVNfSUYoW3Rlc3QgIngkd2l0aF9wdGhyZWFkcyIgIT0gInhubyJdLAotICAgICAgW0FDWF9QVEhS
RUFEKAotICAgICAgICBbXSwKLSAgICAgICAgW0FTX0lGKFt0ZXN0ICJ4JHdpdGhfcHRocmVhZHMi
ICE9ICJ4Y2hlY2siXSwKLSAgICAgICAgICAgICAgIFtBQ19NU0dfRkFJTFVSRSgKLSAgICAgICAg
ICAgICAgICAgWy0td2l0aC1wdGhyZWFkcyB3YXMgc3BlY2lmaWVkLCBidXQgdW5hYmxlIHRvIGJl
IHVzZWRdKV0pXSkKLSAgICAgICBoYXZlX3B0aHJlYWRzPSIkYWN4X3B0aHJlYWRfb2siXSkKLUFN
X0NPTkRJVElPTkFMKFtIQVZFX1BUSFJFQURTXSxbdGVzdCAieCRoYXZlX3B0aHJlYWRzIiA9ICJ4
eWVzIl0pCi1BQ19TVUJTVChQVEhSRUFEX0NGTEFHUykKLUFDX1NVQlNUKFBUSFJFQURfTElCUykK
LQotIyBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKSBDaGVjayBmb3IgdGhlIG5lY2Vzc2FyeSBz
eXN0ZW0gaGVhZGVycy4KLQotIyBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKSBDaGVjayB0aGUg
dHlwZXMsIHN0cnVjdHVyZXMsIGFuZCBvdGhlciBjb21waWxlcgotIyBhbmQgYXJjaGl0ZWN0dXJl
IGNoYXJhY3RlcmlzdGljcy4KLQotIyBPdXRwdXQgdGhlIGdlbmVyYXRlZCBmaWxlcy4gTm8gZnVy
dGhlciBhdXRvY29uZiBtYWNyb3MgbWF5IGJlIHVzZWQuCi1BQ19PVVRQVVQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29uZmlnLm1kIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvZG9jcy9Qa2djb25maWcubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk3NjEyODk0ZDJhM2M4ZWFkYjQ0MmM1NTg3ODA0ZmI3Nzg1ZWFhNzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvZG9jcy9Qa2djb25maWcubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotIyMg
VXNpbmcgR29vZ2xlVGVzdCBmcm9tIHZhcmlvdXMgYnVpbGQgc3lzdGVtcyAjIwotCi1Hb29nbGVU
ZXN0IGNvbWVzIHdpdGggcGtnLWNvbmZpZyBmaWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRldGVy
bWluZSBhbGwKLW5lY2Vzc2FyeSBmbGFncyBmb3IgY29tcGlsaW5nIGFuZCBsaW5raW5nIHRvIEdv
b2dsZVRlc3QgKGFuZCBHb29nbGVNb2NrKS4KLVBrZy1jb25maWcgaXMgYSBzdGFuZGFyZGlzZWQg
cGxhaW4tdGV4dCBmb3JtYXQgY29udGFpbmluZwotCi0gICogdGhlIGluY2x1ZGVkaXIgKC1JKSBw
YXRoCi0gICogbmVjZXNzYXJ5IG1hY3JvICgtRCkgZGVmaW5pdGlvbnMKLSAgKiBmdXJ0aGVyIHJl
cXVpcmVkIGZsYWdzICgtcHRocmVhZCkKLSAgKiB0aGUgbGlicmFyeSAoLUwpIHBhdGgKLSAgKiB0
aGUgbGlicmFyeSAoLWwpIHRvIGxpbmsgdG8KLQotQWxsIGN1cnJlbnQgYnVpbGQgc3lzdGVtcyBz
dXBwb3J0IHBrZy1jb25maWcgaW4gb25lIHdheSBvciBhbm90aGVyLiBGb3IKLWFsbCBleGFtcGxl
cyBoZXJlIHdlIGFzc3VtZSB5b3Ugd2FudCB0byBjb21waWxlIHRoZSBzYW1wbGUKLWBzYW1wbGVz
L3NhbXBsZTNfdW5pdHRlc3QuY2NgLgotCi0KLSMjIyBDTWFrZSAjIyMKLQotVXNpbmcgYHBrZy1j
b25maWdgIGluIENNYWtlIGlzIGZhaXJseSBlYXN5OgotCi1gYGAKLWNtYWtlX21pbmltdW1fcmVx
dWlyZWQoVkVSU0lPTiAzLjApCi0KLWNtYWtlX3BvbGljeShTRVQgQ01QMDA0OCBORVcpCi1wcm9q
ZWN0KG15X2d0ZXN0X3BrZ2NvbmZpZyBWRVJTSU9OIDAuMC4xIExBTkdVQUdFUyBDWFgpCi0KLWZp
bmRfcGFja2FnZShQa2dDb25maWcpCi1wa2dfc2VhcmNoX21vZHVsZShHVEVTVCBSRVFVSVJFRCBn
dGVzdF9tYWluKQotCi1hZGRfZXhlY3V0YWJsZSh0ZXN0YXBwIHNhbXBsZXMvc2FtcGxlM191bml0
dGVzdC5jYykKLXRhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0YXBwICR7R1RFU1RfTERGTEFHU30p
Ci10YXJnZXRfY29tcGlsZV9vcHRpb25zKHRlc3RhcHAgUFVCTElDICR7R1RFU1RfQ0ZMQUdTfSkK
LQotaW5jbHVkZShDVGVzdCkKLWFkZF90ZXN0KGZpcnN0X2FuZF9vbmx5X3Rlc3QgdGVzdGFwcCkK
LWBgYAotCi1JdCBpcyBnZW5lcmFsbHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGB0YXJnZXRf
Y29tcGlsZV9vcHRpb25zYCArIGBfQ0ZMQUdTYAotb3ZlciBgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0
b3JpZXNgICsgYF9JTkNMVURFX0RJUlNgIGFzIHRoZSBmb3JtZXIgaW5jbHVkZXMgbm90Ci1qdXN0
IC1JIGZsYWdzIChHb29nbGVUZXN0IG1pZ2h0IHJlcXVpcmUgYSBtYWNybyBpbmRpY2F0aW5nIHRv
IGludGVybmFsIGhlYWRlcnMKLXRoYXQgYWxsIGxpYnJhcmllcyBoYXZlIGJlZW4gY29tcGlsZWQg
d2l0aCB0aHJlYWRpbmcgZW5hYmxlZC4gSW4gYWRkaXRpb24sCi1Hb29nbGVUZXN0IG1pZ2h0IGFs
c28gcmVxdWlyZSBgLXB0aHJlYWRgIGluIHRoZSBjb21waWxpbmcgc3RlcCwgYW5kIGFzIHN1Y2gK
LXNwbGl0dGluZyB0aGUgcGtnLWNvbmZpZyBgQ2ZsYWdzYCB2YXJpYWJsZSBpbnRvIGluY2x1ZGUg
ZGlycyBhbmQgbWFjcm9zIGZvcgotYHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKClgIG1pZ2h0
IHN0aWxsIG1pc3MgdGhpcykuIFRoZSBzYW1lIHJlY29tbWVuZGF0aW9uCi1nb2VzIGZvciB1c2lu
ZyBgX0xERkxBR1NgIG92ZXIgdGhlIG1vcmUgY29tbW9ucGxhY2UgYF9MSUJSQVJJRVNgLCB3aGlj
aAotaGFwcGVucyB0byBkaXNjYXJkIGAtTGAgZmxhZ3MgYW5kIGAtcHRocmVhZGAuCi0KLQotIyMj
IEF1dG90b29scyAjIyMKLQotRmluZGluZyBHb29nbGVUZXN0IGluIEF1dG9jb25mIGFuZCB1c2lu
ZyBpdCBmcm9tIEF1dG9tYWtlIGlzIGFsc28gZmFpcmx5IGVhc3k6Ci0KLUluIHlvdXIgYGNvbmZp
Z3VyZS5hY2A6Ci0KLWBgYAotQUNfUFJFUkVRKFsyLjY5XSkKLUFDX0lOSVQoW215X2d0ZXN0X3Br
Z2NvbmZpZ10sIFswLjAuMV0pCi1BQ19DT05GSUdfU1JDRElSKFtzYW1wbGVzL3NhbXBsZTNfdW5p
dHRlc3QuY2NdKQotQUNfUFJPR19DWFgKLQotUEtHX0NIRUNLX01PRFVMRVMoW0dURVNUXSwgW2d0
ZXN0X21haW5dKQotCi1BTV9JTklUX0FVVE9NQUtFKFtmb3JlaWduIHN1YmRpci1vYmplY3RzXSkK
LUFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQotQUNfT1VUUFVUCi1gYGAKLQotYW5kIGluIHlv
dXIgYE1ha2VmaWxlLmFtYDoKLQotYGBgCi1jaGVja19QUk9HUkFNUyA9IHRlc3RhcHAKLVRFU1RT
ID0gJChjaGVja19QUk9HUkFNUykKLQotdGVzdGFwcF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUz
X3VuaXR0ZXN0LmNjCi10ZXN0YXBwX0NYWEZMQUdTID0gJChHVEVTVF9DRkxBR1MpCi10ZXN0YXBw
X0xEQUREID0gJChHVEVTVF9MSUJTKQotYGBgCi0KLQotIyMjIE1lc29uICMjIwotCi1NZXNvbiBu
YXRpdmVseSB1c2VzIHBrZ2NvbmZpZyB0byBxdWVyeSBkZXBlbmRlbmNpZXM6Ci0KLWBgYAotcHJv
amVjdCgnbXlfZ3Rlc3RfcGtnY29uZmlnJywgJ2NwcCcsIHZlcnNpb24gOiAnMC4wLjEnKQotCi1n
dGVzdF9kZXAgPSBkZXBlbmRlbmN5KCdndGVzdF9tYWluJykKLQotdGVzdGFwcCA9IGV4ZWN1dGFi
bGUoCi0gICd0ZXN0YXBwJywKLSAgZmlsZXMoWydzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2Mn
XSksCi0gIGRlcGVuZGVuY2llcyA6IGd0ZXN0X2RlcCwKLSAgaW5zdGFsbCA6IGZhbHNlKQotCi10
ZXN0KCdmaXJzdF9hbmRfb25seV90ZXN0JywgdGVzdGFwcCkKLWBgYAotCi0KLSMjIyBQbGFpbiBN
YWtlZmlsZXMgIyMjCi0KLVNpbmNlIGBwa2ctY29uZmlnYCBpcyBhIHNtYWxsIFVuaXggY29tbWFu
ZC1saW5lIHV0aWxpdHksIGl0IGNhbiBiZSB1c2VkCi1pbiBoYW5kd3JpdHRlbiBgTWFrZWZpbGVg
cyB0b286Ci0KLWBgYAotR1RFU1RfQ0ZMQUdTID0gYHBrZy1jb25maWcgLS1jZmxhZ3MgZ3Rlc3Rf
bWFpbmAKLUdURVNUX0xJQlMgPSBgcGtnLWNvbmZpZyAtLWxpYnMgZ3Rlc3RfbWFpbmAKLQotLlBI
T05ZOiB0ZXN0cyBhbGwKLQotdGVzdHM6IGFsbAotCS4vdGVzdGFwcAotCi1hbGw6IHRlc3RhcHAK
LQotdGVzdGFwcDogdGVzdGFwcC5vCi0JJChDWFgpICQoQ1hYRkxBR1MpICQoTERGTEFHUykgJDwg
LW8gJEAgJChHVEVTVF9MSUJTKQotCi10ZXN0YXBwLm86IHNhbXBsZXMvc2FtcGxlM191bml0dGVz
dC5jYwotCSQoQ1hYKSAkKENQUEZMQUdTKSAkKENYWEZMQUdTKSAkPCAtYyAtbyAkQCAkKEdURVNU
X0NGTEFHUykKLWBgYAotCi0KLSMjIyBIZWxwISBwa2ctY29uZmlnIGNhbid0IGZpbmQgR29vZ2xl
VGVzdCEgIyMjCi0KLUxldCdzIHNheSB5b3UgaGF2ZSBhIGBDTWFrZUxpc3RzLnR4dGAgYWxvbmcg
dGhlIGxpbmVzIG9mIHRoZSBvbmUgaW4gdGhpcwotdHV0b3JpYWwgYW5kIHlvdSB0cnkgdG8gcnVu
IGBjbWFrZWAuIEl0IGlzIHZlcnkgcG9zc2libGUgdGhhdCB5b3UgZ2V0IGEKLWZhaWx1cmUgYWxv
bmcgdGhlIGxpbmVzIG9mOgotCi1gYGAKLS0tIENoZWNraW5nIGZvciBvbmUgb2YgdGhlIG1vZHVs
ZXMgJ2d0ZXN0X21haW4nCi1DTWFrZSBFcnJvciBhdCAvdXNyL3NoYXJlL2NtYWtlL01vZHVsZXMv
RmluZFBrZ0NvbmZpZy5jbWFrZTo2NDAgKG1lc3NhZ2UpOgotICBOb25lIG9mIHRoZSByZXF1aXJl
ZCAnZ3Rlc3RfbWFpbicgZm91bmQKLWBgYAotCi1UaGVzZSBmYWlsdXJlcyBhcmUgY29tbW9uIGlm
IHlvdSBpbnN0YWxsZWQgR29vZ2xlVGVzdCB5b3Vyc2VsZiBhbmQgaGF2ZSBub3QKLXNvdXJjZWQg
aXQgZnJvbSBhIGRpc3RybyBvciBvdGhlciBwYWNrYWdlIG1hbmFnZXIuIElmIHNvLCB5b3UgbmVl
ZCB0byB0ZWxsCi1wa2ctY29uZmlnIHdoZXJlIGl0IGNhbiBmaW5kIHRoZSBgLnBjYCBmaWxlcyBj
b250YWluaW5nIHRoZSBpbmZvcm1hdGlvbi4KLVNheSB5b3UgaW5zdGFsbGVkIEdvb2dsZVRlc3Qg
dG8gYC91c3IvbG9jYWxgLCB0aGVuIGl0IG1pZ2h0IGJlIHRoYXQgdGhlCi1gLnBjYCBmaWxlcyBh
cmUgaW5zdGFsbGVkIHVuZGVyIGAvdXNyL2xvY2FsL2xpYjY0L3BrZ2NvbmZpZ2AuIElmIHlvdSBz
ZXQKLQotYGBgCi1leHBvcnQgUEtHX0NPTkZJR19QQVRIPS91c3IvbG9jYWwvbGliNjQvcGtnY29u
ZmlnCi1gYGAKLQotcGtnLWNvbmZpZyB3aWxsIGFsc28gdHJ5IHRvIGxvb2sgaW4gYFBLR19DT05G
SUdfUEFUSGAgdG8gZmluZCBgZ3Rlc3RfbWFpbi5wY2AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBNYW51YWwubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9kb2NzL1B1bXBNYW51YWwubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyN2Ji
MjRiMDQyZGM1NDNhZjRjNDA5YWQwM2UxNDdlYTU5NDliN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Q
dW1wTWFudWFsLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLQotCi08Yj5QPC9i
PnVtcCBpcyA8Yj5VPC9iPnNlZnVsIGZvciA8Yj5NPC9iPmV0YSA8Yj5QPC9iPnJvZ3JhbW1pbmcu
Ci0KLSMgVGhlIFByb2JsZW0gIwotCi1UZW1wbGF0ZSBhbmQgbWFjcm8gbGlicmFyaWVzIG9mdGVu
IG5lZWQgdG8gZGVmaW5lIG1hbnkgY2xhc3NlcywKLWZ1bmN0aW9ucywgb3IgbWFjcm9zIHRoYXQg
dmFyeSBvbmx5IChvciBhbG1vc3Qgb25seSkgaW4gdGhlIG51bWJlciBvZgotYXJndW1lbnRzIHRo
ZXkgdGFrZS4gSXQncyBhIGxvdCBvZiByZXBldGl0aXZlLCBtZWNoYW5pY2FsLCBhbmQKLWVycm9y
LXByb25lIHdvcmsuCi0KLVZhcmlhZGljIHRlbXBsYXRlcyBhbmQgdmFyaWFkaWMgbWFjcm9zIGNh
biBhbGxldmlhdGUgdGhlIHByb2JsZW0uCi1Ib3dldmVyLCB3aGlsZSBib3RoIGFyZSBiZWluZyBj
b25zaWRlcmVkIGJ5IHRoZSBDKysgY29tbWl0dGVlLCBuZWl0aGVyCi1pcyBpbiB0aGUgc3RhbmRh
cmQgeWV0IG9yIHdpZGVseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXJzLiAgVGh1cyB0aGV5Ci1hcmUg
b2Z0ZW4gbm90IGEgZ29vZCBjaG9pY2UsIGVzcGVjaWFsbHkgd2hlbiB5b3VyIGNvZGUgbmVlZHMg
dG8gYmUKLXBvcnRhYmxlLiBBbmQgdGhlaXIgY2FwYWJpbGl0aWVzIGFyZSBzdGlsbCBsaW1pdGVk
LgotCi1BcyBhIHJlc3VsdCwgYXV0aG9ycyBvZiBzdWNoIGxpYnJhcmllcyBvZnRlbiBoYXZlIHRv
IHdyaXRlIHNjcmlwdHMgdG8KLWdlbmVyYXRlIHRoZWlyIGltcGxlbWVudGF0aW9uLiBIb3dldmVy
LCBvdXIgZXhwZXJpZW5jZSBpcyB0aGF0IGl0J3MKLXRlZGlvdXMgdG8gd3JpdGUgc3VjaCBzY3Jp
cHRzLCB3aGljaCB0ZW5kIHRvIHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZgotdGhlIGdlbmVyYXRl
ZCBjb2RlIHBvb3JseSBhbmQgYXJlIG9mdGVuIGhhcmQgdG8gcmVhZCBhbmQgZWRpdC4gRm9yCi1l
eGFtcGxlLCBhIHNtYWxsIGNoYW5nZSBuZWVkZWQgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIG1heSBy
ZXF1aXJlIHNvbWUKLW5vbi1pbnR1aXRpdmUsIG5vbi10cml2aWFsIGNoYW5nZXMgaW4gdGhlIHNj
cmlwdC4gVGhpcyBpcyBlc3BlY2lhbGx5Ci1wYWluZnVsIHdoZW4gZXhwZXJpbWVudGluZyB3aXRo
IHRoZSBjb2RlLgotCi0jIE91ciBTb2x1dGlvbiAjCi0KLVB1bXAgKGZvciBQdW1wIGlzIFVzZWZ1
bCBmb3IgTWV0YSBQcm9ncmFtbWluZywgUHJldHR5IFVzZWZ1bCBmb3IgTWV0YQotUHJvZ3JhbW1p
bmcsIG9yIFByYWN0aWNhbCBVdGlsaXR5IGZvciBNZXRhIFByb2dyYW1taW5nLCB3aGljaGV2ZXIg
eW91Ci1wcmVmZXIpIGlzIGEgc2ltcGxlIG1ldGEtcHJvZ3JhbW1pbmcgdG9vbCBmb3IgQysrLiBU
aGUgaWRlYSBpcyB0aGF0IGEKLXByb2dyYW1tZXIgd3JpdGVzIGEgYGZvby5wdW1wYCBmaWxlIHdo
aWNoIGNvbnRhaW5zIEMrKyBjb2RlIHBsdXMgbWV0YQotY29kZSB0aGF0IG1hbmlwdWxhdGVzIHRo
ZSBDKysgY29kZS4gVGhlIG1ldGEgY29kZSBjYW4gaGFuZGxlCi1pdGVyYXRpb25zIG92ZXIgYSBy
YW5nZSwgbmVzdGVkIGl0ZXJhdGlvbnMsIGxvY2FsIG1ldGEgdmFyaWFibGUKLWRlZmluaXRpb25z
LCBzaW1wbGUgYXJpdGhtZXRpYywgYW5kIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zLiBZb3UgY2Fu
Ci12aWV3IGl0IGFzIGEgc21hbGwgRG9tYWluLVNwZWNpZmljIExhbmd1YWdlLiBUaGUgbWV0YSBs
YW5ndWFnZSBpcwotZGVzaWduZWQgdG8gYmUgbm9uLWludHJ1c2l2ZSAocy50LiBpdCB3b24ndCBj
b25mdXNlIEVtYWNzJyBDKysgbW9kZSwKLWZvciBleGFtcGxlKSBhbmQgY29uY2lzZSwgbWFraW5n
IFB1bXAgY29kZSBpbnR1aXRpdmUgYW5kIGVhc3kgdG8KLW1haW50YWluLgotCi0jIyBIaWdobGln
aHRzICMjCi0KLSAgKiBUaGUgaW1wbGVtZW50YXRpb24gaXMgaW4gYSBzaW5nbGUgUHl0aG9uIHNj
cmlwdCBhbmQgdGh1cyB1bHRyYSBwb3J0YWJsZTogbm8gYnVpbGQgb3IgaW5zdGFsbGF0aW9uIGlz
IG5lZWRlZCBhbmQgaXQgd29ya3MgY3Jvc3MgcGxhdGZvcm1zLgotICAqIFB1bXAgdHJpZXMgdG8g
YmUgc21hcnQgd2l0aCByZXNwZWN0IHRvIFtHb29nbGUncyBzdHlsZSBndWlkZV0oaHR0cHM6Ly9n
aXRodWIuY29tL2dvb2dsZS9zdHlsZWd1aWRlKTogaXQgYnJlYWtzIGxvbmcgbGluZXMgKGVhc3kg
dG8gaGF2ZSB3aGVuIHRoZXkgYXJlIGdlbmVyYXRlZCkgYXQgYWNjZXB0YWJsZSBwbGFjZXMgdG8g
Zml0IHdpdGhpbiA4MCBjb2x1bW5zIGFuZCBpbmRlbnQgdGhlIGNvbnRpbnVhdGlvbiBsaW5lcyBj
b3JyZWN0bHkuCi0gICogVGhlIGZvcm1hdCBpcyBodW1hbi1yZWFkYWJsZSBhbmQgbW9yZSBjb25j
aXNlIHRoYW4gWE1MLgotICAqIFRoZSBmb3JtYXQgd29ya3MgcmVsYXRpdmVseSB3ZWxsIHdpdGgg
RW1hY3MnIEMrKyBtb2RlLgotCi0jIyBFeGFtcGxlcyAjIwotCi1UaGUgZm9sbG93aW5nIFB1bXAg
Y29kZSAod2hlcmUgbWV0YSBrZXl3b3JkcyBzdGFydCB3aXRoIGAkYCwgYFtbYCBhbmQgYF1dYCBh
cmUgbWV0YSBicmFja2V0cywgYW5kIGAkJGAgc3RhcnRzIGEgbWV0YSBjb21tZW50IHRoYXQgZW5k
cyB3aXRoIHRoZSBsaW5lKToKLQotYGBgCi0kdmFyIG4gPSAzICAgICAkJCBEZWZpbmVzIGEgbWV0
YSB2YXJpYWJsZSBuLgotJHJhbmdlIGkgMC4ubiAgJCQgRGVjbGFyZXMgdGhlIHJhbmdlIG9mIG1l
dGEgaXRlcmF0b3IgaSAoaW5jbHVzaXZlKS4KLSRmb3IgaSBbWwotICAgICAgICAgICAgICAgJCQg
TWV0YSBsb29wLgotLy8gRm9vJGkgZG9lcyBibGFoIGZvciAkaS1hcnkgcHJlZGljYXRlcy4KLSRy
YW5nZSBqIDEuLmkKLXRlbXBsYXRlIDxzaXplX3QgTiAkZm9yIGogW1ssIHR5cGVuYW1lIEEkal1d
PgotY2xhc3MgRm9vJGkgewotJGlmIGkgPT0gMCBbWwotICBibGFoIGE7Ci1dXSAkZWxpZiBpIDw9
IDIgW1sKLSAgYmxhaCBiOwotXV0gJGVsc2UgW1sKLSAgYmxhaCBjOwotXV0KLX07Ci0KLV1dCi1g
YGAKLQotd2lsbCBiZSB0cmFuc2xhdGVkIGJ5IHRoZSBQdW1wIGNvbXBpbGVyIHRvOgotCi1gYGAK
LS8vIEZvbzAgZG9lcyBibGFoIGZvciAwLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVf
dCBOPgotY2xhc3MgRm9vMCB7Ci0gIGJsYWggYTsKLX07Ci0KLS8vIEZvbzEgZG9lcyBibGFoIGZv
ciAxLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBOLCB0eXBlbmFtZSBBMT4KLWNs
YXNzIEZvbzEgewotICBibGFoIGI7Ci19OwotCi0vLyBGb28yIGRvZXMgYmxhaCBmb3IgMi1hcnkg
cHJlZGljYXRlcy4KLXRlbXBsYXRlIDxzaXplX3QgTiwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEy
PgotY2xhc3MgRm9vMiB7Ci0gIGJsYWggYjsKLX07Ci0KLS8vIEZvbzMgZG9lcyBibGFoIGZvciAz
LWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBOLCB0eXBlbmFtZSBBMSwgdHlwZW5h
bWUgQTIsIHR5cGVuYW1lIEEzPgotY2xhc3MgRm9vMyB7Ci0gIGJsYWggYzsKLX07Ci1gYGAKLQot
SW4gYW5vdGhlciBleGFtcGxlLAotCi1gYGAKLSRyYW5nZSBpIDEuLm4KLUZ1bmMoJGZvciBpICsg
W1thJGldXSk7Ci0kJCBUaGUgdGV4dCBiZXR3ZWVuIGkgYW5kIFtbIGlzIHRoZSBzZXBhcmF0b3Ig
YmV0d2VlbiBpdGVyYXRpb25zLgotYGBgCi0KLXdpbGwgZ2VuZXJhdGUgb25lIG9mIHRoZSBmb2xs
b3dpbmcgbGluZXMgKHdpdGhvdXQgdGhlIGNvbW1lbnRzKSwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1
ZSBvZiBgbmA6Ci0KLWBgYAotRnVuYygpOyAgICAgICAgICAgICAgLy8gSWYgbiBpcyAwLgotRnVu
YyhhMSk7ICAgICAgICAgICAgLy8gSWYgbiBpcyAxLgotRnVuYyhhMSArIGEyKTsgICAgICAgLy8g
SWYgbiBpcyAyLgotRnVuYyhhMSArIGEyICsgYTMpOyAgLy8gSWYgbiBpcyAzLgotLy8gQW5kIHNv
IG9uLi4uCi1gYGAKLQotIyMgQ29uc3RydWN0cyAjIwotCi1XZSBzdXBwb3J0IHRoZSBmb2xsb3dp
bmcgbWV0YSBwcm9ncmFtbWluZyBjb25zdHJ1Y3RzOgotCi18IGAkdmFyIGlkID0gZXhwYCB8IERl
ZmluZXMgYSBuYW1lZCBjb25zdGFudCB2YWx1ZS4gYCRpZGAgaXMgdmFsaWQgdXRpbCB0aGUgZW5k
IG9mIHRoZSBjdXJyZW50IG1ldGEgbGV4aWNhbCBibG9jay4gfAotfDotLS0tLS0tLS0tLS0tLS0t
fDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLXwgYCRyYW5nZSBpZCBl
eHAuLmV4cGAgfCBTZXRzIHRoZSByYW5nZSBvZiBhbiBpdGVyYXRpb24gdmFyaWFibGUsIHdoaWNo
IGNhbiBiZSByZXVzZWQgaW4gbXVsdGlwbGUgbG9vcHMgbGF0ZXIuICAgICAgICAgIHwKLXwgYCRm
b3IgaWQgc2VwIFtbIGNvZGUgXV1gIHwgSXRlcmF0aW9uLiBUaGUgcmFuZ2Ugb2YgYGlkYCBtdXN0
IGhhdmUgYmVlbiBkZWZpbmVkIGVhcmxpZXIuIGAkaWRgIGlzIHZhbGlkIGluIGBjb2RlYC4gICAg
ICAgICB8Ci18IGAkKCQpYCAgICAgICAgICB8IEdlbmVyYXRlcyBhIHNpbmdsZSBgJGAgY2hhcmFj
dGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotfCBgJGlkYCAgICAgICAgICAgfCBWYWx1ZSBvZiB0aGUgbmFtZWQgY29uc3Rh
bnQgb3IgaXRlcmF0aW9uIHZhcmlhYmxlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLXwgYCQoZXhwKWAgICAgICAgIHwgVmFsdWUgb2YgdGhlIGV4cHJlc3Np
b24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8Ci18IGAkaWYgZXhwIFtbIGNvZGUgXV0gZWxzZV9icmFuY2hgIHwg
Q29uZGl0aW9uYWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGBbWyBjb2RlIF1dYCAg
ICB8IE1ldGEgbGV4aWNhbCBibG9jay4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgY3BwX2NvZGVg
ICAgICAgfCBSYXcgQysrIGNvZGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCQkIGNv
bW1lbnRgICAgIHwgTWV0YSBjb21tZW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0KLSoq
Tm90ZToqKiBUbyBnaXZlIHRoZSB1c2VyIHNvbWUgZnJlZWRvbSBpbiBmb3JtYXR0aW5nIHRoZSBQ
dW1wIHNvdXJjZQotY29kZSwgUHVtcCBpZ25vcmVzIGEgbmV3LWxpbmUgY2hhcmFjdGVyIGlmIGl0
J3MgcmlnaHQgYWZ0ZXIgYCRmb3IgZm9vYAotb3IgbmV4dCB0byBgW1tgIG9yIGBdXWAuIFdpdGhv
dXQgdGhpcyBydWxlIHlvdSdsbCBvZnRlbiBiZSBmb3JjZWQgdG8gd3JpdGUKLXZlcnkgbG9uZyBs
aW5lcyB0byBnZXQgdGhlIGRlc2lyZWQgb3V0cHV0LiBUaGVyZWZvcmUgc29tZXRpbWVzIHlvdSBt
YXkKLW5lZWQgdG8gaW5zZXJ0IGFuIGV4dHJhIG5ldy1saW5lIGluIHN1Y2ggcGxhY2VzIGZvciBh
IG5ldy1saW5lIHRvIHNob3cKLXVwIGluIHlvdXIgb3V0cHV0LgotCi0jIyBHcmFtbWFyICMjCi0K
LWBgYAotY29kZSA6Oj0gYXRvbWljX2NvZGUqCi1hdG9taWNfY29kZSA6Oj0gJHZhciBpZCA9IGV4
cAotICAgIHwgJHZhciBpZCA9IFtbIGNvZGUgXV0KLSAgICB8ICRyYW5nZSBpZCBleHAuLmV4cAot
ICAgIHwgJGZvciBpZCBzZXAgW1sgY29kZSBdXQotICAgIHwgJCgkKQotICAgIHwgJGlkCi0gICAg
fCAkKGV4cCkKLSAgICB8ICRpZiBleHAgW1sgY29kZSBdXSBlbHNlX2JyYW5jaAotICAgIHwgW1sg
Y29kZSBdXQotICAgIHwgY3BwX2NvZGUKLXNlcCA6Oj0gY3BwX2NvZGUgfCBlbXB0eV9zdHJpbmcK
LWVsc2VfYnJhbmNoIDo6PSAkZWxzZSBbWyBjb2RlIF1dCi0gICAgfCAkZWxpZiBleHAgW1sgY29k
ZSBdXSBlbHNlX2JyYW5jaAotICAgIHwgZW1wdHlfc3RyaW5nCi1leHAgOjo9IHNpbXBsZV9leHBy
ZXNzaW9uX2luX1B5dGhvbl9zeW50YXgKLWBgYAotCi0jIyBDb2RlICMjCi0KLVlvdSBjYW4gZmlu
ZCB0aGUgc291cmNlIGNvZGUgb2YgUHVtcCBpbiBbc2NyaXB0cy9wdW1wLnB5XSguLi9zY3JpcHRz
L3B1bXAucHkpLiBJdCBpcyBzdGlsbAotdmVyeSB1bnBvbGlzaGVkIGFuZCBsYWNrcyBhdXRvbWF0
ZWQgdGVzdHMsIGFsdGhvdWdoIGl0IGhhcyBiZWVuCi1zdWNjZXNzZnVsbHkgdXNlZCBtYW55IHRp
bWVzLiBJZiB5b3UgZmluZCBhIGNoYW5jZSB0byB1c2UgaXQgaW4geW91cgotcHJvamVjdCwgcGxl
YXNlIGxldCB1cyBrbm93IHdoYXQgeW91IHRoaW5rISAgV2UgYWxzbyB3ZWxjb21lIGhlbHAgb24K
LWltcHJvdmluZyBQdW1wLgotCi0jIyBSZWFsIEV4YW1wbGVzICMjCi0KLVlvdSBjYW4gZmluZCBy
ZWFsLXdvcmxkIGFwcGxpY2F0aW9ucyBvZiBQdW1wIGluIFtHb29nbGUgVGVzdF0oaHR0cHM6Ly9n
aXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3RyZWUvbWFzdGVyL2dvb2dsZXRlc3QpIGFuZCBb
R29vZ2xlIE1vY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC90cmVlL21h
c3Rlci9nb29nbGVtb2NrKS4gVGhlIHNvdXJjZSBmaWxlIGBmb28uaC5wdW1wYCBnZW5lcmF0ZXMg
YGZvby5oYC4KLQotIyMgVGlwcyAjIwotCi0gICogSWYgYSBtZXRhIHZhcmlhYmxlIGlzIGZvbGxv
d2VkIGJ5IGEgbGV0dGVyIG9yIGRpZ2l0LCB5b3UgY2FuIHNlcGFyYXRlIHRoZW0gdXNpbmcgYFtb
XV1gLCB3aGljaCBpbnNlcnRzIGFuIGVtcHR5IHN0cmluZy4gRm9yIGV4YW1wbGUgYEZvbyRqW1td
XUhlbHBlcmAgZ2VuZXJhdGUgYEZvbzFIZWxwZXJgIHdoZW4gYGpgIGlzIDEuCi0gICogVG8gYXZv
aWQgZXh0cmEtbG9uZyBQdW1wIHNvdXJjZSBsaW5lcywgeW91IGNhbiBicmVhayBhIGxpbmUgYW55
d2hlcmUgeW91IHdhbnQgYnkgaW5zZXJ0aW5nIGBbW11dYCBmb2xsb3dlZCBieSBhIG5ldyBsaW5l
LiBTaW5jZSBhbnkgbmV3LWxpbmUgY2hhcmFjdGVyIG5leHQgdG8gYFtbYCBvciBgXV1gIGlzIGln
bm9yZWQsIHRoZSBnZW5lcmF0ZWQgY29kZSB3b24ndCBjb250YWluIHRoaXMgbmV3IGxpbmUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1hjb2RlR3VpZGUubWQgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1hjb2RlR3VpZGUubWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFjNjBhMzNkYWQ0M2JhZjk4MzgxZjdjOWYyMGY2OWI1NThiMmFhZDAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kCisrKyAvZGV2L251bGwKQEAgLTEsOTMg
KzAsMCBAQAotCi0KLVRoaXMgZ3VpZGUgd2lsbCBleHBsYWluIGhvdyB0byB1c2UgdGhlIEdvb2ds
ZSBUZXN0aW5nIEZyYW1ld29yayBpbiB5b3VyIFhjb2RlIHByb2plY3RzIG9uIE1hYyBPUyBYLiBU
aGlzIHR1dG9yaWFsIGJlZ2lucyBieSBxdWlja2x5IGV4cGxhaW5pbmcgd2hhdCB0byBkbyBmb3Ig
ZXhwZXJpZW5jZWQgdXNlcnMuIEFmdGVyIHRoZSBxdWljayBzdGFydCwgdGhlIGd1aWRlIGdvZXMg
cHJvdmlkZXMgYWRkaXRpb25hbCBleHBsYW5hdGlvbiBhYm91dCBlYWNoIHN0ZXAuCi0KLSMgUXVp
Y2sgU3RhcnQgIwotCi1IZXJlIGlzIHRoZSBxdWljayBndWlkZSBmb3IgdXNpbmcgR29vZ2xlIFRl
c3QgaW4geW91ciBYY29kZSBwcm9qZWN0LgotCi0gIDEuIERvd25sb2FkIHRoZSBzb3VyY2UgZnJv
bSB0aGUgW3dlYnNpdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdCkgdXNp
bmcgdGhpcyBjb21tYW5kOiBgc3ZuIGNoZWNrb3V0IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNv
ZGUuY29tL3N2bi90cnVuay8gZ29vZ2xldGVzdC1yZWFkLW9ubHlgLgotICAxLiBPcGVuIHVwIHRo
ZSBgZ3Rlc3QueGNvZGVwcm9qYCBpbiB0aGUgYGdvb2dsZXRlc3QtcmVhZC1vbmx5L3hjb2RlL2Ag
ZGlyZWN0b3J5IGFuZCBidWlsZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrLgotICAxLiBDcmVhdGUgYSBu
ZXcgIlNoZWxsIFRvb2wiIHRhcmdldCBpbiB5b3VyIFhjb2RlIHByb2plY3QgY2FsbGVkIHNvbWV0
aGluZyBsaWtlICJVbml0VGVzdHMiLgotICAxLiBBZGQgdGhlIGd0ZXN0LmZyYW1ld29yayB0byB5
b3VyIHByb2plY3QgYW5kIGFkZCBpdCB0byB0aGUgIkxpbmsgQmluYXJ5IHdpdGggTGlicmFyaWVz
IiBidWlsZCBwaGFzZSBvZiAiVW5pdFRlc3RzIi4KLSAgMS4gQWRkIHlvdXIgdW5pdCB0ZXN0IHNv
dXJjZSBjb2RlIHRvIHRoZSAiQ29tcGlsZSBTb3VyY2VzIiBidWlsZCBwaGFzZSBvZiAiVW5pdFRl
c3RzIi4KLSAgMS4gRWRpdCB0aGUgIlVuaXRUZXN0cyIgZXhlY3V0YWJsZSBhbmQgYWRkIGFuIGVu
dmlyb25tZW50IHZhcmlhYmxlIG5hbWVkICJEWUxEXF9GUkFNRVdPUktcX1BBVEgiIHdpdGggYSB2
YWx1ZSBlcXVhbCB0byB0aGUgcGF0aCB0byB0aGUgZnJhbWV3b3JrIGNvbnRhaW5pbmcgdGhlIGd0
ZXN0LmZyYW1ld29yayByZWxhdGl2ZSB0byB0aGUgY29tcGlsZWQgZXhlY3V0YWJsZS4KLSAgMS4g
QnVpbGQgYW5kIEdvLgotCi1UaGUgZm9sbG93aW5nIHNlY3Rpb25zIGZ1cnRoZXIgZXhwbGFpbiBl
YWNoIG9mIHRoZSBzdGVwcyBsaXN0ZWQgYWJvdmUgaW4gZGVwdGgsIGRlc2NyaWJpbmcgaW4gbW9y
ZSBkZXRhaWwgaG93IHRvIGNvbXBsZXRlIGl0IGluY2x1ZGluZyBzb21lIHZhcmlhdGlvbnMuCi0K
LSMgR2V0IHRoZSBTb3VyY2UgIwotCi1DdXJyZW50bHksIHRoZSBndGVzdC5mcmFtZXdvcmsgZGlz
Y3Vzc2VkIGhlcmUgaXNuJ3QgYXZhaWxhYmxlIGluIGEgdGFnZ2VkIHJlbGVhc2Ugb2YgR29vZ2xl
IFRlc3QsIGl0IGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSB0cnVuay4gQXMgZXhwbGFpbmVkIGF0
IHRoZSBHb29nbGUgVGVzdCBbc2l0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0
ZXN0KSwgeW91IGNhbiBnZXQgdGhlIGNvZGUgZnJvbSBhbm9ueW1vdXMgU1ZOIHdpdGggdGhpcyBj
b21tYW5kOgotCi1gYGAKLXN2biBjaGVja291dCBodHRwOi8vZ29vZ2xldGVzdC5nb29nbGVjb2Rl
LmNvbS9zdm4vdHJ1bmsvIGdvb2dsZXRlc3QtcmVhZC1vbmx5Ci1gYGAKLQotQWx0ZXJuYXRpdmVs
eSwgaWYgeW91IGFyZSB3b3JraW5nIHdpdGggU3VidmVyc2lvbiBpbiB5b3VyIG93biBjb2RlIGJh
c2UsIHlvdSBjYW4gYWRkIEdvb2dsZSBUZXN0IGFzIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdG8g
eW91ciBvd24gU3VidmVyc2lvbiByZXBvc2l0b3J5LiBCeSBmb2xsb3dpbmcgdGhpcyBhcHByb2Fj
aCwgZXZlcnlvbmUgdGhhdCBjaGVja3Mgb3V0IHlvdXIgc3ZuIHJlcG9zaXRvcnkgd2lsbCBhbHNv
IHJlY2VpdmUgYSBjb3B5IG9mIEdvb2dsZSBUZXN0IChhIHNwZWNpZmljIHZlcnNpb24sIGlmIHlv
dSB3aXNoKSB3aXRob3V0IGhhdmluZyB0byBjaGVjayBpdCBvdXQgZXhwbGljaXRseS4gVGhpcyBt
YWtlcyB0aGUgc2V0IHVwIG9mIHlvdXIgcHJvamVjdCBzaW1wbGVyIGFuZCByZWR1Y2VzIHRoZSBj
b3BpZWQgY29kZSBpbiB0aGUgcmVwb3NpdG9yeS4KLQotVG8gdXNlIGBzdm46ZXh0ZXJuYWxzYCwg
ZGVjaWRlIHdoZXJlIHlvdSB3b3VsZCBsaWtlIHRvIGhhdmUgdGhlIGV4dGVybmFsIHNvdXJjZSBy
ZXNpZGUuIFlvdSBtaWdodCBjaG9vc2UgdG8gcHV0IHRoZSBleHRlcm5hbCBzb3VyY2UgaW5zaWRl
IHRoZSB0cnVuaywgYmVjYXVzZSB5b3Ugd2FudCBpdCB0byBiZSBwYXJ0IG9mIHRoZSBicmFuY2gg
d2hlbiB5b3UgbWFrZSBhIHJlbGVhc2UuIEhvd2V2ZXIsIGtlZXBpbmcgaXQgb3V0c2lkZSB0aGUg
dHJ1bmsgaW4gYSB2ZXJzaW9uLXRhZ2dlZCBkaXJlY3RvcnkgY2FsbGVkIHNvbWV0aGluZyBsaWtl
IGB0aGlyZC1wYXJ0eS9nb29nbGV0ZXN0LzEuMC4xYCwgaXMgYW5vdGhlciBvcHRpb24uIE9uY2Ug
dGhlIGxvY2F0aW9uIGlzIGVzdGFibGlzaGVkLCB1c2UgYHN2biBwcm9wZWRpdCBzdm46ZXh0ZXJu
YWxzIF9kaXJlY3RvcnlfYCB0byBzZXQgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydHkgb24gYSBk
aXJlY3RvcnkgaW4geW91ciByZXBvc2l0b3J5LiBUaGlzIGRpcmVjdG9yeSB3b24ndCBjb250YWlu
IHRoZSBjb2RlLCBidXQgYmUgaXRzIHZlcnNpb25lZCBwYXJlbnQgZGlyZWN0b3J5LgotCi1UaGUg
Y29tbWFuZCBgc3ZuIHByb3BlZGl0YCB3aWxsIGJyaW5nIHVwIHlvdXIgU3VidmVyc2lvbiBlZGl0
b3IsIG1ha2luZyBlZGl0aW5nIHRoZSBsb25nLCAocG90ZW50aWFsbHkgbXVsdGktbGluZSkgcHJv
cGVydHkgc2ltcGxlci4gVGhpcyBzYW1lIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBjaGVjayBvdXQg
YSB0YWdnZWQgYnJhbmNoLCBieSB1c2luZyB0aGUgYXBwcm9wcmlhdGUgVVJMIChlLmcuIGBodHRw
czovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvcmVsZWFzZXMvdGFnL3JlbGVhc2UtMS4w
LjFgKS4gQWRkaXRpb25hbGx5LCB0aGUgc3ZuOmV4dGVybmFscyBwcm9wZXJ0eSBhbGxvd3MgdGhl
IHNwZWNpZmljYXRpb24gb2YgYSBwYXJ0aWN1bGFyIHJldmlzaW9uIG9mIHRoZSB0cnVuayB3aXRo
IHRoZSBgLXJfIyNfYCBvcHRpb24gKGUuZy4gYGV4dGVybmFscy9zcmMvZ29vZ2xldGVzdCAtcjYw
IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVua2ApLgotCi1IZXJlIGlz
IGFuIGV4YW1wbGUgb2YgdXNpbmcgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydGllcyBvbiBhIHRy
dW5rIChyZWFkIHZpYSBgc3ZuIHByb3BnZXRgKSBvZiBhIHByb2plY3QuIFRoaXMgdmFsdWUgY2hl
Y2tzIG91dCBhIGNvcHkgb2YgR29vZ2xlIFRlc3QgaW50byB0aGUgYHRydW5rL2V4dGVybmFscy9z
cmMvZ29vZ2xldGVzdC9gIGRpcmVjdG9yeS4KLQotYGBgCi1bQ29tcHV0ZXI6c3ZuXSB1c2VyJCBz
dm4gcHJvcGdldCBzdm46ZXh0ZXJuYWxzIHRydW5rCi1leHRlcm5hbHMvc3JjL2dvb2dsZXRlc3Qg
aHR0cDovL2dvb2dsZXRlc3QuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rCi1gYGAKLQotIyBBZGQg
dGhlIEZyYW1ld29yayB0byBZb3VyIFByb2plY3QgIwotCi1UaGUgbmV4dCBzdGVwIGlzIHRvIGJ1
aWxkIGFuZCBhZGQgdGhlIGd0ZXN0LmZyYW1ld29yayB0byB5b3VyIG93biBwcm9qZWN0LiBUaGlz
IGd1aWRlIGRlc2NyaWJlcyB0d28gY29tbW9uIHdheXMgYmVsb3cuCi0KLSAgKiAqKk9wdGlvbiAx
KiogLS0tIFRoZSBzaW1wbGVzdCB3YXkgdG8gYWRkIEdvb2dsZSBUZXN0IHRvIHlvdXIgb3duIHBy
b2plY3QsIGlzIHRvIG9wZW4gZ3Rlc3QueGNvZGVwcm9qIChmb3VuZCBpbiB0aGUgeGNvZGUvIGRp
cmVjdG9yeSBvZiB0aGUgR29vZ2xlIFRlc3QgdHJ1bmspIGFuZCBidWlsZCB0aGUgZnJhbWV3b3Jr
IG1hbnVhbGx5LiBUaGVuLCBhZGQgdGhlIGJ1aWx0IGZyYW1ld29yayBpbnRvIHlvdXIgcHJvamVj
dCB1c2luZyB0aGUgIkFkZC0+RXhpc3RpbmcgRnJhbWV3b3JrLi4uIiBmcm9tIHRoZSBjb250ZXh0
IG1lbnUgb3IgIlByb2plY3QtPkFkZC4uLiIgZnJvbSB0aGUgbWFpbiBtZW51LiBUaGUgZ3Rlc3Qu
ZnJhbWV3b3JrIGlzIHJlbG9jYXRhYmxlIGFuZCBjb250YWlucyB0aGUgaGVhZGVycyBhbmQgb2Jq
ZWN0IGNvZGUgdGhhdCB5b3UnbGwgbmVlZCB0byBtYWtlIHRlc3RzLiBUaGlzIG1ldGhvZCByZXF1
aXJlcyByZWJ1aWxkaW5nIGV2ZXJ5IHRpbWUgeW91IHVwZ3JhZGUgR29vZ2xlIFRlc3QgaW4geW91
ciBwcm9qZWN0LgotICAqICoqT3B0aW9uIDIqKiAtLS0gSWYgeW91IGFyZSBnb2luZyB0byBiZSBs
aXZpbmcgb2ZmIHRoZSB0cnVuayBvZiBHb29nbGUgVGVzdCwgaW5jb3Jwb3JhdGluZyBpdHMgbGF0
ZXN0IGZlYXR1cmVzIGludG8geW91ciB1bml0IHRlc3RzIChvciBhcmUgYSBHb29nbGUgVGVzdCBk
ZXZlbG9wZXIgeW91cnNlbGYpLiBZb3UnbGwgd2FudCB0byByZWJ1aWxkIHRoZSBmcmFtZXdvcmsg
ZXZlcnkgdGltZSB0aGUgc291cmNlIHVwZGF0ZXMuIHRvIGRvIHRoaXMsIHlvdSdsbCBuZWVkIHRv
IGFkZCB0aGUgZ3Rlc3QueGNvZGVwcm9qIGZpbGUsIG5vdCB0aGUgZnJhbWV3b3JrIGl0c2VsZiwg
dG8geW91ciBvd24gWGNvZGUgcHJvamVjdC4gVGhlbiwgZnJvbSB0aGUgYnVpbGQgcHJvZHVjdHMg
dGhhdCBhcmUgcmV2ZWFsZWQgYnkgdGhlIHByb2plY3QncyBkaXNjbG9zdXJlIHRyaWFuZ2xlLCB5
b3UgY2FuIGZpbmQgdGhlIGd0ZXN0LmZyYW1ld29yaywgd2hpY2ggY2FuIGJlIGFkZGVkIHRvIHlv
dXIgdGFyZ2V0cyAoZGlzY3Vzc2VkIGJlbG93KS4KLQotIyBNYWtlIGEgVGVzdCBUYXJnZXQgIwot
Ci1UbyBzdGFydCB3cml0aW5nIHRlc3RzLCBtYWtlIGEgbmV3ICJTaGVsbCBUb29sIiB0YXJnZXQu
IFRoaXMgdGFyZ2V0IHRlbXBsYXRlIGlzIGF2YWlsYWJsZSB1bmRlciBCU0QsIENvY29hLCBvciBD
YXJib24uIEFkZCB5b3VyIHVuaXQgdGVzdCBzb3VyY2UgY29kZSB0byB0aGUgIkNvbXBpbGUgU291
cmNlcyIgYnVpbGQgcGhhc2Ugb2YgdGhlIHRhcmdldC4KLQotTmV4dCwgeW91J2xsIHdhbnQgdG8g
YWRkIGd0ZXN0LmZyYW1ld29yayBpbiB0d28gZGlmZmVyZW50IHdheXMsIGRlcGVuZGluZyB1cG9u
IHdoaWNoIG9wdGlvbiB5b3UgY2hvc2UgYWJvdmUuCi0KLSAgKiAqKk9wdGlvbiAxKiogLS0tIER1
cmluZyBjb21waWxhdGlvbiwgWGNvZGUgd2lsbCBuZWVkIHRvIGtub3cgdGhhdCB5b3UgYXJlIGxp
bmtpbmcgYWdhaW5zdCB0aGUgZ3Rlc3QuZnJhbWV3b3JrLiBBZGQgdGhlIGd0ZXN0LmZyYW1ld29y
ayB0byB0aGUgIkxpbmsgQmluYXJ5IHdpdGggTGlicmFyaWVzIiBidWlsZCBwaGFzZSBvZiB5b3Vy
IHRlc3QgdGFyZ2V0LiBUaGlzIHdpbGwgaW5jbHVkZSB0aGUgR29vZ2xlIFRlc3QgaGVhZGVycyBp
biB5b3VyIGhlYWRlciBzZWFyY2ggcGF0aCwgYW5kIHdpbGwgdGVsbCB0aGUgbGlua2VyIHdoZXJl
IHRvIGZpbmQgdGhlIGxpYnJhcnkuCi0gICogKipPcHRpb24gMioqIC0tLSBJZiB5b3VyIHdvcmtp
bmcgb3V0IG9mIHRoZSB0cnVuaywgeW91J2xsIGFsc28gd2FudCB0byBhZGQgZ3Rlc3QuZnJhbWV3
b3JrIHRvIHlvdXIgIkxpbmsgQmluYXJ5IHdpdGggTGlicmFyaWVzIiBidWlsZCBwaGFzZSBvZiB5
b3VyIHRlc3QgdGFyZ2V0LiBJbiBhZGRpdGlvbiwgeW91J2xsICB3YW50IHRvIGFkZCB0aGUgZ3Rl
c3QuZnJhbWV3b3JrIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIHVuaXQgdGVzdCB0YXJnZXQuIFRo
aXMgd2F5LCBYY29kZSB3aWxsIG1ha2Ugc3VyZSB0aGF0IGd0ZXN0LmZyYW1ld29yayBpcyB1cCB0
byBkYXRlLCBldmVyeSB0aW1lIHlvdXIgYnVpbGQgeW91ciB0YXJnZXQuIEZpbmFsbHksIGlmIHlv
dSBkb24ndCBzaGFyZSBidWlsZCBkaXJlY3RvcmllcyB3aXRoIEdvb2dsZSBUZXN0LCB5b3UnbGwg
aGF2ZSB0byBjb3B5IHRoZSBndGVzdC5mcmFtZXdvcmsgaW50byB5b3VyIG93biBidWlsZCBwcm9k
dWN0cyBkaXJlY3RvcnkgdXNpbmcgYSAiUnVuIFNjcmlwdCIgYnVpbGQgcGhhc2UuCi0KLSMgU2V0
IFVwIHRoZSBFeGVjdXRhYmxlIFJ1biBFbnZpcm9ubWVudCAjCi0KLVNpbmNlIHRoZSB1bml0IHRl
c3QgZXhlY3V0YWJsZSBpcyBhIHNoZWxsIHRvb2wsIGl0IGRvZXNuJ3QgaGF2ZSBhIGJ1bmRsZSB3
aXRoIGEgYENvbnRlbnRzL0ZyYW1ld29ya3NgIGRpcmVjdG9yeSwgaW4gd2hpY2ggdG8gcGxhY2Ug
Z3Rlc3QuZnJhbWV3b3JrLiBJbnN0ZWFkLCB0aGUgZHluYW1pYyBsaW5rZXIgbXVzdCBiZSB0b2xk
IGF0IHJ1bnRpbWUgdG8gc2VhcmNoIGZvciB0aGUgZnJhbWV3b3JrIGluIGFub3RoZXIgbG9jYXRp
b24uIFRoaXMgY2FuIGJlIGFjY29tcGxpc2hlZCBieSBzZXR0aW5nIHRoZSAiRFlMRFxfRlJBTUVX
T1JLXF9QQVRIIiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgIkVkaXQgQWN0aXZlIEV4ZWN1
dGFibGUgLi4uIiBBcmd1bWVudHMgdGFiLCB1bmRlciAiVmFyaWFibGVzIHRvIGJlIHNldCBpbiB0
aGUgZW52aXJvbm1lbnQ6Ii4gVGhlIHBhdGggZm9yIHRoaXMgdmFsdWUgaXMgdGhlIHBhdGggKHJl
bGF0aXZlIG9yIGFic29sdXRlKSBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGd0ZXN0
LmZyYW1ld29yay4KLQotSWYgeW91IGhhdmVuJ3Qgc2V0IHVwIHRoZSBEWUxEXF9GUkFNRVdPUktc
X1BBVEgsIGNvcnJlY3RseSwgeW91IG1pZ2h0IGdldCBhIG1lc3NhZ2UgbGlrZSB0aGlzOgotCi1g
YGAKLVtTZXNzaW9uIHN0YXJ0ZWQgYXQgMjAwOC0wOC0xNSAwNjoyMzo1NyAtMDYwMC5dCi0gIGR5
bGQ6IExpYnJhcnkgbm90IGxvYWRlZDogQGxvYWRlcl9wYXRoLy4uL0ZyYW1ld29ya3MvZ3Rlc3Qu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvZ3Rlc3QKLSAgICBSZWZlcmVuY2VkIGZyb206IC9Vc2Vycy91
c2VybmFtZS9Eb2N1bWVudHMvU2FuZGJveC9ndGVzdFNhbXBsZS9idWlsZC9EZWJ1Zy9XaWRnZXRG
cmFtZXdvcmtUZXN0Ci0gICAgUmVhc29uOiBpbWFnZSBub3QgZm91bmQKLWBgYAotCi1UbyBjb3Jy
ZWN0IHRoaXMgcHJvYmxlbSwgZ28gdG8gdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBl
eGVjdXRhYmxlIG5hbWVkIGluICJSZWZlcmVuY2VkIGZyb206IiB2YWx1ZSBpbiB0aGUgZXJyb3Ig
bWVzc2FnZSBhYm92ZS4gVGhlbiwgd2l0aCB0aGUgdGVybWluYWwgaW4gdGhpcyBsb2NhdGlvbiwg
ZmluZCB0aGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGd0
ZXN0LmZyYW1ld29yay4gVGhhdCBpcyB0aGUgdmFsdWUgeW91J2xsIG5lZWQgdG8gc2V0IGFzIHRo
ZSBEWUxEXF9GUkFNRVdPUktcX1BBVEguCi0KLSMgQnVpbGQgYW5kIEdvICMKLQotTm93LCB3aGVu
IHlvdSBjbGljayAiQnVpbGQgYW5kIEdvIiwgdGhlIHRlc3Qgd2lsbCBiZSBleGVjdXRlZC4gRHVt
cGluZyBvdXQgc29tZXRoaW5nIGxpa2UgdGhpczoKLQotYGBgCi1bU2Vzc2lvbiBzdGFydGVkIGF0
IDIwMDgtMDgtMDYgMDY6MzY6MTMgLTA2MDAuXQotWz09PT09PT09PT1dIFJ1bm5pbmcgMiB0ZXN0
cyBmcm9tIDEgdGVzdCBjYXNlLgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50
IHNldC11cC4KLVstLS0tLS0tLS0tXSAyIHRlc3RzIGZyb20gV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0
Ci1bIFJVTiAgICAgIF0gV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LlRlc3RDb25zdHJ1Y3RvcgotWyAg
ICAgICBPSyBdIFdpZGdldEluaXRpYWxpemVyVGVzdC5UZXN0Q29uc3RydWN0b3IKLVsgUlVOICAg
ICAgXSBXaWRnZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnZlcnNpb24KLVsgICAgICAgT0sgXSBX
aWRnZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnZlcnNpb24KLVstLS0tLS0tLS0tXSBHbG9iYWwg
dGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9PT09PT09PT09XSAyIHRlc3RzIGZyb20gMSB0
ZXN0IGNhc2UgcmFuLgotWyAgUEFTU0VEICBdIDIgdGVzdHMuCi0KLVRoZSBEZWJ1Z2dlciBoYXMg
ZXhpdGVkIHdpdGggc3RhdHVzIDAuICAKLWBgYAotCi0jIFN1bW1hcnkgIwotCi1Vbml0IHRlc3Rp
bmcgaXMgYSB2YWx1YWJsZSB3YXkgdG8gZW5zdXJlIHlvdXIgZGF0YSBtb2RlbCBzdGF5cyB2YWxp
ZCBldmVuIGR1cmluZyByYXBpZCBkZXZlbG9wbWVudCBvciByZWZhY3RvcmluZy4gVGhlIEdvb2ds
ZSBUZXN0aW5nIEZyYW1ld29yayBpcyBhIGdyZWF0IHVuaXQgdGVzdGluZyBmcmFtZXdvcmsgZm9y
IEMgYW5kIEMrKyB3aGljaCBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBhbiBYY29kZSBkZXZlbG9wbWVu
dCBlbnZpcm9ubWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3Mv
YWR2YW5jZWQubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDY1ZDE5NjIxYThiMzdmYjc4Y2I1ZTBlZDFi
ODYxOGZlNzYyNWQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvYWR2YW5jZWQubWQKKysrIC9kZXYvbnVs
bApAQCAtMSwyNTIwICswLDAgQEAKLSMgQWR2YW5jZWQgZ29vZ2xldGVzdCBUb3BpY3MKLQotCi0j
IyBJbnRyb2R1Y3Rpb24KLQotTm93IHRoYXQgeW91IGhhdmUgcmVhZCB0aGUgW2dvb2dsZXRlc3Qg
UHJpbWVyXShwcmltZXIubWQpIGFuZCBsZWFybmVkIGhvdyB0byB3cml0ZQotdGVzdHMgdXNpbmcg
Z29vZ2xldGVzdCwgaXQncyB0aW1lIHRvIGxlYXJuIHNvbWUgbmV3IHRyaWNrcy4gVGhpcyBkb2N1
bWVudCB3aWxsCi1zaG93IHlvdSBtb3JlIGFzc2VydGlvbnMgYXMgd2VsbCBhcyBob3cgdG8gY29u
c3RydWN0IGNvbXBsZXggZmFpbHVyZSBtZXNzYWdlcywKLXByb3BhZ2F0ZSBmYXRhbCBmYWlsdXJl
cywgcmV1c2UgYW5kIHNwZWVkIHVwIHlvdXIgdGVzdCBmaXh0dXJlcywgYW5kIHVzZSB2YXJpb3Vz
Ci1mbGFncyB3aXRoIHlvdXIgdGVzdHMuCi0KLSMjIE1vcmUgQXNzZXJ0aW9ucwotCi1UaGlzIHNl
Y3Rpb24gY292ZXJzIHNvbWUgbGVzcyBmcmVxdWVudGx5IHVzZWQsIGJ1dCBzdGlsbCBzaWduaWZp
Y2FudCwKLWFzc2VydGlvbnMuCi0KLSMjIyBFeHBsaWNpdCBTdWNjZXNzIGFuZCBGYWlsdXJlCi0K
LVRoZXNlIHRocmVlIGFzc2VydGlvbnMgZG8gbm90IGFjdHVhbGx5IHRlc3QgYSB2YWx1ZSBvciBl
eHByZXNzaW9uLiBJbnN0ZWFkLCB0aGV5Ci1nZW5lcmF0ZSBhIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBk
aXJlY3RseS4gTGlrZSB0aGUgbWFjcm9zIHRoYXQgYWN0dWFsbHkgcGVyZm9ybSBhCi10ZXN0LCB5
b3UgbWF5IHN0cmVhbSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2UgaW50byB0aGVtLgotCi1gYGBj
KysKLVNVQ0NFRUQoKTsKLWBgYAotCi1HZW5lcmF0ZXMgYSBzdWNjZXNzLiBUaGlzIGRvZXMgKipO
T1QqKiBtYWtlIHRoZSBvdmVyYWxsIHRlc3Qgc3VjY2VlZC4gQSB0ZXN0IGlzCi1jb25zaWRlcmVk
IHN1Y2Nlc3NmdWwgb25seSBpZiBub25lIG9mIGl0cyBhc3NlcnRpb25zIGZhaWwgZHVyaW5nIGl0
cyBleGVjdXRpb24uCi0KLU5PVEU6IGBTVUNDRUVEKClgIGlzIHB1cmVseSBkb2N1bWVudGFyeSBh
bmQgY3VycmVudGx5IGRvZXNuJ3QgZ2VuZXJhdGUgYW55Ci11c2VyLXZpc2libGUgb3V0cHV0LiBI
b3dldmVyLCB3ZSBtYXkgYWRkIGBTVUNDRUVEKClgIG1lc3NhZ2VzIHRvIGdvb2dsZXRlc3Qncwot
b3V0cHV0IGluIHRoZSBmdXR1cmUuCi0KLWBgYGMrKwotRkFJTCgpOwotQUREX0ZBSUxVUkUoKTsK
LUFERF9GQUlMVVJFX0FUKCJmaWxlX3BhdGgiLCBsaW5lX251bWJlcik7Ci1gYGAKLQotYEZBSUwo
KWAgZ2VuZXJhdGVzIGEgZmF0YWwgZmFpbHVyZSwgd2hpbGUgYEFERF9GQUlMVVJFKClgIGFuZCBg
QUREX0ZBSUxVUkVfQVQoKWAKLWdlbmVyYXRlIGEgbm9uZmF0YWwgZmFpbHVyZS4gVGhlc2UgYXJl
IHVzZWZ1bCB3aGVuIGNvbnRyb2wgZmxvdywgcmF0aGVyIHRoYW4gYQotQm9vbGVhbiBleHByZXNz
aW9uLCBkZXRlcm1pbmVzIHRoZSB0ZXN0J3Mgc3VjY2VzcyBvciBmYWlsdXJlLiBGb3IgZXhhbXBs
ZSwgeW91Ci1taWdodCB3YW50IHRvIHdyaXRlIHNvbWV0aGluZyBsaWtlOgotCi1gYGBjKysKLXN3
aXRjaChleHByZXNzaW9uKSB7Ci0gIGNhc2UgMToKLSAgICAgLi4uIHNvbWUgY2hlY2tzIC4uLgot
ICBjYXNlIDI6Ci0gICAgIC4uLiBzb21lIG90aGVyIGNoZWNrcyAuLi4KLSAgZGVmYXVsdDoKLSAg
ICAgRkFJTCgpIDw8ICJXZSBzaG91bGRuJ3QgZ2V0IGhlcmUuIjsKLX0KLWBgYAotCi1OT1RFOiB5
b3UgY2FuIG9ubHkgdXNlIGBGQUlMKClgIGluIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBgdm9pZGAu
IFNlZSB0aGUKLVtBc3NlcnRpb24gUGxhY2VtZW50IHNlY3Rpb25dKCNhc3NlcnRpb24tcGxhY2Vt
ZW50KSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIEV4Y2VwdGlvbiBBc3NlcnRpb25zCi0KLVRoZXNlIGFyZSBmb3Ig
dmVyaWZ5aW5nIHRoYXQgYSBwaWVjZSBvZiBjb2RlIHRocm93cyAob3IgZG9lcyBub3QgdGhyb3cp
IGFuCi1leGNlcHRpb24gb2YgdGhlIGdpdmVuIHR5cGU6Ci0KLUZhdGFsIGFzc2VydGlvbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAt
LS0tLS0tLQotYEFTU0VSVF9USFJPVyhzdGF0ZW1lbnQsIGV4Y2VwdGlvbl90eXBlKTtgIHwgYEVY
UEVDVF9USFJPVyhzdGF0ZW1lbnQsIGV4Y2VwdGlvbl90eXBlKTtgIHwgYHN0YXRlbWVudGAgdGhy
b3dzIGFuIGV4Y2VwdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZQotYEFTU0VSVF9BTllfVEhST1coc3Rh
dGVtZW50KTtgICAgICAgICAgICAgIHwgYEVYUEVDVF9BTllfVEhST1coc3RhdGVtZW50KTtgICAg
ICAgICAgICAgIHwgYHN0YXRlbWVudGAgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiBhbnkgdHlwZQot
YEFTU0VSVF9OT19USFJPVyhzdGF0ZW1lbnQpO2AgICAgICAgICAgICAgIHwgYEVYUEVDVF9OT19U
SFJPVyhzdGF0ZW1lbnQpO2AgICAgICAgICAgICAgIHwgYHN0YXRlbWVudGAgZG9lc24ndCB0aHJv
dyBhbnkgZXhjZXB0aW9uCi0KLUV4YW1wbGVzOgotCi1gYGBjKysKLUFTU0VSVF9USFJPVyhGb28o
NSksIGJhcl9leGNlcHRpb24pOwotCi1FWFBFQ1RfTk9fVEhST1coewotICBpbnQgbiA9IDU7Ci0g
IEJhcigmbik7Ci19KTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywg
TWFjOyByZXF1aXJlcyBleGNlcHRpb25zIHRvIGJlIGVuYWJsZWQgaW4gdGhlCi1idWlsZCBlbnZp
cm9ubWVudCAobm90ZSB0aGF0IGBnb29nbGUzYCAqKmRpc2FibGVzKiogZXhjZXB0aW9ucykuCi0K
LSMjIyBQcmVkaWNhdGUgQXNzZXJ0aW9ucyBmb3IgQmV0dGVyIEVycm9yIE1lc3NhZ2VzCi0KLUV2
ZW4gdGhvdWdoIGdvb2dsZXRlc3QgaGFzIGEgcmljaCBzZXQgb2YgYXNzZXJ0aW9ucywgdGhleSBj
YW4gbmV2ZXIgYmUgY29tcGxldGUsCi1hcyBpdCdzIGltcG9zc2libGUgKG5vciBhIGdvb2QgaWRl
YSkgdG8gYW50aWNpcGF0ZSBhbGwgc2NlbmFyaW9zIGEgdXNlciBtaWdodAotcnVuIGludG8uIFRo
ZXJlZm9yZSwgc29tZXRpbWVzIGEgdXNlciBoYXMgdG8gdXNlIGBFWFBFQ1RfVFJVRSgpYCB0byBj
aGVjayBhCi1jb21wbGV4IGV4cHJlc3Npb24sIGZvciBsYWNrIG9mIGEgYmV0dGVyIG1hY3JvLiBU
aGlzIGhhcyB0aGUgcHJvYmxlbSBvZiBub3QKLXNob3dpbmcgeW91IHRoZSB2YWx1ZXMgb2YgdGhl
IHBhcnRzIG9mIHRoZSBleHByZXNzaW9uLCBtYWtpbmcgaXQgaGFyZCB0bwotdW5kZXJzdGFuZCB3
aGF0IHdlbnQgd3JvbmcuIEFzIGEgd29ya2Fyb3VuZCwgc29tZSB1c2VycyBjaG9vc2UgdG8gY29u
c3RydWN0IHRoZQotZmFpbHVyZSBtZXNzYWdlIGJ5IHRoZW1zZWx2ZXMsIHN0cmVhbWluZyBpdCBp
bnRvIGBFWFBFQ1RfVFJVRSgpYC4gSG93ZXZlciwgdGhpcwotaXMgYXdrd2FyZCBlc3BlY2lhbGx5
IHdoZW4gdGhlIGV4cHJlc3Npb24gaGFzIHNpZGUtZWZmZWN0cyBvciBpcyBleHBlbnNpdmUgdG8K
LWV2YWx1YXRlLgotCi1nb29nbGV0ZXN0IGdpdmVzIHlvdSB0aHJlZSBkaWZmZXJlbnQgb3B0aW9u
cyB0byBzb2x2ZSB0aGlzIHByb2JsZW06Ci0KLSMjIyMgVXNpbmcgYW4gRXhpc3RpbmcgQm9vbGVh
biBGdW5jdGlvbgotCi1JZiB5b3UgYWxyZWFkeSBoYXZlIGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0
aGF0IHJldHVybnMgYGJvb2xgIChvciBhIHR5cGUgdGhhdAotY2FuIGJlIGltcGxpY2l0bHkgY29u
dmVydGVkIHRvIGBib29sYCksIHlvdSBjYW4gdXNlIGl0IGluIGEgKnByZWRpY2F0ZQotYXNzZXJ0
aW9uKiB0byBnZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cyBwcmludGVkIGZvciBmcmVlOgotCi18
IEZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24g
ICAgICAgICAgICAgICAgIHwgVmVyaWZpZXMgICAgICAgICAgICAgICAgICAgIHwKLXwgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX1BSRUQx
KHByZWQxLCB2YWwxKTtgICAgICAgIHwgYEVYUEVDVF9QUkVEMShwcmVkMSwgdmFsMSk7YCAgICAg
ICB8IGBwcmVkMSh2YWwxKWAgaXMgdHJ1ZSAgICAgICB8Ci18IGBBU1NFUlRfUFJFRDIocHJlZDIs
IHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX1BSRUQyKHByZWQyLCB2YWwxLCB2YWwyKTtgIHwgYHBy
ZWQyKHZhbDEsIHZhbDIpYCBpcyB0cnVlIHwKLXwgYC4uLmAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IGAuLi5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAg
ICAgICAgICAgICAgICAgICAgfAotCi1JbiB0aGUgYWJvdmUsIGBwcmVkbmAgaXMgYW4gYG5gLWFy
eSBwcmVkaWNhdGUgZnVuY3Rpb24gb3IgZnVuY3Rvciwgd2hlcmUgYHZhbDFgLAotYHZhbDJgLCAu
Li4sIGFuZCBgdmFsbmAgYXJlIGl0cyBhcmd1bWVudHMuIFRoZSBhc3NlcnRpb24gc3VjY2VlZHMg
aWYgdGhlCi1wcmVkaWNhdGUgcmV0dXJucyBgdHJ1ZWAgd2hlbiBhcHBsaWVkIHRvIHRoZSBnaXZl
biBhcmd1bWVudHMsIGFuZCBmYWlscwotb3RoZXJ3aXNlLiBXaGVuIHRoZSBhc3NlcnRpb24gZmFp
bHMsIGl0IHByaW50cyB0aGUgdmFsdWUgb2YgZWFjaCBhcmd1bWVudC4gSW4KLWVpdGhlciBjYXNl
LCB0aGUgYXJndW1lbnRzIGFyZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgotCi1IZXJlJ3MgYW4g
ZXhhbXBsZS4gR2l2ZW4KLQotYGBgYysrCi0vLyBSZXR1cm5zIHRydWUgaWYgbSBhbmQgbiBoYXZl
IG5vIGNvbW1vbiBkaXZpc29ycyBleGNlcHQgMS4KLWJvb2wgTXV0dWFsbHlQcmltZShpbnQgbSwg
aW50IG4pIHsgLi4uIH0KLQotY29uc3QgaW50IGEgPSAzOwotY29uc3QgaW50IGIgPSA0OwotY29u
c3QgaW50IGMgPSAxMDsKLWBgYAotCi10aGUgYXNzZXJ0aW9uCi0KLWBgYGMrKwotICBFWFBFQ1Rf
UFJFRDIoTXV0dWFsbHlQcmltZSwgYSwgYik7Ci1gYGAKLQotd2lsbCBzdWNjZWVkLCB3aGlsZSB0
aGUgYXNzZXJ0aW9uCi0KLWBgYGMrKwotICBFWFBFQ1RfUFJFRDIoTXV0dWFsbHlQcmltZSwgYiwg
Yyk7Ci1gYGAKLQotd2lsbCBmYWlsIHdpdGggdGhlIG1lc3NhZ2UKLQotYGBgbm9uZQotTXV0dWFs
bHlQcmltZShiLCBjKSBpcyBmYWxzZSwgd2hlcmUKLWIgaXMgNAotYyBpcyAxMAotYGBgCi0KLT4g
Tk9URToKLT4KLT4gMS4gIElmIHlvdSBzZWUgYSBjb21waWxlciBlcnJvciAibm8gbWF0Y2hpbmcg
ZnVuY3Rpb24gdG8gY2FsbCIgd2hlbiB1c2luZwotPiAgICAgYEFTU0VSVF9QUkVEKmAgb3IgYEVY
UEVDVF9QUkVEKmAsIHBsZWFzZSBzZWUKLT4gICAgIFt0aGlzXShmYXEubWQjT3ZlcmxvYWRlZFBy
ZWRpY2F0ZSkgZm9yIGhvdyB0byByZXNvbHZlIGl0LgotPiAxLiAgQ3VycmVudGx5IHdlIG9ubHkg
cHJvdmlkZSBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBvZiBhcml0eSA8PSA1LiBJZiB5b3UgbmVlZAot
PiAgICAgYSBoaWdoZXItYXJpdHkgYXNzZXJ0aW9uLCBsZXQgW3VzXShodHRwczovL2dpdGh1Yi5j
b20vZ29vZ2xlL2dvb2dsZXRlc3QvaXNzdWVzKSBrbm93LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBM
aW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFVzaW5nIGEgRnVuY3Rpb24gVGhhdCBSZXR1cm5z
IGFuIEFzc2VydGlvblJlc3VsdAotCi1XaGlsZSBgRVhQRUNUX1BSRUQqKClgIGFuZCBmcmllbmRz
IGFyZSBoYW5keSBmb3IgYSBxdWljayBqb2IsIHRoZSBzeW50YXggaXMgbm90Ci1zYXRpc2ZhY3Rv
cnk6IHlvdSBoYXZlIHRvIHVzZSBkaWZmZXJlbnQgbWFjcm9zIGZvciBkaWZmZXJlbnQgYXJpdGll
cywgYW5kIGl0Ci1mZWVscyBtb3JlIGxpa2UgTGlzcCB0aGFuIEMrKy4gVGhlIGA6OnRlc3Rpbmc6
OkFzc2VydGlvblJlc3VsdGAgY2xhc3Mgc29sdmVzCi10aGlzIHByb2JsZW0uCi0KLUFuIGBBc3Nl
cnRpb25SZXN1bHRgIG9iamVjdCByZXByZXNlbnRzIHRoZSByZXN1bHQgb2YgYW4gYXNzZXJ0aW9u
ICh3aGV0aGVyIGl0J3MKLWEgc3VjY2VzcyBvciBhIGZhaWx1cmUsIGFuZCBhbiBhc3NvY2lhdGVk
IG1lc3NhZ2UpLiBZb3UgY2FuIGNyZWF0ZSBhbgotYEFzc2VydGlvblJlc3VsdGAgdXNpbmcgb25l
IG9mIHRoZXNlIGZhY3RvcnkgZnVuY3Rpb25zOgotCi1gYGBjKysKLW5hbWVzcGFjZSB0ZXN0aW5n
IHsKLQotLy8gUmV0dXJucyBhbiBBc3NlcnRpb25SZXN1bHQgb2JqZWN0IHRvIGluZGljYXRlIHRo
YXQgYW4gYXNzZXJ0aW9uIGhhcwotLy8gc3VjY2VlZGVkLgotQXNzZXJ0aW9uUmVzdWx0IEFzc2Vy
dGlvblN1Y2Nlc3MoKTsKLQotLy8gUmV0dXJucyBhbiBBc3NlcnRpb25SZXN1bHQgb2JqZWN0IHRv
IGluZGljYXRlIHRoYXQgYW4gYXNzZXJ0aW9uIGhhcwotLy8gZmFpbGVkLgotQXNzZXJ0aW9uUmVz
dWx0IEFzc2VydGlvbkZhaWx1cmUoKTsKLQotfQotYGBgCi0KLVlvdSBjYW4gdGhlbiB1c2UgdGhl
IGA8PGAgb3BlcmF0b3IgdG8gc3RyZWFtIG1lc3NhZ2VzIHRvIHRoZSBgQXNzZXJ0aW9uUmVzdWx0
YAotb2JqZWN0LgotCi1UbyBwcm92aWRlIG1vcmUgcmVhZGFibGUgbWVzc2FnZXMgaW4gQm9vbGVh
biBhc3NlcnRpb25zIChlLmcuIGBFWFBFQ1RfVFJVRSgpYCksCi13cml0ZSBhIHByZWRpY2F0ZSBm
dW5jdGlvbiB0aGF0IHJldHVybnMgYEFzc2VydGlvblJlc3VsdGAgaW5zdGVhZCBvZiBgYm9vbGAu
IEZvcgotZXhhbXBsZSwgaWYgeW91IGRlZmluZSBgSXNFdmVuKClgIGFzOgotCi1gYGBjKysKLTo6
dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IElzRXZlbihpbnQgbikgewotICBpZiAoKG4gJSAyKSA9
PSAwKQotICAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25TdWNjZXNzKCk7Ci0gIGVsc2UK
LSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBv
ZGQiOwotfQotYGBgCi0KLWluc3RlYWQgb2Y6Ci0KLWBgYGMrKwotYm9vbCBJc0V2ZW4oaW50IG4p
IHsKLSAgcmV0dXJuIChuICUgMikgPT0gMDsKLX0KLWBgYAotCi10aGUgZmFpbGVkIGFzc2VydGlv
biBgRVhQRUNUX1RSVUUoSXNFdmVuKEZpYig0KSkpYCB3aWxsIHByaW50OgotCi1gYGBub25lCi1W
YWx1ZSBvZjogSXNFdmVuKEZpYig0KSkKLSAgQWN0dWFsOiBmYWxzZSAoMyBpcyBvZGQpCi1FeHBl
Y3RlZDogdHJ1ZQotYGBgCi0KLWluc3RlYWQgb2YgYSBtb3JlIG9wYXF1ZQotCi1gYGBub25lCi1W
YWx1ZSBvZjogSXNFdmVuKEZpYig0KSkKLSAgQWN0dWFsOiBmYWxzZQotRXhwZWN0ZWQ6IHRydWUK
LWBgYAotCi1JZiB5b3Ugd2FudCBpbmZvcm1hdGl2ZSBtZXNzYWdlcyBpbiBgRVhQRUNUX0ZBTFNF
YCBhbmQgYEFTU0VSVF9GQUxTRWAgYXMgd2VsbAotKG9uZSB0aGlyZCBvZiBCb29sZWFuIGFzc2Vy
dGlvbnMgaW4gdGhlIEdvb2dsZSBjb2RlIGJhc2UgYXJlIG5lZ2F0aXZlIG9uZXMpLCBhbmQKLWFy
ZSBmaW5lIHdpdGggbWFraW5nIHRoZSBwcmVkaWNhdGUgc2xvd2VyIGluIHRoZSBzdWNjZXNzIGNh
c2UsIHlvdSBjYW4gc3VwcGx5IGEKLXN1Y2Nlc3MgbWVzc2FnZToKLQotYGBgYysrCi06OnRlc3Rp
bmc6OkFzc2VydGlvblJlc3VsdCBJc0V2ZW4oaW50IG4pIHsKLSAgaWYgKChuICUgMikgPT0gMCkK
LSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpIDw8IG4gPDwgIiBpcyBl
dmVuIjsKLSAgZWxzZQotICAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkg
PDwgbiA8PCAiIGlzIG9kZCI7Ci19Ci1gYGAKLQotVGhlbiB0aGUgc3RhdGVtZW50IGBFWFBFQ1Rf
RkFMU0UoSXNFdmVuKEZpYig2KSkpYCB3aWxsIHByaW50Ci0KLWBgYG5vbmUKLSAgVmFsdWUgb2Y6
IElzRXZlbihGaWIoNikpCi0gICAgIEFjdHVhbDogdHJ1ZSAoOCBpcyBldmVuKQotICBFeHBlY3Rl
ZDogZmFsc2UKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgot
Ci0jIyMjIFVzaW5nIGEgUHJlZGljYXRlLUZvcm1hdHRlcgotCi1JZiB5b3UgZmluZCB0aGUgZGVm
YXVsdCBtZXNzYWdlIGdlbmVyYXRlZCBieSBgKEFTU0VSVHxFWFBFQ1QpX1BSRUQqYCBhbmQKLWAo
QVNTRVJUfEVYUEVDVClfKFRSVUV8RkFMU0UpYCB1bnNhdGlzZmFjdG9yeSwgb3Igc29tZSBhcmd1
bWVudHMgdG8geW91cgotcHJlZGljYXRlIGRvIG5vdCBzdXBwb3J0IHN0cmVhbWluZyB0byBgb3N0
cmVhbWAsIHlvdSBjYW4gaW5zdGVhZCB1c2UgdGhlCi1mb2xsb3dpbmcgKnByZWRpY2F0ZS1mb3Jt
YXR0ZXIgYXNzZXJ0aW9ucyogdG8gKmZ1bGx5KiBjdXN0b21pemUgaG93IHRoZSBtZXNzYWdlCi1p
cyBmb3JtYXR0ZWQ6Ci0KLUZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
fCAtLS0tLS0tLQotYEFTU0VSVF9QUkVEX0ZPUk1BVDEocHJlZF9mb3JtYXQxLCB2YWwxKTtgICAg
ICAgIHwgYEVYUEVDVF9QUkVEX0ZPUk1BVDEocHJlZF9mb3JtYXQxLCB2YWwxKTtgICAgICAgIHwg
YHByZWRfZm9ybWF0MSh2YWwxKWAgaXMgc3VjY2Vzc2Z1bAotYEFTU0VSVF9QUkVEX0ZPUk1BVDIo
cHJlZF9mb3JtYXQyLCB2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9QUkVEX0ZPUk1BVDIocHJlZF9m
b3JtYXQyLCB2YWwxLCB2YWwyKTtgIHwgYHByZWRfZm9ybWF0Mih2YWwxLCB2YWwyKWAgaXMgc3Vj
Y2Vzc2Z1bAotYC4uLmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgYC4uLmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLi4u
Ci0KLVRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQgdGhlIHByZXZpb3VzIGdyb3VwIG9m
IG1hY3JvcyBpcyB0aGF0IGluc3RlYWQgb2YKLWEgcHJlZGljYXRlLCBgKEFTU0VSVHxFWFBFQ1Qp
X1BSRURfRk9STUFUKmAgdGFrZSBhICpwcmVkaWNhdGUtZm9ybWF0dGVyKgotKGBwcmVkX2Zvcm1h
dG5gKSwgd2hpY2ggaXMgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHdpdGggdGhlIHNpZ25hdHVyZToK
LQotYGBgYysrCi06OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBQcmVkaWNhdGVGb3JtYXR0ZXJu
KGNvbnN0IGNoYXIqIGV4cHIxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBleHByMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLi4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4cHJuLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUMSB2YWwxLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUMiB2YWwyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVG4gdmFsbik7Ci1gYGAKLQotd2hlcmUgYHZhbDFgLCBgdmFs
MmAsIC4uLiwgYW5kIGB2YWxuYCBhcmUgdGhlIHZhbHVlcyBvZiB0aGUgcHJlZGljYXRlIGFyZ3Vt
ZW50cywKLWFuZCBgZXhwcjFgLCBgZXhwcjJgLCAuLi4sIGFuZCBgZXhwcm5gIGFyZSB0aGUgY29y
cmVzcG9uZGluZyBleHByZXNzaW9ucyBhcyB0aGV5Ci1hcHBlYXIgaW4gdGhlIHNvdXJjZSBjb2Rl
LiBUaGUgdHlwZXMgYFQxYCwgYFQyYCwgLi4uLCBhbmQgYFRuYCBjYW4gYmUgZWl0aGVyCi12YWx1
ZSB0eXBlcyBvciByZWZlcmVuY2UgdHlwZXMuIEZvciBleGFtcGxlLCBpZiBhbiBhcmd1bWVudCBo
YXMgdHlwZSBgRm9vYCwgeW91Ci1jYW4gZGVjbGFyZSBpdCBhcyBlaXRoZXIgYEZvb2Agb3IgYGNv
bnN0IEZvbyZgLCB3aGljaGV2ZXIgaXMgYXBwcm9wcmlhdGUuCi0KLUFzIGFuIGV4YW1wbGUsIGxl
dCdzIGltcHJvdmUgdGhlIGZhaWx1cmUgbWVzc2FnZSBpbiBgTXV0dWFsbHlQcmltZSgpYCwgd2hp
Y2ggd2FzCi11c2VkIHdpdGggYEVYUEVDVF9QUkVEMigpYDoKLQotYGBgYysrCi0vLyBSZXR1cm5z
IHRoZSBzbWFsbGVzdCBwcmltZSBjb21tb24gZGl2aXNvciBvZiBtIGFuZCBuLAotLy8gb3IgMSB3
aGVuIG0gYW5kIG4gYXJlIG11dHVhbGx5IHByaW1lLgotaW50IFNtYWxsZXN0UHJpbWVDb21tb25E
aXZpc29yKGludCBtLCBpbnQgbikgeyAuLi4gfQotCi0vLyBBIHByZWRpY2F0ZS1mb3JtYXR0ZXIg
Zm9yIGFzc2VydGluZyB0aGF0IHR3byBpbnRlZ2VycyBhcmUgbXV0dWFsbHkgcHJpbWUuCi06OnRl
c3Rpbmc6OkFzc2VydGlvblJlc3VsdCBBc3NlcnRNdXR1YWxseVByaW1lKGNvbnN0IGNoYXIqIG1f
ZXhwciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogbl9leHByLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IG4pIHsKLSAgaWYgKE11dHVhbGx5UHJpbWUobSwgbikpIHJldHVybiA6OnRlc3Rp
bmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsKLQotICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25G
YWlsdXJlKCkgPDwgbV9leHByIDw8ICIgYW5kICIgPDwgbl9leHByCi0gICAgICA8PCAiICgiIDw8
IG0gPDwgIiBhbmQgIiA8PCBuIDw8ICIpIGFyZSBub3QgbXV0dWFsbHkgcHJpbWUsICIKLSAgICAg
IDw8ICJhcyB0aGV5IGhhdmUgYSBjb21tb24gZGl2aXNvciAiIDw8IFNtYWxsZXN0UHJpbWVDb21t
b25EaXZpc29yKG0sIG4pOwotfQotYGBgCi0KLVdpdGggdGhpcyBwcmVkaWNhdGUtZm9ybWF0dGVy
LCB3ZSBjYW4gdXNlCi0KLWBgYGMrKwotICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEFzc2VydE11dHVh
bGx5UHJpbWUsIGIsIGMpOwotYGBgCi0KLXRvIGdlbmVyYXRlIHRoZSBtZXNzYWdlCi0KLWBgYG5v
bmUKLWIgYW5kIGMgKDQgYW5kIDEwKSBhcmUgbm90IG11dHVhbGx5IHByaW1lLCBhcyB0aGV5IGhh
dmUgYSBjb21tb24gZGl2aXNvciAyLgotYGBgCi0KLUFzIHlvdSBtYXkgaGF2ZSByZWFsaXplZCwg
bWFueSBvZiB0aGUgYnVpbHQtaW4gYXNzZXJ0aW9ucyB3ZSBpbnRyb2R1Y2VkIGVhcmxpZXIKLWFy
ZSBzcGVjaWFsIGNhc2VzIG9mIGAoRVhQRUNUfEFTU0VSVClfUFJFRF9GT1JNQVQqYC4gSW4gZmFj
dCwgbW9zdCBvZiB0aGVtIGFyZQotaW5kZWVkIGRlZmluZWQgdXNpbmcgYChFWFBFQ1R8QVNTRVJU
KV9QUkVEX0ZPUk1BVCpgLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgRmxvYXRpbmctUG9pbnQgQ29tcGFyaXNvbgotCi1Db21wYXJpbmcgZmxvYXRpbmct
cG9pbnQgbnVtYmVycyBpcyB0cmlja3kuIER1ZSB0byByb3VuZC1vZmYgZXJyb3JzLCBpdCBpcyB2
ZXJ5Ci11bmxpa2VseSB0aGF0IHR3byBmbG9hdGluZy1wb2ludHMgd2lsbCBtYXRjaCBleGFjdGx5
LiBUaGVyZWZvcmUsIGBBU1NFUlRfRVFgICdzCi1uYWl2ZSBjb21wYXJpc29uIHVzdWFsbHkgZG9l
c24ndCB3b3JrLiBBbmQgc2luY2UgZmxvYXRpbmctcG9pbnRzIGNhbiBoYXZlIGEgd2lkZQotdmFs
dWUgcmFuZ2UsIG5vIHNpbmdsZSBmaXhlZCBlcnJvciBib3VuZCB3b3Jrcy4gSXQncyBiZXR0ZXIg
dG8gY29tcGFyZSBieSBhCi1maXhlZCByZWxhdGl2ZSBlcnJvciBib3VuZCwgZXhjZXB0IGZvciB2
YWx1ZXMgY2xvc2UgdG8gMCBkdWUgdG8gdGhlIGxvc3Mgb2YKLXByZWNpc2lvbiB0aGVyZS4KLQot
SW4gZ2VuZXJhbCwgZm9yIGZsb2F0aW5nLXBvaW50IGNvbXBhcmlzb24gdG8gbWFrZSBzZW5zZSwg
dGhlIHVzZXIgbmVlZHMgdG8KLWNhcmVmdWxseSBjaG9vc2UgdGhlIGVycm9yIGJvdW5kLiBJZiB0
aGV5IGRvbid0IHdhbnQgb3IgY2FyZSB0bywgY29tcGFyaW5nIGluCi10ZXJtcyBvZiBVbml0cyBp
biB0aGUgTGFzdCBQbGFjZSAoVUxQcykgaXMgYSBnb29kIGRlZmF1bHQsIGFuZCBnb29nbGV0ZXN0
Ci1wcm92aWRlcyBhc3NlcnRpb25zIHRvIGRvIHRoaXMuIEZ1bGwgZGV0YWlscyBhYm91dCBVTFBz
IGFyZSBxdWl0ZSBsb25nOyBpZiB5b3UKLXdhbnQgdG8gbGVhcm4gbW9yZSwgc2VlCi1baGVyZV0o
aHR0cHM6Ly9yYW5kb21hc2NpaS53b3JkcHJlc3MuY29tLzIwMTIvMDIvMjUvY29tcGFyaW5nLWZs
b2F0aW5nLXBvaW50LW51bWJlcnMtMjAxMi1lZGl0aW9uLykuCi0KLSMjIyMgRmxvYXRpbmctUG9p
bnQgTWFjcm9zCi0KLXwgRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICB8IE5vbmZhdGFs
IGFzc2VydGlvbiAgICAgICAgICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSB8Ci18IGBBU1NFUlRfRkxPQVRfRVEodmFsMSwgdmFsMik7YCAgfCBgRVhQRUNUX0ZM
T0FUX0VRKHZhbDEsdmFsMik7YCAgfCB0aGUgdHdvIGBmbG9hdGAgdmFsdWVzIGFyZSBhbG1vc3Qg
ZXF1YWwgIHwKLXwgYEFTU0VSVF9ET1VCTEVfRVEodmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfRE9V
QkxFX0VRKHZhbDEsIHZhbDIpO2B8IHRoZSB0d28gYGRvdWJsZWAgdmFsdWVzIGFyZSBhbG1vc3Qg
ZXF1YWwgfAotCi1CeSAiYWxtb3N0IGVxdWFsIiB3ZSBtZWFuIHRoZSB2YWx1ZXMgYXJlIHdpdGhp
biA0IFVMUCdzIGZyb20gZWFjaCBvdGhlci4KLQotTk9URTogYENIRUNLX0RPVUJMRV9FUSgpYCBp
biBgYmFzZS9sb2dnaW5nLmhgIHVzZXMgYSBmaXhlZCBhYnNvbHV0ZSBlcnJvciBib3VuZCwKLXNv
IGl0cyByZXN1bHQgbWF5IGRpZmZlciBmcm9tIHRoYXQgb2YgdGhlIGdvb2dsZXRlc3QgbWFjcm9z
LiBUaGF0IG1hY3JvIGlzCi11bnNhZmUgYW5kIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFBsZWFzZSBk
b24ndCB1c2UgaXQgYW55IG1vcmUuCi0KLVRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9ucyBhbGxvdyB5
b3UgdG8gY2hvb3NlIHRoZSBhY2NlcHRhYmxlIGVycm9yIGJvdW5kOgotCi18IEZhdGFsIGFzc2Vy
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAg
ICAgICAgICAgIHwgVmVyaWZpZXMgICAgICAgICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NFUlRfTkVBUih2YWwx
LCB2YWwyLCBhYnNfZXJyb3IpO2AgfCBgRVhQRUNUX05FQVIodmFsMSwgdmFsMiwgYWJzX2Vycm9y
KTtgIHwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBgdmFsMWAgYW5kIGB2YWwyYCBkb2Vzbid0IGV4
Y2VlZCB0aGUgZ2l2ZW4gYWJzb2x1dGUgZXJyb3IgfAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51
eCwgV2luZG93cywgTWFjLgotCi0jIyMjIEZsb2F0aW5nLVBvaW50IFByZWRpY2F0ZS1Gb3JtYXQg
RnVuY3Rpb25zCi0KLVNvbWUgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9ucyBhcmUgdXNlZnVsLCBi
dXQgbm90IHRoYXQgb2Z0ZW4gdXNlZC4gSW4gb3JkZXIgdG8KLWF2b2lkIGFuIGV4cGxvc2lvbiBv
ZiBuZXcgbWFjcm9zLCB3ZSBwcm92aWRlIHRoZW0gYXMgcHJlZGljYXRlLWZvcm1hdCBmdW5jdGlv
bnMKLXRoYXQgY2FuIGJlIHVzZWQgaW4gcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3MgKGUuZy4g
YEVYUEVDVF9QUkVEX0ZPUk1BVDJgLAotZXRjKS4KLQotYGBgYysrCi1FWFBFQ1RfUFJFRF9GT1JN
QVQyKDo6dGVzdGluZzo6RmxvYXRMRSwgdmFsMSwgdmFsMik7Ci1FWFBFQ1RfUFJFRF9GT1JNQVQy
KDo6dGVzdGluZzo6RG91YmxlTEUsIHZhbDEsIHZhbDIpOwotYGBgCi0KLVZlcmlmaWVzIHRoYXQg
YHZhbDFgIGlzIGxlc3MgdGhhbiwgb3IgYWxtb3N0IGVxdWFsIHRvLCBgdmFsMmAuIFlvdSBjYW4g
cmVwbGFjZQotYEVYUEVDVF9QUkVEX0ZPUk1BVDJgIGluIHRoZSBhYm92ZSB0YWJsZSB3aXRoIGBB
U1NFUlRfUFJFRF9GT1JNQVQyYC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotIyMjIEFzc2VydGluZyBVc2luZyBnTW9jayBNYXRjaGVycwotCi1Hb29nbGUtZGV2
ZWxvcGVkIEMrKyBtb2NraW5nIGZyYW1ld29yayBbZ01vY2tdKC4uLy4uL2dvb2dsZW1vY2spIGNv
bWVzIHdpdGggYQotbGlicmFyeSBvZiBtYXRjaGVycyBmb3IgdmFsaWRhdGluZyBhcmd1bWVudHMg
cGFzc2VkIHRvIG1vY2sgb2JqZWN0cy4gQSBnTW9jawotKm1hdGNoZXIqIGlzIGJhc2ljYWxseSBh
IHByZWRpY2F0ZSB0aGF0IGtub3dzIGhvdyB0byBkZXNjcmliZSBpdHNlbGYuIEl0IGNhbiBiZQot
dXNlZCBpbiB0aGVzZSBhc3NlcnRpb24gbWFjcm9zOgotCi18IEZhdGFsIGFzc2VydGlvbiAgICAg
ICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICB8IFZlcmlmaWVzICAg
ICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NF
UlRfVEhBVCh2YWx1ZSwgbWF0Y2hlcik7YCB8IGBFWFBFQ1RfVEhBVCh2YWx1ZSwgbWF0Y2hlcik7
YCB8IHZhbHVlIG1hdGNoZXMgbWF0Y2hlciB8Ci0KLUZvciBleGFtcGxlLCBgU3RhcnRzV2l0aChw
cmVmaXgpYCBpcyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgc3RyaW5nIHN0YXJ0aW5nCi13aXRo
IGBwcmVmaXhgLCBhbmQgeW91IGNhbiB3cml0ZToKLQotYGBgYysrCi11c2luZyA6OnRlc3Rpbmc6
OlN0YXJ0c1dpdGg7Ci0uLi4KLSAgICAvLyBWZXJpZmllcyB0aGF0IEZvbygpIHJldHVybnMgYSBz
dHJpbmcgc3RhcnRpbmcgd2l0aCAiSGVsbG8iLgotICAgIEVYUEVDVF9USEFUKEZvbygpLCBTdGFy
dHNXaXRoKCJIZWxsbyIpKTsKLWBgYAotCi1SZWFkIHRoaXMgW3JlY2lwZV0oLi4vLi4vZ29vZ2xl
bW9jay9kb2NzL0Nvb2tCb29rLm1kI3VzaW5nLW1hdGNoZXJzLWluLWdvb2dsZS10ZXN0LWFzc2Vy
dGlvbnMpIGluCi10aGUgZ01vY2sgQ29va2Jvb2sgZm9yIG1vcmUgZGV0YWlscy4KLQotZ01vY2sg
aGFzIGEgcmljaCBzZXQgb2YgbWF0Y2hlcnMuIFlvdSBjYW4gZG8gbWFueSB0aGluZ3MgZ29vZ2xl
dGVzdCBjYW5ub3QgZG8KLWFsb25lIHdpdGggdGhlbS4gRm9yIGEgbGlzdCBvZiBtYXRjaGVycyBn
TW9jayBwcm92aWRlcywgcmVhZAotW3RoaXNdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9Db29rQm9v
ay5tZCN1c2luZy1tYXRjaGVycykuIEVzcGVjaWFsbHkgdXNlZnVsIGFtb25nIHRoZW0gYXJlCi1z
b21lIFtwcm90b2NvbCBidWZmZXIgbWF0Y2hlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv
bnVjbGV1cy9ibG9iL21hc3Rlci9udWNsZXVzL3Rlc3RpbmcvcHJvdG9jb2wtYnVmZmVyLW1hdGNo
ZXJzLmgpLiBJdCdzIGVhc3kgdG8gd3JpdGUKLXlvdXIgW293biBtYXRjaGVyc10oLi4vLi4vZ29v
Z2xlbW9jay9kb2NzL0Nvb2tCb29rLm1kI3dyaXRpbmctbmV3LW1hdGNoZXJzLXF1aWNrbHkpIHRv
by4KLQotRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGdNb2NrJ3MKLVtFcXVhbHNQcm90b10oaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9udWNsZXVzL2Jsb2IvbWFzdGVyL251Y2xldXMvdGVzdGlu
Zy9wcm90b2NvbC1idWZmZXItbWF0Y2hlcnMuaCkKLXRvIGNvbXBhcmUgcHJvdG9zIGluIHlvdXIg
dGVzdHM6Ci0KLWBgYGMrKwotI2luY2x1ZGUgInRlc3RpbmcvYmFzZS9wdWJsaWMvZ21vY2suaCIK
LXVzaW5nIDo6dGVzdGluZzo6RXF1YWxzUHJvdG87Ci0uLi4KLSAgICBFWFBFQ1RfVEhBVChhY3R1
YWxfcHJvdG8sIEVxdWFsc1Byb3RvKCJmb286IDEyMyBiYXI6ICd4eXonIikpOwotICAgIEVYUEVD
VF9USEFUKCphY3R1YWxfcHJvdG9fcHRyLCBFcXVhbHNQcm90byhleHBlY3RlZF9wcm90bykpOwot
YGBgCi0KLWdNb2NrIGlzIGJ1bmRsZWQgd2l0aCBnb29nbGV0ZXN0LCBzbyB5b3UgZG9uJ3QgbmVl
ZCB0byBhZGQgYW55IGJ1aWxkIGRlcGVuZGVuY3kKLWluIG9yZGVyIHRvIHRha2UgYWR2YW50YWdl
IG9mIHRoaXMuIEp1c3QgaW5jbHVkZSBgInRlc3RpbmcvYmFzZS9wdWJsaWMvZ21vY2suaCJgCi1h
bmQgeW91J3JlIHJlYWR5IHRvIGdvLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93
cywgYW5kIE1hYy4KLQotIyMjIE1vcmUgU3RyaW5nIEFzc2VydGlvbnMKLQotKFBsZWFzZSByZWFk
IHRoZSBbcHJldmlvdXNdKCNBc3NlcnRUaGF0KSBzZWN0aW9uIGZpcnN0IGlmIHlvdSBoYXZlbid0
LikKLQotWW91IGNhbiB1c2UgdGhlIGdNb2NrIFtzdHJpbmcgbWF0Y2hlcnNdKC4uLy4uL2dvb2ds
ZW1vY2svZG9jcy9DaGVhdFNoZWV0Lm1kI3N0cmluZy1tYXRjaGVycykKLXdpdGggYEVYUEVDVF9U
SEFUKClgIG9yIGBBU1NFUlRfVEhBVCgpYCB0byBkbyBtb3JlIHN0cmluZyBjb21wYXJpc29uIHRy
aWNrcwotKHN1Yi1zdHJpbmcsIHByZWZpeCwgc3VmZml4LCByZWd1bGFyIGV4cHJlc3Npb24sIGFu
ZCBldGMpLiBGb3IgZXhhbXBsZSwKLQotYGBgYysrCi11c2luZyA6OnRlc3Rpbmc6Okhhc1N1YnN0
cjsKLXVzaW5nIDo6dGVzdGluZzo6TWF0Y2hlc1JlZ2V4OwotLi4uCi0gIEFTU0VSVF9USEFUKGZv
b19zdHJpbmcsIEhhc1N1YnN0cigibmVlZGxlIikpOwotICBFWFBFQ1RfVEhBVChiYXJfc3RyaW5n
LCBNYXRjaGVzUmVnZXgoIlxcdypcXGQrIikpOwotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExp
bnV4LCBXaW5kb3dzLCBNYWMuCi0KLUlmIHRoZSBzdHJpbmcgY29udGFpbnMgYSB3ZWxsLWZvcm1l
ZCBIVE1MIG9yIFhNTCBkb2N1bWVudCwgeW91IGNhbiBjaGVjayB3aGV0aGVyCi1pdHMgRE9NIHRy
ZWUgbWF0Y2hlcyBhbiBbWFBhdGgKLWV4cHJlc3Npb25dKGh0dHA6Ly93d3cudzMub3JnL1RSL3hw
YXRoLyNjb250ZW50cyk6Ci0KLWBgYGMrKwotLy8gQ3VycmVudGx5IHN0aWxsIGluIC8vdGVtcGxh
dGUvcHJvdG90ZW1wbGF0ZS90ZXN0aW5nOnhwYXRoX21hdGNoZXIKLSNpbmNsdWRlICJ0ZW1wbGF0
ZS9wcm90b3RlbXBsYXRlL3Rlc3RpbmcveHBhdGhfbWF0Y2hlci5oIgotdXNpbmcgcHJvdG90ZW1w
bGF0ZTo6dGVzdGluZzo6TWF0Y2hlc1hQYXRoOwotRVhQRUNUX1RIQVQoaHRtbF9zdHJpbmcsIE1h
dGNoZXNYUGF0aCgiLy9hW3RleHQoKT0nY2xpY2sgaGVyZSddIikpOwotYGBgCi0KLSoqQXZhaWxh
YmlsaXR5Kio6IExpbnV4LgotCi0jIyMgV2luZG93cyBIUkVTVUxUIGFzc2VydGlvbnMKLQotVGhl
c2UgYXNzZXJ0aW9ucyB0ZXN0IGZvciBgSFJFU1VMVGAgc3VjY2VzcyBvciBmYWlsdXJlLgotCi1G
YXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlv
biAgICAgICAgICAgICAgICAgICAgIHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
fCAtLS0tLS0tLQotYEFTU0VSVF9IUkVTVUxUX1NVQ0NFRURFRChleHByZXNzaW9uKWAgfCBgRVhQ
RUNUX0hSRVNVTFRfU1VDQ0VFREVEKGV4cHJlc3Npb24pYCB8IGBleHByZXNzaW9uYCBpcyBhIHN1
Y2Nlc3MgYEhSRVNVTFRgCi1gQVNTRVJUX0hSRVNVTFRfRkFJTEVEKGV4cHJlc3Npb24pYCAgICB8
IGBFWFBFQ1RfSFJFU1VMVF9GQUlMRUQoZXhwcmVzc2lvbilgICAgIHwgYGV4cHJlc3Npb25gIGlz
IGEgZmFpbHVyZSBgSFJFU1VMVGAKLQotVGhlIGdlbmVyYXRlZCBvdXRwdXQgY29udGFpbnMgdGhl
IGh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoCi10aGUgYEhSRVNV
TFRgIGNvZGUgcmV0dXJuZWQgYnkgYGV4cHJlc3Npb25gLgotCi1Zb3UgbWlnaHQgdXNlIHRoZW0g
bGlrZSB0aGlzOgotCi1gYGBjKysKLUNDb21QdHI8SVNoZWxsRGlzcGF0Y2gyPiBzaGVsbDsKLUFT
U0VSVF9IUkVTVUxUX1NVQ0NFRURFRChzaGVsbC5Db0NyZWF0ZUluc3RhbmNlKEwiU2hlbGwuQXBw
bGljYXRpb24iKSk7Ci1DQ29tVmFyaWFudCBlbXB0eTsKLUFTU0VSVF9IUkVTVUxUX1NVQ0NFRURF
RChzaGVsbC0+U2hlbGxFeGVjdXRlKENDb21CU1RSKHVybCksIGVtcHR5LCBlbXB0eSwgZW1wdHks
IGVtcHR5KSk7Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogV2luZG93cy4KLQotIyMjIFR5cGUg
QXNzZXJ0aW9ucwotCi1Zb3UgY2FuIGNhbGwgdGhlIGZ1bmN0aW9uCi0KLWBgYGMrKwotOjp0ZXN0
aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE8VDEsIFQyPigpOwotYGBgCi0KLXRvIGFzc2VydCB0aGF0
IHR5cGVzIGBUMWAgYW5kIGBUMmAgYXJlIHRoZSBzYW1lLiBUaGUgZnVuY3Rpb24gZG9lcyBub3Ro
aW5nIGlmCi10aGUgYXNzZXJ0aW9uIGlzIHNhdGlzZmllZC4gSWYgdGhlIHR5cGVzIGFyZSBkaWZm
ZXJlbnQsIHRoZSBmdW5jdGlvbiBjYWxsIHdpbGwKLWZhaWwgdG8gY29tcGlsZSwgYW5kIHRoZSBj
b21waWxlciBlcnJvciBtZXNzYWdlIHdpbGwgbGlrZWx5IChkZXBlbmRpbmcgb24gdGhlCi1jb21w
aWxlcikgc2hvdyB5b3UgdGhlIGFjdHVhbCB2YWx1ZXMgb2YgYFQxYCBhbmQgYFQyYC4gVGhpcyBp
cyBtYWlubHkgdXNlZnVsCi1pbnNpZGUgdGVtcGxhdGUgY29kZS4KLQotKipDYXZlYXQqKjogV2hl
biB1c2VkIGluc2lkZSBhIG1lbWJlciBmdW5jdGlvbiBvZiBhIGNsYXNzIHRlbXBsYXRlIG9yIGEg
ZnVuY3Rpb24KLXRlbXBsYXRlLCBgU3RhdGljQXNzZXJ0VHlwZUVxPFQxLCBUMj4oKWAgaXMgZWZm
ZWN0aXZlIG9ubHkgaWYgdGhlIGZ1bmN0aW9uIGlzCi1pbnN0YW50aWF0ZWQuIEZvciBleGFtcGxl
LCBnaXZlbjoKLQotYGBgYysrCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgRm9vIHsKLSBw
dWJsaWM6Ci0gIHZvaWQgQmFyKCkgeyA6OnRlc3Rpbmc6OlN0YXRpY0Fzc2VydFR5cGVFcTxpbnQs
IFQ+KCk7IH0KLX07Ci1gYGAKLQotdGhlIGNvZGU6Ci0KLWBgYGMrKwotdm9pZCBUZXN0MSgpIHsg
Rm9vPGJvb2w+IGZvbzsgfQotYGBgCi0KLXdpbGwgbm90IGdlbmVyYXRlIGEgY29tcGlsZXIgZXJy
b3IsIGFzIGBGb288Ym9vbD46OkJhcigpYCBpcyBuZXZlciBhY3R1YWxseQotaW5zdGFudGlhdGVk
LiBJbnN0ZWFkLCB5b3UgbmVlZDoKLQotYGBgYysrCi12b2lkIFRlc3QyKCkgeyBGb288Ym9vbD4g
Zm9vOyBmb28uQmFyKCk7IH0KLWBgYAotCi10byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgotCi0q
KkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgQXNzZXJ0aW9uIFBs
YWNlbWVudAotCi1Zb3UgY2FuIHVzZSBhc3NlcnRpb25zIGluIGFueSBDKysgZnVuY3Rpb24uIElu
IHBhcnRpY3VsYXIsIGl0IGRvZXNuJ3QgaGF2ZSB0byBiZQotYSBtZXRob2Qgb2YgdGhlIHRlc3Qg
Zml4dHVyZSBjbGFzcy4gVGhlIG9uZSBjb25zdHJhaW50IGlzIHRoYXQgYXNzZXJ0aW9ucyB0aGF0
Ci1nZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUgKGBGQUlMKmAgYW5kIGBBU1NFUlRfKmApIGNhbiBv
bmx5IGJlIHVzZWQgaW4KLXZvaWQtcmV0dXJuaW5nIGZ1bmN0aW9ucy4gVGhpcyBpcyBhIGNvbnNl
cXVlbmNlIG9mIEdvb2dsZSdzIG5vdCB1c2luZwotZXhjZXB0aW9ucy4gQnkgcGxhY2luZyBpdCBp
biBhIG5vbi12b2lkIGZ1bmN0aW9uIHlvdSdsbCBnZXQgYSBjb25mdXNpbmcgY29tcGlsZQotZXJy
b3IgbGlrZSBgImVycm9yOiB2b2lkIHZhbHVlIG5vdCBpZ25vcmVkIGFzIGl0IG91Z2h0IHRvIGJl
ImAgb3IgYCJjYW5ub3QKLWluaXRpYWxpemUgcmV0dXJuIG9iamVjdCBvZiB0eXBlICdib29sJyB3
aXRoIGFuIHJ2YWx1ZSBvZiB0eXBlICd2b2lkJyJgIG9yCi1gImVycm9yOiBubyB2aWFibGUgY29u
dmVyc2lvbiBmcm9tICd2b2lkJyB0byAnc3RyaW5nJyJgLgotCi1JZiB5b3UgbmVlZCB0byB1c2Ug
ZmF0YWwgYXNzZXJ0aW9ucyBpbiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBub24tdm9pZCwgb25l
Ci1vcHRpb24gaXMgdG8gbWFrZSB0aGUgZnVuY3Rpb24gcmV0dXJuIHRoZSB2YWx1ZSBpbiBhbiBv
dXQgcGFyYW1ldGVyIGluc3RlYWQuIEZvcgotZXhhbXBsZSwgeW91IGNhbiByZXdyaXRlIGBUMiBG
b28oVDEgeClgIHRvIGB2b2lkIEZvbyhUMSB4LCBUMiogcmVzdWx0KWAuIFlvdQotbmVlZCB0byBt
YWtlIHN1cmUgdGhhdCBgKnJlc3VsdGAgY29udGFpbnMgc29tZSBzZW5zaWJsZSB2YWx1ZSBldmVu
IHdoZW4gdGhlCi1mdW5jdGlvbiByZXR1cm5zIHByZW1hdHVyZWx5LiBBcyB0aGUgZnVuY3Rpb24g
bm93IHJldHVybnMgYHZvaWRgLCB5b3UgY2FuIHVzZQotYW55IGFzc2VydGlvbiBpbnNpZGUgb2Yg
aXQuCi0KLUlmIGNoYW5naW5nIHRoZSBmdW5jdGlvbidzIHR5cGUgaXMgbm90IGFuIG9wdGlvbiwg
eW91IHNob3VsZCBqdXN0IHVzZSBhc3NlcnRpb25zCi10aGF0IGdlbmVyYXRlIG5vbi1mYXRhbCBm
YWlsdXJlcywgc3VjaCBhcyBgQUREX0ZBSUxVUkUqYCBhbmQgYEVYUEVDVF8qYC4KLQotTk9URTog
Q29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBhcmUgbm90IGNvbnNpZGVyZWQgdm9pZC1yZXR1
cm5pbmcgZnVuY3Rpb25zLAotYWNjb3JkaW5nIHRvIHRoZSBDKysgbGFuZ3VhZ2Ugc3BlY2lmaWNh
dGlvbiwgYW5kIHNvIHlvdSBtYXkgbm90IHVzZSBmYXRhbAotYXNzZXJ0aW9ucyBpbiB0aGVtLiBZ
b3UnbGwgZ2V0IGEgY29tcGlsYXRpb24gZXJyb3IgaWYgeW91IHRyeS4gQSBzaW1wbGUKLXdvcmth
cm91bmQgaXMgdG8gdHJhbnNmZXIgdGhlIGVudGlyZSBib2R5IG9mIHRoZSBjb25zdHJ1Y3RvciBv
ciBkZXN0cnVjdG9yIHRvIGEKLXByaXZhdGUgdm9pZC1yZXR1cm5pbmcgbWV0aG9kLiBIb3dldmVy
LCB5b3Ugc2hvdWxkIGJlIGF3YXJlIHRoYXQgYSBmYXRhbAotYXNzZXJ0aW9uIGZhaWx1cmUgaW4g
YSBjb25zdHJ1Y3RvciBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlIGN1cnJlbnQgdGVzdCwgYXMgeW91
cgotaW50dWl0aW9uIG1pZ2h0IHN1Z2dlc3Q7IGl0IG1lcmVseSByZXR1cm5zIGZyb20gdGhlIGNv
bnN0cnVjdG9yIGVhcmx5LCBwb3NzaWJseQotbGVhdmluZyB5b3VyIG9iamVjdCBpbiBhIHBhcnRp
YWxseS1jb25zdHJ1Y3RlZCBzdGF0ZS4gTGlrZXdpc2UsIGEgZmF0YWwKLWFzc2VydGlvbiBmYWls
dXJlIGluIGEgZGVzdHJ1Y3RvciBtYXkgbGVhdmUgeW91ciBvYmplY3QgaW4gYQotcGFydGlhbGx5
LWRlc3RydWN0ZWQgc3RhdGUuIFVzZSBhc3NlcnRpb25zIGNhcmVmdWxseSBpbiB0aGVzZSBzaXR1
YXRpb25zIQotCi0jIyBUZWFjaGluZyBnb29nbGV0ZXN0IEhvdyB0byBQcmludCBZb3VyIFZhbHVl
cwotCi1XaGVuIGEgdGVzdCBhc3NlcnRpb24gc3VjaCBhcyBgRVhQRUNUX0VRYCBmYWlscywgZ29v
Z2xldGVzdCBwcmludHMgdGhlIGFyZ3VtZW50Ci12YWx1ZXMgdG8gaGVscCB5b3UgZGVidWcuIEl0
IGRvZXMgdGhpcyB1c2luZyBhIHVzZXItZXh0ZW5zaWJsZSB2YWx1ZSBwcmludGVyLgotCi1UaGlz
IHByaW50ZXIga25vd3MgaG93IHRvIHByaW50IGJ1aWx0LWluIEMrKyB0eXBlcywgbmF0aXZlIGFy
cmF5cywgU1RMCi1jb250YWluZXJzLCBhbmQgYW55IHR5cGUgdGhhdCBzdXBwb3J0cyB0aGUgYDw8
YCBvcGVyYXRvci4gRm9yIG90aGVyIHR5cGVzLCBpdAotcHJpbnRzIHRoZSByYXcgYnl0ZXMgaW4g
dGhlIHZhbHVlIGFuZCBob3BlcyB0aGF0IHlvdSB0aGUgdXNlciBjYW4gZmlndXJlIGl0IG91dC4K
LQotQXMgbWVudGlvbmVkIGVhcmxpZXIsIHRoZSBwcmludGVyIGlzICpleHRlbnNpYmxlKi4gVGhh
dCBtZWFucyB5b3UgY2FuIHRlYWNoIGl0Ci10byBkbyBhIGJldHRlciBqb2IgYXQgcHJpbnRpbmcg
eW91ciBwYXJ0aWN1bGFyIHR5cGUgdGhhbiB0byBkdW1wIHRoZSBieXRlcy4gVG8KLWRvIHRoYXQs
IGRlZmluZSBgPDxgIGZvciB5b3VyIHR5cGU6Ci0KLWBgYGMrKwotLy8gU3RyZWFtcyBhcmUgYWxs
b3dlZCBvbmx5IGZvciBsb2dnaW5nLiAgRG9uJ3QgaW5jbHVkZSB0aGlzIGZvcgotLy8gYW55IG90
aGVyIHB1cnBvc2UuCi0jaW5jbHVkZSA8b3N0cmVhbT4KLQotbmFtZXNwYWNlIGZvbyB7Ci0KLWNs
YXNzIEJhciB7ICAvLyBXZSB3YW50IGdvb2dsZXRlc3QgdG8gYmUgYWJsZSB0byBwcmludCBpbnN0
YW5jZXMgb2YgdGhpcy4KLS4uLgotICAvLyBDcmVhdGUgYSBmcmVlIGlubGluZSBmcmllbmQgZnVu
Y3Rpb24uCi0gIGZyaWVuZCBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBv
cywgY29uc3QgQmFyJiBiYXIpIHsKLSAgICByZXR1cm4gb3MgPDwgYmFyLkRlYnVnU3RyaW5nKCk7
ICAvLyB3aGF0ZXZlciBuZWVkZWQgdG8gcHJpbnQgYmFyIHRvIG9zCi0gIH0KLX07Ci0KLS8vIElm
IHlvdSBjYW4ndCBkZWNsYXJlIHRoZSBmdW5jdGlvbiBpbiB0aGUgY2xhc3MgaXQncyBpbXBvcnRh
bnQgdGhhdCB0aGUKLS8vIDw8IG9wZXJhdG9yIGlzIGRlZmluZWQgaW4gdGhlIFNBTUUgbmFtZXNw
YWNlIHRoYXQgZGVmaW5lcyBCYXIuICBDKysncyBsb29rLXVwCi0vLyBydWxlcyByZWx5IG9uIHRo
YXQuCi1zdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgQmFy
JiBiYXIpIHsKLSAgcmV0dXJuIG9zIDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIg
bmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotfQotCi19ICAvLyBuYW1lc3BhY2UgZm9vCi1gYGAK
LQotU29tZXRpbWVzLCB0aGlzIG1pZ2h0IG5vdCBiZSBhbiBvcHRpb246IHlvdXIgdGVhbSBtYXkg
Y29uc2lkZXIgaXQgYmFkIHN0eWxlIHRvCi1oYXZlIGEgYDw8YCBvcGVyYXRvciBmb3IgYEJhcmAs
IG9yIGBCYXJgIG1heSBhbHJlYWR5IGhhdmUgYSBgPDxgIG9wZXJhdG9yIHRoYXQKLWRvZXNuJ3Qg
ZG8gd2hhdCB5b3Ugd2FudCAoYW5kIHlvdSBjYW5ub3QgY2hhbmdlIGl0KS4gSWYgc28sIHlvdSBj
YW4gaW5zdGVhZAotZGVmaW5lIGEgYFByaW50VG8oKWAgZnVuY3Rpb24gbGlrZSB0aGlzOgotCi1g
YGBjKysKLS8vIFN0cmVhbXMgYXJlIGFsbG93ZWQgb25seSBmb3IgbG9nZ2luZy4gIERvbid0IGlu
Y2x1ZGUgdGhpcyBmb3IKLS8vIGFueSBvdGhlciBwdXJwb3NlLgotI2luY2x1ZGUgPG9zdHJlYW0+
Ci0KLW5hbWVzcGFjZSBmb28gewotCi1jbGFzcyBCYXIgewotICAuLi4KLSAgZnJpZW5kIHZvaWQg
UHJpbnRUbyhjb25zdCBCYXImIGJhciwgc3RkOjpvc3RyZWFtKiBvcykgewotICAgICpvcyA8PCBi
YXIuRGVidWdTdHJpbmcoKTsgIC8vIHdoYXRldmVyIG5lZWRlZCB0byBwcmludCBiYXIgdG8gb3MK
LSAgfQotfTsKLQotLy8gSWYgeW91IGNhbid0IGRlY2xhcmUgdGhlIGZ1bmN0aW9uIGluIHRoZSBj
bGFzcyBpdCdzIGltcG9ydGFudCB0aGF0IFByaW50VG8oKQotLy8gaXMgZGVmaW5lZCBpbiB0aGUg
U0FNRSBuYW1lc3BhY2UgdGhhdCBkZWZpbmVzIEJhci4gIEMrKydzIGxvb2stdXAgcnVsZXMgcmVs
eQotLy8gb24gdGhhdC4KLXZvaWQgUHJpbnRUbyhjb25zdCBCYXImIGJhciwgc3RkOjpvc3RyZWFt
KiBvcykgewotICAqb3MgPDwgYmFyLkRlYnVnU3RyaW5nKCk7ICAvLyB3aGF0ZXZlciBuZWVkZWQg
dG8gcHJpbnQgYmFyIHRvIG9zCi19Ci0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLWBgYAotCi1JZiB5
b3UgaGF2ZSBkZWZpbmVkIGJvdGggYDw8YCBhbmQgYFByaW50VG8oKWAsIHRoZSBsYXR0ZXIgd2ls
bCBiZSB1c2VkIHdoZW4KLWdvb2dsZXRlc3QgaXMgY29uY2VybmVkLiBUaGlzIGFsbG93cyB5b3Ug
dG8gY3VzdG9taXplIGhvdyB0aGUgdmFsdWUgYXBwZWFycyBpbgotZ29vZ2xldGVzdCdzIG91dHB1
dCB3aXRob3V0IGFmZmVjdGluZyBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBiZWhhdmlvciBvZiBp
dHMKLWA8PGAgb3BlcmF0b3IuCi0KLUlmIHlvdSB3YW50IHRvIHByaW50IGEgdmFsdWUgYHhgIHVz
aW5nIGdvb2dsZXRlc3QncyB2YWx1ZSBwcmludGVyIHlvdXJzZWxmLCBqdXN0Ci1jYWxsIGA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoeClgLCB3aGljaCByZXR1cm5zIGFuIGBzdGQ6OnN0cmluZ2A6
Ci0KLWBgYGMrKwotdmVjdG9yPHBhaXI8QmFyLCBpbnQ+ID4gYmFyX2ludHMgPSBHZXRCYXJJbnRW
ZWN0b3IoKTsKLQotRVhQRUNUX1RSVUUoSXNDb3JyZWN0QmFySW50VmVjdG9yKGJhcl9pbnRzKSkK
LSAgICA8PCAiYmFyX2ludHMgPSAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhiYXJfaW50
cyk7Ci1gYGAKLQotIyMgRGVhdGggVGVzdHMKLQotSW4gbWFueSBhcHBsaWNhdGlvbnMsIHRoZXJl
IGFyZSBhc3NlcnRpb25zIHRoYXQgY2FuIGNhdXNlIGFwcGxpY2F0aW9uIGZhaWx1cmUgaWYKLWEg
Y29uZGl0aW9uIGlzIG5vdCBtZXQuIFRoZXNlIHNhbml0eSBjaGVja3MsIHdoaWNoIGVuc3VyZSB0
aGF0IHRoZSBwcm9ncmFtIGlzIGluCi1hIGtub3duIGdvb2Qgc3RhdGUsIGFyZSB0aGVyZSB0byBm
YWlsIGF0IHRoZSBlYXJsaWVzdCBwb3NzaWJsZSB0aW1lIGFmdGVyIHNvbWUKLXByb2dyYW0gc3Rh
dGUgaXMgY29ycnVwdGVkLiBJZiB0aGUgYXNzZXJ0aW9uIGNoZWNrcyB0aGUgd3JvbmcgY29uZGl0
aW9uLCB0aGVuCi10aGUgcHJvZ3JhbSBtYXkgcHJvY2VlZCBpbiBhbiBlcnJvbmVvdXMgc3RhdGUs
IHdoaWNoIGNvdWxkIGxlYWQgdG8gbWVtb3J5Ci1jb3JydXB0aW9uLCBzZWN1cml0eSBob2xlcywg
b3Igd29yc2UuIEhlbmNlIGl0IGlzIHZpdGFsbHkgaW1wb3J0YW50IHRvIHRlc3QgdGhhdAotc3Vj
aCBhc3NlcnRpb24gc3RhdGVtZW50cyB3b3JrIGFzIGV4cGVjdGVkLgotCi1TaW5jZSB0aGVzZSBw
cmVjb25kaXRpb24gY2hlY2tzIGNhdXNlIHRoZSBwcm9jZXNzZXMgdG8gZGllLCB3ZSBjYWxsIHN1
Y2ggdGVzdHMKLV9kZWF0aCB0ZXN0c18uIE1vcmUgZ2VuZXJhbGx5LCBhbnkgdGVzdCB0aGF0IGNo
ZWNrcyB0aGF0IGEgcHJvZ3JhbSB0ZXJtaW5hdGVzCi0oZXhjZXB0IGJ5IHRocm93aW5nIGFuIGV4
Y2VwdGlvbikgaW4gYW4gZXhwZWN0ZWQgZmFzaGlvbiBpcyBhbHNvIGEgZGVhdGggdGVzdC4KLQot
Ci1Ob3RlIHRoYXQgaWYgYSBwaWVjZSBvZiBjb2RlIHRocm93cyBhbiBleGNlcHRpb24sIHdlIGRv
bid0IGNvbnNpZGVyIGl0ICJkZWF0aCIKLWZvciB0aGUgcHVycG9zZSBvZiBkZWF0aCB0ZXN0cywg
YXMgdGhlIGNhbGxlciBvZiB0aGUgY29kZSBjb3VsZCBjYXRjaCB0aGUKLWV4Y2VwdGlvbiBhbmQg
YXZvaWQgdGhlIGNyYXNoLiBJZiB5b3Ugd2FudCB0byB2ZXJpZnkgZXhjZXB0aW9ucyB0aHJvd24g
YnkgeW91cgotY29kZSwgc2VlIFtFeGNlcHRpb24gQXNzZXJ0aW9uc10oI2V4Y2VwdGlvbi1hc3Nl
cnRpb25zKS4KLQotSWYgeW91IHdhbnQgdG8gdGVzdCBgRVhQRUNUXyooKS9BU1NFUlRfKigpYCBm
YWlsdXJlcyBpbiB5b3VyIHRlc3QgY29kZSwgc2VlCi1DYXRjaGluZyBGYWlsdXJlcwotCi0jIyMg
SG93IHRvIFdyaXRlIGEgRGVhdGggVGVzdAotCi1nb29nbGV0ZXN0IGhhcyB0aGUgZm9sbG93aW5n
IG1hY3JvcyB0byBzdXBwb3J0IGRlYXRoIHRlc3RzOgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSB8IC0tLS0tLS0tCi1gQVNTRVJUX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpO2Ag
ICAgICAgICAgICAgIHwgYEVYUEVDVF9ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4KTtgICAgICAgICAg
ICAgICB8IGBzdGF0ZW1lbnRgIGNyYXNoZXMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3IKLWBBU1NFUlRf
REVBVEhfSUZfU1VQUE9SVEVEKHN0YXRlbWVudCwgcmVnZXgpO2AgfCBgRVhQRUNUX0RFQVRIX0lG
X1NVUFBPUlRFRChzdGF0ZW1lbnQsIHJlZ2V4KTtgIHwgaWYgZGVhdGggdGVzdHMgYXJlIHN1cHBv
cnRlZCwgdmVyaWZpZXMgdGhhdCBgc3RhdGVtZW50YCBjcmFzaGVzIHdpdGggdGhlIGdpdmVuIGVy
cm9yOyBvdGhlcndpc2UgdmVyaWZpZXMgbm90aGluZwotYEFTU0VSVF9FWElUKHN0YXRlbWVudCwg
cHJlZGljYXRlLCByZWdleCk7YCAgICB8IGBFWFBFQ1RfRVhJVChzdGF0ZW1lbnQsIHByZWRpY2F0
ZSwgcmVnZXgpO2AgICAgfCBgc3RhdGVtZW50YCBleGl0cyB3aXRoIHRoZSBnaXZlbiBlcnJvciwg
YW5kIGl0cyBleGl0IGNvZGUgbWF0Y2hlcyBgcHJlZGljYXRlYAotCi13aGVyZSBgc3RhdGVtZW50
YCBpcyBhIHN0YXRlbWVudCB0aGF0IGlzIGV4cGVjdGVkIHRvIGNhdXNlIHRoZSBwcm9jZXNzIHRv
IGRpZSwKLWBwcmVkaWNhdGVgIGlzIGEgZnVuY3Rpb24gb3IgZnVuY3Rpb24gb2JqZWN0IHRoYXQg
ZXZhbHVhdGVzIGFuIGludGVnZXIgZXhpdAotc3RhdHVzLCBhbmQgYHJlZ2V4YCBpcyBhIChQZXJs
KSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCB0aGUgc3RkZXJyIG91dHB1dCBvZgotYHN0YXRlbWVu
dGAgaXMgZXhwZWN0ZWQgdG8gbWF0Y2guIE5vdGUgdGhhdCBgc3RhdGVtZW50YCBjYW4gYmUgKmFu
eSB2YWxpZAotc3RhdGVtZW50KiAoaW5jbHVkaW5nICpjb21wb3VuZCBzdGF0ZW1lbnQqKSBhbmQg
ZG9lc24ndCBoYXZlIHRvIGJlIGFuCi1leHByZXNzaW9uLgotCi0KLUFzIHVzdWFsLCB0aGUgYEFT
U0VSVGAgdmFyaWFudHMgYWJvcnQgdGhlIGN1cnJlbnQgdGVzdCBmdW5jdGlvbiwgd2hpbGUgdGhl
Ci1gRVhQRUNUYCB2YXJpYW50cyBkbyBub3QuCi0KLT4gTk9URTogV2UgdXNlIHRoZSB3b3JkICJj
cmFzaCIgaGVyZSB0byBtZWFuIHRoYXQgdGhlIHByb2Nlc3MgdGVybWluYXRlcyB3aXRoIGEKLT4g
Km5vbi16ZXJvKiBleGl0IHN0YXR1cyBjb2RlLiBUaGVyZSBhcmUgdHdvIHBvc3NpYmlsaXRpZXM6
IGVpdGhlciB0aGUgcHJvY2VzcwotPiBoYXMgY2FsbGVkIGBleGl0KClgIG9yIGBfZXhpdCgpYCB3
aXRoIGEgbm9uLXplcm8gdmFsdWUsIG9yIGl0IG1heSBiZSBraWxsZWQgYnkKLT4gYSBzaWduYWwu
Ci0+Ci0+IFRoaXMgbWVhbnMgdGhhdCBpZiBgKnN0YXRlbWVudCpgIHRlcm1pbmF0ZXMgdGhlIHBy
b2Nlc3Mgd2l0aCBhIDAgZXhpdCBjb2RlLCBpdAotPiBpcyAqbm90KiBjb25zaWRlcmVkIGEgY3Jh
c2ggYnkgYEVYUEVDVF9ERUFUSGAuIFVzZSBgRVhQRUNUX0VYSVRgIGluc3RlYWQgaWYKLT4gdGhp
cyBpcyB0aGUgY2FzZSwgb3IgaWYgeW91IHdhbnQgdG8gcmVzdHJpY3QgdGhlIGV4aXQgY29kZSBt
b3JlIHByZWNpc2VseS4KLQotQSBwcmVkaWNhdGUgaGVyZSBtdXN0IGFjY2VwdCBhbiBgaW50YCBh
bmQgcmV0dXJuIGEgYGJvb2xgLiBUaGUgZGVhdGggdGVzdAotc3VjY2VlZHMgb25seSBpZiB0aGUg
cHJlZGljYXRlIHJldHVybnMgYHRydWVgLiBnb29nbGV0ZXN0IGRlZmluZXMgYSBmZXcKLXByZWRp
Y2F0ZXMgdGhhdCBoYW5kbGUgdGhlIG1vc3QgY29tbW9uIGNhc2VzOgotCi1gYGBjKysKLTo6dGVz
dGluZzo6RXhpdGVkV2l0aENvZGUoZXhpdF9jb2RlKQotYGBgCi0KLVRoaXMgZXhwcmVzc2lvbiBp
cyBgdHJ1ZWAgaWYgdGhlIHByb2dyYW0gZXhpdGVkIG5vcm1hbGx5IHdpdGggdGhlIGdpdmVuIGV4
aXQKLWNvZGUuCi0KLWBgYGMrKwotOjp0ZXN0aW5nOjpLaWxsZWRCeVNpZ25hbChzaWduYWxfbnVt
YmVyKSAgLy8gTm90IGF2YWlsYWJsZSBvbiBXaW5kb3dzLgotYGBgCi0KLVRoaXMgZXhwcmVzc2lv
biBpcyBgdHJ1ZWAgaWYgdGhlIHByb2dyYW0gd2FzIGtpbGxlZCBieSB0aGUgZ2l2ZW4gc2lnbmFs
LgotCi1UaGUgYCpfREVBVEhgIG1hY3JvcyBhcmUgY29udmVuaWVudCB3cmFwcGVycyBmb3IgYCpf
RVhJVGAgdGhhdCB1c2UgYSBwcmVkaWNhdGUKLXRoYXQgdmVyaWZpZXMgdGhlIHByb2Nlc3MnIGV4
aXQgY29kZSBpcyBub24temVyby4KLQotTm90ZSB0aGF0IGEgZGVhdGggdGVzdCBvbmx5IGNhcmVz
IGFib3V0IHRocmVlIHRoaW5nczoKLQotMS4gIGRvZXMgYHN0YXRlbWVudGAgYWJvcnQgb3IgZXhp
dCB0aGUgcHJvY2Vzcz8KLTIuICAoaW4gdGhlIGNhc2Ugb2YgYEFTU0VSVF9FWElUYCBhbmQgYEVY
UEVDVF9FWElUYCkgZG9lcyB0aGUgZXhpdCBzdGF0dXMKLSAgICBzYXRpc2Z5IGBwcmVkaWNhdGVg
PyBPciAoaW4gdGhlIGNhc2Ugb2YgYEFTU0VSVF9ERUFUSGAgYW5kIGBFWFBFQ1RfREVBVEhgKQot
ICAgIGlzIHRoZSBleGl0IHN0YXR1cyBub24temVybz8gQW5kCi0zLiAgZG9lcyB0aGUgc3RkZXJy
IG91dHB1dCBtYXRjaCBgcmVnZXhgPwotCi1JbiBwYXJ0aWN1bGFyLCBpZiBgc3RhdGVtZW50YCBn
ZW5lcmF0ZXMgYW4gYEFTU0VSVF8qYCBvciBgRVhQRUNUXypgIGZhaWx1cmUsIGl0Ci13aWxsICoq
bm90KiogY2F1c2UgdGhlIGRlYXRoIHRlc3QgdG8gZmFpbCwgYXMgZ29vZ2xldGVzdCBhc3NlcnRp
b25zIGRvbid0IGFib3J0Ci10aGUgcHJvY2Vzcy4KLQotVG8gd3JpdGUgYSBkZWF0aCB0ZXN0LCBz
aW1wbHkgdXNlIG9uZSBvZiB0aGUgYWJvdmUgbWFjcm9zIGluc2lkZSB5b3VyIHRlc3QKLWZ1bmN0
aW9uLiBGb3IgZXhhbXBsZSwKLQotYGBgYysrCi1URVNUKE15RGVhdGhUZXN0LCBGb28pIHsKLSAg
Ly8gVGhpcyBkZWF0aCB0ZXN0IHVzZXMgYSBjb21wb3VuZCBzdGF0ZW1lbnQuCi0gIEFTU0VSVF9E
RUFUSCh7Ci0gICAgaW50IG4gPSA1OwotICAgIEZvbygmbik7Ci0gIH0sICJFcnJvciBvbiBsaW5l
IC4qIG9mIEZvbygpIik7Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIE5vcm1hbEV4aXQpIHsKLSAg
RVhQRUNUX0VYSVQoTm9ybWFsRXhpdCgpLCA6OnRlc3Rpbmc6OkV4aXRlZFdpdGhDb2RlKDApLCAi
U3VjY2VzcyIpOwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBLaWxsTXlzZWxmKSB7Ci0gIEVYUEVD
VF9FWElUKEtpbGxNeXNlbGYoKSwgOjp0ZXN0aW5nOjpLaWxsZWRCeVNpZ25hbChTSUdLSUxMKSwK
LSAgICAgICAgICAgICAgIlNlbmRpbmcgbXlzZWxmIHVuYmxvY2thYmxlIHNpZ25hbCIpOwotfQot
YGBgCi0KLXZlcmlmaWVzIHRoYXQ6Ci0KLSogICBjYWxsaW5nIGBGb28oNSlgIGNhdXNlcyB0aGUg
cHJvY2VzcyB0byBkaWUgd2l0aCB0aGUgZ2l2ZW4gZXJyb3IgbWVzc2FnZSwKLSogICBjYWxsaW5n
IGBOb3JtYWxFeGl0KClgIGNhdXNlcyB0aGUgcHJvY2VzcyB0byBwcmludCBgIlN1Y2Nlc3MiYCB0
byBzdGRlcnIgYW5kCi0gICAgZXhpdCB3aXRoIGV4aXQgY29kZSAwLCBhbmQKLSogICBjYWxsaW5n
IGBLaWxsTXlzZWxmKClgIGtpbGxzIHRoZSBwcm9jZXNzIHdpdGggc2lnbmFsIGBTSUdLSUxMYC4K
LQotVGhlIHRlc3QgZnVuY3Rpb24gYm9keSBtYXkgY29udGFpbiBvdGhlciBhc3NlcnRpb25zIGFu
ZCBzdGF0ZW1lbnRzIGFzIHdlbGwsIGlmCi1uZWNlc3NhcnkuCi0KLSMjIyBEZWF0aCBUZXN0IE5h
bWluZwotCi1JTVBPUlRBTlQ6IFdlIHN0cm9uZ2x5IHJlY29tbWVuZCB5b3UgdG8gZm9sbG93IHRo
ZSBjb252ZW50aW9uIG9mIG5hbWluZyB5b3VyCi0qKnRlc3QgY2FzZSoqIChub3QgdGVzdCkgYCpE
ZWF0aFRlc3RgIHdoZW4gaXQgY29udGFpbnMgYSBkZWF0aCB0ZXN0LCBhcwotZGVtb25zdHJhdGVk
IGluIHRoZSBhYm92ZSBleGFtcGxlLiBUaGUgW0RlYXRoIFRlc3RzIEFuZAotVGhyZWFkc10oI2Rl
YXRoLXRlc3RzLWFuZC10aHJlYWRzKSBzZWN0aW9uIGJlbG93IGV4cGxhaW5zIHdoeS4KLQotSWYg
YSB0ZXN0IGZpeHR1cmUgY2xhc3MgaXMgc2hhcmVkIGJ5IG5vcm1hbCB0ZXN0cyBhbmQgZGVhdGgg
dGVzdHMsIHlvdSBjYW4gdXNlCi1gdXNpbmdgIG9yIGB0eXBlZGVmYCB0byBpbnRyb2R1Y2UgYW4g
YWxpYXMgZm9yIHRoZSBmaXh0dXJlIGNsYXNzIGFuZCBhdm9pZAotZHVwbGljYXRpbmcgaXRzIGNv
ZGU6Ci0KLWBgYGMrKwotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeyAu
Li4gfTsKLQotdXNpbmcgRm9vRGVhdGhUZXN0ID0gRm9vVGVzdDsKLQotVEVTVF9GKEZvb1Rlc3Qs
IERvZXNUaGlzKSB7Ci0gIC8vIG5vcm1hbCB0ZXN0Ci19Ci0KLVRFU1RfRihGb29EZWF0aFRlc3Qs
IERvZXNUaGF0KSB7Ci0gIC8vIGRlYXRoIHRlc3QKLX0KLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoq
OiBMaW51eCwgV2luZG93cyAocmVxdWlyZXMgTVNWQyA4LjAgb3IgYWJvdmUpLCBDeWd3aW4sIGFu
ZCBNYWMKLQotIyMjIFJlZ3VsYXIgRXhwcmVzc2lvbiBTeW50YXgKLQotCi1PbiBQT1NJWCBzeXN0
ZW1zIChlLmcuIExpbnV4LCBDeWd3aW4sIGFuZCBNYWMpLCBnb29nbGV0ZXN0IHVzZXMgdGhlCi1b
UE9TSVggZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uXShodHRwOi8vd3d3Lm9wZW5ncm91cC5v
cmcvb25saW5lcHVicy8wMDk2OTUzOTkvYmFzZWRlZnMveGJkX2NoYXAwOS5odG1sI3RhZ18wOV8w
NCkKLXN5bnRheC4gVG8gbGVhcm4gYWJvdXQgdGhpcyBzeW50YXgsIHlvdSBtYXkgd2FudCB0byBy
ZWFkIHRoaXMKLVtXaWtpcGVkaWEgZW50cnldKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
UmVndWxhcl9leHByZXNzaW9uI1BPU0lYX0V4dGVuZGVkX1JlZ3VsYXJfRXhwcmVzc2lvbnMpLgot
Ci1PbiBXaW5kb3dzLCBnb29nbGV0ZXN0IHVzZXMgaXRzIG93biBzaW1wbGUgcmVndWxhciBleHBy
ZXNzaW9uIGltcGxlbWVudGF0aW9uLiBJdAotbGFja3MgbWFueSBmZWF0dXJlcy4gRm9yIGV4YW1w
bGUsIHdlIGRvbid0IHN1cHBvcnQgdW5pb24gKGAieHx5ImApLCBncm91cGluZwotKGAiKHh5KSJg
KSwgYnJhY2tldHMgKGAiW3h5XSJgKSwgYW5kIHJlcGV0aXRpb24gY291bnQgKGAieHs1LDd9ImAp
LCBhbW9uZwotb3RoZXJzLiBCZWxvdyBpcyB3aGF0IHdlIGRvIHN1cHBvcnQgKGBBYCBkZW5vdGVz
IGEgbGl0ZXJhbCBjaGFyYWN0ZXIsIHBlcmlvZAotKGAuYCksIG9yIGEgc2luZ2xlIGBcXCBgIGVz
Y2FwZSBzZXF1ZW5jZTsgYHhgIGFuZCBgeWAgZGVub3RlIHJlZ3VsYXIKLWV4cHJlc3Npb25zLik6
Ci0KLUV4cHJlc3Npb24gfCBNZWFuaW5nCi0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLWBjYCAgICAgICAg
fCBtYXRjaGVzIGFueSBsaXRlcmFsIGNoYXJhY3RlciBgY2AKLWBcXGRgICAgICAgfCBtYXRjaGVz
IGFueSBkZWNpbWFsIGRpZ2l0Ci1gXFxEYCAgICAgIHwgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHRo
YXQncyBub3QgYSBkZWNpbWFsIGRpZ2l0Ci1gXFxmYCAgICAgIHwgbWF0Y2hlcyBgXGZgCi1gXFxu
YCAgICAgIHwgbWF0Y2hlcyBgXG5gCi1gXFxyYCAgICAgIHwgbWF0Y2hlcyBgXHJgCi1gXFxzYCAg
ICAgIHwgbWF0Y2hlcyBhbnkgQVNDSUkgd2hpdGVzcGFjZSwgaW5jbHVkaW5nIGBcbmAKLWBcXFNg
ICAgICAgfCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgdGhhdCdzIG5vdCBhIHdoaXRlc3BhY2UKLWBc
XHRgICAgICAgfCBtYXRjaGVzIGBcdGAKLWBcXHZgICAgICAgfCBtYXRjaGVzIGBcdmAKLWBcXHdg
ICAgICAgfCBtYXRjaGVzIGFueSBsZXR0ZXIsIGBfYCwgb3IgZGVjaW1hbCBkaWdpdAotYFxcV2Ag
ICAgICB8IG1hdGNoZXMgYW55IGNoYXJhY3RlciB0aGF0IGBcXHdgIGRvZXNuJ3QgbWF0Y2gKLWBc
XGNgICAgICAgfCBtYXRjaGVzIGFueSBsaXRlcmFsIGNoYXJhY3RlciBgY2AsIHdoaWNoIG11c3Qg
YmUgYSBwdW5jdHVhdGlvbgotYC5gICAgICAgICB8IG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0
ZXIgZXhjZXB0IGBcbmAKLWBBP2AgICAgICAgfCBtYXRjaGVzIDAgb3IgMSBvY2N1cnJlbmNlcyBv
ZiBgQWAKLWBBKmAgICAgICAgfCBtYXRjaGVzIDAgb3IgbWFueSBvY2N1cnJlbmNlcyBvZiBgQWAK
LWBBK2AgICAgICAgfCBtYXRjaGVzIDEgb3IgbWFueSBvY2N1cnJlbmNlcyBvZiBgQWAKLWBeYCAg
ICAgICAgfCBtYXRjaGVzIHRoZSBiZWdpbm5pbmcgb2YgYSBzdHJpbmcgKG5vdCB0aGF0IG9mIGVh
Y2ggbGluZSkKLWAkYCAgICAgICAgfCBtYXRjaGVzIHRoZSBlbmQgb2YgYSBzdHJpbmcgKG5vdCB0
aGF0IG9mIGVhY2ggbGluZSkKLWB4eWAgICAgICAgfCBtYXRjaGVzIGB4YCBmb2xsb3dlZCBieSBg
eWAKLQotVG8gaGVscCB5b3UgZGV0ZXJtaW5lIHdoaWNoIGNhcGFiaWxpdHkgaXMgYXZhaWxhYmxl
IG9uIHlvdXIgc3lzdGVtLCBnb29nbGV0ZXN0Ci1kZWZpbmVzIG1hY3JvcyB0byBnb3Zlcm4gd2hp
Y2ggcmVndWxhciBleHByZXNzaW9uIGl0IGlzIHVzaW5nLiBUaGUgbWFjcm9zIGFyZToKLTwhLS1h
YnNsOmdvb2dsZTMtYmVnaW4oZ29vZ2xlMy1vbmx5KS0tPmBHVEVTVF9VU0VTX1BDUkU9MWAsIG9y
Ci08IS0tYWJzbDpnb29nbGUzLWVuZC0tPiBgR1RFU1RfVVNFU19TSU1QTEVfUkU9MWAgb3IgYEdU
RVNUX1VTRVNfUE9TSVhfUkU9MWAuIElmCi15b3Ugd2FudCB5b3VyIGRlYXRoIHRlc3RzIHRvIHdv
cmsgaW4gYWxsIGNhc2VzLCB5b3UgY2FuIGVpdGhlciBgI2lmYCBvbiB0aGVzZQotbWFjcm9zIG9y
IHVzZSB0aGUgbW9yZSBsaW1pdGVkIHN5bnRheCBvbmx5LgotCi0jIyMgSG93IEl0IFdvcmtzCi0K
LVVuZGVyIHRoZSBob29kLCBgQVNTRVJUX0VYSVQoKWAgc3Bhd25zIGEgbmV3IHByb2Nlc3MgYW5k
IGV4ZWN1dGVzIHRoZSBkZWF0aCB0ZXN0Ci1zdGF0ZW1lbnQgaW4gdGhhdCBwcm9jZXNzLiBUaGUg
ZGV0YWlscyBvZiBob3cgcHJlY2lzZWx5IHRoYXQgaGFwcGVucyBkZXBlbmQgb24KLXRoZSBwbGF0
Zm9ybSBhbmQgdGhlIHZhcmlhYmxlIDo6dGVzdGluZzo6R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0
eWxlKSAod2hpY2ggaXMKLWluaXRpYWxpemVkIGZyb20gdGhlIGNvbW1hbmQtbGluZSBmbGFnIGAt
LWd0ZXN0X2RlYXRoX3Rlc3Rfc3R5bGVgKS4KLQotKiAgIE9uIFBPU0lYIHN5c3RlbXMsIGBmb3Jr
KClgIChvciBgY2xvbmUoKWAgb24gTGludXgpIGlzIHVzZWQgdG8gc3Bhd24gdGhlCi0gICAgY2hp
bGQsIGFmdGVyIHdoaWNoOgotICAgICogICBJZiB0aGUgdmFyaWFibGUncyB2YWx1ZSBpcyBgImZh
c3QiYCwgdGhlIGRlYXRoIHRlc3Qgc3RhdGVtZW50IGlzCi0gICAgICAgIGltbWVkaWF0ZWx5IGV4
ZWN1dGVkLgotICAgICogICBJZiB0aGUgdmFyaWFibGUncyB2YWx1ZSBpcyBgInRocmVhZHNhZmUi
YCwgdGhlIGNoaWxkIHByb2Nlc3MgcmUtZXhlY3V0ZXMKLSAgICAgICAgdGhlIHVuaXQgdGVzdCBi
aW5hcnkganVzdCBhcyBpdCB3YXMgb3JpZ2luYWxseSBpbnZva2VkLCBidXQgd2l0aCBzb21lCi0g
ICAgICAgIGV4dHJhIGZsYWdzIHRvIGNhdXNlIGp1c3QgdGhlIHNpbmdsZSBkZWF0aCB0ZXN0IHVu
ZGVyIGNvbnNpZGVyYXRpb24gdG8KLSAgICAgICAgYmUgcnVuLgotKiAgIE9uIFdpbmRvd3MsIHRo
ZSBjaGlsZCBpcyBzcGF3bmVkIHVzaW5nIHRoZSBgQ3JlYXRlUHJvY2VzcygpYCBBUEksIGFuZAot
ICAgIHJlLWV4ZWN1dGVzIHRoZSBiaW5hcnkgdG8gY2F1c2UganVzdCB0aGUgc2luZ2xlIGRlYXRo
IHRlc3QgdW5kZXIKLSAgICBjb25zaWRlcmF0aW9uIHRvIGJlIHJ1biAtIG11Y2ggbGlrZSB0aGUg
YHRocmVhZHNhZmVgIG1vZGUgb24gUE9TSVguCi0KLU90aGVyIHZhbHVlcyBmb3IgdGhlIHZhcmlh
YmxlIGFyZSBpbGxlZ2FsIGFuZCB3aWxsIGNhdXNlIHRoZSBkZWF0aCB0ZXN0IHRvIGZhaWwuCi1D
dXJyZW50bHksIHRoZSBmbGFnJ3MgZGVmYXVsdCB2YWx1ZSBpcwotImZhc3QiLiBIb3dldmVyLCB3
ZSByZXNlcnZlCi10aGUgcmlnaHQgdG8gY2hhbmdlIGl0IGluIHRoZSBmdXR1cmUuIFRoZXJlZm9y
ZSwgeW91ciB0ZXN0cyBzaG91bGQgbm90IGRlcGVuZCBvbgotdGhpcy4gSW4gZWl0aGVyIGNhc2Us
IHRoZSBwYXJlbnQgcHJvY2VzcyB3YWl0cyBmb3IgdGhlIGNoaWxkIHByb2Nlc3MgdG8KLWNvbXBs
ZXRlLCBhbmQgY2hlY2tzIHRoYXQKLQotMS4gIHRoZSBjaGlsZCdzIGV4aXQgc3RhdHVzIHNhdGlz
ZmllcyB0aGUgcHJlZGljYXRlLCBhbmQKLTIuICB0aGUgY2hpbGQncyBzdGRlcnIgbWF0Y2hlcyB0
aGUgcmVndWxhciBleHByZXNzaW9uLgotCi1JZiB0aGUgZGVhdGggdGVzdCBzdGF0ZW1lbnQgcnVu
cyB0byBjb21wbGV0aW9uIHdpdGhvdXQgZHlpbmcsIHRoZSBjaGlsZCBwcm9jZXNzCi13aWxsIG5v
bmV0aGVsZXNzIHRlcm1pbmF0ZSwgYW5kIHRoZSBhc3NlcnRpb24gZmFpbHMuCi0KLSMjIyBEZWF0
aCBUZXN0cyBBbmQgVGhyZWFkcwotCi1UaGUgcmVhc29uIGZvciB0aGUgdHdvIGRlYXRoIHRlc3Qg
c3R5bGVzIGhhcyB0byBkbyB3aXRoIHRocmVhZCBzYWZldHkuIER1ZSB0bwotd2VsbC1rbm93biBw
cm9ibGVtcyB3aXRoIGZvcmtpbmcgaW4gdGhlIHByZXNlbmNlIG9mIHRocmVhZHMsIGRlYXRoIHRl
c3RzIHNob3VsZAotYmUgcnVuIGluIGEgc2luZ2xlLXRocmVhZGVkIGNvbnRleHQuIFNvbWV0aW1l
cywgaG93ZXZlciwgaXQgaXNuJ3QgZmVhc2libGUgdG8KLWFycmFuZ2UgdGhhdCBraW5kIG9mIGVu
dmlyb25tZW50LiBGb3IgZXhhbXBsZSwgc3RhdGljYWxseS1pbml0aWFsaXplZCBtb2R1bGVzCi1t
YXkgc3RhcnQgdGhyZWFkcyBiZWZvcmUgbWFpbiBpcyBldmVyIHJlYWNoZWQuIE9uY2UgdGhyZWFk
cyBoYXZlIGJlZW4gY3JlYXRlZCwKLWl0IG1heSBiZSBkaWZmaWN1bHQgb3IgaW1wb3NzaWJsZSB0
byBjbGVhbiB0aGVtIHVwLgotCi1nb29nbGV0ZXN0IGhhcyB0aHJlZSBmZWF0dXJlcyBpbnRlbmRl
ZCB0byByYWlzZSBhd2FyZW5lc3Mgb2YgdGhyZWFkaW5nIGlzc3Vlcy4KLQotMS4gIEEgd2Fybmlu
ZyBpcyBlbWl0dGVkIGlmIG11bHRpcGxlIHRocmVhZHMgYXJlIHJ1bm5pbmcgd2hlbiBhIGRlYXRo
IHRlc3QgaXMKLSAgICBlbmNvdW50ZXJlZC4KLTIuICBUZXN0IGNhc2VzIHdpdGggYSBuYW1lIGVu
ZGluZyBpbiAiRGVhdGhUZXN0IiBhcmUgcnVuIGJlZm9yZSBhbGwgb3RoZXIgdGVzdHMuCi0zLiAg
SXQgdXNlcyBgY2xvbmUoKWAgaW5zdGVhZCBvZiBgZm9yaygpYCB0byBzcGF3biB0aGUgY2hpbGQg
cHJvY2VzcyBvbiBMaW51eAotICAgIChgY2xvbmUoKWAgaXMgbm90IGF2YWlsYWJsZSBvbiBDeWd3
aW4gYW5kIE1hYyksIGFzIGBmb3JrKClgIGlzIG1vcmUgbGlrZWx5Ci0gICAgdG8gY2F1c2UgdGhl
IGNoaWxkIHRvIGhhbmcgd2hlbiB0aGUgcGFyZW50IHByb2Nlc3MgaGFzIG11bHRpcGxlIHRocmVh
ZHMuCi0KLUl0J3MgcGVyZmVjdGx5IGZpbmUgdG8gY3JlYXRlIHRocmVhZHMgaW5zaWRlIGEgZGVh
dGggdGVzdCBzdGF0ZW1lbnQ7IHRoZXkgYXJlCi1leGVjdXRlZCBpbiBhIHNlcGFyYXRlIHByb2Nl
c3MgYW5kIGNhbm5vdCBhZmZlY3QgdGhlIHBhcmVudC4KLQotIyMjIERlYXRoIFRlc3QgU3R5bGVz
Ci0KLQotVGhlICJ0aHJlYWRzYWZlIiBkZWF0aCB0ZXN0IHN0eWxlIHdhcyBpbnRyb2R1Y2VkIGlu
IG9yZGVyIHRvIGhlbHAgbWl0aWdhdGUgdGhlCi1yaXNrcyBvZiB0ZXN0aW5nIGluIGEgcG9zc2li
bHkgbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudC4gSXQgdHJhZGVzIGluY3JlYXNlZAotdGVzdCBl
eGVjdXRpb24gdGltZSAocG90ZW50aWFsbHkgZHJhbWF0aWNhbGx5IHNvKSBmb3IgaW1wcm92ZWQg
dGhyZWFkIHNhZmV0eS4KLQotVGhlIGF1dG9tYXRlZCB0ZXN0aW5nIGZyYW1ld29yayBkb2VzIG5v
dCBzZXQgdGhlIHN0eWxlIGZsYWcuIFlvdSBjYW4gY2hvb3NlIGEKLXBhcnRpY3VsYXIgc3R5bGUg
b2YgZGVhdGggdGVzdHMgYnkgc2V0dGluZyB0aGUgZmxhZyBwcm9ncmFtbWF0aWNhbGx5OgotCi1g
YGBjKysKLXRlc3Rpbmc6OkZMQUdTX2d0ZXN0X2RlYXRoX3Rlc3Rfc3R5bGU9InRocmVhZHNhZmUi
Ci1gYGAKLQotWW91IGNhbiBkbyB0aGlzIGluIGBtYWluKClgIHRvIHNldCB0aGUgc3R5bGUgZm9y
IGFsbCBkZWF0aCB0ZXN0cyBpbiB0aGUgYmluYXJ5LAotb3IgaW4gaW5kaXZpZHVhbCB0ZXN0cy4g
UmVjYWxsIHRoYXQgZmxhZ3MgYXJlIHNhdmVkIGJlZm9yZSBydW5uaW5nIGVhY2ggdGVzdCBhbmQK
LXJlc3RvcmVkIGFmdGVyd2FyZHMsIHNvIHlvdSBuZWVkIG5vdCBkbyB0aGF0IHlvdXJzZWxmLiBG
b3IgZXhhbXBsZToKLQotYGBgYysrCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsK
LSAgSW5pdEdvb2dsZShhcmd2WzBdLCAmYXJnYywgJmFyZ3YsIHRydWUpOwotICA6OnRlc3Rpbmc6
OkZMQUdTX2d0ZXN0X2RlYXRoX3Rlc3Rfc3R5bGUgPSAiZmFzdCI7Ci0gIHJldHVybiBSVU5fQUxM
X1RFU1RTKCk7Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIFRlc3RPbmUpIHsKLSAgOjp0ZXN0aW5n
OjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlID0gInRocmVhZHNhZmUiOwotICAvLyBUaGlz
IHRlc3QgaXMgcnVuIGluIHRoZSAidGhyZWFkc2FmZSIgc3R5bGU6Ci0gIEFTU0VSVF9ERUFUSChU
aGlzU2hvdWxkRGllKCksICIiKTsKLX0KLQotVEVTVChNeURlYXRoVGVzdCwgVGVzdFR3bykgewot
ICAvLyBUaGlzIHRlc3QgaXMgcnVuIGluIHRoZSAiZmFzdCIgc3R5bGU6Ci0gIEFTU0VSVF9ERUFU
SChUaGlzU2hvdWxkRGllKCksICIiKTsKLX0KLWBgYAotCi0KLSMjIyBDYXZlYXRzCi0KLVRoZSBg
c3RhdGVtZW50YCBhcmd1bWVudCBvZiBgQVNTRVJUX0VYSVQoKWAgY2FuIGJlIGFueSB2YWxpZCBD
Kysgc3RhdGVtZW50LiBJZgotaXQgbGVhdmVzIHRoZSBjdXJyZW50IGZ1bmN0aW9uIHZpYSBhIGBy
ZXR1cm5gIHN0YXRlbWVudCBvciBieSB0aHJvd2luZyBhbgotZXhjZXB0aW9uLCB0aGUgZGVhdGgg
dGVzdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgZmFpbGVkLiBTb21lIGdvb2dsZXRlc3QgbWFjcm9z
Ci1tYXkgcmV0dXJuIGZyb20gdGhlIGN1cnJlbnQgZnVuY3Rpb24gKGUuZy4gYEFTU0VSVF9UUlVF
KClgKSwgc28gYmUgc3VyZSB0byBhdm9pZAotdGhlbSBpbiBgc3RhdGVtZW50YC4KLQotU2luY2Ug
YHN0YXRlbWVudGAgcnVucyBpbiB0aGUgY2hpbGQgcHJvY2VzcywgYW55IGluLW1lbW9yeSBzaWRl
IGVmZmVjdCAoZS5nLgotbW9kaWZ5aW5nIGEgdmFyaWFibGUsIHJlbGVhc2luZyBtZW1vcnksIGV0
YykgaXQgY2F1c2VzIHdpbGwgKm5vdCogYmUgb2JzZXJ2YWJsZQotaW4gdGhlIHBhcmVudCBwcm9j
ZXNzLiBJbiBwYXJ0aWN1bGFyLCBpZiB5b3UgcmVsZWFzZSBtZW1vcnkgaW4gYSBkZWF0aCB0ZXN0
LAoteW91ciBwcm9ncmFtIHdpbGwgZmFpbCB0aGUgaGVhcCBjaGVjayBhcyB0aGUgcGFyZW50IHBy
b2Nlc3Mgd2lsbCBuZXZlciBzZWUgdGhlCi1tZW1vcnkgcmVjbGFpbWVkLiBUbyBzb2x2ZSB0aGlz
IHByb2JsZW0sIHlvdSBjYW4KLQotMS4gIHRyeSBub3QgdG8gZnJlZSBtZW1vcnkgaW4gYSBkZWF0
aCB0ZXN0OwotMi4gIGZyZWUgdGhlIG1lbW9yeSBhZ2FpbiBpbiB0aGUgcGFyZW50IHByb2Nlc3M7
IG9yCi0zLiAgZG8gbm90IHVzZSB0aGUgaGVhcCBjaGVja2VyIGluIHlvdXIgcHJvZ3JhbS4KLQot
RHVlIHRvIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgeW91IGNhbm5vdCBwbGFjZSBtdWx0aXBs
ZSBkZWF0aCB0ZXN0IGFzc2VydGlvbnMKLW9uIHRoZSBzYW1lIGxpbmU7IG90aGVyd2lzZSwgY29t
cGlsYXRpb24gd2lsbCBmYWlsIHdpdGggYW4gdW5vYnZpb3VzIGVycm9yCi1tZXNzYWdlLgotCi1E
ZXNwaXRlIHRoZSBpbXByb3ZlZCB0aHJlYWQgc2FmZXR5IGFmZm9yZGVkIGJ5IHRoZSAidGhyZWFk
c2FmZSIgc3R5bGUgb2YgZGVhdGgKLXRlc3QsIHRocmVhZCBwcm9ibGVtcyBzdWNoIGFzIGRlYWRs
b2NrIGFyZSBzdGlsbCBwb3NzaWJsZSBpbiB0aGUgcHJlc2VuY2Ugb2YKLWhhbmRsZXJzIHJlZ2lz
dGVyZWQgd2l0aCBgcHRocmVhZF9hdGZvcmsoMylgLgotCi0KLSMjIFVzaW5nIEFzc2VydGlvbnMg
aW4gU3ViLXJvdXRpbmVzCi0KLSMjIyBBZGRpbmcgVHJhY2VzIHRvIEFzc2VydGlvbnMKLQotSWYg
YSB0ZXN0IHN1Yi1yb3V0aW5lIGlzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzLCB3aGVuIGFu
IGFzc2VydGlvbiBpbnNpZGUgaXQKLWZhaWxzLCBpdCBjYW4gYmUgaGFyZCB0byB0ZWxsIHdoaWNo
IGludm9jYXRpb24gb2YgdGhlIHN1Yi1yb3V0aW5lIHRoZSBmYWlsdXJlIGlzCi1mcm9tLiAKLVlv
dSBjYW4gYWxsZXZpYXRlIHRoaXMgcHJvYmxlbSB1c2luZyBleHRyYSBsb2dnaW5nIG9yIGN1c3Rv
bSBmYWlsdXJlIG1lc3NhZ2VzLAotYnV0IHRoYXQgdXN1YWxseSBjbHV0dGVycyB1cCB5b3VyIHRl
c3RzLiBBIGJldHRlciBzb2x1dGlvbiBpcyB0byB1c2UgdGhlCi1gU0NPUEVEX1RSQUNFYCBtYWNy
byBvciB0aGUgYFNjb3BlZFRyYWNlYCB1dGlsaXR5OgotCi1gYGBjKysKLVNDT1BFRF9UUkFDRSht
ZXNzYWdlKTsKLVNjb3BlZFRyYWNlIHRyYWNlKCJmaWxlX3BhdGgiLCBsaW5lX251bWJlciwgbWVz
c2FnZSk7Ci1gYGAKLQotd2hlcmUgYG1lc3NhZ2VgIGNhbiBiZSBhbnl0aGluZyBzdHJlYW1hYmxl
IHRvIGBzdGQ6Om9zdHJlYW1gLiBgU0NPUEVEX1RSQUNFYAotbWFjcm8gd2lsbCBjYXVzZSB0aGUg
Y3VycmVudCBmaWxlIG5hbWUsIGxpbmUgbnVtYmVyLCBhbmQgdGhlIGdpdmVuIG1lc3NhZ2UgdG8g
YmUKLWFkZGVkIGluIGV2ZXJ5IGZhaWx1cmUgbWVzc2FnZS4gYFNjb3BlZFRyYWNlYCBhY2NlcHRz
IGV4cGxpY2l0IGZpbGUgbmFtZSBhbmQKLWxpbmUgbnVtYmVyIGluIGFyZ3VtZW50cywgd2hpY2gg
aXMgdXNlZnVsIGZvciB3cml0aW5nIHRlc3QgaGVscGVycy4gVGhlIGVmZmVjdAotd2lsbCBiZSB1
bmRvbmUgd2hlbiB0aGUgY29udHJvbCBsZWF2ZXMgdGhlIGN1cnJlbnQgbGV4aWNhbCBzY29wZS4K
LQotRm9yIGV4YW1wbGUsCi0KLWBgYGMrKwotMTA6IHZvaWQgU3ViMShpbnQgbikgewotMTE6ICAg
RVhQRUNUX0VRKDEsIEJhcihuKSk7Ci0xMjogICBFWFBFQ1RfRVEoMiwgQmFyKG4gKyAxKSk7Ci0x
MzogfQotMTQ6Ci0xNTogVEVTVChGb29UZXN0LCBCYXIpIHsKLTE2OiAgIHsKLTE3OiAgICAgU0NP
UEVEX1RSQUNFKCJBIik7ICAvLyBUaGlzIHRyYWNlIHBvaW50IHdpbGwgYmUgaW5jbHVkZWQgaW4K
LTE4OiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVyeSBmYWlsdXJlIGluIHRoaXMgc2Nv
cGUuCi0xOTogICAgIFN1YjEoMSk7Ci0yMDogICB9Ci0yMTogICAvLyBOb3cgaXQgd29uJ3QuCi0y
MjogICBTdWIxKDkpOwotMjM6IH0KLWBgYAotCi1jb3VsZCByZXN1bHQgaW4gbWVzc2FnZXMgbGlr
ZSB0aGVzZToKLQotYGBgbm9uZQotcGF0aC90by9mb29fdGVzdC5jYzoxMTogRmFpbHVyZQotVmFs
dWUgb2Y6IEJhcihuKQotRXhwZWN0ZWQ6IDEKLSAgQWN0dWFsOiAyCi0gICBUcmFjZToKLXBhdGgv
dG8vZm9vX3Rlc3QuY2M6MTc6IEEKLQotcGF0aC90by9mb29fdGVzdC5jYzoxMjogRmFpbHVyZQot
VmFsdWUgb2Y6IEJhcihuICsgMSkKLUV4cGVjdGVkOiAyCi0gIEFjdHVhbDogMwotYGBgCi0KLVdp
dGhvdXQgdGhlIHRyYWNlLCBpdCB3b3VsZCd2ZSBiZWVuIGRpZmZpY3VsdCB0byBrbm93IHdoaWNo
IGludm9jYXRpb24gb2YKLWBTdWIxKClgIHRoZSB0d28gZmFpbHVyZXMgY29tZSBmcm9tIHJlc3Bl
Y3RpdmVseS4gKFlvdSBjb3VsZCBhZGQKLQotYW4gZXh0cmEgbWVzc2FnZSB0byBlYWNoIGFzc2Vy
dGlvbiBpbiBgU3ViMSgpYCB0byBpbmRpY2F0ZSB0aGUgdmFsdWUgb2YgYG5gLCBidXQKLXRoYXQn
cyB0ZWRpb3VzLikKLQotU29tZSB0aXBzIG9uIHVzaW5nIGBTQ09QRURfVFJBQ0VgOgotCi0xLiAg
V2l0aCBhIHN1aXRhYmxlIG1lc3NhZ2UsIGl0J3Mgb2Z0ZW4gZW5vdWdoIHRvIHVzZSBgU0NPUEVE
X1RSQUNFYCBhdCB0aGUKLSAgICBiZWdpbm5pbmcgb2YgYSBzdWItcm91dGluZSwgaW5zdGVhZCBv
ZiBhdCBlYWNoIGNhbGwgc2l0ZS4KLTIuICBXaGVuIGNhbGxpbmcgc3ViLXJvdXRpbmVzIGluc2lk
ZSBhIGxvb3AsIG1ha2UgdGhlIGxvb3AgaXRlcmF0b3IgcGFydCBvZiB0aGUKLSAgICBtZXNzYWdl
IGluIGBTQ09QRURfVFJBQ0VgIHN1Y2ggdGhhdCB5b3UgY2FuIGtub3cgd2hpY2ggaXRlcmF0aW9u
IHRoZSBmYWlsdXJlCi0gICAgaXMgZnJvbS4KLTMuICBTb21ldGltZXMgdGhlIGxpbmUgbnVtYmVy
IG9mIHRoZSB0cmFjZSBwb2ludCBpcyBlbm91Z2ggZm9yIGlkZW50aWZ5aW5nIHRoZQotICAgIHBh
cnRpY3VsYXIgaW52b2NhdGlvbiBvZiBhIHN1Yi1yb3V0aW5lLiBJbiB0aGlzIGNhc2UsIHlvdSBk
b24ndCBoYXZlIHRvCi0gICAgY2hvb3NlIGEgdW5pcXVlIG1lc3NhZ2UgZm9yIGBTQ09QRURfVFJB
Q0VgLiBZb3UgY2FuIHNpbXBseSB1c2UgYCIiYC4KLTQuICBZb3UgY2FuIHVzZSBgU0NPUEVEX1RS
QUNFYCBpbiBhbiBpbm5lciBzY29wZSB3aGVuIHRoZXJlIGlzIG9uZSBpbiB0aGUgb3V0ZXIKLSAg
ICBzY29wZS4gSW4gdGhpcyBjYXNlLCBhbGwgYWN0aXZlIHRyYWNlIHBvaW50cyB3aWxsIGJlIGlu
Y2x1ZGVkIGluIHRoZSBmYWlsdXJlCi0gICAgbWVzc2FnZXMsIGluIHJldmVyc2Ugb3JkZXIgdGhl
eSBhcmUgZW5jb3VudGVyZWQuCi01LiAgVGhlIHRyYWNlIGR1bXAgaXMgY2xpY2thYmxlIGluIEVt
YWNzIC0gaGl0IGByZXR1cm5gIG9uIGEgbGluZSBudW1iZXIgYW5kCi0gICAgeW91J2xsIGJlIHRh
a2VuIHRvIHRoYXQgbGluZSBpbiB0aGUgc291cmNlIGZpbGUhCi0KLSoqQXZhaWxhYmlsaXR5Kio6
IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBQcm9wYWdhdGluZyBGYXRhbCBGYWlsdXJlcwot
Ci1BIGNvbW1vbiBwaXRmYWxsIHdoZW4gdXNpbmcgYEFTU0VSVF8qYCBhbmQgYEZBSUwqYCBpcyBu
b3QgdW5kZXJzdGFuZGluZyB0aGF0Ci13aGVuIHRoZXkgZmFpbCB0aGV5IG9ubHkgYWJvcnQgdGhl
IF9jdXJyZW50IGZ1bmN0aW9uXywgbm90IHRoZSBlbnRpcmUgdGVzdC4gRm9yCi1leGFtcGxlLCB0
aGUgZm9sbG93aW5nIHRlc3Qgd2lsbCBzZWdmYXVsdDoKLQotYGBgYysrCi12b2lkIFN1YnJvdXRp
bmUoKSB7Ci0gIC8vIEdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUgYW5kIGFib3J0cyB0aGUgY3Vy
cmVudCBmdW5jdGlvbi4KLSAgQVNTRVJUX0VRKDEsIDIpOwotCi0gIC8vIFRoZSBmb2xsb3dpbmcg
d29uJ3QgYmUgZXhlY3V0ZWQuCi0gIC4uLgotfQotCi1URVNUKEZvb1Rlc3QsIEJhcikgewotICBT
dWJyb3V0aW5lKCk7ICAvLyBUaGUgaW50ZW5kZWQgYmVoYXZpb3IgaXMgZm9yIHRoZSBmYXRhbCBm
YWlsdXJlCi0gICAgICAgICAgICAgICAgIC8vIGluIFN1YnJvdXRpbmUoKSB0byBhYm9ydCB0aGUg
ZW50aXJlIHRlc3QuCi0KLSAgLy8gVGhlIGFjdHVhbCBiZWhhdmlvcjogdGhlIGZ1bmN0aW9uIGdv
ZXMgb24gYWZ0ZXIgU3Vicm91dGluZSgpIHJldHVybnMuCi0gIGludCogcCA9IE5VTEw7Ci0gICpw
ID0gMzsgIC8vIFNlZ2ZhdWx0IQotfQotYGBgCi0KLVRvIGFsbGV2aWF0ZSB0aGlzLCBnb29nbGV0
ZXN0IHByb3ZpZGVzIHRocmVlIGRpZmZlcmVudCBzb2x1dGlvbnMuIFlvdSBjb3VsZCB1c2UKLWVp
dGhlciBleGNlcHRpb25zLCB0aGUgYChBU1NFUlR8RVhQRUNUKV9OT19GQVRBTF9GQUlMVVJFYCBh
c3NlcnRpb25zIG9yIHRoZQotYEhhc0ZhdGFsRmFpbHVyZSgpYCBmdW5jdGlvbi4gVGhleSBhcmUg
ZGVzY3JpYmVkIGluIHRoZSBmb2xsb3dpbmcgdHdvCi1zdWJzZWN0aW9ucy4KLQotIyMjIyBBc3Nl
cnRpbmcgb24gU3Vicm91dGluZXMgd2l0aCBhbiBleGNlcHRpb24KLQotVGhlIGZvbGxvd2luZyBj
b2RlIGNhbiB0dXJuIEFTU0VSVC1mYWlsdXJlIGludG8gYW4gZXhjZXB0aW9uOgotCi1gYGBjKysK
LWNsYXNzIFRocm93TGlzdGVuZXIgOiBwdWJsaWMgdGVzdGluZzo6RW1wdHlUZXN0RXZlbnRMaXN0
ZW5lciB7Ci0gIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCB0ZXN0aW5nOjpUZXN0UGFydFJl
c3VsdCYgcmVzdWx0KSBvdmVycmlkZSB7Ci0gICAgaWYgKHJlc3VsdC50eXBlKCkgPT0gdGVzdGlu
Zzo6VGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUpIHsKLSAgICAgIHRocm93IHRlc3Rpbmc6
OkFzc2VydGlvbkV4Y2VwdGlvbihyZXN1bHQpOwotICAgIH0KLSAgfQotfTsKLWludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikgewotICAuLi4KLSAgdGVzdGluZzo6VW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmxpc3RlbmVycygpLkFwcGVuZChuZXcgVGhyb3dMaXN0ZW5lcik7Ci0gIHJldHVy
biBSVU5fQUxMX1RFU1RTKCk7Ci19Ci1gYGAKLQotVGhpcyBsaXN0ZW5lciBzaG91bGQgYmUgYWRk
ZWQgYWZ0ZXIgb3RoZXIgbGlzdGVuZXJzIGlmIHlvdSBoYXZlIGFueSwgb3RoZXJ3aXNlCi10aGV5
IHdvbid0IHNlZSBmYWlsZWQgYE9uVGVzdFBhcnRSZXN1bHRgLgotCi0jIyMjIEFzc2VydGluZyBv
biBTdWJyb3V0aW5lcwotCi1BcyBzaG93biBhYm92ZSwgaWYgeW91ciB0ZXN0IGNhbGxzIGEgc3Vi
cm91dGluZSB0aGF0IGhhcyBhbiBgQVNTRVJUXypgIGZhaWx1cmUKLWluIGl0LCB0aGUgdGVzdCB3
aWxsIGNvbnRpbnVlIGFmdGVyIHRoZSBzdWJyb3V0aW5lIHJldHVybnMuIFRoaXMgbWF5IG5vdCBi
ZSB3aGF0Ci15b3Ugd2FudC4KLQotT2Z0ZW4gcGVvcGxlIHdhbnQgZmF0YWwgZmFpbHVyZXMgdG8g
cHJvcGFnYXRlIGxpa2UgZXhjZXB0aW9ucy4gRm9yIHRoYXQKLWdvb2dsZXRlc3Qgb2ZmZXJzIHRo
ZSBmb2xsb3dpbmcgbWFjcm9zOgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAg
ICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICB8IFZlcmlmaWVzCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tCi1gQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUo
c3RhdGVtZW50KTtgIHwgYEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKHN0YXRlbWVudCk7YCB8IGBz
dGF0ZW1lbnRgIGRvZXNuJ3QgZ2VuZXJhdGUgYW55IG5ldyBmYXRhbCBmYWlsdXJlcyBpbiB0aGUg
Y3VycmVudCB0aHJlYWQuCi0KLU9ubHkgZmFpbHVyZXMgaW4gdGhlIHRocmVhZCB0aGF0IGV4ZWN1
dGVzIHRoZSBhc3NlcnRpb24gYXJlIGNoZWNrZWQgdG8gZGV0ZXJtaW5lCi10aGUgcmVzdWx0IG9m
IHRoaXMgdHlwZSBvZiBhc3NlcnRpb25zLiBJZiBgc3RhdGVtZW50YCBjcmVhdGVzIG5ldyB0aHJl
YWRzLAotZmFpbHVyZXMgaW4gdGhlc2UgdGhyZWFkcyBhcmUgaWdub3JlZC4KLQotRXhhbXBsZXM6
Ci0KLWBgYGMrKwotQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoRm9vKCkpOwotCi1pbnQgaTsKLUVY
UEVDVF9OT19GQVRBTF9GQUlMVVJFKHsKLSAgaSA9IEJhcigpOwotfSk7Ci1gYGAKLQotKipBdmFp
bGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4gQXNzZXJ0aW9ucyBmcm9tIG11bHRpcGxl
IHRocmVhZHMgYXJlCi1jdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzLgotCi0jIyMj
IENoZWNraW5nIGZvciBGYWlsdXJlcyBpbiB0aGUgQ3VycmVudCBUZXN0Ci0KLWBIYXNGYXRhbEZh
aWx1cmUoKWAgaW4gdGhlIGA6OnRlc3Rpbmc6OlRlc3RgIGNsYXNzIHJldHVybnMgYHRydWVgIGlm
IGFuCi1hc3NlcnRpb24gaW4gdGhlIGN1cnJlbnQgdGVzdCBoYXMgc3VmZmVyZWQgYSBmYXRhbCBm
YWlsdXJlLiBUaGlzIGFsbG93cwotZnVuY3Rpb25zIHRvIGNhdGNoIGZhdGFsIGZhaWx1cmVzIGlu
IGEgc3ViLXJvdXRpbmUgYW5kIHJldHVybiBlYXJseS4KLQotYGBgYysrCi1jbGFzcyBUZXN0IHsK
LSBwdWJsaWM6Ci0gIC4uLgotICBzdGF0aWMgYm9vbCBIYXNGYXRhbEZhaWx1cmUoKTsKLX07Ci1g
YGAKLQotVGhlIHR5cGljYWwgdXNhZ2UsIHdoaWNoIGJhc2ljYWxseSBzaW11bGF0ZXMgdGhlIGJl
aGF2aW9yIG9mIGEgdGhyb3duIGV4Y2VwdGlvbiwKLWlzOgotCi1gYGBjKysKLVRFU1QoRm9vVGVz
dCwgQmFyKSB7Ci0gIFN1YnJvdXRpbmUoKTsKLSAgLy8gQWJvcnRzIGlmIFN1YnJvdXRpbmUoKSBo
YWQgYSBmYXRhbCBmYWlsdXJlLgotICBpZiAoSGFzRmF0YWxGYWlsdXJlKCkpIHJldHVybjsKLQot
ICAvLyBUaGUgZm9sbG93aW5nIHdvbid0IGJlIGV4ZWN1dGVkLgotICAuLi4KLX0KLWBgYAotCi1J
ZiBgSGFzRmF0YWxGYWlsdXJlKClgIGlzIHVzZWQgb3V0c2lkZSBvZiBgVEVTVCgpYCAsIGBURVNU
X0YoKWAgLCBvciBhIHRlc3QKLWZpeHR1cmUsIHlvdSBtdXN0IGFkZCB0aGUgYDo6dGVzdGluZzo6
VGVzdDo6YCBwcmVmaXgsIGFzIGluOgotCi1gYGBjKysKLWlmICg6OnRlc3Rpbmc6OlRlc3Q6Okhh
c0ZhdGFsRmFpbHVyZSgpKSByZXR1cm47Ci1gYGAKLQotU2ltaWxhcmx5LCBgSGFzTm9uZmF0YWxG
YWlsdXJlKClgIHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGF0Ci1sZWFz
dCBvbmUgbm9uLWZhdGFsIGZhaWx1cmUsIGFuZCBgSGFzRmFpbHVyZSgpYCByZXR1cm5zIGB0cnVl
YCBpZiB0aGUgY3VycmVudAotdGVzdCBoYXMgYXQgbGVhc3Qgb25lIGZhaWx1cmUgb2YgZWl0aGVy
IGtpbmQuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIExv
Z2dpbmcgQWRkaXRpb25hbCBJbmZvcm1hdGlvbgotCi1JbiB5b3VyIHRlc3QgY29kZSwgeW91IGNh
biBjYWxsIGBSZWNvcmRQcm9wZXJ0eSgia2V5IiwgdmFsdWUpYCB0byBsb2cgYWRkaXRpb25hbAot
aW5mb3JtYXRpb24sIHdoZXJlIGB2YWx1ZWAgY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBg
aW50YC4gVGhlICpsYXN0KiB2YWx1ZQotcmVjb3JkZWQgZm9yIGEga2V5IHdpbGwgYmUgZW1pdHRl
ZCB0byB0aGUgW1hNTCBvdXRwdXRdKCNnZW5lcmF0aW5nLWFuLXhtbC1yZXBvcnQpIGlmIHlvdQot
c3BlY2lmeSBvbmUuIEZvciBleGFtcGxlLCB0aGUgdGVzdAotCi1gYGBjKysKLVRFU1RfRihXaWRn
ZXRVc2FnZVRlc3QsIE1pbkFuZE1heFdpZGdldHMpIHsKLSAgUmVjb3JkUHJvcGVydHkoIk1heGlt
dW1XaWRnZXRzIiwgQ29tcHV0ZU1heFVzYWdlKCkpOwotICBSZWNvcmRQcm9wZXJ0eSgiTWluaW11
bVdpZGdldHMiLCBDb21wdXRlTWluVXNhZ2UoKSk7Ci19Ci1gYGAKLQotd2lsbCBvdXRwdXQgWE1M
IGxpa2UgdGhpczoKLQotYGBgeG1sCi0gIC4uLgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJNaW5BbmRN
YXhXaWRnZXRzIiBzdGF0dXM9InJ1biIgdGltZT0iMC4wMDYiIGNsYXNzbmFtZT0iV2lkZ2V0VXNh
Z2VUZXN0IiBNYXhpbXVtV2lkZ2V0cz0iMTIiIE1pbmltdW1XaWRnZXRzPSI5IiAvPgotICAuLi4K
LWBgYAotCi0+IE5PVEU6Ci0+Ci0+ICogICBgUmVjb3JkUHJvcGVydHkoKWAgaXMgYSBzdGF0aWMg
bWVtYmVyIG9mIHRoZSBgVGVzdGAgY2xhc3MuIFRoZXJlZm9yZSBpdAotPiAgICAgbmVlZHMgdG8g
YmUgcHJlZml4ZWQgd2l0aCBgOjp0ZXN0aW5nOjpUZXN0OjpgIGlmIHVzZWQgb3V0c2lkZSBvZiB0
aGUKLT4gICAgIGBURVNUYCBib2R5IGFuZCB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzLgotPiAqICAg
YCprZXkqYCBtdXN0IGJlIGEgdmFsaWQgWE1MIGF0dHJpYnV0ZSBuYW1lLCBhbmQgY2Fubm90IGNv
bmZsaWN0IHdpdGggdGhlCi0+ICAgICBvbmVzIGFscmVhZHkgdXNlZCBieSBnb29nbGV0ZXN0IChg
bmFtZWAsIGBzdGF0dXNgLCBgdGltZWAsIGBjbGFzc25hbWVgLAotPiAgICAgYHR5cGVfcGFyYW1g
LCBhbmQgYHZhbHVlX3BhcmFtYCkuCi0+ICogICBDYWxsaW5nIGBSZWNvcmRQcm9wZXJ0eSgpYCBv
dXRzaWRlIG9mIHRoZSBsaWZlc3BhbiBvZiBhIHRlc3QgaXMgYWxsb3dlZC4KLT4gICAgIElmIGl0
J3MgY2FsbGVkIG91dHNpZGUgb2YgYSB0ZXN0IGJ1dCBiZXR3ZWVuIGEgdGVzdCBjYXNlJ3MKLT4g
ICAgIGBTZXRVcFRlc3RDYXNlKClgIGFuZCBgVGVhckRvd25UZXN0Q2FzZSgpYCBtZXRob2RzLCBp
dCB3aWxsIGJlIGF0dHJpYnV0ZWQKLT4gICAgIHRvIHRoZSBYTUwgZWxlbWVudCBmb3IgdGhlIHRl
c3QgY2FzZS4gSWYgaXQncyBjYWxsZWQgb3V0c2lkZSBvZiBhbGwgdGVzdAotPiAgICAgY2FzZXMg
KGUuZy4gaW4gYSB0ZXN0IGVudmlyb25tZW50KSwgaXQgd2lsbCBiZSBhdHRyaWJ1dGVkIHRvIHRo
ZSB0b3AtbGV2ZWwKLT4gICAgIFhNTCBlbGVtZW50LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51
eCwgV2luZG93cywgTWFjLgotCi0jIyBTaGFyaW5nIFJlc291cmNlcyBCZXR3ZWVuIFRlc3RzIGlu
IHRoZSBTYW1lIFRlc3QgQ2FzZQotCi1nb29nbGV0ZXN0IGNyZWF0ZXMgYSBuZXcgdGVzdCBmaXh0
dXJlIG9iamVjdCBmb3IgZWFjaCB0ZXN0IGluIG9yZGVyIHRvIG1ha2UKLXRlc3RzIGluZGVwZW5k
ZW50IGFuZCBlYXNpZXIgdG8gZGVidWcuIEhvd2V2ZXIsIHNvbWV0aW1lcyB0ZXN0cyB1c2UgcmVz
b3VyY2VzCi10aGF0IGFyZSBleHBlbnNpdmUgdG8gc2V0IHVwLCBtYWtpbmcgdGhlIG9uZS1jb3B5
LXBlci10ZXN0IG1vZGVsIHByb2hpYml0aXZlbHkKLWV4cGVuc2l2ZS4KLQotSWYgdGhlIHRlc3Rz
IGRvbid0IGNoYW5nZSB0aGUgcmVzb3VyY2UsIHRoZXJlJ3Mgbm8gaGFybSBpbiB0aGVpciBzaGFy
aW5nIGEKLXNpbmdsZSByZXNvdXJjZSBjb3B5LiBTbywgaW4gYWRkaXRpb24gdG8gcGVyLXRlc3Qg
c2V0LXVwL3RlYXItZG93biwgZ29vZ2xldGVzdAotYWxzbyBzdXBwb3J0cyBwZXItdGVzdC1jYXNl
IHNldC11cC90ZWFyLWRvd24uIFRvIHVzZSBpdDoKLQotMS4gIEluIHlvdXIgdGVzdCBmaXh0dXJl
IGNsYXNzIChzYXkgYEZvb1Rlc3RgICksIGRlY2xhcmUgYXMgYHN0YXRpY2Agc29tZSBtZW1iZXIK
LSAgICB2YXJpYWJsZXMgdG8gaG9sZCB0aGUgc2hhcmVkIHJlc291cmNlcy4KLTEuICBPdXRzaWRl
IHlvdXIgdGVzdCBmaXh0dXJlIGNsYXNzICh0eXBpY2FsbHkganVzdCBiZWxvdyBpdCksIGRlZmlu
ZSB0aG9zZQotICAgIG1lbWJlciB2YXJpYWJsZXMsIG9wdGlvbmFsbHkgZ2l2aW5nIHRoZW0gaW5p
dGlhbCB2YWx1ZXMuCi0xLiAgSW4gdGhlIHNhbWUgdGVzdCBmaXh0dXJlIGNsYXNzLCBkZWZpbmUg
YSBgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpYAotICAgIGZ1bmN0aW9uIChyZW1lbWJlciBu
b3QgdG8gc3BlbGwgaXQgYXMgKipgU2V0dXBUZXN0Q2FzZWAqKiB3aXRoIGEgc21hbGwgYHVgISkK
LSAgICB0byBzZXQgdXAgdGhlIHNoYXJlZCByZXNvdXJjZXMgYW5kIGEgYHN0YXRpYyB2b2lkIFRl
YXJEb3duVGVzdENhc2UoKWAKLSAgICBmdW5jdGlvbiB0byB0ZWFyIHRoZW0gZG93bi4KLQotVGhh
dCdzIGl0ISBnb29nbGV0ZXN0IGF1dG9tYXRpY2FsbHkgY2FsbHMgYFNldFVwVGVzdENhc2UoKWAg
YmVmb3JlIHJ1bm5pbmcgdGhlCi0qZmlyc3QgdGVzdCogaW4gdGhlIGBGb29UZXN0YCB0ZXN0IGNh
c2UgKGkuZS4gYmVmb3JlIGNyZWF0aW5nIHRoZSBmaXJzdAotYEZvb1Rlc3RgIG9iamVjdCksIGFu
ZCBjYWxscyBgVGVhckRvd25UZXN0Q2FzZSgpYCBhZnRlciBydW5uaW5nIHRoZSAqbGFzdCB0ZXN0
KgotaW4gaXQgKGkuZS4gYWZ0ZXIgZGVsZXRpbmcgdGhlIGxhc3QgYEZvb1Rlc3RgIG9iamVjdCku
IEluIGJldHdlZW4sIHRoZSB0ZXN0cyBjYW4KLXVzZSB0aGUgc2hhcmVkIHJlc291cmNlcy4KLQot
UmVtZW1iZXIgdGhhdCB0aGUgdGVzdCBvcmRlciBpcyB1bmRlZmluZWQsIHNvIHlvdXIgY29kZSBj
YW4ndCBkZXBlbmQgb24gYSB0ZXN0Ci1wcmVjZWRpbmcgb3IgZm9sbG93aW5nIGFub3RoZXIuIEFs
c28sIHRoZSB0ZXN0cyBtdXN0IGVpdGhlciBub3QgbW9kaWZ5IHRoZSBzdGF0ZQotb2YgYW55IHNo
YXJlZCByZXNvdXJjZSwgb3IsIGlmIHRoZXkgZG8gbW9kaWZ5IHRoZSBzdGF0ZSwgdGhleSBtdXN0
IHJlc3RvcmUgdGhlCi1zdGF0ZSB0byBpdHMgb3JpZ2luYWwgdmFsdWUgYmVmb3JlIHBhc3Npbmcg
Y29udHJvbCB0byB0aGUgbmV4dCB0ZXN0LgotCi1IZXJlJ3MgYW4gZXhhbXBsZSBvZiBwZXItdGVz
dC1jYXNlIHNldC11cCBhbmQgdGVhci1kb3duOgotCi1gYGBjKysKLWNsYXNzIEZvb1Rlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIC8vIFBlci10ZXN0LWNhc2Ug
c2V0LXVwLgotICAvLyBDYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRoaXMgdGVzdCBj
YXNlLgotICAvLyBDYW4gYmUgb21pdHRlZCBpZiBub3QgbmVlZGVkLgotICBzdGF0aWMgdm9pZCBT
ZXRVcFRlc3RDYXNlKCkgewotICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBuZXcgLi4uOwotICB9Ci0K
LSAgLy8gUGVyLXRlc3QtY2FzZSB0ZWFyLWRvd24uCi0gIC8vIENhbGxlZCBhZnRlciB0aGUgbGFz
dCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgotICAvLyBDYW4gYmUgb21pdHRlZCBpZiBub3QgbmVl
ZGVkLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIGRlbGV0ZSBzaGFy
ZWRfcmVzb3VyY2VfOwotICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBOVUxMOwotICB9Ci0KLSAgLy8g
WW91IGNhbiBkZWZpbmUgcGVyLXRlc3Qgc2V0LXVwIGxvZ2ljIGFzIHVzdWFsLgotICB2aXJ0dWFs
IHZvaWQgU2V0VXAoKSB7IC4uLiB9Ci0KLSAgLy8gWW91IGNhbiBkZWZpbmUgcGVyLXRlc3QgdGVh
ci1kb3duIGxvZ2ljIGFzIHVzdWFsLgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7IC4uLiB9
Ci0KLSAgLy8gU29tZSBleHBlbnNpdmUgcmVzb3VyY2Ugc2hhcmVkIGJ5IGFsbCB0ZXN0cy4KLSAg
c3RhdGljIFQqIHNoYXJlZF9yZXNvdXJjZV87Ci19OwotCi1UKiBGb29UZXN0OjpzaGFyZWRfcmVz
b3VyY2VfID0gTlVMTDsKLQotVEVTVF9GKEZvb1Rlc3QsIFRlc3QxKSB7Ci0gIC4uLiB5b3UgY2Fu
IHJlZmVyIHRvIHNoYXJlZF9yZXNvdXJjZV8gaGVyZSAuLi4KLX0KLQotVEVTVF9GKEZvb1Rlc3Qs
IFRlc3QyKSB7Ci0gIC4uLiB5b3UgY2FuIHJlZmVyIHRvIHNoYXJlZF9yZXNvdXJjZV8gaGVyZSAu
Li4KLX0KLWBgYAotCi1OT1RFOiBUaG91Z2ggdGhlIGFib3ZlIGNvZGUgZGVjbGFyZXMgYFNldFVw
VGVzdENhc2UoKWAgcHJvdGVjdGVkLCBpdCBtYXkKLXNvbWV0aW1lcyBiZSBuZWNlc3NhcnkgdG8g
ZGVjbGFyZSBpdCBwdWJsaWMsIHN1Y2ggYXMgd2hlbiB1c2luZyBpdCB3aXRoCi1gVEVTVF9QYC4K
LQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgR2xvYmFsIFNl
dC1VcCBhbmQgVGVhci1Eb3duCi0KLUp1c3QgYXMgeW91IGNhbiBkbyBzZXQtdXAgYW5kIHRlYXIt
ZG93biBhdCB0aGUgdGVzdCBsZXZlbCBhbmQgdGhlIHRlc3QgY2FzZQotbGV2ZWwsIHlvdSBjYW4g
YWxzbyBkbyBpdCBhdCB0aGUgdGVzdCBwcm9ncmFtIGxldmVsLiBIZXJlJ3MgaG93LgotCi1GaXJz
dCwgeW91IHN1YmNsYXNzIHRoZSBgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudGAgY2xhc3MgdG8gZGVm
aW5lIGEgdGVzdAotZW52aXJvbm1lbnQsIHdoaWNoIGtub3dzIGhvdyB0byBzZXQtdXAgYW5kIHRl
YXItZG93bjoKLQotYGBgYysrCi1jbGFzcyBFbnZpcm9ubWVudCB7Ci0gcHVibGljOgotICB2aXJ0
dWFsIH5FbnZpcm9ubWVudCgpIHt9Ci0KLSAgLy8gT3ZlcnJpZGUgdGhpcyB0byBkZWZpbmUgaG93
IHRvIHNldCB1cCB0aGUgZW52aXJvbm1lbnQuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9Ci0K
LSAgLy8gT3ZlcnJpZGUgdGhpcyB0byBkZWZpbmUgaG93IHRvIHRlYXIgZG93biB0aGUgZW52aXJv
bm1lbnQuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9Ci19OwotYGBgCi0KLVRoZW4sIHlv
dSByZWdpc3RlciBhbiBpbnN0YW5jZSBvZiB5b3VyIGVudmlyb25tZW50IGNsYXNzIHdpdGggZ29v
Z2xldGVzdCBieQotY2FsbGluZyB0aGUgYDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25t
ZW50KClgIGZ1bmN0aW9uOgotCi1gYGBjKysKLUVudmlyb25tZW50KiBBZGRHbG9iYWxUZXN0RW52
aXJvbm1lbnQoRW52aXJvbm1lbnQqIGVudik7Ci1gYGAKLQotTm93LCB3aGVuIGBSVU5fQUxMX1RF
U1RTKClgIGlzIGNhbGxlZCwgaXQgZmlyc3QgY2FsbHMgdGhlIGBTZXRVcCgpYCBtZXRob2Qgb2YK
LXRoZSBlbnZpcm9ubWVudCBvYmplY3QsIHRoZW4gcnVucyB0aGUgdGVzdHMgaWYgdGhlcmUgd2Fz
IG5vIGZhdGFsIGZhaWx1cmVzLCBhbmQKLWZpbmFsbHkgY2FsbHMgYFRlYXJEb3duKClgIG9mIHRo
ZSBlbnZpcm9ubWVudCBvYmplY3QuCi0KLUl0J3MgT0sgdG8gcmVnaXN0ZXIgbXVsdGlwbGUgZW52
aXJvbm1lbnQgb2JqZWN0cy4gSW4gdGhpcyBjYXNlLCB0aGVpciBgU2V0VXAoKWAKLXdpbGwgYmUg
Y2FsbGVkIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZWdpc3RlcmVkLCBhbmQgdGhlaXIgYFRlYXJE
b3duKClgIHdpbGwgYmUKLWNhbGxlZCBpbiB0aGUgcmV2ZXJzZSBvcmRlci4KLQotTm90ZSB0aGF0
IGdvb2dsZXRlc3QgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSByZWdpc3RlcmVkIGVudmlyb25tZW50
IG9iamVjdHMuCi1UaGVyZWZvcmUgKipkbyBub3QgZGVsZXRlIHRoZW0qKiBieSB5b3Vyc2VsZi4K
LQotWW91IHNob3VsZCBjYWxsIGBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKWAgYmVmb3JlIGBS
VU5fQUxMX1RFU1RTKClgIGlzIGNhbGxlZCwKLXByb2JhYmx5IGluIGBtYWluKClgLiBJZiB5b3Ug
dXNlIGBndGVzdF9tYWluYCwgeW91IG5lZWQgdG8gY2FsbCB0aGlzIGJlZm9yZQotYG1haW4oKWAg
c3RhcnRzIGZvciBpdCB0byB0YWtlIGVmZmVjdC4gT25lIHdheSB0byBkbyB0aGlzIGlzIHRvIGRl
ZmluZSBhIGdsb2JhbAotdmFyaWFibGUgbGlrZSB0aGlzOgotCi1gYGBjKysKLTo6dGVzdGluZzo6
RW52aXJvbm1lbnQqIGNvbnN0IGZvb19lbnYgPQotICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVz
dEVudmlyb25tZW50KG5ldyBGb29FbnZpcm9ubWVudCk7Ci1gYGAKLQotSG93ZXZlciwgd2Ugc3Ry
b25nbHkgcmVjb21tZW5kIHlvdSB0byB3cml0ZSB5b3VyIG93biBgbWFpbigpYCBhbmQgY2FsbAot
YEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpYCB0aGVyZSwgYXMgcmVseWluZyBvbiBpbml0aWFs
aXphdGlvbiBvZiBnbG9iYWwKLXZhcmlhYmxlcyBtYWtlcyB0aGUgY29kZSBoYXJkZXIgdG8gcmVh
ZCBhbmQgbWF5IGNhdXNlIHByb2JsZW1zIHdoZW4geW91IHJlZ2lzdGVyCi1tdWx0aXBsZSBlbnZp
cm9ubWVudHMgZnJvbSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdHMgYW5kIHRoZSBlbnZpcm9u
bWVudHMgaGF2ZQotZGVwZW5kZW5jaWVzIGFtb25nIHRoZW0gKHJlbWVtYmVyIHRoYXQgdGhlIGNv
bXBpbGVyIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBvcmRlcgotaW4gd2hpY2ggZ2xvYmFsIHZhcmlh
YmxlcyBmcm9tIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBhcmUgaW5pdGlhbGl6ZWQpLgot
Ci0jIyBWYWx1ZS1QYXJhbWV0ZXJpemVkIFRlc3RzCi0KLSpWYWx1ZS1wYXJhbWV0ZXJpemVkIHRl
c3RzKiBhbGxvdyB5b3UgdG8gdGVzdCB5b3VyIGNvZGUgd2l0aCBkaWZmZXJlbnQKLXBhcmFtZXRl
cnMgd2l0aG91dCB3cml0aW5nIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgc2FtZSB0ZXN0LiBUaGlz
IGlzIHVzZWZ1bCBpbiBhCi1udW1iZXIgb2Ygc2l0dWF0aW9ucywgZm9yIGV4YW1wbGU6Ci0KLSog
ICBZb3UgaGF2ZSBhIHBpZWNlIG9mIGNvZGUgd2hvc2UgYmVoYXZpb3IgaXMgYWZmZWN0ZWQgYnkg
b25lIG9yIG1vcmUKLSAgICBjb21tYW5kLWxpbmUgZmxhZ3MuIFlvdSB3YW50IHRvIG1ha2Ugc3Vy
ZSB5b3VyIGNvZGUgcGVyZm9ybXMgY29ycmVjdGx5IGZvcgotICAgIHZhcmlvdXMgdmFsdWVzIG9m
IHRob3NlIGZsYWdzLgotKiAgIFlvdSB3YW50IHRvIHRlc3QgZGlmZmVyZW50IGltcGxlbWVudGF0
aW9ucyBvZiBhbiBPTyBpbnRlcmZhY2UuCi0qICAgWW91IHdhbnQgdG8gdGVzdCB5b3VyIGNvZGUg
b3ZlciB2YXJpb3VzIGlucHV0cyAoYS5rLmEuIGRhdGEtZHJpdmVuIHRlc3RpbmcpLgotICAgIFRo
aXMgZmVhdHVyZSBpcyBlYXN5IHRvIGFidXNlLCBzbyBwbGVhc2UgZXhlcmNpc2UgeW91ciBnb29k
IHNlbnNlIHdoZW4gZG9pbmcKLSAgICBpdCEKLQotIyMjIEhvdyB0byBXcml0ZSBWYWx1ZS1QYXJh
bWV0ZXJpemVkIFRlc3RzCi0KLVRvIHdyaXRlIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMsIGZp
cnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVyZSBjbGFzcy4gSXQKLW11c3QgYmUgZGVyaXZl
ZCBmcm9tIGJvdGggYDo6dGVzdGluZzo6VGVzdGAgYW5kCi1gOjp0ZXN0aW5nOjpXaXRoUGFyYW1J
bnRlcmZhY2U8VD5gICh0aGUgbGF0dGVyIGlzIGEgcHVyZSBpbnRlcmZhY2UpLCB3aGVyZSBgVGAK
LWlzIHRoZSB0eXBlIG9mIHlvdXIgcGFyYW1ldGVyIHZhbHVlcy4gRm9yIGNvbnZlbmllbmNlLCB5
b3UgY2FuIGp1c3QgZGVyaXZlIHRoZQotZml4dHVyZSBjbGFzcyBmcm9tIGA6OnRlc3Rpbmc6OlRl
c3RXaXRoUGFyYW08VD5gLCB3aGljaCBpdHNlbGYgaXMgZGVyaXZlZCBmcm9tCi1ib3RoIGA6OnRl
c3Rpbmc6OlRlc3RgIGFuZCBgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8VD5gLiBgVGAg
Y2FuIGJlIGFueQotY29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJl
IHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUKLWxpZmVzcGFuIG9mIHRoZSBwb2ludGVkIHZh
bHVlcy4KLQotTk9URTogSWYgeW91ciB0ZXN0IGZpeHR1cmUgZGVmaW5lcyBgU2V0VXBUZXN0Q2Fz
ZSgpYCBvciBgVGVhckRvd25UZXN0Q2FzZSgpYAotdGhleSBtdXN0IGJlIGRlY2xhcmVkICoqcHVi
bGljKiogcmF0aGVyIHRoYW4gKipwcm90ZWN0ZWQqKiBpbiBvcmRlciB0byB1c2UKLWBURVNUX1Bg
LgotCi1gYGBjKysKLWNsYXNzIEZvb1Rlc3QgOgotICAgIHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08Y29uc3QgY2hhcio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1
c3VhbCBmaXh0dXJlIGNsYXNzIG1lbWJlcnMgaGVyZS4KLSAgLy8gVG8gYWNjZXNzIHRoZSB0ZXN0
IHBhcmFtZXRlciwgY2FsbCBHZXRQYXJhbSgpIGZyb20gY2xhc3MKLSAgLy8gVGVzdFdpdGhQYXJh
bTxUPi4KLX07Ci0KLS8vIE9yLCB3aGVuIHlvdSB3YW50IHRvIGFkZCBwYXJhbWV0ZXJzIHRvIGEg
cHJlLWV4aXN0aW5nIGZpeHR1cmUgY2xhc3M6Ci1jbGFzcyBCYXNlVGVzdCA6IHB1YmxpYyA6OnRl
c3Rpbmc6OlRlc3QgewotICAuLi4KLX07Ci1jbGFzcyBCYXJUZXN0IDogcHVibGljIEJhc2VUZXN0
LAotICAgICAgICAgICAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxj
b25zdCBjaGFyKj4gewotICAuLi4KLX07Ci1gYGAKLQotVGhlbiwgdXNlIHRoZSBgVEVTVF9QYCBt
YWNybyB0byBkZWZpbmUgYXMgbWFueSB0ZXN0IHBhdHRlcm5zIHVzaW5nIHRoaXMgZml4dHVyZQot
YXMgeW91IHdhbnQuIFRoZSBgX1BgIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJw
YXR0ZXJuIiwgd2hpY2hldmVyIHlvdQotcHJlZmVyIHRvIHRoaW5rLgotCi1gYGBjKysKLVRFU1Rf
UChGb29UZXN0LCBEb2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCBhY2Nlc3MgdGhlIHRl
c3QgcGFyYW1ldGVyIHdpdGggdGhlIEdldFBhcmFtKCkgbWV0aG9kCi0gIC8vIG9mIHRoZSBUZXN0
V2l0aFBhcmFtPFQ+IGNsYXNzOgotICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgpKSk7
Ci0gIC4uLgotfQotCi1URVNUX1AoRm9vVGVzdCwgSGFzQmxhaEJsYWgpIHsKLSAgLi4uCi19Ci1g
YGAKLQotRmluYWxseSwgeW91IGNhbiB1c2UgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCB0byBp
bnN0YW50aWF0ZSB0aGUgdGVzdCBjYXNlIHdpdGgKLWFueSBzZXQgb2YgcGFyYW1ldGVycyB5b3Ug
d2FudC4gZ29vZ2xldGVzdCBkZWZpbmVzIGEgbnVtYmVyIG9mIGZ1bmN0aW9ucyBmb3IKLWdlbmVy
YXRpbmcgdGVzdCBwYXJhbWV0ZXJzLiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwgKHN1cnByaXNl
ISkgKnBhcmFtZXRlcgotZ2VuZXJhdG9ycyouIEhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRoZW0sIHdo
aWNoIGFyZSBhbGwgaW4gdGhlIGB0ZXN0aW5nYAotbmFtZXNwYWNlOgotCi18IFBhcmFtZXRlciBH
ZW5lcmF0b3IgICAgICAgICAgfCBCZWhhdmlvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgUmFuZ2UoYmVnaW4sIGVuZCBbLCBz
dGVwXSlgIHwgWWllbGRzIHZhbHVlcyBge2JlZ2luLCBiZWdpbitzdGVwLCBiZWdpbitzdGVwK3N0
ZXAsIC4uLn1gLiBUaGUgdmFsdWVzIGRvIG5vdCBpbmNsdWRlIGBlbmRgLiBgc3RlcGAgZGVmYXVs
dHMgdG8gMS4gICAgICB8Ci18IGBWYWx1ZXModjEsIHYyLCAuLi4sIHZOKWAgICAgfCBZaWVsZHMg
dmFsdWVzIGB7djEsIHYyLCAuLi4sIHZOfWAuICAgICAgICAgIHwKLXwgYFZhbHVlc0luKGNvbnRh
aW5lcilgIGFuZCBgVmFsdWVzSW4oYmVnaW4sZW5kKWAgICB8IFlpZWxkcyB2YWx1ZXMgZnJvbSBh
IEMtc3R5bGUgYXJyYXksIGFuIFNUTC1zdHlsZSBjb250YWluZXIsIG9yIGFuIGl0ZXJhdG9yIHJh
bmdlICBgW2JlZ2luLCBlbmQpYC4gfAotfCBgQm9vbCgpYCAgICAgICAgICAgICAgICAgICAgIHwg
WWllbGRzIHNlcXVlbmNlIGB7ZmFsc2UsIHRydWV9YC4gICAgICAgICAgICB8Ci18IGBDb21iaW5l
KGcxLCBnMiwgLi4uLCBnTilgICAgfCBZaWVsZHMgYWxsIGNvbWJpbmF0aW9ucyAoQ2FydGVzaWFu
IHByb2R1Y3QpIGFzIHN0ZFw6XDp0dXBsZXMgb2YgdGhlIHZhbHVlcyBnZW5lcmF0ZWQgYnkgdGhl
IGBOYCBnZW5lcmF0b3JzLiAgICAgICAgICAgIHwKLQotRm9yIG1vcmUgZGV0YWlscywgc2VlIHRo
ZSBjb21tZW50cyBhdCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zLgotCi1UaGUg
Zm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIGBGb29U
ZXN0YCB0ZXN0IGNhc2UgZWFjaAotd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIGAibWVlbnkiYCwgYCJt
aW55ImAsIGFuZCBgIm1vZSJgLgotCi1gYGBjKysKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKElu
c3RhbnRpYXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKCJtZWVueSIsICJtaW55IiwgIm1v
ZSIpKTsKLWBgYAotCi1OT1RFOiBUaGUgY29kZSBhYm92ZSBtdXN0IGJlIHBsYWNlZCBhdCBnbG9i
YWwgb3IgbmFtZXNwYWNlIHNjb3BlLCBub3QgYXQKLWZ1bmN0aW9uIHNjb3BlLgotCi1OT1RFOiBE
b24ndCBmb3JnZXQgdGhpcyBzdGVwISBJZiB5b3UgZG8geW91ciB0ZXN0IHdpbGwgc2lsZW50bHkg
cGFzcywgYnV0IG5vbmUKLW9mIGl0cyBjYXNlcyB3aWxsIGV2ZXIgcnVuIQotCi1UbyBkaXN0aW5n
dWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJuICh5ZXMsIHlvdSBjYW4gaW5z
dGFudGlhdGUgaXQKLW1vcmUgdGhhbiBvbmNlKSwgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGBJTlNU
QU5USUFURV9URVNUX0NBU0VfUGAgaXMgYSBwcmVmaXgKLXRoYXQgd2lsbCBiZSBhZGRlZCB0byB0
aGUgYWN0dWFsIHRlc3QgY2FzZSBuYW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZQotcHJlZml4
ZXMgZm9yIGRpZmZlcmVudCBpbnN0YW50aWF0aW9ucy4gVGhlIHRlc3RzIGZyb20gdGhlIGluc3Rh
bnRpYXRpb24gYWJvdmUKLXdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLQotKiAgIGBJbnN0YW50aWF0
aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzBgIGZvciBgIm1lZW55ImAKLSogICBgSW5zdGFudGlh
dGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8xYCBmb3IgYCJtaW55ImAKLSogICBgSW5zdGFudGlh
dGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8yYCBmb3IgYCJtb2UiYAotKiAgIGBJbnN0YW50aWF0
aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzBgIGZvciBgIm1lZW55ImAKLSogICBgSW5zdGFu
dGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xYCBmb3IgYCJtaW55ImAKLSogICBgSW5z
dGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8yYCBmb3IgYCJtb2UiYAotCi1Zb3Ug
Y2FuIHVzZSB0aGVzZSBuYW1lcyBpbiBbYC0tZ3Rlc3RfZmlsdGVyYF0oI3J1bm5pbmctYS1zdWJz
ZXQtb2YtdGhlLXRlc3RzKS4KLQotVGhpcyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSBhbGwg
dGVzdHMgZnJvbSBgRm9vVGVzdGAgYWdhaW4sIGVhY2ggd2l0aAotcGFyYW1ldGVyIHZhbHVlcyBg
ImNhdCJgIGFuZCBgImRvZyJgOgotCi1gYGBjKysKLWNvbnN0IGNoYXIqIHBldHNbXSA9IHsiY2F0
IiwgImRvZyJ9OwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5vdGhlckluc3RhbnRpYXRpb25O
YW1lLCBGb29UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJ
bihwZXRzKSk7Ci1gYGAKLQotVGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUg
d2lsbCBoYXZlIHRoZXNlIG5hbWVzOgotCi0qICAgYEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9G
b29UZXN0LkRvZXNCbGFoLzBgIGZvciBgImNhdCJgCi0qICAgYEFub3RoZXJJbnN0YW50aWF0aW9u
TmFtZS9Gb29UZXN0LkRvZXNCbGFoLzFgIGZvciBgImRvZyJgCi0qICAgYEFub3RoZXJJbnN0YW50
aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzBgIGZvciBgImNhdCJgCi0qICAgYEFub3Ro
ZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzFgIGZvciBgImRvZyJgCi0K
LVBsZWFzZSBub3RlIHRoYXQgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCB3aWxsIGluc3RhbnRp
YXRlICphbGwqIHRlc3RzIGluIHRoZQotZ2l2ZW4gdGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRl
ZmluaXRpb25zIGNvbWUgYmVmb3JlIG9yICphZnRlciogdGhlCi1gSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1BgIHN0YXRlbWVudC4KLQotWW91IGNhbiBzZWUgc2FtcGxlN191bml0dGVzdC5jYyBhbmQg
c2FtcGxlOF91bml0dGVzdC5jYyBmb3IgbW9yZSBleGFtcGxlcy4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgTWFjCi0KLSMj
IyBDcmVhdGluZyBWYWx1ZS1QYXJhbWV0ZXJpemVkIEFic3RyYWN0IFRlc3RzCi0KLUluIHRoZSBh
Ym92ZSwgd2UgZGVmaW5lIGFuZCBpbnN0YW50aWF0ZSBgRm9vVGVzdGAgaW4gdGhlICpzYW1lKiBz
b3VyY2UgZmlsZS4KLVNvbWV0aW1lcyB5b3UgbWF5IHdhbnQgdG8gZGVmaW5lIHZhbHVlLXBhcmFt
ZXRlcml6ZWQgdGVzdHMgaW4gYSBsaWJyYXJ5IGFuZCBsZXQKLW90aGVyIHBlb3BsZSBpbnN0YW50
aWF0ZSB0aGVtIGxhdGVyLiBUaGlzIHBhdHRlcm4gaXMga25vd24gYXMgKmFic3RyYWN0IHRlc3Rz
Ki4KLUFzIGFuIGV4YW1wbGUgb2YgaXRzIGFwcGxpY2F0aW9uLCB3aGVuIHlvdSBhcmUgZGVzaWdu
aW5nIGFuIGludGVyZmFjZSB5b3UgY2FuCi13cml0ZSBhIHN0YW5kYXJkIHN1aXRlIG9mIGFic3Ry
YWN0IHRlc3RzIChwZXJoYXBzIHVzaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiBhcwotdGhlIHRlc3Qg
cGFyYW1ldGVyKSB0aGF0IGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGludGVyZmFjZSBhcmUg
ZXhwZWN0ZWQgdG8KLXBhc3MuIFdoZW4gc29tZW9uZSBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2Us
IHRoZXkgY2FuIGluc3RhbnRpYXRlIHlvdXIgc3VpdGUgdG8KLWdldCBhbGwgdGhlIGludGVyZmFj
ZS1jb25mb3JtYW5jZSB0ZXN0cyBmb3IgZnJlZS4KLQotVG8gZGVmaW5lIGFic3RyYWN0IHRlc3Rz
LCB5b3Ugc2hvdWxkIG9yZ2FuaXplIHlvdXIgY29kZSBsaWtlIHRoaXM6Ci0KLTEuICBQdXQgdGhl
IGRlZmluaXRpb24gb2YgdGhlIHBhcmFtZXRlcml6ZWQgdGVzdCBmaXh0dXJlIGNsYXNzIChlLmcu
IGBGb29UZXN0YCkKLSAgICBpbiBhIGhlYWRlciBmaWxlLCBzYXkgYGZvb19wYXJhbV90ZXN0Lmhg
LiBUaGluayBvZiB0aGlzIGFzICpkZWNsYXJpbmcqIHlvdXIKLSAgICBhYnN0cmFjdCB0ZXN0cy4K
LTEuICBQdXQgdGhlIGBURVNUX1BgIGRlZmluaXRpb25zIGluIGBmb29fcGFyYW1fdGVzdC5jY2As
IHdoaWNoIGluY2x1ZGVzCi0gICAgYGZvb19wYXJhbV90ZXN0LmhgLiBUaGluayBvZiB0aGlzIGFz
ICppbXBsZW1lbnRpbmcqIHlvdXIgYWJzdHJhY3QgdGVzdHMuCi0KLU9uY2UgdGhleSBhcmUgZGVm
aW5lZCwgeW91IGNhbiBpbnN0YW50aWF0ZSB0aGVtIGJ5IGluY2x1ZGluZyBgZm9vX3BhcmFtX3Rl
c3QuaGAsCi1pbnZva2luZyBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoKWAsIGFuZCBkZXBlbmRp
bmcgb24gdGhlIGxpYnJhcnkgdGFyZ2V0IHRoYXQKLWNvbnRhaW5zIGBmb29fcGFyYW1fdGVzdC5j
Y2AuIFlvdSBjYW4gaW5zdGFudGlhdGUgdGhlIHNhbWUgYWJzdHJhY3QgdGVzdCBjYXNlCi1tdWx0
aXBsZSB0aW1lcywgcG9zc2libHkgaW4gZGlmZmVyZW50IHNvdXJjZSBmaWxlcy4KLQotIyMjIFNw
ZWNpZnlpbmcgTmFtZXMgZm9yIFZhbHVlLVBhcmFtZXRlcml6ZWQgVGVzdCBQYXJhbWV0ZXJzCi0K
LVRoZSBvcHRpb25hbCBsYXN0IGFyZ3VtZW50IHRvIGBJTlNUQU5USUFURV9URVNUX0NBU0VfUCgp
YCBhbGxvd3MgdGhlIHVzZXIgdG8KLXNwZWNpZnkgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHRoYXQg
Z2VuZXJhdGVzIGN1c3RvbSB0ZXN0IG5hbWUgc3VmZml4ZXMgYmFzZWQgb24KLXRoZSB0ZXN0IHBh
cmFtZXRlcnMuIFRoZSBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IG9uZSBhcmd1bWVudCBvZiB0eXBl
Ci1gdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+YCwgYW5kIHJldHVybiBg
c3RkOjpzdHJpbmdgLgotCi1gdGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZWAgaXMgYSBi
dWlsdGluIHRlc3Qgc3VmZml4IGdlbmVyYXRvciB0aGF0Ci1yZXR1cm5zIHRoZSB2YWx1ZSBvZiBg
dGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKWAuIEl0IGRvZXMgbm90IHdvcmsgZm9y
Ci1gc3RkOjpzdHJpbmdgIG9yIEMgc3RyaW5ncy4KLQotTk9URTogdGVzdCBuYW1lcyBtdXN0IGJl
IG5vbi1lbXB0eSwgdW5pcXVlLCBhbmQgbWF5IG9ubHkgY29udGFpbiBBU0NJSQotYWxwaGFudW1l
cmljIGNoYXJhY3RlcnMuIEluIHBhcnRpY3VsYXIsIHRoZXkgW3Nob3VsZCBub3QgY29udGFpbgot
dW5kZXJzY29yZXNdKGh0dHBzOi8vZzNkb2MuY29ycC5nb29nbGUuY29tL3RoaXJkX3BhcnR5L2dv
b2dsZXRlc3QvZ29vZ2xldGVzdC9nM2RvYy9mYXEubWQjbm8tdW5kZXJzY29yZXMpLgotCi1gYGBj
KysKLWNsYXNzIE15VGVzdENhc2UgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+
IHt9OwotCi1URVNUX1AoTXlUZXN0Q2FzZSwgTXlUZXN0KQotewotICBzdGQ6OmNvdXQgPDwgIkV4
YW1wbGUgVGVzdCBQYXJhbTogIiA8PCBHZXRQYXJhbSgpIDw8IHN0ZDo6ZW5kbDsKLX0KLQotSU5T
VEFOVElBVEVfVEVTVF9DQVNFX1AoTXlHcm91cCwgTXlUZXN0Q2FzZSwgdGVzdGluZzo6UmFuZ2Uo
MCwgMTApLAotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6UHJpbnRUb1N0cmluZ1Bh
cmFtTmFtZSgpKTsKLWBgYAotCi0jIyBUeXBlZCBUZXN0czwvaWQ+Ci0KLVN1cHBvc2UgeW91IGhh
dmUgbXVsdGlwbGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzYW1lIGludGVyZmFjZSBhbmQgd2Fu
dCB0byBtYWtlCi1zdXJlIHRoYXQgYWxsIG9mIHRoZW0gc2F0aXNmeSBzb21lIGNvbW1vbiByZXF1
aXJlbWVudHMuIE9yLCB5b3UgbWF5IGhhdmUgZGVmaW5lZAotc2V2ZXJhbCB0eXBlcyB0aGF0IGFy
ZSBzdXBwb3NlZCB0byBjb25mb3JtIHRvIHRoZSBzYW1lICJjb25jZXB0IiBhbmQgeW91IHdhbnQg
dG8KLXZlcmlmeSBpdC4gSW4gYm90aCBjYXNlcywgeW91IHdhbnQgdGhlIHNhbWUgdGVzdCBsb2dp
YyByZXBlYXRlZCBmb3IgZGlmZmVyZW50Ci10eXBlcy4KLQotV2hpbGUgeW91IGNhbiB3cml0ZSBv
bmUgYFRFU1RgIG9yIGBURVNUX0ZgIGZvciBlYWNoIHR5cGUgeW91IHdhbnQgdG8gdGVzdCAoYW5k
Ci15b3UgbWF5IGV2ZW4gZmFjdG9yIHRoZSB0ZXN0IGxvZ2ljIGludG8gYSBmdW5jdGlvbiB0ZW1w
bGF0ZSB0aGF0IHlvdSBpbnZva2UgZnJvbQotdGhlIGBURVNUYCksIGl0J3MgdGVkaW91cyBhbmQg
ZG9lc24ndCBzY2FsZTogaWYgeW91IHdhbnQgYG1gIHRlc3RzIG92ZXIgYG5gCi10eXBlcywgeW91
J2xsIGVuZCB1cCB3cml0aW5nIGBtKm5gIGBURVNUYHMuCi0KLSpUeXBlZCB0ZXN0cyogYWxsb3cg
eW91IHRvIHJlcGVhdCB0aGUgc2FtZSB0ZXN0IGxvZ2ljIG92ZXIgYSBsaXN0IG9mIHR5cGVzLiBZ
b3UKLW9ubHkgbmVlZCB0byB3cml0ZSB0aGUgdGVzdCBsb2dpYyBvbmNlLCBhbHRob3VnaCB5b3Ug
bXVzdCBrbm93IHRoZSB0eXBlIGxpc3QKLXdoZW4gd3JpdGluZyB0eXBlZCB0ZXN0cy4gSGVyZSdz
IGhvdyB5b3UgZG8gaXQ6Ci0KLUZpcnN0LCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRl
LiBJdCBzaG91bGQgYmUgcGFyYW1ldGVyaXplZCBieSBhIHR5cGUuCi1SZW1lbWJlciB0byBkZXJp
dmUgaXQgZnJvbSBgOjp0ZXN0aW5nOjpUZXN0YDoKLQotYGBgYysrCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBwdWJsaWM6
Ci0gIC4uLgotICB0eXBlZGVmIHN0ZDo6bGlzdDxUPiBMaXN0OwotICBzdGF0aWMgVCBzaGFyZWRf
OwotICBUIHZhbHVlXzsKLX07Ci1gYGAKLQotTmV4dCwgYXNzb2NpYXRlIGEgbGlzdCBvZiB0eXBl
cyB3aXRoIHRoZSB0ZXN0IGNhc2UsIHdoaWNoIHdpbGwgYmUgcmVwZWF0ZWQgZm9yCi1lYWNoIHR5
cGUgaW4gdGhlIGxpc3Q6Ci0KLWBgYGMrKwotdXNpbmcgTXlUeXBlcyA9IDo6dGVzdGluZzo6VHlw
ZXM8Y2hhciwgaW50LCB1bnNpZ25lZCBpbnQ+OwotVFlQRURfVEVTVF9DQVNFKEZvb1Rlc3QsIE15
VHlwZXMpOwotYGBgCi0KLVRoZSB0eXBlIGFsaWFzIChgdXNpbmdgIG9yIGB0eXBlZGVmYCkgaXMg
bmVjZXNzYXJ5IGZvciB0aGUgYFRZUEVEX1RFU1RfQ0FTRWAKLW1hY3JvIHRvIHBhcnNlIGNvcnJl
Y3RseS4gT3RoZXJ3aXNlIHRoZSBjb21waWxlciB3aWxsIHRoaW5rIHRoYXQgZWFjaCBjb21tYSBp
bgotdGhlIHR5cGUgbGlzdCBpbnRyb2R1Y2VzIGEgbmV3IG1hY3JvIGFyZ3VtZW50LgotCi1UaGVu
LCB1c2UgYFRZUEVEX1RFU1QoKWAgaW5zdGVhZCBvZiBgVEVTVF9GKClgIHRvIGRlZmluZSBhIHR5
cGVkIHRlc3QgZm9yIHRoaXMKLXRlc3QgY2FzZS4gWW91IGNhbiByZXBlYXQgdGhpcyBhcyBtYW55
IHRpbWVzIGFzIHlvdSB3YW50OgotCi1gYGBjKysKLVRZUEVEX1RFU1QoRm9vVGVzdCwgRG9lc0Js
YWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gdGhlIHNwZWNpYWwgbmFtZSBUeXBl
UGFyYW0gdG8gZ2V0IHRoZSB0eXBlCi0gIC8vIHBhcmFtZXRlci4gIFNpbmNlIHdlIGFyZSBpbnNp
ZGUgYSBkZXJpdmVkIGNsYXNzIHRlbXBsYXRlLCBDKysgcmVxdWlyZXMKLSAgLy8gdXMgdG8gdmlz
aXQgdGhlIG1lbWJlcnMgb2YgRm9vVGVzdCB2aWEgJ3RoaXMnLgotICBUeXBlUGFyYW0gbiA9IHRo
aXMtPnZhbHVlXzsKLQotICAvLyBUbyB2aXNpdCBzdGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVy
ZSwgYWRkIHRoZSAnVGVzdEZpeHR1cmU6OicKLSAgLy8gcHJlZml4LgotICBuICs9IFRlc3RGaXh0
dXJlOjpzaGFyZWRfOwotCi0gIC8vIFRvIHJlZmVyIHRvIHR5cGVkZWZzIGluIHRoZSBmaXh0dXJl
LCBhZGQgdGhlICd0eXBlbmFtZSBUZXN0Rml4dHVyZTo6JwotICAvLyBwcmVmaXguICBUaGUgJ3R5
cGVuYW1lJyBpcyByZXF1aXJlZCB0byBzYXRpc2Z5IHRoZSBjb21waWxlci4KLSAgdHlwZW5hbWUg
VGVzdEZpeHR1cmU6Okxpc3QgdmFsdWVzOwotCi0gIHZhbHVlcy5wdXNoX2JhY2sobik7Ci0gIC4u
LgotfQotCi1UWVBFRF9URVNUKEZvb1Rlc3QsIEhhc1Byb3BlcnR5QSkgeyAuLi4gfQotYGBgCi0K
LVlvdSBjYW4gc2VlIHNhbXBsZTZfdW5pdHRlc3QuY2MKLQotKipBdmFpbGFiaWxpdHkqKjogTGlu
dXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgTWFjCi0KLSMjIFR5cGUt
UGFyYW1ldGVyaXplZCBUZXN0cwotCi0qVHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzKiBhcmUgbGlr
ZSB0eXBlZCB0ZXN0cywgZXhjZXB0IHRoYXQgdGhleSBkb24ndCByZXF1aXJlCi15b3UgdG8ga25v
dyB0aGUgbGlzdCBvZiB0eXBlcyBhaGVhZCBvZiB0aW1lLiBJbnN0ZWFkLCB5b3UgY2FuIGRlZmlu
ZSB0aGUgdGVzdAotbG9naWMgZmlyc3QgYW5kIGluc3RhbnRpYXRlIGl0IHdpdGggZGlmZmVyZW50
IHR5cGUgbGlzdHMgbGF0ZXIuIFlvdSBjYW4gZXZlbgotaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFu
IG9uY2UgaW4gdGhlIHNhbWUgcHJvZ3JhbS4KLQotSWYgeW91IGFyZSBkZXNpZ25pbmcgYW4gaW50
ZXJmYWNlIG9yIGNvbmNlcHQsIHlvdSBjYW4gZGVmaW5lIGEgc3VpdGUgb2YKLXR5cGUtcGFyYW1l
dGVyaXplZCB0ZXN0cyB0byB2ZXJpZnkgcHJvcGVydGllcyB0aGF0IGFueSB2YWxpZCBpbXBsZW1l
bnRhdGlvbiBvZgotdGhlIGludGVyZmFjZS9jb25jZXB0IHNob3VsZCBoYXZlLiBUaGVuLCB0aGUg
YXV0aG9yIG9mIGVhY2ggaW1wbGVtZW50YXRpb24gY2FuCi1qdXN0IGluc3RhbnRpYXRlIHRoZSB0
ZXN0IHN1aXRlIHdpdGggdGhlaXIgdHlwZSB0byB2ZXJpZnkgdGhhdCBpdCBjb25mb3JtcyB0bwot
dGhlIHJlcXVpcmVtZW50cywgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgc2ltaWxhciB0ZXN0cyBy
ZXBlYXRlZGx5LiBIZXJlJ3MgYW4KLWV4YW1wbGU6Ci0KLUZpcnN0LCBkZWZpbmUgYSBmaXh0dXJl
IGNsYXNzIHRlbXBsYXRlLCBhcyB3ZSBkaWQgd2l0aCB0eXBlZCB0ZXN0czoKLQotYGBgYysrCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpU
ZXN0IHsKLSAgLi4uCi19OwotYGBgCi0KLU5leHQsIGRlY2xhcmUgdGhhdCB5b3Ugd2lsbCBkZWZp
bmUgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlOgotCi1gYGBjKysKLVRZUEVEX1RFU1Rf
Q0FTRV9QKEZvb1Rlc3QpOwotYGBgCi0KLVRoZW4sIHVzZSBgVFlQRURfVEVTVF9QKClgIHRvIGRl
ZmluZSBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LiBZb3UgY2FuIHJlcGVhdAotdGhpcyBhcyBt
YW55IHRpbWVzIGFzIHlvdSB3YW50OgotCi1gYGBjKysKLVRZUEVEX1RFU1RfUChGb29UZXN0LCBE
b2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byBUeXBlUGFyYW0gdG8gZ2V0
IHRoZSB0eXBlIHBhcmFtZXRlci4KLSAgVHlwZVBhcmFtIG4gPSAwOwotICAuLi4KLX0KLQotVFlQ
RURfVEVTVF9QKEZvb1Rlc3QsIEhhc1Byb3BlcnR5QSkgeyAuLi4gfQotYGBgCi0KLU5vdyB0aGUg
dHJpY2t5IHBhcnQ6IHlvdSBuZWVkIHRvIHJlZ2lzdGVyIGFsbCB0ZXN0IHBhdHRlcm5zIHVzaW5n
IHRoZQotYFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QYCBtYWNybyBiZWZvcmUgeW91IGNhbiBp
bnN0YW50aWF0ZSB0aGVtLiBUaGUgZmlyc3QKLWFyZ3VtZW50IG9mIHRoZSBtYWNybyBpcyB0aGUg
dGVzdCBjYXNlIG5hbWU7IHRoZSByZXN0IGFyZSB0aGUgbmFtZXMgb2YgdGhlIHRlc3RzCi1pbiB0
aGlzIHRlc3QgY2FzZToKLQotYGBgYysrCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChGb29U
ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9lc0JsYWgsIEhhc1Byb3BlcnR5QSk7
Ci1gYGAKLQotRmluYWxseSwgeW91IGFyZSBmcmVlIHRvIGluc3RhbnRpYXRlIHRoZSBwYXR0ZXJu
IHdpdGggdGhlIHR5cGVzIHlvdSB3YW50LiBJZiB5b3UKLXB1dCB0aGUgYWJvdmUgY29kZSBpbiBh
IGhlYWRlciBmaWxlLCB5b3UgY2FuIGAjaW5jbHVkZWAgaXQgaW4gbXVsdGlwbGUgQysrCi1zb3Vy
Y2UgZmlsZXMgYW5kIGluc3RhbnRpYXRlIGl0IG11bHRpcGxlIHRpbWVzLgotCi1gYGBjKysKLXR5
cGVkZWYgOjp0ZXN0aW5nOjpUeXBlczxjaGFyLCBpbnQsIHVuc2lnbmVkIGludD4gTXlUeXBlczsK
LUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKLWBg
YAotCi1UbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJuLCB0
aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlCi1gSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1Bg
IG1hY3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLWFjdHVhbCB0ZXN0
IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVu
dCBpbnN0YW5jZXMuCi0KLUluIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgdGhlIHR5cGUgbGlzdCBj
b250YWlucyBvbmx5IG9uZSB0eXBlLCB5b3UgY2FuIHdyaXRlCi10aGF0IHR5cGUgZGlyZWN0bHkg
d2l0aG91dCBgOjp0ZXN0aW5nOjpUeXBlczwuLi4+YCwgbGlrZSB0aGlzOgotCi1gYGBjKysKLUlO
U1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBGb29UZXN0LCBpbnQpOwotYGBgCi0KLVlv
dSBjYW4gc2VlIGBzYW1wbGU2X3VuaXR0ZXN0LmNjYCBmb3IgYSBjb21wbGV0ZSBleGFtcGxlLgot
Ci0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cyAocmVxdWlyZXMgTVNWQyA4LjAgb3Ig
YWJvdmUpLCBNYWMKLQotIyMgVGVzdGluZyBQcml2YXRlIENvZGUKLQotSWYgeW91IGNoYW5nZSB5
b3VyIHNvZnR3YXJlJ3MgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24sIHlvdXIgdGVzdHMgc2hvdWxk
IG5vdAotYnJlYWsgYXMgbG9uZyBhcyB0aGUgY2hhbmdlIGlzIG5vdCBvYnNlcnZhYmxlIGJ5IHVz
ZXJzLiBUaGVyZWZvcmUsICoqcGVyIHRoZQotYmxhY2stYm94IHRlc3RpbmcgcHJpbmNpcGxlLCBt
b3N0IG9mIHRoZSB0aW1lIHlvdSBzaG91bGQgdGVzdCB5b3VyIGNvZGUgdGhyb3VnaAotaXRzIHB1
YmxpYyBpbnRlcmZhY2VzLioqCi0KLSoqSWYgeW91IHN0aWxsIGZpbmQgeW91cnNlbGYgbmVlZGlu
ZyB0byB0ZXN0IGludGVybmFsIGltcGxlbWVudGF0aW9uIGNvZGUsCi1jb25zaWRlciBpZiB0aGVy
ZSdzIGEgYmV0dGVyIGRlc2lnbi4qKiBUaGUgZGVzaXJlIHRvIHRlc3QgaW50ZXJuYWwKLWltcGxl
bWVudGF0aW9uIGlzIG9mdGVuIGEgc2lnbiB0aGF0IHRoZSBjbGFzcyBpcyBkb2luZyB0b28gbXVj
aC4gQ29uc2lkZXIKLWV4dHJhY3RpbmcgYW4gaW1wbGVtZW50YXRpb24gY2xhc3MsIGFuZCB0ZXN0
aW5nIGl0LiBUaGVuIHVzZSB0aGF0IGltcGxlbWVudGF0aW9uCi1jbGFzcyBpbiB0aGUgb3JpZ2lu
YWwgY2xhc3MuCi0KLUlmIHlvdSBhYnNvbHV0ZWx5IGhhdmUgdG8gdGVzdCBub24tcHVibGljIGlu
dGVyZmFjZSBjb2RlIHRob3VnaCwgeW91IGNhbi4gVGhlcmUKLWFyZSB0d28gY2FzZXMgdG8gY29u
c2lkZXI6Ci0KLSogICBTdGF0aWMgZnVuY3Rpb25zICggKm5vdCogdGhlIHNhbWUgYXMgc3RhdGlj
IG1lbWJlciBmdW5jdGlvbnMhKSBvciB1bm5hbWVkCi0gICAgbmFtZXNwYWNlcywgYW5kCi0qICAg
UHJpdmF0ZSBvciBwcm90ZWN0ZWQgY2xhc3MgbWVtYmVycwotCi1UbyB0ZXN0IHRoZW0sIHdlIHVz
ZSB0aGUgZm9sbG93aW5nIHNwZWNpYWwgdGVjaG5pcXVlczoKLQotKiAgIEJvdGggc3RhdGljIGZ1
bmN0aW9ucyBhbmQgZGVmaW5pdGlvbnMvZGVjbGFyYXRpb25zIGluIGFuIHVubmFtZWQgbmFtZXNw
YWNlCi0gICAgYXJlIG9ubHkgdmlzaWJsZSB3aXRoaW4gdGhlIHNhbWUgdHJhbnNsYXRpb24gdW5p
dC4gVG8gdGVzdCB0aGVtLCB5b3UgY2FuCi0gICAgYCNpbmNsdWRlYCB0aGUgZW50aXJlIGAuY2Ng
IGZpbGUgYmVpbmcgdGVzdGVkIGluIHlvdXIgYCpfdGVzdC5jY2AgZmlsZS4KLSAgICAoaW5jbHVk
aW5nIGAuY2NgIGZpbGVzIGlzIG5vdCBhIGdvb2Qgd2F5IHRvIHJldXNlIGNvZGUgLSB5b3Ugc2hv
dWxkIG5vdCBkbwotICAgIHRoaXMgaW4gcHJvZHVjdGlvbiBjb2RlISkKLQotICAgIEhvd2V2ZXIs
IGEgYmV0dGVyIGFwcHJvYWNoIGlzIHRvIG1vdmUgdGhlIHByaXZhdGUgY29kZSBpbnRvIHRoZQot
ICAgIGBmb286OmludGVybmFsYCBuYW1lc3BhY2UsIHdoZXJlIGBmb29gIGlzIHRoZSBuYW1lc3Bh
Y2UgeW91ciBwcm9qZWN0Ci0gICAgbm9ybWFsbHkgdXNlcywgYW5kIHB1dCB0aGUgcHJpdmF0ZSBk
ZWNsYXJhdGlvbnMgaW4gYSBgKi1pbnRlcm5hbC5oYCBmaWxlLgotICAgIFlvdXIgcHJvZHVjdGlv
biBgLmNjYCBmaWxlcyBhbmQgeW91ciB0ZXN0cyBhcmUgYWxsb3dlZCB0byBpbmNsdWRlIHRoaXMK
LSAgICBpbnRlcm5hbCBoZWFkZXIsIGJ1dCB5b3VyIGNsaWVudHMgYXJlIG5vdC4gVGhpcyB3YXks
IHlvdSBjYW4gZnVsbHkgdGVzdCB5b3VyCi0gICAgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gd2l0
aG91dCBsZWFraW5nIGl0IHRvIHlvdXIgY2xpZW50cy4KLQotKiAgIFByaXZhdGUgY2xhc3MgbWVt
YmVycyBhcmUgb25seSBhY2Nlc3NpYmxlIGZyb20gd2l0aGluIHRoZSBjbGFzcyBvciBieQotICAg
IGZyaWVuZHMuIFRvIGFjY2VzcyBhIGNsYXNzJyBwcml2YXRlIG1lbWJlcnMsIHlvdSBjYW4gZGVj
bGFyZSB5b3VyIHRlc3QKLSAgICBmaXh0dXJlIGFzIGEgZnJpZW5kIHRvIHRoZSBjbGFzcyBhbmQg
ZGVmaW5lIGFjY2Vzc29ycyBpbiB5b3VyIGZpeHR1cmUuIFRlc3RzCi0gICAgdXNpbmcgdGhlIGZp
eHR1cmUgY2FuIHRoZW4gYWNjZXNzIHRoZSBwcml2YXRlIG1lbWJlcnMgb2YgeW91ciBwcm9kdWN0
aW9uCi0gICAgY2xhc3MgdmlhIHRoZSBhY2Nlc3NvcnMgaW4gdGhlIGZpeHR1cmUuIE5vdGUgdGhh
dCBldmVuIHRob3VnaCB5b3VyIGZpeHR1cmUKLSAgICBpcyBhIGZyaWVuZCB0byB5b3VyIHByb2R1
Y3Rpb24gY2xhc3MsIHlvdXIgdGVzdHMgYXJlIG5vdCBhdXRvbWF0aWNhbGx5Ci0gICAgZnJpZW5k
cyB0byBpdCwgYXMgdGhleSBhcmUgdGVjaG5pY2FsbHkgZGVmaW5lZCBpbiBzdWItY2xhc3NlcyBv
ZiB0aGUKLSAgICBmaXh0dXJlLgotCi0gICAgQW5vdGhlciB3YXkgdG8gdGVzdCBwcml2YXRlIG1l
bWJlcnMgaXMgdG8gcmVmYWN0b3IgdGhlbSBpbnRvIGFuCi0gICAgaW1wbGVtZW50YXRpb24gY2xh
c3MsIHdoaWNoIGlzIHRoZW4gZGVjbGFyZWQgaW4gYSBgKi1pbnRlcm5hbC5oYCBmaWxlLiBZb3Vy
Ci0gICAgY2xpZW50cyBhcmVuJ3QgYWxsb3dlZCB0byBpbmNsdWRlIHRoaXMgaGVhZGVyIGJ1dCB5
b3VyIHRlc3RzIGNhbi4gU3VjaCBpcwotICAgIGNhbGxlZCB0aGUKLSAgICBbUGltcGxdKGh0dHBz
Oi8vd3d3LmdhbWVkZXYubmV0L2FydGljbGVzL3Byb2dyYW1taW5nL2dlbmVyYWwtYW5kLWdhbWVw
bGF5LXByb2dyYW1taW5nL3RoZS1jLXBpbXBsLXIxNzk0LykKLSAgICAoUHJpdmF0ZSBJbXBsZW1l
bnRhdGlvbikgaWRpb20uCi0KLSAgICBPciwgeW91IGNhbiBkZWNsYXJlIGFuIGluZGl2aWR1YWwg
dGVzdCBhcyBhIGZyaWVuZCBvZiB5b3VyIGNsYXNzIGJ5IGFkZGluZwotICAgIHRoaXMgbGluZSBp
biB0aGUgY2xhc3MgYm9keToKLQotICAgIGBgYGMrKwotICAgICAgICBGUklFTkRfVEVTVChUZXN0
Q2FzZU5hbWUsIFRlc3ROYW1lKTsKLSAgICBgYGAKLQotICAgIEZvciBleGFtcGxlLAotCi0gICAg
YGBgYysrCi0gICAgLy8gZm9vLmgKLQotICAgICNpbmNsdWRlICJndGVzdC9ndGVzdF9wcm9kLmgi
Ci0KLSAgICBjbGFzcyBGb28gewotICAgICAgLi4uCi0gICAgcHJpdmF0ZToKLSAgICAgIEZSSUVO
RF9URVNUKEZvb1Rlc3QsIEJhclJldHVybnNaZXJvT25OdWxsKTsKLQotICAgICAgaW50IEJhcih2
b2lkKiB4KTsKLSAgICB9OwotCi0gICAgLy8gZm9vX3Rlc3QuY2MKLSAgICAuLi4KLSAgICBURVNU
KEZvb1Rlc3QsIEJhclJldHVybnNaZXJvT25OdWxsKSB7Ci0gICAgICBGb28gZm9vOwotICAgICAg
RVhQRUNUX0VRKDAsIGZvby5CYXIoTlVMTCkpOyAgLy8gVXNlcyBGb28ncyBwcml2YXRlIG1lbWJl
ciBCYXIoKS4KLSAgICB9Ci0gICAgYGBgCi0KLSAgICBQYXkgc3BlY2lhbCBhdHRlbnRpb24gd2hl
biB5b3VyIGNsYXNzIGlzIGRlZmluZWQgaW4gYSBuYW1lc3BhY2UsIGFzIHlvdQotICAgIHNob3Vs
ZCBkZWZpbmUgeW91ciB0ZXN0IGZpeHR1cmVzIGFuZCB0ZXN0cyBpbiB0aGUgc2FtZSBuYW1lc3Bh
Y2UgaWYgeW91IHdhbnQKLSAgICB0aGVtIHRvIGJlIGZyaWVuZHMgb2YgeW91ciBjbGFzcy4gRm9y
IGV4YW1wbGUsIGlmIHRoZSBjb2RlIHRvIGJlIHRlc3RlZAotICAgIGxvb2tzIGxpa2U6Ci0KLSAg
ICBgYGBjKysKLSAgICBuYW1lc3BhY2UgbXlfbmFtZXNwYWNlIHsKLQotICAgIGNsYXNzIEZvbyB7
Ci0gICAgICBmcmllbmQgY2xhc3MgRm9vVGVzdDsKLSAgICAgIEZSSUVORF9URVNUKEZvb1Rlc3Qs
IEJhcik7Ci0gICAgICBGUklFTkRfVEVTVChGb29UZXN0LCBCYXopOwotICAgICAgLi4uIGRlZmlu
aXRpb24gb2YgdGhlIGNsYXNzIEZvbyAuLi4KLSAgICB9OwotCi0gICAgfSAgLy8gbmFtZXNwYWNl
IG15X25hbWVzcGFjZQotICAgIGBgYAotCi0gICAgWW91ciB0ZXN0IGNvZGUgc2hvdWxkIGJlIHNv
bWV0aGluZyBsaWtlOgotCi0gICAgYGBgYysrCi0gICAgbmFtZXNwYWNlIG15X25hbWVzcGFjZSB7
Ci0KLSAgICBjbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gICAgIHBy
b3RlY3RlZDoKLSAgICAgIC4uLgotICAgIH07Ci0KLSAgICBURVNUX0YoRm9vVGVzdCwgQmFyKSB7
IC4uLiB9Ci0gICAgVEVTVF9GKEZvb1Rlc3QsIEJheikgeyAuLi4gfQotCi0gICAgfSAgLy8gbmFt
ZXNwYWNlIG15X25hbWVzcGFjZQotICAgIGBgYAotCi0KLSMjICJDYXRjaGluZyIgRmFpbHVyZXMK
LQotSWYgeW91IGFyZSBidWlsZGluZyBhIHRlc3RpbmcgdXRpbGl0eSBvbiB0b3Agb2YgZ29vZ2xl
dGVzdCwgeW91J2xsIHdhbnQgdG8gdGVzdAoteW91ciB1dGlsaXR5LiBXaGF0IGZyYW1ld29yayB3
b3VsZCB5b3UgdXNlIHRvIHRlc3QgaXQ/IGdvb2dsZXRlc3QsIG9mIGNvdXJzZS4KLQotVGhlIGNo
YWxsZW5nZSBpcyB0byB2ZXJpZnkgdGhhdCB5b3VyIHRlc3RpbmcgdXRpbGl0eSByZXBvcnRzIGZh
aWx1cmVzIGNvcnJlY3RseS4KLUluIGZyYW1ld29ya3MgdGhhdCByZXBvcnQgYSBmYWlsdXJlIGJ5
IHRocm93aW5nIGFuIGV4Y2VwdGlvbiwgeW91IGNvdWxkIGNhdGNoCi10aGUgZXhjZXB0aW9uIGFu
ZCBhc3NlcnQgb24gaXQuIEJ1dCBnb29nbGV0ZXN0IGRvZXNuJ3QgdXNlIGV4Y2VwdGlvbnMsIHNv
IGhvdyBkbwotd2UgdGVzdCB0aGF0IGEgcGllY2Ugb2YgY29kZSBnZW5lcmF0ZXMgYW4gZXhwZWN0
ZWQgZmFpbHVyZT8KLQotZ3VuaXQtc3BpLmggY29udGFpbnMgc29tZSBjb25zdHJ1Y3RzIHRvIGRv
IHRoaXMuIEFmdGVyICNpbmNsdWRpbmcgdGhpcyBoZWFkZXIsCi15b3UgY2FuIHVzZQotCi1gYGBj
KysKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50LCBzdWJzdHJpbmcpOwotYGBgCi0K
LXRvIGFzc2VydCB0aGF0IGBzdGF0ZW1lbnRgIGdlbmVyYXRlcyBhIGZhdGFsIChlLmcuIGBBU1NF
UlRfKmApIGZhaWx1cmUgaW4gdGhlCi1jdXJyZW50IHRocmVhZCB3aG9zZSBtZXNzYWdlIGNvbnRh
aW5zIHRoZSBnaXZlbiBgc3Vic3RyaW5nYCwgb3IgdXNlCi0KLWBgYGMrKwotICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShzdGF0ZW1lbnQsIHN1YnN0cmluZyk7Ci1gYGAKLQotaWYgeW91IGFyZSBl
eHBlY3RpbmcgYSBub24tZmF0YWwgKGUuZy4gYEVYUEVDVF8qYCkgZmFpbHVyZS4KLQotT25seSBm
YWlsdXJlcyBpbiB0aGUgY3VycmVudCB0aHJlYWQgYXJlIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIHRo
ZSByZXN1bHQgb2YgdGhpcwotdHlwZSBvZiBleHBlY3RhdGlvbnMuIElmIGBzdGF0ZW1lbnRgIGNy
ZWF0ZXMgbmV3IHRocmVhZHMsIGZhaWx1cmVzIGluIHRoZXNlCi10aHJlYWRzIGFyZSBhbHNvIGln
bm9yZWQuIElmIHlvdSB3YW50IHRvIGNhdGNoIGZhaWx1cmVzIGluIG90aGVyIHRocmVhZHMgYXMK
LXdlbGwsIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBtYWNyb3MgaW5zdGVhZDoKLQotYGBgYysr
Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKHN0YXRlbWVudCwgc3Vic3Ry
aW5nKTsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMoc3RhdGVtZW50
LCBzdWJzdHJpbmcpOwotYGBgCi0KLU5PVEU6IEFzc2VydGlvbnMgZnJvbSBtdWx0aXBsZSB0aHJl
YWRzIGFyZSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzLgotCi1Gb3IgdGVjaG5p
Y2FsIHJlYXNvbnMsIHRoZXJlIGFyZSBzb21lIGNhdmVhdHM6Ci0KLTEuICBZb3UgY2Fubm90IHN0
cmVhbSBhIGZhaWx1cmUgbWVzc2FnZSB0byBlaXRoZXIgbWFjcm8uCi0KLTEuICBgc3RhdGVtZW50
YCBpbiBgRVhQRUNUX0ZBVEFMX0ZBSUxVUkV7X09OX0FMTF9USFJFQURTfSgpYCBjYW5ub3QgcmVm
ZXJlbmNlCi0gICAgbG9jYWwgbm9uLXN0YXRpYyB2YXJpYWJsZXMgb3Igbm9uLXN0YXRpYyBtZW1i
ZXJzIG9mIGB0aGlzYCBvYmplY3QuCi0KLTEuICBgc3RhdGVtZW50YCBpbiBgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkV7X09OX0FMTF9USFJFQURTfSgpKClgIGNhbm5vdCByZXR1cm4gYQotICAgIHZhbHVl
LgotCi0KLSMjIEdldHRpbmcgdGhlIEN1cnJlbnQgVGVzdCdzIE5hbWUKLQotU29tZXRpbWVzIGEg
ZnVuY3Rpb24gbWF5IG5lZWQgdG8ga25vdyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5p
bmcgdGVzdC4KLUZvciBleGFtcGxlLCB5b3UgbWF5IGJlIHVzaW5nIHRoZSBgU2V0VXAoKWAgbWV0
aG9kIG9mIHlvdXIgdGVzdCBmaXh0dXJlIHRvIHNldAotdGhlIGdvbGRlbiBmaWxlIG5hbWUgYmFz
ZWQgb24gd2hpY2ggdGVzdCBpcyBydW5uaW5nLiBUaGUgYDo6dGVzdGluZzo6VGVzdEluZm9gCi1j
bGFzcyBoYXMgdGhpcyBpbmZvcm1hdGlvbjoKLQotYGBgYysrCi1uYW1lc3BhY2UgdGVzdGluZyB7
Ci0KLWNsYXNzIFRlc3RJbmZvIHsKLSBwdWJsaWM6Ci0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2Fz
ZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLCByZXNwZWN0aXZlbHkuCi0gIC8vCi0gIC8vIERvIE5P
VCBkZWxldGUgb3IgZnJlZSB0aGUgcmV0dXJuIHZhbHVlIC0gaXQncyBtYW5hZ2VkIGJ5IHRoZQot
ICAvLyBUZXN0SW5mbyBjbGFzcy4KLSAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25z
dDsKLSAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0OwotfTsKLQotfQotYGBgCi0KLVRvIG9idGFp
biBhIGBUZXN0SW5mb2Agb2JqZWN0IGZvciB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCwgY2Fs
bAotYGN1cnJlbnRfdGVzdF9pbmZvKClgIG9uIHRoZSBgVW5pdFRlc3RgIHNpbmdsZXRvbiBvYmpl
Y3Q6Ci0KLWBgYGMrKwotICAvLyBHZXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkg
cnVubmluZyB0ZXN0LgotICAvLyBEbyBOT1QgZGVsZXRlIHRoZSByZXR1cm5lZCBvYmplY3QgLSBp
dCdzIG1hbmFnZWQgYnkgdGhlIFVuaXRUZXN0IGNsYXNzLgotICBjb25zdCA6OnRlc3Rpbmc6OlRl
c3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0KLQotCi0gIHByaW50ZigiV2UgYXJlIGlu
IHRlc3QgJXMgb2YgdGVzdCBjYXNlICVzLlxuIiwKLSAgICAgICAgIHRlc3RfaW5mby0+bmFtZSgp
LAotICAgICAgICAgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKLWBgYAotCi1gY3VycmVu
dF90ZXN0X2luZm8oKWAgcmV0dXJucyBhIG51bGwgcG9pbnRlciBpZiBubyB0ZXN0IGlzIHJ1bm5p
bmcuIEluCi1wYXJ0aWN1bGFyLCB5b3UgY2Fubm90IGZpbmQgdGhlIHRlc3QgY2FzZSBuYW1lIGlu
IGBUZXN0Q2FzZVNldFVwKClgLAotYFRlc3RDYXNlVGVhckRvd24oKWAgKHdoZXJlIHlvdSBrbm93
IHRoZSB0ZXN0IGNhc2UgbmFtZSBpbXBsaWNpdGx5KSwgb3IKLWZ1bmN0aW9ucyBjYWxsZWQgZnJv
bSB0aGVtLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyBF
eHRlbmRpbmcgZ29vZ2xldGVzdCBieSBIYW5kbGluZyBUZXN0IEV2ZW50cwotCi1nb29nbGV0ZXN0
IHByb3ZpZGVzIGFuICoqZXZlbnQgbGlzdGVuZXIgQVBJKiogdG8gbGV0IHlvdSByZWNlaXZlIG5v
dGlmaWNhdGlvbnMKLWFib3V0IHRoZSBwcm9ncmVzcyBvZiBhIHRlc3QgcHJvZ3JhbSBhbmQgdGVz
dCBmYWlsdXJlcy4gVGhlIGV2ZW50cyB5b3UgY2FuCi1saXN0ZW4gdG8gaW5jbHVkZSB0aGUgc3Rh
cnQgYW5kIGVuZCBvZiB0aGUgdGVzdCBwcm9ncmFtLCBhIHRlc3QgY2FzZSwgb3IgYSB0ZXN0Ci1t
ZXRob2QsIGFtb25nIG90aGVycy4gWW91IG1heSB1c2UgdGhpcyBBUEkgdG8gYXVnbWVudCBvciBy
ZXBsYWNlIHRoZSBzdGFuZGFyZAotY29uc29sZSBvdXRwdXQsIHJlcGxhY2UgdGhlIFhNTCBvdXRw
dXQsIG9yIHByb3ZpZGUgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBmb3JtCi1vZiBvdXRwdXQsIHN1
Y2ggYXMgYSBHVUkgb3IgYSBkYXRhYmFzZS4gWW91IGNhbiBhbHNvIHVzZSB0ZXN0IGV2ZW50cyBh
cwotY2hlY2twb2ludHMgdG8gaW1wbGVtZW50IGEgcmVzb3VyY2UgbGVhayBjaGVja2VyLCBmb3Ig
ZXhhbXBsZS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMj
IERlZmluaW5nIEV2ZW50IExpc3RlbmVycwotCi1UbyBkZWZpbmUgYSBldmVudCBsaXN0ZW5lciwg
eW91IHN1YmNsYXNzIGVpdGhlciB0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lciBvcgotdGVzdGlu
Zzo6RW1wdHlUZXN0RXZlbnRMaXN0ZW5lciBUaGUgZm9ybWVyIGlzIGFuIChhYnN0cmFjdCkgaW50
ZXJmYWNlLCB3aGVyZQotKmVhY2ggcHVyZSB2aXJ0dWFsIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRl
biB0byBoYW5kbGUgYSB0ZXN0IGV2ZW50KiAoRm9yCi1leGFtcGxlLCB3aGVuIGEgdGVzdCBzdGFy
dHMsIHRoZSBgT25UZXN0U3RhcnQoKWAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLikuIFRoZQotbGF0
dGVyIHByb3ZpZGVzIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIGFsbCBtZXRob2RzIGluIHRo
ZSBpbnRlcmZhY2UsIHN1Y2gKLXRoYXQgYSBzdWJjbGFzcyBvbmx5IG5lZWRzIHRvIG92ZXJyaWRl
IHRoZSBtZXRob2RzIGl0IGNhcmVzIGFib3V0LgotCi1XaGVuIGFuIGV2ZW50IGlzIGZpcmVkLCBp
dHMgY29udGV4dCBpcyBwYXNzZWQgdG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24gYXMgYW4KLWFyZ3Vt
ZW50LiBUaGUgZm9sbG93aW5nIGFyZ3VtZW50IHR5cGVzIGFyZSB1c2VkOgotCi0qICAgVW5pdFRl
c3QgcmVmbGVjdHMgdGhlIHN0YXRlIG9mIHRoZSBlbnRpcmUgdGVzdCBwcm9ncmFtLAotKiAgIFRl
c3RDYXNlIGhhcyBpbmZvcm1hdGlvbiBhYm91dCBhIHRlc3QgY2FzZSwgd2hpY2ggY2FuIGNvbnRh
aW4gb25lIG9yIG1vcmUKLSAgICB0ZXN0cywKLSogICBUZXN0SW5mbyBjb250YWlucyB0aGUgc3Rh
dGUgb2YgYSB0ZXN0LCBhbmQKLSogICBUZXN0UGFydFJlc3VsdCByZXByZXNlbnRzIHRoZSByZXN1
bHQgb2YgYSB0ZXN0IGFzc2VydGlvbi4KLQotQW4gZXZlbnQgaGFuZGxlciBmdW5jdGlvbiBjYW4g
ZXhhbWluZSB0aGUgYXJndW1lbnQgaXQgcmVjZWl2ZXMgdG8gZmluZCBvdXQKLWludGVyZXN0aW5n
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudCBhbmQgdGhlIHRlc3QgcHJvZ3JhbSdzIHN0YXRl
LgotCi1IZXJlJ3MgYW4gZXhhbXBsZToKLQotYGBgYysrCi0gIGNsYXNzIE1pbmltYWxpc3RQcmlu
dGVyIDogcHVibGljIDo6dGVzdGluZzo6RW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7Ci0gICAgLy8g
Q2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgotICAgIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFy
dChjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgICAgIHByaW50Zigi
KioqIFRlc3QgJXMuJXMgc3RhcnRpbmcuXG4iLAotICAgICAgICAgICAgIHRlc3RfaW5mby50ZXN0
X2Nhc2VfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKLSAgICB9Ci0KLSAgICAvLyBDYWxsZWQg
YWZ0ZXIgYSBmYWlsZWQgYXNzZXJ0aW9uIG9yIGEgU1VDQ0VTUygpLgotICAgIHZpcnR1YWwgdm9p
ZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQmIHRlc3Rf
cGFydF9yZXN1bHQpIHsKLSAgICAgIHByaW50ZigiJXMgaW4gJXM6JWRcbiVzXG4iLAotICAgICAg
ICAgICAgIHRlc3RfcGFydF9yZXN1bHQuZmFpbGVkKCkgPyAiKioqIEZhaWx1cmUiIDogIlN1Y2Nl
c3MiLAotICAgICAgICAgICAgIHRlc3RfcGFydF9yZXN1bHQuZmlsZV9uYW1lKCksCi0gICAgICAg
ICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5saW5lX251bWJlcigpLAotICAgICAgICAgICAgIHRlc3Rf
cGFydF9yZXN1bHQuc3VtbWFyeSgpKTsKLSAgICB9Ci0KLSAgICAvLyBDYWxsZWQgYWZ0ZXIgYSB0
ZXN0IGVuZHMuCi0gICAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCA6OnRlc3Rpbmc6OlRl
c3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgICAgIHByaW50ZigiKioqIFRlc3QgJXMuJXMgZW5kaW5n
LlxuIiwKLSAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZv
Lm5hbWUoKSk7Ci0gICAgfQotICB9OwotYGBgCi0KLSMjIyBVc2luZyBFdmVudCBMaXN0ZW5lcnMK
LQotVG8gdXNlIHRoZSBldmVudCBsaXN0ZW5lciB5b3UgaGF2ZSBkZWZpbmVkLCBhZGQgYW4gaW5z
dGFuY2Ugb2YgaXQgdG8gdGhlCi1nb29nbGV0ZXN0IGV2ZW50IGxpc3RlbmVyIGxpc3QgKHJlcHJl
c2VudGVkIGJ5IGNsYXNzIFRlc3RFdmVudExpc3RlbmVycyAtIG5vdGUKLXRoZSAicyIgYXQgdGhl
IGVuZCBvZiB0aGUgbmFtZSkgaW4geW91ciBgbWFpbigpYCBmdW5jdGlvbiwgYmVmb3JlIGNhbGxp
bmcKLWBSVU5fQUxMX1RFU1RTKClgOgotCi1gYGBjKysKLWludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikgewotICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLSAg
Ly8gR2V0cyBob2xkIG9mIHRoZSBldmVudCBsaXN0ZW5lciBsaXN0LgotICA6OnRlc3Rpbmc6OlRl
c3RFdmVudExpc3RlbmVycyYgbGlzdGVuZXJzID0KLSAgICAgICAgOjp0ZXN0aW5nOjpVbml0VGVz
dDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCk7Ci0gIC8vIEFkZHMgYSBsaXN0ZW5lciB0byB0
aGUgZW5kLiAgZ29vZ2xldGVzdCB0YWtlcyB0aGUgb3duZXJzaGlwLgotICBsaXN0ZW5lcnMuQXBw
ZW5kKG5ldyBNaW5pbWFsaXN0UHJpbnRlcik7Ci0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19
Ci1gYGAKLQotVGhlcmUncyBvbmx5IG9uZSBwcm9ibGVtOiB0aGUgZGVmYXVsdCB0ZXN0IHJlc3Vs
dCBwcmludGVyIGlzIHN0aWxsIGluIGVmZmVjdCwgc28KLWl0cyBvdXRwdXQgd2lsbCBtaW5nbGUg
d2l0aCB0aGUgb3V0cHV0IGZyb20geW91ciBtaW5pbWFsaXN0IHByaW50ZXIuIFRvIHN1cHByZXNz
Ci10aGUgZGVmYXVsdCBwcmludGVyLCBqdXN0IHJlbGVhc2UgaXQgZnJvbSB0aGUgZXZlbnQgbGlz
dGVuZXIgbGlzdCBhbmQgZGVsZXRlIGl0LgotWW91IGNhbiBkbyBzbyBieSBhZGRpbmcgb25lIGxp
bmU6Ci0KLWBgYGMrKwotICAuLi4KLSAgZGVsZXRlIGxpc3RlbmVycy5SZWxlYXNlKGxpc3RlbmVy
cy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkpOwotICBsaXN0ZW5lcnMuQXBwZW5kKG5ldyBNaW5p
bWFsaXN0UHJpbnRlcik7Ci0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci1gYGAKLQotTm93LCBz
aXQgYmFjayBhbmQgZW5qb3kgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBvdXRwdXQgZnJvbSB5b3Vy
IHRlc3RzLiBGb3IgbW9yZQotZGV0YWlscywgeW91IGNhbiByZWFkIHRoaXMgc2FtcGxlOV91bml0
dGVzdC5jYwotCi1Zb3UgbWF5IGFwcGVuZCBtb3JlIHRoYW4gb25lIGxpc3RlbmVyIHRvIHRoZSBs
aXN0LiBXaGVuIGFuIGBPbipTdGFydCgpYCBvcgotYE9uVGVzdFBhcnRSZXN1bHQoKWAgZXZlbnQg
aXMgZmlyZWQsIHRoZSBsaXN0ZW5lcnMgd2lsbCByZWNlaXZlIGl0IGluIHRoZSBvcmRlcgotdGhl
eSBhcHBlYXIgaW4gdGhlIGxpc3QgKHNpbmNlIG5ldyBsaXN0ZW5lcnMgYXJlIGFkZGVkIHRvIHRo
ZSBlbmQgb2YgdGhlIGxpc3QsCi10aGUgZGVmYXVsdCB0ZXh0IHByaW50ZXIgYW5kIHRoZSBkZWZh
dWx0IFhNTCBnZW5lcmF0b3Igd2lsbCByZWNlaXZlIHRoZSBldmVudAotZmlyc3QpLiBBbiBgT24q
RW5kKClgIGV2ZW50IHdpbGwgYmUgcmVjZWl2ZWQgYnkgdGhlIGxpc3RlbmVycyBpbiB0aGUgKnJl
dmVyc2UqCi1vcmRlci4gVGhpcyBhbGxvd3Mgb3V0cHV0IGJ5IGxpc3RlbmVycyBhZGRlZCBsYXRl
ciB0byBiZSBmcmFtZWQgYnkgb3V0cHV0IGZyb20KLWxpc3RlbmVycyBhZGRlZCBlYXJsaWVyLgot
Ci0jIyMgR2VuZXJhdGluZyBGYWlsdXJlcyBpbiBMaXN0ZW5lcnMKLQotWW91IG1heSB1c2UgZmFp
bHVyZS1yYWlzaW5nIG1hY3JvcyAoYEVYUEVDVF8qKClgLCBgQVNTRVJUXyooKWAsIGBGQUlMKClg
LCBldGMpCi13aGVuIHByb2Nlc3NpbmcgYW4gZXZlbnQuIFRoZXJlIGFyZSBzb21lIHJlc3RyaWN0
aW9uczoKLQotMS4gIFlvdSBjYW5ub3QgZ2VuZXJhdGUgYW55IGZhaWx1cmUgaW4gYE9uVGVzdFBh
cnRSZXN1bHQoKWAgKG90aGVyd2lzZSBpdCB3aWxsCi0gICAgY2F1c2UgYE9uVGVzdFBhcnRSZXN1
bHQoKWAgdG8gYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5KS4KLTEuICBBIGxpc3RlbmVyIHRoYXQgaGFu
ZGxlcyBgT25UZXN0UGFydFJlc3VsdCgpYCBpcyBub3QgYWxsb3dlZCB0byBnZW5lcmF0ZSBhbnkK
LSAgICBmYWlsdXJlLgotCi1XaGVuIHlvdSBhZGQgbGlzdGVuZXJzIHRvIHRoZSBsaXN0ZW5lciBs
aXN0LCB5b3Ugc2hvdWxkIHB1dCBsaXN0ZW5lcnMgdGhhdAotaGFuZGxlIGBPblRlc3RQYXJ0UmVz
dWx0KClgICpiZWZvcmUqIGxpc3RlbmVycyB0aGF0IGNhbiBnZW5lcmF0ZSBmYWlsdXJlcy4gVGhp
cwotZW5zdXJlcyB0aGF0IGZhaWx1cmVzIGdlbmVyYXRlZCBieSB0aGUgbGF0dGVyIGFyZSBhdHRy
aWJ1dGVkIHRvIHRoZSByaWdodCB0ZXN0Ci1ieSB0aGUgZm9ybWVyLgotCi1XZSBoYXZlIGEgc2Ft
cGxlIG9mIGZhaWx1cmUtcmFpc2luZyBsaXN0ZW5lciBzYW1wbGUxMF91bml0dGVzdC5jYwotCi0j
IyBSdW5uaW5nIFRlc3QgUHJvZ3JhbXM6IEFkdmFuY2VkIE9wdGlvbnMKLQotZ29vZ2xldGVzdCB0
ZXN0IHByb2dyYW1zIGFyZSBvcmRpbmFyeSBleGVjdXRhYmxlcy4gT25jZSBidWlsdCwgeW91IGNh
biBydW4gdGhlbQotZGlyZWN0bHkgYW5kIGFmZmVjdCB0aGVpciBiZWhhdmlvciB2aWEgdGhlIGZv
bGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLWFuZC9vciBjb21tYW5kIGxpbmUgZmxhZ3Mu
IEZvciB0aGUgZmxhZ3MgdG8gd29yaywgeW91ciBwcm9ncmFtcyBtdXN0IGNhbGwKLWA6OnRlc3Rp
bmc6OkluaXRHb29nbGVUZXN0KClgIGJlZm9yZSBjYWxsaW5nIGBSVU5fQUxMX1RFU1RTKClgLgot
Ci1UbyBzZWUgYSBsaXN0IG9mIHN1cHBvcnRlZCBmbGFncyBhbmQgdGhlaXIgdXNhZ2UsIHBsZWFz
ZSBydW4geW91ciB0ZXN0IHByb2dyYW0KLXdpdGggdGhlIGAtLWhlbHBgIGZsYWcuIFlvdSBjYW4g
YWxzbyB1c2UgYC1oYCwgYC0/YCwgb3IgYC8/YCBmb3Igc2hvcnQuCi0KLUlmIGFuIG9wdGlvbiBp
cyBzcGVjaWZpZWQgYm90aCBieSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgYnkgYSBmbGFn
LCB0aGUKLWxhdHRlciB0YWtlcyBwcmVjZWRlbmNlLgotCi0jIyMgU2VsZWN0aW5nIFRlc3RzCi0K
LSMjIyMgTGlzdGluZyBUZXN0IE5hbWVzCi0KLVNvbWV0aW1lcyBpdCBpcyBuZWNlc3NhcnkgdG8g
bGlzdCB0aGUgYXZhaWxhYmxlIHRlc3RzIGluIGEgcHJvZ3JhbSBiZWZvcmUKLXJ1bm5pbmcgdGhl
bSBzbyB0aGF0IGEgZmlsdGVyIG1heSBiZSBhcHBsaWVkIGlmIG5lZWRlZC4gSW5jbHVkaW5nIHRo
ZSBmbGFnCi1gLS1ndGVzdF9saXN0X3Rlc3RzYCBvdmVycmlkZXMgYWxsIG90aGVyIGZsYWdzIGFu
ZCBsaXN0cyB0ZXN0cyBpbiB0aGUgZm9sbG93aW5nCi1mb3JtYXQ6Ci0KLWBgYG5vbmUKLVRlc3RD
YXNlMS4KLSAgVGVzdE5hbWUxCi0gIFRlc3ROYW1lMgotVGVzdENhc2UyLgotICBUZXN0TmFtZQot
YGBgCi0KLU5vbmUgb2YgdGhlIHRlc3RzIGxpc3RlZCBhcmUgYWN0dWFsbHkgcnVuIGlmIHRoZSBm
bGFnIGlzIHByb3ZpZGVkLiBUaGVyZSBpcyBubwotY29ycmVzcG9uZGluZyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBmb3IgdGhpcyBmbGFnLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93
cywgTWFjLgotCi0jIyMjIFJ1bm5pbmcgYSBTdWJzZXQgb2YgdGhlIFRlc3RzCi0KLUJ5IGRlZmF1
bHQsIGEgZ29vZ2xldGVzdCBwcm9ncmFtIHJ1bnMgYWxsIHRlc3RzIHRoZSB1c2VyIGhhcyBkZWZp
bmVkLiBTb21ldGltZXMsCi15b3Ugd2FudCB0byBydW4gb25seSBhIHN1YnNldCBvZiB0aGUgdGVz
dHMgKGUuZy4gZm9yIGRlYnVnZ2luZyBvciBxdWlja2x5Ci12ZXJpZnlpbmcgYSBjaGFuZ2UpLiBJ
ZiB5b3Ugc2V0IHRoZSBgR1RFU1RfRklMVEVSYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUK
LWAtLWd0ZXN0X2ZpbHRlcmAgZmxhZyB0byBhIGZpbHRlciBzdHJpbmcsIGdvb2dsZXRlc3Qgd2ls
bCBvbmx5IHJ1biB0aGUgdGVzdHMKLXdob3NlIGZ1bGwgbmFtZXMgKGluIHRoZSBmb3JtIG9mIGBU
ZXN0Q2FzZU5hbWUuVGVzdE5hbWVgKSBtYXRjaCB0aGUgZmlsdGVyLgotCi1UaGUgZm9ybWF0IG9m
IGEgZmlsdGVyIGlzIGEgJ2A6YCctc2VwYXJhdGVkIGxpc3Qgb2Ygd2lsZGNhcmQgcGF0dGVybnMg
KGNhbGxlZAotdGhlICpwb3NpdGl2ZSBwYXR0ZXJucyopIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkg
YSAnYC1gJyBhbmQgYW5vdGhlcgotJ2A6YCctc2VwYXJhdGVkIHBhdHRlcm4gbGlzdCAoY2FsbGVk
IHRoZSAqbmVnYXRpdmUgcGF0dGVybnMqKS4gQSB0ZXN0IG1hdGNoZXMKLXRoZSBmaWx0ZXIgaWYg
YW5kIG9ubHkgaWYgaXQgbWF0Y2hlcyBhbnkgb2YgdGhlIHBvc2l0aXZlIHBhdHRlcm5zIGJ1dCBk
b2VzIG5vdAotbWF0Y2ggYW55IG9mIHRoZSBuZWdhdGl2ZSBwYXR0ZXJucy4KLQotQSBwYXR0ZXJu
IG1heSBjb250YWluIGAnKidgIChtYXRjaGVzIGFueSBzdHJpbmcpIG9yIGAnPydgIChtYXRjaGVz
IGFueSBzaW5nbGUKLWNoYXJhY3RlcikuIEZvciBjb252ZW5pZW5jZSwgdGhlIGZpbHRlcgotCi1g
JyotTmVnYXRpdmVQYXR0ZXJucydgIGNhbiBiZSBhbHNvIHdyaXR0ZW4gYXMgYCctTmVnYXRpdmVQ
YXR0ZXJucydgLgotCi1Gb3IgZXhhbXBsZToKLQotKiAgIGAuL2Zvb190ZXN0YCBIYXMgbm8gZmxh
ZywgYW5kIHRodXMgcnVucyBhbGwgaXRzIHRlc3RzLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3Rf
ZmlsdGVyPSpgIEFsc28gcnVucyBldmVyeXRoaW5nLCBkdWUgdG8gdGhlIHNpbmdsZQotICAgIG1h
dGNoLWV2ZXJ5dGhpbmcgYCpgIHZhbHVlLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3RfZmlsdGVy
PUZvb1Rlc3QuKmAgUnVucyBldmVyeXRoaW5nIGluIHRlc3QgY2FzZSBgRm9vVGVzdGAKLSAgICAu
Ci0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0ZXI9Kk51bGwqOipDb25zdHJ1Y3RvcipgIFJ1
bnMgYW55IHRlc3Qgd2hvc2UgZnVsbAotICAgIG5hbWUgY29udGFpbnMgZWl0aGVyIGAiTnVsbCJg
IG9yIGAiQ29uc3RydWN0b3IiYCAuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0ZXI9LSpE
ZWF0aFRlc3QuKmAgUnVucyBhbGwgbm9uLWRlYXRoIHRlc3RzLgotKiAgIGAuL2Zvb190ZXN0IC0t
Z3Rlc3RfZmlsdGVyPUZvb1Rlc3QuKi1Gb29UZXN0LkJhcmAgUnVucyBldmVyeXRoaW5nIGluIHRl
c3QKLSAgICBjYXNlIGBGb29UZXN0YCBleGNlcHQgYEZvb1Rlc3QuQmFyYC4KLSogICBgLi9mb29f
dGVzdCAtLWd0ZXN0X2ZpbHRlcj1Gb29UZXN0Lio6QmFyVGVzdC4qLUZvb1Rlc3QuQmFyOkJhclRl
c3QuRm9vYCBSdW5zCi0gICAgZXZlcnl0aGluZyBpbiB0ZXN0IGNhc2UgYEZvb1Rlc3RgIGV4Y2Vw
dCBgRm9vVGVzdC5CYXJgIGFuZCBldmVyeXRoaW5nIGluCi0gICAgdGVzdCBjYXNlIGBCYXJUZXN0
YCBleGNlcHQgYEJhclRlc3QuRm9vYC4KLSAgICAKLSMjIyMgVGVtcG9yYXJpbHkgRGlzYWJsaW5n
IFRlc3RzCi0KLUlmIHlvdSBoYXZlIGEgYnJva2VuIHRlc3QgdGhhdCB5b3UgY2Fubm90IGZpeCBy
aWdodCBhd2F5LCB5b3UgY2FuIGFkZCB0aGUKLWBESVNBQkxFRF9gIHByZWZpeCB0byBpdHMgbmFt
ZS4gVGhpcyB3aWxsIGV4Y2x1ZGUgaXQgZnJvbSBleGVjdXRpb24uIFRoaXMgaXMKLWJldHRlciB0
aGFuIGNvbW1lbnRpbmcgb3V0IHRoZSBjb2RlIG9yIHVzaW5nIGAjaWYgMGAsIGFzIGRpc2FibGVk
IHRlc3RzIGFyZQotc3RpbGwgY29tcGlsZWQgKGFuZCB0aHVzIHdvbid0IHJvdCkuCi0KLUlmIHlv
dSBuZWVkIHRvIGRpc2FibGUgYWxsIHRlc3RzIGluIGEgdGVzdCBjYXNlLCB5b3UgY2FuIGVpdGhl
ciBhZGQgYERJU0FCTEVEX2AKLXRvIHRoZSBmcm9udCBvZiB0aGUgbmFtZSBvZiBlYWNoIHRlc3Qs
IG9yIGFsdGVybmF0aXZlbHkgYWRkIGl0IHRvIHRoZSBmcm9udCBvZgotdGhlIHRlc3QgY2FzZSBu
YW1lLgotCi1Gb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0ZXN0cyB3b24ndCBiZSBydW4gYnkg
Z29vZ2xldGVzdCwgZXZlbiB0aG91Z2ggdGhleQotd2lsbCBzdGlsbCBiZSBjb21waWxlZDoKLQot
YGBgYysrCi0vLyBUZXN0cyB0aGF0IEZvbyBkb2VzIEFiYy4KLVRFU1QoRm9vVGVzdCwgRElTQUJM
RURfRG9lc0FiYykgeyAuLi4gfQotCi1jbGFzcyBESVNBQkxFRF9CYXJUZXN0IDogcHVibGljIDo6
dGVzdGluZzo6VGVzdCB7IC4uLiB9OwotCi0vLyBUZXN0cyB0aGF0IEJhciBkb2VzIFh5ei4KLVRF
U1RfRihESVNBQkxFRF9CYXJUZXN0LCBEb2VzWHl6KSB7IC4uLiB9Ci1gYGAKLQotTk9URTogVGhp
cyBmZWF0dXJlIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIHRlbXBvcmFyeSBwYWluLXJlbGllZi4g
WW91IHN0aWxsIGhhdmUKLXRvIGZpeCB0aGUgZGlzYWJsZWQgdGVzdHMgYXQgYSBsYXRlciBkYXRl
LiBBcyBhIHJlbWluZGVyLCBnb29nbGV0ZXN0IHdpbGwgcHJpbnQKLWEgYmFubmVyIHdhcm5pbmcg
eW91IGlmIGEgdGVzdCBwcm9ncmFtIGNvbnRhaW5zIGFueSBkaXNhYmxlZCB0ZXN0cy4KLQotVElQ
OiBZb3UgY2FuIGVhc2lseSBjb3VudCB0aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3RzIHlvdSBo
YXZlIHVzaW5nIGBnc2VhcmNoYAotYW5kL29yIGBncmVwYC4gVGhpcyBudW1iZXIgY2FuIGJlIHVz
ZWQgYXMgYSBtZXRyaWMgZm9yIGltcHJvdmluZyB5b3VyIHRlc3QKLXF1YWxpdHkuCi0KLSoqQXZh
aWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgVGVtcG9yYXJpbHkgRW5h
YmxpbmcgRGlzYWJsZWQgVGVzdHMKLQotVG8gaW5jbHVkZSBkaXNhYmxlZCB0ZXN0cyBpbiB0ZXN0
IGV4ZWN1dGlvbiwganVzdCBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB3aXRoCi10aGUgYC0tZ3Rl
c3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNgIGZsYWcgb3Igc2V0IHRoZQotYEdURVNUX0FMU09f
UlVOX0RJU0FCTEVEX1RFU1RTYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIHZhbHVlIG90aGVy
IHRoYW4gYDBgLgotWW91IGNhbiBjb21iaW5lIHRoaXMgd2l0aCB0aGUgYC0tZ3Rlc3RfZmlsdGVy
YCBmbGFnIHRvIGZ1cnRoZXIgc2VsZWN0IHdoaWNoCi1kaXNhYmxlZCB0ZXN0cyB0byBydW4uCi0K
LSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBSZXBlYXRpbmcg
dGhlIFRlc3RzCi0KLU9uY2UgaW4gYSB3aGlsZSB5b3UnbGwgcnVuIGludG8gYSB0ZXN0IHdob3Nl
IHJlc3VsdCBpcyBoaXQtb3ItbWlzcy4gUGVyaGFwcyBpdAotd2lsbCBmYWlsIG9ubHkgMSUgb2Yg
dGhlIHRpbWUsIG1ha2luZyBpdCByYXRoZXIgaGFyZCB0byByZXByb2R1Y2UgdGhlIGJ1ZyB1bmRl
cgotYSBkZWJ1Z2dlci4gVGhpcyBjYW4gYmUgYSBtYWpvciBzb3VyY2Ugb2YgZnJ1c3RyYXRpb24u
Ci0KLVRoZSBgLS1ndGVzdF9yZXBlYXRgIGZsYWcgYWxsb3dzIHlvdSB0byByZXBlYXQgYWxsIChv
ciBzZWxlY3RlZCkgdGVzdCBtZXRob2RzIGluCi1hIHByb2dyYW0gbWFueSB0aW1lcy4gSG9wZWZ1
bGx5LCBhIGZsYWt5IHRlc3Qgd2lsbCBldmVudHVhbGx5IGZhaWwgYW5kIGdpdmUgeW91Ci1hIGNo
YW5jZSB0byBkZWJ1Zy4gSGVyZSdzIGhvdyB0byB1c2UgaXQ6Ci0KLWBgYG5vbmUKLSQgZm9vX3Rl
c3QgLS1ndGVzdF9yZXBlYXQ9MTAwMAotUmVwZWF0IGZvb190ZXN0IDEwMDAgdGltZXMgYW5kIGRv
bid0IHN0b3AgYXQgZmFpbHVyZXMuCi0KLSQgZm9vX3Rlc3QgLS1ndGVzdF9yZXBlYXQ9LTEKLUEg
bmVnYXRpdmUgY291bnQgbWVhbnMgcmVwZWF0aW5nIGZvcmV2ZXIuCi0KLSQgZm9vX3Rlc3QgLS1n
dGVzdF9yZXBlYXQ9MTAwMCAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUKLVJlcGVhdCBmb29fdGVz
dCAxMDAwIHRpbWVzLCBzdG9wcGluZyBhdCB0aGUgZmlyc3QgZmFpbHVyZS4gIFRoaXMKLWlzIGVz
cGVjaWFsbHkgdXNlZnVsIHdoZW4gcnVubmluZyB1bmRlciBhIGRlYnVnZ2VyOiB3aGVuIHRoZSB0
ZXN0Ci1mYWlscywgaXQgd2lsbCBkcm9wIGludG8gdGhlIGRlYnVnZ2VyIGFuZCB5b3UgY2FuIHRo
ZW4gaW5zcGVjdAotdmFyaWFibGVzIGFuZCBzdGFja3MuCi0KLSQgZm9vX3Rlc3QgLS1ndGVzdF9y
ZXBlYXQ9MTAwMCAtLWd0ZXN0X2ZpbHRlcj1Gb29CYXIuKgotUmVwZWF0IHRoZSB0ZXN0cyB3aG9z
ZSBuYW1lIG1hdGNoZXMgdGhlIGZpbHRlciAxMDAwIHRpbWVzLgotYGBgCi0KLUlmIHlvdXIgdGVz
dCBwcm9ncmFtIGNvbnRhaW5zIFtnbG9iYWwgc2V0LXVwL3RlYXItZG93bl0oI2dsb2JhbC1zZXQt
dXAtYW5kLXRlYXItZG93bikgY29kZSwgaXQKLXdpbGwgYmUgcmVwZWF0ZWQgaW4gZWFjaCBpdGVy
YXRpb24gYXMgd2VsbCwgYXMgdGhlIGZsYWtpbmVzcyBtYXkgYmUgaW4gaXQuIFlvdQotY2FuIGFs
c28gc3BlY2lmeSB0aGUgcmVwZWF0IGNvdW50IGJ5IHNldHRpbmcgdGhlIGBHVEVTVF9SRVBFQVRg
IGVudmlyb25tZW50Ci12YXJpYWJsZS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MsIE1hYy4KLQotIyMjIFNodWZmbGluZyB0aGUgVGVzdHMKLQotWW91IGNhbiBzcGVjaWZ5IHRo
ZSBgLS1ndGVzdF9zaHVmZmxlYCBmbGFnIChvciBzZXQgdGhlIGBHVEVTVF9TSFVGRkxFYAotZW52
aXJvbm1lbnQgdmFyaWFibGUgdG8gYDFgKSB0byBydW4gdGhlIHRlc3RzIGluIGEgcHJvZ3JhbSBp
biBhIHJhbmRvbSBvcmRlci4KLVRoaXMgaGVscHMgdG8gcmV2ZWFsIGJhZCBkZXBlbmRlbmNpZXMg
YmV0d2VlbiB0ZXN0cy4KLQotQnkgZGVmYXVsdCwgZ29vZ2xldGVzdCB1c2VzIGEgcmFuZG9tIHNl
ZWQgY2FsY3VsYXRlZCBmcm9tIHRoZSBjdXJyZW50IHRpbWUuCi1UaGVyZWZvcmUgeW91J2xsIGdl
dCBhIGRpZmZlcmVudCBvcmRlciBldmVyeSB0aW1lLiBUaGUgY29uc29sZSBvdXRwdXQgaW5jbHVk
ZXMKLXRoZSByYW5kb20gc2VlZCB2YWx1ZSwgc3VjaCB0aGF0IHlvdSBjYW4gcmVwcm9kdWNlIGFu
IG9yZGVyLXJlbGF0ZWQgdGVzdCBmYWlsdXJlCi1sYXRlci4gVG8gc3BlY2lmeSB0aGUgcmFuZG9t
IHNlZWQgZXhwbGljaXRseSwgdXNlIHRoZSBgLS1ndGVzdF9yYW5kb21fc2VlZD1TRUVEYAotZmxh
ZyAob3Igc2V0IHRoZSBgR1RFU1RfUkFORE9NX1NFRURgIGVudmlyb25tZW50IHZhcmlhYmxlKSwg
d2hlcmUgYFNFRURgIGlzIGFuCi1pbnRlZ2VyIGluIHRoZSByYW5nZSBbMCwgOTk5OTldLiBUaGUg
c2VlZCB2YWx1ZSAwIGlzIHNwZWNpYWw6IGl0IHRlbGxzCi1nb29nbGV0ZXN0IHRvIGRvIHRoZSBk
ZWZhdWx0IGJlaGF2aW9yIG9mIGNhbGN1bGF0aW5nIHRoZSBzZWVkIGZyb20gdGhlIGN1cnJlbnQK
LXRpbWUuCi0KLUlmIHlvdSBjb21iaW5lIHRoaXMgd2l0aCBgLS1ndGVzdF9yZXBlYXQ9TmAsIGdv
b2dsZXRlc3Qgd2lsbCBwaWNrIGEgZGlmZmVyZW50Ci1yYW5kb20gc2VlZCBhbmQgcmUtc2h1ZmZs
ZSB0aGUgdGVzdHMgaW4gZWFjaCBpdGVyYXRpb24uCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBDb250cm9sbGluZyBUZXN0IE91dHB1dAotCi0jIyMjIENv
bG9yZWQgVGVybWluYWwgT3V0cHV0Ci0KLWdvb2dsZXRlc3QgY2FuIHVzZSBjb2xvcnMgaW4gaXRz
IHRlcm1pbmFsIG91dHB1dCB0byBtYWtlIGl0IGVhc2llciB0byBzcG90IHRoZQotaW1wb3J0YW50
IGluZm9ybWF0aW9uOgotCi0uLi48YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bLS0t
LS0tLS0tLV08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiAxIHRlc3QgZnJvbSBGb29UZXN0PGJy
Lz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+WyBSVU4gICAgICBdPHNwYW4gc3R5bGU9ImNv
bG9yOmJsYWNrIj4gRm9vVGVzdC5Eb2VzQWJjPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVl
biI+WyAgICAgICBPSyBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gRm9vVGVzdC5Eb2VzQWJj
PGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wy0tLS0tLS0tLS1dPHNwYW4gc3R5bGU9
ImNvbG9yOmJsYWNrIj4gMiB0ZXN0cyBmcm9tIEJhclRlc3Q8YnIvPgotPHNwYW4gc3R5bGU9ImNv
bG9yOmdyZWVuIj5bIFJVTiAgICAgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBCYXJUZXN0
Lkhhc1h5elByb3BlcnR5PGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+WyAgICAgICBP
SyBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gQmFyVGVzdC5IYXNYeXpQcm9wZXJ0eTxici8+
Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgUlVOICAgICAgXTxzcGFuIHN0eWxlPSJjb2xv
cjpibGFjayI+IEJhclRlc3QuUmV0dXJuc1RydWVPblN1Y2Nlc3M8YnIvPgotLi4uIHNvbWUgZXJy
b3IgbWVzc2FnZXMgLi4uPGJyLz4KLTxzcGFuICAgc3R5bGU9ImNvbG9yOnJlZCI+WyAgRkFJTEVE
ICBdIDxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+QmFyVGVzdC5SZXR1cm5zVHJ1ZU9uU3VjY2Vz
czxici8+Ci0uLi48YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bPT09PT09PT09PV08
c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiAzMCB0ZXN0cyBmcm9tIDE0IHRlc3QgY2FzZXMgcmFu
Ljxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgIFBBU1NFRCAgXTxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+IDI4IHRlc3RzLjxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6cmVkIj5b
ICBGQUlMRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiAyIHRlc3RzLCBsaXN0ZWQgYmVs
b3c6PGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpyZWQiPlsgIEZBSUxFRCAgXTxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+IEJhclRlc3QuUmV0dXJuc1RydWVPblN1Y2Nlc3M8YnIvPgotPHNwYW4g
c3R5bGU9ImNvbG9yOnJlZCI+WyAgRkFJTEVEICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4g
QW5vdGhlclRlc3QuRG9lc1h5ejxici8+Ci0gIDIgRkFJTEVEIFRFU1RTCi0KLVlvdSBjYW4gc2V0
IHRoZSBgR1RFU1RfQ09MT1JgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZSBgLS1ndGVzdF9j
b2xvcmAKLWNvbW1hbmQgbGluZSBmbGFnIHRvIGB5ZXNgLCBgbm9gLCBvciBgYXV0b2AgKHRoZSBk
ZWZhdWx0KSB0byBlbmFibGUgY29sb3JzLAotZGlzYWJsZSBjb2xvcnMsIG9yIGxldCBnb29nbGV0
ZXN0IGRlY2lkZS4gV2hlbiB0aGUgdmFsdWUgaXMgYGF1dG9gLCBnb29nbGV0ZXN0Ci13aWxsIHVz
ZSBjb2xvcnMgaWYgYW5kIG9ubHkgaWYgdGhlIG91dHB1dCBnb2VzIHRvIGEgdGVybWluYWwgYW5k
IChvbiBub24tV2luZG93cwotcGxhdGZvcm1zKSB0aGUgYFRFUk1gIGVudmlyb25tZW50IHZhcmlh
YmxlIGlzIHNldCB0byBgeHRlcm1gIG9yIGB4dGVybS1jb2xvcmAuCi0KLSAqKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFN1cHByZXNzaW5nIHRoZSBFbGFwc2Vk
IFRpbWUKLQotQnkgZGVmYXVsdCwgZ29vZ2xldGVzdCBwcmludHMgdGhlIHRpbWUgaXQgdGFrZXMg
dG8gcnVuIGVhY2ggdGVzdC4gVG8gZGlzYWJsZQotdGhhdCwgcnVuIHRoZSB0ZXN0IHByb2dyYW0g
d2l0aCB0aGUgYC0tZ3Rlc3RfcHJpbnRfdGltZT0wYCBjb21tYW5kIGxpbmUgZmxhZywgb3IKLXNl
dCB0aGUgR1RFU1RfUFJJTlRfVElNRSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMGAuCi0KLSoq
QXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgU3VwcHJlc3Npbmcg
VVRGLTggVGV4dCBPdXRwdXQKLQotSW4gY2FzZSBvZiBhc3NlcnRpb24gZmFpbHVyZXMsIGdvb2ds
ZXRlc3QgcHJpbnRzIGV4cGVjdGVkIGFuZCBhY3R1YWwgdmFsdWVzIG9mCi10eXBlIGBzdHJpbmdg
IGJvdGggYXMgaGV4LWVuY29kZWQgc3RyaW5ncyBhcyB3ZWxsIGFzIGluIHJlYWRhYmxlIFVURi04
IHRleHQgaWYKLXRoZXkgY29udGFpbiB2YWxpZCBub24tQVNDSUkgVVRGLTggY2hhcmFjdGVycy4g
SWYgeW91IHdhbnQgdG8gc3VwcHJlc3MgdGhlIFVURi04Ci10ZXh0IGJlY2F1c2UsIGZvciBleGFt
cGxlLCB5b3UgZG9uJ3QgaGF2ZSBhbiBVVEYtOCBjb21wYXRpYmxlIG91dHB1dCBtZWRpdW0sIHJ1
bgotdGhlIHRlc3QgcHJvZ3JhbSB3aXRoIGAtLWd0ZXN0X3ByaW50X3V0Zjg9MGAgb3Igc2V0IHRo
ZSBgR1RFU1RfUFJJTlRfVVRGOGAKLWVudmlyb25tZW50IHZhcmlhYmxlIHRvIGAwYC4KLQotKipB
dmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotCi0jIyMjIEdlbmVyYXRpbmcg
YW4gWE1MIFJlcG9ydAotCi1nb29nbGV0ZXN0IGNhbiBlbWl0IGEgZGV0YWlsZWQgWE1MIHJlcG9y
dCB0byBhIGZpbGUgaW4gYWRkaXRpb24gdG8gaXRzIG5vcm1hbAotdGV4dHVhbCBvdXRwdXQuIFRo
ZSByZXBvcnQgY29udGFpbnMgdGhlIGR1cmF0aW9uIG9mIGVhY2ggdGVzdCwgYW5kIHRodXMgY2Fu
IGhlbHAKLXlvdSBpZGVudGlmeSBzbG93IHRlc3RzLiBUaGUgcmVwb3J0IGlzIGFsc28gdXNlZCBi
eSB0aGUgaHR0cDovL3VuaXR0ZXN0Ci1kYXNoYm9hcmQgdG8gc2hvdyBwZXItdGVzdC1tZXRob2Qg
ZXJyb3IgbWVzc2FnZXMuCi0KLVRvIGdlbmVyYXRlIHRoZSBYTUwgcmVwb3J0LCBzZXQgdGhlIGBH
VEVTVF9PVVRQVVRgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZQotYC0tZ3Rlc3Rfb3V0cHV0
YCBmbGFnIHRvIHRoZSBzdHJpbmcgYCJ4bWw6cGF0aF90b19vdXRwdXRfZmlsZSJgLCB3aGljaCB3
aWxsCi1jcmVhdGUgdGhlIGZpbGUgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLiBZb3UgY2FuIGFsc28g
anVzdCB1c2UgdGhlIHN0cmluZyBgInhtbCJgLAotaW4gd2hpY2ggY2FzZSB0aGUgb3V0cHV0IGNh
biBiZSBmb3VuZCBpbiB0aGUgYHRlc3RfZGV0YWlsLnhtbGAgZmlsZSBpbiB0aGUKLWN1cnJlbnQg
ZGlyZWN0b3J5LgotCi1JZiB5b3Ugc3BlY2lmeSBhIGRpcmVjdG9yeSAoZm9yIGV4YW1wbGUsIGAi
eG1sOm91dHB1dC9kaXJlY3RvcnkvImAgb24gTGludXggb3IKLWAieG1sOm91dHB1dFxkaXJlY3Rv
cnlcImAgb24gV2luZG93cyksIGdvb2dsZXRlc3Qgd2lsbCBjcmVhdGUgdGhlIFhNTCBmaWxlIGlu
Ci10aGF0IGRpcmVjdG9yeSwgbmFtZWQgYWZ0ZXIgdGhlIHRlc3QgZXhlY3V0YWJsZSAoZS5nLiBg
Zm9vX3Rlc3QueG1sYCBmb3IgdGVzdAotcHJvZ3JhbSBgZm9vX3Rlc3RgIG9yIGBmb29fdGVzdC5l
eGVgKS4gSWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMgKHBlcmhhcHMgbGVmdAotb3ZlciBmcm9t
IGEgcHJldmlvdXMgcnVuKSwgZ29vZ2xldGVzdCB3aWxsIHBpY2sgYSBkaWZmZXJlbnQgbmFtZSAo
ZS5nLgotYGZvb190ZXN0XzEueG1sYCkgdG8gYXZvaWQgb3ZlcndyaXRpbmcgaXQuCi0KLQotVGhl
IHJlcG9ydCBpcyBiYXNlZCBvbiB0aGUgYGp1bml0cmVwb3J0YCBBbnQgdGFzay4gU2luY2UgdGhh
dCBmb3JtYXQgd2FzCi1vcmlnaW5hbGx5IGludGVuZGVkIGZvciBKYXZhLCBhIGxpdHRsZSBpbnRl
cnByZXRhdGlvbiBpcyByZXF1aXJlZCB0byBtYWtlIGl0Ci1hcHBseSB0byBnb29nbGV0ZXN0IHRl
c3RzLCBhcyBzaG93biBoZXJlOgotCi1gYGB4bWwKLTx0ZXN0c3VpdGVzIG5hbWU9IkFsbFRlc3Rz
IiAuLi4+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0idGVzdF9jYXNlX25hbWUiIC4uLj4KLSAgICA8dGVz
dGNhc2UgICAgbmFtZT0idGVzdF9uYW1lIiAuLi4+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdlPSIu
Li4iLz4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Ii4uLiIvPgotICAgICAgPGZhaWx1cmUgbWVz
c2FnZT0iLi4uIi8+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0
ZXM+Ci1gYGAKLQotKiAgIFRoZSByb290IGA8dGVzdHN1aXRlcz5gIGVsZW1lbnQgY29ycmVzcG9u
ZHMgdG8gdGhlIGVudGlyZSB0ZXN0IHByb2dyYW0uCi0qICAgYDx0ZXN0c3VpdGU+YCBlbGVtZW50
cyBjb3JyZXNwb25kIHRvIGdvb2dsZXRlc3QgdGVzdCBjYXNlcy4KLSogICBgPHRlc3RjYXNlPmAg
ZWxlbWVudHMgY29ycmVzcG9uZCB0byBnb29nbGV0ZXN0IHRlc3QgZnVuY3Rpb25zLgotCi1Gb3Ig
aW5zdGFuY2UsIHRoZSBmb2xsb3dpbmcgcHJvZ3JhbQotCi1gYGBjKysKLVRFU1QoTWF0aFRlc3Qs
IEFkZGl0aW9uKSB7IC4uLiB9Ci1URVNUKE1hdGhUZXN0LCBTdWJ0cmFjdGlvbikgeyAuLi4gfQot
VEVTVChMb2dpY1Rlc3QsIE5vbkNvbnRyYWRpY3Rpb24pIHsgLi4uIH0KLWBgYAotCi1jb3VsZCBn
ZW5lcmF0ZSB0aGlzIHJlcG9ydDoKLQotYGBgeG1sCi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJVVEYtOCI/PgotPHRlc3RzdWl0ZXMgdGVzdHM9IjMiIGZhaWx1cmVzPSIxIiBlcnJvcnM9
IjAiIHRpbWU9IjAuMDM1IiB0aW1lc3RhbXA9IjIwMTEtMTAtMzFUMTg6NTI6NDIiIG5hbWU9IkFs
bFRlc3RzIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJNYXRoVGVzdCIgdGVzdHM9IjIiIGZhaWx1cmVz
PSIxIiBlcnJvcnM9IjAiIHRpbWU9IjAuMDE1Ij4KLSAgICA8dGVzdGNhc2UgbmFtZT0iQWRkaXRp
b24iIHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNyIgY2xhc3NuYW1lPSIiPgotICAgICAgPGZhaWx1
cmUgbWVzc2FnZT0iVmFsdWUgb2Y6IGFkZCgxLCAxKSYjeDBBOyAgQWN0dWFsOiAzJiN4MEE7RXhw
ZWN0ZWQ6IDIiIHR5cGU9IiI+Li4uPC9mYWlsdXJlPgotICAgICAgPGZhaWx1cmUgbWVzc2FnZT0i
VmFsdWUgb2Y6IGFkZCgxLCAtMSkmI3gwQTsgIEFjdHVhbDogMSYjeDBBO0V4cGVjdGVkOiAwIiB0
eXBlPSIiPi4uLjwvZmFpbHVyZT4KLSAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJTdWJ0cmFjdGlvbiIgc3RhdHVzPSJydW4iIHRpbWU9IjAuMDA1IiBjbGFzc25hbWU9IiI+Ci0g
ICAgPC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTG9naWNU
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGVycm9ycz0iMCIgdGltZT0iMC4wMDUiPgotICAg
IDx0ZXN0Y2FzZSBuYW1lPSJOb25Db250cmFkaWN0aW9uIiBzdGF0dXM9InJ1biIgdGltZT0iMC4w
MDUiIGNsYXNzbmFtZT0iIj4KLSAgICA8L3Rlc3RjYXNlPgotICA8L3Rlc3RzdWl0ZT4KLTwvdGVz
dHN1aXRlcz4KLWBgYAotCi1UaGluZ3MgdG8gbm90ZToKLQotKiAgIFRoZSBgdGVzdHNgIGF0dHJp
YnV0ZSBvZiBhIGA8dGVzdHN1aXRlcz5gIG9yIGA8dGVzdHN1aXRlPmAgZWxlbWVudCB0ZWxscyBo
b3cKLSAgICBtYW55IHRlc3QgZnVuY3Rpb25zIHRoZSBnb29nbGV0ZXN0IHByb2dyYW0gb3IgdGVz
dCBjYXNlIGNvbnRhaW5zLCB3aGlsZSB0aGUKLSAgICBgZmFpbHVyZXNgIGF0dHJpYnV0ZSB0ZWxs
cyBob3cgbWFueSBvZiB0aGVtIGZhaWxlZC4KLQotKiAgIFRoZSBgdGltZWAgYXR0cmlidXRlIGV4
cHJlc3NlcyB0aGUgZHVyYXRpb24gb2YgdGhlIHRlc3QsIHRlc3QgY2FzZSwgb3IKLSAgICBlbnRp
cmUgdGVzdCBwcm9ncmFtIGluIHNlY29uZHMuCi0KLSogICBUaGUgYHRpbWVzdGFtcGAgYXR0cmli
dXRlIHJlY29yZHMgdGhlIGxvY2FsIGRhdGUgYW5kIHRpbWUgb2YgdGhlIHRlc3QKLSAgICBleGVj
dXRpb24uCi0KLSogICBFYWNoIGA8ZmFpbHVyZT5gIGVsZW1lbnQgY29ycmVzcG9uZHMgdG8gYSBz
aW5nbGUgZmFpbGVkIGdvb2dsZXRlc3QKLSAgICBhc3NlcnRpb24uCi0KLSoqQXZhaWxhYmlsaXR5
Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgR2VuZXJhdGluZyBhbiBKU09OIFJlcG9y
dAotCi1nb29nbGV0ZXN0IGNhbiBhbHNvIGVtaXQgYSBKU09OIHJlcG9ydCBhcyBhbiBhbHRlcm5h
dGl2ZSBmb3JtYXQgdG8gWE1MLiBUbwotZ2VuZXJhdGUgdGhlIEpTT04gcmVwb3J0LCBzZXQgdGhl
IGBHVEVTVF9PVVRQVVRgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZQotYC0tZ3Rlc3Rfb3V0
cHV0YCBmbGFnIHRvIHRoZSBzdHJpbmcgYCJqc29uOnBhdGhfdG9fb3V0cHV0X2ZpbGUiYCwgd2hp
Y2ggd2lsbAotY3JlYXRlIHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi4gWW91IGNhbiBh
bHNvIGp1c3QgdXNlIHRoZSBzdHJpbmcKLWAianNvbiJgLCBpbiB3aGljaCBjYXNlIHRoZSBvdXRw
dXQgY2FuIGJlIGZvdW5kIGluIHRoZSBgdGVzdF9kZXRhaWwuanNvbmAgZmlsZQotaW4gdGhlIGN1
cnJlbnQgZGlyZWN0b3J5LgotCi1UaGUgcmVwb3J0IGZvcm1hdCBjb25mb3JtcyB0byB0aGUgZm9s
bG93aW5nIEpTT04gU2NoZW1hOgotCi1gYGBqc29uCi17Ci0gICIkc2NoZW1hIjogImh0dHA6Ly9q
c29uLXNjaGVtYS5vcmcvc2NoZW1hIyIsCi0gICJ0eXBlIjogIm9iamVjdCIsCi0gICJkZWZpbml0
aW9ucyI6IHsKLSAgICAiVGVzdENhc2UiOiB7Ci0gICAgICAidHlwZSI6ICJvYmplY3QiLAotICAg
ICAgInByb3BlcnRpZXMiOiB7Ci0gICAgICAgICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0s
Ci0gICAgICAgICJ0ZXN0cyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgImZhaWx1
cmVzIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAiZGlzYWJsZWQiOiB7ICJ0eXBl
IjogImludGVnZXIiIH0sCi0gICAgICAgICJ0aW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0g
ICAgICAgICJ0ZXN0c3VpdGUiOiB7Ci0gICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAotICAgICAg
ICAgICJpdGVtcyI6IHsKLSAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVGVzdElu
Zm8iCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLSAgICAiVGVzdElu
Zm8iOiB7Ci0gICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgInByb3BlcnRpZXMiOiB7Ci0g
ICAgICAgICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICJzdGF0dXMiOiB7
Ci0gICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAiZW51bSI6IFsiUlVOIiwg
Ik5PVFJVTiJdCi0gICAgICAgIH0sCi0gICAgICAgICJ0aW1lIjogeyAidHlwZSI6ICJzdHJpbmci
IH0sCi0gICAgICAgICJjbGFzc25hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAg
ImZhaWx1cmVzIjogewotICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKLSAgICAgICAgICAiaXRl
bXMiOiB7Ci0gICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL0ZhaWx1cmUiCi0gICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLSAgICAiRmFpbHVyZSI6IHsKLSAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAicHJvcGVydGllcyI6IHsKLSAgICAgICAgImZh
aWx1cmVzIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICJ0eXBlIjogeyAidHlwZSI6
ICJzdHJpbmciIH0KLSAgICAgIH0KLSAgICB9Ci0gIH0sCi0gICJwcm9wZXJ0aWVzIjogewotICAg
ICJ0ZXN0cyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAiZmFpbHVyZXMiOiB7ICJ0eXBl
IjogImludGVnZXIiIH0sCi0gICAgImRpc2FibGVkIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAot
ICAgICJlcnJvcnMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgInRpbWVzdGFtcCI6IHsK
LSAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKLSAg
ICB9LAotICAgICJ0aW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgIm5hbWUiOiB7ICJ0
eXBlIjogInN0cmluZyIgfSwKLSAgICAidGVzdHN1aXRlcyI6IHsKLSAgICAgICJ0eXBlIjogImFy
cmF5IiwKLSAgICAgICJpdGVtcyI6IHsKLSAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9U
ZXN0Q2FzZSIKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLWBgYAotCi1UaGUgcmVwb3J0IHVzZXMg
dGhlIGZvcm1hdCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBmb2xsb3dpbmcgUHJvdG8zIHVzaW5nIHRo
ZSBbSlNPTgotZW5jb2RpbmddKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29s
LWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbik6Ci0KLWBgYHByb3RvCi1zeW50YXggPSAicHJvdG8z
IjsKLQotcGFja2FnZSBnb29nbGV0ZXN0OwotCi1pbXBvcnQgImdvb2dsZS9wcm90b2J1Zi90aW1l
c3RhbXAucHJvdG8iOwotaW1wb3J0ICJnb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8iOwot
Ci1tZXNzYWdlIFVuaXRUZXN0IHsKLSAgaW50MzIgdGVzdHMgPSAxOwotICBpbnQzMiBmYWlsdXJl
cyA9IDI7Ci0gIGludDMyIGRpc2FibGVkID0gMzsKLSAgaW50MzIgZXJyb3JzID0gNDsKLSAgZ29v
Z2xlLnByb3RvYnVmLlRpbWVzdGFtcCB0aW1lc3RhbXAgPSA1OwotICBnb29nbGUucHJvdG9idWYu
RHVyYXRpb24gdGltZSA9IDY7Ci0gIHN0cmluZyBuYW1lID0gNzsKLSAgcmVwZWF0ZWQgVGVzdENh
c2UgdGVzdHN1aXRlcyA9IDg7Ci19Ci0KLW1lc3NhZ2UgVGVzdENhc2UgewotICBzdHJpbmcgbmFt
ZSA9IDE7Ci0gIGludDMyIHRlc3RzID0gMjsKLSAgaW50MzIgZmFpbHVyZXMgPSAzOwotICBpbnQz
MiBkaXNhYmxlZCA9IDQ7Ci0gIGludDMyIGVycm9ycyA9IDU7Ci0gIGdvb2dsZS5wcm90b2J1Zi5E
dXJhdGlvbiB0aW1lID0gNjsKLSAgcmVwZWF0ZWQgVGVzdEluZm8gdGVzdHN1aXRlID0gNzsKLX0K
LQotbWVzc2FnZSBUZXN0SW5mbyB7Ci0gIHN0cmluZyBuYW1lID0gMTsKLSAgZW51bSBTdGF0dXMg
ewotICAgIFJVTiA9IDA7Ci0gICAgTk9UUlVOID0gMTsKLSAgfQotICBTdGF0dXMgc3RhdHVzID0g
MjsKLSAgZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIHRpbWUgPSAzOwotICBzdHJpbmcgY2xhc3Nu
YW1lID0gNDsKLSAgbWVzc2FnZSBGYWlsdXJlIHsKLSAgICBzdHJpbmcgZmFpbHVyZXMgPSAxOwot
ICAgIHN0cmluZyB0eXBlID0gMjsKLSAgfQotICByZXBlYXRlZCBGYWlsdXJlIGZhaWx1cmVzID0g
NTsKLX0KLWBgYAotCi1Gb3IgaW5zdGFuY2UsIHRoZSBmb2xsb3dpbmcgcHJvZ3JhbQotCi1gYGBj
KysKLVRFU1QoTWF0aFRlc3QsIEFkZGl0aW9uKSB7IC4uLiB9Ci1URVNUKE1hdGhUZXN0LCBTdWJ0
cmFjdGlvbikgeyAuLi4gfQotVEVTVChMb2dpY1Rlc3QsIE5vbkNvbnRyYWRpY3Rpb24pIHsgLi4u
IH0KLWBgYAotCi1jb3VsZCBnZW5lcmF0ZSB0aGlzIHJlcG9ydDoKLQotYGBganNvbgotewotICAi
dGVzdHMiOiAzLAotICAiZmFpbHVyZXMiOiAxLAotICAiZXJyb3JzIjogMCwKLSAgInRpbWUiOiAi
MC4wMzVzIiwKLSAgInRpbWVzdGFtcCI6ICIyMDExLTEwLTMxVDE4OjUyOjQyWiIKLSAgIm5hbWUi
OiAiQWxsVGVzdHMiLAotICAidGVzdHN1aXRlcyI6IFsKLSAgICB7Ci0gICAgICAibmFtZSI6ICJN
YXRoVGVzdCIsCi0gICAgICAidGVzdHMiOiAyLAotICAgICAgImZhaWx1cmVzIjogMSwKLSAgICAg
ICJlcnJvcnMiOiAwLAotICAgICAgInRpbWUiOiAiMC4wMTVzIiwKLSAgICAgICJ0ZXN0c3VpdGUi
OiBbCi0gICAgICAgIHsKLSAgICAgICAgICAibmFtZSI6ICJBZGRpdGlvbiIsCi0gICAgICAgICAg
InN0YXR1cyI6ICJSVU4iLAotICAgICAgICAgICJ0aW1lIjogIjAuMDA3cyIsCi0gICAgICAgICAg
ImNsYXNzbmFtZSI6ICIiLAotICAgICAgICAgICJmYWlsdXJlcyI6IFsKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiVmFsdWUgb2Y6IGFkZCgxLCAxKVx4MEEgIEFjdHVh
bDogM1x4MEFFeHBlY3RlZDogMiIsCi0gICAgICAgICAgICAgICJ0eXBlIjogIiIKLSAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICJtZXNzYWdlIjogIlZhbHVlIG9m
OiBhZGQoMSwgLTEpXHgwQSAgQWN0dWFsOiAxXHgwQUV4cGVjdGVkOiAwIiwKLSAgICAgICAgICAg
ICAgInR5cGUiOiAiIgotICAgICAgICAgICAgfQotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICJuYW1lIjogIlN1YnRyYWN0aW9uIiwKLSAgICAgICAgICAic3Rh
dHVzIjogIlJVTiIsCi0gICAgICAgICAgInRpbWUiOiAiMC4wMDVzIiwKLSAgICAgICAgICAiY2xh
c3NuYW1lIjogIiIKLSAgICAgICAgfQotICAgICAgXQotICAgIH0KLSAgICB7Ci0gICAgICAibmFt
ZSI6ICJMb2dpY1Rlc3QiLAotICAgICAgInRlc3RzIjogMSwKLSAgICAgICJmYWlsdXJlcyI6IDAs
Ci0gICAgICAiZXJyb3JzIjogMCwKLSAgICAgICJ0aW1lIjogIjAuMDA1cyIsCi0gICAgICAidGVz
dHN1aXRlIjogWwotICAgICAgICB7Ci0gICAgICAgICAgIm5hbWUiOiAiTm9uQ29udHJhZGljdGlv
biIsCi0gICAgICAgICAgInN0YXR1cyI6ICJSVU4iLAotICAgICAgICAgICJ0aW1lIjogIjAuMDA1
cyIsCi0gICAgICAgICAgImNsYXNzbmFtZSI6ICIiCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9
Ci0gIF0KLX0KLWBgYAotCi1JTVBPUlRBTlQ6IFRoZSBleGFjdCBmb3JtYXQgb2YgdGhlIEpTT04g
ZG9jdW1lbnQgaXMgc3ViamVjdCB0byBjaGFuZ2UuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBDb250cm9sbGluZyBIb3cgRmFpbHVyZXMgQXJlIFJlcG9y
dGVkCi0KLSMjIyMgVHVybmluZyBBc3NlcnRpb24gRmFpbHVyZXMgaW50byBCcmVhay1Qb2ludHMK
LQotV2hlbiBydW5uaW5nIHRlc3QgcHJvZ3JhbXMgdW5kZXIgYSBkZWJ1Z2dlciwgaXQncyB2ZXJ5
IGNvbnZlbmllbnQgaWYgdGhlCi1kZWJ1Z2dlciBjYW4gY2F0Y2ggYW4gYXNzZXJ0aW9uIGZhaWx1
cmUgYW5kIGF1dG9tYXRpY2FsbHkgZHJvcCBpbnRvIGludGVyYWN0aXZlCi1tb2RlLiBnb29nbGV0
ZXN0J3MgKmJyZWFrLW9uLWZhaWx1cmUqIG1vZGUgc3VwcG9ydHMgdGhpcyBiZWhhdmlvci4KLQot
VG8gZW5hYmxlIGl0LCBzZXQgdGhlIGBHVEVTVF9CUkVBS19PTl9GQUlMVVJFYCBlbnZpcm9ubWVu
dCB2YXJpYWJsZSB0byBhIHZhbHVlCi1vdGhlciB0aGFuIGAwYCAuIEFsdGVybmF0aXZlbHksIHlv
dSBjYW4gdXNlIHRoZSBgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlYAotY29tbWFuZCBsaW5lIGZs
YWcuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgRGlz
YWJsaW5nIENhdGNoaW5nIFRlc3QtVGhyb3duIEV4Y2VwdGlvbnMKLQotZ29vZ2xldGVzdCBjYW4g
YmUgdXNlZCBlaXRoZXIgd2l0aCBvciB3aXRob3V0IGV4Y2VwdGlvbnMgZW5hYmxlZC4gSWYgYSB0
ZXN0Ci10aHJvd3MgYSBDKysgZXhjZXB0aW9uIG9yIChvbiBXaW5kb3dzKSBhIHN0cnVjdHVyZWQg
ZXhjZXB0aW9uIChTRUgpLCBieSBkZWZhdWx0Ci1nb29nbGV0ZXN0IGNhdGNoZXMgaXQsIHJlcG9y
dHMgaXQgYXMgYSB0ZXN0IGZhaWx1cmUsIGFuZCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dAotdGVz
dCBtZXRob2QuIFRoaXMgbWF4aW1pemVzIHRoZSBjb3ZlcmFnZSBvZiBhIHRlc3QgcnVuLiBBbHNv
LCBvbiBXaW5kb3dzIGFuCi11bmNhdWdodCBleGNlcHRpb24gd2lsbCBjYXVzZSBhIHBvcC11cCB3
aW5kb3csIHNvIGNhdGNoaW5nIHRoZSBleGNlcHRpb25zIGFsbG93cwoteW91IHRvIHJ1biB0aGUg
dGVzdHMgYXV0b21hdGljYWxseS4KLQotV2hlbiBkZWJ1Z2dpbmcgdGhlIHRlc3QgZmFpbHVyZXMs
IGhvd2V2ZXIsIHlvdSBtYXkgaW5zdGVhZCB3YW50IHRoZSBleGNlcHRpb25zCi10byBiZSBoYW5k
bGVkIGJ5IHRoZSBkZWJ1Z2dlciwgc3VjaCB0aGF0IHlvdSBjYW4gZXhhbWluZSB0aGUgY2FsbCBz
dGFjayB3aGVuIGFuCi1leGNlcHRpb24gaXMgdGhyb3duLiBUbyBhY2hpZXZlIHRoYXQsIHNldCB0
aGUgYEdURVNUX0NBVENIX0VYQ0VQVElPTlNgCi1lbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMGAs
IG9yIHVzZSB0aGUgYC0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucz0wYCBmbGFnIHdoZW4KLXJ1bm5p
bmcgdGhlIHRlc3RzLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2ZhcS5tZCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvZmFxLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZDQyZmY3ZGJhYThmYWJkMGNjNjUyZmQ3MDUyNzk4MTg0ZTk1YzQ5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2RvY3MvZmFxLm1kCisrKyAvZGV2L251bGwKQEAgLTEsNzcwICswLDAgQEAKLSMgR29vZ2xl
dGVzdCBGQVEKLQotCi0jIyBXaHkgc2hvdWxkIHRlc3QgY2FzZSBuYW1lcyBhbmQgdGVzdCBuYW1l
cyBub3QgY29udGFpbiB1bmRlcnNjb3JlPwotCi1VbmRlcnNjb3JlIChgX2ApIGlzIHNwZWNpYWws
IGFzIEMrKyByZXNlcnZlcyB0aGUgZm9sbG93aW5nIHRvIGJlIHVzZWQgYnkgdGhlCi1jb21waWxl
ciBhbmQgdGhlIHN0YW5kYXJkIGxpYnJhcnk6Ci0KLTEuICBhbnkgaWRlbnRpZmllciB0aGF0IHN0
YXJ0cyB3aXRoIGFuIGBfYCBmb2xsb3dlZCBieSBhbiB1cHBlci1jYXNlIGxldHRlciwgYW5kCi0x
LiAgYW55IGlkZW50aWZpZXIgdGhhdCBjb250YWlucyB0d28gY29uc2VjdXRpdmUgdW5kZXJzY29y
ZXMgKGkuZS4gYF9fYCkKLSAgICAqYW55d2hlcmUqIGluIGl0cyBuYW1lLgotCi1Vc2VyIGNvZGUg
aXMgKnByb2hpYml0ZWQqIGZyb20gdXNpbmcgc3VjaCBpZGVudGlmaWVycy4KLQotTm93IGxldCdz
IGxvb2sgYXQgd2hhdCB0aGlzIG1lYW5zIGZvciBgVEVTVGAgYW5kIGBURVNUX0ZgLgotCi1DdXJy
ZW50bHkgYFRFU1QoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSlgIGdlbmVyYXRlcyBhIGNsYXNzIG5h
bWVkCi1gVGVzdENhc2VOYW1lX1Rlc3ROYW1lX1Rlc3RgLiBXaGF0IGhhcHBlbnMgaWYgYFRlc3RD
YXNlTmFtZWAgb3IgYFRlc3ROYW1lYAotY29udGFpbnMgYF9gPwotCi0xLiAgSWYgYFRlc3RDYXNl
TmFtZWAgc3RhcnRzIHdpdGggYW4gYF9gIGZvbGxvd2VkIGJ5IGFuIHVwcGVyLWNhc2UgbGV0dGVy
IChzYXksCi0gICAgYF9Gb29gKSwgd2UgZW5kIHVwIHdpdGggYF9Gb29fVGVzdE5hbWVfVGVzdGAs
IHdoaWNoIGlzIHJlc2VydmVkIGFuZCB0aHVzCi0gICAgaW52YWxpZC4KLTEuICBJZiBgVGVzdENh
c2VOYW1lYCBlbmRzIHdpdGggYW4gYF9gIChzYXksIGBGb29fYCksIHdlIGdldAotICAgIGBGb29f
X1Rlc3ROYW1lX1Rlc3RgLCB3aGljaCBpcyBpbnZhbGlkLgotMS4gIElmIGBUZXN0TmFtZWAgc3Rh
cnRzIHdpdGggYW4gYF9gIChzYXksIGBfQmFyYCksIHdlIGdldAotICAgIGBUZXN0Q2FzZU5hbWVf
X0Jhcl9UZXN0YCwgd2hpY2ggaXMgaW52YWxpZC4KLTEuICBJZiBgVGVzdE5hbWVgIGVuZHMgd2l0
aCBhbiBgX2AgKHNheSwgYEJhcl9gKSwgd2UgZ2V0Ci0gICAgYFRlc3RDYXNlTmFtZV9CYXJfX1Rl
c3RgLCB3aGljaCBpcyBpbnZhbGlkLgotCi1TbyBjbGVhcmx5IGBUZXN0Q2FzZU5hbWVgIGFuZCBg
VGVzdE5hbWVgIGNhbm5vdCBzdGFydCBvciBlbmQgd2l0aCBgX2AgKEFjdHVhbGx5LAotYFRlc3RD
YXNlTmFtZWAgY2FuIHN0YXJ0IHdpdGggYF9gIC0tIGFzIGxvbmcgYXMgdGhlIGBfYCBpc24ndCBm
b2xsb3dlZCBieSBhbgotdXBwZXItY2FzZSBsZXR0ZXIuIEJ1dCB0aGF0J3MgZ2V0dGluZyBjb21w
bGljYXRlZC4gU28gZm9yIHNpbXBsaWNpdHkgd2UganVzdCBzYXkKLXRoYXQgaXQgY2Fubm90IHN0
YXJ0IHdpdGggYF9gLikuCi0KLUl0IG1heSBzZWVtIGZpbmUgZm9yIGBUZXN0Q2FzZU5hbWVgIGFu
ZCBgVGVzdE5hbWVgIHRvIGNvbnRhaW4gYF9gIGluIHRoZSBtaWRkbGUuCi1Ib3dldmVyLCBjb25z
aWRlciB0aGlzOgotCi1gYGBjKysKLVRFU1QoVGltZSwgRmxpZXNfTGlrZV9Bbl9BcnJvdykgeyAu
Li4gfQotVEVTVChUaW1lX0ZsaWVzLCBMaWtlX0FuX0Fycm93KSB7IC4uLiB9Ci1gYGAKLQotTm93
LCB0aGUgdHdvIGBURVNUYHMgd2lsbCBib3RoIGdlbmVyYXRlIHRoZSBzYW1lIGNsYXNzCi0oYFRp
bWVfRmxpZXNfTGlrZV9Bbl9BcnJvd19UZXN0YCkuIFRoYXQncyBub3QgZ29vZC4KLQotU28gZm9y
IHNpbXBsaWNpdHksIHdlIGp1c3QgYXNrIHRoZSB1c2VycyB0byBhdm9pZCBgX2AgaW4gYFRlc3RD
YXNlTmFtZWAgYW5kCi1gVGVzdE5hbWVgLiBUaGUgcnVsZSBpcyBtb3JlIGNvbnN0cmFpbmluZyB0
aGFuIG5lY2Vzc2FyeSwgYnV0IGl0J3Mgc2ltcGxlIGFuZAotZWFzeSB0byByZW1lbWJlci4gSXQg
YWxzbyBnaXZlcyBnb29nbGV0ZXN0IHNvbWUgd2lnZ2xlIHJvb20gaW4gY2FzZSBpdHMKLWltcGxl
bWVudGF0aW9uIG5lZWRzIHRvIGNoYW5nZSBpbiB0aGUgZnV0dXJlLgotCi1JZiB5b3UgdmlvbGF0
ZSB0aGUgcnVsZSwgdGhlcmUgbWF5IG5vdCBiZSBpbW1lZGlhdGUgY29uc2VxdWVuY2VzLCBidXQg
eW91ciB0ZXN0Ci1tYXkgKGp1c3QgbWF5KSBicmVhayB3aXRoIGEgbmV3IGNvbXBpbGVyIChvciBh
IG5ldyB2ZXJzaW9uIG9mIHRoZSBjb21waWxlciB5b3UKLWFyZSB1c2luZykgb3Igd2l0aCBhIG5l
dyB2ZXJzaW9uIG9mIGdvb2dsZXRlc3QuIFRoZXJlZm9yZSBpdCdzIGJlc3QgdG8gZm9sbG93Ci10
aGUgcnVsZS4KLQotIyMgV2h5IGRvZXMgZ29vZ2xldGVzdCBzdXBwb3J0IGBFWFBFQ1RfRVEoTlVM
TCwgcHRyKWAgYW5kIGBBU1NFUlRfRVEoTlVMTCwgcHRyKWAgYnV0IG5vdCBgRVhQRUNUX05FKE5V
TEwsIHB0cilgIGFuZCBgQVNTRVJUX05FKE5VTEwsIHB0cilgPwotCi1GaXJzdCBvZiBhbGwgeW91
IGNhbiB1c2UgYEVYUEVDVF9ORShudWxscHRyLCBwdHIpYCBhbmQgYEFTU0VSVF9ORShudWxscHRy
LAotcHRyKWAuIFRoaXMgaXMgdGhlIHByZWZlcnJlZCBzeW50YXggaW4gdGhlIHN0eWxlIGd1aWRl
IGJlY2F1c2UgbnVsbHB0ciBkb2VzIG5vdAotaGF2ZSB0aGUgdHlwZSBwcm9ibGVtcyB0aGF0IE5V
TEwgZG9lcy4gV2hpY2ggaXMgd2h5IE5VTEwgZG9lcyBub3Qgd29yay4KLQotRHVlIHRvIHNvbWUg
cGVjdWxpYXJpdHkgb2YgQysrLCBpdCByZXF1aXJlcyBzb21lIG5vbi10cml2aWFsIHRlbXBsYXRl
IG1ldGEKLXByb2dyYW1taW5nIHRyaWNrcyB0byBzdXBwb3J0IHVzaW5nIGBOVUxMYCBhcyBhbiBh
cmd1bWVudCBvZiB0aGUgYEVYUEVDVF9YWCgpYAotYW5kIGBBU1NFUlRfWFgoKWAgbWFjcm9zLiBU
aGVyZWZvcmUgd2Ugb25seSBkbyBpdCB3aGVyZSBpdCdzIG1vc3QgbmVlZGVkCi0ob3RoZXJ3aXNl
IHdlIG1ha2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGdvb2dsZXRlc3QgaGFyZGVyIHRvIG1haW50
YWluIGFuZCBtb3JlCi1lcnJvci1wcm9uZSB0aGFuIG5lY2Vzc2FyeSkuCi0KLVRoZSBgRVhQRUNU
X0VRKClgIG1hY3JvIHRha2VzIHRoZSAqZXhwZWN0ZWQqIHZhbHVlIGFzIGl0cyBmaXJzdCBhcmd1
bWVudCBhbmQgdGhlCi0qYWN0dWFsKiB2YWx1ZSBhcyB0aGUgc2Vjb25kLiBJdCdzIHJlYXNvbmFi
bGUgdGhhdCBzb21lb25lIHdhbnRzIHRvIHdyaXRlCi1gRVhQRUNUX0VRKE5VTEwsIHNvbWVfZXhw
cmVzc2lvbilgLCBhbmQgdGhpcyBpbmRlZWQgd2FzIHJlcXVlc3RlZCBzZXZlcmFsIHRpbWVzLgot
VGhlcmVmb3JlIHdlIGltcGxlbWVudGVkIGl0LgotCi1UaGUgbmVlZCBmb3IgYEVYUEVDVF9ORShO
VUxMLCBwdHIpYCBpc24ndCBuZWFybHkgYXMgc3Ryb25nLiBXaGVuIHRoZSBhc3NlcnRpb24KLWZh
aWxzLCB5b3UgYWxyZWFkeSBrbm93IHRoYXQgYHB0cmAgbXVzdCBiZSBgTlVMTGAsIHNvIGl0IGRv
ZXNuJ3QgYWRkIGFueQotaW5mb3JtYXRpb24gdG8gcHJpbnQgYHB0cmAgaW4gdGhpcyBjYXNlLiBU
aGF0IG1lYW5zIGBFWFBFQ1RfVFJVRShwdHIgIT0gTlVMTClgCi13b3JrcyBqdXN0IGFzIHdlbGwu
Ci0KLUlmIHdlIHdlcmUgdG8gc3VwcG9ydCBgRVhQRUNUX05FKE5VTEwsIHB0cilgLCBmb3IgY29u
c2lzdGVuY3kgd2UnbGwgaGF2ZSB0bwotc3VwcG9ydCBgRVhQRUNUX05FKHB0ciwgTlVMTClgIGFz
IHdlbGwsIGFzIHVubGlrZSBgRVhQRUNUX0VRYCwgd2UgZG9uJ3QgaGF2ZSBhCi1jb252ZW50aW9u
IG9uIHRoZSBvcmRlciBvZiB0aGUgdHdvIGFyZ3VtZW50cyBmb3IgYEVYUEVDVF9ORWAuIFRoaXMg
bWVhbnMgdXNpbmcKLXRoZSB0ZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nIHRyaWNrcyB0d2ljZSBp
biB0aGUgaW1wbGVtZW50YXRpb24sIG1ha2luZyBpdCBldmVuCi1oYXJkZXIgdG8gdW5kZXJzdGFu
ZCBhbmQgbWFpbnRhaW4uIFdlIGJlbGlldmUgdGhlIGJlbmVmaXQgZG9lc24ndCBqdXN0aWZ5IHRo
ZQotY29zdC4KLQotRmluYWxseSwgd2l0aCB0aGUgZ3Jvd3RoIG9mIHRoZSBnTW9jayBtYXRjaGVy
IGxpYnJhcnksIHdlIGFyZSBlbmNvdXJhZ2luZyBwZW9wbGUKLXRvIHVzZSB0aGUgdW5pZmllZCBg
RVhQRUNUX1RIQVQodmFsdWUsIG1hdGNoZXIpYCBzeW50YXggbW9yZSBvZnRlbiBpbiB0ZXN0cy4g
T25lCi1zaWduaWZpY2FudCBhZHZhbnRhZ2Ugb2YgdGhlIG1hdGNoZXIgYXBwcm9hY2ggaXMgdGhh
dCBtYXRjaGVycyBjYW4gYmUgZWFzaWx5Ci1jb21iaW5lZCB0byBmb3JtIG5ldyBtYXRjaGVycywg
d2hpbGUgdGhlIGBFWFBFQ1RfTkVgLCBldGMsIG1hY3JvcyBjYW5ub3QgYmUKLWVhc2lseSBjb21i
aW5lZC4gVGhlcmVmb3JlIHdlIHdhbnQgdG8gaW52ZXN0IG1vcmUgaW4gdGhlIG1hdGNoZXJzIHRo
YW4gaW4gdGhlCi1gRVhQRUNUX1hYKClgIG1hY3Jvcy4KLQotIyMgSSBuZWVkIHRvIHRlc3QgdGhh
dCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFuIGludGVyZmFjZSBzYXRpc2Z5IHNvbWUg
Y29tbW9uIHJlcXVpcmVtZW50cy4gU2hvdWxkIEkgdXNlIHR5cGVkIHRlc3RzIG9yIHZhbHVlLXBh
cmFtZXRlcml6ZWQgdGVzdHM/Ci0KLUZvciB0ZXN0aW5nIHZhcmlvdXMgaW1wbGVtZW50YXRpb25z
IG9mIHRoZSBzYW1lIGludGVyZmFjZSwgZWl0aGVyIHR5cGVkIHRlc3RzIG9yCi12YWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIGNhbiBnZXQgaXQgZG9uZS4gSXQncyByZWFsbHkgdXAgdG8geW91IHRo
ZSB1c2VyIHRvCi1kZWNpZGUgd2hpY2ggaXMgbW9yZSBjb252ZW5pZW50IGZvciB5b3UsIGRlcGVu
ZGluZyBvbiB5b3VyIHBhcnRpY3VsYXIgY2FzZS4gU29tZQotcm91Z2ggZ3VpZGVsaW5lczoKLQot
KiAgIFR5cGVkIHRlc3RzIGNhbiBiZSBlYXNpZXIgdG8gd3JpdGUgaWYgaW5zdGFuY2VzIG9mIHRo
ZSBkaWZmZXJlbnQKLSAgICBpbXBsZW1lbnRhdGlvbnMgY2FuIGJlIGNyZWF0ZWQgdGhlIHNhbWUg
d2F5LCBtb2R1bG8gdGhlIHR5cGUuIEZvciBleGFtcGxlLAotICAgIGlmIGFsbCB0aGVzZSBpbXBs
ZW1lbnRhdGlvbnMgaGF2ZSBhIHB1YmxpYyBkZWZhdWx0IGNvbnN0cnVjdG9yIChzdWNoIHRoYXQK
LSAgICB5b3UgY2FuIHdyaXRlIGBuZXcgVHlwZVBhcmFtYCksIG9yIGlmIHRoZWlyIGZhY3Rvcnkg
ZnVuY3Rpb25zIGhhdmUgdGhlIHNhbWUKLSAgICBmb3JtIChlLmcuIGBDcmVhdGVJbnN0YW5jZTxU
eXBlUGFyYW0+KClgKS4KLSogICBWYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGNhbiBiZSBlYXNp
ZXIgdG8gd3JpdGUgaWYgeW91IG5lZWQgZGlmZmVyZW50IGNvZGUKLSAgICBwYXR0ZXJucyB0byBj
cmVhdGUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucycgaW5zdGFuY2VzLCBlLmcuIGBuZXcgRm9v
YCB2cwotICAgIGBuZXcgQmFyKDUpYC4gVG8gYWNjb21tb2RhdGUgZm9yIHRoZSBkaWZmZXJlbmNl
cywgeW91IGNhbiB3cml0ZSBmYWN0b3J5Ci0gICAgZnVuY3Rpb24gd3JhcHBlcnMgYW5kIHBhc3Mg
dGhlc2UgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIHRlc3RzIGFzIHRoZWlyCi0gICAgcGFyYW1l
dGVycy4KLSogICBXaGVuIGEgdHlwZWQgdGVzdCBmYWlscywgdGhlIG91dHB1dCBpbmNsdWRlcyB0
aGUgbmFtZSBvZiB0aGUgdHlwZSwgd2hpY2ggY2FuCi0gICAgaGVscCB5b3UgcXVpY2tseSBpZGVu
dGlmeSB3aGljaCBpbXBsZW1lbnRhdGlvbiBpcyB3cm9uZy4gVmFsdWUtcGFyYW1ldGVyaXplZAot
ICAgIHRlc3RzIGNhbm5vdCBkbyB0aGlzLCBzbyB0aGVyZSB5b3UnbGwgaGF2ZSB0byBsb29rIGF0
IHRoZSBpdGVyYXRpb24gbnVtYmVyCi0gICAgdG8ga25vdyB3aGljaCBpbXBsZW1lbnRhdGlvbiB0
aGUgZmFpbHVyZSBpcyBmcm9tLCB3aGljaCBpcyBsZXNzIGRpcmVjdC4KLSogICBJZiB5b3UgbWFr
ZSBhIG1pc3Rha2Ugd3JpdGluZyBhIHR5cGVkIHRlc3QsIHRoZSBjb21waWxlciBlcnJvcnMgY2Fu
IGJlCi0gICAgaGFyZGVyIHRvIGRpZ2VzdCwgYXMgdGhlIGNvZGUgaXMgdGVtcGxhdGl6ZWQuCi0q
ICAgV2hlbiB1c2luZyB0eXBlZCB0ZXN0cywgeW91IG5lZWQgdG8gbWFrZSBzdXJlIHlvdSBhcmUg
dGVzdGluZyBhZ2FpbnN0IHRoZQotICAgIGludGVyZmFjZSB0eXBlLCBub3QgdGhlIGNvbmNyZXRl
IHR5cGVzIChpbiBvdGhlciB3b3JkcywgeW91IHdhbnQgdG8gbWFrZQotICAgIHN1cmUgYGltcGxp
Y2l0X2Nhc3Q8TXlJbnRlcmZhY2UqPihteV9jb25jcmV0ZV9pbXBsKWAgd29ya3MsIG5vdCBqdXN0
IHRoYXQKLSAgICBgbXlfY29uY3JldGVfaW1wbGAgd29ya3MpLiBJdCdzIGxlc3MgbGlrZWx5IHRv
IG1ha2UgbWlzdGFrZXMgaW4gdGhpcyBhcmVhCi0gICAgd2hlbiB1c2luZyB2YWx1ZS1wYXJhbWV0
ZXJpemVkIHRlc3RzLgotCi1JIGhvcGUgSSBkaWRuJ3QgY29uZnVzZSB5b3UgbW9yZS4gOi0pIElm
IHlvdSBkb24ndCBtaW5kLCBJJ2Qgc3VnZ2VzdCB5b3UgdG8gZ2l2ZQotYm90aCBhcHByb2FjaGVz
IGEgdHJ5LiBQcmFjdGljZSBpcyBhIG11Y2ggYmV0dGVyIHdheSB0byBncmFzcCB0aGUgc3VidGxl
Ci1kaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gdG9vbHMuIE9uY2UgeW91IGhhdmUgc29tZSBj
b25jcmV0ZSBleHBlcmllbmNlLCB5b3UKLWNhbiBtdWNoIG1vcmUgZWFzaWx5IGRlY2lkZSB3aGlj
aCBvbmUgdG8gdXNlIHRoZSBuZXh0IHRpbWUuCi0KLSMjIE15IGRlYXRoIHRlc3RzIGJlY2FtZSB2
ZXJ5IHNsb3cgLSB3aGF0IGhhcHBlbmVkPwotCi1JbiBBdWd1c3QgMjAwOCB3ZSBoYWQgdG8gc3dp
dGNoIHRoZSBkZWZhdWx0IGRlYXRoIHRlc3Qgc3R5bGUgZnJvbSBgZmFzdGAgdG8KLWB0aHJlYWRz
YWZlYCwgYXMgdGhlIGZvcm1lciBpcyBubyBsb25nZXIgc2FmZSBub3cgdGhhdCB0aHJlYWRlZCBs
b2dnaW5nIGlzIHRoZQotZGVmYXVsdC4gVGhpcyBjYXVzZWQgbWFueSBkZWF0aCB0ZXN0cyB0byBz
bG93IGRvd24uIFVuZm9ydHVuYXRlbHkgdGhpcyBjaGFuZ2UKLXdhcyBuZWNlc3NhcnkuCi0KLVBs
ZWFzZSByZWFkIFtGaXhpbmcgRmFpbGluZyBEZWF0aCBUZXN0c10oZGVhdGhfdGVzdF9zdHlsZXMu
bWQpIGZvciB3aGF0IHlvdSBjYW4KLWRvLgotCi0jIyBJIGdvdCBzb21lIHJ1bi10aW1lIGVycm9y
cyBhYm91dCBpbnZhbGlkIHByb3RvIGRlc2NyaXB0b3JzIHdoZW4gdXNpbmcgYFByb3RvY29sTWVz
c2FnZUVxdWFsc2AuIEhlbHAhCi0KLSoqTm90ZToqKiBgUHJvdG9jb2xNZXNzYWdlRXF1YWxzYCBh
bmQgYFByb3RvY29sTWVzc2FnZUVxdWl2YCBhcmUgKmRlcHJlY2F0ZWQqCi1ub3cuIFBsZWFzZSB1
c2UgYEVxdWFsc1Byb3RvYCwgZXRjIGluc3RlYWQuCi0KLWBQcm90b2NvbE1lc3NhZ2VFcXVhbHNg
IGFuZCBgUHJvdG9jb2xNZXNzYWdlRXF1aXZgIHdlcmUgcmVkZWZpbmVkIHJlY2VudGx5IGFuZAot
YXJlIG5vdyBsZXNzIHRvbGVyYW50IG9uIGludmFsaWQgcHJvdG9jb2wgYnVmZmVyIGRlZmluaXRp
b25zLiBJbiBwYXJ0aWN1bGFyLCBpZgoteW91IGhhdmUgYSBgZm9vLnByb3RvYCB0aGF0IGRvZXNu
J3QgZnVsbHkgcXVhbGlmeSB0aGUgdHlwZSBvZiBhIHByb3RvY29sIG1lc3NhZ2UKLWl0IHJlZmVy
ZW5jZXMgKGUuZy4gYG1lc3NhZ2U8QmFyPmAgd2hlcmUgaXQgc2hvdWxkIGJlIGBtZXNzYWdlPGJs
YWguQmFyPmApLCB5b3UKLXdpbGwgbm93IGdldCBydW4tdGltZSBlcnJvcnMgbGlrZToKLQotYGBg
Ci0uLi4gZGVzY3JpcHRvci5jYzouLi5dIEludmFsaWQgcHJvdG8gZGVzY3JpcHRvciBmb3IgZmls
ZSAicGF0aC90by9mb28ucHJvdG8iOgotLi4uIGRlc2NyaXB0b3IuY2M6Li4uXSAgYmxhaC5NeU1l
c3NhZ2UubXlfZmllbGQ6ICIuQmFyIiBpcyBub3QgZGVmaW5lZC4KLWBgYAotCi1JZiB5b3Ugc2Vl
IHRoaXMsIHlvdXIgYC5wcm90b2AgZmlsZSBpcyBicm9rZW4gYW5kIG5lZWRzIHRvIGJlIGZpeGVk
IGJ5IG1ha2luZwotdGhlIHR5cGVzIGZ1bGx5IHF1YWxpZmllZC4gVGhlIG5ldyBkZWZpbml0aW9u
IG9mIGBQcm90b2NvbE1lc3NhZ2VFcXVhbHNgIGFuZAotYFByb3RvY29sTWVzc2FnZUVxdWl2YCBq
dXN0IGhhcHBlbiB0byByZXZlYWwgeW91ciBidWcuCi0KLSMjIE15IGRlYXRoIHRlc3QgbW9kaWZp
ZXMgc29tZSBzdGF0ZSwgYnV0IHRoZSBjaGFuZ2Ugc2VlbXMgbG9zdCBhZnRlciB0aGUgZGVhdGgg
dGVzdCBmaW5pc2hlcy4gV2h5PwotCi1EZWF0aCB0ZXN0cyAoYEVYUEVDVF9ERUFUSGAsIGV0Yykg
YXJlIGV4ZWN1dGVkIGluIGEgc3ViLXByb2Nlc3Mgcy50LiB0aGUKLWV4cGVjdGVkIGNyYXNoIHdv
bid0IGtpbGwgdGhlIHRlc3QgcHJvZ3JhbSAoaS5lLiB0aGUgcGFyZW50IHByb2Nlc3MpLiBBcyBh
Ci1yZXN1bHQsIGFueSBpbi1tZW1vcnkgc2lkZSBlZmZlY3RzIHRoZXkgaW5jdXIgYXJlIG9ic2Vy
dmFibGUgaW4gdGhlaXIgcmVzcGVjdGl2ZQotc3ViLXByb2Nlc3NlcywgYnV0IG5vdCBpbiB0aGUg
cGFyZW50IHByb2Nlc3MuIFlvdSBjYW4gdGhpbmsgb2YgdGhlbSBhcyBydW5uaW5nCi1pbiBhIHBh
cmFsbGVsIHVuaXZlcnNlLCBtb3JlIG9yIGxlc3MuCi0KLUluIHBhcnRpY3VsYXIsIGlmIHlvdSB1
c2UgW2dNb2NrXSguLi8uLi9nb29nbGVtb2NrKSBhbmQgdGhlIGRlYXRoIHRlc3Qgc3RhdGVtZW50
Ci1pbnZva2VzIHNvbWUgbW9jayBtZXRob2RzLCB0aGUgcGFyZW50IHByb2Nlc3Mgd2lsbCB0aGlu
ayB0aGUgY2FsbHMgaGF2ZSBuZXZlcgotb2NjdXJyZWQuIFRoZXJlZm9yZSwgeW91IG1heSB3YW50
IHRvIG1vdmUgeW91ciBgRVhQRUNUX0NBTExgIHN0YXRlbWVudHMgaW5zaWRlCi10aGUgYEVYUEVD
VF9ERUFUSGAgbWFjcm8uCi0KLSMjIEVYUEVDVF9FUShodG9ubChibGFoKSwgYmxhaF9ibGFoKSBn
ZW5lcmF0ZXMgd2VpcmQgY29tcGlsZXIgZXJyb3JzIGluIG9wdCBtb2RlLiBJcyB0aGlzIGEgZ29v
Z2xldGVzdCBidWc/Ci0KLUFjdHVhbGx5LCB0aGUgYnVnIGlzIGluIGBodG9ubCgpYC4KLQotQWNj
b3JkaW5nIHRvIGAnbWFuIGh0b25sJ2AsIGBodG9ubCgpYCBpcyBhICpmdW5jdGlvbiosIHdoaWNo
IG1lYW5zIGl0J3MgdmFsaWQgdG8KLXVzZSBgaHRvbmxgIGFzIGEgZnVuY3Rpb24gcG9pbnRlci4g
SG93ZXZlciwgaW4gb3B0IG1vZGUgYGh0b25sKClgIGlzIGRlZmluZWQgYXMKLWEgKm1hY3JvKiwg
d2hpY2ggYnJlYWtzIHRoaXMgdXNhZ2UuCi0KLVdvcnNlLCB0aGUgbWFjcm8gZGVmaW5pdGlvbiBv
ZiBgaHRvbmwoKWAgdXNlcyBhIGBnY2NgIGV4dGVuc2lvbiBhbmQgaXMgKm5vdCoKLXN0YW5kYXJk
IEMrKy4gVGhhdCBoYWNreSBpbXBsZW1lbnRhdGlvbiBoYXMgc29tZSBhZCBob2MgbGltaXRhdGlv
bnMuIEluCi1wYXJ0aWN1bGFyLCBpdCBwcmV2ZW50cyB5b3UgZnJvbSB3cml0aW5nIGBGb288c2l6
ZW9mKGh0b25sKHgpKT4oKWAsIHdoZXJlIGBGb29gCi1pcyBhIHRlbXBsYXRlIHRoYXQgaGFzIGFu
IGludGVncmFsIGFyZ3VtZW50LgotCi1UaGUgaW1wbGVtZW50YXRpb24gb2YgYEVYUEVDVF9FUShh
LCBiKWAgdXNlcyBgc2l6ZW9mKC4uLiBhIC4uLilgIGluc2lkZSBhCi10ZW1wbGF0ZSBhcmd1bWVu
dCwgYW5kIHRodXMgZG9lc24ndCBjb21waWxlIGluIG9wdCBtb2RlIHdoZW4gYGFgIGNvbnRhaW5z
IGEgY2FsbAotdG8gYGh0b25sKClgLiBJdCBpcyBkaWZmaWN1bHQgdG8gbWFrZSBgRVhQRUNUX0VR
YCBieXBhc3MgdGhlIGBodG9ubCgpYCBidWcsIGFzCi10aGUgc29sdXRpb24gbXVzdCB3b3JrIHdp
dGggZGlmZmVyZW50IGNvbXBpbGVycyBvbiB2YXJpb3VzIHBsYXRmb3Jtcy4KLQotYGh0b25sKClg
IGhhcyBzb21lIG90aGVyIHByb2JsZW1zIGFzIGRlc2NyaWJlZCBpbiBgLy91dGlsL2VuZGlhbi9l
bmRpYW4uaGAsCi13aGljaCBkZWZpbmVzIGBnaHRvbmwoKWAgdG8gcmVwbGFjZSBpdC4gYGdodG9u
bCgpYCBkb2VzIHRoZSBzYW1lIHRoaW5nIGBodG9ubCgpYAotZG9lcywgb25seSB3aXRob3V0IGl0
cyBwcm9ibGVtcy4gV2Ugc3VnZ2VzdCB5b3UgdG8gdXNlIGBnaHRvbmwoKWAgaW5zdGVhZCBvZgot
YGh0b25sKClgLCBib3RoIGluIHlvdXIgdGVzdHMgYW5kIHByb2R1Y3Rpb24gY29kZS4KLQotYC8v
dXRpbC9lbmRpYW4vZW5kaWFuLmhgIGFsc28gZGVmaW5lcyBgZ2h0b25zKClgLCB3aGljaCBzb2x2
ZXMgc2ltaWxhciBwcm9ibGVtcwotaW4gYGh0b25zKClgLgotCi1Eb24ndCBmb3JnZXQgdG8gYWRk
IGAvL3V0aWwvZW5kaWFuYCB0byB0aGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgaW4gdGhlIGBCVUlM
RGAKLWZpbGUgd2hlcmV2ZXIgYGdodG9ubCgpYCBhbmQgYGdodG9ucygpYCBhcmUgdXNlZC4gVGhl
IGxpYnJhcnkgY29uc2lzdHMgb2YgYQotc2luZ2xlIGhlYWRlciBmaWxlIGFuZCB3aWxsIG5vdCBi
bG9hdCB5b3VyIGJpbmFyeS4KLQotIyMgVGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCAidW5k
ZWZpbmVkIHJlZmVyZW5jZXMiIHRvIHNvbWUgc3RhdGljIGNvbnN0IG1lbWJlciB2YXJpYWJsZXMs
IGJ1dCBJIGRpZCBkZWZpbmUgdGhlbSBpbiB0aGUgY2xhc3MgYm9keS4gV2hhdCdzIHdyb25nPwot
Ci1JZiB5b3VyIGNsYXNzIGhhcyBhIHN0YXRpYyBkYXRhIG1lbWJlcjoKLQotYGBgYysrCi0vLyBm
b28uaAotY2xhc3MgRm9vIHsKLSAgLi4uCi0gIHN0YXRpYyBjb25zdCBpbnQga0JhciA9IDEwMDsK
LX07Ci1gYGAKLQotWW91IGFsc28gbmVlZCB0byBkZWZpbmUgaXQgKm91dHNpZGUqIG9mIHRoZSBj
bGFzcyBib2R5IGluIGBmb28uY2NgOgotCi1gYGBjKysKLWNvbnN0IGludCBGb286OmtCYXI7ICAv
LyBObyBpbml0aWFsaXplciBoZXJlLgotYGBgCi0KLU90aGVyd2lzZSB5b3VyIGNvZGUgaXMgKipp
bnZhbGlkIEMrKyoqLCBhbmQgbWF5IGJyZWFrIGluIHVuZXhwZWN0ZWQgd2F5cy4gSW4KLXBhcnRp
Y3VsYXIsIHVzaW5nIGl0IGluIGdvb2dsZXRlc3QgY29tcGFyaXNvbiBhc3NlcnRpb25zIChgRVhQ
RUNUX0VRYCwgZXRjKSB3aWxsCi1nZW5lcmF0ZSBhbiAidW5kZWZpbmVkIHJlZmVyZW5jZSIgbGlu
a2VyIGVycm9yLiBUaGUgZmFjdCB0aGF0ICJpdCB1c2VkIHRvIHdvcmsiCi1kb2Vzbid0IG1lYW4g
aXQncyB2YWxpZC4gSXQganVzdCBtZWFucyB0aGF0IHlvdSB3ZXJlIGx1Y2t5LiA6LSkKLQotIyMg
Q2FuIEkgZGVyaXZlIGEgdGVzdCBmaXh0dXJlIGZyb20gYW5vdGhlcj8KLQotWWVzLgotCi1FYWNo
IHRlc3QgZml4dHVyZSBoYXMgYSBjb3JyZXNwb25kaW5nIGFuZCBzYW1lIG5hbWVkIHRlc3QgY2Fz
ZS4gVGhpcyBtZWFucyBvbmx5Ci1vbmUgdGVzdCBjYXNlIGNhbiB1c2UgYSBwYXJ0aWN1bGFyIGZp
eHR1cmUuIFNvbWV0aW1lcywgaG93ZXZlciwgbXVsdGlwbGUgdGVzdAotY2FzZXMgbWF5IHdhbnQg
dG8gdXNlIHRoZSBzYW1lIG9yIHNsaWdodGx5IGRpZmZlcmVudCBmaXh0dXJlcy4gRm9yIGV4YW1w
bGUsIHlvdQotbWF5IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIG9mIGEgR1VJIGxpYnJhcnkn
cyB0ZXN0IGNhc2VzIGRvbid0IGxlYWsKLWltcG9ydGFudCBzeXN0ZW0gcmVzb3VyY2VzIGxpa2Ug
Zm9udHMgYW5kIGJydXNoZXMuCi0KLUluIGdvb2dsZXRlc3QsIHlvdSBzaGFyZSBhIGZpeHR1cmUg
YW1vbmcgdGVzdCBjYXNlcyBieSBwdXR0aW5nIHRoZSBzaGFyZWQgbG9naWMKLWluIGEgYmFzZSB0
ZXN0IGZpeHR1cmUsIHRoZW4gZGVyaXZpbmcgZnJvbSB0aGF0IGJhc2UgYSBzZXBhcmF0ZSBmaXh0
dXJlIGZvciBlYWNoCi10ZXN0IGNhc2UgdGhhdCB3YW50cyB0byB1c2UgdGhpcyBjb21tb24gbG9n
aWMuIFlvdSB0aGVuIHVzZSBgVEVTVF9GKClgIHRvIHdyaXRlCi10ZXN0cyB1c2luZyBlYWNoIGRl
cml2ZWQgZml4dHVyZS4KLQotVHlwaWNhbGx5LCB5b3VyIGNvZGUgbG9va3MgbGlrZSB0aGlzOgot
Ci1gYGBjKysKLS8vIERlZmluZXMgYSBiYXNlIHRlc3QgZml4dHVyZS4KLWNsYXNzIEJhc2VUZXN0
IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAuLi4KLX07Ci0KLS8v
IERlcml2ZXMgYSBmaXh0dXJlIEZvb1Rlc3QgZnJvbSBCYXNlVGVzdC4KLWNsYXNzIEZvb1Rlc3Qg
OiBwdWJsaWMgQmFzZVRlc3QgewotIHByb3RlY3RlZDoKLSAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKLSAgICBCYXNlVGVzdDo6U2V0VXAoKTsgIC8vIFNldHMgdXAgdGhlIGJhc2UgZml4dHVyZSBm
aXJzdC4KLSAgICAuLi4gYWRkaXRpb25hbCBzZXQtdXAgd29yayAuLi4KLSAgfQotCi0gIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7Ci0gICAgLi4uIGNsZWFuLXVwIHdvcmsgZm9yIEZvb1Rlc3Qg
Li4uCi0gICAgQmFzZVRlc3Q6OlRlYXJEb3duKCk7ICAvLyBSZW1lbWJlciB0byB0ZWFyIGRvd24g
dGhlIGJhc2UgZml4dHVyZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgY2xl
YW5pbmcgdXAgRm9vVGVzdCEKLSAgfQotCi0gIC4uLiBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBm
b3IgRm9vVGVzdCAuLi4KLX07Ci0KLS8vIFRlc3RzIHRoYXQgdXNlIHRoZSBmaXh0dXJlIEZvb1Rl
c3QuCi1URVNUX0YoRm9vVGVzdCwgQmFyKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgQmF6KSB7
IC4uLiB9Ci0KLS4uLiBhZGRpdGlvbmFsIGZpeHR1cmVzIGRlcml2ZWQgZnJvbSBCYXNlVGVzdCAu
Li4KLWBgYAotCi1JZiBuZWNlc3NhcnksIHlvdSBjYW4gY29udGludWUgdG8gZGVyaXZlIHRlc3Qg
Zml4dHVyZXMgZnJvbSBhIGRlcml2ZWQgZml4dHVyZS4KLWdvb2dsZXRlc3QgaGFzIG5vIGxpbWl0
IG9uIGhvdyBkZWVwIHRoZSBoaWVyYXJjaHkgY2FuIGJlLgotCi1Gb3IgYSBjb21wbGV0ZSBleGFt
cGxlIHVzaW5nIGRlcml2ZWQgdGVzdCBmaXh0dXJlcywgc2VlIFtnb29nbGV0ZXN0Ci1zYW1wbGVd
KGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9nb29nbGV0
ZXN0L3NhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYykKLQotIyMgTXkgY29tcGlsZXIgY29tcGxh
aW5zICJ2b2lkIHZhbHVlIG5vdCBpZ25vcmVkIGFzIGl0IG91Z2h0IHRvIGJlLiIgV2hhdCBkb2Vz
IHRoaXMgbWVhbj8KLQotWW91J3JlIHByb2JhYmx5IHVzaW5nIGFuIGBBU1NFUlRfKigpYCBpbiBh
IGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXR1cm4gYHZvaWRgLgotYEFTU0VSVF8qKClgIGNhbiBv
bmx5IGJlIHVzZWQgaW4gYHZvaWRgIGZ1bmN0aW9ucywgZHVlIHRvIGV4Y2VwdGlvbnMgYmVpbmcK
LWRpc2FibGVkIGJ5IG91ciBidWlsZCBzeXN0ZW0uIFBsZWFzZSBzZWUgbW9yZSBkZXRhaWxzCi1b
aGVyZV0oYWR2YW5jZWQubWQjYXNzZXJ0aW9uLXBsYWNlbWVudCkuCi0KLSMjIE15IGRlYXRoIHRl
c3QgaGFuZ3MgKG9yIHNlZy1mYXVsdHMpLiBIb3cgZG8gSSBmaXggaXQ/Ci0KLUluIGdvb2dsZXRl
c3QsIGRlYXRoIHRlc3RzIGFyZSBydW4gaW4gYSBjaGlsZCBwcm9jZXNzIGFuZCB0aGUgd2F5IHRo
ZXkgd29yayBpcwotZGVsaWNhdGUuIFRvIHdyaXRlIGRlYXRoIHRlc3RzIHlvdSByZWFsbHkgbmVl
ZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV5IHdvcmsuCi1QbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZl
IHJlYWQgW3RoaXNdKGFkdmFuY2VkLm1kI2hvdy1pdC13b3JrcykuCi0KLUluIHBhcnRpY3VsYXIs
IGRlYXRoIHRlc3RzIGRvbid0IGxpa2UgaGF2aW5nIG11bHRpcGxlIHRocmVhZHMgaW4gdGhlIHBh
cmVudAotcHJvY2Vzcy4gU28gdGhlIGZpcnN0IHRoaW5nIHlvdSBjYW4gdHJ5IGlzIHRvIGVsaW1p
bmF0ZSBjcmVhdGluZyB0aHJlYWRzIG91dHNpZGUKLW9mIGBFWFBFQ1RfREVBVEgoKWAuIEZvciBl
eGFtcGxlLCB5b3UgbWF5IHdhbnQgdG8gdXNlIFttb2Nrc10oLi4vLi4vZ29vZ2xlbW9jaykKLW9y
IGZha2Ugb2JqZWN0cyBpbnN0ZWFkIG9mIHJlYWwgb25lcyBpbiB5b3VyIHRlc3RzLgotCi1Tb21l
dGltZXMgdGhpcyBpcyBpbXBvc3NpYmxlIGFzIHNvbWUgbGlicmFyeSB5b3UgbXVzdCB1c2UgbWF5
IGJlIGNyZWF0aW5nCi10aHJlYWRzIGJlZm9yZSBgbWFpbigpYCBpcyBldmVuIHJlYWNoZWQuIElu
IHRoaXMgY2FzZSwgeW91IGNhbiB0cnkgdG8gbWluaW1pemUKLXRoZSBjaGFuY2Ugb2YgY29uZmxp
Y3RzIGJ5IGVpdGhlciBtb3ZpbmcgYXMgbWFueSBhY3Rpdml0aWVzIGFzIHBvc3NpYmxlIGluc2lk
ZQotYEVYUEVDVF9ERUFUSCgpYCAoaW4gdGhlIGV4dHJlbWUgY2FzZSwgeW91IHdhbnQgdG8gbW92
ZSBldmVyeXRoaW5nIGluc2lkZSksIG9yCi1sZWF2aW5nIGFzIGZldyB0aGluZ3MgYXMgcG9zc2li
bGUgaW4gaXQuIEFsc28sIHlvdSBjYW4gdHJ5IHRvIHNldCB0aGUgZGVhdGggdGVzdAotc3R5bGUg
dG8gYCJ0aHJlYWRzYWZlImAsIHdoaWNoIGlzIHNhZmVyIGJ1dCBzbG93ZXIsIGFuZCBzZWUgaWYg
aXQgaGVscHMuCi0KLUlmIHlvdSBnbyB3aXRoIHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzLCByZW1l
bWJlciB0aGF0IHRoZXkgcmVydW4gdGhlIHRlc3QKLXByb2dyYW0gZnJvbSB0aGUgYmVnaW5uaW5n
IGluIHRoZSBjaGlsZCBwcm9jZXNzLiBUaGVyZWZvcmUgbWFrZSBzdXJlIHlvdXIKLXByb2dyYW0g
Y2FuIHJ1biBzaWRlLWJ5LXNpZGUgd2l0aCBpdHNlbGYgYW5kIGlzIGRldGVybWluaXN0aWMuCi0K
LUluIHRoZSBlbmQsIHRoaXMgYm9pbHMgZG93biB0byBnb29kIGNvbmN1cnJlbnQgcHJvZ3JhbW1p
bmcuIFlvdSBoYXZlIHRvIG1ha2UKLXN1cmUgdGhhdCB0aGVyZSBpcyBubyByYWNlIGNvbmRpdGlv
bnMgb3IgZGVhZCBsb2NrcyBpbiB5b3VyIHByb2dyYW0uIE5vIHNpbHZlcgotYnVsbGV0IC0gc29y
cnkhCi0KLSMjIFNob3VsZCBJIHVzZSB0aGUgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciBvZiB0aGUg
dGVzdCBmaXh0dXJlIG9yIFNldFVwKCkvVGVhckRvd24oKT8KLQotVGhlIGZpcnN0IHRoaW5nIHRv
IHJlbWVtYmVyIGlzIHRoYXQgZ29vZ2xldGVzdCBkb2VzICoqbm90KiogcmV1c2UgdGhlIHNhbWUg
dGVzdAotZml4dHVyZSBvYmplY3QgYWNyb3NzIG11bHRpcGxlIHRlc3RzLiBGb3IgZWFjaCBgVEVT
VF9GYCwgZ29vZ2xldGVzdCB3aWxsIGNyZWF0ZQotYSAqKmZyZXNoKiogdGVzdCBmaXh0dXJlIG9i
amVjdCwgaW1tZWRpYXRlbHkgY2FsbCBgU2V0VXAoKWAsIHJ1biB0aGUgdGVzdCBib2R5LAotY2Fs
bCBgVGVhckRvd24oKWAsIGFuZCB0aGVuIGRlbGV0ZSB0aGUgdGVzdCBmaXh0dXJlIG9iamVjdC4K
LQotV2hlbiB5b3UgbmVlZCB0byB3cml0ZSBwZXItdGVzdCBzZXQtdXAgYW5kIHRlYXItZG93biBs
b2dpYywgeW91IGhhdmUgdGhlIGNob2ljZQotYmV0d2VlbiB1c2luZyB0aGUgdGVzdCBmaXh0dXJl
IGNvbnN0cnVjdG9yL2Rlc3RydWN0b3Igb3IgYFNldFVwKCkvVGVhckRvd24oKWAuCi1UaGUgZm9y
bWVyIGlzIHVzdWFsbHkgcHJlZmVycmVkLCBhcyBpdCBoYXMgdGhlIGZvbGxvd2luZyBiZW5lZml0
czoKLQotKiAgIEJ5IGluaXRpYWxpemluZyBhIG1lbWJlciB2YXJpYWJsZSBpbiB0aGUgY29uc3Ry
dWN0b3IsIHdlIGhhdmUgdGhlIG9wdGlvbiB0bwotICAgIG1ha2UgaXQgYGNvbnN0YCwgd2hpY2gg
aGVscHMgcHJldmVudCBhY2NpZGVudGFsIGNoYW5nZXMgdG8gaXRzIHZhbHVlIGFuZAotICAgIG1h
a2VzIHRoZSB0ZXN0cyBtb3JlIG9idmlvdXNseSBjb3JyZWN0LgotKiAgIEluIGNhc2Ugd2UgbmVl
ZCB0byBzdWJjbGFzcyB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzLCB0aGUgc3ViY2xhc3MnCi0gICAg
Y29uc3RydWN0b3IgaXMgZ3VhcmFudGVlZCB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBjb25zdHJ1
Y3RvciAqZmlyc3QqLCBhbmQKLSAgICB0aGUgc3ViY2xhc3MnIGRlc3RydWN0b3IgaXMgZ3VhcmFu
dGVlZCB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBkZXN0cnVjdG9yCi0gICAgKmFmdGVyd2FyZCou
IFdpdGggYFNldFVwKCkvVGVhckRvd24oKWAsIGEgc3ViY2xhc3MgbWF5IG1ha2UgdGhlIG1pc3Rh
a2Ugb2YKLSAgICBmb3JnZXR0aW5nIHRvIGNhbGwgdGhlIGJhc2UgY2xhc3MnIGBTZXRVcCgpL1Rl
YXJEb3duKClgIG9yIGNhbGwgdGhlbSBhdCB0aGUKLSAgICB3cm9uZyB0aW1lLgotCi1Zb3UgbWF5
IHN0aWxsIHdhbnQgdG8gdXNlIGBTZXRVcCgpL1RlYXJEb3duKClgIGluIHRoZSBmb2xsb3dpbmcg
cmFyZSBjYXNlczoKLQotKiAgIEluIHRoZSBib2R5IG9mIGEgY29uc3RydWN0b3IgKG9yIGRlc3Ry
dWN0b3IpLCBpdCdzIG5vdCBwb3NzaWJsZSB0byB1c2UgdGhlCi0gICAgYEFTU0VSVF94eGAgbWFj
cm9zLiBUaGVyZWZvcmUsIGlmIHRoZSBzZXQtdXAgb3BlcmF0aW9uIGNvdWxkIGNhdXNlIGEgZmF0
YWwKLSAgICB0ZXN0IGZhaWx1cmUgdGhhdCBzaG91bGQgcHJldmVudCB0aGUgdGVzdCBmcm9tIHJ1
bm5pbmcsIGl0J3MgbmVjZXNzYXJ5IHRvCi0gICAgdXNlIGEgYENIRUNLYCBtYWNybyBvciB0byB1
c2UgYFNldFVwKClgIGluc3RlYWQgb2YgYSBjb25zdHJ1Y3Rvci4KLSogICBJZiB0aGUgdGVhci1k
b3duIG9wZXJhdGlvbiBjb3VsZCB0aHJvdyBhbiBleGNlcHRpb24sIHlvdSBtdXN0IHVzZQotICAg
IGBUZWFyRG93bigpYCBhcyBvcHBvc2VkIHRvIHRoZSBkZXN0cnVjdG9yLCBhcyB0aHJvd2luZyBp
biBhIGRlc3RydWN0b3IgbGVhZHMKLSAgICB0byB1bmRlZmluZWQgYmVoYXZpb3IgYW5kIHVzdWFs
bHkgd2lsbCBraWxsIHlvdXIgcHJvZ3JhbSByaWdodCBhd2F5LiBOb3RlCi0gICAgdGhhdCBtYW55
IHN0YW5kYXJkIGxpYnJhcmllcyAobGlrZSBTVEwpIG1heSB0aHJvdyB3aGVuIGV4Y2VwdGlvbnMg
YXJlCi0gICAgZW5hYmxlZCBpbiB0aGUgY29tcGlsZXIuIFRoZXJlZm9yZSB5b3Ugc2hvdWxkIHBy
ZWZlciBgVGVhckRvd24oKWAgaWYgeW91Ci0gICAgd2FudCB0byB3cml0ZSBwb3J0YWJsZSB0ZXN0
cyB0aGF0IHdvcmsgd2l0aCBvciB3aXRob3V0IGV4Y2VwdGlvbnMuCi0qICAgVGhlIGdvb2dsZXRl
c3QgdGVhbSBpcyBjb25zaWRlcmluZyBtYWtpbmcgdGhlIGFzc2VydGlvbiBtYWNyb3MgdGhyb3cg
b24KLSAgICBwbGF0Zm9ybXMgd2hlcmUgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCAoZS5nLiBXaW5k
b3dzLCBNYWMgT1MsIGFuZCBMaW51eAotICAgIGNsaWVudC1zaWRlKSwgd2hpY2ggd2lsbCBlbGlt
aW5hdGUgdGhlIG5lZWQgZm9yIHRoZSB1c2VyIHRvIHByb3BhZ2F0ZQotICAgIGZhaWx1cmVzIGZy
b20gYSBzdWJyb3V0aW5lIHRvIGl0cyBjYWxsZXIuIFRoZXJlZm9yZSwgeW91IHNob3VsZG4ndCB1
c2UKLSAgICBnb29nbGV0ZXN0IGFzc2VydGlvbnMgaW4gYSBkZXN0cnVjdG9yIGlmIHlvdXIgY29k
ZSBjb3VsZCBydW4gb24gc3VjaCBhCi0gICAgcGxhdGZvcm0uCi0qICAgSW4gYSBjb25zdHJ1Y3Rv
ciBvciBkZXN0cnVjdG9yLCB5b3UgY2Fubm90IG1ha2UgYSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGwg
b24KLSAgICB0aGlzIG9iamVjdC4gKFlvdSBjYW4gY2FsbCBhIG1ldGhvZCBkZWNsYXJlZCBhcyB2
aXJ0dWFsLCBidXQgaXQgd2lsbCBiZQotICAgIHN0YXRpY2FsbHkgYm91bmQuKSBUaGVyZWZvcmUs
IGlmIHlvdSBuZWVkIHRvIGNhbGwgYSBtZXRob2QgdGhhdCB3aWxsIGJlCi0gICAgb3ZlcnJpZGRl
biBpbiBhIGRlcml2ZWQgY2xhc3MsIHlvdSBoYXZlIHRvIHVzZSBgU2V0VXAoKS9UZWFyRG93bigp
YC4KLQotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zICJubyBtYXRjaGluZyBmdW5jdGlvbiB0
byBjYWxsIiB3aGVuIEkgdXNlIEFTU0VSVF9QUkVEKi4gSG93IGRvIEkgZml4IGl0PwotCi1JZiB0
aGUgcHJlZGljYXRlIGZ1bmN0aW9uIHlvdSB1c2UgaW4gYEFTU0VSVF9QUkVEKmAgb3IgYEVYUEVD
VF9QUkVEKmAgaXMKLW92ZXJsb2FkZWQgb3IgYSB0ZW1wbGF0ZSwgdGhlIGNvbXBpbGVyIHdpbGwg
aGF2ZSB0cm91YmxlIGZpZ3VyaW5nIG91dCB3aGljaAotb3ZlcmxvYWRlZCB2ZXJzaW9uIGl0IHNo
b3VsZCB1c2UuIGBBU1NFUlRfUFJFRF9GT1JNQVQqYCBhbmQKLWBFWFBFQ1RfUFJFRF9GT1JNQVQq
YCBkb24ndCBoYXZlIHRoaXMgcHJvYmxlbS4KLQotSWYgeW91IHNlZSB0aGlzIGVycm9yLCB5b3Ug
bWlnaHQgd2FudCB0byBzd2l0Y2ggdG8KLWAoQVNTRVJUfEVYUEVDVClfUFJFRF9GT1JNQVQqYCwg
d2hpY2ggd2lsbCBhbHNvIGdpdmUgeW91IGEgYmV0dGVyIGZhaWx1cmUKLW1lc3NhZ2UuIElmLCBo
b3dldmVyLCB0aGF0IGlzIG5vdCBhbiBvcHRpb24sIHlvdSBjYW4gcmVzb2x2ZSB0aGUgcHJvYmxl
bSBieQotZXhwbGljaXRseSB0ZWxsaW5nIHRoZSBjb21waWxlciB3aGljaCB2ZXJzaW9uIHRvIHBp
Y2suCi0KLUZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSBoYXZlCi0KLWBgYGMrKwotYm9vbCBJc1Bv
c2l0aXZlKGludCBuKSB7Ci0gIHJldHVybiBuID4gMDsKLX0KLQotYm9vbCBJc1Bvc2l0aXZlKGRv
dWJsZSB4KSB7Ci0gIHJldHVybiB4ID4gMDsKLX0KLWBgYAotCi15b3Ugd2lsbCBnZXQgYSBjb21w
aWxlciBlcnJvciBpZiB5b3Ugd3JpdGUKLQotYGBgYysrCi1FWFBFQ1RfUFJFRDEoSXNQb3NpdGl2
ZSwgNSk7Ci1gYGAKLQotSG93ZXZlciwgdGhpcyB3aWxsIHdvcms6Ci0KLWBgYGMrKwotRVhQRUNU
X1BSRUQxKHN0YXRpY19jYXN0PGJvb2wgKCopKGludCk+KElzUG9zaXRpdmUpLCA1KTsKLWBgYAot
Ci0oVGhlIHN0dWZmIGluc2lkZSB0aGUgYW5nbGVkIGJyYWNrZXRzIGZvciB0aGUgYHN0YXRpY19j
YXN0YCBvcGVyYXRvciBpcyB0aGUgdHlwZQotb2YgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgZm9yIHRo
ZSBgaW50YC12ZXJzaW9uIG9mIGBJc1Bvc2l0aXZlKClgLikKLQotQXMgYW5vdGhlciBleGFtcGxl
LCB3aGVuIHlvdSBoYXZlIGEgdGVtcGxhdGUgZnVuY3Rpb24KLQotYGBgYysrCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLWJvb2wgSXNOZWdhdGl2ZShUIHgpIHsKLSAgcmV0dXJuIHggPCAwOwotfQot
YGBgCi0KLXlvdSBjYW4gdXNlIGl0IGluIGEgcHJlZGljYXRlIGFzc2VydGlvbiBsaWtlIHRoaXM6
Ci0KLWBgYGMrKwotQVNTRVJUX1BSRUQxKElzTmVnYXRpdmU8aW50PiwgLTUpOwotYGBgCi0KLVRo
aW5ncyBhcmUgbW9yZSBpbnRlcmVzdGluZyBpZiB5b3VyIHRlbXBsYXRlIGhhcyBtb3JlIHRoYW4g
b25lIHBhcmFtZXRlcnMuIFRoZQotZm9sbG93aW5nIHdvbid0IGNvbXBpbGU6Ci0KLWBgYGMrKwot
QVNTRVJUX1BSRUQyKEdyZWF0ZXJUaGFuPGludCwgaW50PiwgNSwgMCk7Ci1gYGAKLQotYXMgdGhl
IEMrKyBwcmUtcHJvY2Vzc29yIHRoaW5rcyB5b3UgYXJlIGdpdmluZyBgQVNTRVJUX1BSRUQyYCA0
IGFyZ3VtZW50cywgd2hpY2gKLWlzIG9uZSBtb3JlIHRoYW4gZXhwZWN0ZWQuIFRoZSB3b3JrYXJv
dW5kIGlzIHRvIHdyYXAgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiBpbgotcGFyZW50aGVzZXM6Ci0K
LWBgYGMrKwotQVNTRVJUX1BSRUQyKChHcmVhdGVyVGhhbjxpbnQsIGludD4pLCA1LCAwKTsKLWBg
YAotCi0KLSMjIE15IGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCAiaWdub3JpbmcgcmV0dXJuIHZh
bHVlIiB3aGVuIEkgY2FsbCBSVU5fQUxMX1RFU1RTKCkuIFdoeT8KLQotU29tZSBwZW9wbGUgaGFk
IGJlZW4gaWdub3JpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgUlVOX0FMTF9URVNUUygpYC4gVGhh
dCBpcywKLWluc3RlYWQgb2YKLQotYGBgYysrCi0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci1g
YGAKLQotdGhleSB3cml0ZQotCi1gYGBjKysKLSAgUlVOX0FMTF9URVNUUygpOwotYGBgCi0KLVRo
aXMgaXMgKip3cm9uZyBhbmQgZGFuZ2Vyb3VzKiouIFRoZSB0ZXN0aW5nIHNlcnZpY2VzIG5lZWRz
IHRvIHNlZSB0aGUgcmV0dXJuCi12YWx1ZSBvZiBgUlVOX0FMTF9URVNUUygpYCBpbiBvcmRlciB0
byBkZXRlcm1pbmUgaWYgYSB0ZXN0IGhhcyBwYXNzZWQuIElmIHlvdXIKLWBtYWluKClgIGZ1bmN0
aW9uIGlnbm9yZXMgaXQsIHlvdXIgdGVzdCB3aWxsIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBl
dmVuIGlmIGl0Ci1oYXMgYSBnb29nbGV0ZXN0IGFzc2VydGlvbiBmYWlsdXJlLiBWZXJ5IGJhZC4K
LQotV2UgaGF2ZSBkZWNpZGVkIHRvIGZpeCB0aGlzICh0aGFua3MgdG8gTWljaGFlbCBDaGFzdGFp
biBmb3IgdGhlIGlkZWEpLiBOb3csIHlvdXIKLWNvZGUgd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0
byBpZ25vcmUgYFJVTl9BTExfVEVTVFMoKWAgd2hlbiBjb21waWxlZCB3aXRoCi1gZ2NjYC4gSWYg
eW91IGRvIHNvLCB5b3UnbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IuCi0KLUlmIHlvdSBzZWUgdGhl
IGNvbXBpbGVyIGNvbXBsYWluaW5nIGFib3V0IHlvdSBpZ25vcmluZyB0aGUgcmV0dXJuIHZhbHVl
IG9mCi1gUlVOX0FMTF9URVNUUygpYCwgdGhlIGZpeCBpcyBzaW1wbGU6IGp1c3QgbWFrZSBzdXJl
IGl0cyB2YWx1ZSBpcyB1c2VkIGFzIHRoZQotcmV0dXJuIHZhbHVlIG9mIGBtYWluKClgLgotCi1C
dXQgaG93IGNvdWxkIHdlIGludHJvZHVjZSBhIGNoYW5nZSB0aGF0IGJyZWFrcyBleGlzdGluZyB0
ZXN0cz8gV2VsbCwgaW4gdGhpcwotY2FzZSwgdGhlIGNvZGUgd2FzIGFscmVhZHkgYnJva2VuIGlu
IHRoZSBmaXJzdCBwbGFjZSwgc28gd2UgZGlkbid0IGJyZWFrIGl0LiA6LSkKLQotIyMgTXkgY29t
cGlsZXIgY29tcGxhaW5zIHRoYXQgYSBjb25zdHJ1Y3RvciAob3IgZGVzdHJ1Y3RvcikgY2Fubm90
IHJldHVybiBhIHZhbHVlLiBXaGF0J3MgZ29pbmcgb24/Ci0KLUR1ZSB0byBhIHBlY3VsaWFyaXR5
IG9mIEMrKywgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgc3ludGF4IGZvciBzdHJlYW1pbmcKLW1l
c3NhZ2VzIHRvIGFuIGBBU1NFUlRfKmAsIGUuZy4KLQotYGBgYysrCi0gIEFTU0VSVF9FUSgxLCBG
b28oKSkgPDwgImJsYWggYmxhaCIgPDwgZm9vOwotYGBgCi0KLXdlIGhhZCB0byBnaXZlIHVwIHVz
aW5nIGBBU1NFUlQqYCBhbmQgYEZBSUwqYCAoYnV0IG5vdCBgRVhQRUNUKmAgYW5kCi1gQUREX0ZB
SUxVUkUqYCkgaW4gY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycy4gVGhlIHdvcmthcm91bmQg
aXMgdG8gbW92ZSB0aGUKLWNvbnRlbnQgb2YgeW91ciBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIHRv
IGEgcHJpdmF0ZSB2b2lkIG1lbWJlciBmdW5jdGlvbiwgb3IKLXN3aXRjaCB0byBgRVhQRUNUXyoo
KWAgaWYgdGhhdCB3b3Jrcy4gVGhpcwotW3NlY3Rpb25dKGFkdmFuY2VkLm1kI2Fzc2VydGlvbi1w
bGFjZW1lbnQpIGluIHRoZSB1c2VyJ3MgZ3VpZGUgZXhwbGFpbnMgaXQuCi0KLSMjIE15IFNldFVw
KCkgZnVuY3Rpb24gaXMgbm90IGNhbGxlZC4gV2h5PwotCi1DKysgaXMgY2FzZS1zZW5zaXRpdmUu
IERpZCB5b3Ugc3BlbGwgaXQgYXMgYFNldHVwKClgPwotCi1TaW1pbGFybHksIHNvbWV0aW1lcyBw
ZW9wbGUgc3BlbGwgYFNldFVwVGVzdENhc2UoKWAgYXMgYFNldHVwVGVzdENhc2UoKWAgYW5kCi13
b25kZXIgd2h5IGl0J3MgbmV2ZXIgY2FsbGVkLgotCi0jIyBIb3cgZG8gSSBqdW1wIHRvIHRoZSBs
aW5lIG9mIGEgZmFpbHVyZSBpbiBFbWFjcyBkaXJlY3RseT8KLQotZ29vZ2xldGVzdCdzIGZhaWx1
cmUgbWVzc2FnZSBmb3JtYXQgaXMgdW5kZXJzdG9vZCBieSBFbWFjcyBhbmQgbWFueSBvdGhlciBJ
REVzLAotbGlrZSBhY21lIGFuZCBYQ29kZS4gSWYgYSBnb29nbGV0ZXN0IG1lc3NhZ2UgaXMgaW4g
YSBjb21waWxhdGlvbiBidWZmZXIgaW4KLUVtYWNzLCB0aGVuIGl0J3MgY2xpY2thYmxlLgotCi0K
LSMjIEkgaGF2ZSBzZXZlcmFsIHRlc3QgY2FzZXMgd2hpY2ggc2hhcmUgdGhlIHNhbWUgdGVzdCBm
aXh0dXJlIGxvZ2ljLCBkbyBJIGhhdmUgdG8gZGVmaW5lIGEgbmV3IHRlc3QgZml4dHVyZSBjbGFz
cyBmb3IgZWFjaCBvZiB0aGVtPyBUaGlzIHNlZW1zIHByZXR0eSB0ZWRpb3VzLgotCi1Zb3UgZG9u
J3QgaGF2ZSB0by4gSW5zdGVhZCBvZgotCi1gYGBjKysKLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMg
QmFzZVRlc3Qge307Ci0KLVRFU1RfRihGb29UZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihGb29U
ZXN0LCBEZWYpIHsgLi4uIH0KLQotY2xhc3MgQmFyVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCB7fTsK
LQotVEVTVF9GKEJhclRlc3QsIEFiYykgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIERlZikgeyAu
Li4gfQotYGBgCi0KLXlvdSBjYW4gc2ltcGx5IGB0eXBlZGVmYCB0aGUgdGVzdCBmaXh0dXJlczoK
LQotYGBgYysrCi10eXBlZGVmIEJhc2VUZXN0IEZvb1Rlc3Q7Ci0KLVRFU1RfRihGb29UZXN0LCBB
YmMpIHsgLi4uIH0KLVRFU1RfRihGb29UZXN0LCBEZWYpIHsgLi4uIH0KLQotdHlwZWRlZiBCYXNl
VGVzdCBCYXJUZXN0OwotCi1URVNUX0YoQmFyVGVzdCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoQmFy
VGVzdCwgRGVmKSB7IC4uLiB9Ci1gYGAKLQotIyMgZ29vZ2xldGVzdCBvdXRwdXQgaXMgYnVyaWVk
IGluIGEgd2hvbGUgYnVuY2ggb2YgTE9HIG1lc3NhZ2VzLiBXaGF0IGRvIEkgZG8/Ci0KLVRoZSBn
b29nbGV0ZXN0IG91dHB1dCBpcyBtZWFudCB0byBiZSBhIGNvbmNpc2UgYW5kIGh1bWFuLWZyaWVu
ZGx5IHJlcG9ydC4gSWYKLXlvdXIgdGVzdCBnZW5lcmF0ZXMgdGV4dHVhbCBvdXRwdXQgaXRzZWxm
LCBpdCB3aWxsIG1peCB3aXRoIHRoZSBnb29nbGV0ZXN0Ci1vdXRwdXQsIG1ha2luZyBpdCBoYXJk
IHRvIHJlYWQuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIGVhc3kgc29sdXRpb24gdG8gdGhpcwotcHJv
YmxlbS4KLQotU2luY2UgYExPR2AgbWVzc2FnZXMgZ28gdG8gc3RkZXJyLCB3ZSBkZWNpZGVkIHRv
IGxldCBnb29nbGV0ZXN0IG91dHB1dCBnbyB0bwotc3Rkb3V0LiBUaGlzIHdheSwgeW91IGNhbiBl
YXNpbHkgc2VwYXJhdGUgdGhlIHR3byB1c2luZyByZWRpcmVjdGlvbi4gRm9yCi1leGFtcGxlOgot
Ci1gYGBzaGVsbAotJCAuL215X3Rlc3QgPiBndGVzdF9vdXRwdXQudHh0Ci1gYGAKLQotCi0jIyBX
aHkgc2hvdWxkIEkgcHJlZmVyIHRlc3QgZml4dHVyZXMgb3ZlciBnbG9iYWwgdmFyaWFibGVzPwot
Ci1UaGVyZSBhcmUgc2V2ZXJhbCBnb29kIHJlYXNvbnM6Ci0KLTEuICBJdCdzIGxpa2VseSB5b3Vy
IHRlc3QgbmVlZHMgdG8gY2hhbmdlIHRoZSBzdGF0ZXMgb2YgaXRzIGdsb2JhbCB2YXJpYWJsZXMu
Ci0gICAgVGhpcyBtYWtlcyBpdCBkaWZmaWN1bHQgdG8ga2VlcCBzaWRlIGVmZmVjdHMgZnJvbSBl
c2NhcGluZyBvbmUgdGVzdCBhbmQKLSAgICBjb250YW1pbmF0aW5nIG90aGVycywgbWFraW5nIGRl
YnVnZ2luZyBkaWZmaWN1bHQuIEJ5IHVzaW5nIGZpeHR1cmVzLCBlYWNoCi0gICAgdGVzdCBoYXMg
YSBmcmVzaCBzZXQgb2YgdmFyaWFibGVzIHRoYXQncyBkaWZmZXJlbnQgKGJ1dCB3aXRoIHRoZSBz
YW1lCi0gICAgbmFtZXMpLiBUaHVzLCB0ZXN0cyBhcmUga2VwdCBpbmRlcGVuZGVudCBvZiBlYWNo
IG90aGVyLgotMS4gIEdsb2JhbCB2YXJpYWJsZXMgcG9sbHV0ZSB0aGUgZ2xvYmFsIG5hbWVzcGFj
ZS4KLTEuICBUZXN0IGZpeHR1cmVzIGNhbiBiZSByZXVzZWQgdmlhIHN1YmNsYXNzaW5nLCB3aGlj
aCBjYW5ub3QgYmUgZG9uZSBlYXNpbHkKLSAgICB3aXRoIGdsb2JhbCB2YXJpYWJsZXMuIFRoaXMg
aXMgdXNlZnVsIGlmIG1hbnkgdGVzdCBjYXNlcyBoYXZlIHNvbWV0aGluZyBpbgotICAgIGNvbW1v
bi4KLQotCi0gICAgIyMgV2hhdCBjYW4gdGhlIHN0YXRlbWVudCBhcmd1bWVudCBpbiBBU1NFUlRf
REVBVEgoKSBiZT8KLQotYEFTU0VSVF9ERUFUSCgqc3RhdGVtZW50KiwgKnJlZ2V4KilgIChvciBh
bnkgZGVhdGggYXNzZXJ0aW9uIG1hY3JvKSBjYW4gYmUgdXNlZAotd2hlcmV2ZXIgYCpzdGF0ZW1l
bnQqYCBpcyB2YWxpZC4gU28gYmFzaWNhbGx5IGAqc3RhdGVtZW50KmAgY2FuIGJlIGFueSBDKysK
LXN0YXRlbWVudCB0aGF0IG1ha2VzIHNlbnNlIGluIHRoZSBjdXJyZW50IGNvbnRleHQuIEluIHBh
cnRpY3VsYXIsIGl0IGNhbgotcmVmZXJlbmNlIGdsb2JhbCBhbmQvb3IgbG9jYWwgdmFyaWFibGVz
LCBhbmQgY2FuIGJlOgotCi0qICAgYSBzaW1wbGUgZnVuY3Rpb24gY2FsbCAob2Z0ZW4gdGhlIGNh
c2UpLAotKiAgIGEgY29tcGxleCBleHByZXNzaW9uLCBvcgotKiAgIGEgY29tcG91bmQgc3RhdGVt
ZW50LgotCi1Tb21lIGV4YW1wbGVzIGFyZSBzaG93biBoZXJlOgotCi1gYGBjKysKLS8vIEEgZGVh
dGggdGVzdCBjYW4gYmUgYSBzaW1wbGUgZnVuY3Rpb24gY2FsbC4KLVRFU1QoTXlEZWF0aFRlc3Qs
IEZ1bmN0aW9uQ2FsbCkgewotICBBU1NFUlRfREVBVEgoWHl6KDUpLCAiWHl6IGZhaWxlZCIpOwot
fQotCi0vLyBPciBhIGNvbXBsZXggZXhwcmVzc2lvbiB0aGF0IHJlZmVyZW5jZXMgdmFyaWFibGVz
IGFuZCBmdW5jdGlvbnMuCi1URVNUKE15RGVhdGhUZXN0LCBDb21wbGV4RXhwcmVzc2lvbikgewot
ICBjb25zdCBib29sIGMgPSBDb25kaXRpb24oKTsKLSAgQVNTRVJUX0RFQVRIKChjID8gRnVuYzEo
MCkgOiBvYmplY3QyLk1ldGhvZCgidGVzdCIpKSwKLSAgICAgICAgICAgICAgICIoRnVuYzF8TWV0
aG9kKSBmYWlsZWQiKTsKLX0KLQotLy8gRGVhdGggYXNzZXJ0aW9ucyBjYW4gYmUgdXNlZCBhbnkg
d2hlcmUgaW4gYSBmdW5jdGlvbi4gIEluCi0vLyBwYXJ0aWN1bGFyLCB0aGV5IGNhbiBiZSBpbnNp
ZGUgYSBsb29wLgotVEVTVChNeURlYXRoVGVzdCwgSW5zaWRlTG9vcCkgewotICAvLyBWZXJpZmll
cyB0aGF0IEZvbygwKSwgRm9vKDEpLCAuLi4sIGFuZCBGb28oNCkgYWxsIGRpZS4KLSAgZm9yIChp
bnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKLSAgICBFWFBFQ1RfREVBVEhfTShGb28oaSksICJGb28g
aGFzIFxcZCsgZXJyb3JzIiwKLSAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6Ok1lc3NhZ2Uo
KSA8PCAid2hlcmUgaSBpcyAiIDw8IGkpOwotICB9Ci19Ci0KLS8vIEEgZGVhdGggYXNzZXJ0aW9u
IGNhbiBjb250YWluIGEgY29tcG91bmQgc3RhdGVtZW50LgotVEVTVChNeURlYXRoVGVzdCwgQ29t
cG91bmRTdGF0ZW1lbnQpIHsKLSAgLy8gVmVyaWZpZXMgdGhhdCBhdCBsZWFzZSBvbmUgb2YgQmFy
KDApLCBCYXIoMSksIC4uLiwgYW5kCi0gIC8vIEJhcig0KSBkaWVzLgotICBBU1NFUlRfREVBVEgo
ewotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgICBCYXIoaSk7Ci0gICAg
fQotICB9LAotICAiQmFyIGhhcyBcXGQrIGVycm9ycyIpOwotfQotYGBgCi0KLWd0ZXN0LWRlYXRo
LXRlc3RfdGVzdC5jYyBjb250YWlucyBtb3JlIGV4YW1wbGVzIGlmIHlvdSBhcmUgaW50ZXJlc3Rl
ZC4KLQotIyMgSSBoYXZlIGEgZml4dHVyZSBjbGFzcyBgRm9vVGVzdGAsIGJ1dCBgVEVTVF9GKEZv
b1Rlc3QsIEJhcilgIGdpdmVzIG1lIGVycm9yIGBgIm5vIG1hdGNoaW5nIGZ1bmN0aW9uIGZvciBj
YWxsIHRvIGBGb29UZXN0OjpGb29UZXN0KCknImBgLiBXaHk/Ci0KLUdvb2dsZXRlc3QgbmVlZHMg
dG8gYmUgYWJsZSB0byBjcmVhdGUgb2JqZWN0cyBvZiB5b3VyIHRlc3QgZml4dHVyZSBjbGFzcywg
c28gaXQKLW11c3QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuIE5vcm1hbGx5IHRoZSBjb21w
aWxlciB3aWxsIGRlZmluZSBvbmUgZm9yIHlvdS4KLUhvd2V2ZXIsIHRoZXJlIGFyZSBjYXNlcyB3
aGVyZSB5b3UgaGF2ZSB0byBkZWZpbmUgeW91ciBvd246Ci0KLSogICBJZiB5b3UgZXhwbGljaXRs
eSBkZWNsYXJlIGEgbm9uLWRlZmF1bHQgY29uc3RydWN0b3IgZm9yIGNsYXNzIGBGb29UZXN0YAot
ICAgIChgRElTQUxMT1dfRVZJTF9DT05TVFJVQ1RPUlMoKWAgZG9lcyB0aGlzKSwgdGhlbiB5b3Ug
bmVlZCB0byBkZWZpbmUgYQotICAgIGRlZmF1bHQgY29uc3RydWN0b3IsIGV2ZW4gaWYgaXQgd291
bGQgYmUgZW1wdHkuCi0qICAgSWYgYEZvb1Rlc3RgIGhhcyBhIGNvbnN0IG5vbi1zdGF0aWMgZGF0
YSBtZW1iZXIsIHRoZW4geW91IGhhdmUgdG8gZGVmaW5lIHRoZQotICAgIGRlZmF1bHQgY29uc3Ry
dWN0b3IgKmFuZCogaW5pdGlhbGl6ZSB0aGUgY29uc3QgbWVtYmVyIGluIHRoZSBpbml0aWFsaXpl
cgotICAgIGxpc3Qgb2YgdGhlIGNvbnN0cnVjdG9yLiAoRWFybHkgdmVyc2lvbnMgb2YgYGdjY2Ag
ZG9lc24ndCBmb3JjZSB5b3UgdG8KLSAgICBpbml0aWFsaXplIHRoZSBjb25zdCBtZW1iZXIuIEl0
J3MgYSBidWcgdGhhdCBoYXMgYmVlbiBmaXhlZCBpbiBgZ2NjIDRgLikKLQotIyMgV2h5IGRvZXMg
QVNTRVJUX0RFQVRIIGNvbXBsYWluIGFib3V0IHByZXZpb3VzIHRocmVhZHMgdGhhdCB3ZXJlIGFs
cmVhZHkgam9pbmVkPwotCi1XaXRoIHRoZSBMaW51eCBwdGhyZWFkIGxpYnJhcnksIHRoZXJlIGlz
IG5vIHR1cm5pbmcgYmFjayBvbmNlIHlvdSBjcm9zcyB0aGUgbGluZQotZnJvbSBzaW5nbGUgdGhy
ZWFkIHRvIG11bHRpcGxlIHRocmVhZHMuIFRoZSBmaXJzdCB0aW1lIHlvdSBjcmVhdGUgYSB0aHJl
YWQsIGEKLW1hbmFnZXIgdGhyZWFkIGlzIGNyZWF0ZWQgaW4gYWRkaXRpb24sIHNvIHlvdSBnZXQg
Mywgbm90IDIsIHRocmVhZHMuIExhdGVyIHdoZW4KLXRoZSB0aHJlYWQgeW91IGNyZWF0ZSBqb2lu
cyB0aGUgbWFpbiB0aHJlYWQsIHRoZSB0aHJlYWQgY291bnQgZGVjcmVtZW50cyBieSAxLAotYnV0
IHRoZSBtYW5hZ2VyIHRocmVhZCB3aWxsIG5ldmVyIGJlIGtpbGxlZCwgc28geW91IHN0aWxsIGhh
dmUgMiB0aHJlYWRzLCB3aGljaAotbWVhbnMgeW91IGNhbm5vdCBzYWZlbHkgcnVuIGEgZGVhdGgg
dGVzdC4KLQotVGhlIG5ldyBOUFRMIHRocmVhZCBsaWJyYXJ5IGRvZXNuJ3Qgc3VmZmVyIGZyb20g
dGhpcyBwcm9ibGVtLCBhcyBpdCBkb2Vzbid0Ci1jcmVhdGUgYSBtYW5hZ2VyIHRocmVhZC4gSG93
ZXZlciwgaWYgeW91IGRvbid0IGNvbnRyb2wgd2hpY2ggbWFjaGluZSB5b3VyIHRlc3QKLXJ1bnMg
b24sIHlvdSBzaG91bGRuJ3QgZGVwZW5kIG9uIHRoaXMuCi0KLSMjIFdoeSBkb2VzIGdvb2dsZXRl
c3QgcmVxdWlyZSB0aGUgZW50aXJlIHRlc3QgY2FzZSwgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIHRl
c3RzLCB0byBiZSBuYW1lZCAqRGVhdGhUZXN0IHdoZW4gaXQgdXNlcyBBU1NFUlRfREVBVEg/Ci0K
LWdvb2dsZXRlc3QgZG9lcyBub3QgaW50ZXJsZWF2ZSB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0ZXN0
IGNhc2VzLiBUaGF0IGlzLCBpdCBydW5zCi1hbGwgdGVzdHMgaW4gb25lIHRlc3QgY2FzZSBmaXJz
dCwgYW5kIHRoZW4gcnVucyBhbGwgdGVzdHMgaW4gdGhlIG5leHQgdGVzdCBjYXNlLAotYW5kIHNv
IG9uLiBnb29nbGV0ZXN0IGRvZXMgdGhpcyBiZWNhdXNlIGl0IG5lZWRzIHRvIHNldCB1cCBhIHRl
c3QgY2FzZSBiZWZvcmUKLXRoZSBmaXJzdCB0ZXN0IGluIGl0IGlzIHJ1biwgYW5kIHRlYXIgaXQg
ZG93biBhZnRlcndvcmRzLiBTcGxpdHRpbmcgdXAgdGhlIHRlc3QKLWNhc2Ugd291bGQgcmVxdWly
ZSBtdWx0aXBsZSBzZXQtdXAgYW5kIHRlYXItZG93biBwcm9jZXNzZXMsIHdoaWNoIGlzIGluZWZm
aWNpZW50Ci1hbmQgbWFrZXMgdGhlIHNlbWFudGljcyB1bmNsZWFuLgotCi1JZiB3ZSB3ZXJlIHRv
IGRldGVybWluZSB0aGUgb3JkZXIgb2YgdGVzdHMgYmFzZWQgb24gdGVzdCBuYW1lIGluc3RlYWQg
b2YgdGVzdAotY2FzZSBuYW1lLCB0aGVuIHdlIHdvdWxkIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhl
IGZvbGxvd2luZyBzaXR1YXRpb246Ci0KLWBgYGMrKwotVEVTVF9GKEZvb1Rlc3QsIEFiY0RlYXRo
VGVzdCkgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIFV2dykgeyAuLi4gfQotCi1URVNUX0YoQmFy
VGVzdCwgRGVmRGVhdGhUZXN0KSB7IC4uLiB9Ci1URVNUX0YoQmFyVGVzdCwgWHl6KSB7IC4uLiB9
Ci1gYGAKLQotU2luY2UgYEZvb1Rlc3QuQWJjRGVhdGhUZXN0YCBuZWVkcyB0byBydW4gYmVmb3Jl
IGBCYXJUZXN0Llh5emAsIGFuZCB3ZSBkb24ndAotaW50ZXJsZWF2ZSB0ZXN0cyBmcm9tIGRpZmZl
cmVudCB0ZXN0IGNhc2VzLCB3ZSBuZWVkIHRvIHJ1biBhbGwgdGVzdHMgaW4gdGhlCi1gRm9vVGVz
dGAgY2FzZSBiZWZvcmUgcnVubmluZyBhbnkgdGVzdCBpbiB0aGUgYEJhclRlc3RgIGNhc2UuIFRo
aXMgY29udHJhZGljdHMKLXdpdGggdGhlIHJlcXVpcmVtZW50IHRvIHJ1biBgQmFyVGVzdC5EZWZE
ZWF0aFRlc3RgIGJlZm9yZSBgRm9vVGVzdC5VdndgLgotCi0jIyBCdXQgSSBkb24ndCBsaWtlIGNh
bGxpbmcgbXkgZW50aXJlIHRlc3QgY2FzZSBcKkRlYXRoVGVzdCB3aGVuIGl0IGNvbnRhaW5zIGJv
dGggZGVhdGggdGVzdHMgYW5kIG5vbi1kZWF0aCB0ZXN0cy4gV2hhdCBkbyBJIGRvPwotCi1Zb3Ug
ZG9uJ3QgaGF2ZSB0bywgYnV0IGlmIHlvdSBsaWtlLCB5b3UgbWF5IHNwbGl0IHVwIHRoZSB0ZXN0
IGNhc2UgaW50bwotYEZvb1Rlc3RgIGFuZCBgRm9vRGVhdGhUZXN0YCwgd2hlcmUgdGhlIG5hbWVz
IG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IGFyZQotcmVsYXRlZDoKLQotYGBgYysrCi1jbGFzcyBG
b29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7IC4uLiB9OwotCi1URVNUX0YoRm9vVGVz
dCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLXVzaW5nIEZv
b0RlYXRoVGVzdCA9IEZvb1Rlc3Q7Ci0KLVRFU1RfRihGb29EZWF0aFRlc3QsIFV2dykgeyAuLi4g
RVhQRUNUX0RFQVRIKC4uLikgLi4uIH0KLVRFU1RfRihGb29EZWF0aFRlc3QsIFh5eikgeyAuLi4g
QVNTRVJUX0RFQVRIKC4uLikgLi4uIH0KLWBgYAotCi0jIyBnb29nbGV0ZXN0IHByaW50cyB0aGUg
TE9HIG1lc3NhZ2VzIGluIGEgZGVhdGggdGVzdCdzIGNoaWxkIHByb2Nlc3Mgb25seSB3aGVuIHRo
ZSB0ZXN0IGZhaWxzLiBIb3cgY2FuIEkgc2VlIHRoZSBMT0cgbWVzc2FnZXMgd2hlbiB0aGUgZGVh
dGggdGVzdCBzdWNjZWVkcz8KLQotUHJpbnRpbmcgdGhlIExPRyBtZXNzYWdlcyBnZW5lcmF0ZWQg
YnkgdGhlIHN0YXRlbWVudCBpbnNpZGUgYEVYUEVDVF9ERUFUSCgpYAotbWFrZXMgaXQgaGFyZGVy
IHRvIHNlYXJjaCBmb3IgcmVhbCBwcm9ibGVtcyBpbiB0aGUgcGFyZW50J3MgbG9nLiBUaGVyZWZv
cmUsCi1nb29nbGV0ZXN0IG9ubHkgcHJpbnRzIHRoZW0gd2hlbiB0aGUgZGVhdGggdGVzdCBoYXMg
ZmFpbGVkLgotCi1JZiB5b3UgcmVhbGx5IG5lZWQgdG8gc2VlIHN1Y2ggTE9HIG1lc3NhZ2VzLCBh
IHdvcmthcm91bmQgaXMgdG8gdGVtcG9yYXJpbHkKLWJyZWFrIHRoZSBkZWF0aCB0ZXN0IChlLmcu
IGJ5IGNoYW5naW5nIHRoZSByZWdleCBwYXR0ZXJuIGl0IGlzIGV4cGVjdGVkIHRvCi1tYXRjaCku
IEFkbWl0dGVkbHksIHRoaXMgaXMgYSBoYWNrLiBXZSdsbCBjb25zaWRlciBhIG1vcmUgcGVybWFu
ZW50IHNvbHV0aW9uCi1hZnRlciB0aGUgZm9yay1hbmQtZXhlYy1zdHlsZSBkZWF0aCB0ZXN0cyBh
cmUgaW1wbGVtZW50ZWQuCi0KLSMjIFRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgIm5vIG1h
dGNoIGZvciAnb3BlcmF0b3I8PCciIHdoZW4gSSB1c2UgYW4gYXNzZXJ0aW9uLiBXaGF0IGdpdmVz
PwotCi1JZiB5b3UgdXNlIGEgdXNlci1kZWZpbmVkIHR5cGUgYEZvb1R5cGVgIGluIGFuIGFzc2Vy
dGlvbiwgeW91IG11c3QgbWFrZSBzdXJlCi10aGVyZSBpcyBhbiBgc3RkOjpvc3RyZWFtJiBvcGVy
YXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IEZvb1R5cGUmKWAgZnVuY3Rpb24KLWRlZmluZWQg
c3VjaCB0aGF0IHdlIGNhbiBwcmludCBhIHZhbHVlIG9mIGBGb29UeXBlYC4KLQotSW4gYWRkaXRp
b24sIGlmIGBGb29UeXBlYCBpcyBkZWNsYXJlZCBpbiBhIG5hbWUgc3BhY2UsIHRoZSBgPDxgIG9w
ZXJhdG9yIGFsc28KLW5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlICpzYW1lKiBuYW1lIHNwYWNl
LiBTZWUgZ28vdG90dy80OSBmb3IgZGV0YWlscy4KLQotIyMgSG93IGRvIEkgc3VwcHJlc3MgdGhl
IG1lbW9yeSBsZWFrIG1lc3NhZ2VzIG9uIFdpbmRvd3M/Ci0KLVNpbmNlIHRoZSBzdGF0aWNhbGx5
IGluaXRpYWxpemVkIGdvb2dsZXRlc3Qgc2luZ2xldG9uIHJlcXVpcmVzIGFsbG9jYXRpb25zIG9u
Ci10aGUgaGVhcCwgdGhlIFZpc3VhbCBDKysgbWVtb3J5IGxlYWsgZGV0ZWN0b3Igd2lsbCByZXBv
cnQgbWVtb3J5IGxlYWtzIGF0IHRoZQotZW5kIG9mIHRoZSBwcm9ncmFtIHJ1bi4gVGhlIGVhc2ll
c3Qgd2F5IHRvIGF2b2lkIHRoaXMgaXMgdG8gdXNlIHRoZQotYF9DcnRNZW1DaGVja3BvaW50YCBh
bmQgYF9DcnRNZW1EdW1wQWxsT2JqZWN0c1NpbmNlYCBjYWxscyB0byBub3QgcmVwb3J0IGFueQot
c3RhdGljYWxseSBpbml0aWFsaXplZCBoZWFwIG9iamVjdHMuIFNlZSBNU0ROIGZvciBtb3JlIGRl
dGFpbHMgYW5kIGFkZGl0aW9uYWwKLWhlYXAgY2hlY2svZGVidWcgcm91dGluZXMuCi0KLQotIyMg
SG93IGNhbiBteSBjb2RlIGRldGVjdCBpZiBpdCBpcyBydW5uaW5nIGluIGEgdGVzdD8KLQotSWYg
eW91IHdyaXRlIGNvZGUgdGhhdCBzbmlmZnMgd2hldGhlciBpdCdzIHJ1bm5pbmcgaW4gYSB0ZXN0
IGFuZCBkb2VzIGRpZmZlcmVudAotdGhpbmdzIGFjY29yZGluZ2x5LCB5b3UgYXJlIGxlYWtpbmcg
dGVzdC1vbmx5IGxvZ2ljIGludG8gcHJvZHVjdGlvbiBjb2RlIGFuZAotdGhlcmUgaXMgbm8gZWFz
eSB3YXkgdG8gZW5zdXJlIHRoYXQgdGhlIHRlc3Qtb25seSBjb2RlIHBhdGhzIGFyZW4ndCBydW4g
YnkKLW1pc3Rha2UgaW4gcHJvZHVjdGlvbi4gU3VjaCBjbGV2ZXJuZXNzIGFsc28gbGVhZHMgdG8K
LVtIZWlzZW5idWdzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IZWlzZW5idWcpLiBU
aGVyZWZvcmUgd2Ugc3Ryb25nbHkKLWFkdmlzZSBhZ2FpbnN0IHRoZSBwcmFjdGljZSwgYW5kIGdv
b2dsZXRlc3QgZG9lc24ndCBwcm92aWRlIGEgd2F5IHRvIGRvIGl0LgotCi1JbiBnZW5lcmFsLCB0
aGUgcmVjb21tZW5kZWQgd2F5IHRvIGNhdXNlIHRoZSBjb2RlIHRvIGJlaGF2ZSBkaWZmZXJlbnRs
eSB1bmRlcgotdGVzdCBpcyBbRGVwZW5kZW5jeSBJbmplY3Rpb25dKGh0dHBzOi8vZW4ud2lraXBl
ZGlhLm9yZy93aWtpL0RlcGVuZGVuY3lfaW5qZWN0aW9uKS4gWW91IGNhbiBpbmplY3QKLWRpZmZl
cmVudCBmdW5jdGlvbmFsaXR5IGZyb20gdGhlIHRlc3QgYW5kIGZyb20gdGhlIHByb2R1Y3Rpb24g
Y29kZS4gU2luY2UgeW91cgotcHJvZHVjdGlvbiBjb2RlIGRvZXNuJ3QgbGluayBpbiB0aGUgZm9y
LXRlc3QgbG9naWMgYXQgYWxsICh0aGUKLVtgdGVzdG9ubHlgXShodHRwczovL2RvY3MuYmF6ZWwu
YnVpbGQvdmVyc2lvbnMvbWFzdGVyL2JlL2NvbW1vbi1kZWZpbml0aW9ucy5odG1sI2NvbW1vbi50
ZXN0b25seSkKLWF0dHJpYnV0ZSBmb3IgQlVJTEQgdGFyZ2V0cyBoZWxwcyB0byBlbnN1cmUgdGhh
dCksIHRoZXJlIGlzIG5vIGRhbmdlciBpbgotYWNjaWRlbnRhbGx5IHJ1bm5pbmcgaXQuCi0KLUhv
d2V2ZXIsIGlmIHlvdSAqcmVhbGx5KiwgKnJlYWxseSosICpyZWFsbHkqIGhhdmUgbm8gY2hvaWNl
LCBhbmQgaWYgeW91IGZvbGxvdwotdGhlIHJ1bGUgb2YgZW5kaW5nIHlvdXIgdGVzdCBwcm9ncmFt
IG5hbWVzIHdpdGggYF90ZXN0YCwgeW91IGNhbiB1c2UgdGhlCi0qaG9ycmlibGUqIGhhY2sgb2Yg
c25pZmZpbmcgeW91ciBleGVjdXRhYmxlIG5hbWUgKGBhcmd2WzBdYCBpbiBgbWFpbigpYCkgdG8g
a25vdwotd2hldGhlciB0aGUgY29kZSBpcyB1bmRlciB0ZXN0LgotCi0KLSMjIEhvdyBkbyBJIHRl
bXBvcmFyaWx5IGRpc2FibGUgYSB0ZXN0PwotCi1JZiB5b3UgaGF2ZSBhIGJyb2tlbiB0ZXN0IHRo
YXQgeW91IGNhbm5vdCBmaXggcmlnaHQgYXdheSwgeW91IGNhbiBhZGQgdGhlCi1ESVNBQkxFRF8g
cHJlZml4IHRvIGl0cyBuYW1lLiBUaGlzIHdpbGwgZXhjbHVkZSBpdCBmcm9tIGV4ZWN1dGlvbi4g
VGhpcyBpcwotYmV0dGVyIHRoYW4gY29tbWVudGluZyBvdXQgdGhlIGNvZGUgb3IgdXNpbmcgI2lm
IDAsIGFzIGRpc2FibGVkIHRlc3RzIGFyZSBzdGlsbAotY29tcGlsZWQgKGFuZCB0aHVzIHdvbid0
IHJvdCkuCi0KLVRvIGluY2x1ZGUgZGlzYWJsZWQgdGVzdHMgaW4gdGVzdCBleGVjdXRpb24sIGp1
c3QgaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gd2l0aAotdGhlIC0tZ3Rlc3RfYWxzb19ydW5fZGlz
YWJsZWRfdGVzdHMgZmxhZy4KLQotIyMgSXMgaXQgT0sgaWYgSSBoYXZlIHR3byBzZXBhcmF0ZSBg
VEVTVChGb28sIEJhcilgIHRlc3QgbWV0aG9kcyBkZWZpbmVkIGluIGRpZmZlcmVudCBuYW1lc3Bh
Y2VzPwotCi1ZZXMuCi0KLVRoZSBydWxlIGlzICoqYWxsIHRlc3QgbWV0aG9kcyBpbiB0aGUgc2Ft
ZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgZml4dHVyZQotY2xhc3MuKiogVGhpcyBtZWFu
cyB0aGF0IHRoZSBmb2xsb3dpbmcgaXMgKiphbGxvd2VkKiogYmVjYXVzZSBib3RoIHRlc3RzIHVz
ZSB0aGUKLXNhbWUgZml4dHVyZSBjbGFzcyAoYDo6dGVzdGluZzo6VGVzdGApLgotCi1gYGBjKysK
LW5hbWVzcGFjZSBmb28gewotVEVTVChDb29sVGVzdCwgRG9Tb21ldGhpbmcpIHsKLSAgU1VDQ0VF
RCgpOwotfQotfSAgLy8gbmFtZXNwYWNlIGZvbwotCi1uYW1lc3BhY2UgYmFyIHsKLVRFU1QoQ29v
bFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBi
YXIKLWBgYAotCi1Ib3dldmVyLCB0aGUgZm9sbG93aW5nIGNvZGUgaXMgKipub3QgYWxsb3dlZCoq
IGFuZCB3aWxsIHByb2R1Y2UgYSBydW50aW1lIGVycm9yCi1mcm9tIGdvb2dsZXRlc3QgYmVjYXVz
ZSB0aGUgdGVzdCBtZXRob2RzIGFyZSB1c2luZyBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlCi1jbGFz
c2VzIHdpdGggdGhlIHNhbWUgdGVzdCBjYXNlIG5hbWUuCi0KLWBgYGMrKwotbmFtZXNwYWNlIGZv
byB7Ci1jbGFzcyBDb29sVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307ICAvLyBGaXh0
dXJlIGZvbzo6Q29vbFRlc3QKLVRFU1RfRihDb29sVGVzdCwgRG9Tb21ldGhpbmcpIHsKLSAgU1VD
Q0VFRCgpOwotfQotfSAgLy8gbmFtZXNwYWNlIGZvbwotCi1uYW1lc3BhY2UgYmFyIHsKLWNsYXNz
IENvb2xUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsgIC8vIEZpeHR1cmU6IGJhcjo6
Q29vbFRlc3QKLVRFU1RfRihDb29sVGVzdCwgRG9Tb21ldGhpbmcpIHsKLSAgU1VDQ0VFRCgpOwot
fQotfSAgLy8gbmFtZXNwYWNlIGJhcgotYGBgCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9kb2NzL3ByaW1lci5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvcHJp
bWVyLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YThlYThkNzE3YjgzNWJjYmQy
M2Y4NGM5ZWEwNWYxNmE4NzhhNWQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvcHJpbWVyLm1kCisrKyAv
ZGV2L251bGwKQEAgLTEsNTY5ICswLDAgQEAKLSMgR29vZ2xldGVzdCBQcmltZXIKLQotCi0jIyBJ
bnRyb2R1Y3Rpb246IFdoeSBnb29nbGV0ZXN0PwotCi0qZ29vZ2xldGVzdCogaGVscHMgeW91IHdy
aXRlIGJldHRlciBDKysgdGVzdHMuCi0KLWdvb2dsZXRlc3QgaXMgYSB0ZXN0aW5nIGZyYW1ld29y
ayBkZXZlbG9wZWQgYnkgdGhlIFRlc3RpbmcKLVRlY2hub2xvZ3kgdGVhbSB3aXRoIEdvb2dsZSdz
IHNwZWNpZmljCi1yZXF1aXJlbWVudHMgYW5kIGNvbnN0cmFpbnRzIGluIG1pbmQuIE5vIG1hdHRl
ciB3aGV0aGVyIHlvdSB3b3JrIG9uIExpbnV4LAotV2luZG93cywgb3IgYSBNYWMsIGlmIHlvdSB3
cml0ZSBDKysgY29kZSwgZ29vZ2xldGVzdCBjYW4gaGVscCB5b3UuIEFuZCBpdAotc3VwcG9ydHMg
KmFueSoga2luZCBvZiB0ZXN0cywgbm90IGp1c3QgdW5pdCB0ZXN0cy4KLQotU28gd2hhdCBtYWtl
cyBhIGdvb2QgdGVzdCwgYW5kIGhvdyBkb2VzIGdvb2dsZXRlc3QgZml0IGluPyBXZSBiZWxpZXZl
OgotCi0xLiAgVGVzdHMgc2hvdWxkIGJlICppbmRlcGVuZGVudCogYW5kICpyZXBlYXRhYmxlKi4g
SXQncyBhIHBhaW4gdG8gZGVidWcgYSB0ZXN0Ci0gICAgdGhhdCBzdWNjZWVkcyBvciBmYWlscyBh
cyBhIHJlc3VsdCBvZiBvdGhlciB0ZXN0cy4gZ29vZ2xldGVzdCBpc29sYXRlcyB0aGUKLSAgICB0
ZXN0cyBieSBydW5uaW5nIGVhY2ggb2YgdGhlbSBvbiBhIGRpZmZlcmVudCBvYmplY3QuIFdoZW4g
YSB0ZXN0IGZhaWxzLAotICAgIGdvb2dsZXRlc3QgYWxsb3dzIHlvdSB0byBydW4gaXQgaW4gaXNv
bGF0aW9uIGZvciBxdWljayBkZWJ1Z2dpbmcuCi0xLiAgVGVzdHMgc2hvdWxkIGJlIHdlbGwgKm9y
Z2FuaXplZCogYW5kIHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdGVzdGVkCi0gICAgY29k
ZS4gZ29vZ2xldGVzdCBncm91cHMgcmVsYXRlZCB0ZXN0cyBpbnRvIHRlc3QgY2FzZXMgdGhhdCBj
YW4gc2hhcmUgZGF0YQotICAgIGFuZCBzdWJyb3V0aW5lcy4gVGhpcyBjb21tb24gcGF0dGVybiBp
cyBlYXN5IHRvIHJlY29nbml6ZSBhbmQgbWFrZXMgdGVzdHMKLSAgICBlYXN5IHRvIG1haW50YWlu
LiBTdWNoIGNvbnNpc3RlbmN5IGlzIGVzcGVjaWFsbHkgaGVscGZ1bCB3aGVuIHBlb3BsZSBzd2l0
Y2gKLSAgICBwcm9qZWN0cyBhbmQgc3RhcnQgdG8gd29yayBvbiBhIG5ldyBjb2RlIGJhc2UuCi0x
LiAgVGVzdHMgc2hvdWxkIGJlICpwb3J0YWJsZSogYW5kICpyZXVzYWJsZSouIEdvb2dsZSBoYXMg
YSBsb3Qgb2YgY29kZSB0aGF0IGlzCi0gICAgcGxhdGZvcm0tbmV1dHJhbCwgaXRzIHRlc3RzIHNo
b3VsZCBhbHNvIGJlIHBsYXRmb3JtLW5ldXRyYWwuIGdvb2dsZXRlc3QKLSAgICB3b3JrcyBvbiBk
aWZmZXJlbnQgT1Nlcywgd2l0aCBkaWZmZXJlbnQgY29tcGlsZXJzIChnY2MsIGljYywgYW5kIE1T
VkMpLCB3aXRoCi0gICAgb3Igd2l0aG91dCBleGNlcHRpb25zLCBzbyBnb29nbGV0ZXN0IHRlc3Rz
IGNhbiBlYXNpbHkgd29yayB3aXRoIGEgdmFyaWV0eSBvZgotICAgIGNvbmZpZ3VyYXRpb25zLgot
MS4gIFdoZW4gdGVzdHMgZmFpbCwgdGhleSBzaG91bGQgcHJvdmlkZSBhcyBtdWNoICppbmZvcm1h
dGlvbiogYWJvdXQgdGhlIHByb2JsZW0KLSAgICBhcyBwb3NzaWJsZS4gZ29vZ2xldGVzdCBkb2Vz
bid0IHN0b3AgYXQgdGhlIGZpcnN0IHRlc3QgZmFpbHVyZS4gSW5zdGVhZCwgaXQKLSAgICBvbmx5
IHN0b3BzIHRoZSBjdXJyZW50IHRlc3QgYW5kIGNvbnRpbnVlcyB3aXRoIHRoZSBuZXh0LiBZb3Ug
Y2FuIGFsc28gc2V0IHVwCi0gICAgdGVzdHMgdGhhdCByZXBvcnQgbm9uLWZhdGFsIGZhaWx1cmVz
IGFmdGVyIHdoaWNoIHRoZSBjdXJyZW50IHRlc3QgY29udGludWVzLgotICAgIFRodXMsIHlvdSBj
YW4gZGV0ZWN0IGFuZCBmaXggbXVsdGlwbGUgYnVncyBpbiBhIHNpbmdsZSBydW4tZWRpdC1jb21w
aWxlCi0gICAgY3ljbGUuCi0xLiAgVGhlIHRlc3RpbmcgZnJhbWV3b3JrIHNob3VsZCBsaWJlcmF0
ZSB0ZXN0IHdyaXRlcnMgZnJvbSBob3VzZWtlZXBpbmcgY2hvcmVzCi0gICAgYW5kIGxldCB0aGVt
IGZvY3VzIG9uIHRoZSB0ZXN0ICpjb250ZW50Ki4gZ29vZ2xldGVzdCBhdXRvbWF0aWNhbGx5IGtl
ZXBzCi0gICAgdHJhY2sgb2YgYWxsIHRlc3RzIGRlZmluZWQsIGFuZCBkb2Vzbid0IHJlcXVpcmUg
dGhlIHVzZXIgdG8gZW51bWVyYXRlIHRoZW0KLSAgICBpbiBvcmRlciB0byBydW4gdGhlbS4KLTEu
ICBUZXN0cyBzaG91bGQgYmUgKmZhc3QqLiBXaXRoIGdvb2dsZXRlc3QsIHlvdSBjYW4gcmV1c2Ug
c2hhcmVkIHJlc291cmNlcwotICAgIGFjcm9zcyB0ZXN0cyBhbmQgcGF5IGZvciB0aGUgc2V0LXVw
L3RlYXItZG93biBvbmx5IG9uY2UsIHdpdGhvdXQgbWFraW5nCi0gICAgdGVzdHMgZGVwZW5kIG9u
IGVhY2ggb3RoZXIuCi0KLVNpbmNlIGdvb2dsZXRlc3QgaXMgYmFzZWQgb24gdGhlIHBvcHVsYXIg
eFVuaXQgYXJjaGl0ZWN0dXJlLCB5b3UnbGwgZmVlbCByaWdodAotYXQgaG9tZSBpZiB5b3UndmUg
dXNlZCBKVW5pdCBvciBQeVVuaXQgYmVmb3JlLiBJZiBub3QsIGl0IHdpbGwgdGFrZSB5b3UgYWJv
dXQgMTAKLW1pbnV0ZXMgdG8gbGVhcm4gdGhlIGJhc2ljcyBhbmQgZ2V0IHN0YXJ0ZWQuIFNvIGxl
dCdzIGdvIQotCi0jIyBCZXdhcmUgb2YgdGhlIG5vbWVuY2xhdHVyZQotCi1fTm90ZTpfIFRoZXJl
IG1pZ2h0IGJlIHNvbWUgY29uZnVzaW9uIG9mIGlkZWEgZHVlIHRvIGRpZmZlcmVudAotZGVmaW5p
dGlvbnMgb2YgdGhlIHRlcm1zIF9UZXN0XywgX1Rlc3QgQ2FzZV8gYW5kIF9UZXN0IFN1aXRlXywg
c28gYmV3YXJlCi1vZiBtaXN1bmRlcnN0YW5kaW5nIHRoZXNlLgotCi1IaXN0b3JpY2FsbHksIGdv
b2dsZXRlc3Qgc3RhcnRlZCB0byB1c2UgdGhlIHRlcm0gX1Rlc3QgQ2FzZV8gZm9yIGdyb3VwaW5n
Ci1yZWxhdGVkIHRlc3RzLCB3aGVyZWFzIGN1cnJlbnQgcHVibGljYXRpb25zIGluY2x1ZGluZyB0
aGUgSW50ZXJuYXRpb25hbCBTb2Z0d2FyZQotVGVzdGluZyBRdWFsaWZpY2F0aW9ucyBCb2FyZCAo
W0lTVFFCXShodHRwOi8vd3d3LmlzdHFiLm9yZy8pKSBhbmQgdmFyaW91cwotdGV4dGJvb2tzIG9u
IFNvZnR3YXJlIFF1YWxpdHkgdXNlIHRoZSB0ZXJtIF9bVGVzdAotU3VpdGVdKGh0dHA6Ly9nbG9z
c2FyeS5pc3RxYi5vcmcvc2VhcmNoL3Rlc3QlMjBzdWl0ZSlfIGZvciB0aGlzLgotCi1UaGUgcmVs
YXRlZCB0ZXJtIF9UZXN0XywgYXMgaXQgaXMgdXNlZCBpbiB0aGUgZ29vZ2xldGVzdCwgaXMgY29y
cmVzcG9uZGluZyB0bwotdGhlIHRlcm0gX1tUZXN0IENhc2VdKGh0dHA6Ly9nbG9zc2FyeS5pc3Rx
Yi5vcmcvc2VhcmNoL3Rlc3QlMjBjYXNlKV8gb2YgSVNUUUIKLWFuZCBvdGhlcnMuCi0KLVRoZSB0
ZXJtIF9UZXN0XyBpcyBjb21tb25seSBvZiBicm9hZCBlbm91Z2ggc2Vuc2UsIGluY2x1ZGluZyBJ
U1RRQidzCi1kZWZpbml0aW9uIG9mIF9UZXN0IENhc2VfLCBzbyBpdCdzIG5vdCBtdWNoIG9mIGEg
cHJvYmxlbSBoZXJlLiBCdXQgdGhlCi10ZXJtIF9UZXN0IENhc2VfIGFzIHVzZWQgaW4gR29vZ2xl
IFRlc3QgaXMgb2YgY29udHJhZGljdG9yeSBzZW5zZSBhbmQgdGh1cyBjb25mdXNpbmcuCi0KLVVu
Zm9ydHVuYXRlbHkgcmVwbGFjaW5nIHRoZSB0ZXJtIF9UZXN0IENhc2VfIGJ5IF9UZXN0IFN1aXRl
XyB0aHJvdWdob3V0IHRoZQotZ29vZ2xldGVzdCBpcyBub3QgZWFzeSB3aXRob3V0IGJyZWFraW5n
IGRlcGVuZGVudCBwcm9qZWN0cywgYXMgYFRlc3RDYXNlYCBpcwotcGFydCBvZiB0aGUgcHVibGlj
IEFQSSBhdCB2YXJpb3VzIHBsYWNlcy4KLQotU28gZm9yIHRoZSB0aW1lIGJlaW5nLCBwbGVhc2Ug
YmUgYXdhcmUgb2YgdGhlIGRpZmZlcmVudCBkZWZpbml0aW9ucyBvZgotdGhlIHRlcm1zOgotCi1N
ZWFuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBnb29nbGV0ZXN0IFRlcm0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgW0lTVFFCXShodHRwOi8vd3d3LmlzdHFiLm9yZy8pIFRl
cm0KLTotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotRXhlcmNpc2UgYSBwYXJ0aWN1bGFyIHByb2dyYW0gcGF0aCB3aXRoIHNwZWNpZmlj
IGlucHV0IHZhbHVlcyBhbmQgdmVyaWZ5IHRoZSByZXN1bHRzIHwgW1RFU1QoKV0oI3NpbXBsZS10
ZXN0cykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtUZXN0IENhc2VdKGh0dHA6Ly9nbG9z
c2FyeS5pc3RxYi5vcmcvc2VhcmNoL3Rlc3QlMjBjYXNlKQotQSBzZXQgb2Ygc2V2ZXJhbCB0ZXN0
cyByZWxhdGVkIHRvIG9uZSBjb21wb25lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgW1Rlc3RDYXNlXSgjYmFzaWMtY29uY2VwdHMpIHwgW1Rlc3RTdWl0ZV0oaHR0cDov
L2dsb3NzYXJ5LmlzdHFiLm9yZy9zZWFyY2gvdGVzdCUyMHN1aXRlKQotCi0jIyBCYXNpYyBDb25j
ZXB0cwotCi1XaGVuIHVzaW5nIGdvb2dsZXRlc3QsIHlvdSBzdGFydCBieSB3cml0aW5nICphc3Nl
cnRpb25zKiwgd2hpY2ggYXJlIHN0YXRlbWVudHMKLXRoYXQgY2hlY2sgd2hldGhlciBhIGNvbmRp
dGlvbiBpcyB0cnVlLiBBbiBhc3NlcnRpb24ncyByZXN1bHQgY2FuIGJlICpzdWNjZXNzKiwKLSpu
b25mYXRhbCBmYWlsdXJlKiwgb3IgKmZhdGFsIGZhaWx1cmUqLiBJZiBhIGZhdGFsIGZhaWx1cmUg
b2NjdXJzLCBpdCBhYm9ydHMgdGhlCi1jdXJyZW50IGZ1bmN0aW9uOyBvdGhlcndpc2UgdGhlIHBy
b2dyYW0gY29udGludWVzIG5vcm1hbGx5LgotCi0qVGVzdHMqIHVzZSBhc3NlcnRpb25zIHRvIHZl
cmlmeSB0aGUgdGVzdGVkIGNvZGUncyBiZWhhdmlvci4gSWYgYSB0ZXN0IGNyYXNoZXMKLW9yIGhh
cyBhIGZhaWxlZCBhc3NlcnRpb24sIHRoZW4gaXQgKmZhaWxzKjsgb3RoZXJ3aXNlIGl0ICpzdWNj
ZWVkcyouCi0KLUEgKnRlc3QgY2FzZSogY29udGFpbnMgb25lIG9yIG1hbnkgdGVzdHMuIFlvdSBz
aG91bGQgZ3JvdXAgeW91ciB0ZXN0cyBpbnRvIHRlc3QKLWNhc2VzIHRoYXQgcmVmbGVjdCB0aGUg
c3RydWN0dXJlIG9mIHRoZSB0ZXN0ZWQgY29kZS4gV2hlbiBtdWx0aXBsZSB0ZXN0cyBpbiBhCi10
ZXN0IGNhc2UgbmVlZCB0byBzaGFyZSBjb21tb24gb2JqZWN0cyBhbmQgc3Vicm91dGluZXMsIHlv
dSBjYW4gcHV0IHRoZW0gaW50byBhCi0qdGVzdCBmaXh0dXJlKiBjbGFzcy4KLQotQSAqdGVzdCBw
cm9ncmFtKiBjYW4gY29udGFpbiBtdWx0aXBsZSB0ZXN0IGNhc2VzLgotCi1XZSdsbCBub3cgZXhw
bGFpbiBob3cgdG8gd3JpdGUgYSB0ZXN0IHByb2dyYW0sIHN0YXJ0aW5nIGF0IHRoZSBpbmRpdmlk
dWFsCi1hc3NlcnRpb24gbGV2ZWwgYW5kIGJ1aWxkaW5nIHVwIHRvIHRlc3RzIGFuZCB0ZXN0IGNh
c2VzLgotCi0jIyBBc3NlcnRpb25zCi0KLWdvb2dsZXRlc3QgYXNzZXJ0aW9ucyBhcmUgbWFjcm9z
IHRoYXQgcmVzZW1ibGUgZnVuY3Rpb24gY2FsbHMuIFlvdSB0ZXN0IGEgY2xhc3MKLW9yIGZ1bmN0
aW9uIGJ5IG1ha2luZyBhc3NlcnRpb25zIGFib3V0IGl0cyBiZWhhdmlvci4gV2hlbiBhbiBhc3Nl
cnRpb24gZmFpbHMsCi1nb29nbGV0ZXN0IHByaW50cyB0aGUgYXNzZXJ0aW9uJ3Mgc291cmNlIGZp
bGUgYW5kIGxpbmUgbnVtYmVyIGxvY2F0aW9uLCBhbG9uZwotd2l0aCBhIGZhaWx1cmUgbWVzc2Fn
ZS4gWW91IG1heSBhbHNvIHN1cHBseSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2Ugd2hpY2ggd2ls
bAotYmUgYXBwZW5kZWQgdG8gZ29vZ2xldGVzdCdzIG1lc3NhZ2UuCi0KLVRoZSBhc3NlcnRpb25z
IGNvbWUgaW4gcGFpcnMgdGhhdCB0ZXN0IHRoZSBzYW1lIHRoaW5nIGJ1dCBoYXZlIGRpZmZlcmVu
dCBlZmZlY3RzCi1vbiB0aGUgY3VycmVudCBmdW5jdGlvbi4gYEFTU0VSVF8qYCB2ZXJzaW9ucyBn
ZW5lcmF0ZSBmYXRhbCBmYWlsdXJlcyB3aGVuIHRoZXkKLWZhaWwsIGFuZCAqKmFib3J0IHRoZSBj
dXJyZW50IGZ1bmN0aW9uKiouIGBFWFBFQ1RfKmAgdmVyc2lvbnMgZ2VuZXJhdGUgbm9uZmF0YWwK
LWZhaWx1cmVzLCB3aGljaCBkb24ndCBhYm9ydCB0aGUgY3VycmVudCBmdW5jdGlvbi4gVXN1YWxs
eSBgRVhQRUNUXypgIGFyZQotcHJlZmVycmVkLCBhcyB0aGV5IGFsbG93IG1vcmUgdGhhbiBvbmUg
ZmFpbHVyZSB0byBiZSByZXBvcnRlZCBpbiBhIHRlc3QuCi1Ib3dldmVyLCB5b3Ugc2hvdWxkIHVz
ZSBgQVNTRVJUXypgIGlmIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSB3aGVuIHRo
ZQotYXNzZXJ0aW9uIGluIHF1ZXN0aW9uIGZhaWxzLgotCi1TaW5jZSBhIGZhaWxlZCBgQVNTRVJU
XypgIHJldHVybnMgZnJvbSB0aGUgY3VycmVudCBmdW5jdGlvbiBpbW1lZGlhdGVseSwKLXBvc3Np
Ymx5IHNraXBwaW5nIGNsZWFuLXVwIGNvZGUgdGhhdCBjb21lcyBhZnRlciBpdCwgaXQgbWF5IGNh
dXNlIGEgc3BhY2UgbGVhay4KLURlcGVuZGluZyBvbiB0aGUgbmF0dXJlIG9mIHRoZSBsZWFrLCBp
dCBtYXkgb3IgbWF5IG5vdCBiZSB3b3J0aCBmaXhpbmcgLSBzbyBrZWVwCi10aGlzIGluIG1pbmQg
aWYgeW91IGdldCBhIGhlYXAgY2hlY2tlciBlcnJvciBpbiBhZGRpdGlvbiB0byBhc3NlcnRpb24g
ZXJyb3JzLgotCi1UbyBwcm92aWRlIGEgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZSwgc2ltcGx5IHN0
cmVhbSBpdCBpbnRvIHRoZSBtYWNybyB1c2luZyB0aGUKLWA8PGAgb3BlcmF0b3IsIG9yIGEgc2Vx
dWVuY2Ugb2Ygc3VjaCBvcGVyYXRvcnMuIEFuIGV4YW1wbGU6Ci0KLWBgYGMrKwotQVNTRVJUX0VR
KHguc2l6ZSgpLCB5LnNpemUoKSkgPDwgIlZlY3RvcnMgeCBhbmQgeSBhcmUgb2YgdW5lcXVhbCBs
ZW5ndGgiOwotCi1mb3IgKGludCBpID0gMDsgaSA8IHguc2l6ZSgpOyArK2kpIHsKLSAgRVhQRUNU
X0VRKHhbaV0sIHlbaV0pIDw8ICJWZWN0b3JzIHggYW5kIHkgZGlmZmVyIGF0IGluZGV4ICIgPDwg
aTsKLX0KLWBgYAotCi1Bbnl0aGluZyB0aGF0IGNhbiBiZSBzdHJlYW1lZCB0byBhbiBgb3N0cmVh
bWAgY2FuIGJlIHN0cmVhbWVkIHRvIGFuIGFzc2VydGlvbgotbWFjcm8tLWluIHBhcnRpY3VsYXIs
IEMgc3RyaW5ncyBhbmQgYHN0cmluZ2Agb2JqZWN0cy4gSWYgYSB3aWRlIHN0cmluZwotKGB3Y2hh
cl90KmAsIGBUQ0hBUipgIGluIGBVTklDT0RFYCBtb2RlIG9uIFdpbmRvd3MsIG9yIGBzdGQ6Ondz
dHJpbmdgKSBpcwotc3RyZWFtZWQgdG8gYW4gYXNzZXJ0aW9uLCBpdCB3aWxsIGJlIHRyYW5zbGF0
ZWQgdG8gVVRGLTggd2hlbiBwcmludGVkLgotCi0jIyMgQmFzaWMgQXNzZXJ0aW9ucwotCi1UaGVz
ZSBhc3NlcnRpb25zIGRvIGJhc2ljIHRydWUvZmFsc2UgY29uZGl0aW9uIHRlc3RpbmcuCi0KLUZh
dGFsIGFzc2VydGlvbiAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgfCBW
ZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tCi1gQVNTRVJUX1RSVUUoY29uZGl0aW9uKTtg
ICB8IGBFWFBFQ1RfVFJVRShjb25kaXRpb24pO2AgIHwgYGNvbmRpdGlvbmAgaXMgdHJ1ZQotYEFT
U0VSVF9GQUxTRShjb25kaXRpb24pO2AgfCBgRVhQRUNUX0ZBTFNFKGNvbmRpdGlvbik7YCB8IGBj
b25kaXRpb25gIGlzIGZhbHNlCi0KLVJlbWVtYmVyLCB3aGVuIHRoZXkgZmFpbCwgYEFTU0VSVF8q
YCB5aWVsZHMgYSBmYXRhbCBmYWlsdXJlIGFuZCByZXR1cm5zIGZyb20gdGhlCi1jdXJyZW50IGZ1
bmN0aW9uLCB3aGlsZSBgRVhQRUNUXypgIHlpZWxkcyBhIG5vbmZhdGFsIGZhaWx1cmUsIGFsbG93
aW5nIHRoZQotZnVuY3Rpb24gdG8gY29udGludWUgcnVubmluZy4gSW4gZWl0aGVyIGNhc2UsIGFu
IGFzc2VydGlvbiBmYWlsdXJlIG1lYW5zIGl0cwotY29udGFpbmluZyB0ZXN0IGZhaWxzLgotCi0q
KkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgQmluYXJ5IENvbXBh
cmlzb24KLQotVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBhc3NlcnRpb25zIHRoYXQgY29tcGFyZSB0
d28gdmFsdWVzLgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRp
b24gICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0KLWBBU1NFUlRfRVEodmFsMSwgdmFsMik7
YCB8IGBFWFBFQ1RfRVEodmFsMSwgdmFsMik7YCB8IGB2YWwxID09IHZhbDJgCi1gQVNTRVJUX05F
KHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX05FKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSAhPSB2YWwy
YAotYEFTU0VSVF9MVCh2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9MVCh2YWwxLCB2YWwyKTtgIHwg
YHZhbDEgPCB2YWwyYAotYEFTU0VSVF9MRSh2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9MRSh2YWwx
LCB2YWwyKTtgIHwgYHZhbDEgPD0gdmFsMmAKLWBBU1NFUlRfR1QodmFsMSwgdmFsMik7YCB8IGBF
WFBFQ1RfR1QodmFsMSwgdmFsMik7YCB8IGB2YWwxID4gdmFsMmAKLWBBU1NFUlRfR0UodmFsMSwg
dmFsMik7YCB8IGBFWFBFQ1RfR0UodmFsMSwgdmFsMik7YCB8IGB2YWwxID49IHZhbDJgCi0KLVZh
bHVlIGFyZ3VtZW50cyBtdXN0IGJlIGNvbXBhcmFibGUgYnkgdGhlIGFzc2VydGlvbidzIGNvbXBh
cmlzb24gb3BlcmF0b3Igb3IKLXlvdSdsbCBnZXQgYSBjb21waWxlciBlcnJvci4gV2UgdXNlZCB0
byByZXF1aXJlIHRoZSBhcmd1bWVudHMgdG8gc3VwcG9ydCB0aGUKLWA8PGAgb3BlcmF0b3IgZm9y
IHN0cmVhbWluZyB0byBhbiBgb3N0cmVhbWAsIGJ1dCBpdCdzIG5vIGxvbmdlciBuZWNlc3Nhcnku
IElmCi1gPDxgIGlzIHN1cHBvcnRlZCwgaXQgd2lsbCBiZSBjYWxsZWQgdG8gcHJpbnQgdGhlIGFy
Z3VtZW50cyB3aGVuIHRoZSBhc3NlcnRpb24KLWZhaWxzOyBvdGhlcndpc2UgZ29vZ2xldGVzdCB3
aWxsIGF0dGVtcHQgdG8gcHJpbnQgdGhlbSBpbiB0aGUgYmVzdCB3YXkgaXQgY2FuLgotRm9yIG1v
cmUgZGV0YWlscyBhbmQgaG93IHRvIGN1c3RvbWl6ZSB0aGUgcHJpbnRpbmcgb2YgdGhlIGFyZ3Vt
ZW50cywgc2VlCi1nTW9jayBbcmVjaXBlXSguLi8uLi9nb29nbGVtb2NrL2RvY3MvQ29va0Jvb2su
bWQjdGVhY2hpbmctZ29vZ2xlLW1vY2staG93LXRvLXByaW50LXlvdXItdmFsdWVzKS4pLgotCi1U
aGVzZSBhc3NlcnRpb25zIGNhbiB3b3JrIHdpdGggYSB1c2VyLWRlZmluZWQgdHlwZSwgYnV0IG9u
bHkgaWYgeW91IGRlZmluZSB0aGUKLWNvcnJlc3BvbmRpbmcgY29tcGFyaXNvbiBvcGVyYXRvciAo
ZS5nLiBgPT1gLCBgPGAsIGV0YykuIFNpbmNlIHRoaXMgaXMKLWRpc2NvdXJhZ2VkIGJ5IHRoZSBH
b29nbGUgW0MrKyBTdHlsZQotR3VpZGVdKGh0dHBzOi8vZ29vZ2xlLmdpdGh1Yi5pby9zdHlsZWd1
aWRlL2NwcGd1aWRlLmh0bWwjT3BlcmF0b3JfT3ZlcmxvYWRpbmcpLAoteW91IG1heSBuZWVkIHRv
IHVzZSBgQVNTRVJUX1RSVUUoKWAgb3IgYEVYUEVDVF9UUlVFKClgIHRvIGFzc2VydCB0aGUgZXF1
YWxpdHkgb2YKLXR3byBvYmplY3RzIG9mIGEgdXNlci1kZWZpbmVkIHR5cGUuCi0KLUhvd2V2ZXIs
IHdoZW4gcG9zc2libGUsIGBBU1NFUlRfRVEoYWN0dWFsLCBleHBlY3RlZClgIGlzIHByZWZlcnJl
ZCB0bwotYEFTU0VSVF9UUlVFKGFjdHVhbCA9PSBleHBlY3RlZClgLCBzaW5jZSBpdCB0ZWxscyB5
b3UgYGFjdHVhbGAgYW5kIGBleHBlY3RlZGAncwotdmFsdWVzIG9uIGZhaWx1cmUuCi0KLUFyZ3Vt
ZW50cyBhcmUgYWx3YXlzIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuIFRoZXJlZm9yZSwgaXQncyBP
SyBmb3IgdGhlCi1hcmd1bWVudHMgdG8gaGF2ZSBzaWRlIGVmZmVjdHMuIEhvd2V2ZXIsIGFzIHdp
dGggYW55IG9yZGluYXJ5IEMvQysrIGZ1bmN0aW9uLAotdGhlIGFyZ3VtZW50cycgZXZhbHVhdGlv
biBvcmRlciBpcyB1bmRlZmluZWQgKGkuZS4gdGhlIGNvbXBpbGVyIGlzIGZyZWUgdG8KLWNob29z
ZSBhbnkgb3JkZXIpIGFuZCB5b3VyIGNvZGUgc2hvdWxkIG5vdCBkZXBlbmQgb24gYW55IHBhcnRp
Y3VsYXIgYXJndW1lbnQKLWV2YWx1YXRpb24gb3JkZXIuCi0KLWBBU1NFUlRfRVEoKWAgZG9lcyBw
b2ludGVyIGVxdWFsaXR5IG9uIHBvaW50ZXJzLiBJZiB1c2VkIG9uIHR3byBDIHN0cmluZ3MsIGl0
Ci10ZXN0cyBpZiB0aGV5IGFyZSBpbiB0aGUgc2FtZSBtZW1vcnkgbG9jYXRpb24sIG5vdCBpZiB0
aGV5IGhhdmUgdGhlIHNhbWUgdmFsdWUuCi1UaGVyZWZvcmUsIGlmIHlvdSB3YW50IHRvIGNvbXBh
cmUgQyBzdHJpbmdzIChlLmcuIGBjb25zdCBjaGFyKmApIGJ5IHZhbHVlLCB1c2UKLWBBU1NFUlRf
U1RSRVEoKWAsIHdoaWNoIHdpbGwgYmUgZGVzY3JpYmVkIGxhdGVyIG9uLiBJbiBwYXJ0aWN1bGFy
LCB0byBhc3NlcnQKLXRoYXQgYSBDIHN0cmluZyBpcyBgTlVMTGAsIHVzZSBgQVNTRVJUX1NUUkVR
KGNfc3RyaW5nLCBOVUxMKWAuIENvbnNpZGVyIHVzZQotYEFTU0VSVF9FUShjX3N0cmluZywgbnVs
bHB0cilgIGlmIGMrKzExIGlzIHN1cHBvcnRlZC4gVG8gY29tcGFyZSB0d28gYHN0cmluZ2AKLW9i
amVjdHMsIHlvdSBzaG91bGQgdXNlIGBBU1NFUlRfRVFgLgotCi1XaGVuIGRvaW5nIHBvaW50ZXIg
Y29tcGFyaXNvbnMgdXNlIGAqX0VRKHB0ciwgbnVsbHB0cilgIGFuZCBgKl9ORShwdHIsIG51bGxw
dHIpYAotaW5zdGVhZCBvZiBgKl9FUShwdHIsIE5VTEwpYCBhbmQgYCpfTkUocHRyLCBOVUxMKWAu
IFRoaXMgaXMgYmVjYXVzZSBgbnVsbHB0cmAgaXMKLXR5cGVkIHdoaWxlIGBOVUxMYCBpcyBub3Qu
IFNlZSBbRkFRXShmYXEubWQjd2h5LWRvZXMtZ29vZ2xlLXRlc3Qtc3VwcG9ydC1leHBlY3RfZXFu
dWxsLXB0ci1hbmQtYXNzZXJ0X2VxbnVsbC1wdHItYnV0LW5vdC1leHBlY3RfbmVudWxsLXB0ci1h
bmQtYXNzZXJ0X25lbnVsbC1wdHIpCi1mb3IgbW9yZSBkZXRhaWxzLgotCi1JZiB5b3UncmUgd29y
a2luZyB3aXRoIGZsb2F0aW5nIHBvaW50IG51bWJlcnMsIHlvdSBtYXkgd2FudCB0byB1c2UgdGhl
IGZsb2F0aW5nCi1wb2ludCB2YXJpYXRpb25zIG9mIHNvbWUgb2YgdGhlc2UgbWFjcm9zIGluIG9y
ZGVyIHRvIGF2b2lkIHByb2JsZW1zIGNhdXNlZCBieQotcm91bmRpbmcuIFNlZSBbQWR2YW5jZWQg
Z29vZ2xldGVzdCBUb3BpY3NdKGFkdmFuY2VkLm1kKSBmb3IgZGV0YWlscy4KLQotTWFjcm9zIGlu
IHRoaXMgc2VjdGlvbiB3b3JrIHdpdGggYm90aCBuYXJyb3cgYW5kIHdpZGUgc3RyaW5nIG9iamVj
dHMgKGBzdHJpbmdgCi1hbmQgYHdzdHJpbmdgKS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgs
IFdpbmRvd3MsIE1hYy4KLQotKipIaXN0b3JpY2FsIG5vdGUqKjogQmVmb3JlIEZlYnJ1YXJ5IDIw
MTYgYCpfRVFgIGhhZCBhIGNvbnZlbnRpb24gb2YgY2FsbGluZyBpdAotYXMgYEFTU0VSVF9FUShl
eHBlY3RlZCwgYWN0dWFsKWAsIHNvIGxvdHMgb2YgZXhpc3RpbmcgY29kZSB1c2VzIHRoaXMgb3Jk
ZXIuIE5vdwotYCpfRVFgIHRyZWF0cyBib3RoIHBhcmFtZXRlcnMgaW4gdGhlIHNhbWUgd2F5Lgot
Ci0jIyMgU3RyaW5nIENvbXBhcmlzb24KLQotVGhlIGFzc2VydGlvbnMgaW4gdGhpcyBncm91cCBj
b21wYXJlIHR3byAqKkMgc3RyaW5ncyoqLiBJZiB5b3Ugd2FudCB0byBjb21wYXJlCi10d28gYHN0
cmluZ2Agb2JqZWN0cywgdXNlIGBFWFBFQ1RfRVFgLCBgRVhQRUNUX05FYCwgYW5kIGV0YyBpbnN0
ZWFkLgotCi18IEZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3Nl
cnRpb24gICAgICAgICAgICAgIHwgVmVyaWZpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFTU0VSVF9TVFJFUShz
dHIxLCBzdHIyKTtgICAgICB8IGBFWFBFQ1RfU1RSRVEoc3RyMSwgc3RyMik7YCAgICAgfCB0aGUg
dHdvIEMgc3RyaW5ncyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQgICAgICAgICAgICAgICAgICB8Ci18
IGBBU1NFUlRfU1RSTkUoc3RyMSwgc3RyMik7YCAgICAgfCBgRVhQRUNUX1NUUk5FKHN0cjEsIHN0
cjIpO2AgICAgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSBkaWZmZXJlbnQgY29udGVudHMgICAg
ICAgICAgICAgICAgfAotfCBgQVNTRVJUX1NUUkNBU0VFUShzdHIxLCBzdHIyKTtgIHwgYEVYUEVD
VF9TVFJDQVNFRVEoc3RyMSwgc3RyMik7YCB8IHRoZSB0d28gQyBzdHJpbmdzIGhhdmUgdGhlIHNh
bWUgY29udGVudCwgaWdub3JpbmcgY2FzZSAgIHwKLXwgYEFTU0VSVF9TVFJDQVNFTkUoc3RyMSwg
c3RyMik7YCB8IGBFWFBFQ1RfU1RSQ0FTRU5FKHN0cjEsIHN0cjIpO2AgfCB0aGUgdHdvIEMgc3Ry
aW5ncyBoYXZlIGRpZmZlcmVudCBjb250ZW50cywgaWdub3JpbmcgY2FzZSB8Ci0KLU5vdGUgdGhh
dCAiQ0FTRSIgaW4gYW4gYXNzZXJ0aW9uIG5hbWUgbWVhbnMgdGhhdCBjYXNlIGlzIGlnbm9yZWQu
IEEgYE5VTExgCi1wb2ludGVyIGFuZCBhbiBlbXB0eSBzdHJpbmcgYXJlIGNvbnNpZGVyZWQgKmRp
ZmZlcmVudCouCi0KLWAqU1RSRVEqYCBhbmQgYCpTVFJORSpgIGFsc28gYWNjZXB0IHdpZGUgQyBz
dHJpbmdzIChgd2NoYXJfdCpgKS4gSWYgYSBjb21wYXJpc29uCi1vZiB0d28gd2lkZSBzdHJpbmdz
IGZhaWxzLCB0aGVpciB2YWx1ZXMgd2lsbCBiZSBwcmludGVkIGFzIFVURi04IG5hcnJvdyBzdHJp
bmdzLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0qKlNlZSBh
bHNvKio6IEZvciBtb3JlIHN0cmluZyBjb21wYXJpc29uIHRyaWNrcyAoc3Vic3RyaW5nLCBwcmVm
aXgsIHN1ZmZpeCwgYW5kCi1yZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcsIGZvciBleGFtcGxl
KSwgc2VlCi1bdGhpc10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2Iv
bWFzdGVyL2dvb2dsZXRlc3QvZG9jcy9hZHZhbmNlZC5tZCkKLWluIHRoZSBBZHZhbmNlZCBnb29n
bGV0ZXN0IEd1aWRlLgotCi0jIyBTaW1wbGUgVGVzdHMKLQotVG8gY3JlYXRlIGEgdGVzdDoKLQot
MS4gIFVzZSB0aGUgYFRFU1QoKWAgbWFjcm8gdG8gZGVmaW5lIGFuZCBuYW1lIGEgdGVzdCBmdW5j
dGlvbiwgVGhlc2UgYXJlCi0gICAgb3JkaW5hcnkgQysrIGZ1bmN0aW9ucyB0aGF0IGRvbid0IHJl
dHVybiBhIHZhbHVlLgotMS4gIEluIHRoaXMgZnVuY3Rpb24sIGFsb25nIHdpdGggYW55IHZhbGlk
IEMrKyBzdGF0ZW1lbnRzIHlvdSB3YW50IHRvIGluY2x1ZGUsCi0gICAgdXNlIHRoZSB2YXJpb3Vz
IGdvb2dsZXRlc3QgYXNzZXJ0aW9ucyB0byBjaGVjayB2YWx1ZXMuCi0xLiAgVGhlIHRlc3QncyBy
ZXN1bHQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXNzZXJ0aW9uczsgaWYgYW55IGFzc2VydGlvbiBp
biB0aGUKLSAgICB0ZXN0IGZhaWxzIChlaXRoZXIgZmF0YWxseSBvciBub24tZmF0YWxseSksIG9y
IGlmIHRoZSB0ZXN0IGNyYXNoZXMsIHRoZQotICAgIGVudGlyZSB0ZXN0IGZhaWxzLiBPdGhlcndp
c2UsIGl0IHN1Y2NlZWRzLgotCi1gYGBjKysKLVRFU1QoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSkg
ewotICAuLi4gdGVzdCBib2R5IC4uLgotfQotYGBgCi0KLWBURVNUKClgIGFyZ3VtZW50cyBnbyBm
cm9tIGdlbmVyYWwgdG8gc3BlY2lmaWMuIFRoZSAqZmlyc3QqIGFyZ3VtZW50IGlzIHRoZSBuYW1l
Ci1vZiB0aGUgdGVzdCBjYXNlLCBhbmQgdGhlICpzZWNvbmQqIGFyZ3VtZW50IGlzIHRoZSB0ZXN0
J3MgbmFtZSB3aXRoaW4gdGhlIHRlc3QKLWNhc2UuIEJvdGggbmFtZXMgbXVzdCBiZSB2YWxpZCBD
KysgaWRlbnRpZmllcnMsIGFuZCB0aGV5IHNob3VsZCBub3QgY29udGFpbgotdW5kZXJzY29yZSAo
YF9gKS4gQSB0ZXN0J3MgKmZ1bGwgbmFtZSogY29uc2lzdHMgb2YgaXRzIGNvbnRhaW5pbmcgdGVz
dCBjYXNlIGFuZAotaXRzIGluZGl2aWR1YWwgbmFtZS4gVGVzdHMgZnJvbSBkaWZmZXJlbnQgdGVz
dCBjYXNlcyBjYW4gaGF2ZSB0aGUgc2FtZQotaW5kaXZpZHVhbCBuYW1lLgotCi1Gb3IgZXhhbXBs
ZSwgbGV0J3MgdGFrZSBhIHNpbXBsZSBpbnRlZ2VyIGZ1bmN0aW9uOgotCi1gYGBjKysKLWludCBG
YWN0b3JpYWwoaW50IG4pOyAgLy8gUmV0dXJucyB0aGUgZmFjdG9yaWFsIG9mIG4KLWBgYAotCi1B
IHRlc3QgY2FzZSBmb3IgdGhpcyBmdW5jdGlvbiBtaWdodCBsb29rIGxpa2U6Ci0KLWBgYGMrKwot
Ly8gVGVzdHMgZmFjdG9yaWFsIG9mIDAuCi1URVNUKEZhY3RvcmlhbFRlc3QsIEhhbmRsZXNaZXJv
SW5wdXQpIHsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCgwKSwgMSk7Ci19Ci0KLS8vIFRlc3RzIGZh
Y3RvcmlhbCBvZiBwb3NpdGl2ZSBudW1iZXJzLgotVEVTVChGYWN0b3JpYWxUZXN0LCBIYW5kbGVz
UG9zaXRpdmVJbnB1dCkgewotICBFWFBFQ1RfRVEoRmFjdG9yaWFsKDEpLCAxKTsKLSAgRVhQRUNU
X0VRKEZhY3RvcmlhbCgyKSwgMik7Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwoMyksIDYpOwotICBF
WFBFQ1RfRVEoRmFjdG9yaWFsKDgpLCA0MDMyMCk7Ci19Ci1gYGAKLQotZ29vZ2xldGVzdCBncm91
cHMgdGhlIHRlc3QgcmVzdWx0cyBieSB0ZXN0IGNhc2VzLCBzbyBsb2dpY2FsbHktcmVsYXRlZCB0
ZXN0cwotc2hvdWxkIGJlIGluIHRoZSBzYW1lIHRlc3QgY2FzZTsgaW4gb3RoZXIgd29yZHMsIHRo
ZSBmaXJzdCBhcmd1bWVudCB0byB0aGVpcgotYFRFU1QoKWAgc2hvdWxkIGJlIHRoZSBzYW1lLiBJ
biB0aGUgYWJvdmUgZXhhbXBsZSwgd2UgaGF2ZSB0d28gdGVzdHMsCi1gSGFuZGxlc1plcm9JbnB1
dGAgYW5kIGBIYW5kbGVzUG9zaXRpdmVJbnB1dGAsIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIHRl
c3QgY2FzZQotYEZhY3RvcmlhbFRlc3RgLgotCi1XaGVuIG5hbWluZyB5b3VyIHRlc3QgY2FzZXMg
YW5kIHRlc3RzLCB5b3Ugc2hvdWxkIGZvbGxvdyB0aGUgc2FtZSBjb252ZW50aW9uIGFzCi1mb3Ig
W25hbWluZyBmdW5jdGlvbnMgYW5kCi1jbGFzc2VzXShodHRwczovL2dvb2dsZS5naXRodWIuaW8v
c3R5bGVndWlkZS9jcHBndWlkZS5odG1sI0Z1bmN0aW9uX05hbWVzKS4KLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgVGVzdCBGaXh0dXJlczogVXNpbmcgdGhl
IFNhbWUgRGF0YSBDb25maWd1cmF0aW9uIGZvciBNdWx0aXBsZSBUZXN0cwotCi1JZiB5b3UgZmlu
ZCB5b3Vyc2VsZiB3cml0aW5nIHR3byBvciBtb3JlIHRlc3RzIHRoYXQgb3BlcmF0ZSBvbiBzaW1p
bGFyIGRhdGEsIHlvdQotY2FuIHVzZSBhICp0ZXN0IGZpeHR1cmUqLiBJdCBhbGxvd3MgeW91IHRv
IHJldXNlIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gb2YKLW9iamVjdHMgZm9yIHNldmVyYWwgZGlm
ZmVyZW50IHRlc3RzLgotCi1UbyBjcmVhdGUgYSBmaXh0dXJlOgotCi0xLiAgRGVyaXZlIGEgY2xh
c3MgZnJvbSBgOjp0ZXN0aW5nOjpUZXN0YCAuIFN0YXJ0IGl0cyBib2R5IHdpdGggYHByb3RlY3Rl
ZDpgIGFzCi0gICAgd2UnbGwgd2FudCB0byBhY2Nlc3MgZml4dHVyZSBtZW1iZXJzIGZyb20gc3Vi
LWNsYXNzZXMuCi0xLiAgSW5zaWRlIHRoZSBjbGFzcywgZGVjbGFyZSBhbnkgb2JqZWN0cyB5b3Ug
cGxhbiB0byB1c2UuCi0xLiAgSWYgbmVjZXNzYXJ5LCB3cml0ZSBhIGRlZmF1bHQgY29uc3RydWN0
b3Igb3IgYFNldFVwKClgIGZ1bmN0aW9uIHRvIHByZXBhcmUKLSAgICB0aGUgb2JqZWN0cyBmb3Ig
ZWFjaCB0ZXN0LiBBIGNvbW1vbiBtaXN0YWtlIGlzIHRvIHNwZWxsIGBTZXRVcCgpYCBhcwotICAg
ICoqYFNldHVwKClgKiogd2l0aCBhIHNtYWxsIGB1YCAtIFVzZSBgb3ZlcnJpZGVgIGluIEMrKzEx
IHRvIG1ha2Ugc3VyZSB5b3UKLSAgICBzcGVsbGVkIGl0IGNvcnJlY3RseQotMS4gIElmIG5lY2Vz
c2FyeSwgd3JpdGUgYSBkZXN0cnVjdG9yIG9yIGBUZWFyRG93bigpYCBmdW5jdGlvbiB0byByZWxl
YXNlIGFueQotICAgIHJlc291cmNlcyB5b3UgYWxsb2NhdGVkIGluIGBTZXRVcCgpYCAuIFRvIGxl
YXJuIHdoZW4geW91IHNob3VsZCB1c2UgdGhlCi0gICAgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciBh
bmQgd2hlbiB5b3Ugc2hvdWxkIHVzZSBgU2V0VXAoKS9UZWFyRG93bigpYCwgcmVhZAotICAgIHRo
aXMgW0ZBUV0oZmFxLm1kI3Nob3VsZC1pLXVzZS10aGUtY29uc3RydWN0b3JkZXN0cnVjdG9yLW9m
LXRoZS10ZXN0LWZpeHR1cmUtb3Itc2V0dXB0ZWFyZG93bikgZW50cnkuCi0xLiAgSWYgbmVlZGVk
LCBkZWZpbmUgc3Vicm91dGluZXMgZm9yIHlvdXIgdGVzdHMgdG8gc2hhcmUuCi0KLVdoZW4gdXNp
bmcgYSBmaXh0dXJlLCB1c2UgYFRFU1RfRigpYCBpbnN0ZWFkIG9mIGBURVNUKClgIGFzIGl0IGFs
bG93cyB5b3UgdG8KLWFjY2VzcyBvYmplY3RzIGFuZCBzdWJyb3V0aW5lcyBpbiB0aGUgdGVzdCBm
aXh0dXJlOgotCi1gYGBjKysKLVRFU1RfRihUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB7Ci0gIC4u
LiB0ZXN0IGJvZHkgLi4uCi19Ci1gYGAKLQotTGlrZSBgVEVTVCgpYCwgdGhlIGZpcnN0IGFyZ3Vt
ZW50IGlzIHRoZSB0ZXN0IGNhc2UgbmFtZSwgYnV0IGZvciBgVEVTVF9GKClgIHRoaXMKLW11c3Qg
YmUgdGhlIG5hbWUgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcy4gWW91J3ZlIHByb2JhYmx5IGd1
ZXNzZWQ6IGBfRmAgaXMgZm9yCi1maXh0dXJlLgotCi1VbmZvcnR1bmF0ZWx5LCB0aGUgQysrIG1h
Y3JvIHN5c3RlbSBkb2VzIG5vdCBhbGxvdyB1cyB0byBjcmVhdGUgYSBzaW5nbGUgbWFjcm8KLXRo
YXQgY2FuIGhhbmRsZSBib3RoIHR5cGVzIG9mIHRlc3RzLiBVc2luZyB0aGUgd3JvbmcgbWFjcm8g
Y2F1c2VzIGEgY29tcGlsZXIKLWVycm9yLgotCi1BbHNvLCB5b3UgbXVzdCBmaXJzdCBkZWZpbmUg
YSB0ZXN0IGZpeHR1cmUgY2xhc3MgYmVmb3JlIHVzaW5nIGl0IGluIGEKLWBURVNUX0YoKWAsIG9y
IHlvdSdsbCBnZXQgdGhlIGNvbXBpbGVyIGVycm9yICJgdmlydHVhbCBvdXRzaWRlIGNsYXNzCi1k
ZWNsYXJhdGlvbmAiLgotCi1Gb3IgZWFjaCB0ZXN0IGRlZmluZWQgd2l0aCBgVEVTVF9GKClgICwg
Z29vZ2xldGVzdCB3aWxsIGNyZWF0ZSBhICpmcmVzaCogdGVzdAotZml4dHVyZSBhdCBydW50aW1l
LCBpbW1lZGlhdGVseSBpbml0aWFsaXplIGl0IHZpYSBgU2V0VXAoKWAgLCBydW4gdGhlIHRlc3Qs
Ci1jbGVhbiB1cCBieSBjYWxsaW5nIGBUZWFyRG93bigpYCAsIGFuZCB0aGVuIGRlbGV0ZSB0aGUg
dGVzdCBmaXh0dXJlLiBOb3RlIHRoYXQKLWRpZmZlcmVudCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0
IGNhc2UgaGF2ZSBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlIG9iamVjdHMsIGFuZAotZ29vZ2xldGVz
dCBhbHdheXMgZGVsZXRlcyBhIHRlc3QgZml4dHVyZSBiZWZvcmUgaXQgY3JlYXRlcyB0aGUgbmV4
dCBvbmUuCi1nb29nbGV0ZXN0IGRvZXMgKipub3QqKiByZXVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1
cmUgZm9yIG11bHRpcGxlIHRlc3RzLiBBbnkKLWNoYW5nZXMgb25lIHRlc3QgbWFrZXMgdG8gdGhl
IGZpeHR1cmUgZG8gbm90IGFmZmVjdCBvdGhlciB0ZXN0cy4KLQotQXMgYW4gZXhhbXBsZSwgbGV0
J3Mgd3JpdGUgdGVzdHMgZm9yIGEgRklGTyBxdWV1ZSBjbGFzcyBuYW1lZCBgUXVldWVgLCB3aGlj
aCBoYXMKLXRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlOgotCi1gYGBjKysKLXRlbXBsYXRlIDx0eXBl
bmFtZSBFPiAgLy8gRSBpcyB0aGUgZWxlbWVudCB0eXBlLgotY2xhc3MgUXVldWUgewotIHB1Ymxp
YzoKLSAgUXVldWUoKTsKLSAgdm9pZCBFbnF1ZXVlKGNvbnN0IEUmIGVsZW1lbnQpOwotICBFKiBE
ZXF1ZXVlKCk7ICAvLyBSZXR1cm5zIE5VTEwgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LgotICBzaXpl
X3Qgc2l6ZSgpIGNvbnN0OwotICAuLi4KLX07Ci1gYGAKLQotRmlyc3QsIGRlZmluZSBhIGZpeHR1
cmUgY2xhc3MuIEJ5IGNvbnZlbnRpb24sIHlvdSBzaG91bGQgZ2l2ZSBpdCB0aGUgbmFtZQotYEZv
b1Rlc3RgIHdoZXJlIGBGb29gIGlzIHRoZSBjbGFzcyBiZWluZyB0ZXN0ZWQuCi0KLWBgYGMrKwot
Y2xhc3MgUXVldWVUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgot
ICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewotICAgICBxMV8uRW5xdWV1ZSgxKTsKLSAgICAgcTJf
LkVucXVldWUoMik7Ci0gICAgIHEyXy5FbnF1ZXVlKDMpOwotICB9Ci0KLSAgLy8gdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHt9Ci0KLSAgUXVldWU8aW50PiBxMF87Ci0gIFF1ZXVlPGludD4gcTFf
OwotICBRdWV1ZTxpbnQ+IHEyXzsKLX07Ci1gYGAKLQotSW4gdGhpcyBjYXNlLCBgVGVhckRvd24o
KWAgaXMgbm90IG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBoYXZlIHRvIGNsZWFuIHVwIGFmdGVyCi1l
YWNoIHRlc3QsIG90aGVyIHRoYW4gd2hhdCdzIGFscmVhZHkgZG9uZSBieSB0aGUgZGVzdHJ1Y3Rv
ci4KLQotTm93IHdlJ2xsIHdyaXRlIHRlc3RzIHVzaW5nIGBURVNUX0YoKWAgYW5kIHRoaXMgZml4
dHVyZS4KLQotYGBgYysrCi1URVNUX0YoUXVldWVUZXN0LCBJc0VtcHR5SW5pdGlhbGx5KSB7Ci0g
IEVYUEVDVF9FUShxMF8uc2l6ZSgpLCAwKTsKLX0KLQotVEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1
ZVdvcmtzKSB7Ci0gIGludCogbiA9IHEwXy5EZXF1ZXVlKCk7Ci0gIEVYUEVDVF9FUShuLCBudWxs
cHRyKTsKLQotICBuID0gcTFfLkRlcXVldWUoKTsKLSAgQVNTRVJUX05FKG4sIG51bGxwdHIpOwot
ICBFWFBFQ1RfRVEoKm4sIDEpOwotICBFWFBFQ1RfRVEocTFfLnNpemUoKSwgMCk7Ci0gIGRlbGV0
ZSBuOwotCi0gIG4gPSBxMl8uRGVxdWV1ZSgpOwotICBBU1NFUlRfTkUobiwgbnVsbHB0cik7Ci0g
IEVYUEVDVF9FUSgqbiwgMik7Ci0gIEVYUEVDVF9FUShxMl8uc2l6ZSgpLCAxKTsKLSAgZGVsZXRl
IG47Ci19Ci1gYGAKLQotVGhlIGFib3ZlIHVzZXMgYm90aCBgQVNTRVJUXypgIGFuZCBgRVhQRUNU
XypgIGFzc2VydGlvbnMuIFRoZSBydWxlIG9mIHRodW1iIGlzCi10byB1c2UgYEVYUEVDVF8qYCB3
aGVuIHlvdSB3YW50IHRoZSB0ZXN0IHRvIGNvbnRpbnVlIHRvIHJldmVhbCBtb3JlIGVycm9ycyBh
ZnRlcgotdGhlIGFzc2VydGlvbiBmYWlsdXJlLCBhbmQgdXNlIGBBU1NFUlRfKmAgd2hlbiBjb250
aW51aW5nIGFmdGVyIGZhaWx1cmUgZG9lc24ndAotbWFrZSBzZW5zZS4gRm9yIGV4YW1wbGUsIHRo
ZSBzZWNvbmQgYXNzZXJ0aW9uIGluIHRoZSBgRGVxdWV1ZWAgdGVzdCBpcwotPUFTU0VSVF9ORShu
dWxscHRyLCBuKT0sIGFzIHdlIG5lZWQgdG8gZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYG5gIGxh
dGVyLCB3aGljaAotd291bGQgbGVhZCB0byBhIHNlZ2ZhdWx0IHdoZW4gYG5gIGlzIGBOVUxMYC4K
LQotV2hlbiB0aGVzZSB0ZXN0cyBydW4sIHRoZSBmb2xsb3dpbmcgaGFwcGVuczoKLQotMS4gIGdv
b2dsZXRlc3QgY29uc3RydWN0cyBhIGBRdWV1ZVRlc3RgIG9iamVjdCAobGV0J3MgY2FsbCBpdCBg
dDFgICkuCi0xLiAgYHQxLlNldFVwKClgIGluaXRpYWxpemVzIGB0MWAgLgotMS4gIFRoZSBmaXJz
dCB0ZXN0ICggYElzRW1wdHlJbml0aWFsbHlgICkgcnVucyBvbiBgdDFgIC4KLTEuICBgdDEuVGVh
ckRvd24oKWAgY2xlYW5zIHVwIGFmdGVyIHRoZSB0ZXN0IGZpbmlzaGVzLgotMS4gIGB0MWAgaXMg
ZGVzdHJ1Y3RlZC4KLTEuICBUaGUgYWJvdmUgc3RlcHMgYXJlIHJlcGVhdGVkIG9uIGFub3RoZXIg
YFF1ZXVlVGVzdGAgb2JqZWN0LCB0aGlzIHRpbWUKLSAgICBydW5uaW5nIHRoZSBgRGVxdWV1ZVdv
cmtzYCB0ZXN0LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0K
LSMjIEludm9raW5nIHRoZSBUZXN0cwotCi1gVEVTVCgpYCBhbmQgYFRFU1RfRigpYCBpbXBsaWNp
dGx5IHJlZ2lzdGVyIHRoZWlyIHRlc3RzIHdpdGggZ29vZ2xldGVzdC4gU28sCi11bmxpa2Ugd2l0
aCBtYW55IG90aGVyIEMrKyB0ZXN0aW5nIGZyYW1ld29ya3MsIHlvdSBkb24ndCBoYXZlIHRvIHJl
LWxpc3QgYWxsCi15b3VyIGRlZmluZWQgdGVzdHMgaW4gb3JkZXIgdG8gcnVuIHRoZW0uCi0KLUFm
dGVyIGRlZmluaW5nIHlvdXIgdGVzdHMsIHlvdSBjYW4gcnVuIHRoZW0gd2l0aCBgUlVOX0FMTF9U
RVNUUygpYCAsIHdoaWNoCi1yZXR1cm5zIGAwYCBpZiBhbGwgdGhlIHRlc3RzIGFyZSBzdWNjZXNz
ZnVsLCBvciBgMWAgb3RoZXJ3aXNlLiBOb3RlIHRoYXQKLWBSVU5fQUxMX1RFU1RTKClgIHJ1bnMg
KmFsbCB0ZXN0cyogaW4geW91ciBsaW5rIHVuaXQgLS0gdGhleSBjYW4gYmUgZnJvbQotZGlmZmVy
ZW50IHRlc3QgY2FzZXMsIG9yIGV2ZW4gZGlmZmVyZW50IHNvdXJjZSBmaWxlcy4KLQotV2hlbiBp
bnZva2VkLCB0aGUgYFJVTl9BTExfVEVTVFMoKWAgbWFjcm86Ci0KLTEuIFNhdmVzIHRoZSBzdGF0
ZSBvZiBhbGwgZ29vZ2xldGVzdCBmbGFncwotCi0qICAgQ3JlYXRlcyBhIHRlc3QgZml4dHVyZSBv
YmplY3QgZm9yIHRoZSBmaXJzdCB0ZXN0LgotCi0qICAgSW5pdGlhbGl6ZXMgaXQgdmlhIGBTZXRV
cCgpYC4KLQotKiAgIFJ1bnMgdGhlIHRlc3Qgb24gdGhlIGZpeHR1cmUgb2JqZWN0LgotCi0qICAg
Q2xlYW5zIHVwIHRoZSBmaXh0dXJlIHZpYSBgVGVhckRvd24oKWAuCi0KLSogICBEZWxldGVzIHRo
ZSBmaXh0dXJlLgotCi0qIFJlc3RvcmVzIHRoZSBzdGF0ZSBvZiBhbGwgZ29vZ2xldGVzdCBmbGFn
cwotCi0qICAgUmVwZWF0cyB0aGUgYWJvdmUgc3RlcHMgZm9yIHRoZSBuZXh0IHRlc3QsIHVudGls
IGFsbCB0ZXN0cyBoYXZlIHJ1bi4KLQotSWYgYSBmYXRhbCBmYWlsdXJlIGhhcHBlbnMgdGhlIHN1
YnNlcXVlbnQgc3RlcHMgd2lsbCBiZSBza2lwcGVkLgotCi0+IElNUE9SVEFOVDogWW91IG11c3Qg
Kipub3QqKiBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBgUlVOX0FMTF9URVNUUygpYCwgb3IK
LT4geW91IHdpbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IuIFRoZSByYXRpb25hbGUgZm9yIHRoaXMg
ZGVzaWduIGlzIHRoYXQgdGhlCi0+IGF1dG9tYXRlZCB0ZXN0aW5nIHNlcnZpY2UgZGV0ZXJtaW5l
cyB3aGV0aGVyIGEgdGVzdCBoYXMgcGFzc2VkIGJhc2VkIG9uIGl0cwotPiBleGl0IGNvZGUsIG5v
dCBvbiBpdHMgc3Rkb3V0L3N0ZGVyciBvdXRwdXQ7IHRodXMgeW91ciBgbWFpbigpYCBmdW5jdGlv
biBtdXN0Ci0+IHJldHVybiB0aGUgdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAuCi0+Ci0+IEFs
c28sIHlvdSBzaG91bGQgY2FsbCBgUlVOX0FMTF9URVNUUygpYCBvbmx5ICoqb25jZSoqLiBDYWxs
aW5nIGl0IG1vcmUgdGhhbgotPiBvbmNlIGNvbmZsaWN0cyB3aXRoIHNvbWUgYWR2YW5jZWQgZ29v
Z2xldGVzdCBmZWF0dXJlcyAoZS5nLiB0aHJlYWQtc2FmZSBbZGVhdGgKLT4gdGVzdHNdKGFkdmFu
Y2VkI2RlYXRoLXRlc3RzKSkgYW5kIHRodXMgaXMgbm90IHN1cHBvcnRlZC4KLQotKipBdmFpbGFi
aWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgV3JpdGluZyB0aGUgbWFpbigpIEZ1
bmN0aW9uCi0KLUluIGBnb29nbGUzYCwgdGhlIHNpbXBsZXN0IGFwcHJvYWNoIGlzIHRvIHVzZSB0
aGUgZGVmYXVsdCBtYWluKCkgZnVuY3Rpb24KLXByb3ZpZGVkIGJ5IGxpbmtpbmcgaW4gYCIvL3Rl
c3RpbmcvYmFzZS9wdWJsaWM6Z3Rlc3RfbWFpbiJgLiBJZiB0aGF0IGRvZXNuJ3QKLWNvdmVyIHdo
YXQgeW91IG5lZWQsIHlvdSBzaG91bGQgd3JpdGUgeW91ciBvd24gbWFpbigpIGZ1bmN0aW9uLCB3
aGljaCBzaG91bGQKLXJldHVybiB0aGUgdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAuIExpbmsg
dG8gYCIvL3Rlc3RpbmcvYmFzZS9wdWJsaWM6Z3VuaXQiYC4KLVlvdSBjYW4gc3RhcnQgZnJvbSB0
aGlzIGJvaWxlcnBsYXRlOgotCi1gYGBjKysKLSNpbmNsdWRlICJ0aGlzL3BhY2thZ2UvZm9vLmgi
Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNlIHsKLQotLy8gVGhlIGZpeHR1
cmUgZm9yIHRlc3RpbmcgY2xhc3MgRm9vLgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rp
bmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gWW91IGNhbiByZW1vdmUgYW55IG9yIGFsbCBv
ZiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpZiBpdHMgYm9keQotICAvLyBpcyBlbXB0eS4KLQot
ICBGb29UZXN0KCkgewotICAgICAvLyBZb3UgY2FuIGRvIHNldC11cCB3b3JrIGZvciBlYWNoIHRl
c3QgaGVyZS4KLSAgfQotCi0gIH5Gb29UZXN0KCkgb3ZlcnJpZGUgewotICAgICAvLyBZb3UgY2Fu
IGRvIGNsZWFuLXVwIHdvcmsgdGhhdCBkb2Vzbid0IHRocm93IGV4Y2VwdGlvbnMgaGVyZS4KLSAg
fQotCi0gIC8vIElmIHRoZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBhcmUgbm90IGVub3Vn
aCBmb3Igc2V0dGluZyB1cAotICAvLyBhbmQgY2xlYW5pbmcgdXAgZWFjaCB0ZXN0LCB5b3UgY2Fu
IGRlZmluZSB0aGUgZm9sbG93aW5nIG1ldGhvZHM6Ci0KLSAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKLSAgICAgLy8gQ29kZSBoZXJlIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRo
ZSBjb25zdHJ1Y3RvciAocmlnaHQKLSAgICAgLy8gYmVmb3JlIGVhY2ggdGVzdCkuCi0gIH0KLQot
ICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewotICAgICAvLyBDb2RlIGhlcmUgd2lsbCBiZSBj
YWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgZWFjaCB0ZXN0IChyaWdodAotICAgICAvLyBiZWZvcmUg
dGhlIGRlc3RydWN0b3IpLgotICB9Ci0KLSAgLy8gT2JqZWN0cyBkZWNsYXJlZCBoZXJlIGNhbiBi
ZSB1c2VkIGJ5IGFsbCB0ZXN0cyBpbiB0aGUgdGVzdCBjYXNlIGZvciBGb28uCi19OwotCi0vLyBU
ZXN0cyB0aGF0IHRoZSBGb286OkJhcigpIG1ldGhvZCBkb2VzIEFiYy4KLVRFU1RfRihGb29UZXN0
LCBNZXRob2RCYXJEb2VzQWJjKSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGlucHV0X2ZpbGVwYXRo
ID0gInRoaXMvcGFja2FnZS90ZXN0ZGF0YS9teWlucHV0ZmlsZS5kYXQiOwotICBjb25zdCBzdGQ6
OnN0cmluZyBvdXRwdXRfZmlsZXBhdGggPSAidGhpcy9wYWNrYWdlL3Rlc3RkYXRhL215b3V0cHV0
ZmlsZS5kYXQiOwotICBGb28gZjsKLSAgRVhQRUNUX0VRKGYuQmFyKGlucHV0X2ZpbGVwYXRoLCBv
dXRwdXRfZmlsZXBhdGgpLCAwKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBGb28gZG9lcyBYeXouCi1U
RVNUX0YoRm9vVGVzdCwgRG9lc1h5eikgewotICAvLyBFeGVyY2lzZXMgdGhlIFh5eiBmZWF0dXJl
IG9mIEZvby4KLX0KLQotfSAgLy8gbmFtZXNwYWNlCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFy
ICoqYXJndikgewotICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKLSAg
cmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KLWBgYAotCi0KLVRoZSBgOjp0ZXN0aW5nOjpJbml0
R29vZ2xlVGVzdCgpYCBmdW5jdGlvbiBwYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBmb3IKLWdvb2ds
ZXRlc3QgZmxhZ3MsIGFuZCByZW1vdmVzIGFsbCByZWNvZ25pemVkIGZsYWdzLiBUaGlzIGFsbG93
cyB0aGUgdXNlciB0bwotY29udHJvbCBhIHRlc3QgcHJvZ3JhbSdzIGJlaGF2aW9yIHZpYSB2YXJp
b3VzIGZsYWdzLCB3aGljaCB3ZSdsbCBjb3ZlciBpbgotW0FkdmFuY2VkR3VpZGVdKGFkdmFuY2Vk
Lm1kKS4gWW91ICoqbXVzdCoqIGNhbGwgdGhpcyBmdW5jdGlvbiBiZWZvcmUgY2FsbGluZwotYFJV
Tl9BTExfVEVTVFMoKWAsIG9yIHRoZSBmbGFncyB3b24ndCBiZSBwcm9wZXJseSBpbml0aWFsaXpl
ZC4KLQotT24gV2luZG93cywgYEluaXRHb29nbGVUZXN0KClgIGFsc28gd29ya3Mgd2l0aCB3aWRl
IHN0cmluZ3MsIHNvIGl0IGNhbiBiZSB1c2VkCi1pbiBwcm9ncmFtcyBjb21waWxlZCBpbiBgVU5J
Q09ERWAgbW9kZSBhcyB3ZWxsLgotCi1CdXQgbWF5YmUgeW91IHRoaW5rIHRoYXQgd3JpdGluZyBh
bGwgdGhvc2UgbWFpbigpIGZ1bmN0aW9ucyBpcyB0b28gbXVjaCB3b3JrPyBXZQotYWdyZWUgd2l0
aCB5b3UgY29tcGxldGVseSBhbmQgdGhhdCdzIHdoeSBHb29nbGUgVGVzdCBwcm92aWRlcyBhIGJh
c2ljCi1pbXBsZW1lbnRhdGlvbiBvZiBtYWluKCkuIElmIGl0IGZpdHMgeW91ciBuZWVkcywgdGhl
biBqdXN0IGxpbmsgeW91ciB0ZXN0IHdpdGgKLWd0ZXN0XF9tYWluIGxpYnJhcnkgYW5kIHlvdSBh
cmUgZ29vZCB0byBnby4KLQotTk9URTogYFBhcnNlR1VuaXRGbGFncygpYCBpcyBkZXByZWNhdGVk
IGluIGZhdm9yIG9mIGBJbml0R29vZ2xlVGVzdCgpYC4KLQotCi0jIyBLbm93biBMaW1pdGF0aW9u
cwotCi0qICAgR29vZ2xlIFRlc3QgaXMgZGVzaWduZWQgdG8gYmUgdGhyZWFkLXNhZmUuIFRoZSBp
bXBsZW1lbnRhdGlvbiBpcyB0aHJlYWQtc2FmZQotICAgIG9uIHN5c3RlbXMgd2hlcmUgdGhlIGBw
dGhyZWFkc2AgbGlicmFyeSBpcyBhdmFpbGFibGUuIEl0IGlzIGN1cnJlbnRseQotICAgIF91bnNh
ZmVfIHRvIHVzZSBHb29nbGUgVGVzdCBhc3NlcnRpb25zIGZyb20gdHdvIHRocmVhZHMgY29uY3Vy
cmVudGx5IG9uCi0gICAgb3RoZXIgc3lzdGVtcyAoZS5nLiBXaW5kb3dzKS4gSW4gbW9zdCB0ZXN0
cyB0aGlzIGlzIG5vdCBhbiBpc3N1ZSBhcyB1c3VhbGx5Ci0gICAgdGhlIGFzc2VydGlvbnMgYXJl
IGRvbmUgaW4gdGhlIG1haW4gdGhyZWFkLiBJZiB5b3Ugd2FudCB0byBoZWxwLCB5b3UgY2FuCi0g
ICAgdm9sdW50ZWVyIHRvIGltcGxlbWVudCB0aGUgbmVjZXNzYXJ5IHN5bmNocm9uaXphdGlvbiBw
cmltaXRpdmVzIGluCi0gICAgYGd0ZXN0LXBvcnQuaGAgZm9yIHlvdXIgcGxhdGZvcm0uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3NhbXBsZXMubWQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3NhbXBsZXMubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE4ZGNjYTM4MTQ5MWUxOTgyMzMyYzZkNDQ3MmNhODJkMGQwMjE3MDIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvZG9jcy9zYW1wbGVzLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotIyBH
b29nbGV0ZXN0IFNhbXBsZXMgeyNzYW1wbGVzfQotCi1JZiB5b3UncmUgbGlrZSB1cywgeW91J2Qg
bGlrZSB0byBsb29rIGF0IFtnb29nbGV0ZXN0Ci1zYW1wbGVzLl0oaHR0cHM6Ly9naXRodWIuY29t
L2dvb2dsZS9nb29nbGV0ZXN0L3RyZWUvbWFzdGVyL2dvb2dsZXRlc3Qvc2FtcGxlcykKLVRoZSBz
YW1wbGUgZGlyZWN0b3J5IGhhcyBhIG51bWJlciBvZiB3ZWxsLWNvbW1lbnRlZCBzYW1wbGVzIHNo
b3dpbmcgaG93IHRvIHVzZSBhCi12YXJpZXR5IG9mIGdvb2dsZXRlc3QgZmVhdHVyZXMuCi0KLSog
ICBTYW1wbGUgIzEgc2hvd3MgdGhlIGJhc2ljIHN0ZXBzIG9mIHVzaW5nIGdvb2dsZXRlc3QgdG8g
dGVzdCBDKysgZnVuY3Rpb25zLgotKiAgIFNhbXBsZSAjMiBzaG93cyBhIG1vcmUgY29tcGxleCB1
bml0IHRlc3QgZm9yIGEgY2xhc3Mgd2l0aCBtdWx0aXBsZSBtZW1iZXIKLSAgICBmdW5jdGlvbnMu
Ci0qICAgU2FtcGxlICMzIHVzZXMgYSB0ZXN0IGZpeHR1cmUuCi0qICAgU2FtcGxlICM0IHRlYWNo
ZXMgeW91IGhvdyB0byB1c2UgZ29vZ2xldGVzdCBhbmQgYGdvb2dsZXRlc3QuaGAgdG9nZXRoZXIg
dG8KLSAgICBnZXQgdGhlIGJlc3Qgb2YgYm90aCBsaWJyYXJpZXMuCi0qICAgU2FtcGxlICM1IHB1
dHMgc2hhcmVkIHRlc3RpbmcgbG9naWMgaW4gYSBiYXNlIHRlc3QgZml4dHVyZSwgYW5kIHJldXNl
cyBpdCBpbgotICAgIGRlcml2ZWQgZml4dHVyZXMuCi0qICAgU2FtcGxlICM2IGRlbW9uc3RyYXRl
cyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0qICAgU2FtcGxlICM3IHRlYWNoZXMgdGhlIGJh
c2ljcyBvZiB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotKiAgIFNhbXBsZSAjOCBzaG93cyB1
c2luZyBgQ29tYmluZSgpYCBpbiB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotKiAgIFNhbXBs
ZSAjOSBzaG93cyB1c2Ugb2YgdGhlIGxpc3RlbmVyIEFQSSB0byBtb2RpZnkgR29vZ2xlIFRlc3Qn
cyBjb25zb2xlCi0gICAgb3V0cHV0IGFuZCB0aGUgdXNlIG9mIGl0cyByZWZsZWN0aW9uIEFQSSB0
byBpbnNwZWN0IHRlc3QgcmVzdWx0cy4KLSogICBTYW1wbGUgIzEwIHNob3dzIHVzZSBvZiB0aGUg
bGlzdGVuZXIgQVBJIHRvIGltcGxlbWVudCBhIHByaW1pdGl2ZSBtZW1vcnkKLSAgICBsZWFrIGNo
ZWNrZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2d0ZXN0LWRlYXRoLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvZ3Rlc3QtZGVhdGgtdGVzdC5oCmluZGV4IDIwYzU0ZDg2OTUxOWY2OTMwZTdlYmZkMmMwODA1
YmFjYTQyMjE2YmEuLmFkZmIxOTIxMTFmMjg2MGZlMzcwMTIzMjlkYzRhOTUzNzkyNGIxYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVh
dGgtdGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rl
c3QtZGVhdGgtdGVzdC5oCkBAIC0zNSw4ICszNSw4IEBACiAvLyBkaXJlY3RseS4KIC8vIEdPT0dM
RVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX0RFQVRIX1RFU1RfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9E
RUFUSF9URVNUX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFU
SF9URVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFUSF9U
RVNUX0hfCiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0LWludGVy
bmFsLmgiCiAKQEAgLTE2MSw3ICsxNjEsNiBAQCBHVEVTVF9BUElfIGJvb2wgSW5EZWF0aFRlc3RD
aGlsZCgpOwogLy8gICBpcyByYXJlbHkgYSBwcm9ibGVtIGFzIHBlb3BsZSB1c3VhbGx5IGRvbid0
IHB1dCB0aGUgdGVzdCBiaW5hcnkKIC8vICAgZGlyZWN0b3J5IGluIFBBVEguCiAvLwotLy8gRklY
TUU6IG1ha2UgdGhyZWFkLXNhZmUgZGVhdGggdGVzdHMgc2VhcmNoIHRoZSBQQVRILgogCiAvLyBB
c3NlcnRzIHRoYXQgYSBnaXZlbiBzdGF0ZW1lbnQgY2F1c2VzIHRoZSBwcm9ncmFtIHRvIGV4aXQs
IHdpdGggYW4KIC8vIGludGVnZXIgZXhpdCBzdGF0dXMgdGhhdCBzYXRpc2ZpZXMgcHJlZGljYXRl
LCBhbmQgZW1pdHRpbmcgZXJyb3Igb3V0cHV0CkBAIC0xNzAsNyArMTY5LDcgQEAgR1RFU1RfQVBJ
XyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKICAgICBHVEVTVF9ERUFUSF9URVNUXyhzdGF0ZW1l
bnQsIHByZWRpY2F0ZSwgcmVnZXgsIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKQogCiAvLyBMaWtlIEFT
U0VSVF9FWElULCBidXQgY29udGludWVzIG9uIHRvIHN1Y2Nlc3NpdmUgdGVzdHMgaW4gdGhlCi0v
LyB0ZXN0IGNhc2UsIGlmIGFueToKKy8vIHRlc3Qgc3VpdGUsIGlmIGFueToKICMgZGVmaW5lIEVY
UEVDVF9FWElUKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleCkgXAogICAgIEdURVNUX0RFQVRI
X1RFU1RfKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleCwgR1RFU1RfTk9ORkFUQUxfRkFJTFVS
RV8pCiAKQEAgLTE4MSw3ICsxODAsNyBAQCBHVEVTVF9BUElfIGJvb2wgSW5EZWF0aFRlc3RDaGls
ZCgpOwogICAgIEFTU0VSVF9FWElUKHN0YXRlbWVudCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RXhp
dGVkVW5zdWNjZXNzZnVsbHksIHJlZ2V4KQogCiAvLyBMaWtlIEFTU0VSVF9ERUFUSCwgYnV0IGNv
bnRpbnVlcyBvbiB0byBzdWNjZXNzaXZlIHRlc3RzIGluIHRoZQotLy8gdGVzdCBjYXNlLCBpZiBh
bnk6CisvLyB0ZXN0IHN1aXRlLCBpZiBhbnk6CiAjIGRlZmluZSBFWFBFQ1RfREVBVEgoc3RhdGVt
ZW50LCByZWdleCkgXAogICAgIEVYUEVDVF9FWElUKHN0YXRlbWVudCwgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RXhpdGVkVW5zdWNjZXNzZnVsbHksIHJlZ2V4KQogCkBAIC0xOTEsMTEgKzE5MCwxMCBA
QCBHVEVTVF9BUElfIGJvb2wgSW5EZWF0aFRlc3RDaGlsZCgpOwogY2xhc3MgR1RFU1RfQVBJXyBF
eGl0ZWRXaXRoQ29kZSB7CiAgcHVibGljOgogICBleHBsaWNpdCBFeGl0ZWRXaXRoQ29kZShpbnQg
ZXhpdF9jb2RlKTsKKyAgRXhpdGVkV2l0aENvZGUoY29uc3QgRXhpdGVkV2l0aENvZGUmKSA9IGRl
ZmF1bHQ7CisgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEV4aXRlZFdpdGhDb2RlJiBvdGhlcikgPSBk
ZWxldGU7CiAgIGJvb2wgb3BlcmF0b3IoKShpbnQgZXhpdF9zdGF0dXMpIGNvbnN0OwogIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgRXhpdGVkV2l0aENvZGUmIG90aGVyKTsKLQogICBjb25z
dCBpbnQgZXhpdF9jb2RlXzsKIH07CiAKQEAgLTIyOCw3ICsyMjYsNyBAQCBjbGFzcyBHVEVTVF9B
UElfIEtpbGxlZEJ5U2lnbmFsIHsKIC8vICAgcmV0dXJuIDEyOwogLy8gfQogLy8KLS8vIFRFU1Qo
VGVzdENhc2UsIFRlc3REaWVPcjEyV29ya3NJbkRnYkFuZE9wdCkgeworLy8gVEVTVChUZXN0U3Vp
dGUsIFRlc3REaWVPcjEyV29ya3NJbkRnYkFuZE9wdCkgewogLy8gICBpbnQgc2lkZWVmZmVjdCA9
IDA7CiAvLyAgIC8vIE9ubHkgYXNzZXJ0cyBpbiBkYmcuCiAvLyAgIEVYUEVDVF9ERUJVR19ERUFU
SChEaWVJbkRlYnVnT3IxMigmc2lkZWVmZmVjdCksICJkZWF0aCIpOwpAQCAtMjc3LDIwICsyNzUs
MjAgQEAgY2xhc3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNpZ25hbCB7CiAvLyBUaGlzIG1hY3JvIGlz
IHVzZWQgZm9yIGltcGxlbWVudGluZyBtYWNyb3Mgc3VjaCBhcwogLy8gRVhQRUNUX0RFQVRIX0lG
X1NVUFBPUlRFRCBhbmQgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRCBvbiBzeXN0ZW1zIHdoZXJl
CiAvLyBkZWF0aCB0ZXN0cyBhcmUgbm90IHN1cHBvcnRlZC4gVGhvc2UgbWFjcm9zIG11c3QgY29t
cGlsZSBvbiBzdWNoIHN5c3RlbXMKLS8vIGlmZiBFWFBFQ1RfREVBVEggYW5kIEFTU0VSVF9ERUFU
SCBjb21waWxlIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyBvbgotLy8gc3lzdGVtcyB0aGF0IHN1
cHBvcnQgZGVhdGggdGVzdHMuIFRoaXMgYWxsb3dzIG9uZSB0byB3cml0ZSBzdWNoIGEgbWFjcm8K
LS8vIG9uIGEgc3lzdGVtIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBhbmQgYmUg
c3VyZSB0aGF0IGl0IHdpbGwKLS8vIGNvbXBpbGUgb24gYSBkZWF0aC10ZXN0IHN1cHBvcnRpbmcg
c3lzdGVtLiBJdCBpcyBleHBvc2VkIHB1YmxpY2x5IHNvIHRoYXQKLS8vIHN5c3RlbXMgdGhhdCBo
YXZlIGRlYXRoLXRlc3RzIHdpdGggc3RyaWN0ZXIgcmVxdWlyZW1lbnRzIHRoYW4KLS8vIEdURVNU
X0hBU19ERUFUSF9URVNUIGNhbiB3cml0ZSB0aGVpciBvd24gZXF1aXZhbGVudCBvZgotLy8gRVhQ
RUNUX0RFQVRIX0lGX1NVUFBPUlRFRCBhbmQgQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRC4KKy8v
IGlmIGFuZCBvbmx5IGlmIEVYUEVDVF9ERUFUSCBhbmQgQVNTRVJUX0RFQVRIIGNvbXBpbGUgd2l0
aCB0aGUgc2FtZSBwYXJhbWV0ZXJzCisvLyBvbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBkZWF0aCB0
ZXN0cy4gVGhpcyBhbGxvd3Mgb25lIHRvIHdyaXRlIHN1Y2ggYSBtYWNybyBvbgorLy8gYSBzeXN0
ZW0gdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3RzIGFuZCBiZSBzdXJlIHRoYXQgaXQg
d2lsbCBjb21waWxlCisvLyBvbiBhIGRlYXRoLXRlc3Qgc3VwcG9ydGluZyBzeXN0ZW0uIEl0IGlz
IGV4cG9zZWQgcHVibGljbHkgc28gdGhhdCBzeXN0ZW1zCisvLyB0aGF0IGhhdmUgZGVhdGgtdGVz
dHMgd2l0aCBzdHJpY3RlciByZXF1aXJlbWVudHMgdGhhbiBHVEVTVF9IQVNfREVBVEhfVEVTVAor
Ly8gY2FuIHdyaXRlIHRoZWlyIG93biBlcXVpdmFsZW50IG9mIEVYUEVDVF9ERUFUSF9JRl9TVVBQ
T1JURUQgYW5kCisvLyBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVELgogLy8KIC8vIFBhcmFtZXRl
cnM6CiAvLyAgIHN0YXRlbWVudCAtICBBIHN0YXRlbWVudCB0aGF0IGEgbWFjcm8gc3VjaCBhcyBF
WFBFQ1RfREVBVEggd291bGQgdGVzdAogLy8gICAgICAgICAgICAgICAgZm9yIHByb2dyYW0gdGVy
bWluYXRpb24uIFRoaXMgbWFjcm8gaGFzIHRvIG1ha2Ugc3VyZSB0aGlzCiAvLyAgICAgICAgICAg
ICAgICBzdGF0ZW1lbnQgaXMgY29tcGlsZWQgYnV0IG5vdCBleGVjdXRlZCwgdG8gZW5zdXJlIHRo
YXQKIC8vICAgICAgICAgICAgICAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQgY29tcGlsZXMg
d2l0aCBhIGNlcnRhaW4KLS8vICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpZmYgRVhQRUNUX0RF
QVRIIGNvbXBpbGVzIHdpdGggaXQuCisvLyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWYgYW5k
IG9ubHkgaWYgRVhQRUNUX0RFQVRIIGNvbXBpbGVzIHdpdGggaXQuCiAvLyAgIHJlZ2V4ICAgICAt
ICBBIHJlZ2V4IHRoYXQgYSBtYWNybyBzdWNoIGFzIEVYUEVDVF9ERUFUSCB3b3VsZCB1c2UgdG8g
dGVzdAogLy8gICAgICAgICAgICAgICAgdGhlIG91dHB1dCBvZiBzdGF0ZW1lbnQuICBUaGlzIHBh
cmFtZXRlciBoYXMgdG8gYmUKIC8vICAgICAgICAgICAgICAgIGNvbXBpbGVkIGJ1dCBub3QgZXZh
bHVhdGVkIGJ5IHRoaXMgbWFjcm8sIHRvIGVuc3VyZSB0aGF0CkBAIC0zNDEsNCArMzM5LDQgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNpZ25hbCB7CiAKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0
aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFUSF9URVNUX0hf
CisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFUSF9URVNUX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0
LW1lc3NhZ2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
bWVzc2FnZS5oCmluZGV4IDVjYTA0MTYxNGNiMzU1OTIyZjM1NWI4OTNmOWM4NGEzYjdmNTJjNmYu
LmJlY2ZkNDlmY2JhOWM1YWI5ODZlNGI0Mzk2YmM4MTQzYTNjNTg3YTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCkBA
IC00NCwxMCArNDQsMTIgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQog
Ci0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfTUVTU0FHRV9IXwotI2RlZmluZSBH
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX01FU1NBR0VfSF8KIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxt
ZW1vcnk+CisjaW5jbHVkZSA8c3N0cmVhbT4KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCIKIApAQCAtMTA2LDE0ICsxMDgsNiBAQCBjbGFzcyBHVEVTVF9BUElfIE1lc3Nh
Z2UgewogICAgICpzc18gPDwgc3RyOwogICB9CiAKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8v
IFN0cmVhbXMgYSB2YWx1ZSAoZWl0aGVyIGEgcG9pbnRlciBvciBub3QpIHRvIHRoaXMgb2JqZWN0
LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIE1lc3NhZ2UmIG9wZXJhdG9yIDw8
KGNvbnN0IFQmIHZhbHVlKSB7Ci0gICAgU3RyZWFtSGVscGVyKHR5cGVuYW1lIGludGVybmFsOjpp
c19wb2ludGVyPFQ+Ojp0eXBlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLSNl
bHNlCiAgIC8vIFN0cmVhbXMgYSBub24tcG9pbnRlciB2YWx1ZSB0byB0aGlzIG9iamVjdC4KICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIGlubGluZSBNZXNzYWdlJiBvcGVyYXRvciA8PChjb25z
dCBUJiB2YWwpIHsKQEAgLTE1MSwxNCArMTQ1LDEzIEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2Fn
ZSB7CiAgIC8vIGFzICIobnVsbCkiLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgaW5saW5l
IE1lc3NhZ2UmIG9wZXJhdG9yIDw8KFQqIGNvbnN0JiBwb2ludGVyKSB7ICAvLyBOT0xJTlQKLSAg
ICBpZiAocG9pbnRlciA9PSBOVUxMKSB7CisgICAgaWYgKHBvaW50ZXIgPT0gbnVsbHB0cikgewog
ICAgICAgKnNzXyA8PCAiKG51bGwpIjsKICAgICB9IGVsc2UgewogICAgICAgKnNzXyA8PCBwb2lu
dGVyOwogICAgIH0KICAgICByZXR1cm4gKnRoaXM7CiAgIH0KLSNlbmRpZiAgLy8gR1RFU1RfT1Nf
U1lNQklBTgogCiAgIC8vIFNpbmNlIHRoZSBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgYXJlIG92ZXJs
b2FkZWQgZm9yIGJvdGggbmFycm93CiAgIC8vIGFuZCB3aWRlIHN0cmVhbXMsIHdlIGhhdmUgdG8g
cHJvdmlkZSB0aGlzIHNwZWNpYWxpemVkIGRlZmluaXRpb24KQEAgLTE4NywxMiArMTgwLDYgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBNZXNzYWdlIHsKICAgTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3Qg
OjpzdGQ6OndzdHJpbmcmIHdzdHIpOwogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcK
IAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotICAvLyBDb252ZXJ0cyB0aGUgZ2l2ZW4g
d2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYtOAotICAvLyBlbmNv
ZGluZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotICBN
ZXNzYWdlJiBvcGVyYXRvciA8PChjb25zdCA6OndzdHJpbmcmIHdzdHIpOwotI2VuZGlmICAvLyBH
VEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQogICAvLyBHZXRzIHRoZSB0ZXh0IHN0cmVhbWVkIHRv
IHRoaXMgb2JqZWN0IHNvIGZhciBhcyBhbiBzdGQ6OnN0cmluZy4KICAgLy8gRWFjaCAnXDAnIGNo
YXJhY3RlciBpbiB0aGUgYnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIuCiAgIC8vCkBAIC0y
MDAsMzEgKzE4Nyw4IEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAgIHN0ZDo6c3RyaW5n
IEdldFN0cmluZygpIGNvbnN0OwogCiAgcHJpdmF0ZToKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0g
IC8vIFRoZXNlIGFyZSBuZWVkZWQgYXMgdGhlIE5va2lhIFN5bWJpYW4gQ29tcGlsZXIgY2Fubm90
IGRlY2lkZSBiZXR3ZWVuCi0gIC8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9u
IHRlbXBsYXRlLiBUaGUgTm9raWEgY29tcGlsZXIgX2Nhbl8KLSAgLy8gZGVjaWRlIGJldHdlZW4g
Y2xhc3MgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zIGZvciBUIGFuZCBUKiwgc28gYQotICAvLyB0
cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNfcG9pbnRlciB3b3JrcywgYW5kIHdlIGNhbiBvdmVybG9h
ZCBvbiB0aGF0LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIHZvaWQgU3RyZWFt
SGVscGVyKGludGVybmFsOjp0cnVlX3R5cGUgLyppc19wb2ludGVyKi8sIFQqIHBvaW50ZXIpIHsK
LSAgICBpZiAocG9pbnRlciA9PSBOVUxMKSB7Ci0gICAgICAqc3NfIDw8ICIobnVsbCkiOwotICAg
IH0gZWxzZSB7Ci0gICAgICAqc3NfIDw8IHBvaW50ZXI7Ci0gICAgfQotICB9Ci0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBpbmxpbmUgdm9pZCBTdHJlYW1IZWxwZXIoaW50ZXJuYWw6OmZhbHNl
X3R5cGUgLyppc19wb2ludGVyKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
JiB2YWx1ZSkgewotICAgIC8vIFNlZSB0aGUgY29tbWVudHMgaW4gTWVzc2FnZSYgb3BlcmF0b3Ig
PDwoY29uc3QgVCYpIGFib3ZlIGZvciB3aHkKLSAgICAvLyB3ZSBuZWVkIHRoaXMgdXNpbmcgc3Rh
dGVtZW50LgotICAgIHVzaW5nIDo6b3BlcmF0b3IgPDw7Ci0gICAgKnNzXyA8PCB2YWx1ZTsKLSAg
fQotI2VuZGlmICAvLyBHVEVTVF9PU19TWU1CSUFOCi0KICAgLy8gV2UnbGwgaG9sZCB0aGUgdGV4
dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBoZXJlLgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVk
X3B0cjwgOjpzdGQ6OnN0cmluZ3N0cmVhbT4gc3NfOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8
IDo6c3RkOjpzdHJpbmdzdHJlYW0+IHNzXzsKIAogICAvLyBXZSBkZWNsYXJlIChidXQgZG9uJ3Qg
aW1wbGVtZW50KSB0aGlzIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyCiAgIC8vIGZyb20gaW1wbGVt
ZW50aW5nIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yLgpAQCAtMjUyLDQgKzIxNiw0IEBAIHN0ZDo6
c3RyaW5nIFN0cmVhbWFibGVUb1N0cmluZyhjb25zdCBUJiBzdHJlYW1hYmxlKSB7CiAKIEdURVNU
X0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2VuZGlmICAvLyBHVEVT
VF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKaW5kZXggM2U5NWU0
MzkwZTAwZTExNjMxMGE0MjM4M2QyZTMwYjU4ZWRhNWYwZC4uODA0ZTcwMjgxN2IwM2I5MGEzZTc3
ZmQ4YmRjOGEwMzdlNzJmNWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKQEAgLTEsNyArMSwzIEBACi0v
LyBUaGlzIGZpbGUgd2FzIEdFTkVSQVRFRCBieSBjb21tYW5kOgotLy8gICAgIHB1bXAucHkgZ3Rl
c3QtcGFyYW0tdGVzdC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29w
eXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KQEAg
LTM0LDEyICszMCw5IEBACiAvLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5n
IHBhcmFtZXRlcml6ZWQgdGVzdHMKIC8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2lu
ZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQogLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQg
YnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KIC8vIEdPT0dMRVRFU1RfQ00w
MDAxIERPIE5PVCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJB
TV9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9I
XwotCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hf
CisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCiAK
IC8vIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2Rl
IHdpdGggZGlmZmVyZW50CiAvLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBj
b3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KQEAgLTc1LDcgKzY4LDcgQEAgVEVTVF9QKEZvb1Rlc3Qs
IEhhc0JsYWhCbGFoKSB7CiAgIC4uLgogfQogCi0vLyBGaW5hbGx5LCB5b3UgY2FuIHVzZSBJTlNU
QU5USUFURV9URVNUX0NBU0VfUCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdAorLy8gRmluYWxseSwg
eW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHRvIGluc3RhbnRpYXRlIHRoZSB0
ZXN0CiAvLyBjYXNlIHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50LiBHb29nbGUg
VGVzdCBkZWZpbmVzIGEgbnVtYmVyCiAvLyBvZiBmdW5jdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGVz
dCBwYXJhbWV0ZXJzLiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKIC8vIChzdXJwcmlzZSEpIHBh
cmFtZXRlciBnZW5lcmF0b3JzLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGljaApAQCAt
OTYsMTcgKzg5LDE3IEBAIFRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewogLy8gRm9yIG1v
cmUgZGV0YWlscywgc2VlIGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5j
dGlvbnMgYmVsb3cKIC8vIGluIHRoaXMgZmlsZS4KIC8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRl
bWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCisv
LyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhl
IEZvb1Rlc3QgdGVzdCBzdWl0ZQogLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgIm1lZW55
IiwgIm1pbnkiLCBhbmQgIm1vZSIuCiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRp
YXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7CitJTlNUQU5USUFU
RV9URVNUX1NVSVRFX1AoSW5zdGFudGlhdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgRm9vVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoIm1lZW55IiwgIm1p
bnkiLCAibW9lIikpOwogCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9m
IHRoZSBwYXR0ZXJuLCAoeWVzLCB5b3UKLS8vIGNhbiBpbnN0YW50aWF0ZSBpdCBtb3JlIHRoZW4g
b25jZSkgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AgbWFjcm8gaXMgYSBwcmVmaXggdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZQotLy8gYWN0dWFs
IHRlc3QgY2FzZSBuYW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlm
ZmVyZW50CisvLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFuIG9uY2UpIHRoZSBmaXJzdCBh
cmd1bWVudCB0byB0aGUKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpcyBhIHBy
ZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCisvLyBhY3R1YWwgdGVzdCBzdWl0ZSBuYW1l
LiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50CiAvLyBpbnN0
YW50aWF0aW9ucy4gVGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBo
YXZlCiAvLyB0aGVzZSBuYW1lczoKIC8vCkBAIC0xMjMsNyArMTE2LDcgQEAgSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbk5hbWUsCiAvLyB3aXRoIHBhcmFtZXRlciB2YWx1ZXMg
ImNhdCIgYW5kICJkb2ciOgogCiBjb25zdCBjaGFyKiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsK
LUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVz
dCwgVmFsdWVzSW4ocGV0cykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEFub3RoZXJJbnN0
YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogCiAvLyBUaGUgdGVzdHMg
ZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUgdGhlc2UgbmFtZXM6CiAvLwpA
QCAtMTMyLDkgKzEyNSw5IEBAIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50
aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogLy8gICAgKiBBbm90aGVySW5z
dGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wIGZvciAiY2F0IgogLy8gICAgKiBB
bm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xIGZvciAiZG9nIgog
Ly8KLS8vIFBsZWFzZSBub3RlIHRoYXQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agd2lsbCBpbnN0
YW50aWF0ZSBhbGwgdGVzdHMKLS8vIGluIHRoZSBnaXZlbiB0ZXN0IGNhc2UsIHdoZXRoZXIgdGhl
aXIgZGVmaW5pdGlvbnMgY29tZSBiZWZvcmUgb3IKLS8vIEFGVEVSIHRoZSBJTlNUQU5USUFURV9U
RVNUX0NBU0VfUCBzdGF0ZW1lbnQuCisvLyBQbGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRFX1RF
U1RfU1VJVEVfUCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cworLy8gaW4gdGhlIGdpdmVuIHRl
c3Qgc3VpdGUsIHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMgY29tZSBiZWZvcmUgb3IKKy8vIEFG
VEVSIHRoZSBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agc3RhdGVtZW50LgogLy8KIC8vIFBsZWFz
ZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0
ZXJzIHRvIHRoZQogLy8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVz
dCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCkBAIC0xNzgsMjYgKzE3MSwyMyBAQCBURVNU
X1AoRGVyaXZlZFRlc3QsIERvZXNCbGFoKSB7CiAKICNlbmRpZiAgLy8gMAogCi0jaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSMg
aW5jbHVkZSA8dXRpbGl0eT4KLSNlbmRpZgorI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUg
PHV0aWxpdHk+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgog
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCIKLSNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIgorI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewogCiAvLyBG
dW5jdGlvbnMgcHJvZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgogLy8KIC8vIEdvb2dsZSBU
ZXN0IHVzZXMgdGhlc2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVl
LQotLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNl
IGlzIGluc3RhbnRpYXRlZAorLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRl
cml6ZWQgdGVzdCBzdWl0ZSBpcyBpbnN0YW50aWF0ZWQKIC8vIHdpdGggYSBwYXJ0aWN1bGFyIGdl
bmVyYXRvciwgR29vZ2xlIFRlc3QgY3JlYXRlcyBhbmQgcnVucyB0ZXN0cwogLy8gZm9yIGVhY2gg
ZWxlbWVudCBpbiB0aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvci4KIC8vCi0v
LyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBh
cmUgaW5zdGFudGlhdGVkCisvLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0
ZXN0IHN1aXRlIEZvb1Rlc3QgYXJlIGluc3RhbnRpYXRlZAogLy8gZWFjaCB0aHJlZSB0aW1lcyB3
aXRoIHBhcmFtZXRlciB2YWx1ZXMgMywgNSwgYW5kIDg6CiAvLwogLy8gY2xhc3MgRm9vVGVzdCA6
IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4geyAuLi4gfTsKQEAgLTIwNiw3ICsxOTYsNyBAQCBu
YW1lc3BhY2UgdGVzdGluZyB7CiAvLyB9CiAvLyBURVNUX1AoRm9vVGVzdCwgVGVzdFRoYXQpIHsK
IC8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9vVGVzdCwg
VmFsdWVzKDMsIDUsIDgpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChUZXN0U2VxdWVu
Y2UsIEZvb1Rlc3QsIFZhbHVlcygzLCA1LCA4KSk7CiAvLwogCiAvLyBSYW5nZSgpIHJldHVybnMg
Z2VuZXJhdG9ycyBwcm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgpAQCAt
MjYzLDEzICsyNTMsMTMgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFJhbmdlKFQgc3Rh
cnQsIFQgZW5kKSB7CiAvLwogLy8gRXhhbXBsZXM6CiAvLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMg
dGVzdHMgZnJvbSB0ZXN0IGNhc2UgU3RyaW5nVGVzdAorLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVz
dHMgZnJvbSB0ZXN0IHN1aXRlIFN0cmluZ1Rlc3QKIC8vIGVhY2ggd2l0aCBDLXN0cmluZyB2YWx1
ZXMgb2YgImZvbyIsICJiYXIiLCBhbmQgImJheiI6CiAvLwogLy8gY29uc3QgY2hhciogc3RyaW5n
c1tdID0geyJmb28iLCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
U3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3MpKTsKKy8vIElOU1RB
TlRJQVRFX1RFU1RfU1VJVEVfUChTdHJpbmdTZXF1ZW5jZSwgU3RyaW5nVGVzdCwgVmFsdWVzSW4o
c3RyaW5ncykpOwogLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNl
IFN0bFN0cmluZ1Rlc3QKKy8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBzdWl0
ZSBTdGxTdHJpbmdUZXN0CiAvLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2YWx1ZXMgImEi
IGFuZCAiYiI6CiAvLwogLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gR2V0UGFyYW1l
dGVyU3RyaW5ncygpIHsKQEAgLTI3OSw5ICsyNjksOSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0
b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIHY7CiAvLyB9CiAvLwot
Ly8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKENoYXJTZXF1ZW5jZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBTdGxTdHJpbmdU
ZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0
cmluZ3MoKSkpOwogLy8KIC8vCiAvLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBm
cm9tIENoYXJUZXN0CkBAIC0yOTQsMTYgKzI4NCwxNSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0
b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIGxpc3Q7CiAvLyB9CiAv
LyA6OnN0ZDo6bGlzdDxjaGFyPiBsID0gR2V0UGFyYW1ldGVyQ2hhcnMoKTsKLS8vIElOU1RBTlRJ
QVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAgICAgICAgICAgICAgICAgICAgICAg
ICBDaGFyVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKGwuYmVnaW4o
KSwgbC5lbmQoKSkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENoYXJTZXF1ZW5jZTIs
CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCisvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzSW4obC5iZWdpbigpLCBsLmVuZCgpKSk7CiAvLwogdGVtcGxhdGUg
PHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvcj4KIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjwKLSAg
dHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJh
dG9yPjo6dmFsdWVfdHlwZT4KKyAgICB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxGb3J3
YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgogVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2lu
LCBGb3J3YXJkSXRlcmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90
eXBlIFBhcmFtVHlwZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxG
b3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKICAgcmV0dXJuIGludGVybmFs
OjpQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KAogICAgICAgbmV3IGludGVybmFsOjpWYWx1ZXNJ
bkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I8UGFyYW1UeXBlPihiZWdpbiwgZW5kKSk7CiB9CkBAIC0z
MjYsODY5ICszMTUsMjIgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRh
aW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCiAvLyBWYWx1ZXMoVCB2MSwgVCB2MiwgLi4uLCBU
IHZOKQogLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRo
IGVsZW1lbnRzIHYxLCB2MiwgLi4uLCB2Ti4KIC8vCi0vLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0
YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVzdCBlYWNoCisvLyBGb3IgZXhhbXBs
ZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEJhclRlc3QgZWFjaAog
Ly8gd2l0aCB2YWx1ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKIC8vCi0vLyBJTlNUQU5U
SUFURV9URVNUX0NBU0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVzKCJvbmUiLCAidHdv
IiwgInRocmVlIikpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE51bVNlcXVlbmNlLAor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgIEJhclRlc3QsCisvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmFsdWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikpOwogLy8KLS8vIFRoaXMgaW5z
dGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAx
LCAyLCAzLjUuCisvLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3Qgc3VpdGUgQmF6
VGVzdCBlYWNoIHdpdGggdmFsdWVzIDEsIDIsIDMuNS4KIC8vIFRoZSBleGFjdCB0eXBlIG9mIHZh
bHVlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIgaW4gQmF6VGVzdC4KIC8v
Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZh
bHVlcygxLCAyLCAzLjUpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGbG9hdGluZ051
bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKIC8vCi0vLyBDdXJyZW50bHksIFZh
bHVlcygpIHN1cHBvcnRzIGZyb20gMSB0byA1MCBwYXJhbWV0ZXJzLgogLy8KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MTxUMT4gVmFsdWVzKFQxIHYxKSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTE8VDE+KHYxKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwgVDI+IFZh
bHVlcyhUMSB2MSwgVDIgdjIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwg
VDI+KHYxLCB2Mik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBUMiwgVDM+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM8VDEsIFQy
LCBUMz4odjEsIHYyLCB2Myk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWludGVybmFsOjpWYWx1ZUFycmF5NDxUMSwg
VDIsIFQzLCBUND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTQ8VDEsIFQyLCBUMywgVDQ+KHYxLCB2MiwgdjMsIHY0KTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLWludGVybmFsOjpWYWx1ZUFycmF5NTxUMSwgVDIsIFQz
LCBUNCwgVDU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSkg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1PFQxLCBUMiwgVDMsIFQ0LCBUNT4odjEs
IHYyLCB2MywgdjQsIHY1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
Nj4KLWludGVybmFsOjpWYWx1ZUFycmF5NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiBWYWx1ZXMo
VDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4odjEsIHYyLCB2
MywgdjQsIHY1LCB2Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3Pih2MSwgdjIsIHYzLCB2NCwgdjUsCi0gICAgICB2NiwgdjcpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5ODxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2
NywgdjgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk5PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0g
ICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjkpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5Pih2MSwgdjIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLWludGVybmFsOjpWYWx1ZUFycmF5MTA8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBWYWx1ZXMoVDEgdjEsCi0g
ICAgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5
LCBUMTAgdjEwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEwPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4odjEsCi0gICAgICB2MiwgdjMsIHY0LCB2NSwg
djYsIHY3LCB2OCwgdjksIHYxMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTExPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwKLSAgICBUMTE+IFZhbHVlcyhUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAg
IFQxMCB2MTAsIFQxMSB2MTEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTE8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLAotICAgICAgVDExPih2MSwgdjIs
IHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5MTI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsCi0gICAgVDEyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEyPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyPih2MSwgdjIsIHYzLCB2
NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTM+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgVDEzPiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYx
MCwgdjExLCB2MTIsIHYxMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQpIHsKLSAgcmV0dXJuIGlu
dGVybmFsOjpWYWx1ZUFycmF5MTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2
NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTU+Ci1pbnRlcm5hbDo6VmFs
dWVBcnJheTE1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICBUMTQsIFQxNT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXkxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNT4odjEsIHYyLCB2MywgdjQsIHY1LCB2Niwg
djcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUpOwotfQotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNj4gVmFs
dWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LAotICAg
IFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJh
eTE2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAg
VDEyLCBUMTMsIFQxNCwgVDE1LCBUMTY+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCwgdjExLAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE3PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNykgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTc+KHYx
LCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTg+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LAotICAgIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQx
MyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCkg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYxMCwg
djExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4gVmFsdWVzKFQxIHYx
LCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwKLSAgICBU
MTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5KSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+
KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEy
LCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTkpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTIwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjA+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
Ci0gICAgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYx
OSwgVDIwIHYyMCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMDxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3
LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywg
djE4LCB2MTksIHYyMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAgIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYx
MywKLSAgICBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIx
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEy
LCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPih2MSwgdjIsIHYz
LCB2NCwgdjUsIHY2LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQs
IHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjI8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAg
ICBUMjEgdjIxLCBUMjIgdjIyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIyPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+KHYxLCB2Miwg
djMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYx
NCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIyKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjM+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMg
djIzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4odjEsIHYyLCB2MywKLSAgICAg
IHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYx
NiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMyk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwK
LSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEs
IFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5MjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAg
ICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQ+KHYxLCB2MiwKLSAgICAgIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAs
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LAotICAgICAgdjE5LCB2MjAs
IHYyMSwgdjIyLCB2MjMsIHYyNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNT4K
LWludGVybmFsOjpWYWx1ZUFycmF5MjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IFZhbHVlcyhUMSB2MSwKLSAgICBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAs
IFQxMSB2MTEsCi0gICAgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwKLSAgICBUMjAgdjIwLCBUMjEgdjIxLCBUMjIg
djIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjU+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywKLSAgICAgIHYxOCwg
djE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjY8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgVDI2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQx
OCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXkyNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LAotICAgICAgVDI2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LAotICAgICAgdjE2LCB2MTcsIHYxOCwg
djE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjc+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgVDI3PiBWYWx1ZXMoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEs
IFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYy
NykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjc+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIs
IHYxMywgdjE0LAotICAgICAgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs
IHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICBUMjg+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5
LAotICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2
MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIx
IHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBU
MjcgdjI3LCBUMjggdjI4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMs
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsCi0gICAgICBUMjYsIFQyNywgVDI4Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwg
djE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywKLSAgICAgIHYyOCk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOT4gVmFsdWVzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2Mjcs
IFQyOCB2MjgsIFQyOSB2MjkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mjk8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOT4odjEsIHYyLCB2MywgdjQsIHY1LCB2Niwg
djcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3
LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LAotICAgICAgdjI3
LCB2MjgsIHYyOSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVu
YW1lIFQzMD4KLWludGVybmFsOjpWYWx1ZUFycmF5MzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzA+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsCi0gICAgVDE3IHYxNywgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwK
LSAgICBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMw
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYs
IFQyNywgVDI4LCBUMjksIFQzMD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsCi0gICAgICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwg
djIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3LCB2MjgsIHYyOSwg
djMwKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2
LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2Mjgs
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5MzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAg
ICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzE+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMs
IHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAot
ICAgICAgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxKTsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBl
bmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwg
dHlwZW5hbWUgVDMyPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzMjxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwg
VDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBU
MjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LCBUMzEsIFQzMj4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYx
MCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEs
IHYyMiwgdjIzLAotICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEs
IHYzMik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotaW50ZXJu
YWw6OlZhbHVlQXJyYXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsCi0gICAgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4
LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2
MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsCi0gICAgVDMyIHYzMiwgVDMzIHYzMykgewotICByZXR1cm4gaW50ZXJuYWw6OlZh
bHVlQXJyYXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwK
LSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAs
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2
MjIsIHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2
MzIsIHYzMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwKLSAgICBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4LCBUMjkgdjI5LCBUMzAgdjMwLAotICAgIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQz
NCB2MzQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzQ8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+KHYxLCB2MiwgdjMs
IHY0LCB2NSwgdjYsIHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwg
djE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAgICB2MjMsIHYyNCwg
djI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0KTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAg
ICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFZhbHVlcyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwKLSAg
ICBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LAotICAgIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMs
IFQzNCB2MzQsIFQzNSB2MzUpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsCi0gICAg
ICB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLCB2MzQsIHYzNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1pbnRlcm5h
bDo6VmFsdWVBcnJheTM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0gICAgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5
IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBU
MzUgdjM1LCBUMzYgdjM2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM2PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMs
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNj4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwg
djExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwg
djIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYz
MiwgdjMzLAotICAgICAgdjM0LCB2MzUsIHYzNik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNz4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzc8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
Nz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5
LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2
MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwgVDMwIHYzMCwgVDMx
IHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwKLSAgICBU
MzcgdjM3KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAg
ICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3Pih2MSwgdjIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEs
IHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LAotICAgICAgdjIwLCB2MjEs
IHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2
MzMsCi0gICAgICB2MzQsIHYzNSwgdjM2LCB2MzcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLWludGVybmFsOjpWYWx1ZUFycmF5
Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjEx
LCBUMTIgdjEyLAotICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwKLSAgICBU
MjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LAotICAgIFQzNyB2MzcsIFQzOCB2MzgpIHsKLSAgcmV0dXJuIGludGVybmFs
OjpWYWx1ZUFycmF5Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4odjEsIHYyLAotICAgICAgdjMs
IHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYx
NiwgdjE3LCB2MTgsCi0gICAgICB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYy
NiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwKLSAgICAgIHYzMywgdjM0LCB2MzUsIHYz
NiwgdjM3LCB2MzgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzOTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1
IHYzNSwgVDM2IHYzNiwKLSAgICBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4odjEs
Ci0gICAgICB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LAotICAgICAgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYy
MywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsCi0gICAgICB2MzIsIHYz
MywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MD4KLWludGVybmFsOjpWYWx1ZUFycmF5NDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MD4gVmFsdWVzKFQxIHYxLAotICAgIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwKLSAgICBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkg
djE5LAotICAgIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQy
NSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsCi0gICAgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwg
VDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwKLSAgICBUMzYgdjM2
LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwKSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6VmFsdWVBcnJheTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MD4o
djEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2
MTQsIHYxNSwKLSAgICAgIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2
MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LAotICAgICAgdjMwLCB2MzEsIHYzMiwgdjMzLCB2
MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBl
bmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxPgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgIFQ0MT4gVmFsdWVzKFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIg
djIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQy
OCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAg
VDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQw
IHY0MCwgVDQxIHY0MSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MT4odjEsIHYyLCB2MywgdjQsIHY1
LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsCi0gICAgICB2MTUsIHYx
NiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2Mjcs
IHYyOCwKLSAgICAgIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2Mzcs
IHYzOCwgdjM5LCB2NDAsIHY0MSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5
cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAg
ICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLWludGVybmFsOjpWYWx1ZUFycmF5NDI8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgIFQ0Mj4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMs
Ci0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYz
OSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTQyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQx
LCBUNDI+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIs
IHYxMywKLSAgICAgIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs
IHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LAotICAgICAgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIs
IHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsCi0gICAgICB2NDIp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBl
bmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLWludGVybmFsOjpWYWx1ZUFycmF5NDM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgVDQzPiBWYWx1ZXMoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEs
IFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYy
NywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywK
LSAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5
LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIHsKLSAgcmV0dXJuIGlu
dGVybmFsOjpWYWx1ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAg
VDQwLCBUNDEsIFQ0MiwgVDQzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2
MTAsIHYxMSwgdjEyLAotICAgICAgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2
MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsCi0gICAgICB2MjcsIHYyOCwgdjI5LCB2
MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwKLSAg
ICAgIHY0MSwgdjQyLCB2NDMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAg
dHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXk0NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLAotICAgIFQ0ND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1IHYz
NSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwK
LSAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTQ0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBU
NDIsIFQ0MywgVDQ0Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwKLSAgICAgIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1LAotICAgICAgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYz
MSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksCi0gICAgICB2NDAsIHY0
MSwgdjQyLCB2NDMsIHY0NCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0
eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5
cGVuYW1lIFQ0NT4KLWludGVybmFsOjpWYWx1ZUFycmF5NDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
Ci0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NT4gVmFsdWVzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwKLSAgICBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LAotICAgIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2Mjcs
IFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsCi0gICAgVDMzIHYz
MywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwg
VDQwIHY0MCwKLSAgICBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYs
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDU+KHYxLCB2MiwgdjMs
IHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwg
djE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAotICAgICAg
djI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYz
NiwgdjM3LCB2MzgsCi0gICAgICB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUpOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQz
OCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFt
ZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlw
ZW5hbWUgVDQ2PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDY+IFZhbHVlcyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkg
djksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
Ci0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcg
djI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQz
MyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1
IHY0NSwgVDQ2IHY0NikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1
LCBUNDY+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs
IHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIs
IHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIs
IHY0MywgdjQ0LCB2NDUsIHY0Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5
cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAg
ICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQs
IHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLWludGVybmFs
OjpWYWx1ZUFycmF5NDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0
MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwg
VDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBU
MjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQs
IFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksCi0gICAgVDQwIHY0
MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0Niwg
VDQ3IHY0NykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NzxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAg
ICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYs
IFQ0Nz4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LAotICAgICAgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwg
djIzLAotICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsCi0gICAgICB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0Miwg
djQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAs
Ci0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUg
VDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVu
YW1lIFQ0OD4KLWludGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2
MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0gICAgVDMy
IHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwKLSAgICBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQg
djQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LAotICAgIFQ0OCB2NDgpIHsKLSAgcmV0dXJu
IGludGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAg
ICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4odjEsIHYyLCB2
MywgdjQsIHY1LCB2NiwgdjcsCi0gICAgICB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0
LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwKLSAgICAgIHYyMywgdjI0
LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwg
djM2LAotICAgICAgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwg
djQ2LCB2NDcsIHY0OCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1l
IFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBl
bmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVu
YW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0
eXBlbmFtZSBUNDk+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0
OT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwKLSAgICBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5
LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLAotICAgIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2
MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsCi0gICAgVDMx
IHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYz
NywgVDM4IHYzOCwKLSAgICBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMg
djQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LAotICAgIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0
OSB2NDkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDk8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBU
NDcsIFQ0OCwgVDQ5Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LAotICAgICAgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwKLSAgICAgIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYz
MSwgdjMyLCB2MzMsIHYzNCwgdjM1LAotICAgICAgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsIHY0
MSwgdjQyLCB2NDMsIHY0NCwgdjQ1LCB2NDYsIHY0NywgdjQ4LCB2NDkpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUg
VDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVu
YW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0
eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwg
VDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiBWYWx1ZXMo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2
MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAs
IFQyMSB2MjEsCi0gICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYy
NiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIg
djMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LAotICAgIFQz
OCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2
NDQsIFQ0NSB2NDUsCi0gICAgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwgVDQ5IHY0OSwgVDUw
IHY1MCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAg
VDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0
NywgVDQ4LCBUNDksIFQ1MD4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAg
ICAgIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMw
LCB2MzEsIHYzMiwgdjMzLAotICAgICAgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQw
LCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsCi0gICAgICB2NDgsIHY0OSwgdjUw
KTsKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgoraW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4g
VmFsdWVzKFQuLi4gdikgeworICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4oc3Rk
Ojptb3ZlKHYpLi4uKTsKIH0KIAogLy8gQm9vbCgpIGFsbG93cyBnZW5lcmF0aW5nIHRlc3RzIHdp
dGggcGFyYW1ldGVycyBpbiBhIHNldCBvZiAoZmFsc2UsIHRydWUpLgpAQCAtMTIwMSw3ICszNDMs
NyBAQCBpbnRlcm5hbDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKIC8vIG9mIG11bHRpcGxlIGZsYWdzIGNhbiBiZSB0
ZXN0ZWQgd2hlbiBzZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2luZwogLy8gQ29tYmlu
ZSgpIGZ1bmN0aW9uLgogLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhbGwgdGVzdHMg
aW4gdGhlIHRlc3QgY2FzZSBGbGFnRGVwZW5kZW50VGVzdAorLy8gSW4gdGhlIGZvbGxvd2luZyBl
eGFtcGxlIGFsbCB0ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZSBGbGFnRGVwZW5kZW50VGVzdAogLy8g
d2lsbCBiZSBpbnN0YW50aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0cnVl
LgogLy8KIC8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08Ym9vbD4gewpAQCAtMTIwOSwxMyArMzUxLDEyIEBAIGludGVybmFsOjpWYWx1ZUFy
cmF5NTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLAogLy8gICAgIGV4dGVybmFsX2ZsYWcgPSBHZXRQYXJhbSgpOwogLy8gICB9CiAvLyB9Ci0v
LyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChCb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0
LCBCb29sKCkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEJvb2xTZXF1ZW5jZSwgRmxh
Z0RlcGVuZGVudFRlc3QsIEJvb2woKSk7CiAvLwogaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVy
YXRvcjxib29sPiBCb29sKCkgewogICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0cnVlKTsKIH0KIAot
IyBpZiBHVEVTVF9IQVNfQ09NQklORQogLy8gQ29tYmluZSgpIGFsbG93cyB0aGUgdXNlciB0byBj
b21iaW5lIHR3byBvciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCiAvLyB2YWx1ZXMgb2YgYSBD
YXJ0ZXNpYW4gcHJvZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRzLgogLy8KQEAgLTEy
MjQsMTg0ICszNjUsODIgQEAgaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBC
b29sKCkgewogLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3
aXRoIGVsZW1lbnRzIGNvbWluZyBmcm9tCiAvLyAgICAgdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9m
IGVsZW1lbnRzIGZyb20gdGhlIHNlcXVlbmNlcyBnZW5lcmF0ZWQgYnkKIC8vICAgICBnZW4xLCBn
ZW4yLCAuLi4sIGdlbk4uIFRoZSBzZXF1ZW5jZSBlbGVtZW50cyB3aWxsIGhhdmUgYSB0eXBlIG9m
Ci0vLyAgICAgdHVwbGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4gYXJl
IHRoZSB0eXBlcworLy8gICAgIHN0ZDo6dHVwbGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwg
VDIsIC4uLiwgVE4gYXJlIHRoZSB0eXBlcwogLy8gICAgIG9mIGVsZW1lbnRzIGZyb20gc2VxdWVu
Y2VzIHByb2R1Y2VzIGJ5IGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4KIC8vCi0vLyBDb21iaW5lIGNh
biBoYXZlIHVwIHRvIDEwIGFyZ3VtZW50cy4gVGhpcyBudW1iZXIgaXMgY3VycmVudGx5IGxpbWl0
ZWQKLS8vIGJ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHVwbGUgaW1w
bGVtZW50YXRpb24gdXNlZCBieSBHb29nbGUKLS8vIFRlc3QuCi0vLwogLy8gRXhhbXBsZToKIC8v
Ci0vLyBUaGlzIHdpbGwgaW5zdGFudGlhdGUgdGVzdHMgaW4gdGVzdCBjYXNlIEFuaW1hbFRlc3Qg
ZWFjaCBvbmUgd2l0aAorLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGluIHRlc3Qgc3Vp
dGUgQW5pbWFsVGVzdCBlYWNoIG9uZSB3aXRoCiAvLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBs
ZSgiY2F0IiwgQkxBQ0spLCB0dXBsZSgiY2F0IiwgV0hJVEUpLAogLy8gdHVwbGUoImRvZyIsIEJM
QUNLKSwgYW5kIHR1cGxlKCJkb2ciLCBXSElURSk6CiAvLwogLy8gZW51bSBDb2xvciB7IEJMQUNL
LCBHUkFZLCBXSElURSB9OwogLy8gY2xhc3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRl
c3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59Owor
Ly8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjp0dXBsZTxjb25zdCBj
aGFyKiwgQ29sb3I+ID4gey4uLn07CiAvLwogLy8gVEVTVF9QKEFuaW1hbFRlc3QsIEFuaW1hbExv
b2tzTmljZSkgey4uLn0KIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChBbmltYWxWYXJp
YXRpb25zLCBBbmltYWxUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmluZShW
YWx1ZXMoImNhdCIsICJkb2ciKSwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKEJMQUNLLCBXSElURSkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChBbmlt
YWxWYXJpYXRpb25zLCBBbmltYWxUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIENv
bWJpbmUoVmFsdWVzKCJjYXQiLCAiZG9nIiksCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXMoQkxBQ0ssIFdISVRFKSkpOwogLy8KIC8vIFRoaXMgd2lsbCBpbnN0YW50
aWF0ZSB0ZXN0cyBpbiBGbGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJpYXRpb25zIG9mIHR3
bwogLy8gQm9vbGVhbiBmbGFnczoKIC8vCiAvLyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdAotLy8g
ICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9vbCwgYm9vbD4gPiB7
CisvLyAgICAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxzdGQ6OnR1cGxlPGJvb2ws
IGJvb2w+ID4gewogLy8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CiAvLyAgICAgLy8gQXNzaWdu
cyBleHRlcm5hbF9mbGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiB2YWx1ZXMgZnJvbSB0aGUgdHVw
bGUuCi0vLyAgICAgdGllKGV4dGVybmFsX2ZsYWdfMSwgZXh0ZXJuYWxfZmxhZ18yKSA9IEdldFBh
cmFtKCk7CisvLyAgICAgc3RkOjp0aWUoZXh0ZXJuYWxfZmxhZ18xLCBleHRlcm5hbF9mbGFnXzIp
ID0gR2V0UGFyYW0oKTsKIC8vICAgfQogLy8gfTsKIC8vCiAvLyBURVNUX1AoRmxhZ0RlcGVuZGVu
dFRlc3QsIFRlc3RGZWF0dXJlMSkgewogLy8gICAvLyBUZXN0IHlvdXIgY29kZSB1c2luZyBleHRl
cm5hbF9mbGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiBoZXJlLgogLy8gfQotLy8gSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoVHdvQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKLS8vICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoQm9vbCgpLCBCb29sKCkpKTsKLS8vCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMj4KLWludGVybmFs
OjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyPiBDb21iaW5l
KAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMikgewotICBy
ZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIyPEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjI+KAotICAgICAgZzEsIGcyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRv
cjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjM+Ci1pbnRlcm5hbDo6
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9y
Mz4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYg
ZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFu
UHJvZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMz4oCi0gICAg
ICBnMSwgZzIsIGczKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVu
YW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJh
dG9yND4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5l
cmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQ+IENvbWJpbmUoCi0gICAgY29uc3Qg
R2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBn
MywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3Iz
LAotICAgICAgR2VuZXJhdG9yND4oCi0gICAgICBnMSwgZzIsIGczLCBnNCk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBH
ZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjU+
Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjU8R2VuZXJhdG9yMSwgR2VuZXJhdG9y
MiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PiBDb21iaW5lKAotICAg
IGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJh
dG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1
JiBnNSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI1PEdlbmVy
YXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0
b3I1PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAot
ICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUsIHR5cGVuYW1lIEdl
bmVyYXRvcjY+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjY8R2VuZXJhdG9yMSwg
R2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5l
cmF0b3I2PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0
b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQm
IGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYgZzYpIHsKLSAgcmV0
dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNjxHZW5lcmF0b3IxLCBHZW5lcmF0
b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9y
Nj4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMs
Ci0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUg
R2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3PgotaW50ZXJuYWw6OkNhcnRlc2lh
blByb2R1Y3RIb2xkZXI3PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAg
R2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNz4gQ29tYmluZSgK
LSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdl
bmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJh
dG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3
JiBnNykgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI3PEdlbmVy
YXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0
b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwg
ZzYsIGc3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdl
bmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwg
dHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBH
ZW5lcmF0b3I3LCB0eXBlbmFtZSBHZW5lcmF0b3I4PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1
Y3RIb2xkZXI4PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJh
dG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOD4gQ29t
YmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNv
bnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3Qg
R2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5l
cmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyODxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3Iz
LAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywg
R2VuZXJhdG9yOD4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBnNywgZzgpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlw
ZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5l
cmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5
cGVuYW1lIEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjk+Ci1pbnRlcm5hbDo6Q2FydGVz
aWFuUHJvZHVjdEhvbGRlcjk8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAg
ICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0
b3I4LAotICAgIEdlbmVyYXRvcjk+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEs
IGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29u
c3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2
JiBnNiwKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4
LCBjb25zdCBHZW5lcmF0b3I5JiBnOSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblBy
b2R1Y3RIb2xkZXI5PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBH
ZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4
LCBHZW5lcmF0b3I5PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3LCBnOCwgZzkp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9y
MiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFt
ZSBHZW5lcmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRv
cjcsIHR5cGVuYW1lIEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjksCi0gICAgdHlwZW5h
bWUgR2VuZXJhdG9yMTA+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVy
YXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9y
NSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwgR2VuZXJhdG9yOSwKLSAgICBH
ZW5lcmF0b3IxMD4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2Vu
ZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0
b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAg
ICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsIGNvbnN0IEdl
bmVyYXRvcjkmIGc5LAotICAgICAgICBjb25zdCBHZW5lcmF0b3IxMCYgZzEwKSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRv
cjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2
LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5LAotICAgICAgR2VuZXJhdG9yMTA+
KAotICAgICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4LCBnOSwgZzEwKTsKLX0KLSMg
ZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLSMgZGVmaW5lIFRFU1RfUCh0ZXN0X2Nhc2Vf
bmFtZSwgdGVzdF9uYW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9j
YXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9jYXNlX25hbWUgeyBc
Ci0gICBwdWJsaWM6IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1l
LCB0ZXN0X25hbWUpKCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gICBw
cml2YXRlOiBcCi0gICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBcCi0gICAgICA6OnRl
c3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0
cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFt
ZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklM
RV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAgICAgICAgICAgICAg
R1RFU1RfU1RSSU5HSUZZXyh0ZXN0X2Nhc2VfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAg
ICBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAgICBu
ZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdE1ldGFGYWN0b3J5PCBcCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oXAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk+KCkpOyBcCi0gICAgICByZXR1
cm4gMDsgXAotICAgIH0gXAotICAgIHN0YXRpYyBpbnQgZ3Rlc3RfcmVnaXN0ZXJpbmdfZHVtbXlf
IEdURVNUX0FUVFJJQlVURV9VTlVTRURfOyBcCi0gICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRf
QVNTSUdOXyhcCi0gICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUs
IHRlc3RfbmFtZSkpOyBcCi0gIH07IFwKLSAgaW50IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVz
dF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTo6
Z3Rlc3RfcmVnaXN0ZXJpbmdfZHVtbXlfID0gXAotICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1F
Xyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6QWRkVG9SZWdpc3RyeSgpOyBcCi0gIHZvaWQg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJv
ZHkoKQotCi0vLyBUaGUgb3B0aW9uYWwgbGFzdCBhcmd1bWVudCB0byBJTlNUQU5USUFURV9URVNU
X0NBU0VfUCBhbGxvd3MgdGhlIHVzZXIKLS8vIHRvIHNwZWNpZnkgYSBmdW5jdGlvbiBvciBmdW5j
dG9yIHRoYXQgZ2VuZXJhdGVzIGN1c3RvbSB0ZXN0IG5hbWUgc3VmZml4ZXMKLS8vIGJhc2VkIG9u
IHRoZSB0ZXN0IHBhcmFtZXRlcnMuIFRoZSBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IG9uZSBhcmd1
bWVudCBvZgotLy8gdHlwZSB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPGNsYXNzIFBhcmFtVHlwZT4s
IGFuZCByZXR1cm4gc3RkOjpzdHJpbmcuCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVHdv
Qm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb21iaW5lKEJvb2woKSwgQm9vbCgpKSk7CisvLwordGVtcGxhdGUgPHR5cGVuYW1lLi4u
IEdlbmVyYXRvcj4KK2ludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyPEdlbmVyYXRvci4u
Lj4gQ29tYmluZShjb25zdCBHZW5lcmF0b3ImLi4uIGcpIHsKKyAgcmV0dXJuIGludGVybmFsOjpD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyPEdlbmVyYXRvci4uLj4oZy4uLik7Cit9CisKKyNkZWZpbmUg
VEVTVF9QKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0
ZV9uYW1lLCB0ZXN0X25hbWUpICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOiBwdWJsaWMg
dGVzdF9zdWl0ZV9uYW1lIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgIHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfVEVTVF9DTEFTU19O
QU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSB7fSAgICAgICAgICAgICAgICAgICAg
XAorICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBw
cml2YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDo6dGVz
dGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIC5HZXRUZXN0
U3VpdGVQYXR0ZXJuSG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25hbWUpLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pKSAgICAgICAgICAgXAor
ICAgICAgICAgIC0+QWRkVGVzdFBhdHRlcm4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0
ZXN0X3N1aXRlX25hbWUpLCBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSksICBcCisgICAgICAg
ICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rvcnk8R1RFU1RfVEVT
VF9DTEFTU19OQU1FXyggXAorICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpPigpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXykpOyAg
ICAgICAgICBcCisgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXzsgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRf
QVNTSUdOXyhHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X25hbWUpKTsgICAgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGludCBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjpn
dGVzdF9yZWdpc3RlcmluZ19kdW1teV8gPSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RFU1Rf
Q0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1JlZ2lzdHJ5KCk7
ICAgICBcCisgIHZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRl
c3RfbmFtZSk6OlRlc3RCb2R5KCkKKworLy8gVGhlIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5CisvLyBnZW5lcmF0b3Ig
YW5kIGFuIG9wdGlvbmFsIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9t
IHRlc3QgbmFtZQorLy8gc3VmZml4ZXMgYmFzZWQgb24gdGhlIHRlc3QgcGFyYW1ldGVycy4gU3Vj
aCBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3Igc2hvdWxkCisvLyBhY2NlcHQgb25lIGFyZ3VtZW50IG9m
IHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBhbmQKKy8vIHJl
dHVybiBzdGQ6OnN0cmluZy4KIC8vCiAvLyB0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1l
IGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAogLy8gcmV0dXJucyB0aGUg
dmFsdWUgb2YgdGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKS4KQEAgLTE0MTAsMjUg
KzQ0OSw1OSBAQCBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEs
IEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCiAvLyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciB1
bmRlcnNjb3JlLiBCZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMKIC8vIHRvIHN0ZDo6
c3RyaW5nIGFuZCBDIHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNlIHR5cGVzLgogCi0j
IGRlZmluZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3RfY2FzZV9uYW1lLCBn
ZW5lcmF0b3IsIC4uLikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UGFyYW1HZW5l
cmF0b3I8dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBnZW5lcmF0b3I7IH0g
XAotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUj
I19FdmFsR2VuZXJhdGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1J
bmZvPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAgICByZXR1cm4gOjp0
ZXN0aW5nOjppbnRlcm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5
cGU+IFwKLSAgICAgICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwKLSAgc3RhdGljIGlu
dCBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RFU1RfQVRUUklCVVRF
X1VOVVNFRF8gPSBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5w
YXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0
dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25h
bWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwK
LSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0Q2FzZUluc3Rh
bnRpYXRpb24oXAotICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwKLSAgICAgICAgICAg
ICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRv
cl8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9u
YW1lIyNfRXZhbEdlbmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVf
XywgX19MSU5FX18pCisjZGVmaW5lIEdURVNUX0VYUEFORF8oYXJnKSBhcmcKKyNkZWZpbmUgR1RF
U1RfR0VUX0ZJUlNUXyhmaXJzdCwgLi4uKSBmaXJzdAorI2RlZmluZSBHVEVTVF9HRVRfU0VDT05E
XyhmaXJzdCwgc2Vjb25kLCAuLi4pIHNlY29uZAorCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChwcmVmaXgsIHRlc3Rfc3VpdGVfbmFtZSwgLi4uKSAgICAgICAgICAgICAgICBcCisg
IHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0X3N1aXRlX25h
bWU6OlBhcmFtVHlwZT4gICAgICBcCisgICAgICBndGVzdF8jI3ByZWZpeCMjdGVzdF9zdWl0ZV9u
YW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJu
IEdURVNUX0VYUEFORF8oR1RFU1RfR0VUX0ZJUlNUXyhfX1ZBX0FSR1NfXywgRFVNTVlfUEFSQU1f
KSk7ICAgICAgICBcCisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyA6OnN0ZDo6c3Ry
aW5nIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X3N1aXRlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXygg
ICBcCisgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVzdF9zdWl0ZV9uYW1l
OjpQYXJhbVR5cGU+JiBpbmZvKSB7ICAgICBcCisgICAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6
OkFsd2F5c0ZhbHNlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0Tm90RW1wdHkoR1RFU1RfRVhQQU5EXyhHVEVTVF9H
RVRfU0VDT05EXyggICAgICBcCisgICAgICAgICAgX19WQV9BUkdTX18sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6RGVmYXVsdFBhcmFtTmFtZTx0ZXN0X3N1aXRlX25hbWU6OlBhcmFt
VHlwZT4sICBcCisgICAgICAgICAgRFVNTVlfUEFSQU1fKSkpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBhdXRvIHQgPSBzdGQ6Om1h
a2VfdHVwbGUoX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6dHVwbGVfc2l6ZTxkZWNsdHlwZSh0KT46OnZhbHVl
IDw9IDIsICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICJUb28gTWFueSBB
cmdzISIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgcmV0dXJuICgoR1RFU1RfRVhQQU5EXyhHVEVTVF9HRVRfU0VD
T05EXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9fVkFfQVJH
U19fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlZmF1bHRQYXJhbU5hbWU8dGVz
dF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+LCAgICBcCisgICAgICAgIERVTU1ZX1BBUkFNXykpKSko
aW5mbyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBpbnQgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rf
c3VpdGVfbmFtZSMjX2R1bW15XyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBHVEVT
VF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIC0+cGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyPHRlc3Rfc3VpdGVf
bmFtZT4oICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJ
TkdJRllfKHRlc3Rfc3VpdGVfbmFtZSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18s
IF9fTElORV9fKSkgICAgICBcCisgICAgICAgICAgICAgIC0+QWRkVGVzdFN1aXRlSW5zdGFudGlh
dGlvbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg
ICAgICBHVEVTVF9TVFJJTkdJRllfKHByZWZpeCksICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVf
bmFtZSMjX0V2YWxHZW5lcmF0b3JfLCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAmZ3Rl
c3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxHZW5lcmF0ZU5hbWVfLCAgICAgICBc
CisgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pCisKKworLy8gQWxsb3cgTWFy
a2luZyBhIFBhcmFtZXRlcml6ZWQgdGVzdCBjbGFzcyBhcyBub3QgbmVlZGluZyB0byBiZSBpbnN0
YW50aWF0ZWQuCisjZGVmaW5lIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUkla
RURfVEVTVChUKSAgICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBndGVzdF9kb19ub3Rf
dXNlX291dHNpZGVfbmFtZXNwYWNlX3Njb3BlIHt9ICAgICAgICAgICAgICAgICAgIFwKKyAgc3Rh
dGljIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1hcmtBc0lnbm9yZWQgZ3Rlc3RfYWxsb3df
aWdub3JlXyMjVCggXAorICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUKSkKKworLy8gTGVnYWN5IEFQ
SSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpY19hc3Nl
cnQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW5zdGFudGlhdGVUZXN0Q2FzZV9QX0lzRGVwcmVjYXRl
ZCgpLCBcCisgICAgICAgICAgICAgICAgIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAor
I2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogfSAgLy8gbmFt
ZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BB
UkFNX1RFU1RfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BB
UkFNX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNzRmMmIzYjU2OTMzMDAxMmU4NWVlM2NmNGZkNTdlYjBiNTQyMWQ2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAKKysrIC9kZXYv
bnVsbApAQCAtMSw1MDAgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1
MCAgJCQgTWF4aW11bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBv
cnQuCi0kdmFyIG1heHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJn
dW1lbnRzIHdlIHdhbnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5j
LgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLS8vCi0vLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50
aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9j
a2luZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0
ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KLS8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9Q
QVJBTV9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVT
VF9IXwotCi0KLS8vIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3Qg
eW91ciBjb2RlIHdpdGggZGlmZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBt
dWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJlIGlzIGhvdyB5b3Ug
dXNlIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8vIFRvIHdyaXRlIHZh
bHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVy
ZQotLy8gY2xhc3MuIEl0IGlzIHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3RXaXRo
UGFyYW08VD4gKHNlZSBiZWxvdyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFuY2Ugc2NoZW1lIHRo
YXQncyBzb21ldGltZXMgdXNlZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8vIGNsYXNzIGhpZXJh
cmNoaWVzKSwgd2hlcmUgdGhlIHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLgotLy8gVGVz
dFdpdGhQYXJhbTxUPiBpcyBpdHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QuIFQgY2Fu
IGJlIGFueQotLy8gY29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJl
IHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9mIHRoZSBwb2ludGVk
IHZhbHVlcy4KLQotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFy
YW08Y29uc3QgY2hhcio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1c3VhbCBj
bGFzcyBmaXh0dXJlIG1lbWJlcnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVzZSB0aGUgVEVTVF9Q
IG1hY3JvIHRvIGRlZmluZSBhcyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGZvciB0aGlz
IGZpeHR1cmUgYXMgeW91IHdhbnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVk
IgotLy8gb3IgInBhdHRlcm4iLCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0aGluay4KLQotVEVT
VF9QKEZvb1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUg
dGVzdCBwYXJhbWV0ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRl
c3RXaXRoUGFyYW08VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkp
KTsKLSAgLi4uCi19Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0K
LQotLy8gRmluYWxseSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgdG8gaW5z
dGFudGlhdGUgdGhlIHRlc3QKLS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91
IHdhbnQuIEdvb2dsZSBUZXN0IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1bmN0aW9ucyBmb3Ig
Z2VuZXJhdGluZyB0ZXN0IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbAotLy8g
KHN1cnByaXNlISkgcGFyYW1ldGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRo
ZW0sIHdoaWNoCi0vLyBhcmUgYWxsIGluIHRoZSB0ZXN0aW5nIG5hbWVzcGFjZToKLS8vCi0vLwot
Ly8gIFJhbmdlKGJlZ2luLCBlbmQgWywgc3RlcF0pIC0gWWllbGRzIHZhbHVlcyB7YmVnaW4sIGJl
Z2luK3N0ZXAsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbitzdGVwK3N0
ZXAsIC4uLn0uIFRoZSB2YWx1ZXMgZG8gbm90Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmNsdWRlIGVuZC4gc3RlcCBkZWZhdWx0cyB0byAxLgotLy8gIFZhbHVlcyh2MSwgdjIs
IC4uLiwgdk4pICAgIC0gWWllbGRzIHZhbHVlcyB7djEsIHYyLCAuLi4sIHZOfS4KLS8vICBWYWx1
ZXNJbihjb250YWluZXIpICAgICAgICAtIFlpZWxkcyB2YWx1ZXMgZnJvbSBhIEMtc3R5bGUgYXJy
YXksIGFuIFNUTAotLy8gIFZhbHVlc0luKGJlZ2luLGVuZCkgICAgICAgICAgY29udGFpbmVyLCBv
ciBhbiBpdGVyYXRvciByYW5nZSBbYmVnaW4sIGVuZCkuCi0vLyAgQm9vbCgpICAgICAgICAgICAg
ICAgICAgICAgLSBZaWVsZHMgc2VxdWVuY2Uge2ZhbHNlLCB0cnVlfS4KLS8vICBDb21iaW5lKGcx
LCBnMiwgLi4uLCBnTikgICAtIFlpZWxkcyBhbGwgY29tYmluYXRpb25zICh0aGUgQ2FydGVzaWFu
IHByb2R1Y3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgbWF0aCBz
YXZ2eSkgb2YgdGhlIHZhbHVlcyBnZW5lcmF0ZWQKLS8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJ5IHRoZSBOIGdlbmVyYXRvcnMuCi0vLwotLy8gRm9yIG1vcmUgZGV0YWlscywgc2Vl
IGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cKLS8v
IGluIHRoaXMgZmlsZS4KLS8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3Rh
bnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCi0vLyBlYWNoIHdpdGggcGFy
YW1ldGVyIHZhbHVlcyAibWVlbnkiLCAibWlueSIsIGFuZCAibW9lIi4KLQotSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBG
b29UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJtZWVueSIsICJtaW55Iiwg
Im1vZSIpKTsKLQotLy8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUg
cGF0dGVybiwgKHllcywgeW91Ci0vLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGVuIG9uY2Up
IHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1h
Y3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLS8vIGFjdHVhbCB0ZXN0
IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVu
dAotLy8gaW5zdGFudGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFi
b3ZlIHdpbGwgaGF2ZQotLy8gdGhlc2UgbmFtZXM6Ci0vLwotLy8gICAgKiBJbnN0YW50aWF0aW9u
TmFtZS9Gb29UZXN0LkRvZXNCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlhdGlv
bk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFudGlhdGlv
bk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8yIGZvciAibW9lIgotLy8gICAgKiBJbnN0YW50aWF0aW9u
TmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlh
dGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFu
dGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8yIGZvciAibW9lIgotLy8KLS8vIFlvdSBj
YW4gdXNlIHRoZXNlIG5hbWVzIGluIC0tZ3Rlc3RfZmlsdGVyLgotLy8KLS8vIFRoaXMgc3RhdGVt
ZW50IHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzIGZyb20gRm9vVGVzdCBhZ2FpbiwgZWFjaAot
Ly8gd2l0aCBwYXJhbWV0ZXIgdmFsdWVzICJjYXQiIGFuZCAiZG9nIjoKLQotY29uc3QgY2hhciog
cGV0c1tdID0geyJjYXQiLCAiZG9nIn07Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChBbm90aGVy
SW5zdGFudGlhdGlvbk5hbWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsKLQotLy8gVGhlIHRl
c3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlIHRoZXNlIG5hbWVzOgot
Ly8KLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMCBm
b3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0Js
YWgvMSBmb3IgImRvZyIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3Qu
SGFzQmxhaEJsYWgvMCBmb3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMSBmb3IgImRvZyIKLS8vCi0vLyBQbGVhc2Ugbm90ZSB0aGF0
IElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzCi0vLyBp
biB0aGUgZ2l2ZW4gdGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRlZmluaXRpb25zIGNvbWUgYmVm
b3JlIG9yCi0vLyBBRlRFUiB0aGUgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agc3RhdGVtZW50Lgot
Ly8KLS8vIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1
ZGluZyBwYXJhbWV0ZXJzIHRvIHRoZQotLy8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJ
bml0R29vZ2xlVGVzdCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCi0vLyBUaGlzIGFsbG93
cyB0aGUgdXNlciBvbiBvbmUgaGFuZCwgdG8gYWRqdXN0IGdlbmVyYXRvciBwYXJhbWV0ZXJzIGlu
IG9yZGVyCi0vLyB0byBkeW5hbWljYWxseSBkZXRlcm1pbmUgYSBzZXQgb2YgdGVzdHMgdG8gcnVu
IGFuZCBvbiB0aGUgb3RoZXIgaGFuZCwKLS8vIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gaW5z
cGVjdCB0aGUgZ2VuZXJhdGVkIHRlc3RzIHdpdGggR29vZ2xlIFRlc3QKLS8vIHJlZmxlY3Rpb24g
QVBJIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgaXMgZXhlY3V0ZWQuCi0vLwotLy8gWW91IGNhbiBz
ZWUgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0LmNjIGFuZCBzYW1wbGVzL3NhbXBsZThfdW5pdHRl
c3QuY2MKLS8vIGZvciBtb3JlIGV4YW1wbGVzLgotLy8KLS8vIEluIHRoZSBmdXR1cmUsIHdlIHBs
YW4gdG8gcHVibGlzaCB0aGUgQVBJIGZvciBkZWZpbmluZyBuZXcgcGFyYW1ldGVyCi0vLyBnZW5l
cmF0b3JzLiBCdXQgZm9yIG5vdyB0aGlzIGludGVyZmFjZSByZW1haW5zIHBhcnQgb2YgdGhlIGlu
dGVybmFsCi0vLyBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UuCi0vLwot
Ly8KLS8vIEEgcGFyYW1ldGVyaXplZCB0ZXN0IGZpeHR1cmUgbXVzdCBiZSBkZXJpdmVkIGZyb20g
dGVzdGluZzo6VGVzdCBhbmQgZnJvbQotLy8gdGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+
LCB3aGVyZSBUIGlzIHRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIKLS8vIHZhbHVlcy4gSW5oZXJp
dGluZyBmcm9tIFRlc3RXaXRoUGFyYW08VD4gc2F0aXNmaWVzIHRoYXQgcmVxdWlyZW1lbnQgYmVj
YXVzZQotLy8gVGVzdFdpdGhQYXJhbTxUPiBpbmhlcml0cyBmcm9tIGJvdGggVGVzdCBhbmQgV2l0
aFBhcmFtSW50ZXJmYWNlLiBJbiBtb3JlCi0vLyBjb21wbGljYXRlZCBoaWVyYXJjaGllcywgaG93
ZXZlciwgaXQgaXMgb2NjYXNpb25hbGx5IHVzZWZ1bCB0byBpbmhlcml0Ci0vLyBzZXBhcmF0ZWx5
IGZyb20gVGVzdCBhbmQgV2l0aFBhcmFtSW50ZXJmYWNlLiBGb3IgZXhhbXBsZToKLQotY2xhc3Mg
QmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgLy8gWW91IGNhbiBpbmhlcml0
IGFsbCB0aGUgdXN1YWwgbWVtYmVycyBmb3IgYSBub24tcGFyYW1ldGVyaXplZCB0ZXN0Ci0gIC8v
IGZpeHR1cmUgaGVyZS4KLX07Ci0KLWNsYXNzIERlcml2ZWRUZXN0IDogcHVibGljIEJhc2VUZXN0
LCBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8aW50PiB7Ci0gIC8vIFRoZSB1
c3VhbCB0ZXN0IGZpeHR1cmUgbWVtYmVycyBnbyBoZXJlIHRvby4KLX07Ci0KLVRFU1RfRihCYXNl
VGVzdCwgSGFzRm9vKSB7Ci0gIC8vIFRoaXMgaXMgYW4gb3JkaW5hcnkgbm9uLXBhcmFtZXRlcml6
ZWQgdGVzdC4KLX0KLQotVEVTVF9QKERlcml2ZWRUZXN0LCBEb2VzQmxhaCkgewotICAvLyBHZXRQ
YXJhbSB3b3JrcyBqdXN0IHRoZSBzYW1lIGhlcmUgYXMgaWYgeW91IGluaGVyaXQgZnJvbSBUZXN0
V2l0aFBhcmFtLgotICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgpKSk7Ci19Ci0KLSNl
bmRpZiAgLy8gMAotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0j
aWYgIUdURVNUX09TX1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRpbGl0eT4KLSNlbmRpZgotCi0jaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJndGVzdC9p
bnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBG
dW5jdGlvbnMgcHJvZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgotLy8KLS8vIEdvb2dsZSBU
ZXN0IHVzZXMgdGhlc2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVl
LQotLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNl
IGlzIGluc3RhbnRpYXRlZAotLy8gd2l0aCBhIHBhcnRpY3VsYXIgZ2VuZXJhdG9yLCBHb29nbGUg
VGVzdCBjcmVhdGVzIGFuZCBydW5zIHRlc3RzCi0vLyBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBz
ZXF1ZW5jZSBwcm9kdWNlZCBieSB0aGUgZ2VuZXJhdG9yLgotLy8KLS8vIEluIHRoZSBmb2xsb3dp
bmcgc2FtcGxlLCB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBGb29UZXN0IGFyZSBpbnN0YW50aWF0ZWQK
LS8vIGVhY2ggdGhyZWUgdGltZXMgd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIDMsIDUsIGFuZCA4Ogot
Ly8KLS8vIGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsgLi4uIH07
Ci0vLwotLy8gVEVTVF9QKEZvb1Rlc3QsIFRlc3RUaGlzKSB7Ci0vLyB9Ci0vLyBURVNUX1AoRm9v
VGVzdCwgVGVzdFRoYXQpIHsKLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RT
ZXF1ZW5jZSwgRm9vVGVzdCwgVmFsdWVzKDMsIDUsIDgpKTsKLS8vCi0KLS8vIFJhbmdlKCkgcmV0
dXJucyBnZW5lcmF0b3JzIHByb3ZpZGluZyBzZXF1ZW5jZXMgb2YgdmFsdWVzIGluIGEgcmFuZ2Uu
Ci0vLwotLy8gU3lub3BzaXM6Ci0vLyBSYW5nZShzdGFydCwgZW5kKQotLy8gICAtIHJldHVybnMg
YSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtzdGFydCwgc3RhcnQr
MSwKLS8vICAgICBzdGFydCsyLCAuLi4sIH0uCi0vLyBSYW5nZShzdGFydCwgZW5kLCBzdGVwKQot
Ly8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVz
IHtzdGFydCwgc3RhcnQrc3RlcCwKLS8vICAgICBzdGFydCtzdGVwK3N0ZXAsIC4uLiwgfS4KLS8v
IE5vdGVzOgotLy8gICAqIFRoZSBnZW5lcmF0ZWQgc2VxdWVuY2VzIG5ldmVyIGluY2x1ZGUgZW5k
LiBGb3IgZXhhbXBsZSwgUmFuZ2UoMSwgNSkKLS8vICAgICByZXR1cm5zIGEgZ2VuZXJhdG9yIHBy
b2R1Y2luZyBhIHNlcXVlbmNlIHsxLCAyLCAzLCA0fS4gUmFuZ2UoMSwgOSwgMikKLS8vICAgICBy
ZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyB7MSwgMywgNSwgN30uCi0vLyAgICogc3RhcnQg
YW5kIGVuZCBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZS4gVGhhdCB0eXBlIG1heSBiZSBhbnkgaW50
ZWdyYWwgb3IKLS8vICAgICBmbG9hdGluZy1wb2ludCB0eXBlIG9yIGEgdXNlciBkZWZpbmVkIHR5
cGUgc2F0aXNmeWluZyB0aGVzZSBjb25kaXRpb25zOgotLy8gICAgICogSXQgbXVzdCBiZSBhc3Np
Z25hYmxlIChoYXZlIG9wZXJhdG9yPSgpIGRlZmluZWQpLgotLy8gICAgICogSXQgbXVzdCBoYXZl
IG9wZXJhdG9yKygpIChvcGVyYXRvcisoaW50LWNvbXBhdGlibGUgdHlwZSkgZm9yCi0vLyAgICAg
ICB0d28tb3BlcmFuZCB2ZXJzaW9uKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRvcjwo
KSBkZWZpbmVkLgotLy8gICAgIEVsZW1lbnRzIGluIHRoZSByZXN1bHRpbmcgc2VxdWVuY2VzIHdp
bGwgYWxzbyBoYXZlIHRoYXQgdHlwZS4KLS8vICAgKiBDb25kaXRpb24gc3RhcnQgPCBlbmQgbXVz
dCBiZSBzYXRpc2ZpZWQgaW4gb3JkZXIgZm9yIHJlc3VsdGluZyBzZXF1ZW5jZXMKLS8vICAgICB0
byBjb250YWluIGFueSBlbGVtZW50cy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgSW5jcmVtZW50VD4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBSYW5nZShUIHN0YXJ0
LCBUIGVuZCwgSW5jcmVtZW50VCBzdGVwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6UGFyYW1HZW5l
cmF0b3I8VD4oCi0gICAgICBuZXcgaW50ZXJuYWw6OlJhbmdlR2VuZXJhdG9yPFQsIEluY3JlbWVu
dFQ+KHN0YXJ0LCBlbmQsIHN0ZXApKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbnRl
cm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKLSAgcmV0dXJu
IFJhbmdlKHN0YXJ0LCBlbmQsIDEpOwotfQotCi0vLyBWYWx1ZXNJbigpIGZ1bmN0aW9uIGFsbG93
cyBnZW5lcmF0aW9uIG9mIHRlc3RzIHdpdGggcGFyYW1ldGVycyBjb21pbmcgZnJvbQotLy8gYSBj
b250YWluZXIuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkp
W05dKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRo
IGVsZW1lbnRzIGZyb20KLS8vICAgICBhIEMtc3R5bGUgYXJyYXkuCi0vLyBWYWx1ZXNJbihjb25z
dCBDb250YWluZXImIGNvbnRhaW5lcikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1
Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBmcm9tCi0vLyAgICAgYW4gU1RMLXN0eWxlIGNv
bnRhaW5lci4KLS8vIFZhbHVlc0luKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpCi0vLyAg
IC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMg
ZnJvbQotLy8gICAgIGEgcmFuZ2UgW2JlZ2luLCBlbmQpIGRlZmluZWQgYnkgYSBwYWlyIG9mIFNU
TC1zdHlsZSBpdGVyYXRvcnMuIFRoZXNlCi0vLyAgICAgaXRlcmF0b3JzIGNhbiBhbHNvIGJlIHBs
YWluIEMgcG9pbnRlcnMuCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBWYWx1ZXNJbiBjb3BpZXMg
dGhlIHZhbHVlcyBmcm9tIHRoZSBjb250YWluZXJzCi0vLyBwYXNzZWQgaW4gYW5kIGtlZXBzIHRo
ZW0gdG8gZ2VuZXJhdGUgdGVzdHMgaW4gUlVOX0FMTF9URVNUUygpLgotLy8KLS8vIEV4YW1wbGVz
OgotLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIFN0cmluZ1Rl
c3QKLS8vIGVhY2ggd2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIsICJiYXIiLCBhbmQgImJh
eiI6Ci0vLwotLy8gY29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28iLCAiYmFyIiwgImJheiJ9
OwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3Qs
IFZhbHVlc0luKHN0cmluZ3MpKTsKLS8vCi0vLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9t
IHRlc3QgY2FzZSBTdGxTdHJpbmdUZXN0Ci0vLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2
YWx1ZXMgImEiIGFuZCAiYiI6Ci0vLwotLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4g
R2V0UGFyYW1ldGVyU3RyaW5ncygpIHsKLS8vICAgOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmlu
Zz4gdjsKLS8vICAgdi5wdXNoX2JhY2soImEiKTsKLS8vICAgdi5wdXNoX2JhY2soImIiKTsKLS8v
ICAgcmV0dXJuIHY7Ci0vLyB9Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ2hhclNl
cXVlbmNlLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKLS8vICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOwot
Ly8KLS8vCi0vLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0
Ci0vLyBlYWNoIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAnYScgYW5kICdiJzoKLS8vCi0vLyA6OnN0
ZDo6bGlzdDxjaGFyPiBHZXRQYXJhbWV0ZXJDaGFycygpIHsKLS8vICAgOjpzdGQ6Omxpc3Q8Y2hh
cj4gbGlzdDsKLS8vICAgbGlzdC5wdXNoX2JhY2soJ2EnKTsKLS8vICAgbGlzdC5wdXNoX2JhY2so
J2InKTsKLS8vICAgcmV0dXJuIGxpc3Q7Ci0vLyB9Ci0vLyA6OnN0ZDo6bGlzdDxjaGFyPiBsID0g
R2V0UGFyYW1ldGVyQ2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1
ZW5jZTIsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwKLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkpOwotLy8KLXRlbXBs
YXRlIDx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8
Ci0gIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJ
dGVyYXRvcj46OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZv
cndhcmRJdGVyYXRvciBlbmQpIHsKLSAgdHlwZWRlZiB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVy
bmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ci0gICAgICA6OnZhbHVlX3R5cGUg
UGFyYW1UeXBlOwotICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT4o
Ci0gICAgICBuZXcgaW50ZXJuYWw6OlZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcjxQYXJh
bVR5cGU+KGJlZ2luLCBlbmQpKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBO
PgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlb
Tl0pIHsKLSAgcmV0dXJuIFZhbHVlc0luKGFycmF5LCBhcnJheSArIE4pOwotfQotCi10ZW1wbGF0
ZSA8Y2xhc3MgQ29udGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENv
bnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250
YWluZXIpIHsKLSAgcmV0dXJuIFZhbHVlc0luKGNvbnRhaW5lci5iZWdpbigpLCBjb250YWluZXIu
ZW5kKCkpOwotfQotCi0vLyBWYWx1ZXMoKSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyBmcm9tIGV4
cGxpY2l0bHkgc3BlY2lmaWVkIGxpc3Qgb2YKLS8vIHBhcmFtZXRlcnMuCi0vLwotLy8gU3lub3Bz
aXM6Ci0vLyBWYWx1ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQotLy8gICAtIHJldHVybnMgYSBn
ZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYxLCB2MiwgLi4uLCB2
Ti4KLS8vCi0vLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0
IGNhc2UgQmFyVGVzdCBlYWNoCi0vLyB3aXRoIHZhbHVlcyAib25lIiwgInR3byIsIGFuZCAidGhy
ZWUiOgotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE51bVNlcXVlbmNlLCBCYXJUZXN0
LCBWYWx1ZXMoIm9uZSIsICJ0d28iLCAidGhyZWUiKSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0
ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmF6VGVzdCBlYWNoIHdpdGggdmFsdWVzIDEsIDIsIDMu
NS4KLS8vIFRoZSBleGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdHlwZSBv
ZiBwYXJhbWV0ZXIgaW4gQmF6VGVzdC4KLS8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChG
bG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKLS8vCi0vLyBDdXJy
ZW50bHksIFZhbHVlcygpIHN1cHBvcnRzIGZyb20gMSB0byAkbiBwYXJhbWV0ZXJzLgotLy8KLSRy
YW5nZSBpIDEuLm4KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBq
LCBbW3R5cGVuYW1lIFQkal1dPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkkaTwkZm9yIGosIFtbVCRq
XV0+IFZhbHVlcygkZm9yIGosIFtbVCRqIHYkal1dKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheSRpPCRmb3IgaiwgW1tUJGpdXT4oJGZvciBqLCBbW3Ykal1dKTsKLX0KLQotXV0KLQot
Ly8gQm9vbCgpIGFsbG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVycyBpbiBhIHNl
dCBvZiAoZmFsc2UsIHRydWUpLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQm9vbCgpCi0vLyAgIC0g
cmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMge2Zh
bHNlLCB0cnVlfS4KLS8vCi0vLyBJdCBpcyB1c2VmdWwgd2hlbiB0ZXN0aW5nIGNvZGUgdGhhdCBk
ZXBlbmRzIG9uIEJvb2xlYW4gZmxhZ3MuIENvbWJpbmF0aW9ucwotLy8gb2YgbXVsdGlwbGUgZmxh
Z3MgY2FuIGJlIHRlc3RlZCB3aGVuIHNldmVyYWwgQm9vbCgpJ3MgYXJlIGNvbWJpbmVkIHVzaW5n
Ci0vLyBDb21iaW5lKCkgZnVuY3Rpb24uCi0vLwotLy8gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxl
IGFsbCB0ZXN0cyBpbiB0aGUgdGVzdCBjYXNlIEZsYWdEZXBlbmRlbnRUZXN0Ci0vLyB3aWxsIGJl
IGluc3RhbnRpYXRlZCB0d2ljZSB3aXRoIHBhcmFtZXRlcnMgZmFsc2UgYW5kIHRydWUuCi0vLwot
Ly8gY2xhc3MgRmxhZ0RlcGVuZGVudFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJh
bTxib29sPiB7Ci0vLyAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLS8vICAgICBleHRlcm5hbF9m
bGFnID0gR2V0UGFyYW0oKTsKLS8vICAgfQotLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwgQm9vbCgpKTsKLS8vCi1pbmxpbmUg
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPGJvb2w+IEJvb2woKSB7Ci0gIHJldHVybiBWYWx1ZXMo
ZmFsc2UsIHRydWUpOwotfQotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0vLyBDb21iaW5lKCkg
YWxsb3dzIHRoZSB1c2VyIHRvIGNvbWJpbmUgdHdvIG9yIG1vcmUgc2VxdWVuY2VzIHRvIHByb2R1
Y2UKLS8vIHZhbHVlcyBvZiBhIENhcnRlc2lhbiBwcm9kdWN0IG9mIHRob3NlIHNlcXVlbmNlcycg
ZWxlbWVudHMuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBDb21iaW5lKGdlbjEsIGdlbjIsIC4uLiwg
Z2VuTikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0
aCBlbGVtZW50cyBjb21pbmcgZnJvbQotLy8gICAgIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiBl
bGVtZW50cyBmcm9tIHRoZSBzZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5Ci0vLyAgICAgZ2VuMSwgZ2Vu
MiwgLi4uLCBnZW5OLiBUaGUgc2VxdWVuY2UgZWxlbWVudHMgd2lsbCBoYXZlIGEgdHlwZSBvZgot
Ly8gICAgIHR1cGxlPFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAuLi4sIFROIGFyZSB0
aGUgdHlwZXMKLS8vICAgICBvZiBlbGVtZW50cyBmcm9tIHNlcXVlbmNlcyBwcm9kdWNlcyBieSBn
ZW4xLCBnZW4yLCAuLi4sIGdlbk4uCi0vLwotLy8gQ29tYmluZSBjYW4gaGF2ZSB1cCB0byAkbWF4
dHVwbGUgYXJndW1lbnRzLiBUaGlzIG51bWJlciBpcyBjdXJyZW50bHkgbGltaXRlZAotLy8gYnkg
dGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0dXBsZSBpbXBsZW1lbnRhdGlv
biB1c2VkIGJ5IEdvb2dsZQotLy8gVGVzdC4KLS8vCi0vLyBFeGFtcGxlOgotLy8KLS8vIFRoaXMg
d2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiB0ZXN0IGNhc2UgQW5pbWFsVGVzdCBlYWNoIG9uZSB3
aXRoCi0vLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxBQ0spLCB0dXBsZSgi
Y2F0IiwgV0hJVEUpLAotLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1cGxlKCJkb2ciLCBX
SElURSk6Ci0vLwotLy8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElURSB9OwotLy8gY2xh
c3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVw
bGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59OwotLy8KLS8vIFRFU1RfUChBbmltYWxUZXN0
LCBBbmltYWxMb29rc05pY2UpIHsuLi59Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
QW5pbWFsVmFyaWF0aW9ucywgQW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAg
IENvbWJpbmUoVmFsdWVzKCJjYXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZhbHVlcyhCTEFDSywgV0hJVEUpKSk7Ci0vLwotLy8gVGhpcyB3aWxsIGluc3Rh
bnRpYXRlIHRlc3RzIGluIEZsYWdEZXBlbmRlbnRUZXN0IHdpdGggYWxsIHZhcmlhdGlvbnMgb2Yg
dHdvCi0vLyBCb29sZWFuIGZsYWdzOgotLy8KLS8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0Ci0v
LyAgICAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTx0dXBsZTxib29sLCBib29sPiA+
IHsKLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIEFzc2lnbnMgZXh0ZXJu
YWxfZmxhZ18xIGFuZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhlIHR1cGxlLgotLy8g
ICAgIHRpZShleHRlcm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBHZXRQYXJhbSgpOwot
Ly8gICB9Ci0vLyB9OwotLy8KLS8vIFRFU1RfUChGbGFnRGVwZW5kZW50VGVzdCwgVGVzdEZlYXR1
cmUxKSB7Ci0vLyAgIC8vIFRlc3QgeW91ciBjb2RlIHVzaW5nIGV4dGVybmFsX2ZsYWdfMSBhbmQg
ZXh0ZXJuYWxfZmxhZ18yIGhlcmUuCi0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChU
d29Cb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0LAotLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgQ29tYmluZShCb29sKCksIEJvb2woKSkpOwotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxl
Ci0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFt
ZSBHZW5lcmF0b3Ikal1dPgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIkaTwkZm9y
IGosIFtbR2VuZXJhdG9yJGpdXT4gQ29tYmluZSgKLSAgICAkZm9yIGosIFtbY29uc3QgR2VuZXJh
dG9yJGomIGckal1dKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRl
ciRpPCRmb3IgaiwgW1tHZW5lcmF0b3Ikal1dPigKLSAgICAgICRmb3IgaiwgW1tnJGpdXSk7Ci19
Ci0KLV1dCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCi0jIGRlZmluZSBURVNUX1Ao
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgICAgIDogcHVibGljIHRlc3RfY2Fz
ZV9uYW1lIHsgXAotICAgcHVibGljOiBcCi0gICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0
X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSgpIHt9IFwKLSAgICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHko
KTsgXAotICAgcHJpdmF0ZTogXAotICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgXAot
ICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFyYW1ldGVyaXplZF90
ZXN0X3JlZ2lzdHJ5KCkuIFwKLSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xkZXI8dGVz
dF9jYXNlX25hbWU+KFwKLSAgICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAg
ICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0gICAgICAgICAgICAg
ICAgICBfX0ZJTEVfXywgX19MSU5FX18pKS0+QWRkVGVzdFBhdHRlcm4oXAotICAgICAgICAgICAg
ICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8odGVzdF9jYXNlX25hbWUpLCBcCi0gICAgICAgICAg
ICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpLCBcCi0gICAgICAgICAgICAg
ICAgICAgICAgbmV3IDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlc3RNZXRhRmFjdG9yeTwgXAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKFwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpPigpKTsgXAot
ICAgICAgcmV0dXJuIDA7IFwKLSAgICB9IFwKLSAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVy
aW5nX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgXAotICAgIEdURVNUX0RJU0FMTE9X
X0NPUFlfQU5EX0FTU0lHTl8oXAotICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rf
Y2FzZV9uYW1lLCB0ZXN0X25hbWUpKTsgXAotICB9OyBcCi0gIGludCBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RfbmFtZSk6Omd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyA9IFwKLSAgICAgIEdURVNUX1RFU1Rf
Q0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OkFkZFRvUmVnaXN0cnkoKTsg
XAotICB2b2lkIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFt
ZSk6OlRlc3RCb2R5KCkKLQotLy8gVGhlIG9wdGlvbmFsIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1AgYWxsb3dzIHRoZSB1c2VyCi0vLyB0byBzcGVjaWZ5IGEgZnVuY3Rp
b24gb3IgZnVuY3RvciB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzCi0v
LyBiYXNlZCBvbiB0aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGFjY2Vw
dCBvbmUgYXJndW1lbnQgb2YKLS8vIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQ
YXJhbVR5cGU+LCBhbmQgcmV0dXJuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIHRlc3Rpbmc6OlByaW50
VG9TdHJpbmdQYXJhbU5hbWUgaXMgYSBidWlsdGluIHRlc3Qgc3VmZml4IGdlbmVyYXRvciB0aGF0
Ci0vLyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKEdldFBhcmFt
KCkpLgotLy8KLS8vIE5vdGU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1wdHksIHVuaXF1ZSwg
YW5kIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkKLS8vIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9y
IHVuZGVyc2NvcmUuIEJlY2F1c2UgUHJpbnRUb1N0cmluZyBhZGRzIHF1b3RlcwotLy8gdG8gc3Rk
OjpzdHJpbmcgYW5kIEMgc3RyaW5ncywgaXQgd29uJ3Qgd29yayBmb3IgdGhlc2UgdHlwZXMuCi0K
LSMgZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKHByZWZpeCwgdGVzdF9jYXNlX25hbWUs
IGdlbmVyYXRvciwgLi4uKSBcCi0gIHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdl
bmVyYXRvcjx0ZXN0X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiBcCi0gICAgICBndGVzdF8jI3ByZWZp
eCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdG9yXygpIHsgcmV0dXJuIGdlbmVyYXRvcjsg
fSBcCi0gIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFt
ZSMjX0V2YWxHZW5lcmF0ZU5hbWVfKCBcCi0gICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJh
bUluZm88dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4mIGluZm8pIHsgXAotICAgIHJldHVybiA6
OnRlc3Rpbmc6OmludGVybmFsOjpHZXRQYXJhbU5hbWVHZW48dGVzdF9jYXNlX25hbWU6OlBhcmFt
VHlwZT4gXAotICAgICAgICAoX19WQV9BUkdTX18pKGluZm8pOyBcCi0gIH0gXAotICBzdGF0aWMg
aW50IGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX2R1bW15XyBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXyA9IFwKLSAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
PnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpLiBcCi0gICAgICAgICAgR2V0VGVzdENhc2VQ
YXR0ZXJuSG9sZGVyPHRlc3RfY2FzZV9uYW1lPihcCi0gICAgICAgICAgICAgICN0ZXN0X2Nhc2Vf
bmFtZSwgXAotICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24o
XAotICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKSktPkFkZFRlc3RDYXNlSW5z
dGFudGlhdGlvbihcCi0gICAgICAgICAgICAgICAgICAgICAgI3ByZWZpeCwgXAotICAgICAgICAg
ICAgICAgICAgICAgICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJh
dG9yXywgXAotICAgICAgICAgICAgICAgICAgICAgICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNl
X25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXywgXAotICAgICAgICAgICAgICAgICAgICAgIF9fRklM
RV9fLCBfX0xJTkVfXykKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBH
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCA1
MTg2NWY4NGU2ZjZmYTNlMGZjZTE5ODcwMGI1YTVkZmU1ZjY1NTBlLi40NmZlODk1MGZlODhkZGQ4
ZDdiYzliZmMxZDcwOGMwYzkyOGEzMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wcmludGVycy5oCkBAIC05Nyw3NSArOTcsMTQx
IEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVT
VF9JTkNMVURFX0dURVNUX0dURVNUX1BSSU5URVJTX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfUFJJTlRFUlNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUklOVEVSU19IXwogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxtZW1vcnk+
CiAjaW5jbHVkZSA8b3N0cmVhbT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5j
bHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgog
I2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgImd0ZXN0L2lu
dGVybmFsL2d0ZXN0LXBvcnQuaCIKKwogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWlu
dGVybmFsLmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCi0jaWYg
R1RFU1RfSEFTX1NURF9UVVBMRV8KLSMgaW5jbHVkZSA8dHVwbGU+Ci0jZW5kaWYKLQotI2lmIEdU
RVNUX0hBU19BQlNMCi0jaW5jbHVkZSAiYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgiCi0jaW5j
bHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgotI2luY2x1ZGUgImFic2wvdHlwZXMvdmFyaWFu
dC5oIgotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0hBU19SVFRJCisjaW5j
bHVkZSA8dHlwZWluZGV4PgorI2luY2x1ZGUgPHR5cGVpbmZvPgorI2VuZGlmICAvLyBHVEVTVF9I
QVNfUlRUSQogCiBuYW1lc3BhY2UgdGVzdGluZyB7CiAKLS8vIERlZmluaXRpb25zIGluIHRoZSAn
aW50ZXJuYWwnIGFuZCAnaW50ZXJuYWwyJyBuYW1lIHNwYWNlcyBhcmUKLS8vIHN1YmplY3QgdG8g
Y2hhbmdlIHdpdGhvdXQgbm90aWNlLiAgRE8gTk9UIFVTRSBUSEVNIElOIFVTRVIgQ09ERSEKLW5h
bWVzcGFjZSBpbnRlcm5hbDIgeworLy8gRGVmaW5pdGlvbnMgaW4gdGhlIGludGVybmFsKiBuYW1l
c3BhY2VzIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KKy8vIERPIE5PVCBV
U0UgVEhFTSBJTiBVU0VSIENPREUhCituYW1lc3BhY2UgaW50ZXJuYWwgewogCi0vLyBQcmludHMg
dGhlIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIHRoZSBnaXZl
bgotLy8gb3N0cmVhbS4KLUdURVNUX0FQSV8gdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25z
dCB1bnNpZ25lZCBjaGFyKiBvYmpfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgVW5p
dmVyc2FsUHJpbnQoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiAKLS8vIEZv
ciBzZWxlY3Rpbmcgd2hpY2ggcHJpbnRlciB0byB1c2Ugd2hlbiBhIGdpdmVuIHR5cGUgaGFzIG5l
aXRoZXIgPDwKLS8vIG5vciBQcmludFRvKCkuCi1lbnVtIFR5cGVLaW5kIHsKLSAga1Byb3RvYnVm
LCAgICAgICAgICAgICAgLy8gYSBwcm90b2J1ZiB0eXBlCi0gIGtDb252ZXJ0aWJsZVRvSW50ZWdl
ciwgIC8vIGEgdHlwZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gYSBuYW1lZCBvciB1bm5hbWVkIGVudW0gdHlw
ZSkKLSNpZiBHVEVTVF9IQVNfQUJTTAotICBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXcsICAvLyBh
IHR5cGUgaW1wbGljaXRseSBjb252ZXJ0aWJsZSB0bwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBhYnNsOjpzdHJpbmdfdmlldwotI2VuZGlmCi0gIGtPdGhlclR5cGUgIC8vIGFueXRo
aW5nIGVsc2UKKy8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciB3aGVuIHRo
ZSB1c2VyIGRvZXNuJ3QgZGVmaW5lCisvLyBhIFByaW50VG8oKSBmb3IgaXQuCitzdHJ1Y3QgQ29u
dGFpbmVyUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlw
ZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAgICAgICAoc2l6ZW9m
KElzQ29udGFpbmVyVGVzdDxUPigwKSkgPT0gc2l6ZW9mKElzQ29udGFpbmVyKSkgJiYKKyAgICAg
ICAgICAgICAgICAhSXNSZWN1cnNpdmVDb250YWluZXI8VD46OnZhbHVlPjo6dHlwZT4KKyAgc3Rh
dGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiBjb250YWluZXIsIHN0ZDo6b3N0cmVhbSogb3Mp
IHsKKyAgICBjb25zdCBzaXplX3Qga01heENvdW50ID0gMzI7ICAvLyBUaGUgbWF4aW11bSBudW1i
ZXIgb2YgZWxlbWVudHMgdG8gcHJpbnQuCisgICAgKm9zIDw8ICd7JzsKKyAgICBzaXplX3QgY291
bnQgPSAwOworICAgIGZvciAoYXV0byYmIGVsZW0gOiBjb250YWluZXIpIHsKKyAgICAgIGlmIChj
b3VudCA+IDApIHsKKyAgICAgICAgKm9zIDw8ICcsJzsKKyAgICAgICAgaWYgKGNvdW50ID09IGtN
YXhDb3VudCkgeyAgLy8gRW5vdWdoIGhhcyBiZWVuIHByaW50ZWQuCisgICAgICAgICAgKm9zIDw8
ICIgLi4uIjsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgKm9z
IDw8ICcgJzsKKyAgICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8oZWxlbSwgb3MpIGhlcmUg
YXMgUHJpbnRUbygpIGRvZXNuJ3QKKyAgICAgIC8vIGhhbmRsZSBgZWxlbWAgYmVpbmcgYSBuYXRp
dmUgYXJyYXkuCisgICAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoZWxlbSwgb3MpOworICAg
ICAgKytjb3VudDsKKyAgICB9CisKKyAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAqb3MgPDwg
JyAnOworICAgIH0KKyAgICAqb3MgPDwgJ30nOworICB9CiB9OwogCi0vLyBUeXBlV2l0aG91dEZv
cm1hdHRlcjxULCBrVHlwZUtpbmQ+OjpQcmludFZhbHVlKHZhbHVlLCBvcykgaXMgY2FsbGVkCi0v
LyBieSB0aGUgdW5pdmVyc2FsIHByaW50ZXIgdG8gcHJpbnQgYSB2YWx1ZSBvZiB0eXBlIFQgd2hl
biBuZWl0aGVyCi0vLyBvcGVyYXRvcjw8IG5vciBQcmludFRvKCkgaXMgZGVmaW5lZCBmb3IgVCwg
d2hlcmUga1R5cGVLaW5kIGlzIHRoZQotLy8gImtpbmQiIG9mIFQgYXMgZGVmaW5lZCBieSBlbnVt
IFR5cGVLaW5kLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIFR5cGVLaW5kIGtUeXBlS2luZD4KLWNs
YXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyIHsKLSBwdWJsaWM6Ci0gIC8vIFRoaXMgZGVmYXVsdCB2
ZXJzaW9uIGlzIGNhbGxlZCB3aGVuIGtUeXBlS2luZCBpcyBrT3RoZXJUeXBlLgorLy8gVXNlZCB0
byBwcmludCBhIHBvaW50ZXIgdGhhdCBpcyBuZWl0aGVyIGEgY2hhciBwb2ludGVyIG5vciBhIG1l
bWJlcgorLy8gcG9pbnRlciwgd2hlbiB0aGUgdXNlciBkb2Vzbid0IGRlZmluZSBQcmludFRvKCkg
Zm9yIGl0LiAgKEEgbWVtYmVyCisvLyB2YXJpYWJsZSBwb2ludGVyIG9yIG1lbWJlciBmdW5jdGlv
biBwb2ludGVyIGRvZXNuJ3QgcmVhbGx5IHBvaW50IHRvCisvLyBhIGxvY2F0aW9uIGluIHRoZSBh
ZGRyZXNzIHNwYWNlLiAgVGhlaXIgcmVwcmVzZW50YXRpb24gaXMKKy8vIGltcGxlbWVudGF0aW9u
LWRlZmluZWQuICBUaGVyZWZvcmUgdGhleSB3aWxsIGJlIHByaW50ZWQgYXMgcmF3CisvLyBieXRl
cy4pCitzdHJ1Y3QgRnVuY3Rpb25Qb2ludGVyUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ZDo6aXNfZnVuY3Rpb248VD46OnZhbHVlPjo6dHlwZT4KKyAgc3RhdGlj
IHZvaWQgUHJpbnRWYWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9
PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAv
LyBUIGlzIGEgZnVuY3Rpb24gdHlwZSwgc28gJypvcyA8PCBwJyBkb2Vzbid0IGRvIHdoYXQgd2Ug
d2FudAorICAgICAgLy8gKGl0IGp1c3QgcHJpbnRzIHAgYXMgYm9vbCkuICBXZSB3YW50IHRvIHBy
aW50IHAgYXMgYSBjb25zdAorICAgICAgLy8gdm9pZCouCisgICAgICAqb3MgPDwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB2b2lkKj4ocCk7CisgICAgfQorICB9Cit9OworCitzdHJ1Y3QgUG9pbnRl
clByaW50ZXIgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIHZvaWQgUHJpbnRW
YWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7
CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAvLyBUIGlzIG5vdCBh
IGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwKKyAgICAgIC8vIHJl
bHlpbmcgb24gQURMIHRvIHBpY2sgdXAgdXNlci1kZWZpbmVkIDw8IGZvciB0aGVpciBwb2ludGVy
CisgICAgICAvLyB0eXBlcywgaWYgYW55LgorICAgICAgKm9zIDw8IHA7CisgICAgfQorICB9Cit9
OworCituYW1lc3BhY2UgaW50ZXJuYWxfc3RyZWFtX29wZXJhdG9yX3dpdGhvdXRfbGV4aWNhbF9u
YW1lX2xvb2t1cCB7CisKKy8vIFRoZSBwcmVzZW5jZSBvZiBhbiBvcGVyYXRvcjw8IGhlcmUgd2ls
bCB0ZXJtaW5hdGUgbGV4aWNhbCBzY29wZSBsb29rdXAKKy8vIHN0cmFpZ2h0IGF3YXkgKGV2ZW4g
dGhvdWdoIGl0IGNhbm5vdCBiZSBhIG1hdGNoIGJlY2F1c2Ugb2YgaXRzIGFyZ3VtZW50CisvLyB0
eXBlcykuIFRodXMsIHRoZSB0d28gb3BlcmF0b3I8PCBjYWxscyBpbiBTdHJlYW1QcmludGVyIHdp
bGwgZmluZCBvbmx5IEFETAorLy8gY2FuZGlkYXRlcy4KK3N0cnVjdCBMb29rdXBCbG9ja2VyIHt9
Owordm9pZCBvcGVyYXRvcjw8KExvb2t1cEJsb2NrZXIsIExvb2t1cEJsb2NrZXIpOworCitzdHJ1
Y3QgU3RyZWFtUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAg
Ly8gRG9uJ3QgYWNjZXB0IG1lbWJlciBwb2ludGVycyBoZXJlLiBXZSdkIHByaW50IHRoZW0gdmlh
IGltcGxpY2l0CisgICAgICAgICAgICAvLyBjb252ZXJzaW9uIHRvIGJvb2wsIHdoaWNoIGlzbid0
IHVzZWZ1bC4KKyAgICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8
CisgICAgICAgICAgICAgICAgIXN0ZDo6aXNfbWVtYmVyX3BvaW50ZXI8VD46OnZhbHVlPjo6dHlw
ZSwKKyAgICAgICAgICAgIC8vIE9ubHkgYWNjZXB0IHR5cGVzIGZvciB3aGljaCB3ZSBjYW4gZmlu
ZCBhIHN0cmVhbWluZyBvcGVyYXRvciB2aWEKKyAgICAgICAgICAgIC8vIEFETCAocG9zc2libHkg
aW52b2x2aW5nIGltcGxpY2l0IGNvbnZlcnNpb25zKS4KKyAgICAgICAgICAgIHR5cGVuYW1lID0g
ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPHN0ZDo6b3N0cmVhbSY+KCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgc3RkOjpkZWNsdmFsPGNvbnN0IFQmPigpKT4KICAgc3RhdGljIHZv
aWQgUHJpbnRWYWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAg
UHJpbnRCeXRlc0luT2JqZWN0VG8oc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQq
PigmdmFsdWUpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmFsdWUpLCBvcyk7
CisgICAgLy8gQ2FsbCBzdHJlYW1pbmcgb3BlcmF0b3IgZm91bmQgYnkgQURMLCBwb3NzaWJseSB3
aXRoIGltcGxpY2l0IGNvbnZlcnNpb25zCisgICAgLy8gb2YgdGhlIGFyZ3VtZW50cy4KKyAgICAq
b3MgPDwgdmFsdWU7CiAgIH0KIH07CiAKLS8vIFdlIHByaW50IGEgcHJvdG9idWYgdXNpbmcgaXRz
IFNob3J0RGVidWdTdHJpbmcoKSB3aGVuIHRoZSBzdHJpbmcKLS8vIGRvZXNuJ3QgZXhjZWVkIHRo
aXMgbWFueSBjaGFyYWN0ZXJzOyBvdGhlcndpc2Ugd2UgcHJpbnQgaXQgdXNpbmcKLS8vIERlYnVn
U3RyaW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KLWNvbnN0IHNpemVfdCBrUHJvdG9idWZP
bmVMaW5lck1heExlbmd0aCA9IDUwOworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsX3N0cmVhbV9v
cGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9sb29rdXAKIAotdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1jbGFzcyBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBrUHJvdG9idWY+IHsKLSBwdWJsaWM6
CitzdHJ1Y3QgUHJvdG9idWZQcmludGVyIHsKKyAgLy8gV2UgcHJpbnQgYSBwcm90b2J1ZiB1c2lu
ZyBpdHMgU2hvcnREZWJ1Z1N0cmluZygpIHdoZW4gdGhlIHN0cmluZworICAvLyBkb2Vzbid0IGV4
Y2VlZCB0aGlzIG1hbnkgY2hhcmFjdGVyczsgb3RoZXJ3aXNlIHdlIHByaW50IGl0IHVzaW5nCisg
IC8vIERlYnVnU3RyaW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KKyAgc3RhdGljIGNvbnN0
IHNpemVfdCBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCA9IDUwOworCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
ZjwKKyAgICAgICAgICAgICAgICBpbnRlcm5hbDo6SGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVn
U3RyaW5nPFQ+Ojp2YWx1ZT46OnR5cGU+CiAgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3Qg
VCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICAgIHN0ZDo6c3RyaW5nIHByZXR0eV9z
dHIgPSB2YWx1ZS5TaG9ydERlYnVnU3RyaW5nKCk7CiAgICAgaWYgKHByZXR0eV9zdHIubGVuZ3Ro
KCkgPiBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCkgewpAQCAtMTc1LDkgKzI0MSw3IEBAIGNs
YXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtQcm90b2J1Zj4gewogICB9CiB9OwogCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0
aWJsZVRvSW50ZWdlcj4gewotIHB1YmxpYzoKK3N0cnVjdCBDb252ZXJ0aWJsZVRvSW50ZWdlclBy
aW50ZXIgewogICAvLyBTaW5jZSBUIGhhcyBubyA8PCBvcGVyYXRvciBvciBQcmludFRvKCkgYnV0
IGNhbiBiZSBpbXBsaWNpdGx5CiAgIC8vIGNvbnZlcnRlZCB0byBCaWdnZXN0SW50LCB3ZSBwcmlu
dCBpdCBhcyBhIEJpZ2dlc3RJbnQuCiAgIC8vCkBAIC0xODUsMTEyICsyNDksNzMgQEAgY2xhc3Mg
VHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9JbnRlZ2VyPiB7CiAgIC8vIGNh
c2UgcHJpbnRpbmcgaXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvci4gIElu
IGNhc2UKICAgLy8gVCBpcyBub3QgYW4gZW51bSwgcHJpbnRpbmcgaXQgYXMgYW4gaW50ZWdlciBp
cyB0aGUgYmVzdCB3ZSBjYW4gZG8KICAgLy8gZ2l2ZW4gdGhhdCBpdCBoYXMgbm8gdXNlci1kZWZp
bmVkIHByaW50ZXIuCi0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewotICAgIGNvbnN0IGludGVybmFsOjpCaWdnZXN0SW50IGtCaWdJ
bnQgPSB2YWx1ZTsKLSAgICAqb3MgPDwga0JpZ0ludDsKKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1
ZShpbnRlcm5hbDo6QmlnZ2VzdEludCB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAg
Km9zIDw8IHZhbHVlOwogICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX0FCU0wKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotY2xhc3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9T
dHJpbmdWaWV3PiB7Ci0gcHVibGljOgotICAvLyBTaW5jZSBUIGhhcyBuZWl0aGVyIG9wZXJhdG9y
PDwgbm9yIFByaW50VG8oKSBidXQgY2FuIGJlIGltcGxpY2l0bHkKLSAgLy8gY29udmVydGVkIHRv
IGFic2w6OnN0cmluZ192aWV3LCB3ZSBwcmludCBpdCBhcyBhIGFic2w6OnN0cmluZ192aWV3Lgot
ICAvLwotICAvLyBOb3RlOiB0aGUgaW1wbGVtZW50YXRpb24gaXMgZnVydGhlciBiZWxvdywgYXMg
aXQgZGVwZW5kcyBvbgotICAvLyBpbnRlcm5hbDo6UHJpbnRUbyBzeW1ib2wgd2hpY2ggaXMgZGVm
aW5lZCBsYXRlciBpbiB0aGUgZmlsZS4KLSAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBU
JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLX07Ci0jZW5kaWYKLQotLy8gUHJpbnRzIHRo
ZSBnaXZlbiB2YWx1ZSB0byB0aGUgZ2l2ZW4gb3N0cmVhbS4gIElmIHRoZSB2YWx1ZSBpcyBhCi0v
LyBwcm90b2NvbCBtZXNzYWdlLCBpdHMgZGVidWcgc3RyaW5nIGlzIHByaW50ZWQ7IGlmIGl0J3Mg
YW4gZW51bSBvcgotLy8gb2YgYSB0eXBlIGltcGxpY2l0bHkgY29udmVydGlibGUgdG8gQmlnZ2Vz
dEludCwgaXQncyBwcmludGVkIGFzIGFuCi0vLyBpbnRlZ2VyOyBvdGhlcndpc2UgdGhlIGJ5dGVz
IGluIHRoZSB2YWx1ZSBhcmUgcHJpbnRlZC4gIFRoaXMgaXMKLS8vIHdoYXQgVW5pdmVyc2FsUHJp
bnRlcjxUPjo6UHJpbnQoKSBkb2VzIHdoZW4gaXQga25vd3Mgbm90aGluZyBhYm91dAotLy8gdHlw
ZSBUIGFuZCBUIGhhcyBuZWl0aGVyIDw8IG9wZXJhdG9yIG5vciBQcmludFRvKCkuCi0vLwotLy8g
QSB1c2VyIGNhbiBvdmVycmlkZSB0aGlzIGJlaGF2aW9yIGZvciBhIGNsYXNzIHR5cGUgRm9vIGJ5
IGRlZmluaW5nCi0vLyBhIDw8IG9wZXJhdG9yIGluIHRoZSBuYW1lc3BhY2Ugd2hlcmUgRm9vIGlz
IGRlZmluZWQuCi0vLwotLy8gV2UgcHV0IHRoaXMgb3BlcmF0b3IgaW4gbmFtZXNwYWNlICdpbnRl
cm5hbDInIGluc3RlYWQgb2YgJ2ludGVybmFsJwotLy8gdG8gc2ltcGxpZnkgdGhlIGltcGxlbWVu
dGF0aW9uLCBhcyBtdWNoIGNvZGUgaW4gJ2ludGVybmFsJyBuZWVkcyB0bwotLy8gdXNlIDw8IGlu
IFNUTCwgd2hpY2ggd291bGQgY29uZmxpY3Qgd2l0aCBvdXIgb3duIDw8IHdlcmUgaXQgZGVmaW5l
ZAotLy8gaW4gJ2ludGVybmFsJy4KLS8vCi0vLyBOb3RlIHRoYXQgdGhpcyBvcGVyYXRvcjw8IHRh
a2VzIGEgZ2VuZXJpYyBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwKLS8vIENoYXJUcmFpdHM+IHR5
cGUgaW5zdGVhZCBvZiB0aGUgbW9yZSByZXN0cmljdGVkIHN0ZDo6b3N0cmVhbS4gIElmCi0vLyB3
ZSBkZWZpbmUgaXQgdG8gdGFrZSBhbiBzdGQ6Om9zdHJlYW0gaW5zdGVhZCwgd2UnbGwgZ2V0IGFu
Ci0vLyAiYW1iaWd1b3VzIG92ZXJsb2FkcyIgY29tcGlsZXIgZXJyb3Igd2hlbiB0cnlpbmcgdG8g
cHJpbnQgYSB0eXBlCi0vLyBGb28gdGhhdCBzdXBwb3J0cyBzdHJlYW1pbmcgdG8gc3RkOjpiYXNp
Y19vc3RyZWFtPENoYXIsCi0vLyBDaGFyVHJhaXRzPiwgYXMgdGhlIGNvbXBpbGVyIGNhbm5vdCB0
ZWxsIHdoZXRoZXIKLS8vIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3QgVCYpIG9yCi0v
LyBvcGVyYXRvcjw8KHN0ZDo6YmFzaWNfc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+LCBjb25zdCBG
b28mKSBpcyBtb3JlCi0vLyBzcGVjaWZpYy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyLCB0eXBl
bmFtZSBDaGFyVHJhaXRzLCB0eXBlbmFtZSBUPgotOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwg
Q2hhclRyYWl0cz4mIG9wZXJhdG9yPDwoCi0gICAgOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwg
Q2hhclRyYWl0cz4mIG9zLCBjb25zdCBUJiB4KSB7Ci0gIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQs
IChpbnRlcm5hbDo6SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID8ga1Byb3RvYnVmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiBpbnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFQmLCBpbnRlcm5hbDo6QmlnZ2VzdEludD46OnZhbHVl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrQ29udmVydGlibGVUb0lu
dGVnZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Ci0jaWYgR1RFU1Rf
SEFTX0FCU0wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6
SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUJiwgYWJzbDo6c3RyaW5nX3ZpZXc+Ojp2YWx1ZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGtDb252ZXJ0aWJsZVRvU3RyaW5nVmlldwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CitzdHJ1Y3QgQ29udmVy
dGlibGVUb1N0cmluZ1ZpZXdQcmludGVyIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5H
X1ZJRVcKKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6U3RyaW5nVmlldyB2YWx1
ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KHZh
bHVlLCBvcyk7CisgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrT3RoZXJUeXBlKT46OlByaW50VmFsdWUoeCwgJm9zKTsKLSAgcmV0dXJuIG9zOwot
fQorfTsKIAotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotfSAgLy8gbmFtZXNwYWNlIHRlc3Rp
bmcKIAotLy8gVGhpcyBuYW1lc3BhY2UgTVVTVCBOT1QgQkUgTkVTVEVEIElOIDo6dGVzdGluZywg
b3IgdGhlIG5hbWUgbG9vay11cAotLy8gbWFnaWMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgVW5p
dmVyc2FsUHJpbnRlciB3b24ndCB3b3JrLgotbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwgewor
Ly8gUHJpbnRzIHRoZSBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGdpdmVuIG9iamVjdCB0
byB0aGUgZ2l2ZW4KKy8vIG9zdHJlYW0uCitHVEVTVF9BUElfIHZvaWQgUHJpbnRCeXRlc0luT2Jq
ZWN0VG8oY29uc3QgdW5zaWduZWQgY2hhciogb2JqX2J5dGVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpOworc3RydWN0IFJhd0J5dGVzUHJpbnRl
ciB7CisgIC8vIFNGSU5BRSBvbiBgc2l6ZW9mYCB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIGNvbXBs
ZXRlIHR5cGUuCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgPSBzaXplb2YoVCk+Cisg
IHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBv
cykgeworICAgIFByaW50Qnl0ZXNJbk9iamVjdFRvKAorICAgICAgICBzdGF0aWNfY2FzdDxjb25z
dCB1bnNpZ25lZCBjaGFyKj4oCisgICAgICAgICAgICAvLyBMb2FkIGJlYXJpbmcgY2FzdCB0byB2
b2lkKiB0byBzdXBwb3J0IGlPUworICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2
b2lkKj4oc3RkOjphZGRyZXNzb2YodmFsdWUpKSksCisgICAgICAgIHNpemVvZih2YWx1ZSksIG9z
KTsKKyAgfQorfTsKIAotLy8gVXNlZCB0byBwcmludCBhIHZhbHVlIHRoYXQgaXMgbm90IGFuIFNU
TC1zdHlsZSBjb250YWluZXIgd2hlbiB0aGUKLS8vIHVzZXIgZG9lc24ndCBkZWZpbmUgUHJpbnRU
bygpIGZvciBpdC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnROb25D
b250YWluZXJUbyhjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIC8vIFdp
dGggdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQsIGR1cmluZyB1bnF1YWxpZmllZCBuYW1lIGxvb2t1
cCwKLSAgLy8gdGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGFwcGVhcnMgYXMgaWYgaXQg
d2FzIGRlY2xhcmVkIGluCi0gIC8vIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBuYW1lc3BhY2UgdGhh
dCBjb250YWlucyBib3RoCi0gIC8vIDo6dGVzdGluZ19pbnRlcm5hbCBhbmQgOjp0ZXN0aW5nOjpp
bnRlcm5hbDIsIGkuZS4gdGhlIGdsb2JhbAotICAvLyBuYW1lc3BhY2UuICBGb3IgbW9yZSBkZXRh
aWxzLCByZWZlciB0byB0aGUgQysrIFN0YW5kYXJkIHNlY3Rpb24KLSAgLy8gNy4zLjQtMSBbbmFt
ZXNwYWNlLnVkaXJdLiAgVGhpcyBhbGxvd3MgdXMgdG8gZmFsbCBiYWNrIG9udG8KLSAgLy8gdGVz
dGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGluIGNhc2UgVCBkb2Vzbid0IGNvbWUgd2l0aCBh
IDw8Ci0gIC8vIG9wZXJhdG9yLgotICAvLwotICAvLyBXZSBjYW5ub3Qgd3JpdGUgJ3VzaW5nIDo6
dGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8OycsIHdoaWNoCi0gIC8vIGdjYyAzLjMgZmFp
bHMgdG8gY29tcGlsZSBkdWUgdG8gYSBjb21waWxlciBidWcuCi0gIHVzaW5nIG5hbWVzcGFjZSA6
OnRlc3Rpbmc6OmludGVybmFsMjsgIC8vIE5PTElOVAorc3RydWN0IEZhbGxiYWNrUHJpbnRlciB7
CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0
IFQmLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgIihpbmNvbXBsZXRlIHR5cGUp
IjsKKyAgfQorfTsKIAotICAvLyBBc3N1bWluZyBUIGlzIGRlZmluZWQgaW4gbmFtZXNwYWNlIGZv
bywgaW4gdGhlIG5leHQgc3RhdGVtZW50LAotICAvLyB0aGUgY29tcGlsZXIgd2lsbCBjb25zaWRl
ciBhbGwgb2Y6Ci0gIC8vCi0gIC8vICAgMS4gZm9vOjpvcGVyYXRvcjw8ICh0aGFua3MgdG8gS29l
bmlnIGxvb2stdXApLAotICAvLyAgIDIuIDo6b3BlcmF0b3I8PCAoYXMgdGhlIGN1cnJlbnQgbmFt
ZXNwYWNlIGlzIGVuY2xvc2VkIGluIDo6KSwKLSAgLy8gICAzLiB0ZXN0aW5nOjppbnRlcm5hbDI6
Om9wZXJhdG9yPDwgKHRoYW5rcyB0byB0aGUgdXNpbmcgc3RhdGVtZW50IGFib3ZlKS4KLSAgLy8K
LSAgLy8gVGhlIG9wZXJhdG9yPDwgd2hvc2UgdHlwZSBtYXRjaGVzIFQgYmVzdCB3aWxsIGJlIHBp
Y2tlZC4KLSAgLy8KLSAgLy8gV2UgZGVsaWJlcmF0ZWx5IGFsbG93ICMyIHRvIGJlIGEgY2FuZGlk
YXRlLCBhcyBzb21ldGltZXMgaXQncwotICAvLyBpbXBvc3NpYmxlIHRvIGRlZmluZSAjMSAoZS5n
LiB3aGVuIGZvbyBpcyA6OnN0ZCwgZGVmaW5pbmcKLSAgLy8gYW55dGhpbmcgaW4gaXQgaXMgdW5k
ZWZpbmVkIGJlaGF2aW9yIHVubGVzcyB5b3UgYXJlIGEgY29tcGlsZXIKLSAgLy8gdmVuZG9yLiku
Ci0gICpvcyA8PCB2YWx1ZTsKLX0KKy8vIFRyeSBldmVyeSBwcmludGVyIGluIG9yZGVyIGFuZCBy
ZXR1cm4gdGhlIGZpcnN0IG9uZSB0aGF0IHdvcmtzLgordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIEUsIHR5cGVuYW1lIFByaW50ZXIsIHR5cGVuYW1lLi4uIFByaW50ZXJzPgorc3RydWN0
IEZpbmRGaXJzdFByaW50ZXIgOiBGaW5kRmlyc3RQcmludGVyPFQsIEUsIFByaW50ZXJzLi4uPiB7
fTsKIAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBQcmludGVyLCB0eXBlbmFtZS4uLiBQcmludGVycz4KK3N0cnVjdCBGaW5k
Rmlyc3RQcmludGVyPAorICAgIFQsIGRlY2x0eXBlKFByaW50ZXI6OlByaW50VmFsdWUoc3RkOjpk
ZWNsdmFsPGNvbnN0IFQmPigpLCBudWxscHRyKSksCisgICAgUHJpbnRlciwgUHJpbnRlcnMuLi4+
IHsKKyAgdXNpbmcgdHlwZSA9IFByaW50ZXI7Cit9OwogCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1u
YW1lc3BhY2UgaW50ZXJuYWwgeworLy8gU2VsZWN0IHRoZSBiZXN0IHByaW50ZXIgaW4gdGhlIGZv
bGxvd2luZyBvcmRlcjoKKy8vICAtIFByaW50IGNvbnRhaW5lcnMgKHRoZXkgaGF2ZSBiZWdpbi9l
bmQvZXRjKS4KKy8vICAtIFByaW50IGZ1bmN0aW9uIHBvaW50ZXJzLgorLy8gIC0gUHJpbnQgb2Jq
ZWN0IHBvaW50ZXJzLgorLy8gIC0gVXNlIHRoZSBzdHJlYW0gb3BlcmF0b3IsIGlmIGF2YWlsYWJs
ZS4KKy8vICAtIFByaW50IHByb3RvY29sIGJ1ZmZlcnMuCisvLyAgLSBQcmludCB0eXBlcyBjb252
ZXJ0aWJsZSB0byBCaWdnZXN0SW50LgorLy8gIC0gUHJpbnQgdHlwZXMgY29udmVydGlibGUgdG8g
U3RyaW5nVmlldywgaWYgYXZhaWxhYmxlLgorLy8gIC0gRmFsbGJhY2sgdG8gcHJpbnRpbmcgdGhl
IHJhdyBieXRlcyBvZiB0aGUgb2JqZWN0LgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIFBy
aW50V2l0aEZhbGxiYWNrKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAg
dXNpbmcgUHJpbnRlciA9IHR5cGVuYW1lIEZpbmRGaXJzdFByaW50ZXI8CisgICAgICBULCB2b2lk
LCBDb250YWluZXJQcmludGVyLCBGdW5jdGlvblBvaW50ZXJQcmludGVyLCBQb2ludGVyUHJpbnRl
ciwKKyAgICAgIGludGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9s
b29rdXA6OlN0cmVhbVByaW50ZXIsCisgICAgICBQcm90b2J1ZlByaW50ZXIsIENvbnZlcnRpYmxl
VG9JbnRlZ2VyUHJpbnRlciwKKyAgICAgIENvbnZlcnRpYmxlVG9TdHJpbmdWaWV3UHJpbnRlciwg
UmF3Qnl0ZXNQcmludGVyLCBGYWxsYmFja1ByaW50ZXI+Ojp0eXBlOworICBQcmludGVyOjpQcmlu
dFZhbHVlKHZhbHVlLCBvcyk7Cit9CiAKIC8vIEZvcm1hdEZvckNvbXBhcmlzb248VG9QcmludCwg
T3RoZXJPcGVyYW5kPjo6Rm9ybWF0KHZhbHVlKSBmb3JtYXRzIGEKIC8vIHZhbHVlIG9mIHR5cGUg
VG9QcmludCB0aGF0IGlzIGFuIG9wZXJhbmQgb2YgYSBjb21wYXJpc29uIGFzc2VydGlvbgpAQCAt
MzQwLDYgKzM2NSwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhj
aGFyKTsKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNoYXIp
OwogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8od2NoYXJfdCk7CiBHVEVT
VF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hhcl90KTsKKyNpZmRl
ZiBfX2NwcF9jaGFyOF90CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhj
aGFyOF90KTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNo
YXI4X3QpOworI2VuZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhj
aGFyMTZfdCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBj
aGFyMTZfdCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyMzJf
dCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyMzJf
dCk7CiAKICN1bmRlZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXwogCkBA
IC0zNTcsMTYgKzM5MCwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVS
Xyhjb25zdCB3Y2hhcl90KTsKIAogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
XyhjaGFyLCA6OnN0ZDo6c3RyaW5nKTsKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NU
UklOR18oY29uc3QgY2hhciwgOjpzdGQ6OnN0cmluZyk7Ci0KLSNpZiBHVEVTVF9IQVNfR0xPQkFM
X1NUUklORwotR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0
cmluZyk7Ci1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIs
IDo6c3RyaW5nKTsKLSNlbmRpZgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi1HVEVT
VF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKHdjaGFyX3QsIDo6d3N0cmluZyk7Ci1H
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IHdjaGFyX3QsIDo6d3N0
cmluZyk7CisjaWZkZWYgX19jcHBfY2hhcjhfdAorR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdf
QVNfU1RSSU5HXyhjaGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRf
Q19TVFJJTkdfQVNfU1RSSU5HXyhjb25zdCBjaGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOwogI2Vu
ZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNoYXIxNl90LCA6OnN0
ZDo6dTE2c3RyaW5nKTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29u
c3QgY2hhcjE2X3QsIDo6c3RkOjp1MTZzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJ
TkdfQVNfU1RSSU5HXyhjaGFyMzJfdCwgOjpzdGQ6OnUzMnN0cmluZyk7CitHVEVTVF9JTVBMX0ZP
Uk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIzMl90LCA6OnN0ZDo6dTMyc3RyaW5n
KTsKIAogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJ
TkdfQVNfU1RSSU5HXyh3Y2hhcl90LCA6OnN0ZDo6d3N0cmluZyk7CkBAIC0zOTksODUgKzQzMCw2
IEBAIHN0ZDo6c3RyaW5nIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSgKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjsKIAotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci12b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0
cmVhbSogb3MpOwotCi1lbnVtIERlZmF1bHRQcmludGVyVHlwZSB7Ci0gIGtQcmludENvbnRhaW5l
ciwKLSAga1ByaW50UG9pbnRlciwKLSAga1ByaW50RnVuY3Rpb25Qb2ludGVyLAotICBrUHJpbnRP
dGhlciwKLX07Ci10ZW1wbGF0ZSA8RGVmYXVsdFByaW50ZXJUeXBlIHR5cGU+IHN0cnVjdCBXcmFw
UHJpbnRlclR5cGUge307Ci0KLS8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5l
ciB3aGVuIHRoZSB1c2VyIGRvZXNuJ3QgZGVmaW5lCi0vLyBhIFByaW50VG8oKSBmb3IgaXQuCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBl
PGtQcmludENvbnRhaW5lcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0
IEMmIGNvbnRhaW5lciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGNvbnN0IHNpemVfdCBrTWF4
Q291bnQgPSAzMjsgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyB0byBwcmludC4K
LSAgKm9zIDw8ICd7JzsKLSAgc2l6ZV90IGNvdW50ID0gMDsKLSAgZm9yICh0eXBlbmFtZSBDOjpj
b25zdF9pdGVyYXRvciBpdCA9IGNvbnRhaW5lci5iZWdpbigpOwotICAgICAgIGl0ICE9IGNvbnRh
aW5lci5lbmQoKTsgKytpdCwgKytjb3VudCkgewotICAgIGlmIChjb3VudCA+IDApIHsKLSAgICAg
ICpvcyA8PCAnLCc7Ci0gICAgICBpZiAoY291bnQgPT0ga01heENvdW50KSB7ICAvLyBFbm91Z2gg
aGFzIGJlZW4gcHJpbnRlZC4KLSAgICAgICAgKm9zIDw8ICIgLi4uIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICB9Ci0gICAgfQotICAgICpvcyA8PCAnICc7Ci0gICAgLy8gV2UgY2Fubm90IGNhbGwg
UHJpbnRUbygqaXQsIG9zKSBoZXJlIGFzIFByaW50VG8oKSBkb2Vzbid0Ci0gICAgLy8gaGFuZGxl
ICppdCBiZWluZyBhIG5hdGl2ZSBhcnJheS4KLSAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQo
Kml0LCBvcyk7Ci0gIH0KLQotICBpZiAoY291bnQgPiAwKSB7Ci0gICAgKm9zIDw8ICcgJzsKLSAg
fQotICAqb3MgPDwgJ30nOwotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgcG9pbnRlciB0aGF0IGlz
IG5laXRoZXIgYSBjaGFyIHBvaW50ZXIgbm9yIGEgbWVtYmVyCi0vLyBwb2ludGVyLCB3aGVuIHRo
ZSB1c2VyIGRvZXNuJ3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuICAoQSBtZW1iZXIKLS8vIHZh
cmlhYmxlIHBvaW50ZXIgb3IgbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXIgZG9lc24ndCByZWFsbHkg
cG9pbnQgdG8KLS8vIGEgbG9jYXRpb24gaW4gdGhlIGFkZHJlc3Mgc3BhY2UuICBUaGVpciByZXBy
ZXNlbnRhdGlvbiBpcwotLy8gaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gIFRoZXJlZm9yZSB0aGV5
IHdpbGwgYmUgcHJpbnRlZCBhcyByYXcKLS8vIGJ5dGVzLikKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50UG9pbnRlcj4gLyog
ZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIFQqIHAsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewotICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAg
ICAvLyBUIGlzIG5vdCBhIGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQg
cCwKLSAgICAvLyByZWx5aW5nIG9uIEFETCB0byBwaWNrIHVwIHVzZXItZGVmaW5lZCA8PCBmb3Ig
dGhlaXIgcG9pbnRlcgotICAgIC8vIHR5cGVzLCBpZiBhbnkuCi0gICAgKm9zIDw8IHA7Ci0gIH0K
LX0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRl
clR5cGU8a1ByaW50RnVuY3Rpb25Qb2ludGVyPiAvKiBkdW1teSAqLywKLSAgICAgICAgICAgICAg
ICAgICAgVCogcCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGlmIChwID09IE5VTEwpIHsKLSAg
ICAqb3MgPDwgIk5VTEwiOwotICB9IGVsc2UgewotICAgIC8vIFQgaXMgYSBmdW5jdGlvbiB0eXBl
LCBzbyAnKm9zIDw8IHAnIGRvZXNuJ3QgZG8gd2hhdCB3ZSB3YW50Ci0gICAgLy8gKGl0IGp1c3Qg
cHJpbnRzIHAgYXMgYm9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBjb25zdAotICAgIC8v
IHZvaWQqLgotICAgICpvcyA8PCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihwKTsKLSAg
fQotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgbm9uLWNvbnRhaW5lciwgbm9uLXBvaW50ZXIgdmFs
dWUgd2hlbiB0aGUgdXNlcgotLy8gZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8
a1ByaW50T3RoZXI+IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2
YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIDo6dGVzdGluZ19pbnRlcm5hbDo6RGVmYXVs
dFByaW50Tm9uQ29udGFpbmVyVG8odmFsdWUsIG9zKTsKLX0KLQogLy8gUHJpbnRzIHRoZSBnaXZl
biB2YWx1ZSB1c2luZyB0aGUgPDwgb3BlcmF0b3IgaWYgaXQgaGFzIG9uZTsKIC8vIG90aGVyd2lz
ZSBwcmludHMgdGhlIGJ5dGVzIGluIGl0LiAgVGhpcyBpcyB3aGF0CiAvLyBVbml2ZXJzYWxQcmlu
dGVyPFQ+OjpQcmludCgpIGRvZXMgd2hlbiBQcmludFRvKCkgaXMgbm90IHNwZWNpYWxpemVkCkBA
IC00OTEsNDAgKzQ0Myw3IEBAIHZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQ
cmludE90aGVyPiAvKiBkdW1teSAqLywKIC8vIHdhbnRzKS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgogdm9pZCBQcmludFRvKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
Ly8gRGVmYXVsdFByaW50VG8oKSBpcyBvdmVybG9hZGVkLiAgVGhlIHR5cGUgb2YgaXRzIGZpcnN0
IGFyZ3VtZW50Ci0gIC8vIGRldGVybWluZXMgd2hpY2ggdmVyc2lvbiB3aWxsIGJlIHBpY2tlZC4K
LSAgLy8KLSAgLy8gTm90ZSB0aGF0IHdlIGNoZWNrIGZvciBjb250YWluZXIgdHlwZXMgaGVyZSwg
cHJpb3IgdG8gd2UgY2hlY2sKLSAgLy8gZm9yIHByb3RvY29sIG1lc3NhZ2UgdHlwZXMgaW4gb3Vy
IG9wZXJhdG9yPDwuICBUaGUgcmF0aW9uYWxlIGlzOgotICAvLwotICAvLyBGb3IgcHJvdG9jb2wg
bWVzc2FnZXMsIHdlIHdhbnQgdG8gZ2l2ZSBwZW9wbGUgYSBjaGFuY2UgdG8KLSAgLy8gb3ZlcnJp
ZGUgR29vZ2xlIE1vY2sncyBmb3JtYXQgYnkgZGVmaW5pbmcgYSBQcmludFRvKCkgb3IKLSAgLy8g
b3BlcmF0b3I8PC4gIEZvciBTVEwgY29udGFpbmVycywgb3RoZXIgZm9ybWF0cyBjYW4gYmUKLSAg
Ly8gaW5jb21wYXRpYmxlIHdpdGggR29vZ2xlIE1vY2sncyBmb3JtYXQgZm9yIHRoZSBjb250YWlu
ZXIKLSAgLy8gZWxlbWVudHM7IHRoZXJlZm9yZSB3ZSBjaGVjayBmb3IgY29udGFpbmVyIHR5cGVz
IGhlcmUgdG8gZW5zdXJlCi0gIC8vIHRoYXQgb3VyIGZvcm1hdCBpcyB1c2VkLgotICAvLwotICAv
LyBOb3RlIHRoYXQgTVNWQyBhbmQgY2xhbmctY2wgZG8gYWxsb3cgYW4gaW1wbGljaXQgY29udmVy
c2lvbiBmcm9tCi0gIC8vIHBvaW50ZXItdG8tZnVuY3Rpb24gdG8gcG9pbnRlci10by1vYmplY3Qs
IGJ1dCBjbGFuZy1jbCB3YXJucyBvbiBpdC4KLSAgLy8gU28gZG9uJ3QgdXNlIEltcGxpY2l0bHlD
b252ZXJ0aWJsZSBpZiBpdCBjYW4gYmUgaGVscGVkIHNpbmNlIGl0IHdpbGwKLSAgLy8gY2F1c2Ug
dGhpcyB3YXJuaW5nLCBhbmQgdXNlIGEgc2VwYXJhdGUgb3ZlcmxvYWQgb2YgRGVmYXVsdFByaW50
VG8gZm9yCi0gIC8vIGZ1bmN0aW9uIHBvaW50ZXJzIHNvIHRoYXQgdGhlIGAqb3MgPDwgcGAgaW4g
dGhlIG9iamVjdCBwb2ludGVyIG92ZXJsb2FkCi0gIC8vIGRvZXNuJ3QgY2F1c2UgdGhhdCB3YXJu
aW5nIGVpdGhlci4KLSAgRGVmYXVsdFByaW50VG8oCi0gICAgICBXcmFwUHJpbnRlclR5cGUgPAot
ICAgICAgICAgICAgICAgICAgKHNpemVvZihJc0NvbnRhaW5lclRlc3Q8VD4oMCkpID09IHNpemVv
ZihJc0NvbnRhaW5lcikpICYmCi0gICAgICAgICAgICAgICFJc1JlY3Vyc2l2ZUNvbnRhaW5lcjxU
Pjo6dmFsdWUKLSAgICAgICAgICA/IGtQcmludENvbnRhaW5lcgotICAgICAgICAgIDogIWlzX3Bv
aW50ZXI8VD46OnZhbHVlCi0gICAgICAgICAgICAgICAgPyBrUHJpbnRPdGhlcgotI2lmIEdURVNU
X0xBTkdfQ1hYMTEKLSAgICAgICAgICAgICAgICA6IHN0ZDo6aXNfZnVuY3Rpb248dHlwZW5hbWUg
c3RkOjpyZW1vdmVfcG9pbnRlcjxUPjo6dHlwZT46OnZhbHVlCi0jZWxzZQotICAgICAgICAgICAg
ICAgIDogIWludGVybmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgY29uc3Qgdm9pZCo+Ojp2
YWx1ZQotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgPyBrUHJpbnRGdW5jdGlvblBvaW50
ZXIKLSAgICAgICAgICAgICAgICAgICAgICA6IGtQcmludFBvaW50ZXIgPiAoKSwKLSAgICAgIHZh
bHVlLCBvcyk7CisgIGludGVybmFsOjpQcmludFdpdGhGYWxsYmFjayh2YWx1ZSwgb3MpOwogfQog
CiAvLyBUaGUgZm9sbG93aW5nIGxpc3Qgb2YgUHJpbnRUbygpIG92ZXJsb2FkcyB0ZWxscwpAQCAt
NTU1LDYgKzQ3NCwxNiBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGJvb2wgeCwgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7CiAvLyBpcyBpbXBsZW1lbnRlZCBhcyBhbiB1bnNpZ25lZCB0eXBlLgogR1RFU1Rf
QVBJXyB2b2lkIFByaW50VG8od2NoYXJfdCB3YywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAorR1RF
U1RfQVBJXyB2b2lkIFByaW50VG8oY2hhcjMyX3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lu
bGluZSB2b2lkIFByaW50VG8oY2hhcjE2X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFBy
aW50VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNpZmRlZiBfX2NwcF9j
aGFyOF90CitpbmxpbmUgdm9pZCBQcmludFRvKGNoYXI4X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNlbmRp
ZgorCiAvLyBPdmVybG9hZHMgZm9yIEMgc3RyaW5ncy4KIEdURVNUX0FQSV8gdm9pZCBQcmludFRv
KGNvbnN0IGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQcmludFRv
KGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNTc1LDYgKzUwNCwyMyBAQCBpbmxp
bmUgdm9pZCBQcmludFRvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBv
cykgewogaW5saW5lIHZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKICAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwog
fQorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIE92ZXJsb2FkcyBmb3IgdTggc3RyaW5ncy4KK3Zv
aWQgUHJpbnRUbyhjb25zdCBjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5l
IHZvaWQgUHJpbnRUbyhjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgUHJpbnRU
byhJbXBsaWNpdENhc3RfPGNvbnN0IGNoYXI4X3QqPihzKSwgb3MpOworfQorI2VuZGlmCisvLyBP
dmVybG9hZHMgZm9yIHUxNiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0IGNoYXIxNl90KiBz
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyMTZfdCogcywg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCBjaGFy
MTZfdCo+KHMpLCBvcyk7Cit9CisvLyBPdmVybG9hZHMgZm9yIHUzMiBzdHJpbmdzLgordm9pZCBQ
cmludFRvKGNvbnN0IGNoYXIzMl90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZv
aWQgUHJpbnRUbyhjaGFyMzJfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8o
SW1wbGljaXRDYXN0Xzxjb25zdCBjaGFyMzJfdCo+KHMpLCBvcyk7Cit9CiAKIC8vIE1TVkMgY2Fu
IGJlIGNvbmZpZ3VyZWQgdG8gZGVmaW5lIHdjaGFyX3QgYXMgYSB0eXBlZGVmIG9mIHVuc2lnbmVk
CiAvLyBzaG9ydC4gIEl0IGRlZmluZXMgX05BVElWRV9XQ0hBUl9UX0RFRklORUQgd2hlbiB3Y2hh
cl90IGlzIGEgbmF0aXZlCkBAIC02MDMsMjcgKzU0OSwzMyBAQCB2b2lkIFByaW50UmF3QXJyYXlU
byhjb25zdCBUIGFbXSwgc2l6ZV90IGNvdW50LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgfQog
fQogCi0vLyBPdmVybG9hZHMgZm9yIDo6c3RyaW5nIGFuZCA6OnN0ZDo6c3RyaW5nLgotI2lmIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhjb25z
dCA6OnN0cmluZyZzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhj
b25zdCA6OnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50U3RyaW5nVG8o
cywgb3MpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCisvLyBPdmVy
bG9hZHMgZm9yIDo6c3RkOjpzdHJpbmcuCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhj
b25zdCA6OnN0ZDo6c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICBQ
cmludFN0cmluZ1RvKHMsIG9zKTsKIH0KIAotLy8gT3ZlcmxvYWRzIGZvciA6OndzdHJpbmcgYW5k
IDo6c3RkOjp3c3RyaW5nLgotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotR1RFU1RfQVBJ
XyB2b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyZzLCA6OnN0ZDo6b3N0cmVh
bSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OndzdHJpbmcmIHMsIDo6c3RkOjpv
c3RyZWFtKiBvcykgewotICBQcmludFdpZGVTdHJpbmdUbyhzLCBvcyk7CisvLyBPdmVybG9hZHMg
Zm9yIDo6c3RkOjp1OHN0cmluZworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK0dURVNUX0FQSV8gdm9p
ZCBQcmludFU4U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVh
bSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dThzdHJpbmcmIHMsIDo6
c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFU4U3RyaW5nVG8ocywgb3MpOworfQorI2VuZGlm
CisKKy8vIE92ZXJsb2FkcyBmb3IgOjpzdGQ6OnUxNnN0cmluZworR1RFU1RfQVBJXyB2b2lkIFBy
aW50VTE2U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0q
IG9zKTsKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VTE2U3RyaW5nVG8ocywgb3MpOworfQorCisvLyBP
dmVybG9hZHMgZm9yIDo6c3RkOjp1MzJzdHJpbmcKK0dURVNUX0FQSV8gdm9pZCBQcmludFUzMlN0
cmluZ1RvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7Citp
bmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgeworICBQcmludFUzMlN0cmluZ1RvKHMsIG9zKTsKIH0KLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX0dMT0JBTF9XU1RSSU5HCiAKKy8vIE92ZXJsb2FkcyBmb3IgOjpzdGQ6OndzdHJpbmcu
CiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRXaWRlU3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIGlubGlu
ZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBv
cykgewpAQCAtNjMxLDEwNiArNTgzLDgyIEBAIGlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpz
dGQ6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogfQogI2VuZGlmICAvLyBHVEVT
VF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19BQlNMCi0vLyBPdmVybG9hZCBmb3Ig
YWJzbDo6c3RyaW5nX3ZpZXcuCi1pbmxpbmUgdm9pZCBQcmludFRvKGFic2w6OnN0cmluZ192aWV3
IHNwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5H
X1ZJRVcKKy8vIE92ZXJsb2FkIGZvciBpbnRlcm5hbDo6U3RyaW5nVmlldy4KK2lubGluZSB2b2lk
IFByaW50VG8oaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3AsIDo6c3RkOjpvc3RyZWFtKiBvcykgewog
ICBQcmludFRvKDo6c3RkOjpzdHJpbmcoc3ApLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hB
U19BQlNMCisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCi0jaWYg
R1RFU1RfTEFOR19DWFgxMQogaW5saW5lIHZvaWQgUHJpbnRUbyhzdGQ6Om51bGxwdHJfdCwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7ICpvcyA8PCAiKG51bGxwdHIpIjsgfQotI2VuZGlmICAvLyBHVEVT
VF9MQU5HX0NYWDExCiAKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERf
VFVQTEVfCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEgdHVwbGUuICBUIG11c3Qg
YmUgaW5zdGFudGlhdGVkIHdpdGgKLS8vIGEgdHVwbGUgdHlwZS4KIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotdm9pZCBQcmludFR1cGxlVG8oY29uc3QgVCYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwot
Ci0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotLy8gT3ZlcmxvYWQgZm9yIDo6c3RkOjp0cjE6OnR1
cGxlLiAgTmVlZGVkIGZvciBwcmludGluZyBmdW5jdGlvbiBhcmd1bWVudHMsCi0vLyB3aGljaCBh
cmUgcGFja2VkIGFzIHR1cGxlcy4KLQotLy8gT3ZlcmxvYWRlZCBQcmludFRvKCkgZm9yIHR1cGxl
cyBvZiB2YXJpb3VzIGFyaXRpZXMuICBXZSBzdXBwb3J0Ci0vLyB0dXBsZXMgb2YgdXAtdG8gMTAg
ZmllbGRzLiAgVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3b3JrcwotLy8gcmVnYXJkbGVz
cyBvZiB3aGV0aGVyIHRyMTo6dHVwbGUgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlCi0vLyBub24t
c3RhbmRhcmQgdmFyaWFkaWMgdGVtcGxhdGUgZmVhdHVyZSBvciBub3QuCi0KLWlubGluZSB2b2lk
IFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8PiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4K
LXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMT4mIHQsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyPgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxl
PFQxLCBUMj4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3Mp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4K
LXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzPiYgdCwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLXZv
aWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4mIHQsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwordm9pZCBQcmludFRv
KHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gcmVmLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAg
VW5pdmVyc2FsUHJpbnRlcjxUJj46OlByaW50KHJlZi5nZXQoKSwgb3MpOwogfQogCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwg
VDMsIFQ0LCBUNT4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFBy
aW50VHVwbGVUbyh0LCBvcyk7CitpbmxpbmUgY29uc3Qgdm9pZCogVm9pZGlmeVBvaW50ZXIoY29u
c3Qgdm9pZCogcCkgeyByZXR1cm4gcDsgfQoraW5saW5lIGNvbnN0IHZvaWQqIFZvaWRpZnlQb2lu
dGVyKHZvbGF0aWxlIGNvbnN0IHZvaWQqIHApIHsKKyAgcmV0dXJuIGNvbnN0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KHApOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2
Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDY+JiB0LAotICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1
cGxlVG8odCwgb3MpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0cj4KK3ZvaWQg
UHJpbnRTbWFydFBvaW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGNoYXIp
IHsKKyAgaWYgKHB0ciA9PSBudWxscHRyKSB7CisgICAgKm9zIDw8ICIobnVsbHB0cikiOworICB9
IGVsc2UgeworICAgIC8vIFdlIGNhbid0IHByaW50IHRoZSB2YWx1ZS4gSnVzdCBwcmludCB0aGUg
cG9pbnRlci4uCisgICAgKm9zIDw8ICIoIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQoKSkg
PDwgIikiOworICB9CiB9Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0
eXBlbmFtZSBQdHIsCisgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
Zjwhc3RkOjppc192b2lkPFQ+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIXN0ZDo6aXNfYXJyYXk8VD46OnZhbHVlPjo6dHlwZT4KK3ZvaWQg
UHJpbnRTbWFydFBvaW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGludCkg
eworICBpZiAocHRyID09IG51bGxwdHIpIHsKKyAgICAqb3MgPDwgIihudWxscHRyKSI7CisgIH0g
ZWxzZSB7CisgICAgKm9zIDw8ICIocHRyID0gIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQo
KSkgPDwgIiwgdmFsdWUgPSAiOworICAgIFVuaXZlcnNhbFByaW50ZXI8VD46OlByaW50KCpwdHIs
IG9zKTsKKyAgICAqb3MgPDwgIikiOworICB9CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
ICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLXZvaWQgUHJpbnRU
byhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+
JiB0LAotICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8o
dCwgb3MpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+Cit2b2lkIFByaW50VG8o
Y29uc3Qgc3RkOjp1bmlxdWVfcHRyPFQsIEQ+JiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKKyAg
KFByaW50U21hcnRQb2ludGVyPFQ+KShwdHIsIG9zLCAwKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICAgICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOT4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgor
dm9pZCBQcmludFRvKGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxUPiYgcHRyLCBzdGQ6Om9zdHJlYW0q
IG9zKSB7CisgIChQcmludFNtYXJ0UG9pbnRlcjxUPikocHRyLCBvcywgMCk7CiB9CiAKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLXZvaWQgUHJpbnRUbygKLSAgICBjb25z
dCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTA+JiB0LAotICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3Mp
OworLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLiAgVCBtdXN0IGJlIGlu
c3RhbnRpYXRlZCB3aXRoCisvLyBhIHR1cGxlIHR5cGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
K3ZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVf
dCwgMD4sCisgICAgICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSopIHt9CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBULCBzaXplX3QgST4KK3ZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmIHQsIHN0
ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBJPiwKKyAgICAgICAgICAgICAgICAgIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgeworICBQcmludFR1cGxlVG8odCwgc3RkOjppbnRlZ3JhbF9jb25zdGFu
dDxzaXplX3QsIEkgLSAxPigpLCBvcyk7CisgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRf
UFVTSF8oKQorICBpZiAoSSA+IDEpIHsKKyAgICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05E
X1BPUF8oKQorICAgICpvcyA8PCAiLCAiOworICB9CisgIFVuaXZlcnNhbFByaW50ZXI8dHlwZW5h
bWUgc3RkOjp0dXBsZV9lbGVtZW50PEkgLSAxLCBUPjo6dHlwZT46OlByaW50KAorICAgICAgc3Rk
OjpnZXQ8SSAtIDE+KHQpLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUK
IAotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+
CiB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiYgdCwgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7CisgICpvcyA8PCAiKCI7CisgIFBy
aW50VHVwbGVUbyh0LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc2l6ZW9mLi4uKFR5
cGVzKT4oKSwgb3MpOworICAqb3MgPDwgIikiOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RE
X1RVUExFXwogCiAvLyBPdmVybG9hZCBmb3Igc3RkOjpwYWlyLgogdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMj4KQEAgLTc0NCw2ICs2NzIsMTggQEAgdm9pZCBQcmludFRvKGNvbnN0
IDo6c3RkOjpwYWlyPFQxLCBUMj4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgKm9z
IDw8ICcpJzsKIH0KIAorI2lmIEdURVNUX0hBU19SVFRJCitpbmxpbmUgdm9pZCBQcmludFRvKGNv
bnN0IDo6c3RkOjp0eXBlX2luZm8mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgaW50
ZXJuYWw6OlByaW50VG88OjpzdGQ6OnR5cGVfaW5mbz4odmFsdWUsIG9zKTsKKyAgKm9zIDw8ICIg
KFwiIiA8PCB2YWx1ZS5uYW1lKCkgPDwgIlwiKSI7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8o
Y29uc3QgOjpzdGQ6OnR5cGVfaW5kZXgmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAg
aW50ZXJuYWw6OlByaW50VG88OjpzdGQ6OnR5cGVfaW5kZXg+KHZhbHVlLCBvcyk7CisgICpvcyA8
PCAiIChcIiIgPDwgdmFsdWUubmFtZSgpIDw8ICJcIikiOworfQorI2VuZGlmICAvLyBHVEVTVF9I
QVNfUlRUSQorCiAvLyBJbXBsZW1lbnRzIHByaW50aW5nIGEgbm9uLXJlZmVyZW5jZSB0eXBlIFQg
YnkgbGV0dGluZyB0aGUgY29tcGlsZXIKIC8vIHBpY2sgdGhlIHJpZ2h0IG92ZXJsb2FkIG9mIFBy
aW50VG8oKSBmb3IgVC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtNzcxLDE0ICs3MTEsNDYg
QEAgY2xhc3MgVW5pdmVyc2FsUHJpbnRlciB7CiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdT
X1BPUF8oKQogfTsKIAotI2lmIEdURVNUX0hBU19BQlNMCisvLyBSZW1vdmUgYW55IGNvbnN0LXF1
YWxpZmllcnMgYmVmb3JlIHBhc3NpbmcgYSB0eXBlIHRvIFVuaXZlcnNhbFByaW50ZXIuCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFVuaXZlcnNhbFByaW50ZXI8Y29uc3QgVD4gOiBwdWJs
aWMgVW5pdmVyc2FsUHJpbnRlcjxUPiB7fTsKIAotLy8gUHJpbnRlciBmb3IgYWJzbDo6b3B0aW9u
YWwKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfQU5ZCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6YW55
IC8gYWJzbDo6YW55CisKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPEFueT4g
eworIHB1YmxpYzoKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgQW55JiB2YWx1ZSwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHZhbHVlLmhhc192YWx1ZSgpKSB7CisgICAgICAqb3Mg
PDwgInZhbHVlIG9mIHR5cGUgIiA8PCBHZXRUeXBlTmFtZSh2YWx1ZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICpvcyA8PCAibm8gdmFsdWUiOworICAgIH0KKyAgfQorCisgcHJpdmF0ZToKKyAgc3Rh
dGljIHN0ZDo6c3RyaW5nIEdldFR5cGVOYW1lKGNvbnN0IEFueSYgdmFsdWUpIHsKKyNpZiBHVEVT
VF9IQVNfUlRUSQorICAgIHJldHVybiBpbnRlcm5hbDo6R2V0VHlwZU5hbWUodmFsdWUudHlwZSgp
KTsKKyNlbHNlCisgICAgc3RhdGljX2Nhc3Q8dm9pZD4odmFsdWUpOyAgLy8gcG9zc2libHkgdW51
c2VkCisgICAgcmV0dXJuICI8dW5rbm93bl90eXBlPiI7CisjZW5kaWYgIC8vIEdURVNUX0hBU19S
VFRJCisgIH0KK307CisKKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorCisjaWYg
R1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6b3B0aW9u
YWwgLyBhYnNsOjpvcHRpb25hbAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFVuaXZl
cnNhbFByaW50ZXI8OjphYnNsOjpvcHRpb25hbDxUPj4geworY2xhc3MgVW5pdmVyc2FsUHJpbnRl
cjxPcHRpb25hbDxUPj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgOjph
YnNsOjpvcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMg
dm9pZCBQcmludChjb25zdCBPcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewogICAgICpvcyA8PCAnKCc7CiAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgKm9zIDw8ICJudWxs
b3B0IjsKQEAgLTc4OSwxNCArNzYxLDIyIEBAIGNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNs
OjpvcHRpb25hbDxUPj4gewogICB9CiB9OwogCi0vLyBQcmludGVyIGZvciBhYnNsOjp2YXJpYW50
CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAorCisjaWYgR1RFU1RfSU5U
RVJOQUxfSEFTX1ZBUklBTlQKKworLy8gUHJpbnRlciBmb3Igc3RkOjp2YXJpYW50IC8gYWJzbDo6
dmFyaWFudAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50
ZXI8OjphYnNsOjp2YXJpYW50PFQuLi4+PiB7CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFZhcmlh
bnQ8VC4uLj4+IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IDo6YWJzbDo6
dmFyaWFudDxULi4uPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMgdm9p
ZCBQcmludChjb25zdCBWYXJpYW50PFQuLi4+JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
CiAgICAgKm9zIDw8ICcoJzsKLSAgICBhYnNsOjp2aXNpdChWaXNpdG9ye29zfSwgdmFsdWUpOwor
I2lmIEdURVNUX0hBU19BQlNMCisgICAgYWJzbDo6dmlzaXQoVmlzaXRvcntvcywgdmFsdWUuaW5k
ZXgoKX0sIHZhbHVlKTsKKyNlbHNlCisgICAgc3RkOjp2aXNpdChWaXNpdG9ye29zLCB2YWx1ZS5p
bmRleCgpfSwgdmFsdWUpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAogICAgICpvcyA8PCAn
KSc7CiAgIH0KIApAQCAtODA0LDE0ICs3ODQsMTYgQEAgY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjw6
OmFic2w6OnZhcmlhbnQ8VC4uLj4+IHsKICAgc3RydWN0IFZpc2l0b3IgewogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBVPgogICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCBVJiB1KSBjb25zdCB7Ci0g
ICAgICAqb3MgPDwgIiciIDw8IEdldFR5cGVOYW1lPFU+KCkgPDwgIicgd2l0aCB2YWx1ZSAiOwor
ICAgICAgKm9zIDw8ICInIiA8PCBHZXRUeXBlTmFtZTxVPigpIDw8ICIoaW5kZXggPSAiIDw8IGlu
ZGV4CisgICAgICAgICAgPDwgIiknIHdpdGggdmFsdWUgIjsKICAgICAgIFVuaXZlcnNhbFByaW50
KHUsIG9zKTsKICAgICB9CiAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zOworICAgIHN0ZDo6c2l6ZV90
IGluZGV4OwogICB9OwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2VuZGlmICAv
LyBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAogCiAvLyBVbml2ZXJzYWxQcmludEFycmF5KGJl
Z2luLCBsZW4sIG9zKSBwcmludHMgYW4gYXJyYXkgb2YgJ2xlbicKIC8vIGVsZW1lbnRzLCBzdGFy
dGluZyBhdCBhZGRyZXNzICdiZWdpbicuCkBAIC04MjYsNyArODA4LDYgQEAgdm9pZCBVbml2ZXJz
YWxQcmludEFycmF5KGNvbnN0IFQqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsKICAgICAvLyBJZiB0aGUgYXJyYXkgaGFzIG1vcmUgdGhhbiBrVGhyZXNob2xkIGVsZW1l
bnRzLCB3ZSdsbCBoYXZlIHRvCiAgICAgLy8gb21pdCBzb21lIGRldGFpbHMgYnkgcHJpbnRpbmcg
b25seSB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0CiAgICAgLy8ga0NodW5rU2l6ZSBlbGVtZW50cy4K
LSAgICAvLyBGSVhNRTogbGV0IHRoZSB1c2VyIGNvbnRyb2wgdGhlIHRocmVzaG9sZCB1c2luZyBh
IGZsYWcuCiAgICAgaWYgKGxlbiA8PSBrVGhyZXNob2xkKSB7CiAgICAgICBQcmludFJhd0FycmF5
VG8oYmVnaW4sIGxlbiwgb3MpOwogICAgIH0gZWxzZSB7CkBAIC04NDEsNiArODIyLDIwIEBAIHZv
aWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25zdCBUKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7CiBHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheSgKICAg
ICBjb25zdCBjaGFyKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0KSBj
aGFyOF90IGFycmF5IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFy
cmF5KGNvbnN0IGNoYXI4X3QqIGJlZ2luLCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKKyNlbmRpZgorCisvLyBUaGlz
IG92ZXJsb2FkIHByaW50cyBhIChjb25zdCkgY2hhcjE2X3QgYXJyYXkgY29tcGFjdGx5LgorR1RF
U1RfQVBJXyB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjE2X3QqIGJlZ2luLCBz
aXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9z
dHJlYW0qIG9zKTsKKworLy8gVGhpcyBvdmVybG9hZCBwcmludHMgYSAoY29uc3QpIGNoYXIzMl90
IGFycmF5IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNv
bnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7CisKIC8vIFRoaXMgb3ZlcmxvYWQgcHJp
bnRzIGEgKGNvbnN0KSB3Y2hhcl90IGFycmF5IGNvbXBhY3RseS4KIEdURVNUX0FQSV8gdm9pZCBV
bml2ZXJzYWxQcmludEFycmF5KAogICAgIGNvbnN0IHdjaGFyX3QqIGJlZ2luLCBzaXplX3QgbGVu
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOwpAQCAtOTA1LDcgKzkwMCw3IEBAIHRlbXBsYXRlIDw+CiBj
bGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICBwdWJsaWM6CiAgIHN0
YXRpYyB2b2lkIFByaW50KGNvbnN0IGNoYXIqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0g
ICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CiAgICAgICAq
b3MgPDwgIk5VTEwiOwogICAgIH0gZWxzZSB7CiAgICAgICBVbml2ZXJzYWxQcmludChzdGQ6OnN0
cmluZyhzdHIpLCBvcyk7CkBAIC05MTMsMTkgKzkwOCw2MiBAQCBjbGFzcyBVbml2ZXJzYWxUZXJz
ZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICAgfQogfTsKIHRlbXBsYXRlIDw+Ci1jbGFzcyBVbml2
ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcio+IHsKK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxj
aGFyKj4gOiBwdWJsaWMgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIqPiB7Cit9Owor
CisjaWZkZWYgX19jcHBfY2hhcjhfdAordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNl
UHJpbnRlcjxjb25zdCBjaGFyOF90Kj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQo
Y2hhciogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50
ZXI8Y29uc3QgY2hhcio+OjpQcmludChzdHIsIG9zKTsKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29u
c3QgY2hhcjhfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51
bGxwdHIpIHsKKyAgICAgICpvcyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZl
cnNhbFByaW50KDo6c3RkOjp1OHN0cmluZyhzdHIpLCBvcyk7CisgICAgfQorICB9Cit9OwordGVt
cGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyOF90Kj4KKyAgICA6IHB1
YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjhfdCo+IHt9OworI2VuZGlmCisK
K3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjE2X3Qq
PiB7CisgcHVibGljOgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBjaGFyMTZfdCogc3RyLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKKyAgICAgICpv
cyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp1
MTZzdHJpbmcoc3RyKSwgb3MpOworICAgIH0KKyAgfQorfTsKK3RlbXBsYXRlIDw+CitjbGFzcyBV
bml2ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcjE2X3QqPgorICAgIDogcHVibGljIFVuaXZlcnNhbFRl
cnNlUHJpbnRlcjxjb25zdCBjaGFyMTZfdCo+IHt9OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5p
dmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIzMl90Kj4geworIHB1YmxpYzoKKyAgc3RhdGlj
IHZvaWQgUHJpbnQoY29uc3QgY2hhcjMyX3QqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Cisg
ICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxz
ZSB7CisgICAgICBVbml2ZXJzYWxQcmludCg6OnN0ZDo6dTMyc3RyaW5nKHN0ciksIG9zKTsKKyAg
ICB9CiAgIH0KIH07Cit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNo
YXIzMl90Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjMy
X3QqPiB7fTsKIAogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogdGVtcGxhdGUgPD4KIGNsYXNz
IFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCB3Y2hhcl90Kj4gewogIHB1YmxpYzoKICAgc3Rh
dGljIHZvaWQgUHJpbnQoY29uc3Qgd2NoYXJfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
LSAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKICAgICAg
ICpvcyA8PCAiTlVMTCI7CiAgICAgfSBlbHNlIHsKICAgICAgIFVuaXZlcnNhbFByaW50KDo6c3Rk
Ojp3c3RyaW5nKHN0ciksIG9zKTsKQEAgLTk2MSwxMDkgKzk5OSwyMCBAQCB2b2lkIFVuaXZlcnNh
bFByaW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIAogdHlwZWRlZiA6
OnN0ZDo6dmVjdG9yPCA6OnN0ZDo6c3RyaW5nPiBTdHJpbmdzOwogCi0vLyBUdXBsZVBvbGljeTxU
dXBsZVQ+IG11c3QgcHJvdmlkZToKLS8vIC0gdHVwbGVfc2l6ZQotLy8gICAgIHNpemUgb2YgdHVw
bGUgVHVwbGVULgotLy8gLSBnZXQ8c2l6ZV90IEk+KGNvbnN0IFR1cGxlVCYgdCkKLS8vICAgICBz
dGF0aWMgZnVuY3Rpb24gZXh0cmFjdGluZyBlbGVtZW50IEkgb2YgdHVwbGUgVHVwbGVULgotLy8g
LSB0dXBsZV9lbGVtZW50PHNpemVfdCBJPjo6dHlwZQotLy8gICAgIHR5cGUgb2YgZWxlbWVudCBJ
IG9mIHR1cGxlIFR1cGxlVC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZVQ+Ci1zdHJ1Y3QgVHVw
bGVQb2xpY3k7Ci0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VHVwbGVUPgotc3RydWN0IFR1cGxlUG9saWN5IHsKLSAgdHlwZWRlZiBUdXBsZVQgVHVwbGU7Ci0g
IHN0YXRpYyBjb25zdCBzaXplX3QgdHVwbGVfc2l6ZSA9IDo6c3RkOjp0cjE6OnR1cGxlX3NpemU8
VHVwbGU+Ojp2YWx1ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0cnVjdCB0dXBsZV9l
bGVtZW50IDogOjpzdGQ6OnRyMTo6dHVwbGVfZWxlbWVudDxzdGF0aWNfY2FzdDxpbnQ+KEkpLCBU
dXBsZT4gewotICB9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIHR5cGVuYW1l
IEFkZFJlZmVyZW5jZTxjb25zdCB0eXBlbmFtZSA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVtZW50PAot
ICAgICAgc3RhdGljX2Nhc3Q8aW50PihJKSwgVHVwbGU+Ojp0eXBlPjo6dHlwZQotICBnZXQoY29u
c3QgVHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjp0cjE6OmdldDxJPih0dXBsZSk7
Ci0gIH0KLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotY29uc3Qgc2l6ZV90IFR1cGxl
UG9saWN5PFR1cGxlVD46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQ
TEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCi10ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlw
ZXM+Ci1zdHJ1Y3QgVHVwbGVQb2xpY3k8IDo6c3RkOjp0dXBsZTxUeXBlcy4uLj4gPiB7Ci0gIHR5
cGVkZWYgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiBUdXBsZTsKLSAgc3RhdGljIGNvbnN0IHNpemVf
dCB0dXBsZV9zaXplID0gOjpzdGQ6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZTsKLQotICB0ZW1w
bGF0ZSA8c2l6ZV90IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpzdGQ6OnR1cGxlX2Vs
ZW1lbnQ8SSwgVHVwbGU+IHt9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIGNv
bnN0IHR5cGVuYW1lIDo6c3RkOjp0dXBsZV9lbGVtZW50PEksIFR1cGxlPjo6dHlwZSYgZ2V0KAot
ICAgICAgY29uc3QgVHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjpnZXQ8ST4odHVw
bGUpOwotICB9Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgotY29uc3Qgc2l6ZV90
IFR1cGxlUG9saWN5PCA6OnN0ZDo6dHVwbGU8VHlwZXMuLi4+ID46OnR1cGxlX3NpemU7Ci0jZW5k
aWYgIC8vIEdURVNUX0hBU19TVERfVFVQTEVfCi0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8
IEdURVNUX0hBU19TVERfVFVQTEVfCi0vLyBUaGlzIGhlbHBlciB0ZW1wbGF0ZSBhbGxvd3MgUHJp
bnRUbygpIGZvciB0dXBsZXMgYW5kCi0vLyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNU
b1N0cmluZ3MoKSB0byBiZSBkZWZpbmVkIGJ5Ci0vLyBpbmR1Y3Rpb24gb24gdGhlIG51bWJlciBv
ZiB0dXBsZSBmaWVsZHMuICBUaGUgaWRlYSBpcyB0aGF0Ci0vLyBUdXBsZVByZWZpeFByaW50ZXI8
Tj46OlByaW50UHJlZml4VG8odCwgb3MpIHByaW50cyB0aGUgZmlyc3QgTgotLy8gZmllbGRzIGlu
IHR1cGxlIHQsIGFuZCBjYW4gYmUgZGVmaW5lZCBpbiB0ZXJtcyBvZgotLy8gVHVwbGVQcmVmaXhQ
cmludGVyPE4gLSAxPi4KLS8vCi0vLyBUaGUgaW5kdWN0aXZlIGNhc2UuCi10ZW1wbGF0ZSA8c2l6
ZV90IE4+Ci1zdHJ1Y3QgVHVwbGVQcmVmaXhQcmludGVyIHsKLSAgLy8gUHJpbnRzIHRoZSBmaXJz
dCBOIGZpZWxkcyBvZiBhIHR1cGxlLgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0
YXRpYyB2b2lkIFByaW50UHJlZml4VG8oY29uc3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBv
cykgewotICAgIFR1cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlByaW50UHJlZml4VG8odCwgb3Mp
OwotICAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQotICAgIGlmIChOID4g
MSkgewotICAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpCi0gICAgICAqb3Mg
PDwgIiwgIjsKLSAgICB9Ci0gICAgVW5pdmVyc2FsUHJpbnRlcjwKLSAgICAgICAgdHlwZW5hbWUg
VHVwbGVQb2xpY3k8VHVwbGU+Ojp0ZW1wbGF0ZSB0dXBsZV9lbGVtZW50PE4gLSAxPjo6dHlwZT4K
LSAgICAgICAgOjpQcmludChUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBsYXRlIGdldDxOIC0gMT4o
dCksIG9zKTsKLSAgfQotCiAgIC8vIFRlcnNlbHkgcHJpbnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBv
ZiBhIHR1cGxlIHRvIGEgc3RyaW5nIHZlY3RvciwKICAgLy8gb25lIGVsZW1lbnQgZm9yIGVhY2gg
ZmllbGQuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgVGVyc2VQ
cmludFByZWZpeFRvU3RyaW5ncyhjb25zdCBUdXBsZSYgdCwgU3RyaW5ncyogc3RyaW5ncykgewot
ICAgIFR1cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3Mo
dCwgc3RyaW5ncyk7Ci0gICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgICBVbml2ZXJzYWxU
ZXJzZVByaW50KFR1cGxlUG9saWN5PFR1cGxlPjo6dGVtcGxhdGUgZ2V0PE4gLSAxPih0KSwgJnNz
KTsKLSAgICBzdHJpbmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwotICB9Ci19OwotCi0vLyBCYXNl
IGNhc2UuCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFR1cGxlUHJlZml4UHJpbnRlcjwwPiB7Ci0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgUHJpbnRQcmVmaXhUbyhjb25z
dCBUdXBsZSYsIDo6c3RkOjpvc3RyZWFtKikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVw
bGU+Ci0gIHN0YXRpYyB2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29uc3QgVHVwbGUm
LCBTdHJpbmdzKikge30KLX07Ci0KLS8vIEhlbHBlciBmdW5jdGlvbiBmb3IgcHJpbnRpbmcgYSB0
dXBsZS4KLS8vIFR1cGxlIG11c3QgYmUgZWl0aGVyIHN0ZDo6dHIxOjp0dXBsZSBvciBzdGQ6OnR1
cGxlIHR5cGUuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci12b2lkIFByaW50VHVwbGVUbyhj
b25zdCBUdXBsZSYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8PCAiKCI7Ci0gIFR1
cGxlUHJlZml4UHJpbnRlcjxUdXBsZVBvbGljeTxUdXBsZT46OnR1cGxlX3NpemU+OjpQcmludFBy
ZWZpeFRvKHQsIG9zKTsKLSAgKm9zIDw8ICIpIjsKK3ZvaWQgVGVyc2VQcmludFByZWZpeFRvU3Ry
aW5ncyhjb25zdCBUdXBsZSYsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCAwPiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdzKikge30KK3RlbXBsYXRlIDx0eXBl
bmFtZSBUdXBsZSwgc2l6ZV90IEk+Cit2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29u
c3QgVHVwbGUmIHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjppbnRlZ3Jh
bF9jb25zdGFudDxzaXplX3QsIEk+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0
cmluZ3MqIHN0cmluZ3MpIHsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyh0LCBzdGQ6Omlu
dGVncmFsX2NvbnN0YW50PHNpemVfdCwgSSAtIDE+KCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RyaW5ncyk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgIFVuaXZlcnNhbFRl
cnNlUHJpbnQoc3RkOjpnZXQ8SSAtIDE+KHQpLCAmc3MpOworICBzdHJpbmdzLT5wdXNoX2JhY2so
c3Muc3RyKCkpOwogfQogCiAvLyBQcmludHMgdGhlIGZpZWxkcyBvZiBhIHR1cGxlIHRlcnNlbHkg
dG8gYSBzdHJpbmcgdmVjdG9yLCBvbmUKQEAgLTEwNzIsMjQgKzEwMjEsMTQgQEAgdm9pZCBQcmlu
dFR1cGxlVG8oY29uc3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogdGVtcGxhdGUg
PHR5cGVuYW1lIFR1cGxlPgogU3RyaW5ncyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNU
b1N0cmluZ3MoY29uc3QgVHVwbGUmIHZhbHVlKSB7CiAgIFN0cmluZ3MgcmVzdWx0OwotICBUdXBs
ZVByZWZpeFByaW50ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0dXBsZV9zaXplPjo6Ci0gICAgICBU
ZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKHZhbHVlLCAmcmVzdWx0KTsKKyAgVGVyc2VQcmludFBy
ZWZpeFRvU3RyaW5ncygKKyAgICAgIHZhbHVlLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVf
dCwgc3RkOjp0dXBsZV9zaXplPFR1cGxlPjo6dmFsdWU+KCksCisgICAgICAmcmVzdWx0KTsKICAg
cmV0dXJuIHJlc3VsdDsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVT
VF9IQVNfU1REX1RVUExFXwogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIAotI2lmIEdURVNU
X0hBU19BQlNMCi1uYW1lc3BhY2UgaW50ZXJuYWwyIHsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
dm9pZCBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXc+OjpQ
cmludFZhbHVlKAotICAgIGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
aW50ZXJuYWw6OlByaW50VG8oYWJzbDo6c3RyaW5nX3ZpZXcodmFsdWUpLCBvcyk7Ci19Ci19ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwyCi0jZW5kaWYKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiA6
OnN0ZDo6c3RyaW5nIFByaW50VG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpIHsKICAgOjpzdGQ6OnN0
cmluZ3N0cmVhbSBzczsKQEAgLTExMDQsNCArMTA0Myw0IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgogLy8gZGVjbGFyYXRpb25zIGZyb20gdGhpcyBmaWxlLgogI2luY2x1ZGUgImd0ZXN0L2ludGVy
bmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oIgogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfUFJJTlRFUlNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSSU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdC1zcGkuaAppbmRleCAxZTg5ODM5MzhlYTI3OTJjNTI2OTBlYWQyOWIw
MGFiNThjZGFhZTljLi5lYWNlZjQ0NjY5ZTgxMDRhM2QyOGRhYTA1NGVkYWRjZGViMjNjNTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNw
aS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3Bp
LmgKQEAgLTMzLDggKzMzLDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDQgRE8gTk9UIERFTEVU
RQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCi0jZGVmaW5lIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9TUElfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dU
RVNUX1NQSV9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIApAQCAtNzIsMTQgKzcyLDE1
IEBAIGNsYXNzIEdURVNUX0FQSV8gU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFBhcnRSZXN1bHRBcnJheSogcmVz
dWx0KTsKIAogICAvLyBUaGUgZCd0b3IgcmVzdG9yZXMgdGhlIHByZXZpb3VzIHRlc3QgcGFydCBy
ZXN1bHQgcmVwb3J0ZXIuCi0gIHZpcnR1YWwgflNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9y
dGVyKCk7CisgIH5TY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigpIG92ZXJyaWRlOwog
CiAgIC8vIEFwcGVuZHMgdGhlIFRlc3RQYXJ0UmVzdWx0IG9iamVjdCB0byB0aGUgVGVzdFBhcnRS
ZXN1bHRBcnJheQogICAvLyByZWNlaXZlZCBpbiB0aGUgY29uc3RydWN0b3IuCiAgIC8vCiAgIC8v
IFRoaXMgbWV0aG9kIGlzIGZyb20gdGhlIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UK
ICAgLy8gaW50ZXJmYWNlLgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29u
c3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQo
Y29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisKICBwcml2YXRlOgogICB2
b2lkIEluaXQoKTsKIApAQCAtMjM0LDQgKzIzNSw0IEBAIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BPUF8oKSAgLy8gIDQyNTEKICAgICB9XAogICB9IHdoaWxlICg6OnRlc3Rpbmc6OmludGVy
bmFsOjpBbHdheXNGYWxzZSgpKQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfU1BJX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9TUElf
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rl
c3QtdGVzdC1wYXJ0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0
ZXN0LXRlc3QtcGFydC5oCmluZGV4IDFjN2I4OWUwODc5NmQ5NzMwZjlmOGVlYWU0MDYyMjcxNzdk
YmE1MTkuLjIwM2ZkZjk4YzY5ZmNkZjk2NDc0MzdjZGM4ZTZjYzcwYWUxOGU2MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0
LXBhcnQuaApAQCAtMjksOCArMjksOCBAQAogLy8KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXworI2lmbmRl
ZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KIAogI2luY2x1ZGUgPGlv
c2Z3ZD4KICNpbmNsdWRlIDx2ZWN0b3I+CkBAIC01MywyMiArNTMsMjAgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUZXN0UGFydFJlc3VsdCB7CiAgIGVudW0gVHlwZSB7CiAgICAga1N1Y2Nlc3MsICAgICAg
ICAgIC8vIFN1Y2NlZWRlZC4KICAgICBrTm9uRmF0YWxGYWlsdXJlLCAgLy8gRmFpbGVkIGJ1dCB0
aGUgdGVzdCBjYW4gY29udGludWUuCi0gICAga0ZhdGFsRmFpbHVyZSAgICAgIC8vIEZhaWxlZCBh
bmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga0ZhdGFsRmFpbHVyZSwgICAg
IC8vIEZhaWxlZCBhbmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga1NraXAg
ICAgICAgICAgICAgIC8vIFNraXBwZWQuCiAgIH07CiAKICAgLy8gQyd0b3IuICBUZXN0UGFydFJl
c3VsdCBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAgLy8gQWx3YXlzIHVz
ZSB0aGlzIGNvbnN0cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0ZSBhCiAgIC8vIFRl
c3RQYXJ0UmVzdWx0IG9iamVjdC4KLSAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsCi0gICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLAotICAgICAgICAgICAgICAgICBp
bnQgYV9saW5lX251bWJlciwKKyAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsIGNvbnN0IGNo
YXIqIGFfZmlsZV9uYW1lLCBpbnQgYV9saW5lX251bWJlciwKICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogYV9tZXNzYWdlKQogICAgICAgOiB0eXBlXyhhX3R5cGUpLAotICAgICAgICBmaWxl
X25hbWVfKGFfZmlsZV9uYW1lID09IE5VTEwgPyAiIiA6IGFfZmlsZV9uYW1lKSwKKyAgICAgICAg
ZmlsZV9uYW1lXyhhX2ZpbGVfbmFtZSA9PSBudWxscHRyID8gIiIgOiBhX2ZpbGVfbmFtZSksCiAg
ICAgICAgIGxpbmVfbnVtYmVyXyhhX2xpbmVfbnVtYmVyKSwKICAgICAgICAgc3VtbWFyeV8oRXh0
cmFjdFN1bW1hcnkoYV9tZXNzYWdlKSksCi0gICAgICAgIG1lc3NhZ2VfKGFfbWVzc2FnZSkgewot
ICB9CisgICAgICAgIG1lc3NhZ2VfKGFfbWVzc2FnZSkge30KIAogICAvLyBHZXRzIHRoZSBvdXRj
b21lIG9mIHRoZSB0ZXN0IHBhcnQuCiAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVf
OyB9CkBAIC03Niw3ICs3NCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFBhcnRSZXN1bHQgewog
ICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0
IHRvb2sgcGxhY2UsIG9yCiAgIC8vIE5VTEwgaWYgaXQncyB1bmtub3duLgogICBjb25zdCBjaGFy
KiBmaWxlX25hbWUoKSBjb25zdCB7Ci0gICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/IE5V
TEwgOiBmaWxlX25hbWVfLmNfc3RyKCk7CisgICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/
IG51bGxwdHIgOiBmaWxlX25hbWVfLmNfc3RyKCk7CiAgIH0KIAogICAvLyBHZXRzIHRoZSBsaW5l
IGluIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2UsCkBAIC04
OSwxOCArODcsMjEgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFydFJlc3VsdCB7CiAgIC8vIEdl
dHMgdGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXN0IHBhcnQuCiAgIGNvbnN0IGNo
YXIqIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNzYWdlXy5jX3N0cigpOyB9CiAKLSAgLy8g
UmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IHBhc3NlZC4KLSAgYm9vbCBwYXNzZWQoKSBj
b25zdCB7IHJldHVybiB0eXBlXyA9PSBrU3VjY2VzczsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFydCB3YXMgc2tpcHBlZC4KKyAgYm9vbCBza2lwcGVkKCkg
Y29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga1NraXA7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IHRoZSB0ZXN0IHBhcnQgZmFpbGVkLgotICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5
cGVfICE9IGtTdWNjZXNzOyB9CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBwYXJ0IHBhc3NlZC4KKyAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9
PSBrU3VjY2VzczsgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBub24t
ZmF0YWxseSBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVz
dCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KICAgYm9vbCBub25mYXRhbGx5X2ZhaWxlZCgpIGNv
bnN0IHsgcmV0dXJuIHR5cGVfID09IGtOb25GYXRhbEZhaWx1cmU7IH0KIAotICAvLyBSZXR1cm5z
IHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgZmF0YWxseSBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVkLgogICBib29sIGZh
dGFsbHlfZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga0ZhdGFsRmFpbHVyZTsgfQog
CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IGZhaWxlZC4K
KyAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBmYXRhbGx5X2ZhaWxlZCgpIHx8IG5vbmZh
dGFsbHlfZmFpbGVkKCk7IH0KKwogIHByaXZhdGU6CiAgIFR5cGUgdHlwZV87CiAKQEAgLTE2NCw4
ICsxNjUsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcgogICAg
IDogcHVibGljIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UgewogIHB1YmxpYzoKICAg
SGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyKCk7Ci0gIHZpcnR1YWwgfkhhc05ld0ZhdGFsRmFpbHVy
ZUhlbHBlcigpOwotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHJlc3VsdCk7CisgIH5IYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIoKSBvdmVy
cmlkZTsKKyAgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYg
cmVzdWx0KSBvdmVycmlkZTsKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmUoKSBjb25zdCB7
IHJldHVybiBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmVfOyB9CiAgcHJpdmF0ZToKICAgYm9vbCBoYXNf
bmV3X2ZhdGFsX2ZhaWx1cmVfOwpAQCAtMTgwLDQgKzE4MSw0IEBAIGNsYXNzIEdURVNUX0FQSV8g
SGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyCiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BP
UF8oKSAgLy8gIDQyNTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RF
U1RfUEFSVF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVT
VF9QQVJUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LXR5cGVkLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oCmluZGV4IDc0YmNlNDZiZGM1MGY0YzhjZGUyYzZkNzI2
NDkxMWZmNGQ5OWNmMTkuLjlmZGM2YmUxMGRjMjZiODAzM2UxYWE1YTBmNWFmMDVmODI1NDc5MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
dHlwZWQtdGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
Z3Rlc3QtdHlwZWQtdGVzdC5oCkBAIC0yNywxMSArMjcsMTAgQEAKIC8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAK
LSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCi0jZGVmaW5l
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2lmbmRlZiBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXwogCiAvLyBUaGlzIGhlYWRlciBpbXBs
ZW1lbnRzIHR5cGVkIHRlc3RzIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKQEAgLTUy
LDIyICs1MSwyMiBAQCBjbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBU
IHZhbHVlXzsKIH07CiAKLS8vIE5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2YgdHlwZXMgd2l0aCB0
aGUgdGVzdCBjYXNlLCB3aGljaCB3aWxsIGJlCisvLyBOZXh0LCBhc3NvY2lhdGUgYSBsaXN0IG9m
IHR5cGVzIHdpdGggdGhlIHRlc3Qgc3VpdGUsIHdoaWNoIHdpbGwgYmUKIC8vIHJlcGVhdGVkIGZv
ciBlYWNoIHR5cGUgaW4gdGhlIGxpc3QuICBUaGUgdHlwZWRlZiBpcyBuZWNlc3NhcnkgZm9yCiAv
LyB0aGUgbWFjcm8gdG8gcGFyc2UgY29ycmVjdGx5LgogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxj
aGFyLCBpbnQsIHVuc2lnbmVkIGludD4gTXlUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShGb29UZXN0
LCBNeVR5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcyk7CiAKIC8vIElm
IHRoZSB0eXBlIGxpc3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZSB0aGF0
IHR5cGUKIC8vIGRpcmVjdGx5IHdpdGhvdXQgVHlwZXM8Li4uPjoKLS8vICAgVFlQRURfVEVTVF9D
QVNFKEZvb1Rlc3QsIGludCk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgaW50KTsK
IAogLy8gVGhlbiwgdXNlIFRZUEVEX1RFU1QoKSBpbnN0ZWFkIG9mIFRFU1RfRigpIHRvIGRlZmlu
ZSBhcyBtYW55IHR5cGVkCi0vLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IGNhc2UgYXMgeW91IHdhbnQu
CisvLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IHN1aXRlIGFzIHlvdSB3YW50LgogVFlQRURfVEVTVChG
b29UZXN0LCBEb2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byBUeXBlUGFy
YW0gdG8gZ2V0IHRoZSB0eXBlIHBhcmFtZXRlci4KLSAgLy8gU2luY2Ugd2UgYXJlIGluc2lkZSBh
IGRlcml2ZWQgY2xhc3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcyB1c2UgdG8KLSAgLy8gdmlzaXQg
dGhlIG1lbWJlcnMgb2YgRm9vVGVzdCB2aWEgJ3RoaXMnLgorICAvLyBJbnNpZGUgYSB0ZXN0LCBy
ZWZlciB0byB0aGUgc3BlY2lhbCBuYW1lIFR5cGVQYXJhbSB0byBnZXQgdGhlIHR5cGUKKyAgLy8g
cGFyYW1ldGVyLiAgU2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xhc3MgdGVtcGxhdGUs
IEMrKyByZXF1aXJlcworICAvLyB1cyB0byB2aXNpdCB0aGUgbWVtYmVycyBvZiBGb29UZXN0IHZp
YSAndGhpcycuCiAgIFR5cGVQYXJhbSBuID0gdGhpcy0+dmFsdWVfOwogCiAgIC8vIFRvIHZpc2l0
IHN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlLCBhZGQgdGhlIFRlc3RGaXh0dXJlOjoKQEAg
LTgzLDcgKzgyLDcgQEAgVFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkgewogCiBUWVBFRF9U
RVNUKEZvb1Rlc3QsIEhhc1Byb3BlcnR5QSkgeyAuLi4gfQogCi0vLyBUWVBFRF9URVNUX0NBU0Ug
dGFrZXMgYW4gb3B0aW9uYWwgdGhpcmQgYXJndW1lbnQgd2hpY2ggYWxsb3dzIHRvIHNwZWNpZnkg
YQorLy8gVFlQRURfVEVTVF9TVUlURSB0YWtlcyBhbiBvcHRpb25hbCB0aGlyZCBhcmd1bWVudCB3
aGljaCBhbGxvd3MgdG8gc3BlY2lmeSBhCiAvLyBjbGFzcyB0aGF0IGdlbmVyYXRlcyBjdXN0b20g
dGVzdCBuYW1lIHN1ZmZpeGVzIGJhc2VkIG9uIHRoZSB0eXBlLiBUaGlzIHNob3VsZAogLy8gYmUg
YSBjbGFzcyB3aGljaCBoYXMgYSBzdGF0aWMgdGVtcGxhdGUgZnVuY3Rpb24gR2V0TmFtZShpbnQg
aW5kZXgpIHJldHVybmluZwogLy8gYSBzdHJpbmcgZm9yIGVhY2ggdHlwZS4gVGhlIHByb3ZpZGVk
IGludGVnZXIgaW5kZXggZXF1YWxzIHRoZSBpbmRleCBvZiB0aGUKQEAgLTk5LDcgKzk4LDcgQEAg
VFlQRURfVEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIC8vICAgICAgIGlmIChz
dGQ6OmlzX3NhbWU8VCwgdW5zaWduZWQgaW50PigpKSByZXR1cm4gInVuc2lnbmVkSW50IjsKIC8v
ICAgICB9CiAvLyAgIH07Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzLCBN
eVR5cGVOYW1lcyk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcywgTXlU
eXBlTmFtZXMpOwogCiAjZW5kaWYgIC8vIDAKIApAQCAtMTI2LDEzICsxMjUsMTMgQEAgY2xhc3Mg
Rm9vVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLi4uCiB9OwogCi0vLyBOZXh0LCBk
ZWNsYXJlIHRoYXQgeW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2Fz
ZQorLy8gTmV4dCwgZGVjbGFyZSB0aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5cGUtcGFyYW1ldGVy
aXplZCB0ZXN0IHN1aXRlCiAvLyAodGhlIF9QIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQi
IG9yICJwYXR0ZXJuIiwgd2hpY2hldmVyIHlvdQogLy8gcHJlZmVyKToKLVRZUEVEX1RFU1RfQ0FT
RV9QKEZvb1Rlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKEZvb1Rlc3QpOwogCiAvLyBUaGVuLCB1
c2UgVFlQRURfVEVTVF9QKCkgdG8gZGVmaW5lIGFzIG1hbnkgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3RzCi0vLyBmb3IgdGhpcyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGFzIHlvdSB3YW50
LgorLy8gZm9yIHRoaXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgYXMgeW91IHdhbnQu
CiBUWVBFRF9URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKICAgLy8gSW5zaWRlIGEgdGVzdCwg
cmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIuCiAgIFR5cGVQYXJh
bSBuID0gMDsKQEAgLTE0MywxMCArMTQyLDEwIEBAIFRZUEVEX1RFU1RfUChGb29UZXN0LCBIYXNQ
cm9wZXJ0eUEpIHsgLi4uIH0KIAogLy8gTm93IHRoZSB0cmlja3kgcGFydDogeW91IG5lZWQgdG8g
cmVnaXN0ZXIgYWxsIHRlc3QgcGF0dGVybnMgYmVmb3JlCiAvLyB5b3UgY2FuIGluc3RhbnRpYXRl
IHRoZW0uICBUaGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIG1hY3JvIGlzIHRoZQotLy8gdGVzdCBj
YXNlIG5hbWU7IHRoZSByZXN0IGFyZSB0aGUgbmFtZXMgb2YgdGhlIHRlc3RzIGluIHRoaXMgdGVz
dAorLy8gdGVzdCBzdWl0ZSBuYW1lOyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0
cyBpbiB0aGlzIHRlc3QKIC8vIGNhc2UuCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChGb29U
ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9lc0JsYWgsIEhhc1Byb3BlcnR5QSk7
CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRm9vVGVzdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb2VzQmxhaCwgSGFzUHJvcGVydHlBKTsKIAogLy8gRmluYWxseSwgeW91IGFy
ZSBmcmVlIHRvIGluc3RhbnRpYXRlIHRoZSBwYXR0ZXJuIHdpdGggdGhlIHR5cGVzIHlvdQogLy8g
d2FudC4gIElmIHlvdSBwdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwgeW91IGNh
biAjaW5jbHVkZQpAQCAtMTU0LDYxICsxNTMsNTggQEAgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNF
X1AoRm9vVGVzdCwKIC8vCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9m
IHRoZSBwYXR0ZXJuLCB0aGUgZmlyc3QKIC8vIGFyZ3VtZW50IHRvIHRoZSBJTlNUQU5USUFURV8q
IG1hY3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZAotLy8gdG8gdGhlIGFjdHVhbCB0
ZXN0IGNhc2UgbmFtZS4gIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvcgorLy8g
dG8gdGhlIGFjdHVhbCB0ZXN0IHN1aXRlIG5hbWUuICBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBw
cmVmaXhlcyBmb3IKIC8vIGRpZmZlcmVudCBpbnN0YW5jZXMuCiB0eXBlZGVmIHRlc3Rpbmc6OlR5
cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9DQVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9TVUlURV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKIAogLy8gSWYgdGhlIHR5cGUgbGlzdCBj
b250YWlucyBvbmx5IG9uZSB0eXBlLCB5b3UgY2FuIHdyaXRlIHRoYXQgdHlwZQogLy8gZGlyZWN0
bHkgd2l0aG91dCBUeXBlczwuLi4+OgotLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UChNeSwgRm9vVGVzdCwgaW50KTsKKy8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9Q
KE15LCBGb29UZXN0LCBpbnQpOwogLy8KLS8vIFNpbWlsYXIgdG8gdGhlIG9wdGlvbmFsIGFyZ3Vt
ZW50IG9mIFRZUEVEX1RFU1RfQ0FTRSBhYm92ZSwKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
IHRha2VzIGFuIG9wdGlvbmFsIGZvdXJ0aCBhcmd1bWVudCB3aGljaCBhbGxvd3MgdG8KKy8vIFNp
bWlsYXIgdG8gdGhlIG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1RfU1VJVEUgYWJvdmUs
CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgdGFrZXMgYW4gb3B0aW9uYWwgZm91cnRoIGFy
Z3VtZW50IHdoaWNoIGFsbG93cyB0bwogLy8gZ2VuZXJhdGUgY3VzdG9tIG5hbWVzLgotLy8gICBJ
TlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBl
TmFtZXMpOworLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIEZvb1Rlc3Qs
IE15VHlwZXMsIE15VHlwZU5hbWVzKTsKIAogI2VuZGlmICAvLyAwCiAKKyNpbmNsdWRlICJndGVz
dC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaCIK
IAogLy8gSW1wbGVtZW50cyB0eXBlZCB0ZXN0cy4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0KIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUu
CiAvLwogLy8gRXhwYW5kcyB0byB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZiBmb3IgdGhlIHR5cGUg
cGFyYW1ldGVycyBvZiB0aGUKLS8vIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZ
UEVfUEFSQU1TXyhUZXN0Q2FzZU5hbWUpIGd0ZXN0X3R5cGVfcGFyYW1zXyMjVGVzdENhc2VOYW1l
IyNfCisvLyBnaXZlbiB0ZXN0IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBFX1BBUkFNU18oVGVz
dFN1aXRlTmFtZSkgZ3Rlc3RfdHlwZV9wYXJhbXNfIyNUZXN0U3VpdGVOYW1lIyNfCiAKIC8vIEV4
cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHR5cGVkZWYgZm9yIHRoZSBOYW1lR2VuZXJhdG9yLCBy
ZXNwb25zaWJsZSBmb3IKIC8vIGNyZWF0aW5nIHRoZSBzdWZmaXhlcyBvZiB0aGUgbmFtZS4KLSNk
ZWZpbmUgR1RFU1RfTkFNRV9HRU5FUkFUT1JfKFRlc3RDYXNlTmFtZSkgXAotICBndGVzdF90eXBl
X3BhcmFtc18jI1Rlc3RDYXNlTmFtZSMjX05hbWVHZW5lcmF0b3IKLQotLy8gVGhlICdUeXBlcycg
dGVtcGxhdGUgYXJndW1lbnQgYmVsb3cgbXVzdCBoYXZlIHNwYWNlcyBhcm91bmQgaXQKLS8vIHNp
bmNlIHNvbWUgY29tcGlsZXJzIG1heSBjaG9rZSBvbiAnPj4nIHdoZW4gcGFzc2luZyBhIHRlbXBs
YXRlCi0vLyBpbnN0YW5jZSAoZS5nLiBUeXBlczxpbnQ+KQotIyBkZWZpbmUgVFlQRURfVEVTVF9D
QVNFKENhc2VOYW1lLCBUeXBlcywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlIEdU
RVNUX1RZUEVfUEFSQU1TXyggXAotICAgICAgQ2FzZU5hbWUpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0eXBlZGVmIDo6dGVz
dGluZzo6aW50ZXJuYWw6Ok5hbWVHZW5lcmF0b3JTZWxlY3RvcjxfX1ZBX0FSR1NfXz46OnR5cGUg
ICAgXAorI2RlZmluZSBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oVGVzdFN1aXRlTmFtZSkgXAorICBn
dGVzdF90eXBlX3BhcmFtc18jI1Rlc3RTdWl0ZU5hbWUjI19OYW1lR2VuZXJhdG9yCisKKyNkZWZp
bmUgVFlQRURfVEVTVF9TVUlURShDYXNlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpHZW5lcmF0ZVR5cGVM
aXN0PFR5cGVzPjo6dHlwZSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhD
YXNlTmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdHlwZWRl
ZiA6OnRlc3Rpbmc6OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8X19WQV9BUkdTX18+
Ojp0eXBlIFwKICAgICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSkKIAotIyBkZWZp
bmUgVFlQRURfVEVTVChDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorI2RlZmluZSBUWVBFRF9URVNUKENhc2VOYW1lLCBUZXN0TmFtZSkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0
KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFRlc3ROYW1lKSkgPiAxLCAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgICAgICAgICJ0ZXN0LW5hbWUgbXVzdCBub3QgYmUgZW1wdHkiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rl
c3RfVHlwZVBhcmFtXz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKENhc2VOYW1lLCBUZXN0TmFtZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgOiBwdWJsaWMgQ2FzZU5hbWU8Z3Rlc3RfVHlw
ZVBhcmFtXz4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcHJpdmF0
ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVz
dEZpeHR1cmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgZ3Rlc3Rf
VHlwZVBhcmFtXyBUeXBlUGFyYW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlk
ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB9
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICBzdGF0aWMgYm9vbCBndGVzdF8jI0Nhc2VOYW1lIyNfIyNU
ZXN0TmFtZSMjX3JlZ2lzdGVyZWRfICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBHVEVT
VF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRU
ZXN0PCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfQVRUUklCVVRF
X1VOVVNFRF8gPSA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlUGFyYW1ldGVyaXplZFRlc3Q8ICAg
XAogICAgICAgICAgIENhc2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlRlbXBsYXRlU2VsPEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oQ2FzZU5hbWUsICAgXAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVGVzdE5hbWUpPiwgXApAQCAtMjE2LDcgKzIxMiw4IEBAIElOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKICAgICAgICAgICAgICAgQ2FzZU5hbWUp
Pjo6UmVnaXN0ZXIoIiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
Q29kZUxvY2F0aW9uKCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyksICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgI0Nhc2VOYW1lLCAjVGVzdE5hbWUsIDAsICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1Rf
U1RSSU5HSUZZXyhDYXNlTmFtZSksICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSksIDAsICAgICAgICAg
ICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6R2VuZXJhdGVOYW1lczwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSksICAgICAgIFwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhD
YXNlTmFtZSk+KCkpOyAgICAgIFwKQEAgLTIyNCw4MyArMjIxLDEwOSBAQCBJTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAgIHZvaWQgR1RFU1RfVEVT
VF9DTEFTU19OQU1FXyhDYXNlTmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0TmFtZSk8Z3Rlc3RfVHlw
ZVBhcmFtXz46OlRlc3RCb2R5KCkKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAor
Ly8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIFRZUEVEX1RFU1RfQ0FT
RSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3Rh
dGljX2Fzc2VydCg6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVk
KCksICIiKTsgXAorICBUWVBFRF9URVNUX1NVSVRFCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJbXBsZW1lbnRzIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0cy4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gSU5URVJOQUwgSU1QTEVN
RU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRo
ZSBuYW1lc3BhY2UgbmFtZSB0aGF0IHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgZm9yCi0v
LyB0aGUgZ2l2ZW4gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcmUgZGVmaW5lZCBpbi4g
IFRoZSBleGFjdAorLy8gdGhlIGdpdmVuIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIGFy
ZSBkZWZpbmVkIGluLiAgVGhlIGV4YWN0CiAvLyBuYW1lIG9mIHRoZSBuYW1lc3BhY2UgaXMgc3Vi
amVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCi0jIGRlZmluZSBHVEVTVF9DQVNFX05BTUVT
UEFDRV8oVGVzdENhc2VOYW1lKSBcCi0gIGd0ZXN0X2Nhc2VfIyNUZXN0Q2FzZU5hbWUjI18KKyNk
ZWZpbmUgR1RFU1RfU1VJVEVfTkFNRVNQQUNFXyhUZXN0U3VpdGVOYW1lKSBndGVzdF9zdWl0ZV8j
I1Rlc3RTdWl0ZU5hbWUjI18KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1Qg
VVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSB2YXJp
YWJsZSB1c2VkIHRvIHJlbWVtYmVyIHRoZSBuYW1lcyBvZgotLy8gdGhlIGRlZmluZWQgdGVzdHMg
aW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVEX1RFU1RfQ0FTRV9Q
X1NUQVRFXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfdHlwZWRfdGVzdF9jYXNlX3Bfc3RhdGVf
IyNUZXN0Q2FzZU5hbWUjI18KKy8vIHRoZSBkZWZpbmVkIHRlc3RzIGluIHRoZSBnaXZlbiB0ZXN0
IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RBVEVfKFRlc3RTdWl0
ZU5hbWUpIFwKKyAgZ3Rlc3RfdHlwZWRfdGVzdF9zdWl0ZV9wX3N0YXRlXyMjVGVzdFN1aXRlTmFt
ZSMjXwogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBD
T0RFIERJUkVDVExZLgogLy8KIC8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxl
IHVzZWQgdG8gcmVtZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBp
biB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05B
TUVTXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfcmVnaXN0ZXJlZF90ZXN0X25hbWVzXyMjVGVz
dENhc2VOYW1lIyNfCisvLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBz
dWl0ZS4KKyNkZWZpbmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhUZXN0U3VpdGVOYW1l
KSBcCisgIGd0ZXN0X3JlZ2lzdGVyZWRfdGVzdF9uYW1lc18jI1Rlc3RTdWl0ZU5hbWUjI18KIAog
Ly8gVGhlIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBt
YWNyb3MgYXJlCiAvLyBzdGF0aWMgYXMgdHlwaWNhbGx5IHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBp
biBhIC5oIGZpbGUgdGhhdCBjYW4gYmUKIC8vICNpbmNsdWRlZCBpbiBtdWx0aXBsZSB0cmFuc2xh
dGlvbiB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCi0jIGRlZmluZSBUWVBFRF9URVNUX0NBU0VfUChD
YXNlTmFtZSkgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZWRUZXN0Q2FzZVBT
dGF0ZSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8oQ2FzZU5hbWUpCi0K
LSMgZGVmaW5lIFRZUEVEX1RFU1RfUChDYXNlTmFtZSwgVGVzdE5hbWUpIFwKLSAgbmFtZXNwYWNl
IEdURVNUX0NBU0VfTkFNRVNQQUNFXyhDYXNlTmFtZSkgeyBcCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBndGVzdF9UeXBlUGFyYW1fPiBcCi0gIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIENhc2VOYW1l
PGd0ZXN0X1R5cGVQYXJhbV8+IHsgXAotICAgcHJpdmF0ZTogXAotICAgIHR5cGVkZWYgQ2FzZU5h
bWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7IFwKLSAgICB0eXBlZGVmIGd0ZXN0X1R5
cGVQYXJhbV8gVHlwZVBhcmFtOyBcCi0gICAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7IFwKLSAg
fTsgXAotICBzdGF0aWMgYm9vbCBndGVzdF8jI1Rlc3ROYW1lIyNfZGVmaW5lZF8gR1RFU1RfQVRU
UklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8o
Q2FzZU5hbWUpLkFkZFRlc3ROYW1lKFwKLSAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICND
YXNlTmFtZSwgI1Rlc3ROYW1lKTsgXAotICB9IFwKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0
X1R5cGVQYXJhbV8+IFwKLSAgdm9pZCBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpOjpU
ZXN0TmFtZTxndGVzdF9UeXBlUGFyYW1fPjo6VGVzdEJvZHkoKQotCi0jIGRlZmluZSBSRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChDYXNlTmFtZSwgLi4uKSBcCi0gIG5hbWVzcGFjZSBHVEVTVF9D
QVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpIHsgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlRlbXBsYXRlczxfX1ZBX0FSR1NfXz46OnR5cGUgZ3Rlc3RfQWxsVGVzdHNfOyBcCi0gIH0g
XAotICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVT
XyhDYXNlTmFtZSkgXAotICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICAg
ICAgR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKS5WZXJpZnlSZWdpc3Rl
cmVkVGVzdE5hbWVzKCBcCi0gICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgI19fVkFf
QVJHU19fKQotCi0vLyBUaGUgJ1R5cGVzJyB0ZW1wbGF0ZSBhcmd1bWVudCBiZWxvdyBtdXN0IGhh
dmUgc3BhY2VzIGFyb3VuZCBpdAotLy8gc2luY2Ugc29tZSBjb21waWxlcnMgbWF5IGNob2tlIG9u
ICc+Picgd2hlbiBwYXNzaW5nIGEgdGVtcGxhdGUKLS8vIGluc3RhbmNlIChlLmcuIFR5cGVzPGlu
dD4pCi0jIGRlZmluZSBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChQcmVmaXgsIENhc2VO
YW1lLCBUeXBlcywgLi4uKSAgICAgIFwKLSAgc3RhdGljIGJvb2wgZ3Rlc3RfIyNQcmVmaXgjI18j
I0Nhc2VOYW1lIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgXAotICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTwgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgICAgQ2FzZU5hbWUsIEdURVNUX0NBU0VfTkFNRVNQQUNFXyhDYXNlTmFt
ZSk6Omd0ZXN0X0FsbFRlc3RzXywgICAgIFwKLSAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpUeXBlTGlzdDwgVHlwZXMgPjo6dHlwZT46OiAgICAgICAgICAgICAgICAgXAotICAgICAgICAg
IFJlZ2lzdGVyKCNQcmVmaXgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxv
Y2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgICAgICAgICAgICAmR1RFU1Rf
VFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKSwgI0Nhc2VOYW1lLCAgXAotICAgICAg
ICAgICAgICAgICAgIEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2FzZU5hbWUpLCAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2Vu
ZXJhdGVOYW1lczwgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPCAgICAgICAgXAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19WQV9BUkdTX18+Ojp0eXBlLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlPigpKQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19U
WVBFRF9URVNUX1AKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RZUEVE
X1RFU1RfSF8KKyNkZWZpbmUgVFlQRURfVEVTVF9TVUlURV9QKFN1aXRlTmFtZSkgICAgICAgICAg
ICAgIFwKKyAgc3RhdGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdFN1aXRlUFN0YXRl
IFwKKyAgICAgIEdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVOYW1lKQorCisv
LyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgVFlQRURfVEVTVF9DQVNF
X1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBz
dGF0aWNfYXNzZXJ0KDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdENhc2VfUF9Jc0RlcHJl
Y2F0ZWQoKSwgIiIpOyBcCisgIFRZUEVEX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBHVEVTVF9S
RU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworI2RlZmluZSBUWVBFRF9URVNUX1AoU3VpdGVO
YW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNl
IEdURVNUX1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIFN1aXRlTmFt
ZTxndGVzdF9UeXBlUGFyYW1fPiB7ICAgICAgICAgICAgIFwKKyAgICAgcHJpdmF0ZTogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICB0eXBlZGVmIFN1aXRlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiBUZXN0Rml4dHVyZTsgICAgICAg
ICAgICAgICAgXAorICAgICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1fIFR5cGVQYXJhbTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlk
ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIHN0YXRpYyBib29sIGd0ZXN0XyMjVGVzdE5hbWUjI19kZWZpbmVkXyBHVEVTVF9BVFRS
SUJVVEVfVU5VU0VEXyA9IFwKKyAgICAgICAgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9QX1NUQVRF
XyhTdWl0ZU5hbWUpLkFkZFRlc3ROYW1lKCAgICAgICBcCisgICAgICAgICAgICBfX0ZJTEVfXywg
X19MSU5FX18sIEdURVNUX1NUUklOR0lGWV8oU3VpdGVOYW1lKSwgICAgICAgICAgXAorICAgICAg
ICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSkpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBl
UGFyYW1fPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2b2lkIEdURVNUX1NV
SVRFX05BTUVTUEFDRV8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgIFN1aXRlTmFtZSk6OlRlc3ROYW1lPGd0ZXN0X1R5cGVQYXJhbV8+OjpUZXN0Qm9keSgp
CisKKy8vIE5vdGU6IHRoaXMgd29uJ3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIHRyYWlsaW5nIGFy
Z3VtZW50cyBhcmUgbWFjcm9zLgorI2RlZmluZSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1Ao
U3VpdGVOYW1lLCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNlIEdU
RVNUX1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1wbGF0ZXM8X19WQV9B
UkdTX18+IGd0ZXN0X0FsbFRlc3RzXzsgICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICBTdWl0ZU5hbWUpIEdURVNUX0FUVFJJQlVURV9VTlVTRURf
ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfVFlQRURf
VEVTVF9TVUlURV9QX1NUQVRFXyhTdWl0ZU5hbWUpLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMo
IFwKKyAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKFN1aXRlTmFtZSksIF9fRklMRV9fLCBfX0xJ
TkVfXywgI19fVkFfQVJHU19fKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KyNkZWZpbmUgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVzdGluZzo6aW50ZXJu
YWw6OlJlZ2lzdGVyVHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBcCisgICAgICAgICAg
ICAgICAgIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QCisjZW5kaWYgIC8vIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZGVmaW5lIElOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChQcmVmaXgsIFN1aXRlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgXAor
ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFByZWZpeCkpID4gMSwgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdC1zdWl0LXByZWZpeCBt
dXN0IG5vdCBiZSBlbXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBib29s
IGd0ZXN0XyMjUHJlZml4IyNfIyNTdWl0ZU5hbWUgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSAg
ICAgICAgXAorICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0
U3VpdGU8ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBTdWl0ZU5hbWUsIEdURVNU
X1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKTo6Z3Rlc3RfQWxsVGVzdHNfLCAgICBcCisgICAg
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVUeXBlTGlzdDxUeXBlcz46OnR5cGU+
OjogICAgICAgICAgICAgXAorICAgICAgICAgIFJlZ2lzdGVyKEdURVNUX1NUUklOR0lGWV8oUHJl
Zml4KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwg
ICBcCisgICAgICAgICAgICAgICAgICAgJkdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8o
U3VpdGVOYW1lKSwgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgIEdURVNUX1NUUklO
R0lGWV8oU3VpdGVOYW1lKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICBHVEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKFN1aXRlTmFtZSksICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2Vu
ZXJhdGVOYW1lczwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8ICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkFfQVJHU19fPjo6dHlwZSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkdlbmVyYXRlVHlwZUxpc3Q8VHlwZXM+Ojp0eXBlPigpKQorCisvLyBMZWdhY3kg
QVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9D
QVNFX1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fz
c2VydCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okluc3RhbnRpYXRlVHlwZWRUZXN0
Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCAiIik7IFwKKyAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9T
VUlURV9QCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisj
ZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgKaW5kZXggNWRm
NGIwYTNhNzEyNzY5MDQ1NWE5NDVjYjE1MjhiNmJkNzQ0OWI2Ni4uMTA4OGUxMTBiY2YwNmFlYmE1
NzAxNzU2NDI4NmIzYjRkZWZmNGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QuaApAQCAtNDksMTYgKzQ5LDIwIEBACiAKIC8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KKyNpZm5kZWYgR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9IXwogCisjaW5jbHVkZSA8Y3N0ZGRlZj4KICNpbmNsdWRlIDxsaW1pdHM+Cisj
aW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVkZSA8dHlwZV90cmFp
dHM+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
aW50ZXJuYWwuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCIKICNp
bmNsdWRlICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qt
bWF0Y2hlcnMuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCiAjaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJz
LmgiCkBAIC02OSwyMSArNzMsNiBAQAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8o
NDI1MSBcCiAvKiBjbGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2Vk
IGJ5IGNsaWVudHMgb2YgY2xhc3MgQiAqLykKIAotLy8gRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9y
bSwgZGlmZmVyZW50IHN0cmluZyBjbGFzc2VzIGFyZSBhdmFpbGFibGUuCi0vLyBPbiBMaW51eCwg
aW4gYWRkaXRpb24gdG8gOjpzdGQ6OnN0cmluZywgR29vZ2xlIGFsc28gbWFrZXMgdXNlIG9mCi0v
LyBjbGFzcyA6OnN0cmluZywgd2hpY2ggaGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyA6OnN0ZDo6
c3RyaW5nLCBidXQKLS8vIGhhcyBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLS8vCi0vLyBZ
b3UgY2FuIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyB0byAxIHRvIGluZGljYXRlIHRo
YXQKLS8vIDo6c3RyaW5nIGlzIGF2YWlsYWJsZSBBTkQgaXMgYSBkaXN0aW5jdCB0eXBlIHRvIDo6
c3RkOjpzdHJpbmcsIG9yCi0vLyBkZWZpbmUgaXQgdG8gMCB0byBpbmRpY2F0ZSBvdGhlcndpc2Uu
Ci0vLwotLy8gSWYgOjpzdGQ6OnN0cmluZyBhbmQgOjpzdHJpbmcgYXJlIHRoZSBzYW1lIGNsYXNz
IG9uIHlvdXIgcGxhdGZvcm0KLS8vIGR1ZSB0byBhbGlhc2luZywgeW91IHNob3VsZCBkZWZpbmUg
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgdG8gMC4KLS8vCi0vLyBJZiB5b3UgZG8gbm90IGRlZmlu
ZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORywgaXQgaXMgZGVmaW5lZAotLy8gaGV1cmlzdGljYWxs
eS4KLQogbmFtZXNwYWNlIHRlc3RpbmcgewogCiAvLyBTaWxlbmNlIEM0MTAwICh1bnJlZmVyZW5j
ZWQgZm9ybWFsIHBhcmFtZXRlcikgYW5kIDQ4MDUKQEAgLTExMiw2ICsxMDEsMTAgQEAgR1RFU1Rf
REVDTEFSRV9ib29sXyhjYXRjaF9leGNlcHRpb25zKTsKIC8vIHRvIGxldCBHb29nbGUgVGVzdCBk
ZWNpZGUuCiBHVEVTVF9ERUNMQVJFX3N0cmluZ18oY29sb3IpOwogCisvLyBUaGlzIGZsYWcgY29u
dHJvbHMgd2hldGhlciB0aGUgdGVzdCBydW5uZXIgc2hvdWxkIGNvbnRpbnVlIGV4ZWN1dGlvbiBw
YXN0CisvLyBmaXJzdCBmYWlsdXJlLgorR1RFU1RfREVDTEFSRV9ib29sXyhmYWlsX2Zhc3QpOwor
CiAvLyBUaGlzIGZsYWcgc2V0cyB1cCB0aGUgZmlsdGVyIHRvIHNlbGVjdCBieSBuYW1lIHVzaW5n
IGEgZ2xvYiBwYXR0ZXJuCiAvLyB0aGUgdGVzdHMgdG8gcnVuLiBJZiB0aGUgZmlsdGVyIGlzIG5v
dCBnaXZlbiBhbGwgdGVzdHMgYXJlIGV4ZWN1dGVkLgogR1RFU1RfREVDTEFSRV9zdHJpbmdfKGZp
bHRlcik7CkBAIC0xMjgsNiArMTIxLDkgQEAgR1RFU1RfREVDTEFSRV9ib29sXyhsaXN0X3Rlc3Rz
KTsKIC8vIGluIGFkZGl0aW9uIHRvIGl0cyBub3JtYWwgdGV4dHVhbCBvdXRwdXQuCiBHVEVTVF9E
RUNMQVJFX3N0cmluZ18ob3V0cHV0KTsKIAorLy8gVGhpcyBmbGFncyBjb250cm9sIHdoZXRoZXIg
R29vZ2xlIFRlc3QgcHJpbnRzIG9ubHkgdGVzdCBmYWlsdXJlcy4KK0dURVNUX0RFQ0xBUkVfYm9v
bF8oYnJpZWYpOworCiAvLyBUaGlzIGZsYWdzIGNvbnRyb2wgd2hldGhlciBHb29nbGUgVGVzdCBw
cmludHMgdGhlIGVsYXBzZWQgdGltZSBmb3IgZWFjaAogLy8gdGVzdC4KIEdURVNUX0RFQ0xBUkVf
Ym9vbF8ocHJpbnRfdGltZSk7CkBAIC0xODgsNiArMTg0LDcgQEAgY2xhc3MgRnVjaHNpYURlYXRo
VGVzdDsKIGNsYXNzIFVuaXRUZXN0SW1wbCogR2V0VW5pdFRlc3RJbXBsKCk7CiB2b2lkIFJlcG9y
dEZhaWx1cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
JiBtZXNzYWdlKTsKK3N0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogR2V0SWdub3JlZFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVzKCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogCkBAIC0xOTUsNyAr
MTkyLDEyIEBAIHZvaWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKFRlc3RQYXJ0UmVz
dWx0OjpUeXBlIHJlc3VsdF90eXBlLAogLy8gSWYgd2UgZG9uJ3QgZm9yd2FyZCBkZWNsYXJlIHRo
ZW0gdGhlIGNvbXBpbGVyIG1pZ2h0IGNvbmZ1c2UgdGhlIGNsYXNzZXMKIC8vIGluIGZyaWVuZHNo
aXAgY2xhdXNlcyB3aXRoIHNhbWUgbmFtZWQgY2xhc3NlcyBvbiB0aGUgc2NvcGUuCiBjbGFzcyBU
ZXN0OwotY2xhc3MgVGVzdENhc2U7CitjbGFzcyBUZXN0U3VpdGU7CisKKy8vIE9sZCBBUEkgaXMg
c3RpbGwgYXZhaWxhYmxlIGJ1dCBkZXByZWNhdGVkCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwordXNpbmcgVGVzdENhc2UgPSBUZXN0U3VpdGU7CisjZW5kaWYKIGNs
YXNzIFRlc3RJbmZvOwogY2xhc3MgVW5pdFRlc3Q7CiAKQEAgLTI4NCw3ICsyODYsMTEgQEAgY2xh
c3MgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBVc2VkIGluIEVYUEVDVF9UUlVF
L0ZBTFNFKGFzc2VydGlvbl9yZXN1bHQpLgogICBBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0
aW9uUmVzdWx0JiBvdGhlcik7CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8
IDE5MTAKKy8vIEM0ODAwIGlzIGEgbGV2ZWwgMyB3YXJuaW5nIGluIFZpc3VhbCBTdHVkaW8gMjAx
NSBhbmQgZWFybGllci4KKy8vIFRoaXMgd2FybmluZyBpcyBub3QgZW1pdHRlZCBpbiBWaXN1YWwg
U3R1ZGlvIDIwMTcuCisvLyBUaGlzIHdhcm5pbmcgaXMgb2ZmIGJ5IGRlZmF1bHQgc3RhcnRpbmcg
aW4gVmlzdWFsIFN0dWRpbyAyMDE5IGJ1dCBjYW4gYmUKKy8vIGVuYWJsZWQgd2l0aCBjb21tYW5k
LWxpbmUgb3B0aW9ucy4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTEw
IHx8IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hf
KDQ4MDAgLyogZm9yY2luZyB2YWx1ZSB0byBib29sICovKQogI2VuZGlmCiAKQEAgLTI5OCwxMiAr
MzA0LDEzIEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiAgIGV4cGxpY2l0IEFzc2VydGlvblJlc3VsdCgKICAgICAgIGNvbnN0IFQm
IHN1Y2Nlc3MsCi0gICAgICB0eXBlbmFtZSBpbnRlcm5hbDo6RW5hYmxlSWY8Ci0gICAgICAgICAg
IWludGVybmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgQXNzZXJ0aW9uUmVzdWx0Pjo6dmFs
dWU+Ojp0eXBlKgotICAgICAgICAgIC8qZW5hYmxlciovID0gTlVMTCkKKyAgICAgIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICFzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIEFzc2Vy
dGlvblJlc3VsdD46OnZhbHVlPjo6dHlwZSoKKyAgICAgIC8qZW5hYmxlciovCisgICAgICA9IG51
bGxwdHIpCiAgICAgICA6IHN1Y2Nlc3NfKHN1Y2Nlc3MpIHt9CiAKLSNpZiBkZWZpbmVkKF9NU0Nf
VkVSKSAmJiBfTVNDX1ZFUiA8IDE5MTAKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19W
RVIgPCAxOTEwIHx8IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BPUF8oKQogI2VuZGlmCiAKQEAgLTMxMyw3ICszMjAsNyBAQCBjbGFzcyBHVEVTVF9BUElf
IEFzc2VydGlvblJlc3VsdCB7CiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAKLSAgLy8gUmV0dXJu
cyB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSBhc3NlcnRpb24gc3VjY2VlZGVkLgogICBvcGVyYXRvciBib29sKCkg
Y29uc3QgeyByZXR1cm4gc3VjY2Vzc187IH0gIC8vIE5PTElOVAogCiAgIC8vIFJldHVybnMgdGhl
IGFzc2VydGlvbidzIG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KQEAg
LTMyNCw5ICszMzEsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgIC8v
IGFzc2VydGlvbidzIGV4cGVjdGF0aW9uKS4gV2hlbiBub3RoaW5nIGhhcyBiZWVuIHN0cmVhbWVk
IGludG8gdGhlCiAgIC8vIG9iamVjdCwgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCiAgIGNvbnN0
IGNoYXIqIG1lc3NhZ2UoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG1lc3NhZ2VfLmdldCgpICE9IE5V
TEwgPyAgbWVzc2FnZV8tPmNfc3RyKCkgOiAiIjsKKyAgICByZXR1cm4gbWVzc2FnZV8uZ2V0KCkg
IT0gbnVsbHB0ciA/IG1lc3NhZ2VfLT5jX3N0cigpIDogIiI7CiAgIH0KLSAgLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGFmdGVyIG1ha2luZyBzdXJlIG5vIGNsaWVudHMgdXNlIGl0LgogICAvLyBEZXBy
ZWNhdGVkOyBwbGVhc2UgdXNlIG1lc3NhZ2UoKSBpbnN0ZWFkLgogICBjb25zdCBjaGFyKiBmYWls
dXJlX21lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNzYWdlKCk7IH0KIApAQCAtMzQ3LDggKzM1
Myw3IEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICBwcml2YXRlOgogICAv
LyBBcHBlbmRzIHRoZSBjb250ZW50cyBvZiBtZXNzYWdlIHRvIG1lc3NhZ2VfLgogICB2b2lkIEFw
cGVuZE1lc3NhZ2UoY29uc3QgTWVzc2FnZSYgYV9tZXNzYWdlKSB7Ci0gICAgaWYgKG1lc3NhZ2Vf
LmdldCgpID09IE5VTEwpCi0gICAgICBtZXNzYWdlXy5yZXNldChuZXcgOjpzdGQ6OnN0cmluZyk7
CisgICAgaWYgKG1lc3NhZ2VfLmdldCgpID09IG51bGxwdHIpIG1lc3NhZ2VfLnJlc2V0KG5ldyA6
OnN0ZDo6c3RyaW5nKTsKICAgICBtZXNzYWdlXy0+YXBwZW5kKGFfbWVzc2FnZS5HZXRTdHJpbmco
KS5jX3N0cigpKTsKICAgfQogCkBAIC0zNjEsNyArMzY2LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBB
c3NlcnRpb25SZXN1bHQgewogICAvLyBjb25zdHJ1Y3QgaXMgbm90IHNhdGlzZmllZCB3aXRoIHRo
ZSBwcmVkaWNhdGUncyBvdXRjb21lLgogICAvLyBSZWZlcmVuY2VkIHZpYSBhIHBvaW50ZXIgdG8g
YXZvaWQgdGFraW5nIHRvbyBtdWNoIHN0YWNrIGZyYW1lIHNwYWNlCiAgIC8vIHdpdGggdGVzdCBh
c3NlcnRpb25zLgotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2Fn
ZV87CisgIHN0ZDo6dW5pcXVlX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2FnZV87CiB9OwogCiAv
LyBNYWtlcyBhIHN1Y2Nlc3NmdWwgYXNzZXJ0aW9uIHJlc3VsdC4KQEAgLTM4NSw4ICszOTAsOCBA
QCBuYW1lc3BhY2UgdGVzdGluZyB7CiAKIC8vIFRoZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGFsbCB0
ZXN0cyBpbmhlcml0IGZyb20uCiAvLwotLy8gSW4gR29vZ2xlIFRlc3QsIGEgdW5pdCB0ZXN0IHBy
b2dyYW0gY29udGFpbnMgb25lIG9yIG1hbnkgVGVzdENhc2VzLCBhbmQKLS8vIGVhY2ggVGVzdENh
c2UgY29udGFpbnMgb25lIG9yIG1hbnkgVGVzdHMuCisvLyBJbiBHb29nbGUgVGVzdCwgYSB1bml0
IHRlc3QgcHJvZ3JhbSBjb250YWlucyBvbmUgb3IgbWFueSBUZXN0U3VpdGVzLCBhbmQKKy8vIGVh
Y2ggVGVzdFN1aXRlIGNvbnRhaW5zIG9uZSBvciBtYW55IFRlc3RzLgogLy8KIC8vIFdoZW4geW91
IGRlZmluZSBhIHRlc3QgdXNpbmcgdGhlIFRFU1QgbWFjcm8sIHlvdSBkb24ndCBuZWVkIHRvCiAv
LyBleHBsaWNpdGx5IGRlcml2ZSBmcm9tIFRlc3QgLSB0aGUgVEVTVCBtYWNybyBhdXRvbWF0aWNh
bGx5IGRvZXMKQEAgLTQxMCw0OSArNDE1LDU0IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdCB7CiAg
cHVibGljOgogICBmcmllbmQgY2xhc3MgVGVzdEluZm87CiAKLSAgLy8gRGVmaW5lcyB0eXBlcyBm
b3IgcG9pbnRlcnMgdG8gZnVuY3Rpb25zIHRoYXQgc2V0IHVwIGFuZCB0ZWFyIGRvd24KLSAgLy8g
YSB0ZXN0IGNhc2UuCi0gIHR5cGVkZWYgaW50ZXJuYWw6OlNldFVwVGVzdENhc2VGdW5jIFNldFVw
VGVzdENhc2VGdW5jOwotICB0eXBlZGVmIGludGVybmFsOjpUZWFyRG93blRlc3RDYXNlRnVuYyBU
ZWFyRG93blRlc3RDYXNlRnVuYzsKLQogICAvLyBUaGUgZCd0b3IgaXMgdmlydHVhbCBhcyB3ZSBp
bnRlbmQgdG8gaW5oZXJpdCBmcm9tIFRlc3QuCiAgIHZpcnR1YWwgflRlc3QoKTsKIAotICAvLyBT
ZXRzIHVwIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgor
ICAvLyBTZXRzIHVwIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBz
dWl0ZS4KICAgLy8KLSAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6U2V0VXBUZXN0Q2Fz
ZSgpIGJlZm9yZSBydW5uaW5nIHRoZSBmaXJzdAotICAvLyB0ZXN0IGluIHRlc3QgY2FzZSBGb28u
ICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gU2V0VXBUZXN0Q2Fz
ZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgorICAvLyBH
b29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpTZXRVcFRlc3RTdWl0ZSgpIGJlZm9yZSBydW5uaW5n
IHRoZSBmaXJzdAorICAvLyB0ZXN0IGluIHRlc3Qgc3VpdGUgRm9vLiAgSGVuY2UgYSBzdWItY2xh
c3MgY2FuIGRlZmluZSBpdHMgb3duCisgIC8vIFNldFVwVGVzdFN1aXRlKCkgbWV0aG9kIHRvIHNo
YWRvdyB0aGUgb25lIGRlZmluZWQgaW4gdGhlIHN1cGVyCiAgIC8vIGNsYXNzLgotICBzdGF0aWMg
dm9pZCBTZXRVcFRlc3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7
fQogCi0gIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhp
cyB0ZXN0IGNhc2UuCisgIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVz
dHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICAvLwotICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwg
Rm9vOjpUZWFyRG93blRlc3RDYXNlKCkgYWZ0ZXIgcnVubmluZyB0aGUgbGFzdAotICAvLyB0ZXN0
IGluIHRlc3QgY2FzZSBGb28uICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24K
LSAgLy8gVGVhckRvd25UZXN0Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVk
IGluIHRoZSBzdXBlcgorICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93blRl
c3RTdWl0ZSgpIGFmdGVyIHJ1bm5pbmcgdGhlIGxhc3QKKyAgLy8gdGVzdCBpbiB0ZXN0IHN1aXRl
IEZvby4gIEhlbmNlIGEgc3ViLWNsYXNzIGNhbiBkZWZpbmUgaXRzIG93bgorICAvLyBUZWFyRG93
blRlc3RTdWl0ZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBl
cgogICAvLyBjbGFzcy4KKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7fQorCisg
IC8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlLiBVc2UgU2V0
VXBUZXN0U3VpdGUgYW5kCisgIC8vIFRlYXJEb3duVGVzdFN1aXRlIGluc3RlYWQuCisjaWZuZGVm
IEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHt9CisjZW5kaWYg
IC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCi0gIC8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorICAvLyBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJl
LgogICBzdGF0aWMgYm9vbCBIYXNGYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1cm5zIHRydWUg
aWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUuCisgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBm
YWlsdXJlLgogICBzdGF0aWMgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgorICAv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCB3YXMgc2tpcHBl
ZC4KKyAgc3RhdGljIGJvb2wgSXNTa2lwcGVkKCk7CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgogICAvLyBu
b24tZmF0YWwpIGZhaWx1cmUuCiAgIHN0YXRpYyBib29sIEhhc0ZhaWx1cmUoKSB7IHJldHVybiBI
YXNGYXRhbEZhaWx1cmUoKSB8fCBIYXNOb25mYXRhbEZhaWx1cmUoKTsgfQogCi0gIC8vIExvZ3Mg
YSBwcm9wZXJ0eSBmb3IgdGhlIGN1cnJlbnQgdGVzdCwgdGVzdCBjYXNlLCBvciBmb3IgdGhlIGVu
dGlyZQorICAvLyBMb2dzIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHRlc3QsIHRlc3Qgc3Vp
dGUsIG9yIGZvciB0aGUgZW50aXJlCiAgIC8vIGludm9jYXRpb24gb2YgdGhlIHRlc3QgcHJvZ3Jh
bSB3aGVuIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhCi0gIC8vIHRlc3QgY2FzZS4g
IE9ubHkgdGhlIGxhc3QgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IGlzIHJlbWVtYmVyZWQuICBUaGVz
ZQorICAvLyB0ZXN0IHN1aXRlLiAgT25seSB0aGUgbGFzdCB2YWx1ZSBmb3IgYSBnaXZlbiBrZXkg
aXMgcmVtZW1iZXJlZC4gIFRoZXNlCiAgIC8vIGFyZSBwdWJsaWMgc3RhdGljIHNvIHRoZXkgY2Fu
IGJlIGNhbGxlZCBmcm9tIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIC8vIG5vdCBtZW1i
ZXJzIG9mIHRoZSB0ZXN0IGZpeHR1cmUuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGR1
cmluZwogICAvLyBsaWZlc3BhbiBvZiB0aGUgdGVzdCAoZnJvbSB0aGUgbW9tZW50IGl0cyBjb25z
dHJ1Y3RvciBzdGFydHMgdG8gdGhlCiAgIC8vIG1vbWVudCBpdHMgZGVzdHJ1Y3RvciBmaW5pc2hl
cykgd2lsbCBiZSBvdXRwdXQgaW4gWE1MIGFzIGF0dHJpYnV0ZXMgb2YKICAgLy8gdGhlIDx0ZXN0
Y2FzZT4gZWxlbWVudC4gIFByb3BlcnRpZXMgcmVjb3JkZWQgZnJvbSBmaXh0dXJlJ3MKLSAgLy8g
U2V0VXBUZXN0Q2FzZSBvciBUZWFyRG93blRlc3RDYXNlIGFyZSBsb2dnZWQgYXMgYXR0cmlidXRl
cyBvZiB0aGUKKyAgLy8gU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUgYXJlIGxv
Z2dlZCBhcyBhdHRyaWJ1dGVzIG9mIHRoZQogICAvLyBjb3JyZXNwb25kaW5nIDx0ZXN0c3VpdGU+
IGVsZW1lbnQuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGluIHRoZQogICAvLyBnbG9i
YWwgY29udGV4dCAoYmVmb3JlIG9yIGFmdGVyIGludm9jYXRpb24gb2YgUlVOX0FMTF9URVNUUyBh
bmQgZnJvbQogICAvLyBTZXRVcC9UZWFyRG93biBtZXRob2Qgb2YgRW52aXJvbm1lbnQgb2JqZWN0
cyByZWdpc3RlcmVkIHdpdGggR29vZ2xlCkBAIC00NzEsOCArNDgxLDggQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUZXN0IHsKICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CiAKICBwcml2YXRlOgotICAv
LyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZSBzYW1lIGZpeHR1cmUg
Y2xhc3MgYXMKLSAgLy8gdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBjYXNlLgor
ICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgdGhl
IHNhbWUgZml4dHVyZSBjbGFzcworICAvLyBhcyB0aGUgZmlyc3QgdGVzdCBpbiB0aGUgY3VycmVu
dCB0ZXN0IHN1aXRlLgogICBzdGF0aWMgYm9vbCBIYXNTYW1lRml4dHVyZUNsYXNzKCk7CiAKICAg
Ly8gUnVucyB0aGUgdGVzdCBhZnRlciB0aGUgdGVzdCBmaXh0dXJlIGhhcyBiZWVuIHNldCB1cC4K
QEAgLTQ5MCw3ICs1MDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3QgewogICAvLyBpbnRlcm5h
bCBtZXRob2QgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBuYW1lcyB1c2VkIGluIHVzZXIgVEVTVHMu
CiAgIHZvaWQgRGVsZXRlU2VsZl8oKSB7IGRlbGV0ZSB0aGlzOyB9CiAKLSAgY29uc3QgaW50ZXJu
YWw6OnNjb3BlZF9wdHI8IEdURVNUX0ZMQUdfU0FWRVJfID4gZ3Rlc3RfZmxhZ19zYXZlcl87Cisg
IGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxHVEVTVF9GTEFHX1NBVkVSXz4gZ3Rlc3RfZmxhZ19zYXZl
cl87CiAKICAgLy8gT2Z0ZW4gYSB1c2VyIG1pc3NwZWxscyBTZXRVcCgpIGFzIFNldHVwKCkgYW5k
IHNwZW5kcyBhIGxvbmcgdGltZQogICAvLyB3b25kZXJpbmcgd2h5IGl0IGlzIG5ldmVyIGNhbGxl
ZCBieSBHb29nbGUgVGVzdC4gIFRoZSBkZWNsYXJhdGlvbiBvZgpAQCAtNTA5LDcgKzUxOSw3IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdCB7CiAgIC8vIElmIHlvdSBzZWUgYW4gZXJyb3IgYWJvdXQg
b3ZlcnJpZGluZyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG9yCiAgIC8vIGFib3V0IGl0IGJlaW5n
IHByaXZhdGUsIHlvdSBoYXZlIG1pcy1zcGVsbGVkIFNldFVwKCkgYXMgU2V0dXAoKS4KICAgc3Ry
dWN0IFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwIHt9OwotICB2aXJ0dWFsIFNldHVwX3No
b3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIE5VTEw7IH0KKyAgdmlydHVh
bCBTZXR1cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJldHVybiBudWxscHRy
OyB9CiAKICAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0cy4KICAgR1RFU1RfRElTQUxMT1df
Q09QWV9BTkRfQVNTSUdOXyhUZXN0KTsKQEAgLTU3MywyMSArNTgzLDI4IEBAIGNsYXNzIEdURVNU
X0FQSV8gVGVzdFJlc3VsdCB7CiAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgdGVzdCBw
cm9wZXJ0aWVzLgogICBpbnQgdGVzdF9wcm9wZXJ0eV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFydCBmYWlsZWQp
LgotICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFGYWlsZWQoKTsgfQorICAvLyBSZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFy
dCBmYWlsZWQpLgorICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFTa2lwcGVkKCkgJiYg
IUZhaWxlZCgpOyB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IHdhcyBza2lwcGVkLgorICBib29sIFNraXBwZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSB0ZXN0IGZhaWxlZC4KICAgYm9vbCBGYWlsZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5z
IHRydWUgaWZmIHRoZSB0ZXN0IGZhdGFsbHkgZmFpbGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiAgIGJvb2wgSGFzRmF0YWxGYWls
dXJlKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24t
ZmF0YWwgZmFpbHVyZS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGhhcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgogICBib29sIEhhc05vbmZhdGFsRmFpbHVyZSgpIGNv
bnN0OwogCiAgIC8vIFJldHVybnMgdGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgog
ICBUaW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lKCkgY29uc3QgeyByZXR1cm4gZWxhcHNlZF90aW1l
XzsgfQogCisgIC8vIEdldHMgdGhlIHRpbWUgb2YgdGhlIHRlc3QgY2FzZSBzdGFydCwgaW4gbXMg
ZnJvbSB0aGUgc3RhcnQgb2YgdGhlCisgIC8vIFVOSVggZXBvY2guCisgIFRpbWVJbk1pbGxpcyBz
dGFydF90aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBzdGFydF90aW1lc3RhbXBfOyB9CisKICAg
Ly8gUmV0dXJucyB0aGUgaS10aCB0ZXN0IHBhcnQgcmVzdWx0IGFtb25nIGFsbCB0aGUgcmVzdWx0
cy4gaSBjYW4gcmFuZ2UgZnJvbSAwCiAgIC8vIHRvIHRvdGFsX3BhcnRfY291bnQoKSAtIDEuIElm
IGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIGFib3J0cyB0aGUgcHJvZ3JhbS4KICAgY29uc3QgVGVz
dFBhcnRSZXN1bHQmIEdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdDsKQEAgLTU5OSw3ICs2
MTYsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogCiAgcHJpdmF0ZToKICAgZnJp
ZW5kIGNsYXNzIFRlc3RJbmZvOwotICBmcmllbmQgY2xhc3MgVGVzdENhc2U7CisgIGZyaWVuZCBj
bGFzcyBUZXN0U3VpdGU7CiAgIGZyaWVuZCBjbGFzcyBVbml0VGVzdDsKICAgZnJpZW5kIGNsYXNz
IGludGVybmFsOjpEZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjsKICAgZnJpZW5k
IGNsYXNzIGludGVybmFsOjpFeGVjRGVhdGhUZXN0OwpAQCAtNjE4LDYgKzYzNSw5IEBAIGNsYXNz
IEdURVNUX0FQSV8gVGVzdFJlc3VsdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJvcGVydGllc187CiAg
IH0KIAorICAvLyBTZXRzIHRoZSBzdGFydCB0aW1lLgorICB2b2lkIHNldF9zdGFydF90aW1lc3Rh
bXAoVGltZUluTWlsbGlzIHN0YXJ0KSB7IHN0YXJ0X3RpbWVzdGFtcF8gPSBzdGFydDsgfQorCiAg
IC8vIFNldHMgdGhlIGVsYXBzZWQgdGltZS4KICAgdm9pZCBzZXRfZWxhcHNlZF90aW1lKFRpbWVJ
bk1pbGxpcyBlbGFwc2VkKSB7IGVsYXBzZWRfdGltZV8gPSBlbGFwc2VkOyB9CiAKQEAgLTYzMSw3
ICs2NTEsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7CiAKICAgLy8gQWRkcyBh
IGZhaWx1cmUgaWYgdGhlIGtleSBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBvZiBHb29nbGUgVGVz
dAotICAvLyB0ZXN0Y2FzZSB0YWdzLiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2
YWxpZC4KKyAgLy8gdGVzdHN1aXRlIHRhZ3MuICBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3BlcnR5
IGlzIHZhbGlkLgogICAvLyBGSVhNRTogVmFsaWRhdGUgYXR0cmlidXRlIG5hbWVzIGFyZSBsZWdh
bCBhbmQgaHVtYW4gcmVhZGFibGUuCiAgIHN0YXRpYyBib29sIFZhbGlkYXRlVGVzdFByb3BlcnR5
KGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxfZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KTsKQEAgLTY2MSw2
ICs2ODEsOCBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICBzdGQ6OnZlY3RvcjxU
ZXN0UHJvcGVydHk+IHRlc3RfcHJvcGVydGllc187CiAgIC8vIFJ1bm5pbmcgY291bnQgb2YgZGVh
dGggdGVzdHMuCiAgIGludCBkZWF0aF90ZXN0X2NvdW50XzsKKyAgLy8gVGhlIHN0YXJ0IHRpbWUs
IGluIG1pbGxpc2Vjb25kcyBzaW5jZSBVTklYIEVwb2NoLgorICBUaW1lSW5NaWxsaXMgc3RhcnRf
dGltZXN0YW1wXzsKICAgLy8gVGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgogICBU
aW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lXzsKIApAQCAtNjcwLDcgKzY5Miw3IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVGVzdFJlc3VsdCB7CiAKIC8vIEEgVGVzdEluZm8gb2JqZWN0IHN0b3JlcyB0aGUg
Zm9sbG93aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdDoKIC8vCi0vLyAgIFRlc3QgY2FzZSBu
YW1lCisvLyAgIFRlc3Qgc3VpdGUgbmFtZQogLy8gICBUZXN0IG5hbWUKIC8vICAgV2hldGhlciB0
aGUgdGVzdCBzaG91bGQgYmUgcnVuCiAvLyAgIEEgZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNyZWF0
ZXMgdGhlIHRlc3Qgb2JqZWN0IHdoZW4gaW52b2tlZApAQCAtNjg1LDggKzcwNywxMyBAQCBjbGFz
cyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAgLy8gZG9uJ3QgaW5oZXJpdCBmcm9tIFRlc3RJbmZv
LgogICB+VGVzdEluZm8oKTsKIAotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgbmFtZS4KLSAg
Y29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X2Nhc2VfbmFt
ZV8uY19zdHIoKTsgfQorICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHN1aXRlIG5hbWUuCisgIGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3Rfc3VpdGVfbmFtZV8u
Y19zdHIoKTsgfQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWls
YWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgY29uc3Qg
Y2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X3N1aXRlX25hbWUoKTsg
fQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBS
ZXR1cm5zIHRoZSB0ZXN0IG5hbWUuCiAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVy
biBuYW1lXy5jX3N0cigpOyB9CkBAIC02OTQsMTcgKzcyMSwxNSBAQCBjbGFzcyBHVEVTVF9BUElf
IFRlc3RJbmZvIHsKICAgLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUs
IG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYSB0eXBlZAogICAvLyBvciBhIHR5cGUtcGFyYW1ldGVy
aXplZCB0ZXN0LgogICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh0
eXBlX3BhcmFtXy5nZXQoKSAhPSBOVUxMKQotICAgICAgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0
cigpOwotICAgIHJldHVybiBOVUxMOworICAgIGlmICh0eXBlX3BhcmFtXy5nZXQoKSAhPSBudWxs
cHRyKSByZXR1cm4gdHlwZV9wYXJhbV8tPmNfc3RyKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiAg
IH0KIAogICAvLyBSZXR1cm5zIHRoZSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBw
YXJhbWV0ZXIsIG9yIE5VTEwgaWYgdGhpcwogICAvLyBpcyBub3QgYSB2YWx1ZS1wYXJhbWV0ZXJp
emVkIHRlc3QuCiAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh2
YWx1ZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB2YWx1ZV9wYXJhbV8tPmNf
c3RyKCk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHZhbHVlX3BhcmFtXy5nZXQoKSAhPSBu
dWxscHRyKSByZXR1cm4gdmFsdWVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRy
OwogICB9CiAKICAgLy8gUmV0dXJucyB0aGUgZmlsZSBuYW1lIHdoZXJlIHRoaXMgdGVzdCBpcyBk
ZWZpbmVkLgpAQCAtNzIxLDcgKzc0Niw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewog
ICAvLyBiZWVuIHNwZWNpZmllZCkgYW5kIGl0cyBmdWxsIG5hbWUgbWF0Y2hlcyB0aGUgdXNlci1z
cGVjaWZpZWQgZmlsdGVyLgogICAvLwogICAvLyBHb29nbGUgVGVzdCBhbGxvd3MgdGhlIHVzZXIg
dG8gZmlsdGVyIHRoZSB0ZXN0cyBieSB0aGVpciBmdWxsIG5hbWVzLgotICAvLyBUaGUgZnVsbCBu
YW1lIG9mIGEgdGVzdCBCYXIgaW4gdGVzdCBjYXNlIEZvbyBpcyBkZWZpbmVkIGFzCisgIC8vIFRo
ZSBmdWxsIG5hbWUgb2YgYSB0ZXN0IEJhciBpbiB0ZXN0IHN1aXRlIEZvbyBpcyBkZWZpbmVkIGFz
CiAgIC8vICJGb28uQmFyIi4gIE9ubHkgdGhlIHRlc3RzIHRoYXQgbWF0Y2ggdGhlIGZpbHRlciB3
aWxsIHJ1bi4KICAgLy8KICAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBv
ZiBnbG9iIChub3QgcmVnZXgpIHBhdHRlcm5zLApAQCAtNzM0LDcgKzc1OSw3IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBjb250YWlucyB0aGUgY2hhcmFjdGVyICdBJyBvciBz
dGFydHMgd2l0aCAiRm9vLiIuCiAgIGJvb2wgc2hvdWxkX3J1bigpIGNvbnN0IHsgcmV0dXJuIHNo
b3VsZF9ydW5fOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlzIHRlc3Qgd2lsbCBhcHBl
YXIgaW4gdGhlIFhNTCByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGlzIHRlc3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGJvb2wgaXNfcmVwb3J0
YWJsZSgpIGNvbnN0IHsKICAgICAvLyBUaGUgWE1MIHJlcG9ydCBpbmNsdWRlcyB0ZXN0cyBtYXRj
aGluZyB0aGUgZmlsdGVyLCBleGNsdWRpbmcgdGhvc2UKICAgICAvLyBydW4gaW4gb3RoZXIgc2hh
cmRzLgpAQCAtNzQ5LDI0ICs3NzQsMTkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0SW5mbyB7CiAg
IGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6RGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk7CiAjZW5kaWYg
IC8vIEdURVNUX0hBU19ERUFUSF9URVNUCiAgIGZyaWVuZCBjbGFzcyBUZXN0OwotICBmcmllbmQg
Y2xhc3MgVGVzdENhc2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3VpdGU7CiAgIGZyaWVuZCBjbGFz
cyBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsOwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlN0cmVh
bWluZ0xpc3RlbmVyVGVzdDsKICAgZnJpZW5kIFRlc3RJbmZvKiBpbnRlcm5hbDo6TWFrZUFuZFJl
Z2lzdGVyVGVzdEluZm8oCi0gICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAg
IGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAg
Y29uc3QgY2hhciogdmFsdWVfcGFyYW0sCi0gICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGNv
ZGVfbG9jYXRpb24sCi0gICAgICBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0g
ICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICBUZXN0OjpUZWFy
RG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMsCisgICAgICBjb25zdCBjaGFyKiB0ZXN0X3N1
aXRlX25hbWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCisgICAg
ICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBjb2RlX2xv
Y2F0aW9uLAorICAgICAgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkLCBpbnRlcm5h
bDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgIGludGVybmFsOjpUZWFyRG93
blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjLAogICAgICAgaW50ZXJuYWw6OlRlc3RGYWN0b3J5
QmFzZSogZmFjdG9yeSk7CiAKICAgLy8gQ29uc3RydWN0cyBhIFRlc3RJbmZvIG9iamVjdC4gVGhl
IG5ld2x5IGNvbnN0cnVjdGVkIGluc3RhbmNlIGFzc3VtZXMKICAgLy8gb3duZXJzaGlwIG9mIHRo
ZSBmYWN0b3J5IG9iamVjdC4KLSAgVGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RfY2Fz
ZV9uYW1lLAotICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwKKyAgVGVzdEluZm8o
Y29uc3Qgc3RkOjpzdHJpbmcmIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUsCiAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwgICAvLyBOVUxMIGlmIG5v
dCBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0CiAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdmFs
dWVfcGFyYW0sICAvLyBOVUxMIGlmIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdAogICAg
ICAgICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGFfY29kZV9sb2NhdGlvbiwKQEAgLTc4Mywy
NiArODAzLDI5IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBkZWxldGVzIGl0
LgogICB2b2lkIFJ1bigpOwogCisgIC8vIFNraXAgYW5kIHJlY29yZHMgdGhlIHRlc3QgcmVzdWx0
IGZvciB0aGlzIG9iamVjdC4KKyAgdm9pZCBTa2lwKCk7CisKICAgc3RhdGljIHZvaWQgQ2xlYXJU
ZXN0UmVzdWx0KFRlc3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICB0ZXN0X2luZm8tPnJlc3VsdF8u
Q2xlYXIoKTsKICAgfQogCiAgIC8vIFRoZXNlIGZpZWxkcyBhcmUgaW1tdXRhYmxlIHByb3BlcnRp
ZXMgb2YgdGhlIHRlc3QuCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3RfY2FzZV9uYW1lXzsgICAg
IC8vIFRlc3QgY2FzZSBuYW1lCisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87
ICAgIC8vIHRlc3Qgc3VpdGUgbmFtZQogICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lXzsgICAgICAg
ICAgICAgICAvLyBUZXN0IG5hbWUKICAgLy8gTmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9y
IE5VTEwgaWYgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhCiAgIC8vIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0LgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5n
PiB0eXBlX3BhcmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJp
bmc+IHR5cGVfcGFyYW1fOwogICAvLyBUZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBw
YXJhbWV0ZXIsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYQogICAvLyB2YWx1ZS1wYXJhbWV0ZXJp
emVkIHRlc3QuCi0gIGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJp
bmc+IHZhbHVlX3BhcmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpz
dHJpbmc+IHZhbHVlX3BhcmFtXzsKICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBsb2NhdGlvbl87
Ci0gIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87ICAgLy8gSUQgb2Yg
dGhlIHRlc3QgZml4dHVyZSBjbGFzcwotICBib29sIHNob3VsZF9ydW5fOyAgICAgICAgICAgICAg
ICAgLy8gVHJ1ZSBpZmYgdGhpcyB0ZXN0IHNob3VsZCBydW4KLSAgYm9vbCBpc19kaXNhYmxlZF87
ICAgICAgICAgICAgICAgIC8vIFRydWUgaWZmIHRoaXMgdGVzdCBpcyBkaXNhYmxlZAotICBib29s
IG1hdGNoZXNfZmlsdGVyXzsgICAgICAgICAgICAgLy8gVHJ1ZSBpZiB0aGlzIHRlc3QgbWF0Y2hl
cyB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZXItc3BlY2lm
aWVkIGZpbHRlci4KLSAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgICAgICAgIC8vIFdpbGwg
YmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCisgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZml4dHVy
ZV9jbGFzc19pZF87ICAvLyBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzCisgIGJvb2wgc2hv
dWxkX3J1bl87ICAgICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCBzaG91
bGQgcnVuCisgIGJvb2wgaXNfZGlzYWJsZWRfOyAgICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5
IGlmIHRoaXMgdGVzdCBpcyBkaXNhYmxlZAorICBib29sIG1hdGNoZXNfZmlsdGVyXzsgICAgICAg
Ly8gVHJ1ZSBpZiB0aGlzIHRlc3QgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHVzZXItc3BlY2lmaWVkIGZpbHRlci4KKyAgYm9vbCBpc19pbl9hbm90aGVyX3No
YXJkXzsgIC8vIFdpbGwgYmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCiAgIGludGVybmFsOjpUZXN0
RmFjdG9yeUJhc2UqIGNvbnN0IGZhY3RvcnlfOyAgLy8gVGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHRl
c3Qgb2JqZWN0CiAKQEAgLTgxMyw5MCArODM2LDk4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdElu
Zm8gewogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RJbmZvKTsKIH07CiAK
LS8vIEEgdGVzdCBjYXNlLCB3aGljaCBjb25zaXN0cyBvZiBhIHZlY3RvciBvZiBUZXN0SW5mb3Mu
CisvLyBBIHRlc3Qgc3VpdGUsIHdoaWNoIGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRlc3RJbmZv
cy4KIC8vCi0vLyBUZXN0Q2FzZSBpcyBub3QgY29weWFibGUuCi1jbGFzcyBHVEVTVF9BUElfIFRl
c3RDYXNlIHsKKy8vIFRlc3RTdWl0ZSBpcyBub3QgY29weWFibGUuCitjbGFzcyBHVEVTVF9BUElf
IFRlc3RTdWl0ZSB7CiAgcHVibGljOgotICAvLyBDcmVhdGVzIGEgVGVzdENhc2Ugd2l0aCB0aGUg
Z2l2ZW4gbmFtZS4KKyAgLy8gQ3JlYXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1l
LgogICAvLwotICAvLyBUZXN0Q2FzZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rv
ci4gIEFsd2F5cyB1c2UgdGhpcwotICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0Q2Fz
ZSBvYmplY3QuCisgIC8vIFRlc3RTdWl0ZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1
Y3Rvci4gIEFsd2F5cyB1c2UgdGhpcworICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0
U3VpdGUgb2JqZWN0LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0gIC8vICAgbmFtZTog
ICAgICAgICBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UKKyAgLy8gICBuYW1lOiAgICAgICAgIG5hbWUg
b2YgdGhlIHRlc3Qgc3VpdGUKICAgLy8gICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0
ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKICAgLy8gICAgICAgICAgICAgICAgIHRo
aXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3VwX3RjOiAg
ICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAv
LyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3du
IHRoZSB0ZXN0IGNhc2UKLSAgVGVzdENhc2UoY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciog
YV90eXBlX3BhcmFtLAotICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBf
dGMsCi0gICAgICAgICAgIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90Yyk7
CisgIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMg
dXAgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1
bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQorICBUZXN0U3VpdGUoY29uc3Qg
Y2hhciogbmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFtLAorICAgICAgICAgICAgaW50ZXJu
YWw6OlNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICBpbnRlcm5hbDo6
VGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90Yyk7CiAKLSAgLy8gRGVzdHJ1Y3RvciBv
ZiBUZXN0Q2FzZS4KLSAgdmlydHVhbCB+VGVzdENhc2UoKTsKKyAgLy8gRGVzdHJ1Y3RvciBvZiBU
ZXN0U3VpdGUuCisgIHZpcnR1YWwgflRlc3RTdWl0ZSgpOwogCi0gIC8vIEdldHMgdGhlIG5hbWUg
b2YgdGhlIFRlc3RDYXNlLgorICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBUZXN0U3VpdGUuCiAg
IGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0cigpOyB9CiAKICAg
Ly8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhp
cyBpcyBub3QgYQotICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgorICAvLyB0eXBl
LXBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZS4KICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSgpIGNv
bnN0IHsKLSAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB0
eXBlX3BhcmFtXy0+Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAodHlwZV9wYXJh
bV8uZ2V0KCkgIT0gbnVsbHB0cikgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOworICAgIHJl
dHVybiBudWxscHRyOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSB0ZXN0IGluIHRo
aXMgdGVzdCBjYXNlIHNob3VsZCBydW4uCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgdGVzdCBp
biB0aGlzIHRlc3Qgc3VpdGUgc2hvdWxkIHJ1bi4KICAgYm9vbCBzaG91bGRfcnVuKCkgY29uc3Qg
eyByZXR1cm4gc2hvdWxkX3J1bl87IH0KIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vz
c2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1
Y2Nlc3NmdWwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBp
biB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMg
aW4gdGhpcyB0ZXN0IHN1aXRlLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3Q7CisK
KyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUu
CiAgIGludCBmYWlsZWRfdGVzdF9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBkaXNhYmxlZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTCByZXBv
cnQuCiAgIGludCByZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisg
IC8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUu
CiAgIGludCBkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKICAgLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIHRlc3RzIHRvIGJlIHByaW50ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGludCByZXBv
cnRhYmxlX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0
cyBpbiB0aGlzIHRlc3QgY2FzZSB0aGF0IHNob3VsZCBydW4uCisgIC8vIEdldCB0aGUgbnVtYmVy
IG9mIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZSB0aGF0IHNob3VsZCBydW4uCiAgIGludCB0ZXN0
X3RvX3J1bl9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVz
dHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdHMg
aW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgdG90YWxfdGVzdF9jb3VudCgpIGNvbnN0OwogCi0g
IC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBwYXNzZWQuCisgIC8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCiAgIGJvb2wgUGFzc2Vk
KCkgY29uc3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgdGVzdCBjYXNlIGZhaWxlZC4KLSAgYm9vbCBGYWlsZWQoKSBjb25zdCB7IHJldHVybiBmYWls
ZWRfdGVzdF9jb3VudCgpID4gMDsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3Qgc3VpdGUgZmFpbGVkLgorICBib29sIEZhaWxlZCgpIGNvbnN0IHsKKyAgICByZXR1
cm4gZmFpbGVkX3Rlc3RfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCkuRmFpbGVk
KCk7CisgIH0KIAogICAvLyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25k
cy4KICAgVGltZUluTWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRf
dGltZV87IH0KIAorICAvLyBHZXRzIHRoZSB0aW1lIG9mIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0LCBp
biBtcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKKyAgLy8gVU5JWCBlcG9jaC4KKyAgVGltZUluTWls
bGlzIHN0YXJ0X3RpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0X3RpbWVzdGFtcF87IH0K
KwogICAvLyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0ZXN0cy4gaSBjYW4g
cmFuZ2UgZnJvbSAwIHRvCiAgIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90
IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KICAgY29uc3QgVGVzdEluZm8qIEdldFRlc3RJ
bmZvKGludCBpKSBjb25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IHRoYXQgaG9s
ZHMgdGVzdCBwcm9wZXJ0aWVzIHJlY29yZGVkIGR1cmluZwotICAvLyBleGVjdXRpb24gb2YgU2V0
VXBUZXN0Q2FzZSBhbmQgVGVhckRvd25UZXN0Q2FzZS4KKyAgLy8gZXhlY3V0aW9uIG9mIFNldFVw
VGVzdFN1aXRlIGFuZCBUZWFyRG93blRlc3RTdWl0ZS4KICAgY29uc3QgVGVzdFJlc3VsdCYgYWRf
aG9jX3Rlc3RfcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gYWRfaG9jX3Rlc3RfcmVzdWx0XzsgfQog
CiAgcHJpdmF0ZToKICAgZnJpZW5kIGNsYXNzIFRlc3Q7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5h
bDo6VW5pdFRlc3RJbXBsOwogCi0gIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVz
dEluZm9zIGluIHRoaXMgVGVzdENhc2UuCisgIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Ig
b2YgVGVzdEluZm9zIGluIHRoaXMgVGVzdFN1aXRlLgogICBzdGQ6OnZlY3RvcjxUZXN0SW5mbyo+
JiB0ZXN0X2luZm9fbGlzdCgpIHsgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsgfQogCi0gIC8vIEdl
dHMgdGhlIChpbW11dGFibGUpIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhpcyBUZXN0Q2FzZS4K
KyAgLy8gR2V0cyB0aGUgKGltbXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZvcyBpbiB0aGlzIFRl
c3RTdWl0ZS4KICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiYgdGVzdF9pbmZvX2xpc3Qo
KSBjb25zdCB7CiAgICAgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsKICAgfQpAQCAtOTA4LDUxICs5
MzksNjcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIFNldHMgdGhlIHNob3Vs
ZF9ydW4gbWVtYmVyLgogICB2b2lkIHNldF9zaG91bGRfcnVuKGJvb2wgc2hvdWxkKSB7IHNob3Vs
ZF9ydW5fID0gc2hvdWxkOyB9CiAKLSAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBj
YXNlLiAgV2lsbCBkZWxldGUgdGhlIFRlc3RJbmZvIHVwb24KLSAgLy8gZGVzdHJ1Y3Rpb24gb2Yg
dGhlIFRlc3RDYXNlIG9iamVjdC4KKyAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBz
dWl0ZS4gIFdpbGwgZGVsZXRlIHRoZSBUZXN0SW5mbyB1cG9uCisgIC8vIGRlc3RydWN0aW9uIG9m
IHRoZSBUZXN0U3VpdGUgb2JqZWN0LgogICB2b2lkIEFkZFRlc3RJbmZvKFRlc3RJbmZvICogdGVz
dF9pbmZvKTsKIAotICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMg
dGVzdCBjYXNlLgorICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMg
dGVzdCBzdWl0ZS4KICAgdm9pZCBDbGVhclJlc3VsdCgpOwogCi0gIC8vIENsZWFycyB0aGUgcmVz
dWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSAgc3RhdGljIHZvaWQg
Q2xlYXJUZXN0Q2FzZVJlc3VsdChUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAgdGVzdF9jYXNl
LT5DbGVhclJlc3VsdCgpOworICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGlu
IHRoZSBnaXZlbiB0ZXN0IHN1aXRlLgorICBzdGF0aWMgdm9pZCBDbGVhclRlc3RTdWl0ZVJlc3Vs
dChUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgICB0ZXN0X3N1aXRlLT5DbGVhclJlc3VsdCgp
OwogICB9CiAKLSAgLy8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENhc2UuCisgIC8vIFJ1
bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgdm9pZCBSdW4oKTsKIAotICAvLyBS
dW5zIFNldFVwVGVzdENhc2UoKSBmb3IgdGhpcyBUZXN0Q2FzZS4gIFRoaXMgd3JhcHBlciBpcyBu
ZWVkZWQKLSAgLy8gZm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGZyb20gU2V0VXBUZXN0
Q2FzZSgpLgotICB2b2lkIFJ1blNldFVwVGVzdENhc2UoKSB7ICgqc2V0X3VwX3RjXykoKTsgfQor
ICAvLyBTa2lwcyB0aGUgZXhlY3V0aW9uIG9mIHRlc3RzIHVuZGVyIHRoaXMgVGVzdFN1aXRlCisg
IHZvaWQgU2tpcCgpOwogCi0gIC8vIFJ1bnMgVGVhckRvd25UZXN0Q2FzZSgpIGZvciB0aGlzIFRl
c3RDYXNlLiAgVGhpcyB3cmFwcGVyIGlzCi0gIC8vIG5lZWRlZCBmb3IgY2F0Y2hpbmcgZXhjZXB0
aW9ucyB0aHJvd24gZnJvbSBUZWFyRG93blRlc3RDYXNlKCkuCi0gIHZvaWQgUnVuVGVhckRvd25U
ZXN0Q2FzZSgpIHsgKCp0ZWFyX2Rvd25fdGNfKSgpOyB9CisgIC8vIFJ1bnMgU2V0VXBUZXN0U3Vp
dGUoKSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMgbmVlZGVkCisgIC8vIGZv
ciBjYXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdFN1aXRlKCkuCisgIHZv
aWQgUnVuU2V0VXBUZXN0U3VpdGUoKSB7CisgICAgaWYgKHNldF91cF90Y18gIT0gbnVsbHB0cikg
eworICAgICAgKCpzZXRfdXBfdGNfKSgpOworICAgIH0KKyAgfQorCisgIC8vIFJ1bnMgVGVhckRv
d25UZXN0U3VpdGUoKSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMKKyAgLy8g
bmVlZGVkIGZvciBjYXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFRlYXJEb3duVGVzdFN1
aXRlKCkuCisgIHZvaWQgUnVuVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgaWYgKHRlYXJfZG93
bl90Y18gIT0gbnVsbHB0cikgeworICAgICAgKCp0ZWFyX2Rvd25fdGNfKSgpOworICAgIH0KKyAg
fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGVzdCBwYXNzZWQuCisgIC8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0ZXN0IHBhc3NlZC4KICAgc3RhdGljIGJvb2wgVGVzdFBhc3NlZChj
b25zdCBUZXN0SW5mbyogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+c2hvdWxk
X3J1bigpICYmIHRlc3RfaW5mby0+cmVzdWx0KCktPlBhc3NlZCgpOwogICB9CiAKLSAgLy8gUmV0
dXJucyB0cnVlIGlmZiB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRlc3Qgc2tpcHBlZC4KKyAgc3RhdGljIGJvb2wgVGVzdFNraXBwZWQoY29uc3QgVGVzdElu
Zm8qIHRlc3RfaW5mbykgeworICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAmJiB0
ZXN0X2luZm8tPnJlc3VsdCgpLT5Ta2lwcGVkKCk7CisgIH0KKworICAvLyBSZXR1cm5zIHRydWUg
aWYgYW5kIG9ubHkgaWYgdGVzdCBmYWlsZWQuCiAgIHN0YXRpYyBib29sIFRlc3RGYWlsZWQoY29u
c3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9y
dW4oKSAmJiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5GYWlsZWQoKTsKICAgfQogCi0gIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGhlIHRlc3QgaXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4g
dGhlIFhNTAotICAvLyByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdGVzdCBpcyBkaXNhYmxlZCBhbmQgd2lsbCBiZSByZXBvcnRlZCBpbgorICAvLyB0aGUgWE1M
IHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGVEaXNhYmxlZChjb25zdCBUZXN0
SW5mbyogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+aXNfcmVwb3J0YWJsZSgp
ICYmIHRlc3RfaW5mby0+aXNfZGlzYWJsZWRfOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0ZXN0IGlzIGRpc2FibGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGVz
dCBpcyBkaXNhYmxlZC4KICAgc3RhdGljIGJvb2wgVGVzdERpc2FibGVkKGNvbnN0IFRlc3RJbmZv
KiB0ZXN0X2luZm8pIHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19kaXNhYmxlZF87CiAgIH0K
IAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoaXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0aGUgWE1M
IHJlcG9ydC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCB3aWxs
IGFwcGVhciBpbiB0aGUgWE1MIHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGUo
Y29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3Jl
cG9ydGFibGUoKTsKICAgfQpAQCAtOTYyLDE3ICsxMDA5LDE3IEBAIGNsYXNzIEdURVNUX0FQSV8g
VGVzdENhc2UgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKTsKICAgfQogCi0g
IC8vIFNodWZmbGVzIHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gU2h1ZmZsZXMg
dGhlIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgdm9pZCBTaHVmZmxlVGVzdHMoaW50ZXJu
YWw6OlJhbmRvbSogcmFuZG9tKTsKIAogICAvLyBSZXN0b3JlcyB0aGUgdGVzdCBvcmRlciB0byBi
ZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKIAotICAv
LyBOYW1lIG9mIHRoZSB0ZXN0IGNhc2UuCisgIC8vIE5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUuCiAg
IHN0ZDo6c3RyaW5nIG5hbWVfOwogICAvLyBOYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSwgb3Ig
TlVMTCBpZiB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEKICAgLy8gdHlwZS1wYXJhbWV0ZXJpemVk
IHRlc3QuCi0gIGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+
IHR5cGVfcGFyYW1fOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgOjpzdGQ6OnN0cmlu
Zz4gdHlwZV9wYXJhbV87CiAgIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoZWlyIG9y
aWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKICAgLy8gZWxlbWVudHMgaW4gdGhlIHZlY3Rvci4K
ICAgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiB0ZXN0X2luZm9fbGlzdF87CkBAIC05ODAsMjAgKzEw
MjcsMjIgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIHNodWZmbGluZyBhbmQg
cmVzdG9yaW5nIHRoZSB0ZXN0IG9yZGVyLiAgVGhlIGktdGggZWxlbWVudCBpbiB0aGlzCiAgIC8v
IHZlY3RvciBpcyB0aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBpbiB0aGUgc2h1ZmZsZWQgdGVz
dCBsaXN0LgogICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3RfaW5kaWNlc187Ci0gIC8vIFBvaW50ZXIg
dG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlLgotICBUZXN0OjpTZXRV
cFRlc3RDYXNlRnVuYyBzZXRfdXBfdGNfOwotICAvLyBQb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0
aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1
bmMgdGVhcl9kb3duX3RjXzsKLSAgLy8gVHJ1ZSBpZmYgYW55IHRlc3QgaW4gdGhpcyB0ZXN0IGNh
c2Ugc2hvdWxkIHJ1bi4KKyAgLy8gUG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVw
IHRoZSB0ZXN0IHN1aXRlLgorICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90
Y187CisgIC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVz
dCBzdWl0ZS4KKyAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGNf
OworICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBzdWl0ZSBz
aG91bGQgcnVuLgogICBib29sIHNob3VsZF9ydW5fOworICAvLyBUaGUgc3RhcnQgdGltZSwgaW4g
bWlsbGlzZWNvbmRzIHNpbmNlIFVOSVggRXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFydF90aW1l
c3RhbXBfOwogICAvLyBFbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWls
bGlzIGVsYXBzZWRfdGltZV87Ci0gIC8vIEhvbGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBk
dXJpbmcgZXhlY3V0aW9uIG9mIFNldFVwVGVzdENhc2UgYW5kCi0gIC8vIFRlYXJEb3duVGVzdENh
c2UuCisgIC8vIEhvbGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0aW9u
IG9mIFNldFVwVGVzdFN1aXRlIGFuZAorICAvLyBUZWFyRG93blRlc3RTdWl0ZS4KICAgVGVzdFJl
c3VsdCBhZF9ob2NfdGVzdF9yZXN1bHRfOwogCi0gIC8vIFdlIGRpc2FsbG93IGNvcHlpbmcgVGVz
dENhc2VzLgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RDYXNlKTsKKyAg
Ly8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0U3VpdGVzLgorICBHVEVTVF9ESVNBTExPV19DT1BZ
X0FORF9BU1NJR05fKFRlc3RTdWl0ZSk7CiB9OwogCiAvLyBBbiBFbnZpcm9ubWVudCBvYmplY3Qg
aXMgY2FwYWJsZSBvZiBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYW4KQEAgLTEwMjQsNyAr
MTA3Myw3IEBAIGNsYXNzIEVudmlyb25tZW50IHsKICAgLy8gSWYgeW91IHNlZSBhbiBlcnJvciBh
Ym91dCBvdmVycmlkaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gb3IKICAgLy8gYWJvdXQgaXQg
YmVpbmcgcHJpdmF0ZSwgeW91IGhhdmUgbWlzLXNwZWxsZWQgU2V0VXAoKSBhcyBTZXR1cCgpLgog
ICBzdHJ1Y3QgU2V0dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAge307Ci0gIHZpcnR1YWwgU2V0
dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4gTlVMTDsgfQorICB2
aXJ0dWFsIFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIG51
bGxwdHI7IH0KIH07CiAKICNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMTA2MCw4ICsxMTA5
LDEzIEBAIGNsYXNzIFRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gRmlyZWQgYWZ0ZXIgZW52aXJv
bm1lbnQgc2V0LXVwIGZvciBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBlbmRzLgogICB2aXJ0dWFs
IHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSA9
IDA7CiAKLSAgLy8gRmlyZWQgYmVmb3JlIHRoZSB0ZXN0IGNhc2Ugc3RhcnRzLgotICB2aXJ0dWFs
IHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpID0gMDsKKyAg
Ly8gRmlyZWQgYmVmb3JlIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0cy4KKyAgdmlydHVhbCB2b2lkIE9u
VGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykge30KKworICAv
LyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1YWwgdm9pZCBPblRlc3RD
YXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHt9CisjZW5kaWYgIC8vICBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBGaXJlZCBiZWZvcmUgdGhl
IHRlc3Qgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8m
IHRlc3RfaW5mbykgPSAwOwpAQCAtMTA3NCw4ICsxMTI4LDEzIEBAIGNsYXNzIFRlc3RFdmVudExp
c3RlbmVyIHsKICAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgZW5kcy4KICAgdmlydHVhbCB2b2lk
IE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7CiAKLSAgLy8gRmlyZWQg
YWZ0ZXIgdGhlIHRlc3QgY2FzZSBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChj
b25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSA9IDA7CisgIC8vIEZpcmVkIGFmdGVyIHRoZSB0ZXN0
IHN1aXRlIGVuZHMuCisgIHZpcnR1YWwgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3Vp
dGUmIC8qdGVzdF9zdWl0ZSovKSB7fQorCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1
dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisgIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3Rf
Y2FzZSovKSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElf
CiAKICAgLy8gRmlyZWQgYmVmb3JlIGVudmlyb25tZW50IHRlYXItZG93biBmb3IgZWFjaCBpdGVy
YXRpb24gb2YgdGVzdHMgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKQEAgLTEwOTgsMjEgKzEx
NTcsMzAgQEAgY2xhc3MgVGVzdEV2ZW50TGlzdGVuZXIgewogLy8gYWJvdmUuCiBjbGFzcyBFbXB0
eVRlc3RFdmVudExpc3RlbmVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBV
bml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCAvKml0ZXJhdGlvbiovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZv
aWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykg
e30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0
X2Nhc2UqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAv
KnRlc3RfaW5mbyovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBU
ZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBP
blRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHt9Ci0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQotICB2aXJ0
dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0
ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykge30KLSAgdmlydHVhbCB2b2lk
IE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9CisgIHZv
aWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVy
cmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiov
KSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1Nl
dFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lk
IE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJp
ZGUge30KKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQor
I2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RD
YXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZW5k
aWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICB2b2lkIE9uVGVz
dFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7fQorICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3Vs
dCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0
X2luZm8qLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3Vp
dGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7fQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVH
QUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAv
KnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZpcm9u
bWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUg
e30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlk
ZSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIG92ZXJyaWRlIHt9CiB9OwogCiAvLyBUZXN0RXZlbnRMaXN0ZW5lcnMgbGV0cyB1c2VycyBh
ZGQgbGlzdGVuZXJzIHRvIHRyYWNrIGV2ZW50cyBpbiBHb29nbGUgVGVzdC4KQEAgLTExNTIsNyAr
MTIyMCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEV2ZW50TGlzdGVuZXJzIHsKICAgfQogCiAg
cHJpdmF0ZToKLSAgZnJpZW5kIGNsYXNzIFRlc3RDYXNlOworICBmcmllbmQgY2xhc3MgVGVzdFN1
aXRlOwogICBmcmllbmQgY2xhc3MgVGVzdEluZm87CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6
RGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI7CiAgIGZyaWVuZCBjbGFzcyBpbnRl
cm5hbDo6Tm9FeGVjRGVhdGhUZXN0OwpAQCAtMTE5Myw3ICsxMjYxLDcgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUZXN0RXZlbnRMaXN0ZW5lcnMgewogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJ
R05fKFRlc3RFdmVudExpc3RlbmVycyk7CiB9OwogCi0vLyBBIFVuaXRUZXN0IGNvbnNpc3RzIG9m
IGEgdmVjdG9yIG9mIFRlc3RDYXNlcy4KKy8vIEEgVW5pdFRlc3QgY29uc2lzdHMgb2YgYSB2ZWN0
b3Igb2YgVGVzdFN1aXRlcy4KIC8vCiAvLyBUaGlzIGlzIGEgc2luZ2xldG9uIGNsYXNzLiAgVGhl
IG9ubHkgaW5zdGFuY2Ugb2YgVW5pdFRlc3QgaXMKIC8vIGNyZWF0ZWQgd2hlbiBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKSBpcyBmaXJzdCBjYWxsZWQuICBUaGlzCkBAIC0xMjIyLDEwICsxMjkwLDE0
IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyB3YXMgZXhlY3V0ZWQuICBUaGUg
VW5pdFRlc3Qgb2JqZWN0IG93bnMgdGhlIHN0cmluZy4KICAgY29uc3QgY2hhciogb3JpZ2luYWxf
d29ya2luZ19kaXIoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3Qg
Zm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKyAgLy8gUmV0dXJucyB0aGUg
VGVzdFN1aXRlIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLAog
ICAvLyBvciBOVUxMIGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAgY29uc3QgVGVzdENhc2UqIGN1
cnJlbnRfdGVzdF9jYXNlKCkgY29uc3QKLSAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4
Xyk7CisgIGNvbnN0IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QgR1RFU1Rf
TE9DS19FWENMVURFRF8obXV0ZXhfKTsKKworLy8gTGVnYWN5IEFQSSBpcyBzdGlsbCBhdmFpbGFi
bGUgYnV0IGRlcHJlY2F0ZWQKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisgIGNvbnN0IFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2FzZSgpIGNvbnN0IEdURVNUX0xP
Q0tfRVhDTFVERURfKG11dGV4Xyk7CisjZW5kaWYKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0SW5m
byBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKICAgLy8gb3Ig
TlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcuCkBAIC0xMjM1LDI5ICsxMzA3LDQwIEBAIGNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyBSZXR1cm5zIHRoZSByYW5kb20gc2VlZCB1c2Vk
IGF0IHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCB0ZXN0IHJ1bi4KICAgaW50IHJhbmRvbV9zZWVk
KCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0aGUgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0
cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5zIHRoZSBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogICAv
LyB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBhbmQgcmVnaXN0ZXIg
dGhlbS4KICAgLy8KICAgLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElO
IEEgVVNFUiBQUk9HUkFNLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0
cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgIGludGVybmFsOjpQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlUmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCiAgICAg
ICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pOwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBzdWNjZXNzZnVsIHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3Vu
dCgpIGNvbnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRl
cy4KKyAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZhaWxlZF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1
aXRlcy4KKyAgaW50IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCisg
IGludCB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorICAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFz
dCBvbmUgdGVzdAogICAvLyB0aGF0IHNob3VsZCBydW4uCisgIGludCB0ZXN0X3N1aXRlX3RvX3J1
bl9jb3VudCgpIGNvbnN0OworCisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KyAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIGludCBmYWlsZWRf
dGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIGludCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBj
b25zdDsKICAgaW50IHRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdDsKKyNlbmRpZiAgLy8g
IEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBzdWNjZXNzZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29u
c3Q7CiAKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMuCisgIGludCBza2lw
cGVkX3Rlc3RfY291bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVk
IHRlc3RzLgogICBpbnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApAQCAtMTI4MywxOSAr
MTM2NiwyNSBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgLy8gR2V0cyB0aGUgZWxh
cHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUo
KSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChp
LmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAgLy8gcGFz
c2VkKS4KICAgYm9vbCBQYXNzZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotICAvLyBvciBz
b21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBzdWl0
ZQorICAvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCku
CiAgIGJvb2wgRmFpbGVkKCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2Ug
YW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90
YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1
cm5zIE5VTEwuCisgIC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRl
c3Qgc3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxfdGVzdF9zdWl0ZV9j
b3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorICBj
b25zdCBUZXN0U3VpdGUqIEdldFRlc3RTdWl0ZShpbnQgaSkgY29uc3Q7CisKKy8vICBMZWdhY3kg
QVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KICAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGlu
dCBpKSBjb25zdDsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XwogCiAgIC8vIFJldHVybnMgdGhlIFRlc3RSZXN1bHQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBv
biB0ZXN0IGZhaWx1cmVzIGFuZAotICAvLyBwcm9wZXJ0aWVzIGxvZ2dlZCBvdXRzaWRlIG9mIGlu
ZGl2aWR1YWwgdGVzdCBjYXNlcy4KKyAgLy8gcHJvcGVydGllcyBsb2dnZWQgb3V0c2lkZSBvZiBp
bmRpdmlkdWFsIHRlc3Qgc3VpdGVzLgogICBjb25zdCBUZXN0UmVzdWx0JiBhZF9ob2NfdGVzdF9y
ZXN1bHQoKSBjb25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBsaXN0IG9mIGV2ZW50IGxpc3RlbmVy
cyB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyYWNrIGV2ZW50cwpAQCAtMTMyNiwxNSArMTQxNSwxNSBA
QCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURf
KG11dGV4Xyk7CiAKICAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0
UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJvbQotICAvLyBpbnNpZGUgYSB0ZXN0LCB0byBj
dXJyZW50IFRlc3RDYXNlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKLSAgLy8g
ZnJvbSBTZXRVcFRlc3RDYXNlIG9yIFRlYXJEb3duVGVzdENhc2UsIG9yIHRvIHRoZSBnbG9iYWwg
cHJvcGVydHkgc2V0CisgIC8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVzdFN1aXRlJ3Mg
YWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKKyAgLy8gZnJvbSBTZXRVcFRlc3RTdWl0
ZSBvciBUZWFyRG93blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKICAg
Ly8gd2hlbiBpbnZva2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250YWlu
cyBhIHByb3BlcnR5IHdpdGgKICAgLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2lsbCBiZSB1
cGRhdGVkLgogICB2b2lkIFJlY29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNv
bnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2Ug
YW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90
YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1
cm5zIE5VTEwuCi0gIFRlc3RDYXNlKiBHZXRNdXRhYmxlVGVzdENhc2UoaW50IGkpOworICAvLyBH
ZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4g
cmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkg
aXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgVGVzdFN1aXRlKiBHZXRNdXRh
YmxlVGVzdFN1aXRlKGludCBpKTsKIAogICAvLyBBY2Nlc3NvcnMgZm9yIHRoZSBpbXBsZW1lbnRh
dGlvbiBvYmplY3QuCiAgIGludGVybmFsOjpVbml0VGVzdEltcGwqIGltcGwoKSB7IHJldHVybiBp
bXBsXzsgfQpAQCAtMTM0OCw2ICsxNDM3LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdCB7
CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6U3RyZWFtaW5nTGlzdGVuZXJUZXN0OwogICBmcmll
bmQgY2xhc3MgaW50ZXJuYWw6OlVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0SGVscGVyOwogICBm
cmllbmQgRW52aXJvbm1lbnQqIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChFbnZpcm9ubWVudCog
ZW52KTsKKyAgZnJpZW5kIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaW50ZXJuYWw6OkdldElnbm9y
ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpOwogICBmcmllbmQgaW50ZXJuYWw6OlVuaXRUZXN0
SW1wbCogaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBmcmllbmQgdm9pZCBpbnRlcm5h
bDo6UmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgVGVzdFBhcnRSZXN1bHQ6
OlR5cGUgcmVzdWx0X3R5cGUsCkBAIC0xNDE5LDYgKzE1MDksMTAgQEAgR1RFU1RfQVBJXyB2b2lk
IEluaXRHb29nbGVUZXN0KGludCogYXJnYywgY2hhcioqIGFyZ3YpOwogLy8gVU5JQ09ERSBtb2Rl
LgogR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywgd2NoYXJfdCoqIGFy
Z3YpOwogCisvLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBvbiBBcmR1aW5v
L2VtYmVkZGVkIHBsYXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMgbm8gYXJnYy9hcmd2LgorR1RF
U1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KCk7CisKIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAK
IC8vIFNlcGFyYXRlIHRoZSBlcnJvciBnZW5lcmF0aW5nIGNvZGUgZnJvbSB0aGUgY29kZSBwYXRo
IHRvIHJlZHVjZSB0aGUgc3RhY2sKQEAgLTE0MzUsNiArMTUyOSwxMyBAQCBBc3NlcnRpb25SZXN1
bHQgQ21wSGVscGVyRVFGYWlsdXJlKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAogICAgICAg
ICAgICAgICAgICAgIGZhbHNlKTsKIH0KIAorLy8gVGhpcyBibG9jayBvZiBjb2RlIGRlZmluZXMg
b3BlcmF0b3I9PS8hPQorLy8gdG8gYmxvY2sgbGV4aWNhbCBzY29wZSBsb29rdXAuCisvLyBJdCBw
cmV2ZW50cyB1c2luZyBpbnZhbGlkIG9wZXJhdG9yPT0vIT0gZGVmaW5lZCBhdCBuYW1lc3BhY2Ug
c2NvcGUuCitzdHJ1Y3QgZmFrZXR5cGUge307CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGZha2V0
eXBlLCBmYWtldHlwZSkgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShm
YWtldHlwZSwgZmFrZXR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKIC8vIFRoZSBoZWxwZXIgZnVu
Y3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9FUS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDI+CiBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hhciogbGhzX2V4
cHJlc3Npb24sCkBAIC0xNDQ4LDI2ICsxNTQ5LDE3IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxw
ZXJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgcmV0dXJuIENtcEhlbHBlckVRRmFp
bHVyZShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKIH0KIAotLy8g
V2l0aCB0aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiwgd2UgYWxsb3cgYW5vbnltb3VzIGVudW1zIHRv
IGJlIHVzZWQKLS8vIGluIHtBU1NFUlR8RVhQRUNUfV9FUSB3aGVuIGNvbXBpbGVkIHdpdGggZ2Nj
IDQsIGFzIGFub255bW91cyBlbnVtcwotLy8gY2FuIGJlIGltcGxpY2l0bHkgY2FzdCB0byBCaWdn
ZXN0SW50LgotR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hh
ciogbGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmlnZ2VzdEludCByaHMpOwotCi0vLyBUaGUgaGVscGVyIGNsYXNzIGZvciB7
QVNTRVJUfEVYUEVDVH1fRVEuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8vIGxoc19pc19udWxs
X2xpdGVyYWwgaXMgdHJ1ZSBpZmYgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgpCi0v
LyBpcyBhIG51bGwgcG9pbnRlciBsaXRlcmFsLiAgVGhlIGZvbGxvd2luZyBkZWZhdWx0IGltcGxl
bWVudGF0aW9uIGlzCi0vLyBmb3IgbGhzX2lzX251bGxfbGl0ZXJhbCBiZWluZyBmYWxzZS4KLXRl
bXBsYXRlIDxib29sIGxoc19pc19udWxsX2xpdGVyYWw+CiBjbGFzcyBFcUhlbHBlciB7CiAgcHVi
bGljOgogICAvLyBUaGlzIHRlbXBsYXRpemVkIHZlcnNpb24gaXMgZm9yIHRoZSBnZW5lcmFsIGNh
c2UuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgIHRlbXBsYXRlIDwK
KyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwKKyAgICAgIC8vIERpc2FibGUgdGhpcyBv
dmVybG9hZCBmb3IgY2FzZXMgd2hlcmUgb25lIGFyZ3VtZW50IGlzIGEgcG9pbnRlcgorICAgICAg
Ly8gYW5kIHRoZSBvdGhlciBpcyB0aGUgbnVsbCBwb2ludGVyIGNvbnN0YW50LgorICAgICAgdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfaW50ZWdyYWw8VDE+Ojp2YWx1ZSB8fAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0ZDo6aXNfcG9pbnRlcjxUMj46OnZhbHVlPjo6
dHlwZSogPSBudWxscHRyPgogICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBhcmUoY29uc3Qg
Y2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFQxJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyKiByaHNfZXhwcmVzc2lvbiwgY29uc3QgVDEmIGxocywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFQyJiByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEo
bGhzX2V4cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KQEAgLTE0ODQs
NDkgKzE1NzYsMTUgQEAgY2xhc3MgRXFIZWxwZXIgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmlnZ2VzdEludCByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4
cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KLX07Ci0KLS8vIFRoaXMg
c3BlY2lhbGl6YXRpb24gaXMgdXNlZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCB0byBBU1NFUlRf
RVEoKQotLy8gaXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbCwgbGlrZSBOVUxMLCBmYWxzZSwgb3Ig
MC4KLXRlbXBsYXRlIDw+Ci1jbGFzcyBFcUhlbHBlcjx0cnVlPiB7Ci0gcHVibGljOgotICAvLyBX
ZSBkZWZpbmUgdHdvIG92ZXJsb2FkZWQgdmVyc2lvbnMgb2YgQ29tcGFyZSgpLiAgVGhlIGZpcnN0
Ci0gIC8vIHZlcnNpb24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHRv
IEFTU0VSVF9FUSgpIGlzCi0gIC8vIE5PVCBhIHBvaW50ZXIsIGUuZy4gQVNTRVJUX0VRKDAsIEFu
SW50RnVuY3Rpb24oKSkgb3IKLSAgLy8gRVhQRUNUX0VRKGZhbHNlLCBhX2Jvb2wpLgotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0
IENvbXBhcmUoCi0gICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgIGNvbnN0
IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgY29uc3QgVDEmIGxocywKLSAgICAgIGNvbnN0
IFQyJiByaHMsCi0gICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgcHJldmVudHMgdGhpcyBvdmVy
bG9hZCBmcm9tIGJlaW5nIGNvbnNpZGVyZWQgaWYgVDIKLSAgICAgIC8vIGlzIG5vdCBhIHBvaW50
ZXIgdHlwZS4gIFdlIG5lZWQgdGhpcyBiZWNhdXNlIEFTU0VSVF9FUShOVUxMLCBteV9wdHIpCi0g
ICAgICAvLyBleHBhbmRzIHRvIENvbXBhcmUoIiIsICIiLCBOVUxMLCBteV9wdHIpLCB3aGljaCBy
ZXF1aXJlcyBhIGNvbnZlcnNpb24KLSAgICAgIC8vIHRvIG1hdGNoIHRoZSBTZWNyZXQqIGluIHRo
ZSBvdGhlciBvdmVybG9hZCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UKLSAgICAgIC8vIHRo
aXMgdGVtcGxhdGUgbWF0Y2ggYmV0dGVyLgotICAgICAgdHlwZW5hbWUgRW5hYmxlSWY8IWlzX3Bv
aW50ZXI8VDI+Ojp2YWx1ZT46OnR5cGUqID0gMCkgewotICAgIHJldHVybiBDbXBIZWxwZXJFUShs
aHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAgfQogCi0gIC8vIFRo
aXMgdmVyc2lvbiB3aWxsIGJlIHBpY2tlZCB3aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gQVNT
RVJUX0VRKCkgaXMgYQotICAvLyBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUShOVUxMLCBhX3BvaW50
ZXIpLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBD
b21wYXJlKAotICAgICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICBjb25zdCBj
aGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgIC8vIFdlIHVzZWQgdG8gaGF2ZSBhIHNlY29uZCB0
ZW1wbGF0ZSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBTZWNyZXQqLiAgVGhhdAotICAgICAgLy8gdGVt
cGxhdGUgcGFyYW1ldGVyIHdvdWxkIGRlZHVjZSB0byAnbG9uZycsIG1ha2luZyB0aGlzIGEgYmV0
dGVyIG1hdGNoCi0gICAgICAvLyB0aGFuIHRoZSBmaXJzdCBvdmVybG9hZCBldmVuIHdpdGhvdXQg
dGhlIGZpcnN0IG92ZXJsb2FkJ3MgRW5hYmxlSWYuCi0gICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBn
Y2Mgd2l0aCAtV2NvbnZlcnNpb24tbnVsbCB3YXJucyB3aGVuICJwYXNzaW5nIE5VTEwgdG8KLSAg
ICAgIC8vIG5vbi1wb2ludGVyIGFyZ3VtZW50IiAoZXZlbiBhIGRlZHVjZWQgaW50ZWdyYWwgYXJn
dW1lbnQpLCBzbyB0aGUgb2xkCi0gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYXVzZWQgd2Fybmlu
Z3MgaW4gdXNlciBjb2RlLgotICAgICAgU2VjcmV0KiAvKiBsaHMgKE5VTEwpICovLAotICAgICAg
VCogcmhzKSB7CisgICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwgY29uc3QgY2hhciog
cmhzX2V4cHJlc3Npb24sCisgICAgICAvLyBIYW5kbGUgY2FzZXMgd2hlcmUgJzAnIGlzIHVzZWQg
YXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbC4KKyAgICAgIHN0ZDo6bnVsbHB0cl90IC8qIGxocyAq
LywgVCogcmhzKSB7CiAgICAgLy8gV2UgYWxyZWFkeSBrbm93IHRoYXQgJ2xocycgaXMgYSBudWxs
IHBvaW50ZXIuCi0gICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNzaW9uLCByaHNfZXhw
cmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VCo+KE5VTEwpLCBy
aHMpOworICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Np
b24sIHN0YXRpY19jYXN0PFQqPihudWxscHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmhz
KTsKICAgfQogfTsKIApAQCAtMTU0NywxMSArMTYwNSw2IEBAIEFzc2VydGlvblJlc3VsdCBDbXBI
ZWxwZXJPcEZhaWx1cmUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogLy8g
QVNTRVJUXz8/IGFuZCBFWFBFQ1RfPz8uICBJdCBpcyBoZXJlIGp1c3QgdG8gYXZvaWQgY29weS1h
bmQtcGFzdGUKIC8vIG9mIHNpbWlsYXIgY29kZS4KIC8vCi0vLyBGb3IgZWFjaCB0ZW1wbGF0aXpl
ZCBoZWxwZXIgZnVuY3Rpb24sIHdlIGFsc28gZGVmaW5lIGFuIG92ZXJsb2FkZWQKLS8vIHZlcnNp
b24gZm9yIEJpZ2dlc3RJbnQgaW4gb3JkZXIgdG8gcmVkdWNlIGNvZGUgYmxvYXQgYW5kIGFsbG93
Ci0vLyBhbm9ueW1vdXMgZW51bXMgdG8gYmUgdXNlZCB3aXRoIHtBU1NFUlR8RVhQRUNUfV8/PyB3
aGVuIGNvbXBpbGVkCi0vLyB3aXRoIGdjYyA0LgotLy8KIC8vIElOVEVSTkFMIElNUExFTUVOVEFU
SU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KIAogI2RlZmluZSBHVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKG9wX25hbWUsIG9wKVwKQEAgLTE1NjMsMjIgKzE2MTYsMjAgQEAgQXNzZXJ0
aW9uUmVzdWx0IENtcEhlbHBlciMjb3BfbmFtZShjb25zdCBjaGFyKiBleHByMSwgY29uc3QgY2hh
ciogZXhwcjIsIFwKICAgfSBlbHNlIHtcCiAgICAgcmV0dXJuIENtcEhlbHBlck9wRmFpbHVyZShl
eHByMSwgZXhwcjIsIHZhbDEsIHZhbDIsICNvcCk7XAogICB9XAotfVwKLUdURVNUX0FQSV8gQXNz
ZXJ0aW9uUmVzdWx0IENtcEhlbHBlciMjb3BfbmFtZShcCi0gICAgY29uc3QgY2hhciogZXhwcjEs
IGNvbnN0IGNoYXIqIGV4cHIyLCBCaWdnZXN0SW50IHZhbDEsIEJpZ2dlc3RJbnQgdmFsMikKK30K
IAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9H
UkFNLgogCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQ
RUNUfV9ORQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhORSwgIT0pOworR1RFU1RfSU1QTF9DTVBf
SEVMUEVSXyhORSwgIT0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtB
U1NFUlR8RVhQRUNUfV9MRQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pOworR1RFU1Rf
SU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rp
b24gZm9yIHtBU1NFUlR8RVhQRUNUfV9MVAotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMVCwgPCk7
CitHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKExULCA8KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVy
IGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR0UKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8o
R0UsID49KTsKK0dURVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQogLy8gSW1wbGVtZW50cyB0
aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1QKLUdURVNUX0lNUExfQ01Q
X0hFTFBFUl8oR1QsID4pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPikKIAogI3VuZGVm
IEdURVNUX0lNUExfQ01QX0hFTFBFUl8KIApAQCAtMTc3NCwxMyArMTgyNSwxMyBAQCBjbGFzcyBH
VEVTVF9BUElfIEFzc2VydEhlbHBlciB7CiAvLyAgIEZvb1Rlc3QoKSB7CiAvLyAgICAgLy8gQ2Fu
IHVzZSBHZXRQYXJhbSgpIGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB+Rm9vVGVzdCgpIHsK
Ky8vICAgfkZvb1Rlc3QoKSBvdmVycmlkZSB7CiAvLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJhbSgp
IGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworLy8gICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8g
ICB9Ci0vLyAgIHZpcnR1YWwgdm9pZCBUZWFyRG93biB7CisvLyAgIHZvaWQgVGVhckRvd24gb3Zl
cnJpZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8gICB9CiAvLyB9
OwpAQCAtMTc4OSw3ICsxODQwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRIZWxwZXIgewog
Ly8gICBGb28gZm9vOwogLy8gICBBU1NFUlRfVFJVRShmb28uRG9lc0JhcihHZXRQYXJhbSgpKSk7
CiAvLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChPbmVUb1RlblJhbmdlLCBGb29UZXN0
LCA6OnRlc3Rpbmc6OlJhbmdlKDEsIDEwKSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Ao
T25lVG9UZW5SYW5nZSwgRm9vVGVzdCwgOjp0ZXN0aW5nOjpSYW5nZSgxLCAxMCkpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFdpdGhQYXJhbUludGVyZmFjZSB7CkBAIC0xNzk4LDEy
ICsxODQ5LDkgQEAgY2xhc3MgV2l0aFBhcmFtSW50ZXJmYWNlIHsKICAgdmlydHVhbCB+V2l0aFBh
cmFtSW50ZXJmYWNlKCkge30KIAogICAvLyBUaGUgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWUuIElz
IGFsc28gYXZhaWxhYmxlIGluIHRoZSB0ZXN0IGZpeHR1cmUncwotICAvLyBjb25zdHJ1Y3Rvci4g
VGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgbm9uLXN0YXRpYywgZXZlbiB0aG91Z2ggaXQgb25seQot
ICAvLyByZWZlcmVuY2VzIHN0YXRpYyBkYXRhLCB0byByZWR1Y2UgdGhlIG9wcG9ydHVuaXR5IGZv
ciBpbmNvcnJlY3QgdXNlcwotICAvLyBsaWtlIHdyaXRpbmcgJ1dpdGhQYXJhbUludGVyZmFjZTxi
b29sPjo6R2V0UGFyYW0oKScgZm9yIGEgdGVzdCB0aGF0Ci0gIC8vIHVzZXMgYSBmaXh0dXJlIHdo
b3NlIHBhcmFtZXRlciB0eXBlIGlzIGludC4KLSAgY29uc3QgUGFyYW1UeXBlJiBHZXRQYXJhbSgp
IGNvbnN0IHsKLSAgICBHVEVTVF9DSEVDS18ocGFyYW1ldGVyXyAhPSBOVUxMKQorICAvLyBjb25z
dHJ1Y3Rvci4KKyAgc3RhdGljIGNvbnN0IFBhcmFtVHlwZSYgR2V0UGFyYW0oKSB7CisgICAgR1RF
U1RfQ0hFQ0tfKHBhcmFtZXRlcl8gIT0gbnVsbHB0cikKICAgICAgICAgPDwgIkdldFBhcmFtKCkg
Y2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdCAiCiAg
ICAgICAgIDw8ICItLSBkaWQgeW91IGludGVuZCB0byB3cml0ZSBURVNUX1AgaW5zdGVhZCBvZiBU
RVNUX0Y/IjsKICAgICByZXR1cm4gKnBhcmFtZXRlcl87CkBAIC0xODI0LDcgKzE4NzIsNyBAQCBj
bGFzcyBXaXRoUGFyYW1JbnRlcmZhY2UgewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1j
b25zdCBUKiBXaXRoUGFyYW1JbnRlcmZhY2U8VD46OnBhcmFtZXRlcl8gPSBOVUxMOworY29uc3Qg
VCogV2l0aFBhcmFtSW50ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gbnVsbHB0cjsKIAogLy8gTW9z
dCB2YWx1ZS1wYXJhbWV0ZXJpemVkIGNsYXNzZXMgY2FuIGlnbm9yZSB0aGUgZXhpc3RlbmNlIG9m
CiAvLyBXaXRoUGFyYW1JbnRlcmZhY2UsIGFuZCBjYW4ganVzdCBpbmhlcml0IGZyb20gOjp0ZXN0
aW5nOjpUZXN0V2l0aFBhcmFtLgpAQCAtMTgzNSw2ICsxODgzLDExIEBAIGNsYXNzIFRlc3RXaXRo
UGFyYW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAKIC8v
IE1hY3JvcyBmb3IgaW5kaWNhdGluZyBzdWNjZXNzL2ZhaWx1cmUgaW4gdGVzdCBjb2RlLgogCisv
LyBTa2lwcyB0ZXN0IGluIHJ1bnRpbWUuCisvLyBTa2lwcGluZyB0ZXN0IGFib3J0cyBjdXJyZW50
IGZ1bmN0aW9uLgorLy8gU2tpcHBlZCB0ZXN0cyBhcmUgbmVpdGhlciBzdWNjZXNzZnVsIG5vciBm
YWlsZWQuCisjZGVmaW5lIEdURVNUX1NLSVAoKSBHVEVTVF9TS0lQXygiIikKKwogLy8gQUREX0ZB
SUxVUkUgdW5jb25kaXRpb25hbGx5IGFkZHMgYSBmYWlsdXJlIHRvIHRoZSBjdXJyZW50IHRlc3Qu
CiAvLyBTVUNDRUVEIGdlbmVyYXRlcyBhIHN1Y2Nlc3MgLSBpdCBkb2Vzbid0IGF1dG9tYXRpY2Fs
bHkgbWFrZSB0aGUKIC8vIGN1cnJlbnQgdGVzdCBzdWNjZXNzZnVsLCBhcyBhIHRlc3QgaXMgb25s
eSBzdWNjZXNzZnVsIHdoZW4gaXQgaGFzCkBAIC0xODY0LDYgKzE5MTcsMTEgQEAgY2xhc3MgVGVz
dFdpdGhQYXJhbSA6IHB1YmxpYyBUZXN0LCBwdWJsaWMgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+IHsK
IC8vIEdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUgd2l0aCBhIGdlbmVyaWMgbWVzc2FnZS4KICNk
ZWZpbmUgR1RFU1RfRkFJTCgpIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKCJGYWlsZWQiKQogCisvLyBM
aWtlIEdURVNUX0ZBSUwoKSwgYnV0IGF0IHRoZSBnaXZlbiBzb3VyY2UgZmlsZSBsb2NhdGlvbi4K
KyNkZWZpbmUgR1RFU1RfRkFJTF9BVChmaWxlLCBsaW5lKSAgICAgICAgIFwKKyAgR1RFU1RfTUVT
U0FHRV9BVF8oZmlsZSwgbGluZSwgIkZhaWxlZCIsIFwKKyAgICAgICAgICAgICAgICAgICAgOjp0
ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkKKwogLy8gRGVmaW5lIHRoaXMg
bWFjcm8gdG8gMSB0byBvbWl0IHRoZSBkZWZpbml0aW9uIG9mIEZBSUwoKSwgd2hpY2ggaXMgYQog
Ly8gZ2VuZXJpYyBuYW1lIGFuZCBjbGFzaGVzIHdpdGggc29tZSBvdGhlciBsaWJyYXJpZXMuCiAj
aWYgIUdURVNUX0RPTlRfREVGSU5FX0ZBSUwKQEAgLTE5NjQsOSArMjAyMiw3IEBAIGNsYXNzIFRl
c3RXaXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7
CiAvLyAgIEFTU0VSVF9HVChyZWNvcmRzLnNpemUoKSwgMCkgPDwgIlRoZXJlIGlzIG5vIHJlY29y
ZCBsZWZ0LiI7CiAKICNkZWZpbmUgRVhQRUNUX0VRKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BS
RURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAg
IEVxSGVscGVyPEdURVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAg
ICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKKyAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRl
c3Rpbmc6OmludGVybmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUg
RVhQRUNUX05FKHZhbDEsIHZhbDIpIFwKICAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6
OmludGVybmFsOjpDbXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgRVhQRUNUX0xFKHZh
bDEsIHZhbDIpIFwKQEAgLTE5NzksOSArMjAzNSw3IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBw
dWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAgIEVYUEVDVF9QUkVE
X0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q21wSGVscGVyR1QsIHZhbDEsIHZhbDIpCiAK
ICNkZWZpbmUgR1RFU1RfQVNTRVJUX0VRKHZhbDEsIHZhbDIpIFwKLSAgQVNTRVJUX1BSRURfRk9S
TUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAgIEVxSGVs
cGVyPEdURVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAgICAgICAg
ICAgICAgICAgICAgdmFsMSwgdmFsMikKKyAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6
OmludGVybmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1Rf
QVNTRVJUX05FKHZhbDEsIHZhbDIpIFwKICAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6
OmludGVybmFsOjpDbXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1RfQVNTRVJU
X0xFKHZhbDEsIHZhbDIpIFwKQEAgLTIxNzIsMTIgKzIyMjYsNiBAQCBjbGFzcyBHVEVTVF9BUElf
IFNjb3BlZFRyYWNlIHsKICAgICBQdXNoVHJhY2UoZmlsZSwgbGluZSwgbWVzc2FnZSA/IG1lc3Nh
Z2UgOiAiKG51bGwpIik7CiAgIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0gIFNj
b3BlZFRyYWNlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCA6OnN0cmluZyYgbWVz
c2FnZSkgewotICAgIFB1c2hUcmFjZShmaWxlLCBsaW5lLCBtZXNzYWdlKTsKLSAgfQotI2VuZGlm
Ci0KICAgU2NvcGVkVHJhY2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IHN0ZDo6
c3RyaW5nJiBtZXNzYWdlKSB7CiAgICAgUHVzaFRyYWNlKGZpbGUsIGxpbmUsIG1lc3NhZ2UpOwog
ICB9CkBAIC0yMjE1LDEwICsyMjYzLDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRUcmFjZSB7
CiAgIDo6dGVzdGluZzo6U2NvcGVkVHJhY2UgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF90cmFj
ZV8sIF9fTElORV9fKShcCiAgICAgX19GSUxFX18sIF9fTElORV9fLCAobWVzc2FnZSkpCiAKLQog
Ly8gQ29tcGlsZS10aW1lIGFzc2VydGlvbiBmb3IgdHlwZSBlcXVhbGl0eS4KLS8vIFN0YXRpY0Fz
c2VydFR5cGVFcTx0eXBlMSwgdHlwZTI+KCkgY29tcGlsZXMgaWZmIHR5cGUxIGFuZCB0eXBlMiBh
cmUKLS8vIHRoZSBzYW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJl
c3RpbmcuCisvLyBTdGF0aWNBc3NlcnRUeXBlRXE8dHlwZTEsIHR5cGUyPigpIGNvbXBpbGVzIGlm
IGFuZCBvbmx5IGlmIHR5cGUxIGFuZCB0eXBlMgorLy8gYXJlIHRoZSBzYW1lIHR5cGUuICBUaGUg
dmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCiAvLwogLy8gSW5zdGVhZCBvZiBt
YWtpbmcgU3RhdGljQXNzZXJ0VHlwZUVxIGEgY2xhc3MgdGVtcGxhdGUsIHdlIG1ha2UgaXQgYQog
Ly8gZnVuY3Rpb24gdGVtcGxhdGUgdGhhdCBpbnZva2VzIGEgaGVscGVyIGNsYXNzIHRlbXBsYXRl
LiAgVGhpcwpAQCAtMjI0NywxOCArMjI5NCwxOCBAQCBjbGFzcyBHVEVTVF9BUElfIFNjb3BlZFRy
YWNlIHsKIC8vCiAvLyB0byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgogdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMj4KLWJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewotICAodm9p
ZClpbnRlcm5hbDo6U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQxLCBUMj4oKTsKK2NvbnN0ZXhw
ciBib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIG5vZXhjZXB0IHsKKyAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3NhbWU8VDEsIFQyPjo6dmFsdWUsICJUMSBhbmQgVDIgYXJlIG5vdCB0aGUgc2FtZSB0
eXBlIik7CiAgIHJldHVybiB0cnVlOwogfQogCiAvLyBEZWZpbmVzIGEgdGVzdC4KIC8vCi0vLyBU
aGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UsIGFuZCB0aGUg
c2Vjb25kCi0vLyBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0
ZXN0IGNhc2UuCisvLyBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0
IHN1aXRlLCBhbmQgdGhlIHNlY29uZAorLy8gcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0
ZXN0IHdpdGhpbiB0aGUgdGVzdCBzdWl0ZS4KIC8vCi0vLyBUaGUgY29udmVudGlvbiBpcyB0byBl
bmQgdGhlIHRlc3QgY2FzZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCi0vLyBleGFtcGxlLCBhIHRl
c3QgY2FzZSBmb3IgdGhlIEZvbyBjbGFzcyBjYW4gYmUgbmFtZWQgRm9vVGVzdC4KKy8vIFRoZSBj
b252ZW50aW9uIGlzIHRvIGVuZCB0aGUgdGVzdCBzdWl0ZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9y
CisvLyBleGFtcGxlLCBhIHRlc3Qgc3VpdGUgZm9yIHRoZSBGb28gY2xhc3MgY2FuIGJlIG5hbWVk
IEZvb1Rlc3QuCiAvLwogLy8gVGVzdCBjb2RlIHNob3VsZCBhcHBlYXIgYmV0d2VlbiBicmFjZXMg
YWZ0ZXIgYW4gaW52b2NhdGlvbiBvZgogLy8gdGhpcyBtYWNyby4gIEV4YW1wbGU6CkBAIC0yMjc3
LDI4ICsyMzI0LDI4IEBAIGJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewogLy8gY29kZS4gIEdl
dFRlc3RUeXBlSWQoKSBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUKIC8v
IHZhbHVlLCBhcyBpdCBhbHdheXMgY2FsbHMgR2V0VHlwZUlkPD4oKSBmcm9tIHRoZSBHb29nbGUg
VGVzdAogLy8gZnJhbWV3b3JrLgotI2RlZmluZSBHVEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpXAotICBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBcCi0g
ICAgICAgICAgICAgIDo6dGVzdGluZzo6VGVzdCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVz
dFR5cGVJZCgpKQorI2RlZmluZSBHVEVTVF9URVNUKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1l
KSAgICAgICAgICAgICBcCisgIEdURVNUX1RFU1RfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1l
LCA6OnRlc3Rpbmc6OlRlc3QsIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
R2V0VGVzdFR5cGVJZCgpKQogCiAvLyBEZWZpbmUgdGhpcyBtYWNybyB0byAxIHRvIG9taXQgdGhl
IGRlZmluaXRpb24gb2YgVEVTVCgpLCB3aGljaAogLy8gaXMgYSBnZW5lcmljIG5hbWUgYW5kIGNs
YXNoZXMgd2l0aCBzb21lIG90aGVyIGxpYnJhcmllcy4KICNpZiAhR1RFU1RfRE9OVF9ERUZJTkVf
VEVTVAotIyBkZWZpbmUgVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBHVEVTVF9URVNU
KHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpCisjZGVmaW5lIFRFU1QodGVzdF9zdWl0ZV9uYW1l
LCB0ZXN0X25hbWUpIEdURVNUX1RFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpCiAjZW5k
aWYKIAogLy8gRGVmaW5lcyBhIHRlc3QgdGhhdCB1c2VzIGEgdGVzdCBmaXh0dXJlLgogLy8KIC8v
IFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFz
cywgd2hpY2gKLS8vIGFsc28gZG91YmxlcyBhcyB0aGUgdGVzdCBjYXNlIG5hbWUuICBUaGUgc2Vj
b25kIHBhcmFtZXRlciBpcyB0aGUKLS8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0
IGNhc2UuCisvLyBhbHNvIGRvdWJsZXMgYXMgdGhlIHRlc3Qgc3VpdGUgbmFtZS4gIFRoZSBzZWNv
bmQgcGFyYW1ldGVyIGlzIHRoZQorLy8gbmFtZSBvZiB0aGUgdGVzdCB3aXRoaW4gdGhlIHRlc3Qg
c3VpdGUuCiAvLwogLy8gQSB0ZXN0IGZpeHR1cmUgY2xhc3MgbXVzdCBiZSBkZWNsYXJlZCBlYXJs
aWVyLiAgVGhlIHVzZXIgc2hvdWxkIHB1dAogLy8gdGhlIHRlc3QgY29kZSBiZXR3ZWVuIGJyYWNl
cyBhZnRlciB1c2luZyB0aGlzIG1hY3JvLiAgRXhhbXBsZToKIC8vCiAvLyAgIGNsYXNzIEZvb1Rl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAvLyAgICBwcm90ZWN0ZWQ6Ci0vLyAgICAgdmly
dHVhbCB2b2lkIFNldFVwKCkgeyBiXy5BZGRFbGVtZW50KDMpOyB9CisvLyAgICAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsgYl8uQWRkRWxlbWVudCgzKTsgfQogLy8KIC8vICAgICBGb28gYV87CiAv
LyAgICAgRm9vIGJfOwpAQCAtMjMxMiwxMCArMjM1OSwxMyBAQCBib29sIFN0YXRpY0Fzc2VydFR5
cGVFcSgpIHsKIC8vICAgICBFWFBFQ1RfRVEoYV8uc2l6ZSgpLCAwKTsKIC8vICAgICBFWFBFQ1Rf
RVEoYl8uc2l6ZSgpLCAxKTsKIC8vICAgfQotCisvLworLy8gR09PR0xFVEVTVF9DTTAwMTEgRE8g
Tk9UIERFTEVURQorI2lmICFHVEVTVF9ET05UX0RFRklORV9URVNUCiAjZGVmaW5lIFRFU1RfRih0
ZXN0X2ZpeHR1cmUsIHRlc3RfbmFtZSlcCiAgIEdURVNUX1RFU1RfKHRlc3RfZml4dHVyZSwgdGVz
dF9uYW1lLCB0ZXN0X2ZpeHR1cmUsIFwKICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6R2V0VHlwZUlkPHRlc3RfZml4dHVyZT4oKSkKKyNlbmRpZiAgLy8gIUdURVNUX0RPTlRfREVG
SU5FX1RFU1QKIAogLy8gUmV0dXJucyBhIHBhdGggdG8gdGVtcG9yYXJ5IGRpcmVjdG9yeS4KIC8v
IFRyaWVzIHRvIGRldGVybWluZSBhbiBhcHByb3ByaWF0ZSBkaXJlY3RvcnkgZm9yIHRoZSBwbGF0
Zm9ybS4KQEAgLTIzMjUsNiArMjM3NSw4NiBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIFRlbXBE
aXIoKTsKICMgIHByYWdtYSB3YXJuaW5nKHBvcCkKICNlbmRpZgogCisvLyBEeW5hbWljYWxseSBy
ZWdpc3RlcnMgYSB0ZXN0IHdpdGggdGhlIGZyYW1ld29yay4KKy8vCisvLyBUaGlzIGlzIGFuIGFk
dmFuY2VkIEFQSSBvbmx5IHRvIGJlIHVzZWQgd2hlbiB0aGUgYFRFU1RgIG1hY3JvcyBhcmUKKy8v
IGluc3VmZmljaWVudC4gVGhlIG1hY3JvcyBzaG91bGQgYmUgcHJlZmVycmVkIHdoZW4gcG9zc2li
bGUsIGFzIHRoZXkgYXZvaWQKKy8vIG1vc3Qgb2YgdGhlIGNvbXBsZXhpdHkgb2YgY2FsbGluZyB0
aGlzIGZ1bmN0aW9uLgorLy8KKy8vIFRoZSBgZmFjdG9yeWAgYXJndW1lbnQgaXMgYSBmYWN0b3J5
IGNhbGxhYmxlIChtb3ZlLWNvbnN0cnVjdGlibGUpIG9iamVjdCBvcgorLy8gZnVuY3Rpb24gcG9p
bnRlciB0aGF0IGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRlc3Qgb2JqZWN0LiBJdAor
Ly8gaGFuZGxlcyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlci4gVGhlIHNpZ25hdHVyZSBvZiB0aGUg
Y2FsbGFibGUgaXMKKy8vIGBGaXh0dXJlKigpYCwgd2hlcmUgYEZpeHR1cmVgIGlzIHRoZSB0ZXN0
IGZpeHR1cmUgY2xhc3MgZm9yIHRoZSB0ZXN0LiBBbGwKKy8vIHRlc3RzIHJlZ2lzdGVyZWQgd2l0
aCB0aGUgc2FtZSBgdGVzdF9zdWl0ZV9uYW1lYCBtdXN0IHJldHVybiB0aGUgc2FtZQorLy8gZml4
dHVyZSB0eXBlLiBUaGlzIGlzIGNoZWNrZWQgYXQgcnVudGltZS4KKy8vCisvLyBUaGUgZnJhbWV3
b3JrIHdpbGwgaW5mZXIgdGhlIGZpeHR1cmUgY2xhc3MgZnJvbSB0aGUgZmFjdG9yeSBhbmQgd2ls
bCBjYWxsCisvLyB0aGUgYFNldFVwVGVzdFN1aXRlYCBhbmQgYFRlYXJEb3duVGVzdFN1aXRlYCBm
b3IgaXQuCisvLworLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGBSVU5fQUxMX1RFU1RTKClgIGlz
IGludm9rZWQsIG90aGVyd2lzZSBiZWhhdmlvciBpcworLy8gdW5kZWZpbmVkLgorLy8KKy8vIFVz
ZSBjYXNlIGV4YW1wbGU6CisvLworLy8gY2xhc3MgTXlGaXh0dXJlIDogcHVibGljIDo6dGVzdGlu
Zzo6VGVzdCB7CisvLyAgcHVibGljOgorLy8gICAvLyBBbGwgb2YgdGhlc2Ugb3B0aW9uYWwsIGp1
c3QgbGlrZSBpbiByZWd1bGFyIG1hY3JvIHVzYWdlLgorLy8gICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RTdWl0ZSgpIHsgLi4uIH0KKy8vICAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7
IC4uLiB9CisvLyAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IC4uLiB9CisvLyAgIHZvaWQgVGVh
ckRvd24oKSBvdmVycmlkZSB7IC4uLiB9CisvLyB9OworLy8KKy8vIGNsYXNzIE15VGVzdCA6IHB1
YmxpYyBNeUZpeHR1cmUgeworLy8gIHB1YmxpYzoKKy8vICAgZXhwbGljaXQgTXlUZXN0KGludCBk
YXRhKSA6IGRhdGFfKGRhdGEpIHt9CisvLyAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7IC4u
LiB9CisvLworLy8gIHByaXZhdGU6CisvLyAgIGludCBkYXRhXzsKKy8vIH07CisvLworLy8gdm9p
ZCBSZWdpc3Rlck15VGVzdHMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgdmFsdWVzKSB7CisvLyAg
IGZvciAoaW50IHYgOiB2YWx1ZXMpIHsKKy8vICAgICA6OnRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgK
Ky8vICAgICAgICAgIk15Rml4dHVyZSIsICgiVGVzdCIgKyBzdGQ6OnRvX3N0cmluZyh2KSkuY19z
dHIoKSwgbnVsbHB0ciwKKy8vICAgICAgICAgc3RkOjp0b19zdHJpbmcodikuY19zdHIoKSwKKy8v
ICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLAorLy8gICAgICAgICAvLyBJbXBvcnRhbnQgdG8g
dXNlIHRoZSBmaXh0dXJlIHR5cGUgYXMgdGhlIHJldHVybiB0eXBlIGhlcmUuCisvLyAgICAgICAg
IFs9XSgpIC0+IE15Rml4dHVyZSogeyByZXR1cm4gbmV3IE15VGVzdCh2KTsgfSk7CisvLyAgIH0K
Ky8vIH0KKy8vIC4uLgorLy8gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisvLyAg
IHN0ZDo6dmVjdG9yPGludD4gdmFsdWVzX3RvX3Rlc3QgPSBMb2FkVmFsdWVzRnJvbUNvbmZpZygp
OworLy8gICBSZWdpc3Rlck15VGVzdHModmFsdWVzX3RvX3Rlc3QpOworLy8gICAuLi4KKy8vICAg
cmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKKy8vIH0KKy8vCit0ZW1wbGF0ZSA8aW50Ji4uLiBFeHBs
aWNpdFBhcmFtZXRlckJhcnJpZXIsIHR5cGVuYW1lIEZhY3Rvcnk+CitUZXN0SW5mbyogUmVnaXN0
ZXJUZXN0KGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogdGVzdF9uYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLCBjb25zdCBj
aGFyKiB2YWx1ZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmls
ZSwgaW50IGxpbmUsIEZhY3RvcnkgZmFjdG9yeSkgeworICB1c2luZyBUZXN0VCA9IHR5cGVuYW1l
IHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZGVjbHR5cGUoZmFjdG9yeSgpKT46OnR5cGU7CisKKyAgY2xh
c3MgRmFjdG9yeUltcGwgOiBwdWJsaWMgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSB7CisgICBw
dWJsaWM6CisgICAgZXhwbGljaXQgRmFjdG9yeUltcGwoRmFjdG9yeSBmKSA6IGZhY3RvcnlfKHN0
ZDo6bW92ZShmKSkge30KKyAgICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFjdG9yeV8oKTsgfQorCisgICBwcml2YXRlOgorICAgIEZhY3RvcnkgZmFjdG9yeV87CisgIH07
CisKKyAgcmV0dXJuIGludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKKyAgICAgIHRl
c3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9wYXJhbSwKKyAgICAg
IGludGVybmFsOjpDb2RlTG9jYXRpb24oZmlsZSwgbGluZSksIGludGVybmFsOjpHZXRUeXBlSWQ8
VGVzdFQ+KCksCisgICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46OkdldFNl
dFVwQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNv
bHZlcjxUZXN0VD46OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICBu
ZXcgRmFjdG9yeUltcGx7c3RkOjptb3ZlKGZhY3RvcnkpfSk7Cit9CisKIH0gIC8vIG5hbWVzcGFj
ZSB0ZXN0aW5nCiAKIC8vIFVzZSB0aGlzIGZ1bmN0aW9uIGluIG1haW4oKSB0byBydW4gYWxsIHRl
c3RzLiAgSXQgcmV0dXJucyAwIGlmIGFsbApAQCAtMjM0Myw0ICsyNDczLDQgQEAgaW5saW5lIGlu
dCBSVU5fQUxMX1RFU1RTKCkgewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkg
IC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXworI2Vu
ZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oCmlu
ZGV4IDBjMTEwNWNiOGViMmVmN2MyNjE2ZTY3ZmY1NTU2YWFiMjlmZjJkMWQuLjUwMjlhOWJiMDJh
ZGE3NDBmOWVlM2VlZTZhNTI4MWQ2ZTk1OTNhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaApAQCAtMjcsMTUg
KzI3LDE0IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLS8vIFRoaXMgZmls
ZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE4IGJ5IGNvbW1hbmQKKy8v
IFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE5IGJ5IGNv
bW1hbmQKIC8vICdnZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkgSEFO
RCEKIC8vCiAvLyBJbXBsZW1lbnRzIGEgZmFtaWx5IG9mIGdlbmVyaWMgcHJlZGljYXRlIGFzc2Vy
dGlvbiBtYWNyb3MuCi0KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lm
bmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwotI2RlZmluZSBHVEVT
VF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAK
QEAgLTY3LDYgKzY2LDggQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogLy8gV2UgYWxzbyBkZWZpbmUg
dGhlIEVYUEVDVF8qIHZhcmlhdGlvbnMuCiAvLwogLy8gRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQg
cHJlZGljYXRlcyB3aG9zZSBhcml0eSBpcyBhdCBtb3N0IDUuCisvLyBQbGVhc2UgZW1haWwgZ29v
Z2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkCisvLyBzdXBwb3J0
IGZvciBoaWdoZXIgYXJpdGllcy4KIAogLy8gR1RFU1RfQVNTRVJUXyBpcyB0aGUgYmFzaWMgc3Rh
dGVtZW50IHRvIHdoaWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHJl
ZHVjZS4gIERvbid0IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KQEAgLTg5LDkgKzkwLDEwIEBAIEFz
c2VydGlvblJlc3VsdCBBc3NlcnRQcmVkMUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHYxKSB7CiAgIGlmIChw
cmVkKHYxKSkgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9u
RmFpbHVyZSgpIDw8IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8PCBlMSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MTsKKyAg
cmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8
PCBlMSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgor
ICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmcodjEpOwogfQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBF
Q1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDEuCkBAIC0xMzMsMTEgKzEzNSwxMiBAQCBBc3NlcnRpb25S
ZXN1bHQgQXNzZXJ0UHJlZDJIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2MikgewogICBpZiAocHJlZCh2MSwg
djIpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWls
dXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiKSBldmFs
dWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJc
biIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MjsKKyAgcmV0dXJu
IEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8
PCAiLCAiIDw8IGUyCisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgor
ICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6
OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIg
ZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKTsKIH0KIAogLy8g
SW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JN
QVQyLgpAQCAtMTg0LDEzICsxODcsMTMgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQzSGVs
cGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBUMyYgdjMpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MykpIHJldHVybiBBc3Nl
cnRpb25TdWNjZXNzKCk7CiAKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3Rl
eHQgPDwgIigiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEgPDwgIiwgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUyIDw8ICIsICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCBlMyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MzsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUo
KQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIs
ICIgPDwgZTMKKyAgICAgICAgIDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCisgICAg
ICAgICA8PCAiXG4iCisgICAgICAgICA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVz
dGluZzo6UHJpbnRUb1N0cmluZyh2MSkgPDwgIlxuIgorICAgICAgICAgPDwgZTIgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjIpIDw8ICJcbiIKKyAgICAg
ICAgIDw8IGUzIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5n
KHYzKTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFT
U0VSVH1fUFJFRF9GT1JNQVQzLgpAQCAtMjQyLDE1ICsyNDUsMTQgQEAgQXNzZXJ0aW9uUmVzdWx0
IEFzc2VydFByZWQ0SGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBUNCYgdjQpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2
MywgdjQpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25G
YWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IGU0IDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IHYxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMiA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHYyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxu
IiA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYzCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPDwgIlxuIiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHY0OworICByZXR1cm4g
QXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICA8PCBwcmVkX3RleHQgPDwgIigiIDw8IGUxIDw8
ICIsICIgPDwgZTIgPDwgIiwgIiA8PCBlMyA8PCAiLCAiIDw8IGU0CisgICAgICAgICA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwg
ZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8
ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQ
cmludFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAgICAgICAgPDwg
ZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjQpOwog
fQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9Q
UkVEX0ZPUk1BVDQuCkBAIC0zMDcsMTcgKzMwOSwxNSBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0
UHJlZDVIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFQ1JiB2NSkgewogICBpZiAocHJlZCh2MSwgdjIsIHYzLCB2NCwg
djUpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWls
dXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGU0IDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBlNSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8ICJcbiIgPDwgZTUgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NTsKKyAgcmV0dXJuIEFzc2Vy
dGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAi
IDw8IGUyIDw8ICIsICIgPDwgZTMgPDwgIiwgIiA8PCBlNAorICAgICAgICAgPDwgIiwgIiA8PCBl
NSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAg
ICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0
ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2
YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAg
ICAgICAgPDwgZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmcodjQpIDw8ICJcbiIKKyAgICAgICAgIDw8IGU1IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0
ZXN0aW5nOjpQcmludFRvU3RyaW5nKHY1KTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGlt
cGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQ1LgpAQCAtMzU2LDQgKzM1Niw0
IEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkNUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3Rl
eHQsCiAKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9kLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAppbmRleCBlNjUxNjcxZWJkZTg1OWZjNzMxYjU0
NTliZGMwNjYxYWYwNzU3Y2I2Li4zOGI5ZDg1YTUxZWZiNzQ3ZmViOTY5YTVjZGNhZGIxYzI3YjJm
ODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0
ZXN0X3Byb2QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0
ZXN0X3Byb2QuaApAQCAtMzEsOCArMzEsOCBAQAogLy8gR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBN
b2NraW5nIEZyYW1ld29yayBkZWZpbml0aW9ucyB1c2VmdWwgaW4gcHJvZHVjdGlvbiBjb2RlLgog
Ly8gR09PR0xFVEVTVF9DTTAwMDMgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfUFJPRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BST0RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8K
KyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KIAogLy8gV2hl
biB5b3UgbmVlZCB0byB0ZXN0IHRoZSBwcml2YXRlIG9yIHByb3RlY3RlZCBtZW1iZXJzIG9mIGEg
Y2xhc3MsCiAvLyB1c2UgdGhlIEZSSUVORF9URVNUIG1hY3JvIHRvIGRlY2xhcmUgeW91ciB0ZXN0
cyBhcyBmcmllbmRzIG9mIHRoZQpAQCAtNTgsNCArNTgsNCBAQAogI2RlZmluZSBGUklFTkRfVEVT
VCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKVwKIGZyaWVuZCBjbGFzcyB0ZXN0X2Nhc2VfbmFt
ZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJPRF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UFJPRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCmluZGV4IGNkODVkOTU2
ZDJkYzE3YmQ1MzdmMjE0MjM0MGJkZjU4ZjQ3MzcxMTguLmRiMDI4ODFjMGM4OTlhNzRmMDc5ODU5
ODBhZmEyZTZlOThjNjg4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgK
QEAgLTMxLDcgKzMxLDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRz
IGhlcmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9H
VEVTVF9QT1JUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9N
X0dURVNUX1BPUlRfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0NVU1RPTV9HVEVTVF9QT1JUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9DVVNUT01fR1RFU1RfUE9SVF9IXwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BPUlRfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9n
dGVzdC1wcmludGVycy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCBlYjQ0NjdhYmNhYmVhN2ZmNzZm
OWQyZDUyNzM4N2M5ZGE4MTAxNDhiLi5iOTQ5NWQ4Mzc4M2JjZGUwNTBmNWZkYzE3NzAzNmFhNDg4
MGIzZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXByaW50ZXJzLmgKQEAg
LTM2LDcgKzM2LDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhl
cmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVT
VF9QUklOVEVSU19IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RP
TV9HVEVTVF9QUklOVEVSU19IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfQ1VTVE9NX0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KIAotI2VuZGlmICAvLyBH
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXworI2Vu
ZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BS
SU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaAppbmRleCA0YzhlMDdiZTIzZjFmZDYx
NTlhZmVmMmVlZmQ3NDQ0MDM0ZGQwNjA0Li5hZmFhZjE3YmEyOGUzYmViNzkwYTEyNjM4Y2ZmZWM4
ZGJhNTY5OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgKQEAgLTMxLDcgKzMxLDcgQEAK
IC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lmbmRl
ZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXwotI2RlZmluZSBH
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2lmbmRlZiBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KIAotI2VuZGlm
ICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2VuZGlm
ICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCmluZGV4IDBh
OWI0MmM4YTU3MmE4NzE5NGM2NTEwOTAzZTIxZWEyMjYwZmFjNWMuLjQ5MDI5NmRmYWQyZDAwYzQ4
MTFlYjQ5MTI2YWIyNjU2OTYxYzc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
ZGVhdGgtdGVzdC1pbnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTQgQEAKIC8vIGRlYXRoIHRlc3Rz
LiAgVGhleSBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCiAvLyBHT09HTEVU
RVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2lmbmRlZiBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5B
TF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVB
VEhfVEVTVF9JTlRFUk5BTF9IXwogCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogCiAjaW5jbHVkZSA8
c3RkaW8uaD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5hbWVz
cGFjZSBpbnRlcm5hbCB7CkBAIC03OCw3ICs4MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gRGVhdGhU
ZXN0IHsKICAgLy8gYXJndW1lbnQgaXMgc2V0LiAgSWYgdGhlIGRlYXRoIHRlc3Qgc2hvdWxkIGJl
IHNraXBwZWQsIHRoZSBwb2ludGVyCiAgIC8vIGlzIHNldCB0byBOVUxMOyBvdGhlcndpc2UsIGl0
IGlzIHNldCB0byB0aGUgYWRkcmVzcyBvZiBhIG5ldyBjb25jcmV0ZQogICAvLyBEZWF0aFRlc3Qg
b2JqZWN0IHRoYXQgY29udHJvbHMgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0ZXN0Lgot
ICBzdGF0aWMgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVn
ZXgsCisgIHN0YXRpYyBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIE1hdGNoZXI8
Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLAogICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwogICBEZWF0aFRlc3QoKTsK
ICAgdmlydHVhbCB+RGVhdGhUZXN0KCkgeyB9CkBAIC0xNDQsMjEgKzE0Niw0NCBAQCBHVEVTVF9E
SVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiBjbGFzcyBEZWF0aFRlc3RGYWN0
b3J5IHsKICBwdWJsaWM6CiAgIHZpcnR1YWwgfkRlYXRoVGVzdEZhY3RvcnkoKSB7IH0KLSAgdmly
dHVhbCBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwK
LSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhU
ZXN0KiogdGVzdCkgPSAwOworICB2aXJ0dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRl
bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4g
bWF0Y2hlciwgY29uc3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgbGlu
ZSwgRGVhdGhUZXN0KiogdGVzdCkgPSAwOwogfTsKIAogLy8gQSBjb25jcmV0ZSBEZWF0aFRlc3RG
YWN0b3J5IGltcGxlbWVudGF0aW9uIGZvciBub3JtYWwgdXNlLgogY2xhc3MgRGVmYXVsdERlYXRo
VGVzdEZhY3RvcnkgOiBwdWJsaWMgRGVhdGhUZXN0RmFjdG9yeSB7CiAgcHVibGljOgotICB2aXJ0
dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAot
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRl
c3QqKiB0ZXN0KTsKKyAgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRjaGVy
PGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpIG92ZXJyaWRlOwogfTsKIAogLy8gUmV0
dXJucyB0cnVlIGlmIGV4aXRfc3RhdHVzIGRlc2NyaWJlcyBhIHByb2Nlc3MgdGhhdCB3YXMgdGVy
bWluYXRlZAogLy8gYnkgYSBzaWduYWwsIG9yIGV4aXRlZCBub3JtYWxseSB3aXRoIGEgbm9uemVy
byBleGl0IGNvZGUuCiBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50IGV4
aXRfc3RhdHVzKTsKIAorLy8gQSBzdHJpbmcgcGFzc2VkIHRvIEVYUEVDVF9ERUFUSCAoZXRjLikg
aXMgY2F1Z2h0IGJ5IG9uZSBvZiB0aGVzZSBvdmVybG9hZHMKKy8vIGFuZCBpbnRlcnByZXRlZCBh
cyBhIHJlZ2V4IChyYXRoZXIgdGhhbiBhbiBFcSBtYXRjaGVyKSBmb3IgbGVnYWN5CisvLyBjb21w
YXRpYmlsaXR5LgoraW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6OnN0cmluZyY+IE1ha2VEZWF0
aFRlc3RNYXRjaGVyKAorICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KSB7CisgIHJl
dHVybiBDb250YWluc1JlZ2V4KHJlZ2V4LnBhdHRlcm4oKSk7Cit9CitpbmxpbmUgTWF0Y2hlcjxj
b25zdCA6OnN0ZDo6c3RyaW5nJj4gTWFrZURlYXRoVGVzdE1hdGNoZXIoY29uc3QgY2hhciogcmVn
ZXgpIHsKKyAgcmV0dXJuIENvbnRhaW5zUmVnZXgocmVnZXgpOworfQoraW5saW5lIE1hdGNoZXI8
Y29uc3QgOjpzdGQ6OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKAorICAgIGNvbnN0IDo6
c3RkOjpzdHJpbmcmIHJlZ2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4KHJlZ2V4KTsKK30K
KworLy8gSWYgYSBNYXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBpcyBwYXNzZWQgdG8gRVhQ
RUNUX0RFQVRIIChldGMuKSwgaXQncworLy8gdXNlZCBkaXJlY3RseS4KK2lubGluZSBNYXRjaGVy
PGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0Y2hlcigKKyAgICBNYXRjaGVy
PGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBtYXRjaGVyKSB7CisgIHJldHVybiBtYXRjaGVyOworfQor
CiAvLyBUcmFwcyBDKysgZXhjZXB0aW9ucyBlc2NhcGluZyBzdGF0ZW1lbnQgYW5kIHJlcG9ydHMg
dGhlbSBhcyB0ZXN0CiAvLyBmYWlsdXJlcy4gTm90ZSB0aGF0IHRyYXBwaW5nIFNFSCBleGNlcHRp
b25zIGlzIG5vdCBpbXBsZW1lbnRlZCBoZXJlLgogIyBpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpA
QCAtMTg2LDM4ICsyMTEsMzggQEAgR1RFU1RfQVBJXyBib29sIEV4aXRlZFVuc3VjY2Vzc2Z1bGx5
KGludCBleGl0X3N0YXR1cyk7CiAKIC8vIFRoaXMgbWFjcm8gaXMgZm9yIGltcGxlbWVudGluZyBB
U1NFUlRfREVBVEgqLCBFWFBFQ1RfREVBVEgqLAogLy8gQVNTRVJUX0VYSVQqLCBhbmQgRVhQRUNU
X0VYSVQqLgotIyBkZWZpbmUgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUs
IHJlZ2V4LCBmYWlsKSBcCi0gIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIFwKLSAgaWYg
KDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBcCi0gICAgY29uc3QgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6UkUmIGd0ZXN0X3JlZ2V4ID0gKHJlZ2V4KTsgXAotICAgIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkRlYXRoVGVzdCogZ3Rlc3RfZHQ7IFwKLSAgICBpZiAoITo6dGVzdGluZzo6
aW50ZXJuYWw6OkRlYXRoVGVzdDo6Q3JlYXRlKCNzdGF0ZW1lbnQsICZndGVzdF9yZWdleCwgXAot
ICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICZndGVzdF9kdCkpIHsgXAotICAgICAgZ290byBH
VEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0g
ICAgaWYgKGd0ZXN0X2R0ICE9IE5VTEwpIHsgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
c2NvcGVkX3B0cjwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0PiBcCi0gICAgICAgICAg
Z3Rlc3RfZHRfcHRyKGd0ZXN0X2R0KTsgXAotICAgICAgc3dpdGNoIChndGVzdF9kdC0+QXNzdW1l
Um9sZSgpKSB7IFwKLSAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6
Ok9WRVJTRUVfVEVTVDogXAotICAgICAgICAgIGlmICghZ3Rlc3RfZHQtPlBhc3NlZChwcmVkaWNh
dGUoZ3Rlc3RfZHQtPldhaXQoKSkpKSB7IFwKLSAgICAgICAgICAgIGdvdG8gR1RFU1RfQ09OQ0FU
X1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTsgXAotICAgICAgICAgIH0gXAotICAgICAg
ICAgIGJyZWFrOyBcCi0gICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0
OjpFWEVDVVRFX1RFU1Q6IHsgXAotICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRo
VGVzdDo6UmV0dXJuU2VudGluZWwgXAotICAgICAgICAgICAgICBndGVzdF9zZW50aW5lbChndGVz
dF9kdCk7IFwKLSAgICAgICAgICBHVEVTVF9FWEVDVVRFX0RFQVRIX1RFU1RfU1RBVEVNRU5UXyhz
dGF0ZW1lbnQsIGd0ZXN0X2R0KTsgXAotICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rp
bmc6OmludGVybmFsOjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyBcCi0gICAgICAgICAg
YnJlYWs7IFwKLSAgICAgICAgfSBcCi0gICAgICAgIGRlZmF1bHQ6IFwKLSAgICAgICAgICBicmVh
azsgXAotICAgICAgfSBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RFU1RfQ09OQ0FUX1RP
S0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTogXAotICAgICAgZmFpbCg6OnRlc3Rpbmc6Omlu
dGVybmFsOjpEZWF0aFRlc3Q6Okxhc3RNZXNzYWdlKCkpCisjZGVmaW5lIEdURVNUX0RFQVRIX1RF
U1RfKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleF9vcl9tYXRjaGVyLCBmYWlsKSAgICAgICAg
XAorICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFs
d2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0KiBndGVzdF9kdDsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhU
ZXN0OjpDcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICNzdGF0ZW1lbnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlRGVhdGhU
ZXN0TWF0Y2hlcihyZWdleF9vcl9tYXRjaGVyKSwgICAgICAgXAorICAgICAgICAgICAgX19GSUxF
X18sIF9fTElORV9fLCAmZ3Rlc3RfZHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElO
RV9fKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIGlmIChndGVzdF9kdCAhPSBudWxscHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0ZDo6dW5pcXVlX3B0cjwgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6RGVhdGhUZXN0PiBndGVzdF9kdF9wdHIoZ3Rlc3RfZHQpOyBcCisgICAgICBz
d2l0Y2ggKGd0ZXN0X2R0LT5Bc3N1bWVSb2xlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRo
VGVzdDo6T1ZFUlNFRV9URVNUOiAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBpZiAo
IWd0ZXN0X2R0LT5QYXNzZWQocHJlZGljYXRlKGd0ZXN0X2R0LT5XYWl0KCkpKSkgeyAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFi
ZWxfLCBfX0xJTkVfXyk7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RGVhdGhUZXN0OjpFWEVDVVRFX1RFU1Q6IHsgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJuU2VudGluZWwgZ3Rl
c3Rfc2VudGluZWwoICAgICAgIFwKKyAgICAgICAgICAgICAgZ3Rlc3RfZHQpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg
R1RFU1RfRVhFQ1VURV9ERUFUSF9URVNUX1NUQVRFTUVOVF8oc3RhdGVtZW50LCBndGVzdF9kdCk7
ICAgICAgICAgICAgXAorICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rpbmc6OmludGVy
bmFsOjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyAgIFwKKyAgICAgICAgICBicmVhazsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkZWZhdWx0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgfSBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfQ09O
Q0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgICAgICA6IGZhaWwoOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0
OjpMYXN0TWVzc2FnZSgpKQogLy8gVGhlIHN5bWJvbCAiZmFpbCIgaGVyZSBleHBhbmRzIHRvIHNv
bWV0aGluZyBpbnRvIHdoaWNoIGEgbWVzc2FnZQogLy8gY2FuIGJlIHN0cmVhbWVkLgogCkBAIC0y
MjYsMTQgKzI1MSwxMyBAQCBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50
IGV4aXRfc3RhdHVzKTsKIC8vIG11c3QgYWNjZXB0IGEgc3RyZWFtZWQgbWVzc2FnZSBldmVuIHRo
b3VnaCB0aGUgbWVzc2FnZSBpcyBuZXZlciBwcmludGVkLgogLy8gVGhlIHJlZ2V4IG9iamVjdCBp
cyBub3QgZXZhbHVhdGVkLCBidXQgaXQgaXMgdXNlZCB0byBwcmV2ZW50ICJ1bnVzZWQiCiAvLyB3
YXJuaW5ncyBhbmQgdG8gYXZvaWQgYW4gZXhwcmVzc2lvbiB0aGF0IGRvZXNuJ3QgY29tcGlsZSBp
biBkZWJ1ZyBtb2RlLgotI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVtZW50
LCByZWdleCkgICAgICAgICAgICAgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6QWx3YXlzVHJ1ZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgXAotICAgIEdURVNUX1NVUFBS
RVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAotICB9IGVs
c2UgaWYgKCE6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAg
XAotICAgIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFJiBndGVzdF9yZWdleCA9IChyZWdl
eCk7ICAgICAgXAotICAgIHN0YXRpY19jYXN0PHZvaWQ+KGd0ZXN0X3JlZ2V4KTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRF
TUVOVF8oc3RhdGVtZW50LCByZWdleF9vcl9tYXRjaGVyKSAgICBcCisgIEdURVNUX0FNQklHVU9V
U19FTFNFX0JMT0NLRVJfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYg
KDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18o
c3RhdGVtZW50KTsgICBcCisgIH0gZWxzZSBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5
c1RydWUoKSkgeyAgICAgICAgICAgICAgIFwKKyAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtl
RGVhdGhUZXN0TWF0Y2hlcihyZWdleF9vcl9tYXRjaGVyKTsgXAorICB9IGVsc2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgOjp0
ZXN0aW5nOjpNZXNzYWdlKCkKIAogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBj
b250ZW50cyBvZiB0aGUKQEAgLTI3Nyw0ICszMDEsNCBAQCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZs
YWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCk7CiB9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCisjZW5kaWYgIC8v
IEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVS
TkFMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgKaW5kZXggYWUzOGQ5NWJmODQ0ZmE5
ZGMyMTczOWNmODIxMjc2ZDViMzQxN2UzYS4uNGI1YWEzYjQ0MmRmMzFkNzY2MmM5Njk2Nzc5YTFl
MTg2YWE0Mjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaApAQCAtMzcsOCArMzcs
OCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwotI2RlZmluZSBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCisjaWZuZGVmIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2RlZmluZSBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KIAogI2lu
Y2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgogCkBAIC0xMTAsNyArMTEwLDcg
QEAgY2xhc3MgR1RFU1RfQVBJXyBGaWxlUGF0aCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbik7CiAKLSAg
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgcGF0aCBpcyAiIi4KKyAgLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSBwYXRoIGlzICIiLgogICBib29sIElzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBwYXRobmFtZV8uZW1wdHkoKTsgfQogCiAgIC8vIElmIGlucHV0IG5hbWUgaGFzIGEgdHJh
aWxpbmcgc2VwYXJhdG9yIGNoYXJhY3RlciwgcmVtb3ZlcyBpdCBhbmQgcmV0dXJucwpAQCAtMjA4
LDQgKzIwOCw0IEBAIGNsYXNzIEdURVNUX0FQSV8gRmlsZVBhdGggewogCiBHVEVTVF9ESVNBQkxF
X01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2VuZGlmICAvLyBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJu
YWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtaW50ZXJuYWwuaAppbmRleCBiNzYyZjYxZmM1M2MzZGI5Y2ZiNzUzOTQwZDkxYjVkNTRhYjM2
MzU3Li5mZjU1N2Q1YTM3YjNhNzEyYWUzOWU0OGY3NGUyNDIzNzU4N2RlNjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWlu
dGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC1pbnRlcm5hbC5oCkBAIC0zNCw4ICszNCw4IEBACiAKIC8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVS
TkFMX0dURVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfSU5URVJOQUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0dURVNUX0lOVEVSTkFMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVT
VF9JTlRFUk5BTF9HVEVTVF9JTlRFUk5BTF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcG9ydC5oIgogCkBAIC01MywxMSArNTMsMTMgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgog
I2luY2x1ZGUgPGZsb2F0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGlu
dD4KICNpbmNsdWRlIDxpb21hbmlwPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXA+
CiAjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgi
CkBAIC03NywxMCArNzksMjAgQEAKICNkZWZpbmUgR1RFU1RfQ09OQ0FUX1RPS0VOX0lNUExfKGZv
bywgYmFyKSBmb28gIyMgYmFyCiAKIC8vIFN0cmluZ2lmaWVzIGl0cyBhcmd1bWVudC4KLSNkZWZp
bmUgR1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gV29yayBhcm91bmQgYSBidWcgaW4g
dmlzdWFsIHN0dWRpbyB3aGljaCBkb2Vzbid0IGFjY2VwdCBjb2RlIGxpa2UgdGhpczoKKy8vCisv
LyAgICNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gICAjZGVmaW5lIE1B
Q1JPKGEsIGIsIGMpIC4uLiBHVEVTVF9TVFJJTkdJRllfKGEpIC4uLgorLy8gICBNQUNSTygsIHgs
IHkpCisvLworLy8gQ29tcGxhaW5pbmcgYWJvdXQgdGhlIGFyZ3VtZW50IHRvIEdURVNUX1NUUklO
R0lGWV8gYmVpbmcgZW1wdHkuCisvLyBUaGlzIGlzIGFsbG93ZWQgYnkgdGhlIHNwZWMuCisjZGVm
aW5lIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKG5hbWUsIC4uLikgI25hbWUKKyNkZWZpbmUgR1RF
U1RfU1RSSU5HSUZZXyguLi4pIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKF9fVkFfQVJHU19fLCAp
CiAKLWNsYXNzIFByb3RvY29sTWVzc2FnZTsKLW5hbWVzcGFjZSBwcm90bzIgeyBjbGFzcyBNZXNz
YWdlOyB9CituYW1lc3BhY2UgcHJvdG8yIHsKK2NsYXNzIE1lc3NhZ2VMaXRlOworfQogCiBuYW1l
c3BhY2UgdGVzdGluZyB7CiAKQEAgLTkxLDcgKzEwMyw3IEBAIGNsYXNzIE1lc3NhZ2U7ICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudHMgYSBmYWlsdXJlIG1lc3NhZ2UuCiBjbGFz
cyBUZXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnRzIGEgdGVzdC4K
IGNsYXNzIFRlc3RJbmZvOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZm9ybWF0aW9uIGFi
b3V0IGEgdGVzdC4KIGNsYXNzIFRlc3RQYXJ0UmVzdWx0OyAgICAgICAgICAgICAgICAgIC8vIFJl
c3VsdCBvZiBhIHRlc3QgcGFydC4KLWNsYXNzIFVuaXRUZXN0OyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEEgY29sbGVjdGlvbiBvZiB0ZXN0IGNhc2VzLgorY2xhc3MgVW5pdFRlc3Q7ICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gQSBjb2xsZWN0aW9uIG9mIHRlc3Qgc3VpdGVzLgogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIDo6c3RkOjpzdHJpbmcgUHJpbnRUb1N0cmluZyhjb25zdCBUJiB2
YWx1ZSk7CkBAIC0xMDYsMzQgKzExOCwyMiBAQCBjbGFzcyBVbml0VGVzdEltcGw7ICAgICAgICAg
ICAgICAgICAgICAvLyBPcGFxdWUgaW1wbGVtZW50YXRpb24gb2YgVW5pdFRlc3QKIC8vIHN0YWNr
IHRyYWNlLgogR1RFU1RfQVBJXyBleHRlcm4gY29uc3QgY2hhciBrU3RhY2tUcmFjZU1hcmtlcltd
OwogCi0vLyBUd28gb3ZlcmxvYWRlZCBoZWxwZXJzIGZvciBjaGVja2luZyBhdCBjb21waWxlIHRp
bWUgd2hldGhlciBhbgotLy8gZXhwcmVzc2lvbiBpcyBhIG51bGwgcG9pbnRlciBsaXRlcmFsIChp
LmUuIE5VTEwgb3IgYW55IDAtdmFsdWVkCi0vLyBjb21waWxlLXRpbWUgaW50ZWdyYWwgY29uc3Rh
bnQpLiAgVGhlaXIgcmV0dXJuIHZhbHVlcyBoYXZlCi0vLyBkaWZmZXJlbnQgc2l6ZXMsIHNvIHdl
IGNhbiB1c2Ugc2l6ZW9mKCkgdG8gdGVzdCB3aGljaCB2ZXJzaW9uIGlzCi0vLyBwaWNrZWQgYnkg
dGhlIGNvbXBpbGVyLiAgVGhlc2UgaGVscGVycyBoYXZlIG5vIGltcGxlbWVudGF0aW9ucywgYXMK
LS8vIHdlIG9ubHkgbmVlZCB0aGVpciBzaWduYXR1cmVzLgotLy8KLS8vIEdpdmVuIElzTnVsbExp
dGVyYWxIZWxwZXIoeCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZpcnN0Ci0vLyB2ZXJz
aW9uIGlmIHggY2FuIGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFNlY3JldCosIGFuZCBwaWNr
IHRoZQotLy8gc2Vjb25kIHZlcnNpb24gb3RoZXJ3aXNlLiAgU2luY2UgU2VjcmV0IGlzIGEgc2Vj
cmV0IGFuZCBpbmNvbXBsZXRlCi0vLyB0eXBlLCB0aGUgb25seSBleHByZXNzaW9uIGEgdXNlciBj
YW4gd3JpdGUgdGhhdCBoYXMgdHlwZSBTZWNyZXQqIGlzCi0vLyBhIG51bGwgcG9pbnRlciBsaXRl
cmFsLiAgVGhlcmVmb3JlLCB3ZSBrbm93IHRoYXQgeCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0
ZXJhbCBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgdmVyc2lvbiBpcyBwaWNrZWQgYnkgdGhlCi0v
LyBjb21waWxlci4KLWNoYXIgSXNOdWxsTGl0ZXJhbEhlbHBlcihTZWNyZXQqIHApOwotY2hhciAo
JklzTnVsbExpdGVyYWxIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotLy8gQSBjb21waWxl
LXRpbWUgYm9vbCBjb25zdGFudCB0aGF0IGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgeCBpcyBhCi0v
LyBudWxsIHBvaW50ZXIgbGl0ZXJhbCAoaS5lLiBOVUxMIG9yIGFueSAwLXZhbHVlZCBjb21waWxl
LXRpbWUKLS8vIGludGVncmFsIGNvbnN0YW50KS4KLSNpZmRlZiBHVEVTVF9FTExJUFNJU19ORUVE
U19QT0RfCi0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJlIHRoZSBj
b21waWxlciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2gg
ZWxsaXBzaXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHgpIGZhbHNl
Ci0jZWxzZQotIyBkZWZpbmUgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBcCi0gICAgKHNpemVv
Zig6OnRlc3Rpbmc6OmludGVybmFsOjpJc051bGxMaXRlcmFsSGVscGVyKHgpKSA9PSAxKQotI2Vu
ZGlmICAvLyBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfCisvLyBBbiBJZ25vcmVkVmFsdWUgb2Jq
ZWN0IGNhbiBiZSBpbXBsaWNpdGx5IGNvbnN0cnVjdGVkIGZyb20gQU5ZIHZhbHVlLgorY2xhc3Mg
SWdub3JlZFZhbHVlIHsKKyAgc3RydWN0IFNpbmsge307CisgcHVibGljOgorICAvLyBUaGlzIGNv
bnN0cnVjdG9yIHRlbXBsYXRlIGFsbG93cyBhbnkgdmFsdWUgdG8gYmUgaW1wbGljaXRseQorICAv
LyBjb252ZXJ0ZWQgdG8gSWdub3JlZFZhbHVlLiAgVGhlIG9iamVjdCBoYXMgbm8gZGF0YSBtZW1i
ZXIgYW5kCisgIC8vIGRvZXNuJ3QgdHJ5IHRvIHJlbWVtYmVyIGFueXRoaW5nIGFib3V0IHRoZSBh
cmd1bWVudC4gIFdlCisgIC8vIGRlbGliZXJhdGVseSBvbWl0IHRoZSAnZXhwbGljaXQnIGtleXdv
cmQgaW4gb3JkZXIgdG8gYWxsb3cgdGhlCisgIC8vIGNvbnZlcnNpb24gdG8gYmUgaW1wbGljaXQu
CisgIC8vIERpc2FibGUgdGhlIGNvbnZlcnNpb24gaWYgVCBhbHJlYWR5IGhhcyBhIG1hZ2ljYWwg
Y29udmVyc2lvbiBvcGVyYXRvci4KKyAgLy8gT3RoZXJ3aXNlIHdlIGdldCBhbWJpZ3VpdHkuCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVf
aWY8IXN0ZDo6aXNfY29udmVydGlibGU8VCwgU2luaz46OnZhbHVlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50Pjo6dHlwZSA9IDA+CisgIElnbm9yZWRWYWx1ZShjb25z
dCBUJiAvKiBpZ25vcmVkICovKSB7fSAgLy8gTk9MSU5UKHJ1bnRpbWUvZXhwbGljaXQpCit9Owog
CiAvLyBBcHBlbmRzIHRoZSB1c2VyLXN1cHBsaWVkIG1lc3NhZ2UgdG8gdGhlIEdvb2dsZS1UZXN0
LWdlbmVyYXRlZCBtZXNzYWdlLgogR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBBcHBlbmRVc2VyTWVz
c2FnZSgKQEAgLTIwMSw3ICsyMDEsNyBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIERpZmZTdHJp
bmdzKGNvbnN0IHN0ZDo6c3RyaW5nJiBsZWZ0LAogLy8gICBleHBlY3RlZF92YWx1ZTogICAgICAi
NSIKIC8vICAgYWN0dWFsX3ZhbHVlOiAgICAgICAgIjYiCiAvLwotLy8gVGhlIGlnbm9yaW5nX2Nh
c2UgcGFyYW1ldGVyIGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQorLy8gVGhlIGlnbm9y
aW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFzc2VydGlvbiBp
cyBhCiAvLyAqX1NUUkNBU0VFUSouICBXaGVuIGl0J3MgdHJ1ZSwgdGhlIHN0cmluZyAiIChpZ25v
cmluZyBjYXNlKSIgd2lsbAogLy8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVzc2FnZS4KIEdURVNU
X0FQSV8gQXNzZXJ0aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBleHBlY3RlZF9leHBy
ZXNzaW9uLApAQCAtMjg3LDcgKzI4Nyw3IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnQgewogICAvLwog
ICAvLyBTZWUgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZvciBtb3JlIGRldGFpbHMgb24gVUxQOgog
ICAvLyBodHRwOi8vcmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2NvbXBhcmlu
Zy1mbG9hdGluZy1wb2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8KLSAgc3RhdGljIGNvbnN0IHNp
emVfdCBrTWF4VWxwcyA9IDQ7CisgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrTWF4VWxwcyA9IDQ7
CiAKICAgLy8gQ29uc3RydWN0cyBhIEZsb2F0aW5nUG9pbnQgZnJvbSBhIHJhdyBmbG9hdGluZy1w
b2ludCBudW1iZXIuCiAgIC8vCkBAIC0zMzAsMTUgKzMzMCwxNSBAQCBjbGFzcyBGbG9hdGluZ1Bv
aW50IHsKICAgLy8gUmV0dXJucyB0aGUgc2lnbiBiaXQgb2YgdGhpcyBudW1iZXIuCiAgIEJpdHMg
c2lnbl9iaXQoKSBjb25zdCB7IHJldHVybiBrU2lnbkJpdE1hc2sgJiB1Xy5iaXRzXzsgfQogCi0g
IC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhpcyBpcyBOQU4gKG5vdCBhIG51bWJlcikuCisgIC8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIGlzIE5BTiAobm90IGEgbnVtYmVyKS4KICAg
Ym9vbCBpc19uYW4oKSBjb25zdCB7CiAgICAgLy8gSXQncyBhIE5BTiBpZiB0aGUgZXhwb25lbnQg
Yml0cyBhcmUgYWxsIG9uZXMgYW5kIHRoZSBmcmFjdGlvbgogICAgIC8vIGJpdHMgYXJlIG5vdCBl
bnRpcmVseSB6ZXJvcy4KICAgICByZXR1cm4gKGV4cG9uZW50X2JpdHMoKSA9PSBrRXhwb25lbnRC
aXRNYXNrKSAmJiAoZnJhY3Rpb25fYml0cygpICE9IDApOwogICB9CiAKLSAgLy8gUmV0dXJucyB0
cnVlIGlmZiB0aGlzIG51bWJlciBpcyBhdCBtb3N0IGtNYXhVbHBzIFVMUCdzIGF3YXkgZnJvbQot
ICAvLyByaHMuICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGZ1bmN0aW9uOgorICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhpcyBudW1iZXIgaXMgYXQgbW9zdCBrTWF4VWxwcyBVTFAncyBh
d2F5CisgIC8vIGZyb20gcmhzLiAgSW4gcGFydGljdWxhciwgdGhpcyBmdW5jdGlvbjoKICAgLy8K
ICAgLy8gICAtIHJldHVybnMgZmFsc2UgaWYgZWl0aGVyIG51bWJlciBpcyAob3IgYm90aCBhcmUp
IE5BTi4KICAgLy8gICAtIHRyZWF0cyByZWFsbHkgbGFyZ2UgbnVtYmVycyBhcyBhbG1vc3QgZXF1
YWwgdG8gaW5maW5pdHkuCkBAIC00MDksNyArNDA5LDcgQEAgdHlwZWRlZiBGbG9hdGluZ1BvaW50
PGZsb2F0PiBGbG9hdDsKIHR5cGVkZWYgRmxvYXRpbmdQb2ludDxkb3VibGU+IERvdWJsZTsKIAog
Ly8gSW4gb3JkZXIgdG8gY2F0Y2ggdGhlIG1pc3Rha2Ugb2YgcHV0dGluZyB0ZXN0cyB0aGF0IHVz
ZSBkaWZmZXJlbnQKLS8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSwgd2UgbmVlZCB0byBhc3NpZ24KKy8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1l
IHRlc3Qgc3VpdGUsIHdlIG5lZWQgdG8gYXNzaWduCiAvLyB1bmlxdWUgSURzIHRvIGZpeHR1cmUg
Y2xhc3NlcyBhbmQgY29tcGFyZSB0aGVtLiAgVGhlIFR5cGVJZCB0eXBlIGlzCiAvLyB1c2VkIHRv
IGhvbGQgc3VjaCBJRHMuICBUaGUgdXNlciBzaG91bGQgdHJlYXQgVHlwZUlkIGFzIGFuIG9wYXF1
ZQogLy8gdHlwZTogdGhlIG9ubHkgb3BlcmF0aW9uIGFsbG93ZWQgb24gVHlwZUlkIHZhbHVlcyBp
cyB0byBjb21wYXJlCkBAIC00NjksNyArNDY5LDcgQEAgY2xhc3MgVGVzdEZhY3RvcnlCYXNlIHsK
IHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2xhc3M+CiBjbGFzcyBUZXN0RmFjdG9yeUltcGwgOiBwdWJs
aWMgVGVzdEZhY3RvcnlCYXNlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgVGVzdCogQ3JlYXRlVGVz
dCgpIHsgcmV0dXJuIG5ldyBUZXN0Q2xhc3M7IH0KKyAgVGVzdCogQ3JlYXRlVGVzdCgpIG92ZXJy
aWRlIHsgcmV0dXJuIG5ldyBUZXN0Q2xhc3M7IH0KIH07CiAKICNpZiBHVEVTVF9PU19XSU5ET1dT
CkBAIC00ODUsOSArNDg1LDkgQEAgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgSXNIUkVTVUxU
RmFpbHVyZShjb25zdCBjaGFyKiBleHByLAogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MK
IAotLy8gVHlwZXMgb2YgU2V0VXBUZXN0Q2FzZSgpIGFuZCBUZWFyRG93blRlc3RDYXNlKCkgZnVu
Y3Rpb25zLgotdHlwZWRlZiB2b2lkICgqU2V0VXBUZXN0Q2FzZUZ1bmMpKCk7Ci10eXBlZGVmIHZv
aWQgKCpUZWFyRG93blRlc3RDYXNlRnVuYykoKTsKKy8vIFR5cGVzIG9mIFNldFVwVGVzdFN1aXRl
KCkgYW5kIFRlYXJEb3duVGVzdFN1aXRlKCkgZnVuY3Rpb25zLgordXNpbmcgU2V0VXBUZXN0U3Vp
dGVGdW5jID0gdm9pZCAoKikoKTsKK3VzaW5nIFRlYXJEb3duVGVzdFN1aXRlRnVuYyA9IHZvaWQg
KCopKCk7CiAKIHN0cnVjdCBDb2RlTG9jYXRpb24gewogICBDb2RlTG9jYXRpb24oY29uc3Qgc3Rk
OjpzdHJpbmcmIGFfZmlsZSwgaW50IGFfbGluZSkKQEAgLTQ5Nyw1OCArNDk3LDExNiBAQCBzdHJ1
Y3QgQ29kZUxvY2F0aW9uIHsKICAgaW50IGxpbmU7CiB9OwogCisvLyAgSGVscGVyIHRvIGlkZW50
aWZ5IHdoaWNoIHNldHVwIGZ1bmN0aW9uIGZvciBUZXN0Q2FzZSAvIFRlc3RTdWl0ZSB0byBjYWxs
LgorLy8gIE9ubHkgb25lIGZ1bmN0aW9uIGlzIGFsbG93ZWQsIGVpdGhlciBUZXN0Q2FzZSBvciBU
ZXN0U3V0ZSBidXQgbm90IGJvdGguCisKKy8vIFV0aWxpdHkgZnVuY3Rpb25zIHRvIGhlbHAgU3Vp
dGVBcGlSZXNvbHZlcgordXNpbmcgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgPSB2b2lkICgq
KSgpOworCitpbmxpbmUgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0Tm90RGVmYXVsdE9y
TnVsbCgKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBhLCBTZXRVcFRlYXJEb3duU3Vp
dGVGdW5jVHlwZSBkZWYpIHsKKyAgcmV0dXJuIGEgPT0gZGVmID8gbnVsbHB0ciA6IGE7Cit9CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorLy8gIE5vdGUgdGhhdCBTdWl0ZUFwaVJlc29sdmVyIGlu
aGVyaXRzIGZyb20gVCBiZWNhdXNlCisvLyAgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RT
dWl0ZSgpIGNvdWxkIGJlIHByb3RlY3RlZC4gVGhzIHdheQorLy8gIFN1aXRlQXBpUmVzb2x2ZXIg
Y2FuIGFjY2VzcyB0aGVtLgorc3RydWN0IFN1aXRlQXBpUmVzb2x2ZXIgOiBUIHsKKyAgLy8gdGVz
dGluZzo6VGVzdCBpcyBvbmx5IGZvcndhcmQgZGVjbGFyZWQgYXQgdGhpcyBwb2ludC4gU28gd2Ug
bWFrZSBpdCBhCisgIC8vIGRlcGVuZGVuZCBjbGFzcyBmb3IgdGhlIGNvbXBpbGVyIHRvIGJlIE9L
IHdpdGggaXQuCisgIHVzaW5nIFRlc3QgPQorICAgICAgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25h
bDxzaXplb2YoVCkgIT0gMCwgOjp0ZXN0aW5nOjpUZXN0LCB2b2lkPjo6dHlwZTsKKworICBzdGF0
aWMgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0U2V0VXBDYXNlT3JTdWl0ZShjb25zdCBj
aGFyKiBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2Fz
ZV9mcCA9CisgICAgICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlNldFVwVGVzdENhc2UsICZU
ZXN0OjpTZXRVcFRlc3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0
X3N1aXRlX2ZwID0KKyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6U2V0VXBUZXN0U3Vp
dGUsICZUZXN0OjpTZXRVcFRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2Fz
ZV9mcCB8fCAhdGVzdF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRl
IGJvdGggU2V0VXBUZXN0U3VpdGUgYW5kIFNldFVwVGVzdENhc2UsIHBsZWFzZSAiCisgICAgICAg
ICAgICJtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCAiCisgICAgICAgIDw8
IGZpbGVuYW1lIDw8ICI6IiA8PCBsaW5lX251bTsKKworICAgIHJldHVybiB0ZXN0X2Nhc2VfZnAg
IT0gbnVsbHB0ciA/IHRlc3RfY2FzZV9mcCA6IHRlc3Rfc3VpdGVfZnA7CisjZWxzZQorICAgICh2
b2lkKShmaWxlbmFtZSk7CisgICAgKHZvaWQpKGxpbmVfbnVtKTsKKyAgICByZXR1cm4gJlQ6OlNl
dFVwVGVzdFN1aXRlOworI2VuZGlmCisgIH0KKworICBzdGF0aWMgU2V0VXBUZWFyRG93blN1aXRl
RnVuY1R5cGUgR2V0VGVhckRvd25DYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBmaWxlbmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9mcCA9CisgICAgICAg
IEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlRlYXJEb3duVGVzdENhc2UsICZUZXN0OjpUZWFyRG93
blRlc3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X3N1aXRlX2Zw
ID0KKyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6VGVhckRvd25UZXN0U3VpdGUsICZU
ZXN0OjpUZWFyRG93blRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2FzZV9m
cCB8fCAhdGVzdF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRlIGJv
dGggVGVhckRvd25UZXN0U3VpdGUgYW5kIFRlYXJEb3duVGVzdENhc2UsIgorICAgICAgICAgICAi
IHBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCIKKyAgICAgICAg
PDwgZmlsZW5hbWUgPDwgIjoiIDw8IGxpbmVfbnVtOworCisgICAgcmV0dXJuIHRlc3RfY2FzZV9m
cCAhPSBudWxscHRyID8gdGVzdF9jYXNlX2ZwIDogdGVzdF9zdWl0ZV9mcDsKKyNlbHNlCisgICAg
KHZvaWQpKGZpbGVuYW1lKTsKKyAgICAodm9pZCkobGluZV9udW0pOworICAgIHJldHVybiAmVDo6
VGVhckRvd25UZXN0U3VpdGU7CisjZW5kaWYKKyAgfQorfTsKKwogLy8gQ3JlYXRlcyBhIG5ldyBU
ZXN0SW5mbyBvYmplY3QgYW5kIHJlZ2lzdGVycyBpdCB3aXRoIEdvb2dsZSBUZXN0OwogLy8gcmV0
dXJucyB0aGUgY3JlYXRlZCBvYmplY3QuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVz
dF9jYXNlX25hbWU6ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRlc3Rfc3VpdGVfbmFt
ZTogIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAgICAgICAgbmFtZSBv
ZiB0aGUgdGVzdAotLy8gICB0eXBlX3BhcmFtICAgICAgICB0aGUgbmFtZSBvZiB0aGUgdGVzdCdz
IHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCisvLyAgIHR5cGVfcGFyYW06ICAgICAgIHRoZSBu
YW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKIC8vICAgICAgICAg
ICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0LgotLy8gICB2YWx1ZV9wYXJhbSAgICAgICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0
ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAorLy8gICB2YWx1ZV9wYXJhbTogICAgICB0ZXh0IHJlcHJl
c2VudGF0aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAogLy8gICAgICAgICAgICAg
ICAgICAgICBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qu
CiAvLyAgIGNvZGVfbG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUgdGhlIHRlc3QgaXMg
ZGVmaW5lZAogLy8gICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNs
YXNzCi0vLyAgIHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQg
c2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8g
dGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCisvLyAgIHNldF91cF90
YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBz
dWl0ZQorLy8gICB0ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0
IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKIC8vICAgZmFjdG9yeTogICAgICAgICAgcG9pbnRl
ciB0byB0aGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9iamVjdC4KIC8vICAgICAgICAg
ICAgICAgICAgICAgVGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8gaW5zdGFuY2Ugd2lsbCBhc3N1
bWUKIC8vICAgICAgICAgICAgICAgICAgICAgb3duZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9iamVj
dC4KIEdURVNUX0FQSV8gVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNv
bnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29u
c3QgY2hhciogdHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBD
b2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwK
LSAgICBTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1
bmMgdGVhcl9kb3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSk7CisgICAgY29u
c3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB0
eXBlX3BhcmFtLAorICAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtLCBDb2RlTG9jYXRpb24gY29k
ZV9sb2NhdGlvbiwKKyAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwgU2V0VXBUZXN0U3VpdGVG
dW5jIHNldF91cF90YywKKyAgICBUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjLCBU
ZXN0RmFjdG9yeUJhc2UqIGZhY3RvcnkpOwogCiAvLyBJZiAqcHN0ciBzdGFydHMgd2l0aCB0aGUg
Z2l2ZW4gcHJlZml4LCBtb2RpZmllcyAqcHN0ciB0byBiZSByaWdodAogLy8gcGFzdCB0aGUgcHJl
Zml4IGFuZCByZXR1cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnBzdHIgdW5jaGFuZ2VkCiAv
LyBhbmQgcmV0dXJucyBmYWxzZS4gIE5vbmUgb2YgcHN0ciwgKnBzdHIsIGFuZCBwcmVmaXggY2Fu
IGJlIE5VTEwuCiBHVEVTVF9BUElfIGJvb2wgU2tpcFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgs
IGNvbnN0IGNoYXIqKiBwc3RyKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNU
X0hBU19UWVBFRF9URVNUX1AKLQogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDI1
MSBcCiAvKiBjbGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5
IGNsaWVudHMgb2YgY2xhc3MgQiAqLykKIAotLy8gU3RhdGUgb2YgdGhlIGRlZmluaXRpb24gb2Yg
YSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgotY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRl
c3RDYXNlUFN0YXRlIHsKKy8vIFN0YXRlIG9mIHRoZSBkZWZpbml0aW9uIG9mIGEgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3Qgc3VpdGUuCitjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdFN1aXRlUFN0
YXRlIHsKICBwdWJsaWM6Ci0gIFR5cGVkVGVzdENhc2VQU3RhdGUoKSA6IHJlZ2lzdGVyZWRfKGZh
bHNlKSB7fQorICBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSgpIDogcmVnaXN0ZXJlZF8oZmFsc2UpIHt9
CiAKICAgLy8gQWRkcyB0aGUgZ2l2ZW4gdGVzdCBuYW1lIHRvIGRlZmluZWRfdGVzdF9uYW1lc18g
YW5kIHJldHVybiB0cnVlCi0gIC8vIGlmIHRoZSB0ZXN0IGNhc2UgaGFzbid0IGJlZW4gcmVnaXN0
ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKKyAgLy8gaWYgdGhlIHRlc3Qgc3VpdGUgaGFzbid0
IGJlZW4gcmVnaXN0ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKICAgLy8gcHJvZ3JhbS4KICAg
Ym9vbCBBZGRUZXN0TmFtZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciog
Y2FzZV9uYW1lLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfbmFtZSkgewog
ICAgIGlmIChyZWdpc3RlcmVkXykgewotICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBUZXN0ICVz
IG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgotICAgICAgICAgICAgICAiUkVHSVNURVJfVFlQRURf
VEVTVF9DQVNFX1AoJXMsIC4uLikuXG4iLAorICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAg
ICAgICAgICIlcyBUZXN0ICVzIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgorICAgICAgICAgICAg
ICAiUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKCVzLCAuLi4pLlxuIiwKICAgICAgICAgICAg
ICAgRm9ybWF0RmlsZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCksIHRlc3RfbmFtZSwgY2Fz
ZV9uYW1lKTsKICAgICAgIGZmbHVzaChzdGRlcnIpOwogICAgICAgcG9zaXg6OkFib3J0KCk7CkBA
IC01NzEsOCArNjI5LDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsK
ICAgLy8gVmVyaWZpZXMgdGhhdCByZWdpc3RlcmVkX3Rlc3RzIG1hdGNoIHRoZSB0ZXN0IG5hbWVz
IGluCiAgIC8vIGRlZmluZWRfdGVzdF9uYW1lc187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBp
ZiBzdWNjZXNzZnVsLCBvcgogICAvLyBhYm9ydHMgdGhlIHByb2dyYW0gb3RoZXJ3aXNlLgotICBj
b25zdCBjaGFyKiBWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAotICAgICAgY29uc3QgY2hhciog
ZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpOworICBjb25zdCBj
aGFyKiBWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBm
aWxlLCBpbnQgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiByZWdpc3RlcmVkX3Rlc3RzKTsKIAogIHByaXZhdGU6CiAgIHR5cGVkZWYgOjpz
dGQ6Om1hcDxzdGQ6OnN0cmluZywgQ29kZUxvY2F0aW9uPiBSZWdpc3RlcmVkVGVzdHNNYXA7CkBA
IC01ODEsMTQgKzY0MCwxOSBAQCBjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdENhc2VQU3RhdGUg
ewogICBSZWdpc3RlcmVkVGVzdHNNYXAgcmVnaXN0ZXJlZF90ZXN0c187CiB9OwogCisvLyAgTGVn
YWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1Rf
UkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCit1c2luZyBUeXBlZFRlc3RDYXNlUFN0YXRlID0g
VHlwZWRUZXN0U3VpdGVQU3RhdGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKwogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1
MQogCiAvLyBTa2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgYWZ0ZXIgdGhlIGZpcnN0
IGNvbW1hIGluICdzdHInOwogLy8gcmV0dXJucyBOVUxMIGlmIG5vIGNvbW1hIGlzIGZvdW5kIGlu
ICdzdHInLgogaW5saW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25zdCBjaGFyKiBzdHIpIHsK
ICAgY29uc3QgY2hhciogY29tbWEgPSBzdHJjaHIoc3RyLCAnLCcpOwotICBpZiAoY29tbWEgPT0g
TlVMTCkgewotICAgIHJldHVybiBOVUxMOworICBpZiAoY29tbWEgPT0gbnVsbHB0cikgeworICAg
IHJldHVybiBudWxscHRyOwogICB9CiAgIHdoaWxlIChJc1NwYWNlKCooKytjb21tYSkpKSB7fQog
ICByZXR1cm4gY29tbWE7CkBAIC01OTgsNyArNjYyLDcgQEAgaW5saW5lIGNvbnN0IGNoYXIqIFNr
aXBDb21tYShjb25zdCBjaGFyKiBzdHIpIHsKIC8vIHRoZSBlbnRpcmUgc3RyaW5nIGlmIGl0IGNv
bnRhaW5zIG5vIGNvbW1hLgogaW5saW5lIHN0ZDo6c3RyaW5nIEdldFByZWZpeFVudGlsQ29tbWEo
Y29uc3QgY2hhciogc3RyKSB7CiAgIGNvbnN0IGNoYXIqIGNvbW1hID0gc3RyY2hyKHN0ciwgJywn
KTsKLSAgcmV0dXJuIGNvbW1hID09IE5VTEwgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNvbW1h
KTsKKyAgcmV0dXJuIGNvbW1hID09IG51bGxwdHIgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNv
bW1hKTsKIH0KIAogLy8gU3BsaXRzIGEgZ2l2ZW4gc3RyaW5nIG9uIGEgZ2l2ZW4gZGVsaW1pdGVy
LCBwb3B1bGF0aW5nIGEgZ2l2ZW4KQEAgLTYyMSw3ICs2ODUsNyBAQCBzdHJ1Y3QgTmFtZUdlbmVy
YXRvclNlbGVjdG9yIHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBOYW1lR2VuZXJhdG9yPgot
dm9pZCBHZW5lcmF0ZU5hbWVzUmVjdXJzaXZlbHkoVHlwZXMwLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4qLCBpbnQpIHt9Cit2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVseShpbnRlcm5hbDo6
Tm9uZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiwgaW50KSB7fQogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgTmFtZUdlbmVyYXRvciwgdHlwZW5hbWUgVHlwZXM+CiB2b2lkIEdlbmVyYXRlTmFtZXNS
ZWN1cnNpdmVseShUeXBlcywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiByZXN1bHQsIGludCBp
KSB7CkBAIC02NDgsNyArNzEyLDcgQEAgdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBGaXh0dXJl
LCBjbGFzcyBUZXN0U2VsLCB0eXBlbmFtZSBUeXBlcz4KIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVk
VGVzdCB7CiAgcHVibGljOgogICAvLyAnaW5kZXgnIGlzIHRoZSBpbmRleCBvZiB0aGUgdGVzdCBp
biB0aGUgdHlwZSBsaXN0ICdUeXBlcycKLSAgLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfQ0FTRV9QKFByZWZpeCwgVGVzdENhc2UsCisgIC8vIHNwZWNpZmllZCBpbiBJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoUHJlZml4LCBUZXN0U3VpdGUsCiAgIC8vIFR5cGVz
KS4gIFZhbGlkIHZhbHVlcyBmb3IgJ2luZGV4JyBhcmUgWzAsIE4gLSAxXSB3aGVyZSBOIGlzIHRo
ZQogICAvLyBsZW5ndGggb2YgVHlwZXMuCiAgIHN0YXRpYyBib29sIFJlZ2lzdGVyKGNvbnN0IGNo
YXIqIHByZWZpeCwgY29uc3QgQ29kZUxvY2F0aW9uJiBjb2RlX2xvY2F0aW9uLApAQCAtNjYzLDEz
ICs3MjcsMTcgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0IHsKICAgICAvLyBsaXN0Lgog
ICAgIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAogICAgICAgICAoc3RkOjpzdHJpbmcocHJlZml4
KSArIChwcmVmaXhbMF0gPT0gJ1wwJyA/ICIiIDogIi8iKSArIGNhc2VfbmFtZSArCi0gICAgICAg
ICAiLyIgKyB0eXBlX25hbWVzW2luZGV4XSkKKyAgICAgICAgICIvIiArIHR5cGVfbmFtZXNbc3Rh
dGljX2Nhc3Q8c2l6ZV90PihpbmRleCldKQogICAgICAgICAgICAgLmNfc3RyKCksCiAgICAgICAg
IFN0cmlwVHJhaWxpbmdTcGFjZXMoR2V0UHJlZml4VW50aWxDb21tYSh0ZXN0X25hbWVzKSkuY19z
dHIoKSwKICAgICAgICAgR2V0VHlwZU5hbWU8VHlwZT4oKS5jX3N0cigpLAotICAgICAgICBOVUxM
LCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgotICAgICAgICBjb2RlX2xvY2F0aW9uLCBHZXRUeXBl
SWQ8Rml4dHVyZUNsYXNzPigpLCBUZXN0Q2xhc3M6OlNldFVwVGVzdENhc2UsCi0gICAgICAgIFRl
c3RDbGFzczo6VGVhckRvd25UZXN0Q2FzZSwgbmV3IFRlc3RGYWN0b3J5SW1wbDxUZXN0Q2xhc3M+
KTsKKyAgICAgICAgbnVsbHB0ciwgIC8vIE5vIHZhbHVlIHBhcmFtZXRlci4KKyAgICAgICAgY29k
ZV9sb2NhdGlvbiwgR2V0VHlwZUlkPEZpeHR1cmVDbGFzcz4oKSwKKyAgICAgICAgU3VpdGVBcGlS
ZXNvbHZlcjxUZXN0Q2xhc3M+OjpHZXRTZXRVcENhc2VPclN1aXRlKAorICAgICAgICAgICAgY29k
ZV9sb2NhdGlvbi5maWxlLmNfc3RyKCksIGNvZGVfbG9jYXRpb24ubGluZSksCisgICAgICAgIFN1
aXRlQXBpUmVzb2x2ZXI8VGVzdENsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZSgKKyAgICAg
ICAgICAgIGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLCBjb2RlX2xvY2F0aW9uLmxpbmUpLAor
ICAgICAgICBuZXcgVGVzdEZhY3RvcnlJbXBsPFRlc3RDbGFzcz4pOwogCiAgICAgLy8gTmV4dCwg
cmVjdXJzZXMgKGF0IGNvbXBpbGUgdGltZSkgd2l0aCB0aGUgdGFpbCBvZiB0aGUgdHlwZSBsaXN0
LgogICAgIHJldHVybiBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwKQEAg
LTY4NCw3ICs3NTIsNyBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3QgewogCiAvLyBUaGUg
YmFzZSBjYXNlIGZvciB0aGUgY29tcGlsZSB0aW1lIHJlY3Vyc2lvbi4KIHRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gRml4dHVyZSwgY2xhc3MgVGVzdFNlbD4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJp
emVkVGVzdDxGaXh0dXJlLCBUZXN0U2VsLCBUeXBlczA+IHsKK2NsYXNzIFR5cGVQYXJhbWV0ZXJp
emVkVGVzdDxGaXh0dXJlLCBUZXN0U2VsLCBpbnRlcm5hbDo6Tm9uZT4gewogIHB1YmxpYzoKICAg
c3RhdGljIGJvb2wgUmVnaXN0ZXIoY29uc3QgY2hhciogLypwcmVmaXgqLywgY29uc3QgQ29kZUxv
Y2F0aW9uJiwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogLypjYXNlX25hbWUq
LywgY29uc3QgY2hhciogLyp0ZXN0X25hbWVzKi8sCkBAIC02OTUsMTggKzc2MywyNCBAQCBjbGFz
cyBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwgVHlwZXMwPiB7CiAgIH0K
IH07CiAKLS8vIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgVGVzdHMsIFR5cGVz
Pjo6UmVnaXN0ZXIoKQorR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRp
b24pOworR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJ
bnN0YW50aWF0aW9uKAorICAgIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSk7CisKKy8vIFR5cGVQYXJh
bWV0ZXJpemVkVGVzdFN1aXRlPEZpeHR1cmUsIFRlc3RzLCBUeXBlcz46OlJlZ2lzdGVyKCkKIC8v
IHJlZ2lzdGVycyAqYWxsIGNvbWJpbmF0aW9ucyogb2YgJ1Rlc3RzJyBhbmQgJ1R5cGVzJyB3aXRo
IEdvb2dsZQogLy8gVGVzdC4gIFRoZSByZXR1cm4gdmFsdWUgaXMgaW5zaWduaWZpY2FudCAtIHdl
IGp1c3QgbmVlZCB0byByZXR1cm4KIC8vIHNvbWV0aGluZyBzdWNoIHRoYXQgd2UgY2FuIGNhbGwg
dGhpcyBmdW5jdGlvbiBpbiBhIG5hbWVzcGFjZSBzY29wZS4KIHRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gRml4dHVyZSwgdHlwZW5hbWUgVGVzdHMsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSB7CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZSB7CiAgcHVibGljOgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiBwcmVmaXgs
IENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBUeXBlZFRlc3RDYXNlUFN0YXRlKiBzdGF0ZSwgY29uc3QgY2hhciogY2FzZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSogc3RhdGUsIGNv
bnN0IGNoYXIqIGNhc2VfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
dGVzdF9uYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+JiB0eXBlX25hbWVzID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVy
YXRlTmFtZXM8RGVmYXVsdE5hbWVHZW5lcmF0b3IsIFR5cGVzPigpKSB7CisgICAgUmVnaXN0ZXJU
eXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY2FzZV9uYW1lKTsKICAgICBz
dGQ6OnN0cmluZyB0ZXN0X25hbWUgPSBTdHJpcFRyYWlsaW5nU3BhY2VzKAogICAgICAgICBHZXRQ
cmVmaXhVbnRpbENvbW1hKHRlc3RfbmFtZXMpKTsKICAgICBpZiAoIXN0YXRlLT5UZXN0RXhpc3Rz
KHRlc3RfbmFtZSkpIHsKQEAgLTcyNiwyMCArODAwLDIwIEBAIGNsYXNzIFR5cGVQYXJhbWV0ZXJp
emVkVGVzdENhc2UgewogICAgICAgICBwcmVmaXgsIHRlc3RfbG9jYXRpb24sIGNhc2VfbmFtZSwg
dGVzdF9uYW1lcywgMCwgdHlwZV9uYW1lcyk7CiAKICAgICAvLyBOZXh0LCByZWN1cnNlcyAoYXQg
Y29tcGlsZSB0aW1lKSB3aXRoIHRoZSB0YWlsIG9mIHRoZSB0ZXN0IGxpc3QuCi0gICAgcmV0dXJu
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgdHlwZW5hbWUgVGVzdHM6OlRhaWws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM+OjpSZWdpc3Rlcihw
cmVmaXgsIGNvZGVfbG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcENvbW1hKHRlc3RfbmFtZXMp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZV9uYW1lcyk7CisgICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPEZpeHR1
cmUsIHR5cGVuYW1lIFRlc3RzOjpUYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUeXBlcz46OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2NhdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgY2Fz
ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNraXBDb21tYSh0ZXN0X25hbWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX25hbWVzKTsKICAgfQogfTsKIAogLy8g
VGhlIGJhc2UgY2FzZSBmb3IgdGhlIGNvbXBpbGUgdGltZSByZWN1cnNpb24uCiB0ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIEZpeHR1cmUsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlwZVBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4geworY2xhc3MgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8Rml4dHVyZSwgaW50ZXJuYWw6Ok5vbmUsIFR5cGVzPiB7
CiAgcHVibGljOgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiAvKnByZWZpeCov
LCBjb25zdCBDb2RlTG9jYXRpb24mLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBl
ZFRlc3RDYXNlUFN0YXRlKiAvKnN0YXRlKi8sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFR5cGVkVGVzdFN1aXRlUFN0YXRlKiAvKnN0YXRlKi8sCiAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIC8qY2FzZV9uYW1lKi8sIGNvbnN0IGNoYXIqIC8qdGVzdF9uYW1lcyovLAog
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mID0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPigpIC8q
dHlwZV9uYW1lcyovKSB7CkBAIC03NDcsOCArODIxLDYgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4gewogICB9CiB9OwogCi0jZW5k
aWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQog
Ly8gUmV0dXJucyB0aGUgY3VycmVudCBPUyBzdGFjayB0cmFjZSBhcyBhbiBzdGQ6OnN0cmluZy4K
IC8vCiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIHRvIGJlIGluY2x1ZGVk
IGlzIHNwZWNpZmllZCBieQpAQCAtNzgwLDYgKzg1MiwxNiBAQCBzdHJ1Y3QgR1RFU1RfQVBJXyBD
b25zdENoYXJQdHIgewogICBjb25zdCBjaGFyKiB2YWx1ZTsKIH07CiAKKy8vIEhlbHBlciBmb3Ig
ZGVjbGFyaW5nIHN0ZDo6c3RyaW5nIHdpdGhpbiAnaWYnIHN0YXRlbWVudAorLy8gaW4gcHJlIEMr
KzE3IGJ1aWxkIGVudmlyb25tZW50Lgorc3RydWN0IFRydWVXaXRoU3RyaW5nIHsKKyAgVHJ1ZVdp
dGhTdHJpbmcoKSA9IGRlZmF1bHQ7CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cikgOiB2YWx1ZShzdHIpIHt9CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0
IHN0ZDo6c3RyaW5nJiBzdHIpIDogdmFsdWUoc3RyKSB7fQorICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICBzdGQ6OnN0cmluZyB2YWx1ZTsKK307CisK
IC8vIEEgc2ltcGxlIExpbmVhciBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIGZvciBnZW5lcmF0aW5n
IHJhbmRvbQogLy8gbnVtYmVycyB3aXRoIGEgdW5pZm9ybSBkaXN0cmlidXRpb24uICBVbmxpa2Ug
cmFuZCgpIGFuZCBzcmFuZCgpLCBpdAogLy8gZG9lc24ndCB1c2UgZ2xvYmFsIHN0YXRlIChhbmQg
dGhlcmVmb3JlIGNhbid0IGludGVyZmVyZSB3aXRoIHVzZXIKQEAgLTc4NywxMzUgKzg2OSw1MyBA
QCBzdHJ1Y3QgR1RFU1RfQVBJXyBDb25zdENoYXJQdHIgewogLy8gYnV0IGl0J3MgZ29vZCBlbm91
Z2ggZm9yIG91ciBwdXJwb3Nlcy4KIGNsYXNzIEdURVNUX0FQSV8gUmFuZG9tIHsKICBwdWJsaWM6
Ci0gIHN0YXRpYyBjb25zdCBVSW50MzIga01heFJhbmdlID0gMXUgPDwgMzE7CisgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBrTWF4UmFuZ2UgPSAxdSA8PCAzMTsKIAotICBleHBsaWNpdCBSYW5kb20o
VUludDMyIHNlZWQpIDogc3RhdGVfKHNlZWQpIHt9CisgIGV4cGxpY2l0IFJhbmRvbSh1aW50MzJf
dCBzZWVkKSA6IHN0YXRlXyhzZWVkKSB7fQogCi0gIHZvaWQgUmVzZWVkKFVJbnQzMiBzZWVkKSB7
IHN0YXRlXyA9IHNlZWQ7IH0KKyAgdm9pZCBSZXNlZWQodWludDMyX3Qgc2VlZCkgeyBzdGF0ZV8g
PSBzZWVkOyB9CiAKICAgLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBmcm9tIFswLCByYW5n
ZSkuICBDcmFzaGVzIGlmICdyYW5nZScgaXMKICAgLy8gMCBvciBncmVhdGVyIHRoYW4ga01heFJh
bmdlLgotICBVSW50MzIgR2VuZXJhdGUoVUludDMyIHJhbmdlKTsKKyAgdWludDMyX3QgR2VuZXJh
dGUodWludDMyX3QgcmFuZ2UpOwogCiAgcHJpdmF0ZToKLSAgVUludDMyIHN0YXRlXzsKKyAgdWlu
dDMyX3Qgc3RhdGVfOwogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFJhbmRvbSk7
CiB9OwogCi0vLyBEZWZpbmluZyBhIHZhcmlhYmxlIG9mIHR5cGUgQ29tcGlsZUFzc2VydFR5cGVz
RXF1YWw8VDEsIFQyPiB3aWxsIGNhdXNlIGEKLS8vIGNvbXBpbGVyIGVycm9yIGlmZiBUMSBhbmQg
VDIgYXJlIGRpZmZlcmVudCB0eXBlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDI+Ci1zdHJ1Y3QgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw7Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotc3RydWN0IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQsIFQ+IHsKLX07Ci0KLS8vIFJl
bW92ZXMgdGhlIHJlZmVyZW5jZSBmcm9tIGEgdHlwZSBpZiBpdCBpcyBhIHJlZmVyZW5jZSB0eXBl
LAotLy8gb3RoZXJ3aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFz
Ci0vLyB0cjE6OnJlbW92ZV9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxl
IHlldC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZVJlZmVyZW5jZSB7IHR5
cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVj
dCBSZW1vdmVSZWZlcmVuY2U8VCY+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKLQot
Ly8gQSBoYW5keSB3cmFwcGVyIGFyb3VuZCBSZW1vdmVSZWZlcmVuY2UgdGhhdCB3b3JrcyB3aGVu
IHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVm
aW5lIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rpbmc6
OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U8VD46OnR5cGUKKy8vIFR1cm5zIGNvbnN0IFUmLCBV
JiwgY29uc3QgVSwgYW5kIFUgYWxsIGludG8gVS4KKyNkZWZpbmUgR1RFU1RfUkVNT1ZFX1JFRkVS
RU5DRV9BTkRfQ09OU1RfKFQpIFwKKyAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5h
bWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlPjo6dHlwZQogCi0vLyBSZW1vdmVzIGNv
bnN0IGZyb20gYSB0eXBlIGlmIGl0IGlzIGEgY29uc3QgdHlwZSwgb3RoZXJ3aXNlIGxlYXZlcwot
Ly8gaXQgdW5jaGFuZ2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0cjE6OnJlbW92ZV9jb25zdCwg
d2hpY2ggaXMgbm90Ci0vLyB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotc3RydWN0IFJlbW92ZUNvbnN0IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQK
Ky8vIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxUPjo6dmFsdWUgaXMgYSBjb21w
aWxlLXRpbWUgYm9vbCBjb25zdGFudAorLy8gdGhhdCdzIHRydWUgaWYgYW5kIG9ubHkgaWYgVCBo
YXMgbWV0aG9kcyBEZWJ1Z1N0cmluZygpIGFuZCBTaG9ydERlYnVnU3RyaW5nKCkKKy8vIHRoYXQg
cmV0dXJuIHN0ZDo6c3RyaW5nLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUmVtb3Zl
Q29uc3Q8Y29uc3QgVD4geyB0eXBlZGVmIFQgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBNU1ZD
IDguMCwgU3VuIEMrKywgYW5kIElCTSBYTCBDKysgaGF2ZSBhIGJ1ZyB3aGljaCBjYXVzZXMgdGhl
IGFib3ZlCi0vLyBkZWZpbml0aW9uIHRvIGZhaWwgdG8gcmVtb3ZlIHRoZSBjb25zdCBpbiAnY29u
c3QgaW50WzNdJyBhbmQgJ2NvbnN0Ci0vLyBjaGFyWzNdWzRdJy4gIFRoZSBmb2xsb3dpbmcgc3Bl
Y2lhbGl6YXRpb24gd29ya3MgYXJvdW5kIHRoZSBidWcuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg
c2l6ZV90IE4+Ci1zdHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVFtOXT4gewotICB0eXBlZGVmIHR5
cGVuYW1lIFJlbW92ZUNvbnN0PFQ+Ojp0eXBlIHR5cGVbTl07Ci19OwotCi0jaWYgZGVmaW5lZChf
TVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxNDAwCi0vLyBUaGlzIGlzIHRoZSBvbmx5IHNwZWNpYWxp
emF0aW9uIHRoYXQgYWxsb3dzIFZDKysgNy4xIHRvIHJlbW92ZSBjb25zdCBpbgotLy8gJ2NvbnN0
IGludFszXSBhbmQgJ2NvbnN0IGludFszXVs0XScuICBIb3dldmVyLCBpdCBjYXVzZXMgdHJvdWJs
ZSB3aXRoIEdDQwotLy8gYW5kIHRodXMgbmVlZHMgdG8gYmUgY29uZGl0aW9uYWxseSBjb21waWxl
ZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0cnVjdCBSZW1vdmVDb25zdDxU
W05dPiB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ29uc3Q8VD46OnR5cGUgdHlwZVtOXTsK
LX07Ci0jZW5kaWYKK2NsYXNzIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZyB7Cisg
cHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEM+CisgIHN0YXRpYyBhdXRvIENoZWNrRGVi
dWdTdHJpbmcoQyopIC0+IHR5cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5n
LCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8Y29uc3QgQz4oKS5EZWJ1Z1N0cmluZygpKT46OnR5cGU7
CisgIHRlbXBsYXRlIDx0eXBlbmFtZT4KKyAgc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSBDaGVja0Rl
YnVnU3RyaW5nKC4uLik7CiAKLS8vIEEgaGFuZHkgd3JhcHBlciBhcm91bmQgUmVtb3ZlQ29uc3Qg
dGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBh
cmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9DT05TVF8oVCkgXAotICAgIHR5cGVuYW1l
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlbW92ZUNvbnN0PFQ+Ojp0eXBlCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBDPgorICBzdGF0aWMgYXV0byBDaGVja1Nob3J0RGVidWdTdHJpbmcoQyopIC0+IHR5
cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShzdGQ6OmRl
Y2x2YWw8Y29uc3QgQz4oKS5TaG9ydERlYnVnU3RyaW5nKCkpPjo6dHlwZTsKKyAgdGVtcGxhdGUg
PHR5cGVuYW1lPgorICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIENoZWNrU2hvcnREZWJ1Z1N0cmlu
ZyguLi4pOwogCi0vLyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0IFUsIGFuZCBVIGFsbCBpbnRv
IFUuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUKSBcCi0gICAg
R1RFU1RfUkVNT1ZFX0NPTlNUXyhHVEVTVF9SRU1PVkVfUkVGRVJFTkNFXyhUKSkKKyAgdXNpbmcg
SGFzRGVidWdTdHJpbmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tEZWJ1Z1N0cmluZzxUPihudWxscHRy
KSk7CisgIHVzaW5nIEhhc1Nob3J0RGVidWdTdHJpbmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tTaG9y
dERlYnVnU3RyaW5nPFQ+KG51bGxwdHIpKTsKIAotLy8gSW1wbGljaXRseUNvbnZlcnRpYmxlPEZy
b20sIFRvPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbAotLy8gY29uc3RhbnQgdGhhdCdz
IHRydWUgaWZmIHR5cGUgRnJvbSBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8KLS8vIHR5
cGUgVG8uCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+Ci1jbGFzcyBJbXBs
aWNpdGx5Q29udmVydGlibGUgewotIHByaXZhdGU6Ci0gIC8vIFdlIG5lZWQgdGhlIGZvbGxvd2lu
ZyBoZWxwZXIgZnVuY3Rpb25zIG9ubHkgZm9yIHRoZWlyIHR5cGVzLgotICAvLyBUaGV5IGhhdmUg
bm8gaW1wbGVtZW50YXRpb25zLgotCi0gIC8vIE1ha2VGcm9tKCkgaXMgYW4gZXhwcmVzc2lvbiB3
aG9zZSB0eXBlIGlzIEZyb20uICBXZSBjYW5ub3Qgc2ltcGx5Ci0gIC8vIHVzZSBGcm9tKCksIGFz
IHRoZSB0eXBlIEZyb20gbWF5IG5vdCBoYXZlIGEgcHVibGljIGRlZmF1bHQKLSAgLy8gY29uc3Ry
dWN0b3IuCi0gIHN0YXRpYyB0eXBlbmFtZSBBZGRSZWZlcmVuY2U8RnJvbT46OnR5cGUgTWFrZUZy
b20oKTsKLQotICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVybG9hZGVkLiAgR2l2ZW4g
YW4gZXhwcmVzc2lvbgotICAvLyBIZWxwZXIoeCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhl
IGZpcnN0IHZlcnNpb24gaWYgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8g
dHlwZSBUbzsgb3RoZXJ3aXNlIGl0IHdpbGwgcGljayB0aGUKLSAgLy8gc2Vjb25kIHZlcnNpb24u
Ci0gIC8vCi0gIC8vIFRoZSBmaXJzdCB2ZXJzaW9uIHJldHVybnMgYSB2YWx1ZSBvZiBzaXplIDEs
IGFuZCB0aGUgc2Vjb25kCi0gIC8vIHZlcnNpb24gcmV0dXJucyBhIHZhbHVlIG9mIHNpemUgMi4g
IFRoZXJlZm9yZSwgYnkgY2hlY2tpbmcgdGhlCi0gIC8vIHNpemUgb2YgSGVscGVyKHgpLCB3aGlj
aCBjYW4gYmUgZG9uZSBhdCBjb21waWxlIHRpbWUsIHdlIGNhbiB0ZWxsCi0gIC8vIHdoaWNoIHZl
cnNpb24gb2YgSGVscGVyKCkgaXMgdXNlZCwgYW5kIGhlbmNlIHdoZXRoZXIgeCBjYW4gYmUKLSAg
Ly8gaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gdHlwZSBUby4KLSAgc3RhdGljIGNoYXIgSGVscGVy
KFRvKTsKLSAgc3RhdGljIGNoYXIgKCZIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotICAv
LyBXZSBoYXZlIHRvIHB1dCB0aGUgJ3B1YmxpYycgc2VjdGlvbiBhZnRlciB0aGUgJ3ByaXZhdGUn
IHNlY3Rpb24sCi0gIC8vIG9yIE1TVkMgcmVmdXNlcyB0byBjb21waWxlIHRoZSBjb2RlLgogIHB1
YmxpYzoKLSNpZiBkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gQysrQnVpbGRlciBjYW5ub3Qg
dXNlIG1lbWJlciBvdmVybG9hZCByZXNvbHV0aW9uIGR1cmluZyB0ZW1wbGF0ZQotICAvLyBpbnN0
YW50aWF0aW9uLiAgVGhlIHNpbXBsZXN0IHdvcmthcm91bmQgaXMgdG8gdXNlIGl0cyBDKysweCB0
eXBlIHRyYWl0cwotICAvLyBmdW5jdGlvbnMgKEMrK0J1aWxkZXIgMjAwOSBhbmQgYWJvdmUgb25s
eSkuCi0gIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gX19pc19jb252ZXJ0aWJsZShGcm9tLCBU
byk7Ci0jZWxzZQotICAvLyBNU1ZDIHdhcm5zIGFib3V0IGltcGxpY2l0bHkgY29udmVydGluZyBm
cm9tIGRvdWJsZSB0byBpbnQgZm9yCi0gIC8vIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YSwgc28gd2Ug
bmVlZCB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHRoZQotICAvLyB3YXJuaW5nLgotICBHVEVTVF9E
SVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0MjQ0KQotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1
ZSA9Ci0gICAgICBzaXplb2YoSGVscGVyKEltcGxpY2l0bHlDb252ZXJ0aWJsZTo6TWFrZUZyb20o
KSkpID09IDE7Ci0gIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQotI2VuZGlmICAv
LyBfX0JPUkxBTkRDX18KKyAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0KKyAgICAgIEhh
c0RlYnVnU3RyaW5nVHlwZTo6dmFsdWUgJiYgSGFzU2hvcnREZWJ1Z1N0cmluZ1R5cGU6OnZhbHVl
OwogfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KLWNvbnN0IGJvb2wg
SW1wbGljaXRseUNvbnZlcnRpYmxlPEZyb20sIFRvPjo6dmFsdWU7CiAKLS8vIElzQVByb3RvY29s
TWVzc2FnZTxUPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbCBjb25zdGFudCB0aGF0J3MK
LS8vIHRydWUgaWZmIFQgaXMgdHlwZSBQcm90b2NvbE1lc3NhZ2UsIHByb3RvMjo6TWVzc2FnZSwg
b3IgYSBzdWJjbGFzcwotLy8gb2YgdGhvc2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVj
dCBJc0FQcm90b2NvbE1lc3NhZ2UKLSAgICA6IHB1YmxpYyBib29sX2NvbnN0YW50PAotICBJbXBs
aWNpdGx5Q29udmVydGlibGU8Y29uc3QgVCosIGNvbnN0IDo6UHJvdG9jb2xNZXNzYWdlKj46OnZh
bHVlIHx8Ci0gIEltcGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBUKiwgY29uc3QgOjpwcm90bzI6
Ok1lc3NhZ2UqPjo6dmFsdWU+IHsKLX07Citjb25zdGV4cHIgYm9vbCBIYXNEZWJ1Z1N0cmluZ0Fu
ZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlOwogCiAvLyBXaGVuIHRoZSBjb21waWxlciBzZWVz
IGV4cHJlc3Npb24gSXNDb250YWluZXJUZXN0PEM+KDApLCBpZiBDIGlzIGFuCiAvLyBTVEwtc3R5
bGUgY29udGFpbmVyIGNsYXNzLCB0aGUgZmlyc3Qgb3ZlcmxvYWQgb2YgSXNDb250YWluZXJUZXN0
CkBAIC05NDIsNyArOTQyLDYgQEAgc3RydWN0IElzQVByb3RvY29sTWVzc2FnZQogLy8gSXNDb250
YWluZXJUZXN0KHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yKikgYW5kCiAvLyBJc0NvbnRhaW5l
clRlc3QoLi4uKSBkb2Vzbid0IHdvcmsgd2l0aCBWaXN1YWwgQWdlIEMrKyBhbmQgU3VuIEMrKy4K
IHR5cGVkZWYgaW50IElzQ29udGFpbmVyOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKIHRlbXBsYXRl
IDxjbGFzcyBDLAogICAgICAgICAgIGNsYXNzIEl0ZXJhdG9yID0gZGVjbHR5cGUoOjpzdGQ6OmRl
Y2x2YWw8Y29uc3QgQyY+KCkuYmVnaW4oKSksCiAgICAgICAgICAgY2xhc3MgPSBkZWNsdHlwZSg6
OnN0ZDo6ZGVjbHZhbDxjb25zdCBDJj4oKS5lbmQoKSksCkBAIC05NTIsMTQgKzk1MSw2IEBAIHRl
bXBsYXRlIDxjbGFzcyBDLAogSXNDb250YWluZXIgSXNDb250YWluZXJUZXN0KGludCAvKiBkdW1t
eSAqLykgewogICByZXR1cm4gMDsKIH0KLSNlbHNlCi10ZW1wbGF0ZSA8Y2xhc3MgQz4KLUlzQ29u
dGFpbmVyIElzQ29udGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZW5hbWUgQzo6aXRlcmF0b3IqIC8qIGl0ICovID0gTlVMTCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciogLyogY29u
c3RfaXQgKi8gPSBOVUxMKSB7Ci0gIHJldHVybiAwOwotfQotI2VuZGlmICAvLyBHVEVTVF9MQU5H
X0NYWDExCiAKIHR5cGVkZWYgY2hhciBJc05vdENvbnRhaW5lcjsKIHRlbXBsYXRlIDxjbGFzcyBD
PgpAQCAtOTgwLDQ3ICs5NzEsMzAgQEAgc3RydWN0IElzSGFzaFRhYmxlIHsKICAgc3RhdGljIGNo
YXIgdGVzdCguLi4pOwogCiAgcHVibGljOgotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHNp
emVvZih0ZXN0PFQ+KDAsIDApKSA9PSBzaXplb2YoaW50KTsKKyAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSBzaXplb2YodGVzdDxUPihudWxscHRyLCBudWxscHRyKSkgPT0gc2l6ZW9mKGludCk7
CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNvbnN0IGJvb2wgSXNIYXNoVGFibGU8VD46
OnZhbHVlOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IFZvaWRUIHsKLSAgICB0eXBl
ZGVmIHZvaWQgdmFsdWVfdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IHZvaWQ+Ci1zdHJ1Y3QgSGFzVmFsdWVUeXBlIDogZmFsc2VfdHlwZSB7fTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotc3RydWN0IEhhc1ZhbHVlVHlwZTxULCBWb2lkVDx0eXBlbmFtZSBUOjp2
YWx1ZV90eXBlPiA+IDogdHJ1ZV90eXBlIHsKLX07Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBDLAot
ICAgICAgICAgIGJvb2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2Yo
SXNDb250YWluZXIpLAotICAgICAgICAgIGJvb2wgPSBIYXNWYWx1ZVR5cGU8Qz46OnZhbHVlPgor
ICAgICAgICAgIGJvb2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2Yo
SXNDb250YWluZXIpPgogc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDsKIAotdGVtcGxh
dGUgPHR5cGVuYW1lIEMsIGJvb2wgSFY+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBs
PEMsIGZhbHNlLCBIVj4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBDPgorc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCBmYWxzZT4gOiBwdWJsaWMg
c3RkOjpmYWxzZV90eXBlIHt9OwogCiAvLyBTaW5jZSB0aGUgSXNSZWN1cnNpdmVDb250YWluZXJJ
bXBsIGRlcGVuZHMgb24gdGhlIElzQ29udGFpbmVyVGVzdCB3ZSBuZWVkIHRvCiAvLyBvYmV5IHRo
ZSBzYW1lIGluY29uc2lzdGVuY2llcyBhcyB0aGUgSXNDb250YWluZXJUZXN0LCBuYW1lbHkgY2hl
Y2sgaWYKIC8vIHNvbWV0aGluZyBpcyBhIGNvbnRhaW5lciBpcyByZWx5aW5nIG9uIG9ubHkgY29u
c3RfaXRlcmF0b3IgaW4gQysrMTEgYW5kCiAvLyBpcyByZWx5aW5nIG9uIGJvdGggY29uc3RfaXRl
cmF0b3IgYW5kIGl0ZXJhdG9yIG90aGVyd2lzZQogdGVtcGxhdGUgPHR5cGVuYW1lIEM+Ci1zdHJ1
Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWUsIGZhbHNlPiA6IHB1YmxpYyBmYWxz
ZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXN0cnVjdCBJc1JlY3Vyc2l2ZUNv
bnRhaW5lckltcGw8QywgdHJ1ZSwgdHJ1ZT4gewotICAjaWYgR1RFU1RfTEFOR19DWFgxMQotICB0
eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yVHJhaXRzPHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9y
Pjo6dmFsdWVfdHlwZQotICAgICAgdmFsdWVfdHlwZTsKLSNlbHNlCi0gIHR5cGVkZWYgdHlwZW5h
bWUgSXRlcmF0b3JUcmFpdHM8dHlwZW5hbWUgQzo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlIHZhbHVl
X3R5cGU7Ci0jZW5kaWYKLSAgdHlwZWRlZiBpc19zYW1lPHZhbHVlX3R5cGUsIEM+IHR5cGU7Citz
dHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWU+IHsKKyAgdXNpbmcgdmFsdWVf
dHlwZSA9IGRlY2x0eXBlKCpzdGQ6OmRlY2x2YWw8dHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3I+
KCkpOworICB1c2luZyB0eXBlID0KKyAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJl
bW92ZV9jb25zdDwKKyAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVf
cmVmZXJlbmNlPHZhbHVlX3R5cGU+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICBD
PjsKIH07CiAKIC8vIElzUmVjdXJzaXZlQ29udGFpbmVyPFR5cGU+IGlzIGEgdW5hcnkgY29tcGls
ZS10aW1lIHByZWRpY2F0ZSB0aGF0CkBAIC0xMDMyLDEzICsxMDA2LDYgQEAgc3RydWN0IElzUmVj
dXJzaXZlQ29udGFpbmVySW1wbDxDLCB0cnVlLCB0cnVlPiB7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
Qz4KIHN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lciA6IHB1YmxpYyBJc1JlY3Vyc2l2ZUNvbnRh
aW5lckltcGw8Qz46OnR5cGUge307CiAKLS8vIEVuYWJsZUlmPGNvbmRpdGlvbj46OnR5cGUgaXMg
dm9pZCB3aGVuICdDb25kJyBpcyB0cnVlLCBhbmQKLS8vIHVuZGVmaW5lZCB3aGVuICdDb25kJyBp
cyBmYWxzZS4gIFRvIHVzZSBTRklOQUUgdG8gbWFrZSBhIGZ1bmN0aW9uCi0vLyBvdmVybG9hZCBv
bmx5IGFwcGx5IHdoZW4gYSBwYXJ0aWN1bGFyIGV4cHJlc3Npb24gaXMgdHJ1ZSwgYWRkCi0vLyAi
dHlwZW5hbWUgRW5hYmxlSWY8ZXhwcmVzc2lvbj46OnR5cGUqID0gMCIgYXMgdGhlIGxhc3QgcGFy
YW1ldGVyLgotdGVtcGxhdGU8Ym9vbD4gc3RydWN0IEVuYWJsZUlmOwotdGVtcGxhdGU8PiBzdHJ1
Y3QgRW5hYmxlSWY8dHJ1ZT4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsgIC8vIE5PTElOVAotCiAv
LyBVdGlsaXRpZXMgZm9yIG5hdGl2ZSBhcnJheXMuCiAKIC8vIEFycmF5RXEoKSBjb21wYXJlcyB0
d28gay1kaW1lbnNpb25hbCBuYXRpdmUgYXJyYXlzIHVzaW5nIHRoZQpAQCAtMTE2MSwxMCArMTEy
OCw5IEBAIGNsYXNzIE5hdGl2ZUFycmF5IHsKICAgfQogCiAgcHJpdmF0ZToKLSAgZW51bSB7Ci0g
ICAga0NoZWNrVHlwZUlzTm90Q29uc3RPckFSZWZlcmVuY2UgPSBTdGF0aWNBc3NlcnRUeXBlRXFI
ZWxwZXI8Ci0gICAgICAgIEVsZW1lbnQsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNU
XyhFbGVtZW50KT46OnZhbHVlCi0gIH07CisgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfY29uc3Q8
RWxlbWVudD46OnZhbHVlLCAiVHlwZSBtdXN0IG5vdCBiZSBjb25zdCIpOworICBzdGF0aWNfYXNz
ZXJ0KCFzdGQ6OmlzX3JlZmVyZW5jZTxFbGVtZW50Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAg
IlR5cGUgbXVzdCBub3QgYmUgYSByZWZlcmVuY2UiKTsKIAogICAvLyBJbml0aWFsaXplcyB0aGlz
IG9iamVjdCB3aXRoIGEgY29weSBvZiB0aGUgaW5wdXQuCiAgIHZvaWQgSW5pdENvcHkoY29uc3Qg
RWxlbWVudCogYXJyYXksIHNpemVfdCBhX3NpemUpIHsKQEAgLTExODUsMTMgKzExNTEsMTkwIEBA
IGNsYXNzIE5hdGl2ZUFycmF5IHsKICAgY29uc3QgRWxlbWVudCogYXJyYXlfOwogICBzaXplX3Qg
c2l6ZV87CiAgIHZvaWQgKE5hdGl2ZUFycmF5OjoqY2xvbmVfKShjb25zdCBFbGVtZW50Kiwgc2l6
ZV90KTsKK307CisKKy8vIEJhY2twb3J0IG9mIHN0ZDo6aW5kZXhfc2VxdWVuY2UuCit0ZW1wbGF0
ZSA8c2l6ZV90Li4uIElzPgorc3RydWN0IEluZGV4U2VxdWVuY2UgeworICB1c2luZyB0eXBlID0g
SW5kZXhTZXF1ZW5jZTsKK307CisKKy8vIERvdWJsZSB0aGUgSW5kZXhTZXF1ZW5jZSwgYW5kIG9u
ZSBpZiBwbHVzX29uZSBpcyB0cnVlLgordGVtcGxhdGUgPGJvb2wgcGx1c19vbmUsIHR5cGVuYW1l
IFQsIHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlOwordGVtcGxhdGUgPHNp
emVfdC4uLiBJLCBzaXplX3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1ZW5jZTx0cnVlLCBJ
bmRleFNlcXVlbmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNlcXVl
bmNlPEkuLi4sIChzaXplb2ZUICsgSSkuLi4sIDIgKiBzaXplb2ZUPjsKK307Cit0ZW1wbGF0ZSA8
c2l6ZV90Li4uIEksIHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlPGZhbHNl
LCBJbmRleFNlcXVlbmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNl
cXVlbmNlPEkuLi4sIChzaXplb2ZUICsgSSkuLi4+OworfTsKKworLy8gQmFja3BvcnQgb2Ygc3Rk
OjptYWtlX2luZGV4X3NlcXVlbmNlLgorLy8gSXQgdXNlcyBPKGxuKE4pKSBpbnN0YW50aWF0aW9u
IGRlcHRoLgordGVtcGxhdGUgPHNpemVfdCBOPgorc3RydWN0IE1ha2VJbmRleFNlcXVlbmNlSW1w
bAorICAgIDogRG91YmxlU2VxdWVuY2U8TiAlIDIgPT0gMSwgdHlwZW5hbWUgTWFrZUluZGV4U2Vx
dWVuY2VJbXBsPE4gLyAyPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIE4gLyAyPjo6dHlw
ZSB7fTsKIAotICBHVEVTVF9ESVNBTExPV19BU1NJR05fKE5hdGl2ZUFycmF5KTsKK3RlbXBsYXRl
IDw+CitzdHJ1Y3QgTWFrZUluZGV4U2VxdWVuY2VJbXBsPDA+IDogSW5kZXhTZXF1ZW5jZTw+IHt9
OworCit0ZW1wbGF0ZSA8c2l6ZV90IE4+Cit1c2luZyBNYWtlSW5kZXhTZXF1ZW5jZSA9IHR5cGVu
YW1lIE1ha2VJbmRleFNlcXVlbmNlSW1wbDxOPjo6dHlwZTsKKwordGVtcGxhdGUgPHR5cGVuYW1l
Li4uIFQ+Cit1c2luZyBJbmRleFNlcXVlbmNlRm9yID0gdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVu
Y2U8c2l6ZW9mLi4uKFQpPjo6dHlwZTsKKwordGVtcGxhdGUgPHNpemVfdD4KK3N0cnVjdCBJZ25v
cmUgeworICBJZ25vcmUoLi4uKTsgIC8vIE5PTElOVAorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1l
Pgorc3RydWN0IEVsZW1Gcm9tTGlzdEltcGw7Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEk+CitzdHJ1
Y3QgRWxlbUZyb21MaXN0SW1wbDxJbmRleFNlcXVlbmNlPEkuLi4+PiB7CisgIC8vIFdlIG1ha2Ug
SWdub3JlIGEgdGVtcGxhdGUgdG8gc29sdmUgYSBwcm9ibGVtIHdpdGggTVNWQy4KKyAgLy8gQSBu
b24tdGVtcGxhdGUgSWdub3JlIHdvdWxkIHdvcmsgZmluZSB3aXRoIGBkZWNsdHlwZShJZ25vcmUo
SSkpLi4uYCwgYnV0CisgIC8vIE1TVkMgZG9lc24ndCB1bmRlcnN0YW5kIGhvdyB0byBkZWFsIHdp
dGggdGhhdCBwYWNrIGV4cGFuc2lvbi4KKyAgLy8gVXNlIGAwICogSWAgdG8gaGF2ZSBhIHNpbmds
ZSBpbnN0YW50aWF0aW9uIG9mIElnbm9yZS4KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFI+CisgIHN0
YXRpYyBSIEFwcGx5KElnbm9yZTwwICogST4uLi4sIFIgKCopKCksIC4uLik7Cit9OworCit0ZW1w
bGF0ZSA8c2l6ZV90IE4sIHR5cGVuYW1lLi4uIFQ+CitzdHJ1Y3QgRWxlbUZyb21MaXN0IHsKKyAg
dXNpbmcgdHlwZSA9CisgICAgICBkZWNsdHlwZShFbGVtRnJvbUxpc3RJbXBsPHR5cGVuYW1lIE1h
a2VJbmRleFNlcXVlbmNlPE4+Ojp0eXBlPjo6QXBwbHkoCisgICAgICAgICAgc3RhdGljX2Nhc3Q8
VCAoKikoKT4obnVsbHB0cikuLi4pKTsKIH07CiAKK3N0cnVjdCBGbGF0VHVwbGVDb25zdHJ1Y3RU
YWcge307CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgRmxhdFR1cGxlOworCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgRGVyaXZlZCwgc2l6ZV90IEk+CitzdHJ1Y3QgRmxhdFR1cGxlRWxl
bUJhc2U7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBULCBzaXplX3QgST4KK3N0cnVjdCBGbGF0
VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIEk+IHsKKyAgdXNpbmcgdmFsdWVfdHlwZSA9
IHR5cGVuYW1lIEVsZW1Gcm9tTGlzdDxJLCBULi4uPjo6dHlwZTsKKyAgRmxhdFR1cGxlRWxlbUJh
c2UoKSA9IGRlZmF1bHQ7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmc+CisgIGV4cGxpY2l0IEZs
YXRUdXBsZUVsZW1CYXNlKEZsYXRUdXBsZUNvbnN0cnVjdFRhZywgQXJnJiYgdCkKKyAgICAgIDog
dmFsdWUoc3RkOjpmb3J3YXJkPEFyZz4odCkpIHt9CisgIHZhbHVlX3R5cGUgdmFsdWU7Cit9Owor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgSWR4Pgorc3RydWN0IEZsYXRU
dXBsZUJhc2U7CisKK3RlbXBsYXRlIDxzaXplX3QuLi4gSWR4LCB0eXBlbmFtZS4uLiBUPgorc3Ry
dWN0IEZsYXRUdXBsZUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJbmRleFNlcXVlbmNlPElkeC4uLj4+
CisgICAgOiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4uLi4geworICB1
c2luZyBJbmRpY2VzID0gSW5kZXhTZXF1ZW5jZTxJZHguLi4+OworICBGbGF0VHVwbGVCYXNlKCkg
PSBkZWZhdWx0OworICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KKyAgZXhwbGljaXQgRmxh
dFR1cGxlQmFzZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcsIEFyZ3MmJi4uLiBhcmdzKQorICAgICAg
OiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4oRmxhdFR1cGxlQ29uc3Ry
dWN0VGFne30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykpLi4uIHt9CisKKyAgdGVtcGxhdGUgPHNpemVfdCBJ
PgorICBjb25zdCB0eXBlbmFtZSBFbGVtRnJvbUxpc3Q8SSwgVC4uLj46OnR5cGUmIEdldCgpIGNv
bnN0IHsKKyAgICByZXR1cm4gRmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJPjo6
dmFsdWU7CisgIH0KKworICB0ZW1wbGF0ZSA8c2l6ZV90IEk+CisgIHR5cGVuYW1lIEVsZW1Gcm9t
TGlzdDxJLCBULi4uPjo6dHlwZSYgR2V0KCkgeworICAgIHJldHVybiBGbGF0VHVwbGVFbGVtQmFz
ZTxGbGF0VHVwbGU8VC4uLj4sIEk+Ojp2YWx1ZTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGPgorICBhdXRvIEFwcGx5KEYmJiBmKSAtPiBkZWNsdHlwZShzdGQ6OmZvcndhcmQ8Rj4oZiko
dGhpcy0+R2V0PElkeD4oKS4uLikpIHsKKyAgICByZXR1cm4gc3RkOjpmb3J3YXJkPEY+KGYpKEdl
dDxJZHg+KCkuLi4pOworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CisgIGF1dG8gQXBw
bHkoRiYmIGYpIGNvbnN0IC0+IGRlY2x0eXBlKHN0ZDo6Zm9yd2FyZDxGPihmKSh0aGlzLT5HZXQ8
SWR4PigpLi4uKSkgeworICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8Rj4oZikoR2V0PElkeD4oKS4u
Lik7CisgIH0KK307CisKKy8vIEFuYWxvZyB0byBzdGQ6OnR1cGxlIGJ1dCB3aXRoIGRpZmZlcmVu
dCB0cmFkZW9mZnMuCisvLyBUaGlzIGNsYXNzIG1pbmltaXplcyB0aGUgdGVtcGxhdGUgaW5zdGFu
dGlhdGlvbiBkZXB0aCwgdGh1cyBhbGxvd2luZyBtb3JlCisvLyBlbGVtZW50cyB0aGFuIHN0ZDo6
dHVwbGUgd291bGQuIHN0ZDo6dHVwbGUgaGFzIGJlZW4gc2VlbiB0byByZXF1aXJlIGFuCisvLyBp
bnN0YW50aWF0aW9uIGRlcHRoIG9mIG1vcmUgdGhhbiAxMHggdGhlIG51bWJlciBvZiBlbGVtZW50
cyBpbiBzb21lCisvLyBpbXBsZW1lbnRhdGlvbnMuCisvLyBGbGF0VHVwbGUgYW5kIEVsZW1Gcm9t
TGlzdCBhcmUgbm90IHJlY3Vyc2l2ZSBhbmQgaGF2ZSBhIGZpeGVkIGRlcHRoCisvLyByZWdhcmRs
ZXNzIG9mIFQuLi4KKy8vIE1ha2VJbmRleFNlcXVlbmNlLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXQg
aXMgcmVjdXJzaXZlIGJ1dCB3aXRoIGFuCisvLyBpbnN0YW50aWF0aW9uIGRlcHRoIG9mIE8obG4o
TikpLgordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+CitjbGFzcyBGbGF0VHVwbGUKKyAgICA6IHBy
aXZhdGUgRmxhdFR1cGxlQmFzZTxGbGF0VHVwbGU8VC4uLj4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT4g
eworICB1c2luZyBJbmRpY2VzID0gdHlwZW5hbWUgRmxhdFR1cGxlQmFzZTwKKyAgICAgIEZsYXRU
dXBsZTxULi4uPiwgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlw
ZT46OkluZGljZXM7CisKKyBwdWJsaWM6CisgIEZsYXRUdXBsZSgpID0gZGVmYXVsdDsKKyAgdGVt
cGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3M+CisgIGV4cGxpY2l0IEZsYXRUdXBsZShGbGF0VHVwbGVD
b25zdHJ1Y3RUYWcgdGFnLCBBcmdzJiYuLi4gYXJncykKKyAgICAgIDogRmxhdFR1cGxlOjpGbGF0
VHVwbGVCYXNlKHRhZywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSB7fQorCisgIHVzaW5n
IEZsYXRUdXBsZTo6RmxhdFR1cGxlQmFzZTo6QXBwbHk7CisgIHVzaW5nIEZsYXRUdXBsZTo6Rmxh
dFR1cGxlQmFzZTo6R2V0OworfTsKKworLy8gVXRpbGl0eSBmdW5jdGlvbnMgdG8gYmUgY2FsbGVk
IHdpdGggc3RhdGljX2Fzc2VydCB0byBpbmR1Y2UgZGVwcmVjYXRpb24KKy8vIHdhcm5pbmdzLgor
R1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ag
aXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RFU1RfU1VJVEVf
UCIpCitjb25zdGV4cHIgYm9vbCBJbnN0YW50aWF0ZVRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCkg
eyByZXR1cm4gdHJ1ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJUWVBF
RF9URVNUX0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVT
VF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQo
KSB7IHJldHVybiB0cnVlOyB9CisKK0dURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQoCisgICAgIlRZ
UEVEX1RFU1RfQ0FTRSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVT
VF9TVUlURSIpCitjb25zdGV4cHIgYm9vbCBUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVkKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJSRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiUkVH
SVNURVJfVFlQRURfVEVTVF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFJlZ2lzdGVyVHlwZWRU
ZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KKworR1RFU1RfSU5URVJO
QUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AgaXMgZGVw
cmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVf
UCIpCitjb25zdGV4cHIgYm9vbCBJbnN0YW50aWF0ZVR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0
ZWQoKSB7IHJldHVybiB0cnVlOyB9CisKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmcKIAorbmFtZXNwYWNlIHN0ZCB7CisvLyBTb21lIHN0YW5kYXJkIGxp
YnJhcnkgaW1wbGVtZW50YXRpb25zIHVzZSBgc3RydWN0IHR1cGxlX3NpemVgIGFuZCBzb21lIHVz
ZQorLy8gYGNsYXNzIHR1cGxlX3NpemVgLiBDbGFuZyB3YXJucyBhYm91dCB0aGUgbWlzbWF0Y2gu
CisvLyBodHRwczovL3Jldmlld3MubGx2bS5vcmcvRDU1NDY2CisjaWZkZWYgX19jbGFuZ19fCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XbWlzbWF0Y2hlZC10YWdzIgorI2VuZGlmCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4g
VHM+CitzdHJ1Y3QgdHVwbGVfc2l6ZTx0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlPFRzLi4u
Pj4KKyAgICA6IHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBzaXplb2YuLi4oVHMpPiB7
fTsKKyNpZmRlZiBfX2NsYW5nX18KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRp
ZgorfSAgLy8gbmFtZXNwYWNlIHN0ZAorCiAjZGVmaW5lIEdURVNUX01FU1NBR0VfQVRfKGZpbGUs
IGxpbmUsIG1lc3NhZ2UsIHJlc3VsdF90eXBlKSBcCiAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFz
c2VydEhlbHBlcihyZXN1bHRfdHlwZSwgZmlsZSwgbGluZSwgbWVzc2FnZSkgXAogICAgID0gOjp0
ZXN0aW5nOjpNZXNzYWdlKCkKQEAgLTEyMDgsNTEgKzEzNTEsMTI4IEBAIGNsYXNzIE5hdGl2ZUFy
cmF5IHsKICNkZWZpbmUgR1RFU1RfU1VDQ0VTU18obWVzc2FnZSkgXAogICBHVEVTVF9NRVNTQUdF
XyhtZXNzYWdlLCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcykKIAotLy8gU3Vw
cHJlc3MgTVNWQyB3YXJuaW5nIDQ3MDIgKHVucmVhY2hhYmxlIGNvZGUpIGZvciB0aGUgY29kZSBm
b2xsb3dpbmcKKyNkZWZpbmUgR1RFU1RfU0tJUF8obWVzc2FnZSkgXAorICByZXR1cm4gR1RFU1Rf
TUVTU0FHRV8obWVzc2FnZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a1NraXApCisKKy8v
IFN1cHByZXNzIE1TVkMgd2FybmluZyA0MDcyICh1bnJlYWNoYWJsZSBjb2RlKSBmb3IgdGhlIGNv
ZGUgZm9sbG93aW5nCiAvLyBzdGF0ZW1lbnQgaWYgaXQgcmV0dXJucyBvciB0aHJvd3MgKG9yIGRv
ZXNuJ3QgcmV0dXJuIG9yIHRocm93IGluIHNvbWUKIC8vIHNpdHVhdGlvbnMpLgorLy8gTk9URTog
VGhlICJlbHNlIiBpcyBpbXBvcnRhbnQgdG8ga2VlcCB0aGlzIGV4cGFuc2lvbiB0byBwcmV2ZW50
IGEgdG9wLWxldmVsCisvLyAiZWxzZSIgZnJvbSBhdHRhY2hpbmcgdG8gb3VyICJpZiIuCiAjZGVm
aW5lIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVt
ZW50KSBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgc3RhdGVt
ZW50OyB9CisgIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGVtZW50OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAgICAgICAgICAgICAgICAg
ICAgIC8qIE5PTElOVCAqLyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGljX2Fz
c2VydCh0cnVlLCAiIikgIC8vIFVzZXIgbXVzdCBoYXZlIGEgc2VtaWNvbG9uIGFmdGVyIGV4cGFu
c2lvbi4KIAotI2RlZmluZSBHVEVTVF9URVNUX1RIUk9XXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4
Y2VwdGlvbiwgZmFpbCkgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpDb25zdENoYXJQdHIgZ3Rlc3RfbXNnID0gIiIpIHsgXAot
ICAgIGJvb2wgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gZmFsc2U7IFwKLSAgICB0cnkgeyBcCi0g
ICAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRl
bWVudCk7IFwKLSAgICB9IFwKLSAgICBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0Jikg
eyBcCi0gICAgICBndGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSB0cnVlOyBcCi0gICAgfSBcCi0gICAg
Y2F0Y2ggKC4uLikgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAgIkV4
cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBcCi0g
ICAgICAgICAgI2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBhIGRp
ZmZlcmVudCB0eXBlLiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9s
YWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgICBpZiAoIWd0ZXN0X2Nh
dWdodF9leHBlY3RlZCkgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAg
IkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBc
Ci0gICAgICAgICAgI2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBu
b3RoaW5nLiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90
ZXN0dGhyb3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwKLSAgICBHVEVTVF9D
T05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKTogXAotICAgICAg
ZmFpbChndGVzdF9tc2cudmFsdWUpCisjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworbmFtZXNw
YWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKKworY2xhc3MgTmV2ZXJUaHJvd24g
eworIHB1YmxpYzoKKyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IHsKKyAgICBy
ZXR1cm4gInRoaXMgZXhjZXB0aW9uIHNob3VsZCBuZXZlciBiZSB0aHJvd24iOworICB9Cit9Owor
Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisKKyNp
ZiBHVEVTVF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSA6OnRl
c3Rpbmc6OmludGVybmFsOjpHZXRUeXBlTmFtZSh0eXBlaWQoZSkpCisKKyNlbHNlICAvLyBHVEVT
VF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSBcCisgIHN0ZDo6
c3RyaW5nIHsgImFuIHN0ZDo6ZXhjZXB0aW9uLWRlcml2ZWQgZXJyb3IiIH0KKworI2VuZGlmICAv
LyBHVEVTVF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfQ0FUQ0hfU1REX0VY
Q0VQVElPTl8oc3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pICAgXAorICBjYXRjaCAodHlw
ZW5hbWUgc3RkOjpjb25kaXRpb25hbDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9j
djx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ICBcCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkX2V4Y2VwdGlvbj46OnR5cGU+Ojp0eXBlLCAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZXhjZXB0aW9uPjo6dmFsdWUsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGNvbnN0IDo6dGVzdGluZzo6
aW50ZXJuYWw6Ok5ldmVyVGhyb3duJiwgY29uc3Qgc3RkOjpleGNlcHRpb24mPjo6dHlwZSBcCisg
ICAgICAgICAgICAgZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDog
IiAjc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9l
eGNlcHRpb24gICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0
aHJvd3MgIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52
YWx1ZSArPSBHVEVTVF9FWENFUFRJT05fVFlQRV8oZSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9
IGUud2hhdCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIGd0ZXN0X21zZy52YWx1ZSArPSAiXCIuIjsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8o
Z3Rlc3RfbGFiZWxfdGVzdHRocm93XywgX19MSU5FX18pOyAgICAgICAgICAgICAgICBcCisgIH0K
KworI2Vsc2UgIC8vIEdURVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9U
SFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbikK
KworI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUworCisjZGVmaW5lIEdURVNUX1RFU1Rf
VEhST1dfKHN0YXRlbWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBmYWlsKSAgICAgICAgICAgICAg
XAorICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OlRydWVX
aXRoU3RyaW5nIGd0ZXN0X21zZ3t9KSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgYm9vbCBn
dGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1NVUFBSRVNTX1VO
UkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgICAgICAgICAgICBcCisg
ICAgfSBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gdHJ1ZTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgR1RFU1RfVEVTVF9USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXyhzdGF0ZW1l
bnQsIGV4cGVjdGVkX2V4Y2VwdGlvbikgICAgXAorICAgIGNhdGNoICguLi4pIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
IGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNl
cHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAgICAgICAgICAgICAg
ICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iOyAgICAgICAg
IFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3df
LCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgh
Z3Rlc3RfY2F1Z2h0X2V4cGVjdGVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVt
ZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAor
ICAgICAgICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3Mgbm90aGluZy4i
OyAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVz
dF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICB9IGVsc2UgLypOT0xJTlQqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9DT05DQVRfVE9LRU5fKGd0
ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIDogZmFpbChndGVzdF9tc2cudmFsdWUuY19zdHIoKSkKKworI2lmIEdURVNUX0hBU19FWENF
UFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9OT19USFJPV19DQVRDSF9TVERfRVhDRVBUSU9O
XygpICAgICAgICAgICAgICAgIFwKKyAgY2F0Y2ggKHN0ZDo6ZXhjZXB0aW9uIGNvbnN0JiBlKSB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgPSAi
aXQgdGhyb3dzICI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9t
c2cudmFsdWUgKz0gR1RFU1RfRVhDRVBUSU9OX1RZUEVfKGUpOyAgICAgICAgICAgICAgICAgIFwK
KyAgICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gZS53aGF0KCk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIlwiLiI7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNB
VF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk7IFwKKyAgfQorCisj
ZWxzZSAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworI2RlZmluZSBHVEVTVF9URVNUX05PX1RI
Uk9XX0NBVENIX1NURF9FWENFUFRJT05fKCkKKworI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBU
SU9OUwogCiAjZGVmaW5lIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVudCwgZmFpbCkgXAog
ICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVy
bmFsOjpBbHdheXNUcnVlKCkpIHsgXAorICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHJ1ZVdp
dGhTdHJpbmcgZ3Rlc3RfbXNne30pIHsgXAogICAgIHRyeSB7IFwKICAgICAgIEdURVNUX1NVUFBS
RVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAogICAgIH0g
XAorICAgIEdURVNUX1RFU1RfTk9fVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oKSBcCiAgICAg
Y2F0Y2ggKC4uLikgeyBcCisgICAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQgdGhyb3dzLiI7IFwK
ICAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0bm90aHJvd18s
IF9fTElORV9fKTsgXAogICAgIH0gXAogICB9IGVsc2UgXAogICAgIEdURVNUX0NPTkNBVF9UT0tF
Tl8oZ3Rlc3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoIkV4
cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAot
ICAgICAgICAgICAiICBBY3R1YWw6IGl0IHRocm93cy4iKQorICAgICAgZmFpbCgoIkV4cGVjdGVk
OiAiICNzdGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAorICAgICAg
ICAgICAgIiAgQWN0dWFsOiAiICsgZ3Rlc3RfbXNnLnZhbHVlKS5jX3N0cigpKQogCiAjZGVmaW5l
IEdURVNUX1RFU1RfQU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIGZhaWwpIFwKICAgR1RFU1RfQU1CSUdV
T1VTX0VMU0VfQkxPQ0tFUl8gXApAQCAtMTMwMCwzMSArMTUyMCw0MSBAQCBjbGFzcyBOYXRpdmVB
cnJheSB7CiAgICAgICAgICAgICIgIEFjdHVhbDogaXQgZG9lcy4iKQogCiAvLyBFeHBhbmRzIHRv
IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGdpdmVuIHRlc3QuCi0j
ZGVmaW5lIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkg
XAotICB0ZXN0X2Nhc2VfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAorI2RlZmluZSBHVEVTVF9U
RVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSBcCisgIHRlc3Rfc3Vp
dGVfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAogCiAvLyBIZWxwZXIgbWFjcm8gZm9yIGRlZmlu
aW5nIHRlc3RzLgotI2RlZmluZSBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
LCBwYXJlbnRfY2xhc3MsIHBhcmVudF9pZClcCi1jbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVf
KHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpIDogcHVibGljIHBhcmVudF9jbGFzcyB7XAotIHB1
YmxpYzpcCi0gIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFt
ZSkoKSB7fVwKLSBwcml2YXRlOlwKLSAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7XAotICBzdGF0
aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJVVEVf
VU5VU0VEXztcCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oXAotICAgICAgR1RF
U1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSk7XAotfTtcCi1c
Ci06OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rf
Y2FzZV9uYW1lLCB0ZXN0X25hbWUpXAotICA6OnRlc3RfaW5mb18gPVwKLSAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbyhcCi0gICAgICAgICN0ZXN0X2Nhc2Vf
bmFtZSwgI3Rlc3RfbmFtZSwgTlVMTCwgTlVMTCwgXAotICAgICAgICA6OnRlc3Rpbmc6OmludGVy
bmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgXAotICAgICAgICAocGFyZW50
X2lkKSwgXAotICAgICAgICBwYXJlbnRfY2xhc3M6OlNldFVwVGVzdENhc2UsIFwKLSAgICAgICAg
cGFyZW50X2NsYXNzOjpUZWFyRG93blRlc3RDYXNlLCBcCi0gICAgICAgIG5ldyA6OnRlc3Rpbmc6
OmludGVybmFsOjpUZXN0RmFjdG9yeUltcGw8XAotICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFT
U19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4pO1wKLXZvaWQgR1RFU1RfVEVTVF9D
TEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQotCi0jZW5k
aWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5URVJOQUxfSF8KKyNk
ZWZpbmUgR1RFU1RfVEVTVF8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUsIHBhcmVudF9jbGFz
cywgcGFyZW50X2lkKSAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5H
SUZZXyh0ZXN0X3N1aXRlX25hbWUpKSA+IDEsICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAidGVzdF9zdWl0ZV9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyh0ZXN0
X25hbWUpKSA+IDEsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVz
dF9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgY2xhc3MgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3Rf
bmFtZSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDogcHVibGljIHBhcmVudF9jbGFzcyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHB1
YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVf
bmFtZSwgdGVzdF9uYW1lKSgpID0gZGVmYXVsdDsgICAgICAgICAgIFwKKyAgICB+R1RFU1RfVEVT
VF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSBvdmVycmlkZSA9IGRl
ZmF1bHQ7IFwKKyAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKEdURVNUX1RFU1Rf
Q0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwK
KyAgICBHVEVTVF9ESVNBTExPV19NT1ZFX0FORF9BU1NJR05fKEdURVNUX1RFU1RfQ0xBU1NfTkFN
RV8odGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgIHByaXZhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIFRlc3RCb2R5
KCkgb3ZlcnJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBzdGF0aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBH
VEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgR1RFU1Rf
VEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjp0ZXN0
X2luZm9fID0gIFwKKyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VBbmRSZWdpc3RlclRl
c3RJbmZvKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAjdGVzdF9zdWl0
ZV9uYW1lLCAjdGVzdF9uYW1lLCBudWxscHRyLCBudWxscHRyLCAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18s
IF9fTElORV9fKSwgKHBhcmVudF9pZCksIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpTdWl0ZUFwaVJlc29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgcGFyZW50X2NsYXNzPjo6R2V0U2V0VXBDYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19M
SU5FX18pLCAgICAgICAgIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpTdWl0ZUFw
aVJlc29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
cGFyZW50X2NsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19MSU5FX18p
LCAgICAgIFwKKyAgICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdEZhY3RvcnlJ
bXBsPEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oICAgIFwKKyAgICAgICAgICAgICAgdGVzdF9zdWl0
ZV9uYW1lLCB0ZXN0X25hbWUpPik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgdm9pZCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1l
KTo6VGVzdEJvZHkoKQorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9JTlRFUk5BTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgyYjg3Mjg5YWUxN2M4YWE3Yjk2ZDhlOGM5
MmI5NmUwMThjNzY4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LWxpbmtlZF9wdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAwMyBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8g
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9u
LgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8g
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBICJzbWFydCIgcG9pbnRl
ciB0eXBlIHdpdGggcmVmZXJlbmNlIHRyYWNraW5nLiAgRXZlcnkgcG9pbnRlciB0byBhCi0vLyBw
YXJ0aWN1bGFyIG9iamVjdCBpcyBrZXB0IG9uIGEgY2lyY3VsYXIgbGlua2VkIGxpc3QuICBXaGVu
IHRoZSBsYXN0IHBvaW50ZXIKLS8vIHRvIGFuIG9iamVjdCBpcyBkZXN0cm95ZWQgb3IgcmVhc3Np
Z25lZCwgdGhlIG9iamVjdCBpcyBkZWxldGVkLgotLy8KLS8vIFVzZWQgcHJvcGVybHksIHRoaXMg
ZGVsZXRlcyB0aGUgb2JqZWN0IHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGdvZXMgYXdheS4KLS8v
IFRoZXJlIGFyZSBzZXZlcmFsIGNhdmVhdHM6Ci0vLyAtIExpa2UgYWxsIHJlZmVyZW5jZSBjb3Vu
dGluZyBzY2hlbWVzLCBjeWNsZXMgbGVhZCB0byBsZWFrcy4KLS8vIC0gRWFjaCBzbWFydCBwb2lu
dGVyIGlzIGFjdHVhbGx5IHR3byBwb2ludGVycyAoOCBieXRlcyBpbnN0ZWFkIG9mIDQpLgotLy8g
LSBFdmVyeSB0aW1lIGEgcG9pbnRlciBpcyBhc3NpZ25lZCwgdGhlIGVudGlyZSBsaXN0IG9mIHBv
aW50ZXJzIHRvIHRoYXQKLS8vICAgb2JqZWN0IGlzIHRyYXZlcnNlZC4gIFRoaXMgY2xhc3MgaXMg
dGhlcmVmb3JlIE5PVCBTVUlUQUJMRSB3aGVuIHRoZXJlCi0vLyAgIHdpbGwgb2Z0ZW4gYmUgbW9y
ZSB0aGFuIHR3byBvciB0aHJlZSBwb2ludGVycyB0byBhIHBhcnRpY3VsYXIgb2JqZWN0LgotLy8g
LSBSZWZlcmVuY2VzIGFyZSBvbmx5IHRyYWNrZWQgYXMgbG9uZyBhcyBsaW5rZWRfcHRyPD4gb2Jq
ZWN0cyBhcmUgY29waWVkLgotLy8gICBJZiBhIGxpbmtlZF9wdHI8PiBpcyBjb252ZXJ0ZWQgdG8g
YSByYXcgcG9pbnRlciBhbmQgYmFjaywgQkFEIFRISU5HUwotLy8gICB3aWxsIGhhcHBlbiAoZG91
YmxlIGRlbGV0aW9uKS4KLS8vCi0vLyBBIGdvb2QgdXNlIG9mIHRoaXMgY2xhc3MgaXMgc3Rvcmlu
ZyBvYmplY3QgcmVmZXJlbmNlcyBpbiBTVEwgY29udGFpbmVycy4KLS8vIFlvdSBjYW4gc2FmZWx5
IHB1dCBsaW5rZWRfcHRyPD4gaW4gYSB2ZWN0b3I8Pi4KLS8vIE90aGVyIHVzZXMgbWF5IG5vdCBi
ZSBhcyBnb29kLgotLy8KLS8vIE5vdGU6IElmIHlvdSB1c2UgYW4gaW5jb21wbGV0ZSB0eXBlIHdp
dGggbGlua2VkX3B0cjw+LCB0aGUgY2xhc3MKLS8vICpjb250YWluaW5nKiBsaW5rZWRfcHRyPD4g
bXVzdCBoYXZlIGEgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKGV2ZW4KLS8vIGlmIHRoZXkg
ZG8gbm90aGluZyEpLgotLy8KLS8vIEJpbGwgR2liYm9ucyBzdWdnZXN0ZWQgd2UgdXNlIHNvbWV0
aGluZyBsaWtlIHRoaXMuCi0vLwotLy8gVGhyZWFkIFNhZmV0eToKLS8vICAgVW5saWtlIG90aGVy
IGxpbmtlZF9wdHIgaW1wbGVtZW50YXRpb25zLCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCi0vLyAg
IGEgbGlua2VkX3B0ciBvYmplY3QgaXMgdGhyZWFkLXNhZmUgaW4gdGhlIHNlbnNlIHRoYXQ6Ci0v
LyAgICAgLSBpdCdzIHNhZmUgdG8gY29weSBsaW5rZWRfcHRyIG9iamVjdHMgY29uY3VycmVudGx5
LAotLy8gICAgIC0gaXQncyBzYWZlIHRvIGNvcHkgKmZyb20qIGEgbGlua2VkX3B0ciBhbmQgcmVh
ZCBpdHMgdW5kZXJseWluZwotLy8gICAgICAgcmF3IHBvaW50ZXIgKGUuZy4gdmlhIGdldCgpKSBj
b25jdXJyZW50bHksIGFuZAotLy8gICAgIC0gaXQncyBzYWZlIHRvIHdyaXRlIHRvIHR3byBsaW5r
ZWRfcHRycyB0aGF0IHBvaW50IHRvIHRoZSBzYW1lCi0vLyAgICAgICBzaGFyZWQgb2JqZWN0IGNv
bmN1cnJlbnRseS4KLS8vIEZJWE1FOiByZW5hbWUgdGhpcyB0byBzYWZlX2xpbmtlZF9wdHIgdG8g
YXZvaWQKLS8vIGNvbmZ1c2lvbiB3aXRoIG5vcm1hbCBsaW5rZWRfcHRyLgotCi0vLyBHT09HTEVU
RVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9HVEVTVF9MSU5LRURfUFRSX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfTElOS0VEX1BUUl9IXwotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5j
bHVkZSA8YXNzZXJ0Lmg+Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmgi
Ci0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFByb3Rl
Y3RzIGNvcHlpbmcgb2YgYWxsIGxpbmtlZF9wdHIgb2JqZWN0cy4KLUdURVNUX0FQSV8gR1RFU1Rf
REVDTEFSRV9TVEFUSUNfTVVURVhfKGdfbGlua2VkX3B0cl9tdXRleCk7Ci0KLS8vIFRoaXMgaXMg
dXNlZCBpbnRlcm5hbGx5IGJ5IGFsbCBpbnN0YW5jZXMgb2YgbGlua2VkX3B0cjw+LiAgSXQgbmVl
ZHMgdG8gYmUKLS8vIGEgbm9uLXRlbXBsYXRlIGNsYXNzIGJlY2F1c2UgZGlmZmVyZW50IHR5cGVz
IG9mIGxpbmtlZF9wdHI8PiBjYW4gcmVmZXIgdG8KLS8vIHRoZSBzYW1lIG9iamVjdCAobGlua2Vk
X3B0cjxTdXBlcmNsYXNzPihvYmopIHZzIGxpbmtlZF9wdHI8U3ViY2xhc3M+KG9iaikpLgotLy8g
U28sIGl0IG5lZWRzIHRvIGJlIHBvc3NpYmxlIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgbGlua2Vk
X3B0ciB0byBwYXJ0aWNpcGF0ZQotLy8gaW4gdGhlIHNhbWUgY2lyY3VsYXIgbGlua2VkIGxpc3Qs
IHNvIHdlIG5lZWQgYSBzaW5nbGUgY2xhc3MgdHlwZSBoZXJlLgotLy8KLS8vIERPIE5PVCBVU0Ug
VEhJUyBDTEFTUyBESVJFQ1RMWSBZT1VSU0VMRi4gIFVzZSBsaW5rZWRfcHRyPFQ+LgotY2xhc3Mg
bGlua2VkX3B0cl9pbnRlcm5hbCB7Ci0gcHVibGljOgotICAvLyBDcmVhdGUgYSBuZXcgY2lyY2xl
IHRoYXQgaW5jbHVkZXMgb25seSB0aGlzIGluc3RhbmNlLgotICB2b2lkIGpvaW5fbmV3KCkgewot
ICAgIG5leHRfID0gdGhpczsKLSAgfQotCi0gIC8vIE1hbnkgbGlua2VkX3B0ciBvcGVyYXRpb25z
IG1heSBjaGFuZ2UgcC5saW5rXyBmb3Igc29tZSBsaW5rZWRfcHRyCi0gIC8vIHZhcmlhYmxlIHAg
aW4gdGhlIHNhbWUgY2lyY2xlIGFzIHRoaXMgb2JqZWN0LiAgVGhlcmVmb3JlIHdlIG5lZWQKLSAg
Ly8gdG8gcHJldmVudCB0d28gc3VjaCBvcGVyYXRpb25zIGZyb20gb2NjdXJyaW5nIGNvbmN1cnJl
bnRseS4KLSAgLy8KLSAgLy8gTm90ZSB0aGF0IGRpZmZlcmVudCB0eXBlcyBvZiBsaW5rZWRfcHRy
IG9iamVjdHMgY2FuIGNvZXhpc3QgaW4gYQotICAvLyBjaXJjbGUgKGUuZy4gbGlua2VkX3B0cjxC
YXNlPiwgbGlua2VkX3B0cjxEZXJpdmVkMT4sIGFuZAotICAvLyBsaW5rZWRfcHRyPERlcml2ZWQy
PikuICBUaGVyZWZvcmUgd2UgbXVzdCB1c2UgYSBzaW5nbGUgbXV0ZXggdG8KLSAgLy8gcHJvdGVj
dCBhbGwgbGlua2VkX3B0ciBvYmplY3RzLiAgVGhpcyBjYW4gY3JlYXRlIHNlcmlvdXMKLSAgLy8g
Y29udGVudGlvbiBpbiBwcm9kdWN0aW9uIGNvZGUsIGJ1dCBpcyBhY2NlcHRhYmxlIGluIGEgdGVz
dGluZwotICAvLyBmcmFtZXdvcmsuCi0KLSAgLy8gSm9pbiBhbiBleGlzdGluZyBjaXJjbGUuCi0g
IHZvaWQgam9pbihsaW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwdHIpCi0gICAgICBHVEVTVF9M
T0NLX0VYQ0xVREVEXyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygm
Z19saW5rZWRfcHRyX211dGV4KTsKLQotICAgIGxpbmtlZF9wdHJfaW50ZXJuYWwgY29uc3QqIHAg
PSBwdHI7Ci0gICAgd2hpbGUgKHAtPm5leHRfICE9IHB0cikgewotICAgICAgYXNzZXJ0KHAtPm5l
eHRfICE9IHRoaXMgJiYKLSAgICAgICAgICAgICAiVHJ5aW5nIHRvIGpvaW4oKSBhIGxpbmtlZCBy
aW5nIHdlIGFyZSBhbHJlYWR5IGluLiAiCi0gICAgICAgICAgICAgIklzIEdNb2NrIHRocmVhZCBz
YWZldHkgZW5hYmxlZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAgICB9Ci0gICAgcC0+bmV4
dF8gPSB0aGlzOwotICAgIG5leHRfID0gcHRyOwotICB9Ci0KLSAgLy8gTGVhdmUgd2hhdGV2ZXIg
Y2lyY2xlIHdlJ3JlIHBhcnQgb2YuICBSZXR1cm5zIHRydWUgaWYgd2Ugd2VyZSB0aGUKLSAgLy8g
bGFzdCBtZW1iZXIgb2YgdGhlIGNpcmNsZS4gIE9uY2UgdGhpcyBpcyBkb25lLCB5b3UgY2FuIGpv
aW4oKSBhbm90aGVyLgotICBib29sIGRlcGFydCgpCi0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVE
XyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygmZ19saW5rZWRfcHRy
X211dGV4KTsKLQotICAgIGlmIChuZXh0XyA9PSB0aGlzKSByZXR1cm4gdHJ1ZTsKLSAgICBsaW5r
ZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwID0gbmV4dF87Ci0gICAgd2hpbGUgKHAtPm5leHRfICE9
IHRoaXMpIHsKLSAgICAgIGFzc2VydChwLT5uZXh0XyAhPSBuZXh0XyAmJgotICAgICAgICAgICAg
ICJUcnlpbmcgdG8gZGVwYXJ0KCkgYSBsaW5rZWQgcmluZyB3ZSBhcmUgbm90IGluLiAiCi0gICAg
ICAgICAgICAgIklzIEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxlZD8iKTsKLSAgICAgIHAgPSBw
LT5uZXh0XzsKLSAgICB9Ci0gICAgcC0+bmV4dF8gPSBuZXh0XzsKLSAgICByZXR1cm4gZmFsc2U7
Ci0gIH0KLQotIHByaXZhdGU6Ci0gIG11dGFibGUgbGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCog
bmV4dF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIGxpbmtlZF9wdHIgewot
IHB1YmxpYzoKLSAgdHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKLQotICAvLyBUYWtlIG92ZXIgb3du
ZXJzaGlwIG9mIGEgcmF3IHBvaW50ZXIuICBUaGlzIHNob3VsZCBoYXBwZW4gYXMgc29vbiBhcwot
ICAvLyBwb3NzaWJsZSBhZnRlciB0aGUgb2JqZWN0IGlzIGNyZWF0ZWQuCi0gIGV4cGxpY2l0IGxp
bmtlZF9wdHIoVCogcHRyID0gTlVMTCkgeyBjYXB0dXJlKHB0cik7IH0KLSAgfmxpbmtlZF9wdHIo
KSB7IGRlcGFydCgpOyB9Ci0KLSAgLy8gQ29weSBhbiBleGlzdGluZyBsaW5rZWRfcHRyPD4sIGFk
ZGluZyBvdXJzZWx2ZXMgdG8gdGhlIGxpc3Qgb2YgcmVmZXJlbmNlcy4KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFU+IGxpbmtlZF9wdHIobGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSB7IGNvcHkoJnB0
cik7IH0KLSAgbGlua2VkX3B0cihsaW5rZWRfcHRyIGNvbnN0JiBwdHIpIHsgIC8vIE5PTElOVAot
ICAgIGFzc2VydCgmcHRyICE9IHRoaXMpOwotICAgIGNvcHkoJnB0cik7Ci0gIH0KLQotICAvLyBB
c3NpZ25tZW50IHJlbGVhc2VzIHRoZSBvbGQgdmFsdWUgYW5kIGFjcXVpcmVzIHRoZSBuZXcuCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0cjxV
PiBjb25zdCYgcHRyKSB7Ci0gICAgZGVwYXJ0KCk7Ci0gICAgY29weSgmcHRyKTsKLSAgICByZXR1
cm4gKnRoaXM7Ci0gIH0KLQotICBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0ciBjb25z
dCYgcHRyKSB7Ci0gICAgaWYgKCZwdHIgIT0gdGhpcykgewotICAgICAgZGVwYXJ0KCk7Ci0gICAg
ICBjb3B5KCZwdHIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICAvLyBTbWFy
dCBwb2ludGVyIG1lbWJlcnMuCi0gIHZvaWQgcmVzZXQoVCogcHRyID0gTlVMTCkgewotICAgIGRl
cGFydCgpOwotICAgIGNhcHR1cmUocHRyKTsKLSAgfQotICBUKiBnZXQoKSBjb25zdCB7IHJldHVy
biB2YWx1ZV87IH0KLSAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQot
ICBUJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiAqdmFsdWVfOyB9Ci0KLSAgYm9vbCBvcGVy
YXRvcj09KFQqIHApIGNvbnN0IHsgcmV0dXJuIHZhbHVlXyA9PSBwOyB9Ci0gIGJvb2wgb3BlcmF0
b3IhPShUKiBwKSBjb25zdCB7IHJldHVybiB2YWx1ZV8gIT0gcDsgfQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVT4KLSAgYm9vbCBvcGVyYXRvcj09KGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgY29u
c3QgewotICAgIHJldHVybiB2YWx1ZV8gPT0gcHRyLmdldCgpOwotICB9Ci0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBVPgotICBib29sIG9wZXJhdG9yIT0obGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSBj
b25zdCB7Ci0gICAgcmV0dXJuIHZhbHVlXyAhPSBwdHIuZ2V0KCk7Ci0gIH0KLQotIHByaXZhdGU6
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgotICBmcmllbmQgY2xhc3MgbGlua2VkX3B0cjsKLQot
ICBUKiB2YWx1ZV87Ci0gIGxpbmtlZF9wdHJfaW50ZXJuYWwgbGlua187Ci0KLSAgdm9pZCBkZXBh
cnQoKSB7Ci0gICAgaWYgKGxpbmtfLmRlcGFydCgpKSBkZWxldGUgdmFsdWVfOwotICB9Ci0KLSAg
dm9pZCBjYXB0dXJlKFQqIHB0cikgewotICAgIHZhbHVlXyA9IHB0cjsKLSAgICBsaW5rXy5qb2lu
X25ldygpOwotICB9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IHZvaWQgY29weShsaW5rZWRf
cHRyPFU+IGNvbnN0KiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHItPmdldCgpOwotICAgIGlmICh2
YWx1ZV8pCi0gICAgICBsaW5rXy5qb2luKCZwdHItPmxpbmtfKTsKLSAgICBlbHNlCi0gICAgICBs
aW5rXy5qb2luX25ldygpOwotICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUK
LWJvb2wgb3BlcmF0b3I9PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0
dXJuIHB0ciA9PSB4LmdldCgpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUKLWJv
b2wgb3BlcmF0b3IhPShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0dXJu
IHB0ciAhPSB4LmdldCgpOwotfQotCi0vLyBBIGZ1bmN0aW9uIHRvIGNvbnZlcnQgVCogaW50byBs
aW5rZWRfcHRyPFQ+Ci0vLyBEb2luZyBlLmcuIG1ha2VfbGlua2VkX3B0cihuZXcgRm9vQmFyQmF6
PHR5cGU+KGFyZykpIGlzIGEgc2hvcnRlciBub3RhdGlvbgotLy8gZm9yIGxpbmtlZF9wdHI8Rm9v
QmFyQmF6PHR5cGU+ID4obmV3IEZvb0JhckJhejx0eXBlPihhcmcpKQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1saW5rZWRfcHRyPFQ+IG1ha2VfbGlua2VkX3B0cihUKiBwdHIpIHsKLSAgcmV0dXJu
IGxpbmtlZF9wdHI8VD4ocHRyKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi19ICAv
LyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfR1RFU1RfTElOS0VEX1BUUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5o
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1w
YXJhbS11dGlsLWdlbmVyYXRlZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmFj
OGMwMjcwM2Q1OTFlYjJmMjJlZjE0ODQxYjQyNTU2YzUwNDA4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU1NTIgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29t
bWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcAot
Ly8gRE8gTk9UIEVESVQgQlkgSEFORCEhIQotCi0vLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5j
LgotLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9yIGlt
cGxlbWVudGluZyBwYXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRl
ZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5IEdv
b2dsZSBUZXN0IHN1cHBvcnRzIGF0IG1vc3QgNTAgYXJndW1lbnRzIGluIFZhbHVlcywKLS8vIGFu
ZCBhdCBtb3N0IDEwIGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29v
Z2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQ
bGVhc2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGlt
aXRlZAotLy8gYnkgdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1
cGxlIHdoaWNoIGlzCi0vLyBjdXJyZW50bHkgc2V0IGF0IDEwLgotCi0vLyBHT09HTEVURVNUX0NN
MDAwMSBETyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCi0KLSNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcG9ydC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIEZvcndhcmQgZGVj
bGFyYXRpb25zIG9mIFZhbHVlc0luKCksIHdoaWNoIGlzIGltcGxlbWVudGVkIGluCi0vLyBpbmNs
dWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBGb3J3YXJk
SXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1lIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZhbHVlX3R5cGU+
Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRvciBlbmQpOwot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0
b3I8VD4gVmFsdWVzSW4oY29uc3QgVCAoJmFycmF5KVtOXSk7Ci0KLXRlbXBsYXRlIDxjbGFzcyBD
b250YWluZXI+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dHlwZW5hbWUgQ29udGFpbmVyOjp2
YWx1ZV90eXBlPiBWYWx1ZXNJbigKLSAgICBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcik7Ci0K
LW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFVzZWQgaW4gdGhlIFZhbHVlcygpIGZ1bmN0aW9u
IHRvIHByb3ZpZGUgcG9seW1vcnBoaWMgY2FwYWJpbGl0aWVzLgotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxPgotY2xhc3MgVmFsdWVBcnJheTEgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgVmFsdWVBcnJh
eTEoVDEgdjEpIDogdjFfKHYxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQot
Ci0gIFZhbHVlQXJyYXkxKGNvbnN0IFZhbHVlQXJyYXkxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFf
KSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MSYgb3RoZXIp
OwotCi0gIGNvbnN0IFQxIHYxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDI+Ci1jbGFzcyBWYWx1ZUFycmF5MiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MihUMSB2
MSwgVDIgdjIpIDogdjFfKHYxKSwgdjJfKHYyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKX07Ci0gICAg
cmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyKGNvbnN0IFZhbHVl
QXJyYXkyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTImIG90aGVyKTsKLQotICBjb25z
dCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotY2xhc3MgVmFsdWVBcnJheTMgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTMoVDEgdjEsIFQyIHYyLCBUMyB2MykgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
fTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMoY29u
c3QgVmFsdWVBcnJheTMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIFZhbHVlQXJyYXk0IHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXk0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSA6IHYxXyh2MSks
IHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0
IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pfTsKLSAgICBy
ZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQoY29uc3QgVmFsdWVB
cnJheTQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5NCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDU+Ci1jbGFzcyBWYWx1ZUFycmF5NSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NShU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNf
KHYzKSwKLSAgICAgIHY0Xyh2NCksIHY1Xyh2NSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5NShjb25zdCBWYWx1ZUFycmF5NSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhl
ci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIu
djVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NSYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187
Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIFZhbHVlQXJyYXk2IHsKLSBwdWJsaWM6Ci0gIFZh
bHVlQXJyYXk2KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYpIDogdjFf
KHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2Nikg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5Nihjb25zdCBWYWx1ZUFycmF5NiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhl
ci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIu
djVfKSwgdjZfKG90aGVyLnY2Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsK
LSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29u
c3QgVDYgdjZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDc+Ci1jbGFzcyBWYWx1ZUFycmF5NyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NykgOiB2MV8odjEp
LAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdf
KHY3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVy
YXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4o
djFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwg
c3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0lu
KGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk3KGNvbnN0IFZhbHVlQXJyYXk3JiBvdGhlcikg
OiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwg
djRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3
XyhvdGhlci52N18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXk3JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0
IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2
XzsKLSAgY29uc3QgVDcgdjdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PgotY2xhc3MgVmFsdWVBcnJheTggewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsCi0gICAgICBUOCB2OCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSB7fQotCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNv
bnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8
VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZf
KSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKX07Ci0gICAgcmV0dXJu
IFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk4KGNvbnN0IFZhbHVlQXJyYXk4
JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3Ro
ZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwK
LSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSB7fQotCi0gcHJpdmF0ZToKLSAg
Ly8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lk
IG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5OCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIFZhbHVlQXJyYXk5IHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXk5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwKLSAgICAgIFQ5IHY5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2
MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2
OV8odjkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
LCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJy
YXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTkoY29uc3QgVmFsdWVBcnJheTkmIG90aGVyKSA6IHYx
XyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8o
b3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90
aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYx
XzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAg
Y29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3Qg
VDggdjhfOwotICBjb25zdCBUOSB2OV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTA+Ci1jbGFzcyBWYWx1ZUFycmF5MTAgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTEwKFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5l
cmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+
KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyks
IHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEwKGNvbnN0IFZh
bHVlQXJyYXkxMCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXkxMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMT4KLWNsYXNzIFZhbHVlQXJyYXkxMSB7Ci0gcHVi
bGljOgotICBWYWx1ZUFycmF5MTEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEpIDogdjFf
KHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAg
IHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTEo
Y29uc3QgVmFsdWVBcnJheTExJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYy
XyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8p
LCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwg
djlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8p
IHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMSYgb3RoZXIp
OwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0g
IGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0
IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2
MTBfOwotICBjb25zdCBUMTEgdjExXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWNsYXNzIFZhbHVlQXJyYXkx
MiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQs
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1
KSwKLSAgICAgIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwg
djExXyh2MTEpLCB2MTJfKHYxMikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRp
Y19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0
PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djEyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
MTIoY29uc3QgVmFsdWVBcnJheTEyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkxMiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLWNsYXNzIFZhbHVlQXJyYXkxMyB7
Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwK
LSAgICAgIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8o
djEwKSwgdjExXyh2MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMykge30KLQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7
Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0
PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0
XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0
YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEzKGNvbnN0IFZh
bHVlQXJyYXkxMyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhv
dGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MTMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQ+Ci1jbGFzcyBWYWx1ZUFycmF5MTQgewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTE0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2
NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0g
ICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCkge30KLQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25z
dCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19j
YXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+
KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyks
IHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBz
dGF0aWNfY2FzdDxUPih2MTRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQot
Ci0gIFZhbHVlQXJyYXkxNChjb25zdCBWYWx1ZUFycmF5MTQmIG90aGVyKSA6IHYxXyhvdGhlci52
MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRf
KSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3Xyks
IHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAg
IHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYx
NF8ob3RoZXIudjE0Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVB
cnJheTE0JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNv
bnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2
IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsK
LSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsK
LSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotY2xhc3MgVmFsdWVBcnJheTE1
IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxNShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgOiB2MV8odjEpLCB2Ml8odjIp
LAotICAgICAgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhf
KHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYx
M18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3
XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0
YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihh
cnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTUoY29uc3QgVmFsdWVBcnJheTE1JiBvdGhlcikg
OiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwg
djRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3
XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIu
djEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90
aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSB7fQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTUmIG90aGVyKTsKLQot
ICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25z
dCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2
N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsK
LSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsK
LSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4K
LWNsYXNzIFZhbHVlQXJyYXkxNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTYoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUp
LAotICAgICAgdjE2Xyh2MTYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKX07Ci0gICAgcmV0dXJu
IFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxNihjb25zdCBWYWx1ZUFycmF5
MTYmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhv
dGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8p
LAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwg
djEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEy
XyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVy
LnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXkxNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3Qg
VDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3Qg
VDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3PgotY2xhc3MgVmFsdWVBcnJheTE3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxNyhUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5
LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1
IHYxNSwgVDE2IHYxNiwKLSAgICAgIFQxNyB2MTcpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4o
YXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTE3KGNvbnN0IFZhbHVlQXJyYXkxNyYgb3RoZXIp
IDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyks
IHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2
N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVy
LnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhv
dGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYx
Nl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTE3JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTg+Ci1jbGFzcyBWYWx1
ZUFycmF5MTggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE4KFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEw
LCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBU
MTcgdjE3LAotICAgICAgVDE4IHYxOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwg
djEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0g
ICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCkge30KLQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25z
dCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19j
YXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+
KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyks
IHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBz
dGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRp
Y19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MTgoY29uc3QgVmFsdWVBcnJheTE4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJf
KG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1Xyhv
dGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3Ro
ZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90
aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVy
LnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3Xyhv
dGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOT4KLWNsYXNzIFZhbHVlQXJyYXkxOSB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MTkoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2
NiksCi0gICAgICB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2
Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBz
dGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNf
Y2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nh
c3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
OF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXkxOShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5Xyhv
dGhlci52MTlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5
MTkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3Qg
VDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZf
OwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBj
b25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBj
b25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBj
b25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBj
b25zdCBUMTkgdjE5XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLWNsYXNzIFZhbHVlQXJyYXkyMCB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5MjAoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2Myks
IHY0Xyh2NCksIHY1Xyh2NSksCi0gICAgICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8o
djkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLAotICAgICAgdjEzXyh2MTMpLCB2
MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwKLSAg
ICAgIHYxOV8odjE5KSwgdjIwXyh2MjApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihh
cnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjAoY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcikg
OiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwg
djRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3
XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIu
djEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90
aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2
XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAg
IHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwot
ICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25z
dCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2
OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFf
OwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRf
OwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdf
OwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLWNsYXNzIFZhbHVlQXJyYXky
MSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQs
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcs
Ci0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcp
LCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEy
KSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyks
Ci0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2
MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18p
LCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0
YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihh
cnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjEoY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcikg
OiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwg
djRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3
XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIu
djEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90
aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2
XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAg
IHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXykge30K
LQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1
cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcik7Ci0K
LSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29u
c3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcg
djdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87
Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187
Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87
Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87
Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWNsYXNzIFZhbHVlQXJyYXkyMiB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5MjIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyKSA6IHYxXyh2MSks
IHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18o
djcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8o
djEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAg
djE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYy
Ml8odjIyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNf
KSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0
YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRp
Y19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nh
c3Q8VD4odjIyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MjIoY29uc3QgVmFsdWVBcnJheTIyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJf
KG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1Xyhv
dGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3Ro
ZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90
aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVy
LnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3Xyhv
dGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYy
MF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXykge30KLQot
IHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBv
cnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIyJiBvdGhlcik7Ci0KLSAg
Y29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3Qg
VDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdf
OwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0g
IGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0g
IGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0g
IGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0g
IGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMz4KLWNsYXNzIFZhbHVlQXJyYXkyMyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjMoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQx
NSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzKSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2
M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8o
djkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2
MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYx
OCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYy
M18odjIzKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNf
KSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0
YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRp
Y19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nh
c3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4o
YXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTIzKGNvbnN0IFZhbHVlQXJyYXkyMyYgb3RoZXIp
IDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyks
IHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2
N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVy
LnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhv
dGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYx
Nl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAg
ICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2
MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MjMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3
IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIw
IHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIz
IHYyM187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0PgotY2xhc3MgVmFsdWVBcnJheTI0IHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXkyNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQx
OCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSks
IHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYx
MV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAg
ICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCks
IHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2
MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18p
LCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0
YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBz
dGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0Xyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjQoY29uc3QgVmFs
dWVBcnJheTI0JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1
XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4Xyhv
dGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYy
MV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18p
LCB2MjRfKG90aGVyLnYyNF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkyNCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1jbGFzcyBWYWx1ZUFycmF5
MjUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3
LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwKLSAgICAgIFQyNSB2MjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNShjb25zdCBWYWx1ZUFy
cmF5MjUmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTI1JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
ICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwot
ICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwot
ICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2PgotY2xhc3MgVmFsdWVBcnJheTI2IHsK
LSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkyNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAg
ICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgp
LCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYx
NF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4
KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIz
Xyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBz
dGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNf
Y2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nh
c3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
OF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8
VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2
MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5MjYoY29uc3QgVmFsdWVBcnJheTI2JiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXkyNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29u
c3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUg
djVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwot
ICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAg
Y29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAg
Y29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAg
Y29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAg
Y29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAg
Y29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNz4KLWNsYXNzIFZhbHVlQXJyYXkyNyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5Mjco
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAg
VDI2IHYyNiwgVDI3IHYyNykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2
NV8odjUpLCB2Nl8odjYpLAotICAgICAgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLAotICAgICAgdjE0Xyh2MTQpLCB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwKLSAg
ICAgIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQp
LCB2MjVfKHYyNSksCi0gICAgICB2MjZfKHYyNiksIHYyN18odjI3KSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19j
YXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8
VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0
PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Mjdf
KX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNyhj
b25zdCBWYWx1ZUFycmF5MjcmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJf
KSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1Xyks
IHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2
OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyks
IHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0g
ICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18p
LCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52
MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3Ro
ZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIu
djI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXkyNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29u
c3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUg
djVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwot
ICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAg
Y29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAg
Y29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAg
Y29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAg
Y29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAg
Y29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAg
Y29uc3QgVDI3IHYyN187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOD4KLWNsYXNzIFZhbHVlQXJy
YXkyOCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYy
OCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAg
djZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSks
IHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8o
djE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwg
djIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2
MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBz
dGF0aWNfY2FzdDxUPih2MjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQot
Ci0gIFZhbHVlQXJyYXkyOChjb25zdCBWYWx1ZUFycmF5MjgmIG90aGVyKSA6IHYxXyhvdGhlci52
MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRf
KSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3Xyks
IHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAg
IHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYx
NF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8p
LCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52
MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJf
KSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIu
djI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90
aGVyLnYyOF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXky
OCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBU
MyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87
Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNv
bnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNv
bnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNv
bnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNv
bnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNv
bnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNv
bnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNv
bnN0IFQyOCB2MjhfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLWNs
YXNzIFZhbHVlQXJyYXkyOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjkoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3
IHYyNywgVDI4IHYyOCwgVDI5IHYyOSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8o
djQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwg
djEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAg
ICAgIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2Mjgp
LCB2MjlfKHYyOSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFy
YW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19j
YXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+
KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8p
LCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0
YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBz
dGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0
aWNfY2FzdDxUPih2MjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0g
IFZhbHVlQXJyYXkyOShjb25zdCBWYWx1ZUFycmF5MjkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8p
LCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwg
djVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4
XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYx
MV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8o
b3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2
MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlf
KSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwK
LSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1
XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVy
LnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXkyOSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3Qg
VDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3Qg
VDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3Qg
VDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3Qg
VDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3Qg
VDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3Qg
VDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQy
NywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLWNsYXNzIFZhbHVl
QXJyYXkzMCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzAoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4
IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLAotICAg
ICAgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwg
djEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2Mjgp
LAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3
XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0
YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBz
dGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRp
Y19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0
aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19j
YXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjMwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5MzAoY29uc3QgVmFsdWVBcnJheTMwJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90
aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhl
ci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIu
djhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVy
LnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYx
NF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhl
ci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8o
b3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2
MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZf
KG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwg
djI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0g
IGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0
IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4
XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87
Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87
Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187
Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87
Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187
Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87
Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87
Ci0gIGNvbnN0IFQzMCB2MzBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwg
dHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAot
ICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQy
OSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLWNsYXNzIFZhbHVlQXJyYXkzMSB7
Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0g
ICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5
IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwg
djEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2Mjgp
LAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19j
YXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8
VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0
PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Mjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyl9OwotICAgIHJldHVybiBW
YWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzEoY29uc3QgVmFsdWVBcnJheTMx
JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3Ro
ZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwK
LSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYx
MF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8p
LCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52
MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThf
KSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIu
djIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90
aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3
XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhv
dGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwot
ICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25z
dCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2
OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFf
OwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRf
OwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdf
OwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBf
OwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNf
OwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZf
OwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2Mjlf
OwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVu
YW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0
eXBlbmFtZSBUMzI+Ci1jbGFzcyBWYWx1ZUFycmF5MzIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTMyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUp
LAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBf
KHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCks
IHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2MjhfKHYyOCksIHYyOV8o
djI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSB7fQotCi0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBj
b25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nh
c3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0
PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4o
djE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThf
KSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+
KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1
XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwg
c3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYz
Ml8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMy
KGNvbnN0IFZhbHVlQXJyYXkzMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52
Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVf
KSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4Xyks
IHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFf
KSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwK
LSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3
XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVy
LnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhv
dGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhl
ci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8o
b3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2
MzJfKG90aGVyLnYzMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAt
IGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVl
QXJyYXkzMiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBj
b25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBU
NiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87
Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87
Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87
Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87
Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87
Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87
Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187
Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87
Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotY2xhc3MgVmFsdWVBcnJheTMzIHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXkzMyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQs
IFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLCBUMzIgdjMyLAotICAgICAgVDMzIHYzMykgOiB2MV8odjEpLCB2Ml8odjIp
LCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhf
KHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMp
LCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThf
KHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiks
IHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18o
djI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYz
MiksCi0gICAgICB2MzNfKHYzMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRp
Y19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0
PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+
KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIx
XyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYy
OF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyks
IHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMzXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQot
ICBWYWx1ZUFycmF5MzMoY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcikgOiB2MV8ob3RoZXIudjFf
KSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0Xyks
IHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2
OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2
MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRf
KG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwg
djE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5
XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyks
Ci0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYy
NV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhl
ci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8o
b3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNv
bnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1jbGFzcyBWYWx1ZUFycmF5MzQgewot
IHB1YmxpYzoKLSAgVmFsdWVBcnJheTM0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAg
ICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywg
VDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2
MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0KSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2Fz
dDxUPih2MzRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVl
QXJyYXkzNChjb25zdCBWYWx1ZUFycmF5MzQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8o
b3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90
aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhl
ci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3Ro
ZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIu
djE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90
aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIw
XyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAg
IHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYy
Nl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8p
LCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52
MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRf
KSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzQmIG90aGVy
KTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwot
ICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25z
dCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAg
djEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMg
djEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYg
djE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkg
djE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIg
djIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUg
djI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjgg
djI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEg
djMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQg
djM0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNT4KLWNsYXNzIFZhbHVlQXJyYXkzNSB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MzUoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwg
VDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUpIDogdjFf
KHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAg
IHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYx
MiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYx
N18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIx
KSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2
Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8o
djMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0
PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4o
djEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVf
KSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+
KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIy
XyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYy
OV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyks
IHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTM1KGNvbnN0IFZhbHVlQXJyYXkzNSYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwg
djEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1
XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4Xyks
Ci0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYy
MV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhl
ci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18o
b3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3Ro
ZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNf
KG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzUmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIy
XzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1
XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4
XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMx
XzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0
XzsKLSAgY29uc3QgVDM1IHYzNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgot
Y2xhc3MgVmFsdWVBcnJheTM2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzNihUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAg
ICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2
MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBU
MjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMg
djMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNikgOiB2MV8odjEpLCB2Ml8odjIp
LCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhf
KHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYx
M18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThf
KHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiks
IHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18o
djI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwg
djMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNikge30K
LQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4o
KSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0
YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19j
YXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxU
Pih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYx
M18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1Xyks
IHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2
MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8p
LCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0
YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2Mjlf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBz
dGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRp
Y19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjM2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MzYoY29uc3QgVmFsdWVBcnJheTM2JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJf
KG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1Xyhv
dGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3Ro
ZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90
aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVy
LnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3Xyhv
dGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYy
MF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAg
ICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2
MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52Mjhf
KSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIu
djMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0
XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNiYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25z
dCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25z
dCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25z
dCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25z
dCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25z
dCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25z
dCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25z
dCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25z
dCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzc+Ci1jbGFzcyBWYWx1ZUFycmF5MzcgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTM3KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1
IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYg
djM2LCBUMzcgdjM3KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAg
ICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCks
IHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8o
djE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwg
djIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLAotICAgICAgdjI0Xyh2
MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5
KSwKLSAgICAgIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0
Xyh2MzQpLCB2MzVfKHYzNSksCi0gICAgICB2MzZfKHYzNiksIHYzN18odjM3KSB7fQotCi0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0
IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nh
c3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4o
djRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwg
c3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0
YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRp
Y19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19j
YXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8
VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5MzcoY29uc3QgVmFsdWVBcnJheTM3JiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwg
djI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAg
ICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyks
IHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYz
Nl8pLCB2MzdfKG90aGVyLnYzN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkzNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1jbGFzcyBWYWx1ZUFycmF5MzggewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTM4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2
MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2
OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMp
LCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThf
KHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAg
IHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2
MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYz
MiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYz
N18odjM3KSwgdjM4Xyh2MzgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8
VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2
MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8p
LCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4o
djI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2Mjhf
KSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBz
dGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwg
c3RhdGljX2Nhc3Q8VD4odjM4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MzgoY29uc3QgVmFsdWVBcnJheTM4JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIy
XyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVy
LnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4Xyhv
dGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYz
MV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8o
b3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2
MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzOCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsK
LSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsK
LSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsK
LSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsK
LSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsK
LSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsK
LSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsK
LSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsK
LSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzk+Ci1jbGFzcyBWYWx1ZUFycmF5MzkgewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTM5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5
IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYy
NSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2
LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5KSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2
M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8o
djkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2
MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYx
OCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYy
M18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2Mjhf
KHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiks
IHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18o
djM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJh
eVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+
KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3Xyks
IHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRp
Y19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0
aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19j
YXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0
PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2Fz
dDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+
KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5
Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5Mzko
Y29uc3QgVmFsdWVBcnJheTM5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYy
XyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8p
LCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwg
djlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8p
LCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAot
ICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdf
KSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIu
djIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90
aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVy
LnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5Xyhv
dGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYz
Ml8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAg
ICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2
MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3
IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIw
IHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIz
IHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2
IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5
IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMy
IHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1
IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4
IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
PgotY2xhc3MgVmFsdWVBcnJheTQwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MChUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBU
MzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwgVDQwIHY0MCkgOiB2MV8odjEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwg
djRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwKLSAg
ICAgIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQp
LCB2MTVfKHYxNSksCi0gICAgICB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlf
KHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLAotICAgICAgdjIyXyh2MjIpLCB2MjNfKHYyMyks
IHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwKLSAgICAgIHYyOF8o
djI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYz
MyksCi0gICAgICB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYz
OF8odjM4KSwgdjM5Xyh2MzkpLAotICAgICAgdjQwXyh2NDApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBz
dGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwg
c3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0
aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0lu
KGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0MChjb25zdCBWYWx1ZUFycmF5NDAmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAg
djdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhl
ci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18o
b3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2
MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAg
ICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwg
djIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0
XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVy
LnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYz
MF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhl
ci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8o
b3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2
MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0MCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsK
LSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsK
LSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsK
LSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsK
LSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsK
LSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsK
LSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsK
LSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsK
LSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsK
LSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwg
dHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MT4KLWNsYXNzIFZhbHVlQXJyYXk0MSB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5NDEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQz
NSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsCi0gICAg
ICBUNDEgdjQxKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSks
IHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYx
MV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1
KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCks
Ci0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8o
djI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwg
djMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2
MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2
MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQg
YXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2Fz
dDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2
N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBz
dGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwg
c3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0
aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNf
Y2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDEoY29uc3QgVmFs
dWVBcnJheTQxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1
XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4Xyhv
dGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYy
MV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18p
LCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAot
ICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52Mjlf
KSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIu
djMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90
aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVy
LnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhv
dGhlci52NDFfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5
NDEmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3Qg
VDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZf
OwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBj
b25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBj
b25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBj
b25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBj
b25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBj
b25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBj
b25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBj
b25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBj
b25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBj
b25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBj
b25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBj
b25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBl
bmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1jbGFzcyBWYWx1ZUFy
cmF5NDIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAg
djQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMp
LCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlf
KHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYx
NCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYx
OV8odjE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIz
KSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4
Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAg
ICB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwg
djM4Xyh2MzgpLAotICAgICAgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2
NDIpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJh
dG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2
MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBz
dGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nh
c3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
NF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8
VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2
MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18p
LCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4o
djM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBf
KSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pfTsK
LSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQyKGNvbnN0
IFZhbHVlQXJyYXk0MiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAot
ICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZf
KG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5Xyhv
dGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEy
XyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAg
IHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYx
OF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8p
LCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52
MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZf
KSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIu
djI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90
aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1
XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4Xyhv
dGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0
MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTQyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
ICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwot
ICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwot
ICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwot
ICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwot
ICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwot
ICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwot
ICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwot
ICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwot
ICBjb25zdCBUNDIgdjQyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0
eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzPgotY2xhc3MgVmFsdWVBcnJh
eTQzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0
IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0
MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIDogdjFfKHYxKSwgdjJfKHYyKSwg
djNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2
OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwK
LSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2
MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2
MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYy
NyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAgIHYz
Ml8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2Mzdf
KHYzNyksCi0gICAgICB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSks
IHY0Ml8odjQyKSwgdjQzXyh2NDMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0
aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nh
c3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxU
Pih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
MV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8
VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2
MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8p
LCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4o
djM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2Mzdf
KSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBz
dGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0Myhjb25zdCBWYWx1ZUFycmF5NDMmIG90
aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52
M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAg
ICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhv
dGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYx
M18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8p
LCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAot
ICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFf
KSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIu
djI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90
aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVy
LnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhv
dGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYz
Nl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAg
ICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2
NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3
IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIw
IHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIz
IHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2
IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5
IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMy
IHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1
IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4
IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQx
IHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlw
ZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NDQgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTQ0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwg
VDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2
MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBU
MzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAg
ICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMp
LCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlf
KHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwg
djE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0g
ICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIz
KSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4
Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIp
LCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksCi0gICAgICB2Mzdf
KHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2
NDIpLAotICAgICAgdjQzXyh2NDMpLCB2NDRfKHY0NCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2
MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8p
LCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0
YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBz
dGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0
aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19j
YXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNf
Y2FzdDxUPih2NDRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZh
bHVlQXJyYXk0NChjb25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2
Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVf
KG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4Xyhv
dGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8o
b3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3Ro
ZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdf
KG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwg
djIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAg
ICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1Xyks
IHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYy
OF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhl
ci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52
MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3Ro
ZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBf
KG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAg
djQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0g
IGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0
IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4
XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87
Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87
Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187
Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87
Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187
Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87
Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87
Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87
Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87
Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87
Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87
Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBl
bmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDU+Ci1jbGFz
cyBWYWx1ZUFycmF5NDUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ1KFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMs
Ci0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkg
djM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwg
VDQ1IHY0NSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAgdjVf
KHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFf
KHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSks
IHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8o
djIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwg
djI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksCi0g
ICAgICB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0
KSwgdjM1Xyh2MzUpLAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5
Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwKLSAgICAgIHY0Ml8odjQyKSwgdjQzXyh2NDMp
LCB2NDRfKHY0NCksIHY0NV8odjQ1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBv
cGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10g
PSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nh
c3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19j
YXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8
VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0
PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBf
KSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+
KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3
XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwg
c3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0lu
KGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0NShjb25zdCBWYWx1ZUFycmF5NDUmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAg
djdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhl
ci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18o
b3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2
MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAg
ICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwg
djIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0
XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVy
LnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYz
MF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhl
ci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8o
b3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2
MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJf
KG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwg
djQ1XyhvdGhlci52NDVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5NDUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFf
OwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRf
OwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2Mjdf
OwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBf
OwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNf
OwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZf
OwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2Mzlf
OwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJf
OwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQz
NCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFt
ZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlw
ZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAg
IHR5cGVuYW1lIFQ0Nj4KLWNsYXNzIFZhbHVlQXJyYXk0NiB7Ci0gcHVibGljOgotICBWYWx1ZUFy
cmF5NDYoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5
LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAot
ICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYz
MSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQz
NyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQy
LCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2KSA6IHYxXyh2MSksIHYyXyh2Miks
IHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8o
djgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEz
Xyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcp
LCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwK
LSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2
MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2
MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYz
NiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwKLSAgICAgIHY0
MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLCB2NDZf
KHY0Nikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5l
cmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+
KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyks
IHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0
aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19j
YXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0
PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+
KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMz
XyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxU
Pih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0
MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyks
IHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQ2KGNvbnN0IFZhbHVlQXJyYXk0NiYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwg
djEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1
XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4Xyks
Ci0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYy
MV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhl
ci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18o
b3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3Ro
ZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNf
KG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwg
djM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAg
ICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyks
IHY0Ml8ob3RoZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0
NF8pLCB2NDVfKG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pIHt9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYx
XzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAg
Y29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3Qg
VDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEg
djExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQg
djE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcg
djE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAg
djIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMg
djIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYg
djI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkg
djI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIg
djMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUg
djM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzgg
djM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEg
djQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQg
djQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQz
MSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1
LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1l
IFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBl
bmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0Niwg
dHlwZW5hbWUgVDQ3PgotY2xhc3MgVmFsdWVBcnJheTQ3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXk0NyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3
IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIs
IFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcpIDogdjFfKHYxKSwg
djJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2
NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2
MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2
MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIy
Xyh2MjIpLAotICAgICAgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYp
LCB2MjdfKHYyNyksIHYyOF8odjI4KSwKLSAgICAgIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFf
KHYzMSksIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksCi0gICAgICB2MzVfKHYzNSks
IHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLAot
ICAgICAgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLCB2NDVfKHY0
NSksIHY0Nl8odjQ2KSwKLSAgICAgIHY0N18odjQ3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8
VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJy
YXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQ3KGNvbnN0IFZhbHVlQXJyYXk0NyYgb3RoZXIpIDog
djFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0
XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18o
b3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYx
MF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhl
ci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8o
b3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2
MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJf
KG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwg
djI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3
XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyks
Ci0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYz
M18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhl
ci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8o
b3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3Ro
ZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVf
KG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDcmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIy
XzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1
XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4
XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMx
XzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0
XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3
XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQw
XzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQz
XzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2
XzsKLSAgY29uc3QgVDQ3IHY0N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0
LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1l
IFQ0OD4KLWNsYXNzIFZhbHVlQXJyYXk0OCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDgoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQx
NSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2
IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQz
OCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQz
LCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LCBUNDggdjQ4KSA6IHYxXyh2MSks
Ci0gICAgICB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18o
djcpLCB2OF8odjgpLCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8o
djEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAgIHYxNl8odjE2KSwg
djE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksCi0g
ICAgICB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2
KSwgdjI3Xyh2MjcpLAotICAgICAgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMx
Xyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwKLSAgICAgIHYzNF8odjM0KSwgdjM1Xyh2MzUp
LCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksCi0gICAgICB2NDBf
KHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2
NDUpLAotICAgICAgdjQ2Xyh2NDYpLCB2NDdfKHY0NyksIHY0OF8odjQ4KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19j
YXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0
PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4o
djM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZf
KSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+
KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQz
XyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwg
c3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2NDhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0g
IFZhbHVlQXJyYXk0OChjb25zdCBWYWx1ZUFycmF5NDgmIG90aGVyKSA6IHYxXyhvdGhlci52MV8p
LCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwg
djVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4
XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYx
MV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8o
b3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2
MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlf
KSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwK
LSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1
XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVy
LnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhv
dGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhl
ci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18o
b3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2
NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAg
ICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52NDVfKSwg
djQ2XyhvdGhlci52NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3XyksIHY0OF8ob3RoZXIudjQ4
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQ4JiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2
IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5
IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIy
IHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1
IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4
IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMx
IHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0
IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3
IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQw
IHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQz
IHY0M187Ci0gIGNvbnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLSAgY29uc3QgVDQ2
IHY0Nl87Ci0gIGNvbnN0IFQ0NyB2NDdfOwotICBjb25zdCBUNDggdjQ4XzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlw
ZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYs
IHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+Ci1jbGFzcyBWYWx1ZUFy
cmF5NDkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAg
djQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwg
VDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwKLSAgICAgIFQ0OSB2NDkpIDogdjFfKHYxKSwgdjJf
KHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAg
IHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2
MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksCi0gICAgICB2
MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMy
Xyh2MzIpLAotICAgICAgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYp
LCB2MzdfKHYzNyksIHYzOF8odjM4KSwKLSAgICAgIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFf
KHY0MSksIHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksCi0gICAgICB2NDVfKHY0NSks
IHY0Nl8odjQ2KSwgdjQ3Xyh2NDcpLCB2NDhfKHY0OCksIHY0OV8odjQ5KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19j
YXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0
PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4o
djM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZf
KSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+
KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQz
XyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwg
c3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2NDhfKSwgc3RhdGljX2Nhc3Q8VD4odjQ5Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDkoY29uc3QgVmFsdWVBcnJheTQ5JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3Xyhv
dGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhl
ci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18o
b3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2
MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAg
ICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwg
djQyXyhvdGhlci52NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0
XyksIHY0NV8ob3RoZXIudjQ1XyksIHY0Nl8ob3RoZXIudjQ2XyksCi0gICAgICB2NDdfKG90aGVy
LnY0N18pLCB2NDhfKG90aGVyLnY0OF8pLCB2NDlfKG90aGVyLnY0OV8pIHt9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBU
MjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBU
MjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBU
MjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBU
MzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBU
MzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBU
MzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBU
NDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBU
NDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBU
NDcgdjQ3XzsKLSAgY29uc3QgVDQ4IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0
NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUw
PgotY2xhc3MgVmFsdWVBcnJheTUwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk1MChUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBU
MzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0
NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDksCi0gICAg
ICBUNTAgdjUwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSks
IHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYx
MV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1
KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCks
Ci0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8o
djI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwg
djMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2
MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2
MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0
Xyh2NDQpLAotICAgICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3KSwgdjQ4Xyh2NDgp
LCB2NDlfKHY0OSksIHY1MF8odjUwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBv
cGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10g
PSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nh
c3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19j
YXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8
VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0
PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBf
KSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+
KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3
XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwg
c3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2Xyks
IHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhfKSwgc3Rh
dGljX2Nhc3Q8VD4odjQ5XyksIHN0YXRpY19jYXN0PFQ+KHY1MF8pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTUwKGNvbnN0IFZhbHVlQXJyYXk1MCYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwg
djEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1
XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4Xyks
Ci0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYy
MV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhl
ci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18o
b3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3Ro
ZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNf
KG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwg
djM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAg
ICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyks
IHY0Ml8ob3RoZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0
NF8pLCB2NDVfKG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhl
ci52NDdfKSwgdjQ4XyhvdGhlci52NDhfKSwgdjQ5XyhvdGhlci52NDlfKSwgdjUwXyhvdGhlci52
NTBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NTAmIG90
aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNf
OwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBj
b25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBU
MTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBU
MTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBU
MTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBU
MTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBU
MjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBU
MjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBU
MjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBU
MzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBU
MzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBU
MzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBU
NDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBU
NDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBU
NDYgdjQ2XzsKLSAgY29uc3QgVDQ3IHY0N187Ci0gIGNvbnN0IFQ0OCB2NDhfOwotICBjb25zdCBU
NDkgdjQ5XzsKLSAgY29uc3QgVDUwIHY1MF87Ci19OwotCi0jIGlmIEdURVNUX0hBU19DT01CSU5F
Ci0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgot
Ly8KLS8vIEdlbmVyYXRlcyB2YWx1ZXMgZnJvbSB0aGUgQ2FydGVzaWFuIHByb2R1Y3Qgb2YgdmFs
dWVzIHByb2R1Y2VkCi0vLyBieSB0aGUgYXJndW1lbnQgZ2VuZXJhdG9ycy4KLS8vCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjIKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0
dXBsZTxUMSwgVDI+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQx
LCBUMj4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyKGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcy
KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3IyKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBn
MV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpKTsKLSAgfQot
Ci0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdl
bmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6
aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJl
bnQyKQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4o
KSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdp
bjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MikgICAg
ewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVy
YXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0g
ICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJh
bmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBi
ZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7
Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50Ml87Ci0gICAgICBpZiAo
Y3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAg
ICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwot
ICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xv
bmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJy
ZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2
aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAg
ICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4K
LSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRv
cigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVy
YXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3Rk
OjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBD
aGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAg
ICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJl
eW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBp
biBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQg
QXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkg
fHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJl
bnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfKTsK
LSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVy
KQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5i
ZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8o
b3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAg
ICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJf
KSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21w
dXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50
X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8pKTsKLSAg
ICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0
ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAg
ICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdl
LgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAg
ICAgY3VycmVudDJfID09IGVuZDJfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9u
IC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJ
dGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmlu
ZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50
W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5
cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjI6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yMiYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVj
dEdlbmVyYXRvcjIKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMz4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzCi0gICAgOiBwdWJsaWMg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPiB7
Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gUGFyYW1U
eXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMz4mIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpIHt9
Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKCkge30KLQotICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAg
cmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdp
bigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcg
SXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5l
bmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3Io
Y29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0
ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0g
ICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50
MykKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkp
LCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4y
XyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAg
ICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1
cnJlbnQzKSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZp
cnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVy
biBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBi
ZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9y
cyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQg
QWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQzXzsK
LSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVn
aW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJf
ID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3Vy
cmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25z
dCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVh
bCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVl
Xy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBz
YW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0
ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdU
RVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAg
ICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgot
ICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwot
ICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93
bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBt
dXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVp
cgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmll
dHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4K
LSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAg
ICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgot
ICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAg
ICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18pOwotICAgIH0KLQotICAgcHJp
dmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFz
ZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAgICAg
ICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50MV8p
LAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhlci5l
bmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBiZWdp
bjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAgICAg
IGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUo
KTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAo
IUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUoKmN1
cnJlbnQxXywgKmN1cnJlbnQyXywgKmN1cnJlbnQzXykpOwotICAgIH0KLSAgICBib29sIEF0RW5k
KCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5k
IG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVy
YXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAg
ICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5k
Ml8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM187Ci0gICAgfQotCi0gICAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5k
IGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgot
ICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAg
ICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBsaW5rZWRf
cHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yMzo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3IzJiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDM+IGczXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMwot
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUND4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0Ci0gICAgOiBwdWJsaWMg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQ+
ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
PiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjQoY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
ND4mIGc0KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpIHt9Ci0g
IHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0KCkge30KLQotICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0
dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigp
LCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpKTsKLSAgfQotICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qgewot
ICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVu
ZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCkpOwotICB9Ci0KLSBw
cml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVy
YXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAg
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIs
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciYgY3VycmVudDQpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAg
ICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3Vy
cmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwg
Y3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQz
XyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5i
ZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpICAgIHsKLSAgICAg
IENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7
fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAg
ICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVy
YXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVu
ZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAg
YXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDRfOwotICAgICAgaWYgKGN1cnJlbnQ0
XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1
cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAg
ICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0g
ICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2lu
Ml87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRW
YWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJl
dHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29u
c3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAg
ICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUg
b3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBk
b3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFz
ZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29t
cGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3Jz
LiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAg
ICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhl
cik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3Ro
IHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2Fu
IGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRv
IGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+
QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18g
JiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0Xyk7Ci0gICAg
fQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAg
ICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4x
XyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVy
LmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVu
ZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0g
ICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNf
KSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8o
b3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3Vy
cmVudDRfKG90aGVyLmN1cnJlbnQ0XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwot
ICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRF
bmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVu
dDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XykpOwot
ICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQg
aXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAg
ICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFu
Z2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAg
ICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18g
fHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVu
ZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAg
IC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBsaW5rZWRfcHRyPFBh
cmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yNDo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3I0JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsK
LSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLX07ICAvLyBjbGFzcyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNAotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1jbGFzcyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNQotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50
ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gPiB7Ci0gcHVibGlj
OgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiBQYXJhbVR5
cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUoY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBn
M18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I1KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8s
IGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigp
LCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVy
biBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18s
IGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpKTsKLSAg
fQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQx
Pjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBn
MiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1
cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ1KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJl
Z2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwK
LSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQy
XyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5k
KCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSks
IGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVf
KGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSkgICAgewot
ICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRv
cigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFt
VHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAg
fQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdl
IGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlv
bmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0g
ICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50NV87Ci0gICAgICBpZiAoY3Vy
cmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAg
ICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0Xykgewot
ICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAg
IH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0g
YmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVu
dDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsr
Y3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0K
LSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBj
b25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmly
dHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Zh
bHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRo
ZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8v
IGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAg
IEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQot
ICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMg
IgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRs
OwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2Vk
RG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBX
ZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0
aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZh
cmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQo
KS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAg
ICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAm
JgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAg
ICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBj
dXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAg
SXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJh
c2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3Ro
ZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAg
YmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAg
ICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5i
ZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18o
b3RoZXIuY3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAg
ICAgZW5kNF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRf
KSwKLSAgICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIu
ZW5kNV8pLAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSB7Ci0gICAgICBDb21w
dXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVl
KCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChu
ZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0gICAgICAg
ICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBj
b25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2Yg
dGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9y
cyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAg
ICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8
fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9
PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XzsKLSAgICB9Ci0KLSAgICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ld
XyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJz
ZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9y
LgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4x
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFf
OwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwot
ICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAg
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGxpbmtlZF9w
dHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I1OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjUmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4g
ZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3I1Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRl
cmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LAotICAgICAgICBUNj4g
PiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNj4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2KGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4m
IGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhn
MyksIGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNikge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvcjYoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMs
IGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJl
Z2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2lu
KCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBF
bmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQo
KSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQo
KSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAg
Y2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJl
bnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRl
cmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2KQotICAgICAgICA6IGJh
c2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgp
KSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBl
bmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhn
My5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAg
ICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJl
bnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1
cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8o
ZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50
VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVh
bCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9y
KCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNo
b3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBz
byBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0
aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgp
KTsKLSAgICAgICsrY3VycmVudDZfOwotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2Xykgewot
ICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAg
IH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0g
YmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVu
dDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsr
Y3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAg
ICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0K
LSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVn
aW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVu
dFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMp
OwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsg
cmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhj
b25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0g
ICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRo
ZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2Fu
IGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5C
YXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBj
b21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRv
cnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQot
ICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90
aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJv
dGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBj
YW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUg
dG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVy
LT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9v
dGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5j
dXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQz
XyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0g
ICAgICAgICAgY3VycmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAg
ICBjdXJyZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2Xyk7Ci0gICAgfQotCi0gICBwcml2
YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNl
XyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAg
IGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyks
Ci0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVu
ZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2lu
M18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAg
Y3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40
XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVy
LmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVu
ZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0g
ICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZf
KSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XykgewotICAgICAgQ29tcHV0ZUN1
cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsK
LSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBh
cmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAg
KmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XykpOwotICAgIH0KLSAgICBib29sIEF0
RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUg
ZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBp
dGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4K
LSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0g
ZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJy
ZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAg
ICAgICBjdXJyZW50Nl8gPT0gZW5kNl87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRp
b24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVm
aW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJl
bnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNj46Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDY+OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Nj46Oml0ZXJhdG9yIGN1cnJlbnQ2XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVu
dF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNjo6SXRl
cmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0
ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2JiBv
dGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1
XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yNgotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcKLSAgICA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNz4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFBhcmFtVHlwZTsKLQot
ICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNyhjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcx
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2
LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIp
LCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpIHt9Ci0gIHZpcnR1
YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5l
dyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18s
Ci0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigp
LCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpKTsKLSAgfQotICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qgewot
ICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVu
ZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVu
ZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgot
ICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcx
LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3Vy
cmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+Ojpp
dGVyYXRvciYgY3VycmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1LAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciYgY3VycmVu
dDUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciYgY3VycmVudDYsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDc+OjppdGVyYXRvciYgY3VycmVudDcpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0g
ICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8o
Y3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgp
KSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBl
bmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40Xyhn
NC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpLAotICAgICAg
ICAgIGJlZ2luNV8oZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3VycmVudDVfKGN1cnJl
bnQ1KSwKLSAgICAgICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2XyhnNi5lbmQoKSksIGN1
cnJlbnQ2XyhjdXJyZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdpbigpKSwgZW5kN18o
ZzcuZW5kKCkpLCBjdXJyZW50N18oY3VycmVudDcpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50
VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVh
bCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9y
KCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNo
b3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBz
byBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0
aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgp
KTsKLSAgICAgICsrY3VycmVudDdfOwotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3Xykgewot
ICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsKLSAgICAg
IH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVudDZfID0g
YmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVu
dDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsr
Y3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAg
ICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0K
LSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVn
aW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJf
ID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3Vy
cmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25z
dCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVh
bCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVl
Xy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBz
YW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0
ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdU
RVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAg
ICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgot
ICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwot
ICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93
bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBt
dXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVp
cgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmll
dHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4K
LSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAg
ICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgot
ICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAg
ICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJy
ZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9
PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVk
X290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXIt
PmN1cnJlbnQ3Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0
ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJl
Z2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAg
ICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVn
aW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90
aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAg
IGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyks
Ci0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVu
ZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2lu
NV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAg
Y3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42
XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVy
LmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVu
ZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3Xykgewot
ICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1
cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1
ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNf
LAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJl
bnQ3XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVz
dCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBv
ZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBv
ZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8g
fHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18g
PT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBj
dXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl8gfHwKLSAg
ICAgICAgICBjdXJyZW50N18gPT0gZW5kN187Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8g
ZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1
cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUNj46Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDY+OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUNj46Oml0ZXJhdG9yIGN1cnJlbnQ2XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNz46Oml0ZXJhdG9yIGJlZ2luN187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDc+OjppdGVyYXRvciBlbmQ3XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Nz46Oml0ZXJhdG9yIGN1cnJlbnQ3XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVu
dF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzo6SXRl
cmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0
ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3JiBv
dGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1
XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDc+IGc3XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNwotCi0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOD4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0gICAgOiBwdWJsaWMgUGFy
YW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwKLSAgICAgICAgVDcsIFQ4PiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5n
Ojp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFBhcmFtVHlwZTsKLQotICBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOChjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDg+JiBnOCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVf
KGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwKLSAgICAgICAgICBnOF8oZzgpIHt9Ci0gIHZpcnR1YWwg
fkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0g
ICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBn
Nl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4Xy5iZWdp
bigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
RW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5k
KCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5k
KCksIGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywK
LSAgICAgICAgZzhfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3Ig
OiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoK
LSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBi
YXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRl
cmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0
b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4KQot
ICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVu
ZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcy
LmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAg
ICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVu
dDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3Vy
cmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1Xyhn
NS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdp
bigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJl
Z2luN18oZzcuYmVnaW4oKSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwK
LSAgICAgICAgICBiZWdpbjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4
XyhjdXJyZW50OCkgICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICBy
ZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQg
b24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVy
YXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2
b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50
OF87Ci0gICAgICBpZiAoY3VycmVudDhfID09IGVuZDhfKSB7Ci0gICAgICAgIGN1cnJlbnQ4XyA9
IGJlZ2luOF87Ci0gICAgICAgICsrY3VycmVudDdfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJl
bnQ3XyA9PSBlbmQ3XykgewotICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdfOwotICAgICAgICAr
K2N1cnJlbnQ2XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAg
ICAgICAgY3VycmVudDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9
Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJl
Z2luNV87Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0
XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1
cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAg
ICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0g
ICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2lu
Ml87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRW
YWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJl
dHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29u
c3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAg
ICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUg
b3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBk
b3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFz
ZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29t
cGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3Jz
LiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAg
ICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhl
cik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3Ro
IHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2Fu
IGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRv
IGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+
QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18g
JiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAg
ICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAg
Y3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50
N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3XyAmJgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0
eXBlZF9vdGhlci0+Y3VycmVudDhfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0
b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwK
LSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5k
MV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4y
XyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBj
dXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNf
KSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIu
Y3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5k
NF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAg
ICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8p
LAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSwKLSAgICAgICAgYmVnaW42Xyhv
dGhlci5iZWdpbjZfKSwKLSAgICAgICAgZW5kNl8ob3RoZXIuZW5kNl8pLAotICAgICAgICBjdXJy
ZW50Nl8ob3RoZXIuY3VycmVudDZfKSwKLSAgICAgICAgYmVnaW43XyhvdGhlci5iZWdpbjdfKSwK
LSAgICAgICAgZW5kN18ob3RoZXIuZW5kN18pLAotICAgICAgICBjdXJyZW50N18ob3RoZXIuY3Vy
cmVudDdfKSwKLSAgICAgICAgYmVnaW44XyhvdGhlci5iZWdpbjhfKSwKLSAgICAgICAgZW5kOF8o
b3RoZXIuZW5kOF8pLAotICAgICAgICBjdXJyZW50OF8ob3RoZXIuY3VycmVudDhfKSB7Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVu
dFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5y
ZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0g
ICAgICAgICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZfLCAqY3VycmVudDdf
LCAqY3VycmVudDhfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAv
LyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4g
ZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0
aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9
PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1
cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAg
ICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2
XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1cnJlbnQ4
XyA9PSBlbmQ4XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90
aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNv
bnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGgg
cmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhl
IGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQy
Pjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6
aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
ND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRl
cmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6
aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46
Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0
b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0
ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3Ig
Y3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0
b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJh
dG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgY3Vy
cmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3Ig
YmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9y
IGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgY3VycmVu
dDhfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8v
IGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4OjpJdGVyYXRvcgotCi0gIC8vIE5vIGlt
cGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRv
cj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjgmIG90aGVyKTsKLQotICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwot
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
ND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNj4gZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUOD4gZzhfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I4Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I5Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGlu
Zzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBUOT4gPiB7
Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOT4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3I5KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3
PiYgZzcsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LCBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUOT4mIGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAgICAgICAgIGc5Xyhn
OSkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkoKSB7fQotCi0gIHZp
cnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsK
LSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJf
LmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1
XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAgICAgICAgZzdfLmJlZ2lu
KCksIGc4XywgZzhfLmJlZ2luKCksIGc5XywgZzlfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0
dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGcz
XywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2
XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5kKCksIGc5
XywgZzlfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJs
aWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJ
dGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3Im
IGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBn
NywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5KQotICAgICAgICA6IGJhc2VfKGJhc2Up
LAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVu
dDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5l
bmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigp
KSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2lu
NF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAg
ICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1Xyhj
dXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkp
LCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVu
ZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBiZWdpbjhfKGc4
LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCksCi0gICAgICAg
ICAgYmVnaW45XyhnOS5iZWdpbigpKSwgZW5kOV8oZzkuZW5kKCkpLCBjdXJyZW50OV8oY3VycmVu
dDkpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVh
bCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJh
c2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9u
ZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11
c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZh
bmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDlfOwotICAg
ICAgaWYgKGN1cnJlbnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50OV8gPSBiZWdpbjlf
OwotICAgICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50OF8gPT0g
ZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAgICAgKytjdXJyZW50
N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7Ci0gICAgICAgIGN1
cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwot
ICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5k
NV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJl
bnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAg
ICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8p
IHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0g
ICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAg
IHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBh
cmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9
Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBn
ZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMg
b2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tf
KEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwg
IlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAg
PDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25z
dCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0
dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0
IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAv
LyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNo
aW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0
dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAg
ICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAg
Y3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50
M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0
eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVfID09IHR5cGVkX290
aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1
cnJlbnQ2XyAmJgotICAgICAgICAgIGN1cnJlbnQ3XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDdf
ICYmCi0gICAgICAgICAgY3VycmVudDhfID09IHR5cGVkX290aGVyLT5jdXJyZW50OF8gJiYKLSAg
ICAgICAgICBjdXJyZW50OV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ5Xyk7Ci0gICAgfQotCi0g
ICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAg
OiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0g
ICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJl
bnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90
aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAg
IGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAg
ICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIu
YmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRf
KG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAg
ICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1
XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVy
LmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJl
Z2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAg
ICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVn
aW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90
aGVyLmN1cnJlbnQ4XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVnaW45XyksCi0gICAgICAg
IGVuZDlfKG90aGVyLmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90aGVyLmN1cnJlbnQ5Xykg
ewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92
YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVu
dDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1
cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8pKTsKLSAgICB9Ci0g
ICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9y
IHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBj
b21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAg
ICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3Vy
cmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAg
ICAgICAgY3VycmVudDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVuZDVf
IHx8Ci0gICAgICAgICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAgICAgY3VycmVudDdf
ID09IGVuZDdfIHx8Ci0gICAgICAgICAgY3VycmVudDhfID09IGVuZDhfIHx8Ci0gICAgICAgICAg
Y3VycmVudDlfID09IGVuZDlfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVy
YXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0
aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ld
XyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+
OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+Ojpp
dGVyYXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+
OjppdGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3
Pjo6aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVy
YXRvciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+Ojpp
dGVyYXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6
aXRlcmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRv
ciBjdXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVy
YXRvciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRl
cmF0b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBj
dXJyZW50OV87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9
OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjk6Okl0ZXJhdG9yCi0KLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOSYgb3RoZXIpOwotCi0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBn
Ml87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiBnN187Ci0g
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiBnOF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5
PiBnOV87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkKLQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yMTAKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0
dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNywgVDgsIFQ5LCBUMTA+ID4g
ewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3IxMChjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYg
ZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4m
IGcxMCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1
KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpLCBnMTBfKGcx
MCkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwKCkge30KLQotICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7
Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcy
Xy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBn
NV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdp
bigpLCBnOF8sIGc4Xy5iZWdpbigpLCBnOV8sIGc5Xy5iZWdpbigpLCBnMTBfLCBnMTBfLmJlZ2lu
KCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBF
bmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQo
KSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQo
KSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAot
ICAgICAgICBnOF8uZW5kKCksIGc5XywgZzlfLmVuZCgpLCBnMTBfLCBnMTBfLmVuZCgpKTsKLSAg
fQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQx
Pjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBn
MiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1
cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRl
cmF0b3ImIGN1cnJlbnQ5LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiYgZzEwLAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3ImIGN1cnJl
bnQxMCkKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2lu
KCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVn
aW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAot
ICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNf
KGN1cnJlbnQzKSwKLSAgICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBlbmQ0XyhnNC5lbmQo
KSksIGN1cnJlbnQ0XyhjdXJyZW50NCksCi0gICAgICAgICAgYmVnaW41XyhnNS5iZWdpbigpKSwg
ZW5kNV8oZzUuZW5kKCkpLCBjdXJyZW50NV8oY3VycmVudDUpLAotICAgICAgICAgIGJlZ2luNl8o
ZzYuYmVnaW4oKSksIGVuZDZfKGc2LmVuZCgpKSwgY3VycmVudDZfKGN1cnJlbnQ2KSwKLSAgICAg
ICAgICBiZWdpbjdfKGc3LmJlZ2luKCkpLCBlbmQ3XyhnNy5lbmQoKSksIGN1cnJlbnQ3XyhjdXJy
ZW50NyksCi0gICAgICAgICAgYmVnaW44XyhnOC5iZWdpbigpKSwgZW5kOF8oZzguZW5kKCkpLCBj
dXJyZW50OF8oY3VycmVudDgpLAotICAgICAgICAgIGJlZ2luOV8oZzkuYmVnaW4oKSksIGVuZDlf
KGc5LmVuZCgpKSwgY3VycmVudDlfKGN1cnJlbnQ5KSwKLSAgICAgICAgICBiZWdpbjEwXyhnMTAu
YmVnaW4oKSksIGVuZDEwXyhnMTAuZW5kKCkpLCBjdXJyZW50MTBfKGN1cnJlbnQxMCkgICAgewot
ICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRv
cigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFt
VHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAg
fQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdl
IGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlv
bmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0g
ICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50MTBfOwotICAgICAgaWYgKGN1
cnJlbnQxMF8gPT0gZW5kMTBfKSB7Ci0gICAgICAgIGN1cnJlbnQxMF8gPSBiZWdpbjEwXzsKLSAg
ICAgICAgKytjdXJyZW50OV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDlfID09IGVuZDlf
KSB7Ci0gICAgICAgIGN1cnJlbnQ5XyA9IGJlZ2luOV87Ci0gICAgICAgICsrY3VycmVudDhfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ4XyA9PSBlbmQ4XykgewotICAgICAgICBjdXJyZW50
OF8gPSBiZWdpbjhfOwotICAgICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50N18gPT0gZW5kN18pIHsKLSAgICAgICAgY3VycmVudDdfID0gYmVnaW43XzsKLSAgICAg
ICAgKytjdXJyZW50Nl87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7
Ci0gICAgICAgIGN1cnJlbnQ2XyA9IGJlZ2luNl87Ci0gICAgICAgICsrY3VycmVudDVfOwotICAg
ICAgfQotICAgICAgaWYgKGN1cnJlbnQ1XyA9PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8g
PSBiZWdpbjVfOwotICAgICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJy
ZW50NF8gPT0gZW5kNF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAg
KytjdXJyZW50M187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0g
ICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAg
fQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBi
ZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJy
ZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4qIENsb25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhp
cyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3Qg
eyByZXR1cm4gY3VycmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxz
KGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsK
LSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQg
dGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBj
YW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVy
LkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRv
IGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJh
dG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9
Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigm
b3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkg
Ym90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0
IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2
ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3Ro
ZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVk
X290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXIt
PmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVu
dDNfICYmCi0gICAgICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYK
LSAgICAgICAgICBjdXJyZW50NV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ1XyAmJgotICAgICAg
ICAgIGN1cnJlbnQ2XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDZfICYmCi0gICAgICAgICAgY3Vy
cmVudDdfID09IHR5cGVkX290aGVyLT5jdXJyZW50N18gJiYKLSAgICAgICAgICBjdXJyZW50OF8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ4XyAmJgotICAgICAgICAgIGN1cnJlbnQ5XyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudDlfICYmCi0gICAgICAgICAgY3VycmVudDEwXyA9PSB0eXBlZF9vdGhl
ci0+Y3VycmVudDEwXyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0
IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAg
IGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAg
ICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIu
YmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJf
KG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAg
ICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQz
XyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVy
LmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJl
Z2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAg
ICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVn
aW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90
aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAg
IGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3Xyks
Ci0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVu
ZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XyksCi0gICAgICAgIGJlZ2lu
OV8ob3RoZXIuYmVnaW45XyksCi0gICAgICAgIGVuZDlfKG90aGVyLmVuZDlfKSwKLSAgICAgICAg
Y3VycmVudDlfKG90aGVyLmN1cnJlbnQ5XyksCi0gICAgICAgIGJlZ2luMTBfKG90aGVyLmJlZ2lu
MTBfKSwKLSAgICAgICAgZW5kMTBfKG90aGVyLmVuZDEwXyksCi0gICAgICAgIGN1cnJlbnQxMF8o
b3RoZXIuY3VycmVudDEwXykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0K
LQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkK
LSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAq
Y3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1
XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJy
ZW50OV8sICpjdXJyZW50MTBfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0g
ICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdl
IHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVh
Y2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJl
bnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAg
ICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8
fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9
PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1
cnJlbnQ4XyA9PSBlbmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5XyA9PSBlbmQ5XyB8fAotICAg
ICAgICAgIGN1cnJlbnQxMF8gPT0gZW5kMTBfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShj
b25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1f
IGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBj
dXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDU+OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDY+OjppdGVyYXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDc+OjppdGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDc+OjppdGVyYXRvciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDg+OjppdGVyYXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ4Pjo6aXRlcmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+
OjppdGVyYXRvciBjdXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDk+OjppdGVyYXRvciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ5Pjo6aXRlcmF0b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+Ojpp
dGVyYXRvciBjdXJyZW50OV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEw
Pjo6aXRlcmF0b3IgYmVnaW4xMF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDEwPjo6aXRlcmF0b3IgZW5kMTBfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46
Oml0ZXJhdG9yIGN1cnJlbnQxMF87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRf
dmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwOjpJdGVy
YXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwJiBv
dGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1
XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDc+IGc3XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+IGc4XzsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDk+IGc5XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiBnMTBfOwot
fTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMAotCi0KLS8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gSGVscGVy
IGNsYXNzZXMgcHJvdmlkaW5nIENvbWJpbmUoKSB3aXRoIHBvbHltb3JwaGljIGZlYXR1cmVzLiBU
aGV5IGFsbG93Ci0vLyBjYXN0aW5nIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3JOPFQ+IHRvIFBh
cmFtR2VuZXJhdG9yPFU+IGlmIFQgaXMKLS8vIGNvbnZlcnRpYmxlIHRvIFUuCi0vLwotdGVtcGxh
dGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjI+Ci1jbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyMiB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjIoY29uc3Qg
R2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyKQotICAgICAgOiBnMV8oZzEpLCBn
Ml8oZzIpIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gPigpIGNvbnN0IHsK
LSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyPiA+KAot
ICAgICAgICBuZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI8VDEsIFQyPigKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXIyJiBvdGhlcik7Ci0KLSAgY29uc3Qg
R2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotfTsgIC8vIGNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXIyCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFz
cyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjMgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIzKGNvbnN0IEdlbmVyYXRv
cjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMykK
LSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0
b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4g
UGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPigKLSAgICAgICAg
bmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzPFQxLCBUMiwgVDM+KAotICAgICAgICBzdGF0
aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQ
YXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVy
YXRvcjxUMz4gPihnM18pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjMmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcx
XzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotfTsg
IC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIzCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5l
cmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdl
bmVyYXRvcjQ+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNCB7Ci0gcHVibGljOgotQ2Fy
dGVzaWFuUHJvZHVjdEhvbGRlcjQoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRv
cjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCkK
LSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSB7fQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
PiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBs
ZTxUMSwgVDIsIFQzLCBUND4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3I0PFQxLCBUMiwgVDMsIFQ0PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSkpOwotICB9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI0JiBvdGhlcik7
Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBj
b25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci19OyAgLy8gY2xh
c3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjQKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEs
IGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9y
NCwgY2xhc3MgR2VuZXJhdG9yNT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI1IHsKLSBw
dWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNShjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29u
c3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVy
YXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcy
KSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgotICBv
cGVyYXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwg
VDU+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1
cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I1PFQxLCBUMiwgVDMsIFQ0LCBUNT4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGcz
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XykpKTsKLSAgfQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNSYgb3RoZXIp
OwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAg
Y29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBH
ZW5lcmF0b3I1IGc1XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNQotCi10
ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJh
dG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5l
cmF0b3I2PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYgewotIHB1YmxpYzoKLUNhcnRl
c2lhblByb2R1Y3RIb2xkZXI2KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3Iy
JiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNv
bnN0IEdlbmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2KQotICAgICAgOiBn
MV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpIHt9Ci0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNj4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gPigpIGNv
bnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNj4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3I2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdl
bmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxU
Mj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxQYXJhbUdlbmVyYXRvcjxUNj4gPihnNl8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYmIG90aGVyKTsKLQotICBjb25z
dCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVy
YXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9yNSBn
NV87Ci0gIGNvbnN0IEdlbmVyYXRvcjYgZzZfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1
Y3RIb2xkZXI2Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3Iy
LCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRv
cjUsIGNsYXNzIEdlbmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjc+Ci1jbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyNyB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjcoY29uc3Qg
R2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRv
cjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAg
Y29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3KQotICAgICAgOiBnMV8o
ZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcp
IHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsCi0gICAgICBUNz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5l
cmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+ID4oCi0g
ICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNz4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3
XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyNyYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBH
ZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRv
cjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87
Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RI
b2xkZXI3Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBj
bGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUs
IGNsYXNzIEdlbmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjcsCi0gICAgY2xhc3MgR2VuZXJhdG9y
OD4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI4IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyOChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIs
Ci0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBH
ZW5lcmF0b3I1JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNiwgY29uc3QgR2VuZXJhdG9y
NyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBn
M18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLAotICAgICAgICAgIGc4
XyhnOCkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDg+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6
OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LAotICAgICAgVDg+ID4oKSBjb25zdCB7
Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3I4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4oCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBh
cmFtR2VuZXJhdG9yPFQ4PiA+KGc4XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOCYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVy
YXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBn
M187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLSAg
Y29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotICBjb25zdCBH
ZW5lcmF0b3I4IGc4XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOAotCi10
ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJh
dG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5l
cmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdl
bmVyYXRvcjk+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOSB7Ci0gcHVibGljOgotQ2Fy
dGVzaWFuUHJvZHVjdEhvbGRlcjkoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRv
cjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwg
Y29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdl
bmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5
JiBnOSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1
KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpIHt9Ci0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6
dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LAotICAgICAgVDk+ID4oKSBjb25z
dCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwKLSAgICAgICAgVDk+ID4oCi0gICAgICAgIG5ldyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDY+ID4o
ZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4oZzdfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDk+ID4oZzlfKSkpOwotICB9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI5JiBvdGhlcik7Ci0KLSAg
Y29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBH
ZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRv
cjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187
Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5IGc5XzsKLX07ICAv
LyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOQotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJh
dG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5l
cmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0
b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjksIGNsYXNzIEdlbmVy
YXRvcjEwPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwIHsKLSBwdWJsaWM6Ci1DYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyMTAoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRv
cjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwg
Y29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdl
bmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5
JiBnOSwgY29uc3QgR2VuZXJhdG9yMTAmIGcxMCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwg
ZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAg
ICAgICAgICBnOV8oZzkpLCBnMTBfKGcxMCkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTA+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICBUMTA+ID4oKSBjb25zdCB7
Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICAgIFQxMD4gPigKLSAgICAgICAgbmV3IENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LAotICAgICAgICAgICAgVDEwPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4o
ZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDc+ID4oZzdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+
ID4oZzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDk+ID4oZzlfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDEwPiA+KGcxMF8pKSk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1
cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEw
JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIg
ZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0g
IGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3Qg
R2VuZXJhdG9yNyBnN187Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0
b3I5IGc5XzsKLSAgY29uc3QgR2VuZXJhdG9yMTAgZzEwXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNp
YW5Qcm9kdWN0SG9sZGVyMTAKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKLQotfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYg
IC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFU
RURfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5wdW1wIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVy
YXRlZC5oLnB1bXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwZGZmZTQzYzNjNjc4
NTY4NTI0NmRiNWYzMWQxOTQ3YzhhMjJjMjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKKysrIC9kZXYvbnVsbApA
QCAtMSwyODIgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1MCAgJCQg
TWF4aW11bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0k
dmFyIG1heHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJndW1lbnRz
IHdlIHdhbnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBB
bGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
Ly8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
Ly8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLS8vIFR5cGUgYW5kIGZ1bmN0aW9uIHV0aWxpdGllcyBmb3IgaW1wbGVtZW50
aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMuCi0vLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEg
U0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgR29vZ2xlIFRl
c3Qgc3VwcG9ydHMgYXQgbW9zdCAkbiBhcmd1bWVudHMgaW4gVmFsdWVzLAotLy8gYW5kIGF0IG1v
c3QgJG1heHR1cGxlIGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29v
Z2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQ
bGVhc2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGlt
aXRlZAotLy8gYnkgdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1
cGxlIHdoaWNoIGlzCi0vLyBjdXJyZW50bHkgc2V0IGF0ICRtYXh0dXBsZS4KLQotLy8gR09PR0xF
VEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNkZWZpbmUgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotCi0jaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGb3J3
YXJkIGRlY2xhcmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgot
Ly8gaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
Rm9yd2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBlbmFtZSA6
OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1
ZV90eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3Ig
ZW5kKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6OlBhcmFt
R2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pOwotCi10ZW1wbGF0ZSA8
Y2xhc3MgQ29udGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRh
aW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWlu
ZXIpOwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGluIHRoZSBWYWx1ZXMoKSBm
dW5jdGlvbiB0byBwcm92aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGllcy4KLSRyYW5nZSBpIDEu
Lm4KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVu
YW1lIFQkal1dPgotY2xhc3MgVmFsdWVBcnJheSRpIHsKLSBwdWJsaWM6Ci0gICRpZiBpPT0xIFtb
ZXhwbGljaXQgXV1WYWx1ZUFycmF5JGkoJGZvciBqLCBbW1QkaiB2JGpdXSkgOiAkZm9yIGosIFtb
diQoailfKHYkaildXSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7JGZvciBq
LCBbW3N0YXRpY19jYXN0PFQ+KHYkKGopXyldXX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5
KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkkaShjb25zdCBWYWx1ZUFycmF5JGkmIG90aGVyKSA6ICRm
b3IgaiwgW1t2JChqKV8ob3RoZXIudiQoailfKV1dIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXkkaSYgb3RoZXIpOwotCi0kZm9yIGogW1sKLQotICBjb25zdCBU
JGogdiQoailfOwotXV0KLQotfTsKLQotXV0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8g
SU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0v
LyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIHZhbHVlcyBw
cm9kdWNlZAotLy8gYnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwotJHJhbmdlIGkgMi4u
bWF4dHVwbGUKLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgMi4uaQotCi10ZW1w
bGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvciRpCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGlu
Zzo6dHVwbGU8JGZvciBqLCBbW1Qkal1dPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0
aW5nOjp0dXBsZTwkZm9yIGosIFtbVCRqXV0+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yJGkoJGZvciBqLCBbW2NvbnN0IFBhcmFtR2VuZXJhdG9yPFQkaj4mIGckal1d
KQotICAgICAgOiAkZm9yIGosIFtbZyQoailfKGckaildXSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yJGkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9y
KHRoaXMsICRmb3IgaiwgW1tnJChqKV8sIGckKGopXy5iZWdpbigpXV0pOwotICB9Ci0gIHZpcnR1
YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAg
cmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCAkZm9yIGosIFtbZyQoailfLCBnJChqKV8uZW5kKCld
XSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29u
c3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwgJGZvciBqLCBbWwot
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGosCi0gICAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUJGo+OjppdGVyYXRvciYgY3VycmVudCQoaildXSkKLSAgICAg
ICAgOiBiYXNlXyhiYXNlKSwKLSRmb3IgaiwgW1sKLQotICAgICAgICAgIGJlZ2luJChqKV8oZyRq
LmJlZ2luKCkpLCBlbmQkKGopXyhnJGouZW5kKCkpLCBjdXJyZW50JChqKV8oY3VycmVudCRqKQot
XV0gICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFs
IH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFz
ZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25k
LW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVz
dCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFu
Y2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50JChpKV87Ci0K
LSRmb3IgayBbWwotICAgICAgaWYgKGN1cnJlbnQkKGkrMi1rKV8gPT0gZW5kJChpKzItaylfKSB7
Ci0gICAgICAgIGN1cnJlbnQkKGkrMi1rKV8gPSBiZWdpbiQoaSsyLWspXzsKLSAgICAgICAgKytj
dXJyZW50JChpKzItay0xKV87Ci0gICAgICB9Ci0KLV1dCi0gICAgICBDb21wdXRlQ3VycmVudFZh
bHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwot
ICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0
dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25z
dCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAg
ICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBv
dGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRv
d25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNl
R2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21w
YXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMu
IiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAg
ICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVy
KTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGgg
cG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4g
aGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8g
Y29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5B
dEVuZCgpKSB8fAotICAgICAgICAgKCRmb3IgaiAgJiYgW1sKLQotICAgICAgICAgIGN1cnJlbnQk
KGopXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudCQoailfCi1dXSk7Ci0gICAgfQotCi0gICBwcml2
YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNl
XyhvdGhlci5iYXNlXyksICRmb3IgaiwgW1sKLQotICAgICAgICBiZWdpbiQoailfKG90aGVyLmJl
Z2luJChqKV8pLAotICAgICAgICBlbmQkKGopXyhvdGhlci5lbmQkKGopXyksCi0gICAgICAgIGN1
cnJlbnQkKGopXyhvdGhlci5jdXJyZW50JChqKV8pCi1dXSB7Ci0gICAgICBDb21wdXRlQ3VycmVu
dFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAg
ICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1U
eXBlKCRmb3IgaiwgW1sqY3VycmVudCQoailfXV0pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgp
IGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBv
ZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0
b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0kZm9y
IGogIHx8IFtbCi0KLSAgICAgICAgICBjdXJyZW50JChqKV8gPT0gZW5kJChqKV8KLV1dOwotICAg
IH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29u
c3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAg
Ly8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJh
dG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNp
bmcgaXRlcmF0b3IuCi0kZm9yIGogW1sKLQotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQkaj46Oml0ZXJhdG9yIGJlZ2luJChqKV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VCRqPjo6aXRlcmF0b3IgZW5kJChqKV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VCRqPjo6aXRlcmF0b3IgY3VycmVudCQoailfOwotXV0KLQotICAgIGxpbmtlZF9wdHI8
UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3IkaTo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3IkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUJGo+IGckKGopXzsKLQotXV0KLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yJGkKLQotCi1dXQotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5P
VCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIEhlbHBlciBjbGFzc2VzIHByb3ZpZGluZyBDb21i
aW5lKCkgd2l0aCBwb2x5bW9ycGhpYyBmZWF0dXJlcy4gVGhleSBhbGxvdwotLy8gY2FzdGluZyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yTjxUPiB0byBQYXJhbUdlbmVyYXRvcjxVPiBpZiBUIGlz
Ci0vLyBjb252ZXJ0aWJsZSB0byBVLgotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxlCi0kZm9yIGkg
W1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1tjbGFzcyBHZW5lcmF0b3Ik
al1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNp
YW5Qcm9kdWN0SG9sZGVyJGkoJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRqJiBnJGpdXSkKLSAg
ICAgIDogJGZvciBqLCBbW2ckKGopXyhnJGopXV0ge30KLSAgdGVtcGxhdGUgPCRmb3IgaiwgW1t0
eXBlbmFtZSBUJGpdXT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVw
bGU8JGZvciBqLCBbW1Qkal1dPiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRv
cjwgOjp0ZXN0aW5nOjp0dXBsZTwkZm9yIGosIFtbVCRqXV0+ID4oCi0gICAgICAgIG5ldyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGk8JGZvciBqLCBbW1Qkal1dPigKLSRmb3IgaixbWwotCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQkaj4gPihnJChqKV8pCi1dXSkpOwot
ICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xk
ZXIkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBHZW5lcmF0b3IkaiBnJChqKV87
Ci0KLV1dCi19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpCi0KLV1dCi0KLSMg
ZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAot
fSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0
aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC5oCmluZGV4IGQ2NGY2MjBjNGM2NzQzNDY3M2MwYTYxZTIzOTYwYjYxNWMz
NGU3ODQuLjNlNDlhNmJhYWM3MjRkNmJkZWNmYzUxMDYwY2FkNzA4Njc4MzNmOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cGFyYW0tdXRpbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oCkBAIC0zMiwyMyArMzIsMjYgQEAKIAogLy8gR09P
R0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KIAogI2luY2x1ZGUg
PGN0eXBlLmg+CiAKKyNpbmNsdWRlIDxjYXNzZXJ0PgogI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVk
ZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx2ZWN0b3I+CiAK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgotI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wb3J0LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCIKKyNpbmNs
dWRlICJndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewotCiAv
LyBJbnB1dCB0byBhIHBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIGdlbmVyYXRvciwgZGVzY3JpYmlu
ZyBhIHRlc3QgcGFyYW1ldGVyLgogLy8gQ29uc2lzdHMgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZSBh
bmQgdGhlIGludGVnZXIgcGFyYW1ldGVyIGluZGV4LgogdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlw
ZT4KQEAgLTcyLDEzICs3NSwxNCBAQCBzdHJ1Y3QgUHJpbnRUb1N0cmluZ1BhcmFtTmFtZSB7CiBu
YW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5P
VCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KKy8vIFV0aWxpdHkgRnVuY3Rpb25zCisKIC8vIE91dHB1
dHMgYSBtZXNzYWdlIGV4cGxhaW5pbmcgaW52YWxpZCByZWdpc3RyYXRpb24gb2YgZGlmZmVyZW50
Ci0vLyBmaXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IGNhc2UuIFRoaXMgbWF5IGhhcHBl
biB3aGVuCisvLyBmaXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IHN1aXRlLiBUaGlzIG1h
eSBoYXBwZW4gd2hlbgogLy8gVEVTVF9QIG1hY3JvIGlzIHVzZWQgdG8gZGVmaW5lIHR3byB0ZXN0
cyB3aXRoIHRoZSBzYW1lIG5hbWUKIC8vIGJ1dCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KLUdU
RVNUX0FQSV8gdm9pZCBSZXBvcnRJbnZhbGlkVGVzdENhc2VUeXBlKGNvbnN0IGNoYXIqIHRlc3Rf
Y2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29k
ZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pOworR1RFU1RfQVBJXyB2b2lkIFJlcG9ydEludmFsaWRU
ZXN0U3VpdGVUeXBlKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbik7
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U7CiB0
ZW1wbGF0ZSA8dHlwZW5hbWU+IGNsYXNzIFBhcmFtR2VuZXJhdG9yOwpAQCAtMTUzLDcgKzE1Nyw3
IEBAIGNsYXNzIFBhcmFtSXRlcmF0b3IgewogIHByaXZhdGU6CiAgIGZyaWVuZCBjbGFzcyBQYXJh
bUdlbmVyYXRvcjxUPjsKICAgZXhwbGljaXQgUGFyYW1JdGVyYXRvcihQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+KiBpbXBsKSA6IGltcGxfKGltcGwpIHt9Ci0gIHNjb3BlZF9wdHI8UGFyYW1JdGVy
YXRvckludGVyZmFjZTxUPiA+IGltcGxfOworICBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1JdGVyYXRv
ckludGVyZmFjZTxUPiA+IGltcGxfOwogfTsKIAogLy8gUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
VD4gaXMgdGhlIGJpbmFyeSBpbnRlcmZhY2UgdG8gYWNjZXNzIGdlbmVyYXRvcnMKQEAgLTE5Miw3
ICsxOTYsNyBAQCBjbGFzcyBQYXJhbUdlbmVyYXRvciB7CiAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0
IHsgcmV0dXJuIGl0ZXJhdG9yKGltcGxfLT5FbmQoKSk7IH0KIAogIHByaXZhdGU6Ci0gIGxpbmtl
ZF9wdHI8Y29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gPiBpbXBsXzsKKyAgc3RkOjpz
aGFyZWRfcHRyPGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+ID4gaW1wbF87CiB9Owog
CiAvLyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gYSByYW5nZSBvZiB0d28gY29tcGFyYWJsZSB2YWx1
ZXMuIENhbiBiZSB1c2VkIHRvCkBAIC0yMDUsMTIgKzIwOSwxMiBAQCBjbGFzcyBSYW5nZUdlbmVy
YXRvciA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7CiAgIFJhbmdlR2VuZXJh
dG9yKFQgYmVnaW4sIFQgZW5kLCBJbmNyZW1lbnRUIHN0ZXApCiAgICAgICA6IGJlZ2luXyhiZWdp
biksIGVuZF8oZW5kKSwKICAgICAgICAgc3RlcF8oc3RlcCksIGVuZF9pbmRleF8oQ2FsY3VsYXRl
RW5kSW5kZXgoYmVnaW4sIGVuZCwgc3RlcCkpIHt9Ci0gIHZpcnR1YWwgflJhbmdlR2VuZXJhdG9y
KCkge30KKyAgflJhbmdlR2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+KiBCZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICByZXR1cm4gbmV3IEl0ZXJh
dG9yKHRoaXMsIGJlZ2luXywgMCwgc3RlcF8pOwogICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxUPiogRW5kKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+
KiBFbmQoKSBjb25zdCBvdmVycmlkZSB7CiAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBl
bmRfLCBlbmRfaW5kZXhfLCBzdGVwXyk7CiAgIH0KIApAQCAtMjIwLDIwICsyMjQsMjAgQEAgY2xh
c3MgUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewog
ICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+KiBiYXNlLCBUIHZh
bHVlLCBpbnQgaW5kZXgsCiAgICAgICAgICAgICAgSW5jcmVtZW50VCBzdGVwKQogICAgICAgICA6
IGJhc2VfKGJhc2UpLCB2YWx1ZV8odmFsdWUpLCBpbmRleF8oaW5kZXgpLCBzdGVwXyhzdGVwKSB7
fQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0b3IoKSBvdmVycmlkZSB7
fQogCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdl
bmVyYXRvcigpIGNvbnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiog
QmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBiYXNlXzsKICAg
ICB9Ci0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9pZCBBZHZhbmNlKCkgb3Zl
cnJpZGUgewogICAgICAgdmFsdWVfID0gc3RhdGljX2Nhc3Q8VD4odmFsdWVfICsgc3RlcF8pOwog
ICAgICAgaW5kZXhfKys7CiAgICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFj
ZTxUPiogQ2xvbmUoKSBjb25zdCB7CisgICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xv
bmUoKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsK
ICAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBUKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gJnZh
bHVlXzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxUPiYgb3RoZXIpIGNvbnN0IHsKKyAgICBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gJnZhbHVlXzsgfQorICAgIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICAvLyBIYXZp
bmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgogICAg
ICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0Lgog
ICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9y
KCkpCkBAIC0yOTAsMTIgKzI5NCwxMiBAQCBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5l
cmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgogICBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0
b3IoRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKQogICAgICAgOiBj
b250YWluZXJfKGJlZ2luLCBlbmQpIHt9Ci0gIHZpcnR1YWwgflZhbHVlc0luSXRlcmF0b3JSYW5n
ZUdlbmVyYXRvcigpIHt9CisgIH5WYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IoKSBvdmVy
cmlkZSB7fQogCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQmVnaW4oKSBj
b25zdCB7CisgIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3Qgb3ZlcnJp
ZGUgewogICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5iZWdpbigpKTsK
ICAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEVuZCgpIGNvbnN0IHsK
KyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogRW5kKCkgY29uc3Qgb3ZlcnJpZGUgewogICAg
IHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5lbmQoKSk7CiAgIH0KIApAQCAt
MzA3LDE2ICszMTEsMTYgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDog
cHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICBJdGVyYXRvcihjb25zdCBQ
YXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogYmFzZSwKICAgICAgICAgICAgICB0eXBlbmFtZSBD
b250YWluZXJUeXBlOjpjb25zdF9pdGVyYXRvciBpdGVyYXRvcikKICAgICAgICAgOiBiYXNlXyhi
YXNlKSwgaXRlcmF0b3JfKGl0ZXJhdG9yKSB7fQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30K
KyAgICB+SXRlcmF0b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdl
bmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKKyAgICBjb25zdCBQ
YXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRl
IHsKICAgICAgIHJldHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2Uo
KSB7CisgICAgdm9pZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAgICAgKytpdGVyYXRvcl87CiAg
ICAgICB2YWx1ZV8ucmVzZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+KiBDbG9uZSgpIGNvbnN0IHsKKyAgICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+
KiBDbG9uZSgpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRo
aXMpOwogICAgIH0KICAgICAvLyBXZSBuZWVkIHRvIHVzZSBjYWNoZWQgdmFsdWUgcmVmZXJlbmNl
ZCBieSBpdGVyYXRvcl8gYmVjYXVzZSAqaXRlcmF0b3JfCkBAIC0zMjYsMTIgKzMzMCwxMSBAQCBj
bGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8VD4gewogICAgIC8vIGNhbiBhZHZhbmNlIGl0ZXJhdG9yXyBiZXlvbmQgdGhl
IGVuZCBvZiB0aGUgcmFuZ2UsIGFuZCB3ZSBjYW5ub3QKICAgICAvLyBkZXRlY3QgdGhhdCBmYWN0
LiBUaGUgY2xpZW50IGNvZGUsIG9uIHRoZSBvdGhlciBoYW5kLCBpcwogICAgIC8vIHJlc3BvbnNp
YmxlIGZvciBub3QgY2FsbGluZyBDdXJyZW50KCkgb24gYW4gb3V0LW9mLXJhbmdlIGl0ZXJhdG9y
LgotICAgIHZpcnR1YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IHsKLSAgICAgIGlmICh2YWx1
ZV8uZ2V0KCkgPT0gTlVMTCkKLSAgICAgICAgdmFsdWVfLnJlc2V0KG5ldyBUKCppdGVyYXRvcl8p
KTsKKyAgICBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgaWYgKHZh
bHVlXy5nZXQoKSA9PSBudWxscHRyKSB2YWx1ZV8ucmVzZXQobmV3IFQoKml0ZXJhdG9yXykpOwog
ICAgICAgcmV0dXJuIHZhbHVlXy5nZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFs
cyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+JiBvdGhlcikgY29uc3QgeworICAgIGJv
b2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCBv
dmVycmlkZSB7CiAgICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFu
dGVlcyB0aGF0IHRoZSBvdGhlcgogICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlw
ZSBhbmQgd2UgY2FuIGRvd25jYXN0LgogICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3Io
KSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCkBAIC0zNTQsOSArMzU3LDkgQEAgY2xhc3MgVmFs
dWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFQ+IHsKICAgICAvLyBBIGNhY2hlZCB2YWx1ZSBvZiAqaXRlcmF0b3JfLiBXZSBrZWVwIGl0
IGhlcmUgdG8gYWxsb3cgYWNjZXNzIGJ5CiAgICAgLy8gcG9pbnRlciBpbiB0aGUgd3JhcHBpbmcg
aXRlcmF0b3IncyBvcGVyYXRvci0+KCkuCiAgICAgLy8gdmFsdWVfIG5lZWRzIHRvIGJlIG11dGFi
bGUgdG8gYmUgYWNjZXNzZWQgaW4gQ3VycmVudCgpLgotICAgIC8vIFVzZSBvZiBzY29wZWRfcHRy
IGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKKyAgICAvLyBVc2Ugb2Ygc3Rk
Ojp1bmlxdWVfcHRyIGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKICAgICAv
LyB3aGljaCBpcyBib3VuZCBieSB0aGUgbGlmZXNwYW4gb2YgdGhlIGl0ZXJhdG9yIGl0c2VsZi4K
LSAgICBtdXRhYmxlIHNjb3BlZF9wdHI8Y29uc3QgVD4gdmFsdWVfOworICAgIG11dGFibGUgc3Rk
Ojp1bmlxdWVfcHRyPGNvbnN0IFQ+IHZhbHVlXzsKICAgfTsgIC8vIGNsYXNzIFZhbHVlc0luSXRl
cmF0b3JSYW5nZUdlbmVyYXRvcjo6SXRlcmF0b3IKIAogICAvLyBObyBpbXBsZW1lbnRhdGlvbiAt
IGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCkBAIC0zNzYsMjUgKzM3OSwxMiBAQCBzdGQ6OnN0
cmluZyBEZWZhdWx0UGFyYW1OYW1lKGNvbnN0IFRlc3RQYXJhbUluZm88UGFyYW1UeXBlPiYgaW5m
bykgewogICByZXR1cm4gbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCk7CiB9CiAKLS8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gUGFyYW1l
dGVyaXplZCB0ZXN0IG5hbWUgb3ZlcmxvYWQgaGVscGVycywgd2hpY2ggaGVscCB0aGUKLS8vIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIGNob29zZSBiZXR3ZWVuIHRoZSBkZWZhdWx0IHBh
cmFtZXRlcml6ZWQKLS8vIHRlc3QgbmFtZSBnZW5lcmF0b3IgYW5kIHVzZXIgcGFyYW0gbmFtZSBn
ZW5lcmF0b3IuCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlLCBjbGFzcyBQYXJhbU5hbWVHZW5G
dW5jdG9yPgotUGFyYW1OYW1lR2VuRnVuY3RvciBHZXRQYXJhbU5hbWVHZW4oUGFyYW1OYW1lR2Vu
RnVuY3RvciBmdW5jKSB7Ci0gIHJldHVybiBmdW5jOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFy
YW1UeXBlPgotc3RydWN0IFBhcmFtTmFtZUdlbkZ1bmMgewotICB0eXBlZGVmIHN0ZDo6c3RyaW5n
IFR5cGUoY29uc3QgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+Jik7Ci19OwotCi10ZW1wbGF0ZSA8
Y2xhc3MgUGFyYW1UeXBlPgotdHlwZW5hbWUgUGFyYW1OYW1lR2VuRnVuYzxQYXJhbVR5cGU+OjpU
eXBlICpHZXRQYXJhbU5hbWVHZW4oKSB7Ci0gIHJldHVybiBEZWZhdWx0UGFyYW1OYW1lOwordGVt
cGxhdGUgPHR5cGVuYW1lIFQgPSBpbnQ+Cit2b2lkIFRlc3ROb3RFbXB0eSgpIHsKKyAgc3RhdGlj
X2Fzc2VydChzaXplb2YoVCkgPT0gMCwgIkVtcHR5IGFyZ3VtZW50cyBhcmUgbm90IGFsbG93ZWQu
Iik7CiB9Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCA9IGludD4KK3ZvaWQgVGVzdE5vdEVtcHR5KGNv
bnN0IFQmKSB7fQogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4g
VVNFUiBDT0RFLgogLy8KQEAgLTQwNiw3ICszOTYsNyBAQCBjbGFzcyBQYXJhbWV0ZXJpemVkVGVz
dEZhY3RvcnkgOiBwdWJsaWMgVGVzdEZhY3RvcnlCYXNlIHsKICAgdHlwZWRlZiB0eXBlbmFtZSBU
ZXN0Q2xhc3M6OlBhcmFtVHlwZSBQYXJhbVR5cGU7CiAgIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRU
ZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSA6CiAgICAgICBwYXJhbWV0ZXJfKHBhcmFt
ZXRlcikge30KLSAgdmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkgeworICBUZXN0KiBDcmVhdGVU
ZXN0KCkgb3ZlcnJpZGUgewogICAgIFRlc3RDbGFzczo6U2V0UGFyYW0oJnBhcmFtZXRlcl8pOwog
ICAgIHJldHVybiBuZXcgVGVzdENsYXNzKCk7CiAgIH0KQEAgLTQzNCwxOSArNDI0LDE5IEBAIGNs
YXNzIFRlc3RNZXRhRmFjdG9yeUJhc2UgewogLy8gVGVzdE1ldGFGYWN0b3J5IGNyZWF0ZXMgdGVz
dCBmYWN0b3JpZXMgZm9yIHBhc3NpbmcgaW50bwogLy8gTWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8g
ZnVuY3Rpb24uIFNpbmNlIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIHJlY2VpdmVzCiAvLyBvd25l
cnNoaXAgb2YgdGVzdCBmYWN0b3J5IHBvaW50ZXIsIHNhbWUgZmFjdG9yeSBvYmplY3QgY2Fubm90
IGJlIHBhc3NlZAotLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRlcml6ZWRU
ZXN0Q2FzZUluZm8gaXMgZ29pbmcgdG8gY2FsbAorLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4g
QnV0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGlzIGdvaW5nIHRvIGNhbGwKIC8vIGl0IGZv
ciBlYWNoIFRlc3QvUGFyYW1ldGVyIHZhbHVlIGNvbWJpbmF0aW9uLiBUaHVzIGl0IG5lZWRzIG1l
dGEgZmFjdG9yeQogLy8gY3JlYXRvciBjbGFzcy4KLXRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4K
K3RlbXBsYXRlIDxjbGFzcyBUZXN0U3VpdGU+CiBjbGFzcyBUZXN0TWV0YUZhY3RvcnkKLSAgICA6
IHB1YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJhbVR5cGU+
IHsKKyAgICA6IHB1YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RTdWl0ZTo6
UGFyYW1UeXBlPiB7CiAgcHVibGljOgotICB0eXBlZGVmIHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJh
bVR5cGUgUGFyYW1UeXBlOworICB1c2luZyBQYXJhbVR5cGUgPSB0eXBlbmFtZSBUZXN0U3VpdGU6
OlBhcmFtVHlwZTsKIAogICBUZXN0TWV0YUZhY3RvcnkoKSB7fQogCi0gIHZpcnR1YWwgVGVzdEZh
Y3RvcnlCYXNlKiBDcmVhdGVUZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSB7Ci0gICAg
cmV0dXJuIG5ldyBQYXJhbWV0ZXJpemVkVGVzdEZhY3Rvcnk8VGVzdENhc2U+KHBhcmFtZXRlcik7
CisgIFRlc3RGYWN0b3J5QmFzZSogQ3JlYXRlVGVzdEZhY3RvcnkoUGFyYW1UeXBlIHBhcmFtZXRl
cikgb3ZlcnJpZGUgeworICAgIHJldHVybiBuZXcgUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5PFRl
c3RTdWl0ZT4ocGFyYW1ldGVyKTsKICAgfQogCiAgcHJpdmF0ZToKQEAgLTQ1NSw5MyArNDQ1LDEw
NyBAQCBjbGFzcyBUZXN0TWV0YUZhY3RvcnkKIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04g
LSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCi0vLyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvQmFzZSBpcyBhIGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBQYXJhbWV0ZXJpemVkVGVzdENh
c2VJbmZvIGNsYXNzZXMuIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlCisvLyBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgaXMgYSBnZW5lcmljIGludGVyZmFjZQorLy8gdG8gUGFy
YW1ldGVyaXplZFRlc3RTdWl0ZUluZm8gY2xhc3Nlcy4gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUlu
Zm9CYXNlCiAvLyBhY2N1bXVsYXRlcyB0ZXN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IFRFU1Rf
UCBtYWNybyBpbnZvY2F0aW9ucwotLy8gYW5kIGdlbmVyYXRvcnMgcHJvdmlkZWQgYnkgSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaW52b2NhdGlvbnMKKy8vIGFuZCBnZW5lcmF0b3JzIHBy
b3ZpZGVkIGJ5IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpbnZvY2F0aW9ucwogLy8g
YW5kIHVzZXMgdGhhdCBpbmZvcm1hdGlvbiB0byByZWdpc3RlciBhbGwgcmVzdWx0aW5nIHRlc3Qg
aW5zdGFuY2VzCi0vLyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4gVGhlIFBhcmFtZXRlcml6ZVRl
c3RDYXNlUmVnaXN0cnkgY2xhc3MgaG9sZHMKLS8vIGEgY29sbGVjdGlvbiBvZiBwb2ludGVycyB0
byB0aGUgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyBvYmplY3RzCisvLyBpbiBSZWdpc3RlclRl
c3RzIG1ldGhvZC4gVGhlIFBhcmFtZXRlcml6ZVRlc3RTdWl0ZVJlZ2lzdHJ5IGNsYXNzIGhvbGRz
CisvLyBhIGNvbGxlY3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVJbmZvIG9iamVjdHMKIC8vIGFuZCBjYWxscyBSZWdpc3RlclRlc3RzKCkgb24gZWFjaCBvZiB0
aGVtIHdoZW4gYXNrZWQuCi1jbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7Citj
bGFzcyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgewogIHB1YmxpYzoKLSAgdmlydHVh
bCB+UGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICB2aXJ0dWFsIH5QYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UoKSB7fQogCi0gIC8vIEJhc2UgcGFydCBvZiB0ZXN0IGNh
c2UgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KLSAgdmlydHVhbCBjb25zdCBzdGQ6OnN0cmlu
ZyYgR2V0VGVzdENhc2VOYW1lKCkgY29uc3QgPSAwOwotICAvLyBUZXN0IGNhc2UgaWQgdG8gdmVy
aWZ5IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJZCgpIGNvbnN0
ID0gMDsKKyAgLy8gQmFzZSBwYXJ0IG9mIHRlc3Qgc3VpdGUgbmFtZSBmb3IgZGlzcGxheSBwdXJw
b3Nlcy4KKyAgdmlydHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdFN1aXRlTmFtZSgpIGNv
bnN0ID0gMDsKKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisgIHZpcnR1
YWwgVHlwZUlkIEdldFRlc3RTdWl0ZVR5cGVJZCgpIGNvbnN0ID0gMDsKICAgLy8gVW5pdFRlc3Qg
Y2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0cyBpbiB0aGlzCi0gIC8v
IHRlc3QgY2FzZSByaWdodCBiZWZvcmUgcnVubmluZyB0aGVtIGluIFJVTl9BTExfVEVTVFMgbWFj
cm8uCi0gIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIG1vcmUgdGhlbiBvbmNl
IG9uIGFueSBzaW5nbGUKLSAgLy8gaW5zdGFuY2Ugb2YgYSBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvQmFzZSBkZXJpdmVkIGNsYXNzLgorICAvLyB0ZXN0IHN1aXRlIHJpZ2h0IGJlZm9yZSBydW5u
aW5nIHRoZW0gaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5j
ZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgogICB2
aXJ0dWFsIHZvaWQgUmVnaXN0ZXJUZXN0cygpID0gMDsKIAogIHByb3RlY3RlZDoKLSAgUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5m
b0Jhc2UoKSB7fQogCiAgcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSk7CisgIEdURVNUX0RJU0FMTE9XX0NPUFlf
QU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKTsKIH07CiAKIC8vIElO
VEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwotLy8g
UGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyBhY2N1bXVsYXRlcyB0ZXN0cyBvYnRhaW5lZCBmcm9t
IFRFU1RfUAotLy8gbWFjcm8gaW52b2NhdGlvbnMgZm9yIGEgcGFydGljdWxhciB0ZXN0IGNhc2Ug
YW5kIGdlbmVyYXRvcnMKLS8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ag
bWFjcm8gaW52b2NhdGlvbnMgZm9yIHRoYXQKLS8vIHRlc3QgY2FzZS4gSXQgcmVnaXN0ZXJzIHRl
c3RzIHdpdGggYWxsIHZhbHVlcyBnZW5lcmF0ZWQgYnkgYWxsCisvLyBSZXBvcnQgYSB0aGUgbmFt
ZSBvZiBhIHRlc3Rfc3VpdCBhcyBzYWZlIHRvIGlnbm9yZQorLy8gYXMgdGhlIHNpZGUgZWZmZWN0
IG9mIGNvbnN0cnVjdGlvbiBvZiB0aGlzIHR5cGUuCitzdHJ1Y3QgTWFya0FzSWdub3JlZCB7Cisg
IGV4cGxpY2l0IE1hcmtBc0lnbm9yZWQoY29uc3QgY2hhciogdGVzdF9zdWl0ZSk7Cit9OworCitH
VEVTVF9BUElfIHZvaWQgSW5zZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcm
IG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0
aW9uIGxvY2F0aW9uLCBib29sIGhhc190ZXN0X3ApOworCisvLyBJTlRFUk5BTCBJTVBMRU1FTlRB
VElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgorLy8KKy8vIFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVJbmZvIGFjY3VtdWxhdGVzIHRlc3RzIG9idGFpbmVkIGZyb20gVEVTVF9QCisvLyBtYWNy
byBpbnZvY2F0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIHRlc3Qgc3VpdGUgYW5kIGdlbmVyYXRvcnMK
Ky8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvIGludm9jYXRp
b25zIGZvciB0aGF0CisvLyB0ZXN0IHN1aXRlLiBJdCByZWdpc3RlcnMgdGVzdHMgd2l0aCBhbGwg
dmFsdWVzIGdlbmVyYXRlZCBieSBhbGwKIC8vIGdlbmVyYXRvcnMgd2hlbiBhc2tlZC4KLXRlbXBs
YXRlIDxjbGFzcyBUZXN0Q2FzZT4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gOiBw
dWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewordGVtcGxhdGUgPGNsYXNzIFRl
c3RTdWl0ZT4KK2NsYXNzIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIDogcHVibGljIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSB7CiAgcHVibGljOgogICAvLyBQYXJhbVR5cGUgYW5k
IEdlbmVyYXRvckNyZWF0aW9uRnVuYyBhcmUgcHJpdmF0ZSB0eXBlcyBidXQgYXJlIHJlcXVpcmVk
CiAgIC8vIGZvciBkZWNsYXJhdGlvbnMgb2YgcHVibGljIG1ldGhvZHMgQWRkVGVzdFBhdHRlcm4o
KSBhbmQKLSAgLy8gQWRkVGVzdENhc2VJbnN0YW50aWF0aW9uKCkuCi0gIHR5cGVkZWYgdHlwZW5h
bWUgVGVzdENhc2U6OlBhcmFtVHlwZSBQYXJhbVR5cGU7CisgIC8vIEFkZFRlc3RTdWl0ZUluc3Rh
bnRpYXRpb24oKS4KKyAgdXNpbmcgUGFyYW1UeXBlID0gdHlwZW5hbWUgVGVzdFN1aXRlOjpQYXJh
bVR5cGU7CiAgIC8vIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIGFwcHJv
cHJpYXRlIGdlbmVyYXRvciB0eXBlLgogICB0eXBlZGVmIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlw
ZT4oR2VuZXJhdG9yQ3JlYXRpb25GdW5jKSgpOwotICB0eXBlZGVmIHR5cGVuYW1lIFBhcmFtTmFt
ZUdlbkZ1bmM8UGFyYW1UeXBlPjo6VHlwZSBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jOworICB1c2lu
ZyBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jID0gc3RkOjpzdHJpbmcoY29uc3QgVGVzdFBhcmFtSW5m
bzxQYXJhbVR5cGU+Jik7CiAKLSAgZXhwbGljaXQgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbygK
LSAgICAgIGNvbnN0IGNoYXIqIG5hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKQotICAg
ICAgOiB0ZXN0X2Nhc2VfbmFtZV8obmFtZSksIGNvZGVfbG9jYXRpb25fKGNvZGVfbG9jYXRpb24p
IHt9CisgIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKGNvbnN0IGNoYXIqIG5h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBj
b2RlX2xvY2F0aW9uKQorICAgICAgOiB0ZXN0X3N1aXRlX25hbWVfKG5hbWUpLCBjb2RlX2xvY2F0
aW9uXyhjb2RlX2xvY2F0aW9uKSB7fQogCi0gIC8vIFRlc3QgY2FzZSBiYXNlIG5hbWUgZm9yIGRp
c3BsYXkgcHVycG9zZXMuCi0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RDYXNl
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RfY2FzZV9uYW1lXzsgfQotICAvLyBUZXN0IGNhc2Ug
aWQgdG8gdmVyaWZ5IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJ
ZCgpIGNvbnN0IHsgcmV0dXJuIEdldFR5cGVJZDxUZXN0Q2FzZT4oKTsgfQorICAvLyBUZXN0IHN1
aXRlIGJhc2UgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgY29uc3Qgc3RkOjpzdHJpbmcm
IEdldFRlc3RTdWl0ZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgcmV0dXJuIHRlc3Rfc3Vp
dGVfbmFtZV87CisgIH0KKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisg
IFR5cGVJZCBHZXRUZXN0U3VpdGVUeXBlSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBHZXRU
eXBlSWQ8VGVzdFN1aXRlPigpOyB9CiAgIC8vIFRFU1RfUCBtYWNybyB1c2VzIEFkZFRlc3RQYXR0
ZXJuKCkgdG8gcmVjb3JkIGluZm9ybWF0aW9uCiAgIC8vIGFib3V0IGEgc2luZ2xlIHRlc3QgaW4g
YSBMb2NhbFRlc3RJbmZvIHN0cnVjdHVyZS4KLSAgLy8gdGVzdF9jYXNlX25hbWUgaXMgdGhlIGJh
c2UgbmFtZSBvZiB0aGUgdGVzdCBjYXNlICh3aXRob3V0IGludm9jYXRpb24KKyAgLy8gdGVzdF9z
dWl0ZV9uYW1lIGlzIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUgKHdpdGhvdXQgaW52
b2NhdGlvbgogICAvLyBwcmVmaXgpLiB0ZXN0X2Jhc2VfbmFtZSBpcyB0aGUgbmFtZSBvZiBhbiBp
bmRpdmlkdWFsIHRlc3Qgd2l0aG91dAogICAvLyBwYXJhbWV0ZXIgaW5kZXguIEZvciB0aGUgdGVz
dCBTZXF1ZW5jZUEvRm9vVGVzdC5Eb0Jhci8xIEZvb1Rlc3QgaXMKLSAgLy8gdGVzdCBjYXNlIGJh
c2UgbmFtZSBhbmQgRG9CYXIgaXMgdGVzdCBiYXNlIG5hbWUuCi0gIHZvaWQgQWRkVGVzdFBhdHRl
cm4oY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogdGVzdF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgVGVzdE1ldGFG
YWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBtZXRhX2ZhY3RvcnkpIHsKLSAgICB0ZXN0c18ucHVzaF9i
YWNrKGxpbmtlZF9wdHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbyh0ZXN0X2Nhc2VfbmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X2Jhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXRhX2ZhY3RvcnkpKSk7CisgIC8vIHRlc3Qgc3VpdGUgYmFzZSBuYW1lIGFu
ZCBEb0JhciBpcyB0ZXN0IGJhc2UgbmFtZS4KKyAgdm9pZCBBZGRUZXN0UGF0dGVybihjb25zdCBj
aGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IGNoYXIqIHRlc3RfYmFzZV9uYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBlPiogbWV0YV9mYWN0
b3J5LAorICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7
CisgICAgdGVzdHNfLnB1c2hfYmFjayhzdGQ6OnNoYXJlZF9wdHI8VGVzdEluZm8+KG5ldyBUZXN0
SW5mbygKKyAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X2Jhc2VfbmFtZSwgbWV0YV9mYWN0
b3J5LCBjb2RlX2xvY2F0aW9uKSkpOwogICB9Ci0gIC8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
IG1hY3JvIHVzZXMgQWRkR2VuZXJhdG9yKCkgdG8gcmVjb3JkIGluZm9ybWF0aW9uCisgIC8vIElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyB1c2VzIEFkZEdlbmVyYXRvcigpIHRvIHJlY29y
ZCBpbmZvcm1hdGlvbgogICAvLyBhYm91dCBhIGdlbmVyYXRvci4KLSAgaW50IEFkZFRlc3RDYXNl
SW5zdGFudGlhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgaW5zdGFudGlhdGlvbl9uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvckNyZWF0aW9uRnVuYyogZnVuYywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBu
YW1lX2Z1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmls
ZSwgaW50IGxpbmUpIHsKKyAgaW50IEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY29uc3Qgc3Rk
OjpzdHJpbmcmIGluc3RhbnRpYXRpb25fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR2VuZXJhdG9yQ3JlYXRpb25GdW5jKiBmdW5jLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7CiAgICAg
aW5zdGFudGlhdGlvbnNfLnB1c2hfYmFjaygKICAgICAgICAgSW5zdGFudGlhdGlvbkluZm8oaW5z
dGFudGlhdGlvbl9uYW1lLCBmdW5jLCBuYW1lX2Z1bmMsIGZpbGUsIGxpbmUpKTsKICAgICByZXR1
cm4gMDsgIC8vIFJldHVybiB2YWx1ZSB1c2VkIG9ubHkgdG8gcnVuIHRoaXMgbWV0aG9kIGluIG5h
bWVzcGFjZSBzY29wZS4KICAgfQotICAvLyBVbml0VGVzdCBjbGFzcyBpbnZva2VzIHRoaXMgbWV0
aG9kIHRvIHJlZ2lzdGVyIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlCi0gIC8vIHRlc3QgY2FzZXMg
cmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KLSAgLy8g
VGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGVuIG9uY2Ugb24gYW55IHNp
bmdsZQotICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIGRl
cml2ZWQgY2xhc3MuCi0gIC8vIFVuaXRUZXN0IGhhcyBhIGd1YXJkIHRvIHByZXZlbnQgZnJvbSBj
YWxsaW5nIHRoaXMgbWV0aG9kIG1vcmUgdGhlbiBvbmNlLgotICB2aXJ0dWFsIHZvaWQgUmVnaXN0
ZXJUZXN0cygpIHsKKyAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byBy
ZWdpc3RlciB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUKKyAgLy8gcmlnaHQgYmVmb3JlIHJ1bm5p
bmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxk
IG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5j
ZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgorICAv
LyBVbml0VGVzdCBoYXMgYSBndWFyZCB0byBwcmV2ZW50IGZyb20gY2FsbGluZyB0aGlzIG1ldGhv
ZCBtb3JlIHRoYW4gb25jZS4KKyAgdm9pZCBSZWdpc3RlclRlc3RzKCkgb3ZlcnJpZGUgeworICAg
IGJvb2wgZ2VuZXJhdGVkX2luc3RhbnRpYXRpb25zID0gZmFsc2U7CisKICAgICBmb3IgKHR5cGVu
YW1lIFRlc3RJbmZvQ29udGFpbmVyOjppdGVyYXRvciB0ZXN0X2l0ID0gdGVzdHNfLmJlZ2luKCk7
CiAgICAgICAgICB0ZXN0X2l0ICE9IHRlc3RzXy5lbmQoKTsgKyt0ZXN0X2l0KSB7Ci0gICAgICBs
aW5rZWRfcHRyPFRlc3RJbmZvPiB0ZXN0X2luZm8gPSAqdGVzdF9pdDsKKyAgICAgIHN0ZDo6c2hh
cmVkX3B0cjxUZXN0SW5mbz4gdGVzdF9pbmZvID0gKnRlc3RfaXQ7CiAgICAgICBmb3IgKHR5cGVu
YW1lIEluc3RhbnRpYXRpb25Db250YWluZXI6Oml0ZXJhdG9yIGdlbl9pdCA9CiAgICAgICAgICAg
ICAgICBpbnN0YW50aWF0aW9uc18uYmVnaW4oKTsgZ2VuX2l0ICE9IGluc3RhbnRpYXRpb25zXy5l
bmQoKTsKICAgICAgICAgICAgICAgICsrZ2VuX2l0KSB7CkBAIC01NTEsMTYgKzU1NSwxOCBAQCBj
bGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm9CYXNlIHsKICAgICAgICAgY29uc3QgY2hhciogZmlsZSA9IGdlbl9pdC0+ZmlsZTsK
ICAgICAgICAgaW50IGxpbmUgPSBnZW5faXQtPmxpbmU7CiAKLSAgICAgICAgc3RkOjpzdHJpbmcg
dGVzdF9jYXNlX25hbWU7CisgICAgICAgIHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZTsKICAg
ICAgICAgaWYgKCAhaW5zdGFudGlhdGlvbl9uYW1lLmVtcHR5KCkgKQotICAgICAgICAgIHRlc3Rf
Y2FzZV9uYW1lID0gaW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOwotICAgICAgICB0ZXN0X2Nhc2Vf
bmFtZSArPSB0ZXN0X2luZm8tPnRlc3RfY2FzZV9iYXNlX25hbWU7CisgICAgICAgICAgdGVzdF9z
dWl0ZV9uYW1lID0gaW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOworICAgICAgICB0ZXN0X3N1aXRl
X25hbWUgKz0gdGVzdF9pbmZvLT50ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKIAogICAgICAgICBzaXpl
X3QgaSA9IDA7CiAgICAgICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0X3BhcmFtX25hbWVz
OwogICAgICAgICBmb3IgKHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT46Oml0ZXJh
dG9yIHBhcmFtX2l0ID0KICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmJlZ2luKCk7CiAgICAg
ICAgICAgICAgcGFyYW1faXQgIT0gZ2VuZXJhdG9yLmVuZCgpOyArK3BhcmFtX2l0LCArK2kpIHsK
KyAgICAgICAgICBnZW5lcmF0ZWRfaW5zdGFudGlhdGlvbnMgPSB0cnVlOworCiAgICAgICAgICAg
TWVzc2FnZSB0ZXN0X25hbWVfc3RyZWFtOwogCiAgICAgICAgICAgc3RkOjpzdHJpbmcgcGFyYW1f
bmFtZSA9IG5hbWVfZnVuYygKQEAgLTU3NywzOSArNTgzLDQ4IEBAIGNsYXNzIFBhcmFtZXRlcml6
ZWRUZXN0Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2Ugewog
CiAgICAgICAgICAgdGVzdF9wYXJhbV9uYW1lcy5pbnNlcnQocGFyYW1fbmFtZSk7CiAKLSAgICAg
ICAgICB0ZXN0X25hbWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNlX25hbWUgPDwgIi8i
IDw8IHBhcmFtX25hbWU7CisgICAgICAgICAgaWYgKCF0ZXN0X2luZm8tPnRlc3RfYmFzZV9uYW1l
LmVtcHR5KCkpIHsKKyAgICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwgdGVzdF9pbmZvLT50
ZXN0X2Jhc2VfbmFtZSA8PCAiLyI7CisgICAgICAgICAgfQorICAgICAgICAgIHRlc3RfbmFtZV9z
dHJlYW0gPDwgcGFyYW1fbmFtZTsKICAgICAgICAgICBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygK
LSAgICAgICAgICAgICAgdGVzdF9jYXNlX25hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgdGVz
dF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLAotICAgICAgICAgICAgICBOVUxMLCAg
Ly8gTm8gdHlwZSBwYXJhbWV0ZXIuCi0gICAgICAgICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFt
X2l0KS5jX3N0cigpLAotICAgICAgICAgICAgICBjb2RlX2xvY2F0aW9uXywKLSAgICAgICAgICAg
ICAgR2V0VGVzdENhc2VUeXBlSWQoKSwKLSAgICAgICAgICAgICAgVGVzdENhc2U6OlNldFVwVGVz
dENhc2UsCi0gICAgICAgICAgICAgIFRlc3RDYXNlOjpUZWFyRG93blRlc3RDYXNlLAorICAgICAg
ICAgICAgICB0ZXN0X3N1aXRlX25hbWUuY19zdHIoKSwgdGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJp
bmcoKS5jX3N0cigpLAorICAgICAgICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0
ZXIuCisgICAgICAgICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5jX3N0cigpLCB0ZXN0
X2luZm8tPmNvZGVfbG9jYXRpb24sCisgICAgICAgICAgICAgIEdldFRlc3RTdWl0ZVR5cGVJZCgp
LAorICAgICAgICAgICAgICBTdWl0ZUFwaVJlc29sdmVyPFRlc3RTdWl0ZT46OkdldFNldFVwQ2Fz
ZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICAgICAgICAgIFN1aXRlQXBpUmVzb2x2ZXI8VGVz
dFN1aXRlPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShmaWxlLCBsaW5lKSwKICAgICAgICAgICAg
ICAgdGVzdF9pbmZvLT50ZXN0X21ldGFfZmFjdG9yeS0+Q3JlYXRlVGVzdEZhY3RvcnkoKnBhcmFt
X2l0KSk7CiAgICAgICAgIH0gIC8vIGZvciBwYXJhbV9pdAogICAgICAgfSAgLy8gZm9yIGdlbl9p
dAogICAgIH0gIC8vIGZvciB0ZXN0X2l0Ci0gIH0gIC8vIFJlZ2lzdGVyVGVzdHMKKworICAgIGlm
ICghZ2VuZXJhdGVkX2luc3RhbnRpYXRpb25zKSB7CisgICAgICAvLyBUaGVyZSBhcmUgbm8gZ2Vu
ZXJhb3Rycywgb3IgdGhleSBhbGwgZ2VuZXJhdGUgbm90aGluZyAuLi4KKyAgICAgIEluc2VydFN5
bnRoZXRpY1Rlc3RDYXNlKEdldFRlc3RTdWl0ZU5hbWUoKSwgY29kZV9sb2NhdGlvbl8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAhdGVzdHNfLmVtcHR5KCkpOworICAgIH0KKyAgfSAg
ICAvLyBSZWdpc3RlclRlc3RzCiAKICBwcml2YXRlOgogICAvLyBMb2NhbFRlc3RJbmZvIHN0cnVj
dHVyZSBrZWVwcyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSB0ZXN0IHJlZ2lzdGVyZWQKICAg
Ly8gd2l0aCBURVNUX1AgbWFjcm8uCiAgIHN0cnVjdCBUZXN0SW5mbyB7Ci0gICAgVGVzdEluZm8o
Y29uc3QgY2hhciogYV90ZXN0X2Nhc2VfYmFzZV9uYW1lLAotICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGFfdGVzdF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQ
YXJhbVR5cGU+KiBhX3Rlc3RfbWV0YV9mYWN0b3J5KSA6Ci0gICAgICAgIHRlc3RfY2FzZV9iYXNl
X25hbWUoYV90ZXN0X2Nhc2VfYmFzZV9uYW1lKSwKLSAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90
ZXN0X2Jhc2VfbmFtZSksCi0gICAgICAgIHRlc3RfbWV0YV9mYWN0b3J5KGFfdGVzdF9tZXRhX2Zh
Y3RvcnkpIHt9Ci0KLSAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfYmFzZV9uYW1lOwor
ICAgIFRlc3RJbmZvKGNvbnN0IGNoYXIqIGFfdGVzdF9zdWl0ZV9iYXNlX25hbWUsIGNvbnN0IGNo
YXIqIGFfdGVzdF9iYXNlX25hbWUsCisgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQ
YXJhbVR5cGU+KiBhX3Rlc3RfbWV0YV9mYWN0b3J5LAorICAgICAgICAgICAgIENvZGVMb2NhdGlv
biBhX2NvZGVfbG9jYXRpb24pCisgICAgICAgIDogdGVzdF9zdWl0ZV9iYXNlX25hbWUoYV90ZXN0
X3N1aXRlX2Jhc2VfbmFtZSksCisgICAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90ZXN0X2Jhc2Vf
bmFtZSksCisgICAgICAgICAgdGVzdF9tZXRhX2ZhY3RvcnkoYV90ZXN0X21ldGFfZmFjdG9yeSks
CisgICAgICAgICAgY29kZV9sb2NhdGlvbihhX2NvZGVfbG9jYXRpb24pIHt9CisKKyAgICBjb25z
dCBzdGQ6OnN0cmluZyB0ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyB0ZXN0X2Jhc2VfbmFtZTsKLSAgICBjb25zdCBzY29wZWRfcHRyPFRlc3RNZXRhRmFjdG9yeUJh
c2U8UGFyYW1UeXBlPiA+IHRlc3RfbWV0YV9mYWN0b3J5OworICAgIGNvbnN0IHN0ZDo6dW5pcXVl
X3B0cjxUZXN0TWV0YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4gPiB0ZXN0X21ldGFfZmFjdG9yeTsK
KyAgICBjb25zdCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbjsKICAgfTsKLSAgdHlwZWRlZiA6
OnN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGVzdEluZm8+ID4gVGVzdEluZm9Db250YWluZXI7Ci0g
IC8vIFJlY29yZHMgZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1h
Y3JvczoKKyAgdXNpbmcgVGVzdEluZm9Db250YWluZXIgPSA6OnN0ZDo6dmVjdG9yPHN0ZDo6c2hh
cmVkX3B0cjxUZXN0SW5mbz4gPjsKKyAgLy8gUmVjb3JkcyBkYXRhIHJlY2VpdmVkIGZyb20gSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvczoKICAgLy8gIDxJbnN0YW50aWF0aW9uIG5hbWUs
IFNlcXVlbmNlIGdlbmVyYXRvciBjcmVhdGlvbiBmdW5jdGlvbiwKICAgLy8gICAgIE5hbWUgZ2Vu
ZXJhdG9yIGZ1bmN0aW9uLCBTb3VyY2UgZmlsZSwgU291cmNlIGxpbmU+CiAgIHN0cnVjdCBJbnN0
YW50aWF0aW9uSW5mbyB7CkBAIC02NDYsNzkgKzY2MSwyODcgQEAgY2xhc3MgUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlSW5mbyA6IHB1YmxpYyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7CiAg
ICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfbmFt
ZV87CisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87CiAgIENvZGVMb2NhdGlv
biBjb2RlX2xvY2F0aW9uXzsKICAgVGVzdEluZm9Db250YWluZXIgdGVzdHNfOwogICBJbnN0YW50
aWF0aW9uQ29udGFpbmVyIGluc3RhbnRpYXRpb25zXzsKIAotICBHVEVTVF9ESVNBTExPV19DT1BZ
X0FORF9BU1NJR05fKFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8pOwotfTsgIC8vIGNsYXNzIFBh
cmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8KKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyk7Cit9OyAgLy8gY2xhc3MgUGFyYW1ldGVyaXpl
ZFRlc3RTdWl0ZUluZm8KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwordGVt
cGxhdGUgPGNsYXNzIFRlc3RDYXNlPgordXNpbmcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyA9
IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvPFRlc3RDYXNlPjsKKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElP
TiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KLS8vIFBhcmFtZXRlcml6ZWRUZXN0Q2Fz
ZVJlZ2lzdHJ5IGNvbnRhaW5zIGEgbWFwIG9mIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNl
Ci0vLyBjbGFzc2VzIGFjY2Vzc2VkIGJ5IHRlc3QgY2FzZSBuYW1lcy4gVEVTVF9QIGFuZCBJTlNU
QU5USUFURV9URVNUX0NBU0VfUAotLy8gbWFjcm9zIHVzZSBpdCB0byBsb2NhdGUgdGhlaXIgY29y
cmVzcG9uZGluZyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvCi0vLyBkZXNjcmlwdG9ycy4KLWNs
YXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHsKKy8vIFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVSZWdpc3RyeSBjb250YWlucyBhIG1hcCBvZgorLy8gUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZUluZm9CYXNlIGNsYXNzZXMgYWNjZXNzZWQgYnkgdGVzdCBzdWl0ZSBuYW1lcy4gVEVTVF9QCisv
LyBhbmQgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvcyB1c2UgaXQgdG8gbG9jYXRlIHRo
ZWlyIGNvcnJlc3BvbmRpbmcKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGRlc2NyaXB0
b3JzLgorY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IHsKICBwdWJsaWM6Ci0g
IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkge30KLSAgflBhcmFtZXRlcml6ZWRUZXN0
Q2FzZVJlZ2lzdHJ5KCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFpbmVyOjppdGVyYXRv
ciBpdCA9IHRlc3RfY2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHRlc3RfY2Fz
ZV9pbmZvc18uZW5kKCk7ICsraXQpIHsKLSAgICAgIGRlbGV0ZSAqaXQ7CisgIFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVSZWdpc3RyeSgpIHt9CisgIH5QYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0
cnkoKSB7CisgICAgZm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9z
XykgeworICAgICAgZGVsZXRlIHRlc3Rfc3VpdGVfaW5mbzsKICAgICB9CiAgIH0KIAogICAvLyBM
b29rcyB1cCBvciBjcmVhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5m
b3JtYXRpb24gYWJvdXQKLSAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25zIG9mIGEgcGFydGlj
dWxhciB0ZXN0IGNhc2UuCi0gIHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KLSAgUGFyYW1ldGVy
aXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4qIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcigKLSAg
ICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgQ29kZUxvY2F0aW9uIGNvZGVf
bG9jYXRpb24pIHsKLSAgICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNlPiogdHlw
ZWRfdGVzdF9pbmZvID0gTlVMTDsKLSAgICBmb3IgKFRlc3RDYXNlSW5mb0NvbnRhaW5lcjo6aXRl
cmF0b3IgaXQgPSB0ZXN0X2Nhc2VfaW5mb3NfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSB0ZXN0
X2Nhc2VfaW5mb3NfLmVuZCgpOyArK2l0KSB7Ci0gICAgICBpZiAoKCppdCktPkdldFRlc3RDYXNl
TmFtZSgpID09IHRlc3RfY2FzZV9uYW1lKSB7Ci0gICAgICAgIGlmICgoKml0KS0+R2V0VGVzdENh
c2VUeXBlSWQoKSAhPSBHZXRUeXBlSWQ8VGVzdENhc2U+KCkpIHsKKyAgLy8gdGVzdHMgYW5kIGlu
c3RhbnRpYXRpb25zIG9mIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlLgorICB0ZW1wbGF0ZSA8Y2xh
c3MgVGVzdFN1aXRlPgorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KiBH
ZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9u
YW1lLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVJbmZvPFRlc3RTdWl0ZT4qIHR5cGVkX3Rlc3RfaW5mbyA9IG51bGxwdHI7CisgICAgZm9y
IChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAgaWYg
KHRlc3Rfc3VpdGVfaW5mby0+R2V0VGVzdFN1aXRlTmFtZSgpID09IHRlc3Rfc3VpdGVfbmFtZSkg
eworICAgICAgICBpZiAodGVzdF9zdWl0ZV9pbmZvLT5HZXRUZXN0U3VpdGVUeXBlSWQoKSAhPSBH
ZXRUeXBlSWQ8VGVzdFN1aXRlPigpKSB7CiAgICAgICAgICAgLy8gQ29tcGxhaW4gYWJvdXQgaW5j
b3JyZWN0IHVzYWdlIG9mIEdvb2dsZSBUZXN0IGZhY2lsaXRpZXMKICAgICAgICAgICAvLyBhbmQg
dGVybWluYXRlIHRoZSBwcm9ncmFtIHNpbmNlIHdlIGNhbm5vdCBndWFyYW50eSBjb3JyZWN0Ci0g
ICAgICAgICAgLy8gdGVzdCBjYXNlIHNldHVwIGFuZCB0ZWFyLWRvd24gaW4gdGhpcyBjYXNlLgot
ICAgICAgICAgIFJlcG9ydEludmFsaWRUZXN0Q2FzZVR5cGUodGVzdF9jYXNlX25hbWUsIGNvZGVf
bG9jYXRpb24pOworICAgICAgICAgIC8vIHRlc3Qgc3VpdGUgc2V0dXAgYW5kIHRlYXItZG93biBp
biB0aGlzIGNhc2UuCisgICAgICAgICAgUmVwb3J0SW52YWxpZFRlc3RTdWl0ZVR5cGUodGVzdF9z
dWl0ZV9uYW1lLCBjb2RlX2xvY2F0aW9uKTsKICAgICAgICAgICBwb3NpeDo6QWJvcnQoKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBzdXJlIHRo
YXQgdGhlIG9iamVjdCB3ZSBmb3VuZCBpcyBvZiB0aGUgc2FtZQogICAgICAgICAgIC8vIHR5cGUg
d2UgYXJlIGxvb2tpbmcgZm9yLCBzbyB3ZSBkb3duY2FzdCBpdCB0byB0aGF0IHR5cGUKICAgICAg
ICAgICAvLyB3aXRob3V0IGZ1cnRoZXIgY2hlY2tzLgogICAgICAgICAgIHR5cGVkX3Rlc3RfaW5m
byA9IENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTwKLSAgICAgICAgICAgICAgUGFyYW1ldGVy
aXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4gPigqaXQpOworICAgICAgICAgICAgICBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+ID4odGVzdF9zdWl0ZV9pbmZvKTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHR5cGVkX3Rlc3Rf
aW5mbyA9PSBOVUxMKSB7Ci0gICAgICB0eXBlZF90ZXN0X2luZm8gPSBuZXcgUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4oCi0gICAgICAgICAgdGVzdF9jYXNlX25hbWUsIGNvZGVf
bG9jYXRpb24pOwotICAgICAgdGVzdF9jYXNlX2luZm9zXy5wdXNoX2JhY2sodHlwZWRfdGVzdF9p
bmZvKTsKKyAgICBpZiAodHlwZWRfdGVzdF9pbmZvID09IG51bGxwdHIpIHsKKyAgICAgIHR5cGVk
X3Rlc3RfaW5mbyA9IG5ldyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KAor
ICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgY29kZV9sb2NhdGlvbik7CisgICAgICB0ZXN0X3N1
aXRlX2luZm9zXy5wdXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKICAgICB9CiAgICAgcmV0dXJu
IHR5cGVkX3Rlc3RfaW5mbzsKICAgfQogICB2b2lkIFJlZ2lzdGVyVGVzdHMoKSB7Ci0gICAgZm9y
IChUZXN0Q2FzZUluZm9Db250YWluZXI6Oml0ZXJhdG9yIGl0ID0gdGVzdF9jYXNlX2luZm9zXy5i
ZWdpbigpOwotICAgICAgICAgaXQgIT0gdGVzdF9jYXNlX2luZm9zXy5lbmQoKTsgKytpdCkgewot
ICAgICAgKCppdCktPlJlZ2lzdGVyVGVzdHMoKTsKKyAgICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGVf
aW5mbyA6IHRlc3Rfc3VpdGVfaW5mb3NfKSB7CisgICAgICB0ZXN0X3N1aXRlX2luZm8tPlJlZ2lz
dGVyVGVzdHMoKTsKICAgICB9CiAgIH0KKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0
IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KKyAgdGVtcGxhdGUgPGNsYXNzIFRlc3RDYXNlPgorICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvPFRlc3RDYXNlPiogR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hh
ciogdGVzdF9jYXNlX25hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgICAgcmV0
dXJuIEdldFRlc3RTdWl0ZVBhdHRlcm5Ib2xkZXI8VGVzdENhc2U+KHRlc3RfY2FzZV9uYW1lLCBj
b2RlX2xvY2F0aW9uKTsKKyAgfQorCisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KIAogIHByaXZhdGU6Ci0gIHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxQYXJhbWV0
ZXJpemVkVGVzdENhc2VJbmZvQmFzZSo+IFRlc3RDYXNlSW5mb0NvbnRhaW5lcjsKKyAgdXNpbmcg
VGVzdFN1aXRlSW5mb0NvbnRhaW5lciA9IDo6c3RkOjp2ZWN0b3I8UGFyYW1ldGVyaXplZFRlc3RT
dWl0ZUluZm9CYXNlKj47CiAKLSAgVGVzdENhc2VJbmZvQ29udGFpbmVyIHRlc3RfY2FzZV9pbmZv
c187CisgIFRlc3RTdWl0ZUluZm9Db250YWluZXIgdGVzdF9zdWl0ZV9pbmZvc187CiAKLSAgR1RF
U1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3Ry
eSk7CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZVJlZ2lzdHJ5KTsKK307CisKKy8vIEtlZXAgdHJhY2sgb2Ygd2hhdCB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdCBzdWl0ZSBhcmUgZGVmaW5lZCBhbmQKKy8vIHdoZXJlIGFzIHdlbGwgYXMgd2hp
Y2ggYXJlIGludGF0aWF0ZWQuIFRoaXMgYWxsb3dzIHN1c2VxdWVudGx5CisvLyBpZGVudGlmeWlu
ZyBzdWl0cyB0aGF0IGFyZSBkZWZpbmVkIGJ1dCBuZXZlciB1c2VkLgorY2xhc3MgVHlwZVBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSB7CisgcHVibGljOgorICAvLyBBZGQgYSBzdWl0ZSBk
ZWZpbml0aW9uCisgIHZvaWQgUmVnaXN0ZXJUZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0
ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0
aW9uKTsKKworICAvLyBBZGQgYW4gaW5zdGFudGlhdGlvbiBvZiBhIHN1aXQuCisgIHZvaWQgUmVn
aXN0ZXJJbnN0YW50aWF0aW9uKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSk7CisKKyAgLy8g
Rm9yIGVhY2ggc3VpdCByZXBvcmVkIGFzIGRlZmluZWQgYnV0IG5vdCByZXBvcnRlZCBhcyBpbnN0
YW50aWF0aW9uLAorICAvLyBlbWl0IGEgdGVzdCB0aGF0IHJlcG9ydHMgdGhhdCBmYWN0IChjb25m
aWd1cmFibHksIGFzIGFuIGVycm9yKS4KKyAgdm9pZCBDaGVja0Zvckluc3RhbnRpYXRpb25zKCk7
CisKKyBwcml2YXRlOgorICBzdHJ1Y3QgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIHsK
KyAgICBleHBsaWNpdCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8oQ29kZUxvY2F0aW9u
IGMpCisgICAgICAgIDogY29kZV9sb2NhdGlvbihjKSwgaW5zdGFudGlhdGVkKGZhbHNlKSB7fQor
CisgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb247CisgICAgYm9vbCBpbnN0YW50aWF0ZWQ7
CisgIH07CisKKyAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mbz4gc3VpdGVzXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBG
b3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBp
bgorLy8gaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCit0ZW1wbGF0ZSA8Y2xhc3Mg
Q29udGFpbmVyPgoraW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6
dmFsdWVfdHlwZT4gVmFsdWVzSW4oCisgICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOwor
CituYW1lc3BhY2UgaW50ZXJuYWwgeworLy8gVXNlZCBpbiB0aGUgVmFsdWVzKCkgZnVuY3Rpb24g
dG8gcHJvdmlkZSBwb2x5bW9ycGhpYyBjYXBhYmlsaXRpZXMuCisKKyNpZmRlZiBfTVNDX1ZFUgor
I3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQxMDApCisj
ZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorY2xhc3MgVmFsdWVBcnJheSB7Cisg
cHVibGljOgorICBleHBsaWNpdCBWYWx1ZUFycmF5KFRzLi4uIHYpIDogdl8oRmxhdFR1cGxlQ29u
c3RydWN0VGFne30sIHN0ZDo6bW92ZSh2KS4uLikge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAg
ICByZXR1cm4gVmFsdWVzSW4oTWFrZVZlY3RvcjxUPihNYWtlSW5kZXhTZXF1ZW5jZTxzaXplb2Yu
Li4oVHMpPigpKSk7CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBz
aXplX3QuLi4gST4KKyAgc3RkOjp2ZWN0b3I8VD4gTWFrZVZlY3RvcihJbmRleFNlcXVlbmNlPEku
Li4+KSBjb25zdCB7CisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPFQ+e3N0YXRpY19jYXN0PFQ+KHZf
LnRlbXBsYXRlIEdldDxJPigpKS4uLn07CisgIH0KKworICBGbGF0VHVwbGU8VHMuLi4+IHZfOwor
fTsKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcgor
ICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPDo6c3RkOjp0dXBsZTxULi4uPj4g
eworIHB1YmxpYzoKKyAgdHlwZWRlZiA6OnN0ZDo6dHVwbGU8VC4uLj4gUGFyYW1UeXBlOworCisg
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IoY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRv
cjxUPi4uLj4mIGcpCisgICAgICA6IGdlbmVyYXRvcnNfKGcpIHt9CisgIH5DYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KKworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4qIEJlZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIHJldHVybiBuZXcgSXRlcmF0
b3IodGhpcywgZ2VuZXJhdG9yc18sIGZhbHNlKTsKKyAgfQorICBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICByZXR1cm4gbmV3IEl0
ZXJhdG9yKHRoaXMsIGdlbmVyYXRvcnNfLCB0cnVlKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVt
cGxhdGUgPGNsYXNzIEk+CisgIGNsYXNzIEl0ZXJhdG9ySW1wbDsKKyAgdGVtcGxhdGUgPHNpemVf
dC4uLiBJPgorICBjbGFzcyBJdGVyYXRvckltcGw8SW5kZXhTZXF1ZW5jZTxJLi4uPj4KKyAgICAg
IDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7CisgICBwdWJsaWM6
CisgICAgSXRlcmF0b3JJbXBsKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIGJhc2UsCisgICAgICAgICAgICAgY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxU
Pi4uLj4mIGdlbmVyYXRvcnMsIGJvb2wgaXNfZW5kKQorICAgICAgICA6IGJhc2VfKGJhc2UpLAor
ICAgICAgICAgIGJlZ2luXyhzdGQ6OmdldDxJPihnZW5lcmF0b3JzKS5iZWdpbigpLi4uKSwKKyAg
ICAgICAgICBlbmRfKHN0ZDo6Z2V0PEk+KGdlbmVyYXRvcnMpLmVuZCgpLi4uKSwKKyAgICAgICAg
ICBjdXJyZW50Xyhpc19lbmQgPyBlbmRfIDogYmVnaW5fKSB7CisgICAgICBDb21wdXRlQ3VycmVu
dFZhbHVlKCk7CisgICAgfQorICAgIH5JdGVyYXRvckltcGwoKSBvdmVycmlkZSB7fQorCisgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigp
IGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBiYXNlXzsKKyAgICB9CisgICAgLy8gQWR2
YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCisg
ICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFu
Z2UsIGVpdGhlci4KKyAgICB2b2lkIEFkdmFuY2UoKSBvdmVycmlkZSB7CisgICAgICBhc3NlcnQo
IUF0RW5kKCkpOworICAgICAgLy8gQWR2YW5jZSB0aGUgbGFzdCBpdGVyYXRvci4KKyAgICAgICsr
c3RkOjpnZXQ8c2l6ZW9mLi4uKFQpIC0gMT4oY3VycmVudF8pOworICAgICAgLy8gaWYgdGhhdCBy
ZWFjaGVzIGVuZCwgcHJvcGFnYXRlIHRoYXQgdXAuCisgICAgICBBZHZhbmNlSWZFbmQ8c2l6ZW9m
Li4uKFQpIC0gMT4oKTsKKyAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKKyAgICB9CisgICAg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IG92ZXJyaWRl
IHsKKyAgICAgIHJldHVybiBuZXcgSXRlcmF0b3JJbXBsKCp0aGlzKTsKKyAgICB9CisKKyAgICBj
b25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50
X3ZhbHVlXy5nZXQoKTsgfQorCisgICAgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgLy8gSGF2
aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKKyAg
ICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4K
KyAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRv
cigpKQorICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVy
YXRvcnMgIgorICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3Rk
OjplbmRsOworICAgICAgY29uc3QgSXRlcmF0b3JJbXBsKiB0eXBlZF9vdGhlciA9CisgICAgICAg
ICAgQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9ySW1wbD4oJm90aGVy
KTsKKworICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90
aCBwb2ludCBiZXlvbmQgdGhlaXIKKyAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNh
biBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAorICAgICAgLy8gc28gd2UgaGF2ZSB0
byBjb25zdWx0IEF0RW5kKCkuCisgICAgICBpZiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRF
bmQoKSkgcmV0dXJuIHRydWU7CisKKyAgICAgIGJvb2wgc2FtZSA9IHRydWU7CisgICAgICBib29s
IGR1bW15W10gPSB7CisgICAgICAgICAgKHNhbWUgPSBzYW1lICYmIHN0ZDo6Z2V0PEk+KGN1cnJl
bnRfKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpnZXQ8ST4odHlwZWRf
b3RoZXItPmN1cnJlbnRfKSkuLi59OworICAgICAgKHZvaWQpZHVtbXk7CisgICAgICByZXR1cm4g
c2FtZTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHNpemVfdCBUaGlzST4K
KyAgICB2b2lkIEFkdmFuY2VJZkVuZCgpIHsKKyAgICAgIGlmIChzdGQ6OmdldDxUaGlzST4oY3Vy
cmVudF8pICE9IHN0ZDo6Z2V0PFRoaXNJPihlbmRfKSkgcmV0dXJuOworCisgICAgICBib29sIGxh
c3QgPSBUaGlzSSA9PSAwOworICAgICAgaWYgKGxhc3QpIHsKKyAgICAgICAgLy8gV2UgYXJlIGRv
bmUuIE5vdGhpbmcgZWxzZSB0byBwcm9wYWdhdGUuCisgICAgICAgIHJldHVybjsKKyAgICAgIH0K
KworICAgICAgY29uc3RleHByIHNpemVfdCBOZXh0SSA9IFRoaXNJIC0gKFRoaXNJICE9IDApOwor
ICAgICAgc3RkOjpnZXQ8VGhpc0k+KGN1cnJlbnRfKSA9IHN0ZDo6Z2V0PFRoaXNJPihiZWdpbl8p
OworICAgICAgKytzdGQ6OmdldDxOZXh0ST4oY3VycmVudF8pOworICAgICAgQWR2YW5jZUlmRW5k
PE5leHRJPigpOworICAgIH0KKworICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKKyAg
ICAgIGlmICghQXRFbmQoKSkKKyAgICAgICAgY3VycmVudF92YWx1ZV8gPSBzdGQ6Om1ha2Vfc2hh
cmVkPFBhcmFtVHlwZT4oKnN0ZDo6Z2V0PEk+KGN1cnJlbnRfKS4uLik7CisgICAgfQorICAgIGJv
b2wgQXRFbmQoKSBjb25zdCB7CisgICAgICBib29sIGF0X2VuZCA9IGZhbHNlOworICAgICAgYm9v
bCBkdW1teVtdID0geworICAgICAgICAgIChhdF9lbmQgPSBhdF9lbmQgfHwgc3RkOjpnZXQ8ST4o
Y3VycmVudF8pID09IHN0ZDo6Z2V0PEk+KGVuZF8pKS4uLn07CisgICAgICAodm9pZClkdW1teTsK
KyAgICAgIHJldHVybiBhdF9lbmQ7CisgICAgfQorCisgICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87CisgICAgc3RkOjp0dXBsZTx0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUPjo6aXRlcmF0b3IuLi4+IGJlZ2luXzsKKyAgICBzdGQ6OnR1cGxl
PHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gZW5kXzsKKyAgICBzdGQ6
OnR1cGxlPHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gY3VycmVudF87
CisgICAgc3RkOjpzaGFyZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87CisgIH07CisK
KyAgdXNpbmcgSXRlcmF0b3IgPSBJdGVyYXRvckltcGw8dHlwZW5hbWUgTWFrZUluZGV4U2VxdWVu
Y2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT47CisKKyAgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxU
Pi4uLj4gZ2VuZXJhdG9yc187Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MuLi4gR2VuPgorY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlciB7CisgcHVibGljOgorICBDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyKGNvbnN0IEdlbiYuLi4gZykgOiBnZW5lcmF0b3JzXyhnLi4uKSB7fQorICB0ZW1wbGF0ZSA8
dHlwZW5hbWUuLi4gVD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQu
Li4+PigpIGNvbnN0IHsKKyAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQu
Li4+PigKKyAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I8VC4uLj4oZ2VuZXJh
dG9yc18pKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjp0dXBsZTxHZW4uLi4+IGdlbmVyYXRv
cnNfOwogfTsKIAogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVz
dGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFS
QU1fVVRJTF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfUEFSQU1fVVRJTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgKaW5kZXgg
ZjgzNzAwZTA2ZDk4YzM2ZjY0ODcyOTFjM2Y5MzE4MDdhZjM1M2Y3NC4uZmZlNjMwMDNkMDdjOTVh
ZmNjMWY0N2NlMTQyOGQ0NWQ1NmQ4ZjZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJj
aC5oCkBAIC0zMiwyMCArMzIsMTkgQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUgZGVmaW5lcyB0aGUg
R1RFU1RfT1NfKiBtYWNyby4KIC8vIEl0IGlzIHNlcGFyYXRlIGZyb20gZ3Rlc3QtcG9ydC5oIHNv
IHRoYXQgY3VzdG9tL2d0ZXN0LXBvcnQuaCBjYW4gaW5jbHVkZSBpdC4KIAotI2lmbmRlZiBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwotI2RlZmluZSBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXworI2lmbmRlZiBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCisjZGVmaW5l
IEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KIAog
Ly8gRGV0ZXJtaW5lcyB0aGUgcGxhdGZvcm0gb24gd2hpY2ggR29vZ2xlIFRlc3QgaXMgY29tcGls
ZWQuCiAjaWZkZWYgX19DWUdXSU5fXwogIyBkZWZpbmUgR1RFU1RfT1NfQ1lHV0lOIDEKLSNlbGlm
IGRlZmluZWQgX19TWU1CSUFOMzJfXwotIyBkZWZpbmUgR1RFU1RfT1NfU1lNQklBTiAxCisjIGVs
aWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pIHx8IGRlZmluZWQo
X19NSU5HVzY0X18pCisjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCisjICBkZWZp
bmUgR1RFU1RfT1NfV0lORE9XUyAxCiAjZWxpZiBkZWZpbmVkIF9XSU4zMgogIyBkZWZpbmUgR1RF
U1RfT1NfV0lORE9XUyAxCiAjIGlmZGVmIF9XSU4zMl9XQ0UKICMgIGRlZmluZSBHVEVTVF9PU19X
SU5ET1dTX01PQklMRSAxCi0jIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRlZmluZWQoX19N
SU5HVzMyX18pCi0jICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCiAjIGVsaWYgZGVm
aW5lZChXSU5BUElfRkFNSUxZKQogIyAgaW5jbHVkZSA8d2luYXBpZmFtaWx5Lmg+CiAjICBpZiBX
SU5BUElfRkFNSUxZX1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0RFU0tUT1ApCkBAIC02NSwx
NSArNjQsMjIgQEAKICMgZWxzZQogIyAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAx
CiAjIGVuZGlmICAvLyBfV0lOMzJfV0NFCisjZWxpZiBkZWZpbmVkIF9fT1MyX18KKyMgZGVmaW5l
IEdURVNUX09TX09TMiAxCiAjZWxpZiBkZWZpbmVkIF9fQVBQTEVfXwogIyBkZWZpbmUgR1RFU1Rf
T1NfTUFDIDEKKyMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjIGlmIFRBUkdFVF9P
U19JUEhPTkUKICMgIGRlZmluZSBHVEVTVF9PU19JT1MgMQogIyBlbmRpZgorI2VsaWYgZGVmaW5l
ZCBfX0RyYWdvbkZseV9fCisjIGRlZmluZSBHVEVTVF9PU19EUkFHT05GTFkgMQogI2VsaWYgZGVm
aW5lZCBfX0ZyZWVCU0RfXwogIyBkZWZpbmUgR1RFU1RfT1NfRlJFRUJTRCAxCiAjZWxpZiBkZWZp
bmVkIF9fRnVjaHNpYV9fCiAjIGRlZmluZSBHVEVTVF9PU19GVUNIU0lBIDEKKyNlbGlmIGRlZmlu
ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKKyMgZGVmaW5lIEdU
RVNUX09TX0dOVV9LRlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fbGludXhfXwogIyBkZWZpbmUg
R1RFU1RfT1NfTElOVVggMQogIyBpZiBkZWZpbmVkIF9fQU5EUk9JRF9fCkBAIC05NSw2ICsxMDEs
MTIgQEAKICMgZGVmaW5lIEdURVNUX09TX09QRU5CU0QgMQogI2VsaWYgZGVmaW5lZCBfX1FOWF9f
CiAjIGRlZmluZSBHVEVTVF9PU19RTlggMQorI2VsaWYgZGVmaW5lZChfX0hBSUtVX18pCisjZGVm
aW5lIEdURVNUX09TX0hBSUtVIDEKKyNlbGlmIGRlZmluZWQgRVNQODI2NgorI2RlZmluZSBHVEVT
VF9PU19FU1A4MjY2IDEKKyNlbGlmIGRlZmluZWQgRVNQMzIKKyNkZWZpbmUgR1RFU1RfT1NfRVNQ
MzIgMQogI2VuZGlmICAvLyBfX0NZR1dJTl9fCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBv
cnQuaAppbmRleCA3ODY0OTdkODU0Yzk3ZjFiNmFiOTM3MmEyNDFjMWZhMTU1YTMwYTU0Li4xYzBk
ZWRkZDcwMGE1Y2VmZWY2YTJiZjUzZGE5YjNjZDA4NDk5NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBv
cnQuaApAQCAtNDAsOCArNDAsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVM
RVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2lm
bmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2Rl
ZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXwogCiAv
LyBFbnZpcm9ubWVudC1kZXNjcmliaW5nIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTcyLDEwICs3Miw2IEBACiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlzL2lzbid0IGF2YWlsYWJsZS4KIC8vICAgR1RFU1RfSEFTX0VYQ0VQVElPTlMgICAgIC0g
RGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IGV4Y2VwdGlvbnMKIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJlIGVuYWJsZWQuCi0vLyAgIEdURVNUX0hBU19HTE9CQUxf
U1RSSU5HICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA6OnN0cmluZwotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUKLS8vICAgR1RF
U1RfSEFTX0dMT0JBTF9XU1RSSU5HIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0
IDo6d3N0cmluZwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFp
bGFibGUKIC8vICAgR1RFU1RfSEFTX1BPU0lYX1JFICAgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0
byBpbmRpY2F0ZSB0aGF0IFBPU0lYIHJlZ3VsYXIKIC8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhwcmVzc2lvbnMgYXJlL2FyZW4ndCBhdmFpbGFibGUuCiAvLyAgIEdURVNUX0hBU19Q
VEhSRUFEICAgICAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA8cHRocmVh
ZC5oPgpAQCAtODUsOCArODEsNiBAQAogLy8gICBHVEVTVF9IQVNfU1REX1dTVFJJTkcgICAgLSBE
ZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQKIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RkOjp3c3RyaW5nIGRvZXMvZG9lc24ndCB3b3JrIChHb29nbGUgVGVzdCBjYW4K
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB3aGVyZSBzdGQ6OndzdHJp
bmcgaXMgdW5hdmFpbGFibGUpLgotLy8gICBHVEVTVF9IQVNfVFIxX1RVUExFICAgICAgLSBEZWZp
bmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRyMTo6dHVwbGUKLS8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXMvaXNuJ3QgYXZhaWxhYmxlLgogLy8gICBHVEVTVF9IQVNfU0VIICAgICAg
ICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVyIHN1cHBvcnRzIE1pY3Jvc29mdCdzICJT
dHJ1Y3R1cmVkCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiBIYW5k
bGluZyIuCkBAIC05NCwxMiArODgsNiBAQAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
LSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIHN1cHBvcnRzIEkvTyBzdHJlYW0gcmVkaXJlY3Rp
b24gdXNpbmcKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwKCkgYW5kIGR1cDIo
KS4KLS8vICAgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBp
bmRpY2F0ZSB3aGV0aGVyIEdvb2dsZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
ZXN0J3Mgb3duIHRyMSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXNlZC4gIFVudXNlZCB3aGVuIHRoZSB1c2VyIHNldHMKLS8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfSEFTX1RSMV9UVVBMRSB0byAwLgot
Ly8gICBHVEVTVF9MQU5HX0NYWDExICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGlj
YXRlIHRoYXQgR29vZ2xlIFRlc3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMg
YnVpbGRpbmcgaW4gQysrMTEvQysrOTggbW9kZS4KIC8vICAgR1RFU1RfTElOS0VEX0FTX1NIQVJF
RF9MSUJSQVJZCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERlZmluZSB0byAxIHdo
ZW4gY29tcGlsaW5nIHRlc3RzIHRoYXQgdXNlCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdvb2dsZSBUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duIGFzCkBAIC0xMjUsOCAr
MTEzLDExIEBACiAvLwogLy8gICBHVEVTVF9PU19BSVggICAgICAtIElCTSBBSVgKIC8vICAgR1RF
U1RfT1NfQ1lHV0lOICAgLSBDeWd3aW4KKy8vICAgR1RFU1RfT1NfRFJBR09ORkxZIC0gRHJhZ29u
Rmx5QlNECiAvLyAgIEdURVNUX09TX0ZSRUVCU0QgIC0gRnJlZUJTRAogLy8gICBHVEVTVF9PU19G
VUNIU0lBICAtIEZ1Y2hzaWEKKy8vICAgR1RFU1RfT1NfR05VX0tGUkVFQlNEIC0gR05VL2tGcmVl
QlNECisvLyAgIEdURVNUX09TX0hBSUtVICAgIC0gSGFpa3UKIC8vICAgR1RFU1RfT1NfSFBVWCAg
ICAgLSBIUC1VWAogLy8gICBHVEVTVF9PU19MSU5VWCAgICAtIExpbnV4CiAvLyAgICAgR1RFU1Rf
T1NfTElOVVhfQU5EUk9JRCAtIEdvb2dsZSBBbmRyb2lkCkBAIC0xMzUsOSArMTI2LDkgQEAKIC8v
ICAgR1RFU1RfT1NfTkFDTCAgICAgLSBHb29nbGUgTmF0aXZlIENsaWVudCAoTmFDbCkKIC8vICAg
R1RFU1RfT1NfTkVUQlNEICAgLSBOZXRCU0QKIC8vICAgR1RFU1RfT1NfT1BFTkJTRCAgLSBPcGVu
QlNECisvLyAgIEdURVNUX09TX09TMiAgICAgIC0gT1MvMgogLy8gICBHVEVTVF9PU19RTlggICAg
ICAtIFFOWAogLy8gICBHVEVTVF9PU19TT0xBUklTICAtIFN1biBTb2xhcmlzCi0vLyAgIEdURVNU
X09TX1NZTUJJQU4gIC0gU3ltYmlhbgogLy8gICBHVEVTVF9PU19XSU5ET1dTICAtIFdpbmRvd3Mg
KERlc2t0b3AsIE1pbkdXLCBvciBNb2JpbGUpCiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19ERVNL
VE9QICAtIFdpbmRvd3MgRGVza3RvcAogLy8gICAgIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgICAg
LSBNaW5HVwpAQCAtMTQ2LDcgKzEzNyw3IEBACiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19SVCAg
ICAgICAtIFdpbmRvd3MgU3RvcmUgQXBwL1dpblJUCiAvLyAgIEdURVNUX09TX1pPUyAgICAgIC0g
ei9PUwogLy8KLS8vIEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwgTGludXgsIE1heCBPUyBY
LCBhbmQgV2luZG93cyBoYXZlIHRoZQorLy8gQW1vbmcgdGhlIHBsYXRmb3JtcywgQ3lnd2luLCBM
aW51eCwgTWFjIE9TIFgsIGFuZCBXaW5kb3dzIGhhdmUgdGhlCiAvLyBtb3N0IHN0YWJsZSBzdXBw
b3J0LiAgU2luY2UgY29yZSBtZW1iZXJzIG9mIHRoZSBHb29nbGUgVGVzdCBwcm9qZWN0CiAvLyBk
b24ndCBoYXZlIGFjY2VzcyB0byBvdGhlciBwbGF0Zm9ybXMsIHN1cHBvcnQgZm9yIHRoZW0gbWF5
IGJlIGxlc3MKIC8vIHN0YWJsZS4gIElmIHlvdSBub3RpY2UgYW55IHByb2JsZW1zIG9uIHlvdXIg
cGxhdGZvcm0sIHBsZWFzZSBub3RpZnkKQEAgLTE3Miw4ICsxNjMsNiBAQAogLy8gICBFWFBFQ1Rf
REVBVEgoRG9Tb21ldGhpbmdEZWFkbHkoKSk7CiAvLyAjZW5kaWYKIC8vCi0vLyAgIEdURVNUX0hB
U19DT01CSU5FICAgICAgLSB0aGUgQ29tYmluZSgpIGZ1bmN0aW9uIChmb3IgdmFsdWUtcGFyYW1l
dGVyaXplZAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMpCiAvLyAgIEdURVNU
X0hBU19ERUFUSF9URVNUICAgLSBkZWF0aCB0ZXN0cwogLy8gICBHVEVTVF9IQVNfVFlQRURfVEVT
VCAgIC0gdHlwZWQgdGVzdHMKIC8vICAgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUCAtIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0cwpAQCAtMTg0LDcgKzE3Myw2IEBACiAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZpbmUgdGhlbXNlbHZlcy4KIC8vICAgR1RFU1RfVVNFU19TSU1QTEVfUkUg
ICAtIG91ciBvd24gc2ltcGxlIHJlZ2V4IGlzIHVzZWQ7CiAvLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGUgYWJvdmUgUkVcYihzKSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgotLy8gICBH
VEVTVF9DQU5fQ09NUEFSRV9OVUxMIC0gYWNjZXB0cyB1bnR5cGVkIE5VTEwgaW4gRVhQRUNUX0VR
KCkuCiAKIC8vIE1pc2MgcHVibGljIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0y
MDIsMzEgKzE5MCwzMiBAQAogLy8gICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAtIGZv
ciBkaXNhYmxpbmcgYSBnY2Mgd2FybmluZy4KIC8vICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8g
IC0gZGVjbGFyZXMgdGhhdCBhIGNsYXNzJyBpbnN0YW5jZXMgb3IgYQogLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXJpYWJsZSBkb24ndCBoYXZlIHRvIGJlIHVzZWQuCi0vLyAgIEdU
RVNUX0RJU0FMTE9XX0FTU0lHTl8gICAtIGRpc2FibGVzIG9wZXJhdG9yPS4KKy8vICAgR1RFU1Rf
RElTQUxMT1dfQVNTSUdOXyAgIC0gZGlzYWJsZXMgY29weSBvcGVyYXRvcj0uCiAvLyAgIEdURVNU
X0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8gLSBkaXNhYmxlcyBjb3B5IGN0b3IgYW5kIG9wZXJh
dG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BU1NJR05fICAgLSBkaXNhYmxlcyBtb3Zl
IG9wZXJhdG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BTkRfQVNTSUdOXyAtIGRpc2Fi
bGVzIG1vdmUgY3RvciBhbmQgb3BlcmF0b3I9LgogLy8gICBHVEVTVF9NVVNUX1VTRV9SRVNVTFRf
ICAgLSBkZWNsYXJlcyB0aGF0IGEgZnVuY3Rpb24ncyByZXN1bHQgbXVzdCBiZSB1c2VkLgogLy8g
ICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfIC0gc3RhcnQgY29kZSBzZWN0aW9u
IHdoZXJlIE1TVkMgQzQxMjcgaXMKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1cHByZXNzZWQgKGNvbnN0YW50IGNvbmRpdGlvbmFsKS4KIC8vICAgR1RFU1RfSU5U
RU5USU9OQUxfQ09OU1RfQ09ORF9QT1BfICAtIGZpbmlzaCBjb2RlIHNlY3Rpb24gd2hlcmUgTVNW
QyBDNDEyNwogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgc3Vw
cHJlc3NlZC4KLS8vCi0vLyBDKysxMSBmZWF0dXJlIHdyYXBwZXJzOgotLy8KLS8vICAgdGVzdGlu
Zzo6aW50ZXJuYWw6OmZvcndhcmQgLSBwb3J0YWJpbGl0eSB3cmFwcGVyIGZvciBzdGQ6OmZvcndh
cmQuCi0vLyAgIHRlc3Rpbmc6OmludGVybmFsOjptb3ZlICAtIHBvcnRhYmlsaXR5IHdyYXBwZXIg
Zm9yIHN0ZDo6bW92ZS4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAtIGZvciBlbmFibGlu
ZyBVbml2ZXJzYWxQcmludGVyPHN0ZDo6YW55PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5pdmVyc2FsUHJpbnRlcjxhYnNsOjphbnk+IHNwZWNpYWxpemF0aW9ucy4KKy8vICAg
R1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMIC0gZm9yIGVuYWJsaW5nIFVuaXZlcnNhbFByaW50
ZXI8c3RkOjpvcHRpb25hbD4KKy8vICAgb3IKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5pdmVyc2FsUHJpbnRlcjxhYnNsOjpvcHRpb25hbD4KKy8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3BlY2lhbGl6YXRpb25zLgorLy8gICBHVEVTVF9JTlRFUk5BTF9I
QVNfU1RSSU5HX1ZJRVcgLSBmb3IgZW5hYmxpbmcgTWF0Y2hlcjxzdGQ6OnN0cmluZ192aWV3PiBv
cgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGFic2w6OnN0
cmluZ192aWV3PgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFs
aXphdGlvbnMuCisvLyAgIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIC0gZm9yIGVuYWJsaW5n
IFVuaXZlcnNhbFByaW50ZXI8c3RkOjp2YXJpYW50PiBvcgorLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVuaXZlcnNhbFByaW50ZXI8YWJzbDo6dmFyaWFudD4KKy8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCiAvLwogLy8gU3luY2hyb25p
emF0aW9uOgogLy8gICBNdXRleCwgTXV0ZXhMb2NrLCBUaHJlYWRMb2NhbCwgR2V0VGhyZWFkQ291
bnQoKQogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzeW5jaHJvbml6YXRpb24gcHJp
bWl0aXZlcy4KIC8vCi0vLyBUZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nOgotLy8gICBpc19wb2lu
dGVyICAgICAtIGFzIGluIFRSMTsgbmVlZGVkIG9uIFN5bWJpYW4gYW5kIElCTSBYTCBDL0MrKyBv
bmx5LgotLy8gICBJdGVyYXRvclRyYWl0cyAtIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2Ygc3Rk
OjppdGVyYXRvcl90cmFpdHMsIHdoaWNoCi0vLyAgICAgICAgICAgICAgICAgICAgaXMgbm90IGF2
YWlsYWJsZSBpbiBsaWJDc3RkIHdoZW4gY29tcGlsZWQgd2l0aCBTdW4gQysrLgotLy8KLS8vIFNt
YXJ0IHBvaW50ZXJzOgotLy8gICBzY29wZWRfcHRyICAgICAtIGFzIGluIFRSMi4KLS8vCiAvLyBS
ZWd1bGFyIGV4cHJlc3Npb25zOgogLy8gICBSRSAgICAgICAgICAgICAtIGEgc2ltcGxlIHJlZ3Vs
YXIgZXhwcmVzc2lvbiBjbGFzcyB1c2luZyB0aGUgUE9TSVgKIC8vICAgICAgICAgICAgICAgICAg
ICBFeHRlbmRlZCBSZWd1bGFyIEV4cHJlc3Npb24gc3ludGF4IG9uIFVOSVgtbGlrZSBwbGF0Zm9y
bXMKQEAgLTI0OCw4ICsyMzcsNyBAQAogLy8KIC8vIEludGVnZXIgdHlwZXM6CiAvLyAgIFR5cGVX
aXRoU2l6ZSAgIC0gbWFwcyBhbiBpbnRlZ2VyIHRvIGEgaW50IHR5cGUuCi0vLyAgIEludDMyLCBV
SW50MzIsIEludDY0LCBVSW50NjQsIFRpbWVJbk1pbGxpcwotLy8gICAgICAgICAgICAgICAgICAt
IGludGVnZXJzIG9mIGtub3duIHNpemVzLgorLy8gICBUaW1lSW5NaWxsaXMgICAtIGludGVnZXJz
IG9mIGtub3duIHNpemVzLgogLy8gICBCaWdnZXN0SW50ICAgICAtIHRoZSBiaWdnZXN0IHNpZ25l
ZCBpbnRlZ2VyIHR5cGUuCiAvLwogLy8gQ29tbWFuZC1saW5lIHV0aWxpdGllczoKQEAgLTI2MCwx
NCArMjQ4LDI1IEBACiAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSB1dGlsaXRpZXM6CiAvLyAgIEdl
dEVudigpICAgICAgICAgICAgIC0gZ2V0cyB0aGUgdmFsdWUgb2YgYW4gZW52aXJvbm1lbnQgdmFy
aWFibGUuCiAvLyAgIEJvb2xGcm9tR1Rlc3RFbnYoKSAgIC0gcGFyc2VzIGEgYm9vbCBlbnZpcm9u
bWVudCB2YXJpYWJsZS4KLS8vICAgSW50MzJGcm9tR1Rlc3RFbnYoKSAgLSBwYXJzZXMgYW4gSW50
MzIgZW52aXJvbm1lbnQgdmFyaWFibGUuCisvLyAgIEludDMyRnJvbUdUZXN0RW52KCkgIC0gcGFy
c2VzIGFuIGludDMyX3QgZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAgIFN0cmluZ0Zyb21HVGVz
dEVudigpIC0gcGFyc2VzIGEgc3RyaW5nIGVudmlyb25tZW50IHZhcmlhYmxlLgorLy8KKy8vIERl
cHJlY2F0aW9uIHdhcm5pbmdzOgorLy8gICBHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3Nh
Z2UpIC0gYXR0cmlidXRlIG1hcmtpbmcgYSBmdW5jdGlvbiBhcworLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZDsgY2FsbGluZyBhIG1hcmtlZCBmdW5j
dGlvbgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGdl
bmVyYXRlIGEgY29tcGlsZXIgd2FybmluZwogCiAjaW5jbHVkZSA8Y3R5cGUuaD4gICAvLyBmb3Ig
aXNzcGFjZSwgZXRjCiAjaW5jbHVkZSA8c3RkZGVmLmg+ICAvLyBmb3IgcHRyZGlmZl90Ci0jaW5j
bHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4K
ICNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGNlcnJubz4KKyNpbmNsdWRlIDxjc3Rk
aW50PgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKwogI2lmbmRl
ZiBfV0lOMzJfV0NFCiAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgogIyBpbmNsdWRlIDxzeXMvc3Rh
dC5oPgpAQCAtMjc4LDE3ICsyNzcsMTUgQEAKICMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxz
Lmg+CiAjZW5kaWYKIAotLy8gQnJpbmdzIGluIHRoZSBkZWZpbml0aW9uIG9mIEhBU19HTE9CQUxf
U1RSSU5HLiAgVGhpcyBtdXN0IGJlIGRvbmUKLS8vIEJFRk9SRSB3ZSB0ZXN0IEhBU19HTE9CQUxf
U1RSSU5HLgotI2luY2x1ZGUgPHN0cmluZz4gIC8vIE5PTElOVAotI2luY2x1ZGUgPGFsZ29yaXRo
bT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPGlvc3RyZWFtPiAgLy8gTk9MSU5UCi0jaW5jbHVkZSA8
c3N0cmVhbT4gIC8vIE5PTElOVAotI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8bG9jYWxl
PgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+ICAvLyBOT0xJTlQKKyNpbmNs
dWRlIDx0dXBsZT4KICNpbmNsdWRlIDx2ZWN0b3I+ICAvLyBOT0xJTlQKIAotI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9y
dC1hcmNoLmgiCiAKICNpZiAhZGVmaW5lZChHVEVTVF9ERVZfRU1BSUxfKQogIyBkZWZpbmUgR1RF
U1RfREVWX0VNQUlMXyAiZ29vZ2xldGVzdGZyYW1ld29ya0BAZ29vZ2xlZ3JvdXBzLmNvbSIKQEAg
LTMxNSwxNCArMzEyLDE0IEBACiAvLyAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hf
KDQ4MDAgNDM4NSkKIC8vICAgLyogY29kZSB0aGF0IHRyaWdnZXJzIHdhcm5pbmdzIEM0ODAwIGFu
ZCBDNDM4NSAqLwogLy8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNpZiBf
TVNDX1ZFUiA+PSAxNDAwCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKICMgZGVmaW5lIEdURVNUX0RJ
U0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKHdhcm5pbmdzKSBcCiAgICAgX19wcmFnbWEod2Fybmlu
ZyhwdXNoKSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX19wcmFnbWEod2FybmluZyhk
aXNhYmxlOiB3YXJuaW5ncykpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19Q
T1BfKCkgICAgICAgICAgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcocG9wKSkKICNlbHNlCi0vLyBP
bGRlciB2ZXJzaW9ucyBvZiBNU1ZDIGRvbid0IGhhdmUgX19wcmFnbWEuCisvLyBOb3QgYWxsIGNv
bXBpbGVycyBhcmUgTVNWQwogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVT
SF8od2FybmluZ3MpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkK
ICNlbmRpZgpAQCAtMzQzLDgwICszNDAsNiBAQAogICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BPUF8oKQogI2VuZGlmCiAKLSNpZm5kZWYgR1RFU1RfTEFOR19DWFgxMQotLy8gZ2NjIGFu
ZCBjbGFuZyBkZWZpbmUgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gd2hlbgotLy8gLXN0ZD17
YyxnbnV9Kyt7MHgsMTF9IGlzIHBhc3NlZC4gIFRoZSBDKysxMSBzdGFuZGFyZCBzcGVjaWZpZXMg
YQotLy8gdmFsdWUgZm9yIF9fY3BsdXNwbHVzLCBhbmQgcmVjZW50IHZlcnNpb25zIG9mIGNsYW5n
LCBnY2MsIGFuZAotLy8gcHJvYmFibHkgb3RoZXIgY29tcGlsZXJzIHNldCB0aGF0IHRvbyBpbiBD
KysxMSBtb2RlLgotIyBpZiBfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXyB8fCBfX2NwbHVzcGx1
cyA+PSAyMDExMDNMIHx8IF9NU0NfVkVSID49IDE5MDAKLS8vIENvbXBpbGluZyBpbiBhdCBsZWFz
dCBDKysxMSBtb2RlLgotIyAgZGVmaW5lIEdURVNUX0xBTkdfQ1hYMTEgMQotIyBlbHNlCi0jICBk
ZWZpbmUgR1RFU1RfTEFOR19DWFgxMSAwCi0jIGVuZGlmCi0jZW5kaWYKLQotLy8gRGlzdGluY3Qg
ZnJvbSBDKysxMSBsYW5ndWFnZSBzdXBwb3J0LCBzb21lIGVudmlyb25tZW50cyBkb24ndCBwcm92
aWRlCi0vLyBwcm9wZXIgQysrMTEgbGlicmFyeSBzdXBwb3J0LiBOb3RhYmx5LCBpdCdzIHBvc3Np
YmxlIHRvIGJ1aWxkIGluCi0vLyBDKysxMSBtb2RlIHdoZW4gdGFyZ2V0aW5nIE1hYyBPUyBYIDEw
LjYsIHdoaWNoIGhhcyBhbiBvbGQgbGlic3RkYysrCi0vLyB3aXRoIG5vIEMrKzExIHN1cHBvcnQu
Ci0vLwotLy8gbGlic3RkYysrIGhhcyBzdWZmaWNpZW50IEMrKzExIHN1cHBvcnQgYXMgb2YgR0ND
IDQuNi4wLCBfX0dMSUJDWFhfXwotLy8gMjAxMTAzMjUsIGJ1dCBtYWludGVuYW5jZSByZWxlYXNl
cyBpbiB0aGUgNC40IGFuZCA0LjUgc2VyaWVzIGZvbGxvd2VkCi0vLyB0aGlzIGRhdGUsIHNvIGNo
ZWNrIGZvciB0aG9zZSB2ZXJzaW9ucyBieSB0aGVpciBkYXRlIHN0YW1wcy4KLS8vIGh0dHBzOi8v
Z2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2FiaS5odG1sI2FiaS52ZXJz
aW9uaW5nCi0jaWYgR1RFU1RfTEFOR19DWFgxMSAmJiBcCi0gICAgKCFkZWZpbmVkKF9fR0xJQkNY
WF9fKSB8fCAoIFwKLSAgICAgICAgX19HTElCQ1hYX18gPj0gMjAxMTAzMjV1bCAmJiAgLyogR0ND
ID49IDQuNi4wICovIFwKLSAgICAgICAgLyogQmxhY2tsaXN0IG9mIHBhdGNoIHJlbGVhc2VzIG9m
IG9sZGVyIGJyYW5jaGVzOiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDE2dWwg
JiYgIC8qIEdDQyA0LjQuNiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwMzEzdWwg
JiYgIC8qIEdDQyA0LjQuNyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDI4dWwg
JiYgIC8qIEdDQyA0LjUuMyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwNzAydWwp
KSAgIC8qIEdDQyA0LjUuNCAqLwotIyBkZWZpbmUgR1RFU1RfU1RETElCX0NYWDExIDEKLSNlbmRp
ZgotCi0vLyBPbmx5IHVzZSBDKysxMSBsaWJyYXJ5IGZlYXR1cmVzIGlmIHRoZSBsaWJyYXJ5IHBy
b3ZpZGVzIHRoZW0uCi0jaWYgR1RFU1RfU1RETElCX0NYWDExCi0jIGRlZmluZSBHVEVTVF9IQVNf
U1REX0JFR0lOX0FORF9FTkRfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNU
XyAxCi0jIGlmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19GVUxMX1ZFUiA+PSAxOTAwMjM4
MjQpCi0vLyB3b3JrcyBvbmx5IHdpdGggVlMyMDE1VTIgYW5kIGJldHRlcgotIyAgIGRlZmluZSBH
VEVTVF9IQVNfU1REX0ZVTkNUSU9OXyAxCi0jIGVuZGlmCi0jIGRlZmluZSBHVEVTVF9IQVNfU1RE
X0lOSVRJQUxJWkVSX0xJU1RfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfTU9WRV8gMQotIyBk
ZWZpbmUgR1RFU1RfSEFTX1NURF9VTklRVUVfUFRSXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1RE
X1NIQVJFRF9QVFJfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19VTk9SREVSRURfTUFQXyAxCi0jIGRl
ZmluZSBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8gMQotI2VuZGlmCi0KLS8vIEMrKzExIHNwZWNp
ZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4KLS8vIFNvbWUgcGxhdGZvcm1z
IHN0aWxsIG1pZ2h0IG5vdCBoYXZlIGl0LCBob3dldmVyLgotI2lmIEdURVNUX0xBTkdfQ1hYMTEK
LSMgZGVmaW5lIEdURVNUX0hBU19TVERfVFVQTEVfIDEKLSMgaWYgZGVmaW5lZChfX2NsYW5nX18p
Ci0vLyBJbnNwaXJlZCBieQotLy8gaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0xhbmd1YWdl
RXh0ZW5zaW9ucy5odG1sI2luY2x1ZGUtZmlsZS1jaGVja2luZy1tYWNyb3MKLSMgIGlmIGRlZmlu
ZWQoX19oYXNfaW5jbHVkZSkgJiYgIV9faGFzX2luY2x1ZGUoPHR1cGxlPikKLSMgICB1bmRlZiBH
VEVTVF9IQVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQot
Ly8gSW5zcGlyZWQgYnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcAotIyAgaWYg
ZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPCA1MjAKLSMgICB1bmRlZiBHVEVT
VF9IQVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9fR0xJQkNYWF9fKQot
Ly8gSW5zcGlyZWQgYnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcCwKLS8vIGh0
dHA6Ly9nY2MuZ251Lm9yZy9nY2MtNC4yL2NoYW5nZXMuaHRtbCBhbmQKLS8vIGh0dHBzOi8vd2Vi
LmFyY2hpdmUub3JnL3dlYi8yMDE0MDIyNzA0NDQyOS9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xp
YnN0ZGMrKy9tYW51YWwvYmswMXB0MDFjaDAxLmh0bWwjbWFudWFsLmludHJvLnN0YXR1cy5zdGFu
ZGFyZC4yMDB4Ci0jICBpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVD
X01JTk9SX18gPCAyKQotIyAgIHVuZGVmIEdURVNUX0hBU19TVERfVFVQTEVfCi0jICBlbmRpZgot
IyBlbmRpZgotI2VuZGlmCi0KIC8vIEJyaW5ncyBpbiBkZWZpbml0aW9ucyBmb3IgZnVuY3Rpb25z
IHVzZWQgaW4gdGhlIHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeAogLy8gbmFtZXNwYWNlIChyZWFk
LCB3cml0ZSwgY2xvc2UsIGNoZGlyLCBpc2F0dHksIHN0YXQpLiBXZSBkbyBub3QgY3VycmVudGx5
CiAvLyB1c2UgdGhlbSBvbiBXaW5kb3dzIE1vYmlsZS4KQEAgLTQ0OSw3ICszNzIsOCBAQCB0eXBl
ZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsK
ICMgIGluY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+ICAvLyBOT0xJTlQKICNlbmRpZgogCi0v
LyBEZWZpbmVzIHRoaXMgdG8gdHJ1ZSBpZmYgR29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCByZWd1
bGFyIGV4cHJlc3Npb25zLgorLy8gRGVmaW5lcyB0aGlzIHRvIHRydWUgaWYgYW5kIG9ubHkgaWYg
R29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCByZWd1bGFyCisvLyBleHByZXNzaW9ucy4KICNpZm5k
ZWYgR1RFU1RfSEFTX1BPU0lYX1JFCiAjIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQKIC8vIE9u
IEFuZHJvaWQsIDxyZWdleC5oPiBpcyBvbmx5IGF2YWlsYWJsZSBzdGFydGluZyB3aXRoIEdpbmdl
cmJyZWFkLgpAQCAtNDkwLDcgKzQxNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxf
U0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwg
dXMgd2hldGhlciBleGNlcHRpb25zIGFyZSBlbmFibGVkLCBzbyB3ZSBuZWVkCiAvLyB0byBmaWd1
cmUgaXQgb3V0LgogIyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKF9DUFBVTldJTkQp
Ci0vLyBNU1ZDIGRlZmluZXMgX0NQUFVOV0lORCB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFi
bGVkLgorLy8gTVNWQyBkZWZpbmVzIF9DUFBVTldJTkQgdG8gMSBpZiBhbmQgb25seSBpZiBleGNl
cHRpb25zIGFyZSBlbmFibGVkLgogIyAgZGVmaW5lIEdURVNUX0hBU19FWENFUFRJT05TIDEKICMg
ZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKIC8vIEMrK0J1aWxkZXIncyBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgU1RMIHVzZXMgdGhlIF9IQVNfRVhDRVBUSU9OUwpAQCAtNTAxLDE2ICs0MjUsMTcg
QEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NF
Q1RJT047CiAjICBlbmRpZiAgLy8gX0hBU19FWENFUFRJT05TCiAjICBkZWZpbmUgR1RFU1RfSEFT
X0VYQ0VQVElPTlMgX0hBU19FWENFUFRJT05TCiAjIGVsaWYgZGVmaW5lZChfX2NsYW5nX18pCi0v
LyBjbGFuZyBkZWZpbmVzIF9fRVhDRVBUSU9OUyBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCBi
ZWZvcmUgY2xhbmcgMjIwNzE0LAotLy8gYnV0IGlmZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRl
ciB0aGF0LiBJbiBPYmotQysrIGZpbGVzLCB0aGVyZSBjYW4gYmUKLS8vIGNsZWFudXBzIGZvciBP
YmpDIGV4Y2VwdGlvbnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmIEMrKyBleGNl
cHRpb25zCi0vLyBhcmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNl
cHRpb25zKSB3aGljaCBjaGVja3MgZm9yIEMrKwotLy8gZXhjZXB0aW9ucyBzdGFydGluZyBhdCBj
bGFuZyByMjA2MzUyLCBidXQgd2hpY2ggY2hlY2tlZCBmb3IgY2xlYW51cHMgcHJpb3IgdG8KLS8v
IHRoYXQuIFRvIHJlbGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3
aXRoIGNsYW5nLCBjaGVjayBmb3IKKy8vIGNsYW5nIGRlZmluZXMgX19FWENFUFRJT05TIGlmIGFu
ZCBvbmx5IGlmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYmVmb3JlIGNsYW5nCisvLyAyMjA3MTQs
IGJ1dCBpZiBhbmQgb25seSBpZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBP
YmotQysrIGZpbGVzLAorLy8gdGhlcmUgY2FuIGJlIGNsZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlv
bnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmCisvLyBDKysgZXhjZXB0aW9ucyBh
cmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSB3aGlj
aAorLy8gY2hlY2tzIGZvciBDKysgZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFuZyByMjA2MzUy
LCBidXQgd2hpY2ggY2hlY2tlZCBmb3IKKy8vIGNsZWFudXBzIHByaW9yIHRvIHRoYXQuIFRvIHJl
bGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRoCisvLyBjbGFu
ZywgY2hlY2sgZm9yCiAvLyBfX0VYQ0VQVElPTlMgJiYgX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0
aW9ucykuCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgKF9fRVhDRVBUSU9OUyAmJiBf
X2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSkKICMgZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAm
JiBfX0VYQ0VQVElPTlMKLS8vIGdjYyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmZiBleGNl
cHRpb25zIGFyZSBlbmFibGVkLgorLy8gZ2NjIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWYg
YW5kIG9ubHkgaWYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNf
RVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX1NVTlBST19DQykKIC8vIFN1biBQcm8gQ0Mg
c3VwcG9ydHMgZXhjZXB0aW9ucy4gIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNvbXBpbGUtdGltZSB3
YXkgb2YKQEAgLTUxOCw3ICs0NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NF
Q1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIC8vIHRoZXkgYXJlIGVuYWJsZWQgdW5sZXNz
IHRoZSB1c2VyIHRlbGxzIHVzIG90aGVyd2lzZS4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBU
SU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX0lCTUNQUF9fKSAmJiBfX0VYQ0VQVElPTlMKLS8vIHhs
QyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgor
Ly8geGxDIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkgaWYgZXhjZXB0aW9u
cyBhcmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYg
ZGVmaW5lZChfX0hQX2FDQykKIC8vIEV4Y2VwdGlvbiBoYW5kbGluZyBpcyBpbiBlZmZlY3QgYnkg
ZGVmYXVsdCBpbiBIUCBhQ0MgY29tcGlsZXIuIEl0IGhhcyB0bwpAQCAtNTMxLDQwICs0NTYsMTgg
QEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NF
Q1RJT047CiAjIGVuZGlmICAvLyBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFO
RENfXykKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAotI2lmICFkZWZpbmVkKEdU
RVNUX0hBU19TVERfU1RSSU5HKQotLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIHRoaXMgbWFj
cm8gYW55IGxvbmdlciwgd2Uga2VlcCBpdCBpbiBjYXNlCi0vLyBzb21lIGNsaWVudHMgc3RpbGwg
ZGVwZW5kIG9uIGl0LgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9TVFJJTkcgMQotI2VsaWYgIUdU
RVNUX0hBU19TVERfU1RSSU5HCi0vLyBUaGUgdXNlciB0b2xkIHVzIHRoYXQgOjpzdGQ6OnN0cmlu
ZyBpc24ndCBhdmFpbGFibGUuCi0jIGVycm9yICI6OnN0ZDo6c3RyaW5nIGlzbid0IGF2YWlsYWJs
ZS4iCi0jZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5HKQotCi0jaWZuZGVm
IEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0jIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklO
RyAwCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KICNpZm5kZWYgR1RFU1Rf
SEFTX1NURF9XU1RSSU5HCiAvLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIDo6c3Rk
Ojp3c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAogLy8gdG8gZmlndXJlIGl0IG91dC4K
LS8vIEZJWE1FOiB1c2VzIGF1dG9jb25mIHRvIGRldGVjdCB3aGV0aGVyIDo6c3RkOjp3c3RyaW5n
Ci0vLyAgIGlzIGF2YWlsYWJsZS4KLQogLy8gQ3lnd2luIDEuNyBhbmQgYmVsb3cgZG9lc24ndCBz
dXBwb3J0IDo6c3RkOjp3c3RyaW5nLgogLy8gU29sYXJpcycgbGliYysrIGRvZXNuJ3Qgc3VwcG9y
dCBpdCBlaXRoZXIuICBBbmRyb2lkIGhhcwogLy8gbm8gc3VwcG9ydCBmb3IgaXQgYXQgbGVhc3Qg
YXMgcmVjZW50IGFzIEZyb3lvICgyLjIpLgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5H
IFwKLSAgICAoIShHVEVTVF9PU19MSU5VWF9BTkRST0lEIHx8IEdURVNUX09TX0NZR1dJTiB8fCBH
VEVTVF9PU19TT0xBUklTKSkKKyNkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5HICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICghKEdURVNUX09TX0xJTlVYX0FO
RFJPSUQgfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMgfHwgXAorICAgICBH
VEVTVF9PU19IQUlLVSB8fCBHVEVTVF9PU19FU1AzMiB8fCBHVEVTVF9PU19FU1A4MjY2KSkKIAog
I2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmbmRlZiBHVEVTVF9IQVNfR0xP
QkFMX1dTVFJJTkcKLS8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgOjp3c3RyaW5n
IGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAotLy8gdG8gZmlndXJlIGl0IG91dC4KLSMgZGVmaW5l
IEdURVNUX0hBU19HTE9CQUxfV1NUUklORyBcCi0gICAgKEdURVNUX0hBU19TVERfV1NUUklORyAm
JiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORykKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9X
U1RSSU5HCi0KIC8vIERldGVybWluZXMgd2hldGhlciBSVFRJIGlzIGF2YWlsYWJsZS4KICNpZm5k
ZWYgR1RFU1RfSEFTX1JUVEkKIC8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgUlRU
SSBpcyBlbmFibGVkLCBzbyB3ZSBuZWVkIHRvCkBAIC01NzIsMTQgKzQ3NSwxNSBAQCB0eXBlZGVm
IHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIAog
IyBpZmRlZiBfTVNDX1ZFUgogCi0jICBpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBkZWZpbmVzIHRo
aXMgbWFjcm8gaWZmIFJUVEkgaXMgZW5hYmxlZC4KKyNpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBk
ZWZpbmVzIHRoaXMgbWFjcm8gaWYgYW5kIG9ubHkgaWYgUlRUSSBpcyBlbmFibGVkLgogIyAgIGRl
ZmluZSBHVEVTVF9IQVNfUlRUSSAxCiAjICBlbHNlCiAjICAgZGVmaW5lIEdURVNUX0hBU19SVFRJ
IDAKICMgIGVuZGlmCiAKLS8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2NjIGRlZmlu
ZXMgX19HWFhfUlRUSSBpZmYgUlRUSSBpcyBlbmFibGVkLgotIyBlbGlmIGRlZmluZWQoX19HTlVD
X18pICYmIChHVEVTVF9HQ0NfVkVSXyA+PSA0MDMwMikKKy8vIFN0YXJ0aW5nIHdpdGggdmVyc2lv
biA0LjMuMiwgZ2NjIGRlZmluZXMgX19HWFhfUlRUSSBpZiBhbmQgb25seSBpZiBSVFRJIGlzCisv
LyBlbmFibGVkLgorIyBlbGlmIGRlZmluZWQoX19HTlVDX18pCiAKICMgIGlmZGVmIF9fR1hYX1JU
VEkKIC8vIFdoZW4gYnVpbGRpbmcgYWdhaW5zdCBTVExwb3J0IHdpdGggdGhlIEFuZHJvaWQgTkRL
IGFuZCB3aXRoCkBAIC02MzUsOSArNTM5LDExIEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElD
QUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8KIC8vIFRvIGRpc2FibGUgdGhy
ZWFkaW5nIHN1cHBvcnQgaW4gR29vZ2xlIFRlc3QsIGFkZCAtREdURVNUX0hBU19QVEhSRUFEPTAK
IC8vIHRvIHlvdXIgY29tcGlsZXIgZmxhZ3MuCi0jZGVmaW5lIEdURVNUX0hBU19QVEhSRUFEICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoR1RFU1RfT1Nf
TElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX0hQVVggfHwgR1RFU1RfT1NfUU5YIHx8
IFwKLSAgIEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkFDTCB8fCBHVEVTVF9PU19ORVRC
U0QgfHwgR1RFU1RfT1NfRlVDSFNJQSkKKyNkZWZpbmUgR1RFU1RfSEFTX1BUSFJFQUQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIChHVEVT
VF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19R
TlggfHwgICAgICAgICAgXAorICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19OQUNMIHx8
IEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAgIEdURVNUX09TX0RS
QUdPTkZMWSB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfT1BFTkJTRCB8fCAg
ICAgICAgICBcCisgICBHVEVTVF9PU19IQUlLVSkKICNlbmRpZiAgLy8gR1RFU1RfSEFTX1BUSFJF
QUQKIAogI2lmIEdURVNUX0hBU19QVEhSRUFECkBAIC02NDksMTM2ICs1NTUsNiBAQCB0eXBlZGVm
IHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMg
aW5jbHVkZSA8dGltZS5oPiAgLy8gTk9MSU5UCiAjZW5kaWYKIAotLy8gRGV0ZXJtaW5lcyBpZiBo
YXNoX21hcC9oYXNoX3NldCBhcmUgYXZhaWxhYmxlLgotLy8gT25seSB1c2VkIGZvciB0ZXN0aW5n
IGFnYWluc3QgdGhvc2UgY29udGFpbmVycy4KLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfSEFTSF9N
QVBfKQotIyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTAwKQotIyAgZGVm
aW5lIEdURVNUX0hBU19IQVNIX01BUF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9tYXAgaXMg
YXZhaWxhYmxlLgotIyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX1NFVF8gMSAgLy8gSW5kaWNhdGVz
IHRoYXQgaGFzaF9zZXQgaXMgYXZhaWxhYmxlLgotIyBlbmRpZiAgLy8gX01TQ19WRVIKLSNlbmRp
ZiAgLy8gIWRlZmluZWQoR1RFU1RfSEFTX0hBU0hfTUFQXykKLQotLy8gRGV0ZXJtaW5lcyB3aGV0
aGVyIEdvb2dsZSBUZXN0IGNhbiB1c2UgdHIxL3R1cGxlLiAgWW91IGNhbiBkZWZpbmUKLS8vIHRo
aXMgbWFjcm8gdG8gMCB0byBwcmV2ZW50IEdvb2dsZSBUZXN0IGZyb20gdXNpbmcgdHVwbGUgKGFu
eQotLy8gZmVhdHVyZSBkZXBlbmRpbmcgb24gdHVwbGUgd2l0aCBiZSBkaXNhYmxlZCBpbiB0aGlz
IG1vZGUpLgotI2lmbmRlZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmIEdURVNUX09TX0xJTlVY
X0FORFJPSUQgJiYgZGVmaW5lZChfU1RMUE9SVF9NQUpPUikKLS8vIFNUTHBvcnQsIHByb3ZpZGVk
IHdpdGggdGhlIEFuZHJvaWQgTkRLLCBoYXMgbmVpdGhlciA8dHIxL3R1cGxlPiBvciA8dHVwbGU+
LgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbGlmIGRlZmluZWQoX01TQ19W
RVIpICYmIChfTVNDX1ZFUiA+PSAxOTEwKQotLy8gUHJldmVudCBgd2FybmluZyBDNDk5NjogJ3N0
ZDo6dHIxJzogd2FybmluZyBTVEw0MDAyOgotLy8gVGhlIG5vbi1TdGFuZGFyZCBzdGQ6OnRyMSBu
YW1lc3BhY2UgYW5kIFRSMS1vbmx5IG1hY2hpbmVyeQotLy8gYXJlIGRlcHJlY2F0ZWQgYW5kIHdp
bGwgYmUgUkVNT1ZFRC5gCi0jICBkZWZpbmUgR1RFU1RfSEFTX1RSMV9UVVBMRSAwCi0jIGVsaWYg
R1RFU1RfTEFOR19DWFgxMSAmJiBkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikKLS8vIGxpYmMrKyBk
b2Vzbid0IHN1cHBvcnQgVFIxLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBl
bHNlCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyBub3QgdG8gZG8gaXQsIHNvIHdlIGFzc3Vt
ZSBpdCdzIE9LLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMQotIyBlbmRpZgotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLS8vIERldGVybWluZXMgd2hldGhlciBHb29n
bGUgVGVzdCdzIG93biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24KLS8vIHNob3VsZCBiZSB1c2Vk
LgotI2lmbmRlZiBHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotLy8gV2UgdXNlIG91ciBvd24gdHVw
bGUgaW1wbGVtZW50YXRpb24gb24gU3ltYmlhbi4KLSMgaWYgR1RFU1RfT1NfU1lNQklBTgotIyAg
ZGVmaW5lIEdURVNUX1VTRV9PV05fVFIxX1RVUExFIDEKLSMgZWxzZQotLy8gVGhlIHVzZXIgZGlk
bid0IHRlbGwgdXMsIHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0IG91dC4KLQotLy8gV2UgdXNlIG91
ciBvd24gVFIxIHR1cGxlIGlmIHdlIGFyZW4ndCBzdXJlIHRoZSB1c2VyIGhhcyBhbgotLy8gaW1w
bGVtZW50YXRpb24gb2YgaXQgYWxyZWFkeS4gIEF0IHRoaXMgdGltZSwgbGlic3RkYysrIDQuMC4w
KyBhbmQKLS8vIE1TVkMgMjAxMCBhcmUgdGhlIG9ubHkgbWFpbnN0cmVhbSBzdGFuZGFyZCBsaWJy
YXJpZXMgdGhhdCBjb21lCi0vLyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uLiAgTlZJ
RElBJ3MgQ1VEQSBOVkNDIGNvbXBpbGVyCi0vLyBwcmV0ZW5kcyB0byBiZSBHQ0MgYnkgZGVmaW5p
bmcgX19HTlVDX18gYW5kIGZyaWVuZHMsIGJ1dCBjYW5ub3QKLS8vIGNvbXBpbGUgR0NDJ3MgdHVw
bGUgaW1wbGVtZW50YXRpb24uICBNU1ZDIDIwMDggKDkuMCkgcHJvdmlkZXMgVFIxCi0vLyB0dXBs
ZSBpbiBhIDMyMyBNQiBGZWF0dXJlIFBhY2sgZG93bmxvYWQsIHdoaWNoIHdlIGNhbm5vdCBhc3N1
bWUgdGhlCi0vLyB1c2VyIGhhcy4gIFFOWCdzIFFDQyBjb21waWxlciBpcyBhIG1vZGlmaWVkIEdD
QyBidXQgaXQgZG9lc24ndAotLy8gc3VwcG9ydCBUUjEgdHVwbGUuICBsaWJjKysgb25seSBwcm92
aWRlcyBzdGQ6OnR1cGxlLCBpbiBDKysxMSBtb2RlLAotLy8gYW5kIGl0IGNhbiBiZSB1c2VkIHdp
dGggc29tZSBjb21waWxlcnMgdGhhdCBkZWZpbmUgX19HTlVDX18uCi0jIGlmIChkZWZpbmVkKF9f
R05VQ19fKSAmJiAhZGVmaW5lZChfX0NVREFDQ19fKSAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gNDAw
MDApIFwKLSAgICAgICYmICFHVEVTVF9PU19RTlggJiYgIWRlZmluZWQoX0xJQkNQUF9WRVJTSU9O
KSkgXAotICAgICAgfHwgKF9NU0NfVkVSID49IDE2MDAgJiYgX01TQ19WRVIgPCAxOTAwKQotIyAg
ZGVmaW5lIEdURVNUX0VOVl9IQVNfVFIxX1RVUExFXyAxCi0jIGVuZGlmCi0KLS8vIEMrKzExIHNw
ZWNpZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4gVXNlIHRoYXQgaWYgZ3Rl
c3QgaXMgdXNlZAotLy8gaW4gQysrMTEgbW9kZSBhbmQgbGlic3RkYysrIGlzbid0IHZlcnkgb2xk
IChiaW5hcmllcyB0YXJnZXRpbmcgT1MgWCAxMC42Ci0vLyBjYW4gYnVpbGQgd2l0aCBjbGFuZyBi
dXQgbmVlZCB0byB1c2UgZ2NjNC4yJ3MgbGlic3RkYysrKS4KLSMgaWYgR1RFU1RfTEFOR19DWFgx
MSAmJiAoIWRlZmluZWQoX19HTElCQ1hYX18pIHx8IF9fR0xJQkNYWF9fID4gMjAxMTAzMjUpCi0j
ICBkZWZpbmUgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfIDEKLSMgZW5kaWYKLQotIyBpZiBHVEVT
VF9FTlZfSEFTX1RSMV9UVVBMRV8gfHwgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfCi0jICBkZWZp
bmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgMAotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1RfVVNF
X09XTl9UUjFfVFVQTEUgMQotIyBlbmRpZgotIyBlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgot
I2VuZGlmICAvLyBHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotCi0vLyBUbyBhdm9pZCBjb25kaXRp
b25hbCBjb21waWxhdGlvbiB3ZSBtYWtlIGl0IGd0ZXN0LXBvcnQuaCdzIHJlc3BvbnNpYmlsaXR5
Ci0vLyB0byAjaW5jbHVkZSB0aGUgaGVhZGVyIGltcGxlbWVudGluZyB0dXBsZS4KLSNpZiBHVEVT
VF9IQVNfU1REX1RVUExFXwotIyBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBv
cnQKLSMgZGVmaW5lIEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQKLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX1NURF9UVVBMRV8KLQotLy8gV2UgaW5jbHVkZSB0cjE6OnR1cGxlIGV2ZW4gaWYgc3Rk
Ojp0dXBsZSBpcyBhdmFpbGFibGUgdG8gZGVmaW5lIHByaW50ZXJzIGZvcgotLy8gdGhlbS4KLSNp
ZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmbmRlZiBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0j
ICBkZWZpbmUgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXyA6OnN0ZDo6dHIxCi0jIGVuZGlmICAvLyBH
VEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0KLSMgaWYgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLSMg
IGluY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiICAvLyBJV1lVIHByYWdtYTog
ZXhwb3J0ICAvLyBOT0xJTlQKLSMgZWxpZiBHVEVTVF9PU19TWU1CSUFOCi0KLS8vIE9uIFN5bWJp
YW4sIEJPT1NUX0hBU19UUjFfVFVQTEUgY2F1c2VzIEJvb3N0J3MgVFIxIHR1cGxlIGxpYnJhcnkg
dG8KLS8vIHVzZSBTVExwb3J0J3MgdHVwbGUgaW1wbGVtZW50YXRpb24sIHdoaWNoIHVuZm9ydHVu
YXRlbHkgZG9lc24ndAotLy8gd29yayBhcyB0aGUgY29weSBvZiBTVExwb3J0IGRpc3RyaWJ1dGVk
IHdpdGggU3ltYmlhbiBpcyBpbmNvbXBsZXRlLgotLy8gQnkgbWFraW5nIHN1cmUgQk9PU1RfSEFT
X1RSMV9UVVBMRSBpcyB1bmRlZmluZWQsIHdlIGZvcmNlIEJvb3N0IHRvCi0vLyB1c2UgaXRzIG93
biB0dXBsZSBpbXBsZW1lbnRhdGlvbi4KLSMgIGlmZGVmIEJPT1NUX0hBU19UUjFfVFVQTEUKLSMg
ICB1bmRlZiBCT09TVF9IQVNfVFIxX1RVUExFCi0jICBlbmRpZiAgLy8gQk9PU1RfSEFTX1RSMV9U
VVBMRQotCi0vLyBUaGlzIHByZXZlbnRzIDxib29zdC90cjEvZGV0YWlsL2NvbmZpZy5ocHA+LCB3
aGljaCBkZWZpbmVzCi0vLyBCT09TVF9IQVNfVFIxX1RVUExFLCBmcm9tIGJlaW5nICNpbmNsdWRl
ZCBieSBCb29zdCdzIDx0dXBsZT4uCi0jICBkZWZpbmUgQk9PU1RfVFIxX0RFVEFJTF9DT05GSUdf
SFBQX0lOQ0xVREVECi0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQg
IC8vIE5PTElOVAotCi0jIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKEdURVNUX0dDQ19WRVJf
ID49IDQwMDAwKQotLy8gR0NDIDQuMCsgaW1wbGVtZW50cyB0cjEvdHVwbGUgaW4gdGhlIDx0cjEv
dHVwbGU+IGhlYWRlci4gIFRoaXMgZG9lcwotLy8gbm90IGNvbmZvcm0gdG8gdGhlIFRSMSBzcGVj
LCB3aGljaCByZXF1aXJlcyB0aGUgaGVhZGVyIHRvIGJlIDx0dXBsZT4uCi0KLSMgIGlmICFHVEVT
VF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0vLyBVbnRpbCB2ZXJzaW9uIDQu
My4yLCBnY2MgaGFzIGEgYnVnIHRoYXQgY2F1c2VzIDx0cjEvZnVuY3Rpb25hbD4sCi0vLyB3aGlj
aCBpcyAjaW5jbHVkZWQgYnkgPHRyMS90dXBsZT4sIHRvIG5vdCBjb21waWxlIHdoZW4gUlRUSSBp
cwotLy8gZGlzYWJsZWQuICBfVFIxX0ZVTkNUSU9OQUwgaXMgdGhlIGhlYWRlciBndWFyZCBmb3IK
LS8vIDx0cjEvZnVuY3Rpb25hbD4uICBIZW5jZSB0aGUgZm9sbG93aW5nICNkZWZpbmUgaXMgdXNl
ZCB0byBwcmV2ZW50Ci0vLyA8dHIxL2Z1bmN0aW9uYWw+IGZyb20gYmVpbmcgaW5jbHVkZWQuCi0j
ICAgZGVmaW5lIF9UUjFfRlVOQ1RJT05BTCAxCi0jICAgaW5jbHVkZSA8dHIxL3R1cGxlPgotIyAg
IHVuZGVmIF9UUjFfRlVOQ1RJT05BTCAgLy8gQWxsb3dzIHRoZSB1c2VyIHRvICNpbmNsdWRlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyA8dHIxL2Z1bmN0aW9uYWw+IGlmIHRoZXkgY2hvb3Nl
IHRvLgotIyAgZWxzZQotIyAgIGluY2x1ZGUgPHRyMS90dXBsZT4gIC8vIE5PTElOVAotIyAgZW5k
aWYgIC8vICFHVEVTVF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0KLS8vIFZT
IDIwMTAgbm93IGhhcyB0cjEgc3VwcG9ydC4KLSMgZWxpZiBfTVNDX1ZFUiA+PSAxNjAwCi0jICBp
bmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElOVAotCi0jIGVs
c2UgIC8vIEdURVNUX1VTRV9PV05fVFIxX1RVUExFCi0jICBpbmNsdWRlIDx0cjEvdHVwbGU+ICAv
LyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBOT0xJTlQKLSMgZW5kaWYgIC8vIEdURVNUX1VTRV9P
V05fVFIxX1RVUExFCi0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRQotCiAvLyBEZXRl
cm1pbmVzIHdoZXRoZXIgY2xvbmUoMikgaXMgc3VwcG9ydGVkLgogLy8gVXN1YWxseSBpdCB3aWxs
IG9ubHkgYmUgYXZhaWxhYmxlIG9uIExpbnV4LCBleGNsdWRpbmcKIC8vIExpbnV4IG9uIHRoZSBJ
dGFuaXVtIGFyY2hpdGVjdHVyZS4KQEAgLTgxMiwyNCArNTg4LDIyIEBAIHR5cGVkZWYgc3RydWN0
IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogI2lmbmRlZiBH
VEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCiAvLyBCeSBkZWZhdWx0LCB3ZSBhc3N1bWUgdGhh
dCBzdHJlYW0gcmVkaXJlY3Rpb24gaXMgc3VwcG9ydGVkIG9uIGFsbAogLy8gcGxhdGZvcm1zIGV4
Y2VwdCBrbm93biBtb2JpbGUgb25lcy4KLSMgaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwg
R1RFU1RfT1NfU1lNQklBTiB8fCBcCi0gICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVT
VF9PU19XSU5ET1dTX1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1Nf
V0lORE9XU19QSE9ORSB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19SVCB8fCBHVEVTVF9PU19F
U1A4MjY2CiAjICBkZWZpbmUgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTiAwCiAjIGVsc2UK
ICMgIGRlZmluZSBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OIDEKLSMgZW5kaWYgIC8vICFH
VEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiAhR1RFU1RfT1NfU1lNQklBTgorIyBlbmRpZiAgLy8g
IUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAjZW5kaWYgIC8vIEdURVNUX0hBU19TVFJFQU1fUkVE
SVJFQ1RJT04KIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN1cHBvcnQgZGVhdGggdGVzdHMu
Ci0vLyBHb29nbGUgVGVzdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3RzIGZvciBWQyA3LjEg
YW5kIGVhcmxpZXIgYXMKLS8vIGFib3J0KCkgaW4gYSBWQyA3LjEgYXBwbGljYXRpb24gY29tcGls
ZWQgYXMgR1VJIGluIGRlYnVnIGNvbmZpZwogLy8gcG9wcyB1cCBhIGRpYWxvZyB3aW5kb3cgdGhh
dCBjYW5ub3QgYmUgc3VwcHJlc3NlZCBwcm9ncmFtbWF0aWNhbGx5LgotI2lmIChHVEVTVF9PU19M
SU5VWCB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfU09MQVJJUyB8fCAgIFwKLSAgICAg
KEdURVNUX09TX01BQyAmJiAhR1RFU1RfT1NfSU9TKSB8fCAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgIChHVEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgJiYgX01TQ19WRVIgPj0gMTQwMCkg
fHwgICAgICAgICAgXAotICAgICBHVEVTVF9PU19XSU5ET1dTX01JTkdXIHx8IEdURVNUX09TX0FJ
WCB8fCBHVEVTVF9PU19IUFVYIHx8IFwKLSAgICAgR1RFU1RfT1NfT1BFTkJTRCB8fCBHVEVTVF9P
U19RTlggfHwgR1RFU1RfT1NfRlJFRUJTRCB8fCBcCi0gICAgIEdURVNUX09TX05FVEJTRCB8fCBH
VEVTVF9PU19GVUNIU0lBKQorI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19DWUdXSU4g
fHwgR1RFU1RfT1NfU09MQVJJUyB8fCAgICAgICAgICAgICBcCisgICAgIChHVEVTVF9PU19NQUMg
JiYgIUdURVNUX09TX0lPUykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgKEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAmJiBfTVNDX1ZFUikgfHwgR1RFU1RfT1Nf
V0lORE9XU19NSU5HVyB8fCAgXAorICAgICBHVEVTVF9PU19BSVggfHwgR1RFU1RfT1NfSFBVWCB8
fCBHVEVTVF9PU19PUEVOQlNEIHx8IEdURVNUX09TX1FOWCB8fCBcCisgICAgIEdURVNUX09TX0ZS
RUVCU0QgfHwgR1RFU1RfT1NfTkVUQlNEIHx8IEdURVNUX09TX0ZVQ0hTSUEgfHwgICAgICAgICAg
IFwKKyAgICAgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBH
VEVTVF9PU19IQUlLVSkKICMgZGVmaW5lIEdURVNUX0hBU19ERUFUSF9URVNUIDEKICNlbmRpZgog
CkBAIC04MzcsMjYgKzYxMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJ
T04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIAogLy8gVHlwZWQgdGVzdHMgbmVlZCA8dHlwZWlu
Zm8+IGFuZCB2YXJpYWRpYyBtYWNyb3MsIHdoaWNoIEdDQywgVkMrKyA4LjAsCiAvLyBTdW4gUHJv
IENDLCBJQk0gVmlzdWFsIEFnZSwgYW5kIEhQIGFDQyBzdXBwb3J0LgotI2lmIGRlZmluZWQoX19H
TlVDX18pIHx8IChfTVNDX1ZFUiA+PSAxNDAwKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKSB8fCBc
CisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChf
X1NVTlBST19DQykgfHwgXAogICAgIGRlZmluZWQoX19JQk1DUFBfXykgfHwgZGVmaW5lZChfX0hQ
X2FDQykKICMgZGVmaW5lIEdURVNUX0hBU19UWVBFRF9URVNUIDEKICMgZGVmaW5lIEdURVNUX0hB
U19UWVBFRF9URVNUX1AgMQogI2VuZGlmCiAKLS8vIERldGVybWluZXMgd2hldGhlciB0byBzdXBw
b3J0IENvbWJpbmUoKS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4KLS8vIHZhbHVlLXBhcmFt
ZXRlcml6ZWQgdGVzdHMgYXJlIGVuYWJsZWQuICBUaGUgaW1wbGVtZW50YXRpb24gZG9lc24ndAot
Ly8gd29yayBvbiBTdW4gU3R1ZGlvIHNpbmNlIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0ZW1wbGF0
ZWQgY29udmVyc2lvbgotLy8gb3BlcmF0b3JzLgotI2lmIChHVEVTVF9IQVNfVFIxX1RVUExFIHx8
IEdURVNUX0hBU19TVERfVFVQTEVfKSAmJiAhZGVmaW5lZChfX1NVTlBST19DQykKLSMgZGVmaW5l
IEdURVNUX0hBU19DT01CSU5FIDEKLSNlbmRpZgotCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhl
IHN5c3RlbSBjb21waWxlciB1c2VzIFVURi0xNiBmb3IgZW5jb2Rpbmcgd2lkZSBzdHJpbmdzLgog
I2RlZmluZSBHVEVTVF9XSURFX1NUUklOR19VU0VTX1VURjE2XyBcCi0gICAgKEdURVNUX09TX1dJ
TkRPV1MgfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1Nf
QUlYKQorICAoR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1Nf
QUlYIHx8IEdURVNUX09TX09TMikKIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRlc3QgcmVzdWx0
cyBjYW4gYmUgc3RyZWFtZWQgdG8gYSBzb2NrZXQuCi0jaWYgR1RFU1RfT1NfTElOVVgKKyNpZiBH
VEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfRFJBR09O
RkxZIHx8IFwKKyAgICBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05FVEJTRCB8fCBHVEVT
VF9PU19PUEVOQlNECiAjIGRlZmluZSBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfIDEKICNlbmRp
ZgogCkBAIC04OTgsMTIgKzY2NSw2IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VD
VElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogIyBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX1VO
VVNFRF8KICNlbmRpZgogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUgR1RFU1RfQ1hY
MTFfRVFVQUxTX0RFTEVURV8gPSBkZWxldGUKLSNlbHNlICAvLyBHVEVTVF9MQU5HX0NYWDExCi0j
IGRlZmluZSBHVEVTVF9DWFgxMV9FUVVBTFNfREVMRVRFXwotI2VuZGlmICAvLyBHVEVTVF9MQU5H
X0NYWDExCi0KIC8vIFVzZSB0aGlzIGFubm90YXRpb24gYmVmb3JlIGEgZnVuY3Rpb24gdGhhdCB0
YWtlcyBhIHByaW50ZiBmb3JtYXQgc3RyaW5nLgogI2lmIChkZWZpbmVkKF9fR05VQ19fKSB8fCBk
ZWZpbmVkKF9fY2xhbmdfXykpICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgaWYgZGVmaW5l
ZChfX01JTkdXX1BSSU5URl9GT1JNQVQpCkBAIC05MjIsMjcgKzY4MywzOCBAQCB0eXBlZGVmIHN0
cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICNlbmRp
ZgogCiAKLS8vIEEgbWFjcm8gdG8gZGlzYWxsb3cgb3BlcmF0b3I9CisvLyBBIG1hY3JvIHRvIGRp
c2FsbG93IGNvcHkgb3BlcmF0b3I9CiAvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2
YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCiAjZGVmaW5lIEdURVNUX0RJU0FMTE9XX0FT
U0lHTl8odHlwZSkgXAotICB2b2lkIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpIEdURVNUX0NYWDEx
X0VRVUFMU19ERUxFVEVfCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpID0gZGVsZXRl
CiAKIC8vIEEgbWFjcm8gdG8gZGlzYWxsb3cgY29weSBjb25zdHJ1Y3RvciBhbmQgb3BlcmF0b3I9
CiAvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9y
IGEgY2xhc3MuCiAjZGVmaW5lIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8odHlwZSkg
XAotICB0eXBlKHR5cGUgY29uc3QgJikgR1RFU1RfQ1hYMTFfRVFVQUxTX0RFTEVURV87IFwKLSAg
R1RFU1RfRElTQUxMT1dfQVNTSUdOXyh0eXBlKQorICB0eXBlKHR5cGUgY29uc3QmKSA9IGRlbGV0
ZTsgICAgICAgICAgICAgICAgIFwKKyAgdHlwZSYgb3BlcmF0b3I9KHR5cGUgY29uc3QmKSA9IGRl
bGV0ZQorCisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgb3BlcmF0b3I9CisvLyBUaGlzIHNo
b3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCisj
ZGVmaW5lIEdURVNUX0RJU0FMTE9XX01PVkVfQVNTSUdOXyh0eXBlKSBcCisgIHR5cGUmIG9wZXJh
dG9yPSh0eXBlICYmKSBub2V4Y2VwdCA9IGRlbGV0ZQorCisvLyBBIG1hY3JvIHRvIGRpc2FsbG93
IG1vdmUgY29uc3RydWN0b3IgYW5kIG9wZXJhdG9yPQorLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBp
biB0aGUgcHJpdmF0ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNzLgorI2RlZmluZSBHVEVTVF9E
SVNBTExPV19NT1ZFX0FORF9BU1NJR05fKHR5cGUpIFwKKyAgdHlwZSh0eXBlJiYpIG5vZXhjZXB0
ID0gZGVsZXRlOyAgICAgICAgICAgICBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlJiYpIG5vZXhj
ZXB0ID0gZGVsZXRlCiAKIC8vIFRlbGwgdGhlIGNvbXBpbGVyIHRvIHdhcm4gYWJvdXQgdW51c2Vk
IHJldHVybiB2YWx1ZXMgZm9yIGZ1bmN0aW9ucyBkZWNsYXJlZAogLy8gd2l0aCB0aGlzIG1hY3Jv
LiAgVGhlIG1hY3JvIHNob3VsZCBiZSB1c2VkIG9uIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogLy8g
Zm9sbG93aW5nIHRoZSBhcmd1bWVudCBsaXN0OgogLy8KIC8vICAgU3Byb2NrZXQqIEFsbG9jYXRl
U3Byb2NrZXQoKSBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotI2lmIGRlZmluZWQoX19HTlVDX18p
ICYmIChHVEVTVF9HQ0NfVkVSXyA+PSAzMDQwMCkgJiYgIWRlZmluZWQoQ09NUElMRVJfSUNDKQor
I2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgZGVmaW5l
IEdURVNUX01VU1RfVVNFX1JFU1VMVF8gX19hdHRyaWJ1dGVfXyAoKHdhcm5fdW51c2VkX3Jlc3Vs
dCkpCiAjZWxzZQogIyBkZWZpbmUgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXwotI2VuZGlmICAvLyBf
X0dOVUNfXyAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFDT01QSUxFUl9JQ0MKKyNl
bmRpZiAgLy8gX19HTlVDX18gJiYgIUNPTVBJTEVSX0lDQwogCiAvLyBNUyBDKysgY29tcGlsZXIg
ZW1pdHMgd2FybmluZyB3aGVuIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb21waWxlIHRp
bWUKIC8vIGNvbnN0YW50LiBJbiBzb21lIGNvbnRleHRzIHRoaXMgd2FybmluZyBpcyBmYWxzZSBw
b3NpdGl2ZSBhbmQgbmVlZHMgdG8gYmUKQEAgLTk3MSwxMyArNzQzLDE3IEBAIHR5cGVkZWYgc3Ry
dWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogIyAgZGVm
aW5lIEdURVNUX0hBU19TRUggMAogIyBlbmRpZgogCi0jZGVmaW5lIEdURVNUX0lTX1RIUkVBRFNB
RkUgXAotICAgIChHVEVTVF9IQVNfTVVURVhfQU5EX1RIUkVBRF9MT0NBTF8gXAotICAgICB8fCAo
R1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1Nf
V0lORE9XU19SVCkgXAotICAgICB8fCBHVEVTVF9IQVNfUFRIUkVBRCkKLQogI2VuZGlmICAvLyBH
VEVTVF9IQVNfU0VICiAKKyNpZm5kZWYgR1RFU1RfSVNfVEhSRUFEU0FGRQorCisjZGVmaW5lIEdU
RVNUX0lTX1RIUkVBRFNBRkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAoR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9DQUxfIHx8ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIChHVEVTVF9PU19XSU5ET1dTICYm
ICFHVEVTVF9PU19XSU5ET1dTX1BIT05FICYmICFHVEVTVF9PU19XSU5ET1dTX1JUKSB8fCBcCisg
ICBHVEVTVF9IQVNfUFRIUkVBRCkKKworI2VuZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCisK
IC8vIEdURVNUX0FQSV8gcXVhbGlmaWVzIGFsbCBzeW1ib2xzIHRoYXQgbXVzdCBiZSBleHBvcnRl
ZC4gVGhlIGRlZmluaXRpb25zIGJlbG93CiAvLyBhcmUgZ3VhcmRlZCBieSAjaWZuZGVmIHRvIGdp
dmUgZW1iZWRkZXJzIGEgY2hhbmNlIHRvIGRlZmluZSBHVEVTVF9BUElfIGluCiAvLyBndGVzdC9p
bnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCkBAIC0xMDQ0LDYgKzgyMCwxOCBAQCB0eXBlZGVm
IHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMg
ZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXwogI2VuZGlmICAvLyBf
X2NsYW5nX18KIAorLy8gQSBmdW5jdGlvbiBsZXZlbCBhdHRyaWJ1dGUgdG8gZGlzYWJsZSBIV0Fk
ZHJlc3NTYW5pdGl6ZXIgaW5zdHJ1bWVudGF0aW9uLgorI2lmIGRlZmluZWQoX19jbGFuZ19fKQor
IyBpZiBfX2hhc19mZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpCisjICBkZWZpbmUgR1RFU1Rf
QVRUUklCVVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18gXAorICAgICAgIF9fYXR0cmlidXRlX18o
KG5vX3Nhbml0aXplKCJod2FkZHJlc3MiKSkpCisjIGVsc2UKKyMgIGRlZmluZSBHVEVTVF9BVFRS
SUJVVEVfTk9fU0FOSVRJWkVfSFdBRERSRVNTXworIyBlbmRpZiAgLy8gX19oYXNfZmVhdHVyZSho
d2FkZHJlc3Nfc2FuaXRpemVyKQorI2Vsc2UKKyMgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19T
QU5JVElaRV9IV0FERFJFU1NfCisjZW5kaWYgIC8vIF9fY2xhbmdfXworCiAvLyBBIGZ1bmN0aW9u
IGxldmVsIGF0dHJpYnV0ZSB0byBkaXNhYmxlIFRocmVhZFNhbml0aXplciBpbnN0cnVtZW50YXRp
b24uCiAjaWYgZGVmaW5lZChfX2NsYW5nX18pCiAjIGlmIF9faGFzX2ZlYXR1cmUodGhyZWFkX3Nh
bml0aXplcikKQEAgLTEwNjAsMTYgKzg0OCwxMyBAQCBuYW1lc3BhY2UgdGVzdGluZyB7CiAKIGNs
YXNzIE1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVTUEFDRV8pCi0vLyBJ
bXBvcnQgdHVwbGUgYW5kIGZyaWVuZHMgaW50byB0aGUgOjp0ZXN0aW5nIG5hbWVzcGFjZS4KLS8v
IEl0IGlzIHBhcnQgb2Ygb3VyIGludGVyZmFjZSwgaGF2aW5nIHRoZW0gaW4gOjp0ZXN0aW5nIGFs
bG93cyB1cyB0byBjaGFuZ2UKLS8vIHRoZWlyIHR5cGVzIGFzIG5lZWRlZC4KLXVzaW5nIEdURVNU
X1RVUExFX05BTUVTUEFDRV86OmdldDsKLXVzaW5nIEdURVNUX1RVUExFX05BTUVTUEFDRV86Om1h
a2VfdHVwbGU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBsZTsKLXVzaW5nIEdU
RVNUX1RVUExFX05BTUVTUEFDRV86OnR1cGxlX3NpemU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1F
U1BBQ0VfOjp0dXBsZV9lbGVtZW50OwotI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX1RVUExFX05B
TUVTUEFDRV8pCisvLyBMZWdhY3kgaW1wb3J0cyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHku
CisvLyBOZXcgY29kZSBzaG91bGQgdXNlIHN0ZDo6IG5hbWVzIGRpcmVjdGx5LgordXNpbmcgc3Rk
OjpnZXQ7Cit1c2luZyBzdGQ6Om1ha2VfdHVwbGU7Cit1c2luZyBzdGQ6OnR1cGxlOwordXNpbmcg
c3RkOjp0dXBsZV9lbGVtZW50OwordXNpbmcgc3RkOjp0dXBsZV9zaXplOwogCiBuYW1lc3BhY2Ug
aW50ZXJuYWwgewogCkBAIC0xMDc4LDE1OCArODYzLDIxIEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7
CiAvLyBTZWNyZXQgb2JqZWN0LCB3aGljaCBpcyB3aGF0IHdlIHdhbnQuCiBjbGFzcyBTZWNyZXQ7
CiAKLS8vIFRoZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gbWFjcm8gY2FuIGJlIHVzZWQgdG8gdmVy
aWZ5IHRoYXQgYSBjb21waWxlIHRpbWUKLS8vIGV4cHJlc3Npb24gaXMgdHJ1ZS4gRm9yIGV4YW1w
bGUsIHlvdSBjb3VsZCB1c2UgaXQgdG8gdmVyaWZ5IHRoZQotLy8gc2l6ZSBvZiBhIHN0YXRpYyBh
cnJheToKKy8vIFRoZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gaXMgYSBsZWdhY3kgbWFjcm8gdXNl
ZCB0byB2ZXJpZnkgdGhhdCBhIGNvbXBpbGUKKy8vIHRpbWUgZXhwcmVzc2lvbiBpcyB0cnVlIChp
biBuZXcgY29kZSwgdXNlIHN0YXRpY19hc3NlcnQgaW5zdGVhZCkuIEZvcgorLy8gZXhhbXBsZSwg
eW91IGNvdWxkIHVzZSBpdCB0byB2ZXJpZnkgdGhlIHNpemUgb2YgYSBzdGF0aWMgYXJyYXk6CiAv
LwogLy8gICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oR1RFU1RfQVJSQVlfU0laRV8obmFtZXMpID09
IE5VTV9OQU1FUywKIC8vICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX2luY29ycmVjdF9z
aXplKTsKIC8vCi0vLyBvciB0byBtYWtlIHN1cmUgYSBzdHJ1Y3QgaXMgc21hbGxlciB0aGFuIGEg
Y2VydGFpbiBzaXplOgotLy8KLS8vICAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKHNpemVvZihmb28p
IDwgMTI4LCBmb29fdG9vX2xhcmdlKTsKLS8vCi0vLyBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRo
ZSBtYWNybyBpcyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUuIElmCi0vLyB0aGUgZXhwcmVzc2lv
biBpcyBmYWxzZSwgbW9zdCBjb21waWxlcnMgd2lsbCBpc3N1ZSBhIHdhcm5pbmcvZXJyb3IKLS8v
IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLgotCi0jaWYgR1RFU1RfTEFOR19D
WFgxMQotIyBkZWZpbmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1zZykgc3RhdGljX2Fz
c2VydChleHByLCAjbXNnKQotI2Vsc2UgIC8vICFHVEVTVF9MQU5HX0NYWDExCi10ZW1wbGF0ZSA8
Ym9vbD4KLSAgc3RydWN0IENvbXBpbGVBc3NlcnQgewotfTsKLQotIyBkZWZpbmUgR1RFU1RfQ09N
UElMRV9BU1NFUlRfKGV4cHIsIG1zZykgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6
OkNvbXBpbGVBc3NlcnQ8KHN0YXRpY19jYXN0PGJvb2w+KGV4cHIpKT4gXAotICAgICAgbXNnW3N0
YXRpY19jYXN0PGJvb2w+KGV4cHIpID8gMSA6IC0xXSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXwot
I2VuZGlmICAvLyAhR1RFU1RfTEFOR19DWFgxMQotCi0vLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxz
IG9mIEdURVNUX0NPTVBJTEVfQVNTRVJUXzoKLS8vCi0vLyAoSW4gQysrMTEsIHdlIHNpbXBseSB1
c2Ugc3RhdGljX2Fzc2VydCBpbnN0ZWFkIG9mIHRoZSBmb2xsb3dpbmcpCi0vLwotLy8gLSBHVEVT
VF9DT01QSUxFX0FTU0VSVF8gd29ya3MgYnkgZGVmaW5pbmcgYW4gYXJyYXkgdHlwZSB0aGF0IGhh
cyAtMQotLy8gICBlbGVtZW50cyAoYW5kIHRodXMgaXMgaW52YWxpZCkgd2hlbiB0aGUgZXhwcmVz
c2lvbiBpcyBmYWxzZS4KLS8vCi0vLyAtIFRoZSBzaW1wbGVyIGRlZmluaXRpb24KLS8vCi0vLyAg
ICAjZGVmaW5lIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHR5cGVkZWYgY2hhciBt
c2dbKGV4cHIpID8gMSA6IC0xXQotLy8KLS8vICAgZG9lcyBub3Qgd29yaywgYXMgZ2NjIHN1cHBv
cnRzIHZhcmlhYmxlLWxlbmd0aCBhcnJheXMgd2hvc2Ugc2l6ZXMKLS8vICAgYXJlIGRldGVybWlu
ZWQgYXQgcnVuLXRpbWUgKHRoaXMgaXMgZ2NjJ3MgZXh0ZW5zaW9uIGFuZCBub3QgcGFydAotLy8g
ICBvZiB0aGUgQysrIHN0YW5kYXJkKS4gIEFzIGEgcmVzdWx0LCBnY2MgZmFpbHMgdG8gcmVqZWN0
IHRoZQotLy8gICBmb2xsb3dpbmcgY29kZSB3aXRoIHRoZSBzaW1wbGUgZGVmaW5pdGlvbjoKLS8v
Ci0vLyAgICAgaW50IGZvbzsKLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oZm9vLCBtc2cp
OyAvLyBub3Qgc3VwcG9zZWQgdG8gY29tcGlsZSBhcyBmb28gaXMKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi0v
LwotLy8gLSBCeSB1c2luZyB0aGUgdHlwZSBDb21waWxlQXNzZXJ0PChib29sKGV4cHIpKT4sIHdl
IGVuc3VyZXMgdGhhdAotLy8gICBleHByIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LiAgKFRl
bXBsYXRlIGFyZ3VtZW50cyBtdXN0IGJlCi0vLyAgIGRldGVybWluZWQgYXQgY29tcGlsZS10aW1l
LikKLS8vCi0vLyAtIFRoZSBvdXR0ZXIgcGFyZW50aGVzZXMgaW4gQ29tcGlsZUFzc2VydDwoYm9v
bChleHByKSk+IGFyZSBuZWNlc3NhcnkKLS8vICAgdG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2Nj
IDMuNC40IGFuZCA0LjAuMS4gIElmIHdlIGhhZCB3cml0dGVuCi0vLwotLy8gICAgIENvbXBpbGVB
c3NlcnQ8Ym9vbChleHByKT4KLS8vCi0vLyAgIGluc3RlYWQsIHRoZXNlIGNvbXBpbGVycyB3aWxs
IHJlZnVzZSB0byBjb21waWxlCi0vLwotLy8gICAgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyg1ID4g
MCwgc29tZV9tZXNzYWdlKTsKLS8vCi0vLyAgIChUaGV5IHNlZW0gdG8gdGhpbmsgdGhlICI+IiBp
biAiNSA+IDAiIG1hcmtzIHRoZSBlbmQgb2YgdGhlCi0vLyAgIHRlbXBsYXRlIGFyZ3VtZW50IGxp
c3QuKQotLy8KLS8vIC0gVGhlIGFycmF5IHNpemUgaXMgKGJvb2woZXhwcikgPyAxIDogLTEpLCBp
bnN0ZWFkIG9mIHNpbXBseQotLy8KLS8vICAgICAoKGV4cHIpID8gMSA6IC0xKS4KLS8vCi0vLyAg
IFRoaXMgaXMgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgYnVnIGluIE1TIFZDIDcuMSwgd2hpY2gK
LS8vICAgY2F1c2VzICgoMC4wKSA/IDEgOiAtMSkgdG8gaW5jb3JyZWN0bHkgZXZhbHVhdGUgdG8g
MS4KLQotLy8gU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyIGlzIHVzZWQgYnkgU3RhdGljQXNzZXJ0
VHlwZUVxIGRlZmluZWQgaW4gZ3Rlc3QuaC4KLS8vCi0vLyBUaGlzIHRlbXBsYXRlIGlzIGRlY2xh
cmVkLCBidXQgaW50ZW50aW9uYWxseSB1bmRlZmluZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyPgotc3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQsIFQ+IHsK
LSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gU2FtZSBhcyBzdGQ6OmlzX3NhbWU8
Pi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0IElzU2FtZSB7Ci0g
IGVudW0geyB2YWx1ZSA9IGZhbHNlIH07Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1
Y3QgSXNTYW1lPFQsIFQ+IHsKLSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gRXZh
bHVhdGVzIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gJ2FycmF5Jy4KLSNkZWZpbmUgR1RF
U1RfQVJSQVlfU0laRV8oYXJyYXkpIChzaXplb2YoYXJyYXkpIC8gc2l6ZW9mKGFycmF5WzBdKSkK
LQotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi10eXBlZGVmIDo6c3RyaW5nIHN0cmluZzsK
LSNlbHNlCi10eXBlZGVmIDo6c3RkOjpzdHJpbmcgc3RyaW5nOwotI2VuZGlmICAvLyBHVEVTVF9I
QVNfR0xPQkFMX1NUUklORwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi10eXBlZGVm
IDo6d3N0cmluZyB3c3RyaW5nOwotI2VsaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCi10eXBlZGVm
IDo6c3RkOjp3c3RyaW5nIHdzdHJpbmc7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NU
UklORworLy8gVGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgbWFjcm8gbXVzdCBiZSBhIHZhbGlk
IEMrKyBpZGVudGlmaWVyLiBJZiB0aGUKKy8vIGV4cHJlc3Npb24gaXMgZmFsc2UsIGNvbXBpbGVy
IHdpbGwgaXNzdWUgYW4gZXJyb3IgY29udGFpbmluZyB0aGlzIGlkZW50aWZpZXIuCisjZGVmaW5l
IEdURVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHN0YXRpY19hc3NlcnQoZXhwciwgI21z
ZykKIAogLy8gQSBoZWxwZXIgZm9yIHN1cHByZXNzaW5nIHdhcm5pbmdzIG9uIGNvbnN0YW50IGNv
bmRpdGlvbi4gIEl0IGp1c3QKIC8vIHJldHVybnMgJ2NvbmRpdGlvbicuCiBHVEVTVF9BUElfIGJv
b2wgSXNUcnVlKGJvb2wgY29uZGl0aW9uKTsKIAotLy8gRGVmaW5lcyBzY29wZWRfcHRyLgotCi0v
LyBUaGlzIGltcGxlbWVudGF0aW9uIG9mIHNjb3BlZF9wdHIgaXMgUEFSVElBTCAtIGl0IG9ubHkg
Y29udGFpbnMKLS8vIGVub3VnaCBzdHVmZiB0byBzYXRpc2Z5IEdvb2dsZSBUZXN0J3MgbmVlZC4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3Mgc2NvcGVkX3B0ciB7Ci0gcHVibGljOgotICB0
eXBlZGVmIFQgZWxlbWVudF90eXBlOwotCi0gIGV4cGxpY2l0IHNjb3BlZF9wdHIoVCogcCA9IE5V
TEwpIDogcHRyXyhwKSB7fQotICB+c2NvcGVkX3B0cigpIHsgcmVzZXQoKTsgfQotCi0gIFQmIG9w
ZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuICpwdHJfOyB9Ci0gIFQqIG9wZXJhdG9yLT4oKSBjb25z
dCB7IHJldHVybiBwdHJfOyB9Ci0gIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIHB0cl87IH0KLQot
ICBUKiByZWxlYXNlKCkgewotICAgIFQqIGNvbnN0IHB0ciA9IHB0cl87Ci0gICAgcHRyXyA9IE5V
TEw7Ci0gICAgcmV0dXJuIHB0cjsKLSAgfQotCi0gIHZvaWQgcmVzZXQoVCogcCA9IE5VTEwpIHsK
LSAgICBpZiAocCAhPSBwdHJfKSB7Ci0gICAgICBpZiAoSXNUcnVlKHNpemVvZihUKSA+IDApKSB7
ICAvLyBNYWtlcyBzdXJlIFQgaXMgYSBjb21wbGV0ZSB0eXBlLgotICAgICAgICBkZWxldGUgcHRy
XzsKLSAgICAgIH0KLSAgICAgIHB0cl8gPSBwOwotICAgIH0KLSAgfQotCi0gIGZyaWVuZCB2b2lk
IHN3YXAoc2NvcGVkX3B0ciYgYSwgc2NvcGVkX3B0ciYgYikgewotICAgIHVzaW5nIHN0ZDo6c3dh
cDsKLSAgICBzd2FwKGEucHRyXywgYi5wdHJfKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgVCogcHRy
XzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKHNjb3BlZF9wdHIpOwotfTsK
LQogLy8gRGVmaW5lcyBSRS4KIAogI2lmIEdURVNUX1VTRVNfUENSRQpAQCAtMTI0NywyNSArODk1
LDE2IEBAIGNsYXNzIEdURVNUX0FQSV8gUkUgewogICAvLyBDb25zdHJ1Y3RzIGFuIFJFIGZyb20g
YSBzdHJpbmcuCiAgIFJFKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXgu
Y19zdHIoKSk7IH0gIC8vIE5PTElOVAogCi0jIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0K
LSAgUkUoY29uc3QgOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19zdHIoKSk7IH0gIC8v
IE5PTElOVAotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAgIFJFKGNv
bnN0IGNoYXIqIHJlZ2V4KSB7IEluaXQocmVnZXgpOyB9ICAvLyBOT0xJTlQKICAgflJFKCk7CiAK
ICAgLy8gUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZWdleC4KICAg
Y29uc3QgY2hhciogcGF0dGVybigpIGNvbnN0IHsgcmV0dXJuIHBhdHRlcm5fOyB9CiAKLSAgLy8g
RnVsbE1hdGNoKHN0ciwgcmUpIHJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9uIHJl
IG1hdGNoZXMKLSAgLy8gdGhlIGVudGlyZSBzdHIuCi0gIC8vIFBhcnRpYWxNYXRjaChzdHIsIHJl
KSByZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAvLyBGdWxsTWF0Y2go
c3RyLCByZSkgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiBy
ZQorICAvLyBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgorICAvLyBQYXJ0aWFsTWF0Y2goc3RyLCBy
ZSkgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQogICAv
LyBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHN0ciAoaW5jbHVkaW5nIHN0ciBpdHNlbGYpLgotICAv
LwotICAvLyBGSVhNRTogbWFrZSBGdWxsTWF0Y2goKSBhbmQgUGFydGlhbE1hdGNoKCkgd29yawot
ICAvLyB3aGVuIHN0ciBjb250YWlucyBOVUwgY2hhcmFjdGVycy4KICAgc3RhdGljIGJvb2wgRnVs
bE1hdGNoKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgICAgcmV0
dXJuIEZ1bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwogICB9CkBAIC0xMjczLDI2ICs5MTIsMTEg
QEAgY2xhc3MgR1RFU1RfQVBJXyBSRSB7CiAgICAgcmV0dXJuIFBhcnRpYWxNYXRjaChzdHIuY19z
dHIoKSwgcmUpOwogICB9CiAKLSMgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQotICBzdGF0
aWMgYm9vbCBGdWxsTWF0Y2goY29uc3QgOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7Ci0g
ICAgcmV0dXJuIEZ1bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwotICB9Ci0gIHN0YXRpYyBib29s
IFBhcnRpYWxNYXRjaChjb25zdCA6OnN0cmluZyYgc3RyLCBjb25zdCBSRSYgcmUpIHsKLSAgICBy
ZXR1cm4gUGFydGlhbE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0gIH0KLQotIyBlbmRpZiAgLy8g
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQogICBzdGF0aWMgYm9vbCBGdWxsTWF0Y2goY29uc3Qg
Y2hhciogc3RyLCBjb25zdCBSRSYgcmUpOwogICBzdGF0aWMgYm9vbCBQYXJ0aWFsTWF0Y2goY29u
c3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpOwogCiAgcHJpdmF0ZToKICAgdm9pZCBJbml0KGNv
bnN0IGNoYXIqIHJlZ2V4KTsKLQotICAvLyBXZSB1c2UgYSBjb25zdCBjaGFyKiBpbnN0ZWFkIG9m
IGFuIHN0ZDo6c3RyaW5nLCBhcyBHb29nbGUgVGVzdCB1c2VkIHRvIGJlCi0gIC8vIHVzZWQgd2hl
cmUgc3RkOjpzdHJpbmcgaXMgbm90IGF2YWlsYWJsZS4gIEZJWE1FOiBjaGFuZ2UgdG8KLSAgLy8g
c3RkOjpzdHJpbmcuCiAgIGNvbnN0IGNoYXIqIHBhdHRlcm5fOwogICBib29sIGlzX3ZhbGlkXzsK
IApAQCAtMTMwNiw4ICs5MzAsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFJFIHsKICAgY29uc3QgY2hh
ciogZnVsbF9wYXR0ZXJuXzsgIC8vIEZvciBGdWxsTWF0Y2goKTsKIAogIyBlbmRpZgotCi0gIEdU
RVNUX0RJU0FMTE9XX0FTU0lHTl8oUkUpOwogfTsKIAogI2VuZGlmICAvLyBHVEVTVF9VU0VTX1BD
UkUKQEAgLTEzNjAsNyArOTgyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBHVGVzdExvZyB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKS5HZXRTdHJl
YW0oKQogCiBpbmxpbmUgdm9pZCBMb2dUb1N0ZGVycigpIHt9Ci1pbmxpbmUgdm9pZCBGbHVzaElu
Zm9Mb2coKSB7IGZmbHVzaChOVUxMKTsgfQoraW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBm
Zmx1c2gobnVsbHB0cik7IH0KIAogI2VuZGlmICAvLyAhZGVmaW5lZChHVEVTVF9MT0dfKQogCkBA
IC0xMzk3LDE5ICsxMDE5LDYgQEAgaW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBmZmx1c2go
TlVMTCk7IH0KICAgICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAjcG9zaXhfY2FsbCA8PCAiZmFpbGVk
IHdpdGggZXJyb3IgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgPDwgZ3Rlc3RfZXJyb3IKIAot
Ly8gQWRkcyByZWZlcmVuY2UgdG8gYSB0eXBlIGlmIGl0IGlzIG5vdCBhIHJlZmVyZW5jZSB0eXBl
LAotLy8gb3RoZXJ3aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFz
Ci0vLyB0cjE6OmFkZF9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHll
dC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5jZSB7IHR5cGVkZWYg
VCYgdHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRk
UmVmZXJlbmNlPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhh
bmR5IHdyYXBwZXIgYXJvdW5kIEFkZFJlZmVyZW5jZSB0aGF0IHdvcmtzIHdoZW4gdGhlIGFyZ3Vt
ZW50IFQKLS8vIGRlcGVuZHMgb24gdGVtcGxhdGUgcGFyYW1ldGVycy4KLSNkZWZpbmUgR1RFU1Rf
QUREX1JFRkVSRU5DRV8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFk
ZFJlZmVyZW5jZTxUPjo6dHlwZQotCiAvLyBUcmFuc2Zvcm1zICJUIiBpbnRvICJjb25zdCBUJiIg
YWNjb3JkaW5nIHRvIHN0YW5kYXJkIHJlZmVyZW5jZSBjb2xsYXBzaW5nCiAvLyBydWxlcyAodGhp
cyBpcyBvbmx5IG5lZWRlZCBhcyBhIGJhY2twb3J0IGZvciBDKys5OCBjb21waWxlcnMgdGhhdCBk
byBub3QKIC8vIHN1cHBvcnQgcmVmZXJlbmNlIGNvbGxhcHNpbmcpLiBTcGVjaWZpY2FsbHksIGl0
IHRyYW5zZm9ybXM6CkBAIC0xNDMwLDI4ICsxMDM5LDYgQEAgc3RydWN0IENvbnN0UmVmPFQmPiB7
IHR5cGVkZWYgVCYgdHlwZTsgfTsKICNkZWZpbmUgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhU
KSBcCiAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbnN0UmVmPFQ+Ojp0eXBlCiAK
LSNpZiBHVEVTVF9IQVNfU1REX01PVkVfCi11c2luZyBzdGQ6OmZvcndhcmQ7Ci11c2luZyBzdGQ6
Om1vdmU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJ2YWx1ZVJlZiB7Ci0gIHR5
cGVkZWYgVCYmIHR5cGU7Ci19OwotI2Vsc2UgIC8vIEdURVNUX0hBU19TVERfTU9WRV8KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotY29uc3QgVCYgbW92ZShjb25zdCBUJiB0KSB7Ci0gIHJldHVybiB0
OwotfQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1HVEVTVF9BRERfUkVGRVJFTkNFXyhUKSBmb3J3
YXJkKEdURVNUX0FERF9SRUZFUkVOQ0VfKFQpIHQpIHsgcmV0dXJuIHQ7IH0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUnZhbHVlUmVmIHsKLSAgdHlwZWRlZiBjb25zdCBUJiB0eXBl
OwotfTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9NT1ZFXwotCiAvLyBJTlRFUk5BTCBJTVBM
RU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KIC8vIFVzZSBJbXBsaWNp
dENhc3RfIGFzIGEgc2FmZSB2ZXJzaW9uIG9mIHN0YXRpY19jYXN0IGZvciB1cGNhc3RpbmcgaW4K
QEAgLTE1MDUsMTMgKzEwOTIsMTMgQEAgaW5saW5lIFRvIERvd25DYXN0XyhGcm9tKiBmKSB7ICAv
LyBzbyB3ZSBvbmx5IGFjY2VwdCBwb2ludGVycwogICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9D
T05EX1BVU0hfKCkKICAgaWYgKGZhbHNlKSB7CiAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NP
TkRfUE9QXygpCi0gICAgY29uc3QgVG8gdG8gPSBOVUxMOwotICAgIDo6dGVzdGluZzo6aW50ZXJu
YWw6OkltcGxpY2l0Q2FzdF88RnJvbSo+KHRvKTsKKyAgY29uc3QgVG8gdG8gPSBudWxscHRyOwor
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEZyb20qPih0byk7CiAgIH0KIAog
I2lmIEdURVNUX0hBU19SVFRJCiAgIC8vIFJUVEk6IGRlYnVnIG1vZGUgb25seSEKLSAgR1RFU1Rf
Q0hFQ0tfKGYgPT0gTlVMTCB8fCBkeW5hbWljX2Nhc3Q8VG8+KGYpICE9IE5VTEwpOworICBHVEVT
VF9DSEVDS18oZiA9PSBudWxscHRyIHx8IGR5bmFtaWNfY2FzdDxUbz4oZikgIT0gbnVsbHB0cik7
CiAjZW5kaWYKICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvPihmKTsKIH0KQEAgLTE1NjUsOSArMTE1
Miw2IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRJbmplY3RhYmxlQXJndnMoKTsKIC8v
IERlcHJlY2F0ZWQ6IHBhc3MgdGhlIGFyZ3MgdmVjdG9yIGJ5IHZhbHVlIGluc3RlYWQuCiB2b2lk
IFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIG5ld19h
cmd2cyk7CiB2b2lkIFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4mIG5ld19hcmd2cyk7Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0
SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cyk7
Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCiB2b2lkIENsZWFySW5qZWN0YWJs
ZUFyZ3ZzKCk7CiAKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKQEAgLTE1ODMsNyAr
MTE2Nyw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7CiAgICAgMCwg
ICAgICAgICAgICAgICAgICAvLyAwIHNlY29uZHMuCiAgICAgbiAqIDEwMDBMICogMTAwMEwsICAv
LyBBbmQgbiBtcy4KICAgfTsKLSAgbmFub3NsZWVwKCZ0aW1lLCBOVUxMKTsKKyAgbmFub3NsZWVw
KCZ0aW1lLCBudWxscHRyKTsKIH0KICMgZW5kaWYgIC8vIEdURVNUX0hBU19QVEhSRUFECiAKQEAg
LTE2MDEsNyArMTE4NSw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7
CiBjbGFzcyBOb3RpZmljYXRpb24gewogIHB1YmxpYzoKICAgTm90aWZpY2F0aW9uKCkgOiBub3Rp
ZmllZF8oZmFsc2UpIHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211
dGV4X2luaXQoJm11dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1Nf
KHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgIH0KICAgfk5vdGlmaWNh
dGlvbigpIHsKICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dGV4Xyk7CkBAIC0xNjU5LDcg
KzEyNDMsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEF1dG9IYW5kbGUgewogICB2b2lkIFJlc2V0KEhh
bmRsZSBoYW5kbGUpOwogCiAgcHJpdmF0ZToKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgaGFu
ZGxlIGlzIGEgdmFsaWQgaGFuZGxlIG9iamVjdCB0aGF0IGNhbiBiZSBjbG9zZWQuCisgIC8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgaGFuZGxlIGlzIGEgdmFsaWQgaGFuZGxlIG9i
amVjdCB0aGF0IGNhbiBiZQorICAvLyBjbG9zZWQuCiAgIGJvb2wgSXNDbG9zZWFibGUoKSBjb25z
dDsKIAogICBIYW5kbGUgaGFuZGxlXzsKQEAgLTE3MTAsNyArMTI5NSw3IEBAIGNsYXNzIFRocmVh
ZFdpdGhQYXJhbUJhc2UgewogLy8gcGFzcyBpbnRvIHB0aHJlYWRfY3JlYXRlKCkuCiBleHRlcm4g
IkMiIGlubGluZSB2b2lkKiBUaHJlYWRGdW5jV2l0aENMaW5rYWdlKHZvaWQqIHRocmVhZCkgewog
ICBzdGF0aWNfY2FzdDxUaHJlYWRXaXRoUGFyYW1CYXNlKj4odGhyZWFkKS0+UnVuKCk7Ci0gIHJl
dHVybiBOVUxMOworICByZXR1cm4gbnVsbHB0cjsKIH0KIAogLy8gSGVscGVyIGNsYXNzIGZvciB0
ZXN0aW5nIEdvb2dsZSBUZXN0J3MgbXVsdGktdGhyZWFkaW5nIGNvbnN0cnVjdHMuCkBAIC0xNzM5
LDIwICsxMzI0LDE5IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbSA6IHB1YmxpYyBUaHJlYWRXaXRo
UGFyYW1CYXNlIHsKICAgICAvLyBUaGUgdGhyZWFkIGNhbiBiZSBjcmVhdGVkIG9ubHkgYWZ0ZXIg
YWxsIGZpZWxkcyBleGNlcHQgdGhyZWFkXwogICAgIC8vIGhhdmUgYmVlbiBpbml0aWFsaXplZC4K
ICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAgcHRocmVhZF9jcmVhdGUo
JnRocmVhZF8sIDAsICZUaHJlYWRGdW5jV2l0aENMaW5rYWdlLCBiYXNlKSk7CisgICAgICAgIHB0
aHJlYWRfY3JlYXRlKCZ0aHJlYWRfLCBudWxscHRyLCAmVGhyZWFkRnVuY1dpdGhDTGlua2FnZSwg
YmFzZSkpOwogICB9Ci0gIH5UaHJlYWRXaXRoUGFyYW0oKSB7IEpvaW4oKTsgfQorICB+VGhyZWFk
V2l0aFBhcmFtKCkgb3ZlcnJpZGUgeyBKb2luKCk7IH0KIAogICB2b2lkIEpvaW4oKSB7CiAgICAg
aWYgKCFmaW5pc2hlZF8pIHsKLSAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJl
YWRfam9pbih0aHJlYWRfLCAwKSk7CisgICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhw
dGhyZWFkX2pvaW4odGhyZWFkXywgbnVsbHB0cikpOwogICAgICAgZmluaXNoZWRfID0gdHJ1ZTsK
ICAgICB9CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgUnVuKCkgewotICAgIGlmICh0aHJlYWRfY2Fu
X3N0YXJ0XyAhPSBOVUxMKQotICAgICAgdGhyZWFkX2Nhbl9zdGFydF8tPldhaXRGb3JOb3RpZmlj
YXRpb24oKTsKKyAgdm9pZCBSdW4oKSBvdmVycmlkZSB7CisgICAgaWYgKHRocmVhZF9jYW5fc3Rh
cnRfICE9IG51bGxwdHIpIHRocmVhZF9jYW5fc3RhcnRfLT5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7
CiAgICAgZnVuY18ocGFyYW1fKTsKICAgfQogCkBAIC0xNzYyLDcgKzEzNDYsOCBAQCBjbGFzcyBU
aHJlYWRXaXRoUGFyYW0gOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgIC8vIFdoZW4g
bm9uLU5VTEwsIHVzZWQgdG8gYmxvY2sgZXhlY3V0aW9uIHVudGlsIHRoZSBjb250cm9sbGVyIHRo
cmVhZAogICAvLyBub3RpZmllcy4KICAgTm90aWZpY2F0aW9uKiBjb25zdCB0aHJlYWRfY2FuX3N0
YXJ0XzsKLSAgYm9vbCBmaW5pc2hlZF87ICAvLyB0cnVlIGlmZiB3ZSBrbm93IHRoYXQgdGhlIHRo
cmVhZCBmdW5jdGlvbiBoYXMgZmluaXNoZWQuCisgIGJvb2wgZmluaXNoZWRfOyAgLy8gdHJ1ZSBp
ZiBhbmQgb25seSBpZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlvbiBoYXMKKyAgICAg
ICAgICAgICAgICAgICAvLyBmaW5pc2hlZC4KICAgcHRocmVhZF90IHRocmVhZF87ICAvLyBUaGUg
bmF0aXZlIHRocmVhZCBvYmplY3QuCiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhUaHJlYWRXaXRoUGFyYW0pOwpAQCAtMjAyNyw3ICsxNjEyLDcgQEAgY2xhc3MgVGhyZWFkTG9j
YWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgRGVmYXVsdFZhbHVlSG9sZGVy
RmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgogICAgIERl
ZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1YWwgVmFsdWVIb2xkZXIqIE1h
a2VOZXdIb2xkZXIoKSBjb25zdCB7IHJldHVybiBuZXcgVmFsdWVIb2xkZXIoKTsgfQorICAgIFZh
bHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbmV3IFZh
bHVlSG9sZGVyKCk7IH0KIAogICAgcHJpdmF0ZToKICAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FO
RF9BU1NJR05fKERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkpOwpAQCAtMjAzNiw3ICsxNjIxLDcg
QEAgY2xhc3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3Mg
SW5zdGFuY2VWYWx1ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsK
ICAgIHB1YmxpYzoKICAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeShjb25z
dCBUJiB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciog
TWFrZU5ld0hvbGRlcigpIGNvbnN0IHsKKyAgICBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigp
IGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcgVmFsdWVIb2xkZXIodmFsdWVfKTsK
ICAgICB9CiAKQEAgLTIwNDYsNyArMTYzMSw3IEBAIGNsYXNzIFRocmVhZExvY2FsIDogcHVibGlj
IFRocmVhZExvY2FsQmFzZSB7CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhJ
bnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSk7CiAgIH07CiAKLSAgc2NvcGVkX3B0cjxWYWx1ZUhv
bGRlckZhY3Rvcnk+IGRlZmF1bHRfZmFjdG9yeV87CisgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZUhv
bGRlckZhY3Rvcnk+IGRlZmF1bHRfZmFjdG9yeV87CiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9B
TkRfQVNTSUdOXyhUaHJlYWRMb2NhbCk7CiB9OwpAQCAtMjExNSw3ICsxNzAwLDcgQEAgY2xhc3Mg
TXV0ZXhCYXNlIHsKIGNsYXNzIE11dGV4IDogcHVibGljIE11dGV4QmFzZSB7CiAgcHVibGljOgog
ICBNdXRleCgpIHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4
X2luaXQoJm11dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0
aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgICAgaGFzX293bmVyXyA9IGZh
bHNlOwogICB9CiAgIH5NdXRleCgpIHsKQEAgLTIyMTMsNyArMTc5OCw3IEBAIGNsYXNzIEdURVNU
X0FQSV8gVGhyZWFkTG9jYWwgewogICBUKiBHZXRPckNyZWF0ZVZhbHVlKCkgY29uc3QgewogICAg
IFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlKiBjb25zdCBob2xkZXIgPQogICAgICAgICBzdGF0
aWNfY2FzdDxUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSo+KHB0aHJlYWRfZ2V0c3BlY2lmaWMo
a2V5XykpOwotICAgIGlmIChob2xkZXIgIT0gTlVMTCkgeworICAgIGlmIChob2xkZXIgIT0gbnVs
bHB0cikgewogICAgICAgcmV0dXJuIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxWYWx1ZUhv
bGRlcj4oaG9sZGVyKS0+cG9pbnRlcigpOwogICAgIH0KIApAQCAtMjIzNiw3ICsxODIxLDcgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2NhbCB7CiAgIGNsYXNzIERlZmF1bHRWYWx1ZUhvbGRl
ckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBE
ZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KCkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBN
YWtlTmV3SG9sZGVyKCkgY29uc3QgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7IH0KKyAgICBW
YWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG5ldyBW
YWx1ZUhvbGRlcigpOyB9CiAKICAgIHByaXZhdGU6CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9B
TkRfQVNTSUdOXyhEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KTsKQEAgLTIyNDUsNyArMTgzMCw3
IEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBjbGFzcyBJbnN0YW5jZVZhbHVl
SG9sZGVyRmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgog
ICAgIGV4cGxpY2l0IEluc3RhbmNlVmFsdWVIb2xkZXJGYWN0b3J5KGNvbnN0IFQmIHZhbHVlKSA6
IHZhbHVlXyh2YWx1ZSkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVy
KCkgY29uc3QgeworICAgIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJp
ZGUgewogICAgICAgcmV0dXJuIG5ldyBWYWx1ZUhvbGRlcih2YWx1ZV8pOwogICAgIH0KIApAQCAt
MjI1Nyw3ICsxODQyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2NhbCB7CiAKICAgLy8g
QSBrZXkgcHRocmVhZHMgdXNlcyBmb3IgbG9va2luZyB1cCBwZXItdGhyZWFkIHZhbHVlcy4KICAg
Y29uc3QgcHRocmVhZF9rZXlfdCBrZXlfOwotICBzY29wZWRfcHRyPFZhbHVlSG9sZGVyRmFjdG9y
eT4gZGVmYXVsdF9mYWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVfcHRyPFZhbHVlSG9sZGVyRmFjdG9y
eT4gZGVmYXVsdF9mYWN0b3J5XzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFRocmVhZExvY2FsKTsKIH07CkBAIC0yMzE1LDc3ICsxOTAwLDEyIEBAIGNsYXNzIEdURVNUX0FQ
SV8gVGhyZWFkTG9jYWwgewogLy8gd2UgY2Fubm90IGRldGVjdCBpdC4KIEdURVNUX0FQSV8gc2l6
ZV90IEdldFRocmVhZENvdW50KCk7CiAKLS8vIFBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91
Z2ggZWxsaXBzaXMgKC4uLikgY3Jhc2hlcyB0aGUgQVJNCi0vLyBjb21waWxlciBhbmQgZ2VuZXJh
dGVzIGEgd2FybmluZyBpbiBTdW4gU3R1ZGlvIGJlZm9yZSAxMnU0LiBUaGUgTm9raWEgU3ltYmlh
bgotLy8gYW5kIHRoZSBJQk0gWEwgQy9DKysgY29tcGlsZXIgdHJ5IHRvIGluc3RhbnRpYXRlIGEg
Y29weSBjb25zdHJ1Y3RvcgotLy8gZm9yIG9iamVjdHMgcGFzc2VkIHRocm91Z2ggZWxsaXBzaXMg
KC4uLiksIGZhaWxpbmcgZm9yIHVuY29weWFibGUKLS8vIG9iamVjdHMuICBXZSBkZWZpbmUgdGhp
cyB0byBlbnN1cmUgdGhhdCBvbmx5IFBPRCBpcyBwYXNzZWQgdGhyb3VnaAotLy8gZWxsaXBzaXMg
b24gdGhlc2Ugc3lzdGVtcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IGRlZmluZWQo
X19JQk1DUFBfXykgfHwgXAotICAgICAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9f
Q0MgPCAweDUxMzApCi0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJl
IHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRo
cm91Z2ggZWxsaXBzaXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9FTExJUFNJU19ORUVEU19QT0Rf
IDEKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMIDEKLSNlbmRpZgotCi0v
LyBUaGUgTm9raWEgU3ltYmlhbiBhbmQgSUJNIFhMIEMvQysrIGNvbXBpbGVycyBjYW5ub3QgZGVj
aWRlIGJldHdlZW4KLS8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBs
YXRlLiAgVGhlc2UgY29tcGlsZXJzCi0vLyBfY2FuXyBkZWNpZGUgYmV0d2VlbiBjbGFzcyB0ZW1w
bGF0ZSBzcGVjaWFsaXphdGlvbnMgZm9yIFQgYW5kIFQqLAotLy8gc28gYSB0cjE6OnR5cGVfdHJh
aXRzLWxpa2UgaXNfcG9pbnRlciB3b3Jrcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8
IGRlZmluZWQoX19JQk1DUFBfXykKLSMgZGVmaW5lIEdURVNUX05FRURTX0lTX1BPSU5URVJfIDEK
LSNlbmRpZgotCi10ZW1wbGF0ZSA8Ym9vbCBib29sX3ZhbHVlPgotc3RydWN0IGJvb2xfY29uc3Rh
bnQgewotICB0eXBlZGVmIGJvb2xfY29uc3RhbnQ8Ym9vbF92YWx1ZT4gdHlwZTsKLSAgc3RhdGlj
IGNvbnN0IGJvb2wgdmFsdWUgPSBib29sX3ZhbHVlOwotfTsKLXRlbXBsYXRlIDxib29sIGJvb2xf
dmFsdWU+IGNvbnN0IGJvb2wgYm9vbF9jb25zdGFudDxib29sX3ZhbHVlPjo6dmFsdWU7Ci0KLXR5
cGVkZWYgYm9vbF9jb25zdGFudDxmYWxzZT4gZmFsc2VfdHlwZTsKLXR5cGVkZWYgYm9vbF9jb25z
dGFudDx0cnVlPiB0cnVlX3R5cGU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
Pgotc3RydWN0IGlzX3NhbWUgOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfc2FtZTxULCBUPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRlciA6IHB1YmxpYyBmYWxz
ZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBpc19wb2ludGVyPFQq
PiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4K
LXN0cnVjdCBJdGVyYXRvclRyYWl0cyB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OnZh
bHVlX3R5cGUgdmFsdWVfdHlwZTsKLX07Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1
Y3QgSXRlcmF0b3JUcmFpdHM8VCo+IHsKLSAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBJdGVyYXRvclRyYWl0czxjb25zdCBUKj4gewot
ICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTCiAjIGRl
ZmluZSBHVEVTVF9QQVRIX1NFUF8gIlxcIgogIyBkZWZpbmUgR1RFU1RfSEFTX0FMVF9QQVRIX1NF
UF8gMQotLy8gVGhlIGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUgY29tcGlsZXIgc3Vw
cG9ydHMuCi10eXBlZGVmIF9faW50NjQgQmlnZ2VzdEludDsKICNlbHNlCiAjIGRlZmluZSBHVEVT
VF9QQVRIX1NFUF8gIi8iCiAjIGRlZmluZSBHVEVTVF9IQVNfQUxUX1BBVEhfU0VQXyAwCi10eXBl
ZGVmIGxvbmcgbG9uZyBCaWdnZXN0SW50OyAgLy8gTk9MSU5UCiAjZW5kaWYgIC8vIEdURVNUX09T
X1dJTkRPV1MKIAogLy8gVXRpbGl0aWVzIGZvciBjaGFyLgpAQCAtMjQxNiw2ICsxOTM2LDE5IEBA
IGlubGluZSBib29sIElzVXBwZXIoY2hhciBjaCkgewogaW5saW5lIGJvb2wgSXNYRGlnaXQoY2hh
ciBjaCkgewogICByZXR1cm4gaXN4ZGlnaXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gp
KSAhPSAwOwogfQorI2lmZGVmIF9fY3BwX2NoYXI4X3QKK2lubGluZSBib29sIElzWERpZ2l0KGNo
YXI4X3QgY2gpIHsKKyAgcmV0dXJuIGlzeGRpZ2l0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KGNoKSkgIT0gMDsKK30KKyNlbmRpZgoraW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjE2X3QgY2gp
IHsKKyAgY29uc3QgdW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KGNoKTsKKyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRl
KSAhPSAwOworfQoraW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjMyX3QgY2gpIHsKKyAgY29uc3Qg
dW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsK
KyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOworfQog
aW5saW5lIGJvb2wgSXNYRGlnaXQod2NoYXJfdCBjaCkgewogICBjb25zdCB1bnNpZ25lZCBjaGFy
IGxvd19ieXRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOwogICByZXR1cm4gY2gg
PT0gbG93X2J5dGUgJiYgaXN4ZGlnaXQobG93X2J5dGUpICE9IDA7CkBAIC0yNDUwLDE2ICsxOTgz
LDE2IEBAIG5hbWVzcGFjZSBwb3NpeCB7CiB0eXBlZGVmIHN0cnVjdCBfc3RhdCBTdGF0U3RydWN0
OwogCiAjIGlmZGVmIF9fQk9STEFORENfXwotaW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7IHJl
dHVybiBpc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1cm4g
aXNhdHR5KGZkKTsgfQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25z
dCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyaWNtcChzMSwgczIpOwogfQogaW5saW5lIGNoYXIq
IFN0ckR1cChjb25zdCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9CiAjIGVsc2Ug
IC8vICFfX0JPUkxBTkRDX18KICMgIGlmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi1pbmxpbmUg
aW50IElzQVRUWShpbnQgLyogZmQgKi8pIHsgcmV0dXJuIDA7IH0KK2lubGluZSBpbnQgRG9Jc0FU
VFkoaW50IC8qIGZkICovKSB7IHJldHVybiAwOyB9CiAjICBlbHNlCi1pbmxpbmUgaW50IElzQVRU
WShpbnQgZmQpIHsgcmV0dXJuIF9pc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGlu
dCBmZCkgeyByZXR1cm4gX2lzYXR0eShmZCk7IH0KICMgIGVuZGlmICAvLyBHVEVTVF9PU19XSU5E
T1dTX01PQklMRQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBj
aGFyKiBzMikgewogICByZXR1cm4gX3N0cmljbXAoczEsIHMyKTsKQEAgLTI0ODAsMTIgKzIwMTMs
MjggQEAgaW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsKIH0KICMgZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKKyNlbGlmIEdURVNUX09TX0VTUDgyNjYK
K3R5cGVkZWYgc3RydWN0IHN0YXQgU3RhdFN0cnVjdDsKKworaW5saW5lIGludCBGaWxlTm8oRklM
RSogZmlsZSkgeyByZXR1cm4gZmlsZW5vKGZpbGUpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGlu
dCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBTdGF0KGNvbnN0IGNoYXIq
IHBhdGgsIFN0YXRTdHJ1Y3QqIGJ1ZikgeworICAvLyBzdGF0IGZ1bmN0aW9uIG5vdCBpbXBsZW1l
bnRlZCBvbiBFU1A4MjY2CisgIHJldHVybiAwOworfQoraW5saW5lIGludCBTdHJDYXNlQ21wKGNv
bnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgeworICByZXR1cm4gc3RyY2FzZWNtcChzMSwg
czIpOworfQoraW5saW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0
cmR1cChzcmMpOyB9CitpbmxpbmUgaW50IFJtRGlyKGNvbnN0IGNoYXIqIGRpcikgeyByZXR1cm4g
cm1kaXIoZGlyKTsgfQoraW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsg
cmV0dXJuIFNfSVNESVIoc3Quc3RfbW9kZSk7IH0KKwogI2Vsc2UKIAogdHlwZWRlZiBzdHJ1Y3Qg
c3RhdCBTdGF0U3RydWN0OwogCiBpbmxpbmUgaW50IEZpbGVObyhGSUxFKiBmaWxlKSB7IHJldHVy
biBmaWxlbm8oZmlsZSk7IH0KLWlubGluZSBpbnQgSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNh
dHR5KGZkKTsgfQoraW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShm
ZCk7IH0KIGlubGluZSBpbnQgU3RhdChjb25zdCBjaGFyKiBwYXRoLCBTdGF0U3RydWN0KiBidWYp
IHsgcmV0dXJuIHN0YXQocGF0aCwgYnVmKTsgfQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0
IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyY2FzZWNtcChzMSwgczIp
OwpAQCAtMjQ5NiwxNCArMjA0NSwyMSBAQCBpbmxpbmUgYm9vbCBJc0Rpcihjb25zdCBTdGF0U3Ry
dWN0JiBzdCkgeyByZXR1cm4gU19JU0RJUihzdC5zdF9tb2RlKTsgfQogCiAjZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKIAoraW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7CisgIC8vIERvSXNB
VFRZIG1pZ2h0IGNoYW5nZSBlcnJubyAoZm9yIGV4YW1wbGUgRU5PVFRZIGluIGNhc2UgeW91IHJl
ZGlyZWN0IHN0ZG91dAorICAvLyB0byBhIGZpbGUgb24gTGludXgpLCB3aGljaCBpcyB1bmV4cGVj
dGVkLCBzbyBzYXZlIHRoZSBwcmV2aW91cyB2YWx1ZSwgYW5kCisgIC8vIHJlc3RvcmUgaXQgYWZ0
ZXIgdGhlIGNhbGwuCisgIGludCBzYXZlZEVycm5vID0gZXJybm87CisgIGludCBpc0F0dHlWYWx1
ZSA9IERvSXNBVFRZKGZkKTsKKyAgZXJybm8gPSBzYXZlZEVycm5vOworCisgIHJldHVybiBpc0F0
dHlWYWx1ZTsKK30KKwogLy8gRnVuY3Rpb25zIGRlcHJlY2F0ZWQgYnkgTVNWQyA4LjAuCiAKIEdU
RVNUX0RJU0FCTEVfTVNDX0RFUFJFQ0FURURfUFVTSF8oKQogCi1pbmxpbmUgY29uc3QgY2hhciog
U3RyTkNweShjaGFyKiBkZXN0LCBjb25zdCBjaGFyKiBzcmMsIHNpemVfdCBuKSB7Ci0gIHJldHVy
biBzdHJuY3B5KGRlc3QsIHNyYywgbik7Ci19Ci0KIC8vIENoRGlyKCksIEZSZW9wZW4oKSwgRkRP
cGVuKCksIFJlYWQoKSwgV3JpdGUoKSwgQ2xvc2UoKSwgYW5kCiAvLyBTdHJFcnJvcigpIGFyZW4n
dCBuZWVkZWQgb24gV2luZG93cyBDRSBhdCB0aGlzIHRpbWUgYW5kIHRodXMgbm90CiAvLyBkZWZp
bmVkIHRoZXJlLgpAQCAtMjUxMiw3ICsyMDY4LDE1IEBAIGlubGluZSBjb25zdCBjaGFyKiBTdHJO
Q3B5KGNoYXIqIGRlc3QsIGNvbnN0IGNoYXIqIHNyYywgc2l6ZV90IG4pIHsKIGlubGluZSBpbnQg
Q2hEaXIoY29uc3QgY2hhciogZGlyKSB7IHJldHVybiBjaGRpcihkaXIpOyB9CiAjZW5kaWYKIGlu
bGluZSBGSUxFKiBGT3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlKSB7Cisj
aWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5HVworICBzdHJ1Y3Qg
d2NoYXJfY29kZWN2dCA6IHB1YmxpYyBzdGQ6OmNvZGVjdnQ8d2NoYXJfdCwgY2hhciwgc3RkOjpt
YnN0YXRlX3Q+IHt9OworICBzdGQ6OndzdHJpbmdfY29udmVydDx3Y2hhcl9jb2RlY3Z0PiBjb252
ZXJ0ZXI7CisgIHN0ZDo6d3N0cmluZyB3aWRlX3BhdGggPSBjb252ZXJ0ZXIuZnJvbV9ieXRlcyhw
YXRoKTsKKyAgc3RkOjp3c3RyaW5nIHdpZGVfbW9kZSA9IGNvbnZlcnRlci5mcm9tX2J5dGVzKG1v
ZGUpOworICByZXR1cm4gX3dmb3Blbih3aWRlX3BhdGguY19zdHIoKSwgd2lkZV9tb2RlLmNfc3Ry
KCkpOworI2Vsc2UgIC8vIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlO
R1cKICAgcmV0dXJuIGZvcGVuKHBhdGgsIG1vZGUpOworI2VuZGlmICAvLyBHVEVTVF9PU19XSU5E
T1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01JTkdXCiB9CiAjaWYgIUdURVNUX09TX1dJTkRPV1Nf
TU9CSUxFCiBpbmxpbmUgRklMRSAqRlJlb3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFy
KiBtb2RlLCBGSUxFKiBzdHJlYW0pIHsKQEAgLTI1MzIsMTUgKzIwOTYsMTYgQEAgaW5saW5lIGlu
dCBDbG9zZShpbnQgZmQpIHsgcmV0dXJuIGNsb3NlKGZkKTsgfQogaW5saW5lIGNvbnN0IGNoYXIq
IFN0ckVycm9yKGludCBlcnJudW0pIHsgcmV0dXJuIHN0cmVycm9yKGVycm51bSk7IH0KICNlbmRp
ZgogaW5saW5lIGNvbnN0IGNoYXIqIEdldEVudihjb25zdCBjaGFyKiBuYW1lKSB7Ci0jaWYgR1RF
U1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9P
U19XSU5ET1dTX1JUCi0gIC8vIFdlIGFyZSBvbiBXaW5kb3dzIENFLCB3aGljaCBoYXMgbm8gZW52
aXJvbm1lbnQgdmFyaWFibGVzLgorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNU
X09TX1dJTkRPV1NfUEhPTkUgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1NfUlQgfHwgR1RFU1Rf
T1NfRVNQODI2NgorICAvLyBXZSBhcmUgb24gYW4gZW1iZWRkZWQgcGxhdGZvcm0sIHdoaWNoIGhh
cyBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAgIHN0YXRpY19jYXN0PHZvaWQ+KG5hbWUpOyAg
Ly8gVG8gcHJldmVudCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5nLgotICByZXR1cm4gTlVMTDsK
KyAgcmV0dXJuIG51bGxwdHI7CiAjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5l
ZChfX1N1bk9TXzVfOCkgfHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKICAgLy8gRW52aXJvbm1lbnQg
dmFyaWFibGVzIHdoaWNoIHdlIHByb2dyYW1tYXRpY2FsbHkgY2xlYXIgd2lsbCBiZSBzZXQgdG8g
dGhlCiAgIC8vIGVtcHR5IHN0cmluZyByYXRoZXIgdGhhbiB1bnNldCAoTlVMTCkuICBIYW5kbGUg
dGhhdCBjYXNlLgogICBjb25zdCBjaGFyKiBjb25zdCBlbnYgPSBnZXRlbnYobmFtZSk7Ci0gIHJl
dHVybiAoZW52ICE9IE5VTEwgJiYgZW52WzBdICE9ICdcMCcpID8gZW52IDogTlVMTDsKKyAgcmV0
dXJuIChlbnYgIT0gbnVsbHB0ciAmJiBlbnZbMF0gIT0gJ1wwJykgPyBlbnYgOiBudWxscHRyOwog
I2Vsc2UKICAgcmV0dXJuIGdldGVudihuYW1lKTsKICNlbmRpZgpAQCAtMjU1Miw5ICsyMTE3LDkg
QEAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9QT1BfKCkKIC8vIFdpbmRvd3MgQ0UgaGFz
IG5vIEMgbGlicmFyeS4gVGhlIGFib3J0KCkgZnVuY3Rpb24gaXMgdXNlZCBpbgogLy8gc2V2ZXJh
bCBwbGFjZXMgaW4gR29vZ2xlIFRlc3QuIFRoaXMgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgYSBy
ZWFzb25hYmxlCiAvLyBpbWl0YXRpb24gb2Ygc3RhbmRhcmQgYmVoYXZpb3VyLgotdm9pZCBBYm9y
dCgpOworW1tub3JldHVybl1dIHZvaWQgQWJvcnQoKTsKICNlbHNlCi1pbmxpbmUgdm9pZCBBYm9y
dCgpIHsgYWJvcnQoKTsgfQorW1tub3JldHVybl1dIGlubGluZSB2b2lkIEFib3J0KCkgeyBhYm9y
dCgpOyB9CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKIH0gIC8vIG5hbWVz
cGFjZSBwb3NpeApAQCAtMjU2NCwyNyArMjEyOSwyNCBAQCBpbmxpbmUgdm9pZCBBYm9ydCgpIHsg
YWJvcnQoKTsgfQogLy8gTVNWQy1iYXNlZCBwbGF0Zm9ybXMuICBXZSBtYXAgdGhlIEdURVNUX1NO
UFJJTlRGXyBtYWNybyB0byB0aGUgYXBwcm9wcmlhdGUKIC8vIGZ1bmN0aW9uIGluIG9yZGVyIHRv
IGFjaGlldmUgdGhhdC4gIFdlIHVzZSBtYWNybyBkZWZpbml0aW9uIGhlcmUgYmVjYXVzZQogLy8g
c25wcmludGYgaXMgYSB2YXJpYWRpYyBmdW5jdGlvbi4KLSNpZiBfTVNDX1ZFUiA+PSAxNDAwICYm
ICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQorI2lmIF9NU0NfVkVSICYmICFHVEVTVF9PU19XSU5E
T1dTX01PQklMRQogLy8gTVNWQyAyMDA1IGFuZCBhYm92ZSBzdXBwb3J0IHZhcmlhZGljIG1hY3Jv
cy4KICMgZGVmaW5lIEdURVNUX1NOUFJJTlRGXyhidWZmZXIsIHNpemUsIGZvcm1hdCwgLi4uKSBc
CiAgICAgIF9zbnByaW50Zl9zKGJ1ZmZlciwgc2l6ZSwgc2l6ZSwgZm9ybWF0LCBfX1ZBX0FSR1Nf
XykKICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCi0vLyBXaW5kb3dzIENFIGRvZXMgbm90IGRlZmlu
ZSBfc25wcmludGZfcyBhbmQgTVNWQyBwcmlvciB0byAyMDA1IGRvZXNuJ3QKLS8vIGNvbXBsYWlu
IGFib3V0IF9zbnByaW50Zi4KKy8vIFdpbmRvd3MgQ0UgZG9lcyBub3QgZGVmaW5lIF9zbnByaW50
Zl9zCiAjIGRlZmluZSBHVEVTVF9TTlBSSU5URl8gX3NucHJpbnRmCiAjZWxzZQogIyBkZWZpbmUg
R1RFU1RfU05QUklOVEZfIHNucHJpbnRmCiAjZW5kaWYKIAotLy8gVGhlIG1heGltdW0gbnVtYmVy
IGEgQmlnZ2VzdEludCBjYW4gcmVwcmVzZW50LiAgVGhpcyBkZWZpbml0aW9uCi0vLyB3b3JrcyBu
byBtYXR0ZXIgQmlnZ2VzdEludCBpcyByZXByZXNlbnRlZCBpbiBvbmUncyBjb21wbGVtZW50IG9y
Ci0vLyB0d28ncyBjb21wbGVtZW50LgorLy8gVGhlIGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlw
ZSB0aGUgY29tcGlsZXIgc3VwcG9ydHMuCiAvLwotLy8gV2UgY2Fubm90IHJlbHkgb24gbnVtZXJp
Y19saW1pdHMgaW4gU1RMLCBhcyBfX2ludDY0IGFuZCBsb25nIGxvbmcKLS8vIGFyZSBub3QgcGFy
dCBvZiBzdGFuZGFyZCBDKysgYW5kIG51bWVyaWNfbGltaXRzIGRvZXNuJ3QgbmVlZCB0byBiZQot
Ly8gZGVmaW5lZCBmb3IgdGhlbS4KLWNvbnN0IEJpZ2dlc3RJbnQga01heEJpZ2dlc3RJbnQgPQot
ICAgIH4oc3RhdGljX2Nhc3Q8QmlnZ2VzdEludD4oMSkgPDwgKDgqc2l6ZW9mKEJpZ2dlc3RJbnQp
IC0gMSkpOworLy8gbG9uZyBsb25nIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVhc3QgNjQtYml0
cyBpbiBDKysxMS4KK3VzaW5nIEJpZ2dlc3RJbnQgPSBsb25nIGxvbmc7ICAvLyBOT0xJTlQKKwor
Ly8gVGhlIG1heGltdW0gbnVtYmVyIGEgQmlnZ2VzdEludCBjYW4gcmVwcmVzZW50LgorY29uc3Rl
eHByIEJpZ2dlc3RJbnQga01heEJpZ2dlc3RJbnQgPSAoc3RkOjpudW1lcmljX2xpbWl0czxCaWdn
ZXN0SW50Pjo6bWF4KSgpOwogCiAvLyBUaGlzIHRlbXBsYXRlIGNsYXNzIHNlcnZlcyBhcyBhIGNv
bXBpbGUtdGltZSBmdW5jdGlvbiBmcm9tIHNpemUgdG8KIC8vIHR5cGUuICBJdCBtYXBzIGEgc2l6
ZSBpbiBieXRlcyB0byBhIHByaW1pdGl2ZSB0eXBlIHdpdGggdGhhdApAQCAtMjYwOSw0MCArMjE3
MSwyNyBAQCBjbGFzcyBUeXBlV2l0aFNpemUgewogIHB1YmxpYzoKICAgLy8gVGhpcyBwcmV2ZW50
cyB0aGUgdXNlciBmcm9tIHVzaW5nIFR5cGVXaXRoU2l6ZTxOPiB3aXRoIGluY29ycmVjdAogICAv
LyB2YWx1ZXMgb2YgTi4KLSAgdHlwZWRlZiB2b2lkIFVJbnQ7CisgIHVzaW5nIFVJbnQgPSB2b2lk
OwogfTsKIAogLy8gVGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDQuCiB0ZW1wbGF0ZSA8Pgog
Y2xhc3MgVHlwZVdpdGhTaXplPDQ+IHsKICBwdWJsaWM6Ci0gIC8vIHVuc2lnbmVkIGludCBoYXMg
c2l6ZSA0IGluIGJvdGggZ2NjIGFuZCBNU1ZDLgotICAvLwotICAvLyBBcyBiYXNlL2Jhc2ljdHlw
ZXMuaCBkb2Vzbid0IGNvbXBpbGUgb24gV2luZG93cywgd2UgY2Fubm90IHVzZQotICAvLyB1aW50
MzIsIHVpbnQ2NCwgYW5kIGV0YyBoZXJlLgotICB0eXBlZGVmIGludCBJbnQ7Ci0gIHR5cGVkZWYg
dW5zaWduZWQgaW50IFVJbnQ7CisgIHVzaW5nIEludCA9IHN0ZDo6aW50MzJfdDsKKyAgdXNpbmcg
VUludCA9IHN0ZDo6dWludDMyX3Q7CiB9OwogCiAvLyBUaGUgc3BlY2lhbGl6YXRpb24gZm9yIHNp
emUgOC4KIHRlbXBsYXRlIDw+CiBjbGFzcyBUeXBlV2l0aFNpemU8OD4gewogIHB1YmxpYzoKLSNp
ZiBHVEVTVF9PU19XSU5ET1dTCi0gIHR5cGVkZWYgX19pbnQ2NCBJbnQ7Ci0gIHR5cGVkZWYgdW5z
aWduZWQgX19pbnQ2NCBVSW50OwotI2Vsc2UKLSAgdHlwZWRlZiBsb25nIGxvbmcgSW50OyAgLy8g
Tk9MSU5UCi0gIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVJbnQ7ICAvLyBOT0xJTlQKLSNl
bmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUworICB1c2luZyBJbnQgPSBzdGQ6OmludDY0X3Q7Cisg
IHVzaW5nIFVJbnQgPSBzdGQ6OnVpbnQ2NF90OwogfTsKIAogLy8gSW50ZWdlciB0eXBlcyBvZiBr
bm93biBzaXplcy4KLXR5cGVkZWYgVHlwZVdpdGhTaXplPDQ+OjpJbnQgSW50MzI7Ci10eXBlZGVm
IFR5cGVXaXRoU2l6ZTw0Pjo6VUludCBVSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6
SW50IEludDY0OwotdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OlVJbnQgVUludDY0OwotdHlwZWRl
ZiBUeXBlV2l0aFNpemU8OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUg
aW4gbWlsbGlzZWNvbmRzLgordXNpbmcgVGltZUluTWlsbGlzID0gaW50NjRfdDsgIC8vIFJlcHJl
c2VudHMgdGltZSBpbiBtaWxsaXNlY29uZHMuCiAKIC8vIFV0aWxpdGllcyBmb3IgY29tbWFuZCBs
aW5lIGZsYWdzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAKQEAgLTI2NjEsNyArMjIxMCw3
IEBAIHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVz
ZW50cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KIC8vIE1hY3JvcyBmb3IgZGVjbGFyaW5nIGZsYWdz
LgogIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9ib29sXyhuYW1lKSBHVEVTVF9BUElfIGV4dGVybiBi
b29sIEdURVNUX0ZMQUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfaW50MzJfKG5hbWUp
IFwKLSAgICBHVEVTVF9BUElfIGV4dGVybiA6OnRlc3Rpbmc6OmludGVybmFsOjpJbnQzMiBHVEVT
VF9GTEFHKG5hbWUpCisgICAgR1RFU1RfQVBJXyBleHRlcm4gc3RkOjppbnQzMl90IEdURVNUX0ZM
QUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfc3RyaW5nXyhuYW1lKSBcCiAgICAgR1RF
U1RfQVBJXyBleHRlcm4gOjpzdGQ6OnN0cmluZyBHVEVTVF9GTEFHKG5hbWUpCiAKQEAgLTI2Njks
NyArMjIxOCw3IEBAIHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAg
Ly8gUmVwcmVzZW50cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KICMgZGVmaW5lIEdURVNUX0RFRklO
RV9ib29sXyhuYW1lLCBkZWZhdWx0X3ZhbCwgZG9jKSBcCiAgICAgR1RFU1RfQVBJXyBib29sIEdU
RVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCiAjIGRlZmluZSBHVEVTVF9ERUZJTkVfaW50
MzJfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKLSAgICBHVEVTVF9BUElfIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkludDMyIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCisgICAgR1RF
U1RfQVBJXyBzdGQ6OmludDMyX3QgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKICMg
ZGVmaW5lIEdURVNUX0RFRklORV9zdHJpbmdfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKICAg
ICBHVEVTVF9BUElfIDo6c3RkOjpzdHJpbmcgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3Zh
bCkKIApAQCAtMjY4NCwxOSArMjIzMywxNTIgQEAgdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46Oklu
dCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzLgogLy8g
UGFyc2VzICdzdHInIGZvciBhIDMyLWJpdCBzaWduZWQgaW50ZWdlci4gIElmIHN1Y2Nlc3NmdWws
IHdyaXRlcyB0aGUgcmVzdWx0CiAvLyB0byAqdmFsdWUgYW5kIHJldHVybnMgdHJ1ZTsgb3RoZXJ3
aXNlIGxlYXZlcyAqdmFsdWUgdW5jaGFuZ2VkIGFuZCByZXR1cm5zCiAvLyBmYWxzZS4KLS8vIEZJ
WE1FOiBGaW5kIGEgYmV0dGVyIHdheSB0byByZWZhY3RvciBmbGFnIGFuZCBlbnZpcm9ubWVudCBw
YXJzaW5nCi0vLyBvdXQgb2YgYm90aCBndGVzdC1wb3J0LmNjIGFuZCBndGVzdC5jYyB0byBhdm9p
ZCBleHBvcnRpbmcgdGhpcyB1dGlsaXR5Ci0vLyBmdW5jdGlvbi4KLWJvb2wgUGFyc2VJbnQzMihj
b25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQzMiogdmFsdWUpOwor
R1RFU1RfQVBJXyBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQsIGNvbnN0
IGNoYXIqIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIHZhbHVlKTsK
IAotLy8gUGFyc2VzIGEgYm9vbC9JbnQzMi9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFy
aWFibGUKKy8vIFBhcnNlcyBhIGJvb2wvaW50MzJfdC9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1l
bnQgdmFyaWFibGUKIC8vIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIEdvb2dsZSBUZXN0IGZs
YWcuCiBib29sIEJvb2xGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgYm9vbCBkZWZhdWx0
X3ZhbCk7Ci1HVEVTVF9BUElfIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZs
YWcsIEludDMyIGRlZmF1bHRfdmFsKTsKK0dURVNUX0FQSV8gaW50MzJfdCBJbnQzMkZyb21HVGVz
dEVudihjb25zdCBjaGFyKiBmbGFnLCBpbnQzMl90IGRlZmF1bHRfdmFsKTsKIHN0ZDo6c3RyaW5n
IE91dHB1dEZsYWdBbHNvQ2hlY2tFbnZWYXIoKTsKIGNvbnN0IGNoYXIqIFN0cmluZ0Zyb21HVGVz
dEVudihjb25zdCBjaGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZhdWx0X3ZhbCk7CiAKIH0gIC8v
IG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAv
LyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KKyNpZiAhZGVmaW5l
ZChHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKQorCisvLyBJbnRlcm5hbCBNYWNybyB0byBtYXJr
IGFuIEFQSSBkZXByZWNhdGVkLCBmb3IgZ29vZ2xldGVzdCB1c2FnZSBvbmx5CisvLyBVc2FnZTog
Y2xhc3MgR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSBNeUNsYXNzIG9yCisvLyBH
VEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpIDxyZXR1cm5fdHlwZT4gbXlGdW5jdGlv
bigpOyBFdmVyeSB1c2FnZSBvZgorLy8gYSBkZXByZWNhdGVkIGVudGl0eSB3aWxsIHRyaWdnZXIg
YSB3YXJuaW5nIHdoZW4gY29tcGlsZWQgd2l0aAorLy8gYC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnNgIG9wdGlvbiAoY2xhbmcsIGdjYywgYW55IF9fR05VQ19fIGNvbXBpbGVyKS4KKy8vIEZvciBt
c3ZjIC9XMyBvcHRpb24gd2lsbCBuZWVkIHRvIGJlIHVzZWQKKy8vIE5vdGUgdGhhdCBmb3IgJ290
aGVyJyBjb21waWxlcnMgdGhpcyBtYWNybyBldmFsdWF0ZXMgdG8gbm90aGluZyB0byBwcmV2ZW50
CisvLyBjb21waWxhdGlvbnMgZXJyb3JzLgorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5l
IEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVk
KG1lc3NhZ2UpKQorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgR1RFU1RfSU5URVJO
QUxfREVQUkVDQVRFRChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2Up
KSkKKyNlbHNlCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNl
bmRpZgorCisjZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQpCisK
KyNpZiBHVEVTVF9IQVNfQUJTTAorLy8gQWx3YXlzIHVzZSBhYnNsOjphbnkgZm9yIFVuaXZlcnNh
bFByaW50ZXI8PiBzcGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0
aCBhYnNsIHN1cHBvcnQuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19BTlkgMQorI2luY2x1
ZGUgImFic2wvdHlwZXMvYW55LmgiCituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgaW50
ZXJuYWwgewordXNpbmcgQW55ID0gOjphYnNsOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisjZWxzZQorI2lmZGVmIF9faGFzX2luY2x1ZGUK
KyNpZiBfX2hhc19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisvLyBP
dGhlcndpc2UgZm9yIEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6YW55IGZvciBVbml2ZXJzYWxQ
cmludGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFT
X0FOWSAxCisjaW5jbHVkZSA8YW55PgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGlu
dGVybmFsIHsKK3VzaW5nIEFueSA9IDo6c3RkOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisvLyBUaGUgY2FzZSB3aGVyZSBhYnNsIGlzIGNv
bmZpZ3VyZWQgTk9UIHRvIGFsaWFzIHN0ZDo6YW55IGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2Vu
ZGlmICAvLyBfX2hhc19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisj
ZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKworI2lm
IEdURVNUX0hBU19BQlNMCisvLyBBbHdheXMgdXNlIGFic2w6Om9wdGlvbmFsIGZvciBVbml2ZXJz
YWxQcmludGVyPD4gc3BlY2lhbGl6YXRpb25zIGlmCisvLyBnb29nbGV0ZXN0IGlzIGJ1aWx0IHdp
dGggYWJzbCBzdXBwb3J0LgorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwgMQor
I2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25h
bWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFs
ID0gOjphYnNsOjpvcHRpb25hbDxUPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmcKKyNlbHNlCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFz
X2luY2x1ZGUoPG9wdGlvbmFsPikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3
aXNlIGZvciBDKysxNyBhbmQgaGlnaGVyIHVzZSBzdGQ6Om9wdGlvbmFsIGZvciBVbml2ZXJzYWxQ
cmludGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFT
X09QVElPTkFMIDEKKyNpbmNsdWRlIDxvcHRpb25hbD4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25h
bWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFs
ID0gOjpzdGQ6Om9wdGlvbmFsPFQ+OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBu
YW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5P
VCB0byBhbGlhcyBzdGQ6Om9wdGlvbmFsIGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2VuZGlmICAv
LyBfX2hhc19pbmNsdWRlKDxvcHRpb25hbD4pICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyNl
bmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjaWYg
R1RFU1RfSEFTX0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgZm9yIE1hdGNo
ZXI8PiBzcGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNs
IHN1cHBvcnQuCisjIGRlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcgMQorI2lu
Y2x1ZGUgImFic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oIgorbmFtZXNwYWNlIHRlc3Rpbmcgewor
bmFtZXNwYWNlIGludGVybmFsIHsKK3VzaW5nIFN0cmluZ1ZpZXcgPSA6OmFic2w6OnN0cmluZ192
aWV3OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwor
I2Vsc2UKKyMgaWZkZWYgX19oYXNfaW5jbHVkZQorIyAgIGlmIF9faGFzX2luY2x1ZGUoPHN0cmlu
Z192aWV3PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysx
NyBhbmQgaGlnaGVyIHVzZSBzdGQ6OnN0cmluZ192aWV3IGZvciBNYXRjaGVyPD4KKy8vIHNwZWNp
YWxpemF0aW9ucy4KKyMgICBkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXIDEK
KyNpbmNsdWRlIDxzdHJpbmdfdmlldz4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBp
bnRlcm5hbCB7Cit1c2luZyBTdHJpbmdWaWV3ID0gOjpzdGQ6OnN0cmluZ192aWV3OworfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ug
d2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnN0cmluZ192aWV3IGlz
IG5vdAorLy8gc3VwcG9ydGVkLgorIyAgZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUoPHN0cmluZ192
aWV3PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorIyBlbmRpZiAgLy8gX19oYXNfaW5jbHVk
ZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFTX0FCU0wKKy8vIEFs
d2F5cyB1c2UgYWJzbDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+IHNwZWNpYWxpemF0
aW9ucyBpZiBnb29nbGV0ZXN0CisvLyBpcyBidWlsdCB3aXRoIGFic2wgc3VwcG9ydC4KKyNkZWZp
bmUgR1RFU1RfSU5URVJOQUxfSEFTX1ZBUklBTlQgMQorI2luY2x1ZGUgImFic2wvdHlwZXMvdmFy
aWFudC5oIgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBs
YXRlIDx0eXBlbmFtZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6YWJzbDo6dmFyaWFudDxULi4u
PjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKyNl
bHNlCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPHZhcmlhbnQ+KSAm
JiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9yIEMrKzE3IGFuZCBoaWdo
ZXIgdXNlIHN0ZDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+CisvLyBzcGVjaWFsaXph
dGlvbnMuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIDEKKyNpbmNsdWRlIDx2
YXJpYW50PgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBs
YXRlIDx0eXBlbmFtZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6c3RkOjp2YXJpYW50PFQuLi4+
OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8g
VGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnZhcmlh
bnQgaXMgbm90IHN1cHBvcnRlZC4KKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZSg8dmFyaWFudD4p
ICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaAppbmRl
eCA0YzliNjI2MmMzYzEwMzcyNmFhM2NhYjRjMTk5OTViYWVmOTU4Yjk4Li4xMGY3NzRmOTY2MDZl
NWI5Yjg3YmEzNGVjN2M1MmJhNDc1YWQ4NWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgK
QEAgLTM4LDggKzM4LDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQog
Ci0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCi0j
ZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjaWZu
ZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KKyNk
ZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXwog
CiAjaWZkZWYgX19CT1JMQU5EQ19fCiAvLyBzdHJpbmcuaCBpcyBub3QgZ3VhcmFudGVlZCB0byBw
cm92aWRlIHN0cmNweSBvbiBDKysgQnVpbGRlci4KQEAgLTQ3LDYgKzQ3LDcgQEAKICNlbmRpZgog
CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxzdHJp
bmc+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCkBAIC05NCw3ICs5
NSw4IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGNvbnN0IGNoYXIqIFV0
ZjE2VG9BbnNpKExQQ1dTVFIgdXRmMTZfc3RyKTsKICNlbmRpZgogCi0gIC8vIENvbXBhcmVzIHR3
byBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSBjb250ZW50
LgorICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZXkgaGF2ZSB0aGUgc2FtZQorICAvLyBjb250ZW50LgogICAvLwogICAvLyBVbmxpa2Ug
c3RyY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQog
ICAvLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVM
TCBDIHN0cmluZywKQEAgLTEwNywxNiArMTA5LDE2IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5n
IHsKICAgLy8gcmV0dXJuZWQuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBTaG93V2lkZUNTdHJpbmco
Y29uc3Qgd2NoYXJfdCogd2lkZV9jX3N0cik7CiAKLSAgLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBz
dHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUKLSAgLy8gY29udGVu
dC4KKyAgLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoZXkgaGF2ZSB0aGUKKyAgLy8gc2FtZSBjb250ZW50LgogICAvLwogICAvLyBV
bmxpa2Ugd2NzY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMp
LiAgQQogICAvLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBu
b24tTlVMTCBDIHN0cmluZywKICAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiAgIHN0
YXRpYyBib29sIFdpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywgY29uc3Qgd2No
YXJfdCogcmhzKTsKIAotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNl
LiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAg
Ly8gQ29tcGFyZXMgdHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KICAgLy8KICAg
Ly8gVW5saWtlIHN0cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJn
dW1lbnQocykuCiAgIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0
byBhbnkgbm9uLU5VTEwgQyBzdHJpbmcsCkBAIC0xMjQsOCArMTI2LDggQEAgY2xhc3MgR1RFU1Rf
QVBJXyBTdHJpbmcgewogICBzdGF0aWMgYm9vbCBDYXNlSW5zZW5zaXRpdmVDU3RyaW5nRXF1YWxz
KGNvbnN0IGNoYXIqIGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiByaHMpOwogCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5n
cywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnQuCisgIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3Jpbmcg
Y2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZgorICAvLyB0aGV5IGhhdmUgdGhlIHNh
bWUgY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlv
biBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCiAgIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBj
b25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgd2lkZSBDIHN0cmluZywKQEAgLTEz
OSwxNyArMTQxLDIzIEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGJvb2wg
Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90
KiByaHMpOwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBlbmRzIHdp
dGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcKLSAgLy8gY2FzZS4gQW55IHN0cmluZyBpcyBj
b25zaWRlcmVkIHRvIGVuZCB3aXRoIGFuIGVtcHR5IHN1ZmZpeC4KKyAgLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZlbiBzdHJpbmcgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZm
aXgsCisgIC8vIGlnbm9yaW5nIGNhc2UuIEFueSBzdHJpbmcgaXMgY29uc2lkZXJlZCB0byBlbmQg
d2l0aCBhbiBlbXB0eSBzdWZmaXguCiAgIHN0YXRpYyBib29sIEVuZHNXaXRoQ2FzZUluc2Vuc2l0
aXZlKAogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHN0ciwgY29uc3Qgc3RkOjpzdHJpbmcmIHN1
ZmZpeCk7CiAKICAgLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiUwMmQiLgogICBzdGF0aWMg
c3RkOjpzdHJpbmcgRm9ybWF0SW50V2lkdGgyKGludCB2YWx1ZSk7ICAvLyAiJTAyZCIgZm9yIHdp
ZHRoID09IDIKIAorICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSB0byBnaXZlbiB3aWR0aCB3aXRo
IGxlYWRpbmcgemVyb3MuCisgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRJbnRXaWR0aE4oaW50
IHZhbHVlLCBpbnQgd2lkdGgpOworCiAgIC8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIu
CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRIZXhJbnQoaW50IHZhbHVlKTsKIAorICAvLyBG
b3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJVgiLgorICBzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0
SGV4VUludDMyKHVpbnQzMl90IHZhbHVlKTsKKwogICAvLyBGb3JtYXRzIGEgYnl0ZSBhcyAiJTAy
WCIuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUp
OwogCkBAIC0xNjQsNCArMTcyLDQgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBTdHJpbmdTdHJl
YW1Ub1N0cmluZyg6OnN0ZDo6c3RyaW5nc3RyZWFtKiBzdHJlYW0pOwogfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHVwbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhhM2E2YTAxZmFjNzU1MTdl
YWI4MzEzMTI0MjdlMTVkNWU0ZWJiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXR1cGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIxICswLDAgQEAKLS8vIFRo
aXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC10
dXBsZS5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQotLy8gQ29weXJpZ2h0IDIw
MDkgR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8v
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0v
LyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBv
ZiBUUjEgdHVwbGUgbmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8g
R09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVT
VF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6
OnN0ZDo6cGFpci4KLQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcg
dGhhdCBwcmV2ZW50cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFz
IGEgZnJpZW5kIChpdCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwot
Ly8gYnlwYXNzZXMgdGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQg
b3RoZXJ3aXNlIGJlCi0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lv
bnMgPCAxMiBhbHNvIGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMy
X18pIHx8IChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBk
ZWZpbmUgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRl
ZmluZSBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVT
VF8xMF9UWVBFTkFNRVNfKFUpPiBmcmllbmQgY2xhc3MgdHVwbGU7IFwKLSAgIHByaXZhdGU6Ci0j
ZW5kaWYKLQotLy8gVmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAxMyBkZWZpbmUgc3lt
Ym9scyBpbiBzdGQ6OnRyMSB0aGF0IGNvbmZsaWN0Ci0vLyB3aXRoIG91ciBvd24gZGVmaW5pdGlv
bnMuIFRoZXJlZm9yZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90IHdvcmsgb24KLS8vIHRo
b3NlIGNvbXBpbGVycy4KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAw
ICAvKiAxNjAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMCAqLwotIyBlcnJvciAiZ3Rlc3QncyB0dXBs
ZSBkb2Vzbid0IGNvbXBpbGUgb24gVmlzdWFsIFN0dWRpbyAyMDEwIG9yIGxhdGVyLiBcCi1HVEVT
VF9VU0VfT1dOX1RSMV9UVVBMRSBtdXN0IGJlIHNldCB0byAwIG9uIHRob3NlIGNvbXBpbGVycy4i
Ci0jZW5kaWYKLQotLy8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBs
ZS4KLSNkZWZpbmUgR1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotI2RlZmluZSBHVEVTVF8xX1RV
UExFXyhUKSB0dXBsZTxUIyMwLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCBc
Ci0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfMl9UVVBMRV8oVCkgdHVwbGU8
VCMjMCwgVCMjMSwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQsIHZv
aWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzNfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQj
IzIsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgotI2Rl
ZmluZSBHVEVTVF80X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCB2b2lk
LCB2b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfNV9U
VVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgdm9pZCwgdm9pZCwg
XAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzZfVFVQTEVfKFQpIHR1cGxl
PFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIHZvaWQsIFwKLSAgICB2b2lkLCB2
b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF83X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBU
IyMyLCBUIyMzLCBUIyM0LCBUIyM1LCBUIyM2LCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNk
ZWZpbmUgR1RFU1RfOF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMj
NCwgVCMjNSwgVCMjNiwgXAotICAgIFQjIzcsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzlf
VFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIFQjIzYs
IFwKLSAgICBUIyM3LCBUIyM4LCB2b2lkPgotI2RlZmluZSBHVEVTVF8xMF9UVVBMRV8oVCkgdHVw
bGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMjNiwgXAotICAgIFQjIzcs
IFQjIzgsIFQjIzk+Ci0KLS8vIEdURVNUX25fVFlQRU5BTUVTXyhUKSBkZWNsYXJlcyBhIGxpc3Qg
b2YgbiB0eXBlbmFtZXMuCi0jZGVmaW5lIEdURVNUXzBfVFlQRU5BTUVTXyhUKQotI2RlZmluZSBH
VEVTVF8xX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMAotI2RlZmluZSBHVEVTVF8yX1RZUEVO
QU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMQotI2RlZmluZSBHVEVTVF8zX1RZ
UEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMgot
I2RlZmluZSBHVEVTVF80X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMj
MSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMKLSNkZWZpbmUgR1RFU1RfNV9U
WVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIs
IFwKLSAgICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0Ci0jZGVmaW5lIEdURVNUXzZfVFlQ
RU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBc
Ci0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNQotI2RlZmlu
ZSBHVEVTVF83X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlw
ZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1l
IFQjIzUsIHR5cGVuYW1lIFQjIzYKLSNkZWZpbmUgR1RFU1RfOF9UWVBFTkFNRVNfKFQpIHR5cGVu
YW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBlbmFtZSBU
IyMzLCB0eXBlbmFtZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0eXBlbmFtZSBUIyM2LCB0eXBlbmFt
ZSBUIyM3Ci0jZGVmaW5lIEdURVNUXzlfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBl
bmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUg
VCMjNCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVuYW1lIFQjIzcs
IHR5cGVuYW1lIFQjIzgKLSNkZWZpbmUgR1RFU1RfMTBfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBU
IyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywg
dHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVu
YW1lIFQjIzcsIHR5cGVuYW1lIFQjIzgsIHR5cGVuYW1lIFQjIzkKLQotLy8gSW4gdGhlb3J5LCBk
ZWZpbmluZyBzdHVmZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVo
YXZpb3IuICBXZSBjYW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0
YW5kYXJkCi0vLyBsaWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRy
MSB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMCA9IHZvaWQsIHR5cGVuYW1lIFQxID0gdm9pZCwg
dHlwZW5hbWUgVDIgPSB2b2lkLAotICAgIHR5cGVuYW1lIFQzID0gdm9pZCwgdHlwZW5hbWUgVDQg
PSB2b2lkLCB0eXBlbmFtZSBUNSA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDYgPSB2b2lkLCB0eXBl
bmFtZSBUNyA9IHZvaWQsIHR5cGVuYW1lIFQ4ID0gdm9pZCwKLSAgICB0eXBlbmFtZSBUOSA9IHZv
aWQ+Ci1jbGFzcyB0dXBsZTsKLQotLy8gQW55dGhpbmcgaW4gbmFtZXNwYWNlIGd0ZXN0X2ludGVy
bmFsIGlzIEdvb2dsZSBUZXN0J3MgSU5URVJOQUwKLS8vIElNUExFTUVOVEFUSU9OIERFVEFJTCBh
bmQgTVVTVCBOT1QgQkUgVVNFRCBESVJFQ1RMWSBpbiB1c2VyIGNvZGUuCi1uYW1lc3BhY2UgZ3Rl
c3RfaW50ZXJuYWwgewotCi0vLyBCeVJlZjxUPjo6dHlwZSBpcyBUIGlmIFQgaXMgYSByZWZlcmVu
Y2U7IG90aGVyd2lzZSBpdCdzIGNvbnN0IFQmLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1
Y3QgQnlSZWYgeyB0eXBlZGVmIGNvbnN0IFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8v
IE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgZm9yIEJ5UmVmLgotI2RlZmluZSBHVEVTVF9C
WV9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFsOjpCeVJlZjxUPjo6
dHlwZQotCi0vLyBBZGRSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhl
cndpc2UgaXQncyBUJi4gIFRoaXMKLS8vIGlzIHRoZSBzYW1lIGFzIHRyMTo6YWRkX3JlZmVyZW5j
ZTxUPjo6dHlwZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZiB7IHR5cGVk
ZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3Qg
QWRkUmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5
IHdyYXBwZXIgZm9yIEFkZFJlZi4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRl8oVCkgdHlwZW5hbWUg
OjpzdGQ6OnRyMTo6Z3Rlc3RfaW50ZXJuYWw6OkFkZFJlZjxUPjo6dHlwZQotCi0vLyBBIGhlbHBl
ciBmb3IgaW1wbGVtZW50aW5nIGdldDxrPigpLgotdGVtcGxhdGUgPGludCBrPiBjbGFzcyBHZXQ7
Ci0KLS8vIEEgaGVscGVyIGZvciBpbXBsZW1lbnRpbmcgdHVwbGVfZWxlbWVudDxrLCBUPi4gIGtJ
bmRleFZhbGlkIGlzIHRydWUKLS8vIGlmZiBrIDwgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdHVw
bGUgdHlwZSBULgotdGVtcGxhdGUgPGJvb2wga0luZGV4VmFsaWQsIGludCBrSW5kZXgsIGNsYXNz
IFR1cGxlPgotc3RydWN0IFR1cGxlRWxlbWVudDsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDAsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUMCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDEsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUMSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDIsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUMiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDMsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUMyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDQsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUNCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDUsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUNSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDYsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUNiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDcsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUNyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDgsIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUOCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVO
QU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDksIEdURVNUXzEwX1RVUExFXyhU
KSA+IHsKLSAgdHlwZWRlZiBUOSB0eXBlOwotfTsKLQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2lu
dGVybmFsCi0KLXRlbXBsYXRlIDw+Ci1jbGFzcyB0dXBsZTw+IHsKLSBwdWJsaWM6Ci0gIHR1cGxl
KCkge30KLSAgdHVwbGUoY29uc3QgdHVwbGUmIC8qIHQgKi8pICB7fQotICB0dXBsZSYgb3BlcmF0
b3I9KGNvbnN0IHR1cGxlJiAvKiB0ICovKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQotdGVtcGxh
dGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzFfVFVQTEVfKFQpIHsKLSBw
dWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpH
ZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllf
UkVGXyhUMCkgZjApIDogZjBfKGYwKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYw
Xyh0LmYwXykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBs
ZShjb25zdCBHVEVTVF8xX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pIHt9Ci0KLSAgdHVwbGUm
IG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0
ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0
IEdURVNUXzFfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0K
LSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzFf
VFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzFfVFVQTEVfKFUp
JiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAg
ZjBfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNU
XzJfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNz
IGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSB7fQotCi0g
IGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBm
MSkgOiBmMF8oZjApLAotICAgICAgZjFfKGYxKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0
KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBF
TkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgOiBmMF8odC5m
MF8pLCBmMV8odC5mMV8pIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+
Ci0gIHR1cGxlKGNvbnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIDogZjBfKHAuZmlyc3QpLCBm
MV8ocC5zZWNvbmQpIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyBy
ZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFUp
PgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzJfVFVQTEVfKFUpJiB0KSB7Ci0gICAg
cmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5h
bWUgVTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUxPiYgcCkg
ewotICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0dXJuICp0
aGlzOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxh
dGUgPEdURVNUXzJfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNU
XzJfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfM19UVVBMRV8oVCkgewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6
OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSB7fQotCi0gIGV4cGxpY2l0
IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAg
IEdURVNUX0JZX1JFRl8oVDIpIGYyKSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMikge30KLQot
ICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5m
Ml8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29u
c3QgR1RFU1RfM19UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQu
ZjJfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENv
cHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVw
bGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBD
b3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0g
IHRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25z
dCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQu
ZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYw
XzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFN
RVNfKFQpPgotY2xhc3MgR1RFU1RfNF9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUg
PGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDog
ZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9C
WV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZf
KFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYy
KSwKLSAgICAgIGYzXyhmMykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5m
MF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pIHt9Ci0KLSAgdGVtcGxhdGUg
PEdURVNUXzRfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkm
IHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYz
Xykge30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5
RnJvbSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29w
eUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0
ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3Qg
R1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYx
XzsKLSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICByZXR1cm4gKnRoaXM7
Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNV9UVVBMRV8o
VCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50
ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0
XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZ
X1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8o
VDMpIGYzLAotICAgICAgR1RFU1RfQllfUkVGXyhUNCkgZjQpIDogZjBfKGYwKSwgZjFfKGYxKSwg
ZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6
IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYzXyksCi0gICAgICBm
NF8odC5mNF8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVTXyhVKT4KLSAgdHVw
bGUoY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwg
ZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0Xykge30KLQotICB0dXBsZSYg
b3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRl
bXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3Qg
R1RFU1RfNV9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQot
ICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNV9U
WVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkm
IHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYy
XzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICByZXR1cm4gKnRoaXM7
Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0
IGY0XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVT
VF82X1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFz
cyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCksIGYyXygp
LCBmM18oKSwgZjRfKCksIGY1XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVG
XyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikg
ZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdU
RVNUX0JZX1JFRl8oVDUpIGY1KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksIGYzXyhmMyks
IGY0XyhmNCksCi0gICAgICBmNV8oZjUpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDog
ZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0
Xyh0LmY0XyksIGY1Xyh0LmY1Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNf
KFUpPgotICB0dXBsZShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBm
MV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVf
KHQuZjVfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJu
IENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhVKT4KLSAg
dHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVy
biBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwot
Ci0gIHRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShj
b25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9
IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQu
ZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYw
XzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfN19U
VVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rl
c3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNf
KCksIGY0XygpLCBmNV8oKSwgZjZfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9S
RUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQy
KSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAg
R1RFU1RfQllfUkVGXyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2KSA6IGYwXyhmMCksIGYx
XyhmMSksIGYyXyhmMiksCi0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8oZjUpLCBmNl8oZjYp
IHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwg
ZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2
Xyh0LmY2Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFUpPgotICB0dXBs
ZShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBm
Ml8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZf
KHQuZjZfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJu
IENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhVKT4KLSAg
dHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVy
biBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwot
Ci0gIHRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShj
b25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9
IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQu
ZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIHJldHVybiAqdGhp
czsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAg
VDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZ
UEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF84X1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxl
KCkgOiBmMF8oKSwgZjFfKCksIGYyXygpLCBmM18oKSwgZjRfKCksIGY1XygpLCBmNl8oKSwgZjdf
KCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllf
UkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhU
MykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVGXyhUNSkgZjUs
IEdURVNUX0JZX1JFRl8oVDYpIGY2LAotICAgICAgR1RFU1RfQllfUkVGXyhUNykgZjcpIDogZjBf
KGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSks
IGY2XyhmNiksIGY3XyhmNykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5m
MF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRf
KSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0gIHRlbXBsYXRlIDxH
VEVTVF84X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0
KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18p
LCBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pIHt9Ci0KLSAg
dHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0K
LQotICB0ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9
KGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwot
ICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdU
RVNUXzhfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzhfVFVQ
TEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJf
ID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAgZjVfID0g
dC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0gICAgcmV0dXJuICp0
aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwot
ICBUNCBmNF87Ci0gIFQ1IGY1XzsKLSAgVDYgZjZfOwotICBUNyBmN187Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfOV9UVVBMRV8oVCkgewotIHB1
YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6Okdl
dDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8o
KSwgZjZfKCksIGY3XygpLCBmOF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JF
Rl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIp
IGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBH
VEVTVF9CWV9SRUZfKFQ1KSBmNSwgR1RFU1RfQllfUkVGXyhUNikgZjYsIEdURVNUX0JZX1JFRl8o
VDcpIGY3LAotICAgICAgR1RFU1RfQllfUkVGXyhUOCkgZjgpIDogZjBfKGYwKSwgZjFfKGYxKSwg
ZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2XyhmNiksIGY3Xyhm
NyksIGY4XyhmOCkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBm
MV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVf
KHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSB7fQotCi0gIHRlbXBs
YXRlIDxHVEVTVF85X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzlfVFVQTEVf
KFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18o
dC5mM18pLCBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pLCBm
OF8odC5mOF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1
cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFUpPgot
ICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0
dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRf
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9t
KGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFf
ID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0g
dC5mNF87Ci0gICAgZjVfID0gdC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5m
N187Ci0gICAgZjhfID0gdC5mOF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBf
OwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci0gIFQ1IGY1XzsK
LSAgVDYgZjZfOwotICBUNyBmN187Ci0gIFQ4IGY4XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8x
MF9UWVBFTkFNRVNfKFQpPgotY2xhc3MgdHVwbGUgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGlu
dCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBf
KCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpLCBmOF8o
KSwKLSAgICAgIGY5XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkg
ZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdU
RVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZ
X1JFRl8oVDUpIGY1LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNiwgR1RFU1RfQllfUkVGXyhUNykgZjcs
Ci0gICAgICBHVEVTVF9CWV9SRUZfKFQ4KSBmOCwgR1RFU1RfQllfUkVGXyhUOSkgZjkpIDogZjBf
KGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwKLSAgICAgIGYzXyhmMyksIGY0XyhmNCksIGY1XyhmNSks
IGY2XyhmNiksIGY3XyhmNyksIGY4XyhmOCksIGY5XyhmOSkge30KLQotICB0dXBsZShjb25zdCB0
dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18p
LAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwg
ZjhfKHQuZjhfKSwgZjlfKHQuZjlfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFN
RVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBf
KSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0Xyks
IGY1Xyh0LmY1XyksIGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4XyksCi0gICAgICBm
OV8odC5mOV8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1
cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4K
LSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIHsKLSAgICBy
ZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVO
RF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlG
cm9tKGNvbnN0IEdURVNUXzEwX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAg
IGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0
XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9
IHQuZjdfOwotICAgIGY4XyA9IHQuZjhfOwotICAgIGY5XyA9IHQuZjlfOwotICAgIHJldHVybiAq
dGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsK
LSAgVDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwotICBUOCBmOF87Ci0g
IFQ5IGY5XzsKLX07Ci0KLS8vIDYuMS4zLjIgVHVwbGUgY3JlYXRpb24gZnVuY3Rpb25zLgotCi0v
LyBLbm93biBsaW1pdGF0aW9uczogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIGFuCi0vLyBzdGQ6
OnRyMTo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gdG8gbWFrZV90dXBsZSgpLiAgQW5kIHdlIGRvbid0
Ci0vLyBpbXBsZW1lbnQgdGllKCkuCi0KLWlubGluZSB0dXBsZTw+IG1ha2VfdHVwbGUoKSB7IHJl
dHVybiB0dXBsZTw+KCk7IH0KLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLWlu
bGluZSBHVEVTVF8xX1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCkgewotICByZXR1
cm4gR1RFU1RfMV9UVVBMRV8oVCkoZjApOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFN
RVNfKFQpPgotaW5saW5lIEdURVNUXzJfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYw
LCBjb25zdCBUMSYgZjEpIHsKLSAgcmV0dXJuIEdURVNUXzJfVFVQTEVfKFQpKGYwLCBmMSk7Ci19
Ci0KLXRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfM19UVVBM
RV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYy
KSB7Ci0gIHJldHVybiBHVEVTVF8zX1RVUExFXyhUKShmMCwgZjEsIGYyKTsKLX0KLQotdGVtcGxh
dGUgPEdURVNUXzRfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF80X1RVUExFXyhUKSBtYWtl
X3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29u
c3QgVDMmIGYzKSB7Ci0gIHJldHVybiBHVEVTVF80X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMyk7
Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfNV9U
VVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDIm
IGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0KSB7Ci0gIHJldHVybiBHVEVTVF81
X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfNl9U
WVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzZfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3Qg
VDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNv
bnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1KSB7Ci0gIHJldHVybiBHVEVTVF82X1RVUExFXyhUKShm
MCwgZjEsIGYyLCBmMywgZjQsIGY1KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVT
XyhUKT4KLWlubGluZSBHVEVTVF83X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwg
Y29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYg
ZjQsIGNvbnN0IFQ1JiBmNSwgY29uc3QgVDYmIGY2KSB7Ci0gIHJldHVybiBHVEVTVF83X1RVUExF
XyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNik7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF84
X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfOF9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25z
dCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywg
Y29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29uc3QgVDcmIGY3KSB7
Ci0gIHJldHVybiBHVEVTVF84X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwg
ZjcpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNU
XzlfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0
IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1LCBj
b25zdCBUNiYgZjYsIGNvbnN0IFQ3JiBmNywKLSAgICBjb25zdCBUOCYgZjgpIHsKLSAgcmV0dXJu
IEdURVNUXzlfVFVQTEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjgpOwot
fQotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8xMF9U
VVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDIm
IGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0
IFQ2JiBmNiwgY29uc3QgVDcmIGY3LAotICAgIGNvbnN0IFQ4JiBmOCwgY29uc3QgVDkmIGY5KSB7
Ci0gIHJldHVybiBHVEVTVF8xMF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYs
IGY3LCBmOCwgZjkpOwotfQotCi0vLyA2LjEuMy4zIFR1cGxlIGhlbHBlciBjbGFzc2VzLgotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+IHN0cnVjdCB0dXBsZV9zaXplOwotCi10ZW1wbGF0ZSA8
R1RFU1RfMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfMF9UVVBMRV8o
VCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAwOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzFfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzFfVFVQTEVfKFQp
ID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVT
VF8yX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8yX1RVUExFXyhUKSA+
IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDI7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
M19UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfM19UVVBMRV8oVCkgPiB7
Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAzOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzRf
VFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzRfVFVQTEVfKFQpID4gewot
ICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF81X1RZ
UEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF81X1RVUExFXyhUKSA+IHsKLSAg
c3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDU7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBF
TkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfNl9UVVBMRV8oVCkgPiB7Ci0gIHN0
YXRpYyBjb25zdCBpbnQgdmFsdWUgPSA2OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5B
TUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzdfVFVQTEVfKFQpID4gewotICBzdGF0
aWMgY29uc3QgaW50IHZhbHVlID0gNzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1F
U18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF84X1RVUExFXyhUKSA+IHsKLSAgc3RhdGlj
IGNvbnN0IGludCB2YWx1ZSA9IDg7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNf
KFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfOV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBj
b25zdCBpbnQgdmFsdWUgPSA5OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18o
VCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBj
b25zdCBpbnQgdmFsdWUgPSAxMDsKLX07Ci0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+
Ci1zdHJ1Y3QgdHVwbGVfZWxlbWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJu
YWw6OlR1cGxlRWxlbWVudDwKLSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwg
aywgVHVwbGU+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRf
KGssIFR1cGxlKSB0eXBlbmFtZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8g
Ni4xLjMuNCBFbGVtZW50IGFjY2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQot
dGVtcGxhdGUgPD4KLWNsYXNzIEdldDwwPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygwLCBU
dXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYwXzsgfSAgLy8gTk9MSU5UCi0K
LSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9U
VVBMRV9FTEVNRU5UXygwLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsg
cmV0dXJuIHQuZjBfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDE+IHsKLSBwdWJs
aWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdU
RVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJu
IHQuZjFfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRp
YyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxlKSkKLSAgQ29uc3RG
aWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mMV87IH0KLX07Ci0KLXRlbXBsYXRlIDw+
Ci1jbGFzcyBHZXQ8Mj4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBz
dGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUpKQotICBG
aWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mMl87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRl
IDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVO
VF8oMiwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYy
XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDwzPiB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9F
TEVNRU5UXygzLCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYzXzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygzLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3Qg
VHVwbGUmIHQpIHsgcmV0dXJuIHQuZjNfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0
PDQ+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUm
IHQpIHsgcmV0dXJuIHQuZjRfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxl
KSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mNF87IH0KLX07Ci0K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8NT4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNSwg
VHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNV87IH0gIC8vIE5PTElOVAot
Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1Rf
VFVQTEVfRUxFTUVOVF8oNSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmY1XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw2PiB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhH
VEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVy
biB0LmY2XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0
aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBsZSkpCi0gIENvbnN0
RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjZfOyB9Ci19OwotCi10ZW1wbGF0ZSA8
PgotY2xhc3MgR2V0PDc+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAg
c3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcsIFR1cGxlKSkKLSAg
RmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjdfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0
ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1F
TlRfKDcsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5m
N187IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OD4gewotIHB1YmxpYzoKLSAgdGVt
cGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVf
RUxFTUVOVF8oOCwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mOF87IH0g
IC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZ
X1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOCwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0
IFR1cGxlJiB0KSB7IHJldHVybiB0LmY4XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdl
dDw5PiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVT
VF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxl
JiB0KSB7IHJldHVybiB0LmY5XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1
cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBs
ZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjlfOyB9Ci19Owot
Ci19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPGludCBrLCBHVEVT
VF8xMF9UWVBFTkFNRVNfKFQpPgotR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8o
aywgR1RFU1RfMTBfVFVQTEVfKFQpKSkKLWdldChHVEVTVF8xMF9UVVBMRV8oVCkmIHQpIHsKLSAg
cmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkZpZWxkKHQpOwotfQotCi10ZW1wbGF0ZSA8
aW50IGssIEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExF
X0VMRU1FTlRfKGssICBHVEVTVF8xMF9UVVBMRV8oVCkpKQotZ2V0KGNvbnN0IEdURVNUXzEwX1RV
UExFXyhUKSYgdCkgewotICByZXR1cm4gZ3Rlc3RfaW50ZXJuYWw6OkdldDxrPjo6Q29uc3RGaWVs
ZCh0KTsKLX0KLQotLy8gNi4xLjMuNSBSZWxhdGlvbmFsIG9wZXJhdG9ycwotCi0vLyBXZSBvbmx5
IGltcGxlbWVudCA9PSBhbmQgIT0sIGFzIHdlIGRvbid0IGhhdmUgYSBuZWVkIGZvciB0aGUgcmVz
dCB5ZXQuCi0KLW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLS8vIFNhbWVTaXplVHVwbGVQ
cmVmaXhDb21wYXJhdG9yPGssIGs+OjpFcSh0MSwgdDIpIHJldHVybnMgdHJ1ZSBpZiB0aGUKLS8v
IGZpcnN0IGsgZmllbGRzIG9mIHQxIGVxdWFscyB0aGUgZmlyc3QgayBmaWVsZHMgb2YgdDIuCi0v
LyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcihrMSwgazIpIHdvdWxkIGJlIGEgY29tcGls
ZXIgZXJyb3IgaWYKLS8vIGsxICE9IGsyLgotdGVtcGxhdGUgPGludCBrU2l6ZTEsIGludCBrU2l6
ZTI+Ci1zdHJ1Y3QgU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I7Ci0KLXRlbXBsYXRlIDw+
Ci1zdHJ1Y3QgU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8MCwgMD4gewotICB0ZW1wbGF0
ZSA8Y2xhc3MgVHVwbGUxLCBjbGFzcyBUdXBsZTI+Ci0gIHN0YXRpYyBib29sIEVxKGNvbnN0IFR1
cGxlMSYgLyogdDEgKi8sIGNvbnN0IFR1cGxlMiYgLyogdDIgKi8pIHsKLSAgICByZXR1cm4gdHJ1
ZTsKLSAgfQotfTsKLQotdGVtcGxhdGUgPGludCBrPgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVm
aXhDb21wYXJhdG9yPGssIGs+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVw
bGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIHQxLCBjb25zdCBUdXBsZTImIHQy
KSB7Ci0gICAgcmV0dXJuIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPGsgLSAxLCBrIC0g
MT46OkVxKHQxLCB0MikgJiYKLSAgICAgICAgOjpzdGQ6OnRyMTo6Z2V0PGsgLSAxPih0MSkgPT0g
OjpzdGQ6OnRyMTo6Z2V0PGsgLSAxPih0Mik7Ci0gIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBn
dGVzdF9pbnRlcm5hbAotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKSwgR1RFU1Rf
MTBfVFlQRU5BTUVTXyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR1RFU1RfMTBf
VFVQTEVfKFQpJiB0LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVEVTVF8xMF9UVVBM
RV8oVSkmIHUpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4
Q29tcGFyYXRvcjwKLSAgICAgIHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVfKFQpID46OnZhbHVl
LAotICAgICAgdHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVSkgPjo6dmFsdWU+OjpFcSh0LCB1
KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdURVNUXzEwX1RZUEVO
QU1FU18oVSk+Ci1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdURVNUXzEwX1RVUExFXyhU
KSYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB1
KSB7IHJldHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxlbWVu
dGVkLgotCi19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLSN1bmRl
ZiBHVEVTVF8wX1RVUExFXwotI3VuZGVmIEdURVNUXzFfVFVQTEVfCi0jdW5kZWYgR1RFU1RfMl9U
VVBMRV8KLSN1bmRlZiBHVEVTVF8zX1RVUExFXwotI3VuZGVmIEdURVNUXzRfVFVQTEVfCi0jdW5k
ZWYgR1RFU1RfNV9UVVBMRV8KLSN1bmRlZiBHVEVTVF82X1RVUExFXwotI3VuZGVmIEdURVNUXzdf
VFVQTEVfCi0jdW5kZWYgR1RFU1RfOF9UVVBMRV8KLSN1bmRlZiBHVEVTVF85X1RVUExFXwotI3Vu
ZGVmIEdURVNUXzEwX1RVUExFXwotCi0jdW5kZWYgR1RFU1RfMF9UWVBFTkFNRVNfCi0jdW5kZWYg
R1RFU1RfMV9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfMl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RF
U1RfM19UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1Rf
NV9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfN19U
WVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfOF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfOV9UWVBF
TkFNRVNfCi0jdW5kZWYgR1RFU1RfMTBfVFlQRU5BTUVTXwotCi0jdW5kZWYgR1RFU1RfREVDTEFS
RV9UVVBMRV9BU19GUklFTkRfCi0jdW5kZWYgR1RFU1RfQllfUkVGXwotI3VuZGVmIEdURVNUX0FE
RF9SRUZfCi0jdW5kZWYgR1RFU1RfVFVQTEVfRUxFTUVOVF8KLQotI2VuZGlmICAvLyBHVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RVUExFX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgucHVt
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHVwbGUuaC5wdW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjYyNmUwNDlmMDg3
ODBmZmNlOTZkNDg1MmNiOGVkNWQzZWY1ZjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzQ4ICswLDAg
QEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gMTAgICQkIE1heGltdW0gbnVtYmVy
IG9mIHR1cGxlIGZpZWxkcyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kJCBUaGlzIG1ldGEgY29tbWVu
dCBmaXhlcyBhdXRvLWluZGVudGF0aW9uIGluIEVtYWNzLiB9fQotLy8gQ29weXJpZ2h0IDIwMDkg
R29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBU
UjEgdHVwbGUgbmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8gR09P
R0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9HVEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6OnN0
ZDo6cGFpci4KLQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcgdGhh
dCBwcmV2ZW50cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFzIGEg
ZnJpZW5kIChpdCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwotLy8g
YnlwYXNzZXMgdGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3Ro
ZXJ3aXNlIGJlCi0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMg
PCAxMiBhbHNvIGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18p
IHx8IChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZp
bmUgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmlu
ZSBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8k
KG4pX1RZUEVOQU1FU18oVSk+IGZyaWVuZCBjbGFzcyB0dXBsZTsgXAotICAgcHJpdmF0ZToKLSNl
bmRpZgotCi0vLyBWaXN1YWwgU3R1ZGlvIDIwMTAsIDIwMTIsIGFuZCAyMDEzIGRlZmluZSBzeW1i
b2xzIGluIHN0ZDo6dHIxIHRoYXQgY29uZmxpY3QKLS8vIHdpdGggb3VyIG93biBkZWZpbml0aW9u
cy4gVGhlcmVmb3JlIHVzaW5nIG91ciBvd24gdHVwbGUgZG9lcyBub3Qgd29yayBvbgotLy8gdGhv
c2UgY29tcGlsZXJzLgotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAg
IC8qIDE2MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDEwICovCi0jIGVycm9yICJndGVzdCdzIHR1cGxl
IGRvZXNuJ3QgY29tcGlsZSBvbiBWaXN1YWwgU3R1ZGlvIDIwMTAgb3IgbGF0ZXIuIFwKLUdURVNU
X1VTRV9PV05fVFIxX1RVUExFIG11c3QgYmUgc2V0IHRvIDAgb24gdGhvc2UgY29tcGlsZXJzLiIK
LSNlbmRpZgotCi0KLSRyYW5nZSBpIDAuLm4tMQotJHJhbmdlIGogMC4ubgotJHJhbmdlIGsgMS4u
bgotLy8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZp
bmUgR1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAuLmst
MQotJHJhbmdlIG0yIGsuLm4tMQotI2RlZmluZSBHVEVTVF8kKGspX1RVUExFXyhUKSB0dXBsZTwk
Zm9yIG0sIFtbVCMjJG1dXSRmb3IgbTIgW1ssIHZvaWRdXT4KLQotXV0KLQotLy8gR1RFU1Rfbl9U
WVBFTkFNRVNfKFQpIGRlY2xhcmVzIGEgbGlzdCBvZiBuIHR5cGVuYW1lcy4KLQotJGZvciBqIFtb
Ci0kcmFuZ2UgbSAwLi5qLTEKLSNkZWZpbmUgR1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpICRmb3Ig
bSwgW1t0eXBlbmFtZSBUIyMkbV1dCi0KLQotXV0KLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBz
dHVmZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBX
ZSBjYW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0v
LyBsaWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRl
bXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpID0gdm9pZF1dPgotY2xhc3MgdHVwbGU7Ci0K
LS8vIEFueXRoaW5nIGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBHb29nbGUgVGVzdCdz
IElOVEVSTkFMCi0vLyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1QgTk9UIEJFIFVTRUQg
RElSRUNUTFkgaW4gdXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotLy8g
QnlSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBj
b25zdCBUJi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmIHsgdHlwZWRlZiBj
b25zdCBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVj
dCBCeVJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5k
eSB3cmFwcGVyIGZvciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhUKSB0eXBlbmFtZSA6
OnN0ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQotLy8gQWRkUmVmPFQ+
Ojp0eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgVCYuICBUaGlz
Ci0vLyBpcyB0aGUgc2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBO
T0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxUJj4geyB0eXBlZGVm
IFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBBZGRSZWYu
Ci0jZGVmaW5lIEdURVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2lu
dGVybmFsOjpBZGRSZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVudGluZyBn
ZXQ8az4oKS4KLXRlbXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBBIGhlbHBlciBmb3Ig
aW1wbGVtZW50aW5nIHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxpZCBpcyB0cnVlCi0v
LyBpZmYgayA8IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUgVC4KLXRlbXBsYXRl
IDxib29sIGtJbmRleFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4KLXN0cnVjdCBUdXBs
ZUVsZW1lbnQ7Ci0KLQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBFTkFNRVNf
KFQpPgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAkaSwgR1RFU1RfJChuKV9UVVBMRV8oVCkg
PiB7Ci0gIHR5cGVkZWYgVCRpIHR5cGU7Ci19OwotCi0KLV1dCi19ICAvLyBuYW1lc3BhY2UgZ3Rl
c3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPD4KLWNsYXNzIHR1cGxlPD4gewotIHB1YmxpYzoKLSAg
dHVwbGUoKSB7fQotICB0dXBsZShjb25zdCB0dXBsZSYgLyogdCAqLykgIHt9Ci0gIHR1cGxlJiBv
cGVyYXRvcj0oY29uc3QgdHVwbGUmIC8qIHQgKi8pIHsgcmV0dXJuICp0aGlzOyB9Ci19OwotCi0K
LSRmb3IgayBbWwotJHJhbmdlIG0gMC4uay0xCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFN
RVNfKFQpPgotY2xhc3MgJGlmIGsgPCBuIFtbR1RFU1RfJChrKV9UVVBMRV8oVCldXSAkZWxzZSBb
W3R1cGxlXV0gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rl
c3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogJGZvciBtLCBbW2YkKG0pXygpXV0ge30K
LQotICBleHBsaWNpdCB0dXBsZSgkZm9yIG0sIFtbR1RFU1RfQllfUkVGXyhUJG0pIGYkbV1dKSA6
IFtbXV0KLSRmb3IgbSwgW1tmJChtKV8oZiRtKV1dIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUm
IHQpIDogJGZvciBtLCBbW2YkKG0pXyh0LmYkKG0pXyldXSB7fQotCi0gIHRlbXBsYXRlIDxHVEVT
VF8kKGspX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUp
JiB0KSA6ICRmb3IgbSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotJGlmIGsgPT0gMiBbWwot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZShjb25zdCA6OnN0
ZDo6cGFpcjxVMCwgVTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vjb25kKSB7fQotCi1d
XQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9t
KHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUm
IG9wZXJhdG9yPShjb25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBD
b3B5RnJvbSh0KTsKLSAgfQotCi0kaWYgayA9PSAyIFtbCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBV
MCwgdHlwZW5hbWUgVTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAs
IFUxPiYgcCkgewotICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAg
cmV0dXJuICp0aGlzOwotICB9Ci0KLV1dCi0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklF
TkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENv
cHlGcm9tKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSB7Ci0KLSRmb3IgbSBbWwotICAg
IGYkKG0pXyA9IHQuZiQobSlfOwotCi1dXQotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0KLSRm
b3IgbSBbWwotICBUJG0gZiQobSlfOwotCi1dXQotfTsKLQotCi1dXQotLy8gNi4xLjMuMiBUdXBs
ZSBjcmVhdGlvbiBmdW5jdGlvbnMuCi0KLS8vIEtub3duIGxpbWl0YXRpb25zOiB3ZSBkb24ndCBz
dXBwb3J0IHBhc3NpbmcgYW4KLS8vIHN0ZDo6dHIxOjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiB0byBt
YWtlX3R1cGxlKCkuICBBbmQgd2UgZG9uJ3QKLS8vIGltcGxlbWVudCB0aWUoKS4KLQotaW5saW5l
IHR1cGxlPD4gbWFrZV90dXBsZSgpIHsgcmV0dXJuIHR1cGxlPD4oKTsgfQotCi0kZm9yIGsgW1sK
LSRyYW5nZSBtIDAuLmstMQotCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgot
aW5saW5lIEdURVNUXyQoaylfVFVQTEVfKFQpIG1ha2VfdHVwbGUoJGZvciBtLCBbW2NvbnN0IFQk
bSYgZiRtXV0pIHsKLSAgcmV0dXJuIEdURVNUXyQoaylfVFVQTEVfKFQpKCRmb3IgbSwgW1tmJG1d
XSk7Ci19Ci0KLV1dCi0KLS8vIDYuMS4zLjMgVHVwbGUgaGVscGVyIGNsYXNzZXMuCi0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUdXBsZT4gc3RydWN0IHR1cGxlX3NpemU7Ci0KLQotJGZvciBqIFtbCi10
ZW1wbGF0ZSA8R1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RF
U1RfJChqKV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAkajsKLX07
Ci0KLQotXV0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVwbGVfZWxl
bWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxlbWVudDwK
LSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0eXBlIHR5
cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0eXBlbmFt
ZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVtZW50IGFj
Y2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotCi0kZm9yIGkgW1sKLXRlbXBs
YXRlIDw+Ci1jbGFzcyBHZXQ8JGk+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBs
ZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKCRpLCBUdXBs
ZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfSAgLy8gTk9MSU5UCi0K
LSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9U
VVBMRV9FTEVNRU5UXygkaSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmYkKGkpXzsgfQotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2lu
dGVybmFsCi0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotR1RF
U1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfJChuKV9UVVBMRV8oVCkp
KQotZ2V0KEdURVNUXyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5h
bDo6R2V0PGs+OjpGaWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8kKG4pX1RZ
UEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssICBHVEVT
VF8kKG4pX1RVUExFXyhUKSkpCi1nZXQoY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQpIHsK
LSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19Ci0KLS8v
IDYuMS4zLjUgUmVsYXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1lbnQgPT0g
YW5kICE9LCBhcyB3ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0LgotCi1uYW1l
c3BhY2UgZ3Rlc3RfaW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRv
cjxrLCBrPjo6RXEodDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBrIGZpZWxk
cyBvZiB0MSBlcXVhbHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNpemVUdXBs
ZVByZWZpeENvbXBhcmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9yIGlmCi0v
LyBrMSAhPSBrMi4KLXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3RydWN0IFNh
bWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFNhbWVT
aXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxl
MSwgY2xhc3MgVHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8qIHQxICov
LCBjb25zdCBUdXBsZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX07Ci0K
LXRlbXBsYXRlIDxpbnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxr
LCBrPiB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAgc3RhdGlj
IGJvb2wgRXEoY29uc3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAgIHJldHVy
biBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0MSwgdDIp
ICYmCi0gICAgICAgIDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0cjE6Omdl
dDxrIC0gMT4odDIpOwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwK
LQotdGVtcGxhdGUgPEdURVNUXyQobilfVFlQRU5BTUVTXyhUKSwgR1RFU1RfJChuKV9UWVBFTkFN
RVNfKFUpPgotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHVEVTVF8kKG4pX1RVUExFXyhU
KSYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVSkm
IHUpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFy
YXRvcjwKLSAgICAgIHR1cGxlX3NpemU8R1RFU1RfJChuKV9UVVBMRV8oVCkgPjo6dmFsdWUsCi0g
ICAgICB0dXBsZV9zaXplPEdURVNUXyQobilfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7
Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdURVNUXyQobilfVFlQ
RU5BTUVTXyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1RFU1RfJChuKV9UVVBM
RV8oVCkmIHQsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXyQobilfVFVQTEVf
KFUpJiB1KSB7IHJldHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmlt
cGxlbWVudGVkLgotCi19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0K
LQotJGZvciBqIFtbCi0jdW5kZWYgR1RFU1RfJChqKV9UVVBMRV8KLQotXV0KLQotCi0kZm9yIGog
W1sKLSN1bmRlZiBHVEVTVF8kKGopX1RZUEVOQU1FU18KLQotXV0KLQotI3VuZGVmIEdURVNUX0RF
Q0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVT
VF9BRERfUkVGXwotI3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0
aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtdHlwZS11dGlsLmgKaW5kZXggMjhlNDExMjQ1MzYxYzA4ZjI4NzA3ZTkyNDhlNmQwMzMyMGU2
ODYxOC4uYjg3YTJlMmNhY2UzM2I4Y2YxZDQyYTJiM2JkYjQ0Y2JiOTBkYzI2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10
eXBlLXV0aWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2lu
dGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oCkBAIC0xLDcgKzEsMyBAQAotLy8gVGhpcyBmaWxlIHdh
cyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXR5cGUtdXRpbC5o
LnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJpZ2h0IDIwMDggR29v
Z2xlIEluYy4KIC8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAvLwpAQCAtMzEsMTkgKzI3LDEzIEBA
CiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQogLy8gVHlwZSB1dGlsaXRpZXMg
bmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8g
dGVzdHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQg
QlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0IDUwIHR5cGVzIGlu
IGEgbGlzdCwgYW5kIGF0IG1vc3QgNTAKLS8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBv
bmUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2ds
ZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KKy8v
IHRlc3RzLgogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYg
R1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KLSNkZWZpbmUg
R1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KKyNpZm5kZWYg
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXworI2Rl
ZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hf
CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAKQEAgLTc0LDE1Njgg
KzY0LDQzIEBAIGlubGluZSBzdGQ6OnN0cmluZyBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9u
aW5nKHN0ZDo6c3RyaW5nIHMpIHsKICAgcmV0dXJuIHM7CiB9CiAKLS8vIEdldFR5cGVOYW1lPFQ+
KCkgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdHlwZSBULgotLy8gTkI6IFRoaXMg
ZnVuY3Rpb24gaXMgYWxzbyB1c2VkIGluIEdvb2dsZSBNb2NrLCBzbyBkb24ndCBtb3ZlIGl0IGlu
c2lkZSBvZgotLy8gdGhlIHR5cGVkLXRlc3Qtb25seSBzZWN0aW9uIGJlbG93LgotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsKLSMgaWYgR1RFU1RfSEFT
X1JUVEkKLQotICBjb25zdCBjaGFyKiBjb25zdCBuYW1lID0gdHlwZWlkKFQpLm5hbWUoKTsKLSMg
IGlmIEdURVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKKyNpZiBHVEVTVF9I
QVNfUlRUSQorLy8gR2V0VHlwZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8mKSByZXR1cm5zIGEg
aHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0eXBlIFQuCitpbmxpbmUgc3RkOjpzdHJpbmcgR2V0VHlw
ZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8mIHR5cGUpIHsKKyAgY29uc3QgY2hhciogY29uc3Qg
bmFtZSA9IHR5cGUubmFtZSgpOworI2lmIEdURVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChf
X0hQX2FDQykKICAgaW50IHN0YXR1cyA9IDA7CiAgIC8vIGdjYydzIGltcGxlbWVudGF0aW9uIG9m
IHR5cGVpZChUKS5uYW1lKCkgbWFuZ2xlcyB0aGUgdHlwZSBuYW1lLAogICAvLyBzbyB3ZSBoYXZl
IHRvIGRlbWFuZ2xlIGl0LgotIyAgIGlmIEdURVNUX0hBU19DWFhBQklfSF8KKyNpZiBHVEVTVF9I
QVNfQ1hYQUJJX0hfCiAgIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYgIC8v
IEdURVNUX0hBU19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9fY3hh
X2RlbWFuZ2xlKG5hbWUsIDAsIDAsICZzdGF0dXMpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hY
QUJJX0hfCisgIGNoYXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1hbmdsZShuYW1l
LCBudWxscHRyLCBudWxscHRyLCAmc3RhdHVzKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV9z
dHIoc3RhdHVzID09IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7CiAgIGZyZWUocmVhZGFibGVf
bmFtZSk7CiAgIHJldHVybiBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKG5hbWVfc3Ry
KTsKLSMgIGVsc2UKKyNlbHNlCiAgIHJldHVybiBuYW1lOwotIyAgZW5kaWYgIC8vIEdURVNUX0hB
U19DWFhBQklfSF8gfHwgX19IUF9hQ0MKLQotIyBlbHNlCi0KLSAgcmV0dXJuICI8dHlwZT4iOwot
Ci0jIGVuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJ
X0hfIHx8IF9fSFBfYUNDCiB9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCiAKLSNpZiBHVEVT
VF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIEFzc2VydHlU
eXBlRXE8VDEsIFQyPjo6dHlwZSBpcyBkZWZpbmVkIGlmZiBUMSBhbmQgVDIgYXJlIHRoZSBzYW1l
Ci0vLyB0eXBlLiAgVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBpbGUtdGltZSBhc3NlcnRpb24g
dG8gZW5zdXJlIHRoYXQKLS8vIHR3byB0eXBlcyBhcmUgZXF1YWwuCi0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxOwotCisvLyBHZXRUeXBl
TmFtZTxUPigpIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVCBpZiBhbmQg
b25seSBpZgorLy8gUlRUSSBpcyBlbmFibGVkLCBvdGhlcndpc2UgaXQgcmV0dXJucyBhIGR1bW15
IHR5cGUgbmFtZS4KKy8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBpbiBHb29nbGUg
TW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YKKy8vIHRoZSB0eXBlZC10ZXN0LW9ubHkg
c2VjdGlvbiBiZWxvdy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFzc2VydFR5cGVF
cTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKK3N0ZDo6c3RyaW5nIEdldFR5cGVO
YW1lKCkgeworI2lmIEdURVNUX0hBU19SVFRJCisgIHJldHVybiBHZXRUeXBlTmFtZSh0eXBlaWQo
VCkpOworI2Vsc2UKKyAgcmV0dXJuICI8dHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRU
SQorfQogCi0vLyBBIHVuaXF1ZSB0eXBlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRo
ZSBhcmd1bWVudHMgb2YgY2xhc3MKLS8vIHRlbXBsYXRlIFR5cGVzLiAgVGhpcyBhbGxvd3MgdXMg
dG8gc2ltdWxhdGUgdmFyaWFkaWMgdGVtcGxhdGVzCi0vLyAoZS5nLiBUeXBlczxpbnQ+LCBUeXBl
PGludCwgZG91YmxlPiwgYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0Ci0vLyBzdXBwb3J0IGRp
cmVjdGx5LgorLy8gQSB1bmlxdWUgdHlwZSBpbmRpY2F0aW5nIGFuIGVtcHR5IG5vZGUKIHN0cnVj
dCBOb25lIHt9OwogCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVj
dCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4gcGFy
dGljdWxhciwgVHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBlIGxp
c3Qgd2l0aCBOIHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2VwdCBm
b3IgVHlwZXMwLCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBl
czoKLS8vIEhlYWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBmb3Ig
dGhlIHJlc3Qgb2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgotc3Ry
dWN0IFR5cGVzMCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNv
IG9uLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlwZWRl
ZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgVHlwZXMyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzMTxUMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotc3RydWN0IFR5cGVzMyB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlczI8VDIsIFQzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0Pgotc3RydWN0
IFR5cGVzNCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczM8VDIsIFQzLCBU
ND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1zdHJ1Y3QgVHlwZXM1IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDxUMiwgVDMsIFQ0LCBUNT4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1Y3QgVHlwZXM2IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNTxUMiwgVDMsIFQ0LCBUNSwgVDY+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNz4KLXN0cnVjdCBUeXBlczcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXM2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1zdHJ1Y3QgVHlw
ZXM4IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNzxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1zdHJ1Y3QgVHlw
ZXM5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzODxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTA+Ci1zdHJ1Y3QgVHlwZXMxMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBU
eXBlczk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0
IFR5cGVzMTEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMDxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyPgot
c3RydWN0IFR5cGVzMTIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMTxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLXN0cnVjdCBUeXBlczEzIHsKLSAgdHlwZWRlZiBUMSBI
ZWFkOwotICB0eXBlZGVmIFR5cGVzMTI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0Pgotc3RydWN0IFR5cGVzMTQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXMxMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1Pgotc3RydWN0IFR5cGVzMTUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMxNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLXN0
cnVjdCBUeXBlczE2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTU8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgICAgVDE2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3Ry
dWN0IFR5cGVzMTcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxNjxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgICBUMTYsIFQxNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4Pgotc3RydWN0IFR5cGVzMTggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5
cGVkZWYgVHlwZXMxNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4PiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLXN0cnVj
dCBUeXBlczE5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTg8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwPgotc3RydWN0
IFR5cGVzMjAgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxOTxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjE+Ci1zdHJ1Y3QgVHlwZXMyMSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAg
dHlwZWRlZiBUeXBlczIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjI+
Ci1zdHJ1Y3QgVHlwZXMyMiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIx
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzPgotc3RydWN0IFR5cGVzMjMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXMyNCB7Ci0gIHR5cGVkZWYg
VDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjU+Ci1zdHJ1Y3QgVHlwZXMyNSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczI0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQy
NSwKLSAgICB0eXBlbmFtZSBUMjY+Ci1zdHJ1Y3QgVHlwZXMyNiB7Ci0gIHR5cGVkZWYgVDEgSGVh
ZDsKLSAgdHlwZWRlZiBUeXBlczI1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3Pgotc3RydWN0
IFR5cGVzMjcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNjxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXMyOCB7
Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI3PFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1zdHJ1Y3Qg
VHlwZXMyOSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI4PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAg
ICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwKLSAgICAgIFQyOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLXN0cnVjdCBUeXBlczMwIHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVzMzEgewotICB0eXBlZGVm
IFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAg
ICAgIFQzMCwgVDMxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwg
dHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAot
ICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQy
OSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyPgotc3RydWN0
IFR5cGVzMzIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMTxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzI+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMz4KLXN0cnVjdCBUeXBlczMzIHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
Ci0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0Pgotc3RydWN0IFR5cGVzMzQgewotICB0
eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBl
bmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwg
dHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1Pgot
c3RydWN0IFR5cGVzMzUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNDxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBU
MTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgotc3RydWN0IFR5cGVz
MzYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNz4KLXN0cnVj
dCBUeXBlczM3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzY8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1l
IFQzNywgdHlwZW5hbWUgVDM4Pgotc3RydWN0IFR5cGVzMzggewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5Pgotc3RydWN0IFR5cGVzMzkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXMzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAg
ICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzks
IHR5cGVuYW1lIFQ0MD4KLXN0cnVjdCBUeXBlczQwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0
eXBlZGVmIFR5cGVzMzk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0
eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1zdHJ1Y3QgVHlw
ZXM0MSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQwPFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LCBUNDAsIFQ0MT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLXN0cnVjdCBUeXBlczQyIHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDE8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIs
IHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUg
VDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBU
NDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVj
dCBUeXBlczQzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDI8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDM+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBl
bmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwg
dHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBU
NDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0Pgotc3RydWN0IFR5cGVzNDQgewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0MzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwg
dHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBU
NDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzNDUgewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDU+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUg
VDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVu
YW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgot
c3RydWN0IFR5cGVzNDYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NTxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBU
MTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBU
NDUsIFQ0Nj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1l
IFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBl
bmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVu
YW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLXN0cnVjdCBUeXBlczQ3
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDY8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEs
IHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwK
LSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4Pgotc3RydWN0IFR5
cGVzNDggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NzxUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
ICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0Niwg
VDQ3LCBUNDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBl
bmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwg
dHlwZW5hbWUgVDQ5Pgotc3RydWN0IFR5cGVzNDkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5
cGVkZWYgVHlwZXM0ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQz
LAotICAgICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlw
ZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYs
IHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIFQ1MD4K
LXN0cnVjdCBUeXBlczUwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDk8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVGFpbDsKLX07Ci0KLQotfSAgLy8gbmFtZXNw
YWNlIGludGVybmFsCi0KLS8vIFdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8g
d3JpdGUgVHlwZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhl
bSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVHlwZXM8Li4uPiBpcyBtdWNoCi0vLyBlYXNpZXIgdG8g
d3JpdGUsIGJ1dCBnZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0aGVyZSBpcyBhCi0v
LyBjb21waWxlciBlcnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcgb3V0IGVhY2ggdGVt
cGxhdGUKLS8vIGFyZ3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVsdCB2YWx1ZSAodGhp
cyBtZWFucyBUeXBlczxpbnQ+Ci0vLyB3aWxsIGFwcGVhciBhcyBUeXBlczxpbnQsIE5vbmUsIE5v
bmUsIC4uLiwgTm9uZT4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBz
b2x1dGlvbiBpcyB0byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVz
OiBhCi0vLyB1c2VyIHdvdWxkIHdyaXRlIFR5cGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBU
ZXN0IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFR5cGVzTjxUMSwgLi4uLCBUTj4gaW50ZXJu
YWxseSB0byBtYWtlIGVycm9yIG1lc3NhZ2VzCi0vLyByZWFkYWJsZS4gIFRoZSB0cmFuc2xhdGlv
biBpcyBkb25lIGJ5IHRoZSAndHlwZScgbWVtYmVyIG9mIHRoZQotLy8gVHlwZXMgdGVtcGxhdGUu
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDIgPSBp
bnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFt
ZSBUNCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ1ID0gaW50ZXJuYWw6Ok5vbmUs
IHR5cGVuYW1lIFQ2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDcgPSBpbnRlcm5h
bDo6Tm9uZSwgdHlwZW5hbWUgVDggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUOSA9
IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMTAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBl
bmFtZSBUMTEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDEyID0gaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgdHlwZW5hbWUgVDEzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQxNCA9IGludGVy
bmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQxNSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBU
MTYgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTcgPSBpbnRlcm5hbDo6Tm9uZSwg
dHlwZW5hbWUgVDE4ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDE5ID0gaW50ZXJu
YWw6Ok5vbmUsIHR5cGVuYW1lIFQyMCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQy
MSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjIgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0
eXBlbmFtZSBUMjMgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI0ID0gaW50ZXJuYWw6Ok5v
bmUsCi0gICAgdHlwZW5hbWUgVDI1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyNiA9IGlu
dGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQyNyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFt
ZSBUMjggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjkgPSBpbnRlcm5hbDo6Tm9u
ZSwgdHlwZW5hbWUgVDMwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDMxID0gaW50
ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzMiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1l
IFQzMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMzQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICB0eXBlbmFtZSBUMzUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM2ID0gaW50ZXJuYWw6
Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDM3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzOCA9
IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzOSA9IGludGVybmFsOjpOb25lLCB0eXBl
bmFtZSBUNDAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDEgPSBpbnRlcm5hbDo6
Tm9uZSwgdHlwZW5hbWUgVDQyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQzID0g
aW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ0NCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVu
YW1lIFQ0NSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDYgPSBpbnRlcm5hbDo6Tm9uZSwK
LSAgICB0eXBlbmFtZSBUNDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQ4ID0gaW50ZXJu
YWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQ5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ1
MCA9IGludGVybmFsOjpOb25lPgotc3RydWN0IFR5cGVzIHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXM1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQy
LCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gdHlwZTsKLX07Ci0KLXRl
bXBsYXRlIDw+Ci1zdHJ1Y3QgVHlwZXM8aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MCB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXN0cnVjdCBUeXBlczxUMSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBp
bnRlcm5hbDo6VHlwZXMxPFQxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjxUMSwgVDI+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM8VDEs
IFQyLCBUMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBl
ZGVmIGludGVybmFsOjpUeXBlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNTxUMSwgVDIs
IFQzLCBUNCwgVDU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
Nj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpU
eXBlczg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM5PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczEwPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+
IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxNDxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBU
MTQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE1PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE2PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1
LCBUMTY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTc8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTk+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxOTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLXN0cnVjdCBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjE8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyPgotc3RydWN0IFR5cGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjI8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyMzxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyND4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1Pgotc3RydWN0IFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjY8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjc+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjg+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzMjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOT4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVk
ZWYgaW50ZXJuYWw6OlR5cGVzMzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwg
VDMwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLAotICAgIFQzMSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
Mj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMx
LCBUMzIsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czMyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzI+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAg
VDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1zdHJ1Y3QgVHlwZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVm
IGludGVybmFsOjpUeXBlczM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMzNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAot
ICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLXN0cnVjdCBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5
cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4
LCB0eXBlbmFtZSBUMzk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwg
VDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDA+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXM0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAg
ICBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5h
bWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5
cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3
LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1l
IFQ0MT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzNDE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDE+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwg
dHlwZW5hbWUgVDQyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQz
MCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
IFQ0MSwgVDQyLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzNDI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0
Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXM0MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0
MSwgVDQyLCBUNDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBU
MzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5h
bWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5
cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBU
NDQsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0g
IHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDU8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwg
VDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NT4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAs
Ci0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUg
VDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVu
YW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0
eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0g
ICAgdHlwZW5hbWUgVDQ2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXM0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAg
ICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwg
dHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBU
NDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5h
bWUgVDQ3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAg
ICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwg
VDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDc8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBU
NDQsIFQ0NSwgVDQ2LCBUNDc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0
NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFt
ZSBUNDg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAg
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBU
NDIsIFQ0MywgVDQ0LCBUNDUsCi0gICAgVDQ2LCBUNDcsIFQ0OCwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDg8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2
LCBUNDcsIFQ0OD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBl
bmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwg
dHlwZW5hbWUgVDQ5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQz
MCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
IFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgaW50ZXJu
YWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0OTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0g
ICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0
NywgVDQ4LCBUNDk+IHR5cGU7Ci19OwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCiAjIGRlZmlu
ZSBHVEVTVF9URU1QTEFURV8gdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzCiAKIC8vIFRoZSB0
ZW1wbGF0ZSAic2VsZWN0b3IiIHN0cnVjdCBUZW1wbGF0ZVNlbDxUbXBsPiBpcyB1c2VkIHRvCkBA
IC0xNjU3LDE2OTIgKzEyMiw2MiBAQCBzdHJ1Y3QgVGVtcGxhdGVTZWwgewogIyBkZWZpbmUgR1RF
U1RfQklORF8oVG1wbFNlbCwgVCkgXAogICBUbXBsU2VsOjp0ZW1wbGF0ZSBCaW5kPFQ+Ojp0eXBl
CiAKLS8vIEEgdW5pcXVlIHN0cnVjdCB0ZW1wbGF0ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVl
IGZvciB0aGUKLS8vIGFyZ3VtZW50cyBvZiBjbGFzcyB0ZW1wbGF0ZSBUZW1wbGF0ZXMuICBUaGlz
IGFsbG93cyB1cyB0byBzaW11bGF0ZQotLy8gdmFyaWFkaWMgdGVtcGxhdGVzIChlLmcuIFRlbXBs
YXRlczxpbnQ+LCBUZW1wbGF0ZXM8aW50LCBkb3VibGU+LAotLy8gYW5kIGV0YyksIHdoaWNoIEMr
KyBkb2Vzbid0IHN1cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVj
dCBOb25lVCB7fTsKLQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1
Y3QgdGVtcGxhdGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdGVtcGxhdGUgbGlzdHMuICBJ
biBwYXJ0aWN1bGFyLCBUZW1wbGF0ZXNOPFQxLCBUMiwgLi4uLAotLy8gVE4+IHJlcHJlc2VudHMg
YSBsaXN0IG9mIE4gdGVtcGxhdGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKS4gIEV4Y2VwdAotLy8g
Zm9yIFRlbXBsYXRlczAsIGV2ZXJ5IHN0cnVjdCBpbiB0aGUgZmFtaWx5IGhhcyB0d28gbWVtYmVy
IHR5cGVzOgotLy8gSGVhZCBmb3IgdGhlIHNlbGVjdG9yIG9mIHRoZSBmaXJzdCB0ZW1wbGF0ZSBp
biB0aGUgbGlzdCwgYW5kIFRhaWwKLS8vIGZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdC4KLQotLy8g
VGhlIGVtcHR5IHRlbXBsYXRlIGxpc3QuCi1zdHJ1Y3QgVGVtcGxhdGVzMCB7fTsKLQotLy8gVGVt
cGxhdGUgbGlzdHMgb2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIFRhaWw7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3RydWN0IFRlbXBsYXRl
czIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czE8VDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXMzIHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyPFQyLCBU
Mz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUND4KLXN0
cnVjdCBUZW1wbGF0ZXM0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXMzPFQyLCBUMywgVDQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNT4KLXN0cnVjdCBUZW1wbGF0
ZXM1IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM0PFQyLCBUMywgVDQsIFQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNj4KLXN0
cnVjdCBUZW1wbGF0ZXM2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM1PFQyLCBUMywgVDQsIFQ1LCBUNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0IFRlbXBsYXRlczcg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczY8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDg+Ci1zdHJ1Y3QgVGVt
cGxhdGVzOCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM5IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM4PFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwPgotc3RydWN0IFRlbXBsYXRlczEwIHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5PFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTE+
Ci1zdHJ1Y3QgVGVtcGxhdGVzMTEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwot
ICB0eXBlZGVmIFRlbXBsYXRlczEwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
Mj4KLXN0cnVjdCBUZW1wbGF0ZXMxMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBM
QVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0cnVjdCBUZW1wbGF0ZXMxMyB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTI8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTM+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczE0
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMx
MzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICAgIFQxND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNU
X1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8g
VDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNU
X1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTUgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE0PFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTU+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTY+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTYgewotICB0eXBlZGVm
IFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE1PFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUs
IFQxNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RF
TVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQx
Nz4KLXN0cnVjdCBUZW1wbGF0ZXMxNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTc+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTg+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTggewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBI
ZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTg+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RF
TVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywg
R1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8g
VDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNU
X1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOT4KLXN0cnVjdCBUZW1wbGF0
ZXMxOSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzMTg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVt
cGxhdGVzMjAgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRl
bXBsYXRlczE5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RF
TVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAs
IEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFU
RV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdU
RVNUX1RFTVBMQVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjEgewotICB0eXBlZGVmIFRlbXBs
YXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIwPFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyPgotc3RydWN0IFRlbXBsYXRlczIyIHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVf
IFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgotc3Ry
dWN0IFRlbXBsYXRlczIzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1
Y3QgVGVtcGxhdGVzMjQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjUgewotICB0eXBlZGVm
IFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI0PFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXMyNiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjY+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RF
TVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywg
R1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8g
VDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNU
X1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVf
IFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVT
VF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzMjcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVm
IFRlbXBsYXRlczI2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYs
IEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOD4KLXN0cnVjdCBU
ZW1wbGF0ZXMyOCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMjc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4
LCBHVEVTVF9URU1QTEFURV8gVDI5Pgotc3RydWN0IFRlbXBsYXRlczI5IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgICBUMjk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8g
VDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNU
X1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RF
TVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQy
OSwgR1RFU1RfVEVNUExBVEVfIFQzMD4KLXN0cnVjdCBUZW1wbGF0ZXMzMCB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjk8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LAotICAgICAgVDI5LCBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgot
c3RydWN0IFRlbXBsYXRlczMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwg
VDMxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
MiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBM
QVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMj4K
LXN0cnVjdCBUZW1wbGF0ZXMzMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMzE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAs
IFQzMSwgVDMyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMz4KLXN0cnVjdCBUZW1wbGF0ZXMzMyB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzI8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1Rf
VEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8g
VDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNU
X1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMz
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzQgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczMzPFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1z
dHJ1Y3QgVGVtcGxhdGVzMzUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0
eXBlZGVmIFRlbXBsYXRlczM0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNj4KLXN0cnVj
dCBUZW1wbGF0ZXMzNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVzMzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNz4KLXN0cnVjdCBUZW1wbGF0ZXMzNyB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzY8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8g
VDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNU
X1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVf
IFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVT
VF9URU1QTEFURV8gVDM4Pgotc3RydWN0IFRlbXBsYXRlczM4IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
Ci0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOT4KLXN0cnVjdCBUZW1wbGF0ZXMz
OSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
Mzg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYs
IEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVN
UExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMx
LCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExB
VEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwPgotc3RydWN0IFRlbXBsYXRlczQwIHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzOTxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVN
UExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2
LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RF
TVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
MSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBM
QVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4K
LXN0cnVjdCBUZW1wbGF0ZXM0MSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzNDA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0Mj4KLXN0cnVjdCBU
ZW1wbGF0ZXM0MiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzNDE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQy
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExB
VEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBH
VEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBM
QVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwg
R1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRF
XyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RF
U1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFU
RV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdU
RVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQzPgotc3RydWN0IFRlbXBsYXRlczQzIHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0Mz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1Q
TEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMs
IEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFU
RV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdU
RVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExB
VEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBH
VEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVf
IFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVT
VF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRF
XyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RF
U1RfVEVNUExBVEVfIFQ0ND4KLXN0cnVjdCBUZW1wbGF0ZXM0NCB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDM8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0ND4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4
LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExB
VEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBH
VEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBM
QVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Mywg
R1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NT4KLXN0cnVjdCBUZW1wbGF0
ZXM0NSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzNDQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMs
IFQ0NCwgVDQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9U
RU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDY+Ci1zdHJ1Y3QgVGVtcGxhdGVz
NDYgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czQ1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBU
NDQsIFQ0NSwgVDQ2PiBUYWlsOwordGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBIZWFkXywgR1RF
U1RfVEVNUExBVEVfLi4uIFRhaWxfPgorc3RydWN0IFRlbXBsYXRlcyB7CisgIHVzaW5nIEhlYWQg
PSBUZW1wbGF0ZVNlbDxIZWFkXz47CisgIHVzaW5nIFRhaWwgPSBUZW1wbGF0ZXM8VGFpbF8uLi4+
OwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQy
LCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1Q
TEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdU
RVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQx
NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9U
RU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBU
MjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1Rf
VEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVN
UExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1
LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RF
TVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDc+Ci1zdHJ1Y3QgVGVt
cGxhdGVzNDcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRl
bXBsYXRlczQ2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAg
VDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDc+IFRhaWw7Cit0ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IEhlYWRfPgorc3RydWN0IFRlbXBsYXRlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gVGVtcGxh
dGVTZWw8SGVhZF8+OworICB1c2luZyBUYWlsID0gTm9uZTsKIH07CiAKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIx
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RF
TVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQy
NiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9U
RU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1Q
TEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEs
IEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVN
UExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2
LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBs
YXRlczQ4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXM0NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0
MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFRhaWw7CisvLyBUdXBsZS1saWtlIHR5cGUgbGlz
dHMKK3RlbXBsYXRlIDx0eXBlbmFtZSBIZWFkXywgdHlwZW5hbWUuLi4gVGFpbF8+CitzdHJ1Y3Qg
VHlwZXMgeworICB1c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwgPSBUeXBlczxUYWls
Xy4uLj47CiB9OwogCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBU
NDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1Rf
VEVNUExBVEVfIFQ0OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5Pgotc3RydWN0IFRlbXBsYXRl
czQ5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM0ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0Mywg
VDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKK3RlbXBsYXRlIDx0eXBlbmFtZSBI
ZWFkXz4KK3N0cnVjdCBUeXBlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gSGVhZF87CisgIHVz
aW5nIFRhaWwgPSBOb25lOwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9U
RU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBU
NDcsIEdURVNUX1RFTVBMQVRFXyBUNDgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0OSwgR1RFU1Rf
VEVNUExBVEVfIFQ1MD4KLXN0cnVjdCBUZW1wbGF0ZXM1MCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBU
NDksIFQ1MD4gVGFpbDsKKy8vIEhlbHBlciBtZXRhZnVuY3Rpb25zIHRvIHRlbGwgYXBhcnQgYSBz
aW5nbGUgdHlwZSBmcm9tIHR5cGVzCisvLyBnZW5lcmF0ZWQgYnkgOjp0ZXN0aW5nOjpUeXBlcwor
dGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorc3RydWN0IFByb3h5VHlwZUxpc3QgeworICB1c2lu
ZyB0eXBlID0gVHlwZXM8VHMuLi4+OwogfTsKIAordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0
IGlzX3Byb3h5X3R5cGVfbGlzdCA6IHN0ZDo6ZmFsc2VfdHlwZSB7fTsKIAotLy8gV2UgZG9uJ3Qg
d2FudCB0byByZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGlyZWN0
bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAg
VGVtcGxhdGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVz
IGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFz
IGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwg
ZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVzPGxp
c3Q+Ci0vLyB3aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAuLi4s
IE5vbmVUPiBpbiB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0aW9u
IGlzIHRvIGNvbWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEKLS8v
IHVzZXIgd291bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0
IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGludGVy
bmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRp
b24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0ZW1w
bGF0ZS4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEgPSBOb25lVCwgR1RFU1RfVEVNUExB
VEVfIFQyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUNCA9IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUNSA9IE5vbmVULCBHVEVT
VF9URU1QTEFURV8gVDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcgPSBOb25lVCwg
R1RFU1RfVEVNUExBVEVfIFQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ5ID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUMTAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEx
ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTQgPSBOb25lVCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTYgPSBOb25lVCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTggPSBOb25lVCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjAgPSBO
b25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBU
MjIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIzID0gTm9uZVQsIEdURVNUX1RFTVBM
QVRFXyBUMjQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1ID0gTm9uZVQsIEdURVNU
X1RFTVBMQVRFXyBUMjYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI3ID0gTm9uZVQs
IEdURVNUX1RFTVBMQVRFXyBUMjggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI5ID0g
Tm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzQgPSBOb25lVCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzYgPSBOb25lVCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzggPSBOb25l
VCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDAg
PSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRF
XyBUNDIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUNDQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ1ID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUNDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ3ID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUNDggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5
ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNTAgPSBOb25lVD4KLXN0cnVjdCBUZW1wbGF0ZXMg
ewotICB0eXBlZGVmIFRlbXBsYXRlczUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQw
LCBUNDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUw
PiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUZW1wbGF0ZXM8Tm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczAgdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTxUMT4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDI+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMyPFQxLCBUMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzPFQxLCBUMiwgVDM+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQy
LCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Pgotc3RydWN0IFRl
bXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ8VDEsIFQyLCBU
MywgVDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxH
VEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQz
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1Q
TEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdU
RVNUX1RFTVBMQVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTA+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMT4KLXN0cnVjdCBU
ZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczExPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEyPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdU
RVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMz4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgICAgVDE0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MTU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2Pgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVN
UExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBH
VEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFU
RV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVT
VF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgVDE1LCBUMTYsIFQxNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczE3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVt
cGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjI8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgot
c3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVzMjM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiB0eXBlOwotfTsKLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVf
IFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVT
VF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRF
XyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAg
VDI3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBM
QVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywg
R1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1Q
TEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIs
IEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQy
OD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOT4KLXN0cnVjdCBUZW1wbGF0
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI5PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LAotICAgICAgVDI4LCBUMjk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4g
ewotICB0eXBlZGVmIFRlbXBsYXRlczMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBU
MjksIFQzMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9U
RU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBU
MTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1Rf
VEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVN
UExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAg
ICBUMjgsIFQyOSwgVDMwLCBUMzE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVf
IFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNU
X1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVf
IFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVT
VF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQy
NCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9U
RU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBU
MjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1Rf
VEVNUExBVEVfIFQzMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwKLSAgICBUMzAsIFQzMSwgVDMyLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMzMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8g
VDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNU
X1RFTVBMQVRFXyBUMzM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBs
YXRlczMzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExB
VEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBH
VEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVt
cGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAg
ICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRF
XyBUMzY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExB
VEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBH
VEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBM
QVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNz4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM3PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8g
VDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNU
X1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVf
IFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVT
VF9URU1QTEFURV8gVDM4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM4PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVf
IFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNU
X1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVf
IFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVT
VF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQy
NCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9U
RU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBU
MjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1Rf
VEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzk+
Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAot
ICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9U
RU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBU
MTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1Rf
VEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVN
UExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMy
LCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RF
TVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
NywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQwPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDA8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwg
VDM2LCBUMzcsIFQzOCwgVDM5LCBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RF
U1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBU
MzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4KLXN0cnVj
dCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwKLSAgICAgIFQ0MT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8g
VDQyPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAg
ICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwg
R1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1Q
TEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEs
IEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFU
RV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdU
RVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Mz4KLXN0cnVjdCBUZW1w
bGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBl
ZGVmIFRlbXBsYXRlczQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0g
ICAgICBUNDIsIFQ0Mz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8g
VDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQ+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMs
IFQ0NCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0
MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RF
U1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBU
MzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1Rf
VEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8g
VDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8g
VDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNU
X1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVf
IFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVT
VF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0
NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDY8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0
NSwgVDQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RF
TVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQx
NywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9U
RU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1Q
TEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIs
IEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVN
UExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3
LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExB
VEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3Pgot
c3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0Miwg
VDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0
eXBlZGVmIFRlbXBsYXRlczQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
Ci0gICAgICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1Q
TEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMs
IEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFU
RV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdU
RVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExB
VEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBH
VEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVf
IFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVT
VF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRF
XyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RF
U1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBU
NDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXM0ODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAg
VDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxH
VEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQz
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1Q
TEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdU
RVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFU
RV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdU
RVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8g
VDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNU
X1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVf
IFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVT
VF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQz
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9U
RU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBU
NDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1Rf
VEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwKLSAgICBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAg
IFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBU
NDk+IHR5cGU7Ci19OwotCi0vLyBUaGUgVHlwZUxpc3QgdGVtcGxhdGUgbWFrZXMgaXQgcG9zc2li
bGUgdG8gdXNlIGVpdGhlciBhIHNpbmdsZSB0eXBlCi0vLyBvciBhIFR5cGVzPC4uLj4gbGlzdCBp
biBUWVBFRF9URVNUX0NBU0UoKSBhbmQKLS8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9Q
KCkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3QgaXNfcHJveHlfdHlwZV9saXN0
PFByb3h5VHlwZUxpc3Q8VHMuLi4+PiA6IHN0ZDo6dHJ1ZV90eXBlIHt9OwogCisvLyBHZW5lcmF0
b3Igd2hpY2ggY29uZGl0aW9uYWxseSBjcmVhdGVzIHR5cGUgbGlzdHMuCisvLyBJdCByZWNvZ25p
emVzIGlmIGEgcmVxdWVzdGVkIHR5cGUgbGlzdCBzaG91bGQgYmUgY3JlYXRlZAorLy8gYW5kIHBy
ZXZlbnRzIGNyZWF0aW5nIGEgbmV3IHR5cGUgbGlzdCBuZXN0ZWQgd2l0aGluIGFub3RoZXIgb25l
LgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgVHlwZUxpc3QgewotICB0eXBlZGVmIFR5
cGVzMTxUPiB0eXBlOwotfTsKK3N0cnVjdCBHZW5lcmF0ZVR5cGVMaXN0IHsKKyBwcml2YXRlOgor
ICB1c2luZyBwcm94eSA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8aXNfcHJveHlfdHlwZV9s
aXN0PFQ+Ojp2YWx1ZSwgVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFByb3h5VHlwZUxpc3Q8VD4+Ojp0eXBlOwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAs
Ci0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUg
VDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVu
YW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQs
IFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+ID4gewotICB0eXBlZGVmIHR5cGVuYW1lIFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0
MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPjo6dHlwZSB0eXBlOworIHB1Ymxp
YzoKKyAgdXNpbmcgdHlwZSA9IHR5cGVuYW1lIHByb3h5Ojp0eXBlOwogfTsKIAotI2VuZGlmICAv
LyBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIH0gIC8v
IG5hbWVzcGFjZSBpbnRlcm5hbAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+Cit1c2luZyBU
eXBlcyA9IGludGVybmFsOjpQcm94eVR5cGVMaXN0PFRzLi4uPjsKKwogfSAgLy8gbmFtZXNwYWNl
IHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X1RZUEVfVVRJTF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFlQRV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5o
LnB1bXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDFhNWQzOWRmYTZkMjRjN2M0
MWExNmExNWYyZTJhNWNlOTQ5ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzE0ICswLDAgQEAK
LSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGltdW0gbGVuZ3RoIG9m
IHR5cGUgbGlzdHMgd2Ugd2FudCB0byBzdXBwb3J0LgotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xl
IEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gVHlwZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBpbXBs
ZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVzdHMuICBUaGlzIGZp
bGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0v
LyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0ICRuIHR5cGVzIGluIGEgbGlzdCwgYW5kIGF0
IG1vc3QgJG4KLS8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRlc3RmcmFtZXdvcmtA
Z29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KLQotLy8gR09PR0xFVEVTVF9D
TTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFlQRV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFlQRV9VVElMX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1w
b3J0LmgiCi0KLS8vICNpZmRlZiBfX0dOVUNfXyBpcyB0b28gZ2VuZXJhbCBoZXJlLiAgSXQgaXMg
cG9zc2libGUgdG8gdXNlIGdjYyB3aXRob3V0IHVzaW5nCi0vLyBsaWJzdGRjKysgKHdoaWNoIGlz
IHdoZXJlIGN4eGFiaS5oIGNvbWVzIGZyb20pLgotIyBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCi0j
ICBpbmNsdWRlIDxjeHhhYmkuaD4KLSMgZWxpZiBkZWZpbmVkKF9fSFBfYUNDKQotIyAgaW5jbHVk
ZSA8YWN4eF9kZW1hbmdsZS5oPgotIyBlbmRpZiAgLy8gR1RFU1RfSEFTSF9DWFhBQklfSF8KLQot
bmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gQ2Fub25pY2Fs
aXplcyBhIGdpdmVuIG5hbWUgd2l0aCByZXNwZWN0IHRvIHRoZSBTdGFuZGFyZCBDKysgTGlicmFy
eS4KLS8vIFRoaXMgaGFuZGxlcyByZW1vdmluZyB0aGUgaW5saW5lIG5hbWVzcGFjZSB3aXRoaW4g
YHN0ZGAgdGhhdCBpcwotLy8gdXNlZCBieSB2YXJpb3VzIHN0YW5kYXJkIGxpYnJhcmllcyAoZS5n
LiwgYHN0ZDo6X18xYCkuICBOYW1lcyBvdXRzaWRlCi0vLyBvZiBuYW1lc3BhY2Ugc3RkIGFyZSBy
ZXR1cm5lZCB1bm1vZGlmaWVkLgotaW5saW5lIHN0ZDo6c3RyaW5nIENhbm9uaWNhbGl6ZUZvclN0
ZExpYlZlcnNpb25pbmcoc3RkOjpzdHJpbmcgcykgewotICBzdGF0aWMgY29uc3QgY2hhciBwcmVm
aXhbXSA9ICJzdGQ6Ol9fIjsKLSAgaWYgKHMuY29tcGFyZSgwLCBzdHJsZW4ocHJlZml4KSwgcHJl
Zml4KSA9PSAwKSB7Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBlbmQgPSBzLmZpbmQoIjo6
Iiwgc3RybGVuKHByZWZpeCkpOwotICAgIGlmIChlbmQgIT0gcy5ucG9zKSB7Ci0gICAgICAvLyBF
cmFzZSBldmVyeXRoaW5nIGJldHdlZW4gdGhlIGluaXRpYWwgYHN0ZGAgYW5kIHRoZSBzZWNvbmQg
YDo6YC4KLSAgICAgIHMuZXJhc2Uoc3RybGVuKCJzdGQiKSwgZW5kIC0gc3RybGVuKCJzdGQiKSk7
Ci0gICAgfQotICB9Ci0gIHJldHVybiBzOwotfQotCi0vLyBHZXRUeXBlTmFtZTxUPigpIHJldHVy
bnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVC4KLS8vIE5COiBUaGlzIGZ1bmN0aW9u
IGlzIGFsc28gdXNlZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YK
LS8vIHRoZSB0eXBlZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotc3RkOjpzdHJpbmcgR2V0VHlwZU5hbWUoKSB7Ci0jIGlmIEdURVNUX0hBU19SVFRJCi0K
LSAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHR5cGVpZChUKS5uYW1lKCk7Ci0jICBpZiBHVEVT
VF9IQVNfQ1hYQUJJX0hfIHx8IGRlZmluZWQoX19IUF9hQ0MpCi0gIGludCBzdGF0dXMgPSAwOwot
ICAvLyBnY2MncyBpbXBsZW1lbnRhdGlvbiBvZiB0eXBlaWQoVCkubmFtZSgpIG1hbmdsZXMgdGhl
IHR5cGUgbmFtZSwKLSAgLy8gc28gd2UgaGF2ZSB0byBkZW1hbmdsZSBpdC4KLSMgICBpZiBHVEVT
VF9IQVNfQ1hYQUJJX0hfCi0gIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYg
IC8vIEdURVNUX0hBU19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9f
Y3hhX2RlbWFuZ2xlKG5hbWUsIDAsIDAsICZzdGF0dXMpOwotICBjb25zdCBzdGQ6OnN0cmluZyBu
YW1lX3N0cihzdGF0dXMgPT0gMCA/IHJlYWRhYmxlX25hbWUgOiBuYW1lKTsKLSAgZnJlZShyZWFk
YWJsZV9uYW1lKTsKLSAgcmV0dXJuIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZlcnNpb25pbmcobmFt
ZV9zdHIpOwotIyAgZWxzZQotICByZXR1cm4gbmFtZTsKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNf
Q1hYQUJJX0hfIHx8IF9fSFBfYUNDCi0KLSMgZWxzZQotCi0gIHJldHVybiAiPHR5cGU+IjsKLQot
IyBlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKLX0KLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
IHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotLy8gQXNzZXJ0eVR5cGVFcTxUMSwgVDI+Ojp0
eXBlIGlzIGRlZmluZWQgaWZmIFQxIGFuZCBUMiBhcmUgdGhlIHNhbWUKLS8vIHR5cGUuICBUaGlz
IGNhbiBiZSB1c2VkIGFzIGEgY29tcGlsZS10aW1lIGFzc2VydGlvbiB0byBlbnN1cmUgdGhhdAot
Ly8gdHdvIHR5cGVzIGFyZSBlcXVhbC4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMj4KLXN0cnVjdCBBc3NlcnRUeXBlRXE7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3Ry
dWN0IEFzc2VydFR5cGVFcTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKLQotLy8g
QSB1bmlxdWUgdHlwZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYXJndW1lbnRz
IG9mIGNsYXNzCi0vLyB0ZW1wbGF0ZSBUeXBlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRl
IHZhcmlhZGljIHRlbXBsYXRlcwotLy8gKGUuZy4gVHlwZXM8aW50PiwgVHlwZTxpbnQsIGRvdWJs
ZT4sIGFuZCBldGMpLCB3aGljaCBDKysgZG9lc24ndAotLy8gc3VwcG9ydCBkaXJlY3RseS4KLXN0
cnVjdCBOb25lIHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0
cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4g
cGFydGljdWxhciwgVHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBl
IGxpc3Qgd2l0aCBOIHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2Vw
dCBmb3IgVHlwZXMwLCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0
eXBlczoKLS8vIEhlYWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBm
b3IgdGhlIHJlc3Qgb2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgot
c3RydWN0IFR5cGVzMCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5k
IHNvIG9uLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLQotJHJhbmdlIGkgMi4u
bgotCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkKLXRlbXBsYXRlIDwk
Zm9yIGosIFtbdHlwZW5hbWUgVCRqXV0+Ci1zdHJ1Y3QgVHlwZXMkaSB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlcyQoaS0xKTwkZm9yIGssIFtbVCRrXV0+IFRhaWw7Ci19Owot
Ci0KLV1dCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBXZSBkb24ndCB3YW50IHRv
IHJlcXVpcmUgdGhlIHVzZXJzIHRvIHdyaXRlIFR5cGVzTjwuLi4+IGRpcmVjdGx5LAotLy8gYXMg
dGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFR5cGVzPC4uLj4g
aXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3Nh
Z2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9u
IHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMg
dGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVHlwZXM8aW50PgotLy8gd2lsbCBhcHBlYXIg
YXMgVHlwZXM8aW50LCBOb25lLCBOb25lLCAuLi4sIE5vbmU+IGluIHRoZSBjb21waWxlcgotLy8g
ZXJyb3JzKS4KLS8vCi0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0
IG9mIHRoZSB0d28gYXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0ZSBUeXBlczxUMSwg
Li4uLCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxsIHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUeXBl
c048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVh
ZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0
aGUKLS8vIFR5cGVzIHRlbXBsYXRlLgotCi0kcmFuZ2UgaSAxLi5uCi10ZW1wbGF0ZSA8JGZvciBp
LCBbW3R5cGVuYW1lIFQkaSA9IGludGVybmFsOjpOb25lXV0+Ci1zdHJ1Y3QgVHlwZXMgewotICB0
eXBlZGVmIGludGVybmFsOjpUeXBlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRl
bXBsYXRlIDw+Ci1zdHJ1Y3QgVHlwZXM8JGZvciBpLCBbW2ludGVybmFsOjpOb25lXV0+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMwIHR5cGU7Ci19OwotCi0kcmFuZ2UgaSAxLi5uLTEKLSRm
b3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgaSsxLi5uCi10ZW1wbGF0ZSA8JGZvciBq
LCBbW3R5cGVuYW1lIFQkal1dPgotc3RydWN0IFR5cGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tb
LCBpbnRlcm5hbDo6Tm9uZV1dPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzJGk8JGZvciBq
LCBbW1Qkal1dPiB0eXBlOwotfTsKLQotXV0KLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQotIyBk
ZWZpbmUgR1RFU1RfVEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcwotCi0vLyBU
aGUgdGVtcGxhdGUgInNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8VG1wbD4gaXMgdXNlZCB0
bwotLy8gcmVwcmVzZW50IFRtcGwsIHdoaWNoIG11c3QgYmUgYSBjbGFzcyB0ZW1wbGF0ZSB3aXRo
IG9uZSB0eXBlCi0vLyBwYXJhbWV0ZXIsIGFzIGEgdHlwZS4gIFRlbXBsYXRlU2VsPFRtcGw+OjpC
aW5kPFQ+Ojp0eXBlIGlzIGRlZmluZWQKLS8vIGFzIHRoZSB0eXBlIFRtcGw8VD4uICBUaGlzIGFs
bG93cyB1cyB0byBhY3R1YWxseSBpbnN0YW50aWF0ZSB0aGUKLS8vIHRlbXBsYXRlICJzZWxlY3Rl
ZCIgYnkgVGVtcGxhdGVTZWw8VG1wbD4uCi0vLwotLy8gVGhpcyB0cmljayBpcyBuZWNlc3Nhcnkg
Zm9yIHNpbXVsYXRpbmcgdHlwZWRlZiBmb3IgY2xhc3MgdGVtcGxhdGVzLAotLy8gd2hpY2ggQysr
IGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVG1w
bD4KLXN0cnVjdCBUZW1wbGF0ZVNlbCB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBzdHJ1
Y3QgQmluZCB7Ci0gICAgdHlwZWRlZiBUbXBsPFQ+IHR5cGU7Ci0gIH07Ci19OwotCi0jIGRlZmlu
ZSBHVEVTVF9CSU5EXyhUbXBsU2VsLCBUKSBcCi0gIFRtcGxTZWw6OnRlbXBsYXRlIEJpbmQ8VD46
OnR5cGUKLQotLy8gQSB1bmlxdWUgc3RydWN0IHRlbXBsYXRlIHVzZWQgYXMgdGhlIGRlZmF1bHQg
dmFsdWUgZm9yIHRoZQotLy8gYXJndW1lbnRzIG9mIGNsYXNzIHRlbXBsYXRlIFRlbXBsYXRlcy4g
IFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlCi0vLyB2YXJpYWRpYyB0ZW1wbGF0ZXMgKGUuZy4g
VGVtcGxhdGVzPGludD4sIFRlbXBsYXRlczxpbnQsIGRvdWJsZT4sCi0vLyBhbmQgZXRjKSwgd2hp
Y2ggQysrIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
c3RydWN0IE5vbmVUIHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5k
IHN0cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0ZW1wbGF0ZSBsaXN0
cy4gIEluIHBhcnRpY3VsYXIsIFRlbXBsYXRlc048VDEsIFQyLCAuLi4sCi0vLyBUTj4gcmVwcmVz
ZW50cyBhIGxpc3Qgb2YgTiB0ZW1wbGF0ZXMgKFQxLCBUMiwgLi4uLCBhbmQgVE4pLiAgRXhjZXB0
Ci0vLyBmb3IgVGVtcGxhdGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkgaGFzIHR3byBt
ZW1iZXIgdHlwZXM6Ci0vLyBIZWFkIGZvciB0aGUgc2VsZWN0b3Igb2YgdGhlIGZpcnN0IHRlbXBs
YXRlIGluIHRoZSBsaXN0LCBhbmQgVGFpbAotLy8gZm9yIHRoZSByZXN0IG9mIHRoZSBsaXN0Lgot
Ci0vLyBUaGUgZW1wdHkgdGVtcGxhdGUgbGlzdC4KLXN0cnVjdCBUZW1wbGF0ZXMwIHt9OwotCi0v
LyBUZW1wbGF0ZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczEgewotICB0eXBlZGVmIFRl
bXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczAgVGFpbDsKLX07Ci0KLSRy
YW5nZSBpIDIuLm4KLQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2UgayAyLi5pCi10
ZW1wbGF0ZSA8JGZvciBqLCBbW0dURVNUX1RFTVBMQVRFXyBUJGpdXT4KLXN0cnVjdCBUZW1wbGF0
ZXMkaSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzJChpLTEpPCRmb3IgaywgW1tUJGtdXT4gVGFpbDsKLX07Ci0KLQotXV0KLQotLy8gV2UgZG9u
J3Qgd2FudCB0byByZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGly
ZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3Ro
LiAgVGVtcGxhdGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJh
dGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3Is
IGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVu
dCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVz
PGxpc3Q+Ci0vLyB3aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAu
Li4sIE5vbmVUPiBpbiB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0
aW9uIGlzIHRvIGNvbWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEK
LS8vIHVzZXIgd291bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBU
ZXN0IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGlu
dGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNs
YXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0
ZW1wbGF0ZS4KLQotJHJhbmdlIGkgMS4ubgotdGVtcGxhdGUgPCRmb3IgaSwgW1tHVEVTVF9URU1Q
TEFURV8gVCRpID0gTm9uZVRdXT4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0eXBlZGVmIFRlbXBs
YXRlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzPCRmb3IgaSwgW1tOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMCB0eXBl
OwotfTsKLQotJHJhbmdlIGkgMS4ubi0xCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5n
ZSBrIGkrMS4ubgotdGVtcGxhdGUgPCRmb3IgaiwgW1tHVEVTVF9URU1QTEFURV8gVCRqXV0+Ci1z
dHJ1Y3QgVGVtcGxhdGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBOb25lVF1dPiB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0eXBlOwotfTsKLQotXV0KLQotLy8g
VGhlIFR5cGVMaXN0IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBlaXRoZXIgYSBz
aW5nbGUgdHlwZQotLy8gb3IgYSBUeXBlczwuLi4+IGxpc3QgaW4gVFlQRURfVEVTVF9DQVNFKCkg
YW5kCi0vLyBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpLgotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLXN0cnVjdCBUeXBlTGlzdCB7Ci0gIHR5cGVkZWYgVHlwZXMxPFQ+IHR5cGU7Ci19
OwotCi0KLSRyYW5nZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpXV0+
Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlwZXM8JGZvciBpLCBbW1QkaV1dPiA+IHsKLSAgdHlwZWRlZiB0
eXBlbmFtZSBUeXBlczwkZm9yIGksIFtbVCRpXV0+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYg
IC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tNC9hY3hfcHRocmVhZC5tNCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyY2YyMGRlMTQ0YTExYmUyYWE2MDNiMDRlYTUxMTI0NDE5MTAzN2I3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CisrKyAvZGV2L251bGwKQEAgLTEsMzYzICswLDAg
QEAKLSMgVGhpcyB3YXMgcmV0cmlldmVkIGZyb20KLSMgICAgaHR0cDovL3N2bi4wcG9pbnRlci5k
ZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3JldmlzaW9uPTEyNzcmcm9vdD1h
dmFoaQotIyBTZWUgYWxzbyAocGVyaGFwcyBmb3IgbmV3IHZlcnNpb25zPykKLSMgICAgaHR0cDov
L3N2bi4wcG9pbnRlci5kZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3Jvb3Q9
YXZhaGkKLSMKLSMgV2UndmUgcmV3cml0dGVuIHRoZSBpbmNvbnNpc3RlbmN5IGNoZWNrIGNvZGUg
KGZyb20gYXZhaGkpLCB0byB3b3JrCi0jIG1vcmUgYnJvYWRseS4gIEluIHBhcnRpY3VsYXIsIGl0
IG5vIGxvbmdlciBhc3N1bWVzIGxkIGFjY2VwdHMgLXpkZWZzLgotIyBUaGlzIGNhdXNlZCBhIHJl
c3RydWN0aW5nIG9mIHRoZSBjb2RlLCBidXQgdGhlIGZ1bmN0aW9uYWxpdHkgaGFzIG9ubHkKLSMg
Y2hhbmdlZCBhIGxpdHRsZS4KLQotZG5sIEBzeW5vcHNpcyBBQ1hfUFRIUkVBRChbQUNUSU9OLUlG
LUZPVU5EWywgQUNUSU9OLUlGLU5PVC1GT1VORF1dKQotZG5sCi1kbmwgQHN1bW1hcnkgZmlndXJl
IG91dCBob3cgdG8gYnVpbGQgQyBwcm9ncmFtcyB1c2luZyBQT1NJWCB0aHJlYWRzCi1kbmwKLWRu
bCBUaGlzIG1hY3JvIGZpZ3VyZXMgb3V0IGhvdyB0byBidWlsZCBDIHByb2dyYW1zIHVzaW5nIFBP
U0lYIHRocmVhZHMuCi1kbmwgSXQgc2V0cyB0aGUgUFRIUkVBRF9MSUJTIG91dHB1dCB2YXJpYWJs
ZSB0byB0aGUgdGhyZWFkcyBsaWJyYXJ5IGFuZAotZG5sIGxpbmtlciBmbGFncywgYW5kIHRoZSBQ
VEhSRUFEX0NGTEFHUyBvdXRwdXQgdmFyaWFibGUgdG8gYW55IHNwZWNpYWwKLWRubCBDIGNvbXBp
bGVyIGZsYWdzIHRoYXQgYXJlIG5lZWRlZC4gKFRoZSB1c2VyIGNhbiBhbHNvIGZvcmNlIGNlcnRh
aW4KLWRubCBjb21waWxlciBmbGFncy9saWJzIHRvIGJlIHRlc3RlZCBieSBzZXR0aW5nIHRoZXNl
IGVudmlyb25tZW50Ci1kbmwgdmFyaWFibGVzLikKLWRubAotZG5sIEFsc28gc2V0cyBQVEhSRUFE
X0NDIHRvIGFueSBzcGVjaWFsIEMgY29tcGlsZXIgdGhhdCBpcyBuZWVkZWQgZm9yCi1kbmwgbXVs
dGktdGhyZWFkZWQgcHJvZ3JhbXMgKGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBDQyBvdGhlcndp
c2UpLgotZG5sIChUaGlzIGlzIG5lY2Vzc2FyeSBvbiBBSVggdG8gdXNlIHRoZSBzcGVjaWFsIGNj
X3IgY29tcGlsZXIgYWxpYXMuKQotZG5sCi1kbmwgTk9URTogWW91IGFyZSBhc3N1bWVkIHRvIG5v
dCBvbmx5IGNvbXBpbGUgeW91ciBwcm9ncmFtIHdpdGggdGhlc2UKLWRubCBmbGFncywgYnV0IGFs
c28gbGluayBpdCB3aXRoIHRoZW0gYXMgd2VsbC4gZS5nLiB5b3Ugc2hvdWxkIGxpbmsKLWRubCB3
aXRoICRQVEhSRUFEX0NDICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTICRMREZMQUdTIC4uLiAkUFRI
UkVBRF9MSUJTCi1kbmwgJExJQlMKLWRubAotZG5sIElmIHlvdSBhcmUgb25seSBidWlsZGluZyB0
aHJlYWRzIHByb2dyYW1zLCB5b3UgbWF5IHdpc2ggdG8gdXNlCi1kbmwgdGhlc2UgdmFyaWFibGVz
IGluIHlvdXIgZGVmYXVsdCBMSUJTLCBDRkxBR1MsIGFuZCBDQzoKLWRubAotZG5sICAgICAgICBM
SUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotZG5sICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBU
SFJFQURfQ0ZMQUdTIgotZG5sICAgICAgICBDQz0iJFBUSFJFQURfQ0MiCi1kbmwKLWRubCBJbiBh
ZGRpdGlvbiwgaWYgdGhlIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIHRocmVhZC1hdHRyaWJ1dGUK
LWRubCBjb25zdGFudCBoYXMgYSBub25zdGFuZGFyZCBuYW1lLCBkZWZpbmVzIFBUSFJFQURfQ1JF
QVRFX0pPSU5BQkxFIHRvCi1kbmwgdGhhdCBuYW1lIChlLmcuIFBUSFJFQURfQ1JFQVRFX1VOREVU
QUNIRUQgb24gQUlYKS4KLWRubAotZG5sIEFDVElPTi1JRi1GT1VORCBpcyBhIGxpc3Qgb2Ygc2hl
bGwgY29tbWFuZHMgdG8gcnVuIGlmIGEgdGhyZWFkcwotZG5sIGxpYnJhcnkgaXMgZm91bmQsIGFu
ZCBBQ1RJT04tSUYtTk9ULUZPVU5EIGlzIGEgbGlzdCBvZiBjb21tYW5kcyB0bwotZG5sIHJ1biBp
dCBpZiBpdCBpcyBub3QgZm91bmQuIElmIEFDVElPTi1JRi1GT1VORCBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUKLWRubCBkZWZhdWx0IGFjdGlvbiB3aWxsIGRlZmluZSBIQVZFX1BUSFJFQUQuCi1kbmwK
LWRubCBQbGVhc2UgbGV0IHRoZSBhdXRob3JzIGtub3cgaWYgdGhpcyBtYWNybyBmYWlscyBvbiBh
bnkgcGxhdGZvcm0sIG9yCi1kbmwgaWYgeW91IGhhdmUgYW55IG90aGVyIHN1Z2dlc3Rpb25zIG9y
IGNvbW1lbnRzLiBUaGlzIG1hY3JvIHdhcyBiYXNlZAotZG5sIG9uIHdvcmsgYnkgU0dKIG9uIGF1
dG9jb25mIHNjcmlwdHMgZm9yIEZGVFcgKHd3dy5mZnR3Lm9yZykgKHdpdGgKLWRubCBoZWxwIGZy
b20gTS4gRnJpZ28pLCBhcyB3ZWxsIGFzIGFjX3B0aHJlYWQgYW5kIGhiX3B0aHJlYWQgbWFjcm9z
Ci1kbmwgcG9zdGVkIGJ5IEFsZWphbmRybyBGb3Jlcm8gQ3VlcnZvIHRvIHRoZSBhdXRvY29uZiBt
YWNybyByZXBvc2l0b3J5LgotZG5sIFdlIGFyZSBhbHNvIGdyYXRlZnVsIGZvciB0aGUgaGVscGZ1
bCBmZWVkYmFjayBvZiBudW1lcm91cyB1c2Vycy4KLWRubAotZG5sIEBjYXRlZ29yeSBJbnN0YWxs
ZWRQYWNrYWdlcwotZG5sIEBhdXRob3IgU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5t
aXQuZWR1PgotZG5sIEB2ZXJzaW9uIDIwMDYtMDUtMjkKLWRubCBAbGljZW5zZSBHUExXaXRoQUNF
eGNlcHRpb24KLWRubCAKLWRubCBDaGVja3MgZm9yIEdDQyBzaGFyZWQvcHRocmVhZCBpbmNvbnNp
c3RlbmN5IGJhc2VkIG9uIHdvcmsgYnkKLWRubCBNYXJjaW4gT3dzaWFueSA8bWFyY2luQG93c2lh
bnkucGw+Ci0KLQotQUNfREVGVU4oW0FDWF9QVEhSRUFEXSwgWwotQUNfUkVRVUlSRShbQUNfQ0FO
T05JQ0FMX0hPU1RdKQotQUNfTEFOR19TQVZFCi1BQ19MQU5HX0MKLWFjeF9wdGhyZWFkX29rPW5v
Ci0KLSMgV2UgdXNlZCB0byBjaGVjayBmb3IgcHRocmVhZC5oIGZpcnN0LCBidXQgdGhpcyBmYWls
cyBpZiBwdGhyZWFkLmgKLSMgcmVxdWlyZXMgc3BlY2lhbCBjb21waWxlciBmbGFncyAoZS5nLiBv
biBUcnVlNjQgb3IgU2VxdWVudCkuCi0jIEl0IGdldHMgY2hlY2tlZCBmb3IgaW4gdGhlIGxpbmsg
dGVzdCBhbnl3YXkuCi0KLSMgRmlyc3Qgb2YgYWxsLCBjaGVjayBpZiB0aGUgdXNlciBoYXMgc2V0
IGFueSBvZiB0aGUgUFRIUkVBRF9MSUJTLAotIyBldGNldGVyYSBlbnZpcm9ubWVudCB2YXJpYWJs
ZXMsIGFuZCBpZiB0aHJlYWRzIGxpbmtpbmcgd29ya3MgdXNpbmcKLSMgdGhlbToKLWlmIHRlc3Qg
eCIkUFRIUkVBRF9MSUJTJFBUSFJFQURfQ0ZMQUdTIiAhPSB4OyB0aGVuCi0gICAgICAgIHNhdmVf
Q0ZMQUdTPSIkQ0ZMQUdTIgotICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdT
IgotICAgICAgICBzYXZlX0xJQlM9IiRMSUJTIgotICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJT
ICRMSUJTIgotICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBwdGhyZWFkX2pvaW4gaW4gTElC
Uz0kUFRIUkVBRF9MSUJTIHdpdGggQ0ZMQUdTPSRQVEhSRUFEX0NGTEFHU10pCi0gICAgICAgIEFD
X1RSWV9MSU5LX0ZVTkMocHRocmVhZF9qb2luLCBhY3hfcHRocmVhZF9vaz15ZXMpCi0gICAgICAg
IEFDX01TR19SRVNVTFQoJGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0ZXN0IHgiJGFjeF9w
dGhyZWFkX29rIiA9IHhubzsgdGhlbgotICAgICAgICAgICAgICAgIFBUSFJFQURfTElCUz0iIgot
ICAgICAgICAgICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIiCi0gICAgICAgIGZpCi0gICAgICAgIExJ
QlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotZmkKLQotIyBX
ZSBtdXN0IGNoZWNrIGZvciB0aGUgdGhyZWFkcyBsaWJyYXJ5IHVuZGVyIGEgbnVtYmVyIG9mIGRp
ZmZlcmVudAotIyBuYW1lczsgdGhlIG9yZGVyaW5nIGlzIHZlcnkgaW1wb3J0YW50IGJlY2F1c2Ug
c29tZSBzeXN0ZW1zCi0jIChlLmcuIERFQykgaGF2ZSBib3RoIC1scHRocmVhZCBhbmQgLWxwdGhy
ZWFkcywgd2hlcmUgb25lIG9mIHRoZQotIyBsaWJyYXJpZXMgaXMgYnJva2VuIChub24tUE9TSVgp
LgotCi0jIENyZWF0ZSBhIGxpc3Qgb2YgdGhyZWFkIGZsYWdzIHRvIHRyeS4gIEl0ZW1zIHN0YXJ0
aW5nIHdpdGggYSAiLSIgYXJlCi0jIEMgY29tcGlsZXIgZmxhZ3MsIGFuZCBvdGhlciBpdGVtcyBh
cmUgbGlicmFyeSBuYW1lcywgZXhjZXB0IGZvciAibm9uZSIKLSMgd2hpY2ggaW5kaWNhdGVzIHRo
YXQgd2UgdHJ5IHdpdGhvdXQgYW55IGZsYWdzIGF0IGFsbCwgYW5kICJwdGhyZWFkLWNvbmZpZyIK
LSMgd2hpY2ggaXMgYSBwcm9ncmFtIHJldHVybmluZyB0aGUgZmxhZ3MgZm9yIHRoZSBQdGggZW11
bGF0aW9uIGxpYnJhcnkuCi0KLWFjeF9wdGhyZWFkX2ZsYWdzPSJwdGhyZWFkcyBub25lIC1LdGhy
ZWFkIC1rdGhyZWFkIGx0aHJlYWQgLXB0aHJlYWQgLXB0aHJlYWRzIC1tdGhyZWFkcyBwdGhyZWFk
IC0tdGhyZWFkLXNhZmUgLW10IHB0aHJlYWQtY29uZmlnIgotCi0jIFRoZSBvcmRlcmluZyAqaXMq
IChzb21ldGltZXMpIGltcG9ydGFudC4gIFNvbWUgbm90ZXMgb24gdGhlCi0jIGluZGl2aWR1YWwg
aXRlbXMgZm9sbG93OgotCi0jIHB0aHJlYWRzOiBBSVggKG11c3QgY2hlY2sgdGhpcyBiZWZvcmUg
LWxwdGhyZWFkKQotIyBub25lOiBpbiBjYXNlIHRocmVhZHMgYXJlIGluIGxpYmM7IHNob3VsZCBi
ZSB0cmllZCBiZWZvcmUgLUt0aHJlYWQgYW5kCi0jICAgICAgIG90aGVyIGNvbXBpbGVyIGZsYWdz
IHRvIHByZXZlbnQgY29udGludWFsIGNvbXBpbGVyIHdhcm5pbmdzCi0jIC1LdGhyZWFkOiBTZXF1
ZW50ICh0aHJlYWRzIGluIGxpYmMsIGJ1dCAtS3RocmVhZCBuZWVkZWQgZm9yIHB0aHJlYWQuaCkK
LSMgLWt0aHJlYWQ6IEZyZWVCU0Qga2VybmVsIHRocmVhZHMgKHByZWZlcnJlZCB0byAtcHRocmVh
ZCBzaW5jZSBTTVAtYWJsZSkKLSMgbHRocmVhZDogTGludXhUaHJlYWRzIHBvcnQgb24gRnJlZUJT
RCAoYWxzbyBwcmVmZXJyZWQgdG8gLXB0aHJlYWQpCi0jIC1wdGhyZWFkOiBMaW51eC9nY2MgKGtl
cm5lbCB0aHJlYWRzKSwgQlNEL2djYyAodXNlcmxhbmQgdGhyZWFkcykKLSMgLXB0aHJlYWRzOiBT
b2xhcmlzL2djYwotIyAtbXRocmVhZHM6IE1pbmd3MzIvZ2NjLCBMeW54L2djYwotIyAtbXQ6IFN1
biBXb3Jrc2hvcCBDIChtYXkgb25seSBsaW5rIFN1bk9TIHRocmVhZHMgWy1sdGhyZWFkXSwgYnV0
IGl0Ci0jICAgICAgZG9lc24ndCBodXJ0IHRvIGNoZWNrIHNpbmNlIHRoaXMgc29tZXRpbWVzIGRl
ZmluZXMgcHRocmVhZHMgdG9vOwotIyAgICAgIGFsc28gZGVmaW5lcyAtRF9SRUVOVFJBTlQpCi0j
ICAgICAgLi4uIC1tdCBpcyBhbHNvIHRoZSBwdGhyZWFkcyBmbGFnIGZvciBIUC9hQ0MKLSMgcHRo
cmVhZDogTGludXgsIGV0Y2V0ZXJhCi0jIC0tdGhyZWFkLXNhZmU6IEtBSSBDKysKLSMgcHRocmVh
ZC1jb25maWc6IHVzZSBwdGhyZWFkLWNvbmZpZyBwcm9ncmFtIChmb3IgR05VIFB0aCBsaWJyYXJ5
KQotCi1jYXNlICIke2hvc3RfY3B1fS0ke2hvc3Rfb3N9IiBpbgotICAgICAgICAqc29sYXJpcyop
Ci0KLSAgICAgICAgIyBPbiBTb2xhcmlzIChhdCBsZWFzdCwgZm9yIHNvbWUgdmVyc2lvbnMpLCBs
aWJjIGNvbnRhaW5zIHN0dWJiZWQKLSAgICAgICAgIyAobm9uLWZ1bmN0aW9uYWwpIHZlcnNpb25z
IG9mIHRoZSBwdGhyZWFkcyByb3V0aW5lcywgc28gbGluay1iYXNlZAotICAgICAgICAjIHRlc3Rz
IHdpbGwgZXJyb25lb3VzbHkgc3VjY2VlZC4gIChXZSBuZWVkIHRvIGxpbmsgd2l0aCAtcHRocmVh
ZHMvLW10LwotICAgICAgICAjIC1scHRocmVhZC4pICAoVGhlIHN0dWJzIGFyZSBtaXNzaW5nIHB0
aHJlYWRfY2xlYW51cF9wdXNoLCBvciByYXRoZXIKLSAgICAgICAgIyBhIGZ1bmN0aW9uIGNhbGxl
ZCBieSB0aGlzIG1hY3JvLCBzbyB3ZSBjb3VsZCBjaGVjayBmb3IgdGhhdCwgYnV0Ci0gICAgICAg
ICMgd2hvIGtub3dzIHdoZXRoZXIgdGhleSdsbCBzdHViIHRoYXQgdG9vIGluIGEgZnV0dXJlIGxp
YmMuKSAgU28sCi0gICAgICAgICMgd2UnbGwganVzdCBsb29rIGZvciAtcHRocmVhZHMgYW5kIC1s
cHRocmVhZCBmaXJzdDoKLQotICAgICAgICBhY3hfcHRocmVhZF9mbGFncz0iLXB0aHJlYWRzIHB0
aHJlYWQgLW10IC1wdGhyZWFkICRhY3hfcHRocmVhZF9mbGFncyIKLSAgICAgICAgOzsKLWVzYWMK
LQotaWYgdGVzdCB4IiRhY3hfcHRocmVhZF9vayIgPSB4bm87IHRoZW4KLWZvciBmbGFnIGluICRh
Y3hfcHRocmVhZF9mbGFnczsgZG8KLQotICAgICAgICBjYXNlICRmbGFnIGluCi0gICAgICAgICAg
ICAgICAgbm9uZSkKLSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgcHRo
cmVhZHMgd29yayB3aXRob3V0IGFueSBmbGFnc10pCi0gICAgICAgICAgICAgICAgOzsKLQotICAg
ICAgICAgICAgICAgIC0qKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhl
ciBwdGhyZWFkcyB3b3JrIHdpdGggJGZsYWddKQotICAgICAgICAgICAgICAgIFBUSFJFQURfQ0ZM
QUdTPSIkZmxhZyIKLSAgICAgICAgICAgICAgICA7OwotCi0JCXB0aHJlYWQtY29uZmlnKQotCQlB
Q19DSEVDS19QUk9HKGFjeF9wdGhyZWFkX2NvbmZpZywgcHRocmVhZC1jb25maWcsIHllcywgbm8p
Ci0JCWlmIHRlc3QgeCIkYWN4X3B0aHJlYWRfY29uZmlnIiA9IHhubzsgdGhlbiBjb250aW51ZTsg
ZmkKLQkJUFRIUkVBRF9DRkxBR1M9ImBwdGhyZWFkLWNvbmZpZyAtLWNmbGFnc2AiCi0JCVBUSFJF
QURfTElCUz0iYHB0aHJlYWQtY29uZmlnIC0tbGRmbGFnc2AgYHB0aHJlYWQtY29uZmlnIC0tbGli
c2AiCi0JCTs7Ci0KLSAgICAgICAgICAgICAgICAqKQotICAgICAgICAgICAgICAgIEFDX01TR19D
SEVDS0lORyhbZm9yIHRoZSBwdGhyZWFkcyBsaWJyYXJ5IC1sJGZsYWddKQotICAgICAgICAgICAg
ICAgIFBUSFJFQURfTElCUz0iLWwkZmxhZyIKLSAgICAgICAgICAgICAgICA7OwotICAgICAgICBl
c2FjCi0KLSAgICAgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRD
RkxBR1MiCi0gICAgICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0gICAgICAgIENGTEFH
Uz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBDaGVjayBmb3IgdmFyaW91
cyBmdW5jdGlvbnMuICBXZSBtdXN0IGluY2x1ZGUgcHRocmVhZC5oLAotICAgICAgICAjIHNpbmNl
IHNvbWUgZnVuY3Rpb25zIG1heSBiZSBtYWNyb3MuICAoT24gdGhlIFNlcXVlbnQsIHdlCi0gICAg
ICAgICMgbmVlZCBhIHNwZWNpYWwgZmxhZyAtS3RocmVhZCB0byBtYWtlIHRoaXMgaGVhZGVyIGNv
bXBpbGUuKQotICAgICAgICAjIFdlIGNoZWNrIGZvciBwdGhyZWFkX2pvaW4gYmVjYXVzZSBpdCBp
cyBpbiAtbHB0aHJlYWQgb24gSVJJWAotICAgICAgICAjIHdoaWxlIHB0aHJlYWRfY3JlYXRlIGlz
IGluIGxpYmMuICBXZSBjaGVjayBmb3IgcHRocmVhZF9hdHRyX2luaXQKLSAgICAgICAgIyBkdWUg
dG8gREVDIGNyYXppbmVzcyB3aXRoIC1scHRocmVhZHMuICBXZSBjaGVjayBmb3IKLSAgICAgICAg
IyBwdGhyZWFkX2NsZWFudXBfcHVzaCBiZWNhdXNlIGl0IGlzIG9uZSBvZiB0aGUgZmV3IHB0aHJl
YWQKLSAgICAgICAgIyBmdW5jdGlvbnMgb24gU29sYXJpcyB0aGF0IGRvZXNuJ3QgaGF2ZSBhIG5v
bi1mdW5jdGlvbmFsIGxpYmMgc3R1Yi4KLSAgICAgICAgIyBXZSB0cnkgcHRocmVhZF9jcmVhdGUg
b24gZ2VuZXJhbCBwcmluY2lwbGVzLgotICAgICAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0
aHJlYWQuaD5dLAotICAgICAgICAgICAgICAgICAgICBbcHRocmVhZF90IHRoOyBwdGhyZWFkX2pv
aW4odGgsIDApOwotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0
aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9j
cmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0gICAgICAgICAgICAg
ICAgICAgIFthY3hfcHRocmVhZF9vaz15ZXNdKQotCi0gICAgICAgIExJQlM9IiRzYXZlX0xJQlMi
Ci0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotCi0gICAgICAgIEFDX01TR19SRVNVTFQo
JGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5
ZXM7IHRoZW4KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZmkKLQotICAgICAgICBQ
VEhSRUFEX0xJQlM9IiIKLSAgICAgICAgUFRIUkVBRF9DRkxBR1M9IiIKLWRvbmUKLWZpCi0KLSMg
VmFyaW91cyBvdGhlciBjaGVja3M6Ci1pZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7
IHRoZW4KLSAgICAgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgTElCUz0iJFBUSFJFQURf
TElCUyAkTElCUyIKLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAgICAgIENGTEFH
Uz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBEZXRlY3QgQUlYIGxvc3Nh
Z2U6IEpPSU5BQkxFIGF0dHJpYnV0ZSBpcyBjYWxsZWQgVU5ERVRBQ0hFRC4KLQlBQ19NU0dfQ0hF
Q0tJTkcoW2ZvciBqb2luYWJsZSBwdGhyZWFkIGF0dHJpYnV0ZV0pCi0JYXR0cl9uYW1lPXVua25v
d24KLQlmb3IgYXR0ciBpbiBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBQVEhSRUFEX0NSRUFURV9V
TkRFVEFDSEVEOyBkbwotCSAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLCBb
aW50IGF0dHI9JGF0dHI7IHJldHVybiBhdHRyO10sCi0gICAgICAgICAgICAgICAgICAgICAgICBb
YXR0cl9uYW1lPSRhdHRyOyBicmVha10pCi0JZG9uZQotICAgICAgICBBQ19NU0dfUkVTVUxUKCRh
dHRyX25hbWUpCi0gICAgICAgIGlmIHRlc3QgIiRhdHRyX25hbWUiICE9IFBUSFJFQURfQ1JFQVRF
X0pPSU5BQkxFOyB0aGVuCi0gICAgICAgICAgICBBQ19ERUZJTkVfVU5RVU9URUQoUFRIUkVBRF9D
UkVBVEVfSk9JTkFCTEUsICRhdHRyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0RlZmluZSB0byBuZWNlc3Nhcnkgc3ltYm9sIGlmIHRoaXMgY29uc3RhbnQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBhIG5vbi1zdGFuZGFyZCBuYW1lIG9uIHlvdXIg
c3lzdGVtLl0pCi0gICAgICAgIGZpCi0KLSAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBtb3Jl
IHNwZWNpYWwgZmxhZ3MgYXJlIHJlcXVpcmVkIGZvciBwdGhyZWFkc10pCi0gICAgICAgIGZsYWc9
bm8KLSAgICAgICAgY2FzZSAiJHtob3N0X2NwdX0tJHtob3N0X29zfSIgaW4KLSAgICAgICAgICAg
ICotYWl4KiB8ICotZnJlZWJzZCogfCAqLWRhcndpbiopIGZsYWc9Ii1EX1RIUkVBRF9TQUZFIjs7
Ci0gICAgICAgICAgICAqc29sYXJpcyogfCAqLW9zZiogfCAqLWhwdXgqKSBmbGFnPSItRF9SRUVO
VFJBTlQiOzsKLSAgICAgICAgZXNhYwotICAgICAgICBBQ19NU0dfUkVTVUxUKCR7ZmxhZ30pCi0g
ICAgICAgIGlmIHRlc3QgIngkZmxhZyIgIT0geG5vOyB0aGVuCi0gICAgICAgICAgICBQVEhSRUFE
X0NGTEFHUz0iJGZsYWcgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBmaQotCi0gICAgICAgIExJ
QlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotICAgICAgICAj
IE1vcmUgQUlYIGxvc3NhZ2U6IG11c3QgY29tcGlsZSB3aXRoIHhsY19yIG9yIGNjX3IKLQlpZiB0
ZXN0IHgiJEdDQyIgIT0geHllczsgdGhlbgotICAgICAgICAgIEFDX0NIRUNLX1BST0dTKFBUSFJF
QURfQ0MsIHhsY19yIGNjX3IsICR7Q0N9KQotICAgICAgICBlbHNlCi0gICAgICAgICAgUFRIUkVB
RF9DQz0kQ0MKLQlmaQotCi0JIyBUaGUgbmV4dCBwYXJ0IHRyaWVzIHRvIGRldGVjdCBHQ0MgaW5j
b25zaXN0ZW5jeSB3aXRoIC1zaGFyZWQgb24gc29tZQotCSMgYXJjaGl0ZWN0dXJlcyBhbmQgc3lz
dGVtcy4gVGhlIHByb2JsZW0gaXMgdGhhdCBpbiBjZXJ0YWluCi0JIyBjb25maWd1cmF0aW9ucywg
d2hlbiAtc2hhcmVkIGlzIHNwZWNpZmllZCwgR0NDICJmb3JnZXRzIiB0bwotCSMgaW50ZXJuYWxs
eSB1c2UgdmFyaW91cyBmbGFncyB3aGljaCBhcmUgc3RpbGwgbmVjZXNzYXJ5LgotCQotCSMKLQkj
IFByZXBhcmUgdGhlIGZsYWdzCi0JIwotCXNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotCXNhdmVfTElC
Uz0iJExJQlMiCi0Jc2F2ZV9DQz0iJENDIgotCQotCSMgVHJ5IHdpdGggdGhlIGZsYWdzIGRldGVy
bWluZWQgYnkgdGhlIGVhcmxpZXIgY2hlY2tzLgotCSMKLQkjIC1XbCwteixkZWZzIGZvcmNlcyBs
aW5rLXRpbWUgc3ltYm9sIHJlc29sdXRpb24sIHNvIHRoYXQgdGhlCi0JIyBsaW5raW5nIGNoZWNr
cyB3aXRoIC1zaGFyZWQgYWN0dWFsbHkgaGF2ZSBhbnkgdmFsdWUKLQkjCi0JIyBGSVhNRTogLWZQ
SUMgaXMgcmVxdWlyZWQgZm9yIC1zaGFyZWQgb24gbWFueSBhcmNoaXRlY3R1cmVzLAotCSMgc28g
d2Ugc3BlY2lmeSBpdCBoZXJlLCBidXQgdGhlIHJpZ2h0IHdheSB3b3VsZCBwcm9iYWJseSBiZSB0
bwotCSMgcHJvcGVybHkgZGV0ZWN0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkgcmVxdWlyZWQuCi0J
Q0ZMQUdTPSItc2hhcmVkIC1mUElDIC1XbCwteixkZWZzICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdT
IgotCUxJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0JQ0M9IiRQVEhSRUFEX0NDIgotCQotCSMg
SW4gb3JkZXIgbm90IHRvIGNyZWF0ZSBzZXZlcmFsIGxldmVscyBvZiBpbmRlbnRhdGlvbiwgd2Ug
dGVzdAotCSMgdGhlIHZhbHVlIG9mICIkZG9uZSIgdW50aWwgd2UgZmluZCB0aGUgY3VyZSBvciBy
dW4gb3V0IG9mIGlkZWFzLgotCWRvbmU9Im5vIgotCQotCSMgRmlyc3QsIG1ha2Ugc3VyZSB0aGUg
Q0ZMQUdTIHdlIGFkZGVkIGFyZSBhY3R1YWxseSBhY2NlcHRlZCBieSBvdXIKLQkjIGNvbXBpbGVy
LiAgSWYgbm90IChhbmQgT1MgWCdzIGxkLCBmb3IgaW5zdGFuY2UsIGRvZXMgbm90IGFjY2VwdCAt
eiksCi0JIyB0aGVuIHdlIGNhbid0IGRvIHRoaXMgdGVzdC4KLQlpZiB0ZXN0IHgiJGRvbmUiID0g
eG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGNoZWNrIGZvciBHQ0Mg
cHRocmVhZC9zaGFyZWQgaW5jb25zaXN0ZW5jaWVzXSkKLQkgICBBQ19UUllfTElOSygsLCAsIFtk
b25lPXllc10pCi0JCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXMgOyB0aGVuCi0JICAgICAg
QUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNd
KQotCSAgIGZpCi0JZmkKLQkKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNf
TVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1wdGhyZWFkIGlzIHN1ZmZpY2llbnQgd2l0aCAtc2hhcmVk
XSkKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhy
ZWFkX3QgdGg7IHB0aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQo
MCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAs
MCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0J
ICAgCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVT
VUxUKFt5ZXNdKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0JICAgZmkK
LQlmaQotCQotCSMKLQkjIExpbnV4IGdjYyBvbiBzb21lIGFyY2hpdGVjdHVyZXMgc3VjaCBhcyBt
aXBzL21pcHNlbCBmb3JnZXRzCi0JIyBhYm91dCAtbHB0aHJlYWQKLQkjCi0JaWYgdGVzdCB4IiRk
b25lIiA9IHhubzsgdGhlbgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbHB0aHJlYWQg
Zml4ZXMgdGhhdF0pCi0JICAgTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMgJHNhdmVfTElC
UyIKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhy
ZWFkX3QgdGg7IHB0aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQo
MCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAs
MCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0J
Ci0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxU
KFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMiCi0J
ICAgZWxzZQotCSAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQotCWZpCi0JIwotCSMg
RnJlZUJTRCA0LjEwIGdjYyBmb3JnZXRzIHRvIHVzZSAtbGNfciBpbnN0ZWFkIG9mIC1sYwotCSMK
LQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0
aGVyIC1sY19yIGZpeGVzIHRoYXRdKQotCSAgIExJQlM9Ii1sY19yICRQVEhSRUFEX0xJQlMgJHNh
dmVfTElCUyIKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAg
ICBbcHRocmVhZF90IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAgICAgcHRocmVhZF9h
dHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgICAgcHRocmVh
ZF9jcmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0JICAgICAgIFtk
b25lPXllc10pCi0JCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBB
Q19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxjX3IgJFBUSFJFQURf
TElCUyIKLQkgICBlbHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGZpCi0JZmkK
LQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgIyBPSywgd2UgaGF2ZSBydW4gb3V0
IG9mIGlkZWFzCi0JICAgQUNfTVNHX1dBUk4oW0ltcG9zc2libGUgdG8gZGV0ZXJtaW5lIGhvdyB0
byB1c2UgcHRocmVhZHMgd2l0aCBzaGFyZWQgbGlicmFyaWVzXSkKLQkKLQkgICAjIHNvIGl0J3Mg
bm90IHNhZmUgdG8gYXNzdW1lIHRoYXQgd2UgbWF5IHVzZSBwdGhyZWFkcwotCSAgIGFjeF9wdGhy
ZWFkX29rPW5vCi0JZmkKLQkKLQlDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLQlMSUJTPSIkc2F2ZV9M
SUJTIgotCUNDPSIkc2F2ZV9DQyIKLWVsc2UKLSAgICAgICAgUFRIUkVBRF9DQz0iJENDIgotZmkK
LQotQUNfU1VCU1QoUFRIUkVBRF9MSUJTKQotQUNfU1VCU1QoUFRIUkVBRF9DRkxBR1MpCi1BQ19T
VUJTVChQVEhSRUFEX0NDKQotCi0jIEZpbmFsbHksIGV4ZWN1dGUgQUNUSU9OLUlGLUZPVU5EL0FD
VElPTi1JRi1OT1QtRk9VTkQ6Ci1pZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRo
ZW4KLSAgICAgICAgaWZlbHNlKFskMV0sLEFDX0RFRklORShIQVZFX1BUSFJFQUQsMSxbRGVmaW5l
IGlmIHlvdSBoYXZlIFBPU0lYIHRocmVhZHMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMuXSks
WyQxXSkKLSAgICAgICAgOgotZWxzZQotICAgICAgICBhY3hfcHRocmVhZF9vaz1ubwotICAgICAg
ICAkMgotZmkKLUFDX0xBTkdfUkVTVE9SRQotXSlkbmwgQUNYX1BUSFJFQUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200L2d0ZXN0Lm00IGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbTQvZ3Rlc3QubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OThiYTc1
YTRkN2YyYzQ4NjYzMmM2ZGRkYzBkZTUxNzhkMjkwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rlc3Qu
bTQKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi1kbmwgR1RFU1RfTElCX0NIRUNLKFtt
aW5pbXVtIHZlcnNpb24gWywKLWRubCAgICAgICAgICAgICAgICAgIGFjdGlvbiBpZiBmb3VuZCBb
LGFjdGlvbiBpZiBub3QgZm91bmRdXV0pCi1kbmwKLWRubCBDaGVjayBmb3IgdGhlIHByZXNlbmNl
IG9mIHRoZSBHb29nbGUgVGVzdCBsaWJyYXJ5LCBvcHRpb25hbGx5IGF0IGEgbWluaW11bQotZG5s
IHZlcnNpb24sIGFuZCBpbmRpY2F0ZSBhIHZpYWJsZSB2ZXJzaW9uIHdpdGggdGhlIEhBVkVfR1RF
U1QgZmxhZy4gSXQgZGVmaW5lcwotZG5sIHN0YW5kYXJkIHZhcmlhYmxlcyBmb3Igc3Vic3RpdHV0
aW9uIGluY2x1ZGluZyBHVEVTVF9DUFBGTEFHUywKLWRubCBHVEVTVF9DWFhGTEFHUywgR1RFU1Rf
TERGTEFHUywgYW5kIEdURVNUX0xJQlMuIEl0IGFsc28gZGVmaW5lcwotZG5sIEdURVNUX1ZFUlNJ
T04gYXMgdGhlIHZlcnNpb24gb2YgR29vZ2xlIFRlc3QgZm91bmQuIEZpbmFsbHksIGl0IHByb3Zp
ZGVzCi1kbmwgb3B0aW9uYWwgY3VzdG9tIGFjdGlvbiBzbG90cyBpbiB0aGUgZXZlbnQgR1RFU1Qg
aXMgZm91bmQgb3Igbm90LgotQUNfREVGVU4oW0dURVNUX0xJQl9DSEVDS10sCi1bCi1kbmwgUHJv
dmlkZSBhIGZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgR29vZ2xlIFRlc3QgdXNhZ2UuCi1BQ19B
UkdfRU5BQkxFKFtndGVzdF0sCi0gIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZ3Rlc3RdLAot
ICAgICAgICAgICAgICAgICAgW0VuYWJsZSB0ZXN0cyB1c2luZyB0aGUgR29vZ2xlIEMrKyBUZXN0
aW5nIEZyYW1ld29yay4KLSAgICAgICAgICAgICAgICAgIChEZWZhdWx0IGlzIGVuYWJsZWQuKV0p
XSwKLSAgW10sCi0gIFtlbmFibGVfZ3Rlc3Q9XSkKLUFDX0FSR19WQVIoW0dURVNUX0NPTkZJR10s
Ci0gICAgICAgICAgIFtUaGUgZXhhY3QgcGF0aCBvZiBHb29nbGUgVGVzdCdzICdndGVzdC1jb25m
aWcnIHNjcmlwdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfQ1BQRkxBR1NdLAotICAgICAgICAgICBb
Qy1saWtlIHByZXByb2Nlc3NvciBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkKLUFDX0FSR19WQVIo
W0dURVNUX0NYWEZMQUdTXSwKLSAgICAgICAgICAgW0MrKyBjb21waWxlIGZsYWdzIGZvciBHb29n
bGUgVGVzdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfTERGTEFHU10sCi0gICAgICAgICAgIFtMaW5r
ZXIgcGF0aCBhbmQgb3B0aW9uIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQotQUNfQVJHX1ZBUihb
R1RFU1RfTElCU10sCi0gICAgICAgICAgIFtMaWJyYXJ5IGxpbmtpbmcgZmxhZ3MgZm9yIEdvb2ds
ZSBUZXN0Ll0pCi1BQ19BUkdfVkFSKFtHVEVTVF9WRVJTSU9OXSwKLSAgICAgICAgICAgW1RoZSB2
ZXJzaW9uIG9mIEdvb2dsZSBUZXN0IGF2YWlsYWJsZS5dKQotSEFWRV9HVEVTVD0ibm8iCi1BU19J
RihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIgIT0gInhubyJdLAotICBbQUNfTVNHX0NIRUNLSU5H
KFtmb3IgJ2d0ZXN0LWNvbmZpZyddKQotICAgQVNfSUYoW3Rlc3QgIngke2VuYWJsZV9ndGVzdH0i
ICE9ICJ4eWVzIl0sCi0gICAgIFtBU19JRihbdGVzdCAteCAiJHtlbmFibGVfZ3Rlc3R9L3Njcmlw
dHMvZ3Rlc3QtY29uZmlnIl0sCi0gICAgICAgIFtHVEVTVF9DT05GSUc9IiR7ZW5hYmxlX2d0ZXN0
fS9zY3JpcHRzL2d0ZXN0LWNvbmZpZyJdLAotICAgICAgICBbR1RFU1RfQ09ORklHPSIke2VuYWJs
ZV9ndGVzdH0vYmluL2d0ZXN0LWNvbmZpZyJdKQotICAgICAgQVNfSUYoW3Rlc3QgLXggIiR7R1RF
U1RfQ09ORklHfSJdLCBbXSwKLSAgICAgICAgW0FDX01TR19SRVNVTFQoW25vXSkKLSAgICAgICAg
IEFDX01TR19FUlJPUihbZG5sCi1VbmFibGUgdG8gbG9jYXRlIGVpdGhlciBhIGJ1aWx0IG9yIGlu
c3RhbGxlZCBHb29nbGUgVGVzdC4KLVRoZSBzcGVjaWZpYyBsb2NhdGlvbiAnJHtlbmFibGVfZ3Rl
c3R9JyB3YXMgcHJvdmlkZWQgZm9yIGEgYnVpbHQgb3IgaW5zdGFsbGVkCi1Hb29nbGUgVGVzdCwg
YnV0IG5vICdndGVzdC1jb25maWcnIHNjcmlwdCBjb3VsZCBiZSBmb3VuZCBhdCB0aGlzIGxvY2F0
aW9uLl0pCi0gICAgICAgICBdKV0sCi0gICAgIFtBQ19QQVRIX1BST0coW0dURVNUX0NPTkZJR10s
IFtndGVzdC1jb25maWddKV0pCi0gICBBU19JRihbdGVzdCAteCAiJHtHVEVTVF9DT05GSUd9Il0s
Ci0gICAgIFtBQ19NU0dfUkVTVUxUKFske0dURVNUX0NPTkZJR31dKQotICAgICAgbTRfaWZ2YWwo
WyQxXSwKLSAgICAgICAgW19ndGVzdF9taW5fdmVyc2lvbj0iLS1taW4tdmVyc2lvbj0kMSIKLSAg
ICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0IGF0IGxlYXN0IHZlcnNpb24g
Pj0gJDFdKV0sCi0gICAgICAgIFtfZ3Rlc3RfbWluX3ZlcnNpb249Ii0tbWluLXZlcnNpb249MCIK
LSAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0XSldKQotICAgICAgQVNf
SUYoWyR7R1RFU1RfQ09ORklHfSAke19ndGVzdF9taW5fdmVyc2lvbn1dLAotICAgICAgICBbQUNf
TVNHX1JFU1VMVChbeWVzXSkKLSAgICAgICAgIEhBVkVfR1RFU1Q9J3llcyddLAotICAgICAgICBb
QUNfTVNHX1JFU1VMVChbbm9dKV0pXSwKLSAgICAgW0FDX01TR19SRVNVTFQoW25vXSldKQotICAg
QVNfSUYoW3Rlc3QgIngke0hBVkVfR1RFU1R9IiA9ICJ4eWVzIl0sCi0gICAgIFtHVEVTVF9DUFBG
TEFHUz1gJHtHVEVTVF9DT05GSUd9IC0tY3BwZmxhZ3NgCi0gICAgICBHVEVTVF9DWFhGTEFHUz1g
JHtHVEVTVF9DT05GSUd9IC0tY3h4ZmxhZ3NgCi0gICAgICBHVEVTVF9MREZMQUdTPWAke0dURVNU
X0NPTkZJR30gLS1sZGZsYWdzYAotICAgICAgR1RFU1RfTElCUz1gJHtHVEVTVF9DT05GSUd9IC0t
bGlic2AKLSAgICAgIEdURVNUX1ZFUlNJT049YCR7R1RFU1RfQ09ORklHfSAtLXZlcnNpb25gCi0g
ICAgICBBQ19ERUZJTkUoW0hBVkVfR1RFU1RdLFsxXSxbRGVmaW5lZCB3aGVuIEdvb2dsZSBUZXN0
IGlzIGF2YWlsYWJsZS5dKV0sCi0gICAgIFtBU19JRihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIg
PSAieHllcyJdLAotICAgICAgICBbQUNfTVNHX0VSUk9SKFtkbmwKLUdvb2dsZSBUZXN0IHdhcyBl
bmFibGVkLCBidXQgbm8gdmlhYmxlIHZlcnNpb24gY291bGQgYmUgZm91bmQuXSkKLSAgICAgICAg
IF0pXSldKQotQUNfU1VCU1QoW0hBVkVfR1RFU1RdKQotQU1fQ09ORElUSU9OQUwoW0hBVkVfR1RF
U1RdLFt0ZXN0ICJ4JEhBVkVfR1RFU1QiID0gInh5ZXMiXSkKLUFTX0lGKFt0ZXN0ICJ4JEhBVkVf
R1RFU1QiID0gInh5ZXMiXSwKLSAgW200X2lmdmFsKFskMl0sIFskMl0pXSwKLSAgW200X2lmdmFs
KFskM10sIFskM10pXSkKLV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
YWtlL01ha2VmaWxlIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9NYWtlZmlsZQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFjNzQ0OTNiYTU1MjQ2NTk3ZTkwYjg5OGZhZTg0
N2FlMzU4ZWFiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAg
LTEsODIgKzAsMCBAQAotIyBBIHNhbXBsZSBNYWtlZmlsZSBmb3IgYnVpbGRpbmcgR29vZ2xlIFRl
c3QgYW5kIHVzaW5nIGl0IGluIHVzZXIKLSMgdGVzdHMuICBQbGVhc2UgdHdlYWsgaXQgdG8gc3Vp
dCB5b3VyIGVudmlyb25tZW50IGFuZCBwcm9qZWN0LiAgWW91Ci0jIG1heSB3YW50IHRvIG1vdmUg
aXQgdG8geW91ciBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuCi0jCi0jIFNZTk9QU0lTOgotIwot
IyAgIG1ha2UgW2FsbF0gIC0gbWFrZXMgZXZlcnl0aGluZy4KLSMgICBtYWtlIFRBUkdFVCAtIG1h
a2VzIHRoZSBnaXZlbiB0YXJnZXQuCi0jICAgbWFrZSBjbGVhbiAgLSByZW1vdmVzIGFsbCBmaWxl
cyBnZW5lcmF0ZWQgYnkgbWFrZS4KLQotIyBQbGVhc2UgdHdlYWsgdGhlIGZvbGxvd2luZyB2YXJp
YWJsZSBkZWZpbml0aW9ucyBhcyBuZWVkZWQgYnkgeW91cgotIyBwcm9qZWN0LCBleGNlcHQgR1RF
U1RfSEVBREVSUywgd2hpY2ggeW91IGNhbiB1c2UgaW4geW91ciBvd24gdGFyZ2V0cwotIyBidXQg
c2hvdWxkbid0IG1vZGlmeS4KLQotIyBQb2ludHMgdG8gdGhlIHJvb3Qgb2YgR29vZ2xlIFRlc3Qs
IHJlbGF0aXZlIHRvIHdoZXJlIHRoaXMgZmlsZSBpcy4KLSMgUmVtZW1iZXIgdG8gdHdlYWsgdGhp
cyBpZiB5b3UgbW92ZSB0aGlzIGZpbGUuCi1HVEVTVF9ESVIgPSAuLgotCi0jIFdoZXJlIHRvIGZp
bmQgdXNlciBjb2RlLgotVVNFUl9ESVIgPSAuLi9zYW1wbGVzCi0KLSMgRmxhZ3MgcGFzc2VkIHRv
IHRoZSBwcmVwcm9jZXNzb3IuCi0jIFNldCBHb29nbGUgVGVzdCdzIGhlYWRlciBkaXJlY3Rvcnkg
YXMgYSBzeXN0ZW0gZGlyZWN0b3J5LCBzdWNoIHRoYXQKLSMgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qg
Z2VuZXJhdGUgd2FybmluZ3MgaW4gR29vZ2xlIFRlc3QgaGVhZGVycy4KLUNQUEZMQUdTICs9IC1p
c3lzdGVtICQoR1RFU1RfRElSKS9pbmNsdWRlCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBDKysg
Y29tcGlsZXIuCi1DWFhGTEFHUyArPSAtZyAtV2FsbCAtV2V4dHJhIC1wdGhyZWFkCi0KLSMgQWxs
IHRlc3RzIHByb2R1Y2VkIGJ5IHRoaXMgTWFrZWZpbGUuICBSZW1lbWJlciB0byBhZGQgbmV3IHRl
c3RzIHlvdQotIyBjcmVhdGVkIHRvIHRoZSBsaXN0LgotVEVTVFMgPSBzYW1wbGUxX3VuaXR0ZXN0
Ci0KLSMgQWxsIEdvb2dsZSBUZXN0IGhlYWRlcnMuICBVc3VhbGx5IHlvdSBzaG91bGRuJ3QgY2hh
bmdlIHRoaXMKLSMgZGVmaW5pdGlvbi4KLUdURVNUX0hFQURFUlMgPSAkKEdURVNUX0RJUikvaW5j
bHVkZS9ndGVzdC8qLmggXAotICAgICAgICAgICAgICAgICQoR1RFU1RfRElSKS9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsLyouaAotCi0jIEhvdXNlLWtlZXBpbmcgYnVpbGQgdGFyZ2V0cy4KLQotYWxs
IDogJChURVNUUykKLQotY2xlYW4gOgotCXJtIC1mICQoVEVTVFMpIGd0ZXN0LmEgZ3Rlc3RfbWFp
bi5hICoubwotCi0jIEJ1aWxkcyBndGVzdC5hIGFuZCBndGVzdF9tYWluLmEuCi0KLSMgVXN1YWxs
eSB5b3Ugc2hvdWxkbid0IHR3ZWFrIHN1Y2ggaW50ZXJuYWwgdmFyaWFibGVzLCBpbmRpY2F0ZWQg
YnkgYQotIyB0cmFpbGluZyBfLgotR1RFU1RfU1JDU18gPSAkKEdURVNUX0RJUikvc3JjLyouY2Mg
JChHVEVTVF9ESVIpL3NyYy8qLmggJChHVEVTVF9IRUFERVJTKQotCi0jIEZvciBzaW1wbGljaXR5
IGFuZCB0byBhdm9pZCBkZXBlbmRpbmcgb24gR29vZ2xlIFRlc3QncwotIyBpbXBsZW1lbnRhdGlv
biBkZXRhaWxzLCB0aGUgZGVwZW5kZW5jaWVzIHNwZWNpZmllZCBiZWxvdyBhcmUKLSMgY29uc2Vy
dmF0aXZlIGFuZCBub3Qgb3B0aW1pemVkLiAgVGhpcyBpcyBmaW5lIGFzIEdvb2dsZSBUZXN0Ci0j
IGNvbXBpbGVzIGZhc3QgYW5kIGZvciBvcmRpbmFyeSB1c2VycyBpdHMgc291cmNlIHJhcmVseSBj
aGFuZ2VzLgotZ3Rlc3QtYWxsLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZMQUdT
KSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAgICAkKEdURVNUX0RJ
Uikvc3JjL2d0ZXN0LWFsbC5jYwotCi1ndGVzdF9tYWluLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQo
Q1hYKSAkKENQUEZMQUdTKSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAg
ICAgICAkKEdURVNUX0RJUikvc3JjL2d0ZXN0X21haW4uY2MKLQotZ3Rlc3QuYSA6IGd0ZXN0LWFs
bC5vCi0JJChBUikgJChBUkZMQUdTKSAkQCAkXgotCi1ndGVzdF9tYWluLmEgOiBndGVzdC1hbGwu
byBndGVzdF9tYWluLm8KLQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLSMgQnVpbGRzIGEgc2Ft
cGxlIHRlc3QuICBBIHRlc3Qgc2hvdWxkIGxpbmsgd2l0aCBlaXRoZXIgZ3Rlc3QuYSBvcgotIyBn
dGVzdF9tYWluLmEsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGRlZmluZXMgaXRzIG93biBtYWlu
KCkKLSMgZnVuY3Rpb24uCi0KLXNhbXBsZTEubyA6ICQoVVNFUl9ESVIpL3NhbXBsZTEuY2MgJChV
U0VSX0RJUikvc2FtcGxlMS5oICQoR1RFU1RfSEVBREVSUykKLQkkKENYWCkgJChDUFBGTEFHUykg
JChDWFhGTEFHUykgLWMgJChVU0VSX0RJUikvc2FtcGxlMS5jYwotCi1zYW1wbGUxX3VuaXR0ZXN0
Lm8gOiAkKFVTRVJfRElSKS9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgICAgICAgICAgICAgICAg
ICAgICQoVVNFUl9ESVIpL3NhbXBsZTEuaCAkKEdURVNUX0hFQURFUlMpCi0JJChDWFgpICQoQ1BQ
RkxBR1MpICQoQ1hYRkxBR1MpIC1jICQoVVNFUl9ESVIpL3NhbXBsZTFfdW5pdHRlc3QuY2MKLQot
c2FtcGxlMV91bml0dGVzdCA6IHNhbXBsZTEubyBzYW1wbGUxX3VuaXR0ZXN0Lm8gZ3Rlc3RfbWFp
bi5hCi0JJChDWFgpICQoQ1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1scHRocmVhZCAkXiAtbyAkQApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNs
biBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC5zbG4KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNmIzM2I2MjE1YzM3NGFmYzExNmI1MjA4NGIxNmY0
MTQ4ODA0N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbgorKysgL2Rldi9u
dWxsCkBAIC0xLDU1ICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZp
bGUsIEZvcm1hdCBWZXJzaW9uIDExLjAwCi0jIFZpc3VhbCBDKysgRXhwcmVzcyAyMDEwCi1Qcm9q
ZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0LW1k
IiwgImd0ZXN0LW1kLnZjeHByb2oiLCAie0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0Iz
MUJFOH0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBB
MEM5MUJDOTQyfSIpID0gImd0ZXN0X21haW4tbWQiLCAiZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qIiwg
InszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzN9IgotRW5kUHJvamVjdAotUHJv
amVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF9w
cm9kX3Rlc3QtbWQiLCAiZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oiLCAiezI0ODQ4NTUxLUVG
NEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X3VuaXR0ZXN0LW1kIiwg
Imd0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2oiLCAiezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0
RUUwRUQ0ODFBMn0iCi1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9u
Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1Z3xXaW4zMiA9IERl
YnVnfFdpbjMyCi0JCURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNlfFdpbjMyID0gUmVs
ZWFzZXxXaW4zMgotCQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlv
bgotCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNv
bHV0aW9uCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1D
M0I0MjNCMzFCRTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMx
NzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVi
dWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfHg2
NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNC
MzFCRTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMx
NzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBS
ZWxlYXNlfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJl
bGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYt
QjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7
M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMz
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMz
Mi05MTQ3LUY2OEVEOTg2MjAzM30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7
M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9
IERlYnVnfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMz
Mi05MTQ3LUY2OEVEOTg2MjAzM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4z
MgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfHg2NC5B
Y3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5
ODYyMDMzfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVG
NEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8V2lu
MzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRE
NDlCQzNFQ0J9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUxLUVG
NEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQK
LQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXxXaW4zMi5B
Y3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRE
NDlCQzNFQ0J9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4
NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0g
UmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVs
ZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIz
Qy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXs0
RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5E
ZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIz
Qy1GNEVFMEVENDgxQTJ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXs0RDlGREZC
NS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
UmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5S
ZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQx
MzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0
Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8eDY0LkJ1
aWxkLjAgPSBSZWxlYXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFNv
bHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbgotCQlIaWRlU29sdXRpb25Ob2RlID0gRkFM
U0UKLQlFbmRHbG9iYWxTZWN0aW9uCi1FbmRHbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE2YTZmZjEyZjdiNTc5MDE1YWJiMTQxNTgwZTJmMmQ0ZmRhNmY5YzMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDkgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQ
cm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8
SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29u
ZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5E
ZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0g
ICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5j
bHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmln
dXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4z
MiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgot
ICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2
NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+
Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+e0M4
RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH08L1Byb2plY3RHdWlkPgotICAgIDxL
ZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0
IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAv
PgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZp
Z3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFy
YWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52
MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGlj
TGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8
L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNl
dD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3Vy
YXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0
aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3Jv
dXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1
cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFj
dGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEw
MDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVj
dD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3Jv
dXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9y
dEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIk
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRp
dGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdy
b3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxh
dGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBs
YXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVy
dHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0
LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9v
dERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2Nh
bEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAg
TGFiZWw9IlVzZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZp
bGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGly
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRp
b24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0
Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGly
KSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRm
b3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQ
cm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1l
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQo
U29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilc
PC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4K
LSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1l
Pmd0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlv
bkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwv
T3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJ
QURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxS
ZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNp
Y1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVn
RExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xl
dmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4K
LSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxD
bENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0g
ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVC
VUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVu
dGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8
L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+
Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwu
LlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxD
bENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElD
X01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwv
SXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENv
bXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01B
WD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVu
dGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAg
ICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGlu
Y2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVt
R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3Bw
LnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZj
eHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1t
ZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRlZmYy
MzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0LW1kLnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29s
c1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxv
cGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJT
b3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3
Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9u
cz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAg
ICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8
VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwv
VW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5j
O3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVt
R3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4K
LSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
IDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYWNkNWMwY2U2YjkzMjg2YmE1MjcwZjgzMTFmN2Q2NDkyMWUwMmU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4KKysrIC9kZXYvbnVsbApAQCAtMSw1
NSArMCwwIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQg
VmVyc2lvbiAxMS4wMAotIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAotUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdCIsICJndGVzdC52Y3hw
cm9qIiwgIntDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9IgotRW5kUHJvamVj
dAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJn
dGVzdF9tYWluIiwgImd0ZXN0X21haW4udmN4cHJvaiIsICJ7M0FGNTRDOEEtMTBCRi00MzMyLTkx
NDctRjY4RUQ5ODYyMDMyfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTEx
RDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3RfdW5pdHRlc3QiLCAiZ3Rlc3RfdW5pdHRl
c3QudmN4cHJvaiIsICJ7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfSIKLUVu
ZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAiZ3Rlc3RfcHJvZF90ZXN0IiwgImd0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qIiwgInsyNDg0
ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9IgotRW5kUHJvamVjdAotR2xvYmFsCi0J
R2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRp
b24KLQkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMgotCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQK
LQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKLQkJUmVsZWFzZXx4NjQgPSBSZWxlYXNl
fHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0
aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEt
QzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7QzhG
NkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0g
RGVidWd8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uRGVi
dWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEt
QzNCNDIzQjMxQkU3fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzIt
NTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJl
bGVhc2V8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2
LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAot
CQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfHg2NC5CdWls
ZC4wID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAz
Mn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYt
NDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMy
Ci0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRlYnVnfHg2NC5BY3Rp
dmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAz
Mn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05
MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMy
Ci0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LlJlbGVhc2V8V2luMzIu
QnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzMn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhB
LTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVh
c2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1G
NEVFMEVENDgxQTF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRG
QjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVi
dWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfHg2
NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVE
NDgxQTF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRG
QjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBS
ZWxlYXNlfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJl
bGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzkt
ODIzQy1GNEVFMEVENDgxQTF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7
MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNB
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdF
OC05QTlELUVBNEQ0OUJDM0VDQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7
MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9
IERlYnVnfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdF
OC05QTlELUVBNEQ0OUJDM0VDQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4z
MgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfHg2NC5B
Y3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5
QkMzRUNBfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQlFbmRHbG9iYWxTZWN0
aW9uCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24KLQkJ
SGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFCi0JRW5kR2xvYmFsU2VjdGlvbgotRW5kR2xvYmFsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QudmN4cHJv
aiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDZmNWM3YWYyNDUzOGQzOThjMzYyNmM4ZWNjZTkx
NDhjOTZmMDFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCisrKyAvZGV2
L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0i
NC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWls
ZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAg
ICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENv
bmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8
L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1
ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwv
UHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9
IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29u
ZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
IDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFBy
b2plY3RHdWlkPntDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9PC9Qcm9qZWN0
R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVm
YXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
PgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlw
ZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRp
b25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJT
ZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9Q
bGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExh
YmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFy
eTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJh
Y3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAg
PC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4K
LSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+
Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4K
LSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIg
TGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3RE
aXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlz
dHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycp
IiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAg
ICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+
Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSkt
JChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1wXCQo
UHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNv
bHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8
SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIp
JChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0g
ICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxU
YXJnZXROYW1lPmd0ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwv
VGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAg
PFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJnZXROYW1lPgotICA8
L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAg
ICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVu
dGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8
UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAg
IDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRp
b25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0
aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hl
Y2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1l
TGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5n
TGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1h
dD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVt
RGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlBy
b2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZp
bml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRl
ZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJh
cnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1E
YXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2MiPgotICAgICAgPEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0i
RXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
bXN2Yy8yMDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY5ZWRlZmYyMzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08
UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
dC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRl
ciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzcz
N0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAg
ICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0
ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxl
cyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1
RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4
eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rl
c3QtYWxsLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdF9tYWluLW1kLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAv
Z3Rlc3RfbWFpbi1tZC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDc3
Mzg5NWI3MDIzZGU4NDc0MGQ2MmJiYTYzZWM5MDBmNzRjOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMv
MjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBA
QAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERl
ZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2No
ZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3Vw
IExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29u
ZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9q
ZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVi
dWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAg
ICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
PldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9q
ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZv
cm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezNBRjU0QzhBLTEw
QkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM308L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldp
bjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+
TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0
Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwv
Q29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3Rl
clNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgot
ICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rh
cmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9
IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVz
ZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9u
PjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0
aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0
RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAg
IDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChD
b25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVj
dE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0g
ICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENv
bmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFt
ZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbmQ8L1RhcmdldE5hbWU+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1
dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091
dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAg
IDxUYXJnZXROYW1lPmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW5kPC9UYXJnZXRO
YW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJn
ZXROYW1lPmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0
ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9u
PkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRp
b25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1
ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RD
aGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRo
cmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29u
dGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGlt
aXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO19ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNr
czwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFk
ZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dh
cm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFz
ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4z
MjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRo
cmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fy
bmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNl
PC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxM
aWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtf
VkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVh
ZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIg
Lz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2Ug
SW5jbHVkZT0iZ3Rlc3QtbWQudmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57YzhmNmMxNzItNTZm
Mi00ZTc2LWI1ZmEtYzNiNDIzYjMxYmU4fTwvUHJvamVjdD4KLSAgICA8L1Byb2plY3RSZWZlcmVu
Y2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lv
blRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAx
MC9ndGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzI2Yzc3M2NjYjE3NzZhNThkNmY0ZmQ2NWExNmNiNTBmNDIyZDE1NC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qLmZpbHRlcnMKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8v
c2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdy
b3VwPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJ
ZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJ
ZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajti
YXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNs
dWRlPSJIZWFkZXIgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5
QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0
ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0
ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8
L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDhmYjI1ODk3YzhiMWMyZGJiM2NmNmMxM2U5YjQxOTNmYzlhZTA1MGIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE2
MiArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFBy
b2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJ
dGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1
cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMy
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0
PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57M0FG
NTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtl
eXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmln
dXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYx
MDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNM
aWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwv
Q2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJh
dGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRp
b25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAg
PFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3Vy
YXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0
ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAw
PC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91
cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQo
VXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0
aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4K
LSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxh
dGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0
eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2Fs
QXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBM
YWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0Rmls
ZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlv
bilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8
L0ludERpcj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQo
UGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91
dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1l
KVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChP
dXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVz
dF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3Jt
KS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwk
KFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJn
ZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFy
Z2V0TmFtZT5ndGVzdF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1l
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xD
b21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVH
O19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJh
c2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0g
ICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0Pgot
ICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0cHV0RmlsZT4kKE91
dERpcikkKFByb2plY3ROYW1lKWQubGliPC9PdXRwdXRGaWxlPgotICAgIDwvTGliPgotICA8L0l0
ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGls
ZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElC
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAg
ICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hl
Y2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxp
YnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxE
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZv
cm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAgICAgPE91dHB1dEZp
bGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSlkLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4K
LSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAg
ICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJ
QURJQ19NQVg9MTA7TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8
L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+
Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwu
LlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYj4KLSAgICAg
IDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpLmxpYjwvT3V0cHV0RmlsZT4KLSAg
ICA8L0xpYj4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4z
MjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRo
cmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+
Ci0gICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5saWI8L091dHB1dEZp
bGU+Ci0gICAgPC9MaWI+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAg
ICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9q
ZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imd0ZXN0LnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+e2M4
ZjZjMTcyLTU2ZjItNGU3Ni1iNWZhLWMzYjQyM2IzMWJlN308L1Byb2plY3Q+Ci0gICAgPC9Qcm9q
ZWN0UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFy
Z2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDcyNmM3NzNjY2IxNzc2YTU4ZDZmNGZkNjVhMTZjYjUwZjQyMmQx
NTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvai5maWx0ZXJzCisr
KyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDov
L3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1H
cm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVl
SWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVl
SWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7
YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5j
bHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04
OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4
dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmls
dGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVz
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvaiBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvagpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMwZTVkY2U0MTA2MjNjMTViNjhmZWE3MThlZDk0YzQ1
N2YwNzBmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHBy
b2oKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9v
bHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVs
b3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJh
dGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+
Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0
Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8
UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1
cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZv
cm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRl
PSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmln
dXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxz
Ij4KLSAgICA8UHJvamVjdEd1aWQ+ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VD
Qn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9z
b2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29u
ZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1
cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pgot
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENv
bmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxp
Y2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwv
Q2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIg
Lz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4K
LSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNp
b24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9y
bSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcikkKFBy
b2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5j
cmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAg
ICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQo
Q29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcikkKFByb2pl
Y3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5j
cmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1
dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091
dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAg
IDxUYXJnZXROYW1lPmd0ZXN0X3Byb2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdy
b3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+
Z3Rlc3RfcHJvZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9wcm9kX3Rlc3Q8L1RhcmdldE5hbWU+
Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5h
bWU+Z3Rlc3RfcHJvZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJ
dGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWls
ZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxl
RmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29u
dGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0
ZXN0X3Byb2RfdGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVt
PkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1Rh
cmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJ
dGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+
RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5X
SU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hl
Y2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1l
TGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xl
dmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+
UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xD
b21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVl
PC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4k
KE91dERpcilndGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAg
PFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+
Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtO
REVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRl
ZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRp
bWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsu
LlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8
U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+
dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1
ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8
L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0g
IDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nl
c3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUo
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAg
IDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAg
IDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xl
PC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVm
ZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZv
bGRpbmc+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5j
YyI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0
XHByb2R1Y3Rpb24uY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4u
Oy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsu
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0
ZW1Hcm91cD4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHRlc3RccHJvZHVjdGlvbi5o
IiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5j
ZSBJbmNsdWRlPSJndGVzdF9tYWluLW1kLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0
YzhhLTEwYmYtNDMzMi05MTQ3LWY2OGVkOTg2MjAzM308L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0
UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0
c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJF
eHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
c3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvai5maWx0ZXJz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzM2NzMxMGFlZTYyNmY0ZWM5YzFkZmZk
YTczM2E1MGYyYTVjNWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3Qt
bWQudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot77u/PD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lv
bj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNi
dWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBG
aWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYt
MkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtj
O2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmls
dGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJ
ZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJ
ZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9F
eHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfcHJvZF90ZXN0LmNjIj4K
LSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uY2MiPgotICAgICAg
PEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVt
R3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0
XHByb2R1Y3Rpb24uaCI+Ci0gICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgotICAg
IDwvQ2xJbmNsdWRlPgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIw
MTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ0MmUxMzUxMWRmMjhhNTMyMjI0MjA1N2U3NTQxZjk2NTY3MGRkYTIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEs
MTkxICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08
UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAg
PEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENv
bmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+
RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgot
ICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2lu
MzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54
NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnsy
NDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9PC9Qcm9qZWN0R3VpZD4KLSAgICA8
S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIg
Lz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25m
aWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYx
MDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNh
dGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0No
YXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlv
blR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+
TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0
Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZD
VGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJl
bD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i
IC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0
cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0
YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0i
VXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0RmlsZVZlcnNp
b24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoU29s
dXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9P
dXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERp
cj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExp
bmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29s
dXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9P
dXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAg
ICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQo
U29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAg
IDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAg
ICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAg
ICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50
aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxS
dW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2Fybmlu
Z0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwv
Q2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50
cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmls
ZT4kKE91dERpcilndGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAg
ICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5N
YWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlv
bkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8
T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7JShQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPEJh
c2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0g
ICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3Jt
YXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRh
YmFzZUZpbGU+JChPdXREaXIpZ3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmls
ZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwvTGluaz4KLSAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8
Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJ
Q19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVk
PC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAg
ICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGlu
Y2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxH
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgot
ICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZl
cmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xk
aW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNo
aW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdy
b3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09O
U09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0g
ICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxX
YXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlv
bkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0
aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29u
c29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6
ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01E
QVRGb2xkaW5nPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRl
bUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF9wcm9kX3Rl
c3QuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRl
OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5c
dGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0g
IDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rp
b24uaCIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZl
cmVuY2UgSW5jbHVkZT0iZ3Rlc3RfbWFpbi52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1
NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhlZDk4NjIwMzJ9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVj
dFJlZmVyZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0i
RXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
bXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMzNjczMTBhZWU2MjZmNGVjOWMxZGZmZGE3MzNh
NTBmMmE1YzVlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHBy
b2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIg
eG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAw
MyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgot
ICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUy
QTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVm
O29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAg
ICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmll
cj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmll
cj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9u
cz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8
RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxGaWx0ZXI+
U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgot
ICA8SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0
aW9uLmgiPgotICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0
X3VuaXR0ZXN0LW1kLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAv
Z3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTNiMGRjNGUxYTRlMDNhZThkNjNlZmYzNmM2N2JmZTgyMzY1ZjE4OC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
c3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE4
OCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFBy
b2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJ
dGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1
cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMy
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0
PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57NEQ5
RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtl
eXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmln
dXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0
ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAw
PC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
IExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRp
b248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFy
YWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9u
Ij4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBl
PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRm
b3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rh
cmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9
IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVz
ZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9u
PjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0
aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0
RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAg
IDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3Jl
bWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRp
cikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4K
LSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxM
aW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3Jl
bWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfdW5pdHRl
c3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgot
ICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChD
b25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3VuaXR0ZXN0PC9UYXJnZXROYW1l
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFt
ZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFt
ZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAg
ICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJV
RztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAg
ICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNr
cz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwu
LjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJv
Z3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRh
YmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxU
YXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAg
IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztf
Q09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVu
dGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8
L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0g
ICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1By
b2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4K
LSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9u
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRl
ZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJh
cnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0
YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgot
ICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAg
ICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAg
PFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0g
IDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxD
bENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElD
X01BWD0xMDtOREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXBy
b2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRE
TEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgot
ICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAg
PEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJl
ZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZv
bGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURl
ZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XC4uXHRlc3RcZ3Rlc3RfdW5pdHRlc3QuY2MiPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+TWluU3Bh
Y2U8L09wdGltaXphdGlvbj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5NaW5TcGFjZTwvT3B0aW1pemF0
aW9uPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hl
Y2tzPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkRlZmF1bHQ8L0Jhc2ljUnVudGltZUNoZWNr
cz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+UHJvZ3JhbURhdGFi
YXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9J
dGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0i
Z3Rlc3RfbWFpbi1tZC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQz
MzItOTE0Ny1mNjhlZDk4NjIwMzN9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFy
Z2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA0N2RhZTUxM2U4NjAxNTNhNWNlYzJmNDViNDhjZGJjNzVmOWI2
Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ouZmls
dGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9
Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0g
IDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAg
PFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08
L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtp
ZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8Rmls
dGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5
OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAg
ICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAg
ICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAgICAgIDxGaWx0ZXI+
U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgot
PC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2oKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNmFiZGU3ZGExN2UyOWVkMjQ3NmY3MGM2OTQx
NWFlOTY4ZjIxZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHBy
b2oKKysrIC9kZXYvbnVsbApAQCAtMSwxODAgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9v
bHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVs
b3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJh
dGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+
Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0
Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8
UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1
cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZv
cm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRl
PSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmln
dXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxz
Ij4KLSAgICA8UHJvamVjdEd1aWQ+ezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFB
MX08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9z
b2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29u
ZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1
cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pgot
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENv
bmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxp
Y2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwv
Q2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIg
Lz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4K
LSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNp
b24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9y
bSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1w
XCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xp
bmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvTGlua0luY3JlbWVudGFs
PgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9y
bSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKXRl
bXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxz
ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPmZhbHNlPC9MaW5rSW5j
cmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0
RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJh
dGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUp
XDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8
T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmln
dXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1p
emF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19N
QVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVi
dWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNS
dW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Zzwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAg
ICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRp
b25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNs
dWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAg
ICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBkYjwvUHJv
Z3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgot
ICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xp
bms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAg
ICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9u
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwv
QmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRE
ZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+
Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwu
LlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAg
ICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlv
bj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBk
YjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lz
dGVtPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmlu
aXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1l
TGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1E
YXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+
Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAg
ICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAg
ICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4K
LSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAg
PENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFE
SUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRl
ZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0g
ICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3Jt
YXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxp
bmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8
R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4K
LSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVm
ZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9s
ZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Li5cdGVzdFxndGVzdF91bml0dGVzdC5jYyI+Ci0gICAgICA8T3B0aW1pemF0aW9uIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5NaW5TcGFj
ZTwvT3B0aW1pemF0aW9uPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPk1pblNwYWNlPC9PcHRpbWl6YXRp
b24+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5EZWZhdWx0PC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tz
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5Qcm9ncmFtRGF0YWJh
c2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8
L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0
ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJn
dGVzdF9tYWluLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMzMi05
MTQ3LWY2OGVkOTg2MjAzMn08L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8
L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRz
Ij4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Rf
dW5pdHRlc3QudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDQ3ZGFlNTEzZTg2MDE1M2E1Y2VjMmY0NWI0OGNkYmM3NWY5YjZjZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRp
Zmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRp
Zmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2Fz
bTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0i
SGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRi
MDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lv
bnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgot
ICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XC4uXHRlc3RcZ3Rlc3RfdW5pdHRlc3QuY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8
L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Nh
bXBsZXMvcHJpbWVfdGFibGVzLmgKaW5kZXggNTIzYzUwYjlhZmIxYTA5MTkxNjgwOTRkNzFmZGYz
NzZiNjRhZjZiMi4uM2ExMDM1MmJhYWU1YmE3MWFjYjYwN2U2NzFkOWJmMTVkMTZlNzlhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3ByaW1lX3RhYmxlcy5oCkBAIC0z
Myw4ICszMyw4IEBACiAvLyBwcmltZSBhbmQgZGV0ZXJtaW5lcyBhIG5leHQgcHJpbWUgbnVtYmVy
LiBUaGlzIGludGVyZmFjZSBpcyB1c2VkCiAvLyBpbiBHb29nbGUgVGVzdCBzYW1wbGVzIGRlbW9u
c3RyYXRpbmcgdXNlIG9mIHBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKLSNpZm5kZWYgR1RFU1RfU0FN
UExFU19QUklNRV9UQUJMRVNfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19IXworI2RlZmluZSBH
T09HTEVURVNUX1NBTVBMRVNfUFJJTUVfVEFCTEVTX0hfCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+
CiAKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUHJpbWVUYWJsZSB7CiAgcHVibGljOgogICB2aXJ0
dWFsIH5QcmltZVRhYmxlKCkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmlt
ZSBudW1iZXIuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBuIGlzIGEgcHJpbWUg
bnVtYmVyLgogICB2aXJ0dWFsIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3QgPSAwOwogCiAgIC8v
IFJldHVybnMgdGhlIHNtYWxsZXN0IHByaW1lIG51bWJlciBncmVhdGVyIHRoYW4gcDsgb3IgcmV0
dXJucyAtMQpAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBQcmltZVRhYmxlIHsKIC8vIEltcGxlbWVu
dGF0aW9uICMxIGNhbGN1bGF0ZXMgdGhlIHByaW1lcyBvbi10aGUtZmx5LgogY2xhc3MgT25UaGVG
bHlQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogIHB1YmxpYzoKLSAgdmlydHVhbCBi
b29sIElzUHJpbWUoaW50IG4pIGNvbnN0IHsKKyAgYm9vbCBJc1ByaW1lKGludCBuKSBjb25zdCBv
dmVycmlkZSB7CiAgICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChpbnQg
aSA9IDI7IGkqaSA8PSBuOyBpKyspIHsKQEAgLTY1LDEyICs2NSwxMiBAQCBjbGFzcyBPblRoZUZs
eVByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0K
IAotICB2aXJ0dWFsIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsKLSAgICBmb3IgKGlu
dCBuID0gcCArIDE7IG4gPiAwOyBuKyspIHsKKyAgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29u
c3Qgb3ZlcnJpZGUgeworICAgIGlmIChwIDwgMCkgcmV0dXJuIC0xOworCisgICAgZm9yIChpbnQg
biA9IHAgKyAxOzsgbisrKSB7CiAgICAgICBpZiAoSXNQcmltZShuKSkgcmV0dXJuIG47CiAgICAg
fQotCi0gICAgcmV0dXJuIC0xOwogICB9CiB9OwogCkBAIC04MywxMyArODMsMTMgQEAgY2xhc3Mg
UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgICA6IGlz
X3ByaW1lX3NpemVfKG1heCArIDEpLCBpc19wcmltZV8obmV3IGJvb2xbbWF4ICsgMV0pIHsKICAg
ICBDYWxjdWxhdGVQcmltZXNVcFRvKG1heCk7CiAgIH0KLSAgdmlydHVhbCB+UHJlQ2FsY3VsYXRl
ZFByaW1lVGFibGUoKSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQorICB+UHJlQ2FsY3VsYXRlZFBy
aW1lVGFibGUoKSBvdmVycmlkZSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQogCi0gIHZpcnR1YWwg
Ym9vbCBJc1ByaW1lKGludCBuKSBjb25zdCB7CisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qg
b3ZlcnJpZGUgewogICAgIHJldHVybiAwIDw9IG4gJiYgbiA8IGlzX3ByaW1lX3NpemVfICYmIGlz
X3ByaW1lX1tuXTsKICAgfQogCi0gIHZpcnR1YWwgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29u
c3QgeworICBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCBvdmVycmlkZSB7CiAgICAgZm9y
IChpbnQgbiA9IHAgKyAxOyBuIDwgaXNfcHJpbWVfc2l6ZV87IG4rKykgewogICAgICAgaWYgKGlz
X3ByaW1lX1tuXSkgcmV0dXJuIG47CiAgICAgfQpAQCAtMTIzLDQgKzEyMyw0IEBAIGNsYXNzIFBy
ZUNhbGN1bGF0ZWRQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogICB2b2lkIG9wZXJh
dG9yPShjb25zdCBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZSYgcmhzKTsKIH07CiAKLSNlbmRpZiAg
Ly8gR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9T
QU1QTEVTX1BSSU1FX1RBQkxFU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2FtcGxlcy9zYW1wbGUxLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGUxLmNjCmluZGV4IDEzY2VjMWQwZmJmYWJkYWFmMWM2YzQxYjFhODZiYzFkMDkwODk4M2Qu
LjFkNDI3NTk3OWZmNjExMDFiZjFhZTljMzIwNWY0MWY0MDgzMGMzMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5jYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuY2MKQEAgLTQxLDcgKzQxLDcgQEAgaW50IEZh
Y3RvcmlhbChpbnQgbikgewogICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBSZXR1cm5zIHRydWUg
aWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
biBpcyBhIHByaW1lIG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbikgewogICAvLyBUcml2aWFs
IGNhc2UgMTogc21hbGwgbnVtYmVycwogICBpZiAobiA8PSAxKSByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCmluZGV4IDJjM2U5ZjA1ZjFhMTBh
NDQyNWY3N2IyODcxNmU4MDU5NjgyMTk2MWYuLmJhMzkyY2ZiZDI2NjhiNmFiZWIwOWIxOTQ3NWM1
OWEwN2UwNzg5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlMS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5o
CkBAIC0yOSwxMyArMjksMTMgQEAKIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5n
IHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCiAKLSNpZm5kZWYgR1RFU1RfU0FN
UExFU19TQU1QTEUxX0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2lmbmRl
ZiBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2RlZmluZSBHT09HTEVURVNUX1NBTVBM
RVNfU0FNUExFMV9IXwogCiAvLyBSZXR1cm5zIG4hICh0aGUgZmFjdG9yaWFsIG9mIG4pLiAgRm9y
IG5lZ2F0aXZlIG4sIG4hIGlzIGRlZmluZWQgdG8gYmUgMS4KIGludCBGYWN0b3JpYWwoaW50IG4p
OwogCi0vLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisvLyBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4KIGJvb2wgSXNQcmltZShp
bnQgbik7CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCisjZW5kaWYgIC8v
IEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUxX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwppbmRleCA3Y2U5NTUwZjg4M2Fh
MzQyZDI1YjA0ODU5M2ZhYTk2Y2FiZDhlMWZhLi4zNmNkYWMyMjc5YWVlYTcwMmUwZDM1MjBjNzcy
NThlOTI3MzcyNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVz
L3NhbXBsZTEwX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMTBfdW5pdHRlc3QuY2MKQEAgLTc0LDEyICs3NCwxMiBAQCBpbnQgV2F0ZXI6OmFs
bG9jYXRlZF8gPSAwOwogY2xhc3MgTGVha0NoZWNrZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRM
aXN0ZW5lciB7CiAgcHJpdmF0ZToKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgot
ICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qIHRlc3RfaW5mbyAq
LykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8p
IG92ZXJyaWRlIHsKICAgICBpbml0aWFsbHlfYWxsb2NhdGVkXyA9IFdhdGVyOjphbGxvY2F0ZWQo
KTsKICAgfQogCiAgIC8vIENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4KLSAgdmlydHVhbCB2b2lk
IE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSB7CisgIHZvaWQgT25U
ZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsKICAgICBp
bnQgZGlmZmVyZW5jZSA9IFdhdGVyOjphbGxvY2F0ZWQoKSAtIGluaXRpYWxseV9hbGxvY2F0ZWRf
OwogCiAgICAgLy8gWW91IGNhbiBnZW5lcmF0ZSBhIGZhaWx1cmUgaW4gYW55IGV2ZW50IGhhbmRs
ZXIgZXhjZXB0CkBAIC0xMDAsNyArMTAwLDcgQEAgVEVTVChMaXN0ZW5lcnNUZXN0LCBEb2VzTm90
TGVhaykgewogLy8gc3BlY2lmaWVkLgogVEVTVChMaXN0ZW5lcnNUZXN0LCBMZWFrc1dhdGVyKSB7
CiAgIFdhdGVyKiB3YXRlciA9IG5ldyBXYXRlcjsKLSAgRVhQRUNUX1RSVUUod2F0ZXIgIT0gTlVM
TCk7CisgIEVYUEVDVF9UUlVFKHdhdGVyICE9IG51bGxwdHIpOwogfQogfSAgLy8gbmFtZXNwYWNl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYwppbmRleCBmM2I3
MjJmY2FjZmVlZTdkODkwYjJkMWYxOWJjOTc0MTVlY2E0OWY2Li5kOGU4NzIzOTY1YTFkYzAxZWE3
ZjY1NjYxOWI3MWZiNTA2OTg0OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxl
cy9zYW1wbGUyLmNjCkBAIC0zNSw3ICszNSw3IEBACiAKIC8vIENsb25lcyBhIDAtdGVybWluYXRl
ZCBDIHN0cmluZywgYWxsb2NhdGluZyBtZW1vcnkgdXNpbmcgbmV3LgogY29uc3QgY2hhciogTXlT
dHJpbmc6OkNsb25lQ1N0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSB7Ci0gIGlmIChhX2Nf
c3RyaW5nID09IE5VTEwpIHJldHVybiBOVUxMOworICBpZiAoYV9jX3N0cmluZyA9PSBudWxscHRy
KSByZXR1cm4gbnVsbHB0cjsKIAogICBjb25zdCBzaXplX3QgbGVuID0gc3RybGVuKGFfY19zdHJp
bmcpOwogICBjaGFyKiBjb25zdCBjbG9uZSA9IG5ldyBjaGFyWyBsZW4gKyAxIF07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCmluZGV4IDU4ZjM2MGY0NWM3NjU4YzAx
OTdlM2ZmYzY1ZWM4YjM3NWZiMzM2YjAuLjBmOTg2ODk1OWQyMTU3NjBmNDU2N2ZlNjE2NWUwNzc3
Mzk5NDc0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2Ft
cGxlMi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCkBA
IC0yOSw4ICsyOSw4IEBACiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJhdGluZyB1c2lu
ZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgogCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNf
U0FNUExFMl9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NB
TVBMRTJfSF8KIAogI2luY2x1ZGUgPHN0cmluZy5oPgogCkBAIC01MCwxNSArNTAsMTUgQEAgY2xh
c3MgTXlTdHJpbmcgewogICAvLyBDJ3RvcnMKIAogICAvLyBUaGUgZGVmYXVsdCBjJ3RvciBjb25z
dHJ1Y3RzIGEgTlVMTCBzdHJpbmcuCi0gIE15U3RyaW5nKCkgOiBjX3N0cmluZ18oTlVMTCkge30K
KyAgTXlTdHJpbmcoKSA6IGNfc3RyaW5nXyhudWxscHRyKSB7fQogCiAgIC8vIENvbnN0cnVjdHMg
YSBNeVN0cmluZyBieSBjbG9uaW5nIGEgMC10ZXJtaW5hdGVkIEMgc3RyaW5nLgotICBleHBsaWNp
dCBNeVN0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSA6IGNfc3RyaW5nXyhOVUxMKSB7Cisg
IGV4cGxpY2l0IE15U3RyaW5nKGNvbnN0IGNoYXIqIGFfY19zdHJpbmcpIDogY19zdHJpbmdfKG51
bGxwdHIpIHsKICAgICBTZXQoYV9jX3N0cmluZyk7CiAgIH0KIAogICAvLyBDb3B5IGMndG9yCi0g
IE15U3RyaW5nKGNvbnN0IE15U3RyaW5nJiBzdHJpbmcpIDogY19zdHJpbmdfKE5VTEwpIHsKKyAg
TXlTdHJpbmcoY29uc3QgTXlTdHJpbmcmIHN0cmluZykgOiBjX3N0cmluZ18obnVsbHB0cikgewog
ICAgIFNldChzdHJpbmcuY19zdHJpbmdfKTsKICAgfQogCkBAIC03MSwxMyArNzEsMTAgQEAgY2xh
c3MgTXlTdHJpbmcgewogICAvLyBHZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBN
eVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgY29uc3QgY2hhciogY19zdHJpbmcoKSBjb25z
dCB7IHJldHVybiBjX3N0cmluZ187IH0KIAotICBzaXplX3QgTGVuZ3RoKCkgY29uc3QgewotICAg
IHJldHVybiBjX3N0cmluZ18gPT0gTlVMTCA/IDAgOiBzdHJsZW4oY19zdHJpbmdfKTsKLSAgfQor
ICBzaXplX3QgTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gY19zdHJpbmdfID09IG51bGxwdHIgPyAw
IDogc3RybGVuKGNfc3RyaW5nXyk7IH0KIAogICAvLyBTZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBz
dHJpbmcgdGhpcyBNeVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgdm9pZCBTZXQoY29uc3Qg
Y2hhciogY19zdHJpbmcpOwogfTsKIAotCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExF
Ml9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMl9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjCmluZGV4
IDA4NDg4MjYxOTJjYzY2ZmNiNzkwNmVmMmMwYWFlZjY2YWY4NDNmOTIuLjQxZTMxYzE3NjdkZWU1
NWNjNWQ1YzBiZWEyZGYyNjdjNWQ4MTE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMl91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QuY2MKQEAgLTY2LDcgKzY2LDcgQEAgVEVT
VChNeVN0cmluZywgRGVmYXVsdENvbnN0cnVjdG9yKSB7CiAgIC8vIHdlIGhhdmUgdG8gbGl2ZSB3
aXRoIHRoaXMgZmFjdC4KICAgLy8KICAgLy8gPC9UZWNobmljYWxEZXRhaWxzPgotICBFWFBFQ1Rf
U1RSRVEoTlVMTCwgcy5jX3N0cmluZygpKTsKKyAgRVhQRUNUX1NUUkVRKG51bGxwdHIsIHMuY19z
dHJpbmcoKSk7CiAKICAgRVhQRUNUX0VRKDB1LCBzLkxlbmd0aCgpKTsKIH0KQEAgLTEwMSw3ICsx
MDEsNyBAQCBURVNUKE15U3RyaW5nLCBTZXQpIHsKICAgRVhQRUNUX0VRKDAsIHN0cmNtcChzLmNf
c3RyaW5nKCksIGtIZWxsb1N0cmluZykpOwogCiAgIC8vIENhbiB3ZSBzZXQgdGhlIE15U3RyaW5n
IHRvIE5VTEw/Ci0gIHMuU2V0KE5VTEwpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcy5jX3N0cmlu
ZygpKTsKKyAgcy5TZXQobnVsbHB0cik7CisgIEVYUEVDVF9TVFJFUShudWxscHRyLCBzLmNfc3Ry
aW5nKCkpOwogfQogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTMtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTMtaW5sLmgKaW5kZXggMWEyOWNlOTI5NmE2NGRmZTk3YTlmN2ZkYzZkYTg2
Mzg3ZGMwYjc1Yi4uNjU5ZTBmMGJiNWRmNjI5MDViYjM1ZjlhYjAzOGYyYzM4ZDNjMGU2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzLWlubC5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMy1pbmwuaApAQCAtMjks
OCArMjksOCBAQAogCiAvLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29v
Z2xlIEMrKyB0ZXN0aW5nIGZyYW1ld29yay4KIAotI2lmbmRlZiBHVEVTVF9TQU1QTEVTX1NBTVBM
RTNfSU5MX0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFM19JTkxfSF8KKyNpZm5kZWYg
R09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU0FN
UExFU19TQU1QTEUzX0lOTF9IXwogCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAKQEAgLTU4LDcgKzU4
LDggQEAgY2xhc3MgUXVldWVOb2RlIHsKICBwcml2YXRlOgogICAvLyBDcmVhdGVzIGEgbm9kZSB3
aXRoIGEgZ2l2ZW4gZWxlbWVudCB2YWx1ZS4gIFRoZSBuZXh0IHBvaW50ZXIgaXMKICAgLy8gc2V0
IHRvIE5VTEwuCi0gIGV4cGxpY2l0IFF1ZXVlTm9kZShjb25zdCBFJiBhbl9lbGVtZW50KSA6IGVs
ZW1lbnRfKGFuX2VsZW1lbnQpLCBuZXh0XyhOVUxMKSB7fQorICBleHBsaWNpdCBRdWV1ZU5vZGUo
Y29uc3QgRSYgYW5fZWxlbWVudCkKKyAgICAgIDogZWxlbWVudF8oYW5fZWxlbWVudCksIG5leHRf
KG51bGxwdHIpIHt9CiAKICAgLy8gV2UgZGlzYWJsZSB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IG9w
ZXJhdG9yIGFuZCBjb3B5IGMndG9yLgogICBjb25zdCBRdWV1ZU5vZGUmIG9wZXJhdG9yID0gKGNv
bnN0IFF1ZXVlTm9kZSYpOwpAQCAtNzIsNyArNzMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRT4g
IC8vIEUgaXMgdGhlIGVsZW1lbnQgdHlwZS4KIGNsYXNzIFF1ZXVlIHsKICBwdWJsaWM6CiAgIC8v
IENyZWF0ZXMgYW4gZW1wdHkgcXVldWUuCi0gIFF1ZXVlKCkgOiBoZWFkXyhOVUxMKSwgbGFzdF8o
TlVMTCksIHNpemVfKDApIHt9CisgIFF1ZXVlKCkgOiBoZWFkXyhudWxscHRyKSwgbGFzdF8obnVs
bHB0ciksIHNpemVfKDApIHt9CiAKICAgLy8gRCd0b3IuICBDbGVhcnMgdGhlIHF1ZXVlLgogICB+
UXVldWUoKSB7IENsZWFyKCk7IH0KQEAgLTg2LDEyICs4NywxMiBAQCBjbGFzcyBRdWV1ZSB7CiAg
ICAgICBmb3IgKDsgOykgewogICAgICAgICBkZWxldGUgbm9kZTsKICAgICAgICAgbm9kZSA9IG5l
eHQ7Ci0gICAgICAgIGlmIChub2RlID09IE5VTEwpIGJyZWFrOworICAgICAgICBpZiAobm9kZSA9
PSBudWxscHRyKSBicmVhazsKICAgICAgICAgbmV4dCA9IG5vZGUtPm5leHQoKTsKICAgICAgIH0K
IAogICAgICAgLy8gMi4gUmVzZXRzIHRoZSBtZW1iZXIgdmFyaWFibGVzLgotICAgICAgaGVhZF8g
PSBsYXN0XyA9IE5VTEw7CisgICAgICBoZWFkXyA9IGxhc3RfID0gbnVsbHB0cjsKICAgICAgIHNp
emVfID0gMDsKICAgICB9CiAgIH0KQEAgLTEyOCwxNCArMTI5LDE0IEBAIGNsYXNzIFF1ZXVlIHsK
ICAgLy8gdGhlIHF1ZXVlIGlzIGVtcHR5LgogICBFKiBEZXF1ZXVlKCkgewogICAgIGlmIChzaXpl
XyA9PSAwKSB7Ci0gICAgICByZXR1cm4gTlVMTDsKKyAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAogICAgIGNvbnN0IFF1ZXVlTm9kZTxFPiogY29uc3Qgb2xkX2hlYWQgPSBoZWFkXzsKICAg
ICBoZWFkXyA9IGhlYWRfLT5uZXh0XzsKICAgICBzaXplXy0tOwogICAgIGlmIChzaXplXyA9PSAw
KSB7Ci0gICAgICBsYXN0XyA9IE5VTEw7CisgICAgICBsYXN0XyA9IG51bGxwdHI7CiAgICAgfQog
CiAgICAgRSogZWxlbWVudCA9IG5ldyBFKG9sZF9oZWFkLT5lbGVtZW50KCkpOwpAQCAtMTUwLDcg
KzE1MSw4IEBAIGNsYXNzIFF1ZXVlIHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CiAgIFF1ZXVl
KiBNYXAoRiBmdW5jdGlvbikgY29uc3QgewogICAgIFF1ZXVlKiBuZXdfcXVldWUgPSBuZXcgUXVl
dWUoKTsKLSAgICBmb3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9IGhlYWRfOyBub2RlICE9
IE5VTEw7IG5vZGUgPSBub2RlLT5uZXh0XykgeworICAgIGZvciAoY29uc3QgUXVldWVOb2RlPEU+
KiBub2RlID0gaGVhZF87IG5vZGUgIT0gbnVsbHB0cjsKKyAgICAgICAgIG5vZGUgPSBub2RlLT5u
ZXh0XykgewogICAgICAgbmV3X3F1ZXVlLT5FbnF1ZXVlKGZ1bmN0aW9uKG5vZGUtPmVsZW1lbnQo
KSkpOwogICAgIH0KIApAQCAtMTY3LDQgKzE2OSw0IEBAIGNsYXNzIFF1ZXVlIHsKICAgY29uc3Qg
UXVldWUmIG9wZXJhdG9yID0gKGNvbnN0IFF1ZXVlJik7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNU
X1NBTVBMRVNfU0FNUExFM19JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1NB
TVBMRTNfSU5MX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVz
L3NhbXBsZTNfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3Nh
bXBsZTNfdW5pdHRlc3QuY2MKaW5kZXggZTA5M2MyNTg4NTczZjk2MjcwYTVlZDQxMjQ1YWM3ZTg5
ZjQ4NTExOC4uYjE5NDE2ZDUzYzk1ZjA4NGVmZTUxYmY4ZWYyM2NjNjkzZjNjNWQ0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlM191bml0dGVzdC5j
YwpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICAgLy8gdmlydHVhbCB2b2lkIFNldFVwKCkgd2lsbCBiZSBjYWxsZWQgYmVmb3Jl
IGVhY2ggdGVzdCBpcyBydW4uICBZb3UKICAgLy8gc2hvdWxkIGRlZmluZSBpdCBpZiB5b3UgbmVl
ZCB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJsZXMuCiAgIC8vIE90aGVyd2lzZSwgdGhpcyBjYW4g
YmUgc2tpcHBlZC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3Zl
cnJpZGUgewogICAgIHExXy5FbnF1ZXVlKDEpOwogICAgIHEyXy5FbnF1ZXVlKDIpOwogICAgIHEy
Xy5FbnF1ZXVlKDMpOwpAQCAtOTksOCArOTksOCBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICBBU1NFUlRfRVEocS0+U2l6ZSgpLCBuZXdfcS0+U2l6
ZSgpKTsKIAogICAgIC8vIFZlcmlmaWVzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgZWxl
bWVudHMgb2YgdGhlIHR3byBxdWV1ZXMuCi0gICAgZm9yICggY29uc3QgUXVldWVOb2RlPGludD4g
KiBuMSA9IHEtPkhlYWQoKSwgKiBuMiA9IG5ld19xLT5IZWFkKCk7Ci0gICAgICAgICAgbjEgIT0g
TlVMTDsgbjEgPSBuMS0+bmV4dCgpLCBuMiA9IG4yLT5uZXh0KCkgKSB7CisgICAgZm9yIChjb25z
dCBRdWV1ZU5vZGU8aW50PipuMSA9IHEtPkhlYWQoKSwgKm4yID0gbmV3X3EtPkhlYWQoKTsKKyAg
ICAgICAgIG4xICE9IG51bGxwdHI7IG4xID0gbjEtPm5leHQoKSwgbjIgPSBuMi0+bmV4dCgpKSB7
CiAgICAgICBFWFBFQ1RfRVEoMiAqIG4xLT5lbGVtZW50KCksIG4yLT5lbGVtZW50KCkpOwogICAg
IH0KIApAQCAtMTI1LDE2ICsxMjUsMTYgQEAgVEVTVF9GKFF1ZXVlVGVzdFNtcGwzLCBEZWZhdWx0
Q29uc3RydWN0b3IpIHsKIC8vIFRlc3RzIERlcXVldWUoKS4KIFRFU1RfRihRdWV1ZVRlc3RTbXBs
MywgRGVxdWV1ZSkgewogICBpbnQgKiBuID0gcTBfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUo
biA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobiA9PSBudWxscHRyKTsKIAogICBuID0gcTFfLkRl
cXVldWUoKTsKLSAgQVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUobiAhPSBu
dWxscHRyKTsKICAgRVhQRUNUX0VRKDEsICpuKTsKICAgRVhQRUNUX0VRKDB1LCBxMV8uU2l6ZSgp
KTsKICAgZGVsZXRlIG47CiAKICAgbiA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9UUlVFKG4g
IT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKG4gIT0gbnVsbHB0cik7CiAgIEVYUEVDVF9FUSgyLCAq
bik7CiAgIEVYUEVDVF9FUSgxdSwgcTJfLlNpemUoKSk7CiAgIGRlbGV0ZSBuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaAppbmRleCBlMjU2ZjQwNjRmZTkxYTdmMDFh
OTQ1NTBkMzJjM2JiMTFiMGE0ZmZmLi4wYzRlZDkyZTczOGJhNjFlZDZiNWYyOGZkM2IwY2I0Y2Ey
YzI2NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaApAQCAt
MjgsOCArMjgsOCBAQAogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1v
bnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0jaWZuZGVmIEdU
RVNUX1NBTVBMRVNfU0FNUExFNF9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8K
KyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9TQU1QTEVTX1NBTVBMRTRfSF8KIAogLy8gQSBzaW1wbGUgbW9ub3RvbmljIGNvdW50ZXIuCiBj
bGFzcyBDb3VudGVyIHsKQEAgLTUwLDQgKzUwLDQgQEAgY2xhc3MgQ291bnRlciB7CiAgIHZvaWQg
UHJpbnQoKSBjb25zdDsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEU0X0hf
CisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEU0X0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MKaW5kZXggZDhh
ODc4OGM2ZDBmZGEyMzg2NDZmZWEyOTBlMDk3Y2M3NjI3Nzg1NS4uMGEyMWRkMjE1NzcwN2ZiMzJj
NDU5MjQ4YjBjNTM0MTYwOWVjMDYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYwpAQCAtNjMsMTUgKzYzLDEzIEBAIGNsYXNz
IFF1aWNrVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIC8vIFJl
bWVtYmVyIHRoYXQgU2V0VXAoKSBpcyBydW4gaW1tZWRpYXRlbHkgYmVmb3JlIGEgdGVzdCBzdGFy
dHMuCiAgIC8vIFRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHJlY29yZCB0aGUgc3RhcnQgdGltZS4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHN0YXJ0X3RpbWVfID0gdGltZShOVUxMKTsK
LSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBzdGFydF90aW1lXyA9IHRpbWUobnVsbHB0
cik7IH0KIAogICAvLyBUZWFyRG93bigpIGlzIGludm9rZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYSB0
ZXN0IGZpbmlzaGVzLiAgSGVyZSB3ZQogICAvLyBjaGVjayBpZiB0aGUgdGVzdCB3YXMgdG9vIHNs
b3cuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJy
aWRlIHsKICAgICAvLyBHZXRzIHRoZSB0aW1lIHdoZW4gdGhlIHRlc3QgZmluaXNoZXMKLSAgICBj
b25zdCB0aW1lX3QgZW5kX3RpbWUgPSB0aW1lKE5VTEwpOworICAgIGNvbnN0IHRpbWVfdCBlbmRf
dGltZSA9IHRpbWUobnVsbHB0cik7CiAKICAgICAvLyBBc3NlcnRzIHRoYXQgdGhlIHRlc3QgdG9v
ayBubyBtb3JlIHRoYW4gfjUgc2Vjb25kcy4gIERpZCB5b3UKICAgICAvLyBrbm93IHRoYXQgeW91
IGNhbiB1c2UgYXNzZXJ0aW9ucyBpbiBTZXRVcCgpIGFuZCBUZWFyRG93bigpIGFzCkBAIC0xNDIs
NyArMTQwLDcgQEAgVEVTVF9GKEludGVnZXJGdW5jdGlvblRlc3QsIElzUHJpbWUpIHsKIC8vIHN0
dWZmIGluc2lkZSB0aGUgYm9keSBvZiB0aGUgdGVzdCBmaXh0dXJlLCBhcyB1c3VhbC4KIGNsYXNz
IFF1ZXVlVGVzdCA6IHB1YmxpYyBRdWlja1Rlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIEZpcnN0LCB3
ZSBuZWVkIHRvIHNldCB1cCB0aGUgc3VwZXIgZml4dHVyZSAoUXVpY2tUZXN0KS4KICAgICBRdWlj
a1Rlc3Q6OlNldFVwKCk7CiAKQEAgLTE3NiwxNiArMTc0LDE2IEBAIFRFU1RfRihRdWV1ZVRlc3Qs
IERlZmF1bHRDb25zdHJ1Y3RvcikgewogLy8gVGVzdHMgRGVxdWV1ZSgpLgogVEVTVF9GKFF1ZXVl
VGVzdCwgRGVxdWV1ZSkgewogICBpbnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJV
RShuID09IE5VTEwpOworICBFWFBFQ1RfVFJVRShuID09IG51bGxwdHIpOwogCiAgIG4gPSBxMV8u
RGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuICE9IE5VTEwpOworICBFWFBFQ1RfVFJVRShuICE9
IG51bGxwdHIpOwogICBFWFBFQ1RfRVEoMSwgKm4pOwogICBFWFBFQ1RfRVEoMHUsIHExXy5TaXpl
KCkpOwogICBkZWxldGUgbjsKIAogICBuID0gcTJfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUo
biAhPSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobiAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDIs
ICpuKTsKICAgRVhQRUNUX0VRKDF1LCBxMl8uU2l6ZSgpKTsKICAgZGVsZXRlIG47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKaW5k
ZXggZGRmMmYxYzEzYmJlMDM0ODEzNDQ5MzZiMGE3MmRiYjJhMGIyODQyNC4uZGEzMTdlZWQ1YTBk
MjU4NjA1Yzg5ZTBkODhmYzQzYzE3YzFlYjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwpAQCAtNjEsNyArNjEsNyBAQCBj
bGFzcyBQcmltZVRhYmxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLy8gaW1wbGVt
ZW50ZWQgYnkgVC4KICAgUHJpbWVUYWJsZVRlc3QoKSA6IHRhYmxlXyhDcmVhdGVQcmltZVRhYmxl
PFQ+KCkpIHt9CiAKLSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3QoKSB7IGRlbGV0ZSB0YWJsZV87
IH0KKyAgflByaW1lVGFibGVUZXN0KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9CiAKICAg
Ly8gTm90ZSB0aGF0IHdlIHRlc3QgYW4gaW1wbGVtZW50YXRpb24gdmlhIHRoZSBiYXNlIGludGVy
ZmFjZQogICAvLyBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gY2xhc3MuICBU
aGlzIGlzIGltcG9ydGFudApAQCAtNzMsOCArNzMsNiBAQCBjbGFzcyBQcmltZVRhYmxlVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgUHJpbWVUYWJsZSogY29uc3QgdGFibGVfOwogfTsK
IAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAv
LyBHb29nbGUgVGVzdCBvZmZlcnMgdHdvIHdheXMgZm9yIHJldXNpbmcgdGVzdHMgZm9yIGRpZmZl
cmVudCB0eXBlcy4KQEAgLTg0LDcgKzgyLDcgQEAgdXNpbmcgdGVzdGluZzo6VHlwZXM7CiAKIC8v
IFRvIHdyaXRlIGEgdHlwZWQgdGVzdCBjYXNlLCBmaXJzdCB1c2UKIC8vCi0vLyAgIFRZUEVEX1RF
U1RfQ0FTRShUZXN0Q2FzZU5hbWUsIFR5cGVMaXN0KTsKKy8vICAgVFlQRURfVEVTVF9TVUlURShU
ZXN0Q2FzZU5hbWUsIFR5cGVMaXN0KTsKIC8vCiAvLyB0byBkZWNsYXJlIGl0IGFuZCBzcGVjaWZ5
IHRoZSB0eXBlIHBhcmFtZXRlcnMuICBBcyB3aXRoIFRFU1RfRiwKIC8vIFRlc3RDYXNlTmFtZSBt
dXN0IG1hdGNoIHRoZSB0ZXN0IGZpeHR1cmUgbmFtZS4KQEAgLTkyLDcgKzkwLDcgQEAgdXNpbmcg
dGVzdGluZzo6VHlwZXM7CiAvLyBUaGUgbGlzdCBvZiB0eXBlcyB3ZSB3YW50IHRvIHRlc3QuCiB0
eXBlZGVmIFR5cGVzPE9uVGhlRmx5UHJpbWVUYWJsZSwgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU+
IEltcGxlbWVudGF0aW9uczsKIAotVFlQRURfVEVTVF9DQVNFKFByaW1lVGFibGVUZXN0LCBJbXBs
ZW1lbnRhdGlvbnMpOworVFlQRURfVEVTVF9TVUlURShQcmltZVRhYmxlVGVzdCwgSW1wbGVtZW50
YXRpb25zKTsKIAogLy8gVGhlbiB1c2UgVFlQRURfVEVTVChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1l
KSB0byBkZWZpbmUgYSB0eXBlZCB0ZXN0LAogLy8gc2ltaWxhciB0byBURVNUX0YuCkBAIC0xMzEs
MTMgKzEyOSw5IEBAIFRZUEVEX1RFU1QoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkg
ewogfQogCiAvLyBUaGF0J3MgaXQhICBHb29nbGUgVGVzdCB3aWxsIHJlcGVhdCBlYWNoIFRZUEVE
X1RFU1QgZm9yIGVhY2ggdHlwZQotLy8gaW4gdGhlIHR5cGUgbGlzdCBzcGVjaWZpZWQgaW4gVFlQ
RURfVEVTVF9DQVNFLiAgU2l0IGJhY2sgYW5kIGJlCisvLyBpbiB0aGUgdHlwZSBsaXN0IHNwZWNp
ZmllZCBpbiBUWVBFRF9URVNUX1NVSVRFLiAgU2l0IGJhY2sgYW5kIGJlCiAvLyBoYXBweSB0aGF0
IHlvdSBkb24ndCBoYXZlIHRvIGRlZmluZSB0aGVtIG11bHRpcGxlIHRpbWVzLgogCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0K
IHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAvLyBTb21ldGltZXMsIGhvd2V2ZXIsIHlvdSBkb24n
dCB5ZXQga25vdyBhbGwgdGhlIHR5cGVzIHRoYXQgeW91IHdhbnQKQEAgLTE2Myw3ICsxNTcsNyBA
QCBjbGFzcyBQcmltZVRhYmxlVGVzdDIgOiBwdWJsaWMgUHJpbWVUYWJsZVRlc3Q8VD4gewogLy8g
VGhlbiwgZGVjbGFyZSB0aGUgdGVzdCBjYXNlLiAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9m
IHRoZSB0ZXN0CiAvLyBmaXh0dXJlLCBhbmQgYWxzbyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNl
IChhcyB1c3VhbCkuICBUaGUgX1AKIC8vIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9y
ICJwYXR0ZXJuIi4KLVRZUEVEX1RFU1RfQ0FTRV9QKFByaW1lVGFibGVUZXN0Mik7CitUWVBFRF9U
RVNUX1NVSVRFX1AoUHJpbWVUYWJsZVRlc3QyKTsKIAogLy8gTmV4dCwgdXNlIFRZUEVEX1RFU1Rf
UChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB0byBkZWZpbmUgYSB0ZXN0LAogLy8gc2ltaWxhciB0
byB3aGF0IHlvdSBkbyB3aXRoIFRFU1RfRi4KQEAgLTE5Niw3ICsxOTAsNyBAQCBUWVBFRF9URVNU
X1AoUHJpbWVUYWJsZVRlc3QyLCBDYW5HZXROZXh0UHJpbWUpIHsKIAogLy8gVHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3RzIGludm9sdmUgb25lIGV4dHJhIHN0ZXA6IHlvdSBoYXZlIHRvCiAvLyBlbnVt
ZXJhdGUgdGhlIHRlc3RzIHlvdSBkZWZpbmVkOgotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1Ao
CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoCiAgICAgUHJpbWVUYWJsZVRlc3QyLCAgLy8g
VGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSB0ZXN0IGNhc2UgbmFtZS4KICAgICAvLyBUaGUgcmVz
dCBvZiB0aGUgYXJndW1lbnRzIGFyZSB0aGUgdGVzdCBuYW1lcy4KICAgICBSZXR1cm5zRmFsc2VG
b3JOb25QcmltZXMsIFJldHVybnNUcnVlRm9yUHJpbWVzLCBDYW5HZXROZXh0UHJpbWUpOwpAQCAt
MjE2LDkgKzIxMCw4IEBAIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAogLy8gZGVmaW5lZCBh
dCB0aGUgdGltZSB3ZSB3cml0ZSB0aGUgVFlQRURfVEVTVF9QKClzLgogdHlwZWRlZiBUeXBlczxP
blRoZUZseVByaW1lVGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPgogICAgIFByaW1lVGFi
bGVJbXBsZW1lbnRhdGlvbnM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChPblRoZUZs
eUFuZFByZUNhbGN1bGF0ZWQsICAgIC8vIEluc3RhbmNlIG5hbWUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFByaW1lVGFibGVUZXN0MiwgICAgICAgICAgICAgLy8gVGVzdCBjYXNlIG5h
bWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlv
bnMpOyAgLy8gVHlwZSBsaXN0CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoT25UaGVG
bHlBbmRQcmVDYWxjdWxhdGVkLCAgICAvLyBJbnN0YW5jZSBuYW1lCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUHJpbWVUYWJsZVRlc3QyLCAgICAgICAgICAgICAvLyBUZXN0IGNhc2Ug
bmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRh
dGlvbnMpOyAgLy8gVHlwZSBsaXN0CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UAogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MKaW5kZXggYzFhZThiZGVkYzlhZmM5YTExZDBkOTIwMjFl
Zjc2NzdkMzk4YTljOS4uZTBlZmMyOWU0YTJhOTc3ZTFhNTBhNDViYjM3NTI0M2M5Njg1NDdkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU3X3VuaXR0
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0
dGVzdC5jYwpAQCAtNjUsMTEgKzY1LDExIEBAIFByaW1lVGFibGUqIENyZWF0ZVByZUNhbGN1bGF0
ZWRQcmltZVRhYmxlKCkgewogLy8gY3JlYXRlIGFuZCBzdG9yZSBhbiBpbnN0YW5jZSBvZiBQcmlt
ZVRhYmxlLgogY2xhc3MgUHJpbWVUYWJsZVRlc3RTbXBsNyA6IHB1YmxpYyBUZXN0V2l0aFBhcmFt
PENyZWF0ZVByaW1lVGFibGVGdW5jKj4gewogIHB1YmxpYzoKLSAgdmlydHVhbCB+UHJpbWVUYWJs
ZVRlc3RTbXBsNygpIHsgZGVsZXRlIHRhYmxlXzsgfQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7
IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
CisgIH5QcmltZVRhYmxlVGVzdFNtcGw3KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9Cisg
IHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQorICB2
b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSB0YWJsZV87Ci0gICAgdGFibGVf
ID0gTlVMTDsKKyAgICB0YWJsZV8gPSBudWxscHRyOwogICB9CiAKICBwcm90ZWN0ZWQ6CkBAIC0x
MTAsOCArMTEwLDggQEAgVEVTVF9QKFByaW1lVGFibGVUZXN0U21wbDcsIENhbkdldE5leHRQcmlt
ZSkgewogLy8KIC8vIEhlcmUsIHdlIGluc3RhbnRpYXRlIG91ciB0ZXN0cyB3aXRoIGEgbGlzdCBv
ZiB0d28gUHJpbWVUYWJsZSBvYmplY3QKIC8vIGZhY3RvcnkgZnVuY3Rpb25zOgotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCBQcmltZVRhYmxlVGVzdFNt
cGw3LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCZDcmVhdGVPblRoZUZseVByaW1l
VGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNyZWF0ZVByZUNhbGN1bGF0
ZWRQcmltZVRhYmxlPDEwMDA+KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoT25UaGVGbHlB
bmRQcmVDYWxjdWxhdGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcygmQ3JlYXRlT25UaGVGbHlQcmltZVRhYmxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmQ3JlYXRlUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU8MTAwMD4pKTsK
IAogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZThfdW5pdHRlc3QuY2MKaW5kZXggY2U3NWNmMDMwODcwYzM3NmRmZWM2MDMxZGIy
NDcxMTA4NzAzODNmNi4uMTA0ODhiMGVhNDUwOWE2NTkxZjA2YjA1YWM1YWUxNDQzM2I2NTJlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU4X3VuaXR0
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOF91bml0
dGVzdC5jYwpAQCAtMzcsNyArMzcsNiBAQAogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIG5h
bWVzcGFjZSB7Ci0jaWYgR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gU3VwcG9zZSB3ZSB3YW50IHRv
IGludHJvZHVjZSBhIG5ldywgaW1wcm92ZWQgaW1wbGVtZW50YXRpb24gb2YgUHJpbWVUYWJsZQog
Ly8gd2hpY2ggY29tYmluZXMgc3BlZWQgb2YgUHJlY2FsY1ByaW1lVGFibGUgYW5kIHZlcnNhdGls
aXR5IG9mCkBAIC01MCwyNCArNDksMjUgQEAgY2xhc3MgSHlicmlkUHJpbWVUYWJsZSA6IHB1Ymxp
YyBQcmltZVRhYmxlIHsKICBwdWJsaWM6CiAgIEh5YnJpZFByaW1lVGFibGUoYm9vbCBmb3JjZV9v
bl90aGVfZmx5LCBpbnQgbWF4X3ByZWNhbGN1bGF0ZWQpCiAgICAgICA6IG9uX3RoZV9mbHlfaW1w
bF8obmV3IE9uVGhlRmx5UHJpbWVUYWJsZSksCi0gICAgICAgIHByZWNhbGNfaW1wbF8oZm9yY2Vf
b25fdGhlX2ZseSA/IE5VTEwgOgotICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJlQ2Fs
Y3VsYXRlZFByaW1lVGFibGUobWF4X3ByZWNhbGN1bGF0ZWQpKSwKKyAgICAgICAgcHJlY2FsY19p
bXBsXyhmb3JjZV9vbl90aGVfZmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbHB0
cgorICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBQcmVDYWxjdWxhdGVkUHJpbWVUYWJs
ZShtYXhfcHJlY2FsY3VsYXRlZCkpLAogICAgICAgICBtYXhfcHJlY2FsY3VsYXRlZF8obWF4X3By
ZWNhbGN1bGF0ZWQpIHt9Ci0gIHZpcnR1YWwgfkh5YnJpZFByaW1lVGFibGUoKSB7CisgIH5IeWJy
aWRQcmltZVRhYmxlKCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSBvbl90aGVfZmx5X2ltcGxfOwog
ICAgIGRlbGV0ZSBwcmVjYWxjX2ltcGxfOwogICB9CiAKLSAgdmlydHVhbCBib29sIElzUHJpbWUo
aW50IG4pIGNvbnN0IHsKLSAgICBpZiAocHJlY2FsY19pbXBsXyAhPSBOVUxMICYmIG4gPCBtYXhf
cHJlY2FsY3VsYXRlZF8pCisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUgewor
ICAgIGlmIChwcmVjYWxjX2ltcGxfICE9IG51bGxwdHIgJiYgbiA8IG1heF9wcmVjYWxjdWxhdGVk
XykKICAgICAgIHJldHVybiBwcmVjYWxjX2ltcGxfLT5Jc1ByaW1lKG4pOwogICAgIGVsc2UKICAg
ICAgIHJldHVybiBvbl90aGVfZmx5X2ltcGxfLT5Jc1ByaW1lKG4pOwogICB9CiAKLSAgdmlydHVh
bCBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCB7CisgIGludCBHZXROZXh0UHJpbWUoaW50
IHApIGNvbnN0IG92ZXJyaWRlIHsKICAgICBpbnQgbmV4dF9wcmltZSA9IC0xOwotICAgIGlmIChw
cmVjYWxjX2ltcGxfICE9IE5VTEwgJiYgcCA8IG1heF9wcmVjYWxjdWxhdGVkXykKKyAgICBpZiAo
cHJlY2FsY19pbXBsXyAhPSBudWxscHRyICYmIHAgPCBtYXhfcHJlY2FsY3VsYXRlZF8pCiAgICAg
ICBuZXh0X3ByaW1lID0gcHJlY2FsY19pbXBsXy0+R2V0TmV4dFByaW1lKHApOwogCiAgICAgcmV0
dXJuIG5leHRfcHJpbWUgIT0gLTEgPyBuZXh0X3ByaW1lIDogb25fdGhlX2ZseV9pbXBsXy0+R2V0
TmV4dFByaW1lKHApOwpAQCAtODksMjQgKzg5LDE3IEBAIHVzaW5nIDo6dGVzdGluZzo6Q29tYmlu
ZTsKIC8vIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlIGRpc2FibGVkLiBXZSBkbyB0aGlzIGJ5IGRl
ZmluaW5nIGZpeHR1cmUgd2hpY2ggd2lsbAogLy8gYWNjZXB0IGRpZmZlcmVudCBjb21iaW5hdGlv
bnMgb2YgcGFyYW1ldGVycyBmb3IgaW5zdGFudGlhdGluZyBhCiAvLyBIeWJyaWRQcmltZVRhYmxl
IGluc3RhbmNlLgotY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTwg
Ojp0ZXN0aW5nOjp0dXBsZTxib29sLCBpbnQ+ID4geworY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBw
dWJsaWMgVGVzdFdpdGhQYXJhbTwgOjpzdGQ6OnR1cGxlPGJvb2wsIGludD4gPiB7CiAgcHJvdGVj
dGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8gVGhpcyBjYW4gYmUgd3JpdHRl
biBhcwotICAgIC8vCi0gICAgLy8gYm9vbCBmb3JjZV9vbl90aGVfZmx5OwotICAgIC8vIGludCBt
YXhfcHJlY2FsY3VsYXRlZDsKLSAgICAvLyB0aWUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNh
bGN1bGF0ZWQpID0gR2V0UGFyYW0oKTsKLSAgICAvLwotICAgIC8vIG9uY2UgdGhlIEdvb2dsZSBD
KysgU3R5bGUgR3VpZGUgYWxsb3dzIHVzZSBvZiA6OnN0ZDo6dHIxOjp0aWUuCi0gICAgLy8KLSAg
ICBib29sIGZvcmNlX29uX3RoZV9mbHkgPSA6OnRlc3Rpbmc6OmdldDwwPihHZXRQYXJhbSgpKTsK
LSAgICBpbnQgbWF4X3ByZWNhbGN1bGF0ZWQgPSA6OnRlc3Rpbmc6OmdldDwxPihHZXRQYXJhbSgp
KTsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBib29sIGZvcmNlX29uX3RoZV9mbHk7
CisgICAgaW50IG1heF9wcmVjYWxjdWxhdGVkOworICAgIHN0ZDo6dGllKGZvcmNlX29uX3RoZV9m
bHksIG1heF9wcmVjYWxjdWxhdGVkKSA9IEdldFBhcmFtKCk7CiAgICAgdGFibGVfID0gbmV3IEh5
YnJpZFByaW1lVGFibGUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1bGF0ZWQpOwogICB9
Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
IHsKICAgICBkZWxldGUgdGFibGVfOwotICAgIHRhYmxlXyA9IE5VTEw7CisgICAgdGFibGVfID0g
bnVsbHB0cjsKICAgfQogICBIeWJyaWRQcmltZVRhYmxlKiB0YWJsZV87CiB9OwpAQCAtMTU1LDE5
ICsxNDgsNyBAQCBURVNUX1AoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkgewogLy8g
d2lsbCBwdXQgc29tZSBvZiB0aGUgdGVzdGVkIG51bWJlcnMgYmV5b25kIHRoZSBjYXBhYmlsaXR5
IG9mIHRoZQogLy8gUHJlY2FsY1ByaW1lVGFibGUgaW5zdGFuY2UgYW5kIHNvbWUgaW5zaWRlIGl0
ICgxMCkuIENvbWJpbmUgd2lsbCBwcm9kdWNlIGFsbAogLy8gcG9zc2libGUgY29tYmluYXRpb25z
LgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoTWVhbmluZ2Z1bFRlc3RQYXJhbWV0ZXJzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgUHJpbWVUYWJsZVRlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBDb21iaW5lKEJvb2woKSwgVmFsdWVzKDEsIDEwKSkpOworSU5TVEFOVElBVEVfVEVTVF9T
VUlURV9QKE1lYW5pbmdmdWxUZXN0UGFyYW1ldGVycywgUHJpbWVUYWJsZVRlc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgQ29tYmluZShCb29sKCksIFZhbHVlcygxLCAxMCkpKTsKIAotI2Vs
c2UKLQotLy8gR29vZ2xlIFRlc3QgbWF5IG5vdCBzdXBwb3J0IENvbWJpbmUoKSB3aXRoIHNvbWUg
Y29tcGlsZXJzLiBJZiB3ZQotLy8gdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGNvbXBp
bGUgb3V0IGFsbCBjb2RlIHJlZmVycmluZyB0bwotLy8gdGhlIGd0ZXN0X21haW4gbGlicmFyeSwg
TVNWQyBsaW5rZXIgd2lsbCBub3QgbGluayB0aGF0IGxpYnJhcnkgYXQKLS8vIGFsbCBhbmQgY29u
c2VxdWVudGx5IGNvbXBsYWluIGFib3V0IG1pc3NpbmcgZW50cnkgcG9pbnQgZGVmaW5lZCBpbgot
Ly8gdGhhdCBsaWJyYXJ5IChmYXRhbCBlcnJvciBMTksxNTYxOiBlbnRyeSBwb2ludCBtdXN0IGJl
Ci0vLyBkZWZpbmVkKS4gVGhpcyBkdW1teSB0ZXN0IGtlZXBzIGd0ZXN0X21haW4gbGlua2VkIGlu
LgotVEVTVChEdW1teVRlc3QsIENvbWJpbmVJc05vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7
fQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCiB9ICAvLyBuYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwpp
bmRleCA1M2Y5YWY1YmExZGZjMjY5NTY2MDc4ZjIzNmY2OTU1OTlkYzUyYWRhLi5lNTAyZDA4ZDcz
ZTdkNzBiZWRlODZjYmQ3MTE3NTRjZDA5ZGU4NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCkBAIC00OSwxNiArNDksMTYg
QEAgbmFtZXNwYWNlIHsKIGNsYXNzIFRlcnNlUHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVu
dExpc3RlbmVyIHsKICBwcml2YXRlOgogICAvLyBDYWxsZWQgYmVmb3JlIGFueSB0ZXN0IGFjdGl2
aXR5IHN0YXJ0cy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0
VGVzdCYgLyogdW5pdF90ZXN0ICovKSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25z
dCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7fQogCiAgIC8vIENhbGxlZCBh
ZnRlciBhbGwgdGVzdCBhY3Rpdml0aWVzIGhhdmUgZW5kZWQuCi0gIHZpcnR1YWwgdm9pZCBPblRl
c3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAgdm9pZCBPblRlc3RQ
cm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlIHsKICAgICBmcHJp
bnRmKHN0ZG91dCwgIlRFU1QgJXNcbiIsIHVuaXRfdGVzdC5QYXNzZWQoKSA/ICJQQVNTRUQiIDog
IkZBSUxFRCIpOwogICAgIGZmbHVzaChzdGRvdXQpOwogICB9CiAKICAgLy8gQ2FsbGVkIGJlZm9y
ZSBhIHRlc3Qgc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdElu
Zm8mIHRlc3RfaW5mbykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIqKiog
VGVzdCAlcy4lcyBzdGFydGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNl
X25hbWUoKSwKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgVGVyc2VQcmludGVyIDogcHVibGljIEVt
cHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVk
IGFzc2VydGlvbiBvciBhIFNVQ0NFRUQoKSBpbnZvY2F0aW9uLgotICB2aXJ0dWFsIHZvaWQgT25U
ZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgewor
ICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9y
ZXN1bHQpIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIlcyBp
biAlczolZFxuJXNcbiIsCiAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZhaWxlZCgpID8g
IioqKiBGYWlsdXJlIiA6ICJTdWNjZXNzIiwKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgVGVyc2VQ
cmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2Fs
bGVkIGFmdGVyIGEgdGVzdCBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRl
c3RJbmZvJiB0ZXN0X2luZm8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRl
c3RfaW5mbykgb3ZlcnJpZGUgewogICAgIGZwcmludGYoc3Rkb3V0LAogICAgICAgICAgICAgIioq
KiBUZXN0ICVzLiVzIGVuZGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNl
X25hbWUoKSwKQEAgLTEzNSwxMCArMTM1LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq
YXJndikgewogICAvLyBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgdGhlIFVuaXRUZXN0IHJl
ZmxlY3Rpb24gQVBJIHRvIGluc3BlY3QgdGVzdAogICAvLyByZXN1bHRzLiBIZXJlIHdlIGRpc2Nv
dW50IGZhaWx1cmVzIGZyb20gdGhlIHRlc3RzIHdlIGV4cGVjdGVkIHRvIGZhaWwuCiAgIGludCB1
bmV4cGVjdGVkbHlfZmFpbGVkX3Rlc3RzID0gMDsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0
X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGNvbnN0IFRlc3RDYXNl
JiB0ZXN0X2Nhc2UgPSAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpOwotICAgIGZvciAoaW50IGog
PSAwOyBqIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7Ci0gICAgICBjb25z
dCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3RfY2FzZS5HZXRUZXN0SW5mbyhqKTsKKyAgZm9y
IChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kp
IHsKKyAgICBjb25zdCB0ZXN0aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUgPSAqdW5pdF90ZXN0
LkdldFRlc3RTdWl0ZShpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUudG90
YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8g
PSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsKICAgICAgIC8vIENvdW50cyBmYWlsZWQgdGVz
dHMgdGhhdCB3ZXJlIG5vdCBtZWFudCB0byBmYWlsICh0aG9zZSB3aXRob3V0CiAgICAgICAvLyAn
RmFpbHMnIGluIHRoZSBuYW1lKS4KICAgICAgIGlmICh0ZXN0X2luZm8ucmVzdWx0KCktPkZhaWxl
ZCgpICYmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9n
dGVzdF9wcmVkX2ltcGwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9n
dGVzdF9wcmVkX2ltcGwucHkKaW5kZXggYjQzZWZkZjQxZTVjMDI3NDBmNzJiMzU1MzJiZTVjZjA0
OTc5NDgzNS4uZTA5YTZlMDE3NzhkOTc0ZWFkOTc2YTVlZGY3OWZiNWQ0MzRhMzYzMiAxMDA3NTUK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9nZW5fZ3Rlc3RfcHJlZF9pbXBs
LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRf
aW1wbC5weQpAQCAtNzgsNyArNzgsNyBAQCBkZWYgSGVhZGVyUHJlYW1ibGUobik6CiAgICAgfQog
CiAgIHJldHVybiAoCi0iIiIvLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KKyAgIiIiLy8g
Q29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8K
IC8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMTExLDYgKzExMSw4IEBAIGRlZiBIZWFkZXJQcmVhbWJsZShuKToK
IC8vICclKGNvbW1hbmQpcycuICBETyBOT1QgRURJVCBCWSBIQU5EIQogLy8KIC8vIEltcGxlbWVu
dHMgYSBmYW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3Jvcy4KKy8vIEdP
T0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKKwogCiAjaWZuZGVmIEdURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCiAjZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfUFJFRF9JTVBMX0hfCkBAIC0yNDYsOCArMjQ4LDEwIEBAIEFzc2VydGlvblJlc3VsdCBBc3Nl
cnRQcmVkJShuKXNIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0IiIiICUgREVGUwogCiAgIGlt
cGwgKz0gJyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIicKIAotICBpbXBsICs9IEl0
ZXIobiwgIiIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxcbiIgPDwgZSVzIDw8
ICIgZXZhbHVhdGVzIHRvICIgPDwgdiVzIiIiKQorICBpbXBsICs9IEl0ZXIoCisgICAgICBuLCAi
IiIKKyAgICAgIDw8ICJcXG4iIDw8IGUlcyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGlu
Zzo6UHJpbnRUb1N0cmluZyh2JXMpIiIiCisgICkKIAogICBpbXBsICs9ICIiIjsKIH0KQEAgLTMz
Myw3ICszMzcsNyBAQCBkZWYgVW5pdFRlc3RQcmVhbWJsZSgpOgogICAgIH0KIAogICByZXR1cm4g
KAotIiIiLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCisgICIiIi8vIENvcHlyaWdodCAy
MDA2LCBHb29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTQyNyw3ICs0MzEsNyBAQCBkZWYgVGVzdHNGb3JBcml0eShuKToKICAgICB9CiAKICAg
dGVzdHMgPSAoCi0iIiIvLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0b3JzIGZvciB0ZXN0aW5nICUo
YXJpdHkpcyBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KKyAgIiIiLy8gU2FtcGxlIGZ1bmN0aW9ucy9m
dW5jdG9ycyBmb3IgdGVzdGluZyAlKGFyaXR5KXMgcHJlZGljYXRlIGFzc2VydGlvbnMuCiAKIC8v
IEEgJShhcml0eSlzIHByZWRpY2F0ZSBmdW5jdGlvbi4KIHRlbXBsYXRlIDwlKHR5cGVzKXM+CkBA
IC00MzUsOSArNDM5LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24lKG4pcyglKHR2cylzKSB7CiAgIHJl
dHVybiAlKHZfc3VtKXMgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMg
YXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBz
b21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9u
LgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNv
bXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBs
YXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24lKG4p
c0ludCglKGludF92cylzKSB7CiAgIHJldHVybiAlKHZfc3VtKXMgPiAwOwogfQpAQCAtNTEwLDcg
KzUxMyw3IEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvciUobilzIHsKIAogY2xhc3MgUHJlZGlj
YXRlJShuKXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmly
dHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVj
dGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOyIiIiAlIERFRlMK
IApAQCAtNTIwLDcgKzUyMyw3IEBAIGNsYXNzIFByZWRpY2F0ZSUobilzVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0IHsKICIiIgogCiAgIHRlc3RzICs9ICIiIgotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMg
dGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAg
IC8vIGV4YWN0bHkgb25jZS4iIiIKIApAQCAtNTQwLDEwICs1NDMsMTAgQEAgY2xhc3MgUHJlZGlj
YXRlJShuKXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8v
IHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2gu
CisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQg
dG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAot
ICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8g
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4K
ICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogIiIiICUgREVGUwogCkBAIC01NzIsMTIgKzU3NSwx
MiBAQCB0eXBlZGVmIFByZWRpY2F0ZSUobilzVGVzdCBBU1NFUlRfUFJFRCUobilzVGVzdDsKICAg
ICAiIiJSZXR1cm5zIHRoZSB0ZXN0IGZvciBhIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm8uCiAK
ICAgICBBcmdzOgotICAgICAgdXNlX2Zvcm1hdDogICAgIHRydWUgaWZmIHRoZSBhc3NlcnRpb24g
aXMgYSAqX1BSRURfRk9STUFUKi4KLSAgICAgIHVzZV9hc3NlcnQ6ICAgICB0cnVlIGlmZiB0aGUg
YXNzZXJ0aW9uIGlzIGEgQVNTRVJUXyouCi0gICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBpZmYg
dGhlIGFzc2VydGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgotICAgICAgdXNlX2Z1bmN0b3I6ICAg
IHRydWUgaWZmIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgYXNzZXJ0aW9uIGlzCisgICAgICB1
c2VfZm9ybWF0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGEgKl9Q
UkVEX0ZPUk1BVCouCisgICAgICB1c2VfYXNzZXJ0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgYXNzZXJ0aW9uIGlzIGEgQVNTRVJUXyouCisgICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgICAgICB1
c2VfZnVuY3RvcjogICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgb2Yg
dGhlIGFzc2VydGlvbiBpcwogICAgICAgICAgICAgICAgICAgICAgIGEgZnVuY3RvciAoYXMgb3Bw
b3NlZCB0byBhIGZ1bmN0aW9uKQotICAgICAgdXNlX3VzZXJfdHlwZTogIHRydWUgaWZmIHRoZSBw
cmVkaWNhdGUgZnVuY3Rvci9mdW5jdGlvbiB0YWtlcworICAgICAgdXNlX3VzZXJfdHlwZTogIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSBmdW5jdG9yL2Z1bmN0aW9uIHRha2VzCiAg
ICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQocykgb2YgYSB1c2VyLWRlZmluZWQgdHlwZS4K
IAogICAgIEV4YW1wbGU6CkBAIC01ODgsNyArNTkxLDcgQEAgdHlwZWRlZiBQcmVkaWNhdGUlKG4p
c1Rlc3QgQVNTRVJUX1BSRUQlKG4pc1Rlc3Q7CiAKICAgICBpZiB1c2VfYXNzZXJ0OgogICAgICAg
YXNzcnQgPSAnQVNTRVJUJyAgIyAnYXNzZXJ0JyBpcyByZXNlcnZlZCwgc28gd2UgY2Fubm90IHVz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGlkZW50aWZpZXIgaGVyZS4KKyAgICAg
ICMgdGhhdCBpZGVudGlmaWVyIGhlcmUuCiAgICAgZWxzZToKICAgICAgIGFzc3J0ID0gJ0VYUEVD
VCcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCA1ZWZiNjUzYzIwN2QxZjFjMmFlY2M0ZDY5MGJmNzMyZTNjMWQ3MWFi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1NSAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDgsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJw
dW1wIHYwLjIuMCAtIFByZXR0eSBVc2VmdWwgZm9yIE1ldGEgUHJvZ3JhbW1pbmcuCi0KLUEgdG9v
bCBmb3IgcHJlcHJvY2Vzc29yIG1ldGEgcHJvZ3JhbW1pbmcuICBVc2VmdWwgZm9yIGdlbmVyYXRp
bmcKLXJlcGV0aXRpdmUgYm9pbGVycGxhdGUgY29kZS4gIEVzcGVjaWFsbHkgdXNlZnVsIGZvciB3
cml0aW5nIEMrKwotY2xhc3NlcywgZnVuY3Rpb25zLCBtYWNyb3MsIGFuZCB0ZW1wbGF0ZXMgdGhh
dCBuZWVkIHRvIHdvcmsgd2l0aAotdmFyaW91cyBudW1iZXIgb2YgYXJndW1lbnRzLgotCi1VU0FH
RToKLSAgICAgICBwdW1wLnB5IFNPVVJDRV9GSUxFCi0KLUVYQU1QTEVTOgotICAgICAgIHB1bXAu
cHkgZm9vLmNjLnB1bXAKLSAgICAgICAgIENvbnZlcnRzIGZvby5jYy5wdW1wIHRvIGZvby5jYy4K
LQotR1JBTU1BUjoKLSAgICAgICBDT0RFIDo6PSBBVE9NSUNfQ09ERSoKLSAgICAgICBBVE9NSUNf
Q09ERSA6Oj0gJHZhciBJRCA9IEVYUFJFU1NJT04KLSAgICAgICAgICAgfCAkdmFyIElEID0gW1sg
Q09ERSBdXQotICAgICAgICAgICB8ICRyYW5nZSBJRCBFWFBSRVNTSU9OLi5FWFBSRVNTSU9OCi0g
ICAgICAgICAgIHwgJGZvciBJRCBTRVBBUkFUT1IgW1sgQ09ERSBdXQotICAgICAgICAgICB8ICQo
JCkKLSAgICAgICAgICAgfCAkSUQKLSAgICAgICAgICAgfCAkKEVYUFJFU1NJT04pCi0gICAgICAg
ICAgIHwgJGlmIEVYUFJFU1NJT04gW1sgQ09ERSBdXSBFTFNFX0JSQU5DSAotICAgICAgICAgICB8
IFtbIENPREUgXV0KLSAgICAgICAgICAgfCBSQVdfQ09ERQotICAgICAgIFNFUEFSQVRPUiA6Oj0g
UkFXX0NPREUgfCBFTVBUWQotICAgICAgIEVMU0VfQlJBTkNIIDo6PSAkZWxzZSBbWyBDT0RFIF1d
Ci0gICAgICAgICAgIHwgJGVsaWYgRVhQUkVTU0lPTiBbWyBDT0RFIF1dIEVMU0VfQlJBTkNICi0g
ICAgICAgICAgIHwgRU1QVFkKLSAgICAgICBFWFBSRVNTSU9OIGhhcyBQeXRob24gc3ludGF4Lgot
IiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbiknCi0KLWlt
cG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLQotVE9LRU5fVEFCTEUgPSBbCi0gICAg
KHJlLmNvbXBpbGUocidcJHZhclxzKycpLCAnJHZhcicpLAotICAgIChyZS5jb21waWxlKHInXCRl
bGlmXHMrJyksICckZWxpZicpLAotICAgIChyZS5jb21waWxlKHInXCRlbHNlXHMrJyksICckZWxz
ZScpLAotICAgIChyZS5jb21waWxlKHInXCRmb3JccysnKSwgJyRmb3InKSwKLSAgICAocmUuY29t
cGlsZShyJ1wkaWZccysnKSwgJyRpZicpLAotICAgIChyZS5jb21waWxlKHInXCRyYW5nZVxzKycp
LCAnJHJhbmdlJyksCi0gICAgKHJlLmNvbXBpbGUocidcJFtfQS1aYS16XVx3KicpLCAnJGlkJyks
Ci0gICAgKHJlLmNvbXBpbGUocidcJFwoXCRcKScpLCAnJCgkKScpLAotICAgIChyZS5jb21waWxl
KHInXCQnKSwgJyQnKSwKLSAgICAocmUuY29tcGlsZShyJ1xbXFtcbj8nKSwgJ1tbJyksCi0gICAg
KHJlLmNvbXBpbGUocidcXVxdXG4/JyksICddXScpLAotICAgIF0KLQotCi1jbGFzcyBDdXJzb3I6
Ci0gICIiIlJlcHJlc2VudHMgYSBwb3NpdGlvbiAobGluZSBhbmQgY29sdW1uKSBpbiBhIHRleHQg
ZmlsZS4iIiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgbGluZT0tMSwgY29sdW1uPS0xKToKLSAg
ICBzZWxmLmxpbmUgPSBsaW5lCi0gICAgc2VsZi5jb2x1bW4gPSBjb2x1bW4KLQotICBkZWYgX19l
cV9fKHNlbGYsIHJocyk6Ci0gICAgcmV0dXJuIHNlbGYubGluZSA9PSByaHMubGluZSBhbmQgc2Vs
Zi5jb2x1bW4gPT0gcmhzLmNvbHVtbgotCi0gIGRlZiBfX25lX18oc2VsZiwgcmhzKToKLSAgICBy
ZXR1cm4gbm90IHNlbGYgPT0gcmhzCi0KLSAgZGVmIF9fbHRfXyhzZWxmLCByaHMpOgotICAgIHJl
dHVybiBzZWxmLmxpbmUgPCByaHMubGluZSBvciAoCi0gICAgICAgIHNlbGYubGluZSA9PSByaHMu
bGluZSBhbmQgc2VsZi5jb2x1bW4gPCByaHMuY29sdW1uKQotCi0gIGRlZiBfX2xlX18oc2VsZiwg
cmhzKToKLSAgICByZXR1cm4gc2VsZiA8IHJocyBvciBzZWxmID09IHJocwotCi0gIGRlZiBfX2d0
X18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDwgc2VsZgotCi0gIGRlZiBfX2dlX18oc2Vs
ZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDw9IHNlbGYKLQotICBkZWYgX19zdHJfXyhzZWxmKToK
LSAgICBpZiBzZWxmID09IEVvZigpOgotICAgICAgcmV0dXJuICdFT0YnCi0gICAgZWxzZToKLSAg
ICAgIHJldHVybiAnJXMoJXMpJyAlIChzZWxmLmxpbmUgKyAxLCBzZWxmLmNvbHVtbikKLQotICBk
ZWYgX19hZGRfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBz
ZWxmLmNvbHVtbiArIG9mZnNldCkKLQotICBkZWYgX19zdWJfXyhzZWxmLCBvZmZzZXQpOgotICAg
IHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbiAtIG9mZnNldCkKLQotICBkZWYg
Q2xvbmUoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJl
dHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbikKLQotCi0jIFNwZWNpYWwgY3Vyc29y
IHRvIGluZGljYXRlIHRoZSBlbmQtb2YtZmlsZS4KLWRlZiBFb2YoKToKLSAgIiIiUmV0dXJucyB0
aGUgc3BlY2lhbCBjdXJzb3IgdG8gZGVub3RlIHRoZSBlbmQtb2YtZmlsZS4iIiIKLSAgcmV0dXJu
IEN1cnNvcigtMSwgLTEpCi0KLQotY2xhc3MgVG9rZW46Ci0gICIiIlJlcHJlc2VudHMgYSB0b2tl
biBpbiBhIFB1bXAgc291cmNlIGZpbGUuIiIiCi0KLSAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0
PU5vbmUsIGVuZD1Ob25lLCB2YWx1ZT1Ob25lLCB0b2tlbl90eXBlPU5vbmUpOgotICAgIGlmIHN0
YXJ0IGlzIE5vbmU6Ci0gICAgICBzZWxmLnN0YXJ0ID0gRW9mKCkKLSAgICBlbHNlOgotICAgICAg
c2VsZi5zdGFydCA9IHN0YXJ0Ci0gICAgaWYgZW5kIGlzIE5vbmU6Ci0gICAgICBzZWxmLmVuZCA9
IEVvZigpCi0gICAgZWxzZToKLSAgICAgIHNlbGYuZW5kID0gZW5kCi0gICAgc2VsZi52YWx1ZSA9
IHZhbHVlCi0gICAgc2VsZi50b2tlbl90eXBlID0gdG9rZW5fdHlwZQotCi0gIGRlZiBfX3N0cl9f
KHNlbGYpOgotICAgIHJldHVybiAnVG9rZW4gQCVzOiBcJyVzXCcgdHlwZT0lcycgJSAoCi0gICAg
ICAgIHNlbGYuc3RhcnQsIHNlbGYudmFsdWUsIHNlbGYudG9rZW5fdHlwZSkKLQotICBkZWYgQ2xv
bmUoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJldHVy
biBUb2tlbihzZWxmLnN0YXJ0LkNsb25lKCksIHNlbGYuZW5kLkNsb25lKCksIHNlbGYudmFsdWUs
Ci0gICAgICAgICAgICAgICAgIHNlbGYudG9rZW5fdHlwZSkKLQotCi1kZWYgU3RhcnRzV2l0aChs
aW5lcywgcG9zLCBzdHJpbmcpOgotICAiIiJSZXR1cm5zIFRydWUgaWZmIHRoZSBnaXZlbiBwb3Np
dGlvbiBpbiBsaW5lcyBzdGFydHMgd2l0aCAnc3RyaW5nJy4iIiIKLQotICByZXR1cm4gbGluZXNb
cG9zLmxpbmVdW3Bvcy5jb2x1bW46XS5zdGFydHN3aXRoKHN0cmluZykKLQotCi1kZWYgRmluZEZp
cnN0SW5MaW5lKGxpbmUsIHRva2VuX3RhYmxlKToKLSAgYmVzdF9tYXRjaF9zdGFydCA9IC0xCi0g
IGZvciAocmVnZXgsIHRva2VuX3R5cGUpIGluIHRva2VuX3RhYmxlOgotICAgIG0gPSByZWdleC5z
ZWFyY2gobGluZSkKLSAgICBpZiBtOgotICAgICAgIyBXZSBmb3VuZCByZWdleCBpbiBsaW5lcwot
ICAgICAgaWYgYmVzdF9tYXRjaF9zdGFydCA8IDAgb3IgbS5zdGFydCgpIDwgYmVzdF9tYXRjaF9z
dGFydDoKLSAgICAgICAgYmVzdF9tYXRjaF9zdGFydCA9IG0uc3RhcnQoKQotICAgICAgICBiZXN0
X21hdGNoX2xlbmd0aCA9IG0uZW5kKCkgLSBtLnN0YXJ0KCkKLSAgICAgICAgYmVzdF9tYXRjaF90
b2tlbl90eXBlID0gdG9rZW5fdHlwZQotCi0gIGlmIGJlc3RfbWF0Y2hfc3RhcnQgPCAwOgotICAg
IHJldHVybiBOb25lCi0KLSAgcmV0dXJuIChiZXN0X21hdGNoX3N0YXJ0LCBiZXN0X21hdGNoX2xl
bmd0aCwgYmVzdF9tYXRjaF90b2tlbl90eXBlKQotCi0KLWRlZiBGaW5kRmlyc3QobGluZXMsIHRv
a2VuX3RhYmxlLCBjdXJzb3IpOgotICAiIiJGaW5kcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBh
bnkgc3RyaW5nIGluIHN0cmluZ3MgaW4gbGluZXMuIiIiCi0KLSAgc3RhcnQgPSBjdXJzb3IuQ2xv
bmUoKQotICBjdXJfbGluZV9udW1iZXIgPSBjdXJzb3IubGluZQotICBmb3IgbGluZSBpbiBsaW5l
c1tzdGFydC5saW5lOl06Ci0gICAgaWYgY3VyX2xpbmVfbnVtYmVyID09IHN0YXJ0LmxpbmU6Ci0g
ICAgICBsaW5lID0gbGluZVtzdGFydC5jb2x1bW46XQotICAgIG0gPSBGaW5kRmlyc3RJbkxpbmUo
bGluZSwgdG9rZW5fdGFibGUpCi0gICAgaWYgbToKLSAgICAgICMgV2UgZm91bmQgYSByZWdleCBp
biBsaW5lLgotICAgICAgKHN0YXJ0X2NvbHVtbiwgbGVuZ3RoLCB0b2tlbl90eXBlKSA9IG0KLSAg
ICAgIGlmIGN1cl9saW5lX251bWJlciA9PSBzdGFydC5saW5lOgotICAgICAgICBzdGFydF9jb2x1
bW4gKz0gc3RhcnQuY29sdW1uCi0gICAgICBmb3VuZF9zdGFydCA9IEN1cnNvcihjdXJfbGluZV9u
dW1iZXIsIHN0YXJ0X2NvbHVtbikKLSAgICAgIGZvdW5kX2VuZCA9IGZvdW5kX3N0YXJ0ICsgbGVu
Z3RoCi0gICAgICByZXR1cm4gTWFrZVRva2VuKGxpbmVzLCBmb3VuZF9zdGFydCwgZm91bmRfZW5k
LCB0b2tlbl90eXBlKQotICAgIGN1cl9saW5lX251bWJlciArPSAxCi0gICMgV2UgZmFpbGVkIHRv
IGZpbmQgc3RyIGluIGxpbmVzCi0gIHJldHVybiBOb25lCi0KLQotZGVmIFN1YlN0cmluZyhsaW5l
cywgc3RhcnQsIGVuZCk6Ci0gICIiIlJldHVybnMgYSBzdWJzdHJpbmcgaW4gbGluZXMuIiIiCi0K
LSAgaWYgZW5kID09IEVvZigpOgotICAgIGVuZCA9IEN1cnNvcihsZW4obGluZXMpIC0gMSwgbGVu
KGxpbmVzWy0xXSkpCi0KLSAgaWYgc3RhcnQgPj0gZW5kOgotICAgIHJldHVybiAnJwotCi0gIGlm
IHN0YXJ0LmxpbmUgPT0gZW5kLmxpbmU6Ci0gICAgcmV0dXJuIGxpbmVzW3N0YXJ0LmxpbmVdW3N0
YXJ0LmNvbHVtbjplbmQuY29sdW1uXQotCi0gIHJlc3VsdF9saW5lcyA9IChbbGluZXNbc3RhcnQu
bGluZV1bc3RhcnQuY29sdW1uOl1dICsKLSAgICAgICAgICAgICAgICAgIGxpbmVzW3N0YXJ0Lmxp
bmUgKyAxOmVuZC5saW5lXSArCi0gICAgICAgICAgICAgICAgICBbbGluZXNbZW5kLmxpbmVdWzpl
bmQuY29sdW1uXV0pCi0gIHJldHVybiAnJy5qb2luKHJlc3VsdF9saW5lcykKLQotCi1kZWYgU3Ry
aXBNZXRhQ29tbWVudHMoc3RyKToKLSAgIiIiU3RyaXAgbWV0YSBjb21tZW50cyBmcm9tIGVhY2gg
bGluZSBpbiB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotCi0gICMgRmlyc3QsIGNvbXBsZXRlbHkgcmVt
b3ZlIGxpbmVzIGNvbnRhaW5pbmcgbm90aGluZyBidXQgYSBtZXRhCi0gICMgY29tbWVudCwgaW5j
bHVkaW5nIHRoZSB0cmFpbGluZyBcbi4KLSAgc3RyID0gcmUuc3ViKHInXlxzKlwkXCQuKlxuJywg
JycsIHN0cikKLQotICAjIFRoZW4sIHJlbW92ZSBtZXRhIGNvbW1lbnRzIGZyb20gY29udGVudGZ1
bCBsaW5lcy4KLSAgcmV0dXJuIHJlLnN1YihyJ1xzKlwkXCQuKicsICcnLCBzdHIpCi0KLQotZGVm
IE1ha2VUb2tlbihsaW5lcywgc3RhcnQsIGVuZCwgdG9rZW5fdHlwZSk6Ci0gICIiIkNyZWF0ZXMg
YSBuZXcgaW5zdGFuY2Ugb2YgVG9rZW4uIiIiCi0KLSAgcmV0dXJuIFRva2VuKHN0YXJ0LCBlbmQs
IFN1YlN0cmluZyhsaW5lcywgc3RhcnQsIGVuZCksIHRva2VuX3R5cGUpCi0KLQotZGVmIFBhcnNl
VG9rZW4obGluZXMsIHBvcywgcmVnZXgsIHRva2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9z
LmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmVnZXguc2VhcmNoKGxpbmUpCi0gIGlmIG0gYW5k
IG5vdCBtLnN0YXJ0KCk6Ci0gICAgcmV0dXJuIE1ha2VUb2tlbihsaW5lcywgcG9zLCBwb3MgKyBt
LmVuZCgpLCB0b2tlbl90eXBlKQotICBlbHNlOgotICAgIHByaW50ICdFUlJPUjogJXMgZXhwZWN0
ZWQgYXQgJXMuJyAlICh0b2tlbl90eXBlLCBwb3MpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1JRF9S
RUdFWCA9IHJlLmNvbXBpbGUocidbX0EtWmEtel1cdyonKQotRVFfUkVHRVggPSByZS5jb21waWxl
KHInPScpCi1SRVNUX09GX0xJTkVfUkVHRVggPSByZS5jb21waWxlKHInLio/KD89JHxcJFwkKScp
Ci1PUFRJT05BTF9XSElURV9TUEFDRVNfUkVHRVggPSByZS5jb21waWxlKHInXHMqJykKLVdISVRF
X1NQQUNFX1JFR0VYID0gcmUuY29tcGlsZShyJ1xzJykKLURPVF9ET1RfUkVHRVggPSByZS5jb21w
aWxlKHInXC5cLicpCi0KLQotZGVmIFNraXAobGluZXMsIHBvcywgcmVnZXgpOgotICBsaW5lID0g
bGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5l
KQotICBpZiBtIGFuZCBub3QgbS5zdGFydCgpOgotICAgIHJldHVybiBwb3MgKyBtLmVuZCgpCi0g
IGVsc2U6Ci0gICAgcmV0dXJuIHBvcwotCi0KLWRlZiBTa2lwVW50aWwobGluZXMsIHBvcywgcmVn
ZXgsIHRva2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQot
ICBtID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBpZiBtOgotICAgIHJldHVybiBwb3MgKyBt
LnN0YXJ0KCkKLSAgZWxzZToKLSAgICBwcmludCAoJ0VSUk9SOiAlcyBleHBlY3RlZCBvbiBsaW5l
ICVzIGFmdGVyIGNvbHVtbiAlcy4nICUKLSAgICAgICAgICAgKHRva2VuX3R5cGUsIHBvcy5saW5l
ICsgMSwgcG9zLmNvbHVtbikpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1kZWYgUGFyc2VFeHBUb2tl
bkluUGFyZW5zKGxpbmVzLCBwb3MpOgotICBkZWYgUGFyc2VJblBhcmVucyhwb3MpOgotICAgIHBv
cyA9IFNraXAobGluZXMsIHBvcywgT1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYKQotICAgIHBv
cyA9IFNraXAobGluZXMsIHBvcywgcidcKCcpCi0gICAgcG9zID0gUGFyc2UocG9zKQotICAgIHBv
cyA9IFNraXAobGluZXMsIHBvcywgcidcKScpCi0gICAgcmV0dXJuIHBvcwotCi0gIGRlZiBQYXJz
ZShwb3MpOgotICAgIHBvcyA9IFNraXBVbnRpbChsaW5lcywgcG9zLCByJ1wofFwpJywgJyknKQot
ICAgIGlmIFN1YlN0cmluZyhsaW5lcywgcG9zLCBwb3MgKyAxKSA9PSAnKCc6Ci0gICAgICBwb3Mg
PSBQYXJzZShwb3MgKyAxKQotICAgICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCByJ1wpJykKLSAg
ICAgIHJldHVybiBQYXJzZShwb3MpCi0gICAgZWxzZToKLSAgICAgIHJldHVybiBwb3MKLQotICBz
dGFydCA9IHBvcy5DbG9uZSgpCi0gIHBvcyA9IFBhcnNlSW5QYXJlbnMocG9zKQotICByZXR1cm4g
TWFrZVRva2VuKGxpbmVzLCBzdGFydCwgcG9zLCAnZXhwJykKLQotCi1kZWYgUlN0cmlwTmV3TGlu
ZUZyb21Ub2tlbih0b2tlbik6Ci0gIGlmIHRva2VuLnZhbHVlLmVuZHN3aXRoKCdcbicpOgotICAg
IHJldHVybiBUb2tlbih0b2tlbi5zdGFydCwgdG9rZW4uZW5kLCB0b2tlbi52YWx1ZVs6LTFdLCB0
b2tlbi50b2tlbl90eXBlKQotICBlbHNlOgotICAgIHJldHVybiB0b2tlbgotCi0KLWRlZiBUb2tl
bml6ZUxpbmVzKGxpbmVzLCBwb3MpOgotICB3aGlsZSBUcnVlOgotICAgIGZvdW5kID0gRmluZEZp
cnN0KGxpbmVzLCBUT0tFTl9UQUJMRSwgcG9zKQotICAgIGlmIG5vdCBmb3VuZDoKLSAgICAgIHlp
ZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBFb2YoKSwgJ2NvZGUnKQotICAgICAgcmV0dXJuCi0K
LSAgICBpZiBmb3VuZC5zdGFydCA9PSBwb3M6Ci0gICAgICBwcmV2X3Rva2VuID0gTm9uZQotICAg
ICAgcHJldl90b2tlbl9yc3RyaXBwZWQgPSBOb25lCi0gICAgZWxzZToKLSAgICAgIHByZXZfdG9r
ZW4gPSBNYWtlVG9rZW4obGluZXMsIHBvcywgZm91bmQuc3RhcnQsICdjb2RlJykKLSAgICAgIHBy
ZXZfdG9rZW5fcnN0cmlwcGVkID0gUlN0cmlwTmV3TGluZUZyb21Ub2tlbihwcmV2X3Rva2VuKQot
Ci0gICAgaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHZhcic6Ci0gICAgICBpZiBwcmV2X3Rva2Vu
X3JzdHJpcHBlZDoKLSAgICAgICAgeWllbGQgcHJldl90b2tlbl9yc3RyaXBwZWQKLSAgICAgIHlp
ZWxkIGZvdW5kCi0gICAgICBpZF90b2tlbiA9IFBhcnNlVG9rZW4obGluZXMsIGZvdW5kLmVuZCwg
SURfUkVHRVgsICdpZCcpCi0gICAgICB5aWVsZCBpZF90b2tlbgotICAgICAgcG9zID0gU2tpcChs
aW5lcywgaWRfdG9rZW4uZW5kLCBPUFRJT05BTF9XSElURV9TUEFDRVNfUkVHRVgpCi0KLSAgICAg
IGVxX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBFUV9SRUdFWCwgJz0nKQotICAgICAg
eWllbGQgZXFfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGluZXMsIGVxX3Rva2VuLmVuZCwgcidc
cyonKQotCi0gICAgICBpZiBTdWJTdHJpbmcobGluZXMsIHBvcywgcG9zICsgMikgIT0gJ1tbJzoK
LSAgICAgICAgZXhwX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBSRVNUX09GX0xJTkVf
UkVHRVgsICdleHAnKQotICAgICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAgICAgcG9zID0gQ3Vy
c29yKGV4cF90b2tlbi5lbmQubGluZSArIDEsIDApCi0gICAgZWxpZiBmb3VuZC50b2tlbl90eXBl
ID09ICckZm9yJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVs
ZCBwcmV2X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2Vu
ID0gUGFyc2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlp
ZWxkIGlkX3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIFdISVRF
X1NQQUNFX1JFR0VYKQotICAgIGVsaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHJhbmdlJzoKLSAg
ICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuX3Jz
dHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2VuID0gUGFyc2VUb2tlbihs
aW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlpZWxkIGlkX3Rva2VuCi0g
ICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIE9QVElPTkFMX1dISVRFX1NQQUNF
U19SRUdFWCkKLQotICAgICAgZG90c19wb3MgPSBTa2lwVW50aWwobGluZXMsIHBvcywgRE9UX0RP
VF9SRUdFWCwgJy4uJykKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBkb3RzX3Bv
cywgJ2V4cCcpCi0gICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMsIGRvdHNfcG9zLCBkb3RzX3Bv
cyArIDIsICcuLicpCi0gICAgICBwb3MgPSBkb3RzX3BvcyArIDIKLSAgICAgIG5ld19wb3MgPSBD
dXJzb3IocG9zLmxpbmUgKyAxLCAwKQotICAgICAgeWllbGQgTWFrZVRva2VuKGxpbmVzLCBwb3Ms
IG5ld19wb3MsICdleHAnKQotICAgICAgcG9zID0gbmV3X3BvcwotICAgIGVsaWYgZm91bmQudG9r
ZW5fdHlwZSA9PSAnJCc6Ci0gICAgICBpZiBwcmV2X3Rva2VuOgotICAgICAgICB5aWVsZCBwcmV2
X3Rva2VuCi0gICAgICB5aWVsZCBmb3VuZAotICAgICAgZXhwX3Rva2VuID0gUGFyc2VFeHBUb2tl
bkluUGFyZW5zKGxpbmVzLCBmb3VuZC5lbmQpCi0gICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAg
IHBvcyA9IGV4cF90b2tlbi5lbmQKLSAgICBlbGlmIChmb3VuZC50b2tlbl90eXBlID09ICddXScg
b3IgZm91bmQudG9rZW5fdHlwZSA9PSAnJGlmJyBvcgotICAgICAgICAgIGZvdW5kLnRva2VuX3R5
cGUgPT0gJyRlbGlmJyBvciBmb3VuZC50b2tlbl90eXBlID09ICckZWxzZScpOgotICAgICAgaWYg
cHJldl90b2tlbl9yc3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVk
Ci0gICAgICB5aWVsZCBmb3VuZAotICAgICAgcG9zID0gZm91bmQuZW5kCi0gICAgZWxzZToKLSAg
ICAgIGlmIHByZXZfdG9rZW46Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW4KLSAgICAgIHlpZWxk
IGZvdW5kCi0gICAgICBwb3MgPSBmb3VuZC5lbmQKLQotCi1kZWYgVG9rZW5pemUocyk6Ci0gICIi
IkEgZ2VuZXJhdG9yIHRoYXQgeWllbGRzIHRoZSB0b2tlbnMgaW4gdGhlIGdpdmVuIHN0cmluZy4i
IiIKLSAgaWYgcyAhPSAnJzoKLSAgICBsaW5lcyA9IHMuc3BsaXRsaW5lcyhUcnVlKQotICAgIGZv
ciB0b2tlbiBpbiBUb2tlbml6ZUxpbmVzKGxpbmVzLCBDdXJzb3IoMCwgMCkpOgotICAgICAgeWll
bGQgdG9rZW4KLQotCi1jbGFzcyBDb2RlTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGF0b21p
Y19jb2RlX2xpc3Q9Tm9uZSk6Ci0gICAgc2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlX2xp
c3QKLQotCi1jbGFzcyBWYXJOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1O
b25lLCBhdG9taWNfY29kZT1Ob25lKToKLSAgICBzZWxmLmlkZW50aWZpZXIgPSBpZGVudGlmaWVy
Ci0gICAgc2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlCi0KLQotY2xhc3MgUmFuZ2VOb2Rl
OgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25lLCBleHAxPU5vbmUsIGV4cDI9
Tm9uZSk6Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuZXhwMSA9
IGV4cDEKLSAgICBzZWxmLmV4cDIgPSBleHAyCi0KLQotY2xhc3MgRm9yTm9kZToKLSAgZGVmIF9f
aW5pdF9fKHNlbGYsIGlkZW50aWZpZXI9Tm9uZSwgc2VwPU5vbmUsIGNvZGU9Tm9uZSk6Ci0gICAg
c2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuc2VwID0gc2VwCi0gICAgc2Vs
Zi5jb2RlID0gY29kZQotCi0KLWNsYXNzIEVsc2VOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwg
ZWxzZV9icmFuY2g9Tm9uZSk6Ci0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNoCi0K
LQotY2xhc3MgSWZOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgZXhwPU5vbmUsIHRoZW5fYnJh
bmNoPU5vbmUsIGVsc2VfYnJhbmNoPU5vbmUpOgotICAgIHNlbGYuZXhwID0gZXhwCi0gICAgc2Vs
Zi50aGVuX2JyYW5jaCA9IHRoZW5fYnJhbmNoCi0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2Vf
YnJhbmNoCi0KLQotY2xhc3MgUmF3Q29kZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0b2tl
bj1Ob25lKToKLSAgICBzZWxmLnJhd19jb2RlID0gdG9rZW4KLQotCi1jbGFzcyBMaXRlcmFsRG9s
bGFyTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuKToKLSAgICBzZWxmLnRva2VuID0g
dG9rZW4KLQotCi1jbGFzcyBFeHBOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgdG9rZW4sIHB5
dGhvbl9leHApOgotICAgIHNlbGYudG9rZW4gPSB0b2tlbgotICAgIHNlbGYucHl0aG9uX2V4cCA9
IHB5dGhvbl9leHAKLQotCi1kZWYgUG9wRnJvbnQoYV9saXN0KToKLSAgaGVhZCA9IGFfbGlzdFsw
XQotICBhX2xpc3RbOjFdID0gW10KLSAgcmV0dXJuIGhlYWQKLQotCi1kZWYgUHVzaEZyb250KGFf
bGlzdCwgZWxlbSk6Ci0gIGFfbGlzdFs6MF0gPSBbZWxlbV0KLQotCi1kZWYgUG9wVG9rZW4oYV9s
aXN0LCB0b2tlbl90eXBlPU5vbmUpOgotICB0b2tlbiA9IFBvcEZyb250KGFfbGlzdCkKLSAgaWYg
dG9rZW5fdHlwZSBpcyBub3QgTm9uZSBhbmQgdG9rZW4udG9rZW5fdHlwZSAhPSB0b2tlbl90eXBl
OgotICAgIHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQgJXMnICUgKHRva2VuX3R5cGUsIHRv
a2VuLnN0YXJ0KQotICAgIHByaW50ICdFUlJPUjogJXMgZm91bmQgaW5zdGVhZCcgJSAodG9rZW4s
KQotICAgIHN5cy5leGl0KDEpCi0KLSAgcmV0dXJuIHRva2VuCi0KLQotZGVmIFBlZWtUb2tlbihh
X2xpc3QpOgotICBpZiBub3QgYV9saXN0OgotICAgIHJldHVybiBOb25lCi0KLSAgcmV0dXJuIGFf
bGlzdFswXQotCi0KLWRlZiBQYXJzZUV4cE5vZGUodG9rZW4pOgotICBweXRob25fZXhwID0gcmUu
c3ViKHInKFtfQS1aYS16XVx3KiknLCByJ3NlbGYuR2V0VmFsdWUoIlwxIiknLCB0b2tlbi52YWx1
ZSkKLSAgcmV0dXJuIEV4cE5vZGUodG9rZW4sIHB5dGhvbl9leHApCi0KLQotZGVmIFBhcnNlRWxz
ZU5vZGUodG9rZW5zKToKLSAgZGVmIFBvcCh0b2tlbl90eXBlPU5vbmUpOgotICAgIHJldHVybiBQ
b3BUb2tlbih0b2tlbnMsIHRva2VuX3R5cGUpCi0KLSAgbmV4dCA9IFBlZWtUb2tlbih0b2tlbnMp
Ci0gIGlmIG5vdCBuZXh0OgotICAgIHJldHVybiBOb25lCi0gIGlmIG5leHQudG9rZW5fdHlwZSA9
PSAnJGVsc2UnOgotICAgIFBvcCgnJGVsc2UnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9k
ZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBjb2Rl
X25vZGUKLSAgZWxpZiBuZXh0LnRva2VuX3R5cGUgPT0gJyRlbGlmJzoKLSAgICBQb3AoJyRlbGlm
JykKLSAgICBleHAgPSBQb3AoJ2NvZGUnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9
IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIGlubmVyX2Vsc2Vfbm9k
ZSA9IFBhcnNlRWxzZU5vZGUodG9rZW5zKQotICAgIHJldHVybiBDb2RlTm9kZShbSWZOb2RlKFBh
cnNlRXhwTm9kZShleHApLCBjb2RlX25vZGUsIGlubmVyX2Vsc2Vfbm9kZSldKQotICBlbGlmIG5v
dCBuZXh0LnZhbHVlLnN0cmlwKCk6Ci0gICAgUG9wKCdjb2RlJykKLSAgICByZXR1cm4gUGFyc2VF
bHNlTm9kZSh0b2tlbnMpCi0gIGVsc2U6Ci0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VB
dG9taWNDb2RlTm9kZSh0b2tlbnMpOgotICBkZWYgUG9wKHRva2VuX3R5cGU9Tm9uZSk6Ci0gICAg
cmV0dXJuIFBvcFRva2VuKHRva2VucywgdG9rZW5fdHlwZSkKLQotICBoZWFkID0gUG9wRnJvbnQo
dG9rZW5zKQotICB0ID0gaGVhZC50b2tlbl90eXBlCi0gIGlmIHQgPT0gJ2NvZGUnOgotICAgIHJl
dHVybiBSYXdDb2RlTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyR2YXInOgotICAgIGlkX3Rva2Vu
ID0gUG9wKCdpZCcpCi0gICAgUG9wKCc9JykKLSAgICBuZXh0ID0gUGVla1Rva2VuKHRva2VucykK
LSAgICBpZiBuZXh0LnRva2VuX3R5cGUgPT0gJ2V4cCc6Ci0gICAgICBleHBfdG9rZW4gPSBQb3Ao
KQotICAgICAgcmV0dXJuIFZhck5vZGUoaWRfdG9rZW4sIFBhcnNlRXhwTm9kZShleHBfdG9rZW4p
KQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQot
ICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBWYXJOb2RlKGlkX3Rva2VuLCBjb2RlX25vZGUpCi0g
IGVsaWYgdCA9PSAnJGZvcic6Ci0gICAgaWRfdG9rZW4gPSBQb3AoJ2lkJykKLSAgICBuZXh0X3Rv
a2VuID0gUGVla1Rva2VuKHRva2VucykKLSAgICBpZiBuZXh0X3Rva2VuLnRva2VuX3R5cGUgPT0g
J2NvZGUnOgotICAgICAgc2VwX3Rva2VuID0gbmV4dF90b2tlbgotICAgICAgUG9wKCdjb2RlJykK
LSAgICBlbHNlOgotICAgICAgc2VwX3Rva2VuID0gTm9uZQotICAgIFBvcCgnW1snKQotICAgIGNv
ZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVy
biBGb3JOb2RlKGlkX3Rva2VuLCBzZXBfdG9rZW4sIGNvZGVfbm9kZSkKLSAgZWxpZiB0ID09ICck
aWYnOgotICAgIGV4cF90b2tlbiA9IFBvcCgnY29kZScpCi0gICAgUG9wKCdbWycpCi0gICAgY29k
ZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgZWxzZV9u
b2RlID0gUGFyc2VFbHNlTm9kZSh0b2tlbnMpCi0gICAgcmV0dXJuIElmTm9kZShQYXJzZUV4cE5v
ZGUoZXhwX3Rva2VuKSwgY29kZV9ub2RlLCBlbHNlX25vZGUpCi0gIGVsaWYgdCA9PSAnJHJhbmdl
JzoKLSAgICBpZF90b2tlbiA9IFBvcCgnaWQnKQotICAgIGV4cDFfdG9rZW4gPSBQb3AoJ2V4cCcp
Ci0gICAgUG9wKCcuLicpCi0gICAgZXhwMl90b2tlbiA9IFBvcCgnZXhwJykKLSAgICByZXR1cm4g
UmFuZ2VOb2RlKGlkX3Rva2VuLCBQYXJzZUV4cE5vZGUoZXhwMV90b2tlbiksCi0gICAgICAgICAg
ICAgICAgICAgICBQYXJzZUV4cE5vZGUoZXhwMl90b2tlbikpCi0gIGVsaWYgdCA9PSAnJGlkJzoK
LSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKFRva2VuKGhlYWQuc3RhcnQgKyAxLCBoZWFkLmVuZCwg
aGVhZC52YWx1ZVsxOl0sICdpZCcpKQotICBlbGlmIHQgPT0gJyQoJCknOgotICAgIHJldHVybiBM
aXRlcmFsRG9sbGFyTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyQnOgotICAgIGV4cF90b2tlbiA9
IFBvcCgnZXhwJykKLSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKGV4cF90b2tlbikKLSAgZWxpZiB0
ID09ICdbWyc6Ci0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9w
KCddXScpCi0gICAgcmV0dXJuIGNvZGVfbm9kZQotICBlbHNlOgotICAgIFB1c2hGcm9udCh0b2tl
bnMsIGhlYWQpCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VDb2RlTm9kZSh0b2tlbnMp
OgotICBhdG9taWNfY29kZV9saXN0ID0gW10KLSAgd2hpbGUgVHJ1ZToKLSAgICBpZiBub3QgdG9r
ZW5zOgotICAgICAgYnJlYWsKLSAgICBhdG9taWNfY29kZV9ub2RlID0gUGFyc2VBdG9taWNDb2Rl
Tm9kZSh0b2tlbnMpCi0gICAgaWYgYXRvbWljX2NvZGVfbm9kZToKLSAgICAgIGF0b21pY19jb2Rl
X2xpc3QuYXBwZW5kKGF0b21pY19jb2RlX25vZGUpCi0gICAgZWxzZToKLSAgICAgIGJyZWFrCi0g
IHJldHVybiBDb2RlTm9kZShhdG9taWNfY29kZV9saXN0KQotCi0KLWRlZiBQYXJzZVRvQVNUKHB1
bXBfc3JjX3RleHQpOgotICAiIiJDb252ZXJ0IHRoZSBnaXZlbiBQdW1wIHNvdXJjZSB0ZXh0IGlu
dG8gYW4gQVNULiIiIgotICB0b2tlbnMgPSBsaXN0KFRva2VuaXplKHB1bXBfc3JjX3RleHQpKQot
ICBjb2RlX25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgcmV0dXJuIGNvZGVfbm9kZQot
Ci0KLWNsYXNzIEVudjoKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYudmFyaWFibGVz
ID0gW10KLSAgICBzZWxmLnJhbmdlcyA9IFtdCi0KLSAgZGVmIENsb25lKHNlbGYpOgotICAgIGNs
b25lID0gRW52KCkKLSAgICBjbG9uZS52YXJpYWJsZXMgPSBzZWxmLnZhcmlhYmxlc1s6XQotICAg
IGNsb25lLnJhbmdlcyA9IHNlbGYucmFuZ2VzWzpdCi0gICAgcmV0dXJuIGNsb25lCi0KLSAgZGVm
IFB1c2hWYXJpYWJsZShzZWxmLCB2YXIsIHZhbHVlKToKLSAgICAjIElmIHZhbHVlIGxvb2tzIGxp
a2UgYW4gaW50LCBzdG9yZSBpdCBhcyBhbiBpbnQuCi0gICAgdHJ5OgotICAgICAgaW50X3ZhbHVl
ID0gaW50KHZhbHVlKQotICAgICAgaWYgKCclcycgJSBpbnRfdmFsdWUpID09IHZhbHVlOgotICAg
ICAgICB2YWx1ZSA9IGludF92YWx1ZQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICBwYXNz
Ci0gICAgc2VsZi52YXJpYWJsZXNbOjBdID0gWyh2YXIsIHZhbHVlKV0KLQotICBkZWYgUG9wVmFy
aWFibGUoc2VsZik6Ci0gICAgc2VsZi52YXJpYWJsZXNbOjFdID0gW10KLQotICBkZWYgUHVzaFJh
bmdlKHNlbGYsIHZhciwgbG93ZXIsIHVwcGVyKToKLSAgICBzZWxmLnJhbmdlc1s6MF0gPSBbKHZh
ciwgbG93ZXIsIHVwcGVyKV0KLQotICBkZWYgUG9wUmFuZ2Uoc2VsZik6Ci0gICAgc2VsZi5yYW5n
ZXNbOjFdID0gW10KLQotICBkZWYgR2V0VmFsdWUoc2VsZiwgaWRlbnRpZmllcik6Ci0gICAgZm9y
ICh2YXIsIHZhbHVlKSBpbiBzZWxmLnZhcmlhYmxlczoKLSAgICAgIGlmIGlkZW50aWZpZXIgPT0g
dmFyOgotICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIHByaW50ICdFUlJPUjogbWV0YSB2YXJp
YWJsZSAlcyBpcyB1bmRlZmluZWQuJyAlIChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQot
Ci0gIGRlZiBFdmFsRXhwKHNlbGYsIGV4cCk6Ci0gICAgdHJ5OgotICAgICAgcmVzdWx0ID0gZXZh
bChleHAucHl0aG9uX2V4cCkKLSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgcHJpbnQg
J0VSUk9SOiBjYXVnaHQgZXhjZXB0aW9uICVzOiAlcycgJSAoZS5fX2NsYXNzX18uX19uYW1lX18s
IGUpCi0gICAgICBwcmludCAoJ0VSUk9SOiBmYWlsZWQgdG8gZXZhbHVhdGUgbWV0YSBleHByZXNz
aW9uICVzIGF0ICVzJyAlCi0gICAgICAgICAgICAgKGV4cC5weXRob25fZXhwLCBleHAudG9rZW4u
c3RhcnQpKQotICAgICAgc3lzLmV4aXQoMSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLSAgZGVmIEdl
dFJhbmdlKHNlbGYsIGlkZW50aWZpZXIpOgotICAgIGZvciAodmFyLCBsb3dlciwgdXBwZXIpIGlu
IHNlbGYucmFuZ2VzOgotICAgICAgaWYgaWRlbnRpZmllciA9PSB2YXI6Ci0gICAgICAgIHJldHVy
biAobG93ZXIsIHVwcGVyKQotCi0gICAgcHJpbnQgJ0VSUk9SOiByYW5nZSAlcyBpcyB1bmRlZmlu
ZWQuJyAlIChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQotCi0KLWNsYXNzIE91dHB1dDoK
LSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuc3RyaW5nID0gJycKLQotICBkZWYgR2V0
TGFzdExpbmUoc2VsZik6Ci0gICAgaW5kZXggPSBzZWxmLnN0cmluZy5yZmluZCgnXG4nKQotICAg
IGlmIGluZGV4IDwgMDoKLSAgICAgIHJldHVybiAnJwotCi0gICAgcmV0dXJuIHNlbGYuc3RyaW5n
W2luZGV4ICsgMTpdCi0KLSAgZGVmIEFwcGVuZChzZWxmLCBzKToKLSAgICBzZWxmLnN0cmluZyAr
PSBzCi0KLQotZGVmIFJ1bkF0b21pY0NvZGUoZW52LCBub2RlLCBvdXRwdXQpOgotICBpZiBpc2lu
c3RhbmNlKG5vZGUsIFZhck5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIu
dmFsdWUuc3RyaXAoKQotICAgIHJlc3VsdCA9IE91dHB1dCgpCi0gICAgUnVuQXRvbWljQ29kZShl
bnYuQ2xvbmUoKSwgbm9kZS5hdG9taWNfY29kZSwgcmVzdWx0KQotICAgIHZhbHVlID0gcmVzdWx0
LnN0cmluZwotICAgIGVudi5QdXNoVmFyaWFibGUoaWRlbnRpZmllciwgdmFsdWUpCi0gIGVsaWYg
aXNpbnN0YW5jZShub2RlLCBSYW5nZU5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50
aWZpZXIudmFsdWUuc3RyaXAoKQotICAgIGxvd2VyID0gaW50KGVudi5FdmFsRXhwKG5vZGUuZXhw
MSkpCi0gICAgdXBwZXIgPSBpbnQoZW52LkV2YWxFeHAobm9kZS5leHAyKSkKLSAgICBlbnYuUHVz
aFJhbmdlKGlkZW50aWZpZXIsIGxvd2VyLCB1cHBlcikKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUs
IEZvck5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUuc3RyaXAo
KQotICAgIGlmIG5vZGUuc2VwIGlzIE5vbmU6Ci0gICAgICBzZXAgPSAnJwotICAgIGVsc2U6Ci0g
ICAgICBzZXAgPSBub2RlLnNlcC52YWx1ZQotICAgIChsb3dlciwgdXBwZXIpID0gZW52LkdldFJh
bmdlKGlkZW50aWZpZXIpCi0gICAgZm9yIGkgaW4gcmFuZ2UobG93ZXIsIHVwcGVyICsgMSk6Ci0g
ICAgICBuZXdfZW52ID0gZW52LkNsb25lKCkKLSAgICAgIG5ld19lbnYuUHVzaFZhcmlhYmxlKGlk
ZW50aWZpZXIsIGkpCi0gICAgICBSdW5Db2RlKG5ld19lbnYsIG5vZGUuY29kZSwgb3V0cHV0KQot
ICAgICAgaWYgaSAhPSB1cHBlcjoKLSAgICAgICAgb3V0cHV0LkFwcGVuZChzZXApCi0gIGVsaWYg
aXNpbnN0YW5jZShub2RlLCBSYXdDb2RlTm9kZSk6Ci0gICAgb3V0cHV0LkFwcGVuZChub2RlLnJh
d19jb2RlLnZhbHVlKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgSWZOb2RlKToKLSAgICBjb25k
ID0gZW52LkV2YWxFeHAobm9kZS5leHApCi0gICAgaWYgY29uZDoKLSAgICAgIFJ1bkNvZGUoZW52
LkNsb25lKCksIG5vZGUudGhlbl9icmFuY2gsIG91dHB1dCkKLSAgICBlbGlmIG5vZGUuZWxzZV9i
cmFuY2ggaXMgbm90IE5vbmU6Ci0gICAgICBSdW5Db2RlKGVudi5DbG9uZSgpLCBub2RlLmVsc2Vf
YnJhbmNoLCBvdXRwdXQpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBFeHBOb2RlKToKLSAgICB2
YWx1ZSA9IGVudi5FdmFsRXhwKG5vZGUpCi0gICAgb3V0cHV0LkFwcGVuZCgnJXMnICUgKHZhbHVl
LCkpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBMaXRlcmFsRG9sbGFyTm9kZSk6Ci0gICAgb3V0
cHV0LkFwcGVuZCgnJCcpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBDb2RlTm9kZSk6Ci0gICAg
UnVuQ29kZShlbnYuQ2xvbmUoKSwgbm9kZSwgb3V0cHV0KQotICBlbHNlOgotICAgIHByaW50ICdC
QUQnCi0gICAgcHJpbnQgbm9kZQotICAgIHN5cy5leGl0KDEpCi0KLQotZGVmIFJ1bkNvZGUoZW52
LCBjb2RlX25vZGUsIG91dHB1dCk6Ci0gIGZvciBhdG9taWNfY29kZSBpbiBjb2RlX25vZGUuYXRv
bWljX2NvZGU6Ci0gICAgUnVuQXRvbWljQ29kZShlbnYsIGF0b21pY19jb2RlLCBvdXRwdXQpCi0K
LQotZGVmIElzU2luZ2xlTGluZUNvbW1lbnQoY3VyX2xpbmUpOgotICByZXR1cm4gJy8vJyBpbiBj
dXJfbGluZQotCi0KLWRlZiBJc0luUHJlcHJvY2Vzc29yRGlyZWN0aXZlKHByZXZfbGluZXMsIGN1
cl9saW5lKToKLSAgaWYgY3VyX2xpbmUubHN0cmlwKCkuc3RhcnRzd2l0aCgnIycpOgotICAgIHJl
dHVybiBUcnVlCi0gIHJldHVybiBwcmV2X2xpbmVzIGFuZCBwcmV2X2xpbmVzWy0xXS5lbmRzd2l0
aCgnXFwnKQotCi0KLWRlZiBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQpOgotICBsb2MgPSBsaW5l
LmZpbmQoJy8vJykKLSAgYmVmb3JlX2NvbW1lbnQgPSBsaW5lWzpsb2NdLnJzdHJpcCgpCi0gIGlm
IGJlZm9yZV9jb21tZW50ID09ICcnOgotICAgIGluZGVudCA9IGxvYwotICBlbHNlOgotICAgIG91
dHB1dC5hcHBlbmQoYmVmb3JlX2NvbW1lbnQpCi0gICAgaW5kZW50ID0gbGVuKGJlZm9yZV9jb21t
ZW50KSAtIGxlbihiZWZvcmVfY29tbWVudC5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50Kicg
JyArICcvLyAnCi0gIG1heF9sZW4gPSA4MCAtIGxlbihwcmVmaXgpCi0gIGNvbW1lbnQgPSBsaW5l
W2xvYyArIDI6XS5zdHJpcCgpCi0gIHNlZ3MgPSBbc2VnIGZvciBzZWcgaW4gcmUuc3BsaXQocico
XHcrXFcqKScsIGNvbW1lbnQpIGlmIHNlZyAhPSAnJ10KLSAgY3VyX2xpbmUgPSAnJwotICBmb3Ig
c2VnIGluIHNlZ3M6Ci0gICAgaWYgbGVuKChjdXJfbGluZSArIHNlZykucnN0cmlwKCkpIDwgbWF4
X2xlbjoKLSAgICAgIGN1cl9saW5lICs9IHNlZwotICAgIGVsc2U6Ci0gICAgICBpZiBjdXJfbGlu
ZS5zdHJpcCgpICE9ICcnOgotICAgICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5l
LnJzdHJpcCgpKQotICAgICAgY3VyX2xpbmUgPSBzZWcubHN0cmlwKCkKLSAgaWYgY3VyX2xpbmUu
c3RyaXAoKSAhPSAnJzoKLSAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnN0cmlw
KCkpCi0KLQotZGVmIFdyYXBDb2RlKGxpbmUsIGxpbmVfY29uY2F0LCBvdXRwdXQpOgotICBpbmRl
bnQgPSBsZW4obGluZSkgLSBsZW4obGluZS5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50Kicg
JyAgIyBQcmVmaXggb2YgdGhlIGN1cnJlbnQgbGluZQotICBtYXhfbGVuID0gODAgLSBpbmRlbnQg
LSBsZW4obGluZV9jb25jYXQpICAjIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUK
LSAgbmV3X3ByZWZpeCA9IHByZWZpeCArIDQqJyAnICAjIFByZWZpeCBvZiBhIGNvbnRpbnVhdGlv
biBsaW5lCi0gIG5ld19tYXhfbGVuID0gbWF4X2xlbiAtIDQgICMgTWF4aW11bSBsZW5ndGggb2Yg
YSBjb250aW51YXRpb24gbGluZQotICAjIFByZWZlcnMgdG8gd3JhcCBhIGxpbmUgYWZ0ZXIgYSAn
LCcgb3IgJzsnLgotICBzZWdzID0gW3NlZyBmb3Igc2VnIGluIHJlLnNwbGl0KHInKFteLDtdK1ss
O10/KScsIGxpbmUuc3RyaXAoKSkgaWYgc2VnICE9ICcnXQotICBjdXJfbGluZSA9ICcnICAjIFRo
ZSBjdXJyZW50IGxpbmUgd2l0aG91dCBsZWFkaW5nIHNwYWNlcy4KLSAgZm9yIHNlZyBpbiBzZWdz
OgotICAgICMgSWYgdGhlIGxpbmUgaXMgc3RpbGwgdG9vIGxvbmcsIHdyYXAgYXQgYSBzcGFjZS4K
LSAgICB3aGlsZSBjdXJfbGluZSA9PSAnJyBhbmQgbGVuKHNlZy5zdHJpcCgpKSA+IG1heF9sZW46
Ci0gICAgICBzZWcgPSBzZWcubHN0cmlwKCkKLSAgICAgIHNwbGl0X2F0ID0gc2VnLnJmaW5kKCcg
JywgMCwgbWF4X2xlbikKLSAgICAgIG91dHB1dC5hcHBlbmQocHJlZml4ICsgc2VnWzpzcGxpdF9h
dF0uc3RyaXAoKSArIGxpbmVfY29uY2F0KQotICAgICAgc2VnID0gc2VnW3NwbGl0X2F0ICsgMTpd
Ci0gICAgICBwcmVmaXggPSBuZXdfcHJlZml4Ci0gICAgICBtYXhfbGVuID0gbmV3X21heF9sZW4K
LQotICAgIGlmIGxlbigoY3VyX2xpbmUgKyBzZWcpLnJzdHJpcCgpKSA8IG1heF9sZW46Ci0gICAg
ICBjdXJfbGluZSA9IChjdXJfbGluZSArIHNlZykubHN0cmlwKCkKLSAgICBlbHNlOgotICAgICAg
b3V0cHV0LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5yc3RyaXAoKSArIGxpbmVfY29uY2F0KQot
ICAgICAgcHJlZml4ID0gbmV3X3ByZWZpeAotICAgICAgbWF4X2xlbiA9IG5ld19tYXhfbGVuCi0g
ICAgICBjdXJfbGluZSA9IHNlZy5sc3RyaXAoKQotICBpZiBjdXJfbGluZS5zdHJpcCgpICE9ICcn
OgotICAgIG91dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUuc3RyaXAoKSkKLQotCi1kZWYg
V3JhcFByZXByb2Nlc3NvckRpcmVjdGl2ZShsaW5lLCBvdXRwdXQpOgotICBXcmFwQ29kZShsaW5l
LCAnIFxcJywgb3V0cHV0KQotCi0KLWRlZiBXcmFwUGxhaW5Db2RlKGxpbmUsIG91dHB1dCk6Ci0g
IFdyYXBDb2RlKGxpbmUsICcnLCBvdXRwdXQpCi0KLQotZGVmIElzTXVsdGlMaW5lSVdZVVByYWdt
YShsaW5lKToKLSAgcmV0dXJuIHJlLnNlYXJjaChyJy9cKiBJV1lVIHByYWdtYTogJywgbGluZSkK
LQotCi1kZWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9uZUxpbmVJV1lVUHJhZ21hKGxpbmUpOgot
ICByZXR1cm4gKHJlLm1hdGNoKHInXiMoaWZuZGVmfGRlZmluZXxlbmRpZlxzKi8vKVxzKltcd19d
K1xzKiQnLCBsaW5lKSBvcgotICAgICAgICAgIHJlLm1hdGNoKHInXiNpbmNsdWRlXHMnLCBsaW5l
KSBvcgotICAgICAgICAgICMgRG9uJ3QgYnJlYWsgSVdZVSBwcmFnbWFzLCBlaXRoZXI7IHRoYXQg
Y2F1c2VzIGl3eXUucHkgcHJvYmxlbXMuCi0gICAgICAgICAgcmUuc2VhcmNoKHInLy8gSVdZVSBw
cmFnbWE6ICcsIGxpbmUpKQotCi0KLWRlZiBXcmFwTG9uZ0xpbmUobGluZSwgb3V0cHV0KToKLSAg
bGluZSA9IGxpbmUucnN0cmlwKCkKLSAgaWYgbGVuKGxpbmUpIDw9IDgwOgotICAgIG91dHB1dC5h
cHBlbmQobGluZSkKLSAgZWxpZiBJc1NpbmdsZUxpbmVDb21tZW50KGxpbmUpOgotICAgIGlmIElz
SGVhZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMgVGhl
IHN0eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1YXJk
IGxpbmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0cHV0
LmFwcGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQp
Ci0gIGVsaWYgSXNJblByZXByb2Nlc3NvckRpcmVjdGl2ZShvdXRwdXQsIGxpbmUpOgotICAgIGlm
IElzSGVhZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMg
VGhlIHN0eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1
YXJkIGxpbmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0
cHV0LmFwcGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwUHJlcHJvY2Vzc29yRGlyZWN0
aXZlKGxpbmUsIG91dHB1dCkKLSAgZWxpZiBJc011bHRpTGluZUlXWVVQcmFnbWEobGluZSk6Ci0g
ICAgb3V0cHV0LmFwcGVuZChsaW5lKQotICBlbHNlOgotICAgIFdyYXBQbGFpbkNvZGUobGluZSwg
b3V0cHV0KQotCi0KLWRlZiBCZWF1dGlmeUNvZGUoc3RyaW5nKToKLSAgbGluZXMgPSBzdHJpbmcu
c3BsaXRsaW5lcygpCi0gIG91dHB1dCA9IFtdCi0gIGZvciBsaW5lIGluIGxpbmVzOgotICAgIFdy
YXBMb25nTGluZShsaW5lLCBvdXRwdXQpCi0gIG91dHB1dDIgPSBbbGluZS5yc3RyaXAoKSBmb3Ig
bGluZSBpbiBvdXRwdXRdCi0gIHJldHVybiAnXG4nLmpvaW4ob3V0cHV0MikgKyAnXG4nCi0KLQot
ZGVmIENvbnZlcnRGcm9tUHVtcFNvdXJjZShzcmNfdGV4dCk6Ci0gICIiIlJldHVybiB0aGUgdGV4
dCBnZW5lcmF0ZWQgZnJvbSB0aGUgZ2l2ZW4gUHVtcCBzb3VyY2UgdGV4dC4iIiIKLSAgYXN0ID0g
UGFyc2VUb0FTVChTdHJpcE1ldGFDb21tZW50cyhzcmNfdGV4dCkpCi0gIG91dHB1dCA9IE91dHB1
dCgpCi0gIFJ1bkNvZGUoRW52KCksIGFzdCwgb3V0cHV0KQotICByZXR1cm4gQmVhdXRpZnlDb2Rl
KG91dHB1dC5zdHJpbmcpCi0KLQotZGVmIG1haW4oYXJndik6Ci0gIGlmIGxlbihhcmd2KSA9PSAx
OgotICAgIHByaW50IF9fZG9jX18KLSAgICBzeXMuZXhpdCgxKQotCi0gIGZpbGVfcGF0aCA9IGFy
Z3ZbLTFdCi0gIG91dHB1dF9zdHIgPSBDb252ZXJ0RnJvbVB1bXBTb3VyY2UoZmlsZShmaWxlX3Bh
dGgsICdyJykucmVhZCgpKQotICBpZiBmaWxlX3BhdGguZW5kc3dpdGgoJy5wdW1wJyk6Ci0gICAg
b3V0cHV0X2ZpbGVfcGF0aCA9IGZpbGVfcGF0aFs6LTVdCi0gIGVsc2U6Ci0gICAgb3V0cHV0X2Zp
bGVfcGF0aCA9ICctJwotICBpZiBvdXRwdXRfZmlsZV9wYXRoID09ICctJzoKLSAgICBwcmludCBv
dXRwdXRfc3RyLAotICBlbHNlOgotICAgIG91dHB1dF9maWxlID0gZmlsZShvdXRwdXRfZmlsZV9w
YXRoLCAndycpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJy8vIFRoaXMgZmlsZSB3YXMgR0VORVJB
VEVEIGJ5IGNvbW1hbmQ6XG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKCcvLyAgICAgJXMgJXNc
bicgJQotICAgICAgICAgICAgICAgICAgICAgIChvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKSwg
b3MucGF0aC5iYXNlbmFtZShmaWxlX3BhdGgpKSkKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnLy8g
RE8gTk9UIEVESVQgQlkgSEFORCEhIVxuXG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKG91dHB1
dF9zdHIpCi0gICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6Ci0gIG1haW4oc3lzLmFyZ3YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zY3JpcHRzL3VwbG9hZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMv
dXBsb2FkLnB5CmluZGV4IGM4NTJlNGM5MWUwNmVmN2M0OWUwMzg2ODM1MDlmZmQ5NDk1YzgyMGYu
LmViYTU3MTE0MmY1Yjg3MTE4Mzg2ZWEyMDMwN2IwNDMzYWNhOTg2ZGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvdXBsb2FkLnB5CisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3NjcmlwdHMvdXBsb2FkLnB5CkBAIC0xLDE4ICsxLDMzIEBACiAjIS91c3Iv
YmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IDIwMDcgR29vZ2xlIEluYy4KKyMgQ29weXJp
Z2h0IDIwMDcsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCi0jIExpY2Vu
c2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIp
OwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgg
dGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CiAjCi0jICAgICBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KICMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUg
TGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJu
aW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAiIiJUb29sIGZv
ciB1cGxvYWRpbmcgZGlmZnMgZnJvbSBhIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gdG8gdGhlIGNv
ZGVyZXZpZXcgYXBwLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtYWxsLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWFsbC5jYwpp
bmRleCBiMjE3YTE4MDA2YjBjOGJkYWY0YTlmOWI2ZDA2ZGU0ZmQ4YWQ5ZWVkLi5hZDI5MjkwNWNm
MzgxZDY5ZWJhOTAwOGY1MTk2Y2Y2NDc3YTU2YzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtYWxsLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NyYy9ndGVzdC1hbGwuY2MKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJzcmMvZ3Rlc3Qu
Y2MiCiAjaW5jbHVkZSAic3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MiCiAjaW5jbHVkZSAic3JjL2d0
ZXN0LWZpbGVwYXRoLmNjIgorI2luY2x1ZGUgInNyYy9ndGVzdC1tYXRjaGVycy5jYyIKICNpbmNs
dWRlICJzcmMvZ3Rlc3QtcG9ydC5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtcHJpbnRlcnMuY2Mi
CiAjaW5jbHVkZSAic3JjL2d0ZXN0LXRlc3QtcGFydC5jYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKaW5kZXggYWM4NjYwMzU0Y2FmYWM1ODNh
ZGViMmYyMTMxYmM2YWNhNzgzYzVhNy4uYzNkNmRmY2NhZDdjOTY4YjgzZjE5NzI3NDUwOGVmZDg0
NWRlOTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRl
YXRoLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRo
LXRlc3QuY2MKQEAgLTMxLDYgKzMxLDEwIEBACiAvLyBUaGlzIGZpbGUgaW1wbGVtZW50cyBkZWF0
aCB0ZXN0cy4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCIKKworI2luY2x1
ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8dXRpbGl0eT4KKwogI2luY2x1ZGUgImd0ZXN0L2lu
dGVybmFsL2d0ZXN0LXBvcnQuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rl
c3QuaCIKIApAQCAtNjIsMTAgKzY2LDE2IEBACiAjIGVuZGlmICAvLyBHVEVTVF9PU19RTlgKIAog
IyBpZiBHVEVTVF9PU19GVUNIU0lBCisjICBpbmNsdWRlIDxsaWIvZmRpby9mZC5oPgogIyAgaW5j
bHVkZSA8bGliL2ZkaW8vaW8uaD4KICMgIGluY2x1ZGUgPGxpYi9mZGlvL3NwYXduLmg+CisjICBp
bmNsdWRlIDxsaWIvengvY2hhbm5lbC5oPgorIyAgaW5jbHVkZSA8bGliL3p4L3BvcnQuaD4KKyMg
IGluY2x1ZGUgPGxpYi96eC9wcm9jZXNzLmg+CisjICBpbmNsdWRlIDxsaWIvengvc29ja2V0Lmg+
CiAjICBpbmNsdWRlIDx6aXJjb24vcHJvY2Vzc2FyZ3MuaD4KICMgIGluY2x1ZGUgPHppcmNvbi9z
eXNjYWxscy5oPgorIyAgaW5jbHVkZSA8emlyY29uL3N5c2NhbGxzL3BvbGljeS5oPgogIyAgaW5j
bHVkZSA8emlyY29uL3N5c2NhbGxzL3BvcnQuaD4KICMgZW5kaWYgIC8vIEdURVNUX09TX0ZVQ0hT
SUEKIApAQCAtMTEzLDggKzEyMyw4IEBAIEdURVNUX0RFRklORV9zdHJpbmdfKAogICAgICJJbmRp
Y2F0ZXMgdGhlIGZpbGUsIGxpbmUgbnVtYmVyLCB0ZW1wb3JhbCBpbmRleCBvZiAiCiAgICAgInRo
ZSBzaW5nbGUgZGVhdGggdGVzdCB0byBydW4sIGFuZCBhIGZpbGUgZGVzY3JpcHRvciB0byAiCiAg
ICAgIndoaWNoIGEgc3VjY2VzcyBjb2RlIG1heSBiZSBzZW50LCBhbGwgc2VwYXJhdGVkIGJ5ICIK
LSAgICAidGhlICd8JyBjaGFyYWN0ZXJzLiAgVGhpcyBmbGFnIGlzIHNwZWNpZmllZCBpZiBhbmQg
b25seSBpZiB0aGUgY3VycmVudCAiCi0gICAgInByb2Nlc3MgaXMgYSBzdWItcHJvY2VzcyBsYXVu
Y2hlZCBmb3IgcnVubmluZyBhIHRocmVhZC1zYWZlICIKKyAgICAidGhlICd8JyBjaGFyYWN0ZXJz
LiAgVGhpcyBmbGFnIGlzIHNwZWNpZmllZCBpZiBhbmQgb25seSBpZiB0aGUgIgorICAgICJjdXJy
ZW50IHByb2Nlc3MgaXMgYSBzdWItcHJvY2VzcyBsYXVuY2hlZCBmb3IgcnVubmluZyBhIHRocmVh
ZC1zYWZlICIKICAgICAiZGVhdGggdGVzdC4gIEZPUiBJTlRFUk5BTCBVU0UgT05MWS4iKTsKIH0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogCkBAIC0yMzgsNyArMjQ4LDcgQEAgc3RhdGljIHN0ZDo6
c3RyaW5nIERlYXRoVGVzdFRocmVhZFdhcm5pbmcoc2l6ZV90IHRocmVhZF9jb3VudCkgewogICAg
IG1zZyA8PCAiZGV0ZWN0ZWQgIiA8PCB0aHJlYWRfY291bnQgPDwgIiB0aHJlYWRzLiI7CiAgIH0K
ICAgbXNnIDw8ICIgU2VlICIKLSAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dv
b2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzLyIKKyAgICAgICAgICJodHRwczov
L2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZG9jcy8iCiAgICAgICAg
ICAiYWR2YW5jZWQubWQjZGVhdGgtdGVzdHMtYW5kLXRocmVhZHMiCiAgICAgICA8PCAiIGZvciBt
b3JlIGV4cGxhbmF0aW9uIGFuZCBzdWdnZXN0ZWQgc29sdXRpb25zLCBlc3BlY2lhbGx5IGlmIgog
ICAgICAgPDwgIiB0aGlzIGlzIHRoZSBsYXN0IG1lc3NhZ2UgeW91IHNlZSBiZWZvcmUgeW91ciB0
ZXN0IHRpbWVzIG91dC4iOwpAQCAtMjY2LDggKzI3Niw2IEBAIHN0YXRpYyBjb25zdCBpbnQga0Z1
Y2hzaWFSZWFkUGlwZUZkID0gMzsKIC8vIHN0YXRlbWVudCwgd2hpY2ggaXMgbm90IGFsbG93ZWQ7
IFRIUkVXIG1lYW5zIHRoYXQgdGhlIHRlc3Qgc3RhdGVtZW50CiAvLyByZXR1cm5lZCBjb250cm9s
IGJ5IHRocm93aW5nIGFuIGV4Y2VwdGlvbi4gIElOX1BST0dSRVNTIG1lYW5zIHRoZSB0ZXN0CiAv
LyBoYXMgbm90IHlldCBjb25jbHVkZWQuCi0vLyBGSVhNRTogVW5pZnkgbmFtZXMgYW5kIHBvc3Np
Ymx5IHZhbHVlcyBmb3IKLS8vIEFib3J0UmVhc29uLCBEZWF0aFRlc3RPdXRjb21lLCBhbmQgZmxh
ZyBjaGFyYWN0ZXJzIGFib3ZlLgogZW51bSBEZWF0aFRlc3RPdXRjb21lIHsgSU5fUFJPR1JFU1Ms
IERJRUQsIExJVkVELCBSRVRVUk5FRCwgVEhSRVcgfTsKIAogLy8gUm91dGluZSBmb3IgYWJvcnRp
bmcgdGhlIHByb2dyYW0gd2hpY2ggaXMgc2FmZSB0byBjYWxsIGZyb20gYW4KQEAgLTI4MSw3ICsy
ODksNyBAQCBzdGF0aWMgdm9pZCBEZWF0aFRlc3RBYm9ydChjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSkgewogICAvLyB0aGUgaGVhcCBmb3IgYW55IGFkZGl0aW9uYWwgbm9uLW1pbnVzY3VsZSBt
ZW1vcnkgcmVxdWlyZW1lbnRzLgogICBjb25zdCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIGNv
bnN0IGZsYWcgPQogICAgICAgR2V0VW5pdFRlc3RJbXBsKCktPmludGVybmFsX3J1bl9kZWF0aF90
ZXN0X2ZsYWcoKTsKLSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRy
KSB7CiAgICAgRklMRSogcGFyZW50ID0gcG9zaXg6OkZET3BlbihmbGFnLT53cml0ZV9mZCgpLCAi
dyIpOwogICAgIGZwdXRjKGtEZWF0aFRlc3RJbnRlcm5hbEVycm9yLCBwYXJlbnQpOwogICAgIGZw
cmludGYocGFyZW50LCAiJXMiLCBtZXNzYWdlLmNfc3RyKCkpOwpAQCAtMzYxLDcgKzM2OSw3IEBA
IHN0YXRpYyB2b2lkIEZhaWxGcm9tSW50ZXJuYWxFcnJvcihpbnQgZmQpIHsKIC8vIGZvciB0aGUg
Y3VycmVudCB0ZXN0LgogRGVhdGhUZXN0OjpEZWF0aFRlc3QoKSB7CiAgIFRlc3RJbmZvKiBjb25z
dCBpbmZvID0gR2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIGlmIChp
bmZvID09IE5VTEwpIHsKKyAgaWYgKGluZm8gPT0gbnVsbHB0cikgewogICAgIERlYXRoVGVzdEFi
b3J0KCJDYW5ub3QgcnVuIGEgZGVhdGggdGVzdCBvdXRzaWRlIG9mIGEgVEVTVCBvciAiCiAgICAg
ICAgICAgICAgICAgICAgIlRFU1RfRiBjb25zdHJ1Y3QiKTsKICAgfQpAQCAtMzY5LDEwICszNzcs
MTEgQEAgRGVhdGhUZXN0OjpEZWF0aFRlc3QoKSB7CiAKIC8vIENyZWF0ZXMgYW5kIHJldHVybnMg
YSBkZWF0aCB0ZXN0IGJ5IGRpc3BhdGNoaW5nIHRvIHRoZSBjdXJyZW50CiAvLyBkZWF0aCB0ZXN0
IGZhY3RvcnkuCi1ib29sIERlYXRoVGVzdDo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwg
Y29uc3QgUkUqIHJlZ2V4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxl
LCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkgeworYm9vbCBEZWF0aFRlc3Q6OkNyZWF0ZShj
b25zdCBjaGFyKiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoZXI8Y29u
c3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLCBjb25zdCBjaGFyKiBmaWxlLAorICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkgewogICByZXR1cm4gR2V0VW5p
dFRlc3RJbXBsKCktPmRlYXRoX3Rlc3RfZmFjdG9yeSgpLT5DcmVhdGUoCi0gICAgICBzdGF0ZW1l
bnQsIHJlZ2V4LCBmaWxlLCBsaW5lLCB0ZXN0KTsKKyAgICAgIHN0YXRlbWVudCwgc3RkOjptb3Zl
KG1hdGNoZXIpLCBmaWxlLCBsaW5lLCB0ZXN0KTsKIH0KIAogY29uc3QgY2hhciogRGVhdGhUZXN0
OjpMYXN0TWVzc2FnZSgpIHsKQEAgLTM4OCw5ICszOTcsOSBAQCBzdGQ6OnN0cmluZyBEZWF0aFRl
c3Q6Omxhc3RfZGVhdGhfdGVzdF9tZXNzYWdlXzsKIC8vIFByb3ZpZGVzIGNyb3NzIHBsYXRmb3Jt
IGltcGxlbWVudGF0aW9uIGZvciBzb21lIGRlYXRoIGZ1bmN0aW9uYWxpdHkuCiBjbGFzcyBEZWF0
aFRlc3RJbXBsIDogcHVibGljIERlYXRoVGVzdCB7CiAgcHJvdGVjdGVkOgotICBEZWF0aFRlc3RJ
bXBsKGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBjb25zdCBSRSogYV9yZWdleCkKKyAgRGVhdGhU
ZXN0SW1wbChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmlu
ZyY+IG1hdGNoZXIpCiAgICAgICA6IHN0YXRlbWVudF8oYV9zdGF0ZW1lbnQpLAotICAgICAgICBy
ZWdleF8oYV9yZWdleCksCisgICAgICAgIG1hdGNoZXJfKHN0ZDo6bW92ZShtYXRjaGVyKSksCiAg
ICAgICAgIHNwYXduZWRfKGZhbHNlKSwKICAgICAgICAgc3RhdHVzXygtMSksCiAgICAgICAgIG91
dGNvbWVfKElOX1BST0dSRVNTKSwKQEAgLTM5OCwxMyArNDA3LDEyIEBAIGNsYXNzIERlYXRoVGVz
dEltcGwgOiBwdWJsaWMgRGVhdGhUZXN0IHsKICAgICAgICAgd3JpdGVfZmRfKC0xKSB7fQogCiAg
IC8vIHJlYWRfZmRfIGlzIGV4cGVjdGVkIHRvIGJlIGNsb3NlZCBhbmQgY2xlYXJlZCBieSBhIGRl
cml2ZWQgY2xhc3MuCi0gIH5EZWF0aFRlc3RJbXBsKCkgeyBHVEVTVF9ERUFUSF9URVNUX0NIRUNL
XyhyZWFkX2ZkXyA9PSAtMSk7IH0KKyAgfkRlYXRoVGVzdEltcGwoKSBvdmVycmlkZSB7IEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKHJlYWRfZmRfID09IC0xKTsgfQogCi0gIHZvaWQgQWJvcnQoQWJv
cnRSZWFzb24gcmVhc29uKTsKLSAgdmlydHVhbCBib29sIFBhc3NlZChib29sIHN0YXR1c19vayk7
CisgIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSBvdmVycmlkZTsKKyAgYm9vbCBQYXNz
ZWQoYm9vbCBzdGF0dXNfb2spIG92ZXJyaWRlOwogCiAgIGNvbnN0IGNoYXIqIHN0YXRlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRlbWVudF87IH0KLSAgY29uc3QgUkUqIHJlZ2V4KCkgY29uc3Qg
eyByZXR1cm4gcmVnZXhfOyB9CiAgIGJvb2wgc3Bhd25lZCgpIGNvbnN0IHsgcmV0dXJuIHNwYXdu
ZWRfOyB9CiAgIHZvaWQgc2V0X3NwYXduZWQoYm9vbCBpc19zcGF3bmVkKSB7IHNwYXduZWRfID0g
aXNfc3Bhd25lZDsgfQogICBpbnQgc3RhdHVzKCkgY29uc3QgeyByZXR1cm4gc3RhdHVzXzsgfQpA
QCAtNDIyLDEzICs0MzAsMTUgQEAgY2xhc3MgRGVhdGhUZXN0SW1wbCA6IHB1YmxpYyBEZWF0aFRl
c3QgewogICAvLyBjYXNlIG9mIHVuZXhwZWN0ZWQgY29kZXMuCiAgIHZvaWQgUmVhZEFuZEludGVy
cHJldFN0YXR1c0J5dGUoKTsKIAorICAvLyBSZXR1cm5zIHN0ZGVyciBvdXRwdXQgZnJvbSB0aGUg
Y2hpbGQgcHJvY2Vzcy4KKyAgdmlydHVhbCBzdGQ6OnN0cmluZyBHZXRFcnJvckxvZ3MoKTsKKwog
IHByaXZhdGU6CiAgIC8vIFRoZSB0ZXh0dWFsIGNvbnRlbnQgb2YgdGhlIGNvZGUgdGhpcyBvYmpl
Y3QgaXMgdGVzdGluZy4gIFRoaXMgY2xhc3MKICAgLy8gZG9lc24ndCBvd24gdGhpcyBzdHJpbmcg
YW5kIHNob3VsZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCiAgIGNvbnN0IGNoYXIqIGNvbnN0
IHN0YXRlbWVudF87Ci0gIC8vIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gd2hpY2ggdGVzdCBvdXRw
dXQgbXVzdCBtYXRjaC4gIERlYXRoVGVzdEltcGwKLSAgLy8gZG9lc24ndCBvd24gdGhpcyBvYmpl
Y3QgYW5kIHNob3VsZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCi0gIGNvbnN0IFJFKiBjb25z
dCByZWdleF87CisgIC8vIEEgbWF0Y2hlciB0aGF0J3MgZXhwZWN0ZWQgdG8gbWF0Y2ggdGhlIHN0
ZGVyciBvdXRwdXQgYnkgdGhlIGNoaWxkIHByb2Nlc3MuCisgIE1hdGNoZXI8Y29uc3Qgc3RkOjpz
dHJpbmcmPiBtYXRjaGVyXzsKICAgLy8gVHJ1ZSBpZiB0aGUgZGVhdGggdGVzdCBjaGlsZCBwcm9j
ZXNzIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzcGF3bmVkLgogICBib29sIHNwYXduZWRfOwogICAv
LyBUaGUgZXhpdCBzdGF0dXMgb2YgdGhlIGNoaWxkIHByb2Nlc3MuCkBAIC00OTAsNiArNTAwLDEw
IEBAIHZvaWQgRGVhdGhUZXN0SW1wbDo6UmVhZEFuZEludGVycHJldFN0YXR1c0J5dGUoKSB7CiAg
IHNldF9yZWFkX2ZkKC0xKTsKIH0KIAorc3RkOjpzdHJpbmcgRGVhdGhUZXN0SW1wbDo6R2V0RXJy
b3JMb2dzKCkgeworICByZXR1cm4gR2V0Q2FwdHVyZWRTdGRlcnIoKTsKK30KKwogLy8gU2lnbmFs
cyB0aGF0IHRoZSBkZWF0aCB0ZXN0IGNvZGUgd2hpY2ggc2hvdWxkIGhhdmUgZXhpdGVkLCBkaWRu
J3QuCiAvLyBTaG91bGQgYmUgY2FsbGVkIG9ubHkgaW4gYSBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nl
c3MuCiAvLyBXcml0ZXMgYSBzdGF0dXMgYnl0ZSB0byB0aGUgY2hpbGQncyBzdGF0dXMgZmlsZSBk
ZXNjcmlwdG9yLCB0aGVuCkBAIC01NDMsMjIgKzU1NywyMSBAQCBzdGF0aWMgOjpzdGQ6OnN0cmlu
ZyBGb3JtYXREZWF0aFRlc3RPdXRwdXQoY29uc3QgOjpzdGQ6OnN0cmluZyYgb3V0cHV0KSB7CiAv
LyAgICAgICAgICAgICBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSB3YWl0KDIpLiBPbiBXaW5k
b3dzLCB0aGlzIGlzIHRoZQogLy8gICAgICAgICAgICAgdmFsdWUgc3VwcGxpZWQgdG8gdGhlIEV4
aXRQcm9jZXNzKCkgQVBJIG9yIGEgbnVtZXJpYyBjb2RlCiAvLyAgICAgICAgICAgICBvZiB0aGUg
ZXhjZXB0aW9uIHRoYXQgdGVybWluYXRlZCB0aGUgcHJvZ3JhbS4KLS8vICAgcmVnZXg6ICAgIEEg
cmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0byBiZSBhcHBsaWVkIHRvCi0vLyAgICAgICAgICAg
ICB0aGUgdGVzdCdzIGNhcHR1cmVkIHN0YW5kYXJkIGVycm9yIG91dHB1dDsgdGhlIGRlYXRoIHRl
c3QKLS8vICAgICAgICAgICAgIGZhaWxzIGlmIGl0IGRvZXMgbm90IG1hdGNoLgorLy8gICBtYXRj
aGVyXzogQSBtYXRjaGVyIHRoYXQncyBleHBlY3RlZCB0byBtYXRjaCB0aGUgc3RkZXJyIG91dHB1
dCBieSB0aGUgY2hpbGQKKy8vICAgICAgICAgICAgIHByb2Nlc3MuCiAvLwogLy8gQXJndW1lbnQ6
CiAvLyAgIHN0YXR1c19vazogdHJ1ZSBpZiBleGl0X3N0YXR1cyBpcyBhY2NlcHRhYmxlIGluIHRo
ZSBjb250ZXh0IG9mCiAvLyAgICAgICAgICAgICAgdGhpcyBwYXJ0aWN1bGFyIGRlYXRoIHRlc3Qs
IHdoaWNoIGZhaWxzIGlmIGl0IGlzIGZhbHNlCiAvLwotLy8gUmV0dXJucyB0cnVlIGlmZiBhbGwg
b2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldC4gIE90aGVyd2lzZSwgdGhlCi0vLyBmaXJz
dCBmYWlsaW5nIGNvbmRpdGlvbiwgaW4gdGhlIG9yZGVyIGdpdmVuIGFib3ZlLCBpcyB0aGUgb25l
IHRoYXQgaXMKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBhbGwgb2YgdGhlIGFib3Zl
IGNvbmRpdGlvbnMgYXJlIG1ldC4gIE90aGVyd2lzZSwKKy8vIHRoZSBmaXJzdCBmYWlsaW5nIGNv
bmRpdGlvbiwgaW4gdGhlIG9yZGVyIGdpdmVuIGFib3ZlLCBpcyB0aGUgb25lIHRoYXQgaXMKIC8v
IHJlcG9ydGVkLiBBbHNvIHNldHMgdGhlIGxhc3QgZGVhdGggdGVzdCBtZXNzYWdlIHN0cmluZy4K
IGJvb2wgRGVhdGhUZXN0SW1wbDo6UGFzc2VkKGJvb2wgc3RhdHVzX29rKSB7CiAgIGlmICghc3Bh
d25lZCgpKQogICAgIHJldHVybiBmYWxzZTsKIAotICBjb25zdCBzdGQ6OnN0cmluZyBlcnJvcl9t
ZXNzYWdlID0gR2V0Q2FwdHVyZWRTdGRlcnIoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZXJyb3Jf
bWVzc2FnZSA9IEdldEVycm9yTG9ncygpOwogCiAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICBN
ZXNzYWdlIGJ1ZmZlcjsKQEAgLTU3OSwxOCArNTkyLDE1IEBAIGJvb2wgRGVhdGhUZXN0SW1wbDo6
UGFzc2VkKGJvb2wgc3RhdHVzX29rKSB7CiAgICAgICBicmVhazsKICAgICBjYXNlIERJRUQ6CiAg
ICAgICBpZiAoc3RhdHVzX29rKSB7Ci0jIGlmIEdURVNUX1VTRVNfUENSRQotICAgICAgICAvLyBQ
Q1JFIHJlZ2V4ZXMgc3VwcG9ydCBlbWJlZGRlZCBOVUxzLgotICAgICAgICBjb25zdCBib29sIG1h
dGNoZWQgPSBSRTo6UGFydGlhbE1hdGNoKGVycm9yX21lc3NhZ2UsICpyZWdleCgpKTsKLSMgZWxz
ZQotICAgICAgICBjb25zdCBib29sIG1hdGNoZWQgPSBSRTo6UGFydGlhbE1hdGNoKGVycm9yX21l
c3NhZ2UuY19zdHIoKSwgKnJlZ2V4KCkpOwotIyBlbmRpZiAgLy8gR1RFU1RfVVNFU19QQ1JFCi0g
ICAgICAgIGlmIChtYXRjaGVkKSB7CisgICAgICAgIGlmIChtYXRjaGVyXy5NYXRjaGVzKGVycm9y
X21lc3NhZ2UpKSB7CiAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIHN0cmVhbTsKKyAgICAgICAgICBtYXRjaGVy
Xy5EZXNjcmliZVRvKCZzdHJlYW0pOwogICAgICAgICAgIGJ1ZmZlciA8PCAiICAgIFJlc3VsdDog
ZGllZCBidXQgbm90IHdpdGggZXhwZWN0ZWQgZXJyb3IuXG4iCi0gICAgICAgICAgICAgICAgIDw8
ICIgIEV4cGVjdGVkOiAiIDw8IHJlZ2V4KCktPnBhdHRlcm4oKSA8PCAiXG4iCi0gICAgICAgICAg
ICAgICAgIDw8ICJBY3R1YWwgbXNnOlxuIiA8PCBGb3JtYXREZWF0aFRlc3RPdXRwdXQoZXJyb3Jf
bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgIDw8ICIgIEV4cGVjdGVkOiAiIDw8IHN0cmVhbS5z
dHIoKSA8PCAiXG4iCisgICAgICAgICAgICAgICAgIDw8ICJBY3R1YWwgbXNnOlxuIgorICAgICAg
ICAgICAgICAgICA8PCBGb3JtYXREZWF0aFRlc3RPdXRwdXQoZXJyb3JfbWVzc2FnZSk7CiAgICAg
ICAgIH0KICAgICAgIH0gZWxzZSB7CiAgICAgICAgIGJ1ZmZlciA8PCAiICAgIFJlc3VsdDogZGll
ZCBidXQgbm90IHdpdGggZXhwZWN0ZWQgZXhpdCBjb2RlOlxuIgpAQCAtNjM5LDExICs2NDksMTEg
QEAgYm9vbCBEZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsKIC8vCiBjbGFz
cyBXaW5kb3dzRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1YmxpYzoKLSAg
V2luZG93c0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwKLSAgICAgICAgICAgICAg
ICAgICBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBm
aWxlLAotICAgICAgICAgICAgICAgICAgIGludCBsaW5lKQotICAgICAgOiBEZWF0aFRlc3RJbXBs
KGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHt9CisgIFdp
bmRvd3NEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3Rk
OjpzdHJpbmcmPiBtYXRjaGVyLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUs
IGludCBsaW5lKQorICAgICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVtZW50LCBzdGQ6Om1vdmUo
bWF0Y2hlcikpLAorICAgICAgICBmaWxlXyhmaWxlKSwKKyAgICAgICAgbGluZV8obGluZSkge30K
IAogICAvLyBBbGwgb2YgdGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9t
IERlYXRoVGVzdC4KICAgdmlydHVhbCBpbnQgV2FpdCgpOwpAQCAtNzIwLDcgKzczMCw3IEBAIERl
YXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKICAgY29u
c3QgVGVzdEluZm8qIGNvbnN0IGluZm8gPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogICBj
b25zdCBpbnQgZGVhdGhfdGVzdF9pbmRleCA9IGluZm8tPnJlc3VsdCgpLT5kZWF0aF90ZXN0X2Nv
dW50KCk7CiAKLSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRyKSB7
CiAgICAgLy8gUGFyc2VJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcoKSBoYXMgcGVyZm9ybWVkIGFs
bCB0aGUgbmVjZXNzYXJ5CiAgICAgLy8gcHJvY2Vzc2luZy4KICAgICBzZXRfd3JpdGVfZmQoZmxh
Zy0+d3JpdGVfZmQoKSk7CkBAIC03MjksOCArNzM5LDggQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBX
aW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogCiAgIC8vIFdpbmRvd3NEZWF0aFRlc3Qg
dXNlcyBhbiBhbm9ueW1vdXMgcGlwZSB0byBjb21tdW5pY2F0ZSByZXN1bHRzIG9mCiAgIC8vIGEg
ZGVhdGggdGVzdC4KLSAgU0VDVVJJVFlfQVRUUklCVVRFUyBoYW5kbGVzX2FyZV9pbmhlcml0YWJs
ZSA9IHsKLSAgICBzaXplb2YoU0VDVVJJVFlfQVRUUklCVVRFUyksIE5VTEwsIFRSVUUgfTsKKyAg
U0VDVVJJVFlfQVRUUklCVVRFUyBoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSA9IHtzaXplb2YoU0VD
VVJJVFlfQVRUUklCVVRFUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVsbHB0ciwgVFJVRX07CiAgIEhBTkRMRSByZWFkX2hhbmRsZSwgd3JpdGVf
aGFuZGxlOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKICAgICAgIDo6Q3JlYXRlUGlwZSgm
cmVhZF9oYW5kbGUsICZ3cml0ZV9oYW5kbGUsICZoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSwKQEAg
LTc0MSwxMyArNzUxLDEzIEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6
QXNzdW1lUm9sZSgpIHsKICAgd3JpdGVfaGFuZGxlXy5SZXNldCh3cml0ZV9oYW5kbGUpOwogICBl
dmVudF9oYW5kbGVfLlJlc2V0KDo6Q3JlYXRlRXZlbnQoCiAgICAgICAmaGFuZGxlc19hcmVfaW5o
ZXJpdGFibGUsCi0gICAgICBUUlVFLCAgICAvLyBUaGUgZXZlbnQgd2lsbCBhdXRvbWF0aWNhbGx5
IHJlc2V0IHRvIG5vbi1zaWduYWxlZCBzdGF0ZS4KLSAgICAgIEZBTFNFLCAgIC8vIFRoZSBpbml0
aWFsIHN0YXRlIGlzIG5vbi1zaWduYWxsZWQuCi0gICAgICBOVUxMKSk7ICAvLyBUaGUgZXZlbiBp
cyB1bm5hbWVkLgotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhldmVudF9oYW5kbGVfLkdldCgp
ICE9IE5VTEwpOwotICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6
OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iICsK
LSAgICAgIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgICAg
ICBUUlVFLCAgICAgICAvLyBUaGUgZXZlbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc2V0IHRvIG5v
bi1zaWduYWxlZCBzdGF0ZS4KKyAgICAgIEZBTFNFLCAgICAgIC8vIFRoZSBpbml0aWFsIHN0YXRl
IGlzIG5vbi1zaWduYWxsZWQuCisgICAgICBudWxscHRyKSk7ICAvLyBUaGUgZXZlbiBpcyB1bm5h
bWVkLgorICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhldmVudF9oYW5kbGVfLkdldCgpICE9IG51
bGxwdHIpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9IHN0ZDo6c3RyaW5nKCIt
LSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrRmlsdGVyRmxhZyArICI9IiArIGluZm8tPnRlc3Rfc3VpdGVfbmFtZSgpICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBpbmZvLT5uYW1lKCk7CiAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGludGVybmFsX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBH
VEVTVF9GTEFHX1BSRUZJWF8gKyBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnICsKICAgICAgICI9
IiArIGZpbGVfICsgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmVfKSArICJ8IiArCkBAIC03
NjAsMTAgKzc3MCw5IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNz
dW1lUm9sZSgpIHsKICAgICAgICJ8IiArIFN0cmVhbWFibGVUb1N0cmluZyhyZWludGVycHJldF9j
YXN0PHNpemVfdD4oZXZlbnRfaGFuZGxlXy5HZXQoKSkpOwogCiAgIGNoYXIgZXhlY3V0YWJsZV9w
YXRoW19NQVhfUEFUSCArIDFdOyAgLy8gTk9MSU5UCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KAotICAgICAgX01BWF9QQVRIICsgMSAhPSA6OkdldE1vZHVsZUZpbGVOYW1lQShOVUxMLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NQVhfUEFUSCkp
OworICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhfTUFYX1BBVEggKyAxICE9IDo6R2V0TW9kdWxl
RmlsZU5hbWVBKG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NQVhf
UEFUSCkpOwogCiAgIHN0ZDo6c3RyaW5nIGNvbW1hbmRfbGluZSA9CiAgICAgICBzdGQ6OnN0cmlu
Zyg6OkdldENvbW1hbmRMaW5lQSgpKSArICIgIiArIGZpbHRlcl9mbGFnICsgIiBcIiIgKwpAQCAt
Nzg0LDE3ICs3OTMsMTYgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpB
c3N1bWVSb2xlKCkgewogICBzdGFydHVwX2luZm8uaFN0ZEVycm9yID0gOjpHZXRTdGRIYW5kbGUo
U1REX0VSUk9SX0hBTkRMRSk7CiAKICAgUFJPQ0VTU19JTkZPUk1BVElPTiBwcm9jZXNzX2luZm87
Ci0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKDo6Q3JlYXRlUHJvY2Vzc0EoCi0gICAgICBleGVj
dXRhYmxlX3BhdGgsCi0gICAgICBjb25zdF9jYXN0PGNoYXIqPihjb21tYW5kX2xpbmUuY19zdHIo
KSksCi0gICAgICBOVUxMLCAgIC8vIFJldHVuZWQgcHJvY2VzcyBoYW5kbGUgaXMgbm90IGluaGVy
aXRhYmxlLgotICAgICAgTlVMTCwgICAvLyBSZXR1bmVkIHRocmVhZCBoYW5kbGUgaXMgbm90IGlu
aGVyaXRhYmxlLgotICAgICAgVFJVRSwgICAvLyBDaGlsZCBpbmhlcml0cyBhbGwgaW5oZXJpdGFi
bGUgaGFuZGxlcyAoZm9yIHdyaXRlX2hhbmRsZV8pLgotICAgICAgMHgwLCAgICAvLyBEZWZhdWx0
IGNyZWF0aW9uIGZsYWdzLgotICAgICAgTlVMTCwgICAvLyBJbmhlcml0IHRoZSBwYXJlbnQncyBl
bnZpcm9ubWVudC4KLSAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3Jr
aW5nX2RpcigpLAotICAgICAgJnN0YXJ0dXBfaW5mbywKLSAgICAgICZwcm9jZXNzX2luZm8pICE9
IEZBTFNFKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oCisgICAgICA6OkNyZWF0ZVByb2Nl
c3NBKAorICAgICAgICAgIGV4ZWN1dGFibGVfcGF0aCwgY29uc3RfY2FzdDxjaGFyKj4oY29tbWFu
ZF9saW5lLmNfc3RyKCkpLAorICAgICAgICAgIG51bGxwdHIsICAvLyBSZXR1bmVkIHByb2Nlc3Mg
aGFuZGxlIGlzIG5vdCBpbmhlcml0YWJsZS4KKyAgICAgICAgICBudWxscHRyLCAgLy8gUmV0dW5l
ZCB0aHJlYWQgaGFuZGxlIGlzIG5vdCBpbmhlcml0YWJsZS4KKyAgICAgICAgICBUUlVFLCAgLy8g
Q2hpbGQgaW5oZXJpdHMgYWxsIGluaGVyaXRhYmxlIGhhbmRsZXMgKGZvciB3cml0ZV9oYW5kbGVf
KS4KKyAgICAgICAgICAweDAsICAgLy8gRGVmYXVsdCBjcmVhdGlvbiBmbGFncy4KKyAgICAgICAg
ICBudWxscHRyLCAgLy8gSW5oZXJpdCB0aGUgcGFyZW50J3MgZW52aXJvbm1lbnQuCisgICAgICAg
ICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICZzdGFy
dHVwX2luZm8sCisgICAgICAgICAgJnByb2Nlc3NfaW5mbykgIT0gRkFMU0UpOwogICBjaGlsZF9o
YW5kbGVfLlJlc2V0KHByb2Nlc3NfaW5mby5oUHJvY2Vzcyk7CiAgIDo6Q2xvc2VIYW5kbGUocHJv
Y2Vzc19pbmZvLmhUaHJlYWQpOwogICBzZXRfc3Bhd25lZCh0cnVlKTsKQEAgLTgwNSwzOCArODEz
LDM0IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgp
IHsKIAogY2xhc3MgRnVjaHNpYURlYXRoVGVzdCA6IHB1YmxpYyBEZWF0aFRlc3RJbXBsIHsKICBw
dWJsaWM6Ci0gIEZ1Y2hzaWFEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsCi0gICAg
ICAgICAgICAgICAgICAgY29uc3QgUkUqIGFfcmVnZXgsCi0gICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZmlsZSwKLSAgICAgICAgICAgICAgICAgICBpbnQgbGluZSkKLSAgICAgIDogRGVh
dGhUZXN0SW1wbChhX3N0YXRlbWVudCwgYV9yZWdleCksIGZpbGVfKGZpbGUpLCBsaW5lXyhsaW5l
KSB7fQotICB2aXJ0dWFsIH5GdWNoc2lhRGVhdGhUZXN0KCkgewotICAgIHp4X3N0YXR1c190IHN0
YXR1cyA9IHp4X2hhbmRsZV9jbG9zZShjaGlsZF9wcm9jZXNzXyk7Ci0gICAgR1RFU1RfREVBVEhf
VEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgICBzdGF0dXMgPSB6eF9oYW5kbGVfY2xv
c2UocG9ydF8pOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7
Ci0gIH0KKyAgRnVjaHNpYURlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hl
cjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZmlsZSwgaW50IGxpbmUpCisgICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IHN0ZDo6bW92ZShtYXRjaGVyKSksCisgICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5l
XyhsaW5lKSB7fQogCiAgIC8vIEFsbCBvZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5o
ZXJpdGVkIGZyb20gRGVhdGhUZXN0LgotICB2aXJ0dWFsIGludCBXYWl0KCk7Ci0gIHZpcnR1YWwg
VGVzdFJvbGUgQXNzdW1lUm9sZSgpOworICBpbnQgV2FpdCgpIG92ZXJyaWRlOworICBUZXN0Um9s
ZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7CisgIHN0ZDo6c3RyaW5nIEdldEVycm9yTG9ncygpIG92
ZXJyaWRlOwogCiAgcHJpdmF0ZToKICAgLy8gVGhlIG5hbWUgb2YgdGhlIGZpbGUgaW4gd2hpY2gg
dGhlIGRlYXRoIHRlc3QgaXMgbG9jYXRlZC4KICAgY29uc3QgY2hhciogY29uc3QgZmlsZV87CiAg
IC8vIFRoZSBsaW5lIG51bWJlciBvbiB3aGljaCB0aGUgZGVhdGggdGVzdCBpcyBsb2NhdGVkLgog
ICBjb25zdCBpbnQgbGluZV87CisgIC8vIFRoZSBzdGRlcnIgZGF0YSBjYXB0dXJlZCBieSB0aGUg
Y2hpbGQgcHJvY2Vzcy4KKyAgc3RkOjpzdHJpbmcgY2FwdHVyZWRfc3RkZXJyXzsKIAotICB6eF9o
YW5kbGVfdCBjaGlsZF9wcm9jZXNzXyA9IFpYX0hBTkRMRV9JTlZBTElEOwotICB6eF9oYW5kbGVf
dCBwb3J0XyA9IFpYX0hBTkRMRV9JTlZBTElEOworICB6eDo6cHJvY2VzcyBjaGlsZF9wcm9jZXNz
XzsKKyAgeng6OmNoYW5uZWwgZXhjZXB0aW9uX2NoYW5uZWxfOworICB6eDo6c29ja2V0IHN0ZGVy
cl9zb2NrZXRfOwogfTsKIAogLy8gVXRpbGl0eSBjbGFzcyBmb3IgYWNjdW11bGF0aW5nIGNvbW1h
bmQtbGluZSBhcmd1bWVudHMuCiBjbGFzcyBBcmd1bWVudHMgewogIHB1YmxpYzoKLSAgQXJndW1l
bnRzKCkgewotICAgIGFyZ3NfLnB1c2hfYmFjayhOVUxMKTsKLSAgfQorICBBcmd1bWVudHMoKSB7
IGFyZ3NfLnB1c2hfYmFjayhudWxscHRyKTsgfQogCiAgIH5Bcmd1bWVudHMoKSB7CiAgICAgZm9y
IChzdGQ6OnZlY3RvcjxjaGFyKj46Oml0ZXJhdG9yIGkgPSBhcmdzXy5iZWdpbigpOyBpICE9IGFy
Z3NfLmVuZCgpOwpAQCAtODcyLDUxICs4NzYsODYgQEAgY2xhc3MgQXJndW1lbnRzIHsKIC8vIHN0
YXR1cywgb3IgMCBpZiBubyBjaGlsZCBwcm9jZXNzIGV4aXN0cy4gIEFzIGEgc2lkZSBlZmZlY3Qs
IHNldHMgdGhlCiAvLyBvdXRjb21lIGRhdGEgbWVtYmVyLgogaW50IEZ1Y2hzaWFEZWF0aFRlc3Q6
OldhaXQoKSB7CisgIGNvbnN0IGludCBrUHJvY2Vzc0tleSA9IDA7CisgIGNvbnN0IGludCBrU29j
a2V0S2V5ID0gMTsKKyAgY29uc3QgaW50IGtFeGNlcHRpb25LZXkgPSAyOworCiAgIGlmICghc3Bh
d25lZCgpKQogICAgIHJldHVybiAwOwogCi0gIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBj
aGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0ZS4KKyAgLy8gQ3JlYXRlIGEgcG9ydCB0byB3YWl0IGZv
ciBzb2NrZXQvdGFzay9leGNlcHRpb24gZXZlbnRzLgogICB6eF9zdGF0dXNfdCBzdGF0dXNfeng7
Ci0gIHN0YXR1c196eCA9IHp4X29iamVjdF93YWl0X2FzeW5jKGNoaWxkX3Byb2Nlc3NfLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0XywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCAvKiBrZXkgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFpYX1BST0NFU1NfVEVSTUlOQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWlhfV0FJVF9BU1lOQ19PTkNFKTsKKyAgeng6OnBvcnQgcG9ydDsKKyAgc3Rh
dHVzX3p4ID0geng6OnBvcnQ6OmNyZWF0ZSgwLCAmcG9ydCk7CiAgIEdURVNUX0RFQVRIX1RFU1Rf
Q0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKLSAgLy8gV2FpdCBmb3IgaXQgdG8gdGVybWlu
YXRlLCBvciBhbiBleGNlcHRpb24gdG8gYmUgcmVjZWl2ZWQuCi0gIHp4X3BvcnRfcGFja2V0X3Qg
cGFja2V0OwotICBzdGF0dXNfenggPSB6eF9wb3J0X3dhaXQocG9ydF8sIFpYX1RJTUVfSU5GSU5J
VEUsICZwYWNrZXQpOworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciB0aGUgY2hpbGQgcHJvY2Vz
cyB0byB0ZXJtaW5hdGUuCisgIHN0YXR1c196eCA9IGNoaWxkX3Byb2Nlc3NfLndhaXRfYXN5bmMo
CisgICAgICBwb3J0LCBrUHJvY2Vzc0tleSwgWlhfUFJPQ0VTU19URVJNSU5BVEVELCAwKTsKICAg
R1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKIAotICBpZiAoWlhf
UEtUX0lTX0VYQ0VQVElPTihwYWNrZXQudHlwZSkpIHsKLSAgICAvLyBQcm9jZXNzIGVuY291bnRl
cmVkIGFuIGV4Y2VwdGlvbi4gS2lsbCBpdCBkaXJlY3RseSByYXRoZXIgdGhhbiBsZXR0aW5nCi0g
ICAgLy8gb3RoZXIgaGFuZGxlcnMgcHJvY2VzcyB0aGUgZXZlbnQuCi0gICAgc3RhdHVzX3p4ID0g
enhfdGFza19raWxsKGNoaWxkX3Byb2Nlc3NfKTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNL
XyhzdGF0dXNfenggPT0gWlhfT0spOworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciB0aGUgc29j
a2V0IHRvIGJlIHJlYWRhYmxlIG9yIGNsb3NlZC4KKyAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tl
dF8ud2FpdF9hc3luYygKKyAgICAgIHBvcnQsIGtTb2NrZXRLZXksIFpYX1NPQ0tFVF9SRUFEQUJM
RSB8IFpYX1NPQ0tFVF9QRUVSX0NMT1NFRCwgMCk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KHN0YXR1c196eCA9PSBaWF9PSyk7CisKKyAgLy8gUmVnaXN0ZXIgdG8gd2FpdCBmb3IgYW4gZXhj
ZXB0aW9uLgorICBzdGF0dXNfenggPSBleGNlcHRpb25fY2hhbm5lbF8ud2FpdF9hc3luYygKKyAg
ICAgIHBvcnQsIGtFeGNlcHRpb25LZXksIFpYX0NIQU5ORUxfUkVBREFCTEUsIDApOworICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwogCi0gICAgLy8gTm93IHdh
aXQgZm9yIHxjaGlsZF9wcm9jZXNzX3wgdG8gdGVybWluYXRlLgotICAgIHp4X3NpZ25hbHNfdCBz
aWduYWxzID0gMDsKLSAgICBzdGF0dXNfenggPSB6eF9vYmplY3Rfd2FpdF9vbmUoCi0gICAgICAg
IGNoaWxkX3Byb2Nlc3NfLCBaWF9QUk9DRVNTX1RFUk1JTkFURUQsIFpYX1RJTUVfSU5GSU5JVEUs
ICZzaWduYWxzKTsKKyAgYm9vbCBwcm9jZXNzX3Rlcm1pbmF0ZWQgPSBmYWxzZTsKKyAgYm9vbCBz
b2NrZXRfY2xvc2VkID0gZmFsc2U7CisgIGRvIHsKKyAgICB6eF9wb3J0X3BhY2tldF90IHBhY2tl
dCA9IHt9OworICAgIHN0YXR1c196eCA9IHBvcnQud2FpdCh6eDo6dGltZTo6aW5maW5pdGUoKSwg
JnBhY2tldCk7CiAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09L
KTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzaWduYWxzICYgWlhfUFJPQ0VTU19URVJN
SU5BVEVEKTsKLSAgfSBlbHNlIHsKLSAgICAvLyBQcm9jZXNzIHRlcm1pbmF0ZWQuCi0gICAgR1RF
U1RfREVBVEhfVEVTVF9DSEVDS18oWlhfUEtUX0lTX1NJR05BTF9PTkUocGFja2V0LnR5cGUpKTsK
LSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2VydmVkICYgWlhf
UFJPQ0VTU19URVJNSU5BVEVEKTsKLSAgfQorCisgICAgaWYgKHBhY2tldC5rZXkgPT0ga0V4Y2Vw
dGlvbktleSkgeworICAgICAgLy8gUHJvY2VzcyBlbmNvdW50ZXJlZCBhbiBleGNlcHRpb24uIEtp
bGwgaXQgZGlyZWN0bHkgcmF0aGVyIHRoYW4KKyAgICAgIC8vIGxldHRpbmcgb3RoZXIgaGFuZGxl
cnMgcHJvY2VzcyB0aGUgZXZlbnQuIFdlIHdpbGwgZ2V0IGEga1Byb2Nlc3NLZXkKKyAgICAgIC8v
IGV2ZW50IHdoZW4gdGhlIHByb2Nlc3MgYWN0dWFsbHkgdGVybWluYXRlcy4KKyAgICAgIHN0YXR1
c196eCA9IGNoaWxkX3Byb2Nlc3NfLmtpbGwoKTsKKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hF
Q0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CisgICAgfSBlbHNlIGlmIChwYWNrZXQua2V5ID09IGtQ
cm9jZXNzS2V5KSB7CisgICAgICAvLyBQcm9jZXNzIHRlcm1pbmF0ZWQuCisgICAgICBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOworICAg
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocGFja2V0LnNpZ25hbC5vYnNlcnZlZCAmIFpYX1BS
T0NFU1NfVEVSTUlOQVRFRCk7CisgICAgICBwcm9jZXNzX3Rlcm1pbmF0ZWQgPSB0cnVlOworICAg
IH0gZWxzZSBpZiAocGFja2V0LmtleSA9PSBrU29ja2V0S2V5KSB7CisgICAgICBHVEVTVF9ERUFU
SF9URVNUX0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOworICAgICAg
aWYgKHBhY2tldC5zaWduYWwub2JzZXJ2ZWQgJiBaWF9TT0NLRVRfUkVBREFCTEUpIHsKKyAgICAg
ICAgLy8gUmVhZCBkYXRhIGZyb20gdGhlIHNvY2tldC4KKyAgICAgICAgY29uc3RleHByIHNpemVf
dCBrQnVmZmVyU2l6ZSA9IDEwMjQ7CisgICAgICAgIGRvIHsKKyAgICAgICAgICBzaXplX3Qgb2xk
X2xlbmd0aCA9IGNhcHR1cmVkX3N0ZGVycl8ubGVuZ3RoKCk7CisgICAgICAgICAgc2l6ZV90IGJ5
dGVzX3JlYWQgPSAwOworICAgICAgICAgIGNhcHR1cmVkX3N0ZGVycl8ucmVzaXplKG9sZF9sZW5n
dGggKyBrQnVmZmVyU2l6ZSk7CisgICAgICAgICAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tldF8u
cmVhZCgKKyAgICAgICAgICAgICAgMCwgJmNhcHR1cmVkX3N0ZGVycl8uZnJvbnQoKSArIG9sZF9s
ZW5ndGgsIGtCdWZmZXJTaXplLAorICAgICAgICAgICAgICAmYnl0ZXNfcmVhZCk7CisgICAgICAg
ICAgY2FwdHVyZWRfc3RkZXJyXy5yZXNpemUob2xkX2xlbmd0aCArIGJ5dGVzX3JlYWQpOworICAg
ICAgICB9IHdoaWxlIChzdGF0dXNfenggPT0gWlhfT0spOworICAgICAgICBpZiAoc3RhdHVzX3p4
ID09IFpYX0VSUl9QRUVSX0NMT1NFRCkgeworICAgICAgICAgIHNvY2tldF9jbG9zZWQgPSB0cnVl
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0
YXR1c196eCA9PSBaWF9FUlJfU0hPVUxEX1dBSVQpOworICAgICAgICAgIHN0YXR1c196eCA9IHN0
ZGVycl9zb2NrZXRfLndhaXRfYXN5bmMoCisgICAgICAgICAgICAgIHBvcnQsIGtTb2NrZXRLZXks
IFpYX1NPQ0tFVF9SRUFEQUJMRSB8IFpYX1NPQ0tFVF9QRUVSX0NMT1NFRCwgMCk7CisgICAgICAg
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKKyAgICAgICAg
fQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocGFja2V0
LnNpZ25hbC5vYnNlcnZlZCAmIFpYX1NPQ0tFVF9QRUVSX0NMT1NFRCk7CisgICAgICAgIHNvY2tl
dF9jbG9zZWQgPSB0cnVlOworICAgICAgfQorICAgIH0KKyAgfSB3aGlsZSAoIXByb2Nlc3NfdGVy
bWluYXRlZCAmJiAhc29ja2V0X2Nsb3NlZCk7CiAKICAgUmVhZEFuZEludGVycHJldFN0YXR1c0J5
dGUoKTsKIAogICB6eF9pbmZvX3Byb2Nlc3NfdCBidWZmZXI7Ci0gIHN0YXR1c196eCA9IHp4X29i
amVjdF9nZXRfaW5mbygKLSAgICAgIGNoaWxkX3Byb2Nlc3NfLAotICAgICAgWlhfSU5GT19QUk9D
RVNTLAotICAgICAgJmJ1ZmZlciwKLSAgICAgIHNpemVvZihidWZmZXIpLAotICAgICAgbnVsbHB0
ciwKLSAgICAgIG51bGxwdHIpOworICBzdGF0dXNfenggPSBjaGlsZF9wcm9jZXNzXy5nZXRfaW5m
bygKKyAgICAgIFpYX0lORk9fUFJPQ0VTUywgJmJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIG51bGxw
dHIsIG51bGxwdHIpOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhf
T0spOwogCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGJ1ZmZlci5leGl0ZWQpOwpAQCAtOTM2
LDIxICs5NzUsMjAgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBGdWNoc2lhRGVhdGhUZXN0OjpBc3N1
bWVSb2xlKCkgewogICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRf
dGVzdF9pbmZvKCk7CiAgIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0
KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChm
bGFnICE9IG51bGxwdHIpIHsKICAgICAvLyBQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygp
IGhhcyBwZXJmb3JtZWQgYWxsIHRoZSBuZWNlc3NhcnkKICAgICAvLyBwcm9jZXNzaW5nLgogICAg
IHNldF93cml0ZV9mZChrRnVjaHNpYVJlYWRQaXBlRmQpOwogICAgIHJldHVybiBFWEVDVVRFX1RF
U1Q7CiAgIH0KIAotICBDYXB0dXJlU3RkZXJyKCk7CiAgIC8vIEZsdXNoIHRoZSBsb2cgYnVmZmVy
cyBzaW5jZSB0aGUgbG9nIHN0cmVhbXMgYXJlIHNoYXJlZCB3aXRoIHRoZSBjaGlsZC4KICAgRmx1
c2hJbmZvTG9nKCk7CiAKICAgLy8gQnVpbGQgdGhlIGNoaWxkIHByb2Nlc3MgY29tbWFuZCBsaW5l
LgotICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygi
LS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iCi0gICAgICArIGlu
Zm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgIGNvbnN0IHN0ZDo6
c3RyaW5nIGZpbHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJ
WF8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJGbGFnICsgIj0i
ICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIuIiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgaW50ZXJuYWxf
ZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtJ
bnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgKyAiPSIKICAgICAgICsgZmlsZV8gKyAifCIKQEAgLTk2
NCwzNSArMTAwMiw2OCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEZ1Y2hzaWFEZWF0aFRlc3Q6OkFz
c3VtZVJvbGUoKSB7CiAgIC8vIEJ1aWxkIHRoZSBwaXBlIGZvciBjb21tdW5pY2F0aW9uIHdpdGgg
dGhlIGNoaWxkLgogICB6eF9zdGF0dXNfdCBzdGF0dXM7CiAgIHp4X2hhbmRsZV90IGNoaWxkX3Bp
cGVfaGFuZGxlOwotICB1aW50MzJfdCB0eXBlOwotICBzdGF0dXMgPSBmZGlvX3BpcGVfaGFsZigm
Y2hpbGRfcGlwZV9oYW5kbGUsICZ0eXBlKTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3Rh
dHVzID49IDApOwotICBzZXRfcmVhZF9mZChzdGF0dXMpOworICBpbnQgY2hpbGRfcGlwZV9mZDsK
KyAgc3RhdHVzID0gZmRpb19waXBlX2hhbGYoJmNoaWxkX3BpcGVfZmQsICZjaGlsZF9waXBlX2hh
bmRsZSk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CisgIHNl
dF9yZWFkX2ZkKGNoaWxkX3BpcGVfZmQpOwogCiAgIC8vIFNldCB0aGUgcGlwZSBoYW5kbGUgZm9y
IHRoZSBjaGlsZC4KLSAgZmRpb19zcGF3bl9hY3Rpb25fdCBhZGRfaGFuZGxlX2FjdGlvbiA9IHt9
OwotICBhZGRfaGFuZGxlX2FjdGlvbi5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElPTl9BRERfSEFO
RExFOwotICBhZGRfaGFuZGxlX2FjdGlvbi5oLmlkID0gUEFfSE5EKHR5cGUsIGtGdWNoc2lhUmVh
ZFBpcGVGZCk7Ci0gIGFkZF9oYW5kbGVfYWN0aW9uLmguaGFuZGxlID0gY2hpbGRfcGlwZV9oYW5k
bGU7CisgIGZkaW9fc3Bhd25fYWN0aW9uX3Qgc3Bhd25fYWN0aW9uc1syXSA9IHt9OworICBmZGlv
X3NwYXduX2FjdGlvbl90KiBhZGRfaGFuZGxlX2FjdGlvbiA9ICZzcGF3bl9hY3Rpb25zWzBdOwor
ICBhZGRfaGFuZGxlX2FjdGlvbi0+YWN0aW9uID0gRkRJT19TUEFXTl9BQ1RJT05fQUREX0hBTkRM
RTsKKyAgYWRkX2hhbmRsZV9hY3Rpb24tPmguaWQgPSBQQV9ITkQoUEFfRkQsIGtGdWNoc2lhUmVh
ZFBpcGVGZCk7CisgIGFkZF9oYW5kbGVfYWN0aW9uLT5oLmhhbmRsZSA9IGNoaWxkX3BpcGVfaGFu
ZGxlOworCisgIC8vIENyZWF0ZSBhIHNvY2tldCBwYWlyIHdpbGwgYmUgdXNlZCB0byByZWNlaXZl
IHRoZSBjaGlsZCBwcm9jZXNzJyBzdGRlcnIuCisgIHp4Ojpzb2NrZXQgc3RkZXJyX3Byb2R1Y2Vy
X3NvY2tldDsKKyAgc3RhdHVzID0KKyAgICAgIHp4Ojpzb2NrZXQ6OmNyZWF0ZSgwLCAmc3RkZXJy
X3Byb2R1Y2VyX3NvY2tldCwgJnN0ZGVycl9zb2NrZXRfKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18oc3RhdHVzID49IDApOworICBpbnQgc3RkZXJyX3Byb2R1Y2VyX2ZkID0gLTE7CisgIHN0
YXR1cyA9CisgICAgICBmZGlvX2ZkX2NyZWF0ZShzdGRlcnJfcHJvZHVjZXJfc29ja2V0LnJlbGVh
c2UoKSwgJnN0ZGVycl9wcm9kdWNlcl9mZCk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0
YXR1cyA+PSAwKTsKIAotICAvLyBTcGF3biB0aGUgY2hpbGQgcHJvY2Vzcy4KLSAgc3RhdHVzID0g
ZmRpb19zcGF3bl9ldGMoWlhfSEFORExFX0lOVkFMSUQsIEZESU9fU1BBV05fQ0xPTkVfQUxMLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLkFyZ3YoKVswXSwgYXJncy5Bcmd2KCksIG51
bGxwdHIsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRfaGFuZGxlX2FjdGlvbiwg
JmNoaWxkX3Byb2Nlc3NfLCBudWxscHRyKTsKKyAgLy8gTWFrZSB0aGUgc3RkZXJyIHNvY2tldCBu
b25ibG9ja2luZy4KKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNudGwoc3RkZXJyX3Byb2R1
Y2VyX2ZkLCBGX1NFVEZMLCAwKSA9PSAwKTsKKworICBmZGlvX3NwYXduX2FjdGlvbl90KiBhZGRf
c3RkZXJyX2FjdGlvbiA9ICZzcGF3bl9hY3Rpb25zWzFdOworICBhZGRfc3RkZXJyX2FjdGlvbi0+
YWN0aW9uID0gRkRJT19TUEFXTl9BQ1RJT05fQ0xPTkVfRkQ7CisgIGFkZF9zdGRlcnJfYWN0aW9u
LT5mZC5sb2NhbF9mZCA9IHN0ZGVycl9wcm9kdWNlcl9mZDsKKyAgYWRkX3N0ZGVycl9hY3Rpb24t
PmZkLnRhcmdldF9mZCA9IFNUREVSUl9GSUxFTk87CisKKyAgLy8gQ3JlYXRlIGEgY2hpbGQgam9i
LgorICB6eF9oYW5kbGVfdCBjaGlsZF9qb2IgPSBaWF9IQU5ETEVfSU5WQUxJRDsKKyAgc3RhdHVz
ID0genhfam9iX2NyZWF0ZSh6eF9qb2JfZGVmYXVsdCgpLCAwLCAmIGNoaWxkX2pvYik7CisgIEdU
RVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CisgIHp4X3BvbGljeV9iYXNp
Y190IHBvbGljeTsKKyAgcG9saWN5LmNvbmRpdGlvbiA9IFpYX1BPTF9ORVdfQU5ZOworICBwb2xp
Y3kucG9saWN5ID0gWlhfUE9MX0FDVElPTl9BTExPVzsKKyAgc3RhdHVzID0genhfam9iX3NldF9w
b2xpY3koCisgICAgICBjaGlsZF9qb2IsIFpYX0pPQl9QT0xfUkVMQVRJVkUsIFpYX0pPQl9QT0xf
QkFTSUMsICZwb2xpY3ksIDEpOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPT0g
WlhfT0spOwogCi0gIC8vIENyZWF0ZSBhbiBleGNlcHRpb24gcG9ydCBhbmQgYXR0YWNoIGl0IHRv
IHRoZSB8Y2hpbGRfcHJvY2Vzc198LCB0byBhbGxvdworICAvLyBDcmVhdGUgYW4gZXhjZXB0aW9u
IGNoYW5uZWwgYXR0YWNoZWQgdG8gdGhlIHxjaGlsZF9qb2J8LCB0byBhbGxvdwogICAvLyB1cyB0
byBzdXBwcmVzcyB0aGUgc3lzdGVtIGRlZmF1bHQgZXhjZXB0aW9uIGhhbmRsZXIgZnJvbSBmaXJp
bmcuCi0gIHN0YXR1cyA9IHp4X3BvcnRfY3JlYXRlKDAsICZwb3J0Xyk7CisgIHN0YXR1cyA9Cisg
ICAgICB6eF90YXNrX2NyZWF0ZV9leGNlcHRpb25fY2hhbm5lbCgKKyAgICAgICAgICBjaGlsZF9q
b2IsIDAsIGV4Y2VwdGlvbl9jaGFubmVsXy5yZXNldF9hbmRfZ2V0X2FkZHJlc3MoKSk7CiAgIEdU
RVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7Ci0gIHN0YXR1cyA9IHp4X3Rh
c2tfYmluZF9leGNlcHRpb25fcG9ydCgKLSAgICAgIGNoaWxkX3Byb2Nlc3NfLCBwb3J0XywgMCAv
KiBrZXkgKi8sIDAgLypvcHRpb25zICovKTsKKworICAvLyBTcGF3biB0aGUgY2hpbGQgcHJvY2Vz
cy4KKyAgc3RhdHVzID0gZmRpb19zcGF3bl9ldGMoCisgICAgICBjaGlsZF9qb2IsIEZESU9fU1BB
V05fQ0xPTkVfQUxMLCBhcmdzLkFyZ3YoKVswXSwgYXJncy5Bcmd2KCksIG51bGxwdHIsCisgICAg
ICAyLCBzcGF3bl9hY3Rpb25zLCBjaGlsZF9wcm9jZXNzXy5yZXNldF9hbmRfZ2V0X2FkZHJlc3Mo
KSwgbnVsbHB0cik7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7
CiAKICAgc2V0X3NwYXduZWQodHJ1ZSk7CiAgIHJldHVybiBPVkVSU0VFX1RFU1Q7CiB9CiAKK3N0
ZDo6c3RyaW5nIEZ1Y2hzaWFEZWF0aFRlc3Q6OkdldEVycm9yTG9ncygpIHsKKyAgcmV0dXJuIGNh
cHR1cmVkX3N0ZGVycl87Cit9CisKICNlbHNlICAvLyBXZSBhcmUgbmVpdGhlciBvbiBXaW5kb3dz
LCBub3Igb24gRnVjaHNpYS4KIAogLy8gRm9ya2luZ0RlYXRoVGVzdCBwcm92aWRlcyBpbXBsZW1l
bnRhdGlvbnMgZm9yIG1vc3Qgb2YgdGhlIGFic3RyYWN0CkBAIC0xMDAwLDEwICsxMDcxLDEwIEBA
IERlYXRoVGVzdDo6VGVzdFJvbGUgRnVjaHNpYURlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKIC8v
IGxlZnQgdW5kZWZpbmVkLgogY2xhc3MgRm9ya2luZ0RlYXRoVGVzdCA6IHB1YmxpYyBEZWF0aFRl
c3RJbXBsIHsKICBwdWJsaWM6Ci0gIEZvcmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogc3RhdGVt
ZW50LCBjb25zdCBSRSogcmVnZXgpOworICBGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIHN0
YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIpOwogCiAgIC8vIEFs
bCBvZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gRGVhdGhUZXN0
LgotICB2aXJ0dWFsIGludCBXYWl0KCk7CisgIGludCBXYWl0KCkgb3ZlcnJpZGU7CiAKICBwcm90
ZWN0ZWQ6CiAgIHZvaWQgc2V0X2NoaWxkX3BpZChwaWRfdCBjaGlsZF9waWQpIHsgY2hpbGRfcGlk
XyA9IGNoaWxkX3BpZDsgfQpAQCAtMTAxNCw5ICsxMDg1LDkgQEAgY2xhc3MgRm9ya2luZ0RlYXRo
VGVzdCA6IHB1YmxpYyBEZWF0aFRlc3RJbXBsIHsKIH07CiAKIC8vIENvbnN0cnVjdHMgYSBGb3Jr
aW5nRGVhdGhUZXN0LgotRm9ya2luZ0RlYXRoVGVzdDo6Rm9ya2luZ0RlYXRoVGVzdChjb25zdCBj
aGFyKiBhX3N0YXRlbWVudCwgY29uc3QgUkUqIGFfcmVnZXgpCi0gICAgOiBEZWF0aFRlc3RJbXBs
KGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwKLSAgICAgIGNoaWxkX3BpZF8oLTEpIHt9CitGb3JraW5n
RGVhdGhUZXN0OjpGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5n
Jj4gbWF0Y2hlcikKKyAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZSht
YXRjaGVyKSksIGNoaWxkX3BpZF8oLTEpIHt9CiAKIC8vIFdhaXRzIGZvciB0aGUgY2hpbGQgaW4g
YSBkZWF0aCB0ZXN0IHRvIGV4aXQsIHJldHVybmluZyBpdHMgZXhpdAogLy8gc3RhdHVzLCBvciAw
IGlmIG5vIGNoaWxkIHByb2Nlc3MgZXhpc3RzLiAgQXMgYSBzaWRlIGVmZmVjdCwgc2V0cyB0aGUK
QEAgLTEwMzcsOSArMTEwOCw5IEBAIGludCBGb3JraW5nRGVhdGhUZXN0OjpXYWl0KCkgewogLy8g
aW4gdGhlIGNoaWxkIHByb2Nlc3MuCiBjbGFzcyBOb0V4ZWNEZWF0aFRlc3QgOiBwdWJsaWMgRm9y
a2luZ0RlYXRoVGVzdCB7CiAgcHVibGljOgotICBOb0V4ZWNEZWF0aFRlc3QoY29uc3QgY2hhciog
YV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4KSA6Ci0gICAgICBGb3JraW5nRGVhdGhUZXN0
KGFfc3RhdGVtZW50LCBhX3JlZ2V4KSB7IH0KLSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1bWVSb2xl
KCk7CisgIE5vRXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxj
b25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIpCisgICAgICA6IEZvcmtpbmdEZWF0aFRlc3QoYV9z
dGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSkge30KKyAgVGVzdFJvbGUgQXNzdW1lUm9sZSgp
IG92ZXJyaWRlOwogfTsKIAogLy8gVGhlIEFzc3VtZVJvbGUgcHJvY2VzcyBmb3IgYSBmb3JrLWFu
ZC1ydW4gZGVhdGggdGVzdC4gIEl0IGltcGxlbWVudHMgYQpAQCAtMTA5MiwxMCArMTE2MywxMyBA
QCBEZWF0aFRlc3Q6OlRlc3RSb2xlIE5vRXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKIC8v
IG9ubHkgdGhpcyBzcGVjaWZpYyBkZWF0aCB0ZXN0IHRvIGJlIHJ1bi4KIGNsYXNzIEV4ZWNEZWF0
aFRlc3QgOiBwdWJsaWMgRm9ya2luZ0RlYXRoVGVzdCB7CiAgcHVibGljOgotICBFeGVjRGVhdGhU
ZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgOgotICAgICAgRm9ya2luZ0RlYXRo
VGVzdChhX3N0YXRlbWVudCwgYV9yZWdleCksIGZpbGVfKGZpbGUpLCBsaW5lXyhsaW5lKSB7IH0K
LSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1bWVSb2xlKCk7CisgIEV4ZWNEZWF0aFRlc3QoY29uc3Qg
Y2hhciogYV9zdGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLAor
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKQorICAgICAgOiBGb3Jr
aW5nRGVhdGhUZXN0KGFfc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlcikpLAorICAgICAgICBm
aWxlXyhmaWxlKSwKKyAgICAgICAgbGluZV8obGluZSkge30KKyAgVGVzdFJvbGUgQXNzdW1lUm9s
ZSgpIG92ZXJyaWRlOworCiAgcHJpdmF0ZToKICAgc3RhdGljIDo6c3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+IEdldEFyZ3ZzRm9yRGVhdGhUZXN0Q2hpbGRQcm9jZXNzKCkgewogICAgIDo6c3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IGFyZ3MgPSBHZXRJbmplY3RhYmxlQXJndnMoKTsKQEAgLTExMTUs
OSArMTE4OSw3IEBAIGNsYXNzIEV4ZWNEZWF0aFRlc3QgOiBwdWJsaWMgRm9ya2luZ0RlYXRoVGVz
dCB7CiAvLyBVdGlsaXR5IGNsYXNzIGZvciBhY2N1bXVsYXRpbmcgY29tbWFuZC1saW5lIGFyZ3Vt
ZW50cy4KIGNsYXNzIEFyZ3VtZW50cyB7CiAgcHVibGljOgotICBBcmd1bWVudHMoKSB7Ci0gICAg
YXJnc18ucHVzaF9iYWNrKE5VTEwpOwotICB9CisgIEFyZ3VtZW50cygpIHsgYXJnc18ucHVzaF9i
YWNrKG51bGxwdHIpOyB9CiAKICAgfkFyZ3VtZW50cygpIHsKICAgICBmb3IgKHN0ZDo6dmVjdG9y
PGNoYXIqPjo6aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2luKCk7IGkgIT0gYXJnc18uZW5kKCk7CkBA
IC0xMTUyLDcgKzEyMjQsOSBAQCBzdHJ1Y3QgRXhlY0RlYXRoVGVzdEFyZ3MgewogICBpbnQgY2xv
c2VfZmQ7ICAgICAgIC8vIEZpbGUgZGVzY3JpcHRvciB0byBjbG9zZTsgdGhlIHJlYWQgZW5kIG9m
IGEgcGlwZQogfTsKIAotIyAgaWYgIUdURVNUX09TX1FOWAorIyAgaWYgR1RFU1RfT1NfUU5YCitl
eHRlcm4gIkMiIGNoYXIqKiBlbnZpcm9uOworIyAgZWxzZSAgLy8gR1RFU1RfT1NfUU5YCiAvLyBU
aGUgbWFpbiBmdW5jdGlvbiBmb3IgYSB0aHJlYWRzYWZlLXN0eWxlIGRlYXRoIHRlc3QgY2hpbGQg
cHJvY2Vzcy4KIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIGEgY2xvbmUoKS1lZCBwcm9j
ZXNzIGFuZCB0aHVzIG11c3QgYXZvaWQKIC8vIGFueSBwb3RlbnRpYWxseSB1bnNhZmUgb3BlcmF0
aW9ucyBsaWtlIG1hbGxvYyBvciBsaWJjIGZ1bmN0aW9ucy4KQEAgLTExNzIsMjEgKzEyNDYsMTgg
QEAgc3RhdGljIGludCBFeGVjRGVhdGhUZXN0Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2FyZykgewog
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgIH0KIAotICAvLyBXZSBjYW4gc2FmZWx5IGNhbGwg
ZXhlY3ZlKCkgYXMgaXQncyBhIGRpcmVjdCBzeXN0ZW0gY2FsbC4gIFdlCisgIC8vIFdlIGNhbiBz
YWZlbHkgY2FsbCBleGVjdigpIGFzIGl0J3MgYWxtb3N0IGEgZGlyZWN0IHN5c3RlbSBjYWxsLiBX
ZQogICAvLyBjYW5ub3QgdXNlIGV4ZWN2cCgpIGFzIGl0J3MgYSBsaWJjIGZ1bmN0aW9uIGFuZCB0
aHVzIHBvdGVudGlhbGx5Ci0gIC8vIHVuc2FmZS4gIFNpbmNlIGV4ZWN2ZSgpIGRvZXNuJ3Qgc2Vh
cmNoIHRoZSBQQVRILCB0aGUgdXNlciBtdXN0CisgIC8vIHVuc2FmZS4gIFNpbmNlIGV4ZWN2KCkg
ZG9lc24ndCBzZWFyY2ggdGhlIFBBVEgsIHRoZSB1c2VyIG11c3QKICAgLy8gaW52b2tlIHRoZSB0
ZXN0IHByb2dyYW0gdmlhIGEgdmFsaWQgcGF0aCB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0CiAgIC8v
IG9uZSBwYXRoIHNlcGFyYXRvci4KLSAgLy8gV2UgaGF2ZSByZXBsYWNlZCBleGVjdmUoKSB3aXRo
IGV4ZWN2KCkgZm9yIFdlYktpdCB0byBhdm9pZCB1c2luZwotICAvLyBlbnZpcm9uLiBJdCBzaG91
bGQgYmUgc2FmZSBiZWNhdXNlIGV4ZWN2KCkgaXMganVzdCBhIHNpbXBsZSB3cmFwcGVyCi0gIC8v
IG9mIGV4ZWN2ZSgpLgogICBleGVjdihhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2KTsKICAgRGVh
dGhUZXN0QWJvcnQoc3RkOjpzdHJpbmcoImV4ZWN2KCIpICsgYXJncy0+YXJndlswXSArICIsIC4u
LikgaW4gIiArCiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2RpciArICIgZmFpbGVkOiAiICsK
ICAgICAgICAgICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKSk7CiAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiB9Ci0jICBlbmRpZiAgLy8gIUdURVNUX09TX1FOWAorIyAgZW5kaWYgIC8v
IEdURVNUX09TX1FOWAogCiAjICBpZiBHVEVTVF9IQVNfQ0xPTkUKIC8vIFR3byB1dGlsaXR5IHJv
dXRpbmVzIHRoYXQgdG9nZXRoZXIgZGV0ZXJtaW5lIHRoZSBkaXJlY3Rpb24gdGhlIHN0YWNrCkBA
IC0xMjAwLDE1ICsxMjcxLDI0IEBAIHN0YXRpYyBpbnQgRXhlY0RlYXRoVGVzdENoaWxkTWFpbih2
b2lkKiBjaGlsZF9hcmcpIHsKIC8vIGNvcnJlY3QgYW5zd2VyLgogc3RhdGljIHZvaWQgU3RhY2tM
b3dlclRoYW5BZGRyZXNzKGNvbnN0IHZvaWQqIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sKiByZXN1bHQpIEdURVNUX05PX0lOTElORV87CisvLyBNYWtlIHN1cmUg
c2FuaXRpemVycyBkbyBub3QgdGFtcGVyIHdpdGggdGhlIHN0YWNrIGhlcmUuCisvLyBJZGVhbGx5
LCB3ZSB3YW50IHRvIHVzZSBgX19idWlsdGluX2ZyYW1lX2FkZHJlc3NgIGluc3RlYWQgb2YgYSBs
b2NhbCB2YXJpYWJsZQorLy8gYWRkcmVzcyB3aXRoIHNhbml0aXplciBkaXNhYmxlZCwgYnV0IGl0
IGRvZXMgbm90IHdvcmsgd2hlbiB0aGUKKy8vIGNvbXBpbGVyIG9wdGltaXplcyB0aGUgc3RhY2sg
ZnJhbWUgb3V0LCB3aGljaCBoYXBwZW5zIG9uIFBvd2VyUEMgdGFyZ2V0cy4KKy8vIEhXQWRkcmVz
c1Nhbml0aXplciBhZGQgYSByYW5kb20gdGFnIHRvIHRoZSBNU0Igb2YgdGhlIGxvY2FsIHZhcmlh
YmxlIGFkZHJlc3MsCisvLyBtYWtpbmcgY29tcGFyaXNvbiByZXN1bHQgdW5wcmVkaWN0YWJsZS4K
K0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXworR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX0hXQUREUkVTU18KIHN0YXRpYyB2b2lkIFN0YWNrTG93ZXJUaGFuQWRkcmVzcyhj
b25zdCB2b2lkKiBwdHIsIGJvb2wqIHJlc3VsdCkgewotICBpbnQgZHVtbXk7Ci0gICpyZXN1bHQg
PSAoJmR1bW15IDwgcHRyKTsKKyAgaW50IGR1bW15ID0gMDsKKyAgKnJlc3VsdCA9IHN0ZDo6bGVz
czxjb25zdCB2b2lkKj4oKSgmZHVtbXksIHB0cik7CiB9CiAKIC8vIE1ha2Ugc3VyZSBBZGRyZXNz
U2FuaXRpemVyIGRvZXMgbm90IHRhbXBlciB3aXRoIHRoZSBzdGFjayBoZXJlLgogR1RFU1RfQVRU
UklCVVRFX05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVf
SFdBRERSRVNTXwogc3RhdGljIGJvb2wgU3RhY2tHcm93c0Rvd24oKSB7Ci0gIGludCBkdW1teTsK
KyAgaW50IGR1bW15ID0gMDsKICAgYm9vbCByZXN1bHQ7CiAgIFN0YWNrTG93ZXJUaGFuQWRkcmVz
cygmZHVtbXksICZyZXN1bHQpOwogICByZXR1cm4gcmVzdWx0OwpAQCAtMTI1MSw3ICsxMzMxLDcg
QEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2
LCBpbnQgY2xvc2VfZmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmZF9mbGFncyB8IEZEX0NMT0VYRUMpKTsKICAgc3RydWN0IGluaGVyaXRhbmNlIGluaGVyaXQg
PSB7MH07CiAgIC8vIHNwYXduIGlzIGEgc3lzdGVtIGNhbGwuCi0gIGNoaWxkX3BpZCA9IHNwYXdu
KGFyZ3MuYXJndlswXSwgMCwgTlVMTCwgJmluaGVyaXQsIGFyZ3MuYXJndiwgR2V0RW52aXJvbigp
KTsKKyAgY2hpbGRfcGlkID0gc3Bhd24oYXJncy5hcmd2WzBdLCAwLCBudWxscHRyLCAmaW5oZXJp
dCwgYXJncy5hcmd2LCBlbnZpcm9uKTsKICAgLy8gUmVzdG9yZXMgdGhlIGN1cnJlbnQgd29ya2lu
ZyBkaXJlY3RvcnkuCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZjaGRpcihjd2RfZmQpICE9
IC0xKTsKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXyhjbG9zZShjd2RfZmQpKTsK
QEAgLTEyNzUsOSArMTM1NSw5IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGls
ZChjaGFyKiBjb25zdCogYXJndiwgaW50IGNsb3NlX2ZkKSB7CiAKICAgaWYgKCF1c2VfZm9yaykg
ewogICAgIHN0YXRpYyBjb25zdCBib29sIHN0YWNrX2dyb3dzX2Rvd24gPSBTdGFja0dyb3dzRG93
bigpOwotICAgIGNvbnN0IHNpemVfdCBzdGFja19zaXplID0gZ2V0cGFnZXNpemUoKTsKKyAgICBj
b25zdCBhdXRvIHN0YWNrX3NpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGdldHBhZ2VzaXplKCkg
KiAyKTsKICAgICAvLyBNTUFQX0FOT05ZTU9VUyBpcyBub3QgZGVmaW5lZCBvbiBNYWMsIHNvIHdl
IHVzZSBNQVBfQU5PTiBpbnN0ZWFkLgotICAgIHZvaWQqIGNvbnN0IHN0YWNrID0gbW1hcChOVUxM
LCBzdGFja19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgIHZvaWQqIGNvbnN0IHN0
YWNrID0gbW1hcChudWxscHRyLCBzdGFja19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVBfQU5PTiB8IE1BUF9QUklWQVRFLCAtMSwg
MCk7CiAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhY2sgIT0gTUFQX0ZBSUxFRCk7CiAK
QEAgLTEyOTEsOCArMTM3MSw5IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGls
ZChjaGFyKiBjb25zdCogYXJndiwgaW50IGNsb3NlX2ZkKSB7CiAgICAgdm9pZCogY29uc3Qgc3Rh
Y2tfdG9wID0KICAgICAgICAgc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YWNrKSArCiAgICAgICAgICAg
ICAoc3RhY2tfZ3Jvd3NfZG93biA/IHN0YWNrX3NpemUgLSBrTWF4U3RhY2tBbGlnbm1lbnQgOiAw
KTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGFja19zaXplID4ga01heFN0YWNrQWxp
Z25tZW50ICYmCi0gICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHN0YWNrX3RvcCkg
JSBrTWF4U3RhY2tBbGlnbm1lbnQgPT0gMCk7CisgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18o
CisgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oc3RhY2tfc2l6ZSkgPiBrTWF4U3RhY2tBbGln
bm1lbnQgJiYKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN0YWNrX3RvcCkg
JSBrTWF4U3RhY2tBbGlnbm1lbnQgPT0gMCk7CiAKICAgICBjaGlsZF9waWQgPSBjbG9uZSgmRXhl
Y0RlYXRoVGVzdENoaWxkTWFpbiwgc3RhY2tfdG9wLCBTSUdDSExELCAmYXJncyk7CiAKQEAgLTEz
MDksNyArMTM5MCw3IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGlsZChjaGFy
KiBjb25zdCogYXJndiwgaW50IGNsb3NlX2ZkKSB7CiAjICBlbmRpZiAgLy8gR1RFU1RfT1NfUU5Y
CiAjICBpZiBHVEVTVF9PU19MSU5VWAogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExf
KAotICAgICAgc2lnYWN0aW9uKFNJR1BST0YsICZzYXZlZF9zaWdwcm9mX2FjdGlvbiwgTlVMTCkp
OworICAgICAgc2lnYWN0aW9uKFNJR1BST0YsICZzYXZlZF9zaWdwcm9mX2FjdGlvbiwgbnVsbHB0
cikpOwogIyAgZW5kaWYgIC8vIEdURVNUX09TX0xJTlVYCiAKICAgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18oY2hpbGRfcGlkICE9IC0xKTsKQEAgLTEzMjcsNyArMTQwOCw3IEBAIERlYXRoVGVzdDo6
VGVzdFJvbGUgRXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKICAgY29uc3QgVGVzdEluZm8q
IGNvbnN0IGluZm8gPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogICBjb25zdCBpbnQgZGVh
dGhfdGVzdF9pbmRleCA9IGluZm8tPnJlc3VsdCgpLT5kZWF0aF90ZXN0X2NvdW50KCk7CiAKLSAg
aWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRyKSB7CiAgICAgc2V0X3dy
aXRlX2ZkKGZsYWctPndyaXRlX2ZkKCkpOwogICAgIHJldHVybiBFWEVDVVRFX1RFU1Q7CiAgIH0K
QEAgLTEzMzgsOSArMTQxOSw5IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgRXhlY0RlYXRoVGVzdDo6
QXNzdW1lUm9sZSgpIHsKICAgLy8gaXQgYmUgY2xvc2VkIHdoZW4gdGhlIGNoaWxkIHByb2Nlc3Mg
ZG9lcyBhbiBleGVjOgogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhmY250bChwaXBlX2ZkWzFd
LCBGX1NFVEZELCAwKSAhPSAtMSk7CiAKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsdGVyX2ZsYWcg
PQotICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBrRmlsdGVy
RmxhZyArICI9IgotICAgICAgKyBpbmZvLT50ZXN0X2Nhc2VfbmFtZSgpICsgIi4iICsgaW5mby0+
bmFtZSgpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9IHN0ZDo6c3RyaW5nKCIt
LSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrRmlsdGVyRmxhZyArICI9IiArIGluZm8tPnRlc3Rfc3VpdGVfbmFtZSgpICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBpbmZvLT5uYW1lKCk7CiAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGludGVybmFsX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBH
VEVTVF9GTEFHX1BSRUZJWF8gKyBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnICsgIj0iCiAgICAg
ICArIGZpbGVfICsgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmVfKSArICJ8IgpAQCAtMTM3
Myw3ICsxNDU0LDggQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVjRGVhdGhUZXN0OjpBc3N1bWVS
b2xlKCkgewogLy8gYnkgdGhlICJ0ZXN0IiBhcmd1bWVudCB0byBpdHMgYWRkcmVzcy4gIElmIHRo
ZSB0ZXN0IHNob3VsZCBiZQogLy8gc2tpcHBlZCwgc2V0cyB0aGF0IHBvaW50ZXIgdG8gTlVMTC4g
IFJldHVybnMgdHJ1ZSwgdW5sZXNzIHRoZQogLy8gZmxhZyBpcyBzZXQgdG8gYW4gaW52YWxpZCB2
YWx1ZS4KLWJvb2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShjb25zdCBjaGFyKiBz
dGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKK2Jvb2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6
OkNyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhUZXN0KiogdGVzdCkg
ewogICBVbml0VGVzdEltcGwqIGNvbnN0IGltcGwgPSBHZXRVbml0VGVzdEltcGwoKTsKQEAgLTEz
ODIsNyArMTQ2NCw3IEBAIGJvb2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShjb25z
dCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKICAgY29uc3QgaW50IGRlYXRoX3Rl
c3RfaW5kZXggPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpCiAgICAgICAtPmluY3JlbWVudF9k
ZWF0aF90ZXN0X2NvdW50KCk7CiAKLSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAh
PSBudWxscHRyKSB7CiAgICAgaWYgKGRlYXRoX3Rlc3RfaW5kZXggPiBmbGFnLT5pbmRleCgpKSB7
CiAgICAgICBEZWF0aFRlc3Q6OnNldF9sYXN0X2RlYXRoX3Rlc3RfbWVzc2FnZSgKICAgICAgICAg
ICAiRGVhdGggdGVzdCBjb3VudCAoIiArIFN0cmVhbWFibGVUb1N0cmluZyhkZWF0aF90ZXN0X2lu
ZGV4KQpAQCAtMTM5Myw3ICsxNDc1LDcgQEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6
Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAogCiAgICAgaWYg
KCEoZmxhZy0+ZmlsZSgpID09IGZpbGUgJiYgZmxhZy0+bGluZSgpID09IGxpbmUgJiYKICAgICAg
ICAgICBmbGFnLT5pbmRleCgpID09IGRlYXRoX3Rlc3RfaW5kZXgpKSB7Ci0gICAgICAqdGVzdCA9
IE5VTEw7CisgICAgICAqdGVzdCA9IG51bGxwdHI7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAgIH0KQEAgLTE0MDIsMjIgKzE0ODQsMjIgQEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9y
eTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAogCiAgIGlm
IChHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJ0aHJlYWRzYWZlIiB8fAogICAgICAg
R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAiZmFzdCIpIHsKLSAgICAqdGVzdCA9IG5l
dyBXaW5kb3dzRGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgsIGZpbGUsIGxpbmUpOworICAgICp0
ZXN0ID0gbmV3IFdpbmRvd3NEZWF0aFRlc3Qoc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlciks
IGZpbGUsIGxpbmUpOwogICB9CiAKICMgZWxpZiBHVEVTVF9PU19GVUNIU0lBCiAKICAgaWYgKEdU
RVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gInRocmVhZHNhZmUiIHx8CiAgICAgICBHVEVT
VF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0ID0gbmV3IEZ1
Y2hzaWFEZWF0aFRlc3Qoc3RhdGVtZW50LCByZWdleCwgZmlsZSwgbGluZSk7CisgICAgKnRlc3Qg
PSBuZXcgRnVjaHNpYURlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSwgZmls
ZSwgbGluZSk7CiAgIH0KIAogIyBlbHNlCiAKICAgaWYgKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9z
dHlsZSkgPT0gInRocmVhZHNhZmUiKSB7Ci0gICAgKnRlc3QgPSBuZXcgRXhlY0RlYXRoVGVzdChz
dGF0ZW1lbnQsIHJlZ2V4LCBmaWxlLCBsaW5lKTsKKyAgICAqdGVzdCA9IG5ldyBFeGVjRGVhdGhU
ZXN0KHN0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpLCBmaWxlLCBsaW5lKTsKICAgfSBlbHNl
IGlmIChHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0
ID0gbmV3IE5vRXhlY0RlYXRoVGVzdChzdGF0ZW1lbnQsIHJlZ2V4KTsKKyAgICAqdGVzdCA9IG5l
dyBOb0V4ZWNEZWF0aFRlc3Qoc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlcikpOwogICB9CiAK
ICMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKQEAgLTE0NDcsOCArMTUyOSw2IEBAIHN0YXRp
YyBpbnQgR2V0U3RhdHVzRmlsZURlc2NyaXB0b3IodW5zaWduZWQgaW50IHBhcmVudF9wcm9jZXNz
X2lkLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhwYXJlbnRfcHJvY2Vz
c19pZCkpOwogICB9CiAKLSAgLy8gRklYTUU6IFJlcGxhY2UgdGhlIGZvbGxvd2luZyBjaGVjayB3
aXRoIGEKLSAgLy8gY29tcGlsZS10aW1lIGFzc2VydGlvbiB3aGVuIGF2YWlsYWJsZS4KICAgR1RF
U1RfQ0hFQ0tfKHNpemVvZihIQU5ETEUpIDw9IHNpemVvZihzaXplX3QpKTsKIAogICBjb25zdCBI
QU5ETEUgd3JpdGVfaGFuZGxlID0KQEAgLTE1MDQsNyArMTU4NCw3IEBAIHN0YXRpYyBpbnQgR2V0
U3RhdHVzRmlsZURlc2NyaXB0b3IodW5zaWduZWQgaW50IHBhcmVudF9wcm9jZXNzX2lkLAogLy8g
aW5pdGlhbGl6ZWQgZnJvbSB0aGUgR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkg
ZmxhZyBpZgogLy8gdGhlIGZsYWcgaXMgc3BlY2lmaWVkOyBvdGhlcndpc2UgcmV0dXJucyBOVUxM
LgogSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKiBQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0Rmxh
ZygpIHsKLSAgaWYgKEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpID09ICIiKSBy
ZXR1cm4gTlVMTDsKKyAgaWYgKEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpID09
ICIiKSByZXR1cm4gbnVsbHB0cjsKIAogICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVCBpbXBsaWVz
IHRoYXQgd2UgaGF2ZSA6OnN0ZDo6c3RyaW5nLCBzbyB3ZQogICAvLyBjYW4gdXNlIGl0IGhlcmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGgu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGguY2MKaW5kZXgg
YTdlNjVjMDgyYTc1ZmM2ZmIwMzhhMDIzZDViMWQzZTA5ZTQ3OWYxMS4uYWYyOTc2ODQwMzFjZDI1
N2IzMjFmYTk4NGJiNTcwYWY0YzlhMjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc3JjL2d0ZXN0LWZpbGVwYXRoLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NyYy9ndGVzdC1maWxlcGF0aC5jYwpAQCAtMzgsOSArMzgsNiBAQAogI2VsaWYgR1RFU1RfT1Nf
V0lORE9XUwogIyBpbmNsdWRlIDxkaXJlY3QuaD4KICMgaW5jbHVkZSA8aW8uaD4KLSNlbGlmIEdU
RVNUX09TX1NZTUJJQU4KLS8vIFN5bWJpYW4gT3BlbkMgaGFzIFBBVEhfTUFYIGluIHN5cy9zeXNs
aW1pdHMuaAotIyBpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+CiAjZWxzZQogIyBpbmNsdWRlIDxs
aW1pdHMuaD4KICMgaW5jbHVkZSA8Y2xpbWl0cz4gIC8vIFNvbWUgTGludXggZGlzdHJpYnV0aW9u
cyBkZWZpbmUgUEFUSF9NQVggaGVyZS4KQEAgLTk1LDEzICs5MiwxNCBAQCBzdGF0aWMgYm9vbCBJ
c1BhdGhTZXBhcmF0b3IoY2hhciBjKSB7CiAKIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgd29ya2lu
ZyBkaXJlY3RvcnksIG9yICIiIGlmIHVuc3VjY2Vzc2Z1bC4KIEZpbGVQYXRoIEZpbGVQYXRoOjpH
ZXRDdXJyZW50RGlyKCkgewotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09T
X1dJTkRPV1NfUEhPTkUgfHwgR1RFU1RfT1NfV0lORE9XU19SVAotICAvLyBXaW5kb3dzIENFIGRv
ZXNuJ3QgaGF2ZSBhIGN1cnJlbnQgZGlyZWN0b3J5LCBzbyB3ZSBqdXN0IHJldHVybgorI2lmIEdU
RVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgXAorICAg
IEdURVNUX09TX1dJTkRPV1NfUlQgfHwgR1RFU1RfT1NfRVNQODI2NiB8fCBHVEVTVF9PU19FU1Az
MgorICAvLyBUaGVzZSBwbGF0Zm9ybXMgZG8gbm90IGhhdmUgYSBjdXJyZW50IGRpcmVjdG9yeSwg
c28gd2UganVzdCByZXR1cm4KICAgLy8gc29tZXRoaW5nIHJlYXNvbmFibGUuCiAgIHJldHVybiBG
aWxlUGF0aChrQ3VycmVudERpcmVjdG9yeVN0cmluZyk7CiAjZWxpZiBHVEVTVF9PU19XSU5ET1dT
CiAgIGNoYXIgY3dkW0dURVNUX1BBVEhfTUFYXyArIDFdID0geyAnXDAnIH07Ci0gIHJldHVybiBG
aWxlUGF0aChfZ2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkpID09IE5VTEwgPyAiIiA6IGN3ZCk7Cisg
IHJldHVybiBGaWxlUGF0aChfZ2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkpID09IG51bGxwdHIgPyAi
IiA6IGN3ZCk7CiAjZWxzZQogICBjaGFyIGN3ZFtHVEVTVF9QQVRIX01BWF8gKyAxXSA9IHsgJ1ww
JyB9OwogICBjaGFyKiByZXN1bHQgPSBnZXRjd2QoY3dkLCBzaXplb2YoY3dkKSk7CkBAIC0xMDks
OSArMTA3LDkgQEAgRmlsZVBhdGggRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSB7CiAgIC8vIGdl
dGN3ZCB3aWxsIGxpa2VseSBmYWlsIGluIE5hQ2wgZHVlIHRvIHRoZSBzYW5kYm94LCBzbyByZXR1
cm4gc29tZXRoaW5nCiAgIC8vIHJlYXNvbmFibGUuIFRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVk
IGEgc2hpbSBpbXBsZW1lbnRhdGlvbiBmb3IgZ2V0Y3dkLAogICAvLyBob3dldmVyLCBzbyBmYWxs
YmFjayBvbmx5IHdoZW4gZmFpbHVyZSBpcyBkZXRlY3RlZC4KLSAgcmV0dXJuIEZpbGVQYXRoKHJl
c3VsdCA9PSBOVUxMID8ga0N1cnJlbnREaXJlY3RvcnlTdHJpbmcgOiBjd2QpOworICByZXR1cm4g
RmlsZVBhdGgocmVzdWx0ID09IG51bGxwdHIgPyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3
ZCk7CiAjIGVuZGlmICAvLyBHVEVTVF9PU19OQUNMCi0gIHJldHVybiBGaWxlUGF0aChyZXN1bHQg
PT0gTlVMTCA/ICIiIDogY3dkKTsKKyAgcmV0dXJuIEZpbGVQYXRoKHJlc3VsdCA9PSBudWxscHRy
ID8gIiIgOiBjd2QpOwogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogfQogCkBA
IC0xMzYsOCArMTM0LDggQEAgY29uc3QgY2hhciogRmlsZVBhdGg6OkZpbmRMYXN0UGF0aFNlcGFy
YXRvcigpIGNvbnN0IHsKICNpZiBHVEVTVF9IQVNfQUxUX1BBVEhfU0VQXwogICBjb25zdCBjaGFy
KiBjb25zdCBsYXN0X2FsdF9zZXAgPSBzdHJyY2hyKGNfc3RyKCksIGtBbHRlcm5hdGVQYXRoU2Vw
YXJhdG9yKTsKICAgLy8gQ29tcGFyaW5nIHR3byBwb2ludGVycyBvZiB3aGljaCBvbmx5IG9uZSBp
cyBOVUxMIGlzIHVuZGVmaW5lZC4KLSAgaWYgKGxhc3RfYWx0X3NlcCAhPSBOVUxMICYmCi0gICAg
ICAobGFzdF9zZXAgPT0gTlVMTCB8fCBsYXN0X2FsdF9zZXAgPiBsYXN0X3NlcCkpIHsKKyAgaWYg
KGxhc3RfYWx0X3NlcCAhPSBudWxscHRyICYmCisgICAgICAobGFzdF9zZXAgPT0gbnVsbHB0ciB8
fCBsYXN0X2FsdF9zZXAgPiBsYXN0X3NlcCkpIHsKICAgICByZXR1cm4gbGFzdF9hbHRfc2VwOwog
ICB9CiAjZW5kaWYKQEAgLTE2NSw3ICsxNjMsNyBAQCBGaWxlUGF0aCBGaWxlUGF0aDo6UmVtb3Zl
RmlsZU5hbWUoKSBjb25zdCB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGxhc3Rfc2VwID0gRmluZExh
c3RQYXRoU2VwYXJhdG9yKCk7CiAgIHN0ZDo6c3RyaW5nIGRpcjsKICAgaWYgKGxhc3Rfc2VwKSB7
Ci0gICAgZGlyID0gc3RkOjpzdHJpbmcoY19zdHIoKSwgbGFzdF9zZXAgKyAxIC0gY19zdHIoKSk7
CisgICAgZGlyID0gc3RkOjpzdHJpbmcoY19zdHIoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihsYXN0
X3NlcCArIDEgLSBjX3N0cigpKSk7CiAgIH0gZWxzZSB7CiAgICAgZGlyID0ga0N1cnJlbnREaXJl
Y3RvcnlTdHJpbmc7CiAgIH0KQEAgLTI1MCw5ICsyNDgsNiBAQCBib29sIEZpbGVQYXRoOjpEaXJl
Y3RvcnlFeGlzdHMoKSBjb25zdCB7CiAvLyByb290IGRpcmVjdG9yeSBwZXIgZGlzayBkcml2ZS4p
CiBib29sIEZpbGVQYXRoOjpJc1Jvb3REaXJlY3RvcnkoKSBjb25zdCB7CiAjaWYgR1RFU1RfT1Nf
V0lORE9XUwotICAvLyBGSVhNRTogb24gV2luZG93cyBhIG5ldHdvcmsgc2hhcmUgbGlrZQotICAv
LyBcXHNlcnZlclxzaGFyZSBjYW4gYmUgYSByb290IGRpcmVjdG9yeSwgYWx0aG91Z2ggaXQgY2Fu
bm90IGJlIHRoZQotICAvLyBjdXJyZW50IGRpcmVjdG9yeS4gIEhhbmRsZSB0aGlzIHByb3Blcmx5
LgogICByZXR1cm4gcGF0aG5hbWVfLmxlbmd0aCgpID09IDMgJiYgSXNBYnNvbHV0ZVBhdGgoKTsK
ICNlbHNlCiAgIHJldHVybiBwYXRobmFtZV8ubGVuZ3RoKCkgPT0gMSAmJiBJc1BhdGhTZXBhcmF0
b3IocGF0aG5hbWVfLmNfc3RyKClbMF0pOwpAQCAtMzI0LDEwICszMTksMTMgQEAgYm9vbCBGaWxl
UGF0aDo6Q3JlYXRlRm9sZGVyKCkgY29uc3QgewogI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxF
CiAgIEZpbGVQYXRoIHJlbW92ZWRfc2VwKHRoaXMtPlJlbW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRv
cigpKTsKICAgTFBDV1NUUiB1bmljb2RlID0gU3RyaW5nOjpBbnNpVG9VdGYxNihyZW1vdmVkX3Nl
cC5jX3N0cigpKTsKLSAgaW50IHJlc3VsdCA9IENyZWF0ZURpcmVjdG9yeSh1bmljb2RlLCBOVUxM
KSA/IDAgOiAtMTsKKyAgaW50IHJlc3VsdCA9IENyZWF0ZURpcmVjdG9yeSh1bmljb2RlLCBudWxs
cHRyKSA/IDAgOiAtMTsKICAgZGVsZXRlIFtdIHVuaWNvZGU7CiAjZWxpZiBHVEVTVF9PU19XSU5E
T1dTCiAgIGludCByZXN1bHQgPSBfbWtkaXIocGF0aG5hbWVfLmNfc3RyKCkpOworI2VsaWYgR1RF
U1RfT1NfRVNQODI2NgorICAvLyBkbyBub3RoaW5nCisgIGludCByZXN1bHQgPSAwOwogI2Vsc2UK
ICAgaW50IHJlc3VsdCA9IG1rZGlyKHBhdGhuYW1lXy5jX3N0cigpLCAwNzc3KTsKICNlbmRpZiAg
Ly8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKQEAgLTM1MCwzNSArMzQ4LDIwIEBAIEZpbGVQYXRo
IEZpbGVQYXRoOjpSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSBjb25zdCB7CiAvLyBSZW1v
dmVzIGFueSByZWR1bmRhbnQgc2VwYXJhdG9ycyB0aGF0IG1pZ2h0IGJlIGluIHRoZSBwYXRobmFt
ZS4KIC8vIEZvciBleGFtcGxlLCAiYmFyLy8vZm9vIiBiZWNvbWVzICJiYXIvZm9vIi4gRG9lcyBu
b3QgZWxpbWluYXRlIG90aGVyCiAvLyByZWR1bmRhbmNpZXMgdGhhdCBtaWdodCBiZSBpbiBhIHBh
dGhuYW1lIGludm9sdmluZyAiLiIgb3IgIi4uIi4KLS8vIEZJWE1FOiBoYW5kbGUgV2luZG93cyBu
ZXR3b3JrIHNoYXJlcyAoZS5nLiBcXHNlcnZlclxzaGFyZSkuCiB2b2lkIEZpbGVQYXRoOjpOb3Jt
YWxpemUoKSB7Ci0gIGlmIChwYXRobmFtZV8uY19zdHIoKSA9PSBOVUxMKSB7Ci0gICAgcGF0aG5h
bWVfID0gIiI7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGNvbnN0IGNoYXIqIHNyYyA9IHBhdGhuYW1l
Xy5jX3N0cigpOwotICBjaGFyKiBjb25zdCBkZXN0ID0gbmV3IGNoYXJbcGF0aG5hbWVfLmxlbmd0
aCgpICsgMV07Ci0gIGNoYXIqIGRlc3RfcHRyID0gZGVzdDsKLSAgbWVtc2V0KGRlc3RfcHRyLCAw
LCBwYXRobmFtZV8ubGVuZ3RoKCkgKyAxKTsKLQotICB3aGlsZSAoKnNyYyAhPSAnXDAnKSB7Ci0g
ICAgKmRlc3RfcHRyID0gKnNyYzsKLSAgICBpZiAoIUlzUGF0aFNlcGFyYXRvcigqc3JjKSkgewot
ICAgICAgc3JjKys7CisgIGF1dG8gb3V0ID0gcGF0aG5hbWVfLmJlZ2luKCk7CisKKyAgZm9yIChj
b25zdCBjaGFyIGNoYXJhY3RlciA6IHBhdGhuYW1lXykgeworICAgIGlmICghSXNQYXRoU2VwYXJh
dG9yKGNoYXJhY3RlcikpIHsKKyAgICAgICoob3V0KyspID0gY2hhcmFjdGVyOworICAgIH0gZWxz
ZSBpZiAob3V0ID09IHBhdGhuYW1lXy5iZWdpbigpIHx8ICpzdGQ6OnByZXYob3V0KSAhPSBrUGF0
aFNlcGFyYXRvcikgeworICAgICAgKihvdXQrKykgPSBrUGF0aFNlcGFyYXRvcjsKICAgICB9IGVs
c2UgewotI2lmIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCi0gICAgICBpZiAoKmRlc3RfcHRyID09
IGtBbHRlcm5hdGVQYXRoU2VwYXJhdG9yKSB7Ci0gICAgICAgICpkZXN0X3B0ciA9IGtQYXRoU2Vw
YXJhdG9yOwotICAgICAgfQotI2VuZGlmCi0gICAgICB3aGlsZSAoSXNQYXRoU2VwYXJhdG9yKCpz
cmMpKQotICAgICAgICBzcmMrKzsKKyAgICAgIGNvbnRpbnVlOwogICAgIH0KLSAgICBkZXN0X3B0
cisrOwogICB9Ci0gICpkZXN0X3B0ciA9ICdcMCc7Ci0gIHBhdGhuYW1lXyA9IGRlc3Q7Ci0gIGRl
bGV0ZVtdIGRlc3Q7CisKKyAgcGF0aG5hbWVfLmVyYXNlKG91dCwgcGF0aG5hbWVfLmVuZCgpKTsK
IH0KIAogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgKaW5kZXggNDc5MDA0MTQ5YjQ4YzI4NTY0ZTIw
NWUwMjEwYzZjNDMxMDQxOGI1Yi4uY2ZmNTM0ZWU5ZWRlMzcyNGI5MjM1Nzk3NWE4OGFiY2E4NjI5
N2Q3MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWludGVy
bmFsLWlubC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1pbnRlcm5h
bC1pbmwuaApAQCAtMzEsOCArMzEsOCBAQAogLy8gVGhpcyBmaWxlIGNvbnRhaW5zIHB1cmVseSBH
b29nbGUgVGVzdCdzIGludGVybmFsIGltcGxlbWVudGF0aW9uLiAgUGxlYXNlCiAvLyBETyBOT1Qg
I0lOQ0xVREUgSVQgSU4gQSBVU0VSIFBST0dSQU0uCiAKLSNpZm5kZWYgR1RFU1RfU1JDX0dURVNU
X0lOVEVSTkFMX0lOTF9IXwotI2RlZmluZSBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hf
CisjaWZuZGVmIEdPT0dMRVRFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXworI2RlZmluZSBH
T09HTEVURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KIAogI2lmbmRlZiBfV0lOMzJfV0NF
CiAjIGluY2x1ZGUgPGVycm5vLmg+CkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8c3RyaW5n
Lmg+ICAvLyBGb3IgbWVtbW92ZS4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8
dmVjdG9yPgogCkBAIC04Miw5ICs4NCwxMSBAQCBjb25zdCBjaGFyIGtBbHNvUnVuRGlzYWJsZWRU
ZXN0c0ZsYWdbXSA9ICJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyI7CiBjb25zdCBjaGFyIGtCcmVh
a09uRmFpbHVyZUZsYWdbXSA9ICJicmVha19vbl9mYWlsdXJlIjsKIGNvbnN0IGNoYXIga0NhdGNo
RXhjZXB0aW9uc0ZsYWdbXSA9ICJjYXRjaF9leGNlcHRpb25zIjsKIGNvbnN0IGNoYXIga0NvbG9y
RmxhZ1tdID0gImNvbG9yIjsKK2NvbnN0IGNoYXIga0ZhaWxGYXN0W10gPSAiZmFpbF9mYXN0IjsK
IGNvbnN0IGNoYXIga0ZpbHRlckZsYWdbXSA9ICJmaWx0ZXIiOwogY29uc3QgY2hhciBrTGlzdFRl
c3RzRmxhZ1tdID0gImxpc3RfdGVzdHMiOwogY29uc3QgY2hhciBrT3V0cHV0RmxhZ1tdID0gIm91
dHB1dCI7Citjb25zdCBjaGFyIGtCcmllZkZsYWdbXSA9ICJicmllZiI7CiBjb25zdCBjaGFyIGtQ
cmludFRpbWVGbGFnW10gPSAicHJpbnRfdGltZSI7CiBjb25zdCBjaGFyIGtQcmludFVURjhGbGFn
W10gPSAicHJpbnRfdXRmOCI7CiBjb25zdCBjaGFyIGtSYW5kb21TZWVkRmxhZ1tdID0gInJhbmRv
bV9zZWVkIjsKQEAgLTk4LDE0ICsxMDIsMTQgQEAgY29uc3QgY2hhciBrRmxhZ2ZpbGVGbGFnW10g
PSAiZmxhZ2ZpbGUiOwogLy8gQSB2YWxpZCByYW5kb20gc2VlZCBtdXN0IGJlIGluIFsxLCBrTWF4
UmFuZG9tU2VlZF0uCiBjb25zdCBpbnQga01heFJhbmRvbVNlZWQgPSA5OTk5OTsKIAotLy8gZ19o
ZWxwX2ZsYWcgaXMgdHJ1ZSBpZmYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVxdWl2YWxlbnQgZm9y
bSBpcwotLy8gc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCisvLyBnX2hlbHBfZmxhZyBp
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVpdmFsZW50IGZv
cm0KKy8vIGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgogR1RFU1RfQVBJXyBleHRl
cm4gYm9vbCBnX2hlbHBfZmxhZzsKIAogLy8gUmV0dXJucyB0aGUgY3VycmVudCB0aW1lIGluIG1p
bGxpc2Vjb25kcy4KIEdURVNUX0FQSV8gVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygpOwog
Ci0vLyBSZXR1cm5zIHRydWUgaWZmIEdvb2dsZSBUZXN0IHNob3VsZCB1c2UgY29sb3JzIGluIHRo
ZSBvdXRwdXQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgR29vZ2xlIFRlc3Qgc2hv
dWxkIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1dC4KIEdURVNUX0FQSV8gYm9vbCBTaG91bGRVc2VD
b2xvcihib29sIHN0ZG91dF9pc190dHkpOwogCiAvLyBGb3JtYXRzIHRoZSBnaXZlbiB0aW1lIGlu
IG1pbGxpc2Vjb25kcyBhcyBzZWNvbmRzLgpAQCAtMTIyLDExICsxMjYsMTEgQEAgR1RFU1RfQVBJ
XyBzdGQ6OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxs
aXMgbXMpOwogLy8gT24gc3VjY2Vzcywgc3RvcmVzIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBpbiAq
dmFsdWUsIGFuZCByZXR1cm5zCiAvLyB0cnVlLiAgT24gZmFpbHVyZSwgcmV0dXJucyBmYWxzZSB3
aXRob3V0IGNoYW5naW5nICp2YWx1ZS4KIEdURVNUX0FQSV8gYm9vbCBQYXJzZUludDMyRmxhZygK
LSAgICBjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIEludDMyKiB2YWx1ZSk7Cisg
ICAgY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBpbnQzMl90KiB2YWx1ZSk7CiAK
IC8vIFJldHVybnMgYSByYW5kb20gc2VlZCBpbiByYW5nZSBbMSwga01heFJhbmRvbVNlZWRdIGJh
c2VkIG9uIHRoZQogLy8gZ2l2ZW4gLS1ndGVzdF9yYW5kb21fc2VlZCBmbGFnIHZhbHVlLgotaW5s
aW5lIGludCBHZXRSYW5kb21TZWVkRnJvbUZsYWcoSW50MzIgcmFuZG9tX3NlZWRfZmxhZykgewor
aW5saW5lIGludCBHZXRSYW5kb21TZWVkRnJvbUZsYWcoaW50MzJfdCByYW5kb21fc2VlZF9mbGFn
KSB7CiAgIGNvbnN0IHVuc2lnbmVkIGludCByYXdfc2VlZCA9IChyYW5kb21fc2VlZF9mbGFnID09
IDApID8KICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oR2V0VGltZUluTWlsbGlzKCkp
IDoKICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ocmFuZG9tX3NlZWRfZmxhZyk7CkBA
IC0xNjIsMTAgKzE2NiwxMiBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgICAgY29sb3JfID0g
R1RFU1RfRkxBRyhjb2xvcik7CiAgICAgZGVhdGhfdGVzdF9zdHlsZV8gPSBHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpOwogICAgIGRlYXRoX3Rlc3RfdXNlX2ZvcmtfID0gR1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3VzZV9mb3JrKTsKKyAgICBmYWlsX2Zhc3RfID0gR1RFU1RfRkxBRyhmYWlsX2Zh
c3QpOwogICAgIGZpbHRlcl8gPSBHVEVTVF9GTEFHKGZpbHRlcik7CiAgICAgaW50ZXJuYWxfcnVu
X2RlYXRoX3Rlc3RfID0gR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCk7CiAgICAg
bGlzdF90ZXN0c18gPSBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpOwogICAgIG91dHB1dF8gPSBHVEVT
VF9GTEFHKG91dHB1dCk7CisgICAgYnJpZWZfID0gR1RFU1RfRkxBRyhicmllZik7CiAgICAgcHJp
bnRfdGltZV8gPSBHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogICAgIHByaW50X3V0ZjhfID0gR1RF
U1RfRkxBRyhwcmludF91dGY4KTsKICAgICByYW5kb21fc2VlZF8gPSBHVEVTVF9GTEFHKHJhbmRv
bV9zZWVkKTsKQEAgLTE4NSw5ICsxOTEsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXIgewogICAg
IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPSBkZWF0aF90ZXN0X3N0eWxlXzsKICAgICBH
VEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspID0gZGVhdGhfdGVzdF91c2VfZm9ya187CiAg
ICAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gZmlsdGVyXzsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFz
dCkgPSBmYWlsX2Zhc3RfOwogICAgIEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3Qp
ID0gaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfOwogICAgIEdURVNUX0ZMQUcobGlzdF90ZXN0cykg
PSBsaXN0X3Rlc3RzXzsKICAgICBHVEVTVF9GTEFHKG91dHB1dCkgPSBvdXRwdXRfOworICAgIEdU
RVNUX0ZMQUcoYnJpZWYpID0gYnJpZWZfOwogICAgIEdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBw
cmludF90aW1lXzsKICAgICBHVEVTVF9GTEFHKHByaW50X3V0ZjgpID0gcHJpbnRfdXRmOF87CiAg
ICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSByYW5kb21fc2VlZF87CkBAIC0yMDYsMTYgKzIx
NCwxOCBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgIHN0ZDo6c3RyaW5nIGNvbG9yXzsKICAg
c3RkOjpzdHJpbmcgZGVhdGhfdGVzdF9zdHlsZV87CiAgIGJvb2wgZGVhdGhfdGVzdF91c2VfZm9y
a187CisgIGJvb2wgZmFpbF9mYXN0XzsKICAgc3RkOjpzdHJpbmcgZmlsdGVyXzsKICAgc3RkOjpz
dHJpbmcgaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfOwogICBib29sIGxpc3RfdGVzdHNfOwogICBz
dGQ6OnN0cmluZyBvdXRwdXRfOworICBib29sIGJyaWVmXzsKICAgYm9vbCBwcmludF90aW1lXzsK
ICAgYm9vbCBwcmludF91dGY4XzsKLSAgaW50ZXJuYWw6OkludDMyIHJhbmRvbV9zZWVkXzsKLSAg
aW50ZXJuYWw6OkludDMyIHJlcGVhdF87CisgIGludDMyX3QgcmFuZG9tX3NlZWRfOworICBpbnQz
Ml90IHJlcGVhdF87CiAgIGJvb2wgc2h1ZmZsZV87Ci0gIGludGVybmFsOjpJbnQzMiBzdGFja190
cmFjZV9kZXB0aF87CisgIGludDMyX3Qgc3RhY2tfdHJhY2VfZGVwdGhfOwogICBzdGQ6OnN0cmlu
ZyBzdHJlYW1fcmVzdWx0X3RvXzsKICAgYm9vbCB0aHJvd19vbl9mYWlsdXJlXzsKIH0gR1RFU1Rf
QVRUUklCVVRFX1VOVVNFRF87CkBAIC0yMjYsMTEgKzIzNiwxMSBAQCBjbGFzcyBHVGVzdEZsYWdT
YXZlciB7CiAvLyBJZiB0aGUgY29kZV9wb2ludCBpcyBub3QgYSB2YWxpZCBVbmljb2RlIGNvZGUg
cG9pbnQKIC8vIChpLmUuIG91dHNpZGUgb2YgVW5pY29kZSByYW5nZSBVKzAgdG8gVSsxMEZGRkYp
IGl0IHdpbGwgYmUgY29udmVydGVkCiAvLyB0byAiKEludmFsaWQgVW5pY29kZSAweFhYWFhYWFhY
KSIuCi1HVEVTVF9BUElfIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOChVSW50MzIgY29kZV9w
b2ludCk7CitHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOCh1aW50MzJfdCBj
b2RlX3BvaW50KTsKIAogLy8gQ29udmVydHMgYSB3aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJp
bmcgaW4gVVRGLTggZW5jb2RpbmcuCiAvLyBUaGUgd2lkZSBzdHJpbmcgaXMgYXNzdW1lZCB0byBo
YXZlIHRoZSBmb2xsb3dpbmcgZW5jb2Rpbmc6Ci0vLyAgIFVURi0xNiBpZiBzaXplb2Yod2NoYXJf
dCkgPT0gMiAob24gV2luZG93cywgQ3lnd2luLCBTeW1iaWFuIE9TKQorLy8gICBVVEYtMTYgaWYg
c2l6ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdpbmRvd3MsIEN5Z3dpbikKIC8vICAgVVRGLTMyIGlm
IHNpemVvZih3Y2hhcl90KSA9PSA0IChvbiBMaW51eCkKIC8vIFBhcmFtZXRlciBzdHIgcG9pbnRz
IHRvIGEgbnVsbC10ZXJtaW5hdGVkIHdpZGUgc3RyaW5nLgogLy8gUGFyYW1ldGVyIG51bV9jaGFy
cyBtYXkgYWRkaXRpb25hbGx5IGxpbWl0IHRoZSBudW1iZXIKQEAgLTI1OSwxNCArMjY5LDE0IEBA
IEdURVNUX0FQSV8gYm9vbCBTaG91bGRTaGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfc3Ry
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHNoYXJkX2luZGV4X3N0
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGluX3N1YnByb2Nlc3NfZm9yX2Rl
YXRoX3Rlc3QpOwogCi0vLyBQYXJzZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHZhciBhcyBh
biBJbnQzMi4gSWYgaXQgaXMgdW5zZXQsCi0vLyByZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBp
cyBub3QgYW4gSW50MzIsIHByaW50cyBhbiBlcnJvciBhbmQKKy8vIFBhcnNlcyB0aGUgZW52aXJv
bm1lbnQgdmFyaWFibGUgdmFyIGFzIGEgMzItYml0IGludGVnZXIuIElmIGl0IGlzIHVuc2V0LAor
Ly8gcmV0dXJucyBkZWZhdWx0X3ZhbC4gSWYgaXQgaXMgbm90IGEgMzItYml0IGludGVnZXIsIHBy
aW50cyBhbiBlcnJvciBhbmQKIC8vIGFuZCBhYm9ydHMuCi1HVEVTVF9BUElfIEludDMyIEludDMy
RnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIGVudl92YXIsIEludDMyIGRlZmF1bHRfdmFsKTsKK0dU
RVNUX0FQSV8gaW50MzJfdCBJbnQzMkZyb21FbnZPckRpZShjb25zdCBjaGFyKiBlbnZfdmFyLCBp
bnQzMl90IGRlZmF1bHRfdmFsKTsKIAogLy8gR2l2ZW4gdGhlIHRvdGFsIG51bWJlciBvZiBzaGFy
ZHMsIHRoZSBzaGFyZCBpbmRleCwgYW5kIHRoZSB0ZXN0IGlkLAotLy8gcmV0dXJucyB0cnVlIGlm
ZiB0aGUgdGVzdCBzaG91bGQgYmUgcnVuIG9uIHRoaXMgc2hhcmQuIFRoZSB0ZXN0IGlkIGlzCi0v
LyBzb21lIGFyYml0cmFyeSBidXQgdW5pcXVlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGFzc2lnbmVk
IHRvIGVhY2ggdGVzdAorLy8gcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHNo
b3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQKKy8vIGlzIHNvbWUgYXJiaXRy
YXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0
CiAvLyBtZXRob2QuIEFzc3VtZXMgdGhhdCAwIDw9IHNoYXJkX2luZGV4IDwgdG90YWxfc2hhcmRz
LgogR1RFU1RfQVBJXyBib29sIFNob3VsZFJ1blRlc3RPblNoYXJkKAogICAgIGludCB0b3RhbF9z
aGFyZHMsIGludCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpOwpAQCAtMjk3LDcgKzMwNyw4IEBA
IHZvaWQgRm9yRWFjaChjb25zdCBDb250YWluZXImIGMsIEZ1bmN0b3IgZnVuY3RvcikgewogLy8g
aW4gcmFuZ2UgWzAsIHYuc2l6ZSgpKS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBFPgogaW5saW5lIEUg
R2V0RWxlbWVudE9yKGNvbnN0IHN0ZDo6dmVjdG9yPEU+JiB2LCBpbnQgaSwgRSBkZWZhdWx0X3Zh
bHVlKSB7Ci0gIHJldHVybiAoaSA8IDAgfHwgaSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHYuc2l6ZSgp
KSkgPyBkZWZhdWx0X3ZhbHVlIDogdltpXTsKKyAgcmV0dXJuIChpIDwgMCB8fCBpID49IHN0YXRp
Y19jYXN0PGludD4odi5zaXplKCkpKSA/IGRlZmF1bHRfdmFsdWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZbc3RhdGljX2Nhc3Q8c2l6ZV90
PihpKV07CiB9CiAKIC8vIFBlcmZvcm1zIGFuIGluLXBsYWNlIHNodWZmbGUgb2YgYSByYW5nZSBv
ZiB0aGUgdmVjdG9yJ3MgZWxlbWVudHMuCkBAIC0zMTksOCArMzMwLDExIEBAIHZvaWQgU2h1ZmZs
ZVJhbmdlKGludGVybmFsOjpSYW5kb20qIHJhbmRvbSwgaW50IGJlZ2luLCBpbnQgZW5kLAogICAv
LyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Zpc2hlci1ZYXRlc19zaHVmZmxlCiAgIGZv
ciAoaW50IHJhbmdlX3dpZHRoID0gZW5kIC0gYmVnaW47IHJhbmdlX3dpZHRoID49IDI7IHJhbmdl
X3dpZHRoLS0pIHsKICAgICBjb25zdCBpbnQgbGFzdF9pbl9yYW5nZSA9IGJlZ2luICsgcmFuZ2Vf
d2lkdGggLSAxOwotICAgIGNvbnN0IGludCBzZWxlY3RlZCA9IGJlZ2luICsgcmFuZG9tLT5HZW5l
cmF0ZShyYW5nZV93aWR0aCk7Ci0gICAgc3RkOjpzd2FwKCgqdilbc2VsZWN0ZWRdLCAoKnYpW2xh
c3RfaW5fcmFuZ2VdKTsKKyAgICBjb25zdCBpbnQgc2VsZWN0ZWQgPQorICAgICAgICBiZWdpbiAr
CisgICAgICAgIHN0YXRpY19jYXN0PGludD4ocmFuZG9tLT5HZW5lcmF0ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4ocmFuZ2Vfd2lkdGgpKSk7CisgICAgc3RkOjpzd2FwKCgqdilbc3RhdGljX2Nhc3Q8
c2l6ZV90PihzZWxlY3RlZCldLAorICAgICAgICAgICAgICAoKnYpW3N0YXRpY19jYXN0PHNpemVf
dD4obGFzdF9pbl9yYW5nZSldKTsKICAgfQogfQogCkBAIC0zNDcsNyArMzYxLDcgQEAgY2xhc3Mg
VGVzdFByb3BlcnR5S2V5SXMgewogICAvLyBUZXN0UHJvcGVydHlLZXlJcyBoYXMgTk8gZGVmYXVs
dCBjb25zdHJ1Y3Rvci4KICAgZXhwbGljaXQgVGVzdFByb3BlcnR5S2V5SXMoY29uc3Qgc3RkOjpz
dHJpbmcmIGtleSkgOiBrZXlfKGtleSkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0
ZXN0IG5hbWUgb2YgdGVzdCBwcm9wZXJ0eSBtYXRjaGVzIG9uIGtleV8uCisgIC8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBuYW1lIG9mIHRlc3QgcHJvcGVydHkgbWF0Y2hl
cyBvbiBrZXlfLgogICBib29sIG9wZXJhdG9yKCkoY29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3By
b3BlcnR5KSBjb25zdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJvcGVydHkua2V5KCkgPT0ga2V5XzsK
ICAgfQpAQCAtMzgwLDE3ICszOTQsMTAgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdE9wdGlv
bnMgewogCiAgIC8vIEZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyB0aGUgZ3Rlc3RfZmlsdGVyIGZs
YWcuCiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVz
IHRoZSBzdHJpbmcuICBUaGUKLSAgLy8gZmlyc3QgJzonIG9yICdcMCcgY2hhcmFjdGVyIGluIHBh
dHRlcm4gbWFya3MgdGhlIGVuZCBvZiBpdC4KLSAgLy8KLSAgLy8gVGhpcyByZWN1cnNpdmUgYWxn
b3JpdGhtIGlzbid0IHZlcnkgZWZmaWNpZW50LCBidXQgaXMgY2xlYXIgYW5kCi0gIC8vIHdvcmtz
IHdlbGwgZW5vdWdoIGZvciBtYXRjaGluZyB0ZXN0IG5hbWVzLCB3aGljaCBhcmUgc2hvcnQuCi0g
IHN0YXRpYyBib29sIFBhdHRlcm5NYXRjaGVzU3RyaW5nKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNv
bnN0IGNoYXIgKnN0cik7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdXNlci1zcGVjaWZp
ZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHRlc3QgY2FzZQotICAvLyBuYW1lIGFuZCB0aGUgdGVzdCBu
YW1lLgotICBzdGF0aWMgYm9vbCBGaWx0ZXJNYXRjaGVzVGVzdChjb25zdCBzdGQ6OnN0cmluZyAm
dGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nICZ0ZXN0X25hbWUpOworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHVzZXItc3BlY2lmaWVkIGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0CisgIC8vIHN1aXRlIG5h
bWUgYW5kIHRoZSB0ZXN0IG5hbWUuCisgIHN0YXRpYyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNv
bnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X25hbWUpOwogCiAjaWYgR1RFU1RfT1Nf
V0lORE9XUwogICAvLyBGdW5jdGlvbiBmb3Igc3VwcG9ydGluZyB0aGUgZ3Rlc3RfY2F0Y2hfZXhj
ZXB0aW9uIGZsYWcuCkBAIC00NDIsOCArNDQ5LDggQEAgY2xhc3MgT3NTdGFja1RyYWNlR2V0dGVy
IDogcHVibGljIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSB7CiAgcHVibGljOgogICBPc1N0
YWNrVHJhY2VHZXR0ZXIoKSB7fQogCi0gIHZpcnR1YWwgc3RkOjpzdHJpbmcgQ3VycmVudFN0YWNr
VHJhY2UoaW50IG1heF9kZXB0aCwgaW50IHNraXBfY291bnQpOwotICB2aXJ0dWFsIHZvaWQgVXBv
bkxlYXZpbmdHVGVzdCgpOworICBzdGQ6OnN0cmluZyBDdXJyZW50U3RhY2tUcmFjZShpbnQgbWF4
X2RlcHRoLCBpbnQgc2tpcF9jb3VudCkgb3ZlcnJpZGU7CisgIHZvaWQgVXBvbkxlYXZpbmdHVGVz
dCgpIG92ZXJyaWRlOwogCiAgcHJpdmF0ZToKICNpZiBHVEVTVF9IQVNfQUJTTApAQCAtNDc0LDcg
KzQ4MSw3IEBAIGNsYXNzIERlZmF1bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyCiAgIGV4
cGxpY2l0IERlZmF1bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyKFVuaXRUZXN0SW1wbCog
dW5pdF90ZXN0KTsKICAgLy8gSW1wbGVtZW50cyB0aGUgVGVzdFBhcnRSZXN1bHRSZXBvcnRlcklu
dGVyZmFjZS4gUmVwb3J0cyB0aGUgdGVzdCBwYXJ0CiAgIC8vIHJlc3VsdCBpbiB0aGUgY3VycmVu
dCB0ZXN0LgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgogICBVbml0VGVzdElt
cGwqIGNvbnN0IHVuaXRfdGVzdF87CkBAIC00OTAsNyArNDk3LDcgQEAgY2xhc3MgRGVmYXVsdFBl
clRocmVhZFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgZXhwbGljaXQgRGVmYXVsdFBlclRocmVh
ZFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoVW5pdFRlc3RJbXBsKiB1bml0X3Rlc3QpOwogICAvLyBJ
bXBsZW1lbnRzIHRoZSBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlLiBUaGUgaW1wbGVt
ZW50YXRpb24ganVzdAogICAvLyBkZWxlZ2F0ZXMgdG8gdGhlIGN1cnJlbnQgZ2xvYmFsIHRlc3Qg
cGFydCByZXN1bHQgcmVwb3J0ZXIgb2YgKnVuaXRfdGVzdF8uCi0gIHZpcnR1YWwgdm9pZCBSZXBv
cnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKKyAgdm9pZCBS
ZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVycmlk
ZTsKIAogIHByaXZhdGU6CiAgIFVuaXRUZXN0SW1wbCogY29uc3QgdW5pdF90ZXN0XzsKQEAgLTUy
OCwyMiArNTM1LDI1IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgdm9pZCBT
ZXRUZXN0UGFydFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCgKICAgICAgIFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UqIHJlcG9ydGVyKTsKIAotICAvLyBHZXRzIHRoZSBudW1i
ZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IGNhc2VzLgotICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2Nhc2Vf
Y291bnQoKSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBz
dWl0ZXMuCisgIGludCBzdWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291bnQoKSBjb25zdDsKIAotICAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3QgY2FzZXMuCi0gIGludCBmYWlsZWRfdGVz
dF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVz
dCBzdWl0ZXMuCisgIGludCBmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8v
IEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLSAgaW50IHRvdGFsX3Rlc3RfY2Fz
ZV9jb3VudCgpIGNvbnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVz
LgorICBpbnQgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhl
IG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QK
KyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQg
bGVhc3Qgb25lIHRlc3QKICAgLy8gdGhhdCBzaG91bGQgcnVuLgotICBpbnQgdGVzdF9jYXNlX3Rv
X3J1bl9jb3VudCgpIGNvbnN0OworICBpbnQgdGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSBjb25z
dDsKIAogICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KICAgaW50IHN1
Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0OwogCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBz
a2lwcGVkIHRlc3RzLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3Q7CisKICAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4KICAgaW50IGZhaWxlZF90ZXN0X2NvdW50
KCkgY29uc3Q7CiAKQEAgLTU2OSwyNyArNTc5LDMzIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRl
c3RJbXBsIHsKICAgLy8gR2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAg
IFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdCB7IHJldHVybiBlbGFwc2VkX3RpbWVf
OyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBh
bGwgdGVzdCBjYXNlcyBwYXNzZWQpLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3Qgc3VpdGVzCisgIC8vIHBhc3NlZCku
CiAgIGJvb2wgUGFzc2VkKCkgY29uc3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0
dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3QgY2FzZSBm
YWlsZWQKLSAgLy8gb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCisg
IC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5l
LiBzb21lIHRlc3Qgc3VpdGUKKyAgLy8gZmFpbGVkIG9yIHNvbWV0aGluZyBvdXRzaWRlIG9mIGFs
bCB0ZXN0cyBmYWlsZWQpLgogICBib29sIEZhaWxlZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gZmFp
bGVkX3Rlc3RfY2FzZV9jb3VudCgpID4gMCB8fCBhZF9ob2NfdGVzdF9yZXN1bHQoKS0+RmFpbGVk
KCk7CisgICAgcmV0dXJuIGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgPiAwIHx8IGFkX2hvY190
ZXN0X3Jlc3VsdCgpLT5GYWlsZWQoKTsKICAgfQogCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBj
YXNlIGFtb25nIGFsbCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8v
IHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwg
cmV0dXJucyBOVUxMLgotICBjb25zdCBUZXN0Q2FzZSogR2V0VGVzdENhc2UoaW50IGkpIGNvbnN0
IHsKLSAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9jYXNlX2luZGljZXNf
LCBpLCAtMSk7Ci0gICAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2Nhc2VzX1tpXTsK
KyAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0ZXMu
IGkgY2FuIHJhbmdlIGZyb20gMCB0bworICAvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAx
LiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCisgIGNvbnN0IFRlc3RT
dWl0ZSogR2V0VGVzdFN1aXRlKGludCBpKSBjb25zdCB7CisgICAgY29uc3QgaW50IGluZGV4ID0g
R2V0RWxlbWVudE9yKHRlc3Rfc3VpdGVfaW5kaWNlc18sIGksIC0xKTsKKyAgICByZXR1cm4gaW5k
ZXggPCAwID8gbnVsbHB0ciA6IHRlc3Rfc3VpdGVzX1tzdGF0aWNfY2FzdDxzaXplX3Q+KGkpXTsK
ICAgfQogCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFsbCB0aGUgdGVzdCBj
YXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgp
IC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgotICBUZXN0Q2Fz
ZSogR2V0TXV0YWJsZVRlc3RDYXNlKGludCBpKSB7Ci0gICAgY29uc3QgaW50IGluZGV4ID0gR2V0
RWxlbWVudE9yKHRlc3RfY2FzZV9pbmRpY2VzXywgaSwgLTEpOwotICAgIHJldHVybiBpbmRleCA8
IDAgPyBOVUxMIDogdGVzdF9jYXNlc19baW5kZXhdOworICAvLyAgTGVnYWN5IEFQSSBpcyBkZXBy
ZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9U
RVNUX0NBU0VBUElfCisgIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3Qg
eyByZXR1cm4gR2V0VGVzdFN1aXRlKGkpOyB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVH
QUNZX1RFU1RfQ0FTRUFQSV8KKworICAvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcg
YWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rl
c3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMg
TlVMTC4KKyAgVGVzdFN1aXRlKiBHZXRNdXRhYmxlU3VpdGVDYXNlKGludCBpKSB7CisgICAgY29u
c3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3Rfc3VpdGVfaW5kaWNlc18sIGksIC0xKTsK
KyAgICByZXR1cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3Rfc3VpdGVzX1tzdGF0aWNfY2Fz
dDxzaXplX3Q+KGluZGV4KV07CiAgIH0KIAogICAvLyBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGV2
ZW50IGxpc3RlbmVyIGxpc3QuCkBAIC02MjYsMzEgKzY0Miw0MCBAQCBjbGFzcyBHVEVTVF9BUElf
IFVuaXRUZXN0SW1wbCB7CiAgIC8vIHRyYWNlIGJ1dCBCYXIoKSBhbmQgQ3VycmVudE9zU3RhY2tU
cmFjZUV4Y2VwdFRvcCgpIHdvbid0LgogICBzdGQ6OnN0cmluZyBDdXJyZW50T3NTdGFja1RyYWNl
RXhjZXB0VG9wKGludCBza2lwX2NvdW50KSBHVEVTVF9OT19JTkxJTkVfOwogCi0gIC8vIEZpbmRz
IGFuZCByZXR1cm5zIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBkb2Vz
bid0CisgIC8vIEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5h
bWUuICBJZiBvbmUgZG9lc24ndAogICAvLyBleGlzdCwgY3JlYXRlcyBvbmUgYW5kIHJldHVybnMg
aXQuCiAgIC8vCiAgIC8vIEFyZ3VtZW50czoKICAgLy8KLSAgLy8gICB0ZXN0X2Nhc2VfbmFtZTog
bmFtZSBvZiB0aGUgdGVzdCBjYXNlCi0gIC8vICAgdHlwZV9wYXJhbTogICAgIHRoZSBuYW1lIG9m
IHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKLSAgLy8gICAgICAgICAgICAg
ICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0Lgot
ICAvLyAgIHNldF91cF90YzogICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMg
dXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRlYXJfZG93bl90YzogICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotICBUZXN0Q2FzZSogR2V0VGVz
dENhc2UoY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6
U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgICAgICAgVGVz
dDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKTsKKyAgLy8gICB0ZXN0X3N1aXRl
X25hbWU6IG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0eXBlX3BhcmFtOiAgICAgIHRo
ZSBuYW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKKyAgLy8gICAg
ICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6
ZWQgdGVzdC4KKyAgLy8gICBzZXRfdXBfdGM6ICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHRlYXJfZG93bl90YzogICAgcG9p
bnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1aXRlCisgIFRl
c3RTdWl0ZSogR2V0VGVzdFN1aXRlKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3Qg
Y2hhciogdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlNl
dFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjKTsKKworLy8gIExlZ2Fj
eSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICBUZXN0Q2FzZSogR2V0VGVzdENhc2UoY29uc3Qg
Y2hhciogdGVzdF9jYXNlX25hbWUsIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCisgICAgICAgICAg
ICAgICAgICAgICAgICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVh
cl9kb3duX3RjKSB7CisgICAgcmV0dXJuIEdldFRlc3RTdWl0ZSh0ZXN0X2Nhc2VfbmFtZSwgdHlw
ZV9wYXJhbSwgc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpOworICB9CisjZW5kaWYgIC8vICBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBBZGRzIGEgVGVzdEluZm8gdG8g
dGhlIHVuaXQgdGVzdC4KICAgLy8KICAgLy8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIHNldF91
cF90YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNh
c2UKLSAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVh
cnMgZG93biB0aGUgdGVzdCBjYXNlCisgIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRo
ZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25f
dGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0
ZQogICAvLyAgIHRlc3RfaW5mbzogICAgdGhlIFRlc3RJbmZvIG9iamVjdAotICB2b2lkIEFkZFRl
c3RJbmZvKFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91cF90YywKLSAgICAgICAgICAgICAg
ICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMsCisgIHZvaWQgQWRk
VGVzdEluZm8oaW50ZXJuYWw6OlNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAg
ICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMs
CiAgICAgICAgICAgICAgICAgICAgVGVzdEluZm8qIHRlc3RfaW5mbykgeworI2lmIEdURVNUX0hB
U19ERUFUSF9URVNUCiAgICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCB0aHJlYWQtc2FmZSBkZWF0
aCB0ZXN0cywgd2UgbmVlZCB0bwogICAgIC8vIHJlbWVtYmVyIHRoZSBvcmlnaW5hbCB3b3JraW5n
IGRpcmVjdG9yeSB3aGVuIHRoZSB0ZXN0IHByb2dyYW0KICAgICAvLyB3YXMgZmlyc3QgaW52b2tl
ZC4gIFdlIGNhbm5vdCBkbyB0aGlzIGluIFJVTl9BTExfVEVTVFMoKSwgYXMKQEAgLTY2MywyMiAr
Njg4LDMzIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgICAgIEdURVNUX0NI
RUNLXyghb3JpZ2luYWxfd29ya2luZ19kaXJfLklzRW1wdHkoKSkKICAgICAgICAgICA8PCAiRmFp
bGVkIHRvIGdldCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4iOwogICAgIH0KKyNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAotICAgIEdldFRlc3RDYXNlKHRlc3RfaW5mby0+
dGVzdF9jYXNlX25hbWUoKSwKLSAgICAgICAgICAgICAgICB0ZXN0X2luZm8tPnR5cGVfcGFyYW0o
KSwKLSAgICAgICAgICAgICAgICBzZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAgdGVhcl9kb3du
X3RjKS0+QWRkVGVzdEluZm8odGVzdF9pbmZvKTsKKyAgICBHZXRUZXN0U3VpdGUodGVzdF9pbmZv
LT50ZXN0X3N1aXRlX25hbWUoKSwgdGVzdF9pbmZvLT50eXBlX3BhcmFtKCksCisgICAgICAgICAg
ICAgICAgIHNldF91cF90YywgdGVhcl9kb3duX3RjKQorICAgICAgICAtPkFkZFRlc3RJbmZvKHRl
c3RfaW5mbyk7CiAgIH0KIAotICAvLyBSZXR1cm5zIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lz
dHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKKyAgLy8gUmV0dXJucyBQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogICAvLyB2
YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBhbmQgcmVnaXN0ZXIgdGhl
bS4KLSAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5JiBwYXJhbWV0ZXJp
emVkX3Rlc3RfcmVnaXN0cnkoKSB7CisgIGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
UmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpIHsKICAgICByZXR1cm4gcGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKICAgfQogCi0gIC8vIFNldHMgdGhlIFRlc3RDYXNl
IG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLgotICB2b2lkIHNl
dF9jdXJyZW50X3Rlc3RfY2FzZShUZXN0Q2FzZSogYV9jdXJyZW50X3Rlc3RfY2FzZSkgewotICAg
IGN1cnJlbnRfdGVzdF9jYXNlXyA9IGFfY3VycmVudF90ZXN0X2Nhc2U7CisgIHN0ZDo6c2V0PHN0
ZDo6c3RyaW5nPiogaWdub3JlZF9wYXJhbWV0ZXJpemVkX3Rlc3Rfc3VpdGVzKCkgeworICAgIHJl
dHVybiAmaWdub3JlZF9wYXJhbWV0ZXJpemVkX3Rlc3Rfc3VpdGVzXzsKKyAgfQorCisgIC8vIFJl
dHVybnMgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBvYmplY3QgdXNlZCB0byBr
ZWVwIHRyYWNrIG9mCisgIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlh
dGlvbnMgb2YgdGhlbS4KKyAgaW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVn
aXN0cnkmCisgIHR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgeworICAgIHJldHVy
biB0eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV87CisgIH0KKworICAvLyBTZXRzIHRo
ZSBUZXN0U3VpdGUgb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcu
CisgIHZvaWQgc2V0X2N1cnJlbnRfdGVzdF9zdWl0ZShUZXN0U3VpdGUqIGFfY3VycmVudF90ZXN0
X3N1aXRlKSB7CisgICAgY3VycmVudF90ZXN0X3N1aXRlXyA9IGFfY3VycmVudF90ZXN0X3N1aXRl
OwogICB9CiAKICAgLy8gU2V0cyB0aGUgVGVzdEluZm8gb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0
J3MgY3VycmVudGx5IHJ1bm5pbmcuICBJZgpAQCAtNjg5LDcgKzcyNSw3IEBAIGNsYXNzIEdURVNU
X0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgfQogCiAgIC8vIFJlZ2lzdGVycyBhbGwgcGFyYW1ldGVy
aXplZCB0ZXN0cyBkZWZpbmVkIHVzaW5nIFRFU1RfUCBhbmQKLSAgLy8gSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AsIGNyZWF0aW5nIHJlZ3VsYXIgdGVzdHMgZm9yIGVhY2ggdGVzdC9wYXJhbWV0ZXIK
KyAgLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QLCBjcmVhdGluZyByZWd1bGFyIHRlc3RzIGZv
ciBlYWNoIHRlc3QvcGFyYW1ldGVyCiAgIC8vIGNvbWJpbmF0aW9uLiBUaGlzIG1ldGhvZCBjYW4g
YmUgY2FsbGVkIG1vcmUgdGhlbiBvbmNlOyBpdCBoYXMgZ3VhcmRzCiAgIC8vIHByb3RlY3Rpbmcg
ZnJvbSByZWdpc3RlcmluZyB0aGUgdGVzdHMgbW9yZSB0aGVuIG9uY2UuICBJZgogICAvLyB2YWx1
ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFyZSBkaXNhYmxlZCwgUmVnaXN0ZXJQYXJhbWV0ZXJpemVk
VGVzdHMgaXMKQEAgLTcwNCw3ICs3NDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1w
bCB7CiAKICAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cywgZXhjZXB0IHRoZSBh
ZCBob2MgdGVzdHMuCiAgIHZvaWQgQ2xlYXJOb25BZEhvY1Rlc3RSZXN1bHQoKSB7Ci0gICAgRm9y
RWFjaCh0ZXN0X2Nhc2VzXywgVGVzdENhc2U6OkNsZWFyVGVzdENhc2VSZXN1bHQpOworICAgIEZv
ckVhY2godGVzdF9zdWl0ZXNfLCBUZXN0U3VpdGU6OkNsZWFyVGVzdFN1aXRlUmVzdWx0KTsKICAg
fQogCiAgIC8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhZC1ob2MgdGVzdCBhc3NlcnRpb25zLgpA
QCAtNzEzLDcgKzc0OSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgfQog
CiAgIC8vIEFkZHMgYSBUZXN0UHJvcGVydHkgdG8gdGhlIGN1cnJlbnQgVGVzdFJlc3VsdCBvYmpl
Y3Qgd2hlbiBpbnZva2VkIGluIGEKLSAgLy8gY29udGV4dCBvZiBhIHRlc3Qgb3IgYSB0ZXN0IGNh
c2UsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0LiBJZiB0aGUKKyAgLy8gY29udGV4dCBv
ZiBhIHRlc3Qgb3IgYSB0ZXN0IHN1aXRlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldC4g
SWYgdGhlCiAgIC8vIHJlc3VsdCBhbHJlYWR5IGNvbnRhaW5zIGEgcHJvcGVydHkgd2l0aCB0aGUg
c2FtZSBrZXksIHRoZSB2YWx1ZSB3aWxsIGJlCiAgIC8vIHVwZGF0ZWQuCiAgIHZvaWQgUmVjb3Jk
UHJvcGVydHkoY29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KTsKQEAgLTcyNSw3ICs3
NjEsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1wbCB7CiAKICAgLy8gTWF0Y2hlcyB0
aGUgZnVsbCBuYW1lIG9mIGVhY2ggdGVzdCBhZ2FpbnN0IHRoZSB1c2VyLXNwZWNpZmllZAogICAv
LyBmaWx0ZXIgdG8gZGVjaWRlIHdoZXRoZXIgdGhlIHRlc3Qgc2hvdWxkIHJ1biwgdGhlbiByZWNv
cmRzIHRoZQotICAvLyByZXN1bHQgaW4gZWFjaCBUZXN0Q2FzZSBhbmQgVGVzdEluZm8gb2JqZWN0
LgorICAvLyByZXN1bHQgaW4gZWFjaCBUZXN0U3VpdGUgYW5kIFRlc3RJbmZvIG9iamVjdC4KICAg
Ly8gSWYgc2hhcmRfdGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wsIGZ1cnRoZXIgZmls
dGVycyB0ZXN0cwogICAvLyBiYXNlZCBvbiBzaGFyZGluZyB2YXJpYWJsZXMgaW4gdGhlIGVudmly
b25tZW50LgogICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVu
LgpAQCAtNzM0LDcgKzc3MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAg
Ly8gUHJpbnRzIHRoZSBuYW1lcyBvZiB0aGUgdGVzdHMgbWF0Y2hpbmcgdGhlIHVzZXItc3BlY2lm
aWVkIGZpbHRlciBmbGFnLgogICB2b2lkIExpc3RUZXN0c01hdGNoaW5nRmlsdGVyKCk7CiAKLSAg
Y29uc3QgVGVzdENhc2UqIGN1cnJlbnRfdGVzdF9jYXNlKCkgY29uc3QgeyByZXR1cm4gY3VycmVu
dF90ZXN0X2Nhc2VfOyB9CisgIGNvbnN0IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkg
Y29uc3QgeyByZXR1cm4gY3VycmVudF90ZXN0X3N1aXRlXzsgfQogICBUZXN0SW5mbyogY3VycmVu
dF90ZXN0X2luZm8oKSB7IHJldHVybiBjdXJyZW50X3Rlc3RfaW5mb187IH0KICAgY29uc3QgVGVz
dEluZm8qIGN1cnJlbnRfdGVzdF9pbmZvKCkgY29uc3QgeyByZXR1cm4gY3VycmVudF90ZXN0X2lu
Zm9fOyB9CiAKQEAgLTc5NSwxMSArODMxLDExIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJ
bXBsIHsKICAgLy8gR2V0cyB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCiAgIGludGVybmFs
OjpSYW5kb20qIHJhbmRvbSgpIHsgcmV0dXJuICZyYW5kb21fOyB9CiAKLSAgLy8gU2h1ZmZsZXMg
YWxsIHRlc3QgY2FzZXMsIGFuZCB0aGUgdGVzdHMgd2l0aGluIGVhY2ggdGVzdCBjYXNlLAorICAv
LyBTaHVmZmxlcyBhbGwgdGVzdCBzdWl0ZXMsIGFuZCB0aGUgdGVzdHMgd2l0aGluIGVhY2ggdGVz
dCBzdWl0ZSwKICAgLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3RpbGwgcnVu
IGZpcnN0LgogICB2b2lkIFNodWZmbGVUZXN0cygpOwogCi0gIC8vIFJlc3RvcmVzIHRoZSB0ZXN0
IGNhc2VzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUu
CisgIC8vIFJlc3RvcmVzIHRoZSB0ZXN0IHN1aXRlcyBhbmQgdGVzdHMgdG8gdGhlaXIgb3JkZXIg
YmVmb3JlIHRoZSBmaXJzdCBzaHVmZmxlLgogICB2b2lkIFVuc2h1ZmZsZVRlc3RzKCk7CiAKICAg
Ly8gUmV0dXJucyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSBhdCB0
aGUgbW9tZW50CkBAIC04MzksMzEgKzg3NSwzNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0
SW1wbCB7CiAgIC8vIGJlZm9yZS9hZnRlciB0aGUgdGVzdHMgYXJlIHJ1bi4KICAgc3RkOjp2ZWN0
b3I8RW52aXJvbm1lbnQqPiBlbnZpcm9ubWVudHNfOwogCi0gIC8vIFRoZSB2ZWN0b3Igb2YgVGVz
dENhc2VzIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKKyAgLy8gVGhlIHZl
Y3RvciBvZiBUZXN0U3VpdGVzIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUK
ICAgLy8gZWxlbWVudHMgaW4gdGhlIHZlY3Rvci4KLSAgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiB0
ZXN0X2Nhc2VzXzsKKyAgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4gdGVzdF9zdWl0ZXNfOwogCi0g
IC8vIFByb3ZpZGVzIGEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gZm9yIHRoZSB0ZXN0IGNhc2UgbGlz
dCB0byBhbGxvdwotICAvLyBlYXN5IHNodWZmbGluZyBhbmQgcmVzdG9yaW5nIHRoZSB0ZXN0IGNh
c2Ugb3JkZXIuICBUaGUgaS10aAotICAvLyBlbGVtZW50IG9mIHRoaXMgdmVjdG9yIGlzIHRoZSBp
bmRleCBvZiB0aGUgaS10aCB0ZXN0IGNhc2UgaW4gdGhlCisgIC8vIFByb3ZpZGVzIGEgbGV2ZWwg
b2YgaW5kaXJlY3Rpb24gZm9yIHRoZSB0ZXN0IHN1aXRlIGxpc3QgdG8gYWxsb3cKKyAgLy8gZWFz
eSBzaHVmZmxpbmcgYW5kIHJlc3RvcmluZyB0aGUgdGVzdCBzdWl0ZSBvcmRlci4gIFRoZSBpLXRo
CisgIC8vIGVsZW1lbnQgb2YgdGhpcyB2ZWN0b3IgaXMgdGhlIGluZGV4IG9mIHRoZSBpLXRoIHRl
c3Qgc3VpdGUgaW4gdGhlCiAgIC8vIHNodWZmbGVkIG9yZGVyLgotICBzdGQ6OnZlY3RvcjxpbnQ+
IHRlc3RfY2FzZV9pbmRpY2VzXzsKKyAgc3RkOjp2ZWN0b3I8aW50PiB0ZXN0X3N1aXRlX2luZGlj
ZXNfOwogCiAgIC8vIFBhcmFtZXRlcml6ZWRUZXN0UmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8gcmVn
aXN0ZXIgdmFsdWUtcGFyYW1ldGVyaXplZAogICAvLyB0ZXN0cy4KLSAgaW50ZXJuYWw6OlBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV87Cisg
IGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgcGFyYW1ldGVyaXplZF90
ZXN0X3JlZ2lzdHJ5XzsKKyAgaW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVn
aXN0cnkKKyAgICAgIHR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKworICAvLyBU
aGUgc2V0IGhvbGRpbmcgdGhlIG5hbWUgb2YgcGFyYW1ldGVyaXplZAorICAvLyB0ZXN0IHN1aXRl
cyB0aGF0IG1heSBnbyB1bmluc3RhbnRpYXRlZC4KKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGln
bm9yZWRfcGFyYW1ldGVyaXplZF90ZXN0X3N1aXRlc187CiAKICAgLy8gSW5kaWNhdGVzIHdoZXRo
ZXIgUmVnaXN0ZXJQYXJhbWV0ZXJpemVkVGVzdHMoKSBoYXMgYmVlbiBjYWxsZWQgYWxyZWFkeS4K
ICAgYm9vbCBwYXJhbWV0ZXJpemVkX3Rlc3RzX3JlZ2lzdGVyZWRfOwogCi0gIC8vIEluZGV4IG9m
IHRoZSBsYXN0IGRlYXRoIHRlc3QgY2FzZSByZWdpc3RlcmVkLiAgSW5pdGlhbGx5IC0xLgotICBp
bnQgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfOworICAvLyBJbmRleCBvZiB0aGUgbGFzdCBkZWF0aCB0
ZXN0IHN1aXRlIHJlZ2lzdGVyZWQuICBJbml0aWFsbHkgLTEuCisgIGludCBsYXN0X2RlYXRoX3Rl
c3Rfc3VpdGVfOwogCi0gIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBUZXN0Q2FzZSBmb3IgdGhlIGN1
cnJlbnRseSBydW5uaW5nIHRlc3QuICBJdAotICAvLyBjaGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdv
ZXMgdGhyb3VnaCBvbmUgdGVzdCBjYXNlIGFmdGVyIGFub3RoZXIuCisgIC8vIFRoaXMgcG9pbnRz
IHRvIHRoZSBUZXN0U3VpdGUgZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LiAgSXQKKyAg
Ly8gY2hhbmdlcyBhcyBHb29nbGUgVGVzdCBnb2VzIHRocm91Z2ggb25lIHRlc3Qgc3VpdGUgYWZ0
ZXIgYW5vdGhlci4KICAgLy8gV2hlbiBubyB0ZXN0IGlzIHJ1bm5pbmcsIHRoaXMgaXMgc2V0IHRv
IE5VTEwgYW5kIEdvb2dsZSBUZXN0CiAgIC8vIHN0b3JlcyBhc3NlcnRpb24gcmVzdWx0cyBpbiBh
ZF9ob2NfdGVzdF9yZXN1bHRfLiAgSW5pdGlhbGx5IE5VTEwuCi0gIFRlc3RDYXNlKiBjdXJyZW50
X3Rlc3RfY2FzZV87CisgIFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlXzsKIAogICAvLyBU
aGlzIHBvaW50cyB0byB0aGUgVGVzdEluZm8gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0
LiAgSXQKICAgLy8gY2hhbmdlcyBhcyBHb29nbGUgVGVzdCBnb2VzIHRocm91Z2ggb25lIHRlc3Qg
YWZ0ZXIgYW5vdGhlci4gIFdoZW4KQEAgLTg5MSw3ICs5MzMsNyBAQCBjbGFzcyBHVEVTVF9BUElf
IFVuaXRUZXN0SW1wbCB7CiAgIC8vIGRlc2lyZWQuCiAgIE9zU3RhY2tUcmFjZUdldHRlckludGVy
ZmFjZSogb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXzsKIAotICAvLyBUcnVlIGlmZiBQb3N0RmxhZ1Bh
cnNpbmdJbml0KCkgaGFzIGJlZW4gY2FsbGVkLgorICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIFBv
c3RGbGFnUGFyc2luZ0luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCiAgIGJvb2wgcG9zdF9mbGFnX3Bh
cnNlX2luaXRfcGVyZm9ybWVkXzsKIAogICAvLyBUaGUgcmFuZG9tIG51bWJlciBzZWVkIHVzZWQg
YXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGVzdCBydW4uCkBAIC05MTAsOCArOTUyLDggQEAgY2xh
c3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCiAg
IC8vIFRoZSBkZWNvbXBvc2VkIGNvbXBvbmVudHMgb2YgdGhlIGd0ZXN0X2ludGVybmFsX3J1bl9k
ZWF0aF90ZXN0IGZsYWcsCiAgIC8vIHBhcnNlZCB3aGVuIFJVTl9BTExfVEVTVFMgaXMgY2FsbGVk
LgotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjxJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWc+IGludGVy
bmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfOwotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjxpbnRlcm5h
bDo6RGVhdGhUZXN0RmFjdG9yeT4gZGVhdGhfdGVzdF9mYWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVf
cHRyPEludGVybmFsUnVuRGVhdGhUZXN0RmxhZz4gaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxh
Z187CisgIHN0ZDo6dW5pcXVlX3B0cjxpbnRlcm5hbDo6RGVhdGhUZXN0RmFjdG9yeT4gZGVhdGhf
dGVzdF9mYWN0b3J5XzsKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAogICAvLyBB
IHBlci10aHJlYWQgc3RhY2sgb2YgdHJhY2VzIGNyZWF0ZWQgYnkgdGhlIFNDT1BFRF9UUkFDRSgp
IG1hY3JvLgpAQCAtOTc4LDI0ICsxMDIwLDExIEBAIGJvb2wgUGFyc2VOYXR1cmFsTnVtYmVyKGNv
bnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgSW50ZWdlciogbnVtYmVyKSB7CiAgIGNoYXIqIGVuZDsK
ICAgLy8gQmlnZ2VzdENvbnZlcnRpYmxlIGlzIHRoZSBsYXJnZXN0IGludGVnZXIgdHlwZSB0aGF0
IHN5c3RlbS1wcm92aWRlZAogICAvLyBzdHJpbmctdG8tbnVtYmVyIGNvbnZlcnNpb24gcm91dGlu
ZXMgY2FuIHJldHVybi4KKyAgdXNpbmcgQmlnZ2VzdENvbnZlcnRpYmxlID0gdW5zaWduZWQgbG9u
ZyBsb25nOyAgLy8gTk9MSU5UCiAKLSMgaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhZGVmaW5lZChf
X0dOVUNfXykKLQotICAvLyBNU1ZDIGFuZCBDKysgQnVpbGRlciBkZWZpbmUgX19pbnQ2NCBpbnN0
ZWFkIG9mIHRoZSBzdGFuZGFyZCBsb25nIGxvbmcuCi0gIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2
NCBCaWdnZXN0Q29udmVydGlibGU7Ci0gIGNvbnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQg
PSBfc3RydG91aTY0KHN0ci5jX3N0cigpLCAmZW5kLCAxMCk7Ci0KLSMgZWxzZQotCi0gIHR5cGVk
ZWYgdW5zaWduZWQgbG9uZyBsb25nIEJpZ2dlc3RDb252ZXJ0aWJsZTsgIC8vIE5PTElOVAotICBj
b25zdCBCaWdnZXN0Q29udmVydGlibGUgcGFyc2VkID0gc3RydG91bGwoc3RyLmNfc3RyKCksICZl
bmQsIDEwKTsKLQotIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAmJiAhZGVmaW5lZChfX0dO
VUNfXykKLQorICBjb25zdCBCaWdnZXN0Q29udmVydGlibGUgcGFyc2VkID0gc3RydG91bGwoc3Ry
LmNfc3RyKCksICZlbmQsIDEwKTsgIC8vIE5PTElOVAogICBjb25zdCBib29sIHBhcnNlX3N1Y2Nl
c3MgPSAqZW5kID09ICdcMCcgJiYgZXJybm8gPT0gMDsKIAotICAvLyBGSVhNRTogQ29udmVydCB0
aGlzIHRvIGNvbXBpbGUgdGltZSBhc3NlcnRpb24gd2hlbiBpdCBpcwotICAvLyBhdmFpbGFibGUu
CiAgIEdURVNUX0NIRUNLXyhzaXplb2YoSW50ZWdlcikgPD0gc2l6ZW9mKHBhcnNlZCkpOwogCiAg
IGNvbnN0IEludGVnZXIgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SW50ZWdlcj4ocGFyc2VkKTsKQEAg
LTEwNTksMTggKzEwODgsMTggQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1w
dHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAgICAgICBNYWtlQ29ubmVjdGlvbigpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgflNvY2tldFdyaXRlcigpIHsKKyAgICB+U29ja2V0V3JpdGVyKCkgb3ZlcnJp
ZGUgewogICAgICAgaWYgKHNvY2tmZF8gIT0gLTEpCiAgICAgICAgIENsb3NlQ29ubmVjdGlvbigp
OwogICAgIH0KIAogICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRoZSBzb2NrZXQuCi0gICAgdmly
dHVhbCB2b2lkIFNlbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKKyAgICB2b2lkIFNl
bmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlIHsKICAgICAgIEdURVNUX0NI
RUNLXyhzb2NrZmRfICE9IC0xKQogICAgICAgICAgIDw8ICJTZW5kKCkgY2FuIGJlIGNhbGxlZCBv
bmx5IHdoZW4gdGhlcmUgaXMgYSBjb25uZWN0aW9uLiI7CiAKLSAgICAgIGNvbnN0IGludCBsZW4g
PSBzdGF0aWNfY2FzdDxpbnQ+KG1lc3NhZ2UubGVuZ3RoKCkpOwotICAgICAgaWYgKHdyaXRlKHNv
Y2tmZF8sIG1lc3NhZ2UuY19zdHIoKSwgbGVuKSAhPSBsZW4pIHsKKyAgICAgIGNvbnN0IGF1dG8g
bGVuID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtZXNzYWdlLmxlbmd0aCgpKTsKKyAgICAgIGlmICh3
cml0ZShzb2NrZmRfLCBtZXNzYWdlLmNfc3RyKCksIGxlbikgIT0gc3RhdGljX2Nhc3Q8c3NpemVf
dD4obGVuKSkgewogICAgICAgICBHVEVTVF9MT0dfKFdBUk5JTkcpCiAgICAgICAgICAgICA8PCAi
c3RyZWFtX3Jlc3VsdF90bzogZmFpbGVkIHRvIHN0cmVhbSB0byAiCiAgICAgICAgICAgICA8PCBo
b3N0X25hbWVfIDw8ICI6IiA8PCBwb3J0X251bV87CkBAIC0xMDgyLDcgKzExMTEsNyBAQCBjbGFz
cyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAg
ICB2b2lkIE1ha2VDb25uZWN0aW9uKCk7CiAKICAgICAvLyBDbG9zZXMgdGhlIHNvY2tldC4KLSAg
ICB2b2lkIENsb3NlQ29ubmVjdGlvbigpIHsKKyAgICB2b2lkIENsb3NlQ29ubmVjdGlvbigpIG92
ZXJyaWRlIHsKICAgICAgIEdURVNUX0NIRUNLXyhzb2NrZmRfICE9IC0xKQogICAgICAgICAgIDw8
ICJDbG9zZUNvbm5lY3Rpb24oKSBjYW4gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNv
bm5lY3Rpb24uIjsKIApAQCAtMTEwOCwxMSArMTEzNywxMSBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0
ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgZXhwbGljaXQgU3RyZWFt
aW5nTGlzdGVuZXIoQWJzdHJhY3RTb2NrZXRXcml0ZXIqIHNvY2tldF93cml0ZXIpCiAgICAgICA6
IHNvY2tldF93cml0ZXJfKHNvY2tldF93cml0ZXIpIHsgU3RhcnQoKTsgfQogCi0gIHZvaWQgT25U
ZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8pIHsKKyAgdm9p
ZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLykgb3Zl
cnJpZGUgewogICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1TdGFydCIpOwogICB9CiAKLSAg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAgdm9p
ZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlIHsK
ICAgICAvLyBOb3RlIHRoYXQgR29vZ2xlIFRlc3QgY3VycmVudCBvbmx5IHJlcG9ydCBlbGFwc2Vk
IHRpbWUgZm9yIGVhY2gKICAgICAvLyB0ZXN0IGl0ZXJhdGlvbiwgbm90IGZvciB0aGUgZW50aXJl
IHRlc3QgcHJvZ3JhbS4KICAgICBTZW5kTG4oImV2ZW50PVRlc3RQcm9ncmFtRW5kJnBhc3NlZD0i
ICsgRm9ybWF0Qm9vbCh1bml0X3Rlc3QuUGFzc2VkKCkpKTsKQEAgLTExMjEsNDIgKzExNTAsNDcg
QEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5l
ciB7CiAgICAgc29ja2V0X3dyaXRlcl8tPkNsb3NlQ29ubmVjdGlvbigpOwogICB9CiAKLSAgdm9p
ZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovLCBp
bnQgaXRlcmF0aW9uKSB7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qIHVuaXRfdGVzdCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRl
cmF0aW9uKSBvdmVycmlkZSB7CiAgICAgU2VuZExuKCJldmVudD1UZXN0SXRlcmF0aW9uU3RhcnQm
aXRlcmF0aW9uPSIgKwogICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcoaXRlcmF0aW9uKSk7
CiAgIH0KIAotICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90
ZXN0LCBpbnQgLyogaXRlcmF0aW9uICovKSB7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAv
KiBpdGVyYXRpb24gKi8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RJdGVyYXRp
b25FbmQmcGFzc2VkPSIgKwogICAgICAgICAgICBGb3JtYXRCb29sKHVuaXRfdGVzdC5QYXNzZWQo
KSkgKyAiJmVsYXBzZWRfdGltZT0iICsKICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHVu
aXRfdGVzdC5lbGFwc2VkX3RpbWUoKSkgKyAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0Q2Fz
ZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKKyAgLy8gTm90ZSB0aGF0ICJldmVu
dD1UZXN0Q2FzZVN0YXJ0IiBpcyBhIHdpcmUgZm9ybWF0IGFuZCBoYXMgdG8gcmVtYWluCisgIC8v
ICJjYXNlIiBmb3IgY29tcGF0aWJpbHR5CisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRl
c3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oc3RkOjpzdHJpbmcoImV2
ZW50PVRlc3RDYXNlU3RhcnQmbmFtZT0iKSArIHRlc3RfY2FzZS5uYW1lKCkpOwogICB9CiAKLSAg
dm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKLSAgICBTZW5k
TG4oImV2ZW50PVRlc3RDYXNlRW5kJnBhc3NlZD0iICsgRm9ybWF0Qm9vbCh0ZXN0X2Nhc2UuUGFz
c2VkKCkpCi0gICAgICAgICAgICsgIiZlbGFwc2VkX3RpbWU9IiArIFN0cmVhbWFibGVUb1N0cmlu
Zyh0ZXN0X2Nhc2UuZWxhcHNlZF90aW1lKCkpCi0gICAgICAgICAgICsgIm1zIik7CisgIC8vIE5v
dGUgdGhhdCAiZXZlbnQ9VGVzdENhc2VFbmQiIGlzIGEgd2lyZSBmb3JtYXQgYW5kIGhhcyB0byBy
ZW1haW4KKyAgLy8gImNhc2UiIGZvciBjb21wYXRpYmlsdHkKKyAgdm9pZCBPblRlc3RDYXNlRW5k
KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlIHsKKyAgICBTZW5kTG4oImV2ZW50
PVRlc3RDYXNlRW5kJnBhc3NlZD0iICsgRm9ybWF0Qm9vbCh0ZXN0X2Nhc2UuUGFzc2VkKCkpICsK
KyAgICAgICAgICAgIiZlbGFwc2VkX3RpbWU9IiArIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nh
c2UuZWxhcHNlZF90aW1lKCkpICsKKyAgICAgICAgICAgIm1zIik7CiAgIH0KIAotICB2b2lkIE9u
VGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKKyAgdm9pZCBPblRlc3RTdGFy
dChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZSB7CiAgICAgU2VuZExuKHN0ZDo6
c3RyaW5nKCJldmVudD1UZXN0U3RhcnQmbmFtZT0iKSArIHRlc3RfaW5mby5uYW1lKCkpOwogICB9
CiAKLSAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lk
IE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZSB7CiAgICAgU2Vu
ZExuKCJldmVudD1UZXN0RW5kJnBhc3NlZD0iICsKICAgICAgICAgICAgRm9ybWF0Qm9vbCgodGVz
dF9pbmZvLnJlc3VsdCgpKS0+UGFzc2VkKCkpICsKICAgICAgICAgICAgIiZlbGFwc2VkX3RpbWU9
IiArCiAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZygodGVzdF9pbmZvLnJlc3VsdCgpKS0+
ZWxhcHNlZF90aW1lKCkpICsgIm1zIik7CiAgIH0KIAotICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQo
Y29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIHsKKyAgdm9pZCBPblRlc3RQ
YXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSBvdmVycmlk
ZSB7CiAgICAgY29uc3QgY2hhciogZmlsZV9uYW1lID0gdGVzdF9wYXJ0X3Jlc3VsdC5maWxlX25h
bWUoKTsKLSAgICBpZiAoZmlsZV9uYW1lID09IE5VTEwpCi0gICAgICBmaWxlX25hbWUgPSAiIjsK
KyAgICBpZiAoZmlsZV9uYW1lID09IG51bGxwdHIpIGZpbGVfbmFtZSA9ICIiOwogICAgIFNlbmRM
bigiZXZlbnQ9VGVzdFBhcnRSZXN1bHQmZmlsZT0iICsgVXJsRW5jb2RlKGZpbGVfbmFtZSkgKwog
ICAgICAgICAgICAiJmxpbmU9IiArIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3BhcnRfcmVzdWx0
LmxpbmVfbnVtYmVyKCkpICsKICAgICAgICAgICAgIiZtZXNzYWdlPSIgKyBVcmxFbmNvZGUodGVz
dF9wYXJ0X3Jlc3VsdC5tZXNzYWdlKCkpKTsKQEAgLTExNzIsNyArMTIwNiw3IEBAIGNsYXNzIFN0
cmVhbWluZ0xpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogCiAgIHN0
ZDo6c3RyaW5nIEZvcm1hdEJvb2woYm9vbCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPyAiMSIgOiAi
MCI7IH0KIAotICBjb25zdCBzY29wZWRfcHRyPEFic3RyYWN0U29ja2V0V3JpdGVyPiBzb2NrZXRf
d3JpdGVyXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U29ja2V0V3JpdGVyPiBz
b2NrZXRfd3JpdGVyXzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFN0cmVh
bWluZ0xpc3RlbmVyKTsKIH07ICAvLyBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lcgpAQCAtMTE4NCw0
ICsxMjE4LDQgQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZl
bnRMaXN0ZW5lciB7CiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQy
NTEKIAotI2VuZGlmICAvLyBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCisjZW5kaWYg
IC8vIEdPT0dMRVRFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwppbmRleCBmZWNiNWQxMWMyMTI5NmE5MTgxYTExMjgw
MjI2MDY3YjY0M2VkZDA1Li4zZjM5ZjcxYzA3NDU5YjVjMDExMDU3NzcxMTM0ZTVjMmI5OGNlOWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwpAQCAtMzEsMTYg
KzMxLDIxIEBACiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCiAjaW5j
bHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
KyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxjc3Rk
aW50PgogI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgogCiAjaWYgR1RFU1Rf
T1NfV0lORE9XUwogIyBpbmNsdWRlIDx3aW5kb3dzLmg+CiAjIGluY2x1ZGUgPGlvLmg+CiAjIGlu
Y2x1ZGUgPHN5cy9zdGF0Lmg+CiAjIGluY2x1ZGUgPG1hcD4gIC8vIFVzZWQgaW4gVGhyZWFkTG9j
YWwuCisjIGlmZGVmIF9NU0NfVkVSCisjICBpbmNsdWRlIDxjcnRkYmcuaD4KKyMgZW5kaWYgIC8v
IF9NU0NfVkVSCiAjZWxzZQogIyBpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZiAgLy8gR1RFU1Rf
T1NfV0lORE9XUwpAQCAtNTEsNiArNTYsMTQgQEAKICMgaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4K
ICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKKyNpZiBHVEVTVF9PU19EUkFHT05GTFkgfHwgR1RF
U1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgXAorICAgIEdURVNUX09T
X05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECisjIGluY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyMg
aWYgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfR05V
X0tGUkVFQlNECisjICBpbmNsdWRlIDxzeXMvdXNlci5oPgorIyBlbmRpZgorI2VuZGlmCisKICNp
ZiBHVEVTVF9PU19RTlgKICMgaW5jbHVkZSA8ZGV2Y3RsLmg+CiAjIGluY2x1ZGUgPGZjbnRsLmg+
CkBAIC0xMDUsNyArMTE4LDcgQEAgVCBSZWFkUHJvY0ZpbGVGaWVsZChjb25zdCBzdGQ6OnN0cmlu
ZyYgZmlsZW5hbWUsIGludCBmaWVsZCkgewogc2l6ZV90IEdldFRocmVhZENvdW50KCkgewogICBj
b25zdCBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9CiAgICAgICAoTWVzc2FnZSgpIDw8ICIvcHJvYy8i
IDw8IGdldHBpZCgpIDw8ICIvc3RhdCIpLkdldFN0cmluZygpOwotICByZXR1cm4gUmVhZFByb2NG
aWxlRmllbGQ8aW50PihmaWxlbmFtZSwgMTkpOworICByZXR1cm4gUmVhZFByb2NGaWxlRmllbGQ8
c2l6ZV90PihmaWxlbmFtZSwgMTkpOwogfQogCiAjZWxpZiBHVEVTVF9PU19NQUMKQEAgLTEyNyw2
ICsxNDAsODIgQEAgc2l6ZV90IEdldFRocmVhZENvdW50KCkgewogICB9CiB9CiAKKyNlbGlmIEdU
RVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJF
RUJTRCB8fCBcCisgICAgICBHVEVTVF9PU19ORVRCU0QKKworI2lmIEdURVNUX09TX05FVEJTRAor
I3VuZGVmIEtFUk5fUFJPQworI2RlZmluZSBLRVJOX1BST0MgS0VSTl9QUk9DMgorI2RlZmluZSBr
aW5mb19wcm9jIGtpbmZvX3Byb2MyCisjZW5kaWYKKworI2lmIEdURVNUX09TX0RSQUdPTkZMWQor
I2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua3BfbnRocmVhZHMpCisjZWxpZiBHVEVTVF9PU19GUkVF
QlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRAorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua2lf
bnVtdGhyZWFkcykKKyNlbGlmIEdURVNUX09TX05FVEJTRAorI2RlZmluZSBLUF9OTFdQKGtwKSAo
a3AucF9ubHdwcykKKyNlbmRpZgorCisvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBy
dW5uaW5nIGluIHRoZSBwcm9jZXNzLCBvciAwIHRvIGluZGljYXRlIHRoYXQKKy8vIHdlIGNhbm5v
dCBkZXRlY3QgaXQuCitzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CisgIGludCBtaWJbXSA9IHsK
KyAgICBDVExfS0VSTiwKKyAgICBLRVJOX1BST0MsCisgICAgS0VSTl9QUk9DX1BJRCwKKyAgICBn
ZXRwaWQoKSwKKyNpZiBHVEVTVF9PU19ORVRCU0QKKyAgICBzaXplb2Yoc3RydWN0IGtpbmZvX3By
b2MpLAorICAgIDEsCisjZW5kaWYKKyAgfTsKKyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikg
LyBzaXplb2YobWliWzBdKTsKKyAgc3RydWN0IGtpbmZvX3Byb2MgaW5mbzsKKyAgc2l6ZV90IHNp
emUgPSBzaXplb2YoaW5mbyk7CisgIGlmIChzeXNjdGwobWliLCBtaWJsZW4sICZpbmZvLCAmc2l6
ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorICByZXR1cm4gc3RhdGljX2Nhc3Q8
c2l6ZV90PihLUF9OTFdQKGluZm8pKTsKK30KKyNlbGlmIEdURVNUX09TX09QRU5CU0QKKworLy8g
UmV0dXJucyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgcnVubmluZyBpbiB0aGUgcHJvY2Vzcywgb3Ig
MCB0byBpbmRpY2F0ZSB0aGF0CisvLyB3ZSBjYW5ub3QgZGV0ZWN0IGl0Lgorc2l6ZV90IEdldFRo
cmVhZENvdW50KCkgeworICBpbnQgbWliW10gPSB7CisgICAgQ1RMX0tFUk4sCisgICAgS0VSTl9Q
Uk9DLAorICAgIEtFUk5fUFJPQ19QSUQgfCBLRVJOX1BST0NfU0hPV19USFJFQURTLAorICAgIGdl
dHBpZCgpLAorICAgIHNpemVvZihzdHJ1Y3Qga2luZm9fcHJvYyksCisgICAgMCwKKyAgfTsKKyAg
dV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikgLyBzaXplb2YobWliWzBdKTsKKworICAvLyBnZXQg
bnVtYmVyIG9mIHN0cnVjdHMKKyAgc2l6ZV90IHNpemU7CisgIGlmIChzeXNjdGwobWliLCBtaWJs
ZW4sIE5VTEwsICZzaXplLCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAgbWli
WzVdID0gc3RhdGljX2Nhc3Q8aW50PihzaXplIC8gc3RhdGljX2Nhc3Q8c2l6ZV90PihtaWJbNF0p
KTsKKworICAvLyBwb3B1bGF0ZSBhcnJheSBvZiBzdHJ1Y3RzCisgIHN0cnVjdCBraW5mb19wcm9j
IGluZm9bbWliWzVdXTsKKyAgaWYgKHN5c2N0bChtaWIsIG1pYmxlbiwgJmluZm8sICZzaXplLCBO
VUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gZXhjbHVkZSBlbXB0eSBtZW1i
ZXJzCisgIHNpemVfdCBudGhyZWFkcyA9IDA7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZSAvIHN0YXRpY19jYXN0PHNpemVfdD4obWliWzRdKTsgaSsrKSB7CisgICAgaWYgKGluZm9baV0u
cF90aWQgIT0gLTEpCisgICAgICBudGhyZWFkcysrOworICB9CisgIHJldHVybiBudGhyZWFkczsK
K30KKwogI2VsaWYgR1RFU1RfT1NfUU5YCiAKIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0aHJl
YWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nlc3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhhdApAQCAtMTM4
LDcgKzIyNyw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICAgfQogICBwcm9jZnNfaW5m
byBwcm9jZXNzX2luZm87CiAgIGNvbnN0IGludCBzdGF0dXMgPQotICAgICAgZGV2Y3RsKGZkLCBE
Q01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6ZW9mKHByb2Nlc3NfaW5mbyksIE5VTEwp
OworICAgICAgZGV2Y3RsKGZkLCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6ZW9m
KHByb2Nlc3NfaW5mbyksIG51bGxwdHIpOwogICBjbG9zZShmZCk7CiAgIGlmIChzdGF0dXMgPT0g
RU9LKSB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvY2Vzc19pbmZvLm51bV90
aHJlYWRzKTsKQEAgLTE1Miw3ICsyNDEsNyBAQCBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiBz
aXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAgIHN0cnVjdCBwcm9jZW50cnk2NCBlbnRyeTsKICAg
cGlkX3QgcGlkID0gZ2V0cGlkKCk7Ci0gIGludCBzdGF0dXMgPSBnZXRwcm9jczY0KCZlbnRyeSwg
c2l6ZW9mKGVudHJ5KSwgTlVMTCwgMCwgJnBpZCwgMSk7CisgIGludCBzdGF0dXMgPSBnZXRwcm9j
czY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgbnVsbHB0ciwgMCwgJnBpZCwgMSk7CiAgIGlmIChz
dGF0dXMgPT0gMSkgewogICAgIHJldHVybiBlbnRyeS5waV90aGNvdW50OwogICB9IGVsc2UgewpA
QCAtMTkyLDcgKzI4MSw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICNpZiBHVEVTVF9J
U19USFJFQURTQUZFICYmIEdURVNUX09TX1dJTkRPV1MKIAogdm9pZCBTbGVlcE1pbGxpc2Vjb25k
cyhpbnQgbikgewotICA6OlNsZWVwKG4pOworICA6OlNsZWVwKHN0YXRpY19jYXN0PERXT1JEPihu
KSk7CiB9CiAKIEF1dG9IYW5kbGU6OkF1dG9IYW5kbGUoKQpAQCAtMjMwLDE1ICszMTksMTUgQEAg
dm9pZCBBdXRvSGFuZGxlOjpSZXNldChIQU5ETEUgaGFuZGxlKSB7CiBib29sIEF1dG9IYW5kbGU6
OklzQ2xvc2VhYmxlKCkgY29uc3QgewogICAvLyBEaWZmZXJlbnQgV2luZG93cyBBUElzIG1heSB1
c2UgZWl0aGVyIG9mIHRoZXNlIHZhbHVlcyB0byByZXByZXNlbnQgYW4KICAgLy8gaW52YWxpZCBo
YW5kbGUuCi0gIHJldHVybiBoYW5kbGVfICE9IE5VTEwgJiYgaGFuZGxlXyAhPSBJTlZBTElEX0hB
TkRMRV9WQUxVRTsKKyAgcmV0dXJuIGhhbmRsZV8gIT0gbnVsbHB0ciAmJiBoYW5kbGVfICE9IElO
VkFMSURfSEFORExFX1ZBTFVFOwogfQogCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbigpCi0g
ICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChOVUxMLCAgIC8vIERlZmF1bHQgc2VjdXJpdHkgYXR0
cmlidXRlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsICAgLy8gRG8gbm90IHJl
c2V0IGF1dG9tYXRpY2FsbHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgIC8v
IEluaXRpYWxseSB1bnNldC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKSB7ICAv
LyBBbm9ueW1vdXMgZXZlbnQuCi0gIEdURVNUX0NIRUNLXyhldmVudF8uR2V0KCkgIT0gTlVMTCk7
CisgICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChudWxscHRyLCAgICAgLy8gRGVmYXVsdCBzZWN1
cml0eSBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwgICAgICAg
IC8vIERvIG5vdCByZXNldCBhdXRvbWF0aWNhbGx5LgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRkFMU0UsICAgICAgIC8vIEluaXRpYWxseSB1bnNldC4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bGxwdHIpKSB7ICAvLyBBbm9ueW1vdXMgZXZlbnQuCisgIEdURVNUX0NIRUNLXyhl
dmVudF8uR2V0KCkgIT0gbnVsbHB0cik7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpOb3RpZnko
KSB7CkBAIC0yNjEsMTMgKzM1MCwxMCBAQCBNdXRleDo6TXV0ZXgoKQogTXV0ZXg6On5NdXRleCgp
IHsKICAgLy8gU3RhdGljIG11dGV4ZXMgYXJlIGxlYWtlZCBpbnRlbnRpb25hbGx5LiBJdCBpcyBu
b3QgdGhyZWFkLXNhZmUgdG8gdHJ5CiAgIC8vIHRvIGNsZWFuIHRoZW0gdXAuCi0gIC8vIEZJWE1F
OiBTd2l0Y2ggdG8gU2xpbSBSZWFkZXIvV3JpdGVyIChTUlcpIExvY2tzLCB3aGljaCByZXF1aXJl
cwotICAvLyBub3RoaW5nIHRvIGNsZWFuIGl0IHVwIGJ1dCBpcyBhdmFpbGFibGUgb25seSBvbiBW
aXN0YSBhbmQgbGF0ZXIuCi0gIC8vIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3dp
bmRvd3MvZGVza3RvcC9TeW5jL3NsaW0tcmVhZGVyLXdyaXRlci0tc3J3LS1sb2NrcwogICBpZiAo
dHlwZV8gPT0ga0R5bmFtaWMpIHsKICAgICA6OkRlbGV0ZUNyaXRpY2FsU2VjdGlvbihjcml0aWNh
bF9zZWN0aW9uXyk7CiAgICAgZGVsZXRlIGNyaXRpY2FsX3NlY3Rpb25fOwotICAgIGNyaXRpY2Fs
X3NlY3Rpb25fID0gTlVMTDsKKyAgICBjcml0aWNhbF9zZWN0aW9uXyA9IG51bGxwdHI7CiAgIH0K
IH0KIApAQCAtMjk2LDYgKzM4Miw3IEBAIHZvaWQgTXV0ZXg6OkFzc2VydEhlbGQoKSB7CiAKIG5h
bWVzcGFjZSB7CiAKKyNpZmRlZiBfTVNDX1ZFUgogLy8gVXNlIHRoZSBSQUlJIGlkaW9tIHRvIGZs
YWcgbWVtIGFsbG9jcyB0aGF0IGFyZSBpbnRlbnRpb25hbGx5IG5ldmVyCiAvLyBkZWFsbG9jYXRl
ZC4gVGhlIG1vdGl2YXRpb24gaXMgdG8gc2lsZW5jZSB0aGUgZmFsc2UgcG9zaXRpdmUgbWVtIGxl
YWtzCiAvLyB0aGF0IGFyZSByZXBvcnRlZCBieSB0aGUgZGVidWcgdmVyc2lvbiBvZiBNUydzIENS
VCB3aGljaCBjYW4gb25seSBkZXRlY3QKQEAgLTMwOCwxOSArMzk1LDE1IEBAIGNsYXNzIE1lbW9y
eUlzTm90RGVhbGxvY2F0ZWQKIHsKICBwdWJsaWM6CiAgIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQo
KSA6IG9sZF9jcnRkYmdfZmxhZ18oMCkgewotI2lmZGVmIF9NU0NfVkVSCiAgICAgb2xkX2NydGRi
Z19mbGFnXyA9IF9DcnRTZXREYmdGbGFnKF9DUlREQkdfUkVQT1JUX0ZMQUcpOwogICAgIC8vIFNl
dCBoZWFwIGFsbG9jYXRpb24gYmxvY2sgdHlwZSB0byBfSUdOT1JFX0JMT0NLIHNvIHRoYXQgTVMg
ZGVidWcgQ1JUCiAgICAgLy8gZG9lc24ndCByZXBvcnQgbWVtIGxlYWsgaWYgdGhlcmUncyBubyBt
YXRjaGluZyBkZWFsbG9jYXRpb24uCiAgICAgX0NydFNldERiZ0ZsYWcob2xkX2NydGRiZ19mbGFn
XyAmIH5fQ1JUREJHX0FMTE9DX01FTV9ERik7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9CiAK
ICAgfk1lbW9yeUlzTm90RGVhbGxvY2F0ZWQoKSB7Ci0jaWZkZWYgX01TQ19WRVIKICAgICAvLyBS
ZXN0b3JlIHRoZSBvcmlnaW5hbCBfQ1JUREJHX0FMTE9DX01FTV9ERiBmbGFnCiAgICAgX0NydFNl
dERiZ0ZsYWcob2xkX2NydGRiZ19mbGFnXyk7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9CiAK
ICBwcml2YXRlOgpAQCAtMzI4LDYgKzQxMSw3IEBAIGNsYXNzIE1lbW9yeUlzTm90RGVhbGxvY2F0
ZWQKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKE1lbW9yeUlzTm90RGVhbGxv
Y2F0ZWQpOwogfTsKKyNlbmRpZiAgLy8gX01TQ19WRVIKIAogfSAgLy8gbmFtZXNwYWNlCiAKQEAg
LTM0Myw3ICs0MjcsOSBAQCB2b2lkIE11dGV4OjpUaHJlYWRTYWZlTGF6eUluaXQoKSB7CiAgICAg
ICAgIG93bmVyX3RocmVhZF9pZF8gPSAwOwogICAgICAgICB7CiAgICAgICAgICAgLy8gVXNlIFJB
SUkgdG8gZmxhZyB0aGF0IGZvbGxvd2luZyBtZW0gYWxsb2MgaXMgbmV2ZXIgZGVhbGxvY2F0ZWQu
CisjaWZkZWYgX01TQ19WRVIKICAgICAgICAgICBNZW1vcnlJc05vdERlYWxsb2NhdGVkIG1lbW9y
eV9pc19ub3RfZGVhbGxvY2F0ZWQ7CisjZW5kaWYgIC8vIF9NU0NfVkVSCiAgICAgICAgICAgY3Jp
dGljYWxfc2VjdGlvbl8gPSBuZXcgQ1JJVElDQUxfU0VDVElPTjsKICAgICAgICAgfQogICAgICAg
ICA6OkluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbl8pOwpAQCAtMzg0
LDE3ICs0NzAsMTYgQEAgY2xhc3MgVGhyZWFkV2l0aFBhcmFtU3VwcG9ydCA6IHB1YmxpYyBUaHJl
YWRXaXRoUGFyYW1CYXNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0
aW9uKiB0aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgVGhyZWFkTWFpblBhcmFtKiBwYXJhbSA9IG5l
dyBUaHJlYWRNYWluUGFyYW0ocnVubmFibGUsIHRocmVhZF9jYW5fc3RhcnQpOwogICAgIERXT1JE
IHRocmVhZF9pZDsKLSAgICAvLyBGSVhNRTogQ29uc2lkZXIgdG8gdXNlIF9iZWdpbnRocmVhZGV4
IGluc3RlYWQuCiAgICAgSEFORExFIHRocmVhZF9oYW5kbGUgPSA6OkNyZWF0ZVRocmVhZCgKLSAg
ICAgICAgTlVMTCwgICAgLy8gRGVmYXVsdCBzZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAgLy8g
RGVmYXVsdCBzdGFjayBzaXplLgorICAgICAgICBudWxscHRyLCAgLy8gRGVmYXVsdCBzZWN1cml0
eS4KKyAgICAgICAgMCwgICAgICAgIC8vIERlZmF1bHQgc3RhY2sgc2l6ZS4KICAgICAgICAgJlRo
cmVhZFdpdGhQYXJhbVN1cHBvcnQ6OlRocmVhZE1haW4sCi0gICAgICAgIHBhcmFtLCAgIC8vIFBh
cmFtZXRlciB0byBUaHJlYWRNYWluU3RhdGljCi0gICAgICAgIDB4MCwgICAgIC8vIERlZmF1bHQg
Y3JlYXRpb24gZmxhZ3MuCisgICAgICAgIHBhcmFtLCAgICAgICAgLy8gUGFyYW1ldGVyIHRvIFRo
cmVhZE1haW5TdGF0aWMKKyAgICAgICAgMHgwLCAgICAgICAgICAvLyBEZWZhdWx0IGNyZWF0aW9u
IGZsYWdzLgogICAgICAgICAmdGhyZWFkX2lkKTsgIC8vIE5lZWQgYSB2YWxpZCBwb2ludGVyIGZv
ciB0aGUgY2FsbCB0byB3b3JrIHVuZGVyIFdpbjk4LgotICAgIEdURVNUX0NIRUNLXyh0aHJlYWRf
aGFuZGxlICE9IE5VTEwpIDw8ICJDcmVhdGVUaHJlYWQgZmFpbGVkIHdpdGggZXJyb3IgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDo6R2V0TGFzdEVycm9yKCkg
PDwgIi4iOwotICAgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpIHsKKyAgICBHVEVTVF9DSEVD
S18odGhyZWFkX2hhbmRsZSAhPSBudWxscHRyKQorICAgICAgICA8PCAiQ3JlYXRlVGhyZWFkIGZh
aWxlZCB3aXRoIGVycm9yICIgPDwgOjpHZXRMYXN0RXJyb3IoKSA8PCAiLiI7CisgICAgaWYgKHRo
cmVhZF9oYW5kbGUgPT0gbnVsbHB0cikgewogICAgICAgZGVsZXRlIHBhcmFtOwogICAgIH0KICAg
ICByZXR1cm4gdGhyZWFkX2hhbmRsZTsKQEAgLTQwNiwxNSArNDkxLDE1IEBAIGNsYXNzIFRocmVh
ZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgICAgICAg
IDogcnVubmFibGVfKHJ1bm5hYmxlKSwKICAgICAgICAgICB0aHJlYWRfY2FuX3N0YXJ0Xyh0aHJl
YWRfY2FuX3N0YXJ0KSB7CiAgICAgfQotICAgIHNjb3BlZF9wdHI8UnVubmFibGU+IHJ1bm5hYmxl
XzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVubmFibGU+IHJ1bm5hYmxlXzsKICAgICAvLyBEb2Vz
IG5vdCBvd24uCiAgICAgTm90aWZpY2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0XzsKICAgfTsKIAog
ICBzdGF0aWMgRFdPUkQgV0lOQVBJIFRocmVhZE1haW4odm9pZCogcHRyKSB7CiAgICAgLy8gVHJh
bnNmZXJzIG93bmVyc2hpcC4KLSAgICBzY29wZWRfcHRyPFRocmVhZE1haW5QYXJhbT4gcGFyYW0o
c3RhdGljX2Nhc3Q8VGhyZWFkTWFpblBhcmFtKj4ocHRyKSk7Ci0gICAgaWYgKHBhcmFtLT50aHJl
YWRfY2FuX3N0YXJ0XyAhPSBOVUxMKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRNYWluUGFy
YW0+IHBhcmFtKHN0YXRpY19jYXN0PFRocmVhZE1haW5QYXJhbSo+KHB0cikpOworICAgIGlmIChw
YXJhbS0+dGhyZWFkX2Nhbl9zdGFydF8gIT0gbnVsbHB0cikKICAgICAgIHBhcmFtLT50aHJlYWRf
Y2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlvbigpOwogICAgIHBhcmFtLT5ydW5uYWJsZV8t
PlJ1bigpOwogICAgIHJldHVybiAwOwpAQCAtNDUzLDYgKzUzOCw5IEBAIGNsYXNzIFRocmVhZExv
Y2FsUmVnaXN0cnlJbXBsIHsKICAgLy8gUmV0dXJucyBhIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQg
dG8gaWRlbnRpZnkgdGhlIHRocmVhZCBmcm9tIG90aGVyIHRocmVhZHMuCiAgIHN0YXRpYyBUaHJl
YWRMb2NhbFZhbHVlSG9sZGVyQmFzZSogR2V0VmFsdWVPbkN1cnJlbnRUaHJlYWQoCiAgICAgICBj
b25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgeworI2lmZGVmIF9N
U0NfVkVSCisgICAgTWVtb3J5SXNOb3REZWFsbG9jYXRlZCBtZW1vcnlfaXNfbm90X2RlYWxsb2Nh
dGVkOworI2VuZGlmICAvLyBfTVNDX1ZFUgogICAgIERXT1JEIGN1cnJlbnRfdGhyZWFkID0gOjpH
ZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBNdXRleExvY2sgbG9jaygmbXV0ZXhfKTsKICAgICBU
aHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBjb25zdCB0aHJlYWRfdG9fdGhyZWFkX2xvY2FscyA9CkBA
IC00NzIsNyArNTYwLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogICAgICAg
ICAgIHRocmVhZF9sb2NhbF92YWx1ZXMKICAgICAgICAgICAgICAgLmluc2VydChzdGQ6Om1ha2Vf
cGFpcigKICAgICAgICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9pbnN0YW5jZSwKLSAgICAgICAg
ICAgICAgICAgIGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+KAorICAgICAg
ICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPigK
ICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfaW5zdGFuY2UtPk5ld1ZhbHVlRm9y
Q3VycmVudFRocmVhZCgpKSkpCiAgICAgICAgICAgICAgIC5maXJzdDsKICAgICB9CkBAIC00ODEs
NyArNTY5LDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogCiAgIHN0YXRpYyB2
b2lkIE9uVGhyZWFkTG9jYWxEZXN0cm95ZWQoCiAgICAgICBjb25zdCBUaHJlYWRMb2NhbEJhc2Uq
IHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgewotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGhy
ZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBzdGQ6OnZlY3Rv
cjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9s
ZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkTG9jYWxWYWx1ZXMgZGF0YSBzdHJ1Y3R1
cmUgd2hpbGUgaG9sZGluZyB0aGUgbG9jaywgYnV0CiAgICAgLy8gZGVmZXIgdGhlIGRlc3RydWN0
aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMuCiAgICAgewpAQCAtNTA5LDcg
KzU5Nyw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsKIAogICBzdGF0aWMgdm9p
ZCBPblRocmVhZEV4aXQoRFdPUkQgdGhyZWFkX2lkKSB7CiAgICAgR1RFU1RfQ0hFQ0tfKHRocmVh
ZF9pZCAhPSAwKSA8PCA6OkdldExhc3RFcnJvcigpOwotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9w
dHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBzdGQ6
OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFs
dWVfaG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkSWRUb1RocmVhZExvY2FscyBk
YXRhIHN0cnVjdHVyZSB3aGlsZSBob2xkaW5nIHRoZQogICAgIC8vIGxvY2ssIGJ1dCBkZWZlciB0
aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlcy4KICAgICB7
CkBAIC01MzYsNyArNjI0LDggQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogIHBy
aXZhdGU6CiAgIC8vIEluIGEgcGFydGljdWxhciB0aHJlYWQsIG1hcHMgYSBUaHJlYWRMb2NhbCBv
YmplY3QgdG8gaXRzIHZhbHVlLgogICB0eXBlZGVmIHN0ZDo6bWFwPGNvbnN0IFRocmVhZExvY2Fs
QmFzZSosCi0gICAgICAgICAgICAgICAgICAgbGlua2VkX3B0cjxUaHJlYWRMb2NhbFZhbHVlSG9s
ZGVyQmFzZT4gPiBUaHJlYWRMb2NhbFZhbHVlczsKKyAgICAgICAgICAgICAgICAgICBzdGQ6OnNo
YXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4KKyAgICAgIFRocmVhZExvY2Fs
VmFsdWVzOwogICAvLyBTdG9yZXMgYWxsIFRocmVhZElkVG9UaHJlYWRMb2NhbHMgaGF2aW5nIHZh
bHVlcyBpbiBhIHRocmVhZCwgaW5kZXhlZCBieQogICAvLyB0aHJlYWQncyBJRC4KICAgdHlwZWRl
ZiBzdGQ6Om1hcDxEV09SRCwgVGhyZWFkTG9jYWxWYWx1ZXM+IFRocmVhZElkVG9UaHJlYWRMb2Nh
bHM7CkBAIC01NTEsMTggKzY0MCwxNyBAQCBjbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbCB7
CiAgICAgSEFORExFIHRocmVhZCA9IDo6T3BlblRocmVhZChTWU5DSFJPTklaRSB8IFRIUkVBRF9R
VUVSWV9JTkZPUk1BVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNF
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX2lkKTsKLSAgICBHVEVT
VF9DSEVDS18odGhyZWFkICE9IE5VTEwpOworICAgIEdURVNUX0NIRUNLXyh0aHJlYWQgIT0gbnVs
bHB0cik7CiAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGEgdmFsaWQgdGhyZWFkIElEIHBvaW50ZXIg
aW50byBDcmVhdGVUaHJlYWQgZm9yIGl0CiAgICAgLy8gdG8gd29yayBjb3JyZWN0bHkgdW5kZXIg
V2luOTguCiAgICAgRFdPUkQgd2F0Y2hlcl90aHJlYWRfaWQ7CiAgICAgSEFORExFIHdhdGNoZXJf
dGhyZWFkID0gOjpDcmVhdGVUaHJlYWQoCi0gICAgICAgIE5VTEwsICAgLy8gRGVmYXVsdCBzZWN1
cml0eS4KLSAgICAgICAgMCwgICAgICAvLyBEZWZhdWx0IHN0YWNrIHNpemUKKyAgICAgICAgbnVs
bHB0ciwgIC8vIERlZmF1bHQgc2VjdXJpdHkuCisgICAgICAgIDAsICAgICAgICAvLyBEZWZhdWx0
IHN0YWNrIHNpemUKICAgICAgICAgJlRocmVhZExvY2FsUmVnaXN0cnlJbXBsOjpXYXRjaGVyVGhy
ZWFkRnVuYywKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxMUFZPSUQ+KG5ldyBUaHJlYWRJZEFu
ZEhhbmRsZSh0aHJlYWRfaWQsIHRocmVhZCkpLAotICAgICAgICBDUkVBVEVfU1VTUEVOREVELAot
ICAgICAgICAmd2F0Y2hlcl90aHJlYWRfaWQpOwotICAgIEdURVNUX0NIRUNLXyh3YXRjaGVyX3Ro
cmVhZCAhPSBOVUxMKTsKKyAgICAgICAgQ1JFQVRFX1NVU1BFTkRFRCwgJndhdGNoZXJfdGhyZWFk
X2lkKTsKKyAgICBHVEVTVF9DSEVDS18od2F0Y2hlcl90aHJlYWQgIT0gbnVsbHB0cik7CiAgICAg
Ly8gR2l2ZSB0aGUgd2F0Y2hlciB0aHJlYWQgdGhlIHNhbWUgcHJpb3JpdHkgYXMgb3VycyB0byBh
dm9pZCBiZWluZwogICAgIC8vIGJsb2NrZWQgYnkgaXQuCiAgICAgOjpTZXRUaHJlYWRQcmlvcml0
eSh3YXRjaGVyX3RocmVhZCwKQEAgLTU4Nyw3ICs2NzUsOSBAQCBjbGFzcyBUaHJlYWRMb2NhbFJl
Z2lzdHJ5SW1wbCB7CiAgIC8vIFJldHVybnMgbWFwIG9mIHRocmVhZCBsb2NhbCBpbnN0YW5jZXMu
CiAgIHN0YXRpYyBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBHZXRUaHJlYWRMb2NhbHNNYXBMb2Nr
ZWQoKSB7CiAgICAgbXV0ZXhfLkFzc2VydEhlbGQoKTsKKyNpZmRlZiBfTVNDX1ZFUgogICAgIE1l
bW9yeUlzTm90RGVhbGxvY2F0ZWQgbWVtb3J5X2lzX25vdF9kZWFsbG9jYXRlZDsKKyNlbmRpZiAg
Ly8gX01TQ19WRVIKICAgICBzdGF0aWMgVGhyZWFkSWRUb1RocmVhZExvY2FscyogbWFwID0gbmV3
IFRocmVhZElkVG9UaHJlYWRMb2NhbHMoKTsKICAgICByZXR1cm4gbWFwOwogICB9CkBAIC02MzAs
NyArNzIwLDcgQEAgUkU6On5SRSgpIHsKICAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihwYXR0ZXJu
XykpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRj
aGVzIHRoZSBlbnRpcmUgc3RyLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3Vs
YXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgogYm9vbCBSRTo6RnVsbE1h
dGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFsaWRf
KSByZXR1cm4gZmFsc2U7CiAKQEAgLTYzOCw4ICs3MjgsOCBAQCBib29sIFJFOjpGdWxsTWF0Y2go
Y29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlZ2V4ZWMoJnJlLmZ1
bGxfcmVnZXhfLCBzdHIsIDEsICZtYXRjaCwgMCkgPT0gMDsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIKLS8v
IChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
cmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2YKKy8vIHN0ciAoaW5j
bHVkaW5nIHN0ciBpdHNlbGYpLgogYm9vbCBSRTo6UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIqIHN0
ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7CiAK
QEAgLTY3OSwxNCArNzY5LDE0IEBAIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgpIHsK
IAogI2VsaWYgR1RFU1RfVVNFU19TSU1QTEVfUkUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBh
cHBlYXJzIGFueXdoZXJlIGluIHN0ciAoZXhjbHVkaW5nIHRoZQorLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIGNoIGFwcGVhcnMgYW55d2hlcmUgaW4gc3RyIChleGNsdWRpbmcgdGhlCiAv
LyB0ZXJtaW5hdGluZyAnXDAnIGNoYXJhY3RlcikuCiBib29sIElzSW5TZXQoY2hhciBjaCwgY29u
c3QgY2hhciogc3RyKSB7Ci0gIHJldHVybiBjaCAhPSAnXDAnICYmIHN0cmNocihzdHIsIGNoKSAh
PSBOVUxMOworICByZXR1cm4gY2ggIT0gJ1wwJyAmJiBzdHJjaHIoc3RyLCBjaCkgIT0gbnVsbHB0
cjsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBiZWxvbmdzIHRvIHRoZSBnaXZlbiBjbGFz
c2lmaWNhdGlvbi4gIFVubGlrZQotLy8gc2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0
aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkg
aWYgY2ggYmVsb25ncyB0byB0aGUgZ2l2ZW4gY2xhc3NpZmljYXRpb24uCisvLyBVbmxpa2Ugc2lt
aWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhl
CiAvLyBjdXJyZW50IGxvY2FsZS4KIGJvb2wgSXNBc2NpaURpZ2l0KGNoYXIgY2gpIHsgcmV0dXJu
ICcwJyA8PSBjaCAmJiBjaCA8PSAnOSc7IH0KIGJvb2wgSXNBc2NpaVB1bmN0KGNoYXIgY2gpIHsK
QEAgLTY5OSwxMyArNzg5LDEzIEBAIGJvb2wgSXNBc2NpaVdvcmRDaGFyKGNoYXIgY2gpIHsKICAg
ICAgICgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8fCBjaCA9PSAnXyc7CiB9CiAKLS8vIFJldHVy
bnMgdHJ1ZSBpZmYgIlxcYyIgaXMgYSBzdXBwb3J0ZWQgZXNjYXBlIHNlcXVlbmNlLgorLy8gUmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmICJcXGMiIGlzIGEgc3VwcG9ydGVkIGVzY2FwZSBzZXF1
ZW5jZS4KIGJvb2wgSXNWYWxpZEVzY2FwZShjaGFyIGMpIHsKICAgcmV0dXJuIChJc0FzY2lpUHVu
Y3QoYykgfHwgSXNJblNldChjLCAiZERmbnJzU3R2d1ciKSk7CiB9CiAKLS8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIGdpdmVuIGF0b20gKHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZCBwYXR0ZXJuKQot
Ly8gbWF0Y2hlcyBjaC4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlzIGlu
dmFsaWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVuIGF0b20gKHNw
ZWNpZmllZCBieSBlc2NhcGVkIGFuZAorLy8gcGF0dGVybikgbWF0Y2hlcyBjaC4gIFRoZSByZXN1
bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlzIGludmFsaWQuCiBib29sIEF0b21NYXRjaGVz
Q2hhcihib29sIGVzY2FwZWQsIGNoYXIgcGF0dGVybl9jaGFyLCBjaGFyIGNoKSB7CiAgIGlmIChl
c2NhcGVkKSB7ICAvLyAiXFxwIiB3aGVyZSBwIGlzIHBhdHRlcm5fY2hhci4KICAgICBzd2l0Y2gg
KHBhdHRlcm5fY2hhcikgewpAQCAtNzM2LDE3ICs4MjYsMTQgQEAgc3RhdGljIHN0ZDo6c3RyaW5n
IEZvcm1hdFJlZ2V4U3ludGF4RXJyb3IoY29uc3QgY2hhciogcmVnZXgsIGludCBpbmRleCkgewog
Ly8gR2VuZXJhdGVzIG5vbi1mYXRhbCBmYWlsdXJlcyBhbmQgcmV0dXJucyBmYWxzZSBpZiByZWdl
eCBpcyBpbnZhbGlkOwogLy8gb3RoZXJ3aXNlIHJldHVybnMgdHJ1ZS4KIGJvb2wgVmFsaWRhdGVS
ZWdleChjb25zdCBjaGFyKiByZWdleCkgewotICBpZiAocmVnZXggPT0gTlVMTCkgewotICAgIC8v
IEZJWE1FOiBmaXggdGhlIHNvdXJjZSBmaWxlIGxvY2F0aW9uIGluIHRoZQotICAgIC8vIGFzc2Vy
dGlvbiBmYWlsdXJlcyB0byBtYXRjaCB3aGVyZSB0aGUgcmVnZXggaXMgdXNlZCBpbiB1c2VyCi0g
ICAgLy8gY29kZS4KKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIpIHsKICAgICBBRERfRkFJTFVSRSgp
IDw8ICJOVUxMIGlzIG5vdCBhIHZhbGlkIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24uIjsKICAg
ICByZXR1cm4gZmFsc2U7CiAgIH0KIAogICBib29sIGlzX3ZhbGlkID0gdHJ1ZTsKIAotICAvLyBU
cnVlIGlmZiA/LCAqLCBvciArIGNhbiBmb2xsb3cgdGhlIHByZXZpb3VzIGF0b20uCisgIC8vIFRy
dWUgaWYgYW5kIG9ubHkgaWYgPywgKiwgb3IgKyBjYW4gZm9sbG93IHRoZSBwcmV2aW91cyBhdG9t
LgogICBib29sIHByZXZfcmVwZWF0YWJsZSA9IGZhbHNlOwogICBmb3IgKGludCBpID0gMDsgcmVn
ZXhbaV07IGkrKykgewogICAgIGlmIChyZWdleFtpXSA9PSAnXFwnKSB7ICAvLyBBbiBlc2NhcGUg
c2VxdWVuY2UKQEAgLTgyMiw4ICs5MDksOCBAQCBib29sIE1hdGNoUmVwZXRpdGlvbkFuZFJlZ2V4
QXRIZWFkKAogICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVnZXgg
bWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIuICByZWdleCBtdXN0IGJlIGEKLS8vIHZhbGlkIHNpbXBs
ZSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIG5vdCBzdGFydCB3aXRoICJeIiwgb3IgdGhlCisvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVnZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIu
IHJlZ2V4IG11c3QKKy8vIGJlIGEgdmFsaWQgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQg
bm90IHN0YXJ0IHdpdGggIl4iLCBvciB0aGUKIC8vIHJlc3VsdCBpcyB1bmRlZmluZWQuCiBib29s
IE1hdGNoUmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewog
ICBpZiAoKnJlZ2V4ID09ICdcMCcpICAvLyBBbiBlbXB0eSByZWdleCBtYXRjaGVzIGEgcHJlZml4
IG9mIGFueXRoaW5nLgpAQCAtODUzLDggKzk0MCw4IEBAIGJvb2wgTWF0Y2hSZWdleEF0SGVhZChj
b25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKSB7CiAgIH0KIH0KIAotLy8gUmV0dXJu
cyB0cnVlIGlmZiByZWdleCBtYXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXggbXVz
dCBiZQotLy8gYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVzdWx0
IGlzIHVuZGVmaW5lZC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWdleCBtYXRj
aGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXggbXVzdAorLy8gYmUgYSB2YWxpZCBzaW1w
bGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KIC8vCiAv
LyBUaGUgYWxnb3JpdGhtIGlzIHJlY3Vyc2l2ZSwgYnV0IHRoZSByZWN1cnNpb24gZGVwdGggZG9l
c24ndCBleGNlZWQKIC8vIHRoZSByZWdleCBsZW5ndGgsIHNvIHdlIHdvbid0IG5lZWQgdG8gd29y
cnkgYWJvdXQgcnVubmluZyBvdXQgb2YKQEAgLTg2Miw4ICs5NDksNyBAQCBib29sIE1hdGNoUmVn
ZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewogLy8gZXhwb25l
bnRpYWwgd2l0aCByZXNwZWN0IHRvIHRoZSByZWdleCBsZW5ndGggKyB0aGUgc3RyaW5nIGxlbmd0
aCwKIC8vIGJ1dCB1c3VhbGx5IGl0J3MgbXVzdCBmYXN0ZXIgKG9mdGVuIGNsb3NlIHRvIGxpbmVh
cikuCiBib29sIE1hdGNoUmVnZXhBbnl3aGVyZShjb25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hh
ciogc3RyKSB7Ci0gIGlmIChyZWdleCA9PSBOVUxMIHx8IHN0ciA9PSBOVUxMKQotICAgIHJldHVy
biBmYWxzZTsKKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIgfHwgc3RyID09IG51bGxwdHIpIHJldHVy
biBmYWxzZTsKIAogICBpZiAoKnJlZ2V4ID09ICdeJykKICAgICByZXR1cm4gTWF0Y2hSZWdleEF0
SGVhZChyZWdleCArIDEsIHN0cik7CkBAIC04ODMsMjEgKzk2OSwyMSBAQCBSRTo6flJFKCkgewog
ICBmcmVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGZ1bGxfcGF0dGVybl8pKTsKIH0KIAotLy8gUmV0dXJu
cyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4K
Ky8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0
Y2hlcyB0aGUgZW50aXJlIHN0ci4KIGJvb2wgUkU6OkZ1bGxNYXRjaChjb25zdCBjaGFyKiBzdHIs
IGNvbnN0IFJFJiByZSkgewogICByZXR1cm4gcmUuaXNfdmFsaWRfICYmIE1hdGNoUmVnZXhBbnl3
aGVyZShyZS5mdWxsX3BhdHRlcm5fLCBzdHIpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJl
Z3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHN0cgotLy8gKGluY2x1
ZGluZyBzdHIgaXRzZWxmKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFy
IGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZgorLy8gc3RyIChpbmNsdWRpbmcg
c3RyIGl0c2VsZikuCiBib29sIFJFOjpQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25z
dCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlLmlzX3ZhbGlkXyAmJiBNYXRjaFJlZ2V4QW55d2hlcmUo
cmUucGF0dGVybl8sIHN0cik7CiB9CiAKIC8vIEluaXRpYWxpemVzIGFuIFJFIGZyb20gaXRzIHN0
cmluZyByZXByZXNlbnRhdGlvbi4KIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgpIHsK
LSAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gTlVMTDsKLSAgaWYgKHJlZ2V4ICE9IE5VTEwp
IHsKKyAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gbnVsbHB0cjsKKyAgaWYgKHJlZ2V4ICE9
IG51bGxwdHIpIHsKICAgICBwYXR0ZXJuXyA9IHBvc2l4OjpTdHJEdXAocmVnZXgpOwogICB9CiAK
QEAgLTkzNSw3ICsxMDIxLDcgQEAgY29uc3QgY2hhciBrVW5rbm93bkZpbGVbXSA9ICJ1bmtub3du
IGZpbGUiOwogLy8gRm9ybWF0cyBhIHNvdXJjZSBmaWxlIHBhdGggYW5kIGEgbGluZSBudW1iZXIg
YXMgdGhleSB3b3VsZCBhcHBlYXIKIC8vIGluIGFuIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgY29t
cGlsZXIgdXNlZCB0byBjb21waWxlIHRoaXMgY29kZS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmlu
ZyBGb3JtYXRGaWxlTG9jYXRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsKLSAgY29u
c3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gTlVMTCA/IGtVbmtub3duRmlsZSA6IGZp
bGUpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlX25hbWUoZmlsZSA9PSBudWxscHRyID8ga1Vu
a25vd25GaWxlIDogZmlsZSk7CiAKICAgaWYgKGxpbmUgPCAwKSB7CiAgICAgcmV0dXJuIGZpbGVf
bmFtZSArICI6IjsKQEAgLTk1NCw3ICsxMDQwLDcgQEAgR1RFU1RfQVBJXyA6OnN0ZDo6c3RyaW5n
IEZvcm1hdEZpbGVMb2NhdGlvbihjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewogLy8gdG8g
dGhlIGZpbGUgbG9jYXRpb24gaXQgcHJvZHVjZXMsIHVubGlrZSBGb3JtYXRGaWxlTG9jYXRpb24o
KS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBGb3JtYXRDb21waWxlckluZGVwZW5kZW50Rmls
ZUxvY2F0aW9uKAogICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7Ci0gIGNvbnN0IHN0
ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IE5VTEwgPyBrVW5rbm93bkZpbGUgOiBmaWxlKTsK
KyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gbnVsbHB0ciA/IGtVbmtub3du
RmlsZSA6IGZpbGUpOwogCiAgIGlmIChsaW5lIDwgMCkKICAgICByZXR1cm4gZmlsZV9uYW1lOwpA
QCAtMTAyMSwyMCArMTEwNywyMiBAQCBjbGFzcyBDYXB0dXJlZFN0cmVhbSB7CiAgICAgLy8gY29k
ZSBhcyBwYXJ0IG9mIGEgcmVndWxhciBzdGFuZGFsb25lIGV4ZWN1dGFibGUsIHdoaWNoIGRvZXNu
J3QKICAgICAvLyBydW4gaW4gYSBEYWx2aWsgcHJvY2VzcyAoZS5nLiB3aGVuIHJ1bm5pbmcgaXQg
dGhyb3VnaCAnYWRiIHNoZWxsJykuCiAgICAgLy8KLSAgICAvLyBUaGUgbG9jYXRpb24gL3NkY2Fy
ZCBpcyBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gbmF0aXZlIGNvZGUKLSAgICAvLyBhbmQgaXMg
dGhlIG9ubHkgbG9jYXRpb24gKHVub2ZmaWNpYWxseSkgc3VwcG9ydGVkIGJ5IHRoZSBBbmRyb2lk
Ci0gICAgLy8gdGVhbS4gSXQncyBnZW5lcmFsbHkgYSBzeW1saW5rIHRvIHRoZSByZWFsIFNEIENh
cmQgbW91bnQgcG9pbnQKLSAgICAvLyB3aGljaCBjYW4gYmUgL21udC9zZGNhcmQsIC9tbnQvc2Rj
YXJkMCwgL3N5c3RlbS9tZWRpYS9zZGNhcmQsIG9yCi0gICAgLy8gb3RoZXIgT0VNLWN1c3RvbWl6
ZWQgbG9jYXRpb25zLiBOZXZlciByZWx5IG9uIHRoZXNlLCBhbmQgYWx3YXlzCi0gICAgLy8gdXNl
IC9zZGNhcmQuCi0gICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL3NkY2FyZC9ndGVzdF9jYXB0
dXJlZF9zdHJlYW0uWFhYWFhYIjsKKyAgICAvLyBUaGUgbG9jYXRpb24gL2RhdGEvbG9jYWwvdG1w
IGlzIGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBuYXRpdmUgY29kZS4KKyAgICAvLyAnL3NkY2Fy
ZCcgYW5kIG90aGVyIHZhcmlhbnRzIGNhbm5vdCBiZSByZWxpZWQgb24sIGFzIHRoZXkgYXJlIG5v
dAorICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgbW91bnRlZCwgb3IgbWF5IGhhdmUgYSBkZWxheSBp
biBtb3VudGluZy4KKyAgICBjaGFyIG5hbWVfdGVtcGxhdGVbXSA9ICIvZGF0YS9sb2NhbC90bXAv
Z3Rlc3RfY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7CiAjICBlbHNlCiAgICAgY2hhciBuYW1lX3Rl
bXBsYXRlW10gPSAiL3RtcC9jYXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKICMgIGVuZGlmICAvLyBH
VEVTVF9PU19MSU5VWF9BTkRST0lECiAgICAgY29uc3QgaW50IGNhcHR1cmVkX2ZkID0gbWtzdGVt
cChuYW1lX3RlbXBsYXRlKTsKKyAgICBpZiAoY2FwdHVyZWRfZmQgPT0gLTEpIHsKKyAgICAgIEdU
RVNUX0xPR18oV0FSTklORykKKyAgICAgICAgICA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB0bXAgZmls
ZSAiIDw8IG5hbWVfdGVtcGxhdGUKKyAgICAgICAgICA8PCAiIGZvciB0ZXN0OyBkb2VzIHRoZSB0
ZXN0IGhhdmUgYWNjZXNzIHRvIHRoZSAvdG1wIGRpcmVjdG9yeT8iOworICAgIH0KICAgICBmaWxl
bmFtZV8gPSBuYW1lX3RlbXBsYXRlOwogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotICAg
IGZmbHVzaChOVUxMKTsKKyAgICBmZmx1c2gobnVsbHB0cik7CiAgICAgZHVwMihjYXB0dXJlZF9m
ZCwgZmRfKTsKICAgICBjbG9zZShjYXB0dXJlZF9mZCk7CiAgIH0KQEAgLTEwNDYsMTMgKzExMzQs
MTcgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogICBzdGQ6OnN0cmluZyBHZXRDYXB0dXJlZFN0
cmluZygpIHsKICAgICBpZiAodW5jYXB0dXJlZF9mZF8gIT0gLTEpIHsKICAgICAgIC8vIFJlc3Rv
cmVzIHRoZSBvcmlnaW5hbCBzdHJlYW0uCi0gICAgICBmZmx1c2goTlVMTCk7CisgICAgICBmZmx1
c2gobnVsbHB0cik7CiAgICAgICBkdXAyKHVuY2FwdHVyZWRfZmRfLCBmZF8pOwogICAgICAgY2xv
c2UodW5jYXB0dXJlZF9mZF8pOwogICAgICAgdW5jYXB0dXJlZF9mZF8gPSAtMTsKICAgICB9CiAK
ICAgICBGSUxFKiBjb25zdCBmaWxlID0gcG9zaXg6OkZPcGVuKGZpbGVuYW1lXy5jX3N0cigpLCAi
ciIpOworICAgIGlmIChmaWxlID09IG51bGxwdHIpIHsKKyAgICAgIEdURVNUX0xPR18oRkFUQUwp
IDw8ICJGYWlsZWQgdG8gb3BlbiB0bXAgZmlsZSAiIDw8IGZpbGVuYW1lXworICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgIiBmb3IgY2FwdHVyaW5nIHN0cmVhbS4iOworICAgIH0KICAgICBjb25z
dCBzdGQ6OnN0cmluZyBjb250ZW50ID0gUmVhZEVudGlyZUZpbGUoZmlsZSk7CiAgICAgcG9zaXg6
OkZDbG9zZShmaWxlKTsKICAgICByZXR1cm4gY29udGVudDsKQEAgLTEwNjksMTMgKzExNjEsMTMg
QEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogCiBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNBVEVE
X1BPUF8oKQogCi1zdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3RkZXJyID0gTlVM
TDsKLXN0YXRpYyBDYXB0dXJlZFN0cmVhbSogZ19jYXB0dXJlZF9zdGRvdXQgPSBOVUxMOworc3Rh
dGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZGVyciA9IG51bGxwdHI7CitzdGF0aWMg
Q2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rkb3V0ID0gbnVsbHB0cjsKIAogLy8gU3RhcnRz
IGNhcHR1cmluZyBhbiBvdXRwdXQgc3RyZWFtIChzdGRvdXQvc3RkZXJyKS4KIHN0YXRpYyB2b2lk
IENhcHR1cmVTdHJlYW0oaW50IGZkLCBjb25zdCBjaGFyKiBzdHJlYW1fbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2FwdHVyZWRTdHJlYW0qKiBzdHJlYW0pIHsKLSAgaWYgKCpzdHJl
YW0gIT0gTlVMTCkgeworICBpZiAoKnN0cmVhbSAhPSBudWxscHRyKSB7CiAgICAgR1RFU1RfTE9H
XyhGQVRBTCkgPDwgIk9ubHkgb25lICIgPDwgc3RyZWFtX25hbWUKICAgICAgICAgICAgICAgICAg
ICAgICA8PCAiIGNhcHR1cmVyIGNhbiBleGlzdCBhdCBhIHRpbWUuIjsKICAgfQpAQCAtMTA4Nyw3
ICsxMTc5LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldENhcHR1cmVkU3RyZWFtKENhcHR1cmVk
U3RyZWFtKiogY2FwdHVyZWRfc3RyZWFtKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvbnRlbnQg
PSAoKmNhcHR1cmVkX3N0cmVhbSktPkdldENhcHR1cmVkU3RyaW5nKCk7CiAKICAgZGVsZXRlICpj
YXB0dXJlZF9zdHJlYW07Ci0gICpjYXB0dXJlZF9zdHJlYW0gPSBOVUxMOworICAqY2FwdHVyZWRf
c3RyZWFtID0gbnVsbHB0cjsKIAogICByZXR1cm4gY29udGVudDsKIH0KQEAgLTExNDYsMTAgKzEy
MzgsMTEgQEAgc3RkOjpzdHJpbmcgUmVhZEVudGlyZUZpbGUoRklMRSogZmlsZSkgewogfQogCiAj
aWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLXN0YXRpYyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9IE5VTEw7ICAvLyBPd25lZC4KK3N0YXRpYyBj
b25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9Cisg
ICAgbnVsbHB0cjsgIC8vIE93bmVkLgogCiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0SW5q
ZWN0YWJsZUFyZ3ZzKCkgewotICBpZiAoZ19pbmplY3RlZF90ZXN0X2FyZ3ZzICE9IE5VTEwpIHsK
KyAgaWYgKGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJuICpn
X2luamVjdGVkX3Rlc3RfYXJndnM7CiAgIH0KICAgcmV0dXJuIEdldEFyZ3ZzKCk7CkBAIC0xMTY1
LDE2ICsxMjU4LDkgQEAgdm9pZCBTZXRJbmplY3RhYmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+JiBuZXdfYXJndnMpIHsKICAgICAgIG5ldyBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4obmV3X2FyZ3ZzLmJlZ2luKCksIG5ld19hcmd2cy5lbmQoKSkpOwogfQogCi0jaWYgR1RF
U1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0ZDo6
dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cykgewotICBTZXRJbmplY3RhYmxlQXJndnMoCi0g
ICAgICBuZXcgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KG5ld19hcmd2cy5iZWdpbigpLCBuZXdf
YXJndnMuZW5kKCkpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQog
dm9pZCBDbGVhckluamVjdGFibGVBcmd2cygpIHsKICAgZGVsZXRlIGdfaW5qZWN0ZWRfdGVzdF9h
cmd2czsKLSAgZ19pbmplY3RlZF90ZXN0X2FyZ3ZzID0gTlVMTDsKKyAgZ19pbmplY3RlZF90ZXN0
X2FyZ3ZzID0gbnVsbHB0cjsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIApA
QCAtMTIwNSw5ICsxMjkxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZsYWdUb0VudlZhcihjb25z
dCBjaGFyKiBmbGFnKSB7CiAvLyBQYXJzZXMgJ3N0cicgZm9yIGEgMzItYml0IHNpZ25lZCBpbnRl
Z2VyLiAgSWYgc3VjY2Vzc2Z1bCwgd3JpdGVzCiAvLyB0aGUgcmVzdWx0IHRvICp2YWx1ZSBhbmQg
cmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVzICp2YWx1ZQogLy8gdW5jaGFuZ2VkIGFuZCBy
ZXR1cm5zIGZhbHNlLgotYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0LCBj
b25zdCBjaGFyKiBzdHIsIEludDMyKiB2YWx1ZSkgeworYm9vbCBQYXJzZUludDMyKGNvbnN0IE1l
c3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBzdHIsIGludDMyX3QqIHZhbHVlKSB7CiAgIC8v
IFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgYSBkZWNpbWFsIGludGVnZXIuCi0g
IGNoYXIqIGVuZCA9IE5VTEw7CisgIGNoYXIqIGVuZCA9IG51bGxwdHI7CiAgIGNvbnN0IGxvbmcg
bG9uZ192YWx1ZSA9IHN0cnRvbChzdHIsICZlbmQsIDEwKTsgIC8vIE5PTElOVAogCiAgIC8vIEhh
cyBzdHJ0b2woKSBjb25zdW1lZCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nPwpAQCAtMTIy
MiwxMyArMTMwOCwxMyBAQCBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQs
IGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9
CiAKLSAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gSW50MzI/Ci0g
IGNvbnN0IEludDMyIHJlc3VsdCA9IHN0YXRpY19jYXN0PEludDMyPihsb25nX3ZhbHVlKTsKKyAg
Ly8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gaW50MzJfdD8KKyAgY29u
c3QgYXV0byByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQzMl90Pihsb25nX3ZhbHVlKTsKICAgaWYg
KGxvbmdfdmFsdWUgPT0gTE9OR19NQVggfHwgbG9uZ192YWx1ZSA9PSBMT05HX01JTiB8fAogICAg
ICAgLy8gVGhlIHBhcnNlZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYSBsb25nLiAgKHN0cnRvbCgpIHJl
dHVybnMKICAgICAgIC8vIExPTkdfTUFYIG9yIExPTkdfTUlOIHdoZW4gdGhlIGlucHV0IG92ZXJm
bG93cy4pCiAgICAgICByZXN1bHQgIT0gbG9uZ192YWx1ZQotICAgICAgLy8gVGhlIHBhcnNlZCB2
YWx1ZSBvdmVyZmxvd3MgYXMgYW4gSW50MzIuCisgICAgICAvLyBUaGUgcGFyc2VkIHZhbHVlIG92
ZXJmbG93cyBhcyBhbiBpbnQzMl90LgogICAgICAgKSB7CiAgICAgTWVzc2FnZSBtc2c7CiAgICAg
bXNnIDw8ICJXQVJOSU5HOiAiIDw8IHNyY190ZXh0CkBAIC0xMjQ2LDMzICsxMzMyLDMzIEBAIGJv
b2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJ
bnQzMiogdmFsdWUpIHsKIC8vIFJlYWRzIGFuZCByZXR1cm5zIHRoZSBCb29sZWFuIGVudmlyb25t
ZW50IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8KIC8vIHRoZSBnaXZlbiBmbGFnOyBpZiBpdCdz
IG5vdCBzZXQsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KIC8vCi0vLyBUaGUgdmFsdWUgaXMgY29u
c2lkZXJlZCB0cnVlIGlmZiBpdCdzIG5vdCAiMCIuCisvLyBUaGUgdmFsdWUgaXMgY29uc2lkZXJl
ZCB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0J3Mgbm90ICIwIi4KIGJvb2wgQm9vbEZyb21HVGVzdEVu
dihjb25zdCBjaGFyKiBmbGFnLCBib29sIGRlZmF1bHRfdmFsdWUpIHsKICNpZiBkZWZpbmVkKEdU
RVNUX0dFVF9CT09MX0ZST01fRU5WXykKICAgcmV0dXJuIEdURVNUX0dFVF9CT09MX0ZST01fRU5W
XyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVudl92
YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0cmluZ192YWx1
ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHN0cmluZ192YWx1
ZSA9PSBOVUxMID8KLSAgICAgIGRlZmF1bHRfdmFsdWUgOiBzdHJjbXAoc3RyaW5nX3ZhbHVlLCAi
MCIpICE9IDA7CisgIHJldHVybiBzdHJpbmdfdmFsdWUgPT0gbnVsbHB0ciA/IGRlZmF1bHRfdmFs
dWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyY21wKHN0cmluZ192YWx1
ZSwgIjAiKSAhPSAwOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9CT09MX0ZST01fRU5W
XykKIH0KIAogLy8gUmVhZHMgYW5kIHJldHVybnMgYSAzMi1iaXQgaW50ZWdlciBzdG9yZWQgaW4g
dGhlIGVudmlyb25tZW50CiAvLyB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBm
bGFnOyBpZiBpdCBpc24ndCBzZXQgb3IKIC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgdmFsaWQgMzIt
Yml0IGludGVnZXIsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KLUludDMyIEludDMyRnJvbUdUZXN0
RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUpIHsKK2ludDMyX3QgSW50
MzJGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgaW50MzJfdCBkZWZhdWx0X3ZhbHVlKSB7
CiAjaWYgZGVmaW5lZChHVEVTVF9HRVRfSU5UMzJfRlJPTV9FTlZfKQogICByZXR1cm4gR1RFU1Rf
R0VUX0lOVDMyX0ZST01fRU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGVudl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNoYXIq
IGNvbnN0IHN0cmluZ192YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAg
aWYgKHN0cmluZ192YWx1ZSA9PSBOVUxMKSB7CisgIGlmIChzdHJpbmdfdmFsdWUgPT0gbnVsbHB0
cikgewogICAgIC8vIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LgogICAgIHJl
dHVybiBkZWZhdWx0X3ZhbHVlOwogICB9CiAKLSAgSW50MzIgcmVzdWx0ID0gZGVmYXVsdF92YWx1
ZTsKKyAgaW50MzJfdCByZXN1bHQgPSBkZWZhdWx0X3ZhbHVlOwogICBpZiAoIVBhcnNlSW50MzIo
TWVzc2FnZSgpIDw8ICJFbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IGVudl92YXIsCiAgICAgICAg
ICAgICAgICAgICBzdHJpbmdfdmFsdWUsICZyZXN1bHQpKSB7CiAgICAgcHJpbnRmKCJUaGUgZGVm
YXVsdCB2YWx1ZSAlcyBpcyB1c2VkLlxuIiwKQEAgLTEyOTYsNyArMTM4Miw3IEBAIEludDMyIElu
dDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUpIHsK
IHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdBbHNvQ2hlY2tFbnZWYXIoKXsKICAgc3RkOjpzdHJpbmcg
ZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWcgPSAiIjsKICAgY29uc3QgY2hhciogeG1sX291
dHB1dF9maWxlX2VudiA9IHBvc2l4OjpHZXRFbnYoIlhNTF9PVVRQVVRfRklMRSIpOwotICBpZiAo
TlVMTCAhPSB4bWxfb3V0cHV0X2ZpbGVfZW52KSB7CisgIGlmIChudWxscHRyICE9IHhtbF9vdXRw
dXRfZmlsZV9lbnYpIHsKICAgICBkZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZyA9IHN0ZDo6
c3RyaW5nKCJ4bWw6IikgKyB4bWxfb3V0cHV0X2ZpbGVfZW52OwogICB9CiAgIHJldHVybiBkZWZh
dWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZzsKQEAgLTEzMTAsNyArMTM5Niw3IEBAIGNvbnN0IGNo
YXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZh
dWx0X3ZhbHVlKSB7CiAjZWxzZQogICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0gRmxhZ1Rv
RW52VmFyKGZsYWcpOwogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZSA9IHBvc2l4OjpHZXRFbnYo
ZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHZhbHVlID09IE5VTEwgPyBkZWZhdWx0X3ZhbHVl
IDogdmFsdWU7CisgIHJldHVybiB2YWx1ZSA9PSBudWxscHRyID8gZGVmYXVsdF92YWx1ZSA6IHZh
bHVlOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9TVFJJTkdfRlJPTV9FTlZfKQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MKaW5kZXgg
ZGU0ZDI0NWU5ZmM4ODk3YWYyMTM3Njc5ZDkxM2Q2NjVmZDg0MzZlMS4uMWI2OGZjYjUwMDU1MGY4
ZDA4NDZiMTU4NDU1YTEyNmJiYzRiZmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc3JjL2d0ZXN0LXByaW50ZXJzLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NyYy9ndGVzdC1wcmludGVycy5jYwpAQCAtNDIsMTEgKzQyLDE2IEBACiAvLyBkZWZpbmVzIEZv
by4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCisKICNpbmNsdWRlIDxzdGRp
by5oPgorCiAjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8
Y3djaGFyPgogI2luY2x1ZGUgPG9zdHJlYW0+ICAvLyBOT0xJTlQKICNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVz
dC1wb3J0LmgiCiAjaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgogCkBAIC01OSw2
ICs2NCw3IEBAIHVzaW5nIDo6c3RkOjpvc3RyZWFtOwogLy8gUHJpbnRzIGEgc2VnbWVudCBvZiBi
eXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0LgogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX01F
TU9SWV8KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXworR1RFU1RfQVRUUklC
VVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9U
SFJFQURfCiB2b2lkIFByaW50Qnl0ZVNlZ21lbnRJbk9iamVjdFRvKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIG9ial9ieXRlcywgc2l6ZV90IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgY291bnQsIG9zdHJlYW0qIG9zKSB7CkBAIC04OSw3ICs5NSw2IEBAIHZvaWQg
UHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKGNvbnN0IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRlcywg
c2l6ZV90IGNvdW50LAogICAvLyBJZiB0aGUgb2JqZWN0IHNpemUgaXMgYmlnZ2VyIHRoYW4ga1Ro
cmVzaG9sZCwgd2UnbGwgaGF2ZSB0byBvbWl0CiAgIC8vIHNvbWUgZGV0YWlscyBieSBwcmludGlu
ZyBvbmx5IHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qga0NodW5rU2l6ZQogICAvLyBieXRlcy4KLSAg
Ly8gRklYTUU6IGxldCB0aGUgdXNlciBjb250cm9sIHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBmbGFn
LgogICBpZiAoY291bnQgPCBrVGhyZXNob2xkKSB7CiAgICAgUHJpbnRCeXRlU2VnbWVudEluT2Jq
ZWN0VG8ob2JqX2J5dGVzLCAwLCBjb3VudCwgb3MpOwogICB9IGVsc2UgewpAQCAtMTAyLDkgKzEw
NywxOSBAQCB2b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1wbChjb25zdCB1bnNpZ25lZCBjaGFy
KiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgKm9zIDw8ICI+IjsKIH0KIAorLy8gSGVscGVy
cyBmb3Igd2lkZW5pbmcgYSBjaGFyYWN0ZXIgdG8gY2hhcjMyX3QuIFNpbmNlIHRoZSBzdGFuZGFy
ZCBkb2VzIG5vdAorLy8gc3BlY2lmeSBpZiBjaGFyIC8gd2NoYXJfdCBpcyBzaWduZWQgb3IgdW5z
aWduZWQsIGl0IGlzIGltcG9ydGFudCB0byBmaXJzdAorLy8gY29udmVydCBpdCB0byB0aGUgdW5z
aWduZWQgdHlwZSBvZiB0aGUgc2FtZSB3aWR0aCBiZWZvcmUgd2lkZW5pbmcgaXQgdG8KKy8vIGNo
YXIzMl90LgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgorY2hhcjMyX3QgVG9DaGFyMzIo
Q2hhclR5cGUgaW4pIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIzMl90PigKKyAgICAgIHN0
YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6bWFrZV91bnNpZ25lZDxDaGFyVHlwZT46OnR5cGU+KGlu
KSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZQogCi1uYW1lc3BhY2UgaW50ZXJuYWwyIHsKK25hbWVz
cGFjZSBpbnRlcm5hbCB7CiAKIC8vIERlbGVnYXRlcyB0byBQcmludEJ5dGVzSW5PYmplY3RUb0lt
cGwoKSB0byBwcmludCB0aGUgYnl0ZXMgaW4gdGhlCiAvLyBnaXZlbiBvYmplY3QuICBUaGUgZGVs
ZWdhdGlvbiBzaW1wbGlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2gKQEAgLTExNiwxMCAr
MTMxLDYgQEAgdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBv
YmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKG9ial9i
eXRlcywgY291bnQsIG9zKTsKIH0KIAotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotCi1uYW1l
c3BhY2UgaW50ZXJuYWwgewotCiAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGEgY2hhciAo
b3Igd2NoYXJfdCksIHdlIHByaW50IGl0IGluIG9uZQogLy8gb2YgdGhyZWUgZm9ybWF0czoKIC8v
ICAgLSBhcyBpcyBpZiBpdCdzIGEgcHJpbnRhYmxlIEFTQ0lJIChlLmcuICdhJywgJzInLCAnICcp
LApAQCAtMTM0LDE3ICsxNDUsMTUgQEAgZW51bSBDaGFyRm9ybWF0IHsKIC8vIFJldHVybnMgdHJ1
ZSBpZiBjIGlzIGEgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3Rlci4gIFdlIHRlc3QgdGhlCiAvLyB2
YWx1ZSBvZiBjIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBpc3ByaW50KCksIHdoaWNoIGlz
IGJ1Z2d5IG9uCiAvLyBXaW5kb3dzIE1vYmlsZS4KLWlubGluZSBib29sIElzUHJpbnRhYmxlQXNj
aWkod2NoYXJfdCBjKSB7Ci0gIHJldHVybiAweDIwIDw9IGMgJiYgYyA8PSAweDdFOwotfQoraW5s
aW5lIGJvb2wgSXNQcmludGFibGVBc2NpaShjaGFyMzJfdCBjKSB7IHJldHVybiAweDIwIDw9IGMg
JiYgYyA8PSAweDdFOyB9CiAKLS8vIFByaW50cyBhIHdpZGUgb3IgbmFycm93IGNoYXIgYyBhcyBh
IGNoYXJhY3RlciBsaXRlcmFsIHdpdGhvdXQgdGhlCi0vLyBxdW90ZXMsIGVzY2FwaW5nIGl0IHdo
ZW4gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi0vLyBUaGUgdGVtcGxh
dGUgYXJndW1lbnQgVW5zaWduZWRDaGFyIGlzIHRoZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENoYXIs
Ci0vLyB3aGljaCBpcyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVk
Q2hhciwgdHlwZW5hbWUgQ2hhcj4KKy8vIFByaW50cyBjIChvZiB0eXBlIGNoYXIsIGNoYXI4X3Qs
IGNoYXIxNl90LCBjaGFyMzJfdCwgb3Igd2NoYXJfdCkgYXMgYQorLy8gY2hhcmFjdGVyIGxpdGVy
YWwgd2l0aG91dCB0aGUgcXVvdGVzLCBlc2NhcGluZyBpdCB3aGVuIG5lY2Vzc2FyeTsgcmV0dXJu
cyBob3cKKy8vIGMgd2FzIGZvcm1hdHRlZC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyPgogc3Rh
dGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykg
ewotICBzd2l0Y2ggKHN0YXRpY19jYXN0PHdjaGFyX3Q+KGMpKSB7CisgIGNvbnN0IGNoYXIzMl90
IHVfYyA9IFRvQ2hhcjMyKGMpOworICBzd2l0Y2ggKHVfYykgewogICAgIGNhc2UgTCdcMCc6CiAg
ICAgICAqb3MgPDwgIlxcMCI7CiAgICAgICBicmVhazsKQEAgLTE3NiwxMyArMTg1LDEyIEBAIHN0
YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRvKENoYXIgYywgb3N0cmVhbSogb3Mp
IHsKICAgICAgICpvcyA8PCAiXFx2IjsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAg
ICBpZiAoSXNQcmludGFibGVBc2NpaShjKSkgeworICAgICAgaWYgKElzUHJpbnRhYmxlQXNjaWko
dV9jKSkgewogICAgICAgICAqb3MgPDwgc3RhdGljX2Nhc3Q8Y2hhcj4oYyk7CiAgICAgICAgIHJl
dHVybiBrQXNJczsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIG9zdHJlYW06OmZtdGZsYWdzIGZs
YWdzID0gb3MtPmZsYWdzKCk7Ci0gICAgICAgICpvcyA8PCAiXFx4IiA8PCBzdGQ6OmhleCA8PCBz
dGQ6OnVwcGVyY2FzZQotICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50PihzdGF0aWNfY2Fz
dDxVbnNpZ25lZENoYXI+KGMpKTsKKyAgICAgICAgKm9zIDw8ICJcXHgiIDw8IHN0ZDo6aGV4IDw8
IHN0ZDo6dXBwZXJjYXNlIDw8IHN0YXRpY19jYXN0PGludD4odV9jKTsKICAgICAgICAgb3MtPmZs
YWdzKGZsYWdzKTsKICAgICAgICAgcmV0dXJuIGtIZXhFc2NhcGU7CiAgICAgICB9CkBAIC0xOTAs
OSArMTk4LDkgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hhciBj
LCBvc3RyZWFtKiBvcykgewogICByZXR1cm4ga1NwZWNpYWxFc2NhcGU7CiB9CiAKLS8vIFByaW50
cyBhIHdjaGFyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBp
bmcgaXQgd2hlbgorLy8gUHJpbnRzIGEgY2hhcjMyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBz
dHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hlbgogLy8gbmVjZXNzYXJ5OyByZXR1cm5zIGhv
dyBjIHdhcyBmb3JtYXR0ZWQuCi1zdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJh
bFRvKHdjaGFyX3QgYywgb3N0cmVhbSogb3MpIHsKK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNT
dHJpbmdMaXRlcmFsVG8oY2hhcjMyX3QgYywgb3N0cmVhbSogb3MpIHsKICAgc3dpdGNoIChjKSB7
CiAgICAgY2FzZSBMJ1wnJzoKICAgICAgICpvcyA8PCAiJyI7CkBAIC0yMDEsMjYgKzIwOSw2OCBA
QCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywgb3N0
cmVhbSogb3MpIHsKICAgICAgICpvcyA8PCAiXFxcIiI7CiAgICAgICByZXR1cm4ga1NwZWNpYWxF
c2NhcGU7CiAgICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiBQcmludEFzQ2hhckxpdGVyYWxUbzx3
Y2hhcl90PihjLCBvcyk7CisgICAgICByZXR1cm4gUHJpbnRBc0NoYXJMaXRlcmFsVG8oYywgb3Mp
OwogICB9CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcikg
eworICByZXR1cm4gIiI7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVm
aXgoc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQorCitzdGF0aWMgY29uc3QgY2hhciog
R2V0Q2hhcldpZHRoUHJlZml4KHVuc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQorCisj
aWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZp
eChjaGFyOF90KSB7CisgIHJldHVybiAidTgiOworfQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBj
aGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcjE2X3QpIHsKKyAgcmV0dXJuICJ1IjsKK30KKwor
c3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZpeChjaGFyMzJfdCkgeworICByZXR1
cm4gIlUiOworfQorCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4KHdjaGFy
X3QpIHsKKyAgcmV0dXJuICJMIjsKK30KKwogLy8gUHJpbnRzIGEgY2hhciBjIGFzIGlmIGl0J3Mg
cGFydCBvZiBhIHN0cmluZyBsaXRlcmFsLCBlc2NhcGluZyBpdCB3aGVuCiAvLyBuZWNlc3Nhcnk7
IHJldHVybnMgaG93IGMgd2FzIGZvcm1hdHRlZC4KIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNT
dHJpbmdMaXRlcmFsVG8oY2hhciBjLCBvc3RyZWFtKiBvcykgewotICByZXR1cm4gUHJpbnRBc1N0
cmluZ0xpdGVyYWxUbygKLSAgICAgIHN0YXRpY19jYXN0PHdjaGFyX3Q+KHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXI+KGMpKSwgb3MpOworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhU
b0NoYXIzMihjKSwgb3MpOworfQorCisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIENoYXJG
b3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyOF90IGMsIG9zdHJlYW0qIG9zKSB7Cisg
IHJldHVybiBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKFRvQ2hhcjMyKGMpLCBvcyk7Cit9CisjZW5k
aWYKKworc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyMTZfdCBj
LCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIz
MihjKSwgb3MpOwogfQogCi0vLyBQcmludHMgYSB3aWRlIG9yIG5hcnJvdyBjaGFyYWN0ZXIgYyBh
bmQgaXRzIGNvZGUuICAnXDAnIGlzIHByaW50ZWQKLS8vIGFzICInXFwwJyIsIG90aGVyIHVucHJp
bnRhYmxlIGNoYXJhY3RlcnMgYXJlIGFsc28gcHJvcGVybHkgZXNjYXBlZAotLy8gdXNpbmcgdGhl
IHN0YW5kYXJkIEMrKyBlc2NhcGUgc2VxdWVuY2UuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8v
IFVuc2lnbmVkQ2hhciBpcyB0aGUgdW5zaWduZWQgdmVyc2lvbiBvZiBDaGFyLCB3aGljaCBpcyB0
aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVkQ2hhciwgdHlwZW5hbWUg
Q2hhcj4KK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8od2NoYXJfdCBj
LCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIz
MihjKSwgb3MpOworfQorCisvLyBQcmludHMgYSBjaGFyYWN0ZXIgYyAob2YgdHlwZSBjaGFyLCBj
aGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QpCisvLyBhbmQgaXRzIGNvZGUu
ICdcMCcgaXMgcHJpbnRlZCBhcyAiJ1xcMCciLCBvdGhlciB1bnByaW50YWJsZSBjaGFyYWN0ZXJz
IGFyZQorLy8gYWxzbyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBDKysgZXNj
YXBlIHNlcXVlbmNlLgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXI+CiB2b2lkIFByaW50Q2hhckFu
ZENvZGVUbyhDaGFyIGMsIG9zdHJlYW0qIG9zKSB7CiAgIC8vIEZpcnN0LCBwcmludCBjIGFzIGEg
bGl0ZXJhbCBpbiB0aGUgbW9zdCByZWFkYWJsZSBmb3JtIHdlIGNhbiBmaW5kLgotICAqb3MgPDwg
KChzaXplb2YoYykgPiAxKSA/ICJMJyIgOiAiJyIpOwotICBjb25zdCBDaGFyRm9ybWF0IGZvcm1h
dCA9IFByaW50QXNDaGFyTGl0ZXJhbFRvPFVuc2lnbmVkQ2hhcj4oYywgb3MpOworICAqb3MgPDwg
R2V0Q2hhcldpZHRoUHJlZml4KGMpIDw8ICInIjsKKyAgY29uc3QgQ2hhckZvcm1hdCBmb3JtYXQg
PSBQcmludEFzQ2hhckxpdGVyYWxUbyhjLCBvcyk7CiAgICpvcyA8PCAiJyI7CiAKICAgLy8gVG8g
YWlkIHVzZXIgZGVidWdnaW5nLCB3ZSBhbHNvIHByaW50IGMncyBjb2RlIGluIGRlY2ltYWwsIHVu
bGVzcwpAQCAtMjM2LDM2ICsyODYsMzcgQEAgdm9pZCBQcmludENoYXJBbmRDb2RlVG8oQ2hhciBj
LCBvc3RyZWFtKiBvcykgewogICBpZiAoZm9ybWF0ID09IGtIZXhFc2NhcGUgfHwgKDEgPD0gYyAm
JiBjIDw9IDkpKSB7CiAgICAgLy8gRG8gbm90aGluZy4KICAgfSBlbHNlIHsKLSAgICAqb3MgPDwg
IiwgMHgiIDw8IFN0cmluZzo6Rm9ybWF0SGV4SW50KHN0YXRpY19jYXN0PFVuc2lnbmVkQ2hhcj4o
YykpOworICAgICpvcyA8PCAiLCAweCIgPDwgU3RyaW5nOjpGb3JtYXRIZXhJbnQoc3RhdGljX2Nh
c3Q8aW50PihjKSk7CiAgIH0KICAgKm9zIDw8ICIpIjsKIH0KIAotdm9pZCBQcmludFRvKHVuc2ln
bmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx1
bnNpZ25lZCBjaGFyPihjLCBvcyk7Ci19Ci12b2lkIFByaW50VG8oc2lnbmVkIGNoYXIgYywgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx1bnNpZ25lZCBjaGFyPihj
LCBvcyk7Ci19Cit2b2lkIFByaW50VG8odW5zaWduZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsgUHJpbnRDaGFyQW5kQ29kZVRvKGMsIG9zKTsgfQordm9pZCBQcmludFRvKHNpZ25lZCBj
aGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeyBQcmludENoYXJBbmRDb2RlVG8oYywgb3MpOyB9
CiAKIC8vIFByaW50cyBhIHdjaGFyX3QgYXMgYSBzeW1ib2wgaWYgaXQgaXMgcHJpbnRhYmxlIG9y
IGFzIGl0cyBpbnRlcm5hbAogLy8gY29kZSBvdGhlcndpc2UgYW5kIGFsc28gYXMgaXRzIGNvZGUu
ICBMJ1wwJyBpcyBwcmludGVkIGFzICJMJ1xcMCciLgotdm9pZCBQcmludFRvKHdjaGFyX3Qgd2Ms
IG9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx3Y2hhcl90Pih3Yywgb3MpOwor
dm9pZCBQcmludFRvKHdjaGFyX3Qgd2MsIG9zdHJlYW0qIG9zKSB7IFByaW50Q2hhckFuZENvZGVU
byh3Yywgb3MpOyB9CisKKy8vIFRPRE8oZGNoZW5nKTogQ29uc2lkZXIgbWFraW5nIHRoaXMgZGVs
ZWdhdGUgdG8gUHJpbnRDaGFyQW5kQ29kZVRvKCkgYXMgd2VsbC4KK3ZvaWQgUHJpbnRUbyhjaGFy
MzJfdCBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgKm9zIDw8IHN0ZDo6aGV4IDw8ICJVKyIg
PDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykgPDwgc3RkOjpzZXR3KDQpCisg
ICAgICA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYyk7CiB9CiAKIC8vIFByaW50cyB0aGUgZ2l2
ZW4gYXJyYXkgb2YgY2hhcmFjdGVycyB0byB0aGUgb3N0cmVhbS4gIENoYXJUeXBlIG11c3QgYmUg
ZWl0aGVyCi0vLyBjaGFyIG9yIHdjaGFyX3QuCisvLyBjaGFyLCBjaGFyOF90LCBjaGFyMTZfdCwg
Y2hhcjMyX3QsIG9yIHdjaGFyX3QuCiAvLyBUaGUgYXJyYXkgc3RhcnRzIGF0IGJlZ2luLCB0aGUg
bGVuZ3RoIGlzIGxlbiwgaXQgbWF5IGluY2x1ZGUgJ1wwJyBjaGFyYWN0ZXJzCiAvLyBhbmQgbWF5
IG5vdCBiZSBOVUwtdGVybWluYXRlZC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KIEdU
RVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBH
VEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwogc3RhdGljIENoYXJGb3JtYXQgUHJp
bnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgY29uc3QgQ2hhclR5cGUqIGJlZ2luLCBzaXplX3QgbGVu
LCBvc3RyZWFtKiBvcykgewotICBjb25zdCBjaGFyKiBjb25zdCBrUXVvdGVCZWdpbiA9IHNpemVv
ZihDaGFyVHlwZSkgPT0gMSA/ICJcIiIgOiAiTFwiIjsKLSAgKm9zIDw8IGtRdW90ZUJlZ2luOwor
ICBjb25zdCBjaGFyKiBjb25zdCBxdW90ZV9wcmVmaXggPSBHZXRDaGFyV2lkdGhQcmVmaXgoKmJl
Z2luKTsKKyAgKm9zIDw8IHF1b3RlX3ByZWZpeCA8PCAiXCIiOwogICBib29sIGlzX3ByZXZpb3Vz
X2hleCA9IGZhbHNlOwogICBDaGFyRm9ybWF0IHByaW50X2Zvcm1hdCA9IGtBc0lzOwogICBmb3Ig
KHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbGVuOyArK2luZGV4KSB7CkBAIC0yNzQsNyArMzI1
LDcgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgICAvLyBQ
cmV2aW91cyBjaGFyYWN0ZXIgaXMgb2YgJ1x4Li4nIGZvcm0gYW5kIHRoaXMgY2hhcmFjdGVyIGNh
biBiZQogICAgICAgLy8gaW50ZXJwcmV0ZWQgYXMgYW5vdGhlciBoZXhhZGVjaW1hbCBkaWdpdCBp
biBpdHMgbnVtYmVyLiBCcmVhayBzdHJpbmcgdG8KICAgICAgIC8vIGRpc2FtYmlndWF0ZS4KLSAg
ICAgICpvcyA8PCAiXCIgIiA8PCBrUXVvdGVCZWdpbjsKKyAgICAgICpvcyA8PCAiXCIgIiA8PCBx
dW90ZV9wcmVmaXggPDwgIlwiIjsKICAgICB9CiAgICAgaXNfcHJldmlvdXNfaGV4ID0gUHJpbnRB
c1N0cmluZ0xpdGVyYWxUbyhjdXIsIG9zKSA9PSBrSGV4RXNjYXBlOwogICAgIC8vIFJlbWVtYmVy
IGlmIGFueSBjaGFyYWN0ZXJzIHJlcXVpcmVkIGhleCBlc2NhcGluZy4KQEAgLTI5MSw2ICszNDIs
NyBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludENoYXJzQXNTdHJpbmdUbygKIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyVHlwZT4KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllfCiBH
VEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19T
QU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwog
c3RhdGljIHZvaWQgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoCiAgICAgY29uc3QgQ2hhclR5cGUq
IGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewpAQCAtMzE5LDIyICszNzEsNTcgQEAg
dm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIqIGJlZ2luLCBzaXplX3QgbGVuLCBv
c3RyZWFtKiBvcykgewogICBVbml2ZXJzYWxQcmludENoYXJBcnJheShiZWdpbiwgbGVuLCBvcyk7
CiB9CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisvLyBQcmludHMgYSAoY29uc3QpIGNoYXI4X3Qg
YXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0IGFkZHJlc3MKKy8vICdiZWdpbicu
Cit2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjhfdCogYmVnaW4sIHNpemVfdCBs
ZW4sIG9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4s
IG9zKTsKK30KKyNlbmRpZgorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIxNl90IGFycmF5IG9m
ICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9pZCBV
bml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIxNl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0
cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3MpOwor
fQorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIzMl90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRz
LCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9pZCBVbml2ZXJzYWxQcmludEFy
cmF5KGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKKyAg
VW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3MpOworfQorCiAvLyBQcmludHMg
YSAoY29uc3QpIHdjaGFyX3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0IGFk
ZHJlc3MKIC8vICdiZWdpbicuCiB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3Qgd2NoYXJf
dCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0qIG9zKSB7CiAgIFVuaXZlcnNhbFByaW50Q2hh
ckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKIH0KIAotLy8gUHJpbnRzIHRoZSBnaXZlbiBDIHN0cmlu
ZyB0byB0aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBv
cykgewotICBpZiAocyA9PSBOVUxMKSB7CituYW1lc3BhY2UgeworCisvLyBQcmludHMgYSBudWxs
LXRlcm1pbmF0ZWQgQy1zdHlsZSBzdHJpbmcgdG8gdGhlIG9zdHJlYW0uCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgQ2hhcj4KK3ZvaWQgUHJpbnRDU3RyaW5nVG8oY29uc3QgQ2hhciogcywgb3N0cmVhbSog
b3MpIHsKKyAgaWYgKHMgPT0gbnVsbHB0cikgewogICAgICpvcyA8PCAiTlVMTCI7CiAgIH0gZWxz
ZSB7CiAgICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpIDw8ICIgcG9pbnRp
bmcgdG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdHJsZW4ocyksIG9zKTsKKyAg
ICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdGQ6OmNoYXJfdHJhaXRzPENoYXI+OjpsZW5ndGgo
cyksIG9zKTsKICAgfQogfQogCit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQgUHJp
bnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7
IH0KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyOF90KiBz
LCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KKyNlbmRpZgorCit2b2lk
IFByaW50VG8oY29uc3QgY2hhcjE2X3QqIHMsIG9zdHJlYW0qIG9zKSB7IFByaW50Q1N0cmluZ1Rv
KHMsIG9zKTsgfQorCit2b2lkIFByaW50VG8oY29uc3QgY2hhcjMyX3QqIHMsIG9zdHJlYW0qIG9z
KSB7IFByaW50Q1N0cmluZ1RvKHMsIG9zKTsgfQorCiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBj
b25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25lZCBz
aG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQgY2Fz
ZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50ZWQg
YXMgd2lkZSBzdHJpbmdzLApAQCAtMzQzLDE0ICs0MzAsNyBAQCB2b2lkIFByaW50VG8oY29uc3Qg
Y2hhciogcywgb3N0cmVhbSogb3MpIHsKIC8vIHdjaGFyX3QgaXMgaW1wbGVtZW50ZWQgYXMgYSBu
YXRpdmUgdHlwZS4KICNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfTkFUSVZFX1dD
SEFSX1RfREVGSU5FRCkKIC8vIFByaW50cyB0aGUgZ2l2ZW4gd2lkZSBDIHN0cmluZyB0byB0aGUg
b3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgewot
ICBpZiAocyA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAq
b3MgPDwgSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lkKj4ocykgPDwgIiBwb2ludGluZyB0byAiOwot
ICAgIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMsIHN0ZDo6d2NzbGVuKHMpLCBvcyk7Ci0gIH0KLX0K
K3ZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJp
bmdUbyhzLCBvcyk7IH0KICNlbmRpZiAgLy8gd2NoYXJfdCBpcyBuYXRpdmUKIAogbmFtZXNwYWNl
IHsKQEAgLTQyMCwzMSArNTAwLDI3IEBAIHZvaWQgQ29uZGl0aW9uYWxQcmludEFzVGV4dChjb25z
dCBjaGFyKiBzdHIsIHNpemVfdCBsZW5ndGgsIG9zdHJlYW0qIG9zKSB7CiAKIH0gIC8vIGFub255
bW91cyBuYW1lc3BhY2UKIAotLy8gUHJpbnRzIGEgOjpzdHJpbmcgb2JqZWN0LgotI2lmIEdURVNU
X0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdHJpbmcmIHMs
IG9zdHJlYW0qIG9zKSB7Cit2b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnN0cmluZyYg
cywgb3N0cmVhbSogb3MpIHsKICAgaWYgKFByaW50Q2hhcnNBc1N0cmluZ1RvKHMuZGF0YSgpLCBz
LnNpemUoKSwgb3MpID09IGtIZXhFc2NhcGUpIHsKICAgICBpZiAoR1RFU1RfRkxBRyhwcmludF91
dGY4KSkgewogICAgICAgQ29uZGl0aW9uYWxQcmludEFzVGV4dChzLmRhdGEoKSwgcy5zaXplKCks
IG9zKTsKICAgICB9CiAgIH0KIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcK
IAotdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHMsIG9zdHJlYW0qIG9z
KSB7Ci0gIGlmIChQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9zKSA9
PSBrSGV4RXNjYXBlKSB7Ci0gICAgaWYgKEdURVNUX0ZMQUcocHJpbnRfdXRmOCkpIHsKLSAgICAg
IENvbmRpdGlvbmFsUHJpbnRBc1RleHQocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7Ci0gICAgfQot
ICB9CisjaWZkZWYgX19jcHBfY2hhcjhfdAordm9pZCBQcmludFU4U3RyaW5nVG8oY29uc3QgOjpz
dGQ6OnU4c3RyaW5nJiBzLCBvc3RyZWFtKiBvcykgeworICBQcmludENoYXJzQXNTdHJpbmdUbyhz
LmRhdGEoKSwgcy5zaXplKCksIG9zKTsKK30KKyNlbmRpZgorCit2b2lkIFByaW50VTE2U3RyaW5n
VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKKyAgUHJpbnRDaGFy
c0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7CiB9CiAKLS8vIFByaW50cyBhIDo6
d3N0cmluZyBvYmplY3QuCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi12b2lkIFByaW50
V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKK3ZvaWQgUHJp
bnRVMzJTdHJpbmdUbyhjb25zdCA6OnN0ZDo6dTMyc3RyaW5nJiBzLCBvc3RyZWFtKiBvcykgewog
ICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKIH0KLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCiAKICNpZiBHVEVTVF9IQVNfU1REX1dTVFJJ
TkcKIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIG9zdHJl
YW0qIG9zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3Qt
dGVzdC1wYXJ0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXRlc3QtcGFy
dC5jYwppbmRleCBjODg4NjBkOTIzODU2MTllYTY3NjQ4ODQ1ODM5ZDE0NTgzZjExMTQ2Li5hOTM4
NjgzY2VkZWQyZjM0Njk3ZWZkODMwNWE2NzM2ODA2NGQwMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10ZXN0LXBhcnQuY2MKQEAgLTMxLDYgKzMxLDggQEAKIC8v
IFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVz
dCkKIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIgorCisjaW5jbHVkZSAiZ3Rl
c3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogI2luY2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5hbC1p
bmwuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewpAQCAtNDEsMTggKzQzLDIzIEBAIHVzaW5nIGlu
dGVybmFsOjpHZXRVbml0VGVzdEltcGw7CiAvLyBpbiBpdC4KIHN0ZDo6c3RyaW5nIFRlc3RQYXJ0
UmVzdWx0OjpFeHRyYWN0U3VtbWFyeShjb25zdCBjaGFyKiBtZXNzYWdlKSB7CiAgIGNvbnN0IGNo
YXIqIGNvbnN0IHN0YWNrX3RyYWNlID0gc3Ryc3RyKG1lc3NhZ2UsIGludGVybmFsOjprU3RhY2tU
cmFjZU1hcmtlcik7Ci0gIHJldHVybiBzdGFja190cmFjZSA9PSBOVUxMID8gbWVzc2FnZSA6Ci0g
ICAgICBzdGQ6OnN0cmluZyhtZXNzYWdlLCBzdGFja190cmFjZSk7CisgIHJldHVybiBzdGFja190
cmFjZSA9PSBudWxscHRyID8gbWVzc2FnZSA6IHN0ZDo6c3RyaW5nKG1lc3NhZ2UsIHN0YWNrX3Ry
YWNlKTsKIH0KIAogLy8gUHJpbnRzIGEgVGVzdFBhcnRSZXN1bHQgb2JqZWN0Lgogc3RkOjpvc3Ry
ZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiBy
ZXN1bHQpIHsKLSAgcmV0dXJuIG9zCi0gICAgICA8PCByZXN1bHQuZmlsZV9uYW1lKCkgPDwgIjoi
IDw8IHJlc3VsdC5saW5lX251bWJlcigpIDw8ICI6ICIKLSAgICAgIDw8IChyZXN1bHQudHlwZSgp
ID09IFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcyA/ICJTdWNjZXNzIiA6Ci0gICAgICAgICAgcmVz
dWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSA/ICJGYXRhbCBmYWls
dXJlIiA6Ci0gICAgICAgICAgIk5vbi1mYXRhbCBmYWlsdXJlIikgPDwgIjpcbiIKLSAgICAgIDw8
IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRsOworICByZXR1cm4gb3MgPDwgaW50ZXJuYWw6
OkZvcm1hdEZpbGVMb2NhdGlvbihyZXN1bHQuZmlsZV9uYW1lKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5saW5lX251bWJlcigpKQorICAgICAg
ICAgICAgPDwgIiAiCisgICAgICAgICAgICA8PCAocmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJl
c3VsdDo6a1N1Y2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgPyAiU3VjY2VzcyIKKyAgICAgICAg
ICAgICAgICAgICAgOiByZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU2tpcAorICAg
ICAgICAgICAgICAgICAgICAgICAgICA/ICJTa2lwcGVkIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiRmF0YWwgZmFpbHVyZSIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOiAiTm9uLWZhdGFsIGZhaWx1cmUiKQorICAgICAgICAg
ICAgPDwgIjpcbiIKKyAgICAgICAgICAgIDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRs
OwogfQogCiAvLyBBcHBlbmRzIGEgVGVzdFBhcnRSZXN1bHQgdG8gdGhlIGFycmF5LgpAQCAtNjcs
NyArNzQsNyBAQCBjb25zdCBUZXN0UGFydFJlc3VsdCYgVGVzdFBhcnRSZXN1bHRBcnJheTo6R2V0
VGVzdFBhcnRSZXN1bHQoaW50IGluZGV4KSBjb25zdCB7CiAgICAgaW50ZXJuYWw6OnBvc2l4OjpB
Ym9ydCgpOwogICB9CiAKLSAgcmV0dXJuIGFycmF5X1tpbmRleF07CisgIHJldHVybiBhcnJheV9b
c3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwogfQogCiAvLyBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0aGUgYXJyYXkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10ZXN0LmNjCmluZGV4IDFkYzJhZDM4YmFiOThi
YzE0NmMxNjE1OGE0N2RhMWUzOTRiZjM4NWYuLmMwMmMzZGY2NTk5NTI3YWY4NzhkMjhmNGFhMjMx
MWE2MWE2NWM0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC10eXBlZC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10
eXBlZC10ZXN0LmNjCkBAIC0zNSw4ICszNSw2IEBACiBuYW1lc3BhY2UgdGVzdGluZyB7CiBuYW1l
c3BhY2UgaW50ZXJuYWwgewogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiAvLyBTa2lw
cyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgaW4gc3RyLiBSZXR1cm5zIGFuIGVtcHR5IHN0
cmluZyBpZiBzdHIKIC8vIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgogc3Rh
dGljIGNvbnN0IGNoYXIqIFNraXBTcGFjZXMoY29uc3QgY2hhciogc3RyKSB7CkBAIC00OCw3ICs0
Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBTa2lwU3BhY2VzKGNvbnN0IGNoYXIqIHN0cikgewog
c3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEludG9UZXN0TmFtZXMoY29uc3Qg
Y2hhciogc3JjKSB7CiAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBuYW1lX3ZlYzsKICAgc3Jj
ID0gU2tpcFNwYWNlcyhzcmMpOwotICBmb3IgKDsgc3JjICE9IE5VTEw7IHNyYyA9IFNraXBDb21t
YShzcmMpKSB7CisgIGZvciAoOyBzcmMgIT0gbnVsbHB0cjsgc3JjID0gU2tpcENvbW1hKHNyYykp
IHsKICAgICBuYW1lX3ZlYy5wdXNoX2JhY2soU3RyaXBUcmFpbGluZ1NwYWNlcyhHZXRQcmVmaXhV
bnRpbENvbW1hKHNyYykpKTsKICAgfQogICByZXR1cm4gbmFtZV92ZWM7CkBAIC01Nyw4ICs1NSwx
MSBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IFNwbGl0SW50b1Rlc3ROYW1lcyhj
b25zdCBjaGFyKiBzcmMpIHsKIC8vIFZlcmlmaWVzIHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBtYXRj
aCB0aGUgdGVzdCBuYW1lcyBpbgogLy8gcmVnaXN0ZXJlZF90ZXN0c187IHJldHVybnMgcmVnaXN0
ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBvcgogLy8gYWJvcnRzIHRoZSBwcm9ncmFtIG90aGVy
d2lzZS4KLWNvbnN0IGNoYXIqIFR5cGVkVGVzdENhc2VQU3RhdGU6OlZlcmlmeVJlZ2lzdGVyZWRU
ZXN0TmFtZXMoCi0gICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIHJl
Z2lzdGVyZWRfdGVzdHMpIHsKK2NvbnN0IGNoYXIqIFR5cGVkVGVzdFN1aXRlUFN0YXRlOjpWZXJp
ZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAorICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwg
Y29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCisgICAgY29uc3QgY2hhciogcmVnaXN0ZXJlZF90
ZXN0cykgeworICBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKHRlc3Rfc3VpdGVf
bmFtZSwgQ29kZUxvY2F0aW9uKGZpbGUsIGxpbmUpKTsKKwogICB0eXBlZGVmIFJlZ2lzdGVyZWRU
ZXN0c01hcDo6Y29uc3RfaXRlcmF0b3IgUmVnaXN0ZXJlZFRlc3RJdGVyOwogICByZWdpc3RlcmVk
XyA9IHRydWU7CiAKQEAgLTc1LDIxICs3NiwxMSBAQCBjb25zdCBjaGFyKiBUeXBlZFRlc3RDYXNl
UFN0YXRlOjpWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAogICAgICAgY29udGludWU7CiAgICAg
fQogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZvciAoUmVnaXN0ZXJlZFRlc3RJdGVy
IGl0ID0gcmVnaXN0ZXJlZF90ZXN0c18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHJlZ2lzdGVy
ZWRfdGVzdHNfLmVuZCgpOwotICAgICAgICAgKytpdCkgewotICAgICAgaWYgKG5hbWUgPT0gaXQt
PmZpcnN0KSB7Ci0gICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKGZvdW5kKSB7CisgICAgaWYgKHJlZ2lzdGVyZWRfdGVzdHNfLmNv
dW50KG5hbWUpICE9IDApIHsKICAgICAgIHRlc3RzLmluc2VydChuYW1lKTsKICAgICB9IGVsc2Ug
ewogICAgICAgZXJyb3JzIDw8ICJObyB0ZXN0IG5hbWVkICIgPDwgbmFtZQotICAgICAgICAgICAg
IDw8ICIgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVzdCBjYXNlLlxuIjsKKyAgICAgICAgICAgICA8
PCAiIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3Qgc3VpdGUuXG4iOwogICAgIH0KICAgfQogCkBA
IC0xMTIsNyArMTAzLDUgQEAgY29uc3QgY2hhciogVHlwZWRUZXN0Q2FzZVBTdGF0ZTo6VmVyaWZ5
UmVnaXN0ZXJlZFRlc3ROYW1lcygKICAgcmV0dXJuIHJlZ2lzdGVyZWRfdGVzdHM7CiB9CiAKLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3Qu
Y2MKaW5kZXggOTZiMDdjNjhhYmIwNWEyZGJlMWJlMDlmMWMzNTM1YmNmNzlkMDAzMC4uOTA4OWY1
MGQ0OTJjN2M4Yzg2NWQzNjg0Njk4NDM5ZDU4MDgyOGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NyYy9ndGVzdC5jYwpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXNw
aS5oIgogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ0
LDYgKzQzLDkgQEAKICNpbmNsdWRlIDx3Y3R5cGUuaD4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4K
KyNpbmNsdWRlIDxjaHJvbm8+ICAvLyBOT0xJTlQKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRl
IDxjc3RkaW50PgogI2luY2x1ZGUgPGlvbWFuaXA+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1
ZGUgPGxpc3Q+CkBAIC01NCwxMCArNTYsNiBAQAogCiAjaWYgR1RFU1RfT1NfTElOVVgKIAotLy8g
RklYTUU6IFVzZSBhdXRvY29uZiB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IG9mCi0vLyBnZXR0aW1l
b2ZkYXkoKS4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKLQogIyBpbmNsdWRl
IDxmY250bC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPGxpbWl0cy5oPiAgLy8gTk9MSU5UCiAj
IGluY2x1ZGUgPHNjaGVkLmg+ICAvLyBOT0xJTlQKQEAgLTY4LDEyICs2Niw3IEBACiAjIGluY2x1
ZGUgPHVuaXN0ZC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPHN0cmluZz4KIAotI2VsaWYgR1RF
U1RfT1NfU1lNQklBTgotIyBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQotIyBpbmNs
dWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCi0KICNlbGlmIEdURVNUX09TX1pPUwotIyBkZWZp
bmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8g
Tk9MSU5UCiAKIC8vIE9uIHovT1Mgd2UgYWRkaXRpb25hbGx5IG5lZWQgc3RyaW5ncy5oIGZvciBz
dHJjYXNlY21wLgpAQCAtODYsMzQgKzc5LDI0IEBACiAKICNlbGlmIEdURVNUX09TX1dJTkRPV1Mg
IC8vIFdlIGFyZSBvbiBXaW5kb3dzIHByb3Blci4KIAorIyBpbmNsdWRlIDx3aW5kb3dzLmg+ICAv
LyBOT0xJTlQKKyMgdW5kZWYgbWluCisKKyNpZmRlZiBfTVNDX1ZFUgorIyBpbmNsdWRlIDxjcnRk
YmcuaD4gIC8vIE5PTElOVAorI2VuZGlmCisKICMgaW5jbHVkZSA8aW8uaD4gIC8vIE5PTElOVAog
IyBpbmNsdWRlIDxzeXMvdGltZWIuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvdHlwZXMu
aD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPiAgLy8gTk9MSU5UCiAKICMgaWYg
R1RFU1RfT1NfV0lORE9XU19NSU5HVwotLy8gTWluR1cgaGFzIGdldHRpbWVvZmRheSgpIGJ1dCBu
b3QgX2Z0aW1lNjQoKS4KLS8vIEZJWE1FOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWlsYWJp
bGl0eSBvZgotLy8gICBnZXR0aW1lb2ZkYXkoKS4KLS8vIEZJWE1FOiBUaGVyZSBhcmUgb3RoZXIg
d2F5cyB0byBnZXQgdGhlIHRpbWUgb24KLS8vICAgV2luZG93cywgbGlrZSBHZXRUaWNrQ291bnQo
KSBvciBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpLiAgTWluR1cKLS8vICAgc3VwcG9ydHMgdGhl
c2UuICBjb25zaWRlciB1c2luZyB0aGVtIGluc3RlYWQuCi0jICBkZWZpbmUgR1RFU1RfSEFTX0dF
VFRJTUVPRkRBWV8gMQogIyAgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAogIyBlbmRp
ZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NSU5HVwogCi0vLyBjcHBsaW50IHRoaW5rcyB0aGF0IHRo
ZSBoZWFkZXIgaXMgYWxyZWFkeSBpbmNsdWRlZCwgc28gd2Ugd2FudCB0bwotLy8gc2lsZW5jZSBp
dC4KLSMgaW5jbHVkZSA8d2luZG93cy5oPiAgLy8gTk9MSU5UCi0jIHVuZGVmIG1pbgotCiAjZWxz
ZQogCi0vLyBBc3N1bWUgb3RoZXIgcGxhdGZvcm1zIGhhdmUgZ2V0dGltZW9mZGF5KCkuCi0vLyBG
SVhNRTogVXNlIGF1dG9jb25mIHRvIGRldGVjdCBhdmFpbGFiaWxpdHkgb2YKLS8vICAgZ2V0dGlt
ZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9GREFZXyAxCi0KIC8vIGNwcGxp
bnQgdGhpbmtzIHRoYXQgdGhlIGhlYWRlciBpcyBhbHJlYWR5IGluY2x1ZGVkLCBzbyB3ZSB3YW50
IHRvCiAvLyBzaWxlbmNlIGl0LgogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCkBA
IC0xNjAsMTQgKzE0MywxNCBAQCB1c2luZyBpbnRlcm5hbDo6U2h1ZmZsZTsKIAogLy8gQ29uc3Rh
bnRzLgogCi0vLyBBIHRlc3Qgd2hvc2UgdGVzdCBjYXNlIG5hbWUgb3IgdGVzdCBuYW1lIG1hdGNo
ZXMgdGhpcyBmaWx0ZXIgaXMKKy8vIEEgdGVzdCB3aG9zZSB0ZXN0IHN1aXRlIG5hbWUgb3IgdGVz
dCBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMKIC8vIGRpc2FibGVkIGFuZCBub3QgcnVuLgog
c3RhdGljIGNvbnN0IGNoYXIga0Rpc2FibGVUZXN0RmlsdGVyW10gPSAiRElTQUJMRURfKjoqL0RJ
U0FCTEVEXyoiOwogCi0vLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0
ZXIgaXMgY29uc2lkZXJlZCBhIGRlYXRoCi0vLyB0ZXN0IGNhc2UgYW5kIHdpbGwgYmUgcnVuIGJl
Zm9yZSB0ZXN0IGNhc2VzIHdob3NlIG5hbWUgZG9lc24ndAorLy8gQSB0ZXN0IHN1aXRlIHdob3Nl
IG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRlciBpcyBjb25zaWRlcmVkIGEgZGVhdGgKKy8vIHRlc3Qg
c3VpdGUgYW5kIHdpbGwgYmUgcnVuIGJlZm9yZSB0ZXN0IHN1aXRlcyB3aG9zZSBuYW1lIGRvZXNu
J3QKIC8vIG1hdGNoIHRoaXMgZmlsdGVyLgotc3RhdGljIGNvbnN0IGNoYXIga0RlYXRoVGVzdENh
c2VGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7CitzdGF0aWMgY29uc3QgY2hh
ciBrRGVhdGhUZXN0U3VpdGVGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7CiAK
IC8vIEEgdGVzdCBmaWx0ZXIgdGhhdCBtYXRjaGVzIGV2ZXJ5dGhpbmcuCiBzdGF0aWMgY29uc3Qg
Y2hhciBrVW5pdmVyc2FsRmlsdGVyW10gPSAiKiI7CkBAIC0xOTAsMjAgKzE3MywyMCBAQCBuYW1l
c3BhY2UgaW50ZXJuYWwgewogLy8gc3RhY2sgdHJhY2UuCiBjb25zdCBjaGFyIGtTdGFja1RyYWNl
TWFya2VyW10gPSAiXG5TdGFjayB0cmFjZTpcbiI7CiAKLS8vIGdfaGVscF9mbGFnIGlzIHRydWUg
aWZmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVpdmFsZW50IGZvcm0gaXMKLS8vIHNwZWNpZmll
ZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLy8gZ19oZWxwX2ZsYWcgaXMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtCisvLyBpcyBzcGVjaWZp
ZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KIGJvb2wgZ19oZWxwX2ZsYWcgPSBmYWxzZTsKIAogLy8g
VXRpbHR5IGZ1bmN0aW9uIHRvIE9wZW4gRmlsZSBmb3IgV3JpdGluZwogc3RhdGljIEZJTEUqIE9w
ZW5GaWxlRm9yV3JpdGluZyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2ZpbGUpIHsKLSAgRklM
RSogZmlsZW91dCA9IE5VTEw7CisgIEZJTEUqIGZpbGVvdXQgPSBudWxscHRyOwogICBGaWxlUGF0
aCBvdXRwdXRfZmlsZV9wYXRoKG91dHB1dF9maWxlKTsKICAgRmlsZVBhdGggb3V0cHV0X2Rpcihv
dXRwdXRfZmlsZV9wYXRoLlJlbW92ZUZpbGVOYW1lKCkpOwogCiAgIGlmIChvdXRwdXRfZGlyLkNy
ZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSkgewogICAgIGZpbGVvdXQgPSBwb3NpeDo6Rk9w
ZW4ob3V0cHV0X2ZpbGUuY19zdHIoKSwgInciKTsKICAgfQotICBpZiAoZmlsZW91dCA9PSBOVUxM
KSB7CisgIGlmIChmaWxlb3V0ID09IG51bGxwdHIpIHsKICAgICBHVEVTVF9MT0dfKEZBVEFMKSA8
PCAiVW5hYmxlIHRvIG9wZW4gZmlsZSBcIiIgPDwgb3V0cHV0X2ZpbGUgPDwgIlwiIjsKICAgfQog
ICByZXR1cm4gZmlsZW91dDsKQEAgLTIxNiwyNyArMTk5LDQxIEBAIHN0YXRpYyBGSUxFKiBPcGVu
RmlsZUZvcldyaXRpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9maWxlKSB7CiBzdGF0aWMg
Y29uc3QgY2hhciogR2V0RGVmYXVsdEZpbHRlcigpIHsKICAgY29uc3QgY2hhciogY29uc3QgdGVz
dGJyaWRnZV90ZXN0X29ubHkgPQogICAgICAgaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RC
UklER0VfVEVTVF9PTkxZIik7Ci0gIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBOVUxMKSB7
CisgIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJuIHRl
c3RicmlkZ2VfdGVzdF9vbmx5OwogICB9CiAgIHJldHVybiBrVW5pdmVyc2FsRmlsdGVyOwogfQog
CisvLyBCYXplbCBwYXNzZXMgaW4gdGhlIGFyZ3VtZW50IHRvICctLXRlc3RfcnVubmVyX2ZhaWxf
ZmFzdCcgdmlhIHRoZQorLy8gVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QgZW52aXJv
bm1lbnQgdmFyaWFibGUuCitzdGF0aWMgYm9vbCBHZXREZWZhdWx0RmFpbEZhc3QoKSB7CisgIGNv
bnN0IGNoYXIqIGNvbnN0IHRlc3RicmlkZ2VfdGVzdF9ydW5uZXJfZmFpbF9mYXN0ID0KKyAgICAg
IGludGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNUQlJJREdFX1RFU1RfUlVOTkVSX0ZBSUxfRkFT
VCIpOworICBpZiAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3QgIT0gbnVsbHB0cikg
eworICAgIHJldHVybiBzdHJjbXAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3QsICIx
IikgPT0gMDsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK0dURVNUX0RFRklORV9ib29sXygK
KyAgICBmYWlsX2Zhc3QsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJmYWlsX2Zhc3QiLCBH
ZXREZWZhdWx0RmFpbEZhc3QoKSksCisgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgYSB0ZXN0IGZh
aWx1cmUgc2hvdWxkIHN0b3AgZnVydGhlciB0ZXN0IGV4ZWN1dGlvbi4iKTsKKwogR1RFU1RfREVG
SU5FX2Jvb2xfKAogICAgIGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzLAogICAgIGludGVybmFsOjpC
b29sRnJvbUdUZXN0RW52KCJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsIGZhbHNlKSwKICAgICAi
UnVuIGRpc2FibGVkIHRlc3RzIHRvbywgaW4gYWRkaXRpb24gdG8gdGhlIHRlc3RzIG5vcm1hbGx5
IGJlaW5nIHJ1bi4iKTsKIAogR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGJyZWFrX29uX2ZhaWx1
cmUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImJyZWFrX29uX2ZhaWx1cmUiLCBm
YWxzZSksCi0gICAgIlRydWUgaWZmIGEgZmFpbGVkIGFzc2VydGlvbiBzaG91bGQgYmUgYSBkZWJ1
Z2dlciBicmVhay1wb2ludC4iKTsKKyAgICBicmVha19vbl9mYWlsdXJlLCBpbnRlcm5hbDo6Qm9v
bEZyb21HVGVzdEVudigiYnJlYWtfb25fZmFpbHVyZSIsIGZhbHNlKSwKKyAgICAiVHJ1ZSBpZiBh
bmQgb25seSBpZiBhIGZhaWxlZCBhc3NlcnRpb24gc2hvdWxkIGJlIGEgZGVidWdnZXIgIgorICAg
ICJicmVhay1wb2ludC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGNhdGNoX2V4Y2Vw
dGlvbnMsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImNhdGNoX2V4Y2VwdGlvbnMi
LCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgc2hvdWxkIGNhdGNo
IGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVzdCBmYWlsdXJlcy4iKTsKK0dURVNUX0RF
RklORV9ib29sXyhjYXRjaF9leGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgIGludGVybmFs
OjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNlcHRpb25zIiwgdHJ1ZSksCisgICAgICAgICAg
ICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAgICAg
ICAgICAgICIgc2hvdWxkIGNhdGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVzdCBm
YWlsdXJlcy4iKTsKIAogR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgY29sb3IsCkBAIC0yODQs
MTYgKzI4MSwxNiBAQCBHVEVTVF9ERUZJTkVfc3RyaW5nXygKICAgICAiZGlnaXRzLiIpOwogCiBH
VEVTVF9ERUZJTkVfYm9vbF8oCi0gICAgcHJpbnRfdGltZSwKLSAgICBpbnRlcm5hbDo6Qm9vbEZy
b21HVGVzdEVudigicHJpbnRfdGltZSIsIHRydWUpLAotICAgICJUcnVlIGlmZiAiIEdURVNUX05B
TUVfCi0gICAgIiBzaG91bGQgZGlzcGxheSBlbGFwc2VkIHRpbWUgaW4gdGV4dCBvdXRwdXQuIik7
CisgICAgYnJpZWYsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJicmllZiIsIGZhbHNlKSwK
KyAgICAiVHJ1ZSBpZiBvbmx5IHRlc3QgZmFpbHVyZXMgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0
ZXh0IG91dHB1dC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHByaW50X3V0ZjgsCi0g
ICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0ZjgiLCB0cnVlKSwKLSAgICAi
VHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgcHJpbnRzIFVURjggY2hhcmFjdGVycyBhcyB0
ZXh0LiIpOworR1RFU1RfREVGSU5FX2Jvb2xfKHByaW50X3RpbWUsIGludGVybmFsOjpCb29sRnJv
bUdUZXN0RW52KCJwcmludF90aW1lIiwgdHJ1ZSksCisgICAgICAgICAgICAgICAgICAgIlRydWUg
aWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAgICAgICAgICAgICIgc2hvdWxk
IGRpc3BsYXkgZWxhcHNlZCB0aW1lIGluIHRleHQgb3V0cHV0LiIpOworCitHVEVTVF9ERUZJTkVf
Ym9vbF8ocHJpbnRfdXRmOCwgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0Zjgi
LCB0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdURVNU
X05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBwcmludHMgVVRGOCBjaGFyYWN0ZXJzIGFzIHRl
eHQuIik7CiAKIEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgcmFuZG9tX3NlZWQsCkBAIC0zMDcs
MTYgKzMwNCwxNCBAQCBHVEVTVF9ERUZJTkVfaW50MzJfKAogICAgICJIb3cgbWFueSB0aW1lcyB0
byByZXBlYXQgZWFjaCB0ZXN0LiAgU3BlY2lmeSBhIG5lZ2F0aXZlIG51bWJlciAiCiAgICAgImZv
ciByZXBlYXRpbmcgZm9yZXZlci4gIFVzZWZ1bCBmb3Igc2hha2luZyBvdXQgZmxha3kgdGVzdHMu
Iik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAgICBzaG93X2ludGVybmFsX3N0YWNrX2ZyYW1l
cywgZmFsc2UsCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8gIiBzaG91bGQgaW5jbHVkZSBp
bnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCi0gICAgInByaW50aW5nIHRlc3QgZmFpbHVyZSBz
dGFjayB0cmFjZXMuIik7CitHVEVTVF9ERUZJTkVfYm9vbF8oc2hvd19pbnRlcm5hbF9zdGFja19m
cmFtZXMsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICJUcnVlIGlmIGFuZCBvbmx5IGlmICIg
R1RFU1RfTkFNRV8KKyAgICAgICAgICAgICAgICAgICAiIHNob3VsZCBpbmNsdWRlIGludGVybmFs
IHN0YWNrIGZyYW1lcyB3aGVuICIKKyAgICAgICAgICAgICAgICAgICAicHJpbnRpbmcgdGVzdCBm
YWlsdXJlIHN0YWNrIHRyYWNlcy4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHNodWZm
bGUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInNodWZmbGUiLCBmYWxzZSksCi0g
ICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHNob3VsZCByYW5kb21pemUgdGVzdHMn
IG9yZGVyIG9uIGV2ZXJ5IHJ1bi4iKTsKK0dURVNUX0RFRklORV9ib29sXyhzaHVmZmxlLCBpbnRl
cm5hbDo6Qm9vbEZyb21HVGVzdEVudigic2h1ZmZsZSIsIGZhbHNlKSwKKyAgICAgICAgICAgICAg
ICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdURVNUX05BTUVfCisgICAgICAgICAgICAgICAg
ICAgIiBzaG91bGQgcmFuZG9taXplIHRlc3RzJyBvcmRlciBvbiBldmVyeSBydW4uIik7CiAKIEdU
RVNUX0RFRklORV9pbnQzMl8oCiAgICAgc3RhY2tfdHJhY2VfZGVwdGgsCkBAIC0zNTAsMTAgKzM0
NSwxMCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJl
ciBmcm9tIFswLCByYW5nZSksIHVzaW5nIGEgTGluZWFyCiAvLyBDb25ncnVlbnRpYWwgR2VuZXJh
dG9yIChMQ0cpLiAgQ3Jhc2hlcyBpZiAncmFuZ2UnIGlzIDAgb3IgZ3JlYXRlcgogLy8gdGhhbiBr
TWF4UmFuZ2UuCi1VSW50MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKK3VpbnQz
Ml90IFJhbmRvbTo6R2VuZXJhdGUodWludDMyX3QgcmFuZ2UpIHsKICAgLy8gVGhlc2UgY29uc3Rh
bnRzIGFyZSB0aGUgc2FtZSBhcyBhcmUgdXNlZCBpbiBnbGliYydzIHJhbmQoMykuCiAgIC8vIFVz
ZSB3aWRlciB0eXBlcyB0aGFuIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHVuc2lnbmVkIG92ZXJmbG93
IGRpYWdub3N0aWNzLgotICBzdGF0ZV8gPSBzdGF0aWNfY2FzdDxVSW50MzI+KDExMDM1MTUyNDVV
TEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsKKyAgc3RhdGVfID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KDExMDM1MTUyNDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsKIAog
ICBHVEVTVF9DSEVDS18ocmFuZ2UgPiAwKQogICAgICAgPDwgIkNhbm5vdCBnZW5lcmF0ZSBhIG51
bWJlciBpbiB0aGUgcmFuZ2UgWzAsIDApLiI7CkBAIC0zNjcsMTYgKzM2MiwxNiBAQCBVSW50MzIg
UmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKICAgcmV0dXJuIHN0YXRlXyAlIHJhbmdl
OwogfQogCi0vLyBHVGVzdElzSW5pdGlhbGl6ZWQoKSByZXR1cm5zIHRydWUgaWZmIHRoZSB1c2Vy
IGhhcyBpbml0aWFsaXplZAorLy8gR1Rlc3RJc0luaXRpYWxpemVkKCkgcmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSB1c2VyIGhhcyBpbml0aWFsaXplZAogLy8gR29vZ2xlIFRlc3QuICBV
c2VmdWwgZm9yIGNhdGNoaW5nIHRoZSB1c2VyIG1pc3Rha2Ugb2Ygbm90IGluaXRpYWxpemluZwog
Ly8gR29vZ2xlIFRlc3QgYmVmb3JlIGNhbGxpbmcgUlVOX0FMTF9URVNUUygpLgogc3RhdGljIGJv
b2wgR1Rlc3RJc0luaXRpYWxpemVkKCkgeyByZXR1cm4gR2V0QXJndnMoKS5zaXplKCkgPiAwOyB9
CiAKLS8vIEl0ZXJhdGVzIG92ZXIgYSB2ZWN0b3Igb2YgVGVzdENhc2VzLCBrZWVwaW5nIGEgcnVu
bmluZyBzdW0gb2YgdGhlCisvLyBJdGVyYXRlcyBvdmVyIGEgdmVjdG9yIG9mIFRlc3RTdWl0ZXMs
IGtlZXBpbmcgYSBydW5uaW5nIHN1bSBvZiB0aGUKIC8vIHJlc3VsdHMgb2YgY2FsbGluZyBhIGdp
dmVuIGludC1yZXR1cm5pbmcgbWV0aG9kIG9uIGVhY2guCiAvLyBSZXR1cm5zIHRoZSBzdW0uCi1z
dGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2Uq
PiYgY2FzZV9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoVGVzdENh
c2U6OiptZXRob2QpKCkgY29uc3QpIHsKK3N0YXRpYyBpbnQgU3VtT3ZlclRlc3RTdWl0ZUxpc3Qo
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIGNhc2VfbGlzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IChUZXN0U3VpdGU6OiptZXRob2QpKCkgY29uc3QpIHsKICAg
aW50IHN1bSA9IDA7CiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FzZV9saXN0LnNpemUoKTsg
aSsrKSB7CiAgICAgc3VtICs9IChjYXNlX2xpc3RbaV0tPiptZXRob2QpKCk7CkBAIC0zODQsMjAg
KzM3OSwyMCBAQCBzdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2ZWN0
b3I8VGVzdENhc2UqPiYgY2FzZV9saXN0LAogICByZXR1cm4gc3VtOwogfQogCi0vLyBSZXR1cm5z
IHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgcGFzc2VkLgotc3RhdGljIGJvb2wgVGVzdENhc2VQYXNz
ZWQoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICByZXR1cm4gdGVzdF9jYXNlLT5zaG91
bGRfcnVuKCkgJiYgdGVzdF9jYXNlLT5QYXNzZWQoKTsKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCitzdGF0aWMgYm9vbCBUZXN0U3VpdGVQYXNz
ZWQoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7CisgIHJldHVybiB0ZXN0X3N1aXRlLT5z
aG91bGRfcnVuKCkgJiYgdGVzdF9zdWl0ZS0+UGFzc2VkKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIHRlc3QgY2FzZSBmYWlsZWQuCi1zdGF0aWMgYm9vbCBUZXN0Q2FzZUZhaWxlZChj
b25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gIHJldHVybiB0ZXN0X2Nhc2UtPnNob3VsZF9y
dW4oKSAmJiB0ZXN0X2Nhc2UtPkZhaWxlZCgpOworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IHN1aXRlIGZhaWxlZC4KK3N0YXRpYyBib29sIFRlc3RTdWl0ZUZhaWxlZChj
b25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNob3Vs
ZF9ydW4oKSAmJiB0ZXN0X3N1aXRlLT5GYWlsZWQoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlm
ZiB0ZXN0X2Nhc2UgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhhdCBzaG91bGQKLS8vIHJ1
bi4KLXN0YXRpYyBib29sIFNob3VsZFJ1blRlc3RDYXNlKGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nh
c2UpIHsKLSAgcmV0dXJuIHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpOworLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRlc3Rfc3VpdGUgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhh
dAorLy8gc2hvdWxkIHJ1bi4KK3N0YXRpYyBib29sIFNob3VsZFJ1blRlc3RTdWl0ZShjb25zdCBU
ZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4o
KTsKIH0KIAogLy8gQXNzZXJ0SGVscGVyIGNvbnN0cnVjdG9yLgpAQCAtNDIzLDggKzQxOCwxNjEg
QEAgdm9pZCBBc3NlcnRIZWxwZXI6Om9wZXJhdG9yPShjb25zdCBNZXNzYWdlJiBtZXNzYWdlKSBj
b25zdCB7CiAgICAgICAgICAgICAgICAgICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBNdXRl
eCBmb3IgbGlua2VkIHBvaW50ZXJzLgotR1RFU1RfQVBJXyBHVEVTVF9ERUZJTkVfU1RBVElDX01V
VEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOworbmFtZXNwYWNlIHsKKworLy8gV2hlbiBURVNUX1Ag
aXMgZm91bmQgd2l0aG91dCBhIG1hdGNoaW5nIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAorLy8g
dG8gY3JlYXRlcyB0ZXN0IGNhc2VzIGZvciBpdCwgYSBzeW50ZXRpYyB0ZXN0IGNhc2UgaXMKKy8v
IGluc2VydGVkIHRvIHJlcG9ydCBldGhlciBhbiBlcnJvciBvciBhIGxvZyBtZXNzYWdlLgorLy8K
Ky8vIFRoaXMgY29uZmlndXJhdGlvbiBiaXQgd2lsbCBsaWtlbHkgYmUgcmVtb3ZlZCBhdCBzb21l
IHBvaW50LgorY29uc3RleHByIGJvb2wga0Vycm9yT25Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6
ZWRUZXN0ID0gdHJ1ZTsKK2NvbnN0ZXhwciBib29sIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRUeXBl
UGFyYW1ldGVyaXplZFRlc3QgPSB0cnVlOworCisvLyBBIHRlc3QgdGhhdCBmYWlscyBhdCBhIGdp
dmVuIGZpbGUvbGluZSBsb2NhdGlvbiB3aXRoIGEgZ2l2ZW4gbWVzc2FnZS4KK2NsYXNzIEZhaWx1
cmVUZXN0IDogcHVibGljIFRlc3QgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgRmFpbHVyZVRlc3Qo
Y29uc3QgQ29kZUxvY2F0aW9uJiBsb2MsIHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UsCisgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgYXNfZXJyb3IpCisgICAgICA6IGxvY18obG9jKSwKKyAg
ICAgICAgZXJyb3JfbWVzc2FnZV8oc3RkOjptb3ZlKGVycm9yX21lc3NhZ2UpKSwKKyAgICAgICAg
YXNfZXJyb3JfKGFzX2Vycm9yKSB7fQorCisgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7Cisg
ICAgaWYgKGFzX2Vycm9yXykgeworICAgICAgQXNzZXJ0SGVscGVyKFRlc3RQYXJ0UmVzdWx0Ojpr
Tm9uRmF0YWxGYWlsdXJlLCBsb2NfLmZpbGUuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICBs
b2NfLmxpbmUsICIiKSA9IE1lc3NhZ2UoKSA8PCBlcnJvcl9tZXNzYWdlXzsKKyAgICB9IGVsc2Ug
eworICAgICAgc3RkOjpjb3V0IDw8IGVycm9yX21lc3NhZ2VfIDw8IHN0ZDo6ZW5kbDsKKyAgICB9
CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IENvZGVMb2NhdGlvbiBsb2NfOworICBjb25zdCBz
dGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlXzsKKyAgY29uc3QgYm9vbCBhc19lcnJvcl87Cit9Owor
CisKK30gIC8vIG5hbWVzcGFjZQorCitzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIEdldElnbm9yZWRQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpIHsKKyAgcmV0dXJuIFVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5pbXBsKCktPmlnbm9yZWRfcGFyYW1ldGVyaXplZF90ZXN0X3N1aXRlcygpOworfQorCisv
LyBBZGQgYSBnaXZlbiB0ZXN0X3N1aXQgdG8gdGhlIGxpc3Qgb2YgdGhlbSBhbGxvdyB0byBnbyB1
bi1pbnN0YW50aWF0ZWQuCitNYXJrQXNJZ25vcmVkOjpNYXJrQXNJZ25vcmVkKGNvbnN0IGNoYXIq
IHRlc3Rfc3VpdGUpIHsKKyAgR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCktPmlu
c2VydCh0ZXN0X3N1aXRlKTsKK30KKworLy8gSWYgdGhpcyBwYXJhbWV0ZXJpemVkIHRlc3Qgc3Vp
dGUgaGFzIG5vIGluc3RhbnRpYXRpb25zIChhbmQgdGhhdAorLy8gaGFzIG5vdCBiZWVuIG1hcmtl
ZCBhcyBva2F5KSwgZW1pdCBhIHRlc3QgY2FzZSByZXBvcnRpbmcgdGhhdC4KK3ZvaWQgSW5zZXJ0
U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsIENvZGVMb2NhdGlvbiBs
b2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXNfdGVzdF9wKSB7
CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVzKCk7CisgIGlmIChpZ25vcmVkLmZpbmQobmFtZSkgIT0gaWdub3JlZC5lbmQoKSkgcmV0dXJu
OworCisgIGNvbnN0IGNoYXIga01pc3NpbmdJbnN0YW50aWF0aW9uW10gPSAgLy8KKyAgICAgICIg
aXMgZGVmaW5lZCB2aWEgVEVTVF9QLCBidXQgbmV2ZXIgaW5zdGFudGlhdGVkLiBOb25lIG9mIHRo
ZSB0ZXN0IGNhc2VzICIKKyAgICAgICJ3aWxsIHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRFX1RF
U1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0aGUgb25seSAiCisgICAgICAib25lcyBwcm92aWRl
ZCBleHBhbmQgdG8gbm90aGluZy4iCisgICAgICAiXG5cbiIKKyAgICAgICJJZGVhbGx5LCBURVNU
X1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9mICIK
KyAgICAgICJiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8s
IGZvciBleGFtcGxlLCBiZWluZyAiCisgICAgICAicGxhY2VkIGluIGEgbGlicmFyeSB0aGF0IG1h
eSBiZSBsaW5rZWQgaW4gdG8gZ2V0IG90aGVyIHV0aWxpdGllcy4pIjsKKworICBjb25zdCBjaGFy
IGtNaXNzaW5nVGVzdENhc2VbXSA9ICAvLworICAgICAgIiBpcyBpbnN0YW50aWF0ZWQgdmlhIElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5vIHRlc3RzIGFyZSAiCisgICAgICAiZGVmaW5l
ZCB2aWEgVEVTVF9QIC4gTm8gdGVzdCBjYXNlcyB3aWxsIHJ1bi4iCisgICAgICAiXG5cbiIKKyAg
ICAgICJJZGVhbGx5LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZlciBi
ZSBpbnZva2VkIGZyb20gIgorICAgICAgImNvZGUgdGhhdCBhbHdheXMgZGVwZW5kIG9uIGNvZGUg
dGhhdCBwcm92aWRlcyBURVNUX1AuIEZhaWxpbmcgdG8gZG8gIgorICAgICAgInNvIGlzIG9mdGVu
IGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRFU1RfUCB3YXMgIgor
ICAgICAgInJlbW92ZWQgYnV0IHRoZSByZXN0IGdvdCBsZWZ0IGJlaGluZC4iOworCisgIHN0ZDo6
c3RyaW5nIG1lc3NhZ2UgPQorICAgICAgIlBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSAiICsgbmFt
ZSArCisgICAgICAoaGFzX3Rlc3RfcCA/IGtNaXNzaW5nSW5zdGFudGlhdGlvbiA6IGtNaXNzaW5n
VGVzdENhc2UpICsKKyAgICAgICJcblxuIgorICAgICAgIlRvIHN1cHByZXNzIHRoaXMgZXJyb3Ig
Zm9yIHRoaXMgdGVzdCBzdWl0ZSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgbGluZSAiCisgICAgICAi
KGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOiIKKyAg
ICAgICJcblxuIgorICAgICAgIkdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUkla
RURfVEVTVCgiICsgbmFtZSArICIpOyI7CisKKyAgc3RkOjpzdHJpbmcgZnVsbF9uYW1lID0gIlVu
aW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTwiICsgbmFtZSArICI+IjsKKyAgUmVn
aXN0ZXJUZXN0KCAgLy8KKyAgICAgICJHb29nbGVUZXN0VmVyaWZpY2F0aW9uIiwgZnVsbF9uYW1l
LmNfc3RyKCksCisgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICBu
dWxscHRyLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgorICAgICAgbG9jYXRpb24uZmlsZS5jX3N0
cigpLCBsb2NhdGlvbi5saW5lLCBbbWVzc2FnZSwgbG9jYXRpb25dIHsKKyAgICAgICAgcmV0dXJu
IG5ldyBGYWlsdXJlVGVzdChsb2NhdGlvbiwgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrRXJyb3JPblVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3QpOworICAg
ICAgfSk7Cit9CisKK3ZvaWQgUmVnaXN0ZXJUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZShjb25z
dCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKKyAgR2V0VW5pdFRlc3RJbXBs
KCktPnR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkuUmVnaXN0ZXJUZXN0U3VpdGUo
CisgICAgICB0ZXN0X3N1aXRlX25hbWUsIGNvZGVfbG9jYXRpb24pOworfQorCit2b2lkIFJlZ2lz
dGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKGNvbnN0IGNoYXIqIGNh
c2VfbmFtZSkgeworICBHZXRVbml0VGVzdEltcGwoKQorICAgICAgLT50eXBlX3BhcmFtZXRlcml6
ZWRfdGVzdF9yZWdpc3RyeSgpCisgICAgICAuUmVnaXN0ZXJJbnN0YW50aWF0aW9uKGNhc2VfbmFt
ZSk7Cit9CisKK3ZvaWQgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeTo6UmVnaXN0
ZXJUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9jYXRp
b24gY29kZV9sb2NhdGlvbikgeworICBzdWl0ZXNfLmVtcGxhY2Uoc3RkOjpzdHJpbmcodGVzdF9z
dWl0ZV9uYW1lKSwKKyAgICAgICAgICAgICAgICAgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJ
bmZvKGNvZGVfbG9jYXRpb24pKTsKK30KKwordm9pZCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZVJlZ2lzdHJ5OjpSZWdpc3Rlckluc3RhbnRpYXRpb24oCisgICAgICAgIGNvbnN0IGNoYXIqIHRl
c3Rfc3VpdGVfbmFtZSkgeworICBhdXRvIGl0ID0gc3VpdGVzXy5maW5kKHN0ZDo6c3RyaW5nKHRl
c3Rfc3VpdGVfbmFtZSkpOworICBpZiAoaXQgIT0gc3VpdGVzXy5lbmQoKSkgeworICAgIGl0LT5z
ZWNvbmQuaW5zdGFudGlhdGVkID0gdHJ1ZTsKKyAgfSBlbHNlIHsKKyAgICBHVEVTVF9MT0dfKEVS
Uk9SKSA8PCAiVW5rbm93biB0eXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ICciCisgICAgICAg
ICAgICAgICAgICAgICAgPDwgdGVzdF9zdWl0ZV9uYW1lIDw8ICInIjsKKyAgfQorfQorCit2b2lk
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnk6OkNoZWNrRm9ySW5zdGFudGlhdGlv
bnMoKSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGVzKCk7CisgIGZvciAoY29uc3QgYXV0byYgdGVzdGNhc2UgOiBzdWl0ZXNfKSB7Cisg
ICAgaWYgKHRlc3RjYXNlLnNlY29uZC5pbnN0YW50aWF0ZWQpIGNvbnRpbnVlOworICAgIGlmIChp
Z25vcmVkLmZpbmQodGVzdGNhc2UuZmlyc3QpICE9IGlnbm9yZWQuZW5kKCkpIGNvbnRpbnVlOwor
CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZSA9CisgICAgICAgICJUeXBlIHBhcmFtZXRlcml6ZWQg
dGVzdCBzdWl0ZSAiICsgdGVzdGNhc2UuZmlyc3QgKworICAgICAgICAiIGlzIGRlZmluZWQgdmlh
IFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZCAiCisg
ICAgICAgICJ2aWEgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QLiBOb25lIG9mIHRoZSB0
ZXN0IGNhc2VzIHdpbGwgcnVuLiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJJZGVhbGx5LCBU
WVBFRF9URVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyAi
CisgICAgICAgICJwYXJ0IG9mIGJpbmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAoQXMg
b3Bwb3NlZCB0bywgZm9yICIKKyAgICAgICAgImV4YW1wbGUsIGJlaW5nIHBsYWNlZCBpbiBhIGxp
YnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdldCBvdGhlciAiCisgICAgICAgICJ1dGls
aXRpZXMuKSIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJUbyBzdXBwcmVzcyB0aGlzIGVycm9y
IGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgIgorICAgICAg
ICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOiIK
KyAgICAgICAgIlxuXG4iCisgICAgICAgICJHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJB
TUVURVJJWkVEX1RFU1QoIiArCisgICAgICAgIHRlc3RjYXNlLmZpcnN0ICsgIik7IjsKKworICAg
IHN0ZDo6c3RyaW5nIGZ1bGxfbmFtZSA9CisgICAgICAgICJVbmluc3RhbnRpYXRlZFR5cGVQYXJh
bWV0ZXJpemVkVGVzdFN1aXRlPCIgKyB0ZXN0Y2FzZS5maXJzdCArICI+IjsKKyAgICBSZWdpc3Rl
clRlc3QoICAvLworICAgICAgICAiR29vZ2xlVGVzdFZlcmlmaWNhdGlvbiIsIGZ1bGxfbmFtZS5j
X3N0cigpLAorICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICAg
IG51bGxwdHIsICAvLyBObyB2YWx1ZSBwYXJhbWV0ZXIuCisgICAgICAgIHRlc3RjYXNlLnNlY29u
ZC5jb2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwKKyAgICAgICAgdGVzdGNhc2Uuc2Vjb25kLmNv
ZGVfbG9jYXRpb24ubGluZSwgW21lc3NhZ2UsIHRlc3RjYXNlXSB7CisgICAgICAgICAgcmV0dXJu
IG5ldyBGYWlsdXJlVGVzdCh0ZXN0Y2FzZS5zZWNvbmQuY29kZV9sb2NhdGlvbiwgbWVzc2FnZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRU
eXBlUGFyYW1ldGVyaXplZFRlc3QpOworICAgICAgICB9KTsKKyAgfQorfQogCiAvLyBBIGNvcHkg
b2YgYWxsIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuICBTZXQgYnkgSW5pdEdvb2dsZVRlc3QoKS4K
IHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwpAQCAtNDQ1LDcgKzU5
Myw3IEBAIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwogRmlsZVBh
dGggR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkgewogICBGaWxlUGF0aCByZXN1bHQ7CiAKLSNp
ZiBHVEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19PUzIK
ICAgcmVzdWx0LlNldChGaWxlUGF0aChHZXRBcmd2cygpWzBdKS5SZW1vdmVFeHRlbnNpb24oImV4
ZSIpKTsKICNlbHNlCiAgIHJlc3VsdC5TZXQoRmlsZVBhdGgoR2V0QXJndnMoKVswXSkpOwpAQCAt
NDYwLDkgKzYwOCwxMCBAQCBGaWxlUGF0aCBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKSB7CiBz
dGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldE91dHB1dEZvcm1hdCgpIHsKICAgY29uc3Qg
Y2hhciogY29uc3QgZ3Rlc3Rfb3V0cHV0X2ZsYWcgPSBHVEVTVF9GTEFHKG91dHB1dCkuY19zdHIo
KTsKICAgY29uc3QgY2hhciogY29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcs
ICc6Jyk7Ci0gIHJldHVybiAoY29sb24gPT0gTlVMTCkgPwotICAgICAgc3RkOjpzdHJpbmcoZ3Rl
c3Rfb3V0cHV0X2ZsYWcpIDoKLSAgICAgIHN0ZDo6c3RyaW5nKGd0ZXN0X291dHB1dF9mbGFnLCBj
b2xvbiAtIGd0ZXN0X291dHB1dF9mbGFnKTsKKyAgcmV0dXJuIChjb2xvbiA9PSBudWxscHRyKQor
ICAgICAgICAgICAgID8gc3RkOjpzdHJpbmcoZ3Rlc3Rfb3V0cHV0X2ZsYWcpCisgICAgICAgICAg
ICAgOiBzdGQ6OnN0cmluZyhndGVzdF9vdXRwdXRfZmxhZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oY29sb24gLSBndGVzdF9vdXRwdXRfZmxhZykpOwog
fQogCiAvLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgb3V0cHV0IGZpbGUsIG9y
IHRoZSBkZWZhdWx0IGlmIG5vbmUKQEAgLTQ3NSw3ICs2MjQsNyBAQCBzdGQ6OnN0cmluZyBVbml0
VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpIHsKICAgICBmb3JtYXQg
PSBzdGQ6OnN0cmluZyhrRGVmYXVsdE91dHB1dEZvcm1hdCk7CiAKICAgY29uc3QgY2hhciogY29u
c3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcsICc6Jyk7Ci0gIGlmIChjb2xvbiA9
PSBOVUxMKQorICBpZiAoY29sb24gPT0gbnVsbHB0cikKICAgICByZXR1cm4gaW50ZXJuYWw6OkZp
bGVQYXRoOjpNYWtlRmlsZU5hbWUoCiAgICAgICAgIGludGVybmFsOjpGaWxlUGF0aCgKICAgICAg
ICAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2RpcigpKSwK
QEAgLTQ4NCwxMCArNjMzLDYgQEAgc3RkOjpzdHJpbmcgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNv
bHV0ZVBhdGhUb091dHB1dEZpbGUoKSB7CiAKICAgaW50ZXJuYWw6OkZpbGVQYXRoIG91dHB1dF9u
YW1lKGNvbG9uICsgMSk7CiAgIGlmICghb3V0cHV0X25hbWUuSXNBYnNvbHV0ZVBhdGgoKSkKLSAg
ICAvLyBGSVhNRTogb24gV2luZG93cyBcc29tZVxwYXRoIGlzIG5vdCBhbiBhYnNvbHV0ZQotICAg
IC8vIHBhdGggKGFzIGl0cyBtZWFuaW5nIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgZHJpdmUpLCB5
ZXQgdGhlCi0gICAgLy8gZm9sbG93aW5nIGxvZ2ljIGZvciB0dXJuaW5nIGl0IGludG8gYW4gYWJz
b2x1dGUgcGF0aCBpcyB3cm9uZy4KLSAgICAvLyBGaXggaXQuCiAgICAgb3V0cHV0X25hbWUgPSBp
bnRlcm5hbDo6RmlsZVBhdGg6OkNvbmNhdFBhdGhzKAogICAgICAgICBpbnRlcm5hbDo6RmlsZVBh
dGgoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCkpLAogICAg
ICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoY29sb24gKyAxKSk7CkBAIC01MDEsNTQgKzY0Niw4OSBA
QCBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0Rmls
ZSgpIHsKICAgcmV0dXJuIHJlc3VsdC5zdHJpbmcoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlm
ZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVzIHRoZSBzdHJpbmcuICBUaGUKLS8vIGZpcnN0
ICc6JyBvciAnXDAnIGNoYXJhY3RlciBpbiBwYXR0ZXJuIG1hcmtzIHRoZSBlbmQgb2YgaXQuCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHdpbGRjYXJkIHBhdHRlcm4gbWF0Y2hl
cyB0aGUgc3RyaW5nLiBFYWNoCisvLyBwYXR0ZXJuIGNvbnNpc3RzIG9mIHJlZ3VsYXIgY2hhcmFj
dGVycywgc2luZ2xlLWNoYXJhY3RlciB3aWxkY2FyZHMgKD8pLCBhbmQKKy8vIG11bHRpLWNoYXJh
Y3RlciB3aWxkY2FyZHMgKCopLgogLy8KLS8vIFRoaXMgcmVjdXJzaXZlIGFsZ29yaXRobSBpc24n
dCB2ZXJ5IGVmZmljaWVudCwgYnV0IGlzIGNsZWFyIGFuZAotLy8gd29ya3Mgd2VsbCBlbm91Z2gg
Zm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLWJvb2wgVW5pdFRlc3RP
cHRpb25zOjpQYXR0ZXJuTWF0Y2hlc1N0cmluZyhjb25zdCBjaGFyICpwYXR0ZXJuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0cikgewot
ICBzd2l0Y2ggKCpwYXR0ZXJuKSB7Ci0gICAgY2FzZSAnXDAnOgotICAgIGNhc2UgJzonOiAgLy8g
RWl0aGVyICc6JyBvciAnXDAnIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4uCi0gICAgICBy
ZXR1cm4gKnN0ciA9PSAnXDAnOwotICAgIGNhc2UgJz8nOiAgLy8gTWF0Y2hlcyBhbnkgc2luZ2xl
IGNoYXJhY3Rlci4KLSAgICAgIHJldHVybiAqc3RyICE9ICdcMCcgJiYgUGF0dGVybk1hdGNoZXNT
dHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICAgIGNhc2UgJyonOiAgLy8gTWF0Y2hlcyBh
bnkgc3RyaW5nIChwb3NzaWJseSBlbXB0eSkgb2YgY2hhcmFjdGVycy4KLSAgICAgIHJldHVybiAo
KnN0ciAhPSAnXDAnICYmIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4sIHN0ciArIDEpKSB8
fAotICAgICAgICAgIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4gKyAxLCBzdHIpOwotICAg
IGRlZmF1bHQ6ICAvLyBOb24tc3BlY2lhbCBjaGFyYWN0ZXIuICBNYXRjaGVzIGl0c2VsZi4KLSAg
ICAgIHJldHVybiAqcGF0dGVybiA9PSAqc3RyICYmCi0gICAgICAgICAgUGF0dGVybk1hdGNoZXNT
dHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICB9Ci19Ci0KLWJvb2wgVW5pdFRlc3RPcHRp
b25zOjpNYXRjaGVzRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBj
aGFyKiBmaWx0ZXIpIHsKLSAgY29uc3QgY2hhciAqY3VyX3BhdHRlcm4gPSBmaWx0ZXI7Ci0gIGZv
ciAoOzspIHsKLSAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJpbmcoY3VyX3BhdHRlcm4sIG5hbWUu
Y19zdHIoKSkpIHsKLSAgICAgIHJldHVybiB0cnVlOworLy8gVGhpcyBmdW5jdGlvbiBpbXBsZW1l
bnRzIGEgbGluZWFyLXRpbWUgc3RyaW5nIGdsb2JiaW5nIGFsZ29yaXRobSBiYXNlZCBvbgorLy8g
aHR0cHM6Ly9yZXNlYXJjaC5zd3RjaC5jb20vZ2xvYi4KK3N0YXRpYyBib29sIFBhdHRlcm5NYXRj
aGVzU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lX3N0ciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBhdHRlcm4sIGNvbnN0IGNoYXIqIHBhdHRlcm5f
ZW5kKSB7CisgIGNvbnN0IGNoYXIqIG5hbWUgPSBuYW1lX3N0ci5jX3N0cigpOworICBjb25zdCBj
aGFyKiBjb25zdCBuYW1lX2JlZ2luID0gbmFtZTsKKyAgY29uc3QgY2hhciogY29uc3QgbmFtZV9l
bmQgPSBuYW1lICsgbmFtZV9zdHIuc2l6ZSgpOworCisgIGNvbnN0IGNoYXIqIHBhdHRlcm5fbmV4
dCA9IHBhdHRlcm47CisgIGNvbnN0IGNoYXIqIG5hbWVfbmV4dCA9IG5hbWU7CisKKyAgd2hpbGUg
KHBhdHRlcm4gPCBwYXR0ZXJuX2VuZCB8fCBuYW1lIDwgbmFtZV9lbmQpIHsKKyAgICBpZiAocGF0
dGVybiA8IHBhdHRlcm5fZW5kKSB7CisgICAgICBzd2l0Y2ggKCpwYXR0ZXJuKSB7CisgICAgICAg
IGRlZmF1bHQ6ICAvLyBNYXRjaCBhbiBvcmRpbmFyeSBjaGFyYWN0ZXIuCisgICAgICAgICAgaWYg
KG5hbWUgPCBuYW1lX2VuZCAmJiAqbmFtZSA9PSAqcGF0dGVybikgeworICAgICAgICAgICAgKytw
YXR0ZXJuOworICAgICAgICAgICAgKytuYW1lOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICc/JzogIC8vIE1hdGNoIGFu
eSBzaW5nbGUgY2hhcmFjdGVyLgorICAgICAgICAgIGlmIChuYW1lIDwgbmFtZV9lbmQpIHsKKyAg
ICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICAgICsrbmFtZTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnKic6
CisgICAgICAgICAgLy8gTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMuIFN0YXJ0IGJ5IHNr
aXBwaW5nIG92ZXIgdGhlIHdpbGRjYXJkCisgICAgICAgICAgLy8gYW5kIG1hdGNoaW5nIHplcm8g
Y2hhcmFjdGVycyBmcm9tIG5hbWUuIElmIHRoYXQgZmFpbHMsIHJlc3RhcnQgYW5kCisgICAgICAg
ICAgLy8gbWF0Y2ggb25lIG1vcmUgY2hhcmFjdGVyIHRoYW4gdGhlIGxhc3QgYXR0ZW1wdC4KKyAg
ICAgICAgICBwYXR0ZXJuX25leHQgPSBwYXR0ZXJuOworICAgICAgICAgIG5hbWVfbmV4dCA9IG5h
bWUgKyAxOworICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAg
IH0KKyAgICB9CisgICAgLy8gRmFpbGVkIHRvIG1hdGNoIGEgY2hhcmFjdGVyLiBSZXN0YXJ0IGlm
IHBvc3NpYmxlLgorICAgIGlmIChuYW1lX2JlZ2luIDwgbmFtZV9uZXh0ICYmIG5hbWVfbmV4dCA8
PSBuYW1lX2VuZCkgeworICAgICAgcGF0dGVybiA9IHBhdHRlcm5fbmV4dDsKKyAgICAgIG5hbWUg
PSBuYW1lX25leHQ7CisgICAgICBjb250aW51ZTsKICAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisgIHJldHVybiB0cnVlOworfQogCi0gICAgLy8gRmluZHMgdGhlIG5leHQgcGF0dGVybiBp
biB0aGUgZmlsdGVyLgotICAgIGN1cl9wYXR0ZXJuID0gc3RyY2hyKGN1cl9wYXR0ZXJuLCAnOicp
OworYm9vbCBVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIoY29uc3Qgc3RkOjpzdHJpbmcm
IG5hbWVfc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogZmlsdGVyKSB7CisgIC8vIFRoZSBmaWx0ZXIgaXMgYSBsaXN0IG9mIHBhdHRlcm5zIHNlcGFy
YXRlZCBieSBjb2xvbnMgKDopLgorICBjb25zdCBjaGFyKiBwYXR0ZXJuID0gZmlsdGVyOworICB3
aGlsZSAodHJ1ZSkgeworICAgIC8vIEZpbmQgdGhlIGJvdW5kcyBvZiB0aGlzIHBhdHRlcm4uCisg
ICAgY29uc3QgY2hhciogY29uc3QgbmV4dF9zZXAgPSBzdHJjaHIocGF0dGVybiwgJzonKTsKKyAg
ICBjb25zdCBjaGFyKiBjb25zdCBwYXR0ZXJuX2VuZCA9CisgICAgICAgIG5leHRfc2VwICE9IG51
bGxwdHIgPyBuZXh0X3NlcCA6IHBhdHRlcm4gKyBzdHJsZW4ocGF0dGVybik7CiAKLSAgICAvLyBS
ZXR1cm5zIGlmIG5vIG1vcmUgcGF0dGVybiBjYW4gYmUgZm91bmQuCi0gICAgaWYgKGN1cl9wYXR0
ZXJuID09IE5VTEwpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBDaGVjayBpZiB0aGlz
IHBhdHRlcm4gbWF0Y2hlcyBuYW1lX3N0ci4KKyAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJpbmco
bmFtZV9zdHIsIHBhdHRlcm4sIHBhdHRlcm5fZW5kKSkgeworICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgLy8gU2tpcHMgdGhlIHBhdHRlcm4gc2VwYXJhdGVyICh0aGUgJzonIGNoYXJh
Y3RlcikuCi0gICAgY3VyX3BhdHRlcm4rKzsKKyAgICAvLyBHaXZlIHVwIG9uIHRoaXMgcGF0dGVy
bi4gSG93ZXZlciwgaWYgd2UgZm91bmQgYSBwYXR0ZXJuIHNlcGFyYXRvciAoOiksCisgICAgLy8g
YWR2YW5jZSB0byB0aGUgbmV4dCBwYXR0ZXJuIChza2lwcGluZyBvdmVyIHRoZSBzZXBhcmF0b3Ip
IGFuZCByZXN0YXJ0LgorICAgIGlmIChuZXh0X3NlcCA9PSBudWxscHRyKSB7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHBhdHRlcm4gPSBuZXh0X3NlcCArIDE7CiAgIH0KKyAgcmV0
dXJuIHRydWU7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVzZXItc3BlY2lmaWVkIGZp
bHRlciBtYXRjaGVzIHRoZSB0ZXN0IGNhc2UKLS8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUuCi1i
b29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJpbmcg
JnRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X25hbWUpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcmIGZ1
bGxfbmFtZSA9IHRlc3RfY2FzZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7CisvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVzZXItc3BlY2lmaWVkIGZpbHRlciBtYXRj
aGVzIHRoZSB0ZXN0CisvLyBzdWl0ZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLgorYm9vbCBVbml0
VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X3N1
aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcmIHRlc3RfbmFtZSkgeworICBjb25zdCBzdGQ6OnN0cmluZyYgZnVsbF9uYW1l
ID0gdGVzdF9zdWl0ZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7CiAKICAgLy8gU3Bs
aXQgLS1ndGVzdF9maWx0ZXIgYXQgJy0nLCBpZiB0aGVyZSBpcyBvbmUsIHRvIHNlcGFyYXRlIGlu
dG8KICAgLy8gcG9zaXRpdmUgZmlsdGVyIGFuZCBuZWdhdGl2ZSBmaWx0ZXIgcG9ydGlvbnMKQEAg
LTU1Niw3ICs3MzYsNyBAQCBib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfY2FzZV9uYW1lLAogICBjb25zdCBjaGFyKiBjb25zdCBk
YXNoID0gc3RyY2hyKHAsICctJyk7CiAgIHN0ZDo6c3RyaW5nIHBvc2l0aXZlOwogICBzdGQ6OnN0
cmluZyBuZWdhdGl2ZTsKLSAgaWYgKGRhc2ggPT0gTlVMTCkgeworICBpZiAoZGFzaCA9PSBudWxs
cHRyKSB7CiAgICAgcG9zaXRpdmUgPSBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKTsgIC8vIFdo
b2xlIHN0cmluZyBpcyBhIHBvc2l0aXZlIGZpbHRlcgogICAgIG5lZ2F0aXZlID0gIiI7CiAgIH0g
ZWxzZSB7CkBAIC03MDEsNyArODgxLDcgQEAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBIYXNPbmVG
YWlsdXJlKGNvbnN0IGNoYXIqIC8qIHJlc3VsdHNfZXhwciAqLywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IHI7CiAgIH0KIAotICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJz
dHIuY19zdHIoKSkgPT0gTlVMTCkgeworICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJzdHIu
Y19zdHIoKSkgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwg
IkV4cGVjdGVkOiAiIDw8IGV4cGVjdGVkIDw8ICIgY29udGFpbmluZyBcIiIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IHN1YnN0ciA8PCAiXCJcbiIKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8ICIgIEFjdHVhbDpcbiIKQEAgLTc3MCw2MSArOTUwLDY2IEBAIHZvaWQg
VW5pdFRlc3RJbXBsOjpTZXRUZXN0UGFydFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCgK
ICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXy5zZXQocmVwb3J0ZXIpOwog
fQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IGNhc2VzLgotaW50IFVu
aXRUZXN0SW1wbDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVy
biBDb3VudElmKHRlc3RfY2FzZXNfLCBUZXN0Q2FzZVBhc3NlZCk7CisvLyBHZXRzIHRoZSBudW1i
ZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdEltcGw6OnN1Y2Nlc3Nm
dWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9zdWl0
ZXNfLCBUZXN0U3VpdGVQYXNzZWQpOwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVk
IHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkg
Y29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywgVGVzdENhc2VGYWlsZWQpOwor
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdElt
cGw6OmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gQ291bnRJZih0
ZXN0X3N1aXRlc18sIFRlc3RTdWl0ZUZhaWxlZCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBv
ZiBhbGwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVzdEltcGw6OnRvdGFsX3Rlc3RfY2FzZV9jb3Vu
dCgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9jYXNlc18uc2l6ZSgp
KTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRlc3RJ
bXBsOjp0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50Pih0ZXN0X3N1aXRlc18uc2l6ZSgpKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9m
IGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRl
c3QKIC8vIHRoYXQgc2hvdWxkIHJ1bi4KLWludCBVbml0VGVzdEltcGw6OnRlc3RfY2FzZV90b19y
dW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBTaG91bGRS
dW5UZXN0Q2FzZSk7CitpbnQgVW5pdFRlc3RJbXBsOjp0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgp
IGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9zdWl0ZXNfLCBTaG91bGRSdW5UZXN0U3Vp
dGUpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KIGludCBV
bml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1
bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRl
c3RTdWl0ZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KTsKK30KKworLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIHNraXBwZWQgdGVzdHMuCitpbnQgVW5pdFRlc3RJbXBsOjpza2lwcGVkX3Rlc3RfY291bnQo
KSBjb25zdCB7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18sICZU
ZXN0U3VpdGU6OnNraXBwZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBmYWlsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jb3VudCgpIGNv
bnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2Fz
ZTo6ZmFpbGVkX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVz
dF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjpmYWlsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMg
dGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhl
IFhNTCByZXBvcnQuCiBpbnQgVW5pdFRlc3RJbXBsOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3Rf
Y291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNf
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdENhc2U6OnJlcG9ydGFibGVfZGlz
YWJsZWRfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1
aXRlc18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdFN1aXRlOjpyZXBvcnRh
YmxlX2Rpc2FibGVkX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlz
YWJsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29u
c3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNl
OjpkaXNhYmxlZF90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRl
c3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdl
dHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0Lgog
aW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1
cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpyZXBvcnRhYmxl
X3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0ZXNf
LCAmVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3RzLgogaW50IFVuaXRUZXN0SW1wbDo6dG90YWxfdGVzdF9jb3VudCgp
IGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0
Q2FzZTo6dG90YWxfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0
ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnRvdGFsX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRz
IHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgogaW50IFVuaXRUZXN0SW1wbDo6
dGVzdF90b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0
KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KTsKKyAgcmV0dXJuIFN1
bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6dGVzdF90b19ydW5f
Y291bnQpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGFzIGFu
IHN0ZDo6c3RyaW5nLgpAQCAtODQ2LDQ4ICsxMDMxLDMwIEBAIHN0ZDo6c3RyaW5nIFVuaXRUZXN0
SW1wbDo6Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcChpbnQgc2tpcF9jb3VudCkgewogICAg
ICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4gbWls
bGlzZWNvbmRzLgorLy8gQSBoZWxwZXIgY2xhc3MgZm9yIG1lYXN1cmluZyBlbGFwc2VkIHRpbWVz
LgorY2xhc3MgVGltZXIgeworIHB1YmxpYzoKKyAgVGltZXIoKSA6IHN0YXJ0XyhzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSkge30KKworICAvLyBSZXR1cm4gdGltZSBlbGFwc2VkIGlu
IG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgdGltZXIgd2FzIGNyZWF0ZWQuCisgIFRpbWVJbk1pbGxp
cyBFbGFwc2VkKCkgeworICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s6Om5vdygpIC0gc3RhcnRfKQorICAgICAgICAuY291bnQoKTsKKyAgfQorCisgcHJp
dmF0ZToKKyAgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9j
az4gc3RhcnRfOworfTsKKworLy8gUmV0dXJucyBhIHRpbWVzdGFtcCBhcyBtaWxsaXNlY29uZHMg
c2luY2UgdGhlIGVwb2NoLiBOb3RlIHRoaXMgdGltZSBtYXkganVtcAorLy8gYXJvdW5kIHN1Ympl
Y3QgdG8gYWRqdXN0bWVudHMgYnkgdGhlIHN5c3RlbSwgdG8gbWVhc3VyZSBlbGFwc2VkIHRpbWUg
dXNlCisvLyBUaW1lciBpbnN0ZWFkLgogVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygpIHsK
LSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKLSAg
Ly8gRGlmZmVyZW5jZSBiZXR3ZWVuIDE5NzAtMDEtMDEgYW5kIDE2MDEtMDEtMDEgaW4gbWlsbGlz
ZWNvbmRzLgotICAvLyBodHRwOi8vYW5hbG9nb3VzLmJsb2dzcG90LmNvbS8yMDA1LzA0L2Vwb2No
Lmh0bWwKLSAgY29uc3QgVGltZUluTWlsbGlzIGtKYXZhRXBvY2hUb1dpbkZpbGVUaW1lRGVsdGEg
PQotICAgIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxpcz4oMTE2NDQ0NzM2VUwpICogMTAwMDAwVUw7
Ci0gIGNvbnN0IERXT1JEIGtUZW50aE1pY3Jvc0luTWlsbGlTZWNvbmQgPSAxMDAwMDsKLQotICBT
WVNURU1USU1FIG5vd19zeXN0aW1lOwotICBGSUxFVElNRSBub3dfZmlsZXRpbWU7Ci0gIFVMQVJH
RV9JTlRFR0VSIG5vd19pbnQ2NDsKLSAgLy8gRklYTUU6IFNob3VsZG4ndCB0aGlzIGp1c3QgdXNl
Ci0gIC8vICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKT8KLSAgR2V0U3lzdGVtVGltZSgmbm93
X3N5c3RpbWUpOwotICBpZiAoU3lzdGVtVGltZVRvRmlsZVRpbWUoJm5vd19zeXN0aW1lLCAmbm93
X2ZpbGV0aW1lKSkgewotICAgIG5vd19pbnQ2NC5Mb3dQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3TG93
RGF0ZVRpbWU7Ci0gICAgbm93X2ludDY0LkhpZ2hQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3SGlnaERh
dGVUaW1lOwotICAgIG5vd19pbnQ2NC5RdWFkUGFydCA9IChub3dfaW50NjQuUXVhZFBhcnQgLyBr
VGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kKSAtCi0gICAgICBrSmF2YUVwb2NoVG9XaW5GaWxlVGlt
ZURlbHRhOwotICAgIHJldHVybiBub3dfaW50NjQuUXVhZFBhcnQ7Ci0gIH0KLSAgcmV0dXJuIDA7
Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9IQVNfR0VUVElNRU9GREFZXwotICBf
X3RpbWViNjQgbm93OwotCi0gIC8vIE1TVkMgOCBkZXByZWNhdGVzIF9mdGltZTY0KCksIHNvIHdl
IHdhbnQgdG8gc3VwcHJlc3Mgd2FybmluZyA0OTk2Ci0gIC8vIChkZXByZWNhdGVkIGZ1bmN0aW9u
KSB0aGVyZS4KLSAgLy8gRklYTUU6IFVzZSBHZXRUaWNrQ291bnQoKT8gIE9yIHVzZQotICAvLyAg
IFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCkKLSAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9Q
VVNIXygpCi0gIF9mdGltZTY0KCZub3cpOwotICBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNBVEVE
X1BPUF8oKQotCi0gIHJldHVybiBzdGF0aWNfY2FzdDxUaW1lSW5NaWxsaXM+KG5vdy50aW1lKSAq
IDEwMDAgKyBub3cubWlsbGl0bTsKLSNlbGlmIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfCi0gIHN0
cnVjdCB0aW1ldmFsIG5vdzsKLSAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOwotICByZXR1cm4g
c3RhdGljX2Nhc3Q8VGltZUluTWlsbGlzPihub3cudHZfc2VjKSAqIDEwMDAgKyBub3cudHZfdXNl
YyAvIDEwMDA7Ci0jZWxzZQotIyBlcnJvciAiRG9uJ3Qga25vdyBob3cgdG8gZ2V0IHRoZSBjdXJy
ZW50IHRpbWUgb24geW91ciBzeXN0ZW0uIgotI2VuZGlmCisgIHJldHVybiBzdGQ6OmNocm9ubzo6
ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAgICBz
dGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtCisgICAgICAgICAgICAgc3RkOjpjaHJv
bm86OnN5c3RlbV9jbG9jazo6ZnJvbV90aW1lX3QoMCkpCisgICAgICAuY291bnQoKTsKIH0KIAog
Ly8gVXRpbGl0aWVzCkBAIC05MDAsMTEgKzEwNjcsMTAgQEAgVGltZUluTWlsbGlzIEdldFRpbWVJ
bk1pbGxpcygpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSB3aWRlIHN0
cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBMUENXU1RSIFN0cmluZzo6
QW5zaVRvVXRmMTYoY29uc3QgY2hhciogYW5zaSkgewotICBpZiAoIWFuc2kpIHJldHVybiBOVUxM
OworICBpZiAoIWFuc2kpIHJldHVybiBudWxscHRyOwogICBjb25zdCBpbnQgbGVuZ3RoID0gc3Ry
bGVuKGFuc2kpOwogICBjb25zdCBpbnQgdW5pY29kZV9sZW5ndGggPQotICAgICAgTXVsdGlCeXRl
VG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwgMCk7CisgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgYW5z
aSwgbGVuZ3RoLCBudWxscHRyLCAwKTsKICAgV0NIQVIqIHVuaWNvZGUgPSBuZXcgV0NIQVJbdW5p
Y29kZV9sZW5ndGggKyAxXTsKICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ks
IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCB1bmljb2RlX2xlbmd0aCk7
CkBAIC05MTcsMzMgKzEwODMsMzMgQEAgTFBDV1NUUiBTdHJpbmc6OkFuc2lUb1V0ZjE2KGNvbnN0
IGNoYXIqIGFuc2kpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSBBTlNJ
IHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBjb25zdCBjaGFyKiBT
dHJpbmc6OlV0ZjE2VG9BbnNpKExQQ1dTVFIgdXRmMTZfc3RyKSAgewotICBpZiAoIXV0ZjE2X3N0
cikgcmV0dXJuIE5VTEw7Ci0gIGNvbnN0IGludCBhbnNpX2xlbmd0aCA9Ci0gICAgICBXaWRlQ2hh
clRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgMCwgTlVMTCwgTlVMTCk7CisgIGlmICghdXRmMTZfc3RyKSByZXR1cm4g
bnVsbHB0cjsKKyAgY29uc3QgaW50IGFuc2lfbGVuZ3RoID0gV2lkZUNoYXJUb011bHRpQnl0ZShD
UF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgIGNoYXIqIGFu
c2kgPSBuZXcgY2hhclthbnNpX2xlbmd0aCArIDFdOwotICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQ
X0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAgICAgICAgICBhbnNpLCBhbnNp
X2xlbmd0aCwgTlVMTCwgTlVMTCk7CisgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCB1
dGYxNl9zdHIsIC0xLCBhbnNpLCBhbnNpX2xlbmd0aCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICBudWxscHRyKTsKICAgYW5zaVthbnNpX2xlbmd0aF0gPSAwOwogICByZXR1cm4gYW5z
aTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogCi0vLyBDb21wYXJl
cyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKy8vIENvbXBhcmVzIHR3byBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhleSBoYXZlIHRoZSBzYW1lCisvLyBjb250ZW50LgogLy8KIC8vIFVubGlrZSBzdHJj
bXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBBIE5VTEwK
IC8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0
cmluZywKIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgogYm9vbCBTdHJpbmc6OkNTdHJp
bmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29uc3QgY2hhciAqIHJocykgewotICBpZiAoIGxo
cyA9PSBOVUxMICkgcmV0dXJuIHJocyA9PSBOVUxMOworICBpZiAobGhzID09IG51bGxwdHIpIHJl
dHVybiByaHMgPT0gbnVsbHB0cjsKIAotICBpZiAoIHJocyA9PSBOVUxMICkgcmV0dXJuIGZhbHNl
OworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICByZXR1cm4gc3RyY21w
KGxocywgcmhzKSA9PSAwOwogfQogCi0jaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HIHx8IEdURVNU
X0hBU19HTE9CQUxfV1NUUklORworI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogCiAvLyBDb252
ZXJ0cyBhbiBhcnJheSBvZiB3aWRlIGNoYXJzIHRvIGEgbmFycm93IHN0cmluZyB1c2luZyB0aGUg
VVRGLTgKIC8vIGVuY29kaW5nLCBhbmQgc3RyZWFtcyB0aGUgcmVzdWx0IHRvIHRoZSBnaXZlbiBN
ZXNzYWdlIG9iamVjdC4KQEAgLTk2MSw3ICsxMTI3LDcgQEAgc3RhdGljIHZvaWQgU3RyZWFtV2lk
ZUNoYXJzVG9NZXNzYWdlKGNvbnN0IHdjaGFyX3QqIHdzdHIsIHNpemVfdCBsZW5ndGgsCiAgIH0K
IH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcgfHwgR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HCisjZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwogCiB2b2lkIFNwbGl0
U3RyaW5nKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgY2hhciBkZWxpbWl0ZXIsCiAgICAgICAg
ICAgICAgICAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+KiBkZXN0KSB7CkBAIC0xMDEx
LDE1ICsxMTc3LDYgQEAgTWVzc2FnZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjpzdGQ6
OndzdHJpbmcmIHdzdHIpIHsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAK
LSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIENvbnZlcnRzIHRoZSBnaXZlbiB3aWRl
IHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNpbmcgdGhlIFVURi04Ci0vLyBlbmNvZGluZywg
YW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotTWVzc2FnZSYg
TWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjp3c3RyaW5nJiB3c3RyKSB7Ci0gIGludGVybmFs
OjpTdHJlYW1XaWRlQ2hhcnNUb01lc3NhZ2Uod3N0ci5jX3N0cigpLCB3c3RyLmxlbmd0aCgpLCB0
aGlzKTsKLSAgcmV0dXJuICp0aGlzOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dT
VFJJTkcKLQogLy8gR2V0cyB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBzbyBmYXIg
YXMgYW4gc3RkOjpzdHJpbmcuCiAvLyBFYWNoICdcMCcgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIg
aXMgcmVwbGFjZWQgd2l0aCAiXFwwIi4KIHN0ZDo6c3RyaW5nIE1lc3NhZ2U6OkdldFN0cmluZygp
IGNvbnN0IHsKQEAgLTEwMzAsMTAgKzExODcsOSBAQCBzdGQ6OnN0cmluZyBNZXNzYWdlOjpHZXRT
dHJpbmcoKSBjb25zdCB7CiAvLyBVc2VkIGluIEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2VydGlvbl9y
ZXN1bHQpLgogQXNzZXJ0aW9uUmVzdWx0OjpBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0aW9u
UmVzdWx0JiBvdGhlcikKICAgICA6IHN1Y2Nlc3NfKG90aGVyLnN1Y2Nlc3NfKSwKLSAgICAgIG1l
c3NhZ2VfKG90aGVyLm1lc3NhZ2VfLmdldCgpICE9IE5VTEwgPwotICAgICAgICAgICAgICAgbmV3
IDo6c3RkOjpzdHJpbmcoKm90aGVyLm1lc3NhZ2VfKSA6Ci0gICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDwgOjpzdGQ6OnN0cmluZyo+KE5VTEwpKSB7Ci19CisgICAgICBtZXNzYWdlXyhvdGhlci5t
ZXNzYWdlXy5nZXQoKSAhPSBudWxscHRyCisgICAgICAgICAgICAgICAgICAgPyBuZXcgOjpzdGQ6
OnN0cmluZygqb3RoZXIubWVzc2FnZV8pCisgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2Fz
dDwgOjpzdGQ6OnN0cmluZyo+KG51bGxwdHIpKSB7fQogCiAvLyBTd2FwcyB0d28gQXNzZXJ0aW9u
UmVzdWx0cy4KIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYgb3Ro
ZXIpIHsKQEAgLTEwNDUsOCArMTIwMSw3IEBAIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2FwKEFz
c2VydGlvblJlc3VsdCYgb3RoZXIpIHsKIC8vIFJldHVybnMgdGhlIGFzc2VydGlvbidzIG5lZ2F0
aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KIEFzc2VydGlvblJlc3VsdCBBc3Nl
cnRpb25SZXN1bHQ6Om9wZXJhdG9yISgpIGNvbnN0IHsKICAgQXNzZXJ0aW9uUmVzdWx0IG5lZ2F0
aW9uKCFzdWNjZXNzXyk7Ci0gIGlmIChtZXNzYWdlXy5nZXQoKSAhPSBOVUxMKQotICAgIG5lZ2F0
aW9uIDw8ICptZXNzYWdlXzsKKyAgaWYgKG1lc3NhZ2VfLmdldCgpICE9IG51bGxwdHIpIG5lZ2F0
aW9uIDw8ICptZXNzYWdlXzsKICAgcmV0dXJuIG5lZ2F0aW9uOwogfQogCkBAIC0xMjcyLDkgKzE0
MjcsMTAgQEAgc3RkOjpzdHJpbmcgQ3JlYXRlVW5pZmllZERpZmYoY29uc3Qgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+JiBsZWZ0LAogICAgIGZvciAoOyBlZGl0X2kgPCBlZGl0cy5zaXplKCk7ICsr
ZWRpdF9pKSB7CiAgICAgICBpZiAobl9zdWZmaXggPj0gY29udGV4dCkgewogICAgICAgICAvLyBD
b250aW51ZSBvbmx5IGlmIHRoZSBuZXh0IGh1bmsgaXMgdmVyeSBjbG9zZS4KLSAgICAgICAgc3Rk
Ojp2ZWN0b3I8RWRpdFR5cGU+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGVkaXRzLmJlZ2luKCkgKyBl
ZGl0X2k7CisgICAgICAgIGF1dG8gaXQgPSBlZGl0cy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50
PihlZGl0X2kpOwogICAgICAgICB3aGlsZSAoaXQgIT0gZWRpdHMuZW5kKCkgJiYgKml0ID09IGtN
YXRjaCkgKytpdDsKLSAgICAgICAgaWYgKGl0ID09IGVkaXRzLmVuZCgpIHx8IChpdCAtIGVkaXRz
LmJlZ2luKCkpIC0gZWRpdF9pID49IGNvbnRleHQpIHsKKyAgICAgICAgaWYgKGl0ID09IGVkaXRz
LmVuZCgpIHx8CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGl0IC0gZWRpdHMuYmVn
aW4oKSkgLSBlZGl0X2kgPj0gY29udGV4dCkgewogICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5l
eHQgZWRpdCBvciBpdCBpcyB0b28gZmFyIGF3YXkuCiAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTEzNTAsNyArMTUwNiw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEVz
Y2FwZWRTdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHN0cikgewogLy8gICBsaHNfdmFsdWU6ICAg
ICAgIjUiCiAvLyAgIHJoc192YWx1ZTogICAgICAiNiIKIC8vCi0vLyBUaGUgaWdub3JpbmdfY2Fz
ZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZmYgdGhlIGFzc2VydGlvbiBpcyBhCisvLyBUaGUgaWdub3Jp
bmdfY2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlz
IGEKIC8vICpfU1RSQ0FTRUVRKi4gIFdoZW4gaXQncyB0cnVlLCB0aGUgc3RyaW5nICJJZ25vcmlu
ZyBjYXNlIiB3aWxsCiAvLyBiZSBpbnNlcnRlZCBpbnRvIHRoZSBtZXNzYWdlLgogQXNzZXJ0aW9u
UmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKQEAgLTE0MTMsOCAr
MTU2OSwzMSBAQCBBc3NlcnRpb25SZXN1bHQgRG91YmxlTmVhclByZWRGb3JtYXQoY29uc3QgY2hh
ciogZXhwcjEsCiAgIGNvbnN0IGRvdWJsZSBkaWZmID0gZmFicyh2YWwxIC0gdmFsMik7CiAgIGlm
IChkaWZmIDw9IGFic19lcnJvcikgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICAvLyBG
SVhNRTogZG8gbm90IHByaW50IHRoZSB2YWx1ZSBvZiBhbiBleHByZXNzaW9uIGlmIGl0J3MKLSAg
Ly8gYWxyZWFkeSBhIGxpdGVyYWwuCisgIC8vIEZpbmQgdGhlIHZhbHVlIHdoaWNoIGlzIGNsb3Nl
c3QgdG8gemVyby4KKyAgY29uc3QgZG91YmxlIG1pbl9hYnMgPSBzdGQ6Om1pbihmYWJzKHZhbDEp
LCBmYWJzKHZhbDIpKTsKKyAgLy8gRmluZCB0aGUgZGlzdGFuY2UgdG8gdGhlIG5leHQgZG91Ymxl
IGZyb20gdGhhdCB2YWx1ZS4KKyAgY29uc3QgZG91YmxlIGVwc2lsb24gPQorICAgICAgbmV4dGFm
dGVyKG1pbl9hYnMsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkgLSBt
aW5fYWJzOworICAvLyBEZXRlY3QgdGhlIGNhc2Ugd2hlcmUgYWJzX2Vycm9yIGlzIHNvIHNtYWxs
IHRoYXQgRVhQRUNUX05FQVIgaXMKKyAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgRVhQRUNU
X0VRVUFMLCBhbmQgZ2l2ZSBhbiBpbmZvcm1hdGl2ZSBlcnJvcgorICAvLyBtZXNzYWdlIHNvIHRo
YXQgdGhlIHNpdHVhdGlvbiBjYW4gYmUgbW9yZSBlYXNpbHkgdW5kZXJzdG9vZCB3aXRob3V0Cisg
IC8vIHJlcXVpcmluZyBleG90aWMgZmxvYXRpbmctcG9pbnQga25vd2xlZGdlLgorICAvLyBEb24n
dCBkbyBhbiBlcHNpbG9uIGNoZWNrIGlmIGFic19lcnJvciBpcyB6ZXJvIGJlY2F1c2UgdGhhdCBp
bXBsaWVzCisgIC8vIHRoYXQgYW4gZXF1YWxpdHkgY2hlY2sgd2FzIGFjdHVhbGx5IGludGVuZGVk
LgorICBpZiAoIShzdGQ6OmlzbmFuKSh2YWwxKSAmJiAhKHN0ZDo6aXNuYW4pKHZhbDIpICYmIGFi
c19lcnJvciA+IDAgJiYKKyAgICAgIGFic19lcnJvciA8IGVwc2lsb24pIHsKKyAgICByZXR1cm4g
QXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgIDw8ICJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVu
ICIgPDwgZXhwcjEgPDwgIiBhbmQgIiA8PCBleHByMiA8PCAiIGlzICIKKyAgICAgICAgICAgPDwg
ZGlmZiA8PCAiLCB3aGVyZVxuIgorICAgICAgICAgICA8PCBleHByMSA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IHZhbDEgPDwgIixcbiIKKyAgICAgICAgICAgPDwgZXhwcjIgPDwgIiBldmFsdWF0ZXMg
dG8gIiA8PCB2YWwyIDw8ICIuXG5UaGUgYWJzX2Vycm9yIHBhcmFtZXRlciAiCisgICAgICAgICAg
IDw8IGFic19lcnJvcl9leHByIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgYWJzX2Vycm9yCisgICAg
ICAgICAgIDw8ICIgd2hpY2ggaXMgc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIGRpc3RhbmNlIGJl
dHdlZW4gZG91YmxlcyBmb3IgIgorICAgICAgICAgICAgICAibnVtYmVycyBvZiB0aGlzIG1hZ25p
dHVkZSB3aGljaCBpcyAiCisgICAgICAgICAgIDw8IGVwc2lsb24KKyAgICAgICAgICAgPDwgIiwg
dGh1cyBtYWtpbmcgdGhpcyBFWFBFQ1RfTkVBUiBjaGVjayBlcXVpdmFsZW50IHRvICIKKyAgICAg
ICAgICAgICAgIkVYUEVDVF9FUVVBTC4gQ29uc2lkZXIgdXNpbmcgRVhQRUNUX0RPVUJMRV9FUSBp
bnN0ZWFkLiI7CisgIH0KICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQogICAgICAgPDwgIlRo
ZSBkaWZmZXJlbmNlIGJldHdlZW4gIiA8PCBleHByMSA8PCAiIGFuZCAiIDw8IGV4cHIyCiAgICAg
ICA8PCAiIGlzICIgPDwgZGlmZiA8PCAiLCB3aGljaCBleGNlZWRzICIgPDwgYWJzX2Vycm9yX2V4
cHIgPDwgIiwgd2hlcmVcbiIKQEAgLTE0NzcsNTcgKzE2NTYsNiBAQCBBc3NlcnRpb25SZXN1bHQg
RG91YmxlTEUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogCiBuYW1lc3Bh
Y2UgaW50ZXJuYWwgewogCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVD
VH1fRVEgd2l0aCBpbnQgb3IgZW51bQotLy8gYXJndW1lbnRzLgotQXNzZXJ0aW9uUmVzdWx0IENt
cEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJp
Z2dlc3RJbnQgcmhzKSB7Ci0gIGlmIChsaHMgPT0gcmhzKSB7Ci0gICAgcmV0dXJuIEFzc2VydGlv
blN1Y2Nlc3MoKTsKLSAgfQotCi0gIHJldHVybiBFcUZhaWx1cmUobGhzX2V4cHJlc3Npb24sCi0g
ICAgICAgICAgICAgICAgICAgcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgRm9y
bWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKGxocywgcmhzKSwKLSAgICAgICAgICAgICAg
ICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocmhzLCBsaHMpLAotICAgICAg
ICAgICAgICAgICAgIGZhbHNlKTsKLX0KLQotLy8gQSBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHRo
ZSBoZWxwZXIgZnVuY3Rpb25zIG5lZWRlZCB0byBpbXBsZW1lbnQKLS8vIEFTU0VSVF8/PyBhbmQg
RVhQRUNUXz8/IHdpdGggaW50ZWdlciBvciBlbnVtIGFyZ3VtZW50cy4gIEl0IGlzIGhlcmUKLS8v
IGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUgb2Ygc2ltaWxhciBjb2RlLgotI2RlZmluZSBH
VEVTVF9JTVBMX0NNUF9IRUxQRVJfKG9wX25hbWUsIG9wKVwKLUFzc2VydGlvblJlc3VsdCBDbXBI
ZWxwZXIjI29wX25hbWUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgdmFsMSwgQmlnZ2Vz
dEludCB2YWwyKSB7XAotICBpZiAodmFsMSBvcCB2YWwyKSB7XAotICAgIHJldHVybiBBc3NlcnRp
b25TdWNjZXNzKCk7XAotICB9IGVsc2Uge1wKLSAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgp
IFwKLSAgICAgICAgPDwgIkV4cGVjdGVkOiAoIiA8PCBleHByMSA8PCAiKSAiICNvcCAiICgiIDw8
IGV4cHIyXAotICAgICAgICA8PCAiKSwgYWN0dWFsOiAiIDw8IEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZSh2YWwxLCB2YWwyKVwKLSAgICAgICAgPDwgIiB2cyAiIDw8IEZvcm1hdEZv
ckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSh2YWwyLCB2YWwxKTtcCi0gIH1cCi19Ci0KLS8vIElt
cGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X05FIHdpdGgg
aW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTkUsICE9
KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1f
TEUgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1RfSU1QTF9DTVBfSEVMUEVS
XyhMRSwgPD0pCi0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8
RVhQRUNUfV9MVCB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBMX0NN
UF9IRUxQRVJfKExULCA8ICkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ig
e0FTU0VSVHxFWFBFQ1R9X0dFIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNU
X0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0
aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1Qgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRz
LgotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPiApCi0KLSN1bmRlZiBHVEVTVF9JTVBMX0NN
UF9IRUxQRVJfCi0KIC8vIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9T
VFJFUS4KIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJFUShjb25zdCBjaGFyKiBsaHNfZXhw
cmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNf
ZXhwcmVzc2lvbiwKQEAgLTE1OTUsMjIgKzE3MjMsMjAgQEAgbmFtZXNwYWNlIHsKIAogLy8gSGVs
cGVyIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIElzU3ViU3RyaW5nKCkgYW5kIElzTm90U3Vi
c3RyaW5nKCkuCiAKLS8vIFRoaXMgZ3JvdXAgb2Ygb3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0dXJu
IHRydWUgaWZmIG5lZWRsZSBpcyBhCi0vLyBzdWJzdHJpbmcgb2YgaGF5c3RhY2suICBOVUxMIGlz
IGNvbnNpZGVyZWQgYSBzdWJzdHJpbmcgb2YgaXRzZWxmCi0vLyBvbmx5LgorLy8gVGhpcyBncm91
cCBvZiBvdmVybG9hZGVkIGZ1bmN0aW9ucyByZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBuZWVk
bGUKKy8vIGlzIGEgc3Vic3RyaW5nIG9mIGhheXN0YWNrLiAgTlVMTCBpcyBjb25zaWRlcmVkIGEg
c3Vic3RyaW5nIG9mCisvLyBpdHNlbGYgb25seS4KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29u
c3QgY2hhciogbmVlZGxlLCBjb25zdCBjaGFyKiBoYXlzdGFjaykgewotICBpZiAobmVlZGxlID09
IE5VTEwgfHwgaGF5c3RhY2sgPT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0YWNr
OworICBpZiAobmVlZGxlID09IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0dXJu
IG5lZWRsZSA9PSBoYXlzdGFjazsKIAotICByZXR1cm4gc3Ryc3RyKGhheXN0YWNrLCBuZWVkbGUp
ICE9IE5VTEw7CisgIHJldHVybiBzdHJzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0cjsK
IH0KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29uc3Qgd2NoYXJfdCogbmVlZGxlLCBjb25zdCB3
Y2hhcl90KiBoYXlzdGFjaykgewotICBpZiAobmVlZGxlID09IE5VTEwgfHwgaGF5c3RhY2sgPT0g
TlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0YWNrOworICBpZiAobmVlZGxlID09IG51
bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsK
IAotICByZXR1cm4gd2Nzc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IE5VTEw7CisgIHJldHVybiB3
Y3NzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0cjsKIH0KIAogLy8gU3RyaW5nVHlwZSBo
ZXJlIGNhbiBiZSBlaXRoZXIgOjpzdGQ6OnN0cmluZyBvciA6OnN0ZDo6d3N0cmluZy4KQEAgLTE3
MjQsMTIgKzE4NTAsMTIgQEAgQXNzZXJ0aW9uUmVzdWx0IEhSRVNVTFRGYWlsdXJlSGVscGVyKGNv
bnN0IGNoYXIqIGV4cHIsCiAgIC8vIEdldHMgdGhlIHN5c3RlbSdzIGh1bWFuIHJlYWRhYmxlIG1l
c3NhZ2Ugc3RyaW5nIGZvciB0aGlzIEhSRVNVTFQuCiAgIGNoYXIgZXJyb3JfdGV4dFtrQnVmU2l6
ZV0gPSB7ICdcMCcgfTsKICAgRFdPUkQgbWVzc2FnZV9sZW5ndGggPSA6OkZvcm1hdE1lc3NhZ2VB
KGtGbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAv
LyBubyBzb3VyY2UsIHdlJ3JlIGFza2luZyBzeXN0ZW0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhyLCAgLy8gdGhlIGVycm9yCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAgLy8gbm8gbGluZSB3aWR0aCByZXN0cmljdGlvbnMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgLy8gbm8gc291
cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxEV09SRD4oaHIpLCAgLy8gdGhlIGVycm9yCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgIC8vIG5vIGxpbmUgd2lkdGgg
cmVzdHJpY3Rpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcl90ZXh0LCAgLy8gb3V0cHV0IGJ1ZmZlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0J1ZlNpemUsICAvLyBidWYgc2l6ZQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2Vy
dHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtCdWZTaXplLCAg
ICAvLyBidWYgc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bnVsbHB0cik7ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2VydHMKICAgLy8gVHJpbXMgdGFpbGlu
ZyB3aGl0ZSBzcGFjZSAoRm9ybWF0TWVzc2FnZSBsZWF2ZXMgYSB0cmFpbGluZyBDUi1MRikKICAg
Zm9yICg7IG1lc3NhZ2VfbGVuZ3RoICYmIElzU3BhY2UoZXJyb3JfdGV4dFttZXNzYWdlX2xlbmd0
aCAtIDFdKTsKICAgICAgICAgICAtLW1lc3NhZ2VfbGVuZ3RoKSB7CkBAIC0xNzc1LDM1ICsxOTAx
LDM1IEBAIEFzc2VydGlvblJlc3VsdCBJc0hSRVNVTFRGYWlsdXJlKGNvbnN0IGNoYXIqIGV4cHIs
IGxvbmcgaHIpIHsgIC8vIE5PTElOVAogLy8gIDE3IC0gMjEgYml0cyAgICAgICAxMTExMHh4eCAx
MHh4eHh4eCAxMHh4eHh4eCAxMHh4eHh4eAogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50IGEg
b25lLWJ5dGUgVVRGLTggc2VxdWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4
Q29kZVBvaW50MSA9IChzdGF0aWNfY2FzdDxVSW50MzI+KDEpIDw8ICA3KSAtIDE7Citjb25zdGV4
cHIgdWludDMyX3Qga01heENvZGVQb2ludDEgPSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEpIDw8
ICA3KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0d28tYnl0ZSBVVEYtOCBz
ZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtNYXhDb2RlUG9pbnQyID0gKHN0
YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDUgKyA2KSkgLSAxOworY29uc3RleHByIHVpbnQzMl90
IGtNYXhDb2RlUG9pbnQyID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoNSArIDYpKSAt
IDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0aHJlZS1ieXRlIFVURi04IHNlcXVl
bmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENvZGVQb2ludDMgPSAoc3RhdGlj
X2Nhc3Q8VUludDMyPigxKSA8PCAoNCArIDIqNikpIC0gMTsKK2NvbnN0ZXhwciB1aW50MzJfdCBr
TWF4Q29kZVBvaW50MyA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgKDQgKyAyKjYpKSAt
IDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSBmb3VyLWJ5dGUgVVRGLTggc2VxdWVu
Y2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4Q29kZVBvaW50NCA9IChzdGF0aWNf
Y2FzdDxVSW50MzI+KDEpIDw8ICgzICsgMyo2KSkgLSAxOworY29uc3RleHByIHVpbnQzMl90IGtN
YXhDb2RlUG9pbnQ0ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoMyArIDMqNikpIC0g
MTsKIAogLy8gQ2hvcHMgb2ZmIHRoZSBuIGxvd2VzdCBiaXRzIGZyb20gYSBiaXQgcGF0dGVybi4g
IFJldHVybnMgdGhlIG4KIC8vIGxvd2VzdCBiaXRzLiAgQXMgYSBzaWRlIGVmZmVjdCwgdGhlIG9y
aWdpbmFsIGJpdCBwYXR0ZXJuIHdpbGwgYmUKIC8vIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IG4g
Yml0cy4KLWlubGluZSBVSW50MzIgQ2hvcExvd0JpdHMoVUludDMyKiBiaXRzLCBpbnQgbikgewot
ICBjb25zdCBVSW50MzIgbG93X2JpdHMgPSAqYml0cyAmICgoc3RhdGljX2Nhc3Q8VUludDMyPigx
KSA8PCBuKSAtIDEpOworaW5saW5lIHVpbnQzMl90IENob3BMb3dCaXRzKHVpbnQzMl90KiBiaXRz
LCBpbnQgbikgeworICBjb25zdCB1aW50MzJfdCBsb3dfYml0cyA9ICpiaXRzICYgKChzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oMSkgPDwgbikgLSAxKTsKICAgKmJpdHMgPj49IG47CiAgIHJldHVybiBs
b3dfYml0czsKIH0KIAogLy8gQ29udmVydHMgYSBVbmljb2RlIGNvZGUgcG9pbnQgdG8gYSBuYXJy
b3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgotLy8gY29kZV9wb2ludCBwYXJhbWV0ZXIgaXMg
b2YgdHlwZSBVSW50MzIgYmVjYXVzZSB3Y2hhcl90IG1heSBub3QgYmUKKy8vIGNvZGVfcG9pbnQg
cGFyYW1ldGVyIGlzIG9mIHR5cGUgdWludDMyX3QgYmVjYXVzZSB3Y2hhcl90IG1heSBub3QgYmUK
IC8vIHdpZGUgZW5vdWdoIHRvIGNvbnRhaW4gYSBjb2RlIHBvaW50LgogLy8gSWYgdGhlIGNvZGVf
cG9pbnQgaXMgbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50CiAvLyAoaS5lLiBvdXRzaWRl
IG9mIFVuaWNvZGUgcmFuZ2UgVSswIHRvIFUrMTBGRkZGKSBpdCB3aWxsIGJlIGNvbnZlcnRlZAog
Ly8gdG8gIihJbnZhbGlkIFVuaWNvZGUgMHhYWFhYWFhYWCkiLgotc3RkOjpzdHJpbmcgQ29kZVBv
aW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KSB7CitzdGQ6OnN0cmluZyBDb2RlUG9pbnRUb1V0
ZjgodWludDMyX3QgY29kZV9wb2ludCkgewogICBpZiAoY29kZV9wb2ludCA+IGtNYXhDb2RlUG9p
bnQ0KSB7Ci0gICAgcmV0dXJuICIoSW52YWxpZCBVbmljb2RlIDB4IiArIFN0cmluZzo6Rm9ybWF0
SGV4SW50KGNvZGVfcG9pbnQpICsgIikiOworICAgIHJldHVybiAiKEludmFsaWQgVW5pY29kZSAw
eCIgKyBTdHJpbmc6OkZvcm1hdEhleFVJbnQzMihjb2RlX3BvaW50KSArICIpIjsKICAgfQogCiAg
IGNoYXIgc3RyWzVdOyAgLy8gQmlnIGVub3VnaCBmb3IgdGhlIGxhcmdlc3QgdmFsaWQgY29kZSBw
b2ludC4KQEAgLTE4MzEsNyArMTk1Nyw3IEBAIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOChV
SW50MzIgY29kZV9wb2ludCkgewogCiAvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgb25s
eSBtYWtlIHNlbnNlIGlmIHRoZSBzeXN0ZW0KIC8vIHVzZXMgVVRGLTE2IGZvciB3aWRlIHN0cmlu
ZyBlbmNvZGluZy4gQWxsIHN1cHBvcnRlZCBzeXN0ZW1zCi0vLyB3aXRoIDE2IGJpdCB3Y2hhcl90
IChXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpIGRvIHVzZSBVVEYtMTYuCisvLyB3aXRoIDE2
IGJpdCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4pIGRvIHVzZSBVVEYtMTYuCiAKIC8vIERldGVy
bWluZXMgaWYgdGhlIGFyZ3VtZW50cyBjb25zdGl0dXRlIFVURi0xNiBzdXJyb2dhdGUgcGFpcgog
Ly8gYW5kIHRodXMgc2hvdWxkIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgVW5pY29kZSBjb2Rl
IHBvaW50CkBAIC0xODQyLDE5ICsxOTY4LDIyIEBAIGlubGluZSBib29sIElzVXRmMTZTdXJyb2dh
dGVQYWlyKHdjaGFyX3QgZmlyc3QsIHdjaGFyX3Qgc2Vjb25kKSB7CiB9CiAKIC8vIENyZWF0ZXMg
YSBVbmljb2RlIGNvZGUgcG9pbnQgZnJvbSBVVEYxNiBzdXJyb2dhdGUgcGFpci4KLWlubGluZSBV
SW50MzIgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdj
aGFyX3Qgc2Vjb25kKSB7Ci0gIGNvbnN0IFVJbnQzMiBtYXNrID0gKDEgPDwgMTApIC0gMTsKLSAg
cmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikgPwotICAgICAgKCgoZmlyc3QgJiBtYXNrKSA8
PCAxMCkgfCAoc2Vjb25kICYgbWFzaykpICsgMHgxMDAwMCA6Ci0gICAgICAvLyBUaGlzIGZ1bmN0
aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbmRpdGlvbiBpcwotICAgICAgLy8g
ZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgot
ICAgICAgc3RhdGljX2Nhc3Q8VUludDMyPihmaXJzdCk7CitpbmxpbmUgdWludDMyX3QgQ3JlYXRl
Q29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2NoYXJfdCBzZWNv
bmQpIHsKKyAgY29uc3QgYXV0byBmaXJzdF91ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpcnN0
KTsKKyAgY29uc3QgYXV0byBzZWNvbmRfdSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZWNvbmQp
OworICBjb25zdCB1aW50MzJfdCBtYXNrID0gKDEgPDwgMTApIC0gMTsKKyAgcmV0dXJuIChzaXpl
b2Yod2NoYXJfdCkgPT0gMikKKyAgICAgICAgICAgICA/ICgoKGZpcnN0X3UgJiBtYXNrKSA8PCAx
MCkgfCAoc2Vjb25kX3UgJiBtYXNrKSkgKyAweDEwMDAwCisgICAgICAgICAgICAgOgorICAgICAg
ICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUgY29u
ZGl0aW9uIGlzCisgICAgICAgICAgICAgLy8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2li
bGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgorICAgICAgICAgICAgIGZpcnN0X3U7CiB9CiAKIC8v
IENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29k
aW5nLgogLy8gVGhlIHdpZGUgc3RyaW5nIGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZm9sbG93aW5n
IGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYgc2l6ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdpbmRv
d3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKKy8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90KSA9
PSAyIChvbiBXaW5kb3dzLCBDeWd3aW4pCiAvLyAgIFVURi0zMiBpZiBzaXplb2Yod2NoYXJfdCkg
PT0gNCAob24gTGludXgpCiAvLyBQYXJhbWV0ZXIgc3RyIHBvaW50cyB0byBhIG51bGwtdGVybWlu
YXRlZCB3aWRlIHN0cmluZy4KIC8vIFBhcmFtZXRlciBudW1fY2hhcnMgbWF5IGFkZGl0aW9uYWxs
eSBsaW1pdCB0aGUgbnVtYmVyCkBAIC0xODcxLDcgKzIwMDAsNyBAQCBzdGQ6OnN0cmluZyBXaWRl
U3RyaW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwgaW50IG51bV9jaGFycykgewogCiAgIDo6
c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwogICBmb3IgKGludCBpID0gMDsgaSA8IG51bV9jaGFy
czsgKytpKSB7Ci0gICAgVUludDMyIHVuaWNvZGVfY29kZV9wb2ludDsKKyAgICB1aW50MzJfdCB1
bmljb2RlX2NvZGVfcG9pbnQ7CiAKICAgICBpZiAoc3RyW2ldID09IEwnXDAnKSB7CiAgICAgICBi
cmVhazsKQEAgLTE4ODAsNyArMjAwOSw3IEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0Zjgo
Y29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVtX2NoYXJzKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltpICsgMV0p
OwogICAgICAgaSsrOwogICAgIH0gZWxzZSB7Ci0gICAgICB1bmljb2RlX2NvZGVfcG9pbnQgPSBz
dGF0aWNfY2FzdDxVSW50MzI+KHN0cltpXSk7CisgICAgICB1bmljb2RlX2NvZGVfcG9pbnQgPSBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oc3RyW2ldKTsKICAgICB9CiAKICAgICBzdHJlYW0gPDwgQ29k
ZVBvaW50VG9VdGY4KHVuaWNvZGVfY29kZV9wb2ludCk7CkBAIC0xODkxLDIxICsyMDIwLDIxIEBA
IHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVt
X2NoYXJzKSB7CiAvLyBDb252ZXJ0cyBhIHdpZGUgQyBzdHJpbmcgdG8gYW4gc3RkOjpzdHJpbmcg
dXNpbmcgdGhlIFVURi04IGVuY29kaW5nLgogLy8gTlVMTCB3aWxsIGJlIGNvbnZlcnRlZCB0byAi
KG51bGwpIi4KIHN0ZDo6c3RyaW5nIFN0cmluZzo6U2hvd1dpZGVDU3RyaW5nKGNvbnN0IHdjaGFy
X3QgKiB3aWRlX2Nfc3RyKSB7Ci0gIGlmICh3aWRlX2Nfc3RyID09IE5VTEwpICByZXR1cm4gIihu
dWxsKSI7CisgIGlmICh3aWRlX2Nfc3RyID09IG51bGxwdHIpIHJldHVybiAiKG51bGwpIjsKIAog
ICByZXR1cm4gaW50ZXJuYWw6OldpZGVTdHJpbmdUb1V0Zjgod2lkZV9jX3N0ciwgLTEpOwogfQog
Ci0vLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkg
aGF2ZSB0aGUgc2FtZQotLy8gY29udGVudC4KKy8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5n
cy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGV5IGhhdmUgdGhlCisvLyBzYW1lIGNv
bnRlbnQuCiAvLwogLy8gVW5saWtlIHdjc2NtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUg
TlVMTCBhcmd1bWVudChzKS4gIEEgTlVMTAogLy8gQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZm
ZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBz
dHJpbmcuCiBib29sIFN0cmluZzo6V2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCAqIGxo
cywgY29uc3Qgd2NoYXJfdCAqIHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiByaHMg
PT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAK
LSAgaWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0cikg
cmV0dXJuIGZhbHNlOwogCiAgIHJldHVybiB3Y3NjbXAobGhzLCByaHMpID09IDA7CiB9CkBAIC0x
OTQxLDM3ICsyMDcwLDM1IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJORShjb25zdCBj
aGFyKiBzMV9leHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgdnMg
IiA8PCBQcmludFRvU3RyaW5nKHMyKTsKIH0KIAotLy8gQ29tcGFyZXMgdHdvIEMgc3RyaW5ncywg
aWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleSBoYXZlCisvLyBDb21wYXJlcyB0
d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZXkgaGF2ZQogLy8gdGhlIHNhbWUgY29udGVudC4KIC8vCiAvLyBVbmxpa2Ugc3RyY2FzZWNt
cCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEKIC8vIE5V
TEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3Ry
aW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiBib29sIFN0cmluZzo6Q2FzZUlu
c2Vuc2l0aXZlQ1N0cmluZ0VxdWFscyhjb25zdCBjaGFyICogbGhzLCBjb25zdCBjaGFyICogcmhz
KSB7Ci0gIGlmIChsaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gcmhzID09IE5VTEw7Ci0gIGlmIChy
aHMgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7CisgIGlmIChsaHMgPT0gbnVsbHB0cikgcmV0
dXJuIHJocyA9PSBudWxscHRyOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsK
ICAgcmV0dXJuIHBvc2l4OjpTdHJDYXNlQ21wKGxocywgcmhzKSA9PSAwOwogfQogCi0gIC8vIENv
bXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBp
ZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCi0gIC8vCi0gIC8vIFVubGlrZSB3
Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLgot
ICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1O
VUxMIHdpZGUgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotICAv
LyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zIHNsaWdodGx5
IGRpZmZlci4KLSAgLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3aGlj
aCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKLSAgLy8gZW52aXJvbm1lbnQgdmFyaWFi
bGUuIE9uIEdOVSBwbGF0Zm9ybSB0aGlzIG1ldGhvZCB1c2VzIHdjc2Nhc2VjbXAKLSAgLy8gd2hp
Y2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZSBjdXJyZW50
IGxvY2FsZS4KLSAgLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxzbyB1
c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQotICAvLyBjdXJyZW50IGxvY2FsZS4KKy8vIENv
bXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGV5CisvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisvLworLy8gVW5s
aWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQo
cykuCisvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5v
bi1OVUxMIHdpZGUgQyBzdHJpbmcsCisvLyBpbmNsdWRpbmcgdGhlIGVtcHR5IHN0cmluZy4KKy8v
IE5COiBUaGUgaW1wbGVtZW50YXRpb25zIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgc2xpZ2h0bHkg
ZGlmZmVyLgorLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3aGljaCBj
b21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKKy8vIGVudmlyb25tZW50IHZhcmlhYmxlLiBP
biBHTlUgcGxhdGZvcm0gdGhpcyBtZXRob2QgdXNlcyB3Y3NjYXNlY21wCisvLyB3aGljaCBjb21w
YXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUgY2F0ZWdvcnkgb2YgdGhlIGN1cnJlbnQgbG9jYWxl
LgorLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxzbyB1c2VzIExDX0NU
WVBFIGNhdGVnb3J5IG9mIHRoZQorLy8gY3VycmVudCBsb2NhbGUuCiBib29sIFN0cmluZzo6Q2Fz
ZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QqIHJo
cykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiByaHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9
PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAKLSAgaWYgKHJocyA9PSBOVUxMKSBy
ZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogCiAjaWYg
R1RFU1RfT1NfV0lORE9XUwogICByZXR1cm4gX3djc2ljbXAobGhzLCByaHMpID09IDA7CkBAIC0x
OTgyLDE0ICsyMTA5LDE0IEBAIGJvb2wgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmlu
Z0VxdWFscyhjb25zdCB3Y2hhcl90KiBsaHMsCiAgIC8vIE90aGVyIHVua25vd24gT1NlcyBtYXkg
bm90IGRlZmluZSBpdCBlaXRoZXIuCiAgIHdpbnRfdCBsZWZ0LCByaWdodDsKICAgZG8gewotICAg
IGxlZnQgPSB0b3dsb3dlcigqbGhzKyspOwotICAgIHJpZ2h0ID0gdG93bG93ZXIoKnJocysrKTsK
KyAgICBsZWZ0ID0gdG93bG93ZXIoc3RhdGljX2Nhc3Q8d2ludF90PigqbGhzKyspKTsKKyAgICBy
aWdodCA9IHRvd2xvd2VyKHN0YXRpY19jYXN0PHdpbnRfdD4oKnJocysrKSk7CiAgIH0gd2hpbGUg
KGxlZnQgJiYgbGVmdCA9PSByaWdodCk7CiAgIHJldHVybiBsZWZ0ID09IHJpZ2h0OwogI2VuZGlm
ICAvLyBPUyBzZWxlY3RvcgogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHN0ciBlbmRzIHdpdGgg
dGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcgY2FzZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiBzdHIgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsIGlnbm9yaW5nIGNhc2UuCiAv
LyBBbnkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8gZW5kIHdpdGggYW4gZW1wdHkgc3VmZml4Lgog
Ym9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogICAgIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWZmaXgpIHsKQEAgLTIwMDIsMTggKzIxMjks
MjggQEAgYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogCiAvLyBGb3JtYXRz
IGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCiBzdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdEludFdp
ZHRoMihpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEludFdpZHRoTih2YWx1ZSwgMik7Cit9
CisKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIHRvIGdpdmVuIHdpZHRoIHdpdGggbGVhZGluZyB6
ZXJvcy4KK3N0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0SW50V2lkdGhOKGludCB2YWx1ZSwgaW50
IHdpZHRoKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwotICBzcyA8PCBzdGQ6OnNldGZpbGwo
JzAnKSA8PCBzdGQ6OnNldHcoMikgPDwgdmFsdWU7CisgIHNzIDw8IHN0ZDo6c2V0ZmlsbCgnMCcp
IDw8IHN0ZDo6c2V0dyh3aWR0aCkgPDwgdmFsdWU7CiAgIHJldHVybiBzcy5zdHIoKTsKIH0KIAog
Ly8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiVYIi4KLXN0ZDo6c3RyaW5nIFN0cmluZzo6Rm9y
bWF0SGV4SW50KGludCB2YWx1ZSkgeworc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRIZXhVSW50
MzIodWludDMyX3QgdmFsdWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CiAgIHNzIDw8IHN0
ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHZhbHVlOwogICByZXR1cm4gc3Muc3RyKCk7CiB9
CiAKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCitzdGQ6OnN0cmluZyBTdHJpbmc6
OkZvcm1hdEhleEludChpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEhleFVJbnQzMihzdGF0
aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpKTsKK30KKwogLy8gRm9ybWF0cyBhIGJ5dGUgYXMgIiUw
MlgiLgogc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUp
IHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CkBAIC0yMDMwLDcgKzIxNjcsNyBAQCBzdGQ6OnN0
cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6OnN0ZDo6c3RyaW5nc3RyZWFtKiBzcykgewogICBj
b25zdCBjaGFyKiBjb25zdCBlbmQgPSBzdGFydCArIHN0ci5sZW5ndGgoKTsKIAogICBzdGQ6OnN0
cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNlcnZlKDIgKiAoZW5kIC0gc3RhcnQpKTsKKyAgcmVz
dWx0LnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90PigyICogKGVuZCAtIHN0YXJ0KSkpOwogICBm
b3IgKGNvbnN0IGNoYXIqIGNoID0gc3RhcnQ7IGNoICE9IGVuZDsgKytjaCkgewogICAgIGlmICgq
Y2ggPT0gJ1wwJykgewogICAgICAgcmVzdWx0ICs9ICJcXDAiOyAgLy8gUmVwbGFjZXMgTlVMIHdp
dGggIlxcMCI7CkBAIC0yMDUwLDcgKzIxODcsOSBAQCBzdGQ6OnN0cmluZyBBcHBlbmRVc2VyTWVz
c2FnZShjb25zdCBzdGQ6OnN0cmluZyYgZ3Rlc3RfbXNnLAogICBpZiAodXNlcl9tc2dfc3RyaW5n
LmVtcHR5KCkpIHsKICAgICByZXR1cm4gZ3Rlc3RfbXNnOwogICB9Ci0KKyAgaWYgKGd0ZXN0X21z
Zy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIHVzZXJfbXNnX3N0cmluZzsKKyAgfQogICByZXR1cm4g
Z3Rlc3RfbXNnICsgIlxuIiArIHVzZXJfbXNnX3N0cmluZzsKIH0KIApAQCAtMjA2MCw5ICsyMTk5
LDcgQEAgc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1lc3NhZ2UoY29uc3Qgc3RkOjpzdHJpbmcmIGd0
ZXN0X21zZywKIAogLy8gQ3JlYXRlcyBhbiBlbXB0eSBUZXN0UmVzdWx0LgogVGVzdFJlc3VsdDo6
VGVzdFJlc3VsdCgpCi0gICAgOiBkZWF0aF90ZXN0X2NvdW50XygwKSwKLSAgICAgIGVsYXBzZWRf
dGltZV8oMCkgewotfQorICAgIDogZGVhdGhfdGVzdF9jb3VudF8oMCksIHN0YXJ0X3RpbWVzdGFt
cF8oMCksIGVsYXBzZWRfdGltZV8oMCkge30KIAogLy8gRCd0b3IuCiBUZXN0UmVzdWx0Ojp+VGVz
dFJlc3VsdCgpIHsKQEAgLTIwNzQsNyArMjIxMSw3IEBAIFRlc3RSZXN1bHQ6On5UZXN0UmVzdWx0
KCkgewogY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRlc3RSZXN1bHQ6OkdldFRlc3RQYXJ0UmVzdWx0
KGludCBpKSBjb25zdCB7CiAgIGlmIChpIDwgMCB8fCBpID49IHRvdGFsX3BhcnRfY291bnQoKSkK
ICAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3BhcnRfcmVzdWx0
c18uYXQoaSk7CisgIHJldHVybiB0ZXN0X3BhcnRfcmVzdWx0c18uYXQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihpKSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBwcm9wZXJ0eS4gaSBjYW4g
cmFuZ2UgZnJvbSAwIHRvCkBAIC0yMDgzLDcgKzIyMjAsNyBAQCBjb25zdCBUZXN0UGFydFJlc3Vs
dCYgVGVzdFJlc3VsdDo6R2V0VGVzdFBhcnRSZXN1bHQoaW50IGkpIGNvbnN0IHsKIGNvbnN0IFRl
c3RQcm9wZXJ0eSYgVGVzdFJlc3VsdDo6R2V0VGVzdFByb3BlcnR5KGludCBpKSBjb25zdCB7CiAg
IGlmIChpIDwgMCB8fCBpID49IHRlc3RfcHJvcGVydHlfY291bnQoKSkKICAgICBpbnRlcm5hbDo6
cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3Byb3BlcnRpZXNfLmF0KGkpOworICByZXR1
cm4gdGVzdF9wcm9wZXJ0aWVzXy5hdChzdGF0aWNfY2FzdDxzaXplX3Q+KGkpKTsKIH0KIAogLy8g
Q2xlYXJzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0cy4KQEAgLTIxMzEsMjAgKzIyNjgsMjEgQEAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RTdWl0ZXNBdHRyaWJ1dGVzW10gPSB7
CiAvLyBUaGUgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0c3Vp
dGU+IGVsZW1lbnQgb2YgWE1MCiAvLyBvdXRwdXQuCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qg
a1Jlc2VydmVkVGVzdFN1aXRlQXR0cmlidXRlc1tdID0gewotICAiZGlzYWJsZWQiLAotICAiZXJy
b3JzIiwKLSAgImZhaWx1cmVzIiwKLSAgIm5hbWUiLAotICAidGVzdHMiLAotICAidGltZSIKLX07
CisgICAgImRpc2FibGVkIiwgImVycm9ycyIsICJmYWlsdXJlcyIsICAibmFtZSIsCisgICAgInRl
c3RzIiwgICAgInRpbWUiLCAgICJ0aW1lc3RhbXAiLCAic2tpcHBlZCJ9OwogCiAvLyBUaGUgbGlz
dCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVudCBv
ZiBYTUwgb3V0cHV0Lgogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RDYXNl
QXR0cmlidXRlc1tdID0gewotICAgICJjbGFzc25hbWUiLCAgIm5hbWUiLCAgICAgICAgInN0YXR1
cyIsICJ0aW1lIiwKLSAgICAidHlwZV9wYXJhbSIsICJ2YWx1ZV9wYXJhbSIsICJmaWxlIiwgICAi
bGluZSJ9OworICAgICJjbGFzc25hbWUiLCAgICJuYW1lIiwgInN0YXR1cyIsICJ0aW1lIiwgICJ0
eXBlX3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIn07CiAKLXRlbXBs
YXRlIDxpbnQga1NpemU+CisvLyBVc2UgYSBzbGlnaHRseSBkaWZmZXJlbnQgc2V0IGZvciBhbGxv
d2VkIG91dHB1dCB0byBlbnN1cmUgZXhpc3RpbmcgdGVzdHMgY2FuCisvLyBzdGlsbCBSZWNvcmRQ
cm9wZXJ0eSgicmVzdWx0Iikgb3IgIlJlY29yZFByb3BlcnR5KHRpbWVzdGFtcCIpCitzdGF0aWMg
Y29uc3QgY2hhciogY29uc3Qga1Jlc2VydmVkT3V0cHV0VGVzdENhc2VBdHRyaWJ1dGVzW10gPSB7
CisgICAgImNsYXNzbmFtZSIsICAgIm5hbWUiLCAic3RhdHVzIiwgInRpbWUiLCAgICJ0eXBlX3Bh
cmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIiwgICAicmVzdWx0IiwgInRp
bWVzdGFtcCJ9OworCit0ZW1wbGF0ZSA8c2l6ZV90IGtTaXplPgogc3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+IEFycmF5QXNWZWN0b3IoY29uc3QgY2hhciogY29uc3QgKCZhcnJheSlba1NpemVdKSB7
CiAgIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4oYXJyYXksIGFycmF5ICsga1NpemUp
OwogfQpAQCAtMjE2NCw2ICsyMzAyLDIyIEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4gR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudCgKICAgcmV0dXJuIHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPigpOwogfQogCisvLyBUT0RPKGpkZXNwcmV6KTogTWVyZ2UgdGhlIHR3byBn
ZXRSZXNlcnZlZCBhdHRyaWJ1dGVzIG9uY2Ugc2tpcCBpcyBpbXByb3ZlZAorc3RhdGljIHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50
KAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxfZWxlbWVudCkgeworICBpZiAoeG1sX2VsZW1l
bnQgPT0gInRlc3RzdWl0ZXMiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2VydmVk
VGVzdFN1aXRlc0F0dHJpYnV0ZXMpOworICB9IGVsc2UgaWYgKHhtbF9lbGVtZW50ID09ICJ0ZXN0
c3VpdGUiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2VydmVkVGVzdFN1aXRlQXR0
cmlidXRlcyk7CisgIH0gZWxzZSBpZiAoeG1sX2VsZW1lbnQgPT0gInRlc3RjYXNlIikgeworICAg
IHJldHVybiBBcnJheUFzVmVjdG9yKGtSZXNlcnZlZE91dHB1dFRlc3RDYXNlQXR0cmlidXRlcyk7
CisgIH0gZWxzZSB7CisgICAgR1RFU1RfQ0hFQ0tfKGZhbHNlKSA8PCAiVW5yZWNvZ25pemVkIHht
bF9lbGVtZW50IHByb3ZpZGVkOiAiIDw8IHhtbF9lbGVtZW50OworICB9CisgIC8vIFRoaXMgY29k
ZSBpcyB1bnJlYWNoYWJsZSBidXQgc29tZSBjb21waWxlcnMgbWF5IG5vdCByZWFsaXplcyB0aGF0
LgorICByZXR1cm4gc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KCk7Cit9CisKIHN0YXRpYyBzdGQ6
OnN0cmluZyBGb3JtYXRXb3JkTGlzdChjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIHdv
cmRzKSB7CiAgIE1lc3NhZ2Ugd29yZF9saXN0OwogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdv
cmRzLnNpemUoKTsgKytpKSB7CkBAIC0yMjA3LDcgKzIzNjEsMTcgQEAgdm9pZCBUZXN0UmVzdWx0
OjpDbGVhcigpIHsKICAgZWxhcHNlZF90aW1lXyA9IDA7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIHRlc3QgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIG9mZiB0aGUgdGVzdCBwYXJ0IHdh
cyBza2lwcGVkLgorc3RhdGljIGJvb2wgVGVzdFBhcnRTa2lwcGVkKGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiByZXN1bHQpIHsKKyAgcmV0dXJuIHJlc3VsdC5za2lwcGVkKCk7Cit9CisKKy8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCB3YXMgc2tpcHBlZC4KK2Jvb2wgVGVzdFJl
c3VsdDo6U2tpcHBlZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFGYWlsZWQoKSAmJiBDb3VudElmKHRl
c3RfcGFydF9yZXN1bHRzXywgVGVzdFBhcnRTa2lwcGVkKSA+IDA7Cit9CisKKy8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmYWlsZWQuCiBib29sIFRlc3RSZXN1bHQ6OkZh
aWxlZCgpIGNvbnN0IHsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF9wYXJ0X2NvdW50KCk7
ICsraSkgewogICAgIGlmIChHZXRUZXN0UGFydFJlc3VsdChpKS5mYWlsZWQoKSkKQEAgLTIyMTYs
MjIgKzIzODAsMjIgQEAgYm9vbCBUZXN0UmVzdWx0OjpGYWlsZWQoKSBjb25zdCB7CiAgIHJldHVy
biBmYWxzZTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkg
ZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHBhcnQgZmF0
YWxseSBmYWlsZWQuCiBzdGF0aWMgYm9vbCBUZXN0UGFydEZhdGFsbHlGYWlsZWQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHJlc3VsdCkgewogICByZXR1cm4gcmVzdWx0LmZhdGFsbHlfZmFpbGVkKCk7
CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCisvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiBib29s
IFRlc3RSZXN1bHQ6Okhhc0ZhdGFsRmFpbHVyZSgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYo
dGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydEZhdGFsbHlGYWlsZWQpID4gMDsKIH0KIAotLy8g
UmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KKy8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxl
ZC4KIHN0YXRpYyBib29sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZChjb25zdCBUZXN0UGFydFJl
c3VsdCYgcmVzdWx0KSB7CiAgIHJldHVybiByZXN1bHQubm9uZmF0YWxseV9mYWlsZWQoKTsKIH0K
IAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4K
Ky8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwg
ZmFpbHVyZS4KIGJvb2wgVGVzdFJlc3VsdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgY29uc3Qgewog
ICByZXR1cm4gQ291bnRJZih0ZXN0X3BhcnRfcmVzdWx0c18sIFRlc3RQYXJ0Tm9uZmF0YWxseUZh
aWxlZCkgPiAwOwogfQpAQCAtMjI5NCwyNSArMjQ1OCwyNSBAQCB2b2lkIFJlcG9ydEZhaWx1cmVJ
blVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlwZSwKICAgLy8g
QWRkVGVzdFBhcnRSZXN1bHQuCiAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5BZGRUZXN0UGFy
dFJlc3VsdCgKICAgICAgIHJlc3VsdF90eXBlLAotICAgICAgTlVMTCwgIC8vIE5vIGluZm8gYWJv
dXQgdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuCi0gICAgICAt
MSwgICAgLy8gV2UgaGF2ZSBubyBpbmZvIG9uIHdoaWNoIGxpbmUgY2F1c2VkIHRoZSBleGNlcHRp
b24uCisgICAgICBudWxscHRyLCAgLy8gTm8gaW5mbyBhYm91dCB0aGUgc291cmNlIGZpbGUgd2hl
cmUgdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAgICAgIC0xLCAgICAgICAvLyBXZSBoYXZlIG5v
IGluZm8gb24gd2hpY2ggbGluZSBjYXVzZWQgdGhlIGV4Y2VwdGlvbi4KICAgICAgIG1lc3NhZ2Us
Ci0gICAgICAiIik7ICAgLy8gTm8gc3RhY2sgdHJhY2UsIGVpdGhlci4KKyAgICAgICIiKTsgIC8v
IE5vIHN0YWNrIHRyYWNlLCBlaXRoZXIuCiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAog
Ci0vLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNl
IHRvIHVzZSB0aGUgc2FtZSB0ZXN0CisvLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVzdHMg
aW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSB0byB1c2UgdGhlIHNhbWUgdGVzdAogLy8gZml4dHVyZSBj
bGFzcy4gIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZQot
Ly8gc2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRl
c3QgY2FzZS4gIElmCisvLyBzYW1lIGZpeHR1cmUgY2xhc3MgYXMgdGhlIGZpcnN0IHRlc3QgaW4g
dGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4gIElmCiAvLyB5ZXMsIGl0IHJldHVybnMgdHJ1ZTsgb3Ro
ZXJ3aXNlIGl0IGdlbmVyYXRlcyBhIEdvb2dsZSBUZXN0IGZhaWx1cmUgYW5kCiAvLyByZXR1cm5z
IGZhbHNlLgogYm9vbCBUZXN0OjpIYXNTYW1lRml4dHVyZUNsYXNzKCkgewogICBpbnRlcm5hbDo6
VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwot
ICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gaW1wbC0+Y3VycmVudF90ZXN0X2Nh
c2UoKTsKKyAgY29uc3QgVGVzdFN1aXRlKiBjb25zdCB0ZXN0X3N1aXRlID0gaW1wbC0+Y3VycmVu
dF90ZXN0X3N1aXRlKCk7CiAKLSAgLy8gSW5mbyBhYm91dCB0aGUgZmlyc3QgdGVzdCBpbiB0aGUg
Y3VycmVudCB0ZXN0IGNhc2UuCi0gIGNvbnN0IFRlc3RJbmZvKiBjb25zdCBmaXJzdF90ZXN0X2lu
Zm8gPSB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KClbMF07CisgIC8vIEluZm8gYWJvdXQgdGhl
IGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4KKyAgY29uc3QgVGVzdEluZm8q
IGNvbnN0IGZpcnN0X3Rlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KClbMF07
CiAgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZmlyc3RfZml4dHVyZV9pZCA9IGZpcnN0X3Rlc3Rf
aW5mby0+Zml4dHVyZV9jbGFzc19pZF87CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGZpcnN0X3Rlc3Rf
bmFtZSA9IGZpcnN0X3Rlc3RfaW5mby0+bmFtZSgpOwogCkBAIC0yMzI4LDcgKzI0OTIsNyBAQCBi
b29sIFRlc3Q6Okhhc1NhbWVGaXh0dXJlQ2xhc3MoKSB7CiAgICAgY29uc3QgYm9vbCB0aGlzX2lz
X1RFU1QgPSB0aGlzX2ZpeHR1cmVfaWQgPT0gaW50ZXJuYWw6OkdldFRlc3RUeXBlSWQoKTsKIAog
ICAgIGlmIChmaXJzdF9pc19URVNUIHx8IHRoaXNfaXNfVEVTVCkgewotICAgICAgLy8gQm90aCBU
RVNUIGFuZCBURVNUX0YgYXBwZWFyIGluIHNhbWUgdGVzdCBjYXNlLCB3aGljaCBpcyBpbmNvcnJl
Y3QuCisgICAgICAvLyBCb3RoIFRFU1QgYW5kIFRFU1RfRiBhcHBlYXIgaW4gc2FtZSB0ZXN0IHN1
aXRlLCB3aGljaCBpcyBpbmNvcnJlY3QuCiAgICAgICAvLyBUZWxsIHRoZSB1c2VyIGhvdyB0byBm
aXggdGhpcy4KIAogICAgICAgLy8gR2V0cyB0aGUgbmFtZSBvZiB0aGUgVEVTVCBhbmQgdGhlIG5h
bWUgb2YgdGhlIFRFU1RfRi4gIE5vdGUKQEAgLTIzNDAsOSArMjUwNCw5IEBAIGJvb2wgVGVzdDo6
SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgICAgICAgICBmaXJzdF9pc19URVNUID8gdGhpc190
ZXN0X25hbWUgOiBmaXJzdF90ZXN0X25hbWU7CiAKICAgICAgIEFERF9GQUlMVVJFKCkKLSAgICAg
ICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUgc2Ft
ZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGluZyBURVNUX0Yg
YW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGlzXG4iCi0gICAgICAgICAgPDwgImlsbGVn
YWwuICBJbiB0ZXN0IGNhc2UgIiA8PCB0aGlzX3Rlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKQor
ICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBtdXN0IHVzZSB0
aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKKyAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGluZyBU
RVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpc1xuIgorICAgICAgICAgIDw8
ICJpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSAiIDw8IHRoaXNfdGVzdF9pbmZvLT50ZXN0X3N1aXRl
X25hbWUoKQogICAgICAgICAgIDw8ICIsXG4iCiAgICAgICAgICAgPDwgInRlc3QgIiA8PCBURVNU
X0ZfbmFtZSA8PCAiIGlzIGRlZmluZWQgdXNpbmcgVEVTVF9GIGJ1dFxuIgogICAgICAgICAgIDw8
ICJ0ZXN0ICIgPDwgVEVTVF9uYW1lIDw8ICIgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHBy
b2JhYmx5XG4iCkBAIC0yMzUyLDE1ICsyNTE2LDE1IEBAIGJvb2wgVGVzdDo6SGFzU2FtZUZpeHR1
cmVDbGFzcygpIHsKICAgICAgIC8vIFR3byBmaXh0dXJlIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBu
YW1lIGFwcGVhciBpbiB0d28gZGlmZmVyZW50CiAgICAgICAvLyBuYW1lc3BhY2VzLCB3aGljaCBp
cyBub3QgYWxsb3dlZC4gVGVsbCB0aGUgdXNlciBob3cgdG8gZml4IHRoaXMuCiAgICAgICBBRERf
RkFJTFVSRSgpCi0gICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2Ug
bXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICAgICAgPDwgImNsYXNzLiAg
SG93ZXZlciwgaW4gdGVzdCBjYXNlICIKLSAgICAgICAgICA8PCB0aGlzX3Rlc3RfaW5mby0+dGVz
dF9jYXNlX25hbWUoKSA8PCAiLFxuIgotICAgICAgICAgIDw8ICJ5b3UgZGVmaW5lZCB0ZXN0ICIg
PDwgZmlyc3RfdGVzdF9uYW1lCi0gICAgICAgICAgPDwgIiBhbmQgdGVzdCAiIDw8IHRoaXNfdGVz
dF9uYW1lIDw8ICJcbiIKKyAgICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qg
c3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCisgICAgICAgICAgPDwgImNs
YXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiCisgICAgICAgICAgPDwgdGhpc190ZXN0X2lu
Zm8tPnRlc3Rfc3VpdGVfbmFtZSgpIDw8ICIsXG4iCisgICAgICAgICAgPDwgInlvdSBkZWZpbmVk
IHRlc3QgIiA8PCBmaXJzdF90ZXN0X25hbWUgPDwgIiBhbmQgdGVzdCAiCisgICAgICAgICAgPDwg
dGhpc190ZXN0X25hbWUgPDwgIlxuIgogICAgICAgICAgIDw8ICJ1c2luZyB0d28gZGlmZmVyZW50
IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmXG4iCiAgICAgICAgICAg
PDwgInRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFu
c2xhdGlvblxuIgogICAgICAgICAgIDw8ICJ1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAg
WW91IHNob3VsZCBwcm9iYWJseSByZW5hbWUgb25lXG4iCi0gICAgICAgICAgPDwgIm9mIHRoZSBj
bGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4iOworICAg
ICAgICAgIDw8ICJvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50
IHRlc3Qgc3VpdGVzLiI7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKICAgfQpAQCAtMjM5Myw3
ICsyNTU3LDcgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3Jt
YXRDeHhFeGNlcHRpb25NZXNzYWdlKGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbG9jYXRpb24p
IHsKICAgTWVzc2FnZSBtZXNzYWdlOwotICBpZiAoZGVzY3JpcHRpb24gIT0gTlVMTCkgeworICBp
ZiAoZGVzY3JpcHRpb24gIT0gbnVsbHB0cikgewogICAgIG1lc3NhZ2UgPDwgIkMrKyBleGNlcHRp
b24gd2l0aCBkZXNjcmlwdGlvbiBcIiIgPDwgZGVzY3JpcHRpb24gPDwgIlwiIjsKICAgfSBlbHNl
IHsKICAgICBtZXNzYWdlIDw8ICJVbmtub3duIEMrKyBleGNlcHRpb24iOwpAQCAtMjQ5MSw3ICsy
NjU1LDcgQEAgUmVzdWx0IEhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAogICAg
IH0gY2F0Y2ggKC4uLikgeyAgLy8gTk9MSU5UCiAgICAgICBpbnRlcm5hbDo6UmVwb3J0RmFpbHVy
ZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgICAgIFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWls
dXJlLAotICAgICAgICAgIEZvcm1hdEN4eEV4Y2VwdGlvbk1lc3NhZ2UoTlVMTCwgbG9jYXRpb24p
KTsKKyAgICAgICAgICBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKG51bGxwdHIsIGxvY2F0aW9u
KSk7CiAgICAgfQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXN1bHQ+KDApOwogI2Vsc2UKQEAg
LTI1MTEsOCArMjY3NSw5IEBAIHZvaWQgVGVzdDo6UnVuKCkgewogICBpbnRlcm5hbDo6VW5pdFRl
c3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBpbXBs
LT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogICBpbnRlcm5h
bDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQodGhpcywgJlRlc3Q6OlNldFVw
LCAiU2V0VXAoKSIpOwotICAvLyBXZSB3aWxsIHJ1biB0aGUgdGVzdCBvbmx5IGlmIFNldFVwKCkg
d2FzIHN1Y2Nlc3NmdWwuCi0gIGlmICghSGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgLy8gV2Ugd2ls
bCBydW4gdGhlIHRlc3Qgb25seSBpZiBTZXRVcCgpIHdhcyBzdWNjZXNzZnVsIGFuZCBkaWRuJ3Qg
Y2FsbAorICAvLyBHVEVTVF9TS0lQKCkuCisgIGlmICghSGFzRmF0YWxGYWlsdXJlKCkgJiYgIUlz
U2tpcHBlZCgpKSB7CiAgICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2
aW5nR1Rlc3QoKTsKICAgICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBw
b3J0ZWQoCiAgICAgICAgIHRoaXMsICZUZXN0OjpUZXN0Qm9keSwgInRoZSB0ZXN0IGJvZHkiKTsK
QEAgLTI1MjYsMzcgKzI2OTEsNDIgQEAgdm9pZCBUZXN0OjpSdW4oKSB7CiAgICAgICB0aGlzLCAm
VGVzdDo6VGVhckRvd24sICJUZWFyRG93bigpIik7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KIGJvb2wg
VGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0
SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPkhhc0ZhdGFsRmFpbHVyZSgpOwogfQogCi0v
LyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1
cmUuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMg
YSBub24tZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVzdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgewog
ICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0
KCktPgogICAgICAgSGFzTm9uZmF0YWxGYWlsdXJlKCk7CiB9CiAKKy8vIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IHdhcyBza2lwcGVkLgorYm9vbCBUZXN0OjpJ
c1NraXBwZWQoKSB7CisgIHJldHVybiBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCktPmN1cnJl
bnRfdGVzdF9yZXN1bHQoKS0+U2tpcHBlZCgpOworfQorCiAvLyBjbGFzcyBUZXN0SW5mbwogCiAv
LyBDb25zdHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0LiBJdCBhc3N1bWVzIG93bmVyc2hpcCBvZiB0
aGUgdGVzdCBmYWN0b3J5CiAvLyBvYmplY3QuCi1UZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3Rk
OjpzdHJpbmcmIGFfdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcmIGFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3R5cGVf
cGFyYW0sCitUZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIGFfdGVzdF9zdWl0
ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBhX25hbWUsIGNv
bnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBh
X3ZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpDb2RlTG9jYXRpb24g
YV9jb2RlX2xvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpUeXBlSWQgZml4
dHVyZV9jbGFzc19pZCwKICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VGVzdEZhY3RvcnlC
YXNlKiBmYWN0b3J5KQotICAgIDogdGVzdF9jYXNlX25hbWVfKGFfdGVzdF9jYXNlX25hbWUpLAor
ICAgIDogdGVzdF9zdWl0ZV9uYW1lXyhhX3Rlc3Rfc3VpdGVfbmFtZSksCiAgICAgICBuYW1lXyhh
X25hbWUpLAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5n
KGFfdHlwZV9wYXJhbSkgOiBOVUxMKSwKLSAgICAgIHZhbHVlX3BhcmFtXyhhX3ZhbHVlX3BhcmFt
ID8gbmV3IHN0ZDo6c3RyaW5nKGFfdmFsdWVfcGFyYW0pIDogTlVMTCksCisgICAgICB0eXBlX3Bh
cmFtXyhhX3R5cGVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmcoYV90eXBlX3BhcmFtKSA6IG51bGxw
dHIpLAorICAgICAgdmFsdWVfcGFyYW1fKGFfdmFsdWVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmco
YV92YWx1ZV9wYXJhbSkgOiBudWxscHRyKSwKICAgICAgIGxvY2F0aW9uXyhhX2NvZGVfbG9jYXRp
b24pLAogICAgICAgZml4dHVyZV9jbGFzc19pZF8oZml4dHVyZV9jbGFzc19pZCksCiAgICAgICBz
aG91bGRfcnVuXyhmYWxzZSksCiAgICAgICBpc19kaXNhYmxlZF8oZmFsc2UpLAogICAgICAgbWF0
Y2hlc19maWx0ZXJfKGZhbHNlKSwKKyAgICAgIGlzX2luX2Fub3RoZXJfc2hhcmRfKGZhbHNlKSwK
ICAgICAgIGZhY3RvcnlfKGZhY3RvcnkpLAogICAgICAgcmVzdWx0XygpIHt9CiAKQEAgLTI1NzAs
NyArMjc0MCw3IEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLwogLy8gQXJndW1lbnRzOgogLy8K
LS8vICAgdGVzdF9jYXNlX25hbWU6ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRlc3Rf
c3VpdGVfbmFtZTogIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAgICAg
ICAgbmFtZSBvZiB0aGUgdGVzdAogLy8gICB0eXBlX3BhcmFtOiAgICAgICB0aGUgbmFtZSBvZiB0
aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCiAvLyAgICAgICAgICAgICAgICAg
ICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KQEAg
LTI1NzgsNDAgKzI3NDgsMzUgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIC8vICAgICAgICAgICAg
ICAgICAgICAgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dC4KIC8vICAgY29kZV9sb2NhdGlvbjogICAgY29kZSBsb2NhdGlvbiB3aGVyZSB0aGUgdGVzdCBp
cyBkZWZpbmVkCiAvLyAgIGZpeHR1cmVfY2xhc3NfaWQ6IElEIG9mIHRoZSB0ZXN0IGZpeHR1cmUg
Y2xhc3MKLS8vICAgc2V0X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhh
dCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiAgICAgcG9pbnRlciB0
byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKKy8vICAgc2V0X3Vw
X3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0
IHN1aXRlCisvLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRo
YXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQogLy8gICBmYWN0b3J5OiAgICAgICAgICBwb2lu
dGVyIHRvIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHRlc3Qgb2JqZWN0LgogLy8gICAgICAg
ICAgICAgICAgICAgICBUaGUgbmV3bHkgY3JlYXRlZCBUZXN0SW5mbyBpbnN0YW5jZSB3aWxsIGFz
c3VtZQogLy8gICAgICAgICAgICAgICAgICAgICBvd25lcnNoaXAgb2YgdGhlIGZhY3Rvcnkgb2Jq
ZWN0LgogVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNvbnN0IGNoYXIq
IHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29uc3QgY2hhciog
dHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9jYXRp
b24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAgICBTZXRV
cFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9k
b3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSkgeworICAgIGNvbnN0IGNoYXIq
IHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJh
bSwKKyAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRp
b24sCisgICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsIFNldFVwVGVzdFN1aXRlRnVuYyBzZXRf
dXBfdGMsCisgICAgVGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywgVGVzdEZhY3Rv
cnlCYXNlKiBmYWN0b3J5KSB7CiAgIFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAgICAg
bmV3IFRlc3RJbmZvKHRlc3RfY2FzZV9uYW1lLCBuYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9wYXJh
bSwKKyAgICAgIG5ldyBUZXN0SW5mbyh0ZXN0X3N1aXRlX25hbWUsIG5hbWUsIHR5cGVfcGFyYW0s
IHZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvZGVfbG9jYXRpb24sIGZpeHR1cmVf
Y2xhc3NfaWQsIGZhY3RvcnkpOwogICBHZXRVbml0VGVzdEltcGwoKS0+QWRkVGVzdEluZm8oc2V0
X3VwX3RjLCB0ZWFyX2Rvd25fdGMsIHRlc3RfaW5mbyk7CiAgIHJldHVybiB0ZXN0X2luZm87CiB9
CiAKLXZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNlVHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2Vf
bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9s
b2NhdGlvbikgewordm9pZCBSZXBvcnRJbnZhbGlkVGVzdFN1aXRlVHlwZShjb25zdCBjaGFyKiB0
ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2Nh
dGlvbiBjb2RlX2xvY2F0aW9uKSB7CiAgIE1lc3NhZ2UgZXJyb3JzOwogICBlcnJvcnMKLSAgICAg
IDw8ICJBdHRlbXB0ZWQgcmVkZWZpbml0aW9uIG9mIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2FzZV9u
YW1lIDw8ICIuXG4iCi0gICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBt
dXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgIDw8ICJjbGFzcy4gIEhvd2V2
ZXIsIGluIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2FzZV9uYW1lIDw8ICIsIHlvdSB0cmllZFxuIgor
ICAgICAgPDwgIkF0dGVtcHRlZCByZWRlZmluaXRpb24gb2YgdGVzdCBzdWl0ZSAiIDw8IHRlc3Rf
c3VpdGVfbmFtZSA8PCAiLlxuIgorICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0
IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgorICAgICAgPDwgImNsYXNz
LiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiIDw8IHRlc3Rfc3VpdGVfbmFtZSA8PCAiLCB5b3Ug
dHJpZWRcbiIKICAgICAgIDw8ICJ0byBkZWZpbmUgYSB0ZXN0IHVzaW5nIGEgZml4dHVyZSBjbGFz
cyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lXG4iCiAgICAgICA8PCAidXNlZCBlYXJsaWVyLiBUaGlz
IGNhbiBoYXBwZW4gaWYgdGhlIHR3byBmaXh0dXJlIGNsYXNzZXMgYXJlXG4iCiAgICAgICA8PCAi
ZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiBZb3Ugc2hv
dWxkXG4iCiAgICAgICA8PCAicHJvYmFibHkgcmVuYW1lIG9uZSBvZiB0aGUgY2xhc3NlcyB0byBw
dXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50XG4iCi0gICAgICA8PCAidGVzdCBjYXNlcy4iOwor
ICAgICAgPDwgInRlc3Qgc3VpdGVzLiI7CiAKICAgR1RFU1RfTE9HXyhFUlJPUikgPDwgRm9ybWF0
RmlsZUxvY2F0aW9uKGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5saW5lKQpAQCAtMjYyNCw3
ICsyNzg5LDcgQEAgbmFtZXNwYWNlIHsKIC8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSB0
ZXN0IG5hbWUgb2YgYSBUZXN0SW5mbyBhZ2FpbnN0IGEga25vd24KIC8vIHZhbHVlLgogLy8KLS8v
IFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRlc3RDYXNlIGNsYXNzIG9u
bHkuICBXZSBwdXQKKy8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRl
c3RTdWl0ZSBjbGFzcyBvbmx5LiAgV2UgcHV0CiAvLyBpdCBpbiB0aGUgYW5vbnltb3VzIG5hbWVz
cGFjZSB0byBwcmV2ZW50IHBvbGx1dGluZyB0aGUgb3V0ZXIKIC8vIG5hbWVzcGFjZS4KIC8vCkBA
IC0yNjM3LDcgKzI4MDIsNyBAQCBjbGFzcyBUZXN0TmFtZUlzIHsKICAgZXhwbGljaXQgVGVzdE5h
bWVJcyhjb25zdCBjaGFyKiBuYW1lKQogICAgICAgOiBuYW1lXyhuYW1lKSB7fQogCi0gIC8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0ZXN0X2luZm8gbWF0Y2hlcyBuYW1lXy4K
KyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdF9p
bmZvIG1hdGNoZXMgbmFtZV8uCiAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0SW5mbyAqIHRl
c3RfaW5mbykgY29uc3QgewogICAgIHJldHVybiB0ZXN0X2luZm8gJiYgdGVzdF9pbmZvLT5uYW1l
KCkgPT0gbmFtZV87CiAgIH0KQEAgLTI2NTEsMTEgKzI4MTYsMTIgQEAgY2xhc3MgVGVzdE5hbWVJ
cyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBUaGlzIG1ldGhvZCBleHBhbmRzIGFsbCBw
YXJhbWV0ZXJpemVkIHRlc3RzIHJlZ2lzdGVyZWQgd2l0aCBtYWNyb3MgVEVTVF9QCi0vLyBhbmQg
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaW50byByZWd1bGFyIHRlc3RzIGFuZCByZWdpc3RlcnMg
dGhvc2UuCisvLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIGludG8gcmVndWxhciB0ZXN0
cyBhbmQgcmVnaXN0ZXJzIHRob3NlLgogLy8gVGhpcyB3aWxsIGJlIGRvbmUganVzdCBvbmNlIGR1
cmluZyB0aGUgcHJvZ3JhbSBydW50aW1lLgogdm9pZCBVbml0VGVzdEltcGw6OlJlZ2lzdGVyUGFy
YW1ldGVyaXplZFRlc3RzKCkgewogICBpZiAoIXBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJl
ZF8pIHsKICAgICBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfLlJlZ2lzdGVyVGVzdHMoKTsK
KyAgICB0eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV8uQ2hlY2tGb3JJbnN0YW50aWF0
aW9ucygpOwogICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8gPSB0cnVlOwogICB9
CiB9CkBAIC0yNjc2LDcgKzI4NDIsOCBAQCB2b2lkIFRlc3RJbmZvOjpSdW4oKSB7CiAgIC8vIE5v
dGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXJzIHRoYXQgYSB0ZXN0IGlzIGFib3V0
IHRvIHN0YXJ0LgogICByZXBlYXRlci0+T25UZXN0U3RhcnQoKnRoaXMpOwogCi0gIGNvbnN0IFRp
bWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgcmVzdWx0
Xy5zZXRfc3RhcnRfdGltZXN0YW1wKGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKSk7CisgIGlu
dGVybmFsOjpUaW1lciB0aW1lcjsKIAogICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+
VXBvbkxlYXZpbmdHVGVzdCgpOwogCkBAIC0yNjg1LDE1NCArMjg1MiwyMzMgQEAgdm9pZCBUZXN0
SW5mbzo6UnVuKCkgewogICAgICAgZmFjdG9yeV8sICZpbnRlcm5hbDo6VGVzdEZhY3RvcnlCYXNl
OjpDcmVhdGVUZXN0LAogICAgICAgInRoZSB0ZXN0IGZpeHR1cmUncyBjb25zdHJ1Y3RvciIpOwog
Ci0gIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0ZSBh
IGZhdGFsIGZhaWx1cmUuCisgIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9yIGRp
ZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUgb3IgaW52b2tlCisgIC8vIEdURVNUX1NLSVAo
KS4KICAgLy8gTm90ZSB0aGF0IHRoZSBvYmplY3Qgd2lsbCBub3QgYmUgbnVsbAotICBpZiAoIVRl
c3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkg
JiYgIVRlc3Q6OklzU2tpcHBlZCgpKSB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IHRocm93IGFzIGFs
bCB1c2VyIGNvZGUgdGhhdCBjYW4gdGhyb3cgYXJlIHdyYXBwZWQgaW50bwogICAgIC8vIGV4Y2Vw
dGlvbiBoYW5kbGluZyBjb2RlLgogICAgIHRlc3QtPlJ1bigpOwogICB9CiAKKyAgaWYgKHRlc3Qg
IT0gbnVsbHB0cikgewogICAgIC8vIERlbGV0ZXMgdGhlIHRlc3Qgb2JqZWN0LgogICAgIGltcGwt
Pm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgICAgaW50ZXJu
YWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAogICAgICAgICB0ZXN0LCAm
VGVzdDo6RGVsZXRlU2VsZl8sICJ0aGUgdGVzdCBmaXh0dXJlJ3MgZGVzdHJ1Y3RvciIpOworICB9
CiAKLSAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMo
KSAtIHN0YXJ0KTsKKyAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKHRpbWVyLkVsYXBzZWQoKSk7
CiAKICAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IGEgdGVz
dCBoYXMganVzdCBmaW5pc2hlZC4KICAgcmVwZWF0ZXItPk9uVGVzdEVuZCgqdGhpcyk7CiAKICAg
Ly8gVGVsbHMgVW5pdFRlc3QgdG8gc3RvcCBhc3NvY2lhdGluZyBhc3NlcnRpb24gcmVzdWx0cyB0
byB0aGlzCiAgIC8vIHRlc3QuCi0gIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhOVUxMKTsK
KyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9pbmZvKG51bGxwdHIpOwogfQogCi0vLyBjbGFzcyBU
ZXN0Q2FzZQorLy8gU2tpcCBhbmQgcmVjb3JkcyBhIHNraXBwZWQgdGVzdCByZXN1bHQgZm9yIHRo
aXMgb2JqZWN0Lgordm9pZCBUZXN0SW5mbzo6U2tpcCgpIHsKKyAgaWYgKCFzaG91bGRfcnVuXykg
cmV0dXJuOwogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlz
IHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Qg
eworICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVu
aXRUZXN0SW1wbCgpOworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8odGhpcyk7CisKKyAg
VGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxp
c3RlbmVycygpLnJlcGVhdGVyKCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVu
dCBsaXN0ZW5lcnMgdGhhdCBhIHRlc3QgaXMgYWJvdXQgdG8gc3RhcnQuCisgIHJlcGVhdGVyLT5P
blRlc3RTdGFydCgqdGhpcyk7CisKKyAgY29uc3QgVGVzdFBhcnRSZXN1bHQgdGVzdF9wYXJ0X3Jl
c3VsdCA9CisgICAgICBUZXN0UGFydFJlc3VsdChUZXN0UGFydFJlc3VsdDo6a1NraXAsIHRoaXMt
PmZpbGUoKSwgdGhpcy0+bGluZSgpLCAiIik7CisgIGltcGwtPkdldFRlc3RQYXJ0UmVzdWx0UmVw
b3J0ZXJGb3JDdXJyZW50VGhyZWFkKCktPlJlcG9ydFRlc3RQYXJ0UmVzdWx0KAorICAgICAgdGVz
dF9wYXJ0X3Jlc3VsdCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0
ZW5lciB0aGF0IGEgdGVzdCBoYXMganVzdCBmaW5pc2hlZC4KKyAgcmVwZWF0ZXItPk9uVGVzdEVu
ZCgqdGhpcyk7CisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhudWxscHRyKTsKK30KKwor
Ly8gY2xhc3MgVGVzdFN1aXRlCisKKy8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRl
c3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6OnN1Y2Nlc3NmdWxfdGVzdF9j
b3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBUZXN0UGFz
c2VkKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRl
c3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisvLyBH
ZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitp
bnQgVGVzdFN1aXRlOjpza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBDb3Vu
dElmKHRlc3RfaW5mb19saXN0XywgVGVzdFNraXBwZWQpOworfQorCisvLyBHZXRzIHRoZSBudW1i
ZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6OmZh
aWxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlz
dF8sIFRlc3RGYWlsZWQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVz
dHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNl
OjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1aXRl
OjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3Vu
dElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9ydGFibGVEaXNhYmxlZCk7CiB9CiAKLS8vIEdl
dHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWludCBU
ZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKKy8vIEdldHMgdGhlIG51bWJl
ciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRlOjpk
aXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9f
bGlzdF8sIFRlc3REaXNhYmxlZCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0
byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNlOjpyZXBvcnRhYmxl
X3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3RfY291
bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9y
dGFibGUpOwogfQogCi0vLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRlc3QgY2Fz
ZSB0aGF0IHNob3VsZCBydW4uCi1pbnQgVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29u
c3QgeworLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlIHRoYXQg
c2hvdWxkIHJ1bi4KK2ludCBUZXN0U3VpdGU6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3Qgewog
ICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFNob3VsZFJ1blRlc3QpOwogfQogCiAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzLgotaW50IFRlc3RDYXNlOjp0b3RhbF90ZXN0
X2NvdW50KCkgY29uc3QgeworaW50IFRlc3RTdWl0ZTo6dG90YWxfdGVzdF9jb3VudCgpIGNvbnN0
IHsKICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9pbmZvX2xpc3RfLnNpemUoKSk7CiB9
CiAKLS8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgorLy8gQ3JlYXRl
cyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogLy8KIC8vIEFyZ3VtZW50czoKIC8v
Ci0vLyAgIG5hbWU6ICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCi0vLyAgIGFfdHlwZV9w
YXJhbTogdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxM
IGlmCi0vLyAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyAgIHNldF91cF90YzogICAgcG9pbnRlciB0byB0aGUg
ZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiBw
b2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVz
dENhc2U6OlRlc3RDYXNlKGNvbnN0IGNoYXIqIGFfbmFtZSwgY29uc3QgY2hhciogYV90eXBlX3Bh
cmFtLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91cF90
YywKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rv
d25fdGMpCisvLyAgIGFfbmFtZTogICAgICAgbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZQorLy8gICBh
X3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlJ3MgdHlwZSBwYXJhbWV0ZXIs
IG9yIE5VTEwgaWYKKy8vICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUuCisvLyAgIHNldF91cF90YzogICAgcG9pbnRl
ciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRlYXJf
ZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0
IHN1aXRlCitUZXN0U3VpdGU6OlRlc3RTdWl0ZShjb25zdCBjaGFyKiBhX25hbWUsIGNvbnN0IGNo
YXIqIGFfdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpTZXRVcFRl
c3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRl
YXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpCiAgICAgOiBuYW1lXyhhX25hbWUpLAot
ICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlwZV9w
YXJhbSkgOiBOVUxMKSwKKyAgICAgIHR5cGVfcGFyYW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBzdGQ6
OnN0cmluZyhhX3R5cGVfcGFyYW0pIDogbnVsbHB0ciksCiAgICAgICBzZXRfdXBfdGNfKHNldF91
cF90YyksCiAgICAgICB0ZWFyX2Rvd25fdGNfKHRlYXJfZG93bl90YyksCiAgICAgICBzaG91bGRf
cnVuXyhmYWxzZSksCi0gICAgICBlbGFwc2VkX3RpbWVfKDApIHsKLX0KKyAgICAgIHN0YXJ0X3Rp
bWVzdGFtcF8oMCksCisgICAgICBlbGFwc2VkX3RpbWVfKDApIHt9CiAKLS8vIERlc3RydWN0b3Ig
b2YgVGVzdENhc2UuCi1UZXN0Q2FzZTo6flRlc3RDYXNlKCkgeworLy8gRGVzdHJ1Y3RvciBvZiBU
ZXN0U3VpdGUuCitUZXN0U3VpdGU6On5UZXN0U3VpdGUoKSB7CiAgIC8vIERlbGV0ZXMgZXZlcnkg
VGVzdCBpbiB0aGUgY29sbGVjdGlvbi4KICAgRm9yRWFjaCh0ZXN0X2luZm9fbGlzdF8sIGludGVy
bmFsOjpEZWxldGU8VGVzdEluZm8+KTsKIH0KIAogLy8gUmV0dXJucyB0aGUgaS10aCB0ZXN0IGFt
b25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwogLy8gdG90YWxfdGVzdF9j
b3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgotY29u
c3QgVGVzdEluZm8qIFRlc3RDYXNlOjpHZXRUZXN0SW5mbyhpbnQgaSkgY29uc3QgeworY29uc3Qg
VGVzdEluZm8qIFRlc3RTdWl0ZTo6R2V0VGVzdEluZm8oaW50IGkpIGNvbnN0IHsKICAgY29uc3Qg
aW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJu
IGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4gaW5k
ZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGlu
ZGV4KV07CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBhbW9uZyBhbGwgdGhlIHRlc3Rz
LiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkg
aXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KLVRlc3RJbmZvKiBUZXN0Q2FzZTo6
R2V0TXV0YWJsZVRlc3RJbmZvKGludCBpKSB7CitUZXN0SW5mbyogVGVzdFN1aXRlOjpHZXRNdXRh
YmxlVGVzdEluZm8oaW50IGkpIHsKICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRl
c3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2lu
Zm9fbGlzdF9baW5kZXhdOworICByZXR1cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5m
b19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV07CiB9CiAKLS8vIEFkZHMgYSB0ZXN0
IHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBkZWxldGUgdGhlIHRlc3QgdXBvbgotLy8gZGVzdHJ1
Y3Rpb24gb2YgdGhlIFRlc3RDYXNlIG9iamVjdC4KLXZvaWQgVGVzdENhc2U6OkFkZFRlc3RJbmZv
KFRlc3RJbmZvICogdGVzdF9pbmZvKSB7CisvLyBBZGRzIGEgdGVzdCB0byB0aGlzIHRlc3Qgc3Vp
dGUuICBXaWxsIGRlbGV0ZSB0aGUgdGVzdCB1cG9uCisvLyBkZXN0cnVjdGlvbiBvZiB0aGUgVGVz
dFN1aXRlIG9iamVjdC4KK3ZvaWQgVGVzdFN1aXRlOjpBZGRUZXN0SW5mbyhUZXN0SW5mbyogdGVz
dF9pbmZvKSB7CiAgIHRlc3RfaW5mb19saXN0Xy5wdXNoX2JhY2sodGVzdF9pbmZvKTsKICAgdGVz
dF9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2luZGljZXNfLnNpemUo
KSkpOwogfQogCi0vLyBSdW5zIGV2ZXJ5IHRlc3QgaW4gdGhpcyBUZXN0Q2FzZS4KLXZvaWQgVGVz
dENhc2U6OlJ1bigpIHsKKy8vIFJ1bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4KK3Zv
aWQgVGVzdFN1aXRlOjpSdW4oKSB7CiAgIGlmICghc2hvdWxkX3J1bl8pIHJldHVybjsKIAogICBp
bnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0
SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2Nhc2UodGhpcyk7CisgIGltcGwtPnNl
dF9jdXJyZW50X3Rlc3Rfc3VpdGUodGhpcyk7CiAKICAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVh
dGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CiAK
KyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVz
dFN1aXRlU3RhcnQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3Rp
bGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwog
ICByZXBlYXRlci0+T25UZXN0Q2FzZVN0YXJ0KCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRl
cigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgIGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25zSW5N
ZXRob2RJZlN1cHBvcnRlZCgKLSAgICAgIHRoaXMsICZUZXN0Q2FzZTo6UnVuU2V0VXBUZXN0Q2Fz
ZSwgIlNldFVwVGVzdENhc2UoKSIpOworICAgICAgdGhpcywgJlRlc3RTdWl0ZTo6UnVuU2V0VXBU
ZXN0U3VpdGUsICJTZXRVcFRlc3RTdWl0ZSgpIik7CiAKLSAgY29uc3QgaW50ZXJuYWw6OlRpbWVJ
bk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgc3RhcnRfdGlt
ZXN0YW1wXyA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgaW50ZXJuYWw6OlRpbWVy
IHRpbWVyOwogICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX3Rlc3RfY291bnQoKTsgaSsrKSB7
CiAgICAgR2V0TXV0YWJsZVRlc3RJbmZvKGkpLT5SdW4oKTsKKyAgICBpZiAoR1RFU1RfRkxBRyhm
YWlsX2Zhc3QpICYmIEdldE11dGFibGVUZXN0SW5mbyhpKS0+cmVzdWx0KCktPkZhaWxlZCgpKSB7
CisgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCB0b3RhbF90ZXN0X2NvdW50KCk7IGorKykg
eworICAgICAgICBHZXRNdXRhYmxlVGVzdEluZm8oaiktPlNraXAoKTsKKyAgICAgIH0KKyAgICAg
IGJyZWFrOworICAgIH0KICAgfQotICBlbGFwc2VkX3RpbWVfID0gaW50ZXJuYWw6OkdldFRpbWVJ
bk1pbGxpcygpIC0gc3RhcnQ7CisgIGVsYXBzZWRfdGltZV8gPSB0aW1lci5FbGFwc2VkKCk7CiAK
ICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKICAg
aW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAotICAgICAgdGhp
cywgJlRlc3RDYXNlOjpSdW5UZWFyRG93blRlc3RDYXNlLCAiVGVhckRvd25UZXN0Q2FzZSgpIik7
CisgICAgICB0aGlzLCAmVGVzdFN1aXRlOjpSdW5UZWFyRG93blRlc3RTdWl0ZSwgIlRlYXJEb3du
VGVzdFN1aXRlKCkiKTsKIAorICAvLyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQSQor
ICByZXBlYXRlci0+T25UZXN0U3VpdGVFbmQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVw
cmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXwogICByZXBlYXRlci0+T25UZXN0Q2FzZUVuZCgqdGhpcyk7Ci0gIGltcGwt
PnNldF9jdXJyZW50X3Rlc3RfY2FzZShOVUxMKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUobnVs
bHB0cik7CiB9CiAKLS8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCi12b2lkIFRlc3RDYXNlOjpDbGVhclJlc3VsdCgpIHsKKy8vIFNraXBzIGFsbCB0
ZXN0cyB1bmRlciB0aGlzIFRlc3RTdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpTa2lwKCkgeworICBp
ZiAoIXNob3VsZF9ydW5fKSByZXR1cm47CisKKyAgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogY29u
c3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsKKyAgaW1wbC0+c2V0X2N1cnJl
bnRfdGVzdF9zdWl0ZSh0aGlzKTsKKworICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIgPSBV
bml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCkucmVwZWF0ZXIoKTsKKworICAvLyBD
YWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQSQorICByZXBlYXRlci0+T25UZXN0U3VpdGVT
dGFydCgqdGhpcyk7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFp
bGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHJlcGVh
dGVyLT5PblRlc3RDYXNlU3RhcnQoKnRoaXMpOworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF90ZXN0X2Nv
dW50KCk7IGkrKykgeworICAgIEdldE11dGFibGVUZXN0SW5mbyhpKS0+U2tpcCgpOworICB9CisK
KyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVz
dFN1aXRlRW5kKCp0aGlzKTsKKyAgLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGls
bCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisg
IHJlcGVhdGVyLT5PblRlc3RDYXNlRW5kKCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUo
bnVsbHB0cik7Cit9CisKKy8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhp
cyB0ZXN0IHN1aXRlLgordm9pZCBUZXN0U3VpdGU6OkNsZWFyUmVzdWx0KCkgewogICBhZF9ob2Nf
dGVzdF9yZXN1bHRfLkNsZWFyKCk7CiAgIEZvckVhY2godGVzdF9pbmZvX2xpc3RfLCBUZXN0SW5m
bzo6Q2xlYXJUZXN0UmVzdWx0KTsKIH0KIAotLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMg
dGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6U2h1ZmZsZVRlc3RzKGludGVybmFsOjpSYW5kb20q
IHJhbmRvbSkgeworLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK3Zv
aWQgVGVzdFN1aXRlOjpTaHVmZmxlVGVzdHMoaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tKSB7CiAg
IFNodWZmbGUocmFuZG9tLCAmdGVzdF9pbmRpY2VzXyk7CiB9CiAKIC8vIFJlc3RvcmVzIHRoZSB0
ZXN0IG9yZGVyIHRvIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KLXZvaWQgVGVzdENhc2U6OlVu
c2h1ZmZsZVRlc3RzKCkgewordm9pZCBUZXN0U3VpdGU6OlVuc2h1ZmZsZVRlc3RzKCkgewogICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfaW5kaWNlc18uc2l6ZSgpOyBpKyspIHsKICAgICB0
ZXN0X2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKICAgfQpAQCAtMjg1NSw5ICsz
MTAxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDb3VudChpbnQgdGVzdF9jb3Vu
dCkgewogICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2NvdW50LCAidGVzdCIsICJ0
ZXN0cyIpOwogfQogCi0vLyBGb3JtYXRzIHRoZSBjb3VudCBvZiB0ZXN0IGNhc2VzLgotc3RhdGlj
IHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3RfY2FzZV9jb3VudCkgewot
ICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2Nhc2VfY291bnQsICJ0ZXN0IGNhc2Ui
LCAidGVzdCBjYXNlcyIpOworLy8gRm9ybWF0cyB0aGUgY291bnQgb2YgdGVzdCBzdWl0ZXMuCitz
dGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0VGVzdFN1aXRlQ291bnQoaW50IHRlc3Rfc3VpdGVfY291
bnQpIHsKKyAgcmV0dXJuIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZV9jb3VudCwgInRl
c3Qgc3VpdGUiLCAidGVzdCBzdWl0ZXMiKTsKIH0KIAogLy8gQ29udmVydHMgYSBUZXN0UGFydFJl
c3VsdDo6VHlwZSBlbnVtIHRvIGh1bWFuLWZyaWVuZGx5IHN0cmluZwpAQCAtMjg2Niw2ICszMTEy
LDggQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3RfY2Fz
ZV9jb3VudCkgewogLy8gYmV0d2VlbiB0aGUgdHdvIHdoZW4gdmlld2luZyB0aGUgdGVzdCByZXN1
bHQuCiBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlwZVRvU3RyaW5nKFRlc3RQ
YXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBUZXN0
UGFydFJlc3VsdDo6a1NraXA6CisgICAgICByZXR1cm4gIlNraXBwZWRcbiI7CiAgICAgY2FzZSBU
ZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3M6CiAgICAgICByZXR1cm4gIlN1Y2Nlc3MiOwogCkBAIC0y
ODgyLDYgKzMxMzAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlwZVRv
U3RyaW5nKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKIH0KIAogbmFtZXNwYWNlIGludGVy
bmFsIHsKK25hbWVzcGFjZSB7CitlbnVtIGNsYXNzIEdUZXN0Q29sb3IgeyBrRGVmYXVsdCwga1Jl
ZCwga0dyZWVuLCBrWWVsbG93IH07Cit9ICAvLyBuYW1lc3BhY2UKIAogLy8gUHJpbnRzIGEgVGVz
dFBhcnRSZXN1bHQgdG8gYW4gc3RkOjpzdHJpbmcuCiBzdGF0aWMgc3RkOjpzdHJpbmcgUHJpbnRU
ZXN0UGFydFJlc3VsdFRvU3RyaW5nKApAQCAtMjkxMywyMyArMzE2NCwxOCBAQCBzdGF0aWMgdm9p
ZCBQcmludFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVz
dWx0KSB7CiB9CiAKIC8vIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgotCi1lbnVt
IEdUZXN0Q29sb3IgewotICBDT0xPUl9ERUZBVUxULAotICBDT0xPUl9SRUQsCi0gIENPTE9SX0dS
RUVOLAotICBDT0xPUl9ZRUxMT1cKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVT
VF9PU19XSU5ET1dTX01PQklMRSAmJiBcCiAgICAgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYg
IUdURVNUX09TX1dJTkRPV1NfUlQgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKIAogLy8gUmV0
dXJucyB0aGUgY2hhcmFjdGVyIGF0dHJpYnV0ZSBmb3IgdGhlIGdpdmVuIGNvbG9yLgogc3RhdGlj
IFdPUkQgR2V0Q29sb3JBdHRyaWJ1dGUoR1Rlc3RDb2xvciBjb2xvcikgewogICBzd2l0Y2ggKGNv
bG9yKSB7Ci0gICAgY2FzZSBDT0xPUl9SRUQ6ICAgIHJldHVybiBGT1JFR1JPVU5EX1JFRDsKLSAg
ICBjYXNlIENPTE9SX0dSRUVOOiAgcmV0dXJuIEZPUkVHUk9VTkRfR1JFRU47Ci0gICAgY2FzZSBD
T0xPUl9ZRUxMT1c6IHJldHVybiBGT1JFR1JPVU5EX1JFRCB8IEZPUkVHUk9VTkRfR1JFRU47Cisg
ICAgY2FzZSBHVGVzdENvbG9yOjprUmVkOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfUkVEOwor
ICAgIGNhc2UgR1Rlc3RDb2xvcjo6a0dyZWVuOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfR1JF
RU47CisgICAgY2FzZSBHVGVzdENvbG9yOjprWWVsbG93OgorICAgICAgcmV0dXJuIEZPUkVHUk9V
TkRfUkVEIHwgRk9SRUdST1VORF9HUkVFTjsKICAgICBkZWZhdWx0OiAgICAgICAgICAgcmV0dXJu
IDA7CiAgIH0KIH0KQEAgLTI5NjcsMjAgKzMyMTMsMjQgQEAgc3RhdGljIFdPUkQgR2V0TmV3Q29s
b3IoR1Rlc3RDb2xvciBjb2xvciwgV09SRCBvbGRfY29sb3JfYXR0cnMpIHsKIAogI2Vsc2UKIAot
Ly8gUmV0dXJucyB0aGUgQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gY29sb3IuICBDT0xP
Ul9ERUZBVUxUIGlzCisvLyBSZXR1cm5zIHRoZSBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZl
biBjb2xvci4gR1Rlc3RDb2xvcjo6a0RlZmF1bHQgaXMKIC8vIGFuIGludmFsaWQgaW5wdXQuCiBz
dGF0aWMgY29uc3QgY2hhciogR2V0QW5zaUNvbG9yQ29kZShHVGVzdENvbG9yIGNvbG9yKSB7CiAg
IHN3aXRjaCAoY29sb3IpIHsKLSAgICBjYXNlIENPTE9SX1JFRDogICAgIHJldHVybiAiMSI7Ci0g
ICAgY2FzZSBDT0xPUl9HUkVFTjogICByZXR1cm4gIjIiOwotICAgIGNhc2UgQ09MT1JfWUVMTE9X
OiAgcmV0dXJuICIzIjsKLSAgICBkZWZhdWx0OiAgICAgICAgICAgIHJldHVybiBOVUxMOwotICB9
OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1JlZDoKKyAgICAgIHJldHVybiAiMSI7CisgICAgY2Fz
ZSBHVGVzdENvbG9yOjprR3JlZW46CisgICAgICByZXR1cm4gIjIiOworICAgIGNhc2UgR1Rlc3RD
b2xvcjo6a1llbGxvdzoKKyAgICAgIHJldHVybiAiMyI7CisgICAgZGVmYXVsdDoKKyAgICAgIHJl
dHVybiBudWxscHRyOworICB9CiB9CiAKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAmJiAh
R1RFU1RfT1NfV0lORE9XU19NT0JJTEUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBHb29nbGUgVGVz
dCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0cHV0LgorLy8gUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIEdvb2dsZSBUZXN0IHNob3VsZCB1c2UgY29sb3JzIGluIHRoZSBvdXRwdXQuCiBi
b29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0X2lzX3R0eSkgewogICBjb25zdCBjaGFyKiBj
b25zdCBndGVzdF9jb2xvciA9IEdURVNUX0ZMQUcoY29sb3IpLmNfc3RyKCk7CiAKQEAgLTMwMjEs
MTkgKzMyNzEsMjAgQEAgYm9vbCBTaG91bGRVc2VDb2xvcihib29sIHN0ZG91dF9pc190dHkpIHsK
IC8vIGNhbm5vdCBzaW1wbHkgZW1pdCBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIGhhdmUgdGhlIHRl
cm1pbmFsIGNoYW5nZSBjb2xvcnMuCiAvLyBUaGlzIHJvdXRpbmUgbXVzdCBhY3R1YWxseSBlbWl0
IHRoZSBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHJldHVybiBhIHN0cmluZwogLy8gdGhhdCB3b3Vs
ZCBiZSBjb2xvcmVkIHdoZW4gcHJpbnRlZCwgYXMgY2FuIGJlIGRvbmUgb24gTGludXguCi1zdGF0
aWMgdm9pZCBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIqIGZtdCwg
Li4uKSB7CisKK0dURVNUX0FUVFJJQlVURV9QUklOVEZfKDIsIDMpCitzdGF0aWMgdm9pZCBDb2xv
cmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7CiAgIHZh
X2xpc3QgYXJnczsKICAgdmFfc3RhcnQoYXJncywgZm10KTsKIAotI2lmIEdURVNUX09TX1dJTkRP
V1NfTU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfWk9TIHx8IFwKLSAgICBH
VEVTVF9PU19JT1MgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dT
X1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfWk9TIHx8IEdURVNU
X09TX0lPUyB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5E
T1dTX1JUIHx8IGRlZmluZWQoRVNQX1BMQVRGT1JNKQogICBjb25zdCBib29sIHVzZV9jb2xvciA9
IEFsd2F5c0ZhbHNlKCk7CiAjZWxzZQogICBzdGF0aWMgY29uc3QgYm9vbCBpbl9jb2xvcl9tb2Rl
ID0KICAgICAgIFNob3VsZFVzZUNvbG9yKHBvc2l4OjpJc0FUVFkocG9zaXg6OkZpbGVObyhzdGRv
dXQpKSAhPSAwKTsKLSAgY29uc3QgYm9vbCB1c2VfY29sb3IgPSBpbl9jb2xvcl9tb2RlICYmIChj
b2xvciAhPSBDT0xPUl9ERUZBVUxUKTsKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJ
TEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBHVEVTVF9PU19aT1MKLSAgLy8gVGhlICchPSAwJyBj
b21wYXJpc29uIGlzIG5lY2Vzc2FyeSB0byBzYXRpc2Z5IE1TVkMgNy4xLgorICBjb25zdCBib29s
IHVzZV9jb2xvciA9IGluX2NvbG9yX21vZGUgJiYgKGNvbG9yICE9IEdUZXN0Q29sb3I6OmtEZWZh
dWx0KTsKKyNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfWk9T
CiAKICAgaWYgKCF1c2VfY29sb3IpIHsKICAgICB2cHJpbnRmKGZtdCwgYXJncyk7CkBAIC0zMDc5
LDE0ICszMzMwLDEzIEBAIHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgY29uc3QgY2hhciogY29uc3QgdHlwZV9w
YXJhbSA9IHRlc3RfaW5mby50eXBlX3BhcmFtKCk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVl
X3BhcmFtID0gdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCk7CiAKLSAgaWYgKHR5cGVfcGFyYW0gIT0g
TlVMTCB8fCB2YWx1ZV9wYXJhbSAhPSBOVUxMKSB7CisgIGlmICh0eXBlX3BhcmFtICE9IG51bGxw
dHIgfHwgdmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgewogICAgIHByaW50ZigiLCB3aGVyZSAiKTsK
LSAgICBpZiAodHlwZV9wYXJhbSAhPSBOVUxMKSB7CisgICAgaWYgKHR5cGVfcGFyYW0gIT0gbnVs
bHB0cikgewogICAgICAgcHJpbnRmKCIlcyA9ICVzIiwga1R5cGVQYXJhbUxhYmVsLCB0eXBlX3Bh
cmFtKTsKLSAgICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBOVUxMKQotICAgICAgICBwcmludGYoIiBh
bmQgIik7CisgICAgICBpZiAodmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgcHJpbnRmKCIgYW5kICIp
OwogICAgIH0KLSAgICBpZiAodmFsdWVfcGFyYW0gIT0gTlVMTCkgeworICAgIGlmICh2YWx1ZV9w
YXJhbSAhPSBudWxscHRyKSB7CiAgICAgICBwcmludGYoIiVzID0gJXMiLCBrVmFsdWVQYXJhbUxh
YmVsLCB2YWx1ZV9wYXJhbSk7CiAgICAgfQogICB9CkBAIC0zMDk4LDI3ICszMzQ4LDQwIEBAIHN0
YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50KGNvbnN0IFRlc3RJbmZvJiB0
ZXN0X2luZm8pIHsKIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBU
ZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgogICBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50
ZXIoKSB7fQotICBzdGF0aWMgdm9pZCBQcmludFRlc3ROYW1lKGNvbnN0IGNoYXIgKiB0ZXN0X2Nh
c2UsIGNvbnN0IGNoYXIgKiB0ZXN0KSB7Ci0gICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2FzZSwg
dGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50VGVzdE5hbWUoY29uc3QgY2hhciogdGVzdF9zdWl0
ZSwgY29uc3QgY2hhciogdGVzdCkgeworICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLCB0
ZXN0KTsKICAgfQogCiAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvdmVycmlkZSB3aGF0J3Mg
aW4gdGhlIFRlc3RFdmVudExpc3RlbmVyIGNsYXNzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJv
Z3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZv
aWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0
ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3Qg
VW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVw
RW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25U
ZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpOwotICB2aXJ0dWFsIHZvaWQg
T25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbyk7Ci0gIHZpcnR1YWwgdm9pZCBP
blRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOwotICB2aXJ0dWFs
IHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZv
aWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2
b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0
KTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQo
Y29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQorICB2
b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3Zl
cnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgdW5p
dF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlkZTsKKyAgdm9pZCBPbkVudmlyb25tZW50c1Nl
dFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25F
bnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJp
ZGUge30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQg
T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlOworI2Vs
c2UKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkg
b3ZlcnJpZGU7CisjZW5kaWYgIC8vIE9uVGVzdENhc2VTdGFydAorCisgIHZvaWQgT25UZXN0U3Rh
cnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGU7CisKKyAgdm9pZCBPblRlc3RQ
YXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOworICB2b2lk
IE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZTsKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZUVuZChj
b25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSBvdmVycmlkZTsKKyNlbHNlCisgIHZvaWQgT25UZXN0
U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSBvdmVycmlkZTsKKyNlbmRpZiAg
Ly8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7Cisg
IHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0UHJv
Z3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KIAogIHBy
aXZhdGU6CiAgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5pdFRlc3QmIHVu
aXRfdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdFN1aXRlcyhjb25zdCBVbml0
VGVzdCYgdW5pdF90ZXN0KTsKKyAgc3RhdGljIHZvaWQgUHJpbnRTa2lwcGVkVGVzdHMoY29uc3Qg
VW5pdFRlc3QmIHVuaXRfdGVzdCk7CiB9OwogCiAgIC8vIEZpcmVkIGJlZm9yZSBlYWNoIGl0ZXJh
dGlvbiBvZiB0ZXN0cyBzdGFydHMuCkBAIC0zMTMyLDU0ICszMzk1LDY5IEBAIHZvaWQgUHJldHR5
VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25TdGFydCgKICAgLy8gUHJpbnRz
IHRoZSBmaWx0ZXIgaWYgaXQncyBub3QgKi4gIFRoaXMgcmVtaW5kcyB0aGUgdXNlciB0aGF0IHNv
bWUKICAgLy8gdGVzdHMgbWF5IGJlIHNraXBwZWQuCiAgIGlmICghU3RyaW5nOjpDU3RyaW5nRXF1
YWxzKGZpbHRlciwga1VuaXZlcnNhbEZpbHRlcikpIHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9S
X1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJOb3RlOiAlcyBmaWx0ZXIgPSAlc1xuIiwgR1RF
U1RfTkFNRV8sIGZpbHRlcik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprWWVsbG93
LCAiTm90ZTogJXMgZmlsdGVyID0gJXNcbiIsIEdURVNUX05BTUVfLAorICAgICAgICAgICAgICAg
ICAgZmlsdGVyKTsKICAgfQogCiAgIGlmIChpbnRlcm5hbDo6U2hvdWxkU2hhcmQoa1Rlc3RUb3Rh
bFNoYXJkcywga1Rlc3RTaGFyZEluZGV4LCBmYWxzZSkpIHsKLSAgICBjb25zdCBJbnQzMiBzaGFy
ZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOwotICAgIENv
bG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIk5vdGU6IFRoaXMg
aXMgdGVzdCBzaGFyZCAlZCBvZiAlcy5cbiIsCisgICAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRl
eCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOworICAgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIk5vdGU6IFRoaXMgaXMgdGVzdCBzaGFyZCAlZCBv
ZiAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHNoYXJkX2luZGV4
KSArIDEsCiAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6cG9zaXg6OkdldEVudihrVGVzdFRv
dGFsU2hhcmRzKSk7CiAgIH0KIAogICBpZiAoR1RFU1RfRkxBRyhzaHVmZmxlKSkgewotICAgIENv
bG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAorICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6
a1llbGxvdywKICAgICAgICAgICAgICAgICAgICJOb3RlOiBSYW5kb21pemluZyB0ZXN0cycgb3Jk
ZXJzIHdpdGggYSBzZWVkIG9mICVkIC5cbiIsCiAgICAgICAgICAgICAgICAgICB1bml0X3Rlc3Qu
cmFuZG9tX3NlZWQoKSk7CiAgIH0KIAotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAgIls9
PT09PT09PT09XSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbPT09
PT09PT09PV0gIik7CiAgIHByaW50ZigiUnVubmluZyAlcyBmcm9tICVzLlxuIiwKICAgICAgICAg
IEZvcm1hdFRlc3RDb3VudCh1bml0X3Rlc3QudGVzdF90b19ydW5fY291bnQoKSkuY19zdHIoKSwK
LSAgICAgICAgIEZvcm1hdFRlc3RDYXNlQ291bnQodW5pdF90ZXN0LnRlc3RfY2FzZV90b19ydW5f
Y291bnQoKSkuY19zdHIoKSk7CisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0X3Rl
c3QudGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSkuY19zdHIoKSk7CiAgIGZmbHVzaChzdGRvdXQp
OwogfQogCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0KAogICAgIGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gIENvbG9y
ZWRQcmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0tLS0tLS1dICIpOworICBDb2xvcmVkUHJpbnRm
KEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKICAgcHJpbnRmKCJHbG9iYWwg
dGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuXG4iKTsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKKyNp
Zm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiB2b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nh
c2UpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KICAgICAgIEZvcm1hdENvdW50YWJs
ZU5vdW4odGVzdF9jYXNlLnRlc3RfdG9fcnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7Ci0g
IENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICJbLS0tLS0tLS0tLV0gIik7CisgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOwogICBwcmludGYoIiVz
IGZyb20gJXMiLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSk7Ci0gIGlmICh0ZXN0
X2Nhc2UudHlwZV9wYXJhbSgpID09IE5VTEwpIHsKKyAgaWYgKHRlc3RfY2FzZS50eXBlX3BhcmFt
KCkgPT0gbnVsbHB0cikgewogICAgIHByaW50ZigiXG4iKTsKICAgfSBlbHNlIHsKICAgICBwcmlu
dGYoIiwgd2hlcmUgJXMgPSAlc1xuIiwga1R5cGVQYXJhbUxhYmVsLCB0ZXN0X2Nhc2UudHlwZV9w
YXJhbSgpKTsKICAgfQogICBmZmx1c2goc3Rkb3V0KTsKIH0KKyNlbHNlCit2b2lkIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3VpdGVTdGFydCgKKyAgICBjb25zdCBUZXN0U3Vp
dGUmIHRlc3Rfc3VpdGUpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KKyAgICAgIEZv
cm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIs
ICJ0ZXN0cyIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0t
LS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzIiwgY291bnRzLmNfc3RyKCksIHRlc3Rfc3Vp
dGUubmFtZSgpKTsKKyAgaWYgKHRlc3Rfc3VpdGUudHlwZV9wYXJhbSgpID09IG51bGxwdHIpIHsK
KyAgICBwcmludGYoIlxuIik7CisgIH0gZWxzZSB7CisgICAgcHJpbnRmKCIsIHdoZXJlICVzID0g
JXNcbiIsIGtUeXBlUGFyYW1MYWJlbCwgdGVzdF9zdWl0ZS50eXBlX3BhcmFtKCkpOworICB9Cisg
IGZmbHVzaChzdGRvdXQpOworfQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KIAogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0YXJ0
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVF
TiwgICJbIFJVTiAgICAgIF0gIik7Ci0gIFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRlc3RfY2Fz
ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6
OmtHcmVlbiwgIlsgUlVOICAgICAgXSAiKTsKKyAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVz
dF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwogICBwcmludGYoIlxuIik7CiAgIGZm
bHVzaChzdGRvdXQpOwogfQpAQCAtMzE4NywyMiArMzQ2NSwyNyBAQCB2b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykg
ewogLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlvbiBmYWlsdXJlLgogdm9pZCBQcmV0dHlVbml0
VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFBhcnRSZXN1bHQoCiAgICAgY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIHJlc3VsdCkgewotICAvLyBJZiB0aGUgdGVzdCBwYXJ0IHN1Y2NlZWRlZCwgd2UgZG9u
J3QgbmVlZCB0byBkbyBhbnl0aGluZy4KLSAgaWYgKHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRS
ZXN1bHQ6OmtTdWNjZXNzKQotICAgIHJldHVybjsKLQotICAvLyBQcmludCBmYWlsdXJlIG1lc3Nh
Z2UgZnJvbSB0aGUgYXNzZXJ0aW9uIChlLmcuIGV4cGVjdGVkIHRoaXMgYW5kIGdvdCB0aGF0KS4K
LSAgUHJpbnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwotICBmZmx1c2goc3Rkb3V0KTsKKyAgc3dp
dGNoIChyZXN1bHQudHlwZSgpKSB7CisgICAgLy8gSWYgdGhlIHRlc3QgcGFydCBzdWNjZWVkZWQs
IHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgY2FzZSBUZXN0UGFydFJlc3VsdDo6
a1N1Y2Nlc3M6CisgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgIC8vIFByaW50IGZh
aWx1cmUgbWVzc2FnZSBmcm9tIHRoZSBhc3NlcnRpb24KKyAgICAgIC8vIChlLmcuIGV4cGVjdGVk
IHRoaXMgYW5kIGdvdCB0aGF0KS4KKyAgICAgIFByaW50VGVzdFBhcnRSZXN1bHQocmVzdWx0KTsK
KyAgICAgIGZmbHVzaChzdGRvdXQpOworICB9CiB9CiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1
bHRQcmludGVyOjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBpZiAo
dGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkgewotICAgIENvbG9yZWRQcmludGYoQ09MT1Jf
R1JFRU4sICJbICAgICAgIE9LIF0gIik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjpr
R3JlZW4sICJbICAgICAgIE9LIF0gIik7CisgIH0gZWxzZSBpZiAodGVzdF9pbmZvLnJlc3VsdCgp
LT5Ta2lwcGVkKCkpIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlsg
IFNLSVBQRUQgXSAiKTsKICAgfSBlbHNlIHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwg
IlsgIEZBSUxFRCAgXSAiKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJb
ICBGQUlMRUQgIF0gIik7CiAgIH0KLSAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVzdF9jYXNl
X25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgIFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRl
c3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKICAgaWYgKHRlc3RfaW5mby5yZXN1
bHQoKS0+RmFpbGVkKCkpCiAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQodGVzdF9p
bmZvKTsKIApAQCAtMzIxNSwyMSArMzQ5OCwzMyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0
UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgZmZsdXNo
KHN0ZG91dCk7CiB9CiAKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElf
CiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZUVuZChjb25zdCBU
ZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CiAgIGlmICghR1RFU1RfRkxBRyhwcmludF90aW1lKSkgcmV0
dXJuOwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9CiAgICAgICBGb3JtYXRDb3VudGFi
bGVOb3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIpOwot
ICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAiWy0tLS0tLS0tLS1dICIpOwotICBwcmludGYo
IiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLAotICAgICAgICAgY291bnRzLmNfc3RyKCks
IHRlc3RfY2FzZS5uYW1lKCksCisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAi
Wy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4i
LCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSwKICAgICAgICAgIGludGVybmFsOjpT
dHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsKICAg
ZmZsdXNoKHN0ZG91dCk7CiB9CisjZWxzZQordm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50
ZXI6Ok9uVGVzdFN1aXRlRW5kKGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgeworICBpZiAo
IUdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHJldHVybjsKKworICBjb25zdCBzdGQ6OnN0cmluZyBj
b3VudHMgPQorICAgICAgRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X3N1aXRlLnRlc3RfdG9fcnVu
X2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6
a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRv
dGFsKVxuXG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9zdWl0ZS5uYW1lKCksCisgICAgICAgICBp
bnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkpLmNf
c3RyKCkpOworICBmZmx1c2goc3Rkb3V0KTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpP
bkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoCiAgICAgY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90
ZXN0Ki8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbLS0tLS0tLS0tLV0gIik7
CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOwog
ICBwcmludGYoIkdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93blxuIik7CiAgIGZmbHVz
aChzdGRvdXQpOwogfQpAQCAtMzIzNywyMyArMzUzMiw3MCBAQCB2b2lkIFByZXR0eVVuaXRUZXN0
UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KAogLy8gSW50ZXJuYWwg
aGVscGVyIGZvciBwcmludGluZyB0aGUgbGlzdCBvZiBmYWlsZWQgdGVzdHMuCiB2b2lkIFByZXR0
eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0KSB7CiAgIGNvbnN0IGludCBmYWlsZWRfdGVzdF9jb3VudCA9IHVuaXRfdGVzdC5m
YWlsZWRfdGVzdF9jb3VudCgpOwotICBpZiAoZmFpbGVkX3Rlc3RfY291bnQgPT0gMCkgeworICBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CisgIHByaW50
ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChmYWlsZWRfdGVzdF9jb3Vu
dCkuY19zdHIoKSk7CisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVz
dF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUg
PSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKKyAgICBpZiAoIXRlc3Rfc3VpdGUuc2hvdWxk
X3J1bigpIHx8ICh0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0X2NvdW50KCkgPT0gMCkpIHsKKyAgICAg
IGNvbnRpbnVlOworICAgIH0KKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUudG90
YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8g
PSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsKKyAgICAgIGlmICghdGVzdF9pbmZvLnNob3Vs
ZF9ydW4oKSB8fCAhdGVzdF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgICAgICBjb250
aW51ZTsKKyAgICAgIH0KKyAgICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwgIlsg
IEZBSUxFRCAgXSAiKTsKKyAgICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLm5hbWUoKSwg
dGVzdF9pbmZvLm5hbWUoKSk7CisgICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2VudCh0
ZXN0X2luZm8pOworICAgICAgcHJpbnRmKCJcbiIpOworICAgIH0KKyAgfQorICBwcmludGYoIlxu
JTJkIEZBSUxFRCAlc1xuIiwgZmFpbGVkX3Rlc3RfY291bnQsCisgICAgICAgICBmYWlsZWRfdGVz
dF9jb3VudCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7Cit9CisKKy8vIEludGVybmFsIGhlbHBl
ciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2YgdGVzdCBzdWl0ZSBmYWlsdXJlcyBub3QgY292ZXJl
ZCBieQorLy8gUHJpbnRGYWlsZWRUZXN0cy4KK3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmlu
dGVyOjpQcmludEZhaWxlZFRlc3RTdWl0ZXMoCisgICAgY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVz
dCkgeworICBpbnQgc3VpdGVfZmFpbHVyZV9jb3VudCA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBp
IDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgY29uc3Qg
VGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7CisgICAg
aWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSkgeworICAgICAgY29udGludWU7CisgICAgfQor
ICAgIGlmICh0ZXN0X3N1aXRlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLkZhaWxlZCgpKSB7CisgICAg
ICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CisgICAg
ICBwcmludGYoIiVzOiBTZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93blRlc3RTdWl0ZVxuIiwgdGVz
dF9zdWl0ZS5uYW1lKCkpOworICAgICAgKytzdWl0ZV9mYWlsdXJlX2NvdW50OworICAgIH0KKyAg
fQorICBpZiAoc3VpdGVfZmFpbHVyZV9jb3VudCA+IDApIHsKKyAgICBwcmludGYoIlxuJTJkIEZB
SUxFRCBURVNUICVzXG4iLCBzdWl0ZV9mYWlsdXJlX2NvdW50LAorICAgICAgICAgICBzdWl0ZV9m
YWlsdXJlX2NvdW50ID09IDEgPyAiU1VJVEUiIDogIlNVSVRFUyIpOworICB9Cit9CisKKy8vIElu
dGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2Ygc2tpcHBlZCB0ZXN0cy4KK3Zv
aWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludFNraXBwZWRUZXN0cyhjb25zdCBV
bml0VGVzdCYgdW5pdF90ZXN0KSB7CisgIGNvbnN0IGludCBza2lwcGVkX3Rlc3RfY291bnQgPSB1
bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlmIChza2lwcGVkX3Rlc3RfY291bnQg
PT0gMCkgewogICAgIHJldHVybjsKICAgfQogCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90
ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSYg
dGVzdF9jYXNlID0gKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICBpZiAoIXRlc3RfY2Fz
ZS5zaG91bGRfcnVuKCkgfHwgKHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpID09IDApKSB7
CisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQo
KTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5H
ZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSB8fCAodGVz
dF9zdWl0ZS5za2lwcGVkX3Rlc3RfY291bnQoKSA9PSAwKSkgewogICAgICAgY29udGludWU7CiAg
ICAgfQotICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291bnQo
KTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3RfY2FzZS5H
ZXRUZXN0SW5mbyhqKTsKLSAgICAgIGlmICghdGVzdF9pbmZvLnNob3VsZF9ydW4oKSB8fCB0ZXN0
X2luZm8ucmVzdWx0KCktPlBhc3NlZCgpKSB7CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0
X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7CisgICAgICBjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvID0gKnRlc3Rfc3VpdGUuR2V0VGVzdEluZm8oaik7CisgICAgICBpZiAoIXRlc3Rf
aW5mby5zaG91bGRfcnVuKCkgfHwgIXRlc3RfaW5mby5yZXN1bHQoKS0+U2tpcHBlZCgpKSB7CiAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgfQotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQs
ICJbICBGQUlMRUQgIF0gIik7Ci0gICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9jYXNlLm5hbWUo
KSwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2Vu
dCh0ZXN0X2luZm8pOworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJb
ICBTS0lQUEVEIF0gIik7CisgICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9zdWl0ZS5uYW1lKCks
IHRlc3RfaW5mby5uYW1lKCkpOwogICAgICAgcHJpbnRmKCJcbiIpOwogICAgIH0KICAgfQpAQCAt
MzI2MSwzNyArMzYwMywzNyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJp
bnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CiAKIHZvaWQgUHJldHR5
VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVF
TiwgICJbPT09PT09PT09PV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWz09PT09PT09PT1dICIpOwogICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCiAgICAgICAg
ICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCks
Ci0gICAgICAgICBGb3JtYXRUZXN0Q2FzZUNvdW50KHVuaXRfdGVzdC50ZXN0X2Nhc2VfdG9fcnVu
X2NvdW50KCkpLmNfc3RyKCkpOworICAgICAgICAgRm9ybWF0VGVzdFN1aXRlQ291bnQodW5pdF90
ZXN0LnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOwogICBpZiAoR1RFU1RfRkxB
RyhwcmludF90aW1lKSkgewogICAgIHByaW50ZigiICglcyBtcyB0b3RhbCkiLAogICAgICAgICAg
ICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUoKSku
Y19zdHIoKSk7CiAgIH0KICAgcHJpbnRmKCJcbiIpOwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dS
RUVOLCAgIlsgIFBBU1NFRCAgXSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3Jl
ZW4sICJbICBQQVNTRUQgIF0gIik7CiAgIHByaW50ZigiJXMuXG4iLCBGb3JtYXRUZXN0Q291bnQo
dW5pdF90ZXN0LnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKS5jX3N0cigpKTsKIAotICBpbnQgbnVt
X2ZhaWx1cmVzID0gdW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7CisgIGNvbnN0IGludCBz
a2lwcGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlm
IChza2lwcGVkX3Rlc3RfY291bnQgPiAwKSB7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9y
OjprR3JlZW4sICJbICBTS0lQUEVEIF0gIik7CisgICAgcHJpbnRmKCIlcywgbGlzdGVkIGJlbG93
OlxuIiwgRm9ybWF0VGVzdENvdW50KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CisgICAg
UHJpbnRTa2lwcGVkVGVzdHModW5pdF90ZXN0KTsKKyAgfQorCiAgIGlmICghdW5pdF90ZXN0LlBh
c3NlZCgpKSB7Ci0gICAgY29uc3QgaW50IGZhaWxlZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0LmZh
aWxlZF90ZXN0X2NvdW50KCk7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsICAiWyAgRkFJ
TEVEICBdICIpOwotICAgIHByaW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RD
b3VudChmYWlsZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CiAgICAgUHJpbnRGYWlsZWRUZXN0cyh1
bml0X3Rlc3QpOwotICAgIHByaW50ZigiXG4lMmQgRkFJTEVEICVzXG4iLCBudW1fZmFpbHVyZXMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBudW1fZmFpbHVyZXMgPT0gMSA/ICJURVNUIiA6ICJU
RVNUUyIpOworICAgIFByaW50RmFpbGVkVGVzdFN1aXRlcyh1bml0X3Rlc3QpOwogICB9CiAKICAg
aW50IG51bV9kaXNhYmxlZCA9IHVuaXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291
bnQoKTsKICAgaWYgKG51bV9kaXNhYmxlZCAmJiAhR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxl
ZF90ZXN0cykpIHsKLSAgICBpZiAoIW51bV9mYWlsdXJlcykgeworICAgIGlmICh1bml0X3Rlc3Qu
UGFzc2VkKCkpIHsKICAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBhIHNwYWNlciBpZiBubyBG
QUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCiAgICAgfQotICAgIENvbG9yZWRQcmludGYoQ09M
T1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQgJXNc
blxuIiwKLSAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwKLSAgICAgICAgICAgICAgICAg
IG51bV9kaXNhYmxlZCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7CisgICAgQ29sb3JlZFByaW50
ZihHVGVzdENvbG9yOjprWWVsbG93LCAiICBZT1UgSEFWRSAlZCBESVNBQkxFRCAlc1xuXG4iLAor
ICAgICAgICAgICAgICAgICAgbnVtX2Rpc2FibGVkLCBudW1fZGlzYWJsZWQgPT0gMSA/ICJURVNU
IiA6ICJURVNUUyIpOwogICB9CiAgIC8vIEVuc3VyZSB0aGF0IEdvb2dsZSBUZXN0IG91dHB1dCBp
cyBwcmludGVkIGJlZm9yZSwgZS5nLiwgaGVhcGNoZWNrZXIgb3V0cHV0LgogICBmZmx1c2goc3Rk
b3V0KTsKQEAgLTMyOTksMTMgKzM2NDEsMTE3IEBAIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKIAog
Ly8gRW5kIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgogCisvLyBUaGlzIGNsYXNzIGltcGxl
bWVudHMgdGhlIFRlc3RFdmVudExpc3RlbmVyIGludGVyZmFjZS4KKy8vCisvLyBDbGFzcyBCcmll
ZlVuaXRUZXN0UmVzdWx0UHJpbnRlciBpcyBjb3B5YWJsZS4KK2NsYXNzIEJyaWVmVW5pdFRlc3RS
ZXN1bHRQcmludGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIEJy
aWVmVW5pdFRlc3RSZXN1bHRQcmludGVyKCkge30KKyAgc3RhdGljIHZvaWQgUHJpbnRUZXN0TmFt
ZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlLCBjb25zdCBjaGFyKiB0ZXN0KSB7CisgICAgcHJpbnRm
KCIlcy4lcyIsIHRlc3Rfc3VpdGUsIHRlc3QpOworICB9CisKKyAgLy8gVGhlIGZvbGxvd2luZyBt
ZXRob2RzIG92ZXJyaWRlIHdoYXQncyBpbiB0aGUgVGVzdEV2ZW50TGlzdGVuZXIgY2xhc3MuCisg
IHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBv
dmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAv
KnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlv
biovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBV
bml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50
c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorI2lm
bmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNl
U3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZWxzZQor
ICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykg
b3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gT25UZXN0Q2FzZVN0YXJ0CisKKyAgdm9pZCBPblRlc3RT
dGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUge30KKworICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7
CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlOwor
I2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RD
YXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2Vsc2UK
KyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBv
dmVycmlkZSB7fQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5k
KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVz
dEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBv
dmVycmlkZTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRf
dGVzdCovKSBvdmVycmlkZSB7fQorfTsKKworLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlvbiBm
YWlsdXJlLgordm9pZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0UGFydFJlc3Vs
dCgKKyAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7CisgIHN3aXRjaCAocmVzdWx0
LnR5cGUoKSkgeworICAgIC8vIElmIHRoZSB0ZXN0IHBhcnQgc3VjY2VlZGVkLCB3ZSBkb24ndCBu
ZWVkIHRvIGRvIGFueXRoaW5nLgorICAgIGNhc2UgVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzOgor
ICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAvLyBQcmludCBmYWlsdXJlIG1lc3Nh
Z2UgZnJvbSB0aGUgYXNzZXJ0aW9uCisgICAgICAvLyAoZS5nLiBleHBlY3RlZCB0aGlzIGFuZCBn
b3QgdGhhdCkuCisgICAgICBQcmludFRlc3RQYXJ0UmVzdWx0KHJlc3VsdCk7CisgICAgICBmZmx1
c2goc3Rkb3V0KTsKKyAgfQorfQorCit2b2lkIEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVyOjpP
blRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICBpZiAodGVzdF9pbmZvLnJl
c3VsdCgpLT5GYWlsZWQoKSkgeworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwg
IlsgIEZBSUxFRCAgXSAiKTsKKyAgICBQcmludFRlc3ROYW1lKHRlc3RfaW5mby50ZXN0X3N1aXRl
X25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlBy
ZXNlbnQodGVzdF9pbmZvKTsKKworICAgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7Cisg
ICAgICBwcmludGYoIiAoJXMgbXMpXG4iLAorICAgICAgICAgICAgIGludGVybmFsOjpTdHJlYW1h
YmxlVG9TdHJpbmcodGVzdF9pbmZvLnJlc3VsdCgpLT5lbGFwc2VkX3RpbWUoKSkKKyAgICAgICAg
ICAgICAgICAgLmNfc3RyKCkpOworICAgIH0gZWxzZSB7CisgICAgICBwcmludGYoIlxuIik7Cisg
ICAgfQorICAgIGZmbHVzaChzdGRvdXQpOworICB9Cit9CisKK3ZvaWQgQnJpZWZVbml0VGVzdFJl
c3VsdFByaW50ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAvKml0ZXJhdGlvbiovKSB7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAi
Wz09PT09PT09PT1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCisgICAgICAgICBG
b3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCksCisg
ICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0X3Rlc3QudGVzdF9zdWl0ZV90b19ydW5f
Y291bnQoKSkuY19zdHIoKSk7CisgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7CisgICAg
cHJpbnRmKCIgKCVzIG1zIHRvdGFsKSIsCisgICAgICAgICAgIGludGVybmFsOjpTdHJlYW1hYmxl
VG9TdHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsKKyAgfQorICBwcmlu
dGYoIlxuIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWyAgUEFTU0VE
ICBdICIpOworICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC5zdWNj
ZXNzZnVsX3Rlc3RfY291bnQoKSkuY19zdHIoKSk7CisKKyAgY29uc3QgaW50IHNraXBwZWRfdGVz
dF9jb3VudCA9IHVuaXRfdGVzdC5za2lwcGVkX3Rlc3RfY291bnQoKTsKKyAgaWYgKHNraXBwZWRf
dGVzdF9jb3VudCA+IDApIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwg
IlsgIFNLSVBQRUQgXSAiKTsKKyAgICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50KHNr
aXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CisgIH0KKworICBpbnQgbnVtX2Rpc2FibGVkID0g
dW5pdF90ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpOworICBpZiAobnVtX2Rp
c2FibGVkICYmICFHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSkgeworICAgIGlm
ICh1bml0X3Rlc3QuUGFzc2VkKCkpIHsKKyAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBhIHNw
YWNlciBpZiBubyBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCisgICAgfQorICAgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQgJXNc
blxuIiwKKyAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwgbnVtX2Rpc2FibGVkID09IDEg
PyAiVEVTVCIgOiAiVEVTVFMiKTsKKyAgfQorICAvLyBFbnN1cmUgdGhhdCBHb29nbGUgVGVzdCBv
dXRwdXQgaXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4sIGhlYXBjaGVja2VyIG91dHB1dC4KKyAgZmZs
dXNoKHN0ZG91dCk7Cit9CisKKy8vIEVuZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcgorCiAv
LyBjbGFzcyBUZXN0RXZlbnRSZXBlYXRlcgogLy8KIC8vIFRoaXMgY2xhc3MgZm9yd2FyZHMgZXZl
bnRzIHRvIG90aGVyIGV2ZW50IGxpc3RlbmVycy4KIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDog
cHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6CiAgIFRlc3RFdmVudFJlcGVhdGVy
KCkgOiBmb3J3YXJkaW5nX2VuYWJsZWRfKHRydWUpIHt9Ci0gIHZpcnR1YWwgflRlc3RFdmVudFJl
cGVhdGVyKCk7CisgIH5UZXN0RXZlbnRSZXBlYXRlcigpIG92ZXJyaWRlOwogICB2b2lkIEFwcGVu
ZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIpOwogICBUZXN0RXZlbnRMaXN0ZW5lciogUmVs
ZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpOwogCkBAIC0zMzE0LDE5ICszNzYwLDI3
IEBAIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsK
ICAgYm9vbCBmb3J3YXJkaW5nX2VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmb3J3YXJkaW5nX2Vu
YWJsZWRfOyB9CiAgIHZvaWQgc2V0X2ZvcndhcmRpbmdfZW5hYmxlZChib29sIGVuYWJsZSkgeyBm
b3J3YXJkaW5nX2VuYWJsZWRfID0gZW5hYmxlOyB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFBy
b2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9u
VGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRp
b24pOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChj
b25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFy
dChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENh
c2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmly
b25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1
YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rl
c3QpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQo
Y29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRlcmF0
aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJp
ZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVk
IGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgcGFyYW1ldGVy
KSBvdmVycmlkZTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiBwYXJhbWV0ZXIpIG92
ZXJyaWRlOworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92
ZXJyaWRlOworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJl
c3VsdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2lu
Zm8pIG92ZXJyaWRlOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZh
aWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2b2lk
IE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHBhcmFtZXRlcikgb3ZlcnJpZGU7CisjZW5k
aWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RT
dWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIHBhcmFtZXRlcikgb3ZlcnJpZGU7CisgIHZvaWQgT25F
bnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJy
aWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIHVu
aXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFBy
b2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CiAKICBwcml2YXRl
OgogICAvLyBDb250cm9scyB3aGV0aGVyIGV2ZW50cyB3aWxsIGJlIGZvcndhcmRlZCB0byBsaXN0
ZW5lcnNfLiBTZXQgdG8gZmFsc2UKQEAgLTMzNDYsMTYgKzM4MDAsMTUgQEAgdm9pZCBUZXN0RXZl
bnRSZXBlYXRlcjo6QXBwZW5kKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikgewogICBsaXN0
ZW5lcnNfLnB1c2hfYmFjayhsaXN0ZW5lcik7CiB9CiAKLS8vIEZJWE1FOiBGYWN0b3IgdGhlIHNl
YXJjaCBmdW5jdGlvbmFsaXR5IGludG8gVmVjdG9yOjpGaW5kLgogVGVzdEV2ZW50TGlzdGVuZXIq
IFRlc3RFdmVudFJlcGVhdGVyOjpSZWxlYXNlKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikg
ewogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc18uc2l6ZSgpOyArK2kpIHsKICAg
ICBpZiAobGlzdGVuZXJzX1tpXSA9PSBsaXN0ZW5lcikgewotICAgICAgbGlzdGVuZXJzXy5lcmFz
ZShsaXN0ZW5lcnNfLmJlZ2luKCkgKyBpKTsKKyAgICAgIGxpc3RlbmVyc18uZXJhc2UobGlzdGVu
ZXJzXy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50PihpKSk7CiAgICAgICByZXR1cm4gbGlzdGVu
ZXI7CiAgICAgfQogICB9CiAKLSAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBudWxscHRyOwogfQog
CiAvLyBTaW5jZSBtb3N0IG1ldGhvZHMgYXJlIHZlcnkgc2ltaWxhciwgdXNlIG1hY3JvcyB0byBy
ZWR1Y2UgYm9pbGVycGxhdGUuCkBAIC0zMzcwLDI1ICszODIzLDMzIEBAIHZvaWQgVGVzdEV2ZW50
UmVwZWF0ZXI6Ok5hbWUoY29uc3QgVHlwZSYgcGFyYW1ldGVyKSB7IFwKIH0KIC8vIFRoaXMgZGVm
aW5lcyBhIG1lbWJlciB0aGF0IGZvcndhcmRzIHRoZSBjYWxsIHRvIGFsbCBsaXN0ZW5lcnMgaW4g
cmV2ZXJzZQogLy8gb3JkZXIuCi0jZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9E
XyhOYW1lLCBUeXBlKSBcCi12b2lkIFRlc3RFdmVudFJlcGVhdGVyOjpOYW1lKGNvbnN0IFR5cGUm
IHBhcmFtZXRlcikgeyBcCi0gIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7IFwKLSAgICBmb3Ig
KGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihsaXN0ZW5lcnNfLnNpemUoKSkgLSAxOyBpID49IDA7
IGktLSkgeyBcCi0gICAgICBsaXN0ZW5lcnNfW2ldLT5OYW1lKHBhcmFtZXRlcik7IFwKLSAgICB9
IFwKLSAgfSBcCi19CisjZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhOYW1l
LCBUeXBlKSAgICAgIFwKKyAgdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6TmFtZShjb25zdCBUeXBl
JiBwYXJhbWV0ZXIpIHsgXAorICAgIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICBmb3IgKHNpemVfdCBpID0gbGlzdGVuZXJzXy5zaXpl
KCk7IGkgIT0gMDsgaS0tKSB7IFwKKyAgICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk5hbWUocGFy
YW1ldGVyKTsgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiBHVEVTVF9SRVBFQVRFUl9NRVRIT0Rf
KE9uVGVzdFByb2dyYW1TdGFydCwgVW5pdFRlc3QpCiBHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9u
RW52aXJvbm1lbnRzU2V0VXBTdGFydCwgVW5pdFRlc3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRIT0Rf
KE9uVGVzdENhc2VTdGFydCwgVGVzdENhc2UpCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVk
IGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCitHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdFN1aXRl
KQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCitHVEVTVF9S
RVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN1aXRlU3RhcnQsIFRlc3RTdWl0ZSkKIEdURVNUX1JFUEVB
VEVSX01FVEhPRF8oT25UZXN0U3RhcnQsIFRlc3RJbmZvKQogR1RFU1RfUkVQRUFURVJfTUVUSE9E
XyhPblRlc3RQYXJ0UmVzdWx0LCBUZXN0UGFydFJlc3VsdCkKIEdURVNUX1JFUEVBVEVSX01FVEhP
RF8oT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0LCBVbml0VGVzdCkKIEdURVNUX1JFVkVSU0Vf
UkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1NldFVwRW5kLCBVbml0VGVzdCkKIEdURVNU
X1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1RlYXJEb3duRW5kLCBVbml0
VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RFbmQsIFRlc3RJbmZv
KQotR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RDYXNl
KQorLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZu
ZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9SRVBF
QVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RTdWl0ZSkKKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdFN1aXRlRW5kLCBUZXN0U3VpdGUpCiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01F
VEhPRF8oT25UZXN0UHJvZ3JhbUVuZCwgVW5pdFRlc3QpCiAKICN1bmRlZiBHVEVTVF9SRVBFQVRF
Ul9NRVRIT0RfCkBAIC0zNDA2LDggKzM4NjcsOCBAQCB2b2lkIFRlc3RFdmVudFJlcGVhdGVyOjpP
blRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LAogdm9pZCBUZXN0
RXZlbnRSZXBlYXRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rl
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJh
dGlvbikgewogICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgewotICAgIGZvciAoaW50IGkgPSBz
dGF0aWNfY2FzdDxpbnQ+KGxpc3RlbmVyc18uc2l6ZSgpKSAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0g
ICAgICBsaXN0ZW5lcnNfW2ldLT5PblRlc3RJdGVyYXRpb25FbmQodW5pdF90ZXN0LCBpdGVyYXRp
b24pOworICAgIGZvciAoc2l6ZV90IGkgPSBsaXN0ZW5lcnNfLnNpemUoKTsgaSA+IDA7IGktLSkg
eworICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk9uVGVzdEl0ZXJhdGlvbkVuZCh1bml0X3Rlc3Qs
IGl0ZXJhdGlvbik7CiAgICAgfQogICB9CiB9CkBAIC0zNDE5LDEyICszODgwLDEyIEBAIGNsYXNz
IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVy
IHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25zdCBj
aGFyKiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChj
b25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKLSAgdm9pZCBMaXN0VGVz
dHNNYXRjaGluZ0ZpbHRlcihjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2Vz
KTsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwg
aW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIo
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogICAvLyBQcmlu
dHMgYW4gWE1MIHN1bW1hcnkgb2YgYWxsIHVuaXQgdGVzdHMuCiAgIHN0YXRpYyB2b2lkIFByaW50
WG1sVGVzdHNMaXN0KHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRl
Kj4mIHRlc3Rfc3VpdGVzKTsKIAogIHByaXZhdGU6CiAgIC8vIElzIGMgYSB3aGl0ZXNwYWNlIGNo
YXJhY3RlciB0aGF0IGlzIG5vcm1hbGl6ZWQgdG8gYSBzcGFjZSBjaGFyYWN0ZXIKQEAgLTM0Njcs
MTQgKzM5MjgsMjQgQEAgY2xhc3MgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVt
cHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAvLyBTdHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0aW9u
LCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCiAgIHN0YXRpYyB2
b2lkIE91dHB1dFhtbENEYXRhU2VjdGlvbig6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBj
aGFyKiBkYXRhKTsKIAorICAvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRh
aW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJlczogcmVzdWx0
LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1bHQo
OjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOworCisgIC8vIFN0cmVhbXMg
YW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdFJlc3VsdCBvYmplY3QuCisgIHN0YXRpYyB2
b2lkIE91dHB1dFhtbFRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOworCiAg
IC8vIFN0cmVhbXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0Lgog
ICBzdGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0
ZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvKTsKIAotICAvLyBQcmludHMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVz
dENhc2Ugb2JqZWN0Ci0gIHN0YXRpYyB2b2lkIFByaW50WG1sVGVzdENhc2UoOjpzdGQ6Om9zdHJl
YW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlKTsKKyAgLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRl
c3RTdWl0ZSBvYmplY3QKKyAgc3RhdGljIHZvaWQgUHJpbnRYbWxUZXN0U3VpdGUoOjpzdGQ6Om9z
dHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVz
dFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMgYW4gWE1MIHN1bW1hcnkgb2YgdW5p
dF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0aWMgdm9pZCBQcmludFhtbFVuaXRU
ZXN0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCkBAIC0zNTE2LDEwICszOTg3LDEwIEBAIHZvaWQg
WG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwKIH0KIAogdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Okxpc3RU
ZXN0c01hdGNoaW5nRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj4mIHRl
c3RfY2FzZXMpIHsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9zdWl0
ZXMpIHsKICAgRklMRSogeG1sb3V0ID0gT3BlbkZpbGVGb3JXcml0aW5nKG91dHB1dF9maWxlXyk7
CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKLSAgUHJpbnRYbWxUZXN0c0xpc3QoJnN0cmVh
bSwgdGVzdF9jYXNlcyk7CisgIFByaW50WG1sVGVzdHNMaXN0KCZzdHJlYW0sIHRlc3Rfc3VpdGVz
KTsKICAgZnByaW50Zih4bWxvdXQsICIlcyIsIFN0cmluZ1N0cmVhbVRvU3RyaW5nKCZzdHJlYW0p
LmNfc3RyKCkpOwogICBmY2xvc2UoeG1sb3V0KTsKIH0KQEAgLTM1MzQsOCArNDAwNSw2IEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigKIC8v
IG1vZHVsZSB3aWxsIGNvbnNpc3Qgb2Ygb3JkaW5hcnkgRW5nbGlzaCB0ZXh0LgogLy8gSWYgdGhp
cyBtb2R1bGUgaXMgZXZlciBtb2RpZmllZCB0byBwcm9kdWNlIHZlcnNpb24gMS4xIFhNTCBvdXRw
dXQsCiAvLyBtb3N0IGludmFsaWQgY2hhcmFjdGVycyBjYW4gYmUgcmV0YWluZWQgdXNpbmcgY2hh
cmFjdGVyIHJlZmVyZW5jZXMuCi0vLyBGSVhNRTogSXQgbWlnaHQgYmUgbmljZSB0byBoYXZlIGEg
bWluaW1hbGx5IGludmFzaXZlLCBodW1hbi1yZWFkYWJsZQotLy8gZXNjYXBpbmcgc2NoZW1lIGZv
ciBpbnZhbGlkIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIGRyb3BwaW5nIHRoZW0uCiBzdGQ6OnN0
cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OkVzY2FwZVhtbCgKICAgICBjb25zdCBzdGQ6
OnN0cmluZyYgc3RyLCBib29sIGlzX2F0dHJpYnV0ZSkgewogICBNZXNzYWdlIG07CkBAIC0zNjAw
LDcgKzQwNjksNyBAQCBzdGQ6OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlJlbW92
ZUludmFsaWRYbWxDaGFyYWN0ZXJzKAogLy8gVGhpcyBpcyBob3cgR29vZ2xlIFRlc3QgY29uY2Vw
dHMgbWFwIHRvIHRoZSBEVEQ6CiAvLwogLy8gPHRlc3RzdWl0ZXMgbmFtZT0iQWxsVGVzdHMiPiAg
ICAgICAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVW5pdFRlc3Qgb2JqZWN0Ci0vLyAgIDx0ZXN0c3Vp
dGUgbmFtZT0idGVzdGNhc2UtbmFtZSI+ICA8LS0gY29ycmVzcG9uZHMgdG8gYSBUZXN0Q2FzZSBv
YmplY3QKKy8vICAgPHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0Y2FzZS1uYW1lIj4gIDwtLSBjb3JyZXNw
b25kcyB0byBhIFRlc3RTdWl0ZSBvYmplY3QKIC8vICAgICA8dGVzdGNhc2UgbmFtZT0idGVzdC1u
YW1lIj4gICAgIDwtLSBjb3JyZXNwb25kcyB0byBhIFRlc3RJbmZvIG9iamVjdAogLy8gICAgICAg
PGZhaWx1cmUgbWVzc2FnZT0iLi4uIj4uLi48L2ZhaWx1cmU+CiAvLyAgICAgICA8ZmFpbHVyZSBt
ZXNzYWdlPSIuLi4iPi4uLjwvZmFpbHVyZT4KQEAgLTM2MjQsMTIgKzQwOTMsMTEgQEAgc3RhdGlj
IGJvb2wgUG9ydGFibGVMb2NhbHRpbWUodGltZV90IHNlY29uZHMsIHN0cnVjdCB0bSogb3V0KSB7
CiAgIC8vIE1JTkdXIDx0aW1lLmg+IHByb3ZpZGVzIG5laXRoZXIgbG9jYWx0aW1lX3Igbm9yIGxv
Y2FsdGltZV9zLCBidXQgdXNlcwogICAvLyBXaW5kb3dzJyBsb2NhbHRpbWUoKSwgd2hpY2ggaGFz
IGEgdGhyZWFkLWxvY2FsIHRtIGJ1ZmZlci4KICAgc3RydWN0IHRtKiB0bV9wdHIgPSBsb2NhbHRp
bWUoJnNlY29uZHMpOyAgLy8gTk9MSU5UCi0gIGlmICh0bV9wdHIgPT0gTlVMTCkKLSAgICByZXR1
cm4gZmFsc2U7CisgIGlmICh0bV9wdHIgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogICAqb3V0
ID0gKnRtX3B0cjsKICAgcmV0dXJuIHRydWU7CiAjZWxzZQotICByZXR1cm4gbG9jYWx0aW1lX3Io
JnNlY29uZHMsIG91dCkgIT0gTlVMTDsKKyAgcmV0dXJuIGxvY2FsdGltZV9yKCZzZWNvbmRzLCBv
dXQpICE9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtMzYzOSwxMyArNDEwNywxNCBAQCBzdGQ6
OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxsaXMgbXMp
IHsKICAgc3RydWN0IHRtIHRpbWVfc3RydWN0OwogICBpZiAoIVBvcnRhYmxlTG9jYWx0aW1lKHN0
YXRpY19jYXN0PHRpbWVfdD4obXMgLyAxMDAwKSwgJnRpbWVfc3RydWN0KSkKICAgICByZXR1cm4g
IiI7Ci0gIC8vIFlZWVktTU0tRERUaGg6bW06c3MKKyAgLy8gWVlZWS1NTS1ERFRoaDptbTpzcy5z
c3MKICAgcmV0dXJuIFN0cmVhbWFibGVUb1N0cmluZyh0aW1lX3N0cnVjdC50bV95ZWFyICsgMTkw
MCkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1f
bW9uICsgMSkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1
Y3QudG1fbWRheSkgKyAiVCIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9z
dHJ1Y3QudG1faG91cikgKyAiOiIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGlt
ZV9zdHJ1Y3QudG1fbWluKSArICI6IiArCi0gICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRoMih0
aW1lX3N0cnVjdC50bV9zZWMpOworICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9z
dHJ1Y3QudG1fc2VjKSArICIuIiArCisgICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRoTihzdGF0
aWNfY2FzdDxpbnQ+KG1zICUgMTAwMCksIDMpOwogfQogCiAvLyBTdHJlYW1zIGFuIFhNTCBDREFU
QSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCkBA
IC0zNjU1LDcgKzQxMjQsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0
WG1sQ0RhdGFTZWN0aW9uKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgICpzdHJlYW0gPDwgIjwh
W0NEQVRBWyI7CiAgIGZvciAoOzspIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuZXh0X3NlZ21l
bnQgPSBzdHJzdHIoc2VnbWVudCwgIl1dPiIpOwotICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gTlVM
TCkgeworICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gbnVsbHB0cikgewogICAgICAgc3RyZWFtLT53
cml0ZSgKICAgICAgICAgICBzZWdtZW50LCBzdGF0aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+KG5l
eHRfc2VnbWVudCAtIHNlZ21lbnQpKTsKICAgICAgICpzdHJlYW0gPDwgIl1dPl1dJmd0OzwhW0NE
QVRBWyI7CkBAIC0zNjc0LDcgKzQxNDMsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRl
cjo6T3V0cHV0WG1sQXR0cmlidXRlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAogICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewogICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4mIGFsbG93ZWRfbmFtZXMgPQotICAgICAgR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxl
bWVudChlbGVtZW50X25hbWUpOworICAgICAgR2V0UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVzRm9y
RWxlbWVudChlbGVtZW50X25hbWUpOwogCiAgIEdURVNUX0NIRUNLXyhzdGQ6OmZpbmQoYWxsb3dl
ZF9uYW1lcy5iZWdpbigpLCBhbGxvd2VkX25hbWVzLmVuZCgpLCBuYW1lKSAhPQogICAgICAgICAg
ICAgICAgICAgIGFsbG93ZWRfbmFtZXMuZW5kKCkpCkBAIC0zNjg0LDQ3ICs0MTUzLDk3IEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxBdHRyaWJ1dGUoCiAgICpzdHJl
YW0gPDwgIiAiIDw8IG5hbWUgPDwgIj1cIiIgPDwgRXNjYXBlWG1sQXR0cmlidXRlKHZhbHVlKSA8
PCAiXCIiOwogfQogCisvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRhaW5p
bmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0Lgordm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6
Ok91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1bHQoCisgICAgOjpzdGQ6Om9zdHJlYW0qIHN0
cmVhbSwgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KSB7CisgIC8vIE91dHB1dCB0aGUgYm9pbGVy
cGxhdGUgZm9yIGEgbWluaW1hbCB0ZXN0IHN1aXRlIHdpdGggb25lIHRlc3QuCisgICpzdHJlYW0g
PDwgIiAgPHRlc3RzdWl0ZSI7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3Vp
dGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWlsdXJlIik7CisgIE91dHB1dFhtbEF0dHJpYnV0
ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGVzdHMiLCAiMSIpOworICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgImZhaWx1cmVzIiwgIjEiKTsKKyAgT3V0cHV0WG1sQXR0
cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJkaXNhYmxlZCIsICIwIik7CisgIE91dHB1dFht
bEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAic2tpcHBlZCIsICIwIik7CisgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZXJyb3JzIiwgIjAiKTsKKyAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJ0aW1lIiwKKyAgICAgICAgICAg
ICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhyZXN1bHQuZWxhcHNlZF90aW1l
KCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKAorICAgICAgc3RyZWFtLCAidGVzdHN1aXRlIiwg
InRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShyZXN1
bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgKnN0cmVhbSA8PCAiPiI7CisKKyAgLy8gT3V0cHV0
IHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBtaW5pbWFsIHRlc3QgY2FzZSB3aXRoIGEgc2luZ2xlIHRl
c3QuCisgICpzdHJlYW0gPDwgIiAgICA8dGVzdGNhc2UiOworICBPdXRwdXRYbWxBdHRyaWJ1dGUo
c3RyZWFtLCAidGVzdGNhc2UiLCAibmFtZSIsICIiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwgInRlc3RjYXNlIiwgInN0YXR1cyIsICJydW4iKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJjb21wbGV0ZWQiKTsKKyAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgImNsYXNzbmFtZSIsICIiKTsKKyAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInRpbWUiLAorICAgICAgICAgICAgICAg
ICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSkp
OworICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICBzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1l
c3RhbXAiLAorICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEocmVzdWx0LnN0
YXJ0X3RpbWVzdGFtcCgpKSk7CisKKyAgLy8gT3V0cHV0IHRoZSBhY3R1YWwgdGVzdCByZXN1bHQu
CisgIE91dHB1dFhtbFRlc3RSZXN1bHQoc3RyZWFtLCByZXN1bHQpOworCisgIC8vIENvbXBsZXRl
IHRoZSB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8ICIgIDwvdGVzdHN1aXRlPlxuIjsKK30KKwog
Ly8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9iamVjdC4KLS8v
IEZJWE1FOiBUaGVyZSBpcyBhbHNvIHZhbHVlIGluIHByaW50aW5nIHByb3BlcnRpZXMgd2l0aCB0
aGUgcGxhaW4gcHJpbnRlci4KIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRY
bWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CiAgIGNvbnN0IFRlc3RS
ZXN1bHQmIHJlc3VsdCA9ICp0ZXN0X2luZm8ucmVzdWx0KCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5n
IGtUZXN0Y2FzZSA9ICJ0ZXN0Y2FzZSI7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUg
PSAidGVzdGNhc2UiOwogCiAgIGlmICh0ZXN0X2luZm8uaXNfaW5fYW5vdGhlcl9zaGFyZCgpKSB7
CiAgICAgcmV0dXJuOwogICB9CiAKICAgKnN0cmVhbSA8PCAiICAgIDx0ZXN0Y2FzZSI7Ci0gIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgIm5hbWUiLCB0ZXN0X2luZm8ubmFt
ZSgpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0
ZXN0X2luZm8ubmFtZSgpKTsKIAotICBpZiAodGVzdF9pbmZvLnZhbHVlX3BhcmFtKCkgIT0gTlVM
TCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVlX3Bh
cmFtIiwKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpICE9IG51bGxwdHIpIHsKKyAgICBP
dXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidmFsdWVfcGFyYW0iLAogICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSk7CiAgIH0KLSAgaWYg
KHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0
ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0X2luZm8udHlwZV9wYXJhbSgp
KTsKKyAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gbnVsbHB0cikgeworICAgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFtIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSk7CiAgIH0KICAgaWYgKEdURVNU
X0ZMQUcobGlzdF90ZXN0cykpIHsKLSAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVz
dGNhc2UsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSk7Ci0gICAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsCisgICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVh
bSwga1Rlc3RzdWl0ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpKTsKKyAgICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAibGluZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2luZm8ubGluZSgpKSk7CiAgICAgKnN0cmVhbSA8
PCAiIC8+XG4iOwogICAgIHJldHVybjsKICAgfQogCi0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJl
YW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtU
ZXN0c3VpdGUsICJzdGF0dXMiLAogICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnNob3Vs
ZF9ydW4oKSA/ICJydW4iIDogIm5vdHJ1biIpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFt
LCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3Rz
dWl0ZSwgInJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1
bigpCisgICAgICAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBwZWQoKSA/ICJza2lw
cGVkIiA6ICJjb21wbGV0ZWQiKQorICAgICAgICAgICAgICAgICAgICAgICAgIDogInN1cHByZXNz
ZWQiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWUiLAog
ICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3VsdC5l
bGFwc2VkX3RpbWUoKSkpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2Us
ICJjbGFzc25hbWUiLCB0ZXN0X2Nhc2VfbmFtZSk7CisgIE91dHB1dFhtbEF0dHJpYnV0ZSgKKyAg
ICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9jaFRp
bWVJbk1pbGxpc0FzSXNvODYwMShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImNsYXNzbmFtZSIsIHRlc3Rfc3VpdGVf
bmFtZSk7CiAKKyAgT3V0cHV0WG1sVGVzdFJlc3VsdChzdHJlYW0sIHJlc3VsdCk7Cit9CisKK3Zv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0UmVzdWx0KDo6c3RkOjpv
c3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpIHsKICAgaW50IGZhaWx1cmVzID0g
MDsKKyAgaW50IHNraXBzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQudG90YWxf
cGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcGFydCA9IHJl
c3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKICAgICBpZiAocGFydC5mYWlsZWQoKSkgewotICAg
ICAgaWYgKCsrZmFpbHVyZXMgPT0gMSkgeworICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSAmJiBz
a2lwcyA9PSAwKSB7CiAgICAgICAgICpzdHJlYW0gPDwgIj5cbiI7CiAgICAgICB9CiAgICAgICBj
b25zdCBzdGQ6OnN0cmluZyBsb2NhdGlvbiA9CkBAIC0zNzMyLDE4ICs0MjUxLDMxIEBAIHZvaWQg
WG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVh
bSogc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CiAgICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CiAgICAgICAqc3Ry
ZWFtIDw8ICIgICAgICA8ZmFpbHVyZSBtZXNzYWdlPVwiIgotICAgICAgICAgICAgICA8PCBFc2Nh
cGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKQorICAgICAgICAgICAgICA8PCBFc2NhcGVY
bWxBdHRyaWJ1dGUoc3VtbWFyeSkKICAgICAgICAgICAgICAgPDwgIlwiIHR5cGU9XCJcIj4iOwog
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZGV0YWlsID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5t
ZXNzYWdlKCk7CiAgICAgICBPdXRwdXRYbWxDRGF0YVNlY3Rpb24oc3RyZWFtLCBSZW1vdmVJbnZh
bGlkWG1sQ2hhcmFjdGVycyhkZXRhaWwpLmNfc3RyKCkpOwogICAgICAgKnN0cmVhbSA8PCAiPC9m
YWlsdXJlPlxuIjsKKyAgICB9IGVsc2UgaWYgKHBhcnQuc2tpcHBlZCgpKSB7CisgICAgICBpZiAo
Kytza2lwcyA9PSAxICYmIGZhaWx1cmVzID09IDApIHsKKyAgICAgICAgKnN0cmVhbSA8PCAiPlxu
IjsKKyAgICAgIH0KKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxvY2F0aW9uID0KKyAgICAgICAg
ICBpbnRlcm5hbDo6Rm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihwYXJ0LmZp
bGVfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CisgICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CisgICAgICAqc3Ry
ZWFtIDw8ICIgICAgICA8c2tpcHBlZCBtZXNzYWdlPVwiIgorICAgICAgICAgICAgICA8PCBFc2Nh
cGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKSA8PCAiXCI+IjsKKyAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nIGRldGFpbCA9IGxvY2F0aW9uICsgIlxuIiArIHBhcnQubWVzc2FnZSgpOworICAg
ICAgT3V0cHV0WG1sQ0RhdGFTZWN0aW9uKHN0cmVhbSwgUmVtb3ZlSW52YWxpZFhtbENoYXJhY3Rl
cnMoZGV0YWlsKS5jX3N0cigpKTsKKyAgICAgICpzdHJlYW0gPDwgIjwvc2tpcHBlZD5cbiI7CiAg
ICAgfQogICB9CiAKLSAgaWYgKGZhaWx1cmVzID09IDAgJiYgcmVzdWx0LnRlc3RfcHJvcGVydHlf
Y291bnQoKSA9PSAwKSB7CisgIGlmIChmYWlsdXJlcyA9PSAwICYmIHNraXBzID09IDAgJiYgcmVz
dWx0LnRlc3RfcHJvcGVydHlfY291bnQoKSA9PSAwKSB7CiAgICAgKnN0cmVhbSA8PCAiIC8+XG4i
OwogICB9IGVsc2UgewotICAgIGlmIChmYWlsdXJlcyA9PSAwKSB7CisgICAgaWYgKGZhaWx1cmVz
ID09IDAgJiYgc2tpcHMgPT0gMCkgewogICAgICAgKnN0cmVhbSA8PCAiPlxuIjsKICAgICB9CiAg
ICAgT3V0cHV0WG1sVGVzdFByb3BlcnRpZXMoc3RyZWFtLCByZXN1bHQpOwpAQCAtMzc1MSwyOSAr
NDI4MywzNiBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVzdElu
Zm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgfQogfQogCi0vLyBQcmludHMgYW4gWE1MIHJl
cHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci12b2lkIFhtbFVuaXRUZXN0UmVzdWx0
UHJpbnRlcjo6UHJpbnRYbWxUZXN0Q2FzZShzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RDYXNlJiB0
ZXN0X2Nhc2UpIHsKKy8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0U3Vp
dGUgb2JqZWN0Cit2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0U3Vp
dGUoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSB7CiAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdHN1aXRlIjsKICAgKnN0cmVhbSA8PCAiICA8
IiA8PCBrVGVzdHN1aXRlOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRl
LCAibmFtZSIsIHRlc3RfY2FzZS5uYW1lKCkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFt
LCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKICAgT3V0cHV0WG1sQXR0
cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwKLSAgICAgICAgICAgICAgICAgICAg
IFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV90ZXN0X2NvdW50KCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLnJlcG9y
dGFibGVfdGVzdF9jb3VudCgpKSk7CiAgIGlmICghR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgewog
ICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJmYWlsdXJlcyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UuZmFpbGVk
X3Rlc3RfY291bnQoKSkpOworICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJp
bmcodGVzdF9zdWl0ZS5mYWlsZWRfdGVzdF9jb3VudCgpKSk7CiAgICAgT3V0cHV0WG1sQXR0cmli
dXRlKAogICAgICAgICBzdHJlYW0sIGtUZXN0c3VpdGUsICJkaXNhYmxlZCIsCi0gICAgICAgIFN0
cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50
KCkpKTsKKyAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUucmVwb3J0YWJsZV9k
aXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBr
VGVzdHN1aXRlLCAic2tpcHBlZCIsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVU
b1N0cmluZyh0ZXN0X3N1aXRlLnNraXBwZWRfdGVzdF9jb3VudCgpKSk7CisKICAgICBPdXRwdXRY
bWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgIjAiKTsKKwogICAgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3RfY2FzZS5lbGFwc2Vk
X3RpbWUoKSkpOwotICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc1htbEF0dHJpYnV0ZXMo
dGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
Rm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkpKTsK
KyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRp
bWVzdGFtcCIsCisgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKHRlc3Rf
c3VpdGUuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0aWVz
QXNYbWxBdHRyaWJ1dGVzKHRlc3Rfc3VpdGUuYWRfaG9jX3Rlc3RfcmVzdWx0KCkpOwogICB9CiAg
ICpzdHJlYW0gPDwgIj5cbiI7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLnRvdGFs
X3Rlc3RfY291bnQoKTsgKytpKSB7Ci0gICAgaWYgKHRlc3RfY2FzZS5HZXRUZXN0SW5mbyhpKS0+
aXNfcmVwb3J0YWJsZSgpKQotICAgICAgT3V0cHV0WG1sVGVzdEluZm8oc3RyZWFtLCB0ZXN0X2Nh
c2UubmFtZSgpLCAqdGVzdF9jYXNlLkdldFRlc3RJbmZvKGkpKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKSB7CisgICAgaWYgKHRlc3Rf
c3VpdGUuR2V0VGVzdEluZm8oaSktPmlzX3JlcG9ydGFibGUoKSkKKyAgICAgIE91dHB1dFhtbFRl
c3RJbmZvKHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZv
KGkpKTsKICAgfQogICAqc3RyZWFtIDw8ICIgIDwvIiA8PCBrVGVzdHN1aXRlIDw8ICI+XG4iOwog
fQpAQCAtMzc5NCwxMSArNDMzMywxMSBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6
UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgICAgIHN0cmVhbSwga1Rl
c3RzdWl0ZXMsICJkaXNhYmxlZCIsCiAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90ZXN0
LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpKSk7CiAgIE91dHB1dFhtbEF0dHJpYnV0
ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAiZXJyb3JzIiwgIjAiKTsKKyAgT3V0cHV0WG1sQXR0cmli
dXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0aW1lIiwKKyAgICAgICAgICAgICAgICAgICAgIEZv
cm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsKICAg
T3V0cHV0WG1sQXR0cmlidXRlKAogICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlcywgInRpbWVzdGFt
cCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSh1bml0X3Rlc3Quc3Rh
cnRfdGltZXN0YW1wKCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0
ZXMsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vj
b25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsKIAogICBpZiAoR1RFU1RfRkxBRyhzaHVm
ZmxlKSkgewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAicmFu
ZG9tX3NlZWQiLApAQCAtMzgwOSwzMSArNDM0OCwzOCBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0
UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIik7CiAg
ICpzdHJlYW0gPDwgIj5cbiI7CiAKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90
YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVzdENh
c2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkKLSAgICAgIFByaW50WG1sVGVzdENh
c2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBpZiAo
dW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKS0+cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgPiAwKQor
ICAgICAgUHJpbnRYbWxUZXN0U3VpdGUoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShp
KSk7CiAgIH0KKworICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBvZiBv
bmUgb2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVudCkg
aW5jbHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rlc3Rf
cmVzdWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRYbWxUZXN0U3VpdGVGb3JUZXN0UmVzdWx0
KHN0cmVhbSwgdW5pdF90ZXN0LmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgfQorCiAgICpzdHJl
YW0gPDwgIjwvIiA8PCBrVGVzdHN1aXRlcyA8PCAiPlxuIjsKIH0KIAogdm9pZCBYbWxVbml0VGVz
dFJlc3VsdFByaW50ZXI6OlByaW50WG1sVGVzdHNMaXN0KAotICAgIHN0ZDo6b3N0cmVhbSogc3Ry
ZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKSB7CisgICAgc3Rk
Ojpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1
aXRlcykgewogICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlcyA9ICJ0ZXN0c3VpdGVzIjsK
IAogICAqc3RyZWFtIDw8ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwi
Pz5cbiI7CiAgICpzdHJlYW0gPDwgIjwiIDw8IGtUZXN0c3VpdGVzOwogCiAgIGludCB0b3RhbF90
ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdF9jYXNlcy5zaXplKCk7ICsr
aSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2FzZXNbaV0tPnRvdGFsX3Rlc3RfY291bnQo
KTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlcykgeworICAgIHRvdGFsX3Rl
c3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKTsKICAgfQogICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgInRlc3RzIiwKICAgICAgICAgICAgICAgICAg
ICAgIFN0cmVhbWFibGVUb1N0cmluZyh0b3RhbF90ZXN0cykpOwogICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgIm5hbWUiLCAiQWxsVGVzdHMiKTsKICAgKnN0cmVhbSA8
PCAiPlxuIjsKIAotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyAr
K2kpIHsKLSAgICBQcmludFhtbFRlc3RDYXNlKHN0cmVhbSwgKnRlc3RfY2FzZXNbaV0pOworICBm
b3IgKGF1dG8gdGVzdF9zdWl0ZSA6IHRlc3Rfc3VpdGVzKSB7CisgICAgUHJpbnRYbWxUZXN0U3Vp
dGUoc3RyZWFtLCAqdGVzdF9zdWl0ZSk7CiAgIH0KICAgKnN0cmVhbSA8PCAiPC8iIDw8IGtUZXN0
c3VpdGVzIDw8ICI+XG4iOwogfQpAQCAtMzg3OCwxMSArNDQyNCwxMSBAQCBjbGFzcyBKc29uVW5p
dFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogIHB1
YmxpYzoKICAgZXhwbGljaXQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25zdCBjaGFyKiBv
dXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBV
bml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKKyAgdm9pZCBPblRlc3RJdGVyYXRp
b25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7
CiAKICAgLy8gUHJpbnRzIGFuIEpTT04gc3VtbWFyeSBvZiBhbGwgdW5pdCB0ZXN0cy4KICAgc3Rh
dGljIHZvaWQgUHJpbnRKc29uVGVzdExpc3QoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYg
dGVzdF9jYXNlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6
dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcyk7CiAKICBwcml2YXRlOgogICAvLyBSZXR1
cm5zIGFuIEpTT04tZXNjYXBlZCBjb3B5IG9mIHRoZSBpbnB1dCBzdHJpbmcgc3RyLgpAQCAtMzkw
MywxNCArNDQ0OSwyNCBAQCBjbGFzcyBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6c3RyaW5nJiBpbmRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBjb21tYSA9IHRydWUpOwogCisgIC8vIFN0cmVhbXMgYSB0ZXN0IHN1aXRlIEpTT04gc3Rhbnph
IGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJlczog
cmVzdWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dEpzb25UZXN0U3VpdGVGb3JUZXN0
UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCk7CisKKyAgLy8g
U3RyZWFtcyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0UmVzdWx0IG9iamVjdC4KKyAg
c3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYgcmVz
dWx0KTsKKwogICAvLyBTdHJlYW1zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZv
IG9iamVjdC4KICAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RJbmZvKDo6c3RkOjpvc3RyZWFt
KiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0
ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwogCi0gIC8vIFByaW50cyBhIEpTT04gcmVwcmVzZW50
YXRpb24gb2YgYSBUZXN0Q2FzZSBvYmplY3QKLSAgc3RhdGljIHZvaWQgUHJpbnRKc29uVGVzdENh
c2UoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7CisgIC8vIFByaW50cyBhIEpTT04gcmVwcmVz
ZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0CisgIHN0YXRpYyB2b2lkIFByaW50SnNvblRl
c3RTdWl0ZSg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMgYSBK
U09OIHN1bW1hcnkgb2YgdW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0aWMg
dm9pZCBQcmludEpzb25Vbml0VGVzdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLApAQCAtNDAwOSw3
ICs0NTY1LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNS
RkMzMzM5KFRpbWVJbk1pbGxpcyBtcykgewogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIo
dGltZV9zdHJ1Y3QudG1fc2VjKSArICJaIjsKIH0KIAotc3RhdGljIGlubGluZSBzdGQ6OnN0cmlu
ZyBJbmRlbnQoaW50IHdpZHRoKSB7CitzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIEluZGVudChz
aXplX3Qgd2lkdGgpIHsKICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHdpZHRoLCAnICcpOwogfQogCkBA
IC00MDIxLDcgKzQ1NzcsNyBAQCB2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1
dEpzb25LZXkoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGluZGVudCwKICAgICBib29sIGNvbW1h
KSB7CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgYWxsb3dlZF9uYW1lcyA9Ci0g
ICAgICBHZXRSZXNlcnZlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7CisgICAg
ICBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7CiAK
ICAgR1RFU1RfQ0hFQ0tfKHN0ZDo6ZmluZChhbGxvd2VkX25hbWVzLmJlZ2luKCksIGFsbG93ZWRf
bmFtZXMuZW5kKCksIG5hbWUpICE9CiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9uYW1lcy5l
bmQoKSkKQEAgLTQwNDEsNyArNDU5Nyw3IEBAIHZvaWQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRl
cjo6T3V0cHV0SnNvbktleSgKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgaW5kZW50LAogICAgIGJv
b2wgY29tbWEpIHsKICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBhbGxvd2VkX25h
bWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9uYW1l
KTsKKyAgICAgIEdldFJlc2VydmVkT3V0cHV0QXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9u
YW1lKTsKIAogICBHVEVTVF9DSEVDS18oc3RkOjpmaW5kKGFsbG93ZWRfbmFtZXMuYmVnaW4oKSwg
YWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0KICAgICAgICAgICAgICAgICAgICBhbGxvd2Vk
X25hbWVzLmVuZCgpKQpAQCAtNDA1MywzOSArNDYwOSw5NyBAQCB2b2lkIEpzb25Vbml0VGVzdFJl
c3VsdFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAgICAgKnN0cmVhbSA8PCAiLFxuIjsKIH0KIAor
Ly8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgSlNPTiBzdGFuemEgY29udGFpbmluZyB0aGUgZ2l2ZW4g
dGVzdCByZXN1bHQuCit2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25U
ZXN0U3VpdGVGb3JUZXN0UmVzdWx0KAorICAgIDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0
IFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZvciBh
IG5ldyB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8IEluZGVudCg0KSA8PCAie1xuIjsKKyAgT3V0
cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWls
dXJlIiwgSW5kZW50KDYpKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAi
dGVzdHMiLCAxLCBJbmRlbnQoNikpOworICBpZiAoIUdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHsK
KyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RzdWl0ZSIsICJmYWlsdXJlcyIsIDEsIElu
ZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZGlzYWJs
ZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRl
IiwgInNraXBwZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAi
dGVzdHN1aXRlIiwgImVycm9ycyIsIDAsIEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktleShz
dHJlYW0sICJ0ZXN0c3VpdGUiLCAidGltZSIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRUaW1l
SW5NaWxsaXNBc0R1cmF0aW9uKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAgICAg
ICAgICBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwg
InRpbWVzdGFtcCIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0Fz
UkZDMzMzOShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpLAorICAgICAgICAgICAgICAgICAgSW5k
ZW50KDYpKTsKKyAgfQorICAqc3RyZWFtIDw8IEluZGVudCg2KSA8PCAiXCJ0ZXN0c3VpdGVcIjog
W1xuIjsKKworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZvciBhIG5ldyB0ZXN0IGNhc2Uu
CisgICpzdHJlYW0gPDwgSW5kZW50KDgpIDw8ICJ7XG4iOworICBPdXRwdXRKc29uS2V5KHN0cmVh
bSwgInRlc3RjYXNlIiwgIm5hbWUiLCAiIiwgSW5kZW50KDEwKSk7CisgIE91dHB1dEpzb25LZXko
c3RyZWFtLCAidGVzdGNhc2UiLCAic3RhdHVzIiwgIlJVTiIsIEluZGVudCgxMCkpOworICBPdXRw
dXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJDT01QTEVURUQiLCBJbmRl
bnQoMTApKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1lc3RhbXAi
LAorICAgICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3Vs
dC5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAgICAgICAgICAgSW5kZW50KDEwKSk7CisgIE91
dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAidGltZSIsCisgICAgICAgICAgICAgICAg
Rm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1bHQuZWxhcHNlZF90aW1lKCkpLAorICAg
ICAgICAgICAgICAgIEluZGVudCgxMCkpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3Rj
YXNlIiwgImNsYXNzbmFtZSIsICIiLCBJbmRlbnQoMTApLCBmYWxzZSk7CisgICpzdHJlYW0gPDwg
VGVzdFByb3BlcnRpZXNBc0pzb24ocmVzdWx0LCBJbmRlbnQoMTApKTsKKworICAvLyBPdXRwdXQg
dGhlIGFjdHVhbCB0ZXN0IHJlc3VsdC4KKyAgT3V0cHV0SnNvblRlc3RSZXN1bHQoc3RyZWFtLCBy
ZXN1bHQpOworCisgIC8vIEZpbmlzaCB0aGUgdGVzdCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCAiXG4i
IDw8IEluZGVudCg2KSA8PCAiXVxuIiA8PCBJbmRlbnQoNCkgPDwgIn0iOworfQorCiAvLyBQcmlu
dHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0Lgogdm9pZCBKc29u
VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VGVzdEluZm8mIHRlc3RfaW5mbykgewogICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQgPSAqdGVz
dF9pbmZvLnJlc3VsdCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdGNhc2UgPSAidGVzdGNh
c2UiOworICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlID0gInRlc3RjYXNlIjsKICAgY29u
c3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVudCgxMCk7CiAKICAgKnN0cmVhbSA8PCBJbmRl
bnQoOCkgPDwgIntcbiI7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJuYW1l
IiwgdGVzdF9pbmZvLm5hbWUoKSwga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBr
VGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfaW5mby5uYW1lKCksIGtJbmRlbnQpOwogCi0gIGlmICh0
ZXN0X2luZm8udmFsdWVfcGFyYW0oKSAhPSBOVUxMKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0Y2FzZSwgInZhbHVlX3BhcmFtIiwKLSAgICAgICAgICAgICAgICAgIHRlc3RfaW5m
by52YWx1ZV9wYXJhbSgpLCBrSW5kZW50KTsKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgp
ICE9IG51bGxwdHIpIHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInZh
bHVlX3BhcmFtIiwgdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCksCisgICAgICAgICAgICAgICAgICBr
SW5kZW50KTsKICAgfQotICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7Ci0g
ICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0X2lu
Zm8udHlwZV9wYXJhbSgpLAorICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBudWxscHRy
KSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFtIiwg
dGVzdF9pbmZvLnR5cGVfcGFyYW0oKSwKICAgICAgICAgICAgICAgICAgIGtJbmRlbnQpOwogICB9
CiAgIGlmIChHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0Y2FzZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKLSAgICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsIHRlc3RfaW5mby5saW5lKCks
IGtJbmRlbnQsIGZhbHNlKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwg
ImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKKyAgICBPdXRwdXRKc29uS2V5KHN0
cmVhbSwga1Rlc3RzdWl0ZSwgImxpbmUiLCB0ZXN0X2luZm8ubGluZSgpLCBrSW5kZW50LCBmYWxz
ZSk7CiAgICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAifSI7CiAgICAgcmV0dXJu
OwogICB9CiAKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisg
IE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAic3RhdHVzIiwKICAgICAgICAgICAg
ICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpID8gIlJVTiIgOiAiTk9UUlVOIiwga0luZGVudCk7
Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0SnNv
bktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJyZXN1bHQiLAorICAgICAgICAgICAgICAgIHRlc3Rf
aW5mby5zaG91bGRfcnVuKCkKKyAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBwZWQo
KSA/ICJTS0lQUEVEIiA6ICJDT01QTEVURUQiKQorICAgICAgICAgICAgICAgICAgICA6ICJTVVBQ
UkVTU0VEIiwKKyAgICAgICAgICAgICAgICBrSW5kZW50KTsKKyAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0c3VpdGUsICJ0aW1lc3RhbXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVwb2No
VGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAg
ICAgICAgICAga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAi
dGltZSIsCiAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1
bHQuZWxhcHNlZF90aW1lKCkpLCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtU
ZXN0Y2FzZSwgImNsYXNzbmFtZSIsIHRlc3RfY2FzZV9uYW1lLCBrSW5kZW50LCBmYWxzZSk7Cisg
IE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiY2xhc3NuYW1lIiwgdGVzdF9zdWl0
ZV9uYW1lLCBrSW5kZW50LAorICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgKnN0cmVhbSA8PCBU
ZXN0UHJvcGVydGllc0FzSnNvbihyZXN1bHQsIGtJbmRlbnQpOwogCisgIE91dHB1dEpzb25UZXN0
UmVzdWx0KHN0cmVhbSwgcmVzdWx0KTsKK30KKwordm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmlu
dGVyOjpPdXRwdXRKc29uVGVzdFJlc3VsdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0
UmVzdWx0JiByZXN1bHQpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVudCgx
MCk7CisKICAgaW50IGZhaWx1cmVzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQu
dG90YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcGFy
dCA9IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKQEAgLTQxMTAsNDAgKzQ3MjQsNDQgQEAg
dm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAifSI7
CiB9CiAKLS8vIFByaW50cyBhbiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2Jq
ZWN0Ci12b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50SnNvblRlc3RDYXNlKHN0
ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CisvLyBQcmludHMgYW4g
SlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RTdWl0ZSBvYmplY3QKK3ZvaWQgSnNvblVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVGVzdFN1aXRlKAorICAgIHN0ZDo6b3N0cmVhbSog
c3RyZWFtLCBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIHsKICAgY29uc3Qgc3RkOjpzdHJp
bmcga1Rlc3RzdWl0ZSA9ICJ0ZXN0c3VpdGUiOwogICBjb25zdCBzdGQ6OnN0cmluZyBrSW5kZW50
ID0gSW5kZW50KDYpOwogCiAgICpzdHJlYW0gPDwgSW5kZW50KDQpIDw8ICJ7XG4iOwotICBPdXRw
dXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2Nhc2UubmFtZSgpLCBr
SW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIsIHRl
c3RfY2FzZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSwKKyAgT3V0cHV0SnNvbktleShzdHJlYW0s
IGtUZXN0c3VpdGUsICJuYW1lIiwgdGVzdF9zdWl0ZS5uYW1lKCksIGtJbmRlbnQpOworICBPdXRw
dXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwgdGVzdF9zdWl0ZS5yZXBvcnRh
YmxlX3Rlc3RfY291bnQoKSwKICAgICAgICAgICAgICAgICBrSW5kZW50KTsKICAgaWYgKCFHVEVT
VF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3Vp
dGUsICJmYWlsdXJlcyIsIHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpLAotICAgICAgICAg
ICAgICAgICAga0luZGVudCk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUs
ICJmYWlsdXJlcyIsCisgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0X2Nv
dW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAi
ZGlzYWJsZWQiLAotICAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLnJlcG9ydGFibGVfZGlzYWJs
ZWRfdGVzdF9jb3VudCgpLCBrSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUu
cmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpz
b25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgMCwga0luZGVudCk7CisgICAgT3V0
cHV0SnNvbktleSgKKyAgICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZXN0YW1wIiwKKyAg
ICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc1JGQzMzMzkodGVzdF9zdWl0ZS5zdGFydF90
aW1lc3RhbXAoKSksCisgICAgICAgIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFt
LCBrVGVzdHN1aXRlLCAidGltZSIsCi0gICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxs
aXNBc0R1cmF0aW9uKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAgICAgICAg
ICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9uKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkp
LAogICAgICAgICAgICAgICAgICAga0luZGVudCwgZmFsc2UpOwotICAgICpzdHJlYW0gPDwgVGVz
dFByb3BlcnRpZXNBc0pzb24odGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrSW5kZW50
KQorICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9zdWl0ZS5hZF9ob2Nf
dGVzdF9yZXN1bHQoKSwga0luZGVudCkKICAgICAgICAgICAgIDw8ICIsXG4iOwogICB9CiAKICAg
KnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZSA8PCAiXCI6IFtcbiI7CiAK
ICAgYm9vbCBjb21tYSA9IGZhbHNlOwotICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2FzZS50
b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgIGlmICh0ZXN0X2Nhc2UuR2V0VGVzdEluZm8o
aSktPmlzX3JlcG9ydGFibGUoKSkgeworICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3Rfc3VpdGUu
dG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKKyAgICBpZiAodGVzdF9zdWl0ZS5HZXRUZXN0SW5m
byhpKS0+aXNfcmVwb3J0YWJsZSgpKSB7CiAgICAgICBpZiAoY29tbWEpIHsKICAgICAgICAgKnN0
cmVhbSA8PCAiLFxuIjsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbW1hID0gdHJ1ZTsKICAg
ICAgIH0KLSAgICAgIE91dHB1dEpzb25UZXN0SW5mbyhzdHJlYW0sIHRlc3RfY2FzZS5uYW1lKCks
ICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSkpOworICAgICAgT3V0cHV0SnNvblRlc3RJbmZvKHN0
cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGkpKTsKICAg
ICB9CiAgIH0KICAgKnN0cmVhbSA8PCAiXG4iIDw8IGtJbmRlbnQgPDwgIl1cbiIgPDwgSW5kZW50
KDQpIDw8ICJ9IjsKQEAgLTQxODEsMzkgKzQ3OTksNDUgQEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1
bHRQcmludGVyOjpQcmludEpzb25Vbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0
cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZXMgPDwgIlwiOiBbXG4iOwogCiAg
IGJvb2wgY29tbWEgPSBmYWxzZTsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90
YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVzdENh
c2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkgeworICBmb3IgKGludCBpID0gMDsg
aSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkgeworICAgIGlmICh1
bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDApIHsK
ICAgICAgIGlmIChjb21tYSkgewogICAgICAgICAqc3RyZWFtIDw8ICIsXG4iOwogICAgICAgfSBl
bHNlIHsKICAgICAgICAgY29tbWEgPSB0cnVlOwogICAgICAgfQotICAgICAgUHJpbnRKc29uVGVz
dENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgICAgIFByaW50SnNv
blRlc3RTdWl0ZShzdHJlYW0sICp1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpKTsKICAgICB9CiAg
IH0KIAorICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBvZiBvbmUgb2Yg
dGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVudCkgaW5jbHVk
ZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVzdWx0
KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRKc29uVGVzdFN1aXRlRm9yVGVzdFJlc3VsdChzdHJl
YW0sIHVuaXRfdGVzdC5hZF9ob2NfdGVzdF9yZXN1bHQoKSk7CisgIH0KKwogICAqc3RyZWFtIDw8
ICJcbiIgPDwga0luZGVudCA8PCAiXVxuIiA8PCAifVxuIjsKIH0KIAogdm9pZCBKc29uVW5pdFRl
c3RSZXN1bHRQcmludGVyOjpQcmludEpzb25UZXN0TGlzdCgKLSAgICBzdGQ6Om9zdHJlYW0qIHN0
cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNlcykgeworICAgIHN0
ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9z
dWl0ZXMpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZXMgPSAidGVzdHN1aXRlcyI7
CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQgPSBJbmRlbnQoMik7CiAgICpzdHJlYW0gPDwg
IntcbiI7CiAgIGludCB0b3RhbF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGVzdF9jYXNlcy5zaXplKCk7ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2FzZXNb
aV0tPnRvdGFsX3Rlc3RfY291bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1
aXRlcykgeworICAgIHRvdGFsX3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQo
KTsKICAgfQogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0ZXN0cyIsIHRv
dGFsX3Rlc3RzLCBrSW5kZW50KTsKIAogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0
ZXMsICJuYW1lIiwgIkFsbFRlc3RzIiwga0luZGVudCk7CiAgICpzdHJlYW0gPDwga0luZGVudCA8
PCAiXCIiIDw8IGtUZXN0c3VpdGVzIDw8ICJcIjogW1xuIjsKIAotICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kpIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0ZXN0X3N1aXRlcy5zaXplKCk7ICsraSkgewogICAgIGlmIChpICE9IDApIHsKICAgICAgICpz
dHJlYW0gPDwgIixcbiI7CiAgICAgfQotICAgIFByaW50SnNvblRlc3RDYXNlKHN0cmVhbSwgKnRl
c3RfY2FzZXNbaV0pOworICAgIFByaW50SnNvblRlc3RTdWl0ZShzdHJlYW0sICp0ZXN0X3N1aXRl
c1tpXSk7CiAgIH0KIAogICAqc3RyZWFtIDw8ICJcbiIKQEAgLTQyNjksNyArNDg5Myw3IEBAIHZv
aWQgU3RyZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7CiAg
IG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwogICBoaW50cy5haV9mYW1pbHkgPSBB
Rl9VTlNQRUM7ICAgIC8vIFRvIGFsbG93IGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMuCiAg
IGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0gIGFkZHJpbmZvKiBzZXJ2aW5mbyA9
IE5VTEw7CisgIGFkZHJpbmZvKiBzZXJ2aW5mbyA9IG51bGxwdHI7CiAKICAgLy8gVXNlIHRoZSBn
ZXRhZGRyaW5mbygpIHRvIGdldCBhIGxpbmtlZCBsaXN0IG9mIElQIGFkZHJlc3NlcyBmb3IKICAg
Ly8gdGhlIGdpdmVuIGhvc3QgbmFtZS4KQEAgLTQyODEsNyArNDkwNSw3IEBAIHZvaWQgU3RyZWFt
aW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7CiAgIH0KIAogICAv
LyBMb29wIHRocm91Z2ggYWxsIHRoZSByZXN1bHRzIGFuZCBjb25uZWN0IHRvIHRoZSBmaXJzdCB3
ZSBjYW4uCi0gIGZvciAoYWRkcmluZm8qIGN1cl9hZGRyID0gc2VydmluZm87IHNvY2tmZF8gPT0g
LTEgJiYgY3VyX2FkZHIgIT0gTlVMTDsKKyAgZm9yIChhZGRyaW5mbyogY3VyX2FkZHIgPSBzZXJ2
aW5mbzsgc29ja2ZkXyA9PSAtMSAmJiBjdXJfYWRkciAhPSBudWxscHRyOwogICAgICAgIGN1cl9h
ZGRyID0gY3VyX2FkZHItPmFpX25leHQpIHsKICAgICBzb2NrZmRfID0gc29ja2V0KAogICAgICAg
ICBjdXJfYWRkci0+YWlfZmFtaWx5LCBjdXJfYWRkci0+YWlfc29ja3R5cGUsIGN1cl9hZGRyLT5h
aV9wcm90b2NvbCk7CkBAIC00MzkxLDYgKzUwMTUsNyBAQCBjbGFzcyBTY29wZWRQcmVtYXR1cmVF
eGl0RmlsZSB7CiAgIH0KIAogICB+U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUoKSB7CisjaWYgIWRl
ZmluZWQgR1RFU1RfT1NfRVNQODI2NgogICAgIGlmICghcHJlbWF0dXJlX2V4aXRfZmlsZXBhdGhf
LmVtcHR5KCkpIHsKICAgICAgIGludCByZXR2YWwgPSByZW1vdmUocHJlbWF0dXJlX2V4aXRfZmls
ZXBhdGhfLmNfc3RyKCkpOwogICAgICAgaWYgKHJldHZhbCkgewpAQCAtNDM5OSw2ICs1MDI0LDcg
QEAgY2xhc3MgU2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICA8PCByZXR2YWw7CiAgICAgICB9CiAgICAgfQorI2VuZGlmCiAgIH0KIAogIHByaXZhdGU6
CkBAIC00NDEzLDkgKzUwMzksOCBAQCBjbGFzcyBTY29wZWRQcmVtYXR1cmVFeGl0RmlsZSB7CiAK
IFRlc3RFdmVudExpc3RlbmVyczo6VGVzdEV2ZW50TGlzdGVuZXJzKCkKICAgICA6IHJlcGVhdGVy
XyhuZXcgaW50ZXJuYWw6OlRlc3RFdmVudFJlcGVhdGVyKCkpLAotICAgICAgZGVmYXVsdF9yZXN1
bHRfcHJpbnRlcl8oTlVMTCksCi0gICAgICBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKE5VTEwpIHsK
LX0KKyAgICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfKG51bGxwdHIpLAorICAgICAgZGVmYXVs
dF94bWxfZ2VuZXJhdG9yXyhudWxscHRyKSB7fQogCiBUZXN0RXZlbnRMaXN0ZW5lcnM6On5UZXN0
RXZlbnRMaXN0ZW5lcnMoKSB7IGRlbGV0ZSByZXBlYXRlcl87IH0KIApAQCAtNDQzMiw5ICs1MDU3
LDkgQEAgdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OkFwcGVuZChUZXN0RXZlbnRMaXN0ZW5lciog
bGlzdGVuZXIpIHsKIC8vIE5VTEwgaWYgdGhlIGxpc3RlbmVyIGlzIG5vdCBmb3VuZCBpbiB0aGUg
bGlzdC4KIFRlc3RFdmVudExpc3RlbmVyKiBUZXN0RXZlbnRMaXN0ZW5lcnM6OlJlbGVhc2UoVGVz
dEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7CiAgIGlmIChsaXN0ZW5lciA9PSBkZWZhdWx0X3Jl
c3VsdF9wcmludGVyXykKLSAgICBkZWZhdWx0X3Jlc3VsdF9wcmludGVyXyA9IE5VTEw7CisgICAg
ZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBudWxscHRyOwogICBlbHNlIGlmIChsaXN0ZW5lciA9
PSBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKQotICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBO
VUxMOworICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBudWxscHRyOwogICByZXR1cm4gcmVw
ZWF0ZXJfLT5SZWxlYXNlKGxpc3RlbmVyKTsKIH0KIApAQCAtNDQ1Myw4ICs1MDc4LDcgQEAgdm9p
ZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKFRlc3RFdmVudExp
c3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVm
YXVsdF9yZXN1bHRfcHJpbnRlcl8pOwogICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfID0gbGlz
dGVuZXI7Ci0gICAgaWYgKGxpc3RlbmVyICE9IE5VTEwpCi0gICAgICBBcHBlbmQobGlzdGVuZXIp
OworICAgIGlmIChsaXN0ZW5lciAhPSBudWxscHRyKSBBcHBlbmQobGlzdGVuZXIpOwogICB9CiB9
CiAKQEAgLTQ0NjksOCArNTA5Myw3IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTZXREZWZh
dWx0WG1sR2VuZXJhdG9yKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxp
c3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyk7CiAgICAgZGVm
YXVsdF94bWxfZ2VuZXJhdG9yXyA9IGxpc3RlbmVyOwotICAgIGlmIChsaXN0ZW5lciAhPSBOVUxM
KQotICAgICAgQXBwZW5kKGxpc3RlbmVyKTsKKyAgICBpZiAobGlzdGVuZXIgIT0gbnVsbHB0cikg
QXBwZW5kKGxpc3RlbmVyKTsKICAgfQogfQogCkBAIC00NDk0LDUyICs1MTE3LDY2IEBAIHZvaWQg
VGVzdEV2ZW50TGlzdGVuZXJzOjpTdXBwcmVzc0V2ZW50Rm9yd2FyZGluZygpIHsKIC8vIGNhbGwg
dGhpcyBiZWZvcmUgbWFpbigpIHN0YXJ0cywgZnJvbSB3aGljaCBwb2ludCBvbiB0aGUgcmV0dXJu
CiAvLyB2YWx1ZSB3aWxsIG5ldmVyIGNoYW5nZS4KIFVuaXRUZXN0KiBVbml0VGVzdDo6R2V0SW5z
dGFuY2UoKSB7Ci0gIC8vIFdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDIDcuMSBpbiBvcHRpbWl6ZWQg
bW9kZSwgZGVzdHJveWluZyB0aGUKLSAgLy8gVW5pdFRlc3Qgb2JqZWN0IHVwb24gZXhpdGluZyB0
aGUgcHJvZ3JhbSBtZXNzZXMgdXAgdGhlIGV4aXQgY29kZSwKLSAgLy8gY2F1c2luZyBzdWNjZXNz
ZnVsIHRlc3RzIHRvIGFwcGVhciBmYWlsZWQuICBXZSBoYXZlIHRvIHVzZSBhCi0gIC8vIGRpZmZl
cmVudCBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIGNhc2UgdG8gYnlwYXNzIHRoZSBjb21waWxlciBi
dWcuCi0gIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gbWFrZXMgdGhlIGNvbXBpbGVyIGhhcHB5LCBh
dCB0aGUgY29zdCBvZgotICAvLyBsZWFraW5nIHRoZSBVbml0VGVzdCBvYmplY3QuCi0KICAgLy8g
Q29kZUdlYXIgQysrQnVpbGRlciBpbnNpc3RzIG9uIGEgcHVibGljIGRlc3RydWN0b3IgZm9yIHRo
ZQogICAvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiAgVXNlIHRoaXMgaW1wbGVtZW50YXRpb24g
dG8ga2VlcCBnb29kIE9PCiAgIC8vIGRlc2lnbiB3aXRoIHByaXZhdGUgZGVzdHJ1Y3Rvci4KIAot
I2lmIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmluZWQoX19C
T1JMQU5EQ19fKQorI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKQogICBzdGF0aWMgVW5pdFRlc3Qq
IGNvbnN0IGluc3RhbmNlID0gbmV3IFVuaXRUZXN0OwogICByZXR1cm4gaW5zdGFuY2U7CiAjZWxz
ZQogICBzdGF0aWMgVW5pdFRlc3QgaW5zdGFuY2U7CiAgIHJldHVybiAmaW5zdGFuY2U7Ci0jZW5k
aWYgIC8vIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmluZWQo
X19CT1JMQU5EQ19fKQorI2VuZGlmICAvLyBkZWZpbmVkKF9fQk9STEFORENfXykKIH0KIAotLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVzdDo6
c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCktPnN1
Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vz
c2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdDo6c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2Nv
dW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgpLT5zdWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291
bnQoKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IGNhc2VzLgotaW50
IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gaW1w
bCgpLT5mYWlsZWRfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFp
bGVkIHRlc3Qgc3VpdGVzLgoraW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgp
IGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKTsKIH0K
IAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0Ojp0
b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCktPnRvdGFsX3Rl
c3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcy4K
K2ludCBVbml0VGVzdDo6dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJu
IGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogfQogCi0vLyBHZXRzIHRoZSBudW1i
ZXIgb2YgYWxsIHRlc3QgY2FzZXMgdGhhdCBjb250YWluIGF0IGxlYXN0IG9uZSB0ZXN0CisvLyBH
ZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBv
bmUgdGVzdAogLy8gdGhhdCBzaG91bGQgcnVuLgoraW50IFVuaXRUZXN0Ojp0ZXN0X3N1aXRlX3Rv
X3J1bl9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dGVzdF9zdWl0ZV90b19ydW5f
Y291bnQoKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZh
aWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworaW50IFVu
aXRUZXN0OjpzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGlt
cGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6OmZh
aWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPmZhaWxlZF90
ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6OnRvdGFsX3Rlc3RfY2FzZV9jb3Vu
dCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwor
fQogaW50IFVuaXRUZXN0Ojp0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3QgewotICByZXR1
cm4gaW1wbCgpLT50ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCk7CisgIHJldHVybiBpbXBsKCktPnRl
c3Rfc3VpdGVfdG9fcnVuX2NvdW50KCk7CiB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVH
QUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVz
dHMuCiBpbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0
dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCk7CiB9CiAKKy8vIEdldHMgdGhlIG51
bWJlciBvZiBza2lwcGVkIHRlc3RzLgoraW50IFVuaXRUZXN0Ojpza2lwcGVkX3Rlc3RfY291bnQo
KSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnNraXBwZWRfdGVzdF9jb3VudCgpOworfQorCiAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogaW50IFVuaXRUZXN0OjpmYWlsZWRf
dGVzdF9jb3VudCgpIGNvbnN0IHsgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3RfY291bnQoKTsg
fQogCkBAIC00NTc1LDI5ICs1MjEyLDM3IEBAIGludGVybmFsOjpUaW1lSW5NaWxsaXMgVW5pdFRl
c3Q6OmVsYXBzZWRfdGltZSgpIGNvbnN0IHsKICAgcmV0dXJuIGltcGwoKS0+ZWxhcHNlZF90aW1l
KCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4g
YWxsIHRlc3QgY2FzZXMgcGFzc2VkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKy8vIHBhc3NlZCkuCiBi
b29sIFVuaXRUZXN0OjpQYXNzZWQoKSBjb25zdCB7IHJldHVybiBpbXBsKCktPlBhc3NlZCgpOyB9
CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBmYWlsZWQgKGkuZS4gc29tZSB0
ZXN0IGNhc2UgZmFpbGVkCi0vLyBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFp
bGVkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IGZhaWxl
ZCAoaS5lLiBzb21lIHRlc3Qgc3VpdGUKKy8vIGZhaWxlZCBvciBzb21ldGhpbmcgb3V0c2lkZSBv
ZiBhbGwgdGVzdHMgZmFpbGVkKS4KIGJvb2wgVW5pdFRlc3Q6OkZhaWxlZCgpIGNvbnN0IHsgcmV0
dXJuIGltcGwoKS0+RmFpbGVkKCk7IH0KIAotLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1v
bmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLS8vIHRvdGFsX3Rl
c3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBO
VUxMLgorLy8gR2V0cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0
ZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bworLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0g
MS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorY29uc3QgVGVzdFN1
aXRlKiBVbml0VGVzdDo6R2V0VGVzdFN1aXRlKGludCBpKSBjb25zdCB7CisgIHJldHVybiBpbXBs
KCktPkdldFRlc3RTdWl0ZShpKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBi
dXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXwogY29uc3QgVGVzdENhc2UqIFVuaXRUZXN0OjpHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3Qg
ewogICByZXR1cm4gaW1wbCgpLT5HZXRUZXN0Q2FzZShpKTsKIH0KKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0
IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVzdCBmYWlsdXJlcyBhbmQKLS8vIHByb3BlcnRp
ZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzLgorLy8gcHJvcGVydGll
cyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRlc3Qgc3VpdGVzLgogY29uc3QgVGVzdFJl
c3VsdCYgVW5pdFRlc3Q6OmFkX2hvY190ZXN0X3Jlc3VsdCgpIGNvbnN0IHsKICAgcmV0dXJuICpp
bXBsKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwogfQogCi0vLyBHZXRzIHRoZSBpLXRoIHRlc3Qg
Y2FzZSBhbW9uZyBhbGwgdGhlIHRlc3QgY2FzZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwotLy8g
dG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCBy
ZXR1cm5zIE5VTEwuCi1UZXN0Q2FzZSogVW5pdFRlc3Q6OkdldE11dGFibGVUZXN0Q2FzZShpbnQg
aSkgewotICByZXR1cm4gaW1wbCgpLT5HZXRNdXRhYmxlVGVzdENhc2UoaSk7CisvLyBHZXRzIHRo
ZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2Ug
ZnJvbSAwIHRvCisvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBp
biB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCitUZXN0U3VpdGUqIFVuaXRUZXN0OjpHZXRNdXRh
YmxlVGVzdFN1aXRlKGludCBpKSB7CisgIHJldHVybiBpbXBsKCktPkdldE11dGFibGVTdWl0ZUNh
c2UoaSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGxpc3Qgb2YgZXZlbnQgbGlzdGVuZXJzIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gdHJhY2sgZXZlbnRzCkBAIC00NjE3LDggKzUyNjIsOCBAQCBUZXN0RXZl
bnRMaXN0ZW5lcnMmIFVuaXRUZXN0OjpsaXN0ZW5lcnMoKSB7CiAvLyBXZSBkb24ndCBwcm90ZWN0
IHRoaXMgdW5kZXIgbXV0ZXhfLCBhcyB3ZSBvbmx5IHN1cHBvcnQgY2FsbGluZyBpdAogLy8gZnJv
bSB0aGUgbWFpbiB0aHJlYWQuCiBFbnZpcm9ubWVudCogVW5pdFRlc3Q6OkFkZEVudmlyb25tZW50
KEVudmlyb25tZW50KiBlbnYpIHsKLSAgaWYgKGVudiA9PSBOVUxMKSB7Ci0gICAgcmV0dXJuIE5V
TEw7CisgIGlmIChlbnYgPT0gbnVsbHB0cikgeworICAgIHJldHVybiBudWxscHRyOwogICB9CiAK
ICAgaW1wbF8tPmVudmlyb25tZW50cygpLnB1c2hfYmFjayhlbnYpOwpAQCAtNDY0MiwyNSArNTI4
NywyNCBAQCB2b2lkIFVuaXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKICAgaWYgKGltcGxfLT5n
dGVzdF90cmFjZV9zdGFjaygpLnNpemUoKSA+IDApIHsKICAgICBtc2cgPDwgIlxuIiA8PCBHVEVT
VF9OQU1FXyA8PCAiIHRyYWNlOiI7CiAKLSAgICBmb3IgKGludCBpID0gc3RhdGljX2Nhc3Q8aW50
PihpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXplKCkpOwotICAgICAgICAgaSA+IDA7IC0t
aSkgeworICAgIGZvciAoc2l6ZV90IGkgPSBpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXpl
KCk7IGkgPiAwOyAtLWkpIHsKICAgICAgIGNvbnN0IGludGVybmFsOjpUcmFjZUluZm8mIHRyYWNl
ID0gaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKClbaSAtIDFdOwogICAgICAgbXNnIDw8ICJcbiIg
PDwgaW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlvbih0cmFjZS5maWxlLCB0cmFjZS5saW5lKQog
ICAgICAgICAgIDw8ICIgIiA8PCB0cmFjZS5tZXNzYWdlOwogICAgIH0KICAgfQogCi0gIGlmIChv
c19zdGFja190cmFjZS5jX3N0cigpICE9IE5VTEwgJiYgIW9zX3N0YWNrX3RyYWNlLmVtcHR5KCkp
IHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlLmNfc3RyKCkgIT0gbnVsbHB0ciAmJiAhb3Nfc3RhY2tf
dHJhY2UuZW1wdHkoKSkgewogICAgIG1zZyA8PCBpbnRlcm5hbDo6a1N0YWNrVHJhY2VNYXJrZXIg
PDwgb3Nfc3RhY2tfdHJhY2U7CiAgIH0KIAotICBjb25zdCBUZXN0UGFydFJlc3VsdCByZXN1bHQg
PQotICAgIFRlc3RQYXJ0UmVzdWx0KHJlc3VsdF90eXBlLCBmaWxlX25hbWUsIGxpbmVfbnVtYmVy
LAotICAgICAgICAgICAgICAgICAgIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgY29uc3Qg
VGVzdFBhcnRSZXN1bHQgcmVzdWx0ID0gVGVzdFBhcnRSZXN1bHQoCisgICAgICByZXN1bHRfdHlw
ZSwgZmlsZV9uYW1lLCBsaW5lX251bWJlciwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwogICBp
bXBsXy0+R2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoKS0+CiAgICAg
ICBSZXBvcnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwogCi0gIGlmIChyZXN1bHRfdHlwZSAhPSBU
ZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpIHsKKyAgaWYgKHJlc3VsdF90eXBlICE9IFRlc3RQYXJ0
UmVzdWx0OjprU3VjY2VzcyAmJgorICAgICAgcmVzdWx0X3R5cGUgIT0gVGVzdFBhcnRSZXN1bHQ6
OmtTa2lwKSB7CiAgICAgLy8gZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSB0YWtlcyBwcmVjZWRlbmNl
IG92ZXIKICAgICAvLyBndGVzdF90aHJvd19vbl9mYWlsdXJlLiAgVGhpcyBhbGxvd3MgYSB1c2Vy
IHRvIHNldCB0aGUgbGF0dGVyCiAgICAgLy8gaW4gdGhlIGNvZGUgKHBlcmhhcHMgaW4gb3JkZXIg
dG8gdXNlIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMKQEAgLTQ2NzgsMTEgKzUzMjIsMTAgQEAgdm9p
ZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCiAgICAgICAvLyB3aXRoIGNsYW5nL2djYyB3
ZSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgb24geDg2IGJ5IGludm9raW5nIGludDMKICAg
ICAgIGFzbSgiaW50MyIpOwogI2Vsc2UKLSAgICAgIC8vIERlcmVmZXJlbmNlIE5VTEwgdGhyb3Vn
aCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVudCB0aGUgY29tcGlsZXIKKyAgICAgIC8vIERl
cmVmZXJlbmNlIG51bGxwdHIgdGhyb3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVudCB0
aGUgY29tcGlsZXIKICAgICAgIC8vIGZyb20gcmVtb3ZpbmcuIFdlIHVzZSB0aGlzIHJhdGhlciB0
aGFuIGFib3J0KCkgb3IgX19idWlsdGluX3RyYXAoKSBmb3IKLSAgICAgIC8vIHBvcnRhYmlsaXR5
OiBTeW1iaWFuIGRvZXNuJ3QgaW1wbGVtZW50IGFib3J0KCkgd2VsbCwgYW5kIHNvbWUgZGVidWdn
ZXJzCi0gICAgICAvLyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgotICAgICAgKnN0YXRp
Y19jYXN0PHZvbGF0aWxlIGludCo+KE5VTEwpID0gMTsKKyAgICAgIC8vIHBvcnRhYmlsaXR5OiBz
b21lIGRlYnVnZ2VycyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgorICAgICAgKnN0YXRp
Y19jYXN0PHZvbGF0aWxlIGludCo+KG51bGxwdHIpID0gMTsKICNlbmRpZiAgLy8gR1RFU1RfT1Nf
V0lORE9XUwogICAgIH0gZWxzZSBpZiAoR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSkgewog
I2lmIEdURVNUX0hBU19FWENFUFRJT05TCkBAIC00Njk3LDggKzUzNDAsOCBAQCB2b2lkIFVuaXRU
ZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKIH0KIAogLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0
aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJvbQotLy8gaW5zaWRl
IGEgdGVzdCwgdG8gY3VycmVudCBUZXN0Q2FzZSdzIGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hlbiBp
bnZva2VkCi0vLyBmcm9tIFNldFVwVGVzdENhc2Ugb3IgVGVhckRvd25UZXN0Q2FzZSwgb3IgdG8g
dGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKKy8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVz
dFN1aXRlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKKy8vIGZyb20gU2V0VXBU
ZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkg
c2V0CiAvLyB3aGVuIGludm9rZWQgZWxzZXdoZXJlLiAgSWYgdGhlIHJlc3VsdCBhbHJlYWR5IGNv
bnRhaW5zIGEgcHJvcGVydHkgd2l0aAogLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2lsbCBi
ZSB1cGRhdGVkLgogdm9pZCBVbml0VGVzdDo6UmVjb3JkUHJvcGVydHkoY29uc3Qgc3RkOjpzdHJp
bmcmIGtleSwKQEAgLTQ3MzcsOCArNTM4MCw5IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewogICAv
LyB0aGF0IHVuZGVyc3RhbmRzIHRoZSBwcmVtYXR1cmUtZXhpdC1maWxlIHByb3RvY29sIHRvIHJl
cG9ydCB0aGUKICAgLy8gdGVzdCBhcyBoYXZpbmcgZmFpbGVkLgogICBjb25zdCBpbnRlcm5hbDo6
U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgcHJlbWF0dXJlX2V4aXRfZmlsZSgKLSAgICAgIGluX2Rl
YXRoX3Rlc3RfY2hpbGRfcHJvY2VzcyA/Ci0gICAgICBOVUxMIDogaW50ZXJuYWw6OnBvc2l4OjpH
ZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKKyAgICAgIGluX2RlYXRoX3Rlc3Rf
Y2hpbGRfcHJvY2VzcworICAgICAgICAgID8gbnVsbHB0cgorICAgICAgICAgIDogaW50ZXJuYWw6
OnBvc2l4OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKIAogICAvLyBDYXB0
dXJlcyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKS4gIFRoaXMgdmFs
dWUgd2lsbCBiZQogICAvLyB1c2VkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHByb2dyYW0uCkBA
IC00NzYzLDIyICs1NDA3LDI2IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewogICAgIF9zZXRfZXJy
b3JfbW9kZShfT1VUX1RPX1NUREVSUik7CiAjIGVuZGlmCiAKLSMgaWYgX01TQ19WRVIgPj0gMTQw
MCAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKKyMgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
IUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAgICAgLy8gSW4gdGhlIGRlYnVnIHZlcnNpb24sIFZp
c3VhbCBTdHVkaW8gcG9wcyB1cCBhIHNlcGFyYXRlIGRpYWxvZwogICAgIC8vIG9mZmVyaW5nIGEg
Y2hvaWNlIHRvIGRlYnVnIHRoZSBhYm9ydGVkIHByb2dyYW0uIFdlIG5lZWQgdG8gc3VwcHJlc3MK
ICAgICAvLyB0aGlzIGRpYWxvZyBvciBpdCB3aWxsIHBvcCB1cCBmb3IgZXZlcnkgRVhQRUNUL0FT
U0VSVF9ERUFUSCBzdGF0ZW1lbnQKICAgICAvLyBleGVjdXRlZC4gR29vZ2xlIFRlc3Qgd2lsbCBu
b3RpZnkgdGhlIHVzZXIgb2YgYW55IHVuZXhwZWN0ZWQKICAgICAvLyBmYWlsdXJlIHZpYSBzdGRl
cnIuCi0gICAgLy8KLSAgICAvLyBWQysrIGRvZXNuJ3QgZGVmaW5lIF9zZXRfYWJvcnRfYmVoYXZp
b3IoKSBwcmlvciB0byB0aGUgdmVyc2lvbiA4LjAuCi0gICAgLy8gVXNlcnMgb2YgcHJpb3IgVkMg
dmVyc2lvbnMgc2hhbGwgc3VmZmVyIHRoZSBhZ29ueSBhbmQgcGFpbiBvZgotICAgIC8vIGNsaWNr
aW5nIHRocm91Z2ggdGhlIGNvdW50bGVzcyBkZWJ1ZyBkaWFsb2dzLgotICAgIC8vIEZJWE1FOiBm
aW5kIGEgd2F5IHRvIHN1cHByZXNzIHRoZSBhYm9ydCBkaWFsb2coKSBpbiB0aGUKLSAgICAvLyBk
ZWJ1ZyBtb2RlIHdoZW4gY29tcGlsZWQgd2l0aCBWQyA3LjEgb3IgbG93ZXIuCiAgICAgaWYgKCFH
VEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKQogICAgICAgX3NldF9hYm9ydF9iZWhhdmlvcigK
ICAgICAgICAgICAweDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xl
YXIgdGhlIGZvbGxvd2luZyBmbGFnczoKICAgICAgICAgICBfV1JJVEVfQUJPUlRfTVNHIHwgX0NB
TExfUkVQT1JURkFVTFQpOyAgLy8gcG9wLXVwIHdpbmRvdywgY29yZSBkdW1wLgorCisgICAgLy8g
SW4gZGVidWcgbW9kZSwgdGhlIFdpbmRvd3MgQ1JUIGNhbiBjcmFzaCB3aXRoIGFuIGFzc2VydGlv
biBvdmVyIGludmFsaWQKKyAgICAvLyBpbnB1dCAoZS5nLiBwYXNzaW5nIGFuIGludmFsaWQgZmls
ZSBkZXNjcmlwdG9yKS4gIFRoZSBkZWZhdWx0IGhhbmRsaW5nCisgICAgLy8gZm9yIHRoZXNlIGFz
c2VydGlvbnMgaXMgdG8gcG9wIHVwIGEgZGlhbG9nIGFuZCB3YWl0IGZvciB1c2VyIGlucHV0Lgor
ICAgIC8vIEluc3RlYWQgYXNrIHRoZSBDUlQgdG8gZHVtcCBzdWNoIGFzc2VydGlvbnMgdG8gc3Rk
ZXJyIG5vbi1pbnRlcmFjdGl2ZWx5LgorICAgIGlmICghSXNEZWJ1Z2dlclByZXNlbnQoKSkgewor
ICAgICAgKHZvaWQpX0NydFNldFJlcG9ydE1vZGUoX0NSVF9BU1NFUlQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfQ1JUREJHX01PREVfRklMRSB8IF9DUlREQkdfTU9ERV9ERUJVRyk7
CisgICAgICAodm9pZClfQ3J0U2V0UmVwb3J0RmlsZShfQ1JUX0FTU0VSVCwgX0NSVERCR19GSUxF
X1NUREVSUik7CisgICAgfQogIyBlbmRpZgogICB9CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1MKQEAgLTQ3OTUsMTMgKzU0NDMsMjIgQEAgY29uc3QgY2hhciogVW5pdFRlc3Q6Om9yaWdpbmFs
X3dvcmtpbmdfZGlyKCkgY29uc3QgewogICByZXR1cm4gaW1wbF8tPm9yaWdpbmFsX3dvcmtpbmdf
ZGlyXy5jX3N0cigpOwogfQogCi0vLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9yIHRo
ZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKy8vIFJldHVybnMgdGhlIFRlc3RTdWl0
ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKIC8vIG9yIE5V
TEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgorY29uc3QgVGVzdFN1aXRlKiBVbml0VGVzdDo6Y3Vy
cmVudF90ZXN0X3N1aXRlKCkgY29uc3QKKyAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8p
IHsKKyAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2NrKCZtdXRleF8pOworICByZXR1cm4gaW1wbF8t
PmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworfQorCisvLyBMZWdhY3kgQVBJIGlzIHN0aWxsIGF2YWls
YWJsZSBidXQgZGVwcmVjYXRlZAorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FT
RUFQSV8KIGNvbnN0IFRlc3RDYXNlKiBVbml0VGVzdDo6Y3VycmVudF90ZXN0X2Nhc2UoKSBjb25z
dAogICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgewogICBpbnRlcm5hbDo6TXV0ZXhM
b2NrIGxvY2soJm11dGV4Xyk7Ci0gIHJldHVybiBpbXBsXy0+Y3VycmVudF90ZXN0X2Nhc2UoKTsK
KyAgcmV0dXJuIGltcGxfLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKIH0KKyNlbmRpZgogCiAvLyBS
ZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkg
cnVubmluZywKIC8vIG9yIE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgpAQCAtNDgxNCwxMSAr
NTQ3MSwxMCBAQCBjb25zdCBUZXN0SW5mbyogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9pbmZvKCkg
Y29uc3QKIC8vIFJldHVybnMgdGhlIHJhbmRvbSBzZWVkIHVzZWQgYXQgdGhlIHN0YXJ0IG9mIHRo
ZSBjdXJyZW50IHRlc3QgcnVuLgogaW50IFVuaXRUZXN0OjpyYW5kb21fc2VlZCgpIGNvbnN0IHsg
cmV0dXJuIGltcGxfLT5yYW5kb21fc2VlZCgpOyB9CiAKLS8vIFJldHVybnMgUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorLy8gUmV0dXJu
cyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFj
ayBvZgogLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJl
Z2lzdGVyIHRoZW0uCi1pbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmCi0g
ICAgVW5pdFRlc3Q6OnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCi0gICAgICAgIEdURVNU
X0xPQ0tfRVhDTFVERURfKG11dGV4XykgeworaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVSZWdpc3RyeSYKK1VuaXRUZXN0OjpwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSBHVEVT
VF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKICAgcmV0dXJuIGltcGxfLT5wYXJhbWV0ZXJpemVk
X3Rlc3RfcmVnaXN0cnkoKTsKIH0KIApAQCAtNDg1MiwyMyArNTUwOCwyMiBAQCBuYW1lc3BhY2Ug
aW50ZXJuYWwgewogVW5pdFRlc3RJbXBsOjpVbml0VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVudCkK
ICAgICA6IHBhcmVudF8ocGFyZW50KSwKICAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdT
X1BVU0hfKDQzNTUgLyogdXNpbmcgdGhpcyBpbiBpbml0aWFsaXplciAqLykKLSAgICAgIGRlZmF1
bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAorICAgICAgICAgIGRl
ZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAogICAgICAgZGVm
YXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAgICAg
R1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0gICAgICBnbG9iYWxfdGVzdF9wYXJ0
X3Jlc3VsdF9yZXBvdGVyXygKKyAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8o
KSBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvdGVyXygKICAgICAgICAgICAmZGVmYXVsdF9n
bG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRlcl8pLAogICAgICAgcGVyX3RocmVhZF90ZXN0
X3BhcnRfcmVzdWx0X3JlcG9ydGVyXygKICAgICAgICAgICAmZGVmYXVsdF9wZXJfdGhyZWFkX3Rl
c3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeV8oKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8oZmFsc2UpLAot
ICAgICAgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfKC0xKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9jYXNl
XyhOVUxMKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhOVUxMKSwKKyAgICAgIGxhc3RfZGVh
dGhfdGVzdF9zdWl0ZV8oLTEpLAorICAgICAgY3VycmVudF90ZXN0X3N1aXRlXyhudWxscHRyKSwK
KyAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhudWxscHRyKSwKICAgICAgIGFkX2hvY190ZXN0X3Jl
c3VsdF8oKSwKLSAgICAgIG9zX3N0YWNrX3RyYWNlX2dldHRlcl8oTlVMTCksCisgICAgICBvc19z
dGFja190cmFjZV9nZXR0ZXJfKG51bGxwdHIpLAogICAgICAgcG9zdF9mbGFnX3BhcnNlX2luaXRf
cGVyZm9ybWVkXyhmYWxzZSksCiAgICAgICByYW5kb21fc2VlZF8oMCksICAvLyBXaWxsIGJlIG92
ZXJyaWRkZW4gYnkgdGhlIGZsYWcgYmVmb3JlIGZpcnN0IHVzZS4KLSAgICAgIHJhbmRvbV8oMCks
ICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCisgICAgICByYW5kb21fKDAp
LCAgICAgICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCiAgICAgICBzdGFy
dF90aW1lc3RhbXBfKDApLAogICAgICAgZWxhcHNlZF90aW1lXygwKSwKICNpZiBHVEVTVF9IQVNf
REVBVEhfVEVTVApAQCAtNDg4MCw4ICs1NTM1LDggQEAgVW5pdFRlc3RJbXBsOjpVbml0VGVzdElt
cGwoVW5pdFRlc3QqIHBhcmVudCkKIH0KIAogVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBsKCkg
ewotICAvLyBEZWxldGVzIGV2ZXJ5IFRlc3RDYXNlLgotICBGb3JFYWNoKHRlc3RfY2FzZXNfLCBp
bnRlcm5hbDo6RGVsZXRlPFRlc3RDYXNlPik7CisgIC8vIERlbGV0ZXMgZXZlcnkgVGVzdFN1aXRl
LgorICBGb3JFYWNoKHRlc3Rfc3VpdGVzXywgaW50ZXJuYWw6OkRlbGV0ZTxUZXN0U3VpdGU+KTsK
IAogICAvLyBEZWxldGVzIGV2ZXJ5IEVudmlyb25tZW50LgogICBGb3JFYWNoKGVudmlyb25tZW50
c18sIGludGVybmFsOjpEZWxldGU8RW52aXJvbm1lbnQ+KTsKQEAgLTQ4OTAsMjAgKzU1NDUsMjAg
QEAgVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBsKCkgewogfQogCiAvLyBBZGRzIGEgVGVzdFBy
b3BlcnR5IHRvIHRoZSBjdXJyZW50IFRlc3RSZXN1bHQgb2JqZWN0IHdoZW4gaW52b2tlZCBpbiBh
Ci0vLyBjb250ZXh0IG9mIGEgdGVzdCwgdG8gY3VycmVudCB0ZXN0IGNhc2UncyBhZF9ob2NfdGVz
dF9yZXN1bHQgd2hlbiBpbnZva2UKLS8vIGZyb20gU2V0VXBUZXN0Q2FzZS9UZWFyRG93blRlc3RD
YXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldAorLy8gY29udGV4dCBvZiBhIHRlc3Qs
IHRvIGN1cnJlbnQgdGVzdCBzdWl0ZSdzIGFkX2hvY190ZXN0X3Jlc3VsdCB3aGVuIGludm9rZQor
Ly8gZnJvbSBTZXRVcFRlc3RTdWl0ZS9UZWFyRG93blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2Jh
bCBwcm9wZXJ0eSBzZXQKIC8vIG90aGVyd2lzZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250
YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUga2V5LAogLy8gdGhlIHZhbHVlIHdpbGwgYmUg
dXBkYXRlZC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpSZWNvcmRQcm9wZXJ0eShjb25zdCBUZXN0UHJv
cGVydHkmIHRlc3RfcHJvcGVydHkpIHsKICAgc3RkOjpzdHJpbmcgeG1sX2VsZW1lbnQ7CiAgIFRl
c3RSZXN1bHQqIHRlc3RfcmVzdWx0OyAgLy8gVGVzdFJlc3VsdCBhcHByb3ByaWF0ZSBmb3IgcHJv
cGVydHkgcmVjb3JkaW5nLgogCi0gIGlmIChjdXJyZW50X3Rlc3RfaW5mb18gIT0gTlVMTCkgewor
ICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxlbWVudCA9
ICJ0ZXN0Y2FzZSI7CiAgICAgdGVzdF9yZXN1bHQgPSAmKGN1cnJlbnRfdGVzdF9pbmZvXy0+cmVz
dWx0Xyk7Ci0gIH0gZWxzZSBpZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKKyAgfSBl
bHNlIGlmIChjdXJyZW50X3Rlc3Rfc3VpdGVfICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxlbWVu
dCA9ICJ0ZXN0c3VpdGUiOwotICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3RfY2FzZV8t
PmFkX2hvY190ZXN0X3Jlc3VsdF8pOworICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3Rf
c3VpdGVfLT5hZF9ob2NfdGVzdF9yZXN1bHRfKTsKICAgfSBlbHNlIHsKICAgICB4bWxfZWxlbWVu
dCA9ICJ0ZXN0c3VpdGVzIjsKICAgICB0ZXN0X3Jlc3VsdCA9ICZhZF9ob2NfdGVzdF9yZXN1bHRf
OwpAQCAtNDkxNSw3ICs1NTcwLDcgQEAgdm9pZCBVbml0VGVzdEltcGw6OlJlY29yZFByb3BlcnR5
KGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSkgewogLy8gRGlzYWJsZXMgZXZlbnQg
Zm9yd2FyZGluZyBpZiB0aGUgY29udHJvbCBpcyBjdXJyZW50bHkgaW4gYSBkZWF0aCB0ZXN0CiAv
LyBzdWJwcm9jZXNzLiBNdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIEluaXRHb29nbGVUZXN0Lgog
dm9pZCBVbml0VGVzdEltcGw6OlN1cHByZXNzVGVzdEV2ZW50c0lmSW5TdWJwcm9jZXNzKCkgewot
ICBpZiAoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ18uZ2V0KCkgIT0gTlVMTCkKKyAgaWYg
KGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IG51bGxwdHIpCiAgICAgbGlz
dGVuZXJzKCktPlN1cHByZXNzRXZlbnRGb3J3YXJkaW5nKCk7CiB9CiAjZW5kaWYgIC8vIEdURVNU
X0hBU19ERUFUSF9URVNUCkBAIC00OTgzLDYgKzU2MzgsMTAgQEAgdm9pZCBVbml0VGVzdEltcGw6
OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7CiAgICAgLy8gdG8gc2h1dCBkb3duIHRoZSBkZWZhdWx0
IFhNTCBvdXRwdXQgYmVmb3JlIGludm9raW5nIFJVTl9BTExfVEVTVFMuCiAgICAgQ29uZmlndXJl
WG1sT3V0cHV0KCk7CiAKKyAgICBpZiAoR1RFU1RfRkxBRyhicmllZikpIHsKKyAgICAgIGxpc3Rl
bmVycygpLT5TZXREZWZhdWx0UmVzdWx0UHJpbnRlcihuZXcgQnJpZWZVbml0VGVzdFJlc3VsdFBy
aW50ZXIpOworICAgIH0KKwogI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KICAgICAvLyBD
b25maWd1cmVzIGxpc3RlbmVycyBmb3Igc3RyZWFtaW5nIHRlc3QgcmVzdWx0cyB0byB0aGUgc3Bl
Y2lmaWVkIHNlcnZlci4KICAgICBDb25maWd1cmVTdHJlYW1pbmdPdXRwdXQoKTsKQEAgLTQ5OTcs
NzQgKzU2NTYsNzMgQEAgdm9pZCBVbml0VGVzdEltcGw6OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7
CiAgIH0KIH0KIAotLy8gQSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgdGhlIG5hbWUgb2YgYSBUZXN0
Q2FzZSBhZ2FpbnN0IGEga25vd24KKy8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSBuYW1l
IG9mIGEgVGVzdFN1aXRlIGFnYWluc3QgYSBrbm93bgogLy8gdmFsdWUuCiAvLwogLy8gVGhpcyBp
cyB1c2VkIGZvciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pdFRlc3QgY2xhc3Mgb25seS4gIFdl
IHB1dAogLy8gaXQgaW4gdGhlIGFub255bW91cyBuYW1lc3BhY2UgdG8gcHJldmVudCBwb2xsdXRp
bmcgdGhlIG91dGVyCiAvLyBuYW1lc3BhY2UuCiAvLwotLy8gVGVzdENhc2VOYW1lSXMgaXMgY29w
eWFibGUuCi1jbGFzcyBUZXN0Q2FzZU5hbWVJcyB7CisvLyBUZXN0U3VpdGVOYW1lSXMgaXMgY29w
eWFibGUuCitjbGFzcyBUZXN0U3VpdGVOYW1lSXMgewogIHB1YmxpYzoKICAgLy8gQ29uc3RydWN0
b3IuCi0gIGV4cGxpY2l0IFRlc3RDYXNlTmFtZUlzKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKQot
ICAgICAgOiBuYW1lXyhuYW1lKSB7fQorICBleHBsaWNpdCBUZXN0U3VpdGVOYW1lSXMoY29uc3Qg
c3RkOjpzdHJpbmcmIG5hbWUpIDogbmFtZV8obmFtZSkge30KIAotICAvLyBSZXR1cm5zIHRydWUg
aWZmIHRoZSBuYW1lIG9mIHRlc3RfY2FzZSBtYXRjaGVzIG5hbWVfLgotICBib29sIG9wZXJhdG9y
KCkoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgY29uc3QgewotICAgIHJldHVybiB0ZXN0X2Nh
c2UgIT0gTlVMTCAmJiBzdHJjbXAodGVzdF9jYXNlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkpID09
IDA7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgbmFtZSBvZiB0ZXN0X3N1
aXRlIG1hdGNoZXMgbmFtZV8uCisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0U3VpdGUqIHRl
c3Rfc3VpdGUpIGNvbnN0IHsKKyAgICByZXR1cm4gdGVzdF9zdWl0ZSAhPSBudWxscHRyICYmCisg
ICAgICAgICAgIHN0cmNtcCh0ZXN0X3N1aXRlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkpID09IDA7
CiAgIH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3RyaW5nIG5hbWVfOwogfTsKIAotLy8gRmluZHMg
YW5kIHJldHVybnMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRvZXNu
J3QKKy8vIEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5hbWUu
ICBJZiBvbmUgZG9lc24ndAogLy8gZXhpc3QsIGNyZWF0ZXMgb25lIGFuZCByZXR1cm5zIGl0LiAg
SXQncyB0aGUgQ0FMTEVSJ1MKIC8vIFJFU1BPTlNJQklMSVRZIHRvIGVuc3VyZSB0aGF0IHRoaXMg
ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgV0hFTiBUSEUKIC8vIFRFU1RTIEFSRSBOT1QgU0hVRkZM
RUQuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6IG5hbWUgb2Yg
dGhlIHRlc3QgY2FzZQotLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3Qg
Y2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgICB0
aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8v
ICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0
aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICBwb2ludGVyIHRvIHRoZSBmdW5jdGlv
biB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVzdENhc2UqIFVuaXRUZXN0SW1wbDo6
R2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3Rj
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0
Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKSB7Ci0gIC8vIENhbiB3ZSBmaW5kIGEgVGVzdENhc2Ugd2l0
aCB0aGUgZ2l2ZW4gbmFtZT8KLSAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPjo6Y29uc3Rf
cmV2ZXJzZV9pdGVyYXRvciB0ZXN0X2Nhc2UgPQotICAgICAgc3RkOjpmaW5kX2lmKHRlc3RfY2Fz
ZXNfLnJiZWdpbigpLCB0ZXN0X2Nhc2VzXy5yZW5kKCksCi0gICAgICAgICAgICAgICAgICAgVGVz
dENhc2VOYW1lSXModGVzdF9jYXNlX25hbWUpKTsKLQotICBpZiAodGVzdF9jYXNlICE9IHRlc3Rf
Y2FzZXNfLnJlbmQoKSkKLSAgICByZXR1cm4gKnRlc3RfY2FzZTsKKy8vICAgdGVzdF9zdWl0ZV9u
YW1lOiBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHR5cGVfcGFyYW06ICAgICAgdGhlIG5h
bWUgb2YgdGhlIHRlc3Qgc3VpdGUncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgorLy8gICAg
ICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZS4KKy8vICAgc2V0X3VwX3RjOiAgICAgICBwb2ludGVyIHRvIHRoZSBmdW5j
dGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKy8vICAgdGVhcl9kb3duX3RjOiAgICBw
b2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKK1Rl
c3RTdWl0ZSogVW5pdFRlc3RJbXBsOjpHZXRUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciogdGVz
dF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgIGludGVybmFsOjpTZXRV
cFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0
ZUZ1bmMgdGVhcl9kb3duX3RjKSB7CisgIC8vIENhbiB3ZSBmaW5kIGEgVGVzdFN1aXRlIHdpdGgg
dGhlIGdpdmVuIG5hbWU/CisgIGNvbnN0IGF1dG8gdGVzdF9zdWl0ZSA9CisgICAgICBzdGQ6OmZp
bmRfaWYodGVzdF9zdWl0ZXNfLnJiZWdpbigpLCB0ZXN0X3N1aXRlc18ucmVuZCgpLAorICAgICAg
ICAgICAgICAgICAgIFRlc3RTdWl0ZU5hbWVJcyh0ZXN0X3N1aXRlX25hbWUpKTsKKworICBpZiAo
dGVzdF9zdWl0ZSAhPSB0ZXN0X3N1aXRlc18ucmVuZCgpKSByZXR1cm4gKnRlc3Rfc3VpdGU7CiAK
ICAgLy8gTm8uICBMZXQncyBjcmVhdGUgb25lLgotICBUZXN0Q2FzZSogY29uc3QgbmV3X3Rlc3Rf
Y2FzZSA9Ci0gICAgICBuZXcgVGVzdENhc2UodGVzdF9jYXNlX25hbWUsIHR5cGVfcGFyYW0sIHNl
dF91cF90YywgdGVhcl9kb3duX3RjKTsKLQotICAvLyBJcyB0aGlzIGEgZGVhdGggdGVzdCBjYXNl
PwotICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0X2Nh
c2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a0RlYXRoVGVzdENhc2VGaWx0ZXIpKSB7Ci0gICAgLy8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVzdCBj
YXNlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3QgY2FzZQotICAgIC8vIGRlZmluZWQgc28gZmFy
LiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHRlc3QgY2FzZXMgaGF2ZW4ndAorICBhdXRvKiBj
b25zdCBuZXdfdGVzdF9zdWl0ZSA9CisgICAgICBuZXcgVGVzdFN1aXRlKHRlc3Rfc3VpdGVfbmFt
ZSwgdHlwZV9wYXJhbSwgc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpOworCisgIC8vIElzIHRoaXMg
YSBkZWF0aCB0ZXN0IHN1aXRlPworICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0
Y2hlc0ZpbHRlcih0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtEZWF0aFRlc3RTdWl0ZUZpbHRlcikpIHsKKyAgICAvLyBZZXMu
ICBJbnNlcnRzIHRoZSB0ZXN0IHN1aXRlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3VpdGUK
KyAgICAvLyBkZWZpbmVkIHNvIGZhci4gIFRoaXMgb25seSB3b3JrcyB3aGVuIHRoZSB0ZXN0IHN1
aXRlcyBoYXZlbid0CiAgICAgLy8gYmVlbiBzaHVmZmxlZC4gIE90aGVyd2lzZSB3ZSBtYXkgZW5k
IHVwIHJ1bm5pbmcgYSBkZWF0aCB0ZXN0CiAgICAgLy8gYWZ0ZXIgYSBub24tZGVhdGggdGVzdC4K
LSAgICArK2xhc3RfZGVhdGhfdGVzdF9jYXNlXzsKLSAgICB0ZXN0X2Nhc2VzXy5pbnNlcnQodGVz
dF9jYXNlc18uYmVnaW4oKSArIGxhc3RfZGVhdGhfdGVzdF9jYXNlXywKLSAgICAgICAgICAgICAg
ICAgICAgICAgbmV3X3Rlc3RfY2FzZSk7CisgICAgKytsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfOwor
ICAgIHRlc3Rfc3VpdGVzXy5pbnNlcnQodGVzdF9zdWl0ZXNfLmJlZ2luKCkgKyBsYXN0X2RlYXRo
X3Rlc3Rfc3VpdGVfLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Rlc3Rfc3VpdGUpOwog
ICB9IGVsc2UgewogICAgIC8vIE5vLiAgQXBwZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaXN0Lgot
ICAgIHRlc3RfY2FzZXNfLnB1c2hfYmFjayhuZXdfdGVzdF9jYXNlKTsKKyAgICB0ZXN0X3N1aXRl
c18ucHVzaF9iYWNrKG5ld190ZXN0X3N1aXRlKTsKICAgfQogCi0gIHRlc3RfY2FzZV9pbmRpY2Vz
Xy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VfaW5kaWNlc18uc2l6ZSgpKSk7
Ci0gIHJldHVybiBuZXdfdGVzdF9jYXNlOworICB0ZXN0X3N1aXRlX2luZGljZXNfLnB1c2hfYmFj
ayhzdGF0aWNfY2FzdDxpbnQ+KHRlc3Rfc3VpdGVfaW5kaWNlc18uc2l6ZSgpKSk7CisgIHJldHVy
biBuZXdfdGVzdF9zdWl0ZTsKIH0KIAogLy8gSGVscGVycyBmb3Igc2V0dGluZyB1cCAvIHRlYXJp
bmcgZG93biB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQuICBUaGV5CkBAIC01MDgyLDcgKzU3NDAsOCBA
QCBzdGF0aWMgdm9pZCBUZWFyRG93bkVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsgZW52
LT5UZWFyRG93bigpOyB9CiAvLyBBbGwgb3RoZXIgZnVuY3Rpb25zIGNhbGxlZCBmcm9tIFJ1bkFs
bFRlc3RzKCkgbWF5IHNhZmVseSBhc3N1bWUgdGhhdAogLy8gcGFyYW1ldGVyaXplZCB0ZXN0cyBh
cmUgcmVhZHkgdG8gYmUgY291bnRlZCBhbmQgcnVuLgogYm9vbCBVbml0VGVzdEltcGw6OlJ1bkFs
bFRlc3RzKCkgewotICAvLyBUcnVlIGlmZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZv
cmUgUlVOX0FMTF9URVNUUygpIGlzIGNhbGxlZC4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBH
b29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzCisgIC8v
IGNhbGxlZC4KICAgY29uc3QgYm9vbCBndGVzdF9pc19pbml0aWFsaXplZF9iZWZvcmVfcnVuX2Fs
bF90ZXN0cyA9IEdUZXN0SXNJbml0aWFsaXplZCgpOwogCiAgIC8vIERvIG5vdCBydW4gYW55IHRl
c3QgaWYgdGhlIC0taGVscCBmbGFnIHdhcyBzcGVjaWZpZWQuCkBAIC01MDk4LDEyICs1NzU3LDEz
IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgLy8gcHJvdG9jb2wuCiAg
IGludGVybmFsOjpXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKTsKIAotICAvLyBUcnVl
IGlmZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5
bGUKKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZvciBy
dW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5bGUKICAgLy8gZGVhdGggdGVzdC4KICAgYm9vbCBpbl9z
dWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gZmFsc2U7CiAKICNpZiBHVEVTVF9IQVNfREVBVEhf
VEVTVAotICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gKGludGVybmFsX3J1bl9kZWF0
aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwpOworICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90
ZXN0ID0KKyAgICAgIChpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBudWxs
cHRyKTsKICMgaWYgZGVmaW5lZChHVEVTVF9FWFRSQV9ERUFUSF9URVNUX0NISUxEX1NFVFVQXykK
ICAgaWYgKGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QpIHsKICAgICBHVEVTVF9FWFRSQV9E
RUFUSF9URVNUX0NISUxEX1NFVFVQXygpOwpAQCAtNTEzMCw3ICs1NzkwLDcgQEAgYm9vbCBVbml0
VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICByYW5kb21fc2VlZF8gPSBHVEVTVF9GTEFHKHNo
dWZmbGUpID8KICAgICAgIEdldFJhbmRvbVNlZWRGcm9tRmxhZyhHVEVTVF9GTEFHKHJhbmRvbV9z
ZWVkKSkgOiAwOwogCi0gIC8vIFRydWUgaWZmIGF0IGxlYXN0IG9uZSB0ZXN0IGhhcyBmYWlsZWQu
CisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgYXQgbGVhc3Qgb25lIHRlc3QgaGFzIGZhaWxlZC4K
ICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIg
PSBsaXN0ZW5lcnMoKS0+cmVwZWF0ZXIoKTsKQEAgLTUxNDIsMTcgKzU4MDIsMTcgQEAgYm9vbCBV
bml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICAvLyB3aGVuIHdlIGFyZSBpbnNpZGUgdGhl
IHN1YnByb2Nlc3Mgb2YgYSBkZWF0aCB0ZXN0LgogICBjb25zdCBpbnQgcmVwZWF0ID0gaW5fc3Vi
cHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA/IDEgOiBHVEVTVF9GTEFHKHJlcGVhdCk7CiAgIC8vIFJl
cGVhdHMgZm9yZXZlciBpZiB0aGUgcmVwZWF0IGNvdW50IGlzIG5lZ2F0aXZlLgotICBjb25zdCBi
b29sIGZvcmV2ZXIgPSByZXBlYXQgPCAwOwotICBmb3IgKGludCBpID0gMDsgZm9yZXZlciB8fCBp
ICE9IHJlcGVhdDsgaSsrKSB7CisgIGNvbnN0IGJvb2wgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgPSBy
ZXBlYXQgPCAwOworICBmb3IgKGludCBpID0gMDsgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgfHwgaSAh
PSByZXBlYXQ7IGkrKykgewogICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VydmUgZmFpbHVyZXMgZ2Vu
ZXJhdGVkIGJ5IGFkLWhvYyB0ZXN0CiAgICAgLy8gYXNzZXJ0aW9ucyBleGVjdXRlZCBiZWZvcmUg
UlVOX0FMTF9URVNUUygpLgogICAgIENsZWFyTm9uQWRIb2NUZXN0UmVzdWx0KCk7CiAKLSAgICBj
b25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBHZXRUaW1lSW5NaWxsaXMoKTsKKyAgICBUaW1lciB0
aW1lcjsKIAotICAgIC8vIFNodWZmbGVzIHRlc3QgY2FzZXMgYW5kIHRlc3RzIGlmIHJlcXVlc3Rl
ZC4KKyAgICAvLyBTaHVmZmxlcyB0ZXN0IHN1aXRlcyBhbmQgdGVzdHMgaWYgcmVxdWVzdGVkLgog
ICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuICYmIEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAgICAg
IHJhbmRvbSgpLT5SZXNlZWQocmFuZG9tX3NlZWRfKTsKKyAgICAgIHJhbmRvbSgpLT5SZXNlZWQo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJhbmRvbV9zZWVkXykpOwogICAgICAgLy8gVGhpcyBzaG91
bGQgYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBPblRlc3RJdGVyYXRpb25TdGFydCgpLAogICAgICAg
Ly8gc3VjaCB0aGF0IGEgdGVzdCBldmVudCBsaXN0ZW5lciBjYW4gc2VlIHRoZSBhY3R1YWwgdGVz
dCBvcmRlcgogICAgICAgLy8gaW4gdGhlIGV2ZW50LgpAQCAtNTE2MiwxOSArNTgyMiw0OCBAQCBi
b29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAgICAgLy8gVGVsbHMgdGhlIHVuaXQg
dGVzdCBldmVudCBsaXN0ZW5lcnMgdGhhdCB0aGUgdGVzdHMgYXJlIGFib3V0IHRvIHN0YXJ0Lgog
ICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25TdGFydCgqcGFyZW50XywgaSk7CiAKLSAgICAv
LyBSdW5zIGVhY2ggdGVzdCBjYXNlIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB0ZXN0IHRvIHJ1
bi4KKyAgICAvLyBSdW5zIGVhY2ggdGVzdCBzdWl0ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUg
dGVzdCB0byBydW4uCiAgICAgaWYgKGhhc190ZXN0c190b19ydW4pIHsKICAgICAgIC8vIFNldHMg
dXAgYWxsIGVudmlyb25tZW50cyBiZWZvcmVoYW5kLgogICAgICAgcmVwZWF0ZXItPk9uRW52aXJv
bm1lbnRzU2V0VXBTdGFydCgqcGFyZW50Xyk7CiAgICAgICBGb3JFYWNoKGVudmlyb25tZW50c18s
IFNldFVwRW52aXJvbm1lbnQpOwogICAgICAgcmVwZWF0ZXItPk9uRW52aXJvbm1lbnRzU2V0VXBF
bmQoKnBhcmVudF8pOwogCi0gICAgICAvLyBSdW5zIHRoZSB0ZXN0cyBvbmx5IGlmIHRoZXJlIHdh
cyBubyBmYXRhbCBmYWlsdXJlIGR1cmluZyBnbG9iYWwKLSAgICAgIC8vIHNldC11cC4KLSAgICAg
IGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKLSAgICAgICAgZm9yIChpbnQgdGVzdF9p
bmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsKKyAgICAgIC8v
IFJ1bnMgdGhlIHRlc3RzIG9ubHkgaWYgdGhlcmUgd2FzIG5vIGZhdGFsIGZhaWx1cmUgb3Igc2tp
cCB0cmlnZ2VyZWQKKyAgICAgIC8vIGR1cmluZyBnbG9iYWwgc2V0LXVwLgorICAgICAgaWYgKFRl
c3Q6OklzU2tpcHBlZCgpKSB7CisgICAgICAgIC8vIEVtaXQgZGlhZ25vc3RpY3Mgd2hlbiBnbG9i
YWwgc2V0LXVwIGNhbGxzIHNraXAsIGFzIGl0IHdpbGwgbm90IGJlCisgICAgICAgIC8vIGVtaXR0
ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgVGVzdFJlc3VsdCYgdGVzdF9yZXN1bHQgPQorICAgICAg
ICAgICAgKmludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgp
OworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RfcmVzdWx0LnRvdGFsX3BhcnRfY291
bnQoKTsgKytqKSB7CisgICAgICAgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9y
ZXN1bHQgPQorICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChqKTsK
KyAgICAgICAgICBpZiAodGVzdF9wYXJ0X3Jlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6
OmtTa2lwKSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgcmVzdWx0ID0gdGVzdF9w
YXJ0X3Jlc3VsdC5tZXNzYWdlKCk7CisgICAgICAgICAgICBwcmludGYoIiVzXG4iLCByZXN1bHQu
Y19zdHIoKSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZmbHVzaChzdGRvdXQp
OworICAgICAgfSBlbHNlIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAg
Zm9yIChpbnQgdGVzdF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X3N1aXRlX2Nv
dW50KCk7CisgICAgICAgICAgICAgdGVzdF9pbmRleCsrKSB7CisgICAgICAgICAgR2V0TXV0YWJs
ZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAgICAgaWYgKEdURVNUX0ZMQUco
ZmFpbF9mYXN0KSAmJgorICAgICAgICAgICAgICBHZXRNdXRhYmxlU3VpdGVDYXNlKHRlc3RfaW5k
ZXgpLT5GYWlsZWQoKSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IHRlc3RfaW5kZXggKyAx
OyBqIDwgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgR2V0
TXV0YWJsZVN1aXRlQ2FzZShqKS0+U2tpcCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9IGVsc2UgaWYgKFRlc3Q6Okhh
c0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIGZhdGFsIGZhaWx1
cmUgZHVyaW5nIHRoZSBnbG9iYWwgc2V0dXAgdGhlbiB3ZSBrbm93IHdlCisgICAgICAgIC8vIGFy
ZW4ndCBnb2luZyB0byBydW4gYW55IHRlc3RzLiBFeHBsaWNpdGx5IG1hcmsgYWxsIG9mIHRoZSB0
ZXN0cyBhcworICAgICAgICAvLyBza2lwcGVkIHRvIG1ha2UgdGhpcyBvYnZpb3VzIGluIHRoZSBv
dXRwdXQuCisgICAgICAgIGZvciAoaW50IHRlc3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwgdG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogICAgICAgICAgICAgIHRlc3RfaW5kZXgrKykgewotICAg
ICAgICAgIEdldE11dGFibGVUZXN0Q2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAgICAg
R2V0TXV0YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+U2tpcCgpOwogICAgICAgICB9CiAgICAg
ICB9CiAKQEAgLTUxODUsNyArNTg3NCw3IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0
cygpIHsKICAgICAgIHJlcGVhdGVyLT5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kKCpwYXJlbnRf
KTsKICAgICB9CiAKLSAgICBlbGFwc2VkX3RpbWVfID0gR2V0VGltZUluTWlsbGlzKCkgLSBzdGFy
dDsKKyAgICBlbGFwc2VkX3RpbWVfID0gdGltZXIuRWxhcHNlZCgpOwogCiAgICAgLy8gVGVsbHMg
dGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IHRoZSB0ZXN0cyBoYXZlIGp1c3QgZmlu
aXNoZWQuCiAgICAgcmVwZWF0ZXItPk9uVGVzdEl0ZXJhdGlvbkVuZCgqcGFyZW50XywgaSk7CkBA
IC01MjEzLDE0ICs1OTAyLDE0IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsK
IAogICBpZiAoIWd0ZXN0X2lzX2luaXRpYWxpemVkX2JlZm9yZV9ydW5fYWxsX3Rlc3RzKSB7CiAg
ICAgQ29sb3JlZFByaW50ZigKLSAgICAgICAgQ09MT1JfUkVELAorICAgICAgICBHVGVzdENvbG9y
OjprUmVkLAogICAgICAgICAiXG5JTVBPUlRBTlQgTk9USUNFIC0gRE8gTk9UIElHTk9SRTpcbiIK
ICAgICAgICAgIlRoaXMgdGVzdCBwcm9ncmFtIGRpZCBOT1QgY2FsbCAiIEdURVNUX0lOSVRfR09P
R0xFX1RFU1RfTkFNRV8KICAgICAgICAgIigpIGJlZm9yZSBjYWxsaW5nIFJVTl9BTExfVEVTVFMo
KS4gVGhpcyBpcyBJTlZBTElELiBTb29uICIgR1RFU1RfTkFNRV8KICAgICAgICAgIiB3aWxsIHN0
YXJ0IHRvIGVuZm9yY2UgdGhlIHZhbGlkIHVzYWdlLiAiCiAgICAgICAgICJQbGVhc2UgZml4IGl0
IEFTQVAsIG9yIElUIFdJTEwgU1RBUlQgVE8gRkFJTC5cbiIpOyAgLy8gTk9MSU5UCiAjaWYgR1RF
U1RfRk9SX0dPT0dMRV8KLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwKKyAgICBDb2xvcmVk
UHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsCiAgICAgICAgICAgICAgICAgICAiRm9yIG1vcmUgZGV0
YWlscywgc2VlIGh0dHA6Ly93aWtpL01haW4vVmFsaWRHVW5pdE1haW4uXG4iKTsKICNlbmRpZiAg
Ly8gR1RFU1RfRk9SX0dPT0dMRV8KICAgfQpAQCAtNTIzNCwxMCArNTkyMywxMCBAQCBib29sIFVu
aXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAvLyBiZSBjcmVhdGVkLCBwcmludHMgYW4gZXJy
b3IgYW5kIGV4aXRzLgogdm9pZCBXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKSB7CiAg
IGNvbnN0IGNoYXIqIGNvbnN0IHRlc3Rfc2hhcmRfZmlsZSA9IHBvc2l4OjpHZXRFbnYoa1Rlc3RT
aGFyZFN0YXR1c0ZpbGUpOwotICBpZiAodGVzdF9zaGFyZF9maWxlICE9IE5VTEwpIHsKKyAgaWYg
KHRlc3Rfc2hhcmRfZmlsZSAhPSBudWxscHRyKSB7CiAgICAgRklMRSogY29uc3QgZmlsZSA9IHBv
c2l4OjpGT3Blbih0ZXN0X3NoYXJkX2ZpbGUsICJ3Iik7Ci0gICAgaWYgKGZpbGUgPT0gTlVMTCkg
ewotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsCisgICAgaWYgKGZpbGUgPT0gbnVsbHB0
cikgeworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLAogICAgICAgICAgICAg
ICAgICAgICAiQ291bGQgbm90IHdyaXRlIHRvIHRoZSB0ZXN0IHNoYXJkIHN0YXR1cyBmaWxlIFwi
JXNcIiAiCiAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQgYnkgdGhlICVzIGVudmlyb25t
ZW50IHZhcmlhYmxlLlxuIiwKICAgICAgICAgICAgICAgICAgICAgdGVzdF9zaGFyZF9maWxlLCBr
VGVzdFNoYXJkU3RhdHVzRmlsZSk7CkBAIC01MjYxLDggKzU5NTAsOCBAQCBib29sIFNob3VsZFNo
YXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgcmV0dXJuIGZhbHNlOwogICB9
CiAKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gSW50MzJGcm9tRW52T3JEaWUodG90YWxf
c2hhcmRzX2VudiwgLTEpOwotICBjb25zdCBJbnQzMiBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVu
dk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEpOworICBjb25zdCBpbnQzMl90IHRvdGFsX3NoYXJk
cyA9IEludDMyRnJvbUVudk9yRGllKHRvdGFsX3NoYXJkc19lbnYsIC0xKTsKKyAgY29uc3QgaW50
MzJfdCBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEp
OwogCiAgIGlmICh0b3RhbF9zaGFyZHMgPT0gLTEgJiYgc2hhcmRfaW5kZXggPT0gLTEpIHsKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC01MjcxLDcgKzU5NjAsNyBAQCBib29sIFNob3VsZFNoYXJkKGNv
bnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxpZCBlbnZpcm9ubWVu
dCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiID0g
IiA8PCBzaGFyZF9pbmRleAogICAgICAgPDwgIiwgYnV0IGhhdmUgbGVmdCAiIDw8IGtUZXN0VG90
YWxTaGFyZHMgPDwgIiB1bnNldC5cbiI7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsIG1z
Zy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtS
ZWQsICIlcyIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKICAgICBmZmx1c2goc3Rkb3V0KTsK
ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgIH0gZWxzZSBpZiAodG90YWxfc2hhcmRzICE9IC0x
ICYmIHNoYXJkX2luZGV4ID09IC0xKSB7CkBAIC01Mjc5LDcgKzU5NjgsNyBAQCBib29sIFNob3Vs
ZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxpZCBl
bnZpcm9ubWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0VG90YWxTaGFy
ZHMgPDwgIiA9ICIgPDwgdG90YWxfc2hhcmRzCiAgICAgICA8PCAiLCBidXQgaGF2ZSBsZWZ0ICIg
PDwga1Rlc3RTaGFyZEluZGV4IDw8ICIgdW5zZXQuXG4iOwotICAgIENvbG9yZWRQcmludGYoQ09M
T1JfUkVELCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CisgICAgQ29sb3JlZFByaW50ZihHVGVz
dENvbG9yOjprUmVkLCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CiAgICAgZmZsdXNo
KHN0ZG91dCk7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICB9IGVsc2UgaWYgKHNoYXJkX2lu
ZGV4IDwgMCB8fCBzaGFyZF9pbmRleCA+PSB0b3RhbF9zaGFyZHMpIHsKQEAgLTUyODgsNyArNTk3
Nyw3IEBAIGJvb2wgU2hvdWxkU2hhcmQoY29uc3QgY2hhciogdG90YWxfc2hhcmRzX2VudiwKICAg
ICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiIDwgIiA8PCBrVGVzdFRvdGFsU2hhcmRzCiAgICAg
ICA8PCAiLCBidXQgeW91IGhhdmUgIiA8PCBrVGVzdFNoYXJkSW5kZXggPDwgIj0iIDw8IHNoYXJk
X2luZGV4CiAgICAgICA8PCAiLCAiIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwgIj0iIDw8IHRvdGFs
X3NoYXJkcyA8PCAiLlxuIjsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwgbXNnLkdldFN0
cmluZygpLmNfc3RyKCkpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwgIiVz
IiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwogICAgIGZmbHVzaChzdGRvdXQpOwogICAgIGV4
aXQoRVhJVF9GQUlMVVJFKTsKICAgfQpAQCAtNTI5OSwxMyArNTk4OCwxMyBAQCBib29sIFNob3Vs
ZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAvLyBQYXJzZXMgdGhlIGVudmly
b25tZW50IHZhcmlhYmxlIHZhciBhcyBhbiBJbnQzMi4gSWYgaXQgaXMgdW5zZXQsCiAvLyByZXR1
cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYW4gSW50MzIsIHByaW50cyBhbiBlcnJvcgog
Ly8gYW5kIGFib3J0cy4KLUludDMyIEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIHZhciwg
SW50MzIgZGVmYXVsdF92YWwpIHsKK2ludDMyX3QgSW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hh
ciogdmFyLCBpbnQzMl90IGRlZmF1bHRfdmFsKSB7CiAgIGNvbnN0IGNoYXIqIHN0cl92YWwgPSBw
b3NpeDo6R2V0RW52KHZhcik7Ci0gIGlmIChzdHJfdmFsID09IE5VTEwpIHsKKyAgaWYgKHN0cl92
YWwgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBkZWZhdWx0X3ZhbDsKICAgfQogCi0gIEludDMy
IHJlc3VsdDsKKyAgaW50MzJfdCByZXN1bHQ7CiAgIGlmICghUGFyc2VJbnQzMihNZXNzYWdlKCkg
PDwgIlRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IHZhciwKICAgICAgICAg
ICAgICAgICAgIHN0cl92YWwsICZyZXN1bHQpKSB7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwpA
QCAtNTMxNCw4ICs2MDAzLDggQEAgSW50MzIgSW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hhciog
dmFyLCBJbnQzMiBkZWZhdWx0X3ZhbCkgewogfQogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVtYmVy
IG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1cm5z
IHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3Qg
aWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIg
YXNzaWduZWQgdG8gZWFjaCB0ZXN0CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IHRlc3Qgc2hvdWxkIGJlIHJ1biBvbiB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMgc29t
ZSBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0byBl
YWNoIHRlc3QKIC8vIG1ldGhvZC4gQXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0b3Rh
bF9zaGFyZHMuCiBib29sIFNob3VsZFJ1blRlc3RPblNoYXJkKGludCB0b3RhbF9zaGFyZHMsIGlu
dCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpIHsKICAgcmV0dXJuICh0ZXN0X2lkICUgdG90YWxf
c2hhcmRzKSA9PSBzaGFyZF9pbmRleDsKQEAgLTUzMjMsMTUgKzYwMTIsMTUgQEAgYm9vbCBTaG91
bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hhcmRzLCBpbnQgc2hhcmRfaW5kZXgsIGludCB0
ZXN0X2lkKSB7CiAKIC8vIENvbXBhcmVzIHRoZSBuYW1lIG9mIGVhY2ggdGVzdCB3aXRoIHRoZSB1
c2VyLXNwZWNpZmllZCBmaWx0ZXIgdG8KIC8vIGRlY2lkZSB3aGV0aGVyIHRoZSB0ZXN0IHNob3Vs
ZCBiZSBydW4sIHRoZW4gcmVjb3JkcyB0aGUgcmVzdWx0IGluCi0vLyBlYWNoIFRlc3RDYXNlIGFu
ZCBUZXN0SW5mbyBvYmplY3QuCisvLyBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8gb2JqZWN0
LgogLy8gSWYgc2hhcmRfdGVzdHMgPT0gdHJ1ZSwgZnVydGhlciBmaWx0ZXJzIHRlc3RzIGJhc2Vk
IG9uIHNoYXJkaW5nCiAvLyB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50IC0gc2VlCiAvLyBo
dHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVz
dC9kb2NzL2FkdmFuY2VkLm1kCiAvLyAuIFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0
IHNob3VsZCBydW4uCiBpbnQgVW5pdFRlc3RJbXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hh
cmRpbmcgc2hhcmRfdGVzdHMpIHsKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gc2hhcmRf
dGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wgPworICBjb25zdCBpbnQzMl90IHRvdGFs
X3NoYXJkcyA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KICAgICAg
IEludDMyRnJvbUVudk9yRGllKGtUZXN0VG90YWxTaGFyZHMsIC0xKSA6IC0xOwotICBjb25zdCBJ
bnQzMiBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09M
ID8KKyAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NI
QVJESU5HX1BST1RPQ09MID8KICAgICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRl
eCwgLTEpIDogLTE7CiAKICAgLy8gbnVtX3J1bm5hYmxlX3Rlc3RzIGFyZSB0aGUgbnVtYmVyIG9m
IHRlc3RzIHRoYXQgd2lsbApAQCAtNTM0MCwyNiArNjAyOSwyMyBAQCBpbnQgVW5pdFRlc3RJbXBs
OjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKICAgLy8gdGhp
cyBzaGFyZC4KICAgaW50IG51bV9ydW5uYWJsZV90ZXN0cyA9IDA7CiAgIGludCBudW1fc2VsZWN0
ZWRfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUo
KTsgaSsrKSB7Ci0gICAgVGVzdENhc2UqIGNvbnN0IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNfW2ld
OwotICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSA9IHRlc3RfY2FzZS0+bmFt
ZSgpOwotICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4oZmFsc2UpOworICBmb3IgKGF1dG8q
IHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlc18pIHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgdGVz
dF9zdWl0ZV9uYW1lID0gdGVzdF9zdWl0ZS0+bmFtZSgpOworICAgIHRlc3Rfc3VpdGUtPnNldF9z
aG91bGRfcnVuKGZhbHNlKTsKIAotICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdGVzdF9jYXNl
LT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisrKSB7Ci0gICAgICBUZXN0SW5mbyogY29uc3Qg
dGVzdF9pbmZvID0gdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpW2pdOworICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgdGVzdF9zdWl0ZS0+dGVzdF9pbmZvX2xpc3QoKS5zaXplKCk7IGorKykg
eworICAgICAgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3RfaW5m
b19saXN0KClbal07CiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X25hbWUodGVzdF9pbmZv
LT5uYW1lKCkpOwotICAgICAgLy8gQSB0ZXN0IGlzIGRpc2FibGVkIGlmIHRlc3QgY2FzZSBuYW1l
IG9yIHRlc3QgbmFtZSBtYXRjaGVzCisgICAgICAvLyBBIHRlc3QgaXMgZGlzYWJsZWQgaWYgdGVz
dCBzdWl0ZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCiAgICAgICAvLyBrRGlzYWJsZVRlc3RG
aWx0ZXIuCi0gICAgICBjb25zdCBib29sIGlzX2Rpc2FibGVkID0KLSAgICAgICAgICBpbnRlcm5h
bDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKHRlc3RfY2FzZV9uYW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0
RmlsdGVyKSB8fAotICAgICAgICAgIGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNG
aWx0ZXIodGVzdF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKTsKKyAgICAgIGNvbnN0IGJvb2wgaXNfZGlz
YWJsZWQgPSBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlX25hbWUsIGtEaXNhYmxlVGVz
dEZpbHRlcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VW5p
dFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X25hbWUsIGtEaXNhYmxlVGVzdEZpbHRlcik7CiAgICAgICB0ZXN0X2luZm8t
PmlzX2Rpc2FibGVkXyA9IGlzX2Rpc2FibGVkOwogCi0gICAgICBjb25zdCBib29sIG1hdGNoZXNf
ZmlsdGVyID0KLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJNYXRj
aGVzVGVzdCh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOworICAgICAgY29uc3QgYm9vbCBtYXRj
aGVzX2ZpbHRlciA9IGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0
KAorICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTsKICAgICAgIHRlc3RfaW5m
by0+bWF0Y2hlc19maWx0ZXJfID0gbWF0Y2hlc19maWx0ZXI7CiAKICAgICAgIGNvbnN0IGJvb2wg
aXNfcnVubmFibGUgPQpAQCAtNTM3Niw3ICs2MDYyLDcgQEAgaW50IFVuaXRUZXN0SW1wbDo6Rmls
dGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7CiAgICAgICBudW1fc2Vs
ZWN0ZWRfdGVzdHMgKz0gaXNfc2VsZWN0ZWQ7CiAKICAgICAgIHRlc3RfaW5mby0+c2hvdWxkX3J1
bl8gPSBpc19zZWxlY3RlZDsKLSAgICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4odGVzdF9j
YXNlLT5zaG91bGRfcnVuKCkgfHwgaXNfc2VsZWN0ZWQpOworICAgICAgdGVzdF9zdWl0ZS0+c2V0
X3Nob3VsZF9ydW4odGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigpIHx8IGlzX3NlbGVjdGVkKTsKICAg
ICB9CiAgIH0KICAgcmV0dXJuIG51bV9zZWxlY3RlZF90ZXN0czsKQEAgLTUzODcsNyArNjA3Myw3
IEBAIGludCBVbml0VGVzdEltcGw6OkZpbHRlclRlc3RzKFJlYWN0aW9uVG9TaGFyZGluZyBzaGFy
ZF90ZXN0cykgewogLy8gbWF4X2xlbmd0aCBjaGFyYWN0ZXJzLCBvbmx5IHByaW50cyB0aGUgZmly
c3QgbWF4X2xlbmd0aCBjaGFyYWN0ZXJzCiAvLyBhbmQgIi4uLiIuCiBzdGF0aWMgdm9pZCBQcmlu
dE9uT25lTGluZShjb25zdCBjaGFyKiBzdHIsIGludCBtYXhfbGVuZ3RoKSB7Ci0gIGlmIChzdHIg
IT0gTlVMTCkgeworICBpZiAoc3RyICE9IG51bGxwdHIpIHsKICAgICBmb3IgKGludCBpID0gMDsg
KnN0ciAhPSAnXDAnOyArK3N0cikgewogICAgICAgaWYgKGkgPj0gbWF4X2xlbmd0aCkgewogICAg
ICAgICBwcmludGYoIi4uLiIpOwpAQCAtNTQwOSwyNyArNjA5NSwyNSBAQCB2b2lkIFVuaXRUZXN0
SW1wbDo6TGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKSB7CiAgIC8vIFByaW50IGF0IG1vc3QgdGhp
cyBtYW55IGNoYXJhY3RlcnMgZm9yIGVhY2ggdHlwZS92YWx1ZSBwYXJhbWV0ZXIuCiAgIGNvbnN0
IGludCBrTWF4UGFyYW1MZW5ndGggPSAyNTA7CiAKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0
ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIGNvbnN0IFRlc3RDYXNlKiBjb25zdCB0ZXN0
X2Nhc2UgPSB0ZXN0X2Nhc2VzX1tpXTsKLSAgICBib29sIHByaW50ZWRfdGVzdF9jYXNlX25hbWUg
PSBmYWxzZTsKKyAgZm9yIChhdXRvKiB0ZXN0X3N1aXRlIDogdGVzdF9zdWl0ZXNfKSB7CisgICAg
Ym9vbCBwcmludGVkX3Rlc3Rfc3VpdGVfbmFtZSA9IGZhbHNlOwogCi0gICAgZm9yIChzaXplX3Qg
aiA9IDA7IGogPCB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKLSAg
ICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAgICAgICAgIHRlc3RfY2Fz
ZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHRlc3Rf
c3VpdGUtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKKyAgICAgIGNvbnN0IFRlc3RJ
bmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT50ZXN0X2luZm9fbGlzdCgpW2pdOwog
ICAgICAgaWYgKHRlc3RfaW5mby0+bWF0Y2hlc19maWx0ZXJfKSB7Ci0gICAgICAgIGlmICghcHJp
bnRlZF90ZXN0X2Nhc2VfbmFtZSkgewotICAgICAgICAgIHByaW50ZWRfdGVzdF9jYXNlX25hbWUg
PSB0cnVlOwotICAgICAgICAgIHByaW50ZigiJXMuIiwgdGVzdF9jYXNlLT5uYW1lKCkpOwotICAg
ICAgICAgIGlmICh0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7CisgICAgICAgIGlm
ICghcHJpbnRlZF90ZXN0X3N1aXRlX25hbWUpIHsKKyAgICAgICAgICBwcmludGVkX3Rlc3Rfc3Vp
dGVfbmFtZSA9IHRydWU7CisgICAgICAgICAgcHJpbnRmKCIlcy4iLCB0ZXN0X3N1aXRlLT5uYW1l
KCkpOworICAgICAgICAgIGlmICh0ZXN0X3N1aXRlLT50eXBlX3BhcmFtKCkgIT0gbnVsbHB0cikg
ewogICAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVHlwZVBhcmFtTGFiZWwpOwogICAg
ICAgICAgICAgLy8gV2UgcHJpbnQgdGhlIHR5cGUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUg
dG8gbWFrZQogICAgICAgICAgICAgLy8gdGhlIG91dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEgcHJv
Z3JhbS4KLSAgICAgICAgICAgIFByaW50T25PbmVMaW5lKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgp
LCBrTWF4UGFyYW1MZW5ndGgpOworICAgICAgICAgICAgUHJpbnRPbk9uZUxpbmUodGVzdF9zdWl0
ZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1MZW5ndGgpOwogICAgICAgICAgIH0KICAgICAgICAg
ICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRmKCIgICVzIiwgdGVzdF9p
bmZvLT5uYW1lKCkpOwotICAgICAgICBpZiAodGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpICE9IE5V
TEwpIHsKKyAgICAgICAgaWYgKHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSAhPSBudWxscHRyKSB7
CiAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVmFsdWVQYXJhbUxhYmVsKTsKICAgICAg
ICAgICAvLyBXZSBwcmludCB0aGUgdmFsdWUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUgdG8g
bWFrZSB0aGUKICAgICAgICAgICAvLyBvdXRwdXQgZWFzeSB0byBwYXJzZSBieSBhIHByb2dyYW0u
CkBAIC01NDQ4LDExICs2MTMyLDExIEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpMaXN0VGVzdHNNYXRj
aGluZ0ZpbHRlcigpIHsKICAgICBpZiAob3V0cHV0X2Zvcm1hdCA9PSAieG1sIikgewogICAgICAg
WG1sVW5pdFRlc3RSZXN1bHRQcmludGVyKAogICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0
QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkuY19zdHIoKSkKLSAgICAgICAgICAuUHJpbnRYbWxU
ZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9jYXNlc18pOworICAgICAgICAgIC5QcmludFhtbFRlc3Rz
TGlzdCgmc3RyZWFtLCB0ZXN0X3N1aXRlc18pOwogICAgIH0gZWxzZSBpZiAob3V0cHV0X2Zvcm1h
dCA9PSAianNvbiIpIHsKICAgICAgIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXIoCiAgICAgICAg
ICAgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKS5jX3N0cigp
KQotICAgICAgICAgIC5QcmludEpzb25UZXN0TGlzdCgmc3RyZWFtLCB0ZXN0X2Nhc2VzXyk7Cisg
ICAgICAgICAgLlByaW50SnNvblRlc3RMaXN0KCZzdHJlYW0sIHRlc3Rfc3VpdGVzXyk7CiAgICAg
fQogICAgIGZwcmludGYoZmlsZW91dCwgIiVzIiwgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnN0cmVh
bSkuY19zdHIoKSk7CiAgICAgZmNsb3NlKGZpbGVvdXQpOwpAQCAtNTQ3Niw3ICs2MTYwLDcgQEAg
dm9pZCBVbml0VGVzdEltcGw6OnNldF9vc19zdGFja190cmFjZV9nZXR0ZXIoCiAvLyBvdGhlcndp
c2UsIGNyZWF0ZXMgYW4gT3NTdGFja1RyYWNlR2V0dGVyLCBtYWtlcyBpdCB0aGUgY3VycmVudAog
Ly8gZ2V0dGVyLCBhbmQgcmV0dXJucyBpdC4KIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSog
VW5pdFRlc3RJbXBsOjpvc19zdGFja190cmFjZV9nZXR0ZXIoKSB7Ci0gIGlmIChvc19zdGFja190
cmFjZV9nZXR0ZXJfID09IE5VTEwpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlX2dldHRlcl8gPT0g
bnVsbHB0cikgewogI2lmZGVmIEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl8KICAgICBvc19z
dGFja190cmFjZV9nZXR0ZXJfID0gbmV3IEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl87CiAj
ZWxzZQpAQCAtNTQ4OSwzOCArNjE3MywzOCBAQCBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2Uq
IFVuaXRUZXN0SW1wbDo6b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCkgewogCiAvLyBSZXR1cm5zIHRo
ZSBtb3N0IHNwZWNpZmljIFRlc3RSZXN1bHQgY3VycmVudGx5IHJ1bm5pbmcuCiBUZXN0UmVzdWx0
KiBVbml0VGVzdEltcGw6OmN1cnJlbnRfdGVzdF9yZXN1bHQoKSB7Ci0gIGlmIChjdXJyZW50X3Rl
c3RfaW5mb18gIT0gTlVMTCkgeworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxwdHIp
IHsKICAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9pbmZvXy0+cmVzdWx0XzsKICAgfQotICBpZiAo
Y3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKLSAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9j
YXNlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0XzsKKyAgaWYgKGN1cnJlbnRfdGVzdF9zdWl0ZV8gIT0g
bnVsbHB0cikgeworICAgIHJldHVybiAmY3VycmVudF90ZXN0X3N1aXRlXy0+YWRfaG9jX3Rlc3Rf
cmVzdWx0XzsKICAgfQogICByZXR1cm4gJmFkX2hvY190ZXN0X3Jlc3VsdF87CiB9CiAKLS8vIFNo
dWZmbGVzIGFsbCB0ZXN0IGNhc2VzLCBhbmQgdGhlIHRlc3RzIHdpdGhpbiBlYWNoIHRlc3QgY2Fz
ZSwKKy8vIFNodWZmbGVzIGFsbCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFj
aCB0ZXN0IHN1aXRlLAogLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3RpbGwg
cnVuIGZpcnN0Lgogdm9pZCBVbml0VGVzdEltcGw6OlNodWZmbGVUZXN0cygpIHsKLSAgLy8gU2h1
ZmZsZXMgdGhlIGRlYXRoIHRlc3QgY2FzZXMuCi0gIFNodWZmbGVSYW5nZShyYW5kb20oKSwgMCwg
bGFzdF9kZWF0aF90ZXN0X2Nhc2VfICsgMSwgJnRlc3RfY2FzZV9pbmRpY2VzXyk7CisgIC8vIFNo
dWZmbGVzIHRoZSBkZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgpLCAw
LCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwgJnRlc3Rfc3VpdGVfaW5kaWNlc18pOwogCi0g
IC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGggdGVzdCBjYXNlcy4KLSAgU2h1ZmZsZVJhbmdlKHJh
bmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3RfY2FzZV8gKyAxLAotICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8aW50Pih0ZXN0X2Nhc2VzXy5zaXplKCkpLCAmdGVzdF9jYXNlX2luZGljZXNfKTsKKyAg
Ly8gU2h1ZmZsZXMgdGhlIG5vbi1kZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdlKHJh
bmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwKKyAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PGludD4odGVzdF9zdWl0ZXNfLnNpemUoKSksICZ0ZXN0X3N1aXRlX2luZGljZXNfKTsK
IAotICAvLyBTaHVmZmxlcyB0aGUgdGVzdHMgaW5zaWRlIGVhY2ggdGVzdCBjYXNlLgotICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgdGVzdF9j
YXNlc19baV0tPlNodWZmbGVUZXN0cyhyYW5kb20oKSk7CisgIC8vIFNodWZmbGVzIHRoZSB0ZXN0
cyBpbnNpZGUgZWFjaCB0ZXN0IHN1aXRlLgorICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGUgOiB0ZXN0
X3N1aXRlc18pIHsKKyAgICB0ZXN0X3N1aXRlLT5TaHVmZmxlVGVzdHMocmFuZG9tKCkpOwogICB9
CiB9CiAKLS8vIFJlc3RvcmVzIHRoZSB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRl
ciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCisvLyBSZXN0b3JlcyB0aGUgdGVzdCBzdWl0ZXMg
YW5kIHRlc3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KIHZvaWQg
VW5pdFRlc3RJbXBsOjpVbnNodWZmbGVUZXN0cygpIHsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIC8vIFVuc2h1ZmZsZXMgdGhlIHRlc3Rz
IGluIGVhY2ggdGVzdCBjYXNlLgotICAgIHRlc3RfY2FzZXNfW2ldLT5VbnNodWZmbGVUZXN0cygp
OwotICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IGNhc2UuCi0gICAgdGVzdF9j
YXNlX2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKKyAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0ZXN0X3N1aXRlc18uc2l6ZSgpOyBpKyspIHsKKyAgICAvLyBVbnNodWZmbGVzIHRo
ZSB0ZXN0cyBpbiBlYWNoIHRlc3Qgc3VpdGUuCisgICAgdGVzdF9zdWl0ZXNfW2ldLT5VbnNodWZm
bGVUZXN0cygpOworICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IHN1aXRlLgor
ICAgIHRlc3Rfc3VpdGVfaW5kaWNlc19baV0gPSBzdGF0aWNfY2FzdDxpbnQ+KGkpOwogICB9CiB9
CiAKQEAgLTU1NzksMTIgKzYyNjMsMTIgQEAgYm9vbCBTa2lwUHJlZml4KGNvbnN0IGNoYXIqIHBy
ZWZpeCwgY29uc3QgY2hhcioqIHBzdHIpIHsKIHN0YXRpYyBjb25zdCBjaGFyKiBQYXJzZUZsYWdW
YWx1ZShjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBkZWZfb3B0aW9uYWwpIHsKICAgLy8gc3RyIGFuZCBmbGFn
IG11c3Qgbm90IGJlIE5VTEwuCi0gIGlmIChzdHIgPT0gTlVMTCB8fCBmbGFnID09IE5VTEwpIHJl
dHVybiBOVUxMOworICBpZiAoc3RyID09IG51bGxwdHIgfHwgZmxhZyA9PSBudWxscHRyKSByZXR1
cm4gbnVsbHB0cjsKIAogICAvLyBUaGUgZmxhZyBtdXN0IHN0YXJ0IHdpdGggIi0tIiBmb2xsb3dl
ZCBieSBHVEVTVF9GTEFHX1BSRUZJWF8uCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZsYWdfc3RyID0g
c3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBmbGFnOwogICBjb25zdCBz
aXplX3QgZmxhZ19sZW4gPSBmbGFnX3N0ci5sZW5ndGgoKTsKLSAgaWYgKHN0cm5jbXAoc3RyLCBm
bGFnX3N0ci5jX3N0cigpLCBmbGFnX2xlbikgIT0gMCkgcmV0dXJuIE5VTEw7CisgIGlmIChzdHJu
Y21wKHN0ciwgZmxhZ19zdHIuY19zdHIoKSwgZmxhZ19sZW4pICE9IDApIHJldHVybiBudWxscHRy
OwogCiAgIC8vIFNraXBzIHRoZSBmbGFnIG5hbWUuCiAgIGNvbnN0IGNoYXIqIGZsYWdfZW5kID0g
c3RyICsgZmxhZ19sZW47CkBAIC01NTk3LDcgKzYyODEsNyBAQCBzdGF0aWMgY29uc3QgY2hhciog
UGFyc2VGbGFnVmFsdWUoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLAogICAvLyBJ
ZiBkZWZfb3B0aW9uYWwgaXMgdHJ1ZSBhbmQgdGhlcmUgYXJlIG1vcmUgY2hhcmFjdGVycyBhZnRl
ciB0aGUKICAgLy8gZmxhZyBuYW1lLCBvciBpZiBkZWZfb3B0aW9uYWwgaXMgZmFsc2UsIHRoZXJl
IG11c3QgYmUgYSAnPScgYWZ0ZXIKICAgLy8gdGhlIGZsYWcgbmFtZS4KLSAgaWYgKGZsYWdfZW5k
WzBdICE9ICc9JykgcmV0dXJuIE5VTEw7CisgIGlmIChmbGFnX2VuZFswXSAhPSAnPScpIHJldHVy
biBudWxscHRyOwogCiAgIC8vIFJldHVybnMgdGhlIHN0cmluZyBhZnRlciAiPSIuCiAgIHJldHVy
biBmbGFnX2VuZCArIDE7CkBAIC01NjE4LDMyICs2MzAyLDMwIEBAIHN0YXRpYyBib29sIFBhcnNl
Qm9vbEZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBib29sKiB2YWx1ZSkg
ewogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIsIGZs
YWcsIHRydWUpOwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2
YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51bGxw
dHIpIHJldHVybiBmYWxzZTsKIAogICAvLyBDb252ZXJ0cyB0aGUgc3RyaW5nIHZhbHVlIHRvIGEg
Ym9vbC4KICAgKnZhbHVlID0gISgqdmFsdWVfc3RyID09ICcwJyB8fCAqdmFsdWVfc3RyID09ICdm
JyB8fCAqdmFsdWVfc3RyID09ICdGJyk7CiAgIHJldHVybiB0cnVlOwogfQogCi0vLyBQYXJzZXMg
YSBzdHJpbmcgZm9yIGFuIEludDMyIGZsYWcsIGluIHRoZSBmb3JtIG9mCi0vLyAiLS1mbGFnPXZh
bHVlIi4KKy8vIFBhcnNlcyBhIHN0cmluZyBmb3IgYW4gaW50MzJfdCBmbGFnLCBpbiB0aGUgZm9y
bSBvZiAiLS1mbGFnPXZhbHVlIi4KIC8vCiAvLyBPbiBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVl
IG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJldHVybnMKIC8vIHRydWUuICBPbiBmYWlsdXJl
LCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdpbmcgKnZhbHVlLgotYm9vbCBQYXJzZUludDMy
RmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIEludDMyKiB2YWx1ZSkgewor
Ym9vbCBQYXJzZUludDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIGlu
dDMyX3QqIHZhbHVlKSB7CiAgIC8vIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGFzIGEgc3Ry
aW5nLgogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIs
IGZsYWcsIGZhbHNlKTsKIAogICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgotICBp
ZiAodmFsdWVfc3RyID09IE5VTEwpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9PSBu
dWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgLy8gU2V0cyAqdmFsdWUgdG8gdGhlIHZhbHVlIG9m
IHRoZSBmbGFnLgogICByZXR1cm4gUGFyc2VJbnQzMihNZXNzYWdlKCkgPDwgIlRoZSB2YWx1ZSBv
ZiBmbGFnIC0tIiA8PCBmbGFnLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZV9zdHIsIHZhbHVl
KTsKIH0KIAotLy8gUGFyc2VzIGEgc3RyaW5nIGZvciBhIHN0cmluZyBmbGFnLCBpbiB0aGUgZm9y
bSBvZgotLy8gIi0tZmxhZz12YWx1ZSIuCisvLyBQYXJzZXMgYSBzdHJpbmcgZm9yIGEgc3RyaW5n
IGZsYWcsIGluIHRoZSBmb3JtIG9mICItLWZsYWc9dmFsdWUiLgogLy8KIC8vIE9uIHN1Y2Nlc3Ms
IHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcgaW4gKnZhbHVlLCBhbmQgcmV0dXJucwogLy8g
dHJ1ZS4gIE9uIGZhaWx1cmUsIHJldHVybnMgZmFsc2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFsdWUu
CkBAIC01NjUzLDcgKzYzMzUsNyBAQCBzdGF0aWMgYm9vbCBQYXJzZVN0cmluZ0ZsYWcoY29uc3Qg
Y2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBTdHJpbmcqIHZhbHVlKSB7CiAgIGNvbnN0IGNo
YXIqIGNvbnN0IHZhbHVlX3N0ciA9IFBhcnNlRmxhZ1ZhbHVlKHN0ciwgZmxhZywgZmFsc2UpOwog
CiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIgPT0g
TlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51bGxwdHIpIHJldHVybiBm
YWxzZTsKIAogICAvLyBTZXRzICp2YWx1ZSB0byB0aGUgdmFsdWUgb2YgdGhlIGZsYWcuCiAgICp2
YWx1ZSA9IHZhbHVlX3N0cjsKQEAgLTU2ODQsMTAgKzYzNjYsOCBAQCBzdGF0aWMgYm9vbCBIYXNH
b29nbGVUZXN0RmxhZ1ByZWZpeChjb25zdCBjaGFyKiBzdHIpIHsKIC8vICAgQFkgICAgY2hhbmdl
cyB0aGUgY29sb3IgdG8geWVsbG93LgogLy8gICBARCAgICBjaGFuZ2VzIHRvIHRoZSBkZWZhdWx0
IHRlcm1pbmFsIHRleHQgY29sb3IuCiAvLwotLy8gRklYTUU6IFdyaXRlIHRlc3RzIGZvciB0aGlz
IG9uY2Ugd2UgYWRkIHN0ZG91dAotLy8gY2FwdHVyaW5nIHRvIEdvb2dsZSBUZXN0Lgogc3RhdGlj
IHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7Ci0gIEdUZXN0Q29sb3Ig
Y29sb3IgPSBDT0xPUl9ERUZBVUxUOyAgLy8gVGhlIGN1cnJlbnQgY29sb3IuCisgIEdUZXN0Q29s
b3IgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsgIC8vIFRoZSBjdXJyZW50IGNvbG9yLgog
CiAgIC8vIENvbmNlcHR1YWxseSwgd2Ugc3BsaXQgdGhlIHN0cmluZyBpbnRvIHNlZ21lbnRzIGRp
dmlkZWQgYnkgZXNjYXBlCiAgIC8vIHNlcXVlbmNlcy4gIFRoZW4gd2UgcHJpbnQgb25lIHNlZ21l
bnQgYXQgYSB0aW1lLiAgQXQgdGhlIGVuZCBvZgpAQCAtNTY5NSw3ICs2Mzc1LDcgQEAgc3RhdGlj
IHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7CiAgIC8vIG5leHQgc2Vn
bWVudC4KICAgZm9yICg7OykgewogICAgIGNvbnN0IGNoYXIqIHAgPSBzdHJjaHIoc3RyLCAnQCcp
OwotICAgIGlmIChwID09IE5VTEwpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7CiAgICAgICBD
b2xvcmVkUHJpbnRmKGNvbG9yLCAiJXMiLCBzdHIpOwogICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTU3MDcsMTMgKzYzODcsMTMgQEAgc3RhdGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3Qg
Y2hhciogc3RyKSB7CiAgICAgaWYgKGNoID09ICdAJykgewogICAgICAgQ29sb3JlZFByaW50Zihj
b2xvciwgIkAiKTsKICAgICB9IGVsc2UgaWYgKGNoID09ICdEJykgewotICAgICAgY29sb3IgPSBD
T0xPUl9ERUZBVUxUOworICAgICAgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsKICAgICB9
IGVsc2UgaWYgKGNoID09ICdSJykgewotICAgICAgY29sb3IgPSBDT0xPUl9SRUQ7CisgICAgICBj
b2xvciA9IEdUZXN0Q29sb3I6OmtSZWQ7CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnRycpIHsKLSAg
ICAgIGNvbG9yID0gQ09MT1JfR1JFRU47CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtHcmVl
bjsKICAgICB9IGVsc2UgaWYgKGNoID09ICdZJykgewotICAgICAgY29sb3IgPSBDT0xPUl9ZRUxM
T1c7CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtZZWxsb3c7CiAgICAgfSBlbHNlIHsKICAg
ICAgIC0tc3RyOwogICAgIH0KQEAgLTU3MjEsOTggKzY0MDEsMTI2IEBAIHN0YXRpYyB2b2lkIFBy
aW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0cikgewogfQogCiBzdGF0aWMgY29uc3QgY2hh
ciBrQ29sb3JFbmNvZGVkSGVscE1lc3NhZ2VbXSA9Ci0iVGhpcyBwcm9ncmFtIGNvbnRhaW5zIHRl
c3RzIHdyaXR0ZW4gdXNpbmcgIiBHVEVTVF9OQU1FXyAiLiBZb3UgY2FuIHVzZSB0aGVcbiIKLSJm
b2xsb3dpbmcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOlxuIgot
IlxuIgotIlRlc3QgU2VsZWN0aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJs
aXN0X3Rlc3RzQERcbiIKLSIgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgdGVzdHMgaW5zdGVh
ZCBvZiBydW5uaW5nIHRoZW0uIFRoZSBuYW1lIG9mXG4iCi0iICAgICAgVEVTVChGb28sIEJhcikg
aXMgXCJGb28uQmFyXCIuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZpbHRlcj1A
WVBPU1RJVkVfUEFUVEVSTlMiCisgICAgIlRoaXMgcHJvZ3JhbSBjb250YWlucyB0ZXN0cyB3cml0
dGVuIHVzaW5nICIgR1RFU1RfTkFNRV8KKyAgICAiLiBZb3UgY2FuIHVzZSB0aGVcbiIKKyAgICAi
Zm9sbG93aW5nIGNvbW1hbmQgbGluZSBmbGFncyB0byBjb250cm9sIGl0cyBiZWhhdmlvcjpcbiIK
KyAgICAiXG4iCisgICAgIlRlc3QgU2VsZWN0aW9uOlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZM
QUdfUFJFRklYXworICAgICJsaXN0X3Rlc3RzQERcbiIKKyAgICAiICAgICAgTGlzdCB0aGUgbmFt
ZXMgb2YgYWxsIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyB0aGVtLiBUaGUgbmFtZSBvZlxuIgor
ICAgICIgICAgICBURVNUKEZvbywgQmFyKSBpcyBcIkZvby5CYXJcIi5cbiIKKyAgICAiICBARy0t
IiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZmlsdGVyPUBZUE9TSVRJVkVfUEFUVEVSTlMiCiAg
ICAgIltARy1AWU5FR0FUSVZFX1BBVFRFUk5TXUBEXG4iCi0iICAgICAgUnVuIG9ubHkgdGhlIHRl
c3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHBvc2l0aXZlIHBhdHRlcm5zIGJ1dFxu
IgotIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0aXZlIHBhdHRlcm5zLiAnPycgbWF0Y2hlcyBhbnkg
c2luZ2xlIGNoYXJhY3RlcjsgJyonXG4iCi0iICAgICAgbWF0Y2hlcyBhbnkgc3Vic3RyaW5nOyAn
Oicgc2VwYXJhdGVzIHR3byBwYXR0ZXJucy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklY
XyAiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNARFxuIgotIiAgICAgIFJ1biBhbGwgZGlzYWJsZWQg
dGVzdHMgdG9vLlxuIgotIlxuIgotIlRlc3QgRXhlY3V0aW9uOlxuIgotIiAgQEctLSIgR1RFU1Rf
RkxBR19QUkVGSVhfICJyZXBlYXQ9QFlbQ09VTlRdQERcbiIKLSIgICAgICBSdW4gdGhlIHRlc3Rz
IHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVhdCBmb3JldmVyLlxuIgot
IiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJzaHVmZmxlQERcbiIKLSIgICAgICBSYW5kb21p
emUgdGVzdHMnIG9yZGVycyBvbiBldmVyeSBpdGVyYXRpb24uXG4iCi0iICBARy0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gInJhbmRvbV9zZWVkPUBZW05VTUJFUl1ARFxuIgotIiAgICAgIFJhbmRvbSBu
dW1iZXIgc2VlZCB0byB1c2UgZm9yIHNodWZmbGluZyB0ZXN0IG9yZGVycyAoYmV0d2VlbiAxIGFu
ZFxuIgotIiAgICAgIDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1cnJl
bnQgdGltZSkuXG4iCi0iXG4iCi0iVGVzdCBPdXRwdXQ6XG4iCi0iICBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8gImNvbG9yPUBZKEBHeWVzQFl8QEdub0BZfEBHYXV0b0BZKUBEXG4iCi0iICAgICAg
RW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBHYXV0b0BELlxu
IgotIiAgLUBHLSIgR1RFU1RfRkxBR19QUkVGSVhfICJwcmludF90aW1lPTBARFxuIgotIiAgICAg
IERvbid0IHByaW50IHRoZSBlbGFwc2VkIHRpbWUgb2YgZWFjaCB0ZXN0LlxuIgotIiAgQEctLSIg
R1RFU1RfRkxBR19QUkVGSVhfICJvdXRwdXQ9QFkoQEdqc29uQFl8QEd4bWxAWSlbQEc6QFlESVJF
Q1RPUllfUEFUSEBHIgotICAgIEdURVNUX1BBVEhfU0VQXyAiQFl8QEc6QFlGSUxFX1BBVEhdQERc
biIKLSIgICAgICBHZW5lcmF0ZSBhIEpTT04gb3IgWE1MIHJlcG9ydCBpbiB0aGUgZ2l2ZW4gZGly
ZWN0b3J5IG9yIHdpdGggdGhlIGdpdmVuXG4iCi0iICAgICAgZmlsZSBuYW1lLiBAWUZJTEVfUEFU
SEBEIGRlZmF1bHRzIHRvIEBHdGVzdF9kZXRhaWxzLnhtbEBELlxuIgorICAgICIgICAgICBSdW4g
b25seSB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIG9uZSBvZiB0aGUgcG9zaXRpdmUgcGF0
dGVybnMgIgorICAgICJidXRcbiIKKyAgICAiICAgICAgbm9uZSBvZiB0aGUgbmVnYXRpdmUgcGF0
dGVybnMuICc/JyBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyOyAiCisgICAgIicqJ1xuIgor
ICAgICIgICAgICBtYXRjaGVzIGFueSBzdWJzdHJpbmc7ICc6JyBzZXBhcmF0ZXMgdHdvIHBhdHRl
cm5zLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJhbHNvX3J1bl9k
aXNhYmxlZF90ZXN0c0BEXG4iCisgICAgIiAgICAgIFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMgdG9v
LlxuIgorICAgICJcbiIKKyAgICAiVGVzdCBFeGVjdXRpb246XG4iCisgICAgIiAgQEctLSIgR1RF
U1RfRkxBR19QUkVGSVhfCisgICAgInJlcGVhdD1AWVtDT1VOVF1ARFxuIgorICAgICIgICAgICBS
dW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVhdCBm
b3JldmVyLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzaHVmZmxl
QERcbiIKKyAgICAiICAgICAgUmFuZG9taXplIHRlc3RzJyBvcmRlcnMgb24gZXZlcnkgaXRlcmF0
aW9uLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJyYW5kb21fc2Vl
ZD1AWVtOVU1CRVJdQERcbiIKKyAgICAiICAgICAgUmFuZG9tIG51bWJlciBzZWVkIHRvIHVzZSBm
b3Igc2h1ZmZsaW5nIHRlc3Qgb3JkZXJzIChiZXR3ZWVuIDEgYW5kXG4iCisgICAgIiAgICAgIDk5
OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSkuXG4iCisg
ICAgIlxuIgorICAgICJUZXN0IE91dHB1dDpcbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8KKyAgICAiY29sb3I9QFkoQEd5ZXNAWXxAR25vQFl8QEdhdXRvQFkpQERcbiIKKyAgICAi
ICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBHYXV0
b0BELlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJicmllZj0xQERc
biIKKyAgICAiICAgICAgT25seSBwcmludCB0ZXN0IGZhaWx1cmVzLlxuIgorICAgICIgIEBHLS0i
IEdURVNUX0ZMQUdfUFJFRklYXworICAgICJwcmludF90aW1lPTBARFxuIgorICAgICIgICAgICBE
b24ndCBwcmludCB0aGUgZWxhcHNlZCB0aW1lIG9mIGVhY2ggdGVzdC5cbiIKKyAgICAiICBARy0t
IiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAib3V0cHV0PUBZKEBHanNvbkBZfEBHeG1sQFkpW0BH
OkBZRElSRUNUT1JZX1BBVEhARyIgR1RFU1RfUEFUSF9TRVBfCisgICAgIkBZfEBHOkBZRklMRV9Q
QVRIXUBEXG4iCisgICAgIiAgICAgIEdlbmVyYXRlIGEgSlNPTiBvciBYTUwgcmVwb3J0IGluIHRo
ZSBnaXZlbiBkaXJlY3Rvcnkgb3Igd2l0aCB0aGUgIgorICAgICJnaXZlblxuIgorICAgICIgICAg
ICBmaWxlIG5hbWUuIEBZRklMRV9QQVRIQEQgZGVmYXVsdHMgdG8gQEd0ZXN0X2RldGFpbC54bWxA
RC5cbiIKICMgaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotIiAgQEctLSIgR1RFU1RfRkxB
R19QUkVGSVhfICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZUE9SVEBEXG4iCi0iICAgICAg
U3RyZWFtIHRlc3QgcmVzdWx0cyB0byB0aGUgZ2l2ZW4gc2VydmVyLlxuIgorICAgICIgIEBHLS0i
IEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZUE9S
VEBEXG4iCisgICAgIiAgICAgIFN0cmVhbSB0ZXN0IHJlc3VsdHMgdG8gdGhlIGdpdmVuIHNlcnZl
ci5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSJcbiIKLSJBc3Nl
cnRpb24gQmVoYXZpb3I6XG4iCisgICAgIlxuIgorICAgICJBc3NlcnRpb24gQmVoYXZpb3I6XG4i
CiAjIGlmIEdURVNUX0hBU19ERUFUSF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBARy0t
IiBHVEVTVF9GTEFHX1BSRUZJWF8gImRlYXRoX3Rlc3Rfc3R5bGU9QFkoQEdmYXN0QFl8QEd0aHJl
YWRzYWZlQFkpQERcbiIKLSIgICAgICBTZXQgdGhlIGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5c
biIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZGVhdGhfdGVzdF9zdHls
ZT1AWShAR2Zhc3RAWXxAR3RocmVhZHNhZmVAWSlARFxuIgorICAgICIgICAgICBTZXQgdGhlIGRl
ZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9U
RVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImJy
ZWFrX29uX2ZhaWx1cmVARFxuIgotIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8g
ZGVidWdnZXIgYnJlYWstcG9pbnRzLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJ0
aHJvd19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJlcyBpbnRv
IEMrKyBleGNlcHRpb25zIGZvciB1c2UgYnkgYW4gZXh0ZXJuYWxcbiIKLSIgICAgICB0ZXN0IGZy
YW1ld29yay5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiY2F0Y2hfZXhjZXB0aW9u
cz0wQERcbiIKLSIgICAgICBEbyBub3QgcmVwb3J0IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJl
cy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgotIiAgICAgIHRvIGNyYXNoIHRoZSBwcm9ncmFtIG9y
IHRocm93IGEgcG9wLXVwIChvbiBXaW5kb3dzKS5cbiIKLSJcbiIKLSJFeGNlcHQgZm9yIEBHLS0i
IEdURVNUX0ZMQUdfUFJFRklYXyAibGlzdF90ZXN0c0BELCB5b3UgY2FuIGFsdGVybmF0aXZlbHkg
c2V0ICIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiYnJlYWtfb25fZmFp
bHVyZUBEXG4iCisgICAgIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8gZGVidWdn
ZXIgYnJlYWstcG9pbnRzLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAg
ICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKKyAgICAiICAgICAgVHVybiBhc3NlcnRpb24gZmFpbHVy
ZXMgaW50byBDKysgZXhjZXB0aW9ucyBmb3IgdXNlIGJ5IGFuIGV4dGVybmFsXG4iCisgICAgIiAg
ICAgIHRlc3QgZnJhbWV3b3JrLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXwor
ICAgICJjYXRjaF9leGNlcHRpb25zPTBARFxuIgorICAgICIgICAgICBEbyBub3QgcmVwb3J0IGV4
Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgorICAgICIg
ICAgICB0byBjcmFzaCB0aGUgcHJvZ3JhbSBvciB0aHJvdyBhIHBvcC11cCAob24gV2luZG93cyku
XG4iCisgICAgIlxuIgorICAgICJFeGNlcHQgZm9yIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXwor
ICAgICJsaXN0X3Rlc3RzQEQsIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBzZXQgIgogICAgICJ0aGUg
Y29ycmVzcG9uZGluZ1xuIgotImVudmlyb25tZW50IHZhcmlhYmxlIG9mIGEgZmxhZyAoYWxsIGxl
dHRlcnMgaW4gdXBwZXItY2FzZSkuIEZvciBleGFtcGxlLCB0b1xuIgotImRpc2FibGUgY29sb3Jl
ZCB0ZXh0IG91dHB1dCwgeW91IGNhbiBlaXRoZXIgc3BlY2lmeSBARy0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8KKyAgICAiZW52aXJvbm1lbnQgdmFyaWFibGUgb2YgYSBmbGFnIChhbGwgbGV0dGVycyBp
biB1cHBlci1jYXNlKS4gRm9yIGV4YW1wbGUsICIKKyAgICAidG9cbiIKKyAgICAiZGlzYWJsZSBj
b2xvcmVkIHRleHQgb3V0cHV0LCB5b3UgY2FuIGVpdGhlciBzcGVjaWZ5ICIKKyAgICAiQEctLSIg
R1RFU1RfRkxBR19QUkVGSVhfCiAgICAgImNvbG9yPW5vQEQgb3Igc2V0XG4iCi0idGhlIEBHIiBH
VEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
QEdub0BELlxuIgotIlxuIgotIkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVhZCB0aGUg
IiBHVEVTVF9OQU1FXyAiIGRvY3VtZW50YXRpb24gYXRcbiIKLSJARyIgR1RFU1RfUFJPSkVDVF9V
UkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4gIiBHVEVTVF9OQU1FXyAiXG4iCi0iKG5vdCBv
bmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyksIHBsZWFzZSByZXBvcnQgaXQgdG9cbiIKLSJA
RzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7CisgICAgInRoZSBARyIgR1RFU1RfRkxBR19Q
UkVGSVhfVVBQRVJfCisgICAgIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gQEdub0BE
LlxuIgorICAgICJcbiIKKyAgICAiRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWFkIHRo
ZSAiIEdURVNUX05BTUVfCisgICAgIiBkb2N1bWVudGF0aW9uIGF0XG4iCisgICAgIkBHIiBHVEVT
VF9QUk9KRUNUX1VSTF8gIkBELiBJZiB5b3UgZmluZCBhIGJ1ZyBpbiAiIEdURVNUX05BTUVfCisg
ICAgIlxuIgorICAgICIobm90IG9uZSBpbiB5b3VyIG93biBjb2RlIG9yIHRlc3RzKSwgcGxlYXNl
IHJlcG9ydCBpdCB0b1xuIgorICAgICJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7CiAK
IHN0YXRpYyBib29sIFBhcnNlR29vZ2xlVGVzdEZsYWcoY29uc3QgY2hhciogY29uc3QgYXJnKSB7
CiAgIHJldHVybiBQYXJzZUJvb2xGbGFnKGFyZywga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZywK
ICAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVz
dHMpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtCcmVha09uRmFpbHVyZUZsYWcsCi0g
ICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKSB8fAotICAg
ICAgUGFyc2VCb29sRmxhZyhhcmcsIGtDYXRjaEV4Y2VwdGlvbnNGbGFnLAotICAgICAgICAgICAg
ICAgICAgICAmR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSkgfHwKLSAgICAgIFBhcnNlU3Ry
aW5nRmxhZyhhcmcsIGtDb2xvckZsYWcsICZHVEVTVF9GTEFHKGNvbG9yKSkgfHwKLSAgICAgIFBh
cnNlU3RyaW5nRmxhZyhhcmcsIGtEZWF0aFRlc3RTdHlsZUZsYWcsCi0gICAgICAgICAgICAgICAg
ICAgICAgJkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xG
bGFnKGFyZywga0RlYXRoVGVzdFVzZUZvcmssCi0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9G
TEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywg
a0ZpbHRlckZsYWcsICZHVEVTVF9GTEFHKGZpbHRlcikpIHx8Ci0gICAgICBQYXJzZVN0cmluZ0Zs
YWcoYXJnLCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnLAotICAgICAgICAgICAgICAgICAgICAg
ICZHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSkgfHwKLSAgICAgIFBhcnNlQm9v
bEZsYWcoYXJnLCBrTGlzdFRlc3RzRmxhZywgJkdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHx8Ci0g
ICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0cHV0
KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZM
QUcocHJpbnRfdGltZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRGOEZs
YWcsICZHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB8fAotICAgICAgUGFyc2VJbnQzMkZsYWcoYXJn
LCBrUmFuZG9tU2VlZEZsYWcsICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKLSAgICAgIFBh
cnNlSW50MzJGbGFnKGFyZywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8Ci0g
ICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVmZmxl
KSkgfHwKLSAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcsCi0g
ICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8Ci0g
ICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAotICAgICAgICAg
ICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAotICAgICAgUGFy
c2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsCi0gICAgICAgICAgICAgICAgICAg
ICZHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpKTsKKyAgICAgICAgIFBhcnNlQm9vbEZsYWco
YXJnLCBrQnJlYWtPbkZhaWx1cmVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RFU1Rf
RkxBRyhicmVha19vbl9mYWlsdXJlKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBr
Q2F0Y2hFeGNlcHRpb25zRmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUco
Y2F0Y2hfZXhjZXB0aW9ucykpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrQ29s
b3JGbGFnLCAmR1RFU1RfRkxBRyhjb2xvcikpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWco
YXJnLCBrRGVhdGhUZXN0U3R5bGVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICZHVEVT
VF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcs
IGtEZWF0aFRlc3RVc2VGb3JrLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3VzZV9mb3JrKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrRmFp
bEZhc3QsICZHVEVTVF9GTEFHKGZhaWxfZmFzdCkpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0Zs
YWcoYXJnLCBrRmlsdGVyRmxhZywgJkdURVNUX0ZMQUcoZmlsdGVyKSkgfHwKKyAgICAgICAgIFBh
cnNlU3RyaW5nRmxhZyhhcmcsIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpKSB8fAor
ICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtMaXN0VGVzdHNGbGFnLCAmR1RFU1RfRkxBRyhs
aXN0X3Rlc3RzKSkgfHwKKyAgICAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtPdXRwdXRGbGFn
LCAmR1RFU1RfRkxBRyhvdXRwdXQpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtC
cmllZkZsYWcsICZHVEVTVF9GTEFHKGJyaWVmKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWco
YXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHx8CisgICAgICAg
ICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRGOEZsYWcsICZHVEVTVF9GTEFHKHByaW50X3V0
ZjgpKSB8fAorICAgICAgICAgUGFyc2VJbnQzMkZsYWcoYXJnLCBrUmFuZG9tU2VlZEZsYWcsICZH
VEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKKyAgICAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywg
a1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8CisgICAgICAgICBQYXJzZUJvb2xG
bGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVmZmxlKSkgfHwKKyAgICAgICAg
IFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8CisgICAgICAgICBQ
YXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAorICAgICAgICAgUGFy
c2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsICZHVEVTVF9GTEFHKHRocm93X29u
X2ZhaWx1cmUpKTsKIH0KIAogI2lmIEdURVNUX1VTRV9PV05fRkxBR0ZJTEVfRkxBR18KQEAgLTU4
OTUsNyArNjYwMyw3IEBAIHZvaWQgUGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5SW1wbChpbnQqIGFy
Z2MsIENoYXJUeXBlKiogYXJndikgewogdm9pZCBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHkoaW50
KiBhcmdjLCBjaGFyKiogYXJndikgewogICBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHlJbXBsKGFy
Z2MsIGFyZ3YpOwogCi0gIC8vIEZpeCB0aGUgdmFsdWUgb2YgKl9OU0dldEFyZ2MoKSBvbiBtYWNP
UywgYnV0IGlmZgorICAvLyBGaXggdGhlIHZhbHVlIG9mICpfTlNHZXRBcmdjKCkgb24gbWFjT1Ms
IGJ1dCBpZiBhbmQgb25seSBpZgogICAvLyAqX05TR2V0QXJndigpID09IGFyZ3YKICAgLy8gT25s
eSBhcHBsaWNhYmxlIHRvIGNoYXIqKiB2ZXJzaW9uIG9mIGFyZ3YKICNpZiBHVEVTVF9PU19NQUMK
QEAgLTU5NjMsMjMgKzY2NzEsNTAgQEAgdm9pZCBJbml0R29vZ2xlVGVzdChpbnQqIGFyZ2MsIHdj
aGFyX3QqKiBhcmd2KSB7CiAjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09P
R0xFX1RFU1RfRlVOQ1RJT05fKQogfQogCisvLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4g
YmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBsYXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMg
bm8gYXJnYy9hcmd2Lgordm9pZCBJbml0R29vZ2xlVGVzdCgpIHsKKyAgLy8gU2luY2UgQXJkdWlu
byBkb2Vzbid0IGhhdmUgYSBjb21tYW5kIGxpbmUsIGZha2Ugb3V0IHRoZSBhcmdjL2FyZ3YgYXJn
dW1lbnRzCisgIGludCBhcmdjID0gMTsKKyAgY29uc3QgYXV0byBhcmcwID0gImR1bW15IjsKKyAg
Y2hhciogYXJndjAgPSBjb25zdF9jYXN0PGNoYXIqPihhcmcwKTsKKyAgY2hhcioqIGFyZ3YgPSAm
YXJndjA7CisKKyNpZiBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZVTkNU
SU9OXykKKyAgR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKCZhcmdjLCBh
cmd2KTsKKyNlbHNlICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZV
TkNUSU9OXykKKyAgaW50ZXJuYWw6OkluaXRHb29nbGVUZXN0SW1wbCgmYXJnYywgYXJndik7Cisj
ZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05f
KQorfQorCiBzdGQ6OnN0cmluZyBUZW1wRGlyKCkgewogI2lmIGRlZmluZWQoR1RFU1RfQ1VTVE9N
X1RFTVBESVJfRlVOQ1RJT05fKQogICByZXR1cm4gR1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVOQ1RJ
T05fKCk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCisjZWxpZiBHVEVT
VF9PU19XSU5ET1dTX01PQklMRQogICByZXR1cm4gIlxcdGVtcFxcIjsKICNlbGlmIEdURVNUX09T
X1dJTkRPV1MKICAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBpbnRlcm5hbDo6cG9zaXg6OkdldEVu
digiVEVNUCIpOwotICBpZiAodGVtcF9kaXIgPT0gTlVMTCB8fCB0ZW1wX2RpclswXSA9PSAnXDAn
KQorICBpZiAodGVtcF9kaXIgPT0gbnVsbHB0ciB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKSB7CiAg
ICAgcmV0dXJuICJcXHRlbXBcXCI7Ci0gIGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1wX2Rp
cikgLSAxXSA9PSAnXFwnKQorICB9IGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1wX2Rpcikg
LSAxXSA9PSAnXFwnKSB7CiAgICAgcmV0dXJuIHRlbXBfZGlyOwotICBlbHNlCisgIH0gZWxzZSB7
CiAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHRlbXBfZGlyKSArICJcXCI7CisgIH0KICNlbGlmIEdU
RVNUX09TX0xJTlVYX0FORFJPSUQKLSAgcmV0dXJuICIvc2RjYXJkLyI7CisgIGNvbnN0IGNoYXIq
IHRlbXBfZGlyID0gaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfVE1QRElSIik7CisgIGlm
ICh0ZW1wX2RpciA9PSBudWxscHRyIHx8IHRlbXBfZGlyWzBdID09ICdcMCcpIHsKKyAgICByZXR1
cm4gIi9kYXRhL2xvY2FsL3RtcC8iOworICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsK
KyAgfQorI2VsaWYgR1RFU1RfT1NfTElOVVgKKyAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBpbnRl
cm5hbDo6cG9zaXg6OkdldEVudigiVEVTVF9UTVBESVIiKTsKKyAgaWYgKHRlbXBfZGlyID09IG51
bGxwdHIgfHwgdGVtcF9kaXJbMF0gPT0gJ1wwJykgeworICAgIHJldHVybiAiL3RtcC8iOworICB9
IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsKKyAgfQogI2Vsc2UKICAgcmV0dXJuICIvdG1w
LyI7CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFpbi5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCmluZGV4IDIxMTNmNjIxZTY1NDMwZTU1NzBkZmIyMDE1
ODg0YTJkNGY0Y2YwYjMuLjQ2YjI3YzNkN2Q1NjU0NjY4OTA2YmZmNWY1YmExYTI2Njg4MWY3N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCkBAIC0yNywxMSAr
MjcsMjggQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2luY2x1ZGUgPHN0
ZGlvLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKKyNp
ZiBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09TX0VTUDMyCisjaWYgR1RFU1RfT1NfRVNQODI2
NgorZXh0ZXJuICJDIiB7CisjZW5kaWYKK3ZvaWQgc2V0dXAoKSB7CisgIHRlc3Rpbmc6OkluaXRH
b29nbGVUZXN0KCk7Cit9CisKK3ZvaWQgbG9vcCgpIHsgUlVOX0FMTF9URVNUUygpOyB9CisKKyNp
ZiBHVEVTVF9PU19FU1A4MjY2Cit9CisjZW5kaWYKKworI2Vsc2UKKwogR1RFU1RfQVBJXyBpbnQg
bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgcHJpbnRmKCJSdW5uaW5nIG1haW4oKSBm
cm9tICVzXG4iLCBfX0ZJTEVfXyk7CiAgIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBh
cmd2KTsKICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKIH0KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvQlVJTEQuYmF6ZWwKaW5kZXggYTkzMGQ2NWUwNDQwMTQ0NDE2YWU4OGFi
Mjc1OGZkOTM0MGEwOTM3Yi4uZTc5Yjg3NWNjN2QxZjJjYjU3OGY3OWIwMmFlZGRiZjZjM2RhYjc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L0JVSUxELmJhemVsCkBAIC0yOCwyOCAr
MjgsMTYgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjCi0jIEF1dGhvcjogbWlz
dGVyZ0Bnb29nbGUuY29tIChHZW5uYWRpeSBDaXZpbCkKLSMKICMgQmF6ZWwgQlVJTEQgZm9yIFRo
ZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKIAotbGljZW5zZXMo
WyJub3RpY2UiXSkKK2xvYWQoIkBydWxlc19jYy8vY2M6ZGVmcy5iemwiLCAiY2NfYmluYXJ5Iiwg
ImNjX3Rlc3QiKQorbG9hZCgiQHJ1bGVzX3B5dGhvbi8vcHl0aG9uOmRlZnMuYnpsIiwgInB5X2xp
YnJhcnkiLCAicHlfdGVzdCIpCiAKLWNvbmZpZ19zZXR0aW5nKAotICAgIG5hbWUgPSAid2luZG93
cyIsCi0gICAgdmFsdWVzID0geyJjcHUiOiAieDY0X3dpbmRvd3MifSwKLSkKLQotY29uZmlnX3Nl
dHRpbmcoCi0gICAgbmFtZSA9ICJ3aW5kb3dzX21zdmMiLAotICAgIHZhbHVlcyA9IHsiY3B1Ijog
Ing2NF93aW5kb3dzX21zdmMifSwKLSkKK2xpY2Vuc2VzKFsibm90aWNlIl0pCiAKLWNvbmZpZ19z
ZXR0aW5nKAotICAgIG5hbWUgPSAiaGFzX2Fic2wiLAotICAgIHZhbHVlcyA9IHsiZGVmaW5lIjog
ImFic2w9MSJ9LAotKQorcGFja2FnZShkZWZhdWx0X3Zpc2liaWxpdHkgPSBbIi8vOl9fc3VicGFj
a2FnZXNfXyJdKQogCi0jb24gd2luZG93cyBleGNsdWRlIGd0ZXN0LXR1cGxlLmggYW5kIGdvb2ds
ZXRlc3QtdHVwbGUtdGVzdC5jYworI29uIHdpbmRvd3MgZXhjbHVkZSBndGVzdC10dXBsZS5oCiBj
Y190ZXN0KAogICAgIG5hbWUgPSAiZ3Rlc3RfYWxsX3Rlc3QiLAogICAgIHNpemUgPSAic21hbGwi
LApAQCAtNjIsNDEgKzUwLDQzIEBAIGNjX3Rlc3QoCiAgICAgICAgIF0sCiAgICAgICAgIGV4Y2x1
ZGUgPSBbCiAgICAgICAgICAgICAiZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MiLAotICAgICAg
ICAgICAgImdvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVz
dC9zcmMvZ3Rlc3QtYWxsLmNjIiwKICAgICAgICAgICAgICJndGVzdF9hbGxfdGVzdC5jYyIsCiAg
ICAgICAgICAgICAiZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIiwKICAgICAgICAgICAgICJn
dGVzdC1saXN0ZW5lcl90ZXN0LmNjIiwKICAgICAgICAgICAgICJndGVzdC11bml0dGVzdC1hcGlf
dGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MiLAor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYyIsCiAgICAgICAgICAg
ICAiZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIiwKICAgICAgICAgICAgICJn
b29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWVudi12
YXItdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3Rf
LmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdF8uY2MiLAorICAg
ICAgICAgICAgImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyIsCiAg
ICAgICAgICAgICAiZ29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyIsCi0g
ICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCi0gICAgICAgICAgICAg
Imdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1s
aXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1ZmZs
ZS10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0
Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIiwK
LSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAotICAgICAgICAgICAg
ICJnb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MiLAotICAgICAgICAgICAgICJn
b29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYyIsCi0gICAgICAgICAg
ICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKLQorICAg
ICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCisgICAgICAgICAgICAiZ29v
Z2xldGVzdC1vdXRwdXQtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdC10
ZXN0cy11bml0dGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1ZmZsZS10ZXN0
Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYyIs
CisgICAgICAgICAgICAiZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3RfLmNjIiwKKyAgICAg
ICAgICAgICJnb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyIsCisgICAgICAgICAgICAi
Z29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtdGhy
b3ctb24tZmFpbHVyZS10ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10
ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFy
YW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKICAgICAgICAgXSwKICAgICApICsgc2Vs
ZWN0KHsKICAgICAgICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3NfbXN2
YyI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAi
Z29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIiwKLSAgICAgICAgXSwKKyAgICAgICAgIi8vY29uZGl0
aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSksCiAgICAgY29wdHMgPSBzZWxlY3QoewogICAgICAg
ICAiLy86d2luZG93cyI6IFsiLURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0wIl0sCi0gICAgICAg
ICIvLzp3aW5kb3dzX21zdmMiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9MCJdLAogICAg
ICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9
MSJdLAorICAgIH0pICsgc2VsZWN0KHsKKyAgICAgICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMgc291
cmNlIGZpbGVzIGFzIFVURi04IGVuY29kZWQuCisgICAgICAgICIvLzptc3ZjX2NvbXBpbGVyIjog
WyItdXRmLTgiXSwKKyAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSks
CiAgICAgaW5jbHVkZXMgPSBbCiAgICAgICAgICJnb29nbGV0ZXN0IiwKQEAgLTEwNiwxNSArOTYs
MTEgQEAgY2NfdGVzdCgKICAgICBdLAogICAgIGxpbmtvcHRzID0gc2VsZWN0KHsKICAgICAgICAg
Ii8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3NfbXN2YyI6IFtdLAotICAgICAg
ICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAiLXB0aHJlYWQiLAotICAg
ICAgICBdLAorICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1wdGhyZWFkIl0sCiAg
ICAgfSksCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAogKQogCi0KICMgVGVzdHMgZGVh
dGggdGVzdHMuCiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRl
c3QiLApAQCAtMTc1LDYgKzE2MSw3IEBAIHB5X2xpYnJhcnkoCiAgICAgbmFtZSA9ICJndGVzdF90
ZXN0X3V0aWxzIiwKICAgICB0ZXN0b25seSA9IDEsCiAgICAgc3JjcyA9IFsiZ3Rlc3RfdGVzdF91
dGlscy5weSJdLAorICAgIGltcG9ydHMgPSBbIi4iXSwKICkKIAogY2NfYmluYXJ5KApAQCAtMTk5
LDEzICsxODYsMTIgQEAgY2NfYmluYXJ5KAogICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCiApCiAK
LQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QiLAogICAgIHNp
emUgPSAic21hbGwiLAogICAgIHNyY3MgPSBbImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkiXSwK
ICAgICBhcmdzID0gc2VsZWN0KHsKLSAgICAgICAgIjpoYXNfYWJzbCI6IFtdLAorICAgICAgICAi
Ly86aGFzX2Fic2wiOiBbXSwKICAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWyItLW5v
X3N0YWNrdHJhY2Vfc3VwcG9ydCJdLAogICAgIH0pLAogICAgIGRhdGEgPSBbCkBAIC0yNDUsNiAr
MjMxLDIxIEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkK
IAorY2NfYmluYXJ5KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8i
LAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0LWZhaWxmYXN0LXVu
aXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCispCisKK3B5X3Rlc3QoCisg
ICAgbmFtZSA9ICJnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0IiwKKyAgICBzaXplID0gIm1l
ZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weSJdLAor
ICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XyJdLAorICAgIGRlcHMg
PSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCispCisKIGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdv
b2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0XyIsCiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMjYwLDYg
KzI2MSwyMCBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiAp
CiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50
LXVuaXR0ZXN0XyIsCisgICAgdGVzdG9ubHkgPSAxLAorICAgIHNyY3MgPSBbImdvb2dsZXRlc3Qt
Z2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0
Il0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9u
bWVudC11bml0dGVzdCIsCisgICAgc2l6ZSA9ICJtZWRpdW0iLAorICAgIHNyY3MgPSBbImdvb2ds
ZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsiOmdv
b2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0XyJdLAorICAgIGRlcHMgPSBbIjpn
dGVzdF90ZXN0X3V0aWxzIl0sCispCiAKIGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRl
c3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdF8iLApAQCAtMjY4LDggKzI4Myw2IEBAIGNjX2Jp
bmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAogKQogCi0KLQogcHlfdGVzdCgKICAgICBu
YW1lID0gImdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdCIsCiAgICAgc2l6ZSA9
ICJzbWFsbCIsCkBAIC0yNzgsNyArMjkxLDYgQEAgcHlfdGVzdCgKICAgICBkZXBzID0gWyI6Z3Rl
c3RfdGVzdF91dGlscyJdLAogKQogCi0KIGNjX3Rlc3QoCiAgICAgbmFtZSA9ICJndGVzdF9hc3Nl
cnRfYnlfZXhjZXB0aW9uX3Rlc3QiLAogICAgIHNpemUgPSAic21hbGwiLApAQCAtMjg2LDggKzI5
OCw2IEBAIGNjX3Rlc3QoCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3QiXSwKICkKIAotCi0KIGNjX2Jp
bmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0XyIsCiAg
ICAgdGVzdG9ubHkgPSAxLApAQCAtMzAzLDcgKzMxMyw2IEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9
IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAotCiBjY19iaW5hcnkoCiAgICAgbmFtZSA9ICJn
b29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfIiwKICAgICB0ZXN0b25seSA9IDEsCkBAIC0z
MTEsNiArMzIwLDM4IEBAIGNjX2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAogKQog
CitjY190ZXN0KAorICAgIG5hbWUgPSAiZ3Rlc3Rfc2tpcF90ZXN0IiwKKyAgICBzaXplID0gInNt
YWxsIiwKKyAgICBzcmNzID0gWyJndGVzdF9za2lwX3Rlc3QuY2MiXSwKKyAgICBkZXBzID0gWyIv
LzpndGVzdF9tYWluIl0sCispCisKK2NjX3Rlc3QoCisgICAgbmFtZSA9ICJndGVzdF9za2lwX2lu
X2Vudmlyb25tZW50X3NldHVwX3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3Mg
PSBbImd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyJdLAorICAgIGRlcHMg
PSBbIi8vOmd0ZXN0X21haW4iXSwKKykKKworcHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3Nr
aXBfY2hlY2tfb3V0cHV0X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3MgPSBb
Imd0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWyI6Z3Rlc3Rf
c2tpcF90ZXN0Il0sCisgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKKykKKworcHlf
dGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBfZW52aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rl
c3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3MgPSBbImd0ZXN0X3NraXBfZW52aXJv
bm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWworICAgICAgICAiOmd0
ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdCIsCisgICAgXSwKKyAgICBkZXBzID0g
WyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBweV90ZXN0KAogICAgIG5hbWUgPSAiZ29vZ2xl
dGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTM4MSw3
ICs0MjIsNyBAQCBweV90ZXN0KAogICAgICAgICAiZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkiLAog
ICAgIF0sCiAgICAgYXJncyA9IHNlbGVjdCh7Ci0gICAgICAgICI6aGFzX2Fic2wiOiBbXSwKKyAg
ICAgICAgIi8vOmhhc19hYnNsIjogW10sCiAgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6
IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKICAgICB9KSwKICAgICBkYXRhID0gWwpAQCAt
NDIxLDYgKzQ2MiwyMSBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxz
Il0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3Vp
dGUtdGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXNl
dHVwdGVzdHN1aXRlLXRlc3RfLmNjIl0sCisgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAor
KQorCitweV90ZXN0KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0
IiwKKyAgICBzaXplID0gIm1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1zZXR1cHRl
c3RzdWl0ZS10ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3Vp
dGUtdGVzdF8iXSwKKyAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBjY19i
aW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdF8iLAogICAg
IHRlc3Rvbmx5ID0gMSwKQEAgLTQ1Miw3ICs1MDgsNiBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBb
IjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2ds
ZXRlc3QtanNvbi1vdXRmaWxlcy10ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTQ3NCwx
OCArNTI5LDE5IEBAIHB5X3Rlc3QoCiAgICAgICAgICJnb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVu
aXR0ZXN0LnB5IiwKICAgICAgICAgImd0ZXN0X2pzb25fdGVzdF91dGlscy5weSIsCiAgICAgXSwK
KyAgICBhcmdzID0gc2VsZWN0KHsKKyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCisgICAgICAg
ICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKKyAg
ICB9KSwKICAgICBkYXRhID0gWwogICAgICAgICAjIFdlIGludm9rZSBndGVzdF9ub190ZXN0X3Vu
aXR0ZXN0IHRvIHZlcmlmeSB0aGUgSlNPTiBvdXRwdXQKICAgICAgICAgIyB3aGVuIHRoZSB0ZXN0
IHByb2dyYW0gY29udGFpbnMgbm8gdGVzdCBkZWZpbml0aW9uLgogICAgICAgICAiOmd0ZXN0X25v
X3Rlc3RfdW5pdHRlc3QiLAogICAgICAgICAiOmd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfIiwK
ICAgICBdLAotICAgIGFyZ3MgPSBzZWxlY3QoewotICAgICAgICAiOmhhc19hYnNsIjogW10sCi0g
ICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQi
XSwKLSAgICB9KSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQorCiAjIFZl
cmlmaWVzIGludGVyYWN0aW9uIG9mIGRlYXRoIHRlc3RzIGFuZCBleGNlcHRpb25zLgogY2NfdGVz
dCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF9jYXRjaF90ZXN0IiwKQEAg
LTUxNSw2ICs1NzEsMTAgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwKICAgICBzcmNz
ID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0LnB5Il0sCiAgICAg
ZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfIl0sCisg
ICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAgICAibm9fdGVz
dF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAog
KQogCkBAIC01MjMsNSArNTgzLDkgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwKICAg
ICBzcmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0LnB5Il0s
CiAgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3Rf
Il0sCisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAgICAi
bm9fdGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGls
cyJdLAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkKaW5kZXggNWQ0OWMxMDIzYzUw
ZWYxNjgzM2U2YjhlMmE4ZTYyMDI0ODQzMmFjMy4uOTRhNWIzM2YyMzA1MDkyNTkzNzU1YzNhYjg2
YWE1ZjZjMzI5ZTJhMCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0LnB5CkBAIC04OSw5
ICs4OSw5IEBAIGlmIFNVUFBPUlRTX1NFSF9FWENFUFRJT05TOgogICAgICAgc2VsZi5hc3NlcnRf
KCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biAnCiAgICAgICAgICAgICAgICAg
ICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgZGVzdHJ1Y3RvcicKICAgICAgICAgICAgICAgICAg
ICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3aXRo
IGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXBUZXN0Q2FzZSgpJworICAgICAgc2VsZi5hc3NlcnRf
KCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBTZXRVcFRlc3RTdWl0ZSgp
JwogICAgICAgICAgICAgICAgICAgIGluIHRlc3Rfb3V0cHV0KQotICAgICAgc2VsZi5hc3NlcnRf
KCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBUZWFyRG93blRlc3RDYXNl
KCknCisgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEgdGhy
b3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVzdF9v
dXRwdXQpCiAgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEg
dGhyb3duIGluIFNldFVwKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCkBA
IC0xMTcsMTAgKzExNywxMSBAQCBjbGFzcyBDYXRjaEN4eEV4Y2VwdGlvbnNUZXN0KGd0ZXN0X3Rl
c3RfdXRpbHMuVGVzdENhc2UpOgogICAiIiIKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRp
b25zSW5GaXh0dXJlQ29uc3RydWN0b3Ioc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhj
ZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJwotICAgICAgICAgICAgICAgICAnIlN0YW5kYXJkIEMr
KyBleGNlcHRpb24iIHRocm93biAnCi0gICAgICAgICAgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0
dXJlXCdzIGNvbnN0cnVjdG9yJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVU
KQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNj
cmlwdGlvbiAnCisgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3duICcKKyAg
ICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgY29uc3RydWN0b3InIGluIEVYX0JJTkFSWV9P
VVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1bmV4
cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1RoaXMg
ZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAgICAg
JyJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCIgKG5vIHF1b3RlcykgJwpAQCAtMTMwLDg4
ICsxMzEsOTAgQEAgY2xhc3MgQ2F0Y2hDeHhFeGNlcHRpb25zVGVzdChndGVzdF90ZXN0X3V0aWxz
LlRlc3RDYXNlKToKICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpOgogCiAgICAgZGVmIHRlc3RDYXRj
aGVzQ3h4RXhjZXB0aW9uc0luRml4dHVyZURlc3RydWN0b3Ioc2VsZik6Ci0gICAgICBzZWxmLmFz
c2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAnCi0gICAgICAgICAgICAgICAg
ICAgJyJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIiB0aHJvd24gJwotICAgICAgICAgICAgICAgICAg
ICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3RydWN0b3InCi0gICAgICAgICAgICAgICAgICAg
aW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5E
ZXN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAgICAn
Y2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQorICAgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAgICdDKysgZXhjZXB0aW9uIHdp
dGggZGVzY3JpcHRpb24gJworICAgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhy
b3duICcKKyAgICAgICAgICAnaW4gdGhlIHRlc3QgZml4dHVyZVwncyBkZXN0cnVjdG9yJyBpbiBF
WF9CSU5BUllfT1VUUFVULAorICAgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgICBzZWxm
LmFzc2VydFRydWUoCisgICAgICAgICAgJ0N4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRl
YXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBF
WF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hlc0N4
eEV4Y2VwdGlvbnNJblNldFVwVGVzdENhc2Uoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysg
ZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAg
ICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcFRlc3RDYXNlKCknCi0gICAgICAgICAgICAg
ICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25J
bkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQ
VVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGNv
bnN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAg
ICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhF
eGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAgICAg
ICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09V
VFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6
OlNldFVwKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAg
ICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4
Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAg
ICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09V
VFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Qg
dGVzdCBib2R5ICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAg
ICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAor
ICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhj
ZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4gU2V0VXBUZXN0U3VpdGUoKScgaW4gRVhfQklO
QVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAg
ICAgICdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAn
CisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9C
SU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0U3VpdGVUZXN0IGNvbnN0cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBl
eHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2Vs
Zi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3Qg
ZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllf
T1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAg
J0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICcKKyAgICAgICAgJ2Nh
bGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQp
CisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RT
dWl0ZVRlc3Q6OlRlYXJEb3duKCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4g
RVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUo
CisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgJwor
ICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklO
QVJZX09VVFBVVCkKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5UZWFyRG93blRl
c3RDYXNlKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2Ny
aXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAgICAgICAgICAgJyB0aHJv
d24gaW4gVGVhckRvd25UZXN0Q2FzZSgpJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllf
T1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0
aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisgICAgICAgICcgdGhyb3du
IGluIFRlYXJEb3duVGVzdFN1aXRlKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9P
VVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luU2V0VXAoc2VsZik6Ci0g
ICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJk
IEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcCgpJwot
ICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0Xygn
Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAg
ICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5B
UllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QgZGVz
dHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAg
ICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVk
IGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAg
ICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRp
b24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJworICAgICAgICAnIHRocm93biBpbiBTZXRVcCgp
JyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RTdWl0
ZSgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQs
IEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0
ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93bigpICcK
KyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJ
TkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1bmV4cGVjdGVkJyBub3QgaW4gRVhfQklO
QVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1RoaXMgZmFpbHVyZSBiZWxvbmdzIGluIHRo
aXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAgICAgJyJDeHhFeGNlcHRpb25JblNldFVw
VGVzdCIgKG5vIHF1b3RlcykgJwogICAgICAgICAgICAgICAgICAnYXBwZWFycyBvbiB0aGUgc2Ft
ZSBsaW5lIGFzIHdvcmRzICJjYWxsZWQgdW5leHBlY3RlZGx5IicpCiAKICAgZGVmIHRlc3RDYXRj
aGVzQ3h4RXhjZXB0aW9uc0luVGVhckRvd24oc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysg
ZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAg
ICAgICAgICAgICAgICAnIHRocm93biBpbiBUZWFyRG93bigpJwotICAgICAgICAgICAgICAgICBp
biBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZWFy
RG93blRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQg
YXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAg
IHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgZGVzdHJ1Y3RvciAnCi0g
ICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBp
biBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBl
eGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisgICAg
ICAgICcgdGhyb3duIGluIFRlYXJEb3duKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFS
WV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4
cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxm
LmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVj
dG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQs
IEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVz
dEJvZHkoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3Jp
cHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93
biBpbiB0aGUgdGVzdCBib2R5JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVU
KQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3du
VGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAg
ICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4
RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdj
YWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVU
KQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3du
KCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAg
ICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAg
ICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24i
JworICAgICAgICAnIHRocm93biBpbiB0aGUgdGVzdCBib2R5JyBpbiBFWF9CSU5BUllfT1VUUFVU
LCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4
Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAgJ2Nh
bGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQp
CisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRl
c3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5B
UllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAg
ICAgJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93bigpICcKKyAgICAgICAgJ2Nh
bGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQp
CiAKICAgZGVmIHRlc3RDYXRjaGVzTm9uU3RkQ3h4RXhjZXB0aW9ucyhzZWxmKToKLSAgICBzZWxm
LmFzc2VydF8oJ1Vua25vd24gQysrIGV4Y2VwdGlvbiB0aHJvd24gaW4gdGhlIHRlc3QgYm9keScK
LSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRy
dWUoCisgICAgICAgICdVbmtub3duIEMrKyBleGNlcHRpb24gdGhyb3duIGluIHRoZSB0ZXN0IGJv
ZHknIGluIEVYX0JJTkFSWV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAg
ZGVmIHRlc3RVbmhhbmRsZWRDeHhFeGNlcHRpb25zQWJvcnRUaGVQcm9ncmFtKHNlbGYpOgogICAg
ICMgRmlsdGVycyBvdXQgU0VIIGV4Y2VwdGlvbiB0ZXN0cyBvbiBXaW5kb3dzLiBVbmhhbmRsZWQg
U0VIIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKaW5kZXggMDlk
YWU3MDAzMGEzM2FlYWJhMDYwYWFlZjk3YTk3OWE4ZjU4MDRhZS4uOGMxMjdkNDBiMTFkNGQ3MmEz
ZmFhZTgwYmFmYmI3NDZkMWFhNDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8u
Y2MKQEAgLTY0LDE5ICs2NCwyMCBAQCBjbGFzcyBTZWhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0
IDogcHVibGljIFRlc3QgewogCiBURVNUX0YoU2VoRXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCwg
VGhyb3dzRXhjZXB0aW9uSW5EZXN0cnVjdG9yKSB7fQogCi1jbGFzcyBTZWhFeGNlcHRpb25JblNl
dFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgU2VoRXhjZXB0aW9uSW5TZXRV
cFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBT
ZXRVcFRlc3RDYXNlKCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KKyAgc3Rh
dGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxM
KTsgfQogfTsKIAotVEVTVF9GKFNlaEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93
c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkge30KK1RFU1RfRihTZWhFeGNlcHRpb25JblNldFVw
VGVzdFN1aXRlVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZSkge30KIAotY2xh
c3MgU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKK2Ns
YXNzIFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3Qgewog
IHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsgUmFpc2VFeGNlcHRp
b24oNDIsIDAsIDAsIE5VTEwpOyB9CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkg
eyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KIH07CiAKLVRFU1RfRihTZWhFeGNl
cHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVz
dENhc2UpIHt9CitURVNUX0YoU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRlc3QsCisg
ICAgICAgVGhyb3dzRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZSkge30KIAogY2xhc3MgU2Vo
RXhjZXB0aW9uSW5TZXRVcFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgpAQCAtMTA5
LDI0ICsxMTAsMjQgQEAgY2xhc3MgQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QgOiBwdWJs
aWMgVGVzdCB7CiAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysr
IGV4Y2VwdGlvbiIpKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7
CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAot
ICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENh
c2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRv
d25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAg
fQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QoKSB7Cisg
IH5DeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJ
TFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCBkZXN0cnVjdG9yICIKICAg
ICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7CiAgIH0KIAotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgQUREX0ZB
SUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlNldFVwKCkgIgogICAg
ICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4cGVjdGVkbHkuIjsKICAgfQogCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBB
RERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd24o
KSAiCiAgICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogICB9CkBA
IC0xMzcsOTcgKzEzOCw3OCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Qs
IFRocm93c0V4Y2VwdGlvbkluQ29uc3RydWN0b3IpIHsKICAgICAgICAgICAgICAgICA8PCAiY2Fs
bGVkIHVuZXhwZWN0ZWRseS4iOwogfQogCi0vLyBFeGNlcHRpb25zIGluIGRlc3RydWN0b3JzIGFy
ZSBub3Qgc3VwcG9ydGVkIGluIEMrKzExLgotI2lmICFHVEVTVF9MQU5HX0NYWDExCi1jbGFzcyBD
eHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBz
dGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBDeHhFeGNlcHRpb25JblNldFVwVGVz
dFN1aXRlVGVzdCgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhF
eGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCBjb25zdHJ1Y3RvciAiCiAgICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCi0gcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0
aW9uSW5EZXN0cnVjdG9yVGVzdCgpIHsKLSAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9D
T0RFX1dBUk5JTkdfQkVMT1dfKAotICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0
YW5kYXJkIEMrKyBleGNlcHRpb24iKSk7Ci0gIH0KLX07Ci0KLVRFU1RfRihDeHhFeGNlcHRpb25J
bkRlc3RydWN0b3JUZXN0LCBUaHJvd3NFeGNlcHRpb25JbkRlc3RydWN0b3IpIHt9Ci0jZW5kaWYg
IC8vIEMrKzExIG1vZGUKLQotY2xhc3MgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCA6
IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRl
c3QoKSB7Ci0gICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVw
VGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3Rl
ZC5cbiIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9yKCJT
dGFuZGFyZCBDKysgZXhjZXB0aW9uIik7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRl
c3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmlu
dGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRl
YXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1
aXRlVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhw
ZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5TZXRVcFRl
c3RDYXNlVGVzdCgpIHsKKyAgfkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0KCkgb3Zl
cnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRV
cFRlc3RDYXNlVGVzdCBkZXN0cnVjdG9yICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0
VXBUZXN0U3VpdGVUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVj
dGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25J
blNldFVwVGVzdENhc2VUZXN0OjpTZXRVcCgpICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICIKICAgICAgICAgICAgImNhbGxlZCBhcyBleHBl
Y3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdDo6VGVhckRvd24oKSAiCisgICAgICAgICAgICJDeHhF
eGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogfTsKIAotVEVTVF9GKEN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkgeworVEVT
VF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0LCBUaHJvd3NFeGNlcHRpb25JblNl
dFVwVGVzdFN1aXRlKSB7CiAgIHByaW50ZigiJXMiLAotICAgICAgICAgIkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICIKKyAgICAgICAgICJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgIgogICAgICAgICAgImNhbGxlZCBhcyBleHBlY3Rl
ZC5cbiIpOwogfQogCi1jbGFzcyBDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0IDog
cHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNl
KCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICB0aHJvdyBzdGQ6
OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsKICAgfQogfTsKIAotVEVT
VF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbklu
VGVhckRvd25UZXN0Q2FzZSkge30KK1RFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1
aXRlVGVzdCwKKyAgICAgICBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1aXRlKSB7fQog
CiBjbGFzcyBDeHhFeGNlcHRpb25JblNldFVwVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6
Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJE
b3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0
aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNl
cHRpb25JblNldFVwVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxs
ZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9u
SW5TZXRVcFRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JblNldFVwVGVzdCgpIG92ZXJyaWRlIHsK
ICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0IGRl
c3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRh
cmQgQysrIGV4Y2VwdGlvbiIpOyB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHRocm93IHN0
ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CiAKLSAgdmlydHVh
bCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHBy
aW50ZigiJXMiLAogICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3du
KCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CkBAIC0yNDEsMjAgKzIy
MywyMCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QsIFRocm93c0V4Y2VwdGlvbklu
U2V0VXApIHsKIAogY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgOiBwdWJsaWMgVGVz
dCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0
aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAg
ICAgIkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgorICAg
ICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkg
IgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAogIHByb3RlY3Rl
ZDoKLSAgfkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0KCkgeworICB+Q3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3QoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAgICJD
eHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgImNhbGxl
ZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewor
ICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJv
cigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwogICB9CiB9OwpAQCAtMjYzLDIwICsyNDUsMjAg
QEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0LCBUaHJvd3NFeGNlcHRpb25JblRl
YXJEb3duKSB7fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdCA6IHB1YmxpYyBU
ZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0
YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAgICAg
ICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisg
ICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd25UZXN0U3VpdGUo
KSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVj
dGVkOgotICB+Q3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25J
blRlc3RCb2R5VGVzdCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAg
IkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2Fs
bGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAg
ICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKQEAgLTI5Niw3ICsyNzgsNyBAQCBURVNUKEN4eEV4
Y2VwdGlvblRlc3QsIFRocm93c05vblN0ZEN4eEV4Y2VwdGlvbikgewogLy8gb25lcy4KIHZvaWQg
VGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxl
ZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRoZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVM
TCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhpdCgzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRlc3Qu
Y2MKaW5kZXggYzBjMzAyNmZiNTg5NTY2MGFkMmM5ZDY1ZmJkOTliNWZhZjlhZDQ4Yy4uYzBiM2Qx
ZjIxZDA0ZDNkZTc3ODAzODM2NzA0Y2I3ZjQ3ZDJhZGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdC10ZXN0LmNj
CkBAIC0zMSw2ICszMSw3IEBACiAvLyBUZXN0cyBmb3IgZGVhdGggdGVzdHMuCiAKICNpbmNsdWRl
ICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgog
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgiCiAKQEAgLTQwLDcgKzQx
LDkgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiAjaWYgR1RFU1RfSEFT
X0RFQVRIX1RFU1QKIAogIyBpZiBHVEVTVF9PU19XSU5ET1dTCisjICBpbmNsdWRlIDxmY250bC5o
PiAgICAgICAgICAgLy8gRm9yIE9fQklOQVJZCiAjICBpbmNsdWRlIDxkaXJlY3QuaD4gICAgICAg
ICAgLy8gRm9yIGNoZGlyKCkuCisjICBpbmNsdWRlIDxpby5oPgogIyBlbHNlCiAjICBpbmNsdWRl
IDx1bmlzdGQuaD4KICMgIGluY2x1ZGUgPHN5cy93YWl0Lmg+ICAgICAgICAvLyBGb3Igd2FpdHBp
ZC4KQEAgLTU5LDYgKzYyLDggQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7
CiAKIG5hbWVzcGFjZSBwb3NpeCA9IDo6dGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4OwogCit1c2lu
ZyB0ZXN0aW5nOjpDb250YWluc1JlZ2V4OwordXNpbmcgdGVzdGluZzo6TWF0Y2hlcjsKIHVzaW5n
IHRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0Owog
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdEZhY3Rvcnk7CkBAIC05Nyw2ICsxMDIs
OCBAQCBjbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSB7CiB9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKK25hbWVzcGFjZSB7CisKIHZvaWQgRGll
V2l0aE1lc3NhZ2UoY29uc3QgOjpzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewogICBmcHJpbnRmKHN0
ZGVyciwgIiVzIiwgbWVzc2FnZS5jX3N0cigpKTsKICAgZmZsdXNoKHN0ZGVycik7ICAvLyBNYWtl
IHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhpdHMuCkBAIC0x
MjMsOSArMTMwLDcgQEAgY2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIFRlc3RGb3JEZWF0aFRlc3QoKSA6IG9yaWdpbmFsX2Rpcl8o
RmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSkge30KIAotICB2aXJ0dWFsIH5UZXN0Rm9yRGVhdGhU
ZXN0KCkgewotICAgIHBvc2l4OjpDaERpcihvcmlnaW5hbF9kaXJfLmNfc3RyKCkpOwotICB9Cisg
IH5UZXN0Rm9yRGVhdGhUZXN0KCkgb3ZlcnJpZGUgeyBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfZGly
Xy5jX3N0cigpKTsgfQogCiAgIC8vIEEgc3RhdGljIG1lbWJlciBmdW5jdGlvbiB0aGF0J3MgZXhw
ZWN0ZWQgdG8gZGllLgogICBzdGF0aWMgdm9pZCBTdGF0aWNNZW1iZXJGdW5jdGlvbigpIHsgRGll
SW5zaWRlKCJTdGF0aWNNZW1iZXJGdW5jdGlvbiIpOyB9CkBAIC0xMzYsNyArMTQxLDcgQEAgY2xh
c3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICAgIERpZUlu
c2lkZSgiTWVtYmVyRnVuY3Rpb24iKTsKICAgfQogCi0gIC8vIFRydWUgaWZmIE1lbWJlckZ1bmN0
aW9uKCkgc2hvdWxkIGRpZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5jdGlv
bigpIHNob3VsZCBkaWUuCiAgIGJvb2wgc2hvdWxkX2RpZV87CiAgIGNvbnN0IEZpbGVQYXRoIG9y
aWdpbmFsX2Rpcl87CiB9OwpAQCAtMTUzLDcgKzE1OCw3IEBAIGNsYXNzIE1heURpZSB7CiAgIH0K
IAogIHByaXZhdGU6Ci0gIC8vIFRydWUgaWZmIE1lbWJlckZ1bmN0aW9uKCkgc2hvdWxkIGRpZS4K
KyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5jdGlvbigpIHNob3VsZCBkaWUuCiAg
IGJvb2wgc2hvdWxkX2RpZV87CiB9OwogCkBAIC0xOTksNiArMjA0LDI2IEBAIGludCBEaWVJbkRl
YnVnRWxzZTEyKGludCogc2lkZWVmZmVjdCkgewogICByZXR1cm4gMTI7CiB9CiAKKyMgaWYgR1RF
U1RfT1NfV0lORE9XUworCisvLyBEZWF0aCBpbiBkYmcgZHVlIHRvIFdpbmRvd3MgQ1JUIGFzc2Vy
dGlvbiBmYWlsdXJlLCBub3Qgb3B0LgoraW50IERpZUluQ1JURGVidWdFbHNlMTIoaW50KiBzaWRl
ZWZmZWN0KSB7CisgIGlmIChzaWRlZWZmZWN0KSAqc2lkZWVmZmVjdCA9IDEyOworCisgIC8vIENy
ZWF0ZSBhbiBpbnZhbGlkIGZkIGJ5IGNsb3NpbmcgYSB2YWxpZCBvbmUKKyAgaW50IGZkcGlwZVsy
XTsKKyAgRVhQRUNUX0VRKF9waXBlKGZkcGlwZSwgMjU2LCBPX0JJTkFSWSksIDApOworICBFWFBF
Q1RfRVEoX2Nsb3NlKGZkcGlwZVswXSksIDApOworICBFWFBFQ1RfRVEoX2Nsb3NlKGZkcGlwZVsx
XSksIDApOworCisgIC8vIF9kdXAoKSBzaG91bGQgY3Jhc2ggaW4gZGVidWcgbW9kZQorICBFWFBF
Q1RfRVEoX2R1cChmZHBpcGVbMF0pLCAtMSk7CisKKyAgcmV0dXJuIDEyOworfQorCisjZW5kaWYg
IC8vIEdURVNUX09TX1dJTkRPV1MKKwogIyBpZiBHVEVTVF9PU19XSU5ET1dTIHx8IEdURVNUX09T
X0ZVQ0hTSUEKIAogLy8gVGVzdHMgdGhlIEV4aXRlZFdpdGhDb2RlIHByZWRpY2F0ZS4KQEAgLTI3
Myw2ICsyOTgsMTMgQEAgVEVTVChFeGl0U3RhdHVzUHJlZGljYXRlVGVzdCwgS2lsbGVkQnlTaWdu
YWwpIHsKIAogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19GVUNIU0lB
CiAKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0aW1h
bCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RhbmdsaW5nLWVsc2UiCisjcHJhZ21h
IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1wdHktYm9keSIKKyNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2VuZGlmCiAvLyBUZXN0cyB0aGF0IHRoZSBkZWF0
aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBtYXkgb3IgbWF5IG5vdAogLy8gYmUg
Zm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRoYXQgaW4gZWl0aGVyIGNhc2UgdGhlIGNvbXBs
ZXRlIHRleHQKIC8vIGNvbXByaXNlcyBvbmx5IGEgc2luZ2xlIEMrKyBzdGF0ZW1lbnQuCkBAIC0y
OTYsNiArMzI4LDExIEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBTaW5nbGVTdGF0ZW1lbnQp
IHsKICAgZWxzZQogICAgIEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpIDw8IDEgPDwgMiA8PCAz
OwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlm
CisKKyMgaWYgR1RFU1RfVVNFU19QQ1JFCiAKIHZvaWQgRGllV2l0aEVtYmVkZGVkTnVsKCkgewog
ICBmcHJpbnRmKHN0ZGVyciwgIkhlbGxvJWNteSBudWxsIHdvcmxkLlxuIiwgJ1wwJyk7CkBAIC0z
MDMsOCArMzQwLDYgQEAgdm9pZCBEaWVXaXRoRW1iZWRkZWROdWwoKSB7CiAgIF9leGl0KDEpOwog
fQogCi0jIGlmIEdURVNUX1VTRVNfUENSRQotCiAvLyBUZXN0cyB0aGF0IEVYUEVDVF9ERUFUSCBh
bmQgQVNTRVJUX0RFQVRIIHdvcmsgd2hlbiB0aGUgZXJyb3IKIC8vIG1lc3NhZ2UgaGFzIGEgTlVM
IGNoYXJhY3RlciBpbiBpdC4KIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFbWJlZGRlZE51bElu
TWVzc2FnZSkgewpAQCAtMzY2LDE3ICs0MDEsMTkgQEAgdm9pZCBTaWdwcm9mQWN0aW9uKGludCwg
c2lnaW5mb190Kiwgdm9pZCopIHsgLyogbm8gb3AgKi8gfQogCiAvLyBTZXRzIFNJR1BST0YgYWN0
aW9uIGFuZCBJVElNRVJfUFJPRiB0aW1lciAoaW50ZXJ2YWw6IDFtcykuCiB2b2lkIFNldFNpZ3By
b2ZBY3Rpb25BbmRUaW1lcigpIHsKLSAgc3RydWN0IGl0aW1lcnZhbCB0aW1lcjsKLSAgdGltZXIu
aXRfaW50ZXJ2YWwudHZfc2VjID0gMDsKLSAgdGltZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9IDE7
Ci0gIHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgwLCBz
ZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgTlVMTCkpOwogICBzdHJ1Y3Qgc2lnYWN0aW9u
IHNpZ25hbF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25h
bF9hY3Rpb24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CiAgIHNp
Z25hbF9hY3Rpb24uc2Ffc2lnYWN0aW9uID0gU2lncHJvZkFjdGlvbjsKICAgc2lnbmFsX2FjdGlv
bi5zYV9mbGFncyA9IFNBX1JFU1RBUlQgfCBTQV9TSUdJTkZPOwotICBBU1NFUlRfRVEoMCwgc2ln
YWN0aW9uKFNJR1BST0YsICZzaWduYWxfYWN0aW9uLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgwLCBz
aWdhY3Rpb24oU0lHUFJPRiwgJnNpZ25hbF9hY3Rpb24sIG51bGxwdHIpKTsKKyAgLy8gdGltZXIg
Y29tZXMgc2Vjb25kLCB0byBhdm9pZCBTSUdQUk9GIHByZW1hdHVyZSBkZWxpdmVyeSwgYXMgc3Vn
Z2VzdGVkIGF0CisgIC8vIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51YWwv
aHRtbF9ub2RlL1NldHRpbmctYW4tQWxhcm0uaHRtbAorICBzdHJ1Y3QgaXRpbWVydmFsIHRpbWVy
OworICB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOworICB0aW1lci5pdF9pbnRlcnZhbC50
dl91c2VjID0gMTsKKyAgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKKyAgQVNT
RVJUX0VRKDAsIHNldGl0aW1lcihJVElNRVJfUFJPRiwgJnRpbWVyLCBudWxscHRyKSk7CiB9CiAK
IC8vIERpc2FibGVzIElUSU1FUl9QUk9GIHRpbWVyIGFuZCBpZ25vcmVzIFNJR1BST0Ygc2lnbmFs
LgpAQCAtMzg1LDcgKzQyMiw3IEBAIHZvaWQgRGlzYWJsZVNpZ3Byb2ZBY3Rpb25BbmRUaW1lcihz
dHJ1Y3Qgc2lnYWN0aW9uKiBvbGRfc2lnbmFsX2FjdGlvbikgewogICB0aW1lci5pdF9pbnRlcnZh
bC50dl9zZWMgPSAwOwogICB0aW1lci5pdF9pbnRlcnZhbC50dl91c2VjID0gMDsKICAgdGltZXIu
aXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKLSAgQVNTRVJUX0VRKDAsIHNldGl0aW1lcihJ
VElNRVJfUFJPRiwgJnRpbWVyLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIoSVRJ
TUVSX1BST0YsICZ0aW1lciwgbnVsbHB0cikpOwogICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25hbF9h
Y3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rpb24p
KTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CkBAIC00NTIsMjEgKzQ4
OSwxNyBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgTWl4ZWRTdHlsZXMpIHsKIAogIyBpZiBH
VEVTVF9IQVNfQ0xPTkUgJiYgR1RFU1RfSEFTX1BUSFJFQUQKIAotbmFtZXNwYWNlIHsKLQogYm9v
bCBwdGhyZWFkX2ZsYWc7CiAKIHZvaWQgU2V0UHRocmVhZEZsYWcoKSB7CiAgIHB0aHJlYWRfZmxh
ZyA9IHRydWU7CiB9CiAKLX0gIC8vIG5hbWVzcGFjZQotCiBURVNUX0YoVGVzdEZvckRlYXRoVGVz
dCwgRG9lc05vdEV4ZWN1dGVBdGZvcmtIb29rcykgewogICBpZiAoIXRlc3Rpbmc6OkdURVNUX0ZM
QUcoZGVhdGhfdGVzdF91c2VfZm9yaykpIHsKICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRo
X3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwogICAgIHB0aHJlYWRfZmxhZyA9IGZhbHNlOwot
ICAgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2F0Zm9yaygmU2V0UHRocmVhZEZsYWcsIE5VTEwsIE5V
TEwpKTsKKyAgICBBU1NFUlRfRVEoMCwgcHRocmVhZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFnLCBu
dWxscHRyLCBudWxscHRyKSk7CiAgICAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIik7CiAgICAg
QVNTRVJUX0ZBTFNFKHB0aHJlYWRfZmxhZyk7CiAgIH0KQEAgLTQ5NCwxOCArNTI3LDE1IEBAIFRF
U1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBY2NlcHRzQW55dGhpbmdDb252ZXJ0aWJsZVRvUkUpIHsK
ICAgY29uc3QgdGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KHJlZ2V4X2Nfc3RyKTsKICAgRVhQ
RUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJlZ2V4KTsKIAotIyBpZiBHVEVTVF9IQVNfR0xP
QkFMX1NUUklORwotCi0gIGNvbnN0IDo6c3RyaW5nIHJlZ2V4X3N0cihyZWdleF9jX3N0cik7Ci0g
IEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigpLCByZWdleF9zdHIpOwotCi0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAjIGlmICFHVEVTVF9VU0VTX1BDUkUKIAogICBj
b25zdCA6OnN0ZDo6c3RyaW5nIHJlZ2V4X3N0ZF9zdHIocmVnZXhfY19zdHIpOwogICBFWFBFQ1Rf
REVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgcmVnZXhfc3RkX3N0cik7CiAKKyAgLy8gVGhpcyBvbmUg
aXMgdHJpY2t5OyBhIHRlbXBvcmFyeSBwb2ludGVyIGludG8gYW5vdGhlciB0ZW1wb3JhcnkuICBS
ZWZlcmVuY2UKKyAgLy8gbGlmZXRpbWUgZXh0ZW5zaW9uIG9mIHRoZSBwb2ludGVyIGlzIG5vdCBz
dWZmaWNpZW50LgorICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgOjpzdGQ6OnN0cmlu
ZyhyZWdleF9jX3N0cikuY19zdHIoKSk7CisKICMgZW5kaWYgIC8vICFHVEVTVF9VU0VTX1BDUkUK
IH0KIApAQCAtNTU1LDggKzU4NSw4IEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFcnJvck1l
c3NhZ2VNaXNtYXRjaCkgewogICB9LCAiZGllZCBidXQgbm90IHdpdGggZXhwZWN0ZWQgZXJyb3Ii
KTsKIH0KIAotLy8gT24gZXhpdCwgKmFib3J0ZWQgd2lsbCBiZSB0cnVlIGlmZiB0aGUgRVhQRUNU
X0RFQVRIKCkgc3RhdGVtZW50Ci0vLyBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KKy8vIE9uIGV4aXQs
ICphYm9ydGVkIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgRVhQRUNUX0RFQVRIKCkK
Ky8vIHN0YXRlbWVudCBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KIHZvaWQgRXhwZWN0RGVhdGhUZXN0
SGVscGVyKGJvb2wqIGFib3J0ZWQpIHsKICAgKmFib3J0ZWQgPSB0cnVlOwogICBFWFBFQ1RfREVB
VEgoRGllSWYoZmFsc2UpLCAiRGllSWYiKTsgIC8vIFRoaXMgYXNzZXJ0aW9uIHNob3VsZCBmYWls
LgpAQCAtNjM2LDYgKzY2Niw0MCBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgVGVzdEV4cGVj
dERlYnVnRGVhdGgpIHsKICMgZW5kaWYKIH0KIAorIyBpZiBHVEVTVF9PU19XSU5ET1dTCisKKy8v
IFRlc3RzIHRoYXQgRVhQRUNUX0RFQlVHX0RFQVRIIHdvcmtzIGFzIGV4cGVjdGVkIHdoZW4gaW4g
ZGVidWcgbW9kZQorLy8gdGhlIFdpbmRvd3MgQ1JUIGNyYXNoZXMgdGhlIHByb2Nlc3Mgd2l0aCBh
biBhc3NlcnRpb24gZmFpbHVyZS4KKy8vIDEuIEFzc2VydHMgb24gZGVhdGguCisvLyAyLiBIYXMg
bm8gc2lkZSBlZmZlY3QgKGRvZXNuJ3QgcG9wIHVwIGEgd2luZG93IG9yIHdhaXQgZm9yIHVzZXIg
aW5wdXQpLgorLy8KKy8vIEFuZCBpbiBvcHQgbW9kZSwgaXQ6CisvLyAxLiAgSGFzIHNpZGUgZWZm
ZWN0cyBidXQgZG9lcyBub3QgYXNzZXJ0LgorVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIENSVERl
YnVnRGVhdGgpIHsKKyAgaW50IHNpZGVlZmZlY3QgPSAwOworCisgIC8vIFB1dCB0aGUgcmVnZXgg
aW4gYSBsb2NhbCB2YXJpYWJsZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuICJ1bnVzZWQi
CisgIC8vIHdhcm5pbmcgaW4gb3B0IG1vZGUuCisgIGNvbnN0IGNoYXIqIHJlZ2V4ID0gImR1cC4q
IDogQXNzZXJ0aW9uIGZhaWxlZCI7CisKKyAgRVhQRUNUX0RFQlVHX0RFQVRIKERpZUluQ1JURGVi
dWdFbHNlMTIoJnNpZGVlZmZlY3QpLCByZWdleCkKKyAgICAgIDw8ICJNdXN0IGFjY2VwdCBhIHN0
cmVhbWVkIG1lc3NhZ2UiOworCisjIGlmZGVmIE5ERUJVRworCisgIC8vIENoZWNrcyB0aGF0IHRo
ZSBhc3NpZ25tZW50IG9jY3VycyBpbiBvcHQgbW9kZSAoc2lkZWVmZmVjdCkuCisgIEVYUEVDVF9F
USgxMiwgc2lkZWVmZmVjdCk7CisKKyMgZWxzZQorCisgIC8vIENoZWNrcyB0aGF0IHRoZSBhc3Np
Z25tZW50IGRvZXMgbm90IG9jY3VyIGluIGRiZyBtb2RlIChubyBzaWRlZWZmZWN0KS4KKyAgRVhQ
RUNUX0VRKDAsIHNpZGVlZmZlY3QpOworCisjIGVuZGlmCit9CisKKyMgZW5kaWYgIC8vIEdURVNU
X09TX1dJTkRPV1MKKwogLy8gVGVzdHMgdGhhdCBBU1NFUlRfREVCVUdfREVBVEggd29ya3MgYXMg
ZXhwZWN0ZWQsIHRoYXQgaXMsIHlvdSBjYW4gc3RyZWFtIGEKIC8vIG1lc3NhZ2UgdG8gaXQsIGFu
ZCBpbiBkZWJ1ZyBtb2RlIGl0OgogLy8gMS4gQXNzZXJ0cyBvbiBkZWF0aC4KQEAgLTg3Niw5ICs5
NDAsOSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRGVhdGhUZXN0TXVsdGlMaW5lTWF0Y2hQ
YXNzKSB7CiBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RGYWN0
b3J5IHsKICBwdWJsaWM6CiAgIE1vY2tEZWF0aFRlc3RGYWN0b3J5KCk7Ci0gIHZpcnR1YWwgYm9v
bCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFKiByZWdleCwKLSAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCk7CisgIGJvb2wg
Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgdGVzdGluZzo6TWF0
Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisgICAg
ICAgICAgICAgIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSBvdmVycmlkZTsKIAogICAvLyBT
ZXRzIHRoZSBwYXJhbWV0ZXJzIGZvciBzdWJzZXF1ZW50IGNhbGxzIHRvIENyZWF0ZS4KICAgdm9p
ZCBTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLCBEZWF0aFRlc3Q6OlRlc3RSb2xlIHJvbGUsCkBA
IC04ODgsMTAgKzk1MiwxMiBAQCBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBE
ZWF0aFRlc3RGYWN0b3J5IHsKICAgaW50IEFzc3VtZVJvbGVDYWxscygpIGNvbnN0IHsgcmV0dXJu
IGFzc3VtZV9yb2xlX2NhbGxzXzsgfQogICBpbnQgV2FpdENhbGxzKCkgY29uc3QgeyByZXR1cm4g
d2FpdF9jYWxsc187IH0KICAgc2l6ZV90IFBhc3NlZENhbGxzKCkgY29uc3QgeyByZXR1cm4gcGFz
c2VkX2FyZ3NfLnNpemUoKTsgfQotICBib29sIFBhc3NlZEFyZ3VtZW50KGludCBuKSBjb25zdCB7
IHJldHVybiBwYXNzZWRfYXJnc19bbl07IH0KKyAgYm9vbCBQYXNzZWRBcmd1bWVudChpbnQgbikg
Y29uc3QgeworICAgIHJldHVybiBwYXNzZWRfYXJnc19bc3RhdGljX2Nhc3Q8c2l6ZV90PihuKV07
CisgIH0KICAgc2l6ZV90IEFib3J0Q2FsbHMoKSBjb25zdCB7IHJldHVybiBhYm9ydF9hcmdzXy5z
aXplKCk7IH0KICAgRGVhdGhUZXN0OjpBYm9ydFJlYXNvbiBBYm9ydEFyZ3VtZW50KGludCBuKSBj
b25zdCB7Ci0gICAgcmV0dXJuIGFib3J0X2FyZ3NfW25dOworICAgIHJldHVybiBhYm9ydF9hcmdz
X1tzdGF0aWNfY2FzdDxzaXplX3Q+KG4pXTsKICAgfQogICBib29sIFRlc3REZWxldGVkKCkgY29u
c3QgeyByZXR1cm4gdGVzdF9kZWxldGVkXzsgfQogCkBAIC05MzMsMjIgKzk5OSwyMCBAQCBjbGFz
cyBNb2NrRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdCB7CiAgICAgICAgICAgICAgICAgVGVz
dFJvbGUgcm9sZSwgaW50IHN0YXR1cywgYm9vbCBwYXNzZWQpIDoKICAgICAgIHBhcmVudF8ocGFy
ZW50KSwgcm9sZV8ocm9sZSksIHN0YXR1c18oc3RhdHVzKSwgcGFzc2VkXyhwYXNzZWQpIHsKICAg
fQotICB2aXJ0dWFsIH5Nb2NrRGVhdGhUZXN0KCkgewotICAgIHBhcmVudF8tPnRlc3RfZGVsZXRl
ZF8gPSB0cnVlOwotICB9Ci0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIHsKKyAgfk1v
Y2tEZWF0aFRlc3QoKSBvdmVycmlkZSB7IHBhcmVudF8tPnRlc3RfZGVsZXRlZF8gPSB0cnVlOyB9
CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSBvdmVycmlkZSB7CiAgICAgKytwYXJlbnRfLT5hc3N1
bWVfcm9sZV9jYWxsc187CiAgICAgcmV0dXJuIHJvbGVfOwogICB9Ci0gIHZpcnR1YWwgaW50IFdh
aXQoKSB7CisgIGludCBXYWl0KCkgb3ZlcnJpZGUgewogICAgICsrcGFyZW50Xy0+d2FpdF9jYWxs
c187CiAgICAgcmV0dXJuIHN0YXR1c187CiAgIH0KLSAgdmlydHVhbCBib29sIFBhc3NlZChib29s
IGV4aXRfc3RhdHVzX29rKSB7CisgIGJvb2wgUGFzc2VkKGJvb2wgZXhpdF9zdGF0dXNfb2spIG92
ZXJyaWRlIHsKICAgICBwYXJlbnRfLT5wYXNzZWRfYXJnc18ucHVzaF9iYWNrKGV4aXRfc3RhdHVz
X29rKTsKICAgICByZXR1cm4gcGFzc2VkXzsKICAgfQotICB2aXJ0dWFsIHZvaWQgQWJvcnQoQWJv
cnRSZWFzb24gcmVhc29uKSB7CisgIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSBvdmVy
cmlkZSB7CiAgICAgcGFyZW50Xy0+YWJvcnRfYXJnc18ucHVzaF9iYWNrKHJlYXNvbik7CiAgIH0K
IApAQCAtOTkyLDE2ICsxMDU2LDE0IEBAIHZvaWQgTW9ja0RlYXRoVGVzdEZhY3Rvcnk6OlNldFBh
cmFtZXRlcnMoYm9vbCBjcmVhdGUsCiAvLyBTZXRzIHRlc3QgdG8gTlVMTCAoaWYgY3JlYXRlXyBp
cyBmYWxzZSkgb3IgdG8gdGhlIGFkZHJlc3Mgb2YgYSBuZXcKIC8vIE1vY2tEZWF0aFRlc3Qgb2Jq
ZWN0IHdpdGggcGFyYW1ldGVycyB0YWtlbiBmcm9tIHRoZSBsYXN0IGNhbGwKIC8vIHRvIFNldFBh
cmFtZXRlcnMgKGlmIGNyZWF0ZV8gaXMgdHJ1ZSkuICBBbHdheXMgcmV0dXJucyB0cnVlLgotYm9v
bCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIC8qc3RhdGVtZW50Ki8s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6UkUqIC8qcmVnZXgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiAvKmZpbGUqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgLypsaW5lKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhUZXN0
KiogdGVzdCkgeworYm9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKAorICAgIGNvbnN0
IGNoYXIqIC8qc3RhdGVtZW50Ki8sIHRlc3Rpbmc6Ok1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcm
PiAvKm1hdGNoZXIqLywKKyAgICBjb25zdCBjaGFyKiAvKmZpbGUqLywgaW50IC8qbGluZSovLCBE
ZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHRlc3RfZGVsZXRlZF8gPSBmYWxzZTsKICAgaWYgKGNyZWF0
ZV8pIHsKICAgICAqdGVzdCA9IG5ldyBNb2NrRGVhdGhUZXN0KHRoaXMsIHJvbGVfLCBzdGF0dXNf
LCBwYXNzZWRfKTsKICAgfSBlbHNlIHsKLSAgICAqdGVzdCA9IE5VTEw7CisgICAgKnRlc3QgPSBu
dWxscHRyOwogICB9CiAgIHJldHVybiB0cnVlOwogfQpAQCAtMTAxNCwxNiArMTA3NiwxNiBAQCBj
bGFzcyBNYWNyb0xvZ2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBzdGF0
aWMgdGVzdGluZzo6aW50ZXJuYWw6OlJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KiByZXBsYWNlcl87
CiAgIHN0YXRpYyBNb2NrRGVhdGhUZXN0RmFjdG9yeSogZmFjdG9yeV87CiAKLSAgc3RhdGljIHZv
aWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAg
ICAgZmFjdG9yeV8gPSBuZXcgTW9ja0RlYXRoVGVzdEZhY3Rvcnk7CiAgICAgcmVwbGFjZXJfID0g
bmV3IHRlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeShmYWN0b3J5Xyk7
CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9p
ZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgcmVwbGFjZXJfOwotICAgIHJlcGxh
Y2VyXyA9IE5VTEw7CisgICAgcmVwbGFjZXJfID0gbnVsbHB0cjsKICAgICBkZWxldGUgZmFjdG9y
eV87Ci0gICAgZmFjdG9yeV8gPSBOVUxMOworICAgIGZhY3RvcnlfID0gbnVsbHB0cjsKICAgfQog
CiAgIC8vIFJ1bnMgYSBkZWF0aCB0ZXN0IHRoYXQgYnJlYWtzIHRoZSBydWxlcyBieSByZXR1cm5p
bmcuICBTdWNoIGEgZGVhdGgKQEAgLTEwMzcsMTAgKzEwOTksOSBAQCBjbGFzcyBNYWNyb0xvZ2lj
RGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICB9CiB9OwogCi10ZXN0aW5nOjpp
bnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OnJl
cGxhY2VyXwotICAgID0gTlVMTDsKLU1vY2tEZWF0aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2ljRGVh
dGhUZXN0OjpmYWN0b3J5XyA9IE5VTEw7Ci0KK3Rlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVh
dGhUZXN0RmFjdG9yeSogTWFjcm9Mb2dpY0RlYXRoVGVzdDo6cmVwbGFjZXJfID0KKyAgICBudWxs
cHRyOworTW9ja0RlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OmZhY3Rvcnlf
ID0gbnVsbHB0cjsKIAogLy8gVGVzdCB0aGF0IG5vdGhpbmcgaGFwcGVucyB3aGVuIHRoZSBmYWN0
b3J5IGRvZXNuJ3QgcmV0dXJuIGEgRGVhdGhUZXN0OgogVEVTVF9GKE1hY3JvTG9naWNEZWF0aFRl
c3QsIE5vdGhpbmdIYXBwZW5zKSB7CkBAIC0xMjc5LDkgKzEzNDAsNiBAQCBURVNUKFBhcnNlTmF0
dXJhbE51bWJlclRlc3QsIFdvcmtzRm9yU2hvcnRlckludGVnZXJzKSB7CiAKICMgaWYgR1RFU1Rf
T1NfV0lORE9XUwogVEVTVChFbnZpcm9ubWVudFRlc3QsIEhhbmRsZUZpdHNJbnRvU2l6ZVQpIHsK
LSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHRlc3QgYWZ0ZXIgdGhpcyBjb25kaXRpb24gaXMgdmVy
aWZpZWQKLSAgLy8gaW4gYSBzdGF0aWMgYXNzZXJ0aW9uIGluIGd0ZXN0LWRlYXRoLXRlc3QuY2Mg
aW4gdGhlIGZ1bmN0aW9uCi0gIC8vIEdldFN0YXR1c0ZpbGVEZXNjcmlwdG9yLgogICBBU1NFUlRf
VFJVRShzaXplb2YoSEFORExFKSA8PSBzaXplb2Yoc2l6ZV90KSk7CiB9CiAjIGVuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTCkBAIC0xMzE5LDggKzEzNzcsNTMgQEAgVEVTVChJbkRlYXRoVGVzdENo
aWxkRGVhdGhUZXN0LCBSZXBvcnRzRGVhdGhUZXN0Q29ycmVjdGx5SW5UaHJlYWRTYWZlU3R5bGUp
IHsKICAgfSwgIkluc2lkZSIpOwogfQogCit2b2lkIERpZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIq
IG1lc3NhZ2UpIHsKKyAgZnB1dHMobWVzc2FnZSwgc3RkZXJyKTsKKyAgZmZsdXNoKHN0ZGVycik7
ICAvLyBNYWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhp
dHMuCisgIF9leGl0KDEpOworfQorCitURVNUKE1hdGNoZXJEZWF0aFRlc3QsIERvZXNOb3RCcmVh
a0JhcmVSZWdleE1hdGNoaW5nKSB7CisgIC8vIGdvb2dsZXRlc3QgdGVzdHMgdGhpcywgb2YgY291
cnNlOyBoZXJlIHdlIGVuc3VyZSB0aGF0IGluY2x1ZGluZyBnb29nbGVtb2NrCisgIC8vIGhhcyBu
b3QgYnJva2VuIGl0LgorI2lmIEdURVNUX1VTRVNfUE9TSVhfUkUKKyAgRVhQRUNUX0RFQVRIKERp
ZVdpdGhNZXNzYWdlKCJPLCBJIGRpZSwgSG9yYXRpby4iKSwgIkkgZFthZWlvdV1lIik7CisjZWxz
ZQorICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIk8sIEkgZGllLCBIb3JhdGlvLiIpLCAi
SSBkaT9lIik7CisjZW5kaWYKK30KKworVEVTVChNYXRjaGVyRGVhdGhUZXN0LCBNb25vbW9ycGhp
Y01hdGNoZXJNYXRjaGVzKSB7CisgIEVYUEVDVF9ERUFUSChEaWVXaXRoTWVzc2FnZSgiQmVoaW5k
IE8sIEkgYW0gc2xhaW4hIiksCisgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3Ry
aW5nJj4oQ29udGFpbnNSZWdleCgiSSBhbSBzbGFpbiIpKSk7Cit9CisKK1RFU1QoTWF0Y2hlckRl
YXRoVGVzdCwgTW9ub21vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNoKSB7CisgIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKAorICAgICAgICAgIERpZVdpdGhNZXNz
YWdlKCJCZWhpbmQgTywgSSBhbSBzbGFpbiEiKSwKKyAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0
ZDo6c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiT3csIEkgYW0gc2xhaW4iKSkpLAorICAgICAgIkV4
cGVjdGVkOiBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gXCJPdywgSSBhbSBzbGFpblwiIik7
Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyTWF0Y2hlcykg
eworICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIlRoZSByZXN0IGlzIHNpbGVuY2UuIiks
CisgICAgICAgICAgICAgICBDb250YWluc1JlZ2V4KCJyZXN0IGlzIHNpbGVuY2UiKSk7Cit9CisK
K1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNoKSB7
CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKERpZVdpdGhN
ZXNzYWdlKCJUaGUgcmVzdCBpcyBzaWxlbmNlLiIpLAorICAgICAgICAgICAgICAgICAgIENvbnRh
aW5zUmVnZXgoInJlc3QgaXMgc2NpZW5jZSIpKSwKKyAgICAgICJFeHBlY3RlZDogY29udGFpbnMg
cmVndWxhciBleHByZXNzaW9uIFwicmVzdCBpcyBzY2llbmNlXCIiKTsKK30KKworfSAgLy8gbmFt
ZXNwYWNlCisKICNlbHNlICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QgZm9sbG93cwogCituYW1l
c3BhY2UgeworCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZGVycjsKIHVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpHZXRDYXB0dXJlZFN0ZGVycjsKIApAQCAtMTM2OSw4ICsxNDcy
LDE5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1Rlc3QsIEFzc2VydERlYXREb2VzTm90
UmV0dXJuaElmVW5zdXBwb3J0ZWQpIHsKICAgRVhQRUNUX0VRKDEsIG4pOwogfQogCit9ICAvLyBu
YW1lc3BhY2UKKwogI2VuZGlmICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAorbmFtZXNwYWNl
IHsKKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJvcHRp
bWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIC8vIFRlc3RzIHRoYXQgdGhlIGRl
YXRoIHRlc3QgbWFjcm9zIGV4cGFuZCB0byBjb2RlIHdoaWNoIG1heSBvciBtYXkgbm90CiAvLyBi
ZSBmb2xsb3dlZCBieSBvcGVyYXRvcjw8LCBhbmQgdGhhdCBpbiBlaXRoZXIgY2FzZSB0aGUgY29t
cGxldGUgdGV4dAogLy8gY29tcHJpc2VzIG9ubHkgYSBzaW5nbGUgQysrIHN0YXRlbWVudC4KQEAg
LTEzOTYsNiArMTUxMCw5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERlYXRo
VGVzdCwgU2luZ2xlU3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICBFWFBFQ1RfREVBVEhfSUZfU1VQ
UE9SVEVEKF9leGl0KDEpLCAiIikgPDwgMSA8PCAyIDw8IDM7CiB9CisjaWZkZWYgX19HTlVDX18K
KyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCBjb25k
aXRpb25hbCBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBpbnRlcmFjdHMK
IC8vIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KQEAgLTE0MjEsMyArMTUzOCw1IEBAIFRF
U1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERlYXRoVGVzdCwgU3dpdGNoU3RhdGVtZW50
KSB7CiBURVNUKE5vdEFEZWF0aFRlc3QsIFRlc3QpIHsKICAgU1VDQ0VFRCgpOwogfQorCit9ICAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCmluZGV4IGI4Yjk0NzBmYzg4YWQx
N2FhZWI2NjRkNDdjMjcwY2ZjYWE3MzFiZWYuLjcyMTk2ODBkMDc0OTc3Nzc4NGY2NDUxNDdiNTAz
OTVkYjA5YmE5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYwpAQCAtNTksNyArNTksNyBA
QCBURVNUKEN4eEV4Y2VwdGlvbkRlYXRoVGVzdCwgRXhjZXB0aW9uSXNGYWlsdXJlKSB7CiAKIGNs
YXNzIFRlc3RFeGNlcHRpb24gOiBwdWJsaWMgc3RkOjpleGNlcHRpb24gewogIHB1YmxpYzoKLSAg
dmlydHVhbCBjb25zdCBjaGFyKiB3aGF0KCkgY29uc3QgdGhyb3coKSB7IHJldHVybiAiZXhjZXB0
aW9uYWwgbWVzc2FnZSI7IH0KKyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IG92
ZXJyaWRlIHsgcmV0dXJuICJleGNlcHRpb25hbCBtZXNzYWdlIjsgfQogfTsKIAogVEVTVChDeHhF
eGNlcHRpb25EZWF0aFRlc3QsIFByaW50c01lc3NhZ2VGb3JTdGRFeGNlcHRpb25zKSB7CkBAIC02
OCw3ICs2OCw3IEBAIFRFU1QoQ3h4RXhjZXB0aW9uRGVhdGhUZXN0LCBQcmludHNNZXNzYWdlRm9y
U3RkRXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uYWwg
bWVzc2FnZSIpOwogICAvLyBWZXJpZmllcyB0aGF0IHRoZSBsb2NhdGlvbiBpcyBtZW50aW9uZWQg
aW4gdGhlIGZhaWx1cmUgdGV4dC4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RF
QVRIKHRocm93IFRlc3RFeGNlcHRpb24oKSwgIiIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgX19GSUxFX18pOwogfQogIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVu
di12YXItdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1l
bnYtdmFyLXRlc3QucHkKaW5kZXggZTFlZmVlZTFlYWI4YzZkYWNiNWQyOTI2ZjRiNWM5MDgwOTM4
ZGIxMy4uMDJjMzY1NWMzOTgyNjg5NjVhMjg1MTYyMzUyMzE3NTIxOWJhYzU2YyAxMDA3NTUKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdC5w
eQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10
ZXN0LnB5CkBAIC00NSw4ICs0NSw4IEBAIGVudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQogCiBk
ZWYgQXNzZXJ0RXEoZXhwZWN0ZWQsIGFjdHVhbCk6CiAgIGlmIGV4cGVjdGVkICE9IGFjdHVhbDoK
LSAgICBwcmludCAnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3RlZCwpCi0gICAgcHJpbnQgJyAgQWN0
dWFsOiAlcycgJSAoYWN0dWFsLCkKKyAgICBwcmludCgnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3Rl
ZCwpKQorICAgIHByaW50KCcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpKQogICAgIHJhaXNlIEFz
c2VydGlvbkVycm9yCiAKIApAQCAtODUsOSArODUsMTIgQEAgY2xhc3MgR1Rlc3RFbnZWYXJUZXN0
KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogCiAgICAgVGVzdEZsYWcoJ2JyZWFrX29uX2Zh
aWx1cmUnLCAnMScsICcwJykKICAgICBUZXN0RmxhZygnY29sb3InLCAneWVzJywgJ2F1dG8nKQor
ICAgIFNldEVudlZhcignVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnLCBOb25lKSAg
IyBGb3IgJ2ZhaWxfZmFzdCcgdGVzdAorICAgIFRlc3RGbGFnKCdmYWlsX2Zhc3QnLCAnMScsICcw
JykKICAgICBUZXN0RmxhZygnZmlsdGVyJywgJ0Zvb1Rlc3QuQmFyJywgJyonKQogICAgIFNldEVu
dlZhcignWE1MX09VVFBVVF9GSUxFJywgTm9uZSkgICMgRm9yICdvdXRwdXQnIHRlc3QKICAgICBU
ZXN0RmxhZygnb3V0cHV0JywgJ3htbDp0bXAvZm9vLnhtbCcsICcnKQorICAgIFRlc3RGbGFnKCdi
cmllZicsICcxJywgJzAnKQogICAgIFRlc3RGbGFnKCdwcmludF90aW1lJywgJzAnLCAnMScpCiAg
ICAgVGVzdEZsYWcoJ3JlcGVhdCcsICc5OTknLCAnMScpCiAgICAgVGVzdEZsYWcoJ3Rocm93X29u
X2ZhaWx1cmUnLCAnMScsICcwJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKaW5kZXggZmQyYWE4MmY3NGZhYTIx
MjAxZTc5YWUwZTVjM2I1Njg1NTNkZjMzNy4uNTJmOTU4NjRlMWU1ZmY0YmQ4ZjFjN2U5OWUxNTMx
MDY5NDE4MTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWVudi12YXItdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKQEAgLTcyLDYgKzcyLDExIEBAIHZvaWQgUHJp
bnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAgICByZXR1cm47CiAgIH0KIAorICBpZiAoc3Ry
Y21wKGZsYWcsICJmYWlsX2Zhc3QiKSA9PSAwKSB7CisgICAgY291dCA8PCBHVEVTVF9GTEFHKGZh
aWxfZmFzdCk7CisgICAgcmV0dXJuOworICB9CisKICAgaWYgKHN0cmNtcChmbGFnLCAiZmlsdGVy
IikgPT0gMCkgewogICAgIGNvdXQgPDwgR1RFU1RfRkxBRyhmaWx0ZXIpOwogICAgIHJldHVybjsK
QEAgLTgyLDYgKzg3LDExIEBAIHZvaWQgUHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAg
ICByZXR1cm47CiAgIH0KIAorICBpZiAoc3RyY21wKGZsYWcsICJicmllZiIpID09IDApIHsKKyAg
ICBjb3V0IDw8IEdURVNUX0ZMQUcoYnJpZWYpOworICAgIHJldHVybjsKKyAgfQorCiAgIGlmIChz
dHJjbXAoZmxhZywgInByaW50X3RpbWUiKSA9PSAwKSB7CiAgICAgY291dCA8PCBHVEVTVF9GTEFH
KHByaW50X3RpbWUpOwogICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWxlcGF0aC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKaW5kZXggMzdmMDJmYjRi
ZDc3OTdkMTRkMzgzYTA1ZmExOTdjMzZiMzE4MjVmMi4uYWFmYWQzNmYzZmVmNDQ5ZjQ2YmE3N2Ri
MjBlY2M5NjZiNTcyMGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKQEAgLTUwLDggKzUwLDYgQEAgbmFt
ZXNwYWNlIGludGVybmFsIHsKIG5hbWVzcGFjZSB7CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTX01P
QklMRQotLy8gRklYTUU6IE1vdmUgdGhlc2UgdG8gdGhlIFBPU0lYIGFkYXB0ZXIgc2VjdGlvbiBp
bgotLy8gZ3Rlc3QtcG9ydC5oLgogCiAvLyBXaW5kb3dzIENFIGRvZXNuJ3QgaGF2ZSB0aGUgcmVt
b3ZlIEMgZnVuY3Rpb24uCiBpbnQgcmVtb3ZlKGNvbnN0IGNoYXIqIHBhdGgpIHsKQEAgLTgwLDcg
Kzc4LDcgQEAgVEVTVChHZXRDdXJyZW50RGlyVGVzdCwgUmV0dXJuc0N1cnJlbnREaXIpIHsKICAg
Y29uc3QgRmlsZVBhdGggY3dkID0gRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKTsKICAgcG9zaXg6
OkNoRGlyKG9yaWdpbmFsX2Rpci5jX3N0cigpKTsKIAotIyBpZiBHVEVTVF9PU19XSU5ET1dTCisj
IGlmIEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1NfT1MyCiAKICAgLy8gU2tpcHMgdGhlICI6
Ii4KICAgY29uc3QgY2hhciogY29uc3QgY3dkX3dpdGhvdXRfZHJpdmUgPSBzdHJjaHIoY3dkLmNf
c3RyKCksICc6Jyk7CkBAIC00NzksNyArNDc3LDcgQEAgVEVTVChBc3NpZ25tZW50T3BlcmF0b3JU
ZXN0LCBDb25zdEFzc2lnbmVkVG9Ob25Db25zdCkgewogCiBjbGFzcyBEaXJlY3RvcnlDcmVhdGlv
blRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgdGVzdGRhdGFfcGF0aF8uU2V0KEZp
bGVQYXRoKAogICAgICAgICBUZW1wRGlyKCkgKyBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5z
dHJpbmcoKSArCiAgICAgICAgICJfZGlyZWN0b3J5X2NyZWF0aW9uIiBHVEVTVF9QQVRIX1NFUF8g
InRlc3QiIEdURVNUX1BBVEhfU0VQXykpOwpAQCAtNDk2LDcgKzQ5NCw3IEBAIGNsYXNzIERpcmVj
dG9yeUNyZWF0aW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBwb3NpeDo6Um1EaXIodGVzdGRh
dGFfcGF0aF8uY19zdHIoKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Cisg
IHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcmVtb3ZlKHRlc3RkYXRhX2ZpbGVfLmNf
c3RyKCkpOwogICAgIHJlbW92ZSh1bmlxdWVfZmlsZTBfLmNfc3RyKCkpOwogICAgIHJlbW92ZSh1
bmlxdWVfZmlsZTFfLmNfc3RyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkKaW5kZXggZGMwYjViZDlh
NWNmYzViZmU4YzY4YWYxYjY0Nzg5OWUxZmViZGE2Ny4uNmIzMmYyZDIxOTk3MTg5YTNjZDllYWYz
MTNkNDcwYmRkODRmY2MxMSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5CkBAIC00Miw3ICs0MiwxMCBA
QCB3ZSB0ZXN0IHRoYXQgaGVyZSBhbHNvLgogCiBpbXBvcnQgb3MKIGltcG9ydCByZQotaW1wb3J0
IHNldHMKK3RyeToKKyAgZnJvbSBzZXRzIGltcG9ydCBTZXQgYXMgc2V0ICAjIEZvciBQeXRob24g
Mi4zIGNvbXBhdGliaWxpdHkKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgcGFzcwogaW1wb3J0IHN5
cwogaW1wb3J0IGd0ZXN0X3Rlc3RfdXRpbHMKIApAQCAtNTcsNyArNjAsNyBAQCBDQU5fUEFTU19F
TVBUWV9FTlYgPSBGYWxzZQogaWYgc3lzLmV4ZWN1dGFibGU6CiAgIG9zLmVudmlyb25bJ0VNUFRZ
X1ZBUiddID0gJycKICAgY2hpbGQgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoCi0gICAg
ICBbc3lzLmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50IFwnRU1QVFlfVkFSXCcg
aW4gb3MuZW52aXJvbiddKQorICAgICAgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9z
OyBwcmludChcJ0VNUFRZX1ZBUlwnIGluIG9zLmVudmlyb24pJ10pCiAgIENBTl9QQVNTX0VNUFRZ
X0VOViA9IGV2YWwoY2hpbGQub3V0cHV0KQogCiAKQEAgLTcyLDcgKzc1LDcgQEAgaWYgc3lzLmV4
ZWN1dGFibGU6CiAgIG9zLmVudmlyb25bJ1VOU0VUX1ZBUiddID0gJ1gnCiAgIGRlbCBvcy5lbnZp
cm9uWydVTlNFVF9WQVInXQogICBjaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygK
LSAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBvczsgcHJpbnQgXCdVTlNFVF9W
QVJcJyBub3QgaW4gb3MuZW52aXJvbicKKyAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2lt
cG9ydCBvczsgcHJpbnQoXCdVTlNFVF9WQVJcJyBub3QgaW4gb3MuZW52aXJvbiknCiAgICAgICBd
KQogICBDQU5fVU5TRVRfRU5WID0gZXZhbChjaGlsZC5vdXRwdXQpCiAKQEAgLTI0NSwxNCArMjQ4
LDE0IEBAIGNsYXNzIEdUZXN0RmlsdGVyVW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2Fz
ZSk6CiAgICAgZm9yIHNsaWNlX3ZhciBpbiBsaXN0X29mX3NldHM6CiAgICAgICBmdWxsX3BhcnRp
dGlvbi5leHRlbmQoc2xpY2VfdmFyKQogICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNldF92YXIp
LCBsZW4oZnVsbF9wYXJ0aXRpb24pKQotICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0cy5TZXQoc2V0
X3ZhciksIHNldHMuU2V0KGZ1bGxfcGFydGl0aW9uKSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNl
dChzZXRfdmFyKSwgc2V0KGZ1bGxfcGFydGl0aW9uKSkKIAogICBkZWYgQWRqdXN0Rm9yUGFyYW1l
dGVyaXplZFRlc3RzKHNlbGYsIHRlc3RzX3RvX3J1bik6CiAgICAgIiIiQWRqdXN0IHRlc3RzX3Rv
X3J1biBpbiBjYXNlIHZhbHVlIHBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIGRpc2FibGVkLiIiIgog
CiAgICAgZ2xvYmFsIHBhcmFtX3Rlc3RzX3ByZXNlbnQKICAgICBpZiBub3QgcGFyYW1fdGVzdHNf
cHJlc2VudDoKLSAgICAgIHJldHVybiBsaXN0KHNldHMuU2V0KHRlc3RzX3RvX3J1bikgLSBzZXRz
LlNldChQQVJBTV9URVNUUykpCisgICAgICByZXR1cm4gbGlzdChzZXQodGVzdHNfdG9fcnVuKSAt
IHNldChQQVJBTV9URVNUUykpCiAgICAgZWxzZToKICAgICAgIHJldHVybiB0ZXN0c190b19ydW4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZp
bHRlci11bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsdGVyLXVuaXR0ZXN0Xy5jYwppbmRleCBkMzM1YjYwMzkxZDFkNDY4YTQxMTYxYjM4YzE0
ZWNjYmYxZDEzODA1Li5kMzBlYzljNzhiNTY1ZDhlODE4MDE3M2Q4ZmM0ZThhZWZhZDg4YWVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVy
LXVuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsdGVyLXVuaXR0ZXN0Xy5jYwpAQCAtMTI1LDggKzEyNSw4IEBAIFRFU1RfUChQYXJhbVRl
c3QsIFRlc3RYKSB7CiBURVNUX1AoUGFyYW1UZXN0LCBUZXN0WSkgewogfQogCi1JTlNUQU5USUFU
RV9URVNUX0NBU0VfUChTZXFQLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcygxLCAyKSk7Ci1J
TlNUQU5USUFURV9URVNUX0NBU0VfUChTZXFRLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcyg1
LCA2KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxUCwgUGFyYW1UZXN0LCB0ZXN0aW5n
OjpWYWx1ZXMoMSwgMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcVEsIFBhcmFtVGVz
dCwgdGVzdGluZzo6VmFsdWVzKDUsIDYpKTsKIAogfSAgLy8gbmFtZXNwYWNlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVz
LXRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1v
dXRmaWxlcy10ZXN0LnB5CmluZGV4IGM5OWJlNDhlOGFjMzY1MDllZDMyZWEyZmI4ZTRmYTFlYTdm
YzgzNjQuLjhlZjQ3YjhmOTc0NjNjMmUzYWQ0NDIyNTQ3OWQzYmMwNjMzODc5MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVz
LXRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpz
b24tb3V0ZmlsZXMtdGVzdC5weQpAQCAtNDAsMjQgKzQwLDQxIEBAIEdURVNUX09VVFBVVF8xX1RF
U1QgPSAnZ3Rlc3RfeG1sX291dGZpbGUxX3Rlc3RfJwogR1RFU1RfT1VUUFVUXzJfVEVTVCA9ICdn
dGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8nCiAKIEVYUEVDVEVEXzEgPSB7Ci0gICAgdSd0ZXN0cyc6
IDEsCi0gICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJv
cnMnOiAwLAotICAgIHUndGltZSc6IHUnKicsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAg
IHUnbmFtZSc6IHUnQWxsVGVzdHMnLAorICAgIHUndGVzdHMnOgorICAgICAgICAxLAorICAgIHUn
ZmFpbHVyZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAg
IHUndGltZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0Fs
bFRlc3RzJywKICAgICB1J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25hbWUnOiB1J1Byb3Bl
cnR5T25lJywKLSAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUnZmFpbHVyZXMnOiAwLAot
ICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMnOiAwLAotICAgICAgICB1
J3RpbWUnOiB1JyonLAorICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eU9u
ZScsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJl
cyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6Cisg
ICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1Jyon
LAogICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CiAgICAgICAgICAgICB1J25hbWUnOiB1J1Rlc3RT
b21lUHJvcGVydGllcycsCiAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAg
ICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywK
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKICAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzogdSdQcm9wZXJ0eU9uZScsCiAgICAgICAgICAgICB1J1NldFVwUHJvcCc6IHUnMScsCiAgICAg
ICAgICAgICB1J1Rlc3RTb21lUHJvcGVydHknOiB1JzEnLApAQCAtNjcsMjMgKzg0LDQwIEBAIEVY
UEVDVEVEXzEgPSB7CiB9CiAKIEVYUEVDVEVEXzIgPSB7Ci0gICAgdSd0ZXN0cyc6IDEsCi0gICAg
dSdmYWlsdXJlcyc6IDAsCi0gICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJvcnMnOiAwLAot
ICAgIHUndGltZSc6IHUnKicsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUnbmFtZSc6
IHUnQWxsVGVzdHMnLAorICAgIHUndGVzdHMnOgorICAgICAgICAxLAorICAgIHUnZmFpbHVyZXMn
OgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAgIHUnZXJyb3Jz
JzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAgIHUndGltZXN0
YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywK
ICAgICB1J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25hbWUnOiB1J1Byb3BlcnR5VHdvJywK
LSAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICB1
J2Rpc2FibGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMnOiAwLAotICAgICAgICB1J3RpbWUnOiB1
JyonLAorICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eVR3bycsCisgICAg
ICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAg
ICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAg
ICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAogICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFt7CiAgICAgICAgICAgICB1J25hbWUnOiB1J1Rlc3RTb21lUHJvcGVy
dGllcycsCiAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVz
dWx0JzogdSdDT01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9w
ZXJ0eVR3bycsCiAgICAgICAgICAgICB1J1NldFVwUHJvcCc6IHUnMicsCkBAIC0xMzYsMTEgKzE3
MCw2IEBAIGNsYXNzIEdUZXN0SnNvbk91dEZpbGVzVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RD
YXNlKToKICAgICBzZWxmLmFzc2VydF8ocC5leGl0ZWQpCiAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
MCwgcC5leGl0X2NvZGUpCiAKLSAgICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNlcyB0aGUgYnVpbHQg
dGVzdCBiaW5hcnkgdG8gYmUKLSAgICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1sX291dGZpbGVzX3Rl
c3RfIGluc3RlYWQgb2YKLSAgICAjICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfLiAgVG8gYWNj
b3VudCBmb3IgdGhpcyBwb3NzaWJpbGl0eSwgd2UKLSAgICAjICAgYWxsb3cgYm90aCBuYW1lcyBp
biB0aGUgZm9sbG93aW5nIGNvZGUuICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMKLSAgICAjICAgd2hl
biBsaWJ0b29sIHJlcGxhY2VtZW50IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0cHV0X2ZpbGVfbmFt
ZTEgPSB0ZXN0X25hbWUgKyAnLmpzb24nCiAgICAgb3V0cHV0X2ZpbGUxID0gb3MucGF0aC5qb2lu
KHNlbGYub3V0cHV0X2Rpcl8sIG91dHB1dF9maWxlX25hbWUxKQogICAgIG91dHB1dF9maWxlX25h
bWUyID0gJ2x0LScgKyBvdXRwdXRfZmlsZV9uYW1lMQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0
LnB5CmluZGV4IDU3ZGNkNWZhMWM0NjM5ZjE1MmZiNTRlNTBmYjljMDU5OGEwZTQ2YTAuLjQxYzg1
NjUxNDQ5OTg0YTdiMTQxOGRiMmVkNThiNTFmZDM2YTA1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dHB1dC11bml0dGVzdC5weQor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQt
dW5pdHRlc3QucHkKQEAgLTU3LDM4NCArNTcsNjE0IEBAIGVsc2U6CiAgIFNUQUNLX1RSQUNFX1RF
TVBMQVRFID0gJycKIAogRVhQRUNURURfTk9OX0VNUFRZID0gewotICAgIHUndGVzdHMnOiAyMywK
LSAgICB1J2ZhaWx1cmVzJzogNCwKLSAgICB1J2Rpc2FibGVkJzogMiwKLSAgICB1J2Vycm9ycyc6
IDAsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUndGltZSc6IHUnKicsCi0gICAgdSdh
ZF9ob2NfcHJvcGVydHknOiB1JzQyJywKLSAgICB1J25hbWUnOiB1J0FsbFRlc3RzJywKLSAgICB1
J3Rlc3RzdWl0ZXMnOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2Vz
c2Z1bFRlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1
cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJv
cnMnOiAwLAorICAgIHUndGVzdHMnOgorICAgICAgICAyNiwKKyAgICB1J2ZhaWx1cmVzJzoKKyAg
ICAgICAgNSwKKyAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgMiwKKyAgICB1J2Vycm9ycyc6Cisg
ICAgICAgIDAsCisgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICB1JyonLAorICAgIHUndGltZSc6
CisgICAgICAgIHUnKicsCisgICAgdSdhZF9ob2NfcHJvcGVydHknOgorICAgICAgICB1JzQyJywK
KyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J3Rlc3RzdWl0ZXMnOiBb
eworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdTdWNjZXNzZnVsVGVzdCcsCisgICAg
ICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAg
ICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAg
ICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKKyAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NP
TVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1l
c3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1N1Y2Nlc3NmdWxUZXN0
JworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUn
RmFpbGVkVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAg
dSdmYWlsdXJlcyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAg
ICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
dGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAg
ICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUn
OgorICAgICAgICAgICAgICAgIHUnRmFpbHMnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgorICAg
ICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAg
ICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgICAg
IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScqJywK
KyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAgICAgICAgICAgICAgICB1J0ZhaWxlZFRlc3Qn
LAorICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJl
JzogdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFU
RSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAg
IH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdEaXNhYmxlZFRl
c3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVy
ZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAx
LAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgor
ICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScq
JywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdESVNB
QkxFRF90ZXN0X25vdF9ydW4nLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J05PVFJVTicsCisg
ICAgICAgICAgICB1J3Jlc3VsdCc6IHUnU1VQUFJFU1NFRCcsCisgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdj
bGFzc25hbWUnOiB1J0Rpc2FibGVkVGVzdCcKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAg
IHUnbmFtZSc6CisgICAgICAgICAgICB1J1NraXBwZWRUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICAzLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnU2tpcHBlZCcsCisgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdTS0lQUEVEJywKKyAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2tpcHBlZFRlc3QnCisgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgIHUnbmFtZSc6IHUnU2tpcHBlZFdpdGhNZXNzYWdlJywKKyAgICAgICAgICAgIHUn
c3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J1NLSVBQRUQnLAorICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywK
KyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTa2lwcGVkVGVzdCcKKyAgICAgICAgfSwgewor
ICAgICAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgICAgICB1J1NraXBwZWRBZnRlckZhaWx1
cmUnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAg
ICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAg
ICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3Rp
bWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzoKKyAgICAgICAgICAgICAgICB1J1NraXBwZWRUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVy
ZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQg
ZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHUnICAxXG4gIDInICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgdSd0
eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAg
dSduYW1lJzoKKyAgICAgICAgICAgIHUnTWl4ZWRSZXN1bHRUZXN0JywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAzLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdlcnJvcnMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1
aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2VlZHMnLAorICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywK
KyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUn
KicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JworICAgICAg
ICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnRmFpbHMnLAor
ICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAg
ICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAg
ICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFt
cCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAg
ICAgICAgICAgICAgICB1J01peGVkUmVzdWx0VGVzdCcsCisgICAgICAgICAgICB1J2ZhaWx1cmVz
JzogW3sKKyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0X3htbF9vdXRwdXRfdW5p
dHRlc3RfLmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVx
dWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlw
ZSc6IHUnJworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUn
Z3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnICAyXG4gIDMnICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisg
ICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAgICB9LCB7
CisgICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3QnLAorICAgICAgICAgICAgdSdz
dGF0dXMnOiB1J05PVFJVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnU1VQUFJFU1NFRCcs
CisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1
JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J01peGVkUmVzdWx0VGVzdCcKKyAgICAg
ICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1htbFF1b3Rp
bmdUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Zh
aWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1l
JzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAg
IHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6Cisg
ICAgICAgICAgICAgICAgdSdPdXRwdXRzQ0RhdGEnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgor
ICAgICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAg
ICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAg
ICAgIHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScq
JywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAgICAgICAgICAgICAgICB1J1htbFF1b3Rp
bmdUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUn
ZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnRmFpbGVkXG5YTUwgb3V0cHV0OiA8P3htbCBlbmNvZGluZz0i
dXRmLTgiPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jzx0b3A+PCFbQ0RBVEFbY2Rh
dGEgdGV4dF1dPjwvdG9wPicgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQUNLX1RS
QUNFX1RFTVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJworICAgICAgICAgICAg
fV0KKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1
J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAg
MSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Rpc2Fi
bGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFt
cCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAg
ICAgICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNJbk1lc3Nh
Z2UnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAg
ICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAg
ICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3Rp
bWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzoKKyAgICAgICAgICAgICAgICB1J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCisgICAgICAgICAg
ICB1J2ZhaWx1cmVzJzogW3sKKyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0X3ht
bF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
J0ZhaWxlZFxuSW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnIFtceDAxXHgwMl0nICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAg
ICAgICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnUHJvcGVydHlSZWNvcmRpbmdU
ZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICA0LAorICAgICAgICB1J2ZhaWx1
cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAg
MCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoK
KyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUn
KicsCisgICAgICAgIHUnU2V0VXBUZXN0U3VpdGUnOgorICAgICAgICAgICAgdSd5ZXMnLAorICAg
ICAgICB1J1RlYXJEb3duVGVzdFN1aXRlJzoKKyAgICAgICAgICAgIHUnYXllJywKKyAgICAgICAg
dSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdPbmVQcm9wZXJ0eScsCisg
ICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdD
T01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGlt
ZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29y
ZGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdrZXlfMSc6IHUnMScKKyAgICAgICAgfSwgeworICAg
ICAgICAgICAgdSduYW1lJzogdSdJbnRWYWx1ZWRQcm9wZXJ0eScsCisgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycs
Ci0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
U3VjY2Vzc2Z1bFRlc3QnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J0ZhaWxlZFRlc3QnLAotICAg
ICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAg
ICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAg
ICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1By
b3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV9pbnQnOiB1JzEnCisgICAg
ICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnVGhyZWVQcm9wZXJ0aWVzJywKKyAgICAg
ICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBM
RVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3Vp
dGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1
J0ZhaWxzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAg
ICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3Nu
YW1lJzogdSdGYWlsZWRUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
J2ZhaWx1cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2d0ZXN0X3htbF9v
dXRwdXRfdW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHUnICAxXG4gIDInICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnRGlz
YWJsZWRUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWls
dXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMSwKLSAgICAgICAgICAgIHUnZXJy
b3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdrZXlf
MSc6IHUnMScsCisgICAgICAgICAgICB1J2tleV8yJzogdScyJywKKyAgICAgICAgICAgIHUna2V5
XzMnOiB1JzMnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnVHdvVmFsdWVz
Rm9yT25lS2V5VXNlc0xhc3RWYWx1ZScsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywK
KyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1l
JzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdESVNBQkxFRF90ZXN0X25vdF9ydW4nLAot
ICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnTk9UUlVOJywKLSAgICAgICAgICAgICAg
ICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1
J0Rpc2FibGVkVGVzdCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JywK
LSAgICAgICAgICAgIHUndGVzdHMnOiAzLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDEsCi0g
ICAgICAgICAgICB1J2Rpc2FibGVkJzogMSwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAg
ICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzog
dSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdrZXlfMSc6IHUnMicKKyAg
ICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J05vRml4
dHVyZVRlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDMsCisgICAgICAgIHUn
ZmFpbHVyZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3Rp
bWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAg
ICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzog
dSdSZWNvcmRQcm9wZXJ0eScsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAg
ICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScq
JywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycsCi0gICAgICAgICAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JwotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1
J25hbWUnOiB1J0ZhaWxzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTics
Ci0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2ZhaWx1cmVzJzogWwotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnZmFpbHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9U
RU1QTEFURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVz
OlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMlxuICAzJyArIFNUQUNL
X1RSQUNFX1RFTVBMQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUn
JwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUn
bmFtZSc6IHUnRElTQUJMRURfdGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzog
dSdOT1RSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
dSduYW1lJzogdSdYbWxRdW90aW5nVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAg
ICAgICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0g
ICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKics
CisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAg
ICB1J2tleSc6IHUnMScKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdFeHRl
cm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQcm9wZXJ0eScsCisgICAgICAgICAg
ICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQn
LAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzog
WwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdPdXRw
dXRzQ0RhdGEnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAg
ICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFz
c25hbWUnOiB1J1htbFF1b3RpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJl
cyc6IFsKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1J2ZhaWx1cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdSdGYWlsZWRcblhNTCBvdXRwdXQ6IDw/eG1sIGVuY29kaW5nPSJ1dGYtOCI+JwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jzx0b3A+PCFbQ0RBVEFbY2RhdGEgdGV4dF1d
PjwvdG9wPicgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFDS19UUkFDRV9U
RU1QTEFURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
dSduYW1lJzogdSdJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6
IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQn
OiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAn
OiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAorICAg
ICAgICAgICAgdSdrZXlfZm9yX3V0aWxpdHlfaW50JzogdScxJworICAgICAgICB9LCB7CisgICAg
ICAgICAgICB1J25hbWUnOiB1J0V4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1Zh
bHVlZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAg
ICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB1J25hbWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJzSW5NZXNzYWdlJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdJbnZhbGlk
Q2hhcmFjdGVyc1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFp
bHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1
dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0Zh
aWxlZFxuSW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1JyBbXHgwMVx4MDJdJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1By
b3BlcnR5UmVjb3JkaW5nVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogNCwKLSAgICAgICAg
ICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAg
ICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAgICB1J2tl
eV9mb3JfdXRpbGl0eV9zdHJpbmcnOiB1JzEnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAg
ICB1J25hbWUnOgorICAgICAgICAgICAgdSdUeXBlZFRlc3QvMCcsCisgICAgICAgIHUndGVzdHMn
OgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAor
ICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoK
KyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAg
ICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0
ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCisg
ICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUnU2V0VXBUZXN0Q2FzZSc6IHUneWVzJywK
LSAgICAgICAgICAgIHUnVGVhckRvd25UZXN0Q2FzZSc6IHUnYXllJywKLSAgICAgICAgICAgIHUn
dGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSdu
YW1lJzogdSdPbmVQcm9wZXJ0eScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAg
ICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAg
ICAgICAgICAgdSdrZXlfMSc6IHUnMScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdJbnRWYWx1ZWRQcm9wZXJ0eScs
Ci0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
UHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfaW50Jzog
dScxJwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICB1J25hbWUnOiB1J1RocmVlUHJvcGVydGllcycsCi0gICAgICAgICAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0
JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfMSc6IHUnMScsCi0gICAgICAgICAgICAgICAg
ICAgIHUna2V5XzInOiB1JzInLAotICAgICAgICAgICAgICAgICAgICB1J2tleV8zJzogdSczJwot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB1J25hbWUnOiB1J1R3b1ZhbHVlc0Zvck9uZUtleVVzZXNMYXN0VmFsdWUnLAotICAgICAgICAg
ICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1l
JzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVj
b3JkaW5nVGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5XzEnOiB1JzInCi0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgICB1J25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDMs
Ci0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAw
LAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1
JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1R5cGVkVGVzdC8wJworICAgICAgICB9
XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnVHlwZWRUZXN0LzEn
LAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAor
ICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAg
ICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywK
KyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBl
UGFyYW1BdHRyaWJ1dGUnLAorICAgICAgICAgICAgdSd0eXBlX3BhcmFtJzogdSdsb25nJywKKyAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NP
TVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0
c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUn
OiB1J1JlY29yZFByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JV
TicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAg
ICAgIHUnY2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKLSAgICAgICAgICAgICAgICAgICAg
dSdrZXknOiB1JzEnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3Jk
SW50VmFsdWVkUHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2tleV9mb3JfdXRpbGl0eV9pbnQnOiB1JzEnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB1J0V4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1ZhbHVlZFByb3Bl
cnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAg
ICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzogdSdOb0ZpeHR1cmVUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfZm9yX3V0aWxp
dHlfc3RyaW5nJzogdScxJwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdUeXBlZFRlc3QvMCcsCi0g
ICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAg
ICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAg
ICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
VHlwZWRUZXN0LzEnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAg
ICAgICAgICAgdSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCcsCisgICAgICAg
IHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1
JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1
J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJp
YnV0ZScsCisgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcsCisgICAgICAgICAgICB1
J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAog
ICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBl
UGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2lu
dCcsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAg
ICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnVHlwZWRUZXN0LzAnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1R5cGVkVGVzdC8xJywKLSAg
ICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAg
ICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAg
ICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCcKKyAgICAgICAgfV0KKyAgICB9LCB7
CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXpl
ZFRlc3RTdWl0ZS8xJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAg
ICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAg
dSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFt
ZSc6IHUnSGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6
IHUnbG9uZycsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUn
cmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAg
ICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdSduYW1lJzogdSdIYXNUeXBlUGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAg
ICAgICB1J3R5cGVfcGFyYW0nOiB1J2xvbmcnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1
cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAg
ICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1R5cGVkVGVzdC8xJwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSdu
YW1lJzogdSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8wJywKLSAgICAgICAgICAg
IHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1
J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUn
dGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAg
IHUnbmFtZSc6CisgICAgICAgICAgICB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcsCisgICAgICAg
IHUndGVzdHMnOgorICAgICAgICAgICAgNCwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1
JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1
J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRy
aWJ1dGUvMCcsCisgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCisgICAgICAgICAg
ICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQn
LAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzog
WwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdIYXNU
eXBlUGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1
J2ludCcsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAg
ICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFt
ZSc6IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCcKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUn
bmFtZSc6IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMScsCi0gICAgICAgICAg
ICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAg
dSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1Zh
bHVlUGFyYW1UZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1Zh
bHVlUGFyYW1BdHRyaWJ1dGUvMScsCisgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSc0Mics
CisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0Jzog
dSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUn
dGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSdu
YW1lJzogdSdIYXNUeXBlUGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5
cGVfcGFyYW0nOiB1J2xvbmcnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzEnCi0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICB1J25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcsCi0gICAgICAgICAg
ICB1J3Rlc3RzJzogNCwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAg
dSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1Zh
bHVlUGFyYW1UZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0Fub3Ro
ZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCcsCisgICAgICAgICAgICB1J3ZhbHVl
X3BhcmFtJzogdSczMycsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAg
ICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywK
LSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdSduYW1lJzogdSdIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAnLAotICAgICAg
ICAgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCi0gICAgICAgICAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0
JwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMScsCi0gICAgICAgICAgICAg
ICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0
dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAg
ICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUn
bmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKLSAgICAg
ICAgICAgICAgICAgICAgdSd2YWx1ZV9wYXJhbSc6IHUnMzMnLAotICAgICAgICAgICAgICAgICAg
ICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywK
LSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVz
dCcKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdSduYW1lJzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEn
LAotICAgICAgICAgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSc0MicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVl
UGFyYW1UZXN0JwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQot
ICAgIF0KKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xh
c3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHUnbmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywK
KyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCisgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAg
ICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKKyAgICAgICAg
fV0KKyAgICB9XQogfQogCiBFWFBFQ1RFRF9GSUxURVJFRCA9IHsKLSAgICB1J3Rlc3RzJzogMSwK
LSAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6
IDAsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSdu
YW1lJzogdSdBbGxUZXN0cycsCi0gICAgdSdhZF9ob2NfcHJvcGVydHknOiB1JzQyJywKKyAgICB1
J3Rlc3RzJzoKKyAgICAgICAgMSwKKyAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgMCwKKyAgICB1
J2Rpc2FibGVkJzoKKyAgICAgICAgMCwKKyAgICB1J2Vycm9ycyc6CisgICAgICAgIDAsCisgICAg
dSd0aW1lJzoKKyAgICAgICAgdScqJywKKyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKics
CisgICAgdSduYW1lJzoKKyAgICAgICAgdSdBbGxUZXN0cycsCisgICAgdSdhZF9ob2NfcHJvcGVy
dHknOgorICAgICAgICB1JzQyJywKICAgICB1J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25h
bWUnOiB1J1N1Y2Nlc3NmdWxUZXN0JywKLSAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUn
ZmFpbHVyZXMnOiAwLAotICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMn
OiAwLAotICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICB1J25hbWUnOgorICAgICAgICAg
ICAgdSdTdWNjZXNzZnVsVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwK
KyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVk
JzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6
CisgICAgICAgICAgICB1JyonLAogICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CiAgICAgICAgICAg
ICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAor
ICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAgICAgdSdj
bGFzc25hbWUnOiB1J1N1Y2Nlc3NmdWxUZXN0JywKICAgICAgICAgfV0KICAgICB9XSwKIH0KIAot
RVhQRUNURURfRU1QVFkgPSB7Ci0gICAgdSd0ZXN0cyc6IDAsCi0gICAgdSdmYWlsdXJlcyc6IDAs
Ci0gICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJvcnMnOiAwLAotICAgIHUndGltZSc6IHUn
KicsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUnbmFtZSc6IHUnQWxsVGVzdHMnLAot
ICAgIHUndGVzdHN1aXRlcyc6IFtdLAorRVhQRUNURURfTk9fVEVTVCA9IHsKKyAgICB1J3Rlc3Rz
JzoKKyAgICAgICAgMCwKKyAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgMCwKKyAgICB1J2Rpc2Fi
bGVkJzoKKyAgICAgICAgMCwKKyAgICB1J2Vycm9ycyc6CisgICAgICAgIDAsCisgICAgdSd0aW1l
JzoKKyAgICAgICAgdScqJywKKyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKicsCisgICAg
dSduYW1lJzoKKyAgICAgICAgdSdBbGxUZXN0cycsCisgICAgdSd0ZXN0c3VpdGVzJzogW3sKKyAg
ICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnTm9uVGVzdFN1aXRlRmFpbHVyZScsCisgICAg
ICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAg
ICAgICAgICAxLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAg
IHUnc2tpcHBlZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0
aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbewor
ICAgICAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgICAgICB1JycsCisgICAgICAgICAgICB1
J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQn
OgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6Cisg
ICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAg
ICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAg
IHUnJywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFp
bHVyZSc6IHUnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYzoqXG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFU
RSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycsCisgICAgICAgICAgICB9XQorICAgICAg
ICB9XQorICAgIH1dLAogfQogCiBHVEVTVF9QUk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxz
LkdldFRlc3RFeGVjdXRhYmxlUGF0aChHVEVTVF9QUk9HUkFNX05BTUUpCkBAIC00NTksMTQgKzY4
OSwxNCBAQCBjbGFzcyBHVGVzdEpzb25PdXRwdXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRl
c3RDYXNlKToKICAgICAgICIiIgogICAgICAgc2VsZi5fVGVzdEpzb25PdXRwdXQoR1RFU1RfUFJP
R1JBTV9OQU1FLCBFWFBFQ1RFRF9OT05fRU1QVFksIDEpCiAKLSAgZGVmIHRlc3RFbXB0eUpzb25P
dXRwdXQoc2VsZik6CisgIGRlZiB0ZXN0Tm9UZXN0SnNvbk91dHB1dChzZWxmKToKICAgICAiIiJW
ZXJpZmllcyBKU09OIG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBiaW5hcnkgd2l0aG91dCBhY3R1
YWwgdGVzdHMuCiAKLSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIGVt
cHR5IEpTT04gb3V0cHV0LCBhbmQKLSAgICB0ZXN0cyB0aGF0IHRoZSBKU09OIG91dHB1dCBpcyBl
eHBlY3RlZC4KKyAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIEpTT04g
b3V0cHV0IGZvciBhIGJpbmFyeSB3aXRoIG5vCisgICAgdGVzdHMsIGFuZCB0ZXN0cyB0aGF0IHRo
ZSBKU09OIG91dHB1dCBpcyBleHBlY3RlZC4KICAgICAiIiIKIAotICAgIHNlbGYuX1Rlc3RKc29u
T3V0cHV0KCdndGVzdF9ub190ZXN0X3VuaXR0ZXN0JywgRVhQRUNURURfRU1QVFksIDApCisgICAg
c2VsZi5fVGVzdEpzb25PdXRwdXQoJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9O
T19URVNULCAwKQogCiAgIGRlZiB0ZXN0VGltZXN0YW1wVmFsdWUoc2VsZik6CiAgICAgIiIiQ2hl
Y2tzIHdoZXRoZXIgdGhlIHRpbWVzdGFtcCBhdHRyaWJ1dGUgaW4gdGhlIEpTT04gb3V0cHV0IGlz
IHZhbGlkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LWxpbmtlZC1wdHItdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1saW5rZWQtcHRyLXRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZhMDBmMzQyOTZiZDU3OTRjMTY0NDc5ZjIyYTg4ZGQ0ZjczNjAwMWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE1
MSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwMywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0v
LwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LSNpbmNsdWRlIDxzdGRsaWIuaD4KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWxp
bmtlZF9wdHIuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgewotCi11
c2luZyB0ZXN0aW5nOjpNZXNzYWdlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmxpbmtlZF9w
dHI7Ci0KLWludCBudW07Ci1NZXNzYWdlKiBoaXN0b3J5ID0gTlVMTDsKLQotLy8gQ2xhc3Mgd2hp
Y2ggdHJhY2tzIGFsbG9jYXRpb24vZGVhbGxvY2F0aW9uCi1jbGFzcyBBIHsKLSBwdWJsaWM6Ci0g
IEEoKTogbXludW0obnVtKyspIHsgKmhpc3RvcnkgPDwgIkEiIDw8IG15bnVtIDw8ICIgY3Rvclxu
IjsgfQotICB2aXJ0dWFsIH5BKCkgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXludW0gPDwgIiBkdG9y
XG4iOyB9Ci0gIHZpcnR1YWwgdm9pZCBVc2UoKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBteW51bSA8
PCAiIHVzZVxuIjsgfQotIHByb3RlY3RlZDoKLSAgaW50IG15bnVtOwotfTsKLQotLy8gU3ViY2xh
c3MKLWNsYXNzIEIgOiBwdWJsaWMgQSB7Ci0gcHVibGljOgotICBCKCkgeyAqaGlzdG9yeSA8PCAi
QiIgPDwgbXludW0gPDwgIiBjdG9yXG4iOyB9Ci0gIH5CKCkgeyAqaGlzdG9yeSA8PCAiQiIgPDwg
bXludW0gPDwgIiBkdG9yXG4iOyB9Ci0gIHZpcnR1YWwgdm9pZCBVc2UoKSB7ICpoaXN0b3J5IDw8
ICJCIiA8PCBteW51bSA8PCAiIHVzZVxuIjsgfQotfTsKLQotY2xhc3MgTGlua2VkUHRyVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwdWJsaWM6Ci0gIExpbmtlZFB0clRlc3QoKSB7Ci0g
ICAgbnVtID0gMDsKLSAgICBoaXN0b3J5ID0gbmV3IE1lc3NhZ2U7Ci0gIH0KLQotICB2aXJ0dWFs
IH5MaW5rZWRQdHJUZXN0KCkgewotICAgIGRlbGV0ZSBoaXN0b3J5OwotICAgIGhpc3RvcnkgPSBO
VUxMOwotICB9Ci19OwotCi1URVNUX0YoTGlua2VkUHRyVGVzdCwgR2VuZXJhbFRlc3QpIHsKLSAg
ewotICAgIGxpbmtlZF9wdHI8QT4gYTAsIGExLCBhMjsKLSAgICAvLyBVc2UgZXhwbGljaXQgZnVu
Y3Rpb24gY2FsbCBub3RhdGlvbiBoZXJlIHRvIHN1cHByZXNzIHNlbGYtYXNzaWduIHdhcm5pbmcu
Ci0gICAgYTAub3BlcmF0b3I9KGEwKTsKLSAgICBhMSA9IGEyOwotICAgIEFTU0VSVF9FUShhMC5n
ZXQoKSwgc3RhdGljX2Nhc3Q8QSo+KE5VTEwpKTsKLSAgICBBU1NFUlRfRVEoYTEuZ2V0KCksIHN0
YXRpY19jYXN0PEEqPihOVUxMKSk7Ci0gICAgQVNTRVJUX0VRKGEyLmdldCgpLCBzdGF0aWNfY2Fz
dDxBKj4oTlVMTCkpOwotICAgIEFTU0VSVF9UUlVFKGEwID09IE5VTEwpOwotICAgIEFTU0VSVF9U
UlVFKGExID09IE5VTEwpOwotICAgIEFTU0VSVF9UUlVFKGEyID09IE5VTEwpOwotCi0gICAgewot
ICAgICAgbGlua2VkX3B0cjxBPiBhMyhuZXcgQSk7Ci0gICAgICBhMCA9IGEzOwotICAgICAgQVNT
RVJUX1RSVUUoYTAgPT0gYTMpOwotICAgICAgQVNTRVJUX1RSVUUoYTAgIT0gTlVMTCk7Ci0gICAg
ICBBU1NFUlRfVFJVRShhMC5nZXQoKSA9PSBhMyk7Ci0gICAgICBBU1NFUlRfVFJVRShhMCA9PSBh
My5nZXQoKSk7Ci0gICAgICBsaW5rZWRfcHRyPEE+IGE0KGEwKTsKLSAgICAgIGExID0gYTQ7Ci0g
ICAgICBsaW5rZWRfcHRyPEE+IGE1KG5ldyBBKTsKLSAgICAgIEFTU0VSVF9UUlVFKGE1LmdldCgp
ICE9IGEzKTsKLSAgICAgIEFTU0VSVF9UUlVFKGE1ICE9IGEzLmdldCgpKTsKLSAgICAgIGEyID0g
YTU7Ci0gICAgICBsaW5rZWRfcHRyPEI+IGIwKG5ldyBCKTsKLSAgICAgIGxpbmtlZF9wdHI8QT4g
YTYoYjApOwotICAgICAgQVNTRVJUX1RSVUUoYjAgPT0gYTYpOwotICAgICAgQVNTRVJUX1RSVUUo
YTYgPT0gYjApOwotICAgICAgQVNTRVJUX1RSVUUoYjAgIT0gTlVMTCk7Ci0gICAgICBhNSA9IGIw
OwotICAgICAgYTUgPSBiMDsKLSAgICAgIGEzLT5Vc2UoKTsKLSAgICAgIGE0LT5Vc2UoKTsKLSAg
ICAgIGE1LT5Vc2UoKTsKLSAgICAgIGE2LT5Vc2UoKTsKLSAgICAgIGIwLT5Vc2UoKTsKLSAgICAg
ICgqYjApLlVzZSgpOwotICAgICAgYjAuZ2V0KCktPlVzZSgpOwotICAgIH0KLQotICAgIGEwLT5V
c2UoKTsKLSAgICBhMS0+VXNlKCk7Ci0gICAgYTItPlVzZSgpOwotCi0gICAgYTEgPSBhMjsKLSAg
ICBhMi5yZXNldChuZXcgQSk7Ci0gICAgYTAucmVzZXQoKTsKLQotICAgIGxpbmtlZF9wdHI8QT4g
YTc7Ci0gIH0KLQotICBBU1NFUlRfU1RSRVEoCi0gICAgIkEwIGN0b3JcbiIKLSAgICAiQTEgY3Rv
clxuIgotICAgICJBMiBjdG9yXG4iCi0gICAgIkIyIGN0b3JcbiIKLSAgICAiQTAgdXNlXG4iCi0g
ICAgIkEwIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIHVz
ZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIGR0b3JcbiIKLSAg
ICAiQTIgZHRvclxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTAgdXNlXG4iCi0gICAgIkExIHVz
ZVxuIgotICAgICJBMyBjdG9yXG4iCi0gICAgIkEwIGR0b3JcbiIKLSAgICAiQTMgZHRvclxuIgot
ICAgICJBMSBkdG9yXG4iLAotICAgIGhpc3RvcnktPkdldFN0cmluZygpLmNfc3RyKCkpOwotfQot
Ci19ICAvLyBVbm5hbWVkIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjCmlu
ZGV4IGY0NzNjN2QxYTQ1ZjFmMTk2YjEzNzQ4M2IwNTNjYTU5ODAwN2QyODguLjQ5M2M2ZjAwNDY0
YTkwZDYzNWQ4ZGYwOTZiZmZlYzUxNzNlNmU0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVz
dF8uY2MKQEAgLTk5LDcgKzk5LDcgQEAgVEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBUZXN0QSkgewog
VEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBUZXN0QikgewogfQogCi1JTlNUQU5USUFURV9URVNUX0NB
U0VfUCgKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgKICAgICBNeUluc3RhbnRpYXRpb24sIFZh
bHVlUGFyYW1UZXN0LAogICAgIHRlc3Rpbmc6OlZhbHVlcyhNeVR5cGUoIm9uZSBsaW5lIiksCiAg
ICAgICAgICAgICAgICAgICAgIE15VHlwZSgidHdvXG5saW5lcyIpLApAQCAtMTIzLDcgKzEyMyw3
IEBAIGNsYXNzIE15QXJyYXkgewogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxWZXJ5TG9vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29nTmFtZSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICBp
bnQqLCBNeUFycmF5PGJvb2wsIDQyPiA+IE15VHlwZXM7CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBl
ZFRlc3QsIE15VHlwZXMpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QsIE15VHlwZXMpOwog
CiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgVGVzdEEpIHsKIH0KQEAgLTEzNyw3ICsxMzcsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVQYXJhbVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1UZXN0KTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChUeXBlUGFyYW1UZXN0KTsKIAogVFlQRURfVEVTVF9QKFR5cGVQYXJhbVRl
c3QsIFRlc3RBKSB7CiB9CkBAIC0xNDUsOSArMTQ1LDkgQEAgVFlQRURfVEVTVF9QKFR5cGVQYXJh
bVRlc3QsIFRlc3RBKSB7CiBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEIpIHsKIH0K
IAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEsIFRlc3RC
KTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1UZXN0LCBUZXN0QSwgVGVz
dEIpOwogCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgVHlwZVBhcmFtVGVzdCwg
TXlUeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIFR5cGVQYXJhbVRl
c3QsIE15VHlwZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgOjp0
ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCmluZGV4
IDgzNTU1OTcxNTFkMDlkNmMzMTU2NzFmNDJkYjY2Y2M0YmQ0ODUwZmQuLjEwNDU3YWZlMzlhN2Ri
ZDFmYTBmNzMzOTI4Njc4NzI4ZGNkMWI5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCkBAIC0zNSwxOSAr
MzUsMjAgQEAKICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgor
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIgogCiB1c2luZyA6OnRlc3Rp
bmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKIHVzaW5nIDo6dGVzdGluZzo6RW52aXJvbm1l
bnQ7CiB1c2luZyA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0OwogdXNpbmcgOjp0ZXN0aW5nOjpU
ZXN0OwotdXNpbmcgOjp0ZXN0aW5nOjpUZXN0Q2FzZTsKK3VzaW5nIDo6dGVzdGluZzo6VGVzdFN1
aXRlOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lcjsKIHVzaW5nIDo6dGVzdGlu
Zzo6VGVzdEluZm87CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OwogdXNpbmcgOjp0
ZXN0aW5nOjpVbml0VGVzdDsKIAogLy8gVXNlZCBieSB0ZXN0cyB0byByZWdpc3RlciB0aGVpciBl
dmVudHMuCi1zdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfZXZlbnRzID0gTlVMTDsKK3N0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiogZ19ldmVudHMgPSBudWxscHRyOwogCiBuYW1lc3BhY2UgdGVz
dGluZyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewpAQCAtNTcsNjMgKzU4LDY2IEBAIGNsYXNzIEV2
ZW50UmVjb3JkaW5nTGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewogICBleHBs
aWNpdCBFdmVudFJlY29yZGluZ0xpc3RlbmVyKGNvbnN0IGNoYXIqIG5hbWUpIDogbmFtZV8obmFt
ZSkge30KIAogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFy
dChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRz
LT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1TdGFydCIpKTsKICAg
fQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBp
dGVyYXRpb24pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9u
KSBvdmVycmlkZSB7CiAgICAgTWVzc2FnZSBtZXNzYWdlOwogICAgIG1lc3NhZ2UgPDwgR2V0RnVs
bE1ldGhvZE5hbWUoIk9uVGVzdEl0ZXJhdGlvblN0YXJ0IikKICAgICAgICAgICAgIDw8ICIoIiA8
PCBpdGVyYXRpb24gPDwgIikiOwogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRT
dHJpbmcoKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAg
Z19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRV
cFN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQo
Y29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1Nl
dFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19l
dmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcEVu
ZCIpKTsKICAgfQotCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENh
c2UmIC8qdGVzdF9jYXNlKi8pIHsKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2Fz
ZSovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFt
ZSgiT25UZXN0Q2FzZVN0YXJ0IikpOwogICB9CisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0
SW5mbyYgLyp0ZXN0X2luZm8qLykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZv
JiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRG
dWxsTWV0aG9kTmFtZSgiT25UZXN0U3RhcnQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25U
ZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8p
IHsKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3Rf
cGFydF9yZXN1bHQqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVs
bE1ldGhvZE5hbWUoIk9uVGVzdFBhcnRSZXN1bHQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQg
T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSB7CisgIHZvaWQgT25UZXN0
RW5kKGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVu
dHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0RW5kIikpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8p
IHsKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25U
ZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgb3ZlcnJpZGUgewogICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdENhc2VFbmQiKSk7
CiAgIH0KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKLSAg
dmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25z
dCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNo
X2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIpKTsK
ICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVu
ZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRz
LT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQi
KSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBpdGVyYXRpb24pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24p
IG92ZXJyaWRlIHsKICAgICBNZXNzYWdlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZSA8PCBHZXRGdWxs
TWV0aG9kTmFtZSgiT25UZXN0SXRlcmF0aW9uRW5kIikKICAgICAgICAgICAgIDw8ICIoIiAgPDwg
aXRlcmF0aW9uIDw8ICIpIjsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKG1lc3NhZ2UuR2V0U3Ry
aW5nKCkpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3JhbUVuZCIpKTsKICAgfQogCkBAIC0xMjUs
MzQgKzEyOSw5OCBAQCBjbGFzcyBFdmVudFJlY29yZGluZ0xpc3RlbmVyIDogcHVibGljIFRlc3RF
dmVudExpc3RlbmVyIHsKICAgc3RkOjpzdHJpbmcgbmFtZV87CiB9OwogCi1jbGFzcyBFbnZpcm9u
bWVudEludm9jYXRpb25DYXRjaGVyIDogcHVibGljIEVudmlyb25tZW50IHsKKy8vIFRoaXMgbGlz
dGVuZXIgaXMgdXNpbmcgT25UZXN0U3VpdGVTdGFydCwgT25UZXN0U3VpdGVFbmQgQVBJCitjbGFz
cyBFdmVudFJlY29yZGluZ0xpc3RlbmVyMiA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7Cisg
cHVibGljOgorICBleHBsaWNpdCBFdmVudFJlY29yZGluZ0xpc3RlbmVyMihjb25zdCBjaGFyKiBu
YW1lKSA6IG5hbWVfKG5hbWUpIHt9CisKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6U2V0VXAiKTsKKyAg
dm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92
ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRl
c3RQcm9ncmFtU3RhcnQiKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBpdGVyYXRpb24pIG92ZXJyaWRlIHsKKyAgICBNZXNzYWdlIG1lc3NhZ2U7CisgICAgbWVz
c2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0SXRlcmF0aW9uU3RhcnQiKSA8PCAiKCIg
PDwgaXRlcmF0aW9uCisgICAgICAgICAgICA8PCAiKSI7CisgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhtZXNzYWdlLkdldFN0cmluZygpKTsKKyAgfQorCisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRV
cFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CisgICAgZ19l
dmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcFN0
YXJ0IikpOworICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhH
ZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcEVuZCIpKTsKKyAgfQorCisgIHZv
aWQgT25UZXN0U3VpdGVTdGFydChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVy
cmlkZSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0
U3VpdGVTdGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8m
IC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1
bGxNZXRob2ROYW1lKCJPblRlc3RTdGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIG92ZXJyaWRl
IHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQYXJ0
UmVzdWx0IikpOworICB9CisKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVz
dF9pbmZvKi8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPblRlc3RFbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiRW52aXJvbm1lbnQ6OlRlYXJEb3duIik7CisgIHZv
aWQgT25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJp
ZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFN1
aXRlRW5kIikpOwogICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiKSk7
CisgIH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1
bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1RlYXJEb3duRW5kIikpOworICB9CisKKyAgdm9p
ZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJyaWRlIHsKKyAgICBNZXNz
YWdlIG1lc3NhZ2U7CisgICAgbWVzc2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0SXRl
cmF0aW9uRW5kIikgPDwgIigiIDw8IGl0ZXJhdGlvbgorICAgICAgICAgICAgPDwgIikiOworICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmcoKSk7CisgIH0KKworICB2b2lk
IE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRl
IHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQcm9n
cmFtRW5kIikpOworICB9CisKKyBwcml2YXRlOgorICBzdGQ6OnN0cmluZyBHZXRGdWxsTWV0aG9k
TmFtZShjb25zdCBjaGFyKiBuYW1lKSB7IHJldHVybiBuYW1lXyArICIuIiArIG5hbWU7IH0KKwor
ICBzdGQ6OnN0cmluZyBuYW1lXzsKK307CisKK2NsYXNzIEVudmlyb25tZW50SW52b2NhdGlvbkNh
dGNoZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsgZ19ldmVudHMtPnB1c2hfYmFjaygiRW52aXJvbm1lbnQ6OlNldFVwIik7IH0K
KworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZp
cm9ubWVudDo6VGVhckRvd24iKTsgfQogfTsKIAogY2xhc3MgTGlzdGVuZXJUZXN0IDogcHVibGlj
IFRlc3QgewogIHByb3RlY3RlZDoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKLSAg
ICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdENhc2UiKTsKKyAg
c3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjaygi
TGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVh
ckRvd25UZXN0Q2FzZSgpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6
OlRlYXJEb3duVGVzdENhc2UiKTsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7
CisgICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RTdWl0
ZSIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGdfZXZlbnRzLT5wdXNo
X2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXAiKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJp
ZGUgeyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwIik7IH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVu
ZXJUZXN0OjpUZWFyRG93biIpOwotICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGdf
ZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iKTsgfQogfTsKIAogVEVT
VF9GKExpc3RlbmVyVGVzdCwgRG9lc0ZvbykgewpAQCAtMTczLDYgKzI0MSw3IEBAIFRFU1RfRihM
aXN0ZW5lclRlc3QsIERvZXNCYXIpIHsKIAogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RW52
aXJvbm1lbnRJbnZvY2F0aW9uQ2F0Y2hlcjsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV2
ZW50UmVjb3JkaW5nTGlzdGVuZXI7Cit1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpFdmVudFJl
Y29yZGluZ0xpc3RlbmVyMjsKIAogdm9pZCBWZXJpZnlSZXN1bHRzKGNvbnN0IHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiYgZGF0YSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjb25z
dCogZXhwZWN0ZWRfZGF0YSwKQEAgLTIwNyw2ICsyNzYsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpIHsKICAgICAgIG5ldyBFdmVudFJlY29yZGluZ0xpc3RlbmVyKCIxc3QiKSk7
CiAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5BcHBlbmQoCiAgICAgICBu
ZXcgRXZlbnRSZWNvcmRpbmdMaXN0ZW5lcigiMm5kIikpOworICBVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKS0+bGlzdGVuZXJzKCkuQXBwZW5kKAorICAgICAgbmV3IEV2ZW50UmVjb3JkaW5nTGlzdGVu
ZXIyKCIzcmQiKSk7CiAKICAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBFbnZpcm9ubWVu
dEludm9jYXRpb25DYXRjaGVyKTsKIApAQCAtMjE2LDg4ICsyODcsMjI0IEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndikgewogICA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcocmVwZWF0KSA9
IDI7CiAgIGludCByZXRfdmFsID0gUlVOX0FMTF9URVNUUygpOwogCi0gIGNvbnN0IGNoYXIqIGNv
bnN0IGV4cGVjdGVkX2V2ZW50c1tdID0gewotICAgICIxc3QuT25UZXN0UHJvZ3JhbVN0YXJ0IiwK
LSAgICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCi0gICAgIjFzdC5PblRlc3RJdGVyYXRpb25T
dGFydCgwKSIsCi0gICAgIjJuZC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCi0gICAgIjFzdC5P
bkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcFN0
YXJ0IiwKLSAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRz
U2V0VXBFbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCi0gICAgIjFzdC5P
blRlc3RDYXNlU3RhcnQiLAotICAgICIybmQuT25UZXN0Q2FzZVN0YXJ0IiwKLSAgICAiTGlzdGVu
ZXJUZXN0OjpTZXRVcFRlc3RDYXNlIiwKLSAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKLSAgICAiMm5k
Lk9uVGVzdFN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCi0gICAgIkxpc3RlbmVy
VGVzdDo6KiBUZXN0IEJvZHkiLAotICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIjJu
ZC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCi0gICAg
IjJuZC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdFN0
YXJ0IiwKLSAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIs
Ci0gICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAotICAgICIxc3QuT25UZXN0UGFydFJl
c3VsdCIsCi0gICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpU
ZWFyRG93biIsCi0gICAgIjJuZC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0RW5kIiwKLSAg
ICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RDYXNlIiwKLSAgICAiMm5kLk9uVGVzdENhc2VF
bmQiLAotICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1Rl
YXJEb3duU3RhcnQiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKLSAg
ICAiRW52aXJvbm1lbnQ6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRv
d25FbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0gICAgIjJuZC5P
blRlc3RJdGVyYXRpb25FbmQoMCkiLAotICAgICIxc3QuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwK
LSAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJh
dGlvblN0YXJ0KDEpIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAg
IjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6U2V0VXAi
LAotICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25t
ZW50c1NldFVwRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VTdGFydCIsCi0gICAgIjJuZC5PblRl
c3RDYXNlU3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdENhc2UiLAotICAgICIx
c3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5lclRl
c3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFzdC5P
blRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJMaXN0
ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRl
c3RFbmQiLAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAot
ICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9k
eSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1
bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIs
Ci0gICAgIjFzdC5PblRlc3RFbmQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdENh
c2UiLAotICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCi0gICAgIjFzdC5PblRlc3RDYXNlRW5kIiwK
LSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCi0gICAgIjJuZC5PbkVudmly
b25tZW50c1RlYXJEb3duU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAotICAg
ICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50
c1RlYXJEb3duRW5kIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCi0gICAgIjFz
dC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAotICAgICIybmQuT25UZXN0UHJvZ3JhbUVuZCIsCi0g
ICAgIjFzdC5PblRlc3RQcm9ncmFtRW5kIgotICB9OworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVH
QUNZX1RFU1RfQ0FTRUFQSV8KKworICAvLyBUaGUgZGVwcmVjYXRlZCBPblRlc3RTdWl0ZVN0YXJ0
L09uVGVzdENhc2VTdGFydCBldmVudHMgYXJlIGluY2x1ZGVkCisgIGNvbnN0IGNoYXIqIGNvbnN0
IGV4cGVjdGVkX2V2ZW50c1tdID0geyIxc3QuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQcm9ncmFtU3RhcnQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBy
b2dyYW1TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgw
KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZp
cm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0
VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52
aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdENh
c2VTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQu
T25UZXN0Q2FzZVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3RhcnQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6Oiog
VGVzdCBCb2R5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFz
dC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RT
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25U
ZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlz
dGVuZXJUZXN0OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVz
dDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjFzdC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVFbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdENhc2VFbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdENhc2VFbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJv
bm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW52aXJvbm1l
bnQ6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjNyZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1Rl
YXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNy
ZC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRp
b25TdGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcEVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZp
cm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RDYXNlU3RhcnQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0
OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1
bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVw
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVz
dDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRl
c3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0
YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVu
dmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1l
bnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlv
bkVuZCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQu
T25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFByb2dy
YW1FbmQifTsKKyNlbHNlCisgIGNvbnN0IGNoYXIqIGNvbnN0IGV4cGVjdGVkX2V2ZW50c1tdID0g
eyIxc3QuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjJuZC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9uU3Rh
cnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9u
VGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25t
ZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1l
bnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
MXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0
YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRl
c3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0
ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0
OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz
cmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1
bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RT
dWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3Qu
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVh
ckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF
bnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJv
bm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQo
MCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVz
dEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRz
U2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50
c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJu
ZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZVN0YXJ0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBU
ZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0
Lk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjJuZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQYXJ0UmVz
dWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRl
c3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ikxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OiogVGVz
dCBCb2R5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
blRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFy
RG93blRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25UZXN0U3VpdGVFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0
YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVu
dmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50
c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgx
KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0
SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjNyZC5PblRlc3RQcm9ncmFtRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjJuZC5PblRlc3RQcm9ncmFtRW5kIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQcm9ncmFtRW5kIn07CisjZW5kaWYgIC8v
IEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAgIFZlcmlmeVJlc3VsdHMoZXZl
bnRzLAogICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V2ZW50cywKICAgICAgICAgICAgICAgICBz
aXplb2YoZXhwZWN0ZWRfZXZlbnRzKS9zaXplb2YoZXhwZWN0ZWRfZXZlbnRzWzBdKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10
ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW1lc3NhZ2Ut
dGVzdC5jYwppbmRleCBjNjQ0NTg1M2U0MzNkM2MxNDM0NTI1NzM5MWE2Yjk4OGE5ZDM4MGVmLi45
NjJkNTE5MTE0ZTZlNGUzZGMzZGYxOWZkZTc1NDU1NzFiYzAzMWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MK
QEAgLTg1LDcgKzg1LDcgQEAgVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc1BvaW50ZXIpIHsKIAog
Ly8gVGVzdHMgc3RyZWFtaW5nIGEgTlVMTCBub24tY2hhciBwb2ludGVyLgogVEVTVChNZXNzYWdl
VGVzdCwgU3RyZWFtc051bGxQb2ludGVyKSB7Ci0gIGludCogcCA9IE5VTEw7CisgIGludCogcCA9
IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBwKS5HZXRTdHJp
bmcoKSk7CiB9CiAKQEAgLTk2LDcgKzk2LDcgQEAgVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc0NT
dHJpbmcpIHsKIAogLy8gVGVzdHMgc3RyZWFtaW5nIGEgTlVMTCBDIHN0cmluZy4KIFRFU1QoTWVz
c2FnZVRlc3QsIFN0cmVhbXNOdWxsQ1N0cmluZykgewotICBjaGFyKiBwID0gTlVMTDsKKyAgY2hh
ciogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBwKS5H
ZXRTdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1vcHRpb25zLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3Qtb3B0aW9ucy10ZXN0LmNjCmluZGV4IGVkZDRlYmEzYmQzMTA5NTk1MGE4
ZDk4Y2YzZGFmNmYzNGQ2NDk2OWYuLmYwN2IzMTZkYjNiOTQxMDUzMDNiMjI3NWViM2Y5ZGM2ZDEx
MTkwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1vcHRpb25zLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LW9wdGlvbnMtdGVzdC5jYwpAQCAtMTAyLDEwICsxMDIsMTUgQEAgVEVTVChPdXRwdXRG
aWxlSGVscGVyc1Rlc3QsIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSkgewogICAgICAgX3N0cmNt
cGkoImd0ZXN0LW9wdGlvbnMtZXhfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAogICAg
ICAgX3N0cmNtcGkoImd0ZXN0X2FsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8CiAg
ICAgICBfc3RyY21waSgiZ3Rlc3RfZGxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDA7Cisj
ZWxpZiBHVEVTVF9PU19PUzIKKyAgY29uc3QgYm9vbCBzdWNjZXNzID0KKyAgICAgIHN0cmNhc2Vj
bXAoImdvb2dsZXRlc3Qtb3B0aW9ucy10ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8Cisg
ICAgICBzdHJjYXNlY21wKCJndGVzdC1vcHRpb25zLWV4X3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkp
ID09IDAgfHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0X2FsbF90ZXN0IiwgZXhlX3N0ci5jX3N0
cigpKSA9PSAwIHx8CisgICAgICBzdHJjYXNlY21wKCJndGVzdF9kbGxfdGVzdCIsIGV4ZV9zdHIu
Y19zdHIoKSkgPT0gMDsKICNlbGlmIEdURVNUX09TX0ZVQ0hTSUEKICAgY29uc3QgYm9vbCBzdWNj
ZXNzID0gZXhlX3N0ciA9PSAiYXBwIjsKICNlbHNlCi0gIC8vIEZJWE1FOiByZW1vdmUgdGhlIGhh
cmQtY29kZWQgImx0LSIgcHJlZml4IHdoZW4gbGlidG9vbCByZXBsYWNlbWVudCBpcyByZWFkeQog
ICBjb25zdCBib29sIHN1Y2Nlc3MgPQogICAgICAgZXhlX3N0ciA9PSAiZ29vZ2xldGVzdC1vcHRp
b25zLXRlc3QiIHx8CiAgICAgICBleGVfc3RyID09ICJndGVzdF9hbGxfdGVzdCIgfHwKQEAgLTEy
MCw3ICsxMjUsNyBAQCBURVNUKE91dHB1dEZpbGVIZWxwZXJzVGVzdCwgR2V0Q3VycmVudEV4ZWN1
dGFibGVOYW1lKSB7CiAKIGNsYXNzIFhtbE91dHB1dENoYW5nZURpclRlc3QgOiBwdWJsaWMgVGVz
dCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7CiAgICAgb3JpZ2luYWxfd29ya2luZ19kaXJfID0gRmlsZVBhdGg6OkdldEN1
cnJlbnREaXIoKTsKICAgICBwb3NpeDo6Q2hEaXIoIi4uIik7CiAgICAgLy8gVGhpcyB3aWxsIG1h
a2UgdGhlIHRlc3QgZmFpbCBpZiBydW4gZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkuCkBAIC0xMjgs
NyArMTMzLDcgQEAgY2xhc3MgWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCA6IHB1YmxpYyBUZXN0IHsK
ICAgICAgICAgICAgICAgRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKS5zdHJpbmcoKSk7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlk
ZSB7CiAgICAgcG9zaXg6OkNoRGlyKG9yaWdpbmFsX3dvcmtpbmdfZGlyXy5zdHJpbmcoKS5jX3N0
cigpKTsKICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQKaW5kZXggODZk
YTg0NWI3ZDA0ZWExZjJiNTUzNDYwNGVlOWMwZDJiNWY4NTkxNi4uM2ZhYjNiOTdkOGYxYTIyYjY0
MWQ3NTVhYjgzNTllNWIwM2M5MjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGlu
LnR4dApAQCAtMTIsNyArMTIsNyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
CiAgIDMKIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMybVs9PT09PT09PT09XSAbW21S
dW5uaW5nIDc2IHRlc3RzIGZyb20gMzQgdGVzdCBjYXNlcy4KKxtbMDszMm1bPT09PT09PT09PV0g
G1ttUnVubmluZyA4OCB0ZXN0cyBmcm9tIDQxIHRlc3Qgc3VpdGVzLgogG1swOzMybVstLS0tLS0t
LS0tXSAbW21HbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCiBGb29FbnZpcm9ubWVudDo6
U2V0VXAoKSBjYWxsZWQuCiBCYXJFbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuCkBAIC0zODAs
NjYgKzM4MCw3NCBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzJtWyBSVU4gICAgICBd
IBtbbUFkZEZhaWx1cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVO
dW1iZXIKIGZvby5jYzo0MjogRmFpbHVyZQogRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlIGluIGZv
by5jYworRXhwZWN0ZWQgbm9uZmF0YWwgZmFpbHVyZSBpbiBmb28uY2MKIFN0YWNrIHRyYWNlOiAo
b21pdHRlZCkKIAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21BZGRGYWlsdXJlQXRUZXN0Lk1lc3Nh
Z2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCi0bWzA7MzJtWy0tLS0tLS0tLS1d
IBtbbTQgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdENhc2VUZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBd
IBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbwotG1swOzMy
bVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LkZpcnN0VGVzdEZyb21OYW1lc3Bh
Y2VGb28KLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5TZWNvbmRU
ZXN0RnJvbU5hbWVzcGFjZUZvbwotG1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdENh
c2VUZXN0LlNlY29uZFRlc3RGcm9tTmFtZXNwYWNlRm9vCi0bWzA7MzJtWyBSVU4gICAgICBdIBtb
bU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3VsZEZhaWwKKxtbMDszMm1bLS0tLS0tLS0tLV0g
G1ttMSB0ZXN0IGZyb20gR3Rlc3RGYWlsQXRUZXN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUd0
ZXN0RmFpbEF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxlQW5kTGluZU51bWJlcgor
Zm9vLmNjOjQyOiBGYWlsdXJlCitGYWlsZWQKK0V4cGVjdGVkIGZhdGFsIGZhaWx1cmUgaW4gZm9v
LmNjCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR3Rl
c3RGYWlsQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCisb
WzA7MzJtWy0tLS0tLS0tLS1dIBtbbTQgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdFN1aXRlVGVzdAor
G1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5GaXJzdFRlc3RGcm9t
TmFtZXNwYWNlRm9vCisbWzA7MzJtWyAgICAgICBPSyBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0
LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRV
cFRlc3RTdWl0ZVRlc3QuU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDszMm1bICAgICAg
IE9LIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28K
KxtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuVGhpc1Nob3VsZEZh
aWwKIGd0ZXN0LmNjOiM6IEZhaWx1cmUKIEZhaWxlZAotQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRl
c3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKLWNsYXNzLiAgSG93ZXZlciwg
aW4gdGVzdCBjYXNlIE1peGVkVXBUZXN0Q2FzZVRlc3QsCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUg
dGVzdCBzdWl0ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLiAgSG93ZXZl
ciwgaW4gdGVzdCBzdWl0ZSBNaXhlZFVwVGVzdFN1aXRlVGVzdCwKIHlvdSBkZWZpbmVkIHRlc3Qg
Rmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbyBhbmQgdGVzdCBUaGlzU2hvdWxkRmFpbAogdXNpbmcg
dHdvIGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMgY2FuIGhhcHBlbiBpZgog
dGhlIHR3byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIG9yIHRyYW5zbGF0
aW9uCiB1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNob3VsZCBwcm9iYWJseSBy
ZW5hbWUgb25lCi1vZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50
IHRlc3QgY2FzZXMuCitvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVy
ZW50IHRlc3Qgc3VpdGVzLgogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCi0bWzA7MzFtWyAgRkFJ
TEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3VsZEZhaWwKLRtbMDszMm1bIFJV
TiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbworG1swOzMx
bVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbAorG1sw
OzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbFRv
bwogZ3Rlc3QuY2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVz
dCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBp
biB0ZXN0IGNhc2UgTWl4ZWRVcFRlc3RDYXNlVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0
ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVy
LCBpbiB0ZXN0IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVUZXN0LAogeW91IGRlZmluZWQgdGVzdCBG
aXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0IFRoaXNTaG91bGRGYWlsVG9vCiB1c2lu
ZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlm
CiB0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNs
YXRpb24KIHVuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5
IHJlbmFtZSBvbmUKLW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJl
bnQgdGVzdCBjYXNlcy4KK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZm
ZXJlbnQgdGVzdCBzdWl0ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBG
QUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbwotG1swOzMy
bVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0
TmFtZVRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVU
ZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtbMDszMm1b
ICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vj
b25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4
ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFt
ZVNob3VsZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3Qu
VGhpc1Nob3VsZEZhaWxUb28KKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIE1p
eGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdAorG1swOzMybVsgUlVOICAgICAgXSAb
W21NaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhU
aGlzTmFtZVNob3VsZEZhaWwKKxtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RTdWl0
ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWls
CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1l
VGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFp
bHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRo
ZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IGNhc2UgTWl4ZWRV
cFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVz
dCBzdWl0ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLiAgSG93ZXZlciwg
aW4gdGVzdCBzdWl0ZSBNaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCiB5b3Ug
ZGVmaW5lZCB0ZXN0IFRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsIGFuZCB0ZXN0
IFRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiB1c2luZyB0d28gZGlmZmVyZW50
IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCiB0aGUgdHdvIGNsYXNz
ZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KIHVuaXRzIGFu
ZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKLW9m
IHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4K
K29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBzdWl0
ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4
ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFt
ZVNob3VsZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhT
YW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiAbWzA7
MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBURVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2Ft
ZV90ZXN0X2Nhc2UKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2lu
X3NhbWVfdGVzdF9jYXNlLkRlZmluZWRVc2luZ1RFU1RfRgogG1swOzMybVsgICAgICAgT0sgXSAb
W21URVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9G
CiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3Rf
Y2FzZS5EZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQog
RmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1l
IHRlc3QgZml4dHVyZQotY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNh
bWUgdGVzdCBjYXNlIGlzCi1pbGxlZ2FsLiAgSW4gdGVzdCBjYXNlIFRFU1RfRl9iZWZvcmVfVEVT
VF9pbl9zYW1lX3Rlc3RfY2FzZSwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11
c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5k
IFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUg
VEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLAogdGVzdCBEZWZpbmVkVXNpbmdU
RVNUX0YgaXMgZGVmaW5lZCB1c2luZyBURVNUX0YgYnV0CiB0ZXN0IERlZmluZWRVc2luZ1RFU1RB
bmRTaG91bGRGYWlsIGlzIGRlZmluZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseQogd2FudCB0
byBjaGFuZ2UgdGhlIFRFU1QgdG8gVEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhlciB0ZXN0CkBA
IC00NTMsOSArNDYxLDkgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogG1swOzMybVsgUlVOICAg
ICAgXSAbW21URVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5n
VEVTVF9GQW5kU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVz
dHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQot
Y2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGlz
Ci1pbGxlZ2FsLiAgSW4gdGVzdCBjYXNlIFRFU1RfYmVmb3JlX1RFU1RfRl9pbl9zYW1lX3Rlc3Rf
Y2FzZSwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1l
IHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNh
bWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgVEVTVF9iZWZvcmVfVEVT
VF9GX2luX3NhbWVfdGVzdF9jYXNlLAogdGVzdCBEZWZpbmVkVXNpbmdURVNUX0ZBbmRTaG91bGRG
YWlsIGlzIGRlZmluZWQgdXNpbmcgVEVTVF9GIGJ1dAogdGVzdCBEZWZpbmVkVXNpbmdURVNUIGlz
IGRlZmluZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseQogd2FudCB0byBjaGFuZ2UgdGhlIFRF
U1QgdG8gVEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhlciB0ZXN0CkBAIC04NzAsNiArODc4LDg0
IEBAIEV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLgogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQog
CiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVy
VGVzdC5JbnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAorG1swOzMybVstLS0tLS0tLS0tXSAbW20y
IHRlc3RzIGZyb20gRHluYW1pY0ZpeHR1cmUKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0
ZQorG1swOzMybVsgUlVOICAgICAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdFBhc3MK
K0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6
OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21EeW5h
bWljRml4dHVyZS5EeW5hbWljVGVzdFBhc3MKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttRHluYW1p
Y0ZpeHR1cmUuRHluYW1pY1Rlc3RGYWlsCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVy
ZTo6U2V0VXAKK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1ZhbHVlIG9m
OiBQYXNzCisgIEFjdHVhbDogZmFsc2UKK0V4cGVjdGVkOiB0cnVlCitTdGFjayB0cmFjZTogKG9t
aXR0ZWQpCisKK0R5bmFtaWNGaXh0dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtb
MDszMW1bICBGQUlMRUQgIF0gG1ttRHluYW1pY0ZpeHR1cmUuRHluYW1pY1Rlc3RGYWlsCitEeW5h
bWljRml4dHVyZTo6VGVhckRvd25UZXN0U3VpdGUKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0
ZXN0IGZyb20gRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZQorRHluYW1pY0ZpeHR1cmU6OlNldFVw
VGVzdFN1aXRlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUR5bmFtaWNGaXh0dXJlQW5vdGhlck5h
bWUuRHluYW1pY1Rlc3RQYXNzCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0
VXAKK0R5bmFtaWNGaXh0dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1b
ICAgICAgIE9LIF0gG1ttRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZS5EeW5hbWljVGVzdFBhc3MK
K0R5bmFtaWNGaXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAb
W20yIHRlc3RzIGZyb20gQmFkRHluYW1pY0ZpeHR1cmUxCitEeW5hbWljRml4dHVyZTo6U2V0VXBU
ZXN0U3VpdGUKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUxLkZpeHR1
cmVCYXNlCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0VXAKK0R5bmFtaWNG
aXh0dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1bICAgICAgIE9LIF0g
G1ttQmFkRHluYW1pY0ZpeHR1cmUxLkZpeHR1cmVCYXNlCisbWzA7MzJtWyBSVU4gICAgICBdIBtb
bUJhZER5bmFtaWNGaXh0dXJlMS5UZXN0QmFzZQorRHluYW1pY0ZpeHR1cmUoKQorZ3Rlc3QuY2M6
IzogRmFpbHVyZQorRmFpbGVkCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBtdXN0
IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLCBzbyBtaXhpbmcgVEVTVF9GIGFuZCBU
RVNUIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgaXMKK2lsbGVnYWwuICBJbiB0ZXN0IHN1aXRlIEJh
ZER5bmFtaWNGaXh0dXJlMSwKK3Rlc3QgRml4dHVyZUJhc2UgaXMgZGVmaW5lZCB1c2luZyBURVNU
X0YgYnV0Cit0ZXN0IFRlc3RCYXNlIGlzIGRlZmluZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJs
eQord2FudCB0byBjaGFuZ2UgdGhlIFRFU1QgdG8gVEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhl
ciB0ZXN0CitjYXNlLgorU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCit+RHluYW1pY0ZpeHR1cmUo
KQorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuVGVzdEJhc2UKK0R5
bmFtaWNGaXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAbW20y
IHRlc3RzIGZyb20gQmFkRHluYW1pY0ZpeHR1cmUyCitEeW5hbWljRml4dHVyZTo6U2V0VXBUZXN0
U3VpdGUKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkZpeHR1cmVC
YXNlCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0VXAKK0R5bmFtaWNGaXh0
dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1bICAgICAgIE9LIF0gG1tt
QmFkRHluYW1pY0ZpeHR1cmUyLkZpeHR1cmVCYXNlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUJh
ZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVkCitEeW5hbWljRml4dHVyZSgpCitndGVzdC5jYzojOiBG
YWlsdXJlCitGYWlsZWQKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNl
IHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1aXRlIEJh
ZER5bmFtaWNGaXh0dXJlMiwKK3lvdSBkZWZpbmVkIHRlc3QgRml4dHVyZUJhc2UgYW5kIHRlc3Qg
RGVyaXZlZAordXNpbmcgdHdvIGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMg
Y2FuIGhhcHBlbiBpZgordGhlIHR3byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3Bh
Y2VzIG9yIHRyYW5zbGF0aW9uCit1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNo
b3VsZCBwcm9iYWJseSByZW5hbWUgb25lCitvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3Rz
IGludG8gZGlmZmVyZW50IHRlc3Qgc3VpdGVzLgorU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCit+
RHluYW1pY0ZpeHR1cmUoKQorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVy
ZTIuRGVyaXZlZAorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCiAbWzA7MzJtWy0t
LS0tLS0tLS1dIBtbbTEgdGVzdCBmcm9tIFByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWlsaW5nUGFy
YW1UZXN0CiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbVByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWls
aW5nUGFyYW1UZXN0LkZhaWxzLzAKIGdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1
cmUKQEAgLTg4MCw2ICs5NjYsOSBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
CiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRp
bmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QuRmFpbHMvMCwgd2hlcmUgR2V0UGFyYW0o
KSA9IDIKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0ZXN0IGZyb20gRW1wdHlCYXNlbmFtZVBh
cmFtSW5zdAorG1swOzMybVsgUlVOICAgICAgXSAbW21FbXB0eUJhc2VuYW1lUGFyYW1JbnN0LlBh
c3Nlcy8wCisbWzA7MzJtWyAgICAgICBPSyBdIBtbbUVtcHR5QmFzZW5hbWVQYXJhbUluc3QuUGFz
c2VzLzAKIBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFByaW50aW5nU3RyaW5n
cy9QYXJhbVRlc3QKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFt
VGVzdC5TdWNjZXNzL2EKIBtbMDszMm1bICAgICAgIE9LIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1Bh
cmFtVGVzdC5TdWNjZXNzL2EKQEAgLTg5Myw2ICs5ODIsNDMgQEAgRXhwZWN0ZWQgZmFpbHVyZQog
U3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVByaW50aW5n
U3RyaW5ncy9QYXJhbVRlc3QuRmFpbHVyZS9hLCB3aGVyZSBHZXRQYXJhbSgpID0gImEiCisbWzA7
MzJtWy0tLS0tLS0tLS1dIBtbbTMgdGVzdHMgZnJvbSBHb29nbGVUZXN0VmVyaWZpY2F0aW9uCisb
WzA7MzJtWyBSVU4gICAgICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0
ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPE5vVGVzdHM+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0
Xy5jYzojOiBGYWlsdXJlCitQYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgTm9UZXN0cyBpcyBpbnN0
YW50aWF0ZWQgdmlhIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5vIHRlc3RzIGFyZSBk
ZWZpbmVkIHZpYSBURVNUX1AgLiBObyB0ZXN0IGNhc2VzIHdpbGwgcnVuLgorCitJZGVhbGx5LCBJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZlciBiZSBpbnZva2VkIGZyb20g
Y29kZSB0aGF0IGFsd2F5cyBkZXBlbmQgb24gY29kZSB0aGF0IHByb3ZpZGVzIFRFU1RfUC4gRmFp
bGluZyB0byBkbyBzbyBpcyBvZnRlbiBhbiBpbmRpY2F0aW9uIG9mIGRlYWQgY29kZSwgZS5nLiB0
aGUgbGFzdCBURVNUX1Agd2FzIHJlbW92ZWQgYnV0IHRoZSByZXN0IGdvdCBsZWZ0IGJlaGluZC4K
KworVG8gc3VwcHJlc3MgdGhpcyBlcnJvciBmb3IgdGhpcyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhl
IGZvbGxvd2luZyBsaW5lIChpbiBhIG5vbi1oZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMg
ZGVmaW5lZCBpbjoKKworR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9U
RVNUKE5vVGVzdHMpOworU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVE
ICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlPE5vVGVzdHM+CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUdvb2dsZVRlc3RWZXJp
ZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdElu
c3RhbnRpYXRlZFRlc3Q+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzojOiBGYWlsdXJlCitQ
YXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCBpcyBkZWZp
bmVkIHZpYSBURVNUX1AsIGJ1dCBuZXZlciBpbnN0YW50aWF0ZWQuIE5vbmUgb2YgdGhlIHRlc3Qg
Y2FzZXMgd2lsbCBydW4uIEVpdGhlciBubyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgaXMgcHJv
dmlkZWQgb3IgdGhlIG9ubHkgb25lcyBwcm92aWRlZCBleHBhbmQgdG8gbm90aGluZy4KKworSWRl
YWxseSwgVEVTVF9QIGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVkZWQgYXMg
cGFydCBvZiBiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8s
IGZvciBleGFtcGxlLCBiZWluZyBwbGFjZWQgaW4gYSBsaWJyYXJ5IHRoYXQgbWF5IGJlIGxpbmtl
ZCBpbiB0byBnZXQgb3RoZXIgdXRpbGl0aWVzLikKKworVG8gc3VwcHJlc3MgdGhpcyBlcnJvciBm
b3IgdGhpcyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lIChpbiBhIG5vbi1o
ZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBpbjoKKworR1RFU1RfQUxMT1df
VU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKERldGVjdE5vdEluc3RhbnRpYXRlZFRl
c3QpOworU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdv
b2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
PERldGVjdE5vdEluc3RhbnRpYXRlZFRlc3Q+CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUdvb2ds
ZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZTxEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0
Xy5jYzojOiBGYWlsdXJlCitUeXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBEZXRlY3ROb3RJ
bnN0YW50aWF0ZWRUeXBlc1Rlc3QgaXMgZGVmaW5lZCB2aWEgUkVHSVNURVJfVFlQRURfVEVTVF9T
VUlURV9QLCBidXQgbmV2ZXIgaW5zdGFudGlhdGVkIHZpYSBJTlNUQU5USUFURV9UWVBFRF9URVNU
X1NVSVRFX1AuIE5vbmUgb2YgdGhlIHRlc3QgY2FzZXMgd2lsbCBydW4uCisKK0lkZWFsbHksIFRZ
UEVEX1RFU1RfUCBkZWZpbml0aW9ucyBzaG91bGQgb25seSBldmVyIGJlIGluY2x1ZGVkIGFzIHBh
cnQgb2YgYmluYXJpZXMgdGhhdCBpbnRlbmQgdG8gdXNlIHRoZW0uIChBcyBvcHBvc2VkIHRvLCBm
b3IgZXhhbXBsZSwgYmVpbmcgcGxhY2VkIGluIGEgbGlicmFyeSB0aGF0IG1heSBiZSBsaW5rZWQg
aW4gdG8gZ2V0IG90aGVyIHV0aWxpdGllcy4pCisKK1RvIHN1cHByZXNzIHRoaXMgZXJyb3IgZm9y
IHRoaXMgdGVzdCBzdWl0ZSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgbGluZSAoaW4gYSBub24taGVh
ZGVyKSBpbiB0aGUgbmFtZXNwYWNlIGl0IGlzIGRlZmluZWQgaW46CisKK0dURVNUX0FMTE9XX1VO
SU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBl
c1Rlc3QpOworU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVEICBdIBtb
bUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZTxEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+CiAbWzA7MzJtWy0tLS0tLS0t
LS1dIBtbbUdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgogQmFyRW52aXJvbm1lbnQ6
OlRlYXJEb3duKCkgY2FsbGVkLgogZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVy
ZQpAQCAtOTA2LDkgKzEwMzIsOSBAQCBGYWlsZWQKIEV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuCiBT
dGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMm1bPT09PT09PT09PV0gG1ttNzYgdGVzdHMg
ZnJvbSAzNCB0ZXN0IGNhc2VzIHJhbi4KLRtbMDszMm1bICBQQVNTRUQgIF0gG1ttMjYgdGVzdHMu
Ci0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbTUwIHRlc3RzLCBsaXN0ZWQgYmVsb3c6CisbWzA7MzJt
Wz09PT09PT09PT1dIBtbbTg4IHRlc3RzIGZyb20gNDEgdGVzdCBzdWl0ZXMgcmFuLgorG1swOzMy
bVsgIFBBU1NFRCAgXSAbW20zMSB0ZXN0cy4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttNTcgdGVz
dHMsIGxpc3RlZCBiZWxvdzoKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uZmF0YWxGYWlsdXJl
VGVzdC5Fc2NhcGVzU3RyaW5nT3BlcmFuZHMKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uZmF0
YWxGYWlsdXJlVGVzdC5EaWZmRm9yTG9uZ1N0cmluZ3MKIBtbMDszMW1bICBGQUlMRUQgIF0gG1tt
RmF0YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKQEAgLTkyOCw5ICsxMDU0
LDEwIEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9u
RmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKIBtbMDszMW1bICBG
QUlMRUQgIF0gG1ttQWRkRmFpbHVyZUF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxl
QW5kTGluZU51bWJlcgotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0
LlRoaXNTaG91bGRGYWlsCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRl
c3QuVGhpc1Nob3VsZEZhaWxUb28KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RD
YXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZh
aWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR3Rlc3RGYWlsQXRUZXN0Lk1lc3NhZ2VDb250YWlu
c1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVk
VXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1p
eGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsVG9vCisbWzA7MzFtWyAgRkFJTEVEICBd
IBtbbU1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0
aFRoaXNOYW1lU2hvdWxkRmFpbAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21URVNUX0ZfYmVmb3Jl
X1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVEFuZFNob3VsZEZhaWwKIBtb
MDszMW1bICBGQUlMRUQgIF0gG1ttVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNl
LkRlZmluZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZhaWwKIBtbMDszMW1bICBGQUlMRUQgIF0gG1tt
RXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5UaGVyZUlzTm9Ob25mYXRhbEZhaWx1
cmUKQEAgLTk1NywxNCArMTA4NCwyMCBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhwZWN0RmF0YWxG
YWlsdXJlCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rl
c3QuRXhwZWN0Tm9uRmF0YWxGYWlsdXJlCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZh
a2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyVGVzdC5JbnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAor
G1swOzMxbVsgIEZBSUxFRCAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdEZhaWwKKxtb
MDszMW1bICBGQUlMRUQgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUxLlRlc3RCYXNlCisbWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVkCiAbWzA7MzFtWyAgRkFJ
TEVEICBdIBtbbVByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWlsaW5nUGFyYW1UZXN0LkZhaWxzLzAs
IHdoZXJlIEdldFBhcmFtKCkgPSAyCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVByaW50aW5nU3Ry
aW5ncy9QYXJhbVRlc3QuRmFpbHVyZS9hLCB3aGVyZSBHZXRQYXJhbSgpID0gImEiCisbWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJh
bWV0ZXJpemVkVGVzdFN1aXRlPE5vVGVzdHM+CisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2ds
ZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERl
dGVjdE5vdEluc3RhbnRpYXRlZFRlc3Q+CisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2dsZVRl
c3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTxE
ZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+CiAKLTUwIEZBSUxFRCBURVNUUworNTcgRkFJ
TEVEIFRFU1RTCiAbWzA7MzNtICBZT1UgSEFWRSAxIERJU0FCTEVEIFRFU1QKIAogG1ttTm90ZTog
R29vZ2xlIFRlc3QgZmlsdGVyID0gRmF0YWxGYWlsdXJlVGVzdC4qOkxvZ2dpbmdUZXN0LioKLVs9
PT09PT09PT09XSBSdW5uaW5nIDQgdGVzdHMgZnJvbSAyIHRlc3QgY2FzZXMuCitbPT09PT09PT09
PV0gUnVubmluZyA0IHRlc3RzIGZyb20gMiB0ZXN0IHN1aXRlcy4KIFstLS0tLS0tLS0tXSBHbG9i
YWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCiBbLS0tLS0tLS0tLV0gMyB0ZXN0cyBmcm9tIEZh
dGFsRmFpbHVyZVRlc3QKIFsgUlVOICAgICAgXSBGYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVy
ZUluU3Vicm91dGluZQpAQCAtMTAxNyw3ICsxMTUwLDcgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVk
KQogWy0tLS0tLS0tLS1dIDEgdGVzdCBmcm9tIExvZ2dpbmdUZXN0ICg/IG1zIHRvdGFsKQogCiBb
LS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1bPT09PT09PT09
PV0gNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcyByYW4uICg/IG1zIHRvdGFsKQorWz09PT09PT09
PT1dIDQgdGVzdHMgZnJvbSAyIHRlc3Qgc3VpdGVzIHJhbi4gKD8gbXMgdG90YWwpCiBbICBQQVNT
RUQgIF0gMCB0ZXN0cy4KIFsgIEZBSUxFRCAgXSA0IHRlc3RzLCBsaXN0ZWQgYmVsb3c6CiBbICBG
QUlMRUQgIF0gRmF0YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKQEAgLTEw
MjcsMjEgKzExNjAsMjEgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCiAgNCBGQUlMRUQgVEVT
VFMKIE5vdGU6IEdvb2dsZSBUZXN0IGZpbHRlciA9ICpESVNBQkxFRF8qCi1bPT09PT09PT09PV0g
UnVubmluZyAxIHRlc3QgZnJvbSAxIHRlc3QgY2FzZS4KK1s9PT09PT09PT09XSBSdW5uaW5nIDEg
dGVzdCBmcm9tIDEgdGVzdCBzdWl0ZS4KIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9u
bWVudCBzZXQtdXAuCiBbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gRGlzYWJsZWRUZXN0c1dhcm5p
bmdUZXN0CiBbIFJVTiAgICAgIF0gRGlzYWJsZWRUZXN0c1dhcm5pbmdUZXN0LkRJU0FCTEVEX0Fs
c29SdW5EaXNhYmxlZFRlc3RzRmxhZ1N1cHByZXNzZXNXYXJuaW5nCiBbICAgICAgIE9LIF0gRGlz
YWJsZWRUZXN0c1dhcm5pbmdUZXN0LkRJU0FCTEVEX0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZ1N1
cHByZXNzZXNXYXJuaW5nCiBbLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVh
ci1kb3duCi1bPT09PT09PT09PV0gMSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2UgcmFuLgorWz09PT09
PT09PT1dIDEgdGVzdCBmcm9tIDEgdGVzdCBzdWl0ZSByYW4uCiBbICBQQVNTRUQgIF0gMSB0ZXN0
LgogTm90ZTogR29vZ2xlIFRlc3QgZmlsdGVyID0gUGFzc2luZ1Rlc3QuKgogTm90ZTogVGhpcyBp
cyB0ZXN0IHNoYXJkIDIgb2YgMi4KLVs9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBmcm9tIDEg
dGVzdCBjYXNlLgorWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20gMSB0ZXN0IHN1aXRl
LgogWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIFstLS0tLS0t
LS0tXSAxIHRlc3QgZnJvbSBQYXNzaW5nVGVzdAogWyBSVU4gICAgICBdIFBhc3NpbmdUZXN0LlBh
c3NpbmdUZXN0MgogWyAgICAgICBPSyBdIFBhc3NpbmdUZXN0LlBhc3NpbmdUZXN0MgogWy0tLS0t
LS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgotWz09PT09PT09PT1dIDEg
dGVzdCBmcm9tIDEgdGVzdCBjYXNlIHJhbi4KK1s9PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRl
c3Qgc3VpdGUgcmFuLgogWyAgUEFTU0VEICBdIDEgdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weQppbmRleCAyZDY5
ZTM1M2ExOWUzNjk0NjUzM2JmNWY3ZTBhMmM5MjQ2ZjdkY2U3Li4wOTAyOGY2NmY5MGJmMjM4MmJi
NzhjNzliYjRlM2MzOWFkYzMwMTcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5CkBAIC0yOSw3ICsyOSw3IEBACiAj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0iIiJUZXN0cyB0aGUgdGV4dCBvdXRwdXQg
b2YgR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yay4KK3IiIiJUZXN0cyB0
aGUgdGV4dCBvdXRwdXQgb2YgR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29y
ay4KIAogVG8gdXBkYXRlIHRoZSBnb2xkZW4gZmlsZToKIGdvb2dsZXRlc3Rfb3V0cHV0X3Rlc3Qu
cHkgLS1idWlsZF9kaXI9QlVJTEQvRElSIC0tZ2VuZ29sZGVuCkBAIC01NSw3ICs1NSw2IEBAIE5P
X1NUQUNLVFJBQ0VfU1VQUE9SVF9GTEFHID0gJy0tbm9fc3RhY2t0cmFjZV9zdXBwb3J0JwogSVNf
TElOVVggPSBvcy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0xpbnV4Jwog
SVNfV0lORE9XUyA9IG9zLm5hbWUgPT0gJ250JwogCi0jIEZJWE1FOiByZW1vdmUgdGhlIF9saW4g
c3VmZml4LgogR09MREVOX05BTUUgPSAnZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGlu
LnR4dCcKIAogUFJPR1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJs
ZVBhdGgoJ2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfJykKQEAgLTI4Nyw3ICsyODYsNyBAQCBjbGFz
cyBHVGVzdE91dHB1dFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgIyBzZXF1
ZW5jZXMgd2hlbiB3ZSByZWFkIHRoZSBnb2xkZW4gZmlsZSBpcnJlc3BlY3RpdmUgb2YgYW4gb3Bl
cmF0aW5nCiAgICAgIyBzeXN0ZW0gdXNlZC4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIHN0cmlwIHRo
b3NlIFxyJ3MgZnJvbSBuZXdsaW5lcwogICAgICMgdW5jb25kaXRpb25hbGx5LgotICAgIGdvbGRl
biA9IFRvVW5peExpbmVFbmRpbmcoZ29sZGVuX2ZpbGUucmVhZCgpKQorICAgIGdvbGRlbiA9IFRv
VW5peExpbmVFbmRpbmcoZ29sZGVuX2ZpbGUucmVhZCgpLmRlY29kZSgpKQogICAgIGdvbGRlbl9m
aWxlLmNsb3NlKCkKIAogICAgICMgV2Ugd2FudCB0aGUgdGVzdCB0byBwYXNzIHJlZ2FyZGxlc3Mg
b2YgY2VydGFpbiBmZWF0dXJlcyBiZWluZwpAQCAtMzMyLDcgKzMzMSw3IEBAIGlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CiAgICAgaWYgQ0FOX0dFTkVSQVRFX0dPTERFTl9GSUxFOgogICAgICAg
b3V0cHV0ID0gR2V0T3V0cHV0T2ZBbGxDb21tYW5kcygpCiAgICAgICBnb2xkZW5fZmlsZSA9IG9w
ZW4oR09MREVOX1BBVEgsICd3YicpCi0gICAgICBnb2xkZW5fZmlsZS53cml0ZShvdXRwdXQpCisg
ICAgICBnb2xkZW5fZmlsZS53cml0ZShvdXRwdXQuZW5jb2RlKCkpCiAgICAgICBnb2xkZW5fZmls
ZS5jbG9zZSgpCiAgICAgZWxzZToKICAgICAgIG1lc3NhZ2UgPSAoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYwppbmRl
eCBmNjUyNWVjOTcwZGU1NDIxZTBlMzNiNmZmNmQyY2M2YzhkMDUxNjQ4Li45NzAwOWI1ZjZhYWRh
MTY1YTc3NjE3ZTM5M2E5MzEwMjUxNWExOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MKQEAgLTkyLDkgKzky
LDE3IEBAIFRFU1RfUChGYWlsaW5nUGFyYW1UZXN0LCBGYWlscykgewogCiAvLyBUaGlzIGdlbmVy
YXRlcyBhIHRlc3Qgd2hpY2ggd2lsbCBmYWlsLiBHb29nbGUgVGVzdCBpcyBleHBlY3RlZCB0byBw
cmludAogLy8gaXRzIHBhcmFtZXRlciB3aGVuIGl0IG91dHB1dHMgdGhlIGxpc3Qgb2YgYWxsIGZh
aWxlZCB0ZXN0cy4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50aW5nRmFpbGluZ1BhcmFt
cywKLSAgICAgICAgICAgICAgICAgICAgICAgIEZhaWxpbmdQYXJhbVRlc3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKFByaW50aW5nRmFpbGluZ1BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBGYWls
aW5nUGFyYW1UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcygy
KSk7CisKKy8vIFRlc3RzIHRoYXQgYW4gZW1wdHkgdmFsdWUgZm9yIHRoZSB0ZXN0IHN1aXRlIGJh
c2VuYW1lIHlpZWxkcyBqdXN0CisvLyB0aGUgdGVzdCBuYW1lIHdpdGhvdXQgYW55IHByaW9yIC8K
K2NsYXNzIEVtcHR5QmFzZW5hbWVQYXJhbUluc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQ
YXJhbTxpbnQ+IHt9OworCitURVNUX1AoRW1wdHlCYXNlbmFtZVBhcmFtSW5zdCwgUGFzc2VzKSB7
IEVYUEVDVF9FUSgxLCBHZXRQYXJhbSgpKTsgfQorCitJTlNUQU5USUFURV9URVNUX1NVSVRFX1Ao
LCBFbXB0eUJhc2VuYW1lUGFyYW1JbnN0LCB0ZXN0aW5nOjpWYWx1ZXMoMSkpOwogCiBzdGF0aWMg
Y29uc3QgY2hhciBrR29sZGVuU3RyaW5nW10gPSAiXCJMaW5lXDAgMVwiXG5MaW5lIDIiOwogCkBA
IC0xNzQsNyArMTgyLDcgQEAgVEVTVChTQ09QRURfVFJBQ0VUZXN0LCBBY2NlcHRlZFZhbHVlcykg
ewogICBTQ09QRURfVFJBQ0UoImxpdGVyYWwgc3RyaW5nIik7CiAgIFNDT1BFRF9UUkFDRShzdGQ6
OnN0cmluZygic3RkOjpzdHJpbmciKSk7CiAgIFNDT1BFRF9UUkFDRSgxMzM3KTsgIC8vIHN0cmVh
bWFibGUgdHlwZQotICBjb25zdCBjaGFyKiBudWxsX3ZhbHVlID0gTlVMTDsKKyAgY29uc3QgY2hh
ciogbnVsbF92YWx1ZSA9IG51bGxwdHI7CiAgIFNDT1BFRF9UUkFDRShudWxsX3ZhbHVlKTsKIAog
ICBBRERfRkFJTFVSRSgpIDw8ICJKdXN0IGNoZWNraW5nIHRoYXQgYWxsIHRoZXNlIHZhbHVlcyB3
b3JrIGZpbmUuIjsKQEAgLTMwNiw5ICszMTQsOCBAQCBURVNUKFNDT1BFRF9UUkFDRVRlc3QsIFdv
cmtzQ29uY3VycmVudGx5KSB7CiAgIHByaW50ZigiKGV4cGVjdGluZyA2IGZhaWx1cmVzKVxuIik7
CiAKICAgQ2hlY2tQb2ludHMgY2hlY2tfcG9pbnRzOwotICBUaHJlYWRXaXRoUGFyYW08Q2hlY2tQ
b2ludHMqPiB0aHJlYWQoJlRocmVhZFdpdGhTY29wZWRUcmFjZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZjaGVja19wb2ludHMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPENoZWNrUG9pbnRz
Kj4gdGhyZWFkKCZUaHJlYWRXaXRoU2NvcGVkVHJhY2UsICZjaGVja19wb2ludHMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAgY2hlY2tfcG9pbnRz
Lm4xLldhaXRGb3JOb3RpZmljYXRpb24oKTsKIAogICB7CkBAIC0zNjUsMTUgKzM3MiwxMyBAQCBj
bGFzcyBOb25GYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwg
aW4gdGhlIHRlc3QgZml4dHVyZSBjJ3Rvci4iOwogICB9CiAKLSAgfk5vbkZhdGFsRmFpbHVyZUlu
Rml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIHsKKyAgfk5vbkZhdGFsRmFpbHVyZUluRml4dHVyZUNv
bnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3Rl
ZCBmYWlsdXJlICM1LCBpbiB0aGUgdGVzdCBmaXh0dXJlIGQndG9yLiI7CiAgIH0KIAotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZSAjMiwgaW4gU2V0VXAoKS4iOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IEFERF9G
QUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIFNldFVwKCkuIjsgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICM0LCBpbiBUZWFyRG93bi4iOwog
ICB9CiB9OwpAQCAtMzkwLDE3ICszOTUsMTcgQEAgY2xhc3MgRmF0YWxGYWlsdXJlSW5GaXh0dXJl
Q29uc3RydWN0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIEluaXQoKTsKICAg
fQogCi0gIH5GYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QoKSB7CisgIH5GYXRh
bEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QoKSBvdmVycmlkZSB7CiAgICAgQUREX0ZB
SUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rv
ci4iOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3Zl
cnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIlVORVhQRUNURUQgZmFpbHVyZSBpbiBTZXRV
cCgpLiAgIgogICAgICAgICAgICAgICAgICAgPDwgIldlIHNob3VsZCBuZXZlciBnZXQgaGVyZSwg
YXMgdGhlIHRlc3QgZml4dHVyZSBjJ3RvciAiCiAgICAgICAgICAgICAgICAgICA8PCAiaGFkIGEg
ZmF0YWwgZmFpbHVyZS4iOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2
b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIlVORVhQRUNU
RUQgZmFpbHVyZSBpbiBUZWFyRG93bigpLiAgIgogICAgICAgICAgICAgICAgICAgPDwgIldlIHNo
b3VsZCBuZXZlciBnZXQgaGVyZSwgYXMgdGhlIHRlc3QgZml4dHVyZSBjJ3RvciAiCiAgICAgICAg
ICAgICAgICAgICA8PCAiaGFkIGEgZmF0YWwgZmFpbHVyZS4iOwpAQCAtNDIxLDE4ICs0MjYsMTUg
QEAgVEVTVF9GKEZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCwgRmFpbHVyZUlu
Q29uc3RydWN0b3IpIHsKIC8vIFRlc3RzIG5vbi1mYXRhbCBmYWlsdXJlcyBpbiBTZXRVcCgpLgog
Y2xhc3MgTm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIH5Ob25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIHsK
LSAgICBEZWluaXQoKTsKLSAgfQorICB+Tm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSBvdmVy
cmlkZSB7IERlaW5pdCgpOyB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiKGV4cGVjdGluZyA0IGZhaWx1cmVzKVxuIik7
CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwgaW4gU2V0VXAoKS4i
OwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIEZBSUwoKSA8PCAiRXhw
ZWN0ZWQgZmFpbHVyZSAjMywgaW4gVGVhckRvd24oKS4iOwotICB9CisgIHZvaWQgVGVhckRvd24o
KSBvdmVycmlkZSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMywgaW4gVGVhckRvd24o
KS4iOyB9CisKICBwcml2YXRlOgogICB2b2lkIERlaW5pdCgpIHsKICAgICBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUgIzQsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKQEAgLTQ0Niwx
OCArNDQ4LDE1IEBAIFRFU1RfRihOb25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCwgRmFpbHVyZUlu
U2V0VXApIHsKIC8vIFRlc3RzIGZhdGFsIGZhaWx1cmVzIGluIFNldFVwKCkuCiBjbGFzcyBGYXRh
bEZhaWx1cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6
Ci0gIHZpcnR1YWwgfkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgewotICAgIERlaW5pdCgpOwot
ICB9CisgIH5GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIG92ZXJyaWRlIHsgRGVpbml0KCk7IH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAg
ICAgcHJpbnRmKCIoZXhwZWN0aW5nIDMgZmFpbHVyZXMpXG4iKTsKICAgICBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUgIzEsIGluIFNldFVwKCkuIjsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBU
ZWFyRG93bigpIHsKLSAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIFRlYXJE
b3duKCkuIjsKLSAgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUgIzIsIGluIFRlYXJEb3duKCkuIjsgfQorCiAgcHJpdmF0ZToKICAgdm9p
ZCBEZWluaXQoKSB7CiAgICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiB0aGUg
dGVzdCBmaXh0dXJlIGQndG9yLiI7CkBAIC00NzAsMTA5ICs0NjksNTUgQEAgVEVTVF9GKEZhdGFs
RmFpbHVyZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewogfQogCiBURVNUKEFkZEZhaWx1
cmVBdFRlc3QsIE1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyKSB7Ci0g
IEFERF9GQUlMVVJFX0FUKCJmb28uY2MiLCA0MikgPDwgIkV4cGVjdGVkIGZhaWx1cmUgaW4gZm9v
LmNjIjsKLX0KLQotI2lmIEdURVNUX0lTX1RIUkVBRFNBRkUKLQotLy8gQSB1bmFyeSBmdW5jdGlv
biB0aGF0IG1heSBkaWUuCi12b2lkIERpZUlmKGJvb2wgc2hvdWxkX2RpZSkgewotICBHVEVTVF9D
SEVDS18oIXNob3VsZF9kaWUpIDw8ICIgLSBkZWF0aCBpbnNpZGUgRGllSWYoKS4iOworICBBRERf
RkFJTFVSRV9BVCgiZm9vLmNjIiwgNDIpIDw8ICJFeHBlY3RlZCBub25mYXRhbCBmYWlsdXJlIGlu
IGZvby5jYyI7CiB9CiAKLS8vIFRlc3RzIHJ1bm5pbmcgZGVhdGggdGVzdHMgaW4gYSBtdWx0aS10
aHJlYWRlZCBjb250ZXh0LgotCi0vLyBVc2VkIGZvciBjb29yZGluYXRpb24gYmV0d2VlbiB0aGUg
bWFpbiBhbmQgdGhlIHNwYXduIHRocmVhZC4KLXN0cnVjdCBTcGF3blRocmVhZE5vdGlmaWNhdGlv
bnMgewotICBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMoKSB7fQotCi0gIE5vdGlmaWNhdGlvbiBz
cGF3bl90aHJlYWRfc3RhcnRlZDsKLSAgTm90aWZpY2F0aW9uIHNwYXduX3RocmVhZF9va190b190
ZXJtaW5hdGU7Ci0KLSBwcml2YXRlOgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyk7Ci19OwotCi0vLyBUaGUgZnVuY3Rpb24gdG8gYmUg
ZXhlY3V0ZWQgaW4gdGhlIHRocmVhZCBzcGF3biBieSB0aGUKLS8vIE11bHRpcGxlVGhyZWFkcyB0
ZXN0IChiZWxvdykuCi1zdGF0aWMgdm9pZCBUaHJlYWRSb3V0aW5lKFNwYXduVGhyZWFkTm90aWZp
Y2F0aW9ucyogbm90aWZpY2F0aW9ucykgewotICAvLyBTaWduYWxzIHRoZSBtYWluIHRocmVhZCB0
aGF0IHRoaXMgdGhyZWFkIGhhcyBzdGFydGVkLgotICBub3RpZmljYXRpb25zLT5zcGF3bl90aHJl
YWRfc3RhcnRlZC5Ob3RpZnkoKTsKLQotICAvLyBXYWl0cyBmb3IgcGVybWlzc2lvbiB0byBmaW5p
c2ggZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi0gIG5vdGlmaWNhdGlvbnMtPnNwYXduX3RocmVhZF9v
a190b190ZXJtaW5hdGUuV2FpdEZvck5vdGlmaWNhdGlvbigpOworVEVTVChHdGVzdEZhaWxBdFRl
c3QsIE1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyKSB7CisgIEdURVNU
X0ZBSUxfQVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSBpbiBmb28u
Y2MiOwogfQogCi0vLyBUaGlzIGlzIGEgZGVhdGgtdGVzdCB0ZXN0LCBidXQgaXQncyBub3QgbmFt
ZWQgd2l0aCBhIERlYXRoVGVzdAotLy8gc3VmZml4LiAgSXQgc3RhcnRzIHRocmVhZHMgd2hpY2gg
bWlnaHQgaW50ZXJmZXJlIHdpdGggbGF0ZXIKLS8vIGRlYXRoIHRlc3RzLCBzbyBpdCBtdXN0IHJ1
biBhZnRlciBhbGwgb3RoZXIgZGVhdGggdGVzdHMuCi1jbGFzcyBEZWF0aFRlc3RBbmRNdWx0aVRo
cmVhZHNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gU3Rh
cnRzIGEgdGhyZWFkIGFuZCB3YWl0cyBmb3IgaXQgdG8gYmVnaW4uCi0gIHZpcnR1YWwgdm9pZCBT
ZXRVcCgpIHsKLSAgICB0aHJlYWRfLnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08U3Bhd25UaHJl
YWROb3RpZmljYXRpb25zKj4oCi0gICAgICAgICZUaHJlYWRSb3V0aW5lLCAmbm90aWZpY2F0aW9u
c18sIE5VTEwpKTsKLSAgICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJlYWRfc3RhcnRlZC5XYWl0
Rm9yTm90aWZpY2F0aW9uKCk7Ci0gIH0KLSAgLy8gVGVsbHMgdGhlIHRocmVhZCB0byBmaW5pc2gs
IGFuZCByZWFwcyBpdC4KLSAgLy8gRGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSB0aHJl
YWQgbGlicmFyeSBpbiB1c2UsCi0gIC8vIGEgbWFuYWdlciB0aHJlYWQgbWlnaHQgc3RpbGwgYmUg
bGVmdCBydW5uaW5nIHRoYXQgd2lsbCBpbnRlcmZlcmUKLSAgLy8gd2l0aCBsYXRlciBkZWF0aCB0
ZXN0cy4gIFRoaXMgaXMgdW5mb3J0dW5hdGUsIGJ1dCB0aGlzIGNsYXNzCi0gIC8vIGNsZWFucyB1
cCBhZnRlciBpdHNlbGYgYXMgYmVzdCBpdCBjYW4uCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigp
IHsKLSAgICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJlYWRfb2tfdG9fdGVybWluYXRlLk5vdGlm
eSgpOwotICB9Ci0KLSBwcml2YXRlOgotICBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMgbm90aWZp
Y2F0aW9uc187Ci0gIHRlc3Rpbmc6OmludGVybmFsOjpzY29wZWRfcHRyPFRocmVhZFdpdGhQYXJh
bTxTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMqPiA+Ci0gICAgICB0aHJlYWRfOwotfTsKLQotI2Vu
ZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCi0KLS8vIFRoZSBNaXhlZFVwVGVzdENhc2VUZXN0
IHRlc3QgY2FzZSB2ZXJpZmllcyB0aGF0IEdvb2dsZSBUZXN0IHdpbGwgZmFpbCBhCisvLyBUaGUg
TWl4ZWRVcFRlc3RTdWl0ZVRlc3QgdGVzdCBjYXNlIHZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3Qg
d2lsbCBmYWlsIGEKIC8vIHRlc3QgaWYgaXQgdXNlcyBhIGRpZmZlcmVudCBmaXh0dXJlIGNsYXNz
IHRoYW4gd2hhdCBvdGhlciB0ZXN0cyBpbgogLy8gdGhlIHNhbWUgdGVzdCBjYXNlIHVzZS4gIEl0
IGRlbGliZXJhdGVseSBjb250YWlucyB0d28gZml4dHVyZQogLy8gY2xhc3NlcyB3aXRoIHRoZSBz
YW1lIG5hbWUgYnV0IGRlZmluZWQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuCiAKLS8vIFRoZSBN
aXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCB0ZXN0IGNhc2UgdmVyaWZpZXMgdGhh
dAorLy8gVGhlIE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCB0ZXN0IGNhc2Ug
dmVyaWZpZXMgdGhhdAogLy8gd2hlbiB0aGUgdXNlciBkZWZpbmVzIHR3byB0ZXN0cyB3aXRoIHRo
ZSBzYW1lIHRlc3QgY2FzZSBuYW1lIEFORAogLy8gc2FtZSB0ZXN0IG5hbWUgKGJ1dCBpbiBkaWZm
ZXJlbnQgbmFtZXNwYWNlcyksIHRoZSBzZWNvbmQgdGVzdCB3aWxsCiAvLyBmYWlsLgogCiBuYW1l
c3BhY2UgZm9vIHsKIAotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKK2NsYXNzIE1peGVkVXBUZXN0U3VpdGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewogfTsKIAotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVRlc3QsIEZpcnN0VGVzdEZyb21OYW1l
c3BhY2VGb28pIHt9Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgU2Vjb25kVGVzdEZyb21O
YW1lc3BhY2VGb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIEZpcnN0VGVzdEZy
b21OYW1lc3BhY2VGb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIFNlY29uZFRl
c3RGcm9tTmFtZXNwYWNlRm9vKSB7fQogCi1jbGFzcyBNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRl
c3ROYW1lVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNzIE1peGVkVXBUZXN0U3Vp
dGVXaXRoU2FtZVRlc3ROYW1lVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKLVRF
U1RfRihNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCwKK1RFU1RfRihNaXhlZFVw
VGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCiAgICAgICAgVGhlU2Vjb25kVGVzdFdpdGhU
aGlzTmFtZVNob3VsZEZhaWwpIHt9CiAKIH0gIC8vIG5hbWVzcGFjZSBmb28KIAogbmFtZXNwYWNl
IGJhciB7CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7CitjbGFzcyBNaXhlZFVwVGVzdFN1aXRlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
IH07CiAKIC8vIFRoZSBmb2xsb3dpbmcgdHdvIHRlc3RzIGFyZSBleHBlY3RlZCB0byBmYWlsLiAg
V2UgcmVseSBvbiB0aGUKIC8vIGdvbGRlbiBmaWxlIHRvIGNoZWNrIHRoYXQgR29vZ2xlIFRlc3Qg
Z2VuZXJhdGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVTVF9GKE1peGVkVXBUZXN0Q2Fz
ZVRlc3QsIFRoaXNTaG91bGRGYWlsKSB7fQotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVRlc3QsIFRo
aXNTaG91bGRGYWlsVG9vKSB7fQorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVUZXN0LCBUaGlzU2hv
dWxkRmFpbCkge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgVGhpc1Nob3VsZEZhaWxU
b28pIHt9CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgeworY2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5h
bWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogLy8gRXhwZWN0ZWQgdG8gZmFp
bC4gIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIGNoZWNrIHRoYXQgR29vZ2xlIFRlc3QK
IC8vIGdlbmVyYXRlcyB0aGUgcmlnaHQgZXJyb3IgbWVzc2FnZS4KLVRFU1RfRihNaXhlZFVwVGVz
dENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCwKK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlV2l0aFNh
bWVUZXN0TmFtZVRlc3QsCiAgICAgICAgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZh
aWwpIHt9CiAKIH0gIC8vIG5hbWVzcGFjZSBiYXIKQEAgLTc4MywxOSArNzI4LDI3IEBAIFRFU1Rf
UChQYXJhbVRlc3QsIEZhaWx1cmUpIHsKICAgRVhQRUNUX0VRKCJiIiwgR2V0UGFyYW0oKSkgPDwg
IkV4cGVjdGVkIGZhaWx1cmUiOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChQcmludGlu
Z1N0cmluZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICBQYXJhbVRlc3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoc3RkOjpzdHJpbmcoImEiKSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICBQYXJhbU5hbWVGdW5jKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVf
UChQcmludGluZ1N0cmluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1UZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcyhzdGQ6OnN0cmluZygiYSIp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVGdW5jKTsKIAotLy8gVGhpcyAj
aWZkZWYgYmxvY2sgdGVzdHMgdGhlIG91dHB1dCBvZiB0eXBlZCB0ZXN0cy4KLSNpZiBHVEVTVF9I
QVNfVFlQRURfVEVTVAorLy8gVGhlIGNhc2Ugd2hlcmUgYSBzdWl0ZSBoYXMgSU5TVEFOVElBVEVf
VEVTVF9TVUlURV9QIGJ1dCBub3QgVEVTVF9QLgordXNpbmcgTm9UZXN0cyA9IFBhcmFtVGVzdDsK
K0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChUaGlzSXNPZGQsIE5vVGVzdHMsIDo6dGVzdGluZzo6
VmFsdWVzKCJIZWxsbyIpKTsKKworLy8gZmFpbHMgdW5kZXIga0Vycm9yT25Vbmluc3RhbnRpYXRl
ZFBhcmFtZXRlcml6ZWRUZXN0PXRydWUKK2NsYXNzIERldGVjdE5vdEluc3RhbnRpYXRlZFRlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworVEVTVF9QKERldGVjdE5v
dEluc3RhbnRpYXRlZFRlc3QsIFVzZWQpIHsgfQorCisvLyBUaGlzIHdvdWxkIG1ha2UgdGhlIHRl
c3QgZmFpbHVyZSBmcm9tIHRoZSBhYm92ZSBnbyBhd2F5LgorLy8gSU5TVEFOVElBVEVfVEVTVF9T
VUlURV9QKEZpeCwgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCwgdGVzdGluZzo6VmFsdWVzKDEp
KTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0LCB0ZXN0aW5nOjpU
eXBlczxpbnQ+KTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCB0ZXN0aW5nOjpUeXBlczxp
bnQ+KTsKIAogVFlQRURfVEVTVChUeXBlZFRlc3QsIFN1Y2Nlc3MpIHsKICAgRVhQRUNUX0VRKDAs
IFR5cGVQYXJhbSgpKTsKQEAgLTgxNCwyOSArNzY3LDI0IEBAIGNsYXNzIFR5cGVkVGVzdE5hbWVz
IHsKICBwdWJsaWM6CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICBzdGF0aWMgc3RkOjpzdHJp
bmcgR2V0TmFtZShpbnQgaSkgewotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQs
IGNoYXI+Ojp2YWx1ZSkKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkKICAg
ICAgIHJldHVybiBzdGQ6OnN0cmluZygiY2hhciIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5n
KGkpOwotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGludD46OnZhbHVlKQor
ICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgaW50Pjo6dmFsdWUpCiAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoImludCIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICB9CiB9OwogCi1U
WVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0V2l0aE5hbWVzLCBUeXBlc0ZvclRlc3RXaXRoTmFtZXMs
IFR5cGVkVGVzdE5hbWVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0V2l0aE5hbWVzLCBU
eXBlc0ZvclRlc3RXaXRoTmFtZXMsIFR5cGVkVGVzdE5hbWVzKTsKIAogVFlQRURfVEVTVChUeXBl
ZFRlc3RXaXRoTmFtZXMsIFN1Y2Nlc3MpIHt9CiAKIFRZUEVEX1RFU1QoVHlwZWRUZXN0V2l0aE5h
bWVzLCBGYWlsdXJlKSB7IEZBSUwoKTsgfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9U
RVNUCi0KLS8vIFRoaXMgI2lmZGVmIGJsb2NrIHRlc3RzIHRoZSBvdXRwdXQgb2YgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQIDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
fTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7CitUWVBFRF9URVNUX1NVSVRFX1Ao
VHlwZWRUZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQLCBTdWNjZXNzKSB7CiAgIEVY
UEVDVF9FUSgwVSwgVHlwZVBhcmFtKCkpOwpAQCAtODQ2LDI4ICs3OTQsNDEgQEAgVFlQRURfVEVT
VF9QKFR5cGVkVGVzdFAsIEZhaWx1cmUpIHsKICAgRVhQRUNUX0VRKDFVLCBUeXBlUGFyYW0oKSkg
PDwgIkV4cGVjdGVkIGZhaWx1cmUiOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChU
eXBlZFRlc3RQLCBTdWNjZXNzLCBGYWlsdXJlKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVf
UChUeXBlZFRlc3RQLCBTdWNjZXNzLCBGYWlsdXJlKTsKIAogdHlwZWRlZiB0ZXN0aW5nOjpUeXBl
czx1bnNpZ25lZCBjaGFyLCB1bnNpZ25lZCBpbnQ+IFVuc2lnbmVkVHlwZXM7Ci1JTlNUQU5USUFU
RV9UWVBFRF9URVNUX0NBU0VfUChVbnNpZ25lZCwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBlcyk7
CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVW5zaWduZWQsIFR5cGVkVGVzdFAsIFVu
c2lnbmVkVHlwZXMpOwogCiBjbGFzcyBUeXBlZFRlc3RQTmFtZXMgewogIHB1YmxpYzoKICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1lKGludCBpKSB7
Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgdW5zaWduZWQgY2hhcj46OnZh
bHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCB1bnNpZ25lZCBjaGFyPjo6dmFsdWUpIHsK
ICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygidW5zaWduZWRDaGFyIikgKyA6OnRlc3Rpbmc6OlBy
aW50VG9TdHJpbmcoaSk7CiAgICAgfQotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1l
PFQsIHVuc2lnbmVkIGludD46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCB1bnNp
Z25lZCBpbnQ+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJ1bnNpZ25lZElu
dCIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0KICAgfQogfTsKIAotSU5T
VEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoVW5zaWduZWRDdXN0b21OYW1lLCBUeXBlZFRlc3RQ
LCBVbnNpZ25lZFR5cGVzLAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKFVuc2lnbmVk
Q3VzdG9tTmFtZSwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBlcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFR5cGVkVGVzdFBOYW1lcyk7CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZ
UEVEX1RFU1RfUAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBEZXRlY3ROb3RJbnN0YW50
aWF0ZWRUeXBlc1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJ
VEVfUChEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3QpOworVFlQRURfVEVTVF9QKERldGVj
dE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCwgVXNlZCkgeworICBUeXBlUGFyYW0gaW5zdGFudGlh
dGU7CisgICh2b2lkKWluc3RhbnRpYXRlOworfQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9Q
KERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCwgVXNlZCk7CisKKy8vIGtFcnJvck9uVW5p
bnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3Q9dHJ1ZSB3b3VsZCBtYWtlIHRoZSBhYm92
ZSBmYWlsLgorLy8gQWRkaW5nIHRoZSBmb2xsb3dpbmcgd291bGQgbWFrZSB0aGF0IHRlc3QgZmFp
bHVyZSBnbyBhd2F5LgorLy8KKy8vIHR5cGVkZWYgOjp0ZXN0aW5nOjpUeXBlczxjaGFyLCBpbnQs
IHVuc2lnbmVkIGludD4gTXlUeXBlczsKKy8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVf
UChBbGwsIERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCwgTXlUeXBlcyk7CiAKICNpZiBH
VEVTVF9IQVNfREVBVEhfVEVTVAogCkBAIC04NzcsOCArODM4LDYgQEAgSU5TVEFOVElBVEVfVFlQ
RURfVEVTVF9DQVNFX1AoVW5zaWduZWRDdXN0b21OYW1lLCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5
cGVzLAogVEVTVChBRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCkgewogfQogCi0jIGlmIEdURVNU
X0hBU19UWVBFRF9URVNUCi0KIC8vIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIHZlcmlm
eSB0aGF0IHR5cGVkIHRlc3RzIHdob3NlIHRlc3QKIC8vIGNhc2UgbmFtZSBlbmRzIHdpdGggRGVh
dGhUZXN0IGFyZSBydW4gZmlyc3QuCiAKQEAgLTg4NywxNSArODQ2LDExIEBAIGNsYXNzIEFUeXBl
ZERlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKIHR5cGVkZWYgdGVzdGlu
Zzo6VHlwZXM8aW50LCBkb3VibGU+IE51bWVyaWNUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShBVHlw
ZWREZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKEFUeXBlZERlYXRo
VGVzdCwgTnVtZXJpY1R5cGVzKTsKIAogVFlQRURfVEVTVChBVHlwZWREZWF0aFRlc3QsIFNob3Vs
ZFJ1bkZpcnN0KSB7CiB9CiAKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLSMg
aWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiAKIC8vIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBm
aWxlIHRvIHZlcmlmeSB0aGF0IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cwogLy8gd2hvc2UgdGVz
dCBjYXNlIG5hbWUgZW5kcyB3aXRoIERlYXRoVGVzdCBhcmUgcnVuIGZpcnN0LgpAQCAtOTA0LDE2
ICs4NTksMTQgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBBVHlwZVBhcmFtRGVhdGhU
ZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoQVR5
cGVQYXJhbURlYXRoVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQVR5cGVQYXJhbURlYXRoVGVz
dCk7CiAKIFRZUEVEX1RFU1RfUChBVHlwZVBhcmFtRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCkg
ewogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChBVHlwZVBhcmFtRGVhdGhUZXN0LCBT
aG91bGRSdW5GaXJzdCk7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBBVHlw
ZVBhcmFtRGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlU
RV9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KTsKIAotIyBlbmRpZiAgLy8g
R1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15
LCBBVHlwZVBhcmFtRGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOwogCiAjZW5kaWYgIC8vIEdURVNU
X0hBU19ERUFUSF9URVNUCiAKQEAgLTk2Niw3ICs5MTksNyBAQCBURVNUX0YoRXhwZWN0RmFpbHVy
ZVRlc3QsIEV4cGVjdE5vbkZhdGFsRmFpbHVyZSkgewogY2xhc3MgRXhwZWN0RmFpbHVyZVdpdGhU
aHJlYWRzVGVzdCA6IHB1YmxpYyBFeHBlY3RGYWlsdXJlVGVzdCB7CiAgcHJvdGVjdGVkOgogICBz
dGF0aWMgdm9pZCBBZGRGYWlsdXJlSW5PdGhlclRocmVhZChGYWlsdXJlTW9kZSBmYWlsdXJlKSB7
Ci0gICAgVGhyZWFkV2l0aFBhcmFtPEZhaWx1cmVNb2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUsIGZh
aWx1cmUsIE5VTEwpOworICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZB
ZGRGYWlsdXJlLCBmYWlsdXJlLCBudWxscHRyKTsKICAgICB0aHJlYWQuSm9pbigpOwogICB9CiB9
OwpAQCAtMTAzNCwxNiArOTg3LDY0IEBAIFRFU1RfRihFeHBlY3RGYWlsdXJlVGVzdCwgRXhwZWN0
Tm9uRmF0YWxGYWlsdXJlT25BbGxUaHJlYWRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJTb21lIG90aGVyIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQogCitj
bGFzcyBEeW5hbWljRml4dHVyZSA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKKyBwcm90ZWN0ZWQ6
CisgIER5bmFtaWNGaXh0dXJlKCkgeyBwcmludGYoIkR5bmFtaWNGaXh0dXJlKClcbiIpOyB9Cisg
IH5EeW5hbWljRml4dHVyZSgpIG92ZXJyaWRlIHsgcHJpbnRmKCJ+RHluYW1pY0ZpeHR1cmUoKVxu
Iik7IH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgcHJpbnRmKCJEeW5hbWljRml4dHVyZTo6
U2V0VXBcbiIpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IHByaW50ZigiRHluYW1p
Y0ZpeHR1cmU6OlRlYXJEb3duXG4iKTsgfQorCisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRl
KCkgeyBwcmludGYoIkR5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZVxuIik7IH0KKyAgc3Rh
dGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgcHJpbnRmKCJEeW5hbWljRml4dHVy
ZTo6VGVhckRvd25UZXN0U3VpdGVcbiIpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBQYXNz
PgorY2xhc3MgRHluYW1pY1Rlc3QgOiBwdWJsaWMgRHluYW1pY0ZpeHR1cmUgeworIHB1YmxpYzoK
KyAgdm9pZCBUZXN0Qm9keSgpIG92ZXJyaWRlIHsgRVhQRUNUX1RSVUUoUGFzcyk7IH0KK307CisK
K2F1dG8gZHluYW1pY190ZXN0ID0gKAorICAgIC8vIFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRo
ZSBzYW1lIGZpeHR1cmUgY29ycmVjdGx5LgorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAg
ICAgICAgIkR5bmFtaWNGaXh0dXJlIiwgIkR5bmFtaWNUZXN0UGFzcyIsIG51bGxwdHIsIG51bGxw
dHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5hbWljRml4dHVyZSog
eyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKyAgICB0ZXN0aW5nOjpSZWdpc3Rl
clRlc3QoCisgICAgICAgICJEeW5hbWljRml4dHVyZSIsICJEeW5hbWljVGVzdEZhaWwiLCBudWxs
cHRyLCBudWxscHRyLCBfX0ZJTEVfXywKKyAgICAgICAgX19MSU5FX18sIFtdKCkgLT4gRHluYW1p
Y0ZpeHR1cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVzdDxmYWxzZT47IH0pLAorCisgICAgLy8g
UmVnaXN0ZXIgdGhlIHNhbWUgZml4dHVyZSB3aXRoIGFub3RoZXIgbmFtZS4gVGhhdCdzIGZpbmUu
CisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KAorICAgICAgICAiRHluYW1pY0ZpeHR1cmVBbm90
aGVyTmFtZSIsICJEeW5hbWljVGVzdFBhc3MiLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICBf
X0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgIFtdKCkgLT4gRHluYW1pY0ZpeHR1cmUqIHsgcmV0
dXJuIG5ldyBEeW5hbWljVGVzdDx0cnVlPjsgfSksCisKKyAgICAvLyBSZWdpc3RlciB0d28gdGVz
dHMgd2l0aCB0aGUgc2FtZSBmaXh0dXJlIGluY29ycmVjdGx5LgorICAgIHRlc3Rpbmc6OlJlZ2lz
dGVyVGVzdCgKKyAgICAgICAgIkJhZER5bmFtaWNGaXh0dXJlMSIsICJGaXh0dXJlQmFzZSIsIG51
bGxwdHIsIG51bGxwdHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5h
bWljRml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKyAgICB0ZXN0
aW5nOjpSZWdpc3RlclRlc3QoCisgICAgICAgICJCYWREeW5hbWljRml4dHVyZTEiLCAiVGVzdEJh
c2UiLCBudWxscHRyLCBudWxscHRyLCBfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgIFtdKCkg
LT4gdGVzdGluZzo6VGVzdCogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKwor
ICAgIC8vIFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1lIGZpeHR1cmUgaW5jb3JyZWN0
bHkgYnkgb21taXRpbmcgdGhlCisgICAgLy8gcmV0dXJuIHR5cGUuCisgICAgdGVzdGluZzo6UmVn
aXN0ZXJUZXN0KAorICAgICAgICAiQmFkRHluYW1pY0ZpeHR1cmUyIiwgIkZpeHR1cmVCYXNlIiwg
bnVsbHB0ciwgbnVsbHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5
bmFtaWNGaXh0dXJlKiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRl
c3Rpbmc6OlJlZ2lzdGVyVGVzdCgiQmFkRHluYW1pY0ZpeHR1cmUyIiwgIkRlcml2ZWQiLCBudWxs
cHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5F
X18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKCkgeyByZXR1cm4gbmV3IER5bmFtaWNU
ZXN0PHRydWU+OyB9KSk7CiAKIC8vIFR3byB0ZXN0IGVudmlyb25tZW50cyBmb3IgdGVzdGluZyB0
ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKS4KIAogY2xhc3MgRm9vRW52aXJvbm1l
bnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogIHB1YmxpYzoKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgewotICAgIHByaW50ZigiJXMiLCAiRm9vRW52aXJvbm1lbnQ6OlNldFVwKCkg
Y2FsbGVkLlxuIik7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgcHJpbnRmKCIlcyIs
ICJGb29FbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuXG4iKTsgfQogCi0gIHZpcnR1YWwgdm9p
ZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBwcmludGYo
IiVzIiwgIkZvb0Vudmlyb25tZW50OjpUZWFyRG93bigpIGNhbGxlZC5cbiIpOwogICAgIEZBSUwo
KSA8PCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iOwogICB9CkBAIC0xMDUxLDExICsxMDUyLDkg
QEAgY2xhc3MgRm9vRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewog
CiBjbGFzcyBCYXJFbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAg
cHVibGljOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgcHJpbnRmKCIlcyIsICJCYXJF
bnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuXG4iKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3Zl
cnJpZGUgeyBwcmludGYoIiVzIiwgIkJhckVudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIp
OyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3Zl
cnJpZGUgewogICAgIHByaW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgY2Fs
bGVkLlxuIik7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1
cmUuIjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8u
Y2MKaW5kZXggNWE5NTE1NWIyM2E3ODcxZGI1ZDI1NDlhMGU5ZjkwNTA3NWE5Mzk5NC4uOTU1ZDY5
OTkwMGQ4Y2Q4ZWIxOWIyNTFkMzVkNmQ1ZjdlZTgyZTYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10
ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFy
YW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjCkBAIC0zNiwxMCArMzYsMTAgQEAgY2xhc3Mg
RHVtbXlUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxjb25zdCBjaGFyICo+
IHt9OwogVEVTVF9QKER1bW15VGVzdCwgRHVtbXkpIHsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoSW52YWxpZFRlc3ROYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoIkludmFsaWRXaXRo
UXVvdGVzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmdQYXJhbU5hbWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoSW52YWxpZFRlc3ROYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgIER1bW15VGVzdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcygiSW52YWxpZFdpdGhRdW90ZXMiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7CiAK
IH0gIC8vIG5hbWVzcGFjZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1l
Mi10ZXN0Xy5jYwppbmRleCBlZjA5MzQ5MGU5ZGEyZjAyZWQyOGEyZDA3MTI0NDVlMjQxN2NiZGEz
Li43NjM3MWRmNTRmMGIzZTJmMjc3MzY0ZGQ4YTIyZDAyODIzYzJlZWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlk
LW5hbWUyLXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVzdF8uY2MKQEAgLTQxLDEwICs0MSwxMCBA
QCBzdGQ6OnN0cmluZyBTdHJpbmdQYXJhbVRlc3RTdWZmaXgoCiBURVNUX1AoRHVtbXlUZXN0LCBE
dW1teSkgewogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChEdXBsaWNhdGVUZXN0TmFtZXMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICA6OnRlc3Rpbmc6OlZhbHVlcygiYSIsICJiIiwgImEiLCAiYyIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgU3RyaW5nUGFyYW1UZXN0U3VmZml4KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUChEdXBsaWNhdGVUZXN0TmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlU
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKCJhIiwgImIi
LCAiYSIsICJjIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUGFyYW1UZXN0U3Vm
Zml4KTsKIH0gIC8vIG5hbWVzcGFjZQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cGFyYW0tdGVzdC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYwppbmRleCBmNzg5Y2FiMjcwNzQxNGM0NjQ4NDk2ZDdiOWZi
YWI0ZmU1MzFmMGI3Li5jODUyMjIwZTI3ZWQyMTMwM2QxYzRhMmU4OTU1ODgwNmZjYjc2OTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1wYXJhbS10ZXN0LXRlc3QuY2MKQEAgLTM3LDYgKzM3LDcgQEAKICMgaW5jbHVkZSA8YWxnb3Jp
dGhtPgogIyBpbmNsdWRlIDxpb3N0cmVhbT4KICMgaW5jbHVkZSA8bGlzdD4KKyMgaW5jbHVkZSA8
c2V0PgogIyBpbmNsdWRlIDxzc3RyZWFtPgogIyBpbmNsdWRlIDxzdHJpbmc+CiAjIGluY2x1ZGUg
PHZlY3Rvcj4KQEAgLTQ5LDE5ICs1MCwxMyBAQCB1c2luZyA6OnN0ZDo6c29ydDsKIAogdXNpbmcg
Ojp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQ7CiB1c2luZyA6OnRlc3Rpbmc6OkJv
b2w7Cit1c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7CiB1c2luZyA6OnRlc3Rpbmc6Ok1lc3NhZ2U7
CiB1c2luZyA6OnRlc3Rpbmc6OlJhbmdlOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFt
OwogdXNpbmcgOjp0ZXN0aW5nOjpWYWx1ZXM7CiB1c2luZyA6OnRlc3Rpbmc6OlZhbHVlc0luOwog
Ci0jIGlmIEdURVNUX0hBU19DT01CSU5FCi11c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7Ci11c2lu
ZyA6OnRlc3Rpbmc6OmdldDsKLXVzaW5nIDo6dGVzdGluZzo6bWFrZV90dXBsZTsKLXVzaW5nIDo6
dGVzdGluZzo6dHVwbGU7Ci0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCiB1c2luZyA6
OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjsKIHVzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczsKIApAQCAtNzMsNDkgKzY4LDkgQEAgdXNpbmcgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOwogLy8gRVhQRUNUX1RIQVQoKSBhbmQgdGhl
IG1hdGNoZXJzIGtub3cgaG93IHRvIHByaW50IHR1cGxlcy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgogOjpzdGQ6OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlKSB7Ci0gIDo6c3RkOjpz
dHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgdmFsdWU7Ci0gIHJldHVybiBzdHJlYW0u
c3RyKCk7Ci19Ci0KLSMgaWYgR1RFU1RfSEFTX0NPTUJJTkUKLQotLy8gVGhlc2Ugb3ZlcmxvYWRz
IGFsbG93IHByaW50aW5nIHR1cGxlcyBpbiBvdXIgdGVzdHMuICBXZSBjYW5ub3QKLS8vIGRlZmlu
ZSBhbiBvcGVyYXRvcjw8IGZvciB0dXBsZXMsIGFzIHRoYXQgZGVmaW5pdGlvbiBuZWVkcyB0byBi
ZSBpbgotLy8gdGhlIHN0ZCBuYW1lc3BhY2UgaW4gb3JkZXIgdG8gYmUgcGlja2VkIHVwIGJ5IEdv
b2dsZSBUZXN0IHZpYQotLy8gQXJndW1lbnQtRGVwZW5kZW50IExvb2t1cCwgeWV0IGRlZmluaW5n
IGFueXRoaW5nIGluIHRoZSBzdGQKLS8vIG5hbWVzcGFjZSBpbiBub24tU1RMIGNvZGUgaXMgdW5k
ZWZpbmVkIGJlaGF2aW9yLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgot
OjpzdGQ6OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IHR1cGxlPFQxLCBUMj4mIHZhbHVlKSB7Ci0g
IDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDwwPih2
YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5z
dHIoKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDM+Ci06OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQyLCBUMz4mIHZh
bHVlKSB7Ci0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8
IGdldDwwPih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAi
PDwgZ2V0PDI+KHZhbHVlKSA8PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7CisgIHJldHVy
biB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHZhbHVlKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICAgICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPgotOjpzdGQ6OnN0cmluZyBQcmludFZhbHVlKAotICAgIGNvbnN0
IHR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4mIHZhbHVlKSB7
Ci0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDww
Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0
PDI+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDwzPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBn
ZXQ8ND4odmFsdWUpIDw8ICIsICIgPDwgZ2V0PDU+KHZhbHVlKQotICAgICAgICAgPDwgIiwgIjw8
IGdldDw2Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8Nz4odmFsdWUpCi0gICAgICAgICA8PCAiLCAi
PDwgZ2V0PDg+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDw5Pih2YWx1ZSkgPDwgIikiOwotICByZXR1
cm4gc3RyZWFtLnN0cigpOwotfQotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCiAv
LyBWZXJpZmllcyB0aGF0IGEgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0b3IgYW5k
IGFjY2Vzc2VkCiAvLyB2aWEgdGhlIGl0ZXJhdG9yIG9iamVjdCBtYXRjaGVzIHRoZSBleHBlY3Rl
ZCBvbmUgdXNpbmcgR29vZ2xlIFRlc3QKIC8vIGFzc2VydGlvbnMuCkBAIC00NTAsMzEgKzQwNSwy
OCBAQCBURVNUKEJvb2xUZXN0LCBCb29sV29ya3MpIHsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwg
ZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCiAvLyBUZXN0
cyB0aGF0IENvbWJpbmUoKSB3aXRoIHR3byBwYXJhbWV0ZXJzIGdlbmVyYXRlcyB0aGUgZXhwZWN0
ZWQgc2VxdWVuY2UuCiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFR3b1BhcmFtZXRlcnMp
IHsKICAgY29uc3QgY2hhciogZm9vID0gImZvbyI7CiAgIGNvbnN0IGNoYXIqIGJhciA9ICJiYXIi
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxjb25zdCBjaGFyKiwgaW50PiA+IGdlbiA9
CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8Y29uc3QgY2hhciosIGludD4gPiBn
ZW4gPQogICAgICAgQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLCBWYWx1ZXMoMywgNCkpOwogCi0g
IHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0gewotICAgIG1ha2Vf
dHVwbGUoZm9vLCAzKSwgbWFrZV90dXBsZShmb28sIDQpLAotICAgIG1ha2VfdHVwbGUoYmFyLCAz
KSwgbWFrZV90dXBsZShiYXIsIDQpfTsKKyAgc3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgaW50PiBl
eHBlY3RlZF92YWx1ZXNbXSA9IHsKKyAgICAgIHN0ZDo6bWFrZV90dXBsZShmb28sIDMpLCBzdGQ6
Om1ha2VfdHVwbGUoZm9vLCA0KSwgc3RkOjptYWtlX3R1cGxlKGJhciwgMyksCisgICAgICBzdGQ6
Om1ha2VfdHVwbGUoYmFyLCA0KX07CiAgIFZlcmlmeUdlbmVyYXRvcihnZW4sIGV4cGVjdGVkX3Zh
bHVlcyk7CiB9CiAKIC8vIFRlc3RzIHRoYXQgQ29tYmluZSgpIHdpdGggdGhyZWUgcGFyYW1ldGVy
cyBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIHNlcXVlbmNlLgogVEVTVChDb21iaW5lVGVzdCwgQ29t
YmluZVdpdGhUaHJlZVBhcmFtZXRlcnMpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8
aW50LCBpbnQsIGludD4gPiBnZW4gPSBDb21iaW5lKFZhbHVlcygwLCAxKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygz
LCA0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZhbHVlcyg1LCA2KSk7Ci0gIHR1cGxlPGludCwgaW50LCBpbnQ+IGV4cGVjdGVk
X3ZhbHVlc1tdID0gewotICAgIG1ha2VfdHVwbGUoMCwgMywgNSksIG1ha2VfdHVwbGUoMCwgMywg
NiksCi0gICAgbWFrZV90dXBsZSgwLCA0LCA1KSwgbWFrZV90dXBsZSgwLCA0LCA2KSwKLSAgICBt
YWtlX3R1cGxlKDEsIDMsIDUpLCBtYWtlX3R1cGxlKDEsIDMsIDYpLAotICAgIG1ha2VfdHVwbGUo
MSwgNCwgNSksIG1ha2VfdHVwbGUoMSwgNCwgNil9OworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxz
dGQ6OnR1cGxlPGludCwgaW50LCBpbnQ+ID4gZ2VuID0KKyAgICAgIENvbWJpbmUoVmFsdWVzKDAs
IDEpLCBWYWx1ZXMoMywgNCksIFZhbHVlcyg1LCA2KSk7CisgIHN0ZDo6dHVwbGU8aW50LCBpbnQs
IGludD4gZXhwZWN0ZWRfdmFsdWVzW10gPSB7CisgICAgICBzdGQ6Om1ha2VfdHVwbGUoMCwgMywg
NSksIHN0ZDo6bWFrZV90dXBsZSgwLCAzLCA2KSwKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgwLCA0
LCA1KSwgc3RkOjptYWtlX3R1cGxlKDAsIDQsIDYpLAorICAgICAgc3RkOjptYWtlX3R1cGxlKDEs
IDMsIDUpLCBzdGQ6Om1ha2VfdHVwbGUoMSwgMywgNiksCisgICAgICBzdGQ6Om1ha2VfdHVwbGUo
MSwgNCwgNSksIHN0ZDo6bWFrZV90dXBsZSgxLCA0LCA2KX07CiAgIFZlcmlmeUdlbmVyYXRvcihn
ZW4sIGV4cGVjdGVkX3ZhbHVlcyk7CiB9CiAKQEAgLTQ4MiwxMCArNDM0LDExIEBAIFRFU1QoQ29t
YmluZVRlc3QsIENvbWJpbmVXaXRoVGhyZWVQYXJhbWV0ZXJzKSB7CiAvLyBzZXF1ZW5jZSBnZW5l
cmF0ZXMgYSBzZXF1ZW5jZSB3aXRoIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZXF1YWwgdG8gdGhl
CiAvLyBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUg
c2Vjb25kIHBhcmFtZXRlci4KIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoRmlyc3RQYXJh
bWV0ZXJTaW5nbGVWYWx1ZSkgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGlu
dD4gPiBnZW4gPSBDb21iaW5lKFZhbHVlcyg0MiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDAsIDEpKTsKKyAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShW
YWx1ZXMoNDIpLCBWYWx1ZXMoMCwgMSkpOwogCi0gIHR1cGxlPGludCwgaW50PiBleHBlY3RlZF92
YWx1ZXNbXSA9IHttYWtlX3R1cGxlKDQyLCAwKSwgbWFrZV90dXBsZSg0MiwgMSl9OworICBzdGQ6
OnR1cGxlPGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoNDIs
IDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1h
a2VfdHVwbGUoNDIsIDEpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVz
KTsKIH0KIApAQCAtNDkzLDI2ICs0NDYsMjcgQEAgVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdp
dGhGaXJzdFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7CiAvLyBzZXF1ZW5jZSBnZW5lcmF0ZXMgYSBz
ZXF1ZW5jZSB3aXRoIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZXF1YWwgdG8gdGhlCiAvLyBudW1i
ZXIgb2YgZWxlbWVudHMgaW4gdGhlIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUgZmlyc3QgcGFy
YW1ldGVyLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJTaW5n
bGVWYWx1ZSkgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBnZW4g
PSBDb21iaW5lKFZhbHVlcygwLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8c3RkOjp0dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwg
MSksIFZhbHVlcyg0MikpOwogCi0gIHR1cGxlPGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9
IHttYWtlX3R1cGxlKDAsIDQyKSwgbWFrZV90dXBsZSgxLCA0Mil9OworICBzdGQ6OnR1cGxlPGlu
dCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoMCwgNDIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfdHVwbGUo
MSwgNDIpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAog
Ly8gVGVzdHMgdGhhdCB3aGVuIHRoZSBmaXJzdCBwYXJhbWV0ZXIgcHJvZHVjZXMgYW4gZW1wdHkg
c2VxdWVuY2UsCiAvLyBDb21iaW5lKCkgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2UsIHRvby4K
IFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoRmlyc3RQYXJhbWV0ZXJFbXB0eVJhbmdlKSB7
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUo
UmFuZ2UoMCwgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKDAsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3RkOjp0
dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShSYW5nZSgwLCAwKSwgVmFsdWVz
KDAsIDEpKTsKICAgVmVyaWZ5R2VuZXJhdG9ySXNFbXB0eShnZW4pOwogfQogCiAvLyBUZXN0cyB0
aGF0IHdoZW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2Us
CiAvLyBDb21iaW5lKCkgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2UsIHRvby4KIFRFU1QoQ29t
YmluZVRlc3QsIENvbWJpbmVXaXRoU2Vjb25kUGFyYW1ldGVyRW1wdHlSYW5nZSkgewotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBnZW4gPSBDb21iaW5lKFZhbHVlcygw
LCAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSYW5nZSgxLCAxKSk7CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8aW50
LCBpbnQ+ID4gZ2VuID0KKyAgICAgIENvbWJpbmUoVmFsdWVzKDAsIDEpLCBSYW5nZSgxLCAxKSk7
CiAgIFZlcmlmeUdlbmVyYXRvcklzRW1wdHkoZ2VuKTsKIH0KIApAQCAtNTIxLDQ0ICs0NzUsNDEg
QEAgVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJFbXB0eVJhbmdl
KSB7CiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aE1heE51bWJlck9mUGFyYW1ldGVycykg
ewogICBjb25zdCBjaGFyKiBmb28gPSAiZm9vIjsKICAgY29uc3QgY2hhciogYmFyID0gImJhciI7
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwg
aW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKGZvbywgYmFyKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMSksIFZhbHVlcygy
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoMyksIFZhbHVlcyg0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNSksIFZhbHVlcyg2KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNyksIFZh
bHVlcyg4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXMoOSkpOwotCi0gIHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PgotICAgICAgZXhwZWN0ZWRfdmFsdWVzW10g
PSB7bWFrZV90dXBsZShmb28sIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFrZV90dXBsZShiYXIsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgs
IDkpfTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8CisgICAgICBzdGQ6OnR1cGxlPGNvbnN0IGNo
YXIqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PiA+CisgICAg
ICBnZW4gPQorICAgICAgICAgIENvbWJpbmUoVmFsdWVzKGZvbywgYmFyKSwgVmFsdWVzKDEpLCBW
YWx1ZXMoMiksIFZhbHVlcygzKSwgVmFsdWVzKDQpLAorICAgICAgICAgICAgICAgICAgVmFsdWVz
KDUpLCBWYWx1ZXMoNiksIFZhbHVlcyg3KSwgVmFsdWVzKDgpLCBWYWx1ZXMoOSkpOworCisgIHN0
ZDo6dHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwg
aW50LCBpbnQ+CisgICAgICBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoZm9v
LCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6bWFrZV90dXBsZShiYXIsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpfTsKICAgVmVy
aWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAotI2lmIEdURVNUX0xBTkdf
Q1hYMTEKLQogY2xhc3MgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZyB7CiAgcHVibGlj
OgogICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBz
KSA6IHN0cl8ocykge30KKyAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZygpID0gZGVs
ZXRlOworICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKGNvbnN0IE5vbkRlZmF1bHRD
b25zdHJ1Y3RBc3NpZ25TdHJpbmcmKSA9CisgICAgICBkZWZhdWx0OworICBOb25EZWZhdWx0Q29u
c3RydWN0QXNzaWduU3RyaW5nJiBvcGVyYXRvcj0oCisgICAgICBjb25zdCBOb25EZWZhdWx0Q29u
c3RydWN0QXNzaWduU3RyaW5nJikgPSBkZWxldGU7CisgIH5Ob25EZWZhdWx0Q29uc3RydWN0QXNz
aWduU3RyaW5nKCkgPSBkZWZhdWx0OwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIoKSBjb25z
dCB7IHJldHVybiBzdHJfOyB9CiAKICBwcml2YXRlOgogICBzdGQ6OnN0cmluZyBzdHJfOwotCi0g
IC8vIE5vdCBkZWZhdWx0IGNvbnN0cnVjdGlibGUKLSAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2ln
blN0cmluZygpOwotICAvLyBOb3QgYXNzaWduYWJsZQotICB2b2lkIG9wZXJhdG9yPShjb25zdCBO
b25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nJik7CiB9OwogCiBURVNUKENvbWJpbmVUZXN0
LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1
cGxlPGludCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZz4gPiBnZW4gPQorICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2ln
blN0cmluZz4gPiBnZW4gPQogICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFZhbHVlcyhOb25E
ZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKCJBIiksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoIkIiKSkpOwogCi0g
IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmlu
Zz4gPjo6aXRlcmF0b3IgaXQgPQotICAgICAgZ2VuLmJlZ2luKCk7CisgIFBhcmFtR2VuZXJhdG9y
PHN0ZDo6dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+OjppdGVy
YXRvcgorICAgICAgaXQgPSBnZW4uYmVnaW4oKTsKIAogICBFWFBFQ1RfRVEoMCwgc3RkOjpnZXQ8
MD4oKml0KSk7CiAgIEVYUEVDVF9FUSgiQSIsIHN0ZDo6Z2V0PDE+KCppdCkuc3RyKCkpOwpAQCAt
NTc5LDggKzUzMCw2IEBAIFRFU1QoQ29tYmluZVRlc3QsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3Np
Z24pIHsKICAgRVhQRUNUX1RSVUUoaXQgPT0gZ2VuLmVuZCgpKTsKIH0KIAotI2VuZGlmICAgLy8g
R1RFU1RfTEFOR19DWFgxMQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gVGVz
dHMgdGhhdCBhbiBnZW5lcmF0b3IgcHJvZHVjZXMgY29ycmVjdCBzZXF1ZW5jZSBhZnRlciBiZWlu
ZwogLy8gYXNzaWduZWQgZnJvbSBhbm90aGVyIGdlbmVyYXRvci4KQEAgLTU5NSwxMiArNTQ0LDEy
IEBAIFRFU1QoUGFyYW1HZW5lcmF0b3JUZXN0LCBBc3NpZ25tZW50V29ya3MpIHsKIAogLy8gVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIHRlc3RzIGFyZSBleHBhbmRlZCBhbmQgcnVuIGFzIHNw
ZWNpZmllZDoKIC8vIG9uZSB0ZXN0IHBlciBlbGVtZW50IGZyb20gdGhlIHNlcXVlbmNlIHByb2R1
Y2VkIGJ5IHRoZSBnZW5lcmF0b3IKLS8vIHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9URVNUX0NB
U0VfUC4gSXQgYWxzbyB2ZXJpZmllcyB0aGF0IHRoZSB0ZXN0J3MKKy8vIHNwZWNpZmllZCBpbiBJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1AuIEl0IGFsc28gdmVyaWZpZXMgdGhhdCB0aGUgdGVzdCdz
CiAvLyBmaXh0dXJlIGNvbnN0cnVjdG9yLCBTZXRVcCgpLCBhbmQgVGVhckRvd24oKSBoYXZlIHJ1
biBhbmQgaGF2ZSBiZWVuCiAvLyBzdXBwbGllZCB3aXRoIHRoZSBjb3JyZWN0IHBhcmFtZXRlcnMu
CiAKIC8vIFRoZSB1c2Ugb2YgZW52aXJvbm1lbnQgb2JqZWN0IGFsbG93cyBkZXRlY3Rpb24gb2Yg
dGhlIGNhc2Ugd2hlcmUgbm8gdGVzdAotLy8gY2FzZSBmdW5jdGlvbmFsaXR5IGlzIHJ1biBhdCBh
bGwuIEluIHRoaXMgY2FzZSBUZXN0Q2FzZVRlYXJEb3duIHdpbGwgbm90CisvLyBjYXNlIGZ1bmN0
aW9uYWxpdHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhpcyBjYXNlIFRlYXJEb3duVGVzdFN1aXRlIHdp
bGwgbm90CiAvLyBiZSBhYmxlIHRvIGRldGVjdCBtaXNzaW5nIHRlc3RzLCBuYXR1cmFsbHkuCiB0
ZW1wbGF0ZSA8aW50IGtFeHBlY3RlZENhbGxzPgogY2xhc3MgVGVzdEdlbmVyYXRpb25FbnZpcm9u
bWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKQEAgLTYxNSw3ICs1NjQsNyBA
QCBjbGFzcyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52
aXJvbm1lbnQgewogICB2b2lkIFRlYXJEb3duRXhlY3V0ZWQoKSB7IHRlYXJfZG93bl9jb3VudF8r
KzsgfQogICB2b2lkIFRlc3RCb2R5RXhlY3V0ZWQoKSB7IHRlc3RfYm9keV9jb3VudF8rKzsgfQog
Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
IHsKICAgICAvLyBJZiBhbGwgTXVsdGlwbGVUZXN0R2VuZXJhdGlvblRlc3QgdGVzdHMgaGF2ZSBi
ZWVuIGRlLXNlbGVjdGVkCiAgICAgLy8gYnkgdGhlIGZpbHRlciBmbGFnLCB0aGUgZm9sbG93aW5n
IGNoZWNrcyBtYWtlIG5vIHNlbnNlLgogICAgIGJvb2wgcGVyZm9ybV9jaGVjayA9IGZhbHNlOwpA
QCAtNjcyLDE2ICs2MjEsMTYgQEAgY2xhc3MgVGVzdEdlbmVyYXRpb25UZXN0IDogcHVibGljIFRl
c3RXaXRoUGFyYW08aW50PiB7CiAgICAgRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPkZpeHR1cmVD
b25zdHJ1Y3RvckV4ZWN1dGVkKCk7CiAgICAgY3VycmVudF9wYXJhbWV0ZXJfID0gR2V0UGFyYW0o
KTsKICAgfQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlk
ZSB7CiAgICAgRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPlNldFVwRXhlY3V0ZWQoKTsKICAgICBF
WFBFQ1RfRVEoY3VycmVudF9wYXJhbWV0ZXJfLCBHZXRQYXJhbSgpKTsKICAgfQotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgRW52
aXJvbm1lbnQ6Okluc3RhbmNlKCktPlRlYXJEb3duRXhlY3V0ZWQoKTsKICAgICBFWFBFQ1RfRVEo
Y3VycmVudF9wYXJhbWV0ZXJfLCBHZXRQYXJhbSgpKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFNl
dFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIGJv
b2wgYWxsX3Rlc3RzX2luX3Rlc3RfY2FzZV9zZWxlY3RlZCA9IHRydWU7CiAKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IFBBUkFNRVRFUl9DT1VOVDsgKytpKSB7CkBAIC03MDIsNyArNjUxLDcgQEAg
Y2xhc3MgVGVzdEdlbmVyYXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7CiAg
ICAgY29sbGVjdGVkX3BhcmFtZXRlcnNfLmNsZWFyKCk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBU
ZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsK
ICAgICB2ZWN0b3I8aW50PiBleHBlY3RlZF92YWx1ZXModGVzdF9nZW5lcmF0aW9uX3BhcmFtcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9nZW5lcmF0aW9uX3BhcmFtcyAr
IFBBUkFNRVRFUl9DT1VOVCk7CiAgICAgLy8gVGVzdCBleGVjdXRpb24gb3JkZXIgaXMgbm90IGd1
YXJhbnRlZWQgYnkgR29vZ2xlIFRlc3QsCkBAIC03MjgsMTcgKzY3NywxNyBAQCBURVNUX1AoVGVz
dEdlbmVyYXRpb25UZXN0LCBUZXN0c0V4cGFuZGVkQW5kUnVuKSB7CiAgIEVYUEVDVF9FUShjdXJy
ZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICBjb2xsZWN0ZWRfcGFyYW1ldGVyc18ucHVz
aF9iYWNrKEdldFBhcmFtKCkpOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoVGVzdEV4cGFu
c2lvbk1vZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzSW4odGVzdF9nZW5lcmF0aW9uX3BhcmFtcykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKFRlc3RFeHBhbnNpb25Nb2R1bGUsIFRlc3RHZW5lcmF0aW9uVGVzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZXNJbih0ZXN0X2dlbmVyYXRpb25fcGFyYW1zKSk7CiAKIC8vIFRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBlbGVtZW50IHNlcXVlbmNlICh0aGlyZCBwYXJhbWV0
ZXIgb2YKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKSBpcyBldmFsdWF0ZWQgaW4gSW5pdEdv
b2dsZVRlc3QoKSBhbmQgbmVpdGhlciBhdAotLy8gdGhlIGNhbGwgc2l0ZSBvZiBJTlNUQU5USUFU
RV9URVNUX0NBU0VfUCBub3IgaW4gUlVOX0FMTF9URVNUUygpLiAgRm9yCisvLyBJTlNUQU5USUFU
RV9URVNUX1NVSVRFX1ApIGlzIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpIGFuZCBuZWl0
aGVyIGF0CisvLyB0aGUgY2FsbCBzaXRlIG9mIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBub3Ig
aW4gUlVOX0FMTF9URVNUUygpLiAgRm9yCiAvLyB0aGF0LCB3ZSBkZWNsYXJlIHBhcmFtX3ZhbHVl
XyB0byBiZSBhIHN0YXRpYyBtZW1iZXIgb2YKIC8vIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IGFu
ZCBpbml0aWFsaXplIGl0IHRvIDAuICBXZSBzZXQgaXQgdG8gMSBpbgogLy8gbWFpbigpLCBqdXN0
IGJlZm9yZSBpbnZvY2F0aW9uIG9mIEluaXRHb29nbGVUZXN0KCkuICBBZnRlciBjYWxsaW5nCiAv
LyBJbml0R29vZ2xlVGVzdCgpLCB3ZSBzZXQgdGhlIHZhbHVlIHRvIDIuICBJZiB0aGUgc2VxdWVu
Y2UgaXMgZXZhbHVhdGVkCi0vLyBiZWZvcmUgb3IgYWZ0ZXIgSW5pdEdvb2dsZVRlc3QsIElOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QIHdpbGwgY3JlYXRlIGEKKy8vIGJlZm9yZSBvciBhZnRlciBJbml0
R29vZ2xlVGVzdCwgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHdpbGwgY3JlYXRlIGEKIC8vIHRl
c3Qgd2l0aCBwYXJhbWV0ZXIgb3RoZXIgdGhhbiAxLCBhbmQgdGhlIHRlc3QgYm9keSB3aWxsIGZh
aWwgdGhlCiAvLyBhc3NlcnRpb24uCiBjbGFzcyBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCA6IHB1
YmxpYyBUZXN0V2l0aFBhcmFtPGludD4gewpAQCAtNzU0LDkgKzcwMyw4IEBAIGludCBHZW5lcmF0
b3JFdmFsdWF0aW9uVGVzdDo6cGFyYW1fdmFsdWVfID0gMDsKIFRFU1RfUChHZW5lcmF0b3JFdmFs
dWF0aW9uVGVzdCwgR2VuZXJhdG9yc0V2YWx1YXRlZEluTWFpbikgewogICBFWFBFQ1RfRVEoMSwg
R2V0UGFyYW0oKSk7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChHZW5FdmFsTW9kdWxlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoR2VuZXJhdG9yRXZhbHVhdGlvblRlc3Q6OnBhcmFtX3Zh
bHVlKCkpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChHZW5FdmFsTW9kdWxlLCBHZW5lcmF0
b3JFdmFsdWF0aW9uVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoR2VuZXJh
dG9yRXZhbHVhdGlvblRlc3Q6OnBhcmFtX3ZhbHVlKCkpKTsKIAogLy8gVGVzdHMgdGhhdCBnZW5l
cmF0b3JzIGRlZmluZWQgaW4gYSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdCBhcmUKIC8vIGZ1
bmN0aW9uYWwuIEdlbmVyYXRvciBleHRlcm5fZ2VuIGlzIGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0t
dGVzdF90ZXN0Mi5jYy4KQEAgLTc2Nyw5ICs3MTUsOCBAQCBURVNUX1AoRXh0ZXJuYWxHZW5lcmF0
b3JUZXN0LCBFeHRlcm5hbEdlbmVyYXRvcikgewogICAvLyB3aGljaCB3ZSB2ZXJpZnkgaGVyZS4K
ICAgRVhQRUNUX0VRKEdldFBhcmFtKCksIDMzKTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KEV4dGVybmFsR2VuZXJhdG9yTW9kdWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJu
YWxHZW5lcmF0b3JUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuX2dlbik7CitJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1AoRXh0ZXJuYWxHZW5lcmF0b3JNb2R1bGUsIEV4dGVybmFs
R2VuZXJhdG9yVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5fZ2VuKTsKIAog
Ly8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBkZWZpbmVkIGlu
IG9uZSB0cmFuc2xhdGlvbgogLy8gdW5pdCBhbmQgaW5zdGFudGlhdGVkIGluIGFub3RoZXIuIFRo
aXMgdGVzdCB3aWxsIGJlIGluc3RhbnRpYXRlZCBpbgpAQCAtNzg0LDIwICs3MzEsMTkgQEAgVEVT
VF9QKEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QsIElzTXVsdGlwbGVPZjMzKSB7CiBjbGFzcyBN
dWx0aXBsZUluc3RhbnRpYXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsK
IFRFU1RfUChNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBBbGxvd3NNdWx0aXBsZUluc3RhbmNl
cykgewogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2UxLCBNdWx0aXBsZUluc3Rh
bnRpYXRpb25UZXN0LCBWYWx1ZXMoMSwgMikpOwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2Vx
dWVuY2UyLCBNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBSYW5nZSgzLCA1KSk7CitJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AoU2VxdWVuY2UxLCBNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBW
YWx1ZXMoMSwgMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMiwgTXVsdGlw
bGVJbnN0YW50aWF0aW9uVGVzdCwgUmFuZ2UoMywgNSkpOwogCiAvLyBUZXN0cyB0aGF0IGEgcGFy
YW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAogLy8gaW4gbXVsdGlwbGUg
dHJhbnNsYXRpb24gdW5pdHMuIFRoaXMgdGVzdCB3aWxsIGJlIGluc3RhbnRpYXRlZAogLy8gaGVy
ZSBhbmQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0Mi5jYy4KIC8vIEluc3RhbnRpYXRpb25Jbk11
bHRpcGxlVHJhbnNsYXRpb25Vbml0c1Rlc3QgZml4dHVyZSBjbGFzcwogLy8gaXMgZGVmaW5lZCBp
biBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4KLVRFU1RfUChJbnN0YW50aWF0aW9uSW5NdWx0aXBs
ZVRyYW5zbGFpb25Vbml0c1Rlc3QsIElzTXVsdGlwbGVPZjQyKSB7CitURVNUX1AoSW5zdGFudGlh
dGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwgSXNNdWx0aXBsZU9mNDIpIHsKICAg
RVhQRUNUX0VRKDAsIEdldFBhcmFtKCkgJSA0Mik7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0Vf
UChTZXF1ZW5jZTEsCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0
aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMo
NDIsIDQyKjIpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXF1ZW5jZTEsIEluc3RhbnRp
YXRpb25Jbk11bHRpcGxlVHJhbnNsYXRpb25Vbml0c1Rlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVzKDQyLCA0MiAqIDIpKTsKIAogLy8gVGVzdHMgdGhhdCBlYWNoIGl0ZXJhdGlv
biBvZiBwYXJhbWV0ZXJpemVkIHRlc3QgcnVucyBpbiBhIHNlcGFyYXRlIHRlc3QKIC8vIG9iamVj
dC4KQEAgLTgwNSw3ICs3NTEsNyBAQCBjbGFzcyBTZXBhcmF0ZUluc3RhbmNlVGVzdCA6IHB1Ymxp
YyBUZXN0V2l0aFBhcmFtPGludD4gewogIHB1YmxpYzoKICAgU2VwYXJhdGVJbnN0YW5jZVRlc3Qo
KSA6IGNvdW50XygwKSB7fQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7Cisg
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIEVYUEVDVF9HRShnbG9iYWxf
Y291bnRfLCAyKQogICAgICAgICA8PCAiSWYgc29tZSAoYnV0IG5vdCBhbGwpIFNlcGFyYXRlSW5z
dGFuY2VUZXN0IHRlc3RzIGhhdmUgYmVlbiAiCiAgICAgICAgIDw8ICJmaWx0ZXJlZCBvdXQgdGhp
cyB0ZXN0IHdpbGwgZmFpbC4gTWFrZSBzdXJlIHRoYXQgYWxsICIKQEAgLTgyMywyMCArNzY5LDIw
IEBAIFRFU1RfUChTZXBhcmF0ZUluc3RhbmNlVGVzdCwgVGVzdHNSdW5JblNlcGFyYXRlSW5zdGFu
Y2VzKSB7CiAgIEVYUEVDVF9FUSgwLCBjb3VudF8rKyk7CiAgIGdsb2JhbF9jb3VudF8rKzsKIH0K
LUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEZvdXJFbGVtU2VxdWVuY2UsIFNlcGFyYXRlSW5zdGFu
Y2VUZXN0LCBSYW5nZSgxLCA0KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoRm91ckVsZW1T
ZXF1ZW5jZSwgU2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJhbmdlKDEsIDQpKTsKIAogLy8gVGVzdHMg
dGhhdCBhbGwgaW5zdGFudGlhdGlvbnMgb2YgYSB0ZXN0IGhhdmUgbmFtZWQgYXBwcm9wcmlhdGVs
eS4gVGVzdAotLy8gZGVmaW5lZCB3aXRoIFRFU1RfUChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSBh
bmQgaW5zdGFudGlhdGVkIHdpdGgKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcXVlbmNl
TmFtZSwgVGVzdENhc2VOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUgbmFtZWQKLS8vIFNlcXVlbmNl
TmFtZS9UZXN0Q2FzZU5hbWUuVGVzdE5hbWUvaSwgd2hlcmUgaSBpcyB0aGUgMC1iYXNlZCBpbmRl
eCBvZiB0aGUKLS8vIHNlcXVlbmNlIGVsZW1lbnQgdXNlZCB0byBpbnN0YW50aWF0ZSB0aGUgdGVz
dC4KKy8vIGRlZmluZWQgd2l0aCBURVNUX1AoVGVzdFN1aXRlTmFtZSwgVGVzdE5hbWUpIGFuZCBp
bnN0YW50aWF0ZWQgd2l0aAorLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlTmFt
ZSwgVGVzdFN1aXRlTmFtZSwgZ2VuZXJhdG9yKSBtdXN0IGJlCisvLyBuYW1lZCBTZXF1ZW5jZU5h
bWUvVGVzdFN1aXRlTmFtZS5UZXN0TmFtZS9pLCB3aGVyZSBpIGlzIHRoZSAwLWJhc2VkIGluZGV4
IG9mCisvLyB0aGUgc2VxdWVuY2UgZWxlbWVudCB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0
LgogY2xhc3MgTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4ge307CiAKIFRF
U1RfUChOYW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lc0FuZFBhcmFtZXRlcnMpIHsK
ICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KICAgICAgOjp0
ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKIAot
ICBFWFBFQ1RfU1RSRVEoIlplcm9Ub0ZpdmVTZXF1ZW5jZS9OYW1pbmdUZXN0IiwgdGVzdF9pbmZv
LT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJaZXJvVG9GaXZlU2VxdWVuY2Uv
TmFtaW5nVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogCiAgIE1lc3NhZ2Ug
aW5kZXhfc3RyZWFtOwogICBpbmRleF9zdHJlYW0gPDwgIlRlc3RzUmVwb3J0Q29ycmVjdE5hbWVz
QW5kUGFyYW1ldGVycy8iIDw8IEdldFBhcmFtKCk7CkBAIC04NDUsNyArNzkxLDcgQEAgVEVTVF9Q
KE5hbWluZ1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5kUGFyYW1ldGVycykgewogICBF
WFBFQ1RfRVEoOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKEdldFBhcmFtKCkpLCB0ZXN0X2luZm8t
PnZhbHVlX3BhcmFtKCkpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChaZXJvVG9GaXZl
U2VxdWVuY2UsIE5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUChaZXJvVG9GaXZlU2VxdWVuY2UsIE5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpKTsKIAogLy8g
VGVzdHMgdGhhdCBtYWNyb3MgaW4gdGVzdCBuYW1lcyBhcmUgZXhwYW5kZWQgY29ycmVjdGx5Lgog
Y2xhc3MgTWFjcm9OYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKQEAg
LTg1NywxMSArODAzLDExIEBAIFRFU1RfUChQUkVGSVhfV0lUSF9NQUNSTyhOYW1pbmdUZXN0KSwg
UFJFRklYX1dJVEhfRk9PKFNvbWVUZXN0TmFtZSkpIHsKICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0
SW5mbyogY29uc3QgdGVzdF9pbmZvID0KICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5z
dGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKIAotICBFWFBFQ1RfU1RSRVEoIkZvcnR5VHdv
L01hY3JvTmFtaW5nVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci0gIEVYUEVD
VF9TVFJFUSgiRm9vU29tZVRlc3ROYW1lIiwgdGVzdF9pbmZvLT5uYW1lKCkpOworICBFWFBFQ1Rf
U1RSRVEoIkZvcnR5VHdvL01hY3JvTmFtaW5nVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9u
YW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkZvb1NvbWVUZXN0TmFtZS8wIiwgdGVzdF9pbmZvLT5u
YW1lKCkpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChGb3J0eVR3bywgTWFjcm9OYW1p
bmdUZXN0LCBWYWx1ZXMoNDIpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGb3J0eVR3bywg
TWFjcm9OYW1pbmdUZXN0LCBWYWx1ZXMoNDIpKTsKIAogLy8gVGVzdHMgdGhlIHNhbWUgdGhpbmcg
Zm9yIG5vbi1wYXJhbWV0cml6ZWQgdGVzdHMuCiBjbGFzcyBNYWNyb05hbWluZ1Rlc3ROb25QYXJh
bWV0cml6ZWQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OwpAQCAtODcxLDEwICs4MTcsNDAg
QEAgVEVTVF9GKFBSRUZJWF9XSVRIX01BQ1JPKE5hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQpLAog
ICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQogICAgICA6OnRl
c3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogCi0g
IEVYUEVDVF9TVFJFUSgiTWFjcm9OYW1pbmdUZXN0Tm9uUGFyYW1ldHJpemVkIiwgdGVzdF9pbmZv
LT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJNYWNyb05hbWluZ1Rlc3ROb25Q
YXJhbWV0cml6ZWQiLCB0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1NU
UkVRKCJGb29Tb21lVGVzdE5hbWUiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKK1RFU1QoTWFj
cm9OYW1laW5nLCBMb29rdXBOYW1lcykgeworICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4ga25vd19z
dWl0ZV9uYW1lcywga25vd190ZXN0X25hbWVzOworCisgIGF1dG8gaW5zID0gdGVzdGluZzo6VW5p
dFRlc3Q6OkdldEluc3RhbmNlKCk7CisgIGludCB0cyA9IDA7CisgIHdoaWxlIChjb25zdCB0ZXN0
aW5nOjpUZXN0U3VpdGUqIHN1aXRlID0gaW5zLT5HZXRUZXN0U3VpdGUodHMrKykpIHsKKyAgICBr
bm93X3N1aXRlX25hbWVzLmluc2VydChzdWl0ZS0+bmFtZSgpKTsKKworICAgIGludCB0aSA9IDA7
CisgICAgd2hpbGUgKGNvbnN0IHRlc3Rpbmc6OlRlc3RJbmZvKiBpbmZvID0gc3VpdGUtPkdldFRl
c3RJbmZvKHRpKyspKSB7CisgICAgICBrbm93X3Rlc3RfbmFtZXMuaW5zZXJ0KHN0ZDo6c3RyaW5n
KHN1aXRlLT5uYW1lKCkpICsgIi4iICsgaW5mby0+bmFtZSgpKTsKKyAgICB9CisgIH0KKworICAv
LyBDaGVjayB0aGF0IHRoZSBleHBlY3RlZCBmb3JtIG9mIHRoZSB0ZXN0IHN1aXQgbmFtZSBhY3R1
YWx5IGV4aXN0cy4KKyAgRVhQRUNUX05FKCAgLy8KKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZmlu
ZCgiRm9ydHlUd28vTWFjcm9OYW1pbmdUZXN0IiksCisgICAgICBrbm93X3N1aXRlX25hbWVzLmVu
ZCgpKTsKKyAgRVhQRUNUX05FKAorICAgICAga25vd19zdWl0ZV9uYW1lcy5maW5kKCJNYWNyb05h
bWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQiKSwKKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZW5kKCkp
OworICAvLyBDaGVjayB0aGF0IHRoZSBleHBlY3RlZCBmb3JtIG9mIHRoZSB0ZXN0IG5hbWUgYWN0
dWFseSBleGlzdHMuCisgIEVYUEVDVF9ORSggIC8vCisgICAgICBrbm93X3Rlc3RfbmFtZXMuZmlu
ZCgiRm9ydHlUd28vTWFjcm9OYW1pbmdUZXN0LkZvb1NvbWVUZXN0TmFtZS8wIiksCisgICAgICBr
bm93X3Rlc3RfbmFtZXMuZW5kKCkpOworICBFWFBFQ1RfTkUoCisgICAgICBrbm93X3Rlc3RfbmFt
ZXMuZmluZCgiTWFjcm9OYW1pbmdUZXN0Tm9uUGFyYW1ldHJpemVkLkZvb1NvbWVUZXN0TmFtZSIp
LAorICAgICAga25vd190ZXN0X25hbWVzLmVuZCgpKTsKK30KKwogLy8gVGVzdHMgdGhhdCB1c2Vy
IHN1cHBsaWVkIGN1c3RvbSBwYXJhbWV0ZXIgbmFtZXMgYXJlIHdvcmtpbmcgY29ycmVjdGx5Lgog
Ly8gUnVucyB0aGUgdGVzdCB3aXRoIGEgYnVpbHRpbiBoZWxwZXIgbWV0aG9kIHdoaWNoIHVzZXMg
UHJpbnRUb1N0cmluZywKIC8vIGFzIHdlbGwgYXMgYSBjdXN0b20gZnVuY3Rpb24gYW5kIGN1c3Rv
bSBmdW5jdG9yIHRvIGVuc3VyZSBhbGwgcG9zc2libGUKQEAgLTg4OCwxNyArODY0LDE0IEBAIHN0
cnVjdCBDdXN0b21QYXJhbU5hbWVGdW5jdG9yIHsKICAgfQogfTsKIAotSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoQ3VzdG9tUGFyYW1OYW1lRnVuY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
IEN1c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVz
KHN0ZDo6c3RyaW5nKCJGdW5jdG9yTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1
c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQ3VzdG9t
UGFyYW1OYW1lRnVuY3RvciwgQ3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJGdW5jdG9yTmFtZSIpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBDdXN0b21QYXJhbU5hbWVGdW5jdG9yKCkpOwogCi1JTlNUQU5USUFU
RV9URVNUX0NBU0VfUChBbGxBbGxvd2VkQ2hhcmFjdGVycywKLSAgICAgICAgICAgICAgICAgICAg
ICAgIEN1c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWVzKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMDEyMzQ1Njc4OTBfIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBD
dXN0b21QYXJhbU5hbWVGdW5jdG9yKCkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEFsbEFs
bG93ZWRDaGFyYWN0ZXJzLCBDdXN0b21GdW5jdG9yTmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXMoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiwgIjAx
MjM0NTY3ODkwXyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1
bmN0b3IoKSk7CiAKIGlubGluZSBzdGQ6OnN0cmluZyBDdXN0b21QYXJhbU5hbWVGdW5jdGlvbigK
ICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88c3RkOjpzdHJpbmc+JiBpbmYpIHsK
QEAgLTkwOCw0NSArODgxLDQxIEBAIGlubGluZSBzdGQ6OnN0cmluZyBDdXN0b21QYXJhbU5hbWVG
dW5jdGlvbigKIGNsYXNzIEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0
aFBhcmFtPHN0ZDo6c3RyaW5nPiB7fTsKIFRFU1RfUChDdXN0b21GdW5jdGlvbk5hbWluZ1Rlc3Qs
IEN1c3RvbVRlc3ROYW1lcykge30KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3VzdG9tUGFy
YW1OYW1lRnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GdW5jdGlvbk5h
bWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1
bmN0aW9uTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1
bmN0aW9uKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVGdW5jdGlv
biwgQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyhzdGQ6OnN0cmluZygiRnVuY3Rpb25OYW1lIikpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKTsKIAotI2lmIEdURVNUX0xBTkdfQ1hYMTEKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVGdW5jdGlvblAsIEN1c3RvbUZ1
bmN0aW9uTmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpz
dHJpbmcoIkZ1bmN0aW9uTmFtZVAiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJkN1c3Rv
bVBhcmFtTmFtZUZ1bmN0aW9uKTsKIAogLy8gVGVzdCBjdXN0b20gbmFtaW5nIHdpdGggYSBsYW1i
ZGEKIAogY2xhc3MgQ3VzdG9tTGFtYmRhTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFt
PHN0ZDo6c3RyaW5nPiB7fTsKIFRFU1RfUChDdXN0b21MYW1iZGFOYW1pbmdUZXN0LCBDdXN0b21U
ZXN0TmFtZXMpIHt9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEN1c3RvbVBhcmFtTmFtZUxh
bWJkYSwgQ3VzdG9tTGFtYmRhTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyhzdGQ6OnN0cmluZygiTGFtYmRhTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IFtdKGNvbnN0IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZikgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5mLnBhcmFtOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQorSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUxhbWJkYSwgQ3VzdG9tTGFtYmRhTmFtaW5n
VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkxhbWJk
YU5hbWUiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgOjp0ZXN0aW5nOjpU
ZXN0UGFyYW1JbmZvPHN0ZDo6c3RyaW5nPiYgaW5mKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gaW5mLnBhcmFtOworICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogCiBU
RVNUKEN1c3RvbU5hbWluZ1Rlc3QsIENoZWNrTmFtZVJlZ2lzdHJ5KSB7CiAgIDo6dGVzdGluZzo6
VW5pdFRlc3QqIHVuaXRfdGVzdCA9IDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7
CiAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0X25hbWVzOwotICBmb3IgKGludCBjYXNlX251
bSA9IDA7Ci0gICAgICAgY2FzZV9udW0gPCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY2FzZV9jb3Vu
dCgpOwotICAgICAgICsrY2FzZV9udW0pIHsKLSAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RDYXNl
KiB0ZXN0X2Nhc2UgPSB1bml0X3Rlc3QtPkdldFRlc3RDYXNlKGNhc2VfbnVtKTsKLSAgICBmb3Ig
KGludCB0ZXN0X251bSA9IDA7Ci0gICAgICAgICB0ZXN0X251bSA8IHRlc3RfY2FzZS0+dG90YWxf
dGVzdF9jb3VudCgpOworICBmb3IgKGludCBzdWl0ZV9udW0gPSAwOyBzdWl0ZV9udW0gPCB1bml0
X3Rlc3QtPnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsKKyAgICAgICArK3N1aXRlX251bSkgewor
ICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0gdW5pdF90ZXN0LT5H
ZXRUZXN0U3VpdGUoc3VpdGVfbnVtKTsKKyAgICBmb3IgKGludCB0ZXN0X251bSA9IDA7IHRlc3Rf
bnVtIDwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpOwogICAgICAgICAgKyt0ZXN0X251
bSkgewotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogdGVzdF9pbmZvID0gdGVzdF9j
YXNlLT5HZXRUZXN0SW5mbyh0ZXN0X251bSk7CisgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJ
bmZvKiB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT5HZXRUZXN0SW5mbyh0ZXN0X251bSk7CiAgICAg
ICB0ZXN0X25hbWVzLmluc2VydChzdGQ6OnN0cmluZyh0ZXN0X2luZm8tPm5hbWUoKSkpOwogICAg
IH0KICAgfQogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1l
cy9GdW5jdG9yTmFtZSIpKTsKICAgRVhQRUNUX0VRKDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0
b21UZXN0TmFtZXMvRnVuY3Rpb25OYW1lIikpOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKKyAgRVhQ
RUNUX0VRKDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0b21UZXN0TmFtZXMvRnVuY3Rpb25OYW1l
UCIpKTsKICAgRVhQRUNUX0VRKDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0b21UZXN0TmFtZXMv
TGFtYmRhTmFtZSIpKTsKLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQogfQogCiAvLyBUZXN0
IGEgbnVtZXJpYyBuYW1lIHRvIGVuc3VyZSBQcmludFRvU3RyaW5nUGFyYW1OYW1lIHdvcmtzIGNv
cnJlY3RseS4KQEAgLTk2MSwxMCArOTMwLDggQEAgVEVTVF9QKEN1c3RvbUludGVnZXJOYW1pbmdU
ZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEodGVzdF9uYW1l
X3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50VG9TdHJpbmcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBDdXN0b21JbnRlZ2VyTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJh
bmdlKDAsIDUpLAotICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpQcmludFRvU3Ry
aW5nUGFyYW1OYW1lKCkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFByaW50VG9TdHJpbmcs
IEN1c3RvbUludGVnZXJOYW1pbmdUZXN0LCBSYW5nZSgwLCA1KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7CiAKIC8vIFRlc3Qg
YSBjdXN0b20gc3RydWN0IHdpdGggUHJpbnRUb1N0cmluZy4KIApAQCAtOTg4LDEwICs5NTUsOSBA
QCBURVNUX1AoQ3VzdG9tU3RydWN0TmFtaW5nVGVzdCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXMp
IHsKICAgRVhQRUNUX1NUUkVRKHRlc3RfbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCkuY19zdHIoKSwg
dGVzdF9pbmZvLT5uYW1lKCkpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChQcmludFRv
U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tU3RydWN0TmFtaW5nVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhDdXN0b21TdHJ1Y3QoMCksIEN1c3RvbVN0
cnVjdCgxKSksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmdQYXJhbU5hbWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRUb1N0cmluZywg
Q3VzdG9tU3RydWN0TmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMo
Q3VzdG9tU3RydWN0KDApLCBDdXN0b21TdHJ1Y3QoMSkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogLy8gVGVzdCB0aGF0
IHVzaW5nIGEgc3RhdGVmdWwgcGFyYW1ldGVyIG5hbWluZyBmdW5jdGlvbiB3b3JrcyBhcyBleHBl
Y3RlZC4KIApAQCAtMTAyMCwxMCArOTg2LDggQEAgVEVTVF9QKFN0YXRlZnVsTmFtaW5nVGVzdCwg
VGVzdHNSZXBvcnRDb3JyZWN0TmFtZXMpIHsKICAgRVhQRUNUX1NUUkVRKHRlc3RfbmFtZV9zdHJl
YW0uR2V0U3RyaW5nKCkuY19zdHIoKSwgdGVzdF9pbmZvLT5uYW1lKCkpOwogfQogCi1JTlNUQU5U
SUFURV9URVNUX0NBU0VfUChTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBTdGF0ZWZ1bE5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBSYW5n
ZSgwLCA1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlZnVsTmFtaW5nRnVuY3Rvcigp
KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IsIFN0YXRl
ZnVsTmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgU3Rh
dGVmdWxOYW1pbmdGdW5jdG9yKCkpOwogCiAvLyBDbGFzcyB0aGF0IGNhbm5vdCBiZSBzdHJlYW1l
ZCBpbnRvIGFuIG9zdHJlYW0uICBJdCBuZWVkcyB0byBiZSBjb3B5YWJsZQogLy8gKGFuZCwgaW4g
Y2FzZSBvZiBNU1ZDLCBhbHNvIGFzc2lnbmFibGUpIGluIG9yZGVyIHRvIGJlIGEgdGVzdCBwYXJh
bWV0ZXIKQEAgLTEwMzIsNiArOTk2LDggQEAgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RhdGVm
dWxOYW1pbmdGdW5jdG9yLAogY2xhc3MgVW5zdHJlYW1hYmxlIHsKICBwdWJsaWM6CiAgIGV4cGxp
Y2l0IFVuc3RyZWFtYWJsZShpbnQgdmFsdWUpIDogdmFsdWVfKHZhbHVlKSB7fQorICAvLyAtV3Vu
dXNlZC1wcml2YXRlLWZpZWxkOiBkdW1teSBhY2Nlc3NvciBmb3IgYHZhbHVlX2AuCisgIGNvbnN0
IGludCYgZHVtbXlfdmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0KIAogIHByaXZhdGU6
CiAgIGludCB2YWx1ZV87CkBAIC0xMDQ2LDkgKzEwMTIsOCBAQCBURVNUX1AoQ29tbWVudFRlc3Qs
IFRlc3RzQ29ycmVjdGx5UmVwb3J0VW5zdHJlYW1hYmxlUGFyYW1zKSB7CiAgIEVYUEVDVF9FUSg6
OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSksIHRlc3RfaW5mby0+dmFsdWVfcGFy
YW0oKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRpYXRpb25XaXRoQ29t
bWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50VGVzdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyhVbnN0cmVhbWFibGUoMSkpKTsKK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChJbnN0YW50aWF0aW9uV2l0aENvbW1lbnRzLCBDb21tZW50VGVzdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoVW5zdHJlYW1hYmxlKDEpKSk7CiAKIC8vIFZlcmlmeSB0
aGF0IHdlIGNhbiBjcmVhdGUgYSBoaWVyYXJjaHkgb2YgdGVzdCBmaXh0dXJlcywgd2hlcmUgdGhl
IGJhc2UKIC8vIGNsYXNzIGZpeHR1cmUgaXMgbm90IHBhcmFtZXRlcml6ZWQgYW5kIHRoZSBkZXJp
dmVkIGNsYXNzIGlzLiBJbiB0aGlzIGNhc2UKQEAgLTEwODgsMTkgKzEwNTMsNjQgQEAgVEVTVF9G
KFBhcmFtZXRlcml6ZWREZWF0aFRlc3QsIEdldFBhcmFtRGllc0Zyb21UZXN0RikgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIuKiB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgLioiKTsK
IH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUmFuZ2VaZXJvVG9GaXZlLCBQYXJhbWV0ZXJp
emVkRGVyaXZlZFRlc3QsIFJhbmdlKDAsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChS
YW5nZVplcm9Ub0ZpdmUsIFBhcmFtZXRlcml6ZWREZXJpdmVkVGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBSYW5nZSgwLCA1KSk7CisKKy8vIFRlc3RzIHBhcmFtIGdlbmVyYXRvciB3b3Jr
aW5nIHdpdGggRW51bXMKK2VudW0gTXlFbnVtcyB7CisgIEVOVU0xID0gMSwKKyAgRU5VTTIgPSAz
LAorICBFTlVNMyA9IDgsCit9OworCitjbGFzcyBNeUVudW1UZXN0IDogcHVibGljIHRlc3Rpbmc6
OlRlc3RXaXRoUGFyYW08TXlFbnVtcz4ge307CisKK1RFU1RfUChNeUVudW1UZXN0LCBDaGVja3NQ
YXJhbU1vcmVUaGFuWmVybykgeyBFWFBFQ1RfR0UoMTAsIEdldFBhcmFtKCkpOyB9CitJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AoTXlFbnVtVGVzdHMsIE15RW51bVRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoRU5VTTEsIEVOVU0yLCAwKSk7CisKK25hbWVz
cGFjZSB3b3Jrc19oZXJlIHsKKy8vIE5ldmVyIHVzZWQgbm90IGluc3RhbnRpYXRlZCwgdGhpcyBz
aG91bGQgd29yay4KK2NsYXNzIE5vdFVzZWRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRo
UGFyYW08aW50PiB7fTsKKworLy8vLy8vLworLy8gTmV2ZXIgdXNlZCBub3QgaW5zdGFudGlhdGVk
LCB0aGlzIHNob3VsZCB3b3JrLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBOb3RVc2Vk
VHlwZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJVEVfUChO
b3RVc2VkVHlwZVRlc3QpOworCisvLyBVc2VkIGJ1dCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHdv
dWxkIGZhaWwuIGJ1dC4uLgorY2xhc3MgTm90SW5zdGFudGlhdGVkVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CisvLyAuLi4gd2UgbWFyayBpcyBhcyBhbGxvd2Vk
LgorR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKE5vdEluc3Rh
bnRpYXRlZFRlc3QpOworCitURVNUX1AoTm90SW5zdGFudGlhdGVkVGVzdCwgVXNlZCkgeyB9CisK
K3VzaW5nIE90aGVyTmFtZSA9IE5vdEluc3RhbnRpYXRlZFRlc3Q7CitHVEVTVF9BTExPV19VTklO
U1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoT3RoZXJOYW1lKTsKK1RFU1RfUChPdGhlck5h
bWUsIFVzZWQpIHsgfQorCisvLyBVc2VkIGJ1dCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHdvdWxk
IGZhaWwuIGJ1dC4uLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBOb3RJbnN0YW50aWF0
ZWRUeXBlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9Q
KE5vdEluc3RhbnRpYXRlZFR5cGVUZXN0KTsKKy8vIC4uLiB3ZSBtYXJrIGlzIGFzIGFsbG93ZWQu
CitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm90SW5zdGFu
dGlhdGVkVHlwZVRlc3QpOwogCitUWVBFRF9URVNUX1AoTm90SW5zdGFudGlhdGVkVHlwZVRlc3Qs
IFVzZWQpIHsgfQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKE5vdEluc3RhbnRpYXRlZFR5
cGVUZXN0LCBVc2VkKTsKK30gIC8vIG5hbWVzcGFjZSB3b3Jrc19oZXJlCiAKIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndikgewotICAvLyBVc2VkIGluIFRlc3RHZW5lcmF0aW9uVGVzdCB0
ZXN0IGNhc2UuCisgIC8vIFVzZWQgaW4gVGVzdEdlbmVyYXRpb25UZXN0IHRlc3Qgc3VpdGUuCiAg
IEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChUZXN0R2VuZXJhdGlvblRlc3Q6OkVudmlyb25tZW50
OjpJbnN0YW5jZSgpKTsKLSAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0
IGNhc2UuIFRlc3RzIHRoYXQgdGhlIHVwZGF0ZWQgdmFsdWUKKyAgLy8gVXNlZCBpbiBHZW5lcmF0
b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IHN1aXRlLiBUZXN0cyB0aGF0IHRoZSB1cGRhdGVkIHZhbHVl
CiAgIC8vIHdpbGwgYmUgcGlja2VkIHVwIGZvciBpbnN0YW50aWF0aW5nIHRlc3RzIGluIEdlbmVy
YXRvckV2YWx1YXRpb25UZXN0LgogICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6c2V0X3BhcmFt
X3ZhbHVlKDEpOwogCiAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwog
Ci0gIC8vIFVzZWQgaW4gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QgdGVzdCBjYXNlLiBUZXN0cyB0
aGF0IHZhbHVlIHVwZGF0ZWQKKyAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0
ZXN0IHN1aXRlLiBUZXN0cyB0aGF0IHZhbHVlIHVwZGF0ZWQKICAgLy8gaGVyZSB3aWxsIE5PVCBi
ZSB1c2VkIGZvciBpbnN0YW50aWF0aW5nIHRlc3RzIGluCiAgIC8vIEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0LgogICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6c2V0X3BhcmFtX3ZhbHVlKDIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFt
LXRlc3QtdGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBh
cmFtLXRlc3QtdGVzdC5oCmluZGV4IDYzMmE2MWY0OTI2YmE5MjI1MTU5ZGI0Njk4MTBlNDFjYWMw
ZDIwYzcuLjg5MTkzNzUzOGQwMTI2ZTk0Y2QzZDk0N2FkZWMzMWE1NjEzNGFmYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRl
c3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmgKQEAgLTMyLDggKzMyLDggQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUgcHJvdmlk
ZXMgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIHVzZWQgaW50ZXJuYWxseQogLy8gZm9yIHRlc3Rpbmcg
R29vZ2xlIFRlc3QgaXRzZWxmLgogCi0jaWZuZGVmIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVT
VF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9URVNUX0hfCisj
aWZuZGVmIEdPT0dMRVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1RfVEVTVF9IXworI2Rl
ZmluZSBHT09HTEVURVNUX1RFU1RfR09PR0xFVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KIAogI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKQEAgLTQ0LDggKzQ0LDggQEAgY2xhc3MgRXh0ZXJuYWxJ
bnN0YW50aWF0aW9uVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7
CiAKIC8vIFRlc3QgZml4dHVyZSBmb3IgdGVzdGluZyBpbnN0YW50aWF0aW9uIG9mIGEgdGVzdCBp
biBtdWx0aXBsZQogLy8gdHJhbnNsYXRpb24gdW5pdHMuCi1jbGFzcyBJbnN0YW50aWF0aW9uSW5N
dWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QKK2NsYXNzIEluc3RhbnRpYXRpb25Jbk11bHRpcGxl
VHJhbnNsYXRpb25Vbml0c1Rlc3QKICAgICA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFy
YW08aW50PiB7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9U
RVNUX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1Rf
VEVTVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LXBhcmFtLXRlc3QyLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYwppbmRleCAyNWJiOTQ1YzJmOGVkMjlmZDkwODU2
YjIzZTAzYzAxZTJhODQzMDYwLi4yYTI5ZmIxZDA2ODZlMmE0ZWM3YzY3Yzg5MTJmZjZhMzhmODlj
Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cGFyYW0tdGVzdDItdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYwpAQCAtNDYsMTYgKzQ2LDE2IEBAIFBhcmFtR2Vu
ZXJhdG9yPGludD4gZXh0ZXJuX2dlbiA9IFZhbHVlcygzMyk7CiAvLyBhbmQgaW5zdGFudGlhdGVk
IGluIGFub3RoZXIuIFRoZSB0ZXN0IGlzIGRlZmluZWQgaW4KIC8vIGdvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmNjIGFuZCBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IGZpeHR1cmUgY2xhc3Mg
aXMKIC8vIGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmguCi1JTlNUQU5USUFURV9U
RVNUX0NBU0VfUChNdWx0aXBsZXNPZjMzLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJu
YWxJbnN0YW50aWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygzMywg
NjYpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNdWx0aXBsZXNPZjMzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOwogCiAvLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVy
aXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAogLy8gaW4gbXVsdGlwbGUgdHJhbnNs
YXRpb24gdW5pdHMuIEFub3RoZXIgaW5zdGFudGlhdGlvbiBpcyBkZWZpbmVkCiAvLyBpbiBnb29n
bGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBhbmQKLS8vIEluc3RhbnRpYXRpb25Jbk11bHRpcGxl
VHJhbnNsYWlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KKy8vIEluc3RhbnRpYXRp
b25Jbk11bHRpcGxlVHJhbnNsYXRpb25Vbml0c1Rlc3QgZml4dHVyZSBpcyBkZWZpbmVkIGluCiAv
LyBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVu
Y2UyLAotICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFu
c2xhaW9uVW5pdHNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDQyKjMsIDQy
KjQsIDQyKjUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXF1ZW5jZTIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRz
VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cG9ydC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBv
cnQtdGVzdC5jYwppbmRleCAzOTkzMTZmOTViNjM3YWNhOTJmYjVhMTU0NGVjN2ZjMjdjMmVmYjI3
Li4xZTBjODYxNjMyMmE3MjdlOTBkYWI0ZWYxOTRjY2JiMDM1YzEyMGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcG9ydC10ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MKQEAg
LTM3LDYgKzM3LDcgQEAKICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKICNpbmNsdWRlIDxsaXN0
PgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx1dGlsaXR5PiAgLy8gRm9yIHN0ZDo6cGFp
ciBhbmQgc3RkOjptYWtlX3BhaXIuCiAjaW5jbHVkZSA8dmVjdG9yPgogCkBAIC04OSwxMCArOTAs
MTAgQEAgVEVTVChJc1hEaWdpdFRlc3QsIFJldHVybnNGYWxzZUZvcldpZGVOb25Bc2NpaSkgewog
CiBjbGFzcyBCYXNlIHsKICBwdWJsaWM6Ci0gIC8vIENvcHkgY29uc3RydWN0b3IgYW5kIGFzc2ln
bm1lbnQgb3BlcmF0b3IgZG8gZXhhY3RseSB3aGF0IHdlIG5lZWQsIHNvIHdlCi0gIC8vIHVzZSB0
aGVtLgogICBCYXNlKCkgOiBtZW1iZXJfKDApIHt9CiAgIGV4cGxpY2l0IEJhc2UoaW50IG4pIDog
bWVtYmVyXyhuKSB7fQorICBCYXNlKGNvbnN0IEJhc2UmKSA9IGRlZmF1bHQ7CisgIEJhc2UmIG9w
ZXJhdG9yPShjb25zdCBCYXNlJikgPSBkZWZhdWx0OwogICB2aXJ0dWFsIH5CYXNlKCkge30KICAg
aW50IG1lbWJlcigpIHsgcmV0dXJuIG1lbWJlcl87IH0KIApAQCAtMjAwLDMyICsyMDEsMTMgQEAg
VEVTVChJbXBsaWNpdENhc3RUZXN0LCBDYW5Vc2VJbXBsaWNpdENvbnN0cnVjdG9yKSB7CiAgIEVY
UEVDVF9UUlVFKGNvbnZlcnRlZCk7CiB9CiAKLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jr
c0ZvclNUTENvbnRhaW5lckl0ZXJhdG9ycykgewotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50LAot
ICAgICAgSXRlcmF0b3JUcmFpdHM8IDo6c3RkOjp2ZWN0b3I8aW50Pjo6Y29uc3RfaXRlcmF0b3I+
Ojp2YWx1ZV90eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8Ym9vbCwKLSAgICAgIEl0ZXJh
dG9yVHJhaXRzPCA6OnN0ZDo6bGlzdDxib29sPjo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlPigpOwot
fQotCi1URVNUKEl0ZXJhdG9yVHJhaXRzVGVzdCwgV29ya3NGb3JQb2ludGVyVG9Ob25Db25zdCkg
ewotICBTdGF0aWNBc3NlcnRUeXBlRXE8Y2hhciwgSXRlcmF0b3JUcmFpdHM8Y2hhcio+Ojp2YWx1
ZV90eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8Y29uc3Qgdm9pZCosIEl0ZXJhdG9yVHJh
aXRzPGNvbnN0IHZvaWQqKj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1QoSXRlcmF0b3JUcmFp
dHNUZXN0LCBXb3Jrc0ZvclBvaW50ZXJUb0NvbnN0KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxj
aGFyLCBJdGVyYXRvclRyYWl0czxjb25zdCBjaGFyKj46OnZhbHVlX3R5cGU+KCk7Ci0gIFN0YXRp
Y0Fzc2VydFR5cGVFcTxjb25zdCB2b2lkKiwKLSAgICAgIEl0ZXJhdG9yVHJhaXRzPGNvbnN0IHZv
aWQqIGNvbnN0Kj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIGVsZW1l
bnRfdHlwZSB0eXBlZGVmIGlzIGF2YWlsYWJsZSBpbiBzY29wZWRfcHRyIGFuZCByZWZlcnMKLS8v
IHRvIHRoZSBwYXJhbWV0ZXIgdHlwZS4KLVRFU1QoU2NvcGVkUHRyVGVzdCwgRGVmaW5lc0VsZW1l
bnRUeXBlKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6
OnNjb3BlZF9wdHI8aW50Pjo6ZWxlbWVudF90eXBlPigpOwotfQotCi0vLyBGSVhNRTogSW1wbGVt
ZW50IFRIRSBSRVNUIG9mIHNjb3BlZF9wdHIgdGVzdHMuCi0KKy8vIFRoZSBmb2xsb3dpbmcgY29k
ZSBpbnRlbnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVD
X18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RhbmdsaW5nLWVsc2UiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZW1wdHktYm9keSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFz
IgorI2VuZGlmCiBURVNUKEd0ZXN0Q2hlY2tTeW50YXhUZXN0LCBCZWhhdmVzTGlrZUFTaW5nbGVT
dGF0ZW1lbnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCiAgICAgR1RFU1RfQ0hFQ0tfKGZhbHNl
KSA8PCAiVGhpcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0ZWQ7ICIKQEAgLTI0MSw2ICsyMjMsOSBA
QCBURVNUKEd0ZXN0Q2hlY2tTeW50YXhUZXN0LCBCZWhhdmVzTGlrZUFTaW5nbGVTdGF0ZW1lbnQp
IHsKICAgZWxzZQogICAgIEdURVNUX0NIRUNLXyh0cnVlKSA8PCAiIjsKIH0KKyNpZmRlZiBfX0dO
VUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogCiBURVNUKEd0ZXN0Q2hl
Y2tTeW50YXhUZXN0LCBXb3Jrc1dpdGhTd2l0Y2gpIHsKICAgc3dpdGNoICgwKSB7CkBAIC0yNjIs
OSArMjQ3LDkgQEAgVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzRmlsZUxvY2F0
aW9uKSB7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vua25vd25G
aWxlKSB7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoCi0gICAgICBJc1N1YnN0cmluZywgInVua25v
d24gZmlsZSIsIEZvcm1hdEZpbGVMb2NhdGlvbihOVUxMLCA0MikpOwotICBFWFBFQ1RfUFJFRF9G
T1JNQVQyKElzU3Vic3RyaW5nLCAiNDIiLCBGb3JtYXRGaWxlTG9jYXRpb24oTlVMTCwgNDIpKTsK
KyAgRVhQRUNUX1BSRURfRk9STUFUMihJc1N1YnN0cmluZywgInVua25vd24gZmlsZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQyKSk7CisgIEVY
UEVDVF9QUkVEX0ZPUk1BVDIoSXNTdWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVMb2NhdGlvbihu
dWxscHRyLCA0MikpOwogfQogCiBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNV
a25vd25MaW5lKSB7CkBAIC0yNzIsNyArMjU3LDcgQEAgVEVTVChGb3JtYXRGaWxlTG9jYXRpb25U
ZXN0LCBGb3JtYXRzVWtub3duTGluZSkgewogfQogCiBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRl
c3QsIEZvcm1hdHNVa25vd25GaWxlQW5kTGluZSkgewotICBFWFBFQ1RfRVEoInVua25vd24gZmls
ZToiLCBGb3JtYXRGaWxlTG9jYXRpb24oTlVMTCwgLTEpKTsKKyAgRVhQRUNUX0VRKCJ1bmtub3du
IGZpbGU6IiwgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIC0xKSk7CiB9CiAKIC8vIFZlcmlm
aWVzIGJlaGF2aW9yIG9mIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24uCkBA
IC0yODIsNyArMjY3LDcgQEAgVEVTVChGb3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0
aW9uVGVzdCwgRm9ybWF0c0ZpbGVMb2NhdGlvbikgewogCiBURVNUKEZvcm1hdENvbXBpbGVySW5k
ZXBlbmRlbnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVWtub3duRmlsZSkgewogICBFWFBFQ1Rf
RVEoInVua25vd24gZmlsZTo0MiIsCi0gICAgICAgICAgICBGb3JtYXRDb21waWxlckluZGVwZW5k
ZW50RmlsZUxvY2F0aW9uKE5VTEwsIDQyKSk7CisgICAgICAgICAgICBGb3JtYXRDb21waWxlcklu
ZGVwZW5kZW50RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQyKSk7CiB9CiAKIFRFU1QoRm9ybWF0Q29t
cGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25MaW5lKSB7CkBA
IC0yOTAsMTUgKzI3NSwxNyBAQCBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9j
YXRpb25UZXN0LCBGb3JtYXRzVWtub3duTGluZSkgewogfQogCiBURVNUKEZvcm1hdENvbXBpbGVy
SW5kZXBlbmRlbnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVWtub3duRmlsZUFuZExpbmUpIHsK
LSAgRVhQRUNUX0VRKCJ1bmtub3duIGZpbGUiLCBGb3JtYXRDb21waWxlckluZGVwZW5kZW50Rmls
ZUxvY2F0aW9uKE5VTEwsIC0xKSk7CisgIEVYUEVDVF9FUSgidW5rbm93biBmaWxlIiwgRm9ybWF0
Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihudWxscHRyLCAtMSkpOwogfQogCi0jaWYg
R1RFU1RfT1NfTElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX1FOWCB8fCBHVEVTVF9P
U19GVUNIU0lBCisjaWYgR1RFU1RfT1NfTElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09T
X1FOWCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAgICBHVEVTVF9PU19EUkFHT05GTFkgfHwg
R1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgXAorICAgIEdURVNU
X09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECiB2b2lkKiBUaHJlYWRGdW5jKHZvaWQqIGRh
dGEpIHsKICAgaW50ZXJuYWw6Ok11dGV4KiBtdXRleCA9IHN0YXRpY19jYXN0PGludGVybmFsOjpN
dXRleCo+KGRhdGEpOwogICBtdXRleC0+TG9jaygpOwogICBtdXRleC0+VW5sb2NrKCk7Ci0gIHJl
dHVybiBOVUxMOworICByZXR1cm4gbnVsbHB0cjsKIH0KIAogVEVTVChHZXRUaHJlYWRDb3VudFRl
c3QsIFJldHVybnNDb3JyZWN0VmFsdWUpIHsKQEAgLTM4NiwyMSArMzczLDE0IEBAIFRFU1QoUmVn
ZXhFbmdpbmVTZWxlY3Rpb25UZXN0LCBTZWxlY3RzQ29ycmVjdFJlZ2V4RW5naW5lKSB7CiAKICNp
ZiBHVEVTVF9VU0VTX1BPU0lYX1JFCiAKLSMgaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogdGVt
cGxhdGUgPHR5cGVuYW1lIFN0cj4KIGNsYXNzIFJFVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRl
c3Qge307CiAKIC8vIERlZmluZXMgU3RyaW5nVHlwZXMgYXMgdGhlIGxpc3Qgb2YgYWxsIHN0cmlu
ZyB0eXBlcyB0aGF0IGNsYXNzIFJFCiAvLyBzdXBwb3J0cy4KLXR5cGVkZWYgdGVzdGluZzo6VHlw
ZXM8Ci0gICAgOjpzdGQ6OnN0cmluZywKLSMgIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0g
ICAgOjpzdHJpbmcsCi0jICBlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLSAgICBj
b25zdCBjaGFyKj4gU3RyaW5nVHlwZXM7Cit0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPCA6OnN0ZDo6
c3RyaW5nLCBjb25zdCBjaGFyKj4gU3RyaW5nVHlwZXM7CiAKLVRZUEVEX1RFU1RfQ0FTRShSRVRl
c3QsIFN0cmluZ1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoUkVUZXN0LCBTdHJpbmdUeXBlcyk7
CiAKIC8vIFRlc3RzIFJFJ3MgaW1wbGljaXQgY29uc3RydWN0b3JzLgogVFlQRURfVEVTVChSRVRl
c3QsIEltcGxpY2l0Q29uc3RydWN0b3JXb3JrcykgewpAQCAtNDQ4LDggKzQyOCw2IEBAIFRZUEVE
X1RFU1QoUkVUZXN0LCBQYXJ0aWFsTWF0Y2hXb3JrcykgewogICBFWFBFQ1RfRkFMU0UoUkU6OlBh
cnRpYWxNYXRjaChUeXBlUGFyYW0oInp6YSIpLCByZSkpOwogfQogCi0jIGVuZGlmICAvLyBHVEVT
VF9IQVNfVFlQRURfVEVTVAotCiAjZWxpZiBHVEVTVF9VU0VTX1NJTVBMRV9SRQogCiBURVNUKElz
SW5TZXRUZXN0LCBOdWxDaGFySXNOb3RJbkFueVNldCkgewpAQCAtOTY1LDcgKzk0Myw3IEBAIFRF
U1QoVGhyZWFkTG9jYWxUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3JJbml0aWFsaXplc1RvRGVmYXVs
dFZhbHVlcykgewogICBFWFBFQ1RfRVEoMCwgdDEuZ2V0KCkpOwogCiAgIFRocmVhZExvY2FsPHZv
aWQqPiB0MjsKLSAgRVhQRUNUX1RSVUUodDIuZ2V0KCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVF
KHQyLmdldCgpID09IG51bGxwdHIpOwogfQogCiBURVNUKFRocmVhZExvY2FsVGVzdCwgU2luZ2xl
UGFyYW1Db25zdHJ1Y3RvckluaXRpYWxpemVzVG9QYXJhbSkgewpAQCAtMTAxNSw3ICs5OTMsNyBA
QCB2b2lkIEFkZFR3byhpbnQqIHBhcmFtKSB7ICpwYXJhbSArPSAyOyB9CiAKIFRFU1QoVGhyZWFk
V2l0aFBhcmFtVGVzdCwgQ29uc3RydWN0b3JFeGVjdXRlc1RocmVhZEZ1bmMpIHsKICAgaW50IGkg
PSA0MDsKLSAgVGhyZWFkV2l0aFBhcmFtPGludCo+IHRocmVhZCgmQWRkVHdvLCAmaSwgTlVMTCk7
CisgIFRocmVhZFdpdGhQYXJhbTxpbnQqPiB0aHJlYWQoJkFkZFR3bywgJmksIG51bGxwdHIpOwog
ICB0aHJlYWQuSm9pbigpOwogICBFWFBFQ1RfRVEoNDIsIGkpOwogfQpAQCAtMTA1NSwxMCArMTAz
MywxMCBAQCBjbGFzcyBBdG9taWNDb3VudGVyV2l0aE11dGV4IHsKICAgICAgIC8vIGZ1bmN0aW9u
YWxpdHkgYXMgd2UgYXJlIHRlc3RpbmcgdGhlbSBoZXJlLgogICAgICAgcHRocmVhZF9tdXRleF90
IG1lbW9yeV9iYXJyaWVyX211dGV4OwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18o
Ci0gICAgICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZtZW1vcnlfYmFycmllcl9tdXRleCwgTlVM
TCkpOworICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmbWVtb3J5X2JhcnJpZXJfbXV0ZXgs
IG51bGxwdHIpKTsKICAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0
ZXhfbG9jaygmbWVtb3J5X2JhcnJpZXJfbXV0ZXgpKTsKIAotICAgICAgU2xlZXBNaWxsaXNlY29u
ZHMocmFuZG9tXy5HZW5lcmF0ZSgzMCkpOworICAgICAgU2xlZXBNaWxsaXNlY29uZHMoc3RhdGlj
X2Nhc3Q8aW50PihyYW5kb21fLkdlbmVyYXRlKDMwKSkpOwogCiAgICAgICBHVEVTVF9DSEVDS19Q
T1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X3VubG9jaygmbWVtb3J5X2JhcnJpZXJfbXV0ZXgp
KTsKICAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfZGVzdHJv
eSgmbWVtb3J5X2JhcnJpZXJfbXV0ZXgpKTsKQEAgLTEwNjYsNyArMTA0NCw3IEBAIGNsYXNzIEF0
b21pY0NvdW50ZXJXaXRoTXV0ZXggewogICAgICAgLy8gT24gV2luZG93cywgcGVyZm9ybWluZyBh
biBpbnRlcmxvY2tlZCBhY2Nlc3MgcHV0cyB1cCBhIG1lbW9yeSBiYXJyaWVyLgogICAgICAgdm9s
YXRpbGUgTE9ORyBkdW1teSA9IDA7CiAgICAgICA6OkludGVybG9ja2VkSW5jcmVtZW50KCZkdW1t
eSk7Ci0gICAgICBTbGVlcE1pbGxpc2Vjb25kcyhyYW5kb21fLkdlbmVyYXRlKDMwKSk7CisgICAg
ICBTbGVlcE1pbGxpc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ+KHJhbmRvbV8uR2VuZXJhdGUoMzAp
KSk7CiAgICAgICA6OkludGVybG9ja2VkSW5jcmVtZW50KCZkdW1teSk7CiAjZWxzZQogIyBlcnJv
ciAiTWVtb3J5IGJhcnJpZXIgbm90IGltcGxlbWVudGVkIG9uIHRoaXMgcGxhdGZvcm0uIgpAQCAt
MTA5NSw3ICsxMDczLDcgQEAgVEVTVChNdXRleFRlc3QsIE9ubHlPbmVUaHJlYWRDYW5Mb2NrQXRB
VGltZSkgewogICB0eXBlZGVmIFRocmVhZFdpdGhQYXJhbTxwYWlyPEF0b21pY0NvdW50ZXJXaXRo
TXV0ZXgqLCBpbnQ+ID4gVGhyZWFkVHlwZTsKICAgY29uc3QgaW50IGtDeWNsZUNvdW50ID0gMjA7
CiAgIGNvbnN0IGludCBrVGhyZWFkQ291bnQgPSA3OwotICBzY29wZWRfcHRyPFRocmVhZFR5cGU+
IGNvdW50aW5nX3RocmVhZHNba1RocmVhZENvdW50XTsKKyAgc3RkOjp1bmlxdWVfcHRyPFRocmVh
ZFR5cGU+IGNvdW50aW5nX3RocmVhZHNba1RocmVhZENvdW50XTsKICAgTm90aWZpY2F0aW9uIHRo
cmVhZHNfY2FuX3N0YXJ0OwogICAvLyBDcmVhdGVzIGFuZCBydW5zIGtUaHJlYWRDb3VudCB0aHJl
YWRzIHRoYXQgaW5jcmVtZW50IGxvY2tlZF9jb3VudGVyCiAgIC8vIGtDeWNsZUNvdW50IHRpbWVz
IGVhY2guCkBAIC0xMTE4LDcgKzEwOTYsNyBAQCBURVNUKE11dGV4VGVzdCwgT25seU9uZVRocmVh
ZENhbkxvY2tBdEFUaW1lKSB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBSdW5Gcm9t
VGhyZWFkKHZvaWQgKGZ1bmMpKFQpLCBUIHBhcmFtKSB7Ci0gIFRocmVhZFdpdGhQYXJhbTxUPiB0
aHJlYWQoZnVuYywgcGFyYW0sIE5VTEwpOworICBUaHJlYWRXaXRoUGFyYW08VD4gdGhyZWFkKGZ1
bmMsIHBhcmFtLCBudWxscHRyKTsKICAgdGhyZWFkLkpvaW4oKTsKIH0KIApAQCAtMTIwOCw4ICsx
MTg2LDYgQEAgY2xhc3MgRGVzdHJ1Y3RvclRyYWNrZXIgewogICAgIHJldHVybiBEZXN0cnVjdG9y
Q2FsbDo6TGlzdCgpLnNpemUoKSAtIDE7CiAgIH0KICAgY29uc3Qgc2l6ZV90IGluZGV4XzsKLQot
ICBHVEVTVF9ESVNBTExPV19BU1NJR05fKERlc3RydWN0b3JUcmFja2VyKTsKIH07CiAKIHR5cGVk
ZWYgVGhyZWFkTG9jYWw8RGVzdHJ1Y3RvclRyYWNrZXI+KiBUaHJlYWRQYXJhbTsKQEAgLTEyNTAs
OCArMTIyNiw4IEBAIFRFU1QoVGhyZWFkTG9jYWxUZXN0LCBEZXN0cm95c01hbmFnZWRPYmplY3RB
dFRocmVhZEV4aXQpIHsKICAgICBBU1NFUlRfRVEoMFUsIERlc3RydWN0b3JDYWxsOjpMaXN0KCku
c2l6ZSgpKTsKIAogICAgIC8vIFRoaXMgY3JlYXRlcyBhbm90aGVyIERlc3RydWN0b3JUcmFja2Vy
IG9iamVjdCBpbiB0aGUgbmV3IHRocmVhZC4KLSAgICBUaHJlYWRXaXRoUGFyYW08VGhyZWFkUGFy
YW0+IHRocmVhZCgKLSAgICAgICAgJkNhbGxUaHJlYWRMb2NhbEdldCwgJnRocmVhZF9sb2NhbF90
cmFja2VyLCBOVUxMKTsKKyAgICBUaHJlYWRXaXRoUGFyYW08VGhyZWFkUGFyYW0+IHRocmVhZCgm
Q2FsbFRocmVhZExvY2FsR2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZ0aHJlYWRfbG9jYWxfdHJhY2tlciwgbnVsbHB0cik7CiAgICAgdGhyZWFkLkpvaW4oKTsK
IAogICAgIC8vIFRoZSB0aHJlYWQgaGFzIGV4aXRlZCwgYW5kIHdlIHNob3VsZCBoYXZlIGEgRGVz
dHJveWVkVHJhY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LXByaW50ZXJzLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtcHJpbnRlcnMtdGVzdC5jYwppbmRleCBlYTgzNjlkMjdlNTA0NzBmMWVhYmUz
YWYyODA0ZDM0NTQ5M2FkZWQ5Li4wNDYzNWU1OGFlMjNhNmM0ZGU2OGExODdhNTZjNjMyMmMzODE1
Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cHJpbnRlcnMtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtcHJpbnRlcnMtdGVzdC5jYwpAQCAtMzIsMzQgKzMyLDI3IEBACiAvLwogLy8gVGhpcyBm
aWxlIHRlc3RzIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4KIAotI2luY2x1ZGUgPGN0eXBl
Lmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1
ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8Zm9yd2FyZF9saXN0Pgor
I2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxsaXN0PgogI2luY2x1ZGUgPG1hcD4KKyNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVk
ZSA8c3RyaW5nPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8dW5vcmRlcmVk
X3NldD4KICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIAotI2lm
IEdURVNUX0hBU19VTk9SREVSRURfTUFQXwotIyBpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPiAgLy8g
Tk9MSU5UCi0jZW5kaWYgIC8vIEdURVNUX0hBU19VTk9SREVSRURfTUFQXwotCi0jaWYgR1RFU1Rf
SEFTX1VOT1JERVJFRF9TRVRfCi0jIGluY2x1ZGUgPHVub3JkZXJlZF9zZXQ+ICAvLyBOT0xJTlQK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9TRVRfCi0KLSNpZiBHVEVTVF9IQVNfU1RE
X0ZPUldBUkRfTElTVF8KLSMgaW5jbHVkZSA8Zm9yd2FyZF9saXN0PiAvLyBOT0xJTlQKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCi0KIC8vIFNvbWUgdXNlci1kZWZpbmVk
IHR5cGVzIGZvciB0ZXN0aW5nIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4KIAogLy8gQW4g
YW5vbnltb3VzIGVudW0gdHlwZS4KQEAgLTk4LDYgKzkxLDE4IEBAIGNsYXNzIEJpZ2dlc3RJbnRD
b252ZXJ0aWJsZSB7CiAgIG9wZXJhdG9yIDo6dGVzdGluZzo6aW50ZXJuYWw6OkJpZ2dlc3RJbnQo
KSBjb25zdCB7IHJldHVybiA0MjsgfQogfTsKIAorLy8gQSBwYXJlbnQgY2xhc3Mgd2l0aCB0d28g
Y2hpbGQgY2xhc3Nlcy4gVGhlIHBhcmVudCBhbmQgb25lIG9mIHRoZSBraWRzIGhhdmUKKy8vIHN0
cmVhbSBvcGVyYXRvcnMuCitjbGFzcyBQYXJlbnRDbGFzcyB7fTsKK2NsYXNzIENoaWxkQ2xhc3NX
aXRoU3RyZWFtT3BlcmF0b3IgOiBwdWJsaWMgUGFyZW50Q2xhc3Mge307CitjbGFzcyBDaGlsZENs
YXNzV2l0aG91dFN0cmVhbU9wZXJhdG9yIDogcHVibGljIFBhcmVudENsYXNzIHt9Oworc3RhdGlj
IHZvaWQgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBQYXJlbnRDbGFzcyYpIHsK
KyAgb3MgPDwgIlBhcmVudENsYXNzIjsKK30KK3N0YXRpYyB2b2lkIG9wZXJhdG9yPDwoc3RkOjpv
c3RyZWFtJiBvcywgY29uc3QgQ2hpbGRDbGFzc1dpdGhTdHJlYW1PcGVyYXRvciYpIHsKKyAgb3Mg
PDwgIkNoaWxkQ2xhc3NXaXRoU3RyZWFtT3BlcmF0b3IiOworfQorCiAvLyBBIHVzZXItZGVmaW5l
ZCB1bnByaW50YWJsZSBjbGFzcyB0ZW1wbGF0ZSBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVW5wcmludGFibGVUZW1wbGF0ZUluR2xvYmFsIHsK
QEAgLTE4NSw2ICsxOTAsMTcgQEAgaW5saW5lIDo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6
c3RkOjpvc3RyZWFtJiBvcywKICAgcmV0dXJuIG9zIDw8ICJTdHJlYW1hYmxlVGVtcGxhdGVJbkZv
bzogIiA8PCB4LnZhbHVlKCk7CiB9CiAKKy8vIEEgdXNlci1kZWZpbmVkIHN0cmVhbWFibGUgdHlw
ZSBpbiBhIHVzZXIgbmFtZXNwYWNlIHdob3NlIG9wZXJhdG9yPDwgaXMKKy8vIHRlbXBsYXRlZCBv
biB0aGUgdHlwZSBvZiB0aGUgb3V0cHV0IHN0cmVhbS4KK3N0cnVjdCBUZW1wbGF0ZWRTdHJlYW1h
YmxlSW5Gb28ge307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBPdXRwdXRTdHJlYW0+CitPdXRwdXRT
dHJlYW0mIG9wZXJhdG9yPDwoT3V0cHV0U3RyZWFtJiBvcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28mIC8qdHMqLykgeworICBvcyA8PCAi
VGVtcGxhdGVkU3RyZWFtYWJsZUluRm9vIjsKKyAgcmV0dXJuIG9zOworfQorCiAvLyBBIHVzZXIt
ZGVmaW5lZCBzdHJlYW1hYmxlIGJ1dCByZWN1cnNpdmx5LWRlZmluZWQgY29udGFpbmVyIHR5cGUg
aW4KIC8vIGEgdXNlciBuYW1lc3BhY2UsIGl0IG1pbWljcyB0aGVyZWZvcmUgc3RkOjpmaWxlc3lz
dGVtOjpwYXRoIG9yCiAvLyBib29zdDo6ZmlsZXN5c3RlbTo6cGF0aC4KQEAgLTE5Miw4ICsyMDgs
MTQgQEAgY2xhc3MgUGF0aExpa2UgewogIHB1YmxpYzoKICAgc3RydWN0IGl0ZXJhdG9yIHsKICAg
ICB0eXBlZGVmIFBhdGhMaWtlIHZhbHVlX3R5cGU7CisKKyAgICBpdGVyYXRvciYgb3BlcmF0b3Ir
KygpOworICAgIFBhdGhMaWtlJiBvcGVyYXRvciooKTsKICAgfTsKIAorICB1c2luZyB2YWx1ZV90
eXBlID0gY2hhcjsKKyAgdXNpbmcgY29uc3RfaXRlcmF0b3IgPSBpdGVyYXRvcjsKKwogICBQYXRo
TGlrZSgpIHt9CiAKICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigp
OyB9CkBAIC0yMDcsNiArMjI5LDMzIEBAIGNsYXNzIFBhdGhMaWtlIHsKIH0gIC8vIG5hbWVzcGFj
ZSBmb28KIAogbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIHsKK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPgorY2xhc3MgV3JhcHBlciB7CisgcHVibGljOgorICBleHBsaWNpdCBXcmFwcGVyKFQm
JiB2YWx1ZSkgOiB2YWx1ZV8oc3RkOjpmb3J3YXJkPFQ+KHZhbHVlKSkge30KKworICBjb25zdCBU
JiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQorCisgcHJpdmF0ZToKKyAgVCB2YWx1
ZV87Cit9OworCit9ICAvLyBuYW1lc3BhY2UKKworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxXcmFwcGVyPFQ+PiB7Cisg
cHVibGljOgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBXcmFwcGVyPFQ+JiB3LCA6OnN0ZDo6
b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgIldyYXBwZXIoIjsKKyAgICBVbml2ZXJzYWxQcmlu
dCh3LnZhbHVlKCksIG9zKTsKKyAgICAqb3MgPDwgJyknOworICB9Cit9OworfSAgLy8gbmFtZXNw
YWNlIGludGVybmFsCisKKwogbmFtZXNwYWNlIGd0ZXN0X3ByaW50ZXJzX3Rlc3QgewogCiB1c2lu
ZyA6OnN0ZDo6ZGVxdWU7CkBAIC0yMjIsMTUgKzI3MSwxMiBAQCB1c2luZyA6OnRlc3Rpbmc6OlBy
aW50VG9TdHJpbmc7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpGb3JtYXRGb3JDb21wYXJp
c29uRmFpbHVyZU1lc3NhZ2U7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENh
c3RfOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6TmF0aXZlQXJyYXk7Ci11c2luZyA6OnRl
c3Rpbmc6OmludGVybmFsOjpSRTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlbGF0aW9u
VG9Tb3VyY2VSZWZlcmVuY2U7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpTdHJpbmdzOwog
dXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQ7CiB1c2luZyA6OnRlc3Rp
bmc6OmludGVybmFsOjpVbml2ZXJzYWxQcmludGVyOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6VW5pdmVyc2FsVGVyc2VQcmludDsKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNU
X0hBU19TVERfVFVQTEVfCiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxUZXJz
ZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3M7Ci0jZW5kaWYKIAogLy8gUHJpbnRzIGEgdmFsdWUg
dG8gYSBzdHJpbmcgdXNpbmcgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLiAgVGhpcwogLy8g
aXMgYSBoZWxwZXIgZm9yIHRlc3RpbmcgVW5pdmVyc2FsUHJpbnRlcjxUPjo6UHJpbnQoKSBmb3Ig
dmFyaW91cyB0eXBlcy4KQEAgLTMxNSw2ICszNjEsMjAgQEAgVEVTVChQcmludENoYXJUZXN0LCBV
bnNpZ25lZENoYXIpIHsKICAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNo
YXI+KCdiJykpKTsKIH0KIAorVEVTVChQcmludENoYXJUZXN0LCBDaGFyMTYpIHsKKyAgRVhQRUNU
X0VRKCJVKzAwNDEiLCBQcmludCh1J0EnKSk7Cit9CisKK1RFU1QoUHJpbnRDaGFyVGVzdCwgQ2hh
cjMyKSB7CisgIEVYUEVDVF9FUSgiVSswMDQxIiwgUHJpbnQoVSdBJykpOworfQorCisjaWZkZWYg
X19jcHBfY2hhcjhfdAorVEVTVChQcmludENoYXJUZXN0LCBDaGFyOCkgeworICBFWFBFQ1RfRVEo
IlUrMDA0MSIsIFByaW50KHU4J0EnKSk7Cit9CisjZW5kaWYKKwogLy8gVGVzdHMgcHJpbnRpbmcg
b3RoZXIgc2ltcGxlLCBidWlsdC1pbiB0eXBlcy4KIAogLy8gYm9vbC4KQEAgLTM0NSwyMyArNDA1
LDM5IEBAIFRFU1QoUHJpbnRCdWlsdEluVHlwZVRlc3QsIFdjaGFyX3QpIHsKICAgRVhQRUNUX0VR
KCJMJ1xceEM3NEQnICg1MTAyMSkiLCBQcmludChzdGF0aWNfY2FzdDx3Y2hhcl90PigweEM3NEQp
KSk7CiB9CiAKLS8vIFRlc3QgdGhhdCBJbnQ2NCBwcm92aWRlcyBtb3JlIHN0b3JhZ2UgdGhhbiB3
Y2hhcl90LgorLy8gVGVzdCB0aGF0IGludDY0X3QgcHJvdmlkZXMgbW9yZSBzdG9yYWdlIHRoYW4g
d2NoYXJfdC4KIFRFU1QoUHJpbnRUeXBlU2l6ZVRlc3QsIFdjaGFyX3QpIHsKLSAgRVhQRUNUX0xU
KHNpemVvZih3Y2hhcl90KSwgc2l6ZW9mKHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2NCkpOworICBF
WFBFQ1RfTFQoc2l6ZW9mKHdjaGFyX3QpLCBzaXplb2YoaW50NjRfdCkpOwogfQogCiAvLyBWYXJp
b3VzIGludGVnZXIgdHlwZXMuCiBURVNUKFByaW50QnVpbHRJblR5cGVUZXN0LCBJbnRlZ2VyKSB7
CiAgIEVYUEVDVF9FUSgiJ1xceEZGJyAoMjU1KSIsIFByaW50KHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KDI1NSkpKTsgIC8vIHVpbnQ4CiAgIEVYUEVDVF9FUSgiJ1xceDgwJyAoLTEyOCkiLCBQ
cmludChzdGF0aWNfY2FzdDxzaWduZWQgY2hhcj4oLTEyOCkpKTsgIC8vIGludDgKLSAgRVhQRUNU
X0VRKCI2NTUzNSIsIFByaW50KFVTSFJUX01BWCkpOyAgLy8gdWludDE2Ci0gIEVYUEVDVF9FUSgi
LTMyNzY4IiwgUHJpbnQoU0hSVF9NSU4pKTsgIC8vIGludDE2Ci0gIEVYUEVDVF9FUSgiNDI5NDk2
NzI5NSIsIFByaW50KFVJTlRfTUFYKSk7ICAvLyB1aW50MzIKLSAgRVhQRUNUX0VRKCItMjE0NzQ4
MzY0OCIsIFByaW50KElOVF9NSU4pKTsgIC8vIGludDMyCisgIEVYUEVDVF9FUSgiNjU1MzUiLCBQ
cmludChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpKTsgIC8vIHVpbnQxNgor
ICBFWFBFQ1RfRVEoIi0zMjc2OCIsIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MTZfdD46
Om1pbigpKSk7ICAvLyBpbnQxNgorICBFWFBFQ1RfRVEoIjQyOTQ5NjcyOTUiLAorICAgICAgICAg
ICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSk7ICAvLyB1aW50
MzIKKyAgRVhQRUNUX0VRKCItMjE0NzQ4MzY0OCIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkpOyAgLy8gaW50MzIKICAgRVhQRUNUX0VRKCIx
ODQ0Njc0NDA3MzcwOTU1MTYxNSIsCi0gICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDx0ZXN0
aW5nOjppbnRlcm5hbDo6VUludDY0PigtMSkpKTsgIC8vIHVpbnQ2NAorICAgICAgICAgICAgUHJp
bnQoc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKSk7ICAvLyB1aW50NjQKICAg
RVhQRUNUX0VRKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIsCi0gICAgICAgICAgICBQcmludChzdGF0
aWNfY2FzdDx0ZXN0aW5nOjppbnRlcm5hbDo6SW50NjQ+KDEpIDw8IDYzKSk7ICAvLyBpbnQ2NAor
ICAgICAgICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkpKTsg
IC8vIGludDY0CisjaWZkZWYgX19jcHBfY2hhcjhfdAorICBFWFBFQ1RfRVEoIlUrMDAwMCIsCisg
ICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI4X3Q+OjptaW4oKSkpOyAg
Ly8gY2hhcjhfdAorICBFWFBFQ1RfRVEoIlUrMDBGRiIsCisgICAgICAgICAgICBQcmludChzdGQ6
Om51bWVyaWNfbGltaXRzPGNoYXI4X3Q+OjptYXgoKSkpOyAgLy8gY2hhcjhfdAorI2VuZGlmCisg
IEVYUEVDVF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1p
dHM8Y2hhcjE2X3Q+OjptaW4oKSkpOyAgLy8gY2hhcjE2X3QKKyAgRVhQRUNUX0VRKCJVK0ZGRkYi
LAorICAgICAgICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxjaGFyMTZfdD46Om1heCgp
KSk7ICAvLyBjaGFyMTZfdAorICBFWFBFQ1RfRVEoIlUrMDAwMCIsCisgICAgICAgICAgICBQcmlu
dChzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXIzMl90Pjo6bWluKCkpKTsgIC8vIGNoYXIzMl90Cisg
IEVYUEVDVF9FUSgiVStGRkZGRkZGRiIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNf
bGltaXRzPGNoYXIzMl90Pjo6bWF4KCkpKTsgIC8vIGNoYXIzMl90CiB9CiAKIC8vIFNpemUgdHlw
ZXMuCkBAIC00MDUsNyArNDgxLDcgQEAgVEVTVChQcmludENTdHJpbmdUZXN0LCBOb25Db25zdCkg
ewogCiAvLyBOVUxMIEMgc3RyaW5nLgogVEVTVChQcmludENTdHJpbmdUZXN0LCBOdWxsKSB7Ci0g
IGNvbnN0IGNoYXIqIHAgPSBOVUxMOworICBjb25zdCBjaGFyKiBwID0gbnVsbHB0cjsKICAgRVhQ
RUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00MTcsNiArNDkzLDkyIEBAIFRFU1Qo
UHJpbnRDU3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CiAgICAgICAgICAgICBQcmludChw
KSk7CiB9CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisvLyBjb25zdCBjaGFyOF90Ki4KK1RFU1Qo
UHJpbnRVOFN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNoYXI4X3QqIHAgPSB1OCLnlYwi
OworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1OFwiXFx4RTdc
XHg5NVxceDhDXCIiLCBQcmludChwKSk7Cit9CisKKy8vIGNoYXI4X3QqLgorVEVTVChQcmludFU4
U3RyaW5nVGVzdCwgTm9uQ29uc3QpIHsKKyAgY2hhcjhfdCBwW10gPSB1OCLkuJYiOworICBFWFBF
Q1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1OFwiXFx4RTRcXHhCOFxceDk2
XCIiLAorICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nhc3Q8Y2hhcjhfdCo+KHApKSk7Cit9CisK
Ky8vIE5VTEwgdTggc3RyaW5nLgorVEVTVChQcmludFU4U3RyaW5nVGVzdCwgTnVsbCkgeworICBj
b25zdCBjaGFyOF90KiBwID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkp
OworfQorCisvLyBUZXN0cyB0aGF0IHU4IHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCitU
RVNUKFByaW50VThTdHJpbmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKKyAgY29uc3QgY2hhcjhf
dCogcCA9IHU4IidcIj9cXFxhXGJcZlxuXHJcdFx2XHg3Rlx4RkYgaGVsbG8g5LiW55WMIjsKKyAg
RVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArCisgICAgICAgICAgICAgICAgIiBwb2ludGluZyB0
byB1OFwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcclxcdFxcdlxceDdGXFx4RkYgIgorICAgICAg
ICAgICAgICAgICJoZWxsbyBcXHhFNFxceEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsCisgICAg
ICAgICAgICBQcmludChwKSk7Cit9CisjZW5kaWYKKworLy8gY29uc3QgY2hhcjE2X3QqLgorVEVT
VChQcmludFUxNlN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNoYXIxNl90KiBwID0gdSLn
lYwiOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1XCJcXHg3
NTRDXCIiLCBQcmludChwKSk7Cit9CisKKy8vIGNoYXIxNl90Ki4KK1RFU1QoUHJpbnRVMTZTdHJp
bmdUZXN0LCBOb25Db25zdCkgeworICBjaGFyMTZfdCBwW10gPSB1IuS4liI7CisgIEVYUEVDVF9F
UShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHVcIlxceDRFMTZcIiIsCisgICAgICAg
ICAgICBQcmludChzdGF0aWNfY2FzdDxjaGFyMTZfdCo+KHApKSk7Cit9CisKKy8vIE5VTEwgdTE2
IHN0cmluZy4KK1RFU1QoUHJpbnRVMTZTdHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXIx
Nl90KiBwID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOworfQorCisv
LyBUZXN0cyB0aGF0IHUxNiBzdHJpbmdzIGFyZSBlc2NhcGVkIHByb3Blcmx5LgorVEVTVChQcmlu
dFUxNlN0cmluZ1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgeworICBjb25zdCBjaGFyMTZfdCogcCA9
IHUiJ1wiP1xcXGFcYlxmXG5cclx0XHZceDdGXHhGRiBoZWxsbyDkuJbnlYwiOworICBFWFBFQ1Rf
RVEoUHJpbnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAgICAiIHBvaW50aW5nIHRvIHVcIidc
XFwiP1xcXFxcXGFcXGJcXGZcXG5cXHJcXHRcXHZcXHg3RlxceEZGICIKKyAgICAgICAgICAgICAg
ICAiaGVsbG8gXFx4NEUxNlxceDc1NENcIiIsCisgICAgICAgICAgICBQcmludChwKSk7Cit9CisK
Ky8vIGNvbnN0IGNoYXIzMl90Ki4KK1RFU1QoUHJpbnRVMzJTdHJpbmdUZXN0LCBDb25zdCkgewor
ICBjb25zdCBjaGFyMzJfdCogcCA9IFUi8J+Xuu+4jyI7CisgIEVYUEVDVF9FUShQcmludFBvaW50
ZXIocCkgKyAiIHBvaW50aW5nIHRvIFVcIlxceDFGNUZBXFx4RkUwRlwiIiwgUHJpbnQocCkpOwor
fQorCisvLyBjaGFyMzJfdCouCitURVNUKFByaW50VTMyU3RyaW5nVGVzdCwgTm9uQ29uc3QpIHsK
KyAgY2hhcjMyX3QgcFtdID0gVSLwn4yMIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSAr
ICIgcG9pbnRpbmcgdG8gVVwiXFx4MUYzMENcIiIsCisgICAgICAgICAgICBQcmludChzdGF0aWNf
Y2FzdDxjaGFyMzJfdCo+KHApKSk7Cit9CisKKy8vIE5VTEwgdTMyIHN0cmluZy4KK1RFU1QoUHJp
bnRVMzJTdHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gbnVsbHB0cjsK
KyAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOworfQorCisvLyBUZXN0cyB0aGF0IHUzMiBz
dHJpbmdzIGFyZSBlc2NhcGVkIHByb3Blcmx5LgorVEVTVChQcmludFUzMlN0cmluZ1Rlc3QsIEVz
Y2FwZXNQcm9wZXJseSkgeworICBjb25zdCBjaGFyMzJfdCogcCA9IFUiJ1wiP1xcXGFcYlxmXG5c
clx0XHZceDdGXHhGRiBoZWxsbyDwn5e677iPIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihw
KSArCisgICAgICAgICAgICAgICAgIiBwb2ludGluZyB0byBVXCInXFxcIj9cXFxcXFxhXFxiXFxm
XFxuXFxyXFx0XFx2XFx4N0ZcXHhGRiAiCisgICAgICAgICAgICAgICAgImhlbGxvIFxceDFGNUZB
XFx4RkUwRlwiIiwKKyAgICAgICAgICAgIFByaW50KHApKTsKK30KKwogLy8gTVNWQyBjb21waWxl
ciBjYW4gYmUgY29uZmlndXJlZCB0byBkZWZpbmUgd2hhcl90IGFzIGEgdHlwZWRlZgogLy8gb2Yg
dW5zaWduZWQgc2hvcnQuIERlZmluaW5nIGFuIG92ZXJsb2FkIGZvciBjb25zdCB3Y2hhcl90KiBp
biB0aGF0IGNhc2UKIC8vIHdvdWxkIGNhdXNlIHBvaW50ZXJzIHRvIHVuc2lnbmVkIHNob3J0cyBi
ZSBwcmludGVkIGFzIHdpZGUgc3RyaW5ncywKQEAgLTQ0MCw3ICs2MDIsNyBAQCBURVNUKFByaW50
V2lkZUNTdHJpbmdUZXN0LCBOb25Db25zdCkgewogCiAvLyBOVUxMIHdpZGUgQyBzdHJpbmcuCiBU
RVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBOdWxsKSB7Ci0gIGNvbnN0IHdjaGFyX3QqIHAgPSBO
VUxMOworICBjb25zdCB3Y2hhcl90KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwg
UHJpbnQocCkpOwogfQogCkBAIC00NjAsNyArNjIyLDcgQEAgVEVTVChQcmludFdpZGVDU3RyaW5n
VGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CiBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBTaWdu
ZWRDaGFyKSB7CiAgIHNpZ25lZCBjaGFyKiBwID0gcmVpbnRlcnByZXRfY2FzdDxzaWduZWQgY2hh
cio+KDB4MTIzNCk7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAg
cCA9IE5VTEw7CisgIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7
CiB9CiAKQEAgLTQ2OCw3ICs2MzAsNyBAQCBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBTaWdu
ZWRDaGFyKSB7CiBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBDb25zdFNpZ25lZENoYXIpIHsK
ICAgc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHNpZ25lZCBjaGFyKj4oMHgxMjM0
KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsK
KyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAt
NDc2LDcgKzYzOCw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0U2lnbmVkQ2hh
cikgewogVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgVW5zaWduZWRDaGFyKSB7CiAgIHVuc2ln
bmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPigweDEyMzQpOwog
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00ODQs
NyArNjQ2LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgVW5zaWduZWRDaGFyKSB7CiBU
RVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBDb25zdFVuc2lnbmVkQ2hhcikgewogICBjb25zdCB1
bnNpZ25lZCBjaGFyKiBwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4o
MHgxMjM0KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0g
TlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0K
IApAQCAtNDk0LDcgKzY1Niw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0VW5z
aWduZWRDaGFyKSB7CiBURVNUKFByaW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29sKSB7
CiAgIGJvb2wqIHAgPSByZWludGVycHJldF9jYXN0PGJvb2wqPigweEFCQ0QpOwogICBFWFBFQ1Rf
RVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0
cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC01MDIsNyArNjY0LDcg
QEAgVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgQm9vbCkgewogVEVTVChQcmlu
dFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgVm9pZCkgewogICB2b2lkKiBwID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oMHhBQkNEKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJp
bnQocCkpOwotICBwID0gTlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIs
IFByaW50KHApKTsKIH0KIApAQCAtNTEwLDcgKzY3Miw3IEBAIFRFU1QoUHJpbnRQb2ludGVyVG9C
dWlsdEluVHlwZVRlc3QsIFZvaWQpIHsKIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRl
c3QsIENvbnN0Vm9pZCkgewogICBjb25zdCB2b2lkKiBwID0gcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB2b2lkKj4oMHhBQkNEKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkp
OwotICBwID0gTlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50
KHApKTsKIH0KIApAQCAtNTE4LDcgKzY4MCw3IEBAIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdElu
VHlwZVRlc3QsIENvbnN0Vm9pZCkgewogVEVTVChQcmludFBvaW50ZXJUb1BvaW50ZXJUZXN0LCBJ
bnRQb2ludGVyUG9pbnRlcikgewogICBpbnQqKiBwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQqKj4o
MHhBQkNEKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0g
TlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0K
IApAQCAtNjI3LDIxICs3ODksNjYgQEAgVEVTVChQcmludEFycmF5VGVzdCwgQ2hhckFycmF5V2l0
aE5vVGVybWluYXRpbmdOdWwpIHsKICAgRVhQRUNUX0VRKCJcIkhcXDBpXCIgKG5vIHRlcm1pbmF0
aW5nIE5VTCkiLCBQcmludEFycmF5SGVscGVyKGEpKTsKIH0KIAotLy8gY29uc3QgY2hhciBhcnJh
eSB3aXRoIHRlcm1pbmF0aW5nIE5VTC4KLVRFU1QoUHJpbnRBcnJheVRlc3QsIENvbnN0Q2hhckFy
cmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7CisvLyBjaGFyIGFycmF5IHdpdGggdGVybWluYXRpbmcg
TlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7
CiAgIGNvbnN0IGNoYXIgYVtdID0gIlwwSGkiOwogICBFWFBFQ1RfRVEoIlwiXFwwSGlcIiIsIFBy
aW50QXJyYXlIZWxwZXIoYSkpOwogfQogCi0vLyBjb25zdCB3Y2hhcl90IGFycmF5IHdpdGhvdXQg
dGVybWluYXRpbmcgTlVMLgorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIGNoYXJfdCBhcnJheSB3
aXRob3V0IHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXI4QXJyYXlX
aXRoTm9UZXJtaW5hdGluZ051bCkgeworICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhl
IG1pZGRsZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAnLgorICBjb25zdCBjaGFyOF90IGFbXSA9
IHt1OCdIJywgdTgnXDAnLCB1OCdpJ307CisgIEVYUEVDVF9FUSgidThcIkhcXDBpXCIgKG5vIHRl
cm1pbmF0aW5nIE5VTCkiLCBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8gY2hhcjhfdCBh
cnJheSB3aXRoIHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXI4QXJy
YXlXaXRoVGVybWluYXRpbmdOdWwpIHsKKyAgY29uc3QgY2hhcjhfdCBhW10gPSB1OCJcMOS4lueV
jCI7CisgIEVYUEVDVF9FUSgKKyAgICAgICJ1OFwiXFwwXFx4RTRcXHhCOFxceDk2XFx4RTdcXHg5
NVxceDhDXCIiLAorICAgICAgUHJpbnRBcnJheUhlbHBlcihhKSk7Cit9CisjZW5kaWYKKworLy8g
Y29uc3QgY2hhcjE2X3QgYXJyYXkgd2l0aG91dCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50
QXJyYXlUZXN0LCBDaGFyMTZBcnJheVdpdGhOb1Rlcm1pbmF0aW5nTnVsKSB7CisgIC8vIEFycmF5
IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFuZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcu
CisgIGNvbnN0IGNoYXIxNl90IGFbXSA9IHt1J+OBkycsIHUnXDAnLCB1J+OCkycsIHUn44GrJywg
dSfjgaEnLCB1J+OBryd9OworICBFWFBFQ1RfRVEoInVcIlxceDMwNTNcXDBcXHgzMDkzXFx4MzA2
QlxceDMwNjFcXHgzMDZGXCIgKG5vIHRlcm1pbmF0aW5nIE5VTCkiLAorICAgICAgICAgICAgUHJp
bnRBcnJheUhlbHBlcihhKSk7Cit9CisKKy8vIGNoYXIxNl90IGFycmF5IHdpdGggdGVybWluYXRp
bmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjE2QXJyYXlXaXRoVGVybWluYXRpbmdO
dWwpIHsKKyAgY29uc3QgY2hhcjE2X3QgYVtdID0gdSJcMOOBk+OCk+OBq+OBoeOBryI7CisgIEVY
UEVDVF9FUSgidVwiXFwwXFx4MzA1M1xceDMwOTNcXHgzMDZCXFx4MzA2MVxceDMwNkZcIiIsIFBy
aW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyBjaGFyMzJfdCBhcnJheSB3aXRob3V0IHRlcm1p
bmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXIzMkFycmF5V2l0aE5vVGVybWlu
YXRpbmdOdWwpIHsKKyAgLy8gQXJyYXkgYSBjb250YWlucyAnXDAnIGluIHRoZSBtaWRkbGUgYW5k
IGRvZXNuJ3QgZW5kIHdpdGggJ1wwJy4KKyAgY29uc3QgY2hhcjMyX3QgYVtdID0ge1Un8J+Riycs
IFUnXDAnLCBVJ/CfjIwnfTsKKyAgRVhQRUNUX0VRKCJVXCJcXHgxRjQ0QlxcMFxceDFGMzBDXCIg
KG5vIHRlcm1pbmF0aW5nIE5VTCkiLAorICAgICAgICAgICAgUHJpbnRBcnJheUhlbHBlcihhKSk7
Cit9CisKKy8vIGNoYXIzMl90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgorVEVTVChQcmlu
dEFycmF5VGVzdCwgQ2hhcjMyQXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsKKyAgY29uc3QgY2hh
cjMyX3QgYVtdID0gVSJcMPCfkYvwn4yMIjsKKyAgRVhQRUNUX0VRKCJVXCJcXDBcXHgxRjQ0Qlxc
eDFGMzBDXCIiLCBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8gd2NoYXJfdCBhcnJheSB3
aXRob3V0IHRlcm1pbmF0aW5nIE5VTC4KIFRFU1QoUHJpbnRBcnJheVRlc3QsIFdDaGFyQXJyYXlX
aXRoTm9UZXJtaW5hdGluZ051bCkgewogICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhl
IG1pZGRsZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAnLgotICBjb25zdCB3Y2hhcl90IGFbXSA9
IHsgTCdIJywgTCdcMCcsIEwnaScgfTsKKyAgY29uc3Qgd2NoYXJfdCBhW10gPSB7TCdIJywgTCdc
MCcsIEwnaSd9OwogICBFWFBFQ1RfRVEoIkxcIkhcXDBpXCIgKG5vIHRlcm1pbmF0aW5nIE5VTCki
LCBQcmludEFycmF5SGVscGVyKGEpKTsKIH0KIAogLy8gd2NoYXJfdCBhcnJheSB3aXRoIHRlcm1p
bmF0aW5nIE5VTC4KLVRFU1QoUHJpbnRBcnJheVRlc3QsIFdDb25zdENoYXJBcnJheVdpdGhUZXJt
aW5hdGluZ051bCkgeworVEVTVChQcmludEFycmF5VGVzdCwgV0NoYXJBcnJheVdpdGhUZXJtaW5h
dGluZ051bCkgewogICBjb25zdCB3Y2hhcl90IGFbXSA9IEwiXDBIaSI7CiAgIEVYUEVDVF9FUSgi
TFwiXFwwSGlcIiIsIFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQpAQCAtNjYxLDE2ICs4NjgsNiBA
QCBURVNUKFByaW50QXJyYXlUZXN0LCBCaWdBcnJheSkgewogCiAvLyBUZXN0cyBwcmludGluZyA6
OnN0cmluZyBhbmQgOjpzdGQ6OnN0cmluZy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5H
Ci0vLyA6OnN0cmluZy4KLVRFU1QoUHJpbnRTdHJpbmdUZXN0LCBTdHJpbmdJbkdsb2JhbE5hbWVz
cGFjZSkgewotICBjb25zdCBjaGFyIHNbXSA9ICInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHg3Rlx4
RkYgYSI7Ci0gIGNvbnN0IDo6c3RyaW5nIHN0cihzLCBzaXplb2YocykpOwotICBFWFBFQ1RfRVEo
IlwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcMFxcclxcdFxcdlxceDdGXFx4RkYgYVxcMFwiIiwK
LSAgICAgICAgICAgIFByaW50KHN0cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFM
X1NUUklORwotCiAvLyA6OnN0ZDo6c3RyaW5nLgogVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmlu
Z0luU3RkTmFtZXNwYWNlKSB7CiAgIGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxuXDBc
clx0XHZceDdGXHhGRiBhIjsKQEAgLTY5MywxOSArODkwLDcgQEAgVEVTVChQcmludFN0cmluZ1Rl
c3QsIFN0cmluZ0FtYmlndW91c0hleCkgewogICBFWFBFQ1RfRVEoIlwiIVxceDUtIVwiIiwgUHJp
bnQoOjpzdGQ6OnN0cmluZygiIVx4NS0hIikpKTsKIH0KIAotLy8gVGVzdHMgcHJpbnRpbmcgOjp3
c3RyaW5nIGFuZCA6OnN0ZDo6d3N0cmluZy4KLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklO
RwotLy8gOjp3c3RyaW5nLgotVEVTVChQcmludFdpZGVTdHJpbmdUZXN0LCBTdHJpbmdJbkdsb2Jh
bE5hbWVzcGFjZSkgewotICBjb25zdCB3Y2hhcl90IHNbXSA9IEwiJ1wiP1xcXGFcYlxmXG5cMFxy
XHRcdlx4RDNceDU3Nlx4OEQzXHhDNzREIGEiOwotICBjb25zdCA6OndzdHJpbmcgc3RyKHMsIHNp
emVvZihzKS9zaXplb2Yod2NoYXJfdCkpOwotICBFWFBFQ1RfRVEoIkxcIidcXFwiP1xcXFxcXGFc
XGJcXGZcXG5cXDBcXHJcXHRcXHYiCi0gICAgICAgICAgICAiXFx4RDNcXHg1NzZcXHg4RDNcXHhD
NzREIGFcXDBcIiIsCi0gICAgICAgICAgICBQcmludChzdHIpKTsKLX0KLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0KKy8vIFRlc3RzIHByaW50aW5nIDo6c3RkOjp3c3RyaW5n
LgogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogLy8gOjpzdGQ6OndzdHJpbmcuCiBURVNUKFBy
aW50V2lkZVN0cmluZ1Rlc3QsIFN0cmluZ0luU3RkTmFtZXNwYWNlKSB7CkBAIC03MjcsNiArOTEy
LDI2IEBAIFRFU1QoUHJpbnRXaWRlU3RyaW5nVGVzdCwgU3RyaW5nQW1iaWd1b3VzSGV4KSB7CiB9
CiAjZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwogCisjaWZkZWYgX19jcHBfY2hhcjhf
dAorVEVTVChQcmludFN0cmluZ1Rlc3QsIFU4U3RyaW5nKSB7CisgIHN0ZDo6dThzdHJpbmcgc3Ry
ID0gdTgiSGVsbG8sIOS4lueVjCI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBWZXJpZnkg
RVhQRUNUX0VRIGNvbXBpbGVzIHdpdGggdGhpcyB0eXBlLgorICBFWFBFQ1RfRVEoInU4XCJIZWxs
bywgXFx4RTRcXHhCOFxceDk2XFx4RTdcXHg5NVxceDhDXCIiLCBQcmludChzdHIpKTsKK30KKyNl
bmRpZgorCitURVNUKFByaW50U3RyaW5nVGVzdCwgVTE2U3RyaW5nKSB7CisgIHN0ZDo6dTE2c3Ry
aW5nIHN0ciA9IHUiSGVsbG8sIOS4lueVjCI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBW
ZXJpZnkgRVhQRUNUX0VRIGNvbXBpbGVzIHdpdGggdGhpcyB0eXBlLgorICBFWFBFQ1RfRVEoInVc
IkhlbGxvLCBcXHg0RTE2XFx4NzU0Q1wiIiwgUHJpbnQoc3RyKSk7Cit9CisKK1RFU1QoUHJpbnRT
dHJpbmdUZXN0LCBVMzJTdHJpbmcpIHsKKyAgc3RkOjp1MzJzdHJpbmcgc3RyID0gVSJIZWxsbywg
8J+Xuu+4jyI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBWZXJpZnkgRVhQRUNUX0VRIGNv
bXBpbGVzIHdpdGggdGhpcyB0eXBlCisgIEVYUEVDVF9FUSgiVVwiSGVsbG8sIFxceDFGNUZBXFx4
RkUwRlwiIiwgUHJpbnQoc3RyKSk7Cit9CisKIC8vIFRlc3RzIHByaW50aW5nIHR5cGVzIHRoYXQg
c3VwcG9ydCBnZW5lcmljIHN0cmVhbWluZyAoaS5lLiBzdHJlYW1pbmcKIC8vIHRvIHN0ZDo6YmFz
aWNfb3N0cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiBmb3IgYW55IHZhbGlkIENoYXIgYW5kCiAvLyBD
aGFyVHJhaXRzIHR5cGVzKS4KQEAgLTc4NSwyMiArOTkwLDIyIEBAIFRFU1QoUHJpbnRUeXBlV2l0
aEdlbmVyaWNTdHJlYW1pbmdUZXN0LCBUeXBlSW1wbGljaXRseUNvbnZlcnRpYmxlKSB7CiAgIEVY
UEVDVF9FUSgiQWxsb3dzR2VuZXJpY1N0cmVhbWluZ0FuZEltcGxpY2l0Q29udmVyc2lvblRlbXBs
YXRlIiwgUHJpbnQoYSkpOwogfQogCi0jaWYgR1RFU1RfSEFTX0FCU0wKKyNpZiBHVEVTVF9JTlRF
Uk5BTF9IQVNfU1RSSU5HX1ZJRVcKIAotLy8gVGVzdHMgcHJpbnRpbmcgOjphYnNsOjpzdHJpbmdf
dmlldy4KKy8vIFRlc3RzIHByaW50aW5nIGludGVybmFsOjpTdHJpbmdWaWV3LgogCiBURVNUKFBy
aW50U3RyaW5nVmlld1Rlc3QsIFNpbXBsZVN0cmluZ1ZpZXcpIHsKLSAgY29uc3QgOjphYnNsOjpz
dHJpbmdfdmlldyBzcCA9ICJIZWxsbyI7CisgIGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3IHNw
ID0gIkhlbGxvIjsKICAgRVhQRUNUX0VRKCJcIkhlbGxvXCIiLCBQcmludChzcCkpOwogfQogCiBU
RVNUKFByaW50U3RyaW5nVmlld1Rlc3QsIFVucHJpbnRhYmxlQ2hhcmFjdGVycykgewogICBjb25z
dCBjaGFyIHN0cltdID0gIk5VTCAoXDApIGFuZCBcclx0IjsKLSAgY29uc3QgOjphYnNsOjpzdHJp
bmdfdmlldyBzcChzdHIsIHNpemVvZihzdHIpIC0gMSk7CisgIGNvbnN0IGludGVybmFsOjpTdHJp
bmdWaWV3IHNwKHN0ciwgc2l6ZW9mKHN0cikgLSAxKTsKICAgRVhQRUNUX0VRKCJcIk5VTCAoXFww
KSBhbmQgXFxyXFx0XCIiLCBQcmludChzcCkpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19B
QlNMCisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCiAvLyBUZXN0
cyBwcmludGluZyBTVEwgY29udGFpbmVycy4KIApAQCAtODE2LDcgKzEwMjEsNiBAQCBURVNUKFBy
aW50U3RsQ29udGFpbmVyVGVzdCwgTm9uRW1wdHlEZXF1ZSkgewogICBFWFBFQ1RfRVEoInsgMSwg
MyB9IiwgUHJpbnQobm9uX2VtcHR5KSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVEX01B
UF8KIAogVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIE9uZUVsZW1lbnRIYXNoTWFwKSB7CiAg
IDo6c3RkOjp1bm9yZGVyZWRfbWFwPGludCwgY2hhcj4gbWFwMTsKQEAgLTgzNiw5ICsxMDQwLDcg
QEAgVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIEhhc2hNdWx0aU1hcCkgewogICAgICAgICAg
ICAgICAgICAgPDwgIiB3aGVyZSBQcmludChtYXAxKSByZXR1cm5zIFwiIiA8PCByZXN1bHQgPDwg
IlwiLiI7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBfCiAKLSNpZiBH
VEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KIAogVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIEhh
c2hTZXQpIHsKICAgOjpzdGQ6OnVub3JkZXJlZF9zZXQ8aW50PiBzZXQxOwpAQCAtODc1LDcgKzEw
NzcsNiBAQCBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpU2V0KSB7CiAgIEVY
UEVDVF9UUlVFKHN0ZDo6ZXF1YWwoYSwgYSArIGtTaXplLCBudW1iZXJzLmJlZ2luKCkpKTsKIH0K
IAotI2VuZGlmICAvLyAgR1RFU1RfSEFTX1VOT1JERVJFRF9TRVRfCiAKIFRFU1QoUHJpbnRTdGxD
b250YWluZXJUZXN0LCBMaXN0KSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGFbXSA9IHsiaGVsbG8i
LCAid29ybGQifTsKQEAgLTkxNywxNCArMTExOCwxMiBAQCBURVNUKFByaW50U3RsQ29udGFpbmVy
VGVzdCwgTXVsdGlTZXQpIHsKICAgRVhQRUNUX0VRKCJ7IDEsIDEsIDEsIDIsIDUgfSIsIFByaW50
KHNldDEpKTsKIH0KIAotI2lmIEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXwogCiBURVNUKFBy
aW50U3RsQ29udGFpbmVyVGVzdCwgU2luZ2x5TGlua2VkTGlzdCkgewogICBpbnQgYVtdID0geyA5
LCAyLCA4IH07CiAgIGNvbnN0IHN0ZDo6Zm9yd2FyZF9saXN0PGludD4gaW50cyhhLCBhICsgMyk7
CiAgIEVYUEVDVF9FUSgieyA5LCAyLCA4IH0iLCBQcmludChpbnRzKSk7CiB9Ci0jZW5kaWYgIC8v
IEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXwogCiBURVNUKFByaW50U3RsQ29udGFpbmVyVGVz
dCwgUGFpcikgewogICBwYWlyPGNvbnN0IGJvb2wsIGludD4gcCh0cnVlLCA1KTsKQEAgLTk5MSw2
NyArMTE5MCw2IEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBDb25zdEl0ZXJhdG9yKSB7
CiAgIEVYUEVDVF9FUSgiMS1ieXRlIG9iamVjdCA8MDA+IiwgUHJpbnQoaXQpKTsKIH0KIAotI2lm
IEdURVNUX0hBU19UUjFfVFVQTEUKLS8vIFRlc3RzIHByaW50aW5nIDo6c3RkOjp0cjE6OnR1cGxl
cy4KLQotLy8gVHVwbGVzIG9mIHZhcmlvdXMgYXJpdGllcy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRl
c3QsIFZhcmlvdXNTaXplcykgewotICA6OnN0ZDo6dHIxOjp0dXBsZTw+IHQwOwotICBFWFBFQ1Rf
RVEoIigpIiwgUHJpbnQodDApKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQ+IHQxKDUpOwot
ICBFWFBFQ1RfRVEoIig1KSIsIFByaW50KHQxKSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Y2hh
ciwgYm9vbD4gdDIoJ2EnLCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoJ2EnICg5NywgMHg2MSksIHRy
dWUpIiwgUHJpbnQodDIpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludD4g
dDMoZmFsc2UsIDIsIDMpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMykiLCBQcmludCh0Mykp
OwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQ+IHQ0KGZhbHNlLCAy
LCAzLCA0KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQpIiwgUHJpbnQodDQpKTsKLQot
ICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sPiB0NShmYWxzZSwg
MiwgMywgNCwgdHJ1ZSk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlKSIsIFBy
aW50KHQ1KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9v
bCwgaW50PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7Ci0gIEVYUEVDVF9FUSgiKGZhbHNl
LCAyLCAzLCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8
Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQ+IHQ3KAotICAgICAgZmFsc2UsIDIs
IDMsIDQsIHRydWUsIDYsIDcpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwg
NiwgNykiLCBQcmludCh0NykpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50
LCBpbnQsIGJvb2wsIGludCwgaW50LCBib29sPiB0OCgKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0
cnVlLCA2LCA3LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYs
IDcsIHRydWUpIiwgUHJpbnQodDgpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQs
IGludCwgaW50LCBib29sLCBpbnQsIGludCwgYm9vbCwgaW50PiB0OSgKLSAgICAgIGZhbHNlLCAy
LCAzLCA0LCB0cnVlLCA2LCA3LCB0cnVlLCA5KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMs
IDQsIHRydWUsIDYsIDcsIHRydWUsIDkpIiwgUHJpbnQodDkpKTsKLQotICBjb25zdCBjaGFyKiBj
b25zdCBzdHIgPSAiOCI7Ci0gIC8vIFZDKysgMjAxMCdzIGltcGxlbWVudGF0aW9uIG9mIHR1cGxl
IG9mIEMrKzB4IGlzIGRlZmljaWVudCwgcmVxdWlyaW5nCi0gIC8vIGFuIGV4cGxpY2l0IHR5cGUg
Y2FzdCBvZiBOVUxMIHRvIGJlIHVzZWQuCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGNoYXIs
IHNob3J0LCB0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzIsICAvLyBOT0xJTlQKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdGluZzo6aW50ZXJuYWw6OkludDY0LCBmbG9hdCwgZG91YmxlLCBjb25zdCBj
aGFyKiwgdm9pZCosCi0gICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nPgotICAgICAgdDEw
KGZhbHNlLCAnYScsIHN0YXRpY19jYXN0PHNob3J0PigzKSwgNCwgNSwgMS41RiwgLTIuNSwgc3Ry
LCAgLy8gTk9MSU5UCi0gICAgICAgICAgSW1wbGljaXRDYXN0Xzx2b2lkKj4oTlVMTCksICIxMCIp
OwotICBFWFBFQ1RfRVEoIihmYWxzZSwgJ2EnICg5NywgMHg2MSksIDMsIDQsIDUsIDEuNSwgLTIu
NSwgIiArIFByaW50UG9pbnRlcihzdHIpICsKLSAgICAgICAgICAgICIgcG9pbnRpbmcgdG8gXCI4
XCIsIE5VTEwsIFwiMTBcIikiLAotICAgICAgICAgICAgUHJpbnQodDEwKSk7Ci19Ci0KLS8vIE5l
c3RlZCB0dXBsZXMuCi1URVNUKFByaW50VHIxVHVwbGVUZXN0LCBOZXN0ZWRUdXBsZSkgewotICA6
OnN0ZDo6dHIxOjp0dXBsZTwgOjpzdGQ6OnRyMTo6dHVwbGU8aW50LCBib29sPiwgY2hhcj4gbmVz
dGVkKAotICAgICAgOjpzdGQ6OnRyMTo6bWFrZV90dXBsZSg1LCB0cnVlKSwgJ2EnKTsKLSAgRVhQ
RUNUX0VRKCIoKDUsIHRydWUpLCAnYScgKDk3LCAweDYxKSkiLCBQcmludChuZXN0ZWQpKTsKLX0K
LQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLSNpZiBHVEVTVF9IQVNfU1REX1RV
UExFXwogLy8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OnR1cGxlcy4KIAogLy8gVHVwbGVzIG9mIHZh
cmlvdXMgYXJpdGllcy4KQEAgLTEwNzEsMzIgKzEyMDksMTEgQEAgVEVTVChQcmludFN0ZFR1cGxl
VGVzdCwgVmFyaW91c1NpemVzKSB7CiAgIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50
PiB0NChmYWxzZSwgMiwgMywgNCk7CiAgIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0KSIsIFBy
aW50KHQ0KSk7CiAKLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2w+IHQ1
KGZhbHNlLCAyLCAzLCA0LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRy
dWUpIiwgUHJpbnQodDUpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwg
Ym9vbCwgaW50PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7Ci0gIEVYUEVDVF9FUSgiKGZh
bHNlLCAyLCAzLCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJv
b2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50PiB0NygKLSAgICAgIGZhbHNlLCAyLCAz
LCA0LCB0cnVlLCA2LCA3KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYs
IDcpIiwgUHJpbnQodDcpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwg
Ym9vbCwgaW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYs
IDcsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1
ZSkiLCBQcmludCh0OCkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBi
b29sLCBpbnQsIGludCwgYm9vbCwgaW50PiB0OSgKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0cnVl
LCA2LCA3LCB0cnVlLCA5KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYs
IDcsIHRydWUsIDkpIiwgUHJpbnQodDkpKTsKLQogICBjb25zdCBjaGFyKiBjb25zdCBzdHIgPSAi
OCI7Ci0gIC8vIFZDKysgMjAxMCdzIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIG9mIEMrKzB4IGlz
IGRlZmljaWVudCwgcmVxdWlyaW5nCi0gIC8vIGFuIGV4cGxpY2l0IHR5cGUgY2FzdCBvZiBOVUxM
IHRvIGJlIHVzZWQuCi0gIDo6c3RkOjp0dXBsZTxib29sLCBjaGFyLCBzaG9ydCwgdGVzdGluZzo6
aW50ZXJuYWw6OkludDMyLCAgLy8gTk9MSU5UCi0gICAgICAgICAgICAgICB0ZXN0aW5nOjppbnRl
cm5hbDo6SW50NjQsIGZsb2F0LCBkb3VibGUsIGNvbnN0IGNoYXIqLCB2b2lkKiwKLSAgICAgICAg
ICAgICAgIHN0ZDo6c3RyaW5nPgorICA6OnN0ZDo6dHVwbGU8Ym9vbCwgY2hhciwgc2hvcnQsIGlu
dDMyX3QsIGludDY0X3QsIGZsb2F0LCBkb3VibGUsICAvLyBOT0xJTlQKKyAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqLCB2b2lkKiwgc3RkOjpzdHJpbmc+CiAgICAgICB0MTAoZmFsc2UsICdhJywg
c3RhdGljX2Nhc3Q8c2hvcnQ+KDMpLCA0LCA1LCAxLjVGLCAtMi41LCBzdHIsICAvLyBOT0xJTlQK
LSAgICAgICAgICBJbXBsaWNpdENhc3RfPHZvaWQqPihOVUxMKSwgIjEwIik7CisgICAgICAgICAg
bnVsbHB0ciwgIjEwIik7CiAgIEVYUEVDVF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywg
NCwgNSwgMS41LCAtMi41LCAiICsgUHJpbnRQb2ludGVyKHN0cikgKwogICAgICAgICAgICAgIiBw
b2ludGluZyB0byBcIjhcIiwgTlVMTCwgXCIxMFwiKSIsCiAgICAgICAgICAgICBQcmludCh0MTAp
KTsKQEAgLTExMDksMTMgKzEyMjYsMjcgQEAgVEVTVChQcmludFN0ZFR1cGxlVGVzdCwgTmVzdGVk
VHVwbGUpIHsKICAgRVhQRUNUX0VRKCIoKDUsIHRydWUpLCAnYScgKDk3LCAweDYxKSkiLCBQcmlu
dChuZXN0ZWQpKTsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KLSNpZiBHVEVT
VF9MQU5HX0NYWDExCiBURVNUKFByaW50TnVsbHB0clQsIEJhc2ljKSB7CiAgIEVYUEVDVF9FUSgi
KG51bGxwdHIpIiwgUHJpbnQobnVsbHB0cikpOwogfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NY
WDExCisKK1RFU1QoUHJpbnRSZWZlcmVuY2VXcmFwcGVyLCBQcmludGFibGUpIHsKKyAgaW50IHgg
PSA1OworICBFWFBFQ1RfRVEoIkAiICsgUHJpbnRQb2ludGVyKCZ4KSArICIgNSIsIFByaW50KHN0
ZDo6cmVmKHgpKSk7CisgIEVYUEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJngpICsgIiA1Iiwg
UHJpbnQoc3RkOjpjcmVmKHgpKSk7Cit9CisKK1RFU1QoUHJpbnRSZWZlcmVuY2VXcmFwcGVyLCBV
bnByaW50YWJsZSkgeworICA6OmZvbzo6VW5wcmludGFibGVJbkZvbyB1cDsKKyAgRVhQRUNUX0VR
KAorICAgICAgIkAiICsgUHJpbnRQb2ludGVyKCZ1cCkgKworICAgICAgICAgICIgMTYtYnl0ZSBv
YmplY3QgPEVGLTEyIDAwLTAwIDM0LUFCIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwPiIs
CisgICAgICBQcmludChzdGQ6OnJlZih1cCkpKTsKKyAgRVhQRUNUX0VRKAorICAgICAgIkAiICsg
UHJpbnRQb2ludGVyKCZ1cCkgKworICAgICAgICAgICIgMTYtYnl0ZSBvYmplY3QgPEVGLTEyIDAw
LTAwIDM0LUFCIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwPiIsCisgICAgICBQcmludChz
dGQ6OmNyZWYodXApKSk7Cit9CiAKIC8vIFRlc3RzIHByaW50aW5nIHVzZXItZGVmaW5lZCB1bnBy
aW50YWJsZSB0eXBlcy4KIApAQCAtMTE2NCw2ICsxMjk1LDIwIEBAIFRFU1QoUHJpbnRTdHJlYW1h
YmxlVHlwZVRlc3QsIFRlbXBsYXRlVHlwZUluVXNlck5hbWVzcGFjZSkgewogICAgICAgICAgICAg
UHJpbnQoOjpmb286OlN0cmVhbWFibGVUZW1wbGF0ZUluRm9vPGludD4oKSkpOwogfQogCitURVNU
KFByaW50U3RyZWFtYWJsZVR5cGVUZXN0LCBUeXBlSW5Vc2VyTmFtZXNwYWNlV2l0aFRlbXBsYXRl
ZFN0cmVhbU9wZXJhdG9yKSB7CisgIEVYUEVDVF9FUSgiVGVtcGxhdGVkU3RyZWFtYWJsZUluRm9v
IiwKKyAgICAgICAgICAgIFByaW50KDo6Zm9vOjpUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28oKSkp
OworfQorCitURVNUKFByaW50U3RyZWFtYWJsZVR5cGVUZXN0LCBTdWJjbGFzc1VzZXNTdXBlcmNs
YXNzU3RyZWFtT3BlcmF0b3IpIHsKKyAgUGFyZW50Q2xhc3MgcGFyZW50OworICBDaGlsZENsYXNz
V2l0aFN0cmVhbU9wZXJhdG9yIGNoaWxkX3N0cmVhbTsKKyAgQ2hpbGRDbGFzc1dpdGhvdXRTdHJl
YW1PcGVyYXRvciBjaGlsZF9ub19zdHJlYW07CisgIEVYUEVDVF9FUSgiUGFyZW50Q2xhc3MiLCBQ
cmludChwYXJlbnQpKTsKKyAgRVhQRUNUX0VRKCJDaGlsZENsYXNzV2l0aFN0cmVhbU9wZXJhdG9y
IiwgUHJpbnQoY2hpbGRfc3RyZWFtKSk7CisgIEVYUEVDVF9FUSgiUGFyZW50Q2xhc3MiLCBQcmlu
dChjaGlsZF9ub19zdHJlYW0pKTsKK30KKwogLy8gVGVzdHMgcHJpbnRpbmcgYSB1c2VyLWRlZmlu
ZWQgcmVjdXJzaXZlIGNvbnRhaW5lciB0eXBlIHRoYXQgaGFzIGEgPDwKIC8vIG9wZXJhdG9yLgog
VEVTVChQcmludFN0cmVhbWFibGVUeXBlVGVzdCwgUGF0aExpa2VJblVzZXJOYW1lc3BhY2UpIHsK
QEAgLTEzMjEsMjEgKzE0NjYsNiBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVz
c2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNQb2ludGVyKSB7CiAvLyBUZXN0cyBmb3Jt
YXR0aW5nIGEgY2hhciBwb2ludGVyIHdoZW4gaXQncyBjb21wYXJlZCB0byBhIHN0cmluZyBvYmpl
Y3QuCiAvLyBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcmludCB0aGUgY2hhciBwb2ludGVyIGFz
IGEgQyBzdHJpbmcuCiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotLy8gY2hhciBwb2lu
dGVyIHZzIDo6c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRl
c3QsIFdvcmtzRm9yQ2hhclBvaW50ZXJWc1N0cmluZykgewotICBjb25zdCBjaGFyKiBzID0gImhl
bGxvIFwid29ybGQiOwotICBFWFBFQ1RfU1RSRVEoIlwiaGVsbG8gXFxcIndvcmxkXCIiLCAgLy8g
VGhlIHN0cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgRm9y
bWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHMsIDo6c3RyaW5nKCkpLmNfc3RyKCkpOwot
Ci0gIC8vIGNoYXIqCi0gIGNoYXIgc3RyW10gPSAiaGlcMSI7Ci0gIGNoYXIqIHAgPSBzdHI7Ci0g
IEVYUEVDVF9TVFJFUSgiXCJoaVxceDFcIiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxk
IGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1l
c3NhZ2UocCwgOjpzdHJpbmcoKSkuY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQogLy8gY2hhciBwb2lu
dGVyIHZzIHN0ZDo6c3RyaW5nCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2Fn
ZVRlc3QsIFdvcmtzRm9yQ2hhclBvaW50ZXJWc1N0ZFN0cmluZykgewogICBjb25zdCBjaGFyKiBz
ID0gImhlbGxvIFwid29ybGQiOwpAQCAtMTM0OSwyMSArMTQ3OSw2IEBAIFRFU1QoRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyUG9pbnRlclZzU3RkU3Ry
aW5nKSB7CiAgICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uo
cCwgOjpzdGQ6OnN0cmluZygpKS5jX3N0cigpKTsKIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxf
V1NUUklORwotLy8gd2NoYXJfdCBwb2ludGVyIHZzIDo6d3N0cmluZwotVEVTVChGb3JtYXRGb3JD
b21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzV1N0cmlu
ZykgewotICBjb25zdCB3Y2hhcl90KiBzID0gTCJoaSBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVR
KCJMXCJoaSBcXFwid29ybGRcIiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVz
Y2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uo
cywgOjp3c3RyaW5nKCkpLmNfc3RyKCkpOwotCi0gIC8vIHdjaGFyX3QqCi0gIHdjaGFyX3Qgc3Ry
W10gPSBMImhpXDEiOwotICB3Y2hhcl90KiBwID0gc3RyOwotICBFWFBFQ1RfU1RSRVEoIkxcImhp
XFx4MVwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAg
ICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OndzdHJpbmco
KSkuY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogLy8g
d2NoYXJfdCBwb2ludGVyIHZzIHN0ZDo6d3N0cmluZwogVEVTVChGb3JtYXRGb3JDb21wYXJpc29u
RmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzU3RkV1N0cmluZykgewpA
QCAtMTM4Niw3ICsxNTAxLDcgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3Nh
Z2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzU3RkV1N0cmluZykgewogLy8gY2hhciBhcnJh
eSB2cyBwb2ludGVyCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3Qs
IFdvcmtzRm9yQ2hhckFycmF5VnNQb2ludGVyKSB7CiAgIGNoYXIgc3RyW10gPSAiaGkgXCJ3b3Js
ZFwiIjsKLSAgY2hhciogcCA9IE5VTEw7CisgIGNoYXIqIHAgPSBudWxscHRyOwogICBFWFBFQ1Rf
RVEoUHJpbnRQb2ludGVyKHN0ciksCiAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFp
bHVyZU1lc3NhZ2Uoc3RyLCBwKS5jX3N0cigpKTsKIH0KQEAgLTE0MDEsNyArMTUxNiw3IEBAIFRF
U1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyQXJy
YXlWc0NoYXJBcnJheSkgewogLy8gd2NoYXJfdCBhcnJheSB2cyBwb2ludGVyCiBURVNUKEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJBcnJheVZzUG9p
bnRlcikgewogICB3Y2hhcl90IHN0cltdID0gTCJoaSBcIndvcmxkXCIiOwotICB3Y2hhcl90KiBw
ID0gTlVMTDsKKyAgd2NoYXJfdCogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUShQcmludFBvaW50
ZXIoc3RyKSwKICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShz
dHIsIHApLmNfc3RyKCkpOwogfQpAQCAtMTQxNiwxNiArMTUzMSw2IEBAIFRFU1QoRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNXQ2hhckFy
cmF5KSB7CiAvLyBUZXN0cyBmb3JtYXR0aW5nIGEgY2hhciBhcnJheSB3aGVuIGl0J3MgY29tcGFy
ZWQgd2l0aCBhIHN0cmluZyBvYmplY3QuCiAvLyBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcmlu
dCB0aGUgYXJyYXkgYXMgYSBDIHN0cmluZy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5H
Ci0vLyBjaGFyIGFycmF5IHZzIHN0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVy
ZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVZzU3RyaW5nKSB7Ci0gIGNvbnN0IGNoYXIg
c3RyW10gPSAiaGkgXCJ3XDBybGRcIiI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoaSBcXFwid1wiIiwg
IC8vIFRoZSBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBFbWJlZGRlZCBOVUwgdGVybWluYXRlcyB0aGUgc3RyaW5nLgotICAgICAg
ICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpzdHJpbmco
KSkuY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQogLy8gY2hhciBhcnJheSB2cyBzdGQ6OnN0cmluZwog
VEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJB
cnJheVZzU3RkU3RyaW5nKSB7CiAgIGNvbnN0IGNoYXIgc3RyW10gPSAiaGkgXCJ3b3JsZFwiIjsK
QEAgLTE0MzMsMTUgKzE1MzgsNiBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVz
c2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdGRTdHJpbmcpIHsKICAgICAgICAgICAgICAg
IEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6c3RkOjpzdHJpbmcoKSku
Y19zdHIoKSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIHdjaGFyX3Qg
YXJyYXkgdnMgd3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VU
ZXN0LCBXb3Jrc0ZvcldDaGFyQXJyYXlWc1dTdHJpbmcpIHsKLSAgY29uc3Qgd2NoYXJfdCBzdHJb
XSA9IEwiaGkgXCJ3b3JsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJMXCJoaSBcXFwid29ybGRcXFwi
XCIiLCAgLy8gVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uoc3RyLCA6OndzdHJpbmcoKSkuY19zdHIo
KSk7Ci19Ci0jZW5kaWYKLQogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogLy8gd2NoYXJfdCBh
cnJheSB2cyBzdGQ6OndzdHJpbmcKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNz
YWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNTdGRXU3RyaW5nKSB7CkBAIC0xNTE2LDYgKzE2
MTIsNjEgQEAgVEVTVChQcmludFRvU3RyaW5nVGVzdCwgV29ya3NGb3JDaGFyQXJyYXlXaXRoRW1i
ZWRkZWROdWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuICAgIEFzIFRleHQ6IFwi
RnJvbSDDpCDigJQg4bqRXCIiKTsKIH0KIAorI2lmIEdURVNUX0hBU19SVFRJCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KK2NsYXNzIFByaW50VG9TdHJpbmdUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgeworIHB1YmxpYzoKKyAgdXNpbmcgVGVzdFR5cGUgPSBUOworfTsKKworc3RydWN0IFByaW50
QmFzZSB7CisgIHZpcnR1YWwgflByaW50QmFzZSgpID0gZGVmYXVsdDsKK307CitzdHJ1Y3QgUHJp
bnREZXJpdmVkIDogUHJpbnRCYXNlIHt9OworCit1c2luZyBQcmludFRvU3RyaW5nVGVzdFR5cGVz
ID0KKyAgICB0ZXN0aW5nOjpUeXBlczx2b2lkLCBpbnQsIGNvbnN0IHZvbGF0aWxlIGludCosIFBy
aW50QmFzZSwgUHJpbnREZXJpdmVkPjsKK1RZUEVEX1RFU1RfU1VJVEUoUHJpbnRUb1N0cmluZ1Rl
c3QsIFByaW50VG9TdHJpbmdUZXN0VHlwZXMpOworCisvLyBSZXR1cm5zIGB0cnVlYCBpZiBgaGF5
c3RhY2tgIGNvbnRhaW5zIGBuZWVkbGVgLgorLy8KKy8vIEZJWE1FOiBSZXBsYWNlIHdpdGggYEVY
UEVDVF9USEFUKGhheXN0YWNrLCBIYXNTdWJzdHIobmVlZGxlKSlgIG9uY2UKKy8vIEdvb2dsZVRl
c3Qgc3RhcnRzIGRlcGVuZGluZyBvbiBHb29nbGVNb2NrLgorYm9vbCBDb250YWluc1N1YnN0cihj
b25zdCBzdGQ6OnN0cmluZyYgaGF5c3RhY2ssIGNvbnN0IHN0ZDo6c3RyaW5nJiBuZWVkbGUpIHsK
KyAgcmV0dXJuIGhheXN0YWNrLmZpbmQobmVlZGxlKSAhPSBzdGQ6OnN0cmluZzo6bnBvczsKK30K
KworVFlQRURfVEVTVChQcmludFRvU3RyaW5nVGVzdCwgSW5jbHVkZXNOYW1lV2l0aFR5cGVJbmZv
QW5kVHlwZUluZGV4KSB7CisgIGNvbnN0IDo6c3RkOjp0eXBlX2luZm8mIGluZm8gPSB0eXBlaWQo
dHlwZW5hbWUgVGVzdEZpeHR1cmU6OlRlc3RUeXBlKTsKKyAgU0NPUEVEX1RSQUNFKGluZm8ubmFt
ZSgpKTsKKyAgRVhQRUNUX1RSVUUoQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmluZyhpbmZvKSwg
aW5mby5uYW1lKCkpKTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICBDb250YWluc1N1YnN0cihQcmlu
dFRvU3RyaW5nKDo6c3RkOjp0eXBlX2luZGV4e2luZm99KSwgaW5mby5uYW1lKCkpKTsKK30KKwor
VEVTVChQcmludFRvU3RyaW5nVGVzdCwgSW5jbHVkZXNOYW1lV2l0aFR5cGVJbmZvQW5kVHlwZUlu
ZGV4VmlhQmFzZVJlZikgeworICBQcmludERlcml2ZWQgZGVyaXZlZDsKKyAgUHJpbnRCYXNlJiBi
YXNlID0gZGVyaXZlZDsKKworICB7CisgICAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgZGVyaXZl
ZF9pbmZvID0gdHlwZWlkKGRlcml2ZWQpOworICAgIFNDT1BFRF9UUkFDRShkZXJpdmVkX2luZm8u
bmFtZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgQ29udGFpbnNTdWJzdHIoUHJpbnRU
b1N0cmluZyhkZXJpdmVkX2luZm8pLCBkZXJpdmVkX2luZm8ubmFtZSgpKSk7CisgICAgRVhQRUNU
X1RSVUUoQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmluZyg6OnN0ZDo6dHlwZV9pbmRleHtkZXJp
dmVkX2luZm99KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmVkX2luZm8u
bmFtZSgpKSk7CisgIH0KKyAgeworICAgIGNvbnN0IDo6c3RkOjp0eXBlX2luZm8mIGJhc2VfcmVm
X2luZm8gPSB0eXBlaWQoYmFzZSk7CisgICAgU0NPUEVEX1RSQUNFKGJhc2VfcmVmX2luZm8ubmFt
ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0
cmluZyhiYXNlX3JlZl9pbmZvKSwgYmFzZV9yZWZfaW5mby5uYW1lKCkpKTsKKyAgICBFWFBFQ1Rf
VFJVRShDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKDo6c3RkOjp0eXBlX2luZGV4e2Jhc2Vf
cmVmX2luZm99KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX3JlZl9pbmZv
Lm5hbWUoKSkpOworICB9Cit9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCisKIFRFU1QoSXNW
YWxpZFVURjhUZXN0LCBJbGxGb3JtZWRVVEY4KSB7CiAgIC8vIFRoZSBmb2xsb3dpbmcgdGVzdCBz
dHJpbmdzIGFyZSBpbGwtZm9ybWVkIFVURi04IGFuZCBhcmUgcHJpbnRlZAogICAvLyBhcyBoZXgg
b25seSAob3IgQVNDSUksIGluIGNhc2Ugb2YgQVNDSUkgYnl0ZXMpIGJlY2F1c2UgSXNWYWxpZFVU
RjgoKSBpcwpAQCAtMTYwMiw3ICsxNzUzLDcgQEAgVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VGVz
dCwgV29ya3NGb3JDU3RyaW5nKSB7CiAgIFVuaXZlcnNhbFRlcnNlUHJpbnQoczIsICZzczIpOwog
ICBFWFBFQ1RfRVEoIlwiYWJjXCIiLCBzczIuc3RyKCkpOwogCi0gIGNvbnN0IGNoYXIqIHMzID0g
TlVMTDsKKyAgY29uc3QgY2hhciogczMgPSBudWxscHRyOwogICA6OnN0ZDo6c3RyaW5nc3RyZWFt
IHNzMzsKICAgVW5pdmVyc2FsVGVyc2VQcmludChzMywgJnNzMyk7CiAgIEVYUEVDVF9FUSgiTlVM
TCIsIHNzMy5zdHIoKSk7CkBAIC0xNjIxLDYgKzE3NzIsMTMgQEAgVEVTVChVbml2ZXJzYWxQcmlu
dFRlc3QsIFdvcmtzRm9yUmVmZXJlbmNlKSB7CiAgIEVYUEVDVF9FUSgiMTIzIiwgc3Muc3RyKCkp
OwogfQogCitURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JQYWlyV2l0aENvbnN0KSB7
CisgIHN0ZDo6cGFpcjxjb25zdCBXcmFwcGVyPHN0ZDo6c3RyaW5nPiwgaW50PiBwKFdyYXBwZXI8
c3RkOjpzdHJpbmc+KCJhYmMiKSwgMSk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgIFVu
aXZlcnNhbFByaW50KHAsICZzcyk7CisgIEVYUEVDVF9FUSgiKFdyYXBwZXIoXCJhYmNcIiksIDEp
Iiwgc3Muc3RyKCkpOworfQorCiBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JDU3Ry
aW5nKSB7CiAgIGNvbnN0IGNoYXIqIHMxID0gImFiYyI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0g
c3MxOwpAQCAtMTYzMiw3ICsxNzkwLDcgQEAgVEVTVChVbml2ZXJzYWxQcmludFRlc3QsIFdvcmtz
Rm9yQ1N0cmluZykgewogICBVbml2ZXJzYWxQcmludChzMiwgJnNzMik7CiAgIEVYUEVDVF9FUShQ
cmludFBvaW50ZXIoczIpICsgIiBwb2ludGluZyB0byBcImFiY1wiIiwgc3RkOjpzdHJpbmcoc3My
LnN0cigpKSk7CiAKLSAgY29uc3QgY2hhciogczMgPSBOVUxMOworICBjb25zdCBjaGFyKiBzMyA9
IG51bGxwdHI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3MzOwogICBVbml2ZXJzYWxQcmludChz
MywgJnNzMyk7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIHNzMy5zdHIoKSk7CkBAIC0xNjUwLDQyICsx
ODA4LDYzIEBAIFRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheSkgewog
ICBFWFBFQ1RfRVEoIlwiXFxcIkxpbmVcXDAgMVxcXCJcXG5MaW5lIDJcIiIsIHNzMi5zdHIoKSk7
CiB9CiAKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmlu
dFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c0VtcHR5VHVwbGUpIHsKLSAg
U3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3Mo
Ci0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKCkpOwotICBFWFBFQ1RfRVEoMHUsIHJlc3Vs
dC5zaXplKCkpOwotfQotCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3Ry
aW5nc1Rlc3RXaXRoVHIxLCBQcmludHNPbmVUdXBsZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVu
aXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6
Om1ha2VfdHVwbGUoMSkpOwotICBBU1NFUlRfRVEoMXUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBF
Q1RfRVEoIjEiLCByZXN1bHRbMF0pOwotfQorVEVTVChVbml2ZXJzYWxQcmludFRlc3QsIEluY29t
cGxldGVUeXBlKSB7CisgIHN0cnVjdCBJbmNvbXBsZXRlOworICBjaGFyIHNvbWVfb2JqZWN0ID0g
MDsKKyAgRVhQRUNUX0VRKCIoaW5jb21wbGV0ZSB0eXBlKSIsCisgICAgICAgICAgICBQcmludFRv
U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8SW5jb21wbGV0ZSY+KHNvbWVfb2JqZWN0KSkpOworfQor
CitURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgU21hcnRQb2ludGVycykgeworICBFWFBFQ1RfRVEo
IihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPGludD4oKSkpOworICBz
dGQ6OnVuaXF1ZV9wdHI8aW50PiBwKG5ldyBpbnQoMTcpKTsKKyAgRVhQRUNUX0VRKCIocHRyID0g
IiArIFByaW50UG9pbnRlcihwLmdldCgpKSArICIsIHZhbHVlID0gMTcpIiwKKyAgICAgICAgICAg
IFByaW50VG9TdHJpbmcocCkpOworICBzdGQ6OnVuaXF1ZV9wdHI8aW50W10+IHAyKG5ldyBpbnRb
Ml0pOworICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAyLmdldCgpKSArICIpIiwgUHJp
bnRUb1N0cmluZyhwMikpOworCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmlu
ZyhzdGQ6OnNoYXJlZF9wdHI8aW50PigpKSk7CisgIHN0ZDo6c2hhcmVkX3B0cjxpbnQ+IHAzKG5l
dyBpbnQoMTk3OSkpOworICBFWFBFQ1RfRVEoIihwdHIgPSAiICsgUHJpbnRQb2ludGVyKHAzLmdl
dCgpKSArICIsIHZhbHVlID0gMTk3OSkiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhwMykp
OworI2lmIF9fY3BwX2xpYl9zaGFyZWRfcHRyX2FycmF5cyA+PSAyMDE2MTFMCisgIHN0ZDo6c2hh
cmVkX3B0cjxpbnRbXT4gcDQobmV3IGludFsyXSk7CisgIEVYUEVDVF9FUSgiKCIgKyBQcmludFBv
aW50ZXIocDQuZ2V0KCkpICsgIikiLCBQcmludFRvU3RyaW5nKHA0KSk7CisjZW5kaWYKIAotVEVT
VChVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFRyMSwgUHJp
bnRzVHdvVHVwbGUpIHsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVw
bGVGaWVsZHNUb1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDEsICdhJykp
OwotICBBU1NFUlRfRVEoMnUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBFQ1RfRVEoIjEiLCByZXN1
bHRbMF0pOwotICBFWFBFQ1RfRVEoIidhJyAoOTcsIDB4NjEpIiwgcmVzdWx0WzFdKTsKLX0KKyAg
Ly8gbW9kaWZpZXJzCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6
OnVuaXF1ZV9wdHI8aW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0
cmluZyhzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxw
dHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgaW50PigpKSk7Cisg
IEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9s
YXRpbGUgY29uc3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0
cmluZyhzdGQ6OnVuaXF1ZV9wdHI8aW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBpbnRbXT4oKSkpOworICBFWFBF
Q1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPHZvbGF0aWxl
IGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwKKyAgICAgICAgICAgIFByaW50
VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPHZvbGF0aWxlIGNvbnN0IGludFtdPigpKSk7CisgIEVY
UEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8aW50Pigp
KSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9w
dHI8Y29uc3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmlu
ZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRpbGUgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxw
dHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRpbGUgY29uc3QgaW50Pigp
KSk7CisjaWYgX19jcHBfbGliX3NoYXJlZF9wdHJfYXJyYXlzID49IDIwMTYxMUwKKyAgRVhQRUNU
X0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxpbnRbXT4oKSkp
OworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRfcHRy
PGNvbnN0IGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmlu
ZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRpbGUgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVs
bHB0cikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRp
bGUgY29uc3QgaW50W10+KCkpKTsKKyNlbmRpZgogCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRU
dXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUZXJzZWx5KSB7Ci0gIGNvbnN0
IGludCBuID0gMTsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVG
aWVsZHNUb1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjp0dXBsZTxjb25zdCBpbnQmLCBjb25z
dCBjaGFyKj4obiwgImEiKSk7Ci0gIEFTU0VSVF9FUSgydSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVY
UEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0gIEVYUEVDVF9FUSgiXCJhXCIiLCByZXN1bHRbMV0p
OworICAvLyB2b2lkCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6
OnVuaXF1ZV9wdHI8dm9pZCwgdm9pZCAoKikodm9pZCopPigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbnVsbHB0ciwgbnVsbHB0cikpKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9p
bnRlcihwLmdldCgpKSArICIpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcoCisgICAgICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHZvaWQsIHZvaWQgKCopKHZvaWQqKT4ocC5nZXQoKSwg
W10odm9pZCopIHt9KSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmco
c3RkOjpzaGFyZWRfcHRyPHZvaWQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9pbnRl
cihwLmdldCgpKSArICIpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRf
cHRyPHZvaWQ+KHAuZ2V0KCksIFtdKHZvaWQqKSB7fSkpKTsKIH0KIAotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFIxX1RVUExFCi0KLSNpZiBHVEVTVF9IQVNfU1REX1RVUExFXwotCiBURVNUKFVuaXZl
cnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQcmludHNFbXB0
eVR1cGxlKSB7CiAgIFN0cmluZ3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmll
bGRzVG9TdHJpbmdzKDo6c3RkOjptYWtlX3R1cGxlKCkpOwogICBFWFBFQ1RfRVEoMHUsIHJlc3Vs
dC5zaXplKCkpOwpAQCAtMTcxNSwzNCArMTg5NCwxMjQgQEAgVEVTVChVbml2ZXJzYWxUZXJzZVBy
aW50VHVwbGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFN0ZCwgUHJpbnRzVGVyc2VseSkgewogICBF
WFBFQ1RfRVEoIlwiYVwiIiwgcmVzdWx0WzFdKTsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNf
U1REX1RVUExFXworI2lmIEdURVNUX0lOVEVSTkFMX0hBU19BTlkKK2NsYXNzIFByaW50QW55VGVz
dCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBFeHBlY3RlZFR5cGVOYW1lKCkgeworI2lm
IEdURVNUX0hBU19SVFRJCisgICAgcmV0dXJuIGludGVybmFsOjpHZXRUeXBlTmFtZTxUPigpOwor
I2Vsc2UKKyAgICByZXR1cm4gIjx1bmtub3duX3R5cGU+IjsKKyNlbmRpZiAgLy8gR1RFU1RfSEFT
X1JUVEkKKyAgfQorfTsKKworVEVTVF9GKFByaW50QW55VGVzdCwgRW1wdHkpIHsKKyAgaW50ZXJu
YWw6OkFueSBhbnk7CisgIEVYUEVDVF9FUSgibm8gdmFsdWUiLCBQcmludFRvU3RyaW5nKGFueSkp
OworfQorCitURVNUX0YoUHJpbnRBbnlUZXN0LCBOb25FbXB0eSkgeworICBpbnRlcm5hbDo6QW55
IGFueTsKKyAgY29uc3RleHByIGludCB2YWwxID0gMTA7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIHZh
bDIgPSAiY29udGVudCI7CisKKyAgYW55ID0gdmFsMTsKKyAgRVhQRUNUX0VRKCJ2YWx1ZSBvZiB0
eXBlICIgKyBFeHBlY3RlZFR5cGVOYW1lPGludD4oKSwgUHJpbnRUb1N0cmluZyhhbnkpKTsKIAot
I2lmIEdURVNUX0hBU19BQlNMCisgIGFueSA9IHZhbDI7CisgIEVYUEVDVF9FUSgidmFsdWUgb2Yg
dHlwZSAiICsgRXhwZWN0ZWRUeXBlTmFtZTxzdGQ6OnN0cmluZz4oKSwKKyAgICAgICAgICAgIFBy
aW50VG9TdHJpbmcoYW55KSk7Cit9CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19BTlkK
IAorI2lmIEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAogVEVTVChQcmludE9wdGlvbmFsVGVz
dCwgQmFzaWMpIHsKLSAgYWJzbDo6b3B0aW9uYWw8aW50PiB2YWx1ZTsKKyAgaW50ZXJuYWw6Ok9w
dGlvbmFsPGludD4gdmFsdWU7CiAgIEVYUEVDVF9FUSgiKG51bGxvcHQpIiwgUHJpbnRUb1N0cmlu
Zyh2YWx1ZSkpOwogICB2YWx1ZSA9IHs3fTsKICAgRVhQRUNUX0VRKCIoNykiLCBQcmludFRvU3Ry
aW5nKHZhbHVlKSk7Ci0gIEVYUEVDVF9FUSgiKDEuMSkiLCBQcmludFRvU3RyaW5nKGFic2w6Om9w
dGlvbmFsPGRvdWJsZT57MS4xfSkpOwotICBFWFBFQ1RfRVEoIihcIkFcIikiLCBQcmludFRvU3Ry
aW5nKGFic2w6Om9wdGlvbmFsPHN0ZDo6c3RyaW5nPnsiQSJ9KSk7CisgIEVYUEVDVF9FUSgiKDEu
MSkiLCBQcmludFRvU3RyaW5nKGludGVybmFsOjpPcHRpb25hbDxkb3VibGU+ezEuMX0pKTsKKyAg
RVhQRUNUX0VRKCIoXCJBXCIpIiwgUHJpbnRUb1N0cmluZyhpbnRlcm5hbDo6T3B0aW9uYWw8c3Rk
OjpzdHJpbmc+eyJBIn0pKTsKIH0KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX09QVElP
TkFMCiAKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAogc3RydWN0IE5vblByaW50YWJs
ZSB7CiAgIHVuc2lnbmVkIGNoYXIgY29udGVudHMgPSAxNzsKIH07CiAKIFRFU1QoUHJpbnRPbmVv
ZlRlc3QsIEJhc2ljKSB7Ci0gIHVzaW5nIFR5cGUgPSBhYnNsOjp2YXJpYW50PGludCwgU3RyZWFt
YWJsZUluR2xvYmFsLCBOb25QcmludGFibGU+OwotICBFWFBFQ1RfRVEoIignaW50JyB3aXRoIHZh
bHVlIDcpIiwgUHJpbnRUb1N0cmluZyhUeXBlKDcpKSk7Ci0gIEVYUEVDVF9FUSgiKCdTdHJlYW1h
YmxlSW5HbG9iYWwnIHdpdGggdmFsdWUgU3RyZWFtYWJsZUluR2xvYmFsKSIsCisgIHVzaW5nIFR5
cGUgPSBpbnRlcm5hbDo6VmFyaWFudDxpbnQsIFN0cmVhbWFibGVJbkdsb2JhbCwgTm9uUHJpbnRh
YmxlPjsKKyAgRVhQRUNUX0VRKCIoJ2ludChpbmRleCA9IDApJyB3aXRoIHZhbHVlIDcpIiwgUHJp
bnRUb1N0cmluZyhUeXBlKDcpKSk7CisgIEVYUEVDVF9FUSgiKCdTdHJlYW1hYmxlSW5HbG9iYWwo
aW5kZXggPSAxKScgd2l0aCB2YWx1ZSBTdHJlYW1hYmxlSW5HbG9iYWwpIiwKICAgICAgICAgICAg
IFByaW50VG9TdHJpbmcoVHlwZShTdHJlYW1hYmxlSW5HbG9iYWx7fSkpKTsKICAgRVhQRUNUX0VR
KAotICAgICAgIigndGVzdGluZzo6Z3Rlc3RfcHJpbnRlcnNfdGVzdDo6Tm9uUHJpbnRhYmxlJyB3
aXRoIHZhbHVlIDEtYnl0ZSBvYmplY3QgIgotICAgICAgIjwxMT4pIiwKKyAgICAgICIoJ3Rlc3Rp
bmc6Omd0ZXN0X3ByaW50ZXJzX3Rlc3Q6Ok5vblByaW50YWJsZShpbmRleCA9IDIpJyB3aXRoIHZh
bHVlICIKKyAgICAgICIxLWJ5dGUgb2JqZWN0IDwxMT4pIiwKICAgICAgIFByaW50VG9TdHJpbmco
VHlwZShOb25QcmludGFibGV7fSkpKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNl
bmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1ZBUklBTlQKK25hbWVzcGFjZSB7CitjbGFzcyBz
dHJpbmdfcmVmOworCisvKioKKyAqIFRoaXMgaXMgYSBzeW50aGV0aWMgcG9pbnRlciB0byBhIGZp
eGVkIHNpemUgc3RyaW5nLgorICovCitjbGFzcyBzdHJpbmdfcHRyIHsKKyBwdWJsaWM6CisgIHN0
cmluZ19wdHIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIDogZGF0YV8oZGF0YSksIHNp
emVfKHNpemUpIHt9CisKKyAgc3RyaW5nX3B0ciYgb3BlcmF0b3IrKygpIG5vZXhjZXB0IHsKKyAg
ICBkYXRhXyArPSBzaXplXzsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBzdHJpbmdfcmVm
IG9wZXJhdG9yKigpIGNvbnN0IG5vZXhjZXB0OworCisgcHJpdmF0ZToKKyAgY29uc3QgY2hhciog
ZGF0YV87CisgIHNpemVfdCBzaXplXzsKK307CisKKy8qKgorICogVGhpcyBpcyBhIHN5bnRoZXRp
YyByZWZlcmVuY2Ugb2YgYSBmaXhlZCBzaXplIHN0cmluZy4KKyAqLworY2xhc3Mgc3RyaW5nX3Jl
ZiB7CisgcHVibGljOgorICBzdHJpbmdfcmVmKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXpl
KSA6IGRhdGFfKGRhdGEpLCBzaXplXyhzaXplKSB7fQorCisgIHN0cmluZ19wdHIgb3BlcmF0b3Im
KCkgY29uc3Qgbm9leGNlcHQgeyByZXR1cm4ge2RhdGFfLCBzaXplX307IH0gIC8vIE5PTElOVAor
CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBjaGFyKiBzKSBjb25zdCBub2V4Y2VwdCB7CisgICAg
aWYgKHNpemVfID4gMCAmJiBkYXRhX1tzaXplXyAtIDFdICE9IDApIHsKKyAgICAgIHJldHVybiBz
dGQ6OnN0cmluZyhkYXRhXywgc2l6ZV8pID09IHN0ZDo6c3RyaW5nKHMpOworICAgIH0gZWxzZSB7
CisgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoZGF0YV8pID09IHN0ZDo6c3RyaW5nKHMpOworICAg
IH0KKyAgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgY2hhciogZGF0YV87CisgIHNpemVfdCBzaXpl
XzsKK307CisKK3N0cmluZ19yZWYgc3RyaW5nX3B0cjo6b3BlcmF0b3IqKCkgY29uc3Qgbm9leGNl
cHQgeyByZXR1cm4ge2RhdGFfLCBzaXplX307IH0KKworVEVTVChzdHJpbmdfcmVmLCBjb21wYXJl
KSB7CisgIGNvbnN0IGNoYXIqIHMgPSAiYWxleFwwZGF2aWRqb2huXDAiOworICBzdHJpbmdfcHRy
IHB0cihzLCA1KTsKKyAgRVhQRUNUX0VRKCpwdHIsICJhbGV4Iik7CisgIEVYUEVDVF9UUlVFKCpw
dHIgPT0gImFsZXgiKTsKKyAgKytwdHI7CisgIEVYUEVDVF9FUSgqcHRyLCAiZGF2aWQiKTsKKyAg
RVhQRUNUX1RSVUUoKnB0ciA9PSAiZGF2aWQiKTsKKyAgKytwdHI7CisgIEVYUEVDVF9FUSgqcHRy
LCAiam9obiIpOworfQorCit9ICAvLyBuYW1lc3BhY2UKIAogfSAgLy8gbmFtZXNwYWNlIGd0ZXN0
X3ByaW50ZXJzX3Rlc3QKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtc2h1ZmZsZS10ZXN0Xy5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjCmlu
ZGV4IDFmZTVmNmFiYTJhNWUwZmZjYWI5MTVlNDYzOGQyM2Y1OGNmNDhmZjAuLjQ1MDU2NjNhZTQz
M2M0ZmQ1MzIwNWMxNjBmYmMyYWIzZThlNjZlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjCkBAIC00MSw3
ICs0MSw2IEBAIHVzaW5nIDo6dGVzdGluZzo6VGVzdDsKIHVzaW5nIDo6dGVzdGluZzo6VGVzdEV2
ZW50TGlzdGVuZXJzOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5mbzsKIHVzaW5nIDo6dGVzdGlu
Zzo6VW5pdFRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpzY29wZWRfcHRyOwogCiAv
LyBUaGUgdGVzdCBtZXRob2RzIGFyZSBlbXB0eSwgYXMgdGhlIHNvbGUgcHVycG9zZSBvZiB0aGlz
IHByb2dyYW0gaXMKIC8vIHRvIHByaW50IHRoZSB0ZXN0IG5hbWVzIGJlZm9yZS9hZnRlciBzaHVm
ZmxpbmcuCkBAIC03NywxMyArNzYsMTMgQEAgVEVTVChESVNBQkxFRF9ELCBESVNBQkxFRF9CKSB7
fQogLy8gaXRlcmF0aW9uIHdpdGggYSAiLS0tLSIgbWFya2VyLgogY2xhc3MgVGVzdE5hbWVQcmlu
dGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogIHB1YmxpYzoKLSAgdmlydHVh
bCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3Qg
Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyogaXRlcmF0aW9u
ICovKSB7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVu
aXRfdGVzdCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyogaXRlcmF0aW9u
ICovKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCItLS0tXG4iKTsKICAgfQogCi0gIHZpcnR1YWwg
dm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgcHJpbnRm
KCIlcy4lc1xuIiwgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkp
OworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRl
IHsKKyAgICBwcmludGYoIiVzLiVzXG4iLCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksIHRl
c3RfaW5mby5uYW1lKCkpOwogICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MKaW5kZXggY2QyZDZm
OWU4NThmNTI3OWJhNWExNmE1ZDFhNmUzN2FmZmU5MTBhZC4uNDRjZjdjYTA0NGI4NTBkYWRjMGRm
ODk2MjgyMjVjMDdkZWEyN2M5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXRlc3QtcGFydC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0LXBhcnQtdGVzdC5jYwpAQCAtNDYsOSArNDYsMTAg
QEAgY2xhc3MgVGVzdFBhcnRSZXN1bHRUZXN0IDogcHVibGljIFRlc3QgewogICBUZXN0UGFydFJl
c3VsdFRlc3QoKQogICAgICAgOiByMV8oVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzLCAiZm9vL2Jh
ci5jYyIsIDEwLCAiU3VjY2VzcyEiKSwKICAgICAgICAgcjJfKFRlc3RQYXJ0UmVzdWx0OjprTm9u
RmF0YWxGYWlsdXJlLCAiZm9vL2Jhci5jYyIsIC0xLCAiRmFpbHVyZSEiKSwKLSAgICAgICAgcjNf
KFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLCBOVUxMLCAtMSwgIkZhaWx1cmUhIikge30K
KyAgICAgICAgcjNfKFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLCBudWxscHRyLCAtMSwg
IkZhaWx1cmUhIiksCisgICAgICAgIHI0XyhUZXN0UGFydFJlc3VsdDo6a1NraXAsICJmb28vYmFy
LmNjIiwgMiwgIlNraXBwZWQhIikge30KIAotICBUZXN0UGFydFJlc3VsdCByMV8sIHIyXywgcjNf
OworICBUZXN0UGFydFJlc3VsdCByMV8sIHIyXywgcjNfLCByNF87CiB9OwogCiAKQEAgLTc5LDYg
KzgwLDcgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgUmVzdWx0QWNjZXNzb3JzV29yaykg
ewogICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcy5mYWlsZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShzdWNj
ZXNzLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcy5mYXRhbGx5
X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Muc2tpcHBlZCgpKTsKIAogICBjb25z
dCBUZXN0UGFydFJlc3VsdCBub25mYXRhbF9mYWlsdXJlKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0
YWxGYWlsdXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxl
LmNjIiwKQEAgLTg4LDYgKzkwLDcgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgUmVzdWx0
QWNjZXNzb3JzV29yaykgewogICBFWFBFQ1RfVFJVRShub25mYXRhbF9mYWlsdXJlLmZhaWxlZCgp
KTsKICAgRVhQRUNUX1RSVUUobm9uZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5X2ZhaWxlZCgpKTsK
ICAgRVhQRUNUX0ZBTFNFKG5vbmZhdGFsX2ZhaWx1cmUuZmF0YWxseV9mYWlsZWQoKSk7CisgIEVY
UEVDVF9GQUxTRShub25mYXRhbF9mYWlsdXJlLnNraXBwZWQoKSk7CiAKICAgY29uc3QgVGVzdFBh
cnRSZXN1bHQgZmF0YWxfZmFpbHVyZShUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZS5jYyIsCkBAIC05Nyw2ICsx
MDAsMTQgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgUmVzdWx0QWNjZXNzb3JzV29yaykg
ewogICBFWFBFQ1RfVFJVRShmYXRhbF9mYWlsdXJlLmZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNF
KGZhdGFsX2ZhaWx1cmUubm9uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKGZhdGFs
X2ZhaWx1cmUuZmF0YWxseV9mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShmYXRhbF9mYWlsdXJl
LnNraXBwZWQoKSk7CisKKyAgY29uc3QgVGVzdFBhcnRSZXN1bHQgc2tpcChUZXN0UGFydFJlc3Vs
dDo6a1NraXAsICJmaWxlLmNjIiwgNDIsICJtZXNzYWdlIik7CisgIEVYUEVDVF9GQUxTRShza2lw
LnBhc3NlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAuZmFpbGVkKCkpOworICBFWFBFQ1RfRkFM
U0Uoc2tpcC5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAuZmF0YWxs
eV9mYWlsZWQoKSk7CisgIEVYUEVDVF9UUlVFKHNraXAuc2tpcHBlZCgpKTsKIH0KIAogLy8gVGVz
dHMgVGVzdFBhcnRSZXN1bHQ6OnR5cGUoKS4KQEAgLTEwNCwyMyArMTE1LDI3IEBAIFRFU1RfRihU
ZXN0UGFydFJlc3VsdFRlc3QsIHR5cGUpIHsKICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0Ojpr
U3VjY2VzcywgcjFfLnR5cGUoKSk7CiAgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a05vbkZh
dGFsRmFpbHVyZSwgcjJfLnR5cGUoKSk7CiAgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a0Zh
dGFsRmFpbHVyZSwgcjNfLnR5cGUoKSk7CisgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a1Nr
aXAsIHI0Xy50eXBlKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmlsZV9uYW1l
KCkuCiBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBmaWxlX25hbWUpIHsKICAgRVhQRUNUX1NU
UkVRKCJmb28vYmFyLmNjIiwgcjFfLmZpbGVfbmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKE5VTEws
IHIzXy5maWxlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUShudWxscHRyLCByM18uZmlsZV9uYW1l
KCkpOworICBFWFBFQ1RfU1RSRVEoImZvby9iYXIuY2MiLCByNF8uZmlsZV9uYW1lKCkpOwogfQog
CiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bGluZV9udW1iZXIoKS4KIFRFU1RfRihUZXN0UGFy
dFJlc3VsdFRlc3QsIGxpbmVfbnVtYmVyKSB7CiAgIEVYUEVDVF9FUSgxMCwgcjFfLmxpbmVfbnVt
YmVyKCkpOwogICBFWFBFQ1RfRVEoLTEsIHIyXy5saW5lX251bWJlcigpKTsKKyAgRVhQRUNUX0VR
KDIsIHI0Xy5saW5lX251bWJlcigpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6Om1l
c3NhZ2UoKS4KIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIG1lc3NhZ2UpIHsKICAgRVhQRUNU
X1NUUkVRKCJTdWNjZXNzISIsIHIxXy5tZXNzYWdlKCkpOworICBFWFBFQ1RfU1RSRVEoIlNraXBw
ZWQhIiwgcjRfLm1lc3NhZ2UoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpwYXNz
ZWQoKS4KQEAgLTEyOCw2ICsxNDMsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBQYXNz
ZWQpIHsKICAgRVhQRUNUX1RSVUUocjFfLnBhc3NlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIyXy5w
YXNzZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShyM18ucGFzc2VkKCkpOworICBFWFBFQ1RfRkFMU0Uo
cjRfLnBhc3NlZCgpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OmZhaWxlZCgpLgpA
QCAtMTM1LDYgKzE1MSwxNSBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBGYWlsZWQpIHsK
ICAgRVhQRUNUX0ZBTFNFKHIxXy5mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKHIyXy5mYWlsZWQo
KSk7CiAgIEVYUEVDVF9UUlVFKHIzXy5mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyNF8uZmFp
bGVkKCkpOworfQorCisvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmFpbGVkKCkuCitURVNUX0Yo
VGVzdFBhcnRSZXN1bHRUZXN0LCBTa2lwcGVkKSB7CisgIEVYUEVDVF9GQUxTRShyMV8uc2tpcHBl
ZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHIyXy5za2lwcGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjNf
LnNraXBwZWQoKSk7CisgIEVYUEVDVF9UUlVFKHI0Xy5za2lwcGVkKCkpOwogfQogCiAvLyBUZXN0
cyBUZXN0UGFydFJlc3VsdDo6ZmF0YWxseV9mYWlsZWQoKS4KQEAgLTE0Miw2ICsxNjcsNyBAQCBU
RVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBGYXRhbGx5RmFpbGVkKSB7CiAgIEVYUEVDVF9GQUxT
RShyMV8uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShyMl8uZmF0YWxseV9mYWls
ZWQoKSk7CiAgIEVYUEVDVF9UUlVFKHIzXy5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZB
TFNFKHI0Xy5mYXRhbGx5X2ZhaWxlZCgpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6
Om5vbmZhdGFsbHlfZmFpbGVkKCkuCkBAIC0xNDksNiArMTc1LDcgQEAgVEVTVF9GKFRlc3RQYXJ0
UmVzdWx0VGVzdCwgTm9uZmF0YWxseUZhaWxlZCkgewogICBFWFBFQ1RfRkFMU0UocjFfLm5vbmZh
dGFsbHlfZmFpbGVkKCkpOwogICBFWFBFQ1RfVFJVRShyMl8ubm9uZmF0YWxseV9mYWlsZWQoKSk7
CiAgIEVYUEVDVF9GQUxTRShyM18ubm9uZmF0YWxseV9mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxT
RShyNF8ubm9uZmF0YWxseV9mYWlsZWQoKSk7CiB9CiAKIC8vIFRlc3RzIHRoZSBUZXN0UGFydFJl
c3VsdEFycmF5IGNsYXNzLgpAQCAtMjAwLDYgKzIyNyw0IEBAIFRFU1RfRihUZXN0UGFydFJlc3Vs
dEFycmF5RGVhdGhUZXN0LCBEaWVzV2hlbkluZGV4SXNPdXRPZkJvdW5kKSB7CiAgIEVYUEVDVF9E
RUFUSF9JRl9TVVBQT1JURUQocmVzdWx0cy5HZXRUZXN0UGFydFJlc3VsdCgxKSwgIiIpOwogfQog
Ci0vLyBGSVhNRTogQWRkIGEgdGVzdCBmb3IgdGhlIGNsYXNzIEhhc05ld0ZhdGFsRmFpbHVyZUhl
bHBlci4KLQogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtdGVzdDJfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0Ml90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMmY5OGRjN2QxYzNlOTA5NzU4YmE2MDc3MmU5Nzc0OThjZTgxZmYyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0Ml90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEs
NjEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0Ogot
Ly8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0v
LyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0v
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0vLwotLy8gVGVzdHMgZm9yIEdvb2dsZSBUZXN0IGl0c2VsZi4gIFRoaXMgdmVyaWZpZXMgdGhh
dCB0aGUgYmFzaWMgY29uc3RydWN0cyBvZgotLy8gR29vZ2xlIFRlc3Qgd29yay4KLQotI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LmgiCi0jaW5jbHVkZSAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
aCIKLQotdXNpbmcgOjp0ZXN0aW5nOjpWYWx1ZXM7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFs
OjpQYXJhbUdlbmVyYXRvcjsKLQotLy8gVGVzdHMgdGhhdCBnZW5lcmF0b3JzIGRlZmluZWQgaW4g
YSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdAotLy8gYXJlIGZ1bmN0aW9uYWwuIFRoZSB0ZXN0
IHVzaW5nIGV4dGVybl9nZW5fMiBpcyBkZWZpbmVkCi0vLyBpbiBnb29nbGV0ZXN0LXBhcmFtLXRl
c3QtdGVzdC5jYy4KLVBhcmFtR2VuZXJhdG9yPGludD4gZXh0ZXJuX2dlbl8yID0gVmFsdWVzKDMz
KTsKLQotLy8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBkZWZp
bmVkIGluIG9uZSB0cmFuc2xhdGlvbiB1bml0Ci0vLyBhbmQgaW5zdGFudGlhdGVkIGluIGFub3Ro
ZXIuIFRoZSB0ZXN0IGlzIGRlZmluZWQgaW4KLS8vIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0
LmNjIGFuZCBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IGZpeHR1cmUgY2xhc3MgaXMKLS8vIGRl
ZmluZWQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmguCi1JTlNUQU5USUFURV9URVNUX0NBU0Vf
UChNdWx0aXBsZXNPZjMzLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJbnN0YW50
aWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygzMywgNjYpKTsKLQot
Ly8gVGVzdHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBpbnN0YW50aWF0
ZWQKLS8vIGluIG11bHRpcGxlIHRyYW5zbGF0aW9uIHVuaXRzLiBBbm90aGVyIGluc3RhbnRpYXRp
b24gaXMgZGVmaW5lZAotLy8gaW4gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYW5kCi0v
LyBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QgZml4dHVyZSBpcyBk
ZWZpbmVkIGluCi0vLyBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaAotSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoU2VxdWVuY2UyLAotICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbklu
TXVsdGlwbGVUcmFuc2xhaW9uVW5pdHNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWVzKDQyKjMsIDQyKjQsIDQyKjUpKTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3QucHkK
aW5kZXggNDZjYjlmNmRhMzFkZWFkZmQ3ZWVmZDIzNWU5YjM3ZGYyOWZiM2JhZi4uZWE2MjdjNDc5
ZDViMTk4MjRjYTY3Yjk4MDg5Y2Y0MDBjMzNjMjc5YSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVy
ZS10ZXN0LnB5CkBAIC02OCwxMyArNjgsMTIgQEAgZGVmIFNldEVudlZhcihlbnZfdmFyLCB2YWx1
ZSk6CiBkZWYgUnVuKGNvbW1hbmQpOgogICAiIiJSdW5zIGEgY29tbWFuZDsgcmV0dXJucyBUcnVl
L0ZhbHNlIGlmIGl0cyBleGl0IGNvZGUgaXMvaXNuJ3QgMC4iIiIKIAotICBwcmludCAnUnVubmlu
ZyAiJXMiLiAuIC4nICUgJyAnLmpvaW4oY29tbWFuZCkKKyAgcHJpbnQoJ1J1bm5pbmcgIiVzIi4g
LiAuJyAlICcgJy5qb2luKGNvbW1hbmQpKQogICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9j
ZXNzKGNvbW1hbmQpCiAgIHJldHVybiBwLmV4aXRlZCBhbmQgcC5leGl0X2NvZGUgPT0gMAogCiAK
LSMgVGhlIHRlc3RzLiAgRklYTUU6IHJlZmFjdG9yIHRoZSBjbGFzcyB0byBzaGFyZSBjb21tb24K
LSMgbG9naWMgd2l0aCBjb2RlIGluIGdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVz
dC5weS4KKyMgVGhlIHRlc3RzLgogY2xhc3MgVGhyb3dPbkZhaWx1cmVUZXN0KGd0ZXN0X3Rlc3Rf
dXRpbHMuVGVzdENhc2UpOgogICAiIiJUZXN0cyB0aGUgdGhyb3ctb24tZmFpbHVyZSBtb2RlLiIi
IgogCkBAIC04Nyw3ICs4Niw3IEBAIGNsYXNzIFRocm93T25GYWlsdXJlVGVzdChndGVzdF90ZXN0
X3V0aWxzLlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlOyBOb25l
IGlmIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgdW5zZXQuCiAgICAgICBmbGFnX3ZhbHVlOiAgICAg
ICB2YWx1ZSBvZiB0aGUgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIGZsYWc7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBOb25lIGlmIHRoZSBmbGFnIHNob3VsZCBub3QgYmUgcHJlc2VudC4KLSAg
ICAgIHNob3VsZF9mYWlsOiAgICAgIFRydWUgaWZmIHRoZSBwcm9ncmFtIGlzIGV4cGVjdGVkIHRv
IGZhaWwuCisgICAgICBzaG91bGRfZmFpbDogICAgICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBw
cm9ncmFtIGlzIGV4cGVjdGVkIHRvIGZhaWwuCiAgICAgIiIiCiAKICAgICBTZXRFbnZWYXIoVEhS
T1dfT05fRkFJTFVSRSwgZW52X3Zhcl92YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3RfLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVz
dF8uY2MKaW5kZXggZjlhMmM2NDQ4YTI5Y2EyOTY0OWExMjQ4MDU5YTk4NWE1MWFmODYzNi4uODNi
YjkxNGM3ZTQ3NGE4MTJkNTc0NWEzZWM1MGI5NWIzOGE2NThlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8u
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9u
LWZhaWx1cmUtdGVzdF8uY2MKQEAgLTQ1LDcgKzQ1LDcgQEAKIC8vIG9uZXMuCiB2b2lkIFRlcm1p
bmF0ZUhhbmRsZXIoKSB7CiAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsICJVbmhhbmRsZWQgQysr
IGV4Y2VwdGlvbiB0ZXJtaW5hdGluZyB0aGUgcHJvZ3JhbS4iKTsKLSAgZmZsdXNoKE5VTEwpOwor
ICBmZmx1c2gobnVsbHB0cik7CiAgIGV4aXQoMSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRkODJjMTYwZjE3N2Q2ZjNiYWRkNzcwNjRhYjhjN2U5OGJkMjk3
NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MKKysrIC9kZXYv
bnVsbApAQCAtMSwzMTkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDcsIEdvb2dsZSBJbmMuCi0v
LyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oIgot
I2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNl
IHsKLQotdXNpbmcgOjpzdGQ6OnRyMTo6Z2V0OwotdXNpbmcgOjpzdGQ6OnRyMTo6bWFrZV90dXBs
ZTsKLXVzaW5nIDo6c3RkOjp0cjE6OnR1cGxlOwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVwbGVfZWxl
bWVudDsKLXVzaW5nIDo6c3RkOjp0cjE6OnR1cGxlX3NpemU7Ci11c2luZyA6OnRlc3Rpbmc6OlN0
YXRpY0Fzc2VydFR5cGVFcTsKLQotLy8gVGVzdHMgdGhhdCB0dXBsZV9lbGVtZW50PEssIHR1cGxl
PFQwLCBUMSwgLi4uLCBUTj4gPjo6dHlwZSByZXR1cm5zIFRLLgotVEVTVCh0dXBsZV9lbGVtZW50
X1Rlc3QsIFJldHVybnNFbGVtZW50VHlwZSkgewotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50LCB0
dXBsZV9lbGVtZW50PDAsIHR1cGxlPGludCwgY2hhcj4gPjo6dHlwZT4oKTsKLSAgU3RhdGljQXNz
ZXJ0VHlwZUVxPGludCYsIHR1cGxlX2VsZW1lbnQ8MSwgdHVwbGU8ZG91YmxlLCBpbnQmPiA+Ojp0
eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8Ym9vbCwgdHVwbGVfZWxlbWVudDwyLCB0dXBs
ZTxkb3VibGUsIGludCwgYm9vbD4gPjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0dXBs
ZV9zaXplPFQ+Ojp2YWx1ZSBnaXZlcyB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0dXBsZQotLy8g
dHlwZSBULgotVEVTVCh0dXBsZV9zaXplX1Rlc3QsIFJldHVybnNOdW1iZXJPZkZpZWxkcykgewot
ICBFWFBFQ1RfRVEoMCwgK3R1cGxlX3NpemU8dHVwbGU8PiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9F
USgxLCArdHVwbGVfc2l6ZTx0dXBsZTx2b2lkKj4gPjo6dmFsdWUpOwotICBFWFBFQ1RfRVEoMSwg
K3R1cGxlX3NpemU8dHVwbGU8Y2hhcj4gPjo6dmFsdWUpOwotICBFWFBFQ1RfRVEoMSwgKyh0dXBs
ZV9zaXplPHR1cGxlPHR1cGxlPGludCwgZG91YmxlPiA+ID46OnZhbHVlKSk7Ci0gIEVYUEVDVF9F
USgyLCArKHR1cGxlX3NpemU8dHVwbGU8aW50JiwgY29uc3QgY2hhcj4gPjo6dmFsdWUpKTsKLSAg
RVhQRUNUX0VRKDMsICsodHVwbGVfc2l6ZTx0dXBsZTxjaGFyKiwgdm9pZCwgY29uc3QgYm9vbCY+
ID46OnZhbHVlKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyBhIHR1cGxlIHdpdGggaXRzZWxm
LgotVEVTVChDb21wYXJpc29uVGVzdCwgQ29tcGFyZXNXaXRoU2VsZikgewotICBjb25zdCB0dXBs
ZTxpbnQsIGNoYXIsIGJvb2w+IGEoNSwgJ2EnLCBmYWxzZSk7Ci0KLSAgRVhQRUNUX1RSVUUoYSA9
PSBhKTsKLSAgRVhQRUNUX0ZBTFNFKGEgIT0gYSk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB0
d28gdHVwbGVzIHdpdGggdGhlIHNhbWUgdmFsdWUuCi1URVNUKENvbXBhcmlzb25UZXN0LCBDb21w
YXJlc0VxdWFsVHVwbGVzKSB7Ci0gIGNvbnN0IHR1cGxlPGludCwgYm9vbD4gYSg1LCB0cnVlKSwg
Yig1LCB0cnVlKTsKLQotICBFWFBFQ1RfVFJVRShhID09IGIpOwotICBFWFBFQ1RfRkFMU0UoYSAh
PSBiKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHR3byBkaWZmZXJlbnQgdHVwbGVzIHRoYXQg
aGF2ZSBubyByZWZlcmVuY2UgZmllbGRzLgotVEVTVChDb21wYXJpc29uVGVzdCwgQ29tcGFyZXNV
bmVxdWFsVHVwbGVzV2l0aG91dFJlZmVyZW5jZUZpZWxkcykgewotICB0eXBlZGVmIHR1cGxlPGNv
bnN0IGludCwgY2hhcj4gRm9vVHVwbGU7Ci0KLSAgY29uc3QgRm9vVHVwbGUgYSgwLCAneCcpOwot
ICBjb25zdCBGb29UdXBsZSBiKDEsICdhJyk7Ci0KLSAgRVhQRUNUX1RSVUUoYSAhPSBiKTsKLSAg
RVhQRUNUX0ZBTFNFKGEgPT0gYik7Ci0KLSAgY29uc3QgRm9vVHVwbGUgYygxLCAnYicpOwotCi0g
IEVYUEVDVF9UUlVFKGIgIT0gYyk7Ci0gIEVYUEVDVF9GQUxTRShiID09IGMpOwotfQotCi0vLyBU
ZXN0cyBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCB0dXBsZXMgdGhhdCBoYXZlIHJlZmVyZW5jZSBm
aWVsZHMuCi1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc1VuZXF1YWxUdXBsZXNXaXRoUmVm
ZXJlbmNlRmllbGRzKSB7Ci0gIHR5cGVkZWYgdHVwbGU8aW50JiwgY29uc3QgY2hhciY+IEZvb1R1
cGxlOwotCi0gIGludCBpID0gNTsKLSAgY29uc3QgY2hhciBjaCA9ICdhJzsKLSAgY29uc3QgRm9v
VHVwbGUgYShpLCBjaCk7Ci0KLSAgaW50IGogPSA2OwotICBjb25zdCBGb29UdXBsZSBiKGosIGNo
KTsKLQotICBFWFBFQ1RfVFJVRShhICE9IGIpOwotICBFWFBFQ1RfRkFMU0UoYSA9PSBiKTsKLQot
ICBqID0gNTsKLSAgY29uc3QgY2hhciBjaDIgPSAnYic7Ci0gIGNvbnN0IEZvb1R1cGxlIGMoaiwg
Y2gyKTsKLQotICBFWFBFQ1RfVFJVRShiICE9IGMpOwotICBFWFBFQ1RfRkFMU0UoYiA9PSBjKTsK
LX0KLQotLy8gVGVzdHMgdGhhdCBhIHR1cGxlIGZpZWxkIHdpdGggYSByZWZlcmVuY2UgdHlwZSBp
cyBhbiBhbGlhcyBvZiB0aGUKLS8vIHZhcmlhYmxlIGl0J3Mgc3VwcG9zZWQgdG8gcmVmZXJlbmNl
LgotVEVTVChSZWZlcmVuY2VGaWVsZFRlc3QsIElzQWxpYXNPZlJlZmVyZW5jZWRWYXJpYWJsZSkg
ewotICBpbnQgbiA9IDA7Ci0gIHR1cGxlPGJvb2wsIGludCY+IHQodHJ1ZSwgbik7Ci0KLSAgbiA9
IDE7Ci0gIEVYUEVDVF9FUShuLCBnZXQ8MT4odCkpCi0gICAgICA8PCAiQ2hhbmdpbmcgYSB1bmRl
cmx5aW5nIHZhcmlhYmxlIHNob3VsZCB1cGRhdGUgdGhlIHJlZmVyZW5jZSBmaWVsZC4iOwotCi0g
IC8vIE1ha2VzIHN1cmUgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBkbyBhbnl0aGlu
ZyBmdW5ueSB3aXRoCi0gIC8vIHRoZSAmIG9wZXJhdG9yIGZvciB0aGUgcmV0dXJuIHR5cGUgb2Yg
Z2V0PD4oKS4KLSAgRVhQRUNUX0VRKCZuLCAmKGdldDwxPih0KSkpCi0gICAgICA8PCAiVGhlIGFk
ZHJlc3Mgb2YgYSByZWZlcmVuY2UgZmllbGQgc2hvdWxkIGVxdWFsIHRoZSBhZGRyZXNzIG9mICIK
LSAgICAgIDw8ICJ0aGUgdW5kZXJseWluZyB2YXJpYWJsZS4iOwotCi0gIGdldDwxPih0KSA9IDI7
Ci0gIEVYUEVDVF9FUSgyLCBuKQotICAgICAgPDwgIkNoYW5naW5nIGEgcmVmZXJlbmNlIGZpZWxk
IHNob3VsZCB1cGRhdGUgdGhlIHVuZGVybHlpbmcgdmFyaWFibGUuIjsKLX0KLQotLy8gVGVzdHMg
dGhhdCB0dXBsZSdzIGRlZmF1bHQgY29uc3RydWN0b3IgZGVmYXVsdCBpbml0aWFsaXplcyBlYWNo
IGZpZWxkLgotLy8gVGhpcyB0ZXN0IG5lZWRzIHRvIGNvbXBpbGUgd2l0aG91dCBnZW5lcmF0aW5n
IHdhcm5pbmdzLgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9y
RGVmYXVsdEluaXRpYWxpemVzRWFjaEZpZWxkKSB7Ci0gIC8vIFRoZSBUUjEgcmVwb3J0IHJlcXVp
cmVzIHRoYXQgdHVwbGUncyBkZWZhdWx0IGNvbnN0cnVjdG9yIGRlZmF1bHQKLSAgLy8gaW5pdGlh
bGl6ZXMgZWFjaCBmaWVsZCwgZXZlbiBpZiBpdCdzIGEgcHJpbWl0aXZlIHR5cGUuICBJZiB0aGUK
LSAgLy8gaW1wbGVtZW50YXRpb24gZm9yZ2V0cyB0byBkbyB0aGlzLCB0aGlzIHRlc3Qgd2lsbCBj
YXRjaCBpdCBieQotICAvLyBnZW5lcmF0aW5nIHdhcm5pbmdzIGFib3V0IHVzaW5nIHVuaW5pdGlh
bGl6ZWQgdmFyaWFibGVzIChhc3N1bWluZwotICAvLyBhIGRlY2VudCBjb21waWxlcikuCi0KLSAg
dHVwbGU8PiBlbXB0eTsKLQotICB0dXBsZTxpbnQ+IGExLCBiMTsKLSAgYjEgPSBhMTsKLSAgRVhQ
RUNUX0VRKDAsIGdldDwwPihiMSkpOwotCi0gIHR1cGxlPGludCwgZG91YmxlPiBhMiwgYjI7Ci0g
IGIyID0gYTI7Ci0gIEVYUEVDVF9FUSgwLCBnZXQ8MD4oYjIpKTsKLSAgRVhQRUNUX0VRKDAuMCwg
Z2V0PDE+KGIyKSk7Ci0KLSAgdHVwbGU8ZG91YmxlLCBjaGFyLCBib29sKj4gYTMsIGIzOwotICBi
MyA9IGEzOwotICBFWFBFQ1RfRVEoMC4wLCBnZXQ8MD4oYjMpKTsKLSAgRVhQRUNUX0VRKCdcMCcs
IGdldDwxPihiMykpOwotICBFWFBFQ1RfVFJVRShnZXQ8Mj4oYjMpID09IE5VTEwpOwotCi0gIHR1
cGxlPGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludD4gYTEw
LCBiMTA7Ci0gIGIxMCA9IGExMDsKLSAgRVhQRUNUX0VRKDAsIGdldDwwPihiMTApKTsKLSAgRVhQ
RUNUX0VRKDAsIGdldDwxPihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDwyPihiMTApKTsKLSAg
RVhQRUNUX0VRKDAsIGdldDwzPihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw0PihiMTApKTsK
LSAgRVhQRUNUX0VRKDAsIGdldDw1PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw2PihiMTAp
KTsKLSAgRVhQRUNUX0VRKDAsIGdldDw3PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw4Pihi
MTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw5PihiMTApKTsKLX0KLQotLy8gVGVzdHMgY29uc3Ry
dWN0aW5nIGEgdHVwbGUgZnJvbSBpdHMgZmllbGRzLgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVz
dCwgQ29uc3RydWN0c0Zyb21GaWVsZHMpIHsKLSAgaW50IG4gPSAxOwotICAvLyBSZWZlcmVuY2Ug
ZmllbGQuCi0gIHR1cGxlPGludCY+IGEobik7Ci0gIEVYUEVDVF9FUSgmbiwgJihnZXQ8MD4oYSkp
KTsKLQotICAvLyBOb24tcmVmZXJlbmNlIGZpZWxkcy4KLSAgdHVwbGU8aW50LCBjaGFyPiBiKDUs
ICdhJyk7Ci0gIEVYUEVDVF9FUSg1LCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoJ2EnLCBnZXQ8
MT4oYikpOwotCi0gIC8vIENvbnN0IHJlZmVyZW5jZSBmaWVsZC4KLSAgY29uc3QgaW50IG0gPSAy
OwotICB0dXBsZTxib29sLCBjb25zdCBpbnQmPiBjKHRydWUsIG0pOwotICBFWFBFQ1RfVFJVRShn
ZXQ8MD4oYykpOwotICBFWFBFQ1RfRVEoJm0sICYoZ2V0PDE+KGMpKSk7Ci19Ci0KLS8vIFRlc3Rz
IHR1cGxlJ3MgY29weSBjb25zdHJ1Y3Rvci4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENv
cHlDb25zdHJ1Y3RvcikgewotICB0dXBsZTxkb3VibGUsIGJvb2w+IGEoMC4wLCB0cnVlKTsKLSAg
dHVwbGU8ZG91YmxlLCBib29sPiBiKGEpOwotCi0gIEVYUEVDVF9ET1VCTEVfRVEoMC4wLCBnZXQ8
MD4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8MT4oYikpOwotfQotCi0vLyBUZXN0cyBjb25zdHJ1
Y3RpbmcgYSB0dXBsZSBmcm9tIGFub3RoZXIgdHVwbGUgdGhhdCBoYXMgYSBjb21wYXRpYmxlCi0v
LyBidXQgZGlmZmVyZW50IHR5cGUuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb25zdHJ1
Y3RzRnJvbURpZmZlcmVudFR1cGxlVHlwZSkgewotICB0dXBsZTxpbnQsIGludCwgY2hhcj4gYSgw
LCAxLCAnYScpOwotICB0dXBsZTxkb3VibGUsIGxvbmcsIGludD4gYihhKTsKLQotICBFWFBFQ1Rf
RE9VQkxFX0VRKDAuMCwgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VRKDEsIGdldDwxPihiKSk7Ci0g
IEVYUEVDVF9FUSgnYScsIGdldDwyPihiKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBh
IDItdHVwbGUgZnJvbSBhbiBzdGQ6OnBhaXIuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBD
b25zdHJ1Y3RzRnJvbVBhaXIpIHsKLSAgOjpzdGQ6OnBhaXI8aW50LCBjaGFyPiBhKDEsICdhJyk7
Ci0gIHR1cGxlPGludCwgY2hhcj4gYihhKTsKLSAgdHVwbGU8aW50LCBjb25zdCBjaGFyJj4gYyhh
KTsKLX0KLQotLy8gVGVzdHMgYXNzaWduaW5nIGEgdHVwbGUgdG8gYW5vdGhlciB0dXBsZSB3aXRo
IHRoZSBzYW1lIHR5cGUuCi1URVNUKFR1cGxlQXNzaWdubWVudFRlc3QsIEFzc2lnbnNUb1NhbWVU
dXBsZVR5cGUpIHsKLSAgY29uc3QgdHVwbGU8aW50LCBsb25nPiBhKDUsIDdMKTsKLSAgdHVwbGU8
aW50LCBsb25nPiBiOwotICBiID0gYTsKLSAgRVhQRUNUX0VRKDUsIGdldDwwPihiKSk7Ci0gIEVY
UEVDVF9FUSg3TCwgZ2V0PDE+KGIpKTsKLX0KLQotLy8gVGVzdHMgYXNzaWduaW5nIGEgdHVwbGUg
dG8gYW5vdGhlciB0dXBsZSB3aXRoIGEgZGlmZmVyZW50IGJ1dAotLy8gY29tcGF0aWJsZSB0eXBl
LgotVEVTVChUdXBsZUFzc2lnbm1lbnRUZXN0LCBBc3NpZ25zVG9EaWZmZXJlbnRUdXBsZVR5cGUp
IHsKLSAgY29uc3QgdHVwbGU8aW50LCBsb25nLCBib29sPiBhKDEsIDdMLCB0cnVlKTsKLSAgdHVw
bGU8bG9uZywgaW50LCBib29sPiBiOwotICBiID0gYTsKLSAgRVhQRUNUX0VRKDFMLCBnZXQ8MD4o
YikpOwotICBFWFBFQ1RfRVEoNywgZ2V0PDE+KGIpKTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDI+KGIp
KTsKLX0KLQotLy8gVGVzdHMgYXNzaWduaW5nIGFuIHN0ZDo6cGFpciB0byBhIDItdHVwbGUuCi1U
RVNUKFR1cGxlQXNzaWdubWVudFRlc3QsIEFzc2lnbnNGcm9tUGFpcikgewotICBjb25zdCA6OnN0
ZDo6cGFpcjxpbnQsIGJvb2w+IGEoNSwgdHJ1ZSk7Ci0gIHR1cGxlPGludCwgYm9vbD4gYjsKLSAg
YiA9IGE7Ci0gIEVYUEVDVF9FUSg1LCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8MT4o
YikpOwotCi0gIHR1cGxlPGxvbmcsIGJvb2w+IGM7Ci0gIGMgPSBhOwotICBFWFBFQ1RfRVEoNUws
IGdldDwwPihjKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwxPihjKSk7Ci19Ci0KLS8vIEEgZml4dHVy
ZSBmb3IgdGVzdGluZyBiaWcgdHVwbGVzLgotY2xhc3MgQmlnVHVwbGVUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgdHlwZWRlZiB0dXBsZTxpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQ+IEJpZ1R1cGxlOwotCi0gIEJpZ1R1
cGxlVGVzdCgpIDoKLSAgICAgIGFfKDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIpLAotICAg
ICAgYl8oMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMykge30KLQotICBCaWdUdXBsZSBhXywg
Yl87Ci19OwotCi0vLyBUZXN0cyBjb25zdHJ1Y3RpbmcgYmlnIHR1cGxlcy4KLVRFU1RfRihCaWdU
dXBsZVRlc3QsIENvbnN0cnVjdGlvbikgewotICBCaWdUdXBsZSBhOwotICBCaWdUdXBsZSBiKGJf
KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBnZXQ8Tj4odCkgcmV0dXJucyB0aGUgTi10aCAoMC1iYXNl
ZCkgZmllbGQgb2YgdHVwbGUgdC4KLVRFU1RfRihCaWdUdXBsZVRlc3QsIGdldCkgewotICBFWFBF
Q1RfRVEoMSwgZ2V0PDA+KGFfKSk7Ci0gIEVYUEVDVF9FUSgyLCBnZXQ8OT4oYV8pKTsKLQotICAv
LyBUZXN0cyB0aGF0IGdldCgpIHdvcmtzIG9uIGEgY29uc3QgdHVwbGUgdG9vLgotICBjb25zdCBC
aWdUdXBsZSBhKGFfKTsKLSAgRVhQRUNUX0VRKDEsIGdldDwwPihhKSk7Ci0gIEVYUEVDVF9FUSgy
LCBnZXQ8OT4oYSkpOwotfQotCi0vLyBUZXN0cyBjb21wYXJpbmcgYmlnIHR1cGxlcy4KLVRFU1Rf
RihCaWdUdXBsZVRlc3QsIENvbXBhcmlzb25zKSB7Ci0gIEVYUEVDVF9UUlVFKGFfID09IGFfKTsK
LSAgRVhQRUNUX0ZBTFNFKGFfICE9IGFfKTsKLQotICBFWFBFQ1RfVFJVRShhXyAhPSBiXyk7Ci0g
IEVYUEVDVF9GQUxTRShhXyA9PSBiXyk7Ci19Ci0KLVRFU1QoTWFrZVR1cGxlVGVzdCwgV29ya3NG
b3JTY2FsYXJUeXBlcykgewotICB0dXBsZTxib29sLCBpbnQ+IGE7Ci0gIGEgPSBtYWtlX3R1cGxl
KHRydWUsIDUpOwotICBFWFBFQ1RfVFJVRShnZXQ8MD4oYSkpOwotICBFWFBFQ1RfRVEoNSwgZ2V0
PDE+KGEpKTsKLQotICB0dXBsZTxjaGFyLCBpbnQsIGxvbmc+IGI7Ci0gIGIgPSBtYWtlX3R1cGxl
KCdhJywgJ2InLCA1KTsKLSAgRVhQRUNUX0VRKCdhJywgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VR
KCdiJywgZ2V0PDE+KGIpKTsKLSAgRVhQRUNUX0VRKDUsIGdldDwyPihiKSk7Ci19Ci0KLVRFU1Qo
TWFrZVR1cGxlVGVzdCwgV29ya3NGb3JQb2ludGVycykgewotICBpbnQgYVtdID0geyAxLCAyLCAz
LCA0IH07Ci0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9ICJoaSI7Ci0gIGludCogY29uc3QgcCA9
IGE7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhciosIGludCo+IHQ7Ci0gIHQgPSBtYWtlX3R1cGxlKHN0
ciwgcCk7Ci0gIEVYUEVDVF9FUShzdHIsIGdldDwwPih0KSk7Ci0gIEVYUEVDVF9FUShwLCBnZXQ8
MT4odCkpOwotfQotCi19ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5Cmlu
ZGV4IDViN2QxZTc0ZjY3ZmNiMDBjYjg0ODU1Nzk2N2RlZjRmNmE1NmNjOGYuLjY5NTk1YTBkZGVk
ZTgwN2FlMzcxMWU5ZWY1ZjdiMGFlOTIyMDc1NjMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5w
eQpAQCAtNDMsOCArNDMsOCBAQCBkZWYgQXNzZXJ0KGNvbmRpdGlvbik6CiAKIGRlZiBBc3NlcnRF
cShleHBlY3RlZCwgYWN0dWFsKToKICAgaWYgZXhwZWN0ZWQgIT0gYWN0dWFsOgotICAgIHByaW50
ICdFeHBlY3RlZDogJXMnICUgKGV4cGVjdGVkLCkKLSAgICBwcmludCAnICBBY3R1YWw6ICVzJyAl
IChhY3R1YWwsKQorICAgIHByaW50KCdFeHBlY3RlZDogJXMnICUgKGV4cGVjdGVkLCkpCisgICAg
cHJpbnQoJyAgQWN0dWFsOiAlcycgJSAoYWN0dWFsLCkpCiAgICAgcmFpc2UgQXNzZXJ0aW9uRXJy
b3IKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5
cGVkLXRlc3QyX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5
cGVkLXRlc3QyX3Rlc3QuY2MKaW5kZXggZWQ5NjQyMWM2N2NhOGEyZmIzOGYzZDg4OTYwMjMxZWYy
MmJlYTZmYy4uZTgzY2EyZTExYjFiNjI2ZjMyM2I5Mjg1M2EwMTgyMWI4YTM1MzE5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0
LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJf
dGVzdC5jYwpAQCAtMzMsMTIgKzMzLDggQEAKICNpbmNsdWRlICJ0ZXN0L2d0ZXN0LXR5cGVkLXRl
c3RfdGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKLSNpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVF9QCi0KIC8vIFRlc3RzIHRoYXQgdGhlIHNhbWUgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3QgY2FzZSBjYW4gYmUKIC8vIGluc3RhbnRpYXRlZCBpbiBkaWZmZXJlbnQgdHJhbnNsYXRpb24g
dW5pdHMgbGlua2VkIHRvZ2V0aGVyLgogLy8gKENvbnRhaW5lclRlc3QgaXMgYWxzbyBpbnN0YW50
aWF0ZWQgaW4gZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjLikKLUlOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QKFZlY3RvciwgQ29udGFpbmVyVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3Rpbmc6OlR5cGVzPHN0ZDo6dmVjdG9yPGludD4gPik7Ci0KLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKFZl
Y3RvciwgQ29udGFpbmVyVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
aW5nOjpUeXBlczxzdGQ6OnZlY3RvcjxpbnQ+ID4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYwppbmRleCA0ZTM5ODY5N2Q2
ZDgwOWIxMmU4Yzk1ZTY3NDIwYzJjNTY4ZGRhNmU4Li41ZmM2NzhjYjBkNWQxZDAyNWQ2OTM1NmMy
YjFiNmQxMGU0NWVkNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
InRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmgiCiAKICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVk
ZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3QuaCIKQEAgLTQxLDIxICs0MiwyMSBAQCBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNI
Xyg0MTI3IC8qIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gaXMgY29uc3RhbnQgKi8pCiAKIHVzaW5n
IHRlc3Rpbmc6OlRlc3Q7CiAKLS8vIFVzZWQgZm9yIHRlc3RpbmcgdGhhdCBTZXRVcFRlc3RDYXNl
KCkvVGVhckRvd25UZXN0Q2FzZSgpLCBmaXh0dXJlCisvLyBVc2VkIGZvciB0ZXN0aW5nIHRoYXQg
U2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlCiAvLyBjdG9yL2R0
b3IsIGFuZCBTZXRVcCgpL1RlYXJEb3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlwZWQgdGVzdHMg
YW5kCiAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgQ29tbW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSAgLy8gRm9yIHNvbWUgdGVjaG5pY2Fs
IHJlYXNvbiwgU2V0VXBUZXN0Q2FzZSgpIGFuZCBUZWFyRG93blRlc3RDYXNlKCkKKyAgLy8gRm9y
IHNvbWUgdGVjaG5pY2FsIHJlYXNvbiwgU2V0VXBUZXN0U3VpdGUoKSBhbmQgVGVhckRvd25UZXN0
U3VpdGUoKQogICAvLyBtdXN0IGJlIHB1YmxpYy4KICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNl
dFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIHNo
YXJlZF8gPSBuZXcgVCg1KTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2Uo
KSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIGRlbGV0ZSBzaGFy
ZWRfOwotICAgIHNoYXJlZF8gPSBOVUxMOworICAgIHNoYXJlZF8gPSBudWxscHRyOwogICB9CiAK
ICAgLy8gVGhpcyAncHJvdGVjdGVkOicgaXMgb3B0aW9uYWwuICBUaGVyZSdzIG5vIGhhcm0gaW4g
bWFraW5nIGFsbApAQCAtNjgsMTQgKzY5LDE0IEBAIGNsYXNzIENvbW1vblRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAKICAgQ29tbW9uVGVzdCgpIDogdmFsdWVfKDEpIHt9CiAKLSAgdmlydHVhbCB+Q29t
bW9uVGVzdCgpIHsgRVhQRUNUX0VRKDMsIHZhbHVlXyk7IH0KKyAgfkNvbW1vblRlc3QoKSBvdmVy
cmlkZSB7IEVYUEVDVF9FUSgzLCB2YWx1ZV8pOyB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIEVYUEVDVF9FUSgxLCB2YWx1ZV8pOwog
ICAgIHZhbHVlXysrOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lk
IFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIEVYUEVDVF9FUSgyLCB2YWx1ZV8pOwogICAgIHZh
bHVlXysrOwogICB9CkBAIC04NSwxOCArODYsMTUgQEAgY2xhc3MgQ29tbW9uVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotVCogQ29tbW9uVGVzdDxUPjo6
c2hhcmVkXyA9IE5VTEw7Ci0KLS8vIFRoaXMgI2lmZGVmIGJsb2NrIHRlc3RzIHR5cGVkIHRlc3Rz
LgotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCitUKiBDb21tb25UZXN0PFQ+OjpzaGFyZWRfID0g
bnVsbHB0cjsKIAogdXNpbmcgdGVzdGluZzo6VHlwZXM7CiAKLS8vIFRlc3RzIHRoYXQgU2V0VXBU
ZXN0Q2FzZSgpL1RlYXJEb3duVGVzdENhc2UoKSwgZml4dHVyZSBjdG9yL2R0b3IsCisvLyBUZXN0
cyB0aGF0IFNldFVwVGVzdFN1aXRlKCkvVGVhckRvd25UZXN0U3VpdGUoKSwgZml4dHVyZSBjdG9y
L2R0b3IsCiAvLyBhbmQgU2V0VXAoKS9UZWFyRG93bigpIHdvcmsgY29ycmVjdGx5IGluIHR5cGVk
IHRlc3RzCiAKIHR5cGVkZWYgVHlwZXM8Y2hhciwgaW50PiBUd29UeXBlczsKLVRZUEVEX1RFU1Rf
Q0FTRShDb21tb25UZXN0LCBUd29UeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKENvbW1vblRlc3Qs
IFR3b1R5cGVzKTsKIAogVFlQRURfVEVTVChDb21tb25UZXN0LCBWYWx1ZXNBcmVDb3JyZWN0KSB7
CiAgIC8vIFN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBi
ZSB2aXNpdGVkIHZpYQpAQCAtMTIxLDMyICsxMTksMzIgQEAgVFlQRURfVEVTVChDb21tb25UZXN0
LCBWYWx1ZXNBcmVDb3JyZWN0KSB7CiBUWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZVN0
aWxsQ29ycmVjdCkgewogICAvLyBTdGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVyZSBjbGFzcyB0
ZW1wbGF0ZSBjYW4gYWxzbyBiZSB2aXNpdGVkCiAgIC8vIHZpYSAndGhpcycuCi0gIEFTU0VSVF9U
UlVFKHRoaXMtPnNoYXJlZF8gIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKHRoaXMtPnNoYXJlZF8g
IT0gbnVsbHB0cik7CiAgIEVYUEVDVF9FUSg1LCAqdGhpcy0+c2hhcmVkXyk7CiAKICAgLy8gVHlw
ZVBhcmFtIGNhbiBiZSB1c2VkIHRvIHJlZmVyIHRvIHRoZSB0eXBlIHBhcmFtZXRlci4KICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PFR5cGVQYXJhbT4oMiksIHRoaXMtPnZhbHVlXyk7CiB9CiAKLS8v
IFRlc3RzIHRoYXQgbXVsdGlwbGUgVFlQRURfVEVTVF9DQVNFJ3MgY2FuIGJlIGRlZmluZWQgaW4g
dGhlIHNhbWUKKy8vIFRlc3RzIHRoYXQgbXVsdGlwbGUgVFlQRURfVEVTVF9TVUlURSdzIGNhbiBi
ZSBkZWZpbmVkIGluIHRoZSBzYW1lCiAvLyB0cmFuc2xhdGlvbiB1bml0LgogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdDEgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi0vLyBW
ZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9DQVNFIGNhbiBi
ZSBhCisvLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9T
VUlURSBjYW4gYmUgYQogLy8gc2luZ2xlIHR5cGUuCi1UWVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0
MSwgaW50KTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0MSwgaW50KTsKIFRZUEVEX1RFU1Qo
VHlwZWRUZXN0MSwgQSkge30KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRl
c3QyIDogcHVibGljIFRlc3QgewogfTsKIAotLy8gVmVyaWZpZXMgdGhhdCB0aGUgc2Vjb25kIGFy
Z3VtZW50IG9mIFRZUEVEX1RFU1RfQ0FTRSBjYW4gYmUgYQorLy8gVmVyaWZpZXMgdGhhdCB0aGUg
c2Vjb25kIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1RfU1VJVEUgY2FuIGJlIGEKIC8vIFR5cGVzPC4u
Lj4gdHlwZSBsaXN0LgotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdDIsIFR5cGVzPGludD4pOwor
VFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QyLCBUeXBlczxpbnQ+KTsKIAogLy8gVGhpcyBhbHNv
IHZlcmlmaWVzIHRoYXQgdGVzdHMgZnJvbSBkaWZmZXJlbnQgdHlwZWQgdGVzdCBjYXNlcyBjYW4K
IC8vIHNoYXJlIHRoZSBzYW1lIG5hbWUuCkBAIC0xNjEsNyArMTU5LDcgQEAgY2xhc3MgTnVtZXJp
Y1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiB9OwogCiB0eXBlZGVmIFR5cGVzPGludCwgbG9uZz4gTnVt
ZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKE51bWVyaWNUZXN0LCBOdW1lcmljVHlwZXMpOwor
VFlQRURfVEVTVF9TVUlURShOdW1lcmljVGVzdCwgTnVtZXJpY1R5cGVzKTsKIAogVFlQRURfVEVT
VChOdW1lcmljVGVzdCwgRGVmYXVsdElzWmVybykgewogICBFWFBFQ1RfRVEoMCwgVHlwZVBhcmFt
KCkpOwpAQCAtMTc3LDEwNSArMTc1LDEwMCBAQCBjbGFzcyBUeXBlZFRlc3ROYW1lcyB7CiAgcHVi
bGljOgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE5h
bWUoaW50IGkpIHsKLSAgICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCBjaGFyPjo6
dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkgewogICAgICAg
cmV0dXJuIHN0ZDo6c3RyaW5nKCJjaGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7
CiAgICAgfQotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGludD46OnZhbHVl
KSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCBpbnQ+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKCJpbnQiKSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9
CiAgIH0KIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3RXaXRoTmFtZXMsIFR3b1R5cGVz
LCBUeXBlZFRlc3ROYW1lcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdFdpdGhOYW1lcywg
VHdvVHlwZXMsIFR5cGVkVGVzdE5hbWVzKTsKIAotVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFt
ZXMsIFRlc3RDYXNlTmFtZSkgewotICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBl
UGFyYW0sIGNoYXI+Ojp2YWx1ZSkgeworVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFtZXMsIFRl
c3RTdWl0ZU5hbWUpIHsKKyAgaWYgKHN0ZDo6aXNfc2FtZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1
ZSkgewogICAgIEVYUEVDVF9TVFJFUSg6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
CiAgICAgICAgICAgICAgICAgICAgICAtPmN1cnJlbnRfdGVzdF9pbmZvKCkKLSAgICAgICAgICAg
ICAgICAgICAgIC0+dGVzdF9jYXNlX25hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgIC0+dGVz
dF9zdWl0ZV9uYW1lKCksCiAgICAgICAgICAgICAgICAgICJUeXBlZFRlc3RXaXRoTmFtZXMvY2hh
cjAiKTsKICAgfQotICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGlu
dD46OnZhbHVlKSB7CisgIGlmIChzdGQ6OmlzX3NhbWU8VHlwZVBhcmFtLCBpbnQ+Ojp2YWx1ZSkg
ewogICAgIEVYUEVDVF9TVFJFUSg6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpCiAg
ICAgICAgICAgICAgICAgICAgICAtPmN1cnJlbnRfdGVzdF9pbmZvKCkKLSAgICAgICAgICAgICAg
ICAgICAgIC0+dGVzdF9jYXNlX25hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9z
dWl0ZV9uYW1lKCksCiAgICAgICAgICAgICAgICAgICJUeXBlZFRlc3RXaXRoTmFtZXMvaW50MSIp
OwogICB9CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8gVGhpcyAj
aWZkZWYgYmxvY2sgdGVzdHMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotI2lmIEdURVNUX0hB
U19UWVBFRF9URVNUX1AKLQogdXNpbmcgdGVzdGluZzo6VHlwZXM7Ci11c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6VHlwZWRUZXN0Q2FzZVBTdGF0ZTsKK3VzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpU
eXBlZFRlc3RTdWl0ZVBTdGF0ZTsKIAotLy8gVGVzdHMgVHlwZWRUZXN0Q2FzZVBTdGF0ZS4KKy8v
IFRlc3RzIFR5cGVkVGVzdFN1aXRlUFN0YXRlLgogCi1jbGFzcyBUeXBlZFRlc3RDYXNlUFN0YXRl
VGVzdCA6IHB1YmxpYyBUZXN0IHsKK2NsYXNzIFR5cGVkVGVzdFN1aXRlUFN0YXRlVGVzdCA6IHB1
YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAs
ICJGb29UZXN0IiwgIkEiKTsKICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAsICJG
b29UZXN0IiwgIkIiKTsKICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAsICJGb29U
ZXN0IiwgIkMiKTsKICAgfQogCi0gIFR5cGVkVGVzdENhc2VQU3RhdGUgc3RhdGVfOworICBUeXBl
ZFRlc3RTdWl0ZVBTdGF0ZSBzdGF0ZV87CiB9OwogCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBTdGF0
ZVRlc3QsIFN1Y2NlZWRzRm9yTWF0Y2hpbmdMaXN0KSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQ
U3RhdGVUZXN0LCBTdWNjZWVkc0Zvck1hdGNoaW5nTGlzdCkgewogICBjb25zdCBjaGFyKiB0ZXN0
cyA9ICJBLCBCLCBDIjsKICAgRVhQRUNUX0VRKHRlc3RzLAotICAgICAgICAgICAgc3RhdGVfLlZl
cmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsIHRlc3RzKSk7CisgICAgICAgICAg
ICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwg
dGVzdHMpKTsKIH0KIAogLy8gTWFrZXMgc3VyZSB0aGF0IHRoZSBvcmRlciBvZiB0aGUgdGVzdHMg
YW5kIHNwYWNlcyBhcm91bmQgdGhlIG5hbWVzCiAvLyBkb24ndCBtYXR0ZXIuCi1URVNUX0YoVHlw
ZWRUZXN0Q2FzZVBTdGF0ZVRlc3QsIElnbm9yZXNPcmRlckFuZFNwYWNlcykgeworVEVTVF9GKFR5
cGVkVGVzdFN1aXRlUFN0YXRlVGVzdCwgSWdub3Jlc09yZGVyQW5kU3BhY2VzKSB7CiAgIGNvbnN0
IGNoYXIqIHRlc3RzID0gIkEsQywgICBCIjsKICAgRVhQRUNUX0VRKHRlc3RzLAotICAgICAgICAg
ICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsIHRlc3RzKSk7
CisgICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAi
Zm9vLmNjIiwgMSwgdGVzdHMpKTsKIH0KIAotdHlwZWRlZiBUeXBlZFRlc3RDYXNlUFN0YXRlVGVz
dCBUeXBlZFRlc3RDYXNlUFN0YXRlRGVhdGhUZXN0OwordXNpbmcgVHlwZWRUZXN0U3VpdGVQU3Rh
dGVEZWF0aFRlc3QgPSBUeXBlZFRlc3RTdWl0ZVBTdGF0ZVRlc3Q7CiAKLVRFU1RfRihUeXBlZFRl
c3RDYXNlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzRHVwbGljYXRlcykgeworVEVTVF9GKFR5cGVk
VGVzdFN1aXRlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzRHVwbGljYXRlcykgewogICBFWFBFQ1Rf
REVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFt
ZXMoImZvby5jYyIsIDEsICJBLCBCLCBBLCBDIiksCisgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0
ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwgIkEsIEIsIEEsIEMiKSwKICAgICAg
ICJmb29cXC5jYy4xLj86IFRlc3QgQSBpcyBsaXN0ZWQgbW9yZSB0aGFuIG9uY2VcXC4iKTsKIH0K
IAotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNFeHRyYVRlc3Qp
IHsKK1RFU1RfRihUeXBlZFRlc3RTdWl0ZVBTdGF0ZURlYXRoVGVzdCwgRGV0ZWN0c0V4dHJhVGVz
dCkgewogICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgc3RhdGVfLlZlcmlmeVJl
Z2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBCLCBDLCBEIiksCi0gICAgICAiZm9v
XFwuY2MuMS4/OiBObyB0ZXN0IG5hbWVkIEQgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVzdCBjYXNl
XFwuIik7CisgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAi
Zm9vLmNjIiwgMSwgIkEsIEIsIEMsIEQiKSwKKyAgICAgICJmb29cXC5jYy4xLj86IE5vIHRlc3Qg
bmFtZWQgRCBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IHN1aXRlXFwuIik7CiB9CiAKLVRFU1Rf
RihUeXBlZFRlc3RDYXNlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzTWlzc2VkVGVzdCkgeworVEVT
VF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzTWlzc2VkVGVzdCkgewog
ICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAotICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVy
ZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBDIiksCisgICAgICBzdGF0ZV8uVmVyaWZ5UmVn
aXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwgIkEsIEMiKSwKICAgICAgICJm
b29cXC5jYy4xLj86IFlvdSBmb3Jnb3QgdG8gbGlzdCB0ZXN0IEJcXC4iKTsKIH0KIAogLy8gVGVz
dHMgdGhhdCBkZWZpbmluZyBhIHRlc3QgZm9yIGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgZ2Vu
ZXJhdGVzCiAvLyBhIHJ1bi10aW1lIGVycm9yIGlmIHRoZSB0ZXN0IGNhc2UgaGFzIGJlZW4gcmVn
aXN0ZXJlZC4KLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzVGVz
dEFmdGVyUmVnaXN0cmF0aW9uKSB7Ci0gIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVz
KCJmb28uY2MiLCAxLCAiQSwgQiwgQyIpOworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlRGVh
dGhUZXN0LCBEZXRlY3RzVGVzdEFmdGVyUmVnaXN0cmF0aW9uKSB7CisgIHN0YXRlXy5WZXJpZnlS
ZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQiwgQyIpOwogICBF
WFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAogICAgICAgc3RhdGVfLkFkZFRlc3ROYW1lKCJmb28u
Y2MiLCAyLCAiRm9vVGVzdCIsICJEIiksCi0gICAgICAiZm9vXFwuY2MuMi4/OiBUZXN0IEQgbXVz
dCBiZSBkZWZpbmVkIGJlZm9yZSBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCIKKyAgICAgICJm
b29cXC5jYy4yLj86IFRlc3QgRCBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIFJFR0lTVEVSX1RZUEVE
X1RFU1RfU1VJVEVfUCIKICAgICAgICJcXChGb29UZXN0LCBcXC5cXC5cXC5cXClcXC4iKTsKIH0K
IAotLy8gVGVzdHMgdGhhdCBTZXRVcFRlc3RDYXNlKCkvVGVhckRvd25UZXN0Q2FzZSgpLCBmaXh0
dXJlIGN0b3IvZHRvciwKKy8vIFRlc3RzIHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRl
c3RTdWl0ZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKIC8vIGFuZCBTZXRVcCgpL1RlYXJEb3duKCkg
d29yayBjb3JyZWN0bHkgaW4gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIERlcml2ZWRUZXN0IDogcHVibGljIENvbW1vblRlc3Q8VD4gewog
fTsKIAotVFlQRURfVEVTVF9DQVNFX1AoRGVyaXZlZFRlc3QpOworVFlQRURfVEVTVF9TVUlURV9Q
KERlcml2ZWRUZXN0KTsKIAogVFlQRURfVEVTVF9QKERlcml2ZWRUZXN0LCBWYWx1ZXNBcmVDb3Jy
ZWN0KSB7CiAgIC8vIFN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRl
IGNhbiBiZSB2aXNpdGVkIHZpYQpAQCAtMjkyLDExMCArMjg1LDExMCBAQCBUWVBFRF9URVNUX1Ao
RGVyaXZlZFRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKIFRZUEVEX1RFU1RfUChEZXJpdmVkVGVz
dCwgVmFsdWVzQXJlU3RpbGxDb3JyZWN0KSB7CiAgIC8vIFN0YXRpYyBtZW1iZXJzIG9mIHRoZSBm
aXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBhbHNvIGJlIHZpc2l0ZWQKICAgLy8gdmlhICd0aGlz
Jy4KLSAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUo
dGhpcy0+c2hhcmVkXyAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDUsICp0aGlzLT5zaGFyZWRf
KTsKICAgRVhQRUNUX0VRKDIsIHRoaXMtPnZhbHVlXyk7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RF
U1RfQ0FTRV9QKERlcml2ZWRUZXN0LAorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKERlcml2
ZWRUZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzQXJlQ29ycmVjdCwgVmFs
dWVzQXJlU3RpbGxDb3JyZWN0KTsKIAogdHlwZWRlZiBUeXBlczxzaG9ydCwgbG9uZz4gTXlUd29U
eXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBEZXJpdmVkVGVzdCwgTXlU
d29UeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIERlcml2ZWRUZXN0
LCBNeVR3b1R5cGVzKTsKIAogLy8gVGVzdHMgdGhhdCBjdXN0b20gbmFtZXMgd29yayB3aXRoIHR5
cGUgcGFyYW1ldHJpemVkIHRlc3RzLiBXZSByZXVzZSB0aGUKIC8vIFR3b1R5cGVzIGZyb20gYWJv
dmUgaGVyZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZVBhcmFtZXRyaXplZFRl
c3RXaXRoTmFtZXMgOiBwdWJsaWMgVGVzdCB7fTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBh
cmFtZXRyaXplZFRlc3RXaXRoTmFtZXMpOworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0
cml6ZWRUZXN0V2l0aE5hbWVzKTsKIAotVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0
V2l0aE5hbWVzLCBUZXN0Q2FzZU5hbWUpIHsKLSAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1Nh
bWU8VHlwZVBhcmFtLCBjaGFyPjo6dmFsdWUpIHsKK1RZUEVEX1RFU1RfUChUeXBlUGFyYW1ldHJp
emVkVGVzdFdpdGhOYW1lcywgVGVzdFN1aXRlTmFtZSkgeworICBpZiAoc3RkOjppc19zYW1lPFR5
cGVQYXJhbSwgY2hhcj46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5p
dFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0
X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAg
ICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIkN1
c3RvbU5hbWUvVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMvcGFyQ2hhcjAiKTsKICAgfQot
ICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7
CisgIGlmIChzdGQ6OmlzX3NhbWU8VHlwZVBhcmFtLCBpbnQ+Ojp2YWx1ZSkgewogICAgIEVYUEVD
VF9TVFJFUSg6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAg
ICAgICAgICAtPmN1cnJlbnRfdGVzdF9pbmZvKCkKLSAgICAgICAgICAgICAgICAgICAgIC0+dGVz
dF9jYXNlX25hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9zdWl0ZV9uYW1lKCks
CiAgICAgICAgICAgICAgICAgICJDdXN0b21OYW1lL1R5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5h
bWVzL3BhckludDEiKTsKICAgfQogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBl
UGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcywgVGVzdENhc2VOYW1lKTsKK1JFR0lTVEVSX1RZUEVE
X1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcywgVGVzdFN1aXRlTmFt
ZSk7CiAKIGNsYXNzIFR5cGVQYXJhbWV0cml6ZWRUZXN0TmFtZXMgewogIHB1YmxpYzoKICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1lKGludCBpKSB7
Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgY2hhcj46OnZhbHVlKSB7Cisg
ICAgaWYgKHN0ZDo6aXNfc2FtZTxULCBjaGFyPjo6dmFsdWUpIHsKICAgICAgIHJldHVybiBzdGQ6
OnN0cmluZygicGFyQ2hhciIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0K
LSAgICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCBpbnQ+Ojp2YWx1ZSkgeworICAg
IGlmIChzdGQ6OmlzX3NhbWU8VCwgaW50Pjo6dmFsdWUpIHsKICAgICAgIHJldHVybiBzdGQ6OnN0
cmluZygicGFySW50IikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQogICB9
CiB9OwogCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChDdXN0b21OYW1lLCBUeXBlUGFy
YW1ldHJpemVkVGVzdFdpdGhOYW1lcywKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChD
dXN0b21OYW1lLCBUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFR3b1R5cGVzLCBUeXBlUGFyYW1ldHJpemVkVGVzdE5hbWVzKTsKIAot
Ly8gVGVzdHMgdGhhdCBtdWx0aXBsZSBUWVBFRF9URVNUX0NBU0VfUCdzIGNhbiBiZSBkZWZpbmVk
IGluIHRoZSBzYW1lCisvLyBUZXN0cyB0aGF0IG11bHRpcGxlIFRZUEVEX1RFU1RfU1VJVEVfUCdz
IGNhbiBiZSBkZWZpbmVkIGluIHRoZSBzYW1lCiAvLyB0cmFuc2xhdGlvbiB1bml0LgogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdFAxIDogcHVibGljIFRlc3QgewogfTsK
IAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UDEpOworVFlQRURfVEVTVF9TVUlURV9QKFR5
cGVkVGVzdFAxKTsKIAotLy8gRm9yIHRlc3RpbmcgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVE
X1RFU1RfQ0FTRV9QKCkgYW5kCisvLyBGb3IgdGVzdGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4g
VFlQRURfVEVTVF9TVUlURV9QKCkgYW5kCiAvLyBUWVBFRF9URVNUX1AoKSBpcyBub3QgZW5jbG9z
ZWQgaW4gYSBuYW1lc3BhY2UuCi10eXBlZGVmIGludCBJbnRBZnRlclR5cGVkVGVzdENhc2VQOwor
dXNpbmcgSW50QWZ0ZXJUeXBlZFRlc3RTdWl0ZVAgPSBpbnQ7CiAKIFRZUEVEX1RFU1RfUChUeXBl
ZFRlc3RQMSwgQSkge30KIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQMSwgQikge30KIAogLy8gRm9y
IHRlc3RpbmcgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfUCgpIGFuZAotLy8gUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2Uu
Ci10eXBlZGVmIGludCBJbnRCZWZvcmVSZWdpc3RlclR5cGVkVGVzdENhc2VQOworLy8gUkVHSVNU
RVJfVFlQRURfVEVTVF9TVUlURV9QKCkgaXMgbm90IGVuY2xvc2VkIGluIGEgbmFtZXNwYWNlLgor
dXNpbmcgSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RTdWl0ZVAgPSBpbnQ7CiAKLVJFR0lTVEVS
X1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAxLCBBLCBCKTsKK1JFR0lTVEVSX1RZUEVEX1RF
U1RfU1VJVEVfUChUeXBlZFRlc3RQMSwgQSwgQik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgVHlwZWRUZXN0UDIgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0Vf
UChUeXBlZFRlc3RQMik7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UDIpOwogCiAvLyBU
aGlzIGFsc28gdmVyaWZpZXMgdGhhdCB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0eXBlLXBhcmFtZXRl
cml6ZWQKIC8vIHRlc3QgY2FzZXMgY2FuIHNoYXJlIHRoZSBzYW1lIG5hbWUuCiBUWVBFRF9URVNU
X1AoVHlwZWRUZXN0UDIsIEEpIHt9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVk
VGVzdFAyLCBBKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQMiwgQSk7
CiAKLS8vIFZlcmlmaWVzIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX0NBU0VfUCgp
IGFuZAotLy8gUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4g
YSBuYW1lc3BhY2UuCi1JbnRBZnRlclR5cGVkVGVzdENhc2VQIGFmdGVyID0gMDsKLUludEJlZm9y
ZVJlZ2lzdGVyVHlwZWRUZXN0Q2FzZVAgYmVmb3JlID0gMDsKKy8vIFZlcmlmaWVzIHRoYXQgdGhl
IGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX1NVSVRFX1AoKSBhbmQKKy8vIFJFR0lTVEVSX1RZUEVE
X1RFU1RfU1VJVEVfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KK0ludEFmdGVy
VHlwZWRUZXN0U3VpdGVQIGFmdGVyID0gMDsKK0ludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0U3Vp
dGVQIGJlZm9yZSA9IDA7CiAKLS8vIFZlcmlmaWVzIHRoYXQgdGhlIGxhc3QgYXJndW1lbnQgb2Yg
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoKQorLy8gVmVyaWZpZXMgdGhhdCB0aGUgbGFz
dCBhcmd1bWVudCBvZiBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoKQogLy8gY2FuIGJl
IGVpdGhlciBhIHNpbmdsZSB0eXBlIG9yIGEgVHlwZXM8Li4uPiB0eXBlIGxpc3QuCi1JTlNUQU5U
SUFURV9UWVBFRF9URVNUX0NBU0VfUChJbnQsIFR5cGVkVGVzdFAxLCBpbnQpOwotSU5TVEFOVElB
VEVfVFlQRURfVEVTVF9DQVNFX1AoSW50LCBUeXBlZFRlc3RQMiwgVHlwZXM8aW50Pik7CitJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoSW50LCBUeXBlZFRlc3RQMSwgaW50KTsKK0lOU1RB
TlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChJbnQsIFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsK
IAogLy8gVGVzdHMgdGhhdCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNh
biBiZQogLy8gaW5zdGFudGlhdGVkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHRyYW5zbGF0
aW9uIHVuaXQuCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChEb3VibGUsIFR5cGVkVGVz
dFAyLCBUeXBlczxkb3VibGU+KTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChEb3Vi
bGUsIFR5cGVkVGVzdFAyLCBUeXBlczxkb3VibGU+KTsKIAogLy8gVGVzdHMgdGhhdCB0aGUgc2Ft
ZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQogLy8gaW5zdGFudGlhdGVkIGlu
IGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCiAvLyAoQ29udGFp
bmVyVGVzdCBpcyBhbHNvIGluc3RhbnRpYXRlZCBpbiBndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2Mu
KQogdHlwZWRlZiBUeXBlczxzdGQ6OnZlY3Rvcjxkb3VibGU+LCBzdGQ6OnNldDxjaGFyPiA+IE15
Q29udGFpbmVyczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBDb250YWluZXJU
ZXN0LCBNeUNvbnRhaW5lcnMpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBD
b250YWluZXJUZXN0LCBNeUNvbnRhaW5lcnMpOwogCiAvLyBUZXN0cyB0aGF0IGEgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUgZGVmaW5lZCBhbmQKIC8vIGluc3RhbnRpYXRlZCBp
biBhIG5hbWVzcGFjZS4KQEAgLTQwNiw3ICszOTksNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
IGNsYXNzIE51bWVyaWNUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNF
X1AoTnVtZXJpY1Rlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKE51bWVyaWNUZXN0KTsKIAogVFlQ
RURfVEVTVF9QKE51bWVyaWNUZXN0LCBEZWZhdWx0SXNaZXJvKSB7CiAgIEVYUEVDVF9FUSgwLCBU
eXBlUGFyYW0oKSk7CkBAIC00MTYsNDYgKzQwOSwyOSBAQCBUWVBFRF9URVNUX1AoTnVtZXJpY1Rl
c3QsIFplcm9Jc0xlc3NUaGFuT25lKSB7CiAgIEVYUEVDVF9MVChUeXBlUGFyYW0oMCksIFR5cGVQ
YXJhbSgxKSk7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKE51bWVyaWNUZXN0LAor
UkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKE51bWVyaWNUZXN0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRGVmYXVsdElzWmVybywgWmVyb0lzTGVzc1RoYW5PbmUpOwogdHlwZWRlZiBU
eXBlczxpbnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9D
QVNFX1AoTXksIE51bWVyaWNUZXN0LCBOdW1lcmljVHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9TVUlURV9QKE15LCBOdW1lcmljVGVzdCwgTnVtZXJpY1R5cGVzKTsKIAogc3RhdGljIGNv
bnN0IGNoYXIqIEdldFRlc3ROYW1lKCkgewogICByZXR1cm4gdGVzdGluZzo6VW5pdFRlc3Q6Okdl
dEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCktPm5hbWUoKTsKIH0KIC8vIFRlc3QgdGhl
IHN0cmlwcGluZyBvZiBzcGFjZSBmcm9tIHRlc3QgbmFtZXMKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcyBUcmltbWVkVGVzdCA6IHB1YmxpYyBUZXN0IHsgfTsKLVRZUEVEX1RFU1RfQ0FTRV9Q
KFRyaW1tZWRUZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUcmltbWVkVGVzdCk7CiBUWVBFRF9U
RVNUX1AoVHJpbW1lZFRlc3QsIFRlc3QxKSB7IEVYUEVDVF9TVFJFUSgiVGVzdDEiLCBHZXRUZXN0
TmFtZSgpKTsgfQogVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0MikgeyBFWFBFQ1RfU1RS
RVEoIlRlc3QyIiwgR2V0VGVzdE5hbWUoKSk7IH0KIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwg
VGVzdDMpIHsgRVhQRUNUX1NUUkVRKCJUZXN0MyIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9U
RVNUX1AoVHJpbW1lZFRlc3QsIFRlc3Q0KSB7IEVYUEVDVF9TVFJFUSgiVGVzdDQiLCBHZXRUZXN0
TmFtZSgpKTsgfQogVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0NSkgeyBFWFBFQ1RfU1RS
RVEoIlRlc3Q1IiwgR2V0VGVzdE5hbWUoKSk7IH0KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9Q
KAorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKAogICAgIFRyaW1tZWRUZXN0LAogICAgIFRl
c3QxLCBUZXN0MixUZXN0MyAsIFRlc3Q0ICxUZXN0NSApOyAgLy8gTk9MSU5UCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBzdHJ1Y3QgTXlQYWlyIHt9OwogLy8gQmUgc3VyZSB0
byB0cnkgYSB0eXBlIHdpdGggYSBjb21tYSBpbiBpdHMgbmFtZSBqdXN0IGluIGNhc2UgaXQgbWF0
dGVycy4KIHR5cGVkZWYgVHlwZXM8aW50LCBkb3VibGUsIE15UGFpcjxpbnQsIGludD4gPiBUcmlt
VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgVHJpbW1lZFRlc3QsIFRy
aW1UeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIFRyaW1tZWRUZXN0
LCBUcmltVHlwZXMpOwogCiB9ICAvLyBuYW1lc3BhY2UgbGlicmFyeTIKIAotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVT
VCkgJiYgIWRlZmluZWQoR1RFU1RfSEFTX1RZUEVEX1RFU1RfUCkKLQotLy8gR29vZ2xlIFRlc3Qg
bWF5IG5vdCBzdXBwb3J0IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyB3aXRoIHNvbWUKLS8vIGNv
bXBpbGVycy4gSWYgd2UgdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGNvbXBpbGUgb3V0
IGFsbAotLy8gY29kZSByZWZlcnJpbmcgdG8gdGhlIGd0ZXN0X21haW4gbGlicmFyeSwgTVNWQyBs
aW5rZXIgd2lsbCBub3QgbGluawotLy8gdGhhdCBsaWJyYXJ5IGF0IGFsbCBhbmQgY29uc2VxdWVu
dGx5IGNvbXBsYWluIGFib3V0IG1pc3NpbmcgZW50cnkKLS8vIHBvaW50IGRlZmluZWQgaW4gdGhh
dCBsaWJyYXJ5IChmYXRhbCBlcnJvciBMTksxNTYxOiBlbnRyeSBwb2ludAotLy8gbXVzdCBiZSBk
ZWZpbmVkKS4gVGhpcyBkdW1teSB0ZXN0IGtlZXBzIGd0ZXN0X21haW4gbGlua2VkIGluLgotVEVT
VChEdW1teVRlc3QsIFR5cGVkVGVzdHNBcmVOb3RTdXBwb3J0ZWRPblRoaXNQbGF0Zm9ybSkge30K
LQotI2lmIF9NU0NfVkVSCi1HVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0
MTI3Ci0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBfTVNDX1ZFUgotCi0j
ZW5kaWYgIC8vICNpZiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVCkgJiYgIWRlZmluZWQo
R1RFU1RfSEFTX1RZUEVEX1RFU1RfUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5oCmluZGV4IDJjY2U2N2M4MjVhNmNhYmRiOWE1
NGI5MTkyOWMwMGM5OTJhMGQ0N2MuLjhjZTU1OWM5OWY3MzQxY2ViOGEwYjJiODljNGIxYTk3MDI2
ZmE1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlw
ZWQtdGVzdF90ZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10
eXBlZC10ZXN0X3Rlc3QuaApAQCAtMjcsMTQgKzI3LDExIEBACiAvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKLQotI2lmbmRlZiBHVEVTVF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVT
VF9IXwotI2RlZmluZSBHVEVTVF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXworI2lmbmRl
ZiBHT09HTEVURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfVEVTVF9HVEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0
ZXN0LmgiCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIHVzaW5nIHRlc3Rpbmc6OlRl
c3Q7CiAKIC8vIEZvciB0ZXN0aW5nIHRoYXQgdGhlIHNhbWUgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3QgY2FzZSBjYW4gYmUKQEAgLTQ2LDcgKzQzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBj
bGFzcyBDb250YWluZXJUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNF
X1AoQ29udGFpbmVyVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQ29udGFpbmVyVGVzdCk7CiAK
IFRZUEVEX1RFU1RfUChDb250YWluZXJUZXN0LCBDYW5CZURlZmF1bHRDb25zdHJ1Y3RlZCkgewog
ICBUeXBlUGFyYW0gY29udGFpbmVyOwpAQCAtNTcsOSArNTQsNyBAQCBUWVBFRF9URVNUX1AoQ29u
dGFpbmVyVGVzdCwgSW5pdGlhbFNpemVJc1plcm8pIHsKICAgRVhQRUNUX0VRKDBVLCBjb250YWlu
ZXIuc2l6ZSgpKTsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoQ29udGFpbmVyVGVz
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbkJlRGVmYXVsdENvbnN0cnVjdGVkLCBJ
bml0aWFsU2l6ZUlzWmVybyk7Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAor
UkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKENvbnRhaW5lclRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ2FuQmVEZWZhdWx0Q29uc3RydWN0ZWQsIEluaXRpYWxTaXplSXNaZXJv
KTsKIAotI2VuZGlmICAvLyBHVEVTVF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXworI2Vu
ZGlmICAvLyBHT09HTEVURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVz
dC5jYwppbmRleCBmM2VhMDNhNTk2ZDBmOTlhMzkxMjUyNjMwZGNhMTA2MjI5MzExMmZjLi44ZWY1
MDU4MzhjNzBkZmM2ZTMzNTRlODUxODlmYzNmYWYwYjBhYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKQEAg
LTUxLDYxICs1MSw1NiBAQCBzdHJ1Y3QgTGVzc0J5TmFtZSB7CiAKIGNsYXNzIFVuaXRUZXN0SGVs
cGVyIHsKICBwdWJsaWM6Ci0gIC8vIFJldHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFs
bCB0ZXN0IGNhc2VzIHNvcnRlZCBieSB0aGUgdGVzdCBjYXNlCisgIC8vIFJldHVybnMgdGhlIGFy
cmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0ZXN0IHN1aXRlcyBzb3J0ZWQgYnkgdGhlIHRlc3Qgc3Vp
dGUKICAgLy8gbmFtZS4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRo
ZSBhcnJheS4KLSAgc3RhdGljIFRlc3RDYXNlIGNvbnN0KiogR2V0U29ydGVkVGVzdENhc2VzKCkg
eworICBzdGF0aWMgVGVzdFN1aXRlIGNvbnN0KiogR2V0U29ydGVkVGVzdFN1aXRlcygpIHsKICAg
ICBVbml0VGVzdCYgdW5pdF90ZXN0ID0gKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpOwotICAgIFRl
c3RDYXNlIGNvbnN0KiogY29uc3QgdGVzdF9jYXNlcyA9Ci0gICAgICAgIG5ldyBjb25zdCBUZXN0
Q2FzZSpbdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpXTsKKyAgICBhdXRvIGNvbnN0
KiogY29uc3QgdGVzdF9zdWl0ZXMgPSBuZXcgY29uc3QgVGVzdFN1aXRlKltzdGF0aWNfY2FzdDxz
aXplX3Q+KAorICAgICAgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSldOwogCi0g
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7
ICsraSkKLSAgICAgIHRlc3RfY2FzZXNbaV0gPSB1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
OyArK2kpCisgICAgICB0ZXN0X3N1aXRlc1tpXSA9IHVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7
CiAKLSAgICBzdGQ6OnNvcnQodGVzdF9jYXNlcywKLSAgICAgICAgICAgICAgdGVzdF9jYXNlcyAr
IHVuaXRfdGVzdC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKSwKLSAgICAgICAgICAgICAgTGVzc0J5
TmFtZTxUZXN0Q2FzZT4oKSk7Ci0gICAgcmV0dXJuIHRlc3RfY2FzZXM7CisgICAgc3RkOjpzb3J0
KHRlc3Rfc3VpdGVzLAorICAgICAgICAgICAgICB0ZXN0X3N1aXRlcyArIHVuaXRfdGVzdC50b3Rh
bF90ZXN0X3N1aXRlX2NvdW50KCksCisgICAgICAgICAgICAgIExlc3NCeU5hbWU8VGVzdFN1aXRl
PigpKTsKKyAgICByZXR1cm4gdGVzdF9zdWl0ZXM7CiAgIH0KIAotICAvLyBSZXR1cm5zIHRoZSB0
ZXN0IGNhc2UgYnkgaXRzIG5hbWUuICBUaGUgY2FsbGVyIGRvZXNuJ3Qgb3duIHRoZSByZXR1cm5l
ZAorICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHN1aXRlIGJ5IGl0cyBuYW1lLiAgVGhlIGNhbGxlciBk
b2Vzbid0IG93biB0aGUgcmV0dXJuZWQKICAgLy8gcG9pbnRlci4KLSAgc3RhdGljIGNvbnN0IFRl
c3RDYXNlKiBGaW5kVGVzdENhc2UoY29uc3QgY2hhciogbmFtZSkgeworICBzdGF0aWMgY29uc3Qg
VGVzdFN1aXRlKiBGaW5kVGVzdFN1aXRlKGNvbnN0IGNoYXIqIG5hbWUpIHsKICAgICBVbml0VGVz
dCYgdW5pdF90ZXN0ID0gKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpOwotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICAg
IGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSB1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Ci0g
ICAgICBpZiAoMCA9PSBzdHJjbXAodGVzdF9jYXNlLT5uYW1lKCksIG5hbWUpKQotICAgICAgICBy
ZXR1cm4gdGVzdF9jYXNlOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFs
X3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rf
c3VpdGUgPSB1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpOworICAgICAgaWYgKDAgPT0gc3RyY21w
KHRlc3Rfc3VpdGUtPm5hbWUoKSwgbmFtZSkpCisgICAgICAgIHJldHVybiB0ZXN0X3N1aXRlOwog
ICAgIH0KLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gbnVsbHB0cjsKICAgfQogCi0gIC8v
IFJldHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0ZXN0cyBpbiBhIHBhcnRpY3Vs
YXIgdGVzdCBjYXNlCisgIC8vIFJldHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0
ZXN0cyBpbiBhIHBhcnRpY3VsYXIgdGVzdCBzdWl0ZQogICAvLyBzb3J0ZWQgYnkgdGhlIHRlc3Qg
bmFtZS4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZQogICAvLyBh
cnJheS4KLSAgc3RhdGljIFRlc3RJbmZvIGNvbnN0KiogR2V0U29ydGVkVGVzdHMoY29uc3QgVGVz
dENhc2UqIHRlc3RfY2FzZSkgewotICAgIFRlc3RJbmZvIGNvbnN0KiogY29uc3QgdGVzdHMgPQot
ICAgICAgICBuZXcgY29uc3QgVGVzdEluZm8qW3Rlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgp
XTsKKyAgc3RhdGljIFRlc3RJbmZvIGNvbnN0KiogR2V0U29ydGVkVGVzdHMoY29uc3QgVGVzdFN1
aXRlKiB0ZXN0X3N1aXRlKSB7CisgICAgVGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9IG5l
dyBjb25zdCBUZXN0SW5mbypbc3RhdGljX2Nhc3Q8c2l6ZV90PigKKyAgICAgIHRlc3Rfc3VpdGUt
PnRvdGFsX3Rlc3RfY291bnQoKSldOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X2Nh
c2UtPnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKQotICAgICAgdGVzdHNbaV0gPSB0ZXN0X2Nhc2Ut
PkdldFRlc3RJbmZvKGkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9zdWl0ZS0+dG90
YWxfdGVzdF9jb3VudCgpOyArK2kpCisgICAgICB0ZXN0c1tpXSA9IHRlc3Rfc3VpdGUtPkdldFRl
c3RJbmZvKGkpOwogCi0gICAgc3RkOjpzb3J0KHRlc3RzLCB0ZXN0cyArIHRlc3RfY2FzZS0+dG90
YWxfdGVzdF9jb3VudCgpLAorICAgIHN0ZDo6c29ydCh0ZXN0cywgdGVzdHMgKyB0ZXN0X3N1aXRl
LT50b3RhbF90ZXN0X2NvdW50KCksCiAgICAgICAgICAgICAgIExlc3NCeU5hbWU8VGVzdEluZm8+
KCkpOwogICAgIHJldHVybiB0ZXN0czsKICAgfQogfTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9U
RVNUCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVGVzdENhc2VXaXRoQ29tbWVudFRlc3Qg
OiBwdWJsaWMgVGVzdCB7fTsKLVRZUEVEX1RFU1RfQ0FTRShUZXN0Q2FzZVdpdGhDb21tZW50VGVz
dCwgVHlwZXM8aW50Pik7Ci1UWVBFRF9URVNUKFRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LCBEdW1t
eSkge30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUZXN0U3VpdGVXaXRoQ29tbWVudFRl
c3QgOiBwdWJsaWMgVGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJVEUoVGVzdFN1aXRlV2l0aENvbW1l
bnRUZXN0LCBUeXBlczxpbnQ+KTsKK1RZUEVEX1RFU1QoVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0
LCBEdW1teSkge30KIAotY29uc3QgaW50IGtUeXBlZFRlc3RDYXNlcyA9IDE7Citjb25zdCBpbnQg
a1R5cGVkVGVzdFN1aXRlcyA9IDE7CiBjb25zdCBpbnQga1R5cGVkVGVzdHMgPSAxOwotI2Vsc2UK
LWNvbnN0IGludCBrVHlwZWRUZXN0Q2FzZXMgPSAwOwotY29uc3QgaW50IGtUeXBlZFRlc3RzID0g
MDsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKIAogLy8gV2UgY2FuIG9ubHkgdGVz
dCB0aGUgYWNjZXNzb3JzIHRoYXQgZG8gbm90IGNoYW5nZSB2YWx1ZSB3aGlsZSB0ZXN0cyBydW4u
CiAvLyBTaW5jZSB0ZXN0cyBjYW4gYmUgcnVuIGluIGFueSBvcmRlciwgdGhlIHZhbHVlcyB0aGUg
YWNjZXNzb3JzIHRoYXQgdHJhY2sKQEAgLTExMywyMSArMTA4LDE5IEBAIGNvbnN0IGludCBrVHlw
ZWRUZXN0cyA9IDA7CiBURVNUKEFwaVRlc3QsIFVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29y
aykgewogICBVbml0VGVzdCogdW5pdF90ZXN0ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7CiAK
LSAgQVNTRVJUX0VRKDIgKyBrVHlwZWRUZXN0Q2FzZXMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9j
YXNlX2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0
LT50ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRfRVEoMiArIGtUeXBlZFRlc3RT
dWl0ZXMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpKTsKKyAgRVhQRUNUX0VR
KDEgKyBrVHlwZWRUZXN0U3VpdGVzLCB1bml0X3Rlc3QtPnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50
KCkpOwogICBFWFBFQ1RfRVEoMiwgdW5pdF90ZXN0LT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwog
ICBFWFBFQ1RfRVEoNSArIGtUeXBlZFRlc3RzLCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY291bnQo
KSk7CiAgIEVYUEVDVF9FUSgzICsga1R5cGVkVGVzdHMsIHVuaXRfdGVzdC0+dGVzdF90b19ydW5f
Y291bnQoKSk7CiAKLSAgY29uc3QgVGVzdENhc2UqKiBjb25zdCB0ZXN0X2Nhc2VzID0gVW5pdFRl
c3RIZWxwZXI6OkdldFNvcnRlZFRlc3RDYXNlcygpOworICBjb25zdCBUZXN0U3VpdGUqKiBjb25z
dCB0ZXN0X3N1aXRlcyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0U3VpdGVzKCk7CiAK
LSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9jYXNlc1swXS0+bmFtZSgpKTsKLSAgRVhQ
RUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9jYXNlc1sxXS0+bmFtZSgpKTsKLSNpZiBH
VEVTVF9IQVNfVFlQRURfVEVTVAotICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlV2l0aENvbW1lbnRU
ZXN0LzAiLCB0ZXN0X2Nhc2VzWzJdLT5uYW1lKCkpOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQ
RURfVEVTVAorICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0X3N1aXRlc1swXS0+bmFtZSgp
KTsKKyAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9zdWl0ZXNbMV0tPm5hbWUo
KSk7CisgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X3N1
aXRlc1syXS0+bmFtZSgpKTsKIAotICBkZWxldGVbXSB0ZXN0X2Nhc2VzOworICBkZWxldGVbXSB0
ZXN0X3N1aXRlczsKIAogICAvLyBUaGUgZm9sbG93aW5nIGxpbmVzIGluaXRpYXRlIGFjdGlvbnMg
dG8gdmVyaWZ5IGNlcnRhaW4gbWV0aG9kcyBpbgogICAvLyBGaW5hbFN1Y2Nlc3NDaGVja2VyOjpU
ZWFyRG93bi4KQEAgLTEzNywxNjAgKzEzMCwxNTcgQEAgVEVTVChBcGlUZXN0LCBVbml0VGVzdElt
bXV0YWJsZUFjY2Vzc29yc1dvcmspIHsKIH0KIAogQXNzZXJ0aW9uUmVzdWx0IElzTnVsbChjb25z
dCBjaGFyKiBzdHIpIHsKLSAgaWYgKHN0ciAhPSBOVUxMKSB7CisgIGlmIChzdHIgIT0gbnVsbHB0
cikgewogICAgIHJldHVybiB0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgImFyZ3VtZW50
IGlzICIgPDwgc3RyOwogICB9CiAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7CiB9CiAKLVRF
U1QoQXBpVGVzdCwgVGVzdENhc2VJbW11dGFibGVBY2Nlc3NvcnNXb3JrKSB7Ci0gIGNvbnN0IFRl
c3RDYXNlKiB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RDYXNlKCJBcGlUZXN0
Iik7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKK1RFU1QoQXBpVGVzdCwgVGVz
dFN1aXRlSW1tdXRhYmxlQWNjZXNzb3JzV29yaykgeworICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rf
c3VpdGUgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiQXBpVGVzdCIpOworICBBU1NF
UlRfVFJVRSh0ZXN0X3N1aXRlICE9IG51bGxwdHIpOwogCi0gIEVYUEVDVF9TVFJFUSgiQXBpVGVz
dCIsIHRlc3RfY2FzZS0+bmFtZSgpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZS0+
dHlwZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpKTsK
LSAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgRVhQ
RUNUX0VRKDMsIHRlc3RfY2FzZS0+dGVzdF90b19ydW5fY291bnQoKSk7Ci0gIEFTU0VSVF9FUSg0
LCB0ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291bnQoKSk7CisgIEVYUEVDVF9TVFJFUSgiQXBpVGVz
dCIsIHRlc3Rfc3VpdGUtPm5hbWUoKSk7CisgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRl
LT50eXBlX3BhcmFtKCkpKTsKKyAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigp
KTsKKyAgRVhQRUNUX0VRKDEsIHRlc3Rfc3VpdGUtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Cisg
IEVYUEVDVF9FUSgzLCB0ZXN0X3N1aXRlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKKyAgQVNTRVJU
X0VRKDQsIHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKSk7CiAKLSAgY29uc3QgVGVzdElu
Zm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOwor
ICBjb25zdCBUZXN0SW5mbyoqIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3Rz
KHRlc3Rfc3VpdGUpOwogCiAgIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfRHVtbXkxIiwgdGVzdHNb
MF0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzBdLT50ZXN0X2Nh
c2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3Rfc3Vp
dGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgp
KSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVY
UEVDVF9GQUxTRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigpKTsKIAotICBFWFBFQ1RfU1RSRVEoIlRl
c3RDYXNlRGlzYWJsZWRBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMV0tPm5hbWUoKSk7Ci0gIEVYUEVD
VF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzFdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNU
X1NUUkVRKCJUZXN0U3VpdGVEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgp
KTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMV0tPnRlc3Rfc3VpdGVfbmFtZSgp
KTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFdLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVY
UEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sxXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVF
KHRlc3RzWzFdLT5zaG91bGRfcnVuKCkpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VJbW11
dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgi
QXBpVGVzdCIsIHRlc3RzWzJdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJU
ZXN0U3VpdGVJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUoKSk7CisgIEVY
UEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVY
UEVDVF9UUlVFKElzTnVsbCh0ZXN0c1syXS0+dmFsdWVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJV
RShJc051bGwodGVzdHNbMl0tPnR5cGVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJVRSh0ZXN0c1sy
XS0+c2hvdWxkX3J1bigpKTsKIAogICBFWFBFQ1RfU1RSRVEoIlVuaXRUZXN0SW1tdXRhYmxlQWNj
ZXNzb3JzV29yayIsIHRlc3RzWzNdLT5uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3Qi
LCB0ZXN0c1szXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIs
IHRlc3RzWzNdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0
c1szXS0+dmFsdWVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10tPnR5
cGVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJVRSh0ZXN0c1szXS0+c2hvdWxkX3J1bigpKTsKIAog
ICBkZWxldGVbXSB0ZXN0czsKLSAgdGVzdHMgPSBOVUxMOworICB0ZXN0cyA9IG51bGxwdHI7CiAK
LSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotICB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6
RmluZFRlc3RDYXNlKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIik7Ci0gIEFTU0VSVF9UUlVF
KHRlc3RfY2FzZSAhPSBOVUxMKTsKKyAgdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5k
VGVzdFN1aXRlKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIpOworICBBU1NFUlRfVFJVRSh0
ZXN0X3N1aXRlICE9IG51bGxwdHIpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29t
bWVudFRlc3QvMCIsIHRlc3RfY2FzZS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKEdldFR5cGVO
YW1lPGludD4oKS5jX3N0cigpLCB0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSk7Ci0gIEVYUEVDVF9U
UlVFKHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpKTsKLSAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZS0+
ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZS0+dGVzdF90
b19ydW5fY291bnQoKSk7Ci0gIEFTU0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291
bnQoKSk7CisgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0
X3N1aXRlLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4o
KS5jX3N0cigpLCB0ZXN0X3N1aXRlLT50eXBlX3BhcmFtKCkpOworICBFWFBFQ1RfVFJVRSh0ZXN0
X3N1aXRlLT5zaG91bGRfcnVuKCkpOworICBFWFBFQ1RfRVEoMCwgdGVzdF9zdWl0ZS0+ZGlzYWJs
ZWRfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDEsIHRlc3Rfc3VpdGUtPnRlc3RfdG9fcnVu
X2NvdW50KCkpOworICBBU1NFUlRfRVEoMSwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgp
KTsKIAotICB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2Up
OworICB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsK
IAogICBFWFBFQ1RfU1RSRVEoIkR1bW15IiwgdGVzdHNbMF0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9T
VFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFt
ZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rz
WzBdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1swXS0+
dmFsdWVfcGFyYW0oKSkpOwotICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3Ry
KCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOworICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8
VHlwZXM8aW50Pj4oKS5jX3N0cigpLCB0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKTsKICAgRVhQRUNU
X1RSVUUodGVzdHNbMF0tPnNob3VsZF9ydW4oKSk7CiAKICAgZGVsZXRlW10gdGVzdHM7Ci0jZW5k
aWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCiB9CiAKLVRFU1QoQXBpVGVzdCwgVGVzdENhc2VE
aXNhYmxlZEFjY2Vzc29yc1dvcmspIHsKLSAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVu
aXRUZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIkRJU0FCTEVEX1Rlc3QiKTsKLSAgQVNTRVJUX1RS
VUUodGVzdF9jYXNlICE9IE5VTEwpOworVEVTVChBcGlUZXN0LCBUZXN0U3VpdGVEaXNhYmxlZEFj
Y2Vzc29yc1dvcmspIHsKKyAgY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0gVW5pdFRlc3RI
ZWxwZXI6OkZpbmRUZXN0U3VpdGUoIkRJU0FCTEVEX1Rlc3QiKTsKKyAgQVNTRVJUX1RSVUUodGVz
dF9zdWl0ZSAhPSBudWxscHRyKTsKIAotICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0
ZXN0X2Nhc2UtPm5hbWUoKSk7Ci0gIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2UtPnR5cGVf
cGFyYW0oKSkpOwotICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBF
WFBFQ1RfRVEoMSwgdGVzdF9jYXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1Rf
RVEoMCwgdGVzdF9jYXNlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDEsIHRl
c3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9U
ZXN0IiwgdGVzdF9zdWl0ZS0+bmFtZSgpKTsKKyAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3Vp
dGUtPnR5cGVfcGFyYW0oKSkpOworICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZS0+c2hvdWxkX3J1
bigpKTsKKyAgRVhQRUNUX0VRKDEsIHRlc3Rfc3VpdGUtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7
CisgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKKyAgQVNT
RVJUX0VRKDEsIHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKSk7CiAKLSAgY29uc3QgVGVz
dEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oMCk7CisgIGNv
bnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT5HZXRUZXN0SW5mbygw
KTsKICAgRVhQRUNUX1NUUkVRKCJEdW1teTIiLCB0ZXN0X2luZm8tPm5hbWUoKSk7Ci0gIEVYUEVD
VF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Cisg
IEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1l
KCkpOwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpKSk7CiAg
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSkpOwogICBFWFBFQ1Rf
RkFMU0UodGVzdF9pbmZvLT5zaG91bGRfcnVuKCkpOwogfQogCiAvLyBUaGVzZSB0d28gdGVzdHMg
YXJlIGhlcmUgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0ZXN0aW5nCi0vLyB0ZXN0X2Nhc2VfdG9f
cnVuX2NvdW50LCBkaXNhYmxlZF90ZXN0X2NvdW50LCBhbmQgdGVzdF90b19ydW5fY291bnQuCisv
LyB0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCwgZGlzYWJsZWRfdGVzdF9jb3VudCwgYW5kIHRlc3Rf
dG9fcnVuX2NvdW50LgogVEVTVChBcGlUZXN0LCBESVNBQkxFRF9EdW1teTEpIHt9CiBURVNUKERJ
U0FCTEVEX1Rlc3QsIER1bW15Mikge30KIAogY2xhc3MgRmluYWxTdWNjZXNzQ2hlY2tlciA6IHB1
YmxpYyBFbnZpcm9ubWVudCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgVW5pdFRlc3QqIHVuaXRfdGVz
dCA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpOwogCi0gICAgRVhQRUNUX0VRKDEgKyBrVHlwZWRU
ZXN0Q2FzZXMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSk7CisgICAg
RVhQRUNUX0VRKDEgKyBrVHlwZWRUZXN0U3VpdGVzLCB1bml0X3Rlc3QtPnN1Y2Nlc3NmdWxfdGVz
dF9zdWl0ZV9jb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMyArIGtUeXBlZFRlc3RzLCB1bml0X3Rl
c3QtPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdW5pdF90ZXN0
LT5mYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3Qt
PmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkpOwogICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3Qt
PmZhaWxlZF90ZXN0X2NvdW50KCkpOwogICAgIEVYUEVDVF9UUlVFKHVuaXRfdGVzdC0+UGFzc2Vk
KCkpOwogICAgIEVYUEVDVF9GQUxTRSh1bml0X3Rlc3QtPkZhaWxlZCgpKTsKLSAgICBBU1NFUlRf
RVEoMiArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X2Nhc2VfY291bnQo
KSk7Ci0KLSAgICBjb25zdCBUZXN0Q2FzZSoqIGNvbnN0IHRlc3RfY2FzZXMgPSBVbml0VGVzdEhl
bHBlcjo6R2V0U29ydGVkVGVzdENhc2VzKCk7Ci0KLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3Qi
LCB0ZXN0X2Nhc2VzWzBdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nh
c2VzWzBdLT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2Nhc2VzWzBdLT5z
aG91bGRfcnVuKCkpOwotICAgIEVYUEVDVF9FUSgxLCB0ZXN0X2Nhc2VzWzBdLT5kaXNhYmxlZF90
ZXN0X2NvdW50KCkpOwotICAgIEFTU0VSVF9FUSg0LCB0ZXN0X2Nhc2VzWzBdLT50b3RhbF90ZXN0
X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgzLCB0ZXN0X2Nhc2VzWzBdLT5zdWNjZXNzZnVsX3Rl
c3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZXNbMF0tPmZhaWxlZF90ZXN0
X2NvdW50KCkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3RfY2FzZXNbMF0tPlBhc3NlZCgpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlc1swXS0+RmFpbGVkKCkpOwotCi0gICAgRVhQRUNUX1NU
UkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9jYXNlc1sxXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShJc051bGwodGVzdF9jYXNlc1sxXS0+dHlwZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKHRlc3RfY2FzZXNbMV0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3Rf
Y2FzZXNbMV0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgQVNTRVJUX0VRKDEsIHRlc3Rf
Y2FzZXNbMV0tPnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RfY2Fz
ZXNbMV0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9j
YXNlc1sxXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVT
VAotICAgIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2Fz
ZXNbMl0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPGludD4oKS5jX3N0
cigpLCB0ZXN0X2Nhc2VzWzJdLT50eXBlX3BhcmFtKCkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3Rf
Y2FzZXNbMl0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZXNbMl0t
PmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgQVNTRVJUX0VRKDEsIHRlc3RfY2FzZXNbMl0t
PnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZXNbMl0tPnN1
Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1syXS0+
ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1syXS0+UGFz
c2VkKCkpOwotICAgIEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2VzWzJdLT5GYWlsZWQoKSk7Ci0jZW5k
aWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLSAgICBjb25zdCBUZXN0Q2FzZSogdGVzdF9j
YXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgiQXBpVGVzdCIpOwotICAgIGNvbnN0
IFRlc3RJbmZvKiogdGVzdHMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHModGVzdF9j
YXNlKTsKKyAgICBBU1NFUlRfRVEoMiArIGtUeXBlZFRlc3RTdWl0ZXMsIHVuaXRfdGVzdC0+dG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpKTsKKworICAgIGNvbnN0IFRlc3RTdWl0ZSoqIGNvbnN0IHRl
c3Rfc3VpdGVzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RTdWl0ZXMoKTsKKworICAg
IEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3Rfc3VpdGVzWzBdLT5uYW1lKCkpOworICAgIEVY
UEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRlc1swXS0+dHlwZV9wYXJhbSgpKSk7CisgICAgRVhQ
RUNUX1RSVUUodGVzdF9zdWl0ZXNbMF0tPnNob3VsZF9ydW4oKSk7CisgICAgRVhQRUNUX0VRKDEs
IHRlc3Rfc3VpdGVzWzBdLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOworICAgIEFTU0VSVF9FUSg0
LCB0ZXN0X3N1aXRlc1swXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMywg
dGVzdF9zdWl0ZXNbMF0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEo
MCwgdGVzdF9zdWl0ZXNbMF0tPmZhaWxlZF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9UUlVF
KHRlc3Rfc3VpdGVzWzBdLT5QYXNzZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVz
WzBdLT5GYWlsZWQoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0
X3N1aXRlc1sxXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9zdWl0ZXNb
MV0tPnR5cGVfcGFyYW0oKSkpOworICAgIEVYUEVDVF9GQUxTRSh0ZXN0X3N1aXRlc1sxXS0+c2hv
dWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZXNbMV0tPmRpc2FibGVkX3Rl
c3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VRKDEsIHRlc3Rfc3VpdGVzWzFdLT50b3RhbF90ZXN0
X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1sxXS0+c3VjY2Vzc2Z1bF90
ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1sxXS0+ZmFpbGVkX3Rl
c3RfY291bnQoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVz
dC8wIiwgdGVzdF9zdWl0ZXNbMl0tPm5hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKEdldFR5cGVO
YW1lPFR5cGVzPGludD4+KCkuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZXNb
Ml0tPnR5cGVfcGFyYW0oKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNbMl0tPnNob3Vs
ZF9ydW4oKSk7CisgICAgRVhQRUNUX0VRKDAsIHRlc3Rfc3VpdGVzWzJdLT5kaXNhYmxlZF90ZXN0
X2NvdW50KCkpOworICAgIEFTU0VSVF9FUSgxLCB0ZXN0X3N1aXRlc1syXS0+dG90YWxfdGVzdF9j
b3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZXNbMl0tPnN1Y2Nlc3NmdWxfdGVz
dF9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdGVzdF9zdWl0ZXNbMl0tPmZhaWxlZF90ZXN0
X2NvdW50KCkpOworICAgIEVYUEVDVF9UUlVFKHRlc3Rfc3VpdGVzWzJdLT5QYXNzZWQoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVzWzJdLT5GYWlsZWQoKSk7CisKKyAgICBjb25zdCBU
ZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiQXBp
VGVzdCIpOworICAgIGNvbnN0IFRlc3RJbmZvKiogdGVzdHMgPSBVbml0VGVzdEhlbHBlcjo6R2V0
U29ydGVkVGVzdHModGVzdF9zdWl0ZSk7CiAgICAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9EdW1t
eTEiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0
c1swXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVz
dHNbMF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfRkFMU0UodGVzdHNbMF0tPnNo
b3VsZF9ydW4oKSk7CiAKLSAgICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlRGlzYWJsZWRBY2Nlc3Nv
cnNXb3JrIiwgdGVzdHNbMV0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdHNbMV0tPnRlc3RfY2FzZV9uYW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRl
RGlzYWJsZWRBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMV0tPm5hbWUoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJBcGlUZXN0IiwgdGVzdHNbMV0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1Rf
VFJVRShJc051bGwodGVzdHNbMV0tPnZhbHVlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRShJ
c051bGwodGVzdHNbMV0tPnR5cGVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzFd
LT5zaG91bGRfcnVuKCkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzFdLT5yZXN1bHQoKS0+UGFz
c2VkKCkpOwogICAgIEVYUEVDVF9FUSgwLCB0ZXN0c1sxXS0+cmVzdWx0KCktPnRlc3RfcHJvcGVy
dHlfY291bnQoKSk7CiAKLSAgICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlSW1tdXRhYmxlQWNjZXNz
b3JzV29yayIsIHRlc3RzWzJdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIs
IHRlc3RzWzJdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0
ZUltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1syXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVD
VF9UUlVFKElzTnVsbCh0ZXN0c1syXS0+dmFsdWVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVF
KElzTnVsbCh0ZXN0c1syXS0+dHlwZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNb
Ml0tPnNob3VsZF9ydW4oKSk7CkBAIC0yOTgsNyArMjg4LDcgQEAgY2xhc3MgRmluYWxTdWNjZXNz
Q2hlY2tlciA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAgICAgRVhQRUNUX0VRKDAsIHRlc3RzWzJd
LT5yZXN1bHQoKS0+dGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKIAogICAgIEVYUEVDVF9TVFJFUSgi
VW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbM10tPm5hbWUoKSk7Ci0gICAg
RVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbM10tPnRlc3RfY2FzZV9uYW1lKCkpOworICAg
IEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzNdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzNdLT52YWx1ZV9wYXJhbSgpKSk7CiAgICAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RzWzNdLT50eXBlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJV
RSh0ZXN0c1szXS0+c2hvdWxkX3J1bigpKTsKQEAgLTMxMCwyMSArMzAwLDE5IEBAIGNsYXNzIEZp
bmFsU3VjY2Vzc0NoZWNrZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgewogCiAgICAgZGVsZXRlW10g
dGVzdHM7CiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotICAgIHRlc3RfY2FzZSA9IFVuaXRU
ZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiKTsKLSAg
ICB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICAg
IHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiVGVzdFN1aXRlV2l0
aENvbW1lbnRUZXN0LzAiKTsKKyAgICB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRU
ZXN0cyh0ZXN0X3N1aXRlKTsKIAogICAgIEVYUEVDVF9TVFJFUSgiRHVtbXkiLCB0ZXN0c1swXS0+
bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiLCB0
ZXN0c1swXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVX
aXRoQ29tbWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX1NU
UkVRKEdldFR5cGVOYW1lPGludD4oKS5jX3N0cigpLCB0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigpLCB0ZXN0
c1swXS0+dHlwZV9wYXJhbSgpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1swXS0+c2hvdWxkX3J1
bigpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1swXS0+cmVzdWx0KCktPlBhc3NlZCgpKTsKICAg
ICBFWFBFQ1RfRVEoMCwgdGVzdHNbMF0tPnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5X2NvdW50KCkp
OwogCiAgICAgZGVsZXRlW10gdGVzdHM7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0gICAgZGVsZXRlW10gdGVzdF9jYXNlczsKKyAgICBkZWxldGVbXSB0ZXN0X3N1aXRlczsKICAg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9h
bGxfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYWxsX3Rlc3Qu
Y2MKaW5kZXggZTYxZTM2YjFkZmU4ZGEwMzAxNmFmNTc4NTViMmM3ODFlZTdkOTFlNi4uNjE1YjI5
YjcwNjUxNmIxNWZmYjZkMWFlNTE1YWU5YTU2NjAwYjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjCkBAIC0zMywxNCArMzMsMTQgQEAKIC8v
IFNvbWV0aW1lcyBpdCdzIGRlc2lyYWJsZSB0byBidWlsZCBtb3N0IG9mIEdvb2dsZSBUZXN0J3Mg
b3duIHRlc3RzCiAvLyBieSBjb21waWxpbmcgYSBzaW5nbGUgZmlsZS4gIFRoaXMgZmlsZSBzZXJ2
ZXMgdGhpcyBwdXJwb3NlLgogI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1maWxlcGF0aC10ZXN0
LmNjIgotI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1saW5rZWQtcHRyLXRlc3QuY2MiCiAjaW5j
bHVkZSAidGVzdC9nb29nbGV0ZXN0LW1lc3NhZ2UtdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dv
b2dsZXRlc3Qtb3B0aW9ucy10ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1wb3J0
LXRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MiCi0j
aW5jbHVkZSAidGVzdC9ndGVzdF9wcm9kX3Rlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9nb29nbGV0
ZXN0LXRlc3QtcGFydC10ZXN0LmNjIgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90
ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYyIKKyNpbmNs
dWRlICJ0ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0
X3ByZWRfaW1wbF91bml0dGVzdC5jYyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3Byb2RfdGVzdC5j
YyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2d0
ZXN0X3VuaXR0ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvcHJvZHVjdGlvbi5jYyIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYXNzZXJ0X2J5X2V4Y2VwdGlv
bl90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlf
ZXhjZXB0aW9uX3Rlc3QuY2MKaW5kZXggMGVhZTg1NzVmM2ZlZTMwYmFjNjQyYmExNTg5ZmYyMzRk
MDdmOTQ1NC4uYWRhNGNiMzBlZjY4YzU1ZGI4MTM1NjUyOTE4NjgzNGUyNWMxYWMyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0
aW9uX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3Nl
cnRfYnlfZXhjZXB0aW9uX3Rlc3QuY2MKQEAgLTgwLDggKzgwLDcgQEAgVEVTVChUZXN0LCBUZXN0
KSB7CiAgIHRyeSB7CiAgICAgQXNzZXJ0RmFsc2UoKTsKICAgfSBjYXRjaChjb25zdCB0ZXN0aW5n
OjpBc3NlcnRpb25FeGNlcHRpb24mIGUpIHsKLSAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAiRXhw
ZWN0ZWQgZmFpbHVyZSIpICE9IE5VTEwpCi0gICAgICB0aHJvdzsKKyAgICBpZiAoc3Ryc3RyKGUu
d2hhdCgpLCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IG51bGxwdHIpIHRocm93OwogCiAgICAgcHJp
bnRmKCIlcyIsCiAgICAgICAgICAgICJBIGZhaWxlZCBhc3NlcnRpb24gZGlkIHRocm93IGFuIGV4
Y2VwdGlvbiBvZiB0aGUgcmlnaHQgdHlwZSwgIgpAQCAtOTcsNyArOTYsNiBAQCBURVNUKFRlc3Qs
IFRlc3QpIHsKIGludCBrVGVzdEZvckNvbnRpbnVpbmdUZXN0ID0gMDsKIAogVEVTVChUZXN0LCBU
ZXN0MikgewotICAvLyBGSVhNRTogaG93IHRvIGZvcmNlIFRlc3QyIHRvIGJlIGFmdGVyIFRlc3Q/
CiAgIGtUZXN0Rm9yQ29udGludWluZ1Rlc3QgPSAxOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Vudmlyb25tZW50X3Rlc3QuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Vudmlyb25tZW50X3Rlc3QuY2MKaW5kZXggYmM5
NTI0ZDY2MzczZTcxOTUxY2FjY2Q5MDZjMDY2ZWY0YWY5NGI0Ni4uMDY0YmZjNTBiOTE4NDUxZTI5
MDdiZDU4NTY2NzNkZGNkMjcwMTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9lbnZpcm9ubWVudF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVzdC5jYwpAQCAtNTMsNyArNTMsNyBAQCBj
bGFzcyBNeUVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICAgLy8g
RGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBmYWlsdXJlX2luX3NldF91cF8sIFNldFVwKCkgd2ls
bAogICAvLyBnZW5lcmF0ZSBhIG5vbi1mYXRhbCBmYWlsdXJlLCBnZW5lcmF0ZSBhIGZhdGFsIGZh
aWx1cmUsIG9yCiAgIC8vIHN1Y2NlZWQuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBzZXRfdXBfd2FzX3J1bl8gPSB0cnVlOwogCiAgICAg
c3dpdGNoIChmYWlsdXJlX2luX3NldF91cF8pIHsKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgTXlF
bnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgIH0KIAogICAvLyBH
ZW5lcmF0ZXMgYSBub24tZmF0YWwgZmFpbHVyZS4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
eworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRlYXJfZG93bl93YXNfcnVuXyA9
IHRydWU7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUg
aW4gZ2xvYmFsIHRlYXItZG93bi4iOwogICB9CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBDaGVj
ayhib29sIGNvbmRpdGlvbiwgY29uc3QgY2hhciogbXNnKSB7CiAgIH0KIH0KIAotLy8gUnVucyB0
aGUgdGVzdHMuICBSZXR1cm4gdHJ1ZSBpZmYgc3VjY2Vzc2Z1bC4KKy8vIFJ1bnMgdGhlIHRlc3Rz
LiAgUmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgc3VjY2Vzc2Z1bC4KIC8vCiAvLyBUaGUgJ2Zh
aWx1cmUnIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZmFpbHVyZSB0aGF0IHNob3Vs
ZAogLy8gYmUgZ2VuZXJhdGVkIGJ5IHRoZSBnbG9iYWwgc2V0LXVwLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9oZWxwX3Rlc3QucHkgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weQppbmRleCA1ODJkMjRjMmRjY2U4
OTQ1MzhhYTYzY2NiZDYxMjBiZGQ0YjM1MGEwLi44ZDk1M2JiZDlkYzRkYjcyMzY3YTk1MDgyMTMy
MjRlODgwYmVhMGMzIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X2hlbHBfdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X2hlbHBfdGVzdC5weQpAQCAtNDMsNiArNDMsNyBAQCBpbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwog
CiAKIElTX0xJTlVYID0gb3MubmFtZSA9PSAncG9zaXgnIGFuZCBvcy51bmFtZSgpWzBdID09ICdM
aW51eCcKK0lTX0dOVUtGUkVFQlNEID0gb3MubmFtZSA9PSAncG9zaXgnIGFuZCBvcy51bmFtZSgp
WzBdID09ICdHTlUva0ZyZWVCU0QnCiBJU19XSU5ET1dTID0gb3MubmFtZSA9PSAnbnQnCiAKIFBS
T0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVz
dF9oZWxwX3Rlc3RfJykKQEAgLTY4LDYgKzY5LDcgQEAgSEVMUF9SRUdFWCA9IHJlLmNvbXBpbGUo
CiAgICAgRkxBR19QUkVGSVggKyByJ3NodWZmbGUuKicgKwogICAgIEZMQUdfUFJFRklYICsgcidy
YW5kb21fc2VlZD0uKicgKwogICAgIEZMQUdfUFJFRklYICsgcidjb2xvcj0uKicgKworICAgIEZM
QUdfUFJFRklYICsgcidicmllZi4qJyArCiAgICAgRkxBR19QUkVGSVggKyByJ3ByaW50X3RpbWUu
KicgKwogICAgIEZMQUdfUFJFRklYICsgcidvdXRwdXQ9LionICsKICAgICBGTEFHX1BSRUZJWCAr
IHInYnJlYWtfb25fZmFpbHVyZS4qJyArCkBAIC0xMTAsNyArMTEyLDcgQEAgY2xhc3MgR1Rlc3RI
ZWxwVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICBzZWxmLmFzc2VydEVxdWFs
cygwLCBleGl0X2NvZGUpCiAgICAgc2VsZi5hc3NlcnRfKEhFTFBfUkVHRVguc2VhcmNoKG91dHB1
dCksIG91dHB1dCkKIAotICAgIGlmIElTX0xJTlVYOgorICAgIGlmIElTX0xJTlVYIG9yIElTX0dO
VUtGUkVFQlNEOgogICAgICAgc2VsZi5hc3NlcnRfKFNUUkVBTV9SRVNVTFRfVE9fRkxBRyBpbiBv
dXRwdXQsIG91dHB1dCkKICAgICBlbHNlOgogICAgICAgc2VsZi5hc3NlcnRfKFNUUkVBTV9SRVNV
TFRfVE9fRkxBRyBub3QgaW4gb3V0cHV0LCBvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5IGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVzdC5weQppbmRl
eCAzYmJhN2VhMmNmZDM3Y2FkNTUwOWY0MGY4ZThiMDAyMjcwNmJlNzg0Li5hNDQyZmMxNjljODdm
YzBkZWJiNDJkMzUyYjI4YzYzNzFkZWYzMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3QucHkKQEAgLTQ2
LDE2ICs0Niw0MiBAQCBHVEVTVF9MSVNUX1RFU1RTX0ZMQUcgPSAnLS1ndGVzdF9saXN0X3Rlc3Rz
JwogR1RFU1RfT1VUUFVUX0ZMQUcgPSAnLS1ndGVzdF9vdXRwdXQnCiAKIEVYUEVDVEVEX1hNTCA9
ICIiIjxcP3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCJcPz4KLTx0ZXN0c3VpdGVz
IHRlc3RzPSIyIiBuYW1lPSJBbGxUZXN0cyI+Cis8dGVzdHN1aXRlcyB0ZXN0cz0iMTYiIG5hbWU9
IkFsbFRlc3RzIj4KICAgPHRlc3RzdWl0ZSBuYW1lPSJGb29UZXN0IiB0ZXN0cz0iMiI+CiAgICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3QxIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyIgbGluZT0iNDMiIC8+CiAgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3QyIiBmaWxlPSIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNDUiIC8+CiAgIDwvdGVzdHN1aXRl
PgorICA8dGVzdHN1aXRlIG5hbWU9IkZvb1Rlc3RGaXh0dXJlIiB0ZXN0cz0iMiI+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlRlc3QzIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YyIgbGluZT0iNDgiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q0IiBmaWxlPSIuKmd0ZXN0
X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNDkiIC8+CisgIDwvdGVzdHN1aXRlPgor
ICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IlRlc3Q3IiB0eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRf
dW5pdHRlc3RfLmNjIiBsaW5lPSI2MCIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDgiIHR5
cGVfcGFyYW09ImludCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxp
bmU9IjYxIiAvPgorICA8L3Rlc3RzdWl0ZT4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJUeXBlZFRlc3Qv
MSIgdGVzdHM9IjIiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0NyIgdHlwZV9wYXJhbT0iYm9v
bCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYwIiAvPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0OCIgdHlwZV9wYXJhbT0iYm9vbCIgZmlsZT0iLipndGVz
dF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYxIiAvPgorICA8L3Rlc3RzdWl0ZT4K
KyAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIg
dGVzdHM9IjIiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0OSIgdHlwZV9wYXJhbT0iaW50IiBm
aWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjYiIC8+CisgICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3QxMCIgdHlwZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0ZXN0X2xp
c3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjciIC8+CisgIDwvdGVzdHN1aXRlPgorICA8
dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8xIiB0ZXN0
cz0iMiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q5IiB0eXBlX3BhcmFtPSJib29sIiBmaWxl
PSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjYiIC8+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlRlc3QxMCIgdHlwZV9wYXJhbT0iYm9vbCIgZmlsZT0iLipndGVzdF9saXN0
X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjY3IiAvPgorICA8L3Rlc3RzdWl0ZT4KKyAgPHRl
c3RzdWl0ZSBuYW1lPSJWYWx1ZVBhcmFtL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCI+CisgICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3Q1LzAiIHZhbHVlX3BhcmFtPSIzMyIgZmlsZT0iLipndGVzdF9s
aXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjUyIiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1l
PSJUZXN0NS8xIiB2YWx1ZV9wYXJhbT0iNDIiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIiBsaW5lPSI1MiIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDYvMCIgdmFs
dWVfcGFyYW09IjMzIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGlu
ZT0iNTMiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q2LzEiIHZhbHVlX3BhcmFtPSI0MiIg
ZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjUzIiAvPgorICA8
L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4KICIiIgogCiBFWFBFQ1RFRF9KU09OID0gIiIiewot
ICAidGVzdHMiOiAyLAorICAidGVzdHMiOiAxNiwKICAgIm5hbWUiOiAiQWxsVGVzdHMiLAogICAi
dGVzdHN1aXRlcyI6IFxbCiAgICAgewpAQCAtNzMsNiArOTksMTI0IEBAIEVYUEVDVEVEX0pTT04g
PSAiIiJ7CiAgICAgICAgICAgImxpbmUiOiA0NQogICAgICAgICB9CiAgICAgICBcXQorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAiRm9vVGVzdEZpeHR1cmUiLAorICAgICAgInRlc3RzIjog
MiwKKyAgICAgICJ0ZXN0c3VpdGUiOiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAi
VGVzdDMiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3Rf
LmNjIiwKKyAgICAgICAgICAibGluZSI6IDQ4CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAibmFtZSI6ICJUZXN0NCIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291
dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNDkKKyAgICAgICAgfQorICAg
ICAgXF0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlR5cGVkVGVzdFxcXFwvMCIsCisg
ICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAg
ICAgICAibmFtZSI6ICJUZXN0NyIsCisgICAgICAgICAgInR5cGVfcGFyYW0iOiAiaW50IiwKKyAg
ICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAg
ICAgICAgImxpbmUiOiA2MAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUi
OiAiVGVzdDgiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImludCIsCisgICAgICAgICAgImZp
bGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5l
IjogNjEKKyAgICAgICAgfQorICAgICAgXF0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
IlR5cGVkVGVzdFxcXFwvMSIsCisgICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6
IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NyIsCisgICAgICAgICAgInR5
cGVfcGFyYW0iOiAiYm9vbCIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1
dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNjAKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q4IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6
ICJib29sIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2MQorICAgICAgICB9CisgICAgICBcXQorICAgIH0s
CisgICAgeworICAgICAgIm5hbWUiOiAiU2luZ2xlXFxcXC9UeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZVxcXFwvMCIsCisgICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisg
ICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0OSIsCisgICAgICAgICAgInR5cGVfcGFy
YW0iOiAiaW50IiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0
ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2NgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgIm5hbWUiOiAiVGVzdDEwIiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQi
LAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwK
KyAgICAgICAgICAibGluZSI6IDY3CisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJTaW5nbGVcXFxcL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlXFxc
XC8xIiwKKyAgICAgICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAg
eworICAgICAgICAgICJuYW1lIjogIlRlc3Q5IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJi
b29sIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YyIsCisgICAgICAgICAgImxpbmUiOiA2NgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgIm5hbWUiOiAiVGVzdDEwIiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAg
ICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAg
ICAgICAgImxpbmUiOiA2NworICAgICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiVmFsdWVQYXJhbVxcXFwvVmFsdWVQYXJhbVRlc3QiLAorICAgICAgInRlc3Rz
IjogNCwKKyAgICAgICJ0ZXN0c3VpdGUiOiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUi
OiAiVGVzdDVcXFxcLzAiLAorICAgICAgICAgICJ2YWx1ZV9wYXJhbSI6ICIzMyIsCisgICAgICAg
ICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAg
ICJsaW5lIjogNTIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRl
c3Q1XFxcXC8xIiwKKyAgICAgICAgICAidmFsdWVfcGFyYW0iOiAiNDIiLAorICAgICAgICAgICJm
aWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGlu
ZSI6IDUyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0Nlxc
XFwvMCIsCisgICAgICAgICAgInZhbHVlX3BhcmFtIjogIjMzIiwKKyAgICAgICAgICAiZmlsZSI6
ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1
MworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDZcXFxcLzEi
LAorICAgICAgICAgICJ2YWx1ZV9wYXJhbSI6ICI0MiIsCisgICAgICAgICAgImZpbGUiOiAiLipn
dGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNTMKKyAg
ICAgICAgfQorICAgICAgXF0KICAgICB9CiAgIFxdCiB9CkBAIC0xMTQsOCArMjU4LDkgQEAgY2xh
c3MgR1Rlc3RMaXN0VGVzdHNPdXRwdXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKICAgICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAogICAgICAgICBjb21tYW5k
LCBlbnY9ZW52aXJvbl9jb3B5LCB3b3JraW5nX2Rpcj1ndGVzdF90ZXN0X3V0aWxzLkdldFRlbXBE
aXIoKSkKIAotICAgIHNlbGYuYXNzZXJ0XyhwLmV4aXRlZCkKLSAgICBzZWxmLmFzc2VydEVxdWFs
cygwLCBwLmV4aXRfY29kZSkKKyAgICBzZWxmLmFzc2VydFRydWUocC5leGl0ZWQpCisgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgwLCBwLmV4aXRfY29kZSkKKyAgICBzZWxmLmFzc2VydFRydWUob3MucGF0
aC5pc2ZpbGUoZmlsZV9wYXRoKSkKICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoKSBhcyBmOgogICAg
ICAgcmVzdWx0ID0gZi5yZWFkKCkKICAgICByZXR1cm4gcmVzdWx0CkBAIC0xMjgsNyArMjczLDcg
QEAgY2xhc3MgR1Rlc3RMaXN0VGVzdHNPdXRwdXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRl
c3RDYXNlKToKICAgICBmb3IgYWN0dWFsX2xpbmUgaW4gYWN0dWFsX2xpbmVzOgogICAgICAgZXhw
ZWN0ZWRfbGluZSA9IGV4cGVjdGVkX2xpbmVzW2xpbmVfY291bnRdCiAgICAgICBleHBlY3RlZF9s
aW5lX3JlID0gcmUuY29tcGlsZShleHBlY3RlZF9saW5lLnN0cmlwKCkpCi0gICAgICBzZWxmLmFz
c2VydF8oCisgICAgICBzZWxmLmFzc2VydFRydWUoCiAgICAgICAgICAgZXhwZWN0ZWRfbGluZV9y
ZS5tYXRjaChhY3R1YWxfbGluZS5zdHJpcCgpKSwKICAgICAgICAgICAoJ2FjdHVhbCBvdXRwdXQg
b2YgIiVzIixcbicKICAgICAgICAgICAgJ3doaWNoIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHJl
Z2V4IG9mICIlcyJcbicKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MKaW5kZXggYjFjN2I0ZGUzNDYxZmMx
NjQ1ZjQxMWI3MWY5ZTM3ZjgyMjRmZDhhNi4uOTJiOWQ0ZjI4ZWVjMDNhNWZlYTc1Mzk2NzQyZWQ2
ODg0ODI2ZjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9saXN0X291dHB1dF91bml0dGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MKQEAgLTQ0LDYgKzQ0LDMyIEBAIFRF
U1QoRm9vVGVzdCwgVGVzdDEpIHt9CiAKIFRFU1QoRm9vVGVzdCwgVGVzdDIpIHt9CiAKK2NsYXNz
IEZvb1Rlc3RGaXh0dXJlIDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsKK1RFU1RfRihGb29U
ZXN0Rml4dHVyZSwgVGVzdDMpIHt9CitURVNUX0YoRm9vVGVzdEZpeHR1cmUsIFRlc3Q0KSB7fQor
CitjbGFzcyBWYWx1ZVBhcmFtVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08
aW50PiB7fTsKK1RFU1RfUChWYWx1ZVBhcmFtVGVzdCwgVGVzdDUpIHt9CitURVNUX1AoVmFsdWVQ
YXJhbVRlc3QsIFRlc3Q2KSB7fQorSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFZhbHVlUGFyYW0s
IFZhbHVlUGFyYW1UZXN0LCA6OnRlc3Rpbmc6OlZhbHVlcygzMywgNDIpKTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CitjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9
OwordHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGJvb2w+IFR5cGVkVGVzdFR5cGVzOworVFlQ
RURfVEVTVF9TVUlURShUeXBlZFRlc3QsIFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RFU1QoVHlw
ZWRUZXN0LCBUZXN0Nykge30KK1RZUEVEX1RFU1QoVHlwZWRUZXN0LCBUZXN0OCkge30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRl
cml6ZWRUZXN0U3VpdGUpOworVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LCBUZXN0OSkge30KK1RZUEVEX1RFU1RfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwgVGVz
dDEwKSB7fQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVz
dFN1aXRlLCBUZXN0OSwgVGVzdDEwKTsKK3R5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBib29s
PiBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVR5cGVzOyAgLy8gTk9MSU5UCitJTlNUQU5USUFU
RV9UWVBFRF9URVNUX1NVSVRFX1AoU2luZ2xlLCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZVR5cGVzKTsKKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIDo6dGVzdGlu
Zzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCmluZGV4IGI0
NjZjMTUwYWVkYzQzZmRiMTAzNzNiN2E4MDJjY2JlNzc1NzkwZjguLmJiZWY5OTQ3ZDk5ZGE0M2E2
NDU1ZjMwOGNhMTdiN2I2Y2IzMDFiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCkBAIC0yNyw3ICsyNyw3
IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLS8vIFRoaXMgZmlsZSBpcyBB
VVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE4IGJ5IGNvbW1hbmQKKy8vIFRoaXMg
ZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAxMS8wNS8yMDE5IGJ5IGNvbW1hbmQK
IC8vICdnZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKIAog
Ly8gUmVncmVzc2lvbiB0ZXN0IGZvciBndGVzdF9wcmVkX2ltcGwuaApAQCAtNzgsOSArNzgsOCBA
QCBib29sIFByZWRGdW5jdGlvbjEoVDEgdjEpIHsKICAgcmV0dXJuIHYxID4gMDsKIH0KIAotLy8g
VGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1
ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhl
IGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlvbi4KKy8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0
aW9ucyBhcmUgbmVlZGVkIGJlY2F1c2UgYSBjb21waWxlciBkb2Vzbid0IGhhdmUKKy8vIGEgY29u
dGV4dCB5ZXQgdG8ga25vdyB3aGljaCB0ZW1wbGF0ZSBmdW5jdGlvbiBtdXN0IGJlIGluc3RhbnRp
YXRlZC4KIGJvb2wgUHJlZEZ1bmN0aW9uMUludChpbnQgdjEpIHsKICAgcmV0dXJuIHYxID4gMDsK
IH0KQEAgLTEyMiwxMyArMTIxLDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjEgewogCiBj
bGFzcyBQcmVkaWNhdGUxVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6
Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAg
ICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAg
ICBuMV8gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJl
ZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAg
ICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTE0NCwxMCArMTQzLDEwIEBAIGNsYXNzIFByZWRp
Y2F0ZTFUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRy
dWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisg
IC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8g
cnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAv
LyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAg
c3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBpbnQgbjFfOwpAQCAtNDY1LDkgKzQ2
NCw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uMihUMSB2MSwgVDIgdjIpIHsKICAgcmV0dXJuIHYxICsg
djIgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0
byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFz
IHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZv
bGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNu
J3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9u
IG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24ySW50KGludCB2MSwgaW50
IHYyKSB7CiAgIHJldHVybiB2MSArIHYyID4gMDsKIH0KQEAgLTUxNCwxMyArNTEyLDEzIEBAIHN0
cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjIgewogCiBjbGFzcyBQcmVkaWNhdGUyVGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsK
KyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1
ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSBuMl8gPSAwOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewog
ICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdh
cyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykg
PDwKQEAgLTUzOSwxMCArNTM3LDEwIEBAIGNsYXNzIFByZWRpY2F0ZTJUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBm
dW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRf
OwogCiAgIHN0YXRpYyBpbnQgbjFfOwpAQCAtODk0LDkgKzg5Miw4IEBAIGJvb2wgUHJlZEZ1bmN0
aW9uMyhUMSB2MSwgVDIgdjIsIFQzIHYzKSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgPiAwOwog
fQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12
ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0g
d2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0
d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQor
Ly8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUg
aW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24zSW50KGludCB2MSwgaW50IHYyLCBpbnQg
djMpIHsKICAgcmV0dXJuIHYxICsgdjIgKyB2MyA+IDA7CiB9CkBAIC05NDgsMTMgKzk0NSwxMyBA
QCBzdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3IzIHsKIAogY2xhc3MgUHJlZGljYXRlM1Rlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9
IHRydWU7CiAgICAgZmluaXNoZWRfID0gZmFsc2U7CiAgICAgbjFfID0gbjJfID0gbjNfID0gMDsK
ICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92
ZXJyaWRlIHsKICAgICAvLyBWZXJpZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFy
Z3VtZW50cyB3YXMgZXZhbHVhdGVkCiAgICAgLy8gZXhhY3RseSBvbmNlLgogICAgIEVYUEVDVF9F
USgxLCBuMV8pIDw8CkBAIC05NzYsMTAgKzk3MywxMCBAQCBjbGFzcyBQcmVkaWNhdGUzVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICB9CiAgIH0KIAotICAvLyB0cnVlIGlmZiB0aGUg
dGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5p
c2guCiAgIHN0YXRpYyBib29sIGV4cGVjdGVkX3RvX2ZpbmlzaF87CiAKLSAgLy8gdHJ1ZSBpZmYg
dGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCiAgIHN0YXRpYyBib29s
IGZpbmlzaGVkXzsKIAogICBzdGF0aWMgaW50IG4xXzsKQEAgLTEzNjUsOSArMTM2Miw4IEBAIGJv
b2wgUHJlZEZ1bmN0aW9uNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCkgewogICByZXR1cm4g
djEgKyB2MiArIHYzICsgdjQgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlv
bnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGlj
aCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0
aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBh
IGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRl
bXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb240
SW50KGludCB2MSwgaW50IHYyLCBpbnQgdjMsIGludCB2NCkgewogICByZXR1cm4gdjEgKyB2MiAr
IHYzICsgdjQgPiAwOwogfQpAQCAtMTQyNCwxMyArMTQyMCwxMyBAQCBzdHJ1Y3QgUHJlZEZvcm1h
dEZ1bmN0b3I0IHsKIAogY2xhc3MgUHJlZGljYXRlNFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7CiAgICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IHRydWU7CiAgICAgZmluaXNo
ZWRfID0gZmFsc2U7CiAgICAgbjFfID0gbjJfID0gbjNfID0gbjRfID0gMDsKICAgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICAvLyBWZXJpZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFyZ3VtZW50cyB3YXMg
ZXZhbHVhdGVkCiAgICAgLy8gZXhhY3RseSBvbmNlLgogICAgIEVYUEVDVF9FUSgxLCBuMV8pIDw8
CkBAIC0xNDU1LDEwICsxNDUxLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTRUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBm
dW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRf
OwogCiAgIHN0YXRpYyBpbnQgbjFfOwpAQCAtMTg3OCw5ICsxODc0LDggQEAgYm9vbCBQcmVkRnVu
Y3Rpb241KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSkgewogICByZXR1cm4gdjEg
KyB2MiArIHYzICsgdjQgKyB2NSA+IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0
aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdo
aWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVu
Y3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNl
IGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2gg
dGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlv
bjVJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2MywgaW50IHY0LCBpbnQgdjUpIHsKICAgcmV0dXJu
IHYxICsgdjIgKyB2MyArIHY0ICsgdjUgPiAwOwogfQpAQCAtMTk0MiwxMyArMTkzNywxMyBAQCBz
dHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3I1IHsKIAogY2xhc3MgUHJlZGljYXRlNVRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7
CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IHRy
dWU7CiAgICAgZmluaXNoZWRfID0gZmFsc2U7CiAgICAgbjFfID0gbjJfID0gbjNfID0gbjRfID0g
bjVfID0gMDsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICAvLyBWZXJpZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRp
Y2F0ZSdzIGFyZ3VtZW50cyB3YXMgZXZhbHVhdGVkCiAgICAgLy8gZXhhY3RseSBvbmNlLgogICAg
IEVYUEVDVF9FUSgxLCBuMV8pIDw8CkBAIC0xOTc2LDEwICsxOTcxLDEwIEBAIGNsYXNzIFByZWRp
Y2F0ZTVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRy
dWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisg
IC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8g
cnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAv
LyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAg
c3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBpbnQgbjFfOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0
LmNjCmluZGV4IGMxZTkzMDU2ZDhiNTYyYzU5ZmViYTgyNzhlMjBjMjlkZjEzZTE5MTUuLjFkMTE4
N2VmZjAwNmNjODg3NTBlZjk1NzgyOWQ1ODBhYzY5MDM1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MK
QEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIHsKIAogY2xhc3MgUHJlbWF0dXJlRXhpdFRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBnaXZl
biBmaWxlIGV4aXN0cy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZl
biBmaWxlIGV4aXN0cy4KICAgc3RhdGljIGJvb2wgRmlsZUV4aXN0cyhjb25zdCBjaGFyKiBmaWxl
cGF0aCkgewogICAgIFN0YXRTdHJ1Y3Qgc3RhdDsKICAgICByZXR1cm4gU3RhdChmaWxlcGF0aCwg
JnN0YXQpID09IDA7CkBAIC01NiwxMiArNTYsMTIgQEAgY2xhc3MgUHJlbWF0dXJlRXhpdFRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiAgICAgcHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9IEdldEVudigi
VEVTVF9QUkVNQVRVUkVfRVhJVF9GSUxFIik7CiAKICAgICAvLyBOb3JtYWxpemUgTlVMTCB0byAi
IiBmb3IgZWFzZSBvZiBoYW5kbGluZy4KLSAgICBpZiAocHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRo
XyA9PSBOVUxMKSB7CisgICAgaWYgKHByZW1hdHVyZV9leGl0X2ZpbGVfcGF0aF8gPT0gbnVsbHB0
cikgewogICAgICAgcHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9ICIiOwogICAgIH0KICAgfQog
Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHByZW1hdHVyZS1leGl0IGZpbGUgZXhpc3RzLgor
ICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHByZW1hdHVyZS1leGl0IGZpbGUg
ZXhpc3RzLgogICBib29sIFByZW1hdHVyZUV4aXRGaWxlRXhpc3RzKCkgY29uc3QgewogICAgIHJl
dHVybiBGaWxlRXhpc3RzKHByZW1hdHVyZV9leGl0X2ZpbGVfcGF0aF8pOwogICB9CkBAIC0xMTMs
NyArMTEzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIC8vIFRlc3Qg
dGhhdCB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBpcyBkZWxldGVkIHVwb24gcmV0dXJuIGZyb20K
ICAgLy8gUlVOX0FMTF9URVNUUygpLgogICBjb25zdCBjaGFyKiBjb25zdCBmaWxlcGF0aCA9IEdl
dEVudigiVEVTVF9QUkVNQVRVUkVfRVhJVF9GSUxFIik7Ci0gIGlmIChmaWxlcGF0aCAhPSBOVUxM
ICYmICpmaWxlcGF0aCAhPSAnXDAnKSB7CisgIGlmIChmaWxlcGF0aCAhPSBudWxscHRyICYmICpm
aWxlcGF0aCAhPSAnXDAnKSB7CiAgICAgaWYgKFByZW1hdHVyZUV4aXRUZXN0OjpGaWxlRXhpc3Rz
KGZpbGVwYXRoKSkgewogICAgICAgcHJpbnRmKAogICAgICAgICAgICJGaWxlICVzIHNob3VsZG4n
dCBleGlzdCBhZnRlciB0aGUgdGVzdCBwcm9ncmFtIGZpbmlzaGVzLCBidXQgZG9lcy4iLApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcmVwZWF0X3Rlc3QuY2MKaW5k
ZXggMWU4ZjQ5OWJiOWRlM2QxNGJjYjNiYjFhNjQxYzA2ZDdhMTI1MGFkMi4uN2RhNGExNWVhMTQx
OTg5Zjg2NDI2YTU3MmJhYzBhNThiMzNmNzZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjCkBAIC03NCw4ICs3NCw4IEBAIGludCBn
X2Vudmlyb25tZW50X3RlYXJfZG93bl9jb3VudCA9IDA7CiBjbGFzcyBNeUVudmlyb25tZW50IDog
cHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICBwdWJsaWM6CiAgIE15RW52aXJvbm1lbnQo
KSB7fQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IGdfZW52aXJvbm1lbnRfc2V0X3VwX2NvdW50
Kys7IH0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeyBnX2Vudmlyb25tZW50X3RlYXJfZG93
bl9jb3VudCsrOyB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IGdfZW52aXJvbm1lbnRfc2V0
X3VwX2NvdW50Kys7IH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgZ19lbnZpcm9ubWVu
dF90ZWFyX2Rvd25fY291bnQrKzsgfQogfTsKIAogLy8gQSB0ZXN0IHRoYXQgc2hvdWxkIGZhaWwu
CkBAIC0xMTcsMTMgKzExNywxMiBAQCBjb25zdCBpbnQga051bWJlck9mUGFyYW1UZXN0cyA9IDEw
OwogY2xhc3MgTXlQYXJhbVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+
IHt9OwogCiBURVNUX1AoTXlQYXJhbVRlc3QsIFNob3VsZFBhc3MpIHsKLSAgLy8gRklYTUU6IE1h
a2UgcGFyYW1ldGVyIHZhbHVlIGNoZWNraW5nIHJvYnVzdCBXUlQgb3JkZXIgb2YgdGVzdHMuCiAg
IEdURVNUX0NIRUNLX0lOVF9FUV8oZ19wYXJhbV90ZXN0X2NvdW50ICUga051bWJlck9mUGFyYW1U
ZXN0cywgR2V0UGFyYW0oKSk7CiAgIGdfcGFyYW1fdGVzdF9jb3VudCsrOwogfQotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoTXlQYXJhbVNlcXVlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
TXlQYXJhbVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpSYW5nZSgwLCBr
TnVtYmVyT2ZQYXJhbVRlc3RzKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoTXlQYXJhbVNl
cXVlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIE15UGFyYW1UZXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlJhbmdlKDAsIGtOdW1iZXJPZlBhcmFtVGVzdHMpKTsK
IAogLy8gUmVzZXRzIHRoZSBjb3VudCBmb3IgZWFjaCB0ZXN0Lgogdm9pZCBSZXNldENvdW50cygp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNz
X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3N0cmVzc190ZXN0
LmNjCmluZGV4IDk1YWRhMzljMzM3ZDBkNGVjZTZmZjViMzIzMmRlOTZjM2Q1OTg2YmQuLjg0MzQ4
MTkxMGYwM2Y2OTg5NzczYzU4NmI4ZTExZWRkYmQ2MDM0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNzX3Rlc3QuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9zdHJlc3NfdGVzdC5jYwpAQCAtNDUsNyArNDUsNiBA
QCBuYW1lc3BhY2UgewogdXNpbmcgaW50ZXJuYWw6Ok5vdGlmaWNhdGlvbjsKIHVzaW5nIGludGVy
bmFsOjpUZXN0UHJvcGVydHlLZXlJczsKIHVzaW5nIGludGVybmFsOjpUaHJlYWRXaXRoUGFyYW07
Ci11c2luZyBpbnRlcm5hbDo6c2NvcGVkX3B0cjsKIAogLy8gSW4gb3JkZXIgdG8gcnVuIHRlc3Rz
IGluIHRoaXMgZmlsZSwgZm9yIHBsYXRmb3JtcyB3aGVyZSBHb29nbGUgVGVzdCBpcwogLy8gdGhy
ZWFkIHNhZmUsIGltcGxlbWVudCBUaHJlYWRXaXRoUGFyYW0uIFNlZSB0aGUgZGVzY3JpcHRpb24g
b2YgaXRzIEFQSQpAQCAtMTE5LDcgKzExOCw3IEBAIHZvaWQgQ2hlY2tUZXN0RmFpbHVyZUNvdW50
KGludCBleHBlY3RlZF9mYWlsdXJlcykgewogLy8gY29uY3VycmVudGx5LgogVEVTVChTdHJlc3NU
ZXN0LCBDYW5Vc2VTY29wZWRUcmFjZUFuZEFzc2VydGlvbnNJbk1hbnlUaHJlYWRzKSB7CiAgIHsK
LSAgICBzY29wZWRfcHRyPFRocmVhZFdpdGhQYXJhbTxpbnQ+ID4gdGhyZWFkc1trVGhyZWFkQ291
bnRdOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRXaXRoUGFyYW08aW50PiA+IHRocmVhZHNb
a1RocmVhZENvdW50XTsKICAgICBOb3RpZmljYXRpb24gdGhyZWFkc19jYW5fc3RhcnQ7CiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgIT0ga1RocmVhZENvdW50OyBpKyspCiAgICAgICB0aHJlYWRzW2ld
LnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08aW50PigmTWFueUFzc2VydHMsCkBAIC0xNjMsNyAr
MTYyLDcgQEAgdm9pZCBGYWlsaW5nVGhyZWFkKGJvb2wgaXNfZmF0YWwpIHsKIH0KIAogdm9pZCBH
ZW5lcmF0ZUZhdGFsRmFpbHVyZUluQW5vdGhlclRocmVhZChib29sIGlzX2ZhdGFsKSB7Ci0gIFRo
cmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQoJkZhaWxpbmdUaHJlYWQsIGlzX2ZhdGFsLCBOVUxM
KTsKKyAgVGhyZWFkV2l0aFBhcmFtPGJvb2w+IHRocmVhZCgmRmFpbGluZ1RocmVhZCwgaXNfZmF0
YWwsIG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkKaW5kZXggNDNjYmE4ZjRjZDYxZGZm
ZjNhMWE1MjEwMWJlZDNlNzM0YTVlMWI1NC4uZDBjMjQ0NjZhNGI3ZTNlNjIzYjVhZjQ5NWI4ZTI2
ZWFhOGE5Yzg2NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF90ZXN0X3V0aWxzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
dGVzdF91dGlscy5weQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgc3lzCiAKIElTX1dJTkRPV1Mg
PSBvcy5uYW1lID09ICdudCcKIElTX0NZR1dJTiA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBhbmQgJ0NZ
R1dJTicgaW4gb3MudW5hbWUoKVswXQorSVNfT1MyID0gb3MubmFtZSA9PSAnb3MyJwogCiBpbXBv
cnQgYXRleGl0CiBpbXBvcnQgc2h1dGlsCkBAIC0xNjQsNyArMTY1LDcgQEAgZGVmIEdldFRlc3RF
eGVjdXRhYmxlUGF0aChleGVjdXRhYmxlX25hbWUsIGJ1aWxkX2Rpcj1Ob25lKToKIAogICBwYXRo
ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihidWlsZF9kaXIgb3IgR2V0QnVpbGREaXIo
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9uYW1l
KSkKLSAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOKSBhbmQgbm90IHBhdGguZW5kc3dpdGgo
Jy5leGUnKToKKyAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOIG9yIElTX09TMikgYW5kIG5v
dCBwYXRoLmVuZHN3aXRoKCcuZXhlJyk6CiAgICAgcGF0aCArPSAnLmV4ZScKIAogICBpZiBub3Qg
b3MucGF0aC5leGlzdHMocGF0aCk6CkBAIC0yMTQsMTAgKzIxNSwxMCBAQCBjbGFzcyBTdWJwcm9j
ZXNzOgogICAgIFJldHVybnM6CiAgICAgICBBbiBvYmplY3QgdGhhdCByZXByZXNlbnRzIG91dGNv
bWUgb2YgdGhlIGV4ZWN1dGVkIHByb2Nlc3MuIEl0IGhhcyB0aGUKICAgICAgIGZvbGxvd2luZyBh
dHRyaWJ1dGVzOgotICAgICAgICB0ZXJtaW5hdGVkX2J5X3NpZ25hbCAgIFRydWUgaWZmIHRoZSBj
aGlsZCBwcm9jZXNzIGhhcyBiZWVuIHRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBieSBhIHNpZ25hbC4KLSAgICAgICAgc2lnbmFsICAgICAgICAgICAgICAgICBTeWdu
YWwgdGhhdCB0ZXJtaW5hdGVkIHRoZSBjaGlsZCBwcm9jZXNzLgotICAgICAgICBleGl0ZWQgICAg
ICAgICAgICAgICAgIFRydWUgaWZmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZCBub3JtYWxseS4K
KyAgICAgICAgdGVybWluYXRlZF9ieV9zaWduYWwgICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBj
aGlsZCBwcm9jZXNzIGhhcyBiZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVy
bWluYXRlZCBieSBhIHNpZ25hbC4KKyAgICAgICAgZXhpdGVkICAgICAgICAgICAgICAgICBUcnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5vcm1hbGx5LgogICAgICAgICBleGl0X2NvZGUgICAgICAgICAgICAg
IFRoZSBjb2RlIHdpdGggd2hpY2ggdGhlIGNoaWxkIHByb2Nlc3MgZXhpdGVkLgogICAgICAgICBv
dXRwdXQgICAgICAgICAgICAgICAgIENoaWxkIHByb2Nlc3MncyBzdGRvdXQgYW5kIHN0ZGVyciBv
dXRwdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZCBpbiBhIHN0cmlu
Zy4KQEAgLTI4NywxMCArMjg4LDkgQEAgY2xhc3MgU3VicHJvY2VzczoKICAgICAgIGVsc2U6ICAj
IG9zLldJRkVYSVRFRChyZXRfY29kZSkgc2hvdWxkIHJldHVybiBUcnVlIGhlcmUuCiAgICAgICAg
IHNlbGYuX3JldHVybl9jb2RlID0gb3MuV0VYSVRTVEFUVVMocmV0X2NvZGUpCiAKLSAgICBpZiBz
ZWxmLl9yZXR1cm5fY29kZSA8IDA6CisgICAgaWYgYm9vbChzZWxmLl9yZXR1cm5fY29kZSAmIDB4
ODAwMDAwMDApOgogICAgICAgc2VsZi50ZXJtaW5hdGVkX2J5X3NpZ25hbCA9IFRydWUKICAgICAg
IHNlbGYuZXhpdGVkID0gRmFsc2UKLSAgICAgIHNlbGYuc2lnbmFsID0gLXNlbGYuX3JldHVybl9j
b2RlCiAgICAgZWxzZToKICAgICAgIHNlbGYudGVybWluYXRlZF9ieV9zaWduYWwgPSBGYWxzZQog
ICAgICAgc2VsZi5leGl0ZWQgPSBUcnVlCkBAIC0zMDYsOCArMzA2LDYgQEAgZGVmIE1haW4oKToK
ICAgX1BhcnNlQW5kU3RyaXBHVGVzdEZsYWdzKHN5cy5hcmd2KQogICAjIFRoZSB0ZXN0ZWQgYmlu
YXJpZXMgc2hvdWxkIG5vdCBiZSB3cml0aW5nIFhNTCBvdXRwdXQgZmlsZXMgdW5sZXNzIHRoZQog
ICAjIHNjcmlwdCBleHBsaWNpdGx5IGluc3RydWN0cyB0aGVtIHRvLgotICAjIEZJWE1FOiBNb3Zl
IHRoaXMgaW50byBTdWJwcm9jZXNzIHdoZW4gd2UgaW1wbGVtZW50Ci0gICMgcGFzc2luZyBlbnZp
cm9ubWVudCBpbnRvIGl0IGFzIGEgcGFyYW1ldGVyLgogICBpZiBHVEVTVF9PVVRQVVRfVkFSX05B
TUUgaW4gb3MuZW52aXJvbjoKICAgICBkZWwgb3MuZW52aXJvbltHVEVTVF9PVVRQVVRfVkFSX05B
TUVdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdGhy
b3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKaW5kZXggOTNmNTlkNDljZmRiOTQ3NGRj
YTYyMmMxN2EyYzk2NGFiMGJkNThmNC4uMWQ5NWFkYmY1MzdiYTkxNzgxNjM5ODdjMGQzZTBjOGFh
MDNhYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90
aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKQEAgLTYzLDggKzYzLDcgQEAg
dm9pZCBUZXN0RmFpbHVyZVRocm93c1J1bnRpbWVFcnJvcigpIHsKICAgdHJ5IHsKICAgICBFWFBF
Q1RfRVEoMiwgMykgPDwgIkV4cGVjdGVkIGZhaWx1cmUiOwogICB9IGNhdGNoKGNvbnN0IHN0ZDo6
cnVudGltZV9lcnJvciYgZSkgewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBm
YWlsdXJlIikgIT0gTlVMTCkKLSAgICAgIHJldHVybjsKKyAgICBpZiAoc3Ryc3RyKGUud2hhdCgp
LCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IG51bGxwdHIpIHJldHVybjsKIAogICAgIHByaW50Zigi
JXMiLAogICAgICAgICAgICAiQSBmYWlsZWQgYXNzZXJ0aW9uIGRpZCB0aHJvdyBhbiBleGNlcHRp
b24gb2YgdGhlIHJpZ2h0IHR5cGUsICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3VuaXR0ZXN0LmNjCmluZGV4IGY3MjEzZmJmM2U1ZTg3MjA4OWJmYjk4NTUxYWMzYmEz
ZTNhNjdiZjUuLjE3MzBlOGI4YzljOWI3NDJiNWRjZmQxZjUwNTViMmYyMzJkNDgzZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF91bml0dGVzdC5jYwpAQCAtMzcs
MjEgKzM3LDIyIEBACiAvLyBjb2RlIG9uY2UgImd0ZXN0LmgiIGhhcyBiZWVuICNpbmNsdWRlZC4K
IC8vIERvIG5vdCBtb3ZlIGl0IGFmdGVyIG90aGVyIGd0ZXN0ICNpbmNsdWRlcy4KIFRFU1QoQ29t
bWFuZExpbmVGbGFnc1Rlc3QsIENhbkJlQWNjZXNzZWRJbkNvZGVPbmNlR1Rlc3RISXNJbmNsdWRl
ZCkgewotICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxl
ZF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSkK
LSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykKLSAgICAgIHx8
IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3IpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhmaWx0ZXIpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RF
U1RfRkxBRyhsaXN0X3Rlc3RzKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQp
ICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhwcmludF90aW1lKQot
ICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCkKLSAgICAgIHx8IHRlc3Rp
bmc6OkdURVNUX0ZMQUcocmVwZWF0KSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUco
c2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFH
KHNodWZmbGUpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0YWNrX3RyYWNlX2RlcHRo
KSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90bykgIT0g
InVua25vd24iCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUp
OworICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90
ZXN0cykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFp
bHVyZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0
aW9ucykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3IpICE9ICJ1
bmtub3duIiB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhmYWlsX2Zhc3Qp
IHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZpbHRlcikgIT0gInVua25v
d24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVzdHMpIHx8
CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKG91dHB1dCkgIT0gInVua25vd24i
IHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJyaWVmKSB8fCB0ZXN0aW5n
OjpHVEVTVF9GTEFHKHByaW50X3RpbWUpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHJhbmRvbV9zZWVkKSB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxB
RyhyZXBlYXQpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhzaG93
X2ludGVybmFsX3N0YWNrX2ZyYW1lcykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNU
X0ZMQUcoc2h1ZmZsZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3Rh
Y2tfdHJhY2VfZGVwdGgpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxB
RyhzdHJlYW1fcmVzdWx0X3RvKSAhPSAidW5rbm93biIgfHwKKyAgICAgICAgICAgICAgIHRlc3Rp
bmc6OkdURVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSk7CiAgIEVYUEVDVF9UUlVFKGR1bW15IHx8
ICFkdW1teSk7ICAvLyBTdXBwcmVzc2VzIHdhcm5pbmcgdGhhdCBkdW1teSBpcyB1bnVzZWQuCiB9
CiAKQEAgLTYwLDEyICs2MSwxMyBAQCBURVNUKENvbW1hbmRMaW5lRmxhZ3NUZXN0LCBDYW5CZUFj
Y2Vzc2VkSW5Db2RlT25jZUdUZXN0SElzSW5jbHVkZWQpIHsKICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDx0aW1lLmg+CiAKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG1hcD4K
LSNpbmNsdWRlIDx2ZWN0b3I+CiAjaW5jbHVkZSA8b3N0cmVhbT4KLSNpZiBHVEVTVF9MQU5HX0NY
WDExCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUg
PHVub3JkZXJlZF9zZXQ+Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKKyNpbmNsdWRlIDx2
ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1zcGkuaCIKICNpbmNsdWRlICJzcmMvZ3Rl
c3QtaW50ZXJuYWwtaW5sLmgiCkBAIC04MCw3ICs4Miw3IEBAIGNsYXNzIFN0cmVhbWluZ0xpc3Rl
bmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgY2xhc3MgRmFrZVNvY2tldFdyaXRlciA6IHB1Ymxp
YyBTdHJlYW1pbmdMaXN0ZW5lcjo6QWJzdHJhY3RTb2NrZXRXcml0ZXIgewogICAgcHVibGljOgog
ICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRoZSBzb2NrZXQuCi0gICAgdmlydHVhbCB2b2lkIFNl
bmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsgb3V0cHV0XyArPSBtZXNzYWdlOyB9Cisg
ICAgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZSB7IG91dHB1
dF8gKz0gbWVzc2FnZTsgfQogCiAgICAgc3RkOjpzdHJpbmcgb3V0cHV0XzsKICAgfTsKQEAgLTg4
LDggKzkwLDggQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXJUZXN0IDogcHVibGljIFRlc3Qgewog
ICBTdHJlYW1pbmdMaXN0ZW5lclRlc3QoKQogICAgICAgOiBmYWtlX3NvY2tfd3JpdGVyXyhuZXcg
RmFrZVNvY2tldFdyaXRlciksCiAgICAgICAgIHN0cmVhbWVyXyhmYWtlX3NvY2tfd3JpdGVyXyks
Ci0gICAgICAgIHRlc3RfaW5mb19vYmpfKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwsCi0g
ICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pLCAw
LCBOVUxMKSB7fQorICAgICAgICB0ZXN0X2luZm9fb2JqXygiRm9vVGVzdCIsICJCYXIiLCBudWxs
cHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24oX19GSUxF
X18sIF9fTElORV9fKSwgbnVsbHB0ciwgbnVsbHB0cikge30KIAogIHByb3RlY3RlZDoKICAgc3Rk
OjpzdHJpbmcqIG91dHB1dCgpIHsgcmV0dXJuICYoZmFrZV9zb2NrX3dyaXRlcl8tPm91dHB1dF8p
OyB9CkBAIC0xMTQsMTMgKzExNiwxMyBAQCBURVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJUZXN0LCBP
blRlc3RJdGVyYXRpb25FbmQpIHsKIAogVEVTVF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVzdCwgT25U
ZXN0Q2FzZVN0YXJ0KSB7CiAgICpvdXRwdXQoKSA9ICIiOwotICBzdHJlYW1lcl8uT25UZXN0Q2Fz
ZVN0YXJ0KFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFt
ZXJfLk9uVGVzdENhc2VTdGFydChUZXN0Q2FzZSgiRm9vVGVzdCIsICJCYXIiLCBudWxscHRyLCBu
dWxscHRyKSk7CiAgIEVYUEVDVF9FUSgiZXZlbnQ9VGVzdENhc2VTdGFydCZuYW1lPUZvb1Rlc3Rc
biIsICpvdXRwdXQoKSk7CiB9CiAKIFRFU1RfRihTdHJlYW1pbmdMaXN0ZW5lclRlc3QsIE9uVGVz
dENhc2VFbmQpIHsKICAgKm91dHB1dCgpID0gIiI7Ci0gIHN0cmVhbWVyXy5PblRlc3RDYXNlRW5k
KFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFtZXJfLk9u
VGVzdENhc2VFbmQoVGVzdENhc2UoIkZvb1Rlc3QiLCAiQmFyIiwgbnVsbHB0ciwgbnVsbHB0cikp
OwogICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RDYXNlRW5kJnBhc3NlZD0xJmVsYXBzZWRfdGltZT0w
bXNcbiIsICpvdXRwdXQoKSk7CiB9CiAKQEAgLTIwMiw5ICsyMDQsMTEgQEAgdXNpbmcgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZM
QUcoY2F0Y2hfZXhjZXB0aW9ucyk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNvbG9yKTsK
IHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yayk7Cit1c2luZyB0
ZXN0aW5nOjpHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFH
KGZpbHRlcik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVzdHMpOwogdXNpbmcg
dGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQpOwordXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhi
cmllZik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogdXNpbmcgdGVz
dGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFH
KHJlcGVhdCk7CkBAIC0yMTUsMjcgKzIxOSwyNiBAQCB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFH
KHN0cmVhbV9yZXN1bHRfdG8pOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19vbl9m
YWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OklzTm90U3Vic3RyaW5nOwogdXNpbmcgdGVzdGluZzo6
SXNTdWJzdHJpbmc7Cit1c2luZyB0ZXN0aW5nOjprTWF4U3RhY2tUcmFjZURlcHRoOwogdXNpbmcg
dGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIHRlc3Rpbmc6OlNjb3BlZEZha2VUZXN0UGFydFJlc3Vs
dFJlcG9ydGVyOwogdXNpbmcgdGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxOwogdXNpbmcgdGVz
dGluZzo6VGVzdDsKLXVzaW5nIHRlc3Rpbmc6OlRlc3RDYXNlOwogdXNpbmcgdGVzdGluZzo6VGVz
dEV2ZW50TGlzdGVuZXJzOwogdXNpbmcgdGVzdGluZzo6VGVzdEluZm87CiB1c2luZyB0ZXN0aW5n
OjpUZXN0UGFydFJlc3VsdDsKIHVzaW5nIHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJyYXk7CiB1
c2luZyB0ZXN0aW5nOjpUZXN0UHJvcGVydHk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UmVzdWx0Owor
dXNpbmcgdGVzdGluZzo6VGVzdFN1aXRlOwogdXNpbmcgdGVzdGluZzo6VGltZUluTWlsbGlzOwog
dXNpbmcgdGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QWRkUmVm
ZXJlbmNlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlOwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXBw
ZW5kVXNlck1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlBd2FyZUZpbmQ7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlFcTsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpDb2RlUG9pbnRUb1V0Zjg7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29tcGlsZUFz
c2VydFR5cGVzRXF1YWw7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29weUFycmF5OwogdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvdW50SWY7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
RXFGYWlsdXJlOwpAQCAtMjQzLDcgKzI0Niw2IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpG
bG9hdGluZ1BvaW50OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZvckVhY2g7CiB1c2luZyB0
ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDE7CiB1c2lu
ZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzOwotdXNpbmcg
dGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwogdXNpbmcgdGVzdGluZzo6aW50ZXJu
YWw6OkdldEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3A7CiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6R2V0RWxlbWVudE9yOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldE5leHRSYW5k
b21TZWVkOwpAQCAtMjUyLDIxICsyNTQsMjAgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Okdl
dFRlc3RUeXBlSWQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzOwog
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFR5cGVJZDsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW1wbGljaXRs
eUNvbnZlcnRpYmxlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkludDMyOwordXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
Okhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpJbnQzMkZyb21FbnZPckRpZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJc0FQcm90
b2NvbE1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXI7CiB1c2lu
ZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXJUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6OklzTm90Q29udGFpbmVyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtNYXhSYW5k
b21TZWVkOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtUZXN0VHlwZUlkSW5Hb29nbGVUZXN0
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok5hdGl2ZUFycmF5OwogdXNpbmcgdGVzdGluZzo6
aW50ZXJuYWw6Ok9zU3RhY2tUcmFjZUdldHRlcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpP
c1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UGFy
c2VJbnQzMkZsYWc7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZUNv
cHk7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5jZTsK
LXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVDb25zdDsKLXVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpSZW1vdmVSZWZlcmVuY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxk
UnVuVGVzdE9uU2hhcmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkU2hhcmQ7CiB1
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkVXNlQ29sb3I7CkBAIC0yNzcsMTUgKzI3OCwx
MSBAQCB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nOwogdXNpbmcg
dGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUZXN0
RXZlbnRMaXN0ZW5lcnNBY2Nlc3NvcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUZXN0UmVz
dWx0QWNjZXNzb3I7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6VUludDMyOwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OlVuaXRUZXN0SW1wbDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpX
aWRlU3RyaW5nVG9VdGY4OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmVkaXRfZGlzdGFuY2U6
OkNhbGN1bGF0ZU9wdGltYWxFZGl0czsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0X2Rp
c3RhbmNlOjpDcmVhdGVVbmlmaWVkRGlmZjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0
X2Rpc3RhbmNlOjpFZGl0VHlwZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprTWF4UmFuZG9t
U2VlZDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprVGVzdFR5cGVJZEluR29vZ2xlVGVzdDsK
LXVzaW5nIHRlc3Rpbmc6OmtNYXhTdGFja1RyYWNlRGVwdGg7CiAKICNpZiBHVEVTVF9IQVNfU1RS
RUFNX1JFRElSRUNUSU9OCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZG91dDsK
QEAgLTQ0MCw4ICs0MzcsOCBAQCBjbGFzcyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYw
MVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBjb25zdCBUaW1lSW5NaWxsaXMga01pbGxp
c1BlclNlYyA9IDEwMDA7CiAKICBwcml2YXRlOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0g
ICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBzYXZl
ZF90el8gPSBudWxscHRyOwogCiAgICAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9QVVNI
XygvKiBnZXRlbnYsIHN0cmR1cDogZGVwcmVjYXRlZCAqLykKICAgICBpZiAoZ2V0ZW52KCJUWiIp
KQpAQCAtNDU0LDEwICs0NTEsMTAgQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lz
bzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogICAgIFNldFRpbWVab25lKCJVVEMrMDAiKTsKICAg
fQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJy
aWRlIHsKICAgICBTZXRUaW1lWm9uZShzYXZlZF90el8pOwogICAgIGZyZWUoY29uc3RfY2FzdDxj
aGFyKj4oc2F2ZWRfdHpfKSk7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgICBzYXZlZF90el8g
PSBudWxscHRyOwogICB9CiAKICAgc3RhdGljIHZvaWQgU2V0VGltZVpvbmUoY29uc3QgY2hhciog
dGltZV96b25lKSB7CkBAIC00ODksNjEgKzQ4NiwxMTIgQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogY29uc3QgVGltZUluTWlsbGlz
IEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdDo6a01pbGxpc1BlclNlYzsKIAog
VEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRzVHdvRGln
aXRTZWdtZW50cykgewotICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIiLAorICBFWFBF
Q1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIuMDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2No
VGltZUluTWlsbGlzQXNJc284NjAxKDEzMjAwODcxNjIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAK
LVRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIE1pbGxpc2Vjb25k
c0RvTm90QWZmZWN0UmVzdWx0KSB7CitURVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lz
bzg2MDFUZXN0LCBJbmNsdWRlc01pbGxpc2Vjb25kc0FmdGVyRG90KSB7CiAgIEVYUEVDVF9FUSgK
LSAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQyIiwKKyAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQy
LjIzNCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIwMDg3MTYy
ICoga01pbGxpc1BlclNlYyArIDIzNCkpOwogfQogCiBURVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5N
aWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNMZWFkaW5nWmVyb2VzKSB7Ci0gIEVYUEVDVF9FUSgi
MjAxMS0wOS0wM1QwNTowNzowMiIsCisgIEVYUEVDVF9FUSgiMjAxMS0wOS0wM1QwNTowNzowMi4w
MDAiLAogICAgICAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMTMxNTAy
NjQyMiAqIGtNaWxsaXNQZXJTZWMpKTsKIH0KIAogVEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWls
bGlzQXNJc284NjAxVGVzdCwgUHJpbnRzMjRIb3VyVGltZSkgewotICBFWFBFQ1RfRVEoIjIwMTEt
MDktMjhUMTc6MDg6MjIiLAorICBFWFBFQ1RfRVEoIjIwMTEtMDktMjhUMTc6MDg6MjIuMDAwIiwK
ICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMTcyMjk3MDIg
KiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKIFRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0Fz
SXNvODYwMVRlc3QsIFByaW50c0Vwb2NoU3RhcnQpIHsKLSAgRVhQRUNUX0VRKCIxOTcwLTAxLTAx
VDAwOjAwOjAwIiwgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMCkpOworICBFWFBF
Q1RfRVEoIjE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwIiwgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNB
c0lzbzg2MDEoMCkpOwogfQogCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAotCiAjIGlmZGVm
IF9fQk9STEFORENfXwogLy8gU2lsZW5jZXMgd2FybmluZ3M6ICJDb25kaXRpb24gaXMgYWx3YXlz
IHRydWUiLCAiVW5yZWFjaGFibGUgY29kZSIKICMgIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2Mg
LXctcmNoCiAjIGVuZGlmCiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4
KSBpcyB0cnVlIHdoZW4geCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0ZXJhbC4KLVRFU1QoTnVs
bExpdGVyYWxUZXN0LCBJc1RydWVGb3JOdWxsTGl0ZXJhbHMpIHsKLSAgRVhQRUNUX1RSVUUoR1RF
U1RfSVNfTlVMTF9MSVRFUkFMXyhOVUxMKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExf
TElURVJBTF8oMCkpOwotICBFWFBFQ1RfVFJVRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDBVKSk7
Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oMEwpKTsKKy8vIFRlc3RzIHRo
YXQgdGhlIExIUyBvZiBFWFBFQ1RfRVEgb3IgQVNTRVJUX0VRIGNhbiBiZSB1c2VkIGFzIGEgbnVs
bCBsaXRlcmFsCisvLyB3aGVuIHRoZSBSSFMgaXMgYSBwb2ludGVyIHR5cGUuCitURVNUKE51bGxM
aXRlcmFsVGVzdCwgTEhTQWxsb3dzTnVsbExpdGVyYWxzKSB7CisgIEVYUEVDVF9FUSgwLCBzdGF0
aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEFTU0VSVF9FUSgwLCBz
dGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShO
VUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisgIEFTU0VSVF9F
UShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisgIEVYUEVD
VF9FUShudWxscHRyLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworICBBU1NFUlRfRVEo
bnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKworICBjb25zdCBpbnQqIGNv
bnN0IHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoMCwgcCk7ICAgICAvLyBOT0xJTlQKKyAgQVNT
RVJUX0VRKDAsIHApOyAgICAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShOVUxMLCBwKTsgIC8vIE5P
TElOVAorICBBU1NFUlRfRVEoTlVMTCwgcCk7ICAvLyBOT0xJTlQKKyAgRVhQRUNUX0VRKG51bGxw
dHIsIHApOworICBBU1NFUlRfRVEobnVsbHB0ciwgcCk7Cit9CisKK3N0cnVjdCBDb252ZXJ0VG9B
bGwgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgVCgpIGNvbnN0IHsgIC8v
IE5PTElOVAorICAgIHJldHVybiBUKCk7CisgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0VG9Qb2lu
dGVyIHsKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIG9wZXJhdG9yIFQqKCkgY29uc3QgeyAgLy8g
Tk9MSU5UCisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0VG9B
bGxCdXROb1BvaW50ZXJzIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsCisgICAgICAgICAgICB0
eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19wb2ludGVyPFQ+Ojp2YWx1ZSwgaW50Pjo6
dHlwZSA9IDA+CisgIG9wZXJhdG9yIFQoKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAgICByZXR1cm4g
VCgpOworICB9Cit9OworCitzdHJ1Y3QgTXlUeXBlIHt9OworaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShNeVR5cGUgY29uc3QmLCBNeVR5cGUgY29uc3QmKSB7IHJldHVybiB0cnVlOyB9CisKK1RFU1Qo
TnVsbExpdGVyYWxUZXN0LCBJbXBsaWNpdENvbnZlcnNpb24pIHsKKyAgRVhQRUNUX0VRKENvbnZl
cnRUb1BvaW50ZXJ7fSwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKyNpZiAhZGVmaW5l
ZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pCisgIC8vIERpc2FibGVkIGR1ZSB0byBH
Q0MgYnVnIGdjYy5nbnUub3JnL1BSODk1ODAKKyAgRVhQRUNUX0VRKENvbnZlcnRUb0FsbHt9LCBz
dGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworI2VuZGlmCisgIEVYUEVDVF9FUShDb252ZXJ0
VG9BbGx7fSwgTXlUeXBle30pOworICBFWFBFQ1RfRVEoQ29udmVydFRvQWxsQnV0Tm9Qb2ludGVy
c3t9LCBNeVR5cGV7fSk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRFUkFM
Xyh4KSBpcyBmYWxzZSB3aGVuIHggaXMgbm90IGEgbnVsbAotLy8gcG9pbnRlciBsaXRlcmFsLgot
VEVTVChOdWxsTGl0ZXJhbFRlc3QsIElzRmFsc2VGb3JOb25OdWxsTGl0ZXJhbHMpIHsKLSAgRVhQ
RUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oMSkpOwotICBFWFBFQ1RfRkFMU0UoR1RF
U1RfSVNfTlVMTF9MSVRFUkFMXygwLjApKTsKLSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExf
TElURVJBTF8oJ2EnKSk7Ci0gIEVYUEVDVF9GQUxTRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHN0
YXRpY19jYXN0PHZvaWQqPihOVUxMKSkpOworI2lmZGVmIF9fY2xhbmdfXworI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKKyNpZiBfX2hhc193YXJuaW5nKCItV3plcm8tYXMtbnVsbC1wb2lu
dGVyLWNvbnN0YW50IikKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBlcnJvciAiLVd6ZXJvLWFz
LW51bGwtcG9pbnRlci1jb25zdGFudCIKKyNlbmRpZgorI2VuZGlmCisKK1RFU1QoTnVsbExpdGVy
YWxUZXN0LCBOb0NvbnZlcnNpb25Ob1dhcm5pbmcpIHsKKyAgLy8gVGVzdCB0aGF0IGd0ZXN0cyBk
ZXRlY3Rpb24gYW5kIGhhbmRsaW5nIG9mIG51bGwgcG9pbnRlciBjb25zdGFudHMKKyAgLy8gZG9l
c24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuICcwJyBpc24ndCBhY3R1YWxseSB1c2VkIGFzIG51
bGwuCisgIEVYUEVDVF9FUSgwLCAwKTsKKyAgQVNTRVJUX0VRKDAsIDApOwogfQogCisjaWZkZWYg
X19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKwogIyBpZmRl
ZiBfX0JPUkxBTkRDX18KIC8vIFJlc3RvcmVzIHdhcm5pbmdzIGFmdGVyIHByZXZpb3VzICIjcHJh
Z21hIG9wdGlvbiBwdXNoIiBzdXBwcmVzc2VkIHRoZW0uCiAjICBwcmFnbWEgb3B0aW9uIHBvcAog
IyBlbmRpZgogCi0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIC8vCiAvLyBUZXN0
cyBDb2RlUG9pbnRUb1V0ZjgoKS4KIApAQCAtNTg4LDcgKzYzNiw3IEBAIFRFU1QoQ29kZVBvaW50
VG9VdGY4VGVzdCwgQ2FuRW5jb2RlMTJUbzE2Qml0cykgewogCiAjaWYgIUdURVNUX1dJREVfU1RS
SU5HX1VTRVNfVVRGMTZfCiAvLyBUZXN0cyBpbiB0aGlzIGdyb3VwIHJlcXVpcmUgYSB3Y2hhcl90
IHRvIGhvbGQgPiAxNiBiaXRzLCBhbmQgdGh1cwotLy8gYXJlIHNraXBwZWQgb24gV2luZG93cywg
Q3lnd2luLCBhbmQgU3ltYmlhbiwgd2hlcmUgYSB3Y2hhcl90IGlzCisvLyBhcmUgc2tpcHBlZCBv
biBXaW5kb3dzLCBhbmQgQ3lnd2luLCB3aGVyZSBhIHdjaGFyX3QgaXMKIC8vIDE2LWJpdCB3aWRl
LiBUaGlzIGNvZGUgbWF5IG5vdCBjb21waWxlIG9uIHRob3NlIHN5c3RlbXMuCiAKIC8vIFRlc3Rz
IHRoYXQgVW5pY29kZSBjb2RlLXBvaW50cyB0aGF0IGhhdmUgMTcgdG8gMjEgYml0cyBhcmUgZW5j
b2RlZApAQCAtNzQzLDcgKzc5MSw3IEBAIFRFU1QoUmFuZG9tRGVhdGhUZXN0LCBHZW5lcmF0ZXND
cmFzaGVzT25JbnZhbGlkUmFuZ2UpIHsKIH0KIAogVEVTVChSYW5kb21UZXN0LCBHZW5lcmF0ZXNO
dW1iZXJzV2l0aGluUmFuZ2UpIHsKLSAgY29uc3QgVUludDMyIGtSYW5nZSA9IDEwMDAwOworICBj
b25zdGV4cHIgdWludDMyX3Qga1JhbmdlID0gMTAwMDA7CiAgIHRlc3Rpbmc6OmludGVybmFsOjpS
YW5kb20gcmFuZG9tKDEyMzQ1KTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CiAg
ICAgRVhQRUNUX0xUKHJhbmRvbS5HZW5lcmF0ZShrUmFuZ2UpLCBrUmFuZ2UpIDw8ICIgZm9yIGl0
ZXJhdGlvbiAiIDw8IGk7CkBAIC03NTYsMTAgKzgwNCwxMCBAQCBURVNUKFJhbmRvbVRlc3QsIEdl
bmVyYXRlc051bWJlcnNXaXRoaW5SYW5nZSkgewogfQogCiBURVNUKFJhbmRvbVRlc3QsIFJlcGVh
dHNXaGVuUmVzZWVkZWQpIHsKLSAgY29uc3QgaW50IGtTZWVkID0gMTIzOwotICBjb25zdCBpbnQg
a0FycmF5U2l6ZSA9IDEwOwotICBjb25zdCBVSW50MzIga1JhbmdlID0gMTAwMDA7Ci0gIFVJbnQz
MiB2YWx1ZXNba0FycmF5U2l6ZV07CisgIGNvbnN0ZXhwciBpbnQga1NlZWQgPSAxMjM7CisgIGNv
bnN0ZXhwciBpbnQga0FycmF5U2l6ZSA9IDEwOworICBjb25zdGV4cHIgdWludDMyX3Qga1Jhbmdl
ID0gMTAwMDA7CisgIHVpbnQzMl90IHZhbHVlc1trQXJyYXlTaXplXTsKIAogICB0ZXN0aW5nOjpp
bnRlcm5hbDo6UmFuZG9tIHJhbmRvbShrU2VlZCk7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwga0Fy
cmF5U2l6ZTsgaSsrKSB7CkBAIC04NTEsMjMgKzg5OSwyMyBAQCBURVNUKENvbnRhaW5lclV0aWxp
dHlEZWF0aFRlc3QsIFNodWZmbGVSYW5nZSkgewogCiBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdCA6
IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyBjb25zdCBpbnQga1ZlY3RvclNp
emUgPSAyMDsKKyAgc3RhdGljIGNvbnN0IHNpemVfdCBrVmVjdG9yU2l6ZSA9IDIwOwogCiAgIFZl
Y3RvclNodWZmbGVUZXN0KCkgOiByYW5kb21fKDEpIHsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8
IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0
PGludD4oa1ZlY3RvclNpemUpOyBpKyspIHsKICAgICAgIHZlY3Rvcl8ucHVzaF9iYWNrKGkpOwog
ICAgIH0KICAgfQogCiAgIHN0YXRpYyBib29sIFZlY3RvcklzQ29ycnVwdChjb25zdCBUZXN0aW5n
VmVjdG9yJiB2ZWN0b3IpIHsKLSAgICBpZiAoa1ZlY3RvclNpemUgIT0gc3RhdGljX2Nhc3Q8aW50
Pih2ZWN0b3Iuc2l6ZSgpKSkgeworICAgIGlmIChrVmVjdG9yU2l6ZSAhPSB2ZWN0b3Iuc2l6ZSgp
KSB7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBib29sIGZvdW5kX2luX3ZlY3Rv
cltrVmVjdG9yU2l6ZV0gPSB7IGZhbHNlIH07CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2
ZWN0b3Iuc2l6ZSgpOyBpKyspIHsKICAgICAgIGNvbnN0IGludCBlID0gdmVjdG9yW2ldOwotICAg
ICAgaWYgKGUgPCAwIHx8IGUgPj0ga1ZlY3RvclNpemUgfHwgZm91bmRfaW5fdmVjdG9yW2VdKSB7
CisgICAgICBpZiAoZSA8IDAgfHwgZSA+PSBzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JTaXplKSB8
fCBmb3VuZF9pbl92ZWN0b3JbZV0pIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAg
ICAgICBmb3VuZF9pbl92ZWN0b3JbZV0gPSB0cnVlOwpAQCAtODg0LDcgKzkzMiw3IEBAIGNsYXNz
IFZlY3RvclNodWZmbGVUZXN0IDogcHVibGljIFRlc3QgewogCiAgIHN0YXRpYyBib29sIFJhbmdl
SXNTaHVmZmxlZChjb25zdCBUZXN0aW5nVmVjdG9yJiB2ZWN0b3IsIGludCBiZWdpbiwgaW50IGVu
ZCkgewogICAgIGZvciAoaW50IGkgPSBiZWdpbjsgaSA8IGVuZDsgaSsrKSB7Ci0gICAgICBpZiAo
aSAhPSB2ZWN0b3JbaV0pIHsKKyAgICAgIGlmIChpICE9IHZlY3RvcltzdGF0aWNfY2FzdDxzaXpl
X3Q+KGkpXSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH0KICAgICB9CkBAIC05MDgs
NyArOTU2LDcgQEAgY2xhc3MgVmVjdG9yU2h1ZmZsZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIFRl
c3RpbmdWZWN0b3IgdmVjdG9yXzsKIH07ICAvLyBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdAogCi1j
b25zdCBpbnQgVmVjdG9yU2h1ZmZsZVRlc3Q6OmtWZWN0b3JTaXplOworY29uc3Qgc2l6ZV90IFZl
Y3RvclNodWZmbGVUZXN0OjprVmVjdG9yU2l6ZTsKIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0
LCBIYW5kbGVzRW1wdHlSYW5nZSkgewogICAvLyBUZXN0cyBhbiBlbXB0eSByYW5nZSBhdCB0aGUg
YmVnaW5uaW5nLi4uCkBAIC05NjAsNyArMTAwOCw3IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVz
dCwgU2h1ZmZsZXNFbnRpcmVWZWN0b3IpIHsKICAgLy8gVGVzdHMgdGhlIGZpcnN0IGFuZCBsYXN0
IGVsZW1lbnRzIGluIHBhcnRpY3VsYXIgdG8gZW5zdXJlIHRoYXQKICAgLy8gdGhlcmUgYXJlIG5v
IG9mZi1ieS1vbmUgcHJvYmxlbXMgaW4gb3VyIHNodWZmbGUgYWxnb3JpdGhtLgogICBFWFBFQ1Rf
TkUoMCwgdmVjdG9yX1swXSk7Ci0gIEVYUEVDVF9ORShrVmVjdG9yU2l6ZSAtIDEsIHZlY3Rvcl9b
a1ZlY3RvclNpemUgLSAxXSk7CisgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JT
aXplIC0gMSksIHZlY3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CiB9CiAKIFRFU1RfRihWZWN0b3JT
aHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7CkBAIC05NzAsNyArMTAxOCw4IEBA
IFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7CiAKICAg
QVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yXyk7CiAgIEVYUEVDVF9QUkVE
MyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8sIDAsIGtSYW5nZVNpemUpOwotICBFWFBFQ1RfUFJF
RDMoUmFuZ2VJc1Vuc2h1ZmZsZWQsIHZlY3Rvcl8sIGtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsK
KyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VTaXplLAor
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkpOwogfQogCiBURVNU
X0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZWZWN0b3IpIHsKQEAgLTk3OSwyMyAr
MTAyOCwyNSBAQCBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZWZWN0b3Ip
IHsKIAogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKICAgRVhQ
RUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKLSAg
RVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwga1ZlY3Rv
clNpemUpOworICBFWFBFQ1RfUFJFRDMoUmFuZ2VJc1NodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VT
aXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkpOwogfQog
CiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzTWlkZGxlT2ZWZWN0b3IpIHsKLSAg
aW50IGtSYW5nZVNpemUgPSBrVmVjdG9yU2l6ZS8zOworICBjb25zdCBpbnQga1JhbmdlU2l6ZSA9
IHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpIC8gMzsKICAgU2h1ZmZsZVJhbmdlKCZyYW5k
b21fLCBrUmFuZ2VTaXplLCAyKmtSYW5nZVNpemUsICZ2ZWN0b3JfKTsKIAogICBBU1NFUlRfUFJF
RDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNV
bnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKICAgRVhQRUNUX1BSRUQzKFJhbmdl
SXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwgMiprUmFuZ2VTaXplKTsKLSAgRVhQRUNU
X1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAyKmtSYW5nZVNpemUsIGtWZWN0b3JT
aXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAyICoga1Jh
bmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpKTsK
IH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc1JlcGVhdGFibHkpIHsKICAg
VGVzdGluZ1ZlY3RvciB2ZWN0b3IyOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0b3JTaXpl
OyBpKyspIHsKLSAgICB2ZWN0b3IyLnB1c2hfYmFjayhpKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CisgICAgdmVjdG9yMi5wdXNoX2JhY2soc3RhdGljX2Nh
c3Q8aW50PihpKSk7CiAgIH0KIAogICByYW5kb21fLlJlc2VlZCgxMjM0KTsKQEAgLTEwMDYsNyAr
MTA1Nyw3IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNSZXBlYXRhYmx5KSB7
CiAgIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8pOwogICBBU1NFUlRf
UFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3IyKTsKIAotICBmb3IgKGludCBpID0gMDsg
aSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrVmVjdG9y
U2l6ZTsgaSsrKSB7CiAgICAgRVhQRUNUX0VRKHZlY3Rvcl9baV0sIHZlY3RvcjJbaV0pIDw8ICIg
d2hlcmUgaSBpcyAiIDw8IGk7CiAgIH0KIH0KQEAgLTEwMzQsMTEgKzEwODUsMTEgQEAgVEVTVChT
dHJpbmdUZXN0LCBFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSkgewogLy8gQysrQnVpbGRlcidzIHBy
ZXByb2Nlc3NvciBpcyBidWdneTsgaXQgZmFpbHMgdG8gZXhwYW5kIG1hY3JvcyB0aGF0CiAvLyBh
cHBlYXIgaW4gbWFjcm8gcGFyYW1ldGVycyBhZnRlciB3aWRlIGNoYXIgbGl0ZXJhbHMuICBQcm92
aWRlIGFuIGFsaWFzCiAvLyBmb3IgTlVMTCBhcyBhIHdvcmthcm91bmQuCi1zdGF0aWMgY29uc3Qg
d2NoYXJfdCogY29uc3Qga051bGwgPSBOVUxMOworc3RhdGljIGNvbnN0IHdjaGFyX3QqIGNvbnN0
IGtOdWxsID0gbnVsbHB0cjsKIAogLy8gVGVzdHMgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRl
Q1N0cmluZ0VxdWFscwogVEVTVChTdHJpbmdUZXN0LCBDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmlu
Z0VxdWFscykgewotICBFWFBFQ1RfVFJVRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3Ry
aW5nRXF1YWxzKE5VTEwsIE5VTEwpKTsKKyAgRVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNlSW5zZW5z
aXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhudWxscHRyLCBudWxscHRyKSk7CiAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGtOdWxsLCBMIiIpKTsK
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMo
TCIiLCBrTnVsbCkpOwogICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRl
Q1N0cmluZ0VxdWFscyhrTnVsbCwgTCJmb29iYXIiKSk7CkBAIC0xMTU5LDcgKzEyMTAsNyBAQCBj
bGFzcyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVzdAogICA6
IHB1YmxpYyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3QgewogIHByb3RlY3Rl
ZDoKICAgc3RhdGljIHZvaWQgQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRmFpbHVyZU1vZGUgZmFp
bHVyZSkgewotICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZBZGRGYWls
dXJlLCBmYWlsdXJlLCBOVUxMKTsKKyAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRo
cmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgbnVsbHB0cik7CiAgICAgdGhyZWFkLkpvaW4oKTsK
ICAgfQogfTsKQEAgLTExOTUsMTIgKzEyNDYsNiBAQCBURVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJl
VGVzdCwgQ2F0Y2hlc0ZhdGFsRmFsaXVyZSkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRG
YXRhbEZhaWx1cmUoKSwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7CiB9CiAKLSNpZiBHVEVT
VF9IQVNfR0xPQkFMX1NUUklORwotVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIEFjY2Vw
dHNTdHJpbmdPYmplY3QpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQWRkRmF0YWxGYWlsdXJl
KCksIDo6c3RyaW5nKCJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRpZgotCiBU
RVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgQWNjZXB0c1N0ZFN0cmluZ09iamVjdCkgewog
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYXRhbEZhaWx1cmUoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgOjpzdGQ6OnN0cmluZygiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKSk7CkBAIC0x
MjgzLDEzICsxMzI4LDYgQEAgVEVTVF9GKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIENhdGNo
ZXNOb25mYXRhbEZhaWx1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVk
IG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcK
LVRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBBY2NlcHRzU3RyaW5nT2JqZWN0KSB7
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZE5vbmZhdGFsRmFpbHVyZSgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICA6OnN0cmluZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUu
IikpOwotfQotI2VuZGlmCi0KIFRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBBY2Nl
cHRzU3RkU3RyaW5nT2JqZWN0KSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZE5vbmZh
dGFsRmFpbHVyZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0ZDo6c3RyaW5nKCJF
eHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKSk7CkBAIC0xMzYzLDcgKzE0MDEsNyBAQCBjbGFz
cyBUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gLi4uIGFuZCAzIFRlc3RSZXN1
bHQgb2JqZWN0cy4KICAgVGVzdFJlc3VsdCAqIHIwLCAqIHIxLCAqIHIyOwogCi0gIHZpcnR1YWwg
dm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICAvLyBwcjEgaXMg
Zm9yIHN1Y2Nlc3MuCiAgICAgcHIxID0gbmV3IFRlc3RQYXJ0UmVzdWx0KFRlc3RQYXJ0UmVzdWx0
OjprU3VjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby9iYXIuY2MiLApA
QCAtMTQwMCw3ICsxNDM4LDcgQEAgY2xhc3MgVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7
CiAgICAgcmVzdWx0czItPnB1c2hfYmFjaygqcHIyKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBU
ZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxldGUgcHIx
OwogICAgIGRlbGV0ZSBwcjI7CiAKQEAgLTE1NTYsNyArMTU5NCw3IEBAIGNsYXNzIEdUZXN0Rmxh
Z1NhdmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gU2F2ZXMgdGhlIEdvb2dsZSBUZXN0IGZs
YWdzIHN1Y2ggdGhhdCB3ZSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyLCBhbmQKICAgLy8gdGhlbiBz
ZXRzIHRoZW0gdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuICBUaGlzIHdpbGwgYmUgY2FsbGVkCiAg
IC8vIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcyBydW4uCi0gIHN0
YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRl
KCkgewogICAgIHNhdmVyXyA9IG5ldyBHVGVzdEZsYWdTYXZlcjsKIAogICAgIEdURVNUX0ZMQUco
YWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpID0gZmFsc2U7CkBAIC0xNTY0LDkgKzE2MDIsMTEgQEAg
Y2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewogICAgIEdURVNUX0ZMQUco
Y2F0Y2hfZXhjZXB0aW9ucykgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNl
X2ZvcmspID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7CisgICAgR1RF
U1RfRkxBRyhmYWlsX2Zhc3QpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gIiI7
CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcob3V0
cHV0KSA9ICIiOworICAgIEdURVNUX0ZMQUcoYnJpZWYpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxB
RyhwcmludF90aW1lKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSAwOwog
ICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7CkBAIC0xNTc4LDkgKzE2MTgsOSBAQCBjbGFzcyBH
VGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAKICAgLy8gUmVzdG9yZXMgdGhlIEdv
b2dsZSBUZXN0IGZsYWdzIHRoYXQgdGhlIHRlc3RzIGhhdmUgbW9kaWZpZWQuICBUaGlzIHdpbGwK
ICAgLy8gYmUgY2FsbGVkIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UgaXMg
cnVuLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBU
ZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgc2F2ZXJfOwotICAgIHNhdmVyXyA9IE5V
TEw7CisgICAgc2F2ZXJfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFZlcmlmaWVzIHRoYXQgdGhl
IEdvb2dsZSBUZXN0IGZsYWdzIGhhdmUgdGhlaXIgZGVmYXVsdCB2YWx1ZXMsIGFuZCB0aGVuCkBA
IC0xNTkxLDkgKzE2MzEsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRl
c3QgewogICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpKTsKICAg
ICBFWFBFQ1RfU1RSRVEoImF1dG8iLCBHVEVTVF9GTEFHKGNvbG9yKS5jX3N0cigpKTsKICAgICBF
WFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3VzZV9mb3JrKSk7CisgICAgRVhQRUNU
X0ZBTFNFKEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKCIiLCBHVEVT
VF9GTEFHKGZpbHRlcikuY19zdHIoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcobGlz
dF90ZXN0cykpOwogICAgIEVYUEVDVF9TVFJFUSgiIiwgR1RFU1RfRkxBRyhvdXRwdXQpLmNfc3Ry
KCkpOworICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQRUNUX1RS
VUUoR1RFU1RfRkxBRyhwcmludF90aW1lKSk7CiAgICAgRVhQRUNUX0VRKDAsIEdURVNUX0ZMQUco
cmFuZG9tX3NlZWQpKTsKICAgICBFWFBFQ1RfRVEoMSwgR1RFU1RfRkxBRyhyZXBlYXQpKTsKQEAg
LTE2MDcsOSArMTY0OSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVz
dCB7CiAgICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IHRydWU7CiAgICAgR1RFU1Rf
RkxBRyhjb2xvcikgPSAibm8iOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykg
PSB0cnVlOworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IHRydWU7CiAgICAgR1RFU1RfRkxB
RyhmaWx0ZXIpID0gImFiYyI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IHRydWU7CiAg
ICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gInhtbDpmb28ueG1sIjsKKyAgICBHVEVTVF9GTEFHKGJy
aWVmKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IGZhbHNlOwogICAgIEdU
RVNUX0ZMQUcocmFuZG9tX3NlZWQpID0gMTsKICAgICBHVEVTVF9GTEFHKHJlcGVhdCkgPSAxMDA7
CkBAIC0xNjI0LDcgKzE2NjgsNyBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgIHN0YXRpYyBHVGVzdEZsYWdTYXZlciogc2F2ZXJfOwogfTsKIAotR1Rlc3RGbGFn
U2F2ZXIqIEdUZXN0RmxhZ1NhdmVyVGVzdDo6c2F2ZXJfID0gTlVMTDsKK0dUZXN0RmxhZ1NhdmVy
KiBHVGVzdEZsYWdTYXZlclRlc3Q6OnNhdmVyXyA9IG51bGxwdHI7CiAKIC8vIEdvb2dsZSBUZXN0
IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBvcmRlciBvZiB0ZXN0cy4gIFRoZSBmb2xsb3dpbmcgdHdv
CiAvLyB0ZXN0cyBhcmUgZGVzaWduZWQgdG8gd29yayByZWdhcmRsZXNzIG9mIHRoZWlyIG9yZGVy
LgpAQCAtMTczNyw3ICsxNzgxLDcgQEAgVEVTVChJbnQzMkZyb21HVGVzdEVudlRlc3QsIFBhcnNl
c0FuZFJldHVybnNWYWxpZFZhbHVlKSB7CiAvLyBUZXN0cyB0aGF0IFBhcnNlSW50MzJGbGFnKCkg
cmV0dXJucyBmYWxzZSBhbmQgZG9lc24ndCBjaGFuZ2UgdGhlCiAvLyBvdXRwdXQgdmFsdWUgd2hl
biB0aGUgZmxhZyBoYXMgd3JvbmcgZm9ybWF0CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0
dXJuc0ZhbHNlRm9ySW52YWxpZEZsYWcpIHsKLSAgSW50MzIgdmFsdWUgPSAxMjM7CisgIGludDMy
X3QgdmFsdWUgPSAxMjM7CiAgIEVYUEVDVF9GQUxTRShQYXJzZUludDMyRmxhZygiLS1hPTEwMCIs
ICJiIiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9FUSgxMjMsIHZhbHVlKTsKIApAQCAtMTc1MCw3ICsx
Nzk0LDcgQEAgVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFJldHVybnNGYWxzZUZvckludmFsaWRG
bGFnKSB7CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVP
dmVyZmxvd3MpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKIAotICBJ
bnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJfdCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNUX0ZBTFNF
KFBhcnNlSW50MzJGbGFnKCItLWFiYz0xMjM0NTY3ODk4NzY1NDMyMSIsICJhYmMiLCAmdmFsdWUp
KTsKICAgRVhQRUNUX0VRKDEyMywgdmFsdWUpOwogCkBAIC0xNzY0LDcgKzE4MDgsNyBAQCBURVNU
KFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxvd3MpIHsK
IFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52YWxp
ZCkgewogICBwcmludGYoIihleHBlY3RpbmcgMiB3YXJuaW5ncylcbiIpOwogCi0gIEludDMyIHZh
bHVlID0gMTIzOworICBpbnQzMl90IHZhbHVlID0gMTIzOwogICBFWFBFQ1RfRkFMU0UoUGFyc2VJ
bnQzMkZsYWcoIi0tYWJjPUExIiwgImFiYyIsICZ2YWx1ZSkpOwogICBFWFBFQ1RfRVEoMTIzLCB2
YWx1ZSk7CiAKQEAgLTE3NzYsNyArMTgyMCw3IEBAIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBS
ZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52YWxpZCkgewogLy8gcmV0dXJucyB0cnVlIHdoZW4g
dGhlIGZsYWcgcmVwcmVzZW50cyBhIHZhbGlkIGRlY2ltYWwgaW50ZWdlciBpbgogLy8gdGhlIHJh
bmdlIG9mIGFuIEludDMyLgogVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFBhcnNlc0FuZFJldHVy
bnNWYWxpZFZhbHVlKSB7Ci0gIEludDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZhbHVlID0g
MTIzOwogICBFWFBFQ1RfVFJVRShQYXJzZUludDMyRmxhZygiLS0iIEdURVNUX0ZMQUdfUFJFRklY
XyAiYWJjPTQ1NiIsICJhYmMiLCAmdmFsdWUpKTsKICAgRVhQRUNUX0VRKDQ1NiwgdmFsdWUpOwog
CkBAIC0xNzk5LDcgKzE4NDMsNyBAQCBURVNUKEludDMyRnJvbUVudk9yRGllVGVzdCwgUGFyc2Vz
QW5kUmV0dXJuc1ZhbGlkVmFsdWUpIHsKICNlbmRpZiAgLy8gIUdURVNUX09TX1dJTkRPV1NfTU9C
SUxFCiAKIC8vIFRlc3RzIHRoYXQgSW50MzJGcm9tRW52T3JEaWUoKSBhYm9ydHMgd2l0aCBhbiBl
cnJvciBtZXNzYWdlCi0vLyBpZiB0aGUgdmFyaWFibGUgaXMgbm90IGFuIEludDMyLgorLy8gaWYg
dGhlIHZhcmlhYmxlIGlzIG5vdCBhbiBpbnQzMl90LgogVEVTVChJbnQzMkZyb21FbnZPckRpZURl
YXRoVGVzdCwgQWJvcnRzT25GYWlsdXJlKSB7CiAgIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9V
UFBFUl8gIlZBUiIsICJ4eHgiKTsKICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgKQEAgLTE4
MDgsNyArMTg1Miw3IEBAIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09u
RmFpbHVyZSkgewogfQogCiAvLyBUZXN0cyB0aGF0IEludDMyRnJvbUVudk9yRGllKCkgYWJvcnRz
IHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8gaWYgdGhlIHZhcmlhYmxlIGNhbm5vdCBiZSByZXBy
ZXNlbnRlZCBieSBhbiBJbnQzMi4KKy8vIGlmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVwcmVz
ZW50ZWQgYnkgYW4gaW50MzJfdC4KIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFi
b3J0c09uSW50MzJPdmVyZmxvdykgewogICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJf
ICJWQVIiLCAiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNCIpOwogICBFWFBFQ1RfREVBVEhfSUZfU1VQ
UE9SVEVEKApAQCAtMTgyOCwxMiArMTg3MiwxMiBAQCBURVNUKFNob3VsZFJ1blRlc3RPblNoYXJk
VGVzdCwgSXNQYXJ0aXRpb25XaGVuVGhlcmVJc09uZVNoYXJkKSB7CiAKIGNsYXNzIFNob3VsZFNo
YXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwg
dm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBpbmRleF92YXJf
ID0gR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJJTkRFWCI7CiAgICAgdG90YWxfdmFyXyA9IEdU
RVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVE9UQUwiOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRl
YXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIFNldEVudihpbmRl
eF92YXJfLCAiIik7CiAgICAgU2V0RW52KHRvdGFsX3Zhcl8sICIiKTsKICAgfQpAQCAtMTk0Miwx
NCArMTk4NiwxNCBAQCBURVNUKFNob3VsZFJ1blRlc3RPblNoYXJkVGVzdCwgSXNQYXJ0aXRpb25X
aGVuVGhlcmVBcmVGaXZlU2hhcmRzKSB7CiAvLyBUZXN0IGNsYXNzLCB0aGVyZSBhcmUgbm8gc2Vw
YXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgY2xhc3NlcwogLy8gKGV4Y2VwdCBmb3Igc29t
ZSB0cml2aWFsIGNhc2VzKToKIC8vCi0vLyAgIFRlc3RDYXNlLCBVbml0VGVzdCwgVW5pdFRlc3RS
ZXN1bHRQcmludGVyLgorLy8gICBUZXN0U3VpdGUsIFVuaXRUZXN0LCBVbml0VGVzdFJlc3VsdFBy
aW50ZXIuCiAvLwogLy8gU2ltaWxhcmx5LCB0aGVyZSBhcmUgbm8gc2VwYXJhdGUgdGVzdHMgZm9y
IHRoZSBmb2xsb3dpbmcgbWFjcm9zOgogLy8KIC8vICAgVEVTVCwgVEVTVF9GLCBSVU5fQUxMX1RF
U1RTCiAKIFRFU1QoVW5pdFRlc3RUZXN0LCBDYW5HZXRPcmlnaW5hbFdvcmtpbmdEaXIpIHsKLSAg
QVNTRVJUX1RSVUUoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGly
KCkgIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmln
aW5hbF93b3JraW5nX2RpcigpICE9IG51bGxwdHIpOwogICBFWFBFQ1RfU1RSTkUoVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICIiKTsKIH0KIApAQCAtMTk3
MSwyMCArMjAxNSwyMSBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5KAogdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQ
cm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0KAogICAgIGNvbnN0IGNoYXIqIGtl
eSkgewogICBjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvID0gVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfaW5mbyAhPSBOVUxM
KTsKKyAgQVNTRVJUX1RSVUUodGVzdF9pbmZvICE9IG51bGxwdHIpOwogICBFeHBlY3ROb25GYXRh
bEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgqdGVzdF9pbmZvLT5yZXN1
bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga2V5KTsKIH0KIAotdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9w
ZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKK3ZvaWQgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1
aXRlKAogICAgIGNvbnN0IGNoYXIqIGtleSkgewotICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNl
ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9jYXNlKCk7Ci0gIEFTU0VS
VF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKKyAgY29uc3QgdGVzdGluZzo6VGVzdFN1aXRlKiB0
ZXN0X3N1aXRlID0KKyAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3Rf
c3VpdGUoKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBudWxscHRyKTsKICAgRXhwZWN0
Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXkoCi0gICAgICB0
ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOworICAgICAgdGVzdF9zdWl0ZS0+
YWRfaG9jX3Rlc3RfcmVzdWx0KCksIGtleSk7CiB9CiAKLXZvaWQgRXhwZWN0Tm9uRmF0YWxGYWls
dXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKK3Zv
aWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlP
dXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgY29uc3QgY2hhcioga2V5KSB7CiAgIEV4cGVjdE5vbkZh
dGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogICAgICAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwpAQCAtMTk5Niwy
OSArMjA0MSwzMiBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCiBjbGFzcyBVbml0VGVzdFJlY29yZFBy
b3BlcnR5VGVzdCA6CiAgICAgcHVibGljIHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdFJlY29y
ZFByb3BlcnR5VGVzdEhlbHBlciB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RD
YXNlKCkgewotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJl
c2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0
ZSgpIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNl
cnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUoCiAgICAgICAgICJkaXNhYmxlZCIpOwotICAgIEV4
cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3Vy
cmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAgImVycm9ycyIpOwot
ICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5
Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1By
b3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAgImZhaWx1
cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVz
ZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVj
b3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAogICAgICAg
ICAibmFtZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0
aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVy
ZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAg
ICAgICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVy
dHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRl
KAogICAgICAgICAidGltZSIpOwogCiAgICAgVGVzdDo6UmVjb3JkUHJvcGVydHkoInRlc3RfY2Fz
ZV9rZXlfMSIsICIxIik7Ci0gICAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVuaXRUZXN0
OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfY2FzZSgpOwotICAgIEFTU0VSVF9UUlVFKHRl
c3RfY2FzZSAhPSBOVUxMKTsKIAotICAgIEFTU0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPmFkX2hvY190
ZXN0X3Jlc3VsdCgpLnRlc3RfcHJvcGVydHlfY291bnQoKSk7CisgICAgY29uc3QgdGVzdGluZzo6
VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
PmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworCisgICAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBu
dWxscHRyKTsKKworICAgIEFTU0VSVF9FUSgxLCB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1
bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwogICAgIEVYUEVDVF9TVFJFUSgidGVzdF9jYXNl
X2tleV8xIiwKLSAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLT5hZF9ob2NfdGVzdF9yZXN1bHQo
KS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOworICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRl
LT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOwogICAgIEVY
UEVDVF9TVFJFUSgiMSIsCi0gICAgICAgICAgICAgICAgIHRlc3RfY2FzZS0+YWRfaG9jX3Rlc3Rf
cmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOworICAgICAgICAgICAgICAgICB0
ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkudmFsdWUo
KSk7CiAgIH0KIH07CiAKQEAgLTIwNzEsNyArMjExOSw3IEBAIFRFU1RfRihVbml0VGVzdFJlY29y
ZFByb3BlcnR5VGVzdCwgT3ZlcnJpZGVzVmFsdWVzRm9yRHVwbGljYXRlS2V5cykgewogfQogCiBU
RVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsCi0gICAgICAgQWRkRmFpbHVyZUluc2lk
ZVRlc3RzV2hlblVzaW5nVGVzdENhc2VSZXNlcnZlZEtleXMpIHsKKyAgICAgICBBZGRGYWlsdXJl
SW5zaWRlVGVzdHNXaGVuVXNpbmdUZXN0U3VpdGVSZXNlcnZlZEtleXMpIHsKICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVz
dCgKICAgICAgICJuYW1lIik7CiAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCkBAIC0yMDk2LDI4ICsyMTQ0LDI4IEBA
IFRFU1RfRihVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdCwKIAogY2xhc3MgVW5pdFRlc3RSZWNv
cmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAgcHVibGlj
OgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJl
UmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgdm9p
ZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRp
bmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInRl
c3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVz
ZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAg
ImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1
cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAg
ICAgICAgImRpc2FibGVkIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJv
cGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRh
bEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0
ZSgKICAgICAgICAgImVycm9ycyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0
U3VpdGUoCiAgICAgICAgICJuYW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3Jk
aW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRl
c3RTdWl0ZSgKICAgICAgICAgInRpbWVzdGFtcCIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVy
ZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAg
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRz
aWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJ0aW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWls
dXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAg
ICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91
dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInJhbmRvbV9zZWVkIik7CiAgIH0KIH07CiAKIC8v
IFRoaXMgd2lsbCB0ZXN0IHByb3BlcnR5IHJlY29yZGluZyBvdXRzaWRlIG9mIGFueSB0ZXN0IG9y
IHRlc3QgY2FzZS4KLXN0YXRpYyBFbnZpcm9ubWVudCogcmVjb3JkX3Byb3BlcnR5X2VudiA9Citz
dGF0aWMgRW52aXJvbm1lbnQqIHJlY29yZF9wcm9wZXJ0eV9lbnYgR1RFU1RfQVRUUklCVVRFX1VO
VVNFRF8gPQogICAgIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVW5pdFRlc3RSZWNvcmRQ
cm9wZXJ0eVRlc3RFbnZpcm9ubWVudCk7CiAKIC8vIFRoaXMgZ3JvdXAgb2YgdGVzdHMgaXMgZm9y
IHByZWRpY2F0ZSBhc3NlcnRpb25zIChBU1NFUlRfUFJFRCosIGV0YykKQEAgLTIxMjgsMTIgKzIx
NzYsMTIgQEAgc3RhdGljIEVudmlyb25tZW50KiByZWNvcmRfcHJvcGVydHlfZW52ID0KIAogLy8g
Rmlyc3QsIHNvbWUgcHJlZGljYXRlcyBhbmQgcHJlZGljYXRlLWZvcm1hdHRlcnMgbmVlZGVkIGJ5
IHRoZSB0ZXN0cy4KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMgYW4gZXZl
biBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlz
IGFuIGV2ZW4gbnVtYmVyLgogYm9vbCBJc0V2ZW4oaW50IG4pIHsKICAgcmV0dXJuIChuICUgMikg
PT0gMDsKIH0KIAotLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUgYXJndW1l
bnQgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBBIGZ1bmN0b3IgdGhhdCByZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogc3RydWN0IElzRXZl
bkZ1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50IG4pIHsgcmV0dXJuIElzRXZlbihuKTsg
fQogfTsKQEAgLTIxNzcsMTMgKzIyMjUsMTMgQEAgc3RydWN0IEFzc2VydElzRXZlbkZ1bmN0b3Ig
ewogICB9CiB9OwogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50
cyBpcyBhbiBldmVuIG51bWJlci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
c3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4gZXZlbiBudW1iZXIuCiBib29sIFN1bUlzRXZlbjIo
aW50IG4xLCBpbnQgbjIpIHsKICAgcmV0dXJuIElzRXZlbihuMSArIG4yKTsKIH0KIAotLy8gQSBm
dW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMg
YW4gZXZlbgotLy8gbnVtYmVyLgorLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50cyBpcyBhbgorLy8gZXZlbiBudW1iZXIu
CiBzdHJ1Y3QgU3VtSXNFdmVuM0Z1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50IG4xLCBp
bnQgbjIsIGludCBuMykgewogICAgIHJldHVybiBJc0V2ZW4objEgKyBuMiArIG4zKTsKQEAgLTIz
NjIsNiArMjQxMCwxNiBAQCBURVNUKFByZWRUZXN0LCBTaW5nbGVFdmFsdWF0aW9uT25GYWlsdXJl
KSB7CiAgIEVYUEVDVF9FUSgxLCBuNCkgPDwgIkFyZ3VtZW50IDQgaXMgbm90IGV2YWx1YXRlZCBl
eGFjdGx5IG9uY2UuIjsKIH0KIAorLy8gVGVzdCBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBmb3Igc2V0
cworVEVTVChQcmVkVGVzdCwgRXhwZWN0UHJlZEV2YWxGYWlsdXJlKSB7CisgIHN0ZDo6c2V0PGlu
dD4gc2V0X2EgPSB7MiwgMSwgMywgNCwgNX07CisgIHN0ZDo6c2V0PGludD4gc2V0X2IgPSB7MCwg
NCwgOH07CisgIGNvbnN0IGF1dG8gY29tcGFyZV9zZXRzID0gW10gKHN0ZDo6c2V0PGludD4sIHN0
ZDo6c2V0PGludD4pIHsgcmV0dXJuIGZhbHNlOyB9OworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RSgKKyAgICAgIEVYUEVDVF9QUkVEMihjb21wYXJlX3NldHMsIHNldF9hLCBzZXRfYiksCisgICAg
ICAiY29tcGFyZV9zZXRzKHNldF9hLCBzZXRfYikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZVxu
c2V0X2EgZXZhbHVhdGVzICIKKyAgICAgICJ0byB7IDEsIDIsIDMsIDQsIDUgfVxuc2V0X2IgZXZh
bHVhdGVzIHRvIHsgMCwgNCwgOCB9Iik7Cit9CiAKIC8vIFNvbWUgaGVscGVyIGZ1bmN0aW9ucyBm
b3IgdGVzdGluZyB1c2luZyBvdmVybG9hZGVkL3RlbXBsYXRlCiAvLyBmdW5jdGlvbnMgd2l0aCBB
U1NFUlRfUFJFRG4gYW5kIEVYUEVDVF9QUkVEbi4KQEAgLTI0NTYsMjQgKzI1MTQsMjIgQEAgVEVT
VChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVEpIHsKIAogLy8gVGVzdHMgQVNTRVJU
X1NUUkVRIHdpdGggTlVMTCBhcmd1bWVudHMuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFT
U0VSVF9TVFJFUV9OdWxsKSB7Ci0gIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25zdCBjaGFy
ICo+KE5VTEwpLCBOVUxMKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKE5V
TEwsICJub24tbnVsbCIpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAg
QVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgbnVsbHB0cik7
CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUShudWxscHRyLCAibm9uLW51bGwi
KSwgIm5vbi1udWxsIik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9TVFJFUSB3aXRoIE5VTEwgYXJn
dW1lbnRzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVFfTnVsbDIpIHsK
LSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIE5VTEwpLAot
ICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsKIH0KIAog
Ly8gVGVzdHMgQVNTRVJUX1NUUk5FLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRf
U1RSTkUpIHsKICAgQVNTRVJUX1NUUk5FKCJoaSIsICJIaSIpOwotICBBU1NFUlRfU1RSTkUoIkhp
IiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShOVUxMLCAiSGkiKTsKLSAgQVNTRVJUX1NUUk5FKCIi
LCBOVUxMKTsKLSAgQVNTRVJUX1NUUk5FKE5VTEwsICIiKTsKKyAgQVNTRVJUX1NUUk5FKCJIaSIs
IG51bGxwdHIpOworICBBU1NFUlRfU1RSTkUobnVsbHB0ciwgIkhpIik7CisgIEFTU0VSVF9TVFJO
RSgiIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJORShudWxscHRyLCAiIik7CiAgIEFTU0VSVF9T
VFJORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9TVFJORSgiSGkiLCAiIik7CiAgIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKEFTU0VSVF9TVFJORSgiSGkiLCAiSGkiKSwKQEAgLTI0ODMsNyArMjUzOSw3IEBA
IFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUk5FKSB7CiAvLyBUZXN0cyBBU1NF
UlRfU1RSQ0FTRUVRLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSQ0FTRUVR
KSB7CiAgIEFTU0VSVF9TVFJDQVNFRVEoImhpIiwgIkhpIik7Ci0gIEFTU0VSVF9TVFJDQVNFRVEo
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihOVUxMKSwgTlVMTCk7CisgIEFTU0VSVF9TVFJDQVNF
RVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBudWxscHRyKTsKIAogICBBU1NF
UlRfU1RSQ0FTRUVRKCIiLCAiIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJD
QVNFRVEoIkhpIiwgImhpMiIpLApAQCAtMjQ5MywxMCArMjU0OSwxMCBAQCBURVNUKFN0cmluZ0Fz
c2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFRVEpIHsKIC8vIFRlc3RzIEFTU0VSVF9TVFJDQVNF
TkUuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsKICAgQVNT
RVJUX1NUUkNBU0VORSgiaGkxIiwgIkhpMiIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCJIaSIsIE5V
TEwpOwotICBBU1NFUlRfU1RSQ0FTRU5FKE5VTEwsICJIaSIpOwotICBBU1NFUlRfU1RSQ0FTRU5F
KCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNBU0VORShOVUxMLCAiIik7CisgIEFTU0VSVF9TVFJD
QVNFTkUoIkhpIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJDQVNFTkUobnVsbHB0ciwgIkhpIik7
CisgIEFTU0VSVF9TVFJDQVNFTkUoIiIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSQ0FTRU5FKG51
bGxwdHIsICIiKTsKICAgQVNTRVJUX1NUUkNBU0VORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9TVFJD
QVNFTkUoIkhpIiwgIiIpOwogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RSQ0FTRU5F
KCJIaSIsICJoaSIpLApAQCAtMjUwNiwxNCArMjU2MiwxMyBAQCBURVNUKFN0cmluZ0Fzc2VydGlv
blRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsKIC8vIFRlc3RzICpfU1RSRVEgb24gd2lkZSBzdHJp
bmdzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAgIC8vIE5VTEwg
c3RyaW5ncy4KLSAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IHdjaGFyX3QgKj4oTlVM
TCksIE5VTEwpOworICBBU1NFUlRfU1RSRVEoc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KG51
bGxwdHIpLCBudWxscHRyKTsKIAogICAvLyBFbXB0eSBzdHJpbmdzLgogICBBU1NFUlRfU1RSRVEo
TCIiLCBMIiIpOwogCiAgIC8vIE5vbi1udWxsIHZzIE5VTEwuCi0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9TVFJFUShMIm5vbi1udWxsIiwgTlVMTCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICJub24tbnVsbCIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
U1RSRVEoTCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsKIAogICAvLyBFcXVhbCBz
dHJpbmdzLgogICBFWFBFQ1RfU1RSRVEoTCJIaSIsIEwiSGkiKTsKQEAgLTI1MzUsMTYgKzI1OTAs
MTggQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAvLyBUZXN0cyAq
X1NUUk5FIG9uIHdpZGUgc3RyaW5ncy4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgU1RSTkVf
V2lkZSkgewogICAvLyBOVUxMIHN0cmluZ3MuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsg
IC8vIE5PTElOVAotICAgIEVYUEVDVF9TVFJORShzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90ICo+
KE5VTEwpLCBOVUxMKTsKLSAgfSwgIiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKKyAg
ICAgIHsgIC8vIE5PTElOVAorICAgICAgICBFWFBFQ1RfU1RSTkUoc3RhdGljX2Nhc3Q8Y29uc3Qg
d2NoYXJfdCo+KG51bGxwdHIpLCBudWxscHRyKTsKKyAgICAgIH0sCisgICAgICAiIik7CiAKICAg
Ly8gRW1wdHkgc3RyaW5ncy4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUk5F
KEwiIiwgTCIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcIlwiIik7CiAKICAgLy8g
Tm9uLW51bGwgdnMgTlVMTC4KLSAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBOVUxMKTsKKyAg
QVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBudWxscHRyKTsKIAogICAvLyBFcXVhbCBzdHJpbmdz
LgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSTkUoTCJIaSIsIEwiSGkiKSwK
QEAgLTI1NjYsMTEgKzI2MjMsMTEgQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJORV9X
aWRlKSB7CiAvLyBUZXN0cyB0aGF0IElzU3Vic3RyaW5nKCkgcmV0dXJucyB0aGUgY29ycmVjdCBy
ZXN1bHQgd2hlbiB0aGUgaW5wdXQKIC8vIGFyZ3VtZW50IHR5cGUgaXMgY29uc3QgY2hhciouCiBU
RVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JDU3RyaW5nKSB7Ci0g
IEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIE5VTEwsICJhIikpOwotICBFWFBFQ1Rf
RkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAiYiIsIE5VTEwpKTsKKyAgRVhQRUNUX0ZBTFNFKElz
U3Vic3RyaW5nKCIiLCAiIiwgbnVsbHB0ciwgImEiKSk7CisgIEVYUEVDVF9GQUxTRShJc1N1YnN0
cmluZygiIiwgIiIsICJiIiwgbnVsbHB0cikpOwogICBFWFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmco
IiIsICIiLCAibmVlZGxlIiwgImhheXN0YWNrIikpOwogCi0gIEVYUEVDVF9UUlVFKElzU3Vic3Ry
aW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KE5VTEwpLCBOVUxMKSk7CisgIEVY
UEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51
bGxwdHIpLCBudWxscHRyKSk7CiAgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgIm5l
ZWRsZSIsICJ0d28gbmVlZGxlcyIpKTsKIH0KIApAQCAtMjU4MSw3ICsyNjM4LDggQEAgVEVTVChJ
c1N1YnN0cmluZ1Rlc3QsIFJldHVybnNDb3JyZWN0UmVzdWx0Rm9yV2lkZUNTdHJpbmcpIHsKICAg
RVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJiIiwga051bGwpKTsKICAgRVhQRUNU
X0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJuZWVkbGUiLCBMImhheXN0YWNrIikpOwogCi0g
IEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJf
dCo+KE5VTEwpLCBOVUxMKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSXNTdWJzdHJpbmcoIiIs
ICIiLCBzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90Kj4obnVsbHB0ciksIG51bGxwdHIpKTsKICAg
RVhQRUNUX1RSVUUoSXNTdWJzdHJpbmcoIiIsICIiLCBMIm5lZWRsZSIsIEwidHdvIG5lZWRsZXMi
KSk7CiB9CiAKQEAgLTI3MDksOCArMjc2Nyw4IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnRUZXN0IDog
cHVibGljIFRlc3QgewogICB0eXBlZGVmIHR5cGVuYW1lIHRlc3Rpbmc6OmludGVybmFsOjpGbG9h
dGluZ1BvaW50PFJhd1R5cGU+IEZsb2F0aW5nOwogICB0eXBlZGVmIHR5cGVuYW1lIEZsb2F0aW5n
OjpCaXRzIEJpdHM7CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGNvbnN0IHNpemVf
dCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxwczsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKKyAgICBjb25zdCB1aW50MzJfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxwczsKIAog
ICAgIC8vIFRoZSBiaXRzIHRoYXQgcmVwcmVzZW50IDAuMC4KICAgICBjb25zdCBCaXRzIHplcm9f
Yml0cyA9IEZsb2F0aW5nKDApLmJpdHMoKTsKQEAgLTI4MjQsOCArMjg4Miw2IEBAIFRFU1RfRihG
bG9hdFRlc3QsIExhcmdlRGlmZikgewogVEVTVF9GKEZsb2F0VGVzdCwgSW5maW5pdHkpIHsKICAg
RVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHksIHZhbHVlc18uY2xvc2VfdG9faW5maW5p
dHkpOwogICBFWFBFQ1RfRkxPQVRfRVEoLXZhbHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmNsb3Nl
X3RvX2luZmluaXR5KTsKLSNpZiAhR1RFU1RfT1NfU1lNQklBTgotICAvLyBOb2tpYSdzIFNUTHBv
cnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0cHV0IGluZmluaXR5IG9yIE5hTi4KICAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHksIC12YWx1
ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIi12YWx1ZXNfLmluZmlu
aXR5Iik7CiAKQEAgLTI4MzMsMTQgKzI4ODksMTAgQEAgVEVTVF9GKEZsb2F0VGVzdCwgSW5maW5p
dHkpIHsKICAgLy8gYXJlIG9ubHkgMSBETFAgYXBhcnQuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLm5hbjEpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzXy5uYW4xIik7Ci0jZW5kaWYgIC8vICFHVEVT
VF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgY29tcGFyaW5nIHdpdGggTkFOIGFsd2F5
cyByZXR1cm5zIGZhbHNlLgogVEVTVF9GKEZsb2F0VGVzdCwgTmFOKSB7Ci0jaWYgIUdURVNUX09T
X1NZTUJJQU4KLS8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQg
aW5maW5pdHkgb3IgTmFOLgotCiAgIC8vIEluIEMrK0J1aWxkZXIsIG5hbWVzIHdpdGhpbiBsb2Nh
bCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkKICAgLy8gRVhQRUNUX0ZBVEFMX0ZBSUxVUkUpIGNh
bm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZQogICAvLyBzY29w
aW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxvY2FsIGFsaWFzIGFzIGEgd29ya2Fyb3VuZC4KQEAg
LTI4NTgsNyArMjkxMCw2IEBAIFRFU1RfRihGbG9hdFRlc3QsIE5hTikgewogCiAgIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKEFTU0VSVF9GTE9BVF9FUSh2Lm5hbjEsIHYuaW5maW5pdHkpLAogICAgICAg
ICAgICAgICAgICAgICAgICAidi5pbmZpbml0eSIpOwotI2VuZGlmICAvLyAhR1RFU1RfT1NfU1lN
QklBTgogfQogCiAvLyBUZXN0cyB0aGF0ICpfRkxPQVRfRVEgYXJlIHJlZmxleGl2ZS4KQEAgLTI4
ODIsMjIgKzI5MzMsMTggQEAgVEVTVF9GKEZsb2F0VGVzdCwgQ29tbXV0YXRpdmUpIHsKIFRFU1Rf
RihGbG9hdFRlc3QsIEVYUEVDVF9ORUFSKSB7CiAgIEVYUEVDVF9ORUFSKC0xLjBmLCAtMS4xZiwg
MC4yZik7CiAgIEVYUEVDVF9ORUFSKDIuMGYsIDMuMGYsIDEuMGYpOwotICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLDEuNWYsIDAuMjVmKSwgIC8vIE5PTElOVAorICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLCAxLjVmLCAwLjI1ZiksICAv
LyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNlIGJldHdl
ZW4gMS4wZiBhbmQgMS41ZiBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIndo
aWNoIGV4Y2VlZHMgMC4yNWYiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIu
OTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmly
c3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIGxpbmUuCiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9ORUFS
LgogVEVTVF9GKEZsb2F0VGVzdCwgQVNTRVJUX05FQVIpIHsKICAgQVNTRVJUX05FQVIoLTEuMGYs
IC0xLjFmLCAwLjJmKTsKICAgQVNTRVJUX05FQVIoMi4wZiwgMy4wZiwgMS4wZik7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsMS41ZiwgMC4yNWYpLCAgLy8gTk9MSU5U
CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsIDEuNWYsIDAuMjVmKSwg
IC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVuY2UgYmV0d2Vl
biAxLjBmIGFuZCAxLjVmIGlzIDAuNSwgIgogICAgICAgICAgICAgICAgICAgICAgICAid2hpY2gg
ZXhjZWVkcyAwLjI1ZiIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2MgMi45NS4w
LCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBmaXJzdCBj
b21tYSBpbiB0aGUgcHJldmlvdXMgbGluZS4KIH0KIAogLy8gVGVzdHMgdGhlIGNhc2VzIHdoZXJl
IEZsb2F0TEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTI5MjAsMTAgKzI5NjcsNiBAQCBURVNUX0Yo
RmxvYXRUZXN0LCBGbG9hdExFRmFpbHMpIHsKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0
TEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wZik7CiAgIH0sICIodmFsdWVzXy5mdXJ0
aGVyX2Zyb21fb25lKSA8PSAoMS4wZikiKTsKIAotI2lmICFHVEVTVF9PU19TWU1CSUFOICYmICFk
ZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMgaWYgd2Ug
dHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCi0gIC8vIEMrK0J1aWxkZXIgZ2l2ZXMgYmFk
IHJlc3VsdHMgZm9yIG9yZGVyZWQgY29tcGFyaXNvbnMgaW52b2x2aW5nIE5hTnMKLSAgLy8gZHVl
IHRvIGNvbXBpbGVyIGJ1Z3MuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElO
VAogICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2YWx1ZXNf
LmluZmluaXR5KTsKICAgfSwgIih2YWx1ZXNfLm5hbjEpIDw9ICh2YWx1ZXNfLmluZmluaXR5KSIp
OwpAQCAtMjkzMyw3ICsyOTc2LDYgQEAgVEVTVF9GKEZsb2F0VGVzdCwgRmxvYXRMRUZhaWxzKSB7
CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAogICAgIEFTU0VSVF9QUkVEX0ZP
Uk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2YWx1ZXNfLm5hbjEpOwogICB9LCAiKHZhbHVl
c18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJ
QU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQogfQogCiAvLyBJbnN0YW50aWF0ZXMgRmxvYXRp
bmdQb2ludFRlc3QgZm9yIHRlc3RpbmcgKl9ET1VCTEVfRVEuCkBAIC0yOTk3LDggKzMwMzksNiBA
QCBURVNUX0YoRG91YmxlVGVzdCwgTGFyZ2VEaWZmKSB7CiBURVNUX0YoRG91YmxlVGVzdCwgSW5m
aW5pdHkpIHsKICAgRVhQRUNUX0RPVUJMRV9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLmNs
b3NlX3RvX2luZmluaXR5KTsKICAgRVhQRUNUX0RPVUJMRV9FUSgtdmFsdWVzXy5pbmZpbml0eSwg
LXZhbHVlc18uY2xvc2VfdG9faW5maW5pdHkpOwotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8v
IE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3Ig
TmFOLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18u
aW5maW5pdHksIC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ii12YWx1ZXNfLmluZmluaXR5Iik7CiAKQEAgLTMwMDYsMTggKzMwNDYsMTAgQEAgVEVTVF9GKERv
dWJsZVRlc3QsIEluZmluaXR5KSB7CiAgIC8vIGFyZSBvbmx5IDEgRExQIGFwYXJ0LgogICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18uaW5maW5pdHksIHZh
bHVlc18ubmFuMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZXNfLm5hbjEiKTsK
LSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCBjb21wYXJp
bmcgd2l0aCBOQU4gYWx3YXlzIHJldHVybnMgZmFsc2UuCiBURVNUX0YoRG91YmxlVGVzdCwgTmFO
KSB7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gSW4gQysrQnVpbGRlciwgbmFtZXMgd2l0
aGluIGxvY2FsIGNsYXNzZXMgKHN1Y2ggYXMgdXNlZCBieQotICAvLyBFWFBFQ1RfRkFUQUxfRkFJ
TFVSRSkgY2Fubm90IGJlIHJlc29sdmVkIGFnYWluc3Qgc3RhdGljIG1lbWJlcnMgb2YgdGhlCi0g
IC8vIHNjb3BpbmcgY2xhc3MuICBVc2UgYSBzdGF0aWMgbG9jYWwgYWxpYXMgYXMgYSB3b3JrYXJv
dW5kLgotICAvLyBXZSB1c2UgdGhlIGFzc2lnbm1lbnQgc3ludGF4IHNpbmNlIHNvbWUgY29tcGls
ZXJzLCBsaWtlIFN1biBTdHVkaW8sCi0gIC8vIGRvbid0IGFsbG93IGluaXRpYWxpemluZyByZWZl
cmVuY2VzIHVzaW5nIGNvbnN0cnVjdGlvbiBzeW50YXgKLSAgLy8gKHBhcmVudGhlc2VzKS4KICAg
c3RhdGljIGNvbnN0IERvdWJsZVRlc3Q6OlRlc3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1ZXNfOwog
CiAgIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5p
dHkgb3IgTmFOLgpAQCAtMzAyNywxNyArMzA1OSwxMyBAQCBURVNUX0YoRG91YmxlVGVzdCwgTmFO
KSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEoMS4wLCB2Lm5h
bjEpLCAidi5uYW4xIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ET1VCTEVfRVEo
di5uYW4xLCB2LmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgInYuaW5maW5pdHki
KTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCAqX0RP
VUJMRV9FUSBhcmUgcmVmbGV4aXZlLgogVEVTVF9GKERvdWJsZVRlc3QsIFJlZmxleGl2ZSkgewog
ICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgMC4wKTsKICAgRVhQRUNUX0RPVUJMRV9FUSgxLjAsIDEu
MCk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMg
aWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCiAgIEFTU0VSVF9ET1VCTEVfRVEo
dmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5pbmZpbml0eSk7Ci0jZW5kaWYgIC8vICFHVEVTVF9P
U19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgKl9ET1VCTEVfRVEgYXJlIGNvbW11dGF0aXZl
LgpAQCAtMzA1Nyw4ICszMDg1LDEzIEBAIFRFU1RfRihEb3VibGVUZXN0LCBFWFBFQ1RfTkVBUikg
ewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjAsIDEuNSwgMC4yNSks
ICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNlIGJl
dHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIu
OTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmly
c3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4KKyAgLy8gQXQgdGhpcyBtYWduaXR1
ZGUgYWRqYWNlbnQgZG91YmxlcyBhcmUgNTEyLjAgYXBhcnQsIHNvIHRoaXMgdHJpZ2dlcnMgYQor
ICAvLyBzbGlnaHRseSBkaWZmZXJlbnQgZmFpbHVyZSByZXBvcnRpbmcgcGF0aC4KKyAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoCisgICAgICBFWFBFQ1RfTkVBUig0LjI5MzQzMTE0MTYyMzQxMTJl
KzE4LCA0LjI5MzQzMTE0MTYyMzQxMDdlKzE4LCAxLjApLAorICAgICAgIlRoZSBhYnNfZXJyb3Ig
cGFyYW1ldGVyIDEuMCBldmFsdWF0ZXMgdG8gMSB3aGljaCBpcyBzbWFsbGVyIHRoYW4gdGhlICIK
KyAgICAgICJtaW5pbXVtIGRpc3RhbmNlIGJldHdlZW4gZG91YmxlcyBmb3IgbnVtYmVycyBvZiB0
aGlzIG1hZ25pdHVkZSB3aGljaCBpcyAiCisgICAgICAiNTEyIik7CiB9CiAKIC8vIFRlc3RzIEFT
U0VSVF9ORUFSLgpAQCAtMzA2OCw4ICszMTAxLDYgQEAgVEVTVF9GKERvdWJsZVRlc3QsIEFTU0VS
VF9ORUFSKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMCwgMS41LCAw
LjI1KSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiAxLjAgYW5kIDEuNSBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAgICAgIndo
aWNoIGV4Y2VlZHMgMC4yNSIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2MgMi45
NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBmaXJz
dCBjb21tYSBpbiB0aGUgcHJldmlvdXMgc3RhdGVtZW50LgogfQogCiAvLyBUZXN0cyB0aGUgY2Fz
ZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTMwOTIsMTAgKzMxMjMsNiBA
QCBURVNUX0YoRG91YmxlVGVzdCwgRG91YmxlTEVGYWlscykgewogICAgIEVYUEVDVF9QUkVEX0ZP
Uk1BVDIoRG91YmxlTEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wKTsKICAgfSwgIih2
YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpIDw9ICgxLjApIik7CiAKLSNpZiAhR1RFU1RfT1NfU1lN
QklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFz
aGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICAvLyBDKytCdWlsZGVy
IGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRlcmVkIGNvbXBhcmlzb25zIGludm9sdmluZyBOYU5z
Ci0gIC8vIGR1ZSB0byBjb21waWxlciBidWdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5h
bjEsIHZhbHVlc18uaW5maW5pdHkpOwogICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18u
aW5maW5pdHkpIik7CkBAIC0zMTA1LDcgKzMxMzIsNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgRG91
YmxlTEVGYWlscykgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKICAgICBB
U1NFUlRfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18ubmFuMSk7
CiAgIH0sICIodmFsdWVzXy5uYW4xKSA8PSAodmFsdWVzXy5uYW4xKSIpOwotI2VuZGlmICAvLyAh
R1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCiB9CiAKIApAQCAtMzEy
NiwyOCArMzE1MiwyOCBAQCBURVNUKERpc2FibGVkVGVzdCwgTm90RElTQUJMRURfVGVzdFNob3Vs
ZFJ1bikgewogCiAvLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIERJU0FCTEVE
Xy4KIC8vIFNob3VsZCBub3QgcnVuLgotVEVTVChESVNBQkxFRF9UZXN0Q2FzZSwgVGVzdFNob3Vs
ZE5vdFJ1bikgeworVEVTVChESVNBQkxFRF9UZXN0U3VpdGUsIFRlc3RTaG91bGROb3RSdW4pIHsK
ICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IFRlc3QgaW4gZGlzYWJsZWQgdGVzdCBj
YXNlIHNob3VsZCBub3QgYmUgcnVuLiI7CiB9CiAKIC8vIEEgdGVzdCBjYXNlIGFuZCB0ZXN0IHdo
b3NlIG5hbWVzIHN0YXJ0IHdpdGggRElTQUJMRURfLgogLy8gU2hvdWxkIG5vdCBydW4uCi1URVNU
KERJU0FCTEVEX1Rlc3RDYXNlLCBESVNBQkxFRF9UZXN0U2hvdWxkTm90UnVuKSB7CitURVNUKERJ
U0FCTEVEX1Rlc3RTdWl0ZSwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkg
PDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogVGVzdCBpbiBkaXNhYmxlZCB0ZXN0IGNhc2Ugc2hvdWxk
IG5vdCBiZSBydW4uIjsKIH0KIAotLy8gQ2hlY2sgdGhhdCB3aGVuIGFsbCB0ZXN0cyBpbiBhIHRl
c3QgY2FzZSBhcmUgZGlzYWJsZWQsIFNldFVwVGVzdENhc2UoKSBhbmQKLS8vIFRlYXJEb3duVGVz
dENhc2UoKSBhcmUgbm90IGNhbGxlZC4KKy8vIENoZWNrIHRoYXQgd2hlbiBhbGwgdGVzdHMgaW4g
YSB0ZXN0IGNhc2UgYXJlIGRpc2FibGVkLCBTZXRVcFRlc3RTdWl0ZSgpIGFuZAorLy8gVGVhckRv
d25UZXN0U3VpdGUoKSBhcmUgbm90IGNhbGxlZC4KIGNsYXNzIERpc2FibGVkVGVzdHNUZXN0IDog
cHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgp
IHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8ICJVbmV4
cGVjdGVkIGZhaWx1cmU6IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIKLSAgICAg
ICAgICAgICAgIlNldFVwVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOworICAgICAg
ICAgICAgICAiU2V0VXBUZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwogICB9CiAK
LSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRv
d25UZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IEFsbCB0
ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIKLSAgICAgICAgICAgICAgIlRlYXJEb3duVGVz
dENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOworICAgICAgICAgICAgICAiVGVhckRvd25U
ZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwogICB9CiB9OwogCkBAIC0zMTYxLDE0
ICszMTg3LDEyIEBAIFRFU1RfRihEaXNhYmxlZFRlc3RzVGVzdCwgRElTQUJMRURfVGVzdFNob3Vs
ZE5vdFJ1bl8yKSB7CiAKIC8vIFRlc3RzIHRoYXQgZGlzYWJsZWQgdHlwZWQgdGVzdHMgYXJlbid0
IHJ1bi4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgogY2xhc3MgVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogdHlwZWRlZiB0ZXN0aW5n
OjpUeXBlczxpbnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKFR5cGVk
VGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBOdW1lcmlj
VHlwZXMpOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgRElTQUJMRURfU2hvdWxkTm90UnVuKSB7
CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNo
b3VsZCBub3QgcnVuLiI7CkBAIC0zMTc4LDQ5ICszMjAyLDQzIEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogY2xhc3MgRElTQUJMRURfVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAotVFlQ
RURfVEVTVF9DQVNFKERJU0FCTEVEX1R5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RF
U1RfU1VJVEUoRElTQUJMRURfVHlwZWRUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNU
KERJU0FCTEVEX1R5cGVkVGVzdCwgU2hvdWxkTm90UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBl
Y3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7CiB9CiAK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogLy8gVGVzdHMgdGhhdCBkaXNhYmxl
ZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlbid0IHJ1bi4KIAotI2lmIEdURVNUX0hBU19U
WVBFRF9URVNUX1AKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQIDog
cHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7CitUWVBF
RF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQLCBE
SVNBQkxFRF9TaG91bGROb3RSdW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6
ICIKICAgICAgICAgIDw8ICJEaXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzaG91bGQg
bm90IHJ1bi4iOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQLCBE
SVNBQkxFRF9TaG91bGROb3RSdW4pOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVk
VGVzdFAsIERJU0FCTEVEX1Nob3VsZE5vdFJ1bik7CiAKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1Rf
Q0FTRV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9TVUlURV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIERJU0FCTEVEX1R5cGVkVGVzdFAgOiBwdWJsaWMgVGVzdCB7CiB9
OwogCi1UWVBFRF9URVNUX0NBU0VfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKK1RZUEVEX1RFU1Rf
U1VJVEVfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKIAogVFlQRURfVEVTVF9QKERJU0FCTEVEX1R5
cGVkVGVzdFAsIFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVy
ZTogIgogICAgICAgICAgPDwgIkRpc2FibGVkIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHNob3Vs
ZCBub3QgcnVuLiI7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKERJU0FCTEVEX1R5
cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9Q
KE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QKERJU0FCTEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7CiAKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlU
RV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiAvLyBUZXN0cyB0
aGF0IGFzc2VydGlvbiBtYWNyb3MgZXZhbHVhdGUgdGhlaXIgYXJndW1lbnRzIGV4YWN0bHkgb25j
ZS4KIApAQCAtMzMyNyw5ICszMzQ1LDI2IEBAIFRFU1RfRihTaW5nbGVFdmFsdWF0aW9uVGVzdCwg
T3RoZXJDYXNlcykgewogCiAjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAorI2lmIEdURVNUX0hB
U19SVFRJCisKKyNpZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBFUlJPUl9ERVNDICJjbGFzcyBzdGQ6
OnJ1bnRpbWVfZXJyb3IiCisjZWxzZQorI2RlZmluZSBFUlJPUl9ERVNDICJzdGQ6OnJ1bnRpbWVf
ZXJyb3IiCisjZW5kaWYKKworI2Vsc2UgIC8vIEdURVNUX0hBU19SVFRJCisKKyNkZWZpbmUgRVJS
T1JfREVTQyAiYW4gc3RkOjpleGNlcHRpb24tZGVyaXZlZCBlcnJvciIKKworI2VuZGlmICAvLyBH
VEVTVF9IQVNfUlRUSQorCiB2b2lkIFRocm93QW5JbnRlZ2VyKCkgewogICB0aHJvdyAxOwogfQor
dm9pZCBUaHJvd1J1bnRpbWVFcnJvcihjb25zdCBjaGFyKiB3aGF0KSB7CisgIHRocm93IHN0ZDo6
cnVudGltZV9lcnJvcih3aGF0KTsKK30KIAogLy8gVGVzdHMgdGhhdCBhc3NlcnRpb24gYXJndW1l
bnRzIGFyZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgogVEVTVF9GKFNpbmdsZUV2YWx1YXRpb25U
ZXN0LCBFeGNlcHRpb25UZXN0cykgewpAQCAtMzM0NywzMSArMzM4MiwzOCBAQCBURVNUX0YoU2lu
Z2xlRXZhbHVhdGlvblRlc3QsIEV4Y2VwdGlvblRlc3RzKSB7CiAgIH0sIGJvb2wpLCAidGhyb3dz
IGEgZGlmZmVyZW50IHR5cGUiKTsKICAgRVhQRUNUX0VRKDIsIGFfKTsKIAorICAvLyBmYWlsZWQg
RVhQRUNUX1RIUk9XLCB0aHJvd3MgcnVudGltZSBlcnJvcgorICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRShFWFBFQ1RfVEhST1coeyAgLy8gTk9MSU5UCisgICAgYV8rKzsKKyAgICBUaHJvd1J1bnRp
bWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpOworICB9LCBib29sKSwgInRocm93cyAiIEVSUk9SX0RF
U0MgIiB3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiIik7CisgIEVYUEVDVF9FUSgz
LCBhXyk7CisKICAgLy8gZmFpbGVkIEVYUEVDVF9USFJPVywgdGhyb3dzIG5vdGhpbmcKICAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKGFfKyssIGJvb2wpLCAidGhyb3dzIG5v
dGhpbmciKTsKLSAgRVhQRUNUX0VRKDMsIGFfKTsKKyAgRVhQRUNUX0VRKDQsIGFfKTsKIAogICAv
LyBzdWNjZXNzZnVsIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9fVEhST1coYV8rKyk7Ci0g
IEVYUEVDVF9FUSg0LCBhXyk7CisgIEVYUEVDVF9FUSg1LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVY
UEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTk9fVEhST1co
eyAgLy8gTk9MSU5UCiAgICAgYV8rKzsKICAgICBUaHJvd0FuSW50ZWdlcigpOwogICB9KSwgIml0
IHRocm93cyIpOwotICBFWFBFQ1RfRVEoNSwgYV8pOworICBFWFBFQ1RfRVEoNiwgYV8pOwogCiAg
IC8vIHN1Y2Nlc3NmdWwgRVhQRUNUX0FOWV9USFJPVwogICBFWFBFQ1RfQU5ZX1RIUk9XKHsgIC8v
IE5PTElOVAogICAgIGFfKys7CiAgICAgVGhyb3dBbkludGVnZXIoKTsKICAgfSk7Ci0gIEVYUEVD
VF9FUSg2LCBhXyk7CisgIEVYUEVDVF9FUSg3LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVYUEVDVF9B
TllfVEhST1cKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhhXysr
KSwgIml0IGRvZXNuJ3QiKTsKLSAgRVhQRUNUX0VRKDcsIGFfKTsKKyAgRVhQRUNUX0VRKDgsIGFf
KTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMzQ4MSw3ICszNTIz
LDcgQEAgc3RkOjpzdHJpbmcgRWRpdHNUb1N0cmluZyhjb25zdCBzdGQ6OnZlY3RvcjxFZGl0VHlw
ZT4mIGVkaXRzKSB7CiBzdGQ6OnZlY3RvcjxzaXplX3Q+IENoYXJzVG9JbmRpY2VzKGNvbnN0IHN0
ZDo6c3RyaW5nJiBzdHIpIHsKICAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBvdXQ7CiAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc3RyLnNpemUoKTsgKytpKSB7Ci0gICAgb3V0LnB1c2hfYmFjayhzdHJb
aV0pOworICAgIG91dC5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8c2l6ZV90PihzdHJbaV0pKTsKICAg
fQogICByZXR1cm4gb3V0OwogfQpAQCAtMzQ5NCw3ICszNTM2LDcgQEAgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IENoYXJzVG9MaW5lcyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyKSB7CiAgIHJldHVy
biBvdXQ7CiB9CiAKLVRFU1QoRWRpdERpc3RhbmNlLCBUZXN0Q2FzZXMpIHsKK1RFU1QoRWRpdERp
c3RhbmNlLCBUZXN0U3VpdGVzKSB7CiAgIHN0cnVjdCBDYXNlIHsKICAgICBpbnQgbGluZTsKICAg
ICBjb25zdCBjaGFyKiBsZWZ0OwpAQCAtMzcxMywyMiArMzc1NSwxNSBAQCBURVNUKEFzc2VydGlv
blRlc3QsIEFTU0VSVF9FUSkgewogfQogCiAvLyBUZXN0cyBBU1NFUlRfRVEoTlVMTCwgcG9pbnRl
cikuCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAogVEVTVChBc3NlcnRpb25UZXN0LCBBU1NF
UlRfRVFfTlVMTCkgewogICAvLyBBIHN1Y2Nlc3MuCi0gIGNvbnN0IGNoYXIqIHAgPSBOVUxMOwot
ICAvLyBTb21lIG9sZGVyIEdDQyB2ZXJzaW9ucyBtYXkgaXNzdWUgYSBzcHVyaW91cyB3YXJuaW5n
IGluIHRoaXMgb3IgdGhlIG5leHQKLSAgLy8gYXNzZXJ0aW9uIHN0YXRlbWVudC4gVGhpcyB3YXJu
aW5nIHNob3VsZCBub3QgYmUgc3VwcHJlc3NlZCB3aXRoCi0gIC8vIHN0YXRpY19jYXN0IHNpbmNl
IHRoZSB0ZXN0IHZlcmlmaWVzIHRoZSBhYmlsaXR5IHRvIHVzZSBiYXJlIE5VTEwgYXMgdGhlCi0g
IC8vIGV4cGVjdGVkIHBhcmFtZXRlciB0byB0aGUgbWFjcm8uCi0gIEFTU0VSVF9FUShOVUxMLCBw
KTsKKyAgY29uc3QgY2hhciogcCA9IG51bGxwdHI7CisgIEFTU0VSVF9FUShudWxscHRyLCBwKTsK
IAogICAvLyBBIGZhaWx1cmUuCiAgIHN0YXRpYyBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEFTU0VSVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICIgICZu
XG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUShudWxs
cHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0NB
Tl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgQVNTRVJUX0VRKDAsIG5vbl9wb2ludGVyKS4gIFNp
bmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2ludGVyIGJ5
IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTM3OTgsNiArMzgzMywxMiBA
QCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9USFJPVykgewogICAgICAgQVNTRVJUX1RIUk9X
KFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdl
cigpIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgogICAgICAgIiAgQWN0dWFs
OiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUo
CisgICAgICBBU1NFUlRfVEhST1coVGhyb3dSdW50aW1lRXJyb3IoIkEgZGVzY3JpcHRpb24iKSwg
c3RkOjpsb2dpY19lcnJvciksCisgICAgICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwi
QSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAidGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlIHN0
ZDo6bG9naWNfZXJyb3IuXG4gICIKKyAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RF
U0MgIiAiCisgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRpb25cIi4iKTsKICMg
ZW5kaWYKIAogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgKQEAgLTM4MTIsNiArMzg1MywxMSBAQCBU
RVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9OT19USFJPVykgewogICBFWFBFQ1RfRkFUQUxfRkFJ
TFVSRShBU1NFUlRfTk9fVEhST1coVGhyb3dBbkludGVnZXIoKSksCiAgICAgICAgICAgICAgICAg
ICAgICAgICJFeHBlY3RlZDogVGhyb3dBbkludGVnZXIoKSBkb2Vzbid0IHRocm93IGFuIGV4Y2Vw
dGlvbi4iCiAgICAgICAgICAgICAgICAgICAgICAgICJcbiAgQWN0dWFsOiBpdCB0aHJvd3MuIik7
CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9OT19USFJPVyhUaHJvd1J1bnRpbWVFcnJv
cigiQSBkZXNjcmlwdGlvbiIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBU
aHJvd1J1bnRpbWVFcnJvcihcIkEgZGVzY3JpcHRpb25cIikgIgorICAgICAgICAgICAgICAgICAg
ICAgICAiZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4gICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIkFjdHVhbDogaXQgdGhyb3dzICIgRVJST1JfREVTQyAiICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIndpdGggZGVzY3JpcHRpb24gXCJBIGRlc2NyaXB0aW9uXCIuIik7CiB9CiAKIC8v
IFRlc3RzIEFTU0VSVF9BTllfVEhST1cuCkBAIC0zOTE5LDExICszOTY1LDggQEAgVEVTVChBc3Nl
cnRpb25UZXN0LCBOYW1lZEVudW0pIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X0VRKGtFMSwga0UyKSwgIldoaWNoIGlzOiAxIik7CiB9CiAKLS8vIFRoZSB2ZXJzaW9uIG9mIGdj
YyB1c2VkIGluIFhDb2RlIDIuMiBoYXMgYSBidWcgYW5kIGRvZXNuJ3QgYWxsb3cKLS8vIGFub255
bW91cyBlbnVtcyBpbiBhc3NlcnRpb25zLiAgVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdGVzdCBp
cyBub3QKLS8vIGRvbmUgb24gTWFjLgotLy8gU3VuIFN0dWRpbyBhbmQgSFAgYUNDIGFsc28gcmVq
ZWN0IHRoaXMgY29kZS4KLSNpZiAhR1RFU1RfT1NfTUFDICYmICFkZWZpbmVkKF9fU1VOUFJPX0ND
KSAmJiAhZGVmaW5lZChfX0hQX2FDQykKKy8vIFN1biBTdHVkaW8gYW5kIEhQIGFDQzJyZWplY3Qg
dGhpcyBjb2RlLgorI2lmICFkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAhZGVmaW5lZChfX0hQX2FD
QykKIAogLy8gVGVzdHMgdXNpbmcgYXNzZXJ0aW9ucyB3aXRoIGFub255bW91cyBlbnVtcy4KIGVu
dW0gewpAQCAtNDA4NCwxMSArNDEyNywxMyBAQCBURVNUKEhSRVNVTFRBc3NlcnRpb25UZXN0LCBT
dHJlYW1pbmcpIHsKIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCiAKLSNpZmRlZiBfX0JP
UkxBTkRDX18KLS8vIFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5cyB0cnVl
IiwgIlVucmVhY2hhYmxlIGNvZGUiCi0jIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2MgLXctcmNo
CisvLyBUaGUgZm9sbG93aW5nIGNvZGUgaW50ZW50aW9uYWxseSB0ZXN0cyBhIHN1Ym9wdGltYWwg
c3ludGF4LgorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkYW5nbGluZy1lbHNlIgorI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VtcHR5LWJvZHkiCisjcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XcHJhZ21hcyIKICNlbmRpZgotCiAvLyBUZXN0cyB0aGF0IHRoZSBhc3Nl
cnRpb24gbWFjcm9zIGJlaGF2ZSBsaWtlIHNpbmdsZSBzdGF0ZW1lbnRzLgogVEVTVChBc3NlcnRp
b25TeW50YXhUZXN0LCBCYXNpY0Fzc2VydGlvbnNCZWhhdmVzTGlrZVNpbmdsZVN0YXRlbWVudCkg
ewogICBpZiAoQWx3YXlzRmFsc2UoKSkKQEAgLTQxMDgsNiArNDE1Myw5IEBAIFRFU1QoQXNzZXJ0
aW9uU3ludGF4VGVzdCwgQmFzaWNBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQp
IHsKICAgZWxzZQogICAgIEVYUEVDVF9HVCgzLCAyKSA8PCAiIjsKIH0KKyNpZmRlZiBfX0dOVUNf
XworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogCiAjaWYgR1RFU1RfSEFTX0VY
Q0VQVElPTlMKIC8vIFRlc3RzIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwgbm90IGNvbXBsYWluIGFi
b3V0IHVucmVhY2hhYmxlIGNvZGUgaW4gdGhlCkBAIC00MTI0LDYgKzQxNzIsMTcgQEAgVEVTVChF
eHBlY3RUaHJvd1Rlc3QsIERvZXNOb3RHZW5lcmF0ZVVucmVhY2hhYmxlQ29kZVdhcm5pbmcpIHsK
ICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhuKyspLCAiIik7CiB9
CiAKK1RFU1QoRXhwZWN0VGhyb3dUZXN0LCBEb2VzTm90R2VuZXJhdGVEdXBsaWNhdGVDYXRjaENs
YXVzZVdhcm5pbmcpIHsKKyAgRVhQRUNUX1RIUk9XKHRocm93IHN0ZDo6ZXhjZXB0aW9uKCksIHN0
ZDo6ZXhjZXB0aW9uKTsKK30KKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkg
dGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xp
bmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5Igor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1Qo
QXNzZXJ0aW9uU3ludGF4VGVzdCwgRXhjZXB0aW9uQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2luZ2xl
U3RhdGVtZW50KSB7CiAgIGlmIChBbHdheXNGYWxzZSgpKQogICAgIEVYUEVDVF9USFJPVyhUaHJv
d05vdGhpbmcoKSwgYm9vbCk7CkBAIC00MTQ5LDggKzQyMDgsMTkgQEAgVEVTVChBc3NlcnRpb25T
eW50YXhUZXN0LCBFeGNlcHRpb25Bc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQp
IHsKICAgZWxzZQogICAgIDsgIC8vIE5PTElOVAogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCisKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQ
VElPTlMKIAorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJv
cHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1QoQXNzZXJ0aW9uU3lu
dGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1l
bnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCiAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUo
RkFJTCgpKSA8PCAiVGhpcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0ZWQuICIKQEAgLTQxNzMsNiAr
NDI0Myw5IEBAIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3NlcnRp
b25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIEFTU0VSVF9OT19G
QVRBTF9GQUlMVVJFKFNVQ0NFRUQoKSk7CiB9CisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCB0aGUgYXNzZXJ0aW9uIG1h
Y3JvcyB3b3JrIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KIFRFU1QoQXNzZXJ0aW9uU3lu
dGF4VGVzdCwgV29ya3NXaXRoU3dpdGNoKSB7CkBAIC00MzAyLDEwICs0Mzc1LDggQEAgVEVTVChB
c3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFTU0VSVF9TVFIpIHsKIFRFU1QoQXNzZXJ0aW9uV2l0
aE1lc3NhZ2VUZXN0LCBBU1NFUlRfRkxPQVRJTkcpIHsKICAgQVNTRVJUX0ZMT0FUX0VRKDEsIDEp
IDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9ET1VCTEVfRVEoMSwgMSkgPDwg
IlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05F
QVIoMSwxLjIsIDAuMSkgPDwgIkV4cGVjdCBmYWlsdXJlLiIsICAvLyBOT0xJTlQKKyAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05FQVIoMSwgMS4yLCAwLjEpIDw8ICJFeHBlY3QgZmFpbHVy
ZS4iLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3QgZmFpbHVyZS4i
KTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50
ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHBy
ZXZpb3VzIHN0YXRlbWVudC4KIH0KIAogLy8gVGVzdHMgdXNpbmcgQVNTRVJUX0ZBTFNFIHdpdGgg
YSBzdHJlYW1lZCBtZXNzYWdlLgpAQCAtNDMzMiwxMCArNDQwMywxMiBAQCBURVNUKEFzc2VydGlv
bldpdGhNZXNzYWdlVGVzdCwgU1VDQ0VFRCkgewogVEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRl
c3QsIEFTU0VSVF9UUlVFKSB7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8ICJUaGlzIHNob3VsZCBz
dWNjZWVkLiI7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8IHRydWU7Ci0gIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9UUlVFKGZhbHNlKSA8PCBzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyICo+KE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19j
YXN0PGNoYXIgKj4oTlVMTCk7Ci0gIH0sICIobnVsbCkobnVsbCkiKTsKKyAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoCisgICAgICB7ICAvLyBOT0xJTlQKKyAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2Up
IDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpOworICAgICAgfSwKKyAgICAg
ICIobnVsbCkobnVsbCkiKTsKIH0KIAogI2lmIEdURVNUX09TX1dJTkRPV1MKQEAgLTQ0NDAsMjMg
KzQ1MTMsMTYgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfRVFfRG91YmxlKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICI1LjEiKTsKIH0KIAotI2lmIEdURVNUX0NBTl9DT01QQVJFX05V
TEwKIC8vIFRlc3RzIEVYUEVDVF9FUShOVUxMLCBwb2ludGVyKS4KIFRFU1QoRXhwZWN0VGVzdCwg
RVhQRUNUX0VRX05VTEwpIHsKICAgLy8gQSBzdWNjZXNzLgotICBjb25zdCBjaGFyKiBwID0gTlVM
TDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVyc2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlvdXMgd2Fy
bmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0gIC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQuIFRoaXMg
d2FybmluZyBzaG91bGQgbm90IGJlIHN1cHByZXNzZWQgd2l0aAotICAvLyBzdGF0aWNfY2FzdCBz
aW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUgYWJpbGl0eSB0byB1c2UgYmFyZSBOVUxMIGFzIHRo
ZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIgdG8gdGhlIG1hY3JvLgotICBFWFBFQ1RfRVEoTlVM
TCwgcCk7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEobnVsbHB0ciwg
cCk7CiAKICAgLy8gQSBmYWlsdXJlLgogICBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIg
ICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9F
UShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdU
RVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgRVhQRUNUX0VRKDAsIG5vbl9wb2ludGVy
KS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2lu
dGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTQ0ODIsNyArNDU0
OCw3IEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05FKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhY3R1YWw6ICdhJyAoOTcsIDB4NjEpIHZzICdhJyAoOTcsIDB4NjEpIik7CiAgIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORSgyLCAyKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjIiKTsKLSAgY2hhciogY29uc3QgcDAgPSBOVUxMOworICBjaGFyKiBjb25zdCBw
MCA9IG51bGxwdHI7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORShwMCwgcDAp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAicDAiKTsKICAgLy8gT25seSB3YXkgdG8gZ2V0
IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CkBAIC00NTQxLDYgKzQ2MDcs
MTIgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfVEhST1cpIHsKICAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoRVhQRUNUX1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93QW5JbnRlZ2VyKCkgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBvZiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIGJvb2wuXG4gIEFj
dHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50IHR5cGUuIik7CisgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsb2dpY19lcnJvciks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dSdW50aW1lRXJyb3Io
XCJBIGRlc2NyaXB0aW9uXCIpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRocm93cyBh
biBleGNlcHRpb24gb2YgdHlwZSBzdGQ6OmxvZ2ljX2Vycm9yLlxuICAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RFU0MgIiAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiLiIp
OwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKICAgICAgIEVYUEVDVF9USFJPVyhUaHJvd05v
dGhpbmcoKSwgYm9vbCksCiAgICAgICAiRXhwZWN0ZWQ6IFRocm93Tm90aGluZygpIHRocm93cyBh
biBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgpAQCAtNDU1Myw2ICs0NjI1LDExIEBAIFRFU1Qo
RXhwZWN0VGVzdCwgRVhQRUNUX05PX1RIUk9XKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KEVYUEVDVF9OT19USFJPVyhUaHJvd0FuSW50ZWdlcigpKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIGRvZXNuJ3QgdGhyb3cgYW4gIgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uLlxuICBBY3R1YWw6IGl0IHRocm93cy4i
KTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05PX1RIUk9XKFRocm93UnVudGlt
ZUVycm9yKCJBIGRlc2NyaXB0aW9uIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhw
ZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICJkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiAgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiQWN0dWFsOiBpdCB0aHJvd3MgIiBFUlJPUl9ERVNDICIgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRp
b25cIi4iKTsKIH0KIAogLy8gVGVzdHMgRVhQRUNUX0FOWV9USFJPVy4KQEAgLTQ1OTAsNyArNDY2
Nyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgUG9pbnRlcikgewogCiAvLyBUZXN0
cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgbm9uLWNoYXIgcG9pbnRlci4K
IFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgTnVsbFBvaW50ZXIpIHsKLSAgaW50KiBwID0g
TlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLCBTdHJl
YW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2MDEsNyArNDY3OCw3IEBAIFRF
U1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgQ1N0cmluZykgewogCiAvLyBUZXN0cyB1c2luZyBT
dHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgQyBzdHJpbmcuCiBURVNUKFN0cmVhbWFibGVU
b1N0cmluZ1Rlc3QsIE51bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAgPSBOVUxMOworICBjaGFyKiBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLCBTdHJlYW1hYmxlVG9TdHJpbmco
cCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2NDYsOCArNDcyMyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRl
c3QsIGludCkgewogLy8gaW1wbGVtZW50ZWQgYSB3b3JrYXJvdW5kIChzdWJzdGl0dXRpbmcgIihu
dWxsKSIgZm9yIE5VTEwpLiAgVGhpcwogLy8gdGVzdHMgd2hldGhlciB0aGUgd29ya2Fyb3VuZCB3
b3Jrcy4KIFRFU1QoU3RyZWFtYWJsZVRlc3QsIE51bGxDaGFyUHRyKSB7Ci0gIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKEZBSUwoKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oTlVMTCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICIobnVsbCkiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoRkFJ
TCgpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgIihudWxsKSIpOwogfQog
CiAvLyBUZXN0cyB0aGF0IGJhc2ljIElPIG1hbmlwdWxhdG9ycyAoZW5kbCwgZW5kcywgYW5kIGZs
dXNoKSBjYW4gYmUKQEAgLTQ2OTgsNiArNDc3NCwxOSBAQCBURVNUKE1hY3JvVGVzdCwgRkFJTCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwgZmFpbHVyZS4iKTsKIH0KIAor
Ly8gVGVzdHMgR1RFU1RfRkFJTF9BVC4KK1RFU1QoTWFjcm9UZXN0LCBHVEVTVF9GQUlMX0FUKSB7
CisgIC8vIFZlcmlmaWVzIHRoYXQgR1RFU1RfRkFJTF9BVCBkb2VzIGdlbmVyYXRlIGEgZmF0YWwg
ZmFpbHVyZSBhbmQKKyAgLy8gdGhlIGZhaWx1cmUgbWVzc2FnZSBjb250YWlucyB0aGUgdXNlci1z
dHJlYW1lZCBwYXJ0LgorICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9GQUlMX0FUKCJmb28u
Y2MiLCA0MikgPDwgIldyb25nISIsICJXcm9uZyEiKTsKKworICAvLyBWZXJpZmllcyB0aGF0IHRo
ZSB1c2VyLXN0cmVhbWVkIHBhcnQgaXMgb3B0aW9uYWwuCisgIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KEdURVNUX0ZBSUxfQVQoImZvby5jYyIsIDQyKSwgIkZhaWxlZCIpOworCisgIC8vIFNlZSB0aGUg
QUREX0ZBSUxfQVQgdGVzdCBhYm92ZSB0byBzZWUgaG93IHdlIHRlc3QgdGhhdCB0aGUgZmFpbHVy
ZSBtZXNzYWdlCisgIC8vIGNvbnRhaW5zIHRoZSByaWdodCBmaWxlbmFtZSBhbmQgbGluZSBudW1i
ZXIgLS0gdGhlIHNhbWUgYXBwbGllcyBoZXJlLgorfQorCiAvLyBUZXN0cyBTVUNDRUVECiBURVNU
KE1hY3JvVGVzdCwgU1VDQ0VFRCkgewogICBTVUNDRUVEKCk7CkBAIC00ODMyLDc1ICs0OTIxLDkg
QEAgVEVTVChFcUFzc2VydGlvblRlc3QsIFN0ZFdpZGVTdHJpbmcpIHsKIAogI2VuZGlmICAvLyBH
VEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBU
ZXN0cyB1c2luZyA6OnN0cmluZyB2YWx1ZXMgaW4ge0VYUEVDVHxBU1NFUlR9X0VRLgotVEVTVChF
cUFzc2VydGlvblRlc3QsIEdsb2JhbFN0cmluZykgewotICAvLyBDb21wYXJlcyBhIGNvbnN0IGNo
YXIqIHRvIGEgOjpzdHJpbmcgdGhhdCBoYXMgaWRlbnRpY2FsIGNvbnRlbnQuCi0gIEVYUEVDVF9F
USgiVGVzdCIsIDo6c3RyaW5nKCJUZXN0IikpOwotCi0gIC8vIENvbXBhcmVzIHR3byBpZGVudGlj
YWwgOjpzdHJpbmdzLgotICBjb25zdCA6OnN0cmluZyBzdHIxKCJBICogaW4gdGhlIG1pZGRsZSIp
OwotICBjb25zdCA6OnN0cmluZyBzdHIyKHN0cjEpOwotICBBU1NFUlRfRVEoc3RyMSwgc3RyMik7
Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmluZyB0byBhIGNvbnN0IGNoYXIqIHRoYXQgaGFzIGRp
ZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoOjpz
dHJpbmcoIlRlc3QiKSwgInRlc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Qi
KTsKLQotICAvLyBDb21wYXJlcyB0d28gOjpzdHJpbmdzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgY29u
dGVudHMsIG9uZSBvZiB3aGljaAotICAvLyBoYXZpbmcgYSBOVUwgY2hhcmFjdGVyIGluIHRoZSBt
aWRkbGUuCi0gIDo6c3RyaW5nIHN0cjMoc3RyMSk7Ci0gIHN0cjMuYXQoMikgPSAnXDAnOwotICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoc3RyMSwgc3RyMyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdHIzIik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmluZyB0byBh
IGNoYXIqIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfRkFUQUxfRkFJTFVS
RSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfRVEoOjpzdHJpbmcoImJhciIpLCBjb25zdF9jYXN0
PGNoYXIqPigiZm9vIikpOwotICB9LCAiIik7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0vLyBUZXN0cyB1
c2luZyA6OndzdHJpbmcgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3Nl
cnRpb25UZXN0LCBHbG9iYWxXaWRlU3RyaW5nKSB7Ci0gIC8vIENvbXBhcmVzIHR3byBpZGVudGlj
YWwgOjp3c3RyaW5ncy4KLSAgc3RhdGljIGNvbnN0IDo6d3N0cmluZyB3c3RyMShMIkEgKiBpbiB0
aGUgbWlkZGxlIik7Ci0gIHN0YXRpYyBjb25zdCA6OndzdHJpbmcgd3N0cjIod3N0cjEpOwotICBF
WFBFQ1RfRVEod3N0cjEsIHdzdHIyKTsKLQotICAvLyBDb21wYXJlcyBhIGNvbnN0IHdjaGFyX3Qq
IHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGlkZW50aWNhbCBjb250ZW50LgotICBjb25zdCB3Y2hh
cl90IGtUZXN0WDgxMTlbXSA9IHsgJ1QnLCAnZScsICdzJywgJ3QnLCAweDgxMTksICdcMCcgfTsK
LSAgQVNTRVJUX0VRKGtUZXN0WDgxMTksIDo6d3N0cmluZyhrVGVzdFg4MTE5KSk7Ci0KLSAgLy8g
Q29tcGFyZXMgYSBjb25zdCB3Y2hhcl90KiB0byBhIDo6d3N0cmluZyB0aGF0IGhhcyBkaWZmZXJl
bnQKLSAgLy8gY29udGVudC4KLSAgY29uc3Qgd2NoYXJfdCBrVGVzdFg4MTIwW10gPSB7ICdUJywg
J2UnLCAncycsICd0JywgMHg4MTIwLCAnXDAnIH07Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9FUShrVGVzdFg4MTIwLCA6OndzdHJpbmcoa1Rlc3RY
ODExOSkpOwotICB9LCAiVGVzdFxceDgxMTkiKTsKLQotICAvLyBDb21wYXJlcyBhIHdjaGFyX3Qq
IHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICB3Y2hhcl90KiBj
b25zdCBwMSA9IGNvbnN0X2Nhc3Q8d2NoYXJfdCo+KEwiZm9vIik7Ci0gIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9FUShwMSwgOjp3c3RyaW5nKEwiYmFyIikpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYmFyIik7Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIDo6d3N0cmluZ3MgdGhh
dCBoYXZlIGRpZmZlcmVudCBjb250ZW50cywgb25lIG9mIHdoaWNoCi0gIC8vIGhhdmluZyBhIE5V
TCBjaGFyYWN0ZXIgaW4gdGhlIG1pZGRsZS4KLSAgc3RhdGljIDo6d3N0cmluZyB3c3RyMzsKLSAg
d3N0cjMgPSB3c3RyMTsKLSAgd3N0cjMuYXQoMikgPSBMJ1wwJzsKLSAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQVNTRVJUX0VRKHdzdHIxLCB3c3RyMyksCi0gICAgICAgICAgICAgICAgICAgICAgICJ3
c3RyMyIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCiAvLyBU
ZXN0cyB1c2luZyBjaGFyIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFB
c3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewotICBjaGFyKiBjb25zdCBwMCA9IE5VTEw7Cisg
IGNoYXIqIGNvbnN0IHAwID0gbnVsbHB0cjsKICAgLy8gT25seSB3YXkgdG8gZ2V0IHRoZSBOb2tp
YSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CiAgIC8vIGlzIHRvIGhhdmUgYSBzZXBhcmF0
ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGluZwogICAvLyB0aGUgdHdvIGNhc3RzIG9uIHRo
ZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0aGVyIGRvZXMKQEAgLTQ5MjIsNyArNDk0NSw3
IEBAIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewogCiAvLyBUZXN0cyB1c2lu
ZyB3Y2hhcl90IHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFBc3NlcnRp
b25UZXN0LCBXaWRlQ2hhclBvaW50ZXIpIHsKLSAgd2NoYXJfdCogY29uc3QgcDAgPSBOVUxMOwor
ICB3Y2hhcl90KiBjb25zdCBwMCA9IG51bGxwdHI7CiAgIC8vIE9ubHkgd2F5IHRvIGdldCB0aGUg
Tm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0aGUgY2FzdAogICAvLyBpcyB0byBoYXZlIGEgc2Vw
YXJhdGUgdm9pZCogdmFyaWFibGUgZmlyc3QuIFB1dHRpbmcKICAgLy8gdGhlIHR3byBjYXN0cyBv
biB0aGUgc2FtZSBsaW5lIGRvZXNuJ3Qgd29yaywgbmVpdGhlciBkb2VzCkBAIC00OTQ3LDkgKzQ5
NzAsOCBAQCBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgV2lkZUNoYXJQb2ludGVyKSB7CiAKIC8vIFRl
c3RzIHVzaW5nIG90aGVyIHR5cGVzIG9mIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4K
IFRFU1QoRXFBc3NlcnRpb25UZXN0LCBPdGhlclBvaW50ZXIpIHsKLSAgQVNTRVJUX0VRKHN0YXRp
Y19jYXN0PGNvbnN0IGludCo+KE5VTEwpLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3Qg
aW50Kj4oTlVMTCkpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nh
c3Q8Y29uc3QgaW50Kj4oTlVMTCksCisgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxjb25zdCBpbnQq
PihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVsbHB0cikpOworICBFWFBFQ1Rf
RkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVsbHB0ciks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0
IGludCo+KDB4MTIzNCkpLAogICAgICAgICAgICAgICAgICAgICAgICAiMHgxMjM0Iik7CiB9CkBA
IC01MDY1LDcgKzUwODcsNyBAQCBjbGFzcyBUZXN0TGlmZUN5Y2xlVGVzdCA6IHB1YmxpYyBUZXN0
IHsKIAogICAvLyBEZXN0cnVjdG9yLiAgRGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3Qgb2Jq
ZWN0cyB0aGF0IHVzZXMgdGhpcwogICAvLyBmaXh0dXJlLgotICB+VGVzdExpZmVDeWNsZVRlc3Qo
KSB7IGNvdW50Xy0tOyB9CisgIH5UZXN0TGlmZUN5Y2xlVGVzdCgpIG92ZXJyaWRlIHsgY291bnRf
LS07IH0KIAogICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGl2ZSB0ZXN0IG9iamVjdHMgdGhh
dCB1c2VzIHRoaXMgZml4dHVyZS4KICAgaW50IGNvdW50KCkgY29uc3QgeyByZXR1cm4gY291bnRf
OyB9CkBAIC01MTU2LDggKzUxNzgsNyBAQCBURVNUKEFzc2VydGlvblJlc3VsdFRlc3QsIENhblN0
cmVhbU9zdHJlYW1NYW5pcHVsYXRvcnMpIHsKICAgRVhQRUNUX1NUUkVRKCJEYXRhXG5cXDBXaWxs
IGJlIHZpc2libGUiLCByLm1lc3NhZ2UoKSk7CiB9CiAKLS8vIFRoZSBuZXh0IHRlc3QgdXNlcyBl
eHBsaWNpdCBjb252ZXJzaW9uIG9wZXJhdG9ycyAtLSBhIEMrKzExIGZlYXR1cmUuCi0jaWYgR1RF
U1RfTEFOR19DWFgxMQorLy8gVGhlIG5leHQgdGVzdCB1c2VzIGV4cGxpY2l0IGNvbnZlcnNpb24g
b3BlcmF0b3JzCiAKIFRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVzdCwgQ29uc3RydWN0aWJsZUZyb21D
b250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewogICBzdHJ1Y3QgRXhwbGljaXRseUNvbnZl
cnRpYmxlVG9Cb29sIHsKQEAgLTUxNzAsOCArNTE5MSw2IEBAIFRFU1QoQXNzZXJ0aW9uUmVzdWx0
VGVzdCwgQ29uc3RydWN0aWJsZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewog
ICBFWFBFQ1RfVFJVRSh2Mik7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQotCiBz
dHJ1Y3QgQ29udmVydGlibGVUb0Fzc2VydGlvblJlc3VsdCB7CiAgIG9wZXJhdG9yIEFzc2VydGlv
blJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIEFzc2VydGlvblJlc3VsdCh0cnVlKTsgfQogfTsKQEAg
LTUyODUsMTIgKzUzMDQsMTIgQEAgVEVTVChNZXNzYWdlVGVzdCwgQ2FuU3RyZWFtVXNlclR5cGVJ
blVzZXJOYW1lU3BhY2VXaXRoU3RyZWFtT3BlcmF0b3JJbkdsb2JhbCkgewogLy8gVGVzdHMgc3Ry
ZWFtaW5nIE5VTEwgcG9pbnRlcnMgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1QoTWVzc2FnZVRl
c3QsIE51bGxQb2ludGVycykgewogICBNZXNzYWdlIG1zZzsKLSAgY2hhciogY29uc3QgcDEgPSBO
VUxMOwotICB1bnNpZ25lZCBjaGFyKiBjb25zdCBwMiA9IE5VTEw7Ci0gIGludCogcDMgPSBOVUxM
OwotICBkb3VibGUqIHA0ID0gTlVMTDsKLSAgYm9vbCogcDUgPSBOVUxMOwotICBNZXNzYWdlKiBw
NiA9IE5VTEw7CisgIGNoYXIqIGNvbnN0IHAxID0gbnVsbHB0cjsKKyAgdW5zaWduZWQgY2hhciog
Y29uc3QgcDIgPSBudWxscHRyOworICBpbnQqIHAzID0gbnVsbHB0cjsKKyAgZG91YmxlKiBwNCA9
IG51bGxwdHI7CisgIGJvb2wqIHA1ID0gbnVsbHB0cjsKKyAgTWVzc2FnZSogcDYgPSBudWxscHRy
OwogCiAgIG1zZyA8PCBwMSA8PCBwMiA8PCBwMyA8PCBwNCA8PCBwNSA8PCBwNjsKICAgQVNTRVJU
X1NUUkVRKCIobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkiLApAQCAtNTMwMCwx
MiArNTMxOSwxMiBAQCBURVNUKE1lc3NhZ2VUZXN0LCBOdWxsUG9pbnRlcnMpIHsKIC8vIFRlc3Rz
IHN0cmVhbWluZyB3aWRlIHN0cmluZ3MgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1QoTWVzc2Fn
ZVRlc3QsIFdpZGVTdHJpbmdzKSB7CiAgIC8vIFN0cmVhbXMgYSBOVUxMIG9mIHR5cGUgY29uc3Qg
d2NoYXJfdCouCi0gIGNvbnN0IHdjaGFyX3QqIGNvbnN0X3dzdHIgPSBOVUxMOworICBjb25zdCB3
Y2hhcl90KiBjb25zdF93c3RyID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLAog
ICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCBjb25zdF93c3RyKS5HZXRTdHJpbmcoKS5jX3N0
cigpKTsKIAogICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0eXBlIHdjaGFyX3QqLgotICB3Y2hhcl90
KiB3c3RyID0gTlVMTDsKKyAgd2NoYXJfdCogd3N0ciA9IG51bGxwdHI7CiAgIEVYUEVDVF9TVFJF
USgiKG51bGwpIiwKICAgICAgICAgICAgICAgIChNZXNzYWdlKCkgPDwgd3N0cikuR2V0U3RyaW5n
KCkuY19zdHIoKSk7CiAKQEAgLTUzMjksMTUgKzUzNDgsMTUgQEAgbmFtZXNwYWNlIHRlc3Rpbmcg
ewogY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgc3Rh
dGljIGNvbnN0IFRlc3RJbmZvKiBHZXRUZXN0SW5mbyhjb25zdCBjaGFyKiB0ZXN0X25hbWUpIHsK
LSAgICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gR2V0VW5pdFRlc3RJbXBsKCkt
PgotICAgICAgICBHZXRUZXN0Q2FzZSgiVGVzdEluZm9UZXN0IiwgIiIsIE5VTEwsIE5VTEwpOwor
ICAgIGNvbnN0IFRlc3RTdWl0ZSogY29uc3QgdGVzdF9zdWl0ZSA9CisgICAgICAgIEdldFVuaXRU
ZXN0SW1wbCgpLT5HZXRUZXN0U3VpdGUoIlRlc3RJbmZvVGVzdCIsICIiLCBudWxscHRyLCBudWxs
cHRyKTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2Nv
dW50KCk7ICsraSkgewotICAgICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRl
c3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1
aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgeworICAgICAgY29uc3QgVGVzdEluZm8qIGNv
bnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKGkpOwogICAgICAgaWYgKHN0
cmNtcCh0ZXN0X25hbWUsIHRlc3RfaW5mby0+bmFtZSgpKSA9PSAwKQogICAgICAgICByZXR1cm4g
dGVzdF9pbmZvOwogICAgIH0KLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
ICAgfQogCiAgIHN0YXRpYyBjb25zdCBUZXN0UmVzdWx0KiBHZXRUZXN0UmVzdWx0KApAQCAtNTM1
MCw3ICs1MzY5LDcgQEAgY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogVEVTVF9G
KFRlc3RJbmZvVGVzdCwgTmFtZXMpIHsKICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5m
byA9IEdldFRlc3RJbmZvKCJOYW1lcyIpOwogCi0gIEFTU0VSVF9TVFJFUSgiVGVzdEluZm9UZXN0
IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgQVNTRVJUX1NUUkVRKCJUZXN0SW5m
b1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgQVNTRVJUX1NUUkVRKCJO
YW1lcyIsIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIApAQCAtNTM5MCwxMyArNTQwOSwxMyBAQCBU
RVNUX1AoQ29kZUxvY2F0aW9uRm9yVEVTVFAsIFZlcmlmeSkgewogICBWRVJJRllfQ09ERV9MT0NB
VElPTjsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoLCBDb2RlTG9jYXRpb25Gb3JURVNU
UCwgVmFsdWVzKDApKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIENvZGVMb2NhdGlvbkZv
clRFU1RQLCBWYWx1ZXMoMCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIENvZGVM
b2NhdGlvbkZvclRZUEVEVEVTVCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FT
RShDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIGludCk7CitUWVBFRF9URVNUX1NVSVRFKENvZGVM
b2NhdGlvbkZvclRZUEVEVEVTVCwgaW50KTsKIAogVFlQRURfVEVTVChDb2RlTG9jYXRpb25Gb3JU
WVBFRFRFU1QsIFZlcmlmeSkgewogICBWRVJJRllfQ09ERV9MT0NBVElPTjsKQEAgLTU0MDYsMjAg
KzU0MjUsMjEgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb2RlTG9jYXRpb25Gb3JU
WVBFRFRFU1RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoQ29kZUxv
Y2F0aW9uRm9yVFlQRURURVNUUCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0aW9uRm9y
VFlQRURURVNUUCk7CiAKIFRZUEVEX1RFU1RfUChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBW
ZXJpZnkpIHsKICAgVkVSSUZZX0NPREVfTE9DQVRJT047CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RF
U1RfQ0FTRV9QKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIFZlcmlmeSk7CitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCwgVmVyaWZ5KTsKIAot
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIENvZGVMb2NhdGlvbkZvclRZUEVEVEVT
VFAsIGludCk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENvZGVMb2NhdGlv
bkZvclRZUEVEVEVTVFAsIGludCk7CiAKICN1bmRlZiBWRVJJRllfQ09ERV9MT0NBVElPTgogCiAv
LyBUZXN0cyBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYSB0ZXN0IGNhc2UuCi0KKy8vIExl
Z2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogY2xhc3MgU2V0VXBUZXN0Q2FzZVRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgogICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIG9uY2Ug
YmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlCkBAIC01NDUxLDExICs1NDcx
LDExIEBAIGNsYXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVD
VF9FUSgwLCBjb3VudGVyXyk7CiAKICAgICAvLyBDbGVhbnMgdXAgdGhlIHNoYXJlZCByZXNvdXJj
ZS4KLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKKyAgICBzaGFyZWRfcmVzb3VyY2VfID0g
bnVsbHB0cjsKICAgfQogCiAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVhY2ggdGVz
dCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIFNldFVwVGVzdENhc2UoKSBzaG91bGQgYmUgY2FsbGVk
IG9ubHkgb25jZSwgc28gY291bnRlcl8gc2hvdWxkCiAgICAgLy8gYWx3YXlzIGJlIDEuCiAgICAg
RVhQRUNUX0VRKDEsIGNvdW50ZXJfKTsKQEAgLTU0NjksMzggKzU0ODksMTAxIEBAIGNsYXNzIFNl
dFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogaW50IFNldFVwVGVzdENhc2VU
ZXN0Ojpjb3VudGVyXyA9IDA7Ci1jb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6c2hhcmVk
X3Jlc291cmNlXyA9IE5VTEw7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6c2hhcmVk
X3Jlc291cmNlXyA9IG51bGxwdHI7CiAKIC8vIEEgdGVzdCB0aGF0IHVzZXMgdGhlIHNoYXJlZCBy
ZXNvdXJjZS4KLVRFU1RfRihTZXRVcFRlc3RDYXNlVGVzdCwgVGVzdDEpIHsKLSAgRVhQRUNUX1NU
Uk5FKE5VTEwsIHNoYXJlZF9yZXNvdXJjZV8pOwotfQorVEVTVF9GKFNldFVwVGVzdENhc2VUZXN0
LCBUZXN0MSkgeyBFWFBFQ1RfU1RSTkUobnVsbHB0ciwgc2hhcmVkX3Jlc291cmNlXyk7IH0KIAog
Ly8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgogVEVTVF9GKFNl
dFVwVGVzdENhc2VUZXN0LCBUZXN0MikgewogICBFWFBFQ1RfU1RSRVEoIjEyMyIsIHNoYXJlZF9y
ZXNvdXJjZV8pOwogfQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCiAKKy8vIFRlc3RzIFNldHVwVGVzdFN1aXRlL1RlYXJEb3duIFRlc3RTdWl0ZQorY2xhc3Mg
U2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3QgeworIHByb3RlY3RlZDoKKyAgLy8gVGhp
cyB3aWxsIGJlIGNhbGxlZCBvbmNlIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3Qg
Y2FzZQorICAvLyBpcyBydW4uCisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeworICAg
IHByaW50ZigiU2V0dGluZyB1cCB0aGUgdGVzdCBzdWl0ZSAuIC4gLlxuIik7CisKKyAgICAvLyBJ
bml0aWFsaXplcyBzb21lIHNoYXJlZCByZXNvdXJjZS4gIEluIHRoaXMgc2ltcGxlIGV4YW1wbGUs
IHdlCisgICAgLy8ganVzdCBjcmVhdGUgYSBDIHN0cmluZy4gIE1vcmUgY29tcGxleCBzdHVmZiBj
YW4gYmUgZG9uZSBpZgorICAgIC8vIGRlc2lyZWQuCisgICAgc2hhcmVkX3Jlc291cmNlXyA9ICIx
MjMiOworCisgICAgLy8gSW5jcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMgdGhhdCBo
YXZlIGJlZW4gc2V0IHVwLgorICAgIGNvdW50ZXJfKys7CisKKyAgICAvLyBTZXRVcFRlc3RTdWl0
ZSgpIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLgorICAgIEVYUEVDVF9FUSgxLCBjb3VudGVy
Xyk7CisgIH0KKworICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGxhc3Qg
dGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcworICAvLyBydW4uCisgIHN0YXRpYyB2b2lkIFRlYXJE
b3duVGVzdFN1aXRlKCkgeworICAgIHByaW50ZigiVGVhcmluZyBkb3duIHRoZSB0ZXN0IHN1aXRl
IC4gLiAuXG4iKTsKKworICAgIC8vIERlY3JlbWVudHMgdGhlIG51bWJlciBvZiB0ZXN0IHN1aXRl
cyB0aGF0IGhhdmUgYmVlbiBzZXQgdXAuCisgICAgY291bnRlcl8tLTsKKworICAgIC8vIFRlYXJE
b3duVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgRVhQRUNUX0VR
KDAsIGNvdW50ZXJfKTsKKworICAgIC8vIENsZWFucyB1cCB0aGUgc2hhcmVkIHJlc291cmNlLgor
ICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworICB9CisKKyAgLy8gVGhpcyB3aWxsIGJl
IGNhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgorICB2b2lkIFNldFVw
KCkgb3ZlcnJpZGUgeworICAgIC8vIFNldFVwVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNhbGxlZCBv
bmx5IG9uY2UsIHNvIGNvdW50ZXJfIHNob3VsZAorICAgIC8vIGFsd2F5cyBiZSAxLgorICAgIEVY
UEVDVF9FUSgxLCBjb3VudGVyXyk7CisgIH0KKworICAvLyBOdW1iZXIgb2YgdGVzdCBzdWl0ZXMg
dGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICBzdGF0aWMgaW50IGNvdW50ZXJfOworCisgIC8vIFNv
bWUgcmVzb3VyY2UgdG8gYmUgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4K
KyAgc3RhdGljIGNvbnN0IGNoYXIqIHNoYXJlZF9yZXNvdXJjZV87Cit9OworCitpbnQgU2V0VXBU
ZXN0U3VpdGVUZXN0Ojpjb3VudGVyXyA9IDA7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RTdWl0ZVRl
c3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworCisvLyBBIHRlc3QgdGhhdCB1c2VzIHRo
ZSBzaGFyZWQgcmVzb3VyY2UuCitURVNUX0YoU2V0VXBUZXN0U3VpdGVUZXN0LCBUZXN0U2V0dXBU
ZXN0U3VpdGUxKSB7CisgIEVYUEVDVF9TVFJORShudWxscHRyLCBzaGFyZWRfcmVzb3VyY2VfKTsK
K30KKworLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgorVEVT
VF9GKFNldFVwVGVzdFN1aXRlVGVzdCwgVGVzdFNldHVwVGVzdFN1aXRlMikgeworICBFWFBFQ1Rf
U1RSRVEoIjEyMyIsIHNoYXJlZF9yZXNvdXJjZV8pOworfQogCiAvLyBUaGUgUGFyc2VGbGFnc1Rl
c3QgdGVzdCBjYXNlIHRlc3RzIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seS4KIAogLy8gVGhlIEZs
YWdzIHN0cnVjdCBzdG9yZXMgYSBjb3B5IG9mIGFsbCBHb29nbGUgVGVzdCBmbGFncy4KIHN0cnVj
dCBGbGFncyB7CiAgIC8vIENvbnN0cnVjdHMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgZWFjaCBmbGFn
IGhhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KLSAgRmxhZ3MoKSA6IGFsc29fcnVuX2Rpc2FibGVkX3Rl
c3RzKGZhbHNlKSwKLSAgICAgICAgICAgIGJyZWFrX29uX2ZhaWx1cmUoZmFsc2UpLAotICAgICAg
ICAgICAgY2F0Y2hfZXhjZXB0aW9ucyhmYWxzZSksCi0gICAgICAgICAgICBkZWF0aF90ZXN0X3Vz
ZV9mb3JrKGZhbHNlKSwKLSAgICAgICAgICAgIGZpbHRlcigiIiksCi0gICAgICAgICAgICBsaXN0
X3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIG91dHB1dCgiIiksCi0gICAgICAgICAgICBwcmlu
dF90aW1lKHRydWUpLAotICAgICAgICAgICAgcmFuZG9tX3NlZWQoMCksCi0gICAgICAgICAgICBy
ZXBlYXQoMSksCi0gICAgICAgICAgICBzaHVmZmxlKGZhbHNlKSwKLSAgICAgICAgICAgIHN0YWNr
X3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAotICAgICAgICAgICAgc3RyZWFtX3Jl
c3VsdF90bygiIiksCi0gICAgICAgICAgICB0aHJvd19vbl9mYWlsdXJlKGZhbHNlKSB7fQorICBG
bGFncygpCisgICAgICA6IGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKGZhbHNlKSwKKyAgICAgICAg
YnJlYWtfb25fZmFpbHVyZShmYWxzZSksCisgICAgICAgIGNhdGNoX2V4Y2VwdGlvbnMoZmFsc2Up
LAorICAgICAgICBkZWF0aF90ZXN0X3VzZV9mb3JrKGZhbHNlKSwKKyAgICAgICAgZmFpbF9mYXN0
KGZhbHNlKSwKKyAgICAgICAgZmlsdGVyKCIiKSwKKyAgICAgICAgbGlzdF90ZXN0cyhmYWxzZSks
CisgICAgICAgIG91dHB1dCgiIiksCisgICAgICAgIGJyaWVmKGZhbHNlKSwKKyAgICAgICAgcHJp
bnRfdGltZSh0cnVlKSwKKyAgICAgICAgcmFuZG9tX3NlZWQoMCksCisgICAgICAgIHJlcGVhdCgx
KSwKKyAgICAgICAgc2h1ZmZsZShmYWxzZSksCisgICAgICAgIHN0YWNrX3RyYWNlX2RlcHRoKGtN
YXhTdGFja1RyYWNlRGVwdGgpLAorICAgICAgICBzdHJlYW1fcmVzdWx0X3RvKCIiKSwKKyAgICAg
ICAgdGhyb3dfb25fZmFpbHVyZShmYWxzZSkge30KIAogICAvLyBGYWN0b3J5IG1ldGhvZHMuCiAK
QEAgLTU1MzYsNiArNTYxOSwxNCBAQCBzdHJ1Y3QgRmxhZ3MgewogICAgIHJldHVybiBmbGFnczsK
ICAgfQogCisgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X2ZhaWxf
ZmFzdCBmbGFnIGhhcworICAvLyB0aGUgZ2l2ZW4gdmFsdWUuCisgIHN0YXRpYyBGbGFncyBGYWls
RmFzdChib29sIGZhaWxfZmFzdCkgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdzLmZhaWxf
ZmFzdCA9IGZhaWxfZmFzdDsKKyAgICByZXR1cm4gZmxhZ3M7CisgIH0KKwogICAvLyBDcmVhdGVz
IGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9maWx0ZXIgZmxhZyBoYXMgdGhlIGdpdmVu
CiAgIC8vIHZhbHVlLgogICBzdGF0aWMgRmxhZ3MgRmlsdGVyKGNvbnN0IGNoYXIqIGZpbHRlcikg
ewpAQCAtNTU2MCw2ICs1NjUxLDE0IEBAIHN0cnVjdCBGbGFncyB7CiAgICAgcmV0dXJuIGZsYWdz
OwogICB9CiAKKyAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfYnJp
ZWYgZmxhZyBoYXMgdGhlIGdpdmVuCisgIC8vIHZhbHVlLgorICBzdGF0aWMgRmxhZ3MgQnJpZWYo
Ym9vbCBicmllZikgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdzLmJyaWVmID0gYnJpZWY7
CisgICAgcmV0dXJuIGZsYWdzOworICB9CisKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3
aGVyZSB0aGUgZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIGhhcyB0aGUgZ2l2ZW4KICAgLy8gdmFsdWUu
CiAgIHN0YXRpYyBGbGFncyBQcmludFRpbWUoYm9vbCBwcmludF90aW1lKSB7CkBAIC01NTcwLDcg
KzU2NjksNyBAQCBzdHJ1Y3QgRmxhZ3MgewogCiAgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qg
d2hlcmUgdGhlIGd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgaGFzIHRoZSBnaXZlbgogICAvLyB2YWx1
ZS4KLSAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoSW50MzIgcmFuZG9tX3NlZWQpIHsKKyAgc3Rh
dGljIEZsYWdzIFJhbmRvbVNlZWQoaW50MzJfdCByYW5kb21fc2VlZCkgewogICAgIEZsYWdzIGZs
YWdzOwogICAgIGZsYWdzLnJhbmRvbV9zZWVkID0gcmFuZG9tX3NlZWQ7CiAgICAgcmV0dXJuIGZs
YWdzOwpAQCAtNTU3OCw3ICs1Njc3LDcgQEAgc3RydWN0IEZsYWdzIHsKIAogICAvLyBDcmVhdGVz
IGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9yZXBlYXQgZmxhZyBoYXMgdGhlIGdpdmVu
CiAgIC8vIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgUmVwZWF0KEludDMyIHJlcGVhdCkgeworICBz
dGF0aWMgRmxhZ3MgUmVwZWF0KGludDMyX3QgcmVwZWF0KSB7CiAgICAgRmxhZ3MgZmxhZ3M7CiAg
ICAgZmxhZ3MucmVwZWF0ID0gcmVwZWF0OwogICAgIHJldHVybiBmbGFnczsKQEAgLTU1OTQsNyAr
NTY5Myw3IEBAIHN0cnVjdCBGbGFncyB7CiAKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3
aGVyZSB0aGUgR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkgZmxhZyBoYXMKICAgLy8gdGhl
IGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgU3RhY2tUcmFjZURlcHRoKEludDMyIHN0YWNr
X3RyYWNlX2RlcHRoKSB7CisgIHN0YXRpYyBGbGFncyBTdGFja1RyYWNlRGVwdGgoaW50MzJfdCBz
dGFja190cmFjZV9kZXB0aCkgewogICAgIEZsYWdzIGZsYWdzOwogICAgIGZsYWdzLnN0YWNrX3Ry
YWNlX2RlcHRoID0gc3RhY2tfdHJhY2VfZGVwdGg7CiAgICAgcmV0dXJuIGZsYWdzOwpAQCAtNTYy
MSwxNCArNTcyMCwxNiBAQCBzdHJ1Y3QgRmxhZ3MgewogICBib29sIGJyZWFrX29uX2ZhaWx1cmU7
CiAgIGJvb2wgY2F0Y2hfZXhjZXB0aW9uczsKICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9mb3JrOwor
ICBib29sIGZhaWxfZmFzdDsKICAgY29uc3QgY2hhciogZmlsdGVyOwogICBib29sIGxpc3RfdGVz
dHM7CiAgIGNvbnN0IGNoYXIqIG91dHB1dDsKKyAgYm9vbCBicmllZjsKICAgYm9vbCBwcmludF90
aW1lOwotICBJbnQzMiByYW5kb21fc2VlZDsKLSAgSW50MzIgcmVwZWF0OworICBpbnQzMl90IHJh
bmRvbV9zZWVkOworICBpbnQzMl90IHJlcGVhdDsKICAgYm9vbCBzaHVmZmxlOwotICBJbnQzMiBz
dGFja190cmFjZV9kZXB0aDsKKyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aDsKICAgY29uc3Qg
Y2hhciogc3RyZWFtX3Jlc3VsdF90bzsKICAgYm9vbCB0aHJvd19vbl9mYWlsdXJlOwogfTsKQEAg
LTU2MzcsMTQgKzU3MzgsMTYgQEAgc3RydWN0IEZsYWdzIHsKIGNsYXNzIFBhcnNlRmxhZ3NUZXN0
IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgLy8gQ2xlYXJzIHRoZSBmbGFncyBiZWZv
cmUgZWFjaCB0ZXN0LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBv
dmVycmlkZSB7CiAgICAgR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykgPSBmYWxz
ZTsKICAgICBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpID0gZmFsc2U7CiAgICAgR1RFU1Rf
RkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVz
dF91c2VfZm9yaykgPSBmYWxzZTsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFzdCkgPSBmYWxzZTsK
ICAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAiIjsKICAgICBHVEVTVF9GTEFHKGxpc3RfdGVzdHMp
ID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gIiI7CisgICAgR1RFU1RfRkxBRyhi
cmllZikgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKHByaW50X3RpbWUpID0gdHJ1ZTsKICAgICBH
VEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IDA7CiAgICAgR1RFU1RfRkxBRyhyZXBlYXQpID0gMTsK
QEAgLTU2NTYsMTEgKzU3NTksMTEgQEAgY2xhc3MgUGFyc2VGbGFnc1Rlc3QgOiBwdWJsaWMgVGVz
dCB7CiAKICAgLy8gQXNzZXJ0cyB0aGF0IHR3byBuYXJyb3cgb3Igd2lkZSBzdHJpbmcgYXJyYXlz
IGFyZSBlcXVhbC4KICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICBzdGF0aWMgdm9p
ZCBBc3NlcnRTdHJpbmdBcnJheUVxKHNpemVfdCBzaXplMSwgQ2hhclR5cGUqKiBhcnJheTEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUyLCBDaGFyVHlwZSoq
IGFycmF5MikgeworICBzdGF0aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKGludCBzaXplMSwg
Q2hhclR5cGUqKiBhcnJheTEsIGludCBzaXplMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDaGFyVHlwZSoqIGFycmF5MikgewogICAgIEFTU0VSVF9FUShzaXplMSwgc2l6ZTIp
IDw8ICIgQXJyYXkgc2l6ZXMgZGlmZmVyZW50LiI7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSAhPSBzaXplMTsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gc2l6ZTE7IGkrKykg
ewogICAgICAgQVNTRVJUX1NUUkVRKGFycmF5MVtpXSwgYXJyYXkyW2ldKSA8PCAiIHdoZXJlIGkg
PT0gIiA8PCBpOwogICAgIH0KICAgfQpAQCAtNTY3Miw5ICs1Nzc1LDExIEBAIGNsYXNzIFBhcnNl
RmxhZ3NUZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVDVF9FUShleHBlY3RlZC5icmVha19v
bl9mYWlsdXJlLCBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKTsKICAgICBFWFBFQ1RfRVEo
ZXhwZWN0ZWQuY2F0Y2hfZXhjZXB0aW9ucywgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSk7
CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmRlYXRoX3Rlc3RfdXNlX2ZvcmssIEdURVNUX0ZMQUco
ZGVhdGhfdGVzdF91c2VfZm9yaykpOworICAgIEVYUEVDVF9FUShleHBlY3RlZC5mYWlsX2Zhc3Qs
IEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKGV4cGVjdGVkLmZpbHRl
ciwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCkpOwogICAgIEVYUEVDVF9FUShleHBlY3RlZC5s
aXN0X3Rlc3RzLCBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKTsKICAgICBFWFBFQ1RfU1RSRVEoZXhw
ZWN0ZWQub3V0cHV0LCBHVEVTVF9GTEFHKG91dHB1dCkuY19zdHIoKSk7CisgICAgRVhQRUNUX0VR
KGV4cGVjdGVkLmJyaWVmLCBHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQRUNUX0VRKGV4cGVj
dGVkLnByaW50X3RpbWUsIEdURVNUX0ZMQUcocHJpbnRfdGltZSkpOwogICAgIEVYUEVDVF9FUShl
eHBlY3RlZC5yYW5kb21fc2VlZCwgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpOwogICAgIEVYUEVD
VF9FUShleHBlY3RlZC5yZXBlYXQsIEdURVNUX0ZMQUcocmVwZWF0KSk7CkBAIC01NzQyLDE0MSAr
NTg0Nyw5MCBAQCBjbGFzcyBQYXJzZUZsYWdzVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogLy8gVGVz
dHMgcGFyc2luZyBhbiBlbXB0eSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3Qs
IEVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICBOVUxMCi0gIH07CisgIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHtudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHtudWxscHRyfTsKIAog
ICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7
CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYSBjb21tYW5kIGxpbmUgdGhhdCBoYXMgbm8gZmxhZy4K
IFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTm9GbGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZv
by5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFy
Z3YyLCBGbGFncygpLCBmYWxzZSk7CiB9CiAKKy8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9mYWls
X2Zhc3QuCitURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZhaWxGYXN0KSB7CisgIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2ZhaWxfZmFzdCIsIG51bGxwdHJ9OworCisg
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmFpbEZhc3QodHJ1ZSksIGZh
bHNlKTsKK30KKwogLy8gVGVzdHMgcGFyc2luZyBhIGJhZCAtLWd0ZXN0X2ZpbHRlciBmbGFnLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGaWx0ZXJCYWQpIHsKLSAgY29uc3QgY2hhciogYXJndltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXIiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyIiwg
bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgIi0tZ3Rlc3RfZmlsdGVyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXIiLCBudWxscHRyfTsKIAogICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCIiKSwgdHJ1ZSk7
CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgLS1ndGVzdF9maWx0ZXIgZmxhZy4KIFRF
U1RfRihQYXJzZUZsYWdzVGVzdCwgRmlsdGVyRW1wdHkpIHsKLSAgY29uc3QgY2hhciogYXJndltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXI9IiwKLSAgICBOVUxMCi0g
IH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2ZpbHRlcj0i
LCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxs
cHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6
RmlsdGVyKCIiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgbm9uLWVtcHR5IC0t
Z3Rlc3RfZmlsdGVyIGZsYWcuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZpbHRlck5vbkVtcHR5
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3RfZmlsdGVyPWFiYyIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXI9YWJjIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigiYWJjIiksIGZhbHNlKTsKIH0K
IAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUuCiBURVNUX0YoUGFy
c2VGbGFnc1Rlc3QsIEJyZWFrT25GYWlsdXJlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVy
ZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZSh0cnVlKSwgZmFsc2UpOwogfQog
CiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wLgogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlXzApIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPTAi
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwog
fQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mLgogVEVTVF9G
KFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX2YpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJl
PWYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1GLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1GIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFs
c2UpOwogfQpAQCAtNTg4NCw0OCArNTkzOCwyNyBAQCBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEJy
ZWFrT25GYWlsdXJlRmFsc2VfRikgewogLy8gVGVzdHMgcGFyc2luZyBhIC0tZ3Rlc3RfYnJlYWtf
b25fZmFpbHVyZSBmbGFnIHRoYXQgaGFzIGEgInRydWUiCiAvLyBkZWZpbml0aW9uLgogVEVTVF9G
KFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZVRydWUpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPTEi
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKHRydWUpLCBmYWxzZSk7CiB9
CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zLgogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBDYXRjaEV4Y2VwdGlvbnMpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2Nh
dGNoX2V4Y2VwdGlvbnMiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewot
ICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFnczo6Q2F0Y2hFeGNlcHRpb25zKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRl
c3RzIHBhcnNpbmcgLS1ndGVzdF9kZWF0aF90ZXN0X3VzZV9mb3JrLgogVEVTVF9GKFBhcnNlRmxh
Z3NUZXN0LCBEZWF0aFRlc3RVc2VGb3JrKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAg
ICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZGVhdGhfdGVzdF91c2VfZm9yayIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9kZWF0
aF90ZXN0X3VzZV9mb3JrIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsK
LSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2
LCBhcmd2MiwgRmxhZ3M6OkRlYXRoVGVzdFVzZUZvcmsodHJ1ZSksIGZhbHNlKTsKIH0KQEAgLTU5
MzMsMzYgKzU5NjYsMjEgQEAgVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RVc2VGb3Jr
KSB7CiAvLyBUZXN0cyBoYXZpbmcgdGhlIHNhbWUgZmxhZyB0d2ljZSB3aXRoIGRpZmZlcmVudCB2
YWx1ZXMuICBUaGUKIC8vIGV4cGVjdGVkIGJlaGF2aW9yIGlzIHRoYXQgdGhlIG9uZSBjb21pbmcg
bGFzdCB0YWtlcyBwcmVjZWRlbmNlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEdXBsaWNhdGVk
RmxhZ3MpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
LS1ndGVzdF9maWx0ZXI9YSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyPWEi
LCAiLS1ndGVzdF9maWx0ZXI9YiIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyfTsK
IAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0g
IH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJiIiks
IGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGFuIHVucmVjb2duaXplZCBmbGFnIG9uIHRo
ZSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFVucmVjb2duaXplZEZsYWcp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9icmVha19vbl9mYWlsdXJlIiwKLSAgICAiYmFyIiwgIC8vIFVucmVjb2duaXplZCBieSBHb29n
bGUgVGVzdC4KLSAgICAiLS1ndGVzdF9maWx0ZXI9YiIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJiYXIiLCAgLy8gVW5yZWNvZ25pemVkIGJ5IEdvb2ds
ZSBUZXN0LgorICAgICAgICAgICAgICAgICAgICAgICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLCBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
YmFyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUi
LCAiYmFyIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZmxhZ3M7CiAgIGZsYWdzLmJyZWFrX29uX2Zh
aWx1cmUgPSB0cnVlOwpAQCAtNTk3MiwzODggKzU5OTAsMjUwIEBAIFRFU1RfRihQYXJzZUZsYWdz
VGVzdCwgVW5yZWNvZ25pemVkRmxhZykgewogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2xp
c3RfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGbGFnKSB7Ci0g
ICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rl
c3RfbGlzdF90ZXN0cyIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlzdF90ZXN0cyIsIG51bGxwdHJ9OwogCi0gICAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9
OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRy
dWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZs
YWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGEgLS1n
dGVzdF9saXN0X3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxh
Z3NUZXN0LCBMaXN0VGVzdHNUcnVlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0xIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0
X3Rlc3RzPTEiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAg
ICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRydWUpLCBmYWxz
ZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFnIHdpdGgg
YSAiZmFsc2UiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIExpc3RUZXN0c0ZhbHNlKSB7
Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0t
Z3Rlc3RfbGlzdF90ZXN0cz0wIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPTAiLCBudWxscHRyfTsKIAot
ICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxM
Ci0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9Owog
Ci0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RU
ZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBh
cmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFy
c2luZyAtLWd0ZXN0X2xpc3RfdGVzdHM9Zi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTGlzdFRl
c3RzRmFsc2VfZikgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9ZiIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPWYiLCBudWxscHRyfTsK
IAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0g
IH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKGZh
bHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfbGlzdF90ZXN0cz1G
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGYWxzZV9GKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz1G
IiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICIt
LWd0ZXN0X2xpc3RfdGVzdHM9RiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHMoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRl
c3RzIHBhcnNpbmcgLS1ndGVzdF9vdXRwdXQgKGludmFsaWQpLgogVEVTVF9GKFBhcnNlRmxhZ3NU
ZXN0LCBPdXRwdXRFbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5l
eGUiLAotICAgICItLWd0ZXN0X291dHB1dCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9vdXRwdXQiLCBudWxscHRyfTsKIAotICBj
b25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRw
dXQiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIs
ICItLWd0ZXN0X291dHB1dCIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oYXJndiwgYXJndjIsIEZsYWdzKCksIHRydWUpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0t
Z3Rlc3Rfb3V0cHV0PXhtbAogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBPdXRwdXRYbWwpIHsKLSAg
Y29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRw
dXQ9eG1sIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsICItLWd0ZXN0X291dHB1dD14bWwiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6T3V0cHV0KCJ4bWwiKSwgZmFsc2UpOwogfQogCiAvLyBU
ZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxlCiBURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIE91dHB1dFhtbEZpbGUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28u
ZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQ9eG1sOmZpbGUiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxl
IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
Ok91dHB1dCgieG1sOmZpbGUiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rl
c3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgT3V0
cHV0WG1sRGlyZWN0b3J5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAotICAgIE5VTEwK
LSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0
PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAorICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0cn07
CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGbGFnczo6T3V0cHV0KCJ4bWw6ZGlyZWN0b3J5L3BhdGgvIiksIGZhbHNlKTsK
IH0KIAorLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnCitURVNUX0YoUGFyc2VG
bGFnc1Rlc3QsIEJyaWVmRmxhZykgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUi
LCAiLS1ndGVzdF9icmllZiIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFnczo6QnJpZWYodHJ1ZSksIGZhbHNlKTsKK30KKworLy8gVGVzdHMgaGF2aW5n
IGEgLS1ndGVzdF9icmllZiBmbGFnIHdpdGggYSAidHJ1ZSIgdmFsdWUKK1RFU1RfRihQYXJzZUZs
YWdzVGVzdCwgQnJpZWZGbGFnVHJ1ZSkgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5l
eGUiLCAiLS1ndGVzdF9icmllZj0xIiwgbnVsbHB0cn07CisKKyAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OworCisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpCcmllZih0cnVlKSwgZmFsc2UpOworfQorCisvLyBUZXN0cyBo
YXZpbmcgYSAtLWd0ZXN0X2JyaWVmIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKK1RFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnRmFsc2UpIHsKKyAgY29uc3QgY2hhciogYXJndltdID0g
eyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWY9MCIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdf
RkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYoZmFsc2UpLCBmYWxzZSk7Cit9CisKIC8v
IFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnCiBURVNUX0YoUGFyc2VGbGFn
c1Rlc3QsIFByaW50VGltZUZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAg
ICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lIiwKLSAgICAgIE5VTEwKLSAg
ICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9wcmludF90
aW1lIiwgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICAgImZv
by5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZv
by5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwg
YXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZSh0cnVlKSwgZmFsc2UpOwog
fQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X3ByaW50X3RpbWUgZmxhZyB3aXRoIGEgInRy
dWUiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZVRydWUpIHsKLSAgICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9w
cmludF90aW1lPTEiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9MSIsIG51bGxwdHJ9OwogCi0gICAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9
OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRy
dWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZs
YWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGEgLS1n
dGVzdF9wcmludF90aW1lIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKIFRFU1RfRihQYXJzZUZs
YWdzVGVzdCwgUHJpbnRUaW1lRmFsc2UpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0g
ICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lPTAiLAotICAgICAgTlVM
TAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3By
aW50X3RpbWU9MCIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAg
ICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwgZmFsc2UpOworICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwg
ZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfcHJpbnRfdGltZT1mLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBQcmludFRpbWVGYWxzZV9mKSB7Ci0gIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1mIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0
X3ByaW50X3RpbWU9ZiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0g
ICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsi
Zm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwg
YXJndjIsIEZsYWdzOjpQcmludFRpbWUoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBh
cnNpbmcgLS1ndGVzdF9wcmludF90aW1lPUYuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50
VGltZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiLS1ndGVzdF9wcmludF90aW1lPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcHJpbnRfdGltZT1GIiwgbnVsbHB0cn07
CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZShm
YWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JhbmRvbV9zZWVk
PW51bWJlcgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBSYW5kb21TZWVkKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmFuZG9tX3NlZWQ9
MTAwMCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUi
LCAiLS1ndGVzdF9yYW5kb21fc2VlZD0xMDAwIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlJhbmRvbVNlZWQoMTAwMCksIGZhbHNlKTsKIH0K
IAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JlcGVhdD1udW1iZXIKIFRFU1RfRihQYXJzZUZs
YWdzVGVzdCwgUmVwZWF0KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLCBudWxscHRy
fTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxM
Ci0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAog
ICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UmVwZWF0KDEw
MDApLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlz
YWJsZWRfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRU
ZXN0c0ZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIs
Ci0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsCi0gICAgICBOVUxMCi0g
ICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYWxzb19y
dW5fZGlzYWJsZWRfdGVzdHMiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdz
OjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QWxzb1J1bkRpc2FibGVkVGVzdHModHJ1ZSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZp
bmcgYSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2
YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRUZXN0c1RydWUpIHsK
LSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1n
dGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0xIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxl
ZF90ZXN0cz0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0gICAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9
OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKHRydWUpLCBmYWxzZSk7Cisg
IEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpBbHNvUnVuRGlz
YWJsZWRUZXN0cyh0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiB9
CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgZmxh
ZyB3aXRoIGEgImZhbHNlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlz
YWJsZWRUZXN0c0ZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZv
by5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIsCi0gICAg
ICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rl
c3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIsCisgICAgICAgICAgICAgICAgICAgICAgICBu
dWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIs
Ci0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIs
IG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0
cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2
MiwgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKGZhbHNlKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9zaHVmZmxl
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBTaHVmZmxlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1ZmZsZSIs
Ci0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rl
c3Rfc2h1ZmZsZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpTaHVmZmxlKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcg
LS1ndGVzdF9zaHVmZmxlPTAuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFNodWZmbGVGYWxzZV8w
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3Rfc2h1ZmZsZT0wIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsi
Zm9vLmV4ZSIsICItLWd0ZXN0X3NodWZmbGU9MCIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKGZhbHNlKSwgZmFsc2UpOwogfQog
CiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF9zaHVmZmxlIGZsYWcgdGhhdCBoYXMgYSAidHJ1
ZSIgZGVmaW5pdGlvbi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU2h1ZmZsZVRydWUpIHsKLSAg
Y29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9zaHVm
ZmxlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3Rfc2h1ZmZsZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlNodWZmbGUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVz
dHMgcGFyc2luZyAtLWd0ZXN0X3N0YWNrX3RyYWNlX2RlcHRoPW51bWJlci4KIFRFU1RfRihQYXJz
ZUZsYWdzVGVzdCwgU3RhY2tUcmFjZURlcHRoKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsK
LSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGg9NSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9z
dGFja190cmFjZV9kZXB0aD01IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6OlN0YWNrVHJhY2VEZXB0aCg1KSwgZmFsc2UpOwogfQogCiBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIFN0cmVhbVJlc3VsdFRvKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90bz1sb2Nh
bGhvc3Q6MTIzNCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9zdHJlYW1fcmVzdWx0X3RvPWxvY2FsaG9zdDoxMjM0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oCiAg
ICAgICBhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0cmVhbVJlc3VsdFRvKCJsb2NhbGhvc3Q6MTIzNCIp
LCBmYWxzZSk7CkBAIC02MzYxLDMyICs2MjQxLDE4IEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
U3RyZWFtUmVzdWx0VG8pIHsKIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3Rocm93X29uX2Zh
aWx1cmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlV2l0aG91dFZhbHVl
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3RfdGhyb3dfb25fZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsIG51bGxwdHJ9OwogCi0g
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsK
KyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpUaHJvd09uRmFpbHVyZSh0
cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfdGhyb3dfb25fZmFp
bHVyZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBUaHJvd09uRmFpbHVyZUZhbHNlXzApIHsK
LSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF90
aHJvd19vbl9mYWlsdXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0wIiwgbnVsbHB0cn07CiAK
LSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9
OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RF
U1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25GYWlsdXJl
KGZhbHNlKSwgZmFsc2UpOwogfQpAQCAtNjM5NCwxNiArNjI2MCw5IEBAIFRFU1RfRihQYXJzZUZs
YWdzVGVzdCwgVGhyb3dPbkZhaWx1cmVGYWxzZV8wKSB7CiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1n
dGVzdF90aHJvd19vbl9mYWlsdXJlIGZsYWcgdGhhdCBoYXMgYSAidHJ1ZSIKIC8vIGRlZmluaXRp
b24uCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlVHJ1ZSkgewotICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3Rocm93X29u
X2ZhaWx1cmU9MSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlPTEiLCBudWxscHRyfTsKIAotICBjb25z
dCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6VGhyb3dPbkZhaWx1cmUodHJ1ZSks
IGZhbHNlKTsKIH0KQEAgLTY0MzgsNyArNjI5Nyw3IEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
V2lkZVN0cmluZ3MpIHsKICNpZiBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfCiBjbGFzcyBG
bGFnZmlsZVRlc3QgOiBwdWJsaWMgUGFyc2VGbGFnc1Rlc3QgewogIHB1YmxpYzoKLSAgdmlydHVh
bCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIFBhcnNlRmxh
Z3NUZXN0OjpTZXRVcCgpOwogCiAgICAgdGVzdGRhdGFfcGF0aF8uU2V0KGludGVybmFsOjpGaWxl
UGF0aCgKQEAgLTY0NDgsNyArNjMwNyw3IEBAIGNsYXNzIEZsYWdmaWxlVGVzdCA6IHB1YmxpYyBQ
YXJzZUZsYWdzVGVzdCB7CiAgICAgRVhQRUNUX1RSVUUodGVzdGRhdGFfcGF0aF8uQ3JlYXRlRm9s
ZGVyKCkpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJE
b3duKCkgb3ZlcnJpZGUgewogICAgIHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeDo6Um1EaXIodGVz
dGRhdGFfcGF0aF8uY19zdHIoKSk7CiAgICAgUGFyc2VGbGFnc1Rlc3Q6OlRlYXJEb3duKCk7CiAg
IH0KQEAgLTY0NzIsMTYgKzYzMzEsOSBAQCBURVNUX0YoRmxhZ2ZpbGVUZXN0LCBFbXB0eSkgewog
ICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RF
U1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2Zs
YWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9v
LmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3MoKSwgZmFsc2UpOwogfQpAQCAtNjQ5MywxNiArNjM0
NSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIEZpbHRlck5vbkVtcHR5KSB7CiAgIHN0ZDo6c3Ry
aW5nIGZsYWdmaWxlX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8gImZsYWdmaWxlPSIpICsgZmxhZ2ZpbGVfcGF0aC5jX3N0cigpOwogCi0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgZmxhZ2ZpbGVfZmxhZy5jX3N0cigp
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgZmxh
Z2ZpbGVfZmxhZy5jX3N0cigpLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJhYmMiKSwgZmFsc2UpOwogfQpAQCAtNjUxNiwxNiAr
NjM2MSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIFNldmVyYWxGbGFncykgewogICBzdGQ6OnN0
cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RFU1RfRkxBR19Q
UkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAotICBjb25zdCBj
aGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2ZsYWcuY19zdHIo
KSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsIGZs
YWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZXhwZWN0ZWRfZmxhZ3M7CiAgIGV4
cGVjdGVkX2ZsYWdzLmJyZWFrX29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNjU0MSwzNCArNjM3OSwz
NCBAQCBjbGFzcyBDdXJyZW50VGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3Rl
ZDoKICAgLy8gVGVzdHMgdGhhdCBjdXJyZW50X3Rlc3RfaW5mbygpIHJldHVybnMgTlVMTCBiZWZv
cmUgdGhlIGZpcnN0IHRlc3QgaW4KICAgLy8gdGhlIHRlc3QgY2FzZSBpcyBydW4uCi0gIHN0YXRp
YyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkg
ewogICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQu
CiAgICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgICBVbml0VGVzdDo6R2V0SW5z
dGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8g
PT0gTlVMTCkKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gbnVsbHB0cikKICAgICAgICAg
PDwgIlRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuIjsKICAg
fQogCiAgIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5zIE5VTEwgYWZ0
ZXIgdGhlIGxhc3QgdGVzdCBpbgogICAvLyB0aGUgdGVzdCBjYXNlIGhhcyBydW4uCi0gIHN0YXRp
YyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1
aXRlKCkgewogICAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgICAgVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gICAgRVhQRUNUX1RSVUUodGVz
dF9pbmZvID09IE5VTEwpCisgICAgRVhQRUNUX1RSVUUodGVzdF9pbmZvID09IG51bGxwdHIpCiAg
ICAgICAgIDw8ICJUaGVyZSBzaG91bGQgYmUgbm8gdGVzdHMgcnVubmluZyBhdCB0aGlzIHBvaW50
LiI7CiAgIH0KIH07CiAKIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5z
IFRlc3RJbmZvIGZvciBjdXJyZW50bHkgcnVubmluZwogLy8gdGVzdCBieSBjaGVja2luZyB0aGUg
ZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuCi1URVNUX0YoQ3VycmVu
dFRlc3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgeworVEVTVF9GKEN1
cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlKSB7CiAgIGNv
bnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5j
dXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRfVFJVRShOVUxMICE9IHRlc3RfaW5mbykKKyAg
QVNTRVJUX1RSVUUobnVsbHB0ciAhPSB0ZXN0X2luZm8pCiAgICAgICA8PCAiVGhlcmUgaXMgYSB0
ZXN0IHJ1bm5pbmcgc28gd2Ugc2hvdWxkIGhhdmUgYSB2YWxpZCBUZXN0SW5mby4iOwotICBFWFBF
Q1RfU1RSRVEoIkN1cnJlbnRUZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1l
KCkpCi0gICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5n
IHRlc3QgY2FzZS4iOwotICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdENh
c2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9U
ZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBlY3RlZCB0
aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBFWFBFQ1Rf
U1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlIiwgdGVzdF9pbmZvLT5uYW1lKCkp
CiAgICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRl
c3QuIjsKIH0KIApAQCAtNjU3NiwxNCArNjQxNCwxNCBAQCBURVNUX0YoQ3VycmVudFRlc3RJbmZv
VGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgewogLy8gdGVzdCBieSBjaGVja2lu
ZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuICBXZQogLy8g
dXNlIHRoaXMgdGVzdCB0byBzZWUgdGhhdCB0aGUgVGVzdEluZm8gb2JqZWN0IGFjdHVhbGx5IGNo
YW5nZWQgZnJvbQogLy8gdGhlIHByZXZpb3VzIGludm9jYXRpb24uCi1URVNUX0YoQ3VycmVudFRl
c3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENhc2UpIHsKK1RFU1RfRihDdXJy
ZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvclNlY29uZFRlc3RJbkFUZXN0U3VpdGUpIHsKICAgY29u
c3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1
cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKE5VTEwgIT0gdGVzdF9pbmZvKQorICBB
U1NFUlRfVFJVRShudWxscHRyICE9IHRlc3RfaW5mbykKICAgICAgIDw8ICJUaGVyZSBpcyBhIHRl
c3QgcnVubmluZyBzbyB3ZSBzaG91bGQgaGF2ZSBhIHZhbGlkIFRlc3RJbmZvLiI7Ci0gIEVYUEVD
VF9TVFJFUSgiQ3VycmVudFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUo
KSkKLSAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcg
dGVzdCBjYXNlLiI7Ci0gIEVYUEVDVF9TVFJFUSgiV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENh
c2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9U
ZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBlY3RlZCB0
aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBFWFBFQ1Rf
U1RSRVEoIldvcmtzRm9yU2Vjb25kVGVzdEluQVRlc3RTdWl0ZSIsIHRlc3RfaW5mby0+bmFtZSgp
KQogICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyB0
ZXN0LiI7CiB9CiAKQEAgLTY2MjgsMTIgKzY0NjYsOCBAQCBURVNUKE5lc3RlZFRlc3RpbmdOYW1l
c3BhY2VUZXN0LCBGYWlsdXJlKSB7CiAvLyBzdWNjZXNzZnVsbHkuCiBjbGFzcyBQcm90ZWN0ZWRG
aXh0dXJlTWV0aG9kc1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFs
IHZvaWQgU2V0VXAoKSB7Ci0gICAgVGVzdDo6U2V0VXAoKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQg
VGVhckRvd24oKSB7Ci0gICAgVGVzdDo6VGVhckRvd24oKTsKLSAgfQorICB2b2lkIFNldFVwKCkg
b3ZlcnJpZGUgeyBUZXN0OjpTZXRVcCgpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7
IFRlc3Q6OlRlYXJEb3duKCk7IH0KIH07CiAKIC8vIFN0cmVhbWluZ0Fzc2VydGlvbnNUZXN0IHRl
c3RzIHRoZSBzdHJlYW1pbmcgdmVyc2lvbnMgb2YgYSByZXByZXNlbnRhdGl2ZQpAQCAtNjgzMSw3
ICs2NjY1LDcgQEAgVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5TdGRvdXRJ
c1R0eSkgewogVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5UZXJtU3VwcG9y
dHNDb2xvcnMpIHsKICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7CiAKLSNpZiBHVEVTVF9P
U19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5H
VwogICAvLyBPbiBXaW5kb3dzLCB3ZSBpZ25vcmUgdGhlIFRFUk0gdmFyaWFibGUgYXMgaXQncyB1
c3VhbGx5IG5vdCBzZXQuCiAKICAgU2V0RW52KCJURVJNIiwgImR1bWIiKTsKQEAgLTcwMDYsMjAg
KzY4NDAsMTkgQEAgVEVTVChIYXNGYWlsdXJlVGVzdCwgV29ya3NPdXRzaWRlT2ZUZXN0Qm9keTIp
IHsKIAogY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIg
ewogIHB1YmxpYzoKLSAgVGVzdExpc3RlbmVyKCkgOiBvbl9zdGFydF9jb3VudGVyXyhOVUxMKSwg
aXNfZGVzdHJveWVkXyhOVUxMKSB7fQorICBUZXN0TGlzdGVuZXIoKSA6IG9uX3N0YXJ0X2NvdW50
ZXJfKG51bGxwdHIpLCBpc19kZXN0cm95ZWRfKG51bGxwdHIpIHt9CiAgIFRlc3RMaXN0ZW5lcihp
bnQqIG9uX3N0YXJ0X2NvdW50ZXIsIGJvb2wqIGlzX2Rlc3Ryb3llZCkKICAgICAgIDogb25fc3Rh
cnRfY291bnRlcl8ob25fc3RhcnRfY291bnRlciksCiAgICAgICAgIGlzX2Rlc3Ryb3llZF8oaXNf
ZGVzdHJveWVkKSB7fQogCi0gIHZpcnR1YWwgflRlc3RMaXN0ZW5lcigpIHsKKyAgflRlc3RMaXN0
ZW5lcigpIG92ZXJyaWRlIHsKICAgICBpZiAoaXNfZGVzdHJveWVkXykKICAgICAgICppc19kZXN0
cm95ZWRfID0gdHJ1ZTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAgaWYgKG9u
X3N0YXJ0X2NvdW50ZXJfICE9IE5VTEwpCi0gICAgICAoKm9uX3N0YXJ0X2NvdW50ZXJfKSsrOwor
ICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykg
b3ZlcnJpZGUgeworICAgIGlmIChvbl9zdGFydF9jb3VudGVyXyAhPSBudWxscHRyKSAoKm9uX3N0
YXJ0X2NvdW50ZXJfKSsrOwogICB9CiAKICBwcml2YXRlOgpAQCAtNzAzMSw5ICs2ODY0LDkgQEAg
Y2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogVEVT
VChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0LCBDb25zdHJ1Y3Rpb25Xb3JrcykgewogICBUZXN0RXZl
bnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogCi0gIEVYUEVDVF9UUlVFKFRlc3RFdmVudExpc3RlbmVy
c0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKSAhPSBOVUxMKTsKLSAgRVhQRUNUX1RS
VUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKLSAgRVhQRUNU
X1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1sX2dlbmVyYXRvcigpID09IE5VTEwpOworICBFWFBF
Q1RfVFJVRShUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVy
cykgIT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jlc3VsdF9w
cmludGVyKCkgPT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3ht
bF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKIH0KIAogLy8gVGVzdHMgdGhhdCB0aGUgVGVzdEV2
ZW50TGlzdGVuZXJzIGRlc3RydWN0b3IgZGVsZXRlcyBhbGwgdGhlIGxpc3RlbmVycyBpdApAQCAt
NzA0MiwxMiArNjg3NSwxMiBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIERlc3RydWN0
aW9uV29ya3MpIHsKICAgYm9vbCBkZWZhdWx0X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ryb3llZCA9
IGZhbHNlOwogICBib29sIGRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7
CiAgIGJvb2wgZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRlc3RMaXN0
ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBO
VUxMLCAmZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl9pc19kZXN0cm95ZWQpOwotICBUZXN0TGlzdGVu
ZXIqIGRlZmF1bHRfeG1sX3ByaW50ZXIgPSBuZXcgVGVzdExpc3RlbmVyKAotICAgICAgTlVMTCwg
JmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAgVGVzdExpc3RlbmVyKiBleHRy
YV9saXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBOVUxMLCAmZXh0cmFfbGlzdGVu
ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3Jlc3VsdF9wcmludGVy
ID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfcmVzdWx0X3ByaW50
ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3htbF9wcmludGVyID0K
KyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNf
ZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBleHRyYV9saXN0ZW5lciA9CisgICAgICBuZXcg
VGVzdExpc3RlbmVyKG51bGxwdHIsICZleHRyYV9saXN0ZW5lcl9pc19kZXN0cm95ZWQpOwogCiAg
IHsKICAgICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwpAQCAtNzA4NywyMSArNjkyMCwy
MSBAQCBjbGFzcyBTZXF1ZW5jZVRlc3RpbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVu
dExpc3RlbmVyIHsKICAgICAgIDogdmVjdG9yXyh2ZWN0b3IpLCBpZF8oaWQpIHt9CiAKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0
RXZlbnREZXNjcmlwdGlvbigiT25UZXN0UHJvZ3JhbVN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVh
bCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsK
KyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBv
dmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9u
VGVzdFByb2dyYW1FbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9u
U3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVzdEl0ZXJh
dGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+
cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdEl0ZXJhdGlvblN0YXJ0IikpOwog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLypp
dGVyYXRpb24qLykgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9u
Ki8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNjcmlwdGlv
bigiT25UZXN0SXRlcmF0aW9uRW5kIikpOwogICB9CiAKQEAgLTcxNzIsNyArNzAwNSw3IEBAIFRF
U1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwgUmVsZWFzZSkgewogICAgIEVYUEVDVF9FUShsaXN0
ZW5lciwgbGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpKTsKICAgICBUZXN0RXZlbnRMaXN0ZW5l
cnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycyktPk9uVGVzdFByb2dyYW1TdGFydCgK
ICAgICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShsaXN0
ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikgPT0gTlVMTCk7CisgICAgRVhQRUNUX1RSVUUobGlzdGVu
ZXJzLlJlbGVhc2UobGlzdGVuZXIpID09IG51bGxwdHIpOwogICB9CiAgIEVYUEVDVF9FUSgwLCBv
bl9zdGFydF9jb3VudGVyKTsKICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CkBAIC03MTgy
LDcgKzcwMTUsNyBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIFJlbGVhc2UpIHsKIC8v
IFRlc3RzIHRoYXQgbm8gZXZlbnRzIGFyZSBmb3J3YXJkZWQgd2hlbiBldmVudCBmb3J3YXJkaW5n
IGlzIGRpc2FibGVkLgogVEVTVChFdmVudExpc3RlbmVyVGVzdCwgU3VwcHJlc3NFdmVudEZvcndh
cmRpbmcpIHsKICAgaW50IG9uX3N0YXJ0X2NvdW50ZXIgPSAwOwotICBUZXN0TGlzdGVuZXIqIGxp
c3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3RhcnRfY291bnRlciwgTlVMTCk7CisgIFRl
c3RMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKCZvbl9zdGFydF9jb3VudGVy
LCBudWxscHRyKTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogICBsaXN0ZW5l
cnMuQXBwZW5kKGxpc3RlbmVyKTsKQEAgLTcyMjMsOSArNzA1Niw5IEBAIFRFU1QoRXZlbnRMaXN0
ZW5lclRlc3QsIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIpIHsKIAogICAvLyBSZXBsYWNpbmcgZGVm
YXVsdF9yZXN1bHRfcHJpbnRlciB3aXRoIHNvbWV0aGluZyBlbHNlIHNob3VsZCByZW1vdmUgaXQK
ICAgLy8gZnJvbSB0aGUgbGlzdCBhbmQgZGVzdHJveSBpdC4KLSAgVGVzdEV2ZW50TGlzdGVuZXJz
QWNjZXNzb3I6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKCZsaXN0ZW5lcnMsIE5VTEwpOworICBU
ZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIoJmxpc3Rl
bmVycywgbnVsbHB0cik7CiAKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0
X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVz
dWx0X3ByaW50ZXIoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJveWVkKTsK
IAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwg
dGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTcyNDksNyArNzA4Miw3IEBAIFRFU1QoRXZlbnRMaXN0
ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFJlc3VsdFByaW50ZXJXb3JrcykgewogICAgIFRlc3RF
dmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0UmVzdWx0UHJpbnRlcigmbGlzdGVuZXJz
LCBsaXN0ZW5lcik7CiAKICAgICBFWFBFQ1RfRVEobGlzdGVuZXIsIGxpc3RlbmVycy5SZWxlYXNl
KGxpc3RlbmVyKSk7Ci0gICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3By
aW50ZXIoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1
bHRfcHJpbnRlcigpID09IG51bGxwdHIpOwogICAgIEVYUEVDVF9GQUxTRShpc19kZXN0cm95ZWQp
OwogCiAgICAgLy8gQnJvYWRjYXN0aW5nIGV2ZW50cyBub3cgc2hvdWxkIG5vdCBhZmZlY3QgZGVm
YXVsdF9yZXN1bHRfcHJpbnRlci4KQEAgLTcyODIsOSArNzExNSw5IEBAIFRFU1QoRXZlbnRMaXN0
ZW5lclRlc3QsIGRlZmF1bHRfeG1sX2dlbmVyYXRvcikgewogCiAgIC8vIFJlcGxhY2luZyBkZWZh
dWx0X3htbF9nZW5lcmF0b3Igd2l0aCBzb21ldGhpbmcgZWxzZSBzaG91bGQgcmVtb3ZlIGl0CiAg
IC8vIGZyb20gdGhlIGxpc3QgYW5kIGRlc3Ryb3kgaXQuCi0gIFRlc3RFdmVudExpc3RlbmVyc0Fj
Y2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJhdG9yKCZsaXN0ZW5lcnMsIE5VTEwpOworICBUZXN0
RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlzdGVuZXJz
LCBudWxscHRyKTsKIAotICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJh
dG9yKCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5l
cmF0b3IoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJveWVkKTsKIAogICAv
LyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwgdGhlIHNh
bWUsIGluZGljYXRpbmcKQEAgLTczMDgsNyArNzE0MSw3IEBAIFRFU1QoRXZlbnRMaXN0ZW5lclRl
c3QsIFJlbW92aW5nRGVmYXVsdFhtbEdlbmVyYXRvcldvcmtzKSB7CiAgICAgVGVzdEV2ZW50TGlz
dGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3IoJmxpc3RlbmVycywgbGlzdGVu
ZXIpOwogCiAgICAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5l
cikpOwotICAgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0b3IoKSA9
PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJhdG9y
KCkgPT0gbnVsbHB0cik7CiAgICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CiAKICAgICAv
LyBCcm9hZGNhc3RpbmcgZXZlbnRzIG5vdyBzaG91bGQgbm90IGFmZmVjdCBkZWZhdWx0X3htbF9n
ZW5lcmF0b3IuCkBAIC03MzcxLDk1ICs3MjA0LDgzIEBAIEdURVNUX1RFU1QoQWx0ZXJuYXRpdmVO
YW1lVGVzdCwgV29ya3MpIHsgIC8vIEdURVNUX1RFU1QgaXMgdGhlIHNhbWUgYXMgVEVTVC4KIAog
Ly8gVGVzdHMgZm9yIGludGVybmFsIHV0aWxpdGllcyBuZWNlc3NhcnkgZm9yIGltcGxlbWVudGF0
aW9uIG9mIHRoZSB1bml2ZXJzYWwKIC8vIHByaW50aW5nLgotLy8gRklYTUU6IEZpbmQgYSBiZXR0
ZXIgaG9tZSBmb3IgdGhlbS4KIAogY2xhc3MgQ29udmVyc2lvbkhlbHBlckJhc2Uge307CiBjbGFz
cyBDb252ZXJzaW9uSGVscGVyRGVyaXZlZCA6IHB1YmxpYyBDb252ZXJzaW9uSGVscGVyQmFzZSB7
fTsKIAotLy8gVGVzdHMgdGhhdCBJc0FQcm90b2NvbE1lc3NhZ2U8VD46OnZhbHVlIGlzIGEgY29t
cGlsZS10aW1lIGNvbnN0YW50LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBWYWx1ZUlz
Q29tcGlsZVRpbWVDb25zdGFudCkgewotICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oSXNBUHJvdG9j
b2xNZXNzYWdlPFByb3RvY29sTWVzc2FnZT46OnZhbHVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3RfdHJ1ZSk7Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXyghSXNBUHJvdG9jb2xNZXNz
YWdlPGludD46OnZhbHVlLCBjb25zdF9mYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNBUHJv
dG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBpcwotLy8gcHJvdG8yOjpNZXNz
YWdlIG9yIGEgc3ViLWNsYXNzIG9mIGl0LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBW
YWx1ZUlzVHJ1ZVdoZW5UeXBlSXNBUHJvdG9jb2xNZXNzYWdlKSB7Ci0gIEVYUEVDVF9UUlVFKElz
QVByb3RvY29sTWVzc2FnZTwgOjpwcm90bzI6Ok1lc3NhZ2U+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9U
UlVFKElzQVByb3RvY29sTWVzc2FnZTxQcm90b2NvbE1lc3NhZ2U+Ojp2YWx1ZSk7Ci19Ci0KLS8v
IFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyBmYWxzZSB3aGVuIFQg
aXMgbmVpdGhlcgotLy8gUHJvdG9jb2xNZXNzYWdlIG5vciBhIHN1Yi1jbGFzcyBvZiBpdC4KLVRF
U1QoSXNBUHJvdG9jb2xNZXNzYWdlVGVzdCwgVmFsdWVJc0ZhbHNlV2hlblR5cGVJc05vdEFQcm90
b2NvbE1lc3NhZ2UpIHsKLSAgRVhQRUNUX0ZBTFNFKElzQVByb3RvY29sTWVzc2FnZTxpbnQ+Ojp2
YWx1ZSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FQcm90b2NvbE1lc3NhZ2U8Y29uc3QgQ29udmVyc2lv
bkhlbHBlckJhc2U+Ojp2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgQ29tcGlsZUFzc2VydFR5
cGVzRXF1YWwgY29tcGlsZXMgd2hlbiB0aGUgdHlwZSBhcmd1bWVudHMgYXJlCi0vLyBlcXVhbC4K
LVRFU1QoQ29tcGlsZUFzc2VydFR5cGVzRXF1YWwsIENvbXBpbGVzV2hlblR5cGVzQXJlRXF1YWwp
IHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8dm9pZCwgdm9pZD4oKTsKLSAgQ29tcGlsZUFz
c2VydFR5cGVzRXF1YWw8aW50KiwgaW50Kj4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVS
ZWZlcmVuY2UgZG9lcyBub3QgYWZmZWN0IG5vbi1yZWZlcmVuY2UgdHlwZXMuCi1URVNUKFJlbW92
ZVJlZmVyZW5jZVRlc3QsIERvZXNOb3RBZmZlY3ROb25SZWZlcmVuY2VUeXBlKSB7Ci0gIENvbXBp
bGVBc3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlUmVmZXJlbmNlPGludD46OnR5cGU+KCk7Ci0g
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5jZTxjb25z
dCBjaGFyPjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVSZWZlcmVuY2UgcmVt
b3ZlcyByZWZlcmVuY2UgZnJvbSByZWZlcmVuY2UgdHlwZXMuCi1URVNUKFJlbW92ZVJlZmVyZW5j
ZVRlc3QsIFJlbW92ZXNSZWZlcmVuY2UpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50
LCBSZW1vdmVSZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0Vx
dWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5jZTxjb25zdCBjaGFyJj46OnR5cGU+KCk7Ci19
CitzdHJ1Y3QgSGFzRGVidWdTdHJpbmdNZXRob2RzIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJp
bmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBzdGQ6OnN0cmluZyBTaG9ydERlYnVnU3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3RzIEdURVNUX1JFTU9WRV9SRUZF
UkVOQ0VfLgorc3RydWN0IEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzIDogcHVibGljIEhhc0Rl
YnVnU3RyaW5nTWV0aG9kcyB7fTsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
Mj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlKCkgewotICBDb21waWxlQXNzZXJ0VHlw
ZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV8oVDIpPigpOwotfQorc3RydWN0IFdy
b25nVHlwZURlYnVnU3RyaW5nTWV0aG9kIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJpbmcoKSBj
b25zdCB7IHJldHVybiAiIjsgfQorICBpbnQgU2hvcnREZWJ1Z1N0cmluZygpIGNvbnN0IHsgcmV0
dXJuIDE7IH0KK307CiAKLVRFU1QoUmVtb3ZlUmVmZXJlbmNlVGVzdCwgTWFjcm9WZXJzaW9uKSB7
Ci0gIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZTxpbnQsIGludD4oKTsKLSAgVGVzdEdUZXN0UmVt
b3ZlUmVmZXJlbmNlPGNvbnN0IGNoYXIsIGNvbnN0IGNoYXImPigpOwotfQorc3RydWN0IE5vdENv
bnN0RGVidWdTdHJpbmdNZXRob2QgeworICBzdGQ6OnN0cmluZyBEZWJ1Z1N0cmluZygpIHsgcmV0
dXJuICIiOyB9CisgIHN0ZDo6c3RyaW5nIFNob3J0RGVidWdTdHJpbmcoKSBjb25zdCB7IHJldHVy
biAiIjsgfQorfTsKIAorc3RydWN0IE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZCB7CisgIHN0ZDo6
c3RyaW5nIERlYnVnU3RyaW5nKCkgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3RzIHRoYXQg
UmVtb3ZlQ29uc3QgZG9lcyBub3QgYWZmZWN0IG5vbi1jb25zdCB0eXBlcy4KLVRFU1QoUmVtb3Zl
Q29uc3RUZXN0LCBEb2VzTm90QWZmZWN0Tm9uQ29uc3RUeXBlKSB7Ci0gIENvbXBpbGVBc3NlcnRU
eXBlc0VxdWFsPGludCwgUmVtb3ZlQ29uc3Q8aW50Pjo6dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2Vy
dFR5cGVzRXF1YWw8Y2hhciYsIFJlbW92ZUNvbnN0PGNoYXImPjo6dHlwZT4oKTsKK3N0cnVjdCBJ
bmNvbXBsZXRlVHlwZTsKKworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVi
dWdTdHJpbmc8VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lCisvLyBjb25zdGFudC4KK1RFU1Qo
SGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nVGVzdCwgVmFsdWVJc0NvbXBpbGVUaW1l
Q29uc3RhbnQpIHsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKAorICAgICAgSGFzRGVidWdTdHJp
bmdBbmRTaG9ydERlYnVnU3RyaW5nPEhhc0RlYnVnU3RyaW5nTWV0aG9kcz46OnZhbHVlLAorICAg
ICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXygKKyAgICAgIEhhc0RlYnVn
U3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxJbmhlcml0c0RlYnVnU3RyaW5nTWV0aG9kcz46OnZh
bHVlLAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhIYXNEZWJ1
Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW5oZXJpdHNEZWJ1Z1N0cmluZ01ldGhvZHM+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0X3RydWUpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAh
SGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFdyb25nVHlwZURlYnVnU3RyaW5nTWV0
aG9kPjo6dmFsdWUsCisgICAgICBjb25zdF9mYWxzZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJU
XygKKyAgICAgICFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8Tm90Q29uc3REZWJ1
Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBHVEVTVF9DT01Q
SUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPE1p
c3NpbmdEZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBH
VEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVn
U3RyaW5nPEluY29tcGxldGVUeXBlPjo6dmFsdWUsIGNvbnN0X2ZhbHNlKTsKKyAgR1RFU1RfQ09N
UElMRV9BU1NFUlRfKCFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8aW50Pjo6dmFs
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9mYWxzZSk7CiB9CiAKLS8vIFRlc3Rz
IHRoYXQgUmVtb3ZlQ29uc3QgcmVtb3ZlcyBjb25zdCBmcm9tIGNvbnN0IHR5cGVzLgotVEVTVChS
ZW1vdmVDb25zdFRlc3QsIFJlbW92ZXNDb25zdCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVh
bDxpbnQsIFJlbW92ZUNvbnN0PGNvbnN0IGludD46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRU
eXBlc0VxdWFsPGNoYXJbMl0sIFJlbW92ZUNvbnN0PGNvbnN0IGNoYXJbMl0+Ojp0eXBlPigpOwot
ICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyWzJdWzNdLCBSZW1vdmVDb25zdDxjb25zdCBj
aGFyWzJdWzNdPjo6dHlwZT4oKTsKKy8vIFRlc3RzIHRoYXQgSGFzRGVidWdTdHJpbmdBbmRTaG9y
dERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBoYXMKKy8vIG5lZWRlZCBtZXRo
b2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmdUZXN0LAorICAgICBW
YWx1ZUlzVHJ1ZVdoZW5UeXBlSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nKSB7Cisg
IEVYUEVDVF9UUlVFKAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPElu
aGVyaXRzRGVidWdTdHJpbmdNZXRob2RzPjo6dmFsdWUpOwogfQogCi0vLyBUZXN0cyBHVEVTVF9S
RU1PVkVfQ09OU1RfLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotdm9p
ZCBUZXN0R1Rlc3RSZW1vdmVDb25zdCgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEs
IEdURVNUX1JFTU9WRV9DT05TVF8oVDIpPigpOwotfQotCi1URVNUKFJlbW92ZUNvbnN0VGVzdCwg
TWFjcm9WZXJzaW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZUNvbnN0PGludCwgaW50PigpOwotICBU
ZXN0R1Rlc3RSZW1vdmVDb25zdDxkb3VibGUmLCBkb3VibGUmPigpOwotICBUZXN0R1Rlc3RSZW1v
dmVDb25zdDxjaGFyLCBjb25zdCBjaGFyPigpOworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1Z1N0cmlu
Z0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVAorLy8gZG9lc24n
dCBoYXZlIG5lZWRlZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdT
dHJpbmdUZXN0LAorICAgICBWYWx1ZUlzRmFsc2VXaGVuVHlwZUlzTm90QVByb3RvY29sTWVzc2Fn
ZSkgeworICBFWFBFQ1RfRkFMU0UoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPGlu
dD46OnZhbHVlKTsKKyAgRVhQRUNUX0ZBTFNFKAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9y
dERlYnVnU3RyaW5nPGNvbnN0IENvbnZlcnNpb25IZWxwZXJCYXNlPjo6dmFsdWUpOwogfQogCiAv
LyBUZXN0cyBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8uCiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiB2b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZUFu
ZENvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JF
RkVSRU5DRV9BTkRfQ09OU1RfKFQyKT4oKTsKKyAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8
VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUMik+Ojp2YWx1ZSwKKyAgICAg
ICAgICAgICAgICAiR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfIGZhaWxlZC4iKTsK
IH0KIAogVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKQEAgLTc0NzAs
MzUgKzcyOTEsMTIgQEAgVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsK
ICAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlQW5kQ29uc3Q8Y29uc3QgY2hhciosIGNvbnN0IGNo
YXIqPigpOwogfQogCi0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBkb2VzIG5vdCBhZmZlY3Qg
cmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBEb2VzTm90QWZmZWN0UmVm
ZXJlbmNlVHlwZSkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQmLCBBZGRSZWZlcmVu
Y2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXIm
LCBBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciY+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0
IEFkZFJlZmVyZW5jZSBhZGRzIHJlZmVyZW5jZSB0byBub24tcmVmZXJlbmNlIHR5cGVzLgotVEVT
VChBZGRSZWZlcmVuY2VUZXN0LCBBZGRzUmVmZXJlbmNlKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBl
c0VxdWFsPGludCYsIEFkZFJlZmVyZW5jZTxpbnQ+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0
VHlwZXNFcXVhbDxjb25zdCBjaGFyJiwgQWRkUmVmZXJlbmNlPGNvbnN0IGNoYXI+Ojp0eXBlPigp
OwotfQotCi0vLyBUZXN0cyBHVEVTVF9BRERfUkVGRVJFTkNFXy4KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0QWRkUmVmZXJlbmNlKCkgewotICBD
b21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfQUREX1JFRkVSRU5DRV8oVDIpPigpOwot
fQotCi1URVNUKEFkZFJlZmVyZW5jZVRlc3QsIE1hY3JvVmVyc2lvbikgewotICBUZXN0R1Rlc3RB
ZGRSZWZlcmVuY2U8aW50JiwgaW50PigpOwotICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8Y29uc3Qg
Y2hhciYsIGNvbnN0IGNoYXImPigpOwotfQotCiAvLyBUZXN0cyBHVEVTVF9SRUZFUkVOQ0VfVE9f
Q09OU1RfLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgogdm9pZCBUZXN0
R1Rlc3RSZWZlcmVuY2VUb0NvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwg
R1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUMik+KCk7CisgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19zYW1lPFQxLCBHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfKFQyKT46OnZhbHVlLAorICAgICAg
ICAgICAgICAgICJHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfIGZhaWxlZC4iKTsKIH0KIAogVEVT
VChHVGVzdFJlZmVyZW5jZVRvQ29uc3RUZXN0LCBXb3JrcykgewpAQCAtNzUwOCwzNSArNzMwNiw2
IEBAIFRFU1QoR1Rlc3RSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKICAgVGVzdEdUZXN0
UmVmZXJlbmNlVG9Db25zdDxjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHN0ZDo6c3RyaW5nJj4o
KTsKIH0KIAotLy8gVGVzdHMgdGhhdCBJbXBsaWNpdGx5Q29udmVydGlibGU8VDEsIFQyPjo6dmFs
dWUgaXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi1URVNUKEltcGxpY2l0bHlDb252ZXJ0aWJs
ZVRlc3QsIFZhbHVlSXNDb21waWxlVGltZUNvbnN0YW50KSB7Ci0gIEdURVNUX0NPTVBJTEVfQVNT
RVJUXygoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCwgaW50Pjo6dmFsdWUpLCBjb25zdF90cnVl
KTsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKCghSW1wbGljaXRseUNvbnZlcnRpYmxlPHZvaWQq
LCBpbnQqPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfZmFsc2UpOwot
fQotCi0vLyBUZXN0cyB0aGF0IEltcGxpY2l0bHlDb252ZXJ0aWJsZTxUMSwgVDI+Ojp2YWx1ZSBp
cyB0cnVlIHdoZW4gVDEgY2FuCi0vLyBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBUMi4KLVRF
U1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJc1RydWVXaGVuQ29udmVydGlibGUp
IHsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQsIGRvdWJsZT46OnZh
bHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8ZG91YmxlLCBpbnQ+
Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCosIHZv
aWQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQq
LCBjb25zdCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0
aWJsZTxDb252ZXJzaW9uSGVscGVyRGVyaXZlZCYsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgQ29udmVyc2lvbkhlbHBlckJhc2UmPjo6dmFsdWUpKTsKLSAgRVhQ
RUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBDb252ZXJzaW9uSGVscGVyQmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9uSGVscGVy
QmFzZT46OnZhbHVlKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSW1wbGljaXRseUNvbnZlcnRpYmxl
PFQxLCBUMj46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVDEKLS8vIGNhbm5vdCBiZSBpbXBsaWNpdGx5
IGNvbnZlcnRlZCB0byBUMi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJ
c0ZhbHNlV2hlbk5vdENvbnZlcnRpYmxlKSB7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNv
bnZlcnRpYmxlPGRvdWJsZSwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGlj
aXRseUNvbnZlcnRpYmxlPHZvaWQqLCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZBTFNFKChJ
bXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgaW50KiwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVD
VF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPENvbnZlcnNpb25IZWxwZXJCYXNlJiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVyc2lvbkhlbHBlckRlcml2
ZWQmPjo6dmFsdWUpKTsKLX0KIAogLy8gVGVzdHMgSXNDb250YWluZXJUZXN0LgogCkBAIC03NTU1
LDcgKzczMjQsNiBAQCBURVNUKElzQ29udGFpbmVyVGVzdFRlc3QsIFdvcmtzRm9yQ29udGFpbmVy
KSB7CiAgICAgICAgICAgICBzaXplb2YoSXNDb250YWluZXJUZXN0PHN0ZDo6bWFwPGludCwgZG91
YmxlPiA+KDApKSk7CiB9CiAKLSNpZiBHVEVTVF9MQU5HX0NYWDExCiBzdHJ1Y3QgQ29uc3RPbmx5
Q29udGFpbmVyV2l0aFBvaW50ZXJJdGVyYXRvciB7CiAgIHVzaW5nIGNvbnN0X2l0ZXJhdG9yID0g
aW50KjsKICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKQEAgLTc1NzcsNyArNzM0NSw2
IEBAIFRFU1QoSXNDb250YWluZXJUZXN0VGVzdCwgQ29uc3RPbmx5Q29udGFpbmVyKSB7CiAgIEVY
UEVDVF9FUShzaXplb2YoSXNDb250YWluZXIpLAogICAgICAgICAgICAgc2l6ZW9mKElzQ29udGFp
bmVyVGVzdDxDb25zdE9ubHlDb250YWluZXJXaXRoQ2xhc3NJdGVyYXRvcj4oMCkpKTsKIH0KLSNl
bmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQogCiAvLyBUZXN0cyBJc0hhc2hUYWJsZS4KIHN0cnVj
dCBBSGFzaFRhYmxlIHsKQEAgLTc1OTAsMTMgKzczNTcsOCBAQCBzdHJ1Y3QgTm90UmVhbGx5QUhh
c2hUYWJsZSB7CiBURVNUKElzSGFzaFRhYmxlLCBCYXNpYykgewogICBFWFBFQ1RfVFJVRSh0ZXN0
aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8QUhhc2hUYWJsZT46OnZhbHVlKTsKICAgRVhQRUNU
X0ZBTFNFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxOb3RSZWFsbHlBSGFzaFRhYmxl
Pjo6dmFsdWUpOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKICAgRVhQRUNUX0ZBTFNFKHRlc3Rpbmc6
OmludGVybmFsOjpJc0hhc2hUYWJsZTxzdGQ6OnZlY3RvcjxpbnQ+Pjo6dmFsdWUpOwogICBFWFBF
Q1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8c3RkOjp1bm9yZGVyZWRfc2V0
PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKLSNpZiBHVEVTVF9I
QVNfSEFTSF9TRVRfCi0gIEVYUEVDVF9UUlVFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJs
ZTxfX2dudV9jeHg6Omhhc2hfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hB
U19IQVNIX1NFVF8KIH0KIAogLy8gVGVzdHMgQXJyYXlFcSgpLgpAQCAtNzc0Niw2ICs3NTA4LDIy
MSBAQCBURVNUKE5hdGl2ZUFycmF5VGVzdCwgV29ya3NGb3JUd29EaW1lbnNpb25hbEFycmF5KSB7
CiAgIEVYUEVDVF9FUShhLCBuYS5iZWdpbigpKTsKIH0KIAorLy8gSW5kZXhTZXF1ZW5jZQorVEVT
VChJbmRleFNlcXVlbmNlLCBNYWtlSW5kZXhTZXF1ZW5jZSkgeworICB1c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6SW5kZXhTZXF1ZW5jZTsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VJ
bmRleFNlcXVlbmNlOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8SW5kZXhT
ZXF1ZW5jZTw+LCBNYWtlSW5kZXhTZXF1ZW5jZTwwPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVD
VF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDA+LCBNYWtlSW5kZXhT
ZXF1ZW5jZTwxPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6
aXNfc2FtZTxJbmRleFNlcXVlbmNlPDAsIDE+LCBNYWtlSW5kZXhTZXF1ZW5jZTwyPjo6dHlwZT46
OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKCgKKyAgICAgIHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVl
bmNlPDAsIDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPjo6dHlwZT46OnZhbHVlKSk7CisgIEVY
UEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfYmFzZV9vZjxJbmRleFNlcXVlbmNlPDAsIDEsIDI+
LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPj46OnZhbHVlKSk7Cit9CisKKy8vIEVsZW1Gcm9tTGlzdAor
VEVTVChFbGVtRnJvbUxpc3QsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpF
bGVtRnJvbUxpc3Q7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxpbnQsIEVs
ZW1Gcm9tTGlzdDwwLCBpbnQsIGRvdWJsZSwgY2hhcj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBF
Q1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8ZG91YmxlLCBFbGVtRnJvbUxpc3Q8MSwgaW50
LCBkb3VibGUsIGNoYXI+Ojp0eXBlPjo6dmFsdWUpKTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICAo
c3RkOjppc19zYW1lPGNoYXIsIEVsZW1Gcm9tTGlzdDwyLCBpbnQsIGRvdWJsZSwgY2hhcj46OnR5
cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgoCisgICAgICBzdGQ6OmlzX3NhbWU8Y2hhciwg
RWxlbUZyb21MaXN0PDcsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciwgaW50LCBpbnQsIGludCwgaW50
Pjo6dHlwZT46OnZhbHVlKSk7Cit9CisKKy8vIEZsYXRUdXBsZQorVEVTVChGbGF0VHVwbGUsIEJh
c2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1
cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4gdHVwbGUgPSB7fTsKKyAgRVhQRUNUX0VRKDAs
IHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDAuMCwgdHVwbGUuR2V0PDE+KCkpOworICBF
WFBFQ1RfRVEobnVsbHB0ciwgdHVwbGUuR2V0PDI+KCkpOworCisgIHR1cGxlID0gRmxhdFR1cGxl
PGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4oCisgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6Rmxh
dFR1cGxlQ29uc3RydWN0VGFne30sIDcsIDMuMiwgIkZvbyIpOworICBFWFBFQ1RfRVEoNywgdHVw
bGUuR2V0PDA+KCkpOworICBFWFBFQ1RfRVEoMy4yLCB0dXBsZS5HZXQ8MT4oKSk7CisgIEVYUEVD
VF9FUShzdGQ6OnN0cmluZygiRm9vIiksIHR1cGxlLkdldDwyPigpKTsKKworICB0dXBsZS5HZXQ8
MT4oKSA9IDUuMTsKKyAgRVhQRUNUX0VRKDUuMSwgdHVwbGUuR2V0PDE+KCkpOworfQorCituYW1l
c3BhY2Ugeworc3RkOjpzdHJpbmcgQWRkSW50VG9TdHJpbmcoaW50IGksIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBzKSB7CisgIHJldHVybiBzICsgc3RkOjp0b19zdHJpbmcoaSk7Cit9Cit9ICAvLyBuYW1l
c3BhY2UKKworVEVTVChGbGF0VHVwbGUsIEFwcGx5KSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1cGxlPGludCwgc3RkOjpzdHJpbmc+IHR1cGxle3Rl
c3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RUYWd7fSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUsICJIZWxsbyJ9OworCisgIC8vIExhbWJkYS4KKyAgRVhQ
RUNUX1RSVUUodHVwbGUuQXBwbHkoW10oaW50IGksIGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSAtPiBi
b29sIHsKKyAgICByZXR1cm4gaSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHMuc2l6ZSgpKTsKKyAgfSkp
OworCisgIC8vIEZ1bmN0aW9uLgorICBFWFBFQ1RfRVEodHVwbGUuQXBwbHkoQWRkSW50VG9TdHJp
bmcpLCAiSGVsbG81Iik7CisKKyAgLy8gTXV0YXRpbmcgb3BlcmF0aW9ucy4KKyAgdHVwbGUuQXBw
bHkoW10oaW50JiBpLCBzdGQ6OnN0cmluZyYgcykgeworICAgICsraTsKKyAgICBzICs9IHM7Cisg
IH0pOworICBFWFBFQ1RfRVEodHVwbGUuR2V0PDA+KCksIDYpOworICBFWFBFQ1RfRVEodHVwbGUu
R2V0PDE+KCksICJIZWxsb0hlbGxvIik7Cit9CisKK3N0cnVjdCBDb25zdHJ1Y3Rpb25Db3VudGlu
ZyB7CisgIENvbnN0cnVjdGlvbkNvdW50aW5nKCkgeyArK2RlZmF1bHRfY3Rvcl9jYWxsczsgfQor
ICB+Q29uc3RydWN0aW9uQ291bnRpbmcoKSB7ICsrZHRvcl9jYWxsczsgfQorICBDb25zdHJ1Y3Rp
b25Db3VudGluZyhjb25zdCBDb25zdHJ1Y3Rpb25Db3VudGluZyYpIHsgKytjb3B5X2N0b3JfY2Fs
bHM7IH0KKyAgQ29uc3RydWN0aW9uQ291bnRpbmcoQ29uc3RydWN0aW9uQ291bnRpbmcmJikgbm9l
eGNlcHQgeyArK21vdmVfY3Rvcl9jYWxsczsgfQorICBDb25zdHJ1Y3Rpb25Db3VudGluZyYgb3Bl
cmF0b3I9KGNvbnN0IENvbnN0cnVjdGlvbkNvdW50aW5nJikgeworICAgICsrY29weV9hc3NpZ25t
ZW50X2NhbGxzOworICAgIHJldHVybiAqdGhpczsKKyAgfQorICBDb25zdHJ1Y3Rpb25Db3VudGlu
ZyYgb3BlcmF0b3I9KENvbnN0cnVjdGlvbkNvdW50aW5nJiYpIG5vZXhjZXB0IHsKKyAgICArK21v
dmVfYXNzaWdubWVudF9jYWxsczsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBzdGF0aWMg
dm9pZCBSZXNldCgpIHsKKyAgICBkZWZhdWx0X2N0b3JfY2FsbHMgPSAwOworICAgIGR0b3JfY2Fs
bHMgPSAwOworICAgIGNvcHlfY3Rvcl9jYWxscyA9IDA7CisgICAgbW92ZV9jdG9yX2NhbGxzID0g
MDsKKyAgICBjb3B5X2Fzc2lnbm1lbnRfY2FsbHMgPSAwOworICAgIG1vdmVfYXNzaWdubWVudF9j
YWxscyA9IDA7CisgIH0KKworICBzdGF0aWMgaW50IGRlZmF1bHRfY3Rvcl9jYWxsczsKKyAgc3Rh
dGljIGludCBkdG9yX2NhbGxzOworICBzdGF0aWMgaW50IGNvcHlfY3Rvcl9jYWxsczsKKyAgc3Rh
dGljIGludCBtb3ZlX2N0b3JfY2FsbHM7CisgIHN0YXRpYyBpbnQgY29weV9hc3NpZ25tZW50X2Nh
bGxzOworICBzdGF0aWMgaW50IG1vdmVfYXNzaWdubWVudF9jYWxsczsKK307CisKK2ludCBDb25z
dHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzID0gMDsKK2ludCBDb25zdHJ1Y3Rp
b25Db3VudGluZzo6ZHRvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmNv
cHlfY3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9j
YWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfYXNzaWdubWVudF9jYWxs
cyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscyA9
IDA7CisKK1RFU1QoRmxhdFR1cGxlLCBDb25zdHJ1Y3RvckNhbGxzKSB7CisgIHVzaW5nIHRlc3Rp
bmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgLy8gRGVmYXVsdCBjb25zdHJ1Y3Rpb24uCisg
IENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7IEZsYXRUdXBsZTxDb25zdHJ1Y3Rp
b25Db3VudGluZz4gdHVwbGU7IH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpk
ZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6
OmR0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlf
Y3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9j
dG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fz
c2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1v
dmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBjb25zdHJ1Y3Rpb24uCisgIENv
bnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7CisgICAgQ29uc3RydWN0aW9uQ291bnRp
bmcgZWxlbTsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291bnRpbmc+IHR1cGxleworICAg
ICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIGVsZW19Owor
ICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxz
LCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxzLCAyKTsK
KyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDEpOwor
ICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywgMCk7Cisg
IEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAw
KTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2Fs
bHMsIDApOworCisgIC8vIE1vdmUgY29uc3RydWN0aW9uLgorICBDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6UmVzZXQoKTsKKyAgeworICAgIEZsYXRUdXBsZTxDb25zdHJ1Y3Rpb25Db3VudGluZz4gdHVw
bGV7CisgICAgICAgIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RUYWd7fSwg
Q29uc3RydWN0aW9uQ291bnRpbmd7fX07CisgIH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNv
dW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9u
Q291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRp
bmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6bW92ZV9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5n
Ojpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291
bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBhc3NpZ25tZW50
LgorICAvLyBUT0RPKG9mYXRzKTogaXQgc2hvdWxkIGJlIHRlc3RpbmcgYXNzaWdubWVudCBvcGVy
YXRvciBvZiBGbGF0VHVwbGUsIG5vdCBpdHMKKyAgLy8gZWxlbWVudHMKKyAgQ29uc3RydWN0aW9u
Q291bnRpbmc6OlJlc2V0KCk7CisgIHsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291bnRp
bmc+IHR1cGxlOworICAgIENvbnN0cnVjdGlvbkNvdW50aW5nIGVsZW07CisgICAgdHVwbGUuR2V0
PDA+KCkgPSBlbGVtOworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVm
YXVsdF9jdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpk
dG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0
b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rv
cl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3Np
Z25tZW50X2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3Zl
X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgYXNzaWdubWVudC4KKyAgLy8gVE9E
TyhvZmF0cyk6IGl0IHNob3VsZCBiZSB0ZXN0aW5nIGFzc2lnbm1lbnQgb3BlcmF0b3Igb2YgRmxh
dFR1cGxlLCBub3QgaXRzCisgIC8vIGVsZW1lbnRzCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpS
ZXNldCgpOworICB7CisgICAgRmxhdFR1cGxlPENvbnN0cnVjdGlvbkNvdW50aW5nPiB0dXBsZTsK
KyAgICB0dXBsZS5HZXQ8MD4oKSA9IENvbnN0cnVjdGlvbkNvdW50aW5ne307CisgIH0KKyAgRVhQ
RUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDIpOworICBF
WFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBFWFBFQ1Rf
RVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9F
UShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VR
KENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBF
Q1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMSk7CisK
KyAgQ29uc3RydWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7Cit9CisKK1RFU1QoRmxhdFR1cGxlLCBN
YW55VHlwZXMpIHsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZsYXRUdXBsZTsKKworICAv
LyBJbnN0YW50aWF0ZSBGbGF0VHVwbGUgd2l0aCAyNTcgaW50cy4KKyAgLy8gVGVzdHMgc2hvdyB0
aGF0IHdlIGNhbiBkbyBpdCB3aXRoIHRob3VzYW5kcyBvZiBlbGVtZW50cywgYnV0IHZlcnkgbG9u
ZworICAvLyBjb21waWxlIHRpbWVzIG1ha2VzIGl0IHVudXN1aXRhYmxlIGZvciB0aGlzIHRlc3Qu
CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UOCBpbnQsIGludCwgaW50LCBpbnQsIGludCwg
aW50LCBpbnQsIGludCwKKyNkZWZpbmUgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVTVF9GTEFU
X1RVUExFX0lOVDggR1RFU1RfRkxBVF9UVVBMRV9JTlQ4CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQ
TEVfSU5UMzIgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVTVF9GTEFUX1RVUExFX0lOVDE2Cisj
ZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQzMiBHVEVT
VF9GTEFUX1RVUExFX0lOVDMyCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UMTI4IEdURVNU
X0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQ2NAorI2RlZmluZSBHVEVTVF9G
TEFUX1RVUExFX0lOVDI1NiBHVEVTVF9GTEFUX1RVUExFX0lOVDEyOCBHVEVTVF9GTEFUX1RVUExF
X0lOVDEyOAorCisgIC8vIExldCdzIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBoYXZlIGEgdmVyeSBs
b25nIGxpc3Qgb2YgdHlwZXMgd2l0aG91dCBibG93aW5nCisgIC8vIHVwIHRoZSB0ZW1wbGF0ZSBp
bnN0YW50aWF0aW9uIGRlcHRoLgorICBGbGF0VHVwbGU8R1RFU1RfRkxBVF9UVVBMRV9JTlQyNTYg
aW50PiB0dXBsZTsKKworICB0dXBsZS5HZXQ8MD4oKSA9IDc7CisgIHR1cGxlLkdldDw5OT4oKSA9
IDE3OworICB0dXBsZS5HZXQ8MjU2PigpID0gMTAwMDsKKyAgRVhQRUNUX0VRKDcsIHR1cGxlLkdl
dDwwPigpKTsKKyAgRVhQRUNUX0VRKDE3LCB0dXBsZS5HZXQ8OTk+KCkpOworICBFWFBFQ1RfRVEo
MTAwMCwgdHVwbGUuR2V0PDI1Nj4oKSk7Cit9CisKIC8vIFRlc3RzIFNraXBQcmVmaXgoKS4KIAog
VEVTVChTa2lwUHJlZml4VGVzdCwgU2tpcHNXaGVuUHJlZml4TWF0Y2hlcykgewpAQCAtNzc3Mywy
MyArNzc1MCwzNSBAQCBURVNUKFNraXBQcmVmaXhUZXN0LCBEb2VzTm90U2tpcFdoZW5QcmVmaXhE
b2VzTm90TWF0Y2gpIHsKIH0KIAogLy8gVGVzdHMgYWRfaG9jX3Rlc3RfcmVzdWx0KCkuCitURVNU
KEFkSG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclVuaXRUZXN0RG9lc05vdFNo
b3dGYWlsdXJlKSB7CisgIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0K
KyAgICAgIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1
bHQoKTsKKyAgRVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKK30KIAotY2xhc3Mg
QWRIb2NUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6
Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Ci0gICAgRkFJTCgpIDw8ICJBIGZhaWx1
cmUgaGFwcGVuZWQgaW5zaWRlIFNldFVwVGVzdENhc2UoKS4iOwotICB9CitjbGFzcyBEeW5hbWlj
VW5pdFRlc3RGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CisKK2NsYXNzIER5bmFt
aWNUZXN0IDogcHVibGljIER5bmFtaWNVbml0VGVzdEZpeHR1cmUgeworICB2b2lkIFRlc3RCb2R5
KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRSh0cnVlKTsgfQogfTsKIAotVEVTVF9GKEFkSG9jVGVz
dFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclRlc3RDYXNlU2hvd3NGYWlsdXJlKSB7Ci0g
IGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0gdGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLT5jdXJyZW50X3Rlc3RfY2FzZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0+YWRfaG9jX3Rlc3RfcmVzdWx0KCk7Ci0gIEVYUEVDVF9U
UlVFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKLX0KK2F1dG8qIGR5bmFtaWNfdGVzdCA9IHRlc3Rp
bmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAiRHluYW1pY1VuaXRUZXN0Rml4dHVyZSIsICJEeW5hbWlj
VGVzdCIsICJUWVBFIiwgIlZBTFVFIiwgX19GSUxFX18sCisgICAgX19MSU5FX18sIFtdKCkgLT4g
RHluYW1pY1VuaXRUZXN0Rml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0OyB9KTsKKwor
VEVTVChSZWdpc3RlclRlc3QsIFdhc1JlZ2lzdGVyZWQpIHsKKyAgYXV0byogdW5pdHRlc3QgPSB0
ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1
bml0dGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBhdXRvKiB0ZXN0
cyA9IHVuaXR0ZXN0LT5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKHRlc3RzLT5uYW1lKCkgIT0g
c3RkOjpzdHJpbmcoIkR5bmFtaWNVbml0VGVzdEZpeHR1cmUiKSkgY29udGludWU7CisgICAgZm9y
IChpbnQgaiA9IDA7IGogPCB0ZXN0cy0+dG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAg
IGlmICh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPm5hbWUoKSAhPSBzdGQ6OnN0cmluZygiRHluYW1p
Y1Rlc3QiKSkgY29udGludWU7CisgICAgICAvLyBGb3VuZCBpdC4KKyAgICAgIEVYUEVDVF9TVFJF
USh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPnZhbHVlX3BhcmFtKCksICJWQUxVRSIpOworICAgICAg
RVhQRUNUX1NUUkVRKHRlc3RzLT5HZXRUZXN0SW5mbyhqKS0+dHlwZV9wYXJhbSgpLCAiVFlQRSIp
OworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQogCi1URVNUX0YoQWRIb2NUZXN0UmVzdWx0VGVz
dCwgQWRIb2NUZXN0UmVzdWx0VGVzdEZvclVuaXRUZXN0RG9lc05vdFNob3dGYWlsdXJlKSB7Ci0g
IGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0KLSAgICAgIHRlc3Rpbmc6
OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKTsKLSAgRVhQRUNU
X0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKKyAgRkFJTCgpIDw8ICJEaWRuJ3QgZmluZCB0
aGUgdGVzdCEiOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwppbmRleCBhMzhlYmFjODM5ZjdiNGZjZjcxMDkz
NTFjNGQzZmVjZGUyNzE1YjBhLi4xOWFhMjUyYTMwMTBmZDU2ZWFiZTM3NjgzMDhhODBkMmRjNmRi
ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9v
dXRmaWxlMV90ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwpAQCAtMzQsMTIgKzM0LDggQEAKIAogY2xhc3MgUHJvcGVy
dHlPbmUgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlNldFVwUHJvcCIsIDEpOwotICB9Ci0g
IHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Q
cm9wIiwgMSk7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgUmVjb3JkUHJvcGVydHko
IlNldFVwUHJvcCIsIDEpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IFJlY29yZFBy
b3BlcnR5KCJUZWFyRG93blByb3AiLCAxKTsgfQogfTsKIAogVEVTVF9GKFByb3BlcnR5T25lLCBU
ZXN0U29tZVByb3BlcnRpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKaW5kZXggYWZhZjE1YTVkYzMyMzE1
ZDUxYWM3YTBhNTU1ZjgzY2FiNDFlZjc0Zi4uZjlhMmE2ZTk4NDZkZGNkOTVkYmRiODhkOGM3NGQw
N2M0YmM5ZGZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKQEAgLTM0LDEyICszNCw4IEBACiAKIGNsYXNz
IFByb3BlcnR5VHdvIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmly
dHVhbCB2b2lkIFNldFVwKCkgewotICAgIFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAyKTsK
LSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlRl
YXJEb3duUHJvcCIsIDIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IFJlY29yZFBy
b3BlcnR5KCJTZXRVcFByb3AiLCAyKTsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBS
ZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9wIiwgMik7IH0KIH07CiAKIFRFU1RfRihQcm9wZXJ0
eVR3bywgVGVzdFNvbWVQcm9wZXJ0aWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weQppbmRleCAyYzAzMWZmOGRi
YTUxMmMyZTA0ZTI3MDUzNGUyOWZjZWJlODg2Y2Y5Li5hYzY2ZmViNjY3MTllNjJjZmExNmM3OWEx
N2Y2M2RlOTkwZjI3N2MxIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkKQEAgLTQyLDggKzQyLDggQEAgR1RFU1Rf
T1VUUFVUXzJfVEVTVCA9ICJndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8iCiAKIEVYUEVDVEVEX1hN
TF8xID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3Vp
dGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0i
KiIgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJv
cGVydHlPbmUiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVz
PSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgorICA8dGVzdHN1aXRlIG5h
bWU9IlByb3BlcnR5T25lIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAiIGRpc2Fi
bGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgogICAgICAg
PHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZhbHVlPSIx
Ii8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1ZT0iMSIv
PgpAQCAtNTYsOCArNTYsOCBAQCBFWFBFQ1RFRF9YTUxfMSA9ICIiIjw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9IlVURi04Ij8+CiAKIEVYUEVDVEVEX1hNTF8yID0gIiIiPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBuYW1l
PSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlUd28iIHRlc3RzPSIxIiBm
YWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3Rj
YXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNz
bmFtZT0iUHJvcGVydHlUd28iPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5VHdvIiB0ZXN0
cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRp
bWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVy
dGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAg
IDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxwcm9wZXJ0
eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1ZT0iMiIvPgpAQCAtMTExLDExICsxMTEsNiBA
QCBjbGFzcyBHVGVzdFhNTE91dEZpbGVzVGVzdChndGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhN
TFRlc3RDYXNlKToKICAgICBzZWxmLmFzc2VydF8ocC5leGl0ZWQpCiAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoMCwgcC5leGl0X2NvZGUpCiAKLSAgICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNlcyB0aGUg
YnVpbHQgdGVzdCBiaW5hcnkgdG8gYmUKLSAgICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1sX291dGZp
bGVzX3Rlc3RfIGluc3RlYWQgb2YKLSAgICAjICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfLiAg
VG8gYWNjb3VudCBmb3IgdGhpcyBwb3NzaWJpbGl0eSwgd2UKLSAgICAjICAgYWxsb3cgYm90aCBu
YW1lcyBpbiB0aGUgZm9sbG93aW5nIGNvZGUuICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMKLSAgICAj
ICAgd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0cHV0X2Zp
bGVfbmFtZTEgPSB0ZXN0X25hbWUgKyAiLnhtbCIKICAgICBvdXRwdXRfZmlsZTEgPSBvcy5wYXRo
LmpvaW4oc2VsZi5vdXRwdXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0cHV0X2Zp
bGVfbmFtZTIgPSAnbHQtJyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkKaW5k
ZXggZmFlZGQ0ZTZjZTcyZGFiZWY3ODZhMzEyZWY0YWVjYTVjNWQyOWJmYS4uZWFkZTdhYWM4OGY1
OWU2YmI2ZjViYTM0MTgyOGJhZTQ2ZmNkMDA2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdC5weQpAQCAtNjUs
MjEgKzY1LDIxIEBAIGVsc2U6CiAgIHN5cy5hcmd2LnJlbW92ZShOT19TVEFDS1RSQUNFX1NVUFBP
UlRfRkxBRykKIAogRVhQRUNURURfTk9OX0VNUFRZX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08dGVzdHN1aXRlcyB0ZXN0cz0iMjMiIGZhaWx1cmVzPSI0
IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5hbWU9IkFs
bFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNz
ZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0
aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+Cis8dGVzdHN1aXRlcyB0ZXN0cz0iMjYi
IGZhaWx1cmVzPSI1IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KKyAgPHRlc3RzdWl0ZSBu
YW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIg
c2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0
Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1l
PSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0
c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iRmFpbGVkVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVz
PSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iRmFpbHMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgor
ICA8dGVzdHN1aXRlIG5hbWU9IkZhaWxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRl
ZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgogICAgICAg
PGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0V4
cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIiIHR5cGU9
IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgogRXhwZWN0ZWQgZXF1
YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCiAgIDIlKHN0YWNrKXNdXT48L2ZhaWx1cmU+CiAg
ICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTWl4ZWRS
ZXN1bHRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIxIiBlcnJvcnM9IjAi
IHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRp
bWU9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9
IkZhaWxzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3Qi
PgorICA8dGVzdHN1aXRlIG5hbWU9Ik1peGVkUmVzdWx0VGVzdCIgdGVzdHM9IjMiIGZhaWx1cmVz
PSIxIiBkaXNhYmxlZD0iMSIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3Rh
bXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3Vs
dD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1
bHRUZXN0Ii8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgcmVzdWx0
PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3Vs
dFRlc3QiPgogICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KiYjeDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEm
I3gwQTsgIDIiIHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6
KgogRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCkBAIC04OSwxMTYgKzg5
LDE0NyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6CiAgIDIKICAgMyUoc3Rh
Y2spc11dPjwvZmFpbHVyZT4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJE
SVNBQkxFRF90ZXN0IiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJl
c3VsdFRlc3QiLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdCIgc3RhdHVzPSJu
b3RydW4iIHJlc3VsdD0ic3VwcHJlc3NlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25h
bWU9Ik1peGVkUmVzdWx0VGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1l
PSJYbWxRdW90aW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJy
b3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRhIiBzdGF0
dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVzdCI+CisgIDx0ZXN0c3Vp
dGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9
IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRhIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0
ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVzdCI+CiAg
ICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4
MEE7RmFpbGVkJiN4MEE7WE1MIG91dHB1dDogJmx0Oz94bWwgZW5jb2Rpbmc9JnF1b3Q7dXRmLTgm
cXVvdDsmZ3Q7Jmx0O3RvcCZndDsmbHQ7IVtDREFUQVtjZGF0YSB0ZXh0XV0mZ3Q7Jmx0Oy90b3Am
Z3Q7IiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEZh
aWxlZAogWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9InV0Zi04Ij48dG9wPjwhW0NEQVRBW2Nk
YXRhIHRleHRdXT5dXSZndDs8IVtDREFUQVs8L3RvcD4lKHN0YWNrKXNdXT48L2ZhaWx1cmU+CiAg
ICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iSW52YWxp
ZENoYXJhY3RlcnNUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBlcnJv
cnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc0lu
TWVzc2FnZSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iSW52YWxpZENoYXJhY3Rl
cnNUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QiIHRlc3Rz
PSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGlt
ZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSW52YWxpZENoYXJhY3Rl
cnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGlt
ZXN0YW1wPSIqIiBjbGFzc25hbWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCI+CiAgICAgICA8ZmFp
bHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7RmFpbGVk
JiN4MEE7SW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdIiB0eXBlPSIiPjwhW0NEQVRB
W2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEZhaWxlZAogSW52YWxpZCBjaGFyYWN0
ZXJzIGluIGJyYWNrZXRzIFtdJShzdGFjaylzXV0+PC9mYWlsdXJlPgogICAgIDwvdGVzdGNhc2U+
CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkRpc2FibGVkVGVzdCIgdGVzdHM9
IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMSIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8
dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgdGlt
ZT0iKiIgY2xhc3NuYW1lPSJEaXNhYmxlZFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJEaXNh
YmxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjEiIHNraXBwZWQ9IjAi
IGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0i
RElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgcmVzdWx0PSJzdXBwcmVzc2Vk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iRGlzYWJsZWRUZXN0Ii8+CiAgIDwv
dGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVz
dHM9IjQiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiBTZXRV
cFRlc3RDYXNlPSJ5ZXMiIFRlYXJEb3duVGVzdENhc2U9ImF5ZSI+Ci0gICAgPHRlc3RjYXNlIG5h
bWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0
eVJlY29yZGluZ1Rlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IlNraXBwZWRUZXN0IiB0ZXN0cz0i
MyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIyIiBlcnJvcnM9IjAiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWQiIHN0YXR1cz0i
cnVuIiByZXN1bHQ9InNraXBwZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJT
a2lwcGVkVGVzdCI+CisgICAgICA8c2tpcHBlZCBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYzoqJiN4MEE7Ij48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqCislKHN0YWNrKXNdXT48L3NraXBwZWQ+CisgICAgPC90ZXN0Y2FzZT4KKyAgICA8dGVzdGNh
c2UgbmFtZT0iU2tpcHBlZFdpdGhNZXNzYWdlIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJza2lwcGVk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU2tpcHBlZFRlc3QiPgorICAgICAg
PHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0
IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFb
Z3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0
ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShzdGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVz
dGNhc2U+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWRBZnRlckZhaWx1cmUiIHN0YXR1cz0i
cnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9
IlNraXBwZWRUZXN0Ij4KKyAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9vdXRwdXRf
dW5pdHRlc3RfLmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6JiN4
MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRl
c3RfLmNjOioKK0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKKyAgMQorICAyJShz
dGFjaylzXV0+PC9mYWlsdXJlPgorICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1sX291
dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkg
eW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6
KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShzdGFj
aylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVzdGNhc2U+CisKKyAgPC90ZXN0c3VpdGU+CisgIDx0
ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFt
cD0iKiIgU2V0VXBUZXN0U3VpdGU9InllcyIgVGVhckRvd25UZXN0U3VpdGU9ImF5ZSI+CisgICAg
PHRlc3RjYXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0
ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rl
c3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIg
dmFsdWU9IjEiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0
ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNs
YXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSW50
VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIg
dGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAgICAgICA8
cHJvcGVydGllcz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV9pbnQiIHZhbHVlPSIxIi8+
CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iVGhyZWVQcm9wZXJ0aWVzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9w
ZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUaHJlZVByb3BlcnRpZXMi
IHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBj
bGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAgICAgICA8cHJvcGVydGllcz4KICAg
ICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV8xIiB2YWx1ZT0iMSIvPgogICAgICAgICA8cHJvcGVy
dHkgbmFtZT0ia2V5XzIiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlf
MyIgdmFsdWU9IjMiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgotICAg
IDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0dXM9
InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0dXM9InJ1
biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQ
cm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9w
ZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjIiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8
L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJOb0ZpeHR1cmVU
ZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgICA8dGVzdGNhc2UgbmFtZT0iUmVjb3JkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0
aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9Ik5v
Rml4dHVyZVRlc3QiIHRlc3RzPSIzIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9
IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICAgPHRlc3RjYXNlIG5h
bWU9IlJlY29yZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAgICA8cHJv
cGVydGllcz4KICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZhbHVlPSIxIi8+CiAgICAg
ICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2UgbmFtZT0i
RXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0i
cnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVzdGNhc2Ug
bmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVydHkiIHN0
YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFz
c25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICAgPHBy
b3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9pbnQiIHZhbHVlPSIxIi8+CiAgICAgICAgPC9w
cm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJu
YWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVu
IiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVzdGNhc2UgbmFt
ZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0
YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFz
c25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICAgPHBy
b3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9zdHJpbmciIHZhbHVlPSIxIi8+CiAgICAgICAg
PC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3Rz
dWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0IiBmYWlsdXJlcz0iMCIg
ZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhh
c1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgdGlt
ZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNl
IG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9
InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAg
PHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIg
dmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUv
VmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhh
c1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGlt
ZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0c3VpdGUg
bmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAiIGRpc2Fi
bGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+Cisg
ICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09
IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5h
bWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1
biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1
biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1
biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5h
bWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJv
cnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1
dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlR5cGVk
VGVzdC8wIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIgZmFp
bHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRp
bWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIg
dHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0
aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzAiIC8+CiAgIDwvdGVzdHN1aXRlPgot
ICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRp
c2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNU
eXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBj
bGFzc25hbWU9IlR5cGVkVGVzdC8xIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8x
IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQ
YXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxl
dGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzEiIC8+CiAg
IDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlLzAiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0i
MCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIg
dHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1R5
cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCIgLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUv
VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09Iioi
IHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBj
bGFzc25hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiAvPgogICA8L3Rl
c3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZS8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRp
bWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVf
cGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlNpbmdsZS9UeXBlUGFy
YW1ldGVyaXplZFRlc3RDYXNlLzEiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5cGVQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9
IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMSIgLz4KICAgPC90ZXN0c3Vp
dGU+Ci08L3Rlc3RzdWl0ZXM+IiIiICUgeydzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBMQVRFfQor
PC90ZXN0c3VpdGVzPiIiIiAlIHsKKyAgICAnc3RhY2snOiBTVEFDS19UUkFDRV9URU1QTEFURQor
fQogCiBFWFBFQ1RFRF9GSUxURVJFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRp
c2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiCiAgICAgICAgICAgICB0aW1lc3RhbXA9Iioi
IG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1l
PSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIKLSAg
ICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNj
ZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4K
KyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIKKyAgICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlN1Y2NlZWRzIiBzdGF0dXM9
InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1l
PSJTdWNjZXNzZnVsVGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4iIiIKIAog
RVhQRUNURURfU0hBUkRFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVk
PSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVzdHMiIGFk
X2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVzdHN1aXRlIG5hbWU9IlN1Y2Nlc3NmdWxUZXN0IiB0
ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgot
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNz
bmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVz
dCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVk
cyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9Iioi
IGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3Vp
dGUgbmFtZT0iTm9GaXh0dXJlVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICAgPHRlc3RjYXNlIG5hbWU9IlJlY29yZFByb3Bl
cnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KLSAg
ICAgICA8cHJvcGVydGllcz4KLSAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZhbHVlPSIx
Ii8+Ci0gICAgICAgPC9wcm9wZXJ0aWVzPgotICAgICA8L3Rlc3RjYXNlPgorICA8dGVzdHN1aXRl
IG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIFNl
dFVwVGVzdFN1aXRlPSJ5ZXMiIFRlYXJEb3duVGVzdFN1aXRlPSJheWUiPgorICAgIDx0ZXN0Y2Fz
ZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0
Ij4KKyAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5X2ludCIg
dmFsdWU9IjEiLz4KKyAgICAgIDwvcHJvcGVydGllcz4KKyAgICA8L3Rlc3RjYXNlPgogICA8L3Rl
c3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIHRlc3Rz
PSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAg
PHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIg
dmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUv
VmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJv
cnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1Zh
bHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0
PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFs
dWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVzPiIiIgogCi1FWFBF
Q1RFRF9FTVBUWV9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorRVhQRUNURURfTk9fVEVTVF9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVzdHM9IjAiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIgogICAgICAgICAgICAgdGltZXN0YW1wPSIqIiBuYW1lPSJB
bGxUZXN0cyI+Ci08L3Rlc3RzdWl0ZXM+IiIiCisgIDx0ZXN0c3VpdGUgbmFtZT0iTm9uVGVzdFN1
aXRlRmFpbHVyZSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1l
PSIiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBjbGFzc25hbWU9IiI+CisgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF9ub190ZXN0X3Vu
aXR0ZXN0LmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6JiN4MEE7
ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QuY2M6
KgorRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgorICAxCisgIDIlKHN0YWNrKXNd
XT48L2ZhaWx1cmU+CisgICAgPC90ZXN0Y2FzZT4KKyAgPC90ZXN0c3VpdGU+Cis8L3Rlc3RzdWl0
ZXM+IiIiICUgeworICAgICdzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBMQVRFCit9CiAKIEdURVNU
X1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKEdU
RVNUX1BST0dSQU1fTkFNRSkKIApAQCAtMjIxLDE0ICsyNTIsMTQgQEAgY2xhc3MgR1Rlc3RYTUxP
dXRwdXRVbml0VGVzdChndGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhNTFRlc3RDYXNlKToKICAg
ICAgICIiIgogICAgICAgc2VsZi5fVGVzdFhtbE91dHB1dChHVEVTVF9QUk9HUkFNX05BTUUsIEVY
UEVDVEVEX05PTl9FTVBUWV9YTUwsIDEpCiAKLSAgZGVmIHRlc3RFbXB0eVhtbE91dHB1dChzZWxm
KToKKyAgZGVmIHRlc3ROb1Rlc3RYbWxPdXRwdXQoc2VsZik6CiAgICAgIiIiVmVyaWZpZXMgWE1M
IG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBiaW5hcnkgd2l0aG91dCBhY3R1YWwgdGVzdHMuCiAK
LSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIGVtcHR5IFhNTCBvdXRw
dXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIFhNTCBvdXRwdXQgaXMgZXhwZWN0ZWQuCisgICAg
UnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGdlbmVyYXRlcyBhbiBYTUwgb3V0cHV0IGZvciBhIGJp
bmFyeSB3aXRob3V0IHRlc3RzLAorICAgIGFuZCB0ZXN0cyB0aGF0IHRoZSBYTUwgb3V0cHV0IGlz
IGV4cGVjdGVkLgogICAgICIiIgogCi0gICAgc2VsZi5fVGVzdFhtbE91dHB1dCgnZ3Rlc3Rfbm9f
dGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX0VNUFRZX1hNTCwgMCkKKyAgICBzZWxmLl9UZXN0WG1s
T3V0cHV0KCdndGVzdF9ub190ZXN0X3VuaXR0ZXN0JywgRVhQRUNURURfTk9fVEVTVF9YTUwsIDAp
CiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToKICAgICAiIiJDaGVja3Mgd2hldGhl
ciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgWE1MIG91dHB1dCBpcyB2YWxpZC4KQEAg
LTI2Niw3ICsyOTcsOCBAQCBjbGFzcyBHVGVzdFhNTE91dHB1dFVuaXRUZXN0KGd0ZXN0X3htbF90
ZXN0X3V0aWxzLkdUZXN0WE1MVGVzdENhc2UpOgogICAgICAgICAnZ3Rlc3Rfbm9fdGVzdF91bml0
dGVzdCcpCiAgICAgdHJ5OgogICAgICAgb3MucmVtb3ZlKG91dHB1dF9maWxlKQotICAgIGV4Y2Vw
dCBPU0Vycm9yLCBlOgorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgZSA9IHN5cy5leGNfaW5m
bygpWzFdCiAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVOT0VOVDoKICAgICAgICAgcmFpc2UK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1s
X291dHB1dF91bml0dGVzdF8uY2MKaW5kZXggMmVlODgzODAwNWVlZWMyMzU3MWJhZTM4OWM3OTI2
OThjMzBjNGQ1MC4uYzAwMzZhYWVmOWRmMjc2NTRhZTZhNmNlMWRlZDA3NjQyY2EyZDM5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9v
dXRwdXRfdW5pdHRlc3RfLmNjCkBAIC02Nyw2ICs2NywyMiBAQCBURVNUX0YoRGlzYWJsZWRUZXN0
LCBESVNBQkxFRF90ZXN0X25vdF9ydW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1
cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4iOwogfQogCitjbGFzcyBTa2lwcGVk
VGVzdCA6IHB1YmxpYyBUZXN0IHsKK307CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tpcHBlZCkg
eworICBHVEVTVF9TS0lQKCk7Cit9CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tpcHBlZFdpdGhN
ZXNzYWdlKSB7CisgIEdURVNUX1NLSVAoKSA8PCAiSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxs
IHdoeSB5b3Ugc2tpcCBhIHRlc3QuIjsKK30KKworVEVTVF9GKFNraXBwZWRUZXN0LCBTa2lwcGVk
QWZ0ZXJGYWlsdXJlKSB7CisgIEVYUEVDVF9FUSgxLCAyKTsKKyAgR1RFU1RfU0tJUCgpIDw8ICJJ
dCBpcyBnb29kIHByYWN0aWNlIHRvIHRlbGwgd2h5IHlvdSBza2lwIGEgdGVzdC4iOworfQorCiBU
RVNUKE1peGVkUmVzdWx0VGVzdCwgU3VjY2VlZHMpIHsKICAgRVhQRUNUX0VRKDEsIDEpOwogICBB
U1NFUlRfRVEoMSwgMSk7CkBAIC05NCw4ICsxMTAsMTAgQEAgVEVTVChJbnZhbGlkQ2hhcmFjdGVy
c1Rlc3QsIEludmFsaWRDaGFyYWN0ZXJzSW5NZXNzYWdlKSB7CiAKIGNsYXNzIFByb3BlcnR5UmVj
b3JkaW5nVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNldFVw
VGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJTZXRVcFRlc3RDYXNlIiwgInllcyIpOyB9Ci0g
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJUZWFyRG93
blRlc3RDYXNlIiwgImF5ZSIpOyB9CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeyBS
ZWNvcmRQcm9wZXJ0eSgiU2V0VXBUZXN0U3VpdGUiLCAieWVzIik7IH0KKyAgc3RhdGljIHZvaWQg
VGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3duVGVzdFN1
aXRlIiwgImF5ZSIpOworICB9CiB9OwogCiBURVNUX0YoUHJvcGVydHlSZWNvcmRpbmdUZXN0LCBP
bmVQcm9wZXJ0eSkgewpAQCAtMTQzLDI5ICsxNjEsMjUgQEAgVEVTVChOb0ZpeHR1cmVUZXN0LCBF
eHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRTdHJpbmdWYWx1ZWRQcm9wZXJ0eSkgewogY2xh
c3MgVmFsdWVQYXJhbVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwogVEVTVF9Q
KFZhbHVlUGFyYW1UZXN0LCBIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7fQogVEVTVF9QKFZhbHVl
UGFyYW1UZXN0LCBBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7fQotSU5T
VEFOVElBVEVfVEVTVF9DQVNFX1AoU2luZ2xlLCBWYWx1ZVBhcmFtVGVzdCwgVmFsdWVzKDMzLCA0
MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNpbmdsZSwgVmFsdWVQYXJhbVRlc3QsIFZh
bHVlcygzMywgNDIpKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCiAvLyBWZXJpZmllcyB0
aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0n
CiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlZCB0ZXN0cy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgVGVzdCB7fTsKIHR5cGVkZWYgdGVzdGluZzo6VHlw
ZXM8aW50LCBsb25nPiBUeXBlZFRlc3RUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3Qs
IFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBUeXBlZFRlc3RU
eXBlcyk7CiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7fQot
I2VuZGlmCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCiAvLyBWZXJpZmllcyB0aGF0IHRo
ZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0nCiAvLyBY
TUwgYXR0cmlidXRlIGZvciB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSA6IHB1YmxpYyBUZXN0IHt9
OwotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSk7Ci1UWVBFRF9U
RVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7
fQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwg
SGFzVHlwZVBhcmFtQXR0cmlidXRlKTsKLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBsb25n
PiBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNU
X0NBU0VfUChTaW5nbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlUGFyYW1l
dGVyaXplZFRlc3RDYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZVBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZVR5cGVzKTsKLSNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citj
bGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSA6IHB1YmxpYyBUZXN0IHt9OworVFlQRURf
VEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKTsKK1RZUEVEX1RFU1RfUChU
eXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7fQorUkVH
SVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBIYXNU
eXBlUGFyYW1BdHRyaWJ1dGUpOwordHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGxvbmc+IFR5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChTaW5nbGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlw
ZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgSW5pdEdvb2dsZVRl
c3QoJmFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF94bWxfdGVzdF91dGlscy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKaW5kZXggMWUwMzU4NTkyZmIwMDg0ZjBhODljMzQzNmZm
NzUxNzQ4NjgyN2FjZC4uNWRkMGViOTI0NDNhZDczMTU5ZmMzODQ1YzU3OWYzOTllOGYzYmY4NCAx
MDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfdGVzdF91
dGlscy5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF90ZXN0
X3V0aWxzLnB5CkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIEdUZXN0WE1MVGVzdENhc2UoZ3Rlc3Rf
dGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgIGxl
bihleHBlY3RlZF9jaGlsZHJlbiksIGxlbihhY3R1YWxfY2hpbGRyZW4pLAogICAgICAgICAnbnVt
YmVyIG9mIGNoaWxkIGVsZW1lbnRzIGRpZmZlciBpbiBlbGVtZW50ICcgKyBhY3R1YWxfbm9kZS50
YWdOYW1lKQotICAgIGZvciBjaGlsZF9pZCwgY2hpbGQgaW4gZXhwZWN0ZWRfY2hpbGRyZW4uaXRl
cml0ZW1zKCk6CisgICAgZm9yIGNoaWxkX2lkLCBjaGlsZCBpbiBleHBlY3RlZF9jaGlsZHJlbi5p
dGVtcygpOgogICAgICAgc2VsZi5hc3NlcnRfKGNoaWxkX2lkIGluIGFjdHVhbF9jaGlsZHJlbiwK
ICAgICAgICAgICAgICAgICAgICAnPCVzPiBpcyBub3QgaW4gPCVzPiAoaW4gZWxlbWVudCAlcykn
ICUKICAgICAgICAgICAgICAgICAgICAoY2hpbGRfaWQsIGFjdHVhbF9jaGlsZHJlbiwgYWN0dWFs
X25vZGUudGFnTmFtZSkpCkBAIC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2Fz
ZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAgICd0ZXN0c3VpdGUnOiAnbmFtZScs
CiAgICAgICAndGVzdGNhc2UnOiAnbmFtZScsCiAgICAgICAnZmFpbHVyZSc6ICdtZXNzYWdlJywK
KyAgICAgICdza2lwcGVkJzogJ21lc3NhZ2UnLAogICAgICAgJ3Byb3BlcnR5JzogJ25hbWUnLAog
ICB9CiAKQEAgLTE2OSw5ICsxNzAsOSBAQCBjbGFzcyBHVGVzdFhNTFRlc3RDYXNlKGd0ZXN0X3Rl
c3RfdXRpbHMuVGVzdENhc2UpOgogICAgICogIFRoZSBzdGFjayB0cmFjZXMgYXJlIHJlbW92ZWQu
CiAgICAgIiIiCiAKLSAgICBpZiBlbGVtZW50LnRhZ05hbWUgPT0gJ3Rlc3RzdWl0ZXMnOgorICAg
IGlmIGVsZW1lbnQudGFnTmFtZSBpbiAoJ3Rlc3RzdWl0ZXMnLCAndGVzdHN1aXRlJywgJ3Rlc3Rj
YXNlJyk6CiAgICAgICB0aW1lc3RhbXAgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3RpbWVz
dGFtcCcpCi0gICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIocideXGR7NH0tXGRcZC1cZFxk
VFxkXGQ6XGRcZDpcZFxkJCcsCisgICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIocideXGR7
NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkXC5cZFxkXGQkJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKicsIHRpbWVzdGFtcC52YWx1ZSkKICAgICBpZiBlbGVtZW50LnRhZ05h
bWUgaW4gKCd0ZXN0c3VpdGVzJywgJ3Rlc3RzdWl0ZScsICd0ZXN0Y2FzZScpOgogICAgICAgdGlt
ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZSgndGltZScpCkBAIC0xNzksNyArMTgwLDcgQEAg
Y2xhc3MgR1Rlc3RYTUxUZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAg
IHR5cGVfcGFyYW0gPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3R5cGVfcGFyYW0nKQogICAg
ICAgaWYgdHlwZV9wYXJhbSBhbmQgdHlwZV9wYXJhbS52YWx1ZToKICAgICAgICAgdHlwZV9wYXJh
bS52YWx1ZSA9ICcqJwotICAgIGVsaWYgZWxlbWVudC50YWdOYW1lID09ICdmYWlsdXJlJzoKKyAg
ICBlbGlmIGVsZW1lbnQudGFnTmFtZSA9PSAnZmFpbHVyZScgb3IgZWxlbWVudC50YWdOYW1lID09
ICdza2lwcGVkJzoKICAgICAgIHNvdXJjZV9saW5lX3BhdCA9IHInXi4qWy9cXF0oLio6KVxkK1xu
JwogICAgICAgIyBSZXBsYWNlcyB0aGUgc291cmNlIGxpbmUgaW5mb3JtYXRpb24gd2l0aCBhIG5v
cm1hbGl6ZWQgZm9ybS4KICAgICAgIG1lc3NhZ2UgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUo
J21lc3NhZ2UnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9wcm9k
dWN0aW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAppbmRl
eCA1NDI3MjNiNzA4NzM4N2Q0ZmI1MjlmYzA3YTY4OGJjMWM4ZDc4YjFlLi40MWE1NDcyMjU0MjNk
ODMzMWE2NDlkYTk1ZjI4ZTFmZDNjNWFlNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L3Byb2R1Y3Rpb24uaApAQCAtMzAsOCArMzAsOCBAQAogLy8KIC8vIFRoaXMgaXMgcGFydCBv
ZiB0aGUgdW5pdCB0ZXN0IGZvciBndGVzdF9wcm9kLmguCiAKLSNpZm5kZWYgR1RFU1RfVEVTVF9Q
Uk9EVUNUSU9OX0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2lmbmRlZiBH
T09HTEVURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2RlZmluZSBHT09HTEVURVNUX1RFU1RfUFJP
RFVDVElPTl9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgogCkBAIC01MSw0ICs1
MSw0IEBAIGNsYXNzIFByaXZhdGVDb2RlIHsKICAgaW50IHhfOwogfTsKIAotI2VuZGlmICAvLyBH
VEVTVF9URVNUX1BST0RVQ1RJT05fSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9URVNUX1BST0RV
Q1RJT05fSF8K
</data>
<flag name="commit-queue"
          id="443464"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423950</attachid>
            <date>2021-03-22 15:37:24 -0700</date>
            <delta_ts>2021-03-22 15:51:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223607-20210322153721.patch</filename>
            <type>text/plain</type>
            <size>2263235</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYTFjYTlkYWNh
YzdmNjQzODM5NjY0MTg5YWUyYTZkMmFhYWQ3N2RiYS4uMmI2NGFlNzNmNzczYjJjODUyOGRjODZj
ZjkyNjk3OGMzZjg0Yzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIx
LTAzLTIyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBVcGRhdGUgZ29vZ2xldGVzdCB0byAxYThlY2YxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ZXN0LzoKKyAgICAgICAgVXBkYXRlIGdvb2dsZXRl
c3QsIGJ1dC4uLgorCisgICAgICAgICogZ3Rlc3QvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIEtl
ZXAgb3VyIG93biBjb3B5LCBqdXN0IGFkZCB0aGUgbmV3IHNvdXJjZSBmaWxlLgorCisgICAgICAg
ICogZ3Rlc3QvUkVBRE1FLldlYktpdDogUmVtb3ZlZC4KKyAgICAgICAgKiBndGVzdC9jaGFuZ2Vz
LmRpZmY6IFJlbW92ZWQuCisgICAgICAgIEl0IGFwcGVhcnMgdGhhdCBvdXIgZml4IGZvciBGcmVl
QlNEIGhhcyBiZWVuIHVwc3RyZWFtZWQuCisKIDIwMjEtMDItMjQgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxpbmtlciB3YXJuaW5ncyBidWls
ZGluZyBndGVzdCBmb3IgbWFjQ2F0YWx5c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L0NIQU5HRVMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9DSEFOR0VTCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTUyMTMyNDIxMmM5MTI4N2Q5MjQ0ZDQ0YmFiMzA2ZGI2
NjRiYWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NIQU5HRVMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAs
MCBAQAotQ2hhbmdlcyBmb3IgMS43LjA6Ci0KLSogTmV3IGZlYXR1cmU6IGRlYXRoIHRlc3RzIGFy
ZSBzdXBwb3J0ZWQgb24gT3BlbkJTRCBhbmQgaW4gaU9TCi0gIHNpbXVsYXRvciBub3cuCi0qIE5l
dyBmZWF0dXJlOiBHb29nbGUgVGVzdCBub3cgaW1wbGVtZW50cyBhIHByb3RvY29sIHRvIGFsbG93
Ci0gIGEgdGVzdCBydW5uZXIgdG8gZGV0ZWN0IHRoYXQgYSB0ZXN0IHByb2dyYW0gaGFzIGV4aXRl
ZAotICBwcmVtYXR1cmVseSBhbmQgcmVwb3J0IGl0IGFzIGEgZmFpbHVyZSAoYmVmb3JlIGl0IHdv
dWxkIGJlCi0gIGZhbHNlbHkgcmVwb3J0ZWQgYXMgYSBzdWNjZXNzIGlmIHRoZSBleGl0IGNvZGUg
aXMgMCkuCi0qIE5ldyBmZWF0dXJlOiBUZXN0OjpSZWNvcmRQcm9wZXJ0eSgpIGNhbiBub3cgYmUg
dXNlZCBvdXRzaWRlIG9mIHRoZQotICBsaWZlc3BhbiBvZiBhIHRlc3QgbWV0aG9kLCBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0bwotICB0aGUgY3VycmVudCB0ZXN0IGNhc2Ug
b3IgdGhlIHRlc3QgcHJvZ3JhbSBpbiB0aGUgWE1MIHJlcG9ydC4KLSogTmV3IGZlYXR1cmUgKHBv
dGVudGlhbGx5IGJyZWFraW5nKTogLS1ndGVzdF9saXN0X3Rlc3RzIG5vdyBwcmludHMKLSAgdGhl
IHR5cGUgcGFyYW1ldGVycyBhbmQgdmFsdWUgcGFyYW1ldGVycyBmb3IgZWFjaCB0ZXN0LgotKiBJ
bXByb3ZlbWVudDogY2hhciBwb2ludGVycyBhbmQgY2hhciBhcnJheXMgYXJlIG5vdyBlc2NhcGVk
IHByb3Blcmx5Ci0gIGluIGZhaWx1cmUgbWVzc2FnZXMuCi0qIEltcHJvdmVtZW50OiBmYWlsdXJl
IHN1bW1hcnkgaW4gWE1MIHJlcG9ydHMgbm93IGluY2x1ZGVzIGZpbGUgYW5kCi0gIGxpbmUgaW5m
b3JtYXRpb24uCi0qIEltcHJvdmVtZW50OiB0aGUgPHRlc3RzdWl0ZXM+IFhNTCBlbGVtZW50IG5v
dyBoYXMgYSB0aW1lc3RhbXAgYXR0cmlidXRlLgotKiBJbXByb3ZlbWVudDogV2hlbiAtLWd0ZXN0
X2ZpbHRlciBpcyBzcGVjaWZpZWQsIFhNTCByZXBvcnQgbm93IGRvZXNuJ3QKLSAgY29udGFpbiBp
bmZvcm1hdGlvbiBhYm91dCB0ZXN0cyB0aGF0IGFyZSBmaWx0ZXJlZCBvdXQuCi0qIEZpeGVkIHRo
ZSBidWcgd2hlcmUgbG9uZyAtLWd0ZXN0X2ZpbHRlciBmbGFnIHZhbHVlcyBhcmUgdHJ1bmNhdGVk
IGluCi0gIGRlYXRoIHRlc3RzLgotKiBQb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2U6IFJVTl9B
TExfVEVTVFMoKSBpcyBub3cgaW1wbGVtZW50ZWQgYXMgYQotICBmdW5jdGlvbiBpbnN0ZWFkIG9m
IGEgbWFjcm8gaW4gb3JkZXIgdG8gd29yayBiZXR0ZXIgd2l0aCBDbGFuZy4KLSogQ29tcGF0aWJp
bGl0eSBmaXhlcyB3aXRoIEMrKyAxMSBhbmQgdmFyaW91cyBwbGF0Zm9ybXMuCi0qIEJ1Zy93YXJu
aW5nIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjYuMDoKLQotKiBOZXcgZmVhdHVyZTogQUREX0ZB
SUxVUkVfQVQoKSBmb3IgcmVwb3J0aW5nIGEgdGVzdCBmYWlsdXJlIGF0IHRoZQotICBnaXZlbiBz
b3VyY2UgbG9jYXRpb24gLS0gdXNlZnVsIGZvciB3cml0aW5nIHRlc3RpbmcgdXRpbGl0aWVzLgot
KiBOZXcgZmVhdHVyZTogdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyIGlzIG1vdmVkIGZyb20g
R29vZ2xlIE1vY2sKLSAgdG8gR29vZ2xlIFRlc3QuCi0qIE5ldyBmZWF0dXJlOiB0eXBlIHBhcmFt
ZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgYXJlIHJlcG9ydGVkIGluCi0gIHRoZSBYTUwgcmVw
b3J0IG5vdy4KLSogQSBndGVzdF9kaXNhYmxlX3B0aHJlYWRzIENNYWtlIG9wdGlvbi4KLSogQ29s
b3JlZCBvdXRwdXQgd29ya3MgaW4gR05VIFNjcmVlbiBzZXNzaW9ucyBub3cuCi0qIFBhcmFtZXRl
cnMgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgbm93IHByaW50ZWQgaW4gdGhlCi0g
IHRleHR1YWwgb3V0cHV0LgotKiBGYWlsdXJlcyBmcm9tIGFkIGhvYyB0ZXN0IGFzc2VydGlvbnMg
cnVuIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgYXJlCi0gIG5vdyBjb3JyZWN0bHkgcmVwb3J0ZWQu
Ci0qIEFyZ3VtZW50cyBvZiBBU1NFUlRfWFkgYW5kIEVYUEVDVF9YWSBubyBsb25nZXIgbmVlZCB0
byBzdXBwb3J0IDw8IHRvCi0gIG9zdHJlYW0uCi0qIE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2Yg
ZXhjZXB0aW9ucy4KLSogR1RFU1RfQVNTRVJUX1hZIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgQVNT
RVJUX1hZIGluIGNhc2UgdGhlIGxhdHRlcgotICBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90
aGVyIGxpYnJhcnkuCi0qIC0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucyBpcyBub3cgdHJ1ZSBieSBk
ZWZhdWx0LCBhbGxvd2luZyBhIHRlc3QKLSAgcHJvZ3JhbSB0byBjb250aW51ZSBhZnRlciBhbiBl
eGNlcHRpb24gaXMgdGhyb3duLgotKiBWYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZXMg
Y2FuIG5vdyBkZXJpdmUgZnJvbSBUZXN0IGFuZAotICBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gc2Vw
YXJhdGVseSwgZWFzaW5nIGNvbnZlcnNpb24gb2YgbGVnYWN5IHRlc3RzLgotKiBEZWF0aCB0ZXN0
IG1lc3NhZ2VzIGFyZSBjbGVhcmx5IG1hcmtlZCB0byBtYWtlIHRoZW0gbW9yZQotICBkaXN0aW5n
dWlzaGFibGUgZnJvbSBvdGhlciBtZXNzYWdlcy4KLSogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3Ig
QW5kcm9pZCwgR29vZ2xlIE5hdGl2ZSBDbGllbnQsIE1pbkdXLCBIUCBVWCwKLSAgUG93ZXJQQywg
THVjaWQgYXV0b3Rvb2xzLCBsaWJDU3RkLCBTdW4gQysrLCBCb3JsYW5kIEMrKyBCdWlsZGVyIChD
b2RlIEdlYXIpLAotICBJQk0gWEwgQysrIChWaXN1YWwgQWdlIEMrKyksIGFuZCBDKysweC4KLSog
QnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0qIFBvdGVudGlhbGx5IGlu
Y29tcGF0aWJsZSBjaGFuZ2VzOiBkaXNhYmxlcyB0aGUgaGFybWZ1bCAnbWFrZSBpbnN0YWxsJwot
ICBjb21tYW5kIGluIGF1dG90b29scy4KLQotQ2hhbmdlcyBmb3IgMS41LjA6Ci0KLSAqIE5ldyBm
ZWF0dXJlOiBhc3NlcnRpb25zIGNhbiBiZSBzYWZlbHkgY2FsbGVkIGluIG11bHRpcGxlIHRocmVh
ZHMKLSAgIHdoZXJlIHRoZSBwdGhyZWFkcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4KLSAqIE5ldyBm
ZWF0dXJlOiBwcmVkaWNhdGVzIHVzZWQgaW5zaWRlIEVYUEVDVF9UUlVFKCkgYW5kIGZyaWVuZHMK
LSAgIGNhbiBub3cgZ2VuZXJhdGUgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZXMuCi0gKiBOZXcgZmVh
dHVyZTogR29vZ2xlIFRlc3QgY2FuIG5vdyBiZSBjb21waWxlZCBhcyBhIERMTC4KLSAqIE5ldyBm
ZWF0dXJlOiBmdXNlZCBzb3VyY2UgZmlsZXMgYXJlIGluY2x1ZGVkLgotICogTmV3IGZlYXR1cmU6
IHByaW50cyBoZWxwIHdoZW4gZW5jb3VudGVyaW5nIHVucmVjb2duaXplZCBHb29nbGUgVGVzdCBm
bGFncy4KLSAqIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBDTWFrZSBidWlsZCBzY3JpcHQgKHJlcXVp
cmVzIENNYWtlIDIuNi40KykuCi0gKiBFeHBlcmltZW50YWwgZmVhdHVyZTogdGhlIFB1bXAgc2Ny
aXB0IGZvciBtZXRhIHByb2dyYW1taW5nLgotICogZG91YmxlIHZhbHVlcyBzdHJlYW1lZCB0byBh
biBhc3NlcnRpb24gYXJlIHByaW50ZWQgd2l0aCBlbm91Z2ggcHJlY2lzaW9uCi0gICB0byBkaWZm
ZXJlbnRpYXRlIGFueSB0d28gZGlmZmVyZW50IHZhbHVlcy4KLSAqIEdvb2dsZSBUZXN0IG5vdyB3
b3JrcyBvbiBTb2xhcmlzIGFuZCBBSVguCi0gKiBCdWlsZCBhbmQgdGVzdCBzY3JpcHQgaW1wcm92
ZW1lbnRzLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0KLSBQ
b3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzOgotCi0gKiBTdG9wcGVkIHN1cHBvcnRpbmcgVkMr
KyA3LjEgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLgotICogRHJvcHBlZCBzdXBwb3J0IGZvciAn
bWFrZSBpbnN0YWxsJy4KLQotQ2hhbmdlcyBmb3IgMS40LjA6Ci0KLSAqIE5ldyBmZWF0dXJlOiB0
aGUgZXZlbnQgbGlzdGVuZXIgQVBJCi0gKiBOZXcgZmVhdHVyZTogdGVzdCBzaHVmZmxpbmcKLSAq
IE5ldyBmZWF0dXJlOiB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgaXMgY2xvc2VyIHRvIGp1bml0cmVw
b3J0IGFuZCBjYW4KLSAgIGJlIHBhcnNlZCBieSBIdWRzb24gbm93LgotICogTmV3IGZlYXR1cmU6
IHdoZW4gYSB0ZXN0IHJ1bnMgdW5kZXIgVmlzdWFsIFN0dWRpbywgaXRzIGZhaWx1cmVzIGFyZQot
ICAgaW50ZWdyYXRlZCBpbiB0aGUgSURFLgotICogTmV3IGZlYXR1cmU6IC9NRChkKSB2ZXJzaW9u
cyBvZiBWQysrIHByb2plY3RzLgotICogTmV3IGZlYXR1cmU6IGVsYXBzZWQgdGltZSBmb3IgdGhl
IHRlc3RzIGlzIHByaW50ZWQgYnkgZGVmYXVsdC4KLSAqIE5ldyBmZWF0dXJlOiBjb21lcyB3aXRo
IGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uIHN1Y2ggdGhhdCBCb29zdAotICAgaXMgbm8gbG9u
Z2VyIG5lZWRlZCBmb3IgQ29tYmluZSgpLgotICogTmV3IGZlYXR1cmU6IEVYUEVDVF9ERUFUSF9J
Rl9TVVBQT1JURUQgbWFjcm8gYW5kIGZyaWVuZHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIFhjb2Rl
IHByb2plY3QgY2FuIG5vdyBwcm9kdWNlIHN0YXRpYyBndGVzdAotICAgbGlicmFyaWVzIGluIGFk
ZGl0aW9uIHRvIGEgZnJhbWV3b3JrLgotICogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3IgU29sYXJp
cywgQ3lnd2luLCBtaW5HVywgV2luZG93cyBNb2JpbGUsCi0gICBTeW1iaWFuLCBnY2MsIGFuZCBD
KytCdWlsZGVyLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0K
LUNoYW5nZXMgZm9yIDEuMy4wOgotCi0gKiBOZXcgZmVhdHVyZTogZGVhdGggdGVzdHMgb24gV2lu
ZG93cywgQ3lnd2luLCBhbmQgTWFjLgotICogTmV3IGZlYXR1cmU6IGFiaWxpdHkgdG8gdXNlIEdv
b2dsZSBUZXN0IGFzc2VydGlvbnMgaW4gb3RoZXIgdGVzdGluZwotICAgZnJhbWV3b3Jrcy4KLSAq
IE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHJ1biBkaXNhYmxlZCB0ZXN0IHZpYQotICAgLS1ndGVz
dF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgLS1oZWxwIGZs
YWcgZm9yIHByaW50aW5nIHRoZSB1c2FnZS4KLSAqIE5ldyBmZWF0dXJlOiBhY2Nlc3MgdG8gR29v
Z2xlIFRlc3QgZmxhZyB2YWx1ZXMgaW4gdXNlciBjb2RlLgotICogTmV3IGZlYXR1cmU6IGEgc2Ny
aXB0IHRoYXQgcGFja3MgR29vZ2xlIFRlc3QgaW50byBvbmUgLmggYW5kIG9uZQotICAgLmNjIGZp
bGUgZm9yIGVhc3kgZGVwbG95bWVudC4KLSAqIE5ldyBmZWF0dXJlOiBzdXBwb3J0IGZvciBkaXN0
cmlidXRpbmcgdGVzdCBmdW5jdGlvbnMgdG8gbXVsdGlwbGUKLSAgIG1hY2hpbmVzIChyZXF1aXJl
cyBzdXBwb3J0IGZyb20gdGhlIHRlc3QgcnVubmVyKS4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVt
ZW50YXRpb24gY2xlYW4tdXBzLgotCi1DaGFuZ2VzIGZvciAxLjIuMToKLQotICogQ29tcGF0aWJp
bGl0eSBmaXhlcyBmb3IgTGludXggSUEtNjQgYW5kIElCTSB6L09TLgotICogQWRkZWQgc3VwcG9y
dCBmb3IgdXNpbmcgQm9vc3QgYW5kIG90aGVyIFRSMSBpbXBsZW1lbnRhdGlvbnMuCi0gKiBDaGFu
Z2VzIHRvIHRoZSBidWlsZCBzY3JpcHRzIHRvIHN1cHBvcnQgdXBjb21pbmcgcmVsZWFzZSBvZiBH
b29nbGUgQysrCi0gICBNb2NraW5nIEZyYW1ld29yay4KLSAqIEFkZGVkIE1ha2VmaWxlIHRvIHRo
ZSBkaXN0cmlidXRpb24gcGFja2FnZS4KLSAqIEltcHJvdmVkIGJ1aWxkIGluc3RydWN0aW9ucyBp
biBSRUFETUUuCi0KLUNoYW5nZXMgZm9yIDEuMi4wOgotCi0gKiBOZXcgZmVhdHVyZTogdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgQVNTRVJUL0VYUEVDVF8o
Tk9OKUZBVEFMX0ZBSUxVUkUoX09OX0FMTF9USFJFQURTKQotICAgbWFjcm9zLgotICogQ2hhbmdl
ZCB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgdG8gbWF0Y2ggSlVuaXQvQW50J3MuCi0gKiBBZGRlZCB0
ZXN0cyB0byB0aGUgWGNvZGUgcHJvamVjdC4KLSAqIEFkZGVkIHNjb25zL1NDb25zY3JpcHQgZm9y
IGJ1aWxkaW5nIHdpdGggU0NvbnMuCi0gKiBBZGRlZCBzcmMvZ3Rlc3QtYWxsLmNjIGZvciBidWls
ZGluZyBHb29nbGUgVGVzdCBmcm9tIGEgc2luZ2xlIGZpbGUuCi0gKiBGaXhlZCBjb21wYXRpYmls
aXR5IHdpdGggU29sYXJpcyBhbmQgei9PUy4KLSAqIEVuYWJsZWQgcnVubmluZyBQeXRob24gdGVz
dHMgb24gc3lzdGVtcyB3aXRoIHB5dGhvbiAyLjMgaW5zdGFsbGVkLAotICAgZS5nLiBNYWMgT1Mg
WCAxMC40LgotICogQnVnIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjEuMDoKLQotICogTmV3IGZl
YXR1cmU6IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiBleGNlcHRp
b24gYXNzZXJ0aW9ucy4KLSAqIE5ldyBmZWF0dXJlOiBwcmludGluZyBlbGFwc2VkIHRpbWUgb2Yg
dGVzdHMuCi0gKiBJbXByb3ZlZCB0aGUgcm9idXN0bmVzcyBvZiBkZWF0aCB0ZXN0cy4KLSAqIEFk
ZGVkIGFuIFhjb2RlIHByb2plY3QgYW5kIHNhbXBsZXMuCi0gKiBBZGp1c3RlZCB0aGUgb3V0cHV0
IGZvcm1hdCBvbiBXaW5kb3dzIHRvIGJlIHVuZGVyc3RhbmRhYmxlIGJ5IFZpc3VhbCBTdHVkaW8u
Ci0gKiBNaW5vciBidWcgZml4ZXMuCi0KLUNoYW5nZXMgZm9yIDEuMC4xOgotCi0gKiBBZGRlZCBw
cm9qZWN0IGZpbGVzIGZvciBWaXN1YWwgU3R1ZGlvIDcuMS4KLSAqIEZpeGVkIGlzc3VlcyB3aXRo
IGNvbXBpbGluZyBvbiBNYWMgT1MgWC4KLSAqIEZpeGVkIGlzc3VlcyB3aXRoIGNvbXBpbGluZyBv
biBDeWd3aW4uCi0KLUNoYW5nZXMgZm9yIDEuMC4wOgotCi0gKiBJbml0aWFsIE9wZW4gU291cmNl
IHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50
eHQKaW5kZXggNTEwNDNlMjY2OTI5Y2Y3N2JkZDY1MTg1OWExODg5MzJmNGVmZjZmOS4uOTc1OTdh
Y2NkOTEyYWI5YWRkMGM0OTg3MWFkNmNlMGI5YTMxMmM2MyAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYgKzE0LDcgQEAgc2V0KEdURVNUX1NPVVJDRVMKICAg
ICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKICAgICAke0dURVNUX0RJUn0v
c3JjL2d0ZXN0LWZpbGVwYXRoLmNjCiAgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdF9tYWluLmNj
CisgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdF9tYXRjaGVycy5jYwogICAgICR7R1RFU1RfRElS
fS9zcmMvZ3Rlc3QtcG9ydC5jYwogICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtcHJpbnRlcnMu
Y2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LXRlc3QtcGFydC5jYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ09OVFJJQlVUT1JTIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvQ09OVFJJQlVUT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWFlMmZj
MDQ0MTBkYzMwOGU0NjRhYTI1NmZlMWYyZDMxZWRjOTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NPTlRSSUJV
VE9SUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgVGhpcyBmaWxlIGNvbnRhaW5z
IGEgbGlzdCBvZiBwZW9wbGUgd2hvJ3ZlIG1hZGUgbm9uLXRyaXZpYWwKLSMgY29udHJpYnV0aW9u
IHRvIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIHByb2plY3QuICBQZW9wbGUKLSMg
d2hvIGNvbW1pdCBjb2RlIHRvIHRoZSBwcm9qZWN0IGFyZSBlbmNvdXJhZ2VkIHRvIGFkZCB0aGVp
ciBuYW1lcwotIyBoZXJlLiAgUGxlYXNlIGtlZXAgdGhlIGxpc3Qgc29ydGVkIGJ5IGZpcnN0IG5h
bWVzLgotCi1BamF5IEpvc2hpIDxqYWpAZ29vZ2xlLmNvbT4KLUJhbMOhenMgRMOhbiA8YmFsYXpz
LmRhbkBnbWFpbC5jb20+Ci1CaGFyYXQgTWVkaXJhdHRhIDxiaGFyYXRAbWVuYWx0by5jb20+Ci1D
aGFuZGxlciBDYXJydXRoIDxjaGFuZGxlcmNAZ29vZ2xlLmNvbT4KLUNocmlzIFByaW5jZSA8Y3By
aW5jZUBnb29nbGUuY29tPgotQ2hyaXMgVGF5bG9yIDx0YXlsb3JjQGdvb2dsZS5jb20+Ci1EYW4g
RWdub3IgPGVnbm9yQGdvb2dsZS5jb20+Ci1FcmljIFJvbWFuIDxlcm9tYW5AY2hyb21pdW0ub3Jn
PgotSGFkeSBaYWxlayA8aGFkeS56YWxla0BnbWFpbC5jb20+Ci1KZWZmcmV5IFlhc3NraW4gPGp5
YXNza2luQGdvb2dsZS5jb20+Ci1Kw7NpIFNpZ3Vyw7Bzc29uIDxqb2lAZ29vZ2xlLmNvbT4KLUtl
aXIgTWllcmxlIDxtaWVybGVAZ21haWwuY29tPgotS2VpdGggUmF5IDxrZWl0aC5yYXlAZ21haWwu
Y29tPgotS2VudG9uIFZhcmRhIDxrZW50b25AZ29vZ2xlLmNvbT4KLU1hbnVlbCBLbGltZWsgPGts
aW1la0Bnb29nbGUuY29tPgotTWFya3VzIEhldWxlIDxtYXJrdXMuaGV1bGVAZ21haWwuY29tPgot
TWlrYSBSYWVudG8gPG1pa2llQGlraS5maT4KLU1pa2zDs3MgRmF6ZWthcyA8bWZhemVrYXNAc3pl
bWFmb3IuY29tPgotUGFzaSBWYWxtaW5lbiA8cGFzaS52YWxtaW5lbkBnbWFpbC5jb20+Ci1QYXRy
aWNrIEhhbm5hIDxwaGFubmFAZ29vZ2xlLmNvbT4KLVBhdHJpY2sgUmlsZXkgPHBmckBnb29nbGUu
Y29tPgotUGV0ZXIgS2FtaW5za2kgPHBpb3Rya0Bnb29nbGUuY29tPgotUHJlc3RvbiBKYWNrc29u
IDxwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20+Ci1SYWluZXIgS2xhZmZlbmJvZWNrIDxyYWlu
ZXIua2xhZmZlbmJvZWNrQGR5bmF0cmFjZS5jb20+Ci1SdXNzIENveCA8cnNjQGdvb2dsZS5jb20+
Ci1SdXNzIFJ1ZmVyIDxydXNzQHBlbnRhZC5jb20+Ci1TZWFuIE1jYWZlZSA8ZWVmYWNtQGdtYWls
LmNvbT4KLVNpZ3Vyw7B1ciDDgXNnZWlyc3NvbiA8c2lnZ2lAZ29vZ2xlLmNvbT4KLVRyYWN5IEJp
YWxpayA8dHJhY3lAcGVudGFkLmNvbT4KLVZhZGltIEJlcm1hbiA8dmFkaW1iQGdvb2dsZS5jb20+
Ci1WbGFkIExvc2V2IDx2bGFkbEBnb29nbGUuY29tPgotWmhhbnlvbmcgV2FuIDx3YW5AZ29vZ2xl
LmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L01ha2VmaWxlLmFtIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvTWFrZWZpbGUuYW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI0NGM4NDE2YmEwODBjMmYwMTZmMTY2YjE4YjQyYzBmNzNlY2U3YmUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvTWFrZWZpbGUuYW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMzkgKzAsMCBAQAotIyBB
dXRvbWFrZSBmaWxlCi0KLUFDTE9DQUxfQU1GTEFHUyA9IC1JIG00Ci0KLSMgTm9uc3RhbmRhcmQg
cGFja2FnZSBmaWxlcyBmb3IgZGlzdHJpYnV0aW9uCi1FWFRSQV9ESVNUID0gXAotICBDSEFOR0VT
IFwKLSAgQ09OVFJJQlVUT1JTIFwKLSAgTElDRU5TRSBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oLnB1bXAgXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFt
LXV0aWwtZ2VuZXJhdGVkLmgucHVtcCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHVwbGUuaC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwu
aC5wdW1wIFwKLSAgbWFrZS9NYWtlZmlsZSBcCi0gIHNjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5w
eSBcCi0gIHNjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5weSBcCi0gIHNjcmlwdHMvcHVtcC5w
eSBcCi0gIHNjcmlwdHMvdGVzdC9NYWtlZmlsZQotCi0jIGd0ZXN0IHNvdXJjZSBmaWxlcyB0aGF0
IHdlIGRvbid0IGNvbXBpbGUgZGlyZWN0bHkuICBUaGV5IGFyZQotIyAjaW5jbHVkZWQgYnkgZ3Rl
c3QtYWxsLmNjLgotR1RFU1RfU1JDID0gXAotICBzcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyBcCi0g
IHNyYy9ndGVzdC1maWxlcGF0aC5jYyBcCi0gIHNyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaCBcCi0g
IHNyYy9ndGVzdC1wb3J0LmNjIFwKLSAgc3JjL2d0ZXN0LXByaW50ZXJzLmNjIFwKLSAgc3JjL2d0
ZXN0LXRlc3QtcGFydC5jYyBcCi0gIHNyYy9ndGVzdC10eXBlZC10ZXN0LmNjIFwKLSAgc3JjL2d0
ZXN0LmNjCi0KLUVYVFJBX0RJU1QgKz0gJChHVEVTVF9TUkMpCi0KLSMgU2FtcGxlIGZpbGVzIHRo
YXQgd2UgZG9uJ3QgY29tcGlsZS4KLUVYVFJBX0RJU1QgKz0gXAotICBzYW1wbGVzL3ByaW1lX3Rh
Ymxlcy5oIFwKLSAgc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1w
bGUyX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjIFwKLSAgc2Ft
cGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNj
IFwKLSAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU3X3Vu
aXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9z
YW1wbGU5X3VuaXR0ZXN0LmNjCi0KLSMgQysrIHRlc3QgZmlsZXMgdGhhdCB3ZSBkb24ndCBjb21w
aWxlIGRpcmVjdGx5LgotRVhUUkFfRElTVCArPSBcCi0gIHRlc3QvZ3Rlc3QtZGVhdGgtdGVzdF9l
eF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0
ZXN0LWZpbGVwYXRoX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LWxpbmtlZF9wdHJfdGVzdC5jYyBc
Ci0gIHRlc3QvZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtbWVzc2FnZV90
ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1vcHRpb25zX3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRl
c3QtcGFyYW0tdGVzdDItdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10
ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXBhcmFtLXRlc3Rf
dGVzdC5oIFwKLSAgdGVzdC9ndGVzdC1wb3J0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3ByZW1h
dHVyZV9leGl0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXByaW50ZXJzX3Rlc3QuY2MgXAotICB0
ZXN0L2d0ZXN0LXRlc3QtcGFydF90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRl
c3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0
LXR5cGVkLXRlc3RfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmggXAot
ICB0ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWJy
ZWFrLW9uLWZhaWx1cmUtdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4
Y2VwdGlvbnMtdGVzdF8uY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtY29sb3ItdGVzdF8uY2MgXAot
ICB0ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfZW52aXJv
bm1lbnRfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNjIFwK
LSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVz
dHMtdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9tYWluX3VuaXR0ZXN0LmNjIFwKLSAgdGVz
dC9ndGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10
ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9n
dGVzdF9wcm9kX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjIFwKLSAgdGVz
dC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X3NvbGVfaGVhZGVy
X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3N0cmVzc190ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF90
aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24t
ZmFpbHVyZS10ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3Rf
LmNjIFwKLSAgdGVzdC9ndGVzdF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3RfdW5pdHRlc3Qu
Y2MgXAotICB0ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3Rf
eG1sX291dGZpbGUyX3Rlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyBcCi0gIHRlc3QvcHJvZHVjdGlvbi5jYyBcCi0gIHRlc3QvcHJvZHVjdGlvbi5oCi0KLSMg
UHl0aG9uIHRlc3RzIHRoYXQgd2UgZG9uJ3QgcnVuLgotRVhUUkFfRElTVCArPSBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0
ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1jb2xvci10
ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdC5weSBcCi0gIHRlc3QvZ29v
Z2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weSBc
Ci0gIHRlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9nb29n
bGV0ZXN0LW91dHB1dC10ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0X2dv
bGRlbl9saW4udHh0IFwKLSAgdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdC5weSBcCi0gIHRl
c3QvZ3Rlc3RfdGVzdF91dGlscy5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWls
dXJlLXRlc3QucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5IFwK
LSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291
dHB1dF91bml0dGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKLQotIyBD
TWFrZSBzY3JpcHQKLUVYVFJBX0RJU1QgKz0gXAotICBDTWFrZUxpc3RzLnR4dCBcCi0gIGNtYWtl
L2ludGVybmFsX3V0aWxzLmNtYWtlCi0KLSMgTVNWQyBwcm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNU
ICs9IFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbiBcCi0gIG1zdmMvMjAxMC9ndGVzdC1tZC52
Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LnNsbiBcCi0gIG1zdmMvMjAxMC9ndGVzdC52Y3hw
cm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X21haW4tbWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9n
dGVzdF9tYWluLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHBy
b2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ogXAotICBtc3ZjLzIwMTAv
Z3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52
Y3hwcm9qCi0KLSMgeGNvZGUgcHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIHhjb2Rl
L0NvbmZpZy9EZWJ1Z1Byb2plY3QueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvRnJhbWV3b3Jr
VGFyZ2V0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL0dlbmVyYWwueGNjb25maWcgXAotICB4
Y29kZS9Db25maWcvUmVsZWFzZVByb2plY3QueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvU3Rh
dGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL0NvbmZpZy9UZXN0VGFyZ2V0Lnhj
Y29uZmlnIFwKLSAgeGNvZGUvUmVzb3VyY2VzL0luZm8ucGxpc3QgXAotICB4Y29kZS9TY3JpcHRz
L3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2NyaXB0cy92ZXJzaW9uZ2VuZXJhdGUucHkgXAotICB4
Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCi0KLSMgeGNvZGUgc2FtcGxlIGZp
bGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvSW5m
by5wbGlzdCBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL1dpZGdldEZyYW1ld29y
ay54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtT
YW1wbGUvcnVudGVzdHMuc2ggXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRn
ZXQuY2MgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXQuaCBcCi0gIHhj
b2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3dpZGdldF90ZXN0LmNjCi0KLSMgQysrQnVpbGRl
ciBwcm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgY29kZWdlYXIvZ3Rlc3QuY2Jwcm9q
IFwKLSAgY29kZWdlYXIvZ3Rlc3QuZ3JvdXBwcm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3RfYWxsLmNj
IFwKLSAgY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBcCi0gIGNvZGVnZWFyL2d0ZXN0X21haW4uY2Jw
cm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qCi0KLSMgRGlzdHJpYnV0ZSBh
bmQgaW5zdGFsbCBNNCBtYWNybwotbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCi1tNGRh
dGFfREFUQSA9IG00L2d0ZXN0Lm00Ci1FWFRSQV9ESVNUICs9ICQobTRkYXRhX0RBVEEpCi0KLSMg
V2UgZGVmaW5lIHRoZSBnbG9iYWwgQU1fQ1BQRkxBR1MgYXMgZXZlcnl0aGluZyB3ZSBjb21waWxl
IGluY2x1ZGVzIGZyb20gdGhlc2UKLSMgZGlyZWN0b3JpZXMuCi1BTV9DUFBGTEFHUyA9IC1JJChz
cmNkaXIpIC1JJChzcmNkaXIpL2luY2x1ZGUKLQotIyBNb2RpZmllcyBjb21waWxlciBhbmQgbGlu
a2VyIGZsYWdzIGZvciBwdGhyZWFkcyBjb21wYXRpYmlsaXR5LgotaWYgSEFWRV9QVEhSRUFEUwot
ICBBTV9DWFhGTEFHUyA9IEBQVEhSRUFEX0NGTEFHU0AgLURHVEVTVF9IQVNfUFRIUkVBRD0xCi0g
IEFNX0xJQlMgPSBAUFRIUkVBRF9MSUJTQAotZWxzZQotICBBTV9DWFhGTEFHUyA9IC1ER1RFU1Rf
SEFTX1BUSFJFQUQ9MAotZW5kaWYKLQotIyBCdWlsZCBydWxlcyBmb3IgbGlicmFyaWVzLgotbGli
X0xUTElCUkFSSUVTID0gbGliL2xpYmd0ZXN0LmxhIGxpYi9saWJndGVzdF9tYWluLmxhCi0KLWxp
Yl9saWJndGVzdF9sYV9TT1VSQ0VTID0gc3JjL2d0ZXN0LWFsbC5jYwotCi1wa2dpbmNsdWRlX0hF
QURFUlMgPSBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIFwKLSAgaW5jbHVk
ZS9ndGVzdC9ndGVzdC1tZXNzYWdlLmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRl
c3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCBcCi0gIGluY2x1ZGUvZ3Rl
c3QvZ3Rlc3Qtc3BpLmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIFwKLSAg
aW5jbHVkZS9ndGVzdC9ndGVzdC10eXBlZC10ZXN0LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0
LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oIFwKLSAgaW5jbHVkZS9ndGVz
dC9ndGVzdF9wcm9kLmgKLQotcGtnaW5jbHVkZV9pbnRlcm5hbGRpciA9ICQocGtnaW5jbHVkZWRp
cikvaW50ZXJuYWwKLXBrZ2luY2x1ZGVfaW50ZXJuYWxfSEVBREVSUyA9IFwKLSAgaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmggXAotICBpbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LWludGVybmFsLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtl
ZF9wdHIuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5l
cmF0ZWQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIFwK
LSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmggXAotICBpbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC1zdHJpbmcuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCBc
Ci0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmggXAotICBpbmNsdWRl
L2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9jdXN0b20vZ3Rlc3QtcG9ydC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20v
Z3Rlc3QtcHJpbnRlcnMuaAotCi1saWJfbGliZ3Rlc3RfbWFpbl9sYV9TT1VSQ0VTID0gc3JjL2d0
ZXN0X21haW4uY2MKLWxpYl9saWJndGVzdF9tYWluX2xhX0xJQkFERCA9IGxpYi9saWJndGVzdC5s
YQotCi0jIEJ1aWxkIHJ1bGVzIGZvciBzYW1wbGVzIGFuZCB0ZXN0cy4gQXV0b21ha2UncyBuYW1p
bmcgZm9yIHNvbWUgb2YKLSMgdGhlc2UgdmFyaWFibGVzIGlzbid0IHRlcnJpYmx5IG9idmlvdXMs
IHNvIHRoaXMgaXMgYSBicmllZgotIyByZWZlcmVuY2U6Ci0jCi0jIFRFU1RTIC0tIFByb2dyYW1z
IHJ1biBhdXRvbWF0aWNhbGx5IGJ5ICJtYWtlIGNoZWNrIgotIyBjaGVja19QUk9HUkFNUyAtLSBQ
cm9ncmFtcyBidWlsdCBieSAibWFrZSBjaGVjayIgYnV0IG5vdCBuZWNlc3NhcmlseSBydW4KLQot
VEVTVFM9Ci1URVNUU19FTlZJUk9OTUVOVCA9IEdURVNUX1NPVVJDRV9ESVI9IiQoc3JjZGlyKS90
ZXN0IiBcCi0gICAgICAgICAgICAgICAgICAgIEdURVNUX0JVSUxEX0RJUj0iJCh0b3BfYnVpbGRk
aXIpL3Rlc3QiCi1jaGVja19QUk9HUkFNUz0KLQotIyBBIHNpbXBsZSBzYW1wbGUgb24gdXNpbmcg
Z3Rlc3QuCi1URVNUUyArPSBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMv
c2FtcGxlMl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0IFwKLSAgICBz
YW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdCBc
Ci0gICAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTdfdW5p
dHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1w
bGU5X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0Ci1jaGVja19QUk9H
UkFNUyArPSBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlMl91
bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3Nh
bXBsZTRfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdCBcCi0gICAgc2Ft
cGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QgXAot
ICAgIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU5X3VuaXR0
ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0Ci0KLXNhbXBsZXNfc2FtcGxlMV91
bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2Ft
cGxlMS5jYwotc2FtcGxlc19zYW1wbGUxX3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTJfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlMl91bml0
dGVzdC5jYyBzYW1wbGVzL3NhbXBsZTIuY2MKLXNhbXBsZXNfc2FtcGxlMl91bml0dGVzdF9MREFE
RCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGUzX3VuaXR0ZXN0X1NPVVJDRVMgPSBz
YW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlM191bml0dGVzdF9MREFE
RCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGU0X3VuaXR0ZXN0X1NPVVJDRVMgPSBz
YW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QuY2Mgc2FtcGxlcy9zYW1wbGU0LmNjCi1zYW1wbGVzX3Nh
bXBsZTRfdW5pdHRlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlNV91
bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2Ft
cGxlMS5jYwotc2FtcGxlc19zYW1wbGU1X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTZfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlNl91bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTdfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlN191bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZThfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlOF91bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci0KLSMgQWxzbyB2ZXJpZnkgdGhhdCBsaWJndGVzdCB3b3JrcyBieSBpdHNlbGYuCi1zYW1wbGVz
X3NhbXBsZTlfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwot
c2FtcGxlc19zYW1wbGU5X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVz
X3NhbXBsZTEwX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNj
Ci1zYW1wbGVzX3NhbXBsZTEwX3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0LmxhCi0KLSMg
VGhpcyB0ZXN0cyBtb3N0IGNvbnN0cnVjdHMgb2YgZ3Rlc3QgYW5kIHZlcmlmaWVzIHRoYXQgbGli
Z3Rlc3RfbWFpbgotIyBhbmQgbGliZ3Rlc3Qgd29yay4KLVRFU1RTICs9IHRlc3QvZ3Rlc3RfYWxs
X3Rlc3QKLWNoZWNrX1BST0dSQU1TICs9IHRlc3QvZ3Rlc3RfYWxsX3Rlc3QKLXRlc3RfZ3Rlc3Rf
YWxsX3Rlc3RfU09VUkNFUyA9IHRlc3QvZ3Rlc3RfYWxsX3Rlc3QuY2MKLXRlc3RfZ3Rlc3RfYWxs
X3Rlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi0KLSMgVGVzdHMgdGhhdCBmdXNlZCBndGVzdCBmaWxl
cyBjb21waWxlIGFuZCB3b3JrLgotRlVTRURfR1RFU1RfU1JDID0gXAotICBmdXNlZC1zcmMvZ3Rl
c3QvZ3Rlc3QtYWxsLmNjIFwKLSAgZnVzZWQtc3JjL2d0ZXN0L2d0ZXN0LmggXAotICBmdXNlZC1z
cmMvZ3Rlc3QvZ3Rlc3RfbWFpbi5jYwotCi1pZiBIQVZFX1BZVEhPTgotVEVTVFMgKz0gdGVzdC9m
dXNlZF9ndGVzdF90ZXN0Ci1jaGVja19QUk9HUkFNUyArPSB0ZXN0L2Z1c2VkX2d0ZXN0X3Rlc3QK
LXRlc3RfZnVzZWRfZ3Rlc3RfdGVzdF9TT1VSQ0VTID0gJChGVVNFRF9HVEVTVF9TUkMpIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlcy9zYW1wbGUxLmNjIHNhbXBsZXMv
c2FtcGxlMV91bml0dGVzdC5jYwotdGVzdF9mdXNlZF9ndGVzdF90ZXN0X0NQUEZMQUdTID0gLUki
JChzcmNkaXIpL2Z1c2VkLXNyYyIKLQotIyBCdWlsZCBydWxlcyBmb3IgcHV0dGluZyBmdXNlZCBH
b29nbGUgVGVzdCBmaWxlcyBpbnRvIHRoZSBkaXN0cmlidXRpb24KLSMgcGFja2FnZS4gVGhlIHVz
ZXIgY2FuIGFsc28gY3JlYXRlIHRob3NlIGZpbGVzIGJ5IG1hbnVhbGx5IHJ1bm5pbmcKLSMgc2Ny
aXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5LgotJCh0ZXN0X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNF
Uyk6IGZ1c2VkLWd0ZXN0Ci0KLWZ1c2VkLWd0ZXN0OiAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChw
a2dpbmNsdWRlX2ludGVybmFsX0hFQURFUlMpIFwKLSAgICAgICAgICAgICAkKEdURVNUX1NSQykg
c3JjL2d0ZXN0LWFsbC5jYyBzcmMvZ3Rlc3RfbWFpbi5jYyBcCi0gICAgICAgICAgICAgc2NyaXB0
cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5Ci0JbWtkaXIgLXAgIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0J
Y2htb2QgLVIgdSt3ICIkKHNyY2RpcikvZnVzZWQtc3JjIgotCXJtIC1mICIkKHNyY2RpcikvZnVz
ZWQtc3JjL2d0ZXN0L2d0ZXN0LWFsbC5jYyIKLQlybSAtZiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9n
dGVzdC9ndGVzdC5oIgotCSIkKHNyY2Rpcikvc2NyaXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5IiAi
JChzcmNkaXIpL2Z1c2VkLXNyYyIKLQljcCAtZiAiJChzcmNkaXIpL3NyYy9ndGVzdF9tYWluLmNj
IiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9ndGVzdC8iCi0KLW1haW50YWluZXItY2xlYW4tbG9jYWw6
Ci0Jcm0gLXJmICIkKHNyY2RpcikvZnVzZWQtc3JjIgotZW5kaWYKLQotIyBEZWF0aCB0ZXN0cyBt
YXkgcHJvZHVjZSBjb3JlIGR1bXBzIGluIHRoZSBidWlsZCBkaXJlY3RvcnkuIEluIGNhc2UKLSMg
dGhpcyBoYXBwZW5zLCBjbGVhbiB0aGVtIHRvIGtlZXAgZGlzdGNsZWFuY2hlY2sgaGFwcHkuCi1D
TEVBTkZJTEVTID0gY29yZQotCi0jIERpc2FibGVzICdtYWtlIGluc3RhbGwnIGFzIGluc3RhbGxp
bmcgYSBjb21waWxlZCB2ZXJzaW9uIG9mIEdvb2dsZQotIyBUZXN0IGNhbiBsZWFkIHRvIHVuZGVm
aW5lZCBiZWhhdmlvciBkdWUgdG8gdmlvbGF0aW9uIG9mIHRoZQotIyBPbmUtRGVmaW5pdGlvbiBS
dWxlLgotCi1pbnN0YWxsLWV4ZWMtbG9jYWw6Ci0JZWNobyAiJ21ha2UgaW5zdGFsbCcgaXMgZGFu
Z2Vyb3VzIGFuZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBzZWUgUkVBRE1FIGZvciBob3cgdG8g
aW50ZWdyYXRlIEdvb2dsZSBUZXN0IGludG8geW91ciBidWlsZCBzeXN0ZW0uIgotCWZhbHNlCi0K
LWluc3RhbGwtZGF0YS1sb2NhbDoKLQllY2hvICInbWFrZSBpbnN0YWxsJyBpcyBkYW5nZXJvdXMg
YW5kIG5vdCBzdXBwb3J0ZWQuIEluc3RlYWQsIHNlZSBSRUFETUUgZm9yIGhvdyB0byBpbnRlZ3Jh
dGUgR29vZ2xlIFRlc3QgaW50byB5b3VyIGJ1aWxkIHN5c3RlbS4iCi0JZmFsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5XZWJLaXQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9SRUFETUUuV2ViS2l0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
NmUzYmJmZjg5MWMxYjcwMTc1ZmJmNDYxY2FkOTJiYmQyYTMxYzhiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JF
QURNRS5XZWJLaXQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUdUZXN0IHYuMS44LjEK
LQotaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3JlbGVhc2VzL3RhZy9yZWxl
YXNlLTEuOC4xLwotCi0yMDE2LTAxLTAyIFRpbmctV2VpIExhbiAobGFudHc0NEBnbWFpbC5jb20p
Ci0gICAgICBSZW1vdmUgdXNhZ2Ugb2YgZW52aXJvbiBnbG9iYWwgdmFyaWFibGUgdG8gZml4IHRo
ZSBidWlsZCBvbiBGcmVlQlNELgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
UkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvUkVBRE1FLm1kCmluZGV4IGUzMGZl
ODA0NzEyN2JlZTE2ZDJjNzFmMTRiNTA5ZjM3NTcxYWRkNDEuLjcxN2M4ODY3OTBiYWJiZjdjZWI0
MmJlZGNlNDIwOWE2ODFhNTA0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L1JFQURNRS5tZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFETUUubWQKQEAgLTIs
ODAgKzIsNTEgQEAKIAogIyMjIyBTZXR1cAogCi1UbyBidWlsZCBHb29nbGUgVGVzdCBhbmQgeW91
ciB0ZXN0cyB0aGF0IHVzZSBpdCwgeW91IG5lZWQgdG8gdGVsbCB5b3VyIGJ1aWxkCitUbyBidWls
ZCBHb29nbGVUZXN0IGFuZCB5b3VyIHRlc3RzIHRoYXQgdXNlIGl0LCB5b3UgbmVlZCB0byB0ZWxs
IHlvdXIgYnVpbGQKIHN5c3RlbSB3aGVyZSB0byBmaW5kIGl0cyBoZWFkZXJzIGFuZCBzb3VyY2Ug
ZmlsZXMuIFRoZSBleGFjdCB3YXkgdG8gZG8gaXQKIGRlcGVuZHMgb24gd2hpY2ggYnVpbGQgc3lz
dGVtIHlvdSB1c2UsIGFuZCBpcyB1c3VhbGx5IHN0cmFpZ2h0Zm9yd2FyZC4KIAotIyMjIyBCdWls
ZAorIyMjIEJ1aWxkIHdpdGggQ01ha2UKIAotU3VwcG9zZSB5b3UgcHV0IEdvb2dsZSBUZXN0IGlu
IGRpcmVjdG9yeSBgJHtHVEVTVF9ESVJ9YC4gVG8gYnVpbGQgaXQsIGNyZWF0ZSBhCi1saWJyYXJ5
IGJ1aWxkIHRhcmdldCAob3IgYSBwcm9qZWN0IGFzIGNhbGxlZCBieSBWaXN1YWwgU3R1ZGlvIGFu
ZCBYY29kZSkgdG8KLWNvbXBpbGUKLQotICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtYWxsLmNj
Ci0KLXdpdGggYCR7R1RFU1RfRElSfS9pbmNsdWRlYCBpbiB0aGUgc3lzdGVtIGhlYWRlciBzZWFy
Y2ggcGF0aCBhbmQgYCR7R1RFU1RfRElSfWAKLWluIHRoZSBub3JtYWwgaGVhZGVyIHNlYXJjaCBw
YXRoLiBBc3N1bWluZyBhIExpbnV4LWxpa2Ugc3lzdGVtIGFuZCBnY2MsCi1zb21ldGhpbmcgbGlr
ZSB0aGUgZm9sbG93aW5nIHdpbGwgZG86Ci0KLSAgICBnKysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9
L2luY2x1ZGUgLUkke0dURVNUX0RJUn0gXAotICAgICAgICAtcHRocmVhZCAtYyAke0dURVNUX0RJ
Un0vc3JjL2d0ZXN0LWFsbC5jYwotICAgIGFyIC1ydiBsaWJndGVzdC5hIGd0ZXN0LWFsbC5vCi0K
LShXZSBuZWVkIGAtcHRocmVhZGAgYXMgR29vZ2xlIFRlc3QgdXNlcyB0aHJlYWRzLikKLQotTmV4
dCwgeW91IHNob3VsZCBjb21waWxlIHlvdXIgdGVzdCBzb3VyY2UgZmlsZSB3aXRoIGAke0dURVNU
X0RJUn0vaW5jbHVkZWAgaW4KLXRoZSBzeXN0ZW0gaGVhZGVyIHNlYXJjaCBwYXRoLCBhbmQgbGlu
ayBpdCB3aXRoIGd0ZXN0IGFuZCBhbnkgb3RoZXIgbmVjZXNzYXJ5Ci1saWJyYXJpZXM6Ci0KLSAg
ICBnKysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9L2luY2x1ZGUgLXB0aHJlYWQgcGF0aC90by95b3Vy
X3Rlc3QuY2MgbGliZ3Rlc3QuYSBcCi0gICAgICAgIC1vIHlvdXJfdGVzdAotCi1BcyBhbiBleGFt
cGxlLCB0aGUgbWFrZS8gZGlyZWN0b3J5IGNvbnRhaW5zIGEgTWFrZWZpbGUgdGhhdCB5b3UgY2Fu
IHVzZSB0byBidWlsZAotR29vZ2xlIFRlc3Qgb24gc3lzdGVtcyB3aGVyZSBHTlUgbWFrZSBpcyBh
dmFpbGFibGUgKGUuZy4gTGludXgsIE1hYyBPUyBYLCBhbmQKLUN5Z3dpbikuIEl0IGRvZXNuJ3Qg
dHJ5IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3Mgb3duIHRlc3RzLiBJbnN0ZWFkLCBpdCBqdXN0Ci1i
dWlsZHMgdGhlIEdvb2dsZSBUZXN0IGxpYnJhcnkgYW5kIGEgc2FtcGxlIHRlc3QuIFlvdSBjYW4g
dXNlIGl0IGFzIGEgc3RhcnRpbmcKLXBvaW50IGZvciB5b3VyIG93biBidWlsZCBzY3JpcHQuCi0K
LUlmIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFyZSBjb3JyZWN0IGZvciB5b3VyIGVudmlyb25tZW50
LCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCi1zaG91bGQgc3VjY2VlZDoKLQotICAgIGNkICR7R1RF
U1RfRElSfS9tYWtlCi0gICAgbWFrZQotICAgIC4vc2FtcGxlMV91bml0dGVzdAotCi1JZiB5b3Ug
c2VlIGVycm9ycywgdHJ5IHRvIHR3ZWFrIHRoZSBjb250ZW50cyBvZiBgbWFrZS9NYWtlZmlsZWAg
dG8gbWFrZSB0aGVtIGdvCi1hd2F5LiBUaGVyZSBhcmUgaW5zdHJ1Y3Rpb25zIGluIGBtYWtlL01h
a2VmaWxlYCBvbiBob3cgdG8gZG8gaXQuCi0KLSMjIyBVc2luZyBDTWFrZQotCi1Hb29nbGUgVGVz
dCBjb21lcyB3aXRoIGEgQ01ha2UgYnVpbGQgc2NyaXB0ICgKLVtDTWFrZUxpc3RzLnR4dF0oaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVyL0NNYWtlTGlzdHMu
dHh0KSkKK0dvb2dsZVRlc3QgY29tZXMgd2l0aCBhIENNYWtlIGJ1aWxkIHNjcmlwdAorKFtDTWFr
ZUxpc3RzLnR4dF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFz
dGVyL0NNYWtlTGlzdHMudHh0KSkKIHRoYXQgY2FuIGJlIHVzZWQgb24gYSB3aWRlIHJhbmdlIG9m
IHBsYXRmb3JtcyAoIkMiIHN0YW5kcyBmb3IgY3Jvc3MtcGxhdGZvcm0uKS4KIElmIHlvdSBkb24n
dCBoYXZlIENNYWtlIGluc3RhbGxlZCBhbHJlYWR5LCB5b3UgY2FuIGRvd25sb2FkIGl0IGZvciBm
cmVlIGZyb20KIDxodHRwOi8vd3d3LmNtYWtlLm9yZy8+LgogCiBDTWFrZSB3b3JrcyBieSBnZW5l
cmF0aW5nIG5hdGl2ZSBtYWtlZmlsZXMgb3IgYnVpbGQgcHJvamVjdHMgdGhhdCBjYW4gYmUgdXNl
ZCBpbgotdGhlIGNvbXBpbGVyIGVudmlyb25tZW50IG9mIHlvdXIgY2hvaWNlLiBZb3UgY2FuIGVp
dGhlciBidWlsZCBHb29nbGUgVGVzdCBhcyBhCit0aGUgY29tcGlsZXIgZW52aXJvbm1lbnQgb2Yg
eW91ciBjaG9pY2UuIFlvdSBjYW4gZWl0aGVyIGJ1aWxkIEdvb2dsZVRlc3QgYXMgYQogc3RhbmRh
bG9uZSBwcm9qZWN0IG9yIGl0IGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhbiBleGlzdGluZyBD
TWFrZSBidWlsZCBmb3IKIGFub3RoZXIgcHJvamVjdC4KIAogIyMjIyBTdGFuZGFsb25lIENNYWtl
IFByb2plY3QKIAotV2hlbiBidWlsZGluZyBHb29nbGUgVGVzdCBhcyBhIHN0YW5kYWxvbmUgcHJv
amVjdCwgdGhlIHR5cGljYWwgd29ya2Zsb3cgc3RhcnRzCi13aXRoOgorV2hlbiBidWlsZGluZyBH
b29nbGVUZXN0IGFzIGEgc3RhbmRhbG9uZSBwcm9qZWN0LCB0aGUgdHlwaWNhbCB3b3JrZmxvdyBz
dGFydHMKK3dpdGgKIAotICAgIG1rZGlyIG15YnVpbGQgICAgICAgIyBDcmVhdGUgYSBkaXJlY3Rv
cnkgdG8gaG9sZCB0aGUgYnVpbGQgb3V0cHV0LgotICAgIGNkIG15YnVpbGQKLSAgICBjbWFrZSAk
e0dURVNUX0RJUn0gICMgR2VuZXJhdGUgbmF0aXZlIGJ1aWxkIHNjcmlwdHMuCitgYGAKK2dpdCBj
bG9uZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QuZ2l0IC1iIHJlbGVhc2Ut
MS4xMC4wCitjZCBnb29nbGV0ZXN0ICAgICAgICAjIE1haW4gZGlyZWN0b3J5IG9mIHRoZSBjbG9u
ZWQgcmVwb3NpdG9yeS4KK21rZGlyIGJ1aWxkICAgICAgICAgICMgQ3JlYXRlIGEgZGlyZWN0b3J5
IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KK2NkIGJ1aWxkCitjbWFrZSAuLiAgICAgICAgICAg
ICAjIEdlbmVyYXRlIG5hdGl2ZSBidWlsZCBzY3JpcHRzIGZvciBHb29nbGVUZXN0LgorYGBgCiAK
LUlmIHlvdSB3YW50IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3Mgc2FtcGxlcywgeW91IHNob3VsZCBy
ZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQKLXdpdGgKK1RoZSBhYm92ZSBjb21tYW5kIGFsc28gaW5j
bHVkZXMgR29vZ2xlTW9jayBieSBkZWZhdWx0LiBBbmQgc28sIGlmIHlvdSB3YW50IHRvCitidWls
ZCBvbmx5IEdvb2dsZVRlc3QsIHlvdSBzaG91bGQgcmVwbGFjZSB0aGUgbGFzdCBjb21tYW5kIHdp
dGgKIAotICAgIGNtYWtlIC1EZ3Rlc3RfYnVpbGRfc2FtcGxlcz1PTiAke0dURVNUX0RJUn0KK2Bg
YAorY21ha2UgLi4gLURCVUlMRF9HTU9DSz1PRkYKK2BgYAogCiBJZiB5b3UgYXJlIG9uIGEgXCpu
aXggc3lzdGVtLCB5b3Ugc2hvdWxkIG5vdyBzZWUgYSBNYWtlZmlsZSBpbiB0aGUgY3VycmVudAot
ZGlyZWN0b3J5LiBKdXN0IHR5cGUgJ21ha2UnIHRvIGJ1aWxkIGd0ZXN0LgorZGlyZWN0b3J5LiBK
dXN0IHR5cGUgYG1ha2VgIHRvIGJ1aWxkIEdvb2dsZVRlc3QuIEFuZCB0aGVuIHlvdSBjYW4gc2lt
cGx5IGluc3RhbGwKK0dvb2dsZVRlc3QgaWYgeW91IGFyZSBhIHN5c3RlbSBhZG1pbmlzdHJhdG9y
LgorCitgYGAKK21ha2UKK3N1ZG8gbWFrZSBpbnN0YWxsICAgICMgSW5zdGFsbCBpbiAvdXNyL2xv
Y2FsLyBieSBkZWZhdWx0CitgYGAKIAogSWYgeW91IHVzZSBXaW5kb3dzIGFuZCBoYXZlIFZpc3Vh
bCBTdHVkaW8gaW5zdGFsbGVkLCBhIGBndGVzdC5zbG5gIGZpbGUgYW5kCiBzZXZlcmFsIGAudmNw
cm9qYCBmaWxlcyB3aWxsIGJlIGNyZWF0ZWQuIFlvdSBjYW4gdGhlbiBidWlsZCB0aGVtIHVzaW5n
IFZpc3VhbApAQCAtODUsMTMgKzU2LDE5IEBAIE9uIE1hYyBPUyBYIHdpdGggWGNvZGUgaW5zdGFs
bGVkLCBhIGAueGNvZGVwcm9qYCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkLgogCiAjIyMjIEluY29y
cG9yYXRpbmcgSW50byBBbiBFeGlzdGluZyBDTWFrZSBQcm9qZWN0CiAKLUlmIHlvdSB3YW50IHRv
IHVzZSBndGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxyZWFkeSB1c2VzIENNYWtlLCB0aGVuIGEg
bW9yZQotcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBidWlsZCBndGVzdCBhcyBw
YXJ0IG9mIHRoYXQgcHJvamVjdCBkaXJlY3RseS4KLVRoaXMgaXMgZG9uZSBieSBtYWtpbmcgdGhl
IEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgYXZhaWxhYmxlIHRvIHRoZSBtYWluIGJ1aWxkCi1hbmQg
YWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MgYGFkZF9zdWJkaXJlY3RvcnkoKWAgY29tbWFuZC4gVGhp
cyBoYXMgdGhlCi1zaWduaWZpY2FudCBhZHZhbnRhZ2UgdGhhdCB0aGUgc2FtZSBjb21waWxlciBh
bmQgbGlua2VyIHNldHRpbmdzIGFyZSB1c2VkCi1iZXR3ZWVuIGd0ZXN0IGFuZCB0aGUgcmVzdCBv
ZiB5b3VyIHByb2plY3QsIHNvIGlzc3VlcyBhc3NvY2lhdGVkIHdpdGggdXNpbmcKLWluY29tcGF0
aWJsZSBsaWJyYXJpZXMgKGVnIGRlYnVnL3JlbGVhc2UpLCBldGMuIGFyZSBhdm9pZGVkLiBUaGlz
IGlzCitJZiB5b3Ugd2FudCB0byB1c2UgR29vZ2xlVGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxy
ZWFkeSB1c2VzIENNYWtlLCB0aGUgZWFzaWVzdAord2F5IGlzIHRvIGdldCBpbnN0YWxsZWQgbGli
cmFyaWVzIGFuZCBoZWFkZXJzLgorCisqICAgSW1wb3J0IEdvb2dsZVRlc3QgYnkgdXNpbmcgYGZp
bmRfcGFja2FnZWAgKG9yIGBwa2dfY2hlY2tfbW9kdWxlc2ApLiBGb3IKKyAgICBleGFtcGxlLCBp
ZiBgZmluZF9wYWNrYWdlKEdUZXN0IENPTkZJRyBSRVFVSVJFRClgIGlzIHN1Y2NlZWQsIHlvdSBj
YW4gdXNlCisgICAgdGhlIGxpYnJhcmllcyBhcyBgR1Rlc3Q6Omd0ZXN0YCwgYEdUZXN0OjpnbW9j
a2AuCisKK0FuZCBhIG1vcmUgcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBidWls
ZCBHb29nbGVUZXN0IGFzIHBhcnQgb2YgdGhhdAorcHJvamVjdCBkaXJlY3RseS4gVGhpcyBpcyBk
b25lIGJ5IG1ha2luZyB0aGUgR29vZ2xlVGVzdCBzb3VyY2UgY29kZSBhdmFpbGFibGUgdG8KK3Ro
ZSBtYWluIGJ1aWxkIGFuZCBhZGRpbmcgaXQgdXNpbmcgQ01ha2UncyBgYWRkX3N1YmRpcmVjdG9y
eSgpYCBjb21tYW5kLiBUaGlzCitoYXMgdGhlIHNpZ25pZmljYW50IGFkdmFudGFnZSB0aGF0IHRo
ZSBzYW1lIGNvbXBpbGVyIGFuZCBsaW5rZXIgc2V0dGluZ3MgYXJlCit1c2VkIGJldHdlZW4gR29v
Z2xlVGVzdCBhbmQgdGhlIHJlc3Qgb2YgeW91ciBwcm9qZWN0LCBzbyBpc3N1ZXMgYXNzb2NpYXRl
ZCB3aXRoCit1c2luZyBpbmNvbXBhdGlibGUgbGlicmFyaWVzIChlZyBkZWJ1Zy9yZWxlYXNlKSwg
ZXRjLiBhcmUgYXZvaWRlZC4gVGhpcyBpcwogcGFydGljdWxhcmx5IHVzZWZ1bCBvbiBXaW5kb3dz
LiBNYWtpbmcgR29vZ2xlVGVzdCdzIHNvdXJjZSBjb2RlIGF2YWlsYWJsZSB0byB0aGUKIG1haW4g
YnVpbGQgY2FuIGJlIGRvbmUgYSBmZXcgZGlmZmVyZW50IHdheXM6CiAKQEAgLTExNSw2MCArOTIs
NTcgQEAgcHVsbGVkIGludG8gdGhlIG1haW4gYnVpbGQgd2l0aCBgYWRkX3N1YmRpcmVjdG9yeSgp
YC4gRm9yIGV4YW1wbGU6CiAKIE5ldyBmaWxlIGBDTWFrZUxpc3RzLnR4dC5pbmA6CiAKLSAgICBj
bWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44LjIpCitgYGBjbWFrZQorY21ha2VfbWlu
aW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOC4xMikKIAotICAgIHByb2plY3QoZ29vZ2xldGVzdC1k
b3dubG9hZCBOT05FKQorcHJvamVjdChnb29nbGV0ZXN0LWRvd25sb2FkIE5PTkUpCiAKLSAgICBp
bmNsdWRlKEV4dGVybmFsUHJvamVjdCkKLSAgICBFeHRlcm5hbFByb2plY3RfQWRkKGdvb2dsZXRl
c3QKLSAgICAgIEdJVF9SRVBPU0lUT1JZICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29v
Z2xldGVzdC5naXQKLSAgICAgIEdJVF9UQUcgICAgICAgICAgIG1hc3RlcgotICAgICAgU09VUkNF
X0RJUiAgICAgICAgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1zcmMiCi0gICAgICBC
SU5BUllfRElSICAgICAgICAiJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkIgot
ICAgICAgQ09ORklHVVJFX0NPTU1BTkQgIiIKLSAgICAgIEJVSUxEX0NPTU1BTkQgICAgICIiCi0g
ICAgICBJTlNUQUxMX0NPTU1BTkQgICAiIgotICAgICAgVEVTVF9DT01NQU5EICAgICAgIiIKLSAg
ICApCitpbmNsdWRlKEV4dGVybmFsUHJvamVjdCkKK0V4dGVybmFsUHJvamVjdF9BZGQoZ29vZ2xl
dGVzdAorICBHSVRfUkVQT1NJVE9SWSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2ds
ZXRlc3QuZ2l0CisgIEdJVF9UQUcgICAgICAgICAgIG1hc3RlcgorICBTT1VSQ0VfRElSICAgICAg
ICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qtc3JjIgorICBCSU5BUllf
RElSICAgICAgICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3QtYnVpbGQi
CisgIENPTkZJR1VSRV9DT01NQU5EICIiCisgIEJVSUxEX0NPTU1BTkQgICAgICIiCisgIElOU1RB
TExfQ09NTUFORCAgICIiCisgIFRFU1RfQ09NTUFORCAgICAgICIiCispCitgYGAKIAogRXhpc3Rp
bmcgYnVpbGQncyBgQ01ha2VMaXN0cy50eHRgOgogCi0gICAgIyBEb3dubG9hZCBhbmQgdW5wYWNr
IGdvb2dsZXRlc3QgYXQgY29uZmlndXJlIHRpbWUKLSAgICBjb25maWd1cmVfZmlsZShDTWFrZUxp
c3RzLnR4dC5pbiBnb29nbGV0ZXN0LWRvd25sb2FkL0NNYWtlTGlzdHMudHh0KQotICAgIGV4ZWN1
dGVfcHJvY2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUcgIiR7Q01BS0VfR0VORVJBVE9S
fSIgLgotICAgICAgUkVTVUxUX1ZBUklBQkxFIHJlc3VsdAotICAgICAgV09SS0lOR19ESVJFQ1RP
UlkgJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWRvd25sb2FkICkKLSAgICBpZihyZXN1
bHQpCi0gICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTWFrZSBzdGVwIGZvciBnb29nbGV0ZXN0
IGZhaWxlZDogJHtyZXN1bHR9IikKLSAgICBlbmRpZigpCi0gICAgZXhlY3V0ZV9wcm9jZXNzKENP
TU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtLWJ1aWxkIC4KLSAgICAgIFJFU1VMVF9WQVJJQUJMRSBy
ZXN1bHQKLSAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xl
dGVzdC1kb3dubG9hZCApCi0gICAgaWYocmVzdWx0KQotICAgICAgbWVzc2FnZShGQVRBTF9FUlJP
UiAiQnVpbGQgc3RlcCBmb3IgZ29vZ2xldGVzdCBmYWlsZWQ6ICR7cmVzdWx0fSIpCi0gICAgZW5k
aWYoKQotCi0gICAgIyBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIHBhcmVudCBwcm9qZWN0J3MgY29t
cGlsZXIvbGlua2VyCi0gICAgIyBzZXR0aW5ncyBvbiBXaW5kb3dzCi0gICAgc2V0KGd0ZXN0X2Zv
cmNlX3NoYXJlZF9jcnQgT04gQ0FDSEUgQk9PTCAiIiBGT1JDRSkKLQotICAgICMgQWRkIGdvb2ds
ZXRlc3QgZGlyZWN0bHkgdG8gb3VyIGJ1aWxkLiBUaGlzIGRlZmluZXMKLSAgICAjIHRoZSBndGVz
dCBhbmQgZ3Rlc3RfbWFpbiB0YXJnZXRzLgotICAgIGFkZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9C
SU5BUllfRElSfS9nb29nbGV0ZXN0LXNyYwotICAgICAgICAgICAgICAgICAgICAgJHtDTUFLRV9C
SU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkCi0gICAgICAgICAgICAgICAgICAgICBFWENMVURF
X0ZST01fQUxMKQotCi0gICAgIyBUaGUgZ3Rlc3QvZ3Rlc3RfbWFpbiB0YXJnZXRzIGNhcnJ5IGhl
YWRlciBzZWFyY2ggcGF0aAotICAgICMgZGVwZW5kZW5jaWVzIGF1dG9tYXRpY2FsbHkgd2hlbiB1
c2luZyBDTWFrZSAyLjguMTEgb3IKLSAgICAjIGxhdGVyLiBPdGhlcndpc2Ugd2UgaGF2ZSB0byBh
ZGQgdGhlbSBoZXJlIG91cnNlbHZlcy4KLSAgICBpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xF
U1MgMi44LjExKQotICAgICAgaW5jbHVkZV9kaXJlY3RvcmllcygiJHtndGVzdF9TT1VSQ0VfRElS
fS9pbmNsdWRlIikKLSAgICBlbmRpZigpCi0KLSAgICAjIE5vdyBzaW1wbHkgbGluayBhZ2FpbnN0
IGd0ZXN0IG9yIGd0ZXN0X21haW4gYXMgbmVlZGVkLiBFZwotICAgIGFkZF9leGVjdXRhYmxlKGV4
YW1wbGUgZXhhbXBsZS5jcHApCi0gICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4YW1wbGUgZ3Rl
c3RfbWFpbikKLSAgICBhZGRfdGVzdChOQU1FIGV4YW1wbGVfdGVzdCBDT01NQU5EIGV4YW1wbGUp
CitgYGBjbWFrZQorIyBEb3dubG9hZCBhbmQgdW5wYWNrIGdvb2dsZXRlc3QgYXQgY29uZmlndXJl
IHRpbWUKK2NvbmZpZ3VyZV9maWxlKENNYWtlTGlzdHMudHh0LmluIGdvb2dsZXRlc3QtZG93bmxv
YWQvQ01ha2VMaXN0cy50eHQpCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0NNQUtFX0NPTU1B
TkR9IC1HICIke0NNQUtFX0dFTkVSQVRPUn0iIC4KKyAgUkVTVUxUX1ZBUklBQkxFIHJlc3VsdAor
ICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZ29vZ2xldGVz
dC1kb3dubG9hZCApCitpZihyZXN1bHQpCisgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNYWtlIHN0
ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQorZW5kaWYoKQorZXhlY3V0ZV9w
cm9jZXNzKENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtLWJ1aWxkIC4KKyAgUkVTVUxUX1ZBUklB
QkxFIHJlc3VsdAorICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJ
Un0vZ29vZ2xldGVzdC1kb3dubG9hZCApCitpZihyZXN1bHQpCisgIG1lc3NhZ2UoRkFUQUxfRVJS
T1IgIkJ1aWxkIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQorZW5kaWYo
KQorCisjIFByZXZlbnQgb3ZlcnJpZGluZyB0aGUgcGFyZW50IHByb2plY3QncyBjb21waWxlci9s
aW5rZXIKKyMgc2V0dGluZ3Mgb24gV2luZG93cworc2V0KGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQg
T04gQ0FDSEUgQk9PTCAiIiBGT1JDRSkKKworIyBBZGQgZ29vZ2xldGVzdCBkaXJlY3RseSB0byBv
dXIgYnVpbGQuIFRoaXMgZGVmaW5lcworIyB0aGUgZ3Rlc3QgYW5kIGd0ZXN0X21haW4gdGFyZ2V0
cy4KK2FkZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRl
c3Qtc3JjCisgICAgICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29n
bGV0ZXN0LWJ1aWxkCisgICAgICAgICAgICAgICAgIEVYQ0xVREVfRlJPTV9BTEwpCisKKyMgTm93
IHNpbXBseSBsaW5rIGFnYWluc3QgZ3Rlc3Qgb3IgZ3Rlc3RfbWFpbiBhcyBuZWVkZWQuIEVnCith
ZGRfZXhlY3V0YWJsZShleGFtcGxlIGV4YW1wbGUuY3BwKQordGFyZ2V0X2xpbmtfbGlicmFyaWVz
KGV4YW1wbGUgZ3Rlc3RfbWFpbikKK2FkZF90ZXN0KE5BTUUgZXhhbXBsZV90ZXN0IENPTU1BTkQg
ZXhhbXBsZSkKK2BgYAogCiBOb3RlIHRoYXQgdGhpcyBhcHByb2FjaCByZXF1aXJlcyBDTWFrZSAy
LjguMiBvciBsYXRlciBkdWUgdG8gaXRzIHVzZSBvZiB0aGUKIGBFeHRlcm5hbFByb2plY3RfQWRk
KClgIGNvbW1hbmQuIFRoZSBhYm92ZSB0ZWNobmlxdWUgaXMgZGlzY3Vzc2VkIGluIG1vcmUgZGV0
YWlsCkBAIC0xNzgsMTA0ICsxNTIsNDQgQEAgYWxzbyBjb250YWlucyBhIGxpbmsgdG8gYSBmdWxs
eSBnZW5lcmFsaXplZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdGVjaG5pcXVlLgogIyMjIyMgVmlz
dWFsIFN0dWRpbyBEeW5hbWljIHZzIFN0YXRpYyBSdW50aW1lcwogCiBCeSBkZWZhdWx0LCBuZXcg
VmlzdWFsIFN0dWRpbyBwcm9qZWN0cyBsaW5rIHRoZSBDIHJ1bnRpbWVzIGR5bmFtaWNhbGx5IGJ1
dAotR29vZ2xlIFRlc3QgbGlua3MgdGhlbSBzdGF0aWNhbGx5LiBUaGlzIHdpbGwgZ2VuZXJhdGUg
YW4gZXJyb3IgdGhhdCBsb29rcworR29vZ2xlVGVzdCBsaW5rcyB0aGVtIHN0YXRpY2FsbHkuIFRo
aXMgd2lsbCBnZW5lcmF0ZSBhbiBlcnJvciB0aGF0IGxvb2tzCiBzb21ldGhpbmcgbGlrZSB0aGUg
Zm9sbG93aW5nOiBndGVzdC5saWIoZ3Rlc3QtYWxsLm9iaikgOiBlcnJvciBMTksyMDM4OiBtaXNt
YXRjaAogZGV0ZWN0ZWQgZm9yICdSdW50aW1lTGlicmFyeSc6IHZhbHVlICdNVGRfU3RhdGljRGVi
dWcnIGRvZXNuJ3QgbWF0Y2ggdmFsdWUKICdNRGRfRHluYW1pY0RlYnVnJyBpbiBtYWluLm9iagog
Ci1Hb29nbGUgVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtlIG9wdGlvbiBmb3IgdGhpczogYGd0ZXN0
X2ZvcmNlX3NoYXJlZF9jcnRgCitHb29nbGVUZXN0IGFscmVhZHkgaGFzIGEgQ01ha2Ugb3B0aW9u
IGZvciB0aGlzOiBgZ3Rlc3RfZm9yY2Vfc2hhcmVkX2NydGAKIAogRW5hYmxpbmcgdGhpcyBvcHRp
b24gd2lsbCBtYWtlIGd0ZXN0IGxpbmsgdGhlIHJ1bnRpbWVzIGR5bmFtaWNhbGx5IHRvbywgYW5k
CiBtYXRjaCB0aGUgcHJvamVjdCBpbiB3aGljaCBpdCBpcyBpbmNsdWRlZC4KIAotIyMjIExlZ2Fj
eSBCdWlsZCBTY3JpcHRzCisjIyMjIEMrKyBTdGFuZGFyZCBWZXJzaW9uCiAKLUJlZm9yZSBzZXR0
bGluZyBvbiBDTWFrZSwgd2UgaGF2ZSBiZWVuIHByb3ZpZGluZyBoYW5kLW1haW50YWluZWQgYnVp
bGQKLXByb2plY3RzL3NjcmlwdHMgZm9yIFZpc3VhbCBTdHVkaW8sIFhjb2RlLCBhbmQgQXV0b3Rv
b2xzLiBXaGlsZSB3ZSBjb250aW51ZSB0bwotcHJvdmlkZSB0aGVtIGZvciBjb252ZW5pZW5jZSwg
dGhleSBhcmUgbm90IGFjdGl2ZWx5IG1haW50YWluZWQgYW55IG1vcmUuIFdlCi1oaWdobHkgcmVj
b21tZW5kIHRoYXQgeW91IGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBhYm92ZSBzZWN0
aW9ucyB0bwotaW50ZWdyYXRlIEdvb2dsZSBUZXN0IHdpdGggeW91ciBleGlzdGluZyBidWlsZCBz
eXN0ZW0uCitBbiBlbnZpcm9ubWVudCB0aGF0IHN1cHBvcnRzIEMrKzExIGlzIHJlcXVpcmVkIGlu
IG9yZGVyIHRvIHN1Y2Nlc3NmdWxseSBidWlsZAorR29vZ2xlVGVzdC4gT25lIHdheSB0byBlbnN1
cmUgdGhpcyBpcyB0byBzcGVjaWZ5IHRoZSBzdGFuZGFyZCBpbiB0aGUgdG9wLWxldmVsCitwcm9q
ZWN0LCBmb3IgZXhhbXBsZSBieSB1c2luZyB0aGUgYHNldChDTUFLRV9DWFhfU1RBTkRBUkQgMTEp
YCBjb21tYW5kLiBJZiB0aGlzCitpcyBub3QgZmVhc2libGUsIGZvciBleGFtcGxlIGluIGEgQyBw
cm9qZWN0IHVzaW5nIEdvb2dsZVRlc3QgZm9yIHZhbGlkYXRpb24sCit0aGVuIGl0IGNhbiBiZSBz
cGVjaWZpZWQgYnkgYWRkaW5nIGl0IHRvIHRoZSBvcHRpb25zIGZvciBjbWFrZSB2aWEgdGhlCitg
RENNQUtFX0NYWF9GTEFHU2Agb3B0aW9uLgogCi1JZiB5b3Ugc3RpbGwgbmVlZCB0byB1c2UgdGhl
IGxlZ2FjeSBidWlsZCBzY3JpcHRzLCBoZXJlJ3MgaG93OgorIyMjIFR3ZWFraW5nIEdvb2dsZVRl
c3QKIAotVGhlIG1zdmNcIGZvbGRlciBjb250YWlucyB0d28gc29sdXRpb25zIHdpdGggVmlzdWFs
IEMrKyBwcm9qZWN0cy4gT3BlbiB0aGUKLWBndGVzdC5zbG5gIG9yIGBndGVzdC1tZC5zbG5gIGZp
bGUgdXNpbmcgVmlzdWFsIFN0dWRpbywgYW5kIHlvdSBhcmUgcmVhZHkgdG8KLWJ1aWxkIEdvb2ds
ZSBUZXN0IHRoZSBzYW1lIHdheSB5b3UgYnVpbGQgYW55IFZpc3VhbCBTdHVkaW8gcHJvamVjdC4g
RmlsZXMgdGhhdAotaGF2ZSBuYW1lcyBlbmRpbmcgd2l0aCAtbWQgdXNlIERMTCB2ZXJzaW9ucyBv
ZiBNaWNyb3NvZnQgcnVudGltZSBsaWJyYXJpZXMgKHRoZQotL01EIG9yIHRoZSAvTURkIGNvbXBp
bGVyIG9wdGlvbikuIEZpbGVzIHdpdGhvdXQgdGhhdCBzdWZmaXggdXNlIHN0YXRpYyB2ZXJzaW9u
cwotb2YgdGhlIHJ1bnRpbWUgbGlicmFyaWVzICh0aGUgL01UIG9yIHRoZSAvTVRkIG9wdGlvbiku
IFBsZWFzZSBub3RlIHRoYXQgb25lIG11c3QKLXVzZSB0aGUgc2FtZSBvcHRpb24gdG8gY29tcGls
ZSBib3RoIGd0ZXN0IGFuZCB0aGUgdGVzdCBjb2RlLiBJZiB5b3UgdXNlIFZpc3VhbAotU3R1ZGlv
IDIwMDUgb3IgYWJvdmUsIHdlIHJlY29tbWVuZCB0aGUgLW1kIHZlcnNpb24gYXMgL01EIGlzIHRo
ZSBkZWZhdWx0IGZvciBuZXcKLXByb2plY3RzIGluIHRoZXNlIHZlcnNpb25zIG9mIFZpc3VhbCBT
dHVkaW8uCi0KLU9uIE1hYyBPUyBYLCBvcGVuIHRoZSBgZ3Rlc3QueGNvZGVwcm9qYCBpbiB0aGUg
YHhjb2RlL2AgZm9sZGVyIHVzaW5nIFhjb2RlLgotQnVpbGQgdGhlICJndGVzdCIgdGFyZ2V0LiBU
aGUgdW5pdmVyc2FsIGJpbmFyeSBmcmFtZXdvcmsgd2lsbCBlbmQgdXAgaW4geW91cgotc2VsZWN0
ZWQgYnVpbGQgZGlyZWN0b3J5IChzZWxlY3RlZCBpbiB0aGUgWGNvZGUgIlByZWZlcmVuY2VzLi4u
IiAtPiAiQnVpbGRpbmciCi1wYW5lIGFuZCBkZWZhdWx0cyB0byB4Y29kZS9idWlsZCkuIEFsdGVy
bmF0aXZlbHksIGF0IHRoZSBjb21tYW5kIGxpbmUsIGVudGVyOgotCi0gICAgeGNvZGVidWlsZAot
Ci1UaGlzIHdpbGwgYnVpbGQgdGhlICJSZWxlYXNlIiBjb25maWd1cmF0aW9uIG9mIGd0ZXN0LmZy
YW1ld29yayBpbiB5b3VyIGRlZmF1bHQKLWJ1aWxkIGxvY2F0aW9uLiBTZWUgdGhlICJ4Y29kZWJ1
aWxkIiBtYW4gcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotYnVpbGRpbmcgZGlmZmVy
ZW50IGNvbmZpZ3VyYXRpb25zIGFuZCBidWlsZGluZyBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLgot
Ci1JZiB5b3Ugd2lzaCB0byB1c2UgdGhlIEdvb2dsZSBUZXN0IFhjb2RlIHByb2plY3Qgd2l0aCBY
Y29kZSA0LnggYW5kIGFib3ZlLCB5b3UKLW5lZWQgdG8gZWl0aGVyOgotCi0qICAgdXBkYXRlIHRo
ZSBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHhjb2RlL0NvbmZpZy9HZW5lcmFsLnhjb25m
aWcuCi0gICAgQ29tbWVudCBvcHRpb25zIGBTREtST09UYCwgYE1BQ09TX0RFUExPWU1FTlRfVEFS
R0VUYCwgYW5kIGBHQ0NfVkVSU0lPTmAuIElmCi0gICAgeW91IGNob29zZSB0aGlzIHJvdXRlIHlv
dSBsb3NlIHRoZSBhYmlsaXR5IHRvIHRhcmdldCBlYXJsaWVyIHZlcnNpb25zIG9mCi0gICAgTWFj
T1MgWC4KLSogICBJbnN0YWxsIGFuIFNESyBmb3IgYW4gZWFybGllciB2ZXJzaW9uLiBUaGlzIGRv
ZXNuJ3QgYXBwZWFyIHRvIGJlIHN1cHBvcnRlZAotICAgIGJ5IEFwcGxlLCBidXQgaGFzIGJlZW4g
cmVwb3J0ZWQgdG8gd29yawotICAgIChodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25z
LzUzNzg1MTgpLgotCi0jIyMgVHdlYWtpbmcgR29vZ2xlIFRlc3QKLQotR29vZ2xlIFRlc3QgY2Fu
IGJlIHVzZWQgaW4gZGl2ZXJzZSBlbnZpcm9ubWVudHMuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRp
b24gbWF5CitHb29nbGVUZXN0IGNhbiBiZSB1c2VkIGluIGRpdmVyc2UgZW52aXJvbm1lbnRzLiBU
aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG1heQogbm90IHdvcmsgKG9yIG1heSBub3Qgd29yayB3
ZWxsKSBvdXQgb2YgdGhlIGJveCBpbiBzb21lIGVudmlyb25tZW50cy4gSG93ZXZlciwKLXlvdSBj
YW4gZWFzaWx5IHR3ZWFrIEdvb2dsZSBUZXN0IGJ5IGRlZmluaW5nIGNvbnRyb2wgbWFjcm9zIG9u
IHRoZSBjb21waWxlcgoreW91IGNhbiBlYXNpbHkgdHdlYWsgR29vZ2xlVGVzdCBieSBkZWZpbmlu
ZyBjb250cm9sIG1hY3JvcyBvbiB0aGUgY29tcGlsZXIKIGNvbW1hbmQgbGluZS4gR2VuZXJhbGx5
LCB0aGVzZSBtYWNyb3MgYXJlIG5hbWVkIGxpa2UgYEdURVNUX1hZWmAgYW5kIHlvdSBkZWZpbmUK
IHRoZW0gdG8gZWl0aGVyIDEgb3IgMCB0byBlbmFibGUgb3IgZGlzYWJsZSBhIGNlcnRhaW4gZmVh
dHVyZS4KIAogV2UgbGlzdCB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQgbWFjcm9zIGJlbG93LiBG
b3IgYSBjb21wbGV0ZSBsaXN0LCBzZWUgZmlsZQotW2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0
ZXIvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgpLgotCi0jIyMgQ2hvb3Npbmcg
YSBUUjEgVHVwbGUgTGlicmFyeQotCi1Tb21lIEdvb2dsZSBUZXN0IGZlYXR1cmVzIHJlcXVpcmUg
dGhlIEMrKyBUZWNobmljYWwgUmVwb3J0IDEgKFRSMSkgdHVwbGUKLWxpYnJhcnksIHdoaWNoIGlz
IG5vdCB5ZXQgYXZhaWxhYmxlIHdpdGggYWxsIGNvbXBpbGVycy4gVGhlIGdvb2QgbmV3cyBpcyB0
aGF0Ci1Hb29nbGUgVGVzdCBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIFRSMSB0dXBsZSB0aGF0J3Mg
ZW5vdWdoIGZvciBpdHMgb3duIG5lZWQsIGFuZAotd2lsbCBhdXRvbWF0aWNhbGx5IHVzZSB0aGlz
IHdoZW4gdGhlIGNvbXBpbGVyIGRvZXNuJ3QgcHJvdmlkZSBUUjEgdHVwbGUuCi0KLVVzdWFsbHkg
eW91IGRvbid0IG5lZWQgdG8gY2FyZSBhYm91dCB3aGljaCB0dXBsZSBsaWJyYXJ5IEdvb2dsZSBU
ZXN0IHVzZXMuCi1Ib3dldmVyLCBpZiB5b3VyIHByb2plY3QgYWxyZWFkeSB1c2VzIFRSMSB0dXBs
ZSwgeW91IG5lZWQgdG8gdGVsbCBHb29nbGUgVGVzdCB0bwotdXNlIHRoZSBzYW1lIFRSMSB0dXBs
ZSBsaWJyYXJ5IHRoZSByZXN0IG9mIHlvdXIgcHJvamVjdCB1c2VzLCBvciB0aGUgdHdvIHR1cGxl
Ci1pbXBsZW1lbnRhdGlvbnMgd2lsbCBjbGFzaC4gVG8gZG8gdGhhdCwgYWRkCi0KLSAgICAtREdU
RVNUX1VTRV9PV05fVFIxX1RVUExFPTAKLQotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIHdoaWxlIGNv
bXBpbGluZyBHb29nbGUgVGVzdCBhbmQgeW91ciB0ZXN0cy4gSWYgeW91IHdhbnQgdG8KLWZvcmNl
IEdvb2dsZSBUZXN0IHRvIHVzZSBpdHMgb3duIHR1cGxlIGxpYnJhcnksIGp1c3QgYWRkCi0KLSAg
ICAtREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTEKLQotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIGlu
c3RlYWQuCi0KLUlmIHlvdSBkb24ndCB3YW50IEdvb2dsZSBUZXN0IHRvIHVzZSB0dXBsZSBhdCBh
bGwsIGFkZAotCi0gICAgLURHVEVTVF9IQVNfVFIxX1RVUExFPTAKLQotYW5kIGFsbCBmZWF0dXJl
cyB1c2luZyB0dXBsZSB3aWxsIGJlIGRpc2FibGVkLgorW2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9t
YXN0ZXIvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCkuCiAK
ICMjIyBNdWx0aS10aHJlYWRlZCBUZXN0cwogCi1Hb29nbGUgVGVzdCBpcyB0aHJlYWQtc2FmZSB3
aGVyZSB0aGUgcHRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4gQWZ0ZXIKLWAjaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QuaCJgLCB5b3UgY2FuIGNoZWNrIHRoZSBgR1RFU1RfSVNfVEhSRUFEU0FGRWAg
bWFjcm8gdG8gc2VlCi13aGV0aGVyIHRoaXMgaXMgdGhlIGNhc2UgKHllcyBpZiB0aGUgbWFjcm8g
aXMgYCNkZWZpbmVkYCB0byAxLCBubyBpZiBpdCdzCi11bmRlZmluZWQuKS4KK0dvb2dsZVRlc3Qg
aXMgdGhyZWFkLXNhZmUgd2hlcmUgdGhlIHB0aHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuIEFm
dGVyCitgI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiYCwgeW91IGNhbiBjaGVjayB0aGUKK2BHVEVT
VF9JU19USFJFQURTQUZFYCBtYWNybyB0byBzZWUgd2hldGhlciB0aGlzIGlzIHRoZSBjYXNlICh5
ZXMgaWYgdGhlIG1hY3JvIGlzCitgI2RlZmluZWRgIHRvIDEsIG5vIGlmIGl0J3MgdW5kZWZpbmVk
LikuCiAKLUlmIEdvb2dsZSBUZXN0IGRvZXNuJ3QgY29ycmVjdGx5IGRldGVjdCB3aGV0aGVyIHB0
aHJlYWQgaXMgYXZhaWxhYmxlIGluIHlvdXIKK0lmIEdvb2dsZVRlc3QgZG9lc24ndCBjb3JyZWN0
bHkgZGV0ZWN0IHdoZXRoZXIgcHRocmVhZCBpcyBhdmFpbGFibGUgaW4geW91cgogZW52aXJvbm1l
bnQsIHlvdSBjYW4gZm9yY2UgaXQgd2l0aAogCiAgICAgLURHVEVTVF9IQVNfUFRIUkVBRD0xCkBA
IC0yODQsMTYgKzE5OCwxNiBAQCBvcgogCiAgICAgLURHVEVTVF9IQVNfUFRIUkVBRD0wCiAKLVdo
ZW4gR29vZ2xlIFRlc3QgdXNlcyBwdGhyZWFkLCB5b3UgbWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRv
IHlvdXIgY29tcGlsZXIgYW5kL29yCitXaGVuIEdvb2dsZVRlc3QgdXNlcyBwdGhyZWFkLCB5b3Ug
bWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRvIHlvdXIgY29tcGlsZXIgYW5kL29yCiBsaW5rZXIgdG8g
c2VsZWN0IHRoZSBwdGhyZWFkIGxpYnJhcnksIG9yIHlvdSdsbCBnZXQgbGluayBlcnJvcnMuIElm
IHlvdSB1c2UgdGhlCi1DTWFrZSBzY3JpcHQgb3IgdGhlIGRlcHJlY2F0ZWQgQXV0b3Rvb2xzIHNj
cmlwdCwgdGhpcyBpcyB0YWtlbiBjYXJlIG9mIGZvciB5b3UuCi1JZiB5b3UgdXNlIHlvdXIgb3du
IGJ1aWxkIHNjcmlwdCwgeW91J2xsIG5lZWQgdG8gcmVhZCB5b3VyIGNvbXBpbGVyIGFuZCBsaW5r
ZXIncwotbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBmbGFncyB0byBhZGQuCitDTWFrZSBzY3Jp
cHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91LiBJZiB5b3UgdXNlIHlvdXIgb3duIGJ1
aWxkIHNjcmlwdCwKK3lvdSdsbCBuZWVkIHRvIHJlYWQgeW91ciBjb21waWxlciBhbmQgbGlua2Vy
J3MgbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBmbGFncwordG8gYWRkLgogCiAjIyMgQXMgYSBT
aGFyZWQgTGlicmFyeSAoRExMKQogCi1Hb29nbGUgVGVzdCBpcyBjb21wYWN0LCBzbyBtb3N0IHVz
ZXJzIGNhbiBidWlsZCBhbmQgbGluayBpdCBhcyBhIHN0YXRpYyBsaWJyYXJ5Ci1mb3IgdGhlIHNp
bXBsaWNpdHkuIFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGUgVGVzdCBhcyBhIHNoYXJlZCBs
aWJyYXJ5IChrbm93bgorR29vZ2xlVGVzdCBpcyBjb21wYWN0LCBzbyBtb3N0IHVzZXJzIGNhbiBi
dWlsZCBhbmQgbGluayBpdCBhcyBhIHN0YXRpYyBsaWJyYXJ5Citmb3IgdGhlIHNpbXBsaWNpdHku
IFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGVUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtu
b3duCiBhcyBhIERMTCBvbiBXaW5kb3dzKSBpZiB5b3UgcHJlZmVyLgogCiBUbyBjb21waWxlICpn
dGVzdCogYXMgYSBzaGFyZWQgbGlicmFyeSwgYWRkCkBAIC0zMTMsMjIgKzIyNywyMiBAQCBOb3Rl
OiB3aGlsZSB0aGUgYWJvdmUgc3RlcHMgYXJlbid0IHRlY2huaWNhbGx5IG5lY2Vzc2FyeSB0b2Rh
eSB3aGVuIHVzaW5nIHNvbWUKIGNvbXBpbGVycyAoZS5nLiBHQ0MpLCB0aGV5IG1heSBiZWNvbWUg
bmVjZXNzYXJ5IGluIHRoZSBmdXR1cmUsIGlmIHdlIGRlY2lkZSB0bwogaW1wcm92ZSB0aGUgc3Bl
ZWQgb2YgbG9hZGluZyB0aGUgbGlicmFyeSAoc2VlCiA8aHR0cDovL2djYy5nbnUub3JnL3dpa2kv
VmlzaWJpbGl0eT4gZm9yIGRldGFpbHMpLiBUaGVyZWZvcmUgeW91IGFyZSByZWNvbW1lbmRlZAot
dG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUgZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGUgVGVzdCBhcyBh
IHNoYXJlZCBsaWJyYXJ5LgotT3RoZXJ3aXNlIGEgZnV0dXJlIHJlbGVhc2Ugb2YgR29vZ2xlIFRl
c3QgbWF5IGJyZWFrIHlvdXIgYnVpbGQgc2NyaXB0LgordG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUg
ZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGVUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkuCitPdGhlcndp
c2UgYSBmdXR1cmUgcmVsZWFzZSBvZiBHb29nbGVUZXN0IG1heSBicmVhayB5b3VyIGJ1aWxkIHNj
cmlwdC4KIAogIyMjIEF2b2lkaW5nIE1hY3JvIE5hbWUgQ2xhc2hlcwogCiBJbiBDKyssIG1hY3Jv
cyBkb24ndCBvYmV5IG5hbWVzcGFjZXMuIFRoZXJlZm9yZSB0d28gbGlicmFyaWVzIHRoYXQgYm90
aCBkZWZpbmUgYQogbWFjcm8gb2YgdGhlIHNhbWUgbmFtZSB3aWxsIGNsYXNoIGlmIHlvdSBgI2lu
Y2x1ZGVgIGJvdGggZGVmaW5pdGlvbnMuIEluIGNhc2UgYQotR29vZ2xlIFRlc3QgbWFjcm8gY2xh
c2hlcyB3aXRoIGFub3RoZXIgbGlicmFyeSwgeW91IGNhbiBmb3JjZSBHb29nbGUgVGVzdCB0bwor
R29vZ2xlVGVzdCBtYWNybyBjbGFzaGVzIHdpdGggYW5vdGhlciBsaWJyYXJ5LCB5b3UgY2FuIGZv
cmNlIEdvb2dsZVRlc3QgdG8KIHJlbmFtZSBpdHMgbWFjcm8gdG8gYXZvaWQgdGhlIGNvbmZsaWN0
LgogCi1TcGVjaWZpY2FsbHksIGlmIGJvdGggR29vZ2xlIFRlc3QgYW5kIHNvbWUgb3RoZXIgY29k
ZSBkZWZpbmUgbWFjcm8gRk9PLCB5b3UgY2FuCitTcGVjaWZpY2FsbHksIGlmIGJvdGggR29vZ2xl
VGVzdCBhbmQgc29tZSBvdGhlciBjb2RlIGRlZmluZSBtYWNybyBGT08sIHlvdSBjYW4KIGFkZAog
CiAgICAgLURHVEVTVF9ET05UX0RFRklORV9GT089MQogCi10byB0aGUgY29tcGlsZXIgZmxhZ3Mg
dG8gdGVsbCBHb29nbGUgVGVzdCB0byBjaGFuZ2UgdGhlIG1hY3JvJ3MgbmFtZSBmcm9tIGBGT09g
Cit0byB0aGUgY29tcGlsZXIgZmxhZ3MgdG8gdGVsbCBHb29nbGVUZXN0IHRvIGNoYW5nZSB0aGUg
bWFjcm8ncyBuYW1lIGZyb20gYEZPT2AKIHRvIGBHVEVTVF9GT09gLiBDdXJyZW50bHkgYEZPT2Ag
Y2FuIGJlIGBGQUlMYCwgYFNVQ0NFRURgLCBvciBgVEVTVGAuIEZvcgogZXhhbXBsZSwgd2l0aCBg
LURHVEVTVF9ET05UX0RFRklORV9URVNUPTFgLCB5b3UnbGwgbmVlZCB0byB3cml0ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jaGFuZ2VzLmRpZmYgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9jaGFuZ2VzLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA5OWQ3OTVlNzAwNTNhZWQ4MzhmZTBlMDE1ZTk2NTAzYWZjMjU4OTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
Y2hhbmdlcy5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKLWluZGV4IDA5MDgzNTUx
NjEyLi5hYzg2NjAzNTRjYSAxMDA2NDQKLS0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1kZWF0aC10ZXN0LmNjCi0rKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwotQEAgLTExNTIsMjAgKzExNTIsNiBAQCBzdHJ1Y3QgRXhlY0Rl
YXRoVGVzdEFyZ3MgewotICAgaW50IGNsb3NlX2ZkOyAgICAgICAvLyBGaWxlIGRlc2NyaXB0b3Ig
dG8gY2xvc2U7IHRoZSByZWFkIGVuZCBvZiBhIHBpcGUKLSB9OwotIAotLSMgIGlmIEdURVNUX09T
X01BQwotLWlubGluZSBjaGFyKiogR2V0RW52aXJvbigpIHsKLS0gIC8vIFdoZW4gR29vZ2xlIFRl
c3QgaXMgYnVpbHQgYXMgYSBmcmFtZXdvcmsgb24gTWFjT1MgWCwgdGhlIGVudmlyb24gdmFyaWFi
bGUKLS0gIC8vIGlzIHVuYXZhaWxhYmxlLiBBcHBsZSdzIGRvY3VtZW50YXRpb24gKG1hbiBlbnZp
cm9uKSByZWNvbW1lbmRzIHVzaW5nCi0tICAvLyBfTlNHZXRFbnZpcm9uKCkgaW5zdGVhZC4KLS0g
IHJldHVybiAqX05TR2V0RW52aXJvbigpOwotLX0KLS0jICBlbHNlCi0tLy8gU29tZSBQT1NJWCBw
bGF0Zm9ybXMgZXhwZWN0IHlvdSB0byBkZWNsYXJlIGVudmlyb24uIGV4dGVybiAiQyIgbWFrZXMK
LS0vLyBpdCByZXNpZGUgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UuCi0tZXh0ZXJuICJDIiBjaGFy
KiogZW52aXJvbjsKLS1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7IHJldHVybiBlbnZpcm9u
OyB9Ci0tIyAgZW5kaWYgIC8vIEdURVNUX09TX01BQwotLQotICMgIGlmICFHVEVTVF9PU19RTlgK
LSAvLyBUaGUgbWFpbiBmdW5jdGlvbiBmb3IgYSB0aHJlYWRzYWZlLXN0eWxlIGRlYXRoIHRlc3Qg
Y2hpbGQgcHJvY2Vzcy4KLSAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBhIGNsb25lKCkt
ZWQgcHJvY2VzcyBhbmQgdGh1cyBtdXN0IGF2b2lkCi1AQCAtMTE5MSw4ICsxMTc3LDExIEBAIHN0
YXRpYyBpbnQgRXhlY0RlYXRoVGVzdENoaWxkTWFpbih2b2lkKiBjaGlsZF9hcmcpIHsKLSAgIC8v
IHVuc2FmZS4gIFNpbmNlIGV4ZWN2ZSgpIGRvZXNuJ3Qgc2VhcmNoIHRoZSBQQVRILCB0aGUgdXNl
ciBtdXN0Ci0gICAvLyBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2aWEgYSB2YWxpZCBwYXRoIHRo
YXQgY29udGFpbnMgYXQgbGVhc3QKLSAgIC8vIG9uZSBwYXRoIHNlcGFyYXRvci4KLS0gIGV4ZWN2
ZShhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2LCBHZXRFbnZpcm9uKCkpOwotLSAgRGVhdGhUZXN0
QWJvcnQoc3RkOjpzdHJpbmcoImV4ZWN2ZSgiKSArIGFyZ3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGlu
ICIgKwotKyAgLy8gV2UgaGF2ZSByZXBsYWNlZCBleGVjdmUoKSB3aXRoIGV4ZWN2KCkgZm9yIFdl
YktpdCB0byBhdm9pZCB1c2luZwotKyAgLy8gZW52aXJvbi4gSXQgc2hvdWxkIGJlIHNhZmUgYmVj
YXVzZSBleGVjdigpIGlzIGp1c3QgYSBzaW1wbGUgd3JhcHBlcgotKyAgLy8gb2YgZXhlY3ZlKCku
Ci0rICBleGVjdihhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2KTsKLSsgIERlYXRoVGVzdEFib3J0
KHN0ZDo6c3RyaW5nKCJleGVjdigiKSArIGFyZ3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGluICIgKwot
ICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsgIiBmYWlsZWQ6ICIgKwotICAgICAgICAg
ICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKSk7Ci0gICByZXR1cm4gRVhJVF9GQUlM
VVJFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3QucGMu
aW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdC5wYy5pbgppbmRleCBlNzk2
N2FkNTZmZjJjMzJlZDRiYTA2NzAzYWVhNTI1ZGNhZDJjZTdiLi5iNDE0OGZhZTQyYjFjZDc4MmRj
MWI2YTVkMWQ3ZTFlM2E4ZTRlNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jbWFrZS9ndGVzdC5wYy5pbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9n
dGVzdC5wYy5pbgpAQCAtNiw0ICs2LDQgQEAgRGVzY3JpcHRpb246IEdvb2dsZVRlc3QgKHdpdGhv
dXQgbWFpbigpIGZ1bmN0aW9uKQogVmVyc2lvbjogQFBST0pFQ1RfVkVSU0lPTkAKIFVSTDogaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0CiBMaWJzOiAtTCR7bGliZGlyfSAtbGd0
ZXN0IEBDTUFLRV9USFJFQURfTElCU19JTklUQAotQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdU
RVNUX0hBU19QVEhSRUFEX01BQ1JPQCBAQ01BS0VfVEhSRUFEX0xJQlNfSU5JVEAKK0NmbGFnczog
LUkke2luY2x1ZGVkaXJ9IEBHVEVTVF9IQVNfUFRIUkVBRF9NQUNST0AKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0X21haW4ucGMuaW4gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdF9tYWluLnBjLmluCmluZGV4IGZlMjVkOWM3M2M2ODNi
NjQxN2I5OWJiNzAzYzEzYWUxNmJhOGE5NTIuLjM4Yzg4YzU0ZDUzODZkOTYwZWM0OGQ5Zjc2NjY0
ZWI5Nzk4YjRlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0
ZXN0X21haW4ucGMuaW4KKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3Rf
bWFpbi5wYy5pbgpAQCAtNSw2ICs1LDYgQEAgTmFtZTogZ3Rlc3RfbWFpbgogRGVzY3JpcHRpb246
IEdvb2dsZVRlc3QgKHdpdGggbWFpbigpIGZ1bmN0aW9uKQogVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0Ci1SZXF1aXJl
czogZ3Rlc3QKK1JlcXVpcmVzOiBndGVzdCA9IEBQUk9KRUNUX1ZFUlNJT05ACiBMaWJzOiAtTCR7
bGliZGlyfSAtbGd0ZXN0X21haW4gQENNQUtFX1RIUkVBRF9MSUJTX0lOSVRACi1DZmxhZ3M6IC1J
JHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURfTUFDUk9AIEBDTUFLRV9USFJFQURfTElC
U19JTklUQAorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01BQ1JP
QApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRp
bHMuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5j
bWFrZQppbmRleCA4YzFmOWJhOTljZjUwNTc0ZjY2OWRkN2RlYmEzMjRkY2U0MDU5NWYzLi5kYzJi
Njg1YzNhOGYwOTk1MzhhMTM1N2ViZGUyOTY4NmM2NGIwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQpAQCAtMTIsNiArMTIs
MTAgQEAKICMgICBUZXN0IGFuZCBHb29nbGUgTW9jaydzIG9wdGlvbigpIGRlZmluaXRpb25zLCBh
bmQgdGh1cyBtdXN0IGJlCiAjICAgY2FsbGVkICphZnRlciogdGhlIG9wdGlvbnMgaGF2ZSBiZWVu
IGRlZmluZWQuCiAKK2lmIChQT0xJQ1kgQ01QMDA1NCkKKyAgY21ha2VfcG9saWN5KFNFVCBDTVAw
MDU0IE5FVykKK2VuZGlmIChQT0xJQ1kgQ01QMDA1NCkKKwogIyBUd2Vha3MgQ01ha2UncyBkZWZh
dWx0IGNvbXBpbGVyL2xpbmtlciBzZXR0aW5ncyB0byBzdWl0IEdvb2dsZSBUZXN0J3MgbmVlZHMu
CiAjCiAjIFRoaXMgbXVzdCBiZSBhIG1hY3JvKCksIGFzIGluc2lkZSBhIGZ1bmN0aW9uIHN0cmlu
ZygpIGNhbiBvbmx5CkBAIC0yMiw2ICsyNiw4IEBAIG1hY3JvKGZpeF9kZWZhdWx0X2NvbXBpbGVy
X3NldHRpbmdzXykKICAgICAjIFRoaXMgcmVwbGFjZW1lbnQgY29kZSBpcyB0YWtlbiBmcm9tIHNh
bXBsZSBpbiB0aGUgQ01ha2UgV2lraSBhdAogICAgICMgaHR0cHM6Ly9naXRsYWIua2l0d2FyZS5j
b20vY21ha2UvY29tbXVuaXR5L3dpa2lzL0ZBUSNkeW5hbWljLXJlcGxhY2UuCiAgICAgZm9yZWFj
aCAoZmxhZ192YXIKKyAgICAgICAgICAgICBDTUFLRV9DX0ZMQUdTIENNQUtFX0NfRkxBR1NfREVC
VUcgQ01BS0VfQ19GTEFHU19SRUxFQVNFCisgICAgICAgICAgICAgQ01BS0VfQ19GTEFHU19NSU5T
SVpFUkVMIENNQUtFX0NfRkxBR1NfUkVMV0lUSERFQklORk8KICAgICAgICAgICAgICBDTUFLRV9D
WFhfRkxBR1MgQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHIENNQUtFX0NYWF9GTEFHU19SRUxFQVNFCiAg
ICAgICAgICAgICAgQ01BS0VfQ1hYX0ZMQUdTX01JTlNJWkVSRUwgQ01BS0VfQ1hYX0ZMQUdTX1JF
TFdJVEhERUJJTkZPKQogICAgICAgaWYgKE5PVCBCVUlMRF9TSEFSRURfTElCUyBBTkQgTk9UIGd0
ZXN0X2ZvcmNlX3NoYXJlZF9jcnQpCkBAIC01Niw3ICs2Miw2IEBAIG1hY3JvKGNvbmZpZ19jb21w
aWxlcl9hbmRfbGlua2VyKQogICB1bnNldChHVEVTVF9IQVNfUFRIUkVBRCkKICAgaWYgKE5PVCBn
dGVzdF9kaXNhYmxlX3B0aHJlYWRzIEFORCBOT1QgTUlOR1cpCiAgICAgIyBEZWZpbmVzIENNQUtF
X1VTRV9QVEhSRUFEU19JTklUIGFuZCBDTUFLRV9USFJFQURfTElCU19JTklULgotICAgIHNldChU
SFJFQURTX1BSRUZFUl9QVEhSRUFEX0ZMQUcgT04pCiAgICAgZmluZF9wYWNrYWdlKFRocmVhZHMp
CiAgICAgaWYgKENNQUtFX1VTRV9QVEhSRUFEU19JTklUKQogICAgICAgc2V0KEdURVNUX0hBU19Q
VEhSRUFEIE9OKQpAQCAtNjcsMzcgKzcyLDIzIEBAIG1hY3JvKGNvbmZpZ19jb21waWxlcl9hbmRf
bGlua2VyKQogICBpZiAoTVNWQykKICAgICAjIE5ld2xpbmVzIGluc2lkZSBmbGFncyB2YXJpYWJs
ZXMgYnJlYWsgQ01ha2UncyBOTWFrZSBnZW5lcmF0b3IuCiAgICAgIyBUT0RPKHZsYWRsQGdvb2ds
ZS5jb20pOiBBZGQgLVJUQ3MgYW5kIC1SVEN1IHRvIGRlYnVnIGJ1aWxkcy4KLSAgICBzZXQoY3h4
X2Jhc2VfZmxhZ3MgIi1HUyAtVzQgLVdYIC13ZDQyNTEgLXdkNDI3NSAtbm9sb2dvIC1KIC1aaSIp
Ci0gICAgaWYgKE1TVkNfVkVSU0lPTiBMRVNTIDE0MDApICAjIDE0MDAgaXMgVmlzdWFsIFN0dWRp
byAyMDA1Ci0gICAgICAjIFN1cHByZXNzIHNwdXJpb3VzIHdhcm5pbmdzIE1TVkMgNy4xIHNvbWV0
aW1lcyBpc3N1ZXMuCi0gICAgICAjIEZvcmNpbmcgdmFsdWUgdG8gYm9vbC4KLSAgICAgIHNldChj
eHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDgwMCIpCi0gICAgICAjIENvcHkg
Y29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRl
ZC4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDUxMSAt
d2Q0NTEyIikKLSAgICAgICMgQ29tcGF0aWJpbGl0eSB3YXJuaW5ncyBub3QgYXBwbGljYWJsZSB0
byBHb29nbGUgVGVzdC4KLSAgICAgICMgUmVzb2x2ZWQgb3ZlcmxvYWQgd2FzIGZvdW5kIGJ5IGFy
Z3VtZW50LWRlcGVuZGVudCBsb29rdXAuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4
X2Jhc2VfZmxhZ3N9IC13ZDQ2NzUiKQotICAgIGVuZGlmKCkKLSAgICBpZiAoTVNWQ19WRVJTSU9O
IExFU1MgMTUwMCkgICMgMTUwMCBpcyBWaXN1YWwgU3R1ZGlvIDIwMDgKLSAgICAgICMgQ29uZGl0
aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudC4KLSAgICAgICMgV2hlbiBjb21waWxpbmcgd2l0
aCAvVzQsIHdlIGdldCBzZXZlcmFsIGluc3RhbmNlcyBvZiBDNDEyNwotICAgICAgIyAoQ29uZGl0
aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCkuIEluIG91ciBjb2RlLCB3ZSBkaXNhYmxlIHRo
YXQKLSAgICAgICMgd2FybmluZyBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcy4gSG93ZXZlciwgb24g
VmlzdWFsIFN0dWRpbyAyMDA1LAotICAgICAgIyB0aGUgd2FybmluZyBmaXJlcyBvbiBzdGQ6Omxp
c3QuIFRoZXJlZm9yZSBvbiB0aGF0IGNvbXBpbGVyIGFuZCBlYXJsaWVyLAotICAgICAgIyB3ZSBk
aXNhYmxlIHRoZSB3YXJuaW5nIHByb2plY3Qtd2lkZS4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFn
cyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDEyNyIpCi0gICAgZW5kaWYoKQotICAgIGlmIChOT1Qg
KE1TVkNfVkVSU0lPTiBMRVNTIDE3MDApKSAgIyAxNzAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMi4K
LSAgICAgICMgU3VwcHJlc3MgInVucmVhY2hhYmxlIGNvZGUiIHdhcm5pbmcgb24gVlMgMjAxMiBh
bmQgbGF0ZXIuCi0gICAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzIz
MjY2OSBleHBsYWlucyB0aGUgaXNzdWUuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4
X2Jhc2VfZmxhZ3N9IC13ZDQ3MDIiKQotICAgIGVuZGlmKCkKLQorICAgIHNldChjeHhfYmFzZV9m
bGFncyAiLUdTIC1XNCAtV1ggLXdkNDI1MSAtd2Q0Mjc1IC1ub2xvZ28gLUoiKQogICAgIHNldChj
eHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLURfVU5JQ09ERSAtRFVOSUNPREUgLURX
SU4zMiAtRF9XSU4zMiIpCiAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdz
fSAtRFNUUklDVCAtRFdJTjMyX0xFQU5fQU5EX01FQU4iKQogICAgIHNldChjeHhfZXhjZXB0aW9u
X2ZsYWdzICItRUhzYyAtRF9IQVNfRVhDRVBUSU9OUz0xIikKICAgICBzZXQoY3h4X25vX2V4Y2Vw
dGlvbl9mbGFncyAiLUVIcy1jLSAtRF9IQVNfRVhDRVBUSU9OUz0wIikKICAgICBzZXQoY3h4X25v
X3J0dGlfZmxhZ3MgIi1HUi0iKQorICAgICMgU3VwcHJlc3MgInVucmVhY2hhYmxlIGNvZGUiIHdh
cm5pbmcKKyAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzIzMjY2OSBl
eHBsYWlucyB0aGUgaXNzdWUuCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2Zs
YWdzfSAtd2Q0NzAyIikKKyAgICAjIEVuc3VyZSBNU1ZDIHRyZWF0cyBzb3VyY2UgZmlsZXMgYXMg
VVRGLTggZW5jb2RlZC4KKyAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9
IC11dGYtOCIpCisgIGVsc2VpZiAoQ01BS0VfQ1hYX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJDbGFu
ZyIpCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICItV2FsbCAtV3NoYWRvdyAtV2Vycm9yIC1XY29u
dmVyc2lvbiIpCisgICAgc2V0KGN4eF9leGNlcHRpb25fZmxhZ3MgIi1mZXhjZXB0aW9ucyIpCisg
ICAgc2V0KGN4eF9ub19leGNlcHRpb25fZmxhZ3MgIi1mbm8tZXhjZXB0aW9ucyIpCisgICAgc2V0
KGN4eF9zdHJpY3RfZmxhZ3MgIi1XIC1XcG9pbnRlci1hcml0aCAtV3JldHVybi10eXBlIC1XY2Fz
dC1xdWFsIC1Xd3JpdGUtc3RyaW5ncyAtV3N3aXRjaCAtV3VudXNlZC1wYXJhbWV0ZXIgLVdjYXN0
LWFsaWduIC1XY2hhci1zdWJzY3JpcHRzIC1XaW5saW5lIC1XcmVkdW5kYW50LWRlY2xzIikKKyAg
ICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIi1mbm8tcnR0aSIpCiAgIGVsc2VpZiAoQ01BS0VfQ09N
UElMRVJfSVNfR05VQ1hYKQogICAgIHNldChjeHhfYmFzZV9mbGFncyAiLVdhbGwgLVdzaGFkb3cg
LVdlcnJvciIpCiAgICAgaWYoTk9UIENNQUtFX0NYWF9DT01QSUxFUl9WRVJTSU9OIFZFUlNJT05f
TEVTUyA3LjAuMCkKQEAgLTE0OCw3ICsxMzksNiBAQCBtYWNybyhjb25maWdfY29tcGlsZXJfYW5k
X2xpbmtlcikKICAgICAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Y3h4X2Jhc2VfZmxhZ3N9ICR7Y3h4
X25vX2V4Y2VwdGlvbl9mbGFnc30iKQogICBzZXQoY3h4X2RlZmF1bHQgIiR7Y3h4X2V4Y2VwdGlv
bn0iKQogICBzZXQoY3h4X25vX3J0dGkgIiR7Y3h4X2RlZmF1bHR9ICR7Y3h4X25vX3J0dGlfZmxh
Z3N9IikKLSAgc2V0KGN4eF91c2Vfb3duX3R1cGxlICIke2N4eF9kZWZhdWx0fSAtREdURVNUX1VT
RV9PV05fVFIxX1RVUExFPTEiKQogCiAgICMgRm9yIGJ1aWxkaW5nIHRoZSBndGVzdCBsaWJyYXJp
ZXMuCiAgIHNldChjeHhfc3RyaWN0ICIke2N4eF9kZWZhdWx0fSAke2N4eF9zdHJpY3RfZmxhZ3N9
IikKQEAgLTE2Nyw2ICsxNTcsMjIgQEAgZnVuY3Rpb24oY3h4X2xpYnJhcnlfd2l0aF90eXBlIG5h
bWUgdHlwZSBjeHhfZmxhZ3MpCiAgIHNldF90YXJnZXRfcHJvcGVydGllcygke25hbWV9CiAgICAg
UFJPUEVSVElFUwogICAgIERFQlVHX1BPU1RGSVggImQiKQorICAjIFNldCB0aGUgb3V0cHV0IGRp
cmVjdG9yeSBmb3IgYnVpbGQgYXJ0aWZhY3RzCisgIHNldF90YXJnZXRfcHJvcGVydGllcygke25h
bWV9CisgICAgUFJPUEVSVElFUworICAgIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFL
RV9CSU5BUllfRElSfS9iaW4iCisgICAgTElCUkFSWV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtF
X0JJTkFSWV9ESVJ9L2xpYiIKKyAgICBBUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vbGliIgorICAgIFBEQl9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX0JJTkFS
WV9ESVJ9L2JpbiIpCisgICMgbWFrZSBQREJzIG1hdGNoIGxpYnJhcnkgbmFtZQorICBnZXRfdGFy
Z2V0X3Byb3BlcnR5KHBkYl9kZWJ1Z19wb3N0Zml4ICR7bmFtZX0gREVCVUdfUE9TVEZJWCkKKyAg
c2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7bmFtZX0KKyAgICBQUk9QRVJUSUVTCisgICAgUERCX05B
TUUgIiR7bmFtZX0iCisgICAgUERCX05BTUVfREVCVUcgIiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0
Zml4fSIKKyAgICBDT01QSUxFX1BEQl9OQU1FICIke25hbWV9IgorICAgIENPTVBJTEVfUERCX05B
TUVfREVCVUcgIiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0Zml4fSIpCisKICAgaWYgKEJVSUxEX1NI
QVJFRF9MSUJTIE9SIHR5cGUgU1RSRVFVQUwgIlNIQVJFRCIpCiAgICAgc2V0X3RhcmdldF9wcm9w
ZXJ0aWVzKCR7bmFtZX0KICAgICAgIFBST1BFUlRJRVMKQEAgLTE4NCw2ICsxOTAsMTAgQEAgZnVu
Y3Rpb24oY3h4X2xpYnJhcnlfd2l0aF90eXBlIG5hbWUgdHlwZSBjeHhfZmxhZ3MpCiAgICAgZW5k
aWYoKQogICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke25hbWV9IFBVQkxJQyAke3RocmVhZHNf
c3BlY30pCiAgIGVuZGlmKCkKKworICBpZiAoTk9UICIke0NNQUtFX1ZFUlNJT059IiBWRVJTSU9O
X0xFU1MgIjMuOCIpCisgICAgdGFyZ2V0X2NvbXBpbGVfZmVhdHVyZXMoJHtuYW1lfSBQVUJMSUMg
Y3h4X3N0ZF8xMSkKKyAgZW5kaWYoKQogZW5kZnVuY3Rpb24oKQogCiAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
QEAgLTIwNCw3ICsyMTQsNyBAQCBlbmRmdW5jdGlvbigpCiAjIGlzIGJ1aWx0IGZyb20gdGhlIGdp
dmVuIHNvdXJjZSBmaWxlcyB3aXRoIHRoZSBnaXZlbiBjb21waWxlciBmbGFncy4KIGZ1bmN0aW9u
KGN4eF9leGVjdXRhYmxlX3dpdGhfZmxhZ3MgbmFtZSBjeHhfZmxhZ3MgbGlicykKICAgYWRkX2V4
ZWN1dGFibGUoJHtuYW1lfSAke0FSR059KQotICBpZiAoTVNWQyBBTkQgKE5PVCAoTVNWQ19WRVJT
SU9OIExFU1MgMTcwMCkpKSAgIyAxNzAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMi4KKyAgaWYgKE1T
VkMpCiAgICAgIyBCaWdPYmogcmVxdWlyZWQgZm9yIHRlc3RzLgogICAgIHNldChjeHhfZmxhZ3Mg
IiR7Y3h4X2ZsYWdzfSAtYmlnb2JqIikKICAgZW5kaWYoKQpAQCAtMjM2LDcgKzI0NiwxMyBAQCBm
dW5jdGlvbihjeHhfZXhlY3V0YWJsZSBuYW1lIGRpciBsaWJzKQogZW5kZnVuY3Rpb24oKQogCiAj
IFNldHMgUFlUSE9OSU5URVJQX0ZPVU5EIGFuZCBQWVRIT05fRVhFQ1VUQUJMRS4KLWZpbmRfcGFj
a2FnZShQeXRob25JbnRlcnApCitpZiAoIiR7Q01BS0VfVkVSU0lPTn0iIFZFUlNJT05fTEVTUyAi
My4xMi4wIikKKyAgZmluZF9wYWNrYWdlKFB5dGhvbkludGVycCkKK2Vsc2UoKQorICBmaW5kX3Bh
Y2thZ2UoUHl0aG9uIENPTVBPTkVOVFMgSW50ZXJwcmV0ZXIpCisgIHNldChQWVRIT05JTlRFUlBf
Rk9VTkQgJHtQeXRob25fSW50ZXJwcmV0ZXJfRk9VTkR9KQorICBzZXQoUFlUSE9OX0VYRUNVVEFC
TEUgJHtQeXRob25fRVhFQ1VUQUJMRX0pCitlbmRpZigpCiAKICMgY3h4X3Rlc3Rfd2l0aF9mbGFn
cyhuYW1lIGN4eF9mbGFncyBsaWJzIHNyY3MuLi4pCiAjCkBAIC0yNDQsNyArMjYwLDcgQEAgZmlu
ZF9wYWNrYWdlKFB5dGhvbkludGVycCkKICMgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIGZpbGVzIHdp
dGggdGhlIGdpdmVuIGNvbXBpbGVyIGZsYWdzLgogZnVuY3Rpb24oY3h4X3Rlc3Rfd2l0aF9mbGFn
cyBuYW1lIGN4eF9mbGFncyBsaWJzKQogICBjeHhfZXhlY3V0YWJsZV93aXRoX2ZsYWdzKCR7bmFt
ZX0gIiR7Y3h4X2ZsYWdzfSIgIiR7bGlic30iICR7QVJHTn0pCi0gIGFkZF90ZXN0KE5BTUUgJHtu
YW1lfSBDT01NQU5EICR7bmFtZX0pCisgICAgYWRkX3Rlc3QoTkFNRSAke25hbWV9IENPTU1BTkQg
IiQ8VEFSR0VUX0ZJTEU6JHtuYW1lfT4iKQogZW5kZnVuY3Rpb24oKQogCiAjIGN4eF90ZXN0KG5h
bWUgbGlicyBzcmNzLi4uKQpAQCAtMjYzLDMzICsyNzksMzAgQEAgZW5kZnVuY3Rpb24oKQogIyB0
ZXN0L25hbWUucHkuICBJdCBkb2VzIG5vdGhpbmcgaWYgUHl0aG9uIGlzIG5vdCBpbnN0YWxsZWQu
CiBmdW5jdGlvbihweV90ZXN0IG5hbWUpCiAgIGlmIChQWVRIT05JTlRFUlBfRk9VTkQpCi0gICAg
aWYgKCR7Q01BS0VfTUFKT1JfVkVSU0lPTn0uJHtDTUFLRV9NSU5PUl9WRVJTSU9OfSBHUkVBVEVS
IDMuMSkKKyAgICBpZiAoIiR7Q01BS0VfTUFKT1JfVkVSU0lPTn0uJHtDTUFLRV9NSU5PUl9WRVJT
SU9OfSIgVkVSU0lPTl9HUkVBVEVSIDMuMSkKICAgICAgIGlmIChDTUFLRV9DT05GSUdVUkFUSU9O
X1RZUEVTKQotCSMgTXVsdGktY29uZmlndXJhdGlvbiBidWlsZCBnZW5lcmF0b3JzIGFzIGZvciBW
aXN1YWwgU3R1ZGlvIHNhdmUKLQkjIG91dHB1dCBpbiBhIHN1YmRpcmVjdG9yeSBvZiBDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVIgKERlYnVnLAotCSMgUmVsZWFzZSBldGMuKSwgc28gd2UgaGF2ZSB0
byBwcm92aWRlIGl0IGhlcmUuCi0gICAgICAgIGFkZF90ZXN0KAotICAgICAgICAgIE5BTUUgJHtu
YW1lfQorICAgICAgICAjIE11bHRpLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBm
b3IgVmlzdWFsIFN0dWRpbyBzYXZlCisgICAgICAgICMgb3V0cHV0IGluIGEgc3ViZGlyZWN0b3J5
IG9mIENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUiAoRGVidWcsCisgICAgICAgICMgUmVsZWFzZSBl
dGMuKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGl0IGhlcmUuCisgICAgICAgIGFkZF90ZXN0KE5B
TUUgJHtuYW1lfQogICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1lfS5weQogICAgICAgICAgICAgICAtLWJ1
aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJDxDT05GSUc+ICR7QVJHTn0pCiAg
ICAgICBlbHNlIChDTUFLRV9DT05GSUdVUkFUSU9OX1RZUEVTKQotCSMgU2luZ2xlLWNvbmZpZ3Vy
YXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBsaWtlIE1ha2VmaWxlIGdlbmVyYXRvcnMKLQkjIGRvbid0
IGhhdmUgc3ViZGlycyBiZWxvdyBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIuCi0gICAgICAgIGFk
ZF90ZXN0KAotICAgICAgICAgIE5BTUUgJHtuYW1lfQorICAgICAgICAjIFNpbmdsZS1jb25maWd1
cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMgbGlrZSBNYWtlZmlsZSBnZW5lcmF0b3JzCisgICAgICAg
ICMgZG9uJ3QgaGF2ZSBzdWJkaXJzIGJlbG93IENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUi4KKyAg
ICAgICAgYWRkX3Rlc3QoTkFNRSAke25hbWV9CiAgICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9F
WEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGVzdC8ke25hbWV9LnB5Ci0g
ICAgICAgICAgICAgIC0tYnVpbGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSAke0FS
R059KQorICAgICAgICAgICAgLS1idWlsZF9kaXI9JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9
ICR7QVJHTn0pCiAgICAgICBlbmRpZiAoQ01BS0VfQ09ORklHVVJBVElPTl9UWVBFUykKLSAgICBl
bHNlICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRF
UiAzLjEpCisgICAgZWxzZSgpCiAgICAgICAjICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSBp
cyBrbm93biBhdCBjb25maWd1cmF0aW9uIHRpbWUsIHNvIHdlIGNhbgogICAgICAgIyBkaXJlY3Rs
eSBiaW5kIGl0IGZyb20gY21ha2UuICR7Q1RFU1RfQ09ORklHVVJBVElPTl9UWVBFfSBpcyBrbm93
bgogICAgICAgIyBvbmx5IGF0IGN0ZXN0IHJ1bnRpbWUgKGJ5IGNhbGxpbmcgY3Rlc3QgLWMgPENv
bmZpZ3VyYXRpb24+KSwgc28KICAgICAgICMgd2UgaGF2ZSB0byBlc2NhcGUgJCB0byBkZWxheSB2
YXJpYWJsZSBzdWJzdGl0dXRpb24gaGVyZS4KLSAgICAgIGFkZF90ZXN0KAotICAgICAgICAke25h
bWV9Ci0gICAgICAgICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXN0LyR7bmFtZX0ucHkKKyAgICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfQorICAgICAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS90ZXN0LyR7bmFtZX0ucHkKICAgICAgICAgICAtLWJ1aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vXCR7Q1RFU1RfQ09ORklHVVJBVElPTl9UWVBFfSAke0FSR059KQotICAgIGVu
ZGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRF
UiAzLjEpCisgICAgZW5kaWYoKQogICBlbmRpZihQWVRIT05JTlRFUlBfRk9VTkQpCiBlbmRmdW5j
dGlvbigpCiAKQEAgLTMwNiw2ICszMTksMTggQEAgZnVuY3Rpb24oaW5zdGFsbF9wcm9qZWN0KQog
ICAgICAgUlVOVElNRSBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iCiAgICAg
ICBBUkNISVZFIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfSIKICAgICAgIExJ
QlJBUlkgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9IikKKyAgICBpZihDTUFL
RV9DWFhfQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIpCisgICAgICAjIEluc3RhbGwgUERCcwor
ICAgICAgZm9yZWFjaCh0ICR7QVJHTn0pCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkodF9w
ZGJfbmFtZSAke3R9IENPTVBJTEVfUERCX05BTUUpCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVy
dHkodF9wZGJfbmFtZV9kZWJ1ZyAke3R9IENPTVBJTEVfUERCX05BTUVfREVCVUcpCisgICAgICAg
IGdldF90YXJnZXRfcHJvcGVydHkodF9wZGJfb3V0cHV0X2RpcmVjdG9yeSAke3R9IFBEQl9PVVRQ
VVRfRElSRUNUT1JZKQorICAgICAgICBpbnN0YWxsKEZJTEVTCisgICAgICAgICAgIiR7dF9wZGJf
b3V0cHV0X2RpcmVjdG9yeX0vXCR7Q01BS0VfSU5TVEFMTF9DT05GSUdfTkFNRX0vJDwkPENPTkZJ
RzpEZWJ1Zz46JHt0X3BkYl9uYW1lX2RlYnVnfT4kPCQ8Tk9UOiQ8Q09ORklHOkRlYnVnPj46JHt0
X3BkYl9uYW1lfT4ucGRiIgorICAgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9M
SUJESVJ9CisgICAgICAgICAgT1BUSU9OQUwpCisgICAgICBlbmRmb3JlYWNoKCkKKyAgICBlbmRp
ZigpCiAgICAgIyBDb25maWd1cmUgYW5kIGluc3RhbGwgcGtnY29uZmlnIGZpbGVzLgogICAgIGZv
cmVhY2godCAke0FSR059KQogICAgICAgc2V0KGNvbmZpZ3VyZWRfcGMgIiR7Z2VuZXJhdGVkX2Rp
cn0vJHt0fS5wYyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9s
aWJndGVzdC5sYS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2xpYmd0ZXN0Lmxh
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0MGM4Mzg4NWY5ODlhMDJhMGFiMzA3M2E3NGU2NWJjMDRkZGYzZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9saWJndGVz
dC5sYS5pbgpAQCAtMCwwICsxLDIxIEBACisjIGxpYmd0ZXN0LmxhIC0gYSBsaWJ0b29sIGxpYnJh
cnkgZmlsZQorIyBHZW5lcmF0ZWQgYnkgbGlidG9vbCAoR05VIGxpYnRvb2wpIDIuNC42CisKKyMg
UGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxp
bmtpbmcgdGhlIGxpYnJhcnkuCisKKyMgTmFtZXMgb2YgdGhpcyBsaWJyYXJ5LgorbGlicmFyeV9u
YW1lcz0nbGliZ3Rlc3Quc28nCisKKyMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJy
YXJ5PworaW5zdGFsbGVkPXllcworCisjIFNob3VsZCB3ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5
IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1bGVzPworc2hvdWxkbm90bGluaz1ubworCisjIEZp
bGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KK2Rsb3Blbj0nJworZGxwcmVvcGVuPScnCisKKyMgRGly
ZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKK2xpYmRp
cj0nQENNQUtFX0lOU1RBTExfRlVMTF9MSUJESVJAJwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NWMzMDU0Yjg1MWRhYjRkOGZlNjhjNTYzZDk1NTI2NjgzMTgyNGMyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Nv
ZGVnZWFyL2d0ZXN0LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi3vu788
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAg
PFByb3BlcnR5R3JvdXA+DQotICAgIDxQcm9qZWN0R3VpZD57YmNhMzdhNzItNWIwNy00NmNmLWI0
NGUtODlmOGUwNjQ1MWEyfTwvUHJvamVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSIn
JChDb25maWcpJz09JyciPlJlbGVhc2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNl
KSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2Zn
XzEpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2Zn
XzE+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3Vw
Pg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9y
ICckKENmZ18yKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRy
dWU8L0NmZ18yPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVy
dHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQot
ICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD50cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0g
ICAgPE91dHB1dEV4dD5saWI8L091dHB1dEV4dD4NCi0gICAgPERDQ19DQnVpbGRlck91dHB1dD5K
UEhORTwvRENDX0NCdWlsZGVyT3V0cHV0Pg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmlu
ZXM+DQotICAgIDxEeW5hbWljUlRMPnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxVc2VQYWNrYWdl
cz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAgPFByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8
L1Byb2plY3RUeXBlPg0KLSAgICA8QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENv
bXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUu
YnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwu
YnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJw
aTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3Mu
YnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJw
aTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2
ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlT
eXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdl
Yl85MF8xMDAuYnBpO2RjbFppcEZvcmdlZDExLmJwaTt2Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9C
RFMyMDA2LmJwaTtHUjMyX0RTR05fQkRTMjAwNi5icGk7SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29y
ZUQxMVIuYnBpO0p2U3lzdGVtRDExUi5icGk7SnZTdGRDdHJsc0QxMVIuYnBpO0p2QXBwRnJtRDEx
Ui5icGk7SnZCYW5kc0QxMVIuYnBpO0p2REJEMTFSLmJwaTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQx
MVIuYnBpO0p2Q21wRDExUi5icGk7SnZDcnlwdEQxMVIuYnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1
c3RvbUQxMVIuYnBpO0p2RG9ja2luZ0QxMVIuYnBpO0p2RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVE
SUQxMVIuYnBpO0p2R2xvYnVzRDExUi5icGk7SnZITUlEMTFSLmJwaTtKdkludGVycHJldGVyRDEx
Ui5icGk7SnZKYW5zRDExUi5icGk7SnZNYW5hZ2VkVGhyZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJw
aTtKdk5ldEQxMVIuYnBpO0p2UGFnZUNvbXBzRDExUi5icGk7SnZQbHVnaW5EMTFSLmJwaTtKdlBy
aW50UHJldmlld0QxMVIuYnBpO0p2UnVudGltZURlc2lnbkQxMVIuYnBpO0p2VGltZUZyYW1ld29y
a0QxMVIuYnBpO0p2VmFsaWRhdG9yc0QxMVIuYnBpO0p2V2l6YXJkRDExUi5icGk7SnZYUEN0cmxz
RDExUi5icGk7VmNsU21wLmJwaTtDRXhjZXB0aW9uRXhwZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0
cz4NCi0gICAgPEJDQ193cGFyPmZhbHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQo
QkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNs
Oy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9JbmNsdWRlUGF0aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJz
PnJ0bC5saWI7dmNsLmxpYjwvQWxsUGFja2FnZUxpYnM+DQotICAgIDxUTElCX1BhZ2VTaXplPjMy
PC9UTElCX1BhZ2VTaXplPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYjskKEJE
UylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+
DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+
DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1
Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJV
RzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9J
TElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZh
bHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5j
cmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQot
ICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFi
bGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1
Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRp
YXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rp
c3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJD
Q19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9w
dGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktf
TGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktf
TGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4N
Ci0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+
DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENm
Z18yKSchPScnIj4NCi0gICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQot
ICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGly
Pg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGli
cmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8
L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNp
b25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFs
aXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBT
dGF0aWNMaWJyYXJ5PC9Cb3JsYW5kLlByb2plY3RUeXBlPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+
DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9u
SW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5jbHVkZVZlckluZm8iPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0luY0J1aWxkIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZl
cnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4w
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxW
ZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBO
YW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlNw
ZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFs
c2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJETEwiPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxlIj4xMDMzPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25JbmZvPjwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25J
bmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9u
SW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVy
c2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJz
aW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1lIj48L1Zl
cnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4w
PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJDb21tZW50cyI+PC9WZXJz
aW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tleXM+PERlYnVnZ2luZz48RGVidWdnaW5nIE5hbWU9
IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
TGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VMYXVuY2hlciI+RmFs
c2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWdDV0QiPjwvUGFyYW1ldGVycz48
UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGljYXRpb24iPjwvUGFyYW1ldGVycz48UGFyYW1ldGVy
cyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3Rl
UGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJh
bWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJh
bWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJl
bW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1i
b2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5
bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVk
U3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdl
cz4NCi0gICAgICANCi0gICAgICANCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChC
RFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIDIw
MDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICA8RXhjbHVkZWRf
UGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2V4cDEwMC5icGwiPkNvZGVHZWFyIEMr
K0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQot
ICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48TGlua2VyIE5hbWU9IkxpYlByZWZpeCI+
PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgiPjwvTGlua2VyPjxMaW5rZXIgTmFtZT0i
TGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFByb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0
UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZhbHNlPC9Qcm9qZWN0UHJvcGVydGllcz48
UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0aHMiPlRydWU8L1Byb2plY3RQcm9wZXJ0
aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJpZnlQYWNrYWdlcyI+VHJ1ZTwvUHJvamVj
dFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9IkNvdW50Ij4zPC9IaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTAi
PiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVc
dmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlz
dG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRT
KVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRl
Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGggTmFtZT0iSXRlbTIiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7
JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxzcmM7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3Rz
X2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5h
bWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxp
YlxvYmo7JChCRFMpXGxpYlxwc2RrPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48
L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVz
PjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxE
ZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hp
c3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlz
dHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9IkNv
dW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElC
X1BhZ2VTaXplIE5hbWU9Ikl0ZW0wIj4zMjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48
SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1lPSJJdGVtMSI+MTY8L0hpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemU+PC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjwvQ1BsdXNQ
bHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+
DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRC
aW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPE5v
bmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1kZWF0aC10ZXN0LmgiPg0KLSAgICAg
IDxCdWlsZE9yZGVyPjM8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1tZXNzYWdlLmgiPg0KLSAgICAgIDxCdWlsZE9y
ZGVyPjQ8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5c
aW5jbHVkZVxndGVzdFxndGVzdC1wYXJhbS10ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjU8
L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVk
ZVxndGVzdFxndGVzdC1zcGkuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+NjwvQnVpbGRPcmRlcj4N
Ci0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0
LXRlc3QtcGFydC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj43PC9CdWlsZE9yZGVyPg0KLSAgICA8
L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtdHlwZWQt
dGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj44PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNs
dWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0X3ByZWRfaW1wbC5oIj4NCi0gICAgICA8QnVpbGRP
cmRlcj4xPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluY2x1ZGVcZ3Rlc3RcZ3Rlc3RfcHJvZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4yPC9CdWls
ZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rl
c3RcaW50ZXJuYWxcZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVpbGRP
cmRlcj45PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtZmlsZXBhdGguaCI+DQotICAgICAgPEJ1aWxk
T3JkZXI+MTA8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0i
Li5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVp
bGRPcmRlcj4xMTwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LWxpbmtlZF9wdHIuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MTI8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRl
ZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNDwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0K
LSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LXBhcmFt
LXV0aWwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTM8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9u
ZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1w
b3J0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE1PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3Qtc3Ry
aW5nLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE2PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtdHlw
ZS11dGlsLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE3PC9CdWlsZE9yZGVyPg0KLSAgICA8L05v
bmU+DQotICAgIDxDcHBDb21waWxlIEluY2x1ZGU9Imd0ZXN0X2FsbC5jYyI+DQotICAgICAgPEJ1
aWxkT3JkZXI+MTg8L0J1aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxk
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwvS2V5Pg0K
LSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVpbGRDb25m
aWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFy
L2d0ZXN0Lmdyb3VwcHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0
Lmdyb3VwcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFmMzFjYWI2NDBiYjQ1
NDA4MTJmODhmNmZhMGZhY2M2ZjAxMGRiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdC5n
cm91cHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi3vu788UHJvamVjdCB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4N
Ci0gIDxQcm9wZXJ0eUdyb3VwPg0KLSAgICA8UHJvamVjdEd1aWQ+e2MxZDkyM2UwLTZjYmEtNDMz
Mi05YjZmLTM0MjBhY2JmNTA5MX08L1Byb2plY3RHdWlkPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0K
LSAgPEl0ZW1Hcm91cCAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9
Imd0ZXN0LmNicHJvaiIgLz4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0X21haW4uY2Jw
cm9qIiAvPg0KLSAgICA8UHJvamVjdHMgSW5jbHVkZT0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiAv
Pg0KLSAgPC9JdGVtR3JvdXA+DQotICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxCb3JsYW5k
LlBlcnNvbmFsaXR5PkRlZmF1bHQuUGVyc29uYWxpdHk8L0JvcmxhbmQuUGVyc29uYWxpdHk+DQot
ICAgIDxCb3JsYW5kLlByb2plY3RUeXBlIC8+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9y
bGFuZFByb2plY3QgeG1sbnM9IiI+PERlZmF1bHQuUGVyc29uYWxpdHk+PC9EZWZhdWx0LlBlcnNv
bmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4
dGVuc2lvbnM+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0Ij4NCi0gICAgPE1TQnVpbGQgUHJvamVj
dHM9Imd0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0
IE5hbWU9Imd0ZXN0OkNsZWFuIj4NCi0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0LmNicHJv
aiIgVGFyZ2V0cz0iQ2xlYW4iIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rl
c3Q6TWFrZSI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdC5jYnByb2oiIFRhcmdldHM9
Ik1ha2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfbWFpbiI+DQot
ICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW46Q2xlYW4iPg0KLSAgICA8
TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW46TWFrZSI+DQotICAgIDxN
U0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iTWFrZSIgLz4NCi0g
IDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdCI+DQotICAgIDxNU0J1
aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwv
VGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdDpDbGVhbiI+DQotICAgIDxN
U0J1aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAv
Pg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X3VuaXR0ZXN0Ok1ha2UiPg0K
LSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJN
YWtlIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9IkJ1aWxkIj4NCi0gICAgPENh
bGxUYXJnZXQgVGFyZ2V0cz0iZ3Rlc3Q7Z3Rlc3RfbWFpbjtndGVzdF91bml0dGVzdCIgLz4NCi0g
IDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJDbGVhbiI+DQotICAgIDxDYWxsVGFyZ2V0IFRh
cmdldHM9Imd0ZXN0OkNsZWFuO2d0ZXN0X21haW46Q2xlYW47Z3Rlc3RfdW5pdHRlc3Q6Q2xlYW4i
IC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iTWFrZSI+DQotICAgIDxDYWxsVGFy
Z2V0IFRhcmdldHM9Imd0ZXN0Ok1ha2U7Z3Rlc3RfbWFpbjpNYWtlO2d0ZXN0X3VuaXR0ZXN0Ok1h
a2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxJbXBvcnQgQ29uZGl0aW9uPSJFeGlzdHMoJyQoTVNC
dWlsZEJpblBhdGgpXEJvcmxhbmQuR3JvdXAuVGFyZ2V0cycpIiBQcm9qZWN0PSIkKE1TQnVpbGRC
aW5QYXRoKVxCb3JsYW5kLkdyb3VwLlRhcmdldHMiIC8+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Nv
ZGVnZWFyL2d0ZXN0X2FsbC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X2FsbC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE3YWQ2OGFkMWNhYTVm
YjIwODM4YzcwMDg5NmE0MTgyYmE1OWQ5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9h
bGwuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSwg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBKb3NoIEtlbGxleSAoam9z
aGtlbEBnbWFpbC5jb20pCi0vLwotLy8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29v
Z2xlIFRlc3QpCi0vLwotLy8gQysrQnVpbGRlcidzIElERSBjYW5ub3QgYnVpbGQgYSBzdGF0aWMg
bGlicmFyeSBmcm9tIGZpbGVzIHdpdGggaHlwaGVucwotLy8gaW4gdGhlaXIgbmFtZS4gIFNlZSBo
dHRwOi8vcWMuY29kZWdlYXIuY29tL3djL3FjbWFpbi5hc3B4P2Q9NzA5NzcgLgotLy8gVGhpcyBm
aWxlIHNlcnZlcyBhcyBhIHdvcmthcm91bmQuCi0KLSNpbmNsdWRlICJzcmMvZ3Rlc3QtYWxsLmNj
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGlu
ay5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NTVlYmYyZjkxMTBlNjM1M2M2ODdjYzM5NDIz
NDhkYTc5N2NiNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYworKysgL2Rl
di9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgot
Ly8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IEpvc2ggS2VsbGV5IChqb3Noa2VsQGdtYWlsLmNv
bSkKLS8vCi0vLyBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKLS8v
Ci0vLyBMaW5rcyBndGVzdC5saWIgYW5kIGd0ZXN0X21haW4ubGliIGludG8gdGhlIGN1cnJlbnQg
cHJvamVjdCBpbiBDKytCdWlsZGVyLgotLy8gVGhpcyBtZWFucyB0aGF0IHRoZXNlIGxpYnJhcmll
cyBjYW4ndCBiZSByZW5hbWVkLCBidXQgaXQncyB0aGUgb25seSB3YXkgdG8KLS8vIGVuc3VyZSB0
aGF0IERlYnVnIHZlcnN1cyBSZWxlYXNlIHRlc3QgYnVpbGRzIGFyZSBsaW5rZWQgYWdhaW5zdCB0
aGUKLS8vIGFwcHJvcHJpYXRlIERlYnVnIG9yIFJlbGVhc2UgYnVpbGQgb2YgdGhlIGxpYnJhcmll
cy4KLQotI3ByYWdtYSBsaW5rICJndGVzdC5saWIiCi0jcHJhZ21hIGxpbmsgImd0ZXN0X21haW4u
bGliIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
bWFpbi5jYnByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWlu
LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc2Y2UxMzk4ZmYzOTMzMzMz
NzcyNWY0NDY2ZGE1NjNlOTgzMzU4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWlu
LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8UHJvcGVydHlHcm91
cD4NCi0gICAgPFByb2plY3RHdWlkPntiY2EzN2E3Mi01YjA3LTQ2Y2YtYjQ0ZS04OWY4ZTA2NDUx
YTJ9PC9Qcm9qZWN0R3VpZD4NCi0gICAgPENvbmZpZyBDb25kaXRpb249IickKENvbmZpZyknPT0n
JyI+UmVsZWFzZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0Jhc2UnIG9yICckKEJhc2UpJyE9JyciPg0KLSAg
ICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0RlYnVnJyBvciAnJChDZmdfMSknIT0nJyI+DQot
ICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMT50cnVlPC9DZmdfMT4NCi0gICAgPENm
Z1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nUmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9
JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQot
ICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChCYXNlKSchPScnIj4NCi0gICAgPEJDQ19PcHRp
bWl6ZUZvclNwZWVkPnRydWU8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8T3V0cHV0RXh0
PmxpYjwvT3V0cHV0RXh0Pg0KLSAgICA8RENDX0NCdWlsZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1
aWxkZXJPdXRwdXQ+DQotICAgIDxEZWZpbmVzPk5PX1NUUklDVDwvRGVmaW5lcz4NCi0gICAgPER5
bmFtaWNSVEw+dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAgPFVzZVBhY2thZ2VzPnRydWU8L1VzZVBh
Y2thZ2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwU3RhdGljTGlicmFyeTwvUHJvamVjdFR5cGU+
DQotICAgIDxCQ0NfQ1BQQ29tcGlsZUFsd2F5cz50cnVlPC9CQ0NfQ1BQQ29tcGlsZUFsd2F5cz4N
Ci0gICAgPFBhY2thZ2VJbXBvcnRzPnJ0bC5icGk7dmNsLmJwaTtiY2JpZS5icGk7dmNseC5icGk7
dmNsYWN0bmJhbmQuYnBpO3htbHJ0bC5icGk7YmNic21wLmJwaTtkYnJ0bC5icGk7dmNsZGIuYnBp
O2JkZXJ0bC5icGk7dmNsZGJ4LmJwaTtkc25hcC5icGk7ZHNuYXBjb24uYnBpO3ZjbGliLmJwaTtp
YnhwcmVzcy5icGk7YWRvcnRsLmJwaTtkYnhjZHMuYnBpO2RiZXhwcmVzcy5icGk7RGJ4Q29tbW9u
RHJpdmVyLmJwaTt3ZWJzbmFwLmJwaTt2Y2xpZS5icGk7d2ViZHNuYXAuYnBpO2luZXQuYnBpO2lu
ZXRkYmJkZS5icGk7aW5ldGRieHByZXNzLmJwaTtzb2FwcnRsLmJwaTtSYXZlNzVWQ0wuYnBpO3Rl
ZVVJLmJwaTt0ZWUuYnBpO3RlZWRiLmJwaTtJbmR5Q29yZS5icGk7SW5keVN5c3RlbS5icGk7SW5k
eVByb3RvY29scy5icGk7SW50cmF3ZWJEQl85MF8xMDAuYnBpO0ludHJhd2ViXzkwXzEwMC5icGk7
ZGNsWmlwRm9yZ2VkMTEuYnBpO3ZjbFppcEZvcmdlZDExLmJwaTtHUjMyX0JEUzIwMDYuYnBpO0dS
MzJfRFNHTl9CRFMyMDA2LmJwaTtKY2wuYnBpO0pjbFZjbC5icGk7SnZDb3JlRDExUi5icGk7SnZT
eXN0ZW1EMTFSLmJwaTtKdlN0ZEN0cmxzRDExUi5icGk7SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRz
RDExUi5icGk7SnZEQkQxMVIuYnBpO0p2RGxnc0QxMVIuYnBpO0p2QkRFRDExUi5icGk7SnZDbXBE
MTFSLmJwaTtKdkNyeXB0RDExUi5icGk7SnZDdHJsc0QxMVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7
SnZEb2NraW5nRDExUi5icGk7SnZEb3ROZXRDdHJsc0QxMVIuYnBpO0p2RURJRDExUi5icGk7SnZH
bG9idXNEMTFSLmJwaTtKdkhNSUQxMVIuYnBpO0p2SW50ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNE
MTFSLmJwaTtKdk1hbmFnZWRUaHJlYWRzRDExUi5icGk7SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5i
cGk7SnZQYWdlQ29tcHNEMTFSLmJwaTtKdlBsdWdpbkQxMVIuYnBpO0p2UHJpbnRQcmV2aWV3RDEx
Ui5icGk7SnZSdW50aW1lRGVzaWduRDExUi5icGk7SnZUaW1lRnJhbWV3b3JrRDExUi5icGk7SnZW
YWxpZGF0b3JzRDExUi5icGk7SnZXaXphcmREMTFSLmJwaTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xT
bXAuYnBpO0NFeGNlcHRpb25FeHBlcnQxMS5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAgICA8QkND
X3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7
JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGlu
Y2x1ZGU7Li48L0luY2x1ZGVQYXRoPg0KLSAgICA8QWxsUGFja2FnZUxpYnM+cnRsLmxpYjt2Y2wu
bGliPC9BbGxQYWNrYWdlTGlicz4NCi0gICAgPFRMSUJfUGFnZVNpemU+MzI8L1RMSUJfUGFnZVNp
emU+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQo
QkRTKVxsaWJccHNkazwvSUxJTktfTGlicmFyeVBhdGg+DQotICA8L1Byb3BlcnR5R3JvdXA+DQot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18xKSchPScnIj4NCi0gICAgPEJDQ19P
cHRpbWl6ZUZvclNwZWVkPmZhbHNlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPERDQ19P
cHRpbWl6ZT5mYWxzZTwvRENDX09wdGltaXplPg0KLSAgICA8RENDX0RlYnVnSW5mb0luRXhlPnRy
dWU8L0RDQ19EZWJ1Z0luZm9JbkV4ZT4NCi0gICAgPERlZmluZXM+X0RFQlVHOyQoRGVmaW5lcyk8
L0RlZmluZXM+DQotICAgIDxJTElOS19GdWxsRGVidWdJbmZvPnRydWU8L0lMSU5LX0Z1bGxEZWJ1
Z0luZm8+DQotICAgIDxCQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+ZmFsc2U8L0JDQ19Jbmxp
bmVGdW5jdGlvbkV4cGFuc2lvbj4NCi0gICAgPElMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtp
bmc+dHJ1ZTwvSUxJTktfRGlzYWJsZUluY3JlbWVudGFsTGlua2luZz4NCi0gICAgPEJDQ19Vc2VS
ZWdpc3RlclZhcmlhYmxlcz5Ob25lPC9CQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+DQotICAgIDxE
Q0NfRGVmaW5lPkRFQlVHPC9EQ0NfRGVmaW5lPg0KLSAgICA8QkNDX0RlYnVnTGluZU51bWJlcnM+
dHJ1ZTwvQkNDX0RlYnVnTGluZU51bWJlcnM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+
RGVidWc8L0ludGVybWVkaWF0ZU91dHB1dERpcj4NCi0gICAgPFRBU01fRGlzcGxheVNvdXJjZUxp
bmVzPnRydWU8L1RBU01fRGlzcGxheVNvdXJjZUxpbmVzPg0KLSAgICA8QkNDX1N0YWNrRnJhbWVz
PnRydWU8L0JDQ19TdGFja0ZyYW1lcz4NCi0gICAgPEJDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz50
cnVlPC9CQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4k
KEJEUylcbGliXGRlYnVnOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4N
Ci0gICAgPFRBU01fRGVidWdnaW5nPkZ1bGw8L1RBU01fRGVidWdnaW5nPg0KLSAgICA8QkNDX1Nv
dXJjZURlYnVnZ2luZ09uPnRydWU8L0JDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj4NCi0gIDwvUHJvcGVy
dHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzIpJyE9JyciPg0K
LSAgICA8RGVmaW5lcz5OREVCVUc7JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPEludGVybWVk
aWF0ZU91dHB1dERpcj5SZWxlYXNlPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxJTElO
S19MaWJyYXJ5UGF0aD4kKEJEUylcbGliXHJlbGVhc2U7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lM
SU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1Z2dpbmc+Tm9uZTwvVEFTTV9EZWJ1Z2dp
bmc+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxC
b3JsYW5kLlBlcnNvbmFsaXR5PkNQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk8L0JvcmxhbmQu
UGVyc29uYWxpdHk+DQotICAgIDxCb3JsYW5kLlByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8
L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFBy
b2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk+PFZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJNaW5vclZlciI+
MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5h
bWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByZVJlbGVh
c2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcml2YXRlIj5GYWxzZTwvVmVyc2lvbklu
Zm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJDb2Rl
UGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJz
aW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9uIj48L1ZlcnNpb25JbmZvS2V5cz48VmVy
c2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+
PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmlnaHQiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1hcmtzIj48L1ZlcnNpb25JbmZvS2V5cz48
VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmlsZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25JbmZv
S2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1lbnRzIj48L1ZlcnNpb25JbmZvS2V5cz48
L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VE
aXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMYXVuY2hlciI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVy
cz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90
ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXRoIj48L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFt
ZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
UmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlRGVidWciPkZh
bHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBh
dGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwv
UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkVW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxz
ZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxF
eGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAwLmJwbCI+Q29k
ZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1Bh
Y2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9m
ZmljZXhwMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2VydmVycyBQYWNr
YWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdlcz48TGlua2Vy
PjxMaW5rZXIgTmFtZT0iTGliUHJlZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlN1ZmZp
eCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48L0xpbmtlcj48
UHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+
RmFsc2U8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQ
YXRocyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZl
cmlmeVBhY2thZ2VzIj5UcnVlPC9Qcm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQcm9wZXJ0aWVz
PjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGgg
TmFtZT0iQ291bnQiPjM8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNf
aGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVc
ZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hpc3Rv
cnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJ
dGVtMSI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5j
bHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRo
PjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7
JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXHNy
YzsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19o
bEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obElM
SU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJ
dGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0hpc3RvcnlM
aXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGg+PEhpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0i
Q291bnQiPjE8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMg
TmFtZT0iSXRlbTAiPk5PX1NUUklDVDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3RvcnlM
aXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemUgTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFn
ZVNpemU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemUgTmFtZT0iSXRlbTAiPjMyPC9IaXN0
b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5h
bWU9Ikl0ZW0xIj4xNjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48L0hpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemU+PC9DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFu
ZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8
SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+
DQotICA8SXRlbUdyb3VwPg0KLSAgICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlxzcmNcZ3Rlc3Rf
bWFpbi5jYyI+DQotICAgICAgPEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9DcHBD
b21waWxlPg0KLSAgICA8QnVpbGRDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnIj4NCi0gICAg
ICA8S2V5PkNmZ18xPC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgICA8QnVp
bGRDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2UiPg0KLSAgICAgIDxLZXk+Q2ZnXzI8L0tl
eT4NCi0gICAgPC9CdWlsZENvbmZpZ3VyYXRpb24+DQotICA8L0l0ZW1Hcm91cD4NCi08L1Byb2pl
Y3Q+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
dW5pdHRlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
dW5pdHRlc3QuY2Jwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzVkYjhlNGRh
NTk0NTdmYzhlZmFhMmQ2Y2NlYTg3YzZiODRkYmQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X3VuaXR0ZXN0LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLe+7vzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8
UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlkPntlZWE2MzM5My01YWM1LTRiOWMtODkw
OS1kNzVmZWYyZGFhNDF9PC9Qcm9qZWN0R3VpZD4NCi0gICAgPENvbmZpZyBDb25kaXRpb249Iick
KENvbmZpZyknPT0nJyI+UmVsZWFzZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0Jhc2UnIG9yICckKEJhc2Up
JyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0RlYnVnJyBvciAnJChDZmdf
MSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMT50cnVlPC9DZmdf
MT4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+
DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nUmVsZWFzZScgb3Ig
JyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1
ZTwvQ2ZnXzI+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0
eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChCYXNlKSchPScnIj4NCi0g
ICAgPE91dHB1dEV4dD5leGU8L091dHB1dEV4dD4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVk
PnRydWU8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0Rl
ZmluZXM+DQotICAgIDxEQ0NfQ0J1aWxkZXJPdXRwdXQ+SlBITkU8L0RDQ19DQnVpbGRlck91dHB1
dD4NCi0gICAgPER5bmFtaWNSVEw+dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAgPElMSU5LX09iamVj
dFNlYXJjaFBhdGg+Li5cdGVzdDwvSUxJTktfT2JqZWN0U2VhcmNoUGF0aD4NCi0gICAgPFVzZVBh
Y2thZ2VzPnRydWU8L1VzZVBhY2thZ2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwQ29uc29sZUFw
cGxpY2F0aW9uPC9Qcm9qZWN0VHlwZT4NCi0gICAgPE5vVkNMPnRydWU8L05vVkNMPg0KLSAgICA8
QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQ
YWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5i
YW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwu
YnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3Mu
YnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5i
cGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUu
YnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7
dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2Nv
bHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO0pjbC5icGk7
SmNsVmNsLmJwaTtKdkNvcmVEMTFSLmJwaTtKdlN5c3RlbUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFS
LmJwaTtKdkFwcEZybUQxMVIuYnBpO0p2QmFuZHNEMTFSLmJwaTtKdkRCRDExUi5icGk7SnZEbGdz
RDExUi5icGk7SnZCREVEMTFSLmJwaTtKdkNtcEQxMVIuYnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0
cmxzRDExUi5icGk7SnZDdXN0b21EMTFSLmJwaTtKdkRvY2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0
cmxzRDExUi5icGk7SnZFRElEMTFSLmJwaTtKdkdsb2J1c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7
SnZJbnRlcnByZXRlckQxMVIuYnBpO0p2SmFuc0QxMVIuYnBpO0p2TWFuYWdlZFRocmVhZHNEMTFS
LmJwaTtKdk1NRDExUi5icGk7SnZOZXREMTFSLmJwaTtKdlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1
Z2luRDExUi5icGk7SnZQcmludFByZXZpZXdEMTFSLmJwaTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJw
aTtKdlRpbWVGcmFtZXdvcmtEMTFSLmJwaTtKdlZhbGlkYXRvcnNEMTFSLmJwaTtKdldpemFyZEQx
MVIuYnBpO0p2WFBDdHJsc0QxMVIuYnBpO1ZjbFNtcC5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAg
ICA8QkNDX3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGlu
Y2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5j
bHVkZTsuLlx0ZXN0Oy4uPC9JbmNsdWRlUGF0aD4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQo
QkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrOy4uXHRlc3Q8L0lMSU5LX0xp
YnJhcnlQYXRoPg0KLSAgICA8TXVsdGl0aHJlYWRlZD50cnVlPC9NdWx0aXRocmVhZGVkPg0KLSAg
PC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSkn
IT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9y
U3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERD
Q19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVz
Pl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50
cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5z
aW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNh
YmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtp
bmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVy
VmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJD
Q19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50
ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxU
QVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0g
ICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlz
YWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8
SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwv
SUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVn
Z2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdn
aW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENmZ18yKSchPScnIj4NCi0gICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmlu
ZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0
cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJ
TktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5n
Pk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RF
eHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBl
cnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlw
ZT5DcHBDb25zb2xlQXBwbGljYXRpb248L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3Js
YW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxp
dHk+PFZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJNaW5vclZlciI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9
IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZl
cnNpb25JbmZvIE5hbWU9IlByZVJlbGVhc2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQ
cml2YXRlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJDb2RlUGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUi
PjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9u
Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4x
LjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmln
aHQiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1h
cmtzIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmls
ZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNp
b24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1l
bnRzIj48L1ZlcnNpb25JbmZvS2V5cz48L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1
Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VEaXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1l
dGVycyBOYW1lPSJMYXVuY2hlciI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxh
dW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJSZW1vdGVQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFy
YW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRl
cnMgTmFtZT0iUmVtb3RlRGVidWciPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9
IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBhdGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2Fk
VW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxzZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1
ZGVkX1BhY2thZ2VzPg0KLSAgICAgIA0KLSAgICAgIA0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdl
cyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRl
ciBPZmZpY2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAg
IDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZXhwMTAwLmJwbCI+
Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9Q
YWNrYWdlcz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdlcz48TGlua2VyPjxMaW5rZXIgTmFtZT0i
TGliUHJlZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExp
bmtlciBOYW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48L0xpbmtlcj48UHJvamVjdFByb3BlcnRp
ZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+RmFsc2U8L1Byb2plY3RQ
cm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJv
amVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5U
cnVlPC9Qcm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQcm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNf
aGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iQ291bnQiPjM8
L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBO
YW1lPSJJdGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJE
UylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTsuLlx0ZXN0Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxp
bmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXGlu
Y2x1ZGU7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19o
bEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0yIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxk
aW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJ
bmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJ
TElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0i
Q291bnQiPjE8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9i
ajskKEJEUylcbGliXHBzZGs7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylc
bGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFt
ZT0iSXRlbTIiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrOyQoT1VU
UFVURElSKTsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3Rv
cnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0
b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4yPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVz
PjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlM
aXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0iSXRlbTEiPlNUUklD
VDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9DUGx1
c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVj
dD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWls
ZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+DQotICA8SXRlbUdyb3VwPg0KLSAgICA8
Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4NCi0gICAgICA8
QnVpbGRPcmRlcj4wPC9CdWlsZE9yZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxDcHBD
b21waWxlIEluY2x1ZGU9Imd0ZXN0X2xpbmsuY2MiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE8L0J1
aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29u
ZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4N
Ci0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAg
PC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjU0YzhjNGIzMTg4NWQyNTcxZmEyMzAwYjYzMWU4YmY5ZDk1YWUwNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jb25maWd1cmUuYWMKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi1tNF9pbmNsdWRl
KG00L2FjeF9wdGhyZWFkLm00KQotCi0jIEF0IHRoaXMgcG9pbnQsIHRoZSBYY29kZSBwcm9qZWN0
IGFzc3VtZXMgdGhlIHZlcnNpb24gc3RyaW5nIHdpbGwgYmUgdGhyZWUKLSMgaW50ZWdlcnMgc2Vw
YXJhdGVkIGJ5IHBlcmlvZHMgYW5kIHN1cnJvdW5kZWQgYnkgc3F1YXJlIGJyYWNrZXRzIChlLmcu
Ci0jICJbMS4wLjFdIikuIEl0IGFsc28gYXN1bWVzIHRoYXQgdGhlcmUgd29uJ3QgYmUgYW55IGNs
b3NpbmcgcGFyZW50aGVzaXMKLSMgYmV0d2VlbiAiQUNfSU5JVCgiIGFuZCB0aGUgY2xvc2luZyAi
KSIgaW5jbHVkaW5nIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgotQUNfSU5JVChbR29vZ2xlIEMrKyBU
ZXN0aW5nIEZyYW1ld29ya10sCi0gICAgICAgIFsxLjguMF0sCi0gICAgICAgIFtnb29nbGV0ZXN0
ZnJhbWV3b3JrQGdvb2dsZWdyb3Vwcy5jb21dLAotICAgICAgICBbZ3Rlc3RdKQotCi0jIFByb3Zp
ZGUgdmFyaW91cyBvcHRpb25zIHRvIGluaXRpYWxpemUgdGhlIEF1dG9jb25mIGFuZCBjb25maWd1
cmUgcHJvY2Vzc2VzLgotQUNfUFJFUkVRKFsyLjU5XSkKLUFDX0NPTkZJR19TUkNESVIoWy4vTElD
RU5TRV0pCi1BQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCi1BQ19DT05GSUdfQVVYX0RJUihbYnVp
bGQtYXV4XSkKLUFDX0NPTkZJR19IRUFERVJTKFtidWlsZC1hdXgvY29uZmlnLmhdKQotQUNfQ09O
RklHX0ZJTEVTKFtNYWtlZmlsZV0pCi1BQ19DT05GSUdfRklMRVMoW3NjcmlwdHMvZ3Rlc3QtY29u
ZmlnXSwgW2NobW9kICt4IHNjcmlwdHMvZ3Rlc3QtY29uZmlnXSkKLQotIyBJbml0aWFsaXplIEF1
dG9tYWtlIHdpdGggdmFyaW91cyBvcHRpb25zLiBXZSByZXF1aXJlIGF0IGxlYXN0IHYxLjksIHBy
ZXZlbnQKLSMgcGVkYW50aWMgY29tcGxhaW50cyBhYm91dCBwYWNrYWdlIGZpbGVzLCBhbmQgZW5h
YmxlIHZhcmlvdXMgZGlzdHJpYnV0aW9uCi0jIHRhcmdldHMuCi1BTV9JTklUX0FVVE9NQUtFKFsx
LjkgZGlzdC1iemlwMiBkaXN0LXppcCBmb3JlaWduIHN1YmRpci1vYmplY3RzXSkKLQotIyBDaGVj
ayBmb3IgcHJvZ3JhbXMgdXNlZCBpbiBidWlsZGluZyBHb29nbGUgVGVzdC4KLUFDX1BST0dfQ0MK
LUFDX1BST0dfQ1hYCi1BQ19MQU5HKFtDKytdKQotQUNfUFJPR19MSUJUT09MCi0KLSMgVE9ETyhj
aGFuZGxlcmNAZ29vZ2xlLmNvbSk6IEN1cnJlbnRseSB3ZSBhcmVuJ3QgcnVubmluZyB0aGUgUHl0
aG9uIHRlc3RzCi0jIGFnYWluc3QgdGhlIGludGVycHJldGVyIGRldGVjdGVkIGJ5IEFNX1BBVEhf
UFlUSE9OLCBhbmQgc28gd2UgY29uZGl0aW9uCi0jIEhBVkVfUFlUSE9OIGJ5IHJlcXVpcmluZyAi
cHl0aG9uIiB0byBiZSBpbiB0aGUgUEFUSCwgYW5kIHRoYXQgaW50ZXJwcmV0ZXIncwotIyB2ZXJz
aW9uIHRvIGJlID49IDIuMy4gVGhpcyB3aWxsIGFsbG93IHRoZSBzY3JpcHRzIHRvIHVzZSBhICIv
dXNyL2Jpbi9lbnYiCi0jIGhhc2hiYW5nLgotUFlUSE9OPSAgIyBXZSAqZG8gbm90KiBhbGxvdyB0
aGUgdXNlciB0byBzcGVjaWZ5IGEgcHl0aG9uIGludGVycHJldGVyCi1BQ19QQVRIX1BST0coW1BZ
VEhPTl0sW3B5dGhvbl0sWzpdKQotQVNfSUYoW3Rlc3QgIiRQWVRIT04iICE9ICI6Il0sCi0gICAg
ICBbQU1fUFlUSE9OX0NIRUNLX1ZFUlNJT04oWyRQWVRIT05dLFsyLjNdLFs6XSxbUFlUSE9OPSI6
Il0pXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX1BZVEhPTl0sW3Rlc3QgIiRQWVRIT04iICE9ICI6
Il0pCi0KLSMgQ29uZmlndXJlIHB0aHJlYWRzLgotQUNfQVJHX1dJVEgoW3B0aHJlYWRzXSwKLSAg
ICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXB0aHJlYWRzXSwKLSAgICAgICAgICAg
ICAgIFt1c2UgcHRocmVhZHMgKGRlZmF1bHQgaXMgeWVzKV0pXSwKLSAgICAgICAgICAgIFt3aXRo
X3B0aHJlYWRzPSR3aXRodmFsXSwKLSAgICAgICAgICAgIFt3aXRoX3B0aHJlYWRzPWNoZWNrXSkK
LQotaGF2ZV9wdGhyZWFkcz1ubwotQVNfSUYoW3Rlc3QgIngkd2l0aF9wdGhyZWFkcyIgIT0gInhu
byJdLAotICAgICAgW0FDWF9QVEhSRUFEKAotICAgICAgICBbXSwKLSAgICAgICAgW0FTX0lGKFt0
ZXN0ICJ4JHdpdGhfcHRocmVhZHMiICE9ICJ4Y2hlY2siXSwKLSAgICAgICAgICAgICAgIFtBQ19N
U0dfRkFJTFVSRSgKLSAgICAgICAgICAgICAgICAgWy0td2l0aC1wdGhyZWFkcyB3YXMgc3BlY2lm
aWVkLCBidXQgdW5hYmxlIHRvIGJlIHVzZWRdKV0pXSkKLSAgICAgICBoYXZlX3B0aHJlYWRzPSIk
YWN4X3B0aHJlYWRfb2siXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX1BUSFJFQURTXSxbdGVzdCAi
eCRoYXZlX3B0aHJlYWRzIiA9ICJ4eWVzIl0pCi1BQ19TVUJTVChQVEhSRUFEX0NGTEFHUykKLUFD
X1NVQlNUKFBUSFJFQURfTElCUykKLQotIyBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKSBDaGVj
ayBmb3IgdGhlIG5lY2Vzc2FyeSBzeXN0ZW0gaGVhZGVycy4KLQotIyBUT0RPKGNoYW5kbGVyY0Bn
b29nbGUuY29tKSBDaGVjayB0aGUgdHlwZXMsIHN0cnVjdHVyZXMsIGFuZCBvdGhlciBjb21waWxl
cgotIyBhbmQgYXJjaGl0ZWN0dXJlIGNoYXJhY3RlcmlzdGljcy4KLQotIyBPdXRwdXQgdGhlIGdl
bmVyYXRlZCBmaWxlcy4gTm8gZnVydGhlciBhdXRvY29uZiBtYWNyb3MgbWF5IGJlIHVzZWQuCi1B
Q19PVVRQVVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29u
ZmlnLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Qa2djb25maWcubWQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NjEyODk0ZDJhM2M4ZWFkYjQ0MmM1NTg3ODA0ZmI3
Nzg1ZWFhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Qa2djb25maWcubWQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDYgKzAsMCBAQAotIyMgVXNpbmcgR29vZ2xlVGVzdCBmcm9tIHZhcmlvdXMgYnVpbGQg
c3lzdGVtcyAjIwotCi1Hb29nbGVUZXN0IGNvbWVzIHdpdGggcGtnLWNvbmZpZyBmaWxlcyB0aGF0
IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBhbGwKLW5lY2Vzc2FyeSBmbGFncyBmb3IgY29tcGls
aW5nIGFuZCBsaW5raW5nIHRvIEdvb2dsZVRlc3QgKGFuZCBHb29nbGVNb2NrKS4KLVBrZy1jb25m
aWcgaXMgYSBzdGFuZGFyZGlzZWQgcGxhaW4tdGV4dCBmb3JtYXQgY29udGFpbmluZwotCi0gICog
dGhlIGluY2x1ZGVkaXIgKC1JKSBwYXRoCi0gICogbmVjZXNzYXJ5IG1hY3JvICgtRCkgZGVmaW5p
dGlvbnMKLSAgKiBmdXJ0aGVyIHJlcXVpcmVkIGZsYWdzICgtcHRocmVhZCkKLSAgKiB0aGUgbGli
cmFyeSAoLUwpIHBhdGgKLSAgKiB0aGUgbGlicmFyeSAoLWwpIHRvIGxpbmsgdG8KLQotQWxsIGN1
cnJlbnQgYnVpbGQgc3lzdGVtcyBzdXBwb3J0IHBrZy1jb25maWcgaW4gb25lIHdheSBvciBhbm90
aGVyLiBGb3IKLWFsbCBleGFtcGxlcyBoZXJlIHdlIGFzc3VtZSB5b3Ugd2FudCB0byBjb21waWxl
IHRoZSBzYW1wbGUKLWBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NgLgotCi0KLSMjIyBDTWFr
ZSAjIyMKLQotVXNpbmcgYHBrZy1jb25maWdgIGluIENNYWtlIGlzIGZhaXJseSBlYXN5OgotCi1g
YGAKLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjApCi0KLWNtYWtlX3BvbGljeShT
RVQgQ01QMDA0OCBORVcpCi1wcm9qZWN0KG15X2d0ZXN0X3BrZ2NvbmZpZyBWRVJTSU9OIDAuMC4x
IExBTkdVQUdFUyBDWFgpCi0KLWZpbmRfcGFja2FnZShQa2dDb25maWcpCi1wa2dfc2VhcmNoX21v
ZHVsZShHVEVTVCBSRVFVSVJFRCBndGVzdF9tYWluKQotCi1hZGRfZXhlY3V0YWJsZSh0ZXN0YXBw
IHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYykKLXRhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0
YXBwICR7R1RFU1RfTERGTEFHU30pCi10YXJnZXRfY29tcGlsZV9vcHRpb25zKHRlc3RhcHAgUFVC
TElDICR7R1RFU1RfQ0ZMQUdTfSkKLQotaW5jbHVkZShDVGVzdCkKLWFkZF90ZXN0KGZpcnN0X2Fu
ZF9vbmx5X3Rlc3QgdGVzdGFwcCkKLWBgYAotCi1JdCBpcyBnZW5lcmFsbHkgcmVjb21tZW5kZWQg
dGhhdCB5b3UgdXNlIGB0YXJnZXRfY29tcGlsZV9vcHRpb25zYCArIGBfQ0ZMQUdTYAotb3ZlciBg
dGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXNgICsgYF9JTkNMVURFX0RJUlNgIGFzIHRoZSBmb3Jt
ZXIgaW5jbHVkZXMgbm90Ci1qdXN0IC1JIGZsYWdzIChHb29nbGVUZXN0IG1pZ2h0IHJlcXVpcmUg
YSBtYWNybyBpbmRpY2F0aW5nIHRvIGludGVybmFsIGhlYWRlcnMKLXRoYXQgYWxsIGxpYnJhcmll
cyBoYXZlIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRpbmcgZW5hYmxlZC4gSW4gYWRkaXRpb24s
Ci1Hb29nbGVUZXN0IG1pZ2h0IGFsc28gcmVxdWlyZSBgLXB0aHJlYWRgIGluIHRoZSBjb21waWxp
bmcgc3RlcCwgYW5kIGFzIHN1Y2gKLXNwbGl0dGluZyB0aGUgcGtnLWNvbmZpZyBgQ2ZsYWdzYCB2
YXJpYWJsZSBpbnRvIGluY2x1ZGUgZGlycyBhbmQgbWFjcm9zIGZvcgotYHRhcmdldF9jb21waWxl
X2RlZmluaXRpb25zKClgIG1pZ2h0IHN0aWxsIG1pc3MgdGhpcykuIFRoZSBzYW1lIHJlY29tbWVu
ZGF0aW9uCi1nb2VzIGZvciB1c2luZyBgX0xERkxBR1NgIG92ZXIgdGhlIG1vcmUgY29tbW9ucGxh
Y2UgYF9MSUJSQVJJRVNgLCB3aGljaAotaGFwcGVucyB0byBkaXNjYXJkIGAtTGAgZmxhZ3MgYW5k
IGAtcHRocmVhZGAuCi0KLQotIyMjIEF1dG90b29scyAjIyMKLQotRmluZGluZyBHb29nbGVUZXN0
IGluIEF1dG9jb25mIGFuZCB1c2luZyBpdCBmcm9tIEF1dG9tYWtlIGlzIGFsc28gZmFpcmx5IGVh
c3k6Ci0KLUluIHlvdXIgYGNvbmZpZ3VyZS5hY2A6Ci0KLWBgYAotQUNfUFJFUkVRKFsyLjY5XSkK
LUFDX0lOSVQoW215X2d0ZXN0X3BrZ2NvbmZpZ10sIFswLjAuMV0pCi1BQ19DT05GSUdfU1JDRElS
KFtzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NdKQotQUNfUFJPR19DWFgKLQotUEtHX0NIRUNL
X01PRFVMRVMoW0dURVNUXSwgW2d0ZXN0X21haW5dKQotCi1BTV9JTklUX0FVVE9NQUtFKFtmb3Jl
aWduIHN1YmRpci1vYmplY3RzXSkKLUFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQotQUNfT1VU
UFVUCi1gYGAKLQotYW5kIGluIHlvdXIgYE1ha2VmaWxlLmFtYDoKLQotYGBgCi1jaGVja19QUk9H
UkFNUyA9IHRlc3RhcHAKLVRFU1RTID0gJChjaGVja19QUk9HUkFNUykKLQotdGVzdGFwcF9TT1VS
Q0VTID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi10ZXN0YXBwX0NYWEZMQUdTID0gJChH
VEVTVF9DRkxBR1MpCi10ZXN0YXBwX0xEQUREID0gJChHVEVTVF9MSUJTKQotYGBgCi0KLQotIyMj
IE1lc29uICMjIwotCi1NZXNvbiBuYXRpdmVseSB1c2VzIHBrZ2NvbmZpZyB0byBxdWVyeSBkZXBl
bmRlbmNpZXM6Ci0KLWBgYAotcHJvamVjdCgnbXlfZ3Rlc3RfcGtnY29uZmlnJywgJ2NwcCcsIHZl
cnNpb24gOiAnMC4wLjEnKQotCi1ndGVzdF9kZXAgPSBkZXBlbmRlbmN5KCdndGVzdF9tYWluJykK
LQotdGVzdGFwcCA9IGV4ZWN1dGFibGUoCi0gICd0ZXN0YXBwJywKLSAgZmlsZXMoWydzYW1wbGVz
L3NhbXBsZTNfdW5pdHRlc3QuY2MnXSksCi0gIGRlcGVuZGVuY2llcyA6IGd0ZXN0X2RlcCwKLSAg
aW5zdGFsbCA6IGZhbHNlKQotCi10ZXN0KCdmaXJzdF9hbmRfb25seV90ZXN0JywgdGVzdGFwcCkK
LWBgYAotCi0KLSMjIyBQbGFpbiBNYWtlZmlsZXMgIyMjCi0KLVNpbmNlIGBwa2ctY29uZmlnYCBp
cyBhIHNtYWxsIFVuaXggY29tbWFuZC1saW5lIHV0aWxpdHksIGl0IGNhbiBiZSB1c2VkCi1pbiBo
YW5kd3JpdHRlbiBgTWFrZWZpbGVgcyB0b286Ci0KLWBgYAotR1RFU1RfQ0ZMQUdTID0gYHBrZy1j
b25maWcgLS1jZmxhZ3MgZ3Rlc3RfbWFpbmAKLUdURVNUX0xJQlMgPSBgcGtnLWNvbmZpZyAtLWxp
YnMgZ3Rlc3RfbWFpbmAKLQotLlBIT05ZOiB0ZXN0cyBhbGwKLQotdGVzdHM6IGFsbAotCS4vdGVz
dGFwcAotCi1hbGw6IHRlc3RhcHAKLQotdGVzdGFwcDogdGVzdGFwcC5vCi0JJChDWFgpICQoQ1hY
RkxBR1MpICQoTERGTEFHUykgJDwgLW8gJEAgJChHVEVTVF9MSUJTKQotCi10ZXN0YXBwLm86IHNh
bXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwotCSQoQ1hYKSAkKENQUEZMQUdTKSAkKENYWEZMQUdT
KSAkPCAtYyAtbyAkQCAkKEdURVNUX0NGTEFHUykKLWBgYAotCi0KLSMjIyBIZWxwISBwa2ctY29u
ZmlnIGNhbid0IGZpbmQgR29vZ2xlVGVzdCEgIyMjCi0KLUxldCdzIHNheSB5b3UgaGF2ZSBhIGBD
TWFrZUxpc3RzLnR4dGAgYWxvbmcgdGhlIGxpbmVzIG9mIHRoZSBvbmUgaW4gdGhpcwotdHV0b3Jp
YWwgYW5kIHlvdSB0cnkgdG8gcnVuIGBjbWFrZWAuIEl0IGlzIHZlcnkgcG9zc2libGUgdGhhdCB5
b3UgZ2V0IGEKLWZhaWx1cmUgYWxvbmcgdGhlIGxpbmVzIG9mOgotCi1gYGAKLS0tIENoZWNraW5n
IGZvciBvbmUgb2YgdGhlIG1vZHVsZXMgJ2d0ZXN0X21haW4nCi1DTWFrZSBFcnJvciBhdCAvdXNy
L3NoYXJlL2NtYWtlL01vZHVsZXMvRmluZFBrZ0NvbmZpZy5jbWFrZTo2NDAgKG1lc3NhZ2UpOgot
ICBOb25lIG9mIHRoZSByZXF1aXJlZCAnZ3Rlc3RfbWFpbicgZm91bmQKLWBgYAotCi1UaGVzZSBm
YWlsdXJlcyBhcmUgY29tbW9uIGlmIHlvdSBpbnN0YWxsZWQgR29vZ2xlVGVzdCB5b3Vyc2VsZiBh
bmQgaGF2ZSBub3QKLXNvdXJjZWQgaXQgZnJvbSBhIGRpc3RybyBvciBvdGhlciBwYWNrYWdlIG1h
bmFnZXIuIElmIHNvLCB5b3UgbmVlZCB0byB0ZWxsCi1wa2ctY29uZmlnIHdoZXJlIGl0IGNhbiBm
aW5kIHRoZSBgLnBjYCBmaWxlcyBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbi4KLVNheSB5b3Ug
aW5zdGFsbGVkIEdvb2dsZVRlc3QgdG8gYC91c3IvbG9jYWxgLCB0aGVuIGl0IG1pZ2h0IGJlIHRo
YXQgdGhlCi1gLnBjYCBmaWxlcyBhcmUgaW5zdGFsbGVkIHVuZGVyIGAvdXNyL2xvY2FsL2xpYjY0
L3BrZ2NvbmZpZ2AuIElmIHlvdSBzZXQKLQotYGBgCi1leHBvcnQgUEtHX0NPTkZJR19QQVRIPS91
c3IvbG9jYWwvbGliNjQvcGtnY29uZmlnCi1gYGAKLQotcGtnLWNvbmZpZyB3aWxsIGFsc28gdHJ5
IHRvIGxvb2sgaW4gYFBLR19DT05GSUdfUEFUSGAgdG8gZmluZCBgZ3Rlc3RfbWFpbi5wY2AuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBNYW51YWwubWQgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBNYW51YWwubWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgyN2JiMjRiMDQyZGM1NDNhZjRjNDA5YWQwM2UxNDdlYTU5NDliN2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvZG9jcy9QdW1wTWFudWFsLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMTc3
ICswLDAgQEAKLQotCi08Yj5QPC9iPnVtcCBpcyA8Yj5VPC9iPnNlZnVsIGZvciA8Yj5NPC9iPmV0
YSA8Yj5QPC9iPnJvZ3JhbW1pbmcuCi0KLSMgVGhlIFByb2JsZW0gIwotCi1UZW1wbGF0ZSBhbmQg
bWFjcm8gbGlicmFyaWVzIG9mdGVuIG5lZWQgdG8gZGVmaW5lIG1hbnkgY2xhc3NlcywKLWZ1bmN0
aW9ucywgb3IgbWFjcm9zIHRoYXQgdmFyeSBvbmx5IChvciBhbG1vc3Qgb25seSkgaW4gdGhlIG51
bWJlciBvZgotYXJndW1lbnRzIHRoZXkgdGFrZS4gSXQncyBhIGxvdCBvZiByZXBldGl0aXZlLCBt
ZWNoYW5pY2FsLCBhbmQKLWVycm9yLXByb25lIHdvcmsuCi0KLVZhcmlhZGljIHRlbXBsYXRlcyBh
bmQgdmFyaWFkaWMgbWFjcm9zIGNhbiBhbGxldmlhdGUgdGhlIHByb2JsZW0uCi1Ib3dldmVyLCB3
aGlsZSBib3RoIGFyZSBiZWluZyBjb25zaWRlcmVkIGJ5IHRoZSBDKysgY29tbWl0dGVlLCBuZWl0
aGVyCi1pcyBpbiB0aGUgc3RhbmRhcmQgeWV0IG9yIHdpZGVseSBzdXBwb3J0ZWQgYnkgY29tcGls
ZXJzLiAgVGh1cyB0aGV5Ci1hcmUgb2Z0ZW4gbm90IGEgZ29vZCBjaG9pY2UsIGVzcGVjaWFsbHkg
d2hlbiB5b3VyIGNvZGUgbmVlZHMgdG8gYmUKLXBvcnRhYmxlLiBBbmQgdGhlaXIgY2FwYWJpbGl0
aWVzIGFyZSBzdGlsbCBsaW1pdGVkLgotCi1BcyBhIHJlc3VsdCwgYXV0aG9ycyBvZiBzdWNoIGxp
YnJhcmllcyBvZnRlbiBoYXZlIHRvIHdyaXRlIHNjcmlwdHMgdG8KLWdlbmVyYXRlIHRoZWlyIGlt
cGxlbWVudGF0aW9uLiBIb3dldmVyLCBvdXIgZXhwZXJpZW5jZSBpcyB0aGF0IGl0J3MKLXRlZGlv
dXMgdG8gd3JpdGUgc3VjaCBzY3JpcHRzLCB3aGljaCB0ZW5kIHRvIHJlZmxlY3QgdGhlIHN0cnVj
dHVyZSBvZgotdGhlIGdlbmVyYXRlZCBjb2RlIHBvb3JseSBhbmQgYXJlIG9mdGVuIGhhcmQgdG8g
cmVhZCBhbmQgZWRpdC4gRm9yCi1leGFtcGxlLCBhIHNtYWxsIGNoYW5nZSBuZWVkZWQgaW4gdGhl
IGdlbmVyYXRlZCBjb2RlIG1heSByZXF1aXJlIHNvbWUKLW5vbi1pbnR1aXRpdmUsIG5vbi10cml2
aWFsIGNoYW5nZXMgaW4gdGhlIHNjcmlwdC4gVGhpcyBpcyBlc3BlY2lhbGx5Ci1wYWluZnVsIHdo
ZW4gZXhwZXJpbWVudGluZyB3aXRoIHRoZSBjb2RlLgotCi0jIE91ciBTb2x1dGlvbiAjCi0KLVB1
bXAgKGZvciBQdW1wIGlzIFVzZWZ1bCBmb3IgTWV0YSBQcm9ncmFtbWluZywgUHJldHR5IFVzZWZ1
bCBmb3IgTWV0YQotUHJvZ3JhbW1pbmcsIG9yIFByYWN0aWNhbCBVdGlsaXR5IGZvciBNZXRhIFBy
b2dyYW1taW5nLCB3aGljaGV2ZXIgeW91Ci1wcmVmZXIpIGlzIGEgc2ltcGxlIG1ldGEtcHJvZ3Jh
bW1pbmcgdG9vbCBmb3IgQysrLiBUaGUgaWRlYSBpcyB0aGF0IGEKLXByb2dyYW1tZXIgd3JpdGVz
IGEgYGZvby5wdW1wYCBmaWxlIHdoaWNoIGNvbnRhaW5zIEMrKyBjb2RlIHBsdXMgbWV0YQotY29k
ZSB0aGF0IG1hbmlwdWxhdGVzIHRoZSBDKysgY29kZS4gVGhlIG1ldGEgY29kZSBjYW4gaGFuZGxl
Ci1pdGVyYXRpb25zIG92ZXIgYSByYW5nZSwgbmVzdGVkIGl0ZXJhdGlvbnMsIGxvY2FsIG1ldGEg
dmFyaWFibGUKLWRlZmluaXRpb25zLCBzaW1wbGUgYXJpdGhtZXRpYywgYW5kIGNvbmRpdGlvbmFs
IGV4cHJlc3Npb25zLiBZb3UgY2FuCi12aWV3IGl0IGFzIGEgc21hbGwgRG9tYWluLVNwZWNpZmlj
IExhbmd1YWdlLiBUaGUgbWV0YSBsYW5ndWFnZSBpcwotZGVzaWduZWQgdG8gYmUgbm9uLWludHJ1
c2l2ZSAocy50LiBpdCB3b24ndCBjb25mdXNlIEVtYWNzJyBDKysgbW9kZSwKLWZvciBleGFtcGxl
KSBhbmQgY29uY2lzZSwgbWFraW5nIFB1bXAgY29kZSBpbnR1aXRpdmUgYW5kIGVhc3kgdG8KLW1h
aW50YWluLgotCi0jIyBIaWdobGlnaHRzICMjCi0KLSAgKiBUaGUgaW1wbGVtZW50YXRpb24gaXMg
aW4gYSBzaW5nbGUgUHl0aG9uIHNjcmlwdCBhbmQgdGh1cyB1bHRyYSBwb3J0YWJsZTogbm8gYnVp
bGQgb3IgaW5zdGFsbGF0aW9uIGlzIG5lZWRlZCBhbmQgaXQgd29ya3MgY3Jvc3MgcGxhdGZvcm1z
LgotICAqIFB1bXAgdHJpZXMgdG8gYmUgc21hcnQgd2l0aCByZXNwZWN0IHRvIFtHb29nbGUncyBz
dHlsZSBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9zdHlsZWd1aWRlKTogaXQgYnJl
YWtzIGxvbmcgbGluZXMgKGVhc3kgdG8gaGF2ZSB3aGVuIHRoZXkgYXJlIGdlbmVyYXRlZCkgYXQg
YWNjZXB0YWJsZSBwbGFjZXMgdG8gZml0IHdpdGhpbiA4MCBjb2x1bW5zIGFuZCBpbmRlbnQgdGhl
IGNvbnRpbnVhdGlvbiBsaW5lcyBjb3JyZWN0bHkuCi0gICogVGhlIGZvcm1hdCBpcyBodW1hbi1y
ZWFkYWJsZSBhbmQgbW9yZSBjb25jaXNlIHRoYW4gWE1MLgotICAqIFRoZSBmb3JtYXQgd29ya3Mg
cmVsYXRpdmVseSB3ZWxsIHdpdGggRW1hY3MnIEMrKyBtb2RlLgotCi0jIyBFeGFtcGxlcyAjIwot
Ci1UaGUgZm9sbG93aW5nIFB1bXAgY29kZSAod2hlcmUgbWV0YSBrZXl3b3JkcyBzdGFydCB3aXRo
IGAkYCwgYFtbYCBhbmQgYF1dYCBhcmUgbWV0YSBicmFja2V0cywgYW5kIGAkJGAgc3RhcnRzIGEg
bWV0YSBjb21tZW50IHRoYXQgZW5kcyB3aXRoIHRoZSBsaW5lKToKLQotYGBgCi0kdmFyIG4gPSAz
ICAgICAkJCBEZWZpbmVzIGEgbWV0YSB2YXJpYWJsZSBuLgotJHJhbmdlIGkgMC4ubiAgJCQgRGVj
bGFyZXMgdGhlIHJhbmdlIG9mIG1ldGEgaXRlcmF0b3IgaSAoaW5jbHVzaXZlKS4KLSRmb3IgaSBb
WwotICAgICAgICAgICAgICAgJCQgTWV0YSBsb29wLgotLy8gRm9vJGkgZG9lcyBibGFoIGZvciAk
aS1hcnkgcHJlZGljYXRlcy4KLSRyYW5nZSBqIDEuLmkKLXRlbXBsYXRlIDxzaXplX3QgTiAkZm9y
IGogW1ssIHR5cGVuYW1lIEEkal1dPgotY2xhc3MgRm9vJGkgewotJGlmIGkgPT0gMCBbWwotICBi
bGFoIGE7Ci1dXSAkZWxpZiBpIDw9IDIgW1sKLSAgYmxhaCBiOwotXV0gJGVsc2UgW1sKLSAgYmxh
aCBjOwotXV0KLX07Ci0KLV1dCi1gYGAKLQotd2lsbCBiZSB0cmFuc2xhdGVkIGJ5IHRoZSBQdW1w
IGNvbXBpbGVyIHRvOgotCi1gYGAKLS8vIEZvbzAgZG9lcyBibGFoIGZvciAwLWFyeSBwcmVkaWNh
dGVzLgotdGVtcGxhdGUgPHNpemVfdCBOPgotY2xhc3MgRm9vMCB7Ci0gIGJsYWggYTsKLX07Ci0K
LS8vIEZvbzEgZG9lcyBibGFoIGZvciAxLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVf
dCBOLCB0eXBlbmFtZSBBMT4KLWNsYXNzIEZvbzEgewotICBibGFoIGI7Ci19OwotCi0vLyBGb28y
IGRvZXMgYmxhaCBmb3IgMi1hcnkgcHJlZGljYXRlcy4KLXRlbXBsYXRlIDxzaXplX3QgTiwgdHlw
ZW5hbWUgQTEsIHR5cGVuYW1lIEEyPgotY2xhc3MgRm9vMiB7Ci0gIGJsYWggYjsKLX07Ci0KLS8v
IEZvbzMgZG9lcyBibGFoIGZvciAzLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBO
LCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTIsIHR5cGVuYW1lIEEzPgotY2xhc3MgRm9vMyB7Ci0g
IGJsYWggYzsKLX07Ci1gYGAKLQotSW4gYW5vdGhlciBleGFtcGxlLAotCi1gYGAKLSRyYW5nZSBp
IDEuLm4KLUZ1bmMoJGZvciBpICsgW1thJGldXSk7Ci0kJCBUaGUgdGV4dCBiZXR3ZWVuIGkgYW5k
IFtbIGlzIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiBpdGVyYXRpb25zLgotYGBgCi0KLXdpbGwgZ2Vu
ZXJhdGUgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGluZXMgKHdpdGhvdXQgdGhlIGNvbW1lbnRzKSwg
ZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBgbmA6Ci0KLWBgYAotRnVuYygpOyAgICAgICAgICAg
ICAgLy8gSWYgbiBpcyAwLgotRnVuYyhhMSk7ICAgICAgICAgICAgLy8gSWYgbiBpcyAxLgotRnVu
YyhhMSArIGEyKTsgICAgICAgLy8gSWYgbiBpcyAyLgotRnVuYyhhMSArIGEyICsgYTMpOyAgLy8g
SWYgbiBpcyAzLgotLy8gQW5kIHNvIG9uLi4uCi1gYGAKLQotIyMgQ29uc3RydWN0cyAjIwotCi1X
ZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgbWV0YSBwcm9ncmFtbWluZyBjb25zdHJ1Y3RzOgotCi18
IGAkdmFyIGlkID0gZXhwYCB8IERlZmluZXMgYSBuYW1lZCBjb25zdGFudCB2YWx1ZS4gYCRpZGAg
aXMgdmFsaWQgdXRpbCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG1ldGEgbGV4aWNhbCBibG9jay4g
fAotfDotLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLXwgYCRyYW5nZSBpZCBleHAuLmV4cGAgfCBTZXRzIHRoZSByYW5nZSBvZiBhbiBpdGVy
YXRpb24gdmFyaWFibGUsIHdoaWNoIGNhbiBiZSByZXVzZWQgaW4gbXVsdGlwbGUgbG9vcHMgbGF0
ZXIuICAgICAgICAgIHwKLXwgYCRmb3IgaWQgc2VwIFtbIGNvZGUgXV1gIHwgSXRlcmF0aW9uLiBU
aGUgcmFuZ2Ugb2YgYGlkYCBtdXN0IGhhdmUgYmVlbiBkZWZpbmVkIGVhcmxpZXIuIGAkaWRgIGlz
IHZhbGlkIGluIGBjb2RlYC4gICAgICAgICB8Ci18IGAkKCQpYCAgICAgICAgICB8IEdlbmVyYXRl
cyBhIHNpbmdsZSBgJGAgY2hhcmFjdGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgJGlkYCAgICAgICAgICAgfCBWYWx1
ZSBvZiB0aGUgbmFtZWQgY29uc3RhbnQgb3IgaXRlcmF0aW9uIHZhcmlhYmxlLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCQoZXhwKWAgICAgICAgIHwg
VmFsdWUgb2YgdGhlIGV4cHJlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGAkaWYgZXhwIFtbIGNv
ZGUgXV0gZWxzZV9icmFuY2hgIHwgQ29uZGl0aW9uYWwuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8Ci18IGBbWyBjb2RlIF1dYCAgICB8IE1ldGEgbGV4aWNhbCBibG9jay4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAotfCBgY3BwX2NvZGVgICAgICAgfCBSYXcgQysrIGNvZGUuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKLXwgYCQkIGNvbW1lbnRgICAgIHwgTWV0YSBjb21tZW50LiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci0KLSoqTm90ZToqKiBUbyBnaXZlIHRoZSB1c2VyIHNvbWUgZnJlZWRv
bSBpbiBmb3JtYXR0aW5nIHRoZSBQdW1wIHNvdXJjZQotY29kZSwgUHVtcCBpZ25vcmVzIGEgbmV3
LWxpbmUgY2hhcmFjdGVyIGlmIGl0J3MgcmlnaHQgYWZ0ZXIgYCRmb3IgZm9vYAotb3IgbmV4dCB0
byBgW1tgIG9yIGBdXWAuIFdpdGhvdXQgdGhpcyBydWxlIHlvdSdsbCBvZnRlbiBiZSBmb3JjZWQg
dG8gd3JpdGUKLXZlcnkgbG9uZyBsaW5lcyB0byBnZXQgdGhlIGRlc2lyZWQgb3V0cHV0LiBUaGVy
ZWZvcmUgc29tZXRpbWVzIHlvdSBtYXkKLW5lZWQgdG8gaW5zZXJ0IGFuIGV4dHJhIG5ldy1saW5l
IGluIHN1Y2ggcGxhY2VzIGZvciBhIG5ldy1saW5lIHRvIHNob3cKLXVwIGluIHlvdXIgb3V0cHV0
LgotCi0jIyBHcmFtbWFyICMjCi0KLWBgYAotY29kZSA6Oj0gYXRvbWljX2NvZGUqCi1hdG9taWNf
Y29kZSA6Oj0gJHZhciBpZCA9IGV4cAotICAgIHwgJHZhciBpZCA9IFtbIGNvZGUgXV0KLSAgICB8
ICRyYW5nZSBpZCBleHAuLmV4cAotICAgIHwgJGZvciBpZCBzZXAgW1sgY29kZSBdXQotICAgIHwg
JCgkKQotICAgIHwgJGlkCi0gICAgfCAkKGV4cCkKLSAgICB8ICRpZiBleHAgW1sgY29kZSBdXSBl
bHNlX2JyYW5jaAotICAgIHwgW1sgY29kZSBdXQotICAgIHwgY3BwX2NvZGUKLXNlcCA6Oj0gY3Bw
X2NvZGUgfCBlbXB0eV9zdHJpbmcKLWVsc2VfYnJhbmNoIDo6PSAkZWxzZSBbWyBjb2RlIF1dCi0g
ICAgfCAkZWxpZiBleHAgW1sgY29kZSBdXSBlbHNlX2JyYW5jaAotICAgIHwgZW1wdHlfc3RyaW5n
Ci1leHAgOjo9IHNpbXBsZV9leHByZXNzaW9uX2luX1B5dGhvbl9zeW50YXgKLWBgYAotCi0jIyBD
b2RlICMjCi0KLVlvdSBjYW4gZmluZCB0aGUgc291cmNlIGNvZGUgb2YgUHVtcCBpbiBbc2NyaXB0
cy9wdW1wLnB5XSguLi9zY3JpcHRzL3B1bXAucHkpLiBJdCBpcyBzdGlsbAotdmVyeSB1bnBvbGlz
aGVkIGFuZCBsYWNrcyBhdXRvbWF0ZWQgdGVzdHMsIGFsdGhvdWdoIGl0IGhhcyBiZWVuCi1zdWNj
ZXNzZnVsbHkgdXNlZCBtYW55IHRpbWVzLiBJZiB5b3UgZmluZCBhIGNoYW5jZSB0byB1c2UgaXQg
aW4geW91cgotcHJvamVjdCwgcGxlYXNlIGxldCB1cyBrbm93IHdoYXQgeW91IHRoaW5rISAgV2Ug
YWxzbyB3ZWxjb21lIGhlbHAgb24KLWltcHJvdmluZyBQdW1wLgotCi0jIyBSZWFsIEV4YW1wbGVz
ICMjCi0KLVlvdSBjYW4gZmluZCByZWFsLXdvcmxkIGFwcGxpY2F0aW9ucyBvZiBQdW1wIGluIFtH
b29nbGUgVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3RyZWUvbWFz
dGVyL2dvb2dsZXRlc3QpIGFuZCBbR29vZ2xlIE1vY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29n
bGUvZ29vZ2xldGVzdC90cmVlL21hc3Rlci9nb29nbGVtb2NrKS4gVGhlIHNvdXJjZSBmaWxlIGBm
b28uaC5wdW1wYCBnZW5lcmF0ZXMgYGZvby5oYC4KLQotIyMgVGlwcyAjIwotCi0gICogSWYgYSBt
ZXRhIHZhcmlhYmxlIGlzIGZvbGxvd2VkIGJ5IGEgbGV0dGVyIG9yIGRpZ2l0LCB5b3UgY2FuIHNl
cGFyYXRlIHRoZW0gdXNpbmcgYFtbXV1gLCB3aGljaCBpbnNlcnRzIGFuIGVtcHR5IHN0cmluZy4g
Rm9yIGV4YW1wbGUgYEZvbyRqW1tdXUhlbHBlcmAgZ2VuZXJhdGUgYEZvbzFIZWxwZXJgIHdoZW4g
YGpgIGlzIDEuCi0gICogVG8gYXZvaWQgZXh0cmEtbG9uZyBQdW1wIHNvdXJjZSBsaW5lcywgeW91
IGNhbiBicmVhayBhIGxpbmUgYW55d2hlcmUgeW91IHdhbnQgYnkgaW5zZXJ0aW5nIGBbW11dYCBm
b2xsb3dlZCBieSBhIG5ldyBsaW5lLiBTaW5jZSBhbnkgbmV3LWxpbmUgY2hhcmFjdGVyIG5leHQg
dG8gYFtbYCBvciBgXV1gIGlzIGlnbm9yZWQsIHRoZSBnZW5lcmF0ZWQgY29kZSB3b24ndCBjb250
YWluIHRoaXMgbmV3IGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9k
b2NzL1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUkVBRE1FLm1kCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiYzU3Yjc5OWNjZTkzM2MwMzRjMzE4NTk1OTRjYTFiODc2ODlhZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1JFQURNRS5tZApAQCAt
MCwwICsxLDQgQEAKKyMgQ29udGVudCBNb3ZlZAorCitXZSBhcmUgd29ya2luZyBvbiB1cGRhdGVz
IHRvIHRoZSBHb29nbGVUZXN0IGRvY3VtZW50YXRpb24sIHdoaWNoIGhhcyBtb3ZlZCB0bwordGhl
IHRvcC1sZXZlbCBbZG9jc10oLi4vLi4vZG9jcykgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYzYwYTMzZGFkNDNiYWY5ODM4MWY3YzlmMjBmNjliNTU4YjJhYWQwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2RvY3MvWGNvZGVHdWlkZS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLQotCi1U
aGlzIGd1aWRlIHdpbGwgZXhwbGFpbiBob3cgdG8gdXNlIHRoZSBHb29nbGUgVGVzdGluZyBGcmFt
ZXdvcmsgaW4geW91ciBYY29kZSBwcm9qZWN0cyBvbiBNYWMgT1MgWC4gVGhpcyB0dXRvcmlhbCBi
ZWdpbnMgYnkgcXVpY2tseSBleHBsYWluaW5nIHdoYXQgdG8gZG8gZm9yIGV4cGVyaWVuY2VkIHVz
ZXJzLiBBZnRlciB0aGUgcXVpY2sgc3RhcnQsIHRoZSBndWlkZSBnb2VzIHByb3ZpZGVzIGFkZGl0
aW9uYWwgZXhwbGFuYXRpb24gYWJvdXQgZWFjaCBzdGVwLgotCi0jIFF1aWNrIFN0YXJ0ICMKLQot
SGVyZSBpcyB0aGUgcXVpY2sgZ3VpZGUgZm9yIHVzaW5nIEdvb2dsZSBUZXN0IGluIHlvdXIgWGNv
ZGUgcHJvamVjdC4KLQotICAxLiBEb3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIFt3ZWJzaXRl
XShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QpIHVzaW5nIHRoaXMgY29tbWFu
ZDogYHN2biBjaGVja291dCBodHRwOi8vZ29vZ2xldGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1
bmsvIGdvb2dsZXRlc3QtcmVhZC1vbmx5YC4KLSAgMS4gT3BlbiB1cCB0aGUgYGd0ZXN0Lnhjb2Rl
cHJvamAgaW4gdGhlIGBnb29nbGV0ZXN0LXJlYWQtb25seS94Y29kZS9gIGRpcmVjdG9yeSBhbmQg
YnVpbGQgdGhlIGd0ZXN0LmZyYW1ld29yay4KLSAgMS4gQ3JlYXRlIGEgbmV3ICJTaGVsbCBUb29s
IiB0YXJnZXQgaW4geW91ciBYY29kZSBwcm9qZWN0IGNhbGxlZCBzb21ldGhpbmcgbGlrZSAiVW5p
dFRlc3RzIi4KLSAgMS4gQWRkIHRoZSBndGVzdC5mcmFtZXdvcmsgdG8geW91ciBwcm9qZWN0IGFu
ZCBhZGQgaXQgdG8gdGhlICJMaW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ug
b2YgIlVuaXRUZXN0cyIuCi0gIDEuIEFkZCB5b3VyIHVuaXQgdGVzdCBzb3VyY2UgY29kZSB0byB0
aGUgIkNvbXBpbGUgU291cmNlcyIgYnVpbGQgcGhhc2Ugb2YgIlVuaXRUZXN0cyIuCi0gIDEuIEVk
aXQgdGhlICJVbml0VGVzdHMiIGV4ZWN1dGFibGUgYW5kIGFkZCBhbiBlbnZpcm9ubWVudCB2YXJp
YWJsZSBuYW1lZCAiRFlMRFxfRlJBTUVXT1JLXF9QQVRIIiB3aXRoIGEgdmFsdWUgZXF1YWwgdG8g
dGhlIHBhdGggdG8gdGhlIGZyYW1ld29yayBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsg
cmVsYXRpdmUgdG8gdGhlIGNvbXBpbGVkIGV4ZWN1dGFibGUuCi0gIDEuIEJ1aWxkIGFuZCBHby4K
LQotVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBmdXJ0aGVyIGV4cGxhaW4gZWFjaCBvZiB0aGUgc3Rl
cHMgbGlzdGVkIGFib3ZlIGluIGRlcHRoLCBkZXNjcmliaW5nIGluIG1vcmUgZGV0YWlsIGhvdyB0
byBjb21wbGV0ZSBpdCBpbmNsdWRpbmcgc29tZSB2YXJpYXRpb25zLgotCi0jIEdldCB0aGUgU291
cmNlICMKLQotQ3VycmVudGx5LCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIGRpc2N1c3NlZCBoZXJlIGlz
bid0IGF2YWlsYWJsZSBpbiBhIHRhZ2dlZCByZWxlYXNlIG9mIEdvb2dsZSBUZXN0LCBpdCBpcyBv
bmx5IGF2YWlsYWJsZSBpbiB0aGUgdHJ1bmsuIEFzIGV4cGxhaW5lZCBhdCB0aGUgR29vZ2xlIFRl
c3QgW3NpdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdCksIHlvdSBjYW4g
Z2V0IHRoZSBjb2RlIGZyb20gYW5vbnltb3VzIFNWTiB3aXRoIHRoaXMgY29tbWFuZDoKLQotYGBg
Ci1zdm4gY2hlY2tvdXQgaHR0cDovL2dvb2dsZXRlc3QuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5r
LyBnb29nbGV0ZXN0LXJlYWQtb25seQotYGBgCi0KLUFsdGVybmF0aXZlbHksIGlmIHlvdSBhcmUg
d29ya2luZyB3aXRoIFN1YnZlcnNpb24gaW4geW91ciBvd24gY29kZSBiYXNlLCB5b3UgY2FuIGFk
ZCBHb29nbGUgVGVzdCBhcyBhbiBleHRlcm5hbCBkZXBlbmRlbmN5IHRvIHlvdXIgb3duIFN1YnZl
cnNpb24gcmVwb3NpdG9yeS4gQnkgZm9sbG93aW5nIHRoaXMgYXBwcm9hY2gsIGV2ZXJ5b25lIHRo
YXQgY2hlY2tzIG91dCB5b3VyIHN2biByZXBvc2l0b3J5IHdpbGwgYWxzbyByZWNlaXZlIGEgY29w
eSBvZiBHb29nbGUgVGVzdCAoYSBzcGVjaWZpYyB2ZXJzaW9uLCBpZiB5b3Ugd2lzaCkgd2l0aG91
dCBoYXZpbmcgdG8gY2hlY2sgaXQgb3V0IGV4cGxpY2l0bHkuIFRoaXMgbWFrZXMgdGhlIHNldCB1
cCBvZiB5b3VyIHByb2plY3Qgc2ltcGxlciBhbmQgcmVkdWNlcyB0aGUgY29waWVkIGNvZGUgaW4g
dGhlIHJlcG9zaXRvcnkuCi0KLVRvIHVzZSBgc3ZuOmV4dGVybmFsc2AsIGRlY2lkZSB3aGVyZSB5
b3Ugd291bGQgbGlrZSB0byBoYXZlIHRoZSBleHRlcm5hbCBzb3VyY2UgcmVzaWRlLiBZb3UgbWln
aHQgY2hvb3NlIHRvIHB1dCB0aGUgZXh0ZXJuYWwgc291cmNlIGluc2lkZSB0aGUgdHJ1bmssIGJl
Y2F1c2UgeW91IHdhbnQgaXQgdG8gYmUgcGFydCBvZiB0aGUgYnJhbmNoIHdoZW4geW91IG1ha2Ug
YSByZWxlYXNlLiBIb3dldmVyLCBrZWVwaW5nIGl0IG91dHNpZGUgdGhlIHRydW5rIGluIGEgdmVy
c2lvbi10YWdnZWQgZGlyZWN0b3J5IGNhbGxlZCBzb21ldGhpbmcgbGlrZSBgdGhpcmQtcGFydHkv
Z29vZ2xldGVzdC8xLjAuMWAsIGlzIGFub3RoZXIgb3B0aW9uLiBPbmNlIHRoZSBsb2NhdGlvbiBp
cyBlc3RhYmxpc2hlZCwgdXNlIGBzdm4gcHJvcGVkaXQgc3ZuOmV4dGVybmFscyBfZGlyZWN0b3J5
X2AgdG8gc2V0IHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnR5IG9uIGEgZGlyZWN0b3J5IGluIHlv
dXIgcmVwb3NpdG9yeS4gVGhpcyBkaXJlY3Rvcnkgd29uJ3QgY29udGFpbiB0aGUgY29kZSwgYnV0
IGJlIGl0cyB2ZXJzaW9uZWQgcGFyZW50IGRpcmVjdG9yeS4KLQotVGhlIGNvbW1hbmQgYHN2biBw
cm9wZWRpdGAgd2lsbCBicmluZyB1cCB5b3VyIFN1YnZlcnNpb24gZWRpdG9yLCBtYWtpbmcgZWRp
dGluZyB0aGUgbG9uZywgKHBvdGVudGlhbGx5IG11bHRpLWxpbmUpIHByb3BlcnR5IHNpbXBsZXIu
IFRoaXMgc2FtZSBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2hlY2sgb3V0IGEgdGFnZ2VkIGJyYW5j
aCwgYnkgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIFVSTCAoZS5nLiBgaHR0cHM6Ly9naXRodWIuY29t
L2dvb2dsZS9nb29nbGV0ZXN0L3JlbGVhc2VzL3RhZy9yZWxlYXNlLTEuMC4xYCkuIEFkZGl0aW9u
YWxseSwgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydHkgYWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9u
IG9mIGEgcGFydGljdWxhciByZXZpc2lvbiBvZiB0aGUgdHJ1bmsgd2l0aCB0aGUgYC1yXyMjX2Ag
b3B0aW9uIChlLmcuIGBleHRlcm5hbHMvc3JjL2dvb2dsZXRlc3QgLXI2MCBodHRwOi8vZ29vZ2xl
dGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmtgKS4KLQotSGVyZSBpcyBhbiBleGFtcGxlIG9m
IHVzaW5nIHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnRpZXMgb24gYSB0cnVuayAocmVhZCB2aWEg
YHN2biBwcm9wZ2V0YCkgb2YgYSBwcm9qZWN0LiBUaGlzIHZhbHVlIGNoZWNrcyBvdXQgYSBjb3B5
IG9mIEdvb2dsZSBUZXN0IGludG8gdGhlIGB0cnVuay9leHRlcm5hbHMvc3JjL2dvb2dsZXRlc3Qv
YCBkaXJlY3RvcnkuCi0KLWBgYAotW0NvbXB1dGVyOnN2bl0gdXNlciQgc3ZuIHByb3BnZXQgc3Zu
OmV4dGVybmFscyB0cnVuawotZXh0ZXJuYWxzL3NyYy9nb29nbGV0ZXN0IGh0dHA6Ly9nb29nbGV0
ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuawotYGBgCi0KLSMgQWRkIHRoZSBGcmFtZXdvcmsg
dG8gWW91ciBQcm9qZWN0ICMKLQotVGhlIG5leHQgc3RlcCBpcyB0byBidWlsZCBhbmQgYWRkIHRo
ZSBndGVzdC5mcmFtZXdvcmsgdG8geW91ciBvd24gcHJvamVjdC4gVGhpcyBndWlkZSBkZXNjcmli
ZXMgdHdvIGNvbW1vbiB3YXlzIGJlbG93LgotCi0gICogKipPcHRpb24gMSoqIC0tLSBUaGUgc2lt
cGxlc3Qgd2F5IHRvIGFkZCBHb29nbGUgVGVzdCB0byB5b3VyIG93biBwcm9qZWN0LCBpcyB0byBv
cGVuIGd0ZXN0Lnhjb2RlcHJvaiAoZm91bmQgaW4gdGhlIHhjb2RlLyBkaXJlY3Rvcnkgb2YgdGhl
IEdvb2dsZSBUZXN0IHRydW5rKSBhbmQgYnVpbGQgdGhlIGZyYW1ld29yayBtYW51YWxseS4gVGhl
biwgYWRkIHRoZSBidWlsdCBmcmFtZXdvcmsgaW50byB5b3VyIHByb2plY3QgdXNpbmcgdGhlICJB
ZGQtPkV4aXN0aW5nIEZyYW1ld29yay4uLiIgZnJvbSB0aGUgY29udGV4dCBtZW51IG9yICJQcm9q
ZWN0LT5BZGQuLi4iIGZyb20gdGhlIG1haW4gbWVudS4gVGhlIGd0ZXN0LmZyYW1ld29yayBpcyBy
ZWxvY2F0YWJsZSBhbmQgY29udGFpbnMgdGhlIGhlYWRlcnMgYW5kIG9iamVjdCBjb2RlIHRoYXQg
eW91J2xsIG5lZWQgdG8gbWFrZSB0ZXN0cy4gVGhpcyBtZXRob2QgcmVxdWlyZXMgcmVidWlsZGlu
ZyBldmVyeSB0aW1lIHlvdSB1cGdyYWRlIEdvb2dsZSBUZXN0IGluIHlvdXIgcHJvamVjdC4KLSAg
KiAqKk9wdGlvbiAyKiogLS0tIElmIHlvdSBhcmUgZ29pbmcgdG8gYmUgbGl2aW5nIG9mZiB0aGUg
dHJ1bmsgb2YgR29vZ2xlIFRlc3QsIGluY29ycG9yYXRpbmcgaXRzIGxhdGVzdCBmZWF0dXJlcyBp
bnRvIHlvdXIgdW5pdCB0ZXN0cyAob3IgYXJlIGEgR29vZ2xlIFRlc3QgZGV2ZWxvcGVyIHlvdXJz
ZWxmKS4gWW91J2xsIHdhbnQgdG8gcmVidWlsZCB0aGUgZnJhbWV3b3JrIGV2ZXJ5IHRpbWUgdGhl
IHNvdXJjZSB1cGRhdGVzLiB0byBkbyB0aGlzLCB5b3UnbGwgbmVlZCB0byBhZGQgdGhlIGd0ZXN0
Lnhjb2RlcHJvaiBmaWxlLCBub3QgdGhlIGZyYW1ld29yayBpdHNlbGYsIHRvIHlvdXIgb3duIFhj
b2RlIHByb2plY3QuIFRoZW4sIGZyb20gdGhlIGJ1aWxkIHByb2R1Y3RzIHRoYXQgYXJlIHJldmVh
bGVkIGJ5IHRoZSBwcm9qZWN0J3MgZGlzY2xvc3VyZSB0cmlhbmdsZSwgeW91IGNhbiBmaW5kIHRo
ZSBndGVzdC5mcmFtZXdvcmssIHdoaWNoIGNhbiBiZSBhZGRlZCB0byB5b3VyIHRhcmdldHMgKGRp
c2N1c3NlZCBiZWxvdykuCi0KLSMgTWFrZSBhIFRlc3QgVGFyZ2V0ICMKLQotVG8gc3RhcnQgd3Jp
dGluZyB0ZXN0cywgbWFrZSBhIG5ldyAiU2hlbGwgVG9vbCIgdGFyZ2V0LiBUaGlzIHRhcmdldCB0
ZW1wbGF0ZSBpcyBhdmFpbGFibGUgdW5kZXIgQlNELCBDb2NvYSwgb3IgQ2FyYm9uLiBBZGQgeW91
ciB1bml0IHRlc3Qgc291cmNlIGNvZGUgdG8gdGhlICJDb21waWxlIFNvdXJjZXMiIGJ1aWxkIHBo
YXNlIG9mIHRoZSB0YXJnZXQuCi0KLU5leHQsIHlvdSdsbCB3YW50IHRvIGFkZCBndGVzdC5mcmFt
ZXdvcmsgaW4gdHdvIGRpZmZlcmVudCB3YXlzLCBkZXBlbmRpbmcgdXBvbiB3aGljaCBvcHRpb24g
eW91IGNob3NlIGFib3ZlLgotCi0gICogKipPcHRpb24gMSoqIC0tLSBEdXJpbmcgY29tcGlsYXRp
b24sIFhjb2RlIHdpbGwgbmVlZCB0byBrbm93IHRoYXQgeW91IGFyZSBsaW5raW5nIGFnYWluc3Qg
dGhlIGd0ZXN0LmZyYW1ld29yay4gQWRkIHRoZSBndGVzdC5mcmFtZXdvcmsgdG8gdGhlICJMaW5r
IEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ugb2YgeW91ciB0ZXN0IHRhcmdldC4g
VGhpcyB3aWxsIGluY2x1ZGUgdGhlIEdvb2dsZSBUZXN0IGhlYWRlcnMgaW4geW91ciBoZWFkZXIg
c2VhcmNoIHBhdGgsIGFuZCB3aWxsIHRlbGwgdGhlIGxpbmtlciB3aGVyZSB0byBmaW5kIHRoZSBs
aWJyYXJ5LgotICAqICoqT3B0aW9uIDIqKiAtLS0gSWYgeW91ciB3b3JraW5nIG91dCBvZiB0aGUg
dHJ1bmssIHlvdSdsbCBhbHNvIHdhbnQgdG8gYWRkIGd0ZXN0LmZyYW1ld29yayB0byB5b3VyICJM
aW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ugb2YgeW91ciB0ZXN0IHRhcmdl
dC4gSW4gYWRkaXRpb24sIHlvdSdsbCAgd2FudCB0byBhZGQgdGhlIGd0ZXN0LmZyYW1ld29yayBh
cyBhIGRlcGVuZGVuY3kgdG8geW91ciB1bml0IHRlc3QgdGFyZ2V0LiBUaGlzIHdheSwgWGNvZGUg
d2lsbCBtYWtlIHN1cmUgdGhhdCBndGVzdC5mcmFtZXdvcmsgaXMgdXAgdG8gZGF0ZSwgZXZlcnkg
dGltZSB5b3VyIGJ1aWxkIHlvdXIgdGFyZ2V0LiBGaW5hbGx5LCBpZiB5b3UgZG9uJ3Qgc2hhcmUg
YnVpbGQgZGlyZWN0b3JpZXMgd2l0aCBHb29nbGUgVGVzdCwgeW91J2xsIGhhdmUgdG8gY29weSB0
aGUgZ3Rlc3QuZnJhbWV3b3JrIGludG8geW91ciBvd24gYnVpbGQgcHJvZHVjdHMgZGlyZWN0b3J5
IHVzaW5nIGEgIlJ1biBTY3JpcHQiIGJ1aWxkIHBoYXNlLgotCi0jIFNldCBVcCB0aGUgRXhlY3V0
YWJsZSBSdW4gRW52aXJvbm1lbnQgIwotCi1TaW5jZSB0aGUgdW5pdCB0ZXN0IGV4ZWN1dGFibGUg
aXMgYSBzaGVsbCB0b29sLCBpdCBkb2Vzbid0IGhhdmUgYSBidW5kbGUgd2l0aCBhIGBDb250ZW50
cy9GcmFtZXdvcmtzYCBkaXJlY3RvcnksIGluIHdoaWNoIHRvIHBsYWNlIGd0ZXN0LmZyYW1ld29y
ay4gSW5zdGVhZCwgdGhlIGR5bmFtaWMgbGlua2VyIG11c3QgYmUgdG9sZCBhdCBydW50aW1lIHRv
IHNlYXJjaCBmb3IgdGhlIGZyYW1ld29yayBpbiBhbm90aGVyIGxvY2F0aW9uLiBUaGlzIGNhbiBi
ZSBhY2NvbXBsaXNoZWQgYnkgc2V0dGluZyB0aGUgIkRZTERcX0ZSQU1FV09SS1xfUEFUSCIgZW52
aXJvbm1lbnQgdmFyaWFibGUgaW4gdGhlICJFZGl0IEFjdGl2ZSBFeGVjdXRhYmxlIC4uLiIgQXJn
dW1lbnRzIHRhYiwgdW5kZXIgIlZhcmlhYmxlcyB0byBiZSBzZXQgaW4gdGhlIGVudmlyb25tZW50
OiIuIFRoZSBwYXRoIGZvciB0aGlzIHZhbHVlIGlzIHRoZSBwYXRoIChyZWxhdGl2ZSBvciBhYnNv
bHV0ZSkgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsuCi0K
LUlmIHlvdSBoYXZlbid0IHNldCB1cCB0aGUgRFlMRFxfRlJBTUVXT1JLXF9QQVRILCBjb3JyZWN0
bHksIHlvdSBtaWdodCBnZXQgYSBtZXNzYWdlIGxpa2UgdGhpczoKLQotYGBgCi1bU2Vzc2lvbiBz
dGFydGVkIGF0IDIwMDgtMDgtMTUgMDY6MjM6NTcgLTA2MDAuXQotICBkeWxkOiBMaWJyYXJ5IG5v
dCBsb2FkZWQ6IEBsb2FkZXJfcGF0aC8uLi9GcmFtZXdvcmtzL2d0ZXN0LmZyYW1ld29yay9WZXJz
aW9ucy9BL2d0ZXN0Ci0gICAgUmVmZXJlbmNlZCBmcm9tOiAvVXNlcnMvdXNlcm5hbWUvRG9jdW1l
bnRzL1NhbmRib3gvZ3Rlc3RTYW1wbGUvYnVpbGQvRGVidWcvV2lkZ2V0RnJhbWV3b3JrVGVzdAot
ICAgIFJlYXNvbjogaW1hZ2Ugbm90IGZvdW5kCi1gYGAKLQotVG8gY29ycmVjdCB0aGlzIHByb2Js
ZW0sIGdvIHRvIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZXhlY3V0YWJsZSBuYW1l
ZCBpbiAiUmVmZXJlbmNlZCBmcm9tOiIgdmFsdWUgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYWJvdmUu
IFRoZW4sIHdpdGggdGhlIHRlcm1pbmFsIGluIHRoaXMgbG9jYXRpb24sIGZpbmQgdGhlIHJlbGF0
aXZlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsu
IFRoYXQgaXMgdGhlIHZhbHVlIHlvdSdsbCBuZWVkIHRvIHNldCBhcyB0aGUgRFlMRFxfRlJBTUVX
T1JLXF9QQVRILgotCi0jIEJ1aWxkIGFuZCBHbyAjCi0KLU5vdywgd2hlbiB5b3UgY2xpY2sgIkJ1
aWxkIGFuZCBHbyIsIHRoZSB0ZXN0IHdpbGwgYmUgZXhlY3V0ZWQuIER1bXBpbmcgb3V0IHNvbWV0
aGluZyBsaWtlIHRoaXM6Ci0KLWBgYAotW1Nlc3Npb24gc3RhcnRlZCBhdCAyMDA4LTA4LTA2IDA2
OjM2OjEzIC0wNjAwLl0KLVs9PT09PT09PT09XSBSdW5uaW5nIDIgdGVzdHMgZnJvbSAxIHRlc3Qg
Y2FzZS4KLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCi1bLS0t
LS0tLS0tLV0gMiB0ZXN0cyBmcm9tIFdpZGdldEluaXRpYWxpemVyVGVzdAotWyBSVU4gICAgICBd
IFdpZGdldEluaXRpYWxpemVyVGVzdC5UZXN0Q29uc3RydWN0b3IKLVsgICAgICAgT0sgXSBXaWRn
ZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnN0cnVjdG9yCi1bIFJVTiAgICAgIF0gV2lkZ2V0SW5p
dGlhbGl6ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bICAgICAgIE9LIF0gV2lkZ2V0SW5pdGlhbGl6
ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1l
bnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gMiB0ZXN0cyBmcm9tIDEgdGVzdCBjYXNlIHJhbi4K
LVsgIFBBU1NFRCAgXSAyIHRlc3RzLgotCi1UaGUgRGVidWdnZXIgaGFzIGV4aXRlZCB3aXRoIHN0
YXR1cyAwLiAgCi1gYGAKLQotIyBTdW1tYXJ5ICMKLQotVW5pdCB0ZXN0aW5nIGlzIGEgdmFsdWFi
bGUgd2F5IHRvIGVuc3VyZSB5b3VyIGRhdGEgbW9kZWwgc3RheXMgdmFsaWQgZXZlbiBkdXJpbmcg
cmFwaWQgZGV2ZWxvcG1lbnQgb3IgcmVmYWN0b3JpbmcuIFRoZSBHb29nbGUgVGVzdGluZyBGcmFt
ZXdvcmsgaXMgYSBncmVhdCB1bml0IHRlc3RpbmcgZnJhbWV3b3JrIGZvciBDIGFuZCBDKysgd2hp
Y2ggaW50ZWdyYXRlcyB3ZWxsIHdpdGggYW4gWGNvZGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9hZHZhbmNlZC5tZApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODA2NWQxOTYyMWE4YjM3ZmI3OGNiNWUwZWQxYjg2MThmZTc2MjVkMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMjUyMCAr
MCwwIEBACi0jIEFkdmFuY2VkIGdvb2dsZXRlc3QgVG9waWNzCi0KLQotIyMgSW50cm9kdWN0aW9u
Ci0KLU5vdyB0aGF0IHlvdSBoYXZlIHJlYWQgdGhlIFtnb29nbGV0ZXN0IFByaW1lcl0ocHJpbWVy
Lm1kKSBhbmQgbGVhcm5lZCBob3cgdG8gd3JpdGUKLXRlc3RzIHVzaW5nIGdvb2dsZXRlc3QsIGl0
J3MgdGltZSB0byBsZWFybiBzb21lIG5ldyB0cmlja3MuIFRoaXMgZG9jdW1lbnQgd2lsbAotc2hv
dyB5b3UgbW9yZSBhc3NlcnRpb25zIGFzIHdlbGwgYXMgaG93IHRvIGNvbnN0cnVjdCBjb21wbGV4
IGZhaWx1cmUgbWVzc2FnZXMsCi1wcm9wYWdhdGUgZmF0YWwgZmFpbHVyZXMsIHJldXNlIGFuZCBz
cGVlZCB1cCB5b3VyIHRlc3QgZml4dHVyZXMsIGFuZCB1c2UgdmFyaW91cwotZmxhZ3Mgd2l0aCB5
b3VyIHRlc3RzLgotCi0jIyBNb3JlIEFzc2VydGlvbnMKLQotVGhpcyBzZWN0aW9uIGNvdmVycyBz
b21lIGxlc3MgZnJlcXVlbnRseSB1c2VkLCBidXQgc3RpbGwgc2lnbmlmaWNhbnQsCi1hc3NlcnRp
b25zLgotCi0jIyMgRXhwbGljaXQgU3VjY2VzcyBhbmQgRmFpbHVyZQotCi1UaGVzZSB0aHJlZSBh
c3NlcnRpb25zIGRvIG5vdCBhY3R1YWxseSB0ZXN0IGEgdmFsdWUgb3IgZXhwcmVzc2lvbi4gSW5z
dGVhZCwgdGhleQotZ2VuZXJhdGUgYSBzdWNjZXNzIG9yIGZhaWx1cmUgZGlyZWN0bHkuIExpa2Ug
dGhlIG1hY3JvcyB0aGF0IGFjdHVhbGx5IHBlcmZvcm0gYQotdGVzdCwgeW91IG1heSBzdHJlYW0g
YSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIGludG8gdGhlbS4KLQotYGBgYysrCi1TVUNDRUVEKCk7
Ci1gYGAKLQotR2VuZXJhdGVzIGEgc3VjY2Vzcy4gVGhpcyBkb2VzICoqTk9UKiogbWFrZSB0aGUg
b3ZlcmFsbCB0ZXN0IHN1Y2NlZWQuIEEgdGVzdCBpcwotY29uc2lkZXJlZCBzdWNjZXNzZnVsIG9u
bHkgaWYgbm9uZSBvZiBpdHMgYXNzZXJ0aW9ucyBmYWlsIGR1cmluZyBpdHMgZXhlY3V0aW9uLgot
Ci1OT1RFOiBgU1VDQ0VFRCgpYCBpcyBwdXJlbHkgZG9jdW1lbnRhcnkgYW5kIGN1cnJlbnRseSBk
b2Vzbid0IGdlbmVyYXRlIGFueQotdXNlci12aXNpYmxlIG91dHB1dC4gSG93ZXZlciwgd2UgbWF5
IGFkZCBgU1VDQ0VFRCgpYCBtZXNzYWdlcyB0byBnb29nbGV0ZXN0J3MKLW91dHB1dCBpbiB0aGUg
ZnV0dXJlLgotCi1gYGBjKysKLUZBSUwoKTsKLUFERF9GQUlMVVJFKCk7Ci1BRERfRkFJTFVSRV9B
VCgiZmlsZV9wYXRoIiwgbGluZV9udW1iZXIpOwotYGBgCi0KLWBGQUlMKClgIGdlbmVyYXRlcyBh
IGZhdGFsIGZhaWx1cmUsIHdoaWxlIGBBRERfRkFJTFVSRSgpYCBhbmQgYEFERF9GQUlMVVJFX0FU
KClgCi1nZW5lcmF0ZSBhIG5vbmZhdGFsIGZhaWx1cmUuIFRoZXNlIGFyZSB1c2VmdWwgd2hlbiBj
b250cm9sIGZsb3csIHJhdGhlciB0aGFuIGEKLUJvb2xlYW4gZXhwcmVzc2lvbiwgZGV0ZXJtaW5l
cyB0aGUgdGVzdCdzIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gRm9yIGV4YW1wbGUsIHlvdQotbWlnaHQg
d2FudCB0byB3cml0ZSBzb21ldGhpbmcgbGlrZToKLQotYGBgYysrCi1zd2l0Y2goZXhwcmVzc2lv
bikgewotICBjYXNlIDE6Ci0gICAgIC4uLiBzb21lIGNoZWNrcyAuLi4KLSAgY2FzZSAyOgotICAg
ICAuLi4gc29tZSBvdGhlciBjaGVja3MgLi4uCi0gIGRlZmF1bHQ6Ci0gICAgIEZBSUwoKSA8PCAi
V2Ugc2hvdWxkbid0IGdldCBoZXJlLiI7Ci19Ci1gYGAKLQotTk9URTogeW91IGNhbiBvbmx5IHVz
ZSBgRkFJTCgpYCBpbiBmdW5jdGlvbnMgdGhhdCByZXR1cm4gYHZvaWRgLiBTZWUgdGhlCi1bQXNz
ZXJ0aW9uIFBsYWNlbWVudCBzZWN0aW9uXSgjYXNzZXJ0aW9uLXBsYWNlbWVudCkgZm9yIG1vcmUg
aW5mb3JtYXRpb24uCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0K
LSMjIyBFeGNlcHRpb24gQXNzZXJ0aW9ucwotCi1UaGVzZSBhcmUgZm9yIHZlcmlmeWluZyB0aGF0
IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgKG9yIGRvZXMgbm90IHRocm93KSBhbgotZXhjZXB0aW9u
IG9mIHRoZSBnaXZlbiB0eXBlOgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgfCBW
ZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NF
UlRfVEhST1coc3RhdGVtZW50LCBleGNlcHRpb25fdHlwZSk7YCB8IGBFWFBFQ1RfVEhST1coc3Rh
dGVtZW50LCBleGNlcHRpb25fdHlwZSk7YCB8IGBzdGF0ZW1lbnRgIHRocm93cyBhbiBleGNlcHRp
b24gb2YgdGhlIGdpdmVuIHR5cGUKLWBBU1NFUlRfQU5ZX1RIUk9XKHN0YXRlbWVudCk7YCAgICAg
ICAgICAgICB8IGBFWFBFQ1RfQU5ZX1RIUk9XKHN0YXRlbWVudCk7YCAgICAgICAgICAgICB8IGBz
dGF0ZW1lbnRgIHRocm93cyBhbiBleGNlcHRpb24gb2YgYW55IHR5cGUKLWBBU1NFUlRfTk9fVEhS
T1coc3RhdGVtZW50KTtgICAgICAgICAgICAgICB8IGBFWFBFQ1RfTk9fVEhST1coc3RhdGVtZW50
KTtgICAgICAgICAgICAgICB8IGBzdGF0ZW1lbnRgIGRvZXNuJ3QgdGhyb3cgYW55IGV4Y2VwdGlv
bgotCi1FeGFtcGxlczoKLQotYGBgYysrCi1BU1NFUlRfVEhST1coRm9vKDUpLCBiYXJfZXhjZXB0
aW9uKTsKLQotRVhQRUNUX05PX1RIUk9XKHsKLSAgaW50IG4gPSA1OwotICBCYXIoJm4pOwotfSk7
Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYzsgcmVxdWlyZXMg
ZXhjZXB0aW9ucyB0byBiZSBlbmFibGVkIGluIHRoZQotYnVpbGQgZW52aXJvbm1lbnQgKG5vdGUg
dGhhdCBgZ29vZ2xlM2AgKipkaXNhYmxlcyoqIGV4Y2VwdGlvbnMpLgotCi0jIyMgUHJlZGljYXRl
IEFzc2VydGlvbnMgZm9yIEJldHRlciBFcnJvciBNZXNzYWdlcwotCi1FdmVuIHRob3VnaCBnb29n
bGV0ZXN0IGhhcyBhIHJpY2ggc2V0IG9mIGFzc2VydGlvbnMsIHRoZXkgY2FuIG5ldmVyIGJlIGNv
bXBsZXRlLAotYXMgaXQncyBpbXBvc3NpYmxlIChub3IgYSBnb29kIGlkZWEpIHRvIGFudGljaXBh
dGUgYWxsIHNjZW5hcmlvcyBhIHVzZXIgbWlnaHQKLXJ1biBpbnRvLiBUaGVyZWZvcmUsIHNvbWV0
aW1lcyBhIHVzZXIgaGFzIHRvIHVzZSBgRVhQRUNUX1RSVUUoKWAgdG8gY2hlY2sgYQotY29tcGxl
eCBleHByZXNzaW9uLCBmb3IgbGFjayBvZiBhIGJldHRlciBtYWNyby4gVGhpcyBoYXMgdGhlIHBy
b2JsZW0gb2Ygbm90Ci1zaG93aW5nIHlvdSB0aGUgdmFsdWVzIG9mIHRoZSBwYXJ0cyBvZiB0aGUg
ZXhwcmVzc2lvbiwgbWFraW5nIGl0IGhhcmQgdG8KLXVuZGVyc3RhbmQgd2hhdCB3ZW50IHdyb25n
LiBBcyBhIHdvcmthcm91bmQsIHNvbWUgdXNlcnMgY2hvb3NlIHRvIGNvbnN0cnVjdCB0aGUKLWZh
aWx1cmUgbWVzc2FnZSBieSB0aGVtc2VsdmVzLCBzdHJlYW1pbmcgaXQgaW50byBgRVhQRUNUX1RS
VUUoKWAuIEhvd2V2ZXIsIHRoaXMKLWlzIGF3a3dhcmQgZXNwZWNpYWxseSB3aGVuIHRoZSBleHBy
ZXNzaW9uIGhhcyBzaWRlLWVmZmVjdHMgb3IgaXMgZXhwZW5zaXZlIHRvCi1ldmFsdWF0ZS4KLQot
Z29vZ2xldGVzdCBnaXZlcyB5b3UgdGhyZWUgZGlmZmVyZW50IG9wdGlvbnMgdG8gc29sdmUgdGhp
cyBwcm9ibGVtOgotCi0jIyMjIFVzaW5nIGFuIEV4aXN0aW5nIEJvb2xlYW4gRnVuY3Rpb24KLQot
SWYgeW91IGFscmVhZHkgaGF2ZSBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCByZXR1cm5zIGBi
b29sYCAob3IgYSB0eXBlIHRoYXQKLWNhbiBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBgYm9v
bGApLCB5b3UgY2FuIHVzZSBpdCBpbiBhICpwcmVkaWNhdGUKLWFzc2VydGlvbiogdG8gZ2V0IHRo
ZSBmdW5jdGlvbiBhcmd1bWVudHMgcHJpbnRlZCBmb3IgZnJlZToKLQotfCBGYXRhbCBhc3NlcnRp
b24gICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAg
ICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFTU0VSVF9QUkVEMShwcmVkMSwgdmFsMSk7
YCAgICAgICB8IGBFWFBFQ1RfUFJFRDEocHJlZDEsIHZhbDEpO2AgICAgICAgfCBgcHJlZDEodmFs
MSlgIGlzIHRydWUgICAgICAgfAotfCBgQVNTRVJUX1BSRUQyKHByZWQyLCB2YWwxLCB2YWwyKTtg
IHwgYEVYUEVDVF9QUkVEMihwcmVkMiwgdmFsMSwgdmFsMik7YCB8IGBwcmVkMih2YWwxLCB2YWwy
KWAgaXMgdHJ1ZSB8Ci18IGAuLi5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgLi4u
YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg
ICAgIHwKLQotSW4gdGhlIGFib3ZlLCBgcHJlZG5gIGlzIGFuIGBuYC1hcnkgcHJlZGljYXRlIGZ1
bmN0aW9uIG9yIGZ1bmN0b3IsIHdoZXJlIGB2YWwxYCwKLWB2YWwyYCwgLi4uLCBhbmQgYHZhbG5g
IGFyZSBpdHMgYXJndW1lbnRzLiBUaGUgYXNzZXJ0aW9uIHN1Y2NlZWRzIGlmIHRoZQotcHJlZGlj
YXRlIHJldHVybnMgYHRydWVgIHdoZW4gYXBwbGllZCB0byB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBh
bmQgZmFpbHMKLW90aGVyd2lzZS4gV2hlbiB0aGUgYXNzZXJ0aW9uIGZhaWxzLCBpdCBwcmludHMg
dGhlIHZhbHVlIG9mIGVhY2ggYXJndW1lbnQuIEluCi1laXRoZXIgY2FzZSwgdGhlIGFyZ3VtZW50
cyBhcmUgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4KLQotSGVyZSdzIGFuIGV4YW1wbGUuIEdpdmVu
Ci0KLWBgYGMrKwotLy8gUmV0dXJucyB0cnVlIGlmIG0gYW5kIG4gaGF2ZSBubyBjb21tb24gZGl2
aXNvcnMgZXhjZXB0IDEuCi1ib29sIE11dHVhbGx5UHJpbWUoaW50IG0sIGludCBuKSB7IC4uLiB9
Ci0KLWNvbnN0IGludCBhID0gMzsKLWNvbnN0IGludCBiID0gNDsKLWNvbnN0IGludCBjID0gMTA7
Ci1gYGAKLQotdGhlIGFzc2VydGlvbgotCi1gYGBjKysKLSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5
UHJpbWUsIGEsIGIpOwotYGBgCi0KLXdpbGwgc3VjY2VlZCwgd2hpbGUgdGhlIGFzc2VydGlvbgot
Ci1gYGBjKysKLSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5UHJpbWUsIGIsIGMpOwotYGBgCi0KLXdp
bGwgZmFpbCB3aXRoIHRoZSBtZXNzYWdlCi0KLWBgYG5vbmUKLU11dHVhbGx5UHJpbWUoYiwgYykg
aXMgZmFsc2UsIHdoZXJlCi1iIGlzIDQKLWMgaXMgMTAKLWBgYAotCi0+IE5PVEU6Ci0+Ci0+IDEu
ICBJZiB5b3Ugc2VlIGEgY29tcGlsZXIgZXJyb3IgIm5vIG1hdGNoaW5nIGZ1bmN0aW9uIHRvIGNh
bGwiIHdoZW4gdXNpbmcKLT4gICAgIGBBU1NFUlRfUFJFRCpgIG9yIGBFWFBFQ1RfUFJFRCpgLCBw
bGVhc2Ugc2VlCi0+ICAgICBbdGhpc10oZmFxLm1kI092ZXJsb2FkZWRQcmVkaWNhdGUpIGZvciBo
b3cgdG8gcmVzb2x2ZSBpdC4KLT4gMS4gIEN1cnJlbnRseSB3ZSBvbmx5IHByb3ZpZGUgcHJlZGlj
YXRlIGFzc2VydGlvbnMgb2YgYXJpdHkgPD0gNS4gSWYgeW91IG5lZWQKLT4gICAgIGEgaGlnaGVy
LWFyaXR5IGFzc2VydGlvbiwgbGV0IFt1c10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29n
bGV0ZXN0L2lzc3Vlcykga25vdy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotIyMjIyBVc2luZyBhIEZ1bmN0aW9uIFRoYXQgUmV0dXJucyBhbiBBc3NlcnRpb25S
ZXN1bHQKLQotV2hpbGUgYEVYUEVDVF9QUkVEKigpYCBhbmQgZnJpZW5kcyBhcmUgaGFuZHkgZm9y
IGEgcXVpY2sgam9iLCB0aGUgc3ludGF4IGlzIG5vdAotc2F0aXNmYWN0b3J5OiB5b3UgaGF2ZSB0
byB1c2UgZGlmZmVyZW50IG1hY3JvcyBmb3IgZGlmZmVyZW50IGFyaXRpZXMsIGFuZCBpdAotZmVl
bHMgbW9yZSBsaWtlIExpc3AgdGhhbiBDKysuIFRoZSBgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1
bHRgIGNsYXNzIHNvbHZlcwotdGhpcyBwcm9ibGVtLgotCi1BbiBgQXNzZXJ0aW9uUmVzdWx0YCBv
YmplY3QgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIGFuIGFzc2VydGlvbiAod2hldGhlciBpdCdz
Ci1hIHN1Y2Nlc3Mgb3IgYSBmYWlsdXJlLCBhbmQgYW4gYXNzb2NpYXRlZCBtZXNzYWdlKS4gWW91
IGNhbiBjcmVhdGUgYW4KLWBBc3NlcnRpb25SZXN1bHRgIHVzaW5nIG9uZSBvZiB0aGVzZSBmYWN0
b3J5IGZ1bmN0aW9uczoKLQotYGBgYysrCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIFJldHVy
bnMgYW4gQXNzZXJ0aW9uUmVzdWx0IG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0IGFuIGFzc2VydGlv
biBoYXMKLS8vIHN1Y2NlZWRlZC4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25TdWNjZXNzKCk7
Ci0KLS8vIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0
IGFuIGFzc2VydGlvbiBoYXMKLS8vIGZhaWxlZC4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25G
YWlsdXJlKCk7Ci0KLX0KLWBgYAotCi1Zb3UgY2FuIHRoZW4gdXNlIHRoZSBgPDxgIG9wZXJhdG9y
IHRvIHN0cmVhbSBtZXNzYWdlcyB0byB0aGUgYEFzc2VydGlvblJlc3VsdGAKLW9iamVjdC4KLQot
VG8gcHJvdmlkZSBtb3JlIHJlYWRhYmxlIG1lc3NhZ2VzIGluIEJvb2xlYW4gYXNzZXJ0aW9ucyAo
ZS5nLiBgRVhQRUNUX1RSVUUoKWApLAotd3JpdGUgYSBwcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBy
ZXR1cm5zIGBBc3NlcnRpb25SZXN1bHRgIGluc3RlYWQgb2YgYGJvb2xgLiBGb3IKLWV4YW1wbGUs
IGlmIHlvdSBkZWZpbmUgYElzRXZlbigpYCBhczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkFzc2Vy
dGlvblJlc3VsdCBJc0V2ZW4oaW50IG4pIHsKLSAgaWYgKChuICUgMikgPT0gMCkKLSAgICAgcmV0
dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOwotICBlbHNlCi0gICAgIHJldHVybiA6
OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCBuIDw8ICIgaXMgb2RkIjsKLX0KLWBgYAot
Ci1pbnN0ZWFkIG9mOgotCi1gYGBjKysKLWJvb2wgSXNFdmVuKGludCBuKSB7Ci0gIHJldHVybiAo
biAlIDIpID09IDA7Ci19Ci1gYGAKLQotdGhlIGZhaWxlZCBhc3NlcnRpb24gYEVYUEVDVF9UUlVF
KElzRXZlbihGaWIoNCkpKWAgd2lsbCBwcmludDoKLQotYGBgbm9uZQotVmFsdWUgb2Y6IElzRXZl
bihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UgKDMgaXMgb2RkKQotRXhwZWN0ZWQ6IHRydWUKLWBg
YAotCi1pbnN0ZWFkIG9mIGEgbW9yZSBvcGFxdWUKLQotYGBgbm9uZQotVmFsdWUgb2Y6IElzRXZl
bihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UKLUV4cGVjdGVkOiB0cnVlCi1gYGAKLQotSWYgeW91
IHdhbnQgaW5mb3JtYXRpdmUgbWVzc2FnZXMgaW4gYEVYUEVDVF9GQUxTRWAgYW5kIGBBU1NFUlRf
RkFMU0VgIGFzIHdlbGwKLShvbmUgdGhpcmQgb2YgQm9vbGVhbiBhc3NlcnRpb25zIGluIHRoZSBH
b29nbGUgY29kZSBiYXNlIGFyZSBuZWdhdGl2ZSBvbmVzKSwgYW5kCi1hcmUgZmluZSB3aXRoIG1h
a2luZyB0aGUgcHJlZGljYXRlIHNsb3dlciBpbiB0aGUgc3VjY2VzcyBjYXNlLCB5b3UgY2FuIHN1
cHBseSBhCi1zdWNjZXNzIG1lc3NhZ2U6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpBc3NlcnRpb25S
ZXN1bHQgSXNFdmVuKGludCBuKSB7Ci0gIGlmICgobiAlIDIpID09IDApCi0gICAgIHJldHVybiA6
OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKSA8PCBuIDw8ICIgaXMgZXZlbiI7Ci0gIGVsc2UK
LSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBv
ZGQiOwotfQotYGBgCi0KLVRoZW4gdGhlIHN0YXRlbWVudCBgRVhQRUNUX0ZBTFNFKElzRXZlbihG
aWIoNikpKWAgd2lsbCBwcmludAotCi1gYGBub25lCi0gIFZhbHVlIG9mOiBJc0V2ZW4oRmliKDYp
KQotICAgICBBY3R1YWw6IHRydWUgKDggaXMgZXZlbikKLSAgRXhwZWN0ZWQ6IGZhbHNlCi1gYGAK
LQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBVc2luZyBh
IFByZWRpY2F0ZS1Gb3JtYXR0ZXIKLQotSWYgeW91IGZpbmQgdGhlIGRlZmF1bHQgbWVzc2FnZSBn
ZW5lcmF0ZWQgYnkgYChBU1NFUlR8RVhQRUNUKV9QUkVEKmAgYW5kCi1gKEFTU0VSVHxFWFBFQ1Qp
XyhUUlVFfEZBTFNFKWAgdW5zYXRpc2ZhY3RvcnksIG9yIHNvbWUgYXJndW1lbnRzIHRvIHlvdXIK
LXByZWRpY2F0ZSBkbyBub3Qgc3VwcG9ydCBzdHJlYW1pbmcgdG8gYG9zdHJlYW1gLCB5b3UgY2Fu
IGluc3RlYWQgdXNlIHRoZQotZm9sbG93aW5nICpwcmVkaWNhdGUtZm9ybWF0dGVyIGFzc2VydGlv
bnMqIHRvICpmdWxseSogY3VzdG9taXplIGhvdyB0aGUgbWVzc2FnZQotaXMgZm9ybWF0dGVkOgot
Ci1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25m
YXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBB
U1NFUlRfUFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwgdmFsMSk7YCAgICAgICB8IGBFWFBFQ1Rf
UFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwgdmFsMSk7YCAgICAgICB8IGBwcmVkX2Zvcm1hdDEo
dmFsMSlgIGlzIHN1Y2Nlc3NmdWwKLWBBU1NFUlRfUFJFRF9GT1JNQVQyKHByZWRfZm9ybWF0Miwg
dmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfUFJFRF9GT1JNQVQyKHByZWRfZm9ybWF0MiwgdmFsMSwg
dmFsMik7YCB8IGBwcmVkX2Zvcm1hdDIodmFsMSwgdmFsMilgIGlzIHN1Y2Nlc3NmdWwKLWAuLi5g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGAuLi5gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC4uLgotCi1UaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIHRoZSBwcmV2aW91cyBncm91cCBvZiBtYWNyb3MgaXMgdGhh
dCBpbnN0ZWFkIG9mCi1hIHByZWRpY2F0ZSwgYChBU1NFUlR8RVhQRUNUKV9QUkVEX0ZPUk1BVCpg
IHRha2UgYSAqcHJlZGljYXRlLWZvcm1hdHRlcioKLShgcHJlZF9mb3JtYXRuYCksIHdoaWNoIGlz
IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB3aXRoIHRoZSBzaWduYXR1cmU6Ci0KLWBgYGMrKwotOjp0
ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgUHJlZGljYXRlRm9ybWF0dGVybihjb25zdCBjaGFyKiBl
eHByMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiBleHBybiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVDEgdmFsMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVDIgdmFsMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRuIHZhbG4pOwotYGBgCi0KLXdoZXJlIGB2YWwxYCwgYHZhbDJgLCAuLi4sIGFuZCBg
dmFsbmAgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIHByZWRpY2F0ZSBhcmd1bWVudHMsCi1hbmQgYGV4
cHIxYCwgYGV4cHIyYCwgLi4uLCBhbmQgYGV4cHJuYCBhcmUgdGhlIGNvcnJlc3BvbmRpbmcgZXhw
cmVzc2lvbnMgYXMgdGhleQotYXBwZWFyIGluIHRoZSBzb3VyY2UgY29kZS4gVGhlIHR5cGVzIGBU
MWAsIGBUMmAsIC4uLiwgYW5kIGBUbmAgY2FuIGJlIGVpdGhlcgotdmFsdWUgdHlwZXMgb3IgcmVm
ZXJlbmNlIHR5cGVzLiBGb3IgZXhhbXBsZSwgaWYgYW4gYXJndW1lbnQgaGFzIHR5cGUgYEZvb2As
IHlvdQotY2FuIGRlY2xhcmUgaXQgYXMgZWl0aGVyIGBGb29gIG9yIGBjb25zdCBGb28mYCwgd2hp
Y2hldmVyIGlzIGFwcHJvcHJpYXRlLgotCi1BcyBhbiBleGFtcGxlLCBsZXQncyBpbXByb3ZlIHRo
ZSBmYWlsdXJlIG1lc3NhZ2UgaW4gYE11dHVhbGx5UHJpbWUoKWAsIHdoaWNoIHdhcwotdXNlZCB3
aXRoIGBFWFBFQ1RfUFJFRDIoKWA6Ci0KLWBgYGMrKwotLy8gUmV0dXJucyB0aGUgc21hbGxlc3Qg
cHJpbWUgY29tbW9uIGRpdmlzb3Igb2YgbSBhbmQgbiwKLS8vIG9yIDEgd2hlbiBtIGFuZCBuIGFy
ZSBtdXR1YWxseSBwcmltZS4KLWludCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2aXNvcihpbnQgbSwg
aW50IG4pIHsgLi4uIH0KLQotLy8gQSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZvciBhc3NlcnRpbmcg
dGhhdCB0d28gaW50ZWdlcnMgYXJlIG11dHVhbGx5IHByaW1lLgotOjp0ZXN0aW5nOjpBc3NlcnRp
b25SZXN1bHQgQXNzZXJ0TXV0dWFsbHlQcmltZShjb25zdCBjaGFyKiBtX2V4cHIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5fZXhw
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuKSB7
Ci0gIGlmIChNdXR1YWxseVByaW1lKG0sIG4pKSByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25T
dWNjZXNzKCk7Ci0KLSAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1f
ZXhwciA8PCAiIGFuZCAiIDw8IG5fZXhwcgotICAgICAgPDwgIiAoIiA8PCBtIDw8ICIgYW5kICIg
PDwgbiA8PCAiKSBhcmUgbm90IG11dHVhbGx5IHByaW1lLCAiCi0gICAgICA8PCAiYXMgdGhleSBo
YXZlIGEgY29tbW9uIGRpdmlzb3IgIiA8PCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2aXNvcihtLCBu
KTsKLX0KLWBgYAotCi1XaXRoIHRoaXMgcHJlZGljYXRlLWZvcm1hdHRlciwgd2UgY2FuIHVzZQot
Ci1gYGBjKysKLSAgRVhQRUNUX1BSRURfRk9STUFUMihBc3NlcnRNdXR1YWxseVByaW1lLCBiLCBj
KTsKLWBgYAotCi10byBnZW5lcmF0ZSB0aGUgbWVzc2FnZQotCi1gYGBub25lCi1iIGFuZCBjICg0
IGFuZCAxMCkgYXJlIG5vdCBtdXR1YWxseSBwcmltZSwgYXMgdGhleSBoYXZlIGEgY29tbW9uIGRp
dmlzb3IgMi4KLWBgYAotCi1BcyB5b3UgbWF5IGhhdmUgcmVhbGl6ZWQsIG1hbnkgb2YgdGhlIGJ1
aWx0LWluIGFzc2VydGlvbnMgd2UgaW50cm9kdWNlZCBlYXJsaWVyCi1hcmUgc3BlY2lhbCBjYXNl
cyBvZiBgKEVYUEVDVHxBU1NFUlQpX1BSRURfRk9STUFUKmAuIEluIGZhY3QsIG1vc3Qgb2YgdGhl
bSBhcmUKLWluZGVlZCBkZWZpbmVkIHVzaW5nIGAoRVhQRUNUfEFTU0VSVClfUFJFRF9GT1JNQVQq
YC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEZsb2F0
aW5nLVBvaW50IENvbXBhcmlzb24KLQotQ29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMg
aXMgdHJpY2t5LiBEdWUgdG8gcm91bmQtb2ZmIGVycm9ycywgaXQgaXMgdmVyeQotdW5saWtlbHkg
dGhhdCB0d28gZmxvYXRpbmctcG9pbnRzIHdpbGwgbWF0Y2ggZXhhY3RseS4gVGhlcmVmb3JlLCBg
QVNTRVJUX0VRYCAncwotbmFpdmUgY29tcGFyaXNvbiB1c3VhbGx5IGRvZXNuJ3Qgd29yay4gQW5k
IHNpbmNlIGZsb2F0aW5nLXBvaW50cyBjYW4gaGF2ZSBhIHdpZGUKLXZhbHVlIHJhbmdlLCBubyBz
aW5nbGUgZml4ZWQgZXJyb3IgYm91bmQgd29ya3MuIEl0J3MgYmV0dGVyIHRvIGNvbXBhcmUgYnkg
YQotZml4ZWQgcmVsYXRpdmUgZXJyb3IgYm91bmQsIGV4Y2VwdCBmb3IgdmFsdWVzIGNsb3NlIHRv
IDAgZHVlIHRvIHRoZSBsb3NzIG9mCi1wcmVjaXNpb24gdGhlcmUuCi0KLUluIGdlbmVyYWwsIGZv
ciBmbG9hdGluZy1wb2ludCBjb21wYXJpc29uIHRvIG1ha2Ugc2Vuc2UsIHRoZSB1c2VyIG5lZWRz
IHRvCi1jYXJlZnVsbHkgY2hvb3NlIHRoZSBlcnJvciBib3VuZC4gSWYgdGhleSBkb24ndCB3YW50
IG9yIGNhcmUgdG8sIGNvbXBhcmluZyBpbgotdGVybXMgb2YgVW5pdHMgaW4gdGhlIExhc3QgUGxh
Y2UgKFVMUHMpIGlzIGEgZ29vZCBkZWZhdWx0LCBhbmQgZ29vZ2xldGVzdAotcHJvdmlkZXMgYXNz
ZXJ0aW9ucyB0byBkbyB0aGlzLiBGdWxsIGRldGFpbHMgYWJvdXQgVUxQcyBhcmUgcXVpdGUgbG9u
ZzsgaWYgeW91Ci13YW50IHRvIGxlYXJuIG1vcmUsIHNlZQotW2hlcmVdKGh0dHBzOi8vcmFuZG9t
YXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2NvbXBhcmluZy1mbG9hdGluZy1wb2ludC1u
dW1iZXJzLTIwMTItZWRpdGlvbi8pLgotCi0jIyMjIEZsb2F0aW5nLVBvaW50IE1hY3JvcwotCi18
IEZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAg
ICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBg
QVNTRVJUX0ZMT0FUX0VRKHZhbDEsIHZhbDIpO2AgIHwgYEVYUEVDVF9GTE9BVF9FUSh2YWwxLHZh
bDIpO2AgIHwgdGhlIHR3byBgZmxvYXRgIHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsICB8Ci18IGBB
U1NFUlRfRE9VQkxFX0VRKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0RPVUJMRV9FUSh2YWwxLCB2
YWwyKTtgfCB0aGUgdHdvIGBkb3VibGVgIHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsIHwKLQotQnkg
ImFsbW9zdCBlcXVhbCIgd2UgbWVhbiB0aGUgdmFsdWVzIGFyZSB3aXRoaW4gNCBVTFAncyBmcm9t
IGVhY2ggb3RoZXIuCi0KLU5PVEU6IGBDSEVDS19ET1VCTEVfRVEoKWAgaW4gYGJhc2UvbG9nZ2lu
Zy5oYCB1c2VzIGEgZml4ZWQgYWJzb2x1dGUgZXJyb3IgYm91bmQsCi1zbyBpdHMgcmVzdWx0IG1h
eSBkaWZmZXIgZnJvbSB0aGF0IG9mIHRoZSBnb29nbGV0ZXN0IG1hY3Jvcy4gVGhhdCBtYWNybyBp
cwotdW5zYWZlIGFuZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBQbGVhc2UgZG9uJ3QgdXNlIGl0IGFu
eSBtb3JlLgotCi1UaGUgZm9sbG93aW5nIGFzc2VydGlvbnMgYWxsb3cgeW91IHRvIGNob29zZSB0
aGUgYWNjZXB0YWJsZSBlcnJvciBib3VuZDoKLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAg
ICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICB8IFZl
cmlmaWVzICAgICAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX05FQVIodmFsMSwgdmFsMiwgYWJzX2Vy
cm9yKTtgIHwgYEVYUEVDVF9ORUFSKHZhbDEsIHZhbDIsIGFic19lcnJvcik7YCB8IHRoZSBkaWZm
ZXJlbmNlIGJldHdlZW4gYHZhbDFgIGFuZCBgdmFsMmAgZG9lc24ndCBleGNlZWQgdGhlIGdpdmVu
IGFic29sdXRlIGVycm9yIHwKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMjIyBGbG9hdGluZy1Qb2ludCBQcmVkaWNhdGUtRm9ybWF0IEZ1bmN0aW9ucwotCi1T
b21lIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgYXJlIHVzZWZ1bCwgYnV0IG5vdCB0aGF0IG9m
dGVuIHVzZWQuIEluIG9yZGVyIHRvCi1hdm9pZCBhbiBleHBsb3Npb24gb2YgbmV3IG1hY3Jvcywg
d2UgcHJvdmlkZSB0aGVtIGFzIHByZWRpY2F0ZS1mb3JtYXQgZnVuY3Rpb25zCi10aGF0IGNhbiBi
ZSB1c2VkIGluIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm9zIChlLmcuIGBFWFBFQ1RfUFJFRF9G
T1JNQVQyYCwKLWV0YykuCi0KLWBgYGMrKwotRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6
OkZsb2F0TEUsIHZhbDEsIHZhbDIpOwotRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OkRv
dWJsZUxFLCB2YWwxLCB2YWwyKTsKLWBgYAotCi1WZXJpZmllcyB0aGF0IGB2YWwxYCBpcyBsZXNz
IHRoYW4sIG9yIGFsbW9zdCBlcXVhbCB0bywgYHZhbDJgLiBZb3UgY2FuIHJlcGxhY2UKLWBFWFBF
Q1RfUFJFRF9GT1JNQVQyYCBpbiB0aGUgYWJvdmUgdGFibGUgd2l0aCBgQVNTRVJUX1BSRURfRk9S
TUFUMmAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBB
c3NlcnRpbmcgVXNpbmcgZ01vY2sgTWF0Y2hlcnMKLQotR29vZ2xlLWRldmVsb3BlZCBDKysgbW9j
a2luZyBmcmFtZXdvcmsgW2dNb2NrXSguLi8uLi9nb29nbGVtb2NrKSBjb21lcyB3aXRoIGEKLWxp
YnJhcnkgb2YgbWF0Y2hlcnMgZm9yIHZhbGlkYXRpbmcgYXJndW1lbnRzIHBhc3NlZCB0byBtb2Nr
IG9iamVjdHMuIEEgZ01vY2sKLSptYXRjaGVyKiBpcyBiYXNpY2FsbHkgYSBwcmVkaWNhdGUgdGhh
dCBrbm93cyBob3cgdG8gZGVzY3JpYmUgaXRzZWxmLiBJdCBjYW4gYmUKLXVzZWQgaW4gdGhlc2Ug
YXNzZXJ0aW9uIG1hY3JvczoKLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgfCBO
b25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgfAot
fCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX1RIQVQodmFsdWUs
IG1hdGNoZXIpO2AgfCBgRVhQRUNUX1RIQVQodmFsdWUsIG1hdGNoZXIpO2AgfCB2YWx1ZSBtYXRj
aGVzIG1hdGNoZXIgfAotCi1Gb3IgZXhhbXBsZSwgYFN0YXJ0c1dpdGgocHJlZml4KWAgaXMgYSBt
YXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0cmluZyBzdGFydGluZwotd2l0aCBgcHJlZml4YCwgYW5k
IHlvdSBjYW4gd3JpdGU6Ci0KLWBgYGMrKwotdXNpbmcgOjp0ZXN0aW5nOjpTdGFydHNXaXRoOwot
Li4uCi0gICAgLy8gVmVyaWZpZXMgdGhhdCBGb28oKSByZXR1cm5zIGEgc3RyaW5nIHN0YXJ0aW5n
IHdpdGggIkhlbGxvIi4KLSAgICBFWFBFQ1RfVEhBVChGb28oKSwgU3RhcnRzV2l0aCgiSGVsbG8i
KSk7Ci1gYGAKLQotUmVhZCB0aGlzIFtyZWNpcGVdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9Db29r
Qm9vay5tZCN1c2luZy1tYXRjaGVycy1pbi1nb29nbGUtdGVzdC1hc3NlcnRpb25zKSBpbgotdGhl
IGdNb2NrIENvb2tib29rIGZvciBtb3JlIGRldGFpbHMuCi0KLWdNb2NrIGhhcyBhIHJpY2ggc2V0
IG9mIG1hdGNoZXJzLiBZb3UgY2FuIGRvIG1hbnkgdGhpbmdzIGdvb2dsZXRlc3QgY2Fubm90IGRv
Ci1hbG9uZSB3aXRoIHRoZW0uIEZvciBhIGxpc3Qgb2YgbWF0Y2hlcnMgZ01vY2sgcHJvdmlkZXMs
IHJlYWQKLVt0aGlzXSguLi8uLi9nb29nbGVtb2NrL2RvY3MvQ29va0Jvb2subWQjdXNpbmctbWF0
Y2hlcnMpLiBFc3BlY2lhbGx5IHVzZWZ1bCBhbW9uZyB0aGVtIGFyZQotc29tZSBbcHJvdG9jb2wg
YnVmZmVyIG1hdGNoZXJzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL251Y2xldXMvYmxvYi9t
YXN0ZXIvbnVjbGV1cy90ZXN0aW5nL3Byb3RvY29sLWJ1ZmZlci1tYXRjaGVycy5oKS4gSXQncyBl
YXN5IHRvIHdyaXRlCi15b3VyIFtvd24gbWF0Y2hlcnNdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9D
b29rQm9vay5tZCN3cml0aW5nLW5ldy1tYXRjaGVycy1xdWlja2x5KSB0b28uCi0KLUZvciBleGFt
cGxlLCB5b3UgY2FuIHVzZSBnTW9jaydzCi1bRXF1YWxzUHJvdG9dKGh0dHBzOi8vZ2l0aHViLmNv
bS9nb29nbGUvbnVjbGV1cy9ibG9iL21hc3Rlci9udWNsZXVzL3Rlc3RpbmcvcHJvdG9jb2wtYnVm
ZmVyLW1hdGNoZXJzLmgpCi10byBjb21wYXJlIHByb3RvcyBpbiB5b3VyIHRlc3RzOgotCi1gYGBj
KysKLSNpbmNsdWRlICJ0ZXN0aW5nL2Jhc2UvcHVibGljL2dtb2NrLmgiCi11c2luZyA6OnRlc3Rp
bmc6OkVxdWFsc1Byb3RvOwotLi4uCi0gICAgRVhQRUNUX1RIQVQoYWN0dWFsX3Byb3RvLCBFcXVh
bHNQcm90bygiZm9vOiAxMjMgYmFyOiAneHl6JyIpKTsKLSAgICBFWFBFQ1RfVEhBVCgqYWN0dWFs
X3Byb3RvX3B0ciwgRXF1YWxzUHJvdG8oZXhwZWN0ZWRfcHJvdG8pKTsKLWBgYAotCi1nTW9jayBp
cyBidW5kbGVkIHdpdGggZ29vZ2xldGVzdCwgc28geW91IGRvbid0IG5lZWQgdG8gYWRkIGFueSBi
dWlsZCBkZXBlbmRlbmN5Ci1pbiBvcmRlciB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLiBKdXN0
IGluY2x1ZGUgYCJ0ZXN0aW5nL2Jhc2UvcHVibGljL2dtb2NrLmgiYAotYW5kIHlvdSdyZSByZWFk
eSB0byBnby4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIGFuZCBNYWMuCi0K
LSMjIyBNb3JlIFN0cmluZyBBc3NlcnRpb25zCi0KLShQbGVhc2UgcmVhZCB0aGUgW3ByZXZpb3Vz
XSgjQXNzZXJ0VGhhdCkgc2VjdGlvbiBmaXJzdCBpZiB5b3UgaGF2ZW4ndC4pCi0KLVlvdSBjYW4g
dXNlIHRoZSBnTW9jayBbc3RyaW5nIG1hdGNoZXJzXSguLi8uLi9nb29nbGVtb2NrL2RvY3MvQ2hl
YXRTaGVldC5tZCNzdHJpbmctbWF0Y2hlcnMpCi13aXRoIGBFWFBFQ1RfVEhBVCgpYCBvciBgQVNT
RVJUX1RIQVQoKWAgdG8gZG8gbW9yZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MKLShzdWItc3Ry
aW5nLCBwcmVmaXgsIHN1ZmZpeCwgcmVndWxhciBleHByZXNzaW9uLCBhbmQgZXRjKS4gRm9yIGV4
YW1wbGUsCi0KLWBgYGMrKwotdXNpbmcgOjp0ZXN0aW5nOjpIYXNTdWJzdHI7Ci11c2luZyA6OnRl
c3Rpbmc6Ok1hdGNoZXNSZWdleDsKLS4uLgotICBBU1NFUlRfVEhBVChmb29fc3RyaW5nLCBIYXNT
dWJzdHIoIm5lZWRsZSIpKTsKLSAgRVhQRUNUX1RIQVQoYmFyX3N0cmluZywgTWF0Y2hlc1JlZ2V4
KCJcXHcqXFxkKyIpKTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywg
TWFjLgotCi1JZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGEgd2VsbC1mb3JtZWQgSFRNTCBvciBYTUwg
ZG9jdW1lbnQsIHlvdSBjYW4gY2hlY2sgd2hldGhlcgotaXRzIERPTSB0cmVlIG1hdGNoZXMgYW4g
W1hQYXRoCi1leHByZXNzaW9uXShodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aC8jY29udGVudHMp
OgotCi1gYGBjKysKLS8vIEN1cnJlbnRseSBzdGlsbCBpbiAvL3RlbXBsYXRlL3Byb3RvdGVtcGxh
dGUvdGVzdGluZzp4cGF0aF9tYXRjaGVyCi0jaW5jbHVkZSAidGVtcGxhdGUvcHJvdG90ZW1wbGF0
ZS90ZXN0aW5nL3hwYXRoX21hdGNoZXIuaCIKLXVzaW5nIHByb3RvdGVtcGxhdGU6OnRlc3Rpbmc6
Ok1hdGNoZXNYUGF0aDsKLUVYUEVDVF9USEFUKGh0bWxfc3RyaW5nLCBNYXRjaGVzWFBhdGgoIi8v
YVt0ZXh0KCk9J2NsaWNrIGhlcmUnXSIpKTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51
eC4KLQotIyMjIFdpbmRvd3MgSFJFU1VMVCBhc3NlcnRpb25zCi0KLVRoZXNlIGFzc2VydGlvbnMg
dGVzdCBmb3IgYEhSRVNVTFRgIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4KLQotRmF0YWwgYXNzZXJ0aW9u
ICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAg
ICAgICAgICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBB
U1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoZXhwcmVzc2lvbilgIHwgYEVYUEVDVF9IUkVTVUxUX1NV
Q0NFRURFRChleHByZXNzaW9uKWAgfCBgZXhwcmVzc2lvbmAgaXMgYSBzdWNjZXNzIGBIUkVTVUxU
YAotYEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChleHByZXNzaW9uKWAgICAgfCBgRVhQRUNUX0hSRVNV
TFRfRkFJTEVEKGV4cHJlc3Npb24pYCAgICB8IGBleHByZXNzaW9uYCBpcyBhIGZhaWx1cmUgYEhS
RVNVTFRgCi0KLVRoZSBnZW5lcmF0ZWQgb3V0cHV0IGNvbnRhaW5zIHRoZSBodW1hbi1yZWFkYWJs
ZSBlcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aAotdGhlIGBIUkVTVUxUYCBjb2RlIHJldHVy
bmVkIGJ5IGBleHByZXNzaW9uYC4KLQotWW91IG1pZ2h0IHVzZSB0aGVtIGxpa2UgdGhpczoKLQot
YGBgYysrCi1DQ29tUHRyPElTaGVsbERpc3BhdGNoMj4gc2hlbGw7Ci1BU1NFUlRfSFJFU1VMVF9T
VUNDRUVERUQoc2hlbGwuQ29DcmVhdGVJbnN0YW5jZShMIlNoZWxsLkFwcGxpY2F0aW9uIikpOwot
Q0NvbVZhcmlhbnQgZW1wdHk7Ci1BU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoc2hlbGwtPlNoZWxs
RXhlY3V0ZShDQ29tQlNUUih1cmwpLCBlbXB0eSwgZW1wdHksIGVtcHR5LCBlbXB0eSkpOwotYGBg
Ci0KLSoqQXZhaWxhYmlsaXR5Kio6IFdpbmRvd3MuCi0KLSMjIyBUeXBlIEFzc2VydGlvbnMKLQot
WW91IGNhbiBjYWxsIHRoZSBmdW5jdGlvbgotCi1gYGBjKysKLTo6dGVzdGluZzo6U3RhdGljQXNz
ZXJ0VHlwZUVxPFQxLCBUMj4oKTsKLWBgYAotCi10byBhc3NlcnQgdGhhdCB0eXBlcyBgVDFgIGFu
ZCBgVDJgIGFyZSB0aGUgc2FtZS4gVGhlIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBpZgotdGhlIGFz
c2VydGlvbiBpcyBzYXRpc2ZpZWQuIElmIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LCB0aGUgZnVu
Y3Rpb24gY2FsbCB3aWxsCi1mYWlsIHRvIGNvbXBpbGUsIGFuZCB0aGUgY29tcGlsZXIgZXJyb3Ig
bWVzc2FnZSB3aWxsIGxpa2VseSAoZGVwZW5kaW5nIG9uIHRoZQotY29tcGlsZXIpIHNob3cgeW91
IHRoZSBhY3R1YWwgdmFsdWVzIG9mIGBUMWAgYW5kIGBUMmAuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1
bAotaW5zaWRlIHRlbXBsYXRlIGNvZGUuCi0KLSoqQ2F2ZWF0Kio6IFdoZW4gdXNlZCBpbnNpZGUg
YSBtZW1iZXIgZnVuY3Rpb24gb2YgYSBjbGFzcyB0ZW1wbGF0ZSBvciBhIGZ1bmN0aW9uCi10ZW1w
bGF0ZSwgYFN0YXRpY0Fzc2VydFR5cGVFcTxUMSwgVDI+KClgIGlzIGVmZmVjdGl2ZSBvbmx5IGlm
IHRoZSBmdW5jdGlvbiBpcwotaW5zdGFudGlhdGVkLiBGb3IgZXhhbXBsZSwgZ2l2ZW46Ci0KLWBg
YGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEZvbyB7Ci0gcHVibGljOgotICB2b2lk
IEJhcigpIHsgOjp0ZXN0aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE8aW50LCBUPigpOyB9Ci19Owot
YGBgCi0KLXRoZSBjb2RlOgotCi1gYGBjKysKLXZvaWQgVGVzdDEoKSB7IEZvbzxib29sPiBmb287
IH0KLWBgYAotCi13aWxsIG5vdCBnZW5lcmF0ZSBhIGNvbXBpbGVyIGVycm9yLCBhcyBgRm9vPGJv
b2w+OjpCYXIoKWAgaXMgbmV2ZXIgYWN0dWFsbHkKLWluc3RhbnRpYXRlZC4gSW5zdGVhZCwgeW91
IG5lZWQ6Ci0KLWBgYGMrKwotdm9pZCBUZXN0MigpIHsgRm9vPGJvb2w+IGZvbzsgZm9vLkJhcigp
OyB9Ci1gYGAKLQotdG8gY2F1c2UgYSBjb21waWxlciBlcnJvci4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEFzc2VydGlvbiBQbGFjZW1lbnQKLQotWW91
IGNhbiB1c2UgYXNzZXJ0aW9ucyBpbiBhbnkgQysrIGZ1bmN0aW9uLiBJbiBwYXJ0aWN1bGFyLCBp
dCBkb2Vzbid0IGhhdmUgdG8gYmUKLWEgbWV0aG9kIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3Mu
IFRoZSBvbmUgY29uc3RyYWludCBpcyB0aGF0IGFzc2VydGlvbnMgdGhhdAotZ2VuZXJhdGUgYSBm
YXRhbCBmYWlsdXJlIChgRkFJTCpgIGFuZCBgQVNTRVJUXypgKSBjYW4gb25seSBiZSB1c2VkIGlu
Ci12b2lkLXJldHVybmluZyBmdW5jdGlvbnMuIFRoaXMgaXMgYSBjb25zZXF1ZW5jZSBvZiBHb29n
bGUncyBub3QgdXNpbmcKLWV4Y2VwdGlvbnMuIEJ5IHBsYWNpbmcgaXQgaW4gYSBub24tdm9pZCBm
dW5jdGlvbiB5b3UnbGwgZ2V0IGEgY29uZnVzaW5nIGNvbXBpbGUKLWVycm9yIGxpa2UgYCJlcnJv
cjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZSJgIG9yIGAiY2Fubm90
Ci1pbml0aWFsaXplIHJldHVybiBvYmplY3Qgb2YgdHlwZSAnYm9vbCcgd2l0aCBhbiBydmFsdWUg
b2YgdHlwZSAndm9pZCciYCBvcgotYCJlcnJvcjogbm8gdmlhYmxlIGNvbnZlcnNpb24gZnJvbSAn
dm9pZCcgdG8gJ3N0cmluZyciYC4KLQotSWYgeW91IG5lZWQgdG8gdXNlIGZhdGFsIGFzc2VydGlv
bnMgaW4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgbm9uLXZvaWQsIG9uZQotb3B0aW9uIGlzIHRv
IG1ha2UgdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFsdWUgaW4gYW4gb3V0IHBhcmFtZXRlciBp
bnN0ZWFkLiBGb3IKLWV4YW1wbGUsIHlvdSBjYW4gcmV3cml0ZSBgVDIgRm9vKFQxIHgpYCB0byBg
dm9pZCBGb28oVDEgeCwgVDIqIHJlc3VsdClgLiBZb3UKLW5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
YCpyZXN1bHRgIGNvbnRhaW5zIHNvbWUgc2Vuc2libGUgdmFsdWUgZXZlbiB3aGVuIHRoZQotZnVu
Y3Rpb24gcmV0dXJucyBwcmVtYXR1cmVseS4gQXMgdGhlIGZ1bmN0aW9uIG5vdyByZXR1cm5zIGB2
b2lkYCwgeW91IGNhbiB1c2UKLWFueSBhc3NlcnRpb24gaW5zaWRlIG9mIGl0LgotCi1JZiBjaGFu
Z2luZyB0aGUgZnVuY3Rpb24ncyB0eXBlIGlzIG5vdCBhbiBvcHRpb24sIHlvdSBzaG91bGQganVz
dCB1c2UgYXNzZXJ0aW9ucwotdGhhdCBnZW5lcmF0ZSBub24tZmF0YWwgZmFpbHVyZXMsIHN1Y2gg
YXMgYEFERF9GQUlMVVJFKmAgYW5kIGBFWFBFQ1RfKmAuCi0KLU5PVEU6IENvbnN0cnVjdG9ycyBh
bmQgZGVzdHJ1Y3RvcnMgYXJlIG5vdCBjb25zaWRlcmVkIHZvaWQtcmV0dXJuaW5nIGZ1bmN0aW9u
cywKLWFjY29yZGluZyB0byB0aGUgQysrIGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBzbyB5
b3UgbWF5IG5vdCB1c2UgZmF0YWwKLWFzc2VydGlvbnMgaW4gdGhlbS4gWW91J2xsIGdldCBhIGNv
bXBpbGF0aW9uIGVycm9yIGlmIHlvdSB0cnkuIEEgc2ltcGxlCi13b3JrYXJvdW5kIGlzIHRvIHRy
YW5zZmVyIHRoZSBlbnRpcmUgYm9keSBvZiB0aGUgY29uc3RydWN0b3Igb3IgZGVzdHJ1Y3RvciB0
byBhCi1wcml2YXRlIHZvaWQtcmV0dXJuaW5nIG1ldGhvZC4gSG93ZXZlciwgeW91IHNob3VsZCBi
ZSBhd2FyZSB0aGF0IGEgZmF0YWwKLWFzc2VydGlvbiBmYWlsdXJlIGluIGEgY29uc3RydWN0b3Ig
ZG9lcyBub3QgdGVybWluYXRlIHRoZSBjdXJyZW50IHRlc3QsIGFzIHlvdXIKLWludHVpdGlvbiBt
aWdodCBzdWdnZXN0OyBpdCBtZXJlbHkgcmV0dXJucyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBlYXJs
eSwgcG9zc2libHkKLWxlYXZpbmcgeW91ciBvYmplY3QgaW4gYSBwYXJ0aWFsbHktY29uc3RydWN0
ZWQgc3RhdGUuIExpa2V3aXNlLCBhIGZhdGFsCi1hc3NlcnRpb24gZmFpbHVyZSBpbiBhIGRlc3Ry
dWN0b3IgbWF5IGxlYXZlIHlvdXIgb2JqZWN0IGluIGEKLXBhcnRpYWxseS1kZXN0cnVjdGVkIHN0
YXRlLiBVc2UgYXNzZXJ0aW9ucyBjYXJlZnVsbHkgaW4gdGhlc2Ugc2l0dWF0aW9ucyEKLQotIyMg
VGVhY2hpbmcgZ29vZ2xldGVzdCBIb3cgdG8gUHJpbnQgWW91ciBWYWx1ZXMKLQotV2hlbiBhIHRl
c3QgYXNzZXJ0aW9uIHN1Y2ggYXMgYEVYUEVDVF9FUWAgZmFpbHMsIGdvb2dsZXRlc3QgcHJpbnRz
IHRoZSBhcmd1bWVudAotdmFsdWVzIHRvIGhlbHAgeW91IGRlYnVnLiBJdCBkb2VzIHRoaXMgdXNp
bmcgYSB1c2VyLWV4dGVuc2libGUgdmFsdWUgcHJpbnRlci4KLQotVGhpcyBwcmludGVyIGtub3dz
IGhvdyB0byBwcmludCBidWlsdC1pbiBDKysgdHlwZXMsIG5hdGl2ZSBhcnJheXMsIFNUTAotY29u
dGFpbmVycywgYW5kIGFueSB0eXBlIHRoYXQgc3VwcG9ydHMgdGhlIGA8PGAgb3BlcmF0b3IuIEZv
ciBvdGhlciB0eXBlcywgaXQKLXByaW50cyB0aGUgcmF3IGJ5dGVzIGluIHRoZSB2YWx1ZSBhbmQg
aG9wZXMgdGhhdCB5b3UgdGhlIHVzZXIgY2FuIGZpZ3VyZSBpdCBvdXQuCi0KLUFzIG1lbnRpb25l
ZCBlYXJsaWVyLCB0aGUgcHJpbnRlciBpcyAqZXh0ZW5zaWJsZSouIFRoYXQgbWVhbnMgeW91IGNh
biB0ZWFjaCBpdAotdG8gZG8gYSBiZXR0ZXIgam9iIGF0IHByaW50aW5nIHlvdXIgcGFydGljdWxh
ciB0eXBlIHRoYW4gdG8gZHVtcCB0aGUgYnl0ZXMuIFRvCi1kbyB0aGF0LCBkZWZpbmUgYDw8YCBm
b3IgeW91ciB0eXBlOgotCi1gYGBjKysKLS8vIFN0cmVhbXMgYXJlIGFsbG93ZWQgb25seSBmb3Ig
bG9nZ2luZy4gIERvbid0IGluY2x1ZGUgdGhpcyBmb3IKLS8vIGFueSBvdGhlciBwdXJwb3NlLgot
I2luY2x1ZGUgPG9zdHJlYW0+Ci0KLW5hbWVzcGFjZSBmb28gewotCi1jbGFzcyBCYXIgeyAgLy8g
V2Ugd2FudCBnb29nbGV0ZXN0IHRvIGJlIGFibGUgdG8gcHJpbnQgaW5zdGFuY2VzIG9mIHRoaXMu
Ci0uLi4KLSAgLy8gQ3JlYXRlIGEgZnJlZSBpbmxpbmUgZnJpZW5kIGZ1bmN0aW9uLgotICBmcmll
bmQgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEJhciYg
YmFyKSB7Ci0gICAgcmV0dXJuIG9zIDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIg
bmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotICB9Ci19OwotCi0vLyBJZiB5b3UgY2FuJ3QgZGVj
bGFyZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGNsYXNzIGl0J3MgaW1wb3J0YW50IHRoYXQgdGhlCi0v
LyA8PCBvcGVyYXRvciBpcyBkZWZpbmVkIGluIHRoZSBTQU1FIG5hbWVzcGFjZSB0aGF0IGRlZmlu
ZXMgQmFyLiAgQysrJ3MgbG9vay11cAotLy8gcnVsZXMgcmVseSBvbiB0aGF0Lgotc3RkOjpvc3Ry
ZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEJhciYgYmFyKSB7Ci0gIHJl
dHVybiBvcyA8PCBiYXIuRGVidWdTdHJpbmcoKTsgIC8vIHdoYXRldmVyIG5lZWRlZCB0byBwcmlu
dCBiYXIgdG8gb3MKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGZvbwotYGBgCi0KLVNvbWV0aW1lcywg
dGhpcyBtaWdodCBub3QgYmUgYW4gb3B0aW9uOiB5b3VyIHRlYW0gbWF5IGNvbnNpZGVyIGl0IGJh
ZCBzdHlsZSB0bwotaGF2ZSBhIGA8PGAgb3BlcmF0b3IgZm9yIGBCYXJgLCBvciBgQmFyYCBtYXkg
YWxyZWFkeSBoYXZlIGEgYDw8YCBvcGVyYXRvciB0aGF0Ci1kb2Vzbid0IGRvIHdoYXQgeW91IHdh
bnQgKGFuZCB5b3UgY2Fubm90IGNoYW5nZSBpdCkuIElmIHNvLCB5b3UgY2FuIGluc3RlYWQKLWRl
ZmluZSBhIGBQcmludFRvKClgIGZ1bmN0aW9uIGxpa2UgdGhpczoKLQotYGBgYysrCi0vLyBTdHJl
YW1zIGFyZSBhbGxvd2VkIG9ubHkgZm9yIGxvZ2dpbmcuICBEb24ndCBpbmNsdWRlIHRoaXMgZm9y
Ci0vLyBhbnkgb3RoZXIgcHVycG9zZS4KLSNpbmNsdWRlIDxvc3RyZWFtPgotCi1uYW1lc3BhY2Ug
Zm9vIHsKLQotY2xhc3MgQmFyIHsKLSAgLi4uCi0gIGZyaWVuZCB2b2lkIFByaW50VG8oY29uc3Qg
QmFyJiBiYXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICAqb3MgPDwgYmFyLkRlYnVnU3RyaW5n
KCk7ICAvLyB3aGF0ZXZlciBuZWVkZWQgdG8gcHJpbnQgYmFyIHRvIG9zCi0gIH0KLX07Ci0KLS8v
IElmIHlvdSBjYW4ndCBkZWNsYXJlIHRoZSBmdW5jdGlvbiBpbiB0aGUgY2xhc3MgaXQncyBpbXBv
cnRhbnQgdGhhdCBQcmludFRvKCkKLS8vIGlzIGRlZmluZWQgaW4gdGhlIFNBTUUgbmFtZXNwYWNl
IHRoYXQgZGVmaW5lcyBCYXIuICBDKysncyBsb29rLXVwIHJ1bGVzIHJlbHkKLS8vIG9uIHRoYXQu
Ci12b2lkIFByaW50VG8oY29uc3QgQmFyJiBiYXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgKm9z
IDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0
byBvcwotfQotCi19ICAvLyBuYW1lc3BhY2UgZm9vCi1gYGAKLQotSWYgeW91IGhhdmUgZGVmaW5l
ZCBib3RoIGA8PGAgYW5kIGBQcmludFRvKClgLCB0aGUgbGF0dGVyIHdpbGwgYmUgdXNlZCB3aGVu
Ci1nb29nbGV0ZXN0IGlzIGNvbmNlcm5lZC4gVGhpcyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBo
b3cgdGhlIHZhbHVlIGFwcGVhcnMgaW4KLWdvb2dsZXRlc3QncyBvdXRwdXQgd2l0aG91dCBhZmZl
Y3RpbmcgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgYmVoYXZpb3Igb2YgaXRzCi1gPDxgIG9wZXJh
dG9yLgotCi1JZiB5b3Ugd2FudCB0byBwcmludCBhIHZhbHVlIGB4YCB1c2luZyBnb29nbGV0ZXN0
J3MgdmFsdWUgcHJpbnRlciB5b3Vyc2VsZiwganVzdAotY2FsbCBgOjp0ZXN0aW5nOjpQcmludFRv
U3RyaW5nKHgpYCwgd2hpY2ggcmV0dXJucyBhbiBgc3RkOjpzdHJpbmdgOgotCi1gYGBjKysKLXZl
Y3RvcjxwYWlyPEJhciwgaW50PiA+IGJhcl9pbnRzID0gR2V0QmFySW50VmVjdG9yKCk7Ci0KLUVY
UEVDVF9UUlVFKElzQ29ycmVjdEJhckludFZlY3RvcihiYXJfaW50cykpCi0gICAgPDwgImJhcl9p
bnRzID0gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoYmFyX2ludHMpOwotYGBgCi0KLSMj
IERlYXRoIFRlc3RzCi0KLUluIG1hbnkgYXBwbGljYXRpb25zLCB0aGVyZSBhcmUgYXNzZXJ0aW9u
cyB0aGF0IGNhbiBjYXVzZSBhcHBsaWNhdGlvbiBmYWlsdXJlIGlmCi1hIGNvbmRpdGlvbiBpcyBu
b3QgbWV0LiBUaGVzZSBzYW5pdHkgY2hlY2tzLCB3aGljaCBlbnN1cmUgdGhhdCB0aGUgcHJvZ3Jh
bSBpcyBpbgotYSBrbm93biBnb29kIHN0YXRlLCBhcmUgdGhlcmUgdG8gZmFpbCBhdCB0aGUgZWFy
bGllc3QgcG9zc2libGUgdGltZSBhZnRlciBzb21lCi1wcm9ncmFtIHN0YXRlIGlzIGNvcnJ1cHRl
ZC4gSWYgdGhlIGFzc2VydGlvbiBjaGVja3MgdGhlIHdyb25nIGNvbmRpdGlvbiwgdGhlbgotdGhl
IHByb2dyYW0gbWF5IHByb2NlZWQgaW4gYW4gZXJyb25lb3VzIHN0YXRlLCB3aGljaCBjb3VsZCBs
ZWFkIHRvIG1lbW9yeQotY29ycnVwdGlvbiwgc2VjdXJpdHkgaG9sZXMsIG9yIHdvcnNlLiBIZW5j
ZSBpdCBpcyB2aXRhbGx5IGltcG9ydGFudCB0byB0ZXN0IHRoYXQKLXN1Y2ggYXNzZXJ0aW9uIHN0
YXRlbWVudHMgd29yayBhcyBleHBlY3RlZC4KLQotU2luY2UgdGhlc2UgcHJlY29uZGl0aW9uIGNo
ZWNrcyBjYXVzZSB0aGUgcHJvY2Vzc2VzIHRvIGRpZSwgd2UgY2FsbCBzdWNoIHRlc3RzCi1fZGVh
dGggdGVzdHNfLiBNb3JlIGdlbmVyYWxseSwgYW55IHRlc3QgdGhhdCBjaGVja3MgdGhhdCBhIHBy
b2dyYW0gdGVybWluYXRlcwotKGV4Y2VwdCBieSB0aHJvd2luZyBhbiBleGNlcHRpb24pIGluIGFu
IGV4cGVjdGVkIGZhc2hpb24gaXMgYWxzbyBhIGRlYXRoIHRlc3QuCi0KLQotTm90ZSB0aGF0IGlm
IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3ZSBkb24ndCBjb25zaWRlciBp
dCAiZGVhdGgiCi1mb3IgdGhlIHB1cnBvc2Ugb2YgZGVhdGggdGVzdHMsIGFzIHRoZSBjYWxsZXIg
b2YgdGhlIGNvZGUgY291bGQgY2F0Y2ggdGhlCi1leGNlcHRpb24gYW5kIGF2b2lkIHRoZSBjcmFz
aC4gSWYgeW91IHdhbnQgdG8gdmVyaWZ5IGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHlvdXIKLWNvZGUs
IHNlZSBbRXhjZXB0aW9uIEFzc2VydGlvbnNdKCNleGNlcHRpb24tYXNzZXJ0aW9ucykuCi0KLUlm
IHlvdSB3YW50IHRvIHRlc3QgYEVYUEVDVF8qKCkvQVNTRVJUXyooKWAgZmFpbHVyZXMgaW4geW91
ciB0ZXN0IGNvZGUsIHNlZQotQ2F0Y2hpbmcgRmFpbHVyZXMKLQotIyMjIEhvdyB0byBXcml0ZSBh
IERlYXRoIFRlc3QKLQotZ29vZ2xldGVzdCBoYXMgdGhlIGZvbGxvd2luZyBtYWNyb3MgdG8gc3Vw
cG9ydCBkZWF0aCB0ZXN0czoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAt
LS0tLS0tLQotYEFTU0VSVF9ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4KTtgICAgICAgICAgICAgICB8
IGBFWFBFQ1RfREVBVEgoc3RhdGVtZW50LCByZWdleCk7YCAgICAgICAgICAgICAgfCBgc3RhdGVt
ZW50YCBjcmFzaGVzIHdpdGggdGhlIGdpdmVuIGVycm9yCi1gQVNTRVJUX0RFQVRIX0lGX1NVUFBP
UlRFRChzdGF0ZW1lbnQsIHJlZ2V4KTtgIHwgYEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoc3Rh
dGVtZW50LCByZWdleCk7YCB8IGlmIGRlYXRoIHRlc3RzIGFyZSBzdXBwb3J0ZWQsIHZlcmlmaWVz
IHRoYXQgYHN0YXRlbWVudGAgY3Jhc2hlcyB3aXRoIHRoZSBnaXZlbiBlcnJvcjsgb3RoZXJ3aXNl
IHZlcmlmaWVzIG5vdGhpbmcKLWBBU1NFUlRfRVhJVChzdGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVn
ZXgpO2AgICAgfCBgRVhQRUNUX0VYSVQoc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4KTtgICAg
IHwgYHN0YXRlbWVudGAgZXhpdHMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3IsIGFuZCBpdHMgZXhpdCBj
b2RlIG1hdGNoZXMgYHByZWRpY2F0ZWAKLQotd2hlcmUgYHN0YXRlbWVudGAgaXMgYSBzdGF0ZW1l
bnQgdGhhdCBpcyBleHBlY3RlZCB0byBjYXVzZSB0aGUgcHJvY2VzcyB0byBkaWUsCi1gcHJlZGlj
YXRlYCBpcyBhIGZ1bmN0aW9uIG9yIGZ1bmN0aW9uIG9iamVjdCB0aGF0IGV2YWx1YXRlcyBhbiBp
bnRlZ2VyIGV4aXQKLXN0YXR1cywgYW5kIGByZWdleGAgaXMgYSAoUGVybCkgcmVndWxhciBleHBy
ZXNzaW9uIHRoYXQgdGhlIHN0ZGVyciBvdXRwdXQgb2YKLWBzdGF0ZW1lbnRgIGlzIGV4cGVjdGVk
IHRvIG1hdGNoLiBOb3RlIHRoYXQgYHN0YXRlbWVudGAgY2FuIGJlICphbnkgdmFsaWQKLXN0YXRl
bWVudCogKGluY2x1ZGluZyAqY29tcG91bmQgc3RhdGVtZW50KikgYW5kIGRvZXNuJ3QgaGF2ZSB0
byBiZSBhbgotZXhwcmVzc2lvbi4KLQotCi1BcyB1c3VhbCwgdGhlIGBBU1NFUlRgIHZhcmlhbnRz
IGFib3J0IHRoZSBjdXJyZW50IHRlc3QgZnVuY3Rpb24sIHdoaWxlIHRoZQotYEVYUEVDVGAgdmFy
aWFudHMgZG8gbm90LgotCi0+IE5PVEU6IFdlIHVzZSB0aGUgd29yZCAiY3Jhc2giIGhlcmUgdG8g
bWVhbiB0aGF0IHRoZSBwcm9jZXNzIHRlcm1pbmF0ZXMgd2l0aCBhCi0+ICpub24temVybyogZXhp
dCBzdGF0dXMgY29kZS4gVGhlcmUgYXJlIHR3byBwb3NzaWJpbGl0aWVzOiBlaXRoZXIgdGhlIHBy
b2Nlc3MKLT4gaGFzIGNhbGxlZCBgZXhpdCgpYCBvciBgX2V4aXQoKWAgd2l0aCBhIG5vbi16ZXJv
IHZhbHVlLCBvciBpdCBtYXkgYmUga2lsbGVkIGJ5Ci0+IGEgc2lnbmFsLgotPgotPiBUaGlzIG1l
YW5zIHRoYXQgaWYgYCpzdGF0ZW1lbnQqYCB0ZXJtaW5hdGVzIHRoZSBwcm9jZXNzIHdpdGggYSAw
IGV4aXQgY29kZSwgaXQKLT4gaXMgKm5vdCogY29uc2lkZXJlZCBhIGNyYXNoIGJ5IGBFWFBFQ1Rf
REVBVEhgLiBVc2UgYEVYUEVDVF9FWElUYCBpbnN0ZWFkIGlmCi0+IHRoaXMgaXMgdGhlIGNhc2Us
IG9yIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IHRoZSBleGl0IGNvZGUgbW9yZSBwcmVjaXNlbHku
Ci0KLUEgcHJlZGljYXRlIGhlcmUgbXVzdCBhY2NlcHQgYW4gYGludGAgYW5kIHJldHVybiBhIGBi
b29sYC4gVGhlIGRlYXRoIHRlc3QKLXN1Y2NlZWRzIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSByZXR1
cm5zIGB0cnVlYC4gZ29vZ2xldGVzdCBkZWZpbmVzIGEgZmV3Ci1wcmVkaWNhdGVzIHRoYXQgaGFu
ZGxlIHRoZSBtb3N0IGNvbW1vbiBjYXNlczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkV4aXRlZFdp
dGhDb2RlKGV4aXRfY29kZSkKLWBgYAotCi1UaGlzIGV4cHJlc3Npb24gaXMgYHRydWVgIGlmIHRo
ZSBwcm9ncmFtIGV4aXRlZCBub3JtYWxseSB3aXRoIHRoZSBnaXZlbiBleGl0Ci1jb2RlLgotCi1g
YGBjKysKLTo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwoc2lnbmFsX251bWJlcikgIC8vIE5vdCBh
dmFpbGFibGUgb24gV2luZG93cy4KLWBgYAotCi1UaGlzIGV4cHJlc3Npb24gaXMgYHRydWVgIGlm
IHRoZSBwcm9ncmFtIHdhcyBraWxsZWQgYnkgdGhlIGdpdmVuIHNpZ25hbC4KLQotVGhlIGAqX0RF
QVRIYCBtYWNyb3MgYXJlIGNvbnZlbmllbnQgd3JhcHBlcnMgZm9yIGAqX0VYSVRgIHRoYXQgdXNl
IGEgcHJlZGljYXRlCi10aGF0IHZlcmlmaWVzIHRoZSBwcm9jZXNzJyBleGl0IGNvZGUgaXMgbm9u
LXplcm8uCi0KLU5vdGUgdGhhdCBhIGRlYXRoIHRlc3Qgb25seSBjYXJlcyBhYm91dCB0aHJlZSB0
aGluZ3M6Ci0KLTEuICBkb2VzIGBzdGF0ZW1lbnRgIGFib3J0IG9yIGV4aXQgdGhlIHByb2Nlc3M/
Ci0yLiAgKGluIHRoZSBjYXNlIG9mIGBBU1NFUlRfRVhJVGAgYW5kIGBFWFBFQ1RfRVhJVGApIGRv
ZXMgdGhlIGV4aXQgc3RhdHVzCi0gICAgc2F0aXNmeSBgcHJlZGljYXRlYD8gT3IgKGluIHRoZSBj
YXNlIG9mIGBBU1NFUlRfREVBVEhgIGFuZCBgRVhQRUNUX0RFQVRIYCkKLSAgICBpcyB0aGUgZXhp
dCBzdGF0dXMgbm9uLXplcm8/IEFuZAotMy4gIGRvZXMgdGhlIHN0ZGVyciBvdXRwdXQgbWF0Y2gg
YHJlZ2V4YD8KLQotSW4gcGFydGljdWxhciwgaWYgYHN0YXRlbWVudGAgZ2VuZXJhdGVzIGFuIGBB
U1NFUlRfKmAgb3IgYEVYUEVDVF8qYCBmYWlsdXJlLCBpdAotd2lsbCAqKm5vdCoqIGNhdXNlIHRo
ZSBkZWF0aCB0ZXN0IHRvIGZhaWwsIGFzIGdvb2dsZXRlc3QgYXNzZXJ0aW9ucyBkb24ndCBhYm9y
dAotdGhlIHByb2Nlc3MuCi0KLVRvIHdyaXRlIGEgZGVhdGggdGVzdCwgc2ltcGx5IHVzZSBvbmUg
b2YgdGhlIGFib3ZlIG1hY3JvcyBpbnNpZGUgeW91ciB0ZXN0Ci1mdW5jdGlvbi4gRm9yIGV4YW1w
bGUsCi0KLWBgYGMrKwotVEVTVChNeURlYXRoVGVzdCwgRm9vKSB7Ci0gIC8vIFRoaXMgZGVhdGgg
dGVzdCB1c2VzIGEgY29tcG91bmQgc3RhdGVtZW50LgotICBBU1NFUlRfREVBVEgoewotICAgIGlu
dCBuID0gNTsKLSAgICBGb28oJm4pOwotICB9LCAiRXJyb3Igb24gbGluZSAuKiBvZiBGb28oKSIp
OwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBOb3JtYWxFeGl0KSB7Ci0gIEVYUEVDVF9FWElUKE5v
cm1hbEV4aXQoKSwgOjp0ZXN0aW5nOjpFeGl0ZWRXaXRoQ29kZSgwKSwgIlN1Y2Nlc3MiKTsKLX0K
LQotVEVTVChNeURlYXRoVGVzdCwgS2lsbE15c2VsZikgewotICBFWFBFQ1RfRVhJVChLaWxsTXlz
ZWxmKCksIDo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwoU0lHS0lMTCksCi0gICAgICAgICAgICAg
ICJTZW5kaW5nIG15c2VsZiB1bmJsb2NrYWJsZSBzaWduYWwiKTsKLX0KLWBgYAotCi12ZXJpZmll
cyB0aGF0OgotCi0qICAgY2FsbGluZyBgRm9vKDUpYCBjYXVzZXMgdGhlIHByb2Nlc3MgdG8gZGll
IHdpdGggdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2UsCi0qICAgY2FsbGluZyBgTm9ybWFsRXhpdCgp
YCBjYXVzZXMgdGhlIHByb2Nlc3MgdG8gcHJpbnQgYCJTdWNjZXNzImAgdG8gc3RkZXJyIGFuZAot
ICAgIGV4aXQgd2l0aCBleGl0IGNvZGUgMCwgYW5kCi0qICAgY2FsbGluZyBgS2lsbE15c2VsZigp
YCBraWxscyB0aGUgcHJvY2VzcyB3aXRoIHNpZ25hbCBgU0lHS0lMTGAuCi0KLVRoZSB0ZXN0IGZ1
bmN0aW9uIGJvZHkgbWF5IGNvbnRhaW4gb3RoZXIgYXNzZXJ0aW9ucyBhbmQgc3RhdGVtZW50cyBh
cyB3ZWxsLCBpZgotbmVjZXNzYXJ5LgotCi0jIyMgRGVhdGggVGVzdCBOYW1pbmcKLQotSU1QT1JU
QU5UOiBXZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRvIGZvbGxvdyB0aGUgY29udmVudGlvbiBv
ZiBuYW1pbmcgeW91cgotKip0ZXN0IGNhc2UqKiAobm90IHRlc3QpIGAqRGVhdGhUZXN0YCB3aGVu
IGl0IGNvbnRhaW5zIGEgZGVhdGggdGVzdCwgYXMKLWRlbW9uc3RyYXRlZCBpbiB0aGUgYWJvdmUg
ZXhhbXBsZS4gVGhlIFtEZWF0aCBUZXN0cyBBbmQKLVRocmVhZHNdKCNkZWF0aC10ZXN0cy1hbmQt
dGhyZWFkcykgc2VjdGlvbiBiZWxvdyBleHBsYWlucyB3aHkuCi0KLUlmIGEgdGVzdCBmaXh0dXJl
IGNsYXNzIGlzIHNoYXJlZCBieSBub3JtYWwgdGVzdHMgYW5kIGRlYXRoIHRlc3RzLCB5b3UgY2Fu
IHVzZQotYHVzaW5nYCBvciBgdHlwZWRlZmAgdG8gaW50cm9kdWNlIGFuIGFsaWFzIGZvciB0aGUg
Zml4dHVyZSBjbGFzcyBhbmQgYXZvaWQKLWR1cGxpY2F0aW5nIGl0cyBjb2RlOgotCi1gYGBjKysK
LWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsgLi4uIH07Ci0KLXVzaW5n
IEZvb0RlYXRoVGVzdCA9IEZvb1Rlc3Q7Ci0KLVRFU1RfRihGb29UZXN0LCBEb2VzVGhpcykgewot
ICAvLyBub3JtYWwgdGVzdAotfQotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBEb2VzVGhhdCkgewot
ICAvLyBkZWF0aCB0ZXN0Ci19Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgQ3lnd2luLCBhbmQgTWFjCi0KLSMjIyBS
ZWd1bGFyIEV4cHJlc3Npb24gU3ludGF4Ci0KLQotT24gUE9TSVggc3lzdGVtcyAoZS5nLiBMaW51
eCwgQ3lnd2luLCBhbmQgTWFjKSwgZ29vZ2xldGVzdCB1c2VzIHRoZQotW1BPU0lYIGV4dGVuZGVk
IHJlZ3VsYXIgZXhwcmVzc2lvbl0oaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv
MDA5Njk1Mzk5L2Jhc2VkZWZzL3hiZF9jaGFwMDkuaHRtbCN0YWdfMDlfMDQpCi1zeW50YXguIFRv
IGxlYXJuIGFib3V0IHRoaXMgc3ludGF4LCB5b3UgbWF5IHdhbnQgdG8gcmVhZCB0aGlzCi1bV2lr
aXBlZGlhIGVudHJ5XShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlZ3VsYXJfZXhwcmVz
c2lvbiNQT1NJWF9FeHRlbmRlZF9SZWd1bGFyX0V4cHJlc3Npb25zKS4KLQotT24gV2luZG93cywg
Z29vZ2xldGVzdCB1c2VzIGl0cyBvd24gc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbXBsZW1l
bnRhdGlvbi4gSXQKLWxhY2tzIG1hbnkgZmVhdHVyZXMuIEZvciBleGFtcGxlLCB3ZSBkb24ndCBz
dXBwb3J0IHVuaW9uIChgInh8eSJgKSwgZ3JvdXBpbmcKLShgIih4eSkiYCksIGJyYWNrZXRzIChg
Ilt4eV0iYCksIGFuZCByZXBldGl0aW9uIGNvdW50IChgInh7NSw3fSJgKSwgYW1vbmcKLW90aGVy
cy4gQmVsb3cgaXMgd2hhdCB3ZSBkbyBzdXBwb3J0IChgQWAgZGVub3RlcyBhIGxpdGVyYWwgY2hh
cmFjdGVyLCBwZXJpb2QKLShgLmApLCBvciBhIHNpbmdsZSBgXFwgYCBlc2NhcGUgc2VxdWVuY2U7
IGB4YCBhbmQgYHlgIGRlbm90ZSByZWd1bGFyCi1leHByZXNzaW9ucy4pOgotCi1FeHByZXNzaW9u
IHwgTWVhbmluZwotLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1gY2AgICAgICAgIHwgbWF0Y2hlcyBhbnkg
bGl0ZXJhbCBjaGFyYWN0ZXIgYGNgCi1gXFxkYCAgICAgIHwgbWF0Y2hlcyBhbnkgZGVjaW1hbCBk
aWdpdAotYFxcRGAgICAgICB8IG1hdGNoZXMgYW55IGNoYXJhY3RlciB0aGF0J3Mgbm90IGEgZGVj
aW1hbCBkaWdpdAotYFxcZmAgICAgICB8IG1hdGNoZXMgYFxmYAotYFxcbmAgICAgICB8IG1hdGNo
ZXMgYFxuYAotYFxccmAgICAgICB8IG1hdGNoZXMgYFxyYAotYFxcc2AgICAgICB8IG1hdGNoZXMg
YW55IEFTQ0lJIHdoaXRlc3BhY2UsIGluY2x1ZGluZyBgXG5gCi1gXFxTYCAgICAgIHwgbWF0Y2hl
cyBhbnkgY2hhcmFjdGVyIHRoYXQncyBub3QgYSB3aGl0ZXNwYWNlCi1gXFx0YCAgICAgIHwgbWF0
Y2hlcyBgXHRgCi1gXFx2YCAgICAgIHwgbWF0Y2hlcyBgXHZgCi1gXFx3YCAgICAgIHwgbWF0Y2hl
cyBhbnkgbGV0dGVyLCBgX2AsIG9yIGRlY2ltYWwgZGlnaXQKLWBcXFdgICAgICAgfCBtYXRjaGVz
IGFueSBjaGFyYWN0ZXIgdGhhdCBgXFx3YCBkb2Vzbid0IG1hdGNoCi1gXFxjYCAgICAgIHwgbWF0
Y2hlcyBhbnkgbGl0ZXJhbCBjaGFyYWN0ZXIgYGNgLCB3aGljaCBtdXN0IGJlIGEgcHVuY3R1YXRp
b24KLWAuYCAgICAgICAgfCBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyIGV4Y2VwdCBgXG5g
Ci1gQT9gICAgICAgIHwgbWF0Y2hlcyAwIG9yIDEgb2NjdXJyZW5jZXMgb2YgYEFgCi1gQSpgICAg
ICAgIHwgbWF0Y2hlcyAwIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2YgYEFgCi1gQStgICAgICAgIHwg
bWF0Y2hlcyAxIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2YgYEFgCi1gXmAgICAgICAgIHwgbWF0Y2hl
cyB0aGUgYmVnaW5uaW5nIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpCi1gJGAg
ICAgICAgIHwgbWF0Y2hlcyB0aGUgZW5kIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxp
bmUpCi1geHlgICAgICAgIHwgbWF0Y2hlcyBgeGAgZm9sbG93ZWQgYnkgYHlgCi0KLVRvIGhlbHAg
eW91IGRldGVybWluZSB3aGljaCBjYXBhYmlsaXR5IGlzIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3Rl
bSwgZ29vZ2xldGVzdAotZGVmaW5lcyBtYWNyb3MgdG8gZ292ZXJuIHdoaWNoIHJlZ3VsYXIgZXhw
cmVzc2lvbiBpdCBpcyB1c2luZy4gVGhlIG1hY3JvcyBhcmU6Ci08IS0tYWJzbDpnb29nbGUzLWJl
Z2luKGdvb2dsZTMtb25seSktLT5gR1RFU1RfVVNFU19QQ1JFPTFgLCBvcgotPCEtLWFic2w6Z29v
Z2xlMy1lbmQtLT4gYEdURVNUX1VTRVNfU0lNUExFX1JFPTFgIG9yIGBHVEVTVF9VU0VTX1BPU0lY
X1JFPTFgLiBJZgoteW91IHdhbnQgeW91ciBkZWF0aCB0ZXN0cyB0byB3b3JrIGluIGFsbCBjYXNl
cywgeW91IGNhbiBlaXRoZXIgYCNpZmAgb24gdGhlc2UKLW1hY3JvcyBvciB1c2UgdGhlIG1vcmUg
bGltaXRlZCBzeW50YXggb25seS4KLQotIyMjIEhvdyBJdCBXb3JrcwotCi1VbmRlciB0aGUgaG9v
ZCwgYEFTU0VSVF9FWElUKClgIHNwYXducyBhIG5ldyBwcm9jZXNzIGFuZCBleGVjdXRlcyB0aGUg
ZGVhdGggdGVzdAotc3RhdGVtZW50IGluIHRoYXQgcHJvY2Vzcy4gVGhlIGRldGFpbHMgb2YgaG93
IHByZWNpc2VseSB0aGF0IGhhcHBlbnMgZGVwZW5kIG9uCi10aGUgcGxhdGZvcm0gYW5kIHRoZSB2
YXJpYWJsZSA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgKHdoaWNoIGlz
Ci1pbml0aWFsaXplZCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgZmxhZyBgLS1ndGVzdF9kZWF0aF90
ZXN0X3N0eWxlYCkuCi0KLSogICBPbiBQT1NJWCBzeXN0ZW1zLCBgZm9yaygpYCAob3IgYGNsb25l
KClgIG9uIExpbnV4KSBpcyB1c2VkIHRvIHNwYXduIHRoZQotICAgIGNoaWxkLCBhZnRlciB3aGlj
aDoKLSAgICAqICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMgYCJmYXN0ImAsIHRoZSBkZWF0
aCB0ZXN0IHN0YXRlbWVudCBpcwotICAgICAgICBpbW1lZGlhdGVseSBleGVjdXRlZC4KLSAgICAq
ICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMgYCJ0aHJlYWRzYWZlImAsIHRoZSBjaGlsZCBw
cm9jZXNzIHJlLWV4ZWN1dGVzCi0gICAgICAgIHRoZSB1bml0IHRlc3QgYmluYXJ5IGp1c3QgYXMg
aXQgd2FzIG9yaWdpbmFsbHkgaW52b2tlZCwgYnV0IHdpdGggc29tZQotICAgICAgICBleHRyYSBm
bGFncyB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVhdGggdGVzdCB1bmRlciBjb25zaWRlcmF0
aW9uIHRvCi0gICAgICAgIGJlIHJ1bi4KLSogICBPbiBXaW5kb3dzLCB0aGUgY2hpbGQgaXMgc3Bh
d25lZCB1c2luZyB0aGUgYENyZWF0ZVByb2Nlc3MoKWAgQVBJLCBhbmQKLSAgICByZS1leGVjdXRl
cyB0aGUgYmluYXJ5IHRvIGNhdXNlIGp1c3QgdGhlIHNpbmdsZSBkZWF0aCB0ZXN0IHVuZGVyCi0g
ICAgY29uc2lkZXJhdGlvbiB0byBiZSBydW4gLSBtdWNoIGxpa2UgdGhlIGB0aHJlYWRzYWZlYCBt
b2RlIG9uIFBPU0lYLgotCi1PdGhlciB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSBhcmUgaWxsZWdh
bCBhbmQgd2lsbCBjYXVzZSB0aGUgZGVhdGggdGVzdCB0byBmYWlsLgotQ3VycmVudGx5LCB0aGUg
ZmxhZydzIGRlZmF1bHQgdmFsdWUgaXMKLSJmYXN0Ii4gSG93ZXZlciwgd2UgcmVzZXJ2ZQotdGhl
IHJpZ2h0IHRvIGNoYW5nZSBpdCBpbiB0aGUgZnV0dXJlLiBUaGVyZWZvcmUsIHlvdXIgdGVzdHMg
c2hvdWxkIG5vdCBkZXBlbmQgb24KLXRoaXMuIEluIGVpdGhlciBjYXNlLCB0aGUgcGFyZW50IHBy
b2Nlc3Mgd2FpdHMgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvCi1jb21wbGV0ZSwgYW5kIGNoZWNr
cyB0aGF0Ci0KLTEuICB0aGUgY2hpbGQncyBleGl0IHN0YXR1cyBzYXRpc2ZpZXMgdGhlIHByZWRp
Y2F0ZSwgYW5kCi0yLiAgdGhlIGNoaWxkJ3Mgc3RkZXJyIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhw
cmVzc2lvbi4KLQotSWYgdGhlIGRlYXRoIHRlc3Qgc3RhdGVtZW50IHJ1bnMgdG8gY29tcGxldGlv
biB3aXRob3V0IGR5aW5nLCB0aGUgY2hpbGQgcHJvY2Vzcwotd2lsbCBub25ldGhlbGVzcyB0ZXJt
aW5hdGUsIGFuZCB0aGUgYXNzZXJ0aW9uIGZhaWxzLgotCi0jIyMgRGVhdGggVGVzdHMgQW5kIFRo
cmVhZHMKLQotVGhlIHJlYXNvbiBmb3IgdGhlIHR3byBkZWF0aCB0ZXN0IHN0eWxlcyBoYXMgdG8g
ZG8gd2l0aCB0aHJlYWQgc2FmZXR5LiBEdWUgdG8KLXdlbGwta25vd24gcHJvYmxlbXMgd2l0aCBm
b3JraW5nIGluIHRoZSBwcmVzZW5jZSBvZiB0aHJlYWRzLCBkZWF0aCB0ZXN0cyBzaG91bGQKLWJl
IHJ1biBpbiBhIHNpbmdsZS10aHJlYWRlZCBjb250ZXh0LiBTb21ldGltZXMsIGhvd2V2ZXIsIGl0
IGlzbid0IGZlYXNpYmxlIHRvCi1hcnJhbmdlIHRoYXQga2luZCBvZiBlbnZpcm9ubWVudC4gRm9y
IGV4YW1wbGUsIHN0YXRpY2FsbHktaW5pdGlhbGl6ZWQgbW9kdWxlcwotbWF5IHN0YXJ0IHRocmVh
ZHMgYmVmb3JlIG1haW4gaXMgZXZlciByZWFjaGVkLiBPbmNlIHRocmVhZHMgaGF2ZSBiZWVuIGNy
ZWF0ZWQsCi1pdCBtYXkgYmUgZGlmZmljdWx0IG9yIGltcG9zc2libGUgdG8gY2xlYW4gdGhlbSB1
cC4KLQotZ29vZ2xldGVzdCBoYXMgdGhyZWUgZmVhdHVyZXMgaW50ZW5kZWQgdG8gcmFpc2UgYXdh
cmVuZXNzIG9mIHRocmVhZGluZyBpc3N1ZXMuCi0KLTEuICBBIHdhcm5pbmcgaXMgZW1pdHRlZCBp
ZiBtdWx0aXBsZSB0aHJlYWRzIGFyZSBydW5uaW5nIHdoZW4gYSBkZWF0aCB0ZXN0IGlzCi0gICAg
ZW5jb3VudGVyZWQuCi0yLiAgVGVzdCBjYXNlcyB3aXRoIGEgbmFtZSBlbmRpbmcgaW4gIkRlYXRo
VGVzdCIgYXJlIHJ1biBiZWZvcmUgYWxsIG90aGVyIHRlc3RzLgotMy4gIEl0IHVzZXMgYGNsb25l
KClgIGluc3RlYWQgb2YgYGZvcmsoKWAgdG8gc3Bhd24gdGhlIGNoaWxkIHByb2Nlc3Mgb24gTGlu
dXgKLSAgICAoYGNsb25lKClgIGlzIG5vdCBhdmFpbGFibGUgb24gQ3lnd2luIGFuZCBNYWMpLCBh
cyBgZm9yaygpYCBpcyBtb3JlIGxpa2VseQotICAgIHRvIGNhdXNlIHRoZSBjaGlsZCB0byBoYW5n
IHdoZW4gdGhlIHBhcmVudCBwcm9jZXNzIGhhcyBtdWx0aXBsZSB0aHJlYWRzLgotCi1JdCdzIHBl
cmZlY3RseSBmaW5lIHRvIGNyZWF0ZSB0aHJlYWRzIGluc2lkZSBhIGRlYXRoIHRlc3Qgc3RhdGVt
ZW50OyB0aGV5IGFyZQotZXhlY3V0ZWQgaW4gYSBzZXBhcmF0ZSBwcm9jZXNzIGFuZCBjYW5ub3Qg
YWZmZWN0IHRoZSBwYXJlbnQuCi0KLSMjIyBEZWF0aCBUZXN0IFN0eWxlcwotCi0KLVRoZSAidGhy
ZWFkc2FmZSIgZGVhdGggdGVzdCBzdHlsZSB3YXMgaW50cm9kdWNlZCBpbiBvcmRlciB0byBoZWxw
IG1pdGlnYXRlIHRoZQotcmlza3Mgb2YgdGVzdGluZyBpbiBhIHBvc3NpYmx5IG11bHRpdGhyZWFk
ZWQgZW52aXJvbm1lbnQuIEl0IHRyYWRlcyBpbmNyZWFzZWQKLXRlc3QgZXhlY3V0aW9uIHRpbWUg
KHBvdGVudGlhbGx5IGRyYW1hdGljYWxseSBzbykgZm9yIGltcHJvdmVkIHRocmVhZCBzYWZldHku
Ci0KLVRoZSBhdXRvbWF0ZWQgdGVzdGluZyBmcmFtZXdvcmsgZG9lcyBub3Qgc2V0IHRoZSBzdHls
ZSBmbGFnLiBZb3UgY2FuIGNob29zZSBhCi1wYXJ0aWN1bGFyIHN0eWxlIG9mIGRlYXRoIHRlc3Rz
IGJ5IHNldHRpbmcgdGhlIGZsYWcgcHJvZ3JhbW1hdGljYWxseToKLQotYGBgYysrCi10ZXN0aW5n
OjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlPSJ0aHJlYWRzYWZlIgotYGBgCi0KLVlvdSBj
YW4gZG8gdGhpcyBpbiBgbWFpbigpYCB0byBzZXQgdGhlIHN0eWxlIGZvciBhbGwgZGVhdGggdGVz
dHMgaW4gdGhlIGJpbmFyeSwKLW9yIGluIGluZGl2aWR1YWwgdGVzdHMuIFJlY2FsbCB0aGF0IGZs
YWdzIGFyZSBzYXZlZCBiZWZvcmUgcnVubmluZyBlYWNoIHRlc3QgYW5kCi1yZXN0b3JlZCBhZnRl
cndhcmRzLCBzbyB5b3UgbmVlZCBub3QgZG8gdGhhdCB5b3Vyc2VsZi4gRm9yIGV4YW1wbGU6Ci0K
LWBgYGMrKwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIEluaXRHb29nbGUo
YXJndlswXSwgJmFyZ2MsICZhcmd2LCB0cnVlKTsKLSAgOjp0ZXN0aW5nOjpGTEFHU19ndGVzdF9k
ZWF0aF90ZXN0X3N0eWxlID0gImZhc3QiOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQot
Ci1URVNUKE15RGVhdGhUZXN0LCBUZXN0T25lKSB7Ci0gIDo6dGVzdGluZzo6RkxBR1NfZ3Rlc3Rf
ZGVhdGhfdGVzdF9zdHlsZSA9ICJ0aHJlYWRzYWZlIjsKLSAgLy8gVGhpcyB0ZXN0IGlzIHJ1biBp
biB0aGUgInRocmVhZHNhZmUiIHN0eWxlOgotICBBU1NFUlRfREVBVEgoVGhpc1Nob3VsZERpZSgp
LCAiIik7Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIFRlc3RUd28pIHsKLSAgLy8gVGhpcyB0ZXN0
IGlzIHJ1biBpbiB0aGUgImZhc3QiIHN0eWxlOgotICBBU1NFUlRfREVBVEgoVGhpc1Nob3VsZERp
ZSgpLCAiIik7Ci19Ci1gYGAKLQotCi0jIyMgQ2F2ZWF0cwotCi1UaGUgYHN0YXRlbWVudGAgYXJn
dW1lbnQgb2YgYEFTU0VSVF9FWElUKClgIGNhbiBiZSBhbnkgdmFsaWQgQysrIHN0YXRlbWVudC4g
SWYKLWl0IGxlYXZlcyB0aGUgY3VycmVudCBmdW5jdGlvbiB2aWEgYSBgcmV0dXJuYCBzdGF0ZW1l
bnQgb3IgYnkgdGhyb3dpbmcgYW4KLWV4Y2VwdGlvbiwgdGhlIGRlYXRoIHRlc3QgaXMgY29uc2lk
ZXJlZCB0byBoYXZlIGZhaWxlZC4gU29tZSBnb29nbGV0ZXN0IG1hY3JvcwotbWF5IHJldHVybiBm
cm9tIHRoZSBjdXJyZW50IGZ1bmN0aW9uIChlLmcuIGBBU1NFUlRfVFJVRSgpYCksIHNvIGJlIHN1
cmUgdG8gYXZvaWQKLXRoZW0gaW4gYHN0YXRlbWVudGAuCi0KLVNpbmNlIGBzdGF0ZW1lbnRgIHJ1
bnMgaW4gdGhlIGNoaWxkIHByb2Nlc3MsIGFueSBpbi1tZW1vcnkgc2lkZSBlZmZlY3QgKGUuZy4K
LW1vZGlmeWluZyBhIHZhcmlhYmxlLCByZWxlYXNpbmcgbWVtb3J5LCBldGMpIGl0IGNhdXNlcyB3
aWxsICpub3QqIGJlIG9ic2VydmFibGUKLWluIHRoZSBwYXJlbnQgcHJvY2Vzcy4gSW4gcGFydGlj
dWxhciwgaWYgeW91IHJlbGVhc2UgbWVtb3J5IGluIGEgZGVhdGggdGVzdCwKLXlvdXIgcHJvZ3Jh
bSB3aWxsIGZhaWwgdGhlIGhlYXAgY2hlY2sgYXMgdGhlIHBhcmVudCBwcm9jZXNzIHdpbGwgbmV2
ZXIgc2VlIHRoZQotbWVtb3J5IHJlY2xhaW1lZC4gVG8gc29sdmUgdGhpcyBwcm9ibGVtLCB5b3Ug
Y2FuCi0KLTEuICB0cnkgbm90IHRvIGZyZWUgbWVtb3J5IGluIGEgZGVhdGggdGVzdDsKLTIuICBm
cmVlIHRoZSBtZW1vcnkgYWdhaW4gaW4gdGhlIHBhcmVudCBwcm9jZXNzOyBvcgotMy4gIGRvIG5v
dCB1c2UgdGhlIGhlYXAgY2hlY2tlciBpbiB5b3VyIHByb2dyYW0uCi0KLUR1ZSB0byBhbiBpbXBs
ZW1lbnRhdGlvbiBkZXRhaWwsIHlvdSBjYW5ub3QgcGxhY2UgbXVsdGlwbGUgZGVhdGggdGVzdCBh
c3NlcnRpb25zCi1vbiB0aGUgc2FtZSBsaW5lOyBvdGhlcndpc2UsIGNvbXBpbGF0aW9uIHdpbGwg
ZmFpbCB3aXRoIGFuIHVub2J2aW91cyBlcnJvcgotbWVzc2FnZS4KLQotRGVzcGl0ZSB0aGUgaW1w
cm92ZWQgdGhyZWFkIHNhZmV0eSBhZmZvcmRlZCBieSB0aGUgInRocmVhZHNhZmUiIHN0eWxlIG9m
IGRlYXRoCi10ZXN0LCB0aHJlYWQgcHJvYmxlbXMgc3VjaCBhcyBkZWFkbG9jayBhcmUgc3RpbGwg
cG9zc2libGUgaW4gdGhlIHByZXNlbmNlIG9mCi1oYW5kbGVycyByZWdpc3RlcmVkIHdpdGggYHB0
aHJlYWRfYXRmb3JrKDMpYC4KLQotCi0jIyBVc2luZyBBc3NlcnRpb25zIGluIFN1Yi1yb3V0aW5l
cwotCi0jIyMgQWRkaW5nIFRyYWNlcyB0byBBc3NlcnRpb25zCi0KLUlmIGEgdGVzdCBzdWItcm91
dGluZSBpcyBjYWxsZWQgZnJvbSBzZXZlcmFsIHBsYWNlcywgd2hlbiBhbiBhc3NlcnRpb24gaW5z
aWRlIGl0Ci1mYWlscywgaXQgY2FuIGJlIGhhcmQgdG8gdGVsbCB3aGljaCBpbnZvY2F0aW9uIG9m
IHRoZSBzdWItcm91dGluZSB0aGUgZmFpbHVyZSBpcwotZnJvbS4gCi1Zb3UgY2FuIGFsbGV2aWF0
ZSB0aGlzIHByb2JsZW0gdXNpbmcgZXh0cmEgbG9nZ2luZyBvciBjdXN0b20gZmFpbHVyZSBtZXNz
YWdlcywKLWJ1dCB0aGF0IHVzdWFsbHkgY2x1dHRlcnMgdXAgeW91ciB0ZXN0cy4gQSBiZXR0ZXIg
c29sdXRpb24gaXMgdG8gdXNlIHRoZQotYFNDT1BFRF9UUkFDRWAgbWFjcm8gb3IgdGhlIGBTY29w
ZWRUcmFjZWAgdXRpbGl0eToKLQotYGBgYysrCi1TQ09QRURfVFJBQ0UobWVzc2FnZSk7Ci1TY29w
ZWRUcmFjZSB0cmFjZSgiZmlsZV9wYXRoIiwgbGluZV9udW1iZXIsIG1lc3NhZ2UpOwotYGBgCi0K
LXdoZXJlIGBtZXNzYWdlYCBjYW4gYmUgYW55dGhpbmcgc3RyZWFtYWJsZSB0byBgc3RkOjpvc3Ry
ZWFtYC4gYFNDT1BFRF9UUkFDRWAKLW1hY3JvIHdpbGwgY2F1c2UgdGhlIGN1cnJlbnQgZmlsZSBu
YW1lLCBsaW5lIG51bWJlciwgYW5kIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJlCi1hZGRlZCBpbiBl
dmVyeSBmYWlsdXJlIG1lc3NhZ2UuIGBTY29wZWRUcmFjZWAgYWNjZXB0cyBleHBsaWNpdCBmaWxl
IG5hbWUgYW5kCi1saW5lIG51bWJlciBpbiBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3Ig
d3JpdGluZyB0ZXN0IGhlbHBlcnMuIFRoZSBlZmZlY3QKLXdpbGwgYmUgdW5kb25lIHdoZW4gdGhl
IGNvbnRyb2wgbGVhdmVzIHRoZSBjdXJyZW50IGxleGljYWwgc2NvcGUuCi0KLUZvciBleGFtcGxl
LAotCi1gYGBjKysKLTEwOiB2b2lkIFN1YjEoaW50IG4pIHsKLTExOiAgIEVYUEVDVF9FUSgxLCBC
YXIobikpOwotMTI6ICAgRVhQRUNUX0VRKDIsIEJhcihuICsgMSkpOwotMTM6IH0KLTE0OgotMTU6
IFRFU1QoRm9vVGVzdCwgQmFyKSB7Ci0xNjogICB7Ci0xNzogICAgIFNDT1BFRF9UUkFDRSgiQSIp
OyAgLy8gVGhpcyB0cmFjZSBwb2ludCB3aWxsIGJlIGluY2x1ZGVkIGluCi0xODogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZXZlcnkgZmFpbHVyZSBpbiB0aGlzIHNjb3BlLgotMTk6ICAgICBT
dWIxKDEpOwotMjA6ICAgfQotMjE6ICAgLy8gTm93IGl0IHdvbid0LgotMjI6ICAgU3ViMSg5KTsK
LTIzOiB9Ci1gYGAKLQotY291bGQgcmVzdWx0IGluIG1lc3NhZ2VzIGxpa2UgdGhlc2U6Ci0KLWBg
YG5vbmUKLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTE6IEZhaWx1cmUKLVZhbHVlIG9mOiBCYXIobikK
LUV4cGVjdGVkOiAxCi0gIEFjdHVhbDogMgotICAgVHJhY2U6Ci1wYXRoL3RvL2Zvb190ZXN0LmNj
OjE3OiBBCi0KLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTI6IEZhaWx1cmUKLVZhbHVlIG9mOiBCYXIo
biArIDEpCi1FeHBlY3RlZDogMgotICBBY3R1YWw6IDMKLWBgYAotCi1XaXRob3V0IHRoZSB0cmFj
ZSwgaXQgd291bGQndmUgYmVlbiBkaWZmaWN1bHQgdG8ga25vdyB3aGljaCBpbnZvY2F0aW9uIG9m
Ci1gU3ViMSgpYCB0aGUgdHdvIGZhaWx1cmVzIGNvbWUgZnJvbSByZXNwZWN0aXZlbHkuIChZb3Ug
Y291bGQgYWRkCi0KLWFuIGV4dHJhIG1lc3NhZ2UgdG8gZWFjaCBhc3NlcnRpb24gaW4gYFN1YjEo
KWAgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIGBuYCwgYnV0Ci10aGF0J3MgdGVkaW91cy4pCi0K
LVNvbWUgdGlwcyBvbiB1c2luZyBgU0NPUEVEX1RSQUNFYDoKLQotMS4gIFdpdGggYSBzdWl0YWJs
ZSBtZXNzYWdlLCBpdCdzIG9mdGVuIGVub3VnaCB0byB1c2UgYFNDT1BFRF9UUkFDRWAgYXQgdGhl
Ci0gICAgYmVnaW5uaW5nIG9mIGEgc3ViLXJvdXRpbmUsIGluc3RlYWQgb2YgYXQgZWFjaCBjYWxs
IHNpdGUuCi0yLiAgV2hlbiBjYWxsaW5nIHN1Yi1yb3V0aW5lcyBpbnNpZGUgYSBsb29wLCBtYWtl
IHRoZSBsb29wIGl0ZXJhdG9yIHBhcnQgb2YgdGhlCi0gICAgbWVzc2FnZSBpbiBgU0NPUEVEX1RS
QUNFYCBzdWNoIHRoYXQgeW91IGNhbiBrbm93IHdoaWNoIGl0ZXJhdGlvbiB0aGUgZmFpbHVyZQot
ICAgIGlzIGZyb20uCi0zLiAgU29tZXRpbWVzIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgdHJhY2Ug
cG9pbnQgaXMgZW5vdWdoIGZvciBpZGVudGlmeWluZyB0aGUKLSAgICBwYXJ0aWN1bGFyIGludm9j
YXRpb24gb2YgYSBzdWItcm91dGluZS4gSW4gdGhpcyBjYXNlLCB5b3UgZG9uJ3QgaGF2ZSB0bwot
ICAgIGNob29zZSBhIHVuaXF1ZSBtZXNzYWdlIGZvciBgU0NPUEVEX1RSQUNFYC4gWW91IGNhbiBz
aW1wbHkgdXNlIGAiImAuCi00LiAgWW91IGNhbiB1c2UgYFNDT1BFRF9UUkFDRWAgaW4gYW4gaW5u
ZXIgc2NvcGUgd2hlbiB0aGVyZSBpcyBvbmUgaW4gdGhlIG91dGVyCi0gICAgc2NvcGUuIEluIHRo
aXMgY2FzZSwgYWxsIGFjdGl2ZSB0cmFjZSBwb2ludHMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUg
ZmFpbHVyZQotICAgIG1lc3NhZ2VzLCBpbiByZXZlcnNlIG9yZGVyIHRoZXkgYXJlIGVuY291bnRl
cmVkLgotNS4gIFRoZSB0cmFjZSBkdW1wIGlzIGNsaWNrYWJsZSBpbiBFbWFjcyAtIGhpdCBgcmV0
dXJuYCBvbiBhIGxpbmUgbnVtYmVyIGFuZAotICAgIHlvdSdsbCBiZSB0YWtlbiB0byB0aGF0IGxp
bmUgaW4gdGhlIHNvdXJjZSBmaWxlIQotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93
cywgTWFjLgotCi0jIyMgUHJvcGFnYXRpbmcgRmF0YWwgRmFpbHVyZXMKLQotQSBjb21tb24gcGl0
ZmFsbCB3aGVuIHVzaW5nIGBBU1NFUlRfKmAgYW5kIGBGQUlMKmAgaXMgbm90IHVuZGVyc3RhbmRp
bmcgdGhhdAotd2hlbiB0aGV5IGZhaWwgdGhleSBvbmx5IGFib3J0IHRoZSBfY3VycmVudCBmdW5j
dGlvbl8sIG5vdCB0aGUgZW50aXJlIHRlc3QuIEZvcgotZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0
ZXN0IHdpbGwgc2VnZmF1bHQ6Ci0KLWBgYGMrKwotdm9pZCBTdWJyb3V0aW5lKCkgewotICAvLyBH
ZW5lcmF0ZXMgYSBmYXRhbCBmYWlsdXJlIGFuZCBhYm9ydHMgdGhlIGN1cnJlbnQgZnVuY3Rpb24u
Ci0gIEFTU0VSVF9FUSgxLCAyKTsKLQotICAvLyBUaGUgZm9sbG93aW5nIHdvbid0IGJlIGV4ZWN1
dGVkLgotICAuLi4KLX0KLQotVEVTVChGb29UZXN0LCBCYXIpIHsKLSAgU3Vicm91dGluZSgpOyAg
Ly8gVGhlIGludGVuZGVkIGJlaGF2aW9yIGlzIGZvciB0aGUgZmF0YWwgZmFpbHVyZQotICAgICAg
ICAgICAgICAgICAvLyBpbiBTdWJyb3V0aW5lKCkgdG8gYWJvcnQgdGhlIGVudGlyZSB0ZXN0Lgot
Ci0gIC8vIFRoZSBhY3R1YWwgYmVoYXZpb3I6IHRoZSBmdW5jdGlvbiBnb2VzIG9uIGFmdGVyIFN1
YnJvdXRpbmUoKSByZXR1cm5zLgotICBpbnQqIHAgPSBOVUxMOwotICAqcCA9IDM7ICAvLyBTZWdm
YXVsdCEKLX0KLWBgYAotCi1UbyBhbGxldmlhdGUgdGhpcywgZ29vZ2xldGVzdCBwcm92aWRlcyB0
aHJlZSBkaWZmZXJlbnQgc29sdXRpb25zLiBZb3UgY291bGQgdXNlCi1laXRoZXIgZXhjZXB0aW9u
cywgdGhlIGAoQVNTRVJUfEVYUEVDVClfTk9fRkFUQUxfRkFJTFVSRWAgYXNzZXJ0aW9ucyBvciB0
aGUKLWBIYXNGYXRhbEZhaWx1cmUoKWAgZnVuY3Rpb24uIFRoZXkgYXJlIGRlc2NyaWJlZCBpbiB0
aGUgZm9sbG93aW5nIHR3bwotc3Vic2VjdGlvbnMuCi0KLSMjIyMgQXNzZXJ0aW5nIG9uIFN1YnJv
dXRpbmVzIHdpdGggYW4gZXhjZXB0aW9uCi0KLVRoZSBmb2xsb3dpbmcgY29kZSBjYW4gdHVybiBB
U1NFUlQtZmFpbHVyZSBpbnRvIGFuIGV4Y2VwdGlvbjoKLQotYGBgYysrCi1jbGFzcyBUaHJvd0xp
c3RlbmVyIDogcHVibGljIHRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgdGVzdGluZzo6VGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkg
b3ZlcnJpZGUgewotICAgIGlmIChyZXN1bHQudHlwZSgpID09IHRlc3Rpbmc6OlRlc3RQYXJ0UmVz
dWx0OjprRmF0YWxGYWlsdXJlKSB7Ci0gICAgICB0aHJvdyB0ZXN0aW5nOjpBc3NlcnRpb25FeGNl
cHRpb24ocmVzdWx0KTsKLSAgICB9Ci0gIH0KLX07Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpIHsKLSAgLi4uCi0gIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0
ZW5lcnMoKS5BcHBlbmQobmV3IFRocm93TGlzdGVuZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNU
UygpOwotfQotYGBgCi0KLVRoaXMgbGlzdGVuZXIgc2hvdWxkIGJlIGFkZGVkIGFmdGVyIG90aGVy
IGxpc3RlbmVycyBpZiB5b3UgaGF2ZSBhbnksIG90aGVyd2lzZQotdGhleSB3b24ndCBzZWUgZmFp
bGVkIGBPblRlc3RQYXJ0UmVzdWx0YC4KLQotIyMjIyBBc3NlcnRpbmcgb24gU3Vicm91dGluZXMK
LQotQXMgc2hvd24gYWJvdmUsIGlmIHlvdXIgdGVzdCBjYWxscyBhIHN1YnJvdXRpbmUgdGhhdCBo
YXMgYW4gYEFTU0VSVF8qYCBmYWlsdXJlCi1pbiBpdCwgdGhlIHRlc3Qgd2lsbCBjb250aW51ZSBh
ZnRlciB0aGUgc3Vicm91dGluZSByZXR1cm5zLiBUaGlzIG1heSBub3QgYmUgd2hhdAoteW91IHdh
bnQuCi0KLU9mdGVuIHBlb3BsZSB3YW50IGZhdGFsIGZhaWx1cmVzIHRvIHByb3BhZ2F0ZSBsaWtl
IGV4Y2VwdGlvbnMuIEZvciB0aGF0Ci1nb29nbGV0ZXN0IG9mZmVycyB0aGUgZm9sbG93aW5nIG1h
Y3JvczoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFs
IGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfCAtLS0tLS0tLQotYEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKHN0YXRlbWVudCk7YCB8
IGBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShzdGF0ZW1lbnQpO2AgfCBgc3RhdGVtZW50YCBkb2Vz
bid0IGdlbmVyYXRlIGFueSBuZXcgZmF0YWwgZmFpbHVyZXMgaW4gdGhlIGN1cnJlbnQgdGhyZWFk
LgotCi1Pbmx5IGZhaWx1cmVzIGluIHRoZSB0aHJlYWQgdGhhdCBleGVjdXRlcyB0aGUgYXNzZXJ0
aW9uIGFyZSBjaGVja2VkIHRvIGRldGVybWluZQotdGhlIHJlc3VsdCBvZiB0aGlzIHR5cGUgb2Yg
YXNzZXJ0aW9ucy4gSWYgYHN0YXRlbWVudGAgY3JlYXRlcyBuZXcgdGhyZWFkcywKLWZhaWx1cmVz
IGluIHRoZXNlIHRocmVhZHMgYXJlIGlnbm9yZWQuCi0KLUV4YW1wbGVzOgotCi1gYGBjKysKLUFT
U0VSVF9OT19GQVRBTF9GQUlMVVJFKEZvbygpKTsKLQotaW50IGk7Ci1FWFBFQ1RfTk9fRkFUQUxf
RkFJTFVSRSh7Ci0gIGkgPSBCYXIoKTsKLX0pOwotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExp
bnV4LCBXaW5kb3dzLCBNYWMuIEFzc2VydGlvbnMgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGFyZQot
Y3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cy4KLQotIyMjIyBDaGVja2luZyBmb3Ig
RmFpbHVyZXMgaW4gdGhlIEN1cnJlbnQgVGVzdAotCi1gSGFzRmF0YWxGYWlsdXJlKClgIGluIHRo
ZSBgOjp0ZXN0aW5nOjpUZXN0YCBjbGFzcyByZXR1cm5zIGB0cnVlYCBpZiBhbgotYXNzZXJ0aW9u
IGluIHRoZSBjdXJyZW50IHRlc3QgaGFzIHN1ZmZlcmVkIGEgZmF0YWwgZmFpbHVyZS4gVGhpcyBh
bGxvd3MKLWZ1bmN0aW9ucyB0byBjYXRjaCBmYXRhbCBmYWlsdXJlcyBpbiBhIHN1Yi1yb3V0aW5l
IGFuZCByZXR1cm4gZWFybHkuCi0KLWBgYGMrKwotY2xhc3MgVGVzdCB7Ci0gcHVibGljOgotICAu
Li4KLSAgc3RhdGljIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCk7Ci19OwotYGBgCi0KLVRoZSB0eXBp
Y2FsIHVzYWdlLCB3aGljaCBiYXNpY2FsbHkgc2ltdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBhIHRo
cm93biBleGNlcHRpb24sCi1pczoKLQotYGBgYysrCi1URVNUKEZvb1Rlc3QsIEJhcikgewotICBT
dWJyb3V0aW5lKCk7Ci0gIC8vIEFib3J0cyBpZiBTdWJyb3V0aW5lKCkgaGFkIGEgZmF0YWwgZmFp
bHVyZS4KLSAgaWYgKEhhc0ZhdGFsRmFpbHVyZSgpKSByZXR1cm47Ci0KLSAgLy8gVGhlIGZvbGxv
d2luZyB3b24ndCBiZSBleGVjdXRlZC4KLSAgLi4uCi19Ci1gYGAKLQotSWYgYEhhc0ZhdGFsRmFp
bHVyZSgpYCBpcyB1c2VkIG91dHNpZGUgb2YgYFRFU1QoKWAgLCBgVEVTVF9GKClgICwgb3IgYSB0
ZXN0Ci1maXh0dXJlLCB5b3UgbXVzdCBhZGQgdGhlIGA6OnRlc3Rpbmc6OlRlc3Q6OmAgcHJlZml4
LCBhcyBpbjoKLQotYGBgYysrCi1pZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUo
KSkgcmV0dXJuOwotYGBgCi0KLVNpbWlsYXJseSwgYEhhc05vbmZhdGFsRmFpbHVyZSgpYCByZXR1
cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhdAotbGVhc3Qgb25lIG5vbi1mYXRh
bCBmYWlsdXJlLCBhbmQgYEhhc0ZhaWx1cmUoKWAgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJl
bnQKLXRlc3QgaGFzIGF0IGxlYXN0IG9uZSBmYWlsdXJlIG9mIGVpdGhlciBraW5kLgotCi0qKkF2
YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyBMb2dnaW5nIEFkZGl0aW9u
YWwgSW5mb3JtYXRpb24KLQotSW4geW91ciB0ZXN0IGNvZGUsIHlvdSBjYW4gY2FsbCBgUmVjb3Jk
UHJvcGVydHkoImtleSIsIHZhbHVlKWAgdG8gbG9nIGFkZGl0aW9uYWwKLWluZm9ybWF0aW9uLCB3
aGVyZSBgdmFsdWVgIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYGludGAuIFRoZSAqbGFz
dCogdmFsdWUKLXJlY29yZGVkIGZvciBhIGtleSB3aWxsIGJlIGVtaXR0ZWQgdG8gdGhlIFtYTUwg
b3V0cHV0XSgjZ2VuZXJhdGluZy1hbi14bWwtcmVwb3J0KSBpZiB5b3UKLXNwZWNpZnkgb25lLiBG
b3IgZXhhbXBsZSwgdGhlIHRlc3QKLQotYGBgYysrCi1URVNUX0YoV2lkZ2V0VXNhZ2VUZXN0LCBN
aW5BbmRNYXhXaWRnZXRzKSB7Ci0gIFJlY29yZFByb3BlcnR5KCJNYXhpbXVtV2lkZ2V0cyIsIENv
bXB1dGVNYXhVc2FnZSgpKTsKLSAgUmVjb3JkUHJvcGVydHkoIk1pbmltdW1XaWRnZXRzIiwgQ29t
cHV0ZU1pblVzYWdlKCkpOwotfQotYGBgCi0KLXdpbGwgb3V0cHV0IFhNTCBsaWtlIHRoaXM6Ci0K
LWBgYHhtbAotICAuLi4KLSAgICA8dGVzdGNhc2UgbmFtZT0iTWluQW5kTWF4V2lkZ2V0cyIgc3Rh
dHVzPSJydW4iIHRpbWU9IjAuMDA2IiBjbGFzc25hbWU9IldpZGdldFVzYWdlVGVzdCIgTWF4aW11
bVdpZGdldHM9IjEyIiBNaW5pbXVtV2lkZ2V0cz0iOSIgLz4KLSAgLi4uCi1gYGAKLQotPiBOT1RF
OgotPgotPiAqICAgYFJlY29yZFByb3BlcnR5KClgIGlzIGEgc3RhdGljIG1lbWJlciBvZiB0aGUg
YFRlc3RgIGNsYXNzLiBUaGVyZWZvcmUgaXQKLT4gICAgIG5lZWRzIHRvIGJlIHByZWZpeGVkIHdp
dGggYDo6dGVzdGluZzo6VGVzdDo6YCBpZiB1c2VkIG91dHNpZGUgb2YgdGhlCi0+ICAgICBgVEVT
VGAgYm9keSBhbmQgdGhlIHRlc3QgZml4dHVyZSBjbGFzcy4KLT4gKiAgIGAqa2V5KmAgbXVzdCBi
ZSBhIHZhbGlkIFhNTCBhdHRyaWJ1dGUgbmFtZSwgYW5kIGNhbm5vdCBjb25mbGljdCB3aXRoIHRo
ZQotPiAgICAgb25lcyBhbHJlYWR5IHVzZWQgYnkgZ29vZ2xldGVzdCAoYG5hbWVgLCBgc3RhdHVz
YCwgYHRpbWVgLCBgY2xhc3NuYW1lYCwKLT4gICAgIGB0eXBlX3BhcmFtYCwgYW5kIGB2YWx1ZV9w
YXJhbWApLgotPiAqICAgQ2FsbGluZyBgUmVjb3JkUHJvcGVydHkoKWAgb3V0c2lkZSBvZiB0aGUg
bGlmZXNwYW4gb2YgYSB0ZXN0IGlzIGFsbG93ZWQuCi0+ICAgICBJZiBpdCdzIGNhbGxlZCBvdXRz
aWRlIG9mIGEgdGVzdCBidXQgYmV0d2VlbiBhIHRlc3QgY2FzZSdzCi0+ICAgICBgU2V0VXBUZXN0
Q2FzZSgpYCBhbmQgYFRlYXJEb3duVGVzdENhc2UoKWAgbWV0aG9kcywgaXQgd2lsbCBiZSBhdHRy
aWJ1dGVkCi0+ICAgICB0byB0aGUgWE1MIGVsZW1lbnQgZm9yIHRoZSB0ZXN0IGNhc2UuIElmIGl0
J3MgY2FsbGVkIG91dHNpZGUgb2YgYWxsIHRlc3QKLT4gICAgIGNhc2VzIChlLmcuIGluIGEgdGVz
dCBlbnZpcm9ubWVudCksIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0byB0aGUgdG9wLWxldmVsCi0+
ICAgICBYTUwgZWxlbWVudC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMgU2hhcmluZyBSZXNvdXJjZXMgQmV0d2VlbiBUZXN0cyBpbiB0aGUgU2FtZSBUZXN0
IENhc2UKLQotZ29vZ2xldGVzdCBjcmVhdGVzIGEgbmV3IHRlc3QgZml4dHVyZSBvYmplY3QgZm9y
IGVhY2ggdGVzdCBpbiBvcmRlciB0byBtYWtlCi10ZXN0cyBpbmRlcGVuZGVudCBhbmQgZWFzaWVy
IHRvIGRlYnVnLiBIb3dldmVyLCBzb21ldGltZXMgdGVzdHMgdXNlIHJlc291cmNlcwotdGhhdCBh
cmUgZXhwZW5zaXZlIHRvIHNldCB1cCwgbWFraW5nIHRoZSBvbmUtY29weS1wZXItdGVzdCBtb2Rl
bCBwcm9oaWJpdGl2ZWx5Ci1leHBlbnNpdmUuCi0KLUlmIHRoZSB0ZXN0cyBkb24ndCBjaGFuZ2Ug
dGhlIHJlc291cmNlLCB0aGVyZSdzIG5vIGhhcm0gaW4gdGhlaXIgc2hhcmluZyBhCi1zaW5nbGUg
cmVzb3VyY2UgY29weS4gU28sIGluIGFkZGl0aW9uIHRvIHBlci10ZXN0IHNldC11cC90ZWFyLWRv
d24sIGdvb2dsZXRlc3QKLWFsc28gc3VwcG9ydHMgcGVyLXRlc3QtY2FzZSBzZXQtdXAvdGVhci1k
b3duLiBUbyB1c2UgaXQ6Ci0KLTEuICBJbiB5b3VyIHRlc3QgZml4dHVyZSBjbGFzcyAoc2F5IGBG
b29UZXN0YCApLCBkZWNsYXJlIGFzIGBzdGF0aWNgIHNvbWUgbWVtYmVyCi0gICAgdmFyaWFibGVz
IHRvIGhvbGQgdGhlIHNoYXJlZCByZXNvdXJjZXMuCi0xLiAgT3V0c2lkZSB5b3VyIHRlc3QgZml4
dHVyZSBjbGFzcyAodHlwaWNhbGx5IGp1c3QgYmVsb3cgaXQpLCBkZWZpbmUgdGhvc2UKLSAgICBt
ZW1iZXIgdmFyaWFibGVzLCBvcHRpb25hbGx5IGdpdmluZyB0aGVtIGluaXRpYWwgdmFsdWVzLgot
MS4gIEluIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBjbGFzcywgZGVmaW5lIGEgYHN0YXRpYyB2b2lk
IFNldFVwVGVzdENhc2UoKWAKLSAgICBmdW5jdGlvbiAocmVtZW1iZXIgbm90IHRvIHNwZWxsIGl0
IGFzICoqYFNldHVwVGVzdENhc2VgKiogd2l0aCBhIHNtYWxsIGB1YCEpCi0gICAgdG8gc2V0IHVw
IHRoZSBzaGFyZWQgcmVzb3VyY2VzIGFuZCBhIGBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNl
KClgCi0gICAgZnVuY3Rpb24gdG8gdGVhciB0aGVtIGRvd24uCi0KLVRoYXQncyBpdCEgZ29vZ2xl
dGVzdCBhdXRvbWF0aWNhbGx5IGNhbGxzIGBTZXRVcFRlc3RDYXNlKClgIGJlZm9yZSBydW5uaW5n
IHRoZQotKmZpcnN0IHRlc3QqIGluIHRoZSBgRm9vVGVzdGAgdGVzdCBjYXNlIChpLmUuIGJlZm9y
ZSBjcmVhdGluZyB0aGUgZmlyc3QKLWBGb29UZXN0YCBvYmplY3QpLCBhbmQgY2FsbHMgYFRlYXJE
b3duVGVzdENhc2UoKWAgYWZ0ZXIgcnVubmluZyB0aGUgKmxhc3QgdGVzdCoKLWluIGl0IChpLmUu
IGFmdGVyIGRlbGV0aW5nIHRoZSBsYXN0IGBGb29UZXN0YCBvYmplY3QpLiBJbiBiZXR3ZWVuLCB0
aGUgdGVzdHMgY2FuCi11c2UgdGhlIHNoYXJlZCByZXNvdXJjZXMuCi0KLVJlbWVtYmVyIHRoYXQg
dGhlIHRlc3Qgb3JkZXIgaXMgdW5kZWZpbmVkLCBzbyB5b3VyIGNvZGUgY2FuJ3QgZGVwZW5kIG9u
IGEgdGVzdAotcHJlY2VkaW5nIG9yIGZvbGxvd2luZyBhbm90aGVyLiBBbHNvLCB0aGUgdGVzdHMg
bXVzdCBlaXRoZXIgbm90IG1vZGlmeSB0aGUgc3RhdGUKLW9mIGFueSBzaGFyZWQgcmVzb3VyY2Us
IG9yLCBpZiB0aGV5IGRvIG1vZGlmeSB0aGUgc3RhdGUsIHRoZXkgbXVzdCByZXN0b3JlIHRoZQot
c3RhdGUgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGNvbnRyb2wgdG8gdGhl
IG5leHQgdGVzdC4KLQotSGVyZSdzIGFuIGV4YW1wbGUgb2YgcGVyLXRlc3QtY2FzZSBzZXQtdXAg
YW5kIHRlYXItZG93bjoKLQotYGBgYysrCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGlu
Zzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAvLyBQZXItdGVzdC1jYXNlIHNldC11cC4KLSAgLy8g
Q2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgLy8gQ2Fu
IGJlIG9taXR0ZWQgaWYgbm90IG5lZWRlZC4KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgp
IHsKLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gbmV3IC4uLjsKLSAgfQotCi0gIC8vIFBlci10ZXN0
LWNhc2UgdGVhci1kb3duLgotICAvLyBDYWxsZWQgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbiB0aGlz
IHRlc3QgY2FzZS4KLSAgLy8gQ2FuIGJlIG9taXR0ZWQgaWYgbm90IG5lZWRlZC4KLSAgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKLSAgICBkZWxldGUgc2hhcmVkX3Jlc291cmNlXzsK
LSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKLSAgfQotCi0gIC8vIFlvdSBjYW4gZGVmaW5l
IHBlci10ZXN0IHNldC11cCBsb2dpYyBhcyB1c3VhbC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eyAuLi4gfQotCi0gIC8vIFlvdSBjYW4gZGVmaW5lIHBlci10ZXN0IHRlYXItZG93biBsb2dpYyBh
cyB1c3VhbC4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeyAuLi4gfQotCi0gIC8vIFNvbWUg
ZXhwZW5zaXZlIHJlc291cmNlIHNoYXJlZCBieSBhbGwgdGVzdHMuCi0gIHN0YXRpYyBUKiBzaGFy
ZWRfcmVzb3VyY2VfOwotfTsKLQotVCogRm9vVGVzdDo6c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7
Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MSkgewotICAuLi4geW91IGNhbiByZWZlciB0byBzaGFy
ZWRfcmVzb3VyY2VfIGhlcmUgLi4uCi19Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MikgewotICAu
Li4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3VyY2VfIGhlcmUgLi4uCi19Ci1gYGAKLQot
Tk9URTogVGhvdWdoIHRoZSBhYm92ZSBjb2RlIGRlY2xhcmVzIGBTZXRVcFRlc3RDYXNlKClgIHBy
b3RlY3RlZCwgaXQgbWF5Ci1zb21ldGltZXMgYmUgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgaXQgcHVi
bGljLCBzdWNoIGFzIHdoZW4gdXNpbmcgaXQgd2l0aAotYFRFU1RfUGAuCi0KLSoqQXZhaWxhYmls
aXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIEdsb2JhbCBTZXQtVXAgYW5kIFRlYXIt
RG93bgotCi1KdXN0IGFzIHlvdSBjYW4gZG8gc2V0LXVwIGFuZCB0ZWFyLWRvd24gYXQgdGhlIHRl
c3QgbGV2ZWwgYW5kIHRoZSB0ZXN0IGNhc2UKLWxldmVsLCB5b3UgY2FuIGFsc28gZG8gaXQgYXQg
dGhlIHRlc3QgcHJvZ3JhbSBsZXZlbC4gSGVyZSdzIGhvdy4KLQotRmlyc3QsIHlvdSBzdWJjbGFz
cyB0aGUgYDo6dGVzdGluZzo6RW52aXJvbm1lbnRgIGNsYXNzIHRvIGRlZmluZSBhIHRlc3QKLWVu
dmlyb25tZW50LCB3aGljaCBrbm93cyBob3cgdG8gc2V0LXVwIGFuZCB0ZWFyLWRvd246Ci0KLWBg
YGMrKwotY2xhc3MgRW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+RW52aXJvbm1l
bnQoKSB7fQotCi0gIC8vIE92ZXJyaWRlIHRoaXMgdG8gZGVmaW5lIGhvdyB0byBzZXQgdXAgdGhl
IGVudmlyb25tZW50LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQotCi0gIC8vIE92ZXJyaWRl
IHRoaXMgdG8gZGVmaW5lIGhvdyB0byB0ZWFyIGRvd24gdGhlIGVudmlyb25tZW50LgotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7fQotfTsKLWBgYAotCi1UaGVuLCB5b3UgcmVnaXN0ZXIgYW4g
aW5zdGFuY2Ugb2YgeW91ciBlbnZpcm9ubWVudCBjbGFzcyB3aXRoIGdvb2dsZXRlc3QgYnkKLWNh
bGxpbmcgdGhlIGA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpYCBmdW5jdGlv
bjoKLQotYGBgYysrCi1FbnZpcm9ubWVudCogQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KEVudmly
b25tZW50KiBlbnYpOwotYGBgCi0KLU5vdywgd2hlbiBgUlVOX0FMTF9URVNUUygpYCBpcyBjYWxs
ZWQsIGl0IGZpcnN0IGNhbGxzIHRoZSBgU2V0VXAoKWAgbWV0aG9kIG9mCi10aGUgZW52aXJvbm1l
bnQgb2JqZWN0LCB0aGVuIHJ1bnMgdGhlIHRlc3RzIGlmIHRoZXJlIHdhcyBubyBmYXRhbCBmYWls
dXJlcywgYW5kCi1maW5hbGx5IGNhbGxzIGBUZWFyRG93bigpYCBvZiB0aGUgZW52aXJvbm1lbnQg
b2JqZWN0LgotCi1JdCdzIE9LIHRvIHJlZ2lzdGVyIG11bHRpcGxlIGVudmlyb25tZW50IG9iamVj
dHMuIEluIHRoaXMgY2FzZSwgdGhlaXIgYFNldFVwKClgCi13aWxsIGJlIGNhbGxlZCBpbiB0aGUg
b3JkZXIgdGhleSBhcmUgcmVnaXN0ZXJlZCwgYW5kIHRoZWlyIGBUZWFyRG93bigpYCB3aWxsIGJl
Ci1jYWxsZWQgaW4gdGhlIHJldmVyc2Ugb3JkZXIuCi0KLU5vdGUgdGhhdCBnb29nbGV0ZXN0IHRh
a2VzIG93bmVyc2hpcCBvZiB0aGUgcmVnaXN0ZXJlZCBlbnZpcm9ubWVudCBvYmplY3RzLgotVGhl
cmVmb3JlICoqZG8gbm90IGRlbGV0ZSB0aGVtKiogYnkgeW91cnNlbGYuCi0KLVlvdSBzaG91bGQg
Y2FsbCBgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KClgIGJlZm9yZSBgUlVOX0FMTF9URVNUUygp
YCBpcyBjYWxsZWQsCi1wcm9iYWJseSBpbiBgbWFpbigpYC4gSWYgeW91IHVzZSBgZ3Rlc3RfbWFp
bmAsIHlvdSBuZWVkIHRvIGNhbGwgdGhpcyBiZWZvcmUKLWBtYWluKClgIHN0YXJ0cyBmb3IgaXQg
dG8gdGFrZSBlZmZlY3QuIE9uZSB3YXkgdG8gZG8gdGhpcyBpcyB0byBkZWZpbmUgYSBnbG9iYWwK
LXZhcmlhYmxlIGxpa2UgdGhpczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkVudmlyb25tZW50KiBj
b25zdCBmb29fZW52ID0KLSAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChu
ZXcgRm9vRW52aXJvbm1lbnQpOwotYGBgCi0KLUhvd2V2ZXIsIHdlIHN0cm9uZ2x5IHJlY29tbWVu
ZCB5b3UgdG8gd3JpdGUgeW91ciBvd24gYG1haW4oKWAgYW5kIGNhbGwKLWBBZGRHbG9iYWxUZXN0
RW52aXJvbm1lbnQoKWAgdGhlcmUsIGFzIHJlbHlpbmcgb24gaW5pdGlhbGl6YXRpb24gb2YgZ2xv
YmFsCi12YXJpYWJsZXMgbWFrZXMgdGhlIGNvZGUgaGFyZGVyIHRvIHJlYWQgYW5kIG1heSBjYXVz
ZSBwcm9ibGVtcyB3aGVuIHlvdSByZWdpc3RlcgotbXVsdGlwbGUgZW52aXJvbm1lbnRzIGZyb20g
ZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGFuZCB0aGUgZW52aXJvbm1lbnRzIGhhdmUKLWRl
cGVuZGVuY2llcyBhbW9uZyB0aGVtIChyZW1lbWJlciB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0
IGd1YXJhbnRlZSB0aGUgb3JkZXIKLWluIHdoaWNoIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBkaWZm
ZXJlbnQgdHJhbnNsYXRpb24gdW5pdHMgYXJlIGluaXRpYWxpemVkKS4KLQotIyMgVmFsdWUtUGFy
YW1ldGVyaXplZCBUZXN0cwotCi0qVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyogYWxsb3cgeW91
IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50Ci1wYXJhbWV0ZXJzIHdpdGhvdXQgd3Jp
dGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4gVGhpcyBpcyB1c2VmdWwgaW4g
YQotbnVtYmVyIG9mIHNpdHVhdGlvbnMsIGZvciBleGFtcGxlOgotCi0qICAgWW91IGhhdmUgYSBw
aWVjZSBvZiBjb2RlIHdob3NlIGJlaGF2aW9yIGlzIGFmZmVjdGVkIGJ5IG9uZSBvciBtb3JlCi0g
ICAgY29tbWFuZC1saW5lIGZsYWdzLiBZb3Ugd2FudCB0byBtYWtlIHN1cmUgeW91ciBjb2RlIHBl
cmZvcm1zIGNvcnJlY3RseSBmb3IKLSAgICB2YXJpb3VzIHZhbHVlcyBvZiB0aG9zZSBmbGFncy4K
LSogICBZb3Ugd2FudCB0byB0ZXN0IGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgYW4gT08g
aW50ZXJmYWNlLgotKiAgIFlvdSB3YW50IHRvIHRlc3QgeW91ciBjb2RlIG92ZXIgdmFyaW91cyBp
bnB1dHMgKGEuay5hLiBkYXRhLWRyaXZlbiB0ZXN0aW5nKS4KLSAgICBUaGlzIGZlYXR1cmUgaXMg
ZWFzeSB0byBhYnVzZSwgc28gcGxlYXNlIGV4ZXJjaXNlIHlvdXIgZ29vZCBzZW5zZSB3aGVuIGRv
aW5nCi0gICAgaXQhCi0KLSMjIyBIb3cgdG8gV3JpdGUgVmFsdWUtUGFyYW1ldGVyaXplZCBUZXN0
cwotCi1UbyB3cml0ZSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLCBmaXJzdCB5b3Ugc2hvdWxk
IGRlZmluZSBhIGZpeHR1cmUgY2xhc3MuIEl0Ci1tdXN0IGJlIGRlcml2ZWQgZnJvbSBib3RoIGA6
OnRlc3Rpbmc6OlRlc3RgIGFuZAotYDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+YCAo
dGhlIGxhdHRlciBpcyBhIHB1cmUgaW50ZXJmYWNlKSwgd2hlcmUgYFRgCi1pcyB0aGUgdHlwZSBv
ZiB5b3VyIHBhcmFtZXRlciB2YWx1ZXMuIEZvciBjb252ZW5pZW5jZSwgeW91IGNhbiBqdXN0IGRl
cml2ZSB0aGUKLWZpeHR1cmUgY2xhc3MgZnJvbSBgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFQ+
YCwgd2hpY2ggaXRzZWxmIGlzIGRlcml2ZWQgZnJvbQotYm90aCBgOjp0ZXN0aW5nOjpUZXN0YCBh
bmQgYDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+YC4gYFRgIGNhbiBiZSBhbnkKLWNv
cHlhYmxlIHR5cGUuIElmIGl0J3MgYSByYXcgcG9pbnRlciwgeW91IGFyZSByZXNwb25zaWJsZSBm
b3IgbWFuYWdpbmcgdGhlCi1saWZlc3BhbiBvZiB0aGUgcG9pbnRlZCB2YWx1ZXMuCi0KLU5PVEU6
IElmIHlvdXIgdGVzdCBmaXh0dXJlIGRlZmluZXMgYFNldFVwVGVzdENhc2UoKWAgb3IgYFRlYXJE
b3duVGVzdENhc2UoKWAKLXRoZXkgbXVzdCBiZSBkZWNsYXJlZCAqKnB1YmxpYyoqIHJhdGhlciB0
aGFuICoqcHJvdGVjdGVkKiogaW4gb3JkZXIgdG8gdXNlCi1gVEVTVF9QYC4KLQotYGBgYysrCi1j
bGFzcyBGb29UZXN0IDoKLSAgICBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0
IGNoYXIqPiB7Ci0gIC8vIFlvdSBjYW4gaW1wbGVtZW50IGFsbCB0aGUgdXN1YWwgZml4dHVyZSBj
bGFzcyBtZW1iZXJzIGhlcmUuCi0gIC8vIFRvIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0ZXIsIGNh
bGwgR2V0UGFyYW0oKSBmcm9tIGNsYXNzCi0gIC8vIFRlc3RXaXRoUGFyYW08VD4uCi19OwotCi0v
LyBPciwgd2hlbiB5b3Ugd2FudCB0byBhZGQgcGFyYW1ldGVycyB0byBhIHByZS1leGlzdGluZyBm
aXh0dXJlIGNsYXNzOgotY2xhc3MgQmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsK
LSAgLi4uCi19OwotY2xhc3MgQmFyVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwKLSAgICAgICAgICAg
ICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Y29uc3QgY2hhcio+IHsK
LSAgLi4uCi19OwotYGBgCi0KLVRoZW4sIHVzZSB0aGUgYFRFU1RfUGAgbWFjcm8gdG8gZGVmaW5l
IGFzIG1hbnkgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGlzIGZpeHR1cmUKLWFzIHlvdSB3YW50LiBU
aGUgYF9QYCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIiBvciAicGF0dGVybiIsIHdoaWNo
ZXZlciB5b3UKLXByZWZlciB0byB0aGluay4KLQotYGBgYysrCi1URVNUX1AoRm9vVGVzdCwgRG9l
c0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgYWNjZXNzIHRoZSB0ZXN0IHBhcmFtZXRlciB3
aXRoIHRoZSBHZXRQYXJhbSgpIG1ldGhvZAotICAvLyBvZiB0aGUgVGVzdFdpdGhQYXJhbTxUPiBj
bGFzczoKLSAgRVhQRUNUX1RSVUUoZm9vLkJsYWgoR2V0UGFyYW0oKSkpOwotICAuLi4KLX0KLQot
VEVTVF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFoKSB7Ci0gIC4uLgotfQotYGBgCi0KLUZpbmFsbHks
IHlvdSBjYW4gdXNlIGBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgdG8gaW5zdGFudGlhdGUgdGhl
IHRlc3QgY2FzZSB3aXRoCi1hbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIGdvb2dsZXRl
c3QgZGVmaW5lcyBhIG51bWJlciBvZiBmdW5jdGlvbnMgZm9yCi1nZW5lcmF0aW5nIHRlc3QgcGFy
YW1ldGVycy4gVGhleSByZXR1cm4gd2hhdCB3ZSBjYWxsIChzdXJwcmlzZSEpICpwYXJhbWV0ZXIK
LWdlbmVyYXRvcnMqLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGljaCBhcmUgYWxsIGlu
IHRoZSBgdGVzdGluZ2AKLW5hbWVzcGFjZToKLQotfCBQYXJhbWV0ZXIgR2VuZXJhdG9yICAgICAg
ICAgIHwgQmVoYXZpb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHwKLXwgYFJhbmdlKGJlZ2luLCBlbmQgWywgc3RlcF0pYCB8IFlpZWxk
cyB2YWx1ZXMgYHtiZWdpbiwgYmVnaW4rc3RlcCwgYmVnaW4rc3RlcCtzdGVwLCAuLi59YC4gVGhl
IHZhbHVlcyBkbyBub3QgaW5jbHVkZSBgZW5kYC4gYHN0ZXBgIGRlZmF1bHRzIHRvIDEuICAgICAg
fAotfCBgVmFsdWVzKHYxLCB2MiwgLi4uLCB2TilgICAgIHwgWWllbGRzIHZhbHVlcyBge3YxLCB2
MiwgLi4uLCB2Tn1gLiAgICAgICAgICB8Ci18IGBWYWx1ZXNJbihjb250YWluZXIpYCBhbmQgYFZh
bHVlc0luKGJlZ2luLGVuZClgICAgfCBZaWVsZHMgdmFsdWVzIGZyb20gYSBDLXN0eWxlIGFycmF5
LCBhbiBTVEwtc3R5bGUgY29udGFpbmVyLCBvciBhbiBpdGVyYXRvciByYW5nZSAgYFtiZWdpbiwg
ZW5kKWAuIHwKLXwgYEJvb2woKWAgICAgICAgICAgICAgICAgICAgICB8IFlpZWxkcyBzZXF1ZW5j
ZSBge2ZhbHNlLCB0cnVlfWAuICAgICAgICAgICAgfAotfCBgQ29tYmluZShnMSwgZzIsIC4uLiwg
Z04pYCAgIHwgWWllbGRzIGFsbCBjb21iaW5hdGlvbnMgKENhcnRlc2lhbiBwcm9kdWN0KSBhcyBz
dGRcOlw6dHVwbGVzIG9mIHRoZSB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IHRoZSBgTmAgZ2VuZXJhdG9y
cy4gICAgICAgICAgICB8Ci0KLUZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgY29tbWVudHMgYXQg
dGhlIGRlZmluaXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucy4KLQotVGhlIGZvbGxvd2luZyBzdGF0
ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIHRoZSBgRm9vVGVzdGAgdGVzdCBjYXNl
IGVhY2gKLXdpdGggcGFyYW1ldGVyIHZhbHVlcyBgIm1lZW55ImAsIGAibWlueSJgLCBhbmQgYCJt
b2UiYC4KLQotYGBgYysrCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnN0YW50aWF0aW9uTmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICA6OnRlc3Rpbmc6OlZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7Ci1gYGAKLQot
Tk9URTogVGhlIGNvZGUgYWJvdmUgbXVzdCBiZSBwbGFjZWQgYXQgZ2xvYmFsIG9yIG5hbWVzcGFj
ZSBzY29wZSwgbm90IGF0Ci1mdW5jdGlvbiBzY29wZS4KLQotTk9URTogRG9uJ3QgZm9yZ2V0IHRo
aXMgc3RlcCEgSWYgeW91IGRvIHlvdXIgdGVzdCB3aWxsIHNpbGVudGx5IHBhc3MsIGJ1dCBub25l
Ci1vZiBpdHMgY2FzZXMgd2lsbCBldmVyIHJ1biEKLQotVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50
IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiAoeWVzLCB5b3UgY2FuIGluc3RhbnRpYXRlIGl0Ci1t
b3JlIHRoYW4gb25jZSksIHRoZSBmaXJzdCBhcmd1bWVudCB0byBgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1BgIGlzIGEgcHJlZml4Ci10aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGFjdHVhbCB0ZXN0
IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUKLXByZWZpeGVzIGZvciBkaWZmZXJl
bnQgaW5zdGFudGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3Zl
Ci13aWxsIGhhdmUgdGhlc2UgbmFtZXM6Ci0KLSogICBgSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuRG9lc0JsYWgvMWAgZm9yIGAibWlueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuRG9lc0JsYWgvMmAgZm9yIGAibW9lImAKLSogICBgSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuSGFzQmxhaEJsYWgvMWAgZm9yIGAibWlueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMmAgZm9yIGAibW9lImAKLQotWW91IGNhbiB1c2UgdGhlc2Ug
bmFtZXMgaW4gW2AtLWd0ZXN0X2ZpbHRlcmBdKCNydW5uaW5nLWEtc3Vic2V0LW9mLXRoZS10ZXN0
cykuCi0KLVRoaXMgc3RhdGVtZW50IHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzIGZyb20gYEZv
b1Rlc3RgIGFnYWluLCBlYWNoIHdpdGgKLXBhcmFtZXRlciB2YWx1ZXMgYCJjYXQiYCBhbmQgYCJk
b2ciYDoKLQotYGBgYysrCi1jb25zdCBjaGFyKiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsKLUlO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzSW4ocGV0cykpOwotYGBg
Ci0KLVRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVz
ZSBuYW1lczoKLQotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxh
aC8wYCBmb3IgYCJjYXQiYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5E
b2VzQmxhaC8xYCBmb3IgYCJkb2ciYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJjYXQiYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlv
bk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xYCBmb3IgYCJkb2ciYAotCi1QbGVhc2Ugbm90ZSB0
aGF0IGBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgd2lsbCBpbnN0YW50aWF0ZSAqYWxsKiB0ZXN0
cyBpbiB0aGUKLWdpdmVuIHRlc3QgY2FzZSwgd2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21l
IGJlZm9yZSBvciAqYWZ0ZXIqIHRoZQotYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCBzdGF0ZW1l
bnQuCi0KLVlvdSBjYW4gc2VlIHNhbXBsZTdfdW5pdHRlc3QuY2MgYW5kIHNhbXBsZThfdW5pdHRl
c3QuY2MgZm9yIG1vcmUgZXhhbXBsZXMuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5k
b3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYwotCi0jIyMgQ3JlYXRpbmcgVmFs
dWUtUGFyYW1ldGVyaXplZCBBYnN0cmFjdCBUZXN0cwotCi1JbiB0aGUgYWJvdmUsIHdlIGRlZmlu
ZSBhbmQgaW5zdGFudGlhdGUgYEZvb1Rlc3RgIGluIHRoZSAqc2FtZSogc291cmNlIGZpbGUuCi1T
b21ldGltZXMgeW91IG1heSB3YW50IHRvIGRlZmluZSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3Rz
IGluIGEgbGlicmFyeSBhbmQgbGV0Ci1vdGhlciBwZW9wbGUgaW5zdGFudGlhdGUgdGhlbSBsYXRl
ci4gVGhpcyBwYXR0ZXJuIGlzIGtub3duIGFzICphYnN0cmFjdCB0ZXN0cyouCi1BcyBhbiBleGFt
cGxlIG9mIGl0cyBhcHBsaWNhdGlvbiwgd2hlbiB5b3UgYXJlIGRlc2lnbmluZyBhbiBpbnRlcmZh
Y2UgeW91IGNhbgotd3JpdGUgYSBzdGFuZGFyZCBzdWl0ZSBvZiBhYnN0cmFjdCB0ZXN0cyAocGVy
aGFwcyB1c2luZyBhIGZhY3RvcnkgZnVuY3Rpb24gYXMKLXRoZSB0ZXN0IHBhcmFtZXRlcikgdGhh
dCBhbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBpbnRlcmZhY2UgYXJlIGV4cGVjdGVkIHRvCi1w
YXNzLiBXaGVuIHNvbWVvbmUgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlLCB0aGV5IGNhbiBpbnN0
YW50aWF0ZSB5b3VyIHN1aXRlIHRvCi1nZXQgYWxsIHRoZSBpbnRlcmZhY2UtY29uZm9ybWFuY2Ug
dGVzdHMgZm9yIGZyZWUuCi0KLVRvIGRlZmluZSBhYnN0cmFjdCB0ZXN0cywgeW91IHNob3VsZCBv
cmdhbml6ZSB5b3VyIGNvZGUgbGlrZSB0aGlzOgotCi0xLiAgUHV0IHRoZSBkZWZpbml0aW9uIG9m
IHRoZSBwYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZSBjbGFzcyAoZS5nLiBgRm9vVGVzdGApCi0g
ICAgaW4gYSBoZWFkZXIgZmlsZSwgc2F5IGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhp
cyBhcyAqZGVjbGFyaW5nKiB5b3VyCi0gICAgYWJzdHJhY3QgdGVzdHMuCi0xLiAgUHV0IHRoZSBg
VEVTVF9QYCBkZWZpbml0aW9ucyBpbiBgZm9vX3BhcmFtX3Rlc3QuY2NgLCB3aGljaCBpbmNsdWRl
cwotICAgIGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhpcyBhcyAqaW1wbGVtZW50aW5n
KiB5b3VyIGFic3RyYWN0IHRlc3RzLgotCi1PbmNlIHRoZXkgYXJlIGRlZmluZWQsIHlvdSBjYW4g
aW5zdGFudGlhdGUgdGhlbSBieSBpbmNsdWRpbmcgYGZvb19wYXJhbV90ZXN0LmhgLAotaW52b2tp
bmcgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKClgLCBhbmQgZGVwZW5kaW5nIG9uIHRoZSBsaWJy
YXJ5IHRhcmdldCB0aGF0Ci1jb250YWlucyBgZm9vX3BhcmFtX3Rlc3QuY2NgLiBZb3UgY2FuIGlu
c3RhbnRpYXRlIHRoZSBzYW1lIGFic3RyYWN0IHRlc3QgY2FzZQotbXVsdGlwbGUgdGltZXMsIHBv
c3NpYmx5IGluIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMuCi0KLSMjIyBTcGVjaWZ5aW5nIE5hbWVz
IGZvciBWYWx1ZS1QYXJhbWV0ZXJpemVkIFRlc3QgUGFyYW1ldGVycwotCi1UaGUgb3B0aW9uYWwg
bGFzdCBhcmd1bWVudCB0byBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoKWAgYWxsb3dzIHRoZSB1
c2VyIHRvCi1zcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0IGdlbmVyYXRlcyBjdXN0
b20gdGVzdCBuYW1lIHN1ZmZpeGVzIGJhc2VkIG9uCi10aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUg
ZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1lbnQgb2YgdHlwZQotYHRlc3Rpbmc6OlRl
c3RQYXJhbUluZm88Y2xhc3MgUGFyYW1UeXBlPmAsIGFuZCByZXR1cm4gYHN0ZDo6c3RyaW5nYC4K
LQotYHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWVgIGlzIGEgYnVpbHRpbiB0ZXN0IHN1
ZmZpeCBnZW5lcmF0b3IgdGhhdAotcmV0dXJucyB0aGUgdmFsdWUgb2YgYHRlc3Rpbmc6OlByaW50
VG9TdHJpbmcoR2V0UGFyYW0oKSlgLiBJdCBkb2VzIG5vdCB3b3JrIGZvcgotYHN0ZDo6c3RyaW5n
YCBvciBDIHN0cmluZ3MuCi0KLU5PVEU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1wdHksIHVu
aXF1ZSwgYW5kIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkKLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJz
LiBJbiBwYXJ0aWN1bGFyLCB0aGV5IFtzaG91bGQgbm90IGNvbnRhaW4KLXVuZGVyc2NvcmVzXSho
dHRwczovL2czZG9jLmNvcnAuZ29vZ2xlLmNvbS90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2dvb2ds
ZXRlc3QvZzNkb2MvZmFxLm1kI25vLXVuZGVyc2NvcmVzKS4KLQotYGBgYysrCi1jbGFzcyBNeVRl
c3RDYXNlIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7fTsKLQotVEVTVF9Q
KE15VGVzdENhc2UsIE15VGVzdCkKLXsKLSAgc3RkOjpjb3V0IDw8ICJFeGFtcGxlIFRlc3QgUGFy
YW06ICIgPDwgR2V0UGFyYW0oKSA8PCBzdGQ6OmVuZGw7Ci19Ci0KLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKE15R3JvdXAsIE15VGVzdENhc2UsIHRlc3Rpbmc6OlJhbmdlKDAsIDEwKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7Ci1g
YGAKLQotIyMgVHlwZWQgVGVzdHM8L2lkPgotCi1TdXBwb3NlIHlvdSBoYXZlIG11bHRpcGxlIGlt
cGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBpbnRlcmZhY2UgYW5kIHdhbnQgdG8gbWFrZQotc3Vy
ZSB0aGF0IGFsbCBvZiB0aGVtIHNhdGlzZnkgc29tZSBjb21tb24gcmVxdWlyZW1lbnRzLiBPciwg
eW91IG1heSBoYXZlIGRlZmluZWQKLXNldmVyYWwgdHlwZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8g
Y29uZm9ybSB0byB0aGUgc2FtZSAiY29uY2VwdCIgYW5kIHlvdSB3YW50IHRvCi12ZXJpZnkgaXQu
IEluIGJvdGggY2FzZXMsIHlvdSB3YW50IHRoZSBzYW1lIHRlc3QgbG9naWMgcmVwZWF0ZWQgZm9y
IGRpZmZlcmVudAotdHlwZXMuCi0KLVdoaWxlIHlvdSBjYW4gd3JpdGUgb25lIGBURVNUYCBvciBg
VEVTVF9GYCBmb3IgZWFjaCB0eXBlIHlvdSB3YW50IHRvIHRlc3QgKGFuZAoteW91IG1heSBldmVu
IGZhY3RvciB0aGUgdGVzdCBsb2dpYyBpbnRvIGEgZnVuY3Rpb24gdGVtcGxhdGUgdGhhdCB5b3Ug
aW52b2tlIGZyb20KLXRoZSBgVEVTVGApLCBpdCdzIHRlZGlvdXMgYW5kIGRvZXNuJ3Qgc2NhbGU6
IGlmIHlvdSB3YW50IGBtYCB0ZXN0cyBvdmVyIGBuYAotdHlwZXMsIHlvdSdsbCBlbmQgdXAgd3Jp
dGluZyBgbSpuYCBgVEVTVGBzLgotCi0qVHlwZWQgdGVzdHMqIGFsbG93IHlvdSB0byByZXBlYXQg
dGhlIHNhbWUgdGVzdCBsb2dpYyBvdmVyIGEgbGlzdCBvZiB0eXBlcy4gWW91Ci1vbmx5IG5lZWQg
dG8gd3JpdGUgdGhlIHRlc3QgbG9naWMgb25jZSwgYWx0aG91Z2ggeW91IG11c3Qga25vdyB0aGUg
dHlwZSBsaXN0Ci13aGVuIHdyaXRpbmcgdHlwZWQgdGVzdHMuIEhlcmUncyBob3cgeW91IGRvIGl0
OgotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZS4gSXQgc2hvdWxkIGJl
IHBhcmFtZXRlcml6ZWQgYnkgYSB0eXBlLgotUmVtZW1iZXIgdG8gZGVyaXZlIGl0IGZyb20gYDo6
dGVzdGluZzo6VGVzdGA6Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBG
b29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHVibGljOgotICAuLi4KLSAgdHlw
ZWRlZiBzdGQ6Omxpc3Q8VD4gTGlzdDsKLSAgc3RhdGljIFQgc2hhcmVkXzsKLSAgVCB2YWx1ZV87
Ci19OwotYGBgCi0KLU5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2YgdHlwZXMgd2l0aCB0aGUgdGVz
dCBjYXNlLCB3aGljaCB3aWxsIGJlIHJlcGVhdGVkIGZvcgotZWFjaCB0eXBlIGluIHRoZSBsaXN0
OgotCi1gYGBjKysKLXVzaW5nIE15VHlwZXMgPSA6OnRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwg
dW5zaWduZWQgaW50PjsKLVRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzKTsKLWBgYAot
Ci1UaGUgdHlwZSBhbGlhcyAoYHVzaW5nYCBvciBgdHlwZWRlZmApIGlzIG5lY2Vzc2FyeSBmb3Ig
dGhlIGBUWVBFRF9URVNUX0NBU0VgCi1tYWNybyB0byBwYXJzZSBjb3JyZWN0bHkuIE90aGVyd2lz
ZSB0aGUgY29tcGlsZXIgd2lsbCB0aGluayB0aGF0IGVhY2ggY29tbWEgaW4KLXRoZSB0eXBlIGxp
c3QgaW50cm9kdWNlcyBhIG5ldyBtYWNybyBhcmd1bWVudC4KLQotVGhlbiwgdXNlIGBUWVBFRF9U
RVNUKClgIGluc3RlYWQgb2YgYFRFU1RfRigpYCB0byBkZWZpbmUgYSB0eXBlZCB0ZXN0IGZvciB0
aGlzCi10ZXN0IGNhc2UuIFlvdSBjYW4gcmVwZWF0IHRoaXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ug
d2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUKEZvb1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIElu
c2lkZSBhIHRlc3QsIHJlZmVyIHRvIHRoZSBzcGVjaWFsIG5hbWUgVHlwZVBhcmFtIHRvIGdldCB0
aGUgdHlwZQotICAvLyBwYXJhbWV0ZXIuICBTaW5jZSB3ZSBhcmUgaW5zaWRlIGEgZGVyaXZlZCBj
bGFzcyB0ZW1wbGF0ZSwgQysrIHJlcXVpcmVzCi0gIC8vIHVzIHRvIHZpc2l0IHRoZSBtZW1iZXJz
IG9mIEZvb1Rlc3QgdmlhICd0aGlzJy4KLSAgVHlwZVBhcmFtIG4gPSB0aGlzLT52YWx1ZV87Ci0K
LSAgLy8gVG8gdmlzaXQgc3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUsIGFkZCB0aGUgJ1Rl
c3RGaXh0dXJlOjonCi0gIC8vIHByZWZpeC4KLSAgbiArPSBUZXN0Rml4dHVyZTo6c2hhcmVkXzsK
LQotICAvLyBUbyByZWZlciB0byB0eXBlZGVmcyBpbiB0aGUgZml4dHVyZSwgYWRkIHRoZSAndHlw
ZW5hbWUgVGVzdEZpeHR1cmU6OicKLSAgLy8gcHJlZml4LiAgVGhlICd0eXBlbmFtZScgaXMgcmVx
dWlyZWQgdG8gc2F0aXNmeSB0aGUgY29tcGlsZXIuCi0gIHR5cGVuYW1lIFRlc3RGaXh0dXJlOjpM
aXN0IHZhbHVlczsKLQotICB2YWx1ZXMucHVzaF9iYWNrKG4pOwotICAuLi4KLX0KLQotVFlQRURf
VEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAotCi1Zb3UgY2FuIHNlZSBz
YW1wbGU2X3VuaXR0ZXN0LmNjCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzIChy
ZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYwotCi0jIyBUeXBlLVBhcmFtZXRlcml6ZWQg
VGVzdHMKLQotKlR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyogYXJlIGxpa2UgdHlwZWQgdGVzdHMs
IGV4Y2VwdCB0aGF0IHRoZXkgZG9uJ3QgcmVxdWlyZQoteW91IHRvIGtub3cgdGhlIGxpc3Qgb2Yg
dHlwZXMgYWhlYWQgb2YgdGltZS4gSW5zdGVhZCwgeW91IGNhbiBkZWZpbmUgdGhlIHRlc3QKLWxv
Z2ljIGZpcnN0IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGRpZmZlcmVudCB0eXBlIGxpc3RzIGxh
dGVyLiBZb3UgY2FuIGV2ZW4KLWluc3RhbnRpYXRlIGl0IG1vcmUgdGhhbiBvbmNlIGluIHRoZSBz
YW1lIHByb2dyYW0uCi0KLUlmIHlvdSBhcmUgZGVzaWduaW5nIGFuIGludGVyZmFjZSBvciBjb25j
ZXB0LCB5b3UgY2FuIGRlZmluZSBhIHN1aXRlIG9mCi10eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMg
dG8gdmVyaWZ5IHByb3BlcnRpZXMgdGhhdCBhbnkgdmFsaWQgaW1wbGVtZW50YXRpb24gb2YKLXRo
ZSBpbnRlcmZhY2UvY29uY2VwdCBzaG91bGQgaGF2ZS4gVGhlbiwgdGhlIGF1dGhvciBvZiBlYWNo
IGltcGxlbWVudGF0aW9uIGNhbgotanVzdCBpbnN0YW50aWF0ZSB0aGUgdGVzdCBzdWl0ZSB3aXRo
IHRoZWlyIHR5cGUgdG8gdmVyaWZ5IHRoYXQgaXQgY29uZm9ybXMgdG8KLXRoZSByZXF1aXJlbWVu
dHMsIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIHNpbWlsYXIgdGVzdHMgcmVwZWF0ZWRseS4gSGVy
ZSdzIGFuCi1leGFtcGxlOgotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFzcyB0ZW1wbGF0
ZSwgYXMgd2UgZGlkIHdpdGggdHlwZWQgdGVzdHM6Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gIC4uLgot
fTsKLWBgYAotCi1OZXh0LCBkZWNsYXJlIHRoYXQgeW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3QgY2FzZToKLQotYGBgYysrCi1UWVBFRF9URVNUX0NBU0VfUChGb29UZXN0
KTsKLWBgYAotCi1UaGVuLCB1c2UgYFRZUEVEX1RFU1RfUCgpYCB0byBkZWZpbmUgYSB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdC4gWW91IGNhbiByZXBlYXQKLXRoaXMgYXMgbWFueSB0aW1lcyBhcyB5
b3Ugd2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAg
Ly8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJh
bWV0ZXIuCi0gIFR5cGVQYXJhbSBuID0gMDsKLSAgLi4uCi19Ci0KLVRZUEVEX1RFU1RfUChGb29U
ZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAotCi1Ob3cgdGhlIHRyaWNreSBwYXJ0OiB5
b3UgbmVlZCB0byByZWdpc3RlciBhbGwgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGUKLWBSRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUGAgbWFjcm8gYmVmb3JlIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhl
bS4gVGhlIGZpcnN0Ci1hcmd1bWVudCBvZiB0aGUgbWFjcm8gaXMgdGhlIHRlc3QgY2FzZSBuYW1l
OyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cwotaW4gdGhpcyB0ZXN0IGNhc2U6
Ci0KLWBgYGMrKwotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERvZXNCbGFoLCBIYXNQcm9wZXJ0eUEpOwotYGBgCi0KLUZpbmFs
bHksIHlvdSBhcmUgZnJlZSB0byBpbnN0YW50aWF0ZSB0aGUgcGF0dGVybiB3aXRoIHRoZSB0eXBl
cyB5b3Ugd2FudC4gSWYgeW91Ci1wdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwg
eW91IGNhbiBgI2luY2x1ZGVgIGl0IGluIG11bHRpcGxlIEMrKwotc291cmNlIGZpbGVzIGFuZCBp
bnN0YW50aWF0ZSBpdCBtdWx0aXBsZSB0aW1lcy4KLQotYGBgYysrCi10eXBlZGVmIDo6dGVzdGlu
Zzo6VHlwZXM8Y2hhciwgaW50LCB1bnNpZ25lZCBpbnQ+IE15VHlwZXM7Ci1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7Ci1gYGAKLQotVG8gZGlzdGlu
Z3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiwgdGhlIGZpcnN0IGFyZ3Vt
ZW50IHRvIHRoZQotYElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QYCBtYWNybyBpcyBhIHBy
ZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi1hY3R1YWwgdGVzdCBjYXNlIG5hbWUuIFJl
bWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQgaW5zdGFuY2VzLgot
Ci1JbiB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB0eXBlIGxpc3QgY29udGFpbnMgb25seSBv
bmUgdHlwZSwgeW91IGNhbiB3cml0ZQotdGhhdCB0eXBlIGRpcmVjdGx5IHdpdGhvdXQgYDo6dGVz
dGluZzo6VHlwZXM8Li4uPmAsIGxpa2UgdGhpczoKLQotYGBgYysrCi1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgaW50KTsKLWBgYAotCi1Zb3UgY2FuIHNlZSBgc2Ft
cGxlNl91bml0dGVzdC5jY2AgZm9yIGEgY29tcGxldGUgZXhhbXBsZS4KLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgTWFjCi0K
LSMjIFRlc3RpbmcgUHJpdmF0ZSBDb2RlCi0KLUlmIHlvdSBjaGFuZ2UgeW91ciBzb2Z0d2FyZSdz
IGludGVybmFsIGltcGxlbWVudGF0aW9uLCB5b3VyIHRlc3RzIHNob3VsZCBub3QKLWJyZWFrIGFz
IGxvbmcgYXMgdGhlIGNoYW5nZSBpcyBub3Qgb2JzZXJ2YWJsZSBieSB1c2Vycy4gVGhlcmVmb3Jl
LCAqKnBlciB0aGUKLWJsYWNrLWJveCB0ZXN0aW5nIHByaW5jaXBsZSwgbW9zdCBvZiB0aGUgdGlt
ZSB5b3Ugc2hvdWxkIHRlc3QgeW91ciBjb2RlIHRocm91Z2gKLWl0cyBwdWJsaWMgaW50ZXJmYWNl
cy4qKgotCi0qKklmIHlvdSBzdGlsbCBmaW5kIHlvdXJzZWxmIG5lZWRpbmcgdG8gdGVzdCBpbnRl
cm5hbCBpbXBsZW1lbnRhdGlvbiBjb2RlLAotY29uc2lkZXIgaWYgdGhlcmUncyBhIGJldHRlciBk
ZXNpZ24uKiogVGhlIGRlc2lyZSB0byB0ZXN0IGludGVybmFsCi1pbXBsZW1lbnRhdGlvbiBpcyBv
ZnRlbiBhIHNpZ24gdGhhdCB0aGUgY2xhc3MgaXMgZG9pbmcgdG9vIG11Y2guIENvbnNpZGVyCi1l
eHRyYWN0aW5nIGFuIGltcGxlbWVudGF0aW9uIGNsYXNzLCBhbmQgdGVzdGluZyBpdC4gVGhlbiB1
c2UgdGhhdCBpbXBsZW1lbnRhdGlvbgotY2xhc3MgaW4gdGhlIG9yaWdpbmFsIGNsYXNzLgotCi1J
ZiB5b3UgYWJzb2x1dGVseSBoYXZlIHRvIHRlc3Qgbm9uLXB1YmxpYyBpbnRlcmZhY2UgY29kZSB0
aG91Z2gsIHlvdSBjYW4uIFRoZXJlCi1hcmUgdHdvIGNhc2VzIHRvIGNvbnNpZGVyOgotCi0qICAg
U3RhdGljIGZ1bmN0aW9ucyAoICpub3QqIHRoZSBzYW1lIGFzIHN0YXRpYyBtZW1iZXIgZnVuY3Rp
b25zISkgb3IgdW5uYW1lZAotICAgIG5hbWVzcGFjZXMsIGFuZAotKiAgIFByaXZhdGUgb3IgcHJv
dGVjdGVkIGNsYXNzIG1lbWJlcnMKLQotVG8gdGVzdCB0aGVtLCB3ZSB1c2UgdGhlIGZvbGxvd2lu
ZyBzcGVjaWFsIHRlY2huaXF1ZXM6Ci0KLSogICBCb3RoIHN0YXRpYyBmdW5jdGlvbnMgYW5kIGRl
ZmluaXRpb25zL2RlY2xhcmF0aW9ucyBpbiBhbiB1bm5hbWVkIG5hbWVzcGFjZQotICAgIGFyZSBv
bmx5IHZpc2libGUgd2l0aGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuIFRvIHRlc3QgdGhl
bSwgeW91IGNhbgotICAgIGAjaW5jbHVkZWAgdGhlIGVudGlyZSBgLmNjYCBmaWxlIGJlaW5nIHRl
c3RlZCBpbiB5b3VyIGAqX3Rlc3QuY2NgIGZpbGUuCi0gICAgKGluY2x1ZGluZyBgLmNjYCBmaWxl
cyBpcyBub3QgYSBnb29kIHdheSB0byByZXVzZSBjb2RlIC0geW91IHNob3VsZCBub3QgZG8KLSAg
ICB0aGlzIGluIHByb2R1Y3Rpb24gY29kZSEpCi0KLSAgICBIb3dldmVyLCBhIGJldHRlciBhcHBy
b2FjaCBpcyB0byBtb3ZlIHRoZSBwcml2YXRlIGNvZGUgaW50byB0aGUKLSAgICBgZm9vOjppbnRl
cm5hbGAgbmFtZXNwYWNlLCB3aGVyZSBgZm9vYCBpcyB0aGUgbmFtZXNwYWNlIHlvdXIgcHJvamVj
dAotICAgIG5vcm1hbGx5IHVzZXMsIGFuZCBwdXQgdGhlIHByaXZhdGUgZGVjbGFyYXRpb25zIGlu
IGEgYCotaW50ZXJuYWwuaGAgZmlsZS4KLSAgICBZb3VyIHByb2R1Y3Rpb24gYC5jY2AgZmlsZXMg
YW5kIHlvdXIgdGVzdHMgYXJlIGFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzCi0gICAgaW50ZXJuYWwg
aGVhZGVyLCBidXQgeW91ciBjbGllbnRzIGFyZSBub3QuIFRoaXMgd2F5LCB5b3UgY2FuIGZ1bGx5
IHRlc3QgeW91cgotICAgIGludGVybmFsIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgbGVha2luZyBp
dCB0byB5b3VyIGNsaWVudHMuCi0KLSogICBQcml2YXRlIGNsYXNzIG1lbWJlcnMgYXJlIG9ubHkg
YWNjZXNzaWJsZSBmcm9tIHdpdGhpbiB0aGUgY2xhc3Mgb3IgYnkKLSAgICBmcmllbmRzLiBUbyBh
Y2Nlc3MgYSBjbGFzcycgcHJpdmF0ZSBtZW1iZXJzLCB5b3UgY2FuIGRlY2xhcmUgeW91ciB0ZXN0
Ci0gICAgZml4dHVyZSBhcyBhIGZyaWVuZCB0byB0aGUgY2xhc3MgYW5kIGRlZmluZSBhY2Nlc3Nv
cnMgaW4geW91ciBmaXh0dXJlLiBUZXN0cwotICAgIHVzaW5nIHRoZSBmaXh0dXJlIGNhbiB0aGVu
IGFjY2VzcyB0aGUgcHJpdmF0ZSBtZW1iZXJzIG9mIHlvdXIgcHJvZHVjdGlvbgotICAgIGNsYXNz
IHZpYSB0aGUgYWNjZXNzb3JzIGluIHRoZSBmaXh0dXJlLiBOb3RlIHRoYXQgZXZlbiB0aG91Z2gg
eW91ciBmaXh0dXJlCi0gICAgaXMgYSBmcmllbmQgdG8geW91ciBwcm9kdWN0aW9uIGNsYXNzLCB5
b3VyIHRlc3RzIGFyZSBub3QgYXV0b21hdGljYWxseQotICAgIGZyaWVuZHMgdG8gaXQsIGFzIHRo
ZXkgYXJlIHRlY2huaWNhbGx5IGRlZmluZWQgaW4gc3ViLWNsYXNzZXMgb2YgdGhlCi0gICAgZml4
dHVyZS4KLQotICAgIEFub3RoZXIgd2F5IHRvIHRlc3QgcHJpdmF0ZSBtZW1iZXJzIGlzIHRvIHJl
ZmFjdG9yIHRoZW0gaW50byBhbgotICAgIGltcGxlbWVudGF0aW9uIGNsYXNzLCB3aGljaCBpcyB0
aGVuIGRlY2xhcmVkIGluIGEgYCotaW50ZXJuYWwuaGAgZmlsZS4gWW91cgotICAgIGNsaWVudHMg
YXJlbid0IGFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzIGhlYWRlciBidXQgeW91ciB0ZXN0cyBjYW4u
IFN1Y2ggaXMKLSAgICBjYWxsZWQgdGhlCi0gICAgW1BpbXBsXShodHRwczovL3d3dy5nYW1lZGV2
Lm5ldC9hcnRpY2xlcy9wcm9ncmFtbWluZy9nZW5lcmFsLWFuZC1nYW1lcGxheS1wcm9ncmFtbWlu
Zy90aGUtYy1waW1wbC1yMTc5NC8pCi0gICAgKFByaXZhdGUgSW1wbGVtZW50YXRpb24pIGlkaW9t
LgotCi0gICAgT3IsIHlvdSBjYW4gZGVjbGFyZSBhbiBpbmRpdmlkdWFsIHRlc3QgYXMgYSBmcmll
bmQgb2YgeW91ciBjbGFzcyBieSBhZGRpbmcKLSAgICB0aGlzIGxpbmUgaW4gdGhlIGNsYXNzIGJv
ZHk6Ci0KLSAgICBgYGBjKysKLSAgICAgICAgRlJJRU5EX1RFU1QoVGVzdENhc2VOYW1lLCBUZXN0
TmFtZSk7Ci0gICAgYGBgCi0KLSAgICBGb3IgZXhhbXBsZSwKLQotICAgIGBgYGMrKwotICAgIC8v
IGZvby5oCi0KLSAgICAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgotCi0gICAgY2xhc3Mg
Rm9vIHsKLSAgICAgIC4uLgotICAgIHByaXZhdGU6Ci0gICAgICBGUklFTkRfVEVTVChGb29UZXN0
LCBCYXJSZXR1cm5zWmVyb09uTnVsbCk7Ci0KLSAgICAgIGludCBCYXIodm9pZCogeCk7Ci0gICAg
fTsKLQotICAgIC8vIGZvb190ZXN0LmNjCi0gICAgLi4uCi0gICAgVEVTVChGb29UZXN0LCBCYXJS
ZXR1cm5zWmVyb09uTnVsbCkgewotICAgICAgRm9vIGZvbzsKLSAgICAgIEVYUEVDVF9FUSgwLCBm
b28uQmFyKE5VTEwpKTsgIC8vIFVzZXMgRm9vJ3MgcHJpdmF0ZSBtZW1iZXIgQmFyKCkuCi0gICAg
fQotICAgIGBgYAotCi0gICAgUGF5IHNwZWNpYWwgYXR0ZW50aW9uIHdoZW4geW91ciBjbGFzcyBp
cyBkZWZpbmVkIGluIGEgbmFtZXNwYWNlLCBhcyB5b3UKLSAgICBzaG91bGQgZGVmaW5lIHlvdXIg
dGVzdCBmaXh0dXJlcyBhbmQgdGVzdHMgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGlmIHlvdSB3YW50
Ci0gICAgdGhlbSB0byBiZSBmcmllbmRzIG9mIHlvdXIgY2xhc3MuIEZvciBleGFtcGxlLCBpZiB0
aGUgY29kZSB0byBiZSB0ZXN0ZWQKLSAgICBsb29rcyBsaWtlOgotCi0gICAgYGBgYysrCi0gICAg
bmFtZXNwYWNlIG15X25hbWVzcGFjZSB7Ci0KLSAgICBjbGFzcyBGb28gewotICAgICAgZnJpZW5k
IGNsYXNzIEZvb1Rlc3Q7Ci0gICAgICBGUklFTkRfVEVTVChGb29UZXN0LCBCYXIpOwotICAgICAg
RlJJRU5EX1RFU1QoRm9vVGVzdCwgQmF6KTsKLSAgICAgIC4uLiBkZWZpbml0aW9uIG9mIHRoZSBj
bGFzcyBGb28gLi4uCi0gICAgfTsKLQotICAgIH0gIC8vIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UK
LSAgICBgYGAKLQotICAgIFlvdXIgdGVzdCBjb2RlIHNob3VsZCBiZSBzb21ldGhpbmcgbGlrZToK
LQotICAgIGBgYGMrKwotICAgIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UgewotCi0gICAgY2xhc3Mg
Rm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotICAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAuLi4KLSAgICB9OwotCi0gICAgVEVTVF9GKEZvb1Rlc3QsIEJhcikgeyAuLi4gfQotICAgIFRF
U1RfRihGb29UZXN0LCBCYXopIHsgLi4uIH0KLQotICAgIH0gIC8vIG5hbWVzcGFjZSBteV9uYW1l
c3BhY2UKLSAgICBgYGAKLQotCi0jIyAiQ2F0Y2hpbmciIEZhaWx1cmVzCi0KLUlmIHlvdSBhcmUg
YnVpbGRpbmcgYSB0ZXN0aW5nIHV0aWxpdHkgb24gdG9wIG9mIGdvb2dsZXRlc3QsIHlvdSdsbCB3
YW50IHRvIHRlc3QKLXlvdXIgdXRpbGl0eS4gV2hhdCBmcmFtZXdvcmsgd291bGQgeW91IHVzZSB0
byB0ZXN0IGl0PyBnb29nbGV0ZXN0LCBvZiBjb3Vyc2UuCi0KLVRoZSBjaGFsbGVuZ2UgaXMgdG8g
dmVyaWZ5IHRoYXQgeW91ciB0ZXN0aW5nIHV0aWxpdHkgcmVwb3J0cyBmYWlsdXJlcyBjb3JyZWN0
bHkuCi1JbiBmcmFtZXdvcmtzIHRoYXQgcmVwb3J0IGEgZmFpbHVyZSBieSB0aHJvd2luZyBhbiBl
eGNlcHRpb24sIHlvdSBjb3VsZCBjYXRjaAotdGhlIGV4Y2VwdGlvbiBhbmQgYXNzZXJ0IG9uIGl0
LiBCdXQgZ29vZ2xldGVzdCBkb2Vzbid0IHVzZSBleGNlcHRpb25zLCBzbyBob3cgZG8KLXdlIHRl
c3QgdGhhdCBhIHBpZWNlIG9mIGNvZGUgZ2VuZXJhdGVzIGFuIGV4cGVjdGVkIGZhaWx1cmU/Ci0K
LWd1bml0LXNwaS5oIGNvbnRhaW5zIHNvbWUgY29uc3RydWN0cyB0byBkbyB0aGlzLiBBZnRlciAj
aW5jbHVkaW5nIHRoaXMgaGVhZGVyLAoteW91IGNhbiB1c2UKLQotYGBgYysrCi0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKHN0YXRlbWVudCwgc3Vic3RyaW5nKTsKLWBgYAotCi10byBhc3NlcnQgdGhh
dCBgc3RhdGVtZW50YCBnZW5lcmF0ZXMgYSBmYXRhbCAoZS5nLiBgQVNTRVJUXypgKSBmYWlsdXJl
IGluIHRoZQotY3VycmVudCB0aHJlYWQgd2hvc2UgbWVzc2FnZSBjb250YWlucyB0aGUgZ2l2ZW4g
YHN1YnN0cmluZ2AsIG9yIHVzZQotCi1gYGBjKysKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
c3RhdGVtZW50LCBzdWJzdHJpbmcpOwotYGBgCi0KLWlmIHlvdSBhcmUgZXhwZWN0aW5nIGEgbm9u
LWZhdGFsIChlLmcuIGBFWFBFQ1RfKmApIGZhaWx1cmUuCi0KLU9ubHkgZmFpbHVyZXMgaW4gdGhl
IGN1cnJlbnQgdGhyZWFkIGFyZSBjaGVja2VkIHRvIGRldGVybWluZSB0aGUgcmVzdWx0IG9mIHRo
aXMKLXR5cGUgb2YgZXhwZWN0YXRpb25zLiBJZiBgc3RhdGVtZW50YCBjcmVhdGVzIG5ldyB0aHJl
YWRzLCBmYWlsdXJlcyBpbiB0aGVzZQotdGhyZWFkcyBhcmUgYWxzbyBpZ25vcmVkLiBJZiB5b3Ug
d2FudCB0byBjYXRjaCBmYWlsdXJlcyBpbiBvdGhlciB0aHJlYWRzIGFzCi13ZWxsLCB1c2Ugb25l
IG9mIHRoZSBmb2xsb3dpbmcgbWFjcm9zIGluc3RlYWQ6Ci0KLWBgYGMrKwotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhzdGF0ZW1lbnQsIHN1YnN0cmluZyk7Ci0gIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKHN0YXRlbWVudCwgc3Vic3RyaW5nKTsK
LWBgYAotCi1OT1RFOiBBc3NlcnRpb25zIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhcmUgY3VycmVu
dGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cy4KLQotRm9yIHRlY2huaWNhbCByZWFzb25zLCB0
aGVyZSBhcmUgc29tZSBjYXZlYXRzOgotCi0xLiAgWW91IGNhbm5vdCBzdHJlYW0gYSBmYWlsdXJl
IG1lc3NhZ2UgdG8gZWl0aGVyIG1hY3JvLgotCi0xLiAgYHN0YXRlbWVudGAgaW4gYEVYUEVDVF9G
QVRBTF9GQUlMVVJFe19PTl9BTExfVEhSRUFEU30oKWAgY2Fubm90IHJlZmVyZW5jZQotICAgIGxv
Y2FsIG5vbi1zdGF0aWMgdmFyaWFibGVzIG9yIG5vbi1zdGF0aWMgbWVtYmVycyBvZiBgdGhpc2Ag
b2JqZWN0LgotCi0xLiAgYHN0YXRlbWVudGAgaW4gYEVYUEVDVF9GQVRBTF9GQUlMVVJFe19PTl9B
TExfVEhSRUFEU30oKSgpYCBjYW5ub3QgcmV0dXJuIGEKLSAgICB2YWx1ZS4KLQotCi0jIyBHZXR0
aW5nIHRoZSBDdXJyZW50IFRlc3QncyBOYW1lCi0KLVNvbWV0aW1lcyBhIGZ1bmN0aW9uIG1heSBu
ZWVkIHRvIGtub3cgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuCi1Gb3Ig
ZXhhbXBsZSwgeW91IG1heSBiZSB1c2luZyB0aGUgYFNldFVwKClgIG1ldGhvZCBvZiB5b3VyIHRl
c3QgZml4dHVyZSB0byBzZXQKLXRoZSBnb2xkZW4gZmlsZSBuYW1lIGJhc2VkIG9uIHdoaWNoIHRl
c3QgaXMgcnVubmluZy4gVGhlIGA6OnRlc3Rpbmc6OlRlc3RJbmZvYAotY2xhc3MgaGFzIHRoaXMg
aW5mb3JtYXRpb246Ci0KLWBgYGMrKwotbmFtZXNwYWNlIHRlc3RpbmcgewotCi1jbGFzcyBUZXN0
SW5mbyB7Ci0gcHVibGljOgotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgbmFtZSBhbmQgdGhl
IHRlc3QgbmFtZSwgcmVzcGVjdGl2ZWx5LgotICAvLwotICAvLyBEbyBOT1QgZGVsZXRlIG9yIGZy
ZWUgdGhlIHJldHVybiB2YWx1ZSAtIGl0J3MgbWFuYWdlZCBieSB0aGUKLSAgLy8gVGVzdEluZm8g
Y2xhc3MuCi0gIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lKCkgY29uc3Q7Ci0gIGNvbnN0IGNo
YXIqIG5hbWUoKSBjb25zdDsKLX07Ci0KLX0KLWBgYAotCi1UbyBvYnRhaW4gYSBgVGVzdEluZm9g
IG9iamVjdCBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QsIGNhbGwKLWBjdXJyZW50X3Rl
c3RfaW5mbygpYCBvbiB0aGUgYFVuaXRUZXN0YCBzaW5nbGV0b24gb2JqZWN0OgotCi1gYGBjKysK
LSAgLy8gR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdC4K
LSAgLy8gRG8gTk9UIGRlbGV0ZSB0aGUgcmV0dXJuZWQgb2JqZWN0IC0gaXQncyBtYW5hZ2VkIGJ5
IHRoZSBVbml0VGVzdCBjbGFzcy4KLSAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3Qg
dGVzdF9pbmZvID0KLSAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJy
ZW50X3Rlc3RfaW5mbygpOwotCi0KLQotICBwcmludGYoIldlIGFyZSBpbiB0ZXN0ICVzIG9mIHRl
c3QgY2FzZSAlcy5cbiIsCi0gICAgICAgICB0ZXN0X2luZm8tPm5hbWUoKSwKLSAgICAgICAgIHRl
c3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci1gYGAKLQotYGN1cnJlbnRfdGVzdF9pbmZvKClg
IHJldHVybnMgYSBudWxsIHBvaW50ZXIgaWYgbm8gdGVzdCBpcyBydW5uaW5nLiBJbgotcGFydGlj
dWxhciwgeW91IGNhbm5vdCBmaW5kIHRoZSB0ZXN0IGNhc2UgbmFtZSBpbiBgVGVzdENhc2VTZXRV
cCgpYCwKLWBUZXN0Q2FzZVRlYXJEb3duKClgICh3aGVyZSB5b3Uga25vdyB0aGUgdGVzdCBjYXNl
IG5hbWUgaW1wbGljaXRseSksIG9yCi1mdW5jdGlvbnMgY2FsbGVkIGZyb20gdGhlbS4KLQotKipB
dmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgRXh0ZW5kaW5nIGdvb2ds
ZXRlc3QgYnkgSGFuZGxpbmcgVGVzdCBFdmVudHMKLQotZ29vZ2xldGVzdCBwcm92aWRlcyBhbiAq
KmV2ZW50IGxpc3RlbmVyIEFQSSoqIHRvIGxldCB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zCi1h
Ym91dCB0aGUgcHJvZ3Jlc3Mgb2YgYSB0ZXN0IHByb2dyYW0gYW5kIHRlc3QgZmFpbHVyZXMuIFRo
ZSBldmVudHMgeW91IGNhbgotbGlzdGVuIHRvIGluY2x1ZGUgdGhlIHN0YXJ0IGFuZCBlbmQgb2Yg
dGhlIHRlc3QgcHJvZ3JhbSwgYSB0ZXN0IGNhc2UsIG9yIGEgdGVzdAotbWV0aG9kLCBhbW9uZyBv
dGhlcnMuIFlvdSBtYXkgdXNlIHRoaXMgQVBJIHRvIGF1Z21lbnQgb3IgcmVwbGFjZSB0aGUgc3Rh
bmRhcmQKLWNvbnNvbGUgb3V0cHV0LCByZXBsYWNlIHRoZSBYTUwgb3V0cHV0LCBvciBwcm92aWRl
IGEgY29tcGxldGVseSBkaWZmZXJlbnQgZm9ybQotb2Ygb3V0cHV0LCBzdWNoIGFzIGEgR1VJIG9y
IGEgZGF0YWJhc2UuIFlvdSBjYW4gYWxzbyB1c2UgdGVzdCBldmVudHMgYXMKLWNoZWNrcG9pbnRz
IHRvIGltcGxlbWVudCBhIHJlc291cmNlIGxlYWsgY2hlY2tlciwgZm9yIGV4YW1wbGUuCi0KLSoq
QXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBEZWZpbmluZyBFdmVu
dCBMaXN0ZW5lcnMKLQotVG8gZGVmaW5lIGEgZXZlbnQgbGlzdGVuZXIsIHlvdSBzdWJjbGFzcyBl
aXRoZXIgdGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXIgb3IKLXRlc3Rpbmc6OkVtcHR5VGVzdEV2
ZW50TGlzdGVuZXIgVGhlIGZvcm1lciBpcyBhbiAoYWJzdHJhY3QpIGludGVyZmFjZSwgd2hlcmUK
LSplYWNoIHB1cmUgdmlydHVhbCBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gdG8gaGFuZGxlIGEg
dGVzdCBldmVudCogKEZvcgotZXhhbXBsZSwgd2hlbiBhIHRlc3Qgc3RhcnRzLCB0aGUgYE9uVGVz
dFN0YXJ0KClgIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4pLiBUaGUKLWxhdHRlciBwcm92aWRlcyBh
biBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBhbGwgbWV0aG9kcyBpbiB0aGUgaW50ZXJmYWNlLCBz
dWNoCi10aGF0IGEgc3ViY2xhc3Mgb25seSBuZWVkcyB0byBvdmVycmlkZSB0aGUgbWV0aG9kcyBp
dCBjYXJlcyBhYm91dC4KLQotV2hlbiBhbiBldmVudCBpcyBmaXJlZCwgaXRzIGNvbnRleHQgaXMg
cGFzc2VkIHRvIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIGFzIGFuCi1hcmd1bWVudC4gVGhlIGZvbGxv
d2luZyBhcmd1bWVudCB0eXBlcyBhcmUgdXNlZDoKLQotKiAgIFVuaXRUZXN0IHJlZmxlY3RzIHRo
ZSBzdGF0ZSBvZiB0aGUgZW50aXJlIHRlc3QgcHJvZ3JhbSwKLSogICBUZXN0Q2FzZSBoYXMgaW5m
b3JtYXRpb24gYWJvdXQgYSB0ZXN0IGNhc2UsIHdoaWNoIGNhbiBjb250YWluIG9uZSBvciBtb3Jl
Ci0gICAgdGVzdHMsCi0qICAgVGVzdEluZm8gY29udGFpbnMgdGhlIHN0YXRlIG9mIGEgdGVzdCwg
YW5kCi0qICAgVGVzdFBhcnRSZXN1bHQgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIGEgdGVzdCBh
c3NlcnRpb24uCi0KLUFuIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gY2FuIGV4YW1pbmUgdGhlIGFy
Z3VtZW50IGl0IHJlY2VpdmVzIHRvIGZpbmQgb3V0Ci1pbnRlcmVzdGluZyBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgZXZlbnQgYW5kIHRoZSB0ZXN0IHByb2dyYW0ncyBzdGF0ZS4KLQotSGVyZSdzIGFu
IGV4YW1wbGU6Ci0KLWBgYGMrKwotICBjbGFzcyBNaW5pbWFsaXN0UHJpbnRlciA6IHB1YmxpYyA6
OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotICAgIC8vIENhbGxlZCBiZWZvcmUg
YSB0ZXN0IHN0YXJ0cy4KLSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgOjp0ZXN0
aW5nOjpUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgICBwcmludGYoIioqKiBUZXN0ICVzLiVz
IHN0YXJ0aW5nLlxuIiwKLSAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwg
dGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgfQotCi0gICAgLy8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVk
IGFzc2VydGlvbiBvciBhIFNVQ0NFU1MoKS4KLSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSB7
Ci0gICAgICBwcmludGYoIiVzIGluICVzOiVkXG4lc1xuIiwKLSAgICAgICAgICAgICB0ZXN0X3Bh
cnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJlIiA6ICJTdWNjZXNzIiwKLSAgICAgICAg
ICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZpbGVfbmFtZSgpLAotICAgICAgICAgICAgIHRlc3RfcGFy
dF9yZXN1bHQubGluZV9udW1iZXIoKSwKLSAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LnN1
bW1hcnkoKSk7Ci0gICAgfQotCi0gICAgLy8gQ2FsbGVkIGFmdGVyIGEgdGVzdCBlbmRzLgotICAg
IHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyYgdGVzdF9p
bmZvKSB7Ci0gICAgICBwcmludGYoIioqKiBUZXN0ICVzLiVzIGVuZGluZy5cbiIsCi0gICAgICAg
ICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwotICAg
IH0KLSAgfTsKLWBgYAotCi0jIyMgVXNpbmcgRXZlbnQgTGlzdGVuZXJzCi0KLVRvIHVzZSB0aGUg
ZXZlbnQgbGlzdGVuZXIgeW91IGhhdmUgZGVmaW5lZCwgYWRkIGFuIGluc3RhbmNlIG9mIGl0IHRv
IHRoZQotZ29vZ2xldGVzdCBldmVudCBsaXN0ZW5lciBsaXN0IChyZXByZXNlbnRlZCBieSBjbGFz
cyBUZXN0RXZlbnRMaXN0ZW5lcnMgLSBub3RlCi10aGUgInMiIGF0IHRoZSBlbmQgb2YgdGhlIG5h
bWUpIGluIHlvdXIgYG1haW4oKWAgZnVuY3Rpb24sIGJlZm9yZSBjYWxsaW5nCi1gUlVOX0FMTF9U
RVNUUygpYDoKLQotYGBgYysrCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLSAg
Ojp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIC8vIEdldHMgaG9sZCBv
ZiB0aGUgZXZlbnQgbGlzdGVuZXIgbGlzdC4KLSAgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5l
cnMmIGxpc3RlbmVycyA9Ci0gICAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmxpc3RlbmVycygpOwotICAvLyBBZGRzIGEgbGlzdGVuZXIgdG8gdGhlIGVuZC4gIGdvb2ds
ZXRlc3QgdGFrZXMgdGhlIG93bmVyc2hpcC4KLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgTWluaW1h
bGlzdFByaW50ZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBgCi0KLVRoZXJl
J3Mgb25seSBvbmUgcHJvYmxlbTogdGhlIGRlZmF1bHQgdGVzdCByZXN1bHQgcHJpbnRlciBpcyBz
dGlsbCBpbiBlZmZlY3QsIHNvCi1pdHMgb3V0cHV0IHdpbGwgbWluZ2xlIHdpdGggdGhlIG91dHB1
dCBmcm9tIHlvdXIgbWluaW1hbGlzdCBwcmludGVyLiBUbyBzdXBwcmVzcwotdGhlIGRlZmF1bHQg
cHJpbnRlciwganVzdCByZWxlYXNlIGl0IGZyb20gdGhlIGV2ZW50IGxpc3RlbmVyIGxpc3QgYW5k
IGRlbGV0ZSBpdC4KLVlvdSBjYW4gZG8gc28gYnkgYWRkaW5nIG9uZSBsaW5lOgotCi1gYGBjKysK
LSAgLi4uCi0gIGRlbGV0ZSBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1
bHRfcHJpbnRlcigpKTsKLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgTWluaW1hbGlzdFByaW50ZXIp
OwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotYGBgCi0KLU5vdywgc2l0IGJhY2sgYW5kIGVu
am95IGEgY29tcGxldGVseSBkaWZmZXJlbnQgb3V0cHV0IGZyb20geW91ciB0ZXN0cy4gRm9yIG1v
cmUKLWRldGFpbHMsIHlvdSBjYW4gcmVhZCB0aGlzIHNhbXBsZTlfdW5pdHRlc3QuY2MKLQotWW91
IG1heSBhcHBlbmQgbW9yZSB0aGFuIG9uZSBsaXN0ZW5lciB0byB0aGUgbGlzdC4gV2hlbiBhbiBg
T24qU3RhcnQoKWAgb3IKLWBPblRlc3RQYXJ0UmVzdWx0KClgIGV2ZW50IGlzIGZpcmVkLCB0aGUg
bGlzdGVuZXJzIHdpbGwgcmVjZWl2ZSBpdCBpbiB0aGUgb3JkZXIKLXRoZXkgYXBwZWFyIGluIHRo
ZSBsaXN0IChzaW5jZSBuZXcgbGlzdGVuZXJzIGFyZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBs
aXN0LAotdGhlIGRlZmF1bHQgdGV4dCBwcmludGVyIGFuZCB0aGUgZGVmYXVsdCBYTUwgZ2VuZXJh
dG9yIHdpbGwgcmVjZWl2ZSB0aGUgZXZlbnQKLWZpcnN0KS4gQW4gYE9uKkVuZCgpYCBldmVudCB3
aWxsIGJlIHJlY2VpdmVkIGJ5IHRoZSBsaXN0ZW5lcnMgaW4gdGhlICpyZXZlcnNlKgotb3JkZXIu
IFRoaXMgYWxsb3dzIG91dHB1dCBieSBsaXN0ZW5lcnMgYWRkZWQgbGF0ZXIgdG8gYmUgZnJhbWVk
IGJ5IG91dHB1dCBmcm9tCi1saXN0ZW5lcnMgYWRkZWQgZWFybGllci4KLQotIyMjIEdlbmVyYXRp
bmcgRmFpbHVyZXMgaW4gTGlzdGVuZXJzCi0KLVlvdSBtYXkgdXNlIGZhaWx1cmUtcmFpc2luZyBt
YWNyb3MgKGBFWFBFQ1RfKigpYCwgYEFTU0VSVF8qKClgLCBgRkFJTCgpYCwgZXRjKQotd2hlbiBw
cm9jZXNzaW5nIGFuIGV2ZW50LiBUaGVyZSBhcmUgc29tZSByZXN0cmljdGlvbnM6Ci0KLTEuICBZ
b3UgY2Fubm90IGdlbmVyYXRlIGFueSBmYWlsdXJlIGluIGBPblRlc3RQYXJ0UmVzdWx0KClgIChv
dGhlcndpc2UgaXQgd2lsbAotICAgIGNhdXNlIGBPblRlc3RQYXJ0UmVzdWx0KClgIHRvIGJlIGNh
bGxlZCByZWN1cnNpdmVseSkuCi0xLiAgQSBsaXN0ZW5lciB0aGF0IGhhbmRsZXMgYE9uVGVzdFBh
cnRSZXN1bHQoKWAgaXMgbm90IGFsbG93ZWQgdG8gZ2VuZXJhdGUgYW55Ci0gICAgZmFpbHVyZS4K
LQotV2hlbiB5b3UgYWRkIGxpc3RlbmVycyB0byB0aGUgbGlzdGVuZXIgbGlzdCwgeW91IHNob3Vs
ZCBwdXQgbGlzdGVuZXJzIHRoYXQKLWhhbmRsZSBgT25UZXN0UGFydFJlc3VsdCgpYCAqYmVmb3Jl
KiBsaXN0ZW5lcnMgdGhhdCBjYW4gZ2VuZXJhdGUgZmFpbHVyZXMuIFRoaXMKLWVuc3VyZXMgdGhh
dCBmYWlsdXJlcyBnZW5lcmF0ZWQgYnkgdGhlIGxhdHRlciBhcmUgYXR0cmlidXRlZCB0byB0aGUg
cmlnaHQgdGVzdAotYnkgdGhlIGZvcm1lci4KLQotV2UgaGF2ZSBhIHNhbXBsZSBvZiBmYWlsdXJl
LXJhaXNpbmcgbGlzdGVuZXIgc2FtcGxlMTBfdW5pdHRlc3QuY2MKLQotIyMgUnVubmluZyBUZXN0
IFByb2dyYW1zOiBBZHZhbmNlZCBPcHRpb25zCi0KLWdvb2dsZXRlc3QgdGVzdCBwcm9ncmFtcyBh
cmUgb3JkaW5hcnkgZXhlY3V0YWJsZXMuIE9uY2UgYnVpbHQsIHlvdSBjYW4gcnVuIHRoZW0KLWRp
cmVjdGx5IGFuZCBhZmZlY3QgdGhlaXIgYmVoYXZpb3IgdmlhIHRoZSBmb2xsb3dpbmcgZW52aXJv
bm1lbnQgdmFyaWFibGVzCi1hbmQvb3IgY29tbWFuZCBsaW5lIGZsYWdzLiBGb3IgdGhlIGZsYWdz
IHRvIHdvcmssIHlvdXIgcHJvZ3JhbXMgbXVzdCBjYWxsCi1gOjp0ZXN0aW5nOjpJbml0R29vZ2xl
VGVzdCgpYCBiZWZvcmUgY2FsbGluZyBgUlVOX0FMTF9URVNUUygpYC4KLQotVG8gc2VlIGEgbGlz
dCBvZiBzdXBwb3J0ZWQgZmxhZ3MgYW5kIHRoZWlyIHVzYWdlLCBwbGVhc2UgcnVuIHlvdXIgdGVz
dCBwcm9ncmFtCi13aXRoIHRoZSBgLS1oZWxwYCBmbGFnLiBZb3UgY2FuIGFsc28gdXNlIGAtaGAs
IGAtP2AsIG9yIGAvP2AgZm9yIHNob3J0LgotCi1JZiBhbiBvcHRpb24gaXMgc3BlY2lmaWVkIGJv
dGggYnkgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIGJ5IGEgZmxhZywgdGhlCi1sYXR0ZXIg
dGFrZXMgcHJlY2VkZW5jZS4KLQotIyMjIFNlbGVjdGluZyBUZXN0cwotCi0jIyMjIExpc3Rpbmcg
VGVzdCBOYW1lcwotCi1Tb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGxpc3QgdGhlIGF2YWls
YWJsZSB0ZXN0cyBpbiBhIHByb2dyYW0gYmVmb3JlCi1ydW5uaW5nIHRoZW0gc28gdGhhdCBhIGZp
bHRlciBtYXkgYmUgYXBwbGllZCBpZiBuZWVkZWQuIEluY2x1ZGluZyB0aGUgZmxhZwotYC0tZ3Rl
c3RfbGlzdF90ZXN0c2Agb3ZlcnJpZGVzIGFsbCBvdGhlciBmbGFncyBhbmQgbGlzdHMgdGVzdHMg
aW4gdGhlIGZvbGxvd2luZwotZm9ybWF0OgotCi1gYGBub25lCi1UZXN0Q2FzZTEuCi0gIFRlc3RO
YW1lMQotICBUZXN0TmFtZTIKLVRlc3RDYXNlMi4KLSAgVGVzdE5hbWUKLWBgYAotCi1Ob25lIG9m
IHRoZSB0ZXN0cyBsaXN0ZWQgYXJlIGFjdHVhbGx5IHJ1biBpZiB0aGUgZmxhZyBpcyBwcm92aWRl
ZC4gVGhlcmUgaXMgbm8KLWNvcnJlc3BvbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIHRo
aXMgZmxhZy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMj
IyBSdW5uaW5nIGEgU3Vic2V0IG9mIHRoZSBUZXN0cwotCi1CeSBkZWZhdWx0LCBhIGdvb2dsZXRl
c3QgcHJvZ3JhbSBydW5zIGFsbCB0ZXN0cyB0aGUgdXNlciBoYXMgZGVmaW5lZC4gU29tZXRpbWVz
LAoteW91IHdhbnQgdG8gcnVuIG9ubHkgYSBzdWJzZXQgb2YgdGhlIHRlc3RzIChlLmcuIGZvciBk
ZWJ1Z2dpbmcgb3IgcXVpY2tseQotdmVyaWZ5aW5nIGEgY2hhbmdlKS4gSWYgeW91IHNldCB0aGUg
YEdURVNUX0ZJTFRFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCi1gLS1ndGVzdF9maWx0
ZXJgIGZsYWcgdG8gYSBmaWx0ZXIgc3RyaW5nLCBnb29nbGV0ZXN0IHdpbGwgb25seSBydW4gdGhl
IHRlc3RzCi13aG9zZSBmdWxsIG5hbWVzIChpbiB0aGUgZm9ybSBvZiBgVGVzdENhc2VOYW1lLlRl
c3ROYW1lYCkgbWF0Y2ggdGhlIGZpbHRlci4KLQotVGhlIGZvcm1hdCBvZiBhIGZpbHRlciBpcyBh
ICdgOmAnLXNlcGFyYXRlZCBsaXN0IG9mIHdpbGRjYXJkIHBhdHRlcm5zIChjYWxsZWQKLXRoZSAq
cG9zaXRpdmUgcGF0dGVybnMqKSBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGEgJ2AtYCcgYW5kIGFu
b3RoZXIKLSdgOmAnLXNlcGFyYXRlZCBwYXR0ZXJuIGxpc3QgKGNhbGxlZCB0aGUgKm5lZ2F0aXZl
IHBhdHRlcm5zKikuIEEgdGVzdCBtYXRjaGVzCi10aGUgZmlsdGVyIGlmIGFuZCBvbmx5IGlmIGl0
IG1hdGNoZXMgYW55IG9mIHRoZSBwb3NpdGl2ZSBwYXR0ZXJucyBidXQgZG9lcyBub3QKLW1hdGNo
IGFueSBvZiB0aGUgbmVnYXRpdmUgcGF0dGVybnMuCi0KLUEgcGF0dGVybiBtYXkgY29udGFpbiBg
JyonYCAobWF0Y2hlcyBhbnkgc3RyaW5nKSBvciBgJz8nYCAobWF0Y2hlcyBhbnkgc2luZ2xlCi1j
aGFyYWN0ZXIpLiBGb3IgY29udmVuaWVuY2UsIHRoZSBmaWx0ZXIKLQotYCcqLU5lZ2F0aXZlUGF0
dGVybnMnYCBjYW4gYmUgYWxzbyB3cml0dGVuIGFzIGAnLU5lZ2F0aXZlUGF0dGVybnMnYC4KLQot
Rm9yIGV4YW1wbGU6Ci0KLSogICBgLi9mb29fdGVzdGAgSGFzIG5vIGZsYWcsIGFuZCB0aHVzIHJ1
bnMgYWxsIGl0cyB0ZXN0cy4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0qYCBBbHNv
IHJ1bnMgZXZlcnl0aGluZywgZHVlIHRvIHRoZSBzaW5nbGUKLSAgICBtYXRjaC1ldmVyeXRoaW5n
IGAqYCB2YWx1ZS4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj1Gb29UZXN0LipgIFJ1
bnMgZXZlcnl0aGluZyBpbiB0ZXN0IGNhc2UgYEZvb1Rlc3RgCi0gICAgLgotKiAgIGAuL2Zvb190
ZXN0IC0tZ3Rlc3RfZmlsdGVyPSpOdWxsKjoqQ29uc3RydWN0b3IqYCBSdW5zIGFueSB0ZXN0IHdo
b3NlIGZ1bGwKLSAgICBuYW1lIGNvbnRhaW5zIGVpdGhlciBgIk51bGwiYCBvciBgIkNvbnN0cnVj
dG9yImAgLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3RfZmlsdGVyPS0qRGVhdGhUZXN0LipgIFJ1
bnMgYWxsIG5vbi1kZWF0aCB0ZXN0cy4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj1G
b29UZXN0LiotRm9vVGVzdC5CYXJgIFJ1bnMgZXZlcnl0aGluZyBpbiB0ZXN0Ci0gICAgY2FzZSBg
Rm9vVGVzdGAgZXhjZXB0IGBGb29UZXN0LkJhcmAuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9m
aWx0ZXI9Rm9vVGVzdC4qOkJhclRlc3QuKi1Gb29UZXN0LkJhcjpCYXJUZXN0LkZvb2AgUnVucwot
ICAgIGV2ZXJ5dGhpbmcgaW4gdGVzdCBjYXNlIGBGb29UZXN0YCBleGNlcHQgYEZvb1Rlc3QuQmFy
YCBhbmQgZXZlcnl0aGluZyBpbgotICAgIHRlc3QgY2FzZSBgQmFyVGVzdGAgZXhjZXB0IGBCYXJU
ZXN0LkZvb2AuCi0gICAgCi0jIyMjIFRlbXBvcmFyaWx5IERpc2FibGluZyBUZXN0cwotCi1JZiB5
b3UgaGF2ZSBhIGJyb2tlbiB0ZXN0IHRoYXQgeW91IGNhbm5vdCBmaXggcmlnaHQgYXdheSwgeW91
IGNhbiBhZGQgdGhlCi1gRElTQUJMRURfYCBwcmVmaXggdG8gaXRzIG5hbWUuIFRoaXMgd2lsbCBl
eGNsdWRlIGl0IGZyb20gZXhlY3V0aW9uLiBUaGlzIGlzCi1iZXR0ZXIgdGhhbiBjb21tZW50aW5n
IG91dCB0aGUgY29kZSBvciB1c2luZyBgI2lmIDBgLCBhcyBkaXNhYmxlZCB0ZXN0cyBhcmUKLXN0
aWxsIGNvbXBpbGVkIChhbmQgdGh1cyB3b24ndCByb3QpLgotCi1JZiB5b3UgbmVlZCB0byBkaXNh
YmxlIGFsbCB0ZXN0cyBpbiBhIHRlc3QgY2FzZSwgeW91IGNhbiBlaXRoZXIgYWRkIGBESVNBQkxF
RF9gCi10byB0aGUgZnJvbnQgb2YgdGhlIG5hbWUgb2YgZWFjaCB0ZXN0LCBvciBhbHRlcm5hdGl2
ZWx5IGFkZCBpdCB0byB0aGUgZnJvbnQgb2YKLXRoZSB0ZXN0IGNhc2UgbmFtZS4KLQotRm9yIGV4
YW1wbGUsIHRoZSBmb2xsb3dpbmcgdGVzdHMgd29uJ3QgYmUgcnVuIGJ5IGdvb2dsZXRlc3QsIGV2
ZW4gdGhvdWdoIHRoZXkKLXdpbGwgc3RpbGwgYmUgY29tcGlsZWQ6Ci0KLWBgYGMrKwotLy8gVGVz
dHMgdGhhdCBGb28gZG9lcyBBYmMuCi1URVNUKEZvb1Rlc3QsIERJU0FCTEVEX0RvZXNBYmMpIHsg
Li4uIH0KLQotY2xhc3MgRElTQUJMRURfQmFyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qg
eyAuLi4gfTsKLQotLy8gVGVzdHMgdGhhdCBCYXIgZG9lcyBYeXouCi1URVNUX0YoRElTQUJMRURf
QmFyVGVzdCwgRG9lc1h5eikgeyAuLi4gfQotYGBgCi0KLU5PVEU6IFRoaXMgZmVhdHVyZSBzaG91
bGQgb25seSBiZSB1c2VkIGZvciB0ZW1wb3JhcnkgcGFpbi1yZWxpZWYuIFlvdSBzdGlsbCBoYXZl
Ci10byBmaXggdGhlIGRpc2FibGVkIHRlc3RzIGF0IGEgbGF0ZXIgZGF0ZS4gQXMgYSByZW1pbmRl
ciwgZ29vZ2xldGVzdCB3aWxsIHByaW50Ci1hIGJhbm5lciB3YXJuaW5nIHlvdSBpZiBhIHRlc3Qg
cHJvZ3JhbSBjb250YWlucyBhbnkgZGlzYWJsZWQgdGVzdHMuCi0KLVRJUDogWW91IGNhbiBlYXNp
bHkgY291bnQgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB5b3UgaGF2ZSB1c2luZyBgZ3Nl
YXJjaGAKLWFuZC9vciBgZ3JlcGAuIFRoaXMgbnVtYmVyIGNhbiBiZSB1c2VkIGFzIGEgbWV0cmlj
IGZvciBpbXByb3ZpbmcgeW91ciB0ZXN0Ci1xdWFsaXR5LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBM
aW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFRlbXBvcmFyaWx5IEVuYWJsaW5nIERpc2FibGVk
IFRlc3RzCi0KLVRvIGluY2x1ZGUgZGlzYWJsZWQgdGVzdHMgaW4gdGVzdCBleGVjdXRpb24sIGp1
c3QgaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gd2l0aAotdGhlIGAtLWd0ZXN0X2Fsc29fcnVuX2Rp
c2FibGVkX3Rlc3RzYCBmbGFnIG9yIHNldCB0aGUKLWBHVEVTVF9BTFNPX1JVTl9ESVNBQkxFRF9U
RVNUU2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIGAwYC4KLVlv
dSBjYW4gY29tYmluZSB0aGlzIHdpdGggdGhlIGAtLWd0ZXN0X2ZpbHRlcmAgZmxhZyB0byBmdXJ0
aGVyIHNlbGVjdCB3aGljaAotZGlzYWJsZWQgdGVzdHMgdG8gcnVuLgotCi0qKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgUmVwZWF0aW5nIHRoZSBUZXN0cwotCi1P
bmNlIGluIGEgd2hpbGUgeW91J2xsIHJ1biBpbnRvIGEgdGVzdCB3aG9zZSByZXN1bHQgaXMgaGl0
LW9yLW1pc3MuIFBlcmhhcHMgaXQKLXdpbGwgZmFpbCBvbmx5IDElIG9mIHRoZSB0aW1lLCBtYWtp
bmcgaXQgcmF0aGVyIGhhcmQgdG8gcmVwcm9kdWNlIHRoZSBidWcgdW5kZXIKLWEgZGVidWdnZXIu
IFRoaXMgY2FuIGJlIGEgbWFqb3Igc291cmNlIG9mIGZydXN0cmF0aW9uLgotCi1UaGUgYC0tZ3Rl
c3RfcmVwZWF0YCBmbGFnIGFsbG93cyB5b3UgdG8gcmVwZWF0IGFsbCAob3Igc2VsZWN0ZWQpIHRl
c3QgbWV0aG9kcyBpbgotYSBwcm9ncmFtIG1hbnkgdGltZXMuIEhvcGVmdWxseSwgYSBmbGFreSB0
ZXN0IHdpbGwgZXZlbnR1YWxseSBmYWlsIGFuZCBnaXZlIHlvdQotYSBjaGFuY2UgdG8gZGVidWcu
IEhlcmUncyBob3cgdG8gdXNlIGl0OgotCi1gYGBub25lCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVw
ZWF0PTEwMDAKLVJlcGVhdCBmb29fdGVzdCAxMDAwIHRpbWVzIGFuZCBkb24ndCBzdG9wIGF0IGZh
aWx1cmVzLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PS0xCi1BIG5lZ2F0aXZlIGNvdW50
IG1lYW5zIHJlcGVhdGluZyBmb3JldmVyLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEw
MDAgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlCi1SZXBlYXQgZm9vX3Rlc3QgMTAwMCB0aW1lcywg
c3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZhaWx1cmUuICBUaGlzCi1pcyBlc3BlY2lhbGx5IHVzZWZ1
bCB3aGVuIHJ1bm5pbmcgdW5kZXIgYSBkZWJ1Z2dlcjogd2hlbiB0aGUgdGVzdAotZmFpbHMsIGl0
IHdpbGwgZHJvcCBpbnRvIHRoZSBkZWJ1Z2dlciBhbmQgeW91IGNhbiB0aGVuIGluc3BlY3QKLXZh
cmlhYmxlcyBhbmQgc3RhY2tzLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDAgLS1n
dGVzdF9maWx0ZXI9Rm9vQmFyLioKLVJlcGVhdCB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVz
IHRoZSBmaWx0ZXIgMTAwMCB0aW1lcy4KLWBgYAotCi1JZiB5b3VyIHRlc3QgcHJvZ3JhbSBjb250
YWlucyBbZ2xvYmFsIHNldC11cC90ZWFyLWRvd25dKCNnbG9iYWwtc2V0LXVwLWFuZC10ZWFyLWRv
d24pIGNvZGUsIGl0Ci13aWxsIGJlIHJlcGVhdGVkIGluIGVhY2ggaXRlcmF0aW9uIGFzIHdlbGws
IGFzIHRoZSBmbGFraW5lc3MgbWF5IGJlIGluIGl0LiBZb3UKLWNhbiBhbHNvIHNwZWNpZnkgdGhl
IHJlcGVhdCBjb3VudCBieSBzZXR0aW5nIHRoZSBgR1RFU1RfUkVQRUFUYCBlbnZpcm9ubWVudAot
dmFyaWFibGUuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMj
IyBTaHVmZmxpbmcgdGhlIFRlc3RzCi0KLVlvdSBjYW4gc3BlY2lmeSB0aGUgYC0tZ3Rlc3Rfc2h1
ZmZsZWAgZmxhZyAob3Igc2V0IHRoZSBgR1RFU1RfU0hVRkZMRWAKLWVudmlyb25tZW50IHZhcmlh
YmxlIHRvIGAxYCkgdG8gcnVuIHRoZSB0ZXN0cyBpbiBhIHByb2dyYW0gaW4gYSByYW5kb20gb3Jk
ZXIuCi1UaGlzIGhlbHBzIHRvIHJldmVhbCBiYWQgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGVzdHMu
Ci0KLUJ5IGRlZmF1bHQsIGdvb2dsZXRlc3QgdXNlcyBhIHJhbmRvbSBzZWVkIGNhbGN1bGF0ZWQg
ZnJvbSB0aGUgY3VycmVudCB0aW1lLgotVGhlcmVmb3JlIHlvdSdsbCBnZXQgYSBkaWZmZXJlbnQg
b3JkZXIgZXZlcnkgdGltZS4gVGhlIGNvbnNvbGUgb3V0cHV0IGluY2x1ZGVzCi10aGUgcmFuZG9t
IHNlZWQgdmFsdWUsIHN1Y2ggdGhhdCB5b3UgY2FuIHJlcHJvZHVjZSBhbiBvcmRlci1yZWxhdGVk
IHRlc3QgZmFpbHVyZQotbGF0ZXIuIFRvIHNwZWNpZnkgdGhlIHJhbmRvbSBzZWVkIGV4cGxpY2l0
bHksIHVzZSB0aGUgYC0tZ3Rlc3RfcmFuZG9tX3NlZWQ9U0VFRGAKLWZsYWcgKG9yIHNldCB0aGUg
YEdURVNUX1JBTkRPTV9TRUVEYCBlbnZpcm9ubWVudCB2YXJpYWJsZSksIHdoZXJlIGBTRUVEYCBp
cyBhbgotaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzAsIDk5OTk5XS4gVGhlIHNlZWQgdmFsdWUgMCBp
cyBzcGVjaWFsOiBpdCB0ZWxscwotZ29vZ2xldGVzdCB0byBkbyB0aGUgZGVmYXVsdCBiZWhhdmlv
ciBvZiBjYWxjdWxhdGluZyB0aGUgc2VlZCBmcm9tIHRoZSBjdXJyZW50Ci10aW1lLgotCi1JZiB5
b3UgY29tYmluZSB0aGlzIHdpdGggYC0tZ3Rlc3RfcmVwZWF0PU5gLCBnb29nbGV0ZXN0IHdpbGwg
cGljayBhIGRpZmZlcmVudAotcmFuZG9tIHNlZWQgYW5kIHJlLXNodWZmbGUgdGhlIHRlc3RzIGlu
IGVhY2ggaXRlcmF0aW9uLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgQ29udHJvbGxpbmcgVGVzdCBPdXRwdXQKLQotIyMjIyBDb2xvcmVkIFRlcm1pbmFs
IE91dHB1dAotCi1nb29nbGV0ZXN0IGNhbiB1c2UgY29sb3JzIGluIGl0cyB0ZXJtaW5hbCBvdXRw
dXQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCB0aGUKLWltcG9ydGFudCBpbmZvcm1hdGlvbjoK
LQotLi4uPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wy0tLS0tLS0tLS1dPHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj4gMSB0ZXN0IGZyb20gRm9vVGVzdDxici8+Ci08c3BhbiBzdHls
ZT0iY29sb3I6Z3JlZW4iPlsgUlVOICAgICAgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEZv
b1Rlc3QuRG9lc0FiYzxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgICAgICAgT0sg
XTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEZvb1Rlc3QuRG9lc0FiYzxici8+Ci08c3BhbiBz
dHlsZT0iY29sb3I6Z3JlZW4iPlstLS0tLS0tLS0tXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+
IDIgdGVzdHMgZnJvbSBCYXJUZXN0PGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+WyBS
VU4gICAgICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gQmFyVGVzdC5IYXNYeXpQcm9wZXJ0
eTxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgICAgICAgT0sgXTxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+IEJhclRlc3QuSGFzWHl6UHJvcGVydHk8YnIvPgotPHNwYW4gc3R5bGU9
ImNvbG9yOmdyZWVuIj5bIFJVTiAgICAgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBCYXJU
ZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLS4uLiBzb21lIGVycm9yIG1lc3NhZ2VzIC4u
Ljxici8+Ci08c3BhbiAgIHN0eWxlPSJjb2xvcjpyZWQiPlsgIEZBSUxFRCAgXSA8c3BhbiBzdHls
ZT0iY29sb3I6YmxhY2siPkJhclRlc3QuUmV0dXJuc1RydWVPblN1Y2Nlc3M8YnIvPgotLi4uPGJy
Lz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wz09PT09PT09PT1dPHNwYW4gc3R5bGU9ImNv
bG9yOmJsYWNrIj4gMzAgdGVzdHMgZnJvbSAxNCB0ZXN0IGNhc2VzIHJhbi48YnIvPgotPHNwYW4g
c3R5bGU9ImNvbG9yOmdyZWVuIj5bICBQQVNTRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiAyOCB0ZXN0cy48YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOnJlZCI+WyAgRkFJTEVEICBdPHNw
YW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gMiB0ZXN0cywgbGlzdGVkIGJlbG93Ojxici8+Ci08c3Bh
biBzdHlsZT0iY29sb3I6cmVkIj5bICBGQUlMRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiBCYXJUZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpy
ZWQiPlsgIEZBSUxFRCAgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEFub3RoZXJUZXN0LkRv
ZXNYeXo8YnIvPgotICAyIEZBSUxFRCBURVNUUwotCi1Zb3UgY2FuIHNldCB0aGUgYEdURVNUX0NP
TE9SYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUgYC0tZ3Rlc3RfY29sb3JgCi1jb21tYW5k
IGxpbmUgZmxhZyB0byBgeWVzYCwgYG5vYCwgb3IgYGF1dG9gICh0aGUgZGVmYXVsdCkgdG8gZW5h
YmxlIGNvbG9ycywKLWRpc2FibGUgY29sb3JzLCBvciBsZXQgZ29vZ2xldGVzdCBkZWNpZGUuIFdo
ZW4gdGhlIHZhbHVlIGlzIGBhdXRvYCwgZ29vZ2xldGVzdAotd2lsbCB1c2UgY29sb3JzIGlmIGFu
ZCBvbmx5IGlmIHRoZSBvdXRwdXQgZ29lcyB0byBhIHRlcm1pbmFsIGFuZCAob24gbm9uLVdpbmRv
d3MKLXBsYXRmb3JtcykgdGhlIGBURVJNYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8g
YHh0ZXJtYCBvciBgeHRlcm0tY29sb3JgLgotCi0gKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIyBTdXBwcmVzc2luZyB0aGUgRWxhcHNlZCBUaW1lCi0KLUJ5IGRl
ZmF1bHQsIGdvb2dsZXRlc3QgcHJpbnRzIHRoZSB0aW1lIGl0IHRha2VzIHRvIHJ1biBlYWNoIHRl
c3QuIFRvIGRpc2FibGUKLXRoYXQsIHJ1biB0aGUgdGVzdCBwcm9ncmFtIHdpdGggdGhlIGAtLWd0
ZXN0X3ByaW50X3RpbWU9MGAgY29tbWFuZCBsaW5lIGZsYWcsIG9yCi1zZXQgdGhlIEdURVNUX1BS
SU5UX1RJTUUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDBgLgotCi0qKkF2YWlsYWJpbGl0eSoq
OiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFN1cHByZXNzaW5nIFVURi04IFRleHQgT3V0
cHV0Ci0KLUluIGNhc2Ugb2YgYXNzZXJ0aW9uIGZhaWx1cmVzLCBnb29nbGV0ZXN0IHByaW50cyBl
eHBlY3RlZCBhbmQgYWN0dWFsIHZhbHVlcyBvZgotdHlwZSBgc3RyaW5nYCBib3RoIGFzIGhleC1l
bmNvZGVkIHN0cmluZ3MgYXMgd2VsbCBhcyBpbiByZWFkYWJsZSBVVEYtOCB0ZXh0IGlmCi10aGV5
IGNvbnRhaW4gdmFsaWQgbm9uLUFTQ0lJIFVURi04IGNoYXJhY3RlcnMuIElmIHlvdSB3YW50IHRv
IHN1cHByZXNzIHRoZSBVVEYtOAotdGV4dCBiZWNhdXNlLCBmb3IgZXhhbXBsZSwgeW91IGRvbid0
IGhhdmUgYW4gVVRGLTggY29tcGF0aWJsZSBvdXRwdXQgbWVkaXVtLCBydW4KLXRoZSB0ZXN0IHBy
b2dyYW0gd2l0aCBgLS1ndGVzdF9wcmludF91dGY4PTBgIG9yIHNldCB0aGUgYEdURVNUX1BSSU5U
X1VURjhgCi1lbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMGAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6
IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLQotIyMjIyBHZW5lcmF0aW5nIGFuIFhNTCBSZXBvcnQK
LQotZ29vZ2xldGVzdCBjYW4gZW1pdCBhIGRldGFpbGVkIFhNTCByZXBvcnQgdG8gYSBmaWxlIGlu
IGFkZGl0aW9uIHRvIGl0cyBub3JtYWwKLXRleHR1YWwgb3V0cHV0LiBUaGUgcmVwb3J0IGNvbnRh
aW5zIHRoZSBkdXJhdGlvbiBvZiBlYWNoIHRlc3QsIGFuZCB0aHVzIGNhbiBoZWxwCi15b3UgaWRl
bnRpZnkgc2xvdyB0ZXN0cy4gVGhlIHJlcG9ydCBpcyBhbHNvIHVzZWQgYnkgdGhlIGh0dHA6Ly91
bml0dGVzdAotZGFzaGJvYXJkIHRvIHNob3cgcGVyLXRlc3QtbWV0aG9kIGVycm9yIG1lc3NhZ2Vz
LgotCi1UbyBnZW5lcmF0ZSB0aGUgWE1MIHJlcG9ydCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVUYCBl
bnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0ZXN0X291dHB1dGAgZmxhZyB0byB0aGUg
c3RyaW5nIGAieG1sOnBhdGhfdG9fb3V0cHV0X2ZpbGUiYCwgd2hpY2ggd2lsbAotY3JlYXRlIHRo
ZSBmaWxlIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi4gWW91IGNhbiBhbHNvIGp1c3QgdXNlIHRoZSBz
dHJpbmcgYCJ4bWwiYCwKLWluIHdoaWNoIGNhc2UgdGhlIG91dHB1dCBjYW4gYmUgZm91bmQgaW4g
dGhlIGB0ZXN0X2RldGFpbC54bWxgIGZpbGUgaW4gdGhlCi1jdXJyZW50IGRpcmVjdG9yeS4KLQot
SWYgeW91IHNwZWNpZnkgYSBkaXJlY3RvcnkgKGZvciBleGFtcGxlLCBgInhtbDpvdXRwdXQvZGly
ZWN0b3J5LyJgIG9uIExpbnV4IG9yCi1gInhtbDpvdXRwdXRcZGlyZWN0b3J5XCJgIG9uIFdpbmRv
d3MpLCBnb29nbGV0ZXN0IHdpbGwgY3JlYXRlIHRoZSBYTUwgZmlsZSBpbgotdGhhdCBkaXJlY3Rv
cnksIG5hbWVkIGFmdGVyIHRoZSB0ZXN0IGV4ZWN1dGFibGUgKGUuZy4gYGZvb190ZXN0LnhtbGAg
Zm9yIHRlc3QKLXByb2dyYW0gYGZvb190ZXN0YCBvciBgZm9vX3Rlc3QuZXhlYCkuIElmIHRoZSBm
aWxlIGFscmVhZHkgZXhpc3RzIChwZXJoYXBzIGxlZnQKLW92ZXIgZnJvbSBhIHByZXZpb3VzIHJ1
biksIGdvb2dsZXRlc3Qgd2lsbCBwaWNrIGEgZGlmZmVyZW50IG5hbWUgKGUuZy4KLWBmb29fdGVz
dF8xLnhtbGApIHRvIGF2b2lkIG92ZXJ3cml0aW5nIGl0LgotCi0KLVRoZSByZXBvcnQgaXMgYmFz
ZWQgb24gdGhlIGBqdW5pdHJlcG9ydGAgQW50IHRhc2suIFNpbmNlIHRoYXQgZm9ybWF0IHdhcwot
b3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgSmF2YSwgYSBsaXR0bGUgaW50ZXJwcmV0YXRpb24gaXMg
cmVxdWlyZWQgdG8gbWFrZSBpdAotYXBwbHkgdG8gZ29vZ2xldGVzdCB0ZXN0cywgYXMgc2hvd24g
aGVyZToKLQotYGBgeG1sCi08dGVzdHN1aXRlcyBuYW1lPSJBbGxUZXN0cyIgLi4uPgotICA8dGVz
dHN1aXRlIG5hbWU9InRlc3RfY2FzZV9uYW1lIiAuLi4+Ci0gICAgPHRlc3RjYXNlICAgIG5hbWU9
InRlc3RfbmFtZSIgLi4uPgotICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIi8+Ci0gICAgICA8
ZmFpbHVyZSBtZXNzYWdlPSIuLi4iLz4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Ii4uLiIvPgot
ICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPgotYGBgCi0KLSog
ICBUaGUgcm9vdCBgPHRlc3RzdWl0ZXM+YCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIHRoZSBlbnRp
cmUgdGVzdCBwcm9ncmFtLgotKiAgIGA8dGVzdHN1aXRlPmAgZWxlbWVudHMgY29ycmVzcG9uZCB0
byBnb29nbGV0ZXN0IHRlc3QgY2FzZXMuCi0qICAgYDx0ZXN0Y2FzZT5gIGVsZW1lbnRzIGNvcnJl
c3BvbmQgdG8gZ29vZ2xldGVzdCB0ZXN0IGZ1bmN0aW9ucy4KLQotRm9yIGluc3RhbmNlLCB0aGUg
Zm9sbG93aW5nIHByb2dyYW0KLQotYGBgYysrCi1URVNUKE1hdGhUZXN0LCBBZGRpdGlvbikgeyAu
Li4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24pIHsgLi4uIH0KLVRFU1QoTG9naWNUZXN0
LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291bGQgZ2VuZXJhdGUgdGhpcyBy
ZXBvcnQ6Ci0KLWBgYHhtbAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
LTx0ZXN0c3VpdGVzIHRlc3RzPSIzIiBmYWlsdXJlcz0iMSIgZXJyb3JzPSIwIiB0aW1lPSIwLjAz
NSIgdGltZXN0YW1wPSIyMDExLTEwLTMxVDE4OjUyOjQyIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0
ZXN0c3VpdGUgbmFtZT0iTWF0aFRlc3QiIHRlc3RzPSIyIiBmYWlsdXJlcz0iMSIgZXJyb3JzPSIw
IiB0aW1lPSIwLjAxNSI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFkZGl0aW9uIiBzdGF0dXM9InJ1
biIgdGltZT0iMC4wMDciIGNsYXNzbmFtZT0iIj4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZh
bHVlIG9mOiBhZGQoMSwgMSkmI3gwQTsgIEFjdHVhbDogMyYjeDBBO0V4cGVjdGVkOiAyIiB0eXBl
PSIiPi4uLjwvZmFpbHVyZT4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZhbHVlIG9mOiBhZGQo
MSwgLTEpJiN4MEE7ICBBY3R1YWw6IDEmI3gwQTtFeHBlY3RlZDogMCIgdHlwZT0iIj4uLi48L2Zh
aWx1cmU+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VidHJhY3Rpb24i
IHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNSIgY2xhc3NuYW1lPSIiPgotICAgIDwvdGVzdGNhc2U+
Ci0gIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkxvZ2ljVGVzdCIgdGVzdHM9IjEi
IGZhaWx1cmVzPSIwIiBlcnJvcnM9IjAiIHRpbWU9IjAuMDA1Ij4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iTm9uQ29udHJhZGljdGlvbiIgc3RhdHVzPSJydW4iIHRpbWU9IjAuMDA1IiBjbGFzc25hbWU9
IiI+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0ZXM+Ci1gYGAK
LQotVGhpbmdzIHRvIG5vdGU6Ci0KLSogICBUaGUgYHRlc3RzYCBhdHRyaWJ1dGUgb2YgYSBgPHRl
c3RzdWl0ZXM+YCBvciBgPHRlc3RzdWl0ZT5gIGVsZW1lbnQgdGVsbHMgaG93Ci0gICAgbWFueSB0
ZXN0IGZ1bmN0aW9ucyB0aGUgZ29vZ2xldGVzdCBwcm9ncmFtIG9yIHRlc3QgY2FzZSBjb250YWlu
cywgd2hpbGUgdGhlCi0gICAgYGZhaWx1cmVzYCBhdHRyaWJ1dGUgdGVsbHMgaG93IG1hbnkgb2Yg
dGhlbSBmYWlsZWQuCi0KLSogICBUaGUgYHRpbWVgIGF0dHJpYnV0ZSBleHByZXNzZXMgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LCB0ZXN0IGNhc2UsIG9yCi0gICAgZW50aXJlIHRlc3QgcHJvZ3Jh
bSBpbiBzZWNvbmRzLgotCi0qICAgVGhlIGB0aW1lc3RhbXBgIGF0dHJpYnV0ZSByZWNvcmRzIHRo
ZSBsb2NhbCBkYXRlIGFuZCB0aW1lIG9mIHRoZSB0ZXN0Ci0gICAgZXhlY3V0aW9uLgotCi0qICAg
RWFjaCBgPGZhaWx1cmU+YCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGZhaWxlZCBn
b29nbGV0ZXN0Ci0gICAgYXNzZXJ0aW9uLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2lu
ZG93cywgTWFjLgotCi0jIyMjIEdlbmVyYXRpbmcgYW4gSlNPTiBSZXBvcnQKLQotZ29vZ2xldGVz
dCBjYW4gYWxzbyBlbWl0IGEgSlNPTiByZXBvcnQgYXMgYW4gYWx0ZXJuYXRpdmUgZm9ybWF0IHRv
IFhNTC4gVG8KLWdlbmVyYXRlIHRoZSBKU09OIHJlcG9ydCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVU
YCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0ZXN0X291dHB1dGAgZmxhZyB0byB0
aGUgc3RyaW5nIGAianNvbjpwYXRoX3RvX291dHB1dF9maWxlImAsIHdoaWNoIHdpbGwKLWNyZWF0
ZSB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uIFlvdSBjYW4gYWxzbyBqdXN0IHVzZSB0
aGUgc3RyaW5nCi1gImpzb24iYCwgaW4gd2hpY2ggY2FzZSB0aGUgb3V0cHV0IGNhbiBiZSBmb3Vu
ZCBpbiB0aGUgYHRlc3RfZGV0YWlsLmpzb25gIGZpbGUKLWluIHRoZSBjdXJyZW50IGRpcmVjdG9y
eS4KLQotVGhlIHJlcG9ydCBmb3JtYXQgY29uZm9ybXMgdG8gdGhlIGZvbGxvd2luZyBKU09OIFNj
aGVtYToKLQotYGBganNvbgotewotICAiJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3Jn
L3NjaGVtYSMiLAotICAidHlwZSI6ICJvYmplY3QiLAotICAiZGVmaW5pdGlvbnMiOiB7Ci0gICAg
IlRlc3RDYXNlIjogewotICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVz
IjogewotICAgICAgICAibmFtZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidGVz
dHMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICJmYWlsdXJlcyI6IHsgInR5cGUi
OiAiaW50ZWdlciIgfSwKLSAgICAgICAgImRpc2FibGVkIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9
LAotICAgICAgICAidGltZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidGVzdHN1
aXRlIjogewotICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKLSAgICAgICAgICAiaXRlbXMiOiB7
Ci0gICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1Rlc3RJbmZvIgotICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0gICAgIlRlc3RJbmZvIjogewotICAgICAg
InR5cGUiOiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVzIjogewotICAgICAgICAibmFtZSI6
IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAic3RhdHVzIjogewotICAgICAgICAgICJ0
eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgImVudW0iOiBbIlJVTiIsICJOT1RSVU4iXQotICAg
ICAgICB9LAotICAgICAgICAidGltZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAi
Y2xhc3NuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICJmYWlsdXJlcyI6IHsK
LSAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAgICAgICAgIml0ZW1zIjogewotICAgICAg
ICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9GYWlsdXJlIgotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgfQotICAgIH0sCi0gICAgIkZhaWx1cmUiOiB7Ci0gICAgICAidHlwZSI6ICJv
YmplY3QiLAotICAgICAgInByb3BlcnRpZXMiOiB7Ci0gICAgICAgICJmYWlsdXJlcyI6IHsgInR5
cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidHlwZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9Ci0g
ICAgICB9Ci0gICAgfQotICB9LAotICAicHJvcGVydGllcyI6IHsKLSAgICAidGVzdHMiOiB7ICJ0
eXBlIjogImludGVnZXIiIH0sCi0gICAgImZhaWx1cmVzIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9
LAotICAgICJkaXNhYmxlZCI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAiZXJyb3JzIjog
eyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICJ0aW1lc3RhbXAiOiB7Ci0gICAgICAidHlwZSI6
ICJzdHJpbmciLAotICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiCi0gICAgfSwKLSAgICAidGlt
ZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmci
IH0sCi0gICAgInRlc3RzdWl0ZXMiOiB7Ci0gICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAgICAi
aXRlbXMiOiB7Ci0gICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVGVzdENhc2UiCi0gICAg
ICB9Ci0gICAgfQotICB9Ci19Ci1gYGAKLQotVGhlIHJlcG9ydCB1c2VzIHRoZSBmb3JtYXQgdGhh
dCBjb25mb3JtcyB0byB0aGUgZm9sbG93aW5nIFByb3RvMyB1c2luZyB0aGUgW0pTT04KLWVuY29k
aW5nXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3Mv
cHJvdG8zI2pzb24pOgotCi1gYGBwcm90bwotc3ludGF4ID0gInByb3RvMyI7Ci0KLXBhY2thZ2Ug
Z29vZ2xldGVzdDsKLQotaW1wb3J0ICJnb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvIjsK
LWltcG9ydCAiZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvIjsKLQotbWVzc2FnZSBVbml0
VGVzdCB7Ci0gIGludDMyIHRlc3RzID0gMTsKLSAgaW50MzIgZmFpbHVyZXMgPSAyOwotICBpbnQz
MiBkaXNhYmxlZCA9IDM7Ci0gIGludDMyIGVycm9ycyA9IDQ7Ci0gIGdvb2dsZS5wcm90b2J1Zi5U
aW1lc3RhbXAgdGltZXN0YW1wID0gNTsKLSAgZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIHRpbWUg
PSA2OwotICBzdHJpbmcgbmFtZSA9IDc7Ci0gIHJlcGVhdGVkIFRlc3RDYXNlIHRlc3RzdWl0ZXMg
PSA4OwotfQotCi1tZXNzYWdlIFRlc3RDYXNlIHsKLSAgc3RyaW5nIG5hbWUgPSAxOwotICBpbnQz
MiB0ZXN0cyA9IDI7Ci0gIGludDMyIGZhaWx1cmVzID0gMzsKLSAgaW50MzIgZGlzYWJsZWQgPSA0
OwotICBpbnQzMiBlcnJvcnMgPSA1OwotICBnb29nbGUucHJvdG9idWYuRHVyYXRpb24gdGltZSA9
IDY7Ci0gIHJlcGVhdGVkIFRlc3RJbmZvIHRlc3RzdWl0ZSA9IDc7Ci19Ci0KLW1lc3NhZ2UgVGVz
dEluZm8gewotICBzdHJpbmcgbmFtZSA9IDE7Ci0gIGVudW0gU3RhdHVzIHsKLSAgICBSVU4gPSAw
OwotICAgIE5PVFJVTiA9IDE7Ci0gIH0KLSAgU3RhdHVzIHN0YXR1cyA9IDI7Ci0gIGdvb2dsZS5w
cm90b2J1Zi5EdXJhdGlvbiB0aW1lID0gMzsKLSAgc3RyaW5nIGNsYXNzbmFtZSA9IDQ7Ci0gIG1l
c3NhZ2UgRmFpbHVyZSB7Ci0gICAgc3RyaW5nIGZhaWx1cmVzID0gMTsKLSAgICBzdHJpbmcgdHlw
ZSA9IDI7Ci0gIH0KLSAgcmVwZWF0ZWQgRmFpbHVyZSBmYWlsdXJlcyA9IDU7Ci19Ci1gYGAKLQot
Rm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIHByb2dyYW0KLQotYGBgYysrCi1URVNUKE1hdGhU
ZXN0LCBBZGRpdGlvbikgeyAuLi4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24pIHsgLi4u
IH0KLVRFU1QoTG9naWNUZXN0LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291
bGQgZ2VuZXJhdGUgdGhpcyByZXBvcnQ6Ci0KLWBgYGpzb24KLXsKLSAgInRlc3RzIjogMywKLSAg
ImZhaWx1cmVzIjogMSwKLSAgImVycm9ycyI6IDAsCi0gICJ0aW1lIjogIjAuMDM1cyIsCi0gICJ0
aW1lc3RhbXAiOiAiMjAxMS0xMC0zMVQxODo1Mjo0MloiCi0gICJuYW1lIjogIkFsbFRlc3RzIiwK
LSAgInRlc3RzdWl0ZXMiOiBbCi0gICAgewotICAgICAgIm5hbWUiOiAiTWF0aFRlc3QiLAotICAg
ICAgInRlc3RzIjogMiwKLSAgICAgICJmYWlsdXJlcyI6IDEsCi0gICAgICAiZXJyb3JzIjogMCwK
LSAgICAgICJ0aW1lIjogIjAuMDE1cyIsCi0gICAgICAidGVzdHN1aXRlIjogWwotICAgICAgICB7
Ci0gICAgICAgICAgIm5hbWUiOiAiQWRkaXRpb24iLAotICAgICAgICAgICJzdGF0dXMiOiAiUlVO
IiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwN3MiLAotICAgICAgICAgICJjbGFzc25hbWUiOiAi
IiwKLSAgICAgICAgICAiZmFpbHVyZXMiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICJtZXNzYWdlIjogIlZhbHVlIG9mOiBhZGQoMSwgMSlceDBBICBBY3R1YWw6IDNceDBBRXhwZWN0
ZWQ6IDIiLAotICAgICAgICAgICAgICAidHlwZSI6ICIiCi0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAibWVzc2FnZSI6ICJWYWx1ZSBvZjogYWRkKDEsIC0xKVx4
MEEgIEFjdHVhbDogMVx4MEFFeHBlY3RlZDogMCIsCi0gICAgICAgICAgICAgICJ0eXBlIjogIiIK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAibmFtZSI6ICJTdWJ0cmFjdGlvbiIsCi0gICAgICAgICAgInN0YXR1cyI6ICJSVU4iLAot
ICAgICAgICAgICJ0aW1lIjogIjAuMDA1cyIsCi0gICAgICAgICAgImNsYXNzbmFtZSI6ICIiCi0g
ICAgICAgIH0KLSAgICAgIF0KLSAgICB9Ci0gICAgewotICAgICAgIm5hbWUiOiAiTG9naWNUZXN0
IiwKLSAgICAgICJ0ZXN0cyI6IDEsCi0gICAgICAiZmFpbHVyZXMiOiAwLAotICAgICAgImVycm9y
cyI6IDAsCi0gICAgICAidGltZSI6ICIwLjAwNXMiLAotICAgICAgInRlc3RzdWl0ZSI6IFsKLSAg
ICAgICAgewotICAgICAgICAgICJuYW1lIjogIk5vbkNvbnRyYWRpY3Rpb24iLAotICAgICAgICAg
ICJzdGF0dXMiOiAiUlVOIiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwNXMiLAotICAgICAgICAg
ICJjbGFzc25hbWUiOiAiIgotICAgICAgICB9Ci0gICAgICBdCi0gICAgfQotICBdCi19Ci1gYGAK
LQotSU1QT1JUQU5UOiBUaGUgZXhhY3QgZm9ybWF0IG9mIHRoZSBKU09OIGRvY3VtZW50IGlzIHN1
YmplY3QgdG8gY2hhbmdlLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgQ29udHJvbGxpbmcgSG93IEZhaWx1cmVzIEFyZSBSZXBvcnRlZAotCi0jIyMjIFR1
cm5pbmcgQXNzZXJ0aW9uIEZhaWx1cmVzIGludG8gQnJlYWstUG9pbnRzCi0KLVdoZW4gcnVubmlu
ZyB0ZXN0IHByb2dyYW1zIHVuZGVyIGEgZGVidWdnZXIsIGl0J3MgdmVyeSBjb252ZW5pZW50IGlm
IHRoZQotZGVidWdnZXIgY2FuIGNhdGNoIGFuIGFzc2VydGlvbiBmYWlsdXJlIGFuZCBhdXRvbWF0
aWNhbGx5IGRyb3AgaW50byBpbnRlcmFjdGl2ZQotbW9kZS4gZ29vZ2xldGVzdCdzICpicmVhay1v
bi1mYWlsdXJlKiBtb2RlIHN1cHBvcnRzIHRoaXMgYmVoYXZpb3IuCi0KLVRvIGVuYWJsZSBpdCwg
c2V0IHRoZSBgR1RFU1RfQlJFQUtfT05fRkFJTFVSRWAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
YSB2YWx1ZQotb3RoZXIgdGhhbiBgMGAgLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUg
YC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZWAKLWNvbW1hbmQgbGluZSBmbGFnLgotCi0qKkF2YWls
YWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIERpc2FibGluZyBDYXRjaGlu
ZyBUZXN0LVRocm93biBFeGNlcHRpb25zCi0KLWdvb2dsZXRlc3QgY2FuIGJlIHVzZWQgZWl0aGVy
IHdpdGggb3Igd2l0aG91dCBleGNlcHRpb25zIGVuYWJsZWQuIElmIGEgdGVzdAotdGhyb3dzIGEg
QysrIGV4Y2VwdGlvbiBvciAob24gV2luZG93cykgYSBzdHJ1Y3R1cmVkIGV4Y2VwdGlvbiAoU0VI
KSwgYnkgZGVmYXVsdAotZ29vZ2xldGVzdCBjYXRjaGVzIGl0LCByZXBvcnRzIGl0IGFzIGEgdGVz
dCBmYWlsdXJlLCBhbmQgY29udGludWVzIHdpdGggdGhlIG5leHQKLXRlc3QgbWV0aG9kLiBUaGlz
IG1heGltaXplcyB0aGUgY292ZXJhZ2Ugb2YgYSB0ZXN0IHJ1bi4gQWxzbywgb24gV2luZG93cyBh
bgotdW5jYXVnaHQgZXhjZXB0aW9uIHdpbGwgY2F1c2UgYSBwb3AtdXAgd2luZG93LCBzbyBjYXRj
aGluZyB0aGUgZXhjZXB0aW9ucyBhbGxvd3MKLXlvdSB0byBydW4gdGhlIHRlc3RzIGF1dG9tYXRp
Y2FsbHkuCi0KLVdoZW4gZGVidWdnaW5nIHRoZSB0ZXN0IGZhaWx1cmVzLCBob3dldmVyLCB5b3Ug
bWF5IGluc3RlYWQgd2FudCB0aGUgZXhjZXB0aW9ucwotdG8gYmUgaGFuZGxlZCBieSB0aGUgZGVi
dWdnZXIsIHN1Y2ggdGhhdCB5b3UgY2FuIGV4YW1pbmUgdGhlIGNhbGwgc3RhY2sgd2hlbiBhbgot
ZXhjZXB0aW9uIGlzIHRocm93bi4gVG8gYWNoaWV2ZSB0aGF0LCBzZXQgdGhlIGBHVEVTVF9DQVRD
SF9FWENFUFRJT05TYAotZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDBgLCBvciB1c2UgdGhlIGAt
LWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnM9MGAgZmxhZyB3aGVuCi1ydW5uaW5nIHRoZSB0ZXN0cy4K
LQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9mYXEubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9kb2NzL2ZhcS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q0MmZmN2Ri
YWE4ZmFiZDBjYzY1MmZkNzA1Mjc5ODE4NGU5NWM0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2ZhcS5t
ZAorKysgL2Rldi9udWxsCkBAIC0xLDc3MCArMCwwIEBACi0jIEdvb2dsZXRlc3QgRkFRCi0KLQot
IyMgV2h5IHNob3VsZCB0ZXN0IGNhc2UgbmFtZXMgYW5kIHRlc3QgbmFtZXMgbm90IGNvbnRhaW4g
dW5kZXJzY29yZT8KLQotVW5kZXJzY29yZSAoYF9gKSBpcyBzcGVjaWFsLCBhcyBDKysgcmVzZXJ2
ZXMgdGhlIGZvbGxvd2luZyB0byBiZSB1c2VkIGJ5IHRoZQotY29tcGlsZXIgYW5kIHRoZSBzdGFu
ZGFyZCBsaWJyYXJ5OgotCi0xLiAgYW55IGlkZW50aWZpZXIgdGhhdCBzdGFydHMgd2l0aCBhbiBg
X2AgZm9sbG93ZWQgYnkgYW4gdXBwZXItY2FzZSBsZXR0ZXIsIGFuZAotMS4gIGFueSBpZGVudGlm
aWVyIHRoYXQgY29udGFpbnMgdHdvIGNvbnNlY3V0aXZlIHVuZGVyc2NvcmVzIChpLmUuIGBfX2Ap
Ci0gICAgKmFueXdoZXJlKiBpbiBpdHMgbmFtZS4KLQotVXNlciBjb2RlIGlzICpwcm9oaWJpdGVk
KiBmcm9tIHVzaW5nIHN1Y2ggaWRlbnRpZmllcnMuCi0KLU5vdyBsZXQncyBsb29rIGF0IHdoYXQg
dGhpcyBtZWFucyBmb3IgYFRFU1RgIGFuZCBgVEVTVF9GYC4KLQotQ3VycmVudGx5IGBURVNUKFRl
c3RDYXNlTmFtZSwgVGVzdE5hbWUpYCBnZW5lcmF0ZXMgYSBjbGFzcyBuYW1lZAotYFRlc3RDYXNl
TmFtZV9UZXN0TmFtZV9UZXN0YC4gV2hhdCBoYXBwZW5zIGlmIGBUZXN0Q2FzZU5hbWVgIG9yIGBU
ZXN0TmFtZWAKLWNvbnRhaW5zIGBfYD8KLQotMS4gIElmIGBUZXN0Q2FzZU5hbWVgIHN0YXJ0cyB3
aXRoIGFuIGBfYCBmb2xsb3dlZCBieSBhbiB1cHBlci1jYXNlIGxldHRlciAoc2F5LAotICAgIGBf
Rm9vYCksIHdlIGVuZCB1cCB3aXRoIGBfRm9vX1Rlc3ROYW1lX1Rlc3RgLCB3aGljaCBpcyByZXNl
cnZlZCBhbmQgdGh1cwotICAgIGludmFsaWQuCi0xLiAgSWYgYFRlc3RDYXNlTmFtZWAgZW5kcyB3
aXRoIGFuIGBfYCAoc2F5LCBgRm9vX2ApLCB3ZSBnZXQKLSAgICBgRm9vX19UZXN0TmFtZV9UZXN0
YCwgd2hpY2ggaXMgaW52YWxpZC4KLTEuICBJZiBgVGVzdE5hbWVgIHN0YXJ0cyB3aXRoIGFuIGBf
YCAoc2F5LCBgX0JhcmApLCB3ZSBnZXQKLSAgICBgVGVzdENhc2VOYW1lX19CYXJfVGVzdGAsIHdo
aWNoIGlzIGludmFsaWQuCi0xLiAgSWYgYFRlc3ROYW1lYCBlbmRzIHdpdGggYW4gYF9gIChzYXks
IGBCYXJfYCksIHdlIGdldAotICAgIGBUZXN0Q2FzZU5hbWVfQmFyX19UZXN0YCwgd2hpY2ggaXMg
aW52YWxpZC4KLQotU28gY2xlYXJseSBgVGVzdENhc2VOYW1lYCBhbmQgYFRlc3ROYW1lYCBjYW5u
b3Qgc3RhcnQgb3IgZW5kIHdpdGggYF9gIChBY3R1YWxseSwKLWBUZXN0Q2FzZU5hbWVgIGNhbiBz
dGFydCB3aXRoIGBfYCAtLSBhcyBsb25nIGFzIHRoZSBgX2AgaXNuJ3QgZm9sbG93ZWQgYnkgYW4K
LXVwcGVyLWNhc2UgbGV0dGVyLiBCdXQgdGhhdCdzIGdldHRpbmcgY29tcGxpY2F0ZWQuIFNvIGZv
ciBzaW1wbGljaXR5IHdlIGp1c3Qgc2F5Ci10aGF0IGl0IGNhbm5vdCBzdGFydCB3aXRoIGBfYC4p
LgotCi1JdCBtYXkgc2VlbSBmaW5lIGZvciBgVGVzdENhc2VOYW1lYCBhbmQgYFRlc3ROYW1lYCB0
byBjb250YWluIGBfYCBpbiB0aGUgbWlkZGxlLgotSG93ZXZlciwgY29uc2lkZXIgdGhpczoKLQot
YGBgYysrCi1URVNUKFRpbWUsIEZsaWVzX0xpa2VfQW5fQXJyb3cpIHsgLi4uIH0KLVRFU1QoVGlt
ZV9GbGllcywgTGlrZV9Bbl9BcnJvdykgeyAuLi4gfQotYGBgCi0KLU5vdywgdGhlIHR3byBgVEVT
VGBzIHdpbGwgYm90aCBnZW5lcmF0ZSB0aGUgc2FtZSBjbGFzcwotKGBUaW1lX0ZsaWVzX0xpa2Vf
QW5fQXJyb3dfVGVzdGApLiBUaGF0J3Mgbm90IGdvb2QuCi0KLVNvIGZvciBzaW1wbGljaXR5LCB3
ZSBqdXN0IGFzayB0aGUgdXNlcnMgdG8gYXZvaWQgYF9gIGluIGBUZXN0Q2FzZU5hbWVgIGFuZAot
YFRlc3ROYW1lYC4gVGhlIHJ1bGUgaXMgbW9yZSBjb25zdHJhaW5pbmcgdGhhbiBuZWNlc3Nhcnks
IGJ1dCBpdCdzIHNpbXBsZSBhbmQKLWVhc3kgdG8gcmVtZW1iZXIuIEl0IGFsc28gZ2l2ZXMgZ29v
Z2xldGVzdCBzb21lIHdpZ2dsZSByb29tIGluIGNhc2UgaXRzCi1pbXBsZW1lbnRhdGlvbiBuZWVk
cyB0byBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KLQotSWYgeW91IHZpb2xhdGUgdGhlIHJ1bGUsIHRo
ZXJlIG1heSBub3QgYmUgaW1tZWRpYXRlIGNvbnNlcXVlbmNlcywgYnV0IHlvdXIgdGVzdAotbWF5
IChqdXN0IG1heSkgYnJlYWsgd2l0aCBhIG5ldyBjb21waWxlciAob3IgYSBuZXcgdmVyc2lvbiBv
ZiB0aGUgY29tcGlsZXIgeW91Ci1hcmUgdXNpbmcpIG9yIHdpdGggYSBuZXcgdmVyc2lvbiBvZiBn
b29nbGV0ZXN0LiBUaGVyZWZvcmUgaXQncyBiZXN0IHRvIGZvbGxvdwotdGhlIHJ1bGUuCi0KLSMj
IFdoeSBkb2VzIGdvb2dsZXRlc3Qgc3VwcG9ydCBgRVhQRUNUX0VRKE5VTEwsIHB0cilgIGFuZCBg
QVNTRVJUX0VRKE5VTEwsIHB0cilgIGJ1dCBub3QgYEVYUEVDVF9ORShOVUxMLCBwdHIpYCBhbmQg
YEFTU0VSVF9ORShOVUxMLCBwdHIpYD8KLQotRmlyc3Qgb2YgYWxsIHlvdSBjYW4gdXNlIGBFWFBF
Q1RfTkUobnVsbHB0ciwgcHRyKWAgYW5kIGBBU1NFUlRfTkUobnVsbHB0ciwKLXB0cilgLiBUaGlz
IGlzIHRoZSBwcmVmZXJyZWQgc3ludGF4IGluIHRoZSBzdHlsZSBndWlkZSBiZWNhdXNlIG51bGxw
dHIgZG9lcyBub3QKLWhhdmUgdGhlIHR5cGUgcHJvYmxlbXMgdGhhdCBOVUxMIGRvZXMuIFdoaWNo
IGlzIHdoeSBOVUxMIGRvZXMgbm90IHdvcmsuCi0KLUR1ZSB0byBzb21lIHBlY3VsaWFyaXR5IG9m
IEMrKywgaXQgcmVxdWlyZXMgc29tZSBub24tdHJpdmlhbCB0ZW1wbGF0ZSBtZXRhCi1wcm9ncmFt
bWluZyB0cmlja3MgdG8gc3VwcG9ydCB1c2luZyBgTlVMTGAgYXMgYW4gYXJndW1lbnQgb2YgdGhl
IGBFWFBFQ1RfWFgoKWAKLWFuZCBgQVNTRVJUX1hYKClgIG1hY3Jvcy4gVGhlcmVmb3JlIHdlIG9u
bHkgZG8gaXQgd2hlcmUgaXQncyBtb3N0IG5lZWRlZAotKG90aGVyd2lzZSB3ZSBtYWtlIHRoZSBp
bXBsZW1lbnRhdGlvbiBvZiBnb29nbGV0ZXN0IGhhcmRlciB0byBtYWludGFpbiBhbmQgbW9yZQot
ZXJyb3ItcHJvbmUgdGhhbiBuZWNlc3NhcnkpLgotCi1UaGUgYEVYUEVDVF9FUSgpYCBtYWNybyB0
YWtlcyB0aGUgKmV4cGVjdGVkKiB2YWx1ZSBhcyBpdHMgZmlyc3QgYXJndW1lbnQgYW5kIHRoZQot
KmFjdHVhbCogdmFsdWUgYXMgdGhlIHNlY29uZC4gSXQncyByZWFzb25hYmxlIHRoYXQgc29tZW9u
ZSB3YW50cyB0byB3cml0ZQotYEVYUEVDVF9FUShOVUxMLCBzb21lX2V4cHJlc3Npb24pYCwgYW5k
IHRoaXMgaW5kZWVkIHdhcyByZXF1ZXN0ZWQgc2V2ZXJhbCB0aW1lcy4KLVRoZXJlZm9yZSB3ZSBp
bXBsZW1lbnRlZCBpdC4KLQotVGhlIG5lZWQgZm9yIGBFWFBFQ1RfTkUoTlVMTCwgcHRyKWAgaXNu
J3QgbmVhcmx5IGFzIHN0cm9uZy4gV2hlbiB0aGUgYXNzZXJ0aW9uCi1mYWlscywgeW91IGFscmVh
ZHkga25vdyB0aGF0IGBwdHJgIG11c3QgYmUgYE5VTExgLCBzbyBpdCBkb2Vzbid0IGFkZCBhbnkK
LWluZm9ybWF0aW9uIHRvIHByaW50IGBwdHJgIGluIHRoaXMgY2FzZS4gVGhhdCBtZWFucyBgRVhQ
RUNUX1RSVUUocHRyICE9IE5VTEwpYAotd29ya3MganVzdCBhcyB3ZWxsLgotCi1JZiB3ZSB3ZXJl
IHRvIHN1cHBvcnQgYEVYUEVDVF9ORShOVUxMLCBwdHIpYCwgZm9yIGNvbnNpc3RlbmN5IHdlJ2xs
IGhhdmUgdG8KLXN1cHBvcnQgYEVYUEVDVF9ORShwdHIsIE5VTEwpYCBhcyB3ZWxsLCBhcyB1bmxp
a2UgYEVYUEVDVF9FUWAsIHdlIGRvbid0IGhhdmUgYQotY29udmVudGlvbiBvbiB0aGUgb3JkZXIg
b2YgdGhlIHR3byBhcmd1bWVudHMgZm9yIGBFWFBFQ1RfTkVgLiBUaGlzIG1lYW5zIHVzaW5nCi10
aGUgdGVtcGxhdGUgbWV0YSBwcm9ncmFtbWluZyB0cmlja3MgdHdpY2UgaW4gdGhlIGltcGxlbWVu
dGF0aW9uLCBtYWtpbmcgaXQgZXZlbgotaGFyZGVyIHRvIHVuZGVyc3RhbmQgYW5kIG1haW50YWlu
LiBXZSBiZWxpZXZlIHRoZSBiZW5lZml0IGRvZXNuJ3QganVzdGlmeSB0aGUKLWNvc3QuCi0KLUZp
bmFsbHksIHdpdGggdGhlIGdyb3d0aCBvZiB0aGUgZ01vY2sgbWF0Y2hlciBsaWJyYXJ5LCB3ZSBh
cmUgZW5jb3VyYWdpbmcgcGVvcGxlCi10byB1c2UgdGhlIHVuaWZpZWQgYEVYUEVDVF9USEFUKHZh
bHVlLCBtYXRjaGVyKWAgc3ludGF4IG1vcmUgb2Z0ZW4gaW4gdGVzdHMuIE9uZQotc2lnbmlmaWNh
bnQgYWR2YW50YWdlIG9mIHRoZSBtYXRjaGVyIGFwcHJvYWNoIGlzIHRoYXQgbWF0Y2hlcnMgY2Fu
IGJlIGVhc2lseQotY29tYmluZWQgdG8gZm9ybSBuZXcgbWF0Y2hlcnMsIHdoaWxlIHRoZSBgRVhQ
RUNUX05FYCwgZXRjLCBtYWNyb3MgY2Fubm90IGJlCi1lYXNpbHkgY29tYmluZWQuIFRoZXJlZm9y
ZSB3ZSB3YW50IHRvIGludmVzdCBtb3JlIGluIHRoZSBtYXRjaGVycyB0aGFuIGluIHRoZQotYEVY
UEVDVF9YWCgpYCBtYWNyb3MuCi0KLSMjIEkgbmVlZCB0byB0ZXN0IHRoYXQgZGlmZmVyZW50IGlt
cGxlbWVudGF0aW9ucyBvZiBhbiBpbnRlcmZhY2Ugc2F0aXNmeSBzb21lIGNvbW1vbiByZXF1aXJl
bWVudHMuIFNob3VsZCBJIHVzZSB0eXBlZCB0ZXN0cyBvciB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRl
c3RzPwotCi1Gb3IgdGVzdGluZyB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBp
bnRlcmZhY2UsIGVpdGhlciB0eXBlZCB0ZXN0cyBvcgotdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
cyBjYW4gZ2V0IGl0IGRvbmUuIEl0J3MgcmVhbGx5IHVwIHRvIHlvdSB0aGUgdXNlciB0bwotZGVj
aWRlIHdoaWNoIGlzIG1vcmUgY29udmVuaWVudCBmb3IgeW91LCBkZXBlbmRpbmcgb24geW91ciBw
YXJ0aWN1bGFyIGNhc2UuIFNvbWUKLXJvdWdoIGd1aWRlbGluZXM6Ci0KLSogICBUeXBlZCB0ZXN0
cyBjYW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlmIGluc3RhbmNlcyBvZiB0aGUgZGlmZmVyZW50Ci0g
ICAgaW1wbGVtZW50YXRpb25zIGNhbiBiZSBjcmVhdGVkIHRoZSBzYW1lIHdheSwgbW9kdWxvIHRo
ZSB0eXBlLiBGb3IgZXhhbXBsZSwKLSAgICBpZiBhbGwgdGhlc2UgaW1wbGVtZW50YXRpb25zIGhh
dmUgYSBwdWJsaWMgZGVmYXVsdCBjb25zdHJ1Y3RvciAoc3VjaCB0aGF0Ci0gICAgeW91IGNhbiB3
cml0ZSBgbmV3IFR5cGVQYXJhbWApLCBvciBpZiB0aGVpciBmYWN0b3J5IGZ1bmN0aW9ucyBoYXZl
IHRoZSBzYW1lCi0gICAgZm9ybSAoZS5nLiBgQ3JlYXRlSW5zdGFuY2U8VHlwZVBhcmFtPigpYCku
Ci0qICAgVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBjYW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlm
IHlvdSBuZWVkIGRpZmZlcmVudCBjb2RlCi0gICAgcGF0dGVybnMgdG8gY3JlYXRlIGRpZmZlcmVu
dCBpbXBsZW1lbnRhdGlvbnMnIGluc3RhbmNlcywgZS5nLiBgbmV3IEZvb2AgdnMKLSAgICBgbmV3
IEJhcig1KWAuIFRvIGFjY29tbW9kYXRlIGZvciB0aGUgZGlmZmVyZW5jZXMsIHlvdSBjYW4gd3Jp
dGUgZmFjdG9yeQotICAgIGZ1bmN0aW9uIHdyYXBwZXJzIGFuZCBwYXNzIHRoZXNlIGZ1bmN0aW9u
IHBvaW50ZXJzIHRvIHRoZSB0ZXN0cyBhcyB0aGVpcgotICAgIHBhcmFtZXRlcnMuCi0qICAgV2hl
biBhIHR5cGVkIHRlc3QgZmFpbHMsIHRoZSBvdXRwdXQgaW5jbHVkZXMgdGhlIG5hbWUgb2YgdGhl
IHR5cGUsIHdoaWNoIGNhbgotICAgIGhlbHAgeW91IHF1aWNrbHkgaWRlbnRpZnkgd2hpY2ggaW1w
bGVtZW50YXRpb24gaXMgd3JvbmcuIFZhbHVlLXBhcmFtZXRlcml6ZWQKLSAgICB0ZXN0cyBjYW5u
b3QgZG8gdGhpcywgc28gdGhlcmUgeW91J2xsIGhhdmUgdG8gbG9vayBhdCB0aGUgaXRlcmF0aW9u
IG51bWJlcgotICAgIHRvIGtub3cgd2hpY2ggaW1wbGVtZW50YXRpb24gdGhlIGZhaWx1cmUgaXMg
ZnJvbSwgd2hpY2ggaXMgbGVzcyBkaXJlY3QuCi0qICAgSWYgeW91IG1ha2UgYSBtaXN0YWtlIHdy
aXRpbmcgYSB0eXBlZCB0ZXN0LCB0aGUgY29tcGlsZXIgZXJyb3JzIGNhbiBiZQotICAgIGhhcmRl
ciB0byBkaWdlc3QsIGFzIHRoZSBjb2RlIGlzIHRlbXBsYXRpemVkLgotKiAgIFdoZW4gdXNpbmcg
dHlwZWQgdGVzdHMsIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB5b3UgYXJlIHRlc3RpbmcgYWdhaW5z
dCB0aGUKLSAgICBpbnRlcmZhY2UgdHlwZSwgbm90IHRoZSBjb25jcmV0ZSB0eXBlcyAoaW4gb3Ro
ZXIgd29yZHMsIHlvdSB3YW50IHRvIG1ha2UKLSAgICBzdXJlIGBpbXBsaWNpdF9jYXN0PE15SW50
ZXJmYWNlKj4obXlfY29uY3JldGVfaW1wbClgIHdvcmtzLCBub3QganVzdCB0aGF0Ci0gICAgYG15
X2NvbmNyZXRlX2ltcGxgIHdvcmtzKS4gSXQncyBsZXNzIGxpa2VseSB0byBtYWtlIG1pc3Rha2Vz
IGluIHRoaXMgYXJlYQotICAgIHdoZW4gdXNpbmcgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4K
LQotSSBob3BlIEkgZGlkbid0IGNvbmZ1c2UgeW91IG1vcmUuIDotKSBJZiB5b3UgZG9uJ3QgbWlu
ZCwgSSdkIHN1Z2dlc3QgeW91IHRvIGdpdmUKLWJvdGggYXBwcm9hY2hlcyBhIHRyeS4gUHJhY3Rp
Y2UgaXMgYSBtdWNoIGJldHRlciB3YXkgdG8gZ3Jhc3AgdGhlIHN1YnRsZQotZGlmZmVyZW5jZXMg
YmV0d2VlbiB0aGUgdHdvIHRvb2xzLiBPbmNlIHlvdSBoYXZlIHNvbWUgY29uY3JldGUgZXhwZXJp
ZW5jZSwgeW91Ci1jYW4gbXVjaCBtb3JlIGVhc2lseSBkZWNpZGUgd2hpY2ggb25lIHRvIHVzZSB0
aGUgbmV4dCB0aW1lLgotCi0jIyBNeSBkZWF0aCB0ZXN0cyBiZWNhbWUgdmVyeSBzbG93IC0gd2hh
dCBoYXBwZW5lZD8KLQotSW4gQXVndXN0IDIwMDggd2UgaGFkIHRvIHN3aXRjaCB0aGUgZGVmYXVs
dCBkZWF0aCB0ZXN0IHN0eWxlIGZyb20gYGZhc3RgIHRvCi1gdGhyZWFkc2FmZWAsIGFzIHRoZSBm
b3JtZXIgaXMgbm8gbG9uZ2VyIHNhZmUgbm93IHRoYXQgdGhyZWFkZWQgbG9nZ2luZyBpcyB0aGUK
LWRlZmF1bHQuIFRoaXMgY2F1c2VkIG1hbnkgZGVhdGggdGVzdHMgdG8gc2xvdyBkb3duLiBVbmZv
cnR1bmF0ZWx5IHRoaXMgY2hhbmdlCi13YXMgbmVjZXNzYXJ5LgotCi1QbGVhc2UgcmVhZCBbRml4
aW5nIEZhaWxpbmcgRGVhdGggVGVzdHNdKGRlYXRoX3Rlc3Rfc3R5bGVzLm1kKSBmb3Igd2hhdCB5
b3UgY2FuCi1kby4KLQotIyMgSSBnb3Qgc29tZSBydW4tdGltZSBlcnJvcnMgYWJvdXQgaW52YWxp
ZCBwcm90byBkZXNjcmlwdG9ycyB3aGVuIHVzaW5nIGBQcm90b2NvbE1lc3NhZ2VFcXVhbHNgLiBI
ZWxwIQotCi0qKk5vdGU6KiogYFByb3RvY29sTWVzc2FnZUVxdWFsc2AgYW5kIGBQcm90b2NvbE1l
c3NhZ2VFcXVpdmAgYXJlICpkZXByZWNhdGVkKgotbm93LiBQbGVhc2UgdXNlIGBFcXVhbHNQcm90
b2AsIGV0YyBpbnN0ZWFkLgotCi1gUHJvdG9jb2xNZXNzYWdlRXF1YWxzYCBhbmQgYFByb3RvY29s
TWVzc2FnZUVxdWl2YCB3ZXJlIHJlZGVmaW5lZCByZWNlbnRseSBhbmQKLWFyZSBub3cgbGVzcyB0
b2xlcmFudCBvbiBpbnZhbGlkIHByb3RvY29sIGJ1ZmZlciBkZWZpbml0aW9ucy4gSW4gcGFydGlj
dWxhciwgaWYKLXlvdSBoYXZlIGEgYGZvby5wcm90b2AgdGhhdCBkb2Vzbid0IGZ1bGx5IHF1YWxp
ZnkgdGhlIHR5cGUgb2YgYSBwcm90b2NvbCBtZXNzYWdlCi1pdCByZWZlcmVuY2VzIChlLmcuIGBt
ZXNzYWdlPEJhcj5gIHdoZXJlIGl0IHNob3VsZCBiZSBgbWVzc2FnZTxibGFoLkJhcj5gKSwgeW91
Ci13aWxsIG5vdyBnZXQgcnVuLXRpbWUgZXJyb3JzIGxpa2U6Ci0KLWBgYAotLi4uIGRlc2NyaXB0
b3IuY2M6Li4uXSBJbnZhbGlkIHByb3RvIGRlc2NyaXB0b3IgZm9yIGZpbGUgInBhdGgvdG8vZm9v
LnByb3RvIjoKLS4uLiBkZXNjcmlwdG9yLmNjOi4uLl0gIGJsYWguTXlNZXNzYWdlLm15X2ZpZWxk
OiAiLkJhciIgaXMgbm90IGRlZmluZWQuCi1gYGAKLQotSWYgeW91IHNlZSB0aGlzLCB5b3VyIGAu
cHJvdG9gIGZpbGUgaXMgYnJva2VuIGFuZCBuZWVkcyB0byBiZSBmaXhlZCBieSBtYWtpbmcKLXRo
ZSB0eXBlcyBmdWxseSBxdWFsaWZpZWQuIFRoZSBuZXcgZGVmaW5pdGlvbiBvZiBgUHJvdG9jb2xN
ZXNzYWdlRXF1YWxzYCBhbmQKLWBQcm90b2NvbE1lc3NhZ2VFcXVpdmAganVzdCBoYXBwZW4gdG8g
cmV2ZWFsIHlvdXIgYnVnLgotCi0jIyBNeSBkZWF0aCB0ZXN0IG1vZGlmaWVzIHNvbWUgc3RhdGUs
IGJ1dCB0aGUgY2hhbmdlIHNlZW1zIGxvc3QgYWZ0ZXIgdGhlIGRlYXRoIHRlc3QgZmluaXNoZXMu
IFdoeT8KLQotRGVhdGggdGVzdHMgKGBFWFBFQ1RfREVBVEhgLCBldGMpIGFyZSBleGVjdXRlZCBp
biBhIHN1Yi1wcm9jZXNzIHMudC4gdGhlCi1leHBlY3RlZCBjcmFzaCB3b24ndCBraWxsIHRoZSB0
ZXN0IHByb2dyYW0gKGkuZS4gdGhlIHBhcmVudCBwcm9jZXNzKS4gQXMgYQotcmVzdWx0LCBhbnkg
aW4tbWVtb3J5IHNpZGUgZWZmZWN0cyB0aGV5IGluY3VyIGFyZSBvYnNlcnZhYmxlIGluIHRoZWly
IHJlc3BlY3RpdmUKLXN1Yi1wcm9jZXNzZXMsIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBwcm9jZXNz
LiBZb3UgY2FuIHRoaW5rIG9mIHRoZW0gYXMgcnVubmluZwotaW4gYSBwYXJhbGxlbCB1bml2ZXJz
ZSwgbW9yZSBvciBsZXNzLgotCi1JbiBwYXJ0aWN1bGFyLCBpZiB5b3UgdXNlIFtnTW9ja10oLi4v
Li4vZ29vZ2xlbW9jaykgYW5kIHRoZSBkZWF0aCB0ZXN0IHN0YXRlbWVudAotaW52b2tlcyBzb21l
IG1vY2sgbWV0aG9kcywgdGhlIHBhcmVudCBwcm9jZXNzIHdpbGwgdGhpbmsgdGhlIGNhbGxzIGhh
dmUgbmV2ZXIKLW9jY3VycmVkLiBUaGVyZWZvcmUsIHlvdSBtYXkgd2FudCB0byBtb3ZlIHlvdXIg
YEVYUEVDVF9DQUxMYCBzdGF0ZW1lbnRzIGluc2lkZQotdGhlIGBFWFBFQ1RfREVBVEhgIG1hY3Jv
LgotCi0jIyBFWFBFQ1RfRVEoaHRvbmwoYmxhaCksIGJsYWhfYmxhaCkgZ2VuZXJhdGVzIHdlaXJk
IGNvbXBpbGVyIGVycm9ycyBpbiBvcHQgbW9kZS4gSXMgdGhpcyBhIGdvb2dsZXRlc3QgYnVnPwot
Ci1BY3R1YWxseSwgdGhlIGJ1ZyBpcyBpbiBgaHRvbmwoKWAuCi0KLUFjY29yZGluZyB0byBgJ21h
biBodG9ubCdgLCBgaHRvbmwoKWAgaXMgYSAqZnVuY3Rpb24qLCB3aGljaCBtZWFucyBpdCdzIHZh
bGlkIHRvCi11c2UgYGh0b25sYCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIuIEhvd2V2ZXIsIGluIG9w
dCBtb2RlIGBodG9ubCgpYCBpcyBkZWZpbmVkIGFzCi1hICptYWNybyosIHdoaWNoIGJyZWFrcyB0
aGlzIHVzYWdlLgotCi1Xb3JzZSwgdGhlIG1hY3JvIGRlZmluaXRpb24gb2YgYGh0b25sKClgIHVz
ZXMgYSBgZ2NjYCBleHRlbnNpb24gYW5kIGlzICpub3QqCi1zdGFuZGFyZCBDKysuIFRoYXQgaGFj
a3kgaW1wbGVtZW50YXRpb24gaGFzIHNvbWUgYWQgaG9jIGxpbWl0YXRpb25zLiBJbgotcGFydGlj
dWxhciwgaXQgcHJldmVudHMgeW91IGZyb20gd3JpdGluZyBgRm9vPHNpemVvZihodG9ubCh4KSk+
KClgLCB3aGVyZSBgRm9vYAotaXMgYSB0ZW1wbGF0ZSB0aGF0IGhhcyBhbiBpbnRlZ3JhbCBhcmd1
bWVudC4KLQotVGhlIGltcGxlbWVudGF0aW9uIG9mIGBFWFBFQ1RfRVEoYSwgYilgIHVzZXMgYHNp
emVvZiguLi4gYSAuLi4pYCBpbnNpZGUgYQotdGVtcGxhdGUgYXJndW1lbnQsIGFuZCB0aHVzIGRv
ZXNuJ3QgY29tcGlsZSBpbiBvcHQgbW9kZSB3aGVuIGBhYCBjb250YWlucyBhIGNhbGwKLXRvIGBo
dG9ubCgpYC4gSXQgaXMgZGlmZmljdWx0IHRvIG1ha2UgYEVYUEVDVF9FUWAgYnlwYXNzIHRoZSBg
aHRvbmwoKWAgYnVnLCBhcwotdGhlIHNvbHV0aW9uIG11c3Qgd29yayB3aXRoIGRpZmZlcmVudCBj
b21waWxlcnMgb24gdmFyaW91cyBwbGF0Zm9ybXMuCi0KLWBodG9ubCgpYCBoYXMgc29tZSBvdGhl
ciBwcm9ibGVtcyBhcyBkZXNjcmliZWQgaW4gYC8vdXRpbC9lbmRpYW4vZW5kaWFuLmhgLAotd2hp
Y2ggZGVmaW5lcyBgZ2h0b25sKClgIHRvIHJlcGxhY2UgaXQuIGBnaHRvbmwoKWAgZG9lcyB0aGUg
c2FtZSB0aGluZyBgaHRvbmwoKWAKLWRvZXMsIG9ubHkgd2l0aG91dCBpdHMgcHJvYmxlbXMuIFdl
IHN1Z2dlc3QgeW91IHRvIHVzZSBgZ2h0b25sKClgIGluc3RlYWQgb2YKLWBodG9ubCgpYCwgYm90
aCBpbiB5b3VyIHRlc3RzIGFuZCBwcm9kdWN0aW9uIGNvZGUuCi0KLWAvL3V0aWwvZW5kaWFuL2Vu
ZGlhbi5oYCBhbHNvIGRlZmluZXMgYGdodG9ucygpYCwgd2hpY2ggc29sdmVzIHNpbWlsYXIgcHJv
YmxlbXMKLWluIGBodG9ucygpYC4KLQotRG9uJ3QgZm9yZ2V0IHRvIGFkZCBgLy91dGlsL2VuZGlh
bmAgdG8gdGhlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIGluIHRoZSBgQlVJTERgCi1maWxlIHdoZXJl
dmVyIGBnaHRvbmwoKWAgYW5kIGBnaHRvbnMoKWAgYXJlIHVzZWQuIFRoZSBsaWJyYXJ5IGNvbnNp
c3RzIG9mIGEKLXNpbmdsZSBoZWFkZXIgZmlsZSBhbmQgd2lsbCBub3QgYmxvYXQgeW91ciBiaW5h
cnkuCi0KLSMjIFRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgInVuZGVmaW5lZCByZWZlcmVu
Y2VzIiB0byBzb21lIHN0YXRpYyBjb25zdCBtZW1iZXIgdmFyaWFibGVzLCBidXQgSSBkaWQgZGVm
aW5lIHRoZW0gaW4gdGhlIGNsYXNzIGJvZHkuIFdoYXQncyB3cm9uZz8KLQotSWYgeW91ciBjbGFz
cyBoYXMgYSBzdGF0aWMgZGF0YSBtZW1iZXI6Ci0KLWBgYGMrKwotLy8gZm9vLmgKLWNsYXNzIEZv
byB7Ci0gIC4uLgotICBzdGF0aWMgY29uc3QgaW50IGtCYXIgPSAxMDA7Ci19OwotYGBgCi0KLVlv
dSBhbHNvIG5lZWQgdG8gZGVmaW5lIGl0ICpvdXRzaWRlKiBvZiB0aGUgY2xhc3MgYm9keSBpbiBg
Zm9vLmNjYDoKLQotYGBgYysrCi1jb25zdCBpbnQgRm9vOjprQmFyOyAgLy8gTm8gaW5pdGlhbGl6
ZXIgaGVyZS4KLWBgYAotCi1PdGhlcndpc2UgeW91ciBjb2RlIGlzICoqaW52YWxpZCBDKysqKiwg
YW5kIG1heSBicmVhayBpbiB1bmV4cGVjdGVkIHdheXMuIEluCi1wYXJ0aWN1bGFyLCB1c2luZyBp
dCBpbiBnb29nbGV0ZXN0IGNvbXBhcmlzb24gYXNzZXJ0aW9ucyAoYEVYUEVDVF9FUWAsIGV0Yykg
d2lsbAotZ2VuZXJhdGUgYW4gInVuZGVmaW5lZCByZWZlcmVuY2UiIGxpbmtlciBlcnJvci4gVGhl
IGZhY3QgdGhhdCAiaXQgdXNlZCB0byB3b3JrIgotZG9lc24ndCBtZWFuIGl0J3MgdmFsaWQuIEl0
IGp1c3QgbWVhbnMgdGhhdCB5b3Ugd2VyZSBsdWNreS4gOi0pCi0KLSMjIENhbiBJIGRlcml2ZSBh
IHRlc3QgZml4dHVyZSBmcm9tIGFub3RoZXI/Ci0KLVllcy4KLQotRWFjaCB0ZXN0IGZpeHR1cmUg
aGFzIGEgY29ycmVzcG9uZGluZyBhbmQgc2FtZSBuYW1lZCB0ZXN0IGNhc2UuIFRoaXMgbWVhbnMg
b25seQotb25lIHRlc3QgY2FzZSBjYW4gdXNlIGEgcGFydGljdWxhciBmaXh0dXJlLiBTb21ldGlt
ZXMsIGhvd2V2ZXIsIG11bHRpcGxlIHRlc3QKLWNhc2VzIG1heSB3YW50IHRvIHVzZSB0aGUgc2Ft
ZSBvciBzbGlnaHRseSBkaWZmZXJlbnQgZml4dHVyZXMuIEZvciBleGFtcGxlLCB5b3UKLW1heSB3
YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiBhIEdVSSBsaWJyYXJ5J3MgdGVzdCBjYXNlcyBk
b24ndCBsZWFrCi1pbXBvcnRhbnQgc3lzdGVtIHJlc291cmNlcyBsaWtlIGZvbnRzIGFuZCBicnVz
aGVzLgotCi1JbiBnb29nbGV0ZXN0LCB5b3Ugc2hhcmUgYSBmaXh0dXJlIGFtb25nIHRlc3QgY2Fz
ZXMgYnkgcHV0dGluZyB0aGUgc2hhcmVkIGxvZ2ljCi1pbiBhIGJhc2UgdGVzdCBmaXh0dXJlLCB0
aGVuIGRlcml2aW5nIGZyb20gdGhhdCBiYXNlIGEgc2VwYXJhdGUgZml4dHVyZSBmb3IgZWFjaAot
dGVzdCBjYXNlIHRoYXQgd2FudHMgdG8gdXNlIHRoaXMgY29tbW9uIGxvZ2ljLiBZb3UgdGhlbiB1
c2UgYFRFU1RfRigpYCB0byB3cml0ZQotdGVzdHMgdXNpbmcgZWFjaCBkZXJpdmVkIGZpeHR1cmUu
Ci0KLVR5cGljYWxseSwgeW91ciBjb2RlIGxvb2tzIGxpa2UgdGhpczoKLQotYGBgYysrCi0vLyBE
ZWZpbmVzIGEgYmFzZSB0ZXN0IGZpeHR1cmUuCi1jbGFzcyBCYXNlVGVzdCA6IHB1YmxpYyA6OnRl
c3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLi4uCi19OwotCi0vLyBEZXJpdmVzIGEgZml4
dHVyZSBGb29UZXN0IGZyb20gQmFzZVRlc3QuCi1jbGFzcyBGb29UZXN0IDogcHVibGljIEJhc2VU
ZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7Ci0gICAgQmFzZVRl
c3Q6OlNldFVwKCk7ICAvLyBTZXRzIHVwIHRoZSBiYXNlIGZpeHR1cmUgZmlyc3QuCi0gICAgLi4u
IGFkZGl0aW9uYWwgc2V0LXVwIHdvcmsgLi4uCi0gIH0KLQotICB2b2lkIFRlYXJEb3duKCkgb3Zl
cnJpZGUgewotICAgIC4uLiBjbGVhbi11cCB3b3JrIGZvciBGb29UZXN0IC4uLgotICAgIEJhc2VU
ZXN0OjpUZWFyRG93bigpOyAgLy8gUmVtZW1iZXIgdG8gdGVhciBkb3duIHRoZSBiYXNlIGZpeHR1
cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIGNsZWFuaW5nIHVwIEZvb1Rl
c3QhCi0gIH0KLQotICAuLi4gZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgZm9yIEZvb1Rlc3QgLi4u
Ci19OwotCi0vLyBUZXN0cyB0aGF0IHVzZSB0aGUgZml4dHVyZSBGb29UZXN0LgotVEVTVF9GKEZv
b1Rlc3QsIEJhcikgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIEJheikgeyAuLi4gfQotCi0uLi4g
YWRkaXRpb25hbCBmaXh0dXJlcyBkZXJpdmVkIGZyb20gQmFzZVRlc3QgLi4uCi1gYGAKLQotSWYg
bmVjZXNzYXJ5LCB5b3UgY2FuIGNvbnRpbnVlIHRvIGRlcml2ZSB0ZXN0IGZpeHR1cmVzIGZyb20g
YSBkZXJpdmVkIGZpeHR1cmUuCi1nb29nbGV0ZXN0IGhhcyBubyBsaW1pdCBvbiBob3cgZGVlcCB0
aGUgaGllcmFyY2h5IGNhbiBiZS4KLQotRm9yIGEgY29tcGxldGUgZXhhbXBsZSB1c2luZyBkZXJp
dmVkIHRlc3QgZml4dHVyZXMsIHNlZSBbZ29vZ2xldGVzdAotc2FtcGxlXShodHRwczovL2dpdGh1
Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9zYW1wbGVzL3Nh
bXBsZTVfdW5pdHRlc3QuY2MpCi0KLSMjIE15IGNvbXBpbGVyIGNvbXBsYWlucyAidm9pZCB2YWx1
ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZS4iIFdoYXQgZG9lcyB0aGlzIG1lYW4/Ci0K
LVlvdSdyZSBwcm9iYWJseSB1c2luZyBhbiBgQVNTRVJUXyooKWAgaW4gYSBmdW5jdGlvbiB0aGF0
IGRvZXNuJ3QgcmV0dXJuIGB2b2lkYC4KLWBBU1NFUlRfKigpYCBjYW4gb25seSBiZSB1c2VkIGlu
IGB2b2lkYCBmdW5jdGlvbnMsIGR1ZSB0byBleGNlcHRpb25zIGJlaW5nCi1kaXNhYmxlZCBieSBv
dXIgYnVpbGQgc3lzdGVtLiBQbGVhc2Ugc2VlIG1vcmUgZGV0YWlscwotW2hlcmVdKGFkdmFuY2Vk
Lm1kI2Fzc2VydGlvbi1wbGFjZW1lbnQpLgotCi0jIyBNeSBkZWF0aCB0ZXN0IGhhbmdzIChvciBz
ZWctZmF1bHRzKS4gSG93IGRvIEkgZml4IGl0PwotCi1JbiBnb29nbGV0ZXN0LCBkZWF0aCB0ZXN0
cyBhcmUgcnVuIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQgdGhlIHdheSB0aGV5IHdvcmsgaXMKLWRl
bGljYXRlLiBUbyB3cml0ZSBkZWF0aCB0ZXN0cyB5b3UgcmVhbGx5IG5lZWQgdG8gdW5kZXJzdGFu
ZCBob3cgdGhleSB3b3JrLgotUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSByZWFkIFt0aGlzXShh
ZHZhbmNlZC5tZCNob3ctaXQtd29ya3MpLgotCi1JbiBwYXJ0aWN1bGFyLCBkZWF0aCB0ZXN0cyBk
b24ndCBsaWtlIGhhdmluZyBtdWx0aXBsZSB0aHJlYWRzIGluIHRoZSBwYXJlbnQKLXByb2Nlc3Mu
IFNvIHRoZSBmaXJzdCB0aGluZyB5b3UgY2FuIHRyeSBpcyB0byBlbGltaW5hdGUgY3JlYXRpbmcg
dGhyZWFkcyBvdXRzaWRlCi1vZiBgRVhQRUNUX0RFQVRIKClgLiBGb3IgZXhhbXBsZSwgeW91IG1h
eSB3YW50IHRvIHVzZSBbbW9ja3NdKC4uLy4uL2dvb2dsZW1vY2spCi1vciBmYWtlIG9iamVjdHMg
aW5zdGVhZCBvZiByZWFsIG9uZXMgaW4geW91ciB0ZXN0cy4KLQotU29tZXRpbWVzIHRoaXMgaXMg
aW1wb3NzaWJsZSBhcyBzb21lIGxpYnJhcnkgeW91IG11c3QgdXNlIG1heSBiZSBjcmVhdGluZwot
dGhyZWFkcyBiZWZvcmUgYG1haW4oKWAgaXMgZXZlbiByZWFjaGVkLiBJbiB0aGlzIGNhc2UsIHlv
dSBjYW4gdHJ5IHRvIG1pbmltaXplCi10aGUgY2hhbmNlIG9mIGNvbmZsaWN0cyBieSBlaXRoZXIg
bW92aW5nIGFzIG1hbnkgYWN0aXZpdGllcyBhcyBwb3NzaWJsZSBpbnNpZGUKLWBFWFBFQ1RfREVB
VEgoKWAgKGluIHRoZSBleHRyZW1lIGNhc2UsIHlvdSB3YW50IHRvIG1vdmUgZXZlcnl0aGluZyBp
bnNpZGUpLCBvcgotbGVhdmluZyBhcyBmZXcgdGhpbmdzIGFzIHBvc3NpYmxlIGluIGl0LiBBbHNv
LCB5b3UgY2FuIHRyeSB0byBzZXQgdGhlIGRlYXRoIHRlc3QKLXN0eWxlIHRvIGAidGhyZWFkc2Fm
ZSJgLCB3aGljaCBpcyBzYWZlciBidXQgc2xvd2VyLCBhbmQgc2VlIGlmIGl0IGhlbHBzLgotCi1J
ZiB5b3UgZ28gd2l0aCB0aHJlYWQtc2FmZSBkZWF0aCB0ZXN0cywgcmVtZW1iZXIgdGhhdCB0aGV5
IHJlcnVuIHRoZSB0ZXN0Ci1wcm9ncmFtIGZyb20gdGhlIGJlZ2lubmluZyBpbiB0aGUgY2hpbGQg
cHJvY2Vzcy4gVGhlcmVmb3JlIG1ha2Ugc3VyZSB5b3VyCi1wcm9ncmFtIGNhbiBydW4gc2lkZS1i
eS1zaWRlIHdpdGggaXRzZWxmIGFuZCBpcyBkZXRlcm1pbmlzdGljLgotCi1JbiB0aGUgZW5kLCB0
aGlzIGJvaWxzIGRvd24gdG8gZ29vZCBjb25jdXJyZW50IHByb2dyYW1taW5nLiBZb3UgaGF2ZSB0
byBtYWtlCi1zdXJlIHRoYXQgdGhlcmUgaXMgbm8gcmFjZSBjb25kaXRpb25zIG9yIGRlYWQgbG9j
a3MgaW4geW91ciBwcm9ncmFtLiBObyBzaWx2ZXIKLWJ1bGxldCAtIHNvcnJ5IQotCi0jIyBTaG91
bGQgSSB1c2UgdGhlIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3Igb2YgdGhlIHRlc3QgZml4dHVyZSBv
ciBTZXRVcCgpL1RlYXJEb3duKCk/Ci0KLVRoZSBmaXJzdCB0aGluZyB0byByZW1lbWJlciBpcyB0
aGF0IGdvb2dsZXRlc3QgZG9lcyAqKm5vdCoqIHJldXNlIHRoZSBzYW1lIHRlc3QKLWZpeHR1cmUg
b2JqZWN0IGFjcm9zcyBtdWx0aXBsZSB0ZXN0cy4gRm9yIGVhY2ggYFRFU1RfRmAsIGdvb2dsZXRl
c3Qgd2lsbCBjcmVhdGUKLWEgKipmcmVzaCoqIHRlc3QgZml4dHVyZSBvYmplY3QsIGltbWVkaWF0
ZWx5IGNhbGwgYFNldFVwKClgLCBydW4gdGhlIHRlc3QgYm9keSwKLWNhbGwgYFRlYXJEb3duKClg
LCBhbmQgdGhlbiBkZWxldGUgdGhlIHRlc3QgZml4dHVyZSBvYmplY3QuCi0KLVdoZW4geW91IG5l
ZWQgdG8gd3JpdGUgcGVyLXRlc3Qgc2V0LXVwIGFuZCB0ZWFyLWRvd24gbG9naWMsIHlvdSBoYXZl
IHRoZSBjaG9pY2UKLWJldHdlZW4gdXNpbmcgdGhlIHRlc3QgZml4dHVyZSBjb25zdHJ1Y3Rvci9k
ZXN0cnVjdG9yIG9yIGBTZXRVcCgpL1RlYXJEb3duKClgLgotVGhlIGZvcm1lciBpcyB1c3VhbGx5
IHByZWZlcnJlZCwgYXMgaXQgaGFzIHRoZSBmb2xsb3dpbmcgYmVuZWZpdHM6Ci0KLSogICBCeSBp
bml0aWFsaXppbmcgYSBtZW1iZXIgdmFyaWFibGUgaW4gdGhlIGNvbnN0cnVjdG9yLCB3ZSBoYXZl
IHRoZSBvcHRpb24gdG8KLSAgICBtYWtlIGl0IGBjb25zdGAsIHdoaWNoIGhlbHBzIHByZXZlbnQg
YWNjaWRlbnRhbCBjaGFuZ2VzIHRvIGl0cyB2YWx1ZSBhbmQKLSAgICBtYWtlcyB0aGUgdGVzdHMg
bW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSogICBJbiBjYXNlIHdlIG5lZWQgdG8gc3ViY2xhc3Mg
dGhlIHRlc3QgZml4dHVyZSBjbGFzcywgdGhlIHN1YmNsYXNzJwotICAgIGNvbnN0cnVjdG9yIGlz
IGd1YXJhbnRlZWQgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcycgY29uc3RydWN0b3IgKmZpcnN0Kiwg
YW5kCi0gICAgdGhlIHN1YmNsYXNzJyBkZXN0cnVjdG9yIGlzIGd1YXJhbnRlZWQgdG8gY2FsbCB0
aGUgYmFzZSBjbGFzcycgZGVzdHJ1Y3RvcgotICAgICphZnRlcndhcmQqLiBXaXRoIGBTZXRVcCgp
L1RlYXJEb3duKClgLCBhIHN1YmNsYXNzIG1heSBtYWtlIHRoZSBtaXN0YWtlIG9mCi0gICAgZm9y
Z2V0dGluZyB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBgU2V0VXAoKS9UZWFyRG93bigpYCBvciBj
YWxsIHRoZW0gYXQgdGhlCi0gICAgd3JvbmcgdGltZS4KLQotWW91IG1heSBzdGlsbCB3YW50IHRv
IHVzZSBgU2V0VXAoKS9UZWFyRG93bigpYCBpbiB0aGUgZm9sbG93aW5nIHJhcmUgY2FzZXM6Ci0K
LSogICBJbiB0aGUgYm9keSBvZiBhIGNvbnN0cnVjdG9yIChvciBkZXN0cnVjdG9yKSwgaXQncyBu
b3QgcG9zc2libGUgdG8gdXNlIHRoZQotICAgIGBBU1NFUlRfeHhgIG1hY3Jvcy4gVGhlcmVmb3Jl
LCBpZiB0aGUgc2V0LXVwIG9wZXJhdGlvbiBjb3VsZCBjYXVzZSBhIGZhdGFsCi0gICAgdGVzdCBm
YWlsdXJlIHRoYXQgc2hvdWxkIHByZXZlbnQgdGhlIHRlc3QgZnJvbSBydW5uaW5nLCBpdCdzIG5l
Y2Vzc2FyeSB0bwotICAgIHVzZSBhIGBDSEVDS2AgbWFjcm8gb3IgdG8gdXNlIGBTZXRVcCgpYCBp
bnN0ZWFkIG9mIGEgY29uc3RydWN0b3IuCi0qICAgSWYgdGhlIHRlYXItZG93biBvcGVyYXRpb24g
Y291bGQgdGhyb3cgYW4gZXhjZXB0aW9uLCB5b3UgbXVzdCB1c2UKLSAgICBgVGVhckRvd24oKWAg
YXMgb3Bwb3NlZCB0byB0aGUgZGVzdHJ1Y3RvciwgYXMgdGhyb3dpbmcgaW4gYSBkZXN0cnVjdG9y
IGxlYWRzCi0gICAgdG8gdW5kZWZpbmVkIGJlaGF2aW9yIGFuZCB1c3VhbGx5IHdpbGwga2lsbCB5
b3VyIHByb2dyYW0gcmlnaHQgYXdheS4gTm90ZQotICAgIHRoYXQgbWFueSBzdGFuZGFyZCBsaWJy
YXJpZXMgKGxpa2UgU1RMKSBtYXkgdGhyb3cgd2hlbiBleGNlcHRpb25zIGFyZQotICAgIGVuYWJs
ZWQgaW4gdGhlIGNvbXBpbGVyLiBUaGVyZWZvcmUgeW91IHNob3VsZCBwcmVmZXIgYFRlYXJEb3du
KClgIGlmIHlvdQotICAgIHdhbnQgdG8gd3JpdGUgcG9ydGFibGUgdGVzdHMgdGhhdCB3b3JrIHdp
dGggb3Igd2l0aG91dCBleGNlcHRpb25zLgotKiAgIFRoZSBnb29nbGV0ZXN0IHRlYW0gaXMgY29u
c2lkZXJpbmcgbWFraW5nIHRoZSBhc3NlcnRpb24gbWFjcm9zIHRocm93IG9uCi0gICAgcGxhdGZv
cm1zIHdoZXJlIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgKGUuZy4gV2luZG93cywgTWFjIE9TLCBh
bmQgTGludXgKLSAgICBjbGllbnQtc2lkZSksIHdoaWNoIHdpbGwgZWxpbWluYXRlIHRoZSBuZWVk
IGZvciB0aGUgdXNlciB0byBwcm9wYWdhdGUKLSAgICBmYWlsdXJlcyBmcm9tIGEgc3Vicm91dGlu
ZSB0byBpdHMgY2FsbGVyLiBUaGVyZWZvcmUsIHlvdSBzaG91bGRuJ3QgdXNlCi0gICAgZ29vZ2xl
dGVzdCBhc3NlcnRpb25zIGluIGEgZGVzdHJ1Y3RvciBpZiB5b3VyIGNvZGUgY291bGQgcnVuIG9u
IHN1Y2ggYQotICAgIHBsYXRmb3JtLgotKiAgIEluIGEgY29uc3RydWN0b3Igb3IgZGVzdHJ1Y3Rv
ciwgeW91IGNhbm5vdCBtYWtlIGEgdmlydHVhbCBmdW5jdGlvbiBjYWxsIG9uCi0gICAgdGhpcyBv
YmplY3QuIChZb3UgY2FuIGNhbGwgYSBtZXRob2QgZGVjbGFyZWQgYXMgdmlydHVhbCwgYnV0IGl0
IHdpbGwgYmUKLSAgICBzdGF0aWNhbGx5IGJvdW5kLikgVGhlcmVmb3JlLCBpZiB5b3UgbmVlZCB0
byBjYWxsIGEgbWV0aG9kIHRoYXQgd2lsbCBiZQotICAgIG92ZXJyaWRkZW4gaW4gYSBkZXJpdmVk
IGNsYXNzLCB5b3UgaGF2ZSB0byB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAuCi0KLQotIyMgVGhl
IGNvbXBpbGVyIGNvbXBsYWlucyAibm8gbWF0Y2hpbmcgZnVuY3Rpb24gdG8gY2FsbCIgd2hlbiBJ
IHVzZSBBU1NFUlRfUFJFRCouIEhvdyBkbyBJIGZpeCBpdD8KLQotSWYgdGhlIHByZWRpY2F0ZSBm
dW5jdGlvbiB5b3UgdXNlIGluIGBBU1NFUlRfUFJFRCpgIG9yIGBFWFBFQ1RfUFJFRCpgIGlzCi1v
dmVybG9hZGVkIG9yIGEgdGVtcGxhdGUsIHRoZSBjb21waWxlciB3aWxsIGhhdmUgdHJvdWJsZSBm
aWd1cmluZyBvdXQgd2hpY2gKLW92ZXJsb2FkZWQgdmVyc2lvbiBpdCBzaG91bGQgdXNlLiBgQVNT
RVJUX1BSRURfRk9STUFUKmAgYW5kCi1gRVhQRUNUX1BSRURfRk9STUFUKmAgZG9uJ3QgaGF2ZSB0
aGlzIHByb2JsZW0uCi0KLUlmIHlvdSBzZWUgdGhpcyBlcnJvciwgeW91IG1pZ2h0IHdhbnQgdG8g
c3dpdGNoIHRvCi1gKEFTU0VSVHxFWFBFQ1QpX1BSRURfRk9STUFUKmAsIHdoaWNoIHdpbGwgYWxz
byBnaXZlIHlvdSBhIGJldHRlciBmYWlsdXJlCi1tZXNzYWdlLiBJZiwgaG93ZXZlciwgdGhhdCBp
cyBub3QgYW4gb3B0aW9uLCB5b3UgY2FuIHJlc29sdmUgdGhlIHByb2JsZW0gYnkKLWV4cGxpY2l0
bHkgdGVsbGluZyB0aGUgY29tcGlsZXIgd2hpY2ggdmVyc2lvbiB0byBwaWNrLgotCi1Gb3IgZXhh
bXBsZSwgc3VwcG9zZSB5b3UgaGF2ZQotCi1gYGBjKysKLWJvb2wgSXNQb3NpdGl2ZShpbnQgbikg
ewotICByZXR1cm4gbiA+IDA7Ci19Ci0KLWJvb2wgSXNQb3NpdGl2ZShkb3VibGUgeCkgewotICBy
ZXR1cm4geCA+IDA7Ci19Ci1gYGAKLQoteW91IHdpbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IgaWYg
eW91IHdyaXRlCi0KLWBgYGMrKwotRVhQRUNUX1BSRUQxKElzUG9zaXRpdmUsIDUpOwotYGBgCi0K
LUhvd2V2ZXIsIHRoaXMgd2lsbCB3b3JrOgotCi1gYGBjKysKLUVYUEVDVF9QUkVEMShzdGF0aWNf
Y2FzdDxib29sICgqKShpbnQpPihJc1Bvc2l0aXZlKSwgNSk7Ci1gYGAKLQotKFRoZSBzdHVmZiBp
bnNpZGUgdGhlIGFuZ2xlZCBicmFja2V0cyBmb3IgdGhlIGBzdGF0aWNfY2FzdGAgb3BlcmF0b3Ig
aXMgdGhlIHR5cGUKLW9mIHRoZSBmdW5jdGlvbiBwb2ludGVyIGZvciB0aGUgYGludGAtdmVyc2lv
biBvZiBgSXNQb3NpdGl2ZSgpYC4pCi0KLUFzIGFub3RoZXIgZXhhbXBsZSwgd2hlbiB5b3UgaGF2
ZSBhIHRlbXBsYXRlIGZ1bmN0aW9uCi0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1i
b29sIElzTmVnYXRpdmUoVCB4KSB7Ci0gIHJldHVybiB4IDwgMDsKLX0KLWBgYAotCi15b3UgY2Fu
IHVzZSBpdCBpbiBhIHByZWRpY2F0ZSBhc3NlcnRpb24gbGlrZSB0aGlzOgotCi1gYGBjKysKLUFT
U0VSVF9QUkVEMShJc05lZ2F0aXZlPGludD4sIC01KTsKLWBgYAotCi1UaGluZ3MgYXJlIG1vcmUg
aW50ZXJlc3RpbmcgaWYgeW91ciB0ZW1wbGF0ZSBoYXMgbW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXJz
LiBUaGUKLWZvbGxvd2luZyB3b24ndCBjb21waWxlOgotCi1gYGBjKysKLUFTU0VSVF9QUkVEMihH
cmVhdGVyVGhhbjxpbnQsIGludD4sIDUsIDApOwotYGBgCi0KLWFzIHRoZSBDKysgcHJlLXByb2Nl
c3NvciB0aGlua3MgeW91IGFyZSBnaXZpbmcgYEFTU0VSVF9QUkVEMmAgNCBhcmd1bWVudHMsIHdo
aWNoCi1pcyBvbmUgbW9yZSB0aGFuIGV4cGVjdGVkLiBUaGUgd29ya2Fyb3VuZCBpcyB0byB3cmFw
IHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gaW4KLXBhcmVudGhlc2VzOgotCi1gYGBjKysKLUFTU0VS
VF9QUkVEMigoR3JlYXRlclRoYW48aW50LCBpbnQ+KSwgNSwgMCk7Ci1gYGAKLQotCi0jIyBNeSBj
b21waWxlciBjb21wbGFpbnMgYWJvdXQgImlnbm9yaW5nIHJldHVybiB2YWx1ZSIgd2hlbiBJIGNh
bGwgUlVOX0FMTF9URVNUUygpLiBXaHk/Ci0KLVNvbWUgcGVvcGxlIGhhZCBiZWVuIGlnbm9yaW5n
IHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAuIFRoYXQgaXMsCi1pbnN0ZWFk
IG9mCi0KLWBgYGMrKwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotYGBgCi0KLXRoZXkgd3Jp
dGUKLQotYGBgYysrCi0gIFJVTl9BTExfVEVTVFMoKTsKLWBgYAotCi1UaGlzIGlzICoqd3Jvbmcg
YW5kIGRhbmdlcm91cyoqLiBUaGUgdGVzdGluZyBzZXJ2aWNlcyBuZWVkcyB0byBzZWUgdGhlIHJl
dHVybgotdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlm
IGEgdGVzdCBoYXMgcGFzc2VkLiBJZiB5b3VyCi1gbWFpbigpYCBmdW5jdGlvbiBpZ25vcmVzIGl0
LCB5b3VyIHRlc3Qgd2lsbCBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgZXZlbiBpZiBpdAotaGFz
IGEgZ29vZ2xldGVzdCBhc3NlcnRpb24gZmFpbHVyZS4gVmVyeSBiYWQuCi0KLVdlIGhhdmUgZGVj
aWRlZCB0byBmaXggdGhpcyAodGhhbmtzIHRvIE1pY2hhZWwgQ2hhc3RhaW4gZm9yIHRoZSBpZGVh
KS4gTm93LCB5b3VyCi1jb2RlIHdpbGwgbm8gbG9uZ2VyIGJlIGFibGUgdG8gaWdub3JlIGBSVU5f
QUxMX1RFU1RTKClgIHdoZW4gY29tcGlsZWQgd2l0aAotYGdjY2AuIElmIHlvdSBkbyBzbywgeW91
J2xsIGdldCBhIGNvbXBpbGVyIGVycm9yLgotCi1JZiB5b3Ugc2VlIHRoZSBjb21waWxlciBjb21w
bGFpbmluZyBhYm91dCB5b3UgaWdub3JpbmcgdGhlIHJldHVybiB2YWx1ZSBvZgotYFJVTl9BTExf
VEVTVFMoKWAsIHRoZSBmaXggaXMgc2ltcGxlOiBqdXN0IG1ha2Ugc3VyZSBpdHMgdmFsdWUgaXMg
dXNlZCBhcyB0aGUKLXJldHVybiB2YWx1ZSBvZiBgbWFpbigpYC4KLQotQnV0IGhvdyBjb3VsZCB3
ZSBpbnRyb2R1Y2UgYSBjaGFuZ2UgdGhhdCBicmVha3MgZXhpc3RpbmcgdGVzdHM/IFdlbGwsIGlu
IHRoaXMKLWNhc2UsIHRoZSBjb2RlIHdhcyBhbHJlYWR5IGJyb2tlbiBpbiB0aGUgZmlyc3QgcGxh
Y2UsIHNvIHdlIGRpZG4ndCBicmVhayBpdC4gOi0pCi0KLSMjIE15IGNvbXBpbGVyIGNvbXBsYWlu
cyB0aGF0IGEgY29uc3RydWN0b3IgKG9yIGRlc3RydWN0b3IpIGNhbm5vdCByZXR1cm4gYSB2YWx1
ZS4gV2hhdCdzIGdvaW5nIG9uPwotCi1EdWUgdG8gYSBwZWN1bGlhcml0eSBvZiBDKyssIGluIG9y
ZGVyIHRvIHN1cHBvcnQgdGhlIHN5bnRheCBmb3Igc3RyZWFtaW5nCi1tZXNzYWdlcyB0byBhbiBg
QVNTRVJUXypgLCBlLmcuCi0KLWBgYGMrKwotICBBU1NFUlRfRVEoMSwgRm9vKCkpIDw8ICJibGFo
IGJsYWgiIDw8IGZvbzsKLWBgYAotCi13ZSBoYWQgdG8gZ2l2ZSB1cCB1c2luZyBgQVNTRVJUKmAg
YW5kIGBGQUlMKmAgKGJ1dCBub3QgYEVYUEVDVCpgIGFuZAotYEFERF9GQUlMVVJFKmApIGluIGNv
bnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIG1vdmUgdGhl
Ci1jb250ZW50IG9mIHlvdXIgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciB0byBhIHByaXZhdGUgdm9p
ZCBtZW1iZXIgZnVuY3Rpb24sIG9yCi1zd2l0Y2ggdG8gYEVYUEVDVF8qKClgIGlmIHRoYXQgd29y
a3MuIFRoaXMKLVtzZWN0aW9uXShhZHZhbmNlZC5tZCNhc3NlcnRpb24tcGxhY2VtZW50KSBpbiB0
aGUgdXNlcidzIGd1aWRlIGV4cGxhaW5zIGl0LgotCi0jIyBNeSBTZXRVcCgpIGZ1bmN0aW9uIGlz
IG5vdCBjYWxsZWQuIFdoeT8KLQotQysrIGlzIGNhc2Utc2Vuc2l0aXZlLiBEaWQgeW91IHNwZWxs
IGl0IGFzIGBTZXR1cCgpYD8KLQotU2ltaWxhcmx5LCBzb21ldGltZXMgcGVvcGxlIHNwZWxsIGBT
ZXRVcFRlc3RDYXNlKClgIGFzIGBTZXR1cFRlc3RDYXNlKClgIGFuZAotd29uZGVyIHdoeSBpdCdz
IG5ldmVyIGNhbGxlZC4KLQotIyMgSG93IGRvIEkganVtcCB0byB0aGUgbGluZSBvZiBhIGZhaWx1
cmUgaW4gRW1hY3MgZGlyZWN0bHk/Ci0KLWdvb2dsZXRlc3QncyBmYWlsdXJlIG1lc3NhZ2UgZm9y
bWF0IGlzIHVuZGVyc3Rvb2QgYnkgRW1hY3MgYW5kIG1hbnkgb3RoZXIgSURFcywKLWxpa2UgYWNt
ZSBhbmQgWENvZGUuIElmIGEgZ29vZ2xldGVzdCBtZXNzYWdlIGlzIGluIGEgY29tcGlsYXRpb24g
YnVmZmVyIGluCi1FbWFjcywgdGhlbiBpdCdzIGNsaWNrYWJsZS4KLQotCi0jIyBJIGhhdmUgc2V2
ZXJhbCB0ZXN0IGNhc2VzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBsb2dpYywg
ZG8gSSBoYXZlIHRvIGRlZmluZSBhIG5ldyB0ZXN0IGZpeHR1cmUgY2xhc3MgZm9yIGVhY2ggb2Yg
dGhlbT8gVGhpcyBzZWVtcyBwcmV0dHkgdGVkaW91cy4KLQotWW91IGRvbid0IGhhdmUgdG8uIElu
c3RlYWQgb2YKLQotYGBgYysrCi1jbGFzcyBGb29UZXN0IDogcHVibGljIEJhc2VUZXN0IHt9Owot
Ci1URVNUX0YoRm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4u
LiB9Ci0KLWNsYXNzIEJhclRlc3QgOiBwdWJsaWMgQmFzZVRlc3Qge307Ci0KLVRFU1RfRihCYXJU
ZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0LCBEZWYpIHsgLi4uIH0KLWBgYAotCi15
b3UgY2FuIHNpbXBseSBgdHlwZWRlZmAgdGhlIHRlc3QgZml4dHVyZXM6Ci0KLWBgYGMrKwotdHlw
ZWRlZiBCYXNlVGVzdCBGb29UZXN0OwotCi1URVNUX0YoRm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1U
RVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLXR5cGVkZWYgQmFzZVRlc3QgQmFyVGVzdDsK
LQotVEVTVF9GKEJhclRlc3QsIEFiYykgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIERlZikgeyAu
Li4gfQotYGBgCi0KLSMjIGdvb2dsZXRlc3Qgb3V0cHV0IGlzIGJ1cmllZCBpbiBhIHdob2xlIGJ1
bmNoIG9mIExPRyBtZXNzYWdlcy4gV2hhdCBkbyBJIGRvPwotCi1UaGUgZ29vZ2xldGVzdCBvdXRw
dXQgaXMgbWVhbnQgdG8gYmUgYSBjb25jaXNlIGFuZCBodW1hbi1mcmllbmRseSByZXBvcnQuIElm
Ci15b3VyIHRlc3QgZ2VuZXJhdGVzIHRleHR1YWwgb3V0cHV0IGl0c2VsZiwgaXQgd2lsbCBtaXgg
d2l0aCB0aGUgZ29vZ2xldGVzdAotb3V0cHV0LCBtYWtpbmcgaXQgaGFyZCB0byByZWFkLiBIb3dl
dmVyLCB0aGVyZSBpcyBhbiBlYXN5IHNvbHV0aW9uIHRvIHRoaXMKLXByb2JsZW0uCi0KLVNpbmNl
IGBMT0dgIG1lc3NhZ2VzIGdvIHRvIHN0ZGVyciwgd2UgZGVjaWRlZCB0byBsZXQgZ29vZ2xldGVz
dCBvdXRwdXQgZ28gdG8KLXN0ZG91dC4gVGhpcyB3YXksIHlvdSBjYW4gZWFzaWx5IHNlcGFyYXRl
IHRoZSB0d28gdXNpbmcgcmVkaXJlY3Rpb24uIEZvcgotZXhhbXBsZToKLQotYGBgc2hlbGwKLSQg
Li9teV90ZXN0ID4gZ3Rlc3Rfb3V0cHV0LnR4dAotYGBgCi0KLQotIyMgV2h5IHNob3VsZCBJIHBy
ZWZlciB0ZXN0IGZpeHR1cmVzIG92ZXIgZ2xvYmFsIHZhcmlhYmxlcz8KLQotVGhlcmUgYXJlIHNl
dmVyYWwgZ29vZCByZWFzb25zOgotCi0xLiAgSXQncyBsaWtlbHkgeW91ciB0ZXN0IG5lZWRzIHRv
IGNoYW5nZSB0aGUgc3RhdGVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLgotICAgIFRoaXMgbWFr
ZXMgaXQgZGlmZmljdWx0IHRvIGtlZXAgc2lkZSBlZmZlY3RzIGZyb20gZXNjYXBpbmcgb25lIHRl
c3QgYW5kCi0gICAgY29udGFtaW5hdGluZyBvdGhlcnMsIG1ha2luZyBkZWJ1Z2dpbmcgZGlmZmlj
dWx0LiBCeSB1c2luZyBmaXh0dXJlcywgZWFjaAotICAgIHRlc3QgaGFzIGEgZnJlc2ggc2V0IG9m
IHZhcmlhYmxlcyB0aGF0J3MgZGlmZmVyZW50IChidXQgd2l0aCB0aGUgc2FtZQotICAgIG5hbWVz
KS4gVGh1cywgdGVzdHMgYXJlIGtlcHQgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KLTEuICBH
bG9iYWwgdmFyaWFibGVzIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UuCi0xLiAgVGVzdCBm
aXh0dXJlcyBjYW4gYmUgcmV1c2VkIHZpYSBzdWJjbGFzc2luZywgd2hpY2ggY2Fubm90IGJlIGRv
bmUgZWFzaWx5Ci0gICAgd2l0aCBnbG9iYWwgdmFyaWFibGVzLiBUaGlzIGlzIHVzZWZ1bCBpZiBt
YW55IHRlc3QgY2FzZXMgaGF2ZSBzb21ldGhpbmcgaW4KLSAgICBjb21tb24uCi0KLQotICAgICMj
IFdoYXQgY2FuIHRoZSBzdGF0ZW1lbnQgYXJndW1lbnQgaW4gQVNTRVJUX0RFQVRIKCkgYmU/Ci0K
LWBBU1NFUlRfREVBVEgoKnN0YXRlbWVudCosICpyZWdleCopYCAob3IgYW55IGRlYXRoIGFzc2Vy
dGlvbiBtYWNybykgY2FuIGJlIHVzZWQKLXdoZXJldmVyIGAqc3RhdGVtZW50KmAgaXMgdmFsaWQu
IFNvIGJhc2ljYWxseSBgKnN0YXRlbWVudCpgIGNhbiBiZSBhbnkgQysrCi1zdGF0ZW1lbnQgdGhh
dCBtYWtlcyBzZW5zZSBpbiB0aGUgY3VycmVudCBjb250ZXh0LiBJbiBwYXJ0aWN1bGFyLCBpdCBj
YW4KLXJlZmVyZW5jZSBnbG9iYWwgYW5kL29yIGxvY2FsIHZhcmlhYmxlcywgYW5kIGNhbiBiZToK
LQotKiAgIGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwgKG9mdGVuIHRoZSBjYXNlKSwKLSogICBhIGNv
bXBsZXggZXhwcmVzc2lvbiwgb3IKLSogICBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLQotU29tZSBl
eGFtcGxlcyBhcmUgc2hvd24gaGVyZToKLQotYGBgYysrCi0vLyBBIGRlYXRoIHRlc3QgY2FuIGJl
IGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwuCi1URVNUKE15RGVhdGhUZXN0LCBGdW5jdGlvbkNhbGwp
IHsKLSAgQVNTRVJUX0RFQVRIKFh5eig1KSwgIlh5eiBmYWlsZWQiKTsKLX0KLQotLy8gT3IgYSBj
b21wbGV4IGV4cHJlc3Npb24gdGhhdCByZWZlcmVuY2VzIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25z
LgotVEVTVChNeURlYXRoVGVzdCwgQ29tcGxleEV4cHJlc3Npb24pIHsKLSAgY29uc3QgYm9vbCBj
ID0gQ29uZGl0aW9uKCk7Ci0gIEFTU0VSVF9ERUFUSCgoYyA/IEZ1bmMxKDApIDogb2JqZWN0Mi5N
ZXRob2QoInRlc3QiKSksCi0gICAgICAgICAgICAgICAiKEZ1bmMxfE1ldGhvZCkgZmFpbGVkIik7
Ci19Ci0KLS8vIERlYXRoIGFzc2VydGlvbnMgY2FuIGJlIHVzZWQgYW55IHdoZXJlIGluIGEgZnVu
Y3Rpb24uICBJbgotLy8gcGFydGljdWxhciwgdGhleSBjYW4gYmUgaW5zaWRlIGEgbG9vcC4KLVRF
U1QoTXlEZWF0aFRlc3QsIEluc2lkZUxvb3ApIHsKLSAgLy8gVmVyaWZpZXMgdGhhdCBGb28oMCks
IEZvbygxKSwgLi4uLCBhbmQgRm9vKDQpIGFsbCBkaWUuCi0gIGZvciAoaW50IGkgPSAwOyBpIDwg
NTsgaSsrKSB7Ci0gICAgRVhQRUNUX0RFQVRIX00oRm9vKGkpLCAiRm9vIGhhcyBcXGQrIGVycm9y
cyIsCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpNZXNzYWdlKCkgPDwgIndoZXJlIGkg
aXMgIiA8PCBpKTsKLSAgfQotfQotCi0vLyBBIGRlYXRoIGFzc2VydGlvbiBjYW4gY29udGFpbiBh
IGNvbXBvdW5kIHN0YXRlbWVudC4KLVRFU1QoTXlEZWF0aFRlc3QsIENvbXBvdW5kU3RhdGVtZW50
KSB7Ci0gIC8vIFZlcmlmaWVzIHRoYXQgYXQgbGVhc2Ugb25lIG9mIEJhcigwKSwgQmFyKDEpLCAu
Li4sIGFuZAotICAvLyBCYXIoNCkgZGllcy4KLSAgQVNTRVJUX0RFQVRIKHsKLSAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IDU7IGkrKykgewotICAgICAgQmFyKGkpOwotICAgIH0KLSAgfSwKLSAgIkJh
ciBoYXMgXFxkKyBlcnJvcnMiKTsKLX0KLWBgYAotCi1ndGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2Mg
Y29udGFpbnMgbW9yZSBleGFtcGxlcyBpZiB5b3UgYXJlIGludGVyZXN0ZWQuCi0KLSMjIEkgaGF2
ZSBhIGZpeHR1cmUgY2xhc3MgYEZvb1Rlc3RgLCBidXQgYFRFU1RfRihGb29UZXN0LCBCYXIpYCBn
aXZlcyBtZSBlcnJvciBgYCJubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0byBgRm9vVGVz
dDo6Rm9vVGVzdCgpJyJgYC4gV2h5PwotCi1Hb29nbGV0ZXN0IG5lZWRzIHRvIGJlIGFibGUgdG8g
Y3JlYXRlIG9iamVjdHMgb2YgeW91ciB0ZXN0IGZpeHR1cmUgY2xhc3MsIHNvIGl0Ci1tdXN0IGhh
dmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBOb3JtYWxseSB0aGUgY29tcGlsZXIgd2lsbCBkZWZp
bmUgb25lIGZvciB5b3UuCi1Ib3dldmVyLCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgeW91IGhhdmUg
dG8gZGVmaW5lIHlvdXIgb3duOgotCi0qICAgSWYgeW91IGV4cGxpY2l0bHkgZGVjbGFyZSBhIG5v
bi1kZWZhdWx0IGNvbnN0cnVjdG9yIGZvciBjbGFzcyBgRm9vVGVzdGAKLSAgICAoYERJU0FMTE9X
X0VWSUxfQ09OU1RSVUNUT1JTKClgIGRvZXMgdGhpcyksIHRoZW4geW91IG5lZWQgdG8gZGVmaW5l
IGEKLSAgICBkZWZhdWx0IGNvbnN0cnVjdG9yLCBldmVuIGlmIGl0IHdvdWxkIGJlIGVtcHR5Lgot
KiAgIElmIGBGb29UZXN0YCBoYXMgYSBjb25zdCBub24tc3RhdGljIGRhdGEgbWVtYmVyLCB0aGVu
IHlvdSBoYXZlIHRvIGRlZmluZSB0aGUKLSAgICBkZWZhdWx0IGNvbnN0cnVjdG9yICphbmQqIGlu
aXRpYWxpemUgdGhlIGNvbnN0IG1lbWJlciBpbiB0aGUgaW5pdGlhbGl6ZXIKLSAgICBsaXN0IG9m
IHRoZSBjb25zdHJ1Y3Rvci4gKEVhcmx5IHZlcnNpb25zIG9mIGBnY2NgIGRvZXNuJ3QgZm9yY2Ug
eW91IHRvCi0gICAgaW5pdGlhbGl6ZSB0aGUgY29uc3QgbWVtYmVyLiBJdCdzIGEgYnVnIHRoYXQg
aGFzIGJlZW4gZml4ZWQgaW4gYGdjYyA0YC4pCi0KLSMjIFdoeSBkb2VzIEFTU0VSVF9ERUFUSCBj
b21wbGFpbiBhYm91dCBwcmV2aW91cyB0aHJlYWRzIHRoYXQgd2VyZSBhbHJlYWR5IGpvaW5lZD8K
LQotV2l0aCB0aGUgTGludXggcHRocmVhZCBsaWJyYXJ5LCB0aGVyZSBpcyBubyB0dXJuaW5nIGJh
Y2sgb25jZSB5b3UgY3Jvc3MgdGhlIGxpbmUKLWZyb20gc2luZ2xlIHRocmVhZCB0byBtdWx0aXBs
ZSB0aHJlYWRzLiBUaGUgZmlyc3QgdGltZSB5b3UgY3JlYXRlIGEgdGhyZWFkLCBhCi1tYW5hZ2Vy
IHRocmVhZCBpcyBjcmVhdGVkIGluIGFkZGl0aW9uLCBzbyB5b3UgZ2V0IDMsIG5vdCAyLCB0aHJl
YWRzLiBMYXRlciB3aGVuCi10aGUgdGhyZWFkIHlvdSBjcmVhdGUgam9pbnMgdGhlIG1haW4gdGhy
ZWFkLCB0aGUgdGhyZWFkIGNvdW50IGRlY3JlbWVudHMgYnkgMSwKLWJ1dCB0aGUgbWFuYWdlciB0
aHJlYWQgd2lsbCBuZXZlciBiZSBraWxsZWQsIHNvIHlvdSBzdGlsbCBoYXZlIDIgdGhyZWFkcywg
d2hpY2gKLW1lYW5zIHlvdSBjYW5ub3Qgc2FmZWx5IHJ1biBhIGRlYXRoIHRlc3QuCi0KLVRoZSBu
ZXcgTlBUTCB0aHJlYWQgbGlicmFyeSBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbSwg
YXMgaXQgZG9lc24ndAotY3JlYXRlIGEgbWFuYWdlciB0aHJlYWQuIEhvd2V2ZXIsIGlmIHlvdSBk
b24ndCBjb250cm9sIHdoaWNoIG1hY2hpbmUgeW91ciB0ZXN0Ci1ydW5zIG9uLCB5b3Ugc2hvdWxk
bid0IGRlcGVuZCBvbiB0aGlzLgotCi0jIyBXaHkgZG9lcyBnb29nbGV0ZXN0IHJlcXVpcmUgdGhl
IGVudGlyZSB0ZXN0IGNhc2UsIGluc3RlYWQgb2YgaW5kaXZpZHVhbCB0ZXN0cywgdG8gYmUgbmFt
ZWQgKkRlYXRoVGVzdCB3aGVuIGl0IHVzZXMgQVNTRVJUX0RFQVRIPwotCi1nb29nbGV0ZXN0IGRv
ZXMgbm90IGludGVybGVhdmUgdGVzdHMgZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNlcy4gVGhhdCBp
cywgaXQgcnVucwotYWxsIHRlc3RzIGluIG9uZSB0ZXN0IGNhc2UgZmlyc3QsIGFuZCB0aGVuIHJ1
bnMgYWxsIHRlc3RzIGluIHRoZSBuZXh0IHRlc3QgY2FzZSwKLWFuZCBzbyBvbi4gZ29vZ2xldGVz
dCBkb2VzIHRoaXMgYmVjYXVzZSBpdCBuZWVkcyB0byBzZXQgdXAgYSB0ZXN0IGNhc2UgYmVmb3Jl
Ci10aGUgZmlyc3QgdGVzdCBpbiBpdCBpcyBydW4sIGFuZCB0ZWFyIGl0IGRvd24gYWZ0ZXJ3b3Jk
cy4gU3BsaXR0aW5nIHVwIHRoZSB0ZXN0Ci1jYXNlIHdvdWxkIHJlcXVpcmUgbXVsdGlwbGUgc2V0
LXVwIGFuZCB0ZWFyLWRvd24gcHJvY2Vzc2VzLCB3aGljaCBpcyBpbmVmZmljaWVudAotYW5kIG1h
a2VzIHRoZSBzZW1hbnRpY3MgdW5jbGVhbi4KLQotSWYgd2Ugd2VyZSB0byBkZXRlcm1pbmUgdGhl
IG9yZGVyIG9mIHRlc3RzIGJhc2VkIG9uIHRlc3QgbmFtZSBpbnN0ZWFkIG9mIHRlc3QKLWNhc2Ug
bmFtZSwgdGhlbiB3ZSB3b3VsZCBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoZSBmb2xsb3dpbmcgc2l0
dWF0aW9uOgotCi1gYGBjKysKLVRFU1RfRihGb29UZXN0LCBBYmNEZWF0aFRlc3QpIHsgLi4uIH0K
LVRFU1RfRihGb29UZXN0LCBVdncpIHsgLi4uIH0KLQotVEVTVF9GKEJhclRlc3QsIERlZkRlYXRo
VGVzdCkgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIFh5eikgeyAuLi4gfQotYGBgCi0KLVNpbmNl
IGBGb29UZXN0LkFiY0RlYXRoVGVzdGAgbmVlZHMgdG8gcnVuIGJlZm9yZSBgQmFyVGVzdC5YeXpg
LCBhbmQgd2UgZG9uJ3QKLWludGVybGVhdmUgdGVzdHMgZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNl
cywgd2UgbmVlZCB0byBydW4gYWxsIHRlc3RzIGluIHRoZQotYEZvb1Rlc3RgIGNhc2UgYmVmb3Jl
IHJ1bm5pbmcgYW55IHRlc3QgaW4gdGhlIGBCYXJUZXN0YCBjYXNlLiBUaGlzIGNvbnRyYWRpY3Rz
Ci13aXRoIHRoZSByZXF1aXJlbWVudCB0byBydW4gYEJhclRlc3QuRGVmRGVhdGhUZXN0YCBiZWZv
cmUgYEZvb1Rlc3QuVXZ3YC4KLQotIyMgQnV0IEkgZG9uJ3QgbGlrZSBjYWxsaW5nIG15IGVudGly
ZSB0ZXN0IGNhc2UgXCpEZWF0aFRlc3Qgd2hlbiBpdCBjb250YWlucyBib3RoIGRlYXRoIHRlc3Rz
IGFuZCBub24tZGVhdGggdGVzdHMuIFdoYXQgZG8gSSBkbz8KLQotWW91IGRvbid0IGhhdmUgdG8s
IGJ1dCBpZiB5b3UgbGlrZSwgeW91IG1heSBzcGxpdCB1cCB0aGUgdGVzdCBjYXNlIGludG8KLWBG
b29UZXN0YCBhbmQgYEZvb0RlYXRoVGVzdGAsIHdoZXJlIHRoZSBuYW1lcyBtYWtlIGl0IGNsZWFy
IHRoYXQgdGhleSBhcmUKLXJlbGF0ZWQ6Ci0KLWBgYGMrKwotY2xhc3MgRm9vVGVzdCA6IHB1Ymxp
YyA6OnRlc3Rpbmc6OlRlc3QgeyAuLi4gfTsKLQotVEVTVF9GKEZvb1Rlc3QsIEFiYykgeyAuLi4g
fQotVEVTVF9GKEZvb1Rlc3QsIERlZikgeyAuLi4gfQotCi11c2luZyBGb29EZWF0aFRlc3QgPSBG
b29UZXN0OwotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBVdncpIHsgLi4uIEVYUEVDVF9ERUFUSCgu
Li4pIC4uLiB9Ci1URVNUX0YoRm9vRGVhdGhUZXN0LCBYeXopIHsgLi4uIEFTU0VSVF9ERUFUSCgu
Li4pIC4uLiB9Ci1gYGAKLQotIyMgZ29vZ2xldGVzdCBwcmludHMgdGhlIExPRyBtZXNzYWdlcyBp
biBhIGRlYXRoIHRlc3QncyBjaGlsZCBwcm9jZXNzIG9ubHkgd2hlbiB0aGUgdGVzdCBmYWlscy4g
SG93IGNhbiBJIHNlZSB0aGUgTE9HIG1lc3NhZ2VzIHdoZW4gdGhlIGRlYXRoIHRlc3Qgc3VjY2Vl
ZHM/Ci0KLVByaW50aW5nIHRoZSBMT0cgbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHRoZSBzdGF0ZW1l
bnQgaW5zaWRlIGBFWFBFQ1RfREVBVEgoKWAKLW1ha2VzIGl0IGhhcmRlciB0byBzZWFyY2ggZm9y
IHJlYWwgcHJvYmxlbXMgaW4gdGhlIHBhcmVudCdzIGxvZy4gVGhlcmVmb3JlLAotZ29vZ2xldGVz
dCBvbmx5IHByaW50cyB0aGVtIHdoZW4gdGhlIGRlYXRoIHRlc3QgaGFzIGZhaWxlZC4KLQotSWYg
eW91IHJlYWxseSBuZWVkIHRvIHNlZSBzdWNoIExPRyBtZXNzYWdlcywgYSB3b3JrYXJvdW5kIGlz
IHRvIHRlbXBvcmFyaWx5Ci1icmVhayB0aGUgZGVhdGggdGVzdCAoZS5nLiBieSBjaGFuZ2luZyB0
aGUgcmVnZXggcGF0dGVybiBpdCBpcyBleHBlY3RlZCB0bwotbWF0Y2gpLiBBZG1pdHRlZGx5LCB0
aGlzIGlzIGEgaGFjay4gV2UnbGwgY29uc2lkZXIgYSBtb3JlIHBlcm1hbmVudCBzb2x1dGlvbgot
YWZ0ZXIgdGhlIGZvcmstYW5kLWV4ZWMtc3R5bGUgZGVhdGggdGVzdHMgYXJlIGltcGxlbWVudGVk
LgotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICJubyBtYXRjaCBmb3IgJ29wZXJh
dG9yPDwnIiB3aGVuIEkgdXNlIGFuIGFzc2VydGlvbi4gV2hhdCBnaXZlcz8KLQotSWYgeW91IHVz
ZSBhIHVzZXItZGVmaW5lZCB0eXBlIGBGb29UeXBlYCBpbiBhbiBhc3NlcnRpb24sIHlvdSBtdXN0
IG1ha2Ugc3VyZQotdGhlcmUgaXMgYW4gYHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mLCBjb25zdCBGb29UeXBlJilgIGZ1bmN0aW9uCi1kZWZpbmVkIHN1Y2ggdGhhdCB3ZSBj
YW4gcHJpbnQgYSB2YWx1ZSBvZiBgRm9vVHlwZWAuCi0KLUluIGFkZGl0aW9uLCBpZiBgRm9vVHlw
ZWAgaXMgZGVjbGFyZWQgaW4gYSBuYW1lIHNwYWNlLCB0aGUgYDw8YCBvcGVyYXRvciBhbHNvCi1u
ZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSAqc2FtZSogbmFtZSBzcGFjZS4gU2VlIGdvL3RvdHcv
NDkgZm9yIGRldGFpbHMuCi0KLSMjIEhvdyBkbyBJIHN1cHByZXNzIHRoZSBtZW1vcnkgbGVhayBt
ZXNzYWdlcyBvbiBXaW5kb3dzPwotCi1TaW5jZSB0aGUgc3RhdGljYWxseSBpbml0aWFsaXplZCBn
b29nbGV0ZXN0IHNpbmdsZXRvbiByZXF1aXJlcyBhbGxvY2F0aW9ucyBvbgotdGhlIGhlYXAsIHRo
ZSBWaXN1YWwgQysrIG1lbW9yeSBsZWFrIGRldGVjdG9yIHdpbGwgcmVwb3J0IG1lbW9yeSBsZWFr
cyBhdCB0aGUKLWVuZCBvZiB0aGUgcHJvZ3JhbSBydW4uIFRoZSBlYXNpZXN0IHdheSB0byBhdm9p
ZCB0aGlzIGlzIHRvIHVzZSB0aGUKLWBfQ3J0TWVtQ2hlY2twb2ludGAgYW5kIGBfQ3J0TWVtRHVt
cEFsbE9iamVjdHNTaW5jZWAgY2FsbHMgdG8gbm90IHJlcG9ydCBhbnkKLXN0YXRpY2FsbHkgaW5p
dGlhbGl6ZWQgaGVhcCBvYmplY3RzLiBTZWUgTVNETiBmb3IgbW9yZSBkZXRhaWxzIGFuZCBhZGRp
dGlvbmFsCi1oZWFwIGNoZWNrL2RlYnVnIHJvdXRpbmVzLgotCi0KLSMjIEhvdyBjYW4gbXkgY29k
ZSBkZXRlY3QgaWYgaXQgaXMgcnVubmluZyBpbiBhIHRlc3Q/Ci0KLUlmIHlvdSB3cml0ZSBjb2Rl
IHRoYXQgc25pZmZzIHdoZXRoZXIgaXQncyBydW5uaW5nIGluIGEgdGVzdCBhbmQgZG9lcyBkaWZm
ZXJlbnQKLXRoaW5ncyBhY2NvcmRpbmdseSwgeW91IGFyZSBsZWFraW5nIHRlc3Qtb25seSBsb2dp
YyBpbnRvIHByb2R1Y3Rpb24gY29kZSBhbmQKLXRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvIGVuc3Vy
ZSB0aGF0IHRoZSB0ZXN0LW9ubHkgY29kZSBwYXRocyBhcmVuJ3QgcnVuIGJ5Ci1taXN0YWtlIGlu
IHByb2R1Y3Rpb24uIFN1Y2ggY2xldmVybmVzcyBhbHNvIGxlYWRzIHRvCi1bSGVpc2VuYnVnc10o
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSGVpc2VuYnVnKS4gVGhlcmVmb3JlIHdlIHN0
cm9uZ2x5Ci1hZHZpc2UgYWdhaW5zdCB0aGUgcHJhY3RpY2UsIGFuZCBnb29nbGV0ZXN0IGRvZXNu
J3QgcHJvdmlkZSBhIHdheSB0byBkbyBpdC4KLQotSW4gZ2VuZXJhbCwgdGhlIHJlY29tbWVuZGVk
IHdheSB0byBjYXVzZSB0aGUgY29kZSB0byBiZWhhdmUgZGlmZmVyZW50bHkgdW5kZXIKLXRlc3Qg
aXMgW0RlcGVuZGVuY3kgSW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9E
ZXBlbmRlbmN5X2luamVjdGlvbikuIFlvdSBjYW4gaW5qZWN0Ci1kaWZmZXJlbnQgZnVuY3Rpb25h
bGl0eSBmcm9tIHRoZSB0ZXN0IGFuZCBmcm9tIHRoZSBwcm9kdWN0aW9uIGNvZGUuIFNpbmNlIHlv
dXIKLXByb2R1Y3Rpb24gY29kZSBkb2Vzbid0IGxpbmsgaW4gdGhlIGZvci10ZXN0IGxvZ2ljIGF0
IGFsbCAodGhlCi1bYHRlc3Rvbmx5YF0oaHR0cHM6Ly9kb2NzLmJhemVsLmJ1aWxkL3ZlcnNpb25z
L21hc3Rlci9iZS9jb21tb24tZGVmaW5pdGlvbnMuaHRtbCNjb21tb24udGVzdG9ubHkpCi1hdHRy
aWJ1dGUgZm9yIEJVSUxEIHRhcmdldHMgaGVscHMgdG8gZW5zdXJlIHRoYXQpLCB0aGVyZSBpcyBu
byBkYW5nZXIgaW4KLWFjY2lkZW50YWxseSBydW5uaW5nIGl0LgotCi1Ib3dldmVyLCBpZiB5b3Ug
KnJlYWxseSosICpyZWFsbHkqLCAqcmVhbGx5KiBoYXZlIG5vIGNob2ljZSwgYW5kIGlmIHlvdSBm
b2xsb3cKLXRoZSBydWxlIG9mIGVuZGluZyB5b3VyIHRlc3QgcHJvZ3JhbSBuYW1lcyB3aXRoIGBf
dGVzdGAsIHlvdSBjYW4gdXNlIHRoZQotKmhvcnJpYmxlKiBoYWNrIG9mIHNuaWZmaW5nIHlvdXIg
ZXhlY3V0YWJsZSBuYW1lIChgYXJndlswXWAgaW4gYG1haW4oKWApIHRvIGtub3cKLXdoZXRoZXIg
dGhlIGNvZGUgaXMgdW5kZXIgdGVzdC4KLQotCi0jIyBIb3cgZG8gSSB0ZW1wb3JhcmlseSBkaXNh
YmxlIGEgdGVzdD8KLQotSWYgeW91IGhhdmUgYSBicm9rZW4gdGVzdCB0aGF0IHlvdSBjYW5ub3Qg
Zml4IHJpZ2h0IGF3YXksIHlvdSBjYW4gYWRkIHRoZQotRElTQUJMRURfIHByZWZpeCB0byBpdHMg
bmFtZS4gVGhpcyB3aWxsIGV4Y2x1ZGUgaXQgZnJvbSBleGVjdXRpb24uIFRoaXMgaXMKLWJldHRl
ciB0aGFuIGNvbW1lbnRpbmcgb3V0IHRoZSBjb2RlIG9yIHVzaW5nICNpZiAwLCBhcyBkaXNhYmxl
ZCB0ZXN0cyBhcmUgc3RpbGwKLWNvbXBpbGVkIChhbmQgdGh1cyB3b24ndCByb3QpLgotCi1UbyBp
bmNsdWRlIGRpc2FibGVkIHRlc3RzIGluIHRlc3QgZXhlY3V0aW9uLCBqdXN0IGludm9rZSB0aGUg
dGVzdCBwcm9ncmFtIHdpdGgKLXRoZSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZs
YWcuCi0KLSMjIElzIGl0IE9LIGlmIEkgaGF2ZSB0d28gc2VwYXJhdGUgYFRFU1QoRm9vLCBCYXIp
YCB0ZXN0IG1ldGhvZHMgZGVmaW5lZCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcz8KLQotWWVzLgot
Ci1UaGUgcnVsZSBpcyAqKmFsbCB0ZXN0IG1ldGhvZHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11
c3QgdXNlIHRoZSBzYW1lIGZpeHR1cmUKLWNsYXNzLioqIFRoaXMgbWVhbnMgdGhhdCB0aGUgZm9s
bG93aW5nIGlzICoqYWxsb3dlZCoqIGJlY2F1c2UgYm90aCB0ZXN0cyB1c2UgdGhlCi1zYW1lIGZp
eHR1cmUgY2xhc3MgKGA6OnRlc3Rpbmc6OlRlc3RgKS4KLQotYGBgYysrCi1uYW1lc3BhY2UgZm9v
IHsKLVRFU1QoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8v
IG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7Ci1URVNUKENvb2xUZXN0LCBEb1NvbWV0
aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19ICAvLyBuYW1lc3BhY2UgYmFyCi1gYGAKLQotSG93
ZXZlciwgdGhlIGZvbGxvd2luZyBjb2RlIGlzICoqbm90IGFsbG93ZWQqKiBhbmQgd2lsbCBwcm9k
dWNlIGEgcnVudGltZSBlcnJvcgotZnJvbSBnb29nbGV0ZXN0IGJlY2F1c2UgdGhlIHRlc3QgbWV0
aG9kcyBhcmUgdXNpbmcgZGlmZmVyZW50IHRlc3QgZml4dHVyZQotY2xhc3NlcyB3aXRoIHRoZSBz
YW1lIHRlc3QgY2FzZSBuYW1lLgotCi1gYGBjKysKLW5hbWVzcGFjZSBmb28gewotY2xhc3MgQ29v
bFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OyAgLy8gRml4dHVyZSBmb286OkNvb2xU
ZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0g
IC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7Ci1jbGFzcyBDb29sVGVzdCA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307ICAvLyBGaXh0dXJlOiBiYXI6OkNvb2xUZXN0Ci1URVNU
X0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVz
cGFjZSBiYXIKLWBgYApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9w
cmltZXIubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3ByaW1lci5tZApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZWE4ZDcxN2I4MzViY2JkMjNmODRjOWVhMDVmMTZh
ODc4YTVkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3ByaW1lci5tZAorKysgL2Rldi9udWxsCkBAIC0x
LDU2OSArMCwwIEBACi0jIEdvb2dsZXRlc3QgUHJpbWVyCi0KLQotIyMgSW50cm9kdWN0aW9uOiBX
aHkgZ29vZ2xldGVzdD8KLQotKmdvb2dsZXRlc3QqIGhlbHBzIHlvdSB3cml0ZSBiZXR0ZXIgQysr
IHRlc3RzLgotCi1nb29nbGV0ZXN0IGlzIGEgdGVzdGluZyBmcmFtZXdvcmsgZGV2ZWxvcGVkIGJ5
IHRoZSBUZXN0aW5nCi1UZWNobm9sb2d5IHRlYW0gd2l0aCBHb29nbGUncyBzcGVjaWZpYwotcmVx
dWlyZW1lbnRzIGFuZCBjb25zdHJhaW50cyBpbiBtaW5kLiBObyBtYXR0ZXIgd2hldGhlciB5b3Ug
d29yayBvbiBMaW51eCwKLVdpbmRvd3MsIG9yIGEgTWFjLCBpZiB5b3Ugd3JpdGUgQysrIGNvZGUs
IGdvb2dsZXRlc3QgY2FuIGhlbHAgeW91LiBBbmQgaXQKLXN1cHBvcnRzICphbnkqIGtpbmQgb2Yg
dGVzdHMsIG5vdCBqdXN0IHVuaXQgdGVzdHMuCi0KLVNvIHdoYXQgbWFrZXMgYSBnb29kIHRlc3Qs
IGFuZCBob3cgZG9lcyBnb29nbGV0ZXN0IGZpdCBpbj8gV2UgYmVsaWV2ZToKLQotMS4gIFRlc3Rz
IHNob3VsZCBiZSAqaW5kZXBlbmRlbnQqIGFuZCAqcmVwZWF0YWJsZSouIEl0J3MgYSBwYWluIHRv
IGRlYnVnIGEgdGVzdAotICAgIHRoYXQgc3VjY2VlZHMgb3IgZmFpbHMgYXMgYSByZXN1bHQgb2Yg
b3RoZXIgdGVzdHMuIGdvb2dsZXRlc3QgaXNvbGF0ZXMgdGhlCi0gICAgdGVzdHMgYnkgcnVubmlu
ZyBlYWNoIG9mIHRoZW0gb24gYSBkaWZmZXJlbnQgb2JqZWN0LiBXaGVuIGEgdGVzdCBmYWlscywK
LSAgICBnb29nbGV0ZXN0IGFsbG93cyB5b3UgdG8gcnVuIGl0IGluIGlzb2xhdGlvbiBmb3IgcXVp
Y2sgZGVidWdnaW5nLgotMS4gIFRlc3RzIHNob3VsZCBiZSB3ZWxsICpvcmdhbml6ZWQqIGFuZCBy
ZWZsZWN0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHRlc3RlZAotICAgIGNvZGUuIGdvb2dsZXRlc3Qg
Z3JvdXBzIHJlbGF0ZWQgdGVzdHMgaW50byB0ZXN0IGNhc2VzIHRoYXQgY2FuIHNoYXJlIGRhdGEK
LSAgICBhbmQgc3Vicm91dGluZXMuIFRoaXMgY29tbW9uIHBhdHRlcm4gaXMgZWFzeSB0byByZWNv
Z25pemUgYW5kIG1ha2VzIHRlc3RzCi0gICAgZWFzeSB0byBtYWludGFpbi4gU3VjaCBjb25zaXN0
ZW5jeSBpcyBlc3BlY2lhbGx5IGhlbHBmdWwgd2hlbiBwZW9wbGUgc3dpdGNoCi0gICAgcHJvamVj
dHMgYW5kIHN0YXJ0IHRvIHdvcmsgb24gYSBuZXcgY29kZSBiYXNlLgotMS4gIFRlc3RzIHNob3Vs
ZCBiZSAqcG9ydGFibGUqIGFuZCAqcmV1c2FibGUqLiBHb29nbGUgaGFzIGEgbG90IG9mIGNvZGUg
dGhhdCBpcwotICAgIHBsYXRmb3JtLW5ldXRyYWwsIGl0cyB0ZXN0cyBzaG91bGQgYWxzbyBiZSBw
bGF0Zm9ybS1uZXV0cmFsLiBnb29nbGV0ZXN0Ci0gICAgd29ya3Mgb24gZGlmZmVyZW50IE9TZXMs
IHdpdGggZGlmZmVyZW50IGNvbXBpbGVycyAoZ2NjLCBpY2MsIGFuZCBNU1ZDKSwgd2l0aAotICAg
IG9yIHdpdGhvdXQgZXhjZXB0aW9ucywgc28gZ29vZ2xldGVzdCB0ZXN0cyBjYW4gZWFzaWx5IHdv
cmsgd2l0aCBhIHZhcmlldHkgb2YKLSAgICBjb25maWd1cmF0aW9ucy4KLTEuICBXaGVuIHRlc3Rz
IGZhaWwsIHRoZXkgc2hvdWxkIHByb3ZpZGUgYXMgbXVjaCAqaW5mb3JtYXRpb24qIGFib3V0IHRo
ZSBwcm9ibGVtCi0gICAgYXMgcG9zc2libGUuIGdvb2dsZXRlc3QgZG9lc24ndCBzdG9wIGF0IHRo
ZSBmaXJzdCB0ZXN0IGZhaWx1cmUuIEluc3RlYWQsIGl0Ci0gICAgb25seSBzdG9wcyB0aGUgY3Vy
cmVudCB0ZXN0IGFuZCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dC4gWW91IGNhbiBhbHNvIHNldCB1
cAotICAgIHRlc3RzIHRoYXQgcmVwb3J0IG5vbi1mYXRhbCBmYWlsdXJlcyBhZnRlciB3aGljaCB0
aGUgY3VycmVudCB0ZXN0IGNvbnRpbnVlcy4KLSAgICBUaHVzLCB5b3UgY2FuIGRldGVjdCBhbmQg
Zml4IG11bHRpcGxlIGJ1Z3MgaW4gYSBzaW5nbGUgcnVuLWVkaXQtY29tcGlsZQotICAgIGN5Y2xl
LgotMS4gIFRoZSB0ZXN0aW5nIGZyYW1ld29yayBzaG91bGQgbGliZXJhdGUgdGVzdCB3cml0ZXJz
IGZyb20gaG91c2VrZWVwaW5nIGNob3JlcwotICAgIGFuZCBsZXQgdGhlbSBmb2N1cyBvbiB0aGUg
dGVzdCAqY29udGVudCouIGdvb2dsZXRlc3QgYXV0b21hdGljYWxseSBrZWVwcwotICAgIHRyYWNr
IG9mIGFsbCB0ZXN0cyBkZWZpbmVkLCBhbmQgZG9lc24ndCByZXF1aXJlIHRoZSB1c2VyIHRvIGVu
dW1lcmF0ZSB0aGVtCi0gICAgaW4gb3JkZXIgdG8gcnVuIHRoZW0uCi0xLiAgVGVzdHMgc2hvdWxk
IGJlICpmYXN0Ki4gV2l0aCBnb29nbGV0ZXN0LCB5b3UgY2FuIHJldXNlIHNoYXJlZCByZXNvdXJj
ZXMKLSAgICBhY3Jvc3MgdGVzdHMgYW5kIHBheSBmb3IgdGhlIHNldC11cC90ZWFyLWRvd24gb25s
eSBvbmNlLCB3aXRob3V0IG1ha2luZwotICAgIHRlc3RzIGRlcGVuZCBvbiBlYWNoIG90aGVyLgot
Ci1TaW5jZSBnb29nbGV0ZXN0IGlzIGJhc2VkIG9uIHRoZSBwb3B1bGFyIHhVbml0IGFyY2hpdGVj
dHVyZSwgeW91J2xsIGZlZWwgcmlnaHQKLWF0IGhvbWUgaWYgeW91J3ZlIHVzZWQgSlVuaXQgb3Ig
UHlVbml0IGJlZm9yZS4gSWYgbm90LCBpdCB3aWxsIHRha2UgeW91IGFib3V0IDEwCi1taW51dGVz
IHRvIGxlYXJuIHRoZSBiYXNpY3MgYW5kIGdldCBzdGFydGVkLiBTbyBsZXQncyBnbyEKLQotIyMg
QmV3YXJlIG9mIHRoZSBub21lbmNsYXR1cmUKLQotX05vdGU6XyBUaGVyZSBtaWdodCBiZSBzb21l
IGNvbmZ1c2lvbiBvZiBpZGVhIGR1ZSB0byBkaWZmZXJlbnQKLWRlZmluaXRpb25zIG9mIHRoZSB0
ZXJtcyBfVGVzdF8sIF9UZXN0IENhc2VfIGFuZCBfVGVzdCBTdWl0ZV8sIHNvIGJld2FyZQotb2Yg
bWlzdW5kZXJzdGFuZGluZyB0aGVzZS4KLQotSGlzdG9yaWNhbGx5LCBnb29nbGV0ZXN0IHN0YXJ0
ZWQgdG8gdXNlIHRoZSB0ZXJtIF9UZXN0IENhc2VfIGZvciBncm91cGluZwotcmVsYXRlZCB0ZXN0
cywgd2hlcmVhcyBjdXJyZW50IHB1YmxpY2F0aW9ucyBpbmNsdWRpbmcgdGhlIEludGVybmF0aW9u
YWwgU29mdHdhcmUKLVRlc3RpbmcgUXVhbGlmaWNhdGlvbnMgQm9hcmQgKFtJU1RRQl0oaHR0cDov
L3d3dy5pc3RxYi5vcmcvKSkgYW5kIHZhcmlvdXMKLXRleHRib29rcyBvbiBTb2Z0d2FyZSBRdWFs
aXR5IHVzZSB0aGUgdGVybSBfW1Rlc3QKLVN1aXRlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3Jn
L3NlYXJjaC90ZXN0JTIwc3VpdGUpXyBmb3IgdGhpcy4KLQotVGhlIHJlbGF0ZWQgdGVybSBfVGVz
dF8sIGFzIGl0IGlzIHVzZWQgaW4gdGhlIGdvb2dsZXRlc3QsIGlzIGNvcnJlc3BvbmRpbmcgdG8K
LXRoZSB0ZXJtIF9bVGVzdCBDYXNlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90
ZXN0JTIwY2FzZSlfIG9mIElTVFFCCi1hbmQgb3RoZXJzLgotCi1UaGUgdGVybSBfVGVzdF8gaXMg
Y29tbW9ubHkgb2YgYnJvYWQgZW5vdWdoIHNlbnNlLCBpbmNsdWRpbmcgSVNUUUIncwotZGVmaW5p
dGlvbiBvZiBfVGVzdCBDYXNlXywgc28gaXQncyBub3QgbXVjaCBvZiBhIHByb2JsZW0gaGVyZS4g
QnV0IHRoZQotdGVybSBfVGVzdCBDYXNlXyBhcyB1c2VkIGluIEdvb2dsZSBUZXN0IGlzIG9mIGNv
bnRyYWRpY3Rvcnkgc2Vuc2UgYW5kIHRodXMgY29uZnVzaW5nLgotCi1VbmZvcnR1bmF0ZWx5IHJl
cGxhY2luZyB0aGUgdGVybSBfVGVzdCBDYXNlXyBieSBfVGVzdCBTdWl0ZV8gdGhyb3VnaG91dCB0
aGUKLWdvb2dsZXRlc3QgaXMgbm90IGVhc3kgd2l0aG91dCBicmVha2luZyBkZXBlbmRlbnQgcHJv
amVjdHMsIGFzIGBUZXN0Q2FzZWAgaXMKLXBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYXQgdmFyaW91
cyBwbGFjZXMuCi0KLVNvIGZvciB0aGUgdGltZSBiZWluZywgcGxlYXNlIGJlIGF3YXJlIG9mIHRo
ZSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2YKLXRoZSB0ZXJtczoKLQotTWVhbmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgZ29vZ2xldGVzdCBUZXJtICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IFtJU1RRQl0oaHR0cDovL3d3dy5pc3RxYi5vcmcvKSBUZXJtCi06LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUV4ZXJj
aXNlIGEgcGFydGljdWxhciBwcm9ncmFtIHBhdGggd2l0aCBzcGVjaWZpYyBpbnB1dCB2YWx1ZXMg
YW5kIHZlcmlmeSB0aGUgcmVzdWx0cyB8IFtURVNUKCldKCNzaW1wbGUtdGVzdHMpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCBbVGVzdCBDYXNlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3Jn
L3NlYXJjaC90ZXN0JTIwY2FzZSkKLUEgc2V0IG9mIHNldmVyYWwgdGVzdHMgcmVsYXRlZCB0byBv
bmUgY29tcG9uZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtUZXN0
Q2FzZV0oI2Jhc2ljLWNvbmNlcHRzKSB8IFtUZXN0U3VpdGVdKGh0dHA6Ly9nbG9zc2FyeS5pc3Rx
Yi5vcmcvc2VhcmNoL3Rlc3QlMjBzdWl0ZSkKLQotIyMgQmFzaWMgQ29uY2VwdHMKLQotV2hlbiB1
c2luZyBnb29nbGV0ZXN0LCB5b3Ugc3RhcnQgYnkgd3JpdGluZyAqYXNzZXJ0aW9ucyosIHdoaWNo
IGFyZSBzdGF0ZW1lbnRzCi10aGF0IGNoZWNrIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgdHJ1ZS4g
QW4gYXNzZXJ0aW9uJ3MgcmVzdWx0IGNhbiBiZSAqc3VjY2VzcyosCi0qbm9uZmF0YWwgZmFpbHVy
ZSosIG9yICpmYXRhbCBmYWlsdXJlKi4gSWYgYSBmYXRhbCBmYWlsdXJlIG9jY3VycywgaXQgYWJv
cnRzIHRoZQotY3VycmVudCBmdW5jdGlvbjsgb3RoZXJ3aXNlIHRoZSBwcm9ncmFtIGNvbnRpbnVl
cyBub3JtYWxseS4KLQotKlRlc3RzKiB1c2UgYXNzZXJ0aW9ucyB0byB2ZXJpZnkgdGhlIHRlc3Rl
ZCBjb2RlJ3MgYmVoYXZpb3IuIElmIGEgdGVzdCBjcmFzaGVzCi1vciBoYXMgYSBmYWlsZWQgYXNz
ZXJ0aW9uLCB0aGVuIGl0ICpmYWlscyo7IG90aGVyd2lzZSBpdCAqc3VjY2VlZHMqLgotCi1BICp0
ZXN0IGNhc2UqIGNvbnRhaW5zIG9uZSBvciBtYW55IHRlc3RzLiBZb3Ugc2hvdWxkIGdyb3VwIHlv
dXIgdGVzdHMgaW50byB0ZXN0Ci1jYXNlcyB0aGF0IHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZiB0
aGUgdGVzdGVkIGNvZGUuIFdoZW4gbXVsdGlwbGUgdGVzdHMgaW4gYQotdGVzdCBjYXNlIG5lZWQg
dG8gc2hhcmUgY29tbW9uIG9iamVjdHMgYW5kIHN1YnJvdXRpbmVzLCB5b3UgY2FuIHB1dCB0aGVt
IGludG8gYQotKnRlc3QgZml4dHVyZSogY2xhc3MuCi0KLUEgKnRlc3QgcHJvZ3JhbSogY2FuIGNv
bnRhaW4gbXVsdGlwbGUgdGVzdCBjYXNlcy4KLQotV2UnbGwgbm93IGV4cGxhaW4gaG93IHRvIHdy
aXRlIGEgdGVzdCBwcm9ncmFtLCBzdGFydGluZyBhdCB0aGUgaW5kaXZpZHVhbAotYXNzZXJ0aW9u
IGxldmVsIGFuZCBidWlsZGluZyB1cCB0byB0ZXN0cyBhbmQgdGVzdCBjYXNlcy4KLQotIyMgQXNz
ZXJ0aW9ucwotCi1nb29nbGV0ZXN0IGFzc2VydGlvbnMgYXJlIG1hY3JvcyB0aGF0IHJlc2VtYmxl
IGZ1bmN0aW9uIGNhbGxzLiBZb3UgdGVzdCBhIGNsYXNzCi1vciBmdW5jdGlvbiBieSBtYWtpbmcg
YXNzZXJ0aW9ucyBhYm91dCBpdHMgYmVoYXZpb3IuIFdoZW4gYW4gYXNzZXJ0aW9uIGZhaWxzLAot
Z29vZ2xldGVzdCBwcmludHMgdGhlIGFzc2VydGlvbidzIHNvdXJjZSBmaWxlIGFuZCBsaW5lIG51
bWJlciBsb2NhdGlvbiwgYWxvbmcKLXdpdGggYSBmYWlsdXJlIG1lc3NhZ2UuIFlvdSBtYXkgYWxz
byBzdXBwbHkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIHdoaWNoIHdpbGwKLWJlIGFwcGVuZGVk
IHRvIGdvb2dsZXRlc3QncyBtZXNzYWdlLgotCi1UaGUgYXNzZXJ0aW9ucyBjb21lIGluIHBhaXJz
IHRoYXQgdGVzdCB0aGUgc2FtZSB0aGluZyBidXQgaGF2ZSBkaWZmZXJlbnQgZWZmZWN0cwotb24g
dGhlIGN1cnJlbnQgZnVuY3Rpb24uIGBBU1NFUlRfKmAgdmVyc2lvbnMgZ2VuZXJhdGUgZmF0YWwg
ZmFpbHVyZXMgd2hlbiB0aGV5Ci1mYWlsLCBhbmQgKiphYm9ydCB0aGUgY3VycmVudCBmdW5jdGlv
bioqLiBgRVhQRUNUXypgIHZlcnNpb25zIGdlbmVyYXRlIG5vbmZhdGFsCi1mYWlsdXJlcywgd2hp
Y2ggZG9uJ3QgYWJvcnQgdGhlIGN1cnJlbnQgZnVuY3Rpb24uIFVzdWFsbHkgYEVYUEVDVF8qYCBh
cmUKLXByZWZlcnJlZCwgYXMgdGhleSBhbGxvdyBtb3JlIHRoYW4gb25lIGZhaWx1cmUgdG8gYmUg
cmVwb3J0ZWQgaW4gYSB0ZXN0LgotSG93ZXZlciwgeW91IHNob3VsZCB1c2UgYEFTU0VSVF8qYCBp
ZiBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgd2hlbiB0aGUKLWFzc2VydGlvbiBp
biBxdWVzdGlvbiBmYWlscy4KLQotU2luY2UgYSBmYWlsZWQgYEFTU0VSVF8qYCByZXR1cm5zIGZy
b20gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaW1tZWRpYXRlbHksCi1wb3NzaWJseSBza2lwcGluZyBj
bGVhbi11cCBjb2RlIHRoYXQgY29tZXMgYWZ0ZXIgaXQsIGl0IG1heSBjYXVzZSBhIHNwYWNlIGxl
YWsuCi1EZXBlbmRpbmcgb24gdGhlIG5hdHVyZSBvZiB0aGUgbGVhaywgaXQgbWF5IG9yIG1heSBu
b3QgYmUgd29ydGggZml4aW5nIC0gc28ga2VlcAotdGhpcyBpbiBtaW5kIGlmIHlvdSBnZXQgYSBo
ZWFwIGNoZWNrZXIgZXJyb3IgaW4gYWRkaXRpb24gdG8gYXNzZXJ0aW9uIGVycm9ycy4KLQotVG8g
cHJvdmlkZSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2UsIHNpbXBseSBzdHJlYW0gaXQgaW50byB0
aGUgbWFjcm8gdXNpbmcgdGhlCi1gPDxgIG9wZXJhdG9yLCBvciBhIHNlcXVlbmNlIG9mIHN1Y2gg
b3BlcmF0b3JzLiBBbiBleGFtcGxlOgotCi1gYGBjKysKLUFTU0VSVF9FUSh4LnNpemUoKSwgeS5z
aXplKCkpIDw8ICJWZWN0b3JzIHggYW5kIHkgYXJlIG9mIHVuZXF1YWwgbGVuZ3RoIjsKLQotZm9y
IChpbnQgaSA9IDA7IGkgPCB4LnNpemUoKTsgKytpKSB7Ci0gIEVYUEVDVF9FUSh4W2ldLCB5W2ld
KSA8PCAiVmVjdG9ycyB4IGFuZCB5IGRpZmZlciBhdCBpbmRleCAiIDw8IGk7Ci19Ci1gYGAKLQot
QW55dGhpbmcgdGhhdCBjYW4gYmUgc3RyZWFtZWQgdG8gYW4gYG9zdHJlYW1gIGNhbiBiZSBzdHJl
YW1lZCB0byBhbiBhc3NlcnRpb24KLW1hY3JvLS1pbiBwYXJ0aWN1bGFyLCBDIHN0cmluZ3MgYW5k
IGBzdHJpbmdgIG9iamVjdHMuIElmIGEgd2lkZSBzdHJpbmcKLShgd2NoYXJfdCpgLCBgVENIQVIq
YCBpbiBgVU5JQ09ERWAgbW9kZSBvbiBXaW5kb3dzLCBvciBgc3RkOjp3c3RyaW5nYCkgaXMKLXN0
cmVhbWVkIHRvIGFuIGFzc2VydGlvbiwgaXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIFVURi04IHdo
ZW4gcHJpbnRlZC4KLQotIyMjIEJhc2ljIEFzc2VydGlvbnMKLQotVGhlc2UgYXNzZXJ0aW9ucyBk
byBiYXNpYyB0cnVlL2ZhbHNlIGNvbmRpdGlvbiB0ZXN0aW5nLgotCi1GYXRhbCBhc3NlcnRpb24g
ICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgIHwgVmVyaWZpZXMKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0t
LS0tLS0tLS0tLS0tLS0tLQotYEFTU0VSVF9UUlVFKGNvbmRpdGlvbik7YCAgfCBgRVhQRUNUX1RS
VUUoY29uZGl0aW9uKTtgICB8IGBjb25kaXRpb25gIGlzIHRydWUKLWBBU1NFUlRfRkFMU0UoY29u
ZGl0aW9uKTtgIHwgYEVYUEVDVF9GQUxTRShjb25kaXRpb24pO2AgfCBgY29uZGl0aW9uYCBpcyBm
YWxzZQotCi1SZW1lbWJlciwgd2hlbiB0aGV5IGZhaWwsIGBBU1NFUlRfKmAgeWllbGRzIGEgZmF0
YWwgZmFpbHVyZSBhbmQgcmV0dXJucyBmcm9tIHRoZQotY3VycmVudCBmdW5jdGlvbiwgd2hpbGUg
YEVYUEVDVF8qYCB5aWVsZHMgYSBub25mYXRhbCBmYWlsdXJlLCBhbGxvd2luZyB0aGUKLWZ1bmN0
aW9uIHRvIGNvbnRpbnVlIHJ1bm5pbmcuIEluIGVpdGhlciBjYXNlLCBhbiBhc3NlcnRpb24gZmFp
bHVyZSBtZWFucyBpdHMKLWNvbnRhaW5pbmcgdGVzdCBmYWlscy4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEJpbmFyeSBDb21wYXJpc29uCi0KLVRoaXMg
c2VjdGlvbiBkZXNjcmliZXMgYXNzZXJ0aW9ucyB0aGF0IGNvbXBhcmUgdHdvIHZhbHVlcy4KLQot
RmF0YWwgYXNzZXJ0aW9uICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgIHwgVmVy
aWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSB8IC0tLS0tLS0tLS0tLS0tCi1gQVNTRVJUX0VRKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0VR
KHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA9PSB2YWwyYAotYEFTU0VSVF9ORSh2YWwxLCB2YWwyKTtg
IHwgYEVYUEVDVF9ORSh2YWwxLCB2YWwyKTtgIHwgYHZhbDEgIT0gdmFsMmAKLWBBU1NFUlRfTFQo
dmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfTFQodmFsMSwgdmFsMik7YCB8IGB2YWwxIDwgdmFsMmAK
LWBBU1NFUlRfTEUodmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfTEUodmFsMSwgdmFsMik7YCB8IGB2
YWwxIDw9IHZhbDJgCi1gQVNTRVJUX0dUKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0dUKHZhbDEs
IHZhbDIpO2AgfCBgdmFsMSA+IHZhbDJgCi1gQVNTRVJUX0dFKHZhbDEsIHZhbDIpO2AgfCBgRVhQ
RUNUX0dFKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA+PSB2YWwyYAotCi1WYWx1ZSBhcmd1bWVudHMg
bXVzdCBiZSBjb21wYXJhYmxlIGJ5IHRoZSBhc3NlcnRpb24ncyBjb21wYXJpc29uIG9wZXJhdG9y
IG9yCi15b3UnbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IuIFdlIHVzZWQgdG8gcmVxdWlyZSB0aGUg
YXJndW1lbnRzIHRvIHN1cHBvcnQgdGhlCi1gPDxgIG9wZXJhdG9yIGZvciBzdHJlYW1pbmcgdG8g
YW4gYG9zdHJlYW1gLCBidXQgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5LiBJZgotYDw8YCBpcyBz
dXBwb3J0ZWQsIGl0IHdpbGwgYmUgY2FsbGVkIHRvIHByaW50IHRoZSBhcmd1bWVudHMgd2hlbiB0
aGUgYXNzZXJ0aW9uCi1mYWlsczsgb3RoZXJ3aXNlIGdvb2dsZXRlc3Qgd2lsbCBhdHRlbXB0IHRv
IHByaW50IHRoZW0gaW4gdGhlIGJlc3Qgd2F5IGl0IGNhbi4KLUZvciBtb3JlIGRldGFpbHMgYW5k
IGhvdyB0byBjdXN0b21pemUgdGhlIHByaW50aW5nIG9mIHRoZSBhcmd1bWVudHMsIHNlZQotZ01v
Y2sgW3JlY2lwZV0oLi4vLi4vZ29vZ2xlbW9jay9kb2NzL0Nvb2tCb29rLm1kI3RlYWNoaW5nLWdv
b2dsZS1tb2NrLWhvdy10by1wcmludC15b3VyLXZhbHVlcykuKS4KLQotVGhlc2UgYXNzZXJ0aW9u
cyBjYW4gd29yayB3aXRoIGEgdXNlci1kZWZpbmVkIHR5cGUsIGJ1dCBvbmx5IGlmIHlvdSBkZWZp
bmUgdGhlCi1jb3JyZXNwb25kaW5nIGNvbXBhcmlzb24gb3BlcmF0b3IgKGUuZy4gYD09YCwgYDxg
LCBldGMpLiBTaW5jZSB0aGlzIGlzCi1kaXNjb3VyYWdlZCBieSB0aGUgR29vZ2xlIFtDKysgU3R5
bGUKLUd1aWRlXShodHRwczovL2dvb2dsZS5naXRodWIuaW8vc3R5bGVndWlkZS9jcHBndWlkZS5o
dG1sI09wZXJhdG9yX092ZXJsb2FkaW5nKSwKLXlvdSBtYXkgbmVlZCB0byB1c2UgYEFTU0VSVF9U
UlVFKClgIG9yIGBFWFBFQ1RfVFJVRSgpYCB0byBhc3NlcnQgdGhlIGVxdWFsaXR5IG9mCi10d28g
b2JqZWN0cyBvZiBhIHVzZXItZGVmaW5lZCB0eXBlLgotCi1Ib3dldmVyLCB3aGVuIHBvc3NpYmxl
LCBgQVNTRVJUX0VRKGFjdHVhbCwgZXhwZWN0ZWQpYCBpcyBwcmVmZXJyZWQgdG8KLWBBU1NFUlRf
VFJVRShhY3R1YWwgPT0gZXhwZWN0ZWQpYCwgc2luY2UgaXQgdGVsbHMgeW91IGBhY3R1YWxgIGFu
ZCBgZXhwZWN0ZWRgJ3MKLXZhbHVlcyBvbiBmYWlsdXJlLgotCi1Bcmd1bWVudHMgYXJlIGFsd2F5
cyBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiBUaGVyZWZvcmUsIGl0J3MgT0sgZm9yIHRoZQotYXJn
dW1lbnRzIHRvIGhhdmUgc2lkZSBlZmZlY3RzLiBIb3dldmVyLCBhcyB3aXRoIGFueSBvcmRpbmFy
eSBDL0MrKyBmdW5jdGlvbiwKLXRoZSBhcmd1bWVudHMnIGV2YWx1YXRpb24gb3JkZXIgaXMgdW5k
ZWZpbmVkIChpLmUuIHRoZSBjb21waWxlciBpcyBmcmVlIHRvCi1jaG9vc2UgYW55IG9yZGVyKSBh
bmQgeW91ciBjb2RlIHNob3VsZCBub3QgZGVwZW5kIG9uIGFueSBwYXJ0aWN1bGFyIGFyZ3VtZW50
Ci1ldmFsdWF0aW9uIG9yZGVyLgotCi1gQVNTRVJUX0VRKClgIGRvZXMgcG9pbnRlciBlcXVhbGl0
eSBvbiBwb2ludGVycy4gSWYgdXNlZCBvbiB0d28gQyBzdHJpbmdzLCBpdAotdGVzdHMgaWYgdGhl
eSBhcmUgaW4gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uLCBub3QgaWYgdGhleSBoYXZlIHRoZSBz
YW1lIHZhbHVlLgotVGhlcmVmb3JlLCBpZiB5b3Ugd2FudCB0byBjb21wYXJlIEMgc3RyaW5ncyAo
ZS5nLiBgY29uc3QgY2hhcipgKSBieSB2YWx1ZSwgdXNlCi1gQVNTRVJUX1NUUkVRKClgLCB3aGlj
aCB3aWxsIGJlIGRlc2NyaWJlZCBsYXRlciBvbi4gSW4gcGFydGljdWxhciwgdG8gYXNzZXJ0Ci10
aGF0IGEgQyBzdHJpbmcgaXMgYE5VTExgLCB1c2UgYEFTU0VSVF9TVFJFUShjX3N0cmluZywgTlVM
TClgLiBDb25zaWRlciB1c2UKLWBBU1NFUlRfRVEoY19zdHJpbmcsIG51bGxwdHIpYCBpZiBjKysx
MSBpcyBzdXBwb3J0ZWQuIFRvIGNvbXBhcmUgdHdvIGBzdHJpbmdgCi1vYmplY3RzLCB5b3Ugc2hv
dWxkIHVzZSBgQVNTRVJUX0VRYC4KLQotV2hlbiBkb2luZyBwb2ludGVyIGNvbXBhcmlzb25zIHVz
ZSBgKl9FUShwdHIsIG51bGxwdHIpYCBhbmQgYCpfTkUocHRyLCBudWxscHRyKWAKLWluc3RlYWQg
b2YgYCpfRVEocHRyLCBOVUxMKWAgYW5kIGAqX05FKHB0ciwgTlVMTClgLiBUaGlzIGlzIGJlY2F1
c2UgYG51bGxwdHJgIGlzCi10eXBlZCB3aGlsZSBgTlVMTGAgaXMgbm90LiBTZWUgW0ZBUV0oZmFx
Lm1kI3doeS1kb2VzLWdvb2dsZS10ZXN0LXN1cHBvcnQtZXhwZWN0X2VxbnVsbC1wdHItYW5kLWFz
c2VydF9lcW51bGwtcHRyLWJ1dC1ub3QtZXhwZWN0X25lbnVsbC1wdHItYW5kLWFzc2VydF9uZW51
bGwtcHRyKQotZm9yIG1vcmUgZGV0YWlscy4KLQotSWYgeW91J3JlIHdvcmtpbmcgd2l0aCBmbG9h
dGluZyBwb2ludCBudW1iZXJzLCB5b3UgbWF5IHdhbnQgdG8gdXNlIHRoZSBmbG9hdGluZwotcG9p
bnQgdmFyaWF0aW9ucyBvZiBzb21lIG9mIHRoZXNlIG1hY3JvcyBpbiBvcmRlciB0byBhdm9pZCBw
cm9ibGVtcyBjYXVzZWQgYnkKLXJvdW5kaW5nLiBTZWUgW0FkdmFuY2VkIGdvb2dsZXRlc3QgVG9w
aWNzXShhZHZhbmNlZC5tZCkgZm9yIGRldGFpbHMuCi0KLU1hY3JvcyBpbiB0aGlzIHNlY3Rpb24g
d29yayB3aXRoIGJvdGggbmFycm93IGFuZCB3aWRlIHN0cmluZyBvYmplY3RzIChgc3RyaW5nYAot
YW5kIGB3c3RyaW5nYCkuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMu
Ci0KLSoqSGlzdG9yaWNhbCBub3RlKio6IEJlZm9yZSBGZWJydWFyeSAyMDE2IGAqX0VRYCBoYWQg
YSBjb252ZW50aW9uIG9mIGNhbGxpbmcgaXQKLWFzIGBBU1NFUlRfRVEoZXhwZWN0ZWQsIGFjdHVh
bClgLCBzbyBsb3RzIG9mIGV4aXN0aW5nIGNvZGUgdXNlcyB0aGlzIG9yZGVyLiBOb3cKLWAqX0VR
YCB0cmVhdHMgYm90aCBwYXJhbWV0ZXJzIGluIHRoZSBzYW1lIHdheS4KLQotIyMjIFN0cmluZyBD
b21wYXJpc29uCi0KLVRoZSBhc3NlcnRpb25zIGluIHRoaXMgZ3JvdXAgY29tcGFyZSB0d28gKipD
IHN0cmluZ3MqKi4gSWYgeW91IHdhbnQgdG8gY29tcGFyZQotdHdvIGBzdHJpbmdgIG9iamVjdHMs
IHVzZSBgRVhQRUNUX0VRYCwgYEVYUEVDVF9ORWAsIGFuZCBldGMgaW5zdGVhZC4KLQotfCBGYXRh
bCBhc3NlcnRpb24gICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAg
ICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NFUlRfU1RSRVEoc3RyMSwgc3RyMik7YCAg
ICAgfCBgRVhQRUNUX1NUUkVRKHN0cjEsIHN0cjIpO2AgICAgIHwgdGhlIHR3byBDIHN0cmluZ3Mg
aGF2ZSB0aGUgc2FtZSBjb250ZW50ICAgICAgICAgICAgICAgICAgfAotfCBgQVNTRVJUX1NUUk5F
KHN0cjEsIHN0cjIpO2AgICAgIHwgYEVYUEVDVF9TVFJORShzdHIxLCBzdHIyKTtgICAgICB8IHRo
ZSB0d28gQyBzdHJpbmdzIGhhdmUgZGlmZmVyZW50IGNvbnRlbnRzICAgICAgICAgICAgICAgIHwK
LXwgYEFTU0VSVF9TVFJDQVNFRVEoc3RyMSwgc3RyMik7YCB8IGBFWFBFQ1RfU1RSQ0FTRUVRKHN0
cjEsIHN0cjIpO2AgfCB0aGUgdHdvIEMgc3RyaW5ncyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQsIGln
bm9yaW5nIGNhc2UgICB8Ci18IGBBU1NFUlRfU1RSQ0FTRU5FKHN0cjEsIHN0cjIpO2AgfCBgRVhQ
RUNUX1NUUkNBU0VORShzdHIxLCBzdHIyKTtgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSBkaWZm
ZXJlbnQgY29udGVudHMsIGlnbm9yaW5nIGNhc2UgfAotCi1Ob3RlIHRoYXQgIkNBU0UiIGluIGFu
IGFzc2VydGlvbiBuYW1lIG1lYW5zIHRoYXQgY2FzZSBpcyBpZ25vcmVkLiBBIGBOVUxMYAotcG9p
bnRlciBhbmQgYW4gZW1wdHkgc3RyaW5nIGFyZSBjb25zaWRlcmVkICpkaWZmZXJlbnQqLgotCi1g
KlNUUkVRKmAgYW5kIGAqU1RSTkUqYCBhbHNvIGFjY2VwdCB3aWRlIEMgc3RyaW5ncyAoYHdjaGFy
X3QqYCkuIElmIGEgY29tcGFyaXNvbgotb2YgdHdvIHdpZGUgc3RyaW5ncyBmYWlscywgdGhlaXIg
dmFsdWVzIHdpbGwgYmUgcHJpbnRlZCBhcyBVVEYtOCBuYXJyb3cgc3RyaW5ncy4KLQotKipBdmFp
bGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotKipTZWUgYWxzbyoqOiBGb3IgbW9y
ZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MgKHN1YnN0cmluZywgcHJlZml4LCBzdWZmaXgsIGFu
ZAotcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nLCBmb3IgZXhhbXBsZSksIHNlZQotW3RoaXNd
KGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9nb29nbGV0
ZXN0L2RvY3MvYWR2YW5jZWQubWQpCi1pbiB0aGUgQWR2YW5jZWQgZ29vZ2xldGVzdCBHdWlkZS4K
LQotIyMgU2ltcGxlIFRlc3RzCi0KLVRvIGNyZWF0ZSBhIHRlc3Q6Ci0KLTEuICBVc2UgdGhlIGBU
RVNUKClgIG1hY3JvIHRvIGRlZmluZSBhbmQgbmFtZSBhIHRlc3QgZnVuY3Rpb24sIFRoZXNlIGFy
ZQotICAgIG9yZGluYXJ5IEMrKyBmdW5jdGlvbnMgdGhhdCBkb24ndCByZXR1cm4gYSB2YWx1ZS4K
LTEuICBJbiB0aGlzIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIGFueSB2YWxpZCBDKysgc3RhdGVtZW50
cyB5b3Ugd2FudCB0byBpbmNsdWRlLAotICAgIHVzZSB0aGUgdmFyaW91cyBnb29nbGV0ZXN0IGFz
c2VydGlvbnMgdG8gY2hlY2sgdmFsdWVzLgotMS4gIFRoZSB0ZXN0J3MgcmVzdWx0IGlzIGRldGVy
bWluZWQgYnkgdGhlIGFzc2VydGlvbnM7IGlmIGFueSBhc3NlcnRpb24gaW4gdGhlCi0gICAgdGVz
dCBmYWlscyAoZWl0aGVyIGZhdGFsbHkgb3Igbm9uLWZhdGFsbHkpLCBvciBpZiB0aGUgdGVzdCBj
cmFzaGVzLCB0aGUKLSAgICBlbnRpcmUgdGVzdCBmYWlscy4gT3RoZXJ3aXNlLCBpdCBzdWNjZWVk
cy4KLQotYGBgYysrCi1URVNUKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpIHsKLSAgLi4uIHRlc3Qg
Ym9keSAuLi4KLX0KLWBgYAotCi1gVEVTVCgpYCBhcmd1bWVudHMgZ28gZnJvbSBnZW5lcmFsIHRv
IHNwZWNpZmljLiBUaGUgKmZpcnN0KiBhcmd1bWVudCBpcyB0aGUgbmFtZQotb2YgdGhlIHRlc3Qg
Y2FzZSwgYW5kIHRoZSAqc2Vjb25kKiBhcmd1bWVudCBpcyB0aGUgdGVzdCdzIG5hbWUgd2l0aGlu
IHRoZSB0ZXN0Ci1jYXNlLiBCb3RoIG5hbWVzIG11c3QgYmUgdmFsaWQgQysrIGlkZW50aWZpZXJz
LCBhbmQgdGhleSBzaG91bGQgbm90IGNvbnRhaW4KLXVuZGVyc2NvcmUgKGBfYCkuIEEgdGVzdCdz
ICpmdWxsIG5hbWUqIGNvbnNpc3RzIG9mIGl0cyBjb250YWluaW5nIHRlc3QgY2FzZSBhbmQKLWl0
cyBpbmRpdmlkdWFsIG5hbWUuIFRlc3RzIGZyb20gZGlmZmVyZW50IHRlc3QgY2FzZXMgY2FuIGhh
dmUgdGhlIHNhbWUKLWluZGl2aWR1YWwgbmFtZS4KLQotRm9yIGV4YW1wbGUsIGxldCdzIHRha2Ug
YSBzaW1wbGUgaW50ZWdlciBmdW5jdGlvbjoKLQotYGBgYysrCi1pbnQgRmFjdG9yaWFsKGludCBu
KTsgIC8vIFJldHVybnMgdGhlIGZhY3RvcmlhbCBvZiBuCi1gYGAKLQotQSB0ZXN0IGNhc2UgZm9y
IHRoaXMgZnVuY3Rpb24gbWlnaHQgbG9vayBsaWtlOgotCi1gYGBjKysKLS8vIFRlc3RzIGZhY3Rv
cmlhbCBvZiAwLgotVEVTVChGYWN0b3JpYWxUZXN0LCBIYW5kbGVzWmVyb0lucHV0KSB7Ci0gIEVY
UEVDVF9FUShGYWN0b3JpYWwoMCksIDEpOwotfQotCi0vLyBUZXN0cyBmYWN0b3JpYWwgb2YgcG9z
aXRpdmUgbnVtYmVycy4KLVRFU1QoRmFjdG9yaWFsVGVzdCwgSGFuZGxlc1Bvc2l0aXZlSW5wdXQp
IHsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCgxKSwgMSk7Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwo
MiksIDIpOwotICBFWFBFQ1RfRVEoRmFjdG9yaWFsKDMpLCA2KTsKLSAgRVhQRUNUX0VRKEZhY3Rv
cmlhbCg4KSwgNDAzMjApOwotfQotYGBgCi0KLWdvb2dsZXRlc3QgZ3JvdXBzIHRoZSB0ZXN0IHJl
c3VsdHMgYnkgdGVzdCBjYXNlcywgc28gbG9naWNhbGx5LXJlbGF0ZWQgdGVzdHMKLXNob3VsZCBi
ZSBpbiB0aGUgc2FtZSB0ZXN0IGNhc2U7IGluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QgYXJndW1l
bnQgdG8gdGhlaXIKLWBURVNUKClgIHNob3VsZCBiZSB0aGUgc2FtZS4gSW4gdGhlIGFib3ZlIGV4
YW1wbGUsIHdlIGhhdmUgdHdvIHRlc3RzLAotYEhhbmRsZXNaZXJvSW5wdXRgIGFuZCBgSGFuZGxl
c1Bvc2l0aXZlSW5wdXRgLCB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSB0ZXN0IGNhc2UKLWBGYWN0
b3JpYWxUZXN0YC4KLQotV2hlbiBuYW1pbmcgeW91ciB0ZXN0IGNhc2VzIGFuZCB0ZXN0cywgeW91
IHNob3VsZCBmb2xsb3cgdGhlIHNhbWUgY29udmVudGlvbiBhcwotZm9yIFtuYW1pbmcgZnVuY3Rp
b25zIGFuZAotY2xhc3Nlc10oaHR0cHM6Ly9nb29nbGUuZ2l0aHViLmlvL3N0eWxlZ3VpZGUvY3Bw
Z3VpZGUuaHRtbCNGdW5jdGlvbl9OYW1lcykuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBX
aW5kb3dzLCBNYWMuCi0KLSMjIFRlc3QgRml4dHVyZXM6IFVzaW5nIHRoZSBTYW1lIERhdGEgQ29u
ZmlndXJhdGlvbiBmb3IgTXVsdGlwbGUgVGVzdHMKLQotSWYgeW91IGZpbmQgeW91cnNlbGYgd3Jp
dGluZyB0d28gb3IgbW9yZSB0ZXN0cyB0aGF0IG9wZXJhdGUgb24gc2ltaWxhciBkYXRhLCB5b3UK
LWNhbiB1c2UgYSAqdGVzdCBmaXh0dXJlKi4gSXQgYWxsb3dzIHlvdSB0byByZXVzZSB0aGUgc2Ft
ZSBjb25maWd1cmF0aW9uIG9mCi1vYmplY3RzIGZvciBzZXZlcmFsIGRpZmZlcmVudCB0ZXN0cy4K
LQotVG8gY3JlYXRlIGEgZml4dHVyZToKLQotMS4gIERlcml2ZSBhIGNsYXNzIGZyb20gYDo6dGVz
dGluZzo6VGVzdGAgLiBTdGFydCBpdHMgYm9keSB3aXRoIGBwcm90ZWN0ZWQ6YCBhcwotICAgIHdl
J2xsIHdhbnQgdG8gYWNjZXNzIGZpeHR1cmUgbWVtYmVycyBmcm9tIHN1Yi1jbGFzc2VzLgotMS4g
IEluc2lkZSB0aGUgY2xhc3MsIGRlY2xhcmUgYW55IG9iamVjdHMgeW91IHBsYW4gdG8gdXNlLgot
MS4gIElmIG5lY2Vzc2FyeSwgd3JpdGUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9yIGBTZXRVcCgp
YCBmdW5jdGlvbiB0byBwcmVwYXJlCi0gICAgdGhlIG9iamVjdHMgZm9yIGVhY2ggdGVzdC4gQSBj
b21tb24gbWlzdGFrZSBpcyB0byBzcGVsbCBgU2V0VXAoKWAgYXMKLSAgICAqKmBTZXR1cCgpYCoq
IHdpdGggYSBzbWFsbCBgdWAgLSBVc2UgYG92ZXJyaWRlYCBpbiBDKysxMSB0byBtYWtlIHN1cmUg
eW91Ci0gICAgc3BlbGxlZCBpdCBjb3JyZWN0bHkKLTEuICBJZiBuZWNlc3NhcnksIHdyaXRlIGEg
ZGVzdHJ1Y3RvciBvciBgVGVhckRvd24oKWAgZnVuY3Rpb24gdG8gcmVsZWFzZSBhbnkKLSAgICBy
ZXNvdXJjZXMgeW91IGFsbG9jYXRlZCBpbiBgU2V0VXAoKWAgLiBUbyBsZWFybiB3aGVuIHlvdSBz
aG91bGQgdXNlIHRoZQotICAgIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IgYW5kIHdoZW4geW91IHNo
b3VsZCB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAsIHJlYWQKLSAgICB0aGlzIFtGQVFdKGZhcS5t
ZCNzaG91bGQtaS11c2UtdGhlLWNvbnN0cnVjdG9yZGVzdHJ1Y3Rvci1vZi10aGUtdGVzdC1maXh0
dXJlLW9yLXNldHVwdGVhcmRvd24pIGVudHJ5LgotMS4gIElmIG5lZWRlZCwgZGVmaW5lIHN1YnJv
dXRpbmVzIGZvciB5b3VyIHRlc3RzIHRvIHNoYXJlLgotCi1XaGVuIHVzaW5nIGEgZml4dHVyZSwg
dXNlIGBURVNUX0YoKWAgaW5zdGVhZCBvZiBgVEVTVCgpYCBhcyBpdCBhbGxvd3MgeW91IHRvCi1h
Y2Nlc3Mgb2JqZWN0cyBhbmQgc3Vicm91dGluZXMgaW4gdGhlIHRlc3QgZml4dHVyZToKLQotYGBg
YysrCi1URVNUX0YoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSkgewotICAuLi4gdGVzdCBib2R5IC4u
LgotfQotYGBgCi0KLUxpa2UgYFRFU1QoKWAsIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgdGVz
dCBjYXNlIG5hbWUsIGJ1dCBmb3IgYFRFU1RfRigpYCB0aGlzCi1tdXN0IGJlIHRoZSBuYW1lIG9m
IHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuIFlvdSd2ZSBwcm9iYWJseSBndWVzc2VkOiBgX0ZgIGlz
IGZvcgotZml4dHVyZS4KLQotVW5mb3J0dW5hdGVseSwgdGhlIEMrKyBtYWNybyBzeXN0ZW0gZG9l
cyBub3QgYWxsb3cgdXMgdG8gY3JlYXRlIGEgc2luZ2xlIG1hY3JvCi10aGF0IGNhbiBoYW5kbGUg
Ym90aCB0eXBlcyBvZiB0ZXN0cy4gVXNpbmcgdGhlIHdyb25nIG1hY3JvIGNhdXNlcyBhIGNvbXBp
bGVyCi1lcnJvci4KLQotQWxzbywgeW91IG11c3QgZmlyc3QgZGVmaW5lIGEgdGVzdCBmaXh0dXJl
IGNsYXNzIGJlZm9yZSB1c2luZyBpdCBpbiBhCi1gVEVTVF9GKClgLCBvciB5b3UnbGwgZ2V0IHRo
ZSBjb21waWxlciBlcnJvciAiYHZpcnR1YWwgb3V0c2lkZSBjbGFzcwotZGVjbGFyYXRpb25gIi4K
LQotRm9yIGVhY2ggdGVzdCBkZWZpbmVkIHdpdGggYFRFU1RfRigpYCAsIGdvb2dsZXRlc3Qgd2ls
bCBjcmVhdGUgYSAqZnJlc2gqIHRlc3QKLWZpeHR1cmUgYXQgcnVudGltZSwgaW1tZWRpYXRlbHkg
aW5pdGlhbGl6ZSBpdCB2aWEgYFNldFVwKClgICwgcnVuIHRoZSB0ZXN0LAotY2xlYW4gdXAgYnkg
Y2FsbGluZyBgVGVhckRvd24oKWAgLCBhbmQgdGhlbiBkZWxldGUgdGhlIHRlc3QgZml4dHVyZS4g
Tm90ZSB0aGF0Ci1kaWZmZXJlbnQgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGhhdmUgZGlm
ZmVyZW50IHRlc3QgZml4dHVyZSBvYmplY3RzLCBhbmQKLWdvb2dsZXRlc3QgYWx3YXlzIGRlbGV0
ZXMgYSB0ZXN0IGZpeHR1cmUgYmVmb3JlIGl0IGNyZWF0ZXMgdGhlIG5leHQgb25lLgotZ29vZ2xl
dGVzdCBkb2VzICoqbm90KiogcmV1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlIGZvciBtdWx0aXBs
ZSB0ZXN0cy4gQW55Ci1jaGFuZ2VzIG9uZSB0ZXN0IG1ha2VzIHRvIHRoZSBmaXh0dXJlIGRvIG5v
dCBhZmZlY3Qgb3RoZXIgdGVzdHMuCi0KLUFzIGFuIGV4YW1wbGUsIGxldCdzIHdyaXRlIHRlc3Rz
IGZvciBhIEZJRk8gcXVldWUgY2xhc3MgbmFtZWQgYFF1ZXVlYCwgd2hpY2ggaGFzCi10aGUgZm9s
bG93aW5nIGludGVyZmFjZToKLQotYGBgYysrCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRT4gIC8vIEUg
aXMgdGhlIGVsZW1lbnQgdHlwZS4KLWNsYXNzIFF1ZXVlIHsKLSBwdWJsaWM6Ci0gIFF1ZXVlKCk7
Ci0gIHZvaWQgRW5xdWV1ZShjb25zdCBFJiBlbGVtZW50KTsKLSAgRSogRGVxdWV1ZSgpOyAgLy8g
UmV0dXJucyBOVUxMIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4KLSAgc2l6ZV90IHNpemUoKSBjb25z
dDsKLSAgLi4uCi19OwotYGBgCi0KLUZpcnN0LCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNzLiBCeSBj
b252ZW50aW9uLCB5b3Ugc2hvdWxkIGdpdmUgaXQgdGhlIG5hbWUKLWBGb29UZXN0YCB3aGVyZSBg
Rm9vYCBpcyB0aGUgY2xhc3MgYmVpbmcgdGVzdGVkLgotCi1gYGBjKysKLWNsYXNzIFF1ZXVlVGVz
dCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsKLSAgICAgcTFfLkVucXVldWUoMSk7Ci0gICAgIHEyXy5FbnF1ZXVlKDIpOwot
ICAgICBxMl8uRW5xdWV1ZSgzKTsKLSAgfQotCi0gIC8vIHZvaWQgVGVhckRvd24oKSBvdmVycmlk
ZSB7fQotCi0gIFF1ZXVlPGludD4gcTBfOwotICBRdWV1ZTxpbnQ+IHExXzsKLSAgUXVldWU8aW50
PiBxMl87Ci19OwotYGBgCi0KLUluIHRoaXMgY2FzZSwgYFRlYXJEb3duKClgIGlzIG5vdCBuZWVk
ZWQgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0byBjbGVhbiB1cCBhZnRlcgotZWFjaCB0ZXN0LCBvdGhl
ciB0aGFuIHdoYXQncyBhbHJlYWR5IGRvbmUgYnkgdGhlIGRlc3RydWN0b3IuCi0KLU5vdyB3ZSds
bCB3cml0ZSB0ZXN0cyB1c2luZyBgVEVTVF9GKClgIGFuZCB0aGlzIGZpeHR1cmUuCi0KLWBgYGMr
KwotVEVTVF9GKFF1ZXVlVGVzdCwgSXNFbXB0eUluaXRpYWxseSkgewotICBFWFBFQ1RfRVEocTBf
LnNpemUoKSwgMCk7Ci19Ci0KLVRFU1RfRihRdWV1ZVRlc3QsIERlcXVldWVXb3JrcykgewotICBp
bnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfRVEobiwgbnVsbHB0cik7Ci0KLSAgbiA9
IHExXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9ORShuLCBudWxscHRyKTsKLSAgRVhQRUNUX0VRKCpu
LCAxKTsKLSAgRVhQRUNUX0VRKHExXy5zaXplKCksIDApOwotICBkZWxldGUgbjsKLQotICBuID0g
cTJfLkRlcXVldWUoKTsKLSAgQVNTRVJUX05FKG4sIG51bGxwdHIpOwotICBFWFBFQ1RfRVEoKm4s
IDIpOwotICBFWFBFQ1RfRVEocTJfLnNpemUoKSwgMSk7Ci0gIGRlbGV0ZSBuOwotfQotYGBgCi0K
LVRoZSBhYm92ZSB1c2VzIGJvdGggYEFTU0VSVF8qYCBhbmQgYEVYUEVDVF8qYCBhc3NlcnRpb25z
LiBUaGUgcnVsZSBvZiB0aHVtYiBpcwotdG8gdXNlIGBFWFBFQ1RfKmAgd2hlbiB5b3Ugd2FudCB0
aGUgdGVzdCB0byBjb250aW51ZSB0byByZXZlYWwgbW9yZSBlcnJvcnMgYWZ0ZXIKLXRoZSBhc3Nl
cnRpb24gZmFpbHVyZSwgYW5kIHVzZSBgQVNTRVJUXypgIHdoZW4gY29udGludWluZyBhZnRlciBm
YWlsdXJlIGRvZXNuJ3QKLW1ha2Ugc2Vuc2UuIEZvciBleGFtcGxlLCB0aGUgc2Vjb25kIGFzc2Vy
dGlvbiBpbiB0aGUgYERlcXVldWVgIHRlc3QgaXMKLT1BU1NFUlRfTkUobnVsbHB0ciwgbik9LCBh
cyB3ZSBuZWVkIHRvIGRlcmVmZXJlbmNlIHRoZSBwb2ludGVyIGBuYCBsYXRlciwgd2hpY2gKLXdv
dWxkIGxlYWQgdG8gYSBzZWdmYXVsdCB3aGVuIGBuYCBpcyBgTlVMTGAuCi0KLVdoZW4gdGhlc2Ug
dGVzdHMgcnVuLCB0aGUgZm9sbG93aW5nIGhhcHBlbnM6Ci0KLTEuICBnb29nbGV0ZXN0IGNvbnN0
cnVjdHMgYSBgUXVldWVUZXN0YCBvYmplY3QgKGxldCdzIGNhbGwgaXQgYHQxYCApLgotMS4gIGB0
MS5TZXRVcCgpYCBpbml0aWFsaXplcyBgdDFgIC4KLTEuICBUaGUgZmlyc3QgdGVzdCAoIGBJc0Vt
cHR5SW5pdGlhbGx5YCApIHJ1bnMgb24gYHQxYCAuCi0xLiAgYHQxLlRlYXJEb3duKClgIGNsZWFu
cyB1cCBhZnRlciB0aGUgdGVzdCBmaW5pc2hlcy4KLTEuICBgdDFgIGlzIGRlc3RydWN0ZWQuCi0x
LiAgVGhlIGFib3ZlIHN0ZXBzIGFyZSByZXBlYXRlZCBvbiBhbm90aGVyIGBRdWV1ZVRlc3RgIG9i
amVjdCwgdGhpcyB0aW1lCi0gICAgcnVubmluZyB0aGUgYERlcXVldWVXb3Jrc2AgdGVzdC4KLQot
KipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotCi0jIyBJbnZva2luZyB0
aGUgVGVzdHMKLQotYFRFU1QoKWAgYW5kIGBURVNUX0YoKWAgaW1wbGljaXRseSByZWdpc3RlciB0
aGVpciB0ZXN0cyB3aXRoIGdvb2dsZXRlc3QuIFNvLAotdW5saWtlIHdpdGggbWFueSBvdGhlciBD
KysgdGVzdGluZyBmcmFtZXdvcmtzLCB5b3UgZG9uJ3QgaGF2ZSB0byByZS1saXN0IGFsbAoteW91
ciBkZWZpbmVkIHRlc3RzIGluIG9yZGVyIHRvIHJ1biB0aGVtLgotCi1BZnRlciBkZWZpbmluZyB5
b3VyIHRlc3RzLCB5b3UgY2FuIHJ1biB0aGVtIHdpdGggYFJVTl9BTExfVEVTVFMoKWAgLCB3aGlj
aAotcmV0dXJucyBgMGAgaWYgYWxsIHRoZSB0ZXN0cyBhcmUgc3VjY2Vzc2Z1bCwgb3IgYDFgIG90
aGVyd2lzZS4gTm90ZSB0aGF0Ci1gUlVOX0FMTF9URVNUUygpYCBydW5zICphbGwgdGVzdHMqIGlu
IHlvdXIgbGluayB1bml0IC0tIHRoZXkgY2FuIGJlIGZyb20KLWRpZmZlcmVudCB0ZXN0IGNhc2Vz
LCBvciBldmVuIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMuCi0KLVdoZW4gaW52b2tlZCwgdGhlIGBS
VU5fQUxMX1RFU1RTKClgIG1hY3JvOgotCi0xLiBTYXZlcyB0aGUgc3RhdGUgb2YgYWxsIGdvb2ds
ZXRlc3QgZmxhZ3MKLQotKiAgIENyZWF0ZXMgYSB0ZXN0IGZpeHR1cmUgb2JqZWN0IGZvciB0aGUg
Zmlyc3QgdGVzdC4KLQotKiAgIEluaXRpYWxpemVzIGl0IHZpYSBgU2V0VXAoKWAuCi0KLSogICBS
dW5zIHRoZSB0ZXN0IG9uIHRoZSBmaXh0dXJlIG9iamVjdC4KLQotKiAgIENsZWFucyB1cCB0aGUg
Zml4dHVyZSB2aWEgYFRlYXJEb3duKClgLgotCi0qICAgRGVsZXRlcyB0aGUgZml4dHVyZS4KLQot
KiBSZXN0b3JlcyB0aGUgc3RhdGUgb2YgYWxsIGdvb2dsZXRlc3QgZmxhZ3MKLQotKiAgIFJlcGVh
dHMgdGhlIGFib3ZlIHN0ZXBzIGZvciB0aGUgbmV4dCB0ZXN0LCB1bnRpbCBhbGwgdGVzdHMgaGF2
ZSBydW4uCi0KLUlmIGEgZmF0YWwgZmFpbHVyZSBoYXBwZW5zIHRoZSBzdWJzZXF1ZW50IHN0ZXBz
IHdpbGwgYmUgc2tpcHBlZC4KLQotPiBJTVBPUlRBTlQ6IFlvdSBtdXN0ICoqbm90KiogaWdub3Jl
IHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAsIG9yCi0+IHlvdSB3aWxsIGdl
dCBhIGNvbXBpbGVyIGVycm9yLiBUaGUgcmF0aW9uYWxlIGZvciB0aGlzIGRlc2lnbiBpcyB0aGF0
IHRoZQotPiBhdXRvbWF0ZWQgdGVzdGluZyBzZXJ2aWNlIGRldGVybWluZXMgd2hldGhlciBhIHRl
c3QgaGFzIHBhc3NlZCBiYXNlZCBvbiBpdHMKLT4gZXhpdCBjb2RlLCBub3Qgb24gaXRzIHN0ZG91
dC9zdGRlcnIgb3V0cHV0OyB0aHVzIHlvdXIgYG1haW4oKWAgZnVuY3Rpb24gbXVzdAotPiByZXR1
cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLgotPgotPiBBbHNvLCB5b3Ugc2hvdWxk
IGNhbGwgYFJVTl9BTExfVEVTVFMoKWAgb25seSAqKm9uY2UqKi4gQ2FsbGluZyBpdCBtb3JlIHRo
YW4KLT4gb25jZSBjb25mbGljdHMgd2l0aCBzb21lIGFkdmFuY2VkIGdvb2dsZXRlc3QgZmVhdHVy
ZXMgKGUuZy4gdGhyZWFkLXNhZmUgW2RlYXRoCi0+IHRlc3RzXShhZHZhbmNlZCNkZWF0aC10ZXN0
cykpIGFuZCB0aHVzIGlzIG5vdCBzdXBwb3J0ZWQuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIFdyaXRpbmcgdGhlIG1haW4oKSBGdW5jdGlvbgotCi1JbiBg
Z29vZ2xlM2AsIHRoZSBzaW1wbGVzdCBhcHByb2FjaCBpcyB0byB1c2UgdGhlIGRlZmF1bHQgbWFp
bigpIGZ1bmN0aW9uCi1wcm92aWRlZCBieSBsaW5raW5nIGluIGAiLy90ZXN0aW5nL2Jhc2UvcHVi
bGljOmd0ZXN0X21haW4iYC4gSWYgdGhhdCBkb2Vzbid0Ci1jb3ZlciB3aGF0IHlvdSBuZWVkLCB5
b3Ugc2hvdWxkIHdyaXRlIHlvdXIgb3duIG1haW4oKSBmdW5jdGlvbiwgd2hpY2ggc2hvdWxkCi1y
ZXR1cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLiBMaW5rIHRvIGAiLy90ZXN0aW5n
L2Jhc2UvcHVibGljOmd1bml0ImAuCi1Zb3UgY2FuIHN0YXJ0IGZyb20gdGhpcyBib2lsZXJwbGF0
ZToKLQotYGBgYysrCi0jaW5jbHVkZSAidGhpcy9wYWNrYWdlL2Zvby5oIgotI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLS8vIFRoZSBmaXh0dXJlIGZvciB0ZXN0aW5n
IGNsYXNzIEZvby4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBw
cm90ZWN0ZWQ6Ci0gIC8vIFlvdSBjYW4gcmVtb3ZlIGFueSBvciBhbGwgb2YgdGhlIGZvbGxvd2lu
ZyBmdW5jdGlvbnMgaWYgaXRzIGJvZHkKLSAgLy8gaXMgZW1wdHkuCi0KLSAgRm9vVGVzdCgpIHsK
LSAgICAgLy8gWW91IGNhbiBkbyBzZXQtdXAgd29yayBmb3IgZWFjaCB0ZXN0IGhlcmUuCi0gIH0K
LQotICB+Rm9vVGVzdCgpIG92ZXJyaWRlIHsKLSAgICAgLy8gWW91IGNhbiBkbyBjbGVhbi11cCB3
b3JrIHRoYXQgZG9lc24ndCB0aHJvdyBleGNlcHRpb25zIGhlcmUuCi0gIH0KLQotICAvLyBJZiB0
aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgYXJlIG5vdCBlbm91Z2ggZm9yIHNldHRpbmcg
dXAKLSAgLy8gYW5kIGNsZWFuaW5nIHVwIGVhY2ggdGVzdCwgeW91IGNhbiBkZWZpbmUgdGhlIGZv
bGxvd2luZyBtZXRob2RzOgotCi0gIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7Ci0gICAgIC8vIENv
ZGUgaGVyZSB3aWxsIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgY29uc3RydWN0b3Ig
KHJpZ2h0Ci0gICAgIC8vIGJlZm9yZSBlYWNoIHRlc3QpLgotICB9Ci0KLSAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlIHsKLSAgICAgLy8gQ29kZSBoZXJlIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0
ZWx5IGFmdGVyIGVhY2ggdGVzdCAocmlnaHQKLSAgICAgLy8gYmVmb3JlIHRoZSBkZXN0cnVjdG9y
KS4KLSAgfQotCi0gIC8vIE9iamVjdHMgZGVjbGFyZWQgaGVyZSBjYW4gYmUgdXNlZCBieSBhbGwg
dGVzdHMgaW4gdGhlIHRlc3QgY2FzZSBmb3IgRm9vLgotfTsKLQotLy8gVGVzdHMgdGhhdCB0aGUg
Rm9vOjpCYXIoKSBtZXRob2QgZG9lcyBBYmMuCi1URVNUX0YoRm9vVGVzdCwgTWV0aG9kQmFyRG9l
c0FiYykgewotICBjb25zdCBzdGQ6OnN0cmluZyBpbnB1dF9maWxlcGF0aCA9ICJ0aGlzL3BhY2th
Z2UvdGVzdGRhdGEvbXlpbnB1dGZpbGUuZGF0IjsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgb3V0cHV0
X2ZpbGVwYXRoID0gInRoaXMvcGFja2FnZS90ZXN0ZGF0YS9teW91dHB1dGZpbGUuZGF0IjsKLSAg
Rm9vIGY7Ci0gIEVYUEVDVF9FUShmLkJhcihpbnB1dF9maWxlcGF0aCwgb3V0cHV0X2ZpbGVwYXRo
KSwgMCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgRm9vIGRvZXMgWHl6LgotVEVTVF9GKEZvb1Rlc3Qs
IERvZXNYeXopIHsKLSAgLy8gRXhlcmNpc2VzIHRoZSBYeXogZmVhdHVyZSBvZiBGb28uCi19Ci0K
LX0gIC8vIG5hbWVzcGFjZQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAg
Ojp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIHJldHVybiBSVU5fQUxM
X1RFU1RTKCk7Ci19Ci1gYGAKLQotCi1UaGUgYDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoKWAg
ZnVuY3Rpb24gcGFyc2VzIHRoZSBjb21tYW5kIGxpbmUgZm9yCi1nb29nbGV0ZXN0IGZsYWdzLCBh
bmQgcmVtb3ZlcyBhbGwgcmVjb2duaXplZCBmbGFncy4gVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8K
LWNvbnRyb2wgYSB0ZXN0IHByb2dyYW0ncyBiZWhhdmlvciB2aWEgdmFyaW91cyBmbGFncywgd2hp
Y2ggd2UnbGwgY292ZXIgaW4KLVtBZHZhbmNlZEd1aWRlXShhZHZhbmNlZC5tZCkuIFlvdSAqKm11
c3QqKiBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGNhbGxpbmcKLWBSVU5fQUxMX1RFU1RTKClg
LCBvciB0aGUgZmxhZ3Mgd29uJ3QgYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuCi0KLU9uIFdpbmRv
d3MsIGBJbml0R29vZ2xlVGVzdCgpYCBhbHNvIHdvcmtzIHdpdGggd2lkZSBzdHJpbmdzLCBzbyBp
dCBjYW4gYmUgdXNlZAotaW4gcHJvZ3JhbXMgY29tcGlsZWQgaW4gYFVOSUNPREVgIG1vZGUgYXMg
d2VsbC4KLQotQnV0IG1heWJlIHlvdSB0aGluayB0aGF0IHdyaXRpbmcgYWxsIHRob3NlIG1haW4o
KSBmdW5jdGlvbnMgaXMgdG9vIG11Y2ggd29yaz8gV2UKLWFncmVlIHdpdGggeW91IGNvbXBsZXRl
bHkgYW5kIHRoYXQncyB3aHkgR29vZ2xlIFRlc3QgcHJvdmlkZXMgYSBiYXNpYwotaW1wbGVtZW50
YXRpb24gb2YgbWFpbigpLiBJZiBpdCBmaXRzIHlvdXIgbmVlZHMsIHRoZW4ganVzdCBsaW5rIHlv
dXIgdGVzdCB3aXRoCi1ndGVzdFxfbWFpbiBsaWJyYXJ5IGFuZCB5b3UgYXJlIGdvb2QgdG8gZ28u
Ci0KLU5PVEU6IGBQYXJzZUdVbml0RmxhZ3MoKWAgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBg
SW5pdEdvb2dsZVRlc3QoKWAuCi0KLQotIyMgS25vd24gTGltaXRhdGlvbnMKLQotKiAgIEdvb2ds
ZSBUZXN0IGlzIGRlc2lnbmVkIHRvIGJlIHRocmVhZC1zYWZlLiBUaGUgaW1wbGVtZW50YXRpb24g
aXMgdGhyZWFkLXNhZmUKLSAgICBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBgcHRocmVhZHNgIGxpYnJh
cnkgaXMgYXZhaWxhYmxlLiBJdCBpcyBjdXJyZW50bHkKLSAgICBfdW5zYWZlXyB0byB1c2UgR29v
Z2xlIFRlc3QgYXNzZXJ0aW9ucyBmcm9tIHR3byB0aHJlYWRzIGNvbmN1cnJlbnRseSBvbgotICAg
IG90aGVyIHN5c3RlbXMgKGUuZy4gV2luZG93cykuIEluIG1vc3QgdGVzdHMgdGhpcyBpcyBub3Qg
YW4gaXNzdWUgYXMgdXN1YWxseQotICAgIHRoZSBhc3NlcnRpb25zIGFyZSBkb25lIGluIHRoZSBt
YWluIHRocmVhZC4gSWYgeW91IHdhbnQgdG8gaGVscCwgeW91IGNhbgotICAgIHZvbHVudGVlciB0
byBpbXBsZW1lbnQgdGhlIG5lY2Vzc2FyeSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBpbgot
ICAgIGBndGVzdC1wb3J0LmhgIGZvciB5b3VyIHBsYXRmb3JtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9zYW1wbGVzLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvZG9jcy9zYW1wbGVzLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGRjY2Ez
ODE0OTFlMTk4MjMzMmM2ZDQ0NzJjYTgyZDBkMDIxNzAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3Mvc2Ft
cGxlcy5tZAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMgR29vZ2xldGVzdCBTYW1w
bGVzIHsjc2FtcGxlc30KLQotSWYgeW91J3JlIGxpa2UgdXMsIHlvdSdkIGxpa2UgdG8gbG9vayBh
dCBbZ29vZ2xldGVzdAotc2FtcGxlcy5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xl
dGVzdC90cmVlL21hc3Rlci9nb29nbGV0ZXN0L3NhbXBsZXMpCi1UaGUgc2FtcGxlIGRpcmVjdG9y
eSBoYXMgYSBudW1iZXIgb2Ygd2VsbC1jb21tZW50ZWQgc2FtcGxlcyBzaG93aW5nIGhvdyB0byB1
c2UgYQotdmFyaWV0eSBvZiBnb29nbGV0ZXN0IGZlYXR1cmVzLgotCi0qICAgU2FtcGxlICMxIHNo
b3dzIHRoZSBiYXNpYyBzdGVwcyBvZiB1c2luZyBnb29nbGV0ZXN0IHRvIHRlc3QgQysrIGZ1bmN0
aW9ucy4KLSogICBTYW1wbGUgIzIgc2hvd3MgYSBtb3JlIGNvbXBsZXggdW5pdCB0ZXN0IGZvciBh
IGNsYXNzIHdpdGggbXVsdGlwbGUgbWVtYmVyCi0gICAgZnVuY3Rpb25zLgotKiAgIFNhbXBsZSAj
MyB1c2VzIGEgdGVzdCBmaXh0dXJlLgotKiAgIFNhbXBsZSAjNCB0ZWFjaGVzIHlvdSBob3cgdG8g
dXNlIGdvb2dsZXRlc3QgYW5kIGBnb29nbGV0ZXN0LmhgIHRvZ2V0aGVyIHRvCi0gICAgZ2V0IHRo
ZSBiZXN0IG9mIGJvdGggbGlicmFyaWVzLgotKiAgIFNhbXBsZSAjNSBwdXRzIHNoYXJlZCB0ZXN0
aW5nIGxvZ2ljIGluIGEgYmFzZSB0ZXN0IGZpeHR1cmUsIGFuZCByZXVzZXMgaXQgaW4KLSAgICBk
ZXJpdmVkIGZpeHR1cmVzLgotKiAgIFNhbXBsZSAjNiBkZW1vbnN0cmF0ZXMgdHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3RzLgotKiAgIFNhbXBsZSAjNyB0ZWFjaGVzIHRoZSBiYXNpY3Mgb2YgdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUgIzggc2hvd3MgdXNpbmcgYENvbWJpbmUo
KWAgaW4gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUgIzkgc2hvd3MgdXNl
IG9mIHRoZSBsaXN0ZW5lciBBUEkgdG8gbW9kaWZ5IEdvb2dsZSBUZXN0J3MgY29uc29sZQotICAg
IG91dHB1dCBhbmQgdGhlIHVzZSBvZiBpdHMgcmVmbGVjdGlvbiBBUEkgdG8gaW5zcGVjdCB0ZXN0
IHJlc3VsdHMuCi0qICAgU2FtcGxlICMxMCBzaG93cyB1c2Ugb2YgdGhlIGxpc3RlbmVyIEFQSSB0
byBpbXBsZW1lbnQgYSBwcmltaXRpdmUgbWVtb3J5Ci0gICAgbGVhayBjaGVja2VyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10
ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRo
LXRlc3QuaAppbmRleCAyMGM1NGQ4Njk1MTlmNjkzMGU3ZWJmZDJjMDgwNWJhY2E0MjIxNmJhLi5h
ZGZiMTkyMTExZjI4NjBmZTM3MDEyMzI5ZGM0YTk1Mzc5MjRiMWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3Qu
aApAQCAtMzUsOCArMzUsOCBAQAogLy8gZGlyZWN0bHkuCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFUSF9U
RVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwor
I2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXworI2Rl
ZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwogCiAjaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIgogCkBAIC0x
NjEsNyArMTYxLDYgQEAgR1RFU1RfQVBJXyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKIC8vICAg
aXMgcmFyZWx5IGEgcHJvYmxlbSBhcyBwZW9wbGUgdXN1YWxseSBkb24ndCBwdXQgdGhlIHRlc3Qg
YmluYXJ5CiAvLyAgIGRpcmVjdG9yeSBpbiBQQVRILgogLy8KLS8vIEZJWE1FOiBtYWtlIHRocmVh
ZC1zYWZlIGRlYXRoIHRlc3RzIHNlYXJjaCB0aGUgUEFUSC4KIAogLy8gQXNzZXJ0cyB0aGF0IGEg
Z2l2ZW4gc3RhdGVtZW50IGNhdXNlcyB0aGUgcHJvZ3JhbSB0byBleGl0LCB3aXRoIGFuCiAvLyBp
bnRlZ2VyIGV4aXQgc3RhdHVzIHRoYXQgc2F0aXNmaWVzIHByZWRpY2F0ZSwgYW5kIGVtaXR0aW5n
IGVycm9yIG91dHB1dApAQCAtMTcwLDcgKzE2OSw3IEBAIEdURVNUX0FQSV8gYm9vbCBJbkRlYXRo
VGVzdENoaWxkKCk7CiAgICAgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUs
IHJlZ2V4LCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKIAogLy8gTGlrZSBBU1NFUlRfRVhJVCwgYnV0
IGNvbnRpbnVlcyBvbiB0byBzdWNjZXNzaXZlIHRlc3RzIGluIHRoZQotLy8gdGVzdCBjYXNlLCBp
ZiBhbnk6CisvLyB0ZXN0IHN1aXRlLCBpZiBhbnk6CiAjIGRlZmluZSBFWFBFQ1RfRVhJVChzdGF0
ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXgpIFwKICAgICBHVEVTVF9ERUFUSF9URVNUXyhzdGF0ZW1l
bnQsIHByZWRpY2F0ZSwgcmVnZXgsIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQogCkBAIC0xODEs
NyArMTgwLDcgQEAgR1RFU1RfQVBJXyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKICAgICBBU1NF
UlRfRVhJVChzdGF0ZW1lbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV4aXRlZFVuc3VjY2Vzc2Z1
bGx5LCByZWdleCkKIAogLy8gTGlrZSBBU1NFUlRfREVBVEgsIGJ1dCBjb250aW51ZXMgb24gdG8g
c3VjY2Vzc2l2ZSB0ZXN0cyBpbiB0aGUKLS8vIHRlc3QgY2FzZSwgaWYgYW55OgorLy8gdGVzdCBz
dWl0ZSwgaWYgYW55OgogIyBkZWZpbmUgRVhQRUNUX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpIFwK
ICAgICBFWFBFQ1RfRVhJVChzdGF0ZW1lbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV4aXRlZFVu
c3VjY2Vzc2Z1bGx5LCByZWdleCkKIApAQCAtMTkxLDExICsxOTAsMTAgQEAgR1RFU1RfQVBJXyBi
b29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKIGNsYXNzIEdURVNUX0FQSV8gRXhpdGVkV2l0aENvZGUg
ewogIHB1YmxpYzoKICAgZXhwbGljaXQgRXhpdGVkV2l0aENvZGUoaW50IGV4aXRfY29kZSk7Cisg
IEV4aXRlZFdpdGhDb2RlKGNvbnN0IEV4aXRlZFdpdGhDb2RlJikgPSBkZWZhdWx0OworICB2b2lk
IG9wZXJhdG9yPShjb25zdCBFeGl0ZWRXaXRoQ29kZSYgb3RoZXIpID0gZGVsZXRlOwogICBib29s
IG9wZXJhdG9yKCkoaW50IGV4aXRfc3RhdHVzKSBjb25zdDsKICBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IEV4aXRlZFdpdGhDb2RlJiBvdGhlcik7Ci0KICAgY29uc3QgaW50IGV4aXRfY29k
ZV87CiB9OwogCkBAIC0yMjgsNyArMjI2LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNp
Z25hbCB7CiAvLyAgIHJldHVybiAxMjsKIC8vIH0KIC8vCi0vLyBURVNUKFRlc3RDYXNlLCBUZXN0
RGllT3IxMldvcmtzSW5EZ2JBbmRPcHQpIHsKKy8vIFRFU1QoVGVzdFN1aXRlLCBUZXN0RGllT3Ix
MldvcmtzSW5EZ2JBbmRPcHQpIHsKIC8vICAgaW50IHNpZGVlZmZlY3QgPSAwOwogLy8gICAvLyBP
bmx5IGFzc2VydHMgaW4gZGJnLgogLy8gICBFWFBFQ1RfREVCVUdfREVBVEgoRGllSW5EZWJ1Z09y
MTIoJnNpZGVlZmZlY3QpLCAiZGVhdGgiKTsKQEAgLTI3NywyMCArMjc1LDIwIEBAIGNsYXNzIEdU
RVNUX0FQSV8gS2lsbGVkQnlTaWduYWwgewogLy8gVGhpcyBtYWNybyBpcyB1c2VkIGZvciBpbXBs
ZW1lbnRpbmcgbWFjcm9zIHN1Y2ggYXMKIC8vIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQgYW5k
IEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQgb24gc3lzdGVtcyB3aGVyZQogLy8gZGVhdGggdGVz
dHMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRob3NlIG1hY3JvcyBtdXN0IGNvbXBpbGUgb24gc3VjaCBz
eXN0ZW1zCi0vLyBpZmYgRVhQRUNUX0RFQVRIIGFuZCBBU1NFUlRfREVBVEggY29tcGlsZSB3aXRo
IHRoZSBzYW1lIHBhcmFtZXRlcnMgb24KLS8vIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGRlYXRoIHRl
c3RzLiBUaGlzIGFsbG93cyBvbmUgdG8gd3JpdGUgc3VjaCBhIG1hY3JvCi0vLyBvbiBhIHN5c3Rl
bSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgZGVhdGggdGVzdHMgYW5kIGJlIHN1cmUgdGhhdCBpdCB3
aWxsCi0vLyBjb21waWxlIG9uIGEgZGVhdGgtdGVzdCBzdXBwb3J0aW5nIHN5c3RlbS4gSXQgaXMg
ZXhwb3NlZCBwdWJsaWNseSBzbyB0aGF0Ci0vLyBzeXN0ZW1zIHRoYXQgaGF2ZSBkZWF0aC10ZXN0
cyB3aXRoIHN0cmljdGVyIHJlcXVpcmVtZW50cyB0aGFuCi0vLyBHVEVTVF9IQVNfREVBVEhfVEVT
VCBjYW4gd3JpdGUgdGhlaXIgb3duIGVxdWl2YWxlbnQgb2YKLS8vIEVYUEVDVF9ERUFUSF9JRl9T
VVBQT1JURUQgYW5kIEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQuCisvLyBpZiBhbmQgb25seSBp
ZiBFWFBFQ1RfREVBVEggYW5kIEFTU0VSVF9ERUFUSCBjb21waWxlIHdpdGggdGhlIHNhbWUgcGFy
YW1ldGVycworLy8gb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgZGVhdGggdGVzdHMuIFRoaXMgYWxs
b3dzIG9uZSB0byB3cml0ZSBzdWNoIGEgbWFjcm8gb24KKy8vIGEgc3lzdGVtIHRoYXQgZG9lcyBu
b3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBhbmQgYmUgc3VyZSB0aGF0IGl0IHdpbGwgY29tcGlsZQor
Ly8gb24gYSBkZWF0aC10ZXN0IHN1cHBvcnRpbmcgc3lzdGVtLiBJdCBpcyBleHBvc2VkIHB1Ymxp
Y2x5IHNvIHRoYXQgc3lzdGVtcworLy8gdGhhdCBoYXZlIGRlYXRoLXRlc3RzIHdpdGggc3RyaWN0
ZXIgcmVxdWlyZW1lbnRzIHRoYW4gR1RFU1RfSEFTX0RFQVRIX1RFU1QKKy8vIGNhbiB3cml0ZSB0
aGVpciBvd24gZXF1aXZhbGVudCBvZiBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEIGFuZAorLy8g
QVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRC4KIC8vCiAvLyBQYXJhbWV0ZXJzOgogLy8gICBzdGF0
ZW1lbnQgLSAgQSBzdGF0ZW1lbnQgdGhhdCBhIG1hY3JvIHN1Y2ggYXMgRVhQRUNUX0RFQVRIIHdv
dWxkIHRlc3QKIC8vICAgICAgICAgICAgICAgIGZvciBwcm9ncmFtIHRlcm1pbmF0aW9uLiBUaGlz
IG1hY3JvIGhhcyB0byBtYWtlIHN1cmUgdGhpcwogLy8gICAgICAgICAgICAgICAgc3RhdGVtZW50
IGlzIGNvbXBpbGVkIGJ1dCBub3QgZXhlY3V0ZWQsIHRvIGVuc3VyZSB0aGF0CiAvLyAgICAgICAg
ICAgICAgICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEIGNvbXBpbGVzIHdpdGggYSBjZXJ0YWlu
Ci0vLyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWZmIEVYUEVDVF9ERUFUSCBjb21waWxlcyB3
aXRoIGl0LgorLy8gICAgICAgICAgICAgICAgcGFyYW1ldGVyIGlmIGFuZCBvbmx5IGlmIEVYUEVD
VF9ERUFUSCBjb21waWxlcyB3aXRoIGl0LgogLy8gICByZWdleCAgICAgLSAgQSByZWdleCB0aGF0
IGEgbWFjcm8gc3VjaCBhcyBFWFBFQ1RfREVBVEggd291bGQgdXNlIHRvIHRlc3QKIC8vICAgICAg
ICAgICAgICAgIHRoZSBvdXRwdXQgb2Ygc3RhdGVtZW50LiAgVGhpcyBwYXJhbWV0ZXIgaGFzIHRv
IGJlCiAvLyAgICAgICAgICAgICAgICBjb21waWxlZCBidXQgbm90IGV2YWx1YXRlZCBieSB0aGlz
IG1hY3JvLCB0byBlbnN1cmUgdGhhdApAQCAtMzQxLDQgKzMzOSw0IEBAIGNsYXNzIEdURVNUX0FQ
SV8gS2lsbGVkQnlTaWduYWwgewogCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYg
IC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXworI2VuZGlmICAvLyBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tYXRjaGVycy5oIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tYXRjaGVycy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiZDNkY2Y2MTRhNDVkYjhiYjBkMTA4ZTE2NWI5M2ZlNjk5ODBlYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0
LW1hdGNoZXJzLmgKQEAgLTAsMCArMSw5MzAgQEAKKy8vIENvcHlyaWdodCAyMDA3LCBHb29nbGUg
SW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworLy8gVGhlIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2lu
ZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQorLy8KKy8vIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGp1
c3QgZW5vdWdoIG9mIHRoZSBtYXRjaGVyIGludGVyZmFjZSB0byBhbGxvdworLy8gRVhQRUNUX0RF
QVRIIGFuZCBmcmllbmRzIHRvIGFjY2VwdCBhIG1hdGNoZXIgYXJndW1lbnQuCisKKyNpZm5kZWYg
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01BVENIRVJTX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9NQVRDSEVSU19IXworCisjaW5jbHVkZSA8YXRvbWlj
PgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxvc3RyZWFtPgorI2luY2x1ZGUgPHN0cmlu
Zz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50
ZXJzLmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCisKKy8vIE1TVkMgd2FybmluZyBDNTA0
NiBpcyBuZXcgYXMgb2YgVlMyMDE3IHZlcnNpb24gMTUuOC4KKyNpZiBkZWZpbmVkKF9NU0NfVkVS
KSAmJiBfTVNDX1ZFUiA+PSAxOTE1CisjZGVmaW5lIEdURVNUX01BWUJFXzUwNDZfIDUwNDYKKyNl
bHNlCisjZGVmaW5lIEdURVNUX01BWUJFXzUwNDZfCisjZW5kaWYKKworR1RFU1RfRElTQUJMRV9N
U0NfV0FSTklOR1NfUFVTSF8oCisgICAgNDI1MSBHVEVTVF9NQVlCRV81MDQ2XyAvKiBjbGFzcyBB
IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGllbnRzIG9mIGNsYXNzIEIgKi8KKyAgICAvKiBTeW1ib2wgaW52
b2x2aW5nIHR5cGUgd2l0aCBpbnRlcm5hbCBsaW5rYWdlIG5vdCBkZWZpbmVkICovKQorCituYW1l
c3BhY2UgdGVzdGluZyB7CisKKy8vIFRvIGltcGxlbWVudCBhIG1hdGNoZXIgRm9vIGZvciB0eXBl
IFQsIGRlZmluZToKKy8vICAgMS4gYSBjbGFzcyBGb29NYXRjaGVyTWF0Y2hlciB0aGF0IGltcGxl
bWVudHMgdGhlIG1hdGNoZXIgaW50ZXJmYWNlOgorLy8gICAgIHVzaW5nIGlzX2d0ZXN0X21hdGNo
ZXIgPSB2b2lkOworLy8gICAgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKGNvbnN0IFQmLCBzdGQ6Om9z
dHJlYW0qKTsKKy8vICAgICAgIChNYXRjaFJlc3VsdExpc3RlbmVyKiBjYW4gYWxzbyBiZSB1c2Vk
IGluc3RlYWQgb2Ygc3RkOjpvc3RyZWFtKikKKy8vICAgICB2b2lkIERlc2NyaWJlVG8oc3RkOjpv
c3RyZWFtKik7CisvLyAgICAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oc3RkOjpvc3RyZWFtKik7
CisvLworLy8gICAyLiBhIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgTWF0Y2hlcjxU
PiBvYmplY3QgZnJvbSBhCisvLyAgICAgIEZvb01hdGNoZXJNYXRjaGVyLgorCitjbGFzcyBNYXRj
aFJlc3VsdExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIC8vIENyZWF0ZXMgYSBsaXN0ZW5lciBvYmpl
Y3Qgd2l0aCB0aGUgZ2l2ZW4gdW5kZXJseWluZyBvc3RyZWFtLiAgVGhlCisgIC8vIGxpc3RlbmVy
IGRvZXMgbm90IG93biB0aGUgb3N0cmVhbSwgYW5kIGRvZXMgbm90IGRlcmVmZXJlbmNlIGl0Cisg
IC8vIGluIHRoZSBjb25zdHJ1Y3RvciBvciBkZXN0cnVjdG9yLgorICBleHBsaWNpdCBNYXRjaFJl
c3VsdExpc3RlbmVyKDo6c3RkOjpvc3RyZWFtKiBvcykgOiBzdHJlYW1fKG9zKSB7fQorICB2aXJ0
dWFsIH5NYXRjaFJlc3VsdExpc3RlbmVyKCkgPSAwOyAgLy8gTWFrZXMgdGhpcyBjbGFzcyBhYnN0
cmFjdC4KKworICAvLyBTdHJlYW1zIHggdG8gdGhlIHVuZGVybHlpbmcgb3N0cmVhbTsgZG9lcyBu
b3RoaW5nIGlmIHRoZSBvc3RyZWFtCisgIC8vIGlzIE5VTEwuCisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgorICBNYXRjaFJlc3VsdExpc3RlbmVyJiBvcGVyYXRvcjw8KGNvbnN0IFQmIHgpIHsKKyAg
ICBpZiAoc3RyZWFtXyAhPSBudWxscHRyKSAqc3RyZWFtXyA8PCB4OworICAgIHJldHVybiAqdGhp
czsKKyAgfQorCisgIC8vIFJldHVybnMgdGhlIHVuZGVybHlpbmcgb3N0cmVhbS4KKyAgOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSgpIHsgcmV0dXJuIHN0cmVhbV87IH0KKworICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIGlzIGludGVyZXN0ZWQgaW4gYW4gZXhwbGFu
YXRpb24KKyAgLy8gb2YgdGhlIG1hdGNoIHJlc3VsdC4gIEEgbWF0Y2hlcidzIE1hdGNoQW5kRXhw
bGFpbigpIG1ldGhvZCBjYW4gdXNlCisgIC8vIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZ2Vu
ZXJhdGluZyB0aGUgZXhwbGFuYXRpb24gd2hlbiBubyBvbmUKKyAgLy8gaW50ZW5kcyB0byBoZWFy
IGl0LgorICBib29sIElzSW50ZXJlc3RlZCgpIGNvbnN0IHsgcmV0dXJuIHN0cmVhbV8gIT0gbnVs
bHB0cjsgfQorCisgcHJpdmF0ZToKKyAgOjpzdGQ6Om9zdHJlYW0qIGNvbnN0IHN0cmVhbV87CisK
KyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhNYXRjaFJlc3VsdExpc3RlbmVyKTsK
K307CisKK2lubGluZSBNYXRjaFJlc3VsdExpc3RlbmVyOjp+TWF0Y2hSZXN1bHRMaXN0ZW5lcigp
IHsKK30KKworLy8gQW4gaW5zdGFuY2Ugb2YgYSBzdWJjbGFzcyBvZiB0aGlzIGtub3dzIGhvdyB0
byBkZXNjcmliZSBpdHNlbGYgYXMgYQorLy8gbWF0Y2hlci4KK2NsYXNzIE1hdGNoZXJEZXNjcmli
ZXJJbnRlcmZhY2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+TWF0Y2hlckRlc2NyaWJlckludGVy
ZmFjZSgpIHt9CisKKyAgLy8gRGVzY3JpYmVzIHRoaXMgbWF0Y2hlciB0byBhbiBvc3RyZWFtLiAg
VGhlIGZ1bmN0aW9uIHNob3VsZCBwcmludAorICAvLyBhIHZlcmIgcGhyYXNlIHRoYXQgZGVzY3Jp
YmVzIHRoZSBwcm9wZXJ0eSBhIHZhbHVlIG1hdGNoaW5nIHRoaXMKKyAgLy8gbWF0Y2hlciBzaG91
bGQgaGF2ZS4gIFRoZSBzdWJqZWN0IG9mIHRoZSB2ZXJiIHBocmFzZSBpcyB0aGUgdmFsdWUKKyAg
Ly8gYmVpbmcgbWF0Y2hlZC4gIEZvciBleGFtcGxlLCB0aGUgRGVzY3JpYmVUbygpIG1ldGhvZCBv
ZiB0aGUgR3QoNykKKyAgLy8gbWF0Y2hlciBwcmludHMgImlzIGdyZWF0ZXIgdGhhbiA3Ii4KKyAg
dmlydHVhbCB2b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCA9IDA7CisK
KyAgLy8gRGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBvZiB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVh
bS4gIEZvcgorICAvLyBleGFtcGxlLCBpZiB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBtYXRjaGVy
IGlzICJpcyBncmVhdGVyIHRoYW4KKyAgLy8gNyIsIHRoZSBuZWdhdGVkIGRlc2NyaXB0aW9uIGNv
dWxkIGJlICJpcyBub3QgZ3JlYXRlciB0aGFuIDciLgorICAvLyBZb3UgYXJlIG5vdCByZXF1aXJl
ZCB0byBvdmVycmlkZSB0aGlzIHdoZW4gaW1wbGVtZW50aW5nCisgIC8vIE1hdGNoZXJJbnRlcmZh
Y2UsIGJ1dCBpdCBpcyBoaWdobHkgYWR2aXNlZCBzbyB0aGF0IHlvdXIgbWF0Y2hlcgorICAvLyBj
YW4gcHJvZHVjZSBnb29kIGVycm9yIG1lc3NhZ2VzLgorICB2aXJ0dWFsIHZvaWQgRGVzY3JpYmVO
ZWdhdGlvblRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAgICpvcyA8PCAibm90ICgi
OworICAgIERlc2NyaWJlVG8ob3MpOworICAgICpvcyA8PCAiKSI7CisgIH0KK307CisKKy8vIFRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hdGNoZXIuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2Ns
YXNzIE1hdGNoZXJJbnRlcmZhY2UgOiBwdWJsaWMgTWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSB7
CisgcHVibGljOgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIG1hdGNoZXIg
bWF0Y2hlcyB4OyBhbHNvIGV4cGxhaW5zIHRoZQorICAvLyBtYXRjaCByZXN1bHQgdG8gJ2xpc3Rl
bmVyJyBpZiBuZWNlc3NhcnkgKHNlZSB0aGUgbmV4dCBwYXJhZ3JhcGgpLCBpbgorICAvLyB0aGUg
Zm9ybSBvZiBhIG5vbi1yZXN0cmljdGl2ZSByZWxhdGl2ZSBjbGF1c2UgKCJ3aGljaCAuLi4iLAor
ICAvLyAid2hvc2UgLi4uIiwgZXRjKSB0aGF0IGRlc2NyaWJlcyB4LiAgRm9yIGV4YW1wbGUsIHRo
ZQorICAvLyBNYXRjaEFuZEV4cGxhaW4oKSBtZXRob2Qgb2YgdGhlIFBvaW50ZWUoLi4uKSBtYXRj
aGVyIHNob3VsZAorICAvLyBnZW5lcmF0ZSBhbiBleHBsYW5hdGlvbiBsaWtlICJ3aGljaCBwb2lu
dHMgdG8gLi4uIi4KKyAgLy8KKyAgLy8gSW1wbGVtZW50YXRpb25zIG9mIE1hdGNoQW5kRXhwbGFp
bigpIHNob3VsZCBhZGQgYW4gZXhwbGFuYXRpb24gb2YKKyAgLy8gdGhlIG1hdGNoIHJlc3VsdCAq
aWYgYW5kIG9ubHkgaWYqIHRoZXkgY2FuIHByb3ZpZGUgYWRkaXRpb25hbAorICAvLyBpbmZvcm1h
dGlvbiB0aGF0J3Mgbm90IGFscmVhZHkgcHJlc2VudCAob3Igbm90IG9idmlvdXMpIGluIHRoZQor
ICAvLyBwcmludC1vdXQgb2YgeCBhbmQgdGhlIG1hdGNoZXIncyBkZXNjcmlwdGlvbi4gIFdoZXRo
ZXIgdGhlIG1hdGNoCisgIC8vIHN1Y2NlZWRzIGlzIG5vdCBhIGZhY3RvciBpbiBkZWNpZGluZyB3
aGV0aGVyIGFuIGV4cGxhbmF0aW9uIGlzCisgIC8vIG5lZWRlZCwgYXMgc29tZXRpbWVzIHRoZSBj
YWxsZXIgbmVlZHMgdG8gcHJpbnQgYSBmYWlsdXJlIG1lc3NhZ2UKKyAgLy8gd2hlbiB0aGUgbWF0
Y2ggc3VjY2VlZHMgKGUuZy4gd2hlbiB0aGUgbWF0Y2hlciBpcyB1c2VkIGluc2lkZQorICAvLyBO
b3QoKSkuCisgIC8vCisgIC8vIEZvciBleGFtcGxlLCBhICJoYXMgYXQgbGVhc3QgMTAgZWxlbWVu
dHMiIG1hdGNoZXIgc2hvdWxkIGV4cGxhaW4KKyAgLy8gd2hhdCB0aGUgYWN0dWFsIGVsZW1lbnQg
Y291bnQgaXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIG1hdGNoIHJlc3VsdCwKKyAgLy8gYXMgaXQgaXMg
dXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZSByZWFkZXI7IG9uIHRoZSBvdGhlciBoYW5kLCBhbgor
ICAvLyAiaXMgZW1wdHkiIG1hdGNoZXIgcHJvYmFibHkgb25seSBuZWVkcyB0byBleHBsYWluIHdo
YXQgdGhlIGFjdHVhbAorICAvLyBzaXplIGlzIHdoZW4gdGhlIG1hdGNoIGZhaWxzLCBhcyBpdCdz
IHJlZHVuZGFudCB0byBzYXkgdGhhdCB0aGUKKyAgLy8gc2l6ZSBpcyAwIHdoZW4gdGhlIHZhbHVl
IGlzIGFscmVhZHkga25vd24gdG8gYmUgZW1wdHkuCisgIC8vCisgIC8vIFlvdSBzaG91bGQgb3Zl
cnJpZGUgdGhpcyBtZXRob2Qgd2hlbiBkZWZpbmluZyBhIG5ldyBtYXRjaGVyLgorICAvLworICAv
LyBJdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIChHb29nbGUgVGVzdCkgdG8g
Z3VhcmFudGVlCisgIC8vIHRoYXQgJ2xpc3RlbmVyJyBpcyBub3QgTlVMTC4gIFRoaXMgaGVscHMg
dG8gc2ltcGxpZnkgYSBtYXRjaGVyJ3MKKyAgLy8gaW1wbGVtZW50YXRpb24gd2hlbiBpdCBkb2Vz
bid0IGNhcmUgYWJvdXQgdGhlIHBlcmZvcm1hbmNlLCBhcyBpdAorICAvLyBjYW4gdGFsayB0byAn
bGlzdGVuZXInIHdpdGhvdXQgY2hlY2tpbmcgaXRzIHZhbGlkaXR5IGZpcnN0LgorICAvLyBIb3dl
dmVyLCBpbiBvcmRlciB0byBpbXBsZW1lbnQgZHVtbXkgbGlzdGVuZXJzIGVmZmljaWVudGx5LAor
ICAvLyBsaXN0ZW5lci0+c3RyZWFtKCkgbWF5IGJlIE5VTEwuCisgIHZpcnR1YWwgYm9vbCBNYXRj
aEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3QgPSAw
OworCisgIC8vIEluaGVyaXRzIHRoZXNlIG1ldGhvZHMgZnJvbSBNYXRjaGVyRGVzY3JpYmVySW50
ZXJmYWNlOgorICAvLyAgIHZpcnR1YWwgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFtKiBv
cykgY29uc3QgPSAwOworICAvLyAgIHZpcnR1YWwgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oOjpz
dGQ6Om9zdHJlYW0qIG9zKSBjb25zdDsKK307CisKK25hbWVzcGFjZSBpbnRlcm5hbCB7CisKK3N0
cnVjdCBBbnlFcSB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29s
IG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA9PSBi
OyB9Cit9Oworc3RydWN0IEFueU5lIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1l
IEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7IHJl
dHVybiBhICE9IGI7IH0KK307CitzdHJ1Y3QgQW55THQgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
QSwgdHlwZW5hbWUgQj4KKyAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IEEmIGEsIGNvbnN0IEImIGIp
IGNvbnN0IHsgcmV0dXJuIGEgPCBiOyB9Cit9Oworc3RydWN0IEFueUd0IHsKKyAgdGVtcGxhdGUg
PHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBj
b25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhID4gYjsgfQorfTsKK3N0cnVjdCBBbnlMZSB7Cisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29sIG9wZXJhdG9yKCkoY29u
c3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA8PSBiOyB9Cit9Oworc3RydWN0
IEFueUdlIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3Bl
cmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhID49IGI7IH0K
K307CisKKy8vIEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVyIHRoYXQgaWdub3JlcyB0aGUgZXhwbGFu
YXRpb24uCitjbGFzcyBEdW1teU1hdGNoUmVzdWx0TGlzdGVuZXIgOiBwdWJsaWMgTWF0Y2hSZXN1
bHRMaXN0ZW5lciB7CisgcHVibGljOgorICBEdW1teU1hdGNoUmVzdWx0TGlzdGVuZXIoKSA6IE1h
dGNoUmVzdWx0TGlzdGVuZXIobnVsbHB0cikge30KKworIHByaXZhdGU6CisgIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oRHVtbXlNYXRjaFJlc3VsdExpc3RlbmVyKTsKK307CisKKy8v
IEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVyIHRoYXQgZm9yd2FyZHMgdGhlIGV4cGxhbmF0aW9uIHRv
IGEgZ2l2ZW4KKy8vIG9zdHJlYW0uICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIE1h
dGNoUmVzdWx0TGlzdGVuZXIgaXMKKy8vIHRoYXQgdGhlIGZvcm1lciBpcyBjb25jcmV0ZS4KK2Ns
YXNzIFN0cmVhbU1hdGNoUmVzdWx0TGlzdGVuZXIgOiBwdWJsaWMgTWF0Y2hSZXN1bHRMaXN0ZW5l
ciB7CisgcHVibGljOgorICBleHBsaWNpdCBTdHJlYW1NYXRjaFJlc3VsdExpc3RlbmVyKDo6c3Rk
Ojpvc3RyZWFtKiBvcykKKyAgICAgIDogTWF0Y2hSZXN1bHRMaXN0ZW5lcihvcykge30KKworIHBy
aXZhdGU6CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3RyZWFtTWF0Y2hSZXN1
bHRMaXN0ZW5lcik7Cit9OworCitzdHJ1Y3QgU2hhcmVkUGF5bG9hZEJhc2UgeworICBzdGQ6OmF0
b21pYzxpbnQ+IHJlZnsxfTsKKyAgdm9pZCBSZWYoKSB7IHJlZi5mZXRjaF9hZGQoMSwgc3RkOjpt
ZW1vcnlfb3JkZXJfcmVsYXhlZCk7IH0KKyAgYm9vbCBVbnJlZigpIHsgcmV0dXJuIHJlZi5mZXRj
aF9zdWIoMSwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCkgPT0gMTsgfQorfTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgU2hhcmVkUGF5bG9hZCA6IFNoYXJlZFBheWxvYWRCYXNl
IHsKKyAgZXhwbGljaXQgU2hhcmVkUGF5bG9hZChjb25zdCBUJiB2KSA6IHZhbHVlKHYpIHt9Cisg
IGV4cGxpY2l0IFNoYXJlZFBheWxvYWQoVCYmIHYpIDogdmFsdWUoc3RkOjptb3ZlKHYpKSB7fQor
CisgIHN0YXRpYyB2b2lkIERlc3Ryb3koU2hhcmVkUGF5bG9hZEJhc2UqIHNoYXJlZCkgeworICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxTaGFyZWRQYXlsb2FkKj4oc2hhcmVkKTsKKyAgfQorCisgIFQg
dmFsdWU7Cit9OworCisvLyBBbiBpbnRlcm5hbCBjbGFzcyBmb3IgaW1wbGVtZW50aW5nIE1hdGNo
ZXI8VD4sIHdoaWNoIHdpbGwgZGVyaXZlCisvLyBmcm9tIGl0LiAgV2UgcHV0IGZ1bmN0aW9uYWxp
dGllcyBjb21tb24gdG8gYWxsIE1hdGNoZXI8VD4KKy8vIHNwZWNpYWxpemF0aW9ucyBoZXJlIHRv
IGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE1h
dGNoZXJCYXNlIDogcHJpdmF0ZSBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlIHsKKyBwdWJsaWM6
CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgbWF0Y2hlciBtYXRjaGVzIHg7
IGFsc28gZXhwbGFpbnMgdGhlCisgIC8vIG1hdGNoIHJlc3VsdCB0byAnbGlzdGVuZXInLgorICBi
b29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBUJiB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0
ZW5lcikgY29uc3QgeworICAgIEdURVNUX0NIRUNLXyh2dGFibGVfICE9IG51bGxwdHIpOworICAg
IHJldHVybiB2dGFibGVfLT5tYXRjaF9hbmRfZXhwbGFpbigqdGhpcywgeCwgbGlzdGVuZXIpOwor
ICB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgbWF0Y2hlciBtYXRj
aGVzIHguCisgIGJvb2wgTWF0Y2hlcyhjb25zdCBUJiB4KSBjb25zdCB7CisgICAgRHVtbXlNYXRj
aFJlc3VsdExpc3RlbmVyIGR1bW15OworICAgIHJldHVybiBNYXRjaEFuZEV4cGxhaW4oeCwgJmR1
bW15KTsKKyAgfQorCisgIC8vIERlc2NyaWJlcyB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4K
KyAgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgZmluYWwgeworICAg
IEdURVNUX0NIRUNLXyh2dGFibGVfICE9IG51bGxwdHIpOworICAgIHZ0YWJsZV8tPmRlc2NyaWJl
KCp0aGlzLCBvcywgZmFsc2UpOworICB9CisKKyAgLy8gRGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBv
ZiB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4KKyAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8o
OjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCBmaW5hbCB7CisgICAgR1RFU1RfQ0hFQ0tfKHZ0YWJs
ZV8gIT0gbnVsbHB0cik7CisgICAgdnRhYmxlXy0+ZGVzY3JpYmUoKnRoaXMsIG9zLCB0cnVlKTsK
KyAgfQorCisgIC8vIEV4cGxhaW5zIHdoeSB4IG1hdGNoZXMsIG9yIGRvZXNuJ3QgbWF0Y2gsIHRo
ZSBtYXRjaGVyLgorICB2b2lkIEV4cGxhaW5NYXRjaFJlc3VsdFRvKGNvbnN0IFQmIHgsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgY29uc3QgeworICAgIFN0cmVhbU1hdGNoUmVzdWx0TGlzdGVuZXIgbGlz
dGVuZXIob3MpOworICAgIE1hdGNoQW5kRXhwbGFpbih4LCAmbGlzdGVuZXIpOworICB9CisKKyAg
Ly8gUmV0dXJucyB0aGUgZGVzY3JpYmVyIGZvciB0aGlzIG1hdGNoZXIgb2JqZWN0OyByZXRhaW5z
IG93bmVyc2hpcAorICAvLyBvZiB0aGUgZGVzY3JpYmVyLCB3aGljaCBpcyBvbmx5IGd1YXJhbnRl
ZWQgdG8gYmUgYWxpdmUgd2hlbgorICAvLyB0aGlzIG1hdGNoZXIgb2JqZWN0IGlzIGFsaXZlLgor
ICBjb25zdCBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlKiBHZXREZXNjcmliZXIoKSBjb25zdCB7
CisgICAgaWYgKHZ0YWJsZV8gPT0gbnVsbHB0cikgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHZ0YWJsZV8tPmdldF9kZXNjcmliZXIoKnRoaXMpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIE1h
dGNoZXJCYXNlKCkgOiB2dGFibGVfKG51bGxwdHIpIHt9CisKKyAgLy8gQ29uc3RydWN0cyBhIG1h
dGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50YXRpb24uCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgor
ICBleHBsaWNpdCBNYXRjaGVyQmFzZShjb25zdCBNYXRjaGVySW50ZXJmYWNlPFU+KiBpbXBsKSB7
CisgICAgSW5pdChpbXBsKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFt
ZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hlckJhc2UoTSYmIG0p
IHsgIC8vIE5PTElOVAorICAgIEluaXQoc3RkOjpmb3J3YXJkPE0+KG0pKTsKKyAgfQorCisgIE1h
dGNoZXJCYXNlKGNvbnN0IE1hdGNoZXJCYXNlJiBvdGhlcikKKyAgICAgIDogdnRhYmxlXyhvdGhl
ci52dGFibGVfKSwgYnVmZmVyXyhvdGhlci5idWZmZXJfKSB7CisgICAgaWYgKElzU2hhcmVkKCkp
IGJ1ZmZlcl8uc2hhcmVkLT5SZWYoKTsKKyAgfQorCisgIE1hdGNoZXJCYXNlJiBvcGVyYXRvcj0o
Y29uc3QgTWF0Y2hlckJhc2UmIG90aGVyKSB7CisgICAgaWYgKHRoaXMgPT0gJm90aGVyKSByZXR1
cm4gKnRoaXM7CisgICAgRGVzdHJveSgpOworICAgIHZ0YWJsZV8gPSBvdGhlci52dGFibGVfOwor
ICAgIGJ1ZmZlcl8gPSBvdGhlci5idWZmZXJfOworICAgIGlmIChJc1NoYXJlZCgpKSBidWZmZXJf
LnNoYXJlZC0+UmVmKCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgTWF0Y2hlckJhc2Uo
TWF0Y2hlckJhc2UmJiBvdGhlcikKKyAgICAgIDogdnRhYmxlXyhvdGhlci52dGFibGVfKSwgYnVm
ZmVyXyhvdGhlci5idWZmZXJfKSB7CisgICAgb3RoZXIudnRhYmxlXyA9IG51bGxwdHI7CisgIH0K
KworICBNYXRjaGVyQmFzZSYgb3BlcmF0b3I9KE1hdGNoZXJCYXNlJiYgb3RoZXIpIHsKKyAgICBp
ZiAodGhpcyA9PSAmb3RoZXIpIHJldHVybiAqdGhpczsKKyAgICBEZXN0cm95KCk7CisgICAgdnRh
YmxlXyA9IG90aGVyLnZ0YWJsZV87CisgICAgYnVmZmVyXyA9IG90aGVyLmJ1ZmZlcl87CisgICAg
b3RoZXIudnRhYmxlXyA9IG51bGxwdHI7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgfk1h
dGNoZXJCYXNlKCkgb3ZlcnJpZGUgeyBEZXN0cm95KCk7IH0KKworIHByaXZhdGU6CisgIHN0cnVj
dCBWVGFibGUgeworICAgIGJvb2wgKCptYXRjaF9hbmRfZXhwbGFpbikoY29uc3QgTWF0Y2hlckJh
c2UmLCBjb25zdCBUJiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0
TGlzdGVuZXIqKTsKKyAgICB2b2lkICgqZGVzY3JpYmUpKGNvbnN0IE1hdGNoZXJCYXNlJiwgc3Rk
Ojpvc3RyZWFtKiwgYm9vbCBuZWdhdGlvbik7CisgICAgLy8gUmV0dXJucyB0aGUgY2FwdHVyZWQg
b2JqZWN0IGlmIGl0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZSwgb3RoZXJ3aXNlCisgICAgLy8g
cmV0dXJucyB0aGUgTWF0Y2hlckJhc2UgaXRzZWxmLgorICAgIGNvbnN0IE1hdGNoZXJEZXNjcmli
ZXJJbnRlcmZhY2UqICgqZ2V0X2Rlc2NyaWJlcikoY29uc3QgTWF0Y2hlckJhc2UmKTsKKyAgICAv
LyBDYWxsZWQgb24gc2hhcmVkIGluc3RhbmNlcyB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVh
Y2hlcyAwLgorICAgIHZvaWQgKCpzaGFyZWRfZGVzdHJveSkoU2hhcmVkUGF5bG9hZEJhc2UqKTsK
KyAgfTsKKworICBib29sIElzU2hhcmVkKCkgY29uc3QgeworICAgIHJldHVybiB2dGFibGVfICE9
IG51bGxwdHIgJiYgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ryb3kgIT0gbnVsbHB0cjsKKyAgfQorCisg
IC8vIElmIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgbGlzdGVuZXIsIGNhbGwgdGhhdC4KKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIFA+CisgIHN0YXRpYyBhdXRvIE1hdGNoQW5kRXhwbGFpbkltcGwo
Y29uc3QgTWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQmIHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIqIGxpc3RlbmVyKQorICAgICAgLT4g
ZGVjbHR5cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhwbGFpbih2YWx1ZSwgbGlzdGVuZXItPnN0cmVh
bSgpKSkgeworICAgIHJldHVybiBQOjpHZXQobSkuTWF0Y2hBbmRFeHBsYWluKHZhbHVlLCBsaXN0
ZW5lci0+c3RyZWFtKCkpOworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFA+CisgIHN0YXRp
YyBhdXRvIE1hdGNoQW5kRXhwbGFpbkltcGwoY29uc3QgTWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQm
IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlz
dGVuZXIqIGxpc3RlbmVyKQorICAgICAgLT4gZGVjbHR5cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhw
bGFpbih2YWx1ZSwgbGlzdGVuZXIpKSB7CisgICAgcmV0dXJuIFA6OkdldChtKS5NYXRjaEFuZEV4
cGxhaW4odmFsdWUsIGxpc3RlbmVyKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgor
ICBzdGF0aWMgdm9pZCBEZXNjcmliZUltcGwoY29uc3QgTWF0Y2hlckJhc2UmIG0sIHN0ZDo6b3N0
cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG5lZ2F0aW9uKSB7Cisg
ICAgaWYgKG5lZ2F0aW9uKSB7CisgICAgICBQOjpHZXQobSkuRGVzY3JpYmVOZWdhdGlvblRvKG9z
KTsKKyAgICB9IGVsc2UgeworICAgICAgUDo6R2V0KG0pLkRlc2NyaWJlVG8ob3MpOworICAgIH0K
KyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgorICBzdGF0aWMgY29uc3QgTWF0Y2hlckRl
c2NyaWJlckludGVyZmFjZSogR2V0RGVzY3JpYmVySW1wbCgKKyAgICAgIGNvbnN0IE1hdGNoZXJC
YXNlJiBtKSB7CisgICAgLy8gSWYgdGhlIGltcGwgaXMgYSBNYXRjaGVyRGVzY3JpYmVySW50ZXJm
YWNlLCB0aGVuIHJldHVybiBpdC4KKyAgICAvLyBPdGhlcndpc2UgdXNlIE1hdGNoZXJCYXNlIGl0
c2VsZi4KKyAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBpbXBsZW1lbnQgdGhlIEdldERlc2NyaWJl
cigpIGZ1bmN0aW9uIHdpdGhvdXQgc3VwcG9ydAorICAgIC8vIGZyb20gdGhlIGltcGwsIGJ1dCBz
b21lIHVzZXJzIHJlYWxseSB3YW50IHRvIGdldCB0aGVpciBpbXBsIGJhY2sgd2hlbgorICAgIC8v
IHRoZXkgY2FsbCBHZXREZXNjcmliZXIoKS4KKyAgICAvLyBXZSB1c2Ugc3RkOjpnZXQgb24gYSB0
dXBsZSBhcyBhIHdvcmthcm91bmQgb2Ygbm90IGhhdmluZyBgaWYgY29uc3RleHByYC4KKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8KAorICAgICAgICBzdGQ6OmlzX2NvbnZlcnRpYmxlPGRlY2x0eXBlKCZQ
OjpHZXQobSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1hdGNoZXJEZXNj
cmliZXJJbnRlcmZhY2UqPjo6dmFsdWUKKyAgICAgICAgICAgID8gMQorICAgICAgICAgICAgOiAw
KT4oc3RkOjptYWtlX3R1cGxlKCZtLCAmUDo6R2V0KG0pKSk7CisgIH0KKworICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgUD4KKyAgY29uc3QgVlRhYmxlKiBHZXRWVGFibGUoKSB7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBWVGFibGUga1ZUYWJsZSA9IHsmTWF0Y2hBbmRFeHBsYWluSW1wbDxQPiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXNjcmliZUltcGw8UD4sICZHZXRE
ZXNjcmliZXJJbXBsPFA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UDo6c2hhcmVkX2Rlc3Ryb3l9OworICAgIHJldHVybiAma1ZUYWJsZTsKKyAgfQorCisgIHVuaW9u
IEJ1ZmZlciB7CisgICAgLy8gQWRkIHNvbWUgdHlwZXMgdG8gZ2l2ZSBCdWZmZXIgc29tZSBjb21t
b24gYWxpZ25tZW50L3NpemUgdXNlIGNhc2VzLgorICAgIHZvaWQqIHB0cjsKKyAgICBkb3VibGUg
ZDsKKyAgICBpbnQ2NF90IGk7CisgICAgLy8gQW5kIGFkZCBvbmUgZm9yIHRoZSBvdXQtb2YtbGlu
ZSBjYXNlcy4KKyAgICBTaGFyZWRQYXlsb2FkQmFzZSogc2hhcmVkOworICB9OworCisgIHZvaWQg
RGVzdHJveSgpIHsKKyAgICBpZiAoSXNTaGFyZWQoKSAmJiBidWZmZXJfLnNoYXJlZC0+VW5yZWYo
KSkgeworICAgICAgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ryb3koYnVmZmVyXy5zaGFyZWQpOworICAg
IH0KKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNPgorICBzdGF0aWMgY29uc3RleHByIGJv
b2wgSXNJbmxpbmVkKCkgeworICAgIHJldHVybiBzaXplb2YoTSkgPD0gc2l6ZW9mKEJ1ZmZlcikg
JiYgYWxpZ25vZihNKSA8PSBhbGlnbm9mKEJ1ZmZlcikgJiYKKyAgICAgICAgICAgc3RkOjppc190
cml2aWFsbHlfY29weV9jb25zdHJ1Y3RpYmxlPE0+Ojp2YWx1ZSAmJgorICAgICAgICAgICBzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8TT46OnZhbHVlOworICB9CisKKyAgdGVtcGxhdGUg
PHR5cGVuYW1lIE0sIGJvb2wgPSBNYXRjaGVyQmFzZTo6SXNJbmxpbmVkPE0+KCk+CisgIHN0cnVj
dCBWYWx1ZVBvbGljeSB7CisgICAgc3RhdGljIGNvbnN0IE0mIEdldChjb25zdCBNYXRjaGVyQmFz
ZSYgbSkgeworICAgICAgLy8gV2hlbiBpbmxpbmVkIGFsb25nIHdpdGggSW5pdCwgbmVlZCB0byBi
ZSBleHBsaWNpdCB0byBhdm9pZCB2aW9sYXRpbmcKKyAgICAgIC8vIHN0cmljdCBhbGlhc2luZyBy
dWxlcy4KKyAgICAgIGNvbnN0IE0gKnB0ciA9IHN0YXRpY19jYXN0PGNvbnN0IE0qPigKKyAgICAg
ICAgICBzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oJm0uYnVmZmVyXykpOworICAgICAgcmV0dXJu
ICpwdHI7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIEluaXQoTWF0Y2hlckJhc2UmIG0sIE0gaW1w
bCkgeworICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPigmbS5idWZmZXJfKSkgTShpbXBs
KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNoYXJlZF9kZXN0cm95ID0gbnVs
bHB0cjsKKyAgfTsKKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTT4KKyAgc3RydWN0IFZhbHVlUG9s
aWN5PE0sIGZhbHNlPiB7CisgICAgdXNpbmcgU2hhcmVkID0gU2hhcmVkUGF5bG9hZDxNPjsKKyAg
ICBzdGF0aWMgY29uc3QgTSYgR2V0KGNvbnN0IE1hdGNoZXJCYXNlJiBtKSB7CisgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U2hhcmVkKj4obS5idWZmZXJfLnNoYXJlZCktPnZhbHVlOworICAgIH0K
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnPgorICAgIHN0YXRpYyB2b2lkIEluaXQoTWF0Y2hl
ckJhc2UmIG0sIEFyZyYmIGFyZykgeworICAgICAgbS5idWZmZXJfLnNoYXJlZCA9IG5ldyBTaGFy
ZWQoc3RkOjpmb3J3YXJkPEFyZz4oYXJnKSk7CisgICAgfQorICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBzaGFyZWRfZGVzdHJveSA9ICZTaGFyZWQ6OkRlc3Ryb3k7CisgIH07CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIFUsIGJvb2wgQj4KKyAgc3RydWN0IFZhbHVlUG9saWN5PGNvbnN0IE1hdGNo
ZXJJbnRlcmZhY2U8VT4qLCBCPiB7CisgICAgdXNpbmcgTSA9IGNvbnN0IE1hdGNoZXJJbnRlcmZh
Y2U8VT47CisgICAgdXNpbmcgU2hhcmVkID0gU2hhcmVkUGF5bG9hZDxzdGQ6OnVuaXF1ZV9wdHI8
TT4+OworICAgIHN0YXRpYyBjb25zdCBNJiBHZXQoY29uc3QgTWF0Y2hlckJhc2UmIG0pIHsKKyAg
ICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8U2hhcmVkKj4obS5idWZmZXJfLnNoYXJlZCktPnZhbHVl
OworICAgIH0KKyAgICBzdGF0aWMgdm9pZCBJbml0KE1hdGNoZXJCYXNlJiBtLCBNKiBpbXBsKSB7
CisgICAgICBtLmJ1ZmZlcl8uc2hhcmVkID0gbmV3IFNoYXJlZChzdGQ6OnVuaXF1ZV9wdHI8TT4o
aW1wbCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzaGFyZWRfZGVzdHJv
eSA9ICZTaGFyZWQ6OkRlc3Ryb3k7CisgIH07CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0+Cisg
IHZvaWQgSW5pdChNJiYgbSkgeworICAgIHVzaW5nIE1NID0gdHlwZW5hbWUgc3RkOjpkZWNheTxN
Pjo6dHlwZTsKKyAgICB1c2luZyBQb2xpY3kgPSBWYWx1ZVBvbGljeTxNTT47CisgICAgdnRhYmxl
XyA9IEdldFZUYWJsZTxQb2xpY3k+KCk7CisgICAgUG9saWN5OjpJbml0KCp0aGlzLCBzdGQ6OmZv
cndhcmQ8TT4obSkpOworICB9CisKKyAgY29uc3QgVlRhYmxlKiB2dGFibGVfOworICBCdWZmZXIg
YnVmZmVyXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBBIE1hdGNoZXI8
VD4gaXMgYSBjb3B5YWJsZSBhbmQgSU1NVVRBQkxFIChleGNlcHQgYnkgYXNzaWdubWVudCkKKy8v
IG9iamVjdCB0aGF0IGNhbiBjaGVjayB3aGV0aGVyIGEgdmFsdWUgb2YgdHlwZSBUIG1hdGNoZXMu
ICBUaGUKKy8vIGltcGxlbWVudGF0aW9uIG9mIE1hdGNoZXI8VD4gaXMganVzdCBhIHN0ZDo6c2hh
cmVkX3B0ciB0byBjb25zdAorLy8gTWF0Y2hlckludGVyZmFjZTxUPi4gIERvbid0IGluaGVyaXQg
ZnJvbSBNYXRjaGVyIQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBNYXRjaGVyIDogcHVi
bGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxUPiB7CisgcHVibGljOgorICAvLyBDb25zdHJ1Y3Rz
IGEgbnVsbCBtYXRjaGVyLiAgTmVlZGVkIGZvciBzdG9yaW5nIE1hdGNoZXIgb2JqZWN0cyBpbiBT
VEwKKyAgLy8gY29udGFpbmVycy4gIEEgZGVmYXVsdC1jb25zdHJ1Y3RlZCBtYXRjaGVyIGlzIG5v
dCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3UKKyAgLy8gY2Fubm90IHVzZSBpdCB1bnRpbCBhIHZhbGlk
IHZhbHVlIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGl0LgorICBleHBsaWNpdCBNYXRjaGVyKCkge30g
IC8vIE5PTElOVAorCisgIC8vIENvbnN0cnVjdHMgYSBtYXRjaGVyIGZyb20gaXRzIGltcGxlbWVu
dGF0aW9uLgorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3Qg
VCY+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8VD4oaW1wbCkge30KKwor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KKyAgZXhwbGljaXQgTWF0Y2hlcigKKyAgICAgIGNvbnN0
IE1hdGNoZXJJbnRlcmZhY2U8VT4qIGltcGwsCisgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
Zjwhc3RkOjppc19zYW1lPFUsIGNvbnN0IFUmPjo6dmFsdWU+Ojp0eXBlKiA9CisgICAgICAgICAg
bnVsbHB0cikKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPFQ+KGltcGwpIHt9CisKKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVm
ZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9t
YXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxUPihzdGQ6
OmZvcndhcmQ8TT4obSkpIHt9ICAvLyBOT0xJTlQKKworICAvLyBJbXBsaWNpdCBjb25zdHJ1Y3Rv
ciBoZXJlIGFsbG93cyBwZW9wbGUgdG8gd3JpdGUKKyAgLy8gRVhQRUNUX0NBTEwoZm9vLCBCYXIo
NSkpIGluc3RlYWQgb2YgRVhQRUNUX0NBTEwoZm9vLCBCYXIoRXEoNSkpKSBzb21ldGltZXMKKyAg
TWF0Y2hlcihUIHZhbHVlKTsgIC8vIE5PTElOVAorfTsKKworLy8gVGhlIGZvbGxvd2luZyB0d28g
c3BlY2lhbGl6YXRpb25zIGFsbG93IHRoZSB1c2VyIHRvIHdyaXRlIHN0cgorLy8gaW5zdGVhZCBv
ZiBFcShzdHIpIGFuZCAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSB3aGVuIGEgc3RkOjpzdHJp
bmcKKy8vIG1hdGNoZXIgaXMgZXhwZWN0ZWQuCit0ZW1wbGF0ZSA8PgorY2xhc3MgR1RFU1RfQVBJ
XyBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4KKyAgICA6IHB1YmxpYyBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30K
KworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3Qgc3RkOjpz
dHJpbmcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6
c3RyaW5nJj4oaW1wbCkge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTSwgdHlwZW5hbWUgPSB0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTT46OnR5cGU6OmlzX2d0ZXN0X21hdGNoZXI+CisgIE1hdGNoZXIoTSYmIG0pICAvLyBOT0xJ
TlQKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6c3RyaW5nJj4oc3Rk
Ojpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIg
aW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpz
dHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElO
VAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJm
b28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQKK307
CisKK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElfIE1hdGNoZXI8c3RkOjpzdHJpbmc+Cisg
ICAgOiBwdWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPHN0ZDo6c3RyaW5nPiB7CisgcHVibGlj
OgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRl
cmZhY2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNo
ZXJCYXNlPHN0ZDo6c3RyaW5nPihpbXBsKSB7fQorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1h
dGNoZXJJbnRlcmZhY2U8c3RkOjpzdHJpbmc+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8c3RkOjpzdHJpbmc+KGltcGwpIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0s
IHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVyPgorICBNYXRjaGVyKE0m
JiBtKSAgLy8gTk9MSU5UCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxzdGQ6OnN0cmlu
Zz4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0
ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEg
c3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcyk7ICAvLyBOT0xJ
TlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUgImZvbyIgaW5zdGVhZCBvZiBFcSgi
Zm9vIikgc29tZXRpbWVzLgorICBNYXRjaGVyKGNvbnN0IGNoYXIqIHMpOyAgLy8gTk9MSU5UCit9
OworCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisvLyBUaGUgZm9sbG93aW5n
IHR3byBzcGVjaWFsaXphdGlvbnMgYWxsb3cgdGhlIHVzZXIgdG8gd3JpdGUgc3RyCisvLyBpbnN0
ZWFkIG9mIEVxKHN0cikgYW5kICJmb28iIGluc3RlYWQgb2YgRXEoImZvbyIpIHdoZW4gYSBhYnNs
OjpzdHJpbmdfdmlldworLy8gbWF0Y2hlciBpcyBleHBlY3RlZC4KK3RlbXBsYXRlIDw+CitjbGFz
cyBHVEVTVF9BUElfIE1hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPgorICAgIDog
cHVibGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxjb25zdCBpbnRlcm5hbDo6U3RyaW5nVmlldyY+
IHsKKyBwdWJsaWM6CisgIE1hdGNoZXIoKSB7fQorCisgIGV4cGxpY2l0IE1hdGNoZXIoY29uc3Qg
TWF0Y2hlckludGVyZmFjZTxjb25zdCBpbnRlcm5hbDo6U3RyaW5nVmlldyY+KiBpbXBsKQorICAg
ICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPihp
bXBsKSB7fQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNPjo6dHlw
ZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hlcihNJiYgbSkgIC8vIE5PTElOVAorICAgICAg
OiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPihzdGQ6
OmZvcndhcmQ8TT4obSkpIHsKKyAgfQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBz
dHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3Rk
OjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5P
TElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVx
KCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQK
KworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFzcyBhYnNsOjpzdHJpbmdfdmlld3Mgb3Igc3Rk
OjpzdHJpbmdfdmlld3MgZGlyZWN0bHkuCisgIE1hdGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcg
cyk7ICAvLyBOT0xJTlQKK307CisKK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElfIE1hdGNo
ZXI8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+CisgICAgOiBwdWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJC
YXNlPGludGVybmFsOjpTdHJpbmdWaWV3PiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30KKwor
ICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3QgaW50ZXJuYWw6
OlN0cmluZ1ZpZXcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGludGVy
bmFsOjpTdHJpbmdWaWV3PihpbXBsKSB7fQorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNo
ZXJJbnRlcmZhY2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+KiBpbXBsKQorICAgICAgOiBpbnRlcm5h
bDo6TWF0Y2hlckJhc2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+KGltcGwpIHt9CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNl
PAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVy
PgorICBNYXRjaGVyKE0mJiBtKSAgLy8gTk9MSU5UCisgICAgICA6IGludGVybmFsOjpNYXRjaGVy
QmFzZTxpbnRlcm5hbDo6U3RyaW5nVmlldz4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8v
IEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1l
cywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNv
bnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0
byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIo
Y29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFz
cyBhYnNsOjpzdHJpbmdfdmlld3Mgb3Igc3RkOjpzdHJpbmdfdmlld3MgZGlyZWN0bHkuCisgIE1h
dGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgcyk7ICAvLyBOT0xJTlQKK307CisjZW5kaWYgIC8v
IEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworCisvLyBQcmludHMgYSBtYXRjaGVyIGlu
IGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGQ6Om9z
dHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgTWF0Y2hlcjxUPiYgbWF0
Y2hlcikgeworICBtYXRjaGVyLkRlc2NyaWJlVG8oJm9zKTsKKyAgcmV0dXJuIG9zOworfQorCisv
LyBUaGUgUG9seW1vcnBoaWNNYXRjaGVyIGNsYXNzIHRlbXBsYXRlIG1ha2VzIGl0IGVhc3kgdG8g
aW1wbGVtZW50IGEKKy8vIHBvbHltb3JwaGljIG1hdGNoZXIgKGkuZS4gYSBtYXRjaGVyIHRoYXQg
Y2FuIG1hdGNoIHZhbHVlcyBvZiBtb3JlCisvLyB0aGFuIG9uZSB0eXBlLCBlLmcuIEVxKG4pIGFu
ZCBOb3ROdWxsKCkpLgorLy8KKy8vIFRvIGRlZmluZSBhIHBvbHltb3JwaGljIG1hdGNoZXIsIGEg
dXNlciBzaG91bGQgcHJvdmlkZSBhbiBJbXBsCisvLyBjbGFzcyB0aGF0IGhhcyBhIERlc2NyaWJl
VG8oKSBtZXRob2QgYW5kIGEgRGVzY3JpYmVOZWdhdGlvblRvKCkKKy8vIG1ldGhvZCwgYW5kIGRl
ZmluZSBhIG1lbWJlciBmdW5jdGlvbiAob3IgbWVtYmVyIGZ1bmN0aW9uIHRlbXBsYXRlKQorLy8K
Ky8vICAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3QgVmFsdWUmIHZhbHVlLAorLy8gICAgICAg
ICAgICAgICAgICAgICAgICBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3Q7Cisv
LworLy8gU2VlIHRoZSBkZWZpbml0aW9uIG9mIE5vdE51bGwoKSBmb3IgYSBjb21wbGV0ZSBleGFt
cGxlLgordGVtcGxhdGUgPGNsYXNzIEltcGw+CitjbGFzcyBQb2x5bW9ycGhpY01hdGNoZXIgewor
IHB1YmxpYzoKKyAgZXhwbGljaXQgUG9seW1vcnBoaWNNYXRjaGVyKGNvbnN0IEltcGwmIGFuX2lt
cGwpIDogaW1wbF8oYW5faW1wbCkge30KKworICAvLyBSZXR1cm5zIGEgbXV0YWJsZSByZWZlcmVu
Y2UgdG8gdGhlIHVuZGVybHlpbmcgbWF0Y2hlcgorICAvLyBpbXBsZW1lbnRhdGlvbiBvYmplY3Qu
CisgIEltcGwmIG11dGFibGVfaW1wbCgpIHsgcmV0dXJuIGltcGxfOyB9CisKKyAgLy8gUmV0dXJu
cyBhbiBpbW11dGFibGUgcmVmZXJlbmNlIHRvIHRoZSB1bmRlcmx5aW5nIG1hdGNoZXIKKyAgLy8g
aW1wbGVtZW50YXRpb24gb2JqZWN0LgorICBjb25zdCBJbXBsJiBpbXBsKCkgY29uc3QgeyByZXR1
cm4gaW1wbF87IH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgTWF0Y2hl
cjxUPigpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hlcjxUPihuZXcgTW9ub21vcnBoaWNJbXBs
PGNvbnN0IFQmPihpbXBsXykpOworICB9CisKKyBwcml2YXRlOgorICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgY2xhc3MgTW9ub21vcnBoaWNJbXBsIDogcHVibGljIE1hdGNoZXJJbnRlcmZhY2U8
VD4geworICAgcHVibGljOgorICAgIGV4cGxpY2l0IE1vbm9tb3JwaGljSW1wbChjb25zdCBJbXBs
JiBpbXBsKSA6IGltcGxfKGltcGwpIHt9CisKKyAgICB2b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9z
dHJlYW0qIG9zKSBjb25zdCBvdmVycmlkZSB7IGltcGxfLkRlc2NyaWJlVG8ob3MpOyB9CisKKyAg
ICB2b2lkIERlc2NyaWJlTmVnYXRpb25Ubyg6OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IG92ZXJy
aWRlIHsKKyAgICAgIGltcGxfLkRlc2NyaWJlTmVnYXRpb25Ubyhvcyk7CisgICAgfQorCisgICAg
Ym9vbCBNYXRjaEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikg
Y29uc3Qgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIGltcGxfLk1hdGNoQW5kRXhwbGFpbih4LCBs
aXN0ZW5lcik7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGNvbnN0IEltcGwgaW1wbF87Cisg
IH07CisKKyAgSW1wbCBpbXBsXzsKK307CisKKy8vIENyZWF0ZXMgYSBtYXRjaGVyIGZyb20gaXRz
IGltcGxlbWVudGF0aW9uLgorLy8gREVQUkVDQVRFRDogRXNwZWNpYWxseSBpbiB0aGUgZ2VuZXJp
YyBjb2RlLCBwcmVmZXI6CisvLyAgIE1hdGNoZXI8VD4obmV3IE15TWF0Y2hlckltcGw8Y29uc3Qg
VCY+KC4uLikpOworLy8KKy8vIE1ha2VNYXRjaGVyIG1heSBjcmVhdGUgYSBNYXRjaGVyIHRoYXQg
YWNjZXB0cyBpdHMgYXJndW1lbnQgYnkgdmFsdWUsIHdoaWNoCisvLyBsZWFkcyB0byB1bm5lY2Vz
c2FyeSBjb3BpZXMgJiBsYWNrIG9mIHN1cHBvcnQgZm9yIG5vbi1jb3B5YWJsZSB0eXBlcy4KK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIE1hdGNoZXI8VD4gTWFrZU1hdGNoZXIoY29uc3Qg
TWF0Y2hlckludGVyZmFjZTxUPiogaW1wbCkgeworICByZXR1cm4gTWF0Y2hlcjxUPihpbXBsKTsK
K30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50
YXRpb24uICBUaGlzIGlzCisvLyBlYXNpZXIgdG8gdXNlIHRoYW4gdGhlIFBvbHltb3JwaGljTWF0
Y2hlcjxJbXBsPiBjb25zdHJ1Y3RvciBhcyBpdAorLy8gZG9lc24ndCByZXF1aXJlIHlvdSB0byBl
eHBsaWNpdGx5IHdyaXRlIHRoZSB0ZW1wbGF0ZSBhcmd1bWVudCwgZS5nLgorLy8KKy8vICAgTWFr
ZVBvbHltb3JwaGljTWF0Y2hlcihmb28pOworLy8gdnMKKy8vICAgUG9seW1vcnBoaWNNYXRjaGVy
PFR5cGVPZkZvbz4oZm9vKTsKK3RlbXBsYXRlIDxjbGFzcyBJbXBsPgoraW5saW5lIFBvbHltb3Jw
aGljTWF0Y2hlcjxJbXBsPiBNYWtlUG9seW1vcnBoaWNNYXRjaGVyKGNvbnN0IEltcGwmIGltcGwp
IHsKKyAgcmV0dXJuIFBvbHltb3JwaGljTWF0Y2hlcjxJbXBsPihpbXBsKTsKK30KKworbmFtZXNw
YWNlIGludGVybmFsIHsKKy8vIEltcGxlbWVudHMgYSBtYXRjaGVyIHRoYXQgY29tcGFyZXMgYSBn
aXZlbiB2YWx1ZSB3aXRoIGEKKy8vIHByZS1zdXBwbGllZCB2YWx1ZSB1c2luZyBvbmUgb2YgdGhl
ID09LCA8PSwgPCwgZXRjLCBvcGVyYXRvcnMuICBUaGUKKy8vIHR3byB2YWx1ZXMgYmVpbmcgY29t
cGFyZWQgZG9uJ3QgaGF2ZSB0byBoYXZlIHRoZSBzYW1lIHR5cGUuCisvLworLy8gVGhlIG1hdGNo
ZXIgZGVmaW5lZCBoZXJlIGlzIHBvbHltb3JwaGljIChmb3IgZXhhbXBsZSwgRXEoNSkgY2FuIGJl
CisvLyB1c2VkIHRvIG1hdGNoIGFuIGludCwgYSBzaG9ydCwgYSBkb3VibGUsIGV0YykuICBUaGVy
ZWZvcmUgd2UgdXNlCisvLyBhIHRlbXBsYXRlIHR5cGUgY29udmVyc2lvbiBvcGVyYXRvciBpbiB0
aGUgaW1wbGVtZW50YXRpb24uCisvLworLy8gVGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBkZWZpbml0
aW9uIGFzc3VtZXMgdGhhdCB0aGUgUmhzIHBhcmFtZXRlciBpcworLy8gYSAiYmFyZSIgdHlwZSAo
aS5lLiBuZWl0aGVyICdjb25zdCBUJyBub3IgJ1QmJykuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRCwg
dHlwZW5hbWUgUmhzLCB0eXBlbmFtZSBPcD4KK2NsYXNzIENvbXBhcmlzb25CYXNlIHsKKyBwdWJs
aWM6CisgIGV4cGxpY2l0IENvbXBhcmlzb25CYXNlKGNvbnN0IFJocyYgcmhzKSA6IHJoc18ocmhz
KSB7fQorCisgIHVzaW5nIGlzX2d0ZXN0X21hdGNoZXIgPSB2b2lkOworCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBMaHM+CisgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKGNvbnN0IExocyYgbGhzLCBzdGQ6
Om9zdHJlYW0qKSBjb25zdCB7CisgICAgcmV0dXJuIE9wKCkobGhzLCBVbndyYXAocmhzXykpOwor
ICB9CisgIHZvaWQgRGVzY3JpYmVUbyhzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCB7CisgICAgKm9z
IDw8IEQ6OkRlc2MoKSA8PCAiICI7CisgICAgVW5pdmVyc2FsUHJpbnQoVW53cmFwKHJoc18pLCBv
cyk7CisgIH0KKyAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oc3RkOjpvc3RyZWFtKiBvcykgY29u
c3QgeworICAgICpvcyA8PCBEOjpOZWdhdGVkRGVzYygpIDw8ICIgIjsKKyAgICBVbml2ZXJzYWxQ
cmludChVbndyYXAocmhzXyksIG9zKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CisgIHN0YXRpYyBjb25zdCBUJiBVbndyYXAoY29uc3QgVCYgdikgeworICAgIHJl
dHVybiB2OworICB9CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBzdGF0aWMgY29uc3QgVCYg
VW53cmFwKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gdikgeworICAgIHJldHVybiB2OworICB9
CisKKyAgUmhzIHJoc187Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgorY2xhc3MgRXFN
YXRjaGVyIDogcHVibGljIENvbXBhcmlzb25CYXNlPEVxTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUVx
PiB7CisgcHVibGljOgorICBleHBsaWNpdCBFcU1hdGNoZXIoY29uc3QgUmhzJiByaHMpCisgICAg
ICA6IENvbXBhcmlzb25CYXNlPEVxTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUVxPihyaHMpIHsgfQor
ICBzdGF0aWMgY29uc3QgY2hhciogRGVzYygpIHsgcmV0dXJuICJpcyBlcXVhbCB0byI7IH0KKyAg
c3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0IGVxdWFsIHRv
IjsgfQorfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+CitjbGFzcyBOZU1hdGNoZXIgOiBwdWJs
aWMgQ29tcGFyaXNvbkJhc2U8TmVNYXRjaGVyPFJocz4sIFJocywgQW55TmU+IHsKKyBwdWJsaWM6
CisgIGV4cGxpY2l0IE5lTWF0Y2hlcihjb25zdCBSaHMmIHJocykKKyAgICAgIDogQ29tcGFyaXNv
bkJhc2U8TmVNYXRjaGVyPFJocz4sIFJocywgQW55TmU+KHJocykgeyB9CisgIHN0YXRpYyBjb25z
dCBjaGFyKiBEZXNjKCkgeyByZXR1cm4gImlzbid0IGVxdWFsIHRvIjsgfQorICBzdGF0aWMgY29u
c3QgY2hhciogTmVnYXRlZERlc2MoKSB7IHJldHVybiAiaXMgZXF1YWwgdG8iOyB9Cit9OwordGVt
cGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIEx0TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29u
QmFzZTxMdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMdD4geworIHB1YmxpYzoKKyAgZXhwbGljaXQg
THRNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxMdE1hdGNo
ZXI8UmhzPiwgUmhzLCBBbnlMdD4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2Mo
KSB7IHJldHVybiAiaXMgPCI7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkg
eyByZXR1cm4gImlzbid0IDwiOyB9Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNz
IEd0TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxHdE1hdGNoZXI8UmhzPiwgUmhzLCBB
bnlHdD4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgR3RNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQor
ICAgICAgOiBDb21wYXJpc29uQmFzZTxHdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlHdD4ocmhzKSB7
IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgPiI7IH0KKyAgc3Rh
dGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0ID4iOyB9Cit9Owor
dGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIExlTWF0Y2hlciA6IHB1YmxpYyBDb21wYXJp
c29uQmFzZTxMZU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMZT4geworIHB1YmxpYzoKKyAgZXhwbGlj
aXQgTGVNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxMZU1h
dGNoZXI8UmhzPiwgUmhzLCBBbnlMZT4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERl
c2MoKSB7IHJldHVybiAiaXMgPD0iOyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVz
YygpIHsgcmV0dXJuICJpc24ndCA8PSI7IH0KK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgor
Y2xhc3MgR2VNYXRjaGVyIDogcHVibGljIENvbXBhcmlzb25CYXNlPEdlTWF0Y2hlcjxSaHM+LCBS
aHMsIEFueUdlPiB7CisgcHVibGljOgorICBleHBsaWNpdCBHZU1hdGNoZXIoY29uc3QgUmhzJiBy
aHMpCisgICAgICA6IENvbXBhcmlzb25CYXNlPEdlTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUdlPihy
aHMpIHsgfQorICBzdGF0aWMgY29uc3QgY2hhciogRGVzYygpIHsgcmV0dXJuICJpcyA+PSI7IH0K
KyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0ID49Ijsg
fQorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aXNfY29uc3RydWN0aWJs
ZTxzdGQ6OnN0cmluZywgVD46OnZhbHVlPjo6dHlwZT4KK3VzaW5nIFN0cmluZ0xpa2UgPSBUOwor
CisvLyBJbXBsZW1lbnRzIHBvbHltb3JwaGljIG1hdGNoZXJzIE1hdGNoZXNSZWdleChyZWdleCkg
YW5kCisvLyBDb250YWluc1JlZ2V4KHJlZ2V4KSwgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSBNYXRj
aGVyPFQ+IGFzIGxvbmcgYXMKKy8vIFQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIHN0cmluZy4KK2Ns
YXNzIE1hdGNoZXNSZWdleE1hdGNoZXIgeworIHB1YmxpYzoKKyAgTWF0Y2hlc1JlZ2V4TWF0Y2hl
cihjb25zdCBSRSogcmVnZXgsIGJvb2wgZnVsbF9tYXRjaCkKKyAgICAgIDogcmVnZXhfKHJlZ2V4
KSwgZnVsbF9tYXRjaF8oZnVsbF9tYXRjaCkge30KKworI2lmIEdURVNUX0lOVEVSTkFMX0hBU19T
VFJJTkdfVklFVworICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBpbnRlcm5hbDo6U3RyaW5n
VmlldyYgcywKKyAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlz
dGVuZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hBbmRFeHBsYWluKHN0ZDo6c3RyaW5nKHMp
LCBsaXN0ZW5lcik7CisgIH0KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19W
SUVXCisKKyAgLy8gQWNjZXB0cyBwb2ludGVyIHR5cGVzLCBwYXJ0aWN1bGFybHk6CisgIC8vICAg
Y29uc3QgY2hhcioKKyAgLy8gICBjaGFyKgorICAvLyAgIGNvbnN0IHdjaGFyX3QqCisgIC8vICAg
d2NoYXJfdCoKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgorICBib29sIE1hdGNoQW5k
RXhwbGFpbihDaGFyVHlwZSogcywgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0
IHsKKyAgICByZXR1cm4gcyAhPSBudWxscHRyICYmIE1hdGNoQW5kRXhwbGFpbihzdGQ6OnN0cmlu
ZyhzKSwgbGlzdGVuZXIpOworICB9CisKKyAgLy8gTWF0Y2hlcyBhbnl0aGluZyB0aGF0IGNhbiBj
b252ZXJ0IHRvIHN0ZDo6c3RyaW5nLgorICAvLworICAvLyBUaGlzIGlzIGEgdGVtcGxhdGUsIG5v
dCBqdXN0IGEgcGxhaW4gZnVuY3Rpb24gd2l0aCBjb25zdCBzdGQ6OnN0cmluZyYsCisgIC8vIGJl
Y2F1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgaGFzIHNvbWUgaW50ZXJmZXJpbmcgbm9uLWV4cGxpY2l0
IGNvbnN0cnVjdG9ycy4KKyAgdGVtcGxhdGUgPGNsYXNzIE1hdGNoZWVTdHJpbmdUeXBlPgorICBi
b29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBNYXRjaGVlU3RyaW5nVHlwZSYgcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5lciogLyogbGlzdGVuZXIgKi8pIGNvbnN0
IHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgczIocyk7CisgICAgcmV0dXJuIGZ1bGxfbWF0Y2hf
ID8gUkU6OkZ1bGxNYXRjaChzMiwgKnJlZ2V4XykKKyAgICAgICAgICAgICAgICAgICAgICAgOiBS
RTo6UGFydGlhbE1hdGNoKHMyLCAqcmVnZXhfKTsKKyAgfQorCisgIHZvaWQgRGVzY3JpYmVUbyg6
OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKyAgICAqb3MgPDwgKGZ1bGxfbWF0Y2hfID8gIm1h
dGNoZXMiIDogImNvbnRhaW5zIikgPDwgIiByZWd1bGFyIGV4cHJlc3Npb24gIjsKKyAgICBVbml2
ZXJzYWxQcmludGVyPHN0ZDo6c3RyaW5nPjo6UHJpbnQocmVnZXhfLT5wYXR0ZXJuKCksIG9zKTsK
KyAgfQorCisgIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29u
c3QgeworICAgICpvcyA8PCAiZG9lc24ndCAiIDw8IChmdWxsX21hdGNoXyA/ICJtYXRjaCIgOiAi
Y29udGFpbiIpCisgICAgICAgIDw8ICIgcmVndWxhciBleHByZXNzaW9uICI7CisgICAgVW5pdmVy
c2FsUHJpbnRlcjxzdGQ6OnN0cmluZz46OlByaW50KHJlZ2V4Xy0+cGF0dGVybigpLCBvcyk7Cisg
IH0KKworIHByaXZhdGU6CisgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxjb25zdCBSRT4gcmVnZXhf
OworICBjb25zdCBib29sIGZ1bGxfbWF0Y2hfOworfTsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgZnVsbHkgbWF0Y2hlcyByZWd1bGFyIGV4cHJl
c3Npb24gJ3JlZ2V4Jy4KKy8vIFRoZSBtYXRjaGVyIHRha2VzIG93bmVyc2hpcCBvZiAncmVnZXgn
LgoraW5saW5lIFBvbHltb3JwaGljTWF0Y2hlcjxpbnRlcm5hbDo6TWF0Y2hlc1JlZ2V4TWF0Y2hl
cj4gTWF0Y2hlc1JlZ2V4KAorICAgIGNvbnN0IGludGVybmFsOjpSRSogcmVnZXgpIHsKKyAgcmV0
dXJuIE1ha2VQb2x5bW9ycGhpY01hdGNoZXIoaW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXIo
cmVnZXgsIHRydWUpKTsKK30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUID0gc3RkOjpzdHJpbmc+CitQ
b2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IE1hdGNoZXNS
ZWdleCgKKyAgICBjb25zdCBpbnRlcm5hbDo6U3RyaW5nTGlrZTxUPiYgcmVnZXgpIHsKKyAgcmV0
dXJuIE1hdGNoZXNSZWdleChuZXcgaW50ZXJuYWw6OlJFKHN0ZDo6c3RyaW5nKHJlZ2V4KSkpOwor
fQorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9u
ICdyZWdleCcuCisvLyBUaGUgbWF0Y2hlciB0YWtlcyBvd25lcnNoaXAgb2YgJ3JlZ2V4Jy4KK2lu
bGluZSBQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IENv
bnRhaW5zUmVnZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlJFKiByZWdleCkgeworICByZXR1cm4g
TWFrZVBvbHltb3JwaGljTWF0Y2hlcihpbnRlcm5hbDo6TWF0Y2hlc1JlZ2V4TWF0Y2hlcihyZWdl
eCwgZmFsc2UpKTsKK30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUID0gc3RkOjpzdHJpbmc+CitQb2x5
bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IENvbnRhaW5zUmVn
ZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ0xpa2U8VD4mIHJlZ2V4KSB7CisgIHJldHVy
biBDb250YWluc1JlZ2V4KG5ldyBpbnRlcm5hbDo6UkUoc3RkOjpzdHJpbmcocmVnZXgpKSk7Cit9
CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhbnl0aGlu
ZyBlcXVhbCB0byB4LgorLy8gTm90ZTogaWYgdGhlIHBhcmFtZXRlciBvZiBFcSgpIHdlcmUgZGVj
bGFyZWQgYXMgY29uc3QgVCYsIEVxKCJmb28iKQorLy8gd291bGRuJ3QgY29tcGlsZS4KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIGludGVybmFsOjpFcU1hdGNoZXI8VD4gRXEoVCB4KSB7
IHJldHVybiBpbnRlcm5hbDo6RXFNYXRjaGVyPFQ+KHgpOyB9CisKKy8vIENvbnN0cnVjdHMgYSBN
YXRjaGVyPFQ+IGZyb20gYSAndmFsdWUnIG9mIHR5cGUgVC4gIFRoZSBjb25zdHJ1Y3RlZAorLy8g
bWF0Y2hlciBtYXRjaGVzIGFueSB2YWx1ZSB0aGF0J3MgZXF1YWwgdG8gJ3ZhbHVlJy4KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorTWF0Y2hlcjxUPjo6TWF0Y2hlcihUIHZhbHVlKSB7ICp0aGlzID0g
RXEodmFsdWUpOyB9CisKKy8vIENyZWF0ZXMgYSBtb25vbW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0
Y2hlcyBhbnl0aGluZyB3aXRoIHR5cGUgTGhzCisvLyBhbmQgZXF1YWwgdG8gcmhzLiAgQSB1c2Vy
IG1heSBuZWVkIHRvIHVzZSB0aGlzIGluc3RlYWQgb2YgRXEoLi4uKQorLy8gaW4gb3JkZXIgdG8g
cmVzb2x2ZSBhbiBvdmVybG9hZGluZyBhbWJpZ3VpdHkuCisvLworLy8gVHlwZWRFcTxUPih4KSBp
cyBqdXN0IGEgY29udmVuaWVudCBzaG9ydC1oYW5kIGZvciBNYXRjaGVyPFQ+KEVxKHgpKQorLy8g
b3IgTWF0Y2hlcjxUPih4KSwgYnV0IG1vcmUgcmVhZGFibGUgdGhhbiB0aGUgbGF0dGVyLgorLy8K
Ky8vIFdlIGNvdWxkIGRlZmluZSBzaW1pbGFyIG1vbm9tb3JwaGljIG1hdGNoZXJzIGZvciBvdGhl
ciBjb21wYXJpc29uCisvLyBvcGVyYXRpb25zIChlLmcuIFR5cGVkTHQsIFR5cGVkR2UsIGFuZCBl
dGMpLCBidXQgZGVjaWRlZCBub3QgdG8gZG8KKy8vIGl0IHlldCBhcyB0aG9zZSBhcmUgdXNlZCBt
dWNoIGxlc3MgdGhhbiBFcSgpIGluIHByYWN0aWNlLiAgQSB1c2VyCisvLyBjYW4gYWx3YXlzIHdy
aXRlIE1hdGNoZXI8VD4oTHQoNSkpIHRvIGJlIGV4cGxpY2l0IGFib3V0IHRoZSB0eXBlLAorLy8g
Zm9yIGV4YW1wbGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHM+Citpbmxp
bmUgTWF0Y2hlcjxMaHM+IFR5cGVkRXEoY29uc3QgUmhzJiByaHMpIHsgcmV0dXJuIEVxKHJocyk7
IH0KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGFueXRo
aW5nID49IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5saW5lIGludGVybmFsOjpHZU1h
dGNoZXI8UmhzPiBHZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJuYWw6OkdlTWF0Y2hlcjxSaHM+
KHgpOworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0IG1hdGNoZXMg
YW55dGhpbmcgPiB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBpbnRlcm5hbDo6
R3RNYXRjaGVyPFJocz4gR3QoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpHdE1hdGNoZXI8
UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRj
aGVzIGFueXRoaW5nIDw9IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5saW5lIGludGVy
bmFsOjpMZU1hdGNoZXI8UmhzPiBMZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJuYWw6OkxlTWF0
Y2hlcjxSaHM+KHgpOworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0
IG1hdGNoZXMgYW55dGhpbmcgPCB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBp
bnRlcm5hbDo6THRNYXRjaGVyPFJocz4gTHQoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpM
dE1hdGNoZXI8UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIg
dGhhdCBtYXRjaGVzIGFueXRoaW5nICE9IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5s
aW5lIGludGVybmFsOjpOZU1hdGNoZXI8UmhzPiBOZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJu
YWw6Ok5lTWF0Y2hlcjxSaHM+KHgpOworfQorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKworR1RF
U1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MSA1MDQ2CisKKyNlbmRpZiAg
Ly8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01BVENIRVJTX0hfCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1lc3NhZ2UuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCmlu
ZGV4IDVjYTA0MTYxNGNiMzU1OTIyZjM1NWI4OTNmOWM4NGEzYjdmNTJjNmYuLmJlY2ZkNDlmY2Jh
OWM1YWI5ODZlNGI0Mzk2YmM4MTQzYTNjNTg3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCkBAIC00NCwxMCArNDQs
MTIgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfTUVTU0FHRV9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X01FU1NBR0VfSF8KIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8c3N0cmVhbT4KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIK
IApAQCAtMTA2LDE0ICsxMDgsNiBAQCBjbGFzcyBHVEVTVF9BUElfIE1lc3NhZ2UgewogICAgICpz
c18gPDwgc3RyOwogICB9CiAKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8vIFN0cmVhbXMgYSB2
YWx1ZSAoZWl0aGVyIGEgcG9pbnRlciBvciBub3QpIHRvIHRoaXMgb2JqZWN0LgotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0IFQmIHZh
bHVlKSB7Ci0gICAgU3RyZWFtSGVscGVyKHR5cGVuYW1lIGludGVybmFsOjppc19wb2ludGVyPFQ+
Ojp0eXBlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLSNlbHNlCiAgIC8vIFN0
cmVhbXMgYSBub24tcG9pbnRlciB2YWx1ZSB0byB0aGlzIG9iamVjdC4KICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiAgIGlubGluZSBNZXNzYWdlJiBvcGVyYXRvciA8PChjb25zdCBUJiB2YWwpIHsK
QEAgLTE1MSwxNCArMTQ1LDEzIEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAgIC8vIGFz
ICIobnVsbCkiLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgaW5saW5lIE1lc3NhZ2UmIG9w
ZXJhdG9yIDw8KFQqIGNvbnN0JiBwb2ludGVyKSB7ICAvLyBOT0xJTlQKLSAgICBpZiAocG9pbnRl
ciA9PSBOVUxMKSB7CisgICAgaWYgKHBvaW50ZXIgPT0gbnVsbHB0cikgewogICAgICAgKnNzXyA8
PCAiKG51bGwpIjsKICAgICB9IGVsc2UgewogICAgICAgKnNzXyA8PCBwb2ludGVyOwogICAgIH0K
ICAgICByZXR1cm4gKnRoaXM7CiAgIH0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgogCiAg
IC8vIFNpbmNlIHRoZSBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgYXJlIG92ZXJsb2FkZWQgZm9yIGJv
dGggbmFycm93CiAgIC8vIGFuZCB3aWRlIHN0cmVhbXMsIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlz
IHNwZWNpYWxpemVkIGRlZmluaXRpb24KQEAgLTE4NywxMiArMTgwLDYgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBNZXNzYWdlIHsKICAgTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgOjpzdGQ6OndzdHJp
bmcmIHdzdHIpOwogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNU
X0hBU19HTE9CQUxfV1NUUklORwotICAvLyBDb252ZXJ0cyB0aGUgZ2l2ZW4gd2lkZSBzdHJpbmcg
dG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYtOAotICAvLyBlbmNvZGluZywgYW5kIHN0
cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotICBNZXNzYWdlJiBvcGVy
YXRvciA8PChjb25zdCA6OndzdHJpbmcmIHdzdHIpOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xP
QkFMX1dTVFJJTkcKLQogICAvLyBHZXRzIHRoZSB0ZXh0IHN0cmVhbWVkIHRvIHRoaXMgb2JqZWN0
IHNvIGZhciBhcyBhbiBzdGQ6OnN0cmluZy4KICAgLy8gRWFjaCAnXDAnIGNoYXJhY3RlciBpbiB0
aGUgYnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIuCiAgIC8vCkBAIC0yMDAsMzEgKzE4Nyw4
IEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAgIHN0ZDo6c3RyaW5nIEdldFN0cmluZygp
IGNvbnN0OwogCiAgcHJpdmF0ZToKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8vIFRoZXNlIGFy
ZSBuZWVkZWQgYXMgdGhlIE5va2lhIFN5bWJpYW4gQ29tcGlsZXIgY2Fubm90IGRlY2lkZSBiZXR3
ZWVuCi0gIC8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBsYXRlLiBU
aGUgTm9raWEgY29tcGlsZXIgX2Nhbl8KLSAgLy8gZGVjaWRlIGJldHdlZW4gY2xhc3MgdGVtcGxh
dGUgc3BlY2lhbGl6YXRpb25zIGZvciBUIGFuZCBUKiwgc28gYQotICAvLyB0cjE6OnR5cGVfdHJh
aXRzLWxpa2UgaXNfcG9pbnRlciB3b3JrcywgYW5kIHdlIGNhbiBvdmVybG9hZCBvbiB0aGF0Lgot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIHZvaWQgU3RyZWFtSGVscGVyKGludGVy
bmFsOjp0cnVlX3R5cGUgLyppc19wb2ludGVyKi8sIFQqIHBvaW50ZXIpIHsKLSAgICBpZiAocG9p
bnRlciA9PSBOVUxMKSB7Ci0gICAgICAqc3NfIDw8ICIobnVsbCkiOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAqc3NfIDw8IHBvaW50ZXI7Ci0gICAgfQotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBpbmxpbmUgdm9pZCBTdHJlYW1IZWxwZXIoaW50ZXJuYWw6OmZhbHNlX3R5cGUgLyppc19w
b2ludGVyKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSkgewot
ICAgIC8vIFNlZSB0aGUgY29tbWVudHMgaW4gTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgVCYp
IGFib3ZlIGZvciB3aHkKLSAgICAvLyB3ZSBuZWVkIHRoaXMgdXNpbmcgc3RhdGVtZW50LgotICAg
IHVzaW5nIDo6b3BlcmF0b3IgPDw7Ci0gICAgKnNzXyA8PCB2YWx1ZTsKLSAgfQotI2VuZGlmICAv
LyBHVEVTVF9PU19TWU1CSUFOCi0KICAgLy8gV2UnbGwgaG9sZCB0aGUgdGV4dCBzdHJlYW1lZCB0
byB0aGlzIG9iamVjdCBoZXJlLgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6
OnN0cmluZ3N0cmVhbT4gc3NfOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8IDo6c3RkOjpzdHJp
bmdzdHJlYW0+IHNzXzsKIAogICAvLyBXZSBkZWNsYXJlIChidXQgZG9uJ3QgaW1wbGVtZW50KSB0
aGlzIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyCiAgIC8vIGZyb20gaW1wbGVtZW50aW5nIHRoZSBh
c3NpZ25tZW50IG9wZXJhdG9yLgpAQCAtMjUyLDQgKzIxNiw0IEBAIHN0ZDo6c3RyaW5nIFN0cmVh
bWFibGVUb1N0cmluZyhjb25zdCBUJiBzdHJlYW1hYmxlKSB7CiAKIEdURVNUX0RJU0FCTEVfTVND
X1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX01FU1NBR0VfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKaW5kZXggM2U5NWU0MzkwZTAwZTExNjMx
MGE0MjM4M2QyZTMwYjU4ZWRhNWYwZC4uODA0ZTcwMjgxN2IwM2I5MGEzZTc3ZmQ4YmRjOGEwMzdl
NzJmNWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9ndGVzdC1wYXJhbS10ZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKQEAgLTEsNyArMSwzIEBACi0vLyBUaGlzIGZpbGUg
d2FzIEdFTkVSQVRFRCBieSBjb21tYW5kOgotLy8gICAgIHB1bXAucHkgZ3Rlc3QtcGFyYW0tdGVz
dC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJpZ2h0IDIwMDgs
IEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KQEAgLTM0LDEyICszMCw5
IEBACiAvLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6
ZWQgdGVzdHMKIC8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBGcmFtZXdvcmsg
KEdvb2dsZSBUZXN0KQogLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQu
ICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBE
RUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCi0j
ZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCisjaWZuZGVm
IEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCiAKIC8vIFZhbHVlLXBh
cmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVy
ZW50CiAvLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhl
IHNhbWUgdGVzdC4KQEAgLTc1LDcgKzY4LDcgQEAgVEVTVF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFo
KSB7CiAgIC4uLgogfQogCi0vLyBGaW5hbGx5LCB5b3UgY2FuIHVzZSBJTlNUQU5USUFURV9URVNU
X0NBU0VfUCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdAorLy8gRmluYWxseSwgeW91IGNhbiB1c2Ug
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0CiAvLyBjYXNl
IHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50LiBHb29nbGUgVGVzdCBkZWZpbmVz
IGEgbnVtYmVyCiAvLyBvZiBmdW5jdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGVzdCBwYXJhbWV0ZXJz
LiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKIC8vIChzdXJwcmlzZSEpIHBhcmFtZXRlciBnZW5l
cmF0b3JzLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGljaApAQCAtOTYsMTcgKzg5LDE3
IEBAIFRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewogLy8gRm9yIG1vcmUgZGV0YWlscywg
c2VlIGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cK
IC8vIGluIHRoaXMgZmlsZS4KIC8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGlu
c3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCisvLyBUaGUgZm9sbG93
aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVz
dCBzdWl0ZQogLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgIm1lZW55IiwgIm1pbnkiLCBh
bmQgIm1vZSIuCiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRpYXRpb25OYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AoSW5zdGFudGlhdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoIm1lZW55IiwgIm1pbnkiLCAibW9lIikp
OwogCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJu
LCAoeWVzLCB5b3UKLS8vIGNhbiBpbnN0YW50aWF0ZSBpdCBtb3JlIHRoZW4gb25jZSkgdGhlIGZp
cnN0IGFyZ3VtZW50IHRvIHRoZQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaXMg
YSBwcmVmaXggdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZQotLy8gYWN0dWFsIHRlc3QgY2FzZSBu
YW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50CisvLyBj
YW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFuIG9uY2UpIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0
aGUKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpcyBhIHByZWZpeCB0aGF0IHdp
bGwgYmUgYWRkZWQgdG8gdGhlCisvLyBhY3R1YWwgdGVzdCBzdWl0ZSBuYW1lLiBSZW1lbWJlciB0
byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50CiAvLyBpbnN0YW50aWF0aW9ucy4g
VGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlCiAvLyB0aGVz
ZSBuYW1lczoKIC8vCkBAIC0xMjMsNyArMTE2LDcgQEAgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
SW5zdGFudGlhdGlvbk5hbWUsCiAvLyB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgImNhdCIgYW5kICJk
b2ciOgogCiBjb25zdCBjaGFyKiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsKLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4o
cGV0cykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFt
ZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogCiAvLyBUaGUgdGVzdHMgZnJvbSB0aGUgaW5z
dGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUgdGhlc2UgbmFtZXM6CiAvLwpAQCAtMTMyLDkgKzEy
NSw5IEBAIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwg
Rm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogLy8gICAgKiBBbm90aGVySW5zdGFudGlhdGlvbk5h
bWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wIGZvciAiY2F0IgogLy8gICAgKiBBbm90aGVySW5zdGFu
dGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xIGZvciAiZG9nIgogLy8KLS8vIFBsZWFz
ZSBub3RlIHRoYXQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agd2lsbCBpbnN0YW50aWF0ZSBhbGwg
dGVzdHMKLS8vIGluIHRoZSBnaXZlbiB0ZXN0IGNhc2UsIHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlv
bnMgY29tZSBiZWZvcmUgb3IKLS8vIEFGVEVSIHRoZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBz
dGF0ZW1lbnQuCisvLyBQbGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCB3
aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cworLy8gaW4gdGhlIGdpdmVuIHRlc3Qgc3VpdGUsIHdo
ZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMgY29tZSBiZWZvcmUgb3IKKy8vIEFGVEVSIHRoZSBJTlNU
QU5USUFURV9URVNUX1NVSVRFX1Agc3RhdGVtZW50LgogLy8KIC8vIFBsZWFzZSBhbHNvIG5vdGUg
dGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIHRvIHRoZQog
Ly8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpLCBhZnRlciBt
YWluKCkgaGFzIHN0YXJ0ZWQuCkBAIC0xNzgsMjYgKzE3MSwyMyBAQCBURVNUX1AoRGVyaXZlZFRl
c3QsIERvZXNCbGFoKSB7CiAKICNlbmRpZiAgLy8gMAogCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRp
bGl0eT4KLSNlbmRpZgorI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUgPHV0aWxpdHk+CiAK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIgorI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewogCiAvLyBGdW5jdGlvbnMgcHJv
ZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgogLy8KIC8vIEdvb2dsZSBUZXN0IHVzZXMgdGhl
c2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVlLQotLy8gcGFyYW1l
dGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRp
YXRlZAorLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBz
dWl0ZSBpcyBpbnN0YW50aWF0ZWQKIC8vIHdpdGggYSBwYXJ0aWN1bGFyIGdlbmVyYXRvciwgR29v
Z2xlIFRlc3QgY3JlYXRlcyBhbmQgcnVucyB0ZXN0cwogLy8gZm9yIGVhY2ggZWxlbWVudCBpbiB0
aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvci4KIC8vCi0vLyBJbiB0aGUgZm9s
bG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBhcmUgaW5zdGFudGlh
dGVkCisvLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEZv
b1Rlc3QgYXJlIGluc3RhbnRpYXRlZAogLy8gZWFjaCB0aHJlZSB0aW1lcyB3aXRoIHBhcmFtZXRl
ciB2YWx1ZXMgMywgNSwgYW5kIDg6CiAvLwogLy8gY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyBUZXN0
V2l0aFBhcmFtPGludD4geyAuLi4gfTsKQEAgLTIwNiw3ICsxOTYsNyBAQCBuYW1lc3BhY2UgdGVz
dGluZyB7CiAvLyB9CiAvLyBURVNUX1AoRm9vVGVzdCwgVGVzdFRoYXQpIHsKIC8vIH0KLS8vIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9vVGVzdCwgVmFsdWVzKDMsIDUs
IDgpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChUZXN0U2VxdWVuY2UsIEZvb1Rlc3Qs
IFZhbHVlcygzLCA1LCA4KSk7CiAvLwogCiAvLyBSYW5nZSgpIHJldHVybnMgZ2VuZXJhdG9ycyBw
cm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgpAQCAtMjYzLDEzICsyNTMs
MTMgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7
CiAvLwogLy8gRXhhbXBsZXM6CiAvLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0
ZXN0IGNhc2UgU3RyaW5nVGVzdAorLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0
IHN1aXRlIFN0cmluZ1Rlc3QKIC8vIGVhY2ggd2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIs
ICJiYXIiLCBhbmQgImJheiI6CiAvLwogLy8gY29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28i
LCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVu
Y2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3MpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChTdHJpbmdTZXF1ZW5jZSwgU3RyaW5nVGVzdCwgVmFsdWVzSW4oc3RyaW5ncykpOwog
Ly8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIFN0bFN0cmluZ1Rl
c3QKKy8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBzdWl0ZSBTdGxTdHJpbmdU
ZXN0CiAvLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2YWx1ZXMgImEiIGFuZCAiYiI6CiAv
LwogLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gR2V0UGFyYW1ldGVyU3RyaW5ncygp
IHsKQEAgLTI3OSw5ICsyNjksOSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2Uo
VCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIHY7CiAvLyB9CiAvLwotLy8gSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
U3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBh
cmFtZXRlclN0cmluZ3MoKSkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENoYXJTZXF1
ZW5jZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBTdGxTdHJpbmdUZXN0LAorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOwog
Ly8KIC8vCiAvLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0
CkBAIC0yOTQsMTYgKzI4NCwxNSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2Uo
VCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIGxpc3Q7CiAvLyB9CiAvLyA6OnN0ZDo6bGlz
dDxjaGFyPiBsID0gR2V0UGFyYW1ldGVyQ2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkp
OworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENoYXJTZXF1ZW5jZTIsCisvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzSW4obC5iZWdpbigpLCBsLmVuZCgpKSk7CiAvLwogdGVtcGxhdGUgPHR5cGVuYW1lIEZv
cndhcmRJdGVyYXRvcj4KIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjwKLSAgdHlwZW5hbWUgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVf
dHlwZT4KKyAgICB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0b3I+
Ojp2YWx1ZV90eXBlPgogVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRl
cmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRl
cmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlw
ZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0
b3I+Ojp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKICAgcmV0dXJuIGludGVybmFsOjpQYXJhbUdlbmVy
YXRvcjxQYXJhbVR5cGU+KAogICAgICAgbmV3IGludGVybmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFu
Z2VHZW5lcmF0b3I8UGFyYW1UeXBlPihiZWdpbiwgZW5kKSk7CiB9CkBAIC0zMjYsODY5ICszMTUs
MjIgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVf
dHlwZT4gVmFsdWVzSW4oCiAvLyBWYWx1ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQogLy8gICAt
IHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYx
LCB2MiwgLi4uLCB2Ti4KIC8vCi0vLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVz
dHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVzdCBlYWNoCisvLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0
YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEJhclRlc3QgZWFjaAogLy8gd2l0aCB2YWx1
ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NB
U0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikp
OworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE51bVNlcXVlbmNlLAorLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgIEJhclRlc3QsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikpOwogLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRl
c3RzIGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCisv
LyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3Qgc3VpdGUgQmF6VGVzdCBlYWNoIHdp
dGggdmFsdWVzIDEsIDIsIDMuNS4KIC8vIFRoZSBleGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRl
cGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIgaW4gQmF6VGVzdC4KIC8vCi0vLyBJTlNUQU5U
SUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAz
LjUpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGbG9hdGluZ051bWJlcnMsIEJhelRl
c3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKIC8vCi0vLyBDdXJyZW50bHksIFZhbHVlcygpIHN1cHBv
cnRzIGZyb20gMSB0byA1MCBwYXJhbWV0ZXJzLgogLy8KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4K
LWludGVybmFsOjpWYWx1ZUFycmF5MTxUMT4gVmFsdWVzKFQxIHYxKSB7Ci0gIHJldHVybiBpbnRl
cm5hbDo6VmFsdWVBcnJheTE8VDE+KHYxKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwgVDI+IFZhbHVlcyhUMSB2MSwg
VDIgdjIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwgVDI+KHYxLCB2Mik7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBUMiwgVDM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM8VDEsIFQyLCBUMz4odjEsIHYy
LCB2Myk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUND4KLWludGVybmFsOjpWYWx1ZUFycmF5NDxUMSwgVDIsIFQzLCBUND4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTQ8VDEsIFQyLCBUMywgVDQ+KHYxLCB2MiwgdjMsIHY0KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNT4KLWludGVybmFsOjpWYWx1ZUFycmF5NTxUMSwgVDIsIFQzLCBUNCwgVDU+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXk1PFQxLCBUMiwgVDMsIFQ0LCBUNT4odjEsIHYyLCB2MywgdjQs
IHY1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWludGVybmFs
OjpWYWx1ZUFycmF5NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4odjEsIHYyLCB2MywgdjQsIHY1LCB2
Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBWYWx1
ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nykg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3Pih2MSwgdjIsIHYzLCB2NCwgdjUsCi0gICAgICB2NiwgdjcpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiBWYWx1ZXMo
VDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5ODxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDg+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk5PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjkpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5Pih2MSwg
djIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLWludGVybmFsOjpWYWx1ZUFycmF5MTA8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBWYWx1ZXMoVDEgdjEsCi0gICAgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwKSB7
Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMD4odjEsCi0gICAgICB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTExPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwKLSAgICBUMTE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQx
MSB2MTEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLAotICAgICAgVDExPih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWludGVybmFsOjpWYWx1
ZUFycmF5MTI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgVDEyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyKSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2
NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsCi0gICAgVDEzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEy
LCBUMTM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIs
IHYxMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1pbnRlcm5h
bDo6VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICBUMTQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2
MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE1PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICBUMTQsIFQxNT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXkxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNj4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2
OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwK
LSAgICBUMTYgdjE2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTE2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQx
NCwgVDE1LCBUMTY+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTc+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywK
LSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNykgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTc+KHYxLCB2MiwgdjMsIHY0
LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1
LCB2MTYsIHYxNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LAotICAgIFQ3IHY3
LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOD4odjEs
IHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxOTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwKLSAgICBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+KHYxLCB2MiwgdjMs
IHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwg
djE1LCB2MTYsIHYxNywgdjE4LCB2MTkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+Ci1pbnRlcm5hbDo6VmFs
dWVBcnJheTIwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IFZhbHVlcyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCkg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjA+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LAotICAgICAgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYy
MCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMT4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAgIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywKLSAgICBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIxPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2
LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2
MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjEsIHR5cGVuYW1lIFQyMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjI8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBU
MjIgdjIyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIyPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+KHYxLCB2MiwgdjMsIHY0LAotICAg
ICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYs
IHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIyKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjM+Ci1pbnRlcm5hbDo6
VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0g
ICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzKSB7Ci0gIHJl
dHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4odjEsIHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgs
IHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjQ8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+KHYx
LCB2MiwKLSAgICAgIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LAotICAgICAgdjE5LCB2MjAsIHYyMSwgdjIyLCB2
MjMsIHYyNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNT4KLWludGVybmFsOjpW
YWx1ZUFycmF5MjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjU+IFZhbHVlcyhUMSB2MSwKLSAgICBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsCi0g
ICAgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywg
VDE4IHYxOCwgVDE5IHYxOSwKLSAgICBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LCBUMjQgdjI0LCBUMjUgdjI1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI1PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjU+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywKLSAgICAgIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjY8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAg
VDI2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUs
Ci0gICAgVDI2IHYyNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNjxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LAotICAgICAgVDI2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LAotICAgICAgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjc+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgVDI3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYyNykgewotICByZXR1
cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjc+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LAot
ICAgICAgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2
MjUsIHYyNiwgdjI3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICBUMjg+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBU
MjYsIFQyNywgVDI4Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsCi0gICAgICB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywKLSAgICAgIHYyOCk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI5PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMg
djIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mjk8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwg
djIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LAotICAgICAgdjI3LCB2MjgsIHYyOSk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5MzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzA+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsCi0gICAgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwKLSAgICBUMjUgdjI1
LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwKSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsCi0g
ICAgICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYy
MiwgdjIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAg
IFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQz
MCB2MzAsIFQzMSB2MzEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzE+KHYxLCB2MiwgdjMsIHY0LCB2
NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2
MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAotICAgICAgdjI1LCB2
MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjks
IFQzMCwgVDMxLCBUMzI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBU
MjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAg
ICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMj4o
djEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYxMCwgdjExLCB2MTIs
IHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLAot
ICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMik7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotaW50ZXJuYWw6OlZhbHVlQXJy
YXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcg
djcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBU
MjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUs
IFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0g
ICAgVDMyIHYzMiwgVDMzIHYzMykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzMzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+KHYx
LCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywKLSAg
ICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMyk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwKLSAgICBUMjMg
djIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5
LCBUMzAgdjMwLAotICAgIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYx
NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAgICB2MjMsIHYyNCwgdjI1LCB2MjYsIHYy
NywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0KTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1PgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkzNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwKLSAgICBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LAotICAgIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQz
NSB2MzUpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsCi0gICAgICB2MjIsIHYyMywg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYz
NSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJh
eTM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0gICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwKLSAgICBU
MzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYg
djM2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM2PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBU
MjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4odjEs
IHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYy
MywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLAotICAg
ICAgdjM0LCB2MzUsIHYzNik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNz4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAot
ICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwKLSAgICBUMzcgdjM3KSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3Pih2MSwgdjIs
IHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2
MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LAotICAgICAgdjIwLCB2MjEsIHYyMiwgdjIzLCB2
MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsCi0gICAgICB2
MzQsIHYzNSwgdjM2LCB2MzcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzg8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLAot
ICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgs
IFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYy
NCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwKLSAgICBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2
LAotICAgIFQzNyB2MzcsIFQzOCB2MzgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5
Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBU
MTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4odjEsIHYyLAotICAgICAgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgs
Ci0gICAgICB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2Mjgs
IHYyOSwgdjMwLCB2MzEsIHYzMiwKLSAgICAgIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2Mzgp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzOTxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwK
LSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4
LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwgVDMw
IHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYz
NiwKLSAgICBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4odjEsCi0gICAgICB2Miwg
djMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUs
IHYxNiwgdjE3LAotICAgICAgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUs
IHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsCi0gICAgICB2MzIsIHYzMywgdjM0LCB2MzUs
IHYzNiwgdjM3LCB2MzgsIHYzOSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5
cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5NDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4gVmFsdWVz
KFQxIHYxLAotICAgIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwKLSAgICBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LAotICAgIFQy
MCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2
MjYsIFQyNyB2MjcsCi0gICAgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMy
IHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwKLSAgICBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJh
eTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAg
VDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MD4odjEsIHYyLCB2Mywg
djQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwKLSAg
ICAgIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2
LCB2MjcsIHYyOCwgdjI5LAotICAgICAgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2
LCB2MzcsIHYzOCwgdjM5LCB2NDApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxPgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLAotICAgIFQ0MT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywK
LSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2
MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1
IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0
MSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsCi0gICAgICB2MTUsIHYxNiwgdjE3LCB2MTgs
IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwKLSAgICAg
IHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2
NDAsIHY0MSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0Mj4KLWludGVybmFsOjpWYWx1ZUFycmF5NDI8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwgVDQxLAotICAgIFQ0Mj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2Mjgs
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYz
NCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwg
VDQxIHY0MSwKLSAgICBUNDIgdjQyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQy
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEy
LCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDI+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywKLSAgICAg
IHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2
MjUsIHYyNiwgdjI3LAotICAgICAgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2
MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsCi0gICAgICB2NDIpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5
cGVuYW1lIFQ0Mz4KLWludGVybmFsOjpWYWx1ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
Ci0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgVDQzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICBUMzQgdjM0
LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBU
NDEgdjQxLAotICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0
MiwgVDQzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LAotICAgICAgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIy
LCB2MjMsIHYyNCwgdjI1LCB2MjYsCi0gICAgICB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMy
LCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwKLSAgICAgIHY0MSwgdjQy
LCB2NDMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXk0NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAot
ICAgIFQ0ND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwg
VDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQy
LCBUNDMgdjQzLCBUNDQgdjQ0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ0PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwKLSAgICAgIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMs
IHYyNCwgdjI1LAotICAgICAgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMs
IHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksCi0gICAgICB2NDAsIHY0MSwgdjQyLCB2NDMs
IHY0NCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEs
IHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4K
LWludGVybmFsOjpWYWx1ZUFycmF5NDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwKLSAgICBU
MTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMg
djIzLCBUMjQgdjI0LAotICAgIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsCi0gICAgVDMzIHYzMywgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwKLSAg
ICBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAg
ICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDU+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYx
NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAotICAgICAgdjI1LCB2MjYsIHYy
NywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2Mzgs
Ci0gICAgICB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUg
VDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVu
YW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDY+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYx
NiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2
MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksCi0gICAgVDQw
IHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0
NikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDY+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAsIHYxMSwgdjEyLCB2MTMs
IHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywKLSAgICAg
IHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2
MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2
NDUsIHY0Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0
NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLWludGVybmFsOjpWYWx1ZUFycmF5
NDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQs
IFQ0NSwgVDQ2LCBUNDc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBU
MjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQz
NiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwg
VDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0Nykgewot
ICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcs
IFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LAotICAgICAgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLAotICAgICAg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYz
NSwgdjM2LCB2MzcsCi0gICAgICB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0
NSwgdjQ2LCB2NDcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBU
NDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gVmFsdWVzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcgdjcsIFQ4IHY4LCBUOSB2OSwg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAg
ICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2Mjcs
IFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0gICAgVDMyIHYzMiwgVDMzIHYz
MywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwK
LSAgICBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1
LCBUNDYgdjQ2LCBUNDcgdjQ3LAotICAgIFQ0OCB2NDgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpW
YWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
Ci0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEs
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4odjEsIHYyLCB2MywgdjQsIHY1LCB2
NiwgdjcsCi0gICAgICB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwg
djE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwKLSAgICAgIHYyMywgdjI0LCB2MjUsIHYyNiwg
djI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LAotICAgICAg
djM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsIHY0
OCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5
cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAg
ICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0
MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwKLSAg
ICBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLAotICAgIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsCi0gICAgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwK
LSAgICBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0
LCBUNDUgdjQ1LCBUNDYgdjQ2LAotICAgIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDkpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwKLSAgICAgIHYy
MiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMs
IHYzNCwgdjM1LAotICAgICAgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsIHY0MSwgdjQyLCB2NDMs
IHY0NCwgdjQ1LCB2NDYsIHY0NywgdjQ4LCB2NDkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlw
ZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcs
IHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1pbnRlcm5hbDo6VmFs
dWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0g
ICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0g
ICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LAotICAgIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUs
Ci0gICAgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwgVDQ5IHY0OSwgVDUwIHY1MCkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
Ci0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDks
IFQ1MD4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIx
LCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLAotICAgICAgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0Miwg
djQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsCi0gICAgICB2NDgsIHY0OSwgdjUwKTsKK3RlbXBsYXRl
IDx0eXBlbmFtZS4uLiBUPgoraW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4gVmFsdWVzKFQuLi4g
dikgeworICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4oc3RkOjptb3ZlKHYpLi4u
KTsKIH0KIAogLy8gQm9vbCgpIGFsbG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVy
cyBpbiBhIHNldCBvZiAoZmFsc2UsIHRydWUpLgpAQCAtMTIwMSw3ICszNDMsNyBAQCBpbnRlcm5h
bDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKIC8vIG9mIG11bHRpcGxlIGZsYWdzIGNhbiBiZSB0ZXN0ZWQgd2hlbiBz
ZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2luZwogLy8gQ29tYmluZSgpIGZ1bmN0aW9u
LgogLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhbGwgdGVzdHMgaW4gdGhlIHRlc3Qg
Y2FzZSBGbGFnRGVwZW5kZW50VGVzdAorLy8gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGFsbCB0
ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZSBGbGFnRGVwZW5kZW50VGVzdAogLy8gd2lsbCBiZSBpbnN0
YW50aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0cnVlLgogLy8KIC8vIGNs
YXNzIEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Ym9v
bD4gewpAQCAtMTIwOSwxMyArMzUxLDEyIEBAIGludGVybmFsOjpWYWx1ZUFycmF5NTA8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAogLy8gICAg
IGV4dGVybmFsX2ZsYWcgPSBHZXRQYXJhbSgpOwogLy8gICB9CiAvLyB9Ci0vLyBJTlNUQU5USUFU
RV9URVNUX0NBU0VfUChCb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0LCBCb29sKCkpOwor
Ly8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEJvb2xTZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRl
c3QsIEJvb2woKSk7CiAvLwogaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBC
b29sKCkgewogICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0cnVlKTsKIH0KIAotIyBpZiBHVEVTVF9I
QVNfQ09NQklORQogLy8gQ29tYmluZSgpIGFsbG93cyB0aGUgdXNlciB0byBjb21iaW5lIHR3byBv
ciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCiAvLyB2YWx1ZXMgb2YgYSBDYXJ0ZXNpYW4gcHJv
ZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRzLgogLy8KQEAgLTEyMjQsMTg0ICszNjUs
ODIgQEAgaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBCb29sKCkgewogLy8g
ICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRz
IGNvbWluZyBmcm9tCiAvLyAgICAgdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIGVsZW1lbnRzIGZy
b20gdGhlIHNlcXVlbmNlcyBnZW5lcmF0ZWQgYnkKIC8vICAgICBnZW4xLCBnZW4yLCAuLi4sIGdl
bk4uIFRoZSBzZXF1ZW5jZSBlbGVtZW50cyB3aWxsIGhhdmUgYSB0eXBlIG9mCi0vLyAgICAgdHVw
bGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4gYXJlIHRoZSB0eXBlcwor
Ly8gICAgIHN0ZDo6dHVwbGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4g
YXJlIHRoZSB0eXBlcwogLy8gICAgIG9mIGVsZW1lbnRzIGZyb20gc2VxdWVuY2VzIHByb2R1Y2Vz
IGJ5IGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4KIC8vCi0vLyBDb21iaW5lIGNhbiBoYXZlIHVwIHRv
IDEwIGFyZ3VtZW50cy4gVGhpcyBudW1iZXIgaXMgY3VycmVudGx5IGxpbWl0ZWQKLS8vIGJ5IHRo
ZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHVwbGUgaW1wbGVtZW50YXRpb24g
dXNlZCBieSBHb29nbGUKLS8vIFRlc3QuCi0vLwogLy8gRXhhbXBsZToKIC8vCi0vLyBUaGlzIHdp
bGwgaW5zdGFudGlhdGUgdGVzdHMgaW4gdGVzdCBjYXNlIEFuaW1hbFRlc3QgZWFjaCBvbmUgd2l0
aAorLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGluIHRlc3Qgc3VpdGUgQW5pbWFsVGVz
dCBlYWNoIG9uZSB3aXRoCiAvLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxB
Q0spLCB0dXBsZSgiY2F0IiwgV0hJVEUpLAogLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1
cGxlKCJkb2ciLCBXSElURSk6CiAvLwogLy8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElU
RSB9OwogLy8gY2xhc3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08dHVwbGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59OworLy8gICAgIDogcHVi
bGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgQ29sb3I+
ID4gey4uLn07CiAvLwogLy8gVEVTVF9QKEFuaW1hbFRlc3QsIEFuaW1hbExvb2tzTmljZSkgey4u
Ln0KIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChBbmltYWxWYXJpYXRpb25zLCBBbmlt
YWxUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmluZShWYWx1ZXMoImNhdCIs
ICJkb2ciKSwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKEJMQUNL
LCBXSElURSkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChBbmltYWxWYXJpYXRpb25z
LCBBbmltYWxUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoVmFsdWVz
KCJjYXQiLCAiZG9nIiksCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoQkxBQ0ssIFdISVRFKSkpOwogLy8KIC8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBp
biBGbGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJpYXRpb25zIG9mIHR3bwogLy8gQm9vbGVh
biBmbGFnczoKIC8vCiAvLyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdAotLy8gICAgIDogcHVibGlj
IHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9vbCwgYm9vbD4gPiB7CisvLyAgICAgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxzdGQ6OnR1cGxlPGJvb2wsIGJvb2w+ID4gewog
Ly8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CiAvLyAgICAgLy8gQXNzaWducyBleHRlcm5hbF9m
bGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiB2YWx1ZXMgZnJvbSB0aGUgdHVwbGUuCi0vLyAgICAg
dGllKGV4dGVybmFsX2ZsYWdfMSwgZXh0ZXJuYWxfZmxhZ18yKSA9IEdldFBhcmFtKCk7CisvLyAg
ICAgc3RkOjp0aWUoZXh0ZXJuYWxfZmxhZ18xLCBleHRlcm5hbF9mbGFnXzIpID0gR2V0UGFyYW0o
KTsKIC8vICAgfQogLy8gfTsKIC8vCiAvLyBURVNUX1AoRmxhZ0RlcGVuZGVudFRlc3QsIFRlc3RG
ZWF0dXJlMSkgewogLy8gICAvLyBUZXN0IHlvdXIgY29kZSB1c2luZyBleHRlcm5hbF9mbGFnXzEg
YW5kIGV4dGVybmFsX2ZsYWdfMiBoZXJlLgogLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoVHdvQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbWJpbmUoQm9vbCgpLCBCb29sKCkpKTsKLS8vCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMj4KLWludGVybmFsOjpDYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyMjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyPiBDb21iaW5lKAotICAgIGNvbnN0
IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMikgewotICByZXR1cm4gaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIyPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjI+KAotICAg
ICAgZzEsIGcyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1l
IEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjM+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMz4gQ29tYmluZSgK
LSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdl
bmVyYXRvcjMmIGczKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRl
cjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMz4oCi0gICAgICBnMSwgZzIsIGcz
KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRv
cjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yND4KLWludGVy
bmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5l
cmF0b3IzLAotICAgIEdlbmVyYXRvcjQ+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAg
Y29uc3QgR2VuZXJhdG9yNCYgZzQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2Vu
ZXJhdG9yND4oCi0gICAgICBnMSwgZzIsIGczLCBnNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAot
ICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjU+Ci1pbnRlcm5hbDo6
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjU8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9y
MywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVy
YXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0g
ICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI1PEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PigKLSAgICAg
IGcxLCBnMiwgZzMsIGc0LCBnNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3Ix
LCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5cGVuYW1l
IEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUsIHR5cGVuYW1lIEdlbmVyYXRvcjY+Ci1p
bnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjY8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwg
R2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2PiBDb21i
aW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29u
c3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBH
ZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYgZzYpIHsKLSAgcmV0dXJuIGludGVybmFs
OjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0
b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNj4oCi0gICAgICBn
MSwgZzIsIGczLCBnNCwgZzUsIGc2KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRv
cjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5h
bWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwK
LSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xk
ZXI3PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwg
R2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNz4gQ29tYmluZSgKLSAgICBjb25zdCBH
ZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGcz
LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNv
bnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNykgewotICBy
ZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI3PEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0
b3I2LCBHZW5lcmF0b3I3PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3KTsKLX0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5
cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2Vu
ZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3LCB0
eXBlbmFtZSBHZW5lcmF0b3I4PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI4PEdl
bmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJh
dG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOD4gQ29tYmluZSgKLSAgICBj
b25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRv
cjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYg
ZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNywg
Y29uc3QgR2VuZXJhdG9yOCYgZzgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyODxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2Vu
ZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOD4o
Ci0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBnNywgZzgpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJh
dG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBl
bmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5cGVuYW1lIEdlbmVy
YXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjk+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhv
bGRlcjk8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0
LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LAotICAgIEdl
bmVyYXRvcjk+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVy
YXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9y
NCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2JiBnNiwKLSAgICAg
ICAgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4LCBjb25zdCBHZW5l
cmF0b3I5JiBnOSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI5
PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBH
ZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5
PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3LCBnOCwgZzkpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUg
R2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1
LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5cGVuYW1l
IEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjksCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9y
MTA+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9y
NiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwgR2VuZXJhdG9yOSwKLSAgICBHZW5lcmF0b3IxMD4g
Q29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIs
IGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29u
c3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBH
ZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsIGNvbnN0IEdlbmVyYXRvcjkmIGc5
LAotICAgICAgICBjb25zdCBHZW5lcmF0b3IxMCYgZzEwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRv
cjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3
LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5LAotICAgICAgR2VuZXJhdG9yMTA+KAotICAgICAgZzEs
IGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4LCBnOSwgZzEwKTsKLX0KLSMgZW5kaWYgIC8vIEdU
RVNUX0hBU19DT01CSU5FCi0KLSMgZGVmaW5lIFRFU1RfUCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9u
YW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRl
c3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9jYXNlX25hbWUgeyBcCi0gICBwdWJsaWM6
IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUp
KCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gICBwcml2YXRlOiBcCi0g
ICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAg
ICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAg
ICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVf
XykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5H
SUZZXyh0ZXN0X2Nhc2VfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJ
TkdJRllfKHRlc3RfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAgICBuZXcgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6VGVzdE1ldGFGYWN0b3J5PCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk+KCkpOyBcCi0gICAgICByZXR1cm4gMDsgXAotICAg
IH0gXAotICAgIHN0YXRpYyBpbnQgZ3Rlc3RfcmVnaXN0ZXJpbmdfZHVtbXlfIEdURVNUX0FUVFJJ
QlVURV9VTlVTRURfOyBcCi0gICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhcCi0g
ICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkp
OyBcCi0gIH07IFwKLSAgaW50IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUs
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTo6Z3Rlc3RfcmVnaXN0
ZXJpbmdfZHVtbXlfID0gXAotICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2Vf
bmFtZSwgdGVzdF9uYW1lKTo6QWRkVG9SZWdpc3RyeSgpOyBcCi0gIHZvaWQgR1RFU1RfVEVTVF9D
TEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQotCi0vLyBU
aGUgb3B0aW9uYWwgbGFzdCBhcmd1bWVudCB0byBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBhbGxv
d3MgdGhlIHVzZXIKLS8vIHRvIHNwZWNpZnkgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHRoYXQgZ2Vu
ZXJhdGVzIGN1c3RvbSB0ZXN0IG5hbWUgc3VmZml4ZXMKLS8vIGJhc2VkIG9uIHRoZSB0ZXN0IHBh
cmFtZXRlcnMuIFRoZSBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IG9uZSBhcmd1bWVudCBvZgotLy8g
dHlwZSB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPGNsYXNzIFBhcmFtVHlwZT4sIGFuZCByZXR1cm4g
c3RkOjpzdHJpbmcuCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVHdvQm9vbFNlcXVlbmNl
LCBGbGFnRGVwZW5kZW50VGVzdCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5l
KEJvb2woKSwgQm9vbCgpKSk7CisvLwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIEdlbmVyYXRvcj4K
K2ludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyPEdlbmVyYXRvci4uLj4gQ29tYmluZShj
b25zdCBHZW5lcmF0b3ImLi4uIGcpIHsKKyAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyPEdlbmVyYXRvci4uLj4oZy4uLik7Cit9CisKKyNkZWZpbmUgVEVTVF9QKHRlc3Rf
c3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOiBwdWJsaWMgdGVzdF9zdWl0ZV9u
YW1lIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
IHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1
aXRlX25hbWUsIHRlc3RfbmFtZSkoKSB7fSAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQg
VGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBwcml2YXRlOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDo6dGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJu
SG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25hbWUpLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNv
ZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pKSAgICAgICAgICAgXAorICAgICAgICAgIC0+
QWRkVGVzdFBhdHRlcm4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25h
bWUpLCBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSksICBcCisgICAgICAgICAgICAgIG5ldyA6
OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rvcnk8R1RFU1RfVEVTVF9DTEFTU19OQU1F
XyggXAorICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpPigpLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXykpOyAgICAgICAgICBcCisg
ICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0
aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsg
ICAgICAgICAgICAgICBcCisgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpKTsg
ICAgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGludCBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjpndGVzdF9yZWdpc3Rl
cmluZ19kdW1teV8gPSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1JlZ2lzdHJ5KCk7ICAgICBcCisgIHZv
aWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSk6OlRl
c3RCb2R5KCkKKworLy8gVGhlIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5CisvLyBnZW5lcmF0b3IgYW5kIGFuIG9wdGlv
bmFsIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFtZQor
Ly8gc3VmZml4ZXMgYmFzZWQgb24gdGhlIHRlc3QgcGFyYW1ldGVycy4gU3VjaCBhIGZ1bmN0aW9u
IG9yIGZ1bmN0b3Igc2hvdWxkCisvLyBhY2NlcHQgb25lIGFyZ3VtZW50IG9mIHR5cGUgdGVzdGlu
Zzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBhbmQKKy8vIHJldHVybiBzdGQ6OnN0
cmluZy4KIC8vCiAvLyB0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lIGlzIGEgYnVpbHRp
biB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAogLy8gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGVz
dGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKS4KQEAgLTE0MTAsMjUgKzQ0OSw1OSBAQCBp
bnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIs
IEdlbmVyYXRvcjMsCiAvLyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciB1bmRlcnNjb3JlLiBC
ZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMKIC8vIHRvIHN0ZDo6c3RyaW5nIGFuZCBD
IHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNlIHR5cGVzLgogCi0jIGRlZmluZSBJTlNU
QU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3RfY2FzZV9uYW1lLCBnZW5lcmF0b3IsIC4u
LikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dGVzdF9j
YXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9u
YW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBnZW5lcmF0b3I7IH0gXAotICBzdGF0aWMg
OjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJh
dGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHRlc3RfY2Fz
ZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAgICByZXR1cm4gOjp0ZXN0aW5nOjppbnRl
cm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+IFwKLSAgICAg
ICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwKLSAgc3RhdGljIGludCBndGVzdF8jI3By
ZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBc
Ci0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVk
X3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0
ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAg
ICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAg
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0Q2FzZUluc3RhbnRpYXRpb24oXAot
ICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAm
Z3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8sIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdl
bmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18p
CisjZGVmaW5lIEdURVNUX0VYUEFORF8oYXJnKSBhcmcKKyNkZWZpbmUgR1RFU1RfR0VUX0ZJUlNU
XyhmaXJzdCwgLi4uKSBmaXJzdAorI2RlZmluZSBHVEVTVF9HRVRfU0VDT05EXyhmaXJzdCwgc2Vj
b25kLCAuLi4pIHNlY29uZAorCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChwcmVm
aXgsIHRlc3Rfc3VpdGVfbmFtZSwgLi4uKSAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyA6OnRl
c3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0X3N1aXRlX25hbWU6OlBhcmFtVHlw
ZT4gICAgICBcCisgICAgICBndGVzdF8jI3ByZWZpeCMjdGVzdF9zdWl0ZV9uYW1lIyNfRXZhbEdl
bmVyYXRvcl8oKSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIEdURVNUX0VYUEFO
RF8oR1RFU1RfR0VUX0ZJUlNUXyhfX1ZBX0FSR1NfXywgRFVNTVlfUEFSQU1fKSk7ICAgICAgICBc
CisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMj
cHJlZml4IyN0ZXN0X3N1aXRlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXyggICBcCisgICAgICBj
b25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVzdF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+
JiBpbmZvKSB7ICAgICBcCisgICAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNl
KCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpUZXN0Tm90RW1wdHkoR1RFU1RfRVhQQU5EXyhHVEVTVF9HRVRfU0VDT05EXygg
ICAgICBcCisgICAgICAgICAgX19WQV9BUkdTX18sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RGVmYXVsdFBhcmFtTmFtZTx0ZXN0X3N1aXRlX25hbWU6OlBhcmFtVHlwZT4sICBcCisg
ICAgICAgICAgRFVNTVlfUEFSQU1fKSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICBhdXRvIHQgPSBzdGQ6Om1ha2VfdHVwbGUoX19W
QV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6dHVwbGVfc2l6ZTxkZWNsdHlwZSh0KT46OnZhbHVlIDw9IDIsICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICJUb28gTWFueSBBcmdzISIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgcmV0dXJuICgoR1RFU1RfRVhQQU5EXyhHVEVTVF9HRVRfU0VDT05EXyggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9fVkFfQVJHU19fLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlZmF1bHRQYXJhbU5hbWU8dGVzdF9zdWl0ZV9uYW1l
OjpQYXJhbVR5cGU+LCAgICBcCisgICAgICAgIERVTU1ZX1BBUkFNXykpKSkoaW5mbyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIHN0YXRpYyBpbnQgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMj
X2R1bW15XyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBHVEVTVF9BVFRSSUJVVEVf
VU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIC0+cGFyYW1ldGVyaXplZF90
ZXN0X3JlZ2lzdHJ5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
ICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKHRlc3Rf
c3VpdGVfbmFtZSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSkg
ICAgICBcCisgICAgICAgICAgICAgIC0+QWRkVGVzdFN1aXRlSW5zdGFudGlhdGlvbiggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICBHVEVTVF9T
VFJJTkdJRllfKHByZWZpeCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxH
ZW5lcmF0b3JfLCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxHZW5lcmF0ZU5hbWVfLCAgICAgICBcCisgICAgICAgICAg
ICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pCisKKworLy8gQWxsb3cgTWFya2luZyBhIFBhcmFt
ZXRlcml6ZWQgdGVzdCBjbGFzcyBhcyBub3QgbmVlZGluZyB0byBiZSBpbnN0YW50aWF0ZWQuCisj
ZGVmaW5lIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChUKSAg
ICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBndGVzdF9kb19ub3RfdXNlX291dHNpZGVf
bmFtZXNwYWNlX3Njb3BlIHt9ICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljIGNvbnN0IDo6
dGVzdGluZzo6aW50ZXJuYWw6Ok1hcmtBc0lnbm9yZWQgZ3Rlc3RfYWxsb3dfaWdub3JlXyMjVCgg
XAorICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUKSkKKworLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpY19hc3NlcnQoOjp0ZXN0aW5n
OjppbnRlcm5hbDo6SW5zdGFudGlhdGVUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBcCisgICAg
ICAgICAgICAgICAgIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogfSAgLy8gbmFtZXNwYWNlIHRlc3Rp
bmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8K
KyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NzRmMmIzYjU2OTMzMDAxMmU4NWVlM2NmNGZkNTdlYjBiNTQyMWQ2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAKKysrIC9kZXYvbnVsbApAQCAtMSw1
MDAgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1MCAgJCQgTWF4aW11
bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kdmFyIG1h
eHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJndW1lbnRzIHdlIHdh
bnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLS8vCi0vLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRl
cml6ZWQgdGVzdHMKLS8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBGcmFtZXdv
cmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJ
UFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KLS8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCi0KLS8v
IFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdp
dGggZGlmZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3Bp
ZXMgb2YgdGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJlIGlzIGhvdyB5b3UgdXNlIHZhbHVlLXBh
cmFtZXRlcml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8vIFRvIHdyaXRlIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVyZQotLy8gY2xhc3Mu
IEl0IGlzIHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08VD4gKHNl
ZSBiZWxvdyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFuY2Ugc2NoZW1lIHRoYXQncyBzb21ldGlt
ZXMgdXNlZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8vIGNsYXNzIGhpZXJhcmNoaWVzKSwgd2hl
cmUgdGhlIHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLgotLy8gVGVzdFdpdGhQYXJhbTxU
PiBpcyBpdHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QuIFQgY2FuIGJlIGFueQotLy8g
Y29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJlIHJlc3BvbnNpYmxl
IGZvciBtYW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9mIHRoZSBwb2ludGVkIHZhbHVlcy4KLQot
Y2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Y29uc3QgY2hh
cio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1c3VhbCBjbGFzcyBmaXh0dXJl
IG1lbWJlcnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVzZSB0aGUgVEVTVF9QIG1hY3JvIHRvIGRl
ZmluZSBhcyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGZvciB0aGlzIGZpeHR1cmUgYXMg
eW91IHdhbnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIgotLy8gb3IgInBh
dHRlcm4iLCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0aGluay4KLQotVEVTVF9QKEZvb1Rlc3Qs
IERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0
ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRoUGFyYW08
VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAgLi4uCi19
Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLQotLy8gRmluYWxs
eSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgdG8gaW5zdGFudGlhdGUgdGhl
IHRlc3QKLS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIEdvb2ds
ZSBUZXN0IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyB0
ZXN0IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbAotLy8gKHN1cnByaXNlISkg
cGFyYW1ldGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRoZW0sIHdoaWNoCi0v
LyBhcmUgYWxsIGluIHRoZSB0ZXN0aW5nIG5hbWVzcGFjZToKLS8vCi0vLwotLy8gIFJhbmdlKGJl
Z2luLCBlbmQgWywgc3RlcF0pIC0gWWllbGRzIHZhbHVlcyB7YmVnaW4sIGJlZ2luK3N0ZXAsCi0v
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbitzdGVwK3N0ZXAsIC4uLn0uIFRo
ZSB2YWx1ZXMgZG8gbm90Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
IGVuZC4gc3RlcCBkZWZhdWx0cyB0byAxLgotLy8gIFZhbHVlcyh2MSwgdjIsIC4uLiwgdk4pICAg
IC0gWWllbGRzIHZhbHVlcyB7djEsIHYyLCAuLi4sIHZOfS4KLS8vICBWYWx1ZXNJbihjb250YWlu
ZXIpICAgICAgICAtIFlpZWxkcyB2YWx1ZXMgZnJvbSBhIEMtc3R5bGUgYXJyYXksIGFuIFNUTAot
Ly8gIFZhbHVlc0luKGJlZ2luLGVuZCkgICAgICAgICAgY29udGFpbmVyLCBvciBhbiBpdGVyYXRv
ciByYW5nZSBbYmVnaW4sIGVuZCkuCi0vLyAgQm9vbCgpICAgICAgICAgICAgICAgICAgICAgLSBZ
aWVsZHMgc2VxdWVuY2Uge2ZhbHNlLCB0cnVlfS4KLS8vICBDb21iaW5lKGcxLCBnMiwgLi4uLCBn
TikgICAtIFlpZWxkcyBhbGwgY29tYmluYXRpb25zICh0aGUgQ2FydGVzaWFuIHByb2R1Y3QKLS8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgbWF0aCBzYXZ2eSkgb2YgdGhl
IHZhbHVlcyBnZW5lcmF0ZWQKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHRo
ZSBOIGdlbmVyYXRvcnMuCi0vLwotLy8gRm9yIG1vcmUgZGV0YWlscywgc2VlIGNvbW1lbnRzIGF0
IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cKLS8vIGluIHRoaXMgZmls
ZS4KLS8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3Rz
IGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCi0vLyBlYWNoIHdpdGggcGFyYW1ldGVyIHZhbHVl
cyAibWVlbnkiLCAibWlueSIsIGFuZCAibW9lIi4KLQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
SW5zdGFudGlhdGlvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBGb29UZXN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJtZWVueSIsICJtaW55IiwgIm1vZSIpKTsKLQot
Ly8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiwgKHll
cywgeW91Ci0vLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGVuIG9uY2UpIHRoZSBmaXJzdCBh
cmd1bWVudCB0byB0aGUKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIGlzIGEgcHJl
Zml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLS8vIGFjdHVhbCB0ZXN0IGNhc2UgbmFtZS4g
UmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVudAotLy8gaW5zdGFu
dGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2
ZQotLy8gdGhlc2UgbmFtZXM6Ci0vLwotLy8gICAgKiBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
LkRvZXNCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8yIGZvciAibW9lIgotLy8gICAgKiBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
Lkhhc0JsYWhCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUv
Rm9vVGVzdC5IYXNCbGFoQmxhaC8yIGZvciAibW9lIgotLy8KLS8vIFlvdSBjYW4gdXNlIHRoZXNl
IG5hbWVzIGluIC0tZ3Rlc3RfZmlsdGVyLgotLy8KLS8vIFRoaXMgc3RhdGVtZW50IHdpbGwgaW5z
dGFudGlhdGUgYWxsIHRlc3RzIGZyb20gRm9vVGVzdCBhZ2FpbiwgZWFjaAotLy8gd2l0aCBwYXJh
bWV0ZXIgdmFsdWVzICJjYXQiIGFuZCAiZG9nIjoKLQotY29uc3QgY2hhciogcGV0c1tdID0geyJj
YXQiLCAiZG9nIn07Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChBbm90aGVySW5zdGFudGlhdGlv
bk5hbWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsKLQotLy8gVGhlIHRlc3RzIGZyb20gdGhl
IGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlIHRoZXNlIG5hbWVzOgotLy8KLS8vICAgICog
QW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMCBmb3IgImNhdCIKLS8v
ICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMSBmb3IgImRv
ZyIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgv
MCBmb3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFz
QmxhaEJsYWgvMSBmb3IgImRvZyIKLS8vCi0vLyBQbGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QIHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzCi0vLyBpbiB0aGUgZ2l2ZW4g
dGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRlZmluaXRpb25zIGNvbWUgYmVmb3JlIG9yCi0vLyBB
RlRFUiB0aGUgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agc3RhdGVtZW50LgotLy8KLS8vIFBsZWFz
ZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0
ZXJzIHRvIHRoZQotLy8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVz
dCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCi0vLyBUaGlzIGFsbG93cyB0aGUgdXNlciBv
biBvbmUgaGFuZCwgdG8gYWRqdXN0IGdlbmVyYXRvciBwYXJhbWV0ZXJzIGluIG9yZGVyCi0vLyB0
byBkeW5hbWljYWxseSBkZXRlcm1pbmUgYSBzZXQgb2YgdGVzdHMgdG8gcnVuIGFuZCBvbiB0aGUg
b3RoZXIgaGFuZCwKLS8vIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gaW5zcGVjdCB0aGUgZ2Vu
ZXJhdGVkIHRlc3RzIHdpdGggR29vZ2xlIFRlc3QKLS8vIHJlZmxlY3Rpb24gQVBJIGJlZm9yZSBS
VU5fQUxMX1RFU1RTKCkgaXMgZXhlY3V0ZWQuCi0vLwotLy8gWW91IGNhbiBzZWUgc2FtcGxlcy9z
YW1wbGU3X3VuaXR0ZXN0LmNjIGFuZCBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MKLS8vIGZv
ciBtb3JlIGV4YW1wbGVzLgotLy8KLS8vIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gcHVibGlz
aCB0aGUgQVBJIGZvciBkZWZpbmluZyBuZXcgcGFyYW1ldGVyCi0vLyBnZW5lcmF0b3JzLiBCdXQg
Zm9yIG5vdyB0aGlzIGludGVyZmFjZSByZW1haW5zIHBhcnQgb2YgdGhlIGludGVybmFsCi0vLyBp
bXBsZW1lbnRhdGlvbiBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UuCi0vLwotLy8KLS8vIEEgcGFy
YW1ldGVyaXplZCB0ZXN0IGZpeHR1cmUgbXVzdCBiZSBkZXJpdmVkIGZyb20gdGVzdGluZzo6VGVz
dCBhbmQgZnJvbQotLy8gdGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+LCB3aGVyZSBUIGlz
IHRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIKLS8vIHZhbHVlcy4gSW5oZXJpdGluZyBmcm9tIFRl
c3RXaXRoUGFyYW08VD4gc2F0aXNmaWVzIHRoYXQgcmVxdWlyZW1lbnQgYmVjYXVzZQotLy8gVGVz
dFdpdGhQYXJhbTxUPiBpbmhlcml0cyBmcm9tIGJvdGggVGVzdCBhbmQgV2l0aFBhcmFtSW50ZXJm
YWNlLiBJbiBtb3JlCi0vLyBjb21wbGljYXRlZCBoaWVyYXJjaGllcywgaG93ZXZlciwgaXQgaXMg
b2NjYXNpb25hbGx5IHVzZWZ1bCB0byBpbmhlcml0Ci0vLyBzZXBhcmF0ZWx5IGZyb20gVGVzdCBh
bmQgV2l0aFBhcmFtSW50ZXJmYWNlLiBGb3IgZXhhbXBsZToKLQotY2xhc3MgQmFzZVRlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgLy8gWW91IGNhbiBpbmhlcml0IGFsbCB0aGUgdXN1
YWwgbWVtYmVycyBmb3IgYSBub24tcGFyYW1ldGVyaXplZCB0ZXN0Ci0gIC8vIGZpeHR1cmUgaGVy
ZS4KLX07Ci0KLWNsYXNzIERlcml2ZWRUZXN0IDogcHVibGljIEJhc2VUZXN0LCBwdWJsaWMgOjp0
ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8aW50PiB7Ci0gIC8vIFRoZSB1c3VhbCB0ZXN0IGZp
eHR1cmUgbWVtYmVycyBnbyBoZXJlIHRvby4KLX07Ci0KLVRFU1RfRihCYXNlVGVzdCwgSGFzRm9v
KSB7Ci0gIC8vIFRoaXMgaXMgYW4gb3JkaW5hcnkgbm9uLXBhcmFtZXRlcml6ZWQgdGVzdC4KLX0K
LQotVEVTVF9QKERlcml2ZWRUZXN0LCBEb2VzQmxhaCkgewotICAvLyBHZXRQYXJhbSB3b3JrcyBq
dXN0IHRoZSBzYW1lIGhlcmUgYXMgaWYgeW91IGluaGVyaXQgZnJvbSBUZXN0V2l0aFBhcmFtLgot
ICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgpKSk7Ci19Ci0KLSNlbmRpZiAgLy8gMAot
Ci0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09T
X1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRpbGl0eT4KLSNlbmRpZgotCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVz
dC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRp
bC1nZW5lcmF0ZWQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGdW5jdGlvbnMgcHJv
ZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgotLy8KLS8vIEdvb2dsZSBUZXN0IHVzZXMgdGhl
c2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVlLQotLy8gcGFyYW1l
dGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRp
YXRlZAotLy8gd2l0aCBhIHBhcnRpY3VsYXIgZ2VuZXJhdG9yLCBHb29nbGUgVGVzdCBjcmVhdGVz
IGFuZCBydW5zIHRlc3RzCi0vLyBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZSBwcm9k
dWNlZCBieSB0aGUgZ2VuZXJhdG9yLgotLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgc2FtcGxlLCB0
ZXN0cyBmcm9tIHRlc3QgY2FzZSBGb29UZXN0IGFyZSBpbnN0YW50aWF0ZWQKLS8vIGVhY2ggdGhy
ZWUgdGltZXMgd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIDMsIDUsIGFuZCA4OgotLy8KLS8vIGNsYXNz
IEZvb1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsgLi4uIH07Ci0vLwotLy8gVEVT
VF9QKEZvb1Rlc3QsIFRlc3RUaGlzKSB7Ci0vLyB9Ci0vLyBURVNUX1AoRm9vVGVzdCwgVGVzdFRo
YXQpIHsKLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9v
VGVzdCwgVmFsdWVzKDMsIDUsIDgpKTsKLS8vCi0KLS8vIFJhbmdlKCkgcmV0dXJucyBnZW5lcmF0
b3JzIHByb3ZpZGluZyBzZXF1ZW5jZXMgb2YgdmFsdWVzIGluIGEgcmFuZ2UuCi0vLwotLy8gU3lu
b3BzaXM6Ci0vLyBSYW5nZShzdGFydCwgZW5kKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3Ig
cHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtzdGFydCwgc3RhcnQrMSwKLS8vICAgICBz
dGFydCsyLCAuLi4sIH0uCi0vLyBSYW5nZShzdGFydCwgZW5kLCBzdGVwKQotLy8gICAtIHJldHVy
bnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtzdGFydCwgc3Rh
cnQrc3RlcCwKLS8vICAgICBzdGFydCtzdGVwK3N0ZXAsIC4uLiwgfS4KLS8vIE5vdGVzOgotLy8g
ICAqIFRoZSBnZW5lcmF0ZWQgc2VxdWVuY2VzIG5ldmVyIGluY2x1ZGUgZW5kLiBGb3IgZXhhbXBs
ZSwgUmFuZ2UoMSwgNSkKLS8vICAgICByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBhIHNl
cXVlbmNlIHsxLCAyLCAzLCA0fS4gUmFuZ2UoMSwgOSwgMikKLS8vICAgICByZXR1cm5zIGEgZ2Vu
ZXJhdG9yIHByb2R1Y2luZyB7MSwgMywgNSwgN30uCi0vLyAgICogc3RhcnQgYW5kIGVuZCBtdXN0
IGhhdmUgdGhlIHNhbWUgdHlwZS4gVGhhdCB0eXBlIG1heSBiZSBhbnkgaW50ZWdyYWwgb3IKLS8v
ICAgICBmbG9hdGluZy1wb2ludCB0eXBlIG9yIGEgdXNlciBkZWZpbmVkIHR5cGUgc2F0aXNmeWlu
ZyB0aGVzZSBjb25kaXRpb25zOgotLy8gICAgICogSXQgbXVzdCBiZSBhc3NpZ25hYmxlIChoYXZl
IG9wZXJhdG9yPSgpIGRlZmluZWQpLgotLy8gICAgICogSXQgbXVzdCBoYXZlIG9wZXJhdG9yKygp
IChvcGVyYXRvcisoaW50LWNvbXBhdGlibGUgdHlwZSkgZm9yCi0vLyAgICAgICB0d28tb3BlcmFu
ZCB2ZXJzaW9uKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRvcjwoKSBkZWZpbmVkLgot
Ly8gICAgIEVsZW1lbnRzIGluIHRoZSByZXN1bHRpbmcgc2VxdWVuY2VzIHdpbGwgYWxzbyBoYXZl
IHRoYXQgdHlwZS4KLS8vICAgKiBDb25kaXRpb24gc3RhcnQgPCBlbmQgbXVzdCBiZSBzYXRpc2Zp
ZWQgaW4gb3JkZXIgZm9yIHJlc3VsdGluZyBzZXF1ZW5jZXMKLS8vICAgICB0byBjb250YWluIGFu
eSBlbGVtZW50cy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSW5jcmVtZW50
VD4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBSYW5nZShUIHN0YXJ0LCBUIGVuZCwgSW5j
cmVtZW50VCBzdGVwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4oCi0g
ICAgICBuZXcgaW50ZXJuYWw6OlJhbmdlR2VuZXJhdG9yPFQsIEluY3JlbWVudFQ+KHN0YXJ0LCBl
bmQsIHN0ZXApKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbnRlcm5hbDo6UGFyYW1H
ZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKLSAgcmV0dXJuIFJhbmdlKHN0YXJ0
LCBlbmQsIDEpOwotfQotCi0vLyBWYWx1ZXNJbigpIGZ1bmN0aW9uIGFsbG93cyBnZW5lcmF0aW9u
IG9mIHRlc3RzIHdpdGggcGFyYW1ldGVycyBjb21pbmcgZnJvbQotLy8gYSBjb250YWluZXIuCi0v
LwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKQotLy8gICAt
IHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZy
b20KLS8vICAgICBhIEMtc3R5bGUgYXJyYXkuCi0vLyBWYWx1ZXNJbihjb25zdCBDb250YWluZXIm
IGNvbnRhaW5lcikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5j
ZXMgd2l0aCBlbGVtZW50cyBmcm9tCi0vLyAgICAgYW4gU1RMLXN0eWxlIGNvbnRhaW5lci4KLS8v
IFZhbHVlc0luKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpCi0vLyAgIC0gcmV0dXJucyBh
IGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMgZnJvbQotLy8gICAg
IGEgcmFuZ2UgW2JlZ2luLCBlbmQpIGRlZmluZWQgYnkgYSBwYWlyIG9mIFNUTC1zdHlsZSBpdGVy
YXRvcnMuIFRoZXNlCi0vLyAgICAgaXRlcmF0b3JzIGNhbiBhbHNvIGJlIHBsYWluIEMgcG9pbnRl
cnMuCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBWYWx1ZXNJbiBjb3BpZXMgdGhlIHZhbHVlcyBm
cm9tIHRoZSBjb250YWluZXJzCi0vLyBwYXNzZWQgaW4gYW5kIGtlZXBzIHRoZW0gdG8gZ2VuZXJh
dGUgdGVzdHMgaW4gUlVOX0FMTF9URVNUUygpLgotLy8KLS8vIEV4YW1wbGVzOgotLy8KLS8vIFRo
aXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIFN0cmluZ1Rlc3QKLS8vIGVhY2gg
d2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIsICJiYXIiLCBhbmQgImJheiI6Ci0vLwotLy8g
Y29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28iLCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0
cmluZ3MpKTsKLS8vCi0vLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBT
dGxTdHJpbmdUZXN0Ci0vLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2YWx1ZXMgImEiIGFu
ZCAiYiI6Ci0vLwotLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gR2V0UGFyYW1ldGVy
U3RyaW5ncygpIHsKLS8vICAgOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gdjsKLS8vICAg
di5wdXNoX2JhY2soImEiKTsKLS8vICAgdi5wdXNoX2JhY2soImIiKTsKLS8vICAgcmV0dXJuIHY7
Ci0vLyB9Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOwotLy8KLS8vCi0vLyBU
aGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0Ci0vLyBlYWNoIHdp
dGggcGFyYW1ldGVyIHZhbHVlcyAnYScgYW5kICdiJzoKLS8vCi0vLyA6OnN0ZDo6bGlzdDxjaGFy
PiBHZXRQYXJhbWV0ZXJDaGFycygpIHsKLS8vICAgOjpzdGQ6Omxpc3Q8Y2hhcj4gbGlzdDsKLS8v
ICAgbGlzdC5wdXNoX2JhY2soJ2EnKTsKLS8vICAgbGlzdC5wdXNoX2JhY2soJ2InKTsKLS8vICAg
cmV0dXJuIGxpc3Q7Ci0vLyB9Ci0vLyA6OnN0ZDo6bGlzdDxjaGFyPiBsID0gR2V0UGFyYW1ldGVy
Q2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAg
ICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkpOwotLy8KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1l
IDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZh
bHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRv
ciBlbmQpIHsKLSAgdHlwZWRlZiB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRv
clRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ci0gICAgICA6OnZhbHVlX3R5cGUgUGFyYW1UeXBlOwot
ICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT4oCi0gICAgICBuZXcg
aW50ZXJuYWw6OlZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcjxQYXJhbVR5cGU+KGJlZ2lu
LCBlbmQpKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6
OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pIHsKLSAgcmV0
dXJuIFZhbHVlc0luKGFycmF5LCBhcnJheSArIE4pOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29u
dGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFs
dWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpIHsKLSAg
cmV0dXJuIFZhbHVlc0luKGNvbnRhaW5lci5iZWdpbigpLCBjb250YWluZXIuZW5kKCkpOwotfQot
Ci0vLyBWYWx1ZXMoKSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyBmcm9tIGV4cGxpY2l0bHkgc3Bl
Y2lmaWVkIGxpc3Qgb2YKLS8vIHBhcmFtZXRlcnMuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1
ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJv
ZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYxLCB2MiwgLi4uLCB2Ti4KLS8vCi0vLyBG
b3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVz
dCBlYWNoCi0vLyB3aXRoIHZhbHVlcyAib25lIiwgInR3byIsIGFuZCAidGhyZWUiOgotLy8KLS8v
IElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE51bVNlcXVlbmNlLCBCYXJUZXN0LCBWYWx1ZXMoIm9u
ZSIsICJ0d28iLCAidGhyZWUiKSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJv
bSB0ZXN0IGNhc2UgQmF6VGVzdCBlYWNoIHdpdGggdmFsdWVzIDEsIDIsIDMuNS4KLS8vIFRoZSBl
eGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIg
aW4gQmF6VGVzdC4KLS8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJl
cnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKLS8vCi0vLyBDdXJyZW50bHksIFZhbHVl
cygpIHN1cHBvcnRzIGZyb20gMSB0byAkbiBwYXJhbWV0ZXJzLgotLy8KLSRyYW5nZSBpIDEuLm4K
LSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1l
IFQkal1dPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkkaTwkZm9yIGosIFtbVCRqXV0+IFZhbHVlcygk
Zm9yIGosIFtbVCRqIHYkal1dKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheSRpPCRm
b3IgaiwgW1tUJGpdXT4oJGZvciBqLCBbW3Ykal1dKTsKLX0KLQotXV0KLQotLy8gQm9vbCgpIGFs
bG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVycyBpbiBhIHNldCBvZiAoZmFsc2Us
IHRydWUpLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQm9vbCgpCi0vLyAgIC0gcmV0dXJucyBhIGdl
bmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMge2ZhbHNlLCB0cnVlfS4K
LS8vCi0vLyBJdCBpcyB1c2VmdWwgd2hlbiB0ZXN0aW5nIGNvZGUgdGhhdCBkZXBlbmRzIG9uIEJv
b2xlYW4gZmxhZ3MuIENvbWJpbmF0aW9ucwotLy8gb2YgbXVsdGlwbGUgZmxhZ3MgY2FuIGJlIHRl
c3RlZCB3aGVuIHNldmVyYWwgQm9vbCgpJ3MgYXJlIGNvbWJpbmVkIHVzaW5nCi0vLyBDb21iaW5l
KCkgZnVuY3Rpb24uCi0vLwotLy8gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGFsbCB0ZXN0cyBp
biB0aGUgdGVzdCBjYXNlIEZsYWdEZXBlbmRlbnRUZXN0Ci0vLyB3aWxsIGJlIGluc3RhbnRpYXRl
ZCB0d2ljZSB3aXRoIHBhcmFtZXRlcnMgZmFsc2UgYW5kIHRydWUuCi0vLwotLy8gY2xhc3MgRmxh
Z0RlcGVuZGVudFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxib29sPiB7Ci0v
LyAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLS8vICAgICBleHRlcm5hbF9mbGFnID0gR2V0UGFy
YW0oKTsKLS8vICAgfQotLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQm9vbFNlcXVl
bmNlLCBGbGFnRGVwZW5kZW50VGVzdCwgQm9vbCgpKTsKLS8vCi1pbmxpbmUgaW50ZXJuYWw6OlBh
cmFtR2VuZXJhdG9yPGJvb2w+IEJvb2woKSB7Ci0gIHJldHVybiBWYWx1ZXMoZmFsc2UsIHRydWUp
OwotfQotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0vLyBDb21iaW5lKCkgYWxsb3dzIHRoZSB1
c2VyIHRvIGNvbWJpbmUgdHdvIG9yIG1vcmUgc2VxdWVuY2VzIHRvIHByb2R1Y2UKLS8vIHZhbHVl
cyBvZiBhIENhcnRlc2lhbiBwcm9kdWN0IG9mIHRob3NlIHNlcXVlbmNlcycgZWxlbWVudHMuCi0v
LwotLy8gU3lub3BzaXM6Ci0vLyBDb21iaW5lKGdlbjEsIGdlbjIsIC4uLiwgZ2VuTikKLS8vICAg
LSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBj
b21pbmcgZnJvbQotLy8gICAgIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiBlbGVtZW50cyBmcm9t
IHRoZSBzZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5Ci0vLyAgICAgZ2VuMSwgZ2VuMiwgLi4uLCBnZW5O
LiBUaGUgc2VxdWVuY2UgZWxlbWVudHMgd2lsbCBoYXZlIGEgdHlwZSBvZgotLy8gICAgIHR1cGxl
PFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAuLi4sIFROIGFyZSB0aGUgdHlwZXMKLS8v
ICAgICBvZiBlbGVtZW50cyBmcm9tIHNlcXVlbmNlcyBwcm9kdWNlcyBieSBnZW4xLCBnZW4yLCAu
Li4sIGdlbk4uCi0vLwotLy8gQ29tYmluZSBjYW4gaGF2ZSB1cCB0byAkbWF4dHVwbGUgYXJndW1l
bnRzLiBUaGlzIG51bWJlciBpcyBjdXJyZW50bHkgbGltaXRlZAotLy8gYnkgdGhlIG1heGltdW0g
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0dXBsZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IEdv
b2dsZQotLy8gVGVzdC4KLS8vCi0vLyBFeGFtcGxlOgotLy8KLS8vIFRoaXMgd2lsbCBpbnN0YW50
aWF0ZSB0ZXN0cyBpbiB0ZXN0IGNhc2UgQW5pbWFsVGVzdCBlYWNoIG9uZSB3aXRoCi0vLyB0aGUg
cGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxBQ0spLCB0dXBsZSgiY2F0IiwgV0hJVEUp
LAotLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1cGxlKCJkb2ciLCBXSElURSk6Ci0vLwot
Ly8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElURSB9OwotLy8gY2xhc3MgQW5pbWFsVGVz
dAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Y29uc3QgY2hh
ciosIENvbG9yPiA+IHsuLi59OwotLy8KLS8vIFRFU1RfUChBbmltYWxUZXN0LCBBbmltYWxMb29r
c05pY2UpIHsuLi59Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5pbWFsVmFyaWF0
aW9ucywgQW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoVmFs
dWVzKCJjYXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyhCTEFDSywgV0hJVEUpKSk7Ci0vLwotLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3Rz
IGluIEZsYWdEZXBlbmRlbnRUZXN0IHdpdGggYWxsIHZhcmlhdGlvbnMgb2YgdHdvCi0vLyBCb29s
ZWFuIGZsYWdzOgotLy8KLS8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0Ci0vLyAgICAgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTx0dXBsZTxib29sLCBib29sPiA+IHsKLS8vICAgdmly
dHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIEFzc2lnbnMgZXh0ZXJuYWxfZmxhZ18xIGFu
ZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhlIHR1cGxlLgotLy8gICAgIHRpZShleHRl
cm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBHZXRQYXJhbSgpOwotLy8gICB9Ci0vLyB9
OwotLy8KLS8vIFRFU1RfUChGbGFnRGVwZW5kZW50VGVzdCwgVGVzdEZlYXR1cmUxKSB7Ci0vLyAg
IC8vIFRlc3QgeW91ciBjb2RlIHVzaW5nIGV4dGVybmFsX2ZsYWdfMSBhbmQgZXh0ZXJuYWxfZmxh
Z18yIGhlcmUuCi0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUd29Cb29sU2VxdWVu
Y2UsIEZsYWdEZXBlbmRlbnRUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmlu
ZShCb29sKCksIEJvb2woKSkpOwotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxlCi0kZm9yIGkgW1sK
LSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBHZW5lcmF0b3Ik
al1dPgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIkaTwkZm9yIGosIFtbR2VuZXJh
dG9yJGpdXT4gQ29tYmluZSgKLSAgICAkZm9yIGosIFtbY29uc3QgR2VuZXJhdG9yJGomIGckal1d
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlciRpPCRmb3Igaiwg
W1tHZW5lcmF0b3Ikal1dPigKLSAgICAgICRmb3IgaiwgW1tnJGpdXSk7Ci19Ci0KLV1dCi0jIGVu
ZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCi0jIGRlZmluZSBURVNUX1AodGVzdF9jYXNlX25h
bWUsIHRlc3RfbmFtZSkgXAotICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2Fz
ZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgICAgIDogcHVibGljIHRlc3RfY2FzZV9uYW1lIHsgXAot
ICAgcHVibGljOiBcCi0gICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwg
dGVzdF9uYW1lKSgpIHt9IFwKLSAgICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHkoKTsgXAotICAgcHJp
dmF0ZTogXAotICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgXAotICAgICAgOjp0ZXN0
aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5
KCkuIFwKLSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xkZXI8dGVzdF9jYXNlX25hbWU+
KFwKLSAgICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0gICAgICAgICAgICAgICAgICBfX0ZJTEVf
XywgX19MSU5FX18pKS0+QWRkVGVzdFBhdHRlcm4oXAotICAgICAgICAgICAgICAgICAgICAgIEdU
RVNUX1NUUklOR0lGWV8odGVzdF9jYXNlX25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAg
R1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgbmV3
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlc3RNZXRhRmFjdG9yeTwgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpPigpKTsgXAotICAgICAgcmV0dXJu
IDA7IFwKLSAgICB9IFwKLSAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBH
VEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgXAotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8oXAotICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpKTsgXAotICB9OyBcCi0gIGludCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rf
Y2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSk6Omd0
ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyA9IFwKLSAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OkFkZFRvUmVnaXN0cnkoKTsgXAotICB2b2lkIEdU
RVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5
KCkKLQotLy8gVGhlIG9wdGlvbmFsIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgYWxsb3dzIHRoZSB1c2VyCi0vLyB0byBzcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3Rv
ciB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzCi0vLyBiYXNlZCBvbiB0
aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1l
bnQgb2YKLS8vIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBh
bmQgcmV0dXJuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJh
bU5hbWUgaXMgYSBidWlsdGluIHRlc3Qgc3VmZml4IGdlbmVyYXRvciB0aGF0Ci0vLyByZXR1cm5z
IHRoZSB2YWx1ZSBvZiB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKEdldFBhcmFtKCkpLgotLy8KLS8v
IE5vdGU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1wdHksIHVuaXF1ZSwgYW5kIG1heSBvbmx5
IGNvbnRhaW4gQVNDSUkKLS8vIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIHVuZGVyc2NvcmUu
IEJlY2F1c2UgUHJpbnRUb1N0cmluZyBhZGRzIHF1b3RlcwotLy8gdG8gc3RkOjpzdHJpbmcgYW5k
IEMgc3RyaW5ncywgaXQgd29uJ3Qgd29yayBmb3IgdGhlc2UgdHlwZXMuCi0KLSMgZGVmaW5lIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKHByZWZpeCwgdGVzdF9jYXNlX25hbWUsIGdlbmVyYXRvciwg
Li4uKSBcCi0gIHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0
X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiBcCi0gICAgICBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNl
X25hbWUjI19FdmFsR2VuZXJhdG9yXygpIHsgcmV0dXJuIGdlbmVyYXRvcjsgfSBcCi0gIHN0YXRp
YyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX0V2YWxHZW5l
cmF0ZU5hbWVfKCBcCi0gICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVzdF9j
YXNlX25hbWU6OlBhcmFtVHlwZT4mIGluZm8pIHsgXAotICAgIHJldHVybiA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpHZXRQYXJhbU5hbWVHZW48dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAg
ICAgICAoX19WQV9BUkdTX18pKGluZm8pOyBcCi0gIH0gXAotICBzdGF0aWMgaW50IGd0ZXN0XyMj
cHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9
IFwKLSAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPnBhcmFtZXRlcml6
ZWRfdGVzdF9yZWdpc3RyeSgpLiBcCi0gICAgICAgICAgR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVy
PHRlc3RfY2FzZV9uYW1lPihcCi0gICAgICAgICAgICAgICN0ZXN0X2Nhc2VfbmFtZSwgXAotICAg
ICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oXAotICAgICAgICAg
ICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKSktPkFkZFRlc3RDYXNlSW5zdGFudGlhdGlvbihc
Ci0gICAgICAgICAgICAgICAgICAgICAgI3ByZWZpeCwgXAotICAgICAgICAgICAgICAgICAgICAg
ICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdG9yXywgXAotICAg
ICAgICAgICAgICAgICAgICAgICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFs
R2VuZXJhdGVOYW1lXywgXAotICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVf
XykKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCA1MTg2NWY4NGU2ZjZm
YTNlMGZjZTE5ODcwMGI1YTVkZmU1ZjY1NTBlLi40NmZlODk1MGZlODhkZGQ4ZDdiYzliZmMxZDcw
OGMwYzkyOGEzMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdC1wcmludGVycy5oCkBAIC05Nyw3NSArOTcsMTQxIEBACiAKIC8vIEdP
T0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSSU5URVJTX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UFJJTlRFUlNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSSU5U
RVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUklOVEVSU19I
XwogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8
b3N0cmVhbT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVkZSA8c3RyaW5n
PgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0
aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0
LXBvcnQuaCIKKwogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCisj
aW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCi0jaWYgR1RFU1RfSEFTX1NU
RF9UVVBMRV8KLSMgaW5jbHVkZSA8dHVwbGU+Ci0jZW5kaWYKLQotI2lmIEdURVNUX0hBU19BQlNM
Ci0jaW5jbHVkZSAiYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgiCi0jaW5jbHVkZSAiYWJzbC90
eXBlcy9vcHRpb25hbC5oIgotI2luY2x1ZGUgImFic2wvdHlwZXMvdmFyaWFudC5oIgotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0hBU19SVFRJCisjaW5jbHVkZSA8dHlwZWlu
ZGV4PgorI2luY2x1ZGUgPHR5cGVpbmZvPgorI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQogCiBu
YW1lc3BhY2UgdGVzdGluZyB7CiAKLS8vIERlZmluaXRpb25zIGluIHRoZSAnaW50ZXJuYWwnIGFu
ZCAnaW50ZXJuYWwyJyBuYW1lIHNwYWNlcyBhcmUKLS8vIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhv
dXQgbm90aWNlLiAgRE8gTk9UIFVTRSBUSEVNIElOIFVTRVIgQ09ERSEKLW5hbWVzcGFjZSBpbnRl
cm5hbDIgeworLy8gRGVmaW5pdGlvbnMgaW4gdGhlIGludGVybmFsKiBuYW1lc3BhY2VzIGFyZSBz
dWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KKy8vIERPIE5PVCBVU0UgVEhFTSBJTiBV
U0VSIENPREUhCituYW1lc3BhY2UgaW50ZXJuYWwgewogCi0vLyBQcmludHMgdGhlIGdpdmVuIG51
bWJlciBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIHRoZSBnaXZlbgotLy8gb3N0cmVh
bS4KLUdURVNUX0FQSV8gdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBj
aGFyKiBvYmpfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6c3RkOjpv
c3RyZWFtKiBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgVW5pdmVyc2FsUHJpbnQo
Y29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiAKLS8vIEZvciBzZWxlY3Rpbmcg
d2hpY2ggcHJpbnRlciB0byB1c2Ugd2hlbiBhIGdpdmVuIHR5cGUgaGFzIG5laXRoZXIgPDwKLS8v
IG5vciBQcmludFRvKCkuCi1lbnVtIFR5cGVLaW5kIHsKLSAga1Byb3RvYnVmLCAgICAgICAgICAg
ICAgLy8gYSBwcm90b2J1ZiB0eXBlCi0gIGtDb252ZXJ0aWJsZVRvSW50ZWdlciwgIC8vIGEgdHlw
ZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gKGUuZy4gYSBuYW1lZCBvciB1bm5hbWVkIGVudW0gdHlwZSkKLSNpZiBHVEVT
VF9IQVNfQUJTTAotICBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXcsICAvLyBhIHR5cGUgaW1wbGlj
aXRseSBjb252ZXJ0aWJsZSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhYnNs
OjpzdHJpbmdfdmlldwotI2VuZGlmCi0gIGtPdGhlclR5cGUgIC8vIGFueXRoaW5nIGVsc2UKKy8v
IFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciB3aGVuIHRoZSB1c2VyIGRvZXNu
J3QgZGVmaW5lCisvLyBhIFByaW50VG8oKSBmb3IgaXQuCitzdHJ1Y3QgQ29udGFpbmVyUHJpbnRl
ciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAgICAgICAoc2l6ZW9mKElzQ29udGFpbmVy
VGVzdDxUPigwKSkgPT0gc2l6ZW9mKElzQ29udGFpbmVyKSkgJiYKKyAgICAgICAgICAgICAgICAh
SXNSZWN1cnNpdmVDb250YWluZXI8VD46OnZhbHVlPjo6dHlwZT4KKyAgc3RhdGljIHZvaWQgUHJp
bnRWYWx1ZShjb25zdCBUJiBjb250YWluZXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBjb25z
dCBzaXplX3Qga01heENvdW50ID0gMzI7ICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVu
dHMgdG8gcHJpbnQuCisgICAgKm9zIDw8ICd7JzsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAg
IGZvciAoYXV0byYmIGVsZW0gOiBjb250YWluZXIpIHsKKyAgICAgIGlmIChjb3VudCA+IDApIHsK
KyAgICAgICAgKm9zIDw8ICcsJzsKKyAgICAgICAgaWYgKGNvdW50ID09IGtNYXhDb3VudCkgeyAg
Ly8gRW5vdWdoIGhhcyBiZWVuIHByaW50ZWQuCisgICAgICAgICAgKm9zIDw8ICIgLi4uIjsKKyAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgKm9zIDw8ICcgJzsKKyAg
ICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8oZWxlbSwgb3MpIGhlcmUgYXMgUHJpbnRUbygp
IGRvZXNuJ3QKKyAgICAgIC8vIGhhbmRsZSBgZWxlbWAgYmVpbmcgYSBuYXRpdmUgYXJyYXkuCisg
ICAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoZWxlbSwgb3MpOworICAgICAgKytjb3VudDsK
KyAgICB9CisKKyAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAqb3MgPDwgJyAnOworICAgIH0K
KyAgICAqb3MgPDwgJ30nOworICB9CiB9OwogCi0vLyBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBr
VHlwZUtpbmQ+OjpQcmludFZhbHVlKHZhbHVlLCBvcykgaXMgY2FsbGVkCi0vLyBieSB0aGUgdW5p
dmVyc2FsIHByaW50ZXIgdG8gcHJpbnQgYSB2YWx1ZSBvZiB0eXBlIFQgd2hlbiBuZWl0aGVyCi0v
LyBvcGVyYXRvcjw8IG5vciBQcmludFRvKCkgaXMgZGVmaW5lZCBmb3IgVCwgd2hlcmUga1R5cGVL
aW5kIGlzIHRoZQotLy8gImtpbmQiIG9mIFQgYXMgZGVmaW5lZCBieSBlbnVtIFR5cGVLaW5kLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIFR5cGVLaW5kIGtUeXBlS2luZD4KLWNsYXNzIFR5cGVXaXRo
b3V0Rm9ybWF0dGVyIHsKLSBwdWJsaWM6Ci0gIC8vIFRoaXMgZGVmYXVsdCB2ZXJzaW9uIGlzIGNh
bGxlZCB3aGVuIGtUeXBlS2luZCBpcyBrT3RoZXJUeXBlLgorLy8gVXNlZCB0byBwcmludCBhIHBv
aW50ZXIgdGhhdCBpcyBuZWl0aGVyIGEgY2hhciBwb2ludGVyIG5vciBhIG1lbWJlcgorLy8gcG9p
bnRlciwgd2hlbiB0aGUgdXNlciBkb2Vzbid0IGRlZmluZSBQcmludFRvKCkgZm9yIGl0LiAgKEEg
bWVtYmVyCisvLyB2YXJpYWJsZSBwb2ludGVyIG9yIG1lbWJlciBmdW5jdGlvbiBwb2ludGVyIGRv
ZXNuJ3QgcmVhbGx5IHBvaW50IHRvCisvLyBhIGxvY2F0aW9uIGluIHRoZSBhZGRyZXNzIHNwYWNl
LiAgVGhlaXIgcmVwcmVzZW50YXRpb24gaXMKKy8vIGltcGxlbWVudGF0aW9uLWRlZmluZWQuICBU
aGVyZWZvcmUgdGhleSB3aWxsIGJlIHByaW50ZWQgYXMgcmF3CisvLyBieXRlcy4pCitzdHJ1Y3Qg
RnVuY3Rpb25Qb2ludGVyUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6aXNfZnVuY3Rpb248VD46OnZhbHVlPjo6dHlwZT4KKyAgc3RhdGljIHZvaWQgUHJpbnRW
YWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7
CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAvLyBUIGlzIGEgZnVu
Y3Rpb24gdHlwZSwgc28gJypvcyA8PCBwJyBkb2Vzbid0IGRvIHdoYXQgd2Ugd2FudAorICAgICAg
Ly8gKGl0IGp1c3QgcHJpbnRzIHAgYXMgYm9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBj
b25zdAorICAgICAgLy8gdm9pZCouCisgICAgICAqb3MgPDwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB2b2lkKj4ocCk7CisgICAgfQorICB9Cit9OworCitzdHJ1Y3QgUG9pbnRlclByaW50ZXIgewor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShUKiBwLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7CisgICAgICAqb3Mg
PDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAvLyBUIGlzIG5vdCBhIGZ1bmN0aW9uIHR5
cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwKKyAgICAgIC8vIHJlbHlpbmcgb24gQURM
IHRvIHBpY2sgdXAgdXNlci1kZWZpbmVkIDw8IGZvciB0aGVpciBwb2ludGVyCisgICAgICAvLyB0
eXBlcywgaWYgYW55LgorICAgICAgKm9zIDw8IHA7CisgICAgfQorICB9Cit9OworCituYW1lc3Bh
Y2UgaW50ZXJuYWxfc3RyZWFtX29wZXJhdG9yX3dpdGhvdXRfbGV4aWNhbF9uYW1lX2xvb2t1cCB7
CisKKy8vIFRoZSBwcmVzZW5jZSBvZiBhbiBvcGVyYXRvcjw8IGhlcmUgd2lsbCB0ZXJtaW5hdGUg
bGV4aWNhbCBzY29wZSBsb29rdXAKKy8vIHN0cmFpZ2h0IGF3YXkgKGV2ZW4gdGhvdWdoIGl0IGNh
bm5vdCBiZSBhIG1hdGNoIGJlY2F1c2Ugb2YgaXRzIGFyZ3VtZW50CisvLyB0eXBlcykuIFRodXMs
IHRoZSB0d28gb3BlcmF0b3I8PCBjYWxscyBpbiBTdHJlYW1QcmludGVyIHdpbGwgZmluZCBvbmx5
IEFETAorLy8gY2FuZGlkYXRlcy4KK3N0cnVjdCBMb29rdXBCbG9ja2VyIHt9Owordm9pZCBvcGVy
YXRvcjw8KExvb2t1cEJsb2NrZXIsIExvb2t1cEJsb2NrZXIpOworCitzdHJ1Y3QgU3RyZWFtUHJp
bnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgLy8gRG9uJ3QgYWNj
ZXB0IG1lbWJlciBwb2ludGVycyBoZXJlLiBXZSdkIHByaW50IHRoZW0gdmlhIGltcGxpY2l0Cisg
ICAgICAgICAgICAvLyBjb252ZXJzaW9uIHRvIGJvb2wsIHdoaWNoIGlzbid0IHVzZWZ1bC4KKyAg
ICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8CisgICAgICAgICAg
ICAgICAgIXN0ZDo6aXNfbWVtYmVyX3BvaW50ZXI8VD46OnZhbHVlPjo6dHlwZSwKKyAgICAgICAg
ICAgIC8vIE9ubHkgYWNjZXB0IHR5cGVzIGZvciB3aGljaCB3ZSBjYW4gZmluZCBhIHN0cmVhbWlu
ZyBvcGVyYXRvciB2aWEKKyAgICAgICAgICAgIC8vIEFETCAocG9zc2libHkgaW52b2x2aW5nIGlt
cGxpY2l0IGNvbnZlcnNpb25zKS4KKyAgICAgICAgICAgIHR5cGVuYW1lID0gZGVjbHR5cGUoc3Rk
OjpkZWNsdmFsPHN0ZDo6b3N0cmVhbSY+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgc3RkOjpkZWNsdmFsPGNvbnN0IFQmPigpKT4KICAgc3RhdGljIHZvaWQgUHJpbnRWYWx1
ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgUHJpbnRCeXRlc0lu
T2JqZWN0VG8oc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigmdmFsdWUpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmFsdWUpLCBvcyk7CisgICAgLy8gQ2Fs
bCBzdHJlYW1pbmcgb3BlcmF0b3IgZm91bmQgYnkgQURMLCBwb3NzaWJseSB3aXRoIGltcGxpY2l0
IGNvbnZlcnNpb25zCisgICAgLy8gb2YgdGhlIGFyZ3VtZW50cy4KKyAgICAqb3MgPDwgdmFsdWU7
CiAgIH0KIH07CiAKLS8vIFdlIHByaW50IGEgcHJvdG9idWYgdXNpbmcgaXRzIFNob3J0RGVidWdT
dHJpbmcoKSB3aGVuIHRoZSBzdHJpbmcKLS8vIGRvZXNuJ3QgZXhjZWVkIHRoaXMgbWFueSBjaGFy
YWN0ZXJzOyBvdGhlcndpc2Ugd2UgcHJpbnQgaXQgdXNpbmcKLS8vIERlYnVnU3RyaW5nKCkgZm9y
IGJldHRlciByZWFkYWJpbGl0eS4KLWNvbnN0IHNpemVfdCBrUHJvdG9idWZPbmVMaW5lck1heExl
bmd0aCA9IDUwOworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRo
b3V0X2xleGljYWxfbmFtZV9sb29rdXAKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBU
eXBlV2l0aG91dEZvcm1hdHRlcjxULCBrUHJvdG9idWY+IHsKLSBwdWJsaWM6CitzdHJ1Y3QgUHJv
dG9idWZQcmludGVyIHsKKyAgLy8gV2UgcHJpbnQgYSBwcm90b2J1ZiB1c2luZyBpdHMgU2hvcnRE
ZWJ1Z1N0cmluZygpIHdoZW4gdGhlIHN0cmluZworICAvLyBkb2Vzbid0IGV4Y2VlZCB0aGlzIG1h
bnkgY2hhcmFjdGVyczsgb3RoZXJ3aXNlIHdlIHByaW50IGl0IHVzaW5nCisgIC8vIERlYnVnU3Ry
aW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KKyAgc3RhdGljIGNvbnN0IHNpemVfdCBrUHJv
dG9idWZPbmVMaW5lck1heExlbmd0aCA9IDUwOworCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAor
ICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbDo6SGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2
YWx1ZT46OnR5cGU+CiAgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewogICAgIHN0ZDo6c3RyaW5nIHByZXR0eV9zdHIgPSB2YWx1ZS5T
aG9ydERlYnVnU3RyaW5nKCk7CiAgICAgaWYgKHByZXR0eV9zdHIubGVuZ3RoKCkgPiBrUHJvdG9i
dWZPbmVMaW5lck1heExlbmd0aCkgewpAQCAtMTc1LDkgKzI0MSw3IEBAIGNsYXNzIFR5cGVXaXRo
b3V0Rm9ybWF0dGVyPFQsIGtQcm90b2J1Zj4gewogICB9CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0aWJsZVRvSW50ZWdl
cj4gewotIHB1YmxpYzoKK3N0cnVjdCBDb252ZXJ0aWJsZVRvSW50ZWdlclByaW50ZXIgewogICAv
LyBTaW5jZSBUIGhhcyBubyA8PCBvcGVyYXRvciBvciBQcmludFRvKCkgYnV0IGNhbiBiZSBpbXBs
aWNpdGx5CiAgIC8vIGNvbnZlcnRlZCB0byBCaWdnZXN0SW50LCB3ZSBwcmludCBpdCBhcyBhIEJp
Z2dlc3RJbnQuCiAgIC8vCkBAIC0xODUsMTEyICsyNDksNzMgQEAgY2xhc3MgVHlwZVdpdGhvdXRG
b3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9JbnRlZ2VyPiB7CiAgIC8vIGNhc2UgcHJpbnRpbmcg
aXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvci4gIEluIGNhc2UKICAgLy8g
VCBpcyBub3QgYW4gZW51bSwgcHJpbnRpbmcgaXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgYmVzdCB3
ZSBjYW4gZG8KICAgLy8gZ2l2ZW4gdGhhdCBpdCBoYXMgbm8gdXNlci1kZWZpbmVkIHByaW50ZXIu
Ci0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewotICAgIGNvbnN0IGludGVybmFsOjpCaWdnZXN0SW50IGtCaWdJbnQgPSB2YWx1ZTsK
LSAgICAqb3MgPDwga0JpZ0ludDsKKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6
QmlnZ2VzdEludCB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHZhbHVl
OwogICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX0FCU0wKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
Y2xhc3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9TdHJpbmdWaWV3PiB7
Ci0gcHVibGljOgotICAvLyBTaW5jZSBUIGhhcyBuZWl0aGVyIG9wZXJhdG9yPDwgbm9yIFByaW50
VG8oKSBidXQgY2FuIGJlIGltcGxpY2l0bHkKLSAgLy8gY29udmVydGVkIHRvIGFic2w6OnN0cmlu
Z192aWV3LCB3ZSBwcmludCBpdCBhcyBhIGFic2w6OnN0cmluZ192aWV3LgotICAvLwotICAvLyBO
b3RlOiB0aGUgaW1wbGVtZW50YXRpb24gaXMgZnVydGhlciBiZWxvdywgYXMgaXQgZGVwZW5kcyBv
bgotICAvLyBpbnRlcm5hbDo6UHJpbnRUbyBzeW1ib2wgd2hpY2ggaXMgZGVmaW5lZCBsYXRlciBp
biB0aGUgZmlsZS4KLSAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpz
dGQ6Om9zdHJlYW0qIG9zKTsKLX07Ci0jZW5kaWYKLQotLy8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1
ZSB0byB0aGUgZ2l2ZW4gb3N0cmVhbS4gIElmIHRoZSB2YWx1ZSBpcyBhCi0vLyBwcm90b2NvbCBt
ZXNzYWdlLCBpdHMgZGVidWcgc3RyaW5nIGlzIHByaW50ZWQ7IGlmIGl0J3MgYW4gZW51bSBvcgot
Ly8gb2YgYSB0eXBlIGltcGxpY2l0bHkgY29udmVydGlibGUgdG8gQmlnZ2VzdEludCwgaXQncyBw
cmludGVkIGFzIGFuCi0vLyBpbnRlZ2VyOyBvdGhlcndpc2UgdGhlIGJ5dGVzIGluIHRoZSB2YWx1
ZSBhcmUgcHJpbnRlZC4gIFRoaXMgaXMKLS8vIHdoYXQgVW5pdmVyc2FsUHJpbnRlcjxUPjo6UHJp
bnQoKSBkb2VzIHdoZW4gaXQga25vd3Mgbm90aGluZyBhYm91dAotLy8gdHlwZSBUIGFuZCBUIGhh
cyBuZWl0aGVyIDw8IG9wZXJhdG9yIG5vciBQcmludFRvKCkuCi0vLwotLy8gQSB1c2VyIGNhbiBv
dmVycmlkZSB0aGlzIGJlaGF2aW9yIGZvciBhIGNsYXNzIHR5cGUgRm9vIGJ5IGRlZmluaW5nCi0v
LyBhIDw8IG9wZXJhdG9yIGluIHRoZSBuYW1lc3BhY2Ugd2hlcmUgRm9vIGlzIGRlZmluZWQuCi0v
LwotLy8gV2UgcHV0IHRoaXMgb3BlcmF0b3IgaW4gbmFtZXNwYWNlICdpbnRlcm5hbDInIGluc3Rl
YWQgb2YgJ2ludGVybmFsJwotLy8gdG8gc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLCBhcyBt
dWNoIGNvZGUgaW4gJ2ludGVybmFsJyBuZWVkcyB0bwotLy8gdXNlIDw8IGluIFNUTCwgd2hpY2gg
d291bGQgY29uZmxpY3Qgd2l0aCBvdXIgb3duIDw8IHdlcmUgaXQgZGVmaW5lZAotLy8gaW4gJ2lu
dGVybmFsJy4KLS8vCi0vLyBOb3RlIHRoYXQgdGhpcyBvcGVyYXRvcjw8IHRha2VzIGEgZ2VuZXJp
YyBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwKLS8vIENoYXJUcmFpdHM+IHR5cGUgaW5zdGVhZCBv
ZiB0aGUgbW9yZSByZXN0cmljdGVkIHN0ZDo6b3N0cmVhbS4gIElmCi0vLyB3ZSBkZWZpbmUgaXQg
dG8gdGFrZSBhbiBzdGQ6Om9zdHJlYW0gaW5zdGVhZCwgd2UnbGwgZ2V0IGFuCi0vLyAiYW1iaWd1
b3VzIG92ZXJsb2FkcyIgY29tcGlsZXIgZXJyb3Igd2hlbiB0cnlpbmcgdG8gcHJpbnQgYSB0eXBl
Ci0vLyBGb28gdGhhdCBzdXBwb3J0cyBzdHJlYW1pbmcgdG8gc3RkOjpiYXNpY19vc3RyZWFtPENo
YXIsCi0vLyBDaGFyVHJhaXRzPiwgYXMgdGhlIGNvbXBpbGVyIGNhbm5vdCB0ZWxsIHdoZXRoZXIK
LS8vIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3QgVCYpIG9yCi0vLyBvcGVyYXRvcjw8
KHN0ZDo6YmFzaWNfc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+LCBjb25zdCBGb28mKSBpcyBtb3Jl
Ci0vLyBzcGVjaWZpYy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyLCB0eXBlbmFtZSBDaGFyVHJh
aXRzLCB0eXBlbmFtZSBUPgotOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4m
IG9wZXJhdG9yPDwoCi0gICAgOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4m
IG9zLCBjb25zdCBUJiB4KSB7Ci0gIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIChpbnRlcm5hbDo6
SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID8ga1Byb3RvYnVmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnRlcm5h
bDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFQmLCBpbnRlcm5hbDo6QmlnZ2VzdEludD46OnZhbHVlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrQ29udmVydGlibGVUb0ludGVnZXIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Ci0jaWYgR1RFU1RfSEFTX0FCU0wKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6SW1wbGljaXRseUNv
bnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBUJiwgYWJzbDo6c3RyaW5nX3ZpZXc+Ojp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA/IGtDb252ZXJ0aWJsZVRvU3RyaW5nVmlldwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CitzdHJ1Y3QgQ29udmVydGlibGVUb1N0cmlu
Z1ZpZXdQcmludGVyIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKKyAgc3Rh
dGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6U3RyaW5nVmlldyB2YWx1ZSwgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7CisgICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KHZhbHVlLCBvcyk7Cisg
IH0KICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrT3Ro
ZXJUeXBlKT46OlByaW50VmFsdWUoeCwgJm9zKTsKLSAgcmV0dXJuIG9zOwotfQorfTsKIAotfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsMgotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotLy8gVGhp
cyBuYW1lc3BhY2UgTVVTVCBOT1QgQkUgTkVTVEVEIElOIDo6dGVzdGluZywgb3IgdGhlIG5hbWUg
bG9vay11cAotLy8gbWFnaWMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgVW5pdmVyc2FsUHJpbnRl
ciB3b24ndCB3b3JrLgotbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwgeworLy8gUHJpbnRzIHRo
ZSBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGdpdmVuIG9iamVjdCB0byB0aGUgZ2l2ZW4K
Ky8vIG9zdHJlYW0uCitHVEVTVF9BUElfIHZvaWQgUHJpbnRCeXRlc0luT2JqZWN0VG8oY29uc3Qg
dW5zaWduZWQgY2hhciogb2JqX2J5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnN0ZDo6b3N0cmVhbSogb3MpOworc3RydWN0IFJhd0J5dGVzUHJpbnRlciB7CisgIC8vIFNG
SU5BRSBvbiBgc2l6ZW9mYCB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIGNvbXBsZXRlIHR5cGUuCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgPSBzaXplb2YoVCk+CisgIHN0YXRpYyB2b2lk
IFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgIFBy
aW50Qnl0ZXNJbk9iamVjdFRvKAorICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBj
aGFyKj4oCisgICAgICAgICAgICAvLyBMb2FkIGJlYXJpbmcgY2FzdCB0byB2b2lkKiB0byBzdXBw
b3J0IGlPUworICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oc3RkOjph
ZGRyZXNzb2YodmFsdWUpKSksCisgICAgICAgIHNpemVvZih2YWx1ZSksIG9zKTsKKyAgfQorfTsK
IAotLy8gVXNlZCB0byBwcmludCBhIHZhbHVlIHRoYXQgaXMgbm90IGFuIFNUTC1zdHlsZSBjb250
YWluZXIgd2hlbiB0aGUKLS8vIHVzZXIgZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnROb25Db250YWluZXJUbyhj
b25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIC8vIFdpdGggdGhlIGZvbGxv
d2luZyBzdGF0ZW1lbnQsIGR1cmluZyB1bnF1YWxpZmllZCBuYW1lIGxvb2t1cCwKLSAgLy8gdGVz
dGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGFwcGVhcnMgYXMgaWYgaXQgd2FzIGRlY2xhcmVk
IGluCi0gIC8vIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBuYW1lc3BhY2UgdGhhdCBjb250YWlucyBi
b3RoCi0gIC8vIDo6dGVzdGluZ19pbnRlcm5hbCBhbmQgOjp0ZXN0aW5nOjppbnRlcm5hbDIsIGku
ZS4gdGhlIGdsb2JhbAotICAvLyBuYW1lc3BhY2UuICBGb3IgbW9yZSBkZXRhaWxzLCByZWZlciB0
byB0aGUgQysrIFN0YW5kYXJkIHNlY3Rpb24KLSAgLy8gNy4zLjQtMSBbbmFtZXNwYWNlLnVkaXJd
LiAgVGhpcyBhbGxvd3MgdXMgdG8gZmFsbCBiYWNrIG9udG8KLSAgLy8gdGVzdGluZzo6aW50ZXJu
YWwyOjpvcGVyYXRvcjw8IGluIGNhc2UgVCBkb2Vzbid0IGNvbWUgd2l0aCBhIDw8Ci0gIC8vIG9w
ZXJhdG9yLgotICAvLwotICAvLyBXZSBjYW5ub3Qgd3JpdGUgJ3VzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWwyOjpvcGVyYXRvcjw8OycsIHdoaWNoCi0gIC8vIGdjYyAzLjMgZmFpbHMgdG8gY29tcGls
ZSBkdWUgdG8gYSBjb21waWxlciBidWcuCi0gIHVzaW5nIG5hbWVzcGFjZSA6OnRlc3Rpbmc6Omlu
dGVybmFsMjsgIC8vIE5PTElOVAorc3RydWN0IEZhbGxiYWNrUHJpbnRlciB7CisgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgorICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0IFQmLCA6OnN0ZDo6
b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgIihpbmNvbXBsZXRlIHR5cGUpIjsKKyAgfQorfTsK
IAotICAvLyBBc3N1bWluZyBUIGlzIGRlZmluZWQgaW4gbmFtZXNwYWNlIGZvbywgaW4gdGhlIG5l
eHQgc3RhdGVtZW50LAotICAvLyB0aGUgY29tcGlsZXIgd2lsbCBjb25zaWRlciBhbGwgb2Y6Ci0g
IC8vCi0gIC8vICAgMS4gZm9vOjpvcGVyYXRvcjw8ICh0aGFua3MgdG8gS29lbmlnIGxvb2stdXAp
LAotICAvLyAgIDIuIDo6b3BlcmF0b3I8PCAoYXMgdGhlIGN1cnJlbnQgbmFtZXNwYWNlIGlzIGVu
Y2xvc2VkIGluIDo6KSwKLSAgLy8gICAzLiB0ZXN0aW5nOjppbnRlcm5hbDI6Om9wZXJhdG9yPDwg
KHRoYW5rcyB0byB0aGUgdXNpbmcgc3RhdGVtZW50IGFib3ZlKS4KLSAgLy8KLSAgLy8gVGhlIG9w
ZXJhdG9yPDwgd2hvc2UgdHlwZSBtYXRjaGVzIFQgYmVzdCB3aWxsIGJlIHBpY2tlZC4KLSAgLy8K
LSAgLy8gV2UgZGVsaWJlcmF0ZWx5IGFsbG93ICMyIHRvIGJlIGEgY2FuZGlkYXRlLCBhcyBzb21l
dGltZXMgaXQncwotICAvLyBpbXBvc3NpYmxlIHRvIGRlZmluZSAjMSAoZS5nLiB3aGVuIGZvbyBp
cyA6OnN0ZCwgZGVmaW5pbmcKLSAgLy8gYW55dGhpbmcgaW4gaXQgaXMgdW5kZWZpbmVkIGJlaGF2
aW9yIHVubGVzcyB5b3UgYXJlIGEgY29tcGlsZXIKLSAgLy8gdmVuZG9yLikuCi0gICpvcyA8PCB2
YWx1ZTsKLX0KKy8vIFRyeSBldmVyeSBwcmludGVyIGluIG9yZGVyIGFuZCByZXR1cm4gdGhlIGZp
cnN0IG9uZSB0aGF0IHdvcmtzLgordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEUsIHR5
cGVuYW1lIFByaW50ZXIsIHR5cGVuYW1lLi4uIFByaW50ZXJzPgorc3RydWN0IEZpbmRGaXJzdFBy
aW50ZXIgOiBGaW5kRmlyc3RQcmludGVyPFQsIEUsIFByaW50ZXJzLi4uPiB7fTsKIAotfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBQcmludGVyLCB0eXBlbmFtZS4uLiBQcmludGVycz4KK3N0cnVjdCBGaW5kRmlyc3RQcmludGVy
PAorICAgIFQsIGRlY2x0eXBlKFByaW50ZXI6OlByaW50VmFsdWUoc3RkOjpkZWNsdmFsPGNvbnN0
IFQmPigpLCBudWxscHRyKSksCisgICAgUHJpbnRlciwgUHJpbnRlcnMuLi4+IHsKKyAgdXNpbmcg
dHlwZSA9IFByaW50ZXI7Cit9OwogCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50
ZXJuYWwgeworLy8gU2VsZWN0IHRoZSBiZXN0IHByaW50ZXIgaW4gdGhlIGZvbGxvd2luZyBvcmRl
cjoKKy8vICAtIFByaW50IGNvbnRhaW5lcnMgKHRoZXkgaGF2ZSBiZWdpbi9lbmQvZXRjKS4KKy8v
ICAtIFByaW50IGZ1bmN0aW9uIHBvaW50ZXJzLgorLy8gIC0gUHJpbnQgb2JqZWN0IHBvaW50ZXJz
LgorLy8gIC0gVXNlIHRoZSBzdHJlYW0gb3BlcmF0b3IsIGlmIGF2YWlsYWJsZS4KKy8vICAtIFBy
aW50IHByb3RvY29sIGJ1ZmZlcnMuCisvLyAgLSBQcmludCB0eXBlcyBjb252ZXJ0aWJsZSB0byBC
aWdnZXN0SW50LgorLy8gIC0gUHJpbnQgdHlwZXMgY29udmVydGlibGUgdG8gU3RyaW5nVmlldywg
aWYgYXZhaWxhYmxlLgorLy8gIC0gRmFsbGJhY2sgdG8gcHJpbnRpbmcgdGhlIHJhdyBieXRlcyBv
ZiB0aGUgb2JqZWN0LgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIFByaW50V2l0aEZhbGxi
YWNrKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgdXNpbmcgUHJpbnRl
ciA9IHR5cGVuYW1lIEZpbmRGaXJzdFByaW50ZXI8CisgICAgICBULCB2b2lkLCBDb250YWluZXJQ
cmludGVyLCBGdW5jdGlvblBvaW50ZXJQcmludGVyLCBQb2ludGVyUHJpbnRlciwKKyAgICAgIGlu
dGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9sb29rdXA6OlN0cmVh
bVByaW50ZXIsCisgICAgICBQcm90b2J1ZlByaW50ZXIsIENvbnZlcnRpYmxlVG9JbnRlZ2VyUHJp
bnRlciwKKyAgICAgIENvbnZlcnRpYmxlVG9TdHJpbmdWaWV3UHJpbnRlciwgUmF3Qnl0ZXNQcmlu
dGVyLCBGYWxsYmFja1ByaW50ZXI+Ojp0eXBlOworICBQcmludGVyOjpQcmludFZhbHVlKHZhbHVl
LCBvcyk7Cit9CiAKIC8vIEZvcm1hdEZvckNvbXBhcmlzb248VG9QcmludCwgT3RoZXJPcGVyYW5k
Pjo6Rm9ybWF0KHZhbHVlKSBmb3JtYXRzIGEKIC8vIHZhbHVlIG9mIHR5cGUgVG9QcmludCB0aGF0
IGlzIGFuIG9wZXJhbmQgb2YgYSBjb21wYXJpc29uIGFzc2VydGlvbgpAQCAtMzQwLDYgKzM2NSwx
NCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyKTsKIEdURVNU
X0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNoYXIpOwogR1RFU1RfSU1Q
TF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8od2NoYXJfdCk7CiBHVEVTVF9JTVBMX0ZPUk1B
VF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hhcl90KTsKKyNpZmRlZiBfX2NwcF9jaGFy
OF90CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyOF90KTsKK0dU
RVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNoYXI4X3QpOworI2Vu
ZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyMTZfdCk7CitH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyMTZfdCk7CitH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyMzJfdCk7CitHVEVTVF9J
TVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyMzJfdCk7CiAKICN1bmRl
ZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXwogCkBAIC0zNTcsMTYgKzM5
MCwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hh
cl90KTsKIAogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0
ZDo6c3RyaW5nKTsKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3Qg
Y2hhciwgOjpzdGQ6OnN0cmluZyk7Ci0KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotR1RF
U1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0cmluZyk7Ci1HVEVT
VF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIsIDo6c3RyaW5nKTsK
LSNlbmRpZgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi1HVEVTVF9JTVBMX0ZPUk1B
VF9DX1NUUklOR19BU19TVFJJTkdfKHdjaGFyX3QsIDo6d3N0cmluZyk7Ci1HVEVTVF9JTVBMX0ZP
Uk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IHdjaGFyX3QsIDo6d3N0cmluZyk7CisjaWZk
ZWYgX19jcHBfY2hhcjhfdAorR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhj
aGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNf
U1RSSU5HXyhjb25zdCBjaGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOwogI2VuZGlmCitHVEVTVF9J
TVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNoYXIxNl90LCA6OnN0ZDo6dTE2c3RyaW5n
KTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3QgY2hhcjE2X3Qs
IDo6c3RkOjp1MTZzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
XyhjaGFyMzJfdCwgOjpzdGQ6OnUzMnN0cmluZyk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklO
R19BU19TVFJJTkdfKGNvbnN0IGNoYXIzMl90LCA6OnN0ZDo6dTMyc3RyaW5nKTsKIAogI2lmIEdU
RVNUX0hBU19TVERfV1NUUklORwogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
Xyh3Y2hhcl90LCA6OnN0ZDo6d3N0cmluZyk7CkBAIC0zOTksODUgKzQzMCw2IEBAIHN0ZDo6c3Ry
aW5nIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSgKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12
b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwot
Ci1lbnVtIERlZmF1bHRQcmludGVyVHlwZSB7Ci0gIGtQcmludENvbnRhaW5lciwKLSAga1ByaW50
UG9pbnRlciwKLSAga1ByaW50RnVuY3Rpb25Qb2ludGVyLAotICBrUHJpbnRPdGhlciwKLX07Ci10
ZW1wbGF0ZSA8RGVmYXVsdFByaW50ZXJUeXBlIHR5cGU+IHN0cnVjdCBXcmFwUHJpbnRlclR5cGUg
e307Ci0KLS8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciB3aGVuIHRoZSB1
c2VyIGRvZXNuJ3QgZGVmaW5lCi0vLyBhIFByaW50VG8oKSBmb3IgaXQuCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgQz4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludENvbnRh
aW5lcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEMmIGNvbnRhaW5l
ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGNvbnN0IHNpemVfdCBrTWF4Q291bnQgPSAzMjsg
IC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyB0byBwcmludC4KLSAgKm9zIDw8ICd7
JzsKLSAgc2l6ZV90IGNvdW50ID0gMDsKLSAgZm9yICh0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRv
ciBpdCA9IGNvbnRhaW5lci5iZWdpbigpOwotICAgICAgIGl0ICE9IGNvbnRhaW5lci5lbmQoKTsg
KytpdCwgKytjb3VudCkgewotICAgIGlmIChjb3VudCA+IDApIHsKLSAgICAgICpvcyA8PCAnLCc7
Ci0gICAgICBpZiAoY291bnQgPT0ga01heENvdW50KSB7ICAvLyBFbm91Z2ggaGFzIGJlZW4gcHJp
bnRlZC4KLSAgICAgICAgKm9zIDw8ICIgLi4uIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0g
ICAgfQotICAgICpvcyA8PCAnICc7Ci0gICAgLy8gV2UgY2Fubm90IGNhbGwgUHJpbnRUbygqaXQs
IG9zKSBoZXJlIGFzIFByaW50VG8oKSBkb2Vzbid0Ci0gICAgLy8gaGFuZGxlICppdCBiZWluZyBh
IG5hdGl2ZSBhcnJheS4KLSAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoKml0LCBvcyk7Ci0g
IH0KLQotICBpZiAoY291bnQgPiAwKSB7Ci0gICAgKm9zIDw8ICcgJzsKLSAgfQotICAqb3MgPDwg
J30nOwotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgcG9pbnRlciB0aGF0IGlzIG5laXRoZXIgYSBj
aGFyIHBvaW50ZXIgbm9yIGEgbWVtYmVyCi0vLyBwb2ludGVyLCB3aGVuIHRoZSB1c2VyIGRvZXNu
J3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuICAoQSBtZW1iZXIKLS8vIHZhcmlhYmxlIHBvaW50
ZXIgb3IgbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXIgZG9lc24ndCByZWFsbHkgcG9pbnQgdG8KLS8v
IGEgbG9jYXRpb24gaW4gdGhlIGFkZHJlc3Mgc3BhY2UuICBUaGVpciByZXByZXNlbnRhdGlvbiBp
cwotLy8gaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gIFRoZXJlZm9yZSB0aGV5IHdpbGwgYmUgcHJp
bnRlZCBhcyByYXcKLS8vIGJ5dGVzLikKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZh
dWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50UG9pbnRlcj4gLyogZHVtbXkgKi8sCi0g
ICAgICAgICAgICAgICAgICAgIFQqIHAsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBpZiAocCA9
PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAvLyBUIGlzIG5v
dCBhIGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwKLSAgICAvLyBy
ZWx5aW5nIG9uIEFETCB0byBwaWNrIHVwIHVzZXItZGVmaW5lZCA8PCBmb3IgdGhlaXIgcG9pbnRl
cgotICAgIC8vIHR5cGVzLCBpZiBhbnkuCi0gICAgKm9zIDw8IHA7Ci0gIH0KLX0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50
RnVuY3Rpb25Qb2ludGVyPiAvKiBkdW1teSAqLywKLSAgICAgICAgICAgICAgICAgICAgVCogcCwg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGlmIChwID09IE5VTEwpIHsKLSAgICAqb3MgPDwgIk5V
TEwiOwotICB9IGVsc2UgewotICAgIC8vIFQgaXMgYSBmdW5jdGlvbiB0eXBlLCBzbyAnKm9zIDw8
IHAnIGRvZXNuJ3QgZG8gd2hhdCB3ZSB3YW50Ci0gICAgLy8gKGl0IGp1c3QgcHJpbnRzIHAgYXMg
Ym9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBjb25zdAotICAgIC8vIHZvaWQqLgotICAg
ICpvcyA8PCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihwKTsKLSAgfQotfQotCi0vLyBV
c2VkIHRvIHByaW50IGEgbm9uLWNvbnRhaW5lciwgbm9uLXBvaW50ZXIgdmFsdWUgd2hlbiB0aGUg
dXNlcgotLy8gZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50T3RoZXI+
IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7Ci0gIDo6dGVzdGluZ19pbnRlcm5hbDo6RGVmYXVsdFByaW50Tm9uQ29u
dGFpbmVyVG8odmFsdWUsIG9zKTsKLX0KLQogLy8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1ZSB1c2lu
ZyB0aGUgPDwgb3BlcmF0b3IgaWYgaXQgaGFzIG9uZTsKIC8vIG90aGVyd2lzZSBwcmludHMgdGhl
IGJ5dGVzIGluIGl0LiAgVGhpcyBpcyB3aGF0CiAvLyBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmlu
dCgpIGRvZXMgd2hlbiBQcmludFRvKCkgaXMgbm90IHNwZWNpYWxpemVkCkBAIC00OTEsNDAgKzQ0
Myw3IEBAIHZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludE90aGVyPiAv
KiBkdW1teSAqLywKIC8vIHdhbnRzKS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBQcmlu
dFRvKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgLy8gRGVmYXVsdFBy
aW50VG8oKSBpcyBvdmVybG9hZGVkLiAgVGhlIHR5cGUgb2YgaXRzIGZpcnN0IGFyZ3VtZW50Ci0g
IC8vIGRldGVybWluZXMgd2hpY2ggdmVyc2lvbiB3aWxsIGJlIHBpY2tlZC4KLSAgLy8KLSAgLy8g
Tm90ZSB0aGF0IHdlIGNoZWNrIGZvciBjb250YWluZXIgdHlwZXMgaGVyZSwgcHJpb3IgdG8gd2Ug
Y2hlY2sKLSAgLy8gZm9yIHByb3RvY29sIG1lc3NhZ2UgdHlwZXMgaW4gb3VyIG9wZXJhdG9yPDwu
ICBUaGUgcmF0aW9uYWxlIGlzOgotICAvLwotICAvLyBGb3IgcHJvdG9jb2wgbWVzc2FnZXMsIHdl
IHdhbnQgdG8gZ2l2ZSBwZW9wbGUgYSBjaGFuY2UgdG8KLSAgLy8gb3ZlcnJpZGUgR29vZ2xlIE1v
Y2sncyBmb3JtYXQgYnkgZGVmaW5pbmcgYSBQcmludFRvKCkgb3IKLSAgLy8gb3BlcmF0b3I8PC4g
IEZvciBTVEwgY29udGFpbmVycywgb3RoZXIgZm9ybWF0cyBjYW4gYmUKLSAgLy8gaW5jb21wYXRp
YmxlIHdpdGggR29vZ2xlIE1vY2sncyBmb3JtYXQgZm9yIHRoZSBjb250YWluZXIKLSAgLy8gZWxl
bWVudHM7IHRoZXJlZm9yZSB3ZSBjaGVjayBmb3IgY29udGFpbmVyIHR5cGVzIGhlcmUgdG8gZW5z
dXJlCi0gIC8vIHRoYXQgb3VyIGZvcm1hdCBpcyB1c2VkLgotICAvLwotICAvLyBOb3RlIHRoYXQg
TVNWQyBhbmQgY2xhbmctY2wgZG8gYWxsb3cgYW4gaW1wbGljaXQgY29udmVyc2lvbiBmcm9tCi0g
IC8vIHBvaW50ZXItdG8tZnVuY3Rpb24gdG8gcG9pbnRlci10by1vYmplY3QsIGJ1dCBjbGFuZy1j
bCB3YXJucyBvbiBpdC4KLSAgLy8gU28gZG9uJ3QgdXNlIEltcGxpY2l0bHlDb252ZXJ0aWJsZSBp
ZiBpdCBjYW4gYmUgaGVscGVkIHNpbmNlIGl0IHdpbGwKLSAgLy8gY2F1c2UgdGhpcyB3YXJuaW5n
LCBhbmQgdXNlIGEgc2VwYXJhdGUgb3ZlcmxvYWQgb2YgRGVmYXVsdFByaW50VG8gZm9yCi0gIC8v
IGZ1bmN0aW9uIHBvaW50ZXJzIHNvIHRoYXQgdGhlIGAqb3MgPDwgcGAgaW4gdGhlIG9iamVjdCBw
b2ludGVyIG92ZXJsb2FkCi0gIC8vIGRvZXNuJ3QgY2F1c2UgdGhhdCB3YXJuaW5nIGVpdGhlci4K
LSAgRGVmYXVsdFByaW50VG8oCi0gICAgICBXcmFwUHJpbnRlclR5cGUgPAotICAgICAgICAgICAg
ICAgICAgKHNpemVvZihJc0NvbnRhaW5lclRlc3Q8VD4oMCkpID09IHNpemVvZihJc0NvbnRhaW5l
cikpICYmCi0gICAgICAgICAgICAgICFJc1JlY3Vyc2l2ZUNvbnRhaW5lcjxUPjo6dmFsdWUKLSAg
ICAgICAgICA/IGtQcmludENvbnRhaW5lcgotICAgICAgICAgIDogIWlzX3BvaW50ZXI8VD46OnZh
bHVlCi0gICAgICAgICAgICAgICAgPyBrUHJpbnRPdGhlcgotI2lmIEdURVNUX0xBTkdfQ1hYMTEK
LSAgICAgICAgICAgICAgICA6IHN0ZDo6aXNfZnVuY3Rpb248dHlwZW5hbWUgc3RkOjpyZW1vdmVf
cG9pbnRlcjxUPjo6dHlwZT46OnZhbHVlCi0jZWxzZQotICAgICAgICAgICAgICAgIDogIWludGVy
bmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgY29uc3Qgdm9pZCo+Ojp2YWx1ZQotI2VuZGlm
Ci0gICAgICAgICAgICAgICAgICAgICAgPyBrUHJpbnRGdW5jdGlvblBvaW50ZXIKLSAgICAgICAg
ICAgICAgICAgICAgICA6IGtQcmludFBvaW50ZXIgPiAoKSwKLSAgICAgIHZhbHVlLCBvcyk7Cisg
IGludGVybmFsOjpQcmludFdpdGhGYWxsYmFjayh2YWx1ZSwgb3MpOwogfQogCiAvLyBUaGUgZm9s
bG93aW5nIGxpc3Qgb2YgUHJpbnRUbygpIG92ZXJsb2FkcyB0ZWxscwpAQCAtNTU1LDYgKzQ3NCwx
NiBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGJvb2wgeCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAv
LyBpcyBpbXBsZW1lbnRlZCBhcyBhbiB1bnNpZ25lZCB0eXBlLgogR1RFU1RfQVBJXyB2b2lkIFBy
aW50VG8od2NoYXJfdCB3YywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAorR1RFU1RfQVBJXyB2b2lk
IFByaW50VG8oY2hhcjMyX3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFBy
aW50VG8oY2hhcjE2X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGlj
aXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNpZmRlZiBfX2NwcF9jaGFyOF90Citpbmxp
bmUgdm9pZCBQcmludFRvKGNoYXI4X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50
VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNlbmRpZgorCiAvLyBPdmVy
bG9hZHMgZm9yIEMgc3RyaW5ncy4KIEdURVNUX0FQSV8gdm9pZCBQcmludFRvKGNvbnN0IGNoYXIq
IHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQcmludFRvKGNoYXIqIHMsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNTc1LDYgKzUwNCwyMyBAQCBpbmxpbmUgdm9pZCBQcmlu
dFRvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogaW5saW5l
IHZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAg
UHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwogfQorI2lmZGVmIF9f
Y3BwX2NoYXI4X3QKKy8vIE92ZXJsb2FkcyBmb3IgdTggc3RyaW5ncy4KK3ZvaWQgUHJpbnRUbyhj
b25zdCBjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRU
byhjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgUHJpbnRUbyhJbXBsaWNpdENh
c3RfPGNvbnN0IGNoYXI4X3QqPihzKSwgb3MpOworfQorI2VuZGlmCisvLyBPdmVybG9hZHMgZm9y
IHUxNiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0IGNoYXIxNl90KiBzLCA6OnN0ZDo6b3N0
cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyMTZfdCogcywgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCBjaGFyMTZfdCo+KHMpLCBv
cyk7Cit9CisvLyBPdmVybG9hZHMgZm9yIHUzMiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0
IGNoYXIzMl90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhj
aGFyMzJfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0
Xzxjb25zdCBjaGFyMzJfdCo+KHMpLCBvcyk7Cit9CiAKIC8vIE1TVkMgY2FuIGJlIGNvbmZpZ3Vy
ZWQgdG8gZGVmaW5lIHdjaGFyX3QgYXMgYSB0eXBlZGVmIG9mIHVuc2lnbmVkCiAvLyBzaG9ydC4g
IEl0IGRlZmluZXMgX05BVElWRV9XQ0hBUl9UX0RFRklORUQgd2hlbiB3Y2hhcl90IGlzIGEgbmF0
aXZlCkBAIC02MDMsMjcgKzU0OSwzMyBAQCB2b2lkIFByaW50UmF3QXJyYXlUbyhjb25zdCBUIGFb
XSwgc2l6ZV90IGNvdW50LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgfQogfQogCi0vLyBPdmVy
bG9hZHMgZm9yIDo6c3RyaW5nIGFuZCA6OnN0ZDo6c3RyaW5nLgotI2lmIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhjb25zdCA6OnN0cmluZyZz
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0cmlu
ZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50U3RyaW5nVG8ocywgb3MpOwotfQot
I2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCisvLyBPdmVybG9hZHMgZm9yIDo6
c3RkOjpzdHJpbmcuCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhjb25zdCA6OnN0ZDo6
c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0
IDo6c3RkOjpzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICBQcmludFN0cmluZ1Rv
KHMsIG9zKTsKIH0KIAotLy8gT3ZlcmxvYWRzIGZvciA6OndzdHJpbmcgYW5kIDo6c3RkOjp3c3Ry
aW5nLgotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotR1RFU1RfQVBJXyB2b2lkIFByaW50
V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyZzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5s
aW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewotICBQcmludFdpZGVTdHJpbmdUbyhzLCBvcyk7CisvLyBPdmVybG9hZHMgZm9yIDo6c3RkOjp1
OHN0cmluZworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK0dURVNUX0FQSV8gdm9pZCBQcmludFU4U3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5s
aW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dThzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFt
KiBvcykgeworICBQcmludFU4U3RyaW5nVG8ocywgb3MpOworfQorI2VuZGlmCisKKy8vIE92ZXJs
b2FkcyBmb3IgOjpzdGQ6OnUxNnN0cmluZworR1RFU1RfQVBJXyB2b2lkIFByaW50VTE2U3RyaW5n
VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGlu
ZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7CisgIFByaW50VTE2U3RyaW5nVG8ocywgb3MpOworfQorCisvLyBPdmVybG9hZHMgZm9y
IDo6c3RkOjp1MzJzdHJpbmcKK0dURVNUX0FQSV8gdm9pZCBQcmludFUzMlN0cmluZ1RvKGNvbnN0
IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CitpbmxpbmUgdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewor
ICBQcmludFUzMlN0cmluZ1RvKHMsIG9zKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HCiAKKy8vIE92ZXJsb2FkcyBmb3IgOjpzdGQ6OndzdHJpbmcuCiAjaWYgR1RFU1Rf
SEFTX1NURF9XU1RSSU5HCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29uc3Qg
OjpzdGQ6OndzdHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIGlubGluZSB2b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNjMx
LDEwNiArNTgzLDgyIEBAIGlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcm
IHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogfQogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dT
VFJJTkcKIAotI2lmIEdURVNUX0hBU19BQlNMCi0vLyBPdmVybG9hZCBmb3IgYWJzbDo6c3RyaW5n
X3ZpZXcuCi1pbmxpbmUgdm9pZCBQcmludFRvKGFic2w6OnN0cmluZ192aWV3IHNwLCA6OnN0ZDo6
b3N0cmVhbSogb3MpIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKKy8vIE92
ZXJsb2FkIGZvciBpbnRlcm5hbDo6U3RyaW5nVmlldy4KK2lubGluZSB2b2lkIFByaW50VG8oaW50
ZXJuYWw6OlN0cmluZ1ZpZXcgc3AsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICBQcmludFRvKDo6
c3RkOjpzdHJpbmcoc3ApLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19BQlNMCisjZW5k
aWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCi0jaWYgR1RFU1RfTEFOR19D
WFgxMQogaW5saW5lIHZvaWQgUHJpbnRUbyhzdGQ6Om51bGxwdHJfdCwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7ICpvcyA8PCAiKG51bGxwdHIpIjsgfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDEx
CiAKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERfVFVQTEVfCi0vLyBI
ZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEgdHVwbGUuICBUIG11c3QgYmUgaW5zdGFudGlh
dGVkIHdpdGgKLS8vIGEgdHVwbGUgdHlwZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBQ
cmludFR1cGxlVG8oY29uc3QgVCYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwotCi0jaWYgR1RFU1Rf
SEFTX1RSMV9UVVBMRQotLy8gT3ZlcmxvYWQgZm9yIDo6c3RkOjp0cjE6OnR1cGxlLiAgTmVlZGVk
IGZvciBwcmludGluZyBmdW5jdGlvbiBhcmd1bWVudHMsCi0vLyB3aGljaCBhcmUgcGFja2VkIGFz
IHR1cGxlcy4KLQotLy8gT3ZlcmxvYWRlZCBQcmludFRvKCkgZm9yIHR1cGxlcyBvZiB2YXJpb3Vz
IGFyaXRpZXMuICBXZSBzdXBwb3J0Ci0vLyB0dXBsZXMgb2YgdXAtdG8gMTAgZmllbGRzLiAgVGhl
IGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3b3JrcwotLy8gcmVnYXJkbGVzcyBvZiB3aGV0aGVy
IHRyMTo6dHVwbGUgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlCi0vLyBub24tc3RhbmRhcmQgdmFy
aWFkaWMgdGVtcGxhdGUgZmVhdHVyZSBvciBub3QuCi0KLWlubGluZSB2b2lkIFByaW50VG8oY29u
c3QgOjpzdGQ6OnRyMTo6dHVwbGU8PiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50
VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXZvaWQgUHJpbnRU
byhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMT4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewot
ICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyPgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMj4mIHQs
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLXZvaWQgUHJpbnRU
byhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzPiYgdCwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLXZvaWQgUHJpbnRUbyhj
b25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4mIHQsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwordm9pZCBQcmludFRvKHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8VD4gcmVmLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJp
bnRlcjxUJj46OlByaW50KHJlZi5nZXQoKSwgb3MpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgot
dm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4m
IHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0
LCBvcyk7CitpbmxpbmUgY29uc3Qgdm9pZCogVm9pZGlmeVBvaW50ZXIoY29uc3Qgdm9pZCogcCkg
eyByZXR1cm4gcDsgfQoraW5saW5lIGNvbnN0IHZvaWQqIFZvaWRpZnlQb2ludGVyKHZvbGF0aWxl
IGNvbnN0IHZvaWQqIHApIHsKKyAgcmV0dXJuIGNvbnN0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHApOwog
fQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2Pgotdm9pZCBQcmlu
dFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+JiB0LAot
ICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3Mp
OwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0cj4KK3ZvaWQgUHJpbnRTbWFydFBv
aW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGNoYXIpIHsKKyAgaWYgKHB0
ciA9PSBudWxscHRyKSB7CisgICAgKm9zIDw8ICIobnVsbHB0cikiOworICB9IGVsc2UgeworICAg
IC8vIFdlIGNhbid0IHByaW50IHRoZSB2YWx1ZS4gSnVzdCBwcmludCB0aGUgcG9pbnRlci4uCisg
ICAgKm9zIDw8ICIoIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQoKSkgPDwgIikiOworICB9
CiB9Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
UHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHIs
CisgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc192
b2lkPFQ+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIXN0ZDo6aXNfYXJyYXk8VD46OnZhbHVlPjo6dHlwZT4KK3ZvaWQgUHJpbnRTbWFydFBv
aW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGludCkgeworICBpZiAocHRy
ID09IG51bGxwdHIpIHsKKyAgICAqb3MgPDwgIihudWxscHRyKSI7CisgIH0gZWxzZSB7CisgICAg
Km9zIDw8ICIocHRyID0gIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQoKSkgPDwgIiwgdmFs
dWUgPSAiOworICAgIFVuaXZlcnNhbFByaW50ZXI8VD46OlByaW50KCpwdHIsIG9zKTsKKyAgICAq
b3MgPDwgIikiOworICB9CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0
ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+JiB0LAotICAgICAg
ICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwordGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+Cit2b2lkIFByaW50VG8oY29uc3Qgc3RkOjp1
bmlxdWVfcHRyPFQsIEQ+JiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgKFByaW50U21hcnRQ
b2ludGVyPFQ+KShwdHIsIG9zLCAwKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgICAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLXZv
aWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
UHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordm9pZCBQcmludFRv
KGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxUPiYgcHRyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIChQ
cmludFNtYXJ0UG9pbnRlcjxUPikocHRyLCBvcywgMCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLXZvaWQgUHJpbnRUbygKLSAgICBjb25zdCA6OnN0ZDo6dHIx
Ojp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+JiB0LAotICAg
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOworLy8gSGVscGVy
IGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLiAgVCBtdXN0IGJlIGluc3RhbnRpYXRlZCB3
aXRoCisvLyBhIHR1cGxlIHR5cGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgUHJpbnRU
dXBsZVRvKGNvbnN0IFQmLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgMD4sCisgICAg
ICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSopIHt9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
LCBzaXplX3QgST4KK3ZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmIHQsIHN0ZDo6aW50ZWdyYWxf
Y29uc3RhbnQ8c2l6ZV90LCBJPiwKKyAgICAgICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBv
cykgeworICBQcmludFR1cGxlVG8odCwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIEkg
LSAxPigpLCBvcyk7CisgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQorICBp
ZiAoSSA+IDEpIHsKKyAgICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BPUF8oKQorICAg
ICpvcyA8PCAiLCAiOworICB9CisgIFVuaXZlcnNhbFByaW50ZXI8dHlwZW5hbWUgc3RkOjp0dXBs
ZV9lbGVtZW50PEkgLSAxLCBUPjo6dHlwZT46OlByaW50KAorICAgICAgc3RkOjpnZXQ8SSAtIDE+
KHQpLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKIAotI2lmIEdURVNU
X0hBU19TVERfVFVQTEVfCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+CiB2b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7CisgICpvcyA8PCAiKCI7CisgIFByaW50VHVwbGVUbyh0
LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc2l6ZW9mLi4uKFR5cGVzKT4oKSwgb3Mp
OworICAqb3MgPDwgIikiOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1RVUExFXwogCiAv
LyBPdmVybG9hZCBmb3Igc3RkOjpwYWlyLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMj4KQEAgLTc0NCw2ICs2NzIsMTggQEAgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjpwYWly
PFQxLCBUMj4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgKm9zIDw8ICcpJzsKIH0K
IAorI2lmIEdURVNUX0hBU19SVFRJCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0
eXBlX2luZm8mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgaW50ZXJuYWw6OlByaW50
VG88OjpzdGQ6OnR5cGVfaW5mbz4odmFsdWUsIG9zKTsKKyAgKm9zIDw8ICIgKFwiIiA8PCB2YWx1
ZS5uYW1lKCkgPDwgIlwiKSI7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6
OnR5cGVfaW5kZXgmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgaW50ZXJuYWw6OlBy
aW50VG88OjpzdGQ6OnR5cGVfaW5kZXg+KHZhbHVlLCBvcyk7CisgICpvcyA8PCAiIChcIiIgPDwg
dmFsdWUubmFtZSgpIDw8ICJcIikiOworfQorI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorCiAv
LyBJbXBsZW1lbnRzIHByaW50aW5nIGEgbm9uLXJlZmVyZW5jZSB0eXBlIFQgYnkgbGV0dGluZyB0
aGUgY29tcGlsZXIKIC8vIHBpY2sgdGhlIHJpZ2h0IG92ZXJsb2FkIG9mIFByaW50VG8oKSBmb3Ig
VC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtNzcxLDE0ICs3MTEsNDYgQEAgY2xhc3MgVW5p
dmVyc2FsUHJpbnRlciB7CiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQogfTsK
IAotI2lmIEdURVNUX0hBU19BQlNMCisvLyBSZW1vdmUgYW55IGNvbnN0LXF1YWxpZmllcnMgYmVm
b3JlIHBhc3NpbmcgYSB0eXBlIHRvIFVuaXZlcnNhbFByaW50ZXIuCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KK2NsYXNzIFVuaXZlcnNhbFByaW50ZXI8Y29uc3QgVD4gOiBwdWJsaWMgVW5pdmVyc2Fs
UHJpbnRlcjxUPiB7fTsKIAotLy8gUHJpbnRlciBmb3IgYWJzbDo6b3B0aW9uYWwKKyNpZiBHVEVT
VF9JTlRFUk5BTF9IQVNfQU5ZCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6YW55IC8gYWJzbDo6YW55
CisKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPEFueT4geworIHB1YmxpYzoK
KyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgQW55JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7CisgICAgaWYgKHZhbHVlLmhhc192YWx1ZSgpKSB7CisgICAgICAqb3MgPDwgInZhbHVlIG9m
IHR5cGUgIiA8PCBHZXRUeXBlTmFtZSh2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICpvcyA8
PCAibm8gdmFsdWUiOworICAgIH0KKyAgfQorCisgcHJpdmF0ZToKKyAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEdldFR5cGVOYW1lKGNvbnN0IEFueSYgdmFsdWUpIHsKKyNpZiBHVEVTVF9IQVNfUlRUSQor
ICAgIHJldHVybiBpbnRlcm5hbDo6R2V0VHlwZU5hbWUodmFsdWUudHlwZSgpKTsKKyNlbHNlCisg
ICAgc3RhdGljX2Nhc3Q8dm9pZD4odmFsdWUpOyAgLy8gcG9zc2libHkgdW51c2VkCisgICAgcmV0
dXJuICI8dW5rbm93bl90eXBlPiI7CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCisgIH0KK307
CisKKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorCisjaWYgR1RFU1RfSU5URVJO
QUxfSEFTX09QVElPTkFMCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6b3B0aW9uYWwgLyBhYnNsOjpv
cHRpb25hbAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8
OjphYnNsOjpvcHRpb25hbDxUPj4geworY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxPcHRpb25hbDxU
Pj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgOjphYnNsOjpvcHRpb25h
bDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMgdm9pZCBQcmludChj
b25zdCBPcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICAgICpvcyA8
PCAnKCc7CiAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgKm9zIDw8ICJudWxsb3B0IjsKQEAgLTc4
OSwxNCArNzYxLDIyIEBAIGNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjpvcHRpb25hbDxU
Pj4gewogICB9CiB9OwogCi0vLyBQcmludGVyIGZvciBhYnNsOjp2YXJpYW50CisjZW5kaWYgIC8v
IEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAorCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1ZB
UklBTlQKKworLy8gUHJpbnRlciBmb3Igc3RkOjp2YXJpYW50IC8gYWJzbDo6dmFyaWFudAogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjp2
YXJpYW50PFQuLi4+PiB7CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFZhcmlhbnQ8VC4uLj4+IHsK
ICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IDo6YWJzbDo6dmFyaWFudDxULi4u
PiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMgdm9pZCBQcmludChjb25z
dCBWYXJpYW50PFQuLi4+JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAgICAgKm9zIDw8
ICcoJzsKLSAgICBhYnNsOjp2aXNpdChWaXNpdG9ye29zfSwgdmFsdWUpOworI2lmIEdURVNUX0hB
U19BQlNMCisgICAgYWJzbDo6dmlzaXQoVmlzaXRvcntvcywgdmFsdWUuaW5kZXgoKX0sIHZhbHVl
KTsKKyNlbHNlCisgICAgc3RkOjp2aXNpdChWaXNpdG9ye29zLCB2YWx1ZS5pbmRleCgpfSwgdmFs
dWUpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAogICAgICpvcyA8PCAnKSc7CiAgIH0KIApA
QCAtODA0LDE0ICs3ODQsMTYgQEAgY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjw6OmFic2w6OnZhcmlh
bnQ8VC4uLj4+IHsKICAgc3RydWN0IFZpc2l0b3IgewogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBV
PgogICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCBVJiB1KSBjb25zdCB7Ci0gICAgICAqb3MgPDwg
IiciIDw8IEdldFR5cGVOYW1lPFU+KCkgPDwgIicgd2l0aCB2YWx1ZSAiOworICAgICAgKm9zIDw8
ICInIiA8PCBHZXRUeXBlTmFtZTxVPigpIDw8ICIoaW5kZXggPSAiIDw8IGluZGV4CisgICAgICAg
ICAgPDwgIiknIHdpdGggdmFsdWUgIjsKICAgICAgIFVuaXZlcnNhbFByaW50KHUsIG9zKTsKICAg
ICB9CiAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zOworICAgIHN0ZDo6c2l6ZV90IGluZGV4OwogICB9
OwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2VuZGlmICAvLyBHVEVTVF9JTlRF
Uk5BTF9IQVNfVkFSSUFOVAogCiAvLyBVbml2ZXJzYWxQcmludEFycmF5KGJlZ2luLCBsZW4sIG9z
KSBwcmludHMgYW4gYXJyYXkgb2YgJ2xlbicKIC8vIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRy
ZXNzICdiZWdpbicuCkBAIC04MjYsNyArODA4LDYgQEAgdm9pZCBVbml2ZXJzYWxQcmludEFycmF5
KGNvbnN0IFQqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgICAv
LyBJZiB0aGUgYXJyYXkgaGFzIG1vcmUgdGhhbiBrVGhyZXNob2xkIGVsZW1lbnRzLCB3ZSdsbCBo
YXZlIHRvCiAgICAgLy8gb21pdCBzb21lIGRldGFpbHMgYnkgcHJpbnRpbmcgb25seSB0aGUgZmly
c3QgYW5kIHRoZSBsYXN0CiAgICAgLy8ga0NodW5rU2l6ZSBlbGVtZW50cy4KLSAgICAvLyBGSVhN
RTogbGV0IHRoZSB1c2VyIGNvbnRyb2wgdGhlIHRocmVzaG9sZCB1c2luZyBhIGZsYWcuCiAgICAg
aWYgKGxlbiA8PSBrVGhyZXNob2xkKSB7CiAgICAgICBQcmludFJhd0FycmF5VG8oYmVnaW4sIGxl
biwgb3MpOwogICAgIH0gZWxzZSB7CkBAIC04NDEsNiArODIyLDIwIEBAIHZvaWQgVW5pdmVyc2Fs
UHJpbnRBcnJheShjb25zdCBUKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7CiBHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheSgKICAgICBjb25zdCBjaGFy
KiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAorI2lmZGVmIF9fY3Bw
X2NoYXI4X3QKKy8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0KSBjaGFyOF90IGFycmF5
IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNo
YXI4X3QqIGJlZ2luLCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKKyNlbmRpZgorCisvLyBUaGlzIG92ZXJsb2FkIHBy
aW50cyBhIChjb25zdCkgY2hhcjE2X3QgYXJyYXkgY29tcGFjdGx5LgorR1RFU1RfQVBJXyB2b2lk
IFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjE2X3QqIGJlZ2luLCBzaXplX3QgbGVuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
KworLy8gVGhpcyBvdmVybG9hZCBwcmludHMgYSAoY29uc3QpIGNoYXIzMl90IGFycmF5IGNvbXBh
Y3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIzMl90
KiBiZWdpbiwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDo6c3RkOjpvc3RyZWFtKiBvcyk7CisKIC8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0
KSB3Y2hhcl90IGFycmF5IGNvbXBhY3RseS4KIEdURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmlu
dEFycmF5KAogICAgIGNvbnN0IHdjaGFyX3QqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0
cmVhbSogb3MpOwpAQCAtOTA1LDcgKzkwMCw3IEBAIHRlbXBsYXRlIDw+CiBjbGFzcyBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICBwdWJsaWM6CiAgIHN0YXRpYyB2b2lkIFBy
aW50KGNvbnN0IGNoYXIqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgaWYgKHN0ciA9
PSBOVUxMKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CiAgICAgICAqb3MgPDwgIk5VTEwi
OwogICAgIH0gZWxzZSB7CiAgICAgICBVbml2ZXJzYWxQcmludChzdGQ6OnN0cmluZyhzdHIpLCBv
cyk7CkBAIC05MTMsMTkgKzkwOCw2MiBAQCBjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29u
c3QgY2hhcio+IHsKICAgfQogfTsKIHRlbXBsYXRlIDw+Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVBy
aW50ZXI8Y2hhcio+IHsKK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyKj4gOiBwdWJs
aWMgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIqPiB7Cit9OworCisjaWZkZWYgX19j
cHBfY2hhcjhfdAordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25z
dCBjaGFyOF90Kj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY2hhciogc3RyLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hh
cio+OjpQcmludChzdHIsIG9zKTsKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgY2hhcjhfdCog
c3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKKyAg
ICAgICpvcyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFByaW50KDo6
c3RkOjp1OHN0cmluZyhzdHIpLCBvcyk7CisgICAgfQorICB9Cit9OwordGVtcGxhdGUgPD4KK2Ns
YXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyOF90Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjhfdCo+IHt9OworI2VuZGlmCisKK3RlbXBsYXRlIDw+
CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjE2X3QqPiB7CisgcHVibGlj
OgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBjaGFyMTZfdCogc3RyLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKKyAgICAgICpvcyA8PCAiTlVMTCI7
CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp1MTZzdHJpbmcoc3Ry
KSwgb3MpOworICAgIH0KKyAgfQorfTsKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxUZXJz
ZVByaW50ZXI8Y2hhcjE2X3QqPgorICAgIDogcHVibGljIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxj
b25zdCBjaGFyMTZfdCo+IHt9OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQ
cmludGVyPGNvbnN0IGNoYXIzMl90Kj4geworIHB1YmxpYzoKKyAgc3RhdGljIHZvaWQgUHJpbnQo
Y29uc3QgY2hhcjMyX3QqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHN0ciA9
PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICBV
bml2ZXJzYWxQcmludCg6OnN0ZDo6dTMyc3RyaW5nKHN0ciksIG9zKTsKKyAgICB9CiAgIH0KIH07
Cit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNoYXIzMl90Kj4KKyAg
ICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjMyX3QqPiB7fTsKIAog
I2lmIEdURVNUX0hBU19TVERfV1NUUklORwogdGVtcGxhdGUgPD4KIGNsYXNzIFVuaXZlcnNhbFRl
cnNlUHJpbnRlcjxjb25zdCB3Y2hhcl90Kj4gewogIHB1YmxpYzoKICAgc3RhdGljIHZvaWQgUHJp
bnQoY29uc3Qgd2NoYXJfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBpZiAoc3Ry
ID09IE5VTEwpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKICAgICAgICpvcyA8PCAiTlVM
TCI7CiAgICAgfSBlbHNlIHsKICAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp3c3RyaW5nKHN0
ciksIG9zKTsKQEAgLTk2MSwxMDkgKzk5OSwyMCBAQCB2b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0
IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIAogdHlwZWRlZiA6OnN0ZDo6dmVjdG9y
PCA6OnN0ZDo6c3RyaW5nPiBTdHJpbmdzOwogCi0vLyBUdXBsZVBvbGljeTxUdXBsZVQ+IG11c3Qg
cHJvdmlkZToKLS8vIC0gdHVwbGVfc2l6ZQotLy8gICAgIHNpemUgb2YgdHVwbGUgVHVwbGVULgot
Ly8gLSBnZXQ8c2l6ZV90IEk+KGNvbnN0IFR1cGxlVCYgdCkKLS8vICAgICBzdGF0aWMgZnVuY3Rp
b24gZXh0cmFjdGluZyBlbGVtZW50IEkgb2YgdHVwbGUgVHVwbGVULgotLy8gLSB0dXBsZV9lbGVt
ZW50PHNpemVfdCBJPjo6dHlwZQotLy8gICAgIHR5cGUgb2YgZWxlbWVudCBJIG9mIHR1cGxlIFR1
cGxlVC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZVQ+Ci1zdHJ1Y3QgVHVwbGVQb2xpY3k7Ci0K
LSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotc3Ry
dWN0IFR1cGxlUG9saWN5IHsKLSAgdHlwZWRlZiBUdXBsZVQgVHVwbGU7Ci0gIHN0YXRpYyBjb25z
dCBzaXplX3QgdHVwbGVfc2l6ZSA9IDo6c3RkOjp0cjE6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1
ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpz
dGQ6OnRyMTo6dHVwbGVfZWxlbWVudDxzdGF0aWNfY2FzdDxpbnQ+KEkpLCBUdXBsZT4gewotICB9
OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIHR5cGVuYW1lIEFkZFJlZmVyZW5j
ZTxjb25zdCB0eXBlbmFtZSA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVtZW50PAotICAgICAgc3RhdGlj
X2Nhc3Q8aW50PihJKSwgVHVwbGU+Ojp0eXBlPjo6dHlwZQotICBnZXQoY29uc3QgVHVwbGUmIHR1
cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjp0cjE6OmdldDxJPih0dXBsZSk7Ci0gIH0KLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotY29uc3Qgc2l6ZV90IFR1cGxlUG9saWN5PFR1cGxl
VD46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdU
RVNUX0hBU19TVERfVFVQTEVfCi10ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+Ci1zdHJ1Y3Qg
VHVwbGVQb2xpY3k8IDo6c3RkOjp0dXBsZTxUeXBlcy4uLj4gPiB7Ci0gIHR5cGVkZWYgOjpzdGQ6
OnR1cGxlPFR5cGVzLi4uPiBUdXBsZTsKLSAgc3RhdGljIGNvbnN0IHNpemVfdCB0dXBsZV9zaXpl
ID0gOjpzdGQ6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90
IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpzdGQ6OnR1cGxlX2VsZW1lbnQ8SSwgVHVw
bGU+IHt9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIGNvbnN0IHR5cGVuYW1l
IDo6c3RkOjp0dXBsZV9lbGVtZW50PEksIFR1cGxlPjo6dHlwZSYgZ2V0KAotICAgICAgY29uc3Qg
VHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjpnZXQ8ST4odHVwbGUpOwotICB9Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgotY29uc3Qgc2l6ZV90IFR1cGxlUG9saWN5
PCA6OnN0ZDo6dHVwbGU8VHlwZXMuLi4+ID46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNU
X0hBU19TVERfVFVQTEVfCi0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19T
VERfVFVQTEVfCi0vLyBUaGlzIGhlbHBlciB0ZW1wbGF0ZSBhbGxvd3MgUHJpbnRUbygpIGZvciB0
dXBsZXMgYW5kCi0vLyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoKSB0
byBiZSBkZWZpbmVkIGJ5Ci0vLyBpbmR1Y3Rpb24gb24gdGhlIG51bWJlciBvZiB0dXBsZSBmaWVs
ZHMuICBUaGUgaWRlYSBpcyB0aGF0Ci0vLyBUdXBsZVByZWZpeFByaW50ZXI8Tj46OlByaW50UHJl
Zml4VG8odCwgb3MpIHByaW50cyB0aGUgZmlyc3QgTgotLy8gZmllbGRzIGluIHR1cGxlIHQsIGFu
ZCBjYW4gYmUgZGVmaW5lZCBpbiB0ZXJtcyBvZgotLy8gVHVwbGVQcmVmaXhQcmludGVyPE4gLSAx
Pi4KLS8vCi0vLyBUaGUgaW5kdWN0aXZlIGNhc2UuCi10ZW1wbGF0ZSA8c2l6ZV90IE4+Ci1zdHJ1
Y3QgVHVwbGVQcmVmaXhQcmludGVyIHsKLSAgLy8gUHJpbnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBv
ZiBhIHR1cGxlLgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFBy
aW50UHJlZml4VG8oY29uc3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIFR1
cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlByaW50UHJlZml4VG8odCwgb3MpOwotICAgIEdURVNU
X0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQotICAgIGlmIChOID4gMSkgewotICAgIEdU
RVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpCi0gICAgICAqb3MgPDwgIiwgIjsKLSAg
ICB9Ci0gICAgVW5pdmVyc2FsUHJpbnRlcjwKLSAgICAgICAgdHlwZW5hbWUgVHVwbGVQb2xpY3k8
VHVwbGU+Ojp0ZW1wbGF0ZSB0dXBsZV9lbGVtZW50PE4gLSAxPjo6dHlwZT4KLSAgICAgICAgOjpQ
cmludChUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBsYXRlIGdldDxOIC0gMT4odCksIG9zKTsKLSAg
fQotCiAgIC8vIFRlcnNlbHkgcHJpbnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBvZiBhIHR1cGxlIHRv
IGEgc3RyaW5nIHZlY3RvciwKICAgLy8gb25lIGVsZW1lbnQgZm9yIGVhY2ggZmllbGQuCi0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgVGVyc2VQcmludFByZWZpeFRv
U3RyaW5ncyhjb25zdCBUdXBsZSYgdCwgU3RyaW5ncyogc3RyaW5ncykgewotICAgIFR1cGxlUHJl
Zml4UHJpbnRlcjxOIC0gMT46OlRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3ModCwgc3RyaW5ncyk7
Ci0gICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50KFR1
cGxlUG9saWN5PFR1cGxlPjo6dGVtcGxhdGUgZ2V0PE4gLSAxPih0KSwgJnNzKTsKLSAgICBzdHJp
bmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwotICB9Ci19OwotCi0vLyBCYXNlIGNhc2UuCi10ZW1w
bGF0ZSA8Pgotc3RydWN0IFR1cGxlUHJlZml4UHJpbnRlcjwwPiB7Ci0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgUHJpbnRQcmVmaXhUbyhjb25zdCBUdXBsZSYsIDo6
c3RkOjpvc3RyZWFtKikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRp
YyB2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29uc3QgVHVwbGUmLCBTdHJpbmdzKikg
e30KLX07Ci0KLS8vIEhlbHBlciBmdW5jdGlvbiBmb3IgcHJpbnRpbmcgYSB0dXBsZS4KLS8vIFR1
cGxlIG11c3QgYmUgZWl0aGVyIHN0ZDo6dHIxOjp0dXBsZSBvciBzdGQ6OnR1cGxlIHR5cGUuCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci12b2lkIFByaW50VHVwbGVUbyhjb25zdCBUdXBsZSYg
dCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8PCAiKCI7Ci0gIFR1cGxlUHJlZml4UHJp
bnRlcjxUdXBsZVBvbGljeTxUdXBsZT46OnR1cGxlX3NpemU+OjpQcmludFByZWZpeFRvKHQsIG9z
KTsKLSAgKm9zIDw8ICIpIjsKK3ZvaWQgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyhjb25zdCBU
dXBsZSYsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCAwPiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdzKikge30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZSwg
c2l6ZV90IEk+Cit2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29uc3QgVHVwbGUmIHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxz
aXplX3QsIEk+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ3MqIHN0cmlu
Z3MpIHsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyh0LCBzdGQ6OmludGVncmFsX2NvbnN0
YW50PHNpemVfdCwgSSAtIDE+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5n
cyk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgIFVuaXZlcnNhbFRlcnNlUHJpbnQoc3Rk
OjpnZXQ8SSAtIDE+KHQpLCAmc3MpOworICBzdHJpbmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwog
fQogCiAvLyBQcmludHMgdGhlIGZpZWxkcyBvZiBhIHR1cGxlIHRlcnNlbHkgdG8gYSBzdHJpbmcg
dmVjdG9yLCBvbmUKQEAgLTEwNzIsMjQgKzEwMjEsMTQgQEAgdm9pZCBQcmludFR1cGxlVG8oY29u
c3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogdGVtcGxhdGUgPHR5cGVuYW1lIFR1
cGxlPgogU3RyaW5ncyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoY29u
c3QgVHVwbGUmIHZhbHVlKSB7CiAgIFN0cmluZ3MgcmVzdWx0OwotICBUdXBsZVByZWZpeFByaW50
ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0dXBsZV9zaXplPjo6Ci0gICAgICBUZXJzZVByaW50UHJl
Zml4VG9TdHJpbmdzKHZhbHVlLCAmcmVzdWx0KTsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5n
cygKKyAgICAgIHZhbHVlLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc3RkOjp0dXBs
ZV9zaXplPFR1cGxlPjo6dmFsdWU+KCksCisgICAgICAmcmVzdWx0KTsKICAgcmV0dXJuIHJlc3Vs
dDsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RV
UExFXwogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIAotI2lmIEdURVNUX0hBU19BQlNMCi1u
YW1lc3BhY2UgaW50ZXJuYWwyIHsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBUeXBlV2l0
aG91dEZvcm1hdHRlcjxULCBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXc+OjpQcmludFZhbHVlKAot
ICAgIGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgaW50ZXJuYWw6OlBy
aW50VG8oYWJzbDo6c3RyaW5nX3ZpZXcodmFsdWUpLCBvcyk7Ci19Ci19ICAvLyBuYW1lc3BhY2Ug
aW50ZXJuYWwyCi0jZW5kaWYKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiA6OnN0ZDo6c3RyaW5n
IFByaW50VG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpIHsKICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBz
czsKQEAgLTExMDQsNCArMTA0Myw0IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogLy8gZGVjbGFy
YXRpb25zIGZyb20gdGhpcyBmaWxlLgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9n
dGVzdC1wcmludGVycy5oIgogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UFJJTlRFUlNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BS
SU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LXNwaS5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9n
dGVzdC1zcGkuaAppbmRleCAxZTg5ODM5MzhlYTI3OTJjNTI2OTBlYWQyOWIwMGFiNThjZGFhZTlj
Li5lYWNlZjQ0NjY5ZTgxMDRhM2QyOGRhYTA1NGVkYWRjZGViMjNjNTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmgKQEAgLTMzLDgg
KzMzLDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDQgRE8gTk9UIERFTEVURQogCi0jaWZuZGVm
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfU1BJX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9TUElfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1NQSV9IXwog
CiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIApAQCAtNzIsMTQgKzcyLDE1IEBAIGNsYXNzIEdU
RVNUX0FQSV8gU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVGVzdFBhcnRSZXN1bHRBcnJheSogcmVzdWx0KTsKIAogICAv
LyBUaGUgZCd0b3IgcmVzdG9yZXMgdGhlIHByZXZpb3VzIHRlc3QgcGFydCByZXN1bHQgcmVwb3J0
ZXIuCi0gIHZpcnR1YWwgflNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyKCk7CisgIH5T
Y29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigpIG92ZXJyaWRlOwogCiAgIC8vIEFwcGVu
ZHMgdGhlIFRlc3RQYXJ0UmVzdWx0IG9iamVjdCB0byB0aGUgVGVzdFBhcnRSZXN1bHRBcnJheQog
ICAvLyByZWNlaXZlZCBpbiB0aGUgY29uc3RydWN0b3IuCiAgIC8vCiAgIC8vIFRoaXMgbWV0aG9k
IGlzIGZyb20gdGhlIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UKICAgLy8gaW50ZXJm
YWNlLgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisKICBwcml2YXRlOgogICB2b2lkIEluaXQoKTsK
IApAQCAtMjM0LDQgKzIzNSw0IEBAIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAg
Ly8gIDQyNTEKICAgICB9XAogICB9IHdoaWxlICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNG
YWxzZSgpKQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCisj
ZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9TUElfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFy
dC5oCmluZGV4IDFjN2I4OWUwODc5NmQ5NzMwZjlmOGVlYWU0MDYyMjcxNzdkYmE1MTkuLjIwM2Zk
Zjk4YzY5ZmNkZjk2NDc0MzdjZGM4ZTZjYzcwYWUxOGU2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaApAQCAt
MjksOCArMjksOCBAQAogLy8KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwotI2RlZmluZSBH
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXworI2lmbmRlZiBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KIAogI2luY2x1ZGUgPGlvc2Z3ZD4KICNpbmNs
dWRlIDx2ZWN0b3I+CkBAIC01MywyMiArNTMsMjAgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFy
dFJlc3VsdCB7CiAgIGVudW0gVHlwZSB7CiAgICAga1N1Y2Nlc3MsICAgICAgICAgIC8vIFN1Y2Nl
ZWRlZC4KICAgICBrTm9uRmF0YWxGYWlsdXJlLCAgLy8gRmFpbGVkIGJ1dCB0aGUgdGVzdCBjYW4g
Y29udGludWUuCi0gICAga0ZhdGFsRmFpbHVyZSAgICAgIC8vIEZhaWxlZCBhbmQgdGhlIHRlc3Qg
c2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga0ZhdGFsRmFpbHVyZSwgICAgIC8vIEZhaWxlZCBh
bmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga1NraXAgICAgICAgICAgICAg
IC8vIFNraXBwZWQuCiAgIH07CiAKICAgLy8gQyd0b3IuICBUZXN0UGFydFJlc3VsdCBkb2VzIE5P
VCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAgLy8gQWx3YXlzIHVzZSB0aGlzIGNvbnN0
cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0ZSBhCiAgIC8vIFRlc3RQYXJ0UmVzdWx0
IG9iamVjdC4KLSAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsCi0gICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLAotICAgICAgICAgICAgICAgICBpbnQgYV9saW5lX251
bWJlciwKKyAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsIGNvbnN0IGNoYXIqIGFfZmlsZV9u
YW1lLCBpbnQgYV9saW5lX251bWJlciwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYV9t
ZXNzYWdlKQogICAgICAgOiB0eXBlXyhhX3R5cGUpLAotICAgICAgICBmaWxlX25hbWVfKGFfZmls
ZV9uYW1lID09IE5VTEwgPyAiIiA6IGFfZmlsZV9uYW1lKSwKKyAgICAgICAgZmlsZV9uYW1lXyhh
X2ZpbGVfbmFtZSA9PSBudWxscHRyID8gIiIgOiBhX2ZpbGVfbmFtZSksCiAgICAgICAgIGxpbmVf
bnVtYmVyXyhhX2xpbmVfbnVtYmVyKSwKICAgICAgICAgc3VtbWFyeV8oRXh0cmFjdFN1bW1hcnko
YV9tZXNzYWdlKSksCi0gICAgICAgIG1lc3NhZ2VfKGFfbWVzc2FnZSkgewotICB9CisgICAgICAg
IG1lc3NhZ2VfKGFfbWVzc2FnZSkge30KIAogICAvLyBHZXRzIHRoZSBvdXRjb21lIG9mIHRoZSB0
ZXN0IHBhcnQuCiAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfOyB9CkBAIC03Niw3
ICs3NCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFBhcnRSZXN1bHQgewogICAvLyBHZXRzIHRo
ZSBuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2Us
IG9yCiAgIC8vIE5VTEwgaWYgaXQncyB1bmtub3duLgogICBjb25zdCBjaGFyKiBmaWxlX25hbWUo
KSBjb25zdCB7Ci0gICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/IE5VTEwgOiBmaWxlX25h
bWVfLmNfc3RyKCk7CisgICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/IG51bGxwdHIgOiBm
aWxlX25hbWVfLmNfc3RyKCk7CiAgIH0KIAogICAvLyBHZXRzIHRoZSBsaW5lIGluIHRoZSBzb3Vy
Y2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2UsCkBAIC04OSwxOCArODcsMjEg
QEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFydFJlc3VsdCB7CiAgIC8vIEdldHMgdGhlIG1lc3Nh
Z2UgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXN0IHBhcnQuCiAgIGNvbnN0IGNoYXIqIG1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtZXNzYWdlXy5jX3N0cigpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgdGVzdCBwYXJ0IHBhc3NlZC4KLSAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJldHVy
biB0eXBlXyA9PSBrU3VjY2VzczsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3QgcGFydCB3YXMgc2tpcHBlZC4KKyAgYm9vbCBza2lwcGVkKCkgY29uc3QgeyByZXR1
cm4gdHlwZV8gPT0ga1NraXA7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBh
cnQgZmFpbGVkLgotICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfICE9IGtTdWNj
ZXNzOyB9CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IHBh
c3NlZC4KKyAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBrU3VjY2Vzczsg
fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBub24tZmF0YWxseSBmYWls
ZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1m
YXRhbGx5IGZhaWxlZC4KICAgYm9vbCBub25mYXRhbGx5X2ZhaWxlZCgpIGNvbnN0IHsgcmV0dXJu
IHR5cGVfID09IGtOb25GYXRhbEZhaWx1cmU7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSB0ZXN0IHBhcnQgZmF0YWxseSBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVkLgogICBib29sIGZhdGFsbHlfZmFpbGVk
KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga0ZhdGFsRmFpbHVyZTsgfQogCisgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IGZhaWxlZC4KKyAgYm9vbCBmYWls
ZWQoKSBjb25zdCB7IHJldHVybiBmYXRhbGx5X2ZhaWxlZCgpIHx8IG5vbmZhdGFsbHlfZmFpbGVk
KCk7IH0KKwogIHByaXZhdGU6CiAgIFR5cGUgdHlwZV87CiAKQEAgLTE2NCw4ICsxNjUsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcgogICAgIDogcHVibGljIFRl
c3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UgewogIHB1YmxpYzoKICAgSGFzTmV3RmF0YWxG
YWlsdXJlSGVscGVyKCk7Ci0gIHZpcnR1YWwgfkhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcigpOwot
ICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHJlc3VsdCk7CisgIH5IYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIoKSBvdmVycmlkZTsKKyAgdm9p
ZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVy
cmlkZTsKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmUoKSBjb25zdCB7IHJldHVybiBoYXNf
bmV3X2ZhdGFsX2ZhaWx1cmVfOyB9CiAgcHJpdmF0ZToKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2Zh
aWx1cmVfOwpAQCAtMTgwLDQgKzE4MSw0IEBAIGNsYXNzIEdURVNUX0FQSV8gSGFzTmV3RmF0YWxG
YWlsdXJlSGVscGVyCiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQy
NTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwor
I2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXR5
cGVkLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
dHlwZWQtdGVzdC5oCmluZGV4IDc0YmNlNDZiZGM1MGY0YzhjZGUyYzZkNzI2NDkxMWZmNGQ5OWNm
MTkuLjlmZGM2YmUxMGRjMjZiODAzM2UxYWE1YTBmNWFmMDVmODI1NDc5MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQt
dGVzdC5oCkBAIC0yNywxMSArMjcsMTAgQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RF
U1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfR1RFU1RfVFlQRURfVEVTVF9IXwogCiAvLyBUaGlzIGhlYWRlciBpbXBsZW1lbnRzIHR5cGVk
IHRlc3RzIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKQEAgLTUyLDIyICs1MSwyMiBA
QCBjbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBUIHZhbHVlXzsKIH07
CiAKLS8vIE5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2YgdHlwZXMgd2l0aCB0aGUgdGVzdCBjYXNl
LCB3aGljaCB3aWxsIGJlCisvLyBOZXh0LCBhc3NvY2lhdGUgYSBsaXN0IG9mIHR5cGVzIHdpdGgg
dGhlIHRlc3Qgc3VpdGUsIHdoaWNoIHdpbGwgYmUKIC8vIHJlcGVhdGVkIGZvciBlYWNoIHR5cGUg
aW4gdGhlIGxpc3QuICBUaGUgdHlwZWRlZiBpcyBuZWNlc3NhcnkgZm9yCiAvLyB0aGUgbWFjcm8g
dG8gcGFyc2UgY29ycmVjdGx5LgogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxjaGFyLCBpbnQsIHVu
c2lnbmVkIGludD4gTXlUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzKTsK
K1RZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcyk7CiAKIC8vIElmIHRoZSB0eXBlIGxp
c3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZSB0aGF0IHR5cGUKIC8vIGRp
cmVjdGx5IHdpdGhvdXQgVHlwZXM8Li4uPjoKLS8vICAgVFlQRURfVEVTVF9DQVNFKEZvb1Rlc3Qs
IGludCk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgaW50KTsKIAogLy8gVGhlbiwg
dXNlIFRZUEVEX1RFU1QoKSBpbnN0ZWFkIG9mIFRFU1RfRigpIHRvIGRlZmluZSBhcyBtYW55IHR5
cGVkCi0vLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IGNhc2UgYXMgeW91IHdhbnQuCisvLyB0ZXN0cyBm
b3IgdGhpcyB0ZXN0IHN1aXRlIGFzIHlvdSB3YW50LgogVFlQRURfVEVTVChGb29UZXN0LCBEb2Vz
QmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byBUeXBlUGFyYW0gdG8gZ2V0IHRo
ZSB0eXBlIHBhcmFtZXRlci4KLSAgLy8gU2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xh
c3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcyB1c2UgdG8KLSAgLy8gdmlzaXQgdGhlIG1lbWJlcnMg
b2YgRm9vVGVzdCB2aWEgJ3RoaXMnLgorICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byB0aGUg
c3BlY2lhbCBuYW1lIFR5cGVQYXJhbSB0byBnZXQgdGhlIHR5cGUKKyAgLy8gcGFyYW1ldGVyLiAg
U2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xhc3MgdGVtcGxhdGUsIEMrKyByZXF1aXJl
cworICAvLyB1cyB0byB2aXNpdCB0aGUgbWVtYmVycyBvZiBGb29UZXN0IHZpYSAndGhpcycuCiAg
IFR5cGVQYXJhbSBuID0gdGhpcy0+dmFsdWVfOwogCiAgIC8vIFRvIHZpc2l0IHN0YXRpYyBtZW1i
ZXJzIG9mIHRoZSBmaXh0dXJlLCBhZGQgdGhlIFRlc3RGaXh0dXJlOjoKQEAgLTgzLDcgKzgyLDcg
QEAgVFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkgewogCiBUWVBFRF9URVNUKEZvb1Rlc3Qs
IEhhc1Byb3BlcnR5QSkgeyAuLi4gfQogCi0vLyBUWVBFRF9URVNUX0NBU0UgdGFrZXMgYW4gb3B0
aW9uYWwgdGhpcmQgYXJndW1lbnQgd2hpY2ggYWxsb3dzIHRvIHNwZWNpZnkgYQorLy8gVFlQRURf
VEVTVF9TVUlURSB0YWtlcyBhbiBvcHRpb25hbCB0aGlyZCBhcmd1bWVudCB3aGljaCBhbGxvd3Mg
dG8gc3BlY2lmeSBhCiAvLyBjbGFzcyB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1
ZmZpeGVzIGJhc2VkIG9uIHRoZSB0eXBlLiBUaGlzIHNob3VsZAogLy8gYmUgYSBjbGFzcyB3aGlj
aCBoYXMgYSBzdGF0aWMgdGVtcGxhdGUgZnVuY3Rpb24gR2V0TmFtZShpbnQgaW5kZXgpIHJldHVy
bmluZwogLy8gYSBzdHJpbmcgZm9yIGVhY2ggdHlwZS4gVGhlIHByb3ZpZGVkIGludGVnZXIgaW5k
ZXggZXF1YWxzIHRoZSBpbmRleCBvZiB0aGUKQEAgLTk5LDcgKzk4LDcgQEAgVFlQRURfVEVTVChG
b29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIC8vICAgICAgIGlmIChzdGQ6OmlzX3NhbWU8
VCwgdW5zaWduZWQgaW50PigpKSByZXR1cm4gInVuc2lnbmVkSW50IjsKIC8vICAgICB9CiAvLyAg
IH07Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzLCBNeVR5cGVOYW1lcyk7
CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBlTmFtZXMpOwog
CiAjZW5kaWYgIC8vIDAKIApAQCAtMTI2LDEzICsxMjUsMTMgQEAgY2xhc3MgRm9vVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLi4uCiB9OwogCi0vLyBOZXh0LCBkZWNsYXJlIHRoYXQg
eW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZQorLy8gTmV4dCwg
ZGVjbGFyZSB0aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1
aXRlCiAvLyAodGhlIF9QIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJu
Iiwgd2hpY2hldmVyIHlvdQogLy8gcHJlZmVyKToKLVRZUEVEX1RFU1RfQ0FTRV9QKEZvb1Rlc3Qp
OworVFlQRURfVEVTVF9TVUlURV9QKEZvb1Rlc3QpOwogCiAvLyBUaGVuLCB1c2UgVFlQRURfVEVT
VF9QKCkgdG8gZGVmaW5lIGFzIG1hbnkgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzCi0vLyBmb3Ig
dGhpcyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGFzIHlvdSB3YW50LgorLy8gZm9yIHRo
aXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgYXMgeW91IHdhbnQuCiBUWVBFRF9URVNU
X1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKICAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlw
ZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIuCiAgIFR5cGVQYXJhbSBuID0gMDsKQEAg
LTE0MywxMCArMTQyLDEwIEBAIFRZUEVEX1RFU1RfUChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsg
Li4uIH0KIAogLy8gTm93IHRoZSB0cmlja3kgcGFydDogeW91IG5lZWQgdG8gcmVnaXN0ZXIgYWxs
IHRlc3QgcGF0dGVybnMgYmVmb3JlCiAvLyB5b3UgY2FuIGluc3RhbnRpYXRlIHRoZW0uICBUaGUg
Zmlyc3QgYXJndW1lbnQgb2YgdGhlIG1hY3JvIGlzIHRoZQotLy8gdGVzdCBjYXNlIG5hbWU7IHRo
ZSByZXN0IGFyZSB0aGUgbmFtZXMgb2YgdGhlIHRlc3RzIGluIHRoaXMgdGVzdAorLy8gdGVzdCBz
dWl0ZSBuYW1lOyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cyBpbiB0aGlzIHRl
c3QKIC8vIGNhc2UuCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChGb29UZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRG9lc0JsYWgsIEhhc1Byb3BlcnR5QSk7CitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoRm9vVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
b2VzQmxhaCwgSGFzUHJvcGVydHlBKTsKIAogLy8gRmluYWxseSwgeW91IGFyZSBmcmVlIHRvIGlu
c3RhbnRpYXRlIHRoZSBwYXR0ZXJuIHdpdGggdGhlIHR5cGVzIHlvdQogLy8gd2FudC4gIElmIHlv
dSBwdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwgeW91IGNhbiAjaW5jbHVkZQpA
QCAtMTU0LDYxICsxNTMsNTggQEAgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwK
IC8vCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJu
LCB0aGUgZmlyc3QKIC8vIGFyZ3VtZW50IHRvIHRoZSBJTlNUQU5USUFURV8qIG1hY3JvIGlzIGEg
cHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZAotLy8gdG8gdGhlIGFjdHVhbCB0ZXN0IGNhc2UgbmFt
ZS4gIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvcgorLy8gdG8gdGhlIGFjdHVh
bCB0ZXN0IHN1aXRlIG5hbWUuICBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IK
IC8vIGRpZmZlcmVudCBpbnN0YW5jZXMuCiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPGNoYXIsIGlu
dCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1Ao
TXksIEZvb1Rlc3QsIE15VHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15
LCBGb29UZXN0LCBNeVR5cGVzKTsKIAogLy8gSWYgdGhlIHR5cGUgbGlzdCBjb250YWlucyBvbmx5
IG9uZSB0eXBlLCB5b3UgY2FuIHdyaXRlIHRoYXQgdHlwZQogLy8gZGlyZWN0bHkgd2l0aG91dCBU
eXBlczwuLi4+OgotLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVz
dCwgaW50KTsKKy8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBGb29UZXN0
LCBpbnQpOwogLy8KLS8vIFNpbWlsYXIgdG8gdGhlIG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVE
X1RFU1RfQ0FTRSBhYm92ZSwKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHRha2VzIGFuIG9w
dGlvbmFsIGZvdXJ0aCBhcmd1bWVudCB3aGljaCBhbGxvd3MgdG8KKy8vIFNpbWlsYXIgdG8gdGhl
IG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1RfU1VJVEUgYWJvdmUsCisvLyBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AgdGFrZXMgYW4gb3B0aW9uYWwgZm91cnRoIGFyZ3VtZW50IHdoaWNo
IGFsbG93cyB0bwogLy8gZ2VuZXJhdGUgY3VzdG9tIG5hbWVzLgotLy8gICBJTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBlTmFtZXMpOworLy8g
ICBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMsIE15
VHlwZU5hbWVzKTsKIAogI2VuZGlmICAvLyAwCiAKKyNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaCIKIAogLy8gSW1wbGVt
ZW50cyB0eXBlZCB0ZXN0cy4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIC8vIElOVEVS
TkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwogLy8gRXhw
YW5kcyB0byB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZiBmb3IgdGhlIHR5cGUgcGFyYW1ldGVycyBv
ZiB0aGUKLS8vIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVfUEFSQU1TXyhU
ZXN0Q2FzZU5hbWUpIGd0ZXN0X3R5cGVfcGFyYW1zXyMjVGVzdENhc2VOYW1lIyNfCisvLyBnaXZl
biB0ZXN0IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBFX1BBUkFNU18oVGVzdFN1aXRlTmFtZSkg
Z3Rlc3RfdHlwZV9wYXJhbXNfIyNUZXN0U3VpdGVOYW1lIyNfCiAKIC8vIEV4cGFuZHMgdG8gdGhl
IG5hbWUgb2YgdGhlIHR5cGVkZWYgZm9yIHRoZSBOYW1lR2VuZXJhdG9yLCByZXNwb25zaWJsZSBm
b3IKIC8vIGNyZWF0aW5nIHRoZSBzdWZmaXhlcyBvZiB0aGUgbmFtZS4KLSNkZWZpbmUgR1RFU1Rf
TkFNRV9HRU5FUkFUT1JfKFRlc3RDYXNlTmFtZSkgXAotICBndGVzdF90eXBlX3BhcmFtc18jI1Rl
c3RDYXNlTmFtZSMjX05hbWVHZW5lcmF0b3IKLQotLy8gVGhlICdUeXBlcycgdGVtcGxhdGUgYXJn
dW1lbnQgYmVsb3cgbXVzdCBoYXZlIHNwYWNlcyBhcm91bmQgaXQKLS8vIHNpbmNlIHNvbWUgY29t
cGlsZXJzIG1heSBjaG9rZSBvbiAnPj4nIHdoZW4gcGFzc2luZyBhIHRlbXBsYXRlCi0vLyBpbnN0
YW5jZSAoZS5nLiBUeXBlczxpbnQ+KQotIyBkZWZpbmUgVFlQRURfVEVTVF9DQVNFKENhc2VOYW1l
LCBUeXBlcywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0eXBlZGVmIDo6
dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlIEdURVNUX1RZUEVfUEFS
QU1TXyggXAotICAgICAgQ2FzZU5hbWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJu
YWw6Ok5hbWVHZW5lcmF0b3JTZWxlY3RvcjxfX1ZBX0FSR1NfXz46OnR5cGUgICAgXAorI2RlZmlu
ZSBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oVGVzdFN1aXRlTmFtZSkgXAorICBndGVzdF90eXBlX3Bh
cmFtc18jI1Rlc3RTdWl0ZU5hbWUjI19OYW1lR2VuZXJhdG9yCisKKyNkZWZpbmUgVFlQRURfVEVT
VF9TVUlURShDYXNlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpHZW5lcmF0ZVR5cGVMaXN0PFR5cGVzPjo6
dHlwZSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhDYXNlTmFtZSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdHlwZWRlZiA6OnRlc3Rpbmc6
OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8X19WQV9BUkdTX18+Ojp0eXBlIFwKICAg
ICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSkKIAotIyBkZWZpbmUgVFlQRURfVEVT
VChDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorI2RlZmluZSBUWVBFRF9URVNUKENhc2VOYW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KHNpemVvZihHVEVT
VF9TVFJJTkdJRllfKFRlc3ROYW1lKSkgPiAxLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgICJ0ZXN0LW5hbWUgbXVzdCBub3QgYmUgZW1wdHkiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rlc3RfVHlwZVBhcmFt
Xz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBjbGFzcyBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKENhc2VOYW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICAgOiBwdWJsaWMgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcHJpdmF0ZTogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgZ3Rlc3RfVHlwZVBhcmFtXyBU
eXBlUGFyYW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHZp
cnR1YWwgdm9pZCBUZXN0Qm9keSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB9OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICBzdGF0aWMgYm9vbCBndGVzdF8jI0Nhc2VOYW1lIyNfIyNUZXN0TmFtZSMjX3Jl
Z2lzdGVyZWRfICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBHVEVTVF9BVFRSSUJVVEVf
VU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0PCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSA6
OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlUGFyYW1ldGVyaXplZFRlc3Q8ICAgXAogICAgICAgICAg
IENhc2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlbXBsYXRlU2Vs
PEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oQ2FzZU5hbWUsICAgXAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdE5hbWUp
PiwgXApAQCAtMjE2LDcgKzIxMiw4IEBAIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15
LCBGb29UZXN0LCBNeVR5cGVzKTsKICAgICAgICAgICAgICAgQ2FzZU5hbWUpPjo6UmVnaXN0ZXIo
IiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9u
KCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRklM
RV9fLCBfX0xJTkVfXyksICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgI0Nhc2VOYW1lLCAjVGVzdE5hbWUsIDAsICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyhD
YXNlTmFtZSksICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSksIDAsICAgICAgICAgICAgIFwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJh
dGVOYW1lczwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhDYXNlTmFtZSk+KCkp
OyAgICAgIFwKQEAgLTIyNCw4MyArMjIxLDEwOSBAQCBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAgIHZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1F
XyhDYXNlTmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0TmFtZSk8Z3Rlc3RfVHlwZVBhcmFtXz46OlRl
c3RCb2R5KCkKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAorLy8gTGVnYWN5IEFQ
SSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIFRZUEVEX1RFU1RfQ0FTRSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydCg6
OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVkKCksICIiKTsgXAor
ICBUWVBFRF9URVNUX1NVSVRFCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwogCiAvLyBJbXBsZW1lbnRzIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KIAotI2lm
IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBE
TyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lc3BhY2Ug
bmFtZSB0aGF0IHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgZm9yCi0vLyB0aGUgZ2l2ZW4g
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcmUgZGVmaW5lZCBpbi4gIFRoZSBleGFjdAor
Ly8gdGhlIGdpdmVuIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIGFyZSBkZWZpbmVkIGlu
LiAgVGhlIGV4YWN0CiAvLyBuYW1lIG9mIHRoZSBuYW1lc3BhY2UgaXMgc3ViamVjdCB0byBjaGFu
Z2Ugd2l0aG91dCBub3RpY2UuCi0jIGRlZmluZSBHVEVTVF9DQVNFX05BTUVTUEFDRV8oVGVzdENh
c2VOYW1lKSBcCi0gIGd0ZXN0X2Nhc2VfIyNUZXN0Q2FzZU5hbWUjI18KKyNkZWZpbmUgR1RFU1Rf
U1VJVEVfTkFNRVNQQUNFXyhUZXN0U3VpdGVOYW1lKSBndGVzdF9zdWl0ZV8jI1Rlc3RTdWl0ZU5h
bWUjI18KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIg
Q09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSB1c2VkIHRv
IHJlbWVtYmVyIHRoZSBuYW1lcyBvZgotLy8gdGhlIGRlZmluZWQgdGVzdHMgaW4gdGhlIGdpdmVu
IHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVEX1RFU1RfQ0FTRV9QX1NUQVRFXyhUZXN0
Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfdHlwZWRfdGVzdF9jYXNlX3Bfc3RhdGVfIyNUZXN0Q2FzZU5h
bWUjI18KKy8vIHRoZSBkZWZpbmVkIHRlc3RzIGluIHRoZSBnaXZlbiB0ZXN0IHN1aXRlLgorI2Rl
ZmluZSBHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RBVEVfKFRlc3RTdWl0ZU5hbWUpIFwKKyAg
Z3Rlc3RfdHlwZWRfdGVzdF9zdWl0ZV9wX3N0YXRlXyMjVGVzdFN1aXRlTmFtZSMjXwogCiAvLyBJ
TlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFIERJUkVDVExZ
LgogLy8KIC8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHVzZWQgdG8gcmVt
ZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4g
dGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhUZXN0Q2Fz
ZU5hbWUpIFwKLSAgZ3Rlc3RfcmVnaXN0ZXJlZF90ZXN0X25hbWVzXyMjVGVzdENhc2VOYW1lIyNf
CisvLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBzdWl0ZS4KKyNkZWZp
bmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhUZXN0U3VpdGVOYW1lKSBcCisgIGd0ZXN0
X3JlZ2lzdGVyZWRfdGVzdF9uYW1lc18jI1Rlc3RTdWl0ZU5hbWUjI18KIAogLy8gVGhlIHZhcmlh
YmxlcyBkZWZpbmVkIGluIHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBtYWNyb3MgYXJlCiAv
LyBzdGF0aWMgYXMgdHlwaWNhbGx5IHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBpbiBhIC5oIGZpbGUg
dGhhdCBjYW4gYmUKIC8vICNpbmNsdWRlZCBpbiBtdWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0cyBs
aW5rZWQgdG9nZXRoZXIuCi0jIGRlZmluZSBUWVBFRF9URVNUX0NBU0VfUChDYXNlTmFtZSkgXAot
ICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZWRUZXN0Q2FzZVBTdGF0ZSBcCi0gICAg
ICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8oQ2FzZU5hbWUpCi0KLSMgZGVmaW5lIFRZ
UEVEX1RFU1RfUChDYXNlTmFtZSwgVGVzdE5hbWUpIFwKLSAgbmFtZXNwYWNlIEdURVNUX0NBU0Vf
TkFNRVNQQUNFXyhDYXNlTmFtZSkgeyBcCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBl
UGFyYW1fPiBcCi0gIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIENhc2VOYW1lPGd0ZXN0X1R5cGVQ
YXJhbV8+IHsgXAotICAgcHJpdmF0ZTogXAotICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlw
ZVBhcmFtXz4gVGVzdEZpeHR1cmU7IFwKLSAgICB0eXBlZGVmIGd0ZXN0X1R5cGVQYXJhbV8gVHlw
ZVBhcmFtOyBcCi0gICAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7IFwKLSAgfTsgXAotICBzdGF0
aWMgYm9vbCBndGVzdF8jI1Rlc3ROYW1lIyNfZGVmaW5lZF8gR1RFU1RfQVRUUklCVVRFX1VOVVNF
RF8gPSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8oQ2FzZU5hbWUpLkFk
ZFRlc3ROYW1lKFwKLSAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICNDYXNlTmFtZSwgI1Rl
c3ROYW1lKTsgXAotICB9IFwKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+
IFwKLSAgdm9pZCBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpOjpUZXN0TmFtZTxndGVz
dF9UeXBlUGFyYW1fPjo6VGVzdEJvZHkoKQotCi0jIGRlZmluZSBSRUdJU1RFUl9UWVBFRF9URVNU
X0NBU0VfUChDYXNlTmFtZSwgLi4uKSBcCi0gIG5hbWVzcGFjZSBHVEVTVF9DQVNFX05BTUVTUEFD
RV8oQ2FzZU5hbWUpIHsgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlbXBsYXRl
czxfX1ZBX0FSR1NfXz46OnR5cGUgZ3Rlc3RfQWxsVGVzdHNfOyBcCi0gIH0gXAotICBzdGF0aWMg
Y29uc3QgY2hhciogY29uc3QgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhDYXNlTmFtZSkg
XAotICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICAgICAgR1RFU1RfVFlQ
RURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKS5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVz
KCBcCi0gICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgI19fVkFfQVJHU19fKQotCi0v
LyBUaGUgJ1R5cGVzJyB0ZW1wbGF0ZSBhcmd1bWVudCBiZWxvdyBtdXN0IGhhdmUgc3BhY2VzIGFy
b3VuZCBpdAotLy8gc2luY2Ugc29tZSBjb21waWxlcnMgbWF5IGNob2tlIG9uICc+Picgd2hlbiBw
YXNzaW5nIGEgdGVtcGxhdGUKLS8vIGluc3RhbmNlIChlLmcuIFR5cGVzPGludD4pCi0jIGRlZmlu
ZSBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChQcmVmaXgsIENhc2VOYW1lLCBUeXBlcywg
Li4uKSAgICAgIFwKLSAgc3RhdGljIGJvb2wgZ3Rlc3RfIyNQcmVmaXgjI18jI0Nhc2VOYW1lIEdU
RVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTwgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgQ2FzZU5hbWUsIEdURVNUX0NBU0VfTkFNRVNQQUNFXyhDYXNlTmFtZSk6Omd0ZXN0X0Fs
bFRlc3RzXywgICAgIFwKLSAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlTGlzdDwg
VHlwZXMgPjo6dHlwZT46OiAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIFJlZ2lzdGVyKCNQ
cmVmaXgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklM
RV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgICAgICAgICAgICAmR1RFU1RfVFlQRURfVEVTVF9D
QVNFX1BfU1RBVEVfKENhc2VOYW1lKSwgI0Nhc2VOYW1lLCAgXAotICAgICAgICAgICAgICAgICAg
IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2FzZU5hbWUpLCAgICAgICAgICAgICAgICBc
Ci0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVOYW1lczwg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPCAgICAgICAgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX19WQV9BUkdTX18+Ojp0eXBlLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0
PCBUeXBlcyA+Ojp0eXBlPigpKQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AK
LQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KKyNk
ZWZpbmUgVFlQRURfVEVTVF9TVUlURV9QKFN1aXRlTmFtZSkgICAgICAgICAgICAgIFwKKyAgc3Rh
dGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdFN1aXRlUFN0YXRlIFwKKyAgICAgIEdU
RVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVOYW1lKQorCisvLyBMZWdhY3kgQVBJ
IGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0
KDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSwgIiIp
OyBcCisgIFRZUEVEX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZ
X1RFU1RfQ0FTRUFQSV8KKworI2RlZmluZSBUWVBFRF9URVNUX1AoU3VpdGVOYW1lLCBUZXN0TmFt
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNlIEdURVNUX1NVSVRF
X05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIFN1aXRlTmFtZTxndGVzdF9UeXBl
UGFyYW1fPiB7ICAgICAgICAgICAgIFwKKyAgICAgcHJpdmF0ZTogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB0eXBlZGVmIFN1
aXRlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiBUZXN0Rml4dHVyZTsgICAgICAgICAgICAgICAgXAor
ICAgICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1fIFR5cGVQYXJhbTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRp
YyBib29sIGd0ZXN0XyMjVGVzdE5hbWUjI19kZWZpbmVkXyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VE
XyA9IFwKKyAgICAgICAgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9QX1NUQVRFXyhTdWl0ZU5hbWUp
LkFkZFRlc3ROYW1lKCAgICAgICBcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sIEdU
RVNUX1NUUklOR0lGWV8oU3VpdGVOYW1lKSwgICAgICAgICAgXAorICAgICAgICAgICAgR1RFU1Rf
U1RSSU5HSUZZXyhUZXN0TmFtZSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2b2lkIEdURVNUX1NVSVRFX05BTUVTUEFD
RV8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFN1aXRl
TmFtZSk6OlRlc3ROYW1lPGd0ZXN0X1R5cGVQYXJhbV8+OjpUZXN0Qm9keSgpCisKKy8vIE5vdGU6
IHRoaXMgd29uJ3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIHRyYWlsaW5nIGFyZ3VtZW50cyBhcmUg
bWFjcm9zLgorI2RlZmluZSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoU3VpdGVOYW1lLCAu
Li4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNlIEdURVNUX1NVSVRFX05B
TUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
dHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1wbGF0ZXM8X19WQV9BUkdTX18+IGd0ZXN0
X0FsbFRlc3RzXzsgICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICBTdWl0ZU5hbWUpIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9Q
X1NUQVRFXyhTdWl0ZU5hbWUpLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoIFwKKyAgICAgICAg
ICBHVEVTVF9TVFJJTkdJRllfKFN1aXRlTmFtZSksIF9fRklMRV9fLCBfX0xJTkVfXywgI19fVkFf
QVJHU19fKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlZ2lzdGVy
VHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBcCisgICAgICAgICAgICAgICAgIiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZGVmaW5lIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJ
VEVfUChQcmVmaXgsIFN1aXRlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgXAorICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFByZWZpeCkpID4gMSwgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdC1zdWl0LXByZWZpeCBtdXN0IG5vdCBiZSBl
bXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBib29sIGd0ZXN0XyMjUHJl
Zml4IyNfIyNTdWl0ZU5hbWUgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSAgICAgICAgXAorICAg
ICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8ICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBTdWl0ZU5hbWUsIEdURVNUX1NVSVRFX05BTUVT
UEFDRV8oU3VpdGVOYW1lKTo6Z3Rlc3RfQWxsVGVzdHNfLCAgICBcCisgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVUeXBlTGlzdDxUeXBlcz46OnR5cGU+OjogICAgICAgICAg
ICAgXAorICAgICAgICAgIFJlZ2lzdGVyKEdURVNUX1NUUklOR0lGWV8oUHJlZml4KSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgICBcCisgICAgICAg
ICAgICAgICAgICAgJkdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVOYW1lKSwg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8oU3VpdGVO
YW1lKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICBH
VEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKFN1aXRlTmFtZSksICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVOYW1lczwg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8ICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fVkFfQVJHU19fPjo6dHlwZSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okdl
bmVyYXRlVHlwZUxpc3Q8VHlwZXM+Ojp0eXBlPigpKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyNkZWZpbmUgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydCggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okluc3RhbnRpYXRlVHlwZWRUZXN0Q2FzZV9QX0lzRGVw
cmVjYXRlZCgpLCAiIik7IFwKKyAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QCisjZW5k
aWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZW5kaWYgIC8vIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgKaW5kZXggNWRmNGIwYTNhNzEyNzY5
MDQ1NWE5NDVjYjE1MjhiNmJkNzQ0OWI2Ni4uMTA4OGUxMTBiY2YwNmFlYmE1NzAxNzU2NDI4NmIz
YjRkZWZmNGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
Z3Rlc3QuaApAQCAtNDksMTYgKzQ5LDIwIEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCi0jZGVmaW5l
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9I
XwogCisjaW5jbHVkZSA8Y3N0ZGRlZj4KICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCIKICNpbmNsdWRlICJndGVz
dC9ndGVzdC1kZWF0aC10ZXN0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIK
ICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCkBAIC02OSwy
MSArNzMsNiBAQAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDI1MSBcCiAvKiBj
bGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5IGNsaWVudHMg
b2YgY2xhc3MgQiAqLykKIAotLy8gRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSwgZGlmZmVyZW50
IHN0cmluZyBjbGFzc2VzIGFyZSBhdmFpbGFibGUuCi0vLyBPbiBMaW51eCwgaW4gYWRkaXRpb24g
dG8gOjpzdGQ6OnN0cmluZywgR29vZ2xlIGFsc28gbWFrZXMgdXNlIG9mCi0vLyBjbGFzcyA6OnN0
cmluZywgd2hpY2ggaGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyA6OnN0ZDo6c3RyaW5nLCBidXQK
LS8vIGhhcyBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLS8vCi0vLyBZb3UgY2FuIGRlZmlu
ZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyB0byAxIHRvIGluZGljYXRlIHRoYXQKLS8vIDo6c3Ry
aW5nIGlzIGF2YWlsYWJsZSBBTkQgaXMgYSBkaXN0aW5jdCB0eXBlIHRvIDo6c3RkOjpzdHJpbmcs
IG9yCi0vLyBkZWZpbmUgaXQgdG8gMCB0byBpbmRpY2F0ZSBvdGhlcndpc2UuCi0vLwotLy8gSWYg
OjpzdGQ6OnN0cmluZyBhbmQgOjpzdHJpbmcgYXJlIHRoZSBzYW1lIGNsYXNzIG9uIHlvdXIgcGxh
dGZvcm0KLS8vIGR1ZSB0byBhbGlhc2luZywgeW91IHNob3VsZCBkZWZpbmUgR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcgdG8gMC4KLS8vCi0vLyBJZiB5b3UgZG8gbm90IGRlZmluZSBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORywgaXQgaXMgZGVmaW5lZAotLy8gaGV1cmlzdGljYWxseS4KLQogbmFtZXNw
YWNlIHRlc3RpbmcgewogCiAvLyBTaWxlbmNlIEM0MTAwICh1bnJlZmVyZW5jZWQgZm9ybWFsIHBh
cmFtZXRlcikgYW5kIDQ4MDUKQEAgLTExMiw2ICsxMDEsMTAgQEAgR1RFU1RfREVDTEFSRV9ib29s
XyhjYXRjaF9leGNlcHRpb25zKTsKIC8vIHRvIGxldCBHb29nbGUgVGVzdCBkZWNpZGUuCiBHVEVT
VF9ERUNMQVJFX3N0cmluZ18oY29sb3IpOwogCisvLyBUaGlzIGZsYWcgY29udHJvbHMgd2hldGhl
ciB0aGUgdGVzdCBydW5uZXIgc2hvdWxkIGNvbnRpbnVlIGV4ZWN1dGlvbiBwYXN0CisvLyBmaXJz
dCBmYWlsdXJlLgorR1RFU1RfREVDTEFSRV9ib29sXyhmYWlsX2Zhc3QpOworCiAvLyBUaGlzIGZs
YWcgc2V0cyB1cCB0aGUgZmlsdGVyIHRvIHNlbGVjdCBieSBuYW1lIHVzaW5nIGEgZ2xvYiBwYXR0
ZXJuCiAvLyB0aGUgdGVzdHMgdG8gcnVuLiBJZiB0aGUgZmlsdGVyIGlzIG5vdCBnaXZlbiBhbGwg
dGVzdHMgYXJlIGV4ZWN1dGVkLgogR1RFU1RfREVDTEFSRV9zdHJpbmdfKGZpbHRlcik7CkBAIC0x
MjgsNiArMTIxLDkgQEAgR1RFU1RfREVDTEFSRV9ib29sXyhsaXN0X3Rlc3RzKTsKIC8vIGluIGFk
ZGl0aW9uIHRvIGl0cyBub3JtYWwgdGV4dHVhbCBvdXRwdXQuCiBHVEVTVF9ERUNMQVJFX3N0cmlu
Z18ob3V0cHV0KTsKIAorLy8gVGhpcyBmbGFncyBjb250cm9sIHdoZXRoZXIgR29vZ2xlIFRlc3Qg
cHJpbnRzIG9ubHkgdGVzdCBmYWlsdXJlcy4KK0dURVNUX0RFQ0xBUkVfYm9vbF8oYnJpZWYpOwor
CiAvLyBUaGlzIGZsYWdzIGNvbnRyb2wgd2hldGhlciBHb29nbGUgVGVzdCBwcmludHMgdGhlIGVs
YXBzZWQgdGltZSBmb3IgZWFjaAogLy8gdGVzdC4KIEdURVNUX0RFQ0xBUkVfYm9vbF8ocHJpbnRf
dGltZSk7CkBAIC0xODgsNiArMTg0LDcgQEAgY2xhc3MgRnVjaHNpYURlYXRoVGVzdDsKIGNsYXNz
IFVuaXRUZXN0SW1wbCogR2V0VW5pdFRlc3RJbXBsKCk7CiB2b2lkIFJlcG9ydEZhaWx1cmVJblVu
a25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKTsK
K3N0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVz
KCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogCkBAIC0xOTUsNyArMTkyLDEyIEBAIHZv
aWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHJl
c3VsdF90eXBlLAogLy8gSWYgd2UgZG9uJ3QgZm9yd2FyZCBkZWNsYXJlIHRoZW0gdGhlIGNvbXBp
bGVyIG1pZ2h0IGNvbmZ1c2UgdGhlIGNsYXNzZXMKIC8vIGluIGZyaWVuZHNoaXAgY2xhdXNlcyB3
aXRoIHNhbWUgbmFtZWQgY2xhc3NlcyBvbiB0aGUgc2NvcGUuCiBjbGFzcyBUZXN0OwotY2xhc3Mg
VGVzdENhc2U7CitjbGFzcyBUZXN0U3VpdGU7CisKKy8vIE9sZCBBUEkgaXMgc3RpbGwgYXZhaWxh
YmxlIGJ1dCBkZXByZWNhdGVkCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXwordXNpbmcgVGVzdENhc2UgPSBUZXN0U3VpdGU7CisjZW5kaWYKIGNsYXNzIFRlc3RJbmZv
OwogY2xhc3MgVW5pdFRlc3Q7CiAKQEAgLTI4NCw3ICsyODYsMTEgQEAgY2xhc3MgR1RFU1RfQVBJ
XyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBVc2VkIGluIEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2Vy
dGlvbl9yZXN1bHQpLgogICBBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0aW9uUmVzdWx0JiBv
dGhlcik7CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MTAKKy8vIEM0
ODAwIGlzIGEgbGV2ZWwgMyB3YXJuaW5nIGluIFZpc3VhbCBTdHVkaW8gMjAxNSBhbmQgZWFybGll
ci4KKy8vIFRoaXMgd2FybmluZyBpcyBub3QgZW1pdHRlZCBpbiBWaXN1YWwgU3R1ZGlvIDIwMTcu
CisvLyBUaGlzIHdhcm5pbmcgaXMgb2ZmIGJ5IGRlZmF1bHQgc3RhcnRpbmcgaW4gVmlzdWFsIFN0
dWRpbyAyMDE5IGJ1dCBjYW4gYmUKKy8vIGVuYWJsZWQgd2l0aCBjb21tYW5kLWxpbmUgb3B0aW9u
cy4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTEwIHx8IF9NU0NfVkVS
ID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ4MDAgLyogZm9y
Y2luZyB2YWx1ZSB0byBib29sICovKQogI2VuZGlmCiAKQEAgLTI5OCwxMiArMzA0LDEzIEBAIGNs
YXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiAgIGV4cGxpY2l0IEFzc2VydGlvblJlc3VsdCgKICAgICAgIGNvbnN0IFQmIHN1Y2Nlc3MsCi0g
ICAgICB0eXBlbmFtZSBpbnRlcm5hbDo6RW5hYmxlSWY8Ci0gICAgICAgICAgIWludGVybmFsOjpJ
bXBsaWNpdGx5Q29udmVydGlibGU8VCwgQXNzZXJ0aW9uUmVzdWx0Pjo6dmFsdWU+Ojp0eXBlKgot
ICAgICAgICAgIC8qZW5hYmxlciovID0gTlVMTCkKKyAgICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxl
X2lmPAorICAgICAgICAgICFzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIEFzc2VydGlvblJlc3VsdD46
OnZhbHVlPjo6dHlwZSoKKyAgICAgIC8qZW5hYmxlciovCisgICAgICA9IG51bGxwdHIpCiAgICAg
ICA6IHN1Y2Nlc3NfKHN1Y2Nlc3MpIHt9CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVND
X1ZFUiA8IDE5MTAKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTEwIHx8
IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQog
I2VuZGlmCiAKQEAgLTMxMyw3ICszMjAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCB7CiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBhc3NlcnRpb24gc3VjY2VlZGVkLgogICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gc3VjY2Vzc187IH0gIC8vIE5PTElOVAogCiAgIC8vIFJldHVybnMgdGhlIGFzc2VydGlvbidz
IG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KQEAgLTMyNCw5ICszMzEs
OCBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgIC8vIGFzc2VydGlvbidz
IGV4cGVjdGF0aW9uKS4gV2hlbiBub3RoaW5nIGhhcyBiZWVuIHN0cmVhbWVkIGludG8gdGhlCiAg
IC8vIG9iamVjdCwgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCiAgIGNvbnN0IGNoYXIqIG1lc3Nh
Z2UoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG1lc3NhZ2VfLmdldCgpICE9IE5VTEwgPyAgbWVzc2Fn
ZV8tPmNfc3RyKCkgOiAiIjsKKyAgICByZXR1cm4gbWVzc2FnZV8uZ2V0KCkgIT0gbnVsbHB0ciA/
IG1lc3NhZ2VfLT5jX3N0cigpIDogIiI7CiAgIH0KLSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFm
dGVyIG1ha2luZyBzdXJlIG5vIGNsaWVudHMgdXNlIGl0LgogICAvLyBEZXByZWNhdGVkOyBwbGVh
c2UgdXNlIG1lc3NhZ2UoKSBpbnN0ZWFkLgogICBjb25zdCBjaGFyKiBmYWlsdXJlX21lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtZXNzYWdlKCk7IH0KIApAQCAtMzQ3LDggKzM1Myw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICBwcml2YXRlOgogICAvLyBBcHBlbmRzIHRo
ZSBjb250ZW50cyBvZiBtZXNzYWdlIHRvIG1lc3NhZ2VfLgogICB2b2lkIEFwcGVuZE1lc3NhZ2Uo
Y29uc3QgTWVzc2FnZSYgYV9tZXNzYWdlKSB7Ci0gICAgaWYgKG1lc3NhZ2VfLmdldCgpID09IE5V
TEwpCi0gICAgICBtZXNzYWdlXy5yZXNldChuZXcgOjpzdGQ6OnN0cmluZyk7CisgICAgaWYgKG1l
c3NhZ2VfLmdldCgpID09IG51bGxwdHIpIG1lc3NhZ2VfLnJlc2V0KG5ldyA6OnN0ZDo6c3RyaW5n
KTsKICAgICBtZXNzYWdlXy0+YXBwZW5kKGFfbWVzc2FnZS5HZXRTdHJpbmcoKS5jX3N0cigpKTsK
ICAgfQogCkBAIC0zNjEsNyArMzY2LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1
bHQgewogICAvLyBjb25zdHJ1Y3QgaXMgbm90IHNhdGlzZmllZCB3aXRoIHRoZSBwcmVkaWNhdGUn
cyBvdXRjb21lLgogICAvLyBSZWZlcmVuY2VkIHZpYSBhIHBvaW50ZXIgdG8gYXZvaWQgdGFraW5n
IHRvbyBtdWNoIHN0YWNrIGZyYW1lIHNwYWNlCiAgIC8vIHdpdGggdGVzdCBhc3NlcnRpb25zLgot
ICBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2FnZV87CisgIHN0ZDo6
dW5pcXVlX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2FnZV87CiB9OwogCiAvLyBNYWtlcyBhIHN1
Y2Nlc3NmdWwgYXNzZXJ0aW9uIHJlc3VsdC4KQEAgLTM4NSw4ICszOTAsOCBAQCBuYW1lc3BhY2Ug
dGVzdGluZyB7CiAKIC8vIFRoZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGFsbCB0ZXN0cyBpbmhlcml0
IGZyb20uCiAvLwotLy8gSW4gR29vZ2xlIFRlc3QsIGEgdW5pdCB0ZXN0IHByb2dyYW0gY29udGFp
bnMgb25lIG9yIG1hbnkgVGVzdENhc2VzLCBhbmQKLS8vIGVhY2ggVGVzdENhc2UgY29udGFpbnMg
b25lIG9yIG1hbnkgVGVzdHMuCisvLyBJbiBHb29nbGUgVGVzdCwgYSB1bml0IHRlc3QgcHJvZ3Jh
bSBjb250YWlucyBvbmUgb3IgbWFueSBUZXN0U3VpdGVzLCBhbmQKKy8vIGVhY2ggVGVzdFN1aXRl
IGNvbnRhaW5zIG9uZSBvciBtYW55IFRlc3RzLgogLy8KIC8vIFdoZW4geW91IGRlZmluZSBhIHRl
c3QgdXNpbmcgdGhlIFRFU1QgbWFjcm8sIHlvdSBkb24ndCBuZWVkIHRvCiAvLyBleHBsaWNpdGx5
IGRlcml2ZSBmcm9tIFRlc3QgLSB0aGUgVEVTVCBtYWNybyBhdXRvbWF0aWNhbGx5IGRvZXMKQEAg
LTQxMCw0OSArNDE1LDU0IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdCB7CiAgcHVibGljOgogICBm
cmllbmQgY2xhc3MgVGVzdEluZm87CiAKLSAgLy8gRGVmaW5lcyB0eXBlcyBmb3IgcG9pbnRlcnMg
dG8gZnVuY3Rpb25zIHRoYXQgc2V0IHVwIGFuZCB0ZWFyIGRvd24KLSAgLy8gYSB0ZXN0IGNhc2Uu
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlNldFVwVGVzdENhc2VGdW5jIFNldFVwVGVzdENhc2VGdW5j
OwotICB0eXBlZGVmIGludGVybmFsOjpUZWFyRG93blRlc3RDYXNlRnVuYyBUZWFyRG93blRlc3RD
YXNlRnVuYzsKLQogICAvLyBUaGUgZCd0b3IgaXMgdmlydHVhbCBhcyB3ZSBpbnRlbmQgdG8gaW5o
ZXJpdCBmcm9tIFRlc3QuCiAgIHZpcnR1YWwgflRlc3QoKTsKIAotICAvLyBTZXRzIHVwIHRoZSBz
dHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgorICAvLyBTZXRzIHVw
IHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgLy8K
LSAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6U2V0VXBUZXN0Q2FzZSgpIGJlZm9yZSBy
dW5uaW5nIHRoZSBmaXJzdAotICAvLyB0ZXN0IGluIHRlc3QgY2FzZSBGb28uICBIZW5jZSBhIHN1
Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gU2V0VXBUZXN0Q2FzZSgpIG1ldGhvZCB0
byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgorICAvLyBHb29nbGUgVGVzdCB3
aWxsIGNhbGwgRm9vOjpTZXRVcFRlc3RTdWl0ZSgpIGJlZm9yZSBydW5uaW5nIHRoZSBmaXJzdAor
ICAvLyB0ZXN0IGluIHRlc3Qgc3VpdGUgRm9vLiAgSGVuY2UgYSBzdWItY2xhc3MgY2FuIGRlZmlu
ZSBpdHMgb3duCisgIC8vIFNldFVwVGVzdFN1aXRlKCkgbWV0aG9kIHRvIHNoYWRvdyB0aGUgb25l
IGRlZmluZWQgaW4gdGhlIHN1cGVyCiAgIC8vIGNsYXNzLgotICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7fQogCi0gIC8vIFRl
YXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2Uu
CisgIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IHN1aXRlLgogICAvLwotICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93
blRlc3RDYXNlKCkgYWZ0ZXIgcnVubmluZyB0aGUgbGFzdAotICAvLyB0ZXN0IGluIHRlc3QgY2Fz
ZSBGb28uICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gVGVhckRv
d25UZXN0Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBl
cgorICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93blRlc3RTdWl0ZSgpIGFm
dGVyIHJ1bm5pbmcgdGhlIGxhc3QKKyAgLy8gdGVzdCBpbiB0ZXN0IHN1aXRlIEZvby4gIEhlbmNl
IGEgc3ViLWNsYXNzIGNhbiBkZWZpbmUgaXRzIG93bgorICAvLyBUZWFyRG93blRlc3RTdWl0ZSgp
IG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgogICAvLyBjbGFz
cy4KKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7fQorCisgIC8vIExlZ2FjeSBB
UEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlLiBVc2UgU2V0VXBUZXN0U3VpdGUg
YW5kCisgIC8vIFRlYXJEb3duVGVzdFN1aXRlIGluc3RlYWQuCisjaWZuZGVmIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkg
e30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHt9CisjZW5kaWYgIC8vIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGN1
cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgogICBzdGF0aWMg
Ym9vbCBIYXNGYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJy
ZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgogICBz
dGF0aWMgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgorICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCB3YXMgc2tpcHBlZC4KKyAgc3RhdGlj
IGJvb2wgSXNTa2lwcGVkKCk7CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRo
ZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgogICAvLyBub24tZmF0YWwpIGZh
aWx1cmUuCiAgIHN0YXRpYyBib29sIEhhc0ZhaWx1cmUoKSB7IHJldHVybiBIYXNGYXRhbEZhaWx1
cmUoKSB8fCBIYXNOb25mYXRhbEZhaWx1cmUoKTsgfQogCi0gIC8vIExvZ3MgYSBwcm9wZXJ0eSBm
b3IgdGhlIGN1cnJlbnQgdGVzdCwgdGVzdCBjYXNlLCBvciBmb3IgdGhlIGVudGlyZQorICAvLyBM
b2dzIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHRlc3QsIHRlc3Qgc3VpdGUsIG9yIGZvciB0
aGUgZW50aXJlCiAgIC8vIGludm9jYXRpb24gb2YgdGhlIHRlc3QgcHJvZ3JhbSB3aGVuIHVzZWQg
b3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhCi0gIC8vIHRlc3QgY2FzZS4gIE9ubHkgdGhlIGxh
c3QgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IGlzIHJlbWVtYmVyZWQuICBUaGVzZQorICAvLyB0ZXN0
IHN1aXRlLiAgT25seSB0aGUgbGFzdCB2YWx1ZSBmb3IgYSBnaXZlbiBrZXkgaXMgcmVtZW1iZXJl
ZC4gIFRoZXNlCiAgIC8vIGFyZSBwdWJsaWMgc3RhdGljIHNvIHRoZXkgY2FuIGJlIGNhbGxlZCBm
cm9tIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIC8vIG5vdCBtZW1iZXJzIG9mIHRoZSB0
ZXN0IGZpeHR1cmUuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGR1cmluZwogICAvLyBs
aWZlc3BhbiBvZiB0aGUgdGVzdCAoZnJvbSB0aGUgbW9tZW50IGl0cyBjb25zdHJ1Y3RvciBzdGFy
dHMgdG8gdGhlCiAgIC8vIG1vbWVudCBpdHMgZGVzdHJ1Y3RvciBmaW5pc2hlcykgd2lsbCBiZSBv
dXRwdXQgaW4gWE1MIGFzIGF0dHJpYnV0ZXMgb2YKICAgLy8gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVu
dC4gIFByb3BlcnRpZXMgcmVjb3JkZWQgZnJvbSBmaXh0dXJlJ3MKLSAgLy8gU2V0VXBUZXN0Q2Fz
ZSBvciBUZWFyRG93blRlc3RDYXNlIGFyZSBsb2dnZWQgYXMgYXR0cmlidXRlcyBvZiB0aGUKKyAg
Ly8gU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUgYXJlIGxvZ2dlZCBhcyBhdHRy
aWJ1dGVzIG9mIHRoZQogICAvLyBjb3JyZXNwb25kaW5nIDx0ZXN0c3VpdGU+IGVsZW1lbnQuICBD
YWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGluIHRoZQogICAvLyBnbG9iYWwgY29udGV4dCAo
YmVmb3JlIG9yIGFmdGVyIGludm9jYXRpb24gb2YgUlVOX0FMTF9URVNUUyBhbmQgZnJvbQogICAv
LyBTZXRVcC9UZWFyRG93biBtZXRob2Qgb2YgRW52aXJvbm1lbnQgb2JqZWN0cyByZWdpc3RlcmVk
IHdpdGggR29vZ2xlCkBAIC00NzEsOCArNDgxLDggQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0IHsK
ICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CiAKICBwcml2YXRlOgotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZSBzYW1lIGZpeHR1cmUgY2xhc3MgYXMKLSAg
Ly8gdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBjYXNlLgorICAvLyBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgdGhlIHNhbWUgZml4dHVy
ZSBjbGFzcworICAvLyBhcyB0aGUgZmlyc3QgdGVzdCBpbiB0aGUgY3VycmVudCB0ZXN0IHN1aXRl
LgogICBzdGF0aWMgYm9vbCBIYXNTYW1lRml4dHVyZUNsYXNzKCk7CiAKICAgLy8gUnVucyB0aGUg
dGVzdCBhZnRlciB0aGUgdGVzdCBmaXh0dXJlIGhhcyBiZWVuIHNldCB1cC4KQEAgLTQ5MCw3ICs1
MDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3QgewogICAvLyBpbnRlcm5hbCBtZXRob2QgdG8g
YXZvaWQgY2xhc2hpbmcgd2l0aCBuYW1lcyB1c2VkIGluIHVzZXIgVEVTVHMuCiAgIHZvaWQgRGVs
ZXRlU2VsZl8oKSB7IGRlbGV0ZSB0aGlzOyB9CiAKLSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9w
dHI8IEdURVNUX0ZMQUdfU0FWRVJfID4gZ3Rlc3RfZmxhZ19zYXZlcl87CisgIGNvbnN0IHN0ZDo6
dW5pcXVlX3B0cjxHVEVTVF9GTEFHX1NBVkVSXz4gZ3Rlc3RfZmxhZ19zYXZlcl87CiAKICAgLy8g
T2Z0ZW4gYSB1c2VyIG1pc3NwZWxscyBTZXRVcCgpIGFzIFNldHVwKCkgYW5kIHNwZW5kcyBhIGxv
bmcgdGltZQogICAvLyB3b25kZXJpbmcgd2h5IGl0IGlzIG5ldmVyIGNhbGxlZCBieSBHb29nbGUg
VGVzdC4gIFRoZSBkZWNsYXJhdGlvbiBvZgpAQCAtNTA5LDcgKzUxOSw3IEBAIGNsYXNzIEdURVNU
X0FQSV8gVGVzdCB7CiAgIC8vIElmIHlvdSBzZWUgYW4gZXJyb3IgYWJvdXQgb3ZlcnJpZGluZyB0
aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG9yCiAgIC8vIGFib3V0IGl0IGJlaW5nIHByaXZhdGUsIHlv
dSBoYXZlIG1pcy1zcGVsbGVkIFNldFVwKCkgYXMgU2V0dXAoKS4KICAgc3RydWN0IFNldHVwX3No
b3VsZF9iZV9zcGVsbGVkX1NldFVwIHt9OwotICB2aXJ0dWFsIFNldHVwX3Nob3VsZF9iZV9zcGVs
bGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIE5VTEw7IH0KKyAgdmlydHVhbCBTZXR1cF9zaG91
bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgLy8g
V2UgZGlzYWxsb3cgY29weWluZyBUZXN0cy4KICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNT
SUdOXyhUZXN0KTsKQEAgLTU3MywyMSArNTgzLDI4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFJl
c3VsdCB7CiAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgdGVzdCBwcm9wZXJ0aWVzLgog
ICBpbnQgdGVzdF9wcm9wZXJ0eV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFydCBmYWlsZWQpLgotICBib29sIFBh
c3NlZCgpIGNvbnN0IHsgcmV0dXJuICFGYWlsZWQoKTsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFydCBmYWlsZWQpLgor
ICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFTa2lwcGVkKCkgJiYgIUZhaWxlZCgpOyB9
CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHdhcyBza2lwcGVk
LgorICBib29sIFNraXBwZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0
ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZh
aWxlZC4KICAgYm9vbCBGYWlsZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSB0ZXN0IGZhdGFsbHkgZmFpbGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiAgIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCkgY29uc3Q7
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVy
ZS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGhhcyBhIG5vbi1m
YXRhbCBmYWlsdXJlLgogICBib29sIEhhc05vbmZhdGFsRmFpbHVyZSgpIGNvbnN0OwogCiAgIC8v
IFJldHVybnMgdGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgogICBUaW1lSW5NaWxs
aXMgZWxhcHNlZF90aW1lKCkgY29uc3QgeyByZXR1cm4gZWxhcHNlZF90aW1lXzsgfQogCisgIC8v
IEdldHMgdGhlIHRpbWUgb2YgdGhlIHRlc3QgY2FzZSBzdGFydCwgaW4gbXMgZnJvbSB0aGUgc3Rh
cnQgb2YgdGhlCisgIC8vIFVOSVggZXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFydF90aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBzdGFydF90aW1lc3RhbXBfOyB9CisKICAgLy8gUmV0dXJucyB0
aGUgaS10aCB0ZXN0IHBhcnQgcmVzdWx0IGFtb25nIGFsbCB0aGUgcmVzdWx0cy4gaSBjYW4gcmFu
Z2UgZnJvbSAwCiAgIC8vIHRvIHRvdGFsX3BhcnRfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGlu
IHRoYXQgcmFuZ2UsIGFib3J0cyB0aGUgcHJvZ3JhbS4KICAgY29uc3QgVGVzdFBhcnRSZXN1bHQm
IEdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdDsKQEAgLTU5OSw3ICs2MTYsNyBAQCBjbGFz
cyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogCiAgcHJpdmF0ZToKICAgZnJpZW5kIGNsYXNzIFRl
c3RJbmZvOwotICBmcmllbmQgY2xhc3MgVGVzdENhc2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3Vp
dGU7CiAgIGZyaWVuZCBjbGFzcyBVbml0VGVzdDsKICAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpE
ZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjsKICAgZnJpZW5kIGNsYXNzIGludGVy
bmFsOjpFeGVjRGVhdGhUZXN0OwpAQCAtNjE4LDYgKzYzNSw5IEBAIGNsYXNzIEdURVNUX0FQSV8g
VGVzdFJlc3VsdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJvcGVydGllc187CiAgIH0KIAorICAvLyBT
ZXRzIHRoZSBzdGFydCB0aW1lLgorICB2b2lkIHNldF9zdGFydF90aW1lc3RhbXAoVGltZUluTWls
bGlzIHN0YXJ0KSB7IHN0YXJ0X3RpbWVzdGFtcF8gPSBzdGFydDsgfQorCiAgIC8vIFNldHMgdGhl
IGVsYXBzZWQgdGltZS4KICAgdm9pZCBzZXRfZWxhcHNlZF90aW1lKFRpbWVJbk1pbGxpcyBlbGFw
c2VkKSB7IGVsYXBzZWRfdGltZV8gPSBlbGFwc2VkOyB9CiAKQEAgLTYzMSw3ICs2NTEsNyBAQCBj
bGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7CiAKICAgLy8gQWRkcyBhIGZhaWx1cmUgaWYg
dGhlIGtleSBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBvZiBHb29nbGUgVGVzdAotICAvLyB0ZXN0
Y2FzZSB0YWdzLiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2YWxpZC4KKyAgLy8g
dGVzdHN1aXRlIHRhZ3MuICBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3BlcnR5IGlzIHZhbGlkLgog
ICAvLyBGSVhNRTogVmFsaWRhdGUgYXR0cmlidXRlIG5hbWVzIGFyZSBsZWdhbCBhbmQgaHVtYW4g
cmVhZGFibGUuCiAgIHN0YXRpYyBib29sIFZhbGlkYXRlVGVzdFByb3BlcnR5KGNvbnN0IHN0ZDo6
c3RyaW5nJiB4bWxfZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KTsKQEAgLTY2MSw2ICs2ODEsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICBzdGQ6OnZlY3RvcjxUZXN0UHJvcGVydHk+
IHRlc3RfcHJvcGVydGllc187CiAgIC8vIFJ1bm5pbmcgY291bnQgb2YgZGVhdGggdGVzdHMuCiAg
IGludCBkZWF0aF90ZXN0X2NvdW50XzsKKyAgLy8gVGhlIHN0YXJ0IHRpbWUsIGluIG1pbGxpc2Vj
b25kcyBzaW5jZSBVTklYIEVwb2NoLgorICBUaW1lSW5NaWxsaXMgc3RhcnRfdGltZXN0YW1wXzsK
ICAgLy8gVGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgogICBUaW1lSW5NaWxsaXMg
ZWxhcHNlZF90aW1lXzsKIApAQCAtNjcwLDcgKzY5Miw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dFJlc3VsdCB7CiAKIC8vIEEgVGVzdEluZm8gb2JqZWN0IHN0b3JlcyB0aGUgZm9sbG93aW5nIGlu
Zm9ybWF0aW9uIGFib3V0IGEgdGVzdDoKIC8vCi0vLyAgIFRlc3QgY2FzZSBuYW1lCisvLyAgIFRl
c3Qgc3VpdGUgbmFtZQogLy8gICBUZXN0IG5hbWUKIC8vICAgV2hldGhlciB0aGUgdGVzdCBzaG91
bGQgYmUgcnVuCiAvLyAgIEEgZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNyZWF0ZXMgdGhlIHRlc3Qg
b2JqZWN0IHdoZW4gaW52b2tlZApAQCAtNjg1LDggKzcwNywxMyBAQCBjbGFzcyBHVEVTVF9BUElf
IFRlc3RJbmZvIHsKICAgLy8gZG9uJ3QgaW5oZXJpdCBmcm9tIFRlc3RJbmZvLgogICB+VGVzdElu
Zm8oKTsKIAotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgbmFtZS4KLSAgY29uc3QgY2hhciog
dGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X2Nhc2VfbmFtZV8uY19zdHIoKTsg
fQorICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHN1aXRlIG5hbWUuCisgIGNvbnN0IGNoYXIqIHRlc3Rf
c3VpdGVfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3Rfc3VpdGVfbmFtZV8uY19zdHIoKTsgfQor
CisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X3N1aXRlX25hbWUoKTsgfQorI2VuZGlmICAv
LyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBSZXR1cm5zIHRoZSB0
ZXN0IG5hbWUuCiAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0
cigpOyB9CkBAIC02OTQsMTcgKzcyMSwxNSBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsK
ICAgLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYg
dGhpcyBpcyBub3QgYSB0eXBlZAogICAvLyBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0Lgog
ICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh0eXBlX3BhcmFtXy5n
ZXQoKSAhPSBOVUxMKQotICAgICAgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOwotICAgIHJl
dHVybiBOVUxMOworICAgIGlmICh0eXBlX3BhcmFtXy5nZXQoKSAhPSBudWxscHRyKSByZXR1cm4g
dHlwZV9wYXJhbV8tPmNfc3RyKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KIAogICAvLyBS
ZXR1cm5zIHRoZSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9y
IE5VTEwgaWYgdGhpcwogICAvLyBpcyBub3QgYSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCiAg
IGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh2YWx1ZV9wYXJhbV8u
Z2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB2YWx1ZV9wYXJhbV8tPmNfc3RyKCk7Ci0gICAg
cmV0dXJuIE5VTEw7CisgICAgaWYgKHZhbHVlX3BhcmFtXy5nZXQoKSAhPSBudWxscHRyKSByZXR1
cm4gdmFsdWVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAg
Ly8gUmV0dXJucyB0aGUgZmlsZSBuYW1lIHdoZXJlIHRoaXMgdGVzdCBpcyBkZWZpbmVkLgpAQCAt
NzIxLDcgKzc0Niw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBiZWVuIHNw
ZWNpZmllZCkgYW5kIGl0cyBmdWxsIG5hbWUgbWF0Y2hlcyB0aGUgdXNlci1zcGVjaWZpZWQgZmls
dGVyLgogICAvLwogICAvLyBHb29nbGUgVGVzdCBhbGxvd3MgdGhlIHVzZXIgdG8gZmlsdGVyIHRo
ZSB0ZXN0cyBieSB0aGVpciBmdWxsIG5hbWVzLgotICAvLyBUaGUgZnVsbCBuYW1lIG9mIGEgdGVz
dCBCYXIgaW4gdGVzdCBjYXNlIEZvbyBpcyBkZWZpbmVkIGFzCisgIC8vIFRoZSBmdWxsIG5hbWUg
b2YgYSB0ZXN0IEJhciBpbiB0ZXN0IHN1aXRlIEZvbyBpcyBkZWZpbmVkIGFzCiAgIC8vICJGb28u
QmFyIi4gIE9ubHkgdGhlIHRlc3RzIHRoYXQgbWF0Y2ggdGhlIGZpbHRlciB3aWxsIHJ1bi4KICAg
Ly8KICAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBnbG9iIChub3Qg
cmVnZXgpIHBhdHRlcm5zLApAQCAtNzM0LDcgKzc1OSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dEluZm8gewogICAvLyBjb250YWlucyB0aGUgY2hhcmFjdGVyICdBJyBvciBzdGFydHMgd2l0aCAi
Rm9vLiIuCiAgIGJvb2wgc2hvdWxkX3J1bigpIGNvbnN0IHsgcmV0dXJuIHNob3VsZF9ydW5fOyB9
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlzIHRlc3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhN
TCByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIHRlc3Qgd2ls
bCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGJvb2wgaXNfcmVwb3J0YWJsZSgpIGNvbnN0
IHsKICAgICAvLyBUaGUgWE1MIHJlcG9ydCBpbmNsdWRlcyB0ZXN0cyBtYXRjaGluZyB0aGUgZmls
dGVyLCBleGNsdWRpbmcgdGhvc2UKICAgICAvLyBydW4gaW4gb3RoZXIgc2hhcmRzLgpAQCAtNzQ5
LDI0ICs3NzQsMTkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0SW5mbyB7CiAgIGZyaWVuZCBjbGFz
cyBpbnRlcm5hbDo6RGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk7CiAjZW5kaWYgIC8vIEdURVNUX0hB
U19ERUFUSF9URVNUCiAgIGZyaWVuZCBjbGFzcyBUZXN0OwotICBmcmllbmQgY2xhc3MgVGVzdENh
c2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3VpdGU7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6
VW5pdFRlc3RJbXBsOwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlN0cmVhbWluZ0xpc3RlbmVy
VGVzdDsKICAgZnJpZW5kIFRlc3RJbmZvKiBpbnRlcm5hbDo6TWFrZUFuZFJlZ2lzdGVyVGVzdElu
Zm8oCi0gICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgIGNvbnN0IGNoYXIq
IG5hbWUsCi0gICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgY29uc3QgY2hhciog
dmFsdWVfcGFyYW0sCi0gICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24s
Ci0gICAgICBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgICBUZXN0OjpT
ZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNl
RnVuYyB0ZWFyX2Rvd25fdGMsCisgICAgICBjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNv
bnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCisgICAgICBjb25zdCBjaGFy
KiB2YWx1ZV9wYXJhbSwgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uLAorICAg
ICAgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkLCBpbnRlcm5hbDo6U2V0VXBUZXN0
U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1
bmMgdGVhcl9kb3duX3RjLAogICAgICAgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSogZmFjdG9y
eSk7CiAKICAgLy8gQ29uc3RydWN0cyBhIFRlc3RJbmZvIG9iamVjdC4gVGhlIG5ld2x5IGNvbnN0
cnVjdGVkIGluc3RhbmNlIGFzc3VtZXMKICAgLy8gb3duZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9i
amVjdC4KLSAgVGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RfY2FzZV9uYW1lLAotICAg
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwKKyAgVGVzdEluZm8oY29uc3Qgc3RkOjpz
dHJpbmcmIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsCiAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwgICAvLyBOVUxMIGlmIG5vdCBhIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0CiAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdmFsdWVfcGFyYW0sICAv
LyBOVUxMIGlmIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdAogICAgICAgICAgICBpbnRl
cm5hbDo6Q29kZUxvY2F0aW9uIGFfY29kZV9sb2NhdGlvbiwKQEAgLTc4MywyNiArODAzLDI5IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBkZWxldGVzIGl0LgogICB2b2lkIFJ1
bigpOwogCisgIC8vIFNraXAgYW5kIHJlY29yZHMgdGhlIHRlc3QgcmVzdWx0IGZvciB0aGlzIG9i
amVjdC4KKyAgdm9pZCBTa2lwKCk7CisKICAgc3RhdGljIHZvaWQgQ2xlYXJUZXN0UmVzdWx0KFRl
c3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICB0ZXN0X2luZm8tPnJlc3VsdF8uQ2xlYXIoKTsKICAg
fQogCiAgIC8vIFRoZXNlIGZpZWxkcyBhcmUgaW1tdXRhYmxlIHByb3BlcnRpZXMgb2YgdGhlIHRl
c3QuCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3RfY2FzZV9uYW1lXzsgICAgIC8vIFRlc3QgY2Fz
ZSBuYW1lCisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87ICAgIC8vIHRlc3Qg
c3VpdGUgbmFtZQogICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lXzsgICAgICAgICAgICAgICAvLyBU
ZXN0IG5hbWUKICAgLy8gTmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhp
cyBpcyBub3QgYSB0eXBlZCBvciBhCiAgIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotICBj
b25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB0eXBlX3BhcmFt
XzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHR5cGVfcGFy
YW1fOwogICAvLyBUZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9y
IE5VTEwgaWYgdGhpcyBpcyBub3QgYQogICAvLyB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0g
IGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHZhbHVlX3Bh
cmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHZhbHVl
X3BhcmFtXzsKICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBsb2NhdGlvbl87Ci0gIGNvbnN0IGlu
dGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87ICAgLy8gSUQgb2YgdGhlIHRlc3QgZml4
dHVyZSBjbGFzcwotICBib29sIHNob3VsZF9ydW5fOyAgICAgICAgICAgICAgICAgLy8gVHJ1ZSBp
ZmYgdGhpcyB0ZXN0IHNob3VsZCBydW4KLSAgYm9vbCBpc19kaXNhYmxlZF87ICAgICAgICAgICAg
ICAgIC8vIFRydWUgaWZmIHRoaXMgdGVzdCBpcyBkaXNhYmxlZAotICBib29sIG1hdGNoZXNfZmls
dGVyXzsgICAgICAgICAgICAgLy8gVHJ1ZSBpZiB0aGlzIHRlc3QgbWF0Y2hlcyB0aGUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZXItc3BlY2lmaWVkIGZpbHRlci4K
LSAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgICAgICAgIC8vIFdpbGwgYmUgcnVuIGluIGFu
b3RoZXIgc2hhcmQuCisgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87
ICAvLyBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzCisgIGJvb2wgc2hvdWxkX3J1bl87ICAg
ICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCBzaG91bGQgcnVuCisgIGJv
b2wgaXNfZGlzYWJsZWRfOyAgICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVz
dCBpcyBkaXNhYmxlZAorICBib29sIG1hdGNoZXNfZmlsdGVyXzsgICAgICAgLy8gVHJ1ZSBpZiB0
aGlzIHRlc3QgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVz
ZXItc3BlY2lmaWVkIGZpbHRlci4KKyAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgIC8vIFdp
bGwgYmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCiAgIGludGVybmFsOjpUZXN0RmFjdG9yeUJhc2Uq
IGNvbnN0IGZhY3RvcnlfOyAgLy8gVGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHRlc3Qgb2JqZWN0CiAK
QEAgLTgxMyw5MCArODM2LDk4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RJbmZvKTsKIH07CiAKLS8vIEEgdGVzdCBj
YXNlLCB3aGljaCBjb25zaXN0cyBvZiBhIHZlY3RvciBvZiBUZXN0SW5mb3MuCisvLyBBIHRlc3Qg
c3VpdGUsIHdoaWNoIGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRlc3RJbmZvcy4KIC8vCi0vLyBU
ZXN0Q2FzZSBpcyBub3QgY29weWFibGUuCi1jbGFzcyBHVEVTVF9BUElfIFRlc3RDYXNlIHsKKy8v
IFRlc3RTdWl0ZSBpcyBub3QgY29weWFibGUuCitjbGFzcyBHVEVTVF9BUElfIFRlc3RTdWl0ZSB7
CiAgcHVibGljOgotICAvLyBDcmVhdGVzIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4K
KyAgLy8gQ3JlYXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogICAvLwotICAv
LyBUZXN0Q2FzZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gIEFsd2F5cyB1
c2UgdGhpcwotICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0Q2FzZSBvYmplY3QuCisg
IC8vIFRlc3RTdWl0ZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gIEFsd2F5
cyB1c2UgdGhpcworICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0U3VpdGUgb2JqZWN0
LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0gIC8vICAgbmFtZTogICAgICAgICBuYW1l
IG9mIHRoZSB0ZXN0IGNhc2UKKyAgLy8gICBuYW1lOiAgICAgICAgIG5hbWUgb2YgdGhlIHRlc3Qg
c3VpdGUKICAgLy8gICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBw
YXJhbWV0ZXIsIG9yIE5VTEwgaWYKICAgLy8gICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRv
IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRlYXJfZG93
bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNh
c2UKLSAgVGVzdENhc2UoY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFt
LAotICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICAg
ICAgIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90Yyk7CisgIC8vICAgc2V0
X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qg
c3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQg
dGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQorICBUZXN0U3VpdGUoY29uc3QgY2hhciogbmFtZSwg
Y29uc3QgY2hhciogYV90eXBlX3BhcmFtLAorICAgICAgICAgICAgaW50ZXJuYWw6OlNldFVwVGVz
dFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICBpbnRlcm5hbDo6VGVhckRvd25UZXN0
U3VpdGVGdW5jIHRlYXJfZG93bl90Yyk7CiAKLSAgLy8gRGVzdHJ1Y3RvciBvZiBUZXN0Q2FzZS4K
LSAgdmlydHVhbCB+VGVzdENhc2UoKTsKKyAgLy8gRGVzdHJ1Y3RvciBvZiBUZXN0U3VpdGUuCisg
IHZpcnR1YWwgflRlc3RTdWl0ZSgpOwogCi0gIC8vIEdldHMgdGhlIG5hbWUgb2YgdGhlIFRlc3RD
YXNlLgorICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBUZXN0U3VpdGUuCiAgIGNvbnN0IGNoYXIq
IG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0cigpOyB9CiAKICAgLy8gUmV0dXJucyB0
aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYQot
ICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgorICAvLyB0eXBlLXBhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZS4KICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSgpIGNvbnN0IHsKLSAgICBp
ZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB0eXBlX3BhcmFtXy0+
Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0g
bnVsbHB0cikgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRy
OwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBjYXNl
IHNob3VsZCBydW4uCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3Qg
c3VpdGUgc2hvdWxkIHJ1bi4KICAgYm9vbCBzaG91bGRfcnVuKCkgY29uc3QgeyByZXR1cm4gc2hv
dWxkX3J1bl87IH0KIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBp
biB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVz
dHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29u
c3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMgaW4gdGhpcyB0ZXN0
IHN1aXRlLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3Q7CisKKyAgLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAgIGludCBmYWls
ZWRfdGVzdF9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxl
ZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGludCBy
ZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhl
IG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAgIGludCBkaXNh
YmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKICAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHRlc3Rz
IHRvIGJlIHByaW50ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGludCByZXBvcnRhYmxlX3Rlc3Rf
Y291bnQoKSBjb25zdDsKIAotICAvLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRl
c3QgY2FzZSB0aGF0IHNob3VsZCBydW4uCisgIC8vIEdldCB0aGUgbnVtYmVyIG9mIHRlc3RzIGlu
IHRoaXMgdGVzdCBzdWl0ZSB0aGF0IHNob3VsZCBydW4uCiAgIGludCB0ZXN0X3RvX3J1bl9jb3Vu
dCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0
IHN1aXRlLgogICBpbnQgdG90YWxfdGVzdF9jb3VudCgpIGNvbnN0OwogCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBwYXNzZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCiAgIGJvb2wgUGFzc2VkKCkgY29uc3QgeyBy
ZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBjYXNl
IGZhaWxlZC4KLSAgYm9vbCBGYWlsZWQoKSBjb25zdCB7IHJldHVybiBmYWlsZWRfdGVzdF9jb3Vu
dCgpID4gMDsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc3Vp
dGUgZmFpbGVkLgorICBib29sIEZhaWxlZCgpIGNvbnN0IHsKKyAgICByZXR1cm4gZmFpbGVkX3Rl
c3RfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCkuRmFpbGVkKCk7CisgIH0KIAog
ICAvLyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUlu
TWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KIAor
ICAvLyBHZXRzIHRoZSB0aW1lIG9mIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0LCBpbiBtcyBmcm9tIHRo
ZSBzdGFydCBvZiB0aGUKKyAgLy8gVU5JWCBlcG9jaC4KKyAgVGltZUluTWlsbGlzIHN0YXJ0X3Rp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0X3RpbWVzdGFtcF87IH0KKwogICAvLyBSZXR1
cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0ZXN0cy4gaSBjYW4gcmFuZ2UgZnJvbSAw
IHRvCiAgIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFu
Z2UsIHJldHVybnMgTlVMTC4KICAgY29uc3QgVGVzdEluZm8qIEdldFRlc3RJbmZvKGludCBpKSBj
b25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IHRoYXQgaG9sZHMgdGVzdCBwcm9w
ZXJ0aWVzIHJlY29yZGVkIGR1cmluZwotICAvLyBleGVjdXRpb24gb2YgU2V0VXBUZXN0Q2FzZSBh
bmQgVGVhckRvd25UZXN0Q2FzZS4KKyAgLy8gZXhlY3V0aW9uIG9mIFNldFVwVGVzdFN1aXRlIGFu
ZCBUZWFyRG93blRlc3RTdWl0ZS4KICAgY29uc3QgVGVzdFJlc3VsdCYgYWRfaG9jX3Rlc3RfcmVz
dWx0KCkgY29uc3QgeyByZXR1cm4gYWRfaG9jX3Rlc3RfcmVzdWx0XzsgfQogCiAgcHJpdmF0ZToK
ICAgZnJpZW5kIGNsYXNzIFRlc3Q7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RJ
bXBsOwogCi0gIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRo
aXMgVGVzdENhc2UuCisgIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9z
IGluIHRoaXMgVGVzdFN1aXRlLgogICBzdGQ6OnZlY3RvcjxUZXN0SW5mbyo+JiB0ZXN0X2luZm9f
bGlzdCgpIHsgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsgfQogCi0gIC8vIEdldHMgdGhlIChpbW11
dGFibGUpIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhpcyBUZXN0Q2FzZS4KKyAgLy8gR2V0cyB0
aGUgKGltbXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZvcyBpbiB0aGlzIFRlc3RTdWl0ZS4KICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiYgdGVzdF9pbmZvX2xpc3QoKSBjb25zdCB7CiAg
ICAgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsKICAgfQpAQCAtOTA4LDUxICs5MzksNjcgQEAgY2xh
c3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIFNldHMgdGhlIHNob3VsZF9ydW4gbWVtYmVy
LgogICB2b2lkIHNldF9zaG91bGRfcnVuKGJvb2wgc2hvdWxkKSB7IHNob3VsZF9ydW5fID0gc2hv
dWxkOyB9CiAKLSAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBk
ZWxldGUgdGhlIFRlc3RJbmZvIHVwb24KLSAgLy8gZGVzdHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNl
IG9iamVjdC4KKyAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBzdWl0ZS4gIFdpbGwg
ZGVsZXRlIHRoZSBUZXN0SW5mbyB1cG9uCisgIC8vIGRlc3RydWN0aW9uIG9mIHRoZSBUZXN0U3Vp
dGUgb2JqZWN0LgogICB2b2lkIEFkZFRlc3RJbmZvKFRlc3RJbmZvICogdGVzdF9pbmZvKTsKIAot
ICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgor
ICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4K
ICAgdm9pZCBDbGVhclJlc3VsdCgpOwogCi0gIC8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwg
dGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSAgc3RhdGljIHZvaWQgQ2xlYXJUZXN0Q2Fz
ZVJlc3VsdChUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAgdGVzdF9jYXNlLT5DbGVhclJlc3Vs
dCgpOworICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoZSBnaXZlbiB0
ZXN0IHN1aXRlLgorICBzdGF0aWMgdm9pZCBDbGVhclRlc3RTdWl0ZVJlc3VsdChUZXN0U3VpdGUq
IHRlc3Rfc3VpdGUpIHsKKyAgICB0ZXN0X3N1aXRlLT5DbGVhclJlc3VsdCgpOwogICB9CiAKLSAg
Ly8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENhc2UuCisgIC8vIFJ1bnMgZXZlcnkgdGVz
dCBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgdm9pZCBSdW4oKTsKIAotICAvLyBSdW5zIFNldFVwVGVz
dENhc2UoKSBmb3IgdGhpcyBUZXN0Q2FzZS4gIFRoaXMgd3JhcHBlciBpcyBuZWVkZWQKLSAgLy8g
Zm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGZyb20gU2V0VXBUZXN0Q2FzZSgpLgotICB2
b2lkIFJ1blNldFVwVGVzdENhc2UoKSB7ICgqc2V0X3VwX3RjXykoKTsgfQorICAvLyBTa2lwcyB0
aGUgZXhlY3V0aW9uIG9mIHRlc3RzIHVuZGVyIHRoaXMgVGVzdFN1aXRlCisgIHZvaWQgU2tpcCgp
OwogCi0gIC8vIFJ1bnMgVGVhckRvd25UZXN0Q2FzZSgpIGZvciB0aGlzIFRlc3RDYXNlLiAgVGhp
cyB3cmFwcGVyIGlzCi0gIC8vIG5lZWRlZCBmb3IgY2F0Y2hpbmcgZXhjZXB0aW9ucyB0aHJvd24g
ZnJvbSBUZWFyRG93blRlc3RDYXNlKCkuCi0gIHZvaWQgUnVuVGVhckRvd25UZXN0Q2FzZSgpIHsg
KCp0ZWFyX2Rvd25fdGNfKSgpOyB9CisgIC8vIFJ1bnMgU2V0VXBUZXN0U3VpdGUoKSBmb3IgdGhp
cyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMgbmVlZGVkCisgIC8vIGZvciBjYXRjaGluZyBl
eGNlcHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdFN1aXRlKCkuCisgIHZvaWQgUnVuU2V0VXBU
ZXN0U3VpdGUoKSB7CisgICAgaWYgKHNldF91cF90Y18gIT0gbnVsbHB0cikgeworICAgICAgKCpz
ZXRfdXBfdGNfKSgpOworICAgIH0KKyAgfQorCisgIC8vIFJ1bnMgVGVhckRvd25UZXN0U3VpdGUo
KSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMKKyAgLy8gbmVlZGVkIGZvciBj
YXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFRlYXJEb3duVGVzdFN1aXRlKCkuCisgIHZv
aWQgUnVuVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgaWYgKHRlYXJfZG93bl90Y18gIT0gbnVs
bHB0cikgeworICAgICAgKCp0ZWFyX2Rvd25fdGNfKSgpOworICAgIH0KKyAgfQogCi0gIC8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGVzdCBwYXNzZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0ZXN0IHBhc3NlZC4KICAgc3RhdGljIGJvb2wgVGVzdFBhc3NlZChjb25zdCBUZXN0SW5m
byogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+c2hvdWxkX3J1bigpICYmIHRl
c3RfaW5mby0+cmVzdWx0KCktPlBhc3NlZCgpOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3Qgc2tp
cHBlZC4KKyAgc3RhdGljIGJvb2wgVGVzdFNraXBwZWQoY29uc3QgVGVzdEluZm8qIHRlc3RfaW5m
bykgeworICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAmJiB0ZXN0X2luZm8tPnJl
c3VsdCgpLT5Ta2lwcGVkKCk7CisgIH0KKworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGVzdCBmYWlsZWQuCiAgIHN0YXRpYyBib29sIFRlc3RGYWlsZWQoY29uc3QgVGVzdEluZm8q
IHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAmJiB0ZXN0
X2luZm8tPnJlc3VsdCgpLT5GYWlsZWQoKTsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIHRlc3QgaXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTAotICAv
LyByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBpcyBk
aXNhYmxlZCBhbmQgd2lsbCBiZSByZXBvcnRlZCBpbgorICAvLyB0aGUgWE1MIHJlcG9ydC4KICAg
c3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGVEaXNhYmxlZChjb25zdCBUZXN0SW5mbyogdGVzdF9p
bmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+aXNfcmVwb3J0YWJsZSgpICYmIHRlc3RfaW5m
by0+aXNfZGlzYWJsZWRfOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0ZXN0IGlzIGRp
c2FibGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGVzdCBpcyBkaXNhYmxl
ZC4KICAgc3RhdGljIGJvb2wgVGVzdERpc2FibGVkKGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8p
IHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19kaXNhYmxlZF87CiAgIH0KIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoaXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0aGUgWE1MIHJlcG9ydC4KKyAg
Ly8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0
aGUgWE1MIHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGUoY29uc3QgVGVzdElu
Zm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3JlcG9ydGFibGUoKTsK
ICAgfQpAQCAtOTYyLDE3ICsxMDA5LDE3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdENhc2Ugewog
ICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKTsKICAgfQogCi0gIC8vIFNodWZmbGVz
IHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGlu
IHRoaXMgdGVzdCBzdWl0ZS4KICAgdm9pZCBTaHVmZmxlVGVzdHMoaW50ZXJuYWw6OlJhbmRvbSog
cmFuZG9tKTsKIAogICAvLyBSZXN0b3JlcyB0aGUgdGVzdCBvcmRlciB0byBiZWZvcmUgdGhlIGZp
cnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKIAotICAvLyBOYW1lIG9mIHRo
ZSB0ZXN0IGNhc2UuCisgIC8vIE5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUuCiAgIHN0ZDo6c3RyaW5n
IG5hbWVfOwogICAvLyBOYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSwgb3IgTlVMTCBpZiB0aGlz
IGlzIG5vdCBhIHR5cGVkIG9yIGEKICAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIGNv
bnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHR5cGVfcGFyYW1f
OworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgOjpzdGQ6OnN0cmluZz4gdHlwZV9wYXJh
bV87CiAgIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVy
LiAgSXQgb3ducyB0aGUKICAgLy8gZWxlbWVudHMgaW4gdGhlIHZlY3Rvci4KICAgc3RkOjp2ZWN0
b3I8VGVzdEluZm8qPiB0ZXN0X2luZm9fbGlzdF87CkBAIC05ODAsMjAgKzEwMjcsMjIgQEAgY2xh
c3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIHNodWZmbGluZyBhbmQgcmVzdG9yaW5nIHRo
ZSB0ZXN0IG9yZGVyLiAgVGhlIGktdGggZWxlbWVudCBpbiB0aGlzCiAgIC8vIHZlY3RvciBpcyB0
aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBpbiB0aGUgc2h1ZmZsZWQgdGVzdCBsaXN0LgogICBz
dGQ6OnZlY3RvcjxpbnQ+IHRlc3RfaW5kaWNlc187Ci0gIC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0
aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlLgotICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVu
YyBzZXRfdXBfdGNfOwotICAvLyBQb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRv
d24gdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3du
X3RjXzsKLSAgLy8gVHJ1ZSBpZmYgYW55IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2Ugc2hvdWxkIHJ1
bi4KKyAgLy8gUG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1
aXRlLgorICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90Y187CisgIC8vIFBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZS4KKyAg
aW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGNfOworICAvLyBUcnVl
IGlmIGFuZCBvbmx5IGlmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBzdWl0ZSBzaG91bGQgcnVuLgog
ICBib29sIHNob3VsZF9ydW5fOworICAvLyBUaGUgc3RhcnQgdGltZSwgaW4gbWlsbGlzZWNvbmRz
IHNpbmNlIFVOSVggRXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFydF90aW1lc3RhbXBfOwogICAv
LyBFbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWlsbGlzIGVsYXBzZWRf
dGltZV87Ci0gIC8vIEhvbGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0
aW9uIG9mIFNldFVwVGVzdENhc2UgYW5kCi0gIC8vIFRlYXJEb3duVGVzdENhc2UuCisgIC8vIEhv
bGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIFNldFVwVGVz
dFN1aXRlIGFuZAorICAvLyBUZWFyRG93blRlc3RTdWl0ZS4KICAgVGVzdFJlc3VsdCBhZF9ob2Nf
dGVzdF9yZXN1bHRfOwogCi0gIC8vIFdlIGRpc2FsbG93IGNvcHlpbmcgVGVzdENhc2VzLgotICBH
VEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RDYXNlKTsKKyAgLy8gV2UgZGlzYWxs
b3cgY29weWluZyBUZXN0U3VpdGVzLgorICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFRlc3RTdWl0ZSk7CiB9OwogCiAvLyBBbiBFbnZpcm9ubWVudCBvYmplY3QgaXMgY2FwYWJsZSBv
ZiBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYW4KQEAgLTEwMjQsNyArMTA3Myw3IEBAIGNs
YXNzIEVudmlyb25tZW50IHsKICAgLy8gSWYgeW91IHNlZSBhbiBlcnJvciBhYm91dCBvdmVycmlk
aW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gb3IKICAgLy8gYWJvdXQgaXQgYmVpbmcgcHJpdmF0
ZSwgeW91IGhhdmUgbWlzLXNwZWxsZWQgU2V0VXAoKSBhcyBTZXR1cCgpLgogICBzdHJ1Y3QgU2V0
dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAge307Ci0gIHZpcnR1YWwgU2V0dXBfc2hvdWxkX2Jl
X3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4gTlVMTDsgfQorICB2aXJ0dWFsIFNldHVw
X3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIH07
CiAKICNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMTA2MCw4ICsxMTA5LDEzIEBAIGNsYXNz
IFRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gRmlyZWQgYWZ0ZXIgZW52aXJvbm1lbnQgc2V0LXVw
IGZvciBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBlbmRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZp
cm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSA9IDA7CiAKLSAgLy8g
RmlyZWQgYmVmb3JlIHRoZSB0ZXN0IGNhc2Ugc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpID0gMDsKKyAgLy8gRmlyZWQgYmVm
b3JlIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0cy4KKyAgdmlydHVhbCB2b2lkIE9uVGVzdFN1aXRlU3Rh
cnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykge30KKworICAvLyAgTGVnYWN5IEFQ
SSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29u
c3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHt9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBGaXJlZCBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRz
LgogICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykg
PSAwOwpAQCAtMTA3NCw4ICsxMTI4LDEzIEBAIGNsYXNzIFRlc3RFdmVudExpc3RlbmVyIHsKICAg
Ly8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgZW5kcy4KICAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChj
b25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7CiAKLSAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRl
c3QgY2FzZSBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlKSA9IDA7CisgIC8vIEZpcmVkIGFmdGVyIHRoZSB0ZXN0IHN1aXRlIGVuZHMu
CisgIHZpcnR1YWwgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9z
dWl0ZSovKSB7fQorCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFp
bGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1
YWwgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQor
I2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKICAgLy8gRmly
ZWQgYmVmb3JlIGVudmlyb25tZW50IHRlYXItZG93biBmb3IgZWFjaCBpdGVyYXRpb24gb2YgdGVz
dHMgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKQEAgLTEwOTgsMjEgKzExNTcsMzAgQEAgY2xh
c3MgVGVzdEV2ZW50TGlzdGVuZXIgewogLy8gYWJvdmUuCiBjbGFzcyBFbXB0eVRlc3RFdmVudExp
c3RlbmVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwg
dm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0
ZXJhdGlvbiovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9u
bWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVh
bCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykge30K
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyov
KSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3Vs
dCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29u
c3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNl
RW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25F
bnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7
fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVz
dCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgLyppdGVyYXRpb24qLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dy
YW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9CisgIHZvaWQgT25UZXN0UHJv
Z3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2
b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7
fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdFN1aXRl
U3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJpZGUge30KKy8vICBM
ZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29u
c3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZW5kaWYgIC8vICBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0
IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdFBhcnRS
ZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3VsdCovKSBvdmVycmlk
ZSB7fQorICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3Zl
cnJpZGUge30KKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9z
dWl0ZSovKSBvdmVycmlkZSB7fQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FT
RUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSov
KSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93
bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBP
blRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lk
IE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRl
IHt9CiB9OwogCiAvLyBUZXN0RXZlbnRMaXN0ZW5lcnMgbGV0cyB1c2VycyBhZGQgbGlzdGVuZXJz
IHRvIHRyYWNrIGV2ZW50cyBpbiBHb29nbGUgVGVzdC4KQEAgLTExNTIsNyArMTIyMCw3IEBAIGNs
YXNzIEdURVNUX0FQSV8gVGVzdEV2ZW50TGlzdGVuZXJzIHsKICAgfQogCiAgcHJpdmF0ZToKLSAg
ZnJpZW5kIGNsYXNzIFRlc3RDYXNlOworICBmcmllbmQgY2xhc3MgVGVzdFN1aXRlOwogICBmcmll
bmQgY2xhc3MgVGVzdEluZm87CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6RGVmYXVsdEdsb2Jh
bFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6Tm9FeGVj
RGVhdGhUZXN0OwpAQCAtMTE5Myw3ICsxMjYxLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0RXZl
bnRMaXN0ZW5lcnMgewogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RFdmVu
dExpc3RlbmVycyk7CiB9OwogCi0vLyBBIFVuaXRUZXN0IGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9m
IFRlc3RDYXNlcy4KKy8vIEEgVW5pdFRlc3QgY29uc2lzdHMgb2YgYSB2ZWN0b3Igb2YgVGVzdFN1
aXRlcy4KIC8vCiAvLyBUaGlzIGlzIGEgc2luZ2xldG9uIGNsYXNzLiAgVGhlIG9ubHkgaW5zdGFu
Y2Ugb2YgVW5pdFRlc3QgaXMKIC8vIGNyZWF0ZWQgd2hlbiBVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KSBpcyBmaXJzdCBjYWxsZWQuICBUaGlzCkBAIC0xMjIyLDEwICsxMjkwLDE0IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyB3YXMgZXhlY3V0ZWQuICBUaGUgVW5pdFRlc3Qgb2Jq
ZWN0IG93bnMgdGhlIHN0cmluZy4KICAgY29uc3QgY2hhciogb3JpZ2luYWxfd29ya2luZ19kaXIo
KSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9yIHRoZSB0ZXN0
IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKyAgLy8gUmV0dXJucyB0aGUgVGVzdFN1aXRlIG9i
amVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLAogICAvLyBvciBOVUxM
IGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAgY29uc3QgVGVzdENhc2UqIGN1cnJlbnRfdGVzdF9j
YXNlKCkgY29uc3QKLSAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7CisgIGNvbnN0
IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QgR1RFU1RfTE9DS19FWENMVURF
RF8obXV0ZXhfKTsKKworLy8gTGVnYWN5IEFQSSBpcyBzdGlsbCBhdmFpbGFibGUgYnV0IGRlcHJl
Y2F0ZWQKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIGNvbnN0
IFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2FzZSgpIGNvbnN0IEdURVNUX0xPQ0tfRVhDTFVERURf
KG11dGV4Xyk7CisjZW5kaWYKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9y
IHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKICAgLy8gb3IgTlVMTCBpZiBubyB0
ZXN0IGlzIHJ1bm5pbmcuCkBAIC0xMjM1LDI5ICsxMzA3LDQwIEBAIGNsYXNzIEdURVNUX0FQSV8g
VW5pdFRlc3QgewogICAvLyBSZXR1cm5zIHRoZSByYW5kb20gc2VlZCB1c2VkIGF0IHRoZSBzdGFy
dCBvZiB0aGUgY3VycmVudCB0ZXN0IHJ1bi4KICAgaW50IHJhbmRvbV9zZWVkKCkgY29uc3Q7CiAK
LSAgLy8gUmV0dXJucyB0aGUgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVz
ZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5zIHRoZSBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogICAvLyB2YWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBhbmQgcmVnaXN0ZXIgdGhlbS4KICAgLy8K
ICAgLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9H
UkFNLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmIHBhcmFtZXRl
cml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgIGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
UmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCiAgICAgICBHVEVTVF9MT0NL
X0VYQ0xVREVEXyhtdXRleF8pOwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVs
IHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0Owor
ICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KKyAgaW50IHN1
Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBj
b25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KKyAgaW50
IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7
CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCisgIGludCB0b3RhbF90
ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0
ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAog
ICAvLyB0aGF0IHNob3VsZCBydW4uCisgIGludCB0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNv
bnN0OworCisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgaW50IHN1Y2Nl
c3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIGludCBmYWlsZWRfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3Q7CisgIGludCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdDsKICAgaW50
IHRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdDsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNz
ZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMuCisgIGludCBza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogICBp
bnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApAQCAtMTI4MywxOSArMTM2NiwyNSBAQCBj
bGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgLy8gR2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBp
biBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdDsKIAot
ICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0
IGNhc2VzIHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5p
dCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAgLy8gcGFzc2VkKS4KICAgYm9v
bCBQYXNzZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3Qg
ZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotICAvLyBvciBzb21ldGhpbmcgb3V0
c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBzdWl0ZQorICAvLyBmYWls
ZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCiAgIGJvb2wgRmFp
bGVkKCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRo
ZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCisg
IC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRlc3Qgc3VpdGVzLiBp
IGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4g
SWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorICBjb25zdCBUZXN0U3Vp
dGUqIEdldFRlc3RTdWl0ZShpbnQgaSkgY29uc3Q7CisKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KICAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGludCBpKSBjb25zdDsK
KyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIFJl
dHVybnMgdGhlIFRlc3RSZXN1bHQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBvbiB0ZXN0IGZhaWx1
cmVzIGFuZAotICAvLyBwcm9wZXJ0aWVzIGxvZ2dlZCBvdXRzaWRlIG9mIGluZGl2aWR1YWwgdGVz
dCBjYXNlcy4KKyAgLy8gcHJvcGVydGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRl
c3Qgc3VpdGVzLgogICBjb25zdCBUZXN0UmVzdWx0JiBhZF9ob2NfdGVzdF9yZXN1bHQoKSBjb25z
dDsKIAogICAvLyBSZXR1cm5zIHRoZSBsaXN0IG9mIGV2ZW50IGxpc3RlbmVycyB0aGF0IGNhbiBi
ZSB1c2VkIHRvIHRyYWNrIGV2ZW50cwpAQCAtMTMyNiwxNSArMTQxNSwxNSBAQCBjbGFzcyBHVEVT
VF9BUElfIFVuaXRUZXN0IHsKICAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7CiAK
ICAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVj
dCB3aGVuIGludm9rZWQgZnJvbQotICAvLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJyZW50IFRlc3RD
YXNlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKLSAgLy8gZnJvbSBTZXRVcFRl
c3RDYXNlIG9yIFRlYXJEb3duVGVzdENhc2UsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0
CisgIC8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3Rf
cmVzdWx0XyB3aGVuIGludm9rZWQKKyAgLy8gZnJvbSBTZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93
blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKICAgLy8gd2hlbiBpbnZv
a2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3BlcnR5
IHdpdGgKICAgLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2lsbCBiZSB1cGRhdGVkLgogICB2
b2lkIFJlY29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRo
ZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0g
IFRlc3RDYXNlKiBHZXRNdXRhYmxlVGVzdENhc2UoaW50IGkpOworICAvLyBHZXRzIHRoZSBpLXRo
IHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAw
IHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRo
YXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgVGVzdFN1aXRlKiBHZXRNdXRhYmxlVGVzdFN1aXRl
KGludCBpKTsKIAogICAvLyBBY2Nlc3NvcnMgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBvYmplY3Qu
CiAgIGludGVybmFsOjpVbml0VGVzdEltcGwqIGltcGwoKSB7IHJldHVybiBpbXBsXzsgfQpAQCAt
MTM0OCw2ICsxNDM3LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdCB7CiAgIGZyaWVuZCBj
bGFzcyBpbnRlcm5hbDo6U3RyZWFtaW5nTGlzdGVuZXJUZXN0OwogICBmcmllbmQgY2xhc3MgaW50
ZXJuYWw6OlVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0SGVscGVyOwogICBmcmllbmQgRW52aXJv
bm1lbnQqIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChFbnZpcm9ubWVudCogZW52KTsKKyAgZnJp
ZW5kIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaW50ZXJuYWw6OkdldElnbm9yZWRQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlcygpOwogICBmcmllbmQgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogaW50ZXJu
YWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBmcmllbmQgdm9pZCBpbnRlcm5hbDo6UmVwb3J0RmFp
bHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgVGVzdFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0
X3R5cGUsCkBAIC0xNDE5LDYgKzE1MDksMTAgQEAgR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVU
ZXN0KGludCogYXJnYywgY2hhcioqIGFyZ3YpOwogLy8gVU5JQ09ERSBtb2RlLgogR1RFU1RfQVBJ
XyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywgd2NoYXJfdCoqIGFyZ3YpOwogCisvLyBU
aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBs
YXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMgbm8gYXJnYy9hcmd2LgorR1RFU1RfQVBJXyB2b2lk
IEluaXRHb29nbGVUZXN0KCk7CisKIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAKIC8vIFNlcGFyYXRl
IHRoZSBlcnJvciBnZW5lcmF0aW5nIGNvZGUgZnJvbSB0aGUgY29kZSBwYXRoIHRvIHJlZHVjZSB0
aGUgc3RhY2sKQEAgLTE0MzUsNiArMTUyOSwxMyBAQCBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVy
RVFGYWlsdXJlKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAg
IGZhbHNlKTsKIH0KIAorLy8gVGhpcyBibG9jayBvZiBjb2RlIGRlZmluZXMgb3BlcmF0b3I9PS8h
PQorLy8gdG8gYmxvY2sgbGV4aWNhbCBzY29wZSBsb29rdXAuCisvLyBJdCBwcmV2ZW50cyB1c2lu
ZyBpbnZhbGlkIG9wZXJhdG9yPT0vIT0gZGVmaW5lZCBhdCBuYW1lc3BhY2Ugc2NvcGUuCitzdHJ1
Y3QgZmFrZXR5cGUge307CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGZha2V0eXBlLCBmYWtldHlw
ZSkgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShmYWtldHlwZSwgZmFr
ZXR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKIC8vIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtB
U1NFUlR8RVhQRUNUfV9FUS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiBB
c3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCkBA
IC0xNDQ4LDI2ICsxNTQ5LDE3IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJFUShjb25zdCBj
aGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgcmV0dXJuIENtcEhlbHBlckVRRmFpbHVyZShsaHNfZXhw
cmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKIH0KIAotLy8gV2l0aCB0aGlzIG92
ZXJsb2FkZWQgdmVyc2lvbiwgd2UgYWxsb3cgYW5vbnltb3VzIGVudW1zIHRvIGJlIHVzZWQKLS8v
IGluIHtBU1NFUlR8RVhQRUNUfV9FUSB3aGVuIGNvbXBpbGVkIHdpdGggZ2NjIDQsIGFzIGFub255
bW91cyBlbnVtcwotLy8gY2FuIGJlIGltcGxpY2l0bHkgY2FzdCB0byBCaWdnZXN0SW50LgotR1RF
U1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hhciogbGhzX2V4cHJl
c3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QmlnZ2VzdEludCByaHMpOwotCi0vLyBUaGUgaGVscGVyIGNsYXNzIGZvciB7QVNTRVJUfEVYUEVD
VH1fRVEuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8vIGxoc19pc19udWxsX2xpdGVyYWwgaXMg
dHJ1ZSBpZmYgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgpCi0vLyBpcyBhIG51bGwg
cG9pbnRlciBsaXRlcmFsLiAgVGhlIGZvbGxvd2luZyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlz
Ci0vLyBmb3IgbGhzX2lzX251bGxfbGl0ZXJhbCBiZWluZyBmYWxzZS4KLXRlbXBsYXRlIDxib29s
IGxoc19pc19udWxsX2xpdGVyYWw+CiBjbGFzcyBFcUhlbHBlciB7CiAgcHVibGljOgogICAvLyBU
aGlzIHRlbXBsYXRpemVkIHZlcnNpb24gaXMgZm9yIHRoZSBnZW5lcmFsIGNhc2UuCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgIHRlbXBsYXRlIDwKKyAgICAgIHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwKKyAgICAgIC8vIERpc2FibGUgdGhpcyBvdmVybG9hZCBmb3Ig
Y2FzZXMgd2hlcmUgb25lIGFyZ3VtZW50IGlzIGEgcG9pbnRlcgorICAgICAgLy8gYW5kIHRoZSBv
dGhlciBpcyB0aGUgbnVsbCBwb2ludGVyIGNvbnN0YW50LgorICAgICAgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8IXN0ZDo6aXNfaW50ZWdyYWw8VDE+Ojp2YWx1ZSB8fAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIXN0ZDo6aXNfcG9pbnRlcjxUMj46OnZhbHVlPjo6dHlwZSogPSBudWxs
cHRyPgogICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBhcmUoY29uc3QgY2hhciogbGhzX2V4
cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
aHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQx
JiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNf
ZXhwcmVzc2lvbiwgY29uc3QgVDEmIGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFQyJiByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJlc3Np
b24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KQEAgLTE0ODQsNDkgKzE1NzYsMTUg
QEAgY2xhc3MgRXFIZWxwZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmln
Z2VzdEludCByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJlc3Npb24sIHJo
c19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KLX07Ci0KLS8vIFRoaXMgc3BlY2lhbGl6YXRp
b24gaXMgdXNlZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCB0byBBU1NFUlRfRVEoKQotLy8gaXMg
YSBudWxsIHBvaW50ZXIgbGl0ZXJhbCwgbGlrZSBOVUxMLCBmYWxzZSwgb3IgMC4KLXRlbXBsYXRl
IDw+Ci1jbGFzcyBFcUhlbHBlcjx0cnVlPiB7Ci0gcHVibGljOgotICAvLyBXZSBkZWZpbmUgdHdv
IG92ZXJsb2FkZWQgdmVyc2lvbnMgb2YgQ29tcGFyZSgpLiAgVGhlIGZpcnN0Ci0gIC8vIHZlcnNp
b24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgp
IGlzCi0gIC8vIE5PVCBhIHBvaW50ZXIsIGUuZy4gQVNTRVJUX0VRKDAsIEFuSW50RnVuY3Rpb24o
KSkgb3IKLSAgLy8gRVhQRUNUX0VRKGZhbHNlLCBhX2Jvb2wpLgotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyPgotICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBhcmUoCi0g
ICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgIGNvbnN0IGNoYXIqIHJoc19l
eHByZXNzaW9uLAotICAgICAgY29uc3QgVDEmIGxocywKLSAgICAgIGNvbnN0IFQyJiByaHMsCi0g
ICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgcHJldmVudHMgdGhpcyBvdmVybG9hZCBmcm9tIGJl
aW5nIGNvbnNpZGVyZWQgaWYgVDIKLSAgICAgIC8vIGlzIG5vdCBhIHBvaW50ZXIgdHlwZS4gIFdl
IG5lZWQgdGhpcyBiZWNhdXNlIEFTU0VSVF9FUShOVUxMLCBteV9wdHIpCi0gICAgICAvLyBleHBh
bmRzIHRvIENvbXBhcmUoIiIsICIiLCBOVUxMLCBteV9wdHIpLCB3aGljaCByZXF1aXJlcyBhIGNv
bnZlcnNpb24KLSAgICAgIC8vIHRvIG1hdGNoIHRoZSBTZWNyZXQqIGluIHRoZSBvdGhlciBvdmVy
bG9hZCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UKLSAgICAgIC8vIHRoaXMgdGVtcGxhdGUg
bWF0Y2ggYmV0dGVyLgotICAgICAgdHlwZW5hbWUgRW5hYmxlSWY8IWlzX3BvaW50ZXI8VDI+Ojp2
YWx1ZT46OnR5cGUqID0gMCkgewotICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lv
biwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAgfQogCi0gIC8vIFRoaXMgdmVyc2lvbiB3
aWxsIGJlIHBpY2tlZCB3aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gQVNTRVJUX0VRKCkgaXMg
YQotICAvLyBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUShOVUxMLCBhX3BvaW50ZXIpLgogICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21wYXJlKAotICAg
ICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICBjb25zdCBjaGFyKiByaHNfZXhw
cmVzc2lvbiwKLSAgICAgIC8vIFdlIHVzZWQgdG8gaGF2ZSBhIHNlY29uZCB0ZW1wbGF0ZSBwYXJh
bWV0ZXIgaW5zdGVhZCBvZiBTZWNyZXQqLiAgVGhhdAotICAgICAgLy8gdGVtcGxhdGUgcGFyYW1l
dGVyIHdvdWxkIGRlZHVjZSB0byAnbG9uZycsIG1ha2luZyB0aGlzIGEgYmV0dGVyIG1hdGNoCi0g
ICAgICAvLyB0aGFuIHRoZSBmaXJzdCBvdmVybG9hZCBldmVuIHdpdGhvdXQgdGhlIGZpcnN0IG92
ZXJsb2FkJ3MgRW5hYmxlSWYuCi0gICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBnY2Mgd2l0aCAtV2Nv
bnZlcnNpb24tbnVsbCB3YXJucyB3aGVuICJwYXNzaW5nIE5VTEwgdG8KLSAgICAgIC8vIG5vbi1w
b2ludGVyIGFyZ3VtZW50IiAoZXZlbiBhIGRlZHVjZWQgaW50ZWdyYWwgYXJndW1lbnQpLCBzbyB0
aGUgb2xkCi0gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYXVzZWQgd2FybmluZ3MgaW4gdXNlciBj
b2RlLgotICAgICAgU2VjcmV0KiAvKiBsaHMgKE5VTEwpICovLAotICAgICAgVCogcmhzKSB7Cisg
ICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwgY29uc3QgY2hhciogcmhzX2V4cHJlc3Np
b24sCisgICAgICAvLyBIYW5kbGUgY2FzZXMgd2hlcmUgJzAnIGlzIHVzZWQgYXMgYSBudWxsIHBv
aW50ZXIgbGl0ZXJhbC4KKyAgICAgIHN0ZDo6bnVsbHB0cl90IC8qIGxocyAqLywgVCogcmhzKSB7
CiAgICAgLy8gV2UgYWxyZWFkeSBrbm93IHRoYXQgJ2xocycgaXMgYSBudWxsIHBvaW50ZXIuCi0g
ICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNzaW9uLCByaHNfZXhwcmVzc2lvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VCo+KE5VTEwpLCByaHMpOworICAgIHJl
dHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIHN0YXRpY19j
YXN0PFQqPihudWxscHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmhzKTsKICAgfQogfTsK
IApAQCAtMTU0NywxMSArMTYwNSw2IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJPcEZhaWx1
cmUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogLy8gQVNTRVJUXz8/IGFu
ZCBFWFBFQ1RfPz8uICBJdCBpcyBoZXJlIGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUKIC8v
IG9mIHNpbWlsYXIgY29kZS4KIC8vCi0vLyBGb3IgZWFjaCB0ZW1wbGF0aXplZCBoZWxwZXIgZnVu
Y3Rpb24sIHdlIGFsc28gZGVmaW5lIGFuIG92ZXJsb2FkZWQKLS8vIHZlcnNpb24gZm9yIEJpZ2dl
c3RJbnQgaW4gb3JkZXIgdG8gcmVkdWNlIGNvZGUgYmxvYXQgYW5kIGFsbG93Ci0vLyBhbm9ueW1v
dXMgZW51bXMgdG8gYmUgdXNlZCB3aXRoIHtBU1NFUlR8RVhQRUNUfV8/PyB3aGVuIGNvbXBpbGVk
Ci0vLyB3aXRoIGdjYyA0LgotLy8KIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9U
IFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KIAogI2RlZmluZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJf
KG9wX25hbWUsIG9wKVwKQEAgLTE1NjMsMjIgKzE2MTYsMjAgQEAgQXNzZXJ0aW9uUmVzdWx0IENt
cEhlbHBlciMjb3BfbmFtZShjb25zdCBjaGFyKiBleHByMSwgY29uc3QgY2hhciogZXhwcjIsIFwK
ICAgfSBlbHNlIHtcCiAgICAgcmV0dXJuIENtcEhlbHBlck9wRmFpbHVyZShleHByMSwgZXhwcjIs
IHZhbDEsIHZhbDIsICNvcCk7XAogICB9XAotfVwKLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0
IENtcEhlbHBlciMjb3BfbmFtZShcCi0gICAgY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIq
IGV4cHIyLCBCaWdnZXN0SW50IHZhbDEsIEJpZ2dlc3RJbnQgdmFsMikKK30KIAogLy8gSU5URVJO
QUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgogCiAvLyBJ
bXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9ORQotR1RF
U1RfSU1QTF9DTVBfSEVMUEVSXyhORSwgIT0pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhORSwg
IT0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNU
fV9MRQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pOworR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMRSwgPD0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9MVAotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMVCwgPCk7CitHVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKExULCA8KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB7QVNTRVJUfEVYUEVDVH1fR0UKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KTsKK0dU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1
bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1QKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR1Qs
ID4pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPikKIAogI3VuZGVmIEdURVNUX0lNUExf
Q01QX0hFTFBFUl8KIApAQCAtMTc3NCwxMyArMTgyNSwxMyBAQCBjbGFzcyBHVEVTVF9BUElfIEFz
c2VydEhlbHBlciB7CiAvLyAgIEZvb1Rlc3QoKSB7CiAvLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJh
bSgpIGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB+Rm9vVGVzdCgpIHsKKy8vICAgfkZvb1Rl
c3QoKSBvdmVycmlkZSB7CiAvLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJhbSgpIGhlcmUuCiAvLyAg
IH0KLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworLy8gICB2b2lkIFNldFVwKCkgb3ZlcnJp
ZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8gICB9Ci0vLyAgIHZp
cnR1YWwgdm9pZCBUZWFyRG93biB7CisvLyAgIHZvaWQgVGVhckRvd24gb3ZlcnJpZGUgewogLy8g
ICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8gICB9CiAvLyB9OwpAQCAtMTc4OSw3
ICsxODQwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRIZWxwZXIgewogLy8gICBGb28gZm9v
OwogLy8gICBBU1NFUlRfVFJVRShmb28uRG9lc0JhcihHZXRQYXJhbSgpKSk7CiAvLyB9Ci0vLyBJ
TlNUQU5USUFURV9URVNUX0NBU0VfUChPbmVUb1RlblJhbmdlLCBGb29UZXN0LCA6OnRlc3Rpbmc6
OlJhbmdlKDEsIDEwKSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoT25lVG9UZW5SYW5n
ZSwgRm9vVGVzdCwgOjp0ZXN0aW5nOjpSYW5nZSgxLCAxMCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KIGNsYXNzIFdpdGhQYXJhbUludGVyZmFjZSB7CkBAIC0xNzk4LDEyICsxODQ5LDkgQEAg
Y2xhc3MgV2l0aFBhcmFtSW50ZXJmYWNlIHsKICAgdmlydHVhbCB+V2l0aFBhcmFtSW50ZXJmYWNl
KCkge30KIAogICAvLyBUaGUgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWUuIElzIGFsc28gYXZhaWxh
YmxlIGluIHRoZSB0ZXN0IGZpeHR1cmUncwotICAvLyBjb25zdHJ1Y3Rvci4gVGhpcyBtZW1iZXIg
ZnVuY3Rpb24gaXMgbm9uLXN0YXRpYywgZXZlbiB0aG91Z2ggaXQgb25seQotICAvLyByZWZlcmVu
Y2VzIHN0YXRpYyBkYXRhLCB0byByZWR1Y2UgdGhlIG9wcG9ydHVuaXR5IGZvciBpbmNvcnJlY3Qg
dXNlcwotICAvLyBsaWtlIHdyaXRpbmcgJ1dpdGhQYXJhbUludGVyZmFjZTxib29sPjo6R2V0UGFy
YW0oKScgZm9yIGEgdGVzdCB0aGF0Ci0gIC8vIHVzZXMgYSBmaXh0dXJlIHdob3NlIHBhcmFtZXRl
ciB0eXBlIGlzIGludC4KLSAgY29uc3QgUGFyYW1UeXBlJiBHZXRQYXJhbSgpIGNvbnN0IHsKLSAg
ICBHVEVTVF9DSEVDS18ocGFyYW1ldGVyXyAhPSBOVUxMKQorICAvLyBjb25zdHJ1Y3Rvci4KKyAg
c3RhdGljIGNvbnN0IFBhcmFtVHlwZSYgR2V0UGFyYW0oKSB7CisgICAgR1RFU1RfQ0hFQ0tfKHBh
cmFtZXRlcl8gIT0gbnVsbHB0cikKICAgICAgICAgPDwgIkdldFBhcmFtKCkgY2FuIG9ubHkgYmUg
Y2FsbGVkIGluc2lkZSBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdCAiCiAgICAgICAgIDw8ICIt
LSBkaWQgeW91IGludGVuZCB0byB3cml0ZSBURVNUX1AgaW5zdGVhZCBvZiBURVNUX0Y/IjsKICAg
ICByZXR1cm4gKnBhcmFtZXRlcl87CkBAIC0xODI0LDcgKzE4NzIsNyBAQCBjbGFzcyBXaXRoUGFy
YW1JbnRlcmZhY2UgewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jb25zdCBUKiBXaXRo
UGFyYW1JbnRlcmZhY2U8VD46OnBhcmFtZXRlcl8gPSBOVUxMOworY29uc3QgVCogV2l0aFBhcmFt
SW50ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gbnVsbHB0cjsKIAogLy8gTW9zdCB2YWx1ZS1wYXJh
bWV0ZXJpemVkIGNsYXNzZXMgY2FuIGlnbm9yZSB0aGUgZXhpc3RlbmNlIG9mCiAvLyBXaXRoUGFy
YW1JbnRlcmZhY2UsIGFuZCBjYW4ganVzdCBpbmhlcml0IGZyb20gOjp0ZXN0aW5nOjpUZXN0V2l0
aFBhcmFtLgpAQCAtMTgzNSw2ICsxODgzLDExIEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJs
aWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAKIC8vIE1hY3JvcyBmb3Ig
aW5kaWNhdGluZyBzdWNjZXNzL2ZhaWx1cmUgaW4gdGVzdCBjb2RlLgogCisvLyBTa2lwcyB0ZXN0
IGluIHJ1bnRpbWUuCisvLyBTa2lwcGluZyB0ZXN0IGFib3J0cyBjdXJyZW50IGZ1bmN0aW9uLgor
Ly8gU2tpcHBlZCB0ZXN0cyBhcmUgbmVpdGhlciBzdWNjZXNzZnVsIG5vciBmYWlsZWQuCisjZGVm
aW5lIEdURVNUX1NLSVAoKSBHVEVTVF9TS0lQXygiIikKKwogLy8gQUREX0ZBSUxVUkUgdW5jb25k
aXRpb25hbGx5IGFkZHMgYSBmYWlsdXJlIHRvIHRoZSBjdXJyZW50IHRlc3QuCiAvLyBTVUNDRUVE
IGdlbmVyYXRlcyBhIHN1Y2Nlc3MgLSBpdCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgbWFrZSB0aGUK
IC8vIGN1cnJlbnQgdGVzdCBzdWNjZXNzZnVsLCBhcyBhIHRlc3QgaXMgb25seSBzdWNjZXNzZnVs
IHdoZW4gaXQgaGFzCkBAIC0xODY0LDYgKzE5MTcsMTEgQEAgY2xhc3MgVGVzdFdpdGhQYXJhbSA6
IHB1YmxpYyBUZXN0LCBwdWJsaWMgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+IHsKIC8vIEdlbmVyYXRl
cyBhIGZhdGFsIGZhaWx1cmUgd2l0aCBhIGdlbmVyaWMgbWVzc2FnZS4KICNkZWZpbmUgR1RFU1Rf
RkFJTCgpIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKCJGYWlsZWQiKQogCisvLyBMaWtlIEdURVNUX0ZB
SUwoKSwgYnV0IGF0IHRoZSBnaXZlbiBzb3VyY2UgZmlsZSBsb2NhdGlvbi4KKyNkZWZpbmUgR1RF
U1RfRkFJTF9BVChmaWxlLCBsaW5lKSAgICAgICAgIFwKKyAgR1RFU1RfTUVTU0FHRV9BVF8oZmls
ZSwgbGluZSwgIkZhaWxlZCIsIFwKKyAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpUZXN0
UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkKKwogLy8gRGVmaW5lIHRoaXMgbWFjcm8gdG8gMSB0
byBvbWl0IHRoZSBkZWZpbml0aW9uIG9mIEZBSUwoKSwgd2hpY2ggaXMgYQogLy8gZ2VuZXJpYyBu
YW1lIGFuZCBjbGFzaGVzIHdpdGggc29tZSBvdGhlciBsaWJyYXJpZXMuCiAjaWYgIUdURVNUX0RP
TlRfREVGSU5FX0ZBSUwKQEAgLTE5NjQsOSArMjAyMiw3IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0g
OiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAvLyAgIEFTU0VS
VF9HVChyZWNvcmRzLnNpemUoKSwgMCkgPDwgIlRoZXJlIGlzIG5vIHJlY29yZCBsZWZ0LiI7CiAK
ICNkZWZpbmUgRVhQRUNUX0VRKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6
OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAgIEVxSGVscGVyPEdU
RVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAgICAgICAgICAgICAg
ICAgICAgdmFsMSwgdmFsMikKKyAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVy
bmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUgRVhQRUNUX05FKHZh
bDEsIHZhbDIpIFwKICAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpD
bXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgRVhQRUNUX0xFKHZhbDEsIHZhbDIpIFwK
QEAgLTE5NzksOSArMjAzNSw3IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwg
cHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0
ZXN0aW5nOjppbnRlcm5hbDo6Q21wSGVscGVyR1QsIHZhbDEsIHZhbDIpCiAKICNkZWZpbmUgR1RF
U1RfQVNTRVJUX0VRKHZhbDEsIHZhbDIpIFwKLSAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rp
bmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAgIEVxSGVscGVyPEdURVNUX0lT
X05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAgICAgICAgICAgICAgICAgICAg
dmFsMSwgdmFsMikKKyAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpF
cUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1RfQVNTRVJUX05FKHZh
bDEsIHZhbDIpIFwKICAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpD
bXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1RfQVNTRVJUX0xFKHZhbDEsIHZh
bDIpIFwKQEAgLTIxNzIsMTIgKzIyMjYsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFNjb3BlZFRyYWNl
IHsKICAgICBQdXNoVHJhY2UoZmlsZSwgbGluZSwgbWVzc2FnZSA/IG1lc3NhZ2UgOiAiKG51bGwp
Iik7CiAgIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0gIFNjb3BlZFRyYWNlKGNv
bnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCA6OnN0cmluZyYgbWVzc2FnZSkgewotICAg
IFB1c2hUcmFjZShmaWxlLCBsaW5lLCBtZXNzYWdlKTsKLSAgfQotI2VuZGlmCi0KICAgU2NvcGVk
VHJhY2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlKSB7CiAgICAgUHVzaFRyYWNlKGZpbGUsIGxpbmUsIG1lc3NhZ2UpOwogICB9CkBAIC0yMjE1
LDEwICsyMjYzLDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRUcmFjZSB7CiAgIDo6dGVzdGlu
Zzo6U2NvcGVkVHJhY2UgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF90cmFjZV8sIF9fTElORV9f
KShcCiAgICAgX19GSUxFX18sIF9fTElORV9fLCAobWVzc2FnZSkpCiAKLQogLy8gQ29tcGlsZS10
aW1lIGFzc2VydGlvbiBmb3IgdHlwZSBlcXVhbGl0eS4KLS8vIFN0YXRpY0Fzc2VydFR5cGVFcTx0
eXBlMSwgdHlwZTI+KCkgY29tcGlsZXMgaWZmIHR5cGUxIGFuZCB0eXBlMiBhcmUKLS8vIHRoZSBz
YW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCisvLyBT
dGF0aWNBc3NlcnRUeXBlRXE8dHlwZTEsIHR5cGUyPigpIGNvbXBpbGVzIGlmIGFuZCBvbmx5IGlm
IHR5cGUxIGFuZCB0eXBlMgorLy8gYXJlIHRoZSBzYW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0
dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCiAvLwogLy8gSW5zdGVhZCBvZiBtYWtpbmcgU3RhdGlj
QXNzZXJ0VHlwZUVxIGEgY2xhc3MgdGVtcGxhdGUsIHdlIG1ha2UgaXQgYQogLy8gZnVuY3Rpb24g
dGVtcGxhdGUgdGhhdCBpbnZva2VzIGEgaGVscGVyIGNsYXNzIHRlbXBsYXRlLiAgVGhpcwpAQCAt
MjI0NywxOCArMjI5NCwxOCBAQCBjbGFzcyBHVEVTVF9BUElfIFNjb3BlZFRyYWNlIHsKIC8vCiAv
LyB0byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMj4KLWJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewotICAodm9pZClpbnRlcm5hbDo6
U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQxLCBUMj4oKTsKK2NvbnN0ZXhwciBib29sIFN0YXRp
Y0Fzc2VydFR5cGVFcSgpIG5vZXhjZXB0IHsKKyAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8
VDEsIFQyPjo6dmFsdWUsICJUMSBhbmQgVDIgYXJlIG5vdCB0aGUgc2FtZSB0eXBlIik7CiAgIHJl
dHVybiB0cnVlOwogfQogCiAvLyBEZWZpbmVzIGEgdGVzdC4KIC8vCi0vLyBUaGUgZmlyc3QgcGFy
YW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UsIGFuZCB0aGUgc2Vjb25kCi0vLyBw
YXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IGNhc2UuCisv
LyBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlLCBhbmQg
dGhlIHNlY29uZAorLy8gcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHdpdGhpbiB0
aGUgdGVzdCBzdWl0ZS4KIC8vCi0vLyBUaGUgY29udmVudGlvbiBpcyB0byBlbmQgdGhlIHRlc3Qg
Y2FzZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCi0vLyBleGFtcGxlLCBhIHRlc3QgY2FzZSBmb3Ig
dGhlIEZvbyBjbGFzcyBjYW4gYmUgbmFtZWQgRm9vVGVzdC4KKy8vIFRoZSBjb252ZW50aW9uIGlz
IHRvIGVuZCB0aGUgdGVzdCBzdWl0ZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCisvLyBleGFtcGxl
LCBhIHRlc3Qgc3VpdGUgZm9yIHRoZSBGb28gY2xhc3MgY2FuIGJlIG5hbWVkIEZvb1Rlc3QuCiAv
LwogLy8gVGVzdCBjb2RlIHNob3VsZCBhcHBlYXIgYmV0d2VlbiBicmFjZXMgYWZ0ZXIgYW4gaW52
b2NhdGlvbiBvZgogLy8gdGhpcyBtYWNyby4gIEV4YW1wbGU6CkBAIC0yMjc3LDI4ICsyMzI0LDI4
IEBAIGJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewogLy8gY29kZS4gIEdldFRlc3RUeXBlSWQo
KSBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUKIC8vIHZhbHVlLCBhcyBp
dCBhbHdheXMgY2FsbHMgR2V0VHlwZUlkPD4oKSBmcm9tIHRoZSBHb29nbGUgVGVzdAogLy8gZnJh
bWV3b3JrLgotI2RlZmluZSBHVEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpXAot
ICBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBcCi0gICAgICAgICAgICAg
IDo6dGVzdGluZzo6VGVzdCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJZCgpKQor
I2RlZmluZSBHVEVTVF9URVNUKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAg
ICBcCisgIEdURVNUX1RFU1RfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lLCA6OnRlc3Rpbmc6
OlRlc3QsIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJ
ZCgpKQogCiAvLyBEZWZpbmUgdGhpcyBtYWNybyB0byAxIHRvIG9taXQgdGhlIGRlZmluaXRpb24g
b2YgVEVTVCgpLCB3aGljaAogLy8gaXMgYSBnZW5lcmljIG5hbWUgYW5kIGNsYXNoZXMgd2l0aCBz
b21lIG90aGVyIGxpYnJhcmllcy4KICNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfVEVTVAotIyBkZWZp
bmUgVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBHVEVTVF9URVNUKHRlc3RfY2FzZV9u
YW1lLCB0ZXN0X25hbWUpCisjZGVmaW5lIFRFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUp
IEdURVNUX1RFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpCiAjZW5kaWYKIAogLy8gRGVm
aW5lcyBhIHRlc3QgdGhhdCB1c2VzIGEgdGVzdCBmaXh0dXJlLgogLy8KIC8vIFRoZSBmaXJzdCBw
YXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcywgd2hpY2gKLS8v
IGFsc28gZG91YmxlcyBhcyB0aGUgdGVzdCBjYXNlIG5hbWUuICBUaGUgc2Vjb25kIHBhcmFtZXRl
ciBpcyB0aGUKLS8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IGNhc2UuCisvLyBh
bHNvIGRvdWJsZXMgYXMgdGhlIHRlc3Qgc3VpdGUgbmFtZS4gIFRoZSBzZWNvbmQgcGFyYW1ldGVy
IGlzIHRoZQorLy8gbmFtZSBvZiB0aGUgdGVzdCB3aXRoaW4gdGhlIHRlc3Qgc3VpdGUuCiAvLwog
Ly8gQSB0ZXN0IGZpeHR1cmUgY2xhc3MgbXVzdCBiZSBkZWNsYXJlZCBlYXJsaWVyLiAgVGhlIHVz
ZXIgc2hvdWxkIHB1dAogLy8gdGhlIHRlc3QgY29kZSBiZXR3ZWVuIGJyYWNlcyBhZnRlciB1c2lu
ZyB0aGlzIG1hY3JvLiAgRXhhbXBsZToKIC8vCiAvLyAgIGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7CiAvLyAgICBwcm90ZWN0ZWQ6Ci0vLyAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkgeyBiXy5BZGRFbGVtZW50KDMpOyB9CisvLyAgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsgYl8uQWRkRWxlbWVudCgzKTsgfQogLy8KIC8vICAgICBGb28gYV87CiAvLyAgICAgRm9vIGJf
OwpAQCAtMjMxMiwxMCArMjM1OSwxMyBAQCBib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIHsKIC8v
ICAgICBFWFBFQ1RfRVEoYV8uc2l6ZSgpLCAwKTsKIC8vICAgICBFWFBFQ1RfRVEoYl8uc2l6ZSgp
LCAxKTsKIC8vICAgfQotCisvLworLy8gR09PR0xFVEVTVF9DTTAwMTEgRE8gTk9UIERFTEVURQor
I2lmICFHVEVTVF9ET05UX0RFRklORV9URVNUCiAjZGVmaW5lIFRFU1RfRih0ZXN0X2ZpeHR1cmUs
IHRlc3RfbmFtZSlcCiAgIEdURVNUX1RFU1RfKHRlc3RfZml4dHVyZSwgdGVzdF9uYW1lLCB0ZXN0
X2ZpeHR1cmUsIFwKICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VHlwZUlk
PHRlc3RfZml4dHVyZT4oKSkKKyNlbmRpZiAgLy8gIUdURVNUX0RPTlRfREVGSU5FX1RFU1QKIAog
Ly8gUmV0dXJucyBhIHBhdGggdG8gdGVtcG9yYXJ5IGRpcmVjdG9yeS4KIC8vIFRyaWVzIHRvIGRl
dGVybWluZSBhbiBhcHByb3ByaWF0ZSBkaXJlY3RvcnkgZm9yIHRoZSBwbGF0Zm9ybS4KQEAgLTIz
MjUsNiArMjM3NSw4NiBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIFRlbXBEaXIoKTsKICMgIHBy
YWdtYSB3YXJuaW5nKHBvcCkKICNlbmRpZgogCisvLyBEeW5hbWljYWxseSByZWdpc3RlcnMgYSB0
ZXN0IHdpdGggdGhlIGZyYW1ld29yay4KKy8vCisvLyBUaGlzIGlzIGFuIGFkdmFuY2VkIEFQSSBv
bmx5IHRvIGJlIHVzZWQgd2hlbiB0aGUgYFRFU1RgIG1hY3JvcyBhcmUKKy8vIGluc3VmZmljaWVu
dC4gVGhlIG1hY3JvcyBzaG91bGQgYmUgcHJlZmVycmVkIHdoZW4gcG9zc2libGUsIGFzIHRoZXkg
YXZvaWQKKy8vIG1vc3Qgb2YgdGhlIGNvbXBsZXhpdHkgb2YgY2FsbGluZyB0aGlzIGZ1bmN0aW9u
LgorLy8KKy8vIFRoZSBgZmFjdG9yeWAgYXJndW1lbnQgaXMgYSBmYWN0b3J5IGNhbGxhYmxlICht
b3ZlLWNvbnN0cnVjdGlibGUpIG9iamVjdCBvcgorLy8gZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNy
ZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRlc3Qgb2JqZWN0LiBJdAorLy8gaGFuZGxlcyBv
d25lcnNoaXAgdG8gdGhlIGNhbGxlci4gVGhlIHNpZ25hdHVyZSBvZiB0aGUgY2FsbGFibGUgaXMK
Ky8vIGBGaXh0dXJlKigpYCwgd2hlcmUgYEZpeHR1cmVgIGlzIHRoZSB0ZXN0IGZpeHR1cmUgY2xh
c3MgZm9yIHRoZSB0ZXN0LiBBbGwKKy8vIHRlc3RzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2FtZSBg
dGVzdF9zdWl0ZV9uYW1lYCBtdXN0IHJldHVybiB0aGUgc2FtZQorLy8gZml4dHVyZSB0eXBlLiBU
aGlzIGlzIGNoZWNrZWQgYXQgcnVudGltZS4KKy8vCisvLyBUaGUgZnJhbWV3b3JrIHdpbGwgaW5m
ZXIgdGhlIGZpeHR1cmUgY2xhc3MgZnJvbSB0aGUgZmFjdG9yeSBhbmQgd2lsbCBjYWxsCisvLyB0
aGUgYFNldFVwVGVzdFN1aXRlYCBhbmQgYFRlYXJEb3duVGVzdFN1aXRlYCBmb3IgaXQuCisvLwor
Ly8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGBSVU5fQUxMX1RFU1RTKClgIGlzIGludm9rZWQsIG90
aGVyd2lzZSBiZWhhdmlvciBpcworLy8gdW5kZWZpbmVkLgorLy8KKy8vIFVzZSBjYXNlIGV4YW1w
bGU6CisvLworLy8gY2xhc3MgTXlGaXh0dXJlIDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Cisv
LyAgcHVibGljOgorLy8gICAvLyBBbGwgb2YgdGhlc2Ugb3B0aW9uYWwsIGp1c3QgbGlrZSBpbiBy
ZWd1bGFyIG1hY3JvIHVzYWdlLgorLy8gICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0ZSgpIHsg
Li4uIH0KKy8vICAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7IC4uLiB9CisvLyAg
IHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IC4uLiB9CisvLyAgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7IC4uLiB9CisvLyB9OworLy8KKy8vIGNsYXNzIE15VGVzdCA6IHB1YmxpYyBNeUZpeHR1
cmUgeworLy8gIHB1YmxpYzoKKy8vICAgZXhwbGljaXQgTXlUZXN0KGludCBkYXRhKSA6IGRhdGFf
KGRhdGEpIHt9CisvLyAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7IC4uLiB9CisvLworLy8g
IHByaXZhdGU6CisvLyAgIGludCBkYXRhXzsKKy8vIH07CisvLworLy8gdm9pZCBSZWdpc3Rlck15
VGVzdHMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgdmFsdWVzKSB7CisvLyAgIGZvciAoaW50IHYg
OiB2YWx1ZXMpIHsKKy8vICAgICA6OnRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKy8vICAgICAgICAg
Ik15Rml4dHVyZSIsICgiVGVzdCIgKyBzdGQ6OnRvX3N0cmluZyh2KSkuY19zdHIoKSwgbnVsbHB0
ciwKKy8vICAgICAgICAgc3RkOjp0b19zdHJpbmcodikuY19zdHIoKSwKKy8vICAgICAgICAgX19G
SUxFX18sIF9fTElORV9fLAorLy8gICAgICAgICAvLyBJbXBvcnRhbnQgdG8gdXNlIHRoZSBmaXh0
dXJlIHR5cGUgYXMgdGhlIHJldHVybiB0eXBlIGhlcmUuCisvLyAgICAgICAgIFs9XSgpIC0+IE15
Rml4dHVyZSogeyByZXR1cm4gbmV3IE15VGVzdCh2KTsgfSk7CisvLyAgIH0KKy8vIH0KKy8vIC4u
LgorLy8gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisvLyAgIHN0ZDo6dmVjdG9y
PGludD4gdmFsdWVzX3RvX3Rlc3QgPSBMb2FkVmFsdWVzRnJvbUNvbmZpZygpOworLy8gICBSZWdp
c3Rlck15VGVzdHModmFsdWVzX3RvX3Rlc3QpOworLy8gICAuLi4KKy8vICAgcmV0dXJuIFJVTl9B
TExfVEVTVFMoKTsKKy8vIH0KKy8vCit0ZW1wbGF0ZSA8aW50Ji4uLiBFeHBsaWNpdFBhcmFtZXRl
ckJhcnJpZXIsIHR5cGVuYW1lIEZhY3Rvcnk+CitUZXN0SW5mbyogUmVnaXN0ZXJUZXN0KGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogdGVzdF9uYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLCBjb25zdCBjaGFyKiB2YWx1ZV9w
YXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
IEZhY3RvcnkgZmFjdG9yeSkgeworICB1c2luZyBUZXN0VCA9IHR5cGVuYW1lIHN0ZDo6cmVtb3Zl
X3BvaW50ZXI8ZGVjbHR5cGUoZmFjdG9yeSgpKT46OnR5cGU7CisKKyAgY2xhc3MgRmFjdG9yeUlt
cGwgOiBwdWJsaWMgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSB7CisgICBwdWJsaWM6CisgICAg
ZXhwbGljaXQgRmFjdG9yeUltcGwoRmFjdG9yeSBmKSA6IGZhY3RvcnlfKHN0ZDo6bW92ZShmKSkg
e30KKyAgICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFjdG9yeV8oKTsg
fQorCisgICBwcml2YXRlOgorICAgIEZhY3RvcnkgZmFjdG9yeV87CisgIH07CisKKyAgcmV0dXJu
IGludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKKyAgICAgIHRlc3Rfc3VpdGVfbmFt
ZSwgdGVzdF9uYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9wYXJhbSwKKyAgICAgIGludGVybmFsOjpD
b2RlTG9jYXRpb24oZmlsZSwgbGluZSksIGludGVybmFsOjpHZXRUeXBlSWQ8VGVzdFQ+KCksCisg
ICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46OkdldFNldFVwQ2FzZU9yU3Vp
dGUoZmlsZSwgbGluZSksCisgICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46
OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICBuZXcgRmFjdG9yeUlt
cGx7c3RkOjptb3ZlKGZhY3RvcnkpfSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAK
IC8vIFVzZSB0aGlzIGZ1bmN0aW9uIGluIG1haW4oKSB0byBydW4gYWxsIHRlc3RzLiAgSXQgcmV0
dXJucyAwIGlmIGFsbApAQCAtMjM0Myw0ICsyNDczLDQgQEAgaW5saW5lIGludCBSVU5fQUxMX1RF
U1RTKCkgewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiAK
LSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXworI2VuZGlmICAvLyBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oCmluZGV4IDBjMTEwNWNi
OGViMmVmN2MyNjE2ZTY3ZmY1NTU2YWFiMjlmZjJkMWQuLjUwMjlhOWJiMDJhZGE3NDBmOWVlM2Vl
ZTZhNTI4MWQ2ZTk1OTNhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaApAQCAtMjcsMTUgKzI3LDE0IEBACiAv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLS8vIFRoaXMgZmlsZSBpcyBBVVRPTUFU
SUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE4IGJ5IGNvbW1hbmQKKy8vIFRoaXMgZmlsZSBp
cyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE5IGJ5IGNvbW1hbmQKIC8vICdn
ZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKIC8vCiAvLyBJ
bXBsZW1lbnRzIGEgZmFtaWx5IG9mIGdlbmVyaWMgcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3Mu
Ci0KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSRURfSU1QTF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUkVEX0lNUExfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKQEAgLTY3LDYgKzY2
LDggQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogLy8gV2UgYWxzbyBkZWZpbmUgdGhlIEVYUEVDVF8q
IHZhcmlhdGlvbnMuCiAvLwogLy8gRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgcHJlZGljYXRlcyB3
aG9zZSBhcml0eSBpcyBhdCBtb3N0IDUuCisvLyBQbGVhc2UgZW1haWwgZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkCisvLyBzdXBwb3J0IGZvciBoaWdoZXIg
YXJpdGllcy4KIAogLy8gR1RFU1RfQVNTRVJUXyBpcyB0aGUgYmFzaWMgc3RhdGVtZW50IHRvIHdo
aWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHJlZHVjZS4gIERvbid0
IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KQEAgLTg5LDkgKzkwLDEwIEBAIEFzc2VydGlvblJlc3Vs
dCBBc3NlcnRQcmVkMUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHYxKSB7CiAgIGlmIChwcmVkKHYxKSkgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8
IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMSA8PCAi
KSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MTsKKyAgcmV0dXJuIEFzc2Vy
dGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwg
ZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpOwog
fQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9Q
UkVEX0ZPUk1BVDEuCkBAIC0xMzMsMTEgKzEzNSwxMiBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0
UHJlZDJIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFQyJiB2MikgewogICBpZiAocHJlZCh2MSwgdjIpKSByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJl
ZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiKSBldmFsdWF0ZXMgdG8gZmFs
c2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwg
IiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJc
biIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MjsKKyAgcmV0dXJuIEFzc2VydGlvbkZh
aWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUy
CisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwg
IlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlBy
aW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKTsKIH0KIAogLy8gSW50ZXJuYWwgbWFj
cm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQyLgpAQCAtMTg0
LDEzICsxODcsMTMgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQzSGVscGVyKGNvbnN0IGNo
YXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
MyYgdjMpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MykpIHJldHVybiBBc3NlcnRpb25TdWNjZXNz
KCk7CiAKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3RleHQgPDwgIigiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEgPDwgIiwgIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGUyIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBlMyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MzsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAg
PDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIsICIgPDwgZTMKKyAg
ICAgICAgIDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCisgICAgICAgICA8PCAiXG4i
CisgICAgICAgICA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRU
b1N0cmluZyh2MSkgPDwgIlxuIgorICAgICAgICAgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjIpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUzIDw8
ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYzKTsKIH0KIAog
Ly8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9G
T1JNQVQzLgpAQCAtMjQyLDE1ICsyNDUsMTQgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQ0
SGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUNCYgdjQpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MywgdjQpKSByZXR1
cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwg
cHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIs
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IGU0IDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IHYyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMyA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHYzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxu
IiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHY0OworICByZXR1cm4gQXNzZXJ0aW9uRmFp
bHVyZSgpCisgICAgICAgICA8PCBwcmVkX3RleHQgPDwgIigiIDw8IGUxIDw8ICIsICIgPDwgZTIg
PDwgIiwgIiA8PCBlMyA8PCAiLCAiIDw8IGU0CisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8g
ZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAg
ICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5n
KHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVz
dGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAgICAgICAgPDwgZTQgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjQpOwogfQogCiAvLyBJbnRl
cm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDQu
CkBAIC0zMDcsMTcgKzMwOSwxNSBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0UHJlZDVIZWxwZXIo
Y29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFQ1JiB2NSkgewogICBpZiAocHJlZCh2MSwgdjIsIHYzLCB2NCwgdjUpKSByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJl
ZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IGU0IDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlNSA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTQgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2NAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTUgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NTsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUo
KQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIs
ICIgPDwgZTMgPDwgIiwgIiA8PCBlNAorICAgICAgICAgPDwgIiwgIiA8PCBlNSA8PCAiKSBldmFs
dWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEg
PDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJc
biIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmlu
dFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAi
IDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAgICAgICAgPDwgZTQg
PDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjQpIDw8ICJc
biIKKyAgICAgICAgIDw8IGU1IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmlu
dFRvU3RyaW5nKHY1KTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7
RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQ1LgpAQCAtMzU2LDQgKzM1Niw0IEBAIEFzc2VydGlv
blJlc3VsdCBBc3NlcnRQcmVkNUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAKIH0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUkVEX0lNUExfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSRURfSU1QTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdF9wcm9kLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0X3Byb2QuaAppbmRleCBlNjUxNjcxZWJkZTg1OWZjNzMxYjU0NTliZGMwNjYxYWYw
NzU3Y2I2Li4zOGI5ZDg1YTUxZWZiNzQ3ZmViOTY5YTVjZGNhZGIxYzI3YjJmODdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaApA
QCAtMzEsOCArMzEsOCBAQAogLy8gR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1l
d29yayBkZWZpbml0aW9ucyB1c2VmdWwgaW4gcHJvZHVjdGlvbiBjb2RlLgogLy8gR09PR0xFVEVT
VF9DTTAwMDMgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfUFJPRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KKyNp
Zm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KKyNkZWZpbmUgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KIAogLy8gV2hlbiB5b3UgbmVlZCB0
byB0ZXN0IHRoZSBwcml2YXRlIG9yIHByb3RlY3RlZCBtZW1iZXJzIG9mIGEgY2xhc3MsCiAvLyB1
c2UgdGhlIEZSSUVORF9URVNUIG1hY3JvIHRvIGRlY2xhcmUgeW91ciB0ZXN0cyBhcyBmcmllbmRz
IG9mIHRoZQpAQCAtNTgsNCArNTgsNCBAQAogI2RlZmluZSBGUklFTkRfVEVTVCh0ZXN0X2Nhc2Vf
bmFtZSwgdGVzdF9uYW1lKVwKIGZyaWVuZCBjbGFzcyB0ZXN0X2Nhc2VfbmFtZSMjXyMjdGVzdF9u
YW1lIyNfVGVzdAogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9I
XworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9IXwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9j
dXN0b20vZ3Rlc3QtcG9ydC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCmluZGV4IGNkODVkOTU2ZDJkYzE3YmQ1Mzdm
MjE0MjM0MGJkZjU4ZjQ3MzcxMTguLmRiMDI4ODFjMGM4OTlhNzRmMDc5ODU5ODBhZmEyZTZlOThj
Njg4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgKQEAgLTMxLDcgKzMx
LDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BPUlRf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVT
VF9QT1JUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNU
T01fR1RFU1RfUE9SVF9IXwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfQ1VTVE9NX0dURVNUX1BPUlRfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVy
cy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0
b20vZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCBlYjQ0NjdhYmNhYmVhN2ZmNzZmOWQyZDUyNzM4N2M5
ZGE4MTAxNDhiLi5iOTQ5NWQ4Mzc4M2JjZGUwNTBmNWZkYzE3NzAzNmFhNDg4MGIzZmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1
c3RvbS9ndGVzdC1wcmludGVycy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXByaW50ZXJzLmgKQEAgLTM2LDcgKzM2LDcg
QEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lm
bmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklO
VEVSU19IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9N
X0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9DVVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXworI2VuZGlmICAvLyBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BSSU5URVJTX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9jdXN0b20vZ3Rlc3QuaAppbmRleCA0YzhlMDdiZTIzZjFmZDYxNTlhZmVmMmVlZmQ3
NDQ0MDM0ZGQwNjA0Li5hZmFhZjE3YmEyOGUzYmViNzkwYTEyNjM4Y2ZmZWM4ZGJhNTY5OGVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgKQEAgLTMxLDcgKzMxLDcgQEAKIC8vCiAvLyAqKiBD
dXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KIAotI2VuZGlmICAvLyBHVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2VuZGlmICAvLyBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRo
LXRlc3QtaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCmluZGV4IDBhOWI0MmM4YTU3MmE4
NzE5NGM2NTEwOTAzZTIxZWEyMjYwZmFjNWMuLjQ5MDI5NmRmYWQyZDAwYzQ4MTFlYjQ5MTI2YWIy
NjU2OTYxYzc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1p
bnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTQgQEAKIC8vIGRlYXRoIHRlc3RzLiAgVGhleSBhcmUg
c3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2RlZmlu
ZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRF
Uk5BTF9IXwogCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5hbWVzcGFjZSBpbnRlcm5h
bCB7CkBAIC03OCw3ICs4MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gRGVhdGhUZXN0IHsKICAgLy8g
YXJndW1lbnQgaXMgc2V0LiAgSWYgdGhlIGRlYXRoIHRlc3Qgc2hvdWxkIGJlIHNraXBwZWQsIHRo
ZSBwb2ludGVyCiAgIC8vIGlzIHNldCB0byBOVUxMOyBvdGhlcndpc2UsIGl0IGlzIHNldCB0byB0
aGUgYWRkcmVzcyBvZiBhIG5ldyBjb25jcmV0ZQogICAvLyBEZWF0aFRlc3Qgb2JqZWN0IHRoYXQg
Y29udHJvbHMgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0ZXN0LgotICBzdGF0aWMgYm9v
bCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCisgIHN0YXRp
YyBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpz
dHJpbmcmPiBtYXRjaGVyLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwg
aW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwogICBEZWF0aFRlc3QoKTsKICAgdmlydHVhbCB+
RGVhdGhUZXN0KCkgeyB9CkBAIC0xNDQsMjEgKzE0Niw0NCBAQCBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiBjbGFzcyBEZWF0aFRlc3RGYWN0b3J5IHsKICBwdWJs
aWM6CiAgIHZpcnR1YWwgfkRlYXRoVGVzdEZhY3RvcnkoKSB7IH0KLSAgdmlydHVhbCBib29sIENy
ZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKLSAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkg
PSAwOworICB2aXJ0dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwgY29u
c3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZSwgRGVhdGhUZXN0
KiogdGVzdCkgPSAwOwogfTsKIAogLy8gQSBjb25jcmV0ZSBEZWF0aFRlc3RGYWN0b3J5IGltcGxl
bWVudGF0aW9uIGZvciBub3JtYWwgdXNlLgogY2xhc3MgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnkg
OiBwdWJsaWMgRGVhdGhUZXN0RmFjdG9yeSB7CiAgcHVibGljOgotICB2aXJ0dWFsIGJvb2wgQ3Jl
YXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAotICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KTsK
KyAgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIERlYXRoVGVzdCoqIHRlc3QpIG92ZXJyaWRlOwogfTsKIAogLy8gUmV0dXJucyB0cnVlIGlm
IGV4aXRfc3RhdHVzIGRlc2NyaWJlcyBhIHByb2Nlc3MgdGhhdCB3YXMgdGVybWluYXRlZAogLy8g
YnkgYSBzaWduYWwsIG9yIGV4aXRlZCBub3JtYWxseSB3aXRoIGEgbm9uemVybyBleGl0IGNvZGUu
CiBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50IGV4aXRfc3RhdHVzKTsK
IAorLy8gQSBzdHJpbmcgcGFzc2VkIHRvIEVYUEVDVF9ERUFUSCAoZXRjLikgaXMgY2F1Z2h0IGJ5
IG9uZSBvZiB0aGVzZSBvdmVybG9hZHMKKy8vIGFuZCBpbnRlcnByZXRlZCBhcyBhIHJlZ2V4IChy
YXRoZXIgdGhhbiBhbiBFcSBtYXRjaGVyKSBmb3IgbGVnYWN5CisvLyBjb21wYXRpYmlsaXR5Lgor
aW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVy
KAorICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KSB7CisgIHJldHVybiBDb250YWlu
c1JlZ2V4KHJlZ2V4LnBhdHRlcm4oKSk7Cit9CitpbmxpbmUgTWF0Y2hlcjxjb25zdCA6OnN0ZDo6
c3RyaW5nJj4gTWFrZURlYXRoVGVzdE1hdGNoZXIoY29uc3QgY2hhciogcmVnZXgpIHsKKyAgcmV0
dXJuIENvbnRhaW5zUmVnZXgocmVnZXgpOworfQoraW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6
OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKAorICAgIGNvbnN0IDo6c3RkOjpzdHJpbmcm
IHJlZ2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4KHJlZ2V4KTsKK30KKworLy8gSWYgYSBN
YXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBpcyBwYXNzZWQgdG8gRVhQRUNUX0RFQVRIIChl
dGMuKSwgaXQncworLy8gdXNlZCBkaXJlY3RseS4KK2lubGluZSBNYXRjaGVyPGNvbnN0IDo6c3Rk
OjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0Y2hlcigKKyAgICBNYXRjaGVyPGNvbnN0IDo6c3Rk
OjpzdHJpbmcmPiBtYXRjaGVyKSB7CisgIHJldHVybiBtYXRjaGVyOworfQorCiAvLyBUcmFwcyBD
KysgZXhjZXB0aW9ucyBlc2NhcGluZyBzdGF0ZW1lbnQgYW5kIHJlcG9ydHMgdGhlbSBhcyB0ZXN0
CiAvLyBmYWlsdXJlcy4gTm90ZSB0aGF0IHRyYXBwaW5nIFNFSCBleGNlcHRpb25zIGlzIG5vdCBp
bXBsZW1lbnRlZCBoZXJlLgogIyBpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMTg2LDM4ICsy
MTEsMzggQEAgR1RFU1RfQVBJXyBib29sIEV4aXRlZFVuc3VjY2Vzc2Z1bGx5KGludCBleGl0X3N0
YXR1cyk7CiAKIC8vIFRoaXMgbWFjcm8gaXMgZm9yIGltcGxlbWVudGluZyBBU1NFUlRfREVBVEgq
LCBFWFBFQ1RfREVBVEgqLAogLy8gQVNTRVJUX0VYSVQqLCBhbmQgRVhQRUNUX0VYSVQqLgotIyBk
ZWZpbmUgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4LCBmYWls
KSBcCi0gIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIFwKLSAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBcCi0gICAgY29uc3QgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6UkUmIGd0ZXN0X3JlZ2V4ID0gKHJlZ2V4KTsgXAotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6
OkRlYXRoVGVzdCogZ3Rlc3RfZHQ7IFwKLSAgICBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkRl
YXRoVGVzdDo6Q3JlYXRlKCNzdGF0ZW1lbnQsICZndGVzdF9yZWdleCwgXAotICAgICAgICBfX0ZJ
TEVfXywgX19MSU5FX18sICZndGVzdF9kdCkpIHsgXAotICAgICAgZ290byBHVEVTVF9DT05DQVRf
VE9LRU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gICAgaWYgKGd0ZXN0
X2R0ICE9IE5VTEwpIHsgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6c2NvcGVkX3B0cjwg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0PiBcCi0gICAgICAgICAgZ3Rlc3RfZHRfcHRy
KGd0ZXN0X2R0KTsgXAotICAgICAgc3dpdGNoIChndGVzdF9kdC0+QXNzdW1lUm9sZSgpKSB7IFwK
LSAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6Ok9WRVJTRUVfVEVT
VDogXAotICAgICAgICAgIGlmICghZ3Rlc3RfZHQtPlBhc3NlZChwcmVkaWNhdGUoZ3Rlc3RfZHQt
PldhaXQoKSkpKSB7IFwKLSAgICAgICAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVz
dF9sYWJlbF8sIF9fTElORV9fKTsgXAotICAgICAgICAgIH0gXAotICAgICAgICAgIGJyZWFrOyBc
Ci0gICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpFWEVDVVRFX1RF
U1Q6IHsgXAotICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJu
U2VudGluZWwgXAotICAgICAgICAgICAgICBndGVzdF9zZW50aW5lbChndGVzdF9kdCk7IFwKLSAg
ICAgICAgICBHVEVTVF9FWEVDVVRFX0RFQVRIX1RFU1RfU1RBVEVNRU5UXyhzdGF0ZW1lbnQsIGd0
ZXN0X2R0KTsgXAotICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rpbmc6OmludGVybmFs
OjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyBcCi0gICAgICAgICAgYnJlYWs7IFwKLSAg
ICAgICAgfSBcCi0gICAgICAgIGRlZmF1bHQ6IFwKLSAgICAgICAgICBicmVhazsgXAotICAgICAg
fSBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9s
YWJlbF8sIF9fTElORV9fKTogXAotICAgICAgZmFpbCg6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0
aFRlc3Q6Okxhc3RNZXNzYWdlKCkpCisjZGVmaW5lIEdURVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVu
dCwgcHJlZGljYXRlLCByZWdleF9vcl9tYXRjaGVyLCBmYWlsKSAgICAgICAgXAorICBHVEVTVF9B
TUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6RGVhdGhUZXN0KiBndGVzdF9kdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIGlmICghOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpDcmVhdGUo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICNzdGF0ZW1lbnQs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlRGVhdGhUZXN0TWF0Y2hlcihy
ZWdleF9vcl9tYXRjaGVyKSwgICAgICAgXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9f
LCAmZ3Rlc3RfZHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
IGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTsgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChndGVz
dF9kdCAhPSBudWxscHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgIHN0ZDo6dW5pcXVlX3B0cjwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
RGVhdGhUZXN0PiBndGVzdF9kdF9wdHIoZ3Rlc3RfZHQpOyBcCisgICAgICBzd2l0Y2ggKGd0ZXN0
X2R0LT5Bc3N1bWVSb2xlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6T1ZFUlNF
RV9URVNUOiAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBpZiAoIWd0ZXN0X2R0LT5Q
YXNzZWQocHJlZGljYXRlKGd0ZXN0X2R0LT5XYWl0KCkpKSkgeyAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVf
Xyk7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhU
ZXN0OjpFWEVDVVRFX1RFU1Q6IHsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJuU2VudGluZWwgZ3Rlc3Rfc2VudGluZWwo
ICAgICAgIFwKKyAgICAgICAgICAgICAgZ3Rlc3RfZHQpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgR1RFU1RfRVhFQ1VU
RV9ERUFUSF9URVNUX1NUQVRFTUVOVF8oc3RhdGVtZW50LCBndGVzdF9kdCk7ICAgICAgICAgICAg
XAorICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRl
c3Q6OlRFU1RfRElEX05PVF9ESUUpOyAgIFwKKyAgICAgICAgICBicmVhazsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBi
cmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgfSBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhn
dGVzdF9sYWJlbF8sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICA6IGZhaWwoOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpMYXN0TWVzc2Fn
ZSgpKQogLy8gVGhlIHN5bWJvbCAiZmFpbCIgaGVyZSBleHBhbmRzIHRvIHNvbWV0aGluZyBpbnRv
IHdoaWNoIGEgbWVzc2FnZQogLy8gY2FuIGJlIHN0cmVhbWVkLgogCkBAIC0yMjYsMTQgKzI1MSwx
MyBAQCBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50IGV4aXRfc3RhdHVz
KTsKIC8vIG11c3QgYWNjZXB0IGEgc3RyZWFtZWQgbWVzc2FnZSBldmVuIHRob3VnaCB0aGUgbWVz
c2FnZSBpcyBuZXZlciBwcmludGVkLgogLy8gVGhlIHJlZ2V4IG9iamVjdCBpcyBub3QgZXZhbHVh
dGVkLCBidXQgaXQgaXMgdXNlZCB0byBwcmV2ZW50ICJ1bnVzZWQiCiAvLyB3YXJuaW5ncyBhbmQg
dG8gYXZvaWQgYW4gZXhwcmVzc2lvbiB0aGF0IGRvZXNuJ3QgY29tcGlsZSBpbiBkZWJ1ZyBtb2Rl
LgotI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVtZW50LCByZWdleCkgICAg
ICAgICAgICAgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1
ZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgXAotICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hB
QkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAotICB9IGVsc2UgaWYgKCE6OnRl
c3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAgXAotICAgIGNvbnN0
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFJiBndGVzdF9yZWdleCA9IChyZWdleCk7ICAgICAgXAot
ICAgIHN0YXRpY19jYXN0PHZvaWQ+KGd0ZXN0X3JlZ2V4KTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVt
ZW50LCByZWdleF9vcl9tYXRjaGVyKSAgICBcCisgIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NL
RVJfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEdU
RVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsg
ICBcCisgIH0gZWxzZSBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAg
ICAgICAgICAgICAgIFwKKyAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlRGVhdGhUZXN0TWF0
Y2hlcihyZWdleF9vcl9tYXRjaGVyKTsgXAorICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgOjp0ZXN0aW5nOjpNZXNz
YWdlKCkKIAogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBjb250ZW50cyBvZiB0
aGUKQEAgLTI3Nyw0ICszMDEsNCBAQCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50
ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCk7CiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LWZpbGVwYXRoLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2lu
dGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgKaW5kZXggYWUzOGQ5NWJmODQ0ZmE5ZGMyMTczOWNmODIx
Mjc2ZDViMzQxN2UzYS4uNGI1YWEzYjQ0MmRmMzFkNzY2MmM5Njk2Nzc5YTFlMTg2YWE0Mjc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC1maWxlcGF0aC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaApAQCAtMzcsOCArMzcsOCBAQAogCiAvLyBH
T09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2RlZmluZSBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KIAogI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgogCkBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgR1RF
U1RfQVBJXyBGaWxlUGF0aCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbik7CiAKLSAgLy8gUmV0dXJucyB0
cnVlIGlmZiB0aGUgcGF0aCBpcyAiIi4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBwYXRoIGlzICIiLgogICBib29sIElzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwYXRobmFt
ZV8uZW1wdHkoKTsgfQogCiAgIC8vIElmIGlucHV0IG5hbWUgaGFzIGEgdHJhaWxpbmcgc2VwYXJh
dG9yIGNoYXJhY3RlciwgcmVtb3ZlcyBpdCBhbmQgcmV0dXJucwpAQCAtMjA4LDQgKzIwOCw0IEBA
IGNsYXNzIEdURVNUX0FQSV8gRmlsZVBhdGggewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5H
U19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwu
aAppbmRleCBiNzYyZjYxZmM1M2MzZGI5Y2ZiNzUzOTQwZDkxYjVkNTRhYjM2MzU3Li5mZjU1N2Q1
YTM3YjNhNzEyYWUzOWU0OGY3NGUyNDIzNzU4N2RlNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1p
bnRlcm5hbC5oCkBAIC0zNCw4ICszNCw4IEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0lO
VEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5U
RVJOQUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X0lOVEVSTkFMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9JTlRFUk5BTF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5o
IgogCkBAIC01MywxMSArNTMsMTMgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPGZs
b2F0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRl
IDxpb21hbmlwPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8
c2V0PgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCkBAIC03NywxMCAr
NzksMjAgQEAKICNkZWZpbmUgR1RFU1RfQ09OQ0FUX1RPS0VOX0lNUExfKGZvbywgYmFyKSBmb28g
IyMgYmFyCiAKIC8vIFN0cmluZ2lmaWVzIGl0cyBhcmd1bWVudC4KLSNkZWZpbmUgR1RFU1RfU1RS
SU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gV29yayBhcm91bmQgYSBidWcgaW4gdmlzdWFsIHN0dWRp
byB3aGljaCBkb2Vzbid0IGFjY2VwdCBjb2RlIGxpa2UgdGhpczoKKy8vCisvLyAgICNkZWZpbmUg
R1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gICAjZGVmaW5lIE1BQ1JPKGEsIGIsIGMp
IC4uLiBHVEVTVF9TVFJJTkdJRllfKGEpIC4uLgorLy8gICBNQUNSTygsIHgsIHkpCisvLworLy8g
Q29tcGxhaW5pbmcgYWJvdXQgdGhlIGFyZ3VtZW50IHRvIEdURVNUX1NUUklOR0lGWV8gYmVpbmcg
ZW1wdHkuCisvLyBUaGlzIGlzIGFsbG93ZWQgYnkgdGhlIHNwZWMuCisjZGVmaW5lIEdURVNUX1NU
UklOR0lGWV9IRUxQRVJfKG5hbWUsIC4uLikgI25hbWUKKyNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZ
XyguLi4pIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKF9fVkFfQVJHU19fLCApCiAKLWNsYXNzIFBy
b3RvY29sTWVzc2FnZTsKLW5hbWVzcGFjZSBwcm90bzIgeyBjbGFzcyBNZXNzYWdlOyB9CituYW1l
c3BhY2UgcHJvdG8yIHsKK2NsYXNzIE1lc3NhZ2VMaXRlOworfQogCiBuYW1lc3BhY2UgdGVzdGlu
ZyB7CiAKQEAgLTkxLDcgKzEwMyw3IEBAIGNsYXNzIE1lc3NhZ2U7ICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFJlcHJlc2VudHMgYSBmYWlsdXJlIG1lc3NhZ2UuCiBjbGFzcyBUZXN0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnRzIGEgdGVzdC4KIGNsYXNzIFRlc3RJ
bmZvOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZm9ybWF0aW9uIGFib3V0IGEgdGVzdC4K
IGNsYXNzIFRlc3RQYXJ0UmVzdWx0OyAgICAgICAgICAgICAgICAgIC8vIFJlc3VsdCBvZiBhIHRl
c3QgcGFydC4KLWNsYXNzIFVuaXRUZXN0OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgY29s
bGVjdGlvbiBvZiB0ZXN0IGNhc2VzLgorY2xhc3MgVW5pdFRlc3Q7ICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gQSBjb2xsZWN0aW9uIG9mIHRlc3Qgc3VpdGVzLgogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KIDo6c3RkOjpzdHJpbmcgUHJpbnRUb1N0cmluZyhjb25zdCBUJiB2YWx1ZSk7CkBAIC0x
MDYsMzQgKzExOCwyMiBAQCBjbGFzcyBVbml0VGVzdEltcGw7ICAgICAgICAgICAgICAgICAgICAv
LyBPcGFxdWUgaW1wbGVtZW50YXRpb24gb2YgVW5pdFRlc3QKIC8vIHN0YWNrIHRyYWNlLgogR1RF
U1RfQVBJXyBleHRlcm4gY29uc3QgY2hhciBrU3RhY2tUcmFjZU1hcmtlcltdOwogCi0vLyBUd28g
b3ZlcmxvYWRlZCBoZWxwZXJzIGZvciBjaGVja2luZyBhdCBjb21waWxlIHRpbWUgd2hldGhlciBh
bgotLy8gZXhwcmVzc2lvbiBpcyBhIG51bGwgcG9pbnRlciBsaXRlcmFsIChpLmUuIE5VTEwgb3Ig
YW55IDAtdmFsdWVkCi0vLyBjb21waWxlLXRpbWUgaW50ZWdyYWwgY29uc3RhbnQpLiAgVGhlaXIg
cmV0dXJuIHZhbHVlcyBoYXZlCi0vLyBkaWZmZXJlbnQgc2l6ZXMsIHNvIHdlIGNhbiB1c2Ugc2l6
ZW9mKCkgdG8gdGVzdCB3aGljaCB2ZXJzaW9uIGlzCi0vLyBwaWNrZWQgYnkgdGhlIGNvbXBpbGVy
LiAgVGhlc2UgaGVscGVycyBoYXZlIG5vIGltcGxlbWVudGF0aW9ucywgYXMKLS8vIHdlIG9ubHkg
bmVlZCB0aGVpciBzaWduYXR1cmVzLgotLy8KLS8vIEdpdmVuIElzTnVsbExpdGVyYWxIZWxwZXIo
eCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZpcnN0Ci0vLyB2ZXJzaW9uIGlmIHggY2Fu
IGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFNlY3JldCosIGFuZCBwaWNrIHRoZQotLy8gc2Vj
b25kIHZlcnNpb24gb3RoZXJ3aXNlLiAgU2luY2UgU2VjcmV0IGlzIGEgc2VjcmV0IGFuZCBpbmNv
bXBsZXRlCi0vLyB0eXBlLCB0aGUgb25seSBleHByZXNzaW9uIGEgdXNlciBjYW4gd3JpdGUgdGhh
dCBoYXMgdHlwZSBTZWNyZXQqIGlzCi0vLyBhIG51bGwgcG9pbnRlciBsaXRlcmFsLiAgVGhlcmVm
b3JlLCB3ZSBrbm93IHRoYXQgeCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0ZXJhbCBpZiBhbmQg
b25seSBpZiB0aGUgZmlyc3QgdmVyc2lvbiBpcyBwaWNrZWQgYnkgdGhlCi0vLyBjb21waWxlci4K
LWNoYXIgSXNOdWxsTGl0ZXJhbEhlbHBlcihTZWNyZXQqIHApOwotY2hhciAoJklzTnVsbExpdGVy
YWxIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotLy8gQSBjb21waWxlLXRpbWUgYm9vbCBj
b25zdGFudCB0aGF0IGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgeCBpcyBhCi0vLyBudWxsIHBvaW50
ZXIgbGl0ZXJhbCAoaS5lLiBOVUxMIG9yIGFueSAwLXZhbHVlZCBjb21waWxlLXRpbWUKLS8vIGlu
dGVncmFsIGNvbnN0YW50KS4KLSNpZmRlZiBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfCi0vLyBX
ZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJlIHRoZSBjb21waWxlciBkb2Vz
bid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBzaXMgKC4u
LikuCi0jIGRlZmluZSBHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHgpIGZhbHNlCi0jZWxzZQotIyBk
ZWZpbmUgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBcCi0gICAgKHNpemVvZig6OnRlc3Rpbmc6
OmludGVybmFsOjpJc051bGxMaXRlcmFsSGVscGVyKHgpKSA9PSAxKQotI2VuZGlmICAvLyBHVEVT
VF9FTExJUFNJU19ORUVEU19QT0RfCisvLyBBbiBJZ25vcmVkVmFsdWUgb2JqZWN0IGNhbiBiZSBp
bXBsaWNpdGx5IGNvbnN0cnVjdGVkIGZyb20gQU5ZIHZhbHVlLgorY2xhc3MgSWdub3JlZFZhbHVl
IHsKKyAgc3RydWN0IFNpbmsge307CisgcHVibGljOgorICAvLyBUaGlzIGNvbnN0cnVjdG9yIHRl
bXBsYXRlIGFsbG93cyBhbnkgdmFsdWUgdG8gYmUgaW1wbGljaXRseQorICAvLyBjb252ZXJ0ZWQg
dG8gSWdub3JlZFZhbHVlLiAgVGhlIG9iamVjdCBoYXMgbm8gZGF0YSBtZW1iZXIgYW5kCisgIC8v
IGRvZXNuJ3QgdHJ5IHRvIHJlbWVtYmVyIGFueXRoaW5nIGFib3V0IHRoZSBhcmd1bWVudC4gIFdl
CisgIC8vIGRlbGliZXJhdGVseSBvbWl0IHRoZSAnZXhwbGljaXQnIGtleXdvcmQgaW4gb3JkZXIg
dG8gYWxsb3cgdGhlCisgIC8vIGNvbnZlcnNpb24gdG8gYmUgaW1wbGljaXQuCisgIC8vIERpc2Fi
bGUgdGhlIGNvbnZlcnNpb24gaWYgVCBhbHJlYWR5IGhhcyBhIG1hZ2ljYWwgY29udmVyc2lvbiBv
cGVyYXRvci4KKyAgLy8gT3RoZXJ3aXNlIHdlIGdldCBhbWJpZ3VpdHkuCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNf
Y29udmVydGlibGU8VCwgU2luaz46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50Pjo6dHlwZSA9IDA+CisgIElnbm9yZWRWYWx1ZShjb25zdCBUJiAvKiBpZ25v
cmVkICovKSB7fSAgLy8gTk9MSU5UKHJ1bnRpbWUvZXhwbGljaXQpCit9OwogCiAvLyBBcHBlbmRz
IHRoZSB1c2VyLXN1cHBsaWVkIG1lc3NhZ2UgdG8gdGhlIEdvb2dsZS1UZXN0LWdlbmVyYXRlZCBt
ZXNzYWdlLgogR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBBcHBlbmRVc2VyTWVzc2FnZSgKQEAgLTIw
MSw3ICsyMDEsNyBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIERpZmZTdHJpbmdzKGNvbnN0IHN0
ZDo6c3RyaW5nJiBsZWZ0LAogLy8gICBleHBlY3RlZF92YWx1ZTogICAgICAiNSIKIC8vICAgYWN0
dWFsX3ZhbHVlOiAgICAgICAgIjYiCiAvLwotLy8gVGhlIGlnbm9yaW5nX2Nhc2UgcGFyYW1ldGVy
IGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQorLy8gVGhlIGlnbm9yaW5nX2Nhc2UgcGFy
YW1ldGVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFzc2VydGlvbiBpcyBhCiAvLyAqX1NU
UkNBU0VFUSouICBXaGVuIGl0J3MgdHJ1ZSwgdGhlIHN0cmluZyAiIChpZ25vcmluZyBjYXNlKSIg
d2lsbAogLy8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVzc2FnZS4KIEdURVNUX0FQSV8gQXNzZXJ0
aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBleHBlY3RlZF9leHByZXNzaW9uLApAQCAt
Mjg3LDcgKzI4Nyw3IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnQgewogICAvLwogICAvLyBTZWUgdGhl
IGZvbGxvd2luZyBhcnRpY2xlIGZvciBtb3JlIGRldGFpbHMgb24gVUxQOgogICAvLyBodHRwOi8v
cmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2NvbXBhcmluZy1mbG9hdGluZy1w
b2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8KLSAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4VWxw
cyA9IDQ7CisgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrTWF4VWxwcyA9IDQ7CiAKICAgLy8gQ29u
c3RydWN0cyBhIEZsb2F0aW5nUG9pbnQgZnJvbSBhIHJhdyBmbG9hdGluZy1wb2ludCBudW1iZXIu
CiAgIC8vCkBAIC0zMzAsMTUgKzMzMCwxNSBAQCBjbGFzcyBGbG9hdGluZ1BvaW50IHsKICAgLy8g
UmV0dXJucyB0aGUgc2lnbiBiaXQgb2YgdGhpcyBudW1iZXIuCiAgIEJpdHMgc2lnbl9iaXQoKSBj
b25zdCB7IHJldHVybiBrU2lnbkJpdE1hc2sgJiB1Xy5iaXRzXzsgfQogCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhpcyBpcyBOQU4gKG5vdCBhIG51bWJlcikuCisgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGlzIGlzIE5BTiAobm90IGEgbnVtYmVyKS4KICAgYm9vbCBpc19uYW4o
KSBjb25zdCB7CiAgICAgLy8gSXQncyBhIE5BTiBpZiB0aGUgZXhwb25lbnQgYml0cyBhcmUgYWxs
IG9uZXMgYW5kIHRoZSBmcmFjdGlvbgogICAgIC8vIGJpdHMgYXJlIG5vdCBlbnRpcmVseSB6ZXJv
cy4KICAgICByZXR1cm4gKGV4cG9uZW50X2JpdHMoKSA9PSBrRXhwb25lbnRCaXRNYXNrKSAmJiAo
ZnJhY3Rpb25fYml0cygpICE9IDApOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlz
IG51bWJlciBpcyBhdCBtb3N0IGtNYXhVbHBzIFVMUCdzIGF3YXkgZnJvbQotICAvLyByaHMuICBJ
biBwYXJ0aWN1bGFyLCB0aGlzIGZ1bmN0aW9uOgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhpcyBudW1iZXIgaXMgYXQgbW9zdCBrTWF4VWxwcyBVTFAncyBhd2F5CisgIC8vIGZy
b20gcmhzLiAgSW4gcGFydGljdWxhciwgdGhpcyBmdW5jdGlvbjoKICAgLy8KICAgLy8gICAtIHJl
dHVybnMgZmFsc2UgaWYgZWl0aGVyIG51bWJlciBpcyAob3IgYm90aCBhcmUpIE5BTi4KICAgLy8g
ICAtIHRyZWF0cyByZWFsbHkgbGFyZ2UgbnVtYmVycyBhcyBhbG1vc3QgZXF1YWwgdG8gaW5maW5p
dHkuCkBAIC00MDksNyArNDA5LDcgQEAgdHlwZWRlZiBGbG9hdGluZ1BvaW50PGZsb2F0PiBGbG9h
dDsKIHR5cGVkZWYgRmxvYXRpbmdQb2ludDxkb3VibGU+IERvdWJsZTsKIAogLy8gSW4gb3JkZXIg
dG8gY2F0Y2ggdGhlIG1pc3Rha2Ugb2YgcHV0dGluZyB0ZXN0cyB0aGF0IHVzZSBkaWZmZXJlbnQK
LS8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSwgd2UgbmVlZCB0
byBhc3NpZ24KKy8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUs
IHdlIG5lZWQgdG8gYXNzaWduCiAvLyB1bmlxdWUgSURzIHRvIGZpeHR1cmUgY2xhc3NlcyBhbmQg
Y29tcGFyZSB0aGVtLiAgVGhlIFR5cGVJZCB0eXBlIGlzCiAvLyB1c2VkIHRvIGhvbGQgc3VjaCBJ
RHMuICBUaGUgdXNlciBzaG91bGQgdHJlYXQgVHlwZUlkIGFzIGFuIG9wYXF1ZQogLy8gdHlwZTog
dGhlIG9ubHkgb3BlcmF0aW9uIGFsbG93ZWQgb24gVHlwZUlkIHZhbHVlcyBpcyB0byBjb21wYXJl
CkBAIC00NjksNyArNDY5LDcgQEAgY2xhc3MgVGVzdEZhY3RvcnlCYXNlIHsKIHRlbXBsYXRlIDxj
bGFzcyBUZXN0Q2xhc3M+CiBjbGFzcyBUZXN0RmFjdG9yeUltcGwgOiBwdWJsaWMgVGVzdEZhY3Rv
cnlCYXNlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgVGVzdCogQ3JlYXRlVGVzdCgpIHsgcmV0dXJu
IG5ldyBUZXN0Q2xhc3M7IH0KKyAgVGVzdCogQ3JlYXRlVGVzdCgpIG92ZXJyaWRlIHsgcmV0dXJu
IG5ldyBUZXN0Q2xhc3M7IH0KIH07CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTCkBAIC00ODUsOSAr
NDg1LDkgQEAgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgSXNIUkVTVUxURmFpbHVyZShjb25z
dCBjaGFyKiBleHByLAogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKIAotLy8gVHlwZXMg
b2YgU2V0VXBUZXN0Q2FzZSgpIGFuZCBUZWFyRG93blRlc3RDYXNlKCkgZnVuY3Rpb25zLgotdHlw
ZWRlZiB2b2lkICgqU2V0VXBUZXN0Q2FzZUZ1bmMpKCk7Ci10eXBlZGVmIHZvaWQgKCpUZWFyRG93
blRlc3RDYXNlRnVuYykoKTsKKy8vIFR5cGVzIG9mIFNldFVwVGVzdFN1aXRlKCkgYW5kIFRlYXJE
b3duVGVzdFN1aXRlKCkgZnVuY3Rpb25zLgordXNpbmcgU2V0VXBUZXN0U3VpdGVGdW5jID0gdm9p
ZCAoKikoKTsKK3VzaW5nIFRlYXJEb3duVGVzdFN1aXRlRnVuYyA9IHZvaWQgKCopKCk7CiAKIHN0
cnVjdCBDb2RlTG9jYXRpb24gewogICBDb2RlTG9jYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGFf
ZmlsZSwgaW50IGFfbGluZSkKQEAgLTQ5Nyw1OCArNDk3LDExNiBAQCBzdHJ1Y3QgQ29kZUxvY2F0
aW9uIHsKICAgaW50IGxpbmU7CiB9OwogCisvLyAgSGVscGVyIHRvIGlkZW50aWZ5IHdoaWNoIHNl
dHVwIGZ1bmN0aW9uIGZvciBUZXN0Q2FzZSAvIFRlc3RTdWl0ZSB0byBjYWxsLgorLy8gIE9ubHkg
b25lIGZ1bmN0aW9uIGlzIGFsbG93ZWQsIGVpdGhlciBUZXN0Q2FzZSBvciBUZXN0U3V0ZSBidXQg
bm90IGJvdGguCisKKy8vIFV0aWxpdHkgZnVuY3Rpb25zIHRvIGhlbHAgU3VpdGVBcGlSZXNvbHZl
cgordXNpbmcgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgPSB2b2lkICgqKSgpOworCitpbmxp
bmUgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0Tm90RGVmYXVsdE9yTnVsbCgKKyAgICBT
ZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBhLCBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBk
ZWYpIHsKKyAgcmV0dXJuIGEgPT0gZGVmID8gbnVsbHB0ciA6IGE7Cit9CisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgorLy8gIE5vdGUgdGhhdCBTdWl0ZUFwaVJlc29sdmVyIGluaGVyaXRzIGZyb20g
VCBiZWNhdXNlCisvLyAgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RTdWl0ZSgpIGNvdWxk
IGJlIHByb3RlY3RlZC4gVGhzIHdheQorLy8gIFN1aXRlQXBpUmVzb2x2ZXIgY2FuIGFjY2VzcyB0
aGVtLgorc3RydWN0IFN1aXRlQXBpUmVzb2x2ZXIgOiBUIHsKKyAgLy8gdGVzdGluZzo6VGVzdCBp
cyBvbmx5IGZvcndhcmQgZGVjbGFyZWQgYXQgdGhpcyBwb2ludC4gU28gd2UgbWFrZSBpdCBhCisg
IC8vIGRlcGVuZGVuZCBjbGFzcyBmb3IgdGhlIGNvbXBpbGVyIHRvIGJlIE9LIHdpdGggaXQuCisg
IHVzaW5nIFRlc3QgPQorICAgICAgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzaXplb2YoVCkg
IT0gMCwgOjp0ZXN0aW5nOjpUZXN0LCB2b2lkPjo6dHlwZTsKKworICBzdGF0aWMgU2V0VXBUZWFy
RG93blN1aXRlRnVuY1R5cGUgR2V0U2V0VXBDYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBmaWxlbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9mcCA9CisgICAg
ICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlNldFVwVGVzdENhc2UsICZUZXN0OjpTZXRVcFRl
c3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X3N1aXRlX2ZwID0K
KyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6U2V0VXBUZXN0U3VpdGUsICZUZXN0OjpT
ZXRVcFRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2FzZV9mcCB8fCAhdGVz
dF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRlIGJvdGggU2V0VXBU
ZXN0U3VpdGUgYW5kIFNldFVwVGVzdENhc2UsIHBsZWFzZSAiCisgICAgICAgICAgICJtYWtlIHN1
cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCAiCisgICAgICAgIDw8IGZpbGVuYW1lIDw8
ICI6IiA8PCBsaW5lX251bTsKKworICAgIHJldHVybiB0ZXN0X2Nhc2VfZnAgIT0gbnVsbHB0ciA/
IHRlc3RfY2FzZV9mcCA6IHRlc3Rfc3VpdGVfZnA7CisjZWxzZQorICAgICh2b2lkKShmaWxlbmFt
ZSk7CisgICAgKHZvaWQpKGxpbmVfbnVtKTsKKyAgICByZXR1cm4gJlQ6OlNldFVwVGVzdFN1aXRl
OworI2VuZGlmCisgIH0KKworICBzdGF0aWMgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0
VGVhckRvd25DYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBmaWxlbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVfbnVt
KSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICAgIFNldFVw
VGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9mcCA9CisgICAgICAgIEdldE5vdERlZmF1
bHRPck51bGwoJlQ6OlRlYXJEb3duVGVzdENhc2UsICZUZXN0OjpUZWFyRG93blRlc3RDYXNlKTsK
KyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X3N1aXRlX2ZwID0KKyAgICAgICAg
R2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6VGVhckRvd25UZXN0U3VpdGUsICZUZXN0OjpUZWFyRG93
blRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2FzZV9mcCB8fCAhdGVzdF9z
dWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRlIGJvdGggVGVhckRvd25U
ZXN0U3VpdGUgYW5kIFRlYXJEb3duVGVzdENhc2UsIgorICAgICAgICAgICAiIHBsZWFzZSBtYWtl
IHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCIKKyAgICAgICAgPDwgZmlsZW5hbWUg
PDwgIjoiIDw8IGxpbmVfbnVtOworCisgICAgcmV0dXJuIHRlc3RfY2FzZV9mcCAhPSBudWxscHRy
ID8gdGVzdF9jYXNlX2ZwIDogdGVzdF9zdWl0ZV9mcDsKKyNlbHNlCisgICAgKHZvaWQpKGZpbGVu
YW1lKTsKKyAgICAodm9pZCkobGluZV9udW0pOworICAgIHJldHVybiAmVDo6VGVhckRvd25UZXN0
U3VpdGU7CisjZW5kaWYKKyAgfQorfTsKKwogLy8gQ3JlYXRlcyBhIG5ldyBUZXN0SW5mbyBvYmpl
Y3QgYW5kIHJlZ2lzdGVycyBpdCB3aXRoIEdvb2dsZSBUZXN0OwogLy8gcmV0dXJucyB0aGUgY3Jl
YXRlZCBvYmplY3QuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6
ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRlc3Rfc3VpdGVfbmFtZTogIG5hbWUgb2Yg
dGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdAot
Ly8gICB0eXBlX3BhcmFtICAgICAgICB0aGUgbmFtZSBvZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1l
dGVyLCBvciBOVUxMIGlmCisvLyAgIHR5cGVfcGFyYW06ICAgICAgIHRoZSBuYW1lIG9mIHRoZSB0
ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKIC8vICAgICAgICAgICAgICAgICAgICAg
dGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotLy8gICB2
YWx1ZV9wYXJhbSAgICAgICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUg
cGFyYW1ldGVyLAorLy8gICB2YWx1ZV9wYXJhbTogICAgICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m
IHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAogLy8gICAgICAgICAgICAgICAgICAgICBvciBO
VUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCiAvLyAgIGNvZGVf
bG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUgdGhlIHRlc3QgaXMgZGVmaW5lZAogLy8g
ICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzCi0vLyAgIHNl
dF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUg
dGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCisvLyAgIHNldF91cF90YzogICAgICAgIHBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorLy8gICB0
ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24g
dGhlIHRlc3Qgc3VpdGUKIC8vICAgZmFjdG9yeTogICAgICAgICAgcG9pbnRlciB0byB0aGUgZmFj
dG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9iamVjdC4KIC8vICAgICAgICAgICAgICAgICAgICAg
VGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8gaW5zdGFuY2Ugd2lsbCBhc3N1bWUKIC8vICAgICAg
ICAgICAgICAgICAgICAgb3duZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9iamVjdC4KIEdURVNUX0FQ
SV8gVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNvbnN0IGNoYXIqIHRl
c3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29uc3QgY2hhciogdHlw
ZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9jYXRpb24g
Y29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAgICBTZXRVcFRl
c3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3du
X3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSk7CisgICAgY29uc3QgY2hhciogdGVz
dF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAor
ICAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwK
KyAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwgU2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90
YywKKyAgICBUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjLCBUZXN0RmFjdG9yeUJh
c2UqIGZhY3RvcnkpOwogCiAvLyBJZiAqcHN0ciBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4
LCBtb2RpZmllcyAqcHN0ciB0byBiZSByaWdodAogLy8gcGFzdCB0aGUgcHJlZml4IGFuZCByZXR1
cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnBzdHIgdW5jaGFuZ2VkCiAvLyBhbmQgcmV0dXJu
cyBmYWxzZS4gIE5vbmUgb2YgcHN0ciwgKnBzdHIsIGFuZCBwcmVmaXggY2FuIGJlIE5VTEwuCiBH
VEVTVF9BUElfIGJvb2wgU2tpcFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIq
KiBwc3RyKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9U
RVNUX1AKLQogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDI1MSBcCiAvKiBjbGFz
cyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5IGNsaWVudHMgb2Yg
Y2xhc3MgQiAqLykKIAotLy8gU3RhdGUgb2YgdGhlIGRlZmluaXRpb24gb2YgYSB0eXBlLXBhcmFt
ZXRlcml6ZWQgdGVzdCBjYXNlLgotY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRl
IHsKKy8vIFN0YXRlIG9mIHRoZSBkZWZpbml0aW9uIG9mIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3Qgc3VpdGUuCitjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdFN1aXRlUFN0YXRlIHsKICBwdWJs
aWM6Ci0gIFR5cGVkVGVzdENhc2VQU3RhdGUoKSA6IHJlZ2lzdGVyZWRfKGZhbHNlKSB7fQorICBU
eXBlZFRlc3RTdWl0ZVBTdGF0ZSgpIDogcmVnaXN0ZXJlZF8oZmFsc2UpIHt9CiAKICAgLy8gQWRk
cyB0aGUgZ2l2ZW4gdGVzdCBuYW1lIHRvIGRlZmluZWRfdGVzdF9uYW1lc18gYW5kIHJldHVybiB0
cnVlCi0gIC8vIGlmIHRoZSB0ZXN0IGNhc2UgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZDsgb3RoZXJ3
aXNlIGFib3J0cyB0aGUKKyAgLy8gaWYgdGhlIHRlc3Qgc3VpdGUgaGFzbid0IGJlZW4gcmVnaXN0
ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKICAgLy8gcHJvZ3JhbS4KICAgYm9vbCBBZGRUZXN0
TmFtZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogY2FzZV9uYW1lLAog
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfbmFtZSkgewogICAgIGlmIChyZWdp
c3RlcmVkXykgewotICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBUZXN0ICVzIG11c3QgYmUgZGVm
aW5lZCBiZWZvcmUgIgotICAgICAgICAgICAgICAiUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1Ao
JXMsIC4uLikuXG4iLAorICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICIlcyBU
ZXN0ICVzIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgorICAgICAgICAgICAgICAiUkVHSVNURVJf
VFlQRURfVEVTVF9TVUlURV9QKCVzLCAuLi4pLlxuIiwKICAgICAgICAgICAgICAgRm9ybWF0Rmls
ZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCksIHRlc3RfbmFtZSwgY2FzZV9uYW1lKTsKICAg
ICAgIGZmbHVzaChzdGRlcnIpOwogICAgICAgcG9zaXg6OkFib3J0KCk7CkBAIC01NzEsOCArNjI5
LDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsKICAgLy8gVmVyaWZp
ZXMgdGhhdCByZWdpc3RlcmVkX3Rlc3RzIG1hdGNoIHRoZSB0ZXN0IG5hbWVzIGluCiAgIC8vIGRl
ZmluZWRfdGVzdF9uYW1lc187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVs
LCBvcgogICAvLyBhYm9ydHMgdGhlIHByb2dyYW0gb3RoZXJ3aXNlLgotICBjb25zdCBjaGFyKiBW
ZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAotICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpOworICBjb25zdCBjaGFyKiBWZXJpZnlS
ZWdpc3RlcmVkVGVzdE5hbWVzKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGlu
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
ZWdpc3RlcmVkX3Rlc3RzKTsKIAogIHByaXZhdGU6CiAgIHR5cGVkZWYgOjpzdGQ6Om1hcDxzdGQ6
OnN0cmluZywgQ29kZUxvY2F0aW9uPiBSZWdpc3RlcmVkVGVzdHNNYXA7CkBAIC01ODEsMTQgKzY0
MCwxOSBAQCBjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdENhc2VQU3RhdGUgewogICBSZWdpc3Rl
cmVkVGVzdHNNYXAgcmVnaXN0ZXJlZF90ZXN0c187CiB9OwogCisvLyAgTGVnYWN5IEFQSSBpcyBk
ZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCit1c2luZyBUeXBlZFRlc3RDYXNlUFN0YXRlID0gVHlwZWRUZXN0U3Vp
dGVQU3RhdGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KwogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MQogCiAvLyBTa2lw
cyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1hIGluICdz
dHInOwogLy8gcmV0dXJucyBOVUxMIGlmIG5vIGNvbW1hIGlzIGZvdW5kIGluICdzdHInLgogaW5s
aW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25zdCBjaGFyKiBzdHIpIHsKICAgY29uc3QgY2hh
ciogY29tbWEgPSBzdHJjaHIoc3RyLCAnLCcpOwotICBpZiAoY29tbWEgPT0gTlVMTCkgewotICAg
IHJldHVybiBOVUxMOworICBpZiAoY29tbWEgPT0gbnVsbHB0cikgeworICAgIHJldHVybiBudWxs
cHRyOwogICB9CiAgIHdoaWxlIChJc1NwYWNlKCooKytjb21tYSkpKSB7fQogICByZXR1cm4gY29t
bWE7CkBAIC01OTgsNyArNjYyLDcgQEAgaW5saW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25z
dCBjaGFyKiBzdHIpIHsKIC8vIHRoZSBlbnRpcmUgc3RyaW5nIGlmIGl0IGNvbnRhaW5zIG5vIGNv
bW1hLgogaW5saW5lIHN0ZDo6c3RyaW5nIEdldFByZWZpeFVudGlsQ29tbWEoY29uc3QgY2hhciog
c3RyKSB7CiAgIGNvbnN0IGNoYXIqIGNvbW1hID0gc3RyY2hyKHN0ciwgJywnKTsKLSAgcmV0dXJu
IGNvbW1hID09IE5VTEwgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNvbW1hKTsKKyAgcmV0dXJu
IGNvbW1hID09IG51bGxwdHIgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNvbW1hKTsKIH0KIAog
Ly8gU3BsaXRzIGEgZ2l2ZW4gc3RyaW5nIG9uIGEgZ2l2ZW4gZGVsaW1pdGVyLCBwb3B1bGF0aW5n
IGEgZ2l2ZW4KQEAgLTYyMSw3ICs2ODUsNyBAQCBzdHJ1Y3QgTmFtZUdlbmVyYXRvclNlbGVjdG9y
IHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBOYW1lR2VuZXJhdG9yPgotdm9pZCBHZW5lcmF0
ZU5hbWVzUmVjdXJzaXZlbHkoVHlwZXMwLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qLCBpbnQp
IHt9Cit2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVseShpbnRlcm5hbDo6Tm9uZSwgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+KiwgaW50KSB7fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTmFtZUdl
bmVyYXRvciwgdHlwZW5hbWUgVHlwZXM+CiB2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVseShU
eXBlcywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiByZXN1bHQsIGludCBpKSB7CkBAIC02NDgs
NyArNzEyLDcgQEAgdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBGaXh0dXJlLCBjbGFzcyBUZXN0
U2VsLCB0eXBlbmFtZSBUeXBlcz4KIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdCB7CiAgcHVi
bGljOgogICAvLyAnaW5kZXgnIGlzIHRoZSBpbmRleCBvZiB0aGUgdGVzdCBpbiB0aGUgdHlwZSBs
aXN0ICdUeXBlcycKLSAgLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FT
RV9QKFByZWZpeCwgVGVzdENhc2UsCisgIC8vIHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9UWVBF
RF9URVNUX1NVSVRFX1AoUHJlZml4LCBUZXN0U3VpdGUsCiAgIC8vIFR5cGVzKS4gIFZhbGlkIHZh
bHVlcyBmb3IgJ2luZGV4JyBhcmUgWzAsIE4gLSAxXSB3aGVyZSBOIGlzIHRoZQogICAvLyBsZW5n
dGggb2YgVHlwZXMuCiAgIHN0YXRpYyBib29sIFJlZ2lzdGVyKGNvbnN0IGNoYXIqIHByZWZpeCwg
Y29uc3QgQ29kZUxvY2F0aW9uJiBjb2RlX2xvY2F0aW9uLApAQCAtNjYzLDEzICs3MjcsMTcgQEAg
Y2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0IHsKICAgICAvLyBsaXN0LgogICAgIE1ha2VBbmRS
ZWdpc3RlclRlc3RJbmZvKAogICAgICAgICAoc3RkOjpzdHJpbmcocHJlZml4KSArIChwcmVmaXhb
MF0gPT0gJ1wwJyA/ICIiIDogIi8iKSArIGNhc2VfbmFtZSArCi0gICAgICAgICAiLyIgKyB0eXBl
X25hbWVzW2luZGV4XSkKKyAgICAgICAgICIvIiArIHR5cGVfbmFtZXNbc3RhdGljX2Nhc3Q8c2l6
ZV90PihpbmRleCldKQogICAgICAgICAgICAgLmNfc3RyKCksCiAgICAgICAgIFN0cmlwVHJhaWxp
bmdTcGFjZXMoR2V0UHJlZml4VW50aWxDb21tYSh0ZXN0X25hbWVzKSkuY19zdHIoKSwKICAgICAg
ICAgR2V0VHlwZU5hbWU8VHlwZT4oKS5jX3N0cigpLAotICAgICAgICBOVUxMLCAgLy8gTm8gdmFs
dWUgcGFyYW1ldGVyLgotICAgICAgICBjb2RlX2xvY2F0aW9uLCBHZXRUeXBlSWQ8Rml4dHVyZUNs
YXNzPigpLCBUZXN0Q2xhc3M6OlNldFVwVGVzdENhc2UsCi0gICAgICAgIFRlc3RDbGFzczo6VGVh
ckRvd25UZXN0Q2FzZSwgbmV3IFRlc3RGYWN0b3J5SW1wbDxUZXN0Q2xhc3M+KTsKKyAgICAgICAg
bnVsbHB0ciwgIC8vIE5vIHZhbHVlIHBhcmFtZXRlci4KKyAgICAgICAgY29kZV9sb2NhdGlvbiwg
R2V0VHlwZUlkPEZpeHR1cmVDbGFzcz4oKSwKKyAgICAgICAgU3VpdGVBcGlSZXNvbHZlcjxUZXN0
Q2xhc3M+OjpHZXRTZXRVcENhc2VPclN1aXRlKAorICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5m
aWxlLmNfc3RyKCksIGNvZGVfbG9jYXRpb24ubGluZSksCisgICAgICAgIFN1aXRlQXBpUmVzb2x2
ZXI8VGVzdENsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZSgKKyAgICAgICAgICAgIGNvZGVf
bG9jYXRpb24uZmlsZS5jX3N0cigpLCBjb2RlX2xvY2F0aW9uLmxpbmUpLAorICAgICAgICBuZXcg
VGVzdEZhY3RvcnlJbXBsPFRlc3RDbGFzcz4pOwogCiAgICAgLy8gTmV4dCwgcmVjdXJzZXMgKGF0
IGNvbXBpbGUgdGltZSkgd2l0aCB0aGUgdGFpbCBvZiB0aGUgdHlwZSBsaXN0LgogICAgIHJldHVy
biBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwKQEAgLTY4NCw3ICs3NTIs
NyBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3QgewogCiAvLyBUaGUgYmFzZSBjYXNlIGZv
ciB0aGUgY29tcGlsZSB0aW1lIHJlY3Vyc2lvbi4KIHRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
Rml4dHVyZSwgY2xhc3MgVGVzdFNlbD4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0
dXJlLCBUZXN0U2VsLCBUeXBlczA+IHsKK2NsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0
dXJlLCBUZXN0U2VsLCBpbnRlcm5hbDo6Tm9uZT4gewogIHB1YmxpYzoKICAgc3RhdGljIGJvb2wg
UmVnaXN0ZXIoY29uc3QgY2hhciogLypwcmVmaXgqLywgY29uc3QgQ29kZUxvY2F0aW9uJiwKICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogLypjYXNlX25hbWUqLywgY29uc3QgY2hh
ciogLyp0ZXN0X25hbWVzKi8sCkBAIC02OTUsMTggKzc2MywyNCBAQCBjbGFzcyBUeXBlUGFyYW1l
dGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwgVHlwZXMwPiB7CiAgIH0KIH07CiAKLS8vIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgVGVzdHMsIFR5cGVzPjo6UmVnaXN0ZXIo
KQorR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUoY29u
c3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pOworR1RFU1Rf
QVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9u
KAorICAgIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSk7CisKKy8vIFR5cGVQYXJhbWV0ZXJpemVkVGVz
dFN1aXRlPEZpeHR1cmUsIFRlc3RzLCBUeXBlcz46OlJlZ2lzdGVyKCkKIC8vIHJlZ2lzdGVycyAq
YWxsIGNvbWJpbmF0aW9ucyogb2YgJ1Rlc3RzJyBhbmQgJ1R5cGVzJyB3aXRoIEdvb2dsZQogLy8g
VGVzdC4gIFRoZSByZXR1cm4gdmFsdWUgaXMgaW5zaWduaWZpY2FudCAtIHdlIGp1c3QgbmVlZCB0
byByZXR1cm4KIC8vIHNvbWV0aGluZyBzdWNoIHRoYXQgd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlv
biBpbiBhIG5hbWVzcGFjZSBzY29wZS4KIHRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVy
ZSwgdHlwZW5hbWUgVGVzdHMsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0Q2FzZSB7CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSB7CiAgcHVibGlj
OgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiBwcmVmaXgsIENvZGVMb2NhdGlv
biBjb2RlX2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RD
YXNlUFN0YXRlKiBzdGF0ZSwgY29uc3QgY2hhciogY2FzZV9uYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSogc3RhdGUsIGNvbnN0IGNoYXIqIGNh
c2VfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9uYW1lcywK
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiB0
eXBlX25hbWVzID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlTmFtZXM8RGVm
YXVsdE5hbWVHZW5lcmF0b3IsIFR5cGVzPigpKSB7CisgICAgUmVnaXN0ZXJUeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY2FzZV9uYW1lKTsKICAgICBzdGQ6OnN0cmluZyB0
ZXN0X25hbWUgPSBTdHJpcFRyYWlsaW5nU3BhY2VzKAogICAgICAgICBHZXRQcmVmaXhVbnRpbENv
bW1hKHRlc3RfbmFtZXMpKTsKICAgICBpZiAoIXN0YXRlLT5UZXN0RXhpc3RzKHRlc3RfbmFtZSkp
IHsKQEAgLTcyNiwyMCArODAwLDIwIEBAIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2Ug
ewogICAgICAgICBwcmVmaXgsIHRlc3RfbG9jYXRpb24sIGNhc2VfbmFtZSwgdGVzdF9uYW1lcywg
MCwgdHlwZV9uYW1lcyk7CiAKICAgICAvLyBOZXh0LCByZWN1cnNlcyAoYXQgY29tcGlsZSB0aW1l
KSB3aXRoIHRoZSB0YWlsIG9mIHRoZSB0ZXN0IGxpc3QuCi0gICAgcmV0dXJuIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgdHlwZW5hbWUgVGVzdHM6OlRhaWwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM+OjpSZWdpc3RlcihwcmVmaXgsIGNvZGVf
bG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2tpcENvbW1hKHRlc3RfbmFtZXMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lcyk7
CisgICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPEZpeHR1cmUsIHR5cGVuYW1l
IFRlc3RzOjpUYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBl
cz46OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXBD
b21tYSh0ZXN0X25hbWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlX25hbWVzKTsKICAgfQogfTsKIAogLy8gVGhlIGJhc2UgY2Fz
ZSBmb3IgdGhlIGNvbXBpbGUgdGltZSByZWN1cnNpb24uCiB0ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIEZpeHR1cmUsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4geworY2xhc3MgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0U3VpdGU8Rml4dHVyZSwgaW50ZXJuYWw6Ok5vbmUsIFR5cGVzPiB7CiAgcHVibGljOgog
ICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiAvKnByZWZpeCovLCBjb25zdCBDb2Rl
TG9jYXRpb24mLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RDYXNlUFN0
YXRlKiAvKnN0YXRlKi8sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5cGVkVGVzdFN1
aXRlUFN0YXRlKiAvKnN0YXRlKi8sCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IC8qY2FzZV9uYW1lKi8sIGNvbnN0IGNoYXIqIC8qdGVzdF9uYW1lcyovLAogICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mID0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPigpIC8qdHlwZV9uYW1lcyov
KSB7CkBAIC03NDcsOCArODIxLDYgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTxG
aXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4gewogICB9CiB9OwogCi0jZW5kaWYgIC8vIEdURVNU
X0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gUmV0dXJucyB0
aGUgY3VycmVudCBPUyBzdGFjayB0cmFjZSBhcyBhbiBzdGQ6OnN0cmluZy4KIC8vCiAvLyBUaGUg
bWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIHRvIGJlIGluY2x1ZGVkIGlzIHNwZWNpZmll
ZCBieQpAQCAtNzgwLDYgKzg1MiwxNiBAQCBzdHJ1Y3QgR1RFU1RfQVBJXyBDb25zdENoYXJQdHIg
ewogICBjb25zdCBjaGFyKiB2YWx1ZTsKIH07CiAKKy8vIEhlbHBlciBmb3IgZGVjbGFyaW5nIHN0
ZDo6c3RyaW5nIHdpdGhpbiAnaWYnIHN0YXRlbWVudAorLy8gaW4gcHJlIEMrKzE3IGJ1aWxkIGVu
dmlyb25tZW50Lgorc3RydWN0IFRydWVXaXRoU3RyaW5nIHsKKyAgVHJ1ZVdpdGhTdHJpbmcoKSA9
IGRlZmF1bHQ7CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0IGNoYXIqIHN0cikgOiB2
YWx1ZShzdHIpIHt9CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5n
JiBzdHIpIDogdmFsdWUoc3RyKSB7fQorICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorICBzdGQ6OnN0cmluZyB2YWx1ZTsKK307CisKIC8vIEEgc2ltcGxl
IExpbmVhciBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIGZvciBnZW5lcmF0aW5nIHJhbmRvbQogLy8g
bnVtYmVycyB3aXRoIGEgdW5pZm9ybSBkaXN0cmlidXRpb24uICBVbmxpa2UgcmFuZCgpIGFuZCBz
cmFuZCgpLCBpdAogLy8gZG9lc24ndCB1c2UgZ2xvYmFsIHN0YXRlIChhbmQgdGhlcmVmb3JlIGNh
bid0IGludGVyZmVyZSB3aXRoIHVzZXIKQEAgLTc4NywxMzUgKzg2OSw1MyBAQCBzdHJ1Y3QgR1RF
U1RfQVBJXyBDb25zdENoYXJQdHIgewogLy8gYnV0IGl0J3MgZ29vZCBlbm91Z2ggZm9yIG91ciBw
dXJwb3Nlcy4KIGNsYXNzIEdURVNUX0FQSV8gUmFuZG9tIHsKICBwdWJsaWM6Ci0gIHN0YXRpYyBj
b25zdCBVSW50MzIga01heFJhbmdlID0gMXUgPDwgMzE7CisgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBrTWF4UmFuZ2UgPSAxdSA8PCAzMTsKIAotICBleHBsaWNpdCBSYW5kb20oVUludDMyIHNlZWQp
IDogc3RhdGVfKHNlZWQpIHt9CisgIGV4cGxpY2l0IFJhbmRvbSh1aW50MzJfdCBzZWVkKSA6IHN0
YXRlXyhzZWVkKSB7fQogCi0gIHZvaWQgUmVzZWVkKFVJbnQzMiBzZWVkKSB7IHN0YXRlXyA9IHNl
ZWQ7IH0KKyAgdm9pZCBSZXNlZWQodWludDMyX3Qgc2VlZCkgeyBzdGF0ZV8gPSBzZWVkOyB9CiAK
ICAgLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBmcm9tIFswLCByYW5nZSkuICBDcmFzaGVz
IGlmICdyYW5nZScgaXMKICAgLy8gMCBvciBncmVhdGVyIHRoYW4ga01heFJhbmdlLgotICBVSW50
MzIgR2VuZXJhdGUoVUludDMyIHJhbmdlKTsKKyAgdWludDMyX3QgR2VuZXJhdGUodWludDMyX3Qg
cmFuZ2UpOwogCiAgcHJpdmF0ZToKLSAgVUludDMyIHN0YXRlXzsKKyAgdWludDMyX3Qgc3RhdGVf
OwogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFJhbmRvbSk7CiB9OwogCi0vLyBE
ZWZpbmluZyBhIHZhcmlhYmxlIG9mIHR5cGUgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIFQy
PiB3aWxsIGNhdXNlIGEKLS8vIGNvbXBpbGVyIGVycm9yIGlmZiBUMSBhbmQgVDIgYXJlIGRpZmZl
cmVudCB0eXBlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3Qg
Q29tcGlsZUFzc2VydFR5cGVzRXF1YWw7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQsIFQ+IHsKLX07Ci0KLS8vIFJlbW92ZXMgdGhlIHJl
ZmVyZW5jZSBmcm9tIGEgdHlwZSBpZiBpdCBpcyBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3
aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OnJl
bW92ZV9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZVJlZmVyZW5jZSB7IHR5cGVkZWYgVCB0eXBl
OyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSZW1vdmVSZWZl
cmVuY2U8VCY+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3
cmFwcGVyIGFyb3VuZCBSZW1vdmVSZWZlcmVuY2UgdGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVu
dAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JF
TU9WRV9SRUZFUkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpS
ZW1vdmVSZWZlcmVuY2U8VD46OnR5cGUKKy8vIFR1cm5zIGNvbnN0IFUmLCBVJiwgY29uc3QgVSwg
YW5kIFUgYWxsIGludG8gVS4KKyNkZWZpbmUgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09O
U1RfKFQpIFwKKyAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1v
dmVfcmVmZXJlbmNlPFQ+Ojp0eXBlPjo6dHlwZQogCi0vLyBSZW1vdmVzIGNvbnN0IGZyb20gYSB0
eXBlIGlmIGl0IGlzIGEgY29uc3QgdHlwZSwgb3RoZXJ3aXNlIGxlYXZlcwotLy8gaXQgdW5jaGFu
Z2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0cjE6OnJlbW92ZV9jb25zdCwgd2hpY2ggaXMgbm90
Ci0vLyB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0
IFJlbW92ZUNvbnN0IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKKy8vIEhhc0RlYnVn
U3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxUPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9v
bCBjb25zdGFudAorLy8gdGhhdCdzIHRydWUgaWYgYW5kIG9ubHkgaWYgVCBoYXMgbWV0aG9kcyBE
ZWJ1Z1N0cmluZygpIGFuZCBTaG9ydERlYnVnU3RyaW5nKCkKKy8vIHRoYXQgcmV0dXJuIHN0ZDo6
c3RyaW5nLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3Qg
VD4geyB0eXBlZGVmIFQgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBNU1ZDIDguMCwgU3VuIEMr
KywgYW5kIElCTSBYTCBDKysgaGF2ZSBhIGJ1ZyB3aGljaCBjYXVzZXMgdGhlIGFib3ZlCi0vLyBk
ZWZpbml0aW9uIHRvIGZhaWwgdG8gcmVtb3ZlIHRoZSBjb25zdCBpbiAnY29uc3QgaW50WzNdJyBh
bmQgJ2NvbnN0Ci0vLyBjaGFyWzNdWzRdJy4gIFRoZSBmb2xsb3dpbmcgc3BlY2lhbGl6YXRpb24g
d29ya3MgYXJvdW5kIHRoZSBidWcuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1z
dHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVFtOXT4gewotICB0eXBlZGVmIHR5cGVuYW1lIFJlbW92
ZUNvbnN0PFQ+Ojp0eXBlIHR5cGVbTl07Ci19OwotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVIgPCAxNDAwCi0vLyBUaGlzIGlzIHRoZSBvbmx5IHNwZWNpYWxpemF0aW9uIHRoYXQg
YWxsb3dzIFZDKysgNy4xIHRvIHJlbW92ZSBjb25zdCBpbgotLy8gJ2NvbnN0IGludFszXSBhbmQg
J2NvbnN0IGludFszXVs0XScuICBIb3dldmVyLCBpdCBjYXVzZXMgdHJvdWJsZSB3aXRoIEdDQwot
Ly8gYW5kIHRodXMgbmVlZHMgdG8gYmUgY29uZGl0aW9uYWxseSBjb21waWxlZC4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0cnVjdCBSZW1vdmVDb25zdDxUW05dPiB7Ci0gIHR5
cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ29uc3Q8VD46OnR5cGUgdHlwZVtOXTsKLX07Ci0jZW5kaWYK
K2NsYXNzIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZyB7CisgcHJpdmF0ZToKKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIEM+CisgIHN0YXRpYyBhdXRvIENoZWNrRGVidWdTdHJpbmcoQyop
IC0+IHR5cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShz
dGQ6OmRlY2x2YWw8Y29uc3QgQz4oKS5EZWJ1Z1N0cmluZygpKT46OnR5cGU7CisgIHRlbXBsYXRl
IDx0eXBlbmFtZT4KKyAgc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSBDaGVja0RlYnVnU3RyaW5nKC4u
Lik7CiAKLS8vIEEgaGFuZHkgd3JhcHBlciBhcm91bmQgUmVtb3ZlQ29uc3QgdGhhdCB3b3JrcyB3
aGVuIHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0j
ZGVmaW5lIEdURVNUX1JFTU9WRV9DT05TVF8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6
aW50ZXJuYWw6OlJlbW92ZUNvbnN0PFQ+Ojp0eXBlCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBDPgor
ICBzdGF0aWMgYXV0byBDaGVja1Nob3J0RGVidWdTdHJpbmcoQyopIC0+IHR5cGVuYW1lIHN0ZDo6
aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8Y29uc3Qg
Qz4oKS5TaG9ydERlYnVnU3RyaW5nKCkpPjo6dHlwZTsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lPgor
ICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIENoZWNrU2hvcnREZWJ1Z1N0cmluZyguLi4pOwogCi0v
LyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0IFUsIGFuZCBVIGFsbCBpbnRvIFUuCi0jZGVmaW5l
IEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUKSBcCi0gICAgR1RFU1RfUkVNT1ZF
X0NPTlNUXyhHVEVTVF9SRU1PVkVfUkVGRVJFTkNFXyhUKSkKKyAgdXNpbmcgSGFzRGVidWdTdHJp
bmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tEZWJ1Z1N0cmluZzxUPihudWxscHRyKSk7CisgIHVzaW5n
IEhhc1Nob3J0RGVidWdTdHJpbmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tTaG9ydERlYnVnU3RyaW5n
PFQ+KG51bGxwdHIpKTsKIAotLy8gSW1wbGljaXRseUNvbnZlcnRpYmxlPEZyb20sIFRvPjo6dmFs
dWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbAotLy8gY29uc3RhbnQgdGhhdCdzIHRydWUgaWZmIHR5
cGUgRnJvbSBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8KLS8vIHR5cGUgVG8uCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+Ci1jbGFzcyBJbXBsaWNpdGx5Q29udmVy
dGlibGUgewotIHByaXZhdGU6Ci0gIC8vIFdlIG5lZWQgdGhlIGZvbGxvd2luZyBoZWxwZXIgZnVu
Y3Rpb25zIG9ubHkgZm9yIHRoZWlyIHR5cGVzLgotICAvLyBUaGV5IGhhdmUgbm8gaW1wbGVtZW50
YXRpb25zLgotCi0gIC8vIE1ha2VGcm9tKCkgaXMgYW4gZXhwcmVzc2lvbiB3aG9zZSB0eXBlIGlz
IEZyb20uICBXZSBjYW5ub3Qgc2ltcGx5Ci0gIC8vIHVzZSBGcm9tKCksIGFzIHRoZSB0eXBlIEZy
b20gbWF5IG5vdCBoYXZlIGEgcHVibGljIGRlZmF1bHQKLSAgLy8gY29uc3RydWN0b3IuCi0gIHN0
YXRpYyB0eXBlbmFtZSBBZGRSZWZlcmVuY2U8RnJvbT46OnR5cGUgTWFrZUZyb20oKTsKLQotICAv
LyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVybG9hZGVkLiAgR2l2ZW4gYW4gZXhwcmVzc2lv
bgotICAvLyBIZWxwZXIoeCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZpcnN0IHZlcnNp
b24gaWYgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gdHlwZSBUbzsgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcGljayB0aGUKLSAgLy8gc2Vjb25kIHZlcnNpb24uCi0gIC8vCi0gIC8v
IFRoZSBmaXJzdCB2ZXJzaW9uIHJldHVybnMgYSB2YWx1ZSBvZiBzaXplIDEsIGFuZCB0aGUgc2Vj
b25kCi0gIC8vIHZlcnNpb24gcmV0dXJucyBhIHZhbHVlIG9mIHNpemUgMi4gIFRoZXJlZm9yZSwg
YnkgY2hlY2tpbmcgdGhlCi0gIC8vIHNpemUgb2YgSGVscGVyKHgpLCB3aGljaCBjYW4gYmUgZG9u
ZSBhdCBjb21waWxlIHRpbWUsIHdlIGNhbiB0ZWxsCi0gIC8vIHdoaWNoIHZlcnNpb24gb2YgSGVs
cGVyKCkgaXMgdXNlZCwgYW5kIGhlbmNlIHdoZXRoZXIgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRs
eSBjb252ZXJ0ZWQgdG8gdHlwZSBUby4KLSAgc3RhdGljIGNoYXIgSGVscGVyKFRvKTsKLSAgc3Rh
dGljIGNoYXIgKCZIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotICAvLyBXZSBoYXZlIHRv
IHB1dCB0aGUgJ3B1YmxpYycgc2VjdGlvbiBhZnRlciB0aGUgJ3ByaXZhdGUnIHNlY3Rpb24sCi0g
IC8vIG9yIE1TVkMgcmVmdXNlcyB0byBjb21waWxlIHRoZSBjb2RlLgogIHB1YmxpYzoKLSNpZiBk
ZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gQysrQnVpbGRlciBjYW5ub3QgdXNlIG1lbWJlciBv
dmVybG9hZCByZXNvbHV0aW9uIGR1cmluZyB0ZW1wbGF0ZQotICAvLyBpbnN0YW50aWF0aW9uLiAg
VGhlIHNpbXBsZXN0IHdvcmthcm91bmQgaXMgdG8gdXNlIGl0cyBDKysweCB0eXBlIHRyYWl0cwot
ICAvLyBmdW5jdGlvbnMgKEMrK0J1aWxkZXIgMjAwOSBhbmQgYWJvdmUgb25seSkuCi0gIHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gX19pc19jb252ZXJ0aWJsZShGcm9tLCBUbyk7Ci0jZWxzZQot
ICAvLyBNU1ZDIHdhcm5zIGFib3V0IGltcGxpY2l0bHkgY29udmVydGluZyBmcm9tIGRvdWJsZSB0
byBpbnQgZm9yCi0gIC8vIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YSwgc28gd2UgbmVlZCB0byB0ZW1w
b3JhcmlseSBkaXNhYmxlIHRoZQotICAvLyB3YXJuaW5nLgotICBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QVVNIXyg0MjQ0KQotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9Ci0gICAgICBz
aXplb2YoSGVscGVyKEltcGxpY2l0bHlDb252ZXJ0aWJsZTo6TWFrZUZyb20oKSkpID09IDE7Ci0g
IEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQotI2VuZGlmICAvLyBfX0JPUkxBTkRD
X18KKyAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0KKyAgICAgIEhhc0RlYnVnU3RyaW5n
VHlwZTo6dmFsdWUgJiYgSGFzU2hvcnREZWJ1Z1N0cmluZ1R5cGU6OnZhbHVlOwogfTsKLXRlbXBs
YXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KLWNvbnN0IGJvb2wgSW1wbGljaXRseUNv
bnZlcnRpYmxlPEZyb20sIFRvPjo6dmFsdWU7CiAKLS8vIElzQVByb3RvY29sTWVzc2FnZTxUPjo6
dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbCBjb25zdGFudCB0aGF0J3MKLS8vIHRydWUgaWZm
IFQgaXMgdHlwZSBQcm90b2NvbE1lc3NhZ2UsIHByb3RvMjo6TWVzc2FnZSwgb3IgYSBzdWJjbGFz
cwotLy8gb2YgdGhvc2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBJc0FQcm90b2Nv
bE1lc3NhZ2UKLSAgICA6IHB1YmxpYyBib29sX2NvbnN0YW50PAotICBJbXBsaWNpdGx5Q29udmVy
dGlibGU8Y29uc3QgVCosIGNvbnN0IDo6UHJvdG9jb2xNZXNzYWdlKj46OnZhbHVlIHx8Ci0gIElt
cGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBUKiwgY29uc3QgOjpwcm90bzI6Ok1lc3NhZ2UqPjo6
dmFsdWU+IHsKLX07Citjb25zdGV4cHIgYm9vbCBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdT
dHJpbmc8VD46OnZhbHVlOwogCiAvLyBXaGVuIHRoZSBjb21waWxlciBzZWVzIGV4cHJlc3Npb24g
SXNDb250YWluZXJUZXN0PEM+KDApLCBpZiBDIGlzIGFuCiAvLyBTVEwtc3R5bGUgY29udGFpbmVy
IGNsYXNzLCB0aGUgZmlyc3Qgb3ZlcmxvYWQgb2YgSXNDb250YWluZXJUZXN0CkBAIC05NDIsNyAr
OTQyLDYgQEAgc3RydWN0IElzQVByb3RvY29sTWVzc2FnZQogLy8gSXNDb250YWluZXJUZXN0KHR5
cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yKikgYW5kCiAvLyBJc0NvbnRhaW5lclRlc3QoLi4uKSBk
b2Vzbid0IHdvcmsgd2l0aCBWaXN1YWwgQWdlIEMrKyBhbmQgU3VuIEMrKy4KIHR5cGVkZWYgaW50
IElzQ29udGFpbmVyOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKIHRlbXBsYXRlIDxjbGFzcyBDLAog
ICAgICAgICAgIGNsYXNzIEl0ZXJhdG9yID0gZGVjbHR5cGUoOjpzdGQ6OmRlY2x2YWw8Y29uc3Qg
QyY+KCkuYmVnaW4oKSksCiAgICAgICAgICAgY2xhc3MgPSBkZWNsdHlwZSg6OnN0ZDo6ZGVjbHZh
bDxjb25zdCBDJj4oKS5lbmQoKSksCkBAIC05NTIsMTQgKzk1MSw2IEBAIHRlbXBsYXRlIDxjbGFz
cyBDLAogSXNDb250YWluZXIgSXNDb250YWluZXJUZXN0KGludCAvKiBkdW1teSAqLykgewogICBy
ZXR1cm4gMDsKIH0KLSNlbHNlCi10ZW1wbGF0ZSA8Y2xhc3MgQz4KLUlzQ29udGFpbmVyIElzQ29u
dGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZW5hbWUgQzo6aXRlcmF0b3IqIC8qIGl0ICovID0gTlVMTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciogLyogY29uc3RfaXQgKi8gPSBO
VUxMKSB7Ci0gIHJldHVybiAwOwotfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCiAKIHR5
cGVkZWYgY2hhciBJc05vdENvbnRhaW5lcjsKIHRlbXBsYXRlIDxjbGFzcyBDPgpAQCAtOTgwLDQ3
ICs5NzEsMzAgQEAgc3RydWN0IElzSGFzaFRhYmxlIHsKICAgc3RhdGljIGNoYXIgdGVzdCguLi4p
OwogCiAgcHVibGljOgotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHNpemVvZih0ZXN0PFQ+
KDAsIDApKSA9PSBzaXplb2YoaW50KTsKKyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXpl
b2YodGVzdDxUPihudWxscHRyLCBudWxscHRyKSkgPT0gc2l6ZW9mKGludCk7CiB9OwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNvbnN0IGJvb2wgSXNIYXNoVGFibGU8VD46OnZhbHVlOwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IFZvaWRUIHsKLSAgICB0eXBlZGVmIHZvaWQgdmFs
dWVfdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+Ci1z
dHJ1Y3QgSGFzVmFsdWVUeXBlIDogZmFsc2VfdHlwZSB7fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotc3RydWN0IEhhc1ZhbHVlVHlwZTxULCBWb2lkVDx0eXBlbmFtZSBUOjp2YWx1ZV90eXBlPiA+
IDogdHJ1ZV90eXBlIHsKLX07Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBDLAotICAgICAgICAgIGJv
b2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2YoSXNDb250YWluZXIp
LAotICAgICAgICAgIGJvb2wgPSBIYXNWYWx1ZVR5cGU8Qz46OnZhbHVlPgorICAgICAgICAgIGJv
b2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2YoSXNDb250YWluZXIp
Pgogc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDsKIAotdGVtcGxhdGUgPHR5cGVuYW1l
IEMsIGJvb2wgSFY+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIGZhbHNlLCBI
Vj4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBDPgorc3RydWN0
IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCBmYWxzZT4gOiBwdWJsaWMgc3RkOjpmYWxzZV90
eXBlIHt9OwogCiAvLyBTaW5jZSB0aGUgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsIGRlcGVuZHMg
b24gdGhlIElzQ29udGFpbmVyVGVzdCB3ZSBuZWVkIHRvCiAvLyBvYmV5IHRoZSBzYW1lIGluY29u
c2lzdGVuY2llcyBhcyB0aGUgSXNDb250YWluZXJUZXN0LCBuYW1lbHkgY2hlY2sgaWYKIC8vIHNv
bWV0aGluZyBpcyBhIGNvbnRhaW5lciBpcyByZWx5aW5nIG9uIG9ubHkgY29uc3RfaXRlcmF0b3Ig
aW4gQysrMTEgYW5kCiAvLyBpcyByZWx5aW5nIG9uIGJvdGggY29uc3RfaXRlcmF0b3IgYW5kIGl0
ZXJhdG9yIG90aGVyd2lzZQogdGVtcGxhdGUgPHR5cGVuYW1lIEM+Ci1zdHJ1Y3QgSXNSZWN1cnNp
dmVDb250YWluZXJJbXBsPEMsIHRydWUsIGZhbHNlPiA6IHB1YmxpYyBmYWxzZV90eXBlIHt9Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8
QywgdHJ1ZSwgdHJ1ZT4gewotICAjaWYgR1RFU1RfTEFOR19DWFgxMQotICB0eXBlZGVmIHR5cGVu
YW1lIEl0ZXJhdG9yVHJhaXRzPHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yPjo6dmFsdWVfdHlw
ZQotICAgICAgdmFsdWVfdHlwZTsKLSNlbHNlCi0gIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JU
cmFpdHM8dHlwZW5hbWUgQzo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7Ci0jZW5k
aWYKLSAgdHlwZWRlZiBpc19zYW1lPHZhbHVlX3R5cGUsIEM+IHR5cGU7CitzdHJ1Y3QgSXNSZWN1
cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWU+IHsKKyAgdXNpbmcgdmFsdWVfdHlwZSA9IGRlY2x0
eXBlKCpzdGQ6OmRlY2x2YWw8dHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3I+KCkpOworICB1c2lu
ZyB0eXBlID0KKyAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwK
KyAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPHZh
bHVlX3R5cGU+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICBDPjsKIH07CiAKIC8v
IElzUmVjdXJzaXZlQ29udGFpbmVyPFR5cGU+IGlzIGEgdW5hcnkgY29tcGlsZS10aW1lIHByZWRp
Y2F0ZSB0aGF0CkBAIC0xMDMyLDEzICsxMDA2LDYgQEAgc3RydWN0IElzUmVjdXJzaXZlQ29udGFp
bmVySW1wbDxDLCB0cnVlLCB0cnVlPiB7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KIHN0cnVjdCBJ
c1JlY3Vyc2l2ZUNvbnRhaW5lciA6IHB1YmxpYyBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8Qz46
OnR5cGUge307CiAKLS8vIEVuYWJsZUlmPGNvbmRpdGlvbj46OnR5cGUgaXMgdm9pZCB3aGVuICdD
b25kJyBpcyB0cnVlLCBhbmQKLS8vIHVuZGVmaW5lZCB3aGVuICdDb25kJyBpcyBmYWxzZS4gIFRv
IHVzZSBTRklOQUUgdG8gbWFrZSBhIGZ1bmN0aW9uCi0vLyBvdmVybG9hZCBvbmx5IGFwcGx5IHdo
ZW4gYSBwYXJ0aWN1bGFyIGV4cHJlc3Npb24gaXMgdHJ1ZSwgYWRkCi0vLyAidHlwZW5hbWUgRW5h
YmxlSWY8ZXhwcmVzc2lvbj46OnR5cGUqID0gMCIgYXMgdGhlIGxhc3QgcGFyYW1ldGVyLgotdGVt
cGxhdGU8Ym9vbD4gc3RydWN0IEVuYWJsZUlmOwotdGVtcGxhdGU8PiBzdHJ1Y3QgRW5hYmxlSWY8
dHJ1ZT4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsgIC8vIE5PTElOVAotCiAvLyBVdGlsaXRpZXMg
Zm9yIG5hdGl2ZSBhcnJheXMuCiAKIC8vIEFycmF5RXEoKSBjb21wYXJlcyB0d28gay1kaW1lbnNp
b25hbCBuYXRpdmUgYXJyYXlzIHVzaW5nIHRoZQpAQCAtMTE2MSwxMCArMTEyOCw5IEBAIGNsYXNz
IE5hdGl2ZUFycmF5IHsKICAgfQogCiAgcHJpdmF0ZToKLSAgZW51bSB7Ci0gICAga0NoZWNrVHlw
ZUlzTm90Q29uc3RPckFSZWZlcmVuY2UgPSBTdGF0aWNBc3NlcnRUeXBlRXFIZWxwZXI8Ci0gICAg
ICAgIEVsZW1lbnQsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhFbGVtZW50KT46
OnZhbHVlCi0gIH07CisgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfY29uc3Q8RWxlbWVudD46OnZh
bHVlLCAiVHlwZSBtdXN0IG5vdCBiZSBjb25zdCIpOworICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Omlz
X3JlZmVyZW5jZTxFbGVtZW50Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAgIlR5cGUgbXVzdCBu
b3QgYmUgYSByZWZlcmVuY2UiKTsKIAogICAvLyBJbml0aWFsaXplcyB0aGlzIG9iamVjdCB3aXRo
IGEgY29weSBvZiB0aGUgaW5wdXQuCiAgIHZvaWQgSW5pdENvcHkoY29uc3QgRWxlbWVudCogYXJy
YXksIHNpemVfdCBhX3NpemUpIHsKQEAgLTExODUsMTMgKzExNTEsMTkwIEBAIGNsYXNzIE5hdGl2
ZUFycmF5IHsKICAgY29uc3QgRWxlbWVudCogYXJyYXlfOwogICBzaXplX3Qgc2l6ZV87CiAgIHZv
aWQgKE5hdGl2ZUFycmF5OjoqY2xvbmVfKShjb25zdCBFbGVtZW50Kiwgc2l6ZV90KTsKK307CisK
Ky8vIEJhY2twb3J0IG9mIHN0ZDo6aW5kZXhfc2VxdWVuY2UuCit0ZW1wbGF0ZSA8c2l6ZV90Li4u
IElzPgorc3RydWN0IEluZGV4U2VxdWVuY2UgeworICB1c2luZyB0eXBlID0gSW5kZXhTZXF1ZW5j
ZTsKK307CisKKy8vIERvdWJsZSB0aGUgSW5kZXhTZXF1ZW5jZSwgYW5kIG9uZSBpZiBwbHVzX29u
ZSBpcyB0cnVlLgordGVtcGxhdGUgPGJvb2wgcGx1c19vbmUsIHR5cGVuYW1lIFQsIHNpemVfdCBz
aXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlOwordGVtcGxhdGUgPHNpemVfdC4uLiBJLCBz
aXplX3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1ZW5jZTx0cnVlLCBJbmRleFNlcXVlbmNl
PEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNlcXVlbmNlPEkuLi4sIChz
aXplb2ZUICsgSSkuLi4sIDIgKiBzaXplb2ZUPjsKK307Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEks
IHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlPGZhbHNlLCBJbmRleFNlcXVl
bmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNlcXVlbmNlPEkuLi4s
IChzaXplb2ZUICsgSSkuLi4+OworfTsKKworLy8gQmFja3BvcnQgb2Ygc3RkOjptYWtlX2luZGV4
X3NlcXVlbmNlLgorLy8gSXQgdXNlcyBPKGxuKE4pKSBpbnN0YW50aWF0aW9uIGRlcHRoLgordGVt
cGxhdGUgPHNpemVfdCBOPgorc3RydWN0IE1ha2VJbmRleFNlcXVlbmNlSW1wbAorICAgIDogRG91
YmxlU2VxdWVuY2U8TiAlIDIgPT0gMSwgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2VJbXBsPE4g
LyAyPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIE4gLyAyPjo6dHlwZSB7fTsKIAotICBH
VEVTVF9ESVNBTExPV19BU1NJR05fKE5hdGl2ZUFycmF5KTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3Qg
TWFrZUluZGV4U2VxdWVuY2VJbXBsPDA+IDogSW5kZXhTZXF1ZW5jZTw+IHt9OworCit0ZW1wbGF0
ZSA8c2l6ZV90IE4+Cit1c2luZyBNYWtlSW5kZXhTZXF1ZW5jZSA9IHR5cGVuYW1lIE1ha2VJbmRl
eFNlcXVlbmNlSW1wbDxOPjo6dHlwZTsKKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+Cit1c2lu
ZyBJbmRleFNlcXVlbmNlRm9yID0gdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4u
KFQpPjo6dHlwZTsKKwordGVtcGxhdGUgPHNpemVfdD4KK3N0cnVjdCBJZ25vcmUgeworICBJZ25v
cmUoLi4uKTsgIC8vIE5PTElOVAorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IEVs
ZW1Gcm9tTGlzdEltcGw7Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEk+CitzdHJ1Y3QgRWxlbUZyb21M
aXN0SW1wbDxJbmRleFNlcXVlbmNlPEkuLi4+PiB7CisgIC8vIFdlIG1ha2UgSWdub3JlIGEgdGVt
cGxhdGUgdG8gc29sdmUgYSBwcm9ibGVtIHdpdGggTVNWQy4KKyAgLy8gQSBub24tdGVtcGxhdGUg
SWdub3JlIHdvdWxkIHdvcmsgZmluZSB3aXRoIGBkZWNsdHlwZShJZ25vcmUoSSkpLi4uYCwgYnV0
CisgIC8vIE1TVkMgZG9lc24ndCB1bmRlcnN0YW5kIGhvdyB0byBkZWFsIHdpdGggdGhhdCBwYWNr
IGV4cGFuc2lvbi4KKyAgLy8gVXNlIGAwICogSWAgdG8gaGF2ZSBhIHNpbmdsZSBpbnN0YW50aWF0
aW9uIG9mIElnbm9yZS4KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFI+CisgIHN0YXRpYyBSIEFwcGx5
KElnbm9yZTwwICogST4uLi4sIFIgKCopKCksIC4uLik7Cit9OworCit0ZW1wbGF0ZSA8c2l6ZV90
IE4sIHR5cGVuYW1lLi4uIFQ+CitzdHJ1Y3QgRWxlbUZyb21MaXN0IHsKKyAgdXNpbmcgdHlwZSA9
CisgICAgICBkZWNsdHlwZShFbGVtRnJvbUxpc3RJbXBsPHR5cGVuYW1lIE1ha2VJbmRleFNlcXVl
bmNlPE4+Ojp0eXBlPjo6QXBwbHkoCisgICAgICAgICAgc3RhdGljX2Nhc3Q8VCAoKikoKT4obnVs
bHB0cikuLi4pKTsKIH07CiAKK3N0cnVjdCBGbGF0VHVwbGVDb25zdHJ1Y3RUYWcge307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgRmxhdFR1cGxlOworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRGVyaXZlZCwgc2l6ZV90IEk+CitzdHJ1Y3QgRmxhdFR1cGxlRWxlbUJhc2U7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBULCBzaXplX3QgST4KK3N0cnVjdCBGbGF0VHVwbGVFbGVtQmFz
ZTxGbGF0VHVwbGU8VC4uLj4sIEk+IHsKKyAgdXNpbmcgdmFsdWVfdHlwZSA9IHR5cGVuYW1lIEVs
ZW1Gcm9tTGlzdDxJLCBULi4uPjo6dHlwZTsKKyAgRmxhdFR1cGxlRWxlbUJhc2UoKSA9IGRlZmF1
bHQ7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmc+CisgIGV4cGxpY2l0IEZsYXRUdXBsZUVsZW1C
YXNlKEZsYXRUdXBsZUNvbnN0cnVjdFRhZywgQXJnJiYgdCkKKyAgICAgIDogdmFsdWUoc3RkOjpm
b3J3YXJkPEFyZz4odCkpIHt9CisgIHZhbHVlX3R5cGUgdmFsdWU7Cit9OworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgSWR4Pgorc3RydWN0IEZsYXRUdXBsZUJhc2U7CisK
K3RlbXBsYXRlIDxzaXplX3QuLi4gSWR4LCB0eXBlbmFtZS4uLiBUPgorc3RydWN0IEZsYXRUdXBs
ZUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJbmRleFNlcXVlbmNlPElkeC4uLj4+CisgICAgOiBGbGF0
VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4uLi4geworICB1c2luZyBJbmRpY2Vz
ID0gSW5kZXhTZXF1ZW5jZTxJZHguLi4+OworICBGbGF0VHVwbGVCYXNlKCkgPSBkZWZhdWx0Owor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KKyAgZXhwbGljaXQgRmxhdFR1cGxlQmFzZShG
bGF0VHVwbGVDb25zdHJ1Y3RUYWcsIEFyZ3MmJi4uLiBhcmdzKQorICAgICAgOiBGbGF0VHVwbGVF
bGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4oRmxhdFR1cGxlQ29uc3RydWN0VGFne30sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmZvcndh
cmQ8QXJncz4oYXJncykpLi4uIHt9CisKKyAgdGVtcGxhdGUgPHNpemVfdCBJPgorICBjb25zdCB0
eXBlbmFtZSBFbGVtRnJvbUxpc3Q8SSwgVC4uLj46OnR5cGUmIEdldCgpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gRmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJPjo6dmFsdWU7CisgIH0K
KworICB0ZW1wbGF0ZSA8c2l6ZV90IEk+CisgIHR5cGVuYW1lIEVsZW1Gcm9tTGlzdDxJLCBULi4u
Pjo6dHlwZSYgR2V0KCkgeworICAgIHJldHVybiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8
VC4uLj4sIEk+Ojp2YWx1ZTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPgorICBhdXRv
IEFwcGx5KEYmJiBmKSAtPiBkZWNsdHlwZShzdGQ6OmZvcndhcmQ8Rj4oZikodGhpcy0+R2V0PElk
eD4oKS4uLikpIHsKKyAgICByZXR1cm4gc3RkOjpmb3J3YXJkPEY+KGYpKEdldDxJZHg+KCkuLi4p
OworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CisgIGF1dG8gQXBwbHkoRiYmIGYpIGNv
bnN0IC0+IGRlY2x0eXBlKHN0ZDo6Zm9yd2FyZDxGPihmKSh0aGlzLT5HZXQ8SWR4PigpLi4uKSkg
eworICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8Rj4oZikoR2V0PElkeD4oKS4uLik7CisgIH0KK307
CisKKy8vIEFuYWxvZyB0byBzdGQ6OnR1cGxlIGJ1dCB3aXRoIGRpZmZlcmVudCB0cmFkZW9mZnMu
CisvLyBUaGlzIGNsYXNzIG1pbmltaXplcyB0aGUgdGVtcGxhdGUgaW5zdGFudGlhdGlvbiBkZXB0
aCwgdGh1cyBhbGxvd2luZyBtb3JlCisvLyBlbGVtZW50cyB0aGFuIHN0ZDo6dHVwbGUgd291bGQu
IHN0ZDo6dHVwbGUgaGFzIGJlZW4gc2VlbiB0byByZXF1aXJlIGFuCisvLyBpbnN0YW50aWF0aW9u
IGRlcHRoIG9mIG1vcmUgdGhhbiAxMHggdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBzb21lCisv
LyBpbXBsZW1lbnRhdGlvbnMuCisvLyBGbGF0VHVwbGUgYW5kIEVsZW1Gcm9tTGlzdCBhcmUgbm90
IHJlY3Vyc2l2ZSBhbmQgaGF2ZSBhIGZpeGVkIGRlcHRoCisvLyByZWdhcmRsZXNzIG9mIFQuLi4K
Ky8vIE1ha2VJbmRleFNlcXVlbmNlLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXQgaXMgcmVjdXJzaXZl
IGJ1dCB3aXRoIGFuCisvLyBpbnN0YW50aWF0aW9uIGRlcHRoIG9mIE8obG4oTikpLgordGVtcGxh
dGUgPHR5cGVuYW1lLi4uIFQ+CitjbGFzcyBGbGF0VHVwbGUKKyAgICA6IHByaXZhdGUgRmxhdFR1
cGxlQmFzZTxGbGF0VHVwbGU8VC4uLj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT4geworICB1c2luZyBJ
bmRpY2VzID0gdHlwZW5hbWUgRmxhdFR1cGxlQmFzZTwKKyAgICAgIEZsYXRUdXBsZTxULi4uPiwg
dHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT46OkluZGljZXM7
CisKKyBwdWJsaWM6CisgIEZsYXRUdXBsZSgpID0gZGVmYXVsdDsKKyAgdGVtcGxhdGUgPHR5cGVu
YW1lLi4uIEFyZ3M+CisgIGV4cGxpY2l0IEZsYXRUdXBsZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcg
dGFnLCBBcmdzJiYuLi4gYXJncykKKyAgICAgIDogRmxhdFR1cGxlOjpGbGF0VHVwbGVCYXNlKHRh
Zywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSB7fQorCisgIHVzaW5nIEZsYXRUdXBsZTo6
RmxhdFR1cGxlQmFzZTo6QXBwbHk7CisgIHVzaW5nIEZsYXRUdXBsZTo6RmxhdFR1cGxlQmFzZTo6
R2V0OworfTsKKworLy8gVXRpbGl0eSBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkIHdpdGggc3RhdGlj
X2Fzc2VydCB0byBpbmR1Y2UgZGVwcmVjYXRpb24KKy8vIHdhcm5pbmdzLgorR1RFU1RfSU5URVJO
QUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRl
ZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCIpCitjb25zdGV4
cHIgYm9vbCBJbnN0YW50aWF0ZVRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCkgeyByZXR1cm4gdHJ1
ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJUWVBFRF9URVNUX0NBU0Vf
UCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVTVF9TVUlURV9QIikK
K2NvbnN0ZXhwciBib29sIFR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVybiB0
cnVlOyB9CisKK0dURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQoCisgICAgIlRZUEVEX1RFU1RfQ0FT
RSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVTVF9TVUlURSIpCitj
b25zdGV4cHIgYm9vbCBUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVkKCkgeyByZXR1cm4gdHJ1ZTsg
fQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJSRUdJU1RFUl9UWVBFRF9URVNU
X0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFJlZ2lzdGVyVHlwZWRUZXN0Q2FzZV9QX0lz
RGVwcmVjYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KKworR1RFU1RfSU5URVJOQUxfREVQUkVDQVRF
RCgKKyAgICAiSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxl
YXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUCIpCitjb25zdGV4
cHIgYm9vbCBJbnN0YW50aWF0ZVR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVy
biB0cnVlOyB9CisKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKIAorbmFtZXNwYWNlIHN0ZCB7CisvLyBTb21lIHN0YW5kYXJkIGxpYnJhcnkgaW1wbGVt
ZW50YXRpb25zIHVzZSBgc3RydWN0IHR1cGxlX3NpemVgIGFuZCBzb21lIHVzZQorLy8gYGNsYXNz
IHR1cGxlX3NpemVgLiBDbGFuZyB3YXJucyBhYm91dCB0aGUgbWlzbWF0Y2guCisvLyBodHRwczov
L3Jldmlld3MubGx2bS5vcmcvRDU1NDY2CisjaWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlz
bWF0Y2hlZC10YWdzIgorI2VuZGlmCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3Qg
dHVwbGVfc2l6ZTx0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlPFRzLi4uPj4KKyAgICA6IHN0
ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBzaXplb2YuLi4oVHMpPiB7fTsKKyNpZmRlZiBf
X2NsYW5nX18KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorfSAgLy8gbmFt
ZXNwYWNlIHN0ZAorCiAjZGVmaW5lIEdURVNUX01FU1NBR0VfQVRfKGZpbGUsIGxpbmUsIG1lc3Nh
Z2UsIHJlc3VsdF90eXBlKSBcCiAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFzc2VydEhlbHBlcihy
ZXN1bHRfdHlwZSwgZmlsZSwgbGluZSwgbWVzc2FnZSkgXAogICAgID0gOjp0ZXN0aW5nOjpNZXNz
YWdlKCkKQEAgLTEyMDgsNTEgKzEzNTEsMTI4IEBAIGNsYXNzIE5hdGl2ZUFycmF5IHsKICNkZWZp
bmUgR1RFU1RfU1VDQ0VTU18obWVzc2FnZSkgXAogICBHVEVTVF9NRVNTQUdFXyhtZXNzYWdlLCA6
OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcykKIAotLy8gU3VwcHJlc3MgTVNWQyB3
YXJuaW5nIDQ3MDIgKHVucmVhY2hhYmxlIGNvZGUpIGZvciB0aGUgY29kZSBmb2xsb3dpbmcKKyNk
ZWZpbmUgR1RFU1RfU0tJUF8obWVzc2FnZSkgXAorICByZXR1cm4gR1RFU1RfTUVTU0FHRV8obWVz
c2FnZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a1NraXApCisKKy8vIFN1cHByZXNzIE1T
VkMgd2FybmluZyA0MDcyICh1bnJlYWNoYWJsZSBjb2RlKSBmb3IgdGhlIGNvZGUgZm9sbG93aW5n
CiAvLyBzdGF0ZW1lbnQgaWYgaXQgcmV0dXJucyBvciB0aHJvd3MgKG9yIGRvZXNuJ3QgcmV0dXJu
IG9yIHRocm93IGluIHNvbWUKIC8vIHNpdHVhdGlvbnMpLgorLy8gTk9URTogVGhlICJlbHNlIiBp
cyBpbXBvcnRhbnQgdG8ga2VlcCB0aGlzIGV4cGFuc2lvbiB0byBwcmV2ZW50IGEgdG9wLWxldmVs
CisvLyAiZWxzZSIgZnJvbSBhdHRhY2hpbmcgdG8gb3VyICJpZiIuCiAjZGVmaW5lIEdURVNUX1NV
UFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KSBcCi0gIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgc3RhdGVtZW50OyB9CisgIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgc3RhdGVtZW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAgICAgICAgICAgICAgICAgICAgIC8qIE5PTElO
VCAqLyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGljX2Fzc2VydCh0cnVlLCAi
IikgIC8vIFVzZXIgbXVzdCBoYXZlIGEgc2VtaWNvbG9uIGFmdGVyIGV4cGFuc2lvbi4KIAotI2Rl
ZmluZSBHVEVTVF9URVNUX1RIUk9XXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbiwgZmFp
bCkgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6
OmludGVybmFsOjpDb25zdENoYXJQdHIgZ3Rlc3RfbXNnID0gIiIpIHsgXAotICAgIGJvb2wgZ3Rl
c3RfY2F1Z2h0X2V4cGVjdGVkID0gZmFsc2U7IFwKLSAgICB0cnkgeyBcCi0gICAgICBHVEVTVF9T
VVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7IFwKLSAg
ICB9IFwKLSAgICBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyBcCi0gICAgICBn
dGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSB0cnVlOyBcCi0gICAgfSBcCi0gICAgY2F0Y2ggKC4uLikg
eyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAgIkV4cGVjdGVkOiAiICNz
dGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBcCi0gICAgICAgICAgI2V4
cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBhIGRpZmZlcmVudCB0eXBl
LiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhy
b3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgICBpZiAoIWd0ZXN0X2NhdWdodF9leHBlY3Rl
ZCkgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAgIkV4cGVjdGVkOiAi
ICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBcCi0gICAgICAgICAg
I2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBub3RoaW5nLiI7IFwK
LSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBf
X0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwKLSAgICBHVEVTVF9DT05DQVRfVE9LRU5f
KGd0ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKTogXAotICAgICAgZmFpbChndGVzdF9t
c2cudmFsdWUpCisjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworbmFtZXNwYWNlIHRlc3Rpbmcg
eworbmFtZXNwYWNlIGludGVybmFsIHsKKworY2xhc3MgTmV2ZXJUaHJvd24geworIHB1YmxpYzoK
KyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IHsKKyAgICByZXR1cm4gInRoaXMg
ZXhjZXB0aW9uIHNob3VsZCBuZXZlciBiZSB0aHJvd24iOworICB9Cit9OworCit9ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisKKyNpZiBHVEVTVF9IQVNf
UlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSA6OnRlc3Rpbmc6OmludGVy
bmFsOjpHZXRUeXBlTmFtZSh0eXBlaWQoZSkpCisKKyNlbHNlICAvLyBHVEVTVF9IQVNfUlRUSQor
CisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSBcCisgIHN0ZDo6c3RyaW5nIHsgImFu
IHN0ZDo6ZXhjZXB0aW9uLWRlcml2ZWQgZXJyb3IiIH0KKworI2VuZGlmICAvLyBHVEVTVF9IQVNf
UlRUSQorCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oc3Rh
dGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pICAgXAorICBjYXRjaCAodHlwZW5hbWUgc3RkOjpj
b25kaXRpb25hbDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9yZWZlcmVuY2U8ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkX2V4Y2VwdGlvbj46OnR5cGU+Ojp0eXBlLCAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgIHN0ZDo6ZXhjZXB0aW9uPjo6dmFsdWUsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6Ok5l
dmVyVGhyb3duJiwgY29uc3Qgc3RkOjpleGNlcHRpb24mPjo6dHlwZSBcCisgICAgICAgICAgICAg
ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gICAg
ICBcCisgICAgICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgIjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSArPSBHVEVT
VF9FWENFUFRJT05fVFlQRV8oZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9IGUud2hhdCgpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0
X21zZy52YWx1ZSArPSAiXCIuIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxf
dGVzdHRocm93XywgX19MSU5FX18pOyAgICAgICAgICAgICAgICBcCisgIH0KKworI2Vsc2UgIC8v
IEdURVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9USFJPV19DQVRDSF9T
VERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbikKKworI2VuZGlmICAv
LyBHVEVTVF9IQVNfRVhDRVBUSU9OUworCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfKHN0YXRl
bWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBmYWlsKSAgICAgICAgICAgICAgXAorICBHVEVTVF9B
TUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OlRydWVXaXRoU3RyaW5nIGd0
ZXN0X21zZ3t9KSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgYm9vbCBndGVzdF9jYXVnaHRf
ZXhwZWN0ZWQgPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NP
REVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgICAgICAgICAgICBcCisgICAgfSBjYXRjaCAo
ZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gdHJ1ZTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
R1RFU1RfVEVTVF9USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVk
X2V4Y2VwdGlvbikgICAgXAorICAgIGNhdGNoICguLi4pIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGd0ZXN0X21zZy52
YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlw
ZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAgICAgICAgICAgICAgICAgICAgIi5cbiAg
QWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iOyAgICAgICAgIFwKKyAgICAgIGdv
dG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7
ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghZ3Rlc3RfY2F1Z2h0
X2V4cGVjdGVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBh
biBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAgICAgICAg
ICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3Mgbm90aGluZy4iOyAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0
dGhyb3dfLCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9
IGVsc2UgLypOT0xJTlQqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsX3Rl
c3R0aHJvd18sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDogZmFpbChn
dGVzdF9tc2cudmFsdWUuY19zdHIoKSkKKworI2lmIEdURVNUX0hBU19FWENFUFRJT05TCisKKyNk
ZWZpbmUgR1RFU1RfVEVTVF9OT19USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXygpICAgICAgICAg
ICAgICAgIFwKKyAgY2F0Y2ggKHN0ZDo6ZXhjZXB0aW9uIGNvbnN0JiBlKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQgdGhyb3dzICI7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0g
R1RFU1RfRVhDRVBUSU9OX1RZUEVfKGUpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9t
c2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBndGVzdF9tc2cudmFsdWUgKz0gZS53aGF0KCk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIlwiLiI7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rl
c3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk7IFwKKyAgfQorCisjZWxzZSAgLy8gR1RF
U1RfSEFTX0VYQ0VQVElPTlMKKworI2RlZmluZSBHVEVTVF9URVNUX05PX1RIUk9XX0NBVENIX1NU
RF9FWENFUFRJT05fKCkKKworI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwogCiAjZGVm
aW5lIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVudCwgZmFpbCkgXAogICBHVEVTVF9BTUJJ
R1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNU
cnVlKCkpIHsgXAorICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHJ1ZVdpdGhTdHJpbmcgZ3Rl
c3RfbXNne30pIHsgXAogICAgIHRyeSB7IFwKICAgICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hB
QkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAogICAgIH0gXAorICAgIEdURVNU
X1RFU1RfTk9fVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oKSBcCiAgICAgY2F0Y2ggKC4uLikg
eyBcCisgICAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQgdGhyb3dzLiI7IFwKICAgICAgIGdvdG8g
R1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0bm90aHJvd18sIF9fTElORV9fKTsg
XAogICAgIH0gXAogICB9IGVsc2UgXAogICAgIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFi
ZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoIkV4cGVjdGVkOiAiICNz
dGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAotICAgICAgICAgICAi
ICBBY3R1YWw6IGl0IHRocm93cy4iKQorICAgICAgZmFpbCgoIkV4cGVjdGVkOiAiICNzdGF0ZW1l
bnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAorICAgICAgICAgICAgIiAgQWN0
dWFsOiAiICsgZ3Rlc3RfbXNnLnZhbHVlKS5jX3N0cigpKQogCiAjZGVmaW5lIEdURVNUX1RFU1Rf
QU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIGZhaWwpIFwKICAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxP
Q0tFUl8gXApAQCAtMTMwMCwzMSArMTUyMCw0MSBAQCBjbGFzcyBOYXRpdmVBcnJheSB7CiAgICAg
ICAgICAgICIgIEFjdHVhbDogaXQgZG9lcy4iKQogCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9m
IHRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGdpdmVuIHRlc3QuCi0jZGVmaW5lIEdURVNU
X1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICB0ZXN0X2Nh
c2VfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAorI2RlZmluZSBHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSBcCisgIHRlc3Rfc3VpdGVfbmFtZSMjXyMj
dGVzdF9uYW1lIyNfVGVzdAogCiAvLyBIZWxwZXIgbWFjcm8gZm9yIGRlZmluaW5nIHRlc3RzLgot
I2RlZmluZSBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBwYXJlbnRfY2xh
c3MsIHBhcmVudF9pZClcCi1jbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9u
YW1lLCB0ZXN0X25hbWUpIDogcHVibGljIHBhcmVudF9jbGFzcyB7XAotIHB1YmxpYzpcCi0gIEdU
RVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkoKSB7fVwKLSBw
cml2YXRlOlwKLSAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7XAotICBzdGF0aWMgOjp0ZXN0aW5n
OjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXztcCi0g
IEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oXAotICAgICAgR1RFU1RfVEVTVF9DTEFT
U19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSk7XAotfTtcCi1cCi06OnRlc3Rpbmc6
OlRlc3RJbmZvKiBjb25zdCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpXAotICA6OnRlc3RfaW5mb18gPVwKLSAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpN
YWtlQW5kUmVnaXN0ZXJUZXN0SW5mbyhcCi0gICAgICAgICN0ZXN0X2Nhc2VfbmFtZSwgI3Rlc3Rf
bmFtZSwgTlVMTCwgTlVMTCwgXAotICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9j
YXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgXAotICAgICAgICAocGFyZW50X2lkKSwgXAotICAg
ICAgICBwYXJlbnRfY2xhc3M6OlNldFVwVGVzdENhc2UsIFwKLSAgICAgICAgcGFyZW50X2NsYXNz
OjpUZWFyRG93blRlc3RDYXNlLCBcCi0gICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpU
ZXN0RmFjdG9yeUltcGw8XAotICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0
X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4pO1wKLXZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0
ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQotCi0jZW5kaWYgIC8vIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5URVJOQUxfSF8KKyNkZWZpbmUgR1RFU1Rf
VEVTVF8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUsIHBhcmVudF9jbGFzcywgcGFyZW50X2lk
KSAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1
aXRlX25hbWUpKSA+IDEsICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdF9z
dWl0ZV9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpKSA+IDEs
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdF9uYW1lIG11c3Qg
bm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgY2xhc3Mg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgIDogcHVibGljIHBhcmVudF9jbGFzcyB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHB1YmxpYzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9u
YW1lKSgpID0gZGVmYXVsdDsgICAgICAgICAgIFwKKyAgICB+R1RFU1RfVEVTVF9DTEFTU19OQU1F
Xyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSBvdmVycmlkZSA9IGRlZmF1bHQ7IFwKKyAg
ICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwKKyAgICBHVEVTVF9E
SVNBTExPV19NT1ZFX0FORF9BU1NJR05fKEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0
ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgIHByaXZhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz
dGF0aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXzsgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgR1RFU1RfVEVTVF9DTEFTU19O
QU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjp0ZXN0X2luZm9fID0gIFwK
KyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKCAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAjdGVzdF9zdWl0ZV9uYW1lLCAjdGVz
dF9uYW1lLCBudWxscHRyLCBudWxscHRyLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwg
KHBhcmVudF9pZCksIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpTdWl0ZUFwaVJl
c29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgcGFy
ZW50X2NsYXNzPjo6R2V0U2V0VXBDYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19MSU5FX18pLCAgICAg
ICAgIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpTdWl0ZUFwaVJlc29sdmVyPCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgcGFyZW50X2NsYXNz
Pjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19MSU5FX18pLCAgICAgIFwKKyAg
ICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdEZhY3RvcnlJbXBsPEdURVNUX1RF
U1RfQ0xBU1NfTkFNRV8oICAgIFwKKyAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpPik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHko
KQorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9J
TlRFUk5BTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDgyYjg3Mjg5YWUxN2M4YWE3Yjk2ZDhlOGM5MmI5NmUwMThjNzY4
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwMyBHb29n
bGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8g
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8g
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBICJzbWFydCIgcG9pbnRlciB0eXBlIHdpdGgg
cmVmZXJlbmNlIHRyYWNraW5nLiAgRXZlcnkgcG9pbnRlciB0byBhCi0vLyBwYXJ0aWN1bGFyIG9i
amVjdCBpcyBrZXB0IG9uIGEgY2lyY3VsYXIgbGlua2VkIGxpc3QuICBXaGVuIHRoZSBsYXN0IHBv
aW50ZXIKLS8vIHRvIGFuIG9iamVjdCBpcyBkZXN0cm95ZWQgb3IgcmVhc3NpZ25lZCwgdGhlIG9i
amVjdCBpcyBkZWxldGVkLgotLy8KLS8vIFVzZWQgcHJvcGVybHksIHRoaXMgZGVsZXRlcyB0aGUg
b2JqZWN0IHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGdvZXMgYXdheS4KLS8vIFRoZXJlIGFyZSBz
ZXZlcmFsIGNhdmVhdHM6Ci0vLyAtIExpa2UgYWxsIHJlZmVyZW5jZSBjb3VudGluZyBzY2hlbWVz
LCBjeWNsZXMgbGVhZCB0byBsZWFrcy4KLS8vIC0gRWFjaCBzbWFydCBwb2ludGVyIGlzIGFjdHVh
bGx5IHR3byBwb2ludGVycyAoOCBieXRlcyBpbnN0ZWFkIG9mIDQpLgotLy8gLSBFdmVyeSB0aW1l
IGEgcG9pbnRlciBpcyBhc3NpZ25lZCwgdGhlIGVudGlyZSBsaXN0IG9mIHBvaW50ZXJzIHRvIHRo
YXQKLS8vICAgb2JqZWN0IGlzIHRyYXZlcnNlZC4gIFRoaXMgY2xhc3MgaXMgdGhlcmVmb3JlIE5P
VCBTVUlUQUJMRSB3aGVuIHRoZXJlCi0vLyAgIHdpbGwgb2Z0ZW4gYmUgbW9yZSB0aGFuIHR3byBv
ciB0aHJlZSBwb2ludGVycyB0byBhIHBhcnRpY3VsYXIgb2JqZWN0LgotLy8gLSBSZWZlcmVuY2Vz
IGFyZSBvbmx5IHRyYWNrZWQgYXMgbG9uZyBhcyBsaW5rZWRfcHRyPD4gb2JqZWN0cyBhcmUgY29w
aWVkLgotLy8gICBJZiBhIGxpbmtlZF9wdHI8PiBpcyBjb252ZXJ0ZWQgdG8gYSByYXcgcG9pbnRl
ciBhbmQgYmFjaywgQkFEIFRISU5HUwotLy8gICB3aWxsIGhhcHBlbiAoZG91YmxlIGRlbGV0aW9u
KS4KLS8vCi0vLyBBIGdvb2QgdXNlIG9mIHRoaXMgY2xhc3MgaXMgc3RvcmluZyBvYmplY3QgcmVm
ZXJlbmNlcyBpbiBTVEwgY29udGFpbmVycy4KLS8vIFlvdSBjYW4gc2FmZWx5IHB1dCBsaW5rZWRf
cHRyPD4gaW4gYSB2ZWN0b3I8Pi4KLS8vIE90aGVyIHVzZXMgbWF5IG5vdCBiZSBhcyBnb29kLgot
Ly8KLS8vIE5vdGU6IElmIHlvdSB1c2UgYW4gaW5jb21wbGV0ZSB0eXBlIHdpdGggbGlua2VkX3B0
cjw+LCB0aGUgY2xhc3MKLS8vICpjb250YWluaW5nKiBsaW5rZWRfcHRyPD4gbXVzdCBoYXZlIGEg
Y29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKGV2ZW4KLS8vIGlmIHRoZXkgZG8gbm90aGluZyEp
LgotLy8KLS8vIEJpbGwgR2liYm9ucyBzdWdnZXN0ZWQgd2UgdXNlIHNvbWV0aGluZyBsaWtlIHRo
aXMuCi0vLwotLy8gVGhyZWFkIFNhZmV0eToKLS8vICAgVW5saWtlIG90aGVyIGxpbmtlZF9wdHIg
aW1wbGVtZW50YXRpb25zLCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCi0vLyAgIGEgbGlua2VkX3B0
ciBvYmplY3QgaXMgdGhyZWFkLXNhZmUgaW4gdGhlIHNlbnNlIHRoYXQ6Ci0vLyAgICAgLSBpdCdz
IHNhZmUgdG8gY29weSBsaW5rZWRfcHRyIG9iamVjdHMgY29uY3VycmVudGx5LAotLy8gICAgIC0g
aXQncyBzYWZlIHRvIGNvcHkgKmZyb20qIGEgbGlua2VkX3B0ciBhbmQgcmVhZCBpdHMgdW5kZXJs
eWluZwotLy8gICAgICAgcmF3IHBvaW50ZXIgKGUuZy4gdmlhIGdldCgpKSBjb25jdXJyZW50bHks
IGFuZAotLy8gICAgIC0gaXQncyBzYWZlIHRvIHdyaXRlIHRvIHR3byBsaW5rZWRfcHRycyB0aGF0
IHBvaW50IHRvIHRoZSBzYW1lCi0vLyAgICAgICBzaGFyZWQgb2JqZWN0IGNvbmN1cnJlbnRseS4K
LS8vIEZJWE1FOiByZW5hbWUgdGhpcyB0byBzYWZlX2xpbmtlZF9wdHIgdG8gYXZvaWQKLS8vIGNv
bmZ1c2lvbiB3aXRoIG5vcm1hbCBsaW5rZWRfcHRyLgotCi0vLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9MSU5LRURfUFRSX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RF
U1RfTElOS0VEX1BUUl9IXwotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8YXNzZXJ0
Lmg+Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLW5hbWVzcGFj
ZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFByb3RlY3RzIGNvcHlpbmcg
b2YgYWxsIGxpbmtlZF9wdHIgb2JqZWN0cy4KLUdURVNUX0FQSV8gR1RFU1RfREVDTEFSRV9TVEFU
SUNfTVVURVhfKGdfbGlua2VkX3B0cl9tdXRleCk7Ci0KLS8vIFRoaXMgaXMgdXNlZCBpbnRlcm5h
bGx5IGJ5IGFsbCBpbnN0YW5jZXMgb2YgbGlua2VkX3B0cjw+LiAgSXQgbmVlZHMgdG8gYmUKLS8v
IGEgbm9uLXRlbXBsYXRlIGNsYXNzIGJlY2F1c2UgZGlmZmVyZW50IHR5cGVzIG9mIGxpbmtlZF9w
dHI8PiBjYW4gcmVmZXIgdG8KLS8vIHRoZSBzYW1lIG9iamVjdCAobGlua2VkX3B0cjxTdXBlcmNs
YXNzPihvYmopIHZzIGxpbmtlZF9wdHI8U3ViY2xhc3M+KG9iaikpLgotLy8gU28sIGl0IG5lZWRz
IHRvIGJlIHBvc3NpYmxlIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgbGlua2VkX3B0ciB0byBwYXJ0
aWNpcGF0ZQotLy8gaW4gdGhlIHNhbWUgY2lyY3VsYXIgbGlua2VkIGxpc3QsIHNvIHdlIG5lZWQg
YSBzaW5nbGUgY2xhc3MgdHlwZSBoZXJlLgotLy8KLS8vIERPIE5PVCBVU0UgVEhJUyBDTEFTUyBE
SVJFQ1RMWSBZT1VSU0VMRi4gIFVzZSBsaW5rZWRfcHRyPFQ+LgotY2xhc3MgbGlua2VkX3B0cl9p
bnRlcm5hbCB7Ci0gcHVibGljOgotICAvLyBDcmVhdGUgYSBuZXcgY2lyY2xlIHRoYXQgaW5jbHVk
ZXMgb25seSB0aGlzIGluc3RhbmNlLgotICB2b2lkIGpvaW5fbmV3KCkgewotICAgIG5leHRfID0g
dGhpczsKLSAgfQotCi0gIC8vIE1hbnkgbGlua2VkX3B0ciBvcGVyYXRpb25zIG1heSBjaGFuZ2Ug
cC5saW5rXyBmb3Igc29tZSBsaW5rZWRfcHRyCi0gIC8vIHZhcmlhYmxlIHAgaW4gdGhlIHNhbWUg
Y2lyY2xlIGFzIHRoaXMgb2JqZWN0LiAgVGhlcmVmb3JlIHdlIG5lZWQKLSAgLy8gdG8gcHJldmVu
dCB0d28gc3VjaCBvcGVyYXRpb25zIGZyb20gb2NjdXJyaW5nIGNvbmN1cnJlbnRseS4KLSAgLy8K
LSAgLy8gTm90ZSB0aGF0IGRpZmZlcmVudCB0eXBlcyBvZiBsaW5rZWRfcHRyIG9iamVjdHMgY2Fu
IGNvZXhpc3QgaW4gYQotICAvLyBjaXJjbGUgKGUuZy4gbGlua2VkX3B0cjxCYXNlPiwgbGlua2Vk
X3B0cjxEZXJpdmVkMT4sIGFuZAotICAvLyBsaW5rZWRfcHRyPERlcml2ZWQyPikuICBUaGVyZWZv
cmUgd2UgbXVzdCB1c2UgYSBzaW5nbGUgbXV0ZXggdG8KLSAgLy8gcHJvdGVjdCBhbGwgbGlua2Vk
X3B0ciBvYmplY3RzLiAgVGhpcyBjYW4gY3JlYXRlIHNlcmlvdXMKLSAgLy8gY29udGVudGlvbiBp
biBwcm9kdWN0aW9uIGNvZGUsIGJ1dCBpcyBhY2NlcHRhYmxlIGluIGEgdGVzdGluZwotICAvLyBm
cmFtZXdvcmsuCi0KLSAgLy8gSm9pbiBhbiBleGlzdGluZyBjaXJjbGUuCi0gIHZvaWQgam9pbihs
aW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwdHIpCi0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVE
XyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygmZ19saW5rZWRfcHRy
X211dGV4KTsKLQotICAgIGxpbmtlZF9wdHJfaW50ZXJuYWwgY29uc3QqIHAgPSBwdHI7Ci0gICAg
d2hpbGUgKHAtPm5leHRfICE9IHB0cikgewotICAgICAgYXNzZXJ0KHAtPm5leHRfICE9IHRoaXMg
JiYKLSAgICAgICAgICAgICAiVHJ5aW5nIHRvIGpvaW4oKSBhIGxpbmtlZCByaW5nIHdlIGFyZSBh
bHJlYWR5IGluLiAiCi0gICAgICAgICAgICAgIklzIEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxl
ZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAgICB9Ci0gICAgcC0+bmV4dF8gPSB0aGlzOwot
ICAgIG5leHRfID0gcHRyOwotICB9Ci0KLSAgLy8gTGVhdmUgd2hhdGV2ZXIgY2lyY2xlIHdlJ3Jl
IHBhcnQgb2YuICBSZXR1cm5zIHRydWUgaWYgd2Ugd2VyZSB0aGUKLSAgLy8gbGFzdCBtZW1iZXIg
b2YgdGhlIGNpcmNsZS4gIE9uY2UgdGhpcyBpcyBkb25lLCB5b3UgY2FuIGpvaW4oKSBhbm90aGVy
LgotICBib29sIGRlcGFydCgpCi0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhnX2xpbmtlZF9w
dHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygmZ19saW5rZWRfcHRyX211dGV4KTsKLQot
ICAgIGlmIChuZXh0XyA9PSB0aGlzKSByZXR1cm4gdHJ1ZTsKLSAgICBsaW5rZWRfcHRyX2ludGVy
bmFsIGNvbnN0KiBwID0gbmV4dF87Ci0gICAgd2hpbGUgKHAtPm5leHRfICE9IHRoaXMpIHsKLSAg
ICAgIGFzc2VydChwLT5uZXh0XyAhPSBuZXh0XyAmJgotICAgICAgICAgICAgICJUcnlpbmcgdG8g
ZGVwYXJ0KCkgYSBsaW5rZWQgcmluZyB3ZSBhcmUgbm90IGluLiAiCi0gICAgICAgICAgICAgIklz
IEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxlZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAg
ICB9Ci0gICAgcC0+bmV4dF8gPSBuZXh0XzsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIG11dGFibGUgbGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCogbmV4dF87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIGxpbmtlZF9wdHIgewotIHB1YmxpYzoKLSAg
dHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKLQotICAvLyBUYWtlIG92ZXIgb3duZXJzaGlwIG9mIGEg
cmF3IHBvaW50ZXIuICBUaGlzIHNob3VsZCBoYXBwZW4gYXMgc29vbiBhcwotICAvLyBwb3NzaWJs
ZSBhZnRlciB0aGUgb2JqZWN0IGlzIGNyZWF0ZWQuCi0gIGV4cGxpY2l0IGxpbmtlZF9wdHIoVCog
cHRyID0gTlVMTCkgeyBjYXB0dXJlKHB0cik7IH0KLSAgfmxpbmtlZF9wdHIoKSB7IGRlcGFydCgp
OyB9Ci0KLSAgLy8gQ29weSBhbiBleGlzdGluZyBsaW5rZWRfcHRyPD4sIGFkZGluZyBvdXJzZWx2
ZXMgdG8gdGhlIGxpc3Qgb2YgcmVmZXJlbmNlcy4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IGxp
bmtlZF9wdHIobGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSB7IGNvcHkoJnB0cik7IH0KLSAgbGlu
a2VkX3B0cihsaW5rZWRfcHRyIGNvbnN0JiBwdHIpIHsgIC8vIE5PTElOVAotICAgIGFzc2VydCgm
cHRyICE9IHRoaXMpOwotICAgIGNvcHkoJnB0cik7Ci0gIH0KLQotICAvLyBBc3NpZ25tZW50IHJl
bGVhc2VzIHRoZSBvbGQgdmFsdWUgYW5kIGFjcXVpcmVzIHRoZSBuZXcuCi0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBVPiBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0cjxVPiBjb25zdCYgcHRy
KSB7Ci0gICAgZGVwYXJ0KCk7Ci0gICAgY29weSgmcHRyKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0g
IH0KLQotICBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0ciBjb25zdCYgcHRyKSB7Ci0g
ICAgaWYgKCZwdHIgIT0gdGhpcykgewotICAgICAgZGVwYXJ0KCk7Ci0gICAgICBjb3B5KCZwdHIp
OwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICAvLyBTbWFydCBwb2ludGVyIG1l
bWJlcnMuCi0gIHZvaWQgcmVzZXQoVCogcHRyID0gTlVMTCkgewotICAgIGRlcGFydCgpOwotICAg
IGNhcHR1cmUocHRyKTsKLSAgfQotICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0K
LSAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQotICBUJiBvcGVyYXRv
ciooKSBjb25zdCB7IHJldHVybiAqdmFsdWVfOyB9Ci0KLSAgYm9vbCBvcGVyYXRvcj09KFQqIHAp
IGNvbnN0IHsgcmV0dXJuIHZhbHVlXyA9PSBwOyB9Ci0gIGJvb2wgb3BlcmF0b3IhPShUKiBwKSBj
b25zdCB7IHJldHVybiB2YWx1ZV8gIT0gcDsgfQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KLSAg
Ym9vbCBvcGVyYXRvcj09KGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgY29uc3QgewotICAgIHJl
dHVybiB2YWx1ZV8gPT0gcHRyLmdldCgpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgot
ICBib29sIG9wZXJhdG9yIT0obGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSBjb25zdCB7Ci0gICAg
cmV0dXJuIHZhbHVlXyAhPSBwdHIuZ2V0KCk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBVPgotICBmcmllbmQgY2xhc3MgbGlua2VkX3B0cjsKLQotICBUKiB2YWx1ZV87
Ci0gIGxpbmtlZF9wdHJfaW50ZXJuYWwgbGlua187Ci0KLSAgdm9pZCBkZXBhcnQoKSB7Ci0gICAg
aWYgKGxpbmtfLmRlcGFydCgpKSBkZWxldGUgdmFsdWVfOwotICB9Ci0KLSAgdm9pZCBjYXB0dXJl
KFQqIHB0cikgewotICAgIHZhbHVlXyA9IHB0cjsKLSAgICBsaW5rXy5qb2luX25ldygpOwotICB9
Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IHZvaWQgY29weShsaW5rZWRfcHRyPFU+IGNvbnN0
KiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHItPmdldCgpOwotICAgIGlmICh2YWx1ZV8pCi0gICAg
ICBsaW5rXy5qb2luKCZwdHItPmxpbmtfKTsKLSAgICBlbHNlCi0gICAgICBsaW5rXy5qb2luX25l
dygpOwotICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUKLWJvb2wgb3BlcmF0
b3I9PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0dXJuIHB0ciA9PSB4
LmdldCgpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUKLWJvb2wgb3BlcmF0b3Ih
PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0dXJuIHB0ciAhPSB4Lmdl
dCgpOwotfQotCi0vLyBBIGZ1bmN0aW9uIHRvIGNvbnZlcnQgVCogaW50byBsaW5rZWRfcHRyPFQ+
Ci0vLyBEb2luZyBlLmcuIG1ha2VfbGlua2VkX3B0cihuZXcgRm9vQmFyQmF6PHR5cGU+KGFyZykp
IGlzIGEgc2hvcnRlciBub3RhdGlvbgotLy8gZm9yIGxpbmtlZF9wdHI8Rm9vQmFyQmF6PHR5cGU+
ID4obmV3IEZvb0JhckJhejx0eXBlPihhcmcpKQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1saW5r
ZWRfcHRyPFQ+IG1ha2VfbGlua2VkX3B0cihUKiBwdHIpIHsKLSAgcmV0dXJuIGxpbmtlZF9wdHI8
VD4ocHRyKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2Ug
dGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
TElOS0VEX1BUUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdl
bmVyYXRlZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmFjOGMwMjcwM2Q1OTFl
YjJmMjJlZjE0ODQxYjQyNTU2YzUwNDA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1
NTIgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAg
ICBwdW1wLnB5IGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcAotLy8gRE8gTk9UIEVE
SVQgQlkgSEFORCEhIQotCi0vLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgotLy8gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9yIGltcGxlbWVudGluZyBw
YXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIFNDUklQ
VC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5IEdvb2dsZSBUZXN0IHN1
cHBvcnRzIGF0IG1vc3QgNTAgYXJndW1lbnRzIGluIFZhbHVlcywKLS8vIGFuZCBhdCBtb3N0IDEw
IGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0
aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGltaXRlZAotLy8gYnkg
dGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlz
Ci0vLyBjdXJyZW50bHkgc2V0IGF0IDEwLgotCi0vLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1Qg
REVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJB
TV9VVElMX0dFTkVSQVRFRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9y
dC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIEZvcndhcmQgZGVjbGFyYXRpb25zIG9m
IFZhbHVlc0luKCksIHdoaWNoIGlzIGltcGxlbWVudGVkIGluCi0vLyBpbmNsdWRlL2d0ZXN0L2d0
ZXN0LXBhcmFtLXRlc3QuaC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1p
bnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6
Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihG
b3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRvciBlbmQpOwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gVmFsdWVz
SW4oY29uc3QgVCAoJmFycmF5KVtOXSk7Ci0KLXRlbXBsYXRlIDxjbGFzcyBDb250YWluZXI+Ci1p
bnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dHlwZW5hbWUgQ29udGFpbmVyOjp2YWx1ZV90eXBlPiBW
YWx1ZXNJbigKLSAgICBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcik7Ci0KLW5hbWVzcGFjZSBp
bnRlcm5hbCB7Ci0KLS8vIFVzZWQgaW4gdGhlIFZhbHVlcygpIGZ1bmN0aW9uIHRvIHByb3ZpZGUg
cG9seW1vcnBoaWMgY2FwYWJpbGl0aWVzLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotY2xhc3Mg
VmFsdWVBcnJheTEgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgVmFsdWVBcnJheTEoVDEgdjEpIDog
djFfKHYxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkxKGNvbnN0IFZhbHVlQXJyYXkxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1jbGFz
cyBWYWx1ZUFycmF5MiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MihUMSB2MSwgVDIgdjIpIDog
djFfKHYxKSwgdjJfKHYyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyKGNvbnN0IFZhbHVlQXJyYXkyJiBvdGhl
cikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTImIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0g
IGNvbnN0IFQyIHYyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPgotY2xhc3MgVmFsdWVBcnJheTMgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTMoVDEgdjEsIFQyIHYyLCBUMyB2MykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMoY29uc3QgVmFsdWVBcnJh
eTMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhv
dGhlci52M18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkz
JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQz
IHYzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIFZhbHVlQXJyYXk0IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXk0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksCi0gICAgICB2NF8odjQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pfTsKLSAgICByZXR1cm4gVmFsdWVz
SW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQoY29uc3QgVmFsdWVBcnJheTQmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5NCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBj
b25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1j
bGFzcyBWYWx1ZUFycmF5NSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NShUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwKLSAgICAg
IHY0Xyh2NCksIHY1Xyh2NSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NShjb25zdCBW
YWx1ZUFycmF5NSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NSYgb3RoZXIpOwotCi0gIGNv
bnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0
IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNj4KLWNsYXNzIFZhbHVlQXJyYXk2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk2KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYpIDogdjFfKHYxKSwgdjJfKHYy
KSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2Nikge30KLQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7
Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0
PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0
XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5Nihjb25zdCBW
YWx1ZUFycmF5NiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTYm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci1j
bGFzcyBWYWx1ZUFycmF5NyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NykgOiB2MV8odjEpLAotICAgICAgdjJf
KHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSB7fQotCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNv
bnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8
VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZf
KSwgc3RhdGljX2Nhc3Q8VD4odjdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk3KGNvbnN0IFZhbHVlQXJyYXk3JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
IHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk3JiBvdGhlcik7
Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAg
Y29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3Qg
VDcgdjdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4PgotY2xhc3MgVmFsdWVBcnJheTggewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
Ci0gICAgICBUOCB2OCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSB7fQotCi0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBj
b25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nh
c3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk4KGNvbnN0IFZhbHVlQXJyYXk4JiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5OCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIFZhbHVlQXJyYXk5IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXk5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBU
OCB2OCwKLSAgICAgIFQ5IHY5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2Fz
dDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2OV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTkoY29uc3QgVmFsdWVBcnJheTkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8p
LCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwg
djVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4
XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1jbGFz
cyBWYWx1ZUFycmF5MTAgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTEwKFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBU
MTAgdjEwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2
Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEwKGNvbnN0IFZhbHVlQXJyYXkxMCYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkxMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMT4KLWNsYXNzIFZhbHVlQXJyYXkxMSB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MTEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEpIDogdjFfKHYxKSwgdjJfKHYy
KSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4
Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyl9OwotICAgIHJl
dHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTEoY29uc3QgVmFsdWVB
cnJheTExJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2
M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIu
djZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5
XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWNsYXNzIFZhbHVlQXJyYXkxMiB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5MTIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIp
IDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwKLSAgICAgIHY2
Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2
MTJfKHYxMikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTIoY29uc3QgVmFs
dWVBcnJheTEyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkx
MiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBU
MyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87
Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNv
bnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLWNsYXNzIFZhbHVlQXJyYXkxMyB7Ci0gcHVibGljOgot
ICBWYWx1ZUFycmF5MTMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQx
MyB2MTMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwKLSAgICAgIHY1Xyh2
NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2
MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEzKGNvbnN0IFZhbHVlQXJyYXkxMyYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwg
djEzXyhvdGhlci52MTNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQ+Ci1jbGFzcyBWYWx1ZUFycmF5MTQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE0KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0KSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8o
djYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYx
MSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkxNChjb25zdCBWYWx1ZUFycmF5MTQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3Ro
ZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVy
LnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52
OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIu
djExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTE0JiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotY2xhc3MgVmFsdWVBcnJheTE1IHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXkxNShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNf
KHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0
Xyh2MTQpLCB2MTVfKHYxNSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEy
XyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MTUoY29uc3QgVmFsdWVBcnJheTE1JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLWNsYXNzIFZhbHVl
QXJyYXkxNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTYoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYpIDog
djFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2
NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2
Xyh2MTYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
LCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3Rh
dGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxNihjb25zdCBWYWx1ZUFycmF5MTYmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkxNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0g
IGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0g
IGNvbnN0IFQxNiB2MTZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3PgotY2xhc3Mg
VmFsdWVBcnJheTE3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxNyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwKLSAgICAgIFQxNyB2MTcpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8o
djEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAg
djE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9
Ci0KLSAgVmFsdWVBcnJheTE3KGNvbnN0IFZhbHVlQXJyYXkxNyYgb3RoZXIpIDogdjFfKG90aGVy
LnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52
NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdf
KSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAg
ICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwg
djE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2
XyksIHYxN18ob3RoZXIudjE3Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTE3JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTg+Ci1jbGFzcyBWYWx1ZUFycmF5MTggewot
IHB1YmxpYzoKLSAgVmFsdWVBcnJheTE4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAg
ICAgVDE4IHYxOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUp
LCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2
MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYx
NSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4Xyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTgoY29u
c3QgVmFsdWVBcnJheTE4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOT4KLWNsYXNzIFZhbHVlQXJyYXkxOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTkoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQx
NSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5KSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2
N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIp
LCB2MTNfKHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdf
KHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJy
YXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxU
Pih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18p
LCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0
aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZh
bHVlQXJyYXkxOShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2
Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVf
KG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4Xyhv
dGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8o
b3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3Ro
ZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdf
KG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMD4KLWNsYXNzIFZhbHVlQXJyYXkyMCB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjAoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksCi0gICAgICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLAotICAgICAgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwKLSAgICAgIHYxOV8odjE5
KSwgdjIwXyh2MjApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MjAoY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgVmFsdWVBcnJheTIwJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2
Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0g
IGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0
IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBU
MTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBU
MTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBU
MTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLWNsYXNzIFZhbHVlQXJyYXkyMSB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5MjEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2
MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2
OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMp
LCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThf
KHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSkge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MjEoY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXykge30KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEg
djFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwot
ICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25z
dCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQx
MSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQx
NCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQx
NyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQy
MCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWNsYXNzIFZhbHVlQXJyYXkyMiB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyKSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgp
LCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2
MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2
MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjIoY29u
c3QgVmFsdWVBcnJheTIyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIw
XyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXykge30KLQotIHByaXZhdGU6Ci0g
IC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFf
OwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBj
b25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBU
OCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2
MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2
MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2
MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2
MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLWNsYXNz
IFZhbHVlQXJyYXkyMyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjMoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzKSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5
KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9
Ci0KLSAgVmFsdWVBcnJheTIzKGNvbnN0IFZhbHVlQXJyYXkyMyYgb3RoZXIpIDogdjFfKG90aGVy
LnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52
NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdf
KSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAg
ICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwg
djE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2
XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVy
LnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYy
Ml8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MjMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0PgotY2xhc3MgVmFsdWVBcnJheTI0IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXkyNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQpIDogdjFfKHYx
KSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwK
LSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCkge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxU
Pih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjQoY29uc3QgVmFsdWVBcnJheTI0JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyNCYg
b3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2
M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0g
IGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0
IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0
IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0
IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0
IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0
IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1jbGFzcyBWYWx1ZUFycmF5MjUgewotIHB1Ymxp
YzoKLSAgVmFsdWVBcnJheTI1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYy
NCwKLSAgICAgIFQyNSB2MjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8o
djEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAg
djE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0
aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0lu
KGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNShjb25zdCBWYWx1ZUFycmF5MjUmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAg
djdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhl
ci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18o
b3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2
MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAg
ICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwg
djIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0
XyksIHYyNV8ob3RoZXIudjI1Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTI1JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTgg
djE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEg
djIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQg
djI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2PgotY2xhc3MgVmFsdWVBcnJheTI2IHsKLSBwdWJsaWM6Ci0g
IFZhbHVlQXJyYXkyNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBU
NyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgs
IFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQy
NSB2MjUsCi0gICAgICBUMjYgdjI2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJy
YXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxU
Pih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18p
LCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0
aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MjYoY29uc3QgVmFsdWVBcnJheTI2JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90
aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3
XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5Xyks
IHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0g
ICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8p
LCB2MjZfKG90aGVyLnYyNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkyNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNz4KLWNs
YXNzIFZhbHVlQXJyYXkyNyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjcoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3
IHYyNykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8o
djYpLAotICAgICAgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYx
MSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLAotICAgICAgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYx
Nl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwKLSAgICAgIHYyMF8odjIw
KSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSks
Ci0gICAgICB2MjZfKHYyNiksIHYyN18odjI3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNyhjb25zdCBWYWx1ZUFy
cmF5MjcmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAg
ICB2MjdfKG90aGVyLnYyN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkyNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYy
N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOD4KLWNsYXNzIFZhbHVlQXJyYXkyOCB7Ci0gcHVi
bGljOgotICBWYWx1ZUFycmF5MjgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQg
djI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCkgOiB2MV8odjEp
LCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdf
KHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwK
LSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2
MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2
MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYy
NiksIHYyN18odjI3KSwgdjI4Xyh2MjgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nh
c3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxU
Pih2MjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkyOChjb25zdCBWYWx1ZUFycmF5MjgmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3Ro
ZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVy
LnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52
OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIu
djExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0
XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVy
LnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhv
dGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYy
M18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8o
b3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pIHt9
Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyOCYgb3RoZXIpOwot
Ci0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNv
bnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3
IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBf
OwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNf
OwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZf
OwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlf
OwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJf
OwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVf
OwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2Mjhf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLWNsYXNzIFZhbHVlQXJy
YXkyOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjkoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYy
OCwgVDI5IHYyOSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2
MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSkg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1
XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYy
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2
MjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXky
OShjb25zdCBWYWx1ZUFycmF5MjkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIu
djJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1
XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8p
LCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjEx
XyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0Xyks
Ci0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYx
N18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhl
ci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18o
b3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3Ro
ZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2Mjlf
KG90aGVyLnYyOV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkyOSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0g
IGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0g
IGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0g
IGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0g
IGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0g
IGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0g
IGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUg
VDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLWNsYXNzIFZhbHVlQXJyYXkzMCB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5MzAoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLAotICAgICAgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAot
ICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5
Xyh2MjkpLCB2MzBfKHYzMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEy
XyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxU
Pih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYx
OV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyks
IHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2
MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8p
LCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzAoY29uc3Qg
VmFsdWVBcnJheTMwJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0g
ICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8o
b3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90
aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJf
KG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAg
djE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4
XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyks
IHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYy
M18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8p
LAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52
MjlfKSwgdjMwXyhvdGhlci52MzBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MzAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLWNsYXNzIFZhbHVlQXJyYXkzMSB7Ci0gcHVibGljOgot
ICBWYWx1ZUFycmF5MzEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQx
MyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4
LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBU
MjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYz
MCwgVDMxIHYzMSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAot
ICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5
Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJh
eSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzEoY29uc3QgVmFsdWVBcnJheTMxJiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEw
XyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVy
LnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2Xyhv
dGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYx
OV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8o
b3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2
MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52Mjdf
KSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwK
LSAgICAgIHYzMV8ob3RoZXIudjMxXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgVmFsdWVBcnJheTMxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2
Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0g
IGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0
IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBU
MTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBU
MTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBU
MTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBU
MjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBU
MjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBU
MjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBU
MzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzI+
Ci1jbGFzcyBWYWx1ZUFycmF5MzIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTMyKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1
LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIx
IHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIpIDog
djFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2
NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2
Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8o
djIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwg
djI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2
MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
ICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5
W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwg
c3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRp
Y19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nh
c3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19j
YXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pfTsKLSAgICBy
ZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMyKGNvbnN0IFZhbHVl
QXJyYXkzMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAg
djNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVy
LnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52
OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhl
ci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8o
b3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3Ro
ZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFf
KG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwg
djI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAg
ICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5Xyks
IHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYz
Ml8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzMiYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187
Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNv
bnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQx
MCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQx
MyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQx
NiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQx
OSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQy
MiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQy
NSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQy
OCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQz
MSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzPgotY2xhc3MgVmFsdWVBcnJheTMzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXkzMyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLAotICAgICAgVDMzIHYzMykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCks
Ci0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8o
djE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2
MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2
MzNfKHYzMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRp
Y19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0
aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19j
YXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0
PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMzXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
MzMoY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8p
LAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52
MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3Ro
ZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNf
KG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90
aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5
XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyks
IHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwot
ICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25z
dCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2
OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFf
OwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRf
OwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdf
OwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBf
OwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNf
OwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZf
OwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2Mjlf
OwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJf
OwotICBjb25zdCBUMzMgdjMzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1jbGFzcyBWYWx1ZUFycmF5MzQgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTM0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1
IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0KSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAg
ICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNf
KHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyks
IHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8o
djIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAg
djI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYz
Ml8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBz
dGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKX07
Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkzNChjb25z
dCBWYWx1ZUFycmF5MzQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2
XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8o
b3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYx
Ml8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAg
ICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2
MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBf
KSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIu
djIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2
XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVy
LnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhv
dGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzQmIG90aGVyKTsKLQotICBjb25z
dCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2
NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0g
IGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29u
c3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29u
c3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29u
c3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29u
c3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29u
c3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29u
c3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29u
c3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29u
c3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNT4KLWNsYXNzIFZhbHVlQXJyYXkzNSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzUo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAg
VDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMy
IHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUpIDogdjFfKHYxKSwgdjJfKHYy
KSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4
Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEz
KSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4
Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIp
LCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2Mjdf
KHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAg
IHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19j
YXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0
PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4o
djM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTM1KGNvbnN0IFZhbHVlQXJyYXkzNSYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSB7fQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzUmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2PgotY2xhc3MgVmFsdWVB
cnJheTM2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIs
IFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAg
VDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0
Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAg
ICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2
MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2
MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNikge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRp
Y19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNf
Y2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0
PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+
KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3
XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxU
Pih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYz
NF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2Xyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzYoY29u
c3QgVmFsdWVBcnJheTM2JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIw
XyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVy
LnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYy
Nl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhl
ci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8o
b3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2
MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsK
LSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsK
LSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsK
LSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsK
LSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsK
LSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsK
LSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsK
LSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsK
LSAgY29uc3QgVDM2IHYzNl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzc+Ci1jbGFzcyBWYWx1ZUFycmF5MzcgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM3
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIw
IHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAg
IFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQz
MiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3
KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwK
LSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2
MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2
MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLAotICAgICAgdjI0Xyh2MjQpLCB2MjVfKHYy
NSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwKLSAgICAgIHYz
MF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVf
KHYzNSksCi0gICAgICB2MzZfKHYzNiksIHYzN18odjM3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25z
dCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8
VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlf
KSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+
KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2
XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwg
c3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYy
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0
YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM3Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MzcoY29uc3QgVmFsdWVBcnJheTM3JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90
aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3
XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5Xyks
IHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0g
ICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8p
LCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52
MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3Ro
ZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIu
djM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90
aGVyLnYzN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkz
NyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBU
MyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87
Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNv
bnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNv
bnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNv
bnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNv
bnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNv
bnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNv
bnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNv
bnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNv
bnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNv
bnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNv
bnN0IFQzNyB2MzdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzg+Ci1jbGFzcyBWYWx1ZUFycmF5MzggewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTM4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5
IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYy
NSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2
LCBUMzcgdjM3LCBUMzggdjM4KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCks
IHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8o
djE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwg
djI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0g
ICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMz
KSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4
Xyh2MzgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
LCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3Rh
dGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2Fz
dDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nh
c3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxU
Pih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
M18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8
VD4odjM4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5MzgoY29uc3QgVmFsdWVBcnJheTM4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90
aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhl
ci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIu
djhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVy
LnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYx
NF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhl
ci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8o
b3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2
MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZf
KG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwg
djI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMx
XyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0Xyks
Ci0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYz
N18pLCB2MzhfKG90aGVyLnYzOF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkzOCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzk+Ci1jbGFzcyBWYWx1ZUFycmF5MzkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM5KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBU
MTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQy
NiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5KSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5
KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0
Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAg
ICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwg
djM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2
MzgpLCB2MzlfKHYzOSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRp
Y19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0
PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYx
MF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyks
IHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2
MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8p
LCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0
YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBz
dGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0
aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5Xyl9OwotICAgIHJl
dHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzkoY29uc3QgVmFsdWVB
cnJheTM5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2
M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIu
djZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5
XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVy
LnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1Xyhv
dGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhl
ci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8o
b3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2
MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAg
ICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwg
djMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMy
XyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVy
LnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYz
OF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MzkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNv
bnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNv
bnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNv
bnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNv
bnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNv
bnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNv
bnN0IFQzOSB2MzlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwPgotY2xhc3MgVmFs
dWVBcnJheTQwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MChUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAg
ICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwg
VDQwIHY0MCkgOiB2MV8odjEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVf
KHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwKLSAgICAgIHYxMF8odjEw
KSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSks
Ci0gICAgICB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8o
djIwKSwgdjIxXyh2MjEpLAotICAgICAgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwg
djI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwKLSAgICAgIHYyOF8odjI4KSwgdjI5Xyh2
MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksCi0gICAgICB2
MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5
Xyh2MzkpLAotICAgICAgdjQwXyh2NDApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nh
c3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxU
Pih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
MF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8
VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2
MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8p
LCBzdGF0aWNfY2FzdDxUPih2NDBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk0MChjb25zdCBWYWx1ZUFycmF5NDAmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2Xyks
IHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYz
OV8pLCB2NDBfKG90aGVyLnY0MF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXk0MCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5
IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MT4KLWNsYXNzIFZhbHVlQXJyYXk0MSB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5NDEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwg
VDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2
MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsCi0gICAgICBUNDEgdjQxKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYz
NSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0
MF8odjQwKSwgdjQxXyh2NDEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8
VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2
MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8p
LCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4o
djI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2Mjhf
KSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBz
dGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwg
c3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0
aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDEoY29uc3QgVmFsdWVBcnJheTQxJiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3Xyhv
dGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhl
ci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18o
b3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2
MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAg
ICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDEmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIy
XzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1
XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4
XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMx
XzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0
XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3
XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQw
XzsKLSAgY29uc3QgVDQxIHY0MV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1jbGFzcyBWYWx1ZUFycmF5NDIgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTQyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQx
LAotICAgICAgVDQyIHY0MikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2
NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIw
Xyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQp
LCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2Mjlf
KHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMyks
IHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLAot
ICAgICAgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2Fz
dDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nh
c3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQyKGNvbnN0IFZhbHVlQXJyYXk0
MiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90
aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xyks
Ci0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2
MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJf
KSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIu
djE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4
XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVy
LnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0Xyhv
dGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYy
N18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8o
b3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2
MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVf
KSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwK
LSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQx
XyksIHY0Ml8ob3RoZXIudjQyXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTQyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTgg
djE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEg
djIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQg
djI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcg
djI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAg
djMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMg
djMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYg
djM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkg
djM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIg
djQyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEs
IHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzPgotY2xhc3MgVmFsdWVBcnJheTQzIHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXk0MyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQx
OCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBU
MzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYz
NSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwK
LSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRf
KHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSks
IHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8o
djE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYx
OSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYy
NF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4
KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMz
Xyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksCi0gICAg
ICB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSwg
djQzXyh2NDMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFt
R2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2Fz
dDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2
OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwg
c3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0
aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nh
c3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxU
Pih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0
Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXk0Myhjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5Xyhv
dGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhl
ci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8o
b3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2
MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAg
ICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwg
djM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2
XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVy
LnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0
Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNv
bnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNv
bnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNv
bnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNv
bnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNv
bnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNv
bnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNv
bnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NDQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTQ0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcg
djM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0Miwg
VDQzIHY0MywgVDQ0IHY0NCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2
NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYx
OSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQp
LAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2Mjlf
KHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyks
IHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksCi0gICAgICB2MzdfKHYzNyksIHYzOF8o
djM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpLAotICAgICAg
djQzXyh2NDMpLCB2NDRfKHY0NCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRp
Y19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0
PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+
KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIx
XyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYy
OF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyks
IHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2
MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18p
LCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0
YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRf
KX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0NChj
b25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJf
KSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1Xyks
IHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2
OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyks
IHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0g
ICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18p
LCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52
MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3Ro
ZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIu
djI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90
aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMy
XyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAg
IHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYz
OF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8p
LCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52
NDNfKSwgdjQ0XyhvdGhlci52NDRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5NDQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQz
MyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQz
NiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQz
OSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0
MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5
cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDU+Ci1jbGFzcyBWYWx1ZUFycmF5
NDUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3
LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2Mjgs
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQg
djM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQw
LCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSkgOiB2
MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2
KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAg
ICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwg
djE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2
MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2
MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksCi0gICAgICB2MzBfKHYz
MCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUp
LAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBf
KHY0MCksIHY0MV8odjQxKSwKLSAgICAgIHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCks
IHY0NV8odjQ1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8
VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk0NShjb25zdCBWYWx1ZUFycmF5NDUmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2Xyks
IHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYz
OV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8p
LAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52
NDVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDUmIG90
aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNf
OwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBj
b25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBU
MTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBU
MTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBU
MTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBU
MTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBU
MjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBU
MjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBU
MjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBU
MzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBU
MzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBU
MzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBU
NDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBU
NDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0
Nj4KLWNsYXNzIFZhbHVlQXJyYXk0NiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDYoVDEgdjEs
IFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwK
LSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2
MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYy
NiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwg
VDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2
MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzLCBU
NDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0g
ICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkp
LCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRf
KHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCks
IHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18o
djIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYy
OCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYz
M18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3
KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwKLSAgICAgIHY0MV8odjQxKSwgdjQy
Xyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLCB2NDZfKHY0Nikge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2
MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18p
LCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0
YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBz
dGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0
aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19j
YXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNf
Y2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0
PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTQ2KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52
MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3Ro
ZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIu
djQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90
aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29u
c3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29u
c3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29u
c3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29u
c3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29u
c3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29u
c3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29u
c3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29u
c3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29u
c3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29u
c3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29u
c3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAgY29u
c3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUg
VDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVu
YW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5h
bWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5
cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3
PgotY2xhc3MgVmFsdWVBcnJheTQ3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0NyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBU
MzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0
NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAg
ICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCks
IHY5Xyh2OSksIHYxMF8odjEwKSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYx
MyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYx
OF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAg
ICAgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyks
IHYyOF8odjI4KSwKLSAgICAgIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8o
djMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksCi0gICAgICB2MzVfKHYzNSksIHYzNl8odjM2KSwg
djM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLAotICAgICAgdjQxXyh2
NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLCB2NDVfKHY0NSksIHY0Nl8odjQ2
KSwKLSAgICAgIHY0N18odjQ3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+
KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4
XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwg
c3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYz
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3Xyks
IHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0
YXRpY19jYXN0PFQ+KHY0N18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTQ3KGNvbnN0IFZhbHVlQXJyYXk0NyYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwg
djhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAg
djExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0
XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2Xyks
IHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYx
OV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8p
LAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52
MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3Ro
ZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFf
KG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90
aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3
XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5Xyks
IHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXyksCi0g
ICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90aGVyLnY0NV8p
LCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSB7fQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDcmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3Qg
VDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3Qg
VDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3Qg
VDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLSAgY29uc3Qg
VDQ3IHY0N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBU
NDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLWNsYXNz
IFZhbHVlQXJyYXk0OCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDgoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYy
NywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywK
LSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBU
NDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LCBUNDggdjQ4KSA6IHYxXyh2MSksCi0gICAgICB2Ml8o
djIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgp
LCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2
MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAgIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2
MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksCi0gICAgICB2MjJfKHYy
MiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2Mjcp
LAotICAgICAgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJf
KHYzMiksIHYzM18odjMzKSwKLSAgICAgIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiks
IHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksCi0gICAgICB2NDBfKHY0MCksIHY0MV8o
djQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLAotICAgICAg
djQ2Xyh2NDYpLCB2NDdfKHY0NyksIHY0OF8odjQ4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8
VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0
OChjb25zdCBWYWx1ZUFycmF5NDgmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIu
djJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1
XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8p
LCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjEx
XyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0Xyks
Ci0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYx
N18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhl
ci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18o
b3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3Ro
ZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2Mjlf
KG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwg
djMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAg
ICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3Xyks
IHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0
MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhl
ci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52NDVfKSwgdjQ2XyhvdGhlci52
NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3XyksIHY0OF8ob3RoZXIudjQ4Xykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQ4JiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNv
bnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNv
bnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNv
bnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNv
bnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187Ci0gIGNv
bnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLSAgY29uc3QgVDQ2IHY0Nl87Ci0gIGNv
bnN0IFQ0NyB2NDdfOwotICBjb25zdCBUNDggdjQ4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0
NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+Ci1jbGFzcyBWYWx1ZUFycmF5NDkgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTQ5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQx
LAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3
IHY0NywgVDQ4IHY0OCwKLSAgICAgIFQ0OSB2NDkpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksCi0gICAgICB2MjdfKHYyNyksIHYy
OF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLAotICAg
ICAgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyks
IHYzOF8odjM4KSwKLSAgICAgIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8o
djQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksCi0gICAgICB2NDVfKHY0NSksIHY0Nl8odjQ2KSwg
djQ3Xyh2NDcpLCB2NDhfKHY0OCksIHY0OV8odjQ5KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8
VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDhfKSwgc3RhdGljX2Nhc3Q8VD4odjQ5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5NDkoY29uc3QgVmFsdWVBcnJheTQ5JiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwg
djI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAg
ICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyks
IHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYz
Nl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhl
ci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhlci52
NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0XyksIHY0NV8ob3Ro
ZXIudjQ1XyksIHY0Nl8ob3RoZXIudjQ2XyksCi0gICAgICB2NDdfKG90aGVyLnY0N18pLCB2NDhf
KG90aGVyLnY0OF8pLCB2NDlfKG90aGVyLnY0OV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29u
c3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUg
djVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwot
ICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAg
Y29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAg
Y29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAg
Y29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAg
Y29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAg
Y29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAg
Y29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAg
Y29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAg
Y29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAg
Y29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAg
Y29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAg
Y29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAg
Y29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBUNDcgdjQ3XzsKLSAg
Y29uc3QgVDQ4IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUwPgotY2xhc3MgVmFs
dWVBcnJheTUwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk1MChUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAg
ICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwg
VDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2
NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDksCi0gICAgICBUNTAgdjUwKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYz
NSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0
MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLAotICAg
ICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3KSwgdjQ4Xyh2NDgpLCB2NDlfKHY0OSks
IHY1MF8odjUwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8
VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0
PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhfKSwgc3RhdGljX2Nhc3Q8VD4o
djQ5XyksIHN0YXRpY19jYXN0PFQ+KHY1MF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTUwKGNvbnN0IFZhbHVlQXJyYXk1MCYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52
MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3Ro
ZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIu
djQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90
aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSwgdjQ4
XyhvdGhlci52NDhfKSwgdjQ5XyhvdGhlci52NDlfKSwgdjUwXyhvdGhlci52NTBfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NTAmIG90aGVyKTsKLQotICBj
b25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBU
NCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187
Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAg
Y29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAg
Y29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAg
Y29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAg
Y29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAg
Y29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAg
Y29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAg
Y29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAg
Y29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAg
Y29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAg
Y29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAg
Y29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAg
Y29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLSAg
Y29uc3QgVDQ3IHY0N187Ci0gIGNvbnN0IFQ0OCB2NDhfOwotICBjb25zdCBUNDkgdjQ5XzsKLSAg
Y29uc3QgVDUwIHY1MF87Ci19OwotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0vLyBJTlRFUk5B
TCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIEdlbmVy
YXRlcyB2YWx1ZXMgZnJvbSB0aGUgQ2FydGVzaWFuIHByb2R1Y3Qgb2YgdmFsdWVzIHByb2R1Y2Vk
Ci0vLyBieSB0aGUgYXJndW1lbnQgZ2VuZXJhdG9ycy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIKLSAgICA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDI+
ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gUGFyYW1U
eXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyKGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyKQotICAgICAgOiBn
MV8oZzEpLCBnMl8oZzIpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3Iy
KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVn
aW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdp
bigpLCBnMl8sIGcyXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3Io
dGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBn
MSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1
cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyKQotICAgICAg
ICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcx
LmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2lu
KCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MikgICAgewotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0K
LSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJh
c2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8v
IEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9y
cwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9m
IHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3Nl
cnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50Ml87Ci0gICAgICBpZiAoY3VycmVudDJfID09
IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVu
dDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7
Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBj
b25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5n
ZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1l
IGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJh
dG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNU
X0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAg
ICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAg
ICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAg
ICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNh
c3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0
IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgot
ICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkg
b2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAg
ICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAg
ICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAg
ICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfKTsKLSAgICB9Ci0KLSAg
IHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6
IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAg
ICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVu
dDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3Ro
ZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSB7Ci0gICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZh
bHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNl
dChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8pKTsKLSAgICB9Ci0gICAgYm9v
bCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3Qg
dGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25l
bnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0
dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJf
ID09IGVuZDJfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVu
dCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3Ro
ZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29u
c3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCBy
YW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUg
YWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+
OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRf
dmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI6Okl0ZXJh
dG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMiYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQyPiBnMl87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIK
LQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLWNs
YXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPiB7Ci0gcHVibGljOgot
ICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gUGFyYW1UeXBlOwotCi0gIENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0g
ICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
Mz4mIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpIHt9Ci0gIHZpcnR1YWwg
fkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0g
ICAgICAgIGczXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhp
cywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46
Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIs
Ci0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJy
ZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MykKLSAgICAgICAg
OiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5l
bmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigp
KSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJlZ2lu
M18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSAgICB7
Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJh
dG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAg
ICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFu
Z2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJl
eW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsK
LSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQzXzsKLSAgICAgIGlmIChj
dXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAg
ICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7
Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAg
ICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICBy
ZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJh
bVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2Vu
ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9m
IHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhC
YXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJU
aGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8
ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3Qg
SXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVh
bFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBp
dGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8g
cmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlv
bnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVy
biAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAg
ICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1
cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50M18pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICBJ
dGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIuYmFz
ZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhvdGhl
ci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAgICBi
ZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0gICAg
ICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVyLmJl
Z2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQzXyhv
dGhlci5jdXJyZW50M18pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0K
LSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0g
ICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1
cnJlbnQyXywgKmN1cnJlbnQzXykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3Qgewot
ICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5n
ZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJl
YWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJy
ZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAg
ICAgICBjdXJyZW50M18gPT0gZW5kM187Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRp
b24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVm
aW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJl
bnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlw
ZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yMzo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3IzJiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGcz
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMwotCi0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWNs
YXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQ+ID4gewotIHB1Ymxp
YzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiBQYXJhbVR5cGU7
Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjQoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0KQotICAg
ICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpIHt9Ci0gIHZpcnR1YWwgfkNh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAg
ICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGcz
Xy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgotICBj
bGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4g
ewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3VycmVu
dDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVy
YXRvciYgY3VycmVudDQpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4x
XyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAotICAg
ICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1
cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSks
IGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5k
NF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpICAgIHsKLSAgICAgIENvbXB1dGVDdXJy
ZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmly
dHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJh
dG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNl
IHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAv
LyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwg
ZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVu
ZCgpKTsKLSAgICAgICsrY3VycmVudDRfOwotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0Xykg
ewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAg
ICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNf
ID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3Vy
cmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAg
ICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAg
IH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUo
KSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50
X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5n
IHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAg
IC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAg
ICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigp
KQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRv
cnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjpl
bmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAv
LyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9u
ZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBh
IHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRF
bmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwK
LSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQx
XyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0g
ICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0Xyk7Ci0gICAgfQotCi0gICBwcml2
YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNl
XyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAg
IGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyks
Ci0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVu
ZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2lu
M18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAg
Y3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40
XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVy
LmN1cnJlbnQ0XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAg
IHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAg
ICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVu
dDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XykpOwotICAgIH0KLSAgICBi
b29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFz
dCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBv
bmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICBy
ZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50
Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gZW5kNF87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0
ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5l
IHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRb
aV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3Vy
cmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNDo6
SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0
JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yNAotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yNQotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRl
c3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVm
IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiBQYXJhbVR5cGU7Ci0KLSAgQ2Fy
dGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQz
PiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNT4mIGc1KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1KCkg
e30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4o
KSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigp
LCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5i
ZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0
b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwK
LSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3Im
IGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBn
NSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ1KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVn
aW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBi
ZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50Miks
Ci0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50
M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVu
ZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkp
LCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSkgICAgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VH
ZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFk
dmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwot
ICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJh
bmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQo
IUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50NV87Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVu
ZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRf
OwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJy
ZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAg
ICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJf
KSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwot
ICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQ
YXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsg
fQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2Ug
Z2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlz
IG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNL
XyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8
ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAg
IDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29u
c3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0Fj
dHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9y
dCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAg
Ly8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFz
aGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJl
dHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAg
ICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAg
IGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVu
dDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9v
dGhlci0+Y3VycmVudDVfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29u
c3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAg
ICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAot
ICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhl
ci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50
Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAg
ICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVu
dDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3Ro
ZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAg
YmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAg
ICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZh
bHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAg
aWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBl
KCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0gICAgICAgICAgICAqY3VycmVu
dDRfLCAqY3VycmVudDVfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAg
ICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdo
ZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hl
ZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQx
XyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAg
IGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ld
XyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8g
Y3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBl
PiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3I1OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1
bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjUmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNf
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNT4gZzVfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1Ci0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3I2Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVz
dGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LAotICAgICAgICBUNj4gPiB7Ci0gcHVibGlj
OgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gUGFy
YW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2KGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBn
NCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQ2PiYgZzYpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCks
IGc1XyhnNSksIGc2XyhnNikge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjYoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
ZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJl
Z2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0Xywg
ZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCkpOwotICB9Ci0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7
Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8u
ZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8u
ZW5kKCksIGc2XywgZzZfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0
b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1Ymxp
YzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6
aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAot
ICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFf
KGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQo
KSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwg
ZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8o
ZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAg
ICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJy
ZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBj
dXJyZW50Nl8oY3VycmVudDYpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3Qgewot
ICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25l
bnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZp
cnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsr
Y3VycmVudDZfOwotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJy
ZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAg
ICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRf
KSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50
M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAg
ICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9u
ZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJl
bnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZp
bmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAg
ICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0Lgot
ICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9y
KCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJh
dG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6
OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENo
ZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAg
IC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5
b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGlu
IGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBB
dEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8
fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVu
dDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYK
LSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAg
ICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAgICAgY3Vy
cmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0
ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNl
XyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVy
LmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJl
Z2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAg
ICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVn
aW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90
aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAg
IGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0Xyks
Ci0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVu
ZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2lu
Nl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAg
Y3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICgh
QXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3Vy
cmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0Xywg
KmN1cnJlbnQ1XywgKmN1cnJlbnQ2XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3Qg
ewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSBy
YW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFz
IHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBj
dXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAg
ICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5k
NF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50
Nl8gPT0gZW5kNl87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBv
dGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBj
b25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRo
IHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRo
ZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46
Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
ND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0
ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46
Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+
OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJh
dG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0
ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+Ojpp
dGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9y
IGN1cnJlbnQ2XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0g
IH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNjo6SXRlcmF0b3IKLQotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2JiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNgotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcKLSAgICA6IHB1YmxpYyBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LAotICAgICAgICBUNz4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVw
bGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yNyhjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUNz4mIGc3KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBn
NF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3I3KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0
aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGcz
Xy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5i
ZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGcz
Xy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2
Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVy
YXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVi
bGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+
OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0
LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciYgY3Vy
cmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1LAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciYgY3VycmVudDUsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDY+OjppdGVyYXRvciYgY3VycmVudDYsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciYgY3VycmVudDcpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVn
aW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAot
ICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJf
KGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQo
KSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwg
ZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpLAotICAgICAgICAgIGJlZ2luNV8o
ZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3VycmVudDVfKGN1cnJlbnQ1KSwKLSAgICAg
ICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2XyhnNi5lbmQoKSksIGN1cnJlbnQ2XyhjdXJy
ZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdpbigpKSwgZW5kN18oZzcuZW5kKCkpLCBj
dXJyZW50N18oY3VycmVudDcpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3Qgewot
ICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25l
bnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZp
cnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsr
Y3VycmVudDdfOwotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3XykgewotICAgICAgICBjdXJy
ZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVudDZfID0gYmVnaW42XzsKLSAg
ICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVuZDVf
KSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50
NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAg
ICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7
Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAg
ICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICBy
ZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJh
bVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2Vu
ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9m
IHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhC
YXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJU
aGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8
ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3Qg
SXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVh
bFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBp
dGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8g
cmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlv
bnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVy
biAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAg
ICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1
cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlw
ZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhl
ci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3Xyk7
Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhl
cikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIu
YmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFf
KG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAg
ICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQy
XyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVy
LmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJl
Z2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAg
ICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVn
aW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90
aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAg
IGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2Xyks
Ci0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVu
ZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XykgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
IHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3
IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAg
ICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XykpOwotICAg
IH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRl
cmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAg
IC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2Uu
Ci0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAg
ICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwK
LSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0g
ZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl8gfHwKLSAgICAgICAgICBjdXJy
ZW50N18gPT0gZW5kN187Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9y
JiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBp
LXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlz
IHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46
Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
NT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0
ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46
Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+
OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJh
dG9yIGN1cnJlbnQ2XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0
ZXJhdG9yIGJlZ2luN187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciBlbmQ3XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9y
IGN1cnJlbnQ3XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0g
IH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzo6SXRlcmF0b3IKLQotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3JiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsK
LX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNwotCi0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLWNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAg
ICAgVDcsIFQ4PiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yOChjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1
PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCkKLSAg
ICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2
KSwgZzdfKGc3KSwKLSAgICAgICAgICBnOF8oZzgpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I4KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlz
LCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5i
ZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdp
bigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4Xy5iZWdpbigpKTsKLSAgfQot
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qg
ewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJf
LmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVf
LmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywKLSAgICAgICAgZzhf
LmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRv
cihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6
aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJl
bnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4KQotICAgICAgICA6IGJh
c2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgp
KSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBl
bmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhn
My5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAg
ICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJl
bnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1
cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8o
ZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVn
aW4oKSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBi
ZWdpbjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCkg
ICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5J
dGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87
Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9m
LXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBi
ZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2Uo
KSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50OF87Ci0gICAgICBp
ZiAoY3VycmVudDhfID09IGVuZDhfKSB7Ci0gICAgICAgIGN1cnJlbnQ4XyA9IGJlZ2luOF87Ci0g
ICAgICAgICsrY3VycmVudDdfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3
XykgewotICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsK
LSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVu
dDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAo
Y3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAg
ICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0Xykg
ewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAg
ICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNf
ID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3Vy
cmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAg
ICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAg
IH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUo
KSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50
X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5n
IHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAg
IC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAg
ICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigp
KQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRv
cnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjpl
bmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAv
LyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9u
ZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBh
IHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRF
bmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwK
LSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQx
XyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0g
ICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJl
bnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09
IHR5cGVkX290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQ3XyAmJgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDhfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRl
cmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVn
aW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAg
ICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdp
bjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3Ro
ZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAg
ZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwK
LSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5k
NF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41
XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBj
dXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSwKLSAgICAgICAgYmVnaW42XyhvdGhlci5iZWdpbjZf
KSwKLSAgICAgICAgZW5kNl8ob3RoZXIuZW5kNl8pLAotICAgICAgICBjdXJyZW50Nl8ob3RoZXIu
Y3VycmVudDZfKSwKLSAgICAgICAgYmVnaW43XyhvdGhlci5iZWdpbjdfKSwKLSAgICAgICAgZW5k
N18ob3RoZXIuZW5kN18pLAotICAgICAgICBjdXJyZW50N18ob3RoZXIuY3VycmVudDdfKSwKLSAg
ICAgICAgYmVnaW44XyhvdGhlci5iZWdpbjhfKSwKLSAgICAgICAgZW5kOF8ob3RoZXIuZW5kOF8p
LAotICAgICAgICBjdXJyZW50OF8ob3RoZXIuY3VycmVudDhfKSB7Ci0gICAgICBDb21wdXRlQ3Vy
cmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewot
ICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFy
YW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0gICAgICAgICAgICAq
Y3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZfLCAqY3VycmVudDdfLCAqY3VycmVudDhf
KSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJl
cG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRo
ZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0
cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAot
ICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBl
bmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJl
bnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAg
ICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XzsK
LSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwot
ICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJ
dGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2
ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6
aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46
Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0
b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRl
cmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0
ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3Ig
Y3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0
b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJh
dG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3Vy
cmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3Ig
YmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9y
IGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVu
dDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVn
aW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVu
ZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgYmVnaW42
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGVuZDZf
OwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgY3VycmVudDZfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgYmVnaW43XzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGVuZDdfOwot
ICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgY3VycmVudDdfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgYmVnaW44XzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGVuZDhfOwotICAg
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgY3VycmVudDhfOwotICAgIGxp
bmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I4OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9u
IC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2Fy
dGVzaWFuUHJvZHVjdEdlbmVyYXRvcjgmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4g
ZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUOD4gZzhfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5Ci0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBUOT4gPiB7Ci0gcHVibGljOgot
ICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOT4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5KGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcy
LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOT4m
IGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUp
LCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAgICAgICAgIGc5XyhnOSkge30KLSAgdmly
dHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4g
bmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCksIGcz
XywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2lu
KCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAgICAgICAgZzdfLmJlZ2luKCksIGc4XywgZzhf
LmJlZ2luKCksIGc5XywgZzlfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgp
LAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgp
LCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5kKCksIGc5XywgZzlfLmVuZCgp
KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25z
dCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0
b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+
JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3Im
IGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAg
IGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQx
KSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJl
bnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMu
ZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4o
KSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdp
bjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0g
ICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8o
Y3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVuZDdfKGc3LmVuZCgp
KSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBiZWdpbjhfKGc4LmJlZ2luKCkpLCBl
bmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCksCi0gICAgICAgICAgYmVnaW45Xyhn
OS5iZWdpbigpKSwgZW5kOV8oZzkuZW5kKCkpLCBjdXJyZW50OV8oY3VycmVudDkpICAgIHsKLSAg
ICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3Io
KSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0K
LSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBp
dGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25k
IGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAg
ICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDlfOwotICAgICAgaWYgKGN1cnJl
bnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50OV8gPSBiZWdpbjlfOwotICAgICAgICAr
K2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50OF8gPT0gZW5kOF8pIHsKLSAg
ICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAgICAgKytjdXJyZW50N187Ci0gICAgICB9
Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7Ci0gICAgICAgIGN1cnJlbnQ3XyA9IGJl
Z2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ2
XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1
cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAg
ICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0g
ICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2lu
NF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9
PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJl
bnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAg
Y3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcg
SXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3Vy
cmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVh
bCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90
aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3Vh
cmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUg
dHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0
b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFt
IGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlm
ZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciog
dHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25z
dCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBl
cXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZl
IHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAg
IC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgp
ICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJl
bnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09
IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50
NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2XyAmJgot
ICAgICAgICAgIGN1cnJlbnQ3XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDdfICYmCi0gICAgICAg
ICAgY3VycmVudDhfID09IHR5cGVkX290aGVyLT5jdXJyZW50OF8gJiYKLSAgICAgICAgICBjdXJy
ZW50OV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ5Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgot
ICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhl
ci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFf
KG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAg
ICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwK
LSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3Ro
ZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVu
dDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0g
ICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJl
bnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90
aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAg
IGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAg
ICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIu
YmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdf
KG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAg
ICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4
XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVnaW45XyksCi0gICAgICAgIGVuZDlfKG90aGVy
LmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90aGVyLmN1cnJlbnQ5XykgewotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1
ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQo
bmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAg
ICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1
cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVu
ZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVu
ZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRl
cmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0g
ICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVu
ZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAgICAgICAgY3VycmVu
dDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVuZDVfIHx8Ci0gICAgICAg
ICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAgICAgY3VycmVudDdfID09IGVuZDdfIHx8
Ci0gICAgICAgICAgY3VycmVudDhfID09IGVuZDhfIHx8Ci0gICAgICAgICAgY3VycmVudDlfID09
IGVuZDlfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIp
OwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3Qg
YmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5n
ZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0
dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+
OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+Ojpp
dGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+
OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQz
Pjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVy
YXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+Ojpp
dGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6
aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRv
ciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVy
YXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRl
cmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBj
dXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRv
ciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0
b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBjdXJy
ZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBi
ZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3Ig
ZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBjdXJyZW50
N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBiZWdp
bjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgZW5k
OF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBjdXJyZW50OF87
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBiZWdpbjlf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgZW5kOV87
Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBjdXJyZW50OV87Ci0g
ICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjk6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOSYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiBnNF87
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiBnN187Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ4PiBnOF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5PiBnOV87Ci19OyAg
Ly8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkKLQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTA+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMTAKLSAgICA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNywgVDgsIFQ5LCBUMTA+ID4gewotIHB1YmxpYzoK
LSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMD4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMChj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4mIGcxMCkKLSAgICAg
IDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwg
ZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpLCBnMTBfKGcxMCkge30KLSAgdmly
dHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwKCkge30KLQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBn
M18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdp
bigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4
Xy5iZWdpbigpLCBnOV8sIGc5Xy5iZWdpbigpLCBnMTBfLCBnMTBfLmJlZ2luKCkpOwotICB9Ci0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7
Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8u
ZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8u
ZW5kKCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8u
ZW5kKCksIGc5XywgZzlfLmVuZCgpLCBnMTBfLCBnMTBfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3Im
IGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBn
NSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ5LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiYgZzEwLAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3ImIGN1cnJlbnQxMCkKLSAgICAg
ICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhn
MS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdp
bigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJl
Z2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSwK
LSAgICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBlbmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0
XyhjdXJyZW50NCksCi0gICAgICAgICAgYmVnaW41XyhnNS5iZWdpbigpKSwgZW5kNV8oZzUuZW5k
KCkpLCBjdXJyZW50NV8oY3VycmVudDUpLAotICAgICAgICAgIGJlZ2luNl8oZzYuYmVnaW4oKSks
IGVuZDZfKGc2LmVuZCgpKSwgY3VycmVudDZfKGN1cnJlbnQ2KSwKLSAgICAgICAgICBiZWdpbjdf
KGc3LmJlZ2luKCkpLCBlbmQ3XyhnNy5lbmQoKSksIGN1cnJlbnQ3XyhjdXJyZW50NyksCi0gICAg
ICAgICAgYmVnaW44XyhnOC5iZWdpbigpKSwgZW5kOF8oZzguZW5kKCkpLCBjdXJyZW50OF8oY3Vy
cmVudDgpLAotICAgICAgICAgIGJlZ2luOV8oZzkuYmVnaW4oKSksIGVuZDlfKGc5LmVuZCgpKSwg
Y3VycmVudDlfKGN1cnJlbnQ5KSwKLSAgICAgICAgICBiZWdpbjEwXyhnMTAuYmVnaW4oKSksIGVu
ZDEwXyhnMTAuZW5kKCkpLCBjdXJyZW50MTBfKGN1cnJlbnQxMCkgICAgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VH
ZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFk
dmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwot
ICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJh
bmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQo
IUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50MTBfOwotICAgICAgaWYgKGN1cnJlbnQxMF8gPT0g
ZW5kMTBfKSB7Ci0gICAgICAgIGN1cnJlbnQxMF8gPSBiZWdpbjEwXzsKLSAgICAgICAgKytjdXJy
ZW50OV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDlfID09IGVuZDlfKSB7Ci0gICAgICAg
IGN1cnJlbnQ5XyA9IGJlZ2luOV87Ci0gICAgICAgICsrY3VycmVudDhfOwotICAgICAgfQotICAg
ICAgaWYgKGN1cnJlbnQ4XyA9PSBlbmQ4XykgewotICAgICAgICBjdXJyZW50OF8gPSBiZWdpbjhf
OwotICAgICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50N18gPT0g
ZW5kN18pIHsKLSAgICAgICAgY3VycmVudDdfID0gYmVnaW43XzsKLSAgICAgICAgKytjdXJyZW50
Nl87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7Ci0gICAgICAgIGN1
cnJlbnQ2XyA9IGJlZ2luNl87Ci0gICAgICAgICsrY3VycmVudDVfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQ1XyA9PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwot
ICAgICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5k
NF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJl
bnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAg
ICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENs
b25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3Vy
cmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhh
dmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0g
ICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3Qu
Ci0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0
b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRl
cmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0
ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAg
Q2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAg
ICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBi
ZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4g
aW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0
IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkp
IHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAm
JgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAg
ICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYKLSAgICAgICAgICBj
dXJyZW50NV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ1XyAmJgotICAgICAgICAgIGN1cnJlbnQ2
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDZfICYmCi0gICAgICAgICAgY3VycmVudDdfID09IHR5
cGVkX290aGVyLT5jdXJyZW50N18gJiYKLSAgICAgICAgICBjdXJyZW50OF8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQ4XyAmJgotICAgICAgICAgIGN1cnJlbnQ5XyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDlfICYmCi0gICAgICAgICAgY3VycmVudDEwXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDEw
Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBv
dGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3Ro
ZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVu
dDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0g
ICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJl
bnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90
aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAg
IGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAg
ICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIu
YmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVf
KG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAg
ICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2
XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVy
LmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJl
Z2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAg
ICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVn
aW45XyksCi0gICAgICAgIGVuZDlfKG90aGVyLmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90
aGVyLmN1cnJlbnQ5XyksCi0gICAgICAgIGJlZ2luMTBfKG90aGVyLmJlZ2luMTBfKSwKLSAgICAg
ICAgZW5kMTBfKG90aGVyLmVuZDEwXyksCi0gICAgICAgIGN1cnJlbnQxMF8ob3RoZXIuY3VycmVu
dDEwXykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQg
Q29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3Vy
cmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAq
Y3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2
XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8sICpjdXJy
ZW50MTBfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBt
dXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVy
IG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5k
IG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQx
XyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQz
XyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAg
IGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBl
bmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5XyA9PSBlbmQ5XyB8fAotICAgICAgICAgIGN1cnJl
bnQxMF8gPT0gZW5kMTBfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRv
ciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUg
aS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBp
cyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+
OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+Ojpp
dGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+
OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2
Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVy
YXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6
aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRv
ciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVy
YXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRl
cmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBj
dXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRv
ciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0
b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBjdXJy
ZW50OV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3Ig
YmVnaW4xMF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0
b3IgZW5kMTBfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0ZXJhdG9yIGN1
cnJlbnQxMF87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9
OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwOjpJdGVyYXRvcgotCi0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwJiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsK
LSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+IGc4XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDk+IGc5XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiBnMTBfOwotfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMAotCi0KLS8vIElOVEVSTkFMIElNUExFTUVOVEFU
SU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gSGVscGVyIGNsYXNzZXMgcHJv
dmlkaW5nIENvbWJpbmUoKSB3aXRoIHBvbHltb3JwaGljIGZlYXR1cmVzLiBUaGV5IGFsbG93Ci0v
LyBjYXN0aW5nIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3JOPFQ+IHRvIFBhcmFtR2VuZXJhdG9y
PFU+IGlmIFQgaXMKLS8vIGNvbnZlcnRpYmxlIHRvIFUuCi0vLwotdGVtcGxhdGUgPGNsYXNzIEdl
bmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjI+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
MiB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjIoY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpIHt9Ci0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4g
UGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyPiA+KAotICAgICAgICBuZXcg
Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI8VDEsIFQyPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDI+ID4oZzJfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IENhcnRlc2lhblByb2R1Y3RIb2xkZXIyJiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBn
MV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1
Y3RIb2xkZXIyCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3Iy
LCBjbGFzcyBHZW5lcmF0b3IzPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjMgewotIHB1
YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIzKGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25z
dCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMykKLSAgICAgIDogZzFf
KGcxKSwgZzJfKGcyKSwgZzNfKGczKSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMz4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGlu
Zzo6dHVwbGU8VDEsIFQyLCBUMz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0
b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPigKLSAgICAgICAgbmV3IENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3IzPFQxLCBUMiwgVDM+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihn
M18pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjMmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3Qg
R2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotfTsgIC8vIGNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXIzCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFz
cyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQ+Ci1j
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNCB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVj
dEhvbGRlcjQoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCkKLSAgICAgIDogZzFf
KGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiA+KCkgY29uc3Qg
ewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQz
LCBUND4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0PFQxLCBUMiwg
VDMsIFQ0PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI0JiBvdGhlcik7Ci0KLSAgY29uc3Qg
R2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0
b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEhvbGRlcjQKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVy
YXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xhc3MgR2Vu
ZXJhdG9yNT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI1IHsKLSBwdWJsaWM6Ci1DYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyNShjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9y
MiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBj
b25zdCBHZW5lcmF0b3I1JiBnNSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwg
ZzRfKGc0KSwgZzVfKGc1KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDU+ID4oKSBjb25z
dCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwg
VDMsIFQ0LCBUNT4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1PFQx
LCBUMiwgVDMsIFQ0LCBUNT4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQx
PiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNSYgb3RoZXIpOwotCi0gIGNvbnN0
IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJh
dG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNQotCi10ZW1wbGF0ZSA8Y2xh
c3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBj
bGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2PgotY2xh
c3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RI
b2xkZXI2KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBj
b25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRv
cjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2KQotICAgICAgOiBnMV8oZzEpLCBnMl8o
ZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpIHt9Ci0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNj4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gPigpIGNvbnN0IHsKLSAgICBy
ZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNj4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDY+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4g
PihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdl
bmVyYXRvcjxUNj4gPihnNl8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3Ix
IGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwot
ICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0
IEdlbmVyYXRvcjYgZzZfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI2Ci0K
LXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5l
cmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdl
bmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjc+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
NyB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjcoY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25z
dCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJh
dG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIp
LCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpIHt9Ci0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci0gIG9wZXJhdG9y
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
Ci0gICAgICBUNz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVz
dGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+ID4oCi0gICAgICAgIG5ldyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2Vu
ZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1
PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3XykpKTsKLSAgfQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNyYg
b3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcy
XzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBj
b25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdl
bmVyYXRvcjcgZzdfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI3Ci0KLXRl
bXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0
b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdlbmVy
YXRvcjYsIGNsYXNzIEdlbmVyYXRvcjcsCi0gICAgY2xhc3MgR2VuZXJhdG9yOD4KLWNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXI4IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
OChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3Qg
R2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBn
NSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNiwgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0
IEdlbmVyYXRvcjgmIGc4KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLAotICAgICAgICAgIGc4XyhnOCkge30KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDg+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LAotICAgICAgVDg+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2Vu
ZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQy
PiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQ3PiA+KGc3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQ4PiA+KGc4XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyOCYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwot
ICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0
IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJh
dG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotICBjb25zdCBHZW5lcmF0b3I4IGc4
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOAotCi10ZW1wbGF0ZSA8Y2xh
c3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBj
bGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFz
cyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjk+Ci1j
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOSB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVj
dEhvbGRlcjkoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJh
dG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3
LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5JiBnOSkKLSAgICAg
IDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwg
ZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpIHt9Ci0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LAotICAgICAgVDk+ID4oKSBjb25zdCB7Ci0gICAgcmV0
dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwKLSAgICAgICAgVDk+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PigKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1H
ZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4oZzdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDk+ID4oZzlfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI5JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJh
dG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGcz
XzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBj
b25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187Ci0gIGNvbnN0IEdl
bmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5IGc5XzsKLX07ICAvLyBjbGFzcyBDYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyOQotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3Mg
R2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFz
cyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3LAotICAgIGNs
YXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjksIGNsYXNzIEdlbmVyYXRvcjEwPgotY2xh
c3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0
SG9sZGVyMTAoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJh
dG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3
LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5JiBnOSwgY29uc3Qg
R2VuZXJhdG9yMTAmIGcxMCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRf
KGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8o
ZzkpLCBnMTBfKGcxMCkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICBUMTA+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksCi0gICAgICAgIFQxMD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3IxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LAotICAgICAg
ICAgICAgVDEwPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4o
ZzdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDk+ID4oZzlfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDEwPiA+KGcxMF8pKSk7Ci0gIH0KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwJiBvdGhlcik7Ci0K
LSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25z
dCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVy
YXRvcjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBn
N187Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5IGc5XzsKLSAg
Y29uc3QgR2VuZXJhdG9yMTAgZzEwXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyMTAKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKLQotfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5wdW1wIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwZGZmZTQzYzNjNjc4NTY4NTI0NmRiNWYz
MWQxOTQ3YzhhMjJjMjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVz
dC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKKysrIC9kZXYvbnVsbApAQCAtMSwyODIgKzAs
MCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1MCAgJCQgTWF4aW11bSBsZW5n
dGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kdmFyIG1heHR1cGxl
ID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJndW1lbnRzIHdlIHdhbnQgdG8g
c3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJl
c2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8K
LS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
Ly8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LS8vIFR5cGUgYW5kIGZ1bmN0aW9uIHV0aWxpdGllcyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRl
cml6ZWQgdGVzdHMuCi0vLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8g
Tk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgR29vZ2xlIFRlc3Qgc3VwcG9ydHMg
YXQgbW9zdCAkbiBhcmd1bWVudHMgaW4gVmFsdWVzLAotLy8gYW5kIGF0IG1vc3QgJG1heHR1cGxl
IGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0
aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGltaXRlZAotLy8gYnkg
dGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlz
Ci0vLyBjdXJyZW50bHkgc2V0IGF0ICRtYXh0dXBsZS4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEg
RE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RF
U1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGb3J3YXJkIGRlY2xhcmF0
aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgotLy8gaW5jbHVkZS9n
dGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJh
dG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBlbmFtZSA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgotVmFs
dWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+
IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pOwotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFp
bmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVf
dHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOwotCi1uYW1l
c3BhY2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGluIHRoZSBWYWx1ZXMoKSBmdW5jdGlvbiB0byBw
cm92aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGllcy4KLSRyYW5nZSBpIDEuLm4KLSRmb3IgaSBb
WwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgot
Y2xhc3MgVmFsdWVBcnJheSRpIHsKLSBwdWJsaWM6Ci0gICRpZiBpPT0xIFtbZXhwbGljaXQgXV1W
YWx1ZUFycmF5JGkoJGZvciBqLCBbW1QkaiB2JGpdXSkgOiAkZm9yIGosIFtbdiQoailfKHYkaild
XSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRv
cjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7JGZvciBqLCBbW3N0YXRpY19j
YXN0PFQ+KHYkKGopXyldXX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0g
IFZhbHVlQXJyYXkkaShjb25zdCBWYWx1ZUFycmF5JGkmIG90aGVyKSA6ICRmb3IgaiwgW1t2JChq
KV8ob3RoZXIudiQoailfKV1dIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkkaSYgb3RoZXIpOwotCi0kZm9yIGogW1sKLQotICBjb25zdCBUJGogdiQoailfOwot
XV0KLQotfTsKLQotXV0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8gSU5URVJOQUwgSU1Q
TEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0vLyBHZW5lcmF0ZXMg
dmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIHZhbHVlcyBwcm9kdWNlZAotLy8g
YnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwotJHJhbmdlIGkgMi4ubWF4dHVwbGUKLSRm
b3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgMi4uaQotCi10ZW1wbGF0ZSA8JGZvciBq
LCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvciRpCi0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8JGZv
ciBqLCBbW1Qkal1dPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTwk
Zm9yIGosIFtbVCRqXV0+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
JGkoJGZvciBqLCBbW2NvbnN0IFBhcmFtR2VuZXJhdG9yPFQkaj4mIGckal1dKQotICAgICAgOiAk
Zm9yIGosIFtbZyQoailfKGckaildXSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yJGkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsICRmb3Ig
aiwgW1tnJChqKV8sIGckKGopXy5iZWdpbigpXV0pOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCAkZm9yIGosIFtbZyQoailfLCBnJChqKV8uZW5kKCldXSk7Ci0gIH0KLQot
IHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwgJGZvciBqLCBbWwotCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGosCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUJGo+OjppdGVyYXRvciYgY3VycmVudCQoaildXSkKLSAgICAgICAgOiBiYXNlXyhi
YXNlKSwKLSRmb3IgaiwgW1sKLQotICAgICAgICAgIGJlZ2luJChqKV8oZyRqLmJlZ2luKCkpLCBl
bmQkKGopXyhnJGouZW5kKCkpLCBjdXJyZW50JChqKV8oY3VycmVudCRqKQotXV0gICAgewotICAg
ICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigp
IHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQot
ICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0
ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQg
ZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAg
ICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50JChpKV87Ci0KLSRmb3IgayBbWwot
ICAgICAgaWYgKGN1cnJlbnQkKGkrMi1rKV8gPT0gZW5kJChpKzItaylfKSB7Ci0gICAgICAgIGN1
cnJlbnQkKGkrMi1rKV8gPSBiZWdpbiQoaSsyLWspXzsKLSAgICAgICAgKytjdXJyZW50JChpKzIt
ay0xKV87Ci0gICAgICB9Ci0KLV1dCi0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAg
fQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgp
IGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2
aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRf
dmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcg
dGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAg
Ly8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAg
ICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkp
Ci0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9y
cyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVu
ZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNr
ZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8v
IFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25k
IHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEg
dmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVu
ZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAot
ICAgICAgICAgKCRmb3IgaiAgJiYgW1sKLQotICAgICAgICAgIGN1cnJlbnQkKGopXyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudCQoailfCi1dXSk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0
ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNl
XyksICRmb3IgaiwgW1sKLQotICAgICAgICBiZWdpbiQoailfKG90aGVyLmJlZ2luJChqKV8pLAot
ICAgICAgICBlbmQkKGopXyhvdGhlci5lbmQkKGopXyksCi0gICAgICAgIGN1cnJlbnQkKGopXyhv
dGhlci5jdXJyZW50JChqKV8pCi1dXSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVu
ZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCRmb3Igaiwg
W1sqY3VycmVudCQoailfXV0pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAg
ICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ug
d2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFj
aGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0kZm9yIGogIHx8IFtbCi0K
LSAgICAgICAgICBjdXJyZW50JChqKV8gPT0gZW5kJChqKV8KLV1dOwotICAgIH0KLQotICAgIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lk
IG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1f
IGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNl
cy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3Iu
Ci0kZm9yIGogW1sKLQotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQkaj46Oml0
ZXJhdG9yIGJlZ2luJChqKV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VCRq
Pjo6aXRlcmF0b3IgZW5kJChqKV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VCRqPjo6
aXRlcmF0b3IgY3VycmVudCQoailfOwotXV0KLQotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBj
dXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3Ik
aTo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3IkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+
IGckKGopXzsKLQotXV0KLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkK
LQotCi1dXQotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNF
UiBDT0RFLgotLy8KLS8vIEhlbHBlciBjbGFzc2VzIHByb3ZpZGluZyBDb21iaW5lKCkgd2l0aCBw
b2x5bW9ycGhpYyBmZWF0dXJlcy4gVGhleSBhbGxvdwotLy8gY2FzdGluZyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yTjxUPiB0byBQYXJhbUdlbmVyYXRvcjxVPiBpZiBUIGlzCi0vLyBjb252ZXJ0
aWJsZSB0byBVLgotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxlCi0kZm9yIGkgW1sKLSRyYW5nZSBq
IDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1tjbGFzcyBHZW5lcmF0b3Ikal1dPgotY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlciRpIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyJGkoJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRqJiBnJGpdXSkKLSAgICAgIDogJGZvciBq
LCBbW2ckKGopXyhnJGopXV0ge30KLSAgdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpd
XT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8JGZvciBqLCBb
W1Qkal1dPiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5n
Ojp0dXBsZTwkZm9yIGosIFtbVCRqXV0+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yJGk8JGZvciBqLCBbW1Qkal1dPigKLSRmb3IgaixbWwotCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQkaj4gPihnJChqKV8pCi1dXSkpOwotICB9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXIkaSYgb3RoZXIp
OwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBHZW5lcmF0b3IkaiBnJChqKV87Ci0KLV1dCi19OyAg
Ly8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpCi0KLV1dCi0KLSMgZW5kaWYgIC8vIEdU
RVNUX0hBU19DT01CSU5FCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNw
YWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dU
RVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRp
bC5oCmluZGV4IGQ2NGY2MjBjNGM2NzQzNDY3M2MwYTYxZTIzOTYwYjYxNWMzNGU3ODQuLjNlNDlh
NmJhYWM3MjRkNmJkZWNmYzUxMDYwY2FkNzA4Njc4MzNmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC5oCkBAIC0zMiwyMyArMzIsMjYgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfUEFSQU1fVVRJTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX1BBUkFNX1VUSUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAK
KyNpbmNsdWRlIDxjYXNzZXJ0PgogI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVkZSA8dHlwZV90cmFp
dHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LWxpbmtlZF9wdHIuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0
LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCIKKyNpbmNsdWRlICJndGVzdC9n
dGVzdC10ZXN0LXBhcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewotCiAvLyBJbnB1dCB0byBh
IHBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIGdlbmVyYXRvciwgZGVzY3JpYmluZyBhIHRlc3QgcGFy
YW1ldGVyLgogLy8gQ29uc2lzdHMgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZSBhbmQgdGhlIGludGVn
ZXIgcGFyYW1ldGVyIGluZGV4LgogdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4KQEAgLTcyLDEz
ICs3NSwxNCBAQCBzdHJ1Y3QgUHJpbnRUb1N0cmluZ1BhcmFtTmFtZSB7CiBuYW1lc3BhY2UgaW50
ZXJuYWwgewogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNF
UiBDT0RFLgotLy8KKy8vIFV0aWxpdHkgRnVuY3Rpb25zCisKIC8vIE91dHB1dHMgYSBtZXNzYWdl
IGV4cGxhaW5pbmcgaW52YWxpZCByZWdpc3RyYXRpb24gb2YgZGlmZmVyZW50Ci0vLyBmaXh0dXJl
IGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IGNhc2UuIFRoaXMgbWF5IGhhcHBlbiB3aGVuCisvLyBm
aXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IHN1aXRlLiBUaGlzIG1heSBoYXBwZW4gd2hl
bgogLy8gVEVTVF9QIG1hY3JvIGlzIHVzZWQgdG8gZGVmaW5lIHR3byB0ZXN0cyB3aXRoIHRoZSBz
YW1lIG5hbWUKIC8vIGJ1dCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KLUdURVNUX0FQSV8gdm9p
ZCBSZXBvcnRJbnZhbGlkVGVzdENhc2VUeXBlKGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNv
ZGVfbG9jYXRpb24pOworR1RFU1RfQVBJXyB2b2lkIFJlcG9ydEludmFsaWRUZXN0U3VpdGVUeXBl
KGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbik7CiAKIHRlbXBsYXRl
IDx0eXBlbmFtZT4gY2xhc3MgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U7CiB0ZW1wbGF0ZSA8dHlw
ZW5hbWU+IGNsYXNzIFBhcmFtR2VuZXJhdG9yOwpAQCAtMTUzLDcgKzE1Nyw3IEBAIGNsYXNzIFBh
cmFtSXRlcmF0b3IgewogIHByaXZhdGU6CiAgIGZyaWVuZCBjbGFzcyBQYXJhbUdlbmVyYXRvcjxU
PjsKICAgZXhwbGljaXQgUGFyYW1JdGVyYXRvcihQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBp
bXBsKSA6IGltcGxfKGltcGwpIHt9Ci0gIHNjb3BlZF9wdHI8UGFyYW1JdGVyYXRvckludGVyZmFj
ZTxUPiA+IGltcGxfOworICBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiA+IGltcGxfOwogfTsKIAogLy8gUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gaXMgdGhlIGJp
bmFyeSBpbnRlcmZhY2UgdG8gYWNjZXNzIGdlbmVyYXRvcnMKQEAgLTE5Miw3ICsxOTYsNyBAQCBj
bGFzcyBQYXJhbUdlbmVyYXRvciB7CiAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0
ZXJhdG9yKGltcGxfLT5FbmQoKSk7IH0KIAogIHByaXZhdGU6Ci0gIGxpbmtlZF9wdHI8Y29uc3Qg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gPiBpbXBsXzsKKyAgc3RkOjpzaGFyZWRfcHRyPGNv
bnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+ID4gaW1wbF87CiB9OwogCiAvLyBHZW5lcmF0
ZXMgdmFsdWVzIGZyb20gYSByYW5nZSBvZiB0d28gY29tcGFyYWJsZSB2YWx1ZXMuIENhbiBiZSB1
c2VkIHRvCkBAIC0yMDUsMTIgKzIwOSwxMiBAQCBjbGFzcyBSYW5nZUdlbmVyYXRvciA6IHB1Ymxp
YyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7CiAgIFJhbmdlR2VuZXJhdG9yKFQgYmVnaW4s
IFQgZW5kLCBJbmNyZW1lbnRUIHN0ZXApCiAgICAgICA6IGJlZ2luXyhiZWdpbiksIGVuZF8oZW5k
KSwKICAgICAgICAgc3RlcF8oc3RlcCksIGVuZF9pbmRleF8oQ2FsY3VsYXRlRW5kSW5kZXgoYmVn
aW4sIGVuZCwgc3RlcCkpIHt9Ci0gIHZpcnR1YWwgflJhbmdlR2VuZXJhdG9yKCkge30KKyAgflJh
bmdlR2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8VD4qIEJlZ2luKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBC
ZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGJl
Z2luXywgMCwgc3RlcF8pOwogICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogRW5kKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBFbmQoKSBjb25z
dCBvdmVycmlkZSB7CiAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBlbmRfLCBlbmRfaW5k
ZXhfLCBzdGVwXyk7CiAgIH0KIApAQCAtMjIwLDIwICsyMjQsMjAgQEAgY2xhc3MgUmFuZ2VHZW5l
cmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICAgIEl0ZXJhdG9y
KGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+KiBiYXNlLCBUIHZhbHVlLCBpbnQgaW5k
ZXgsCiAgICAgICAgICAgICAgSW5jcmVtZW50VCBzdGVwKQogICAgICAgICA6IGJhc2VfKGJhc2Up
LCB2YWx1ZV8odmFsdWUpLCBpbmRleF8oaW5kZXgpLCBzdGVwXyhzdGVwKSB7fQotICAgIHZpcnR1
YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmly
dHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNv
bnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRv
cigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9pZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAg
ICAgdmFsdWVfID0gc3RhdGljX2Nhc3Q8VD4odmFsdWVfICsgc3RlcF8pOwogICAgICAgaW5kZXhf
Kys7CiAgICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUo
KSBjb25zdCB7CisgICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUoKSBjb25zdCBv
dmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKICAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBUKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gJnZhbHVlXzsgfQotICAg
IHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiYgb3Ro
ZXIpIGNvbnN0IHsKKyAgICBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gJnZhbHVlXzsgfQorICAgIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICAvLyBIYXZpbmcgdGhlIHNhbWUg
YmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgogICAgICAgLy8gaXRlcmF0
b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgogICAgICAgR1RFU1Rf
Q0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCkBAIC0yOTAs
MTIgKzI5NCwxMiBAQCBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJs
aWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRm9y
d2FyZEl0ZXJhdG9yPgogICBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IoRm9yd2FyZEl0
ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKQogICAgICAgOiBjb250YWluZXJfKGJl
Z2luLCBlbmQpIHt9Ci0gIHZpcnR1YWwgflZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcigp
IHt9CisgIH5WYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IoKSBvdmVycmlkZSB7fQogCi0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQmVnaW4oKSBjb25zdCB7CisgIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgIHJl
dHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5iZWdpbigpKTsKICAgfQotICB2aXJ0
dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEVuZCgpIGNvbnN0IHsKKyAgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxUPiogRW5kKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgIHJldHVybiBuZXcg
SXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5lbmQoKSk7CiAgIH0KIApAQCAtMzA3LDE2ICszMTEs
MTYgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxUPiogYmFzZSwKICAgICAgICAgICAgICB0eXBlbmFtZSBDb250YWluZXJUeXBl
Ojpjb25zdF9pdGVyYXRvciBpdGVyYXRvcikKICAgICAgICAgOiBiYXNlXyhiYXNlKSwgaXRlcmF0
b3JfKGl0ZXJhdG9yKSB7fQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0
b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJl
dHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9p
ZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAgICAgKytpdGVyYXRvcl87CiAgICAgICB2YWx1ZV8u
cmVzZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBD
bG9uZSgpIGNvbnN0IHsKKyAgICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBDbG9uZSgpIGNv
bnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwogICAgIH0K
ICAgICAvLyBXZSBuZWVkIHRvIHVzZSBjYWNoZWQgdmFsdWUgcmVmZXJlbmNlZCBieSBpdGVyYXRv
cl8gYmVjYXVzZSAqaXRlcmF0b3JfCkBAIC0zMjYsMTIgKzMzMCwxMSBAQCBjbGFzcyBWYWx1ZXNJ
bkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
VD4gewogICAgIC8vIGNhbiBhZHZhbmNlIGl0ZXJhdG9yXyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
cmFuZ2UsIGFuZCB3ZSBjYW5ub3QKICAgICAvLyBkZXRlY3QgdGhhdCBmYWN0LiBUaGUgY2xpZW50
IGNvZGUsIG9uIHRoZSBvdGhlciBoYW5kLCBpcwogICAgIC8vIHJlc3BvbnNpYmxlIGZvciBub3Qg
Y2FsbGluZyBDdXJyZW50KCkgb24gYW4gb3V0LW9mLXJhbmdlIGl0ZXJhdG9yLgotICAgIHZpcnR1
YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IHsKLSAgICAgIGlmICh2YWx1ZV8uZ2V0KCkgPT0g
TlVMTCkKLSAgICAgICAgdmFsdWVfLnJlc2V0KG5ldyBUKCppdGVyYXRvcl8pKTsKKyAgICBjb25z
dCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgaWYgKHZhbHVlXy5nZXQoKSA9
PSBudWxscHRyKSB2YWx1ZV8ucmVzZXQobmV3IFQoKml0ZXJhdG9yXykpOwogICAgICAgcmV0dXJu
IHZhbHVlXy5nZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJh
bUl0ZXJhdG9ySW50ZXJmYWNlPFQ+JiBvdGhlcikgY29uc3QgeworICAgIGJvb2wgRXF1YWxzKGNv
bnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAg
ICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRo
ZSBvdGhlcgogICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2Fu
IGRvd25jYXN0LgogICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5C
YXNlR2VuZXJhdG9yKCkpCkBAIC0zNTQsOSArMzU3LDkgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRv
clJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAg
ICAvLyBBIGNhY2hlZCB2YWx1ZSBvZiAqaXRlcmF0b3JfLiBXZSBrZWVwIGl0IGhlcmUgdG8gYWxs
b3cgYWNjZXNzIGJ5CiAgICAgLy8gcG9pbnRlciBpbiB0aGUgd3JhcHBpbmcgaXRlcmF0b3IncyBv
cGVyYXRvci0+KCkuCiAgICAgLy8gdmFsdWVfIG5lZWRzIHRvIGJlIG11dGFibGUgdG8gYmUgYWNj
ZXNzZWQgaW4gQ3VycmVudCgpLgotICAgIC8vIFVzZSBvZiBzY29wZWRfcHRyIGhlbHBzIG1hbmFn
ZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKKyAgICAvLyBVc2Ugb2Ygc3RkOjp1bmlxdWVfcHRy
IGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKICAgICAvLyB3aGljaCBpcyBi
b3VuZCBieSB0aGUgbGlmZXNwYW4gb2YgdGhlIGl0ZXJhdG9yIGl0c2VsZi4KLSAgICBtdXRhYmxl
IHNjb3BlZF9wdHI8Y29uc3QgVD4gdmFsdWVfOworICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRy
PGNvbnN0IFQ+IHZhbHVlXzsKICAgfTsgIC8vIGNsYXNzIFZhbHVlc0luSXRlcmF0b3JSYW5nZUdl
bmVyYXRvcjo6SXRlcmF0b3IKIAogICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCkBAIC0zNzYsMjUgKzM3OSwxMiBAQCBzdGQ6OnN0cmluZyBEZWZhdWx0
UGFyYW1OYW1lKGNvbnN0IFRlc3RQYXJhbUluZm88UGFyYW1UeXBlPiYgaW5mbykgewogICByZXR1
cm4gbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCk7CiB9CiAKLS8vIElOVEVSTkFMIElNUExFTUVOVEFU
SU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gUGFyYW1ldGVyaXplZCB0ZXN0
IG5hbWUgb3ZlcmxvYWQgaGVscGVycywgd2hpY2ggaGVscCB0aGUKLS8vIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIG1hY3JvIGNob29zZSBiZXR3ZWVuIHRoZSBkZWZhdWx0IHBhcmFtZXRlcml6ZWQK
LS8vIHRlc3QgbmFtZSBnZW5lcmF0b3IgYW5kIHVzZXIgcGFyYW0gbmFtZSBnZW5lcmF0b3IuCi10
ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlLCBjbGFzcyBQYXJhbU5hbWVHZW5GdW5jdG9yPgotUGFy
YW1OYW1lR2VuRnVuY3RvciBHZXRQYXJhbU5hbWVHZW4oUGFyYW1OYW1lR2VuRnVuY3RvciBmdW5j
KSB7Ci0gIHJldHVybiBmdW5jOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlPgotc3Ry
dWN0IFBhcmFtTmFtZUdlbkZ1bmMgewotICB0eXBlZGVmIHN0ZDo6c3RyaW5nIFR5cGUoY29uc3Qg
VGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+Jik7Ci19OwotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1U
eXBlPgotdHlwZW5hbWUgUGFyYW1OYW1lR2VuRnVuYzxQYXJhbVR5cGU+OjpUeXBlICpHZXRQYXJh
bU5hbWVHZW4oKSB7Ci0gIHJldHVybiBEZWZhdWx0UGFyYW1OYW1lOwordGVtcGxhdGUgPHR5cGVu
YW1lIFQgPSBpbnQ+Cit2b2lkIFRlc3ROb3RFbXB0eSgpIHsKKyAgc3RhdGljX2Fzc2VydChzaXpl
b2YoVCkgPT0gMCwgIkVtcHR5IGFyZ3VtZW50cyBhcmUgbm90IGFsbG93ZWQuIik7CiB9Cit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVCA9IGludD4KK3ZvaWQgVGVzdE5vdEVtcHR5KGNvbnN0IFQmKSB7fQog
CiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgog
Ly8KQEAgLTQwNiw3ICszOTYsNyBAQCBjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdEZhY3RvcnkgOiBw
dWJsaWMgVGVzdEZhY3RvcnlCYXNlIHsKICAgdHlwZWRlZiB0eXBlbmFtZSBUZXN0Q2xhc3M6OlBh
cmFtVHlwZSBQYXJhbVR5cGU7CiAgIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0RmFjdG9yeShQ
YXJhbVR5cGUgcGFyYW1ldGVyKSA6CiAgICAgICBwYXJhbWV0ZXJfKHBhcmFtZXRlcikge30KLSAg
dmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkgeworICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJp
ZGUgewogICAgIFRlc3RDbGFzczo6U2V0UGFyYW0oJnBhcmFtZXRlcl8pOwogICAgIHJldHVybiBu
ZXcgVGVzdENsYXNzKCk7CiAgIH0KQEAgLTQzNCwxOSArNDI0LDE5IEBAIGNsYXNzIFRlc3RNZXRh
RmFjdG9yeUJhc2UgewogLy8gVGVzdE1ldGFGYWN0b3J5IGNyZWF0ZXMgdGVzdCBmYWN0b3JpZXMg
Zm9yIHBhc3NpbmcgaW50bwogLy8gTWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8gZnVuY3Rpb24uIFNp
bmNlIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIHJlY2VpdmVzCiAvLyBvd25lcnNoaXAgb2YgdGVz
dCBmYWN0b3J5IHBvaW50ZXIsIHNhbWUgZmFjdG9yeSBvYmplY3QgY2Fubm90IGJlIHBhc3NlZAot
Ly8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8g
aXMgZ29pbmcgdG8gY2FsbAorLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGVJbmZvIGlzIGdvaW5nIHRvIGNhbGwKIC8vIGl0IGZvciBlYWNoIFRlc3Qv
UGFyYW1ldGVyIHZhbHVlIGNvbWJpbmF0aW9uLiBUaHVzIGl0IG5lZWRzIG1ldGEgZmFjdG9yeQog
Ly8gY3JlYXRvciBjbGFzcy4KLXRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KK3RlbXBsYXRlIDxj
bGFzcyBUZXN0U3VpdGU+CiBjbGFzcyBUZXN0TWV0YUZhY3RvcnkKLSAgICA6IHB1YmxpYyBUZXN0
TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJhbVR5cGU+IHsKKyAgICA6IHB1
YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RTdWl0ZTo6UGFyYW1UeXBlPiB7
CiAgcHVibGljOgotICB0eXBlZGVmIHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJhbVR5cGUgUGFyYW1U
eXBlOworICB1c2luZyBQYXJhbVR5cGUgPSB0eXBlbmFtZSBUZXN0U3VpdGU6OlBhcmFtVHlwZTsK
IAogICBUZXN0TWV0YUZhY3RvcnkoKSB7fQogCi0gIHZpcnR1YWwgVGVzdEZhY3RvcnlCYXNlKiBD
cmVhdGVUZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSB7Ci0gICAgcmV0dXJuIG5ldyBQ
YXJhbWV0ZXJpemVkVGVzdEZhY3Rvcnk8VGVzdENhc2U+KHBhcmFtZXRlcik7CisgIFRlc3RGYWN0
b3J5QmFzZSogQ3JlYXRlVGVzdEZhY3RvcnkoUGFyYW1UeXBlIHBhcmFtZXRlcikgb3ZlcnJpZGUg
eworICAgIHJldHVybiBuZXcgUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5PFRlc3RTdWl0ZT4ocGFy
YW1ldGVyKTsKICAgfQogCiAgcHJpdmF0ZToKQEAgLTQ1NSw5MyArNDQ1LDEwNyBAQCBjbGFzcyBU
ZXN0TWV0YUZhY3RvcnkKIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNF
IElOIFVTRVIgQ09ERS4KIC8vCi0vLyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSBpcyBh
IGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIGNsYXNz
ZXMuIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlCisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mb0Jhc2UgaXMgYSBnZW5lcmljIGludGVyZmFjZQorLy8gdG8gUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZUluZm8gY2xhc3Nlcy4gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlCiAvLyBh
Y2N1bXVsYXRlcyB0ZXN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IFRFU1RfUCBtYWNybyBpbnZv
Y2F0aW9ucwotLy8gYW5kIGdlbmVyYXRvcnMgcHJvdmlkZWQgYnkgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgbWFjcm8gaW52b2NhdGlvbnMKKy8vIGFuZCBnZW5lcmF0b3JzIHByb3ZpZGVkIGJ5IElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpbnZvY2F0aW9ucwogLy8gYW5kIHVzZXMgdGhh
dCBpbmZvcm1hdGlvbiB0byByZWdpc3RlciBhbGwgcmVzdWx0aW5nIHRlc3QgaW5zdGFuY2VzCi0v
LyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4gVGhlIFBhcmFtZXRlcml6ZVRlc3RDYXNlUmVnaXN0
cnkgY2xhc3MgaG9sZHMKLS8vIGEgY29sbGVjdGlvbiBvZiBwb2ludGVycyB0byB0aGUgUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mbyBvYmplY3RzCisvLyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4g
VGhlIFBhcmFtZXRlcml6ZVRlc3RTdWl0ZVJlZ2lzdHJ5IGNsYXNzIGhvbGRzCisvLyBhIGNvbGxl
Y3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIG9iamVj
dHMKIC8vIGFuZCBjYWxscyBSZWdpc3RlclRlc3RzKCkgb24gZWFjaCBvZiB0aGVtIHdoZW4gYXNr
ZWQuCi1jbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7CitjbGFzcyBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgewogIHB1YmxpYzoKLSAgdmlydHVhbCB+UGFyYW1ldGVy
aXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICB2aXJ0dWFsIH5QYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mb0Jhc2UoKSB7fQogCi0gIC8vIEJhc2UgcGFydCBvZiB0ZXN0IGNhc2UgbmFtZSBmb3Ig
ZGlzcGxheSBwdXJwb3Nlcy4KLSAgdmlydHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdENh
c2VOYW1lKCkgY29uc3QgPSAwOwotICAvLyBUZXN0IGNhc2UgaWQgdG8gdmVyaWZ5IGlkZW50aXR5
LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJZCgpIGNvbnN0ID0gMDsKKyAgLy8g
QmFzZSBwYXJ0IG9mIHRlc3Qgc3VpdGUgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgdmly
dHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdFN1aXRlTmFtZSgpIGNvbnN0ID0gMDsKKyAg
Ly8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisgIHZpcnR1YWwgVHlwZUlkIEdl
dFRlc3RTdWl0ZVR5cGVJZCgpIGNvbnN0ID0gMDsKICAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tl
cyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0cyBpbiB0aGlzCi0gIC8vIHRlc3QgY2FzZSBy
aWdodCBiZWZvcmUgcnVubmluZyB0aGVtIGluIFJVTl9BTExfVEVTVFMgbWFjcm8uCi0gIC8vIFRo
aXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIG1vcmUgdGhlbiBvbmNlIG9uIGFueSBzaW5n
bGUKLSAgLy8gaW5zdGFuY2Ugb2YgYSBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSBkZXJp
dmVkIGNsYXNzLgorICAvLyB0ZXN0IHN1aXRlIHJpZ2h0IGJlZm9yZSBydW5uaW5nIHRoZW0gaW4g
UlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgogICB2aXJ0dWFsIHZvaWQg
UmVnaXN0ZXJUZXN0cygpID0gMDsKIAogIHByb3RlY3RlZDoKLSAgUGFyYW1ldGVyaXplZFRlc3RD
YXNlSW5mb0Jhc2UoKSB7fQorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UoKSB7fQog
CiAgcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvQmFzZSk7CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKTsKIH07CiAKIC8vIElOVEVSTkFMIElNUExF
TUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwotLy8gUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlSW5mbyBhY2N1bXVsYXRlcyB0ZXN0cyBvYnRhaW5lZCBmcm9tIFRFU1RfUAotLy8g
bWFjcm8gaW52b2NhdGlvbnMgZm9yIGEgcGFydGljdWxhciB0ZXN0IGNhc2UgYW5kIGdlbmVyYXRv
cnMKLS8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaW52b2Nh
dGlvbnMgZm9yIHRoYXQKLS8vIHRlc3QgY2FzZS4gSXQgcmVnaXN0ZXJzIHRlc3RzIHdpdGggYWxs
IHZhbHVlcyBnZW5lcmF0ZWQgYnkgYWxsCisvLyBSZXBvcnQgYSB0aGUgbmFtZSBvZiBhIHRlc3Rf
c3VpdCBhcyBzYWZlIHRvIGlnbm9yZQorLy8gYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNvbnN0cnVj
dGlvbiBvZiB0aGlzIHR5cGUuCitzdHJ1Y3QgTWFya0FzSWdub3JlZCB7CisgIGV4cGxpY2l0IE1h
cmtBc0lnbm9yZWQoY29uc3QgY2hhciogdGVzdF9zdWl0ZSk7Cit9OworCitHVEVTVF9BUElfIHZv
aWQgSW5zZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGxvY2F0aW9u
LCBib29sIGhhc190ZXN0X3ApOworCisvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5P
VCBVU0UgSU4gVVNFUiBDT0RFLgorLy8KKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGFj
Y3VtdWxhdGVzIHRlc3RzIG9idGFpbmVkIGZyb20gVEVTVF9QCisvLyBtYWNybyBpbnZvY2F0aW9u
cyBmb3IgYSBwYXJ0aWN1bGFyIHRlc3Qgc3VpdGUgYW5kIGdlbmVyYXRvcnMKKy8vIG9idGFpbmVk
IGZyb20gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvIGludm9jYXRpb25zIGZvciB0aGF0
CisvLyB0ZXN0IHN1aXRlLiBJdCByZWdpc3RlcnMgdGVzdHMgd2l0aCBhbGwgdmFsdWVzIGdlbmVy
YXRlZCBieSBhbGwKIC8vIGdlbmVyYXRvcnMgd2hlbiBhc2tlZC4KLXRlbXBsYXRlIDxjbGFzcyBU
ZXN0Q2FzZT4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewordGVtcGxhdGUgPGNsYXNzIFRlc3RTdWl0ZT4KK2Ns
YXNzIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVJbmZvQmFzZSB7CiAgcHVibGljOgogICAvLyBQYXJhbVR5cGUgYW5kIEdlbmVyYXRvckNy
ZWF0aW9uRnVuYyBhcmUgcHJpdmF0ZSB0eXBlcyBidXQgYXJlIHJlcXVpcmVkCiAgIC8vIGZvciBk
ZWNsYXJhdGlvbnMgb2YgcHVibGljIG1ldGhvZHMgQWRkVGVzdFBhdHRlcm4oKSBhbmQKLSAgLy8g
QWRkVGVzdENhc2VJbnN0YW50aWF0aW9uKCkuCi0gIHR5cGVkZWYgdHlwZW5hbWUgVGVzdENhc2U6
OlBhcmFtVHlwZSBQYXJhbVR5cGU7CisgIC8vIEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oKS4K
KyAgdXNpbmcgUGFyYW1UeXBlID0gdHlwZW5hbWUgVGVzdFN1aXRlOjpQYXJhbVR5cGU7CiAgIC8v
IEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIGFwcHJvcHJpYXRlIGdlbmVy
YXRvciB0eXBlLgogICB0eXBlZGVmIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT4oR2VuZXJhdG9y
Q3JlYXRpb25GdW5jKSgpOwotICB0eXBlZGVmIHR5cGVuYW1lIFBhcmFtTmFtZUdlbkZ1bmM8UGFy
YW1UeXBlPjo6VHlwZSBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jOworICB1c2luZyBQYXJhbU5hbWVH
ZW5lcmF0b3JGdW5jID0gc3RkOjpzdHJpbmcoY29uc3QgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+
Jik7CiAKLSAgZXhwbGljaXQgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbygKLSAgICAgIGNvbnN0
IGNoYXIqIG5hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKQotICAgICAgOiB0ZXN0X2Nh
c2VfbmFtZV8obmFtZSksIGNvZGVfbG9jYXRpb25fKGNvZGVfbG9jYXRpb24pIHt9CisgIGV4cGxp
Y2l0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKGNvbnN0IGNoYXIqIG5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9u
KQorICAgICAgOiB0ZXN0X3N1aXRlX25hbWVfKG5hbWUpLCBjb2RlX2xvY2F0aW9uXyhjb2RlX2xv
Y2F0aW9uKSB7fQogCi0gIC8vIFRlc3QgY2FzZSBiYXNlIG5hbWUgZm9yIGRpc3BsYXkgcHVycG9z
ZXMuCi0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RDYXNlTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIHRlc3RfY2FzZV9uYW1lXzsgfQotICAvLyBUZXN0IGNhc2UgaWQgdG8gdmVyaWZ5
IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJZCgpIGNvbnN0IHsg
cmV0dXJuIEdldFR5cGVJZDxUZXN0Q2FzZT4oKTsgfQorICAvLyBUZXN0IHN1aXRlIGJhc2UgbmFt
ZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RTdWl0
ZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgcmV0dXJuIHRlc3Rfc3VpdGVfbmFtZV87Cisg
IH0KKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisgIFR5cGVJZCBHZXRU
ZXN0U3VpdGVUeXBlSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBHZXRUeXBlSWQ8VGVzdFN1
aXRlPigpOyB9CiAgIC8vIFRFU1RfUCBtYWNybyB1c2VzIEFkZFRlc3RQYXR0ZXJuKCkgdG8gcmVj
b3JkIGluZm9ybWF0aW9uCiAgIC8vIGFib3V0IGEgc2luZ2xlIHRlc3QgaW4gYSBMb2NhbFRlc3RJ
bmZvIHN0cnVjdHVyZS4KLSAgLy8gdGVzdF9jYXNlX25hbWUgaXMgdGhlIGJhc2UgbmFtZSBvZiB0
aGUgdGVzdCBjYXNlICh3aXRob3V0IGludm9jYXRpb24KKyAgLy8gdGVzdF9zdWl0ZV9uYW1lIGlz
IHRoZSBiYXNlIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUgKHdpdGhvdXQgaW52b2NhdGlvbgogICAv
LyBwcmVmaXgpLiB0ZXN0X2Jhc2VfbmFtZSBpcyB0aGUgbmFtZSBvZiBhbiBpbmRpdmlkdWFsIHRl
c3Qgd2l0aG91dAogICAvLyBwYXJhbWV0ZXIgaW5kZXguIEZvciB0aGUgdGVzdCBTZXF1ZW5jZUEv
Rm9vVGVzdC5Eb0Jhci8xIEZvb1Rlc3QgaXMKLSAgLy8gdGVzdCBjYXNlIGJhc2UgbmFtZSBhbmQg
RG9CYXIgaXMgdGVzdCBiYXNlIG5hbWUuCi0gIHZvaWQgQWRkVGVzdFBhdHRlcm4oY29uc3QgY2hh
ciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVz
dF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQ
YXJhbVR5cGU+KiBtZXRhX2ZhY3RvcnkpIHsKLSAgICB0ZXN0c18ucHVzaF9iYWNrKGxpbmtlZF9w
dHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbyh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Jhc2VfbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXRhX2ZhY3RvcnkpKSk7CisgIC8vIHRlc3Qgc3VpdGUgYmFzZSBuYW1lIGFuZCBEb0JhciBpcyB0
ZXN0IGJhc2UgbmFtZS4KKyAgdm9pZCBBZGRUZXN0UGF0dGVybihjb25zdCBjaGFyKiB0ZXN0X3N1
aXRlX25hbWUsIGNvbnN0IGNoYXIqIHRlc3RfYmFzZV9uYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBlPiogbWV0YV9mYWN0b3J5LAorICAgICAg
ICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgICAgdGVzdHNf
LnB1c2hfYmFjayhzdGQ6OnNoYXJlZF9wdHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbygKKyAgICAg
ICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X2Jhc2VfbmFtZSwgbWV0YV9mYWN0b3J5LCBjb2RlX2xv
Y2F0aW9uKSkpOwogICB9Ci0gIC8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIHVzZXMg
QWRkR2VuZXJhdG9yKCkgdG8gcmVjb3JkIGluZm9ybWF0aW9uCisgIC8vIElOU1RBTlRJQVRFX1RF
U1RfU1VJVEVfUCBtYWNybyB1c2VzIEFkZEdlbmVyYXRvcigpIHRvIHJlY29yZCBpbmZvcm1hdGlv
bgogICAvLyBhYm91dCBhIGdlbmVyYXRvci4KLSAgaW50IEFkZFRlc3RDYXNlSW5zdGFudGlhdGlv
bihjb25zdCBzdGQ6OnN0cmluZyYgaW5zdGFudGlhdGlvbl9uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRvckNyZWF0aW9uRnVuYyogZnVuYywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUp
IHsKKyAgaW50IEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGlu
c3RhbnRpYXRpb25fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJh
dG9yQ3JlYXRpb25GdW5jKiBmdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
YXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7CiAgICAgaW5zdGFudGlhdGlv
bnNfLnB1c2hfYmFjaygKICAgICAgICAgSW5zdGFudGlhdGlvbkluZm8oaW5zdGFudGlhdGlvbl9u
YW1lLCBmdW5jLCBuYW1lX2Z1bmMsIGZpbGUsIGxpbmUpKTsKICAgICByZXR1cm4gMDsgIC8vIFJl
dHVybiB2YWx1ZSB1c2VkIG9ubHkgdG8gcnVuIHRoaXMgbWV0aG9kIGluIG5hbWVzcGFjZSBzY29w
ZS4KICAgfQotICAvLyBVbml0VGVzdCBjbGFzcyBpbnZva2VzIHRoaXMgbWV0aG9kIHRvIHJlZ2lz
dGVyIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlCi0gIC8vIHRlc3QgY2FzZXMgcmlnaHQgYmVmb3Jl
IHJ1bm5pbmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KLSAgLy8gVGhpcyBtZXRob2Qg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGVuIG9uY2Ugb24gYW55IHNpbmdsZQotICAvLyBp
bnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIGRlcml2ZWQgY2xhc3Mu
Ci0gIC8vIFVuaXRUZXN0IGhhcyBhIGd1YXJkIHRvIHByZXZlbnQgZnJvbSBjYWxsaW5nIHRoaXMg
bWV0aG9kIG1vcmUgdGhlbiBvbmNlLgotICB2aXJ0dWFsIHZvaWQgUmVnaXN0ZXJUZXN0cygpIHsK
KyAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0
cyBpbiB0aGlzIHRlc3Qgc3VpdGUKKyAgLy8gcmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGVzdHMgaW4g
UlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgorICAvLyBVbml0VGVzdCBo
YXMgYSBndWFyZCB0byBwcmV2ZW50IGZyb20gY2FsbGluZyB0aGlzIG1ldGhvZCBtb3JlIHRoYW4g
b25jZS4KKyAgdm9pZCBSZWdpc3RlclRlc3RzKCkgb3ZlcnJpZGUgeworICAgIGJvb2wgZ2VuZXJh
dGVkX2luc3RhbnRpYXRpb25zID0gZmFsc2U7CisKICAgICBmb3IgKHR5cGVuYW1lIFRlc3RJbmZv
Q29udGFpbmVyOjppdGVyYXRvciB0ZXN0X2l0ID0gdGVzdHNfLmJlZ2luKCk7CiAgICAgICAgICB0
ZXN0X2l0ICE9IHRlc3RzXy5lbmQoKTsgKyt0ZXN0X2l0KSB7Ci0gICAgICBsaW5rZWRfcHRyPFRl
c3RJbmZvPiB0ZXN0X2luZm8gPSAqdGVzdF9pdDsKKyAgICAgIHN0ZDo6c2hhcmVkX3B0cjxUZXN0
SW5mbz4gdGVzdF9pbmZvID0gKnRlc3RfaXQ7CiAgICAgICBmb3IgKHR5cGVuYW1lIEluc3RhbnRp
YXRpb25Db250YWluZXI6Oml0ZXJhdG9yIGdlbl9pdCA9CiAgICAgICAgICAgICAgICBpbnN0YW50
aWF0aW9uc18uYmVnaW4oKTsgZ2VuX2l0ICE9IGluc3RhbnRpYXRpb25zXy5lbmQoKTsKICAgICAg
ICAgICAgICAgICsrZ2VuX2l0KSB7CkBAIC01NTEsMTYgKzU1NSwxOCBAQCBjbGFzcyBQYXJhbWV0
ZXJpemVkVGVzdENhc2VJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNl
IHsKICAgICAgICAgY29uc3QgY2hhciogZmlsZSA9IGdlbl9pdC0+ZmlsZTsKICAgICAgICAgaW50
IGxpbmUgPSBnZW5faXQtPmxpbmU7CiAKLSAgICAgICAgc3RkOjpzdHJpbmcgdGVzdF9jYXNlX25h
bWU7CisgICAgICAgIHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZTsKICAgICAgICAgaWYgKCAh
aW5zdGFudGlhdGlvbl9uYW1lLmVtcHR5KCkgKQotICAgICAgICAgIHRlc3RfY2FzZV9uYW1lID0g
aW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOwotICAgICAgICB0ZXN0X2Nhc2VfbmFtZSArPSB0ZXN0
X2luZm8tPnRlc3RfY2FzZV9iYXNlX25hbWU7CisgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lID0g
aW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOworICAgICAgICB0ZXN0X3N1aXRlX25hbWUgKz0gdGVz
dF9pbmZvLT50ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKIAogICAgICAgICBzaXplX3QgaSA9IDA7CiAg
ICAgICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0X3BhcmFtX25hbWVzOwogICAgICAgICBm
b3IgKHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT46Oml0ZXJhdG9yIHBhcmFtX2l0
ID0KICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmJlZ2luKCk7CiAgICAgICAgICAgICAgcGFy
YW1faXQgIT0gZ2VuZXJhdG9yLmVuZCgpOyArK3BhcmFtX2l0LCArK2kpIHsKKyAgICAgICAgICBn
ZW5lcmF0ZWRfaW5zdGFudGlhdGlvbnMgPSB0cnVlOworCiAgICAgICAgICAgTWVzc2FnZSB0ZXN0
X25hbWVfc3RyZWFtOwogCiAgICAgICAgICAgc3RkOjpzdHJpbmcgcGFyYW1fbmFtZSA9IG5hbWVf
ZnVuYygKQEAgLTU3NywzOSArNTgzLDQ4IEBAIGNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUlu
Zm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewogCiAgICAgICAgICAg
dGVzdF9wYXJhbV9uYW1lcy5pbnNlcnQocGFyYW1fbmFtZSk7CiAKLSAgICAgICAgICB0ZXN0X25h
bWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNlX25hbWUgPDwgIi8iIDw8IHBhcmFtX25h
bWU7CisgICAgICAgICAgaWYgKCF0ZXN0X2luZm8tPnRlc3RfYmFzZV9uYW1lLmVtcHR5KCkpIHsK
KyAgICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwgdGVzdF9pbmZvLT50ZXN0X2Jhc2VfbmFt
ZSA8PCAiLyI7CisgICAgICAgICAgfQorICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwgcGFy
YW1fbmFtZTsKICAgICAgICAgICBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKLSAgICAgICAgICAg
ICAgdGVzdF9jYXNlX25hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgdGVzdF9uYW1lX3N0cmVh
bS5HZXRTdHJpbmcoKS5jX3N0cigpLAotICAgICAgICAgICAgICBOVUxMLCAgLy8gTm8gdHlwZSBw
YXJhbWV0ZXIuCi0gICAgICAgICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5jX3N0cigp
LAotICAgICAgICAgICAgICBjb2RlX2xvY2F0aW9uXywKLSAgICAgICAgICAgICAgR2V0VGVzdENh
c2VUeXBlSWQoKSwKLSAgICAgICAgICAgICAgVGVzdENhc2U6OlNldFVwVGVzdENhc2UsCi0gICAg
ICAgICAgICAgIFRlc3RDYXNlOjpUZWFyRG93blRlc3RDYXNlLAorICAgICAgICAgICAgICB0ZXN0
X3N1aXRlX25hbWUuY19zdHIoKSwgdGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigp
LAorICAgICAgICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICAg
ICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5jX3N0cigpLCB0ZXN0X2luZm8tPmNvZGVf
bG9jYXRpb24sCisgICAgICAgICAgICAgIEdldFRlc3RTdWl0ZVR5cGVJZCgpLAorICAgICAgICAg
ICAgICBTdWl0ZUFwaVJlc29sdmVyPFRlc3RTdWl0ZT46OkdldFNldFVwQ2FzZU9yU3VpdGUoZmls
ZSwgbGluZSksCisgICAgICAgICAgICAgIFN1aXRlQXBpUmVzb2x2ZXI8VGVzdFN1aXRlPjo6R2V0
VGVhckRvd25DYXNlT3JTdWl0ZShmaWxlLCBsaW5lKSwKICAgICAgICAgICAgICAgdGVzdF9pbmZv
LT50ZXN0X21ldGFfZmFjdG9yeS0+Q3JlYXRlVGVzdEZhY3RvcnkoKnBhcmFtX2l0KSk7CiAgICAg
ICAgIH0gIC8vIGZvciBwYXJhbV9pdAogICAgICAgfSAgLy8gZm9yIGdlbl9pdAogICAgIH0gIC8v
IGZvciB0ZXN0X2l0Ci0gIH0gIC8vIFJlZ2lzdGVyVGVzdHMKKworICAgIGlmICghZ2VuZXJhdGVk
X2luc3RhbnRpYXRpb25zKSB7CisgICAgICAvLyBUaGVyZSBhcmUgbm8gZ2VuZXJhb3Rycywgb3Ig
dGhleSBhbGwgZ2VuZXJhdGUgbm90aGluZyAuLi4KKyAgICAgIEluc2VydFN5bnRoZXRpY1Rlc3RD
YXNlKEdldFRlc3RTdWl0ZU5hbWUoKSwgY29kZV9sb2NhdGlvbl8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAhdGVzdHNfLmVtcHR5KCkpOworICAgIH0KKyAgfSAgICAvLyBSZWdpc3Rl
clRlc3RzCiAKICBwcml2YXRlOgogICAvLyBMb2NhbFRlc3RJbmZvIHN0cnVjdHVyZSBrZWVwcyBp
bmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSB0ZXN0IHJlZ2lzdGVyZWQKICAgLy8gd2l0aCBURVNU
X1AgbWFjcm8uCiAgIHN0cnVjdCBUZXN0SW5mbyB7Ci0gICAgVGVzdEluZm8oY29uc3QgY2hhciog
YV90ZXN0X2Nhc2VfYmFzZV9uYW1lLAotICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdGVzdF9i
YXNlX25hbWUsCi0gICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBh
X3Rlc3RfbWV0YV9mYWN0b3J5KSA6Ci0gICAgICAgIHRlc3RfY2FzZV9iYXNlX25hbWUoYV90ZXN0
X2Nhc2VfYmFzZV9uYW1lKSwKLSAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90ZXN0X2Jhc2VfbmFt
ZSksCi0gICAgICAgIHRlc3RfbWV0YV9mYWN0b3J5KGFfdGVzdF9tZXRhX2ZhY3RvcnkpIHt9Ci0K
LSAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfYmFzZV9uYW1lOworICAgIFRlc3RJbmZv
KGNvbnN0IGNoYXIqIGFfdGVzdF9zdWl0ZV9iYXNlX25hbWUsIGNvbnN0IGNoYXIqIGFfdGVzdF9i
YXNlX25hbWUsCisgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBh
X3Rlc3RfbWV0YV9mYWN0b3J5LAorICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBhX2NvZGVfbG9j
YXRpb24pCisgICAgICAgIDogdGVzdF9zdWl0ZV9iYXNlX25hbWUoYV90ZXN0X3N1aXRlX2Jhc2Vf
bmFtZSksCisgICAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90ZXN0X2Jhc2VfbmFtZSksCisgICAg
ICAgICAgdGVzdF9tZXRhX2ZhY3RvcnkoYV90ZXN0X21ldGFfZmFjdG9yeSksCisgICAgICAgICAg
Y29kZV9sb2NhdGlvbihhX2NvZGVfbG9jYXRpb24pIHt9CisKKyAgICBjb25zdCBzdGQ6OnN0cmlu
ZyB0ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKICAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Jhc2Vf
bmFtZTsKLSAgICBjb25zdCBzY29wZWRfcHRyPFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBl
PiA+IHRlc3RfbWV0YV9mYWN0b3J5OworICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxUZXN0TWV0
YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4gPiB0ZXN0X21ldGFfZmFjdG9yeTsKKyAgICBjb25zdCBD
b2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbjsKICAgfTsKLSAgdHlwZWRlZiA6OnN0ZDo6dmVjdG9y
PGxpbmtlZF9wdHI8VGVzdEluZm8+ID4gVGVzdEluZm9Db250YWluZXI7Ci0gIC8vIFJlY29yZHMg
ZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvczoKKyAgdXNp
bmcgVGVzdEluZm9Db250YWluZXIgPSA6OnN0ZDo6dmVjdG9yPHN0ZDo6c2hhcmVkX3B0cjxUZXN0
SW5mbz4gPjsKKyAgLy8gUmVjb3JkcyBkYXRhIHJlY2VpdmVkIGZyb20gSU5TVEFOVElBVEVfVEVT
VF9TVUlURV9QIG1hY3JvczoKICAgLy8gIDxJbnN0YW50aWF0aW9uIG5hbWUsIFNlcXVlbmNlIGdl
bmVyYXRvciBjcmVhdGlvbiBmdW5jdGlvbiwKICAgLy8gICAgIE5hbWUgZ2VuZXJhdG9yIGZ1bmN0
aW9uLCBTb3VyY2UgZmlsZSwgU291cmNlIGxpbmU+CiAgIHN0cnVjdCBJbnN0YW50aWF0aW9uSW5m
byB7CkBAIC02NDYsNzkgKzY2MSwyODcgQEAgY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5m
byA6IHB1YmxpYyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7CiAgICAgcmV0dXJuIHRy
dWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfbmFtZV87CisgIGNvbnN0
IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87CiAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0
aW9uXzsKICAgVGVzdEluZm9Db250YWluZXIgdGVzdHNfOwogICBJbnN0YW50aWF0aW9uQ29udGFp
bmVyIGluc3RhbnRpYXRpb25zXzsKIAotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8pOwotfTsgIC8vIGNsYXNzIFBhcmFtZXRlcml6ZWRU
ZXN0Q2FzZUluZm8KKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlSW5mbyk7Cit9OyAgLy8gY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUlu
Zm8KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwordGVtcGxhdGUgPGNsYXNz
IFRlc3RDYXNlPgordXNpbmcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyA9IFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVJbmZvPFRlc3RDYXNlPjsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBV
U0UgSU4gVVNFUiBDT0RFLgogLy8KLS8vIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IGNv
bnRhaW5zIGEgbWFwIG9mIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlCi0vLyBjbGFzc2Vz
IGFjY2Vzc2VkIGJ5IHRlc3QgY2FzZSBuYW1lcy4gVEVTVF9QIGFuZCBJTlNUQU5USUFURV9URVNU
X0NBU0VfUAotLy8gbWFjcm9zIHVzZSBpdCB0byBsb2NhdGUgdGhlaXIgY29ycmVzcG9uZGluZyBQ
YXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvCi0vLyBkZXNjcmlwdG9ycy4KLWNsYXNzIFBhcmFtZXRl
cml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHsKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3Ry
eSBjb250YWlucyBhIG1hcCBvZgorLy8gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlIGNs
YXNzZXMgYWNjZXNzZWQgYnkgdGVzdCBzdWl0ZSBuYW1lcy4gVEVTVF9QCisvLyBhbmQgSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QIG1hY3JvcyB1c2UgaXQgdG8gbG9jYXRlIHRoZWlyIGNvcnJlc3Bv
bmRpbmcKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGRlc2NyaXB0b3JzLgorY2xhc3Mg
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IHsKICBwdWJsaWM6Ci0gIFBhcmFtZXRlcml6
ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkge30KLSAgflBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5
KCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFpbmVyOjppdGVyYXRvciBpdCA9IHRlc3Rf
Y2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHRlc3RfY2FzZV9pbmZvc18uZW5k
KCk7ICsraXQpIHsKLSAgICAgIGRlbGV0ZSAqaXQ7CisgIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVS
ZWdpc3RyeSgpIHt9CisgIH5QYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkoKSB7CisgICAg
Zm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAg
ZGVsZXRlIHRlc3Rfc3VpdGVfaW5mbzsKICAgICB9CiAgIH0KIAogICAvLyBMb29rcyB1cCBvciBj
cmVhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJv
dXQKLSAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25zIG9mIGEgcGFydGljdWxhciB0ZXN0IGNh
c2UuCi0gIHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KLSAgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mbzxUZXN0Q2FzZT4qIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcigKLSAgICAgIGNvbnN0IGNo
YXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsK
LSAgICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNlPiogdHlwZWRfdGVzdF9pbmZv
ID0gTlVMTDsKLSAgICBmb3IgKFRlc3RDYXNlSW5mb0NvbnRhaW5lcjo6aXRlcmF0b3IgaXQgPSB0
ZXN0X2Nhc2VfaW5mb3NfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSB0ZXN0X2Nhc2VfaW5mb3Nf
LmVuZCgpOyArK2l0KSB7Ci0gICAgICBpZiAoKCppdCktPkdldFRlc3RDYXNlTmFtZSgpID09IHRl
c3RfY2FzZV9uYW1lKSB7Ci0gICAgICAgIGlmICgoKml0KS0+R2V0VGVzdENhc2VUeXBlSWQoKSAh
PSBHZXRUeXBlSWQ8VGVzdENhc2U+KCkpIHsKKyAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25z
IG9mIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlLgorICB0ZW1wbGF0ZSA8Y2xhc3MgVGVzdFN1aXRl
PgorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KiBHZXRUZXN0U3VpdGVQ
YXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvPFRl
c3RTdWl0ZT4qIHR5cGVkX3Rlc3RfaW5mbyA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiB0ZXN0
X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAgaWYgKHRlc3Rfc3VpdGVf
aW5mby0+R2V0VGVzdFN1aXRlTmFtZSgpID09IHRlc3Rfc3VpdGVfbmFtZSkgeworICAgICAgICBp
ZiAodGVzdF9zdWl0ZV9pbmZvLT5HZXRUZXN0U3VpdGVUeXBlSWQoKSAhPSBHZXRUeXBlSWQ8VGVz
dFN1aXRlPigpKSB7CiAgICAgICAgICAgLy8gQ29tcGxhaW4gYWJvdXQgaW5jb3JyZWN0IHVzYWdl
IG9mIEdvb2dsZSBUZXN0IGZhY2lsaXRpZXMKICAgICAgICAgICAvLyBhbmQgdGVybWluYXRlIHRo
ZSBwcm9ncmFtIHNpbmNlIHdlIGNhbm5vdCBndWFyYW50eSBjb3JyZWN0Ci0gICAgICAgICAgLy8g
dGVzdCBjYXNlIHNldHVwIGFuZCB0ZWFyLWRvd24gaW4gdGhpcyBjYXNlLgotICAgICAgICAgIFJl
cG9ydEludmFsaWRUZXN0Q2FzZVR5cGUodGVzdF9jYXNlX25hbWUsIGNvZGVfbG9jYXRpb24pOwor
ICAgICAgICAgIC8vIHRlc3Qgc3VpdGUgc2V0dXAgYW5kIHRlYXItZG93biBpbiB0aGlzIGNhc2Uu
CisgICAgICAgICAgUmVwb3J0SW52YWxpZFRlc3RTdWl0ZVR5cGUodGVzdF9zdWl0ZV9uYW1lLCBj
b2RlX2xvY2F0aW9uKTsKICAgICAgICAgICBwb3NpeDo6QWJvcnQoKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBzdXJlIHRoYXQgdGhlIG9iamVj
dCB3ZSBmb3VuZCBpcyBvZiB0aGUgc2FtZQogICAgICAgICAgIC8vIHR5cGUgd2UgYXJlIGxvb2tp
bmcgZm9yLCBzbyB3ZSBkb3duY2FzdCBpdCB0byB0aGF0IHR5cGUKICAgICAgICAgICAvLyB3aXRo
b3V0IGZ1cnRoZXIgY2hlY2tzLgogICAgICAgICAgIHR5cGVkX3Rlc3RfaW5mbyA9IENoZWNrZWRE
b3duY2FzdFRvQWN0dWFsVHlwZTwKLSAgICAgICAgICAgICAgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mbzxUZXN0Q2FzZT4gPigqaXQpOworICAgICAgICAgICAgICBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mbzxUZXN0U3VpdGU+ID4odGVzdF9zdWl0ZV9pbmZvKTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHR5cGVkX3Rlc3RfaW5mbyA9PSBOVUxM
KSB7Ci0gICAgICB0eXBlZF90ZXN0X2luZm8gPSBuZXcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5m
bzxUZXN0Q2FzZT4oCi0gICAgICAgICAgdGVzdF9jYXNlX25hbWUsIGNvZGVfbG9jYXRpb24pOwot
ICAgICAgdGVzdF9jYXNlX2luZm9zXy5wdXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKKyAgICBp
ZiAodHlwZWRfdGVzdF9pbmZvID09IG51bGxwdHIpIHsKKyAgICAgIHR5cGVkX3Rlc3RfaW5mbyA9
IG5ldyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KAorICAgICAgICAgIHRl
c3Rfc3VpdGVfbmFtZSwgY29kZV9sb2NhdGlvbik7CisgICAgICB0ZXN0X3N1aXRlX2luZm9zXy5w
dXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGVkX3Rlc3Rf
aW5mbzsKICAgfQogICB2b2lkIFJlZ2lzdGVyVGVzdHMoKSB7Ci0gICAgZm9yIChUZXN0Q2FzZUlu
Zm9Db250YWluZXI6Oml0ZXJhdG9yIGl0ID0gdGVzdF9jYXNlX2luZm9zXy5iZWdpbigpOwotICAg
ICAgICAgaXQgIT0gdGVzdF9jYXNlX2luZm9zXy5lbmQoKTsgKytpdCkgewotICAgICAgKCppdCkt
PlJlZ2lzdGVyVGVzdHMoKTsKKyAgICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGVfaW5mbyA6IHRlc3Rf
c3VpdGVfaW5mb3NfKSB7CisgICAgICB0ZXN0X3N1aXRlX2luZm8tPlJlZ2lzdGVyVGVzdHMoKTsK
ICAgICB9CiAgIH0KKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWls
YWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdGVtcGxh
dGUgPGNsYXNzIFRlc3RDYXNlPgorICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNl
PiogR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciogdGVzdF9jYXNl
X25hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgICAgcmV0dXJuIEdldFRlc3RT
dWl0ZVBhdHRlcm5Ib2xkZXI8VGVzdENhc2U+KHRlc3RfY2FzZV9uYW1lLCBjb2RlX2xvY2F0aW9u
KTsKKyAgfQorCisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
IAogIHByaXZhdGU6Ci0gIHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxQYXJhbWV0ZXJpemVkVGVzdENh
c2VJbmZvQmFzZSo+IFRlc3RDYXNlSW5mb0NvbnRhaW5lcjsKKyAgdXNpbmcgVGVzdFN1aXRlSW5m
b0NvbnRhaW5lciA9IDo6c3RkOjp2ZWN0b3I8UGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNl
Kj47CiAKLSAgVGVzdENhc2VJbmZvQ29udGFpbmVyIHRlc3RfY2FzZV9pbmZvc187CisgIFRlc3RT
dWl0ZUluZm9Db250YWluZXIgdGVzdF9zdWl0ZV9pbmZvc187CiAKLSAgR1RFU1RfRElTQUxMT1df
Q09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3RyeSk7CisgIEdURVNU
X0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5
KTsKK307CisKKy8vIEtlZXAgdHJhY2sgb2Ygd2hhdCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBz
dWl0ZSBhcmUgZGVmaW5lZCBhbmQKKy8vIHdoZXJlIGFzIHdlbGwgYXMgd2hpY2ggYXJlIGludGF0
aWF0ZWQuIFRoaXMgYWxsb3dzIHN1c2VxdWVudGx5CisvLyBpZGVudGlmeWluZyBzdWl0cyB0aGF0
IGFyZSBkZWZpbmVkIGJ1dCBuZXZlciB1c2VkLgorY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVSZWdpc3RyeSB7CisgcHVibGljOgorICAvLyBBZGQgYSBzdWl0ZSBkZWZpbml0aW9uCisg
IHZvaWQgUmVnaXN0ZXJUZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKTsKKworICAv
LyBBZGQgYW4gaW5zdGFudGlhdGlvbiBvZiBhIHN1aXQuCisgIHZvaWQgUmVnaXN0ZXJJbnN0YW50
aWF0aW9uKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSk7CisKKyAgLy8gRm9yIGVhY2ggc3Vp
dCByZXBvcmVkIGFzIGRlZmluZWQgYnV0IG5vdCByZXBvcnRlZCBhcyBpbnN0YW50aWF0aW9uLAor
ICAvLyBlbWl0IGEgdGVzdCB0aGF0IHJlcG9ydHMgdGhhdCBmYWN0IChjb25maWd1cmFibHksIGFz
IGFuIGVycm9yKS4KKyAgdm9pZCBDaGVja0Zvckluc3RhbnRpYXRpb25zKCk7CisKKyBwcml2YXRl
OgorICBzdHJ1Y3QgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIHsKKyAgICBleHBsaWNp
dCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8oQ29kZUxvY2F0aW9uIGMpCisgICAgICAg
IDogY29kZV9sb2NhdGlvbihjKSwgaW5zdGFudGlhdGVkKGZhbHNlKSB7fQorCisgICAgQ29kZUxv
Y2F0aW9uIGNvZGVfbG9jYXRpb247CisgICAgYm9vbCBpbnN0YW50aWF0ZWQ7CisgIH07CisKKyAg
c3RkOjptYXA8c3RkOjpzdHJpbmcsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbz4gc3Vp
dGVzXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBGb3J3YXJkIGRlY2xh
cmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgorLy8gaW5jbHVk
ZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgor
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4g
VmFsdWVzSW4oCisgICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOworCituYW1lc3BhY2Ug
aW50ZXJuYWwgeworLy8gVXNlZCBpbiB0aGUgVmFsdWVzKCkgZnVuY3Rpb24gdG8gcHJvdmlkZSBw
b2x5bW9ycGhpYyBjYXBhYmlsaXRpZXMuCisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJu
aW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQxMDApCisjZW5kaWYKKwordGVt
cGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorY2xhc3MgVmFsdWVBcnJheSB7CisgcHVibGljOgorICBl
eHBsaWNpdCBWYWx1ZUFycmF5KFRzLi4uIHYpIDogdl8oRmxhdFR1cGxlQ29uc3RydWN0VGFne30s
IHN0ZDo6bW92ZSh2KS4uLikge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAgICByZXR1cm4gVmFs
dWVzSW4oTWFrZVZlY3RvcjxUPihNYWtlSW5kZXhTZXF1ZW5jZTxzaXplb2YuLi4oVHMpPigpKSk7
CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QuLi4gST4K
KyAgc3RkOjp2ZWN0b3I8VD4gTWFrZVZlY3RvcihJbmRleFNlcXVlbmNlPEkuLi4+KSBjb25zdCB7
CisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPFQ+e3N0YXRpY19jYXN0PFQ+KHZfLnRlbXBsYXRlIEdl
dDxJPigpKS4uLn07CisgIH0KKworICBGbGF0VHVwbGU8VHMuLi4+IHZfOworfTsKKworI2lmZGVm
IF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKK3RlbXBsYXRlIDx0eXBl
bmFtZS4uLiBUPgorY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcgorICAgIDogcHVibGlj
IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPDo6c3RkOjp0dXBsZTxULi4uPj4geworIHB1YmxpYzoK
KyAgdHlwZWRlZiA6OnN0ZDo6dHVwbGU8VC4uLj4gUGFyYW1UeXBlOworCisgIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3IoY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4mIGcp
CisgICAgICA6IGdlbmVyYXRvcnNfKGcpIHt9CisgIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
KCkgb3ZlcnJpZGUge30KKworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJl
Z2luKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZ2Vu
ZXJhdG9yc18sIGZhbHNlKTsKKyAgfQorICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIEVuZCgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMs
IGdlbmVyYXRvcnNfLCB0cnVlKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPGNsYXNz
IEk+CisgIGNsYXNzIEl0ZXJhdG9ySW1wbDsKKyAgdGVtcGxhdGUgPHNpemVfdC4uLiBJPgorICBj
bGFzcyBJdGVyYXRvckltcGw8SW5kZXhTZXF1ZW5jZTxJLi4uPj4KKyAgICAgIDogcHVibGljIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7CisgICBwdWJsaWM6CisgICAgSXRlcmF0
b3JJbXBsKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCisg
ICAgICAgICAgICAgY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4mIGdlbmVy
YXRvcnMsIGJvb2wgaXNfZW5kKQorICAgICAgICA6IGJhc2VfKGJhc2UpLAorICAgICAgICAgIGJl
Z2luXyhzdGQ6OmdldDxJPihnZW5lcmF0b3JzKS5iZWdpbigpLi4uKSwKKyAgICAgICAgICBlbmRf
KHN0ZDo6Z2V0PEk+KGdlbmVyYXRvcnMpLmVuZCgpLi4uKSwKKyAgICAgICAgICBjdXJyZW50Xyhp
c19lbmQgPyBlbmRfIDogYmVnaW5fKSB7CisgICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Cisg
ICAgfQorICAgIH5JdGVyYXRvckltcGwoKSBvdmVycmlkZSB7fQorCisgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJy
aWRlIHsKKyAgICAgIHJldHVybiBiYXNlXzsKKyAgICB9CisgICAgLy8gQWR2YW5jZSBzaG91bGQg
bm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCisgICAgLy8gc28gbm8g
Y29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4K
KyAgICB2b2lkIEFkdmFuY2UoKSBvdmVycmlkZSB7CisgICAgICBhc3NlcnQoIUF0RW5kKCkpOwor
ICAgICAgLy8gQWR2YW5jZSB0aGUgbGFzdCBpdGVyYXRvci4KKyAgICAgICsrc3RkOjpnZXQ8c2l6
ZW9mLi4uKFQpIC0gMT4oY3VycmVudF8pOworICAgICAgLy8gaWYgdGhhdCByZWFjaGVzIGVuZCwg
cHJvcGFnYXRlIHRoYXQgdXAuCisgICAgICBBZHZhbmNlSWZFbmQ8c2l6ZW9mLi4uKFQpIC0gMT4o
KTsKKyAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKKyAgICB9CisgICAgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIHJl
dHVybiBuZXcgSXRlcmF0b3JJbXBsKCp0aGlzKTsKKyAgICB9CisKKyAgICBjb25zdCBQYXJhbVR5
cGUqIEN1cnJlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQo
KTsgfQorCisgICAgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgLy8gSGF2aW5nIHRoZSBzYW1l
IGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKKyAgICAgIC8vIGl0ZXJh
dG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KKyAgICAgIEdURVNU
X0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQorICAgICAg
ICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgorICAg
ICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOworICAg
ICAgY29uc3QgSXRlcmF0b3JJbXBsKiB0eXBlZF9vdGhlciA9CisgICAgICAgICAgQ2hlY2tlZERv
d25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9ySW1wbD4oJm90aGVyKTsKKworICAgICAg
Ly8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlv
bmQgdGhlaXIKKyAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4g
YSB2YXJpZXR5IG9mIGZhc2hpb25zLAorICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0
RW5kKCkuCisgICAgICBpZiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgcmV0dXJu
IHRydWU7CisKKyAgICAgIGJvb2wgc2FtZSA9IHRydWU7CisgICAgICBib29sIGR1bW15W10gPSB7
CisgICAgICAgICAgKHNhbWUgPSBzYW1lICYmIHN0ZDo6Z2V0PEk+KGN1cnJlbnRfKSA9PQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpnZXQ8ST4odHlwZWRfb3RoZXItPmN1cnJl
bnRfKSkuLi59OworICAgICAgKHZvaWQpZHVtbXk7CisgICAgICByZXR1cm4gc2FtZTsKKyAgICB9
CisKKyAgIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHNpemVfdCBUaGlzST4KKyAgICB2b2lkIEFk
dmFuY2VJZkVuZCgpIHsKKyAgICAgIGlmIChzdGQ6OmdldDxUaGlzST4oY3VycmVudF8pICE9IHN0
ZDo6Z2V0PFRoaXNJPihlbmRfKSkgcmV0dXJuOworCisgICAgICBib29sIGxhc3QgPSBUaGlzSSA9
PSAwOworICAgICAgaWYgKGxhc3QpIHsKKyAgICAgICAgLy8gV2UgYXJlIGRvbmUuIE5vdGhpbmcg
ZWxzZSB0byBwcm9wYWdhdGUuCisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgY29u
c3RleHByIHNpemVfdCBOZXh0SSA9IFRoaXNJIC0gKFRoaXNJICE9IDApOworICAgICAgc3RkOjpn
ZXQ8VGhpc0k+KGN1cnJlbnRfKSA9IHN0ZDo6Z2V0PFRoaXNJPihiZWdpbl8pOworICAgICAgKytz
dGQ6OmdldDxOZXh0ST4oY3VycmVudF8pOworICAgICAgQWR2YW5jZUlmRW5kPE5leHRJPigpOwor
ICAgIH0KKworICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgIGlmICghQXRF
bmQoKSkKKyAgICAgICAgY3VycmVudF92YWx1ZV8gPSBzdGQ6Om1ha2Vfc2hhcmVkPFBhcmFtVHlw
ZT4oKnN0ZDo6Z2V0PEk+KGN1cnJlbnRfKS4uLik7CisgICAgfQorICAgIGJvb2wgQXRFbmQoKSBj
b25zdCB7CisgICAgICBib29sIGF0X2VuZCA9IGZhbHNlOworICAgICAgYm9vbCBkdW1teVtdID0g
eworICAgICAgICAgIChhdF9lbmQgPSBhdF9lbmQgfHwgc3RkOjpnZXQ8ST4oY3VycmVudF8pID09
IHN0ZDo6Z2V0PEk+KGVuZF8pKS4uLn07CisgICAgICAodm9pZClkdW1teTsKKyAgICAgIHJldHVy
biBhdF9lbmQ7CisgICAgfQorCisgICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogY29uc3QgYmFzZV87CisgICAgc3RkOjp0dXBsZTx0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUPjo6aXRlcmF0b3IuLi4+IGJlZ2luXzsKKyAgICBzdGQ6OnR1cGxlPHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gZW5kXzsKKyAgICBzdGQ6OnR1cGxlPHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gY3VycmVudF87CisgICAgc3RkOjpz
aGFyZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87CisgIH07CisKKyAgdXNpbmcgSXRl
cmF0b3IgPSBJdGVyYXRvckltcGw8dHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4u
KFQpPjo6dHlwZT47CisKKyAgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4gZ2VuZXJh
dG9yc187Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MuLi4gR2VuPgorY2xhc3MgQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlciB7CisgcHVibGljOgorICBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyKGNvbnN0IEdl
biYuLi4gZykgOiBnZW5lcmF0b3JzXyhnLi4uKSB7fQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4g
VD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQuLi4+PigpIGNvbnN0
IHsKKyAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQuLi4+PigKKyAgICAg
ICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I8VC4uLj4oZ2VuZXJhdG9yc18pKTsKKyAg
fQorCisgcHJpdmF0ZToKKyAgc3RkOjp0dXBsZTxHZW4uLi4+IGdlbmVyYXRvcnNfOwogfTsKIAog
fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5k
aWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwor
I2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1f
VVRJTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgKaW5kZXggZjgzNzAwZTA2ZDk4
YzM2ZjY0ODcyOTFjM2Y5MzE4MDdhZjM1M2Y3NC4uZmZlNjMwMDNkMDdjOTVhZmNjMWY0N2NlMTQy
OGQ0NWQ1NmQ4ZjZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oCkBAIC0zMiwy
MCArMzIsMTkgQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUgZGVmaW5lcyB0aGUgR1RFU1RfT1NfKiBt
YWNyby4KIC8vIEl0IGlzIHNlcGFyYXRlIGZyb20gZ3Rlc3QtcG9ydC5oIHNvIHRoYXQgY3VzdG9t
L2d0ZXN0LXBvcnQuaCBjYW4gaW5jbHVkZSBpdC4KIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCisjZGVmaW5lIEdPT0dMRVRFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KIAogLy8gRGV0ZXJtaW5l
cyB0aGUgcGxhdGZvcm0gb24gd2hpY2ggR29vZ2xlIFRlc3QgaXMgY29tcGlsZWQuCiAjaWZkZWYg
X19DWUdXSU5fXwogIyBkZWZpbmUgR1RFU1RfT1NfQ1lHV0lOIDEKLSNlbGlmIGRlZmluZWQgX19T
WU1CSUFOMzJfXwotIyBkZWZpbmUgR1RFU1RfT1NfU1lNQklBTiAxCisjIGVsaWYgZGVmaW5lZChf
X01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pIHx8IGRlZmluZWQoX19NSU5HVzY0X18p
CisjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCisjICBkZWZpbmUgR1RFU1RfT1Nf
V0lORE9XUyAxCiAjZWxpZiBkZWZpbmVkIF9XSU4zMgogIyBkZWZpbmUgR1RFU1RfT1NfV0lORE9X
UyAxCiAjIGlmZGVmIF9XSU4zMl9XQ0UKICMgIGRlZmluZSBHVEVTVF9PU19XSU5ET1dTX01PQklM
RSAxCi0jIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pCi0j
ICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCiAjIGVsaWYgZGVmaW5lZChXSU5BUElf
RkFNSUxZKQogIyAgaW5jbHVkZSA8d2luYXBpZmFtaWx5Lmg+CiAjICBpZiBXSU5BUElfRkFNSUxZ
X1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0RFU0tUT1ApCkBAIC02NSwxNSArNjQsMjIgQEAK
ICMgZWxzZQogIyAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAxCiAjIGVuZGlmICAv
LyBfV0lOMzJfV0NFCisjZWxpZiBkZWZpbmVkIF9fT1MyX18KKyMgZGVmaW5lIEdURVNUX09TX09T
MiAxCiAjZWxpZiBkZWZpbmVkIF9fQVBQTEVfXwogIyBkZWZpbmUgR1RFU1RfT1NfTUFDIDEKKyMg
aW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjIGlmIFRBUkdFVF9PU19JUEhPTkUKICMg
IGRlZmluZSBHVEVTVF9PU19JT1MgMQogIyBlbmRpZgorI2VsaWYgZGVmaW5lZCBfX0RyYWdvbkZs
eV9fCisjIGRlZmluZSBHVEVTVF9PU19EUkFHT05GTFkgMQogI2VsaWYgZGVmaW5lZCBfX0ZyZWVC
U0RfXwogIyBkZWZpbmUgR1RFU1RfT1NfRlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fRnVjaHNp
YV9fCiAjIGRlZmluZSBHVEVTVF9PU19GVUNIU0lBIDEKKyNlbGlmIGRlZmluZWQoX19HTElCQ19f
KSAmJiBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKKyMgZGVmaW5lIEdURVNUX09TX0dOVV9L
RlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fbGludXhfXwogIyBkZWZpbmUgR1RFU1RfT1NfTElO
VVggMQogIyBpZiBkZWZpbmVkIF9fQU5EUk9JRF9fCkBAIC05NSw2ICsxMDEsMTIgQEAKICMgZGVm
aW5lIEdURVNUX09TX09QRU5CU0QgMQogI2VsaWYgZGVmaW5lZCBfX1FOWF9fCiAjIGRlZmluZSBH
VEVTVF9PU19RTlggMQorI2VsaWYgZGVmaW5lZChfX0hBSUtVX18pCisjZGVmaW5lIEdURVNUX09T
X0hBSUtVIDEKKyNlbGlmIGRlZmluZWQgRVNQODI2NgorI2RlZmluZSBHVEVTVF9PU19FU1A4MjY2
IDEKKyNlbGlmIGRlZmluZWQgRVNQMzIKKyNkZWZpbmUgR1RFU1RfT1NfRVNQMzIgMQogI2VuZGlm
ICAvLyBfX0NZR1dJTl9fCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QT1JUX0FSQ0hfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaAppbmRleCA3
ODY0OTdkODU0Yzk3ZjFiNmFiOTM3MmEyNDFjMWZhMTU1YTMwYTU0Li4xYzBkZWRkZDcwMGE1Y2Vm
ZWY2YTJiZjUzZGE5YjNjZDA4NDk5NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaApAQCAtNDAs
OCArNDAsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5k
ZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCi0jZGVmaW5lIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2lmbmRlZiBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2RlZmluZSBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXwogCiAvLyBFbnZpcm9ubWVu
dC1kZXNjcmliaW5nIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg
LTcyLDEwICs3Miw2IEBACiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzL2lzbid0
IGF2YWlsYWJsZS4KIC8vICAgR1RFU1RfSEFTX0VYQ0VQVElPTlMgICAgIC0gRGVmaW5lIGl0IHRv
IDEvMCB0byBpbmRpY2F0ZSB0aGF0IGV4Y2VwdGlvbnMKIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJlIGVuYWJsZWQuCi0vLyAgIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HICAtIERl
ZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA6OnN0cmluZwotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUKLS8vICAgR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IDo6d3N0cmluZwot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUKIC8vICAg
R1RFU1RfSEFTX1BPU0lYX1JFICAgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0
aGF0IFBPU0lYIHJlZ3VsYXIKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVz
c2lvbnMgYXJlL2FyZW4ndCBhdmFpbGFibGUuCiAvLyAgIEdURVNUX0hBU19QVEhSRUFEICAgICAg
ICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA8cHRocmVhZC5oPgpAQCAtODUs
OCArODEsNiBAQAogLy8gICBHVEVTVF9IQVNfU1REX1dTVFJJTkcgICAgLSBEZWZpbmUgaXQgdG8g
MS8wIHRvIGluZGljYXRlIHRoYXQKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
Ojp3c3RyaW5nIGRvZXMvZG9lc24ndCB3b3JrIChHb29nbGUgVGVzdCBjYW4KIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB3aGVyZSBzdGQ6OndzdHJpbmcgaXMgdW5hdmFp
bGFibGUpLgotLy8gICBHVEVTVF9IQVNfVFIxX1RVUExFICAgICAgLSBEZWZpbmUgaXQgdG8gMS8w
IHRvIGluZGljYXRlIHRyMTo6dHVwbGUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXMvaXNuJ3QgYXZhaWxhYmxlLgogLy8gICBHVEVTVF9IQVNfU0VIICAgICAgICAgICAgLSBEZWZp
bmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbXBpbGVyIHN1cHBvcnRzIE1pY3Jvc29mdCdzICJTdHJ1Y3R1cmVkCiAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiBIYW5kbGluZyIuCkBAIC05
NCwxMiArODgsNiBAQAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZWZpbmUgaXQg
dG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBsYXRmb3JtIHN1cHBvcnRzIEkvTyBzdHJlYW0gcmVkaXJlY3Rpb24gdXNpbmcKIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwKCkgYW5kIGR1cDIoKS4KLS8vICAgR1RF
U1RfVVNFX09XTl9UUjFfVFVQTEUgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB3aGV0
aGVyIEdvb2dsZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0J3Mgb3duIHRy
MSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXNlZC4gIFVudXNlZCB3aGVuIHRoZSB1c2VyIHNldHMKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RFU1RfSEFTX1RSMV9UVVBMRSB0byAwLgotLy8gICBHVEVTVF9M
QU5HX0NYWDExICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQgR29v
Z2xlIFRlc3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgYnVpbGRpbmcgaW4g
QysrMTEvQysrOTggbW9kZS4KIC8vICAgR1RFU1RfTElOS0VEX0FTX1NIQVJFRF9MSUJSQVJZCiAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERlZmluZSB0byAxIHdoZW4gY29tcGlsaW5n
IHRlc3RzIHRoYXQgdXNlCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdvb2dsZSBU
ZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duIGFzCkBAIC0xMjUsOCArMTEzLDExIEBACiAv
LwogLy8gICBHVEVTVF9PU19BSVggICAgICAtIElCTSBBSVgKIC8vICAgR1RFU1RfT1NfQ1lHV0lO
ICAgLSBDeWd3aW4KKy8vICAgR1RFU1RfT1NfRFJBR09ORkxZIC0gRHJhZ29uRmx5QlNECiAvLyAg
IEdURVNUX09TX0ZSRUVCU0QgIC0gRnJlZUJTRAogLy8gICBHVEVTVF9PU19GVUNIU0lBICAtIEZ1
Y2hzaWEKKy8vICAgR1RFU1RfT1NfR05VX0tGUkVFQlNEIC0gR05VL2tGcmVlQlNECisvLyAgIEdU
RVNUX09TX0hBSUtVICAgIC0gSGFpa3UKIC8vICAgR1RFU1RfT1NfSFBVWCAgICAgLSBIUC1VWAog
Ly8gICBHVEVTVF9PU19MSU5VWCAgICAtIExpbnV4CiAvLyAgICAgR1RFU1RfT1NfTElOVVhfQU5E
Uk9JRCAtIEdvb2dsZSBBbmRyb2lkCkBAIC0xMzUsOSArMTI2LDkgQEAKIC8vICAgR1RFU1RfT1Nf
TkFDTCAgICAgLSBHb29nbGUgTmF0aXZlIENsaWVudCAoTmFDbCkKIC8vICAgR1RFU1RfT1NfTkVU
QlNEICAgLSBOZXRCU0QKIC8vICAgR1RFU1RfT1NfT1BFTkJTRCAgLSBPcGVuQlNECisvLyAgIEdU
RVNUX09TX09TMiAgICAgIC0gT1MvMgogLy8gICBHVEVTVF9PU19RTlggICAgICAtIFFOWAogLy8g
ICBHVEVTVF9PU19TT0xBUklTICAtIFN1biBTb2xhcmlzCi0vLyAgIEdURVNUX09TX1NZTUJJQU4g
IC0gU3ltYmlhbgogLy8gICBHVEVTVF9PU19XSU5ET1dTICAtIFdpbmRvd3MgKERlc2t0b3AsIE1p
bkdXLCBvciBNb2JpbGUpCiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19ERVNLVE9QICAtIFdpbmRv
d3MgRGVza3RvcAogLy8gICAgIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgICAgLSBNaW5HVwpAQCAt
MTQ2LDcgKzEzNyw3IEBACiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19SVCAgICAgICAtIFdpbmRv
d3MgU3RvcmUgQXBwL1dpblJUCiAvLyAgIEdURVNUX09TX1pPUyAgICAgIC0gei9PUwogLy8KLS8v
IEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwgTGludXgsIE1heCBPUyBYLCBhbmQgV2luZG93
cyBoYXZlIHRoZQorLy8gQW1vbmcgdGhlIHBsYXRmb3JtcywgQ3lnd2luLCBMaW51eCwgTWFjIE9T
IFgsIGFuZCBXaW5kb3dzIGhhdmUgdGhlCiAvLyBtb3N0IHN0YWJsZSBzdXBwb3J0LiAgU2luY2Ug
Y29yZSBtZW1iZXJzIG9mIHRoZSBHb29nbGUgVGVzdCBwcm9qZWN0CiAvLyBkb24ndCBoYXZlIGFj
Y2VzcyB0byBvdGhlciBwbGF0Zm9ybXMsIHN1cHBvcnQgZm9yIHRoZW0gbWF5IGJlIGxlc3MKIC8v
IHN0YWJsZS4gIElmIHlvdSBub3RpY2UgYW55IHByb2JsZW1zIG9uIHlvdXIgcGxhdGZvcm0sIHBs
ZWFzZSBub3RpZnkKQEAgLTE3Miw4ICsxNjMsNiBAQAogLy8gICBFWFBFQ1RfREVBVEgoRG9Tb21l
dGhpbmdEZWFkbHkoKSk7CiAvLyAjZW5kaWYKIC8vCi0vLyAgIEdURVNUX0hBU19DT01CSU5FICAg
ICAgLSB0aGUgQ29tYmluZSgpIGZ1bmN0aW9uIChmb3IgdmFsdWUtcGFyYW1ldGVyaXplZAotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMpCiAvLyAgIEdURVNUX0hBU19ERUFUSF9U
RVNUICAgLSBkZWF0aCB0ZXN0cwogLy8gICBHVEVTVF9IQVNfVFlQRURfVEVTVCAgIC0gdHlwZWQg
dGVzdHMKIC8vICAgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUCAtIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0cwpAQCAtMTg0LDcgKzE3Myw2IEBACiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZpbmUgdGhlbXNlbHZlcy4KIC8vICAgR1RFU1RfVVNFU19TSU1QTEVfUkUgICAtIG91ciBvd24g
c2ltcGxlIHJlZ2V4IGlzIHVzZWQ7CiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUg
YWJvdmUgUkVcYihzKSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgotLy8gICBHVEVTVF9DQU5fQ09N
UEFSRV9OVUxMIC0gYWNjZXB0cyB1bnR5cGVkIE5VTEwgaW4gRVhQRUNUX0VRKCkuCiAKIC8vIE1p
c2MgcHVibGljIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDIsMzEgKzE5MCwz
MiBAQAogLy8gICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAtIGZvciBkaXNhYmxpbmcg
YSBnY2Mgd2FybmluZy4KIC8vICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gIC0gZGVjbGFyZXMg
dGhhdCBhIGNsYXNzJyBpbnN0YW5jZXMgb3IgYQogLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXJpYWJsZSBkb24ndCBoYXZlIHRvIGJlIHVzZWQuCi0vLyAgIEdURVNUX0RJU0FMTE9X
X0FTU0lHTl8gICAtIGRpc2FibGVzIG9wZXJhdG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfQVNT
SUdOXyAgIC0gZGlzYWJsZXMgY29weSBvcGVyYXRvcj0uCiAvLyAgIEdURVNUX0RJU0FMTE9XX0NP
UFlfQU5EX0FTU0lHTl8gLSBkaXNhYmxlcyBjb3B5IGN0b3IgYW5kIG9wZXJhdG9yPS4KKy8vICAg
R1RFU1RfRElTQUxMT1dfTU9WRV9BU1NJR05fICAgLSBkaXNhYmxlcyBtb3ZlIG9wZXJhdG9yPS4K
Ky8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BTkRfQVNTSUdOXyAtIGRpc2FibGVzIG1vdmUgY3Rv
ciBhbmQgb3BlcmF0b3I9LgogLy8gICBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfICAgLSBkZWNsYXJl
cyB0aGF0IGEgZnVuY3Rpb24ncyByZXN1bHQgbXVzdCBiZSB1c2VkLgogLy8gICBHVEVTVF9JTlRF
TlRJT05BTF9DT05TVF9DT05EX1BVU0hfIC0gc3RhcnQgY29kZSBzZWN0aW9uIHdoZXJlIE1TVkMg
QzQxMjcgaXMKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBy
ZXNzZWQgKGNvbnN0YW50IGNvbmRpdGlvbmFsKS4KIC8vICAgR1RFU1RfSU5URU5USU9OQUxfQ09O
U1RfQ09ORF9QT1BfICAtIGZpbmlzaCBjb2RlIHNlY3Rpb24gd2hlcmUgTVNWQyBDNDEyNwogLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgc3VwcHJlc3NlZC4KLS8v
Ci0vLyBDKysxMSBmZWF0dXJlIHdyYXBwZXJzOgotLy8KLS8vICAgdGVzdGluZzo6aW50ZXJuYWw6
OmZvcndhcmQgLSBwb3J0YWJpbGl0eSB3cmFwcGVyIGZvciBzdGQ6OmZvcndhcmQuCi0vLyAgIHRl
c3Rpbmc6OmludGVybmFsOjptb3ZlICAtIHBvcnRhYmlsaXR5IHdyYXBwZXIgZm9yIHN0ZDo6bW92
ZS4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAtIGZvciBlbmFibGluZyBVbml2ZXJzYWxQ
cmludGVyPHN0ZDo6YW55PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVy
c2FsUHJpbnRlcjxhYnNsOjphbnk+IHNwZWNpYWxpemF0aW9ucy4KKy8vICAgR1RFU1RfSU5URVJO
QUxfSEFTX09QVElPTkFMIC0gZm9yIGVuYWJsaW5nIFVuaXZlcnNhbFByaW50ZXI8c3RkOjpvcHRp
b25hbD4KKy8vICAgb3IKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVy
c2FsUHJpbnRlcjxhYnNsOjpvcHRpb25hbD4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3BlY2lhbGl6YXRpb25zLgorLy8gICBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJ
RVcgLSBmb3IgZW5hYmxpbmcgTWF0Y2hlcjxzdGQ6OnN0cmluZ192aWV3PiBvcgorLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGFic2w6OnN0cmluZ192aWV3Pgor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCisv
LyAgIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIC0gZm9yIGVuYWJsaW5nIFVuaXZlcnNhbFBy
aW50ZXI8c3RkOjp2YXJpYW50PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaXZlcnNhbFByaW50ZXI8YWJzbDo6dmFyaWFudD4KKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCiAvLwogLy8gU3luY2hyb25pemF0aW9uOgogLy8g
ICBNdXRleCwgTXV0ZXhMb2NrLCBUaHJlYWRMb2NhbCwgR2V0VGhyZWFkQ291bnQoKQogLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcy4KIC8v
Ci0vLyBUZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nOgotLy8gICBpc19wb2ludGVyICAgICAtIGFz
IGluIFRSMTsgbmVlZGVkIG9uIFN5bWJpYW4gYW5kIElCTSBYTCBDL0MrKyBvbmx5LgotLy8gICBJ
dGVyYXRvclRyYWl0cyAtIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2Ygc3RkOjppdGVyYXRvcl90
cmFpdHMsIHdoaWNoCi0vLyAgICAgICAgICAgICAgICAgICAgaXMgbm90IGF2YWlsYWJsZSBpbiBs
aWJDc3RkIHdoZW4gY29tcGlsZWQgd2l0aCBTdW4gQysrLgotLy8KLS8vIFNtYXJ0IHBvaW50ZXJz
OgotLy8gICBzY29wZWRfcHRyICAgICAtIGFzIGluIFRSMi4KLS8vCiAvLyBSZWd1bGFyIGV4cHJl
c3Npb25zOgogLy8gICBSRSAgICAgICAgICAgICAtIGEgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lv
biBjbGFzcyB1c2luZyB0aGUgUE9TSVgKIC8vICAgICAgICAgICAgICAgICAgICBFeHRlbmRlZCBS
ZWd1bGFyIEV4cHJlc3Npb24gc3ludGF4IG9uIFVOSVgtbGlrZSBwbGF0Zm9ybXMKQEAgLTI0OCw4
ICsyMzcsNyBAQAogLy8KIC8vIEludGVnZXIgdHlwZXM6CiAvLyAgIFR5cGVXaXRoU2l6ZSAgIC0g
bWFwcyBhbiBpbnRlZ2VyIHRvIGEgaW50IHR5cGUuCi0vLyAgIEludDMyLCBVSW50MzIsIEludDY0
LCBVSW50NjQsIFRpbWVJbk1pbGxpcwotLy8gICAgICAgICAgICAgICAgICAtIGludGVnZXJzIG9m
IGtub3duIHNpemVzLgorLy8gICBUaW1lSW5NaWxsaXMgICAtIGludGVnZXJzIG9mIGtub3duIHNp
emVzLgogLy8gICBCaWdnZXN0SW50ICAgICAtIHRoZSBiaWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5
cGUuCiAvLwogLy8gQ29tbWFuZC1saW5lIHV0aWxpdGllczoKQEAgLTI2MCwxNCArMjQ4LDI1IEBA
CiAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSB1dGlsaXRpZXM6CiAvLyAgIEdldEVudigpICAgICAg
ICAgICAgIC0gZ2V0cyB0aGUgdmFsdWUgb2YgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAg
IEJvb2xGcm9tR1Rlc3RFbnYoKSAgIC0gcGFyc2VzIGEgYm9vbCBlbnZpcm9ubWVudCB2YXJpYWJs
ZS4KLS8vICAgSW50MzJGcm9tR1Rlc3RFbnYoKSAgLSBwYXJzZXMgYW4gSW50MzIgZW52aXJvbm1l
bnQgdmFyaWFibGUuCisvLyAgIEludDMyRnJvbUdUZXN0RW52KCkgIC0gcGFyc2VzIGFuIGludDMy
X3QgZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAgIFN0cmluZ0Zyb21HVGVzdEVudigpIC0gcGFy
c2VzIGEgc3RyaW5nIGVudmlyb25tZW50IHZhcmlhYmxlLgorLy8KKy8vIERlcHJlY2F0aW9uIHdh
cm5pbmdzOgorLy8gICBHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpIC0gYXR0cmli
dXRlIG1hcmtpbmcgYSBmdW5jdGlvbiBhcworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVwcmVjYXRlZDsgY2FsbGluZyBhIG1hcmtlZCBmdW5jdGlvbgorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGdlbmVyYXRlIGEgY29t
cGlsZXIgd2FybmluZwogCiAjaW5jbHVkZSA8Y3R5cGUuaD4gICAvLyBmb3IgaXNzcGFjZSwgZXRj
CiAjaW5jbHVkZSA8c3RkZGVmLmg+ICAvLyBmb3IgcHRyZGlmZl90Ci0jaW5jbHVkZSA8c3RkbGli
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgPGNlcnJubz4KKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKwogI2lmbmRlZiBfV0lOMzJfV0NF
CiAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgpAQCAtMjc4
LDE3ICsyNzcsMTUgQEAKICMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjZW5kaWYK
IAotLy8gQnJpbmdzIGluIHRoZSBkZWZpbml0aW9uIG9mIEhBU19HTE9CQUxfU1RSSU5HLiAgVGhp
cyBtdXN0IGJlIGRvbmUKLS8vIEJFRk9SRSB3ZSB0ZXN0IEhBU19HTE9CQUxfU1RSSU5HLgotI2lu
Y2x1ZGUgPHN0cmluZz4gIC8vIE5PTElOVAotI2luY2x1ZGUgPGFsZ29yaXRobT4gIC8vIE5PTElO
VAogI2luY2x1ZGUgPGlvc3RyZWFtPiAgLy8gTk9MSU5UCi0jaW5jbHVkZSA8c3N0cmVhbT4gIC8v
IE5PTElOVAotI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8bG9jYWxlPgorI2luY2x1ZGUg
PG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+ICAvLyBOT0xJTlQKKyNpbmNsdWRlIDx0dXBsZT4K
ICNpbmNsdWRlIDx2ZWN0b3I+ICAvLyBOT0xJTlQKIAotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQtYXJjaC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVz
dC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgiCiAK
ICNpZiAhZGVmaW5lZChHVEVTVF9ERVZfRU1BSUxfKQogIyBkZWZpbmUgR1RFU1RfREVWX0VNQUlM
XyAiZ29vZ2xldGVzdGZyYW1ld29ya0BAZ29vZ2xlZ3JvdXBzLmNvbSIKQEAgLTMxNSwxNCArMzEy
LDE0IEBACiAvLyAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ4MDAgNDM4NSkK
IC8vICAgLyogY29kZSB0aGF0IHRyaWdnZXJzIHdhcm5pbmdzIEM0ODAwIGFuZCBDNDM4NSAqLwog
Ly8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNpZiBfTVNDX1ZFUiA+PSAx
NDAwCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKICMgZGVmaW5lIEdURVNUX0RJU0FCTEVfTVNDX1dB
Uk5JTkdTX1BVU0hfKHdhcm5pbmdzKSBcCiAgICAgX19wcmFnbWEod2FybmluZyhwdXNoKSkgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgX19wcmFnbWEod2FybmluZyhkaXNhYmxlOiB3YXJu
aW5ncykpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgICAgICAg
ICAgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcocG9wKSkKICNlbHNlCi0vLyBPbGRlciB2ZXJzaW9u
cyBvZiBNU1ZDIGRvbid0IGhhdmUgX19wcmFnbWEuCisvLyBOb3QgYWxsIGNvbXBpbGVycyBhcmUg
TVNWQwogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8od2FybmluZ3Mp
CiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKICNlbmRpZgpAQCAt
MzQzLDgwICszNDAsNiBAQAogICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQog
I2VuZGlmCiAKLSNpZm5kZWYgR1RFU1RfTEFOR19DWFgxMQotLy8gZ2NjIGFuZCBjbGFuZyBkZWZp
bmUgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gd2hlbgotLy8gLXN0ZD17YyxnbnV9Kyt7MHgs
MTF9IGlzIHBhc3NlZC4gIFRoZSBDKysxMSBzdGFuZGFyZCBzcGVjaWZpZXMgYQotLy8gdmFsdWUg
Zm9yIF9fY3BsdXNwbHVzLCBhbmQgcmVjZW50IHZlcnNpb25zIG9mIGNsYW5nLCBnY2MsIGFuZAot
Ly8gcHJvYmFibHkgb3RoZXIgY29tcGlsZXJzIHNldCB0aGF0IHRvbyBpbiBDKysxMSBtb2RlLgot
IyBpZiBfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXyB8fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNM
IHx8IF9NU0NfVkVSID49IDE5MDAKLS8vIENvbXBpbGluZyBpbiBhdCBsZWFzdCBDKysxMSBtb2Rl
LgotIyAgZGVmaW5lIEdURVNUX0xBTkdfQ1hYMTEgMQotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1Rf
TEFOR19DWFgxMSAwCi0jIGVuZGlmCi0jZW5kaWYKLQotLy8gRGlzdGluY3QgZnJvbSBDKysxMSBs
YW5ndWFnZSBzdXBwb3J0LCBzb21lIGVudmlyb25tZW50cyBkb24ndCBwcm92aWRlCi0vLyBwcm9w
ZXIgQysrMTEgbGlicmFyeSBzdXBwb3J0LiBOb3RhYmx5LCBpdCdzIHBvc3NpYmxlIHRvIGJ1aWxk
IGluCi0vLyBDKysxMSBtb2RlIHdoZW4gdGFyZ2V0aW5nIE1hYyBPUyBYIDEwLjYsIHdoaWNoIGhh
cyBhbiBvbGQgbGlic3RkYysrCi0vLyB3aXRoIG5vIEMrKzExIHN1cHBvcnQuCi0vLwotLy8gbGli
c3RkYysrIGhhcyBzdWZmaWNpZW50IEMrKzExIHN1cHBvcnQgYXMgb2YgR0NDIDQuNi4wLCBfX0dM
SUJDWFhfXwotLy8gMjAxMTAzMjUsIGJ1dCBtYWludGVuYW5jZSByZWxlYXNlcyBpbiB0aGUgNC40
IGFuZCA0LjUgc2VyaWVzIGZvbGxvd2VkCi0vLyB0aGlzIGRhdGUsIHNvIGNoZWNrIGZvciB0aG9z
ZSB2ZXJzaW9ucyBieSB0aGVpciBkYXRlIHN0YW1wcy4KLS8vIGh0dHBzOi8vZ2NjLmdudS5vcmcv
b25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2FiaS5odG1sI2FiaS52ZXJzaW9uaW5nCi0jaWYg
R1RFU1RfTEFOR19DWFgxMSAmJiBcCi0gICAgKCFkZWZpbmVkKF9fR0xJQkNYWF9fKSB8fCAoIFwK
LSAgICAgICAgX19HTElCQ1hYX18gPj0gMjAxMTAzMjV1bCAmJiAgLyogR0NDID49IDQuNi4wICov
IFwKLSAgICAgICAgLyogQmxhY2tsaXN0IG9mIHBhdGNoIHJlbGVhc2VzIG9mIG9sZGVyIGJyYW5j
aGVzOiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDE2dWwgJiYgIC8qIEdDQyA0
LjQuNiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwMzEzdWwgJiYgIC8qIEdDQyA0
LjQuNyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDI4dWwgJiYgIC8qIEdDQyA0
LjUuMyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwNzAydWwpKSAgIC8qIEdDQyA0
LjUuNCAqLwotIyBkZWZpbmUgR1RFU1RfU1RETElCX0NYWDExIDEKLSNlbmRpZgotCi0vLyBPbmx5
IHVzZSBDKysxMSBsaWJyYXJ5IGZlYXR1cmVzIGlmIHRoZSBsaWJyYXJ5IHByb3ZpZGVzIHRoZW0u
Ci0jaWYgR1RFU1RfU1RETElCX0NYWDExCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0JFR0lOX0FO
RF9FTkRfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXyAxCi0jIGlmICFk
ZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19GVUxMX1ZFUiA+PSAxOTAwMjM4MjQpCi0vLyB3b3Jr
cyBvbmx5IHdpdGggVlMyMDE1VTIgYW5kIGJldHRlcgotIyAgIGRlZmluZSBHVEVTVF9IQVNfU1RE
X0ZVTkNUSU9OXyAxCi0jIGVuZGlmCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0lOSVRJQUxJWkVS
X0xJU1RfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfTU9WRV8gMQotIyBkZWZpbmUgR1RFU1Rf
SEFTX1NURF9VTklRVUVfUFRSXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX1NIQVJFRF9QVFJf
IDEKLSMgZGVmaW5lIEdURVNUX0hBU19VTk9SREVSRURfTUFQXyAxCi0jIGRlZmluZSBHVEVTVF9I
QVNfVU5PUkRFUkVEX1NFVF8gMQotI2VuZGlmCi0KLS8vIEMrKzExIHNwZWNpZmllcyB0aGF0IDx0
dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4KLS8vIFNvbWUgcGxhdGZvcm1zIHN0aWxsIG1pZ2h0
IG5vdCBoYXZlIGl0LCBob3dldmVyLgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSMgZGVmaW5lIEdU
RVNUX0hBU19TVERfVFVQTEVfIDEKLSMgaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBJbnNwaXJl
ZCBieQotLy8gaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0xhbmd1YWdlRXh0ZW5zaW9ucy5o
dG1sI2luY2x1ZGUtZmlsZS1jaGVja2luZy1tYWNyb3MKLSMgIGlmIGRlZmluZWQoX19oYXNfaW5j
bHVkZSkgJiYgIV9faGFzX2luY2x1ZGUoPHR1cGxlPikKLSMgICB1bmRlZiBHVEVTVF9IQVNfU1RE
X1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQotLy8gSW5zcGlyZWQg
YnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcAotIyAgaWYgZGVmaW5lZChfQ1BQ
TElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPCA1MjAKLSMgICB1bmRlZiBHVEVTVF9IQVNfU1REX1RV
UExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9fR0xJQkNYWF9fKQotLy8gSW5zcGlyZWQg
YnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcCwKLS8vIGh0dHA6Ly9nY2MuZ251
Lm9yZy9nY2MtNC4yL2NoYW5nZXMuaHRtbCBhbmQKLS8vIGh0dHBzOi8vd2ViLmFyY2hpdmUub3Jn
L3dlYi8yMDE0MDIyNzA0NDQyOS9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9tYW51
YWwvYmswMXB0MDFjaDAxLmh0bWwjbWFudWFsLmludHJvLnN0YXR1cy5zdGFuZGFyZC4yMDB4Ci0j
ICBpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCAy
KQotIyAgIHVuZGVmIEdURVNUX0hBU19TVERfVFVQTEVfCi0jICBlbmRpZgotIyBlbmRpZgotI2Vu
ZGlmCi0KIC8vIEJyaW5ncyBpbiBkZWZpbml0aW9ucyBmb3IgZnVuY3Rpb25zIHVzZWQgaW4gdGhl
IHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeAogLy8gbmFtZXNwYWNlIChyZWFkLCB3cml0ZSwgY2xv
c2UsIGNoZGlyLCBpc2F0dHksIHN0YXQpLiBXZSBkbyBub3QgY3VycmVudGx5CiAvLyB1c2UgdGhl
bSBvbiBXaW5kb3dzIE1vYmlsZS4KQEAgLTQ0OSw3ICszNzIsOCBAQCB0eXBlZGVmIHN0cnVjdCBf
UlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgIGluY2x1ZGUg
PGFuZHJvaWQvYXBpLWxldmVsLmg+ICAvLyBOT0xJTlQKICNlbmRpZgogCi0vLyBEZWZpbmVzIHRo
aXMgdG8gdHJ1ZSBpZmYgR29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCByZWd1bGFyIGV4cHJlc3Np
b25zLgorLy8gRGVmaW5lcyB0aGlzIHRvIHRydWUgaWYgYW5kIG9ubHkgaWYgR29vZ2xlIFRlc3Qg
Y2FuIHVzZSBQT1NJWCByZWd1bGFyCisvLyBleHByZXNzaW9ucy4KICNpZm5kZWYgR1RFU1RfSEFT
X1BPU0lYX1JFCiAjIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQKIC8vIE9uIEFuZHJvaWQsIDxy
ZWdleC5oPiBpcyBvbmx5IGF2YWlsYWJsZSBzdGFydGluZyB3aXRoIEdpbmdlcmJyZWFkLgpAQCAt
NDkwLDcgKzQxNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVT
VF9DUklUSUNBTF9TRUNUSU9OOwogLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMgd2hldGhlciBl
eGNlcHRpb25zIGFyZSBlbmFibGVkLCBzbyB3ZSBuZWVkCiAvLyB0byBmaWd1cmUgaXQgb3V0Lgog
IyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKF9DUFBVTldJTkQpCi0vLyBNU1ZDIGRl
ZmluZXMgX0NQUFVOV0lORCB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgorLy8gTVNW
QyBkZWZpbmVzIF9DUFBVTldJTkQgdG8gMSBpZiBhbmQgb25seSBpZiBleGNlcHRpb25zIGFyZSBl
bmFibGVkLgogIyAgZGVmaW5lIEdURVNUX0hBU19FWENFUFRJT05TIDEKICMgZWxpZiBkZWZpbmVk
KF9fQk9STEFORENfXykKIC8vIEMrK0J1aWxkZXIncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU1RM
IHVzZXMgdGhlIF9IQVNfRVhDRVBUSU9OUwpAQCAtNTAxLDE2ICs0MjUsMTcgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjICBl
bmRpZiAgLy8gX0hBU19FWENFUFRJT05TCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMg
X0hBU19FWENFUFRJT05TCiAjIGVsaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBjbGFuZyBkZWZp
bmVzIF9fRVhDRVBUSU9OUyBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCBiZWZvcmUgY2xhbmcg
MjIwNzE0LAotLy8gYnV0IGlmZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBP
YmotQysrIGZpbGVzLCB0aGVyZSBjYW4gYmUKLS8vIGNsZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlv
bnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmIEMrKyBleGNlcHRpb25zCi0vLyBh
cmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSB3aGlj
aCBjaGVja3MgZm9yIEMrKwotLy8gZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFuZyByMjA2MzUy
LCBidXQgd2hpY2ggY2hlY2tlZCBmb3IgY2xlYW51cHMgcHJpb3IgdG8KLS8vIHRoYXQuIFRvIHJl
bGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRoIGNsYW5nLCBj
aGVjayBmb3IKKy8vIGNsYW5nIGRlZmluZXMgX19FWENFUFRJT05TIGlmIGFuZCBvbmx5IGlmIGV4
Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYmVmb3JlIGNsYW5nCisvLyAyMjA3MTQsIGJ1dCBpZiBhbmQg
b25seSBpZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBPYmotQysrIGZpbGVz
LAorLy8gdGhlcmUgY2FuIGJlIGNsZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlvbnMgd2hpY2ggYWxz
byBuZWVkIGNsZWFudXBzLCBldmVuIGlmCisvLyBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQu
IGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSB3aGljaAorLy8gY2hlY2tz
IGZvciBDKysgZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFuZyByMjA2MzUyLCBidXQgd2hpY2gg
Y2hlY2tlZCBmb3IKKy8vIGNsZWFudXBzIHByaW9yIHRvIHRoYXQuIFRvIHJlbGlhYmx5IGNoZWNr
IGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRoCisvLyBjbGFuZywgY2hlY2sgZm9y
CiAvLyBfX0VYQ0VQVElPTlMgJiYgX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0aW9ucykuCiAjICBk
ZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgKF9fRVhDRVBUSU9OUyAmJiBfX2hhc19mZWF0dXJl
KGN4eF9leGNlcHRpb25zKSkKICMgZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0VYQ0VQVElP
TlMKLS8vIGdjYyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBl
bmFibGVkLgorLy8gZ2NjIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkgaWYg
ZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAx
CiAjIGVsaWYgZGVmaW5lZChfX1NVTlBST19DQykKIC8vIFN1biBQcm8gQ0Mgc3VwcG9ydHMgZXhj
ZXB0aW9ucy4gIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNvbXBpbGUtdGltZSB3YXkgb2YKQEAgLTUx
OCw3ICs0NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1Rf
Q1JJVElDQUxfU0VDVElPTjsKIC8vIHRoZXkgYXJlIGVuYWJsZWQgdW5sZXNzIHRoZSB1c2VyIHRl
bGxzIHVzIG90aGVyd2lzZS4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVs
aWYgZGVmaW5lZChfX0lCTUNQUF9fKSAmJiBfX0VYQ0VQVElPTlMKLS8vIHhsQyBkZWZpbmVzIF9f
RVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgorLy8geGxDIGRlZmlu
ZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkgaWYgZXhjZXB0aW9ucyBhcmUgZW5hYmxl
ZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX0hQ
X2FDQykKIC8vIEV4Y2VwdGlvbiBoYW5kbGluZyBpcyBpbiBlZmZlY3QgYnkgZGVmYXVsdCBpbiBI
UCBhQ0MgY29tcGlsZXIuIEl0IGhhcyB0bwpAQCAtNTMxLDQwICs0NTYsMTggQEAgdHlwZWRlZiBz
dHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjIGVu
ZGlmICAvLyBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKICNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAotI2lmICFkZWZpbmVkKEdURVNUX0hBU19TVERf
U1RSSU5HKQotLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIHRoaXMgbWFjcm8gYW55IGxvbmdl
ciwgd2Uga2VlcCBpdCBpbiBjYXNlCi0vLyBzb21lIGNsaWVudHMgc3RpbGwgZGVwZW5kIG9uIGl0
LgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9TVFJJTkcgMQotI2VsaWYgIUdURVNUX0hBU19TVERf
U1RSSU5HCi0vLyBUaGUgdXNlciB0b2xkIHVzIHRoYXQgOjpzdGQ6OnN0cmluZyBpc24ndCBhdmFp
bGFibGUuCi0jIGVycm9yICI6OnN0ZDo6c3RyaW5nIGlzbid0IGF2YWlsYWJsZS4iCi0jZW5kaWYg
IC8vICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5HKQotCi0jaWZuZGVmIEdURVNUX0hBU19H
TE9CQUxfU1RSSU5HCi0jIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyAwCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KICNpZm5kZWYgR1RFU1RfSEFTX1NURF9XU1RS
SU5HCiAvLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIDo6c3RkOjp3c3RyaW5nIGlz
IGF2YWlsYWJsZSwgc28gd2UgbmVlZAogLy8gdG8gZmlndXJlIGl0IG91dC4KLS8vIEZJWE1FOiB1
c2VzIGF1dG9jb25mIHRvIGRldGVjdCB3aGV0aGVyIDo6c3RkOjp3c3RyaW5nCi0vLyAgIGlzIGF2
YWlsYWJsZS4KLQogLy8gQ3lnd2luIDEuNyBhbmQgYmVsb3cgZG9lc24ndCBzdXBwb3J0IDo6c3Rk
Ojp3c3RyaW5nLgogLy8gU29sYXJpcycgbGliYysrIGRvZXNuJ3Qgc3VwcG9ydCBpdCBlaXRoZXIu
ICBBbmRyb2lkIGhhcwogLy8gbm8gc3VwcG9ydCBmb3IgaXQgYXQgbGVhc3QgYXMgcmVjZW50IGFz
IEZyb3lvICgyLjIpLgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5HIFwKLSAgICAoIShH
VEVTVF9PU19MSU5VWF9BTkRST0lEIHx8IEdURVNUX09TX0NZR1dJTiB8fCBHVEVTVF9PU19TT0xB
UklTKSkKKyNkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICghKEdURVNUX09TX0xJTlVYX0FORFJPSUQgfHwgR1RF
U1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMgfHwgXAorICAgICBHVEVTVF9PU19IQUlL
VSB8fCBHVEVTVF9PU19FU1AzMiB8fCBHVEVTVF9PU19FU1A4MjY2KSkKIAogI2VuZGlmICAvLyBH
VEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmbmRlZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcK
LS8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgOjp3c3RyaW5nIGlzIGF2YWlsYWJs
ZSwgc28gd2UgbmVlZAotLy8gdG8gZmlndXJlIGl0IG91dC4KLSMgZGVmaW5lIEdURVNUX0hBU19H
TE9CQUxfV1NUUklORyBcCi0gICAgKEdURVNUX0hBU19TVERfV1NUUklORyAmJiBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORykKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0KIC8v
IERldGVybWluZXMgd2hldGhlciBSVFRJIGlzIGF2YWlsYWJsZS4KICNpZm5kZWYgR1RFU1RfSEFT
X1JUVEkKIC8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgUlRUSSBpcyBlbmFibGVk
LCBzbyB3ZSBuZWVkIHRvCkBAIC01NzIsMTQgKzQ3NSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIAogIyBpZmRlZiBfTVND
X1ZFUgogCi0jICBpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBkZWZpbmVzIHRoaXMgbWFjcm8gaWZm
IFJUVEkgaXMgZW5hYmxlZC4KKyNpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBkZWZpbmVzIHRoaXMg
bWFjcm8gaWYgYW5kIG9ubHkgaWYgUlRUSSBpcyBlbmFibGVkLgogIyAgIGRlZmluZSBHVEVTVF9I
QVNfUlRUSSAxCiAjICBlbHNlCiAjICAgZGVmaW5lIEdURVNUX0hBU19SVFRJIDAKICMgIGVuZGlm
CiAKLS8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2NjIGRlZmluZXMgX19HWFhfUlRU
SSBpZmYgUlRUSSBpcyBlbmFibGVkLgotIyBlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIChHVEVT
VF9HQ0NfVkVSXyA+PSA0MDMwMikKKy8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2Nj
IGRlZmluZXMgX19HWFhfUlRUSSBpZiBhbmQgb25seSBpZiBSVFRJIGlzCisvLyBlbmFibGVkLgor
IyBlbGlmIGRlZmluZWQoX19HTlVDX18pCiAKICMgIGlmZGVmIF9fR1hYX1JUVEkKIC8vIFdoZW4g
YnVpbGRpbmcgYWdhaW5zdCBTVExwb3J0IHdpdGggdGhlIEFuZHJvaWQgTkRLIGFuZCB3aXRoCkBA
IC02MzUsOSArNTM5LDExIEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBH
VEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8KIC8vIFRvIGRpc2FibGUgdGhyZWFkaW5nIHN1cHBv
cnQgaW4gR29vZ2xlIFRlc3QsIGFkZCAtREdURVNUX0hBU19QVEhSRUFEPTAKIC8vIHRvIHlvdXIg
Y29tcGlsZXIgZmxhZ3MuCi0jZGVmaW5lIEdURVNUX0hBU19QVEhSRUFEICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoR1RFU1RfT1NfTElOVVggfHwgR1RF
U1RfT1NfTUFDIHx8IEdURVNUX09TX0hQVVggfHwgR1RFU1RfT1NfUU5YIHx8IFwKLSAgIEdURVNU
X09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkFDTCB8fCBHVEVTVF9PU19ORVRCU0QgfHwgR1RFU1Rf
T1NfRlVDSFNJQSkKKyNkZWZpbmUgR1RFU1RfSEFTX1BUSFJFQUQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIChHVEVTVF9PU19MSU5VWCB8
fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19RTlggfHwgICAgICAg
ICAgXAorICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19OQUNMIHx8IEdURVNUX09TX05F
VEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAgIEdURVNUX09TX0RSQUdPTkZMWSB8fCBH
VEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfT1BFTkJTRCB8fCAgICAgICAgICBcCisg
ICBHVEVTVF9PU19IQUlLVSkKICNlbmRpZiAgLy8gR1RFU1RfSEFTX1BUSFJFQUQKIAogI2lmIEdU
RVNUX0hBU19QVEhSRUFECkBAIC02NDksMTM2ICs1NTUsNiBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgaW5jbHVkZSA8dGlt
ZS5oPiAgLy8gTk9MSU5UCiAjZW5kaWYKIAotLy8gRGV0ZXJtaW5lcyBpZiBoYXNoX21hcC9oYXNo
X3NldCBhcmUgYXZhaWxhYmxlLgotLy8gT25seSB1c2VkIGZvciB0ZXN0aW5nIGFnYWluc3QgdGhv
c2UgY29udGFpbmVycy4KLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfSEFTSF9NQVBfKQotIyBpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTAwKQotIyAgZGVmaW5lIEdURVNUX0hB
U19IQVNIX01BUF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9tYXAgaXMgYXZhaWxhYmxlLgot
IyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX1NFVF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9z
ZXQgaXMgYXZhaWxhYmxlLgotIyBlbmRpZiAgLy8gX01TQ19WRVIKLSNlbmRpZiAgLy8gIWRlZmlu
ZWQoR1RFU1RfSEFTX0hBU0hfTUFQXykKLQotLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIEdvb2dsZSBU
ZXN0IGNhbiB1c2UgdHIxL3R1cGxlLiAgWW91IGNhbiBkZWZpbmUKLS8vIHRoaXMgbWFjcm8gdG8g
MCB0byBwcmV2ZW50IEdvb2dsZSBUZXN0IGZyb20gdXNpbmcgdHVwbGUgKGFueQotLy8gZmVhdHVy
ZSBkZXBlbmRpbmcgb24gdHVwbGUgd2l0aCBiZSBkaXNhYmxlZCBpbiB0aGlzIG1vZGUpLgotI2lm
bmRlZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQgJiYg
ZGVmaW5lZChfU1RMUE9SVF9NQUpPUikKLS8vIFNUTHBvcnQsIHByb3ZpZGVkIHdpdGggdGhlIEFu
ZHJvaWQgTkRLLCBoYXMgbmVpdGhlciA8dHIxL3R1cGxlPiBvciA8dHVwbGU+LgotIyAgZGVmaW5l
IEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVND
X1ZFUiA+PSAxOTEwKQotLy8gUHJldmVudCBgd2FybmluZyBDNDk5NjogJ3N0ZDo6dHIxJzogd2Fy
bmluZyBTVEw0MDAyOgotLy8gVGhlIG5vbi1TdGFuZGFyZCBzdGQ6OnRyMSBuYW1lc3BhY2UgYW5k
IFRSMS1vbmx5IG1hY2hpbmVyeQotLy8gYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgUkVNT1ZF
RC5gCi0jICBkZWZpbmUgR1RFU1RfSEFTX1RSMV9UVVBMRSAwCi0jIGVsaWYgR1RFU1RfTEFOR19D
WFgxMSAmJiBkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikKLS8vIGxpYmMrKyBkb2Vzbid0IHN1cHBv
cnQgVFIxLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbHNlCi0vLyBUaGUg
dXNlciBkaWRuJ3QgdGVsbCB1cyBub3QgdG8gZG8gaXQsIHNvIHdlIGFzc3VtZSBpdCdzIE9LLgot
IyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMQotIyBlbmRpZgotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFIxX1RVUExFCi0KLS8vIERldGVybWluZXMgd2hldGhlciBHb29nbGUgVGVzdCdzIG93
biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24KLS8vIHNob3VsZCBiZSB1c2VkLgotI2lmbmRlZiBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotLy8gV2UgdXNlIG91ciBvd24gdHVwbGUgaW1wbGVtZW50
YXRpb24gb24gU3ltYmlhbi4KLSMgaWYgR1RFU1RfT1NfU1lNQklBTgotIyAgZGVmaW5lIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFIDEKLSMgZWxzZQotLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMs
IHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0IG91dC4KLQotLy8gV2UgdXNlIG91ciBvd24gVFIxIHR1
cGxlIGlmIHdlIGFyZW4ndCBzdXJlIHRoZSB1c2VyIGhhcyBhbgotLy8gaW1wbGVtZW50YXRpb24g
b2YgaXQgYWxyZWFkeS4gIEF0IHRoaXMgdGltZSwgbGlic3RkYysrIDQuMC4wKyBhbmQKLS8vIE1T
VkMgMjAxMCBhcmUgdGhlIG9ubHkgbWFpbnN0cmVhbSBzdGFuZGFyZCBsaWJyYXJpZXMgdGhhdCBj
b21lCi0vLyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uLiAgTlZJRElBJ3MgQ1VEQSBO
VkNDIGNvbXBpbGVyCi0vLyBwcmV0ZW5kcyB0byBiZSBHQ0MgYnkgZGVmaW5pbmcgX19HTlVDX18g
YW5kIGZyaWVuZHMsIGJ1dCBjYW5ub3QKLS8vIGNvbXBpbGUgR0NDJ3MgdHVwbGUgaW1wbGVtZW50
YXRpb24uICBNU1ZDIDIwMDggKDkuMCkgcHJvdmlkZXMgVFIxCi0vLyB0dXBsZSBpbiBhIDMyMyBN
QiBGZWF0dXJlIFBhY2sgZG93bmxvYWQsIHdoaWNoIHdlIGNhbm5vdCBhc3N1bWUgdGhlCi0vLyB1
c2VyIGhhcy4gIFFOWCdzIFFDQyBjb21waWxlciBpcyBhIG1vZGlmaWVkIEdDQyBidXQgaXQgZG9l
c24ndAotLy8gc3VwcG9ydCBUUjEgdHVwbGUuICBsaWJjKysgb25seSBwcm92aWRlcyBzdGQ6OnR1
cGxlLCBpbiBDKysxMSBtb2RlLAotLy8gYW5kIGl0IGNhbiBiZSB1c2VkIHdpdGggc29tZSBjb21w
aWxlcnMgdGhhdCBkZWZpbmUgX19HTlVDX18uCi0jIGlmIChkZWZpbmVkKF9fR05VQ19fKSAmJiAh
ZGVmaW5lZChfX0NVREFDQ19fKSAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gNDAwMDApIFwKLSAgICAg
ICYmICFHVEVTVF9PU19RTlggJiYgIWRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKSkgXAotICAgICAg
fHwgKF9NU0NfVkVSID49IDE2MDAgJiYgX01TQ19WRVIgPCAxOTAwKQotIyAgZGVmaW5lIEdURVNU
X0VOVl9IQVNfVFIxX1RVUExFXyAxCi0jIGVuZGlmCi0KLS8vIEMrKzExIHNwZWNpZmllcyB0aGF0
IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4gVXNlIHRoYXQgaWYgZ3Rlc3QgaXMgdXNlZAot
Ly8gaW4gQysrMTEgbW9kZSBhbmQgbGlic3RkYysrIGlzbid0IHZlcnkgb2xkIChiaW5hcmllcyB0
YXJnZXRpbmcgT1MgWCAxMC42Ci0vLyBjYW4gYnVpbGQgd2l0aCBjbGFuZyBidXQgbmVlZCB0byB1
c2UgZ2NjNC4yJ3MgbGlic3RkYysrKS4KLSMgaWYgR1RFU1RfTEFOR19DWFgxMSAmJiAoIWRlZmlu
ZWQoX19HTElCQ1hYX18pIHx8IF9fR0xJQkNYWF9fID4gMjAxMTAzMjUpCi0jICBkZWZpbmUgR1RF
U1RfRU5WX0hBU19TVERfVFVQTEVfIDEKLSMgZW5kaWYKLQotIyBpZiBHVEVTVF9FTlZfSEFTX1RS
MV9UVVBMRV8gfHwgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfCi0jICBkZWZpbmUgR1RFU1RfVVNF
X09XTl9UUjFfVFVQTEUgMAotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQ
TEUgMQotIyBlbmRpZgotIyBlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgotI2VuZGlmICAvLyBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotCi0vLyBUbyBhdm9pZCBjb25kaXRpb25hbCBjb21waWxh
dGlvbiB3ZSBtYWtlIGl0IGd0ZXN0LXBvcnQuaCdzIHJlc3BvbnNpYmlsaXR5Ci0vLyB0byAjaW5j
bHVkZSB0aGUgaGVhZGVyIGltcGxlbWVudGluZyB0dXBsZS4KLSNpZiBHVEVTVF9IQVNfU1REX1RV
UExFXwotIyBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQKLSMgZGVmaW5l
IEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9U
VVBMRV8KLQotLy8gV2UgaW5jbHVkZSB0cjE6OnR1cGxlIGV2ZW4gaWYgc3RkOjp0dXBsZSBpcyBh
dmFpbGFibGUgdG8gZGVmaW5lIHByaW50ZXJzIGZvcgotLy8gdGhlbS4KLSNpZiBHVEVTVF9IQVNf
VFIxX1RVUExFCi0jIGlmbmRlZiBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0jICBkZWZpbmUgR1RF
U1RfVFVQTEVfTkFNRVNQQUNFXyA6OnN0ZDo6dHIxCi0jIGVuZGlmICAvLyBHVEVTVF9UVVBMRV9O
QU1FU1BBQ0VfCi0KLSMgaWYgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLSMgIGluY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiICAvLyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBO
T0xJTlQKLSMgZWxpZiBHVEVTVF9PU19TWU1CSUFOCi0KLS8vIE9uIFN5bWJpYW4sIEJPT1NUX0hB
U19UUjFfVFVQTEUgY2F1c2VzIEJvb3N0J3MgVFIxIHR1cGxlIGxpYnJhcnkgdG8KLS8vIHVzZSBT
VExwb3J0J3MgdHVwbGUgaW1wbGVtZW50YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgZG9lc24n
dAotLy8gd29yayBhcyB0aGUgY29weSBvZiBTVExwb3J0IGRpc3RyaWJ1dGVkIHdpdGggU3ltYmlh
biBpcyBpbmNvbXBsZXRlLgotLy8gQnkgbWFraW5nIHN1cmUgQk9PU1RfSEFTX1RSMV9UVVBMRSBp
cyB1bmRlZmluZWQsIHdlIGZvcmNlIEJvb3N0IHRvCi0vLyB1c2UgaXRzIG93biB0dXBsZSBpbXBs
ZW1lbnRhdGlvbi4KLSMgIGlmZGVmIEJPT1NUX0hBU19UUjFfVFVQTEUKLSMgICB1bmRlZiBCT09T
VF9IQVNfVFIxX1RVUExFCi0jICBlbmRpZiAgLy8gQk9PU1RfSEFTX1RSMV9UVVBMRQotCi0vLyBU
aGlzIHByZXZlbnRzIDxib29zdC90cjEvZGV0YWlsL2NvbmZpZy5ocHA+LCB3aGljaCBkZWZpbmVz
Ci0vLyBCT09TVF9IQVNfVFIxX1RVUExFLCBmcm9tIGJlaW5nICNpbmNsdWRlZCBieSBCb29zdCdz
IDx0dXBsZT4uCi0jICBkZWZpbmUgQk9PU1RfVFIxX0RFVEFJTF9DT05GSUdfSFBQX0lOQ0xVREVE
Ci0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElOVAot
Ci0jIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKEdURVNUX0dDQ19WRVJfID49IDQwMDAwKQot
Ly8gR0NDIDQuMCsgaW1wbGVtZW50cyB0cjEvdHVwbGUgaW4gdGhlIDx0cjEvdHVwbGU+IGhlYWRl
ci4gIFRoaXMgZG9lcwotLy8gbm90IGNvbmZvcm0gdG8gdGhlIFRSMSBzcGVjLCB3aGljaCByZXF1
aXJlcyB0aGUgaGVhZGVyIHRvIGJlIDx0dXBsZT4uCi0KLSMgIGlmICFHVEVTVF9IQVNfUlRUSSAm
JiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0vLyBVbnRpbCB2ZXJzaW9uIDQuMy4yLCBnY2MgaGFz
IGEgYnVnIHRoYXQgY2F1c2VzIDx0cjEvZnVuY3Rpb25hbD4sCi0vLyB3aGljaCBpcyAjaW5jbHVk
ZWQgYnkgPHRyMS90dXBsZT4sIHRvIG5vdCBjb21waWxlIHdoZW4gUlRUSSBpcwotLy8gZGlzYWJs
ZWQuICBfVFIxX0ZVTkNUSU9OQUwgaXMgdGhlIGhlYWRlciBndWFyZCBmb3IKLS8vIDx0cjEvZnVu
Y3Rpb25hbD4uICBIZW5jZSB0aGUgZm9sbG93aW5nICNkZWZpbmUgaXMgdXNlZCB0byBwcmV2ZW50
Ci0vLyA8dHIxL2Z1bmN0aW9uYWw+IGZyb20gYmVpbmcgaW5jbHVkZWQuCi0jICAgZGVmaW5lIF9U
UjFfRlVOQ1RJT05BTCAxCi0jICAgaW5jbHVkZSA8dHIxL3R1cGxlPgotIyAgIHVuZGVmIF9UUjFf
RlVOQ1RJT05BTCAgLy8gQWxsb3dzIHRoZSB1c2VyIHRvICNpbmNsdWRlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAvLyA8dHIxL2Z1bmN0aW9uYWw+IGlmIHRoZXkgY2hvb3NlIHRvLgotIyAgZWxz
ZQotIyAgIGluY2x1ZGUgPHRyMS90dXBsZT4gIC8vIE5PTElOVAotIyAgZW5kaWYgIC8vICFHVEVT
VF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0KLS8vIFZTIDIwMTAgbm93IGhh
cyB0cjEgc3VwcG9ydC4KLSMgZWxpZiBfTVNDX1ZFUiA+PSAxNjAwCi0jICBpbmNsdWRlIDx0dXBs
ZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElOVAotCi0jIGVsc2UgIC8vIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFCi0jICBpbmNsdWRlIDx0cjEvdHVwbGU+ICAvLyBJV1lVIHByYWdt
YTogZXhwb3J0ICAvLyBOT0xJTlQKLSMgZW5kaWYgIC8vIEdURVNUX1VTRV9PV05fVFIxX1RVUExF
Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRQotCiAvLyBEZXRlcm1pbmVzIHdoZXRo
ZXIgY2xvbmUoMikgaXMgc3VwcG9ydGVkLgogLy8gVXN1YWxseSBpdCB3aWxsIG9ubHkgYmUgYXZh
aWxhYmxlIG9uIExpbnV4LCBleGNsdWRpbmcKIC8vIExpbnV4IG9uIHRoZSBJdGFuaXVtIGFyY2hp
dGVjdHVyZS4KQEAgLTgxMiwyNCArNTg4LDIyIEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElD
QUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogI2lmbmRlZiBHVEVTVF9IQVNfU1RS
RUFNX1JFRElSRUNUSU9OCiAvLyBCeSBkZWZhdWx0LCB3ZSBhc3N1bWUgdGhhdCBzdHJlYW0gcmVk
aXJlY3Rpb24gaXMgc3VwcG9ydGVkIG9uIGFsbAogLy8gcGxhdGZvcm1zIGV4Y2VwdCBrbm93biBt
b2JpbGUgb25lcy4KLSMgaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfU1lN
QklBTiB8fCBcCi0gICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dT
X1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19SVCB8fCBHVEVTVF9PU19FU1A4MjY2CiAjICBk
ZWZpbmUgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTiAwCiAjIGVsc2UKICMgIGRlZmluZSBH
VEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OIDEKLSMgZW5kaWYgIC8vICFHVEVTVF9PU19XSU5E
T1dTX01PQklMRSAmJiAhR1RFU1RfT1NfU1lNQklBTgorIyBlbmRpZiAgLy8gIUdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFCiAjZW5kaWYgIC8vIEdURVNUX0hBU19TVFJFQU1fUkVESVJFQ1RJT04KIAog
Ly8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN1cHBvcnQgZGVhdGggdGVzdHMuCi0vLyBHb29nbGUg
VGVzdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3RzIGZvciBWQyA3LjEgYW5kIGVhcmxpZXIg
YXMKLS8vIGFib3J0KCkgaW4gYSBWQyA3LjEgYXBwbGljYXRpb24gY29tcGlsZWQgYXMgR1VJIGlu
IGRlYnVnIGNvbmZpZwogLy8gcG9wcyB1cCBhIGRpYWxvZyB3aW5kb3cgdGhhdCBjYW5ub3QgYmUg
c3VwcHJlc3NlZCBwcm9ncmFtbWF0aWNhbGx5LgotI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVT
VF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfU09MQVJJUyB8fCAgIFwKLSAgICAgKEdURVNUX09TX01B
QyAmJiAhR1RFU1RfT1NfSU9TKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIChH
VEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgJiYgX01TQ19WRVIgPj0gMTQwMCkgfHwgICAgICAgICAg
XAotICAgICBHVEVTVF9PU19XSU5ET1dTX01JTkdXIHx8IEdURVNUX09TX0FJWCB8fCBHVEVTVF9P
U19IUFVYIHx8IFwKLSAgICAgR1RFU1RfT1NfT1BFTkJTRCB8fCBHVEVTVF9PU19RTlggfHwgR1RF
U1RfT1NfRlJFRUJTRCB8fCBcCi0gICAgIEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNI
U0lBKQorI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1Nf
U09MQVJJUyB8fCAgICAgICAgICAgICBcCisgICAgIChHVEVTVF9PU19NQUMgJiYgIUdURVNUX09T
X0lPUykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKEdURVNU
X09TX1dJTkRPV1NfREVTS1RPUCAmJiBfTVNDX1ZFUikgfHwgR1RFU1RfT1NfV0lORE9XU19NSU5H
VyB8fCAgXAorICAgICBHVEVTVF9PU19BSVggfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19P
UEVOQlNEIHx8IEdURVNUX09TX1FOWCB8fCBcCisgICAgIEdURVNUX09TX0ZSRUVCU0QgfHwgR1RF
U1RfT1NfTkVUQlNEIHx8IEdURVNUX09TX0ZVQ0hTSUEgfHwgICAgICAgICAgIFwKKyAgICAgR1RF
U1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBHVEVTVF9PU19IQUlL
VSkKICMgZGVmaW5lIEdURVNUX0hBU19ERUFUSF9URVNUIDEKICNlbmRpZgogCkBAIC04MzcsMjYg
KzYxMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJ
VElDQUxfU0VDVElPTjsKIAogLy8gVHlwZWQgdGVzdHMgbmVlZCA8dHlwZWluZm8+IGFuZCB2YXJp
YWRpYyBtYWNyb3MsIHdoaWNoIEdDQywgVkMrKyA4LjAsCiAvLyBTdW4gUHJvIENDLCBJQk0gVmlz
dWFsIEFnZSwgYW5kIEhQIGFDQyBzdXBwb3J0LgotI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IChf
TVNDX1ZFUiA+PSAxNDAwKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKSB8fCBcCisjaWYgZGVmaW5l
ZChfX0dOVUNfXykgfHwgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NVTlBST19DQykg
fHwgXAogICAgIGRlZmluZWQoX19JQk1DUFBfXykgfHwgZGVmaW5lZChfX0hQX2FDQykKICMgZGVm
aW5lIEdURVNUX0hBU19UWVBFRF9URVNUIDEKICMgZGVmaW5lIEdURVNUX0hBU19UWVBFRF9URVNU
X1AgMQogI2VuZGlmCiAKLS8vIERldGVybWluZXMgd2hldGhlciB0byBzdXBwb3J0IENvbWJpbmUo
KS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4KLS8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dHMgYXJlIGVuYWJsZWQuICBUaGUgaW1wbGVtZW50YXRpb24gZG9lc24ndAotLy8gd29yayBvbiBT
dW4gU3R1ZGlvIHNpbmNlIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0ZW1wbGF0ZWQgY29udmVyc2lv
bgotLy8gb3BlcmF0b3JzLgotI2lmIChHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19T
VERfVFVQTEVfKSAmJiAhZGVmaW5lZChfX1NVTlBST19DQykKLSMgZGVmaW5lIEdURVNUX0hBU19D
T01CSU5FIDEKLSNlbmRpZgotCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHN5c3RlbSBjb21w
aWxlciB1c2VzIFVURi0xNiBmb3IgZW5jb2Rpbmcgd2lkZSBzdHJpbmdzLgogI2RlZmluZSBHVEVT
VF9XSURFX1NUUklOR19VU0VTX1VURjE2XyBcCi0gICAgKEdURVNUX09TX1dJTkRPV1MgfHwgR1RF
U1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfQUlYKQorICAoR1RF
U1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfQUlYIHx8IEdURVNU
X09TX09TMikKIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRlc3QgcmVzdWx0cyBjYW4gYmUgc3Ry
ZWFtZWQgdG8gYSBzb2NrZXQuCi0jaWYgR1RFU1RfT1NfTElOVVgKKyNpZiBHVEVTVF9PU19MSU5V
WCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfRFJBR09ORkxZIHx8IFwKKyAg
ICBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNE
CiAjIGRlZmluZSBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfIDEKICNlbmRpZgogCkBAIC04OTgs
MTIgKzY2NSw2IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9D
UklUSUNBTF9TRUNUSU9OOwogIyBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8KICNlbmRp
ZgogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUgR1RFU1RfQ1hYMTFfRVFVQUxTX0RF
TEVURV8gPSBkZWxldGUKLSNlbHNlICAvLyBHVEVTVF9MQU5HX0NYWDExCi0jIGRlZmluZSBHVEVT
VF9DWFgxMV9FUVVBTFNfREVMRVRFXwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KIC8v
IFVzZSB0aGlzIGFubm90YXRpb24gYmVmb3JlIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHByaW50
ZiBmb3JtYXQgc3RyaW5nLgogI2lmIChkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fY2xh
bmdfXykpICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgaWYgZGVmaW5lZChfX01JTkdXX1BS
SU5URl9GT1JNQVQpCkBAIC05MjIsMjcgKzY4MywzOCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NS
SVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICNlbmRpZgogCiAKLS8vIEEg
bWFjcm8gdG8gZGlzYWxsb3cgb3BlcmF0b3I9CisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IGNvcHkg
b3BlcmF0b3I9CiAvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJh
dGlvbnMgZm9yIGEgY2xhc3MuCiAjZGVmaW5lIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8odHlwZSkg
XAotICB2b2lkIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpIEdURVNUX0NYWDExX0VRVUFMU19ERUxF
VEVfCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpID0gZGVsZXRlCiAKIC8vIEEgbWFj
cm8gdG8gZGlzYWxsb3cgY29weSBjb25zdHJ1Y3RvciBhbmQgb3BlcmF0b3I9CiAvLyBUaGlzIHNo
b3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCiAj
ZGVmaW5lIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8odHlwZSkgXAotICB0eXBlKHR5
cGUgY29uc3QgJikgR1RFU1RfQ1hYMTFfRVFVQUxTX0RFTEVURV87IFwKLSAgR1RFU1RfRElTQUxM
T1dfQVNTSUdOXyh0eXBlKQorICB0eXBlKHR5cGUgY29uc3QmKSA9IGRlbGV0ZTsgICAgICAgICAg
ICAgICAgIFwKKyAgdHlwZSYgb3BlcmF0b3I9KHR5cGUgY29uc3QmKSA9IGRlbGV0ZQorCisvLyBB
IG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgb3BlcmF0b3I9CisvLyBUaGlzIHNob3VsZCBiZSB1c2Vk
IGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCisjZGVmaW5lIEdURVNU
X0RJU0FMTE9XX01PVkVfQVNTSUdOXyh0eXBlKSBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlICYm
KSBub2V4Y2VwdCA9IGRlbGV0ZQorCisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgY29uc3Ry
dWN0b3IgYW5kIG9wZXJhdG9yPQorLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBpbiB0aGUgcHJpdmF0
ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNzLgorI2RlZmluZSBHVEVTVF9ESVNBTExPV19NT1ZF
X0FORF9BU1NJR05fKHR5cGUpIFwKKyAgdHlwZSh0eXBlJiYpIG5vZXhjZXB0ID0gZGVsZXRlOyAg
ICAgICAgICAgICBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlJiYpIG5vZXhjZXB0ID0gZGVsZXRl
CiAKIC8vIFRlbGwgdGhlIGNvbXBpbGVyIHRvIHdhcm4gYWJvdXQgdW51c2VkIHJldHVybiB2YWx1
ZXMgZm9yIGZ1bmN0aW9ucyBkZWNsYXJlZAogLy8gd2l0aCB0aGlzIG1hY3JvLiAgVGhlIG1hY3Jv
IHNob3VsZCBiZSB1c2VkIG9uIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogLy8gZm9sbG93aW5nIHRo
ZSBhcmd1bWVudCBsaXN0OgogLy8KIC8vICAgU3Byb2NrZXQqIEFsbG9jYXRlU3Byb2NrZXQoKSBH
VEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChHVEVTVF9H
Q0NfVkVSXyA+PSAzMDQwMCkgJiYgIWRlZmluZWQoQ09NUElMRVJfSUNDKQorI2lmIGRlZmluZWQo
X19HTlVDX18pICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgZGVmaW5lIEdURVNUX01VU1Rf
VVNFX1JFU1VMVF8gX19hdHRyaWJ1dGVfXyAoKHdhcm5fdW51c2VkX3Jlc3VsdCkpCiAjZWxzZQog
IyBkZWZpbmUgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXwotI2VuZGlmICAvLyBfX0dOVUNfXyAmJiAo
R1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFDT01QSUxFUl9JQ0MKKyNlbmRpZiAgLy8gX19H
TlVDX18gJiYgIUNPTVBJTEVSX0lDQwogCiAvLyBNUyBDKysgY29tcGlsZXIgZW1pdHMgd2Fybmlu
ZyB3aGVuIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb21waWxlIHRpbWUKIC8vIGNvbnN0
YW50LiBJbiBzb21lIGNvbnRleHRzIHRoaXMgd2FybmluZyBpcyBmYWxzZSBwb3NpdGl2ZSBhbmQg
bmVlZHMgdG8gYmUKQEAgLTk3MSwxMyArNzQzLDE3IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJ
VElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogIyAgZGVmaW5lIEdURVNUX0hB
U19TRUggMAogIyBlbmRpZgogCi0jZGVmaW5lIEdURVNUX0lTX1RIUkVBRFNBRkUgXAotICAgIChH
VEVTVF9IQVNfTVVURVhfQU5EX1RIUkVBRF9MT0NBTF8gXAotICAgICB8fCAoR1RFU1RfT1NfV0lO
RE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lORE9XU19SVCkg
XAotICAgICB8fCBHVEVTVF9IQVNfUFRIUkVBRCkKLQogI2VuZGlmICAvLyBHVEVTVF9IQVNfU0VI
CiAKKyNpZm5kZWYgR1RFU1RfSVNfVEhSRUFEU0FGRQorCisjZGVmaW5lIEdURVNUX0lTX1RIUkVB
RFNBRkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAoR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9DQUxfIHx8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgIChHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19X
SU5ET1dTX1BIT05FICYmICFHVEVTVF9PU19XSU5ET1dTX1JUKSB8fCBcCisgICBHVEVTVF9IQVNf
UFRIUkVBRCkKKworI2VuZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCisKIC8vIEdURVNUX0FQ
SV8gcXVhbGlmaWVzIGFsbCBzeW1ib2xzIHRoYXQgbXVzdCBiZSBleHBvcnRlZC4gVGhlIGRlZmlu
aXRpb25zIGJlbG93CiAvLyBhcmUgZ3VhcmRlZCBieSAjaWZuZGVmIHRvIGdpdmUgZW1iZWRkZXJz
IGEgY2hhbmNlIHRvIGRlZmluZSBHVEVTVF9BUElfIGluCiAvLyBndGVzdC9pbnRlcm5hbC9jdXN0
b20vZ3Rlc3QtcG9ydC5oCkBAIC0xMDQ0LDYgKzgyMCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgZGVmaW5lIEdURVNU
X0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXwogI2VuZGlmICAvLyBfX2NsYW5nX18KIAor
Ly8gQSBmdW5jdGlvbiBsZXZlbCBhdHRyaWJ1dGUgdG8gZGlzYWJsZSBIV0FkZHJlc3NTYW5pdGl6
ZXIgaW5zdHJ1bWVudGF0aW9uLgorI2lmIGRlZmluZWQoX19jbGFuZ19fKQorIyBpZiBfX2hhc19m
ZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpCisjICBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX0hXQUREUkVTU18gXAorICAgICAgIF9fYXR0cmlidXRlX18oKG5vX3Nhbml0aXpl
KCJod2FkZHJlc3MiKSkpCisjIGVsc2UKKyMgIGRlZmluZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfSFdBRERSRVNTXworIyBlbmRpZiAgLy8gX19oYXNfZmVhdHVyZShod2FkZHJlc3Nfc2Fu
aXRpemVyKQorI2Vsc2UKKyMgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FE
RFJFU1NfCisjZW5kaWYgIC8vIF9fY2xhbmdfXworCiAvLyBBIGZ1bmN0aW9uIGxldmVsIGF0dHJp
YnV0ZSB0byBkaXNhYmxlIFRocmVhZFNhbml0aXplciBpbnN0cnVtZW50YXRpb24uCiAjaWYgZGVm
aW5lZChfX2NsYW5nX18pCiAjIGlmIF9faGFzX2ZlYXR1cmUodGhyZWFkX3Nhbml0aXplcikKQEAg
LTEwNjAsMTYgKzg0OCwxMyBAQCBuYW1lc3BhY2UgdGVzdGluZyB7CiAKIGNsYXNzIE1lc3NhZ2U7
CiAKLSNpZiBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVTUEFDRV8pCi0vLyBJbXBvcnQgdHVwbGUg
YW5kIGZyaWVuZHMgaW50byB0aGUgOjp0ZXN0aW5nIG5hbWVzcGFjZS4KLS8vIEl0IGlzIHBhcnQg
b2Ygb3VyIGludGVyZmFjZSwgaGF2aW5nIHRoZW0gaW4gOjp0ZXN0aW5nIGFsbG93cyB1cyB0byBj
aGFuZ2UKLS8vIHRoZWlyIHR5cGVzIGFzIG5lZWRlZC4KLXVzaW5nIEdURVNUX1RVUExFX05BTUVT
UEFDRV86OmdldDsKLXVzaW5nIEdURVNUX1RVUExFX05BTUVTUEFDRV86Om1ha2VfdHVwbGU7Ci11
c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBsZTsKLXVzaW5nIEdURVNUX1RVUExFX05B
TUVTUEFDRV86OnR1cGxlX3NpemU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBs
ZV9lbGVtZW50OwotI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVTUEFDRV8pCisv
LyBMZWdhY3kgaW1wb3J0cyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisvLyBOZXcgY29k
ZSBzaG91bGQgdXNlIHN0ZDo6IG5hbWVzIGRpcmVjdGx5LgordXNpbmcgc3RkOjpnZXQ7Cit1c2lu
ZyBzdGQ6Om1ha2VfdHVwbGU7Cit1c2luZyBzdGQ6OnR1cGxlOwordXNpbmcgc3RkOjp0dXBsZV9l
bGVtZW50OwordXNpbmcgc3RkOjp0dXBsZV9zaXplOwogCiBuYW1lc3BhY2UgaW50ZXJuYWwgewog
CkBAIC0xMDc4LDE1OCArODYzLDIxIEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLyBTZWNyZXQg
b2JqZWN0LCB3aGljaCBpcyB3aGF0IHdlIHdhbnQuCiBjbGFzcyBTZWNyZXQ7CiAKLS8vIFRoZSBH
VEVTVF9DT01QSUxFX0FTU0VSVF8gbWFjcm8gY2FuIGJlIHVzZWQgdG8gdmVyaWZ5IHRoYXQgYSBj
b21waWxlIHRpbWUKLS8vIGV4cHJlc3Npb24gaXMgdHJ1ZS4gRm9yIGV4YW1wbGUsIHlvdSBjb3Vs
ZCB1c2UgaXQgdG8gdmVyaWZ5IHRoZQotLy8gc2l6ZSBvZiBhIHN0YXRpYyBhcnJheToKKy8vIFRo
ZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gaXMgYSBsZWdhY3kgbWFjcm8gdXNlZCB0byB2ZXJpZnkg
dGhhdCBhIGNvbXBpbGUKKy8vIHRpbWUgZXhwcmVzc2lvbiBpcyB0cnVlIChpbiBuZXcgY29kZSwg
dXNlIHN0YXRpY19hc3NlcnQgaW5zdGVhZCkuIEZvcgorLy8gZXhhbXBsZSwgeW91IGNvdWxkIHVz
ZSBpdCB0byB2ZXJpZnkgdGhlIHNpemUgb2YgYSBzdGF0aWMgYXJyYXk6CiAvLwogLy8gICBHVEVT
VF9DT01QSUxFX0FTU0VSVF8oR1RFU1RfQVJSQVlfU0laRV8obmFtZXMpID09IE5VTV9OQU1FUywK
IC8vICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX2luY29ycmVjdF9zaXplKTsKIC8vCi0v
LyBvciB0byBtYWtlIHN1cmUgYSBzdHJ1Y3QgaXMgc21hbGxlciB0aGFuIGEgY2VydGFpbiBzaXpl
OgotLy8KLS8vICAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKHNpemVvZihmb28pIDwgMTI4LCBmb29f
dG9vX2xhcmdlKTsKLS8vCi0vLyBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBtYWNybyBpcyB0
aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUuIElmCi0vLyB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSwg
bW9zdCBjb21waWxlcnMgd2lsbCBpc3N1ZSBhIHdhcm5pbmcvZXJyb3IKLS8vIGNvbnRhaW5pbmcg
dGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLgotCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZp
bmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1zZykgc3RhdGljX2Fzc2VydChleHByLCAj
bXNnKQotI2Vsc2UgIC8vICFHVEVTVF9MQU5HX0NYWDExCi10ZW1wbGF0ZSA8Ym9vbD4KLSAgc3Ry
dWN0IENvbXBpbGVBc3NlcnQgewotfTsKLQotIyBkZWZpbmUgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KGV4cHIsIG1zZykgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbXBpbGVBc3Nl
cnQ8KHN0YXRpY19jYXN0PGJvb2w+KGV4cHIpKT4gXAotICAgICAgbXNnW3N0YXRpY19jYXN0PGJv
b2w+KGV4cHIpID8gMSA6IC0xXSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXwotI2VuZGlmICAvLyAh
R1RFU1RfTEFOR19DWFgxMQotCi0vLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIEdURVNUX0NP
TVBJTEVfQVNTRVJUXzoKLS8vCi0vLyAoSW4gQysrMTEsIHdlIHNpbXBseSB1c2Ugc3RhdGljX2Fz
c2VydCBpbnN0ZWFkIG9mIHRoZSBmb2xsb3dpbmcpCi0vLwotLy8gLSBHVEVTVF9DT01QSUxFX0FT
U0VSVF8gd29ya3MgYnkgZGVmaW5pbmcgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyAtMQotLy8gICBl
bGVtZW50cyAoYW5kIHRodXMgaXMgaW52YWxpZCkgd2hlbiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxz
ZS4KLS8vCi0vLyAtIFRoZSBzaW1wbGVyIGRlZmluaXRpb24KLS8vCi0vLyAgICAjZGVmaW5lIEdU
RVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHR5cGVkZWYgY2hhciBtc2dbKGV4cHIpID8g
MSA6IC0xXQotLy8KLS8vICAgZG9lcyBub3Qgd29yaywgYXMgZ2NjIHN1cHBvcnRzIHZhcmlhYmxl
LWxlbmd0aCBhcnJheXMgd2hvc2Ugc2l6ZXMKLS8vICAgYXJlIGRldGVybWluZWQgYXQgcnVuLXRp
bWUgKHRoaXMgaXMgZ2NjJ3MgZXh0ZW5zaW9uIGFuZCBub3QgcGFydAotLy8gICBvZiB0aGUgQysr
IHN0YW5kYXJkKS4gIEFzIGEgcmVzdWx0LCBnY2MgZmFpbHMgdG8gcmVqZWN0IHRoZQotLy8gICBm
b2xsb3dpbmcgY29kZSB3aXRoIHRoZSBzaW1wbGUgZGVmaW5pdGlvbjoKLS8vCi0vLyAgICAgaW50
IGZvbzsKLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oZm9vLCBtc2cpOyAvLyBub3Qgc3Vw
cG9zZWQgdG8gY29tcGlsZSBhcyBmb28gaXMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBub3QgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi0vLwotLy8gLSBCeSB1
c2luZyB0aGUgdHlwZSBDb21waWxlQXNzZXJ0PChib29sKGV4cHIpKT4sIHdlIGVuc3VyZXMgdGhh
dAotLy8gICBleHByIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LiAgKFRlbXBsYXRlIGFyZ3Vt
ZW50cyBtdXN0IGJlCi0vLyAgIGRldGVybWluZWQgYXQgY29tcGlsZS10aW1lLikKLS8vCi0vLyAt
IFRoZSBvdXR0ZXIgcGFyZW50aGVzZXMgaW4gQ29tcGlsZUFzc2VydDwoYm9vbChleHByKSk+IGFy
ZSBuZWNlc3NhcnkKLS8vICAgdG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDMuNC40IGFuZCA0
LjAuMS4gIElmIHdlIGhhZCB3cml0dGVuCi0vLwotLy8gICAgIENvbXBpbGVBc3NlcnQ8Ym9vbChl
eHByKT4KLS8vCi0vLyAgIGluc3RlYWQsIHRoZXNlIGNvbXBpbGVycyB3aWxsIHJlZnVzZSB0byBj
b21waWxlCi0vLwotLy8gICAgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyg1ID4gMCwgc29tZV9tZXNz
YWdlKTsKLS8vCi0vLyAgIChUaGV5IHNlZW0gdG8gdGhpbmsgdGhlICI+IiBpbiAiNSA+IDAiIG1h
cmtzIHRoZSBlbmQgb2YgdGhlCi0vLyAgIHRlbXBsYXRlIGFyZ3VtZW50IGxpc3QuKQotLy8KLS8v
IC0gVGhlIGFycmF5IHNpemUgaXMgKGJvb2woZXhwcikgPyAxIDogLTEpLCBpbnN0ZWFkIG9mIHNp
bXBseQotLy8KLS8vICAgICAoKGV4cHIpID8gMSA6IC0xKS4KLS8vCi0vLyAgIFRoaXMgaXMgdG8g
YXZvaWQgcnVubmluZyBpbnRvIGEgYnVnIGluIE1TIFZDIDcuMSwgd2hpY2gKLS8vICAgY2F1c2Vz
ICgoMC4wKSA/IDEgOiAtMSkgdG8gaW5jb3JyZWN0bHkgZXZhbHVhdGUgdG8gMS4KLQotLy8gU3Rh
dGljQXNzZXJ0VHlwZUVxSGVscGVyIGlzIHVzZWQgYnkgU3RhdGljQXNzZXJ0VHlwZUVxIGRlZmlu
ZWQgaW4gZ3Rlc3QuaC4KLS8vCi0vLyBUaGlzIHRlbXBsYXRlIGlzIGRlY2xhcmVkLCBidXQgaW50
ZW50aW9uYWxseSB1bmRlZmluZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
Pgotc3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1zdHJ1Y3QgU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQsIFQ+IHsKLSAgZW51bSB7IHZh
bHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gU2FtZSBhcyBzdGQ6OmlzX3NhbWU8Pi4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0IElzU2FtZSB7Ci0gIGVudW0geyB2YWx1
ZSA9IGZhbHNlIH07Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXNTYW1lPFQs
IFQ+IHsKLSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gRXZhbHVhdGVzIHRvIHRo
ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gJ2FycmF5Jy4KLSNkZWZpbmUgR1RFU1RfQVJSQVlfU0la
RV8oYXJyYXkpIChzaXplb2YoYXJyYXkpIC8gc2l6ZW9mKGFycmF5WzBdKSkKLQotI2lmIEdURVNU
X0hBU19HTE9CQUxfU1RSSU5HCi10eXBlZGVmIDo6c3RyaW5nIHN0cmluZzsKLSNlbHNlCi10eXBl
ZGVmIDo6c3RkOjpzdHJpbmcgc3RyaW5nOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NU
UklORwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi10eXBlZGVmIDo6d3N0cmluZyB3
c3RyaW5nOwotI2VsaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCi10eXBlZGVmIDo6c3RkOjp3c3Ry
aW5nIHdzdHJpbmc7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORworLy8gVGhl
IHNlY29uZCBhcmd1bWVudCB0byB0aGUgbWFjcm8gbXVzdCBiZSBhIHZhbGlkIEMrKyBpZGVudGlm
aWVyLiBJZiB0aGUKKy8vIGV4cHJlc3Npb24gaXMgZmFsc2UsIGNvbXBpbGVyIHdpbGwgaXNzdWUg
YW4gZXJyb3IgY29udGFpbmluZyB0aGlzIGlkZW50aWZpZXIuCisjZGVmaW5lIEdURVNUX0NPTVBJ
TEVfQVNTRVJUXyhleHByLCBtc2cpIHN0YXRpY19hc3NlcnQoZXhwciwgI21zZykKIAogLy8gQSBo
ZWxwZXIgZm9yIHN1cHByZXNzaW5nIHdhcm5pbmdzIG9uIGNvbnN0YW50IGNvbmRpdGlvbi4gIEl0
IGp1c3QKIC8vIHJldHVybnMgJ2NvbmRpdGlvbicuCiBHVEVTVF9BUElfIGJvb2wgSXNUcnVlKGJv
b2wgY29uZGl0aW9uKTsKIAotLy8gRGVmaW5lcyBzY29wZWRfcHRyLgotCi0vLyBUaGlzIGltcGxl
bWVudGF0aW9uIG9mIHNjb3BlZF9wdHIgaXMgUEFSVElBTCAtIGl0IG9ubHkgY29udGFpbnMKLS8v
IGVub3VnaCBzdHVmZiB0byBzYXRpc2Z5IEdvb2dsZSBUZXN0J3MgbmVlZC4KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotY2xhc3Mgc2NvcGVkX3B0ciB7Ci0gcHVibGljOgotICB0eXBlZGVmIFQgZWxl
bWVudF90eXBlOwotCi0gIGV4cGxpY2l0IHNjb3BlZF9wdHIoVCogcCA9IE5VTEwpIDogcHRyXyhw
KSB7fQotICB+c2NvcGVkX3B0cigpIHsgcmVzZXQoKTsgfQotCi0gIFQmIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuICpwdHJfOyB9Ci0gIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBw
dHJfOyB9Ci0gIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIHB0cl87IH0KLQotICBUKiByZWxlYXNl
KCkgewotICAgIFQqIGNvbnN0IHB0ciA9IHB0cl87Ci0gICAgcHRyXyA9IE5VTEw7Ci0gICAgcmV0
dXJuIHB0cjsKLSAgfQotCi0gIHZvaWQgcmVzZXQoVCogcCA9IE5VTEwpIHsKLSAgICBpZiAocCAh
PSBwdHJfKSB7Ci0gICAgICBpZiAoSXNUcnVlKHNpemVvZihUKSA+IDApKSB7ICAvLyBNYWtlcyBz
dXJlIFQgaXMgYSBjb21wbGV0ZSB0eXBlLgotICAgICAgICBkZWxldGUgcHRyXzsKLSAgICAgIH0K
LSAgICAgIHB0cl8gPSBwOwotICAgIH0KLSAgfQotCi0gIGZyaWVuZCB2b2lkIHN3YXAoc2NvcGVk
X3B0ciYgYSwgc2NvcGVkX3B0ciYgYikgewotICAgIHVzaW5nIHN0ZDo6c3dhcDsKLSAgICBzd2Fw
KGEucHRyXywgYi5wdHJfKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgVCogcHRyXzsKLQotICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKHNjb3BlZF9wdHIpOwotfTsKLQogLy8gRGVmaW5l
cyBSRS4KIAogI2lmIEdURVNUX1VTRVNfUENSRQpAQCAtMTI0NywyNSArODk1LDE2IEBAIGNsYXNz
IEdURVNUX0FQSV8gUkUgewogICAvLyBDb25zdHJ1Y3RzIGFuIFJFIGZyb20gYSBzdHJpbmcuCiAg
IFJFKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19zdHIoKSk7IH0g
IC8vIE5PTElOVAogCi0jIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KLSAgUkUoY29uc3Qg
OjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19zdHIoKSk7IH0gIC8vIE5PTElOVAotCi0j
IGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAgIFJFKGNvbnN0IGNoYXIqIHJl
Z2V4KSB7IEluaXQocmVnZXgpOyB9ICAvLyBOT0xJTlQKICAgflJFKCk7CiAKICAgLy8gUmV0dXJu
cyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZWdleC4KICAgY29uc3QgY2hhciog
cGF0dGVybigpIGNvbnN0IHsgcmV0dXJuIHBhdHRlcm5fOyB9CiAKLSAgLy8gRnVsbE1hdGNoKHN0
ciwgcmUpIHJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMKLSAg
Ly8gdGhlIGVudGlyZSBzdHIuCi0gIC8vIFBhcnRpYWxNYXRjaChzdHIsIHJlKSByZXR1cm5zIHRy
dWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAvLyBGdWxsTWF0Y2goc3RyLCByZSkgcmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAvLyBtYXRj
aGVzIHRoZSBlbnRpcmUgc3RyLgorICAvLyBQYXJ0aWFsTWF0Y2goc3RyLCByZSkgcmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQogICAvLyBtYXRjaGVzIGEg
c3Vic3RyaW5nIG9mIHN0ciAoaW5jbHVkaW5nIHN0ciBpdHNlbGYpLgotICAvLwotICAvLyBGSVhN
RTogbWFrZSBGdWxsTWF0Y2goKSBhbmQgUGFydGlhbE1hdGNoKCkgd29yawotICAvLyB3aGVuIHN0
ciBjb250YWlucyBOVUwgY2hhcmFjdGVycy4KICAgc3RhdGljIGJvb2wgRnVsbE1hdGNoKGNvbnN0
IDo6c3RkOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgICAgcmV0dXJuIEZ1bGxNYXRj
aChzdHIuY19zdHIoKSwgcmUpOwogICB9CkBAIC0xMjczLDI2ICs5MTIsMTEgQEAgY2xhc3MgR1RF
U1RfQVBJXyBSRSB7CiAgICAgcmV0dXJuIFBhcnRpYWxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwog
ICB9CiAKLSMgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQotICBzdGF0aWMgYm9vbCBGdWxs
TWF0Y2goY29uc3QgOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7Ci0gICAgcmV0dXJuIEZ1
bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwotICB9Ci0gIHN0YXRpYyBib29sIFBhcnRpYWxNYXRj
aChjb25zdCA6OnN0cmluZyYgc3RyLCBjb25zdCBSRSYgcmUpIHsKLSAgICByZXR1cm4gUGFydGlh
bE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0gIH0KLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcKLQogICBzdGF0aWMgYm9vbCBGdWxsTWF0Y2goY29uc3QgY2hhciogc3RyLCBj
b25zdCBSRSYgcmUpOwogICBzdGF0aWMgYm9vbCBQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3Ry
LCBjb25zdCBSRSYgcmUpOwogCiAgcHJpdmF0ZToKICAgdm9pZCBJbml0KGNvbnN0IGNoYXIqIHJl
Z2V4KTsKLQotICAvLyBXZSB1c2UgYSBjb25zdCBjaGFyKiBpbnN0ZWFkIG9mIGFuIHN0ZDo6c3Ry
aW5nLCBhcyBHb29nbGUgVGVzdCB1c2VkIHRvIGJlCi0gIC8vIHVzZWQgd2hlcmUgc3RkOjpzdHJp
bmcgaXMgbm90IGF2YWlsYWJsZS4gIEZJWE1FOiBjaGFuZ2UgdG8KLSAgLy8gc3RkOjpzdHJpbmcu
CiAgIGNvbnN0IGNoYXIqIHBhdHRlcm5fOwogICBib29sIGlzX3ZhbGlkXzsKIApAQCAtMTMwNiw4
ICs5MzAsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFJFIHsKICAgY29uc3QgY2hhciogZnVsbF9wYXR0
ZXJuXzsgIC8vIEZvciBGdWxsTWF0Y2goKTsKIAogIyBlbmRpZgotCi0gIEdURVNUX0RJU0FMTE9X
X0FTU0lHTl8oUkUpOwogfTsKIAogI2VuZGlmICAvLyBHVEVTVF9VU0VTX1BDUkUKQEAgLTEzNjAs
NyArOTgyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBHVGVzdExvZyB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKS5HZXRTdHJlYW0oKQogCiBpbmxp
bmUgdm9pZCBMb2dUb1N0ZGVycigpIHt9Ci1pbmxpbmUgdm9pZCBGbHVzaEluZm9Mb2coKSB7IGZm
bHVzaChOVUxMKTsgfQoraW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBmZmx1c2gobnVsbHB0
cik7IH0KIAogI2VuZGlmICAvLyAhZGVmaW5lZChHVEVTVF9MT0dfKQogCkBAIC0xMzk3LDE5ICsx
MDE5LDYgQEAgaW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBmZmx1c2goTlVMTCk7IH0KICAg
ICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAjcG9zaXhfY2FsbCA8PCAiZmFpbGVkIHdpdGggZXJyb3Ig
IiBcCiAgICAgICAgICAgICAgICAgICAgICAgPDwgZ3Rlc3RfZXJyb3IKIAotLy8gQWRkcyByZWZl
cmVuY2UgdG8gYSB0eXBlIGlmIGl0IGlzIG5vdCBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3
aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OmFk
ZF9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5jZSB7IHR5cGVkZWYgVCYgdHlwZTsgfTsg
IC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmZXJlbmNlPFQm
PiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIg
YXJvdW5kIEFkZFJlZmVyZW5jZSB0aGF0IHdvcmtzIHdoZW4gdGhlIGFyZ3VtZW50IFQKLS8vIGRl
cGVuZHMgb24gdGVtcGxhdGUgcGFyYW1ldGVycy4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRkVSRU5D
RV8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFkZFJlZmVyZW5jZTxU
Pjo6dHlwZQotCiAvLyBUcmFuc2Zvcm1zICJUIiBpbnRvICJjb25zdCBUJiIgYWNjb3JkaW5nIHRv
IHN0YW5kYXJkIHJlZmVyZW5jZSBjb2xsYXBzaW5nCiAvLyBydWxlcyAodGhpcyBpcyBvbmx5IG5l
ZWRlZCBhcyBhIGJhY2twb3J0IGZvciBDKys5OCBjb21waWxlcnMgdGhhdCBkbyBub3QKIC8vIHN1
cHBvcnQgcmVmZXJlbmNlIGNvbGxhcHNpbmcpLiBTcGVjaWZpY2FsbHksIGl0IHRyYW5zZm9ybXM6
CkBAIC0xNDMwLDI4ICsxMDM5LDYgQEAgc3RydWN0IENvbnN0UmVmPFQmPiB7IHR5cGVkZWYgVCYg
dHlwZTsgfTsKICNkZWZpbmUgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUKSBcCiAgIHR5cGVu
YW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbnN0UmVmPFQ+Ojp0eXBlCiAKLSNpZiBHVEVTVF9I
QVNfU1REX01PVkVfCi11c2luZyBzdGQ6OmZvcndhcmQ7Ci11c2luZyBzdGQ6Om1vdmU7Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJ2YWx1ZVJlZiB7Ci0gIHR5cGVkZWYgVCYmIHR5
cGU7Ci19OwotI2Vsc2UgIC8vIEdURVNUX0hBU19TVERfTU9WRV8KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotY29uc3QgVCYgbW92ZShjb25zdCBUJiB0KSB7Ci0gIHJldHVybiB0OwotfQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1HVEVTVF9BRERfUkVGRVJFTkNFXyhUKSBmb3J3YXJkKEdURVNUX0FE
RF9SRUZFUkVOQ0VfKFQpIHQpIHsgcmV0dXJuIHQ7IH0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdHJ1Y3QgUnZhbHVlUmVmIHsKLSAgdHlwZWRlZiBjb25zdCBUJiB0eXBlOwotfTsKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1NURF9NT1ZFXwotCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAt
IERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KIC8vIFVzZSBJbXBsaWNpdENhc3RfIGFzIGEg
c2FmZSB2ZXJzaW9uIG9mIHN0YXRpY19jYXN0IGZvciB1cGNhc3RpbmcgaW4KQEAgLTE1MDUsMTMg
KzEwOTIsMTMgQEAgaW5saW5lIFRvIERvd25DYXN0XyhGcm9tKiBmKSB7ICAvLyBzbyB3ZSBvbmx5
IGFjY2VwdCBwb2ludGVycwogICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfKCkK
ICAgaWYgKGZhbHNlKSB7CiAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpCi0g
ICAgY29uc3QgVG8gdG8gPSBOVUxMOwotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkltcGxpY2l0
Q2FzdF88RnJvbSo+KHRvKTsKKyAgY29uc3QgVG8gdG8gPSBudWxscHRyOworICA6OnRlc3Rpbmc6
OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEZyb20qPih0byk7CiAgIH0KIAogI2lmIEdURVNUX0hB
U19SVFRJCiAgIC8vIFJUVEk6IGRlYnVnIG1vZGUgb25seSEKLSAgR1RFU1RfQ0hFQ0tfKGYgPT0g
TlVMTCB8fCBkeW5hbWljX2Nhc3Q8VG8+KGYpICE9IE5VTEwpOworICBHVEVTVF9DSEVDS18oZiA9
PSBudWxscHRyIHx8IGR5bmFtaWNfY2FzdDxUbz4oZikgIT0gbnVsbHB0cik7CiAjZW5kaWYKICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRvPihmKTsKIH0KQEAgLTE1NjUsOSArMTE1Miw2IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRJbmplY3RhYmxlQXJndnMoKTsKIC8vIERlcHJlY2F0ZWQ6
IHBhc3MgdGhlIGFyZ3MgdmVjdG9yIGJ5IHZhbHVlIGluc3RlYWQuCiB2b2lkIFNldEluamVjdGFi
bGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIG5ld19hcmd2cyk7CiB2b2lk
IFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIG5ld19h
cmd2cyk7Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFy
Z3ZzKGNvbnN0IHN0ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cyk7Ci0jZW5kaWYgIC8v
IEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCiB2b2lkIENsZWFySW5qZWN0YWJsZUFyZ3ZzKCk7CiAK
ICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKQEAgLTE1ODMsNyArMTE2Nyw3IEBAIGlu
bGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7CiAgICAgMCwgICAgICAgICAgICAg
ICAgICAvLyAwIHNlY29uZHMuCiAgICAgbiAqIDEwMDBMICogMTAwMEwsICAvLyBBbmQgbiBtcy4K
ICAgfTsKLSAgbmFub3NsZWVwKCZ0aW1lLCBOVUxMKTsKKyAgbmFub3NsZWVwKCZ0aW1lLCBudWxs
cHRyKTsKIH0KICMgZW5kaWYgIC8vIEdURVNUX0hBU19QVEhSRUFECiAKQEAgLTE2MDEsNyArMTE4
NSw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7CiBjbGFzcyBOb3Rp
ZmljYXRpb24gewogIHB1YmxpYzoKICAgTm90aWZpY2F0aW9uKCkgOiBub3RpZmllZF8oZmFsc2Up
IHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2luaXQoJm11
dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0
ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgIH0KICAgfk5vdGlmaWNhdGlvbigpIHsKICAg
ICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dGV4Xyk7CkBAIC0xNjU5LDcgKzEyNDMsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIEF1dG9IYW5kbGUgewogICB2b2lkIFJlc2V0KEhhbmRsZSBoYW5kbGUp
OwogCiAgcHJpdmF0ZToKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgaGFuZGxlIGlzIGEgdmFs
aWQgaGFuZGxlIG9iamVjdCB0aGF0IGNhbiBiZSBjbG9zZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgaGFuZGxlIGlzIGEgdmFsaWQgaGFuZGxlIG9iamVjdCB0aGF0IGNh
biBiZQorICAvLyBjbG9zZWQuCiAgIGJvb2wgSXNDbG9zZWFibGUoKSBjb25zdDsKIAogICBIYW5k
bGUgaGFuZGxlXzsKQEAgLTE3MTAsNyArMTI5NSw3IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbUJh
c2UgewogLy8gcGFzcyBpbnRvIHB0aHJlYWRfY3JlYXRlKCkuCiBleHRlcm4gIkMiIGlubGluZSB2
b2lkKiBUaHJlYWRGdW5jV2l0aENMaW5rYWdlKHZvaWQqIHRocmVhZCkgewogICBzdGF0aWNfY2Fz
dDxUaHJlYWRXaXRoUGFyYW1CYXNlKj4odGhyZWFkKS0+UnVuKCk7Ci0gIHJldHVybiBOVUxMOwor
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogLy8gSGVscGVyIGNsYXNzIGZvciB0ZXN0aW5nIEdvb2ds
ZSBUZXN0J3MgbXVsdGktdGhyZWFkaW5nIGNvbnN0cnVjdHMuCkBAIC0xNzM5LDIwICsxMzI0LDE5
IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbSA6IHB1YmxpYyBUaHJlYWRXaXRoUGFyYW1CYXNlIHsK
ICAgICAvLyBUaGUgdGhyZWFkIGNhbiBiZSBjcmVhdGVkIG9ubHkgYWZ0ZXIgYWxsIGZpZWxkcyBl
eGNlcHQgdGhyZWFkXwogICAgIC8vIGhhdmUgYmVlbiBpbml0aWFsaXplZC4KICAgICBHVEVTVF9D
SEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAgcHRocmVhZF9jcmVhdGUoJnRocmVhZF8sIDAs
ICZUaHJlYWRGdW5jV2l0aENMaW5rYWdlLCBiYXNlKSk7CisgICAgICAgIHB0aHJlYWRfY3JlYXRl
KCZ0aHJlYWRfLCBudWxscHRyLCAmVGhyZWFkRnVuY1dpdGhDTGlua2FnZSwgYmFzZSkpOwogICB9
Ci0gIH5UaHJlYWRXaXRoUGFyYW0oKSB7IEpvaW4oKTsgfQorICB+VGhyZWFkV2l0aFBhcmFtKCkg
b3ZlcnJpZGUgeyBKb2luKCk7IH0KIAogICB2b2lkIEpvaW4oKSB7CiAgICAgaWYgKCFmaW5pc2hl
ZF8pIHsKLSAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfam9pbih0aHJl
YWRfLCAwKSk7CisgICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX2pvaW4o
dGhyZWFkXywgbnVsbHB0cikpOwogICAgICAgZmluaXNoZWRfID0gdHJ1ZTsKICAgICB9CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgUnVuKCkgewotICAgIGlmICh0aHJlYWRfY2FuX3N0YXJ0XyAhPSBO
VUxMKQotICAgICAgdGhyZWFkX2Nhbl9zdGFydF8tPldhaXRGb3JOb3RpZmljYXRpb24oKTsKKyAg
dm9pZCBSdW4oKSBvdmVycmlkZSB7CisgICAgaWYgKHRocmVhZF9jYW5fc3RhcnRfICE9IG51bGxw
dHIpIHRocmVhZF9jYW5fc3RhcnRfLT5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7CiAgICAgZnVuY18o
cGFyYW1fKTsKICAgfQogCkBAIC0xNzYyLDcgKzEzNDYsOCBAQCBjbGFzcyBUaHJlYWRXaXRoUGFy
YW0gOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgIC8vIFdoZW4gbm9uLU5VTEwsIHVz
ZWQgdG8gYmxvY2sgZXhlY3V0aW9uIHVudGlsIHRoZSBjb250cm9sbGVyIHRocmVhZAogICAvLyBu
b3RpZmllcy4KICAgTm90aWZpY2F0aW9uKiBjb25zdCB0aHJlYWRfY2FuX3N0YXJ0XzsKLSAgYm9v
bCBmaW5pc2hlZF87ICAvLyB0cnVlIGlmZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlv
biBoYXMgZmluaXNoZWQuCisgIGJvb2wgZmluaXNoZWRfOyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBp
ZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlvbiBoYXMKKyAgICAgICAgICAgICAgICAg
ICAvLyBmaW5pc2hlZC4KICAgcHRocmVhZF90IHRocmVhZF87ICAvLyBUaGUgbmF0aXZlIHRocmVh
ZCBvYmplY3QuCiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRXaXRo
UGFyYW0pOwpAQCAtMjAyNyw3ICsxNjEyLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMg
VGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1
YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgogICAgIERlZmF1bHRWYWx1ZUhv
bGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1YWwgVmFsdWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIo
KSBjb25zdCB7IHJldHVybiBuZXcgVmFsdWVIb2xkZXIoKTsgfQorICAgIFZhbHVlSG9sZGVyKiBN
YWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7
IH0KIAogICAgcHJpdmF0ZToKICAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKERl
ZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkpOwpAQCAtMjAzNiw3ICsxNjIxLDcgQEAgY2xhc3MgVGhy
ZWFkTG9jYWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgSW5zdGFuY2VWYWx1
ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeShjb25zdCBUJiB2YWx1ZSkg
OiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRl
cigpIGNvbnN0IHsKKyAgICBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJy
aWRlIHsKICAgICAgIHJldHVybiBuZXcgVmFsdWVIb2xkZXIodmFsdWVfKTsKICAgICB9CiAKQEAg
LTIwNDYsNyArMTYzMSw3IEBAIGNsYXNzIFRocmVhZExvY2FsIDogcHVibGljIFRocmVhZExvY2Fs
QmFzZSB7CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhJbnN0YW5jZVZhbHVl
SG9sZGVyRmFjdG9yeSk7CiAgIH07CiAKLSAgc2NvcGVkX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+
IGRlZmF1bHRfZmFjdG9yeV87CisgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+
IGRlZmF1bHRfZmFjdG9yeV87CiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhU
aHJlYWRMb2NhbCk7CiB9OwpAQCAtMjExNSw3ICsxNzAwLDcgQEAgY2xhc3MgTXV0ZXhCYXNlIHsK
IGNsYXNzIE11dGV4IDogcHVibGljIE11dGV4QmFzZSB7CiAgcHVibGljOgogICBNdXRleCgpIHsK
LSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2luaXQoJm11dGV4
XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhf
aW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgICAgaGFzX293bmVyXyA9IGZhbHNlOwogICB9CiAg
IH5NdXRleCgpIHsKQEAgLTIyMTMsNyArMTc5OCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFk
TG9jYWwgewogICBUKiBHZXRPckNyZWF0ZVZhbHVlKCkgY29uc3QgewogICAgIFRocmVhZExvY2Fs
VmFsdWVIb2xkZXJCYXNlKiBjb25zdCBob2xkZXIgPQogICAgICAgICBzdGF0aWNfY2FzdDxUaHJl
YWRMb2NhbFZhbHVlSG9sZGVyQmFzZSo+KHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5XykpOwotICAg
IGlmIChob2xkZXIgIT0gTlVMTCkgeworICAgIGlmIChob2xkZXIgIT0gbnVsbHB0cikgewogICAg
ICAgcmV0dXJuIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxWYWx1ZUhvbGRlcj4oaG9sZGVy
KS0+cG9pbnRlcigpOwogICAgIH0KIApAQCAtMjIzNiw3ICsxODIxLDcgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUaHJlYWRMb2NhbCB7CiAgIGNsYXNzIERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkgOiBw
dWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBEZWZhdWx0VmFsdWVI
b2xkZXJGYWN0b3J5KCkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVy
KCkgY29uc3QgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7IH0KKyAgICBWYWx1ZUhvbGRlciog
TWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG5ldyBWYWx1ZUhvbGRlcigp
OyB9CiAKICAgIHByaXZhdGU6CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhE
ZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KTsKQEAgLTIyNDUsNyArMTgzMCw3IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBjbGFzcyBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9y
eSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgogICAgIGV4cGxpY2l0
IEluc3RhbmNlVmFsdWVIb2xkZXJGYWN0b3J5KGNvbnN0IFQmIHZhbHVlKSA6IHZhbHVlXyh2YWx1
ZSkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgewor
ICAgIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgICAg
cmV0dXJuIG5ldyBWYWx1ZUhvbGRlcih2YWx1ZV8pOwogICAgIH0KIApAQCAtMjI1Nyw3ICsxODQy
LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2NhbCB7CiAKICAgLy8gQSBrZXkgcHRocmVh
ZHMgdXNlcyBmb3IgbG9va2luZyB1cCBwZXItdGhyZWFkIHZhbHVlcy4KICAgY29uc3QgcHRocmVh
ZF9rZXlfdCBrZXlfOwotICBzY29wZWRfcHRyPFZhbHVlSG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9m
YWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVfcHRyPFZhbHVlSG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9m
YWN0b3J5XzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRocmVhZExvY2Fs
KTsKIH07CkBAIC0yMzE1LDc3ICsxOTAwLDEyIEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9j
YWwgewogLy8gd2UgY2Fubm90IGRldGVjdCBpdC4KIEdURVNUX0FQSV8gc2l6ZV90IEdldFRocmVh
ZENvdW50KCk7CiAKLS8vIFBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBzaXMg
KC4uLikgY3Jhc2hlcyB0aGUgQVJNCi0vLyBjb21waWxlciBhbmQgZ2VuZXJhdGVzIGEgd2Fybmlu
ZyBpbiBTdW4gU3R1ZGlvIGJlZm9yZSAxMnU0LiBUaGUgTm9raWEgU3ltYmlhbgotLy8gYW5kIHRo
ZSBJQk0gWEwgQy9DKysgY29tcGlsZXIgdHJ5IHRvIGluc3RhbnRpYXRlIGEgY29weSBjb25zdHJ1
Y3RvcgotLy8gZm9yIG9iamVjdHMgcGFzc2VkIHRocm91Z2ggZWxsaXBzaXMgKC4uLiksIGZhaWxp
bmcgZm9yIHVuY29weWFibGUKLS8vIG9iamVjdHMuICBXZSBkZWZpbmUgdGhpcyB0byBlbnN1cmUg
dGhhdCBvbmx5IFBPRCBpcyBwYXNzZWQgdGhyb3VnaAotLy8gZWxsaXBzaXMgb24gdGhlc2Ugc3lz
dGVtcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykg
fHwgXAotICAgICAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPCAweDUxMzAp
Ci0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJlIHRoZSBjb21waWxl
ciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBz
aXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfIDEKLSNlbHNlCi0j
IGRlZmluZSBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMIDEKLSNlbmRpZgotCi0vLyBUaGUgTm9raWEg
U3ltYmlhbiBhbmQgSUJNIFhMIEMvQysrIGNvbXBpbGVycyBjYW5ub3QgZGVjaWRlIGJldHdlZW4K
LS8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBsYXRlLiAgVGhlc2Ug
Y29tcGlsZXJzCi0vLyBfY2FuXyBkZWNpZGUgYmV0d2VlbiBjbGFzcyB0ZW1wbGF0ZSBzcGVjaWFs
aXphdGlvbnMgZm9yIFQgYW5kIFQqLAotLy8gc28gYSB0cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNf
cG9pbnRlciB3b3Jrcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IGRlZmluZWQoX19J
Qk1DUFBfXykKLSMgZGVmaW5lIEdURVNUX05FRURTX0lTX1BPSU5URVJfIDEKLSNlbmRpZgotCi10
ZW1wbGF0ZSA8Ym9vbCBib29sX3ZhbHVlPgotc3RydWN0IGJvb2xfY29uc3RhbnQgewotICB0eXBl
ZGVmIGJvb2xfY29uc3RhbnQ8Ym9vbF92YWx1ZT4gdHlwZTsKLSAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSBib29sX3ZhbHVlOwotfTsKLXRlbXBsYXRlIDxib29sIGJvb2xfdmFsdWU+IGNvbnN0
IGJvb2wgYm9vbF9jb25zdGFudDxib29sX3ZhbHVlPjo6dmFsdWU7Ci0KLXR5cGVkZWYgYm9vbF9j
b25zdGFudDxmYWxzZT4gZmFsc2VfdHlwZTsKLXR5cGVkZWYgYm9vbF9jb25zdGFudDx0cnVlPiB0
cnVlX3R5cGU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0IGlz
X3NhbWUgOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1z
dHJ1Y3QgaXNfc2FtZTxULCBUPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRlciA6IHB1YmxpYyBmYWxzZV90eXBlIHt9Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBpc19wb2ludGVyPFQqPiA6IHB1YmxpYyB0
cnVlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4KLXN0cnVjdCBJdGVy
YXRvclRyYWl0cyB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OnZhbHVlX3R5cGUgdmFs
dWVfdHlwZTsKLX07Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXRlcmF0b3JU
cmFpdHM8VCo+IHsKLSAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLXN0cnVjdCBJdGVyYXRvclRyYWl0czxjb25zdCBUKj4gewotICB0eXBlZGVmIFQg
dmFsdWVfdHlwZTsKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTCiAjIGRlZmluZSBHVEVTVF9Q
QVRIX1NFUF8gIlxcIgogIyBkZWZpbmUgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8gMQotLy8gVGhl
IGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUgY29tcGlsZXIgc3VwcG9ydHMuCi10eXBl
ZGVmIF9faW50NjQgQmlnZ2VzdEludDsKICNlbHNlCiAjIGRlZmluZSBHVEVTVF9QQVRIX1NFUF8g
Ii8iCiAjIGRlZmluZSBHVEVTVF9IQVNfQUxUX1BBVEhfU0VQXyAwCi10eXBlZGVmIGxvbmcgbG9u
ZyBCaWdnZXN0SW50OyAgLy8gTk9MSU5UCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKIAog
Ly8gVXRpbGl0aWVzIGZvciBjaGFyLgpAQCAtMjQxNiw2ICsxOTM2LDE5IEBAIGlubGluZSBib29s
IElzVXBwZXIoY2hhciBjaCkgewogaW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhciBjaCkgewogICBy
ZXR1cm4gaXN4ZGlnaXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpKSAhPSAwOwogfQor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKK2lubGluZSBib29sIElzWERpZ2l0KGNoYXI4X3QgY2gpIHsK
KyAgcmV0dXJuIGlzeGRpZ2l0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsK
K30KKyNlbmRpZgoraW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjE2X3QgY2gpIHsKKyAgY29uc3Qg
dW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsK
KyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOworfQor
aW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjMyX3QgY2gpIHsKKyAgY29uc3QgdW5zaWduZWQgY2hh
ciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsKKyAgcmV0dXJuIGNo
ID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOworfQogaW5saW5lIGJvb2wg
SXNYRGlnaXQod2NoYXJfdCBjaCkgewogICBjb25zdCB1bnNpZ25lZCBjaGFyIGxvd19ieXRlID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOwogICByZXR1cm4gY2ggPT0gbG93X2J5dGUg
JiYgaXN4ZGlnaXQobG93X2J5dGUpICE9IDA7CkBAIC0yNDUwLDE2ICsxOTgzLDE2IEBAIG5hbWVz
cGFjZSBwb3NpeCB7CiB0eXBlZGVmIHN0cnVjdCBfc3RhdCBTdGF0U3RydWN0OwogCiAjIGlmZGVm
IF9fQk9STEFORENfXwotaW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7IHJldHVybiBpc2F0dHko
ZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsg
fQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikg
ewogICByZXR1cm4gc3RyaWNtcChzMSwgczIpOwogfQogaW5saW5lIGNoYXIqIFN0ckR1cChjb25z
dCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9CiAjIGVsc2UgIC8vICFfX0JPUkxB
TkRDX18KICMgIGlmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi1pbmxpbmUgaW50IElzQVRUWShp
bnQgLyogZmQgKi8pIHsgcmV0dXJuIDA7IH0KK2lubGluZSBpbnQgRG9Jc0FUVFkoaW50IC8qIGZk
ICovKSB7IHJldHVybiAwOyB9CiAjICBlbHNlCi1pbmxpbmUgaW50IElzQVRUWShpbnQgZmQpIHsg
cmV0dXJuIF9pc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1
cm4gX2lzYXR0eShmZCk7IH0KICMgIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQog
aW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewog
ICByZXR1cm4gX3N0cmljbXAoczEsIHMyKTsKQEAgLTI0ODAsMTIgKzIwMTMsMjggQEAgaW5saW5l
IGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsKIH0KICMgZW5kaWYgIC8vIEdURVNU
X09TX1dJTkRPV1NfTU9CSUxFCiAKKyNlbGlmIEdURVNUX09TX0VTUDgyNjYKK3R5cGVkZWYgc3Ry
dWN0IHN0YXQgU3RhdFN0cnVjdDsKKworaW5saW5lIGludCBGaWxlTm8oRklMRSogZmlsZSkgeyBy
ZXR1cm4gZmlsZW5vKGZpbGUpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1
cm4gaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBTdGF0KGNvbnN0IGNoYXIqIHBhdGgsIFN0YXRT
dHJ1Y3QqIGJ1ZikgeworICAvLyBzdGF0IGZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCBvbiBFU1A4
MjY2CisgIHJldHVybiAwOworfQoraW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMx
LCBjb25zdCBjaGFyKiBzMikgeworICByZXR1cm4gc3RyY2FzZWNtcChzMSwgczIpOworfQoraW5s
aW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9
CitpbmxpbmUgaW50IFJtRGlyKGNvbnN0IGNoYXIqIGRpcikgeyByZXR1cm4gcm1kaXIoZGlyKTsg
fQoraW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsgcmV0dXJuIFNfSVNE
SVIoc3Quc3RfbW9kZSk7IH0KKwogI2Vsc2UKIAogdHlwZWRlZiBzdHJ1Y3Qgc3RhdCBTdGF0U3Ry
dWN0OwogCiBpbmxpbmUgaW50IEZpbGVObyhGSUxFKiBmaWxlKSB7IHJldHVybiBmaWxlbm8oZmls
ZSk7IH0KLWlubGluZSBpbnQgSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsgfQor
aW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShmZCk7IH0KIGlubGlu
ZSBpbnQgU3RhdChjb25zdCBjaGFyKiBwYXRoLCBTdGF0U3RydWN0KiBidWYpIHsgcmV0dXJuIHN0
YXQocGF0aCwgYnVmKTsgfQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBj
b25zdCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyY2FzZWNtcChzMSwgczIpOwpAQCAtMjQ5Niwx
NCArMjA0NSwyMSBAQCBpbmxpbmUgYm9vbCBJc0Rpcihjb25zdCBTdGF0U3RydWN0JiBzdCkgeyBy
ZXR1cm4gU19JU0RJUihzdC5zdF9tb2RlKTsgfQogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1MKIAoraW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7CisgIC8vIERvSXNBVFRZIG1pZ2h0IGNo
YW5nZSBlcnJubyAoZm9yIGV4YW1wbGUgRU5PVFRZIGluIGNhc2UgeW91IHJlZGlyZWN0IHN0ZG91
dAorICAvLyB0byBhIGZpbGUgb24gTGludXgpLCB3aGljaCBpcyB1bmV4cGVjdGVkLCBzbyBzYXZl
IHRoZSBwcmV2aW91cyB2YWx1ZSwgYW5kCisgIC8vIHJlc3RvcmUgaXQgYWZ0ZXIgdGhlIGNhbGwu
CisgIGludCBzYXZlZEVycm5vID0gZXJybm87CisgIGludCBpc0F0dHlWYWx1ZSA9IERvSXNBVFRZ
KGZkKTsKKyAgZXJybm8gPSBzYXZlZEVycm5vOworCisgIHJldHVybiBpc0F0dHlWYWx1ZTsKK30K
KwogLy8gRnVuY3Rpb25zIGRlcHJlY2F0ZWQgYnkgTVNWQyA4LjAuCiAKIEdURVNUX0RJU0FCTEVf
TVNDX0RFUFJFQ0FURURfUFVTSF8oKQogCi1pbmxpbmUgY29uc3QgY2hhciogU3RyTkNweShjaGFy
KiBkZXN0LCBjb25zdCBjaGFyKiBzcmMsIHNpemVfdCBuKSB7Ci0gIHJldHVybiBzdHJuY3B5KGRl
c3QsIHNyYywgbik7Ci19Ci0KIC8vIENoRGlyKCksIEZSZW9wZW4oKSwgRkRPcGVuKCksIFJlYWQo
KSwgV3JpdGUoKSwgQ2xvc2UoKSwgYW5kCiAvLyBTdHJFcnJvcigpIGFyZW4ndCBuZWVkZWQgb24g
V2luZG93cyBDRSBhdCB0aGlzIHRpbWUgYW5kIHRodXMgbm90CiAvLyBkZWZpbmVkIHRoZXJlLgpA
QCAtMjUxMiw3ICsyMDY4LDE1IEBAIGlubGluZSBjb25zdCBjaGFyKiBTdHJOQ3B5KGNoYXIqIGRl
c3QsIGNvbnN0IGNoYXIqIHNyYywgc2l6ZV90IG4pIHsKIGlubGluZSBpbnQgQ2hEaXIoY29uc3Qg
Y2hhciogZGlyKSB7IHJldHVybiBjaGRpcihkaXIpOyB9CiAjZW5kaWYKIGlubGluZSBGSUxFKiBG
T3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlKSB7CisjaWYgR1RFU1RfT1Nf
V0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5HVworICBzdHJ1Y3Qgd2NoYXJfY29kZWN2
dCA6IHB1YmxpYyBzdGQ6OmNvZGVjdnQ8d2NoYXJfdCwgY2hhciwgc3RkOjptYnN0YXRlX3Q+IHt9
OworICBzdGQ6OndzdHJpbmdfY29udmVydDx3Y2hhcl9jb2RlY3Z0PiBjb252ZXJ0ZXI7CisgIHN0
ZDo6d3N0cmluZyB3aWRlX3BhdGggPSBjb252ZXJ0ZXIuZnJvbV9ieXRlcyhwYXRoKTsKKyAgc3Rk
Ojp3c3RyaW5nIHdpZGVfbW9kZSA9IGNvbnZlcnRlci5mcm9tX2J5dGVzKG1vZGUpOworICByZXR1
cm4gX3dmb3Blbih3aWRlX3BhdGguY19zdHIoKSwgd2lkZV9tb2RlLmNfc3RyKCkpOworI2Vsc2Ug
IC8vIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKICAgcmV0dXJu
IGZvcGVuKHBhdGgsIG1vZGUpOworI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVT
VF9PU19XSU5ET1dTX01JTkdXCiB9CiAjaWYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiBpbmxp
bmUgRklMRSAqRlJlb3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlLCBGSUxF
KiBzdHJlYW0pIHsKQEAgLTI1MzIsMTUgKzIwOTYsMTYgQEAgaW5saW5lIGludCBDbG9zZShpbnQg
ZmQpIHsgcmV0dXJuIGNsb3NlKGZkKTsgfQogaW5saW5lIGNvbnN0IGNoYXIqIFN0ckVycm9yKGlu
dCBlcnJudW0pIHsgcmV0dXJuIHN0cmVycm9yKGVycm51bSk7IH0KICNlbmRpZgogaW5saW5lIGNv
bnN0IGNoYXIqIEdldEVudihjb25zdCBjaGFyKiBuYW1lKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JU
Ci0gIC8vIFdlIGFyZSBvbiBXaW5kb3dzIENFLCB3aGljaCBoYXMgbm8gZW52aXJvbm1lbnQgdmFy
aWFibGVzLgorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1Nf
UEhPTkUgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1NfUlQgfHwgR1RFU1RfT1NfRVNQODI2Ngor
ICAvLyBXZSBhcmUgb24gYW4gZW1iZWRkZWQgcGxhdGZvcm0sIHdoaWNoIGhhcyBubyBlbnZpcm9u
bWVudCB2YXJpYWJsZXMuCiAgIHN0YXRpY19jYXN0PHZvaWQ+KG5hbWUpOyAgLy8gVG8gcHJldmVu
dCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5nLgotICByZXR1cm4gTlVMTDsKKyAgcmV0dXJuIG51
bGxwdHI7CiAjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX1N1bk9TXzVf
OCkgfHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKICAgLy8gRW52aXJvbm1lbnQgdmFyaWFibGVzIHdo
aWNoIHdlIHByb2dyYW1tYXRpY2FsbHkgY2xlYXIgd2lsbCBiZSBzZXQgdG8gdGhlCiAgIC8vIGVt
cHR5IHN0cmluZyByYXRoZXIgdGhhbiB1bnNldCAoTlVMTCkuICBIYW5kbGUgdGhhdCBjYXNlLgog
ICBjb25zdCBjaGFyKiBjb25zdCBlbnYgPSBnZXRlbnYobmFtZSk7Ci0gIHJldHVybiAoZW52ICE9
IE5VTEwgJiYgZW52WzBdICE9ICdcMCcpID8gZW52IDogTlVMTDsKKyAgcmV0dXJuIChlbnYgIT0g
bnVsbHB0ciAmJiBlbnZbMF0gIT0gJ1wwJykgPyBlbnYgOiBudWxscHRyOwogI2Vsc2UKICAgcmV0
dXJuIGdldGVudihuYW1lKTsKICNlbmRpZgpAQCAtMjU1Miw5ICsyMTE3LDkgQEAgR1RFU1RfRElT
QUJMRV9NU0NfREVQUkVDQVRFRF9QT1BfKCkKIC8vIFdpbmRvd3MgQ0UgaGFzIG5vIEMgbGlicmFy
eS4gVGhlIGFib3J0KCkgZnVuY3Rpb24gaXMgdXNlZCBpbgogLy8gc2V2ZXJhbCBwbGFjZXMgaW4g
R29vZ2xlIFRlc3QuIFRoaXMgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgYSByZWFzb25hYmxlCiAv
LyBpbWl0YXRpb24gb2Ygc3RhbmRhcmQgYmVoYXZpb3VyLgotdm9pZCBBYm9ydCgpOworW1tub3Jl
dHVybl1dIHZvaWQgQWJvcnQoKTsKICNlbHNlCi1pbmxpbmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQo
KTsgfQorW1tub3JldHVybl1dIGlubGluZSB2b2lkIEFib3J0KCkgeyBhYm9ydCgpOyB9CiAjZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKIH0gIC8vIG5hbWVzcGFjZSBwb3NpeApA
QCAtMjU2NCwyNyArMjEyOSwyNCBAQCBpbmxpbmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQoKTsgfQog
Ly8gTVNWQy1iYXNlZCBwbGF0Zm9ybXMuICBXZSBtYXAgdGhlIEdURVNUX1NOUFJJTlRGXyBtYWNy
byB0byB0aGUgYXBwcm9wcmlhdGUKIC8vIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGFjaGlldmUgdGhh
dC4gIFdlIHVzZSBtYWNybyBkZWZpbml0aW9uIGhlcmUgYmVjYXVzZQogLy8gc25wcmludGYgaXMg
YSB2YXJpYWRpYyBmdW5jdGlvbi4KLSNpZiBfTVNDX1ZFUiA+PSAxNDAwICYmICFHVEVTVF9PU19X
SU5ET1dTX01PQklMRQorI2lmIF9NU0NfVkVSICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQog
Ly8gTVNWQyAyMDA1IGFuZCBhYm92ZSBzdXBwb3J0IHZhcmlhZGljIG1hY3Jvcy4KICMgZGVmaW5l
IEdURVNUX1NOUFJJTlRGXyhidWZmZXIsIHNpemUsIGZvcm1hdCwgLi4uKSBcCiAgICAgIF9zbnBy
aW50Zl9zKGJ1ZmZlciwgc2l6ZSwgc2l6ZSwgZm9ybWF0LCBfX1ZBX0FSR1NfXykKICNlbGlmIGRl
ZmluZWQoX01TQ19WRVIpCi0vLyBXaW5kb3dzIENFIGRvZXMgbm90IGRlZmluZSBfc25wcmludGZf
cyBhbmQgTVNWQyBwcmlvciB0byAyMDA1IGRvZXNuJ3QKLS8vIGNvbXBsYWluIGFib3V0IF9zbnBy
aW50Zi4KKy8vIFdpbmRvd3MgQ0UgZG9lcyBub3QgZGVmaW5lIF9zbnByaW50Zl9zCiAjIGRlZmlu
ZSBHVEVTVF9TTlBSSU5URl8gX3NucHJpbnRmCiAjZWxzZQogIyBkZWZpbmUgR1RFU1RfU05QUklO
VEZfIHNucHJpbnRmCiAjZW5kaWYKIAotLy8gVGhlIG1heGltdW0gbnVtYmVyIGEgQmlnZ2VzdElu
dCBjYW4gcmVwcmVzZW50LiAgVGhpcyBkZWZpbml0aW9uCi0vLyB3b3JrcyBubyBtYXR0ZXIgQmln
Z2VzdEludCBpcyByZXByZXNlbnRlZCBpbiBvbmUncyBjb21wbGVtZW50IG9yCi0vLyB0d28ncyBj
b21wbGVtZW50LgorLy8gVGhlIGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUgY29tcGls
ZXIgc3VwcG9ydHMuCiAvLwotLy8gV2UgY2Fubm90IHJlbHkgb24gbnVtZXJpY19saW1pdHMgaW4g
U1RMLCBhcyBfX2ludDY0IGFuZCBsb25nIGxvbmcKLS8vIGFyZSBub3QgcGFydCBvZiBzdGFuZGFy
ZCBDKysgYW5kIG51bWVyaWNfbGltaXRzIGRvZXNuJ3QgbmVlZCB0byBiZQotLy8gZGVmaW5lZCBm
b3IgdGhlbS4KLWNvbnN0IEJpZ2dlc3RJbnQga01heEJpZ2dlc3RJbnQgPQotICAgIH4oc3RhdGlj
X2Nhc3Q8QmlnZ2VzdEludD4oMSkgPDwgKDgqc2l6ZW9mKEJpZ2dlc3RJbnQpIC0gMSkpOworLy8g
bG9uZyBsb25nIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVhc3QgNjQtYml0cyBpbiBDKysxMS4K
K3VzaW5nIEJpZ2dlc3RJbnQgPSBsb25nIGxvbmc7ICAvLyBOT0xJTlQKKworLy8gVGhlIG1heGlt
dW0gbnVtYmVyIGEgQmlnZ2VzdEludCBjYW4gcmVwcmVzZW50LgorY29uc3RleHByIEJpZ2dlc3RJ
bnQga01heEJpZ2dlc3RJbnQgPSAoc3RkOjpudW1lcmljX2xpbWl0czxCaWdnZXN0SW50Pjo6bWF4
KSgpOwogCiAvLyBUaGlzIHRlbXBsYXRlIGNsYXNzIHNlcnZlcyBhcyBhIGNvbXBpbGUtdGltZSBm
dW5jdGlvbiBmcm9tIHNpemUgdG8KIC8vIHR5cGUuICBJdCBtYXBzIGEgc2l6ZSBpbiBieXRlcyB0
byBhIHByaW1pdGl2ZSB0eXBlIHdpdGggdGhhdApAQCAtMjYwOSw0MCArMjE3MSwyNyBAQCBjbGFz
cyBUeXBlV2l0aFNpemUgewogIHB1YmxpYzoKICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgdXNlciBm
cm9tIHVzaW5nIFR5cGVXaXRoU2l6ZTxOPiB3aXRoIGluY29ycmVjdAogICAvLyB2YWx1ZXMgb2Yg
Ti4KLSAgdHlwZWRlZiB2b2lkIFVJbnQ7CisgIHVzaW5nIFVJbnQgPSB2b2lkOwogfTsKIAogLy8g
VGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDQuCiB0ZW1wbGF0ZSA8PgogY2xhc3MgVHlwZVdp
dGhTaXplPDQ+IHsKICBwdWJsaWM6Ci0gIC8vIHVuc2lnbmVkIGludCBoYXMgc2l6ZSA0IGluIGJv
dGggZ2NjIGFuZCBNU1ZDLgotICAvLwotICAvLyBBcyBiYXNlL2Jhc2ljdHlwZXMuaCBkb2Vzbid0
IGNvbXBpbGUgb24gV2luZG93cywgd2UgY2Fubm90IHVzZQotICAvLyB1aW50MzIsIHVpbnQ2NCwg
YW5kIGV0YyBoZXJlLgotICB0eXBlZGVmIGludCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50
IFVJbnQ7CisgIHVzaW5nIEludCA9IHN0ZDo6aW50MzJfdDsKKyAgdXNpbmcgVUludCA9IHN0ZDo6
dWludDMyX3Q7CiB9OwogCiAvLyBUaGUgc3BlY2lhbGl6YXRpb24gZm9yIHNpemUgOC4KIHRlbXBs
YXRlIDw+CiBjbGFzcyBUeXBlV2l0aFNpemU8OD4gewogIHB1YmxpYzoKLSNpZiBHVEVTVF9PU19X
SU5ET1dTCi0gIHR5cGVkZWYgX19pbnQ2NCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2
NCBVSW50OwotI2Vsc2UKLSAgdHlwZWRlZiBsb25nIGxvbmcgSW50OyAgLy8gTk9MSU5UCi0gIHR5
cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVJbnQ7ICAvLyBOT0xJTlQKLSNlbmRpZiAgLy8gR1RF
U1RfT1NfV0lORE9XUworICB1c2luZyBJbnQgPSBzdGQ6OmludDY0X3Q7CisgIHVzaW5nIFVJbnQg
PSBzdGQ6OnVpbnQ2NF90OwogfTsKIAogLy8gSW50ZWdlciB0eXBlcyBvZiBrbm93biBzaXplcy4K
LXR5cGVkZWYgVHlwZVdpdGhTaXplPDQ+OjpJbnQgSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6
ZTw0Pjo6VUludCBVSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6SW50IEludDY0Owot
dHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OlVJbnQgVUludDY0OwotdHlwZWRlZiBUeXBlV2l0aFNp
emU8OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNv
bmRzLgordXNpbmcgVGltZUluTWlsbGlzID0gaW50NjRfdDsgIC8vIFJlcHJlc2VudHMgdGltZSBp
biBtaWxsaXNlY29uZHMuCiAKIC8vIFV0aWxpdGllcyBmb3IgY29tbWFuZCBsaW5lIGZsYWdzIGFu
ZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAKQEAgLTI2NjEsNyArMjIxMCw3IEBAIHR5cGVkZWYg
VHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50cyB0aW1lIGlu
IG1pbGxpc2Vjb25kcy4KIC8vIE1hY3JvcyBmb3IgZGVjbGFyaW5nIGZsYWdzLgogIyBkZWZpbmUg
R1RFU1RfREVDTEFSRV9ib29sXyhuYW1lKSBHVEVTVF9BUElfIGV4dGVybiBib29sIEdURVNUX0ZM
QUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfaW50MzJfKG5hbWUpIFwKLSAgICBHVEVT
VF9BUElfIGV4dGVybiA6OnRlc3Rpbmc6OmludGVybmFsOjpJbnQzMiBHVEVTVF9GTEFHKG5hbWUp
CisgICAgR1RFU1RfQVBJXyBleHRlcm4gc3RkOjppbnQzMl90IEdURVNUX0ZMQUcobmFtZSkKICMg
ZGVmaW5lIEdURVNUX0RFQ0xBUkVfc3RyaW5nXyhuYW1lKSBcCiAgICAgR1RFU1RfQVBJXyBleHRl
cm4gOjpzdGQ6OnN0cmluZyBHVEVTVF9GTEFHKG5hbWUpCiAKQEAgLTI2NjksNyArMjIxOCw3IEBA
IHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50
cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KICMgZGVmaW5lIEdURVNUX0RFRklORV9ib29sXyhuYW1l
LCBkZWZhdWx0X3ZhbCwgZG9jKSBcCiAgICAgR1RFU1RfQVBJXyBib29sIEdURVNUX0ZMQUcobmFt
ZSkgPSAoZGVmYXVsdF92YWwpCiAjIGRlZmluZSBHVEVTVF9ERUZJTkVfaW50MzJfKG5hbWUsIGRl
ZmF1bHRfdmFsLCBkb2MpIFwKLSAgICBHVEVTVF9BUElfIDo6dGVzdGluZzo6aW50ZXJuYWw6Oklu
dDMyIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCisgICAgR1RFU1RfQVBJXyBzdGQ6
OmludDMyX3QgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKICMgZGVmaW5lIEdURVNU
X0RFRklORV9zdHJpbmdfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKICAgICBHVEVTVF9BUElf
IDo6c3RkOjpzdHJpbmcgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKIApAQCAtMjY4
NCwxOSArMjIzMywxNTIgQEAgdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OkludCBUaW1lSW5NaWxs
aXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzLgogLy8gUGFyc2VzICdzdHIn
IGZvciBhIDMyLWJpdCBzaWduZWQgaW50ZWdlci4gIElmIHN1Y2Nlc3NmdWwsIHdyaXRlcyB0aGUg
cmVzdWx0CiAvLyB0byAqdmFsdWUgYW5kIHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGxlYXZlcyAq
dmFsdWUgdW5jaGFuZ2VkIGFuZCByZXR1cm5zCiAvLyBmYWxzZS4KLS8vIEZJWE1FOiBGaW5kIGEg
YmV0dGVyIHdheSB0byByZWZhY3RvciBmbGFnIGFuZCBlbnZpcm9ubWVudCBwYXJzaW5nCi0vLyBv
dXQgb2YgYm90aCBndGVzdC1wb3J0LmNjIGFuZCBndGVzdC5jYyB0byBhdm9pZCBleHBvcnRpbmcg
dGhpcyB1dGlsaXR5Ci0vLyBmdW5jdGlvbi4KLWJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdl
JiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQzMiogdmFsdWUpOworR1RFU1RfQVBJXyBi
b29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIqIHN0ciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIHZhbHVlKTsKIAotLy8gUGFyc2Vz
IGEgYm9vbC9JbnQzMi9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy8vIFBh
cnNlcyBhIGJvb2wvaW50MzJfdC9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUK
IC8vIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIEdvb2dsZSBUZXN0IGZsYWcuCiBib29sIEJv
b2xGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgYm9vbCBkZWZhdWx0X3ZhbCk7Ci1HVEVT
VF9BUElfIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRl
ZmF1bHRfdmFsKTsKK0dURVNUX0FQSV8gaW50MzJfdCBJbnQzMkZyb21HVGVzdEVudihjb25zdCBj
aGFyKiBmbGFnLCBpbnQzMl90IGRlZmF1bHRfdmFsKTsKIHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdB
bHNvQ2hlY2tFbnZWYXIoKTsKIGNvbnN0IGNoYXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBj
aGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZhdWx0X3ZhbCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KKyNpZiAhZGVmaW5lZChHVEVTVF9JTlRF
Uk5BTF9ERVBSRUNBVEVEKQorCisvLyBJbnRlcm5hbCBNYWNybyB0byBtYXJrIGFuIEFQSSBkZXBy
ZWNhdGVkLCBmb3IgZ29vZ2xldGVzdCB1c2FnZSBvbmx5CisvLyBVc2FnZTogY2xhc3MgR1RFU1Rf
SU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSBNeUNsYXNzIG9yCisvLyBHVEVTVF9JTlRFUk5B
TF9ERVBSRUNBVEVEKG1lc3NhZ2UpIDxyZXR1cm5fdHlwZT4gbXlGdW5jdGlvbigpOyBFdmVyeSB1
c2FnZSBvZgorLy8gYSBkZXByZWNhdGVkIGVudGl0eSB3aWxsIHRyaWdnZXIgYSB3YXJuaW5nIHdo
ZW4gY29tcGlsZWQgd2l0aAorLy8gYC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNgIG9wdGlvbiAo
Y2xhbmcsIGdjYywgYW55IF9fR05VQ19fIGNvbXBpbGVyKS4KKy8vIEZvciBtc3ZjIC9XMyBvcHRp
b24gd2lsbCBuZWVkIHRvIGJlIHVzZWQKKy8vIE5vdGUgdGhhdCBmb3IgJ290aGVyJyBjb21waWxl
cnMgdGhpcyBtYWNybyBldmFsdWF0ZXMgdG8gbm90aGluZyB0byBwcmV2ZW50CisvLyBjb21waWxh
dGlvbnMgZXJyb3JzLgorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEdURVNUX0lOVEVS
TkFMX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3NhZ2UpKQor
I2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfREVQUkVDQVRF
RChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyNlbHNlCisj
ZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZgorCisjZW5k
aWYgIC8vICFkZWZpbmVkKEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQpCisKKyNpZiBHVEVTVF9I
QVNfQUJTTAorLy8gQWx3YXlzIHVzZSBhYnNsOjphbnkgZm9yIFVuaXZlcnNhbFByaW50ZXI8PiBz
cGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBv
cnQuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19BTlkgMQorI2luY2x1ZGUgImFic2wvdHlw
ZXMvYW55LmgiCituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgaW50ZXJuYWwgewordXNp
bmcgQW55ID0gOjphYnNsOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCisjZWxzZQorI2lmZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19p
bmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9y
IEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6YW55IGZvciBVbml2ZXJzYWxQcmludGVyPD4KKy8v
IHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAxCisjaW5j
bHVkZSA8YW55PgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3Vz
aW5nIEFueSA9IDo6c3RkOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCisvLyBUaGUgY2FzZSB3aGVyZSBhYnNsIGlzIGNvbmZpZ3VyZWQgTk9U
IHRvIGFsaWFzIHN0ZDo6YW55IGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2VuZGlmICAvLyBfX2hh
c19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisjZW5kaWYgIC8vIF9f
aGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKworI2lmIEdURVNUX0hBU19B
QlNMCisvLyBBbHdheXMgdXNlIGFic2w6Om9wdGlvbmFsIGZvciBVbml2ZXJzYWxQcmludGVyPD4g
c3BlY2lhbGl6YXRpb25zIGlmCisvLyBnb29nbGV0ZXN0IGlzIGJ1aWx0IHdpdGggYWJzbCBzdXBw
b3J0LgorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwgMQorI2luY2x1ZGUgImFi
c2wvdHlwZXMvb3B0aW9uYWwuaCIKK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRl
cm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFsID0gOjphYnNsOjpv
cHRpb25hbDxUPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKKyNlbHNlCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPG9w
dGlvbmFsPikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysx
NyBhbmQgaGlnaGVyIHVzZSBzdGQ6Om9wdGlvbmFsIGZvciBVbml2ZXJzYWxQcmludGVyPD4KKy8v
IHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMIDEK
KyNpbmNsdWRlIDxvcHRpb25hbD4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRl
cm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFsID0gOjpzdGQ6Om9w
dGlvbmFsPFQ+OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVz
dGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBz
dGQ6Om9wdGlvbmFsIGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2VuZGlmICAvLyBfX2hhc19pbmNs
dWRlKDxvcHRpb25hbD4pICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19o
YXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFTX0FC
U0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgZm9yIE1hdGNoZXI8PiBzcGVjaWFs
aXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBvcnQuCisj
IGRlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcgMQorI2luY2x1ZGUgImFic2wv
c3RyaW5ncy9zdHJpbmdfdmlldy5oIgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGlu
dGVybmFsIHsKK3VzaW5nIFN0cmluZ1ZpZXcgPSA6OmFic2w6OnN0cmluZ192aWV3OworfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworI2Vsc2UKKyMgaWZk
ZWYgX19oYXNfaW5jbHVkZQorIyAgIGlmIF9faGFzX2luY2x1ZGUoPHN0cmluZ192aWV3PikgJiYg
X19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysxNyBhbmQgaGlnaGVy
IHVzZSBzdGQ6OnN0cmluZ192aWV3IGZvciBNYXRjaGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4K
KyMgICBkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXIDEKKyNpbmNsdWRlIDxz
dHJpbmdfdmlldz4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit1
c2luZyBTdHJpbmdWaWV3ID0gOjpzdGQ6OnN0cmluZ192aWV3OworfSAgLy8gbmFtZXNwYWNlIGlu
dGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBp
cyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnN0cmluZ192aWV3IGlzIG5vdAorLy8gc3Vw
cG9ydGVkLgorIyAgZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUoPHN0cmluZ192aWV3PikgJiYgX19j
cGx1c3BsdXMgPj0gMjAxNzAzTAorIyBlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAv
LyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFTX0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJz
bDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+IHNwZWNpYWxpemF0aW9ucyBpZiBnb29n
bGV0ZXN0CisvLyBpcyBidWlsdCB3aXRoIGFic2wgc3VwcG9ydC4KKyNkZWZpbmUgR1RFU1RfSU5U
RVJOQUxfSEFTX1ZBUklBTlQgMQorI2luY2x1ZGUgImFic2wvdHlwZXMvdmFyaWFudC5oIgorbmFt
ZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFt
ZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6YWJzbDo6dmFyaWFudDxULi4uPjsKK30gIC8vIG5h
bWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKyNlbHNlCisjaWZkZWYg
X19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPHZhcmlhbnQ+KSAmJiBfX2NwbHVzcGx1
cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9yIEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6
dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+CisvLyBzcGVjaWFsaXphdGlvbnMuCisjZGVm
aW5lIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIDEKKyNpbmNsdWRlIDx2YXJpYW50PgorbmFt
ZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFt
ZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6c3RkOjp2YXJpYW50PFQuLi4+OworfSAgLy8gbmFt
ZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hl
cmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnZhcmlhbnQgaXMgbm90IHN1
cHBvcnRlZC4KKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZSg8dmFyaWFudD4pICYmIF9fY3BsdXNw
bHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVT
VF9IQVNfQUJTTAorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaAppbmRleCA0YzliNjI2MmMz
YzEwMzcyNmFhM2NhYjRjMTk5OTViYWVmOTU4Yjk4Li4xMGY3NzRmOTY2MDZlNWI5Yjg3YmEzNGVj
N2M1MmJhNDc1YWQ4NWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgKQEAgLTM4LDggKzM4
LDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCi0jZGVmaW5lIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjaWZuZGVmIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KKyNkZWZpbmUgR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXwogCiAjaWZkZWYgX19C
T1JMQU5EQ19fCiAvLyBzdHJpbmcuaCBpcyBub3QgZ3VhcmFudGVlZCB0byBwcm92aWRlIHN0cmNw
eSBvbiBDKysgQnVpbGRlci4KQEAgLTQ3LDYgKzQ3LDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxzdHJpbmc+CiAKICNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCkBAIC05NCw3ICs5NSw4IEBAIGNsYXNz
IEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGNvbnN0IGNoYXIqIFV0ZjE2VG9BbnNpKExQ
Q1dTVFIgdXRmMTZfc3RyKTsKICNlbmRpZgogCi0gIC8vIENvbXBhcmVzIHR3byBDIHN0cmluZ3Mu
ICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAvLyBDb21w
YXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZXkgaGF2
ZSB0aGUgc2FtZQorICAvLyBjb250ZW50LgogICAvLwogICAvLyBVbmxpa2Ugc3RyY21wKCksIHRo
aXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQogICAvLyBOVUxMIEMg
c3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywK
QEAgLTEwNywxNiArMTA5LDE2IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgLy8gcmV0
dXJuZWQuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBTaG93V2lkZUNTdHJpbmcoY29uc3Qgd2NoYXJf
dCogd2lkZV9jX3N0cik7CiAKLSAgLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0
dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUKLSAgLy8gY29udGVudC4KKyAgLy8gQ29t
cGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRo
ZXkgaGF2ZSB0aGUKKyAgLy8gc2FtZSBjb250ZW50LgogICAvLwogICAvLyBVbmxpa2Ugd2NzY21w
KCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQogICAvLyBO
VUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0
cmluZywKICAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiAgIHN0YXRpYyBib29sIFdp
ZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywgY29uc3Qgd2NoYXJfdCogcmhzKTsK
IAotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0
cnVlIGlmZiB0aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgLy8gQ29tcGFyZXMg
dHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHN0
cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCiAg
IC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5V
TEwgQyBzdHJpbmcsCkBAIC0xMjQsOCArMTI2LDggQEAgY2xhc3MgR1RFU1RfQVBJXyBTdHJpbmcg
ewogICBzdGF0aWMgYm9vbCBDYXNlSW5zZW5zaXRpdmVDU3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIq
IGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiByaHMpOwogCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3Jpbmcg
Y2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQu
CisgIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4K
ICAgLy8KICAgLy8gVW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxl
IE5VTEwgYXJndW1lbnQocykuCiAgIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRp
ZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgd2lkZSBDIHN0cmluZywKQEAgLTEzOSwxNyArMTQxLDIz
IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGJvb2wgQ2FzZUluc2Vuc2l0
aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90KiByaHMpOwogCi0g
IC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBlbmRzIHdpdGggdGhlIGdpdmVu
IHN1ZmZpeCwgaWdub3JpbmcKLSAgLy8gY2FzZS4gQW55IHN0cmluZyBpcyBjb25zaWRlcmVkIHRv
IGVuZCB3aXRoIGFuIGVtcHR5IHN1ZmZpeC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSBnaXZlbiBzdHJpbmcgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsCisgIC8vIGln
bm9yaW5nIGNhc2UuIEFueSBzdHJpbmcgaXMgY29uc2lkZXJlZCB0byBlbmQgd2l0aCBhbiBlbXB0
eSBzdWZmaXguCiAgIHN0YXRpYyBib29sIEVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogICAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcmIHN0ciwgY29uc3Qgc3RkOjpzdHJpbmcmIHN1ZmZpeCk7CiAKICAg
Ly8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiUwMmQiLgogICBzdGF0aWMgc3RkOjpzdHJpbmcg
Rm9ybWF0SW50V2lkdGgyKGludCB2YWx1ZSk7ICAvLyAiJTAyZCIgZm9yIHdpZHRoID09IDIKIAor
ICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSB0byBnaXZlbiB3aWR0aCB3aXRoIGxlYWRpbmcgemVy
b3MuCisgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRJbnRXaWR0aE4oaW50IHZhbHVlLCBpbnQg
d2lkdGgpOworCiAgIC8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCiAgIHN0YXRpYyBz
dGQ6OnN0cmluZyBGb3JtYXRIZXhJbnQoaW50IHZhbHVlKTsKIAorICAvLyBGb3JtYXRzIGFuIGlu
dCB2YWx1ZSBhcyAiJVgiLgorICBzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0SGV4VUludDMyKHVp
bnQzMl90IHZhbHVlKTsKKwogICAvLyBGb3JtYXRzIGEgYnl0ZSBhcyAiJTAyWCIuCiAgIHN0YXRp
YyBzdGQ6OnN0cmluZyBGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUpOwogCkBAIC0xNjQs
NCArMTcyLDQgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6
OnN0ZDo6c3RyaW5nc3RyZWFtKiBzdHJlYW0pOwogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9
ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhhM2E2YTAxZmFjNzU1MTdlYWI4MzEzMTI0Mjdl
MTVkNWU0ZWJiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1
cGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIxICswLDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMg
R0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC10dXBsZS5oLnB1bXAK
LS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQotLy8gQ29weXJpZ2h0IDIwMDkgR29vZ2xlIElu
Yy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUg
bmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8gR09PR0xFVEVTVF9D
TTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6OnN0ZDo6cGFpci4K
LQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcgdGhhdCBwcmV2ZW50
cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFzIGEgZnJpZW5kIChp
dCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwotLy8gYnlwYXNzZXMg
dGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3RoZXJ3aXNlIGJl
Ci0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMgPCAxMiBhbHNv
IGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IChkZWZp
bmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZpbmUgR1RFU1Rf
REVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9E
RUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFN
RVNfKFUpPiBmcmllbmQgY2xhc3MgdHVwbGU7IFwKLSAgIHByaXZhdGU6Ci0jZW5kaWYKLQotLy8g
VmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAxMyBkZWZpbmUgc3ltYm9scyBpbiBzdGQ6
OnRyMSB0aGF0IGNvbmZsaWN0Ci0vLyB3aXRoIG91ciBvd24gZGVmaW5pdGlvbnMuIFRoZXJlZm9y
ZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90IHdvcmsgb24KLS8vIHRob3NlIGNvbXBpbGVy
cy4KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwICAvKiAxNjAwIGlz
IFZpc3VhbCBTdHVkaW8gMjAxMCAqLwotIyBlcnJvciAiZ3Rlc3QncyB0dXBsZSBkb2Vzbid0IGNv
bXBpbGUgb24gVmlzdWFsIFN0dWRpbyAyMDEwIG9yIGxhdGVyLiBcCi1HVEVTVF9VU0VfT1dOX1RS
MV9UVVBMRSBtdXN0IGJlIHNldCB0byAwIG9uIHRob3NlIGNvbXBpbGVycy4iCi0jZW5kaWYKLQot
Ly8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZpbmUg
R1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotI2RlZmluZSBHVEVTVF8xX1RVUExFXyhUKSB0dXBs
ZTxUIyMwLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwg
dm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfMl9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwg
dm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0j
ZGVmaW5lIEdURVNUXzNfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIHZvaWQsIHZv
aWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF80
X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCB2b2lkLCB2b2lkLCB2b2lk
LCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfNV9UVVBMRV8oVCkgdHVw
bGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQs
IHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzZfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEs
IFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgot
I2RlZmluZSBHVEVTVF83X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCBU
IyM0LCBUIyM1LCBUIyM2LCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1Rf
OF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMj
NiwgXAotICAgIFQjIzcsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzlfVFVQTEVfKFQpIHR1
cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIFQjIzYsIFwKLSAgICBUIyM3
LCBUIyM4LCB2b2lkPgotI2RlZmluZSBHVEVTVF8xMF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMj
MSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMjNiwgXAotICAgIFQjIzcsIFQjIzgsIFQjIzk+
Ci0KLS8vIEdURVNUX25fVFlQRU5BTUVTXyhUKSBkZWNsYXJlcyBhIGxpc3Qgb2YgbiB0eXBlbmFt
ZXMuCi0jZGVmaW5lIEdURVNUXzBfVFlQRU5BTUVTXyhUKQotI2RlZmluZSBHVEVTVF8xX1RZUEVO
QU1FU18oVCkgdHlwZW5hbWUgVCMjMAotI2RlZmluZSBHVEVTVF8yX1RZUEVOQU1FU18oVCkgdHlw
ZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMQotI2RlZmluZSBHVEVTVF8zX1RZUEVOQU1FU18oVCkg
dHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMgotI2RlZmluZSBHVEVT
VF80X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUg
VCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMKLSNkZWZpbmUgR1RFU1RfNV9UWVBFTkFNRVNfKFQp
IHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBl
bmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0Ci0jZGVmaW5lIEdURVNUXzZfVFlQRU5BTUVTXyhUKSB0
eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5h
bWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNQotI2RlZmluZSBHVEVTVF83X1RZ
UEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwg
XAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1lIFQjIzUsIHR5cGVu
YW1lIFQjIzYKLSNkZWZpbmUgR1RFU1RfOF9UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5
cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFt
ZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0eXBlbmFtZSBUIyM2LCB0eXBlbmFtZSBUIyM3Ci0jZGVm
aW5lIEdURVNUXzlfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0
eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5h
bWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVuYW1lIFQjIzcsIHR5cGVuYW1lIFQj
IzgKLSNkZWZpbmUgR1RFU1RfMTBfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFt
ZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMj
NCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVuYW1lIFQjIzcsIHR5
cGVuYW1lIFQjIzgsIHR5cGVuYW1lIFQjIzkKLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBzdHVm
ZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBXZSBj
YW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBs
aWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMCA9IHZvaWQsIHR5cGVuYW1lIFQxID0gdm9pZCwgdHlwZW5hbWUgVDIg
PSB2b2lkLAotICAgIHR5cGVuYW1lIFQzID0gdm9pZCwgdHlwZW5hbWUgVDQgPSB2b2lkLCB0eXBl
bmFtZSBUNSA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDYgPSB2b2lkLCB0eXBlbmFtZSBUNyA9IHZv
aWQsIHR5cGVuYW1lIFQ4ID0gdm9pZCwKLSAgICB0eXBlbmFtZSBUOSA9IHZvaWQ+Ci1jbGFzcyB0
dXBsZTsKLQotLy8gQW55dGhpbmcgaW4gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIGlzIEdvb2ds
ZSBUZXN0J3MgSU5URVJOQUwKLS8vIElNUExFTUVOVEFUSU9OIERFVEFJTCBhbmQgTVVTVCBOT1Qg
QkUgVVNFRCBESVJFQ1RMWSBpbiB1c2VyIGNvZGUuCi1uYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwg
ewotCi0vLyBCeVJlZjxUPjo6dHlwZSBpcyBUIGlmIFQgaXMgYSByZWZlcmVuY2U7IG90aGVyd2lz
ZSBpdCdzIGNvbnN0IFQmLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQnlSZWYgeyB0
eXBlZGVmIGNvbnN0IFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotc3RydWN0IEJ5UmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0v
LyBBIGhhbmR5IHdyYXBwZXIgZm9yIEJ5UmVmLgotI2RlZmluZSBHVEVTVF9CWV9SRUZfKFQpIHR5
cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFsOjpCeVJlZjxUPjo6dHlwZQotCi0vLyBB
ZGRSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBU
Ji4gIFRoaXMKLS8vIGlzIHRoZSBzYW1lIGFzIHRyMTo6YWRkX3JlZmVyZW5jZTxUPjo6dHlwZS4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZiB7IHR5cGVkZWYgVCYgdHlwZTsg
fTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmPFQmPiB7
IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgZm9y
IEFkZFJlZi4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRl8oVCkgdHlwZW5hbWUgOjpzdGQ6OnRyMTo6
Z3Rlc3RfaW50ZXJuYWw6OkFkZFJlZjxUPjo6dHlwZQotCi0vLyBBIGhlbHBlciBmb3IgaW1wbGVt
ZW50aW5nIGdldDxrPigpLgotdGVtcGxhdGUgPGludCBrPiBjbGFzcyBHZXQ7Ci0KLS8vIEEgaGVs
cGVyIGZvciBpbXBsZW1lbnRpbmcgdHVwbGVfZWxlbWVudDxrLCBUPi4gIGtJbmRleFZhbGlkIGlz
IHRydWUKLS8vIGlmZiBrIDwgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdHVwbGUgdHlwZSBULgot
dGVtcGxhdGUgPGJvb2wga0luZGV4VmFsaWQsIGludCBrSW5kZXgsIGNsYXNzIFR1cGxlPgotc3Ry
dWN0IFR1cGxlRWxlbWVudDsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDAsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDEsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDIsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDMsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDQsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDUsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDYsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDcsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDgsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUOCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDksIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUOSB0eXBlOwotfTsKLQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRl
bXBsYXRlIDw+Ci1jbGFzcyB0dXBsZTw+IHsKLSBwdWJsaWM6Ci0gIHR1cGxlKCkge30KLSAgdHVw
bGUoY29uc3QgdHVwbGUmIC8qIHQgKi8pICB7fQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1
cGxlJiAvKiB0ICovKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQotdGVtcGxhdGUgPEdURVNUXzFf
VFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzFfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRl
bXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVw
bGUoKSA6IGYwXygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAp
IDogZjBfKGYwKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXykge30K
LQotICB0ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVT
VF8xX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShj
b25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RF
U1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzFfVFVQ
TEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVD
TEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhV
KT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzFfVFVQTEVfKFUpJiB0KSB7Ci0gICAg
ZjBfID0gdC5mMF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzJfVFVQTEVfKFQp
IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVy
bmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSB7fQotCi0gIGV4cGxpY2l0IHR1
cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSkgOiBmMF8oZjAp
LAotICAgICAgZjFfKGYxKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYw
XyksIGYxXyh0LmYxXykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFUpPgot
ICB0dXBsZShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1cGxlKGNv
bnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIDogZjBfKHAuZmlyc3QpLCBmMV8ocC5zZWNvbmQp
IHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZy
b20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYg
b3BlcmF0b3I9KGNvbnN0IEdURVNUXzJfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlG
cm9tKHQpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1
cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUxPiYgcCkgewotICAgIGYwXyA9
IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzJf
VFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzJfVFVQTEVfKFUp
JiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgcmV0dXJuICp0
aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
M19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfM19UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAg
dGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0
dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNU
X0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JF
Rl8oVDIpIGYyKSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMikge30KLQotICB0dXBsZShjb25z
dCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pIHt9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfM19U
VVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSB7fQotCi0g
IHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9y
PShjb25zdCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsK
LSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxH
VEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8zX1RV
UExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYy
XyA9IHQuZjJfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFf
OwotICBUMiBmMl87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFQpPgotY2xh
c3MgR1RFU1RfNF9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmll
bmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygp
LCBmMl8oKSwgZjNfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBm
MCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RF
U1RfQllfUkVGXyhUMykgZjMpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwKLSAgICAgIGYz
XyhmMykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzRfVFlQ
RU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIDogZjBfKHQu
ZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXykge30KLQotICB0
dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQot
Ci0gIHRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0o
Y29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0g
IH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RF
U1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNF9UVVBM
RV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8g
PSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBU
MCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNV9UVVBMRV8oVCkgewotIHB1Ymxp
YzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsK
LQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpIHt9Ci0KLSAg
ZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYx
LAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLAotICAg
ICAgR1RFU1RfQllfUkVGXyhUNCkgZjQpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNf
KGYzKSwgZjRfKGY0KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyks
IGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYzXyksCi0gICAgICBmNF8odC5mNF8pIHt9
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RF
U1RfNV9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwK
LSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0Xykge30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNv
bnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVT
VF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgR1RFU1RfNV9UVVBM
RV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNM
QVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFUp
PgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkmIHQpIHsKLSAgICBm
MF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18g
PSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBU
MCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF82X1RVUExFXyhU
KSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRl
cm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCksIGYyXygpLCBmM18oKSwgZjRf
KCksIGY1XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdU
RVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZ
X1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8o
VDUpIGY1KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksIGYzXyhmMyksIGY0XyhmNCksCi0g
ICAgICBmNV8oZjUpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwg
ZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1
Xyh0LmY1Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFUpPgotICB0dXBs
ZShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBm
Ml8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSB7fQot
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQp
OyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0
KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRl
IDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF82
X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAg
IGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1
XyA9IHQuZjVfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFf
OwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfN19UVVBMRV8oVCkgewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6
OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBm
NV8oKSwgZjZfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwg
R1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1Rf
QllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVG
XyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhm
MiksCi0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8oZjUpLCBmNl8oZjYpIHt9Ci0KLSAgdHVw
bGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwg
ZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2Xykge30K
LQotICB0ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVT
VF83X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLAot
ICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSB7fQot
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQp
OyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0
KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRl
IDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF83
X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAg
IGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1
XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0g
IFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBU
NSBmNV87Ci0gIFQ2IGY2XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVCk+
Ci1jbGFzcyBHVEVTVF84X1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+
IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwg
ZjFfKCksIGYyXygpLCBmM18oKSwgZjRfKCksIGY1XygpLCBmNl8oKSwgZjdfKCkge30KLQotICBl
eHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEs
Ci0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMsIEdURVNU
X0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVGXyhUNSkgZjUsIEdURVNUX0JZX1JF
Rl8oVDYpIGY2LAotICAgICAgR1RFU1RfQllfUkVGXyhUNykgZjcpIDogZjBfKGYwKSwgZjFfKGYx
KSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2XyhmNiksIGY3
XyhmNykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVf
KSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF84X1RZUEVO
QU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYw
XyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8p
LCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pIHt9Ci0KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0
ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNU
XzhfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RF
U1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzhfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSB7
Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0g
ICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAgZjVfID0gdC5mNV87Ci0gICAg
ZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci0g
IFQ1IGY1XzsKLSAgVDYgZjZfOwotICBUNyBmN187Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9U
WVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfOV9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVt
cGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBs
ZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3
XygpLCBmOF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBH
VEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9C
WV9SRUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9SRUZf
KFQ1KSBmNSwgR1RFU1RfQllfUkVGXyhUNikgZjYsIEdURVNUX0JZX1JFRl8oVDcpIGY3LAotICAg
ICAgR1RFU1RfQllfUkVGXyhUOCkgZjgpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNf
KGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2XyhmNiksIGY3XyhmNyksIGY4XyhmOCkg
e30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBm
Ml8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZf
KHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF85
X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSA6IGYw
Xyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pLCBmNF8o
dC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pLCBmOF8odC5mOF8pIHt9
Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20o
dCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3Bl
cmF0b3I9KGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9t
KHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxh
dGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNU
XzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0g
ICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAg
ZjVfID0gdC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0gICAgZjhf
ID0gdC5mOF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87
Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci0gIFQ1IGY1XzsKLSAgVDYgZjZfOwot
ICBUNyBmN187Ci0gIFQ4IGY4XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNf
KFQpPgotY2xhc3MgdHVwbGUgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQg
Y2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBm
Ml8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpLCBmOF8oKSwKLSAgICAgIGY5
XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZ
X1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8o
VDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1
LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNiwgR1RFU1RfQllfUkVGXyhUNykgZjcsCi0gICAgICBHVEVT
VF9CWV9SRUZfKFQ4KSBmOCwgR1RFU1RfQllfUkVGXyhUOSkgZjkpIDogZjBfKGYwKSwgZjFfKGYx
KSwgZjJfKGYyKSwKLSAgICAgIGYzXyhmMyksIGY0XyhmNCksIGY1XyhmNSksIGY2XyhmNiksIGY3
XyhmNyksIGY4XyhmOCksIGY5XyhmOSkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBm
MF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRf
KHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSwg
ZjlfKHQuZjlfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFUpPgotICB0
dXBsZShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFf
KSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xyks
IGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4XyksCi0gICAgICBmOV8odC5mOV8pIHt9
Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20o
dCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9w
ZXJhdG9yPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZy
b20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1w
bGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdU
RVNUXzEwX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFf
OwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwot
ICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9IHQuZjdfOwotICAg
IGY4XyA9IHQuZjhfOwotICAgIGY5XyA9IHQuZjlfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQot
Ci0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwot
ICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwotICBUOCBmOF87Ci0gIFQ5IGY5XzsKLX07
Ci0KLS8vIDYuMS4zLjIgVHVwbGUgY3JlYXRpb24gZnVuY3Rpb25zLgotCi0vLyBLbm93biBsaW1p
dGF0aW9uczogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIGFuCi0vLyBzdGQ6OnRyMTo6cmVmZXJl
bmNlX3dyYXBwZXI8VD4gdG8gbWFrZV90dXBsZSgpLiAgQW5kIHdlIGRvbid0Ci0vLyBpbXBsZW1l
bnQgdGllKCkuCi0KLWlubGluZSB0dXBsZTw+IG1ha2VfdHVwbGUoKSB7IHJldHVybiB0dXBsZTw+
KCk7IH0KLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8x
X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCkgewotICByZXR1cm4gR1RFU1RfMV9U
VVBMRV8oVCkoZjApOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFQpPgotaW5s
aW5lIEdURVNUXzJfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYg
ZjEpIHsKLSAgcmV0dXJuIEdURVNUXzJfVFVQTEVfKFQpKGYwLCBmMSk7Ci19Ci0KLXRlbXBsYXRl
IDxHVEVTVF8zX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfM19UVVBMRV8oVCkgbWFrZV90
dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyKSB7Ci0gIHJldHVy
biBHVEVTVF8zX1RVUExFXyhUKShmMCwgZjEsIGYyKTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzRf
VFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF80X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0
IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzKSB7
Ci0gIHJldHVybiBHVEVTVF80X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMyk7Ci19Ci0KLXRlbXBs
YXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfNV9UVVBMRV8oVCkgbWFr
ZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNv
bnN0IFQzJiBmMywgY29uc3QgVDQmIGY0KSB7Ci0gIHJldHVybiBHVEVTVF81X1RVUExFXyhUKShm
MCwgZjEsIGYyLCBmMywgZjQpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQp
PgotaW5saW5lIEdURVNUXzZfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25z
dCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwg
Y29uc3QgVDUmIGY1KSB7Ci0gIHJldHVybiBHVEVTVF82X1RVUExFXyhUKShmMCwgZjEsIGYyLCBm
MywgZjQsIGY1KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhUKT4KLWlubGlu
ZSBHVEVTVF83X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYx
LCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1
JiBmNSwgY29uc3QgVDYmIGY2KSB7Ci0gIHJldHVybiBHVEVTVF83X1RVUExFXyhUKShmMCwgZjEs
IGYyLCBmMywgZjQsIGY1LCBmNik7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18o
VCk+Ci1pbmxpbmUgR1RFU1RfOF9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNv
bnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0
LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29uc3QgVDcmIGY3KSB7Ci0gIHJldHVybiBH
VEVTVF84X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwgZjcpOwotfQotCi10
ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzlfVFVQTEVfKFQp
IG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAg
ICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1LCBjb25zdCBUNiYgZjYs
IGNvbnN0IFQ3JiBmNywKLSAgICBjb25zdCBUOCYgZjgpIHsKLSAgcmV0dXJuIEdURVNUXzlfVFVQ
TEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjgpOwotfQotCi10ZW1wbGF0
ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8xMF9UVVBMRV8oVCkgbWFr
ZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNv
bnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29u
c3QgVDcmIGY3LAotICAgIGNvbnN0IFQ4JiBmOCwgY29uc3QgVDkmIGY5KSB7Ci0gIHJldHVybiBH
VEVTVF8xMF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYsIGY3LCBmOCwgZjkp
OwotfQotCi0vLyA2LjEuMy4zIFR1cGxlIGhlbHBlciBjbGFzc2VzLgotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVHVwbGU+IHN0cnVjdCB0dXBsZV9zaXplOwotCi10ZW1wbGF0ZSA8R1RFU1RfMF9UWVBF
TkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfMF9UVVBMRV8oVCkgPiB7Ci0gIHN0
YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAwOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5B
TUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzFfVFVQTEVfKFQpID4gewotICBzdGF0
aWMgY29uc3QgaW50IHZhbHVlID0gMTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8yX1RZUEVOQU1F
U18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8yX1RVUExFXyhUKSA+IHsKLSAgc3RhdGlj
IGNvbnN0IGludCB2YWx1ZSA9IDI7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNf
KFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfM19UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBj
b25zdCBpbnQgdmFsdWUgPSAzOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhU
KT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzRfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29u
c3QgaW50IHZhbHVlID0gNDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+
Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF81X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0
IGludCB2YWx1ZSA9IDU7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgot
c3RydWN0IHR1cGxlX3NpemU8R1RFU1RfNl9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBp
bnQgdmFsdWUgPSA2OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhUKT4KLXN0
cnVjdCB0dXBsZV9zaXplPEdURVNUXzdfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50
IHZhbHVlID0gNzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVCk+Ci1zdHJ1
Y3QgdHVwbGVfc2l6ZTxHVEVTVF84X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2
YWx1ZSA9IDg7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotc3RydWN0
IHR1cGxlX3NpemU8R1RFU1RfOV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFs
dWUgPSA5OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3Qg
dHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFs
dWUgPSAxMDsKLX07Ci0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVw
bGVfZWxlbWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxl
bWVudDwKLSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0
eXBlIHR5cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0
eXBlbmFtZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVt
ZW50IGFjY2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotdGVtcGxhdGUgPD4K
LWNsYXNzIEdldDwwPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0
YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygwLCBUdXBsZSkpCi0gIEZp
ZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYwXzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUg
PGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5U
XygwLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjBf
OyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDE+IHsKLSBwdWJsaWM6Ci0gIHRlbXBs
YXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VM
RU1FTlRfKDEsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjFfOyB9ICAv
LyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9S
RUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBU
dXBsZSYgdCkgeyByZXR1cm4gdC5mMV87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8
Mj4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1Rf
QUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYg
dCkgeyByZXR1cm4gdC5mMl87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBs
ZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUp
KQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYyXzsgfQotfTsKLQot
dGVtcGxhdGUgPD4KLWNsYXNzIEdldDwzPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygzLCBU
dXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYzXzsgfSAgLy8gTk9MSU5UCi0K
LSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9U
VVBMRV9FTEVNRU5UXygzLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsg
cmV0dXJuIHQuZjNfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDQ+IHsKLSBwdWJs
aWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdU
RVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJu
IHQuZjRfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRp
YyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAgQ29uc3RG
aWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mNF87IH0KLX07Ci0KLXRlbXBsYXRlIDw+
Ci1jbGFzcyBHZXQ8NT4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBz
dGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNSwgVHVwbGUpKQotICBG
aWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNV87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRl
IDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVO
VF8oNSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmY1
XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw2PiB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9F
TEVNRU5UXyg2LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmY2XzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3Qg
VHVwbGUmIHQpIHsgcmV0dXJuIHQuZjZfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0
PDc+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUm
IHQpIHsgcmV0dXJuIHQuZjdfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcsIFR1cGxl
KSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mN187IH0KLX07Ci0K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OD4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOCwg
VHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mOF87IH0gIC8vIE5PTElOVAot
Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1Rf
VFVQTEVfRUxFTUVOVF8oOCwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmY4XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw5PiB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhH
VEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVy
biB0LmY5XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0
aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0gIENvbnN0
RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjlfOyB9Ci19OwotCi19ICAvLyBuYW1l
c3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8xMF9UWVBFTkFN
RVNfKFQpPgotR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfMTBf
VFVQTEVfKFQpKSkKLWdldChHVEVTVF8xMF9UVVBMRV8oVCkmIHQpIHsKLSAgcmV0dXJuIGd0ZXN0
X2ludGVybmFsOjpHZXQ8az46OkZpZWxkKHQpOwotfQotCi10ZW1wbGF0ZSA8aW50IGssIEdURVNU
XzEwX1RZUEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGss
ICBHVEVTVF8xMF9UVVBMRV8oVCkpKQotZ2V0KGNvbnN0IEdURVNUXzEwX1RVUExFXyhUKSYgdCkg
ewotICByZXR1cm4gZ3Rlc3RfaW50ZXJuYWw6OkdldDxrPjo6Q29uc3RGaWVsZCh0KTsKLX0KLQot
Ly8gNi4xLjMuNSBSZWxhdGlvbmFsIG9wZXJhdG9ycwotCi0vLyBXZSBvbmx5IGltcGxlbWVudCA9
PSBhbmQgIT0sIGFzIHdlIGRvbid0IGhhdmUgYSBuZWVkIGZvciB0aGUgcmVzdCB5ZXQuCi0KLW5h
bWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLS8vIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJh
dG9yPGssIGs+OjpFcSh0MSwgdDIpIHJldHVybnMgdHJ1ZSBpZiB0aGUKLS8vIGZpcnN0IGsgZmll
bGRzIG9mIHQxIGVxdWFscyB0aGUgZmlyc3QgayBmaWVsZHMgb2YgdDIuCi0vLyBTYW1lU2l6ZVR1
cGxlUHJlZml4Q29tcGFyYXRvcihrMSwgazIpIHdvdWxkIGJlIGEgY29tcGlsZXIgZXJyb3IgaWYK
LS8vIGsxICE9IGsyLgotdGVtcGxhdGUgPGludCBrU2l6ZTEsIGludCBrU2l6ZTI+Ci1zdHJ1Y3Qg
U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgU2Ft
ZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8MCwgMD4gewotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGUxLCBjbGFzcyBUdXBsZTI+Ci0gIHN0YXRpYyBib29sIEVxKGNvbnN0IFR1cGxlMSYgLyogdDEg
Ki8sIGNvbnN0IFR1cGxlMiYgLyogdDIgKi8pIHsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfTsK
LQotdGVtcGxhdGUgPGludCBrPgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9y
PGssIGs+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVwbGUyPgotICBzdGF0
aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIHQxLCBjb25zdCBUdXBsZTImIHQyKSB7Ci0gICAgcmV0
dXJuIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPGsgLSAxLCBrIC0gMT46OkVxKHQxLCB0
MikgJiYKLSAgICAgICAgOjpzdGQ6OnRyMTo6Z2V0PGsgLSAxPih0MSkgPT0gOjpzdGQ6OnRyMTo6
Z2V0PGsgLSAxPih0Mik7Ci0gIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5h
bAotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKSwgR1RFU1RfMTBfVFlQRU5BTUVT
XyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR1RFU1RfMTBfVFVQTEVfKFQpJiB0
LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHUpIHsK
LSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjwK
LSAgICAgIHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVfKFQpID46OnZhbHVlLAotICAgICAgdHVw
bGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVSkgPjo6dmFsdWU+OjpFcSh0LCB1KTsKLX0KLQotdGVt
cGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci1p
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdURVNUXzEwX1RVUExFXyhUKSYgdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB1KSB7IHJldHVybiAh
KHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxlbWVudGVkLgotCi19ICAv
LyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLSN1bmRlZiBHVEVTVF8wX1RV
UExFXwotI3VuZGVmIEdURVNUXzFfVFVQTEVfCi0jdW5kZWYgR1RFU1RfMl9UVVBMRV8KLSN1bmRl
ZiBHVEVTVF8zX1RVUExFXwotI3VuZGVmIEdURVNUXzRfVFVQTEVfCi0jdW5kZWYgR1RFU1RfNV9U
VVBMRV8KLSN1bmRlZiBHVEVTVF82X1RVUExFXwotI3VuZGVmIEdURVNUXzdfVFVQTEVfCi0jdW5k
ZWYgR1RFU1RfOF9UVVBMRV8KLSN1bmRlZiBHVEVTVF85X1RVUExFXwotI3VuZGVmIEdURVNUXzEw
X1RVUExFXwotCi0jdW5kZWYgR1RFU1RfMF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfMV9UWVBF
TkFNRVNfCi0jdW5kZWYgR1RFU1RfMl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfM19UWVBFTkFN
RVNfCi0jdW5kZWYgR1RFU1RfNF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNV9UWVBFTkFNRVNf
Ci0jdW5kZWYgR1RFU1RfNl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfN19UWVBFTkFNRVNfCi0j
dW5kZWYgR1RFU1RfOF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfOV9UWVBFTkFNRVNfCi0jdW5k
ZWYgR1RFU1RfMTBfVFlQRU5BTUVTXwotCi0jdW5kZWYgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19G
UklFTkRfCi0jdW5kZWYgR1RFU1RfQllfUkVGXwotI3VuZGVmIEdURVNUX0FERF9SRUZfCi0jdW5k
ZWYgR1RFU1RfVFVQTEVfRUxFTUVOVF8KLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX1RVUExFX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgucHVtcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1w
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjYyNmUwNDlmMDg3ODBmZmNlOTZkNDg1
MmNiOGVkNWQzZWY1ZjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtdHVwbGUuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzQ4ICswLDAgQEAKLSQkIC0qLSBt
b2RlOiBjKys7IC0qLQotJHZhciBuID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIHR1cGxlIGZp
ZWxkcyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kJCBUaGlzIG1ldGEgY29tbWVudCBmaXhlcyBhdXRv
LWluZGVudGF0aW9uIGluIEVtYWNzLiB9fQotLy8gQ29weXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4K
LS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgbmVl
ZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6OnN0ZDo6cGFpci4KLQot
Ly8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyB1
cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFzIGEgZnJpZW5kIChpdCBj
b21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwotLy8gYnlwYXNzZXMgdGhl
IGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3RoZXJ3aXNlIGJlCi0v
LyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMgPCAxMiBhbHNvIGhh
dmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IChkZWZpbmVk
KF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZpbmUgR1RFU1RfREVD
TEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9ERUNM
QVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1F
U18oVSk+IGZyaWVuZCBjbGFzcyB0dXBsZTsgXAotICAgcHJpdmF0ZToKLSNlbmRpZgotCi0vLyBW
aXN1YWwgU3R1ZGlvIDIwMTAsIDIwMTIsIGFuZCAyMDEzIGRlZmluZSBzeW1ib2xzIGluIHN0ZDo6
dHIxIHRoYXQgY29uZmxpY3QKLS8vIHdpdGggb3VyIG93biBkZWZpbml0aW9ucy4gVGhlcmVmb3Jl
IHVzaW5nIG91ciBvd24gdHVwbGUgZG9lcyBub3Qgd29yayBvbgotLy8gdGhvc2UgY29tcGlsZXJz
LgotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgIC8qIDE2MDAgaXMg
VmlzdWFsIFN0dWRpbyAyMDEwICovCi0jIGVycm9yICJndGVzdCdzIHR1cGxlIGRvZXNuJ3QgY29t
cGlsZSBvbiBWaXN1YWwgU3R1ZGlvIDIwMTAgb3IgbGF0ZXIuIFwKLUdURVNUX1VTRV9PV05fVFIx
X1RVUExFIG11c3QgYmUgc2V0IHRvIDAgb24gdGhvc2UgY29tcGlsZXJzLiIKLSNlbmRpZgotCi0K
LSRyYW5nZSBpIDAuLm4tMQotJHJhbmdlIGogMC4ubgotJHJhbmdlIGsgMS4ubgotLy8gR1RFU1Rf
bl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZpbmUgR1RFU1RfMF9U
VVBMRV8oVCkgdHVwbGU8PgotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAuLmstMQotJHJhbmdlIG0y
IGsuLm4tMQotI2RlZmluZSBHVEVTVF8kKGspX1RVUExFXyhUKSB0dXBsZTwkZm9yIG0sIFtbVCMj
JG1dXSRmb3IgbTIgW1ssIHZvaWRdXT4KLQotXV0KLQotLy8gR1RFU1Rfbl9UWVBFTkFNRVNfKFQp
IGRlY2xhcmVzIGEgbGlzdCBvZiBuIHR5cGVuYW1lcy4KLQotJGZvciBqIFtbCi0kcmFuZ2UgbSAw
Li5qLTEKLSNkZWZpbmUgR1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpICRmb3IgbSwgW1t0eXBlbmFt
ZSBUIyMkbV1dCi0KLQotXV0KLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBzdHVmZiBpbiB0aGUg
OjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBXZSBjYW4gZG8gdGhp
cyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBsaWJyYXJ5IHZl
bmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBsYXRlIDwkZm9y
IGksIFtbdHlwZW5hbWUgVCRpID0gdm9pZF1dPgotY2xhc3MgdHVwbGU7Ci0KLS8vIEFueXRoaW5n
IGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBHb29nbGUgVGVzdCdzIElOVEVSTkFMCi0v
LyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1QgTk9UIEJFIFVTRUQgRElSRUNUTFkgaW4g
dXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotLy8gQnlSZWY8VD46OnR5
cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBjb25zdCBUJi4KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmIHsgdHlwZWRlZiBjb25zdCBUJiB0eXBl
OyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBCeVJlZjxUJj4g
eyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZv
ciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhUKSB0eXBlbmFtZSA6OnN0ZDo6dHIxOjpn
dGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQotLy8gQWRkUmVmPFQ+Ojp0eXBlIGlzIFQg
aWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgVCYuICBUaGlzCi0vLyBpcyB0aGUg
c2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07
ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBBZGRSZWYuCi0jZGVmaW5lIEdU
RVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFsOjpBZGRS
ZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVudGluZyBnZXQ8az4oKS4KLXRl
bXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBBIGhlbHBlciBmb3IgaW1wbGVtZW50aW5n
IHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxpZCBpcyB0cnVlCi0vLyBpZmYgayA8IHRo
ZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUgVC4KLXRlbXBsYXRlIDxib29sIGtJbmRl
eFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4KLXN0cnVjdCBUdXBsZUVsZW1lbnQ7Ci0K
LQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0
IFR1cGxlRWxlbWVudDx0cnVlLCAkaSwgR1RFU1RfJChuKV9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVk
ZWYgVCRpIHR5cGU7Ci19OwotCi0KLV1dCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwK
LQotdGVtcGxhdGUgPD4KLWNsYXNzIHR1cGxlPD4gewotIHB1YmxpYzoKLSAgdHVwbGUoKSB7fQot
ICB0dXBsZShjb25zdCB0dXBsZSYgLyogdCAqLykgIHt9Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29u
c3QgdHVwbGUmIC8qIHQgKi8pIHsgcmV0dXJuICp0aGlzOyB9Ci19OwotCi0KLSRmb3IgayBbWwot
JHJhbmdlIG0gMC4uay0xCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgotY2xh
c3MgJGlmIGsgPCBuIFtbR1RFU1RfJChrKV9UVVBMRV8oVCldXSAkZWxzZSBbW3R1cGxlXV0gewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6
OkdldDsKLQotICB0dXBsZSgpIDogJGZvciBtLCBbW2YkKG0pXygpXV0ge30KLQotICBleHBsaWNp
dCB0dXBsZSgkZm9yIG0sIFtbR1RFU1RfQllfUkVGXyhUJG0pIGYkbV1dKSA6IFtbXV0KLSRmb3Ig
bSwgW1tmJChtKV8oZiRtKV1dIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogJGZvciBt
LCBbW2YkKG0pXyh0LmYkKG0pXyldXSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8kKGspX1RZUEVO
QU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSA6ICRmb3Ig
bSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotJGlmIGsgPT0gMiBbWwotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZShjb25zdCA6OnN0ZDo6cGFpcjxVMCwg
VTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vjb25kKSB7fQotCi1dXQotCi0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShj
b25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsK
LSAgfQotCi0kaWYgayA9PSAyIFtbCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUg
VTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUxPiYgcCkgewot
ICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLV1dCi0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVt
cGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0
IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSB7Ci0KLSRmb3IgbSBbWwotICAgIGYkKG0pXyA9IHQu
ZiQobSlfOwotCi1dXQotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0KLSRmb3IgbSBbWwotICBU
JG0gZiQobSlfOwotCi1dXQotfTsKLQotCi1dXQotLy8gNi4xLjMuMiBUdXBsZSBjcmVhdGlvbiBm
dW5jdGlvbnMuCi0KLS8vIEtub3duIGxpbWl0YXRpb25zOiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Np
bmcgYW4KLS8vIHN0ZDo6dHIxOjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiB0byBtYWtlX3R1cGxlKCku
ICBBbmQgd2UgZG9uJ3QKLS8vIGltcGxlbWVudCB0aWUoKS4KLQotaW5saW5lIHR1cGxlPD4gbWFr
ZV90dXBsZSgpIHsgcmV0dXJuIHR1cGxlPD4oKTsgfQotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAu
LmstMQotCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNU
XyQoaylfVFVQTEVfKFQpIG1ha2VfdHVwbGUoJGZvciBtLCBbW2NvbnN0IFQkbSYgZiRtXV0pIHsK
LSAgcmV0dXJuIEdURVNUXyQoaylfVFVQTEVfKFQpKCRmb3IgbSwgW1tmJG1dXSk7Ci19Ci0KLV1d
Ci0KLS8vIDYuMS4zLjMgVHVwbGUgaGVscGVyIGNsYXNzZXMuCi0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUdXBsZT4gc3RydWN0IHR1cGxlX3NpemU7Ci0KLQotJGZvciBqIFtbCi10ZW1wbGF0ZSA8R1RF
U1RfJChqKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfJChqKV9UVVBM
RV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAkajsKLX07Ci0KLQotXV0KLXRl
bXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVwbGVfZWxlbWVudCB7Ci0gIHR5
cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxlbWVudDwKLSAgICAgIGsgPCAo
dHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0eXBlIHR5cGU7Ci19OwotCi0j
ZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0eXBlbmFtZSB0dXBsZV9lbGVt
ZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVtZW50IGFjY2Vzcy4KLQotbmFt
ZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotCi0kZm9yIGkgW1sKLXRlbXBsYXRlIDw+Ci1jbGFz
cyBHZXQ8JGk+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGlj
IEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKCRpLCBUdXBsZSkpCi0gIEZpZWxk
KFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUg
PGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5U
XygkaSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYk
KGkpXzsgfQotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRl
bXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotR1RFU1RfQUREX1JFRl8o
R1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfJChuKV9UVVBMRV8oVCkpKQotZ2V0KEdURVNU
XyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5hbDo6R2V0PGs+OjpG
aWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCk+
Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssICBHVEVTVF8kKG4pX1RVUExF
XyhUKSkpCi1nZXQoY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQpIHsKLSAgcmV0dXJuIGd0
ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19Ci0KLS8vIDYuMS4zLjUgUmVs
YXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1lbnQgPT0gYW5kICE9LCBhcyB3
ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0LgotCi1uYW1lc3BhY2UgZ3Rlc3Rf
aW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPjo6RXEo
dDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBrIGZpZWxkcyBvZiB0MSBlcXVh
bHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNpemVUdXBsZVByZWZpeENvbXBh
cmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9yIGlmCi0vLyBrMSAhPSBrMi4K
LXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3RydWN0IFNhbWVTaXplVHVwbGVQ
cmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVm
aXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVw
bGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8qIHQxICovLCBjb25zdCBUdXBs
ZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX07Ci0KLXRlbXBsYXRlIDxp
bnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPiB7Ci0gIHRl
bXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAgc3RhdGljIGJvb2wgRXEoY29u
c3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAgIHJldHVybiBTYW1lU2l6ZVR1
cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0MSwgdDIpICYmCi0gICAgICAg
IDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDIp
OwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUg
PEdURVNUXyQobilfVFlQRU5BTUVTXyhUKSwgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFUpPgotaW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHVEVTVF8kKG4pX1RVUExFXyhUKSYgdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVSkmIHUpIHsKLSAgcmV0
dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjwKLSAgICAg
IHR1cGxlX3NpemU8R1RFU1RfJChuKV9UVVBMRV8oVCkgPjo6dmFsdWUsCi0gICAgICB0dXBsZV9z
aXplPEdURVNUXyQobilfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7Ci19Ci0KLXRlbXBs
YXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdURVNUXyQobilfVFlQRU5BTUVTXyhVKT4K
LWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFUpJiB1KSB7IHJl
dHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxlbWVudGVkLgot
Ci19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLQotJGZvciBqIFtb
Ci0jdW5kZWYgR1RFU1RfJChqKV9UVVBMRV8KLQotXV0KLQotCi0kZm9yIGogW1sKLSN1bmRlZiBH
VEVTVF8kKGopX1RZUEVOQU1FU18KLQotXV0KLQotI3VuZGVmIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVTVF9BRERfUkVGXwot
I3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGls
LmgKaW5kZXggMjhlNDExMjQ1MzYxYzA4ZjI4NzA3ZTkyNDhlNmQwMzMyMGU2ODYxOC4uYjg3YTJl
MmNhY2UzM2I4Y2YxZDQyYTJiM2JkYjQ0Y2JiOTBkYzI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR5cGUtdXRpbC5oCkBAIC0xLDcgKzEsMyBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQg
YnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXR5cGUtdXRpbC5oLnB1bXAKLS8vIERP
IE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KIC8v
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAvLwpAQCAtMzEsMTkgKzI3LDEzIEBACiAvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQogLy8gVHlwZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBp
bXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVzdHMuICBUaGlz
IGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8v
Ci0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0IDUwIHR5cGVzIGluIGEgbGlzdCwgYW5k
IGF0IG1vc3QgNTAKLS8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRlc3RmcmFtZXdv
cmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KKy8vIHRlc3RzLgogCiAv
LyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXworI2RlZmluZSBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCiAKICNpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAKQEAgLTc0LDE1NjggKzY0LDQzIEBAIGlu
bGluZSBzdGQ6OnN0cmluZyBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKHN0ZDo6c3Ry
aW5nIHMpIHsKICAgcmV0dXJuIHM7CiB9CiAKLS8vIEdldFR5cGVOYW1lPFQ+KCkgcmV0dXJucyBh
IGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdHlwZSBULgotLy8gTkI6IFRoaXMgZnVuY3Rpb24gaXMg
YWxzbyB1c2VkIGluIEdvb2dsZSBNb2NrLCBzbyBkb24ndCBtb3ZlIGl0IGluc2lkZSBvZgotLy8g
dGhlIHR5cGVkLXRlc3Qtb25seSBzZWN0aW9uIGJlbG93LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsKLSMgaWYgR1RFU1RfSEFTX1JUVEkKLQotICBj
b25zdCBjaGFyKiBjb25zdCBuYW1lID0gdHlwZWlkKFQpLm5hbWUoKTsKLSMgIGlmIEdURVNUX0hB
U19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKKyNpZiBHVEVTVF9IQVNfUlRUSQorLy8g
R2V0VHlwZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8mKSByZXR1cm5zIGEgaHVtYW4tcmVhZGFi
bGUgbmFtZSBvZiB0eXBlIFQuCitpbmxpbmUgc3RkOjpzdHJpbmcgR2V0VHlwZU5hbWUoY29uc3Qg
c3RkOjp0eXBlX2luZm8mIHR5cGUpIHsKKyAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHR5cGUu
bmFtZSgpOworI2lmIEdURVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKICAg
aW50IHN0YXR1cyA9IDA7CiAgIC8vIGdjYydzIGltcGxlbWVudGF0aW9uIG9mIHR5cGVpZChUKS5u
YW1lKCkgbWFuZ2xlcyB0aGUgdHlwZSBuYW1lLAogICAvLyBzbyB3ZSBoYXZlIHRvIGRlbWFuZ2xl
IGl0LgotIyAgIGlmIEdURVNUX0hBU19DWFhBQklfSF8KKyNpZiBHVEVTVF9IQVNfQ1hYQUJJX0hf
CiAgIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYgIC8vIEdURVNUX0hBU19D
WFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9fY3hhX2RlbWFuZ2xlKG5h
bWUsIDAsIDAsICZzdGF0dXMpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfCisgIGNo
YXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1hbmdsZShuYW1lLCBudWxscHRyLCBu
dWxscHRyLCAmc3RhdHVzKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV9zdHIoc3RhdHVzID09
IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7CiAgIGZyZWUocmVhZGFibGVfbmFtZSk7CiAgIHJl
dHVybiBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKG5hbWVfc3RyKTsKLSMgIGVsc2UK
KyNlbHNlCiAgIHJldHVybiBuYW1lOwotIyAgZW5kaWYgIC8vIEdURVNUX0hBU19DWFhBQklfSF8g
fHwgX19IUF9hQ0MKLQotIyBlbHNlCi0KLSAgcmV0dXJuICI8dHlwZT4iOwotCi0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfUlRUSQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8IF9fSFBf
YUNDCiB9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURf
VEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIEFzc2VydHlUeXBlRXE8VDEsIFQy
Pjo6dHlwZSBpcyBkZWZpbmVkIGlmZiBUMSBhbmQgVDIgYXJlIHRoZSBzYW1lCi0vLyB0eXBlLiAg
VGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBpbGUtdGltZSBhc3NlcnRpb24gdG8gZW5zdXJlIHRo
YXQKLS8vIHR3byB0eXBlcyBhcmUgZXF1YWwuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDI+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxOwotCisvLyBHZXRUeXBlTmFtZTxUPigpIHJl
dHVybnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVCBpZiBhbmQgb25seSBpZgorLy8g
UlRUSSBpcyBlbmFibGVkLCBvdGhlcndpc2UgaXQgcmV0dXJucyBhIGR1bW15IHR5cGUgbmFtZS4K
Ky8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBpbiBHb29nbGUgTW9jaywgc28gZG9u
J3QgbW92ZSBpdCBpbnNpZGUgb2YKKy8vIHRoZSB0eXBlZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxv
dy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFzc2VydFR5cGVFcTxULCBUPiB7Ci0g
IHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKK3N0ZDo6c3RyaW5nIEdldFR5cGVOYW1lKCkgeworI2lm
IEdURVNUX0hBU19SVFRJCisgIHJldHVybiBHZXRUeXBlTmFtZSh0eXBlaWQoVCkpOworI2Vsc2UK
KyAgcmV0dXJuICI8dHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorfQogCi0vLyBB
IHVuaXF1ZSB0eXBlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBhcmd1bWVudHMg
b2YgY2xhc3MKLS8vIHRlbXBsYXRlIFR5cGVzLiAgVGhpcyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUg
dmFyaWFkaWMgdGVtcGxhdGVzCi0vLyAoZS5nLiBUeXBlczxpbnQ+LCBUeXBlPGludCwgZG91Ymxl
PiwgYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0Ci0vLyBzdXBwb3J0IGRpcmVjdGx5LgorLy8g
QSB1bmlxdWUgdHlwZSBpbmRpY2F0aW5nIGFuIGVtcHR5IG5vZGUKIHN0cnVjdCBOb25lIHt9Owog
Ci0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMg
YXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4gcGFydGljdWxhciwgVHlw
ZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBlIGxpc3Qgd2l0aCBOIHR5
cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2VwdCBmb3IgVHlwZXMwLCBl
dmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoKLS8vIEhlYWQg
Zm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBmb3IgdGhlIHJlc3Qgb2Yg
dGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgotc3RydWN0IFR5cGVzMCB7
fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDI+Ci1zdHJ1Y3QgVHlwZXMyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMTxUMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPgotc3RydWN0IFR5cGVzMyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczI8VDIsIFQzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0Pgotc3RydWN0IFR5cGVzNCB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczM8VDIsIFQzLCBUND4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1zdHJ1Y3QgVHlwZXM1IHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzNDxUMiwgVDMsIFQ0LCBUNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1Y3QgVHlwZXM2IHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNTxUMiwgVDMsIFQ0LCBUNSwgVDY+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KLXN0cnVj
dCBUeXBlczcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM2PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1zdHJ1Y3QgVHlwZXM4IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1zdHJ1Y3QgVHlwZXM5IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1zdHJ1
Y3QgVHlwZXMxMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczk8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0IFR5cGVzMTEgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMDxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyPgotc3RydWN0IFR5cGVz
MTIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMz4KLXN0cnVjdCBUeXBlczEzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMTI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0Pgot
c3RydWN0IFR5cGVzMTQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMzxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1Pgotc3RydWN0IFR5cGVzMTUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMxNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLXN0cnVjdCBUeXBlczE2
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTU8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3RydWN0IFR5cGVzMTcg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxNjxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYs
IFQxNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
Pgotc3RydWN0IFR5cGVzMTggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMx
NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLXN0cnVjdCBUeXBlczE5IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTg8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwPgotc3RydWN0IFR5cGVzMjAgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxOTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjE+Ci1zdHJ1Y3QgVHlwZXMyMSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBl
czIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjI+Ci1zdHJ1Y3QgVHlw
ZXMyMiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIxPFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzPgotc3RydWN0
IFR5cGVzMjMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyMjxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXMyNCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAg
dHlwZWRlZiBUeXBlczIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+
Ci1zdHJ1Y3QgVHlwZXMyNSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI0
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjY+Ci1zdHJ1Y3QgVHlwZXMyNiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRl
ZiBUeXBlczI1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3Pgotc3RydWN0IFR5cGVzMjcgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNjxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3PiBUYWls
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXMyOCB7Ci0gIHR5cGVkZWYg
VDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOD4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1zdHJ1Y3QgVHlwZXMyOSB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI4PFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICAgIFQyOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMD4KLXN0cnVjdCBUeXBlczMwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0
eXBlZGVmIFR5cGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzA+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVzMzEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMx
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyPgotc3RydWN0IFR5cGVzMzIgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMz4KLXN0cnVjdCBUeXBlczMzIHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzMzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAs
IFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0Pgotc3RydWN0IFR5cGVzMzQgewotICB0eXBlZGVmIFQxIEhl
YWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
LCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1Pgotc3RydWN0IFR5cGVz
MzUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNDxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgotc3RydWN0IFR5cGVzMzYgewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gVGFpbDsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQy
NywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFt
ZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1l
IFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNz4KLXN0cnVjdCBUeXBlczM3IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzY8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4Pgotc3RydWN0IFR5cGVzMzggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5Pgotc3Ry
dWN0IFR5cGVzMzkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzODxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0
MD4KLXN0cnVjdCBUeXBlczQwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVz
Mzk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAg
ICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzks
IHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1zdHJ1Y3QgVHlwZXM0MSB7Ci0gIHR5
cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0
eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLXN0cnVjdCBUeXBlczQyIHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczQzIHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDI8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVu
YW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0
eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0g
ICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5
LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1l
IFQ0MywgdHlwZW5hbWUgVDQ0Pgotc3RydWN0IFR5cGVzNDQgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXM0MzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgVDQzLAotICAgICAgVDQ0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1l
IFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzNDUgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXM0NDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgVDQzLAotICAgICAgVDQ0LCBUNDU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlw
ZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgotc3RydWN0IFR5cGVz
NDYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0Nj4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5
cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAg
ICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLXN0cnVjdCBUeXBlczQ3IHsKLSAgdHlwZWRl
ZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0g
ICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0
eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0
MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFt
ZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4Pgotc3RydWN0IFR5cGVzNDggewotICB0
eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAs
Ci0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUg
VDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVu
YW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0
eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0g
ICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5
Pgotc3RydWN0IFR5cGVzNDkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0
ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0
LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0
NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIFQ1MD4KLXN0cnVjdCBUeXBl
czUwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDk8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0
NywgVDQ4LCBUNDksIFQ1MD4gVGFpbDsKLX07Ci0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFs
Ci0KLS8vIFdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVHlwZXNO
PC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0
aGUgbGVuZ3RoLiAgVHlwZXM8Li4uPiBpcyBtdWNoCi0vLyBlYXNpZXIgdG8gd3JpdGUsIGJ1dCBn
ZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0aGVyZSBpcyBhCi0vLyBjb21waWxlciBl
cnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcgb3V0IGVhY2ggdGVtcGxhdGUKLS8vIGFy
Z3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVsdCB2YWx1ZSAodGhpcyBtZWFucyBUeXBl
czxpbnQ+Ci0vLyB3aWxsIGFwcGVhciBhcyBUeXBlczxpbnQsIE5vbmUsIE5vbmUsIC4uLiwgTm9u
ZT4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlvbiBpcyB0
byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0vLyB1c2Vy
IHdvdWxkIHdyaXRlIFR5cGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJh
bnNsYXRlCi0vLyB0aGF0IHRvIFR5cGVzTjxUMSwgLi4uLCBUTj4gaW50ZXJuYWxseSB0byBtYWtl
IGVycm9yIG1lc3NhZ2VzCi0vLyByZWFkYWJsZS4gIFRoZSB0cmFuc2xhdGlvbiBpcyBkb25lIGJ5
IHRoZSAndHlwZScgbWVtYmVyIG9mIHRoZQotLy8gVHlwZXMgdGVtcGxhdGUuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDIgPSBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICB0eXBlbmFtZSBUMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNCA9IGludGVy
bmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ2
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlw
ZW5hbWUgVDggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUOSA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUMTAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTEgPSBp
bnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDEyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5h
bWUgVDEzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQxNCA9IGludGVybmFsOjpOb25lLAot
ICAgIHR5cGVuYW1lIFQxNSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMTYgPSBpbnRlcm5h
bDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDE4
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDE5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5
cGVuYW1lIFQyMCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQyMSA9IGludGVybmFs
OjpOb25lLCB0eXBlbmFtZSBUMjIgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjMg
PSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI0ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlw
ZW5hbWUgVDI1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyNiA9IGludGVybmFsOjpOb25l
LAotICAgIHR5cGVuYW1lIFQyNyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjggPSBpbnRl
cm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjkgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUg
VDMwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDMxID0gaW50ZXJuYWw6Ok5vbmUs
IHR5cGVuYW1lIFQzMiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzMyA9IGludGVy
bmFsOjpOb25lLCB0eXBlbmFtZSBUMzQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBU
MzUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAg
dHlwZW5hbWUgVDM3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzOCA9IGludGVybmFsOjpO
b25lLAotICAgIHR5cGVuYW1lIFQzOSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDAgPSBp
bnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5h
bWUgVDQyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQzID0gaW50ZXJuYWw6Ok5v
bmUsIHR5cGVuYW1lIFQ0NCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ0NSA9IGlu
dGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDYgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFt
ZSBUNDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQ4ID0gaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgdHlwZW5hbWUgVDQ5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ1MCA9IGludGVybmFs
OjpOb25lPgotc3RydWN0IFR5cGVzIHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM1MDxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1z
dHJ1Y3QgVHlwZXM8aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMCB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXN0cnVjdCBUeXBlczxUMSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMxPFQxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjxUMSwgVDI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM8VDEsIFQyLCBUMz4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVk
ZWYgaW50ZXJuYWw6OlR5cGVzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3Pgotc3RydWN0IFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczg8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM5PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczEwPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXMxMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwKLSAgICAgIFQxMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxNDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQ+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1Pgotc3Ry
dWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4g
ewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTY+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgVDE2LCBUMTcsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTc8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTk+Ci1zdHJ1Y3QgVHlwZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyMDxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyMzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyND4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjQ8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjc+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwK
LSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjg+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBl
bmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwgVDI5LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzMjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwK
LSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOT4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+Ci1zdHJ1Y3QgVHlwZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzMzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwPiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LAotICAgIFQzMSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0
eXBlZGVmIGludGVybmFsOjpUeXBlczMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMj4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMyPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzI+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpU
eXBlczM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
Ci0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1zdHJ1Y3QgVHlwZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzc+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMzODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
Mzk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDA+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXM0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDA+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAg
IHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwg
dHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBU
MzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MT4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDE8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDE+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDI8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0Mj4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBl
bmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwg
dHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBU
NDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0
MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAg
ICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDM+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwg
dHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50
ZXJuYWw6OlR5cGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBU
NDEsIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0
NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAg
VDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NT4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5h
bWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFt
ZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlw
ZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIs
IHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUg
VDQ2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQy
LCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXM0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQy
LCBUNDMsIFQ0NCwgVDQ1LCBUNDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1l
IFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3Pgotc3Ry
dWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0
NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDc8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2
LCBUNDc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5h
bWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5
cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3
LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1l
IFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUg
VDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDg+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0
LCBUNDUsCi0gICAgVDQ2LCBUNDcsIFQ0OCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAs
Ci0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUg
VDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVu
YW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0
eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0g
ICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBU
NDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgaW50ZXJuYWw6Ok5vbmU+IHsK
LSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+
IHR5cGU7Ci19OwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCiAjIGRlZmluZSBHVEVTVF9URU1Q
TEFURV8gdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzCiAKIC8vIFRoZSB0ZW1wbGF0ZSAic2Vs
ZWN0b3IiIHN0cnVjdCBUZW1wbGF0ZVNlbDxUbXBsPiBpcyB1c2VkIHRvCkBAIC0xNjU3LDE2OTIg
KzEyMiw2MiBAQCBzdHJ1Y3QgVGVtcGxhdGVTZWwgewogIyBkZWZpbmUgR1RFU1RfQklORF8oVG1w
bFNlbCwgVCkgXAogICBUbXBsU2VsOjp0ZW1wbGF0ZSBCaW5kPFQ+Ojp0eXBlCiAKLS8vIEEgdW5p
cXVlIHN0cnVjdCB0ZW1wbGF0ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUKLS8v
IGFyZ3VtZW50cyBvZiBjbGFzcyB0ZW1wbGF0ZSBUZW1wbGF0ZXMuICBUaGlzIGFsbG93cyB1cyB0
byBzaW11bGF0ZQotLy8gdmFyaWFkaWMgdGVtcGxhdGVzIChlLmcuIFRlbXBsYXRlczxpbnQ+LCBU
ZW1wbGF0ZXM8aW50LCBkb3VibGU+LAotLy8gYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0IHN1
cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBOb25lVCB7fTsK
LQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1Y3QgdGVtcGxhdGVz
IGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdGVtcGxhdGUgbGlzdHMuICBJbiBwYXJ0aWN1bGFy
LCBUZW1wbGF0ZXNOPFQxLCBUMiwgLi4uLAotLy8gVE4+IHJlcHJlc2VudHMgYSBsaXN0IG9mIE4g
dGVtcGxhdGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKS4gIEV4Y2VwdAotLy8gZm9yIFRlbXBsYXRl
czAsIGV2ZXJ5IHN0cnVjdCBpbiB0aGUgZmFtaWx5IGhhcyB0d28gbWVtYmVyIHR5cGVzOgotLy8g
SGVhZCBmb3IgdGhlIHNlbGVjdG9yIG9mIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbiB0aGUgbGlzdCwg
YW5kIFRhaWwKLS8vIGZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdC4KLQotLy8gVGhlIGVtcHR5IHRl
bXBsYXRlIGxpc3QuCi1zdHJ1Y3QgVGVtcGxhdGVzMCB7fTsKLQotLy8gVGVtcGxhdGUgbGlzdHMg
b2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIFRhaWw7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3RydWN0IFRlbXBsYXRlczIgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE8VDI+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXMzIHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyPFQyLCBUMz4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUND4KLXN0cnVjdCBUZW1wbGF0
ZXM0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMzPFQyLCBUMywgVDQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNT4KLXN0cnVjdCBUZW1wbGF0ZXM1IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0PFQyLCBUMywg
VDQsIFQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNj4KLXN0cnVjdCBUZW1wbGF0
ZXM2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM1PFQyLCBUMywgVDQsIFQ1LCBUNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0IFRlbXBsYXRlczcgewotICB0eXBlZGVm
IFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczY8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDg+Ci1zdHJ1Y3QgVGVtcGxhdGVzOCB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNzxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM4PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwPgotc3RydWN0IFRlbXBsYXRlczEwIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNl
bDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTE+Ci1zdHJ1Y3QgVGVt
cGxhdGVzMTEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRl
bXBsYXRlczEwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTE+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMj4KLXN0cnVjdCBU
ZW1wbGF0ZXMxMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0cnVjdCBUZW1wbGF0ZXMxMyB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTI8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTM+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVf
IFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1Rf
VEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczE0IHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMzxUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxND4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBH
VEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBU
MTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFk
OwotICB0eXBlZGVmIFRlbXBsYXRlczE0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTU+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTY+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTYgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNj4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVjdCBU
ZW1wbGF0ZXMxNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1
Y3QgVGVtcGxhdGVzMTggewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczE3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTg+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOT4KLXN0cnVjdCBUZW1wbGF0ZXMxOSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTg8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjAgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE5PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBI
ZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyPgotc3RydWN0IFRlbXBsYXRlczIyIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgotc3RydWN0IFRlbXBsYXRl
czIzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
MjQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjUgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXMyNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjY+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1Rf
VEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8g
VDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNU
X1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjcg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI2
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOD4KLXN0cnVjdCBUZW1wbGF0ZXMyOCB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwg
R1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1Q
TEFURV8gVDI5Pgotc3RydWN0IFRlbXBsYXRlczI5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAg
ICBUMjk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9U
RU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBU
MTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1Rf
VEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVN
UExBVEVfIFQzMD4KLXN0cnVjdCBUZW1wbGF0ZXMzMCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
ICAgVDI5LCBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0IFRlbXBs
YXRlczMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxPiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVN
UExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1
LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMj4KLXN0cnVjdCBUZW1w
bGF0ZXMzMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMzE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMz4KLXN0cnVjdCBUZW1wbGF0ZXMzMyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzQgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczMzPFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxh
dGVzMzUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBs
YXRlczM0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNj4KLXN0cnVjdCBUZW1wbGF0ZXMz
NiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNz4KLXN0cnVjdCBUZW1wbGF0ZXMzNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+
IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4Pgotc3RydWN0IFRlbXBsYXRlczM4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8g
VDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNU
X1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVf
IFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOT4KLXN0cnVjdCBUZW1wbGF0ZXMzOSB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzg8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwg
R1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1Q
TEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQs
IEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQwPgotc3RydWN0IFRlbXBsYXRlczQwIHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzOTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1Q
TEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjks
IEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVN
UExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0
LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4KLXN0cnVjdCBUZW1w
bGF0ZXM0MSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNDA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxPiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdU
RVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8g
VDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNU
X1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVf
IFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVT
VF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQz
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9U
RU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBU
MzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1Rf
VEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0Mj4KLXN0cnVjdCBUZW1wbGF0ZXM0MiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDE8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyPiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RF
TVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAs
IEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFU
RV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdU
RVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExB
VEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBH
VEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVf
IFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVT
VF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRF
XyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RF
U1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQzPgotc3RydWN0IFRlbXBsYXRlczQzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQw
LCBUNDEsIFQ0MiwKLSAgICAgIFQ0Mz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNU
X1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVf
IFQ0ND4KLXN0cnVjdCBUZW1wbGF0ZXM0NCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhl
YWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0ND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwg
R1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1Q
TEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEs
IEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFU
RV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdU
RVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExB
VEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NT4KLXN0cnVjdCBUZW1wbGF0ZXM0NSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDQ8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDY+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDYgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ1PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0NSwgVDQ2
PiBUYWlsOwordGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBIZWFkXywgR1RFU1RfVEVNUExBVEVf
Li4uIFRhaWxfPgorc3RydWN0IFRlbXBsYXRlcyB7CisgIHVzaW5nIEhlYWQgPSBUZW1wbGF0ZVNl
bDxIZWFkXz47CisgIHVzaW5nIFRhaWwgPSBUZW1wbGF0ZXM8VGFpbF8uLi4+OwogfTsKIAotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RF
TVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQy
MywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9U
RU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1Q
TEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgs
IEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVN
UExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQz
LCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDc+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDcgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ2PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0
NSwgVDQ2LCBUNDc+IFRhaWw7Cit0ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIEhlYWRfPgorc3Ry
dWN0IFRlbXBsYXRlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gVGVtcGxhdGVTZWw8SGVhZF8+
OworICB1c2luZyBUYWlsID0gTm9uZTsKIH07CiAKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVN
UExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5
LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RF
TVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
NCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBM
QVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwg
R1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1Q
TEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBsYXRlczQ4IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NzxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUs
IFQ0NiwgVDQ3LCBUNDg+IFRhaWw7CisvLyBUdXBsZS1saWtlIHR5cGUgbGlzdHMKK3RlbXBsYXRl
IDx0eXBlbmFtZSBIZWFkXywgdHlwZW5hbWUuLi4gVGFpbF8+CitzdHJ1Y3QgVHlwZXMgeworICB1
c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwgPSBUeXBlczxUYWlsXy4uLj47CiB9Owog
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8g
VDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNU
X1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVf
IFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVT
VF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0
OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5Pgotc3RydWN0IFRlbXBsYXRlczQ5IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0ODxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQz
NiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUsIFQ0
NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKK3RlbXBsYXRlIDx0eXBlbmFtZSBIZWFkXz4KK3N0cnVj
dCBUeXBlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwgPSBO
b25lOwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDcsIEdURVNUX1RF
TVBMQVRFXyBUNDgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0OSwgR1RFU1RfVEVNUExBVEVfIFQ1
MD4KLXN0cnVjdCBUZW1wbGF0ZXM1MCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVGFp
bDsKKy8vIEhlbHBlciBtZXRhZnVuY3Rpb25zIHRvIHRlbGwgYXBhcnQgYSBzaW5nbGUgdHlwZSBm
cm9tIHR5cGVzCisvLyBnZW5lcmF0ZWQgYnkgOjp0ZXN0aW5nOjpUeXBlcwordGVtcGxhdGUgPHR5
cGVuYW1lLi4uIFRzPgorc3RydWN0IFByb3h5VHlwZUxpc3QgeworICB1c2luZyB0eXBlID0gVHlw
ZXM8VHMuLi4+OwogfTsKIAordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IGlzX3Byb3h5X3R5
cGVfbGlzdCA6IHN0ZDo6ZmFsc2VfdHlwZSB7fTsKIAotLy8gV2UgZG9uJ3Qgd2FudCB0byByZXF1
aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0
aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVGVtcGxhdGVzPC4u
Lj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1l
c3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3Rz
IG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBo
YXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVzPGxpc3Q+Ci0vLyB3aWxs
IGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAuLi4sIE5vbmVUPiBpbiB0
aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0aW9uIGlzIHRvIGNvbWJp
bmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEKLS8vIHVzZXIgd291bGQg
d3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJhbnNs
YXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFr
ZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBi
eSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0ZW1wbGF0ZS4KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEgPSBOb25lVCwgR1RFU1RfVEVNUExBVEVfIFQyID0gTm9u
ZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNCA9
IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8g
VDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcgPSBOb25lVCwgR1RFU1RfVEVNUExB
VEVfIFQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ5ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUMTAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDExID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUMTIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUMTQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE1
ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTggPSBOb25lVCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjAgPSBOb25lVCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjIgPSBOb25lVCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjQgPSBO
b25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBU
MjYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI3ID0gTm9uZVQsIEdURVNUX1RFTVBM
QVRFXyBUMjggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI5ID0gTm9uZVQsIEdURVNU
X1RFTVBMQVRFXyBUMzAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxID0gTm9uZVQs
IEdURVNUX1RFTVBMQVRFXyBUMzIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMzID0g
Tm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDM1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzggPSBOb25lVCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDAgPSBOb25lVCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDIgPSBOb25l
VCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDQg
PSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRF
XyBUNDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ3ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUNDggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5ID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUNTAgPSBOb25lVD4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0eXBlZGVm
IFRlbXBsYXRlczUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAg
ICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiB0eXBlOwotfTsK
LQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUZW1wbGF0ZXM8Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczAgdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTxUMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDI+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyPFQxLCBU
Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzPFQxLCBUMiwgVDM+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Pgotc3RydWN0IFRlbXBsYXRlczxUMSwg
VDIsIFQzLCBUNCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNj4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM2PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczg8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0
eXBlZGVmIFRlbXBsYXRlczExPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEyPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RF
U1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRF
XyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0
cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTQ8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgICAgVDE0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNU
X1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8g
VDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNU
X1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTU8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0
LCBUMTU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1
LCBUMTYsIFQxNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE3PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMDxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBM
QVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MjM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjQ8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNj4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8g
VDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNU
X1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXMyODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAg
ICAgVDI4LCBUMjk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgVDMwLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVm
IFRlbXBsYXRlczMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMD4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RF
TVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQy
MCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9U
RU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwg
VDMwLCBUMzE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
Mj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAs
IFQzMSwgVDMyLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAg
ICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMw
LCBUMzEsIFQzMiwgVDMzLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczMzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzMzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzY+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAot
ICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNz4KLXN0cnVjdCBUZW1w
bGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM4PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
MiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9U
RU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzk+Ci1zdHJ1Y3QgVGVt
cGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4g
ewotICB0eXBlZGVmIFRlbXBsYXRlczM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RF
TVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQy
MCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9U
RU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1Q
TEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUs
IEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVN
UExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQw
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0g
ICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZXM0MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0
MT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyPgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLAotICAgICAgVDQyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBH
VEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBM
QVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwg
R1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRF
XyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Mz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0
Mz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0
MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9U
RU1QTEFURV8gVDQ1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywK
LSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNU
X1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQ2Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDY8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
Ci0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBM
QVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwg
R1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1Q
TEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAs
IEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0g
ICAgVDQ1LCBUNDYsIFQ0NywgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBs
YXRlczQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIs
IFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNU
X1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVf
IFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVT
VF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1
LCBUNDYsIFQ0NywgVDQ4LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0ODxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0
NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RF
TVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0
NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9U
RU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwg
VDQyLCBUNDMsIFQ0NCwKLSAgICBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXM0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IHR5cGU7Ci19
OwotCi0vLyBUaGUgVHlwZUxpc3QgdGVtcGxhdGUgbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlIGVp
dGhlciBhIHNpbmdsZSB0eXBlCi0vLyBvciBhIFR5cGVzPC4uLj4gbGlzdCBpbiBUWVBFRF9URVNU
X0NBU0UoKSBhbmQKLS8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKCkuCit0ZW1wbGF0
ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3QgaXNfcHJveHlfdHlwZV9saXN0PFByb3h5VHlwZUxp
c3Q8VHMuLi4+PiA6IHN0ZDo6dHJ1ZV90eXBlIHt9OwogCisvLyBHZW5lcmF0b3Igd2hpY2ggY29u
ZGl0aW9uYWxseSBjcmVhdGVzIHR5cGUgbGlzdHMuCisvLyBJdCByZWNvZ25pemVzIGlmIGEgcmVx
dWVzdGVkIHR5cGUgbGlzdCBzaG91bGQgYmUgY3JlYXRlZAorLy8gYW5kIHByZXZlbnRzIGNyZWF0
aW5nIGEgbmV3IHR5cGUgbGlzdCBuZXN0ZWQgd2l0aGluIGFub3RoZXIgb25lLgogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgVHlwZUxpc3QgewotICB0eXBlZGVmIFR5cGVzMTxUPiB0eXBl
OwotfTsKK3N0cnVjdCBHZW5lcmF0ZVR5cGVMaXN0IHsKKyBwcml2YXRlOgorICB1c2luZyBwcm94
eSA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8aXNfcHJveHlfdHlwZV9saXN0PFQ+Ojp2YWx1
ZSwgVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3h5VHlw
ZUxpc3Q8VD4+Ojp0eXBlOwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlw
ZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBU
NDcsIFQ0OCwgVDQ5LCBUNTA+ID4gewotICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUs
IFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPjo6dHlwZSB0eXBlOworIHB1YmxpYzoKKyAgdXNpbmcg
dHlwZSA9IHR5cGVuYW1lIHByb3h5Ojp0eXBlOwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIH0gIC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+Cit1c2luZyBUeXBlcyA9IGludGVy
bmFsOjpQcm94eVR5cGVMaXN0PFRzLi4uPjsKKwogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9I
XworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDFhNWQzOWRmYTZkMjRjN2M0MWExNmExNWYyZTJh
NWNlOTQ5ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBl
LXV0aWwuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzE0ICswLDAgQEAKLSQkIC0qLSBtb2Rl
OiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGltdW0gbGVuZ3RoIG9mIHR5cGUgbGlzdHMg
d2Ugd2FudCB0byBzdXBwb3J0LgotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KLS8vIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotLy8gVHlwZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlw
ZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVzdHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkg
d2Ugc3VwcG9ydCBhdCBtb3N0ICRuIHR5cGVzIGluIGEgbGlzdCwgYW5kIGF0IG1vc3QgJG4KLS8v
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qg
Y2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBz
LmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9U
IERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLS8v
ICNpZmRlZiBfX0dOVUNfXyBpcyB0b28gZ2VuZXJhbCBoZXJlLiAgSXQgaXMgcG9zc2libGUgdG8g
dXNlIGdjYyB3aXRob3V0IHVzaW5nCi0vLyBsaWJzdGRjKysgKHdoaWNoIGlzIHdoZXJlIGN4eGFi
aS5oIGNvbWVzIGZyb20pLgotIyBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCi0jICBpbmNsdWRlIDxj
eHhhYmkuaD4KLSMgZWxpZiBkZWZpbmVkKF9fSFBfYUNDKQotIyAgaW5jbHVkZSA8YWN4eF9kZW1h
bmdsZS5oPgotIyBlbmRpZiAgLy8gR1RFU1RfSEFTSF9DWFhBQklfSF8KLQotbmFtZXNwYWNlIHRl
c3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gQ2Fub25pY2FsaXplcyBhIGdpdmVu
IG5hbWUgd2l0aCByZXNwZWN0IHRvIHRoZSBTdGFuZGFyZCBDKysgTGlicmFyeS4KLS8vIFRoaXMg
aGFuZGxlcyByZW1vdmluZyB0aGUgaW5saW5lIG5hbWVzcGFjZSB3aXRoaW4gYHN0ZGAgdGhhdCBp
cwotLy8gdXNlZCBieSB2YXJpb3VzIHN0YW5kYXJkIGxpYnJhcmllcyAoZS5nLiwgYHN0ZDo6X18x
YCkuICBOYW1lcyBvdXRzaWRlCi0vLyBvZiBuYW1lc3BhY2Ugc3RkIGFyZSByZXR1cm5lZCB1bm1v
ZGlmaWVkLgotaW5saW5lIHN0ZDo6c3RyaW5nIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZlcnNpb25p
bmcoc3RkOjpzdHJpbmcgcykgewotICBzdGF0aWMgY29uc3QgY2hhciBwcmVmaXhbXSA9ICJzdGQ6
Ol9fIjsKLSAgaWYgKHMuY29tcGFyZSgwLCBzdHJsZW4ocHJlZml4KSwgcHJlZml4KSA9PSAwKSB7
Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBlbmQgPSBzLmZpbmQoIjo6Iiwgc3RybGVuKHBy
ZWZpeCkpOwotICAgIGlmIChlbmQgIT0gcy5ucG9zKSB7Ci0gICAgICAvLyBFcmFzZSBldmVyeXRo
aW5nIGJldHdlZW4gdGhlIGluaXRpYWwgYHN0ZGAgYW5kIHRoZSBzZWNvbmQgYDo6YC4KLSAgICAg
IHMuZXJhc2Uoc3RybGVuKCJzdGQiKSwgZW5kIC0gc3RybGVuKCJzdGQiKSk7Ci0gICAgfQotICB9
Ci0gIHJldHVybiBzOwotfQotCi0vLyBHZXRUeXBlTmFtZTxUPigpIHJldHVybnMgYSBodW1hbi1y
ZWFkYWJsZSBuYW1lIG9mIHR5cGUgVC4KLS8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNl
ZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YKLS8vIHRoZSB0eXBl
ZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RkOjpz
dHJpbmcgR2V0VHlwZU5hbWUoKSB7Ci0jIGlmIEdURVNUX0hBU19SVFRJCi0KLSAgY29uc3QgY2hh
ciogY29uc3QgbmFtZSA9IHR5cGVpZChUKS5uYW1lKCk7Ci0jICBpZiBHVEVTVF9IQVNfQ1hYQUJJ
X0hfIHx8IGRlZmluZWQoX19IUF9hQ0MpCi0gIGludCBzdGF0dXMgPSAwOwotICAvLyBnY2MncyBp
bXBsZW1lbnRhdGlvbiBvZiB0eXBlaWQoVCkubmFtZSgpIG1hbmdsZXMgdGhlIHR5cGUgbmFtZSwK
LSAgLy8gc28gd2UgaGF2ZSB0byBkZW1hbmdsZSBpdC4KLSMgICBpZiBHVEVTVF9IQVNfQ1hYQUJJ
X0hfCi0gIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYgIC8vIEdURVNUX0hB
U19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9fY3hhX2RlbWFuZ2xl
KG5hbWUsIDAsIDAsICZzdGF0dXMpOwotICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lX3N0cihzdGF0
dXMgPT0gMCA/IHJlYWRhYmxlX25hbWUgOiBuYW1lKTsKLSAgZnJlZShyZWFkYWJsZV9uYW1lKTsK
LSAgcmV0dXJuIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZlcnNpb25pbmcobmFtZV9zdHIpOwotIyAg
ZWxzZQotICByZXR1cm4gbmFtZTsKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8
IF9fSFBfYUNDCi0KLSMgZWxzZQotCi0gIHJldHVybiAiPHR5cGU+IjsKLQotIyBlbmRpZiAgLy8g
R1RFU1RfSEFTX1JUVEkKLX0KLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hB
U19UWVBFRF9URVNUX1AKLQotLy8gQXNzZXJ0eVR5cGVFcTxUMSwgVDI+Ojp0eXBlIGlzIGRlZmlu
ZWQgaWZmIFQxIGFuZCBUMiBhcmUgdGhlIHNhbWUKLS8vIHR5cGUuICBUaGlzIGNhbiBiZSB1c2Vk
IGFzIGEgY29tcGlsZS10aW1lIGFzc2VydGlvbiB0byBlbnN1cmUgdGhhdAotLy8gdHdvIHR5cGVz
IGFyZSBlcXVhbC4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXN0cnVj
dCBBc3NlcnRUeXBlRXE7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFzc2VydFR5
cGVFcTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKLQotLy8gQSB1bmlxdWUgdHlw
ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYXJndW1lbnRzIG9mIGNsYXNzCi0v
LyB0ZW1wbGF0ZSBUeXBlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlIHZhcmlhZGljIHRl
bXBsYXRlcwotLy8gKGUuZy4gVHlwZXM8aW50PiwgVHlwZTxpbnQsIGRvdWJsZT4sIGFuZCBldGMp
LCB3aGljaCBDKysgZG9lc24ndAotLy8gc3VwcG9ydCBkaXJlY3RseS4KLXN0cnVjdCBOb25lIHt9
OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0
ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4gcGFydGljdWxhciwg
VHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBlIGxpc3Qgd2l0aCBO
IHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2VwdCBmb3IgVHlwZXMw
LCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoKLS8vIEhl
YWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBmb3IgdGhlIHJlc3Qg
b2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgotc3RydWN0IFR5cGVz
MCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLQotJHJhbmdlIGkgMi4ubgotCi0kZm9yIGkg
W1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkKLXRlbXBsYXRlIDwkZm9yIGosIFtbdHlw
ZW5hbWUgVCRqXV0+Ci1zdHJ1Y3QgVHlwZXMkaSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlcyQoaS0xKTwkZm9yIGssIFtbVCRrXV0+IFRhaWw7Ci19OwotCi0KLV1dCi0KLX0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBXZSBkb24ndCB3YW50IHRvIHJlcXVpcmUgdGhl
IHVzZXJzIHRvIHdyaXRlIFR5cGVzTjwuLi4+IGRpcmVjdGx5LAotLy8gYXMgdGhhdCB3b3VsZCBy
ZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFR5cGVzPC4uLj4gaXMgbXVjaAotLy8g
ZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhl
cmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91
dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQg
dmFsdWUgKHRoaXMgbWVhbnMgVHlwZXM8aW50PgotLy8gd2lsbCBhcHBlYXIgYXMgVHlwZXM8aW50
LCBOb25lLCBOb25lLCAuLi4sIE5vbmU+IGluIHRoZSBjb21waWxlcgotLy8gZXJyb3JzKS4KLS8v
Ci0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0IG9mIHRoZSB0d28g
YXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0ZSBUeXBlczxUMSwgLi4uLCBUTj4sIGFu
ZCBHb29nbGUgVGVzdCB3aWxsIHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUeXBlc048VDEsIC4uLiwg
VE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUg
dHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFR5cGVz
IHRlbXBsYXRlLgotCi0kcmFuZ2UgaSAxLi5uCi10ZW1wbGF0ZSA8JGZvciBpLCBbW3R5cGVuYW1l
IFQkaSA9IGludGVybmFsOjpOb25lXV0+Ci1zdHJ1Y3QgVHlwZXMgewotICB0eXBlZGVmIGludGVy
bmFsOjpUeXBlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1z
dHJ1Y3QgVHlwZXM8JGZvciBpLCBbW2ludGVybmFsOjpOb25lXV0+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMwIHR5cGU7Ci19OwotCi0kcmFuZ2UgaSAxLi5uLTEKLSRmb3IgaSBbWwotJHJh
bmdlIGogMS4uaQotJHJhbmdlIGsgaSsxLi5uCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1l
IFQkal1dPgotc3RydWN0IFR5cGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBpbnRlcm5hbDo6
Tm9uZV1dPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0
eXBlOwotfTsKLQotXV0KLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQotIyBkZWZpbmUgR1RFU1Rf
VEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcwotCi0vLyBUaGUgdGVtcGxhdGUg
InNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8VG1wbD4gaXMgdXNlZCB0bwotLy8gcmVwcmVz
ZW50IFRtcGwsIHdoaWNoIG11c3QgYmUgYSBjbGFzcyB0ZW1wbGF0ZSB3aXRoIG9uZSB0eXBlCi0v
LyBwYXJhbWV0ZXIsIGFzIGEgdHlwZS4gIFRlbXBsYXRlU2VsPFRtcGw+OjpCaW5kPFQ+Ojp0eXBl
IGlzIGRlZmluZWQKLS8vIGFzIHRoZSB0eXBlIFRtcGw8VD4uICBUaGlzIGFsbG93cyB1cyB0byBh
Y3R1YWxseSBpbnN0YW50aWF0ZSB0aGUKLS8vIHRlbXBsYXRlICJzZWxlY3RlZCIgYnkgVGVtcGxh
dGVTZWw8VG1wbD4uCi0vLwotLy8gVGhpcyB0cmljayBpcyBuZWNlc3NhcnkgZm9yIHNpbXVsYXRp
bmcgdHlwZWRlZiBmb3IgY2xhc3MgdGVtcGxhdGVzLAotLy8gd2hpY2ggQysrIGRvZXNuJ3Qgc3Vw
cG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVG1wbD4KLXN0cnVjdCBU
ZW1wbGF0ZVNlbCB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBzdHJ1Y3QgQmluZCB7Ci0g
ICAgdHlwZWRlZiBUbXBsPFQ+IHR5cGU7Ci0gIH07Ci19OwotCi0jIGRlZmluZSBHVEVTVF9CSU5E
XyhUbXBsU2VsLCBUKSBcCi0gIFRtcGxTZWw6OnRlbXBsYXRlIEJpbmQ8VD46OnR5cGUKLQotLy8g
QSB1bmlxdWUgc3RydWN0IHRlbXBsYXRlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRo
ZQotLy8gYXJndW1lbnRzIG9mIGNsYXNzIHRlbXBsYXRlIFRlbXBsYXRlcy4gIFRoaXMgYWxsb3dz
IHVzIHRvIHNpbXVsYXRlCi0vLyB2YXJpYWRpYyB0ZW1wbGF0ZXMgKGUuZy4gVGVtcGxhdGVzPGlu
dD4sIFRlbXBsYXRlczxpbnQsIGRvdWJsZT4sCi0vLyBhbmQgZXRjKSwgd2hpY2ggQysrIGRvZXNu
J3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IE5vbmVU
IHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1w
bGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0ZW1wbGF0ZSBsaXN0cy4gIEluIHBhcnRp
Y3VsYXIsIFRlbXBsYXRlc048VDEsIFQyLCAuLi4sCi0vLyBUTj4gcmVwcmVzZW50cyBhIGxpc3Qg
b2YgTiB0ZW1wbGF0ZXMgKFQxLCBUMiwgLi4uLCBhbmQgVE4pLiAgRXhjZXB0Ci0vLyBmb3IgVGVt
cGxhdGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6
Ci0vLyBIZWFkIGZvciB0aGUgc2VsZWN0b3Igb2YgdGhlIGZpcnN0IHRlbXBsYXRlIGluIHRoZSBs
aXN0LCBhbmQgVGFpbAotLy8gZm9yIHRoZSByZXN0IG9mIHRoZSBsaXN0LgotCi0vLyBUaGUgZW1w
dHkgdGVtcGxhdGUgbGlzdC4KLXN0cnVjdCBUZW1wbGF0ZXMwIHt9OwotCi0vLyBUZW1wbGF0ZSBs
aXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQx
PiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczAgVGFpbDsKLX07Ci0KLSRyYW5nZSBpIDIuLm4K
LQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2UgayAyLi5pCi10ZW1wbGF0ZSA8JGZv
ciBqLCBbW0dURVNUX1RFTVBMQVRFXyBUJGpdXT4KLXN0cnVjdCBUZW1wbGF0ZXMkaSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzJChpLTEpPCRm
b3IgaywgW1tUJGtdXT4gVGFpbDsKLX07Ci0KLQotXV0KLQotLy8gV2UgZG9uJ3Qgd2FudCB0byBy
ZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBh
cyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVGVtcGxhdGVz
PC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxl
IG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNp
c3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBp
dCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVzPGxpc3Q+Ci0vLyB3
aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAuLi4sIE5vbmVUPiBp
biB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0aW9uIGlzIHRvIGNv
bWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEKLS8vIHVzZXIgd291
bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJh
bnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8g
bWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9u
ZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0ZW1wbGF0ZS4KLQot
JHJhbmdlIGkgMS4ubgotdGVtcGxhdGUgPCRmb3IgaSwgW1tHVEVTVF9URU1QTEFURV8gVCRpID0g
Tm9uZVRdXT4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0eXBlZGVmIFRlbXBsYXRlcyRuPCRmb3Ig
aSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVGVtcGxhdGVzPCRm
b3IgaSwgW1tOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMCB0eXBlOwotfTsKLQotJHJh
bmdlIGkgMS4ubi0xCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIGkrMS4ubgot
dGVtcGxhdGUgPCRmb3IgaiwgW1tHVEVTVF9URU1QTEFURV8gVCRqXV0+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0eXBlOwotfTsKLQotXV0KLQotLy8gVGhlIFR5cGVMaXN0
IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBlaXRoZXIgYSBzaW5nbGUgdHlwZQot
Ly8gb3IgYSBUeXBlczwuLi4+IGxpc3QgaW4gVFlQRURfVEVTVF9DQVNFKCkgYW5kCi0vLyBJTlNU
QU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
cnVjdCBUeXBlTGlzdCB7Ci0gIHR5cGVkZWYgVHlwZXMxPFQ+IHR5cGU7Ci19OwotCi0KLSRyYW5n
ZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpXV0+Ci1zdHJ1Y3QgVHlw
ZUxpc3Q8VHlwZXM8JGZvciBpLCBbW1QkaV1dPiA+IHsKLSAgdHlwZWRlZiB0eXBlbmFtZSBUeXBl
czwkZm9yIGksIFtbVCRpXV0+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tNC9hY3hfcHRocmVhZC5tNCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
Y2YyMGRlMTQ0YTExYmUyYWE2MDNiMDRlYTUxMTI0NDE5MTAzN2I3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200
L2FjeF9wdGhyZWFkLm00CisrKyAvZGV2L251bGwKQEAgLTEsMzYzICswLDAgQEAKLSMgVGhpcyB3
YXMgcmV0cmlldmVkIGZyb20KLSMgICAgaHR0cDovL3N2bi4wcG9pbnRlci5kZS92aWV3dmMvdHJ1
bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3JldmlzaW9uPTEyNzcmcm9vdD1hdmFoaQotIyBTZWUg
YWxzbyAocGVyaGFwcyBmb3IgbmV3IHZlcnNpb25zPykKLSMgICAgaHR0cDovL3N2bi4wcG9pbnRl
ci5kZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3Jvb3Q9YXZhaGkKLSMKLSMg
V2UndmUgcmV3cml0dGVuIHRoZSBpbmNvbnNpc3RlbmN5IGNoZWNrIGNvZGUgKGZyb20gYXZhaGkp
LCB0byB3b3JrCi0jIG1vcmUgYnJvYWRseS4gIEluIHBhcnRpY3VsYXIsIGl0IG5vIGxvbmdlciBh
c3N1bWVzIGxkIGFjY2VwdHMgLXpkZWZzLgotIyBUaGlzIGNhdXNlZCBhIHJlc3RydWN0aW5nIG9m
IHRoZSBjb2RlLCBidXQgdGhlIGZ1bmN0aW9uYWxpdHkgaGFzIG9ubHkKLSMgY2hhbmdlZCBhIGxp
dHRsZS4KLQotZG5sIEBzeW5vcHNpcyBBQ1hfUFRIUkVBRChbQUNUSU9OLUlGLUZPVU5EWywgQUNU
SU9OLUlGLU5PVC1GT1VORF1dKQotZG5sCi1kbmwgQHN1bW1hcnkgZmlndXJlIG91dCBob3cgdG8g
YnVpbGQgQyBwcm9ncmFtcyB1c2luZyBQT1NJWCB0aHJlYWRzCi1kbmwKLWRubCBUaGlzIG1hY3Jv
IGZpZ3VyZXMgb3V0IGhvdyB0byBidWlsZCBDIHByb2dyYW1zIHVzaW5nIFBPU0lYIHRocmVhZHMu
Ci1kbmwgSXQgc2V0cyB0aGUgUFRIUkVBRF9MSUJTIG91dHB1dCB2YXJpYWJsZSB0byB0aGUgdGhy
ZWFkcyBsaWJyYXJ5IGFuZAotZG5sIGxpbmtlciBmbGFncywgYW5kIHRoZSBQVEhSRUFEX0NGTEFH
UyBvdXRwdXQgdmFyaWFibGUgdG8gYW55IHNwZWNpYWwKLWRubCBDIGNvbXBpbGVyIGZsYWdzIHRo
YXQgYXJlIG5lZWRlZC4gKFRoZSB1c2VyIGNhbiBhbHNvIGZvcmNlIGNlcnRhaW4KLWRubCBjb21w
aWxlciBmbGFncy9saWJzIHRvIGJlIHRlc3RlZCBieSBzZXR0aW5nIHRoZXNlIGVudmlyb25tZW50
Ci1kbmwgdmFyaWFibGVzLikKLWRubAotZG5sIEFsc28gc2V0cyBQVEhSRUFEX0NDIHRvIGFueSBz
cGVjaWFsIEMgY29tcGlsZXIgdGhhdCBpcyBuZWVkZWQgZm9yCi1kbmwgbXVsdGktdGhyZWFkZWQg
cHJvZ3JhbXMgKGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBDQyBvdGhlcndpc2UpLgotZG5sIChU
aGlzIGlzIG5lY2Vzc2FyeSBvbiBBSVggdG8gdXNlIHRoZSBzcGVjaWFsIGNjX3IgY29tcGlsZXIg
YWxpYXMuKQotZG5sCi1kbmwgTk9URTogWW91IGFyZSBhc3N1bWVkIHRvIG5vdCBvbmx5IGNvbXBp
bGUgeW91ciBwcm9ncmFtIHdpdGggdGhlc2UKLWRubCBmbGFncywgYnV0IGFsc28gbGluayBpdCB3
aXRoIHRoZW0gYXMgd2VsbC4gZS5nLiB5b3Ugc2hvdWxkIGxpbmsKLWRubCB3aXRoICRQVEhSRUFE
X0NDICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTICRMREZMQUdTIC4uLiAkUFRIUkVBRF9MSUJTCi1k
bmwgJExJQlMKLWRubAotZG5sIElmIHlvdSBhcmUgb25seSBidWlsZGluZyB0aHJlYWRzIHByb2dy
YW1zLCB5b3UgbWF5IHdpc2ggdG8gdXNlCi1kbmwgdGhlc2UgdmFyaWFibGVzIGluIHlvdXIgZGVm
YXVsdCBMSUJTLCBDRkxBR1MsIGFuZCBDQzoKLWRubAotZG5sICAgICAgICBMSUJTPSIkUFRIUkVB
RF9MSUJTICRMSUJTIgotZG5sICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdT
IgotZG5sICAgICAgICBDQz0iJFBUSFJFQURfQ0MiCi1kbmwKLWRubCBJbiBhZGRpdGlvbiwgaWYg
dGhlIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIHRocmVhZC1hdHRyaWJ1dGUKLWRubCBjb25zdGFu
dCBoYXMgYSBub25zdGFuZGFyZCBuYW1lLCBkZWZpbmVzIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxF
IHRvCi1kbmwgdGhhdCBuYW1lIChlLmcuIFBUSFJFQURfQ1JFQVRFX1VOREVUQUNIRUQgb24gQUlY
KS4KLWRubAotZG5sIEFDVElPTi1JRi1GT1VORCBpcyBhIGxpc3Qgb2Ygc2hlbGwgY29tbWFuZHMg
dG8gcnVuIGlmIGEgdGhyZWFkcwotZG5sIGxpYnJhcnkgaXMgZm91bmQsIGFuZCBBQ1RJT04tSUYt
Tk9ULUZPVU5EIGlzIGEgbGlzdCBvZiBjb21tYW5kcyB0bwotZG5sIHJ1biBpdCBpZiBpdCBpcyBu
b3QgZm91bmQuIElmIEFDVElPTi1JRi1GT1VORCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUKLWRubCBk
ZWZhdWx0IGFjdGlvbiB3aWxsIGRlZmluZSBIQVZFX1BUSFJFQUQuCi1kbmwKLWRubCBQbGVhc2Ug
bGV0IHRoZSBhdXRob3JzIGtub3cgaWYgdGhpcyBtYWNybyBmYWlscyBvbiBhbnkgcGxhdGZvcm0s
IG9yCi1kbmwgaWYgeW91IGhhdmUgYW55IG90aGVyIHN1Z2dlc3Rpb25zIG9yIGNvbW1lbnRzLiBU
aGlzIG1hY3JvIHdhcyBiYXNlZAotZG5sIG9uIHdvcmsgYnkgU0dKIG9uIGF1dG9jb25mIHNjcmlw
dHMgZm9yIEZGVFcgKHd3dy5mZnR3Lm9yZykgKHdpdGgKLWRubCBoZWxwIGZyb20gTS4gRnJpZ28p
LCBhcyB3ZWxsIGFzIGFjX3B0aHJlYWQgYW5kIGhiX3B0aHJlYWQgbWFjcm9zCi1kbmwgcG9zdGVk
IGJ5IEFsZWphbmRybyBGb3Jlcm8gQ3VlcnZvIHRvIHRoZSBhdXRvY29uZiBtYWNybyByZXBvc2l0
b3J5LgotZG5sIFdlIGFyZSBhbHNvIGdyYXRlZnVsIGZvciB0aGUgaGVscGZ1bCBmZWVkYmFjayBv
ZiBudW1lcm91cyB1c2Vycy4KLWRubAotZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwot
ZG5sIEBhdXRob3IgU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgotZG5s
IEB2ZXJzaW9uIDIwMDYtMDUtMjkKLWRubCBAbGljZW5zZSBHUExXaXRoQUNFeGNlcHRpb24KLWRu
bCAKLWRubCBDaGVja3MgZm9yIEdDQyBzaGFyZWQvcHRocmVhZCBpbmNvbnNpc3RlbmN5IGJhc2Vk
IG9uIHdvcmsgYnkKLWRubCBNYXJjaW4gT3dzaWFueSA8bWFyY2luQG93c2lhbnkucGw+Ci0KLQot
QUNfREVGVU4oW0FDWF9QVEhSRUFEXSwgWwotQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1Rd
KQotQUNfTEFOR19TQVZFCi1BQ19MQU5HX0MKLWFjeF9wdGhyZWFkX29rPW5vCi0KLSMgV2UgdXNl
ZCB0byBjaGVjayBmb3IgcHRocmVhZC5oIGZpcnN0LCBidXQgdGhpcyBmYWlscyBpZiBwdGhyZWFk
LmgKLSMgcmVxdWlyZXMgc3BlY2lhbCBjb21waWxlciBmbGFncyAoZS5nLiBvbiBUcnVlNjQgb3Ig
U2VxdWVudCkuCi0jIEl0IGdldHMgY2hlY2tlZCBmb3IgaW4gdGhlIGxpbmsgdGVzdCBhbnl3YXku
Ci0KLSMgRmlyc3Qgb2YgYWxsLCBjaGVjayBpZiB0aGUgdXNlciBoYXMgc2V0IGFueSBvZiB0aGUg
UFRIUkVBRF9MSUJTLAotIyBldGNldGVyYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGFuZCBpZiB0
aHJlYWRzIGxpbmtpbmcgd29ya3MgdXNpbmcKLSMgdGhlbToKLWlmIHRlc3QgeCIkUFRIUkVBRF9M
SUJTJFBUSFJFQURfQ0ZMQUdTIiAhPSB4OyB0aGVuCi0gICAgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZM
QUdTIgotICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBz
YXZlX0xJQlM9IiRMSUJTIgotICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotICAg
ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBwdGhyZWFkX2pvaW4gaW4gTElCUz0kUFRIUkVBRF9M
SUJTIHdpdGggQ0ZMQUdTPSRQVEhSRUFEX0NGTEFHU10pCi0gICAgICAgIEFDX1RSWV9MSU5LX0ZV
TkMocHRocmVhZF9qb2luLCBhY3hfcHRocmVhZF9vaz15ZXMpCi0gICAgICAgIEFDX01TR19SRVNV
TFQoJGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9
IHhubzsgdGhlbgotICAgICAgICAgICAgICAgIFBUSFJFQURfTElCUz0iIgotICAgICAgICAgICAg
ICAgIFBUSFJFQURfQ0ZMQUdTPSIiCi0gICAgICAgIGZpCi0gICAgICAgIExJQlM9IiRzYXZlX0xJ
QlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotZmkKLQotIyBXZSBtdXN0IGNoZWNr
IGZvciB0aGUgdGhyZWFkcyBsaWJyYXJ5IHVuZGVyIGEgbnVtYmVyIG9mIGRpZmZlcmVudAotIyBu
YW1lczsgdGhlIG9yZGVyaW5nIGlzIHZlcnkgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBzeXN0ZW1z
Ci0jIChlLmcuIERFQykgaGF2ZSBib3RoIC1scHRocmVhZCBhbmQgLWxwdGhyZWFkcywgd2hlcmUg
b25lIG9mIHRoZQotIyBsaWJyYXJpZXMgaXMgYnJva2VuIChub24tUE9TSVgpLgotCi0jIENyZWF0
ZSBhIGxpc3Qgb2YgdGhyZWFkIGZsYWdzIHRvIHRyeS4gIEl0ZW1zIHN0YXJ0aW5nIHdpdGggYSAi
LSIgYXJlCi0jIEMgY29tcGlsZXIgZmxhZ3MsIGFuZCBvdGhlciBpdGVtcyBhcmUgbGlicmFyeSBu
YW1lcywgZXhjZXB0IGZvciAibm9uZSIKLSMgd2hpY2ggaW5kaWNhdGVzIHRoYXQgd2UgdHJ5IHdp
dGhvdXQgYW55IGZsYWdzIGF0IGFsbCwgYW5kICJwdGhyZWFkLWNvbmZpZyIKLSMgd2hpY2ggaXMg
YSBwcm9ncmFtIHJldHVybmluZyB0aGUgZmxhZ3MgZm9yIHRoZSBQdGggZW11bGF0aW9uIGxpYnJh
cnkuCi0KLWFjeF9wdGhyZWFkX2ZsYWdzPSJwdGhyZWFkcyBub25lIC1LdGhyZWFkIC1rdGhyZWFk
IGx0aHJlYWQgLXB0aHJlYWQgLXB0aHJlYWRzIC1tdGhyZWFkcyBwdGhyZWFkIC0tdGhyZWFkLXNh
ZmUgLW10IHB0aHJlYWQtY29uZmlnIgotCi0jIFRoZSBvcmRlcmluZyAqaXMqIChzb21ldGltZXMp
IGltcG9ydGFudC4gIFNvbWUgbm90ZXMgb24gdGhlCi0jIGluZGl2aWR1YWwgaXRlbXMgZm9sbG93
OgotCi0jIHB0aHJlYWRzOiBBSVggKG11c3QgY2hlY2sgdGhpcyBiZWZvcmUgLWxwdGhyZWFkKQot
IyBub25lOiBpbiBjYXNlIHRocmVhZHMgYXJlIGluIGxpYmM7IHNob3VsZCBiZSB0cmllZCBiZWZv
cmUgLUt0aHJlYWQgYW5kCi0jICAgICAgIG90aGVyIGNvbXBpbGVyIGZsYWdzIHRvIHByZXZlbnQg
Y29udGludWFsIGNvbXBpbGVyIHdhcm5pbmdzCi0jIC1LdGhyZWFkOiBTZXF1ZW50ICh0aHJlYWRz
IGluIGxpYmMsIGJ1dCAtS3RocmVhZCBuZWVkZWQgZm9yIHB0aHJlYWQuaCkKLSMgLWt0aHJlYWQ6
IEZyZWVCU0Qga2VybmVsIHRocmVhZHMgKHByZWZlcnJlZCB0byAtcHRocmVhZCBzaW5jZSBTTVAt
YWJsZSkKLSMgbHRocmVhZDogTGludXhUaHJlYWRzIHBvcnQgb24gRnJlZUJTRCAoYWxzbyBwcmVm
ZXJyZWQgdG8gLXB0aHJlYWQpCi0jIC1wdGhyZWFkOiBMaW51eC9nY2MgKGtlcm5lbCB0aHJlYWRz
KSwgQlNEL2djYyAodXNlcmxhbmQgdGhyZWFkcykKLSMgLXB0aHJlYWRzOiBTb2xhcmlzL2djYwot
IyAtbXRocmVhZHM6IE1pbmd3MzIvZ2NjLCBMeW54L2djYwotIyAtbXQ6IFN1biBXb3Jrc2hvcCBD
IChtYXkgb25seSBsaW5rIFN1bk9TIHRocmVhZHMgWy1sdGhyZWFkXSwgYnV0IGl0Ci0jICAgICAg
ZG9lc24ndCBodXJ0IHRvIGNoZWNrIHNpbmNlIHRoaXMgc29tZXRpbWVzIGRlZmluZXMgcHRocmVh
ZHMgdG9vOwotIyAgICAgIGFsc28gZGVmaW5lcyAtRF9SRUVOVFJBTlQpCi0jICAgICAgLi4uIC1t
dCBpcyBhbHNvIHRoZSBwdGhyZWFkcyBmbGFnIGZvciBIUC9hQ0MKLSMgcHRocmVhZDogTGludXgs
IGV0Y2V0ZXJhCi0jIC0tdGhyZWFkLXNhZmU6IEtBSSBDKysKLSMgcHRocmVhZC1jb25maWc6IHVz
ZSBwdGhyZWFkLWNvbmZpZyBwcm9ncmFtIChmb3IgR05VIFB0aCBsaWJyYXJ5KQotCi1jYXNlICIk
e2hvc3RfY3B1fS0ke2hvc3Rfb3N9IiBpbgotICAgICAgICAqc29sYXJpcyopCi0KLSAgICAgICAg
IyBPbiBTb2xhcmlzIChhdCBsZWFzdCwgZm9yIHNvbWUgdmVyc2lvbnMpLCBsaWJjIGNvbnRhaW5z
IHN0dWJiZWQKLSAgICAgICAgIyAobm9uLWZ1bmN0aW9uYWwpIHZlcnNpb25zIG9mIHRoZSBwdGhy
ZWFkcyByb3V0aW5lcywgc28gbGluay1iYXNlZAotICAgICAgICAjIHRlc3RzIHdpbGwgZXJyb25l
b3VzbHkgc3VjY2VlZC4gIChXZSBuZWVkIHRvIGxpbmsgd2l0aCAtcHRocmVhZHMvLW10LwotICAg
ICAgICAjIC1scHRocmVhZC4pICAoVGhlIHN0dWJzIGFyZSBtaXNzaW5nIHB0aHJlYWRfY2xlYW51
cF9wdXNoLCBvciByYXRoZXIKLSAgICAgICAgIyBhIGZ1bmN0aW9uIGNhbGxlZCBieSB0aGlzIG1h
Y3JvLCBzbyB3ZSBjb3VsZCBjaGVjayBmb3IgdGhhdCwgYnV0Ci0gICAgICAgICMgd2hvIGtub3dz
IHdoZXRoZXIgdGhleSdsbCBzdHViIHRoYXQgdG9vIGluIGEgZnV0dXJlIGxpYmMuKSAgU28sCi0g
ICAgICAgICMgd2UnbGwganVzdCBsb29rIGZvciAtcHRocmVhZHMgYW5kIC1scHRocmVhZCBmaXJz
dDoKLQotICAgICAgICBhY3hfcHRocmVhZF9mbGFncz0iLXB0aHJlYWRzIHB0aHJlYWQgLW10IC1w
dGhyZWFkICRhY3hfcHRocmVhZF9mbGFncyIKLSAgICAgICAgOzsKLWVzYWMKLQotaWYgdGVzdCB4
IiRhY3hfcHRocmVhZF9vayIgPSB4bm87IHRoZW4KLWZvciBmbGFnIGluICRhY3hfcHRocmVhZF9m
bGFnczsgZG8KLQotICAgICAgICBjYXNlICRmbGFnIGluCi0gICAgICAgICAgICAgICAgbm9uZSkK
LSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgcHRocmVhZHMgd29yayB3
aXRob3V0IGFueSBmbGFnc10pCi0gICAgICAgICAgICAgICAgOzsKLQotICAgICAgICAgICAgICAg
IC0qKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciBwdGhyZWFkcyB3
b3JrIHdpdGggJGZsYWddKQotICAgICAgICAgICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIkZmxhZyIK
LSAgICAgICAgICAgICAgICA7OwotCi0JCXB0aHJlYWQtY29uZmlnKQotCQlBQ19DSEVDS19QUk9H
KGFjeF9wdGhyZWFkX2NvbmZpZywgcHRocmVhZC1jb25maWcsIHllcywgbm8pCi0JCWlmIHRlc3Qg
eCIkYWN4X3B0aHJlYWRfY29uZmlnIiA9IHhubzsgdGhlbiBjb250aW51ZTsgZmkKLQkJUFRIUkVB
RF9DRkxBR1M9ImBwdGhyZWFkLWNvbmZpZyAtLWNmbGFnc2AiCi0JCVBUSFJFQURfTElCUz0iYHB0
aHJlYWQtY29uZmlnIC0tbGRmbGFnc2AgYHB0aHJlYWQtY29uZmlnIC0tbGlic2AiCi0JCTs7Ci0K
LSAgICAgICAgICAgICAgICAqKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9y
IHRoZSBwdGhyZWFkcyBsaWJyYXJ5IC1sJGZsYWddKQotICAgICAgICAgICAgICAgIFBUSFJFQURf
TElCUz0iLWwkZmxhZyIKLSAgICAgICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0KLSAgICAg
ICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAg
ICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0gICAgICAgIENGTEFHUz0iJENGTEFHUyAk
UFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBDaGVjayBmb3IgdmFyaW91cyBmdW5jdGlvbnMu
ICBXZSBtdXN0IGluY2x1ZGUgcHRocmVhZC5oLAotICAgICAgICAjIHNpbmNlIHNvbWUgZnVuY3Rp
b25zIG1heSBiZSBtYWNyb3MuICAoT24gdGhlIFNlcXVlbnQsIHdlCi0gICAgICAgICMgbmVlZCBh
IHNwZWNpYWwgZmxhZyAtS3RocmVhZCB0byBtYWtlIHRoaXMgaGVhZGVyIGNvbXBpbGUuKQotICAg
ICAgICAjIFdlIGNoZWNrIGZvciBwdGhyZWFkX2pvaW4gYmVjYXVzZSBpdCBpcyBpbiAtbHB0aHJl
YWQgb24gSVJJWAotICAgICAgICAjIHdoaWxlIHB0aHJlYWRfY3JlYXRlIGlzIGluIGxpYmMuICBX
ZSBjaGVjayBmb3IgcHRocmVhZF9hdHRyX2luaXQKLSAgICAgICAgIyBkdWUgdG8gREVDIGNyYXpp
bmVzcyB3aXRoIC1scHRocmVhZHMuICBXZSBjaGVjayBmb3IKLSAgICAgICAgIyBwdGhyZWFkX2Ns
ZWFudXBfcHVzaCBiZWNhdXNlIGl0IGlzIG9uZSBvZiB0aGUgZmV3IHB0aHJlYWQKLSAgICAgICAg
IyBmdW5jdGlvbnMgb24gU29sYXJpcyB0aGF0IGRvZXNuJ3QgaGF2ZSBhIG5vbi1mdW5jdGlvbmFs
IGxpYmMgc3R1Yi4KLSAgICAgICAgIyBXZSB0cnkgcHRocmVhZF9jcmVhdGUgb24gZ2VuZXJhbCBw
cmluY2lwbGVzLgotICAgICAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAot
ICAgICAgICAgICAgICAgICAgICBbcHRocmVhZF90IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwot
ICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51
cF9wdXNoKDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9jcmVhdGUoMCwwLDAs
MCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0gICAgICAgICAgICAgICAgICAgIFthY3hf
cHRocmVhZF9vaz15ZXNdKQotCi0gICAgICAgIExJQlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENG
TEFHUz0iJHNhdmVfQ0ZMQUdTIgotCi0gICAgICAgIEFDX01TR19SRVNVTFQoJGFjeF9wdGhyZWFk
X29rKQotICAgICAgICBpZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZmkKLQotICAgICAgICBQVEhSRUFEX0xJQlM9
IiIKLSAgICAgICAgUFRIUkVBRF9DRkxBR1M9IiIKLWRvbmUKLWZpCi0KLSMgVmFyaW91cyBvdGhl
ciBjaGVja3M6Ci1pZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAgICAg
ICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgTElCUz0iJFBUSFJFQURfTElCUyAkTElCUyIK
LSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAgICAgIENGTEFHUz0iJENGTEFHUyAk
UFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBEZXRlY3QgQUlYIGxvc3NhZ2U6IEpPSU5BQkxF
IGF0dHJpYnV0ZSBpcyBjYWxsZWQgVU5ERVRBQ0hFRC4KLQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBq
b2luYWJsZSBwdGhyZWFkIGF0dHJpYnV0ZV0pCi0JYXR0cl9uYW1lPXVua25vd24KLQlmb3IgYXR0
ciBpbiBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBQVEhSRUFEX0NSRUFURV9VTkRFVEFDSEVEOyBk
bwotCSAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLCBbaW50IGF0dHI9JGF0
dHI7IHJldHVybiBhdHRyO10sCi0gICAgICAgICAgICAgICAgICAgICAgICBbYXR0cl9uYW1lPSRh
dHRyOyBicmVha10pCi0JZG9uZQotICAgICAgICBBQ19NU0dfUkVTVUxUKCRhdHRyX25hbWUpCi0g
ICAgICAgIGlmIHRlc3QgIiRhdHRyX25hbWUiICE9IFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFOyB0
aGVuCi0gICAgICAgICAgICBBQ19ERUZJTkVfVU5RVU9URUQoUFRIUkVBRF9DUkVBVEVfSk9JTkFC
TEUsICRhdHRyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmluZSB0
byBuZWNlc3Nhcnkgc3ltYm9sIGlmIHRoaXMgY29uc3RhbnQKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlcyBhIG5vbi1zdGFuZGFyZCBuYW1lIG9uIHlvdXIgc3lzdGVtLl0pCi0g
ICAgICAgIGZpCi0KLSAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBtb3JlIHNwZWNpYWwgZmxh
Z3MgYXJlIHJlcXVpcmVkIGZvciBwdGhyZWFkc10pCi0gICAgICAgIGZsYWc9bm8KLSAgICAgICAg
Y2FzZSAiJHtob3N0X2NwdX0tJHtob3N0X29zfSIgaW4KLSAgICAgICAgICAgICotYWl4KiB8ICot
ZnJlZWJzZCogfCAqLWRhcndpbiopIGZsYWc9Ii1EX1RIUkVBRF9TQUZFIjs7Ci0gICAgICAgICAg
ICAqc29sYXJpcyogfCAqLW9zZiogfCAqLWhwdXgqKSBmbGFnPSItRF9SRUVOVFJBTlQiOzsKLSAg
ICAgICAgZXNhYwotICAgICAgICBBQ19NU0dfUkVTVUxUKCR7ZmxhZ30pCi0gICAgICAgIGlmIHRl
c3QgIngkZmxhZyIgIT0geG5vOyB0aGVuCi0gICAgICAgICAgICBQVEhSRUFEX0NGTEFHUz0iJGZs
YWcgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBmaQotCi0gICAgICAgIExJQlM9IiRzYXZlX0xJ
QlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotICAgICAgICAjIE1vcmUgQUlYIGxv
c3NhZ2U6IG11c3QgY29tcGlsZSB3aXRoIHhsY19yIG9yIGNjX3IKLQlpZiB0ZXN0IHgiJEdDQyIg
IT0geHllczsgdGhlbgotICAgICAgICAgIEFDX0NIRUNLX1BST0dTKFBUSFJFQURfQ0MsIHhsY19y
IGNjX3IsICR7Q0N9KQotICAgICAgICBlbHNlCi0gICAgICAgICAgUFRIUkVBRF9DQz0kQ0MKLQlm
aQotCi0JIyBUaGUgbmV4dCBwYXJ0IHRyaWVzIHRvIGRldGVjdCBHQ0MgaW5jb25zaXN0ZW5jeSB3
aXRoIC1zaGFyZWQgb24gc29tZQotCSMgYXJjaGl0ZWN0dXJlcyBhbmQgc3lzdGVtcy4gVGhlIHBy
b2JsZW0gaXMgdGhhdCBpbiBjZXJ0YWluCi0JIyBjb25maWd1cmF0aW9ucywgd2hlbiAtc2hhcmVk
IGlzIHNwZWNpZmllZCwgR0NDICJmb3JnZXRzIiB0bwotCSMgaW50ZXJuYWxseSB1c2UgdmFyaW91
cyBmbGFncyB3aGljaCBhcmUgc3RpbGwgbmVjZXNzYXJ5LgotCQotCSMKLQkjIFByZXBhcmUgdGhl
IGZsYWdzCi0JIwotCXNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotCXNhdmVfTElCUz0iJExJQlMiCi0J
c2F2ZV9DQz0iJENDIgotCQotCSMgVHJ5IHdpdGggdGhlIGZsYWdzIGRldGVybWluZWQgYnkgdGhl
IGVhcmxpZXIgY2hlY2tzLgotCSMKLQkjIC1XbCwteixkZWZzIGZvcmNlcyBsaW5rLXRpbWUgc3lt
Ym9sIHJlc29sdXRpb24sIHNvIHRoYXQgdGhlCi0JIyBsaW5raW5nIGNoZWNrcyB3aXRoIC1zaGFy
ZWQgYWN0dWFsbHkgaGF2ZSBhbnkgdmFsdWUKLQkjCi0JIyBGSVhNRTogLWZQSUMgaXMgcmVxdWly
ZWQgZm9yIC1zaGFyZWQgb24gbWFueSBhcmNoaXRlY3R1cmVzLAotCSMgc28gd2Ugc3BlY2lmeSBp
dCBoZXJlLCBidXQgdGhlIHJpZ2h0IHdheSB3b3VsZCBwcm9iYWJseSBiZSB0bwotCSMgcHJvcGVy
bHkgZGV0ZWN0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkgcmVxdWlyZWQuCi0JQ0ZMQUdTPSItc2hh
cmVkIC1mUElDIC1XbCwteixkZWZzICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTIgotCUxJQlM9IiRQ
VEhSRUFEX0xJQlMgJExJQlMiCi0JQ0M9IiRQVEhSRUFEX0NDIgotCQotCSMgSW4gb3JkZXIgbm90
IHRvIGNyZWF0ZSBzZXZlcmFsIGxldmVscyBvZiBpbmRlbnRhdGlvbiwgd2UgdGVzdAotCSMgdGhl
IHZhbHVlIG9mICIkZG9uZSIgdW50aWwgd2UgZmluZCB0aGUgY3VyZSBvciBydW4gb3V0IG9mIGlk
ZWFzLgotCWRvbmU9Im5vIgotCQotCSMgRmlyc3QsIG1ha2Ugc3VyZSB0aGUgQ0ZMQUdTIHdlIGFk
ZGVkIGFyZSBhY3R1YWxseSBhY2NlcHRlZCBieSBvdXIKLQkjIGNvbXBpbGVyLiAgSWYgbm90IChh
bmQgT1MgWCdzIGxkLCBmb3IgaW5zdGFuY2UsIGRvZXMgbm90IGFjY2VwdCAteiksCi0JIyB0aGVu
IHdlIGNhbid0IGRvIHRoaXMgdGVzdC4KLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0J
ICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGNoZWNrIGZvciBHQ0MgcHRocmVhZC9zaGFy
ZWQgaW5jb25zaXN0ZW5jaWVzXSkKLQkgICBBQ19UUllfTElOSygsLCAsIFtkb25lPXllc10pCi0J
Ci0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXMgOyB0aGVuCi0JICAgICAgQUNfTVNHX1JFU1VM
VChbbm9dKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgIGZpCi0J
ZmkKLQkKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5H
KFt3aGV0aGVyIC1wdGhyZWFkIGlzIHN1ZmZpY2llbnQgd2l0aCAtc2hhcmVkXSkKLQkgICBBQ19U
UllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0
aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRf
Y2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAsMCwwLDApOyBwdGhy
ZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0JICAgCi0JICAgaWYg
dGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQot
CSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0JICAgZmkKLQlmaQotCQotCSMK
LQkjIExpbnV4IGdjYyBvbiBzb21lIGFyY2hpdGVjdHVyZXMgc3VjaCBhcyBtaXBzL21pcHNlbCBm
b3JnZXRzCi0JIyBhYm91dCAtbHB0aHJlYWQKLQkjCi0JaWYgdGVzdCB4IiRkb25lIiA9IHhubzsg
dGhlbgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbHB0aHJlYWQgZml4ZXMgdGhhdF0p
Ci0JICAgTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMgJHNhdmVfTElCUyIKLQkgICBBQ19U
UllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0
aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRf
Y2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAsMCwwLDApOyBwdGhy
ZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0JCi0JICAgaWYgdGVz
dCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAg
ICAgIFBUSFJFQURfTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMiCi0JICAgZWxzZQotCSAg
ICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQotCWZpCi0JIwotCSMgRnJlZUJTRCA0LjEw
IGdjYyBmb3JnZXRzIHRvIHVzZSAtbGNfciBpbnN0ZWFkIG9mIC1sYwotCSMKLQlpZiB0ZXN0IHgi
JGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1sY19yIGZp
eGVzIHRoYXRdKQotCSAgIExJQlM9Ii1sY19yICRQVEhSRUFEX0xJQlMgJHNhdmVfTElCUyIKLQkg
ICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgICBbcHRocmVhZF90
IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7
IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgICAgcHRocmVhZF9jcmVhdGUoMCww
LDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0JICAgICAgIFtkb25lPXllc10pCi0J
Ci0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxU
KFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxjX3IgJFBUSFJFQURfTElCUyIKLQkgICBl
bHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGZpCi0JZmkKLQlpZiB0ZXN0IHgi
JGRvbmUiID0geG5vOyB0aGVuCi0JICAgIyBPSywgd2UgaGF2ZSBydW4gb3V0IG9mIGlkZWFzCi0J
ICAgQUNfTVNHX1dBUk4oW0ltcG9zc2libGUgdG8gZGV0ZXJtaW5lIGhvdyB0byB1c2UgcHRocmVh
ZHMgd2l0aCBzaGFyZWQgbGlicmFyaWVzXSkKLQkKLQkgICAjIHNvIGl0J3Mgbm90IHNhZmUgdG8g
YXNzdW1lIHRoYXQgd2UgbWF5IHVzZSBwdGhyZWFkcwotCSAgIGFjeF9wdGhyZWFkX29rPW5vCi0J
ZmkKLQkKLQlDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLQlMSUJTPSIkc2F2ZV9MSUJTIgotCUNDPSIk
c2F2ZV9DQyIKLWVsc2UKLSAgICAgICAgUFRIUkVBRF9DQz0iJENDIgotZmkKLQotQUNfU1VCU1Qo
UFRIUkVBRF9MSUJTKQotQUNfU1VCU1QoUFRIUkVBRF9DRkxBR1MpCi1BQ19TVUJTVChQVEhSRUFE
X0NDKQotCi0jIEZpbmFsbHksIGV4ZWN1dGUgQUNUSU9OLUlGLUZPVU5EL0FDVElPTi1JRi1OT1Qt
Rk9VTkQ6Ci1pZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAgICAgICAg
aWZlbHNlKFskMV0sLEFDX0RFRklORShIQVZFX1BUSFJFQUQsMSxbRGVmaW5lIGlmIHlvdSBoYXZl
IFBPU0lYIHRocmVhZHMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMuXSksWyQxXSkKLSAgICAg
ICAgOgotZWxzZQotICAgICAgICBhY3hfcHRocmVhZF9vaz1ubwotICAgICAgICAkMgotZmkKLUFD
X0xBTkdfUkVTVE9SRQotXSlkbmwgQUNYX1BUSFJFQUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L200L2d0ZXN0Lm00IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rl
c3QubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OThiYTc1YTRkN2YyYzQ4NjYz
MmM2ZGRkYzBkZTUxNzhkMjkwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rlc3QubTQKKysrIC9kZXYv
bnVsbApAQCAtMSw3NCArMCwwIEBACi1kbmwgR1RFU1RfTElCX0NIRUNLKFttaW5pbXVtIHZlcnNp
b24gWywKLWRubCAgICAgICAgICAgICAgICAgIGFjdGlvbiBpZiBmb3VuZCBbLGFjdGlvbiBpZiBu
b3QgZm91bmRdXV0pCi1kbmwKLWRubCBDaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBHb29n
bGUgVGVzdCBsaWJyYXJ5LCBvcHRpb25hbGx5IGF0IGEgbWluaW11bQotZG5sIHZlcnNpb24sIGFu
ZCBpbmRpY2F0ZSBhIHZpYWJsZSB2ZXJzaW9uIHdpdGggdGhlIEhBVkVfR1RFU1QgZmxhZy4gSXQg
ZGVmaW5lcwotZG5sIHN0YW5kYXJkIHZhcmlhYmxlcyBmb3Igc3Vic3RpdHV0aW9uIGluY2x1ZGlu
ZyBHVEVTVF9DUFBGTEFHUywKLWRubCBHVEVTVF9DWFhGTEFHUywgR1RFU1RfTERGTEFHUywgYW5k
IEdURVNUX0xJQlMuIEl0IGFsc28gZGVmaW5lcwotZG5sIEdURVNUX1ZFUlNJT04gYXMgdGhlIHZl
cnNpb24gb2YgR29vZ2xlIFRlc3QgZm91bmQuIEZpbmFsbHksIGl0IHByb3ZpZGVzCi1kbmwgb3B0
aW9uYWwgY3VzdG9tIGFjdGlvbiBzbG90cyBpbiB0aGUgZXZlbnQgR1RFU1QgaXMgZm91bmQgb3Ig
bm90LgotQUNfREVGVU4oW0dURVNUX0xJQl9DSEVDS10sCi1bCi1kbmwgUHJvdmlkZSBhIGZsYWcg
dG8gZW5hYmxlIG9yIGRpc2FibGUgR29vZ2xlIFRlc3QgdXNhZ2UuCi1BQ19BUkdfRU5BQkxFKFtn
dGVzdF0sCi0gIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZ3Rlc3RdLAotICAgICAgICAgICAg
ICAgICAgW0VuYWJsZSB0ZXN0cyB1c2luZyB0aGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29y
ay4KLSAgICAgICAgICAgICAgICAgIChEZWZhdWx0IGlzIGVuYWJsZWQuKV0pXSwKLSAgW10sCi0g
IFtlbmFibGVfZ3Rlc3Q9XSkKLUFDX0FSR19WQVIoW0dURVNUX0NPTkZJR10sCi0gICAgICAgICAg
IFtUaGUgZXhhY3QgcGF0aCBvZiBHb29nbGUgVGVzdCdzICdndGVzdC1jb25maWcnIHNjcmlwdC5d
KQotQUNfQVJHX1ZBUihbR1RFU1RfQ1BQRkxBR1NdLAotICAgICAgICAgICBbQy1saWtlIHByZXBy
b2Nlc3NvciBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkKLUFDX0FSR19WQVIoW0dURVNUX0NYWEZM
QUdTXSwKLSAgICAgICAgICAgW0MrKyBjb21waWxlIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQot
QUNfQVJHX1ZBUihbR1RFU1RfTERGTEFHU10sCi0gICAgICAgICAgIFtMaW5rZXIgcGF0aCBhbmQg
b3B0aW9uIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfTElCU10s
Ci0gICAgICAgICAgIFtMaWJyYXJ5IGxpbmtpbmcgZmxhZ3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1B
Q19BUkdfVkFSKFtHVEVTVF9WRVJTSU9OXSwKLSAgICAgICAgICAgW1RoZSB2ZXJzaW9uIG9mIEdv
b2dsZSBUZXN0IGF2YWlsYWJsZS5dKQotSEFWRV9HVEVTVD0ibm8iCi1BU19JRihbdGVzdCAieCR7
ZW5hYmxlX2d0ZXN0fSIgIT0gInhubyJdLAotICBbQUNfTVNHX0NIRUNLSU5HKFtmb3IgJ2d0ZXN0
LWNvbmZpZyddKQotICAgQVNfSUYoW3Rlc3QgIngke2VuYWJsZV9ndGVzdH0iICE9ICJ4eWVzIl0s
Ci0gICAgIFtBU19JRihbdGVzdCAteCAiJHtlbmFibGVfZ3Rlc3R9L3NjcmlwdHMvZ3Rlc3QtY29u
ZmlnIl0sCi0gICAgICAgIFtHVEVTVF9DT05GSUc9IiR7ZW5hYmxlX2d0ZXN0fS9zY3JpcHRzL2d0
ZXN0LWNvbmZpZyJdLAotICAgICAgICBbR1RFU1RfQ09ORklHPSIke2VuYWJsZV9ndGVzdH0vYmlu
L2d0ZXN0LWNvbmZpZyJdKQotICAgICAgQVNfSUYoW3Rlc3QgLXggIiR7R1RFU1RfQ09ORklHfSJd
LCBbXSwKLSAgICAgICAgW0FDX01TR19SRVNVTFQoW25vXSkKLSAgICAgICAgIEFDX01TR19FUlJP
UihbZG5sCi1VbmFibGUgdG8gbG9jYXRlIGVpdGhlciBhIGJ1aWx0IG9yIGluc3RhbGxlZCBHb29n
bGUgVGVzdC4KLVRoZSBzcGVjaWZpYyBsb2NhdGlvbiAnJHtlbmFibGVfZ3Rlc3R9JyB3YXMgcHJv
dmlkZWQgZm9yIGEgYnVpbHQgb3IgaW5zdGFsbGVkCi1Hb29nbGUgVGVzdCwgYnV0IG5vICdndGVz
dC1jb25maWcnIHNjcmlwdCBjb3VsZCBiZSBmb3VuZCBhdCB0aGlzIGxvY2F0aW9uLl0pCi0gICAg
ICAgICBdKV0sCi0gICAgIFtBQ19QQVRIX1BST0coW0dURVNUX0NPTkZJR10sIFtndGVzdC1jb25m
aWddKV0pCi0gICBBU19JRihbdGVzdCAteCAiJHtHVEVTVF9DT05GSUd9Il0sCi0gICAgIFtBQ19N
U0dfUkVTVUxUKFske0dURVNUX0NPTkZJR31dKQotICAgICAgbTRfaWZ2YWwoWyQxXSwKLSAgICAg
ICAgW19ndGVzdF9taW5fdmVyc2lvbj0iLS1taW4tdmVyc2lvbj0kMSIKLSAgICAgICAgIEFDX01T
R19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0IGF0IGxlYXN0IHZlcnNpb24gPj0gJDFdKV0sCi0g
ICAgICAgIFtfZ3Rlc3RfbWluX3ZlcnNpb249Ii0tbWluLXZlcnNpb249MCIKLSAgICAgICAgIEFD
X01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0XSldKQotICAgICAgQVNfSUYoWyR7R1RFU1Rf
Q09ORklHfSAke19ndGVzdF9taW5fdmVyc2lvbn1dLAotICAgICAgICBbQUNfTVNHX1JFU1VMVChb
eWVzXSkKLSAgICAgICAgIEhBVkVfR1RFU1Q9J3llcyddLAotICAgICAgICBbQUNfTVNHX1JFU1VM
VChbbm9dKV0pXSwKLSAgICAgW0FDX01TR19SRVNVTFQoW25vXSldKQotICAgQVNfSUYoW3Rlc3Qg
Ingke0hBVkVfR1RFU1R9IiA9ICJ4eWVzIl0sCi0gICAgIFtHVEVTVF9DUFBGTEFHUz1gJHtHVEVT
VF9DT05GSUd9IC0tY3BwZmxhZ3NgCi0gICAgICBHVEVTVF9DWFhGTEFHUz1gJHtHVEVTVF9DT05G
SUd9IC0tY3h4ZmxhZ3NgCi0gICAgICBHVEVTVF9MREZMQUdTPWAke0dURVNUX0NPTkZJR30gLS1s
ZGZsYWdzYAotICAgICAgR1RFU1RfTElCUz1gJHtHVEVTVF9DT05GSUd9IC0tbGlic2AKLSAgICAg
IEdURVNUX1ZFUlNJT049YCR7R1RFU1RfQ09ORklHfSAtLXZlcnNpb25gCi0gICAgICBBQ19ERUZJ
TkUoW0hBVkVfR1RFU1RdLFsxXSxbRGVmaW5lZCB3aGVuIEdvb2dsZSBUZXN0IGlzIGF2YWlsYWJs
ZS5dKV0sCi0gICAgIFtBU19JRihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIgPSAieHllcyJdLAot
ICAgICAgICBbQUNfTVNHX0VSUk9SKFtkbmwKLUdvb2dsZSBUZXN0IHdhcyBlbmFibGVkLCBidXQg
bm8gdmlhYmxlIHZlcnNpb24gY291bGQgYmUgZm91bmQuXSkKLSAgICAgICAgIF0pXSldKQotQUNf
U1VCU1QoW0hBVkVfR1RFU1RdKQotQU1fQ09ORElUSU9OQUwoW0hBVkVfR1RFU1RdLFt0ZXN0ICJ4
JEhBVkVfR1RFU1QiID0gInh5ZXMiXSkKLUFTX0lGKFt0ZXN0ICJ4JEhBVkVfR1RFU1QiID0gInh5
ZXMiXSwKLSAgW200X2lmdmFsKFskMl0sIFskMl0pXSwKLSAgW200X2lmdmFsKFskM10sIFskM10p
XSkKLV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxl
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWFjNzQ0OTNiYTU1MjQ2NTk3ZTkwYjg5OGZhZTg0N2FlMzU4ZWFiNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBA
QAotIyBBIHNhbXBsZSBNYWtlZmlsZSBmb3IgYnVpbGRpbmcgR29vZ2xlIFRlc3QgYW5kIHVzaW5n
IGl0IGluIHVzZXIKLSMgdGVzdHMuICBQbGVhc2UgdHdlYWsgaXQgdG8gc3VpdCB5b3VyIGVudmly
b25tZW50IGFuZCBwcm9qZWN0LiAgWW91Ci0jIG1heSB3YW50IHRvIG1vdmUgaXQgdG8geW91ciBw
cm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuCi0jCi0jIFNZTk9QU0lTOgotIwotIyAgIG1ha2UgW2Fs
bF0gIC0gbWFrZXMgZXZlcnl0aGluZy4KLSMgICBtYWtlIFRBUkdFVCAtIG1ha2VzIHRoZSBnaXZl
biB0YXJnZXQuCi0jICAgbWFrZSBjbGVhbiAgLSByZW1vdmVzIGFsbCBmaWxlcyBnZW5lcmF0ZWQg
YnkgbWFrZS4KLQotIyBQbGVhc2UgdHdlYWsgdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBkZWZpbml0
aW9ucyBhcyBuZWVkZWQgYnkgeW91cgotIyBwcm9qZWN0LCBleGNlcHQgR1RFU1RfSEVBREVSUywg
d2hpY2ggeW91IGNhbiB1c2UgaW4geW91ciBvd24gdGFyZ2V0cwotIyBidXQgc2hvdWxkbid0IG1v
ZGlmeS4KLQotIyBQb2ludHMgdG8gdGhlIHJvb3Qgb2YgR29vZ2xlIFRlc3QsIHJlbGF0aXZlIHRv
IHdoZXJlIHRoaXMgZmlsZSBpcy4KLSMgUmVtZW1iZXIgdG8gdHdlYWsgdGhpcyBpZiB5b3UgbW92
ZSB0aGlzIGZpbGUuCi1HVEVTVF9ESVIgPSAuLgotCi0jIFdoZXJlIHRvIGZpbmQgdXNlciBjb2Rl
LgotVVNFUl9ESVIgPSAuLi9zYW1wbGVzCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBwcmVwcm9j
ZXNzb3IuCi0jIFNldCBHb29nbGUgVGVzdCdzIGhlYWRlciBkaXJlY3RvcnkgYXMgYSBzeXN0ZW0g
ZGlyZWN0b3J5LCBzdWNoIHRoYXQKLSMgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZ2VuZXJhdGUgd2Fy
bmluZ3MgaW4gR29vZ2xlIFRlc3QgaGVhZGVycy4KLUNQUEZMQUdTICs9IC1pc3lzdGVtICQoR1RF
U1RfRElSKS9pbmNsdWRlCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBDKysgY29tcGlsZXIuCi1D
WFhGTEFHUyArPSAtZyAtV2FsbCAtV2V4dHJhIC1wdGhyZWFkCi0KLSMgQWxsIHRlc3RzIHByb2R1
Y2VkIGJ5IHRoaXMgTWFrZWZpbGUuICBSZW1lbWJlciB0byBhZGQgbmV3IHRlc3RzIHlvdQotIyBj
cmVhdGVkIHRvIHRoZSBsaXN0LgotVEVTVFMgPSBzYW1wbGUxX3VuaXR0ZXN0Ci0KLSMgQWxsIEdv
b2dsZSBUZXN0IGhlYWRlcnMuICBVc3VhbGx5IHlvdSBzaG91bGRuJ3QgY2hhbmdlIHRoaXMKLSMg
ZGVmaW5pdGlvbi4KLUdURVNUX0hFQURFUlMgPSAkKEdURVNUX0RJUikvaW5jbHVkZS9ndGVzdC8q
LmggXAotICAgICAgICAgICAgICAgICQoR1RFU1RfRElSKS9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
LyouaAotCi0jIEhvdXNlLWtlZXBpbmcgYnVpbGQgdGFyZ2V0cy4KLQotYWxsIDogJChURVNUUykK
LQotY2xlYW4gOgotCXJtIC1mICQoVEVTVFMpIGd0ZXN0LmEgZ3Rlc3RfbWFpbi5hICoubwotCi0j
IEJ1aWxkcyBndGVzdC5hIGFuZCBndGVzdF9tYWluLmEuCi0KLSMgVXN1YWxseSB5b3Ugc2hvdWxk
bid0IHR3ZWFrIHN1Y2ggaW50ZXJuYWwgdmFyaWFibGVzLCBpbmRpY2F0ZWQgYnkgYQotIyB0cmFp
bGluZyBfLgotR1RFU1RfU1JDU18gPSAkKEdURVNUX0RJUikvc3JjLyouY2MgJChHVEVTVF9ESVIp
L3NyYy8qLmggJChHVEVTVF9IRUFERVJTKQotCi0jIEZvciBzaW1wbGljaXR5IGFuZCB0byBhdm9p
ZCBkZXBlbmRpbmcgb24gR29vZ2xlIFRlc3QncwotIyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCB0
aGUgZGVwZW5kZW5jaWVzIHNwZWNpZmllZCBiZWxvdyBhcmUKLSMgY29uc2VydmF0aXZlIGFuZCBu
b3Qgb3B0aW1pemVkLiAgVGhpcyBpcyBmaW5lIGFzIEdvb2dsZSBUZXN0Ci0jIGNvbXBpbGVzIGZh
c3QgYW5kIGZvciBvcmRpbmFyeSB1c2VycyBpdHMgc291cmNlIHJhcmVseSBjaGFuZ2VzLgotZ3Rl
c3QtYWxsLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZMQUdTKSAtSSQoR1RFU1Rf
RElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAgICAkKEdURVNUX0RJUikvc3JjL2d0ZXN0
LWFsbC5jYwotCi1ndGVzdF9tYWluLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZM
QUdTKSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAgICAkKEdURVNU
X0RJUikvc3JjL2d0ZXN0X21haW4uY2MKLQotZ3Rlc3QuYSA6IGd0ZXN0LWFsbC5vCi0JJChBUikg
JChBUkZMQUdTKSAkQCAkXgotCi1ndGVzdF9tYWluLmEgOiBndGVzdC1hbGwubyBndGVzdF9tYWlu
Lm8KLQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLSMgQnVpbGRzIGEgc2FtcGxlIHRlc3QuICBB
IHRlc3Qgc2hvdWxkIGxpbmsgd2l0aCBlaXRoZXIgZ3Rlc3QuYSBvcgotIyBndGVzdF9tYWluLmEs
IGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGRlZmluZXMgaXRzIG93biBtYWluKCkKLSMgZnVuY3Rp
b24uCi0KLXNhbXBsZTEubyA6ICQoVVNFUl9ESVIpL3NhbXBsZTEuY2MgJChVU0VSX0RJUikvc2Ft
cGxlMS5oICQoR1RFU1RfSEVBREVSUykKLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykg
LWMgJChVU0VSX0RJUikvc2FtcGxlMS5jYwotCi1zYW1wbGUxX3VuaXR0ZXN0Lm8gOiAkKFVTRVJf
RElSKS9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgICAgICAgICAgICAgICAgICAgICQoVVNFUl9E
SVIpL3NhbXBsZTEuaCAkKEdURVNUX0hFQURFUlMpCi0JJChDWFgpICQoQ1BQRkxBR1MpICQoQ1hY
RkxBR1MpIC1jICQoVVNFUl9ESVIpL3NhbXBsZTFfdW5pdHRlc3QuY2MKLQotc2FtcGxlMV91bml0
dGVzdCA6IHNhbXBsZTEubyBzYW1wbGUxX3VuaXR0ZXN0Lm8gZ3Rlc3RfbWFpbi5hCi0JJChDWFgp
ICQoQ1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1scHRocmVhZCAkXiAtbyAkQApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC5zbG4KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUzNmIzM2I2MjE1YzM3NGFmYzExNmI1MjA4NGIxNmY0MTQ4ODA0N2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbgorKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBW
ZXJzaW9uIDExLjAwCi0jIFZpc3VhbCBDKysgRXhwcmVzcyAyMDEwCi1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0LW1kIiwgImd0ZXN0LW1k
LnZjeHByb2oiLCAie0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH0iCi1FbmRQ
cm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gImd0ZXN0X21haW4tbWQiLCAiZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qIiwgInszQUY1NEM4QS0x
MEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzN9IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF9wcm9kX3Rlc3QtbWQi
LCAiZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oiLCAiezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQw
LThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X3VuaXR0ZXN0LW1kIiwgImd0ZXN0X3VuaXR0
ZXN0LW1kLnZjeHByb2oiLCAiezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMn0i
Ci1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlv
blBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyCi0J
CURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNlfFdpbjMyID0gUmVsZWFzZXxXaW4zMgot
CQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlvbgotCUdsb2JhbFNl
Y3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCi0JCXtD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9
LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2
LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXtD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfHg2NC5CdWlsZC4wID0g
RGVidWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2
LUI1RkEtQzNCNDIzQjMxQkU4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVhc2V8eDY0LkFj
dGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNC
MzFCRTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBC
Ri00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzM30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7M0FGNTRDOEEtMTBC
Ri00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAot
CQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7M0FGNTRD
OEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBS
ZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxl
YXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezI0
ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQnVpbGQuMCA9
IERlYnVnfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LkRl
YnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUx
LUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBS
ZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJl
bGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdF
OC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQK
LQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQuQnVp
bGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZB
LTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5EZWJ1Z3x4NjQuQWN0
aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTJ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzkt
ODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVF
MEVENDgxQTJ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZC
NS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxl
YXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVy
dGllcykgPSBwcmVTb2x1dGlvbgotCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKLQlFbmRHbG9i
YWxTZWN0aW9uCi1FbmRHbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2
Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
YTZmZjEyZjdiNTc5MDE1YWJiMTQxNTgwZTJmMmQ0ZmRhNmY5YzMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2
Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAot
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1
bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1h
cy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExh
YmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmln
dXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0
Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8
eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
ICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldp
bjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlv
bj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+
Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0
eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+e0M4RjZDMTcyLTU2RjIt
NEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMy
UHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBl
PlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVs
dGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9y
bVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJD
b25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNl
dD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAg
IDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAg
ICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRv
b2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5T
dGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRp
Qnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4
dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExh
YmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3Rz
KCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIg
TGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1w
b3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIk
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRp
dGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdy
b3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgot
ICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRm
b3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0
Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJN
YWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEw
LjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9u
RGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGly
PgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxP
dXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25m
aWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAg
PE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZp
Z3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlc
PC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIp
JChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0g
ICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0
TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJn
ZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAg
ICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9u
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1l
TGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAg
PERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVk
ZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4K
LSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVC
VUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJh
cnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1h
dD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5c
Li47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRp
b25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7
X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25H
cm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xn
dGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4u
XGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5c
aW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4u
Oy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+
Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qLmZp
bHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRlZmYyMzA2ZTFmYWM5M2U3
N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZj
eHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMi
PgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJE
NzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7
ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4K
LSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRp
Zmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRp
Zmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5z
aW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4KLSAgICAgIDxGaWx0
ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3Vw
PgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjYWNkNWMwY2U2YjkzMjg2YmE1MjcwZjgzMTFmN2Q2NDkyMWUwMmU2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4KKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1N
aWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4w
MAotIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFE
MC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdCIsICJndGVzdC52Y3hwcm9qIiwgIntDOEY2
QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9IgotRW5kUHJvamVjdAotUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF9tYWluIiwg
Imd0ZXN0X21haW4udmN4cHJvaiIsICJ7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYy
MDMyfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEw
QzkxQkM5NDJ9IikgPSAiZ3Rlc3RfdW5pdHRlc3QiLCAiZ3Rlc3RfdW5pdHRlc3QudmN4cHJvaiIs
ICJ7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfSIKLUVuZFByb2plY3QKLVBy
b2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3Rf
cHJvZF90ZXN0IiwgImd0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qIiwgInsyNDg0ODU1MS1FRjRGLTQ3
RTgtOUE5RC1FQTRENDlCQzNFQ0F9IgotRW5kUHJvamVjdAotR2xvYmFsCi0JR2xvYmFsU2VjdGlv
bihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KLQkJRGVidWd8
V2luMzIgPSBEZWJ1Z3xXaW4zMgotCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQKLQkJUmVsZWFzZXxX
aW4zMiA9IFJlbGVhc2V8V2luMzIKLQkJUmVsZWFzZXx4NjQgPSBSZWxlYXNlfHg2NAotCUVuZEds
b2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1z
KSA9IHBvc3RTb2x1dGlvbgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3
fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00
RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIK
LQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uRGVidWd8eDY0LkFjdGl2
ZUNmZyA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3
fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1
RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIK
LQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uUmVsZWFzZXxXaW4zMi5C
dWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIz
QjMxQkU3fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7QzhGNkMxNzIt
NTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFz
ZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2
OEVEOTg2MjAzMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXszQUY1NEM4
QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1
Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8eDY0
LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2
MjAzMn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXszQUY1NEM4
QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJl
bGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVs
ZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05
MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0
RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9
LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5
LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0
RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfHg2NC5CdWlsZC4wID0g
RGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5
LTgyM0MtRjRFRTBFRDQ4MUExfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJlbGVhc2V8eDY0LkFj
dGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVE
NDgxQTF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0
Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0
OUJDM0VDQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7MjQ4NDg1NTEtRUY0
Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAot
CQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0
OUJDM0VDQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7MjQ4NDg1
NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBS
ZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxl
YXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQlFbmRHbG9iYWxTZWN0aW9uCi0JR2xvYmFs
U2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24KLQkJSGlkZVNvbHV0aW9u
Tm9kZSA9IEZBTFNFCi0JRW5kR2xvYmFsU2VjdGlvbgotRW5kR2xvYmFsCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QudmN4cHJvaiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNDZmNWM3YWYyNDUzOGQzOThjMzYyNmM4ZWNjZTkxNDhjOTZmMDFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ5ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08
UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAg
PEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENv
bmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+
RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgot
ICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2lu
MzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54
NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPntD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9PC9Qcm9qZWN0R3VpZD4KLSAgICA8
S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIg
Lz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25m
aWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRp
Y0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRl
PC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xz
ZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1
cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAg
ICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdy
b3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmln
dXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYx
MDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0i
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25k
aXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRH
cm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3Bl
cnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9j
YWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RG
aWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERp
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0
aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUp
XDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlc
JChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQo
T3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gIDwvUHJvcGVydHlHcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5h
bWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4k
KE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0
ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0k
KENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFBy
b2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+
Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3Jv
dXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9w
dGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxS
ZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5F
bmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJh
cnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVs
PkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRp
dEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21w
aWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZB
UklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZh
c3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0
YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRp
b25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVs
dGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dh
cm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFz
ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJl
YWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFy
Z2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRl
ZmYyMzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29s
c1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxv
cGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJT
b3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3
Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9u
cz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAg
ICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8
VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwv
VW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5j
O3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVt
R3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4K
LSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
IDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLW1k
LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1t
ZC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDc3Mzg5NWI3MDIzZGU4
NDc0MGQ2MmJiYTYzZWM5MDBmNzRjOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9t
YWluLW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9q
ZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJE
ZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4K
LSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0
Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3
LUY2OEVEOTg2MjAzM308L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5
d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRz
UGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xp
YnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+
Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0
aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlv
blR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8
UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1
cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFj
dGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEw
MDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJy
YXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNl
dHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9w
ZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9Ikxv
Y2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTku
MTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9u
KVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4k
KFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24p
XDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+
Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbmQ8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNv
bHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8
SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1l
Pmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW5kPC9UYXJnZXROYW1lPgotICA8L1By
b3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0
X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9u
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9P
cHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklB
RElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJl
YnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2lj
UnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdE
TEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgot
ICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAg
ICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJV
RztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50
aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwv
SXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9S
dW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgot
ICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9J
dGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFY
PTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVt
RGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVt
R3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rl
c3QtbWQudmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57YzhmNmMxNzItNTZmMi00ZTc2LWI1ZmEt
YzNiNDIzYjMxYmU4fTwvUHJvamVjdD4KLSAgICA8L1Byb2plY3RSZWZlcmVuY2U+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgot
ICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWlu
LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzI2Yzc3M2NjYjE3NzZhNThkNmY0ZmQ2NWExNmNiNTBmNDIyZDE1NC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qLmZpbHRlcnMKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNy
b3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwPgotICAgIDxG
aWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0
RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgot
ICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8
L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIg
RmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVC
LTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5oO2hw
cDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XGd0ZXN0X21haW4uY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X21haW4udmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAx
MC9ndGVzdF9tYWluLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYjI1
ODk3YzhiMWMyZGJiM2NmNmMxM2U5YjQxOTNmYzlhZTA1MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X21haW4udmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi3v
u788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFi
ZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RD
b25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9u
PlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4K
LSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57M0FGNTRDOEEtMTBCRi00
MzMyLTkxNDctRjY4RUQ5ODYyMDMyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQ
cm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+
U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0
aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3Jt
VG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNv
bmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAg
PENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0
YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlC
eXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0
c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0
ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFi
ZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQo
VXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0
aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0g
ICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZv
cm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1h
Y3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAu
MC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoU29sdXRpb25E
aXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+
Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAg
ICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQo
Q29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQo
UHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3Jt
KS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwk
KFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluZDwvVGFy
Z2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91
dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3Vy
YXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1l
KVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8
L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVz
dF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAg
ICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nl
c3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1p
bmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNo
ZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2Fybmlu
Z0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwv
Q2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2pl
Y3ROYW1lKWQubGliPC9PdXRwdXRGaWxlPgotICAgIDwvTGliPgotICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxP
cHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElCOyUoUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1
bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAg
PFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIp
JChQcm9qZWN0TmFtZSlkLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYj4KLSAgICAgIDxPdXRwdXRGaWxl
PiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0
cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5saWI8L091dHB1dEZpbGU+Ci0gICAgPC9M
aWI+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25h
bEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0UmVmZXJlbmNl
IEluY2x1ZGU9Imd0ZXN0LnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+e2M4ZjZjMTcyLTU2ZjIt
NGU3Ni1iNWZhLWMzYjQyM2IzMWJlN308L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNl
PgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1p
Y3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25U
YXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAv
Z3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDcyNmM3NzNjY2IxNzc2YTU4ZDZmNGZkNjVhMTZjYjUwZjQyMmQxNTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwK
QEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8
RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57
NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4K
LSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214
PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVy
IEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhF
Qi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDto
cHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0
ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNy
Y1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMv
MjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODMwZTVkY2U0MTA2MjNjMTViNjhmZWE3MThlZDk0YzQ1N2YwNzBmNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYv
bnVsbApAQCAtMSwxOTkgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0i
UmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25m
aWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2
NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJv
amVjdEd1aWQ+ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn08L1Byb2plY3RH
dWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZh
dWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2pl
Y3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8
L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlv
bilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0lu
dERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNv
bHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8
SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1l
Pmd0ZXN0X3Byb2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJvZF90
ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4K
LSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9wcm9kX3Rlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJv
ZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlv
bkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwv
T3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJ
QURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5p
bWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwv
QmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRE
ZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0g
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3Byb2RfdGVz
dC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1
YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+
Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlv
bkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09w
dGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFE
SUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZh
c3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwv
V2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFi
YXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVz
dF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3RlbT5D
b25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+
Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0NPTlNP
TEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgot
ICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5Pgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRp
b25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNv
bnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1p
emVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09N
REFURm9sZGluZz4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hp
bmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5p
dGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1E
YXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+
Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAg
ICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAg
PC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24u
Y2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHRlc3RccHJvZHVjdGlvbi5oIiAvPgotICA8L0l0
ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJn
dGVzdF9tYWluLW1kLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMz
Mi05MTQ3LWY2OGVkOTg2MjAzM308L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgot
ICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jv
c29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJn
ZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rl
c3RfcHJvZF90ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhYzM2NzMxMGFlZTYyNmY0ZWM5YzFkZmZkYTczM2E1MGYyYTVj
NWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvai5m
aWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4K
LSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAg
ICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZG
fTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2Rs
O2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxG
aWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5
Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgot
ICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgot
ICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfcHJvZF90ZXN0LmNjIj4KLSAgICAgIDxGaWx0
ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uY2MiPgotICAgICAgPEZpbHRlcj5Tb3Vy
Y2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
dGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24u
aCI+Ci0gICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRl
PgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJv
ZF90ZXN0LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Rf
cHJvZF90ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0MmUxMzUx
MWRmMjhhNTMyMjI0MjA1N2U3NTQxZjk2NTY3MGRkYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTkxICswLDAgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZh
dWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBM
YWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZp
Z3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVj
dENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVn
fHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5X
aW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRp
b24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3Jt
PgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnsyNDg0ODU1MS1FRjRG
LTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9PC9Qcm9qZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4z
MlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIk
KFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0
aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3Jt
VG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNv
bmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmln
dXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4K
LSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGlj
YXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+
Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgp
XE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9u
U2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIg
Lz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIx
OS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoU29sdXRpb25EaXIpJChT
b2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAg
PEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlu
a0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRh
bCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChT
b2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAg
PEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxM
aW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3Jl
bWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1l
KVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChP
dXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6
YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJl
YnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVu
YWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFy
eT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVs
MzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENv
bnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgot
ICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpciln
dGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3Rl
bT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9U
YXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8
SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9u
PkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPEJhc2ljUnVudGltZUNo
ZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlBy
b2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwv
R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRhYmFzZUZpbGU+JChP
dXREaXIpZ3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxT
dWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgot
ICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRF
QlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGli
cmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5
c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8
L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0Vu
YWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJn
ZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRl
bURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+
TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9n
cmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lz
dGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+
Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgot
ICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF9wcm9kX3Rlc3QuY2MiPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAg
ICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0
aW9uLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNs
dWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAgPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uaCIgLz4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk
ZT0iZ3Rlc3RfbWFpbi52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQz
MzItOTE0Ny1mNjhlZDk4NjIwMzJ9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFy
Z2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
c3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWMzNjczMTBhZWU2MjZmNGVjOWMxZGZmZGE3MzNhNTBmMmE1YzVlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ouZmlsdGVycwor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6
Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVt
R3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1
ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1
ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBq
O2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIElu
Y2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAt
ODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxF
eHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0Zp
bHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8RmlsdGVyPlNvdXJj
ZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVz
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3Vw
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmgiPgotICAg
ICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgPC9J
dGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1k
LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRl
c3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNiMGRjNGUxYTRl
MDNhZThkNjNlZmYzNmM2N2JmZTgyMzY1ZjE4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rl
c3RfdW5pdHRlc3QtbWQudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE4OCArMCwwIEBACi3v
u788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFi
ZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RD
b25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9u
PlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4K
LSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57NEQ5RkRGQjUtOTg2QS00
MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQ
cm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+
QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlC
eXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25m
aWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3Vy
YXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0g
ICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29u
ZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFy
YWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52
MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0
aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNl
dHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9w
ZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9Ikxv
Y2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTku
MTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVt
ZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
TGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9u
TmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGly
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50
YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5mYWxz
ZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0k
KENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0
TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfdW5pdHRlc3Q8L1RhcmdldE5h
bWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+
JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9u
KVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGly
PgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3VuaXR0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0
dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAg
ICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAg
ICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50
aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxS
dW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2Fy
bmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25G
b3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlv
bj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNl
RmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0g
ICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5l
Pk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4K
LSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0Pgot
ICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3Jh
bURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFz
ZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICA8L0xpbms+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0g
ICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFS
SUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJl
YWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0g
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGlt
aXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09N
REFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPFRhcmdldE1hY2hp
bmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmlu
aXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVC
VUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwu
LjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3Vi
U3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1
ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwv
RW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rl
c3RfdW5pdHRlc3QuY2MiPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+TWluU3BhY2U8L09wdGltaXph
dGlvbj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5NaW5TcGFjZTwvT3B0aW1pemF0aW9uPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAg
PEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPkRlZmF1bHQ8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1h
dD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0g
IDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rlc3RfbWFpbi1t
ZC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhl
ZDk4NjIwMzN9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRh
cmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwv
SW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0
LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdF91bml0dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDA0N2RhZTUxM2U4NjAxNTNhNWNlYzJmNDViNDhjZGJjNzVmOWI2Y2UuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ouZmlsdGVycworKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hl
bWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50
aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50
aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDth
c207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9
IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00
YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNp
b25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlwuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVz
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVjNmFiZGU3ZGExN2UyOWVkMjQ3NmY3MGM2OTQxNWFlOTY4ZjIxZjMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2oKKysrIC9kZXYv
bnVsbApAQCAtMSwxODAgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0i
UmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25m
aWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2
NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJv
amVjdEd1aWQ+ezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMX08L1Byb2plY3RH
dWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZh
dWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2pl
Y3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRh
bD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXRE
aXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0
TmFtZSlcPC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxzZTwvTGlua0luY3Jl
bWVudGFsPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRp
b25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXRE
aXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29s
dXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9P
dXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGly
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xD
b21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVH
O19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAg
IDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tz
PgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJh
cnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZv
cm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0g
ICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFt
RGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNl
RmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPFRhcmdl
dE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05T
T0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4K
LSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1l
Q2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGlt
ZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQ
cm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBkYjwvUHJvZ3JhbURh
dGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwv
TGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0
aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVD
T01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFj
aGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4K
LSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05E
RUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxp
YnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJ
bmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4u
OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1
Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJT
eXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVl
PC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9F
bmFibGVDT01EQVRGb2xkaW5nPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3Vw
PgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVz
dF91bml0dGVzdC5jYyI+Ci0gICAgICA8T3B0aW1pemF0aW9uIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5NaW5TcGFjZTwvT3B0aW1pemF0
aW9uPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPk1pblNwYWNlPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj5EZWZhdWx0PC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJl
Y29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8RGVidWdJ
bmZvcm1hdGlvbkZvcm1hdCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4u
LjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJndGVzdF9tYWluLnZj
eHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMzMi05MTQ3LWY2OGVkOTg2
MjAzMn08L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4K
LSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0
cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBv
cnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4
cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Vu
aXR0ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ3
ZGFlNTEzZTg2MDE1M2E1Y2VjMmY0NWI0OGNkYmM3NWY5YjZjZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEs
MTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQ
cm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0
LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVy
IEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3
RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAg
IDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRl
bnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVz
Ij4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVG
QkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4
O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rl
c3RfdW5pdHRlc3QuY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxl
cy9wcmltZV90YWJsZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvcHJpbWVf
dGFibGVzLmgKaW5kZXggNTIzYzUwYjlhZmIxYTA5MTkxNjgwOTRkNzFmZGYzNzZiNjRhZjZiMi4u
M2ExMDM1MmJhYWU1YmE3MWFjYjYwN2U2NzFkOWJmMTVkMTZlNzlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3ByaW1lX3RhYmxlcy5oCkBAIC0zMyw4ICszMyw4IEBA
CiAvLyBwcmltZSBhbmQgZGV0ZXJtaW5lcyBhIG5leHQgcHJpbWUgbnVtYmVyLiBUaGlzIGludGVy
ZmFjZSBpcyB1c2VkCiAvLyBpbiBHb29nbGUgVGVzdCBzYW1wbGVzIGRlbW9uc3RyYXRpbmcgdXNl
IG9mIHBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKLSNpZm5kZWYgR1RFU1RfU0FNUExFU19QUklNRV9U
QUJMRVNfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KKyNpZm5kZWYg
R09PR0xFVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19IXworI2RlZmluZSBHT09HTEVURVNUX1NB
TVBMRVNfUFJJTUVfVEFCTEVTX0hfCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKQEAgLTQzLDcg
KzQzLDcgQEAgY2xhc3MgUHJpbWVUYWJsZSB7CiAgcHVibGljOgogICB2aXJ0dWFsIH5QcmltZVRh
YmxlKCkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisg
IC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBuIGlzIGEgcHJpbWUgbnVtYmVyLgogICB2
aXJ0dWFsIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3QgPSAwOwogCiAgIC8vIFJldHVybnMgdGhl
IHNtYWxsZXN0IHByaW1lIG51bWJlciBncmVhdGVyIHRoYW4gcDsgb3IgcmV0dXJucyAtMQpAQCAt
NTQsNyArNTQsNyBAQCBjbGFzcyBQcmltZVRhYmxlIHsKIC8vIEltcGxlbWVudGF0aW9uICMxIGNh
bGN1bGF0ZXMgdGhlIHByaW1lcyBvbi10aGUtZmx5LgogY2xhc3MgT25UaGVGbHlQcmltZVRhYmxl
IDogcHVibGljIFByaW1lVGFibGUgewogIHB1YmxpYzoKLSAgdmlydHVhbCBib29sIElzUHJpbWUo
aW50IG4pIGNvbnN0IHsKKyAgYm9vbCBJc1ByaW1lKGludCBuKSBjb25zdCBvdmVycmlkZSB7CiAg
ICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IDI7IGkqaSA8
PSBuOyBpKyspIHsKQEAgLTY1LDEyICs2NSwxMiBAQCBjbGFzcyBPblRoZUZseVByaW1lVGFibGUg
OiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICB2aXJ0dWFs
IGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsKLSAgICBmb3IgKGludCBuID0gcCArIDE7
IG4gPiAwOyBuKyspIHsKKyAgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29uc3Qgb3ZlcnJpZGUg
eworICAgIGlmIChwIDwgMCkgcmV0dXJuIC0xOworCisgICAgZm9yIChpbnQgbiA9IHAgKyAxOzsg
bisrKSB7CiAgICAgICBpZiAoSXNQcmltZShuKSkgcmV0dXJuIG47CiAgICAgfQotCi0gICAgcmV0
dXJuIC0xOwogICB9CiB9OwogCkBAIC04MywxMyArODMsMTMgQEAgY2xhc3MgUHJlQ2FsY3VsYXRl
ZFByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgICA6IGlzX3ByaW1lX3NpemVf
KG1heCArIDEpLCBpc19wcmltZV8obmV3IGJvb2xbbWF4ICsgMV0pIHsKICAgICBDYWxjdWxhdGVQ
cmltZXNVcFRvKG1heCk7CiAgIH0KLSAgdmlydHVhbCB+UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUo
KSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQorICB+UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUoKSBv
dmVycmlkZSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQogCi0gIHZpcnR1YWwgYm9vbCBJc1ByaW1l
KGludCBuKSBjb25zdCB7CisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUgewog
ICAgIHJldHVybiAwIDw9IG4gJiYgbiA8IGlzX3ByaW1lX3NpemVfICYmIGlzX3ByaW1lX1tuXTsK
ICAgfQogCi0gIHZpcnR1YWwgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29uc3QgeworICBpbnQg
R2V0TmV4dFByaW1lKGludCBwKSBjb25zdCBvdmVycmlkZSB7CiAgICAgZm9yIChpbnQgbiA9IHAg
KyAxOyBuIDwgaXNfcHJpbWVfc2l6ZV87IG4rKykgewogICAgICAgaWYgKGlzX3ByaW1lX1tuXSkg
cmV0dXJuIG47CiAgICAgfQpAQCAtMTIzLDQgKzEyMyw0IEBAIGNsYXNzIFByZUNhbGN1bGF0ZWRQ
cmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogICB2b2lkIG9wZXJhdG9yPShjb25zdCBQ
cmVDYWxjdWxhdGVkUHJpbWVUYWJsZSYgcmhzKTsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FN
UExFU19QUklNRV9UQUJMRVNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1BSSU1F
X1RBQkxFU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGUxLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxLmNjCmlu
ZGV4IDEzY2VjMWQwZmJmYWJkYWFmMWM2YzQxYjFhODZiYzFkMDkwODk4M2QuLjFkNDI3NTk3OWZm
NjExMDFiZjFhZTljMzIwNWY0MWY0MDgzMGMzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTEuY2MKQEAgLTQxLDcgKzQxLDcgQEAgaW50IEZhY3RvcmlhbChpbnQg
bikgewogICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBw
cmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgbiBpcyBhIHByaW1l
IG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbikgewogICAvLyBUcml2aWFsIGNhc2UgMTogc21h
bGwgbnVtYmVycwogICBpZiAobiA8PSAxKSByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCmluZGV4IDJjM2U5ZjA1ZjFhMTBhNDQyNWY3N2IyODcx
NmU4MDU5NjgyMTk2MWYuLmJhMzkyY2ZiZDI2NjhiNmFiZWIwOWIxOTQ3NWM1OWEwN2UwNzg5MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCkBAIC0yOSwxMyAr
MjksMTMgQEAKIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2ds
ZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCiAKLSNpZm5kZWYgR1RFU1RfU0FNUExFU19TQU1QTEUx
X0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2lmbmRlZiBHT09HTEVURVNU
X1NBTVBMRVNfU0FNUExFMV9IXworI2RlZmluZSBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMV9I
XwogCiAvLyBSZXR1cm5zIG4hICh0aGUgZmFjdG9yaWFsIG9mIG4pLiAgRm9yIG5lZ2F0aXZlIG4s
IG4hIGlzIGRlZmluZWQgdG8gYmUgMS4KIGludCBGYWN0b3JpYWwoaW50IG4pOwogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbik7CiAKLSNl
bmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1Rf
U0FNUExFU19TQU1QTEUxX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2Ft
cGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwppbmRleCA3Y2U5NTUwZjg4M2FhMzQyZDI1YjA0ODU5
M2ZhYTk2Y2FiZDhlMWZhLi4zNmNkYWMyMjc5YWVlYTcwMmUwZDM1MjBjNzcyNThlOTI3MzcyNmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEwX3Vu
aXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMTBf
dW5pdHRlc3QuY2MKQEAgLTc0LDEyICs3NCwxMiBAQCBpbnQgV2F0ZXI6OmFsbG9jYXRlZF8gPSAw
OwogY2xhc3MgTGVha0NoZWNrZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAg
cHJpdmF0ZToKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgotICB2aXJ0dWFsIHZv
aWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qIHRlc3RfaW5mbyAqLykgeworICB2b2lk
IE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsK
ICAgICBpbml0aWFsbHlfYWxsb2NhdGVkXyA9IFdhdGVyOjphbGxvY2F0ZWQoKTsKICAgfQogCiAg
IC8vIENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChj
b25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSB7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0
IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsKICAgICBpbnQgZGlmZmVyZW5j
ZSA9IFdhdGVyOjphbGxvY2F0ZWQoKSAtIGluaXRpYWxseV9hbGxvY2F0ZWRfOwogCiAgICAgLy8g
WW91IGNhbiBnZW5lcmF0ZSBhIGZhaWx1cmUgaW4gYW55IGV2ZW50IGhhbmRsZXIgZXhjZXB0CkBA
IC0xMDAsNyArMTAwLDcgQEAgVEVTVChMaXN0ZW5lcnNUZXN0LCBEb2VzTm90TGVhaykgewogLy8g
c3BlY2lmaWVkLgogVEVTVChMaXN0ZW5lcnNUZXN0LCBMZWFrc1dhdGVyKSB7CiAgIFdhdGVyKiB3
YXRlciA9IG5ldyBXYXRlcjsKLSAgRVhQRUNUX1RSVUUod2F0ZXIgIT0gTlVMTCk7CisgIEVYUEVD
VF9UUlVFKHdhdGVyICE9IG51bGxwdHIpOwogfQogfSAgLy8gbmFtZXNwYWNlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYwppbmRleCBmM2I3MjJmY2FjZmVlZTdk
ODkwYjJkMWYxOWJjOTc0MTVlY2E0OWY2Li5kOGU4NzIzOTY1YTFkYzAxZWE3ZjY1NjYxOWI3MWZi
NTA2OTg0OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3Nh
bXBsZTIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyLmNj
CkBAIC0zNSw3ICszNSw3IEBACiAKIC8vIENsb25lcyBhIDAtdGVybWluYXRlZCBDIHN0cmluZywg
YWxsb2NhdGluZyBtZW1vcnkgdXNpbmcgbmV3LgogY29uc3QgY2hhciogTXlTdHJpbmc6OkNsb25l
Q1N0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSB7Ci0gIGlmIChhX2Nfc3RyaW5nID09IE5V
TEwpIHJldHVybiBOVUxMOworICBpZiAoYV9jX3N0cmluZyA9PSBudWxscHRyKSByZXR1cm4gbnVs
bHB0cjsKIAogICBjb25zdCBzaXplX3QgbGVuID0gc3RybGVuKGFfY19zdHJpbmcpOwogICBjaGFy
KiBjb25zdCBjbG9uZSA9IG5ldyBjaGFyWyBsZW4gKyAxIF07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCmluZGV4IDU4ZjM2MGY0NWM3NjU4YzAxOTdlM2ZmYzY1ZWM4
YjM3NWZiMzM2YjAuLjBmOTg2ODk1OWQyMTU3NjBmNDU2N2ZlNjE2NWUwNzc3Mzk5NDc0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCkBAIC0yOSw4ICsyOSw4
IEBACiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJhdGluZyB1c2luZyBHb29nbGUgQysr
IHRlc3RpbmcgZnJhbWV3b3JrLgogCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNfU0FNUExFMl9IXwot
I2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1Q
TEVTX1NBTVBMRTJfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KIAog
I2luY2x1ZGUgPHN0cmluZy5oPgogCkBAIC01MCwxNSArNTAsMTUgQEAgY2xhc3MgTXlTdHJpbmcg
ewogICAvLyBDJ3RvcnMKIAogICAvLyBUaGUgZGVmYXVsdCBjJ3RvciBjb25zdHJ1Y3RzIGEgTlVM
TCBzdHJpbmcuCi0gIE15U3RyaW5nKCkgOiBjX3N0cmluZ18oTlVMTCkge30KKyAgTXlTdHJpbmco
KSA6IGNfc3RyaW5nXyhudWxscHRyKSB7fQogCiAgIC8vIENvbnN0cnVjdHMgYSBNeVN0cmluZyBi
eSBjbG9uaW5nIGEgMC10ZXJtaW5hdGVkIEMgc3RyaW5nLgotICBleHBsaWNpdCBNeVN0cmluZyhj
b25zdCBjaGFyKiBhX2Nfc3RyaW5nKSA6IGNfc3RyaW5nXyhOVUxMKSB7CisgIGV4cGxpY2l0IE15
U3RyaW5nKGNvbnN0IGNoYXIqIGFfY19zdHJpbmcpIDogY19zdHJpbmdfKG51bGxwdHIpIHsKICAg
ICBTZXQoYV9jX3N0cmluZyk7CiAgIH0KIAogICAvLyBDb3B5IGMndG9yCi0gIE15U3RyaW5nKGNv
bnN0IE15U3RyaW5nJiBzdHJpbmcpIDogY19zdHJpbmdfKE5VTEwpIHsKKyAgTXlTdHJpbmcoY29u
c3QgTXlTdHJpbmcmIHN0cmluZykgOiBjX3N0cmluZ18obnVsbHB0cikgewogICAgIFNldChzdHJp
bmcuY19zdHJpbmdfKTsKICAgfQogCkBAIC03MSwxMyArNzEsMTAgQEAgY2xhc3MgTXlTdHJpbmcg
ewogICAvLyBHZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBNeVN0cmluZyBvYmpl
Y3QgcmVwcmVzZW50cy4KICAgY29uc3QgY2hhciogY19zdHJpbmcoKSBjb25zdCB7IHJldHVybiBj
X3N0cmluZ187IH0KIAotICBzaXplX3QgTGVuZ3RoKCkgY29uc3QgewotICAgIHJldHVybiBjX3N0
cmluZ18gPT0gTlVMTCA/IDAgOiBzdHJsZW4oY19zdHJpbmdfKTsKLSAgfQorICBzaXplX3QgTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gY19zdHJpbmdfID09IG51bGxwdHIgPyAwIDogc3RybGVuKGNf
c3RyaW5nXyk7IH0KIAogICAvLyBTZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBN
eVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgdm9pZCBTZXQoY29uc3QgY2hhciogY19zdHJp
bmcpOwogfTsKIAotCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFMl9IXworI2VuZGlm
ICAvLyBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjCmluZGV4IDA4NDg4MjYxOTJj
YzY2ZmNiNzkwNmVmMmMwYWFlZjY2YWY4NDNmOTIuLjQxZTMxYzE3NjdkZWU1NWNjNWQ1YzBiZWEy
ZGYyNjdjNWQ4MTE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMl91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTJfdW5pdHRlc3QuY2MKQEAgLTY2LDcgKzY2LDcgQEAgVEVTVChNeVN0cmluZywg
RGVmYXVsdENvbnN0cnVjdG9yKSB7CiAgIC8vIHdlIGhhdmUgdG8gbGl2ZSB3aXRoIHRoaXMgZmFj
dC4KICAgLy8KICAgLy8gPC9UZWNobmljYWxEZXRhaWxzPgotICBFWFBFQ1RfU1RSRVEoTlVMTCwg
cy5jX3N0cmluZygpKTsKKyAgRVhQRUNUX1NUUkVRKG51bGxwdHIsIHMuY19zdHJpbmcoKSk7CiAK
ICAgRVhQRUNUX0VRKDB1LCBzLkxlbmd0aCgpKTsKIH0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNU
KE15U3RyaW5nLCBTZXQpIHsKICAgRVhQRUNUX0VRKDAsIHN0cmNtcChzLmNfc3RyaW5nKCksIGtI
ZWxsb1N0cmluZykpOwogCiAgIC8vIENhbiB3ZSBzZXQgdGhlIE15U3RyaW5nIHRvIE5VTEw/Ci0g
IHMuU2V0KE5VTEwpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcy5jX3N0cmluZygpKTsKKyAgcy5T
ZXQobnVsbHB0cik7CisgIEVYUEVDVF9TVFJFUShudWxscHRyLCBzLmNfc3RyaW5nKCkpOwogfQog
fSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTMtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTMtaW5sLmgKaW5kZXggMWEyOWNlOTI5NmE2NGRmZTk3YTlmN2ZkYzZkYTg2Mzg3ZGMwYjc1Yi4u
NjU5ZTBmMGJiNWRmNjI5MDViYjM1ZjlhYjAzOGYyYzM4ZDNjMGU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzLWlubC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMy1pbmwuaApAQCAtMjksOCArMjksOCBAQAog
CiAvLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xlIEMrKyB0ZXN0
aW5nIGZyYW1ld29yay4KIAotI2lmbmRlZiBHVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCi0j
ZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFM19JTkxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9T
QU1QTEVTX1NBTVBMRTNfSU5MX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUz
X0lOTF9IXwogCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAKQEAgLTU4LDcgKzU4LDggQEAgY2xhc3Mg
UXVldWVOb2RlIHsKICBwcml2YXRlOgogICAvLyBDcmVhdGVzIGEgbm9kZSB3aXRoIGEgZ2l2ZW4g
ZWxlbWVudCB2YWx1ZS4gIFRoZSBuZXh0IHBvaW50ZXIgaXMKICAgLy8gc2V0IHRvIE5VTEwuCi0g
IGV4cGxpY2l0IFF1ZXVlTm9kZShjb25zdCBFJiBhbl9lbGVtZW50KSA6IGVsZW1lbnRfKGFuX2Vs
ZW1lbnQpLCBuZXh0XyhOVUxMKSB7fQorICBleHBsaWNpdCBRdWV1ZU5vZGUoY29uc3QgRSYgYW5f
ZWxlbWVudCkKKyAgICAgIDogZWxlbWVudF8oYW5fZWxlbWVudCksIG5leHRfKG51bGxwdHIpIHt9
CiAKICAgLy8gV2UgZGlzYWJsZSB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IG9wZXJhdG9yIGFuZCBj
b3B5IGMndG9yLgogICBjb25zdCBRdWV1ZU5vZGUmIG9wZXJhdG9yID0gKGNvbnN0IFF1ZXVlTm9k
ZSYpOwpAQCAtNzIsNyArNzMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRT4gIC8vIEUgaXMgdGhl
IGVsZW1lbnQgdHlwZS4KIGNsYXNzIFF1ZXVlIHsKICBwdWJsaWM6CiAgIC8vIENyZWF0ZXMgYW4g
ZW1wdHkgcXVldWUuCi0gIFF1ZXVlKCkgOiBoZWFkXyhOVUxMKSwgbGFzdF8oTlVMTCksIHNpemVf
KDApIHt9CisgIFF1ZXVlKCkgOiBoZWFkXyhudWxscHRyKSwgbGFzdF8obnVsbHB0ciksIHNpemVf
KDApIHt9CiAKICAgLy8gRCd0b3IuICBDbGVhcnMgdGhlIHF1ZXVlLgogICB+UXVldWUoKSB7IENs
ZWFyKCk7IH0KQEAgLTg2LDEyICs4NywxMiBAQCBjbGFzcyBRdWV1ZSB7CiAgICAgICBmb3IgKDsg
OykgewogICAgICAgICBkZWxldGUgbm9kZTsKICAgICAgICAgbm9kZSA9IG5leHQ7Ci0gICAgICAg
IGlmIChub2RlID09IE5VTEwpIGJyZWFrOworICAgICAgICBpZiAobm9kZSA9PSBudWxscHRyKSBi
cmVhazsKICAgICAgICAgbmV4dCA9IG5vZGUtPm5leHQoKTsKICAgICAgIH0KIAogICAgICAgLy8g
Mi4gUmVzZXRzIHRoZSBtZW1iZXIgdmFyaWFibGVzLgotICAgICAgaGVhZF8gPSBsYXN0XyA9IE5V
TEw7CisgICAgICBoZWFkXyA9IGxhc3RfID0gbnVsbHB0cjsKICAgICAgIHNpemVfID0gMDsKICAg
ICB9CiAgIH0KQEAgLTEyOCwxNCArMTI5LDE0IEBAIGNsYXNzIFF1ZXVlIHsKICAgLy8gdGhlIHF1
ZXVlIGlzIGVtcHR5LgogICBFKiBEZXF1ZXVlKCkgewogICAgIGlmIChzaXplXyA9PSAwKSB7Ci0g
ICAgICByZXR1cm4gTlVMTDsKKyAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGNv
bnN0IFF1ZXVlTm9kZTxFPiogY29uc3Qgb2xkX2hlYWQgPSBoZWFkXzsKICAgICBoZWFkXyA9IGhl
YWRfLT5uZXh0XzsKICAgICBzaXplXy0tOwogICAgIGlmIChzaXplXyA9PSAwKSB7Ci0gICAgICBs
YXN0XyA9IE5VTEw7CisgICAgICBsYXN0XyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgRSogZWxl
bWVudCA9IG5ldyBFKG9sZF9oZWFkLT5lbGVtZW50KCkpOwpAQCAtMTUwLDcgKzE1MSw4IEBAIGNs
YXNzIFF1ZXVlIHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CiAgIFF1ZXVlKiBNYXAoRiBmdW5j
dGlvbikgY29uc3QgewogICAgIFF1ZXVlKiBuZXdfcXVldWUgPSBuZXcgUXVldWUoKTsKLSAgICBm
b3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9IGhlYWRfOyBub2RlICE9IE5VTEw7IG5vZGUg
PSBub2RlLT5uZXh0XykgeworICAgIGZvciAoY29uc3QgUXVldWVOb2RlPEU+KiBub2RlID0gaGVh
ZF87IG5vZGUgIT0gbnVsbHB0cjsKKyAgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0XykgewogICAg
ICAgbmV3X3F1ZXVlLT5FbnF1ZXVlKGZ1bmN0aW9uKG5vZGUtPmVsZW1lbnQoKSkpOwogICAgIH0K
IApAQCAtMTY3LDQgKzE2OSw0IEBAIGNsYXNzIFF1ZXVlIHsKICAgY29uc3QgUXVldWUmIG9wZXJh
dG9yID0gKGNvbnN0IFF1ZXVlJik7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FN
UExFM19JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5p
dHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5pdHRl
c3QuY2MKaW5kZXggZTA5M2MyNTg4NTczZjk2MjcwYTVlZDQxMjQ1YWM3ZTg5ZjQ4NTExOC4uYjE5
NDE2ZDUzYzk1ZjA4NGVmZTUxYmY4ZWYyM2NjNjkzZjNjNWQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwpAQCAtNzEsNyAr
NzEsNyBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAg
Ly8gdmlydHVhbCB2b2lkIFNldFVwKCkgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVhY2ggdGVzdCBp
cyBydW4uICBZb3UKICAgLy8gc2hvdWxkIGRlZmluZSBpdCBpZiB5b3UgbmVlZCB0byBpbml0aWFs
aXplIHRoZSB2YXJpYWJsZXMuCiAgIC8vIE90aGVyd2lzZSwgdGhpcyBjYW4gYmUgc2tpcHBlZC4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHExXy5FbnF1ZXVlKDEpOwogICAgIHEyXy5FbnF1ZXVlKDIpOwogICAgIHEyXy5FbnF1ZXVlKDMp
OwpAQCAtOTksOCArOTksOCBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICAgICBBU1NFUlRfRVEocS0+U2l6ZSgpLCBuZXdfcS0+U2l6ZSgpKTsKIAogICAg
IC8vIFZlcmlmaWVzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgZWxlbWVudHMgb2YgdGhl
IHR3byBxdWV1ZXMuCi0gICAgZm9yICggY29uc3QgUXVldWVOb2RlPGludD4gKiBuMSA9IHEtPkhl
YWQoKSwgKiBuMiA9IG5ld19xLT5IZWFkKCk7Ci0gICAgICAgICAgbjEgIT0gTlVMTDsgbjEgPSBu
MS0+bmV4dCgpLCBuMiA9IG4yLT5uZXh0KCkgKSB7CisgICAgZm9yIChjb25zdCBRdWV1ZU5vZGU8
aW50PipuMSA9IHEtPkhlYWQoKSwgKm4yID0gbmV3X3EtPkhlYWQoKTsKKyAgICAgICAgIG4xICE9
IG51bGxwdHI7IG4xID0gbjEtPm5leHQoKSwgbjIgPSBuMi0+bmV4dCgpKSB7CiAgICAgICBFWFBF
Q1RfRVEoMiAqIG4xLT5lbGVtZW50KCksIG4yLT5lbGVtZW50KCkpOwogICAgIH0KIApAQCAtMTI1
LDE2ICsxMjUsMTYgQEAgVEVTVF9GKFF1ZXVlVGVzdFNtcGwzLCBEZWZhdWx0Q29uc3RydWN0b3Ip
IHsKIC8vIFRlc3RzIERlcXVldWUoKS4KIFRFU1RfRihRdWV1ZVRlc3RTbXBsMywgRGVxdWV1ZSkg
ewogICBpbnQgKiBuID0gcTBfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiA9PSBOVUxMKTsK
KyAgRVhQRUNUX1RSVUUobiA9PSBudWxscHRyKTsKIAogICBuID0gcTFfLkRlcXVldWUoKTsKLSAg
QVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUobiAhPSBudWxscHRyKTsKICAg
RVhQRUNUX0VRKDEsICpuKTsKICAgRVhQRUNUX0VRKDB1LCBxMV8uU2l6ZSgpKTsKICAgZGVsZXRl
IG47CiAKICAgbiA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9UUlVFKG4gIT0gTlVMTCk7Cisg
IEFTU0VSVF9UUlVFKG4gIT0gbnVsbHB0cik7CiAgIEVYUEVDVF9FUSgyLCAqbik7CiAgIEVYUEVD
VF9FUSgxdSwgcTJfLlNpemUoKSk7CiAgIGRlbGV0ZSBuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTQuaAppbmRleCBlMjU2ZjQwNjRmZTkxYTdmMDFhOTQ1NTBkMzJjM2Ji
MTFiMGE0ZmZmLi4wYzRlZDkyZTczOGJhNjFlZDZiNWYyOGZkM2IwY2I0Y2EyYzI2NGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaApAQCAtMjgsOCArMjgsOCBA
QAogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVz
aW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNf
U0FNUExFNF9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NB
TVBMRTRfSF8KIAogLy8gQSBzaW1wbGUgbW9ub3RvbmljIGNvdW50ZXIuCiBjbGFzcyBDb3VudGVy
IHsKQEAgLTUwLDQgKzUwLDQgQEAgY2xhc3MgQ291bnRlciB7CiAgIHZvaWQgUHJpbnQoKSBjb25z
dDsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEU0X0hfCisjZW5kaWYgIC8v
IEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEU0X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MKaW5kZXggZDhhODc4OGM2ZDBmZGEy
Mzg2NDZmZWEyOTBlMDk3Y2M3NjI3Nzg1NS4uMGEyMWRkMjE1NzcwN2ZiMzJjNDU5MjQ4YjBjNTM0
MTYwOWVjMDYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU1X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlNV91bml0dGVzdC5jYwpAQCAtNjMsMTUgKzYzLDEzIEBAIGNsYXNzIFF1aWNrVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIC8vIFJlbWVtYmVyIHRoYXQg
U2V0VXAoKSBpcyBydW4gaW1tZWRpYXRlbHkgYmVmb3JlIGEgdGVzdCBzdGFydHMuCiAgIC8vIFRo
aXMgaXMgYSBnb29kIHBsYWNlIHRvIHJlY29yZCB0aGUgc3RhcnQgdGltZS4KLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgewotICAgIHN0YXJ0X3RpbWVfID0gdGltZShOVUxMKTsKLSAgfQorICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgeyBzdGFydF90aW1lXyA9IHRpbWUobnVsbHB0cik7IH0KIAogICAv
LyBUZWFyRG93bigpIGlzIGludm9rZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYSB0ZXN0IGZpbmlzaGVz
LiAgSGVyZSB3ZQogICAvLyBjaGVjayBpZiB0aGUgdGVzdCB3YXMgdG9vIHNsb3cuCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICAv
LyBHZXRzIHRoZSB0aW1lIHdoZW4gdGhlIHRlc3QgZmluaXNoZXMKLSAgICBjb25zdCB0aW1lX3Qg
ZW5kX3RpbWUgPSB0aW1lKE5VTEwpOworICAgIGNvbnN0IHRpbWVfdCBlbmRfdGltZSA9IHRpbWUo
bnVsbHB0cik7CiAKICAgICAvLyBBc3NlcnRzIHRoYXQgdGhlIHRlc3QgdG9vayBubyBtb3JlIHRo
YW4gfjUgc2Vjb25kcy4gIERpZCB5b3UKICAgICAvLyBrbm93IHRoYXQgeW91IGNhbiB1c2UgYXNz
ZXJ0aW9ucyBpbiBTZXRVcCgpIGFuZCBUZWFyRG93bigpIGFzCkBAIC0xNDIsNyArMTQwLDcgQEAg
VEVTVF9GKEludGVnZXJGdW5jdGlvblRlc3QsIElzUHJpbWUpIHsKIC8vIHN0dWZmIGluc2lkZSB0
aGUgYm9keSBvZiB0aGUgdGVzdCBmaXh0dXJlLCBhcyB1c3VhbC4KIGNsYXNzIFF1ZXVlVGVzdCA6
IHB1YmxpYyBRdWlja1Rlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIEZpcnN0LCB3ZSBuZWVkIHRvIHNl
dCB1cCB0aGUgc3VwZXIgZml4dHVyZSAoUXVpY2tUZXN0KS4KICAgICBRdWlja1Rlc3Q6OlNldFVw
KCk7CiAKQEAgLTE3NiwxNiArMTc0LDE2IEBAIFRFU1RfRihRdWV1ZVRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikgewogLy8gVGVzdHMgRGVxdWV1ZSgpLgogVEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1
ZSkgewogICBpbnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuID09IE5VTEwp
OworICBFWFBFQ1RfVFJVRShuID09IG51bGxwdHIpOwogCiAgIG4gPSBxMV8uRGVxdWV1ZSgpOwot
ICBFWFBFQ1RfVFJVRShuICE9IE5VTEwpOworICBFWFBFQ1RfVFJVRShuICE9IG51bGxwdHIpOwog
ICBFWFBFQ1RfRVEoMSwgKm4pOwogICBFWFBFQ1RfRVEoMHUsIHExXy5TaXplKCkpOwogICBkZWxl
dGUgbjsKIAogICBuID0gcTJfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiAhPSBOVUxMKTsK
KyAgRVhQRUNUX1RSVUUobiAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDIsICpuKTsKICAgRVhQ
RUNUX0VRKDF1LCBxMl8uU2l6ZSgpKTsKICAgZGVsZXRlIG47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKaW5kZXggZGRmMmYxYzEz
YmJlMDM0ODEzNDQ5MzZiMGE3MmRiYjJhMGIyODQyNC4uZGEzMTdlZWQ1YTBkMjU4NjA1Yzg5ZTBk
ODhmYzQzYzE3YzFlYjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2Ft
cGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Nh
bXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwpAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBQcmltZVRh
YmxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLy8gaW1wbGVtZW50ZWQgYnkgVC4K
ICAgUHJpbWVUYWJsZVRlc3QoKSA6IHRhYmxlXyhDcmVhdGVQcmltZVRhYmxlPFQ+KCkpIHt9CiAK
LSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3QoKSB7IGRlbGV0ZSB0YWJsZV87IH0KKyAgflByaW1l
VGFibGVUZXN0KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9CiAKICAgLy8gTm90ZSB0aGF0
IHdlIHRlc3QgYW4gaW1wbGVtZW50YXRpb24gdmlhIHRoZSBiYXNlIGludGVyZmFjZQogICAvLyBp
bnN0ZWFkIG9mIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gY2xhc3MuICBUaGlzIGlzIGltcG9y
dGFudApAQCAtNzMsOCArNzMsNiBAQCBjbGFzcyBQcmltZVRhYmxlVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsKICAgUHJpbWVUYWJsZSogY29uc3QgdGFibGVfOwogfTsKIAotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUCi0KIHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAvLyBHb29nbGUgVGVz
dCBvZmZlcnMgdHdvIHdheXMgZm9yIHJldXNpbmcgdGVzdHMgZm9yIGRpZmZlcmVudCB0eXBlcy4K
QEAgLTg0LDcgKzgyLDcgQEAgdXNpbmcgdGVzdGluZzo6VHlwZXM7CiAKIC8vIFRvIHdyaXRlIGEg
dHlwZWQgdGVzdCBjYXNlLCBmaXJzdCB1c2UKIC8vCi0vLyAgIFRZUEVEX1RFU1RfQ0FTRShUZXN0
Q2FzZU5hbWUsIFR5cGVMaXN0KTsKKy8vICAgVFlQRURfVEVTVF9TVUlURShUZXN0Q2FzZU5hbWUs
IFR5cGVMaXN0KTsKIC8vCiAvLyB0byBkZWNsYXJlIGl0IGFuZCBzcGVjaWZ5IHRoZSB0eXBlIHBh
cmFtZXRlcnMuICBBcyB3aXRoIFRFU1RfRiwKIC8vIFRlc3RDYXNlTmFtZSBtdXN0IG1hdGNoIHRo
ZSB0ZXN0IGZpeHR1cmUgbmFtZS4KQEAgLTkyLDcgKzkwLDcgQEAgdXNpbmcgdGVzdGluZzo6VHlw
ZXM7CiAvLyBUaGUgbGlzdCBvZiB0eXBlcyB3ZSB3YW50IHRvIHRlc3QuCiB0eXBlZGVmIFR5cGVz
PE9uVGhlRmx5UHJpbWVUYWJsZSwgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU+IEltcGxlbWVudGF0
aW9uczsKIAotVFlQRURfVEVTVF9DQVNFKFByaW1lVGFibGVUZXN0LCBJbXBsZW1lbnRhdGlvbnMp
OworVFlQRURfVEVTVF9TVUlURShQcmltZVRhYmxlVGVzdCwgSW1wbGVtZW50YXRpb25zKTsKIAog
Ly8gVGhlbiB1c2UgVFlQRURfVEVTVChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB0byBkZWZpbmUg
YSB0eXBlZCB0ZXN0LAogLy8gc2ltaWxhciB0byBURVNUX0YuCkBAIC0xMzEsMTMgKzEyOSw5IEBA
IFRZUEVEX1RFU1QoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkgewogfQogCiAvLyBU
aGF0J3MgaXQhICBHb29nbGUgVGVzdCB3aWxsIHJlcGVhdCBlYWNoIFRZUEVEX1RFU1QgZm9yIGVh
Y2ggdHlwZQotLy8gaW4gdGhlIHR5cGUgbGlzdCBzcGVjaWZpZWQgaW4gVFlQRURfVEVTVF9DQVNF
LiAgU2l0IGJhY2sgYW5kIGJlCisvLyBpbiB0aGUgdHlwZSBsaXN0IHNwZWNpZmllZCBpbiBUWVBF
RF9URVNUX1NVSVRFLiAgU2l0IGJhY2sgYW5kIGJlCiAvLyBoYXBweSB0aGF0IHlvdSBkb24ndCBo
YXZlIHRvIGRlZmluZSB0aGVtIG11bHRpcGxlIHRpbWVzLgogCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19UWVBFRF9URVNUCi0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIHVzaW5nIHRlc3Rp
bmc6OlR5cGVzOwogCiAvLyBTb21ldGltZXMsIGhvd2V2ZXIsIHlvdSBkb24ndCB5ZXQga25vdyBh
bGwgdGhlIHR5cGVzIHRoYXQgeW91IHdhbnQKQEAgLTE2Myw3ICsxNTcsNyBAQCBjbGFzcyBQcmlt
ZVRhYmxlVGVzdDIgOiBwdWJsaWMgUHJpbWVUYWJsZVRlc3Q8VD4gewogLy8gVGhlbiwgZGVjbGFy
ZSB0aGUgdGVzdCBjYXNlLiAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0CiAv
LyBmaXh0dXJlLCBhbmQgYWxzbyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlIChhcyB1c3VhbCku
ICBUaGUgX1AKIC8vIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJuIi4K
LVRZUEVEX1RFU1RfQ0FTRV9QKFByaW1lVGFibGVUZXN0Mik7CitUWVBFRF9URVNUX1NVSVRFX1Ao
UHJpbWVUYWJsZVRlc3QyKTsKIAogLy8gTmV4dCwgdXNlIFRZUEVEX1RFU1RfUChUZXN0Q2FzZU5h
bWUsIFRlc3ROYW1lKSB0byBkZWZpbmUgYSB0ZXN0LAogLy8gc2ltaWxhciB0byB3aGF0IHlvdSBk
byB3aXRoIFRFU1RfRi4KQEAgLTE5Niw3ICsxOTAsNyBAQCBUWVBFRF9URVNUX1AoUHJpbWVUYWJs
ZVRlc3QyLCBDYW5HZXROZXh0UHJpbWUpIHsKIAogLy8gVHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Rz
IGludm9sdmUgb25lIGV4dHJhIHN0ZXA6IHlvdSBoYXZlIHRvCiAvLyBlbnVtZXJhdGUgdGhlIHRl
c3RzIHlvdSBkZWZpbmVkOgotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoCitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoCiAgICAgUHJpbWVUYWJsZVRlc3QyLCAgLy8gVGhlIGZpcnN0IGFy
Z3VtZW50IGlzIHRoZSB0ZXN0IGNhc2UgbmFtZS4KICAgICAvLyBUaGUgcmVzdCBvZiB0aGUgYXJn
dW1lbnRzIGFyZSB0aGUgdGVzdCBuYW1lcy4KICAgICBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMs
IFJldHVybnNUcnVlRm9yUHJpbWVzLCBDYW5HZXROZXh0UHJpbWUpOwpAQCAtMjE2LDkgKzIxMCw4
IEBAIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAogLy8gZGVmaW5lZCBhdCB0aGUgdGltZSB3
ZSB3cml0ZSB0aGUgVFlQRURfVEVTVF9QKClzLgogdHlwZWRlZiBUeXBlczxPblRoZUZseVByaW1l
VGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPgogICAgIFByaW1lVGFibGVJbXBsZW1lbnRh
dGlvbnM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChPblRoZUZseUFuZFByZUNhbGN1
bGF0ZWQsICAgIC8vIEluc3RhbmNlIG5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFByaW1lVGFibGVUZXN0MiwgICAgICAgICAgICAgLy8gVGVzdCBjYXNlIG5hbWUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlvbnMpOyAgLy8gVHlw
ZSBsaXN0CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoT25UaGVGbHlBbmRQcmVDYWxj
dWxhdGVkLCAgICAvLyBJbnN0YW5jZSBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUHJpbWVUYWJsZVRlc3QyLCAgICAgICAgICAgICAvLyBUZXN0IGNhc2UgbmFtZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlvbnMpOyAgLy8g
VHlwZSBsaXN0CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAogfSAgLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTdfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTdf
dW5pdHRlc3QuY2MKaW5kZXggYzFhZThiZGVkYzlhZmM5YTExZDBkOTIwMjFlZjc2NzdkMzk4YTlj
OS4uZTBlZmMyOWU0YTJhOTc3ZTFhNTBhNDViYjM3NTI0M2M5Njg1NDdkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYwpAQCAt
NjUsMTEgKzY1LDExIEBAIFByaW1lVGFibGUqIENyZWF0ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxl
KCkgewogLy8gY3JlYXRlIGFuZCBzdG9yZSBhbiBpbnN0YW5jZSBvZiBQcmltZVRhYmxlLgogY2xh
c3MgUHJpbWVUYWJsZVRlc3RTbXBsNyA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPENyZWF0ZVByaW1l
VGFibGVGdW5jKj4gewogIHB1YmxpYzoKLSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3RTbXBsNygp
IHsgZGVsZXRlIHRhYmxlXzsgfQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRhYmxlXyA9ICgq
R2V0UGFyYW0oKSkoKTsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIH5QcmltZVRh
YmxlVGVzdFNtcGw3KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQorICB2b2lkIFRlYXJEb3du
KCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSB0YWJsZV87Ci0gICAgdGFibGVfID0gTlVMTDsKKyAg
ICB0YWJsZV8gPSBudWxscHRyOwogICB9CiAKICBwcm90ZWN0ZWQ6CkBAIC0xMTAsOCArMTEwLDgg
QEAgVEVTVF9QKFByaW1lVGFibGVUZXN0U21wbDcsIENhbkdldE5leHRQcmltZSkgewogLy8KIC8v
IEhlcmUsIHdlIGluc3RhbnRpYXRlIG91ciB0ZXN0cyB3aXRoIGEgbGlzdCBvZiB0d28gUHJpbWVU
YWJsZSBvYmplY3QKIC8vIGZhY3RvcnkgZnVuY3Rpb25zOgotSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAotICAgICAg
ICAgICAgICAgICAgICAgICAgVmFsdWVzKCZDcmVhdGVPblRoZUZseVByaW1lVGFibGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNyZWF0ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxl
PDEwMDA+KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoT25UaGVGbHlBbmRQcmVDYWxjdWxh
dGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
cygmQ3JlYXRlT25UaGVGbHlQcmltZVRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmQ3JlYXRlUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU8MTAwMD4pKTsKIAogfSAgLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZThfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZThf
dW5pdHRlc3QuY2MKaW5kZXggY2U3NWNmMDMwODcwYzM3NmRmZWM2MDMxZGIyNDcxMTA4NzAzODNm
Ni4uMTA0ODhiMGVhNDUwOWE2NTkxZjA2YjA1YWM1YWUxNDQzM2I2NTJlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYwpAQCAt
MzcsNyArMzcsNiBAQAogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIG5hbWVzcGFjZSB7Ci0j
aWYgR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gU3VwcG9zZSB3ZSB3YW50IHRvIGludHJvZHVjZSBh
IG5ldywgaW1wcm92ZWQgaW1wbGVtZW50YXRpb24gb2YgUHJpbWVUYWJsZQogLy8gd2hpY2ggY29t
YmluZXMgc3BlZWQgb2YgUHJlY2FsY1ByaW1lVGFibGUgYW5kIHZlcnNhdGlsaXR5IG9mCkBAIC01
MCwyNCArNDksMjUgQEAgY2xhc3MgSHlicmlkUHJpbWVUYWJsZSA6IHB1YmxpYyBQcmltZVRhYmxl
IHsKICBwdWJsaWM6CiAgIEh5YnJpZFByaW1lVGFibGUoYm9vbCBmb3JjZV9vbl90aGVfZmx5LCBp
bnQgbWF4X3ByZWNhbGN1bGF0ZWQpCiAgICAgICA6IG9uX3RoZV9mbHlfaW1wbF8obmV3IE9uVGhl
Rmx5UHJpbWVUYWJsZSksCi0gICAgICAgIHByZWNhbGNfaW1wbF8oZm9yY2Vfb25fdGhlX2ZseSA/
IE5VTEwgOgotICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJlQ2FsY3VsYXRlZFByaW1l
VGFibGUobWF4X3ByZWNhbGN1bGF0ZWQpKSwKKyAgICAgICAgcHJlY2FsY19pbXBsXyhmb3JjZV9v
bl90aGVfZmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbHB0cgorICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IG5ldyBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZShtYXhfcHJlY2Fs
Y3VsYXRlZCkpLAogICAgICAgICBtYXhfcHJlY2FsY3VsYXRlZF8obWF4X3ByZWNhbGN1bGF0ZWQp
IHt9Ci0gIHZpcnR1YWwgfkh5YnJpZFByaW1lVGFibGUoKSB7CisgIH5IeWJyaWRQcmltZVRhYmxl
KCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSBvbl90aGVfZmx5X2ltcGxfOwogICAgIGRlbGV0ZSBw
cmVjYWxjX2ltcGxfOwogICB9CiAKLSAgdmlydHVhbCBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0
IHsKLSAgICBpZiAocHJlY2FsY19pbXBsXyAhPSBOVUxMICYmIG4gPCBtYXhfcHJlY2FsY3VsYXRl
ZF8pCisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUgeworICAgIGlmIChwcmVj
YWxjX2ltcGxfICE9IG51bGxwdHIgJiYgbiA8IG1heF9wcmVjYWxjdWxhdGVkXykKICAgICAgIHJl
dHVybiBwcmVjYWxjX2ltcGxfLT5Jc1ByaW1lKG4pOwogICAgIGVsc2UKICAgICAgIHJldHVybiBv
bl90aGVfZmx5X2ltcGxfLT5Jc1ByaW1lKG4pOwogICB9CiAKLSAgdmlydHVhbCBpbnQgR2V0TmV4
dFByaW1lKGludCBwKSBjb25zdCB7CisgIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IG92
ZXJyaWRlIHsKICAgICBpbnQgbmV4dF9wcmltZSA9IC0xOwotICAgIGlmIChwcmVjYWxjX2ltcGxf
ICE9IE5VTEwgJiYgcCA8IG1heF9wcmVjYWxjdWxhdGVkXykKKyAgICBpZiAocHJlY2FsY19pbXBs
XyAhPSBudWxscHRyICYmIHAgPCBtYXhfcHJlY2FsY3VsYXRlZF8pCiAgICAgICBuZXh0X3ByaW1l
ID0gcHJlY2FsY19pbXBsXy0+R2V0TmV4dFByaW1lKHApOwogCiAgICAgcmV0dXJuIG5leHRfcHJp
bWUgIT0gLTEgPyBuZXh0X3ByaW1lIDogb25fdGhlX2ZseV9pbXBsXy0+R2V0TmV4dFByaW1lKHAp
OwpAQCAtODksMjQgKzg5LDE3IEBAIHVzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKIC8vIFByZUNh
bGN1bGF0ZWRQcmltZVRhYmxlIGRpc2FibGVkLiBXZSBkbyB0aGlzIGJ5IGRlZmluaW5nIGZpeHR1
cmUgd2hpY2ggd2lsbAogLy8gYWNjZXB0IGRpZmZlcmVudCBjb21iaW5hdGlvbnMgb2YgcGFyYW1l
dGVycyBmb3IgaW5zdGFudGlhdGluZyBhCiAvLyBIeWJyaWRQcmltZVRhYmxlIGluc3RhbmNlLgot
Y2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTwgOjp0ZXN0aW5nOjp0
dXBsZTxib29sLCBpbnQ+ID4geworY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdp
dGhQYXJhbTwgOjpzdGQ6OnR1cGxlPGJvb2wsIGludD4gPiB7CiAgcHJvdGVjdGVkOgotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8gVGhpcyBjYW4gYmUgd3JpdHRlbiBhcwotICAgIC8v
Ci0gICAgLy8gYm9vbCBmb3JjZV9vbl90aGVfZmx5OwotICAgIC8vIGludCBtYXhfcHJlY2FsY3Vs
YXRlZDsKLSAgICAvLyB0aWUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1bGF0ZWQpID0g
R2V0UGFyYW0oKTsKLSAgICAvLwotICAgIC8vIG9uY2UgdGhlIEdvb2dsZSBDKysgU3R5bGUgR3Vp
ZGUgYWxsb3dzIHVzZSBvZiA6OnN0ZDo6dHIxOjp0aWUuCi0gICAgLy8KLSAgICBib29sIGZvcmNl
X29uX3RoZV9mbHkgPSA6OnRlc3Rpbmc6OmdldDwwPihHZXRQYXJhbSgpKTsKLSAgICBpbnQgbWF4
X3ByZWNhbGN1bGF0ZWQgPSA6OnRlc3Rpbmc6OmdldDwxPihHZXRQYXJhbSgpKTsKKyAgdm9pZCBT
ZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBib29sIGZvcmNlX29uX3RoZV9mbHk7CisgICAgaW50IG1h
eF9wcmVjYWxjdWxhdGVkOworICAgIHN0ZDo6dGllKGZvcmNlX29uX3RoZV9mbHksIG1heF9wcmVj
YWxjdWxhdGVkKSA9IEdldFBhcmFtKCk7CiAgICAgdGFibGVfID0gbmV3IEh5YnJpZFByaW1lVGFi
bGUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1bGF0ZWQpOwogICB9Ci0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxl
dGUgdGFibGVfOwotICAgIHRhYmxlXyA9IE5VTEw7CisgICAgdGFibGVfID0gbnVsbHB0cjsKICAg
fQogICBIeWJyaWRQcmltZVRhYmxlKiB0YWJsZV87CiB9OwpAQCAtMTU1LDE5ICsxNDgsNyBAQCBU
RVNUX1AoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkgewogLy8gd2lsbCBwdXQgc29t
ZSBvZiB0aGUgdGVzdGVkIG51bWJlcnMgYmV5b25kIHRoZSBjYXBhYmlsaXR5IG9mIHRoZQogLy8g
UHJlY2FsY1ByaW1lVGFibGUgaW5zdGFuY2UgYW5kIHNvbWUgaW5zaWRlIGl0ICgxMCkuIENvbWJp
bmUgd2lsbCBwcm9kdWNlIGFsbAogLy8gcG9zc2libGUgY29tYmluYXRpb25zLgotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoTWVhbmluZ2Z1bFRlc3RQYXJhbWV0ZXJzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgUHJpbWVUYWJsZVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5l
KEJvb2woKSwgVmFsdWVzKDEsIDEwKSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE1lYW5p
bmdmdWxUZXN0UGFyYW1ldGVycywgUHJpbWVUYWJsZVRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgQ29tYmluZShCb29sKCksIFZhbHVlcygxLCAxMCkpKTsKIAotI2Vsc2UKLQotLy8gR29v
Z2xlIFRlc3QgbWF5IG5vdCBzdXBwb3J0IENvbWJpbmUoKSB3aXRoIHNvbWUgY29tcGlsZXJzLiBJ
ZiB3ZQotLy8gdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGNvbXBpbGUgb3V0IGFsbCBj
b2RlIHJlZmVycmluZyB0bwotLy8gdGhlIGd0ZXN0X21haW4gbGlicmFyeSwgTVNWQyBsaW5rZXIg
d2lsbCBub3QgbGluayB0aGF0IGxpYnJhcnkgYXQKLS8vIGFsbCBhbmQgY29uc2VxdWVudGx5IGNv
bXBsYWluIGFib3V0IG1pc3NpbmcgZW50cnkgcG9pbnQgZGVmaW5lZCBpbgotLy8gdGhhdCBsaWJy
YXJ5IChmYXRhbCBlcnJvciBMTksxNTYxOiBlbnRyeSBwb2ludCBtdXN0IGJlCi0vLyBkZWZpbmVk
KS4gVGhpcyBkdW1teSB0ZXN0IGtlZXBzIGd0ZXN0X21haW4gbGlua2VkIGluLgotVEVTVChEdW1t
eVRlc3QsIENvbWJpbmVJc05vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7fQotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19DT01CSU5FCiB9ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwppbmRleCA1M2Y5YWY1
YmExZGZjMjY5NTY2MDc4ZjIzNmY2OTU1OTlkYzUyYWRhLi5lNTAyZDA4ZDczZTdkNzBiZWRlODZj
YmQ3MTE3NTRjZDA5ZGU4NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCkBAIC00OSwxNiArNDksMTYgQEAgbmFtZXNwYWNl
IHsKIGNsYXNzIFRlcnNlUHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsK
ICBwcml2YXRlOgogICAvLyBDYWxsZWQgYmVmb3JlIGFueSB0ZXN0IGFjdGl2aXR5IHN0YXJ0cy4K
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5p
dF90ZXN0ICovKSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYg
LyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7fQogCiAgIC8vIENhbGxlZCBhZnRlciBhbGwgdGVz
dCBhY3Rpdml0aWVzIGhhdmUgZW5kZWQuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5k
KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwg
IlRFU1QgJXNcbiIsIHVuaXRfdGVzdC5QYXNzZWQoKSA/ICJQQVNTRUQiIDogIkZBSUxFRCIpOwog
ICAgIGZmbHVzaChzdGRvdXQpOwogICB9CiAKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3Rh
cnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5m
bykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJy
aWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIqKiogVGVzdCAlcy4lcyBz
dGFydGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwKQEAg
LTY3LDcgKzY3LDcgQEAgY2xhc3MgVGVyc2VQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50
TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVkIGFzc2VydGlvbiBv
ciBhIFNVQ0NFRUQoKSBpbnZvY2F0aW9uLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3Vs
dChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgeworICB2b2lkIE9uVGVz
dFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIG92ZXJy
aWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIlcyBpbiAlczolZFxuJXNc
biIsCiAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJl
IiA6ICJTdWNjZXNzIiwKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgVGVyc2VQcmludGVyIDogcHVi
bGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEg
dGVzdCBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3Zl
cnJpZGUgewogICAgIGZwcmludGYoc3Rkb3V0LAogICAgICAgICAgICAgIioqKiBUZXN0ICVzLiVz
IGVuZGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwKQEAg
LTEzNSwxMCArMTM1LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAv
LyBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgdGhlIFVuaXRUZXN0IHJlZmxlY3Rpb24gQVBJ
IHRvIGluc3BlY3QgdGVzdAogICAvLyByZXN1bHRzLiBIZXJlIHdlIGRpc2NvdW50IGZhaWx1cmVz
IGZyb20gdGhlIHRlc3RzIHdlIGV4cGVjdGVkIHRvIGZhaWwuCiAgIGludCB1bmV4cGVjdGVkbHlf
ZmFpbGVkX3Rlc3RzID0gMDsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2Ug
PSAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpOwotICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVz
dF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvID0gKnRlc3RfY2FzZS5HZXRUZXN0SW5mbyhqKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBjb25z
dCB0ZXN0aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUgPSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0
ZShpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUudG90YWxfdGVzdF9jb3Vu
dCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8gPSAqdGVzdF9zdWl0
ZS5HZXRUZXN0SW5mbyhqKTsKICAgICAgIC8vIENvdW50cyBmYWlsZWQgdGVzdHMgdGhhdCB3ZXJl
IG5vdCBtZWFudCB0byBmYWlsICh0aG9zZSB3aXRob3V0CiAgICAgICAvLyAnRmFpbHMnIGluIHRo
ZSBuYW1lKS4KICAgICAgIGlmICh0ZXN0X2luZm8ucmVzdWx0KCktPkZhaWxlZCgpICYmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURNRS5tZCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMzU5ZmVk
OTIzMmI1MDdjNDRlNTViNDAyYWU2ZTY1OGJmOWE2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURNRS5tZApAQCAtMCwwICsxLDUgQEAKKyMg
UGxlYXNlIE5vdGU6CisKK0ZpbGVzIGluIHRoaXMgZGlyZWN0b3J5IGFyZSBubyBsb25nZXIgc3Vw
cG9ydGVkIGJ5IHRoZSBtYWludGFpbmVycy4gVGhleQorcmVwcmVzZW50IG1vc3R5IGhpc3Rvcmlj
YWwgYXJ0aWZhY3RzIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGNvbW11bml0eSBvbmx5LiBUaGVyZQor
aXMgbm8gZ3VhcmFudGVlIHdoYXRzb2V2ZXIgdGhhdCB0aGVzZSBzY3JpcHRzIHN0aWxsIHdvcmsu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9w
cmVkX2ltcGwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9w
cmVkX2ltcGwucHkKaW5kZXggYjQzZWZkZjQxZTVjMDI3NDBmNzJiMzU1MzJiZTVjZjA0OTc5NDgz
NS4uZTA5YTZlMDE3NzhkOTc0ZWFkOTc2YTVlZGY3OWZiNWQ0MzRhMzYzMiAxMDA3NTUKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9nZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5Cisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5w
eQpAQCAtNzgsNyArNzgsNyBAQCBkZWYgSGVhZGVyUHJlYW1ibGUobik6CiAgICAgfQogCiAgIHJl
dHVybiAoCi0iIiIvLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KKyAgIiIiLy8gQ29weXJp
Z2h0IDIwMDYsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KIC8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMTExLDYgKzExMSw4IEBAIGRlZiBIZWFkZXJQcmVhbWJsZShuKToKIC8vICcl
KGNvbW1hbmQpcycuICBETyBOT1QgRURJVCBCWSBIQU5EIQogLy8KIC8vIEltcGxlbWVudHMgYSBm
YW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3Jvcy4KKy8vIEdPT0dMRVRF
U1RfQ00wMDAxIERPIE5PVCBERUxFVEUKKwogCiAjaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCiAjZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJF
RF9JTVBMX0hfCkBAIC0yNDYsOCArMjQ4LDEwIEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVk
JShuKXNIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0IiIiICUgREVGUwogCiAgIGltcGwgKz0g
JyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIicKIAotICBpbXBsICs9IEl0ZXIobiwg
IiIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxcbiIgPDwgZSVzIDw8ICIgZXZh
bHVhdGVzIHRvICIgPDwgdiVzIiIiKQorICBpbXBsICs9IEl0ZXIoCisgICAgICBuLCAiIiIKKyAg
ICAgIDw8ICJcXG4iIDw8IGUlcyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJp
bnRUb1N0cmluZyh2JXMpIiIiCisgICkKIAogICBpbXBsICs9ICIiIjsKIH0KQEAgLTMzMyw3ICsz
MzcsNyBAQCBkZWYgVW5pdFRlc3RQcmVhbWJsZSgpOgogICAgIH0KIAogICByZXR1cm4gKAotIiIi
Ly8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCisgICIiIi8vIENvcHlyaWdodCAyMDA2LCBH
b29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTQyNyw3ICs0MzEsNyBAQCBkZWYgVGVzdHNGb3JBcml0eShuKToKICAgICB9CiAKICAgdGVzdHMg
PSAoCi0iIiIvLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0b3JzIGZvciB0ZXN0aW5nICUoYXJpdHkp
cyBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KKyAgIiIiLy8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9y
cyBmb3IgdGVzdGluZyAlKGFyaXR5KXMgcHJlZGljYXRlIGFzc2VydGlvbnMuCiAKIC8vIEEgJShh
cml0eSlzIHByZWRpY2F0ZSBmdW5jdGlvbi4KIHRlbXBsYXRlIDwlKHR5cGVzKXM+CkBAIC00MzUs
OSArNDM5LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24lKG4pcyglKHR2cylzKSB7CiAgIHJldHVybiAl
KHZfc3VtKXMgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5l
ZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGlt
ZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8g
VGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVy
IGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1
bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24lKG4pc0ludCgl
KGludF92cylzKSB7CiAgIHJldHVybiAlKHZfc3VtKXMgPiAwOwogfQpAQCAtNTEwLDcgKzUxMyw3
IEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvciUobilzIHsKIAogY2xhc3MgUHJlZGljYXRlJShu
KXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVjdGVkX3Rv
X2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOyIiIiAlIERFRlMKIApAQCAt
NTIwLDcgKzUyMyw3IEBAIGNsYXNzIFByZWRpY2F0ZSUobilzVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICIiIgogCiAgIHRlc3RzICs9ICIiIgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBl
YWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAgIC8vIGV4
YWN0bHkgb25jZS4iIiIKIApAQCAtNTQwLDEwICs1NDMsMTAgQEAgY2xhc3MgUHJlZGljYXRlJShu
KXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUg
aWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8v
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVu
IHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0
cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZmluaXNoZWRfOwogIiIiICUgREVGUwogCkBAIC01NzIsMTIgKzU3NSwxMiBAQCB0
eXBlZGVmIFByZWRpY2F0ZSUobilzVGVzdCBBU1NFUlRfUFJFRCUobilzVGVzdDsKICAgICAiIiJS
ZXR1cm5zIHRoZSB0ZXN0IGZvciBhIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm8uCiAKICAgICBB
cmdzOgotICAgICAgdXNlX2Zvcm1hdDogICAgIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYSAq
X1BSRURfRk9STUFUKi4KLSAgICAgIHVzZV9hc3NlcnQ6ICAgICB0cnVlIGlmZiB0aGUgYXNzZXJ0
aW9uIGlzIGEgQVNTRVJUXyouCi0gICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBpZmYgdGhlIGFz
c2VydGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgotICAgICAgdXNlX2Z1bmN0b3I6ICAgIHRydWUg
aWZmIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgYXNzZXJ0aW9uIGlzCisgICAgICB1c2VfZm9y
bWF0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGEgKl9QUkVEX0ZP
Uk1BVCouCisgICAgICB1c2VfYXNzZXJ0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNz
ZXJ0aW9uIGlzIGEgQVNTRVJUXyouCisgICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgICAgICB1c2VfZnVu
Y3RvcjogICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGFz
c2VydGlvbiBpcwogICAgICAgICAgICAgICAgICAgICAgIGEgZnVuY3RvciAoYXMgb3Bwb3NlZCB0
byBhIGZ1bmN0aW9uKQotICAgICAgdXNlX3VzZXJfdHlwZTogIHRydWUgaWZmIHRoZSBwcmVkaWNh
dGUgZnVuY3Rvci9mdW5jdGlvbiB0YWtlcworICAgICAgdXNlX3VzZXJfdHlwZTogIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSBmdW5jdG9yL2Z1bmN0aW9uIHRha2VzCiAgICAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnQocykgb2YgYSB1c2VyLWRlZmluZWQgdHlwZS4KIAogICAg
IEV4YW1wbGU6CkBAIC01ODgsNyArNTkxLDcgQEAgdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3Qg
QVNTRVJUX1BSRUQlKG4pc1Rlc3Q7CiAKICAgICBpZiB1c2VfYXNzZXJ0OgogICAgICAgYXNzcnQg
PSAnQVNTRVJUJyAgIyAnYXNzZXJ0JyBpcyByZXNlcnZlZCwgc28gd2UgY2Fubm90IHVzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGlkZW50aWZpZXIgaGVyZS4KKyAgICAgICMgdGhh
dCBpZGVudGlmaWVyIGhlcmUuCiAgICAgZWxzZToKICAgICAgIGFzc3J0ID0gJ0VYUEVDVCcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCA1ZWZiNjUzYzIwN2QxZjFjMmFlY2M0ZDY5MGJmNzMyZTNjMWQ3MWFiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1NSArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJwdW1wIHYw
LjIuMCAtIFByZXR0eSBVc2VmdWwgZm9yIE1ldGEgUHJvZ3JhbW1pbmcuCi0KLUEgdG9vbCBmb3Ig
cHJlcHJvY2Vzc29yIG1ldGEgcHJvZ3JhbW1pbmcuICBVc2VmdWwgZm9yIGdlbmVyYXRpbmcKLXJl
cGV0aXRpdmUgYm9pbGVycGxhdGUgY29kZS4gIEVzcGVjaWFsbHkgdXNlZnVsIGZvciB3cml0aW5n
IEMrKwotY2xhc3NlcywgZnVuY3Rpb25zLCBtYWNyb3MsIGFuZCB0ZW1wbGF0ZXMgdGhhdCBuZWVk
IHRvIHdvcmsgd2l0aAotdmFyaW91cyBudW1iZXIgb2YgYXJndW1lbnRzLgotCi1VU0FHRToKLSAg
ICAgICBwdW1wLnB5IFNPVVJDRV9GSUxFCi0KLUVYQU1QTEVTOgotICAgICAgIHB1bXAucHkgZm9v
LmNjLnB1bXAKLSAgICAgICAgIENvbnZlcnRzIGZvby5jYy5wdW1wIHRvIGZvby5jYy4KLQotR1JB
TU1BUjoKLSAgICAgICBDT0RFIDo6PSBBVE9NSUNfQ09ERSoKLSAgICAgICBBVE9NSUNfQ09ERSA6
Oj0gJHZhciBJRCA9IEVYUFJFU1NJT04KLSAgICAgICAgICAgfCAkdmFyIElEID0gW1sgQ09ERSBd
XQotICAgICAgICAgICB8ICRyYW5nZSBJRCBFWFBSRVNTSU9OLi5FWFBSRVNTSU9OCi0gICAgICAg
ICAgIHwgJGZvciBJRCBTRVBBUkFUT1IgW1sgQ09ERSBdXQotICAgICAgICAgICB8ICQoJCkKLSAg
ICAgICAgICAgfCAkSUQKLSAgICAgICAgICAgfCAkKEVYUFJFU1NJT04pCi0gICAgICAgICAgIHwg
JGlmIEVYUFJFU1NJT04gW1sgQ09ERSBdXSBFTFNFX0JSQU5DSAotICAgICAgICAgICB8IFtbIENP
REUgXV0KLSAgICAgICAgICAgfCBSQVdfQ09ERQotICAgICAgIFNFUEFSQVRPUiA6Oj0gUkFXX0NP
REUgfCBFTVBUWQotICAgICAgIEVMU0VfQlJBTkNIIDo6PSAkZWxzZSBbWyBDT0RFIF1dCi0gICAg
ICAgICAgIHwgJGVsaWYgRVhQUkVTU0lPTiBbWyBDT0RFIF1dIEVMU0VfQlJBTkNICi0gICAgICAg
ICAgIHwgRU1QVFkKLSAgICAgICBFWFBSRVNTSU9OIGhhcyBQeXRob24gc3ludGF4LgotIiIiCi0K
LV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbiknCi0KLWltcG9ydCBv
cwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLQotVE9LRU5fVEFCTEUgPSBbCi0gICAgKHJlLmNv
bXBpbGUocidcJHZhclxzKycpLCAnJHZhcicpLAotICAgIChyZS5jb21waWxlKHInXCRlbGlmXHMr
JyksICckZWxpZicpLAotICAgIChyZS5jb21waWxlKHInXCRlbHNlXHMrJyksICckZWxzZScpLAot
ICAgIChyZS5jb21waWxlKHInXCRmb3JccysnKSwgJyRmb3InKSwKLSAgICAocmUuY29tcGlsZShy
J1wkaWZccysnKSwgJyRpZicpLAotICAgIChyZS5jb21waWxlKHInXCRyYW5nZVxzKycpLCAnJHJh
bmdlJyksCi0gICAgKHJlLmNvbXBpbGUocidcJFtfQS1aYS16XVx3KicpLCAnJGlkJyksCi0gICAg
KHJlLmNvbXBpbGUocidcJFwoXCRcKScpLCAnJCgkKScpLAotICAgIChyZS5jb21waWxlKHInXCQn
KSwgJyQnKSwKLSAgICAocmUuY29tcGlsZShyJ1xbXFtcbj8nKSwgJ1tbJyksCi0gICAgKHJlLmNv
bXBpbGUocidcXVxdXG4/JyksICddXScpLAotICAgIF0KLQotCi1jbGFzcyBDdXJzb3I6Ci0gICIi
IlJlcHJlc2VudHMgYSBwb3NpdGlvbiAobGluZSBhbmQgY29sdW1uKSBpbiBhIHRleHQgZmlsZS4i
IiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgbGluZT0tMSwgY29sdW1uPS0xKToKLSAgICBzZWxm
LmxpbmUgPSBsaW5lCi0gICAgc2VsZi5jb2x1bW4gPSBjb2x1bW4KLQotICBkZWYgX19lcV9fKHNl
bGYsIHJocyk6Ci0gICAgcmV0dXJuIHNlbGYubGluZSA9PSByaHMubGluZSBhbmQgc2VsZi5jb2x1
bW4gPT0gcmhzLmNvbHVtbgotCi0gIGRlZiBfX25lX18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4g
bm90IHNlbGYgPT0gcmhzCi0KLSAgZGVmIF9fbHRfXyhzZWxmLCByaHMpOgotICAgIHJldHVybiBz
ZWxmLmxpbmUgPCByaHMubGluZSBvciAoCi0gICAgICAgIHNlbGYubGluZSA9PSByaHMubGluZSBh
bmQgc2VsZi5jb2x1bW4gPCByaHMuY29sdW1uKQotCi0gIGRlZiBfX2xlX18oc2VsZiwgcmhzKToK
LSAgICByZXR1cm4gc2VsZiA8IHJocyBvciBzZWxmID09IHJocwotCi0gIGRlZiBfX2d0X18oc2Vs
ZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDwgc2VsZgotCi0gIGRlZiBfX2dlX18oc2VsZiwgcmhz
KToKLSAgICByZXR1cm4gcmhzIDw9IHNlbGYKLQotICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICBp
ZiBzZWxmID09IEVvZigpOgotICAgICAgcmV0dXJuICdFT0YnCi0gICAgZWxzZToKLSAgICAgIHJl
dHVybiAnJXMoJXMpJyAlIChzZWxmLmxpbmUgKyAxLCBzZWxmLmNvbHVtbikKLQotICBkZWYgX19h
ZGRfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNv
bHVtbiArIG9mZnNldCkKLQotICBkZWYgX19zdWJfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVy
biBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbiAtIG9mZnNldCkKLQotICBkZWYgQ2xvbmUo
c2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJldHVybiBD
dXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbikKLQotCi0jIFNwZWNpYWwgY3Vyc29yIHRvIGlu
ZGljYXRlIHRoZSBlbmQtb2YtZmlsZS4KLWRlZiBFb2YoKToKLSAgIiIiUmV0dXJucyB0aGUgc3Bl
Y2lhbCBjdXJzb3IgdG8gZGVub3RlIHRoZSBlbmQtb2YtZmlsZS4iIiIKLSAgcmV0dXJuIEN1cnNv
cigtMSwgLTEpCi0KLQotY2xhc3MgVG9rZW46Ci0gICIiIlJlcHJlc2VudHMgYSB0b2tlbiBpbiBh
IFB1bXAgc291cmNlIGZpbGUuIiIiCi0KLSAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0PU5vbmUs
IGVuZD1Ob25lLCB2YWx1ZT1Ob25lLCB0b2tlbl90eXBlPU5vbmUpOgotICAgIGlmIHN0YXJ0IGlz
IE5vbmU6Ci0gICAgICBzZWxmLnN0YXJ0ID0gRW9mKCkKLSAgICBlbHNlOgotICAgICAgc2VsZi5z
dGFydCA9IHN0YXJ0Ci0gICAgaWYgZW5kIGlzIE5vbmU6Ci0gICAgICBzZWxmLmVuZCA9IEVvZigp
Ci0gICAgZWxzZToKLSAgICAgIHNlbGYuZW5kID0gZW5kCi0gICAgc2VsZi52YWx1ZSA9IHZhbHVl
Ci0gICAgc2VsZi50b2tlbl90eXBlID0gdG9rZW5fdHlwZQotCi0gIGRlZiBfX3N0cl9fKHNlbGYp
OgotICAgIHJldHVybiAnVG9rZW4gQCVzOiBcJyVzXCcgdHlwZT0lcycgJSAoCi0gICAgICAgIHNl
bGYuc3RhcnQsIHNlbGYudmFsdWUsIHNlbGYudG9rZW5fdHlwZSkKLQotICBkZWYgQ2xvbmUoc2Vs
Zik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJldHVybiBUb2tl
bihzZWxmLnN0YXJ0LkNsb25lKCksIHNlbGYuZW5kLkNsb25lKCksIHNlbGYudmFsdWUsCi0gICAg
ICAgICAgICAgICAgIHNlbGYudG9rZW5fdHlwZSkKLQotCi1kZWYgU3RhcnRzV2l0aChsaW5lcywg
cG9zLCBzdHJpbmcpOgotICAiIiJSZXR1cm5zIFRydWUgaWZmIHRoZSBnaXZlbiBwb3NpdGlvbiBp
biBsaW5lcyBzdGFydHMgd2l0aCAnc3RyaW5nJy4iIiIKLQotICByZXR1cm4gbGluZXNbcG9zLmxp
bmVdW3Bvcy5jb2x1bW46XS5zdGFydHN3aXRoKHN0cmluZykKLQotCi1kZWYgRmluZEZpcnN0SW5M
aW5lKGxpbmUsIHRva2VuX3RhYmxlKToKLSAgYmVzdF9tYXRjaF9zdGFydCA9IC0xCi0gIGZvciAo
cmVnZXgsIHRva2VuX3R5cGUpIGluIHRva2VuX3RhYmxlOgotICAgIG0gPSByZWdleC5zZWFyY2go
bGluZSkKLSAgICBpZiBtOgotICAgICAgIyBXZSBmb3VuZCByZWdleCBpbiBsaW5lcwotICAgICAg
aWYgYmVzdF9tYXRjaF9zdGFydCA8IDAgb3IgbS5zdGFydCgpIDwgYmVzdF9tYXRjaF9zdGFydDoK
LSAgICAgICAgYmVzdF9tYXRjaF9zdGFydCA9IG0uc3RhcnQoKQotICAgICAgICBiZXN0X21hdGNo
X2xlbmd0aCA9IG0uZW5kKCkgLSBtLnN0YXJ0KCkKLSAgICAgICAgYmVzdF9tYXRjaF90b2tlbl90
eXBlID0gdG9rZW5fdHlwZQotCi0gIGlmIGJlc3RfbWF0Y2hfc3RhcnQgPCAwOgotICAgIHJldHVy
biBOb25lCi0KLSAgcmV0dXJuIChiZXN0X21hdGNoX3N0YXJ0LCBiZXN0X21hdGNoX2xlbmd0aCwg
YmVzdF9tYXRjaF90b2tlbl90eXBlKQotCi0KLWRlZiBGaW5kRmlyc3QobGluZXMsIHRva2VuX3Rh
YmxlLCBjdXJzb3IpOgotICAiIiJGaW5kcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBhbnkgc3Ry
aW5nIGluIHN0cmluZ3MgaW4gbGluZXMuIiIiCi0KLSAgc3RhcnQgPSBjdXJzb3IuQ2xvbmUoKQot
ICBjdXJfbGluZV9udW1iZXIgPSBjdXJzb3IubGluZQotICBmb3IgbGluZSBpbiBsaW5lc1tzdGFy
dC5saW5lOl06Ci0gICAgaWYgY3VyX2xpbmVfbnVtYmVyID09IHN0YXJ0LmxpbmU6Ci0gICAgICBs
aW5lID0gbGluZVtzdGFydC5jb2x1bW46XQotICAgIG0gPSBGaW5kRmlyc3RJbkxpbmUobGluZSwg
dG9rZW5fdGFibGUpCi0gICAgaWYgbToKLSAgICAgICMgV2UgZm91bmQgYSByZWdleCBpbiBsaW5l
LgotICAgICAgKHN0YXJ0X2NvbHVtbiwgbGVuZ3RoLCB0b2tlbl90eXBlKSA9IG0KLSAgICAgIGlm
IGN1cl9saW5lX251bWJlciA9PSBzdGFydC5saW5lOgotICAgICAgICBzdGFydF9jb2x1bW4gKz0g
c3RhcnQuY29sdW1uCi0gICAgICBmb3VuZF9zdGFydCA9IEN1cnNvcihjdXJfbGluZV9udW1iZXIs
IHN0YXJ0X2NvbHVtbikKLSAgICAgIGZvdW5kX2VuZCA9IGZvdW5kX3N0YXJ0ICsgbGVuZ3RoCi0g
ICAgICByZXR1cm4gTWFrZVRva2VuKGxpbmVzLCBmb3VuZF9zdGFydCwgZm91bmRfZW5kLCB0b2tl
bl90eXBlKQotICAgIGN1cl9saW5lX251bWJlciArPSAxCi0gICMgV2UgZmFpbGVkIHRvIGZpbmQg
c3RyIGluIGxpbmVzCi0gIHJldHVybiBOb25lCi0KLQotZGVmIFN1YlN0cmluZyhsaW5lcywgc3Rh
cnQsIGVuZCk6Ci0gICIiIlJldHVybnMgYSBzdWJzdHJpbmcgaW4gbGluZXMuIiIiCi0KLSAgaWYg
ZW5kID09IEVvZigpOgotICAgIGVuZCA9IEN1cnNvcihsZW4obGluZXMpIC0gMSwgbGVuKGxpbmVz
Wy0xXSkpCi0KLSAgaWYgc3RhcnQgPj0gZW5kOgotICAgIHJldHVybiAnJwotCi0gIGlmIHN0YXJ0
LmxpbmUgPT0gZW5kLmxpbmU6Ci0gICAgcmV0dXJuIGxpbmVzW3N0YXJ0LmxpbmVdW3N0YXJ0LmNv
bHVtbjplbmQuY29sdW1uXQotCi0gIHJlc3VsdF9saW5lcyA9IChbbGluZXNbc3RhcnQubGluZV1b
c3RhcnQuY29sdW1uOl1dICsKLSAgICAgICAgICAgICAgICAgIGxpbmVzW3N0YXJ0LmxpbmUgKyAx
OmVuZC5saW5lXSArCi0gICAgICAgICAgICAgICAgICBbbGluZXNbZW5kLmxpbmVdWzplbmQuY29s
dW1uXV0pCi0gIHJldHVybiAnJy5qb2luKHJlc3VsdF9saW5lcykKLQotCi1kZWYgU3RyaXBNZXRh
Q29tbWVudHMoc3RyKToKLSAgIiIiU3RyaXAgbWV0YSBjb21tZW50cyBmcm9tIGVhY2ggbGluZSBp
biB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotCi0gICMgRmlyc3QsIGNvbXBsZXRlbHkgcmVtb3ZlIGxp
bmVzIGNvbnRhaW5pbmcgbm90aGluZyBidXQgYSBtZXRhCi0gICMgY29tbWVudCwgaW5jbHVkaW5n
IHRoZSB0cmFpbGluZyBcbi4KLSAgc3RyID0gcmUuc3ViKHInXlxzKlwkXCQuKlxuJywgJycsIHN0
cikKLQotICAjIFRoZW4sIHJlbW92ZSBtZXRhIGNvbW1lbnRzIGZyb20gY29udGVudGZ1bCBsaW5l
cy4KLSAgcmV0dXJuIHJlLnN1YihyJ1xzKlwkXCQuKicsICcnLCBzdHIpCi0KLQotZGVmIE1ha2VU
b2tlbihsaW5lcywgc3RhcnQsIGVuZCwgdG9rZW5fdHlwZSk6Ci0gICIiIkNyZWF0ZXMgYSBuZXcg
aW5zdGFuY2Ugb2YgVG9rZW4uIiIiCi0KLSAgcmV0dXJuIFRva2VuKHN0YXJ0LCBlbmQsIFN1YlN0
cmluZyhsaW5lcywgc3RhcnQsIGVuZCksIHRva2VuX3R5cGUpCi0KLQotZGVmIFBhcnNlVG9rZW4o
bGluZXMsIHBvcywgcmVnZXgsIHRva2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVd
W3Bvcy5jb2x1bW46XQotICBtID0gcmVnZXguc2VhcmNoKGxpbmUpCi0gIGlmIG0gYW5kIG5vdCBt
LnN0YXJ0KCk6Ci0gICAgcmV0dXJuIE1ha2VUb2tlbihsaW5lcywgcG9zLCBwb3MgKyBtLmVuZCgp
LCB0b2tlbl90eXBlKQotICBlbHNlOgotICAgIHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQg
JXMuJyAlICh0b2tlbl90eXBlLCBwb3MpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1JRF9SRUdFWCA9
IHJlLmNvbXBpbGUocidbX0EtWmEtel1cdyonKQotRVFfUkVHRVggPSByZS5jb21waWxlKHInPScp
Ci1SRVNUX09GX0xJTkVfUkVHRVggPSByZS5jb21waWxlKHInLio/KD89JHxcJFwkKScpCi1PUFRJ
T05BTF9XSElURV9TUEFDRVNfUkVHRVggPSByZS5jb21waWxlKHInXHMqJykKLVdISVRFX1NQQUNF
X1JFR0VYID0gcmUuY29tcGlsZShyJ1xzJykKLURPVF9ET1RfUkVHRVggPSByZS5jb21waWxlKHIn
XC5cLicpCi0KLQotZGVmIFNraXAobGluZXMsIHBvcywgcmVnZXgpOgotICBsaW5lID0gbGluZXNb
cG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBp
ZiBtIGFuZCBub3QgbS5zdGFydCgpOgotICAgIHJldHVybiBwb3MgKyBtLmVuZCgpCi0gIGVsc2U6
Ci0gICAgcmV0dXJuIHBvcwotCi0KLWRlZiBTa2lwVW50aWwobGluZXMsIHBvcywgcmVnZXgsIHRv
a2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0g
cmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBpZiBtOgotICAgIHJldHVybiBwb3MgKyBtLnN0YXJ0
KCkKLSAgZWxzZToKLSAgICBwcmludCAoJ0VSUk9SOiAlcyBleHBlY3RlZCBvbiBsaW5lICVzIGFm
dGVyIGNvbHVtbiAlcy4nICUKLSAgICAgICAgICAgKHRva2VuX3R5cGUsIHBvcy5saW5lICsgMSwg
cG9zLmNvbHVtbikpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1kZWYgUGFyc2VFeHBUb2tlbkluUGFy
ZW5zKGxpbmVzLCBwb3MpOgotICBkZWYgUGFyc2VJblBhcmVucyhwb3MpOgotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgT1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYKQotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgcidcKCcpCi0gICAgcG9zID0gUGFyc2UocG9zKQotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgcidcKScpCi0gICAgcmV0dXJuIHBvcwotCi0gIGRlZiBQYXJzZShwb3Mp
OgotICAgIHBvcyA9IFNraXBVbnRpbChsaW5lcywgcG9zLCByJ1wofFwpJywgJyknKQotICAgIGlm
IFN1YlN0cmluZyhsaW5lcywgcG9zLCBwb3MgKyAxKSA9PSAnKCc6Ci0gICAgICBwb3MgPSBQYXJz
ZShwb3MgKyAxKQotICAgICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCByJ1wpJykKLSAgICAgIHJl
dHVybiBQYXJzZShwb3MpCi0gICAgZWxzZToKLSAgICAgIHJldHVybiBwb3MKLQotICBzdGFydCA9
IHBvcy5DbG9uZSgpCi0gIHBvcyA9IFBhcnNlSW5QYXJlbnMocG9zKQotICByZXR1cm4gTWFrZVRv
a2VuKGxpbmVzLCBzdGFydCwgcG9zLCAnZXhwJykKLQotCi1kZWYgUlN0cmlwTmV3TGluZUZyb21U
b2tlbih0b2tlbik6Ci0gIGlmIHRva2VuLnZhbHVlLmVuZHN3aXRoKCdcbicpOgotICAgIHJldHVy
biBUb2tlbih0b2tlbi5zdGFydCwgdG9rZW4uZW5kLCB0b2tlbi52YWx1ZVs6LTFdLCB0b2tlbi50
b2tlbl90eXBlKQotICBlbHNlOgotICAgIHJldHVybiB0b2tlbgotCi0KLWRlZiBUb2tlbml6ZUxp
bmVzKGxpbmVzLCBwb3MpOgotICB3aGlsZSBUcnVlOgotICAgIGZvdW5kID0gRmluZEZpcnN0KGxp
bmVzLCBUT0tFTl9UQUJMRSwgcG9zKQotICAgIGlmIG5vdCBmb3VuZDoKLSAgICAgIHlpZWxkIE1h
a2VUb2tlbihsaW5lcywgcG9zLCBFb2YoKSwgJ2NvZGUnKQotICAgICAgcmV0dXJuCi0KLSAgICBp
ZiBmb3VuZC5zdGFydCA9PSBwb3M6Ci0gICAgICBwcmV2X3Rva2VuID0gTm9uZQotICAgICAgcHJl
dl90b2tlbl9yc3RyaXBwZWQgPSBOb25lCi0gICAgZWxzZToKLSAgICAgIHByZXZfdG9rZW4gPSBN
YWtlVG9rZW4obGluZXMsIHBvcywgZm91bmQuc3RhcnQsICdjb2RlJykKLSAgICAgIHByZXZfdG9r
ZW5fcnN0cmlwcGVkID0gUlN0cmlwTmV3TGluZUZyb21Ub2tlbihwcmV2X3Rva2VuKQotCi0gICAg
aWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHZhcic6Ci0gICAgICBpZiBwcmV2X3Rva2VuX3JzdHJp
cHBlZDoKLSAgICAgICAgeWllbGQgcHJldl90b2tlbl9yc3RyaXBwZWQKLSAgICAgIHlpZWxkIGZv
dW5kCi0gICAgICBpZF90b2tlbiA9IFBhcnNlVG9rZW4obGluZXMsIGZvdW5kLmVuZCwgSURfUkVH
RVgsICdpZCcpCi0gICAgICB5aWVsZCBpZF90b2tlbgotICAgICAgcG9zID0gU2tpcChsaW5lcywg
aWRfdG9rZW4uZW5kLCBPUFRJT05BTF9XSElURV9TUEFDRVNfUkVHRVgpCi0KLSAgICAgIGVxX3Rv
a2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBFUV9SRUdFWCwgJz0nKQotICAgICAgeWllbGQg
ZXFfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGluZXMsIGVxX3Rva2VuLmVuZCwgcidccyonKQot
Ci0gICAgICBpZiBTdWJTdHJpbmcobGluZXMsIHBvcywgcG9zICsgMikgIT0gJ1tbJzoKLSAgICAg
ICAgZXhwX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBSRVNUX09GX0xJTkVfUkVHRVgs
ICdleHAnKQotICAgICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAgICAgcG9zID0gQ3Vyc29yKGV4
cF90b2tlbi5lbmQubGluZSArIDEsIDApCi0gICAgZWxpZiBmb3VuZC50b2tlbl90eXBlID09ICck
Zm9yJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2
X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2VuID0gUGFy
c2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlpZWxkIGlk
X3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIFdISVRFX1NQQUNF
X1JFR0VYKQotICAgIGVsaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHJhbmdlJzoKLSAgICAgIGlm
IHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuX3JzdHJpcHBl
ZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywg
Zm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlpZWxkIGlkX3Rva2VuCi0gICAgICBw
b3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIE9QVElPTkFMX1dISVRFX1NQQUNFU19SRUdF
WCkKLQotICAgICAgZG90c19wb3MgPSBTa2lwVW50aWwobGluZXMsIHBvcywgRE9UX0RPVF9SRUdF
WCwgJy4uJykKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBkb3RzX3BvcywgJ2V4
cCcpCi0gICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMsIGRvdHNfcG9zLCBkb3RzX3BvcyArIDIs
ICcuLicpCi0gICAgICBwb3MgPSBkb3RzX3BvcyArIDIKLSAgICAgIG5ld19wb3MgPSBDdXJzb3Io
cG9zLmxpbmUgKyAxLCAwKQotICAgICAgeWllbGQgTWFrZVRva2VuKGxpbmVzLCBwb3MsIG5ld19w
b3MsICdleHAnKQotICAgICAgcG9zID0gbmV3X3BvcwotICAgIGVsaWYgZm91bmQudG9rZW5fdHlw
ZSA9PSAnJCc6Ci0gICAgICBpZiBwcmV2X3Rva2VuOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2Vu
Ci0gICAgICB5aWVsZCBmb3VuZAotICAgICAgZXhwX3Rva2VuID0gUGFyc2VFeHBUb2tlbkluUGFy
ZW5zKGxpbmVzLCBmb3VuZC5lbmQpCi0gICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAgIHBvcyA9
IGV4cF90b2tlbi5lbmQKLSAgICBlbGlmIChmb3VuZC50b2tlbl90eXBlID09ICddXScgb3IgZm91
bmQudG9rZW5fdHlwZSA9PSAnJGlmJyBvcgotICAgICAgICAgIGZvdW5kLnRva2VuX3R5cGUgPT0g
JyRlbGlmJyBvciBmb3VuZC50b2tlbl90eXBlID09ICckZWxzZScpOgotICAgICAgaWYgcHJldl90
b2tlbl9yc3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVkCi0gICAg
ICB5aWVsZCBmb3VuZAotICAgICAgcG9zID0gZm91bmQuZW5kCi0gICAgZWxzZToKLSAgICAgIGlm
IHByZXZfdG9rZW46Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW4KLSAgICAgIHlpZWxkIGZvdW5k
Ci0gICAgICBwb3MgPSBmb3VuZC5lbmQKLQotCi1kZWYgVG9rZW5pemUocyk6Ci0gICIiIkEgZ2Vu
ZXJhdG9yIHRoYXQgeWllbGRzIHRoZSB0b2tlbnMgaW4gdGhlIGdpdmVuIHN0cmluZy4iIiIKLSAg
aWYgcyAhPSAnJzoKLSAgICBsaW5lcyA9IHMuc3BsaXRsaW5lcyhUcnVlKQotICAgIGZvciB0b2tl
biBpbiBUb2tlbml6ZUxpbmVzKGxpbmVzLCBDdXJzb3IoMCwgMCkpOgotICAgICAgeWllbGQgdG9r
ZW4KLQotCi1jbGFzcyBDb2RlTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGF0b21pY19jb2Rl
X2xpc3Q9Tm9uZSk6Ci0gICAgc2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlX2xpc3QKLQot
Ci1jbGFzcyBWYXJOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25lLCBh
dG9taWNfY29kZT1Ob25lKToKLSAgICBzZWxmLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyCi0gICAg
c2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlCi0KLQotY2xhc3MgUmFuZ2VOb2RlOgotICBk
ZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25lLCBleHAxPU5vbmUsIGV4cDI9Tm9uZSk6
Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuZXhwMSA9IGV4cDEK
LSAgICBzZWxmLmV4cDIgPSBleHAyCi0KLQotY2xhc3MgRm9yTm9kZToKLSAgZGVmIF9faW5pdF9f
KHNlbGYsIGlkZW50aWZpZXI9Tm9uZSwgc2VwPU5vbmUsIGNvZGU9Tm9uZSk6Ci0gICAgc2VsZi5p
ZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuc2VwID0gc2VwCi0gICAgc2VsZi5jb2Rl
ID0gY29kZQotCi0KLWNsYXNzIEVsc2VOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgZWxzZV9i
cmFuY2g9Tm9uZSk6Ci0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNoCi0KLQotY2xh
c3MgSWZOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgZXhwPU5vbmUsIHRoZW5fYnJhbmNoPU5v
bmUsIGVsc2VfYnJhbmNoPU5vbmUpOgotICAgIHNlbGYuZXhwID0gZXhwCi0gICAgc2VsZi50aGVu
X2JyYW5jaCA9IHRoZW5fYnJhbmNoCi0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNo
Ci0KLQotY2xhc3MgUmF3Q29kZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0b2tlbj1Ob25l
KToKLSAgICBzZWxmLnJhd19jb2RlID0gdG9rZW4KLQotCi1jbGFzcyBMaXRlcmFsRG9sbGFyTm9k
ZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuKToKLSAgICBzZWxmLnRva2VuID0gdG9rZW4K
LQotCi1jbGFzcyBFeHBOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgdG9rZW4sIHB5dGhvbl9l
eHApOgotICAgIHNlbGYudG9rZW4gPSB0b2tlbgotICAgIHNlbGYucHl0aG9uX2V4cCA9IHB5dGhv
bl9leHAKLQotCi1kZWYgUG9wRnJvbnQoYV9saXN0KToKLSAgaGVhZCA9IGFfbGlzdFswXQotICBh
X2xpc3RbOjFdID0gW10KLSAgcmV0dXJuIGhlYWQKLQotCi1kZWYgUHVzaEZyb250KGFfbGlzdCwg
ZWxlbSk6Ci0gIGFfbGlzdFs6MF0gPSBbZWxlbV0KLQotCi1kZWYgUG9wVG9rZW4oYV9saXN0LCB0
b2tlbl90eXBlPU5vbmUpOgotICB0b2tlbiA9IFBvcEZyb250KGFfbGlzdCkKLSAgaWYgdG9rZW5f
dHlwZSBpcyBub3QgTm9uZSBhbmQgdG9rZW4udG9rZW5fdHlwZSAhPSB0b2tlbl90eXBlOgotICAg
IHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQgJXMnICUgKHRva2VuX3R5cGUsIHRva2VuLnN0
YXJ0KQotICAgIHByaW50ICdFUlJPUjogJXMgZm91bmQgaW5zdGVhZCcgJSAodG9rZW4sKQotICAg
IHN5cy5leGl0KDEpCi0KLSAgcmV0dXJuIHRva2VuCi0KLQotZGVmIFBlZWtUb2tlbihhX2xpc3Qp
OgotICBpZiBub3QgYV9saXN0OgotICAgIHJldHVybiBOb25lCi0KLSAgcmV0dXJuIGFfbGlzdFsw
XQotCi0KLWRlZiBQYXJzZUV4cE5vZGUodG9rZW4pOgotICBweXRob25fZXhwID0gcmUuc3ViKHIn
KFtfQS1aYS16XVx3KiknLCByJ3NlbGYuR2V0VmFsdWUoIlwxIiknLCB0b2tlbi52YWx1ZSkKLSAg
cmV0dXJuIEV4cE5vZGUodG9rZW4sIHB5dGhvbl9leHApCi0KLQotZGVmIFBhcnNlRWxzZU5vZGUo
dG9rZW5zKToKLSAgZGVmIFBvcCh0b2tlbl90eXBlPU5vbmUpOgotICAgIHJldHVybiBQb3BUb2tl
bih0b2tlbnMsIHRva2VuX3R5cGUpCi0KLSAgbmV4dCA9IFBlZWtUb2tlbih0b2tlbnMpCi0gIGlm
IG5vdCBuZXh0OgotICAgIHJldHVybiBOb25lCi0gIGlmIG5leHQudG9rZW5fdHlwZSA9PSAnJGVs
c2UnOgotICAgIFBvcCgnJGVsc2UnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBh
cnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBjb2RlX25vZGUK
LSAgZWxpZiBuZXh0LnRva2VuX3R5cGUgPT0gJyRlbGlmJzoKLSAgICBQb3AoJyRlbGlmJykKLSAg
ICBleHAgPSBQb3AoJ2NvZGUnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNl
Q29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIGlubmVyX2Vsc2Vfbm9kZSA9IFBh
cnNlRWxzZU5vZGUodG9rZW5zKQotICAgIHJldHVybiBDb2RlTm9kZShbSWZOb2RlKFBhcnNlRXhw
Tm9kZShleHApLCBjb2RlX25vZGUsIGlubmVyX2Vsc2Vfbm9kZSldKQotICBlbGlmIG5vdCBuZXh0
LnZhbHVlLnN0cmlwKCk6Ci0gICAgUG9wKCdjb2RlJykKLSAgICByZXR1cm4gUGFyc2VFbHNlTm9k
ZSh0b2tlbnMpCi0gIGVsc2U6Ci0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VBdG9taWND
b2RlTm9kZSh0b2tlbnMpOgotICBkZWYgUG9wKHRva2VuX3R5cGU9Tm9uZSk6Ci0gICAgcmV0dXJu
IFBvcFRva2VuKHRva2VucywgdG9rZW5fdHlwZSkKLQotICBoZWFkID0gUG9wRnJvbnQodG9rZW5z
KQotICB0ID0gaGVhZC50b2tlbl90eXBlCi0gIGlmIHQgPT0gJ2NvZGUnOgotICAgIHJldHVybiBS
YXdDb2RlTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyR2YXInOgotICAgIGlkX3Rva2VuID0gUG9w
KCdpZCcpCi0gICAgUG9wKCc9JykKLSAgICBuZXh0ID0gUGVla1Rva2VuKHRva2VucykKLSAgICBp
ZiBuZXh0LnRva2VuX3R5cGUgPT0gJ2V4cCc6Ci0gICAgICBleHBfdG9rZW4gPSBQb3AoKQotICAg
ICAgcmV0dXJuIFZhck5vZGUoaWRfdG9rZW4sIFBhcnNlRXhwTm9kZShleHBfdG9rZW4pKQotICAg
IFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBv
cCgnXV0nKQotICAgIHJldHVybiBWYXJOb2RlKGlkX3Rva2VuLCBjb2RlX25vZGUpCi0gIGVsaWYg
dCA9PSAnJGZvcic6Ci0gICAgaWRfdG9rZW4gPSBQb3AoJ2lkJykKLSAgICBuZXh0X3Rva2VuID0g
UGVla1Rva2VuKHRva2VucykKLSAgICBpZiBuZXh0X3Rva2VuLnRva2VuX3R5cGUgPT0gJ2NvZGUn
OgotICAgICAgc2VwX3Rva2VuID0gbmV4dF90b2tlbgotICAgICAgUG9wKCdjb2RlJykKLSAgICBl
bHNlOgotICAgICAgc2VwX3Rva2VuID0gTm9uZQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9k
ZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBGb3JO
b2RlKGlkX3Rva2VuLCBzZXBfdG9rZW4sIGNvZGVfbm9kZSkKLSAgZWxpZiB0ID09ICckaWYnOgot
ICAgIGV4cF90b2tlbiA9IFBvcCgnY29kZScpCi0gICAgUG9wKCdbWycpCi0gICAgY29kZV9ub2Rl
ID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgZWxzZV9ub2RlID0g
UGFyc2VFbHNlTm9kZSh0b2tlbnMpCi0gICAgcmV0dXJuIElmTm9kZShQYXJzZUV4cE5vZGUoZXhw
X3Rva2VuKSwgY29kZV9ub2RlLCBlbHNlX25vZGUpCi0gIGVsaWYgdCA9PSAnJHJhbmdlJzoKLSAg
ICBpZF90b2tlbiA9IFBvcCgnaWQnKQotICAgIGV4cDFfdG9rZW4gPSBQb3AoJ2V4cCcpCi0gICAg
UG9wKCcuLicpCi0gICAgZXhwMl90b2tlbiA9IFBvcCgnZXhwJykKLSAgICByZXR1cm4gUmFuZ2VO
b2RlKGlkX3Rva2VuLCBQYXJzZUV4cE5vZGUoZXhwMV90b2tlbiksCi0gICAgICAgICAgICAgICAg
ICAgICBQYXJzZUV4cE5vZGUoZXhwMl90b2tlbikpCi0gIGVsaWYgdCA9PSAnJGlkJzoKLSAgICBy
ZXR1cm4gUGFyc2VFeHBOb2RlKFRva2VuKGhlYWQuc3RhcnQgKyAxLCBoZWFkLmVuZCwgaGVhZC52
YWx1ZVsxOl0sICdpZCcpKQotICBlbGlmIHQgPT0gJyQoJCknOgotICAgIHJldHVybiBMaXRlcmFs
RG9sbGFyTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyQnOgotICAgIGV4cF90b2tlbiA9IFBvcCgn
ZXhwJykKLSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKGV4cF90b2tlbikKLSAgZWxpZiB0ID09ICdb
Wyc6Ci0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScp
Ci0gICAgcmV0dXJuIGNvZGVfbm9kZQotICBlbHNlOgotICAgIFB1c2hGcm9udCh0b2tlbnMsIGhl
YWQpCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VDb2RlTm9kZSh0b2tlbnMpOgotICBh
dG9taWNfY29kZV9saXN0ID0gW10KLSAgd2hpbGUgVHJ1ZToKLSAgICBpZiBub3QgdG9rZW5zOgot
ICAgICAgYnJlYWsKLSAgICBhdG9taWNfY29kZV9ub2RlID0gUGFyc2VBdG9taWNDb2RlTm9kZSh0
b2tlbnMpCi0gICAgaWYgYXRvbWljX2NvZGVfbm9kZToKLSAgICAgIGF0b21pY19jb2RlX2xpc3Qu
YXBwZW5kKGF0b21pY19jb2RlX25vZGUpCi0gICAgZWxzZToKLSAgICAgIGJyZWFrCi0gIHJldHVy
biBDb2RlTm9kZShhdG9taWNfY29kZV9saXN0KQotCi0KLWRlZiBQYXJzZVRvQVNUKHB1bXBfc3Jj
X3RleHQpOgotICAiIiJDb252ZXJ0IHRoZSBnaXZlbiBQdW1wIHNvdXJjZSB0ZXh0IGludG8gYW4g
QVNULiIiIgotICB0b2tlbnMgPSBsaXN0KFRva2VuaXplKHB1bXBfc3JjX3RleHQpKQotICBjb2Rl
X25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgcmV0dXJuIGNvZGVfbm9kZQotCi0KLWNs
YXNzIEVudjoKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYudmFyaWFibGVzID0gW10K
LSAgICBzZWxmLnJhbmdlcyA9IFtdCi0KLSAgZGVmIENsb25lKHNlbGYpOgotICAgIGNsb25lID0g
RW52KCkKLSAgICBjbG9uZS52YXJpYWJsZXMgPSBzZWxmLnZhcmlhYmxlc1s6XQotICAgIGNsb25l
LnJhbmdlcyA9IHNlbGYucmFuZ2VzWzpdCi0gICAgcmV0dXJuIGNsb25lCi0KLSAgZGVmIFB1c2hW
YXJpYWJsZShzZWxmLCB2YXIsIHZhbHVlKToKLSAgICAjIElmIHZhbHVlIGxvb2tzIGxpa2UgYW4g
aW50LCBzdG9yZSBpdCBhcyBhbiBpbnQuCi0gICAgdHJ5OgotICAgICAgaW50X3ZhbHVlID0gaW50
KHZhbHVlKQotICAgICAgaWYgKCclcycgJSBpbnRfdmFsdWUpID09IHZhbHVlOgotICAgICAgICB2
YWx1ZSA9IGludF92YWx1ZQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICBwYXNzCi0gICAg
c2VsZi52YXJpYWJsZXNbOjBdID0gWyh2YXIsIHZhbHVlKV0KLQotICBkZWYgUG9wVmFyaWFibGUo
c2VsZik6Ci0gICAgc2VsZi52YXJpYWJsZXNbOjFdID0gW10KLQotICBkZWYgUHVzaFJhbmdlKHNl
bGYsIHZhciwgbG93ZXIsIHVwcGVyKToKLSAgICBzZWxmLnJhbmdlc1s6MF0gPSBbKHZhciwgbG93
ZXIsIHVwcGVyKV0KLQotICBkZWYgUG9wUmFuZ2Uoc2VsZik6Ci0gICAgc2VsZi5yYW5nZXNbOjFd
ID0gW10KLQotICBkZWYgR2V0VmFsdWUoc2VsZiwgaWRlbnRpZmllcik6Ci0gICAgZm9yICh2YXIs
IHZhbHVlKSBpbiBzZWxmLnZhcmlhYmxlczoKLSAgICAgIGlmIGlkZW50aWZpZXIgPT0gdmFyOgot
ICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIHByaW50ICdFUlJPUjogbWV0YSB2YXJpYWJsZSAl
cyBpcyB1bmRlZmluZWQuJyAlIChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQotCi0gIGRl
ZiBFdmFsRXhwKHNlbGYsIGV4cCk6Ci0gICAgdHJ5OgotICAgICAgcmVzdWx0ID0gZXZhbChleHAu
cHl0aG9uX2V4cCkKLSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgcHJpbnQgJ0VSUk9S
OiBjYXVnaHQgZXhjZXB0aW9uICVzOiAlcycgJSAoZS5fX2NsYXNzX18uX19uYW1lX18sIGUpCi0g
ICAgICBwcmludCAoJ0VSUk9SOiBmYWlsZWQgdG8gZXZhbHVhdGUgbWV0YSBleHByZXNzaW9uICVz
IGF0ICVzJyAlCi0gICAgICAgICAgICAgKGV4cC5weXRob25fZXhwLCBleHAudG9rZW4uc3RhcnQp
KQotICAgICAgc3lzLmV4aXQoMSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLSAgZGVmIEdldFJhbmdl
KHNlbGYsIGlkZW50aWZpZXIpOgotICAgIGZvciAodmFyLCBsb3dlciwgdXBwZXIpIGluIHNlbGYu
cmFuZ2VzOgotICAgICAgaWYgaWRlbnRpZmllciA9PSB2YXI6Ci0gICAgICAgIHJldHVybiAobG93
ZXIsIHVwcGVyKQotCi0gICAgcHJpbnQgJ0VSUk9SOiByYW5nZSAlcyBpcyB1bmRlZmluZWQuJyAl
IChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQotCi0KLWNsYXNzIE91dHB1dDoKLSAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuc3RyaW5nID0gJycKLQotICBkZWYgR2V0TGFzdExp
bmUoc2VsZik6Ci0gICAgaW5kZXggPSBzZWxmLnN0cmluZy5yZmluZCgnXG4nKQotICAgIGlmIGlu
ZGV4IDwgMDoKLSAgICAgIHJldHVybiAnJwotCi0gICAgcmV0dXJuIHNlbGYuc3RyaW5nW2luZGV4
ICsgMTpdCi0KLSAgZGVmIEFwcGVuZChzZWxmLCBzKToKLSAgICBzZWxmLnN0cmluZyArPSBzCi0K
LQotZGVmIFJ1bkF0b21pY0NvZGUoZW52LCBub2RlLCBvdXRwdXQpOgotICBpZiBpc2luc3RhbmNl
KG5vZGUsIFZhck5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUu
c3RyaXAoKQotICAgIHJlc3VsdCA9IE91dHB1dCgpCi0gICAgUnVuQXRvbWljQ29kZShlbnYuQ2xv
bmUoKSwgbm9kZS5hdG9taWNfY29kZSwgcmVzdWx0KQotICAgIHZhbHVlID0gcmVzdWx0LnN0cmlu
ZwotICAgIGVudi5QdXNoVmFyaWFibGUoaWRlbnRpZmllciwgdmFsdWUpCi0gIGVsaWYgaXNpbnN0
YW5jZShub2RlLCBSYW5nZU5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIu
dmFsdWUuc3RyaXAoKQotICAgIGxvd2VyID0gaW50KGVudi5FdmFsRXhwKG5vZGUuZXhwMSkpCi0g
ICAgdXBwZXIgPSBpbnQoZW52LkV2YWxFeHAobm9kZS5leHAyKSkKLSAgICBlbnYuUHVzaFJhbmdl
KGlkZW50aWZpZXIsIGxvd2VyLCB1cHBlcikKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUsIEZvck5v
ZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUuc3RyaXAoKQotICAg
IGlmIG5vZGUuc2VwIGlzIE5vbmU6Ci0gICAgICBzZXAgPSAnJwotICAgIGVsc2U6Ci0gICAgICBz
ZXAgPSBub2RlLnNlcC52YWx1ZQotICAgIChsb3dlciwgdXBwZXIpID0gZW52LkdldFJhbmdlKGlk
ZW50aWZpZXIpCi0gICAgZm9yIGkgaW4gcmFuZ2UobG93ZXIsIHVwcGVyICsgMSk6Ci0gICAgICBu
ZXdfZW52ID0gZW52LkNsb25lKCkKLSAgICAgIG5ld19lbnYuUHVzaFZhcmlhYmxlKGlkZW50aWZp
ZXIsIGkpCi0gICAgICBSdW5Db2RlKG5ld19lbnYsIG5vZGUuY29kZSwgb3V0cHV0KQotICAgICAg
aWYgaSAhPSB1cHBlcjoKLSAgICAgICAgb3V0cHV0LkFwcGVuZChzZXApCi0gIGVsaWYgaXNpbnN0
YW5jZShub2RlLCBSYXdDb2RlTm9kZSk6Ci0gICAgb3V0cHV0LkFwcGVuZChub2RlLnJhd19jb2Rl
LnZhbHVlKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgSWZOb2RlKToKLSAgICBjb25kID0gZW52
LkV2YWxFeHAobm9kZS5leHApCi0gICAgaWYgY29uZDoKLSAgICAgIFJ1bkNvZGUoZW52LkNsb25l
KCksIG5vZGUudGhlbl9icmFuY2gsIG91dHB1dCkKLSAgICBlbGlmIG5vZGUuZWxzZV9icmFuY2gg
aXMgbm90IE5vbmU6Ci0gICAgICBSdW5Db2RlKGVudi5DbG9uZSgpLCBub2RlLmVsc2VfYnJhbmNo
LCBvdXRwdXQpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBFeHBOb2RlKToKLSAgICB2YWx1ZSA9
IGVudi5FdmFsRXhwKG5vZGUpCi0gICAgb3V0cHV0LkFwcGVuZCgnJXMnICUgKHZhbHVlLCkpCi0g
IGVsaWYgaXNpbnN0YW5jZShub2RlLCBMaXRlcmFsRG9sbGFyTm9kZSk6Ci0gICAgb3V0cHV0LkFw
cGVuZCgnJCcpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBDb2RlTm9kZSk6Ci0gICAgUnVuQ29k
ZShlbnYuQ2xvbmUoKSwgbm9kZSwgb3V0cHV0KQotICBlbHNlOgotICAgIHByaW50ICdCQUQnCi0g
ICAgcHJpbnQgbm9kZQotICAgIHN5cy5leGl0KDEpCi0KLQotZGVmIFJ1bkNvZGUoZW52LCBjb2Rl
X25vZGUsIG91dHB1dCk6Ci0gIGZvciBhdG9taWNfY29kZSBpbiBjb2RlX25vZGUuYXRvbWljX2Nv
ZGU6Ci0gICAgUnVuQXRvbWljQ29kZShlbnYsIGF0b21pY19jb2RlLCBvdXRwdXQpCi0KLQotZGVm
IElzU2luZ2xlTGluZUNvbW1lbnQoY3VyX2xpbmUpOgotICByZXR1cm4gJy8vJyBpbiBjdXJfbGlu
ZQotCi0KLWRlZiBJc0luUHJlcHJvY2Vzc29yRGlyZWN0aXZlKHByZXZfbGluZXMsIGN1cl9saW5l
KToKLSAgaWYgY3VyX2xpbmUubHN0cmlwKCkuc3RhcnRzd2l0aCgnIycpOgotICAgIHJldHVybiBU
cnVlCi0gIHJldHVybiBwcmV2X2xpbmVzIGFuZCBwcmV2X2xpbmVzWy0xXS5lbmRzd2l0aCgnXFwn
KQotCi0KLWRlZiBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQpOgotICBsb2MgPSBsaW5lLmZpbmQo
Jy8vJykKLSAgYmVmb3JlX2NvbW1lbnQgPSBsaW5lWzpsb2NdLnJzdHJpcCgpCi0gIGlmIGJlZm9y
ZV9jb21tZW50ID09ICcnOgotICAgIGluZGVudCA9IGxvYwotICBlbHNlOgotICAgIG91dHB1dC5h
cHBlbmQoYmVmb3JlX2NvbW1lbnQpCi0gICAgaW5kZW50ID0gbGVuKGJlZm9yZV9jb21tZW50KSAt
IGxlbihiZWZvcmVfY29tbWVudC5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50KicgJyArICcv
LyAnCi0gIG1heF9sZW4gPSA4MCAtIGxlbihwcmVmaXgpCi0gIGNvbW1lbnQgPSBsaW5lW2xvYyAr
IDI6XS5zdHJpcCgpCi0gIHNlZ3MgPSBbc2VnIGZvciBzZWcgaW4gcmUuc3BsaXQocicoXHcrXFcq
KScsIGNvbW1lbnQpIGlmIHNlZyAhPSAnJ10KLSAgY3VyX2xpbmUgPSAnJwotICBmb3Igc2VnIGlu
IHNlZ3M6Ci0gICAgaWYgbGVuKChjdXJfbGluZSArIHNlZykucnN0cmlwKCkpIDwgbWF4X2xlbjoK
LSAgICAgIGN1cl9saW5lICs9IHNlZwotICAgIGVsc2U6Ci0gICAgICBpZiBjdXJfbGluZS5zdHJp
cCgpICE9ICcnOgotICAgICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnJzdHJp
cCgpKQotICAgICAgY3VyX2xpbmUgPSBzZWcubHN0cmlwKCkKLSAgaWYgY3VyX2xpbmUuc3RyaXAo
KSAhPSAnJzoKLSAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnN0cmlwKCkpCi0K
LQotZGVmIFdyYXBDb2RlKGxpbmUsIGxpbmVfY29uY2F0LCBvdXRwdXQpOgotICBpbmRlbnQgPSBs
ZW4obGluZSkgLSBsZW4obGluZS5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50KicgJyAgIyBQ
cmVmaXggb2YgdGhlIGN1cnJlbnQgbGluZQotICBtYXhfbGVuID0gODAgLSBpbmRlbnQgLSBsZW4o
bGluZV9jb25jYXQpICAjIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUKLSAgbmV3
X3ByZWZpeCA9IHByZWZpeCArIDQqJyAnICAjIFByZWZpeCBvZiBhIGNvbnRpbnVhdGlvbiBsaW5l
Ci0gIG5ld19tYXhfbGVuID0gbWF4X2xlbiAtIDQgICMgTWF4aW11bSBsZW5ndGggb2YgYSBjb250
aW51YXRpb24gbGluZQotICAjIFByZWZlcnMgdG8gd3JhcCBhIGxpbmUgYWZ0ZXIgYSAnLCcgb3Ig
JzsnLgotICBzZWdzID0gW3NlZyBmb3Igc2VnIGluIHJlLnNwbGl0KHInKFteLDtdK1ssO10/KScs
IGxpbmUuc3RyaXAoKSkgaWYgc2VnICE9ICcnXQotICBjdXJfbGluZSA9ICcnICAjIFRoZSBjdXJy
ZW50IGxpbmUgd2l0aG91dCBsZWFkaW5nIHNwYWNlcy4KLSAgZm9yIHNlZyBpbiBzZWdzOgotICAg
ICMgSWYgdGhlIGxpbmUgaXMgc3RpbGwgdG9vIGxvbmcsIHdyYXAgYXQgYSBzcGFjZS4KLSAgICB3
aGlsZSBjdXJfbGluZSA9PSAnJyBhbmQgbGVuKHNlZy5zdHJpcCgpKSA+IG1heF9sZW46Ci0gICAg
ICBzZWcgPSBzZWcubHN0cmlwKCkKLSAgICAgIHNwbGl0X2F0ID0gc2VnLnJmaW5kKCcgJywgMCwg
bWF4X2xlbikKLSAgICAgIG91dHB1dC5hcHBlbmQocHJlZml4ICsgc2VnWzpzcGxpdF9hdF0uc3Ry
aXAoKSArIGxpbmVfY29uY2F0KQotICAgICAgc2VnID0gc2VnW3NwbGl0X2F0ICsgMTpdCi0gICAg
ICBwcmVmaXggPSBuZXdfcHJlZml4Ci0gICAgICBtYXhfbGVuID0gbmV3X21heF9sZW4KLQotICAg
IGlmIGxlbigoY3VyX2xpbmUgKyBzZWcpLnJzdHJpcCgpKSA8IG1heF9sZW46Ci0gICAgICBjdXJf
bGluZSA9IChjdXJfbGluZSArIHNlZykubHN0cmlwKCkKLSAgICBlbHNlOgotICAgICAgb3V0cHV0
LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5yc3RyaXAoKSArIGxpbmVfY29uY2F0KQotICAgICAg
cHJlZml4ID0gbmV3X3ByZWZpeAotICAgICAgbWF4X2xlbiA9IG5ld19tYXhfbGVuCi0gICAgICBj
dXJfbGluZSA9IHNlZy5sc3RyaXAoKQotICBpZiBjdXJfbGluZS5zdHJpcCgpICE9ICcnOgotICAg
IG91dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUuc3RyaXAoKSkKLQotCi1kZWYgV3JhcFBy
ZXByb2Nlc3NvckRpcmVjdGl2ZShsaW5lLCBvdXRwdXQpOgotICBXcmFwQ29kZShsaW5lLCAnIFxc
Jywgb3V0cHV0KQotCi0KLWRlZiBXcmFwUGxhaW5Db2RlKGxpbmUsIG91dHB1dCk6Ci0gIFdyYXBD
b2RlKGxpbmUsICcnLCBvdXRwdXQpCi0KLQotZGVmIElzTXVsdGlMaW5lSVdZVVByYWdtYShsaW5l
KToKLSAgcmV0dXJuIHJlLnNlYXJjaChyJy9cKiBJV1lVIHByYWdtYTogJywgbGluZSkKLQotCi1k
ZWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9uZUxpbmVJV1lVUHJhZ21hKGxpbmUpOgotICByZXR1
cm4gKHJlLm1hdGNoKHInXiMoaWZuZGVmfGRlZmluZXxlbmRpZlxzKi8vKVxzKltcd19dK1xzKiQn
LCBsaW5lKSBvcgotICAgICAgICAgIHJlLm1hdGNoKHInXiNpbmNsdWRlXHMnLCBsaW5lKSBvcgot
ICAgICAgICAgICMgRG9uJ3QgYnJlYWsgSVdZVSBwcmFnbWFzLCBlaXRoZXI7IHRoYXQgY2F1c2Vz
IGl3eXUucHkgcHJvYmxlbXMuCi0gICAgICAgICAgcmUuc2VhcmNoKHInLy8gSVdZVSBwcmFnbWE6
ICcsIGxpbmUpKQotCi0KLWRlZiBXcmFwTG9uZ0xpbmUobGluZSwgb3V0cHV0KToKLSAgbGluZSA9
IGxpbmUucnN0cmlwKCkKLSAgaWYgbGVuKGxpbmUpIDw9IDgwOgotICAgIG91dHB1dC5hcHBlbmQo
bGluZSkKLSAgZWxpZiBJc1NpbmdsZUxpbmVDb21tZW50KGxpbmUpOgotICAgIGlmIElzSGVhZGVy
R3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMgVGhlIHN0eWxl
IGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1YXJkIGxpbmVz
LAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0cHV0LmFwcGVu
ZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQpCi0gIGVs
aWYgSXNJblByZXByb2Nlc3NvckRpcmVjdGl2ZShvdXRwdXQsIGxpbmUpOgotICAgIGlmIElzSGVh
ZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMgVGhlIHN0
eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1YXJkIGxp
bmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0cHV0LmFw
cGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwUHJlcHJvY2Vzc29yRGlyZWN0aXZlKGxp
bmUsIG91dHB1dCkKLSAgZWxpZiBJc011bHRpTGluZUlXWVVQcmFnbWEobGluZSk6Ci0gICAgb3V0
cHV0LmFwcGVuZChsaW5lKQotICBlbHNlOgotICAgIFdyYXBQbGFpbkNvZGUobGluZSwgb3V0cHV0
KQotCi0KLWRlZiBCZWF1dGlmeUNvZGUoc3RyaW5nKToKLSAgbGluZXMgPSBzdHJpbmcuc3BsaXRs
aW5lcygpCi0gIG91dHB1dCA9IFtdCi0gIGZvciBsaW5lIGluIGxpbmVzOgotICAgIFdyYXBMb25n
TGluZShsaW5lLCBvdXRwdXQpCi0gIG91dHB1dDIgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBp
biBvdXRwdXRdCi0gIHJldHVybiAnXG4nLmpvaW4ob3V0cHV0MikgKyAnXG4nCi0KLQotZGVmIENv
bnZlcnRGcm9tUHVtcFNvdXJjZShzcmNfdGV4dCk6Ci0gICIiIlJldHVybiB0aGUgdGV4dCBnZW5l
cmF0ZWQgZnJvbSB0aGUgZ2l2ZW4gUHVtcCBzb3VyY2UgdGV4dC4iIiIKLSAgYXN0ID0gUGFyc2VU
b0FTVChTdHJpcE1ldGFDb21tZW50cyhzcmNfdGV4dCkpCi0gIG91dHB1dCA9IE91dHB1dCgpCi0g
IFJ1bkNvZGUoRW52KCksIGFzdCwgb3V0cHV0KQotICByZXR1cm4gQmVhdXRpZnlDb2RlKG91dHB1
dC5zdHJpbmcpCi0KLQotZGVmIG1haW4oYXJndik6Ci0gIGlmIGxlbihhcmd2KSA9PSAxOgotICAg
IHByaW50IF9fZG9jX18KLSAgICBzeXMuZXhpdCgxKQotCi0gIGZpbGVfcGF0aCA9IGFyZ3ZbLTFd
Ci0gIG91dHB1dF9zdHIgPSBDb252ZXJ0RnJvbVB1bXBTb3VyY2UoZmlsZShmaWxlX3BhdGgsICdy
JykucmVhZCgpKQotICBpZiBmaWxlX3BhdGguZW5kc3dpdGgoJy5wdW1wJyk6Ci0gICAgb3V0cHV0
X2ZpbGVfcGF0aCA9IGZpbGVfcGF0aFs6LTVdCi0gIGVsc2U6Ci0gICAgb3V0cHV0X2ZpbGVfcGF0
aCA9ICctJwotICBpZiBvdXRwdXRfZmlsZV9wYXRoID09ICctJzoKLSAgICBwcmludCBvdXRwdXRf
c3RyLAotICBlbHNlOgotICAgIG91dHB1dF9maWxlID0gZmlsZShvdXRwdXRfZmlsZV9wYXRoLCAn
dycpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJy8vIFRoaXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5
IGNvbW1hbmQ6XG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKCcvLyAgICAgJXMgJXNcbicgJQot
ICAgICAgICAgICAgICAgICAgICAgIChvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKSwgb3MucGF0
aC5iYXNlbmFtZShmaWxlX3BhdGgpKSkKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnLy8gRE8gTk9U
IEVESVQgQlkgSEFORCEhIVxuXG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKG91dHB1dF9zdHIp
Ci0gICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
Ci0gIG1haW4oc3lzLmFyZ3YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
Y3JpcHRzL3J1bl93aXRoX3BhdGgucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRz
L3J1bl93aXRoX3BhdGgucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2YWI0ZDM0YTQxYTRmMTU2N2U3M2Q4YjY0
MzZiOWFjYjU3MzQwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NjcmlwdHMvcnVuX3dpdGhfcGF0aC5weQpAQCAtMCwwICsxLDMyIEBACisjIS91c3IvYmluL2Vu
diBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKworIiIiUnVucyBwcm9ncmFtIHNwZWNpZmllZCBpbiB0aGUgY29tbWFuZCBsaW5lIHdp
dGggdGhlIHN1YnN0aXR1dGVkIFBBVEguCisKKyAgIFRoaXMgc2NyaXB0IGlzIG5lZWRlZCBmb3Ig
dG8gc3VwcG9ydCBidWlsZGluZyB1bmRlciBQdWxzZSB3aGljaCBpcyB1bmFibGUKKyAgIHRvIG92
ZXJyaWRlIHRoZSBleGlzdGluZyBQQVRIIHZhcmlhYmxlLgorIiIiCisKK2ltcG9ydCBvcworaW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworU1VCU1RfUEFUSF9FTlZfVkFSX05BTUUgPSAi
U1VCU1RfUEFUSCIKKworZGVmIG1haW4oKToKKyAgaWYgU1VCU1RfUEFUSF9FTlZfVkFSX05BTUUg
aW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWyJQQVRIIl0gPSBvcy5lbnZpcm9uW1NVQlNU
X1BBVEhfRU5WX1ZBUl9OQU1FXQorCisgIGV4aXRfY29kZSA9IHN1YnByb2Nlc3MuUG9wZW4oc3lz
LmFyZ3ZbMTpdKS53YWl0KCkKKworICAjIGV4aXRfY29kZSBpcyBuZWdhdGl2ZSAoLXNpZ25hbCkg
aWYgdGhlIHByb2Nlc3MgaGFzIGJlZW4gdGVybWluYXRlZCBieQorICAjIGEgc2lnbmFsLiBSZXR1
cm5pbmcgbmVnYXRpdmUgZXhpdCBjb2RlIGlzIG5vdCBwb3J0YWJsZSBhbmQgc28gd2UgcmV0dXJu
CisgICMgMTAwIGluc3RlYWQuCisgIGlmIGV4aXRfY29kZSA8IDA6CisgICAgZXhpdF9jb2RlID0g
MTAwCisKKyAgc3lzLmV4aXQoZXhpdF9jb2RlKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18i
OgorICBtYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMv
dXBsb2FkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKaW5k
ZXggYzg1MmU0YzkxZTA2ZWY3YzQ5ZTAzODY4MzUwOWZmZDk0OTVjODIwZi4uZWJhNTcxMTQyZjVi
ODcxMTgzODZlYTIwMzA3YjA0MzNhY2E5ODZkZiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2NyaXB0cy91cGxvYWQucHkKQEAgLTEsMTggKzEsMzMgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhv
bgogIwotIyBDb3B5cmlnaHQgMjAwNyBHb29nbGUgSW5jLgorIyBDb3B5cmlnaHQgMjAwNywgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKLSMgTGljZW5zZWQgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4K
LSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKICMKLSMgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgogIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKICIiIlRvb2wgZm9yIHVwbG9hZGluZyBk
aWZmcyBmcm9tIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0byB0aGUgY29kZXJldmlldyBhcHAu
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1hbGwuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtYWxsLmNjCmluZGV4IGIyMTdhMTgw
MDZiMGM4YmRhZjRhOWY5YjZkMDZkZTRmZDhhZDllZWQuLmFkMjkyOTA1Y2YzODFkNjllYmE5MDA4
ZjUxOTZjZjY0NzdhNTZjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1hbGwuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWFs
bC5jYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgInNyYy9ndGVzdC5jYyIKICNpbmNsdWRl
ICJzcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtZmlsZXBhdGgu
Y2MiCisjaW5jbHVkZSAic3JjL2d0ZXN0LW1hdGNoZXJzLmNjIgogI2luY2x1ZGUgInNyYy9ndGVz
dC1wb3J0LmNjIgogI2luY2x1ZGUgInNyYy9ndGVzdC1wcmludGVycy5jYyIKICNpbmNsdWRlICJz
cmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwppbmRleCBhYzg2NjAzNTRjYWZhYzU4M2FkZWIyZjIxMzFiYzZh
Y2E3ODNjNWE3Li5jM2Q2ZGZjY2FkN2M5NjhiODNmMTk3Mjc0NTA4ZWZkODQ1ZGU5N2FhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwpAQCAt
MzEsNiArMzEsMTAgQEAKIC8vIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGRlYXRoIHRlc3RzLgogCiAj
aW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIgorCisjaW5jbHVkZSA8ZnVuY3Rpb25h
bD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIgogCkBAIC02
MiwxMCArNjYsMTYgQEAKICMgZW5kaWYgIC8vIEdURVNUX09TX1FOWAogCiAjIGlmIEdURVNUX09T
X0ZVQ0hTSUEKKyMgIGluY2x1ZGUgPGxpYi9mZGlvL2ZkLmg+CiAjICBpbmNsdWRlIDxsaWIvZmRp
by9pby5oPgogIyAgaW5jbHVkZSA8bGliL2ZkaW8vc3Bhd24uaD4KKyMgIGluY2x1ZGUgPGxpYi96
eC9jaGFubmVsLmg+CisjICBpbmNsdWRlIDxsaWIvengvcG9ydC5oPgorIyAgaW5jbHVkZSA8bGli
L3p4L3Byb2Nlc3MuaD4KKyMgIGluY2x1ZGUgPGxpYi96eC9zb2NrZXQuaD4KICMgIGluY2x1ZGUg
PHppcmNvbi9wcm9jZXNzYXJncy5oPgogIyAgaW5jbHVkZSA8emlyY29uL3N5c2NhbGxzLmg+Cisj
ICBpbmNsdWRlIDx6aXJjb24vc3lzY2FsbHMvcG9saWN5Lmg+CiAjICBpbmNsdWRlIDx6aXJjb24v
c3lzY2FsbHMvcG9ydC5oPgogIyBlbmRpZiAgLy8gR1RFU1RfT1NfRlVDSFNJQQogCkBAIC0xMTMs
OCArMTIzLDggQEAgR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgIkluZGljYXRlcyB0aGUgZmls
ZSwgbGluZSBudW1iZXIsIHRlbXBvcmFsIGluZGV4IG9mICIKICAgICAidGhlIHNpbmdsZSBkZWF0
aCB0ZXN0IHRvIHJ1biwgYW5kIGEgZmlsZSBkZXNjcmlwdG9yIHRvICIKICAgICAid2hpY2ggYSBz
dWNjZXNzIGNvZGUgbWF5IGJlIHNlbnQsIGFsbCBzZXBhcmF0ZWQgYnkgIgotICAgICJ0aGUgJ3wn
IGNoYXJhY3RlcnMuICBUaGlzIGZsYWcgaXMgc3BlY2lmaWVkIGlmIGFuZCBvbmx5IGlmIHRoZSBj
dXJyZW50ICIKLSAgICAicHJvY2VzcyBpcyBhIHN1Yi1wcm9jZXNzIGxhdW5jaGVkIGZvciBydW5u
aW5nIGEgdGhyZWFkLXNhZmUgIgorICAgICJ0aGUgJ3wnIGNoYXJhY3RlcnMuICBUaGlzIGZsYWcg
aXMgc3BlY2lmaWVkIGlmIGFuZCBvbmx5IGlmIHRoZSAiCisgICAgImN1cnJlbnQgcHJvY2VzcyBp
cyBhIHN1Yi1wcm9jZXNzIGxhdW5jaGVkIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUgIgogICAg
ICJkZWF0aCB0ZXN0LiAgRk9SIElOVEVSTkFMIFVTRSBPTkxZLiIpOwogfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCiAKQEAgLTIzOCw3ICsyNDgsNyBAQCBzdGF0aWMgc3RkOjpzdHJpbmcgRGVhdGhU
ZXN0VGhyZWFkV2FybmluZyhzaXplX3QgdGhyZWFkX2NvdW50KSB7CiAgICAgbXNnIDw8ICJkZXRl
Y3RlZCAiIDw8IHRocmVhZF9jb3VudCA8PCAiIHRocmVhZHMuIjsKICAgfQogICBtc2cgPDwgIiBT
ZWUgIgotICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9i
L21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvIgorICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9n
b29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9kb2NzLyIKICAgICAgICAgICJhZHZhbmNlZC5t
ZCNkZWF0aC10ZXN0cy1hbmQtdGhyZWFkcyIKICAgICAgIDw8ICIgZm9yIG1vcmUgZXhwbGFuYXRp
b24gYW5kIHN1Z2dlc3RlZCBzb2x1dGlvbnMsIGVzcGVjaWFsbHkgaWYiCiAgICAgICA8PCAiIHRo
aXMgaXMgdGhlIGxhc3QgbWVzc2FnZSB5b3Ugc2VlIGJlZm9yZSB5b3VyIHRlc3QgdGltZXMgb3V0
LiI7CkBAIC0yNjYsOCArMjc2LDYgQEAgc3RhdGljIGNvbnN0IGludCBrRnVjaHNpYVJlYWRQaXBl
RmQgPSAzOwogLy8gc3RhdGVtZW50LCB3aGljaCBpcyBub3QgYWxsb3dlZDsgVEhSRVcgbWVhbnMg
dGhhdCB0aGUgdGVzdCBzdGF0ZW1lbnQKIC8vIHJldHVybmVkIGNvbnRyb2wgYnkgdGhyb3dpbmcg
YW4gZXhjZXB0aW9uLiAgSU5fUFJPR1JFU1MgbWVhbnMgdGhlIHRlc3QKIC8vIGhhcyBub3QgeWV0
IGNvbmNsdWRlZC4KLS8vIEZJWE1FOiBVbmlmeSBuYW1lcyBhbmQgcG9zc2libHkgdmFsdWVzIGZv
cgotLy8gQWJvcnRSZWFzb24sIERlYXRoVGVzdE91dGNvbWUsIGFuZCBmbGFnIGNoYXJhY3RlcnMg
YWJvdmUuCiBlbnVtIERlYXRoVGVzdE91dGNvbWUgeyBJTl9QUk9HUkVTUywgRElFRCwgTElWRUQs
IFJFVFVSTkVELCBUSFJFVyB9OwogCiAvLyBSb3V0aW5lIGZvciBhYm9ydGluZyB0aGUgcHJvZ3Jh
bSB3aGljaCBpcyBzYWZlIHRvIGNhbGwgZnJvbSBhbgpAQCAtMjgxLDcgKzI4OSw3IEBAIHN0YXRp
YyB2b2lkIERlYXRoVGVzdEFib3J0KGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CiAgIC8v
IHRoZSBoZWFwIGZvciBhbnkgYWRkaXRpb25hbCBub24tbWludXNjdWxlIG1lbW9yeSByZXF1aXJl
bWVudHMuCiAgIGNvbnN0IEludGVybmFsUnVuRGVhdGhUZXN0RmxhZyogY29uc3QgZmxhZyA9CiAg
ICAgICBHZXRVbml0VGVzdEltcGwoKS0+aW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZygpOwot
ICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICBGSUxF
KiBwYXJlbnQgPSBwb3NpeDo6RkRPcGVuKGZsYWctPndyaXRlX2ZkKCksICJ3Iik7CiAgICAgZnB1
dGMoa0RlYXRoVGVzdEludGVybmFsRXJyb3IsIHBhcmVudCk7CiAgICAgZnByaW50ZihwYXJlbnQs
ICIlcyIsIG1lc3NhZ2UuY19zdHIoKSk7CkBAIC0zNjEsNyArMzY5LDcgQEAgc3RhdGljIHZvaWQg
RmFpbEZyb21JbnRlcm5hbEVycm9yKGludCBmZCkgewogLy8gZm9yIHRoZSBjdXJyZW50IHRlc3Qu
CiBEZWF0aFRlc3Q6OkRlYXRoVGVzdCgpIHsKICAgVGVzdEluZm8qIGNvbnN0IGluZm8gPSBHZXRV
bml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgaWYgKGluZm8gPT0gTlVMTCkg
eworICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CiAgICAgRGVhdGhUZXN0QWJvcnQoIkNhbm5vdCBy
dW4gYSBkZWF0aCB0ZXN0IG91dHNpZGUgb2YgYSBURVNUIG9yICIKICAgICAgICAgICAgICAgICAg
ICAiVEVTVF9GIGNvbnN0cnVjdCIpOwogICB9CkBAIC0zNjksMTAgKzM3NywxMSBAQCBEZWF0aFRl
c3Q6OkRlYXRoVGVzdCgpIHsKIAogLy8gQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGRlYXRoIHRlc3Qg
YnkgZGlzcGF0Y2hpbmcgdG8gdGhlIGN1cnJlbnQKIC8vIGRlYXRoIHRlc3QgZmFjdG9yeS4KLWJv
b2wgRGVhdGhUZXN0OjpDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVn
ZXgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBE
ZWF0aFRlc3QqKiB0ZXN0KSB7Citib29sIERlYXRoVGVzdDo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0
YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmlu
ZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHJldHVybiBHZXRVbml0VGVzdEltcGwoKS0+
ZGVhdGhfdGVzdF9mYWN0b3J5KCktPkNyZWF0ZSgKLSAgICAgIHN0YXRlbWVudCwgcmVnZXgsIGZp
bGUsIGxpbmUsIHRlc3QpOworICAgICAgc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZp
bGUsIGxpbmUsIHRlc3QpOwogfQogCiBjb25zdCBjaGFyKiBEZWF0aFRlc3Q6Okxhc3RNZXNzYWdl
KCkgewpAQCAtMzg4LDkgKzM5Nyw5IEBAIHN0ZDo6c3RyaW5nIERlYXRoVGVzdDo6bGFzdF9kZWF0
aF90ZXN0X21lc3NhZ2VfOwogLy8gUHJvdmlkZXMgY3Jvc3MgcGxhdGZvcm0gaW1wbGVtZW50YXRp
b24gZm9yIHNvbWUgZGVhdGggZnVuY3Rpb25hbGl0eS4KIGNsYXNzIERlYXRoVGVzdEltcGwgOiBw
dWJsaWMgRGVhdGhUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIERlYXRoVGVzdEltcGwoY29uc3QgY2hh
ciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4KQorICBEZWF0aFRlc3RJbXBsKGNvbnN0
IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcikK
ICAgICAgIDogc3RhdGVtZW50XyhhX3N0YXRlbWVudCksCi0gICAgICAgIHJlZ2V4XyhhX3JlZ2V4
KSwKKyAgICAgICAgbWF0Y2hlcl8oc3RkOjptb3ZlKG1hdGNoZXIpKSwKICAgICAgICAgc3Bhd25l
ZF8oZmFsc2UpLAogICAgICAgICBzdGF0dXNfKC0xKSwKICAgICAgICAgb3V0Y29tZV8oSU5fUFJP
R1JFU1MpLApAQCAtMzk4LDEzICs0MDcsMTIgQEAgY2xhc3MgRGVhdGhUZXN0SW1wbCA6IHB1Ymxp
YyBEZWF0aFRlc3QgewogICAgICAgICB3cml0ZV9mZF8oLTEpIHt9CiAKICAgLy8gcmVhZF9mZF8g
aXMgZXhwZWN0ZWQgdG8gYmUgY2xvc2VkIGFuZCBjbGVhcmVkIGJ5IGEgZGVyaXZlZCBjbGFzcy4K
LSAgfkRlYXRoVGVzdEltcGwoKSB7IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHJlYWRfZmRfID09
IC0xKTsgfQorICB+RGVhdGhUZXN0SW1wbCgpIG92ZXJyaWRlIHsgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18ocmVhZF9mZF8gPT0gLTEpOyB9CiAKLSAgdm9pZCBBYm9ydChBYm9ydFJlYXNvbiByZWFz
b24pOwotICB2aXJ0dWFsIGJvb2wgUGFzc2VkKGJvb2wgc3RhdHVzX29rKTsKKyAgdm9pZCBBYm9y
dChBYm9ydFJlYXNvbiByZWFzb24pIG92ZXJyaWRlOworICBib29sIFBhc3NlZChib29sIHN0YXR1
c19vaykgb3ZlcnJpZGU7CiAKICAgY29uc3QgY2hhciogc3RhdGVtZW50KCkgY29uc3QgeyByZXR1
cm4gc3RhdGVtZW50XzsgfQotICBjb25zdCBSRSogcmVnZXgoKSBjb25zdCB7IHJldHVybiByZWdl
eF87IH0KICAgYm9vbCBzcGF3bmVkKCkgY29uc3QgeyByZXR1cm4gc3Bhd25lZF87IH0KICAgdm9p
ZCBzZXRfc3Bhd25lZChib29sIGlzX3NwYXduZWQpIHsgc3Bhd25lZF8gPSBpc19zcGF3bmVkOyB9
CiAgIGludCBzdGF0dXMoKSBjb25zdCB7IHJldHVybiBzdGF0dXNfOyB9CkBAIC00MjIsMTMgKzQz
MCwxNSBAQCBjbGFzcyBEZWF0aFRlc3RJbXBsIDogcHVibGljIERlYXRoVGVzdCB7CiAgIC8vIGNh
c2Ugb2YgdW5leHBlY3RlZCBjb2Rlcy4KICAgdm9pZCBSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0
ZSgpOwogCisgIC8vIFJldHVybnMgc3RkZXJyIG91dHB1dCBmcm9tIHRoZSBjaGlsZCBwcm9jZXNz
LgorICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIEdldEVycm9yTG9ncygpOworCiAgcHJpdmF0ZToKICAg
Ly8gVGhlIHRleHR1YWwgY29udGVudCBvZiB0aGUgY29kZSB0aGlzIG9iamVjdCBpcyB0ZXN0aW5n
LiAgVGhpcyBjbGFzcwogICAvLyBkb2Vzbid0IG93biB0aGlzIHN0cmluZyBhbmQgc2hvdWxkIG5v
dCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KICAgY29uc3QgY2hhciogY29uc3Qgc3RhdGVtZW50XzsK
LSAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aGljaCB0ZXN0IG91dHB1dCBtdXN0IG1hdGNo
LiAgRGVhdGhUZXN0SW1wbAotICAvLyBkb2Vzbid0IG93biB0aGlzIG9iamVjdCBhbmQgc2hvdWxk
IG5vdCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KLSAgY29uc3QgUkUqIGNvbnN0IHJlZ2V4XzsKKyAg
Ly8gQSBtYXRjaGVyIHRoYXQncyBleHBlY3RlZCB0byBtYXRjaCB0aGUgc3RkZXJyIG91dHB1dCBi
eSB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNo
ZXJfOwogICAvLyBUcnVlIGlmIHRoZSBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3MgaGFzIGJlZW4g
c3VjY2Vzc2Z1bGx5IHNwYXduZWQuCiAgIGJvb2wgc3Bhd25lZF87CiAgIC8vIFRoZSBleGl0IHN0
YXR1cyBvZiB0aGUgY2hpbGQgcHJvY2Vzcy4KQEAgLTQ5MCw2ICs1MDAsMTAgQEAgdm9pZCBEZWF0
aFRlc3RJbXBsOjpSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0ZSgpIHsKICAgc2V0X3JlYWRfZmQo
LTEpOwogfQogCitzdGQ6OnN0cmluZyBEZWF0aFRlc3RJbXBsOjpHZXRFcnJvckxvZ3MoKSB7Cisg
IHJldHVybiBHZXRDYXB0dXJlZFN0ZGVycigpOworfQorCiAvLyBTaWduYWxzIHRoYXQgdGhlIGRl
YXRoIHRlc3QgY29kZSB3aGljaCBzaG91bGQgaGF2ZSBleGl0ZWQsIGRpZG4ndC4KIC8vIFNob3Vs
ZCBiZSBjYWxsZWQgb25seSBpbiBhIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcy4KIC8vIFdyaXRl
cyBhIHN0YXR1cyBieXRlIHRvIHRoZSBjaGlsZCdzIHN0YXR1cyBmaWxlIGRlc2NyaXB0b3IsIHRo
ZW4KQEAgLTU0MywyMiArNTU3LDIxIEBAIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIEZvcm1hdERlYXRo
VGVzdE91dHB1dChjb25zdCA6OnN0ZDo6c3RyaW5nJiBvdXRwdXQpIHsKIC8vICAgICAgICAgICAg
IGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHdhaXQoMikuIE9uIFdpbmRvd3MsIHRoaXMgaXMg
dGhlCiAvLyAgICAgICAgICAgICB2YWx1ZSBzdXBwbGllZCB0byB0aGUgRXhpdFByb2Nlc3MoKSBB
UEkgb3IgYSBudW1lcmljIGNvZGUKIC8vICAgICAgICAgICAgIG9mIHRoZSBleGNlcHRpb24gdGhh
dCB0ZXJtaW5hdGVkIHRoZSBwcm9ncmFtLgotLy8gICByZWdleDogICAgQSByZWd1bGFyIGV4cHJl
c3Npb24gb2JqZWN0IHRvIGJlIGFwcGxpZWQgdG8KLS8vICAgICAgICAgICAgIHRoZSB0ZXN0J3Mg
Y2FwdHVyZWQgc3RhbmRhcmQgZXJyb3Igb3V0cHV0OyB0aGUgZGVhdGggdGVzdAotLy8gICAgICAg
ICAgICAgZmFpbHMgaWYgaXQgZG9lcyBub3QgbWF0Y2guCisvLyAgIG1hdGNoZXJfOiBBIG1hdGNo
ZXIgdGhhdCdzIGV4cGVjdGVkIHRvIG1hdGNoIHRoZSBzdGRlcnIgb3V0cHV0IGJ5IHRoZSBjaGls
ZAorLy8gICAgICAgICAgICAgcHJvY2Vzcy4KIC8vCiAvLyBBcmd1bWVudDoKIC8vICAgc3RhdHVz
X29rOiB0cnVlIGlmIGV4aXRfc3RhdHVzIGlzIGFjY2VwdGFibGUgaW4gdGhlIGNvbnRleHQgb2YK
IC8vICAgICAgICAgICAgICB0aGlzIHBhcnRpY3VsYXIgZGVhdGggdGVzdCwgd2hpY2ggZmFpbHMg
aWYgaXQgaXMgZmFsc2UKIC8vCi0vLyBSZXR1cm5zIHRydWUgaWZmIGFsbCBvZiB0aGUgYWJvdmUg
Y29uZGl0aW9ucyBhcmUgbWV0LiAgT3RoZXJ3aXNlLCB0aGUKLS8vIGZpcnN0IGZhaWxpbmcgY29u
ZGl0aW9uLCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIGlzIHRoZSBvbmUgdGhhdCBpcworLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIGFsbCBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBh
cmUgbWV0LiAgT3RoZXJ3aXNlLAorLy8gdGhlIGZpcnN0IGZhaWxpbmcgY29uZGl0aW9uLCBpbiB0
aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIGlzIHRoZSBvbmUgdGhhdCBpcwogLy8gcmVwb3J0ZWQuIEFs
c28gc2V0cyB0aGUgbGFzdCBkZWF0aCB0ZXN0IG1lc3NhZ2Ugc3RyaW5nLgogYm9vbCBEZWF0aFRl
c3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsKICAgaWYgKCFzcGF3bmVkKCkpCiAgICAg
cmV0dXJuIGZhbHNlOwogCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UgPSBHZXRD
YXB0dXJlZFN0ZGVycigpOworICBjb25zdCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlID0gR2V0
RXJyb3JMb2dzKCk7CiAKICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CiAgIE1lc3NhZ2UgYnVmZmVy
OwpAQCAtNTc5LDE4ICs1OTIsMTUgQEAgYm9vbCBEZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBz
dGF0dXNfb2spIHsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRElFRDoKICAgICAgIGlmIChzdGF0
dXNfb2spIHsKLSMgaWYgR1RFU1RfVVNFU19QQ1JFCi0gICAgICAgIC8vIFBDUkUgcmVnZXhlcyBz
dXBwb3J0IGVtYmVkZGVkIE5VTHMuCi0gICAgICAgIGNvbnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQ
YXJ0aWFsTWF0Y2goZXJyb3JfbWVzc2FnZSwgKnJlZ2V4KCkpOwotIyBlbHNlCi0gICAgICAgIGNv
bnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQYXJ0aWFsTWF0Y2goZXJyb3JfbWVzc2FnZS5jX3N0cigp
LCAqcmVnZXgoKSk7Ci0jIGVuZGlmICAvLyBHVEVTVF9VU0VTX1BDUkUKLSAgICAgICAgaWYgKG1h
dGNoZWQpIHsKKyAgICAgICAgaWYgKG1hdGNoZXJfLk1hdGNoZXMoZXJyb3JfbWVzc2FnZSkpIHsK
ICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBz
dGQ6Om9zdHJpbmdzdHJlYW0gc3RyZWFtOworICAgICAgICAgIG1hdGNoZXJfLkRlc2NyaWJlVG8o
JnN0cmVhbSk7CiAgICAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qg
d2l0aCBleHBlY3RlZCBlcnJvci5cbiIKLSAgICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6
ICIgPDwgcmVnZXgoKS0+cGF0dGVybigpIDw8ICJcbiIKLSAgICAgICAgICAgICAgICAgPDwgIkFj
dHVhbCBtc2c6XG4iIDw8IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsKKyAg
ICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6ICIgPDwgc3RyZWFtLnN0cigpIDw8ICJcbiIK
KyAgICAgICAgICAgICAgICAgPDwgIkFjdHVhbCBtc2c6XG4iCisgICAgICAgICAgICAgICAgIDw8
IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgfQogICAgICAg
fSBlbHNlIHsKICAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qgd2l0
aCBleHBlY3RlZCBleGl0IGNvZGU6XG4iCkBAIC02MzksMTEgKzY0OSwxMSBAQCBib29sIERlYXRo
VGVzdEltcGw6OlBhc3NlZChib29sIHN0YXR1c19vaykgewogLy8KIGNsYXNzIFdpbmRvd3NEZWF0
aFRlc3QgOiBwdWJsaWMgRGVhdGhUZXN0SW1wbCB7CiAgcHVibGljOgotICBXaW5kb3dzRGVhdGhU
ZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgIGNvbnN0IFJF
KiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCi0gICAgICAg
ICAgICAgICAgICAgaW50IGxpbmUpCi0gICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpLCBmaWxlXyhmaWxlKSwgbGluZV8obGluZSkge30KKyAgV2luZG93c0RlYXRoVGVz
dChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1h
dGNoZXIsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCisg
ICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSksCisg
ICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5lXyhsaW5lKSB7fQogCiAgIC8vIEFsbCBv
ZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gRGVhdGhUZXN0Lgog
ICB2aXJ0dWFsIGludCBXYWl0KCk7CkBAIC03MjAsNyArNzMwLDcgQEAgRGVhdGhUZXN0OjpUZXN0
Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICBjb25zdCBUZXN0SW5mbyog
Y29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAgIGNvbnN0IGludCBkZWF0
aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKIAotICBp
ZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICAvLyBQYXJz
ZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIGhhcyBwZXJmb3JtZWQgYWxsIHRoZSBuZWNlc3Nh
cnkKICAgICAvLyBwcm9jZXNzaW5nLgogICAgIHNldF93cml0ZV9mZChmbGFnLT53cml0ZV9mZCgp
KTsKQEAgLTcyOSw4ICs3MzksOCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIFdpbmRvd3NEZWF0aFRl
c3Q6OkFzc3VtZVJvbGUoKSB7CiAKICAgLy8gV2luZG93c0RlYXRoVGVzdCB1c2VzIGFuIGFub255
bW91cyBwaXBlIHRvIGNvbW11bmljYXRlIHJlc3VsdHMgb2YKICAgLy8gYSBkZWF0aCB0ZXN0Lgot
ICBTRUNVUklUWV9BVFRSSUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRhYmxlID0gewotICAgIHNp
emVvZihTRUNVUklUWV9BVFRSSUJVVEVTKSwgTlVMTCwgVFJVRSB9OworICBTRUNVUklUWV9BVFRS
SUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRhYmxlID0ge3NpemVvZihTRUNVUklUWV9BVFRSSUJV
VEVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dWxscHRyLCBUUlVFfTsKICAgSEFORExFIHJlYWRfaGFuZGxlLCB3cml0ZV9oYW5kbGU7CiAgIEdU
RVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKAogICAgICAgOjpDcmVhdGVQaXBlKCZyZWFkX2hhbmRsZSwg
JndyaXRlX2hhbmRsZSwgJmhhbmRsZXNfYXJlX2luaGVyaXRhYmxlLApAQCAtNzQxLDEzICs3NTEs
MTMgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkg
ewogICB3cml0ZV9oYW5kbGVfLlJlc2V0KHdyaXRlX2hhbmRsZSk7CiAgIGV2ZW50X2hhbmRsZV8u
UmVzZXQoOjpDcmVhdGVFdmVudCgKICAgICAgICZoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSwKLSAg
ICAgIFRSVUUsICAgIC8vIFRoZSBldmVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gbm9u
LXNpZ25hbGVkIHN0YXRlLgotICAgICAgRkFMU0UsICAgLy8gVGhlIGluaXRpYWwgc3RhdGUgaXMg
bm9uLXNpZ25hbGxlZC4KLSAgICAgIE5VTEwpKTsgIC8vIFRoZSBldmVuIGlzIHVubmFtZWQuCi0g
IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hhbmRsZV8uR2V0KCkgIT0gTlVMTCk7Ci0g
IGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0KLSAgICAgIHN0ZDo6c3RyaW5nKCItLSIp
ICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ZpbHRlckZsYWcgKyAiPSIgKwotICAgICAgaW5mby0+
dGVzdF9jYXNlX25hbWUoKSArICIuIiArIGluZm8tPm5hbWUoKTsKKyAgICAgIFRSVUUsICAgICAg
IC8vIFRoZSBldmVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gbm9uLXNpZ25hbGVkIHN0
YXRlLgorICAgICAgRkFMU0UsICAgICAgLy8gVGhlIGluaXRpYWwgc3RhdGUgaXMgbm9uLXNpZ25h
bGxlZC4KKyAgICAgIG51bGxwdHIpKTsgIC8vIFRoZSBldmVuIGlzIHVubmFtZWQuCisgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hhbmRsZV8uR2V0KCkgIT0gbnVsbHB0cik7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9G
TEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJG
bGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
aW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJF
RklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgKwogICAgICAgIj0iICsgZmlsZV8gKyAi
fCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsgInwiICsKQEAgLTc2MCwxMCArNzcwLDkg
QEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewog
ICAgICAgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihl
dmVudF9oYW5kbGVfLkdldCgpKSk7CiAKICAgY2hhciBleGVjdXRhYmxlX3BhdGhbX01BWF9QQVRI
ICsgMV07ICAvLyBOT0xJTlQKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oCi0gICAgICBfTUFY
X1BBVEggKyAxICE9IDo6R2V0TW9kdWxlRmlsZU5hbWVBKE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGVfcGF0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01BWF9QQVRIKSk7CisgIEdURVNUX0RF
QVRIX1RFU1RfQ0hFQ0tfKF9NQVhfUEFUSCArIDEgIT0gOjpHZXRNb2R1bGVGaWxlTmFtZUEobnVs
bHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01BWF9QQVRIKSk7CiAKICAg
c3RkOjpzdHJpbmcgY29tbWFuZF9saW5lID0KICAgICAgIHN0ZDo6c3RyaW5nKDo6R2V0Q29tbWFu
ZExpbmVBKCkpICsgIiAiICsgZmlsdGVyX2ZsYWcgKyAiIFwiIiArCkBAIC03ODQsMTcgKzc5Mywx
NiBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIFdpbmRvd3NEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7
CiAgIHN0YXJ0dXBfaW5mby5oU3RkRXJyb3IgPSA6OkdldFN0ZEhhbmRsZShTVERfRVJST1JfSEFO
RExFKTsKIAogICBQUk9DRVNTX0lORk9STUFUSU9OIHByb2Nlc3NfaW5mbzsKLSAgR1RFU1RfREVB
VEhfVEVTVF9DSEVDS18oOjpDcmVhdGVQcm9jZXNzQSgKLSAgICAgIGV4ZWN1dGFibGVfcGF0aCwK
LSAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KGNvbW1hbmRfbGluZS5jX3N0cigpKSwKLSAgICAgIE5V
TEwsICAgLy8gUmV0dW5lZCBwcm9jZXNzIGhhbmRsZSBpcyBub3QgaW5oZXJpdGFibGUuCi0gICAg
ICBOVUxMLCAgIC8vIFJldHVuZWQgdGhyZWFkIGhhbmRsZSBpcyBub3QgaW5oZXJpdGFibGUuCi0g
ICAgICBUUlVFLCAgIC8vIENoaWxkIGluaGVyaXRzIGFsbCBpbmhlcml0YWJsZSBoYW5kbGVzIChm
b3Igd3JpdGVfaGFuZGxlXykuCi0gICAgICAweDAsICAgIC8vIERlZmF1bHQgY3JlYXRpb24gZmxh
Z3MuCi0gICAgICBOVUxMLCAgIC8vIEluaGVyaXQgdGhlIHBhcmVudCdzIGVudmlyb25tZW50Lgot
ICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksCi0g
ICAgICAmc3RhcnR1cF9pbmZvLAotICAgICAgJnByb2Nlc3NfaW5mbykgIT0gRkFMU0UpOworICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXygKKyAgICAgIDo6Q3JlYXRlUHJvY2Vzc0EoCisgICAgICAg
ICAgZXhlY3V0YWJsZV9wYXRoLCBjb25zdF9jYXN0PGNoYXIqPihjb21tYW5kX2xpbmUuY19zdHIo
KSksCisgICAgICAgICAgbnVsbHB0ciwgIC8vIFJldHVuZWQgcHJvY2VzcyBoYW5kbGUgaXMgbm90
IGluaGVyaXRhYmxlLgorICAgICAgICAgIG51bGxwdHIsICAvLyBSZXR1bmVkIHRocmVhZCBoYW5k
bGUgaXMgbm90IGluaGVyaXRhYmxlLgorICAgICAgICAgIFRSVUUsICAvLyBDaGlsZCBpbmhlcml0
cyBhbGwgaW5oZXJpdGFibGUgaGFuZGxlcyAoZm9yIHdyaXRlX2hhbmRsZV8pLgorICAgICAgICAg
IDB4MCwgICAvLyBEZWZhdWx0IGNyZWF0aW9uIGZsYWdzLgorICAgICAgICAgIG51bGxwdHIsICAv
LyBJbmhlcml0IHRoZSBwYXJlbnQncyBlbnZpcm9ubWVudC4KKyAgICAgICAgICBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSwgJnN0YXJ0dXBfaW5mbywKKyAg
ICAgICAgICAmcHJvY2Vzc19pbmZvKSAhPSBGQUxTRSk7CiAgIGNoaWxkX2hhbmRsZV8uUmVzZXQo
cHJvY2Vzc19pbmZvLmhQcm9jZXNzKTsKICAgOjpDbG9zZUhhbmRsZShwcm9jZXNzX2luZm8uaFRo
cmVhZCk7CiAgIHNldF9zcGF3bmVkKHRydWUpOwpAQCAtODA1LDM4ICs4MTMsMzQgQEAgRGVhdGhU
ZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogCiBjbGFzcyBG
dWNoc2lhRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1YmxpYzoKLSAgRnVj
aHNpYURlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwKLSAgICAgICAgICAgICAgICAg
ICBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxl
LAotICAgICAgICAgICAgICAgICAgIGludCBsaW5lKQotICAgICAgOiBEZWF0aFRlc3RJbXBsKGFf
c3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHt9Ci0gIHZpcnR1
YWwgfkZ1Y2hzaWFEZWF0aFRlc3QoKSB7Ci0gICAgenhfc3RhdHVzX3Qgc3RhdHVzID0genhfaGFu
ZGxlX2Nsb3NlKGNoaWxkX3Byb2Nlc3NfKTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhz
dGF0dXMgPT0gWlhfT0spOwotICAgIHN0YXR1cyA9IHp4X2hhbmRsZV9jbG9zZShwb3J0Xyk7Ci0g
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgfQorICBGdWNo
c2lhRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBp
bnQgbGluZSkKKyAgICAgIDogRGVhdGhUZXN0SW1wbChhX3N0YXRlbWVudCwgc3RkOjptb3ZlKG1h
dGNoZXIpKSwKKyAgICAgICAgZmlsZV8oZmlsZSksCisgICAgICAgIGxpbmVfKGxpbmUpIHt9CiAK
ICAgLy8gQWxsIG9mIHRoZXNlIHZpcnR1YWwgZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSBE
ZWF0aFRlc3QuCi0gIHZpcnR1YWwgaW50IFdhaXQoKTsKLSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1
bWVSb2xlKCk7CisgIGludCBXYWl0KCkgb3ZlcnJpZGU7CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUo
KSBvdmVycmlkZTsKKyAgc3RkOjpzdHJpbmcgR2V0RXJyb3JMb2dzKCkgb3ZlcnJpZGU7CiAKICBw
cml2YXRlOgogICAvLyBUaGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB3aGljaCB0aGUgZGVhdGggdGVz
dCBpcyBsb2NhdGVkLgogICBjb25zdCBjaGFyKiBjb25zdCBmaWxlXzsKICAgLy8gVGhlIGxpbmUg
bnVtYmVyIG9uIHdoaWNoIHRoZSBkZWF0aCB0ZXN0IGlzIGxvY2F0ZWQuCiAgIGNvbnN0IGludCBs
aW5lXzsKKyAgLy8gVGhlIHN0ZGVyciBkYXRhIGNhcHR1cmVkIGJ5IHRoZSBjaGlsZCBwcm9jZXNz
LgorICBzdGQ6OnN0cmluZyBjYXB0dXJlZF9zdGRlcnJfOwogCi0gIHp4X2hhbmRsZV90IGNoaWxk
X3Byb2Nlc3NfID0gWlhfSEFORExFX0lOVkFMSUQ7Ci0gIHp4X2hhbmRsZV90IHBvcnRfID0gWlhf
SEFORExFX0lOVkFMSUQ7CisgIHp4Ojpwcm9jZXNzIGNoaWxkX3Byb2Nlc3NfOworICB6eDo6Y2hh
bm5lbCBleGNlcHRpb25fY2hhbm5lbF87CisgIHp4Ojpzb2NrZXQgc3RkZXJyX3NvY2tldF87CiB9
OwogCiAvLyBVdGlsaXR5IGNsYXNzIGZvciBhY2N1bXVsYXRpbmcgY29tbWFuZC1saW5lIGFyZ3Vt
ZW50cy4KIGNsYXNzIEFyZ3VtZW50cyB7CiAgcHVibGljOgotICBBcmd1bWVudHMoKSB7Ci0gICAg
YXJnc18ucHVzaF9iYWNrKE5VTEwpOwotICB9CisgIEFyZ3VtZW50cygpIHsgYXJnc18ucHVzaF9i
YWNrKG51bGxwdHIpOyB9CiAKICAgfkFyZ3VtZW50cygpIHsKICAgICBmb3IgKHN0ZDo6dmVjdG9y
PGNoYXIqPjo6aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2luKCk7IGkgIT0gYXJnc18uZW5kKCk7CkBA
IC04NzIsNTEgKzg3Niw4NiBAQCBjbGFzcyBBcmd1bWVudHMgewogLy8gc3RhdHVzLCBvciAwIGlm
IG5vIGNoaWxkIHByb2Nlc3MgZXhpc3RzLiAgQXMgYSBzaWRlIGVmZmVjdCwgc2V0cyB0aGUKIC8v
IG91dGNvbWUgZGF0YSBtZW1iZXIuCiBpbnQgRnVjaHNpYURlYXRoVGVzdDo6V2FpdCgpIHsKKyAg
Y29uc3QgaW50IGtQcm9jZXNzS2V5ID0gMDsKKyAgY29uc3QgaW50IGtTb2NrZXRLZXkgPSAxOwor
ICBjb25zdCBpbnQga0V4Y2VwdGlvbktleSA9IDI7CisKICAgaWYgKCFzcGF3bmVkKCkpCiAgICAg
cmV0dXJuIDA7CiAKLSAgLy8gUmVnaXN0ZXIgdG8gd2FpdCBmb3IgdGhlIGNoaWxkIHByb2Nlc3Mg
dG8gdGVybWluYXRlLgorICAvLyBDcmVhdGUgYSBwb3J0IHRvIHdhaXQgZm9yIHNvY2tldC90YXNr
L2V4Y2VwdGlvbiBldmVudHMuCiAgIHp4X3N0YXR1c190IHN0YXR1c196eDsKLSAgc3RhdHVzX3p4
ID0genhfb2JqZWN0X3dhaXRfYXN5bmMoY2hpbGRfcHJvY2Vzc18sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwIC8qIGtleSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWlhf
UFJPQ0VTU19URVJNSU5BVEVELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa
WF9XQUlUX0FTWU5DX09OQ0UpOworICB6eDo6cG9ydCBwb3J0OworICBzdGF0dXNfenggPSB6eDo6
cG9ydDo6Y3JlYXRlKDAsICZwb3J0KTsKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVz
X3p4ID09IFpYX09LKTsKIAotICAvLyBXYWl0IGZvciBpdCB0byB0ZXJtaW5hdGUsIG9yIGFuIGV4
Y2VwdGlvbiB0byBiZSByZWNlaXZlZC4KLSAgenhfcG9ydF9wYWNrZXRfdCBwYWNrZXQ7Ci0gIHN0
YXR1c196eCA9IHp4X3BvcnRfd2FpdChwb3J0XywgWlhfVElNRV9JTkZJTklURSwgJnBhY2tldCk7
CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0
ZS4KKyAgc3RhdHVzX3p4ID0gY2hpbGRfcHJvY2Vzc18ud2FpdF9hc3luYygKKyAgICAgIHBvcnQs
IGtQcm9jZXNzS2V5LCBaWF9QUk9DRVNTX1RFUk1JTkFURUQsIDApOwogICBHVEVTVF9ERUFUSF9U
RVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwogCi0gIGlmIChaWF9QS1RfSVNfRVhDRVBU
SU9OKHBhY2tldC50eXBlKSkgewotICAgIC8vIFByb2Nlc3MgZW5jb3VudGVyZWQgYW4gZXhjZXB0
aW9uLiBLaWxsIGl0IGRpcmVjdGx5IHJhdGhlciB0aGFuIGxldHRpbmcKLSAgICAvLyBvdGhlciBo
YW5kbGVycyBwcm9jZXNzIHRoZSBldmVudC4KLSAgICBzdGF0dXNfenggPSB6eF90YXNrX2tpbGwo
Y2hpbGRfcHJvY2Vzc18pOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9
PSBaWF9PSyk7CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBzb2NrZXQgdG8gYmUgcmVh
ZGFibGUgb3IgY2xvc2VkLgorICBzdGF0dXNfenggPSBzdGRlcnJfc29ja2V0Xy53YWl0X2FzeW5j
KAorICAgICAgcG9ydCwga1NvY2tldEtleSwgWlhfU09DS0VUX1JFQURBQkxFIHwgWlhfU09DS0VU
X1BFRVJfQ0xPU0VELCAwKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09
IFpYX09LKTsKKworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciBhbiBleGNlcHRpb24uCisgIHN0
YXR1c196eCA9IGV4Y2VwdGlvbl9jaGFubmVsXy53YWl0X2FzeW5jKAorICAgICAgcG9ydCwga0V4
Y2VwdGlvbktleSwgWlhfQ0hBTk5FTF9SRUFEQUJMRSwgMCk7CisgIEdURVNUX0RFQVRIX1RFU1Rf
Q0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKLSAgICAvLyBOb3cgd2FpdCBmb3IgfGNoaWxk
X3Byb2Nlc3NffCB0byB0ZXJtaW5hdGUuCi0gICAgenhfc2lnbmFsc190IHNpZ25hbHMgPSAwOwot
ICAgIHN0YXR1c196eCA9IHp4X29iamVjdF93YWl0X29uZSgKLSAgICAgICAgY2hpbGRfcHJvY2Vz
c18sIFpYX1BST0NFU1NfVEVSTUlOQVRFRCwgWlhfVElNRV9JTkZJTklURSwgJnNpZ25hbHMpOwor
ICBib29sIHByb2Nlc3NfdGVybWluYXRlZCA9IGZhbHNlOworICBib29sIHNvY2tldF9jbG9zZWQg
PSBmYWxzZTsKKyAgZG8geworICAgIHp4X3BvcnRfcGFja2V0X3QgcGFja2V0ID0ge307CisgICAg
c3RhdHVzX3p4ID0gcG9ydC53YWl0KHp4Ojp0aW1lOjppbmZpbml0ZSgpLCAmcGFja2V0KTsKICAg
ICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwotICAgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKHNpZ25hbHMgJiBaWF9QUk9DRVNTX1RFUk1JTkFURUQpOwotICB9
IGVsc2UgewotICAgIC8vIFByb2Nlc3MgdGVybWluYXRlZC4KLSAgICBHVEVTVF9ERUFUSF9URVNU
X0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOwotICAgIEdURVNUX0RF
QVRIX1RFU1RfQ0hFQ0tfKHBhY2tldC5zaWduYWwub2JzZXJ2ZWQgJiBaWF9QUk9DRVNTX1RFUk1J
TkFURUQpOwotICB9CisKKyAgICBpZiAocGFja2V0LmtleSA9PSBrRXhjZXB0aW9uS2V5KSB7Cisg
ICAgICAvLyBQcm9jZXNzIGVuY291bnRlcmVkIGFuIGV4Y2VwdGlvbi4gS2lsbCBpdCBkaXJlY3Rs
eSByYXRoZXIgdGhhbgorICAgICAgLy8gbGV0dGluZyBvdGhlciBoYW5kbGVycyBwcm9jZXNzIHRo
ZSBldmVudC4gV2Ugd2lsbCBnZXQgYSBrUHJvY2Vzc0tleQorICAgICAgLy8gZXZlbnQgd2hlbiB0
aGUgcHJvY2VzcyBhY3R1YWxseSB0ZXJtaW5hdGVzLgorICAgICAgc3RhdHVzX3p4ID0gY2hpbGRf
cHJvY2Vzc18ua2lsbCgpOworICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4
ID09IFpYX09LKTsKKyAgICB9IGVsc2UgaWYgKHBhY2tldC5rZXkgPT0ga1Byb2Nlc3NLZXkpIHsK
KyAgICAgIC8vIFByb2Nlc3MgdGVybWluYXRlZC4KKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hF
Q0tfKFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50eXBlKSk7CisgICAgICBHVEVTVF9ERUFU
SF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2VydmVkICYgWlhfUFJPQ0VTU19URVJNSU5B
VEVEKTsKKyAgICAgIHByb2Nlc3NfdGVybWluYXRlZCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChw
YWNrZXQua2V5ID09IGtTb2NrZXRLZXkpIHsKKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50eXBlKSk7CisgICAgICBpZiAocGFja2V0LnNp
Z25hbC5vYnNlcnZlZCAmIFpYX1NPQ0tFVF9SRUFEQUJMRSkgeworICAgICAgICAvLyBSZWFkIGRh
dGEgZnJvbSB0aGUgc29ja2V0LgorICAgICAgICBjb25zdGV4cHIgc2l6ZV90IGtCdWZmZXJTaXpl
ID0gMTAyNDsKKyAgICAgICAgZG8geworICAgICAgICAgIHNpemVfdCBvbGRfbGVuZ3RoID0gY2Fw
dHVyZWRfc3RkZXJyXy5sZW5ndGgoKTsKKyAgICAgICAgICBzaXplX3QgYnl0ZXNfcmVhZCA9IDA7
CisgICAgICAgICAgY2FwdHVyZWRfc3RkZXJyXy5yZXNpemUob2xkX2xlbmd0aCArIGtCdWZmZXJT
aXplKTsKKyAgICAgICAgICBzdGF0dXNfenggPSBzdGRlcnJfc29ja2V0Xy5yZWFkKAorICAgICAg
ICAgICAgICAwLCAmY2FwdHVyZWRfc3RkZXJyXy5mcm9udCgpICsgb2xkX2xlbmd0aCwga0J1ZmZl
clNpemUsCisgICAgICAgICAgICAgICZieXRlc19yZWFkKTsKKyAgICAgICAgICBjYXB0dXJlZF9z
dGRlcnJfLnJlc2l6ZShvbGRfbGVuZ3RoICsgYnl0ZXNfcmVhZCk7CisgICAgICAgIH0gd2hpbGUg
KHN0YXR1c196eCA9PSBaWF9PSyk7CisgICAgICAgIGlmIChzdGF0dXNfenggPT0gWlhfRVJSX1BF
RVJfQ0xPU0VEKSB7CisgICAgICAgICAgc29ja2V0X2Nsb3NlZCA9IHRydWU7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpY
X0VSUl9TSE9VTERfV0FJVCk7CisgICAgICAgICAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tldF8u
d2FpdF9hc3luYygKKyAgICAgICAgICAgICAgcG9ydCwga1NvY2tldEtleSwgWlhfU09DS0VUX1JF
QURBQkxFIHwgWlhfU09DS0VUX1BFRVJfQ0xPU0VELCAwKTsKKyAgICAgICAgICBHVEVTVF9ERUFU
SF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOworICAgICAgICB9CisgICAgICB9IGVs
c2UgeworICAgICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2Vy
dmVkICYgWlhfU09DS0VUX1BFRVJfQ0xPU0VEKTsKKyAgICAgICAgc29ja2V0X2Nsb3NlZCA9IHRy
dWU7CisgICAgICB9CisgICAgfQorICB9IHdoaWxlICghcHJvY2Vzc190ZXJtaW5hdGVkICYmICFz
b2NrZXRfY2xvc2VkKTsKIAogICBSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0ZSgpOwogCiAgIHp4
X2luZm9fcHJvY2Vzc190IGJ1ZmZlcjsKLSAgc3RhdHVzX3p4ID0genhfb2JqZWN0X2dldF9pbmZv
KAotICAgICAgY2hpbGRfcHJvY2Vzc18sCi0gICAgICBaWF9JTkZPX1BST0NFU1MsCi0gICAgICAm
YnVmZmVyLAotICAgICAgc2l6ZW9mKGJ1ZmZlciksCi0gICAgICBudWxscHRyLAotICAgICAgbnVs
bHB0cik7CisgIHN0YXR1c196eCA9IGNoaWxkX3Byb2Nlc3NfLmdldF9pbmZvKAorICAgICAgWlhf
SU5GT19QUk9DRVNTLCAmYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKICAgR1RF
U1RfREVBVEhfVEVTVF9DSEVDS18oYnVmZmVyLmV4aXRlZCk7CkBAIC05MzYsMjEgKzk3NSwyMCBA
QCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEZ1Y2hzaWFEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAg
IGNvbnN0IFRlc3RJbmZvKiBjb25zdCBpbmZvID0gaW1wbC0+Y3VycmVudF90ZXN0X2luZm8oKTsK
ICAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXggPSBpbmZvLT5yZXN1bHQoKS0+ZGVhdGhfdGVz
dF9jb3VudCgpOwogCi0gIGlmIChmbGFnICE9IE5VTEwpIHsKKyAgaWYgKGZsYWcgIT0gbnVsbHB0
cikgewogICAgIC8vIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCkgaGFzIHBlcmZvcm1l
ZCBhbGwgdGhlIG5lY2Vzc2FyeQogICAgIC8vIHByb2Nlc3NpbmcuCiAgICAgc2V0X3dyaXRlX2Zk
KGtGdWNoc2lhUmVhZFBpcGVGZCk7CiAgICAgcmV0dXJuIEVYRUNVVEVfVEVTVDsKICAgfQogCi0g
IENhcHR1cmVTdGRlcnIoKTsKICAgLy8gRmx1c2ggdGhlIGxvZyBidWZmZXJzIHNpbmNlIHRoZSBs
b2cgc3RyZWFtcyBhcmUgc2hhcmVkIHdpdGggdGhlIGNoaWxkLgogICBGbHVzaEluZm9Mb2coKTsK
IAogICAvLyBCdWlsZCB0aGUgY2hpbGQgcHJvY2VzcyBjb21tYW5kIGxpbmUuCi0gIGNvbnN0IHN0
ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0KLSAgICAgIHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1Rf
RkxBR19QUkVGSVhfICsga0ZpbHRlckZsYWcgKyAiPSIKLSAgICAgICsgaW5mby0+dGVzdF9jYXNl
X25hbWUoKSArICIuIiArIGluZm8tPm5hbWUoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsdGVy
X2ZsYWcgPSBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga0ZpbHRlckZsYWcgKyAiPSIgKyBpbmZvLT50ZXN0
X3N1aXRlX25hbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsg
aW5mby0+bmFtZSgpOwogICBjb25zdCBzdGQ6OnN0cmluZyBpbnRlcm5hbF9mbGFnID0KICAgICAg
IHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ludGVybmFsUnVuRGVh
dGhUZXN0RmxhZyArICI9IgogICAgICAgKyBmaWxlXyArICJ8IgpAQCAtOTY0LDM1ICsxMDAyLDY4
IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgRnVjaHNpYURlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsK
ICAgLy8gQnVpbGQgdGhlIHBpcGUgZm9yIGNvbW11bmljYXRpb24gd2l0aCB0aGUgY2hpbGQuCiAg
IHp4X3N0YXR1c190IHN0YXR1czsKICAgenhfaGFuZGxlX3QgY2hpbGRfcGlwZV9oYW5kbGU7Ci0g
IHVpbnQzMl90IHR5cGU7Ci0gIHN0YXR1cyA9IGZkaW9fcGlwZV9oYWxmKCZjaGlsZF9waXBlX2hh
bmRsZSwgJnR5cGUpOwotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPj0gMCk7Ci0g
IHNldF9yZWFkX2ZkKHN0YXR1cyk7CisgIGludCBjaGlsZF9waXBlX2ZkOworICBzdGF0dXMgPSBm
ZGlvX3BpcGVfaGFsZigmY2hpbGRfcGlwZV9mZCwgJmNoaWxkX3BpcGVfaGFuZGxlKTsKKyAgR1RF
U1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKKyAgc2V0X3JlYWRfZmQoY2hp
bGRfcGlwZV9mZCk7CiAKICAgLy8gU2V0IHRoZSBwaXBlIGhhbmRsZSBmb3IgdGhlIGNoaWxkLgot
ICBmZGlvX3NwYXduX2FjdGlvbl90IGFkZF9oYW5kbGVfYWN0aW9uID0ge307Ci0gIGFkZF9oYW5k
bGVfYWN0aW9uLmFjdGlvbiA9IEZESU9fU1BBV05fQUNUSU9OX0FERF9IQU5ETEU7Ci0gIGFkZF9o
YW5kbGVfYWN0aW9uLmguaWQgPSBQQV9ITkQodHlwZSwga0Z1Y2hzaWFSZWFkUGlwZUZkKTsKLSAg
YWRkX2hhbmRsZV9hY3Rpb24uaC5oYW5kbGUgPSBjaGlsZF9waXBlX2hhbmRsZTsKKyAgZmRpb19z
cGF3bl9hY3Rpb25fdCBzcGF3bl9hY3Rpb25zWzJdID0ge307CisgIGZkaW9fc3Bhd25fYWN0aW9u
X3QqIGFkZF9oYW5kbGVfYWN0aW9uID0gJnNwYXduX2FjdGlvbnNbMF07CisgIGFkZF9oYW5kbGVf
YWN0aW9uLT5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElPTl9BRERfSEFORExFOworICBhZGRfaGFu
ZGxlX2FjdGlvbi0+aC5pZCA9IFBBX0hORChQQV9GRCwga0Z1Y2hzaWFSZWFkUGlwZUZkKTsKKyAg
YWRkX2hhbmRsZV9hY3Rpb24tPmguaGFuZGxlID0gY2hpbGRfcGlwZV9oYW5kbGU7CisKKyAgLy8g
Q3JlYXRlIGEgc29ja2V0IHBhaXIgd2lsbCBiZSB1c2VkIHRvIHJlY2VpdmUgdGhlIGNoaWxkIHBy
b2Nlc3MnIHN0ZGVyci4KKyAgeng6OnNvY2tldCBzdGRlcnJfcHJvZHVjZXJfc29ja2V0OworICBz
dGF0dXMgPQorICAgICAgeng6OnNvY2tldDo6Y3JlYXRlKDAsICZzdGRlcnJfcHJvZHVjZXJfc29j
a2V0LCAmc3RkZXJyX3NvY2tldF8pOworICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMg
Pj0gMCk7CisgIGludCBzdGRlcnJfcHJvZHVjZXJfZmQgPSAtMTsKKyAgc3RhdHVzID0KKyAgICAg
IGZkaW9fZmRfY3JlYXRlKHN0ZGVycl9wcm9kdWNlcl9zb2NrZXQucmVsZWFzZSgpLCAmc3RkZXJy
X3Byb2R1Y2VyX2ZkKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID49IDApOwog
Ci0gIC8vIFNwYXduIHRoZSBjaGlsZCBwcm9jZXNzLgotICBzdGF0dXMgPSBmZGlvX3NwYXduX2V0
YyhaWF9IQU5ETEVfSU5WQUxJRCwgRkRJT19TUEFXTl9DTE9ORV9BTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3MuQXJndigpWzBdLCBhcmdzLkFyZ3YoKSwgbnVsbHB0ciwgMSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgJmFkZF9oYW5kbGVfYWN0aW9uLCAmY2hpbGRfcHJvY2Vz
c18sIG51bGxwdHIpOworICAvLyBNYWtlIHRoZSBzdGRlcnIgc29ja2V0IG5vbmJsb2NraW5nLgor
ICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhmY250bChzdGRlcnJfcHJvZHVjZXJfZmQsIEZfU0VU
RkwsIDApID09IDApOworCisgIGZkaW9fc3Bhd25fYWN0aW9uX3QqIGFkZF9zdGRlcnJfYWN0aW9u
ID0gJnNwYXduX2FjdGlvbnNbMV07CisgIGFkZF9zdGRlcnJfYWN0aW9uLT5hY3Rpb24gPSBGRElP
X1NQQVdOX0FDVElPTl9DTE9ORV9GRDsKKyAgYWRkX3N0ZGVycl9hY3Rpb24tPmZkLmxvY2FsX2Zk
ID0gc3RkZXJyX3Byb2R1Y2VyX2ZkOworICBhZGRfc3RkZXJyX2FjdGlvbi0+ZmQudGFyZ2V0X2Zk
ID0gU1RERVJSX0ZJTEVOTzsKKworICAvLyBDcmVhdGUgYSBjaGlsZCBqb2IuCisgIHp4X2hhbmRs
ZV90IGNoaWxkX2pvYiA9IFpYX0hBTkRMRV9JTlZBTElEOworICBzdGF0dXMgPSB6eF9qb2JfY3Jl
YXRlKHp4X2pvYl9kZWZhdWx0KCksIDAsICYgY2hpbGRfam9iKTsKKyAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKKyAgenhfcG9saWN5X2Jhc2ljX3QgcG9saWN5Owor
ICBwb2xpY3kuY29uZGl0aW9uID0gWlhfUE9MX05FV19BTlk7CisgIHBvbGljeS5wb2xpY3kgPSBa
WF9QT0xfQUNUSU9OX0FMTE9XOworICBzdGF0dXMgPSB6eF9qb2Jfc2V0X3BvbGljeSgKKyAgICAg
IGNoaWxkX2pvYiwgWlhfSk9CX1BPTF9SRUxBVElWRSwgWlhfSk9CX1BPTF9CQVNJQywgJnBvbGlj
eSwgMSk7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CiAKLSAg
Ly8gQ3JlYXRlIGFuIGV4Y2VwdGlvbiBwb3J0IGFuZCBhdHRhY2ggaXQgdG8gdGhlIHxjaGlsZF9w
cm9jZXNzX3wsIHRvIGFsbG93CisgIC8vIENyZWF0ZSBhbiBleGNlcHRpb24gY2hhbm5lbCBhdHRh
Y2hlZCB0byB0aGUgfGNoaWxkX2pvYnwsIHRvIGFsbG93CiAgIC8vIHVzIHRvIHN1cHByZXNzIHRo
ZSBzeXN0ZW0gZGVmYXVsdCBleGNlcHRpb24gaGFuZGxlciBmcm9tIGZpcmluZy4KLSAgc3RhdHVz
ID0genhfcG9ydF9jcmVhdGUoMCwgJnBvcnRfKTsKKyAgc3RhdHVzID0KKyAgICAgIHp4X3Rhc2tf
Y3JlYXRlX2V4Y2VwdGlvbl9jaGFubmVsKAorICAgICAgICAgIGNoaWxkX2pvYiwgMCwgZXhjZXB0
aW9uX2NoYW5uZWxfLnJlc2V0X2FuZF9nZXRfYWRkcmVzcygpKTsKICAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgc3RhdHVzID0genhfdGFza19iaW5kX2V4Y2Vw
dGlvbl9wb3J0KAotICAgICAgY2hpbGRfcHJvY2Vzc18sIHBvcnRfLCAwIC8qIGtleSAqLywgMCAv
Km9wdGlvbnMgKi8pOworCisgIC8vIFNwYXduIHRoZSBjaGlsZCBwcm9jZXNzLgorICBzdGF0dXMg
PSBmZGlvX3NwYXduX2V0YygKKyAgICAgIGNoaWxkX2pvYiwgRkRJT19TUEFXTl9DTE9ORV9BTEws
IGFyZ3MuQXJndigpWzBdLCBhcmdzLkFyZ3YoKSwgbnVsbHB0ciwKKyAgICAgIDIsIHNwYXduX2Fj
dGlvbnMsIGNoaWxkX3Byb2Nlc3NfLnJlc2V0X2FuZF9nZXRfYWRkcmVzcygpLCBudWxscHRyKTsK
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKIAogICBzZXRfc3Bh
d25lZCh0cnVlKTsKICAgcmV0dXJuIE9WRVJTRUVfVEVTVDsKIH0KIAorc3RkOjpzdHJpbmcgRnVj
aHNpYURlYXRoVGVzdDo6R2V0RXJyb3JMb2dzKCkgeworICByZXR1cm4gY2FwdHVyZWRfc3RkZXJy
XzsKK30KKwogI2Vsc2UgIC8vIFdlIGFyZSBuZWl0aGVyIG9uIFdpbmRvd3MsIG5vciBvbiBGdWNo
c2lhLgogCiAvLyBGb3JraW5nRGVhdGhUZXN0IHByb3ZpZGVzIGltcGxlbWVudGF0aW9ucyBmb3Ig
bW9zdCBvZiB0aGUgYWJzdHJhY3QKQEAgLTEwMDAsMTAgKzEwNzEsMTAgQEAgRGVhdGhUZXN0OjpU
ZXN0Um9sZSBGdWNoc2lhRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogLy8gbGVmdCB1bmRlZmlu
ZWQuCiBjbGFzcyBGb3JraW5nRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1
YmxpYzoKLSAgRm9ya2luZ0RlYXRoVGVzdChjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJF
KiByZWdleCk7CisgIEZvcmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRj
aGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcik7CiAKICAgLy8gQWxsIG9mIHRoZXNlIHZp
cnR1YWwgZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSBEZWF0aFRlc3QuCi0gIHZpcnR1YWwg
aW50IFdhaXQoKTsKKyAgaW50IFdhaXQoKSBvdmVycmlkZTsKIAogIHByb3RlY3RlZDoKICAgdm9p
ZCBzZXRfY2hpbGRfcGlkKHBpZF90IGNoaWxkX3BpZCkgeyBjaGlsZF9waWRfID0gY2hpbGRfcGlk
OyB9CkBAIC0xMDE0LDkgKzEwODUsOSBAQCBjbGFzcyBGb3JraW5nRGVhdGhUZXN0IDogcHVibGlj
IERlYXRoVGVzdEltcGwgewogfTsKIAogLy8gQ29uc3RydWN0cyBhIEZvcmtpbmdEZWF0aFRlc3Qu
Ci1Gb3JraW5nRGVhdGhUZXN0OjpGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVt
ZW50LCBjb25zdCBSRSogYV9yZWdleCkKLSAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpLAotICAgICAgY2hpbGRfcGlkXygtMSkge30KK0ZvcmtpbmdEZWF0aFRlc3Q6OkZv
cmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyKQor
ICAgIDogRGVhdGhUZXN0SW1wbChhX3N0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpKSwgY2hp
bGRfcGlkXygtMSkge30KIAogLy8gV2FpdHMgZm9yIHRoZSBjaGlsZCBpbiBhIGRlYXRoIHRlc3Qg
dG8gZXhpdCwgcmV0dXJuaW5nIGl0cyBleGl0CiAvLyBzdGF0dXMsIG9yIDAgaWYgbm8gY2hpbGQg
cHJvY2VzcyBleGlzdHMuICBBcyBhIHNpZGUgZWZmZWN0LCBzZXRzIHRoZQpAQCAtMTAzNyw5ICsx
MTA4LDkgQEAgaW50IEZvcmtpbmdEZWF0aFRlc3Q6OldhaXQoKSB7CiAvLyBpbiB0aGUgY2hpbGQg
cHJvY2Vzcy4KIGNsYXNzIE5vRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0
IHsKICBwdWJsaWM6Ci0gIE5vRXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwg
Y29uc3QgUkUqIGFfcmVnZXgpIDoKLSAgICAgIEZvcmtpbmdEZWF0aFRlc3QoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpIHsgfQotICB2aXJ0dWFsIFRlc3RSb2xlIEFzc3VtZVJvbGUoKTsKKyAgTm9FeGVj
RGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3Ry
aW5nJj4gbWF0Y2hlcikKKyAgICAgIDogRm9ya2luZ0RlYXRoVGVzdChhX3N0YXRlbWVudCwgc3Rk
Ojptb3ZlKG1hdGNoZXIpKSB7fQorICBUZXN0Um9sZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7CiB9
OwogCiAvLyBUaGUgQXNzdW1lUm9sZSBwcm9jZXNzIGZvciBhIGZvcmstYW5kLXJ1biBkZWF0aCB0
ZXN0LiAgSXQgaW1wbGVtZW50cyBhCkBAIC0xMDkyLDEwICsxMTYzLDEzIEBAIERlYXRoVGVzdDo6
VGVzdFJvbGUgTm9FeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogLy8gb25seSB0aGlzIHNw
ZWNpZmljIGRlYXRoIHRlc3QgdG8gYmUgcnVuLgogY2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1Ymxp
YyBGb3JraW5nRGVhdGhUZXN0IHsKICBwdWJsaWM6Ci0gIEV4ZWNEZWF0aFRlc3QoY29uc3QgY2hh
ciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lKSA6Ci0gICAgICBGb3JraW5nRGVhdGhUZXN0KGFfc3RhdGVt
ZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHsgfQotICB2aXJ0dWFsIFRl
c3RSb2xlIEFzc3VtZVJvbGUoKTsKKyAgRXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRl
bWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCisgICAgICA6IEZvcmtpbmdEZWF0aFRlc3Qo
YV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSksCisgICAgICAgIGZpbGVfKGZpbGUpLAor
ICAgICAgICBsaW5lXyhsaW5lKSB7fQorICBUZXN0Um9sZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7
CisKICBwcml2YXRlOgogICBzdGF0aWMgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0QXJn
dnNGb3JEZWF0aFRlc3RDaGlsZFByb2Nlc3MoKSB7CiAgICAgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gYXJncyA9IEdldEluamVjdGFibGVBcmd2cygpOwpAQCAtMTExNSw5ICsxMTg5LDcgQEAg
Y2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0IHsKIC8vIFV0aWxp
dHkgY2xhc3MgZm9yIGFjY3VtdWxhdGluZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLgogY2xhc3Mg
QXJndW1lbnRzIHsKICBwdWJsaWM6Ci0gIEFyZ3VtZW50cygpIHsKLSAgICBhcmdzXy5wdXNoX2Jh
Y2soTlVMTCk7Ci0gIH0KKyAgQXJndW1lbnRzKCkgeyBhcmdzXy5wdXNoX2JhY2sobnVsbHB0cik7
IH0KIAogICB+QXJndW1lbnRzKCkgewogICAgIGZvciAoc3RkOjp2ZWN0b3I8Y2hhcio+OjppdGVy
YXRvciBpID0gYXJnc18uYmVnaW4oKTsgaSAhPSBhcmdzXy5lbmQoKTsKQEAgLTExNTIsNyArMTIy
NCw5IEBAIHN0cnVjdCBFeGVjRGVhdGhUZXN0QXJncyB7CiAgIGludCBjbG9zZV9mZDsgICAgICAg
Ly8gRmlsZSBkZXNjcmlwdG9yIHRvIGNsb3NlOyB0aGUgcmVhZCBlbmQgb2YgYSBwaXBlCiB9Owog
Ci0jICBpZiAhR1RFU1RfT1NfUU5YCisjICBpZiBHVEVTVF9PU19RTlgKK2V4dGVybiAiQyIgY2hh
cioqIGVudmlyb247CisjICBlbHNlICAvLyBHVEVTVF9PU19RTlgKIC8vIFRoZSBtYWluIGZ1bmN0
aW9uIGZvciBhIHRocmVhZHNhZmUtc3R5bGUgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzLgogLy8g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9uZSgpLWVkIHByb2Nlc3MgYW5kIHRodXMg
bXVzdCBhdm9pZAogLy8gYW55IHBvdGVudGlhbGx5IHVuc2FmZSBvcGVyYXRpb25zIGxpa2UgbWFs
bG9jIG9yIGxpYmMgZnVuY3Rpb25zLgpAQCAtMTE3MiwyMSArMTI0NiwxOCBAQCBzdGF0aWMgaW50
IEV4ZWNEZWF0aFRlc3RDaGlsZE1haW4odm9pZCogY2hpbGRfYXJnKSB7CiAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKICAgfQogCi0gIC8vIFdlIGNhbiBzYWZlbHkgY2FsbCBleGVjdmUoKSBhcyBp
dCdzIGEgZGlyZWN0IHN5c3RlbSBjYWxsLiAgV2UKKyAgLy8gV2UgY2FuIHNhZmVseSBjYWxsIGV4
ZWN2KCkgYXMgaXQncyBhbG1vc3QgYSBkaXJlY3Qgc3lzdGVtIGNhbGwuIFdlCiAgIC8vIGNhbm5v
dCB1c2UgZXhlY3ZwKCkgYXMgaXQncyBhIGxpYmMgZnVuY3Rpb24gYW5kIHRodXMgcG90ZW50aWFs
bHkKLSAgLy8gdW5zYWZlLiAgU2luY2UgZXhlY3ZlKCkgZG9lc24ndCBzZWFyY2ggdGhlIFBBVEgs
IHRoZSB1c2VyIG11c3QKKyAgLy8gdW5zYWZlLiAgU2luY2UgZXhlY3YoKSBkb2Vzbid0IHNlYXJj
aCB0aGUgUEFUSCwgdGhlIHVzZXIgbXVzdAogICAvLyBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2
aWEgYSB2YWxpZCBwYXRoIHRoYXQgY29udGFpbnMgYXQgbGVhc3QKICAgLy8gb25lIHBhdGggc2Vw
YXJhdG9yLgotICAvLyBXZSBoYXZlIHJlcGxhY2VkIGV4ZWN2ZSgpIHdpdGggZXhlY3YoKSBmb3Ig
V2ViS2l0IHRvIGF2b2lkIHVzaW5nCi0gIC8vIGVudmlyb24uIEl0IHNob3VsZCBiZSBzYWZlIGJl
Y2F1c2UgZXhlY3YoKSBpcyBqdXN0IGEgc2ltcGxlIHdyYXBwZXIKLSAgLy8gb2YgZXhlY3ZlKCku
CiAgIGV4ZWN2KGFyZ3MtPmFyZ3ZbMF0sIGFyZ3MtPmFyZ3YpOwogICBEZWF0aFRlc3RBYm9ydChz
dGQ6OnN0cmluZygiZXhlY3YoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4uKSBpbiAiICsKICAg
ICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsgIiBmYWlsZWQ6ICIgKwogICAgICAgICAgICAg
ICAgICBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbigpKTsKICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsK
IH0KLSMgIGVuZGlmICAvLyAhR1RFU1RfT1NfUU5YCisjICBlbmRpZiAgLy8gR1RFU1RfT1NfUU5Y
CiAKICMgIGlmIEdURVNUX0hBU19DTE9ORQogLy8gVHdvIHV0aWxpdHkgcm91dGluZXMgdGhhdCB0
b2dldGhlciBkZXRlcm1pbmUgdGhlIGRpcmVjdGlvbiB0aGUgc3RhY2sKQEAgLTEyMDAsMTUgKzEy
NzEsMjQgQEAgc3RhdGljIGludCBFeGVjRGVhdGhUZXN0Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2Fy
ZykgewogLy8gY29ycmVjdCBhbnN3ZXIuCiBzdGF0aWMgdm9pZCBTdGFja0xvd2VyVGhhbkFkZHJl
c3MoY29uc3Qgdm9pZCogcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wqIHJlc3VsdCkgR1RFU1RfTk9fSU5MSU5FXzsKKy8vIE1ha2Ugc3VyZSBzYW5pdGl6ZXJzIGRv
IG5vdCB0YW1wZXIgd2l0aCB0aGUgc3RhY2sgaGVyZS4KKy8vIElkZWFsbHksIHdlIHdhbnQgdG8g
dXNlIGBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzc2AgaW5zdGVhZCBvZiBhIGxvY2FsIHZhcmlhYmxl
CisvLyBhZGRyZXNzIHdpdGggc2FuaXRpemVyIGRpc2FibGVkLCBidXQgaXQgZG9lcyBub3Qgd29y
ayB3aGVuIHRoZQorLy8gY29tcGlsZXIgb3B0aW1pemVzIHRoZSBzdGFjayBmcmFtZSBvdXQsIHdo
aWNoIGhhcHBlbnMgb24gUG93ZXJQQyB0YXJnZXRzLgorLy8gSFdBZGRyZXNzU2FuaXRpemVyIGFk
ZCBhIHJhbmRvbSB0YWcgdG8gdGhlIE1TQiBvZiB0aGUgbG9jYWwgdmFyaWFibGUgYWRkcmVzcywK
Ky8vIG1ha2luZyBjb21wYXJpc29uIHJlc3VsdCB1bnByZWRpY3RhYmxlLgorR1RFU1RfQVRUUklC
VVRFX05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdB
RERSRVNTXwogc3RhdGljIHZvaWQgU3RhY2tMb3dlclRoYW5BZGRyZXNzKGNvbnN0IHZvaWQqIHB0
ciwgYm9vbCogcmVzdWx0KSB7Ci0gIGludCBkdW1teTsKLSAgKnJlc3VsdCA9ICgmZHVtbXkgPCBw
dHIpOworICBpbnQgZHVtbXkgPSAwOworICAqcmVzdWx0ID0gc3RkOjpsZXNzPGNvbnN0IHZvaWQq
PigpKCZkdW1teSwgcHRyKTsKIH0KIAogLy8gTWFrZSBzdXJlIEFkZHJlc3NTYW5pdGl6ZXIgZG9l
cyBub3QgdGFtcGVyIHdpdGggdGhlIHN0YWNrIGhlcmUuCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBz
dGF0aWMgYm9vbCBTdGFja0dyb3dzRG93bigpIHsKLSAgaW50IGR1bW15OworICBpbnQgZHVtbXkg
PSAwOwogICBib29sIHJlc3VsdDsKICAgU3RhY2tMb3dlclRoYW5BZGRyZXNzKCZkdW1teSwgJnJl
c3VsdCk7CiAgIHJldHVybiByZXN1bHQ7CkBAIC0xMjUxLDcgKzEzMzEsNyBAQCBzdGF0aWMgcGlk
X3QgRXhlY0RlYXRoVGVzdFNwYXduQ2hpbGQoY2hhciogY29uc3QqIGFyZ3YsIGludCBjbG9zZV9m
ZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkX2ZsYWdzIHwg
RkRfQ0xPRVhFQykpOwogICBzdHJ1Y3QgaW5oZXJpdGFuY2UgaW5oZXJpdCA9IHswfTsKICAgLy8g
c3Bhd24gaXMgYSBzeXN0ZW0gY2FsbC4KLSAgY2hpbGRfcGlkID0gc3Bhd24oYXJncy5hcmd2WzBd
LCAwLCBOVUxMLCAmaW5oZXJpdCwgYXJncy5hcmd2LCBHZXRFbnZpcm9uKCkpOworICBjaGlsZF9w
aWQgPSBzcGF3bihhcmdzLmFyZ3ZbMF0sIDAsIG51bGxwdHIsICZpbmhlcml0LCBhcmdzLmFyZ3Ys
IGVudmlyb24pOwogICAvLyBSZXN0b3JlcyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4K
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNoZGlyKGN3ZF9mZCkgIT0gLTEpOwogICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGNsb3NlKGN3ZF9mZCkpOwpAQCAtMTI3NSw5ICsx
MzU1LDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0
KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKIAogICBpZiAoIXVzZV9mb3JrKSB7CiAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc3RhY2tfZ3Jvd3NfZG93biA9IFN0YWNrR3Jvd3NEb3duKCk7Ci0gICAgY29u
c3Qgc2l6ZV90IHN0YWNrX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworICAgIGNvbnN0IGF1dG8gc3Rh
Y2tfc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oZ2V0cGFnZXNpemUoKSAqIDIpOwogICAgIC8v
IE1NQVBfQU5PTllNT1VTIGlzIG5vdCBkZWZpbmVkIG9uIE1hYywgc28gd2UgdXNlIE1BUF9BTk9O
IGluc3RlYWQuCi0gICAgdm9pZCogY29uc3Qgc3RhY2sgPSBtbWFwKE5VTEwsIHN0YWNrX3NpemUs
IFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisgICAgdm9pZCogY29uc3Qgc3RhY2sgPSBtbWFwKG51
bGxwdHIsIHN0YWNrX3NpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1BUF9BTk9OIHwgTUFQX1BSSVZBVEUsIC0xLCAwKTsKICAgICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLXyhzdGFjayAhPSBNQVBfRkFJTEVEKTsKIApAQCAtMTI5MSw4ICsx
MzcxLDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0
KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKICAgICB2b2lkKiBjb25zdCBzdGFja190b3AgPQogICAg
ICAgICBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2spICsKICAgICAgICAgICAgIChzdGFja19ncm93
c19kb3duID8gc3RhY2tfc2l6ZSAtIGtNYXhTdGFja0FsaWdubWVudCA6IDApOwotICAgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YWNrX3NpemUgPiBrTWF4U3RhY2tBbGlnbm1lbnQgJiYKLSAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oc3RhY2tfdG9wKSAlIGtNYXhTdGFja0Fs
aWdubWVudCA9PSAwKTsKKyAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8c2l6ZV90PihzdGFja19zaXplKSA+IGtNYXhTdGFja0FsaWdubWVudCAmJgorICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhY2tfdG9wKSAlIGtNYXhTdGFja0Fs
aWdubWVudCA9PSAwKTsKIAogICAgIGNoaWxkX3BpZCA9IGNsb25lKCZFeGVjRGVhdGhUZXN0Q2hp
bGRNYWluLCBzdGFja190b3AsIFNJR0NITEQsICZhcmdzKTsKIApAQCAtMTMwOSw3ICsxMzkwLDcg
QEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2
LCBpbnQgY2xvc2VfZmQpIHsKICMgIGVuZGlmICAvLyBHVEVTVF9PU19RTlgKICMgIGlmIEdURVNU
X09TX0xJTlVYCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfU1lTQ0FMTF8oCi0gICAgICBzaWdh
Y3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0aW9uLCBOVUxMKSk7CisgICAgICBzaWdh
Y3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0aW9uLCBudWxscHRyKSk7CiAjICBlbmRp
ZiAgLy8gR1RFU1RfT1NfTElOVVgKIAogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhjaGlsZF9w
aWQgIT0gLTEpOwpAQCAtMTMyNyw3ICsxNDA4LDcgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVj
RGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9
IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAgIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4
ID0gaW5mby0+cmVzdWx0KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBO
VUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICBzZXRfd3JpdGVfZmQoZmxhZy0+
d3JpdGVfZmQoKSk7CiAgICAgcmV0dXJuIEVYRUNVVEVfVEVTVDsKICAgfQpAQCAtMTMzOCw5ICsx
NDE5LDkgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkg
ewogICAvLyBpdCBiZSBjbG9zZWQgd2hlbiB0aGUgY2hpbGQgcHJvY2VzcyBkb2VzIGFuIGV4ZWM6
CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZjbnRsKHBpcGVfZmRbMV0sIEZfU0VURkQsIDAp
ICE9IC0xKTsKIAotICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6
OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iCi0g
ICAgICArIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9G
TEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJG
bGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
aW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJF
RklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgKyAiPSIKICAgICAgICsgZmlsZV8gKyAi
fCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsgInwiCkBAIC0xMzczLDcgKzE0NTQsOCBA
QCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEV4ZWNEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAvLyBi
eSB0aGUgInRlc3QiIGFyZ3VtZW50IHRvIGl0cyBhZGRyZXNzLiAgSWYgdGhlIHRlc3Qgc2hvdWxk
IGJlCiAvLyBza2lwcGVkLCBzZXRzIHRoYXQgcG9pbnRlciB0byBOVUxMLiAgUmV0dXJucyB0cnVl
LCB1bmxlc3MgdGhlCiAvLyBmbGFnIGlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlLgotYm9vbCBE
ZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29u
c3QgUkUqIHJlZ2V4LAorYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0
IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
YXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIFVuaXRUZXN0
SW1wbCogY29uc3QgaW1wbCA9IEdldFVuaXRUZXN0SW1wbCgpOwpAQCAtMTM4Miw3ICsxNDY0LDcg
QEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRl
bWVudCwgY29uc3QgUkUqIHJlZ2V4LAogICBjb25zdCBpbnQgZGVhdGhfdGVzdF9pbmRleCA9IGlt
cGwtPmN1cnJlbnRfdGVzdF9pbmZvKCkKICAgICAgIC0+aW5jcmVtZW50X2RlYXRoX3Rlc3RfY291
bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsK
ICAgICBpZiAoZGVhdGhfdGVzdF9pbmRleCA+IGZsYWctPmluZGV4KCkpIHsKICAgICAgIERlYXRo
VGVzdDo6c2V0X2xhc3RfZGVhdGhfdGVzdF9tZXNzYWdlKAogICAgICAgICAgICJEZWF0aCB0ZXN0
IGNvdW50ICgiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGRlYXRoX3Rlc3RfaW5kZXgpCkBAIC0xMzkz
LDcgKzE0NzUsNyBAQCBib29sIERlZmF1bHREZWF0aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29uc3Qg
Y2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCiAKICAgICBpZiAoIShmbGFnLT5maWxl
KCkgPT0gZmlsZSAmJiBmbGFnLT5saW5lKCkgPT0gbGluZSAmJgogICAgICAgICAgIGZsYWctPmlu
ZGV4KCkgPT0gZGVhdGhfdGVzdF9pbmRleCkpIHsKLSAgICAgICp0ZXN0ID0gTlVMTDsKKyAgICAg
ICp0ZXN0ID0gbnVsbHB0cjsKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgfQpAQCAtMTQw
MiwyMiArMTQ4NCwyMiBAQCBib29sIERlZmF1bHREZWF0aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29u
c3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCiAKICAgaWYgKEdURVNUX0ZMQUco
ZGVhdGhfdGVzdF9zdHlsZSkgPT0gInRocmVhZHNhZmUiIHx8CiAgICAgICBHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0ID0gbmV3IFdpbmRvd3NEZWF0
aFRlc3Qoc3RhdGVtZW50LCByZWdleCwgZmlsZSwgbGluZSk7CisgICAgKnRlc3QgPSBuZXcgV2lu
ZG93c0RlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSwgZmlsZSwgbGluZSk7
CiAgIH0KIAogIyBlbGlmIEdURVNUX09TX0ZVQ0hTSUEKIAogICBpZiAoR1RFU1RfRkxBRyhkZWF0
aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIgfHwKICAgICAgIEdURVNUX0ZMQUcoZGVhdGhf
dGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRlc3QgPSBuZXcgRnVjaHNpYURlYXRoVGVz
dChzdGF0ZW1lbnQsIHJlZ2V4LCBmaWxlLCBsaW5lKTsKKyAgICAqdGVzdCA9IG5ldyBGdWNoc2lh
RGVhdGhUZXN0KHN0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpLCBmaWxlLCBsaW5lKTsKICAg
fQogCiAjIGVsc2UKIAogICBpZiAoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhy
ZWFkc2FmZSIpIHsKLSAgICAqdGVzdCA9IG5ldyBFeGVjRGVhdGhUZXN0KHN0YXRlbWVudCwgcmVn
ZXgsIGZpbGUsIGxpbmUpOworICAgICp0ZXN0ID0gbmV3IEV4ZWNEZWF0aFRlc3Qoc3RhdGVtZW50
LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZpbGUsIGxpbmUpOwogICB9IGVsc2UgaWYgKEdURVNUX0ZM
QUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRlc3QgPSBuZXcgTm9FeGVj
RGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgpOworICAgICp0ZXN0ID0gbmV3IE5vRXhlY0RlYXRo
VGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSk7CiAgIH0KIAogIyBlbmRpZiAgLy8g
R1RFU1RfT1NfV0lORE9XUwpAQCAtMTQ0Nyw4ICsxNTI5LDYgQEAgc3RhdGljIGludCBHZXRTdGF0
dXNGaWxlRGVzY3JpcHRvcih1bnNpZ25lZCBpbnQgcGFyZW50X3Byb2Nlc3NfaWQsCiAgICAgICAg
ICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHBhcmVudF9wcm9jZXNzX2lkKSk7CiAgIH0K
IAotICAvLyBGSVhNRTogUmVwbGFjZSB0aGUgZm9sbG93aW5nIGNoZWNrIHdpdGggYQotICAvLyBj
b21waWxlLXRpbWUgYXNzZXJ0aW9uIHdoZW4gYXZhaWxhYmxlLgogICBHVEVTVF9DSEVDS18oc2l6
ZW9mKEhBTkRMRSkgPD0gc2l6ZW9mKHNpemVfdCkpOwogCiAgIGNvbnN0IEhBTkRMRSB3cml0ZV9o
YW5kbGUgPQpAQCAtMTUwNCw3ICsxNTg0LDcgQEAgc3RhdGljIGludCBHZXRTdGF0dXNGaWxlRGVz
Y3JpcHRvcih1bnNpZ25lZCBpbnQgcGFyZW50X3Byb2Nlc3NfaWQsCiAvLyBpbml0aWFsaXplZCBm
cm9tIHRoZSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSBmbGFnIGlmCiAvLyB0
aGUgZmxhZyBpcyBzcGVjaWZpZWQ7IG90aGVyd2lzZSByZXR1cm5zIE5VTEwuCiBJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCkgewotICBpZiAo
R1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPT0gIiIpIHJldHVybiBOVUxMOwor
ICBpZiAoR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPT0gIiIpIHJldHVybiBu
dWxscHRyOwogCiAgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUIGltcGxpZXMgdGhhdCB3ZSBoYXZl
IDo6c3RkOjpzdHJpbmcsIHNvIHdlCiAgIC8vIGNhbiB1c2UgaXQgaGVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1maWxlcGF0aC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1maWxlcGF0aC5jYwppbmRleCBhN2U2NWMwODJhNzVm
YzZmYjAzOGEwMjNkNWIxZDNlMDllNDc5ZjExLi5hZjI5NzY4NDAzMWNkMjU3YjMyMWZhOTg0YmI1
NzBhZjRjOWEyM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QtZmlsZXBhdGguY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWZp
bGVwYXRoLmNjCkBAIC0zOCw5ICszOCw2IEBACiAjZWxpZiBHVEVTVF9PU19XSU5ET1dTCiAjIGlu
Y2x1ZGUgPGRpcmVjdC5oPgogIyBpbmNsdWRlIDxpby5oPgotI2VsaWYgR1RFU1RfT1NfU1lNQklB
TgotLy8gU3ltYmlhbiBPcGVuQyBoYXMgUEFUSF9NQVggaW4gc3lzL3N5c2xpbWl0cy5oCi0jIGlu
Y2x1ZGUgPHN5cy9zeXNsaW1pdHMuaD4KICNlbHNlCiAjIGluY2x1ZGUgPGxpbWl0cy5oPgogIyBp
bmNsdWRlIDxjbGltaXRzPiAgLy8gU29tZSBMaW51eCBkaXN0cmlidXRpb25zIGRlZmluZSBQQVRI
X01BWCBoZXJlLgpAQCAtOTUsMTMgKzkyLDE0IEBAIHN0YXRpYyBib29sIElzUGF0aFNlcGFyYXRv
cihjaGFyIGMpIHsKIAogLy8gUmV0dXJucyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSwg
b3IgIiIgaWYgdW5zdWNjZXNzZnVsLgogRmlsZVBhdGggRmlsZVBhdGg6OkdldEN1cnJlbnREaXIo
KSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0gIC8vIFdpbmRvd3MgQ0UgZG9lc24ndCBoYXZlIGEg
Y3VycmVudCBkaXJlY3RvcnksIHNvIHdlIGp1c3QgcmV0dXJuCisjaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBcCisgICAgR1RFU1RfT1NfV0lO
RE9XU19SVCB8fCBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09TX0VTUDMyCisgIC8vIFRoZXNl
IHBsYXRmb3JtcyBkbyBub3QgaGF2ZSBhIGN1cnJlbnQgZGlyZWN0b3J5LCBzbyB3ZSBqdXN0IHJl
dHVybgogICAvLyBzb21ldGhpbmcgcmVhc29uYWJsZS4KICAgcmV0dXJuIEZpbGVQYXRoKGtDdXJy
ZW50RGlyZWN0b3J5U3RyaW5nKTsKICNlbGlmIEdURVNUX09TX1dJTkRPV1MKICAgY2hhciBjd2Rb
R1RFU1RfUEFUSF9NQVhfICsgMV0gPSB7ICdcMCcgfTsKLSAgcmV0dXJuIEZpbGVQYXRoKF9nZXRj
d2QoY3dkLCBzaXplb2YoY3dkKSkgPT0gTlVMTCA/ICIiIDogY3dkKTsKKyAgcmV0dXJuIEZpbGVQ
YXRoKF9nZXRjd2QoY3dkLCBzaXplb2YoY3dkKSkgPT0gbnVsbHB0ciA/ICIiIDogY3dkKTsKICNl
bHNlCiAgIGNoYXIgY3dkW0dURVNUX1BBVEhfTUFYXyArIDFdID0geyAnXDAnIH07CiAgIGNoYXIq
IHJlc3VsdCA9IGdldGN3ZChjd2QsIHNpemVvZihjd2QpKTsKQEAgLTEwOSw5ICsxMDcsOSBAQCBG
aWxlUGF0aCBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpIHsKICAgLy8gZ2V0Y3dkIHdpbGwgbGlr
ZWx5IGZhaWwgaW4gTmFDbCBkdWUgdG8gdGhlIHNhbmRib3gsIHNvIHJldHVybiBzb21ldGhpbmcK
ICAgLy8gcmVhc29uYWJsZS4gVGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgYSBzaGltIGltcGxl
bWVudGF0aW9uIGZvciBnZXRjd2QsCiAgIC8vIGhvd2V2ZXIsIHNvIGZhbGxiYWNrIG9ubHkgd2hl
biBmYWlsdXJlIGlzIGRldGVjdGVkLgotICByZXR1cm4gRmlsZVBhdGgocmVzdWx0ID09IE5VTEwg
PyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3ZCk7CisgIHJldHVybiBGaWxlUGF0aChyZXN1
bHQgPT0gbnVsbHB0ciA/IGtDdXJyZW50RGlyZWN0b3J5U3RyaW5nIDogY3dkKTsKICMgZW5kaWYg
IC8vIEdURVNUX09TX05BQ0wKLSAgcmV0dXJuIEZpbGVQYXRoKHJlc3VsdCA9PSBOVUxMID8gIiIg
OiBjd2QpOworICByZXR1cm4gRmlsZVBhdGgocmVzdWx0ID09IG51bGxwdHIgPyAiIiA6IGN3ZCk7
CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiB9CiAKQEAgLTEzNiw4ICsxMzQs
OCBAQCBjb25zdCBjaGFyKiBGaWxlUGF0aDo6RmluZExhc3RQYXRoU2VwYXJhdG9yKCkgY29uc3Qg
ewogI2lmIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCiAgIGNvbnN0IGNoYXIqIGNvbnN0IGxhc3Rf
YWx0X3NlcCA9IHN0cnJjaHIoY19zdHIoKSwga0FsdGVybmF0ZVBhdGhTZXBhcmF0b3IpOwogICAv
LyBDb21wYXJpbmcgdHdvIHBvaW50ZXJzIG9mIHdoaWNoIG9ubHkgb25lIGlzIE5VTEwgaXMgdW5k
ZWZpbmVkLgotICBpZiAobGFzdF9hbHRfc2VwICE9IE5VTEwgJiYKLSAgICAgIChsYXN0X3NlcCA9
PSBOVUxMIHx8IGxhc3RfYWx0X3NlcCA+IGxhc3Rfc2VwKSkgeworICBpZiAobGFzdF9hbHRfc2Vw
ICE9IG51bGxwdHIgJiYKKyAgICAgIChsYXN0X3NlcCA9PSBudWxscHRyIHx8IGxhc3RfYWx0X3Nl
cCA+IGxhc3Rfc2VwKSkgewogICAgIHJldHVybiBsYXN0X2FsdF9zZXA7CiAgIH0KICNlbmRpZgpA
QCAtMTY1LDcgKzE2Myw3IEBAIEZpbGVQYXRoIEZpbGVQYXRoOjpSZW1vdmVGaWxlTmFtZSgpIGNv
bnN0IHsKICAgY29uc3QgY2hhciogY29uc3QgbGFzdF9zZXAgPSBGaW5kTGFzdFBhdGhTZXBhcmF0
b3IoKTsKICAgc3RkOjpzdHJpbmcgZGlyOwogICBpZiAobGFzdF9zZXApIHsKLSAgICBkaXIgPSBz
dGQ6OnN0cmluZyhjX3N0cigpLCBsYXN0X3NlcCArIDEgLSBjX3N0cigpKTsKKyAgICBkaXIgPSBz
dGQ6OnN0cmluZyhjX3N0cigpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxhc3Rfc2VwICsgMSAtIGNf
c3RyKCkpKTsKICAgfSBlbHNlIHsKICAgICBkaXIgPSBrQ3VycmVudERpcmVjdG9yeVN0cmluZzsK
ICAgfQpAQCAtMjUwLDkgKzI0OCw2IEBAIGJvb2wgRmlsZVBhdGg6OkRpcmVjdG9yeUV4aXN0cygp
IGNvbnN0IHsKIC8vIHJvb3QgZGlyZWN0b3J5IHBlciBkaXNrIGRyaXZlLikKIGJvb2wgRmlsZVBh
dGg6OklzUm9vdERpcmVjdG9yeSgpIGNvbnN0IHsKICNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIC8v
IEZJWE1FOiBvbiBXaW5kb3dzIGEgbmV0d29yayBzaGFyZSBsaWtlCi0gIC8vIFxcc2VydmVyXHNo
YXJlIGNhbiBiZSBhIHJvb3QgZGlyZWN0b3J5LCBhbHRob3VnaCBpdCBjYW5ub3QgYmUgdGhlCi0g
IC8vIGN1cnJlbnQgZGlyZWN0b3J5LiAgSGFuZGxlIHRoaXMgcHJvcGVybHkuCiAgIHJldHVybiBw
YXRobmFtZV8ubGVuZ3RoKCkgPT0gMyAmJiBJc0Fic29sdXRlUGF0aCgpOwogI2Vsc2UKICAgcmV0
dXJuIHBhdGhuYW1lXy5sZW5ndGgoKSA9PSAxICYmIElzUGF0aFNlcGFyYXRvcihwYXRobmFtZV8u
Y19zdHIoKVswXSk7CkBAIC0zMjQsMTAgKzMxOSwxMyBAQCBib29sIEZpbGVQYXRoOjpDcmVhdGVG
b2xkZXIoKSBjb25zdCB7CiAjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKICAgRmlsZVBhdGgg
cmVtb3ZlZF9zZXAodGhpcy0+UmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yKCkpOwogICBMUENX
U1RSIHVuaWNvZGUgPSBTdHJpbmc6OkFuc2lUb1V0ZjE2KHJlbW92ZWRfc2VwLmNfc3RyKCkpOwot
ICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVuaWNvZGUsIE5VTEwpID8gMCA6IC0xOwor
ICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVuaWNvZGUsIG51bGxwdHIpID8gMCA6IC0x
OwogICBkZWxldGUgW10gdW5pY29kZTsKICNlbGlmIEdURVNUX09TX1dJTkRPV1MKICAgaW50IHJl
c3VsdCA9IF9ta2RpcihwYXRobmFtZV8uY19zdHIoKSk7CisjZWxpZiBHVEVTVF9PU19FU1A4MjY2
CisgIC8vIGRvIG5vdGhpbmcKKyAgaW50IHJlc3VsdCA9IDA7CiAjZWxzZQogICBpbnQgcmVzdWx0
ID0gbWtkaXIocGF0aG5hbWVfLmNfc3RyKCksIDA3NzcpOwogI2VuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTX01PQklMRQpAQCAtMzUwLDM1ICszNDgsMjAgQEAgRmlsZVBhdGggRmlsZVBhdGg6OlJl
bW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpIGNvbnN0IHsKIC8vIFJlbW92ZXMgYW55IHJlZHVu
ZGFudCBzZXBhcmF0b3JzIHRoYXQgbWlnaHQgYmUgaW4gdGhlIHBhdGhuYW1lLgogLy8gRm9yIGV4
YW1wbGUsICJiYXIvLy9mb28iIGJlY29tZXMgImJhci9mb28iLiBEb2VzIG5vdCBlbGltaW5hdGUg
b3RoZXIKIC8vIHJlZHVuZGFuY2llcyB0aGF0IG1pZ2h0IGJlIGluIGEgcGF0aG5hbWUgaW52b2x2
aW5nICIuIiBvciAiLi4iLgotLy8gRklYTUU6IGhhbmRsZSBXaW5kb3dzIG5ldHdvcmsgc2hhcmVz
IChlLmcuIFxcc2VydmVyXHNoYXJlKS4KIHZvaWQgRmlsZVBhdGg6Ok5vcm1hbGl6ZSgpIHsKLSAg
aWYgKHBhdGhuYW1lXy5jX3N0cigpID09IE5VTEwpIHsKLSAgICBwYXRobmFtZV8gPSAiIjsKLSAg
ICByZXR1cm47Ci0gIH0KLSAgY29uc3QgY2hhciogc3JjID0gcGF0aG5hbWVfLmNfc3RyKCk7Ci0g
IGNoYXIqIGNvbnN0IGRlc3QgPSBuZXcgY2hhcltwYXRobmFtZV8ubGVuZ3RoKCkgKyAxXTsKLSAg
Y2hhciogZGVzdF9wdHIgPSBkZXN0OwotICBtZW1zZXQoZGVzdF9wdHIsIDAsIHBhdGhuYW1lXy5s
ZW5ndGgoKSArIDEpOwotCi0gIHdoaWxlICgqc3JjICE9ICdcMCcpIHsKLSAgICAqZGVzdF9wdHIg
PSAqc3JjOwotICAgIGlmICghSXNQYXRoU2VwYXJhdG9yKCpzcmMpKSB7Ci0gICAgICBzcmMrKzsK
KyAgYXV0byBvdXQgPSBwYXRobmFtZV8uYmVnaW4oKTsKKworICBmb3IgKGNvbnN0IGNoYXIgY2hh
cmFjdGVyIDogcGF0aG5hbWVfKSB7CisgICAgaWYgKCFJc1BhdGhTZXBhcmF0b3IoY2hhcmFjdGVy
KSkgeworICAgICAgKihvdXQrKykgPSBjaGFyYWN0ZXI7CisgICAgfSBlbHNlIGlmIChvdXQgPT0g
cGF0aG5hbWVfLmJlZ2luKCkgfHwgKnN0ZDo6cHJldihvdXQpICE9IGtQYXRoU2VwYXJhdG9yKSB7
CisgICAgICAqKG91dCsrKSA9IGtQYXRoU2VwYXJhdG9yOwogICAgIH0gZWxzZSB7Ci0jaWYgR1RF
U1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgICAgIGlmICgqZGVzdF9wdHIgPT0ga0FsdGVybmF0ZVBh
dGhTZXBhcmF0b3IpIHsKLSAgICAgICAgKmRlc3RfcHRyID0ga1BhdGhTZXBhcmF0b3I7Ci0gICAg
ICB9Ci0jZW5kaWYKLSAgICAgIHdoaWxlIChJc1BhdGhTZXBhcmF0b3IoKnNyYykpCi0gICAgICAg
IHNyYysrOworICAgICAgY29udGludWU7CiAgICAgfQotICAgIGRlc3RfcHRyKys7CiAgIH0KLSAg
KmRlc3RfcHRyID0gJ1wwJzsKLSAgcGF0aG5hbWVfID0gZGVzdDsKLSAgZGVsZXRlW10gZGVzdDsK
KworICBwYXRobmFtZV8uZXJhc2Uob3V0LCBwYXRobmFtZV8uZW5kKCkpOwogfQogCiB9ICAvLyBu
YW1lc3BhY2UgaW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1pbnRlcm5hbC1pbmwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1pbnRlcm5hbC1pbmwuaAppbmRleCA0NzkwMDQxNDliNDhjMjg1NjRlMjA1ZTAyMTBjNmM0MzEw
NDE4YjViLi5jZmY1MzRlZTllZGUzNzI0YjkyMzU3OTc1YTg4YWJjYTg2Mjk3ZDcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWludGVybmFsLWlubC5oCkBAIC0z
MSw4ICszMSw4IEBACiAvLyBUaGlzIGZpbGUgY29udGFpbnMgcHVyZWx5IEdvb2dsZSBUZXN0J3Mg
aW50ZXJuYWwgaW1wbGVtZW50YXRpb24uICBQbGVhc2UKIC8vIERPIE5PVCAjSU5DTFVERSBJVCBJ
TiBBIFVTRVIgUFJPR1JBTS4KIAotI2lmbmRlZiBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5M
X0hfCi0jZGVmaW5lIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU1JD
X0dURVNUX0lOVEVSTkFMX0lOTF9IXwogCiAjaWZuZGVmIF9XSU4zMl9XQ0UKICMgaW5jbHVkZSA8
ZXJybm8uaD4KQEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4gIC8vIEZvciBt
ZW1tb3ZlLgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5j
bHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKQEAg
LTgyLDkgKzg0LDExIEBAIGNvbnN0IGNoYXIga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZ1tdID0g
ImFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIjsKIGNvbnN0IGNoYXIga0JyZWFrT25GYWlsdXJlRmxh
Z1tdID0gImJyZWFrX29uX2ZhaWx1cmUiOwogY29uc3QgY2hhciBrQ2F0Y2hFeGNlcHRpb25zRmxh
Z1tdID0gImNhdGNoX2V4Y2VwdGlvbnMiOwogY29uc3QgY2hhciBrQ29sb3JGbGFnW10gPSAiY29s
b3IiOworY29uc3QgY2hhciBrRmFpbEZhc3RbXSA9ICJmYWlsX2Zhc3QiOwogY29uc3QgY2hhciBr
RmlsdGVyRmxhZ1tdID0gImZpbHRlciI7CiBjb25zdCBjaGFyIGtMaXN0VGVzdHNGbGFnW10gPSAi
bGlzdF90ZXN0cyI7CiBjb25zdCBjaGFyIGtPdXRwdXRGbGFnW10gPSAib3V0cHV0IjsKK2NvbnN0
IGNoYXIga0JyaWVmRmxhZ1tdID0gImJyaWVmIjsKIGNvbnN0IGNoYXIga1ByaW50VGltZUZsYWdb
XSA9ICJwcmludF90aW1lIjsKIGNvbnN0IGNoYXIga1ByaW50VVRGOEZsYWdbXSA9ICJwcmludF91
dGY4IjsKIGNvbnN0IGNoYXIga1JhbmRvbVNlZWRGbGFnW10gPSAicmFuZG9tX3NlZWQiOwpAQCAt
OTgsMTQgKzEwMiwxNCBAQCBjb25zdCBjaGFyIGtGbGFnZmlsZUZsYWdbXSA9ICJmbGFnZmlsZSI7
CiAvLyBBIHZhbGlkIHJhbmRvbSBzZWVkIG11c3QgYmUgaW4gWzEsIGtNYXhSYW5kb21TZWVkXS4K
IGNvbnN0IGludCBrTWF4UmFuZG9tU2VlZCA9IDk5OTk5OwogCi0vLyBnX2hlbHBfZmxhZyBpcyB0
cnVlIGlmZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtIGlzCi0vLyBzcGVj
aWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy8vIGdfaGVscF9mbGFnIGlzIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVxdWl2YWxlbnQgZm9ybQorLy8gaXMgc3Bl
Y2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBHVEVTVF9BUElfIGV4dGVybiBib29sIGdfaGVs
cF9mbGFnOwogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzLgog
R1RFU1RfQVBJXyBUaW1lSW5NaWxsaXMgR2V0VGltZUluTWlsbGlzKCk7CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgR29vZ2xlIFRlc3Qgc2hvdWxkIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1dC4KKy8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBHb29nbGUgVGVzdCBzaG91bGQgdXNlIGNvbG9y
cyBpbiB0aGUgb3V0cHV0LgogR1RFU1RfQVBJXyBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rk
b3V0X2lzX3R0eSk7CiAKIC8vIEZvcm1hdHMgdGhlIGdpdmVuIHRpbWUgaW4gbWlsbGlzZWNvbmRz
IGFzIHNlY29uZHMuCkBAIC0xMjIsMTEgKzEyNiwxMSBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5n
IEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKFRpbWVJbk1pbGxpcyBtcyk7CiAvLyBP
biBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJl
dHVybnMKIC8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdp
bmcgKnZhbHVlLgogR1RFU1RfQVBJXyBib29sIFBhcnNlSW50MzJGbGFnKAotICAgIGNvbnN0IGNo
YXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgSW50MzIqIHZhbHVlKTsKKyAgICBjb25zdCBjaGFy
KiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIGludDMyX3QqIHZhbHVlKTsKIAogLy8gUmV0dXJucyBh
IHJhbmRvbSBzZWVkIGluIHJhbmdlIFsxLCBrTWF4UmFuZG9tU2VlZF0gYmFzZWQgb24gdGhlCiAv
LyBnaXZlbiAtLWd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgdmFsdWUuCi1pbmxpbmUgaW50IEdldFJh
bmRvbVNlZWRGcm9tRmxhZyhJbnQzMiByYW5kb21fc2VlZF9mbGFnKSB7CitpbmxpbmUgaW50IEdl
dFJhbmRvbVNlZWRGcm9tRmxhZyhpbnQzMl90IHJhbmRvbV9zZWVkX2ZsYWcpIHsKICAgY29uc3Qg
dW5zaWduZWQgaW50IHJhd19zZWVkID0gKHJhbmRvbV9zZWVkX2ZsYWcgPT0gMCkgPwogICAgICAg
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihHZXRUaW1lSW5NaWxsaXMoKSkgOgogICAgICAgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgaW50PihyYW5kb21fc2VlZF9mbGFnKTsKQEAgLTE2MiwxMCArMTY2
LDEyIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKICAgICBjb2xvcl8gPSBHVEVTVF9GTEFHKGNv
bG9yKTsKICAgICBkZWF0aF90ZXN0X3N0eWxlXyA9IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHls
ZSk7CiAgICAgZGVhdGhfdGVzdF91c2VfZm9ya18gPSBHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNl
X2ZvcmspOworICAgIGZhaWxfZmFzdF8gPSBHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CiAgICAgZmls
dGVyXyA9IEdURVNUX0ZMQUcoZmlsdGVyKTsKICAgICBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF8g
PSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KTsKICAgICBsaXN0X3Rlc3RzXyA9
IEdURVNUX0ZMQUcobGlzdF90ZXN0cyk7CiAgICAgb3V0cHV0XyA9IEdURVNUX0ZMQUcob3V0cHV0
KTsKKyAgICBicmllZl8gPSBHVEVTVF9GTEFHKGJyaWVmKTsKICAgICBwcmludF90aW1lXyA9IEdU
RVNUX0ZMQUcocHJpbnRfdGltZSk7CiAgICAgcHJpbnRfdXRmOF8gPSBHVEVTVF9GTEFHKHByaW50
X3V0ZjgpOwogICAgIHJhbmRvbV9zZWVkXyA9IEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpOwpAQCAt
MTg1LDkgKzE5MSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgICAgR1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3N0eWxlKSA9IGRlYXRoX3Rlc3Rfc3R5bGVfOwogICAgIEdURVNUX0ZMQUcoZGVh
dGhfdGVzdF91c2VfZm9yaykgPSBkZWF0aF90ZXN0X3VzZV9mb3JrXzsKICAgICBHVEVTVF9GTEFH
KGZpbHRlcikgPSBmaWx0ZXJfOworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IGZhaWxfZmFz
dF87CiAgICAgR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPSBpbnRlcm5hbF9y
dW5fZGVhdGhfdGVzdF87CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IGxpc3RfdGVzdHNf
OwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9IG91dHB1dF87CisgICAgR1RFU1RfRkxBRyhicmll
ZikgPSBicmllZl87CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IHByaW50X3RpbWVfOwog
ICAgIEdURVNUX0ZMQUcocHJpbnRfdXRmOCkgPSBwcmludF91dGY4XzsKICAgICBHVEVTVF9GTEFH
KHJhbmRvbV9zZWVkKSA9IHJhbmRvbV9zZWVkXzsKQEAgLTIwNiwxNiArMjE0LDE4IEBAIGNsYXNz
IEdUZXN0RmxhZ1NhdmVyIHsKICAgc3RkOjpzdHJpbmcgY29sb3JfOwogICBzdGQ6OnN0cmluZyBk
ZWF0aF90ZXN0X3N0eWxlXzsKICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9mb3JrXzsKKyAgYm9vbCBm
YWlsX2Zhc3RfOwogICBzdGQ6OnN0cmluZyBmaWx0ZXJfOwogICBzdGQ6OnN0cmluZyBpbnRlcm5h
bF9ydW5fZGVhdGhfdGVzdF87CiAgIGJvb2wgbGlzdF90ZXN0c187CiAgIHN0ZDo6c3RyaW5nIG91
dHB1dF87CisgIGJvb2wgYnJpZWZfOwogICBib29sIHByaW50X3RpbWVfOwogICBib29sIHByaW50
X3V0ZjhfOwotICBpbnRlcm5hbDo6SW50MzIgcmFuZG9tX3NlZWRfOwotICBpbnRlcm5hbDo6SW50
MzIgcmVwZWF0XzsKKyAgaW50MzJfdCByYW5kb21fc2VlZF87CisgIGludDMyX3QgcmVwZWF0XzsK
ICAgYm9vbCBzaHVmZmxlXzsKLSAgaW50ZXJuYWw6OkludDMyIHN0YWNrX3RyYWNlX2RlcHRoXzsK
KyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aF87CiAgIHN0ZDo6c3RyaW5nIHN0cmVhbV9yZXN1
bHRfdG9fOwogICBib29sIHRocm93X29uX2ZhaWx1cmVfOwogfSBHVEVTVF9BVFRSSUJVVEVfVU5V
U0VEXzsKQEAgLTIyNiwxMSArMjM2LDExIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKIC8vIElm
IHRoZSBjb2RlX3BvaW50IGlzIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludAogLy8gKGku
ZS4gb3V0c2lkZSBvZiBVbmljb2RlIHJhbmdlIFUrMCB0byBVKzEwRkZGRikgaXQgd2lsbCBiZSBj
b252ZXJ0ZWQKIC8vIHRvICIoSW52YWxpZCBVbmljb2RlIDB4WFhYWFhYWFgpIi4KLUdURVNUX0FQ
SV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KTsKK0dURVNU
X0FQSV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KHVpbnQzMl90IGNvZGVfcG9pbnQpOwog
CiAvLyBDb252ZXJ0cyBhIHdpZGUgc3RyaW5nIHRvIGEgbmFycm93IHN0cmluZyBpbiBVVEYtOCBl
bmNvZGluZy4KIC8vIFRoZSB3aWRlIHN0cmluZyBpcyBhc3N1bWVkIHRvIGhhdmUgdGhlIGZvbGxv
d2luZyBlbmNvZGluZzoKLS8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90KSA9PSAyIChvbiBX
aW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpCisvLyAgIFVURi0xNiBpZiBzaXplb2Yod2NoYXJf
dCkgPT0gMiAob24gV2luZG93cywgQ3lnd2luKQogLy8gICBVVEYtMzIgaWYgc2l6ZW9mKHdjaGFy
X3QpID09IDQgKG9uIExpbnV4KQogLy8gUGFyYW1ldGVyIHN0ciBwb2ludHMgdG8gYSBudWxsLXRl
cm1pbmF0ZWQgd2lkZSBzdHJpbmcuCiAvLyBQYXJhbWV0ZXIgbnVtX2NoYXJzIG1heSBhZGRpdGlv
bmFsbHkgbGltaXQgdGhlIG51bWJlcgpAQCAtMjU5LDE0ICsyNjksMTQgQEAgR1RFU1RfQVBJXyBi
b29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19zdHIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc2hhcmRfaW5kZXhfc3RyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCk7CiAK
LS8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFyIGFzIGFuIEludDMyLiBJZiBp
dCBpcyB1bnNldCwKLS8vIHJldHVybnMgZGVmYXVsdF92YWwuIElmIGl0IGlzIG5vdCBhbiBJbnQz
MiwgcHJpbnRzIGFuIGVycm9yIGFuZAorLy8gUGFyc2VzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJs
ZSB2YXIgYXMgYSAzMi1iaXQgaW50ZWdlci4gSWYgaXQgaXMgdW5zZXQsCisvLyByZXR1cm5zIGRl
ZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYSAzMi1iaXQgaW50ZWdlciwgcHJpbnRzIGFuIGVycm9y
IGFuZAogLy8gYW5kIGFib3J0cy4KLUdURVNUX0FQSV8gSW50MzIgSW50MzJGcm9tRW52T3JEaWUo
Y29uc3QgY2hhciogZW52X3ZhciwgSW50MzIgZGVmYXVsdF92YWwpOworR1RFU1RfQVBJXyBpbnQz
Ml90IEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIGVudl92YXIsIGludDMyX3QgZGVmYXVs
dF92YWwpOwogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNoYXJkcywgdGhlIHNoYXJk
IGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNo
b3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRy
YXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0
CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBv
biB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMgc29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1
ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4g
QXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0b3RhbF9zaGFyZHMuCiBHVEVTVF9BUElf
IGJvb2wgU2hvdWxkUnVuVGVzdE9uU2hhcmQoCiAgICAgaW50IHRvdGFsX3NoYXJkcywgaW50IHNo
YXJkX2luZGV4LCBpbnQgdGVzdF9pZCk7CkBAIC0yOTcsNyArMzA3LDggQEAgdm9pZCBGb3JFYWNo
KGNvbnN0IENvbnRhaW5lciYgYywgRnVuY3RvciBmdW5jdG9yKSB7CiAvLyBpbiByYW5nZSBbMCwg
di5zaXplKCkpLgogdGVtcGxhdGUgPHR5cGVuYW1lIEU+CiBpbmxpbmUgRSBHZXRFbGVtZW50T3Io
Y29uc3Qgc3RkOjp2ZWN0b3I8RT4mIHYsIGludCBpLCBFIGRlZmF1bHRfdmFsdWUpIHsKLSAgcmV0
dXJuIChpIDwgMCB8fCBpID49IHN0YXRpY19jYXN0PGludD4odi5zaXplKCkpKSA/IGRlZmF1bHRf
dmFsdWUgOiB2W2ldOworICByZXR1cm4gKGkgPCAwIHx8IGkgPj0gc3RhdGljX2Nhc3Q8aW50Pih2
LnNpemUoKSkpID8gZGVmYXVsdF92YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogdltzdGF0aWNfY2FzdDxzaXplX3Q+KGkpXTsKIH0KIAog
Ly8gUGVyZm9ybXMgYW4gaW4tcGxhY2Ugc2h1ZmZsZSBvZiBhIHJhbmdlIG9mIHRoZSB2ZWN0b3In
cyBlbGVtZW50cy4KQEAgLTMxOSw4ICszMzAsMTEgQEAgdm9pZCBTaHVmZmxlUmFuZ2UoaW50ZXJu
YWw6OlJhbmRvbSogcmFuZG9tLCBpbnQgYmVnaW4sIGludCBlbmQsCiAgIC8vIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUKICAgZm9yIChpbnQgcmFuZ2Vf
d2lkdGggPSBlbmQgLSBiZWdpbjsgcmFuZ2Vfd2lkdGggPj0gMjsgcmFuZ2Vfd2lkdGgtLSkgewog
ICAgIGNvbnN0IGludCBsYXN0X2luX3JhbmdlID0gYmVnaW4gKyByYW5nZV93aWR0aCAtIDE7Ci0g
ICAgY29uc3QgaW50IHNlbGVjdGVkID0gYmVnaW4gKyByYW5kb20tPkdlbmVyYXRlKHJhbmdlX3dp
ZHRoKTsKLSAgICBzdGQ6OnN3YXAoKCp2KVtzZWxlY3RlZF0sICgqdilbbGFzdF9pbl9yYW5nZV0p
OworICAgIGNvbnN0IGludCBzZWxlY3RlZCA9CisgICAgICAgIGJlZ2luICsKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50PihyYW5kb20tPkdlbmVyYXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihyYW5n
ZV93aWR0aCkpKTsKKyAgICBzdGQ6OnN3YXAoKCp2KVtzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVj
dGVkKV0sCisgICAgICAgICAgICAgICgqdilbc3RhdGljX2Nhc3Q8c2l6ZV90PihsYXN0X2luX3Jh
bmdlKV0pOwogICB9CiB9CiAKQEAgLTM0Nyw3ICszNjEsNyBAQCBjbGFzcyBUZXN0UHJvcGVydHlL
ZXlJcyB7CiAgIC8vIFRlc3RQcm9wZXJ0eUtleUlzIGhhcyBOTyBkZWZhdWx0IGNvbnN0cnVjdG9y
LgogICBleHBsaWNpdCBUZXN0UHJvcGVydHlLZXlJcyhjb25zdCBzdGQ6OnN0cmluZyYga2V5KSA6
IGtleV8oa2V5KSB7fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0
ZXN0IHByb3BlcnR5IG1hdGNoZXMgb24ga2V5Xy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdCBwcm9wZXJ0eSBtYXRjaGVzIG9uIGtleV8uCiAg
IGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIGNvbnN0
IHsKICAgICByZXR1cm4gdGVzdF9wcm9wZXJ0eS5rZXkoKSA9PSBrZXlfOwogICB9CkBAIC0zODAs
MTcgKzM5NCwxMCBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0T3B0aW9ucyB7CiAKICAgLy8g
RnVuY3Rpb25zIGZvciBwcm9jZXNzaW5nIHRoZSBndGVzdF9maWx0ZXIgZmxhZy4KIAotICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHRoZSB3aWxkY2FyZCBwYXR0ZXJuIG1hdGNoZXMgdGhlIHN0cmluZy4g
IFRoZQotICAvLyBmaXJzdCAnOicgb3IgJ1wwJyBjaGFyYWN0ZXIgaW4gcGF0dGVybiBtYXJrcyB0
aGUgZW5kIG9mIGl0LgotICAvLwotICAvLyBUaGlzIHJlY3Vyc2l2ZSBhbGdvcml0aG0gaXNuJ3Qg
dmVyeSBlZmZpY2llbnQsIGJ1dCBpcyBjbGVhciBhbmQKLSAgLy8gd29ya3Mgd2VsbCBlbm91Z2gg
Zm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLSAgc3RhdGljIGJvb2wg
UGF0dGVybk1hdGNoZXNTdHJpbmcoY29uc3QgY2hhciAqcGF0dGVybiwgY29uc3QgY2hhciAqc3Ry
KTsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgbWF0
Y2hlcyB0aGUgdGVzdCBjYXNlCi0gIC8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUuCi0gIHN0YXRp
YyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnRl
c3RfbmFtZSk7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdXNlci1zcGVj
aWZpZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHRlc3QKKyAgLy8gc3VpdGUgbmFtZSBhbmQgdGhlIHRl
c3QgbmFtZS4KKyAgc3RhdGljIGJvb2wgRmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSk7CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTCiAgIC8v
IEZ1bmN0aW9uIGZvciBzdXBwb3J0aW5nIHRoZSBndGVzdF9jYXRjaF9leGNlcHRpb24gZmxhZy4K
QEAgLTQ0Miw4ICs0NDksOCBAQCBjbGFzcyBPc1N0YWNrVHJhY2VHZXR0ZXIgOiBwdWJsaWMgT3NT
dGFja1RyYWNlR2V0dGVySW50ZXJmYWNlIHsKICBwdWJsaWM6CiAgIE9zU3RhY2tUcmFjZUdldHRl
cigpIHt9CiAKLSAgdmlydHVhbCBzdGQ6OnN0cmluZyBDdXJyZW50U3RhY2tUcmFjZShpbnQgbWF4
X2RlcHRoLCBpbnQgc2tpcF9jb3VudCk7Ci0gIHZpcnR1YWwgdm9pZCBVcG9uTGVhdmluZ0dUZXN0
KCk7CisgIHN0ZDo6c3RyaW5nIEN1cnJlbnRTdGFja1RyYWNlKGludCBtYXhfZGVwdGgsIGludCBz
a2lwX2NvdW50KSBvdmVycmlkZTsKKyAgdm9pZCBVcG9uTGVhdmluZ0dUZXN0KCkgb3ZlcnJpZGU7
CiAKICBwcml2YXRlOgogI2lmIEdURVNUX0hBU19BQlNMCkBAIC00NzQsNyArNDgxLDcgQEAgY2xh
c3MgRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgZXhwbGljaXQgRGVmYXVs
dEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoVW5pdFRlc3RJbXBsKiB1bml0X3Rlc3QpOwog
ICAvLyBJbXBsZW1lbnRzIHRoZSBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlLiBSZXBv
cnRzIHRoZSB0ZXN0IHBhcnQKICAgLy8gcmVzdWx0IGluIHRoZSBjdXJyZW50IHRlc3QuCi0gIHZp
cnR1YWwgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVz
dWx0KTsKKyAgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYg
cmVzdWx0KSBvdmVycmlkZTsKIAogIHByaXZhdGU6CiAgIFVuaXRUZXN0SW1wbCogY29uc3QgdW5p
dF90ZXN0XzsKQEAgLTQ5MCw3ICs0OTcsNyBAQCBjbGFzcyBEZWZhdWx0UGVyVGhyZWFkVGVzdFBh
cnRSZXN1bHRSZXBvcnRlcgogICBleHBsaWNpdCBEZWZhdWx0UGVyVGhyZWFkVGVzdFBhcnRSZXN1
bHRSZXBvcnRlcihVbml0VGVzdEltcGwqIHVuaXRfdGVzdCk7CiAgIC8vIEltcGxlbWVudHMgdGhl
IFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UuIFRoZSBpbXBsZW1lbnRhdGlvbiBqdXN0
CiAgIC8vIGRlbGVnYXRlcyB0byB0aGUgY3VycmVudCBnbG9iYWwgdGVzdCBwYXJ0IHJlc3VsdCBy
ZXBvcnRlciBvZiAqdW5pdF90ZXN0Xy4KLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVz
dWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOworICB2b2lkIFJlcG9ydFRlc3RQYXJ0
UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOwogCiAgcHJpdmF0
ZToKICAgVW5pdFRlc3RJbXBsKiBjb25zdCB1bml0X3Rlc3RfOwpAQCAtNTI4LDIyICs1MzUsMjUg
QEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICB2b2lkIFNldFRlc3RQYXJ0UmVz
dWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKAogICAgICAgVGVzdFBhcnRSZXN1bHRSZXBvcnRl
ckludGVyZmFjZSogcmVwb3J0ZXIpOwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNz
ZnVsIHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0
OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KKyAgaW50
IHN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51
bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZhaWxlZF90ZXN0X2Nhc2VfY291bnQo
KSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KKyAg
aW50IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29u
c3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCisgIGludCB0b3Rh
bF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFs
bCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorICAvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVz
dAogICAvLyB0aGF0IHNob3VsZCBydW4uCi0gIGludCB0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkg
Y29uc3Q7CisgIGludCB0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMu
CisgIGludCBza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1i
ZXIgb2YgZmFpbGVkIHRlc3RzLgogICBpbnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApA
QCAtNTY5LDI3ICs1NzksMzMgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAv
LyBHZXRzIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWlsbGlz
IGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KIAotICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0IGNhc2Vz
IHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0
IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAgLy8gcGFzc2VkKS4KICAgYm9vbCBQYXNz
ZWQoKSBjb25zdCB7IHJldHVybiAhRmFpbGVkKCk7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotICAvLyBv
ciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBz
dWl0ZQorICAvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxl
ZCkuCiAgIGJvb2wgRmFpbGVkKCkgY29uc3QgewotICAgIHJldHVybiBmYWlsZWRfdGVzdF9jYXNl
X2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0X3Jlc3VsdCgpLT5GYWlsZWQoKTsKKyAgICByZXR1
cm4gZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCkt
PkZhaWxlZCgpOwogICB9CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxs
IHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9j
YXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwu
Ci0gIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3QgewotICAgIGNvbnN0
IGludCBpbmRleCA9IEdldEVsZW1lbnRPcih0ZXN0X2Nhc2VfaW5kaWNlc18sIGksIC0xKTsKLSAg
ICByZXR1cm4gaW5kZXggPCAwID8gTlVMTCA6IHRlc3RfY2FzZXNfW2ldOworICAvLyBHZXRzIHRo
ZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2Ug
ZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkgaXMgbm90
IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgY29uc3QgVGVzdFN1aXRlKiBHZXRUZXN0
U3VpdGUoaW50IGkpIGNvbnN0IHsKKyAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3Io
dGVzdF9zdWl0ZV9pbmRpY2VzXywgaSwgLTEpOworICAgIHJldHVybiBpbmRleCA8IDAgPyBudWxs
cHRyIDogdGVzdF9zdWl0ZXNfW3N0YXRpY19jYXN0PHNpemVfdD4oaSldOwogICB9CiAKLSAgLy8g
R2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiBy
YW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlz
IG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIFRlc3RDYXNlKiBHZXRNdXRhYmxl
VGVzdENhc2UoaW50IGkpIHsKLSAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVz
dF9jYXNlX2luZGljZXNfLCBpLCAtMSk7Ci0gICAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0
ZXN0X2Nhc2VzX1tpbmRleF07CisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KyAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGludCBpKSBjb25zdCB7IHJldHVybiBHZXRU
ZXN0U3VpdGUoaSk7IH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworCisgIC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRlc3Qg
c3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3Vu
dCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorICBUZXN0
U3VpdGUqIEdldE11dGFibGVTdWl0ZUNhc2UoaW50IGkpIHsKKyAgICBjb25zdCBpbnQgaW5kZXgg
PSBHZXRFbGVtZW50T3IodGVzdF9zdWl0ZV9pbmRpY2VzXywgaSwgLTEpOworICAgIHJldHVybiBp
bmRleCA8IDAgPyBudWxscHRyIDogdGVzdF9zdWl0ZXNfW3N0YXRpY19jYXN0PHNpemVfdD4oaW5k
ZXgpXTsKICAgfQogCiAgIC8vIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgZXZlbnQgbGlzdGVuZXIg
bGlzdC4KQEAgLTYyNiwzMSArNjQyLDQwIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBs
IHsKICAgLy8gdHJhY2UgYnV0IEJhcigpIGFuZCBDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9w
KCkgd29uJ3QuCiAgIHN0ZDo6c3RyaW5nIEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoaW50
IHNraXBfY291bnQpIEdURVNUX05PX0lOTElORV87CiAKLSAgLy8gRmluZHMgYW5kIHJldHVybnMg
YSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRvZXNuJ3QKKyAgLy8gRmlu
ZHMgYW5kIHJldHVybnMgYSBUZXN0U3VpdGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBk
b2Vzbid0CiAgIC8vIGV4aXN0LCBjcmVhdGVzIG9uZSBhbmQgcmV0dXJucyBpdC4KICAgLy8KICAg
Ly8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIHRlc3RfY2FzZV9uYW1lOiBuYW1lIG9mIHRoZSB0
ZXN0IGNhc2UKLSAgLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0
eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgotICAvLyAgICAgICAgICAgICAgICAgICB0aGlzIGlz
IG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3Vw
X3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBj
YXNlCi0gIC8vICAgdGVhcl9kb3duX3RjOiAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQg
dGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCi0gIFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShjb25zdCBj
aGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHR5cGVfcGFyYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNl
RnVuYyBzZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRl
c3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpOworICAvLyAgIHRlc3Rfc3VpdGVfbmFtZTogbmFtZSBv
ZiB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHR5cGVfcGFyYW06ICAgICAgdGhlIG5hbWUgb2YgdGhl
IHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgorICAvLyAgICAgICAgICAgICAgICAg
ICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgorICAv
LyAgIHNldF91cF90YzogICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVw
IHRoZSB0ZXN0IHN1aXRlCisgIC8vICAgdGVhcl9kb3duX3RjOiAgICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKKyAgVGVzdFN1aXRlKiBHZXRU
ZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBlX3Bh
cmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVG
dW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJE
b3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpOworCisvLyAgTGVnYWN5IEFQSSBpcyBkZXBy
ZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9U
RVNUX0NBU0VBUElfCisgIFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShjb25zdCBjaGFyKiB0ZXN0X2Nh
c2VfbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGludGVybmFsOjpTZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpIHsK
KyAgICByZXR1cm4gR2V0VGVzdFN1aXRlKHRlc3RfY2FzZV9uYW1lLCB0eXBlX3BhcmFtLCBzZXRf
dXBfdGMsIHRlYXJfZG93bl90Yyk7CisgIH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEFkZHMgYSBUZXN0SW5mbyB0byB0aGUgdW5pdCB0ZXN0
LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0gIC8vICAgc2V0X3VwX3RjOiAgICBwb2lu
dGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRl
YXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0
ZXN0IGNhc2UKKyAgLy8gICBzZXRfdXBfdGM6ICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRo
YXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0
byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1aXRlCiAgIC8vICAgdGVz
dF9pbmZvOiAgICB0aGUgVGVzdEluZm8gb2JqZWN0Ci0gIHZvaWQgQWRkVGVzdEluZm8oVGVzdDo6
U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6OlRl
YXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90YywKKyAgdm9pZCBBZGRUZXN0SW5mbyhpbnRl
cm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbDo6VGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywKICAgICAgICAgICAg
ICAgICAgICBUZXN0SW5mbyogdGVzdF9pbmZvKSB7CisjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QK
ICAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzLCB3ZSBu
ZWVkIHRvCiAgICAgLy8gcmVtZW1iZXIgdGhlIG9yaWdpbmFsIHdvcmtpbmcgZGlyZWN0b3J5IHdo
ZW4gdGhlIHRlc3QgcHJvZ3JhbQogICAgIC8vIHdhcyBmaXJzdCBpbnZva2VkLiAgV2UgY2Fubm90
IGRvIHRoaXMgaW4gUlVOX0FMTF9URVNUUygpLCBhcwpAQCAtNjYzLDIyICs2ODgsMzMgQEAgY2xh
c3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAgICAgR1RFU1RfQ0hFQ0tfKCFvcmlnaW5h
bF93b3JraW5nX2Rpcl8uSXNFbXB0eSgpKQogICAgICAgICAgIDw8ICJGYWlsZWQgdG8gZ2V0IHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiI7CiAgICAgfQorI2VuZGlmICAvLyBHVEVTVF9I
QVNfREVBVEhfVEVTVAogCi0gICAgR2V0VGVzdENhc2UodGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFt
ZSgpLAotICAgICAgICAgICAgICAgIHRlc3RfaW5mby0+dHlwZV9wYXJhbSgpLAotICAgICAgICAg
ICAgICAgIHNldF91cF90YywKLSAgICAgICAgICAgICAgICB0ZWFyX2Rvd25fdGMpLT5BZGRUZXN0
SW5mbyh0ZXN0X2luZm8pOworICAgIEdldFRlc3RTdWl0ZSh0ZXN0X2luZm8tPnRlc3Rfc3VpdGVf
bmFtZSgpLCB0ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSwKKyAgICAgICAgICAgICAgICAgc2V0X3Vw
X3RjLCB0ZWFyX2Rvd25fdGMpCisgICAgICAgIC0+QWRkVGVzdEluZm8odGVzdF9pbmZvKTsKICAg
fQogCi0gIC8vIFJldHVybnMgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVz
ZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5zIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVS
ZWdpc3RyeSBvYmplY3QgdXNlZCB0byBrZWVwIHRyYWNrIG9mCiAgIC8vIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdHMgYW5kIGluc3RhbnRpYXRlIGFuZCByZWdpc3RlciB0aGVtLgotICBpbnRlcm5h
bDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeSgpIHsKKyAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSYgcGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgewogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkX3Rl
c3RfcmVnaXN0cnlfOwogICB9CiAKLSAgLy8gU2V0cyB0aGUgVGVzdENhc2Ugb2JqZWN0IGZvciB0
aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcuCi0gIHZvaWQgc2V0X2N1cnJlbnRfdGVz
dF9jYXNlKFRlc3RDYXNlKiBhX2N1cnJlbnRfdGVzdF9jYXNlKSB7Ci0gICAgY3VycmVudF90ZXN0
X2Nhc2VfID0gYV9jdXJyZW50X3Rlc3RfY2FzZTsKKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiBp
Z25vcmVkX3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXMoKSB7CisgICAgcmV0dXJuICZpZ25vcmVk
X3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXNfOworICB9CisKKyAgLy8gUmV0dXJucyBUeXBlUGFy
YW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YK
KyAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0aW9ucyBvZiB0aGVt
LgorICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSYKKyAgdHlw
ZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSB7CisgICAgcmV0dXJuIHR5cGVfcGFyYW1l
dGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKyAgfQorCisgIC8vIFNldHMgdGhlIFRlc3RTdWl0ZSBv
YmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZy4KKyAgdm9pZCBzZXRf
Y3VycmVudF90ZXN0X3N1aXRlKFRlc3RTdWl0ZSogYV9jdXJyZW50X3Rlc3Rfc3VpdGUpIHsKKyAg
ICBjdXJyZW50X3Rlc3Rfc3VpdGVfID0gYV9jdXJyZW50X3Rlc3Rfc3VpdGU7CiAgIH0KIAogICAv
LyBTZXRzIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkg
cnVubmluZy4gIElmCkBAIC02ODksNyArNzI1LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVz
dEltcGwgewogICB9CiAKICAgLy8gUmVnaXN0ZXJzIGFsbCBwYXJhbWV0ZXJpemVkIHRlc3RzIGRl
ZmluZWQgdXNpbmcgVEVTVF9QIGFuZAotICAvLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCwgY3Jl
YXRpbmcgcmVndWxhciB0ZXN0cyBmb3IgZWFjaCB0ZXN0L3BhcmFtZXRlcgorICAvLyBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AsIGNyZWF0aW5nIHJlZ3VsYXIgdGVzdHMgZm9yIGVhY2ggdGVzdC9w
YXJhbWV0ZXIKICAgLy8gY29tYmluYXRpb24uIFRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgbW9y
ZSB0aGVuIG9uY2U7IGl0IGhhcyBndWFyZHMKICAgLy8gcHJvdGVjdGluZyBmcm9tIHJlZ2lzdGVy
aW5nIHRoZSB0ZXN0cyBtb3JlIHRoZW4gb25jZS4gIElmCiAgIC8vIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdHMgYXJlIGRpc2FibGVkLCBSZWdpc3RlclBhcmFtZXRlcml6ZWRUZXN0cyBpcwpAQCAt
NzA0LDcgKzc0MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKIAogICAvLyBD
bGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzLCBleGNlcHQgdGhlIGFkIGhvYyB0ZXN0cy4K
ICAgdm9pZCBDbGVhck5vbkFkSG9jVGVzdFJlc3VsdCgpIHsKLSAgICBGb3JFYWNoKHRlc3RfY2Fz
ZXNfLCBUZXN0Q2FzZTo6Q2xlYXJUZXN0Q2FzZVJlc3VsdCk7CisgICAgRm9yRWFjaCh0ZXN0X3N1
aXRlc18sIFRlc3RTdWl0ZTo6Q2xlYXJUZXN0U3VpdGVSZXN1bHQpOwogICB9CiAKICAgLy8gQ2xl
YXJzIHRoZSByZXN1bHRzIG9mIGFkLWhvYyB0ZXN0IGFzc2VydGlvbnMuCkBAIC03MTMsNyArNzQ5
LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICB9CiAKICAgLy8gQWRkcyBh
IFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9r
ZWQgaW4gYQotICAvLyBjb250ZXh0IG9mIGEgdGVzdCBvciBhIHRlc3QgY2FzZSwgb3IgdG8gdGhl
IGdsb2JhbCBwcm9wZXJ0eSBzZXQuIElmIHRoZQorICAvLyBjb250ZXh0IG9mIGEgdGVzdCBvciBh
IHRlc3Qgc3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0LiBJZiB0aGUKICAgLy8g
cmVzdWx0IGFscmVhZHkgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIGtleSwgdGhl
IHZhbHVlIHdpbGwgYmUKICAgLy8gdXBkYXRlZC4KICAgdm9pZCBSZWNvcmRQcm9wZXJ0eShjb25z
dCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpOwpAQCAtNzI1LDcgKzc2MSw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKIAogICAvLyBNYXRjaGVzIHRoZSBmdWxsIG5hbWUg
b2YgZWFjaCB0ZXN0IGFnYWluc3QgdGhlIHVzZXItc3BlY2lmaWVkCiAgIC8vIGZpbHRlciB0byBk
ZWNpZGUgd2hldGhlciB0aGUgdGVzdCBzaG91bGQgcnVuLCB0aGVuIHJlY29yZHMgdGhlCi0gIC8v
IHJlc3VsdCBpbiBlYWNoIFRlc3RDYXNlIGFuZCBUZXN0SW5mbyBvYmplY3QuCisgIC8vIHJlc3Vs
dCBpbiBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8gb2JqZWN0LgogICAvLyBJZiBzaGFyZF90
ZXN0cyA9PSBIT05PUl9TSEFSRElOR19QUk9UT0NPTCwgZnVydGhlciBmaWx0ZXJzIHRlc3RzCiAg
IC8vIGJhc2VkIG9uIHNoYXJkaW5nIHZhcmlhYmxlcyBpbiB0aGUgZW52aXJvbm1lbnQuCiAgIC8v
IFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IHNob3VsZCBydW4uCkBAIC03MzQsNyAr
NzcwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAvLyBQcmludHMgdGhl
IG5hbWVzIG9mIHRoZSB0ZXN0cyBtYXRjaGluZyB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVyIGZs
YWcuCiAgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKTsKIAotICBjb25zdCBUZXN0Q2Fz
ZSogY3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3RfY2FzZV87
IH0KKyAgY29uc3QgVGVzdFN1aXRlKiBjdXJyZW50X3Rlc3Rfc3VpdGUoKSBjb25zdCB7IHJldHVy
biBjdXJyZW50X3Rlc3Rfc3VpdGVfOyB9CiAgIFRlc3RJbmZvKiBjdXJyZW50X3Rlc3RfaW5mbygp
IHsgcmV0dXJuIGN1cnJlbnRfdGVzdF9pbmZvXzsgfQogICBjb25zdCBUZXN0SW5mbyogY3VycmVu
dF90ZXN0X2luZm8oKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3RfaW5mb187IH0KIApAQCAt
Nzk1LDExICs4MzEsMTEgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAvLyBH
ZXRzIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4KICAgaW50ZXJuYWw6OlJhbmRvbSogcmFu
ZG9tKCkgeyByZXR1cm4gJnJhbmRvbV87IH0KIAotICAvLyBTaHVmZmxlcyBhbGwgdGVzdCBjYXNl
cywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0IGNhc2UsCisgIC8vIFNodWZmbGVzIGFs
bCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0IHN1aXRlLAogICAv
LyBtYWtpbmcgc3VyZSB0aGF0IGRlYXRoIHRlc3RzIGFyZSBzdGlsbCBydW4gZmlyc3QuCiAgIHZv
aWQgU2h1ZmZsZVRlc3RzKCk7CiAKLSAgLy8gUmVzdG9yZXMgdGhlIHRlc3QgY2FzZXMgYW5kIHRl
c3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KKyAgLy8gUmVzdG9y
ZXMgdGhlIHRlc3Qgc3VpdGVzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZp
cnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKIAogICAvLyBSZXR1cm5zIHRo
ZSB2YWx1ZSBvZiBHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpIGF0IHRoZSBtb21lbnQKQEAg
LTgzOSwzMSArODc1LDM3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgLy8g
YmVmb3JlL2FmdGVyIHRoZSB0ZXN0cyBhcmUgcnVuLgogICBzdGQ6OnZlY3RvcjxFbnZpcm9ubWVu
dCo+IGVudmlyb25tZW50c187CiAKLSAgLy8gVGhlIHZlY3RvciBvZiBUZXN0Q2FzZXMgaW4gdGhl
aXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25zIHRoZQorICAvLyBUaGUgdmVjdG9yIG9mIFRlc3RT
dWl0ZXMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25zIHRoZQogICAvLyBlbGVtZW50
cyBpbiB0aGUgdmVjdG9yLgotICBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+IHRlc3RfY2FzZXNfOwor
ICBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiB0ZXN0X3N1aXRlc187CiAKLSAgLy8gUHJvdmlkZXMg
YSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBmb3IgdGhlIHRlc3QgY2FzZSBsaXN0IHRvIGFsbG93Ci0g
IC8vIGVhc3kgc2h1ZmZsaW5nIGFuZCByZXN0b3JpbmcgdGhlIHRlc3QgY2FzZSBvcmRlci4gIFRo
ZSBpLXRoCi0gIC8vIGVsZW1lbnQgb2YgdGhpcyB2ZWN0b3IgaXMgdGhlIGluZGV4IG9mIHRoZSBp
LXRoIHRlc3QgY2FzZSBpbiB0aGUKKyAgLy8gUHJvdmlkZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlv
biBmb3IgdGhlIHRlc3Qgc3VpdGUgbGlzdCB0byBhbGxvdworICAvLyBlYXN5IHNodWZmbGluZyBh
bmQgcmVzdG9yaW5nIHRoZSB0ZXN0IHN1aXRlIG9yZGVyLiAgVGhlIGktdGgKKyAgLy8gZWxlbWVu
dCBvZiB0aGlzIHZlY3RvciBpcyB0aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBzdWl0ZSBpbiB0
aGUKICAgLy8gc2h1ZmZsZWQgb3JkZXIuCi0gIHN0ZDo6dmVjdG9yPGludD4gdGVzdF9jYXNlX2lu
ZGljZXNfOworICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3Rfc3VpdGVfaW5kaWNlc187CiAKICAgLy8g
UGFyYW1ldGVyaXplZFRlc3RSZWdpc3RyeSBvYmplY3QgdXNlZCB0byByZWdpc3RlciB2YWx1ZS1w
YXJhbWV0ZXJpemVkCiAgIC8vIHRlc3RzLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RD
YXNlUmVnaXN0cnkgcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKyAgaW50ZXJuYWw6OlBh
cmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlf
OworICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeQorICAgICAg
dHlwZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfOworCisgIC8vIFRoZSBzZXQgaG9sZGlu
ZyB0aGUgbmFtZSBvZiBwYXJhbWV0ZXJpemVkCisgIC8vIHRlc3Qgc3VpdGVzIHRoYXQgbWF5IGdv
IHVuaW5zdGFudGlhdGVkLgorICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gaWdub3JlZF9wYXJhbWV0
ZXJpemVkX3Rlc3Rfc3VpdGVzXzsKIAogICAvLyBJbmRpY2F0ZXMgd2hldGhlciBSZWdpc3RlclBh
cmFtZXRlcml6ZWRUZXN0cygpIGhhcyBiZWVuIGNhbGxlZCBhbHJlYWR5LgogICBib29sIHBhcmFt
ZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF87CiAKLSAgLy8gSW5kZXggb2YgdGhlIGxhc3QgZGVh
dGggdGVzdCBjYXNlIHJlZ2lzdGVyZWQuICBJbml0aWFsbHkgLTEuCi0gIGludCBsYXN0X2RlYXRo
X3Rlc3RfY2FzZV87CisgIC8vIEluZGV4IG9mIHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3VpdGUgcmVn
aXN0ZXJlZC4gIEluaXRpYWxseSAtMS4KKyAgaW50IGxhc3RfZGVhdGhfdGVzdF9zdWl0ZV87CiAK
LSAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RDYXNlIGZvciB0aGUgY3VycmVudGx5IHJ1bm5p
bmcgdGVzdC4gIEl0Ci0gIC8vIGNoYW5nZXMgYXMgR29vZ2xlIFRlc3QgZ29lcyB0aHJvdWdoIG9u
ZSB0ZXN0IGNhc2UgYWZ0ZXIgYW5vdGhlci4KKyAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RT
dWl0ZSBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuICBJdAorICAvLyBjaGFuZ2VzIGFz
IEdvb2dsZSBUZXN0IGdvZXMgdGhyb3VnaCBvbmUgdGVzdCBzdWl0ZSBhZnRlciBhbm90aGVyLgog
ICAvLyBXaGVuIG5vIHRlc3QgaXMgcnVubmluZywgdGhpcyBpcyBzZXQgdG8gTlVMTCBhbmQgR29v
Z2xlIFRlc3QKICAgLy8gc3RvcmVzIGFzc2VydGlvbiByZXN1bHRzIGluIGFkX2hvY190ZXN0X3Jl
c3VsdF8uICBJbml0aWFsbHkgTlVMTC4KLSAgVGVzdENhc2UqIGN1cnJlbnRfdGVzdF9jYXNlXzsK
KyAgVGVzdFN1aXRlKiBjdXJyZW50X3Rlc3Rfc3VpdGVfOwogCiAgIC8vIFRoaXMgcG9pbnRzIHRv
IHRoZSBUZXN0SW5mbyBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuICBJdAogICAvLyBj
aGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdvZXMgdGhyb3VnaCBvbmUgdGVzdCBhZnRlciBhbm90aGVy
LiAgV2hlbgpAQCAtODkxLDcgKzkzMyw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBs
IHsKICAgLy8gZGVzaXJlZC4KICAgT3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKiBvc19zdGFj
a190cmFjZV9nZXR0ZXJfOwogCi0gIC8vIFRydWUgaWZmIFBvc3RGbGFnUGFyc2luZ0luaXQoKSBo
YXMgYmVlbiBjYWxsZWQuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgUG9zdEZsYWdQYXJzaW5n
SW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KICAgYm9vbCBwb3N0X2ZsYWdfcGFyc2VfaW5pdF9wZXJm
b3JtZWRfOwogCiAgIC8vIFRoZSByYW5kb20gbnVtYmVyIHNlZWQgdXNlZCBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSB0ZXN0IHJ1bi4KQEAgLTkxMCw4ICs5NTIsOCBAQCBjbGFzcyBHVEVTVF9BUElf
IFVuaXRUZXN0SW1wbCB7CiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKICAgLy8gVGhlIGRlY29t
cG9zZWQgY29tcG9uZW50cyBvZiB0aGUgZ3Rlc3RfaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QgZmxh
ZywKICAgLy8gcGFyc2VkIHdoZW4gUlVOX0FMTF9URVNUUyBpcyBjYWxsZWQuCi0gIGludGVybmFs
OjpzY29wZWRfcHRyPEludGVybmFsUnVuRGVhdGhUZXN0RmxhZz4gaW50ZXJuYWxfcnVuX2RlYXRo
X3Rlc3RfZmxhZ187Ci0gIGludGVybmFsOjpzY29wZWRfcHRyPGludGVybmFsOjpEZWF0aFRlc3RG
YWN0b3J5PiBkZWF0aF90ZXN0X2ZhY3RvcnlfOworICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxS
dW5EZWF0aFRlc3RGbGFnPiBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXzsKKyAgc3RkOjp1
bmlxdWVfcHRyPGludGVybmFsOjpEZWF0aFRlc3RGYWN0b3J5PiBkZWF0aF90ZXN0X2ZhY3Rvcnlf
OwogI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVAogCiAgIC8vIEEgcGVyLXRocmVhZCBz
dGFjayBvZiB0cmFjZXMgY3JlYXRlZCBieSB0aGUgU0NPUEVEX1RSQUNFKCkgbWFjcm8uCkBAIC05
NzgsMjQgKzEwMjAsMTEgQEAgYm9vbCBQYXJzZU5hdHVyYWxOdW1iZXIoY29uc3QgOjpzdGQ6OnN0
cmluZyYgc3RyLCBJbnRlZ2VyKiBudW1iZXIpIHsKICAgY2hhciogZW5kOwogICAvLyBCaWdnZXN0
Q29udmVydGlibGUgaXMgdGhlIGxhcmdlc3QgaW50ZWdlciB0eXBlIHRoYXQgc3lzdGVtLXByb3Zp
ZGVkCiAgIC8vIHN0cmluZy10by1udW1iZXIgY29udmVyc2lvbiByb3V0aW5lcyBjYW4gcmV0dXJu
LgorICB1c2luZyBCaWdnZXN0Q29udmVydGlibGUgPSB1bnNpZ25lZCBsb25nIGxvbmc7ICAvLyBO
T0xJTlQKIAotIyBpZiBHVEVTVF9PU19XSU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCi0g
IC8vIE1TVkMgYW5kIEMrKyBCdWlsZGVyIGRlZmluZSBfX2ludDY0IGluc3RlYWQgb2YgdGhlIHN0
YW5kYXJkIGxvbmcgbG9uZy4KLSAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IEJpZ2dlc3RDb252
ZXJ0aWJsZTsKLSAgY29uc3QgQmlnZ2VzdENvbnZlcnRpYmxlIHBhcnNlZCA9IF9zdHJ0b3VpNjQo
c3RyLmNfc3RyKCksICZlbmQsIDEwKTsKLQotIyBlbHNlCi0KLSAgdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgQmlnZ2VzdENvbnZlcnRpYmxlOyAgLy8gTk9MSU5UCi0gIGNvbnN0IEJpZ2dlc3RD
b252ZXJ0aWJsZSBwYXJzZWQgPSBzdHJ0b3VsbChzdHIuY19zdHIoKSwgJmVuZCwgMTApOwotCi0j
IGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCisgIGNv
bnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBzdHJ0b3VsbChzdHIuY19zdHIoKSwgJmVu
ZCwgMTApOyAgLy8gTk9MSU5UCiAgIGNvbnN0IGJvb2wgcGFyc2Vfc3VjY2VzcyA9ICplbmQgPT0g
J1wwJyAmJiBlcnJubyA9PSAwOwogCi0gIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY29tcGls
ZSB0aW1lIGFzc2VydGlvbiB3aGVuIGl0IGlzCi0gIC8vIGF2YWlsYWJsZS4KICAgR1RFU1RfQ0hF
Q0tfKHNpemVvZihJbnRlZ2VyKSA8PSBzaXplb2YocGFyc2VkKSk7CiAKICAgY29uc3QgSW50ZWdl
ciByZXN1bHQgPSBzdGF0aWNfY2FzdDxJbnRlZ2VyPihwYXJzZWQpOwpAQCAtMTA1OSwxOCArMTA4
OCwxOCBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExp
c3RlbmVyIHsKICAgICAgIE1ha2VDb25uZWN0aW9uKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+
U29ja2V0V3JpdGVyKCkgeworICAgIH5Tb2NrZXRXcml0ZXIoKSBvdmVycmlkZSB7CiAgICAgICBp
ZiAoc29ja2ZkXyAhPSAtMSkKICAgICAgICAgQ2xvc2VDb25uZWN0aW9uKCk7CiAgICAgfQogCiAg
ICAgLy8gU2VuZHMgYSBzdHJpbmcgdG8gdGhlIHNvY2tldC4KLSAgICB2aXJ0dWFsIHZvaWQgU2Vu
ZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICAgIHZvaWQgU2VuZChjb25zdCBzdGQ6
OnN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGUgewogICAgICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8g
IT0gLTEpCiAgICAgICAgICAgPDwgIlNlbmQoKSBjYW4gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGVy
ZSBpcyBhIGNvbm5lY3Rpb24uIjsKIAotICAgICAgY29uc3QgaW50IGxlbiA9IHN0YXRpY19jYXN0
PGludD4obWVzc2FnZS5sZW5ndGgoKSk7Ci0gICAgICBpZiAod3JpdGUoc29ja2ZkXywgbWVzc2Fn
ZS5jX3N0cigpLCBsZW4pICE9IGxlbikgeworICAgICAgY29uc3QgYXV0byBsZW4gPSBzdGF0aWNf
Y2FzdDxzaXplX3Q+KG1lc3NhZ2UubGVuZ3RoKCkpOworICAgICAgaWYgKHdyaXRlKHNvY2tmZF8s
IG1lc3NhZ2UuY19zdHIoKSwgbGVuKSAhPSBzdGF0aWNfY2FzdDxzc2l6ZV90PihsZW4pKSB7CiAg
ICAgICAgIEdURVNUX0xPR18oV0FSTklORykKICAgICAgICAgICAgIDw8ICJzdHJlYW1fcmVzdWx0
X3RvOiBmYWlsZWQgdG8gc3RyZWFtIHRvICIKICAgICAgICAgICAgIDw8IGhvc3RfbmFtZV8gPDwg
IjoiIDw8IHBvcnRfbnVtXzsKQEAgLTEwODIsNyArMTExMSw3IEBAIGNsYXNzIFN0cmVhbWluZ0xp
c3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAgIHZvaWQgTWFrZUNv
bm5lY3Rpb24oKTsKIAogICAgIC8vIENsb3NlcyB0aGUgc29ja2V0LgotICAgIHZvaWQgQ2xvc2VD
b25uZWN0aW9uKCkgeworICAgIHZvaWQgQ2xvc2VDb25uZWN0aW9uKCkgb3ZlcnJpZGUgewogICAg
ICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8gIT0gLTEpCiAgICAgICAgICAgPDwgIkNsb3NlQ29ubmVj
dGlvbigpIGNhbiBiZSBjYWxsZWQgb25seSB3aGVuIHRoZXJlIGlzIGEgY29ubmVjdGlvbi4iOwog
CkBAIC0xMTA4LDExICsxMTM3LDExIEBAIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICBleHBsaWNpdCBTdHJlYW1pbmdMaXN0ZW5lcihB
YnN0cmFjdFNvY2tldFdyaXRlciogc29ja2V0X3dyaXRlcikKICAgICAgIDogc29ja2V0X3dyaXRl
cl8oc29ja2V0X3dyaXRlcikgeyBTdGFydCgpOyB9CiAKLSAgdm9pZCBPblRlc3RQcm9ncmFtU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLykgeworICB2b2lkIE9uVGVzdFByb2dy
YW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7CiAgICAg
U2VuZExuKCJldmVudD1UZXN0UHJvZ3JhbVN0YXJ0Iik7CiAgIH0KIAotICB2b2lkIE9uVGVzdFBy
b2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgeworICB2b2lkIE9uVGVzdFByb2dy
YW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGUgewogICAgIC8vIE5vdGUg
dGhhdCBHb29nbGUgVGVzdCBjdXJyZW50IG9ubHkgcmVwb3J0IGVsYXBzZWQgdGltZSBmb3IgZWFj
aAogICAgIC8vIHRlc3QgaXRlcmF0aW9uLCBub3QgZm9yIHRoZSBlbnRpcmUgdGVzdCBwcm9ncmFt
LgogICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1FbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29s
KHVuaXRfdGVzdC5QYXNzZWQoKSkpOwpAQCAtMTEyMSw0MiArMTE1MCw0NyBAQCBjbGFzcyBTdHJl
YW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICBzb2Nr
ZXRfd3JpdGVyXy0+Q2xvc2VDb25uZWN0aW9uKCk7CiAgIH0KIAotICB2b2lkIE9uVGVzdEl0ZXJh
dGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8sIGludCBpdGVyYXRpb24p
IHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90
ZXN0ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJy
aWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RJdGVyYXRpb25TdGFydCZpdGVyYXRpb249IiAr
CiAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhpdGVyYXRpb24pKTsKICAgfQogCi0gIHZv
aWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCAvKiBp
dGVyYXRpb24gKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qIGl0ZXJhdGlvbiAq
Lykgb3ZlcnJpZGUgewogICAgIFNlbmRMbigiZXZlbnQ9VGVzdEl0ZXJhdGlvbkVuZCZwYXNzZWQ9
IiArCiAgICAgICAgICAgIEZvcm1hdEJvb2wodW5pdF90ZXN0LlBhc3NlZCgpKSArICImZWxhcHNl
ZF90aW1lPSIgKwogICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90ZXN0LmVsYXBz
ZWRfdGltZSgpKSArICJtcyIpOwogICB9CiAKLSAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3Qg
VGVzdENhc2UmIHRlc3RfY2FzZSkgeworICAvLyBOb3RlIHRoYXQgImV2ZW50PVRlc3RDYXNlU3Rh
cnQiIGlzIGEgd2lyZSBmb3JtYXQgYW5kIGhhcyB0byByZW1haW4KKyAgLy8gImNhc2UiIGZvciBj
b21wYXRpYmlsdHkKKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3Rf
Y2FzZSkgb3ZlcnJpZGUgewogICAgIFNlbmRMbihzdGQ6OnN0cmluZygiZXZlbnQ9VGVzdENhc2VT
dGFydCZuYW1lPSIpICsgdGVzdF9jYXNlLm5hbWUoKSk7CiAgIH0KIAotICB2b2lkIE9uVGVzdENh
c2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgewotICAgIFNlbmRMbigiZXZlbnQ9VGVz
dENhc2VFbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29sKHRlc3RfY2FzZS5QYXNzZWQoKSkKLSAgICAg
ICAgICAgKyAiJmVsYXBzZWRfdGltZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5l
bGFwc2VkX3RpbWUoKSkKLSAgICAgICAgICAgKyAibXMiKTsKKyAgLy8gTm90ZSB0aGF0ICJldmVu
dD1UZXN0Q2FzZUVuZCIgaXMgYSB3aXJlIGZvcm1hdCBhbmQgaGFzIHRvIHJlbWFpbgorICAvLyAi
Y2FzZSIgZm9yIGNvbXBhdGliaWx0eQorICB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENh
c2UmIHRlc3RfY2FzZSkgb3ZlcnJpZGUgeworICAgIFNlbmRMbigiZXZlbnQ9VGVzdENhc2VFbmQm
cGFzc2VkPSIgKyBGb3JtYXRCb29sKHRlc3RfY2FzZS5QYXNzZWQoKSkgKworICAgICAgICAgICAi
JmVsYXBzZWRfdGltZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5lbGFwc2VkX3Rp
bWUoKSkgKworICAgICAgICAgICAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0U3RhcnQoY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJ
bmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oc3RkOjpzdHJpbmcoImV2ZW50
PVRlc3RTdGFydCZuYW1lPSIpICsgdGVzdF9pbmZvLm5hbWUoKSk7CiAgIH0KIAotICB2b2lkIE9u
VGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CisgIHZvaWQgT25UZXN0RW5kKGNv
bnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRl
c3RFbmQmcGFzc2VkPSIgKwogICAgICAgICAgICBGb3JtYXRCb29sKCh0ZXN0X2luZm8ucmVzdWx0
KCkpLT5QYXNzZWQoKSkgKwogICAgICAgICAgICAiJmVsYXBzZWRfdGltZT0iICsKICAgICAgICAg
ICAgU3RyZWFtYWJsZVRvU3RyaW5nKCh0ZXN0X2luZm8ucmVzdWx0KCkpLT5lbGFwc2VkX3RpbWUo
KSkgKyAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFy
dFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgeworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29u
c3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIG92ZXJyaWRlIHsKICAgICBjb25z
dCBjaGFyKiBmaWxlX25hbWUgPSB0ZXN0X3BhcnRfcmVzdWx0LmZpbGVfbmFtZSgpOwotICAgIGlm
IChmaWxlX25hbWUgPT0gTlVMTCkKLSAgICAgIGZpbGVfbmFtZSA9ICIiOworICAgIGlmIChmaWxl
X25hbWUgPT0gbnVsbHB0cikgZmlsZV9uYW1lID0gIiI7CiAgICAgU2VuZExuKCJldmVudD1UZXN0
UGFydFJlc3VsdCZmaWxlPSIgKyBVcmxFbmNvZGUoZmlsZV9uYW1lKSArCiAgICAgICAgICAgICIm
bGluZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIo
KSkgKwogICAgICAgICAgICAiJm1lc3NhZ2U9IiArIFVybEVuY29kZSh0ZXN0X3BhcnRfcmVzdWx0
Lm1lc3NhZ2UoKSkpOwpAQCAtMTE3Miw3ICsxMjA2LDcgQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVu
ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAKICAgc3RkOjpzdHJpbmcgRm9y
bWF0Qm9vbChib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICIxIiA6ICIwIjsgfQogCi0gIGNv
bnN0IHNjb3BlZF9wdHI8QWJzdHJhY3RTb2NrZXRXcml0ZXI+IHNvY2tldF93cml0ZXJfOworICBj
b25zdCBzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTb2NrZXRXcml0ZXI+IHNvY2tldF93cml0ZXJf
OwogCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3RyZWFtaW5nTGlzdGVuZXIp
OwogfTsgIC8vIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyCkBAIC0xMTg0LDQgKzEyMTgsNCBAQCBj
bGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsK
IAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MQogCi0jZW5kaWYg
IC8vIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVT
VF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtbWF0Y2hlcnMuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxMDRlYmFiMWJhOWFmMDYzMjdmYzk0
YzBhMDM4YjY4MDZkNDIwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC1tYXRjaGVycy5jYwpAQCAtMCwwICsxLDk3IEBACisvLyBDb3B5cmlnaHQg
MjAwNywgR29vZ2xlIEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4K
Ky8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFRoZSBHb29nbGUgQysrIFRlc3Rp
bmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKKy8vCisvLyBUaGlzIGZpbGUg
aW1wbGVtZW50cyBqdXN0IGVub3VnaCBvZiB0aGUgbWF0Y2hlciBpbnRlcmZhY2UgdG8gYWxsb3cK
Ky8vIEVYUEVDVF9ERUFUSCBhbmQgZnJpZW5kcyB0byBhY2NlcHQgYSBtYXRjaGVyIGFyZ3VtZW50
LgorCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKKyNpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0
Y2hlcnMuaCIKKworI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHRlc3RpbmcgeworCisv
LyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYg
d2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5n
Jj46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRoaXMgPSBFcShzKTsgfQorCisv
LyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYg
d2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5n
Jj46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeworICAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMp
KTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgc3RkOjpzdHJp
bmcgd2hvc2UgdmFsdWUgaXMgZXF1YWwgdG8KKy8vIHMuCitNYXRjaGVyPHN0ZDo6c3RyaW5nPjo6
TWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcykgeyAqdGhpcyA9IEVxKHMpOyB9CisKKy8vIENv
bnN0cnVjdHMgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0ZDo6c3RyaW5nIHdob3NlIHZhbHVl
IGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxzdGQ6OnN0cmluZz46Ok1hdGNoZXIoY29uc3Qg
Y2hhciogcykgeyAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMpKTsgfQorCisjaWYgR1RFU1RfSU5U
RVJOQUxfSEFTX1NUUklOR19WSUVXCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01h
dGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihjb25zdCBzdGQ6OnN0
cmluZyYgcykgeworICAqdGhpcyA9IEVxKHMpOworfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hl
ciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1
YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihj
b25zdCBjaGFyKiBzKSB7CisgICp0aGlzID0gRXEoc3RkOjpzdHJpbmcocykpOworfQorCisvLyBD
b25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9z
ZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmlu
Z1ZpZXcmPjo6TWF0Y2hlcihpbnRlcm5hbDo6U3RyaW5nVmlldyBzKSB7CisgICp0aGlzID0gRXEo
c3RkOjpzdHJpbmcocykpOworfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBTdHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxp
bnRlcm5hbDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRo
aXMgPSBFcShzKTsgfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBT
dHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxpbnRlcm5h
bDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeworICAqdGhpcyA9IEVxKHN0
ZDo6c3RyaW5nKHMpKTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVz
IGEgU3RyaW5nVmlldyB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0bworLy8gcy4KK01hdGNoZXI8aW50
ZXJuYWw6OlN0cmluZ1ZpZXc+OjpNYXRjaGVyKGludGVybmFsOjpTdHJpbmdWaWV3IHMpIHsKKyAg
KnRoaXMgPSBFcShzdGQ6OnN0cmluZyhzKSk7Cit9CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFM
X0hBU19TVFJJTkdfVklFVworCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwppbmRleCBmZWNiNWQxMWMyMTI5NmE5MTgxYTEx
MjgwMjI2MDY3YjY0M2VkZDA1Li4zZjM5ZjcxYzA3NDU5YjVjMDExMDU3NzcxMTM0ZTVjMmI5OGNl
OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwpAQCAtMzEs
MTYgKzMxLDIxIEBACiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCiAj
aW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxj
c3RkaW50PgogI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgogCiAjaWYgR1RF
U1RfT1NfV0lORE9XUwogIyBpbmNsdWRlIDx3aW5kb3dzLmg+CiAjIGluY2x1ZGUgPGlvLmg+CiAj
IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjIGluY2x1ZGUgPG1hcD4gIC8vIFVzZWQgaW4gVGhyZWFk
TG9jYWwuCisjIGlmZGVmIF9NU0NfVkVSCisjICBpbmNsdWRlIDxjcnRkYmcuaD4KKyMgZW5kaWYg
IC8vIF9NU0NfVkVSCiAjZWxzZQogIyBpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZiAgLy8gR1RF
U1RfT1NfV0lORE9XUwpAQCAtNTEsNiArNTYsMTQgQEAKICMgaW5jbHVkZSA8bWFjaC92bV9tYXAu
aD4KICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKKyNpZiBHVEVTVF9PU19EUkFHT05GTFkgfHwg
R1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgXAorICAgIEdURVNU
X09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECisjIGluY2x1ZGUgPHN5cy9zeXNjdGwuaD4K
KyMgaWYgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1Nf
R05VX0tGUkVFQlNECisjICBpbmNsdWRlIDxzeXMvdXNlci5oPgorIyBlbmRpZgorI2VuZGlmCisK
ICNpZiBHVEVTVF9PU19RTlgKICMgaW5jbHVkZSA8ZGV2Y3RsLmg+CiAjIGluY2x1ZGUgPGZjbnRs
Lmg+CkBAIC0xMDUsNyArMTE4LDcgQEAgVCBSZWFkUHJvY0ZpbGVGaWVsZChjb25zdCBzdGQ6OnN0
cmluZyYgZmlsZW5hbWUsIGludCBmaWVsZCkgewogc2l6ZV90IEdldFRocmVhZENvdW50KCkgewog
ICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9CiAgICAgICAoTWVzc2FnZSgpIDw8ICIvcHJv
Yy8iIDw8IGdldHBpZCgpIDw8ICIvc3RhdCIpLkdldFN0cmluZygpOwotICByZXR1cm4gUmVhZFBy
b2NGaWxlRmllbGQ8aW50PihmaWxlbmFtZSwgMTkpOworICByZXR1cm4gUmVhZFByb2NGaWxlRmll
bGQ8c2l6ZV90PihmaWxlbmFtZSwgMTkpOwogfQogCiAjZWxpZiBHVEVTVF9PU19NQUMKQEAgLTEy
Nyw2ICsxNDAsODIgQEAgc2l6ZV90IEdldFRocmVhZENvdW50KCkgewogICB9CiB9CiAKKyNlbGlm
IEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX0dOVV9L
RlJFRUJTRCB8fCBcCisgICAgICBHVEVTVF9PU19ORVRCU0QKKworI2lmIEdURVNUX09TX05FVEJT
RAorI3VuZGVmIEtFUk5fUFJPQworI2RlZmluZSBLRVJOX1BST0MgS0VSTl9QUk9DMgorI2RlZmlu
ZSBraW5mb19wcm9jIGtpbmZvX3Byb2MyCisjZW5kaWYKKworI2lmIEdURVNUX09TX0RSQUdPTkZM
WQorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua3BfbnRocmVhZHMpCisjZWxpZiBHVEVTVF9PU19G
UkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRAorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Au
a2lfbnVtdGhyZWFkcykKKyNlbGlmIEdURVNUX09TX05FVEJTRAorI2RlZmluZSBLUF9OTFdQKGtw
KSAoa3AucF9ubHdwcykKKyNlbmRpZgorCisvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhyZWFk
cyBydW5uaW5nIGluIHRoZSBwcm9jZXNzLCBvciAwIHRvIGluZGljYXRlIHRoYXQKKy8vIHdlIGNh
bm5vdCBkZXRlY3QgaXQuCitzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CisgIGludCBtaWJbXSA9
IHsKKyAgICBDVExfS0VSTiwKKyAgICBLRVJOX1BST0MsCisgICAgS0VSTl9QUk9DX1BJRCwKKyAg
ICBnZXRwaWQoKSwKKyNpZiBHVEVTVF9PU19ORVRCU0QKKyAgICBzaXplb2Yoc3RydWN0IGtpbmZv
X3Byb2MpLAorICAgIDEsCisjZW5kaWYKKyAgfTsKKyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1p
YikgLyBzaXplb2YobWliWzBdKTsKKyAgc3RydWN0IGtpbmZvX3Byb2MgaW5mbzsKKyAgc2l6ZV90
IHNpemUgPSBzaXplb2YoaW5mbyk7CisgIGlmIChzeXNjdGwobWliLCBtaWJsZW4sICZpbmZvLCAm
c2l6ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorICByZXR1cm4gc3RhdGljX2Nh
c3Q8c2l6ZV90PihLUF9OTFdQKGluZm8pKTsKK30KKyNlbGlmIEdURVNUX09TX09QRU5CU0QKKwor
Ly8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgcnVubmluZyBpbiB0aGUgcHJvY2Vzcywg
b3IgMCB0byBpbmRpY2F0ZSB0aGF0CisvLyB3ZSBjYW5ub3QgZGV0ZWN0IGl0Lgorc2l6ZV90IEdl
dFRocmVhZENvdW50KCkgeworICBpbnQgbWliW10gPSB7CisgICAgQ1RMX0tFUk4sCisgICAgS0VS
Tl9QUk9DLAorICAgIEtFUk5fUFJPQ19QSUQgfCBLRVJOX1BST0NfU0hPV19USFJFQURTLAorICAg
IGdldHBpZCgpLAorICAgIHNpemVvZihzdHJ1Y3Qga2luZm9fcHJvYyksCisgICAgMCwKKyAgfTsK
KyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikgLyBzaXplb2YobWliWzBdKTsKKworICAvLyBn
ZXQgbnVtYmVyIG9mIHN0cnVjdHMKKyAgc2l6ZV90IHNpemU7CisgIGlmIChzeXNjdGwobWliLCBt
aWJsZW4sIE5VTEwsICZzaXplLCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAg
bWliWzVdID0gc3RhdGljX2Nhc3Q8aW50PihzaXplIC8gc3RhdGljX2Nhc3Q8c2l6ZV90PihtaWJb
NF0pKTsKKworICAvLyBwb3B1bGF0ZSBhcnJheSBvZiBzdHJ1Y3RzCisgIHN0cnVjdCBraW5mb19w
cm9jIGluZm9bbWliWzVdXTsKKyAgaWYgKHN5c2N0bChtaWIsIG1pYmxlbiwgJmluZm8sICZzaXpl
LCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gZXhjbHVkZSBlbXB0eSBt
ZW1iZXJzCisgIHNpemVfdCBudGhyZWFkcyA9IDA7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZSAvIHN0YXRpY19jYXN0PHNpemVfdD4obWliWzRdKTsgaSsrKSB7CisgICAgaWYgKGluZm9b
aV0ucF90aWQgIT0gLTEpCisgICAgICBudGhyZWFkcysrOworICB9CisgIHJldHVybiBudGhyZWFk
czsKK30KKwogI2VsaWYgR1RFU1RfT1NfUU5YCiAKIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0
aHJlYWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nlc3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhhdApAQCAt
MTM4LDcgKzIyNyw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICAgfQogICBwcm9jZnNf
aW5mbyBwcm9jZXNzX2luZm87CiAgIGNvbnN0IGludCBzdGF0dXMgPQotICAgICAgZGV2Y3RsKGZk
LCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6ZW9mKHByb2Nlc3NfaW5mbyksIE5V
TEwpOworICAgICAgZGV2Y3RsKGZkLCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6
ZW9mKHByb2Nlc3NfaW5mbyksIG51bGxwdHIpOwogICBjbG9zZShmZCk7CiAgIGlmIChzdGF0dXMg
PT0gRU9LKSB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvY2Vzc19pbmZvLm51
bV90aHJlYWRzKTsKQEAgLTE1Miw3ICsyNDEsNyBAQCBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7
CiBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAgIHN0cnVjdCBwcm9jZW50cnk2NCBlbnRyeTsK
ICAgcGlkX3QgcGlkID0gZ2V0cGlkKCk7Ci0gIGludCBzdGF0dXMgPSBnZXRwcm9jczY0KCZlbnRy
eSwgc2l6ZW9mKGVudHJ5KSwgTlVMTCwgMCwgJnBpZCwgMSk7CisgIGludCBzdGF0dXMgPSBnZXRw
cm9jczY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgbnVsbHB0ciwgMCwgJnBpZCwgMSk7CiAgIGlm
IChzdGF0dXMgPT0gMSkgewogICAgIHJldHVybiBlbnRyeS5waV90aGNvdW50OwogICB9IGVsc2Ug
ewpAQCAtMTkyLDcgKzI4MSw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICNpZiBHVEVT
VF9JU19USFJFQURTQUZFICYmIEdURVNUX09TX1dJTkRPV1MKIAogdm9pZCBTbGVlcE1pbGxpc2Vj
b25kcyhpbnQgbikgewotICA6OlNsZWVwKG4pOworICA6OlNsZWVwKHN0YXRpY19jYXN0PERXT1JE
PihuKSk7CiB9CiAKIEF1dG9IYW5kbGU6OkF1dG9IYW5kbGUoKQpAQCAtMjMwLDE1ICszMTksMTUg
QEAgdm9pZCBBdXRvSGFuZGxlOjpSZXNldChIQU5ETEUgaGFuZGxlKSB7CiBib29sIEF1dG9IYW5k
bGU6OklzQ2xvc2VhYmxlKCkgY29uc3QgewogICAvLyBEaWZmZXJlbnQgV2luZG93cyBBUElzIG1h
eSB1c2UgZWl0aGVyIG9mIHRoZXNlIHZhbHVlcyB0byByZXByZXNlbnQgYW4KICAgLy8gaW52YWxp
ZCBoYW5kbGUuCi0gIHJldHVybiBoYW5kbGVfICE9IE5VTEwgJiYgaGFuZGxlXyAhPSBJTlZBTElE
X0hBTkRMRV9WQUxVRTsKKyAgcmV0dXJuIGhhbmRsZV8gIT0gbnVsbHB0ciAmJiBoYW5kbGVfICE9
IElOVkFMSURfSEFORExFX1ZBTFVFOwogfQogCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbigp
Ci0gICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChOVUxMLCAgIC8vIERlZmF1bHQgc2VjdXJpdHkg
YXR0cmlidXRlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsICAgLy8gRG8gbm90
IHJlc2V0IGF1dG9tYXRpY2FsbHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwg
IC8vIEluaXRpYWxseSB1bnNldC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKSB7
ICAvLyBBbm9ueW1vdXMgZXZlbnQuCi0gIEdURVNUX0NIRUNLXyhldmVudF8uR2V0KCkgIT0gTlVM
TCk7CisgICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChudWxscHRyLCAgICAgLy8gRGVmYXVsdCBz
ZWN1cml0eSBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwgICAg
ICAgIC8vIERvIG5vdCByZXNldCBhdXRvbWF0aWNhbGx5LgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRkFMU0UsICAgICAgIC8vIEluaXRpYWxseSB1bnNldC4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG51bGxwdHIpKSB7ICAvLyBBbm9ueW1vdXMgZXZlbnQuCisgIEdURVNUX0NIRUNL
XyhldmVudF8uR2V0KCkgIT0gbnVsbHB0cik7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpOb3Rp
ZnkoKSB7CkBAIC0yNjEsMTMgKzM1MCwxMCBAQCBNdXRleDo6TXV0ZXgoKQogTXV0ZXg6On5NdXRl
eCgpIHsKICAgLy8gU3RhdGljIG11dGV4ZXMgYXJlIGxlYWtlZCBpbnRlbnRpb25hbGx5LiBJdCBp
cyBub3QgdGhyZWFkLXNhZmUgdG8gdHJ5CiAgIC8vIHRvIGNsZWFuIHRoZW0gdXAuCi0gIC8vIEZJ
WE1FOiBTd2l0Y2ggdG8gU2xpbSBSZWFkZXIvV3JpdGVyIChTUlcpIExvY2tzLCB3aGljaCByZXF1
aXJlcwotICAvLyBub3RoaW5nIHRvIGNsZWFuIGl0IHVwIGJ1dCBpcyBhdmFpbGFibGUgb25seSBv
biBWaXN0YSBhbmQgbGF0ZXIuCi0gIC8vIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVz
L3dpbmRvd3MvZGVza3RvcC9TeW5jL3NsaW0tcmVhZGVyLXdyaXRlci0tc3J3LS1sb2NrcwogICBp
ZiAodHlwZV8gPT0ga0R5bmFtaWMpIHsKICAgICA6OkRlbGV0ZUNyaXRpY2FsU2VjdGlvbihjcml0
aWNhbF9zZWN0aW9uXyk7CiAgICAgZGVsZXRlIGNyaXRpY2FsX3NlY3Rpb25fOwotICAgIGNyaXRp
Y2FsX3NlY3Rpb25fID0gTlVMTDsKKyAgICBjcml0aWNhbF9zZWN0aW9uXyA9IG51bGxwdHI7CiAg
IH0KIH0KIApAQCAtMjk2LDYgKzM4Miw3IEBAIHZvaWQgTXV0ZXg6OkFzc2VydEhlbGQoKSB7CiAK
IG5hbWVzcGFjZSB7CiAKKyNpZmRlZiBfTVNDX1ZFUgogLy8gVXNlIHRoZSBSQUlJIGlkaW9tIHRv
IGZsYWcgbWVtIGFsbG9jcyB0aGF0IGFyZSBpbnRlbnRpb25hbGx5IG5ldmVyCiAvLyBkZWFsbG9j
YXRlZC4gVGhlIG1vdGl2YXRpb24gaXMgdG8gc2lsZW5jZSB0aGUgZmFsc2UgcG9zaXRpdmUgbWVt
IGxlYWtzCiAvLyB0aGF0IGFyZSByZXBvcnRlZCBieSB0aGUgZGVidWcgdmVyc2lvbiBvZiBNUydz
IENSVCB3aGljaCBjYW4gb25seSBkZXRlY3QKQEAgLTMwOCwxOSArMzk1LDE1IEBAIGNsYXNzIE1l
bW9yeUlzTm90RGVhbGxvY2F0ZWQKIHsKICBwdWJsaWM6CiAgIE1lbW9yeUlzTm90RGVhbGxvY2F0
ZWQoKSA6IG9sZF9jcnRkYmdfZmxhZ18oMCkgewotI2lmZGVmIF9NU0NfVkVSCiAgICAgb2xkX2Ny
dGRiZ19mbGFnXyA9IF9DcnRTZXREYmdGbGFnKF9DUlREQkdfUkVQT1JUX0ZMQUcpOwogICAgIC8v
IFNldCBoZWFwIGFsbG9jYXRpb24gYmxvY2sgdHlwZSB0byBfSUdOT1JFX0JMT0NLIHNvIHRoYXQg
TVMgZGVidWcgQ1JUCiAgICAgLy8gZG9lc24ndCByZXBvcnQgbWVtIGxlYWsgaWYgdGhlcmUncyBu
byBtYXRjaGluZyBkZWFsbG9jYXRpb24uCiAgICAgX0NydFNldERiZ0ZsYWcob2xkX2NydGRiZ19m
bGFnXyAmIH5fQ1JUREJHX0FMTE9DX01FTV9ERik7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9
CiAKICAgfk1lbW9yeUlzTm90RGVhbGxvY2F0ZWQoKSB7Ci0jaWZkZWYgX01TQ19WRVIKICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBfQ1JUREJHX0FMTE9DX01FTV9ERiBmbGFnCiAgICAgX0Ny
dFNldERiZ0ZsYWcob2xkX2NydGRiZ19mbGFnXyk7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9
CiAKICBwcml2YXRlOgpAQCAtMzI4LDYgKzQxMSw3IEBAIGNsYXNzIE1lbW9yeUlzTm90RGVhbGxv
Y2F0ZWQKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKE1lbW9yeUlzTm90RGVh
bGxvY2F0ZWQpOwogfTsKKyNlbmRpZiAgLy8gX01TQ19WRVIKIAogfSAgLy8gbmFtZXNwYWNlCiAK
QEAgLTM0Myw3ICs0MjcsOSBAQCB2b2lkIE11dGV4OjpUaHJlYWRTYWZlTGF6eUluaXQoKSB7CiAg
ICAgICAgIG93bmVyX3RocmVhZF9pZF8gPSAwOwogICAgICAgICB7CiAgICAgICAgICAgLy8gVXNl
IFJBSUkgdG8gZmxhZyB0aGF0IGZvbGxvd2luZyBtZW0gYWxsb2MgaXMgbmV2ZXIgZGVhbGxvY2F0
ZWQuCisjaWZkZWYgX01TQ19WRVIKICAgICAgICAgICBNZW1vcnlJc05vdERlYWxsb2NhdGVkIG1l
bW9yeV9pc19ub3RfZGVhbGxvY2F0ZWQ7CisjZW5kaWYgIC8vIF9NU0NfVkVSCiAgICAgICAgICAg
Y3JpdGljYWxfc2VjdGlvbl8gPSBuZXcgQ1JJVElDQUxfU0VDVElPTjsKICAgICAgICAgfQogICAg
ICAgICA6OkluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbl8pOwpAQCAt
Mzg0LDE3ICs0NzAsMTYgQEAgY2xhc3MgVGhyZWFkV2l0aFBhcmFtU3VwcG9ydCA6IHB1YmxpYyBU
aHJlYWRXaXRoUGFyYW1CYXNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZp
Y2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgVGhyZWFkTWFpblBhcmFtKiBwYXJhbSA9
IG5ldyBUaHJlYWRNYWluUGFyYW0ocnVubmFibGUsIHRocmVhZF9jYW5fc3RhcnQpOwogICAgIERX
T1JEIHRocmVhZF9pZDsKLSAgICAvLyBGSVhNRTogQ29uc2lkZXIgdG8gdXNlIF9iZWdpbnRocmVh
ZGV4IGluc3RlYWQuCiAgICAgSEFORExFIHRocmVhZF9oYW5kbGUgPSA6OkNyZWF0ZVRocmVhZCgK
LSAgICAgICAgTlVMTCwgICAgLy8gRGVmYXVsdCBzZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAg
Ly8gRGVmYXVsdCBzdGFjayBzaXplLgorICAgICAgICBudWxscHRyLCAgLy8gRGVmYXVsdCBzZWN1
cml0eS4KKyAgICAgICAgMCwgICAgICAgIC8vIERlZmF1bHQgc3RhY2sgc2l6ZS4KICAgICAgICAg
JlRocmVhZFdpdGhQYXJhbVN1cHBvcnQ6OlRocmVhZE1haW4sCi0gICAgICAgIHBhcmFtLCAgIC8v
IFBhcmFtZXRlciB0byBUaHJlYWRNYWluU3RhdGljCi0gICAgICAgIDB4MCwgICAgIC8vIERlZmF1
bHQgY3JlYXRpb24gZmxhZ3MuCisgICAgICAgIHBhcmFtLCAgICAgICAgLy8gUGFyYW1ldGVyIHRv
IFRocmVhZE1haW5TdGF0aWMKKyAgICAgICAgMHgwLCAgICAgICAgICAvLyBEZWZhdWx0IGNyZWF0
aW9uIGZsYWdzLgogICAgICAgICAmdGhyZWFkX2lkKTsgIC8vIE5lZWQgYSB2YWxpZCBwb2ludGVy
IGZvciB0aGUgY2FsbCB0byB3b3JrIHVuZGVyIFdpbjk4LgotICAgIEdURVNUX0NIRUNLXyh0aHJl
YWRfaGFuZGxlICE9IE5VTEwpIDw8ICJDcmVhdGVUaHJlYWQgZmFpbGVkIHdpdGggZXJyb3IgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDo6R2V0TGFzdEVycm9y
KCkgPDwgIi4iOwotICAgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpIHsKKyAgICBHVEVTVF9D
SEVDS18odGhyZWFkX2hhbmRsZSAhPSBudWxscHRyKQorICAgICAgICA8PCAiQ3JlYXRlVGhyZWFk
IGZhaWxlZCB3aXRoIGVycm9yICIgPDwgOjpHZXRMYXN0RXJyb3IoKSA8PCAiLiI7CisgICAgaWYg
KHRocmVhZF9oYW5kbGUgPT0gbnVsbHB0cikgewogICAgICAgZGVsZXRlIHBhcmFtOwogICAgIH0K
ICAgICByZXR1cm4gdGhyZWFkX2hhbmRsZTsKQEAgLTQwNiwxNSArNDkxLDE1IEBAIGNsYXNzIFRo
cmVhZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgICAg
ICAgIDogcnVubmFibGVfKHJ1bm5hYmxlKSwKICAgICAgICAgICB0aHJlYWRfY2FuX3N0YXJ0Xyh0
aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgfQotICAgIHNjb3BlZF9wdHI8UnVubmFibGU+IHJ1bm5h
YmxlXzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVubmFibGU+IHJ1bm5hYmxlXzsKICAgICAvLyBE
b2VzIG5vdCBvd24uCiAgICAgTm90aWZpY2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0XzsKICAgfTsK
IAogICBzdGF0aWMgRFdPUkQgV0lOQVBJIFRocmVhZE1haW4odm9pZCogcHRyKSB7CiAgICAgLy8g
VHJhbnNmZXJzIG93bmVyc2hpcC4KLSAgICBzY29wZWRfcHRyPFRocmVhZE1haW5QYXJhbT4gcGFy
YW0oc3RhdGljX2Nhc3Q8VGhyZWFkTWFpblBhcmFtKj4ocHRyKSk7Ci0gICAgaWYgKHBhcmFtLT50
aHJlYWRfY2FuX3N0YXJ0XyAhPSBOVUxMKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRNYWlu
UGFyYW0+IHBhcmFtKHN0YXRpY19jYXN0PFRocmVhZE1haW5QYXJhbSo+KHB0cikpOworICAgIGlm
IChwYXJhbS0+dGhyZWFkX2Nhbl9zdGFydF8gIT0gbnVsbHB0cikKICAgICAgIHBhcmFtLT50aHJl
YWRfY2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlvbigpOwogICAgIHBhcmFtLT5ydW5uYWJs
ZV8tPlJ1bigpOwogICAgIHJldHVybiAwOwpAQCAtNDUzLDYgKzUzOCw5IEBAIGNsYXNzIFRocmVh
ZExvY2FsUmVnaXN0cnlJbXBsIHsKICAgLy8gUmV0dXJucyBhIHZhbHVlIHRoYXQgY2FuIGJlIHVz
ZWQgdG8gaWRlbnRpZnkgdGhlIHRocmVhZCBmcm9tIG90aGVyIHRocmVhZHMuCiAgIHN0YXRpYyBU
aHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSogR2V0VmFsdWVPbkN1cnJlbnRUaHJlYWQoCiAgICAg
ICBjb25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgeworI2lmZGVm
IF9NU0NfVkVSCisgICAgTWVtb3J5SXNOb3REZWFsbG9jYXRlZCBtZW1vcnlfaXNfbm90X2RlYWxs
b2NhdGVkOworI2VuZGlmICAvLyBfTVNDX1ZFUgogICAgIERXT1JEIGN1cnJlbnRfdGhyZWFkID0g
OjpHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBNdXRleExvY2sgbG9jaygmbXV0ZXhfKTsKICAg
ICBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBjb25zdCB0aHJlYWRfdG9fdGhyZWFkX2xvY2FscyA9
CkBAIC00NzIsNyArNTYwLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogICAg
ICAgICAgIHRocmVhZF9sb2NhbF92YWx1ZXMKICAgICAgICAgICAgICAgLmluc2VydChzdGQ6Om1h
a2VfcGFpcigKICAgICAgICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9pbnN0YW5jZSwKLSAgICAg
ICAgICAgICAgICAgIGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+KAorICAg
ICAgICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNl
PigKICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfaW5zdGFuY2UtPk5ld1ZhbHVl
Rm9yQ3VycmVudFRocmVhZCgpKSkpCiAgICAgICAgICAgICAgIC5maXJzdDsKICAgICB9CkBAIC00
ODEsNyArNTY5LDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogCiAgIHN0YXRp
YyB2b2lkIE9uVGhyZWFkTG9jYWxEZXN0cm95ZWQoCiAgICAgICBjb25zdCBUaHJlYWRMb2NhbEJh
c2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgewotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8
VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBzdGQ6OnZl
Y3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVf
aG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkTG9jYWxWYWx1ZXMgZGF0YSBzdHJ1
Y3R1cmUgd2hpbGUgaG9sZGluZyB0aGUgbG9jaywgYnV0CiAgICAgLy8gZGVmZXIgdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMuCiAgICAgewpAQCAtNTA5
LDcgKzU5Nyw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsKIAogICBzdGF0aWMg
dm9pZCBPblRocmVhZEV4aXQoRFdPUkQgdGhyZWFkX2lkKSB7CiAgICAgR1RFU1RfQ0hFQ0tfKHRo
cmVhZF9pZCAhPSAwKSA8PCA6OkdldExhc3RFcnJvcigpOwotICAgIHN0ZDo6dmVjdG9yPGxpbmtl
ZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBz
dGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4g
dmFsdWVfaG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkSWRUb1RocmVhZExvY2Fs
cyBkYXRhIHN0cnVjdHVyZSB3aGlsZSBob2xkaW5nIHRoZQogICAgIC8vIGxvY2ssIGJ1dCBkZWZl
ciB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlcy4KICAg
ICB7CkBAIC01MzYsNyArNjI0LDggQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewog
IHByaXZhdGU6CiAgIC8vIEluIGEgcGFydGljdWxhciB0aHJlYWQsIG1hcHMgYSBUaHJlYWRMb2Nh
bCBvYmplY3QgdG8gaXRzIHZhbHVlLgogICB0eXBlZGVmIHN0ZDo6bWFwPGNvbnN0IFRocmVhZExv
Y2FsQmFzZSosCi0gICAgICAgICAgICAgICAgICAgbGlua2VkX3B0cjxUaHJlYWRMb2NhbFZhbHVl
SG9sZGVyQmFzZT4gPiBUaHJlYWRMb2NhbFZhbHVlczsKKyAgICAgICAgICAgICAgICAgICBzdGQ6
OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4KKyAgICAgIFRocmVhZExv
Y2FsVmFsdWVzOwogICAvLyBTdG9yZXMgYWxsIFRocmVhZElkVG9UaHJlYWRMb2NhbHMgaGF2aW5n
IHZhbHVlcyBpbiBhIHRocmVhZCwgaW5kZXhlZCBieQogICAvLyB0aHJlYWQncyBJRC4KICAgdHlw
ZWRlZiBzdGQ6Om1hcDxEV09SRCwgVGhyZWFkTG9jYWxWYWx1ZXM+IFRocmVhZElkVG9UaHJlYWRM
b2NhbHM7CkBAIC01NTEsMTggKzY0MCwxNyBAQCBjbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1w
bCB7CiAgICAgSEFORExFIHRocmVhZCA9IDo6T3BlblRocmVhZChTWU5DSFJPTklaRSB8IFRIUkVB
RF9RVUVSWV9JTkZPUk1BVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX2lkKTsKLSAgICBH
VEVTVF9DSEVDS18odGhyZWFkICE9IE5VTEwpOworICAgIEdURVNUX0NIRUNLXyh0aHJlYWQgIT0g
bnVsbHB0cik7CiAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGEgdmFsaWQgdGhyZWFkIElEIHBvaW50
ZXIgaW50byBDcmVhdGVUaHJlYWQgZm9yIGl0CiAgICAgLy8gdG8gd29yayBjb3JyZWN0bHkgdW5k
ZXIgV2luOTguCiAgICAgRFdPUkQgd2F0Y2hlcl90aHJlYWRfaWQ7CiAgICAgSEFORExFIHdhdGNo
ZXJfdGhyZWFkID0gOjpDcmVhdGVUaHJlYWQoCi0gICAgICAgIE5VTEwsICAgLy8gRGVmYXVsdCBz
ZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAvLyBEZWZhdWx0IHN0YWNrIHNpemUKKyAgICAgICAg
bnVsbHB0ciwgIC8vIERlZmF1bHQgc2VjdXJpdHkuCisgICAgICAgIDAsICAgICAgICAvLyBEZWZh
dWx0IHN0YWNrIHNpemUKICAgICAgICAgJlRocmVhZExvY2FsUmVnaXN0cnlJbXBsOjpXYXRjaGVy
VGhyZWFkRnVuYywKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxMUFZPSUQ+KG5ldyBUaHJlYWRJ
ZEFuZEhhbmRsZSh0aHJlYWRfaWQsIHRocmVhZCkpLAotICAgICAgICBDUkVBVEVfU1VTUEVOREVE
LAotICAgICAgICAmd2F0Y2hlcl90aHJlYWRfaWQpOwotICAgIEdURVNUX0NIRUNLXyh3YXRjaGVy
X3RocmVhZCAhPSBOVUxMKTsKKyAgICAgICAgQ1JFQVRFX1NVU1BFTkRFRCwgJndhdGNoZXJfdGhy
ZWFkX2lkKTsKKyAgICBHVEVTVF9DSEVDS18od2F0Y2hlcl90aHJlYWQgIT0gbnVsbHB0cik7CiAg
ICAgLy8gR2l2ZSB0aGUgd2F0Y2hlciB0aHJlYWQgdGhlIHNhbWUgcHJpb3JpdHkgYXMgb3VycyB0
byBhdm9pZCBiZWluZwogICAgIC8vIGJsb2NrZWQgYnkgaXQuCiAgICAgOjpTZXRUaHJlYWRQcmlv
cml0eSh3YXRjaGVyX3RocmVhZCwKQEAgLTU4Nyw3ICs2NzUsOSBAQCBjbGFzcyBUaHJlYWRMb2Nh
bFJlZ2lzdHJ5SW1wbCB7CiAgIC8vIFJldHVybnMgbWFwIG9mIHRocmVhZCBsb2NhbCBpbnN0YW5j
ZXMuCiAgIHN0YXRpYyBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBHZXRUaHJlYWRMb2NhbHNNYXBM
b2NrZWQoKSB7CiAgICAgbXV0ZXhfLkFzc2VydEhlbGQoKTsKKyNpZmRlZiBfTVNDX1ZFUgogICAg
IE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQgbWVtb3J5X2lzX25vdF9kZWFsbG9jYXRlZDsKKyNlbmRp
ZiAgLy8gX01TQ19WRVIKICAgICBzdGF0aWMgVGhyZWFkSWRUb1RocmVhZExvY2FscyogbWFwID0g
bmV3IFRocmVhZElkVG9UaHJlYWRMb2NhbHMoKTsKICAgICByZXR1cm4gbWFwOwogICB9CkBAIC02
MzAsNyArNzIwLDcgQEAgUkU6On5SRSgpIHsKICAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihwYXR0
ZXJuXykpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBt
YXRjaGVzIHRoZSBlbnRpcmUgc3RyLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJl
Z3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgogYm9vbCBSRTo6RnVs
bE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFs
aWRfKSByZXR1cm4gZmFsc2U7CiAKQEAgLTYzOCw4ICs3MjgsOCBAQCBib29sIFJFOjpGdWxsTWF0
Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlZ2V4ZWMoJnJl
LmZ1bGxfcmVnZXhfLCBzdHIsIDEsICZtYXRjaCwgMCkgPT0gMDsKIH0KIAotLy8gUmV0dXJucyB0
cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIK
LS8vIChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkg
aWYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2YKKy8vIHN0ciAo
aW5jbHVkaW5nIHN0ciBpdHNlbGYpLgogYm9vbCBSRTo6UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIq
IHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7
CiAKQEAgLTY3OSwxNCArNzY5LDE0IEBAIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgp
IHsKIAogI2VsaWYgR1RFU1RfVVNFU19TSU1QTEVfUkUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBj
aCBhcHBlYXJzIGFueXdoZXJlIGluIHN0ciAoZXhjbHVkaW5nIHRoZQorLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIGNoIGFwcGVhcnMgYW55d2hlcmUgaW4gc3RyIChleGNsdWRpbmcgdGhl
CiAvLyB0ZXJtaW5hdGluZyAnXDAnIGNoYXJhY3RlcikuCiBib29sIElzSW5TZXQoY2hhciBjaCwg
Y29uc3QgY2hhciogc3RyKSB7Ci0gIHJldHVybiBjaCAhPSAnXDAnICYmIHN0cmNocihzdHIsIGNo
KSAhPSBOVUxMOworICByZXR1cm4gY2ggIT0gJ1wwJyAmJiBzdHJjaHIoc3RyLCBjaCkgIT0gbnVs
bHB0cjsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBiZWxvbmdzIHRvIHRoZSBnaXZlbiBj
bGFzc2lmaWNhdGlvbi4gIFVubGlrZQotLy8gc2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+
LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgY2ggYmVsb25ncyB0byB0aGUgZ2l2ZW4gY2xhc3NpZmljYXRpb24uCisvLyBVbmxpa2Ug
c2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkg
dGhlCiAvLyBjdXJyZW50IGxvY2FsZS4KIGJvb2wgSXNBc2NpaURpZ2l0KGNoYXIgY2gpIHsgcmV0
dXJuICcwJyA8PSBjaCAmJiBjaCA8PSAnOSc7IH0KIGJvb2wgSXNBc2NpaVB1bmN0KGNoYXIgY2gp
IHsKQEAgLTY5OSwxMyArNzg5LDEzIEBAIGJvb2wgSXNBc2NpaVdvcmRDaGFyKGNoYXIgY2gpIHsK
ICAgICAgICgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8fCBjaCA9PSAnXyc7CiB9CiAKLS8vIFJl
dHVybnMgdHJ1ZSBpZmYgIlxcYyIgaXMgYSBzdXBwb3J0ZWQgZXNjYXBlIHNlcXVlbmNlLgorLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmICJcXGMiIGlzIGEgc3VwcG9ydGVkIGVzY2FwZSBz
ZXF1ZW5jZS4KIGJvb2wgSXNWYWxpZEVzY2FwZShjaGFyIGMpIHsKICAgcmV0dXJuIChJc0FzY2lp
UHVuY3QoYykgfHwgSXNJblNldChjLCAiZERmbnJzU3R2d1ciKSk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIGdpdmVuIGF0b20gKHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZCBwYXR0ZXJu
KQotLy8gbWF0Y2hlcyBjaC4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlz
IGludmFsaWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVuIGF0b20g
KHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZAorLy8gcGF0dGVybikgbWF0Y2hlcyBjaC4gIFRoZSBy
ZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlzIGludmFsaWQuCiBib29sIEF0b21NYXRj
aGVzQ2hhcihib29sIGVzY2FwZWQsIGNoYXIgcGF0dGVybl9jaGFyLCBjaGFyIGNoKSB7CiAgIGlm
IChlc2NhcGVkKSB7ICAvLyAiXFxwIiB3aGVyZSBwIGlzIHBhdHRlcm5fY2hhci4KICAgICBzd2l0
Y2ggKHBhdHRlcm5fY2hhcikgewpAQCAtNzM2LDE3ICs4MjYsMTQgQEAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEZvcm1hdFJlZ2V4U3ludGF4RXJyb3IoY29uc3QgY2hhciogcmVnZXgsIGludCBpbmRleCkg
ewogLy8gR2VuZXJhdGVzIG5vbi1mYXRhbCBmYWlsdXJlcyBhbmQgcmV0dXJucyBmYWxzZSBpZiBy
ZWdleCBpcyBpbnZhbGlkOwogLy8gb3RoZXJ3aXNlIHJldHVybnMgdHJ1ZS4KIGJvb2wgVmFsaWRh
dGVSZWdleChjb25zdCBjaGFyKiByZWdleCkgewotICBpZiAocmVnZXggPT0gTlVMTCkgewotICAg
IC8vIEZJWE1FOiBmaXggdGhlIHNvdXJjZSBmaWxlIGxvY2F0aW9uIGluIHRoZQotICAgIC8vIGFz
c2VydGlvbiBmYWlsdXJlcyB0byBtYXRjaCB3aGVyZSB0aGUgcmVnZXggaXMgdXNlZCBpbiB1c2Vy
Ci0gICAgLy8gY29kZS4KKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIpIHsKICAgICBBRERfRkFJTFVS
RSgpIDw8ICJOVUxMIGlzIG5vdCBhIHZhbGlkIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24uIjsK
ICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAogICBib29sIGlzX3ZhbGlkID0gdHJ1ZTsKIAotICAv
LyBUcnVlIGlmZiA/LCAqLCBvciArIGNhbiBmb2xsb3cgdGhlIHByZXZpb3VzIGF0b20uCisgIC8v
IFRydWUgaWYgYW5kIG9ubHkgaWYgPywgKiwgb3IgKyBjYW4gZm9sbG93IHRoZSBwcmV2aW91cyBh
dG9tLgogICBib29sIHByZXZfcmVwZWF0YWJsZSA9IGZhbHNlOwogICBmb3IgKGludCBpID0gMDsg
cmVnZXhbaV07IGkrKykgewogICAgIGlmIChyZWdleFtpXSA9PSAnXFwnKSB7ICAvLyBBbiBlc2Nh
cGUgc2VxdWVuY2UKQEAgLTgyMiw4ICs5MDksOCBAQCBib29sIE1hdGNoUmVwZXRpdGlvbkFuZFJl
Z2V4QXRIZWFkKAogICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVn
ZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIuICByZWdleCBtdXN0IGJlIGEKLS8vIHZhbGlkIHNp
bXBsZSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIG5vdCBzdGFydCB3aXRoICJeIiwgb3IgdGhlCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVnZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBz
dHIuIHJlZ2V4IG11c3QKKy8vIGJlIGEgdmFsaWQgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBh
bmQgbm90IHN0YXJ0IHdpdGggIl4iLCBvciB0aGUKIC8vIHJlc3VsdCBpcyB1bmRlZmluZWQuCiBi
b29sIE1hdGNoUmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikg
ewogICBpZiAoKnJlZ2V4ID09ICdcMCcpICAvLyBBbiBlbXB0eSByZWdleCBtYXRjaGVzIGEgcHJl
Zml4IG9mIGFueXRoaW5nLgpAQCAtODUzLDggKzk0MCw4IEBAIGJvb2wgTWF0Y2hSZWdleEF0SGVh
ZChjb25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKSB7CiAgIH0KIH0KIAotLy8gUmV0
dXJucyB0cnVlIGlmZiByZWdleCBtYXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXgg
bXVzdCBiZQotLy8gYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVz
dWx0IGlzIHVuZGVmaW5lZC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWdleCBt
YXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXggbXVzdAorLy8gYmUgYSB2YWxpZCBz
aW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KIC8v
CiAvLyBUaGUgYWxnb3JpdGhtIGlzIHJlY3Vyc2l2ZSwgYnV0IHRoZSByZWN1cnNpb24gZGVwdGgg
ZG9lc24ndCBleGNlZWQKIC8vIHRoZSByZWdleCBsZW5ndGgsIHNvIHdlIHdvbid0IG5lZWQgdG8g
d29ycnkgYWJvdXQgcnVubmluZyBvdXQgb2YKQEAgLTg2Miw4ICs5NDksNyBAQCBib29sIE1hdGNo
UmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewogLy8gZXhw
b25lbnRpYWwgd2l0aCByZXNwZWN0IHRvIHRoZSByZWdleCBsZW5ndGggKyB0aGUgc3RyaW5nIGxl
bmd0aCwKIC8vIGJ1dCB1c3VhbGx5IGl0J3MgbXVzdCBmYXN0ZXIgKG9mdGVuIGNsb3NlIHRvIGxp
bmVhcikuCiBib29sIE1hdGNoUmVnZXhBbnl3aGVyZShjb25zdCBjaGFyKiByZWdleCwgY29uc3Qg
Y2hhciogc3RyKSB7Ci0gIGlmIChyZWdleCA9PSBOVUxMIHx8IHN0ciA9PSBOVUxMKQotICAgIHJl
dHVybiBmYWxzZTsKKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIgfHwgc3RyID09IG51bGxwdHIpIHJl
dHVybiBmYWxzZTsKIAogICBpZiAoKnJlZ2V4ID09ICdeJykKICAgICByZXR1cm4gTWF0Y2hSZWdl
eEF0SGVhZChyZWdleCArIDEsIHN0cik7CkBAIC04ODMsMjEgKzk2OSwyMSBAQCBSRTo6flJFKCkg
ewogICBmcmVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGZ1bGxfcGF0dGVybl8pKTsKIH0KIAotLy8gUmV0
dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0
ci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUg
bWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KIGJvb2wgUkU6OkZ1bGxNYXRjaChjb25zdCBjaGFyKiBz
dHIsIGNvbnN0IFJFJiByZSkgewogICByZXR1cm4gcmUuaXNfdmFsaWRfICYmIE1hdGNoUmVnZXhB
bnl3aGVyZShyZS5mdWxsX3BhdHRlcm5fLCBzdHIpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZm
IHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHN0cgotLy8gKGlu
Y2x1ZGluZyBzdHIgaXRzZWxmKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1
bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZgorLy8gc3RyIChpbmNsdWRp
bmcgc3RyIGl0c2VsZikuCiBib29sIFJFOjpQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3RyLCBj
b25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlLmlzX3ZhbGlkXyAmJiBNYXRjaFJlZ2V4QW55d2hl
cmUocmUucGF0dGVybl8sIHN0cik7CiB9CiAKIC8vIEluaXRpYWxpemVzIGFuIFJFIGZyb20gaXRz
IHN0cmluZyByZXByZXNlbnRhdGlvbi4KIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgp
IHsKLSAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gTlVMTDsKLSAgaWYgKHJlZ2V4ICE9IE5V
TEwpIHsKKyAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gbnVsbHB0cjsKKyAgaWYgKHJlZ2V4
ICE9IG51bGxwdHIpIHsKICAgICBwYXR0ZXJuXyA9IHBvc2l4OjpTdHJEdXAocmVnZXgpOwogICB9
CiAKQEAgLTkzNSw3ICsxMDIxLDcgQEAgY29uc3QgY2hhciBrVW5rbm93bkZpbGVbXSA9ICJ1bmtu
b3duIGZpbGUiOwogLy8gRm9ybWF0cyBhIHNvdXJjZSBmaWxlIHBhdGggYW5kIGEgbGluZSBudW1i
ZXIgYXMgdGhleSB3b3VsZCBhcHBlYXIKIC8vIGluIGFuIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUg
Y29tcGlsZXIgdXNlZCB0byBjb21waWxlIHRoaXMgY29kZS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0
cmluZyBGb3JtYXRGaWxlTG9jYXRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsKLSAg
Y29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gTlVMTCA/IGtVbmtub3duRmlsZSA6
IGZpbGUpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlX25hbWUoZmlsZSA9PSBudWxscHRyID8g
a1Vua25vd25GaWxlIDogZmlsZSk7CiAKICAgaWYgKGxpbmUgPCAwKSB7CiAgICAgcmV0dXJuIGZp
bGVfbmFtZSArICI6IjsKQEAgLTk1NCw3ICsxMDQwLDcgQEAgR1RFU1RfQVBJXyA6OnN0ZDo6c3Ry
aW5nIEZvcm1hdEZpbGVMb2NhdGlvbihjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewogLy8g
dG8gdGhlIGZpbGUgbG9jYXRpb24gaXQgcHJvZHVjZXMsIHVubGlrZSBGb3JtYXRGaWxlTG9jYXRp
b24oKS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBGb3JtYXRDb21waWxlckluZGVwZW5kZW50
RmlsZUxvY2F0aW9uKAogICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7Ci0gIGNvbnN0
IHN0ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IE5VTEwgPyBrVW5rbm93bkZpbGUgOiBmaWxl
KTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gbnVsbHB0ciA/IGtVbmtu
b3duRmlsZSA6IGZpbGUpOwogCiAgIGlmIChsaW5lIDwgMCkKICAgICByZXR1cm4gZmlsZV9uYW1l
OwpAQCAtMTAyMSwyMCArMTEwNywyMiBAQCBjbGFzcyBDYXB0dXJlZFN0cmVhbSB7CiAgICAgLy8g
Y29kZSBhcyBwYXJ0IG9mIGEgcmVndWxhciBzdGFuZGFsb25lIGV4ZWN1dGFibGUsIHdoaWNoIGRv
ZXNuJ3QKICAgICAvLyBydW4gaW4gYSBEYWx2aWsgcHJvY2VzcyAoZS5nLiB3aGVuIHJ1bm5pbmcg
aXQgdGhyb3VnaCAnYWRiIHNoZWxsJykuCiAgICAgLy8KLSAgICAvLyBUaGUgbG9jYXRpb24gL3Nk
Y2FyZCBpcyBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gbmF0aXZlIGNvZGUKLSAgICAvLyBhbmQg
aXMgdGhlIG9ubHkgbG9jYXRpb24gKHVub2ZmaWNpYWxseSkgc3VwcG9ydGVkIGJ5IHRoZSBBbmRy
b2lkCi0gICAgLy8gdGVhbS4gSXQncyBnZW5lcmFsbHkgYSBzeW1saW5rIHRvIHRoZSByZWFsIFNE
IENhcmQgbW91bnQgcG9pbnQKLSAgICAvLyB3aGljaCBjYW4gYmUgL21udC9zZGNhcmQsIC9tbnQv
c2RjYXJkMCwgL3N5c3RlbS9tZWRpYS9zZGNhcmQsIG9yCi0gICAgLy8gb3RoZXIgT0VNLWN1c3Rv
bWl6ZWQgbG9jYXRpb25zLiBOZXZlciByZWx5IG9uIHRoZXNlLCBhbmQgYWx3YXlzCi0gICAgLy8g
dXNlIC9zZGNhcmQuCi0gICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL3NkY2FyZC9ndGVzdF9j
YXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKKyAgICAvLyBUaGUgbG9jYXRpb24gL2RhdGEvbG9jYWwv
dG1wIGlzIGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBuYXRpdmUgY29kZS4KKyAgICAvLyAnL3Nk
Y2FyZCcgYW5kIG90aGVyIHZhcmlhbnRzIGNhbm5vdCBiZSByZWxpZWQgb24sIGFzIHRoZXkgYXJl
IG5vdAorICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgbW91bnRlZCwgb3IgbWF5IGhhdmUgYSBkZWxh
eSBpbiBtb3VudGluZy4KKyAgICBjaGFyIG5hbWVfdGVtcGxhdGVbXSA9ICIvZGF0YS9sb2NhbC90
bXAvZ3Rlc3RfY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7CiAjICBlbHNlCiAgICAgY2hhciBuYW1l
X3RlbXBsYXRlW10gPSAiL3RtcC9jYXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKICMgIGVuZGlmICAv
LyBHVEVTVF9PU19MSU5VWF9BTkRST0lECiAgICAgY29uc3QgaW50IGNhcHR1cmVkX2ZkID0gbWtz
dGVtcChuYW1lX3RlbXBsYXRlKTsKKyAgICBpZiAoY2FwdHVyZWRfZmQgPT0gLTEpIHsKKyAgICAg
IEdURVNUX0xPR18oV0FSTklORykKKyAgICAgICAgICA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB0bXAg
ZmlsZSAiIDw8IG5hbWVfdGVtcGxhdGUKKyAgICAgICAgICA8PCAiIGZvciB0ZXN0OyBkb2VzIHRo
ZSB0ZXN0IGhhdmUgYWNjZXNzIHRvIHRoZSAvdG1wIGRpcmVjdG9yeT8iOworICAgIH0KICAgICBm
aWxlbmFtZV8gPSBuYW1lX3RlbXBsYXRlOwogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwot
ICAgIGZmbHVzaChOVUxMKTsKKyAgICBmZmx1c2gobnVsbHB0cik7CiAgICAgZHVwMihjYXB0dXJl
ZF9mZCwgZmRfKTsKICAgICBjbG9zZShjYXB0dXJlZF9mZCk7CiAgIH0KQEAgLTEwNDYsMTMgKzEx
MzQsMTcgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogICBzdGQ6OnN0cmluZyBHZXRDYXB0dXJl
ZFN0cmluZygpIHsKICAgICBpZiAodW5jYXB0dXJlZF9mZF8gIT0gLTEpIHsKICAgICAgIC8vIFJl
c3RvcmVzIHRoZSBvcmlnaW5hbCBzdHJlYW0uCi0gICAgICBmZmx1c2goTlVMTCk7CisgICAgICBm
Zmx1c2gobnVsbHB0cik7CiAgICAgICBkdXAyKHVuY2FwdHVyZWRfZmRfLCBmZF8pOwogICAgICAg
Y2xvc2UodW5jYXB0dXJlZF9mZF8pOwogICAgICAgdW5jYXB0dXJlZF9mZF8gPSAtMTsKICAgICB9
CiAKICAgICBGSUxFKiBjb25zdCBmaWxlID0gcG9zaXg6OkZPcGVuKGZpbGVuYW1lXy5jX3N0cigp
LCAiciIpOworICAgIGlmIChmaWxlID09IG51bGxwdHIpIHsKKyAgICAgIEdURVNUX0xPR18oRkFU
QUwpIDw8ICJGYWlsZWQgdG8gb3BlbiB0bXAgZmlsZSAiIDw8IGZpbGVuYW1lXworICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIiBmb3IgY2FwdHVyaW5nIHN0cmVhbS4iOworICAgIH0KICAgICBj
b25zdCBzdGQ6OnN0cmluZyBjb250ZW50ID0gUmVhZEVudGlyZUZpbGUoZmlsZSk7CiAgICAgcG9z
aXg6OkZDbG9zZShmaWxlKTsKICAgICByZXR1cm4gY29udGVudDsKQEAgLTEwNjksMTMgKzExNjEs
MTMgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogCiBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNB
VEVEX1BPUF8oKQogCi1zdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3RkZXJyID0g
TlVMTDsKLXN0YXRpYyBDYXB0dXJlZFN0cmVhbSogZ19jYXB0dXJlZF9zdGRvdXQgPSBOVUxMOwor
c3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZGVyciA9IG51bGxwdHI7CitzdGF0
aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rkb3V0ID0gbnVsbHB0cjsKIAogLy8gU3Rh
cnRzIGNhcHR1cmluZyBhbiBvdXRwdXQgc3RyZWFtIChzdGRvdXQvc3RkZXJyKS4KIHN0YXRpYyB2
b2lkIENhcHR1cmVTdHJlYW0oaW50IGZkLCBjb25zdCBjaGFyKiBzdHJlYW1fbmFtZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZWRTdHJlYW0qKiBzdHJlYW0pIHsKLSAgaWYgKCpz
dHJlYW0gIT0gTlVMTCkgeworICBpZiAoKnN0cmVhbSAhPSBudWxscHRyKSB7CiAgICAgR1RFU1Rf
TE9HXyhGQVRBTCkgPDwgIk9ubHkgb25lICIgPDwgc3RyZWFtX25hbWUKICAgICAgICAgICAgICAg
ICAgICAgICA8PCAiIGNhcHR1cmVyIGNhbiBleGlzdCBhdCBhIHRpbWUuIjsKICAgfQpAQCAtMTA4
Nyw3ICsxMTc5LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldENhcHR1cmVkU3RyZWFtKENhcHR1
cmVkU3RyZWFtKiogY2FwdHVyZWRfc3RyZWFtKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvbnRl
bnQgPSAoKmNhcHR1cmVkX3N0cmVhbSktPkdldENhcHR1cmVkU3RyaW5nKCk7CiAKICAgZGVsZXRl
ICpjYXB0dXJlZF9zdHJlYW07Ci0gICpjYXB0dXJlZF9zdHJlYW0gPSBOVUxMOworICAqY2FwdHVy
ZWRfc3RyZWFtID0gbnVsbHB0cjsKIAogICByZXR1cm4gY29udGVudDsKIH0KQEAgLTExNDYsMTAg
KzEyMzgsMTEgQEAgc3RkOjpzdHJpbmcgUmVhZEVudGlyZUZpbGUoRklMRSogZmlsZSkgewogfQog
CiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLXN0YXRpYyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9IE5VTEw7ICAvLyBPd25lZC4KK3N0YXRp
YyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9
CisgICAgbnVsbHB0cjsgIC8vIE93bmVkLgogCiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0
SW5qZWN0YWJsZUFyZ3ZzKCkgewotICBpZiAoZ19pbmplY3RlZF90ZXN0X2FyZ3ZzICE9IE5VTEwp
IHsKKyAgaWYgKGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJu
ICpnX2luamVjdGVkX3Rlc3RfYXJndnM7CiAgIH0KICAgcmV0dXJuIEdldEFyZ3ZzKCk7CkBAIC0x
MTY1LDE2ICsxMjU4LDkgQEAgdm9pZCBTZXRJbmplY3RhYmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+JiBuZXdfYXJndnMpIHsKICAgICAgIG5ldyBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4obmV3X2FyZ3ZzLmJlZ2luKCksIG5ld19hcmd2cy5lbmQoKSkpOwogfQogCi0jaWYg
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0
ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cykgewotICBTZXRJbmplY3RhYmxlQXJndnMo
Ci0gICAgICBuZXcgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KG5ld19hcmd2cy5iZWdpbigpLCBu
ZXdfYXJndnMuZW5kKCkpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcK
LQogdm9pZCBDbGVhckluamVjdGFibGVBcmd2cygpIHsKICAgZGVsZXRlIGdfaW5qZWN0ZWRfdGVz
dF9hcmd2czsKLSAgZ19pbmplY3RlZF90ZXN0X2FyZ3ZzID0gTlVMTDsKKyAgZ19pbmplY3RlZF90
ZXN0X2FyZ3ZzID0gbnVsbHB0cjsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QK
IApAQCAtMTIwNSw5ICsxMjkxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZsYWdUb0VudlZhcihj
b25zdCBjaGFyKiBmbGFnKSB7CiAvLyBQYXJzZXMgJ3N0cicgZm9yIGEgMzItYml0IHNpZ25lZCBp
bnRlZ2VyLiAgSWYgc3VjY2Vzc2Z1bCwgd3JpdGVzCiAvLyB0aGUgcmVzdWx0IHRvICp2YWx1ZSBh
bmQgcmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVzICp2YWx1ZQogLy8gdW5jaGFuZ2VkIGFu
ZCByZXR1cm5zIGZhbHNlLgotYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0
LCBjb25zdCBjaGFyKiBzdHIsIEludDMyKiB2YWx1ZSkgeworYm9vbCBQYXJzZUludDMyKGNvbnN0
IE1lc3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBzdHIsIGludDMyX3QqIHZhbHVlKSB7CiAg
IC8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgYSBkZWNpbWFsIGludGVnZXIu
Ci0gIGNoYXIqIGVuZCA9IE5VTEw7CisgIGNoYXIqIGVuZCA9IG51bGxwdHI7CiAgIGNvbnN0IGxv
bmcgbG9uZ192YWx1ZSA9IHN0cnRvbChzdHIsICZlbmQsIDEwKTsgIC8vIE5PTElOVAogCiAgIC8v
IEhhcyBzdHJ0b2woKSBjb25zdW1lZCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nPwpAQCAt
MTIyMiwxMyArMTMwOCwxMyBAQCBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3Rl
eHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKSB7CiAgICAgcmV0dXJuIGZhbHNlOwog
ICB9CiAKLSAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gSW50MzI/
Ci0gIGNvbnN0IEludDMyIHJlc3VsdCA9IHN0YXRpY19jYXN0PEludDMyPihsb25nX3ZhbHVlKTsK
KyAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gaW50MzJfdD8KKyAg
Y29uc3QgYXV0byByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQzMl90Pihsb25nX3ZhbHVlKTsKICAg
aWYgKGxvbmdfdmFsdWUgPT0gTE9OR19NQVggfHwgbG9uZ192YWx1ZSA9PSBMT05HX01JTiB8fAog
ICAgICAgLy8gVGhlIHBhcnNlZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYSBsb25nLiAgKHN0cnRvbCgp
IHJldHVybnMKICAgICAgIC8vIExPTkdfTUFYIG9yIExPTkdfTUlOIHdoZW4gdGhlIGlucHV0IG92
ZXJmbG93cy4pCiAgICAgICByZXN1bHQgIT0gbG9uZ192YWx1ZQotICAgICAgLy8gVGhlIHBhcnNl
ZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYW4gSW50MzIuCisgICAgICAvLyBUaGUgcGFyc2VkIHZhbHVl
IG92ZXJmbG93cyBhcyBhbiBpbnQzMl90LgogICAgICAgKSB7CiAgICAgTWVzc2FnZSBtc2c7CiAg
ICAgbXNnIDw8ICJXQVJOSU5HOiAiIDw8IHNyY190ZXh0CkBAIC0xMjQ2LDMzICsxMzMyLDMzIEBA
IGJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3Ry
LCBJbnQzMiogdmFsdWUpIHsKIC8vIFJlYWRzIGFuZCByZXR1cm5zIHRoZSBCb29sZWFuIGVudmly
b25tZW50IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8KIC8vIHRoZSBnaXZlbiBmbGFnOyBpZiBp
dCdzIG5vdCBzZXQsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KIC8vCi0vLyBUaGUgdmFsdWUgaXMg
Y29uc2lkZXJlZCB0cnVlIGlmZiBpdCdzIG5vdCAiMCIuCisvLyBUaGUgdmFsdWUgaXMgY29uc2lk
ZXJlZCB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0J3Mgbm90ICIwIi4KIGJvb2wgQm9vbEZyb21HVGVz
dEVudihjb25zdCBjaGFyKiBmbGFnLCBib29sIGRlZmF1bHRfdmFsdWUpIHsKICNpZiBkZWZpbmVk
KEdURVNUX0dFVF9CT09MX0ZST01fRU5WXykKICAgcmV0dXJuIEdURVNUX0dFVF9CT09MX0ZST01f
RU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVu
dl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0cmluZ192
YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHN0cmluZ192
YWx1ZSA9PSBOVUxMID8KLSAgICAgIGRlZmF1bHRfdmFsdWUgOiBzdHJjbXAoc3RyaW5nX3ZhbHVl
LCAiMCIpICE9IDA7CisgIHJldHVybiBzdHJpbmdfdmFsdWUgPT0gbnVsbHB0ciA/IGRlZmF1bHRf
dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyY21wKHN0cmluZ192
YWx1ZSwgIjAiKSAhPSAwOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9CT09MX0ZST01f
RU5WXykKIH0KIAogLy8gUmVhZHMgYW5kIHJldHVybnMgYSAzMi1iaXQgaW50ZWdlciBzdG9yZWQg
aW4gdGhlIGVudmlyb25tZW50CiAvLyB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZl
biBmbGFnOyBpZiBpdCBpc24ndCBzZXQgb3IKIC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgdmFsaWQg
MzItYml0IGludGVnZXIsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KLUludDMyIEludDMyRnJvbUdU
ZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUpIHsKK2ludDMyX3Qg
SW50MzJGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgaW50MzJfdCBkZWZhdWx0X3ZhbHVl
KSB7CiAjaWYgZGVmaW5lZChHVEVTVF9HRVRfSU5UMzJfRlJPTV9FTlZfKQogICByZXR1cm4gR1RF
U1RfR0VUX0lOVDMyX0ZST01fRU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNv
bnN0IHN0ZDo6c3RyaW5nIGVudl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNo
YXIqIGNvbnN0IHN0cmluZ192YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsK
LSAgaWYgKHN0cmluZ192YWx1ZSA9PSBOVUxMKSB7CisgIGlmIChzdHJpbmdfdmFsdWUgPT0gbnVs
bHB0cikgewogICAgIC8vIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LgogICAg
IHJldHVybiBkZWZhdWx0X3ZhbHVlOwogICB9CiAKLSAgSW50MzIgcmVzdWx0ID0gZGVmYXVsdF92
YWx1ZTsKKyAgaW50MzJfdCByZXN1bHQgPSBkZWZhdWx0X3ZhbHVlOwogICBpZiAoIVBhcnNlSW50
MzIoTWVzc2FnZSgpIDw8ICJFbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IGVudl92YXIsCiAgICAg
ICAgICAgICAgICAgICBzdHJpbmdfdmFsdWUsICZyZXN1bHQpKSB7CiAgICAgcHJpbnRmKCJUaGUg
ZGVmYXVsdCB2YWx1ZSAlcyBpcyB1c2VkLlxuIiwKQEAgLTEyOTYsNyArMTM4Miw3IEBAIEludDMy
IEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUp
IHsKIHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdBbHNvQ2hlY2tFbnZWYXIoKXsKICAgc3RkOjpzdHJp
bmcgZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWcgPSAiIjsKICAgY29uc3QgY2hhciogeG1s
X291dHB1dF9maWxlX2VudiA9IHBvc2l4OjpHZXRFbnYoIlhNTF9PVVRQVVRfRklMRSIpOwotICBp
ZiAoTlVMTCAhPSB4bWxfb3V0cHV0X2ZpbGVfZW52KSB7CisgIGlmIChudWxscHRyICE9IHhtbF9v
dXRwdXRfZmlsZV9lbnYpIHsKICAgICBkZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZyA9IHN0
ZDo6c3RyaW5nKCJ4bWw6IikgKyB4bWxfb3V0cHV0X2ZpbGVfZW52OwogICB9CiAgIHJldHVybiBk
ZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZzsKQEAgLTEzMTAsNyArMTM5Niw3IEBAIGNvbnN0
IGNoYXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBjb25zdCBjaGFyKiBk
ZWZhdWx0X3ZhbHVlKSB7CiAjZWxzZQogICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0gRmxh
Z1RvRW52VmFyKGZsYWcpOwogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZSA9IHBvc2l4OjpHZXRF
bnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHZhbHVlID09IE5VTEwgPyBkZWZhdWx0X3Zh
bHVlIDogdmFsdWU7CisgIHJldHVybiB2YWx1ZSA9PSBudWxscHRyID8gZGVmYXVsdF92YWx1ZSA6
IHZhbHVlOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9TVFJJTkdfRlJPTV9FTlZfKQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRl
cnMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MKaW5k
ZXggZGU0ZDI0NWU5ZmM4ODk3YWYyMTM3Njc5ZDkxM2Q2NjVmZDg0MzZlMS4uMWI2OGZjYjUwMDU1
MGY4ZDA4NDZiMTU4NDU1YTEyNmJiYzRiZmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc3JjL2d0ZXN0LXByaW50ZXJzLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC1wcmludGVycy5jYwpAQCAtNDIsMTEgKzQyLDE2IEBACiAvLyBkZWZpbmVz
IEZvby4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCisKICNpbmNsdWRlIDxz
dGRpby5oPgorCiAjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVk
ZSA8Y3djaGFyPgogI2luY2x1ZGUgPG9zdHJlYW0+ICAvLyBOT0xJTlQKICNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1wb3J0LmgiCiAjaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgogCkBAIC01
OSw2ICs2NCw3IEBAIHVzaW5nIDo6c3RkOjpvc3RyZWFtOwogLy8gUHJpbnRzIGEgc2VnbWVudCBv
ZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0LgogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpF
X01FTU9SWV8KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXworR1RFU1RfQVRU
UklCVVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVEla
RV9USFJFQURfCiB2b2lkIFByaW50Qnl0ZVNlZ21lbnRJbk9iamVjdFRvKGNvbnN0IHVuc2lnbmVk
IGNoYXIqIG9ial9ieXRlcywgc2l6ZV90IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgY291bnQsIG9zdHJlYW0qIG9zKSB7CkBAIC04OSw3ICs5NSw2IEBAIHZv
aWQgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKGNvbnN0IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRl
cywgc2l6ZV90IGNvdW50LAogICAvLyBJZiB0aGUgb2JqZWN0IHNpemUgaXMgYmlnZ2VyIHRoYW4g
a1RocmVzaG9sZCwgd2UnbGwgaGF2ZSB0byBvbWl0CiAgIC8vIHNvbWUgZGV0YWlscyBieSBwcmlu
dGluZyBvbmx5IHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qga0NodW5rU2l6ZQogICAvLyBieXRlcy4K
LSAgLy8gRklYTUU6IGxldCB0aGUgdXNlciBjb250cm9sIHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBm
bGFnLgogICBpZiAoY291bnQgPCBrVGhyZXNob2xkKSB7CiAgICAgUHJpbnRCeXRlU2VnbWVudElu
T2JqZWN0VG8ob2JqX2J5dGVzLCAwLCBjb3VudCwgb3MpOwogICB9IGVsc2UgewpAQCAtMTAyLDkg
KzEwNywxOSBAQCB2b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1wbChjb25zdCB1bnNpZ25lZCBj
aGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgKm9zIDw8ICI+IjsKIH0KIAorLy8gSGVs
cGVycyBmb3Igd2lkZW5pbmcgYSBjaGFyYWN0ZXIgdG8gY2hhcjMyX3QuIFNpbmNlIHRoZSBzdGFu
ZGFyZCBkb2VzIG5vdAorLy8gc3BlY2lmeSBpZiBjaGFyIC8gd2NoYXJfdCBpcyBzaWduZWQgb3Ig
dW5zaWduZWQsIGl0IGlzIGltcG9ydGFudCB0byBmaXJzdAorLy8gY29udmVydCBpdCB0byB0aGUg
dW5zaWduZWQgdHlwZSBvZiB0aGUgc2FtZSB3aWR0aCBiZWZvcmUgd2lkZW5pbmcgaXQgdG8KKy8v
IGNoYXIzMl90LgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgorY2hhcjMyX3QgVG9DaGFy
MzIoQ2hhclR5cGUgaW4pIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIzMl90PigKKyAgICAg
IHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6bWFrZV91bnNpZ25lZDxDaGFyVHlwZT46OnR5cGU+
KGluKSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZQogCi1uYW1lc3BhY2UgaW50ZXJuYWwyIHsKK25h
bWVzcGFjZSBpbnRlcm5hbCB7CiAKIC8vIERlbGVnYXRlcyB0byBQcmludEJ5dGVzSW5PYmplY3RU
b0ltcGwoKSB0byBwcmludCB0aGUgYnl0ZXMgaW4gdGhlCiAvLyBnaXZlbiBvYmplY3QuICBUaGUg
ZGVsZWdhdGlvbiBzaW1wbGlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2gKQEAgLTExNiwx
MCArMTMxLDYgQEAgdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKG9i
al9ieXRlcywgY291bnQsIG9zKTsKIH0KIAotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotCi1u
YW1lc3BhY2UgaW50ZXJuYWwgewotCiAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGEgY2hh
ciAob3Igd2NoYXJfdCksIHdlIHByaW50IGl0IGluIG9uZQogLy8gb2YgdGhyZWUgZm9ybWF0czoK
IC8vICAgLSBhcyBpcyBpZiBpdCdzIGEgcHJpbnRhYmxlIEFTQ0lJIChlLmcuICdhJywgJzInLCAn
ICcpLApAQCAtMTM0LDE3ICsxNDUsMTUgQEAgZW51bSBDaGFyRm9ybWF0IHsKIC8vIFJldHVybnMg
dHJ1ZSBpZiBjIGlzIGEgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3Rlci4gIFdlIHRlc3QgdGhlCiAv
LyB2YWx1ZSBvZiBjIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBpc3ByaW50KCksIHdoaWNo
IGlzIGJ1Z2d5IG9uCiAvLyBXaW5kb3dzIE1vYmlsZS4KLWlubGluZSBib29sIElzUHJpbnRhYmxl
QXNjaWkod2NoYXJfdCBjKSB7Ci0gIHJldHVybiAweDIwIDw9IGMgJiYgYyA8PSAweDdFOwotfQor
aW5saW5lIGJvb2wgSXNQcmludGFibGVBc2NpaShjaGFyMzJfdCBjKSB7IHJldHVybiAweDIwIDw9
IGMgJiYgYyA8PSAweDdFOyB9CiAKLS8vIFByaW50cyBhIHdpZGUgb3IgbmFycm93IGNoYXIgYyBh
cyBhIGNoYXJhY3RlciBsaXRlcmFsIHdpdGhvdXQgdGhlCi0vLyBxdW90ZXMsIGVzY2FwaW5nIGl0
IHdoZW4gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi0vLyBUaGUgdGVt
cGxhdGUgYXJndW1lbnQgVW5zaWduZWRDaGFyIGlzIHRoZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENo
YXIsCi0vLyB3aGljaCBpcyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2ln
bmVkQ2hhciwgdHlwZW5hbWUgQ2hhcj4KKy8vIFByaW50cyBjIChvZiB0eXBlIGNoYXIsIGNoYXI4
X3QsIGNoYXIxNl90LCBjaGFyMzJfdCwgb3Igd2NoYXJfdCkgYXMgYQorLy8gY2hhcmFjdGVyIGxp
dGVyYWwgd2l0aG91dCB0aGUgcXVvdGVzLCBlc2NhcGluZyBpdCB3aGVuIG5lY2Vzc2FyeTsgcmV0
dXJucyBob3cKKy8vIGMgd2FzIGZvcm1hdHRlZC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyPgog
c3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hhciBjLCBvc3RyZWFtKiBv
cykgewotICBzd2l0Y2ggKHN0YXRpY19jYXN0PHdjaGFyX3Q+KGMpKSB7CisgIGNvbnN0IGNoYXIz
Ml90IHVfYyA9IFRvQ2hhcjMyKGMpOworICBzd2l0Y2ggKHVfYykgewogICAgIGNhc2UgTCdcMCc6
CiAgICAgICAqb3MgPDwgIlxcMCI7CiAgICAgICBicmVhazsKQEAgLTE3NiwxMyArMTg1LDEyIEBA
IHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRvKENoYXIgYywgb3N0cmVhbSog
b3MpIHsKICAgICAgICpvcyA8PCAiXFx2IjsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0g
ICAgICBpZiAoSXNQcmludGFibGVBc2NpaShjKSkgeworICAgICAgaWYgKElzUHJpbnRhYmxlQXNj
aWkodV9jKSkgewogICAgICAgICAqb3MgPDwgc3RhdGljX2Nhc3Q8Y2hhcj4oYyk7CiAgICAgICAg
IHJldHVybiBrQXNJczsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIG9zdHJlYW06OmZtdGZsYWdz
IGZsYWdzID0gb3MtPmZsYWdzKCk7Ci0gICAgICAgICpvcyA8PCAiXFx4IiA8PCBzdGQ6OmhleCA8
PCBzdGQ6OnVwcGVyY2FzZQotICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50PihzdGF0aWNf
Y2FzdDxVbnNpZ25lZENoYXI+KGMpKTsKKyAgICAgICAgKm9zIDw8ICJcXHgiIDw8IHN0ZDo6aGV4
IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0YXRpY19jYXN0PGludD4odV9jKTsKICAgICAgICAgb3Mt
PmZsYWdzKGZsYWdzKTsKICAgICAgICAgcmV0dXJuIGtIZXhFc2NhcGU7CiAgICAgICB9CkBAIC0x
OTAsOSArMTk4LDkgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hh
ciBjLCBvc3RyZWFtKiBvcykgewogICByZXR1cm4ga1NwZWNpYWxFc2NhcGU7CiB9CiAKLS8vIFBy
aW50cyBhIHdjaGFyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNj
YXBpbmcgaXQgd2hlbgorLy8gUHJpbnRzIGEgY2hhcjMyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2Yg
YSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hlbgogLy8gbmVjZXNzYXJ5OyByZXR1cm5z
IGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi1zdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0
ZXJhbFRvKHdjaGFyX3QgYywgb3N0cmVhbSogb3MpIHsKK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50
QXNTdHJpbmdMaXRlcmFsVG8oY2hhcjMyX3QgYywgb3N0cmVhbSogb3MpIHsKICAgc3dpdGNoIChj
KSB7CiAgICAgY2FzZSBMJ1wnJzoKICAgICAgICpvcyA8PCAiJyI7CkBAIC0yMDEsMjYgKzIwOSw2
OCBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywg
b3N0cmVhbSogb3MpIHsKICAgICAgICpvcyA8PCAiXFxcIiI7CiAgICAgICByZXR1cm4ga1NwZWNp
YWxFc2NhcGU7CiAgICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiBQcmludEFzQ2hhckxpdGVyYWxU
bzx3Y2hhcl90PihjLCBvcyk7CisgICAgICByZXR1cm4gUHJpbnRBc0NoYXJMaXRlcmFsVG8oYywg
b3MpOwogICB9CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hh
cikgeworICByZXR1cm4gIiI7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQ
cmVmaXgoc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciogR2V0Q2hhcldpZHRoUHJlZml4KHVuc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQor
CisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFBy
ZWZpeChjaGFyOF90KSB7CisgIHJldHVybiAidTgiOworfQorI2VuZGlmCisKK3N0YXRpYyBjb25z
dCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcjE2X3QpIHsKKyAgcmV0dXJuICJ1IjsKK30K
Kworc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZpeChjaGFyMzJfdCkgeworICBy
ZXR1cm4gIlUiOworfQorCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4KHdj
aGFyX3QpIHsKKyAgcmV0dXJuICJMIjsKK30KKwogLy8gUHJpbnRzIGEgY2hhciBjIGFzIGlmIGl0
J3MgcGFydCBvZiBhIHN0cmluZyBsaXRlcmFsLCBlc2NhcGluZyBpdCB3aGVuCiAvLyBuZWNlc3Nh
cnk7IHJldHVybnMgaG93IGMgd2FzIGZvcm1hdHRlZC4KIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50
QXNTdHJpbmdMaXRlcmFsVG8oY2hhciBjLCBvc3RyZWFtKiBvcykgewotICByZXR1cm4gUHJpbnRB
c1N0cmluZ0xpdGVyYWxUbygKLSAgICAgIHN0YXRpY19jYXN0PHdjaGFyX3Q+KHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXI+KGMpKSwgb3MpOworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxU
byhUb0NoYXIzMihjKSwgb3MpOworfQorCisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIENo
YXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyOF90IGMsIG9zdHJlYW0qIG9zKSB7
CisgIHJldHVybiBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKFRvQ2hhcjMyKGMpLCBvcyk7Cit9Cisj
ZW5kaWYKKworc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyMTZf
dCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0No
YXIzMihjKSwgb3MpOwogfQogCi0vLyBQcmludHMgYSB3aWRlIG9yIG5hcnJvdyBjaGFyYWN0ZXIg
YyBhbmQgaXRzIGNvZGUuICAnXDAnIGlzIHByaW50ZWQKLS8vIGFzICInXFwwJyIsIG90aGVyIHVu
cHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIGFsc28gcHJvcGVybHkgZXNjYXBlZAotLy8gdXNpbmcg
dGhlIHN0YW5kYXJkIEMrKyBlc2NhcGUgc2VxdWVuY2UuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQK
LS8vIFVuc2lnbmVkQ2hhciBpcyB0aGUgdW5zaWduZWQgdmVyc2lvbiBvZiBDaGFyLCB3aGljaCBp
cyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVkQ2hhciwgdHlwZW5h
bWUgQ2hhcj4KK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8od2NoYXJf
dCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0No
YXIzMihjKSwgb3MpOworfQorCisvLyBQcmludHMgYSBjaGFyYWN0ZXIgYyAob2YgdHlwZSBjaGFy
LCBjaGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QpCisvLyBhbmQgaXRzIGNv
ZGUuICdcMCcgaXMgcHJpbnRlZCBhcyAiJ1xcMCciLCBvdGhlciB1bnByaW50YWJsZSBjaGFyYWN0
ZXJzIGFyZQorLy8gYWxzbyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBDKysg
ZXNjYXBlIHNlcXVlbmNlLgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXI+CiB2b2lkIFByaW50Q2hh
ckFuZENvZGVUbyhDaGFyIGMsIG9zdHJlYW0qIG9zKSB7CiAgIC8vIEZpcnN0LCBwcmludCBjIGFz
IGEgbGl0ZXJhbCBpbiB0aGUgbW9zdCByZWFkYWJsZSBmb3JtIHdlIGNhbiBmaW5kLgotICAqb3Mg
PDwgKChzaXplb2YoYykgPiAxKSA/ICJMJyIgOiAiJyIpOwotICBjb25zdCBDaGFyRm9ybWF0IGZv
cm1hdCA9IFByaW50QXNDaGFyTGl0ZXJhbFRvPFVuc2lnbmVkQ2hhcj4oYywgb3MpOworICAqb3Mg
PDwgR2V0Q2hhcldpZHRoUHJlZml4KGMpIDw8ICInIjsKKyAgY29uc3QgQ2hhckZvcm1hdCBmb3Jt
YXQgPSBQcmludEFzQ2hhckxpdGVyYWxUbyhjLCBvcyk7CiAgICpvcyA8PCAiJyI7CiAKICAgLy8g
VG8gYWlkIHVzZXIgZGVidWdnaW5nLCB3ZSBhbHNvIHByaW50IGMncyBjb2RlIGluIGRlY2ltYWws
IHVubGVzcwpAQCAtMjM2LDM2ICsyODYsMzcgQEAgdm9pZCBQcmludENoYXJBbmRDb2RlVG8oQ2hh
ciBjLCBvc3RyZWFtKiBvcykgewogICBpZiAoZm9ybWF0ID09IGtIZXhFc2NhcGUgfHwgKDEgPD0g
YyAmJiBjIDw9IDkpKSB7CiAgICAgLy8gRG8gbm90aGluZy4KICAgfSBlbHNlIHsKLSAgICAqb3Mg
PDwgIiwgMHgiIDw8IFN0cmluZzo6Rm9ybWF0SGV4SW50KHN0YXRpY19jYXN0PFVuc2lnbmVkQ2hh
cj4oYykpOworICAgICpvcyA8PCAiLCAweCIgPDwgU3RyaW5nOjpGb3JtYXRIZXhJbnQoc3RhdGlj
X2Nhc3Q8aW50PihjKSk7CiAgIH0KICAgKm9zIDw8ICIpIjsKIH0KIAotdm9pZCBQcmludFRvKHVu
c2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVU
bzx1bnNpZ25lZCBjaGFyPihjLCBvcyk7Ci19Ci12b2lkIFByaW50VG8oc2lnbmVkIGNoYXIgYywg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx1bnNpZ25lZCBjaGFy
PihjLCBvcyk7Ci19Cit2b2lkIFByaW50VG8odW5zaWduZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsgUHJpbnRDaGFyQW5kQ29kZVRvKGMsIG9zKTsgfQordm9pZCBQcmludFRvKHNpZ25l
ZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeyBQcmludENoYXJBbmRDb2RlVG8oYywgb3Mp
OyB9CiAKIC8vIFByaW50cyBhIHdjaGFyX3QgYXMgYSBzeW1ib2wgaWYgaXQgaXMgcHJpbnRhYmxl
IG9yIGFzIGl0cyBpbnRlcm5hbAogLy8gY29kZSBvdGhlcndpc2UgYW5kIGFsc28gYXMgaXRzIGNv
ZGUuICBMJ1wwJyBpcyBwcmludGVkIGFzICJMJ1xcMCciLgotdm9pZCBQcmludFRvKHdjaGFyX3Qg
d2MsIG9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx3Y2hhcl90Pih3Yywgb3Mp
Owordm9pZCBQcmludFRvKHdjaGFyX3Qgd2MsIG9zdHJlYW0qIG9zKSB7IFByaW50Q2hhckFuZENv
ZGVUbyh3Yywgb3MpOyB9CisKKy8vIFRPRE8oZGNoZW5nKTogQ29uc2lkZXIgbWFraW5nIHRoaXMg
ZGVsZWdhdGUgdG8gUHJpbnRDaGFyQW5kQ29kZVRvKCkgYXMgd2VsbC4KK3ZvaWQgUHJpbnRUbyhj
aGFyMzJfdCBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgKm9zIDw8IHN0ZDo6aGV4IDw8ICJV
KyIgPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykgPDwgc3RkOjpzZXR3KDQp
CisgICAgICA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYyk7CiB9CiAKIC8vIFByaW50cyB0aGUg
Z2l2ZW4gYXJyYXkgb2YgY2hhcmFjdGVycyB0byB0aGUgb3N0cmVhbS4gIENoYXJUeXBlIG11c3Qg
YmUgZWl0aGVyCi0vLyBjaGFyIG9yIHdjaGFyX3QuCisvLyBjaGFyLCBjaGFyOF90LCBjaGFyMTZf
dCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QuCiAvLyBUaGUgYXJyYXkgc3RhcnRzIGF0IGJlZ2luLCB0
aGUgbGVuZ3RoIGlzIGxlbiwgaXQgbWF5IGluY2x1ZGUgJ1wwJyBjaGFyYWN0ZXJzCiAvLyBhbmQg
bWF5IG5vdCBiZSBOVUwtdGVybWluYXRlZC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4K
IEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllfCiBHVEVTVF9BVFRSSUJVVEVfTk9f
U0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1Nf
CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwogc3RhdGljIENoYXJGb3JtYXQg
UHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgY29uc3QgQ2hhclR5cGUqIGJlZ2luLCBzaXplX3Qg
bGVuLCBvc3RyZWFtKiBvcykgewotICBjb25zdCBjaGFyKiBjb25zdCBrUXVvdGVCZWdpbiA9IHNp
emVvZihDaGFyVHlwZSkgPT0gMSA/ICJcIiIgOiAiTFwiIjsKLSAgKm9zIDw8IGtRdW90ZUJlZ2lu
OworICBjb25zdCBjaGFyKiBjb25zdCBxdW90ZV9wcmVmaXggPSBHZXRDaGFyV2lkdGhQcmVmaXgo
KmJlZ2luKTsKKyAgKm9zIDw8IHF1b3RlX3ByZWZpeCA8PCAiXCIiOwogICBib29sIGlzX3ByZXZp
b3VzX2hleCA9IGZhbHNlOwogICBDaGFyRm9ybWF0IHByaW50X2Zvcm1hdCA9IGtBc0lzOwogICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbGVuOyArK2luZGV4KSB7CkBAIC0yNzQsNyAr
MzI1LDcgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgICAv
LyBQcmV2aW91cyBjaGFyYWN0ZXIgaXMgb2YgJ1x4Li4nIGZvcm0gYW5kIHRoaXMgY2hhcmFjdGVy
IGNhbiBiZQogICAgICAgLy8gaW50ZXJwcmV0ZWQgYXMgYW5vdGhlciBoZXhhZGVjaW1hbCBkaWdp
dCBpbiBpdHMgbnVtYmVyLiBCcmVhayBzdHJpbmcgdG8KICAgICAgIC8vIGRpc2FtYmlndWF0ZS4K
LSAgICAgICpvcyA8PCAiXCIgIiA8PCBrUXVvdGVCZWdpbjsKKyAgICAgICpvcyA8PCAiXCIgIiA8
PCBxdW90ZV9wcmVmaXggPDwgIlwiIjsKICAgICB9CiAgICAgaXNfcHJldmlvdXNfaGV4ID0gUHJp
bnRBc1N0cmluZ0xpdGVyYWxUbyhjdXIsIG9zKSA9PSBrSGV4RXNjYXBlOwogICAgIC8vIFJlbWVt
YmVyIGlmIGFueSBjaGFyYWN0ZXJzIHJlcXVpcmVkIGhleCBlc2NhcGluZy4KQEAgLTI5MSw2ICsz
NDIsNyBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludENoYXJzQXNTdHJpbmdUbygKIHRlbXBsYXRl
IDx0eXBlbmFtZSBDaGFyVHlwZT4KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllf
CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9O
T19TQU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFE
Xwogc3RhdGljIHZvaWQgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoCiAgICAgY29uc3QgQ2hhclR5
cGUqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewpAQCAtMzE5LDIyICszNzEsNTcg
QEAgdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIqIGJlZ2luLCBzaXplX3QgbGVu
LCBvc3RyZWFtKiBvcykgewogICBVbml2ZXJzYWxQcmludENoYXJBcnJheShiZWdpbiwgbGVuLCBv
cyk7CiB9CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisvLyBQcmludHMgYSAoY29uc3QpIGNoYXI4
X3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0IGFkZHJlc3MKKy8vICdiZWdp
bicuCit2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjhfdCogYmVnaW4sIHNpemVf
dCBsZW4sIG9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBs
ZW4sIG9zKTsKK30KKyNlbmRpZgorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIxNl90IGFycmF5
IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9p
ZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIxNl90KiBiZWdpbiwgc2l6ZV90IGxlbiwg
b3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3Mp
OworfQorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIzMl90IGFycmF5IG9mICdsZW4nIGVsZW1l
bnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9pZCBVbml2ZXJzYWxQcmlu
dEFycmF5KGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsK
KyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3MpOworfQorCiAvLyBQcmlu
dHMgYSAoY29uc3QpIHdjaGFyX3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0
IGFkZHJlc3MKIC8vICdiZWdpbicuCiB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3Qgd2No
YXJfdCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0qIG9zKSB7CiAgIFVuaXZlcnNhbFByaW50
Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKIH0KIAotLy8gUHJpbnRzIHRoZSBnaXZlbiBDIHN0
cmluZyB0byB0aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFt
KiBvcykgewotICBpZiAocyA9PSBOVUxMKSB7CituYW1lc3BhY2UgeworCisvLyBQcmludHMgYSBu
dWxsLXRlcm1pbmF0ZWQgQy1zdHlsZSBzdHJpbmcgdG8gdGhlIG9zdHJlYW0uCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhcj4KK3ZvaWQgUHJpbnRDU3RyaW5nVG8oY29uc3QgQ2hhciogcywgb3N0cmVh
bSogb3MpIHsKKyAgaWYgKHMgPT0gbnVsbHB0cikgewogICAgICpvcyA8PCAiTlVMTCI7CiAgIH0g
ZWxzZSB7CiAgICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpIDw8ICIgcG9p
bnRpbmcgdG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdHJsZW4ocyksIG9zKTsK
KyAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdGQ6OmNoYXJfdHJhaXRzPENoYXI+OjpsZW5n
dGgocyksIG9zKTsKICAgfQogfQogCit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQg
UHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBv
cyk7IH0KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyOF90
KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KKyNlbmRpZgorCit2
b2lkIFByaW50VG8oY29uc3QgY2hhcjE2X3QqIHMsIG9zdHJlYW0qIG9zKSB7IFByaW50Q1N0cmlu
Z1RvKHMsIG9zKTsgfQorCit2b2lkIFByaW50VG8oY29uc3QgY2hhcjMyX3QqIHMsIG9zdHJlYW0q
IG9zKSB7IFByaW50Q1N0cmluZ1RvKHMsIG9zKTsgfQorCiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBi
ZSBjb25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25l
ZCBzaG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQg
Y2FzZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50
ZWQgYXMgd2lkZSBzdHJpbmdzLApAQCAtMzQzLDE0ICs0MzAsNyBAQCB2b2lkIFByaW50VG8oY29u
c3QgY2hhciogcywgb3N0cmVhbSogb3MpIHsKIC8vIHdjaGFyX3QgaXMgaW1wbGVtZW50ZWQgYXMg
YSBuYXRpdmUgdHlwZS4KICNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfTkFUSVZF
X1dDSEFSX1RfREVGSU5FRCkKIC8vIFByaW50cyB0aGUgZ2l2ZW4gd2lkZSBDIHN0cmluZyB0byB0
aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykg
ewotICBpZiAocyA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAg
ICAqb3MgPDwgSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lkKj4ocykgPDwgIiBwb2ludGluZyB0byAi
OwotICAgIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMsIHN0ZDo6d2NzbGVuKHMpLCBvcyk7Ci0gIH0K
LX0KK3ZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENT
dHJpbmdUbyhzLCBvcyk7IH0KICNlbmRpZiAgLy8gd2NoYXJfdCBpcyBuYXRpdmUKIAogbmFtZXNw
YWNlIHsKQEAgLTQyMCwzMSArNTAwLDI3IEBAIHZvaWQgQ29uZGl0aW9uYWxQcmludEFzVGV4dChj
b25zdCBjaGFyKiBzdHIsIHNpemVfdCBsZW5ndGgsIG9zdHJlYW0qIG9zKSB7CiAKIH0gIC8vIGFu
b255bW91cyBuYW1lc3BhY2UKIAotLy8gUHJpbnRzIGEgOjpzdHJpbmcgb2JqZWN0LgotI2lmIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdHJpbmcm
IHMsIG9zdHJlYW0qIG9zKSB7Cit2b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnN0cmlu
ZyYgcywgb3N0cmVhbSogb3MpIHsKICAgaWYgKFByaW50Q2hhcnNBc1N0cmluZ1RvKHMuZGF0YSgp
LCBzLnNpemUoKSwgb3MpID09IGtIZXhFc2NhcGUpIHsKICAgICBpZiAoR1RFU1RfRkxBRyhwcmlu
dF91dGY4KSkgewogICAgICAgQ29uZGl0aW9uYWxQcmludEFzVGV4dChzLmRhdGEoKSwgcy5zaXpl
KCksIG9zKTsKICAgICB9CiAgIH0KIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJ
TkcKIAotdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHMsIG9zdHJlYW0q
IG9zKSB7Ci0gIGlmIChQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9z
KSA9PSBrSGV4RXNjYXBlKSB7Ci0gICAgaWYgKEdURVNUX0ZMQUcocHJpbnRfdXRmOCkpIHsKLSAg
ICAgIENvbmRpdGlvbmFsUHJpbnRBc1RleHQocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7Ci0gICAg
fQotICB9CisjaWZkZWYgX19jcHBfY2hhcjhfdAordm9pZCBQcmludFU4U3RyaW5nVG8oY29uc3Qg
OjpzdGQ6OnU4c3RyaW5nJiBzLCBvc3RyZWFtKiBvcykgeworICBQcmludENoYXJzQXNTdHJpbmdU
byhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKK30KKyNlbmRpZgorCit2b2lkIFByaW50VTE2U3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKKyAgUHJpbnRD
aGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7CiB9CiAKLS8vIFByaW50cyBh
IDo6d3N0cmluZyBvYmplY3QuCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi12b2lkIFBy
aW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKK3ZvaWQg
UHJpbnRVMzJTdHJpbmdUbyhjb25zdCA6OnN0ZDo6dTMyc3RyaW5nJiBzLCBvc3RyZWFtKiBvcykg
ewogICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKIH0KLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCiAKICNpZiBHVEVTVF9IQVNfU1REX1dT
VFJJTkcKIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIG9z
dHJlYW0qIG9zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QtdGVzdC1wYXJ0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXRlc3Qt
cGFydC5jYwppbmRleCBjODg4NjBkOTIzODU2MTllYTY3NjQ4ODQ1ODM5ZDE0NTgzZjExMTQ2Li5h
OTM4NjgzY2VkZWQyZjM0Njk3ZWZkODMwNWE2NzM2ODA2NGQwMTk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10ZXN0LXBhcnQuY2MKQEAgLTMxLDYgKzMxLDggQEAK
IC8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUg
VGVzdCkKIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIgorCisjaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogI2luY2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5h
bC1pbmwuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewpAQCAtNDEsMTggKzQzLDIzIEBAIHVzaW5n
IGludGVybmFsOjpHZXRVbml0VGVzdEltcGw7CiAvLyBpbiBpdC4KIHN0ZDo6c3RyaW5nIFRlc3RQ
YXJ0UmVzdWx0OjpFeHRyYWN0U3VtbWFyeShjb25zdCBjaGFyKiBtZXNzYWdlKSB7CiAgIGNvbnN0
IGNoYXIqIGNvbnN0IHN0YWNrX3RyYWNlID0gc3Ryc3RyKG1lc3NhZ2UsIGludGVybmFsOjprU3Rh
Y2tUcmFjZU1hcmtlcik7Ci0gIHJldHVybiBzdGFja190cmFjZSA9PSBOVUxMID8gbWVzc2FnZSA6
Ci0gICAgICBzdGQ6OnN0cmluZyhtZXNzYWdlLCBzdGFja190cmFjZSk7CisgIHJldHVybiBzdGFj
a190cmFjZSA9PSBudWxscHRyID8gbWVzc2FnZSA6IHN0ZDo6c3RyaW5nKG1lc3NhZ2UsIHN0YWNr
X3RyYWNlKTsKIH0KIAogLy8gUHJpbnRzIGEgVGVzdFBhcnRSZXN1bHQgb2JqZWN0Lgogc3RkOjpv
c3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFRlc3RQYXJ0UmVzdWx0
JiByZXN1bHQpIHsKLSAgcmV0dXJuIG9zCi0gICAgICA8PCByZXN1bHQuZmlsZV9uYW1lKCkgPDwg
IjoiIDw8IHJlc3VsdC5saW5lX251bWJlcigpIDw8ICI6ICIKLSAgICAgIDw8IChyZXN1bHQudHlw
ZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcyA/ICJTdWNjZXNzIiA6Ci0gICAgICAgICAg
cmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSA/ICJGYXRhbCBm
YWlsdXJlIiA6Ci0gICAgICAgICAgIk5vbi1mYXRhbCBmYWlsdXJlIikgPDwgIjpcbiIKLSAgICAg
IDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRsOworICByZXR1cm4gb3MgPDwgaW50ZXJu
YWw6OkZvcm1hdEZpbGVMb2NhdGlvbihyZXN1bHQuZmlsZV9uYW1lKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5saW5lX251bWJlcigpKQorICAg
ICAgICAgICAgPDwgIiAiCisgICAgICAgICAgICA8PCAocmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFy
dFJlc3VsdDo6a1N1Y2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgPyAiU3VjY2VzcyIKKyAgICAg
ICAgICAgICAgICAgICAgOiByZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU2tpcAor
ICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJTa2lwcGVkIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICA6IHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiRmF0YWwgZmFpbHVyZSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiTm9uLWZhdGFsIGZhaWx1cmUiKQorICAgICAg
ICAgICAgPDwgIjpcbiIKKyAgICAgICAgICAgIDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjpl
bmRsOwogfQogCiAvLyBBcHBlbmRzIGEgVGVzdFBhcnRSZXN1bHQgdG8gdGhlIGFycmF5LgpAQCAt
NjcsNyArNzQsNyBAQCBjb25zdCBUZXN0UGFydFJlc3VsdCYgVGVzdFBhcnRSZXN1bHRBcnJheTo6
R2V0VGVzdFBhcnRSZXN1bHQoaW50IGluZGV4KSBjb25zdCB7CiAgICAgaW50ZXJuYWw6OnBvc2l4
OjpBYm9ydCgpOwogICB9CiAKLSAgcmV0dXJuIGFycmF5X1tpbmRleF07CisgIHJldHVybiBhcnJh
eV9bc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwogfQogCiAvLyBSZXR1cm5zIHRoZSBudW1i
ZXIgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0aGUgYXJyYXkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10ZXN0LmNjCmluZGV4IDFkYzJhZDM4YmFi
OThiYzE0NmMxNjE1OGE0N2RhMWUzOTRiZjM4NWYuLmMwMmMzZGY2NTk5NTI3YWY4NzhkMjhmNGFh
MjMxMWE2MWE2NWM0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9n
dGVzdC10eXBlZC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC10eXBlZC10ZXN0LmNjCkBAIC0zNSw4ICszNSw2IEBACiBuYW1lc3BhY2UgdGVzdGluZyB7CiBu
YW1lc3BhY2UgaW50ZXJuYWwgewogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiAvLyBT
a2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgaW4gc3RyLiBSZXR1cm5zIGFuIGVtcHR5
IHN0cmluZyBpZiBzdHIKIC8vIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgog
c3RhdGljIGNvbnN0IGNoYXIqIFNraXBTcGFjZXMoY29uc3QgY2hhciogc3RyKSB7CkBAIC00OCw3
ICs0Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBTa2lwU3BhY2VzKGNvbnN0IGNoYXIqIHN0cikg
ewogc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEludG9UZXN0TmFtZXMoY29u
c3QgY2hhciogc3JjKSB7CiAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBuYW1lX3ZlYzsKICAg
c3JjID0gU2tpcFNwYWNlcyhzcmMpOwotICBmb3IgKDsgc3JjICE9IE5VTEw7IHNyYyA9IFNraXBD
b21tYShzcmMpKSB7CisgIGZvciAoOyBzcmMgIT0gbnVsbHB0cjsgc3JjID0gU2tpcENvbW1hKHNy
YykpIHsKICAgICBuYW1lX3ZlYy5wdXNoX2JhY2soU3RyaXBUcmFpbGluZ1NwYWNlcyhHZXRQcmVm
aXhVbnRpbENvbW1hKHNyYykpKTsKICAgfQogICByZXR1cm4gbmFtZV92ZWM7CkBAIC01Nyw4ICs1
NSwxMSBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IFNwbGl0SW50b1Rlc3ROYW1l
cyhjb25zdCBjaGFyKiBzcmMpIHsKIC8vIFZlcmlmaWVzIHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBt
YXRjaCB0aGUgdGVzdCBuYW1lcyBpbgogLy8gcmVnaXN0ZXJlZF90ZXN0c187IHJldHVybnMgcmVn
aXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBvcgogLy8gYWJvcnRzIHRoZSBwcm9ncmFtIG90
aGVyd2lzZS4KLWNvbnN0IGNoYXIqIFR5cGVkVGVzdENhc2VQU3RhdGU6OlZlcmlmeVJlZ2lzdGVy
ZWRUZXN0TmFtZXMoCi0gICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIq
IHJlZ2lzdGVyZWRfdGVzdHMpIHsKK2NvbnN0IGNoYXIqIFR5cGVkVGVzdFN1aXRlUFN0YXRlOjpW
ZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAorICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFt
ZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCisgICAgY29uc3QgY2hhciogcmVnaXN0ZXJl
ZF90ZXN0cykgeworICBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKHRlc3Rfc3Vp
dGVfbmFtZSwgQ29kZUxvY2F0aW9uKGZpbGUsIGxpbmUpKTsKKwogICB0eXBlZGVmIFJlZ2lzdGVy
ZWRUZXN0c01hcDo6Y29uc3RfaXRlcmF0b3IgUmVnaXN0ZXJlZFRlc3RJdGVyOwogICByZWdpc3Rl
cmVkXyA9IHRydWU7CiAKQEAgLTc1LDIxICs3NiwxMSBAQCBjb25zdCBjaGFyKiBUeXBlZFRlc3RD
YXNlUFN0YXRlOjpWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAogICAgICAgY29udGludWU7CiAg
ICAgfQogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZvciAoUmVnaXN0ZXJlZFRlc3RJ
dGVyIGl0ID0gcmVnaXN0ZXJlZF90ZXN0c18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHJlZ2lz
dGVyZWRfdGVzdHNfLmVuZCgpOwotICAgICAgICAgKytpdCkgewotICAgICAgaWYgKG5hbWUgPT0g
aXQtPmZpcnN0KSB7Ci0gICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ICB9Ci0gICAgfQotCi0gICAgaWYgKGZvdW5kKSB7CisgICAgaWYgKHJlZ2lzdGVyZWRfdGVzdHNf
LmNvdW50KG5hbWUpICE9IDApIHsKICAgICAgIHRlc3RzLmluc2VydChuYW1lKTsKICAgICB9IGVs
c2UgewogICAgICAgZXJyb3JzIDw8ICJObyB0ZXN0IG5hbWVkICIgPDwgbmFtZQotICAgICAgICAg
ICAgIDw8ICIgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVzdCBjYXNlLlxuIjsKKyAgICAgICAgICAg
ICA8PCAiIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3Qgc3VpdGUuXG4iOwogICAgIH0KICAgfQog
CkBAIC0xMTIsNyArMTAzLDUgQEAgY29uc3QgY2hhciogVHlwZWRUZXN0Q2FzZVBTdGF0ZTo6VmVy
aWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKICAgcmV0dXJuIHJlZ2lzdGVyZWRfdGVzdHM7CiB9CiAK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QuY2MKaW5kZXggOTZiMDdjNjhhYmIwNWEyZGJlMWJlMDlmMWMzNTM1YmNmNzlkMDAzMC4uOTA4
OWY1MGQ0OTJjN2M4Yzg2NWQzNjg0Njk4NDM5ZDU4MDgyOGU2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC5jYwpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0
LXNwaS5oIgogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAg
LTQ0LDYgKzQzLDkgQEAKICNpbmNsdWRlIDx3Y3R5cGUuaD4KIAogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxjaHJvbm8+ICAvLyBOT0xJTlQKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNs
dWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGlvbWFuaXA+CiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPGxpc3Q+CkBAIC01NCwxMCArNTYsNiBAQAogCiAjaWYgR1RFU1RfT1NfTElOVVgKIAot
Ly8gRklYTUU6IFVzZSBhdXRvY29uZiB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IG9mCi0vLyBnZXR0
aW1lb2ZkYXkoKS4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKLQogIyBpbmNs
dWRlIDxmY250bC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPGxpbWl0cy5oPiAgLy8gTk9MSU5U
CiAjIGluY2x1ZGUgPHNjaGVkLmg+ICAvLyBOT0xJTlQKQEAgLTY4LDEyICs2Niw3IEBACiAjIGlu
Y2x1ZGUgPHVuaXN0ZC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPHN0cmluZz4KIAotI2VsaWYg
R1RFU1RfT1NfU1lNQklBTgotIyBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQotIyBp
bmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCi0KICNlbGlmIEdURVNUX09TX1pPUwotIyBk
ZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAg
Ly8gTk9MSU5UCiAKIC8vIE9uIHovT1Mgd2UgYWRkaXRpb25hbGx5IG5lZWQgc3RyaW5ncy5oIGZv
ciBzdHJjYXNlY21wLgpAQCAtODYsMzQgKzc5LDI0IEBACiAKICNlbGlmIEdURVNUX09TX1dJTkRP
V1MgIC8vIFdlIGFyZSBvbiBXaW5kb3dzIHByb3Blci4KIAorIyBpbmNsdWRlIDx3aW5kb3dzLmg+
ICAvLyBOT0xJTlQKKyMgdW5kZWYgbWluCisKKyNpZmRlZiBfTVNDX1ZFUgorIyBpbmNsdWRlIDxj
cnRkYmcuaD4gIC8vIE5PTElOVAorI2VuZGlmCisKICMgaW5jbHVkZSA8aW8uaD4gIC8vIE5PTElO
VAogIyBpbmNsdWRlIDxzeXMvdGltZWIuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPiAgLy8gTk9MSU5UCiAKICMg
aWYgR1RFU1RfT1NfV0lORE9XU19NSU5HVwotLy8gTWluR1cgaGFzIGdldHRpbWVvZmRheSgpIGJ1
dCBub3QgX2Z0aW1lNjQoKS4KLS8vIEZJWE1FOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWls
YWJpbGl0eSBvZgotLy8gICBnZXR0aW1lb2ZkYXkoKS4KLS8vIEZJWE1FOiBUaGVyZSBhcmUgb3Ro
ZXIgd2F5cyB0byBnZXQgdGhlIHRpbWUgb24KLS8vICAgV2luZG93cywgbGlrZSBHZXRUaWNrQ291
bnQoKSBvciBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpLiAgTWluR1cKLS8vICAgc3VwcG9ydHMg
dGhlc2UuICBjb25zaWRlciB1c2luZyB0aGVtIGluc3RlYWQuCi0jICBkZWZpbmUgR1RFU1RfSEFT
X0dFVFRJTUVPRkRBWV8gMQogIyAgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAogIyBl
bmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NSU5HVwogCi0vLyBjcHBsaW50IHRoaW5rcyB0aGF0
IHRoZSBoZWFkZXIgaXMgYWxyZWFkeSBpbmNsdWRlZCwgc28gd2Ugd2FudCB0bwotLy8gc2lsZW5j
ZSBpdC4KLSMgaW5jbHVkZSA8d2luZG93cy5oPiAgLy8gTk9MSU5UCi0jIHVuZGVmIG1pbgotCiAj
ZWxzZQogCi0vLyBBc3N1bWUgb3RoZXIgcGxhdGZvcm1zIGhhdmUgZ2V0dGltZW9mZGF5KCkuCi0v
LyBGSVhNRTogVXNlIGF1dG9jb25mIHRvIGRldGVjdCBhdmFpbGFiaWxpdHkgb2YKLS8vICAgZ2V0
dGltZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9GREFZXyAxCi0KIC8vIGNw
cGxpbnQgdGhpbmtzIHRoYXQgdGhlIGhlYWRlciBpcyBhbHJlYWR5IGluY2x1ZGVkLCBzbyB3ZSB3
YW50IHRvCiAvLyBzaWxlbmNlIGl0LgogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5U
CkBAIC0xNjAsMTQgKzE0MywxNCBAQCB1c2luZyBpbnRlcm5hbDo6U2h1ZmZsZTsKIAogLy8gQ29u
c3RhbnRzLgogCi0vLyBBIHRlc3Qgd2hvc2UgdGVzdCBjYXNlIG5hbWUgb3IgdGVzdCBuYW1lIG1h
dGNoZXMgdGhpcyBmaWx0ZXIgaXMKKy8vIEEgdGVzdCB3aG9zZSB0ZXN0IHN1aXRlIG5hbWUgb3Ig
dGVzdCBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMKIC8vIGRpc2FibGVkIGFuZCBub3QgcnVu
Lgogc3RhdGljIGNvbnN0IGNoYXIga0Rpc2FibGVUZXN0RmlsdGVyW10gPSAiRElTQUJMRURfKjoq
L0RJU0FCTEVEXyoiOwogCi0vLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyBm
aWx0ZXIgaXMgY29uc2lkZXJlZCBhIGRlYXRoCi0vLyB0ZXN0IGNhc2UgYW5kIHdpbGwgYmUgcnVu
IGJlZm9yZSB0ZXN0IGNhc2VzIHdob3NlIG5hbWUgZG9lc24ndAorLy8gQSB0ZXN0IHN1aXRlIHdo
b3NlIG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRlciBpcyBjb25zaWRlcmVkIGEgZGVhdGgKKy8vIHRl
c3Qgc3VpdGUgYW5kIHdpbGwgYmUgcnVuIGJlZm9yZSB0ZXN0IHN1aXRlcyB3aG9zZSBuYW1lIGRv
ZXNuJ3QKIC8vIG1hdGNoIHRoaXMgZmlsdGVyLgotc3RhdGljIGNvbnN0IGNoYXIga0RlYXRoVGVz
dENhc2VGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7CitzdGF0aWMgY29uc3Qg
Y2hhciBrRGVhdGhUZXN0U3VpdGVGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7
CiAKIC8vIEEgdGVzdCBmaWx0ZXIgdGhhdCBtYXRjaGVzIGV2ZXJ5dGhpbmcuCiBzdGF0aWMgY29u
c3QgY2hhciBrVW5pdmVyc2FsRmlsdGVyW10gPSAiKiI7CkBAIC0xOTAsMjAgKzE3MywyMCBAQCBu
YW1lc3BhY2UgaW50ZXJuYWwgewogLy8gc3RhY2sgdHJhY2UuCiBjb25zdCBjaGFyIGtTdGFja1Ry
YWNlTWFya2VyW10gPSAiXG5TdGFjayB0cmFjZTpcbiI7CiAKLS8vIGdfaGVscF9mbGFnIGlzIHRy
dWUgaWZmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVpdmFsZW50IGZvcm0gaXMKLS8vIHNwZWNp
ZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLy8gZ19oZWxwX2ZsYWcgaXMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtCisvLyBpcyBzcGVj
aWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KIGJvb2wgZ19oZWxwX2ZsYWcgPSBmYWxzZTsKIAog
Ly8gVXRpbHR5IGZ1bmN0aW9uIHRvIE9wZW4gRmlsZSBmb3IgV3JpdGluZwogc3RhdGljIEZJTEUq
IE9wZW5GaWxlRm9yV3JpdGluZyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2ZpbGUpIHsKLSAg
RklMRSogZmlsZW91dCA9IE5VTEw7CisgIEZJTEUqIGZpbGVvdXQgPSBudWxscHRyOwogICBGaWxl
UGF0aCBvdXRwdXRfZmlsZV9wYXRoKG91dHB1dF9maWxlKTsKICAgRmlsZVBhdGggb3V0cHV0X2Rp
cihvdXRwdXRfZmlsZV9wYXRoLlJlbW92ZUZpbGVOYW1lKCkpOwogCiAgIGlmIChvdXRwdXRfZGly
LkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSkgewogICAgIGZpbGVvdXQgPSBwb3NpeDo6
Rk9wZW4ob3V0cHV0X2ZpbGUuY19zdHIoKSwgInciKTsKICAgfQotICBpZiAoZmlsZW91dCA9PSBO
VUxMKSB7CisgIGlmIChmaWxlb3V0ID09IG51bGxwdHIpIHsKICAgICBHVEVTVF9MT0dfKEZBVEFM
KSA8PCAiVW5hYmxlIHRvIG9wZW4gZmlsZSBcIiIgPDwgb3V0cHV0X2ZpbGUgPDwgIlwiIjsKICAg
fQogICByZXR1cm4gZmlsZW91dDsKQEAgLTIxNiwyNyArMTk5LDQxIEBAIHN0YXRpYyBGSUxFKiBP
cGVuRmlsZUZvcldyaXRpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9maWxlKSB7CiBzdGF0
aWMgY29uc3QgY2hhciogR2V0RGVmYXVsdEZpbHRlcigpIHsKICAgY29uc3QgY2hhciogY29uc3Qg
dGVzdGJyaWRnZV90ZXN0X29ubHkgPQogICAgICAgaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRF
U1RCUklER0VfVEVTVF9PTkxZIik7Ci0gIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBOVUxM
KSB7CisgIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJu
IHRlc3RicmlkZ2VfdGVzdF9vbmx5OwogICB9CiAgIHJldHVybiBrVW5pdmVyc2FsRmlsdGVyOwog
fQogCisvLyBCYXplbCBwYXNzZXMgaW4gdGhlIGFyZ3VtZW50IHRvICctLXRlc3RfcnVubmVyX2Zh
aWxfZmFzdCcgdmlhIHRoZQorLy8gVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QgZW52
aXJvbm1lbnQgdmFyaWFibGUuCitzdGF0aWMgYm9vbCBHZXREZWZhdWx0RmFpbEZhc3QoKSB7Cisg
IGNvbnN0IGNoYXIqIGNvbnN0IHRlc3RicmlkZ2VfdGVzdF9ydW5uZXJfZmFpbF9mYXN0ID0KKyAg
ICAgIGludGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNUQlJJREdFX1RFU1RfUlVOTkVSX0ZBSUxf
RkFTVCIpOworICBpZiAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3QgIT0gbnVsbHB0
cikgeworICAgIHJldHVybiBzdHJjbXAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3Qs
ICIxIikgPT0gMDsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK0dURVNUX0RFRklORV9ib29s
XygKKyAgICBmYWlsX2Zhc3QsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJmYWlsX2Zhc3Qi
LCBHZXREZWZhdWx0RmFpbEZhc3QoKSksCisgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgYSB0ZXN0
IGZhaWx1cmUgc2hvdWxkIHN0b3AgZnVydGhlciB0ZXN0IGV4ZWN1dGlvbi4iKTsKKwogR1RFU1Rf
REVGSU5FX2Jvb2xfKAogICAgIGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzLAogICAgIGludGVybmFs
OjpCb29sRnJvbUdUZXN0RW52KCJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsIGZhbHNlKSwKICAg
ICAiUnVuIGRpc2FibGVkIHRlc3RzIHRvbywgaW4gYWRkaXRpb24gdG8gdGhlIHRlc3RzIG5vcm1h
bGx5IGJlaW5nIHJ1bi4iKTsKIAogR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGJyZWFrX29uX2Zh
aWx1cmUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImJyZWFrX29uX2ZhaWx1cmUi
LCBmYWxzZSksCi0gICAgIlRydWUgaWZmIGEgZmFpbGVkIGFzc2VydGlvbiBzaG91bGQgYmUgYSBk
ZWJ1Z2dlciBicmVhay1wb2ludC4iKTsKKyAgICBicmVha19vbl9mYWlsdXJlLCBpbnRlcm5hbDo6
Qm9vbEZyb21HVGVzdEVudigiYnJlYWtfb25fZmFpbHVyZSIsIGZhbHNlKSwKKyAgICAiVHJ1ZSBp
ZiBhbmQgb25seSBpZiBhIGZhaWxlZCBhc3NlcnRpb24gc2hvdWxkIGJlIGEgZGVidWdnZXIgIgor
ICAgICJicmVhay1wb2ludC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGNhdGNoX2V4
Y2VwdGlvbnMsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImNhdGNoX2V4Y2VwdGlv
bnMiLCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgc2hvdWxkIGNh
dGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVzdCBmYWlsdXJlcy4iKTsKK0dURVNU
X0RFRklORV9ib29sXyhjYXRjaF9leGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgIGludGVy
bmFsOjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNlcHRpb25zIiwgdHJ1ZSksCisgICAgICAg
ICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAg
ICAgICAgICAgICIgc2hvdWxkIGNhdGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVz
dCBmYWlsdXJlcy4iKTsKIAogR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgY29sb3IsCkBAIC0y
ODQsMTYgKzI4MSwxNiBAQCBHVEVTVF9ERUZJTkVfc3RyaW5nXygKICAgICAiZGlnaXRzLiIpOwog
CiBHVEVTVF9ERUZJTkVfYm9vbF8oCi0gICAgcHJpbnRfdGltZSwKLSAgICBpbnRlcm5hbDo6Qm9v
bEZyb21HVGVzdEVudigicHJpbnRfdGltZSIsIHRydWUpLAotICAgICJUcnVlIGlmZiAiIEdURVNU
X05BTUVfCi0gICAgIiBzaG91bGQgZGlzcGxheSBlbGFwc2VkIHRpbWUgaW4gdGV4dCBvdXRwdXQu
Iik7CisgICAgYnJpZWYsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJicmllZiIsIGZhbHNl
KSwKKyAgICAiVHJ1ZSBpZiBvbmx5IHRlc3QgZmFpbHVyZXMgc2hvdWxkIGJlIGRpc3BsYXllZCBp
biB0ZXh0IG91dHB1dC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHByaW50X3V0Zjgs
Ci0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0ZjgiLCB0cnVlKSwKLSAg
ICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgcHJpbnRzIFVURjggY2hhcmFjdGVycyBh
cyB0ZXh0LiIpOworR1RFU1RfREVGSU5FX2Jvb2xfKHByaW50X3RpbWUsIGludGVybmFsOjpCb29s
RnJvbUdUZXN0RW52KCJwcmludF90aW1lIiwgdHJ1ZSksCisgICAgICAgICAgICAgICAgICAgIlRy
dWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAgICAgICAgICAgICIgc2hv
dWxkIGRpc3BsYXkgZWxhcHNlZCB0aW1lIGluIHRleHQgb3V0cHV0LiIpOworCitHVEVTVF9ERUZJ
TkVfYm9vbF8ocHJpbnRfdXRmOCwgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0
ZjgiLCB0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdU
RVNUX05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBwcmludHMgVVRGOCBjaGFyYWN0ZXJzIGFz
IHRleHQuIik7CiAKIEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgcmFuZG9tX3NlZWQsCkBAIC0z
MDcsMTYgKzMwNCwxNCBAQCBHVEVTVF9ERUZJTkVfaW50MzJfKAogICAgICJIb3cgbWFueSB0aW1l
cyB0byByZXBlYXQgZWFjaCB0ZXN0LiAgU3BlY2lmeSBhIG5lZ2F0aXZlIG51bWJlciAiCiAgICAg
ImZvciByZXBlYXRpbmcgZm9yZXZlci4gIFVzZWZ1bCBmb3Igc2hha2luZyBvdXQgZmxha3kgdGVz
dHMuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAgICBzaG93X2ludGVybmFsX3N0YWNrX2Zy
YW1lcywgZmFsc2UsCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8gIiBzaG91bGQgaW5jbHVk
ZSBpbnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCi0gICAgInByaW50aW5nIHRlc3QgZmFpbHVy
ZSBzdGFjayB0cmFjZXMuIik7CitHVEVTVF9ERUZJTkVfYm9vbF8oc2hvd19pbnRlcm5hbF9zdGFj
a19mcmFtZXMsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICJUcnVlIGlmIGFuZCBvbmx5IGlm
ICIgR1RFU1RfTkFNRV8KKyAgICAgICAgICAgICAgICAgICAiIHNob3VsZCBpbmNsdWRlIGludGVy
bmFsIHN0YWNrIGZyYW1lcyB3aGVuICIKKyAgICAgICAgICAgICAgICAgICAicHJpbnRpbmcgdGVz
dCBmYWlsdXJlIHN0YWNrIHRyYWNlcy4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHNo
dWZmbGUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInNodWZmbGUiLCBmYWxzZSks
Ci0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHNob3VsZCByYW5kb21pemUgdGVz
dHMnIG9yZGVyIG9uIGV2ZXJ5IHJ1bi4iKTsKK0dURVNUX0RFRklORV9ib29sXyhzaHVmZmxlLCBp
bnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigic2h1ZmZsZSIsIGZhbHNlKSwKKyAgICAgICAgICAg
ICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdURVNUX05BTUVfCisgICAgICAgICAgICAg
ICAgICAgIiBzaG91bGQgcmFuZG9taXplIHRlc3RzJyBvcmRlciBvbiBldmVyeSBydW4uIik7CiAK
IEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgc3RhY2tfdHJhY2VfZGVwdGgsCkBAIC0zNTAsMTAg
KzM0NSwxMCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51
bWJlciBmcm9tIFswLCByYW5nZSksIHVzaW5nIGEgTGluZWFyCiAvLyBDb25ncnVlbnRpYWwgR2Vu
ZXJhdG9yIChMQ0cpLiAgQ3Jhc2hlcyBpZiAncmFuZ2UnIGlzIDAgb3IgZ3JlYXRlcgogLy8gdGhh
biBrTWF4UmFuZ2UuCi1VSW50MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKK3Vp
bnQzMl90IFJhbmRvbTo6R2VuZXJhdGUodWludDMyX3QgcmFuZ2UpIHsKICAgLy8gVGhlc2UgY29u
c3RhbnRzIGFyZSB0aGUgc2FtZSBhcyBhcmUgdXNlZCBpbiBnbGliYydzIHJhbmQoMykuCiAgIC8v
IFVzZSB3aWRlciB0eXBlcyB0aGFuIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHVuc2lnbmVkIG92ZXJm
bG93IGRpYWdub3N0aWNzLgotICBzdGF0ZV8gPSBzdGF0aWNfY2FzdDxVSW50MzI+KDExMDM1MTUy
NDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsKKyAgc3RhdGVfID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KDExMDM1MTUyNDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsK
IAogICBHVEVTVF9DSEVDS18ocmFuZ2UgPiAwKQogICAgICAgPDwgIkNhbm5vdCBnZW5lcmF0ZSBh
IG51bWJlciBpbiB0aGUgcmFuZ2UgWzAsIDApLiI7CkBAIC0zNjcsMTYgKzM2MiwxNiBAQCBVSW50
MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKICAgcmV0dXJuIHN0YXRlXyAlIHJh
bmdlOwogfQogCi0vLyBHVGVzdElzSW5pdGlhbGl6ZWQoKSByZXR1cm5zIHRydWUgaWZmIHRoZSB1
c2VyIGhhcyBpbml0aWFsaXplZAorLy8gR1Rlc3RJc0luaXRpYWxpemVkKCkgcmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB1c2VyIGhhcyBpbml0aWFsaXplZAogLy8gR29vZ2xlIFRlc3Qu
ICBVc2VmdWwgZm9yIGNhdGNoaW5nIHRoZSB1c2VyIG1pc3Rha2Ugb2Ygbm90IGluaXRpYWxpemlu
ZwogLy8gR29vZ2xlIFRlc3QgYmVmb3JlIGNhbGxpbmcgUlVOX0FMTF9URVNUUygpLgogc3RhdGlj
IGJvb2wgR1Rlc3RJc0luaXRpYWxpemVkKCkgeyByZXR1cm4gR2V0QXJndnMoKS5zaXplKCkgPiAw
OyB9CiAKLS8vIEl0ZXJhdGVzIG92ZXIgYSB2ZWN0b3Igb2YgVGVzdENhc2VzLCBrZWVwaW5nIGEg
cnVubmluZyBzdW0gb2YgdGhlCisvLyBJdGVyYXRlcyBvdmVyIGEgdmVjdG9yIG9mIFRlc3RTdWl0
ZXMsIGtlZXBpbmcgYSBydW5uaW5nIHN1bSBvZiB0aGUKIC8vIHJlc3VsdHMgb2YgY2FsbGluZyBh
IGdpdmVuIGludC1yZXR1cm5pbmcgbWV0aG9kIG9uIGVhY2guCiAvLyBSZXR1cm5zIHRoZSBzdW0u
Ci1zdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENh
c2UqPiYgY2FzZV9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoVGVz
dENhc2U6OiptZXRob2QpKCkgY29uc3QpIHsKK3N0YXRpYyBpbnQgU3VtT3ZlclRlc3RTdWl0ZUxp
c3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIGNhc2VfbGlzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IChUZXN0U3VpdGU6OiptZXRob2QpKCkgY29uc3QpIHsK
ICAgaW50IHN1bSA9IDA7CiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FzZV9saXN0LnNpemUo
KTsgaSsrKSB7CiAgICAgc3VtICs9IChjYXNlX2xpc3RbaV0tPiptZXRob2QpKCk7CkBAIC0zODQs
MjAgKzM3OSwyMCBAQCBzdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2
ZWN0b3I8VGVzdENhc2UqPiYgY2FzZV9saXN0LAogICByZXR1cm4gc3VtOwogfQogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgcGFzc2VkLgotc3RhdGljIGJvb2wgVGVzdENhc2VQ
YXNzZWQoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICByZXR1cm4gdGVzdF9jYXNlLT5z
aG91bGRfcnVuKCkgJiYgdGVzdF9jYXNlLT5QYXNzZWQoKTsKKy8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCitzdGF0aWMgYm9vbCBUZXN0U3VpdGVQ
YXNzZWQoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7CisgIHJldHVybiB0ZXN0X3N1aXRl
LT5zaG91bGRfcnVuKCkgJiYgdGVzdF9zdWl0ZS0+UGFzc2VkKCk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBmYWlsZWQuCi1zdGF0aWMgYm9vbCBUZXN0Q2FzZUZhaWxl
ZChjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gIHJldHVybiB0ZXN0X2Nhc2UtPnNob3Vs
ZF9ydW4oKSAmJiB0ZXN0X2Nhc2UtPkZhaWxlZCgpOworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRoZSB0ZXN0IHN1aXRlIGZhaWxlZC4KK3N0YXRpYyBib29sIFRlc3RTdWl0ZUZhaWxl
ZChjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNo
b3VsZF9ydW4oKSAmJiB0ZXN0X3N1aXRlLT5GYWlsZWQoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiB0ZXN0X2Nhc2UgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhhdCBzaG91bGQKLS8v
IHJ1bi4KLXN0YXRpYyBib29sIFNob3VsZFJ1blRlc3RDYXNlKGNvbnN0IFRlc3RDYXNlKiB0ZXN0
X2Nhc2UpIHsKLSAgcmV0dXJuIHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpOworLy8gUmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3Rfc3VpdGUgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3Qg
dGhhdAorLy8gc2hvdWxkIHJ1bi4KK3N0YXRpYyBib29sIFNob3VsZFJ1blRlc3RTdWl0ZShjb25z
dCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNob3VsZF9y
dW4oKTsKIH0KIAogLy8gQXNzZXJ0SGVscGVyIGNvbnN0cnVjdG9yLgpAQCAtNDIzLDggKzQxOCwx
NjEgQEAgdm9pZCBBc3NlcnRIZWxwZXI6Om9wZXJhdG9yPShjb25zdCBNZXNzYWdlJiBtZXNzYWdl
KSBjb25zdCB7CiAgICAgICAgICAgICAgICAgICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBN
dXRleCBmb3IgbGlua2VkIHBvaW50ZXJzLgotR1RFU1RfQVBJXyBHVEVTVF9ERUZJTkVfU1RBVElD
X01VVEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOworbmFtZXNwYWNlIHsKKworLy8gV2hlbiBURVNU
X1AgaXMgZm91bmQgd2l0aG91dCBhIG1hdGNoaW5nIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAor
Ly8gdG8gY3JlYXRlcyB0ZXN0IGNhc2VzIGZvciBpdCwgYSBzeW50ZXRpYyB0ZXN0IGNhc2UgaXMK
Ky8vIGluc2VydGVkIHRvIHJlcG9ydCBldGhlciBhbiBlcnJvciBvciBhIGxvZyBtZXNzYWdlLgor
Ly8KKy8vIFRoaXMgY29uZmlndXJhdGlvbiBiaXQgd2lsbCBsaWtlbHkgYmUgcmVtb3ZlZCBhdCBz
b21lIHBvaW50LgorY29uc3RleHByIGJvb2wga0Vycm9yT25Vbmluc3RhbnRpYXRlZFBhcmFtZXRl
cml6ZWRUZXN0ID0gdHJ1ZTsKK2NvbnN0ZXhwciBib29sIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRU
eXBlUGFyYW1ldGVyaXplZFRlc3QgPSB0cnVlOworCisvLyBBIHRlc3QgdGhhdCBmYWlscyBhdCBh
IGdpdmVuIGZpbGUvbGluZSBsb2NhdGlvbiB3aXRoIGEgZ2l2ZW4gbWVzc2FnZS4KK2NsYXNzIEZh
aWx1cmVUZXN0IDogcHVibGljIFRlc3QgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgRmFpbHVyZVRl
c3QoY29uc3QgQ29kZUxvY2F0aW9uJiBsb2MsIHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UsCisg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXNfZXJyb3IpCisgICAgICA6IGxvY18obG9jKSwK
KyAgICAgICAgZXJyb3JfbWVzc2FnZV8oc3RkOjptb3ZlKGVycm9yX21lc3NhZ2UpKSwKKyAgICAg
ICAgYXNfZXJyb3JfKGFzX2Vycm9yKSB7fQorCisgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7
CisgICAgaWYgKGFzX2Vycm9yXykgeworICAgICAgQXNzZXJ0SGVscGVyKFRlc3RQYXJ0UmVzdWx0
OjprTm9uRmF0YWxGYWlsdXJlLCBsb2NfLmZpbGUuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAg
ICBsb2NfLmxpbmUsICIiKSA9IE1lc3NhZ2UoKSA8PCBlcnJvcl9tZXNzYWdlXzsKKyAgICB9IGVs
c2UgeworICAgICAgc3RkOjpjb3V0IDw8IGVycm9yX21lc3NhZ2VfIDw8IHN0ZDo6ZW5kbDsKKyAg
ICB9CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IENvZGVMb2NhdGlvbiBsb2NfOworICBjb25z
dCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlXzsKKyAgY29uc3QgYm9vbCBhc19lcnJvcl87Cit9
OworCisKK30gIC8vIG5hbWVzcGFjZQorCitzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIEdldElnbm9y
ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpIHsKKyAgcmV0dXJuIFVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpLT5pbXBsKCktPmlnbm9yZWRfcGFyYW1ldGVyaXplZF90ZXN0X3N1aXRlcygpOworfQor
CisvLyBBZGQgYSBnaXZlbiB0ZXN0X3N1aXQgdG8gdGhlIGxpc3Qgb2YgdGhlbSBhbGxvdyB0byBn
byB1bi1pbnN0YW50aWF0ZWQuCitNYXJrQXNJZ25vcmVkOjpNYXJrQXNJZ25vcmVkKGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGUpIHsKKyAgR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCkt
Pmluc2VydCh0ZXN0X3N1aXRlKTsKK30KKworLy8gSWYgdGhpcyBwYXJhbWV0ZXJpemVkIHRlc3Qg
c3VpdGUgaGFzIG5vIGluc3RhbnRpYXRpb25zIChhbmQgdGhhdAorLy8gaGFzIG5vdCBiZWVuIG1h
cmtlZCBhcyBva2F5KSwgZW1pdCBhIHRlc3QgY2FzZSByZXBvcnRpbmcgdGhhdC4KK3ZvaWQgSW5z
ZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsIENvZGVMb2NhdGlv
biBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXNfdGVzdF9w
KSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVzKCk7CisgIGlmIChpZ25vcmVkLmZpbmQobmFtZSkgIT0gaWdub3JlZC5lbmQoKSkgcmV0
dXJuOworCisgIGNvbnN0IGNoYXIga01pc3NpbmdJbnN0YW50aWF0aW9uW10gPSAgLy8KKyAgICAg
ICIgaXMgZGVmaW5lZCB2aWEgVEVTVF9QLCBidXQgbmV2ZXIgaW5zdGFudGlhdGVkLiBOb25lIG9m
IHRoZSB0ZXN0IGNhc2VzICIKKyAgICAgICJ3aWxsIHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0aGUgb25seSAiCisgICAgICAib25lcyBwcm92
aWRlZCBleHBhbmQgdG8gbm90aGluZy4iCisgICAgICAiXG5cbiIKKyAgICAgICJJZGVhbGx5LCBU
RVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9m
ICIKKyAgICAgICJiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQg
dG8sIGZvciBleGFtcGxlLCBiZWluZyAiCisgICAgICAicGxhY2VkIGluIGEgbGlicmFyeSB0aGF0
IG1heSBiZSBsaW5rZWQgaW4gdG8gZ2V0IG90aGVyIHV0aWxpdGllcy4pIjsKKworICBjb25zdCBj
aGFyIGtNaXNzaW5nVGVzdENhc2VbXSA9ICAvLworICAgICAgIiBpcyBpbnN0YW50aWF0ZWQgdmlh
IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5vIHRlc3RzIGFyZSAiCisgICAgICAiZGVm
aW5lZCB2aWEgVEVTVF9QIC4gTm8gdGVzdCBjYXNlcyB3aWxsIHJ1bi4iCisgICAgICAiXG5cbiIK
KyAgICAgICJJZGVhbGx5LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZl
ciBiZSBpbnZva2VkIGZyb20gIgorICAgICAgImNvZGUgdGhhdCBhbHdheXMgZGVwZW5kIG9uIGNv
ZGUgdGhhdCBwcm92aWRlcyBURVNUX1AuIEZhaWxpbmcgdG8gZG8gIgorICAgICAgInNvIGlzIG9m
dGVuIGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRFU1RfUCB3YXMg
IgorICAgICAgInJlbW92ZWQgYnV0IHRoZSByZXN0IGdvdCBsZWZ0IGJlaGluZC4iOworCisgIHN0
ZDo6c3RyaW5nIG1lc3NhZ2UgPQorICAgICAgIlBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSAiICsg
bmFtZSArCisgICAgICAoaGFzX3Rlc3RfcCA/IGtNaXNzaW5nSW5zdGFudGlhdGlvbiA6IGtNaXNz
aW5nVGVzdENhc2UpICsKKyAgICAgICJcblxuIgorICAgICAgIlRvIHN1cHByZXNzIHRoaXMgZXJy
b3IgZm9yIHRoaXMgdGVzdCBzdWl0ZSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgbGluZSAiCisgICAg
ICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOiIK
KyAgICAgICJcblxuIgorICAgICAgIkdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRF
UklaRURfVEVTVCgiICsgbmFtZSArICIpOyI7CisKKyAgc3RkOjpzdHJpbmcgZnVsbF9uYW1lID0g
IlVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTwiICsgbmFtZSArICI+IjsKKyAg
UmVnaXN0ZXJUZXN0KCAgLy8KKyAgICAgICJHb29nbGVUZXN0VmVyaWZpY2F0aW9uIiwgZnVsbF9u
YW1lLmNfc3RyKCksCisgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAg
ICBudWxscHRyLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgorICAgICAgbG9jYXRpb24uZmlsZS5j
X3N0cigpLCBsb2NhdGlvbi5saW5lLCBbbWVzc2FnZSwgbG9jYXRpb25dIHsKKyAgICAgICAgcmV0
dXJuIG5ldyBGYWlsdXJlVGVzdChsb2NhdGlvbiwgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrRXJyb3JPblVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3QpOwor
ICAgICAgfSk7Cit9CisKK3ZvaWQgUmVnaXN0ZXJUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZShj
b25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKKyAgR2V0VW5pdFRlc3RJ
bXBsKCktPnR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkuUmVnaXN0ZXJUZXN0U3Vp
dGUoCisgICAgICB0ZXN0X3N1aXRlX25hbWUsIGNvZGVfbG9jYXRpb24pOworfQorCit2b2lkIFJl
Z2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKGNvbnN0IGNoYXIq
IGNhc2VfbmFtZSkgeworICBHZXRVbml0VGVzdEltcGwoKQorICAgICAgLT50eXBlX3BhcmFtZXRl
cml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgICAgICAuUmVnaXN0ZXJJbnN0YW50aWF0aW9uKGNhc2Vf
bmFtZSk7Cit9CisKK3ZvaWQgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeTo6UmVn
aXN0ZXJUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbikgeworICBzdWl0ZXNfLmVtcGxhY2Uoc3RkOjpzdHJpbmcodGVz
dF9zdWl0ZV9uYW1lKSwKKyAgICAgICAgICAgICAgICAgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVJbmZvKGNvZGVfbG9jYXRpb24pKTsKK30KKwordm9pZCBUeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZVJlZ2lzdHJ5OjpSZWdpc3Rlckluc3RhbnRpYXRpb24oCisgICAgICAgIGNvbnN0IGNoYXIq
IHRlc3Rfc3VpdGVfbmFtZSkgeworICBhdXRvIGl0ID0gc3VpdGVzXy5maW5kKHN0ZDo6c3RyaW5n
KHRlc3Rfc3VpdGVfbmFtZSkpOworICBpZiAoaXQgIT0gc3VpdGVzXy5lbmQoKSkgeworICAgIGl0
LT5zZWNvbmQuaW5zdGFudGlhdGVkID0gdHJ1ZTsKKyAgfSBlbHNlIHsKKyAgICBHVEVTVF9MT0df
KEVSUk9SKSA8PCAiVW5rbm93biB0eXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ICciCisgICAg
ICAgICAgICAgICAgICAgICAgPDwgdGVzdF9zdWl0ZV9uYW1lIDw8ICInIjsKKyAgfQorfQorCit2
b2lkIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnk6OkNoZWNrRm9ySW5zdGFudGlh
dGlvbnMoKSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVzKCk7CisgIGZvciAoY29uc3QgYXV0byYgdGVzdGNhc2UgOiBzdWl0ZXNfKSB7
CisgICAgaWYgKHRlc3RjYXNlLnNlY29uZC5pbnN0YW50aWF0ZWQpIGNvbnRpbnVlOworICAgIGlm
IChpZ25vcmVkLmZpbmQodGVzdGNhc2UuZmlyc3QpICE9IGlnbm9yZWQuZW5kKCkpIGNvbnRpbnVl
OworCisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZSA9CisgICAgICAgICJUeXBlIHBhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZSAiICsgdGVzdGNhc2UuZmlyc3QgKworICAgICAgICAiIGlzIGRlZmluZWQg
dmlhIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZCAi
CisgICAgICAgICJ2aWEgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QLiBOb25lIG9mIHRo
ZSB0ZXN0IGNhc2VzIHdpbGwgcnVuLiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJJZGVhbGx5
LCBUWVBFRF9URVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBh
cyAiCisgICAgICAgICJwYXJ0IG9mIGJpbmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAo
QXMgb3Bwb3NlZCB0bywgZm9yICIKKyAgICAgICAgImV4YW1wbGUsIGJlaW5nIHBsYWNlZCBpbiBh
IGxpYnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdldCBvdGhlciAiCisgICAgICAgICJ1
dGlsaXRpZXMuKSIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJUbyBzdXBwcmVzcyB0aGlzIGVy
cm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgIgorICAg
ICAgICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGlu
OiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9Q
QVJBTUVURVJJWkVEX1RFU1QoIiArCisgICAgICAgIHRlc3RjYXNlLmZpcnN0ICsgIik7IjsKKwor
ICAgIHN0ZDo6c3RyaW5nIGZ1bGxfbmFtZSA9CisgICAgICAgICJVbmluc3RhbnRpYXRlZFR5cGVQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlPCIgKyB0ZXN0Y2FzZS5maXJzdCArICI+IjsKKyAgICBSZWdp
c3RlclRlc3QoICAvLworICAgICAgICAiR29vZ2xlVGVzdFZlcmlmaWNhdGlvbiIsIGZ1bGxfbmFt
ZS5jX3N0cigpLAorICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAg
ICAgIG51bGxwdHIsICAvLyBObyB2YWx1ZSBwYXJhbWV0ZXIuCisgICAgICAgIHRlc3RjYXNlLnNl
Y29uZC5jb2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwKKyAgICAgICAgdGVzdGNhc2Uuc2Vjb25k
LmNvZGVfbG9jYXRpb24ubGluZSwgW21lc3NhZ2UsIHRlc3RjYXNlXSB7CisgICAgICAgICAgcmV0
dXJuIG5ldyBGYWlsdXJlVGVzdCh0ZXN0Y2FzZS5zZWNvbmQuY29kZV9sb2NhdGlvbiwgbWVzc2Fn
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtFcnJvck9uVW5pbnN0YW50aWF0
ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3QpOworICAgICAgICB9KTsKKyAgfQorfQogCiAvLyBBIGNv
cHkgb2YgYWxsIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuICBTZXQgYnkgSW5pdEdvb2dsZVRlc3Qo
KS4KIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwpAQCAtNDQ1LDcg
KzU5Myw3IEBAIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwogRmls
ZVBhdGggR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkgewogICBGaWxlUGF0aCByZXN1bHQ7CiAK
LSNpZiBHVEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19P
UzIKICAgcmVzdWx0LlNldChGaWxlUGF0aChHZXRBcmd2cygpWzBdKS5SZW1vdmVFeHRlbnNpb24o
ImV4ZSIpKTsKICNlbHNlCiAgIHJlc3VsdC5TZXQoRmlsZVBhdGgoR2V0QXJndnMoKVswXSkpOwpA
QCAtNDYwLDkgKzYwOCwxMCBAQCBGaWxlUGF0aCBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKSB7
CiBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldE91dHB1dEZvcm1hdCgpIHsKICAgY29u
c3QgY2hhciogY29uc3QgZ3Rlc3Rfb3V0cHV0X2ZsYWcgPSBHVEVTVF9GTEFHKG91dHB1dCkuY19z
dHIoKTsKICAgY29uc3QgY2hhciogY29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2Zs
YWcsICc6Jyk7Ci0gIHJldHVybiAoY29sb24gPT0gTlVMTCkgPwotICAgICAgc3RkOjpzdHJpbmco
Z3Rlc3Rfb3V0cHV0X2ZsYWcpIDoKLSAgICAgIHN0ZDo6c3RyaW5nKGd0ZXN0X291dHB1dF9mbGFn
LCBjb2xvbiAtIGd0ZXN0X291dHB1dF9mbGFnKTsKKyAgcmV0dXJuIChjb2xvbiA9PSBudWxscHRy
KQorICAgICAgICAgICAgID8gc3RkOjpzdHJpbmcoZ3Rlc3Rfb3V0cHV0X2ZsYWcpCisgICAgICAg
ICAgICAgOiBzdGQ6OnN0cmluZyhndGVzdF9vdXRwdXRfZmxhZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oY29sb24gLSBndGVzdF9vdXRwdXRfZmxhZykp
OwogfQogCiAvLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgb3V0cHV0IGZpbGUs
IG9yIHRoZSBkZWZhdWx0IGlmIG5vbmUKQEAgLTQ3NSw3ICs2MjQsNyBAQCBzdGQ6OnN0cmluZyBV
bml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpIHsKICAgICBmb3Jt
YXQgPSBzdGQ6OnN0cmluZyhrRGVmYXVsdE91dHB1dEZvcm1hdCk7CiAKICAgY29uc3QgY2hhciog
Y29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcsICc6Jyk7Ci0gIGlmIChjb2xv
biA9PSBOVUxMKQorICBpZiAoY29sb24gPT0gbnVsbHB0cikKICAgICByZXR1cm4gaW50ZXJuYWw6
OkZpbGVQYXRoOjpNYWtlRmlsZU5hbWUoCiAgICAgICAgIGludGVybmFsOjpGaWxlUGF0aCgKICAg
ICAgICAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2Rpcigp
KSwKQEAgLTQ4NCwxMCArNjMzLDYgQEAgc3RkOjpzdHJpbmcgVW5pdFRlc3RPcHRpb25zOjpHZXRB
YnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKSB7CiAKICAgaW50ZXJuYWw6OkZpbGVQYXRoIG91dHB1
dF9uYW1lKGNvbG9uICsgMSk7CiAgIGlmICghb3V0cHV0X25hbWUuSXNBYnNvbHV0ZVBhdGgoKSkK
LSAgICAvLyBGSVhNRTogb24gV2luZG93cyBcc29tZVxwYXRoIGlzIG5vdCBhbiBhYnNvbHV0ZQot
ICAgIC8vIHBhdGggKGFzIGl0cyBtZWFuaW5nIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgZHJpdmUp
LCB5ZXQgdGhlCi0gICAgLy8gZm9sbG93aW5nIGxvZ2ljIGZvciB0dXJuaW5nIGl0IGludG8gYW4g
YWJzb2x1dGUgcGF0aCBpcyB3cm9uZy4KLSAgICAvLyBGaXggaXQuCiAgICAgb3V0cHV0X25hbWUg
PSBpbnRlcm5hbDo6RmlsZVBhdGg6OkNvbmNhdFBhdGhzKAogICAgICAgICBpbnRlcm5hbDo6Rmls
ZVBhdGgoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCkpLAog
ICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoY29sb24gKyAxKSk7CkBAIC01MDEsNTQgKzY0Niw4
OSBAQCBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0
RmlsZSgpIHsKICAgcmV0dXJuIHJlc3VsdC5zdHJpbmcoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVzIHRoZSBzdHJpbmcuICBUaGUKLS8vIGZp
cnN0ICc6JyBvciAnXDAnIGNoYXJhY3RlciBpbiBwYXR0ZXJuIG1hcmtzIHRoZSBlbmQgb2YgaXQu
CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHdpbGRjYXJkIHBhdHRlcm4gbWF0
Y2hlcyB0aGUgc3RyaW5nLiBFYWNoCisvLyBwYXR0ZXJuIGNvbnNpc3RzIG9mIHJlZ3VsYXIgY2hh
cmFjdGVycywgc2luZ2xlLWNoYXJhY3RlciB3aWxkY2FyZHMgKD8pLCBhbmQKKy8vIG11bHRpLWNo
YXJhY3RlciB3aWxkY2FyZHMgKCopLgogLy8KLS8vIFRoaXMgcmVjdXJzaXZlIGFsZ29yaXRobSBp
c24ndCB2ZXJ5IGVmZmljaWVudCwgYnV0IGlzIGNsZWFyIGFuZAotLy8gd29ya3Mgd2VsbCBlbm91
Z2ggZm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLWJvb2wgVW5pdFRl
c3RPcHRpb25zOjpQYXR0ZXJuTWF0Y2hlc1N0cmluZyhjb25zdCBjaGFyICpwYXR0ZXJuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0cikg
ewotICBzd2l0Y2ggKCpwYXR0ZXJuKSB7Ci0gICAgY2FzZSAnXDAnOgotICAgIGNhc2UgJzonOiAg
Ly8gRWl0aGVyICc6JyBvciAnXDAnIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4uCi0gICAg
ICByZXR1cm4gKnN0ciA9PSAnXDAnOwotICAgIGNhc2UgJz8nOiAgLy8gTWF0Y2hlcyBhbnkgc2lu
Z2xlIGNoYXJhY3Rlci4KLSAgICAgIHJldHVybiAqc3RyICE9ICdcMCcgJiYgUGF0dGVybk1hdGNo
ZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICAgIGNhc2UgJyonOiAgLy8gTWF0Y2hl
cyBhbnkgc3RyaW5nIChwb3NzaWJseSBlbXB0eSkgb2YgY2hhcmFjdGVycy4KLSAgICAgIHJldHVy
biAoKnN0ciAhPSAnXDAnICYmIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4sIHN0ciArIDEp
KSB8fAotICAgICAgICAgIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4gKyAxLCBzdHIpOwot
ICAgIGRlZmF1bHQ6ICAvLyBOb24tc3BlY2lhbCBjaGFyYWN0ZXIuICBNYXRjaGVzIGl0c2VsZi4K
LSAgICAgIHJldHVybiAqcGF0dGVybiA9PSAqc3RyICYmCi0gICAgICAgICAgUGF0dGVybk1hdGNo
ZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICB9Ci19Ci0KLWJvb2wgVW5pdFRlc3RP
cHRpb25zOjpNYXRjaGVzRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25z
dCBjaGFyKiBmaWx0ZXIpIHsKLSAgY29uc3QgY2hhciAqY3VyX3BhdHRlcm4gPSBmaWx0ZXI7Ci0g
IGZvciAoOzspIHsKLSAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJpbmcoY3VyX3BhdHRlcm4sIG5h
bWUuY19zdHIoKSkpIHsKLSAgICAgIHJldHVybiB0cnVlOworLy8gVGhpcyBmdW5jdGlvbiBpbXBs
ZW1lbnRzIGEgbGluZWFyLXRpbWUgc3RyaW5nIGdsb2JiaW5nIGFsZ29yaXRobSBiYXNlZCBvbgor
Ly8gaHR0cHM6Ly9yZXNlYXJjaC5zd3RjaC5jb20vZ2xvYi4KK3N0YXRpYyBib29sIFBhdHRlcm5N
YXRjaGVzU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lX3N0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBhdHRlcm4sIGNvbnN0IGNoYXIqIHBhdHRl
cm5fZW5kKSB7CisgIGNvbnN0IGNoYXIqIG5hbWUgPSBuYW1lX3N0ci5jX3N0cigpOworICBjb25z
dCBjaGFyKiBjb25zdCBuYW1lX2JlZ2luID0gbmFtZTsKKyAgY29uc3QgY2hhciogY29uc3QgbmFt
ZV9lbmQgPSBuYW1lICsgbmFtZV9zdHIuc2l6ZSgpOworCisgIGNvbnN0IGNoYXIqIHBhdHRlcm5f
bmV4dCA9IHBhdHRlcm47CisgIGNvbnN0IGNoYXIqIG5hbWVfbmV4dCA9IG5hbWU7CisKKyAgd2hp
bGUgKHBhdHRlcm4gPCBwYXR0ZXJuX2VuZCB8fCBuYW1lIDwgbmFtZV9lbmQpIHsKKyAgICBpZiAo
cGF0dGVybiA8IHBhdHRlcm5fZW5kKSB7CisgICAgICBzd2l0Y2ggKCpwYXR0ZXJuKSB7CisgICAg
ICAgIGRlZmF1bHQ6ICAvLyBNYXRjaCBhbiBvcmRpbmFyeSBjaGFyYWN0ZXIuCisgICAgICAgICAg
aWYgKG5hbWUgPCBuYW1lX2VuZCAmJiAqbmFtZSA9PSAqcGF0dGVybikgeworICAgICAgICAgICAg
KytwYXR0ZXJuOworICAgICAgICAgICAgKytuYW1lOworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICc/JzogIC8vIE1hdGNo
IGFueSBzaW5nbGUgY2hhcmFjdGVyLgorICAgICAgICAgIGlmIChuYW1lIDwgbmFtZV9lbmQpIHsK
KyAgICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICAgICsrbmFtZTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAn
Kic6CisgICAgICAgICAgLy8gTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMuIFN0YXJ0IGJ5
IHNraXBwaW5nIG92ZXIgdGhlIHdpbGRjYXJkCisgICAgICAgICAgLy8gYW5kIG1hdGNoaW5nIHpl
cm8gY2hhcmFjdGVycyBmcm9tIG5hbWUuIElmIHRoYXQgZmFpbHMsIHJlc3RhcnQgYW5kCisgICAg
ICAgICAgLy8gbWF0Y2ggb25lIG1vcmUgY2hhcmFjdGVyIHRoYW4gdGhlIGxhc3QgYXR0ZW1wdC4K
KyAgICAgICAgICBwYXR0ZXJuX25leHQgPSBwYXR0ZXJuOworICAgICAgICAgIG5hbWVfbmV4dCA9
IG5hbWUgKyAxOworICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgIH0KKyAgICB9CisgICAgLy8gRmFpbGVkIHRvIG1hdGNoIGEgY2hhcmFjdGVyLiBSZXN0YXJ0
IGlmIHBvc3NpYmxlLgorICAgIGlmIChuYW1lX2JlZ2luIDwgbmFtZV9uZXh0ICYmIG5hbWVfbmV4
dCA8PSBuYW1lX2VuZCkgeworICAgICAgcGF0dGVybiA9IHBhdHRlcm5fbmV4dDsKKyAgICAgIG5h
bWUgPSBuYW1lX25leHQ7CisgICAgICBjb250aW51ZTsKICAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIHJldHVybiB0cnVlOworfQogCi0gICAgLy8gRmluZHMgdGhlIG5leHQgcGF0dGVy
biBpbiB0aGUgZmlsdGVyLgotICAgIGN1cl9wYXR0ZXJuID0gc3RyY2hyKGN1cl9wYXR0ZXJuLCAn
OicpOworYm9vbCBVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIoY29uc3Qgc3RkOjpzdHJp
bmcmIG5hbWVfc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZmlsdGVyKSB7CisgIC8vIFRoZSBmaWx0ZXIgaXMgYSBsaXN0IG9mIHBhdHRlcm5zIHNl
cGFyYXRlZCBieSBjb2xvbnMgKDopLgorICBjb25zdCBjaGFyKiBwYXR0ZXJuID0gZmlsdGVyOwor
ICB3aGlsZSAodHJ1ZSkgeworICAgIC8vIEZpbmQgdGhlIGJvdW5kcyBvZiB0aGlzIHBhdHRlcm4u
CisgICAgY29uc3QgY2hhciogY29uc3QgbmV4dF9zZXAgPSBzdHJjaHIocGF0dGVybiwgJzonKTsK
KyAgICBjb25zdCBjaGFyKiBjb25zdCBwYXR0ZXJuX2VuZCA9CisgICAgICAgIG5leHRfc2VwICE9
IG51bGxwdHIgPyBuZXh0X3NlcCA6IHBhdHRlcm4gKyBzdHJsZW4ocGF0dGVybik7CiAKLSAgICAv
LyBSZXR1cm5zIGlmIG5vIG1vcmUgcGF0dGVybiBjYW4gYmUgZm91bmQuCi0gICAgaWYgKGN1cl9w
YXR0ZXJuID09IE5VTEwpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBDaGVjayBpZiB0
aGlzIHBhdHRlcm4gbWF0Y2hlcyBuYW1lX3N0ci4KKyAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJp
bmcobmFtZV9zdHIsIHBhdHRlcm4sIHBhdHRlcm5fZW5kKSkgeworICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgLy8gU2tpcHMgdGhlIHBhdHRlcm4gc2VwYXJhdGVyICh0aGUgJzonIGNo
YXJhY3RlcikuCi0gICAgY3VyX3BhdHRlcm4rKzsKKyAgICAvLyBHaXZlIHVwIG9uIHRoaXMgcGF0
dGVybi4gSG93ZXZlciwgaWYgd2UgZm91bmQgYSBwYXR0ZXJuIHNlcGFyYXRvciAoOiksCisgICAg
Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBwYXR0ZXJuIChza2lwcGluZyBvdmVyIHRoZSBzZXBhcmF0
b3IpIGFuZCByZXN0YXJ0LgorICAgIGlmIChuZXh0X3NlcCA9PSBudWxscHRyKSB7CisgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHBhdHRlcm4gPSBuZXh0X3NlcCArIDE7CiAgIH0KKyAg
cmV0dXJuIHRydWU7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVzZXItc3BlY2lmaWVk
IGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0IGNhc2UKLS8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUu
Ci1ib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJp
bmcgJnRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X25hbWUpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcm
IGZ1bGxfbmFtZSA9IHRlc3RfY2FzZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7Cisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVzZXItc3BlY2lmaWVkIGZpbHRlciBt
YXRjaGVzIHRoZSB0ZXN0CisvLyBzdWl0ZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLgorYm9vbCBV
bml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0
X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSkgeworICBjb25zdCBzdGQ6OnN0cmluZyYgZnVsbF9u
YW1lID0gdGVzdF9zdWl0ZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7CiAKICAgLy8g
U3BsaXQgLS1ndGVzdF9maWx0ZXIgYXQgJy0nLCBpZiB0aGVyZSBpcyBvbmUsIHRvIHNlcGFyYXRl
IGludG8KICAgLy8gcG9zaXRpdmUgZmlsdGVyIGFuZCBuZWdhdGl2ZSBmaWx0ZXIgcG9ydGlvbnMK
QEAgLTU1Niw3ICs3MzYsNyBAQCBib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rl
c3QoY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfY2FzZV9uYW1lLAogICBjb25zdCBjaGFyKiBjb25z
dCBkYXNoID0gc3RyY2hyKHAsICctJyk7CiAgIHN0ZDo6c3RyaW5nIHBvc2l0aXZlOwogICBzdGQ6
OnN0cmluZyBuZWdhdGl2ZTsKLSAgaWYgKGRhc2ggPT0gTlVMTCkgeworICBpZiAoZGFzaCA9PSBu
dWxscHRyKSB7CiAgICAgcG9zaXRpdmUgPSBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKTsgIC8v
IFdob2xlIHN0cmluZyBpcyBhIHBvc2l0aXZlIGZpbHRlcgogICAgIG5lZ2F0aXZlID0gIiI7CiAg
IH0gZWxzZSB7CkBAIC03MDEsNyArODgxLDcgQEAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBIYXNP
bmVGYWlsdXJlKGNvbnN0IGNoYXIqIC8qIHJlc3VsdHNfZXhwciAqLywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IHI7CiAgIH0KIAotICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBz
dWJzdHIuY19zdHIoKSkgPT0gTlVMTCkgeworICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJz
dHIuY19zdHIoKSkgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkg
PDwgIkV4cGVjdGVkOiAiIDw8IGV4cGVjdGVkIDw8ICIgY29udGFpbmluZyBcIiIKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IHN1YnN0ciA8PCAiXCJcbiIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8ICIgIEFjdHVhbDpcbiIKQEAgLTc3MCw2MSArOTUwLDY2IEBAIHZv
aWQgVW5pdFRlc3RJbXBsOjpTZXRUZXN0UGFydFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVh
ZCgKICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXy5zZXQocmVwb3J0ZXIp
OwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IGNhc2VzLgotaW50
IFVuaXRUZXN0SW1wbDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJl
dHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBUZXN0Q2FzZVBhc3NlZCk7CisvLyBHZXRzIHRoZSBu
dW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdEltcGw6OnN1Y2Nl
c3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9z
dWl0ZXNfLCBUZXN0U3VpdGVQYXNzZWQpOwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFp
bGVkIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50
KCkgY29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywgVGVzdENhc2VGYWlsZWQp
OworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVz
dEltcGw6OmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gQ291bnRJ
Zih0ZXN0X3N1aXRlc18sIFRlc3RTdWl0ZUZhaWxlZCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJl
ciBvZiBhbGwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVzdEltcGw6OnRvdGFsX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9jYXNlc18uc2l6
ZSgpKTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRl
c3RJbXBsOjp0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pih0ZXN0X3N1aXRlc18uc2l6ZSgpKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25l
IHRlc3QKIC8vIHRoYXQgc2hvdWxkIHJ1bi4KLWludCBVbml0VGVzdEltcGw6OnRlc3RfY2FzZV90
b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBTaG91
bGRSdW5UZXN0Q2FzZSk7CitpbnQgVW5pdFRlc3RJbXBsOjp0ZXN0X3N1aXRlX3RvX3J1bl9jb3Vu
dCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9zdWl0ZXNfLCBTaG91bGRSdW5UZXN0
U3VpdGUpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KIGlu
dCBVbml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJu
IFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90
ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywg
JlRlc3RTdWl0ZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KTsKK30KKworLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIHNraXBwZWQgdGVzdHMuCitpbnQgVW5pdFRlc3RJbXBsOjpza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18s
ICZUZXN0U3VpdGU6OnNraXBwZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBmYWlsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jb3VudCgp
IGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0
Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3Qo
dGVzdF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjpmYWlsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4g
dGhlIFhNTCByZXBvcnQuCiBpbnQgVW5pdFRlc3RJbXBsOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rl
c3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2Fz
ZXNfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdENhc2U6OnJlcG9ydGFibGVf
ZGlzYWJsZWRfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0
X3N1aXRlc18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdFN1aXRlOjpyZXBv
cnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
ZGlzYWJsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpkaXNhYmxlZF90ZXN0X2NvdW50KCkg
Y29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RD
YXNlOjpkaXNhYmxlZF90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0
KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8v
IEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0
LgogaW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgewotICBy
ZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpyZXBvcnRh
YmxlX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0
ZXNfLCAmVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgYWxsIHRlc3RzLgogaW50IFVuaXRUZXN0SW1wbDo6dG90YWxfdGVzdF9jb3Vu
dCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZU
ZXN0Q2FzZTo6dG90YWxfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlz
dCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnRvdGFsX3Rlc3RfY291bnQpOwogfQogCiAvLyBH
ZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgogaW50IFVuaXRUZXN0SW1w
bDo6dGVzdF90b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VM
aXN0KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KTsKKyAgcmV0dXJu
IFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6dGVzdF90b19y
dW5fY291bnQpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGFz
IGFuIHN0ZDo6c3RyaW5nLgpAQCAtODQ2LDQ4ICsxMDMxLDMwIEBAIHN0ZDo6c3RyaW5nIFVuaXRU
ZXN0SW1wbDo6Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcChpbnQgc2tpcF9jb3VudCkgewog
ICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4g
bWlsbGlzZWNvbmRzLgorLy8gQSBoZWxwZXIgY2xhc3MgZm9yIG1lYXN1cmluZyBlbGFwc2VkIHRp
bWVzLgorY2xhc3MgVGltZXIgeworIHB1YmxpYzoKKyAgVGltZXIoKSA6IHN0YXJ0XyhzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSkge30KKworICAvLyBSZXR1cm4gdGltZSBlbGFwc2Vk
IGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgdGltZXIgd2FzIGNyZWF0ZWQuCisgIFRpbWVJbk1p
bGxpcyBFbGFwc2VkKCkgeworICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpz
dGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnRfKQorICAgICAgICAuY291bnQoKTsKKyAgfQorCisg
cHJpdmF0ZToKKyAgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jaz4gc3RhcnRfOworfTsKKworLy8gUmV0dXJucyBhIHRpbWVzdGFtcCBhcyBtaWxsaXNlY29u
ZHMgc2luY2UgdGhlIGVwb2NoLiBOb3RlIHRoaXMgdGltZSBtYXkganVtcAorLy8gYXJvdW5kIHN1
YmplY3QgdG8gYWRqdXN0bWVudHMgYnkgdGhlIHN5c3RlbSwgdG8gbWVhc3VyZSBlbGFwc2VkIHRp
bWUgdXNlCisvLyBUaW1lciBpbnN0ZWFkLgogVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygp
IHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykK
LSAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIDE5NzAtMDEtMDEgYW5kIDE2MDEtMDEtMDEgaW4gbWls
bGlzZWNvbmRzLgotICAvLyBodHRwOi8vYW5hbG9nb3VzLmJsb2dzcG90LmNvbS8yMDA1LzA0L2Vw
b2NoLmh0bWwKLSAgY29uc3QgVGltZUluTWlsbGlzIGtKYXZhRXBvY2hUb1dpbkZpbGVUaW1lRGVs
dGEgPQotICAgIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxpcz4oMTE2NDQ0NzM2VUwpICogMTAwMDAw
VUw7Ci0gIGNvbnN0IERXT1JEIGtUZW50aE1pY3Jvc0luTWlsbGlTZWNvbmQgPSAxMDAwMDsKLQot
ICBTWVNURU1USU1FIG5vd19zeXN0aW1lOwotICBGSUxFVElNRSBub3dfZmlsZXRpbWU7Ci0gIFVM
QVJHRV9JTlRFR0VSIG5vd19pbnQ2NDsKLSAgLy8gRklYTUU6IFNob3VsZG4ndCB0aGlzIGp1c3Qg
dXNlCi0gIC8vICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKT8KLSAgR2V0U3lzdGVtVGltZSgm
bm93X3N5c3RpbWUpOwotICBpZiAoU3lzdGVtVGltZVRvRmlsZVRpbWUoJm5vd19zeXN0aW1lLCAm
bm93X2ZpbGV0aW1lKSkgewotICAgIG5vd19pbnQ2NC5Mb3dQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3
TG93RGF0ZVRpbWU7Ci0gICAgbm93X2ludDY0LkhpZ2hQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3SGln
aERhdGVUaW1lOwotICAgIG5vd19pbnQ2NC5RdWFkUGFydCA9IChub3dfaW50NjQuUXVhZFBhcnQg
LyBrVGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kKSAtCi0gICAgICBrSmF2YUVwb2NoVG9XaW5GaWxl
VGltZURlbHRhOwotICAgIHJldHVybiBub3dfaW50NjQuUXVhZFBhcnQ7Ci0gIH0KLSAgcmV0dXJu
IDA7Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9IQVNfR0VUVElNRU9GREFZXwot
ICBfX3RpbWViNjQgbm93OwotCi0gIC8vIE1TVkMgOCBkZXByZWNhdGVzIF9mdGltZTY0KCksIHNv
IHdlIHdhbnQgdG8gc3VwcHJlc3Mgd2FybmluZyA0OTk2Ci0gIC8vIChkZXByZWNhdGVkIGZ1bmN0
aW9uKSB0aGVyZS4KLSAgLy8gRklYTUU6IFVzZSBHZXRUaWNrQ291bnQoKT8gIE9yIHVzZQotICAv
LyAgIFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCkKLSAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRF
RF9QVVNIXygpCi0gIF9mdGltZTY0KCZub3cpOwotICBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNB
VEVEX1BPUF8oKQotCi0gIHJldHVybiBzdGF0aWNfY2FzdDxUaW1lSW5NaWxsaXM+KG5vdy50aW1l
KSAqIDEwMDAgKyBub3cubWlsbGl0bTsKLSNlbGlmIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfCi0g
IHN0cnVjdCB0aW1ldmFsIG5vdzsKLSAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOwotICByZXR1
cm4gc3RhdGljX2Nhc3Q8VGltZUluTWlsbGlzPihub3cudHZfc2VjKSAqIDEwMDAgKyBub3cudHZf
dXNlYyAvIDEwMDA7Ci0jZWxzZQotIyBlcnJvciAiRG9uJ3Qga25vdyBob3cgdG8gZ2V0IHRoZSBj
dXJyZW50IHRpbWUgb24geW91ciBzeXN0ZW0uIgotI2VuZGlmCisgIHJldHVybiBzdGQ6OmNocm9u
bzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAg
ICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtCisgICAgICAgICAgICAgc3RkOjpj
aHJvbm86OnN5c3RlbV9jbG9jazo6ZnJvbV90aW1lX3QoMCkpCisgICAgICAuY291bnQoKTsKIH0K
IAogLy8gVXRpbGl0aWVzCkBAIC05MDAsMTEgKzEwNjcsMTAgQEAgVGltZUluTWlsbGlzIEdldFRp
bWVJbk1pbGxpcygpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSB3aWRl
IHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBMUENXU1RSIFN0cmlu
Zzo6QW5zaVRvVXRmMTYoY29uc3QgY2hhciogYW5zaSkgewotICBpZiAoIWFuc2kpIHJldHVybiBO
VUxMOworICBpZiAoIWFuc2kpIHJldHVybiBudWxscHRyOwogICBjb25zdCBpbnQgbGVuZ3RoID0g
c3RybGVuKGFuc2kpOwogICBjb25zdCBpbnQgdW5pY29kZV9sZW5ndGggPQotICAgICAgTXVsdGlC
eXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgMCk7CisgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwg
YW5zaSwgbGVuZ3RoLCBudWxscHRyLCAwKTsKICAgV0NIQVIqIHVuaWNvZGUgPSBuZXcgV0NIQVJb
dW5pY29kZV9sZW5ndGggKyAxXTsKICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFu
c2ksIGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCB1bmljb2RlX2xlbmd0
aCk7CkBAIC05MTcsMzMgKzEwODMsMzMgQEAgTFBDV1NUUiBTdHJpbmc6OkFuc2lUb1V0ZjE2KGNv
bnN0IGNoYXIqIGFuc2kpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSBB
TlNJIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBjb25zdCBjaGFy
KiBTdHJpbmc6OlV0ZjE2VG9BbnNpKExQQ1dTVFIgdXRmMTZfc3RyKSAgewotICBpZiAoIXV0ZjE2
X3N0cikgcmV0dXJuIE5VTEw7Ci0gIGNvbnN0IGludCBhbnNpX2xlbmd0aCA9Ci0gICAgICBXaWRl
Q2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCwgTlVMTCk7CisgIGlmICghdXRmMTZfc3RyKSByZXR1
cm4gbnVsbHB0cjsKKyAgY29uc3QgaW50IGFuc2lfbGVuZ3RoID0gV2lkZUNoYXJUb011bHRpQnl0
ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgIGNoYXIq
IGFuc2kgPSBuZXcgY2hhclthbnNpX2xlbmd0aCArIDFdOwotICBXaWRlQ2hhclRvTXVsdGlCeXRl
KENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAgICAgICAgICBhbnNpLCBh
bnNpX2xlbmd0aCwgTlVMTCwgTlVMTCk7CisgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAw
LCB1dGYxNl9zdHIsIC0xLCBhbnNpLCBhbnNpX2xlbmd0aCwgbnVsbHB0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICBudWxscHRyKTsKICAgYW5zaVthbnNpX2xlbmd0aF0gPSAwOwogICByZXR1cm4g
YW5zaTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogCi0vLyBDb21w
YXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUg
Y29udGVudC4KKy8vIENvbXBhcmVzIHR3byBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhleSBoYXZlIHRoZSBzYW1lCisvLyBjb250ZW50LgogLy8KIC8vIFVubGlrZSBz
dHJjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBBIE5V
TEwKIC8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBD
IHN0cmluZywKIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgogYm9vbCBTdHJpbmc6OkNT
dHJpbmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29uc3QgY2hhciAqIHJocykgewotICBpZiAo
IGxocyA9PSBOVUxMICkgcmV0dXJuIHJocyA9PSBOVUxMOworICBpZiAobGhzID09IG51bGxwdHIp
IHJldHVybiByaHMgPT0gbnVsbHB0cjsKIAotICBpZiAoIHJocyA9PSBOVUxMICkgcmV0dXJuIGZh
bHNlOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICByZXR1cm4gc3Ry
Y21wKGxocywgcmhzKSA9PSAwOwogfQogCi0jaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HIHx8IEdU
RVNUX0hBU19HTE9CQUxfV1NUUklORworI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogCiAvLyBD
b252ZXJ0cyBhbiBhcnJheSBvZiB3aWRlIGNoYXJzIHRvIGEgbmFycm93IHN0cmluZyB1c2luZyB0
aGUgVVRGLTgKIC8vIGVuY29kaW5nLCBhbmQgc3RyZWFtcyB0aGUgcmVzdWx0IHRvIHRoZSBnaXZl
biBNZXNzYWdlIG9iamVjdC4KQEAgLTk2MSw3ICsxMTI3LDcgQEAgc3RhdGljIHZvaWQgU3RyZWFt
V2lkZUNoYXJzVG9NZXNzYWdlKGNvbnN0IHdjaGFyX3QqIHdzdHIsIHNpemVfdCBsZW5ndGgsCiAg
IH0KIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcgfHwgR1RFU1RfSEFTX0dM
T0JBTF9XU1RSSU5HCisjZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwogCiB2b2lkIFNw
bGl0U3RyaW5nKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgY2hhciBkZWxpbWl0ZXIsCiAgICAg
ICAgICAgICAgICAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+KiBkZXN0KSB7CkBAIC0x
MDExLDE1ICsxMTc3LDYgQEAgTWVzc2FnZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjpz
dGQ6OndzdHJpbmcmIHdzdHIpIHsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5H
CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIENvbnZlcnRzIHRoZSBnaXZlbiB3
aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNpbmcgdGhlIFVURi04Ci0vLyBlbmNvZGlu
ZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotTWVzc2Fn
ZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjp3c3RyaW5nJiB3c3RyKSB7Ci0gIGludGVy
bmFsOjpTdHJlYW1XaWRlQ2hhcnNUb01lc3NhZ2Uod3N0ci5jX3N0cigpLCB3c3RyLmxlbmd0aCgp
LCB0aGlzKTsKLSAgcmV0dXJuICp0aGlzOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFM
X1dTVFJJTkcKLQogLy8gR2V0cyB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBzbyBm
YXIgYXMgYW4gc3RkOjpzdHJpbmcuCiAvLyBFYWNoICdcMCcgY2hhcmFjdGVyIGluIHRoZSBidWZm
ZXIgaXMgcmVwbGFjZWQgd2l0aCAiXFwwIi4KIHN0ZDo6c3RyaW5nIE1lc3NhZ2U6OkdldFN0cmlu
ZygpIGNvbnN0IHsKQEAgLTEwMzAsMTAgKzExODcsOSBAQCBzdGQ6OnN0cmluZyBNZXNzYWdlOjpH
ZXRTdHJpbmcoKSBjb25zdCB7CiAvLyBVc2VkIGluIEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2VydGlv
bl9yZXN1bHQpLgogQXNzZXJ0aW9uUmVzdWx0OjpBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0
aW9uUmVzdWx0JiBvdGhlcikKICAgICA6IHN1Y2Nlc3NfKG90aGVyLnN1Y2Nlc3NfKSwKLSAgICAg
IG1lc3NhZ2VfKG90aGVyLm1lc3NhZ2VfLmdldCgpICE9IE5VTEwgPwotICAgICAgICAgICAgICAg
bmV3IDo6c3RkOjpzdHJpbmcoKm90aGVyLm1lc3NhZ2VfKSA6Ci0gICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDwgOjpzdGQ6OnN0cmluZyo+KE5VTEwpKSB7Ci19CisgICAgICBtZXNzYWdlXyhvdGhl
ci5tZXNzYWdlXy5nZXQoKSAhPSBudWxscHRyCisgICAgICAgICAgICAgICAgICAgPyBuZXcgOjpz
dGQ6OnN0cmluZygqb3RoZXIubWVzc2FnZV8pCisgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNf
Y2FzdDwgOjpzdGQ6OnN0cmluZyo+KG51bGxwdHIpKSB7fQogCiAvLyBTd2FwcyB0d28gQXNzZXJ0
aW9uUmVzdWx0cy4KIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYg
b3RoZXIpIHsKQEAgLTEwNDUsOCArMTIwMSw3IEBAIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2Fw
KEFzc2VydGlvblJlc3VsdCYgb3RoZXIpIHsKIC8vIFJldHVybnMgdGhlIGFzc2VydGlvbidzIG5l
Z2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KIEFzc2VydGlvblJlc3VsdCBB
c3NlcnRpb25SZXN1bHQ6Om9wZXJhdG9yISgpIGNvbnN0IHsKICAgQXNzZXJ0aW9uUmVzdWx0IG5l
Z2F0aW9uKCFzdWNjZXNzXyk7Ci0gIGlmIChtZXNzYWdlXy5nZXQoKSAhPSBOVUxMKQotICAgIG5l
Z2F0aW9uIDw8ICptZXNzYWdlXzsKKyAgaWYgKG1lc3NhZ2VfLmdldCgpICE9IG51bGxwdHIpIG5l
Z2F0aW9uIDw8ICptZXNzYWdlXzsKICAgcmV0dXJuIG5lZ2F0aW9uOwogfQogCkBAIC0xMjcyLDkg
KzE0MjcsMTAgQEAgc3RkOjpzdHJpbmcgQ3JlYXRlVW5pZmllZERpZmYoY29uc3Qgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+JiBsZWZ0LAogICAgIGZvciAoOyBlZGl0X2kgPCBlZGl0cy5zaXplKCk7
ICsrZWRpdF9pKSB7CiAgICAgICBpZiAobl9zdWZmaXggPj0gY29udGV4dCkgewogICAgICAgICAv
LyBDb250aW51ZSBvbmx5IGlmIHRoZSBuZXh0IGh1bmsgaXMgdmVyeSBjbG9zZS4KLSAgICAgICAg
c3RkOjp2ZWN0b3I8RWRpdFR5cGU+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGVkaXRzLmJlZ2luKCkg
KyBlZGl0X2k7CisgICAgICAgIGF1dG8gaXQgPSBlZGl0cy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8
aW50PihlZGl0X2kpOwogICAgICAgICB3aGlsZSAoaXQgIT0gZWRpdHMuZW5kKCkgJiYgKml0ID09
IGtNYXRjaCkgKytpdDsKLSAgICAgICAgaWYgKGl0ID09IGVkaXRzLmVuZCgpIHx8IChpdCAtIGVk
aXRzLmJlZ2luKCkpIC0gZWRpdF9pID49IGNvbnRleHQpIHsKKyAgICAgICAgaWYgKGl0ID09IGVk
aXRzLmVuZCgpIHx8CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGl0IC0gZWRpdHMu
YmVnaW4oKSkgLSBlZGl0X2kgPj0gY29udGV4dCkgewogICAgICAgICAgIC8vIFRoZXJlIGlzIG5v
IG5leHQgZWRpdCBvciBpdCBpcyB0b28gZmFyIGF3YXkuCiAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KQEAgLTEzNTAsNyArMTUwNiw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxp
dEVzY2FwZWRTdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHN0cikgewogLy8gICBsaHNfdmFsdWU6
ICAgICAgIjUiCiAvLyAgIHJoc192YWx1ZTogICAgICAiNiIKIC8vCi0vLyBUaGUgaWdub3Jpbmdf
Y2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZmYgdGhlIGFzc2VydGlvbiBpcyBhCisvLyBUaGUgaWdu
b3JpbmdfY2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9u
IGlzIGEKIC8vICpfU1RSQ0FTRUVRKi4gIFdoZW4gaXQncyB0cnVlLCB0aGUgc3RyaW5nICJJZ25v
cmluZyBjYXNlIiB3aWxsCiAvLyBiZSBpbnNlcnRlZCBpbnRvIHRoZSBtZXNzYWdlLgogQXNzZXJ0
aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKQEAgLTE0MTMs
OCArMTU2OSwzMSBAQCBBc3NlcnRpb25SZXN1bHQgRG91YmxlTmVhclByZWRGb3JtYXQoY29uc3Qg
Y2hhciogZXhwcjEsCiAgIGNvbnN0IGRvdWJsZSBkaWZmID0gZmFicyh2YWwxIC0gdmFsMik7CiAg
IGlmIChkaWZmIDw9IGFic19lcnJvcikgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICAv
LyBGSVhNRTogZG8gbm90IHByaW50IHRoZSB2YWx1ZSBvZiBhbiBleHByZXNzaW9uIGlmIGl0J3MK
LSAgLy8gYWxyZWFkeSBhIGxpdGVyYWwuCisgIC8vIEZpbmQgdGhlIHZhbHVlIHdoaWNoIGlzIGNs
b3Nlc3QgdG8gemVyby4KKyAgY29uc3QgZG91YmxlIG1pbl9hYnMgPSBzdGQ6Om1pbihmYWJzKHZh
bDEpLCBmYWJzKHZhbDIpKTsKKyAgLy8gRmluZCB0aGUgZGlzdGFuY2UgdG8gdGhlIG5leHQgZG91
YmxlIGZyb20gdGhhdCB2YWx1ZS4KKyAgY29uc3QgZG91YmxlIGVwc2lsb24gPQorICAgICAgbmV4
dGFmdGVyKG1pbl9hYnMsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkg
LSBtaW5fYWJzOworICAvLyBEZXRlY3QgdGhlIGNhc2Ugd2hlcmUgYWJzX2Vycm9yIGlzIHNvIHNt
YWxsIHRoYXQgRVhQRUNUX05FQVIgaXMKKyAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgRVhQ
RUNUX0VRVUFMLCBhbmQgZ2l2ZSBhbiBpbmZvcm1hdGl2ZSBlcnJvcgorICAvLyBtZXNzYWdlIHNv
IHRoYXQgdGhlIHNpdHVhdGlvbiBjYW4gYmUgbW9yZSBlYXNpbHkgdW5kZXJzdG9vZCB3aXRob3V0
CisgIC8vIHJlcXVpcmluZyBleG90aWMgZmxvYXRpbmctcG9pbnQga25vd2xlZGdlLgorICAvLyBE
b24ndCBkbyBhbiBlcHNpbG9uIGNoZWNrIGlmIGFic19lcnJvciBpcyB6ZXJvIGJlY2F1c2UgdGhh
dCBpbXBsaWVzCisgIC8vIHRoYXQgYW4gZXF1YWxpdHkgY2hlY2sgd2FzIGFjdHVhbGx5IGludGVu
ZGVkLgorICBpZiAoIShzdGQ6OmlzbmFuKSh2YWwxKSAmJiAhKHN0ZDo6aXNuYW4pKHZhbDIpICYm
IGFic19lcnJvciA+IDAgJiYKKyAgICAgIGFic19lcnJvciA8IGVwc2lsb24pIHsKKyAgICByZXR1
cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgIDw8ICJUaGUgZGlmZmVyZW5jZSBiZXR3
ZWVuICIgPDwgZXhwcjEgPDwgIiBhbmQgIiA8PCBleHByMiA8PCAiIGlzICIKKyAgICAgICAgICAg
PDwgZGlmZiA8PCAiLCB3aGVyZVxuIgorICAgICAgICAgICA8PCBleHByMSA8PCAiIGV2YWx1YXRl
cyB0byAiIDw8IHZhbDEgPDwgIixcbiIKKyAgICAgICAgICAgPDwgZXhwcjIgPDwgIiBldmFsdWF0
ZXMgdG8gIiA8PCB2YWwyIDw8ICIuXG5UaGUgYWJzX2Vycm9yIHBhcmFtZXRlciAiCisgICAgICAg
ICAgIDw8IGFic19lcnJvcl9leHByIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgYWJzX2Vycm9yCisg
ICAgICAgICAgIDw8ICIgd2hpY2ggaXMgc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIGRpc3RhbmNl
IGJldHdlZW4gZG91YmxlcyBmb3IgIgorICAgICAgICAgICAgICAibnVtYmVycyBvZiB0aGlzIG1h
Z25pdHVkZSB3aGljaCBpcyAiCisgICAgICAgICAgIDw8IGVwc2lsb24KKyAgICAgICAgICAgPDwg
IiwgdGh1cyBtYWtpbmcgdGhpcyBFWFBFQ1RfTkVBUiBjaGVjayBlcXVpdmFsZW50IHRvICIKKyAg
ICAgICAgICAgICAgIkVYUEVDVF9FUVVBTC4gQ29uc2lkZXIgdXNpbmcgRVhQRUNUX0RPVUJMRV9F
USBpbnN0ZWFkLiI7CisgIH0KICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQogICAgICAgPDwg
IlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gIiA8PCBleHByMSA8PCAiIGFuZCAiIDw8IGV4cHIyCiAg
ICAgICA8PCAiIGlzICIgPDwgZGlmZiA8PCAiLCB3aGljaCBleGNlZWRzICIgPDwgYWJzX2Vycm9y
X2V4cHIgPDwgIiwgd2hlcmVcbiIKQEAgLTE0NzcsNTcgKzE2NTYsNiBAQCBBc3NlcnRpb25SZXN1
bHQgRG91YmxlTEUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogCiBuYW1l
c3BhY2UgaW50ZXJuYWwgewogCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVY
UEVDVH1fRVEgd2l0aCBpbnQgb3IgZW51bQotLy8gYXJndW1lbnRzLgotQXNzZXJ0aW9uUmVzdWx0
IENtcEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJpZ2dlc3RJbnQgcmhzKSB7Ci0gIGlmIChsaHMgPT0gcmhzKSB7Ci0gICAgcmV0dXJuIEFzc2Vy
dGlvblN1Y2Nlc3MoKTsKLSAgfQotCi0gIHJldHVybiBFcUZhaWx1cmUobGhzX2V4cHJlc3Npb24s
Ci0gICAgICAgICAgICAgICAgICAgcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAg
Rm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKGxocywgcmhzKSwKLSAgICAgICAgICAg
ICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocmhzLCBsaHMpLAotICAg
ICAgICAgICAgICAgICAgIGZhbHNlKTsKLX0KLQotLy8gQSBtYWNybyBmb3IgaW1wbGVtZW50aW5n
IHRoZSBoZWxwZXIgZnVuY3Rpb25zIG5lZWRlZCB0byBpbXBsZW1lbnQKLS8vIEFTU0VSVF8/PyBh
bmQgRVhQRUNUXz8/IHdpdGggaW50ZWdlciBvciBlbnVtIGFyZ3VtZW50cy4gIEl0IGlzIGhlcmUK
LS8vIGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUgb2Ygc2ltaWxhciBjb2RlLgotI2RlZmlu
ZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKG9wX25hbWUsIG9wKVwKLUFzc2VydGlvblJlc3VsdCBD
bXBIZWxwZXIjI29wX25hbWUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgdmFsMSwgQmln
Z2VzdEludCB2YWwyKSB7XAotICBpZiAodmFsMSBvcCB2YWwyKSB7XAotICAgIHJldHVybiBBc3Nl
cnRpb25TdWNjZXNzKCk7XAotICB9IGVsc2Uge1wKLSAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVy
ZSgpIFwKLSAgICAgICAgPDwgIkV4cGVjdGVkOiAoIiA8PCBleHByMSA8PCAiKSAiICNvcCAiICgi
IDw8IGV4cHIyXAotICAgICAgICA8PCAiKSwgYWN0dWFsOiAiIDw8IEZvcm1hdEZvckNvbXBhcmlz
b25GYWlsdXJlTWVzc2FnZSh2YWwxLCB2YWwyKVwKLSAgICAgICAgPDwgIiB2cyAiIDw8IEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSh2YWwyLCB2YWwxKTtcCi0gIH1cCi19Ci0KLS8v
IEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X05FIHdp
dGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTkUs
ICE9KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVD
VH1fTEUgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMRSwgPD0pCi0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9MVCB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKExULCA8ICkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBm
b3Ige0FTU0VSVHxFWFBFQ1R9X0dFIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1
bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1Qgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1l
bnRzLgotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPiApCi0KLSN1bmRlZiBHVEVTVF9JTVBM
X0NNUF9IRUxQRVJfCi0KIC8vIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNU
fV9TVFJFUS4KIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJFUShjb25zdCBjaGFyKiBsaHNf
ZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
aHNfZXhwcmVzc2lvbiwKQEAgLTE1OTUsMjIgKzE3MjMsMjAgQEAgbmFtZXNwYWNlIHsKIAogLy8g
SGVscGVyIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIElzU3ViU3RyaW5nKCkgYW5kIElzTm90
U3Vic3RyaW5nKCkuCiAKLS8vIFRoaXMgZ3JvdXAgb2Ygb3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0
dXJuIHRydWUgaWZmIG5lZWRsZSBpcyBhCi0vLyBzdWJzdHJpbmcgb2YgaGF5c3RhY2suICBOVUxM
IGlzIGNvbnNpZGVyZWQgYSBzdWJzdHJpbmcgb2YgaXRzZWxmCi0vLyBvbmx5LgorLy8gVGhpcyBn
cm91cCBvZiBvdmVybG9hZGVkIGZ1bmN0aW9ucyByZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBu
ZWVkbGUKKy8vIGlzIGEgc3Vic3RyaW5nIG9mIGhheXN0YWNrLiAgTlVMTCBpcyBjb25zaWRlcmVk
IGEgc3Vic3RyaW5nIG9mCisvLyBpdHNlbGYgb25seS4KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQo
Y29uc3QgY2hhciogbmVlZGxlLCBjb25zdCBjaGFyKiBoYXlzdGFjaykgewotICBpZiAobmVlZGxl
ID09IE5VTEwgfHwgaGF5c3RhY2sgPT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0
YWNrOworICBpZiAobmVlZGxlID09IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0
dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsKIAotICByZXR1cm4gc3Ryc3RyKGhheXN0YWNrLCBuZWVk
bGUpICE9IE5VTEw7CisgIHJldHVybiBzdHJzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0
cjsKIH0KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29uc3Qgd2NoYXJfdCogbmVlZGxlLCBjb25z
dCB3Y2hhcl90KiBoYXlzdGFjaykgewotICBpZiAobmVlZGxlID09IE5VTEwgfHwgaGF5c3RhY2sg
PT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0YWNrOworICBpZiAobmVlZGxlID09
IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFj
azsKIAotICByZXR1cm4gd2Nzc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IE5VTEw7CisgIHJldHVy
biB3Y3NzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0cjsKIH0KIAogLy8gU3RyaW5nVHlw
ZSBoZXJlIGNhbiBiZSBlaXRoZXIgOjpzdGQ6OnN0cmluZyBvciA6OnN0ZDo6d3N0cmluZy4KQEAg
LTE3MjQsMTIgKzE4NTAsMTIgQEAgQXNzZXJ0aW9uUmVzdWx0IEhSRVNVTFRGYWlsdXJlSGVscGVy
KGNvbnN0IGNoYXIqIGV4cHIsCiAgIC8vIEdldHMgdGhlIHN5c3RlbSdzIGh1bWFuIHJlYWRhYmxl
IG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGlzIEhSRVNVTFQuCiAgIGNoYXIgZXJyb3JfdGV4dFtrQnVm
U2l6ZV0gPSB7ICdcMCcgfTsKICAgRFdPUkQgbWVzc2FnZV9sZW5ndGggPSA6OkZvcm1hdE1lc3Nh
Z2VBKGtGbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
ICAvLyBubyBzb3VyY2UsIHdlJ3JlIGFza2luZyBzeXN0ZW0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhyLCAgLy8gdGhlIGVycm9yCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgLy8gbm8gbGluZSB3aWR0aCByZXN0cmljdGlv
bnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgLy8gbm8g
c291cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxEV09SRD4oaHIpLCAgLy8gdGhlIGVycm9yCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgIC8vIG5vIGxpbmUgd2lk
dGggcmVzdHJpY3Rpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcl90ZXh0LCAgLy8gb3V0cHV0IGJ1ZmZlcgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga0J1ZlNpemUsICAvLyBidWYgc2l6ZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7ICAvLyBubyBhcmd1bWVudHMgZm9yIGlu
c2VydHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtCdWZTaXpl
LCAgICAvLyBidWYgc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVsbHB0cik7ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2VydHMKICAgLy8gVHJpbXMgdGFp
bGluZyB3aGl0ZSBzcGFjZSAoRm9ybWF0TWVzc2FnZSBsZWF2ZXMgYSB0cmFpbGluZyBDUi1MRikK
ICAgZm9yICg7IG1lc3NhZ2VfbGVuZ3RoICYmIElzU3BhY2UoZXJyb3JfdGV4dFttZXNzYWdlX2xl
bmd0aCAtIDFdKTsKICAgICAgICAgICAtLW1lc3NhZ2VfbGVuZ3RoKSB7CkBAIC0xNzc1LDM1ICsx
OTAxLDM1IEBAIEFzc2VydGlvblJlc3VsdCBJc0hSRVNVTFRGYWlsdXJlKGNvbnN0IGNoYXIqIGV4
cHIsIGxvbmcgaHIpIHsgIC8vIE5PTElOVAogLy8gIDE3IC0gMjEgYml0cyAgICAgICAxMTExMHh4
eCAxMHh4eHh4eCAxMHh4eHh4eCAxMHh4eHh4eAogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50
IGEgb25lLWJ5dGUgVVRGLTggc2VxdWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBr
TWF4Q29kZVBvaW50MSA9IChzdGF0aWNfY2FzdDxVSW50MzI+KDEpIDw8ICA3KSAtIDE7Citjb25z
dGV4cHIgdWludDMyX3Qga01heENvZGVQb2ludDEgPSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEp
IDw8ICA3KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0d28tYnl0ZSBVVEYt
OCBzZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtNYXhDb2RlUG9pbnQyID0g
KHN0YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDUgKyA2KSkgLSAxOworY29uc3RleHByIHVpbnQz
Ml90IGtNYXhDb2RlUG9pbnQyID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoNSArIDYp
KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0aHJlZS1ieXRlIFVURi04IHNl
cXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENvZGVQb2ludDMgPSAoc3Rh
dGljX2Nhc3Q8VUludDMyPigxKSA8PCAoNCArIDIqNikpIC0gMTsKK2NvbnN0ZXhwciB1aW50MzJf
dCBrTWF4Q29kZVBvaW50MyA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgKDQgKyAyKjYp
KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSBmb3VyLWJ5dGUgVVRGLTggc2Vx
dWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4Q29kZVBvaW50NCA9IChzdGF0
aWNfY2FzdDxVSW50MzI+KDEpIDw8ICgzICsgMyo2KSkgLSAxOworY29uc3RleHByIHVpbnQzMl90
IGtNYXhDb2RlUG9pbnQ0ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoMyArIDMqNikp
IC0gMTsKIAogLy8gQ2hvcHMgb2ZmIHRoZSBuIGxvd2VzdCBiaXRzIGZyb20gYSBiaXQgcGF0dGVy
bi4gIFJldHVybnMgdGhlIG4KIC8vIGxvd2VzdCBiaXRzLiAgQXMgYSBzaWRlIGVmZmVjdCwgdGhl
IG9yaWdpbmFsIGJpdCBwYXR0ZXJuIHdpbGwgYmUKIC8vIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5
IG4gYml0cy4KLWlubGluZSBVSW50MzIgQ2hvcExvd0JpdHMoVUludDMyKiBiaXRzLCBpbnQgbikg
ewotICBjb25zdCBVSW50MzIgbG93X2JpdHMgPSAqYml0cyAmICgoc3RhdGljX2Nhc3Q8VUludDMy
PigxKSA8PCBuKSAtIDEpOworaW5saW5lIHVpbnQzMl90IENob3BMb3dCaXRzKHVpbnQzMl90KiBi
aXRzLCBpbnQgbikgeworICBjb25zdCB1aW50MzJfdCBsb3dfYml0cyA9ICpiaXRzICYgKChzdGF0
aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgbikgLSAxKTsKICAgKmJpdHMgPj49IG47CiAgIHJldHVy
biBsb3dfYml0czsKIH0KIAogLy8gQ29udmVydHMgYSBVbmljb2RlIGNvZGUgcG9pbnQgdG8gYSBu
YXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgotLy8gY29kZV9wb2ludCBwYXJhbWV0ZXIg
aXMgb2YgdHlwZSBVSW50MzIgYmVjYXVzZSB3Y2hhcl90IG1heSBub3QgYmUKKy8vIGNvZGVfcG9p
bnQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgdWludDMyX3QgYmVjYXVzZSB3Y2hhcl90IG1heSBub3Qg
YmUKIC8vIHdpZGUgZW5vdWdoIHRvIGNvbnRhaW4gYSBjb2RlIHBvaW50LgogLy8gSWYgdGhlIGNv
ZGVfcG9pbnQgaXMgbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50CiAvLyAoaS5lLiBvdXRz
aWRlIG9mIFVuaWNvZGUgcmFuZ2UgVSswIHRvIFUrMTBGRkZGKSBpdCB3aWxsIGJlIGNvbnZlcnRl
ZAogLy8gdG8gIihJbnZhbGlkIFVuaWNvZGUgMHhYWFhYWFhYWCkiLgotc3RkOjpzdHJpbmcgQ29k
ZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KSB7CitzdGQ6OnN0cmluZyBDb2RlUG9pbnRU
b1V0ZjgodWludDMyX3QgY29kZV9wb2ludCkgewogICBpZiAoY29kZV9wb2ludCA+IGtNYXhDb2Rl
UG9pbnQ0KSB7Ci0gICAgcmV0dXJuICIoSW52YWxpZCBVbmljb2RlIDB4IiArIFN0cmluZzo6Rm9y
bWF0SGV4SW50KGNvZGVfcG9pbnQpICsgIikiOworICAgIHJldHVybiAiKEludmFsaWQgVW5pY29k
ZSAweCIgKyBTdHJpbmc6OkZvcm1hdEhleFVJbnQzMihjb2RlX3BvaW50KSArICIpIjsKICAgfQog
CiAgIGNoYXIgc3RyWzVdOyAgLy8gQmlnIGVub3VnaCBmb3IgdGhlIGxhcmdlc3QgdmFsaWQgY29k
ZSBwb2ludC4KQEAgLTE4MzEsNyArMTk1Nyw3IEBAIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRm
OChVSW50MzIgY29kZV9wb2ludCkgewogCiAvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMg
b25seSBtYWtlIHNlbnNlIGlmIHRoZSBzeXN0ZW0KIC8vIHVzZXMgVVRGLTE2IGZvciB3aWRlIHN0
cmluZyBlbmNvZGluZy4gQWxsIHN1cHBvcnRlZCBzeXN0ZW1zCi0vLyB3aXRoIDE2IGJpdCB3Y2hh
cl90IChXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpIGRvIHVzZSBVVEYtMTYuCisvLyB3aXRo
IDE2IGJpdCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4pIGRvIHVzZSBVVEYtMTYuCiAKIC8vIERl
dGVybWluZXMgaWYgdGhlIGFyZ3VtZW50cyBjb25zdGl0dXRlIFVURi0xNiBzdXJyb2dhdGUgcGFp
cgogLy8gYW5kIHRodXMgc2hvdWxkIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgVW5pY29kZSBj
b2RlIHBvaW50CkBAIC0xODQyLDE5ICsxOTY4LDIyIEBAIGlubGluZSBib29sIElzVXRmMTZTdXJy
b2dhdGVQYWlyKHdjaGFyX3QgZmlyc3QsIHdjaGFyX3Qgc2Vjb25kKSB7CiB9CiAKIC8vIENyZWF0
ZXMgYSBVbmljb2RlIGNvZGUgcG9pbnQgZnJvbSBVVEYxNiBzdXJyb2dhdGUgcGFpci4KLWlubGlu
ZSBVSW50MzIgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZp
cnN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdjaGFyX3Qgc2Vjb25kKSB7Ci0gIGNvbnN0IFVJbnQzMiBtYXNrID0gKDEgPDwgMTApIC0gMTsK
LSAgcmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikgPwotICAgICAgKCgoZmlyc3QgJiBtYXNr
KSA8PCAxMCkgfCAoc2Vjb25kICYgbWFzaykpICsgMHgxMDAwMCA6Ci0gICAgICAvLyBUaGlzIGZ1
bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbmRpdGlvbiBpcwotICAgICAg
Ly8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlz
LgotICAgICAgc3RhdGljX2Nhc3Q8VUludDMyPihmaXJzdCk7CitpbmxpbmUgdWludDMyX3QgQ3Jl
YXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2NoYXJfdCBz
ZWNvbmQpIHsKKyAgY29uc3QgYXV0byBmaXJzdF91ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZp
cnN0KTsKKyAgY29uc3QgYXV0byBzZWNvbmRfdSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZWNv
bmQpOworICBjb25zdCB1aW50MzJfdCBtYXNrID0gKDEgPDwgMTApIC0gMTsKKyAgcmV0dXJuIChz
aXplb2Yod2NoYXJfdCkgPT0gMikKKyAgICAgICAgICAgICA/ICgoKGZpcnN0X3UgJiBtYXNrKSA8
PCAxMCkgfCAoc2Vjb25kX3UgJiBtYXNrKSkgKyAweDEwMDAwCisgICAgICAgICAgICAgOgorICAg
ICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUg
Y29uZGl0aW9uIGlzCisgICAgICAgICAgICAgLy8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vu
c2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgorICAgICAgICAgICAgIGZpcnN0X3U7CiB9CiAK
IC8vIENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04IGVu
Y29kaW5nLgogLy8gVGhlIHdpZGUgc3RyaW5nIGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZm9sbG93
aW5nIGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYgc2l6ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdp
bmRvd3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKKy8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90
KSA9PSAyIChvbiBXaW5kb3dzLCBDeWd3aW4pCiAvLyAgIFVURi0zMiBpZiBzaXplb2Yod2NoYXJf
dCkgPT0gNCAob24gTGludXgpCiAvLyBQYXJhbWV0ZXIgc3RyIHBvaW50cyB0byBhIG51bGwtdGVy
bWluYXRlZCB3aWRlIHN0cmluZy4KIC8vIFBhcmFtZXRlciBudW1fY2hhcnMgbWF5IGFkZGl0aW9u
YWxseSBsaW1pdCB0aGUgbnVtYmVyCkBAIC0xODcxLDcgKzIwMDAsNyBAQCBzdGQ6OnN0cmluZyBX
aWRlU3RyaW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwgaW50IG51bV9jaGFycykgewogCiAg
IDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwogICBmb3IgKGludCBpID0gMDsgaSA8IG51bV9j
aGFyczsgKytpKSB7Ci0gICAgVUludDMyIHVuaWNvZGVfY29kZV9wb2ludDsKKyAgICB1aW50MzJf
dCB1bmljb2RlX2NvZGVfcG9pbnQ7CiAKICAgICBpZiAoc3RyW2ldID09IEwnXDAnKSB7CiAgICAg
ICBicmVhazsKQEAgLTE4ODAsNyArMjAwOSw3IEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0
ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVtX2NoYXJzKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltpICsg
MV0pOwogICAgICAgaSsrOwogICAgIH0gZWxzZSB7Ci0gICAgICB1bmljb2RlX2NvZGVfcG9pbnQg
PSBzdGF0aWNfY2FzdDxVSW50MzI+KHN0cltpXSk7CisgICAgICB1bmljb2RlX2NvZGVfcG9pbnQg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RyW2ldKTsKICAgICB9CiAKICAgICBzdHJlYW0gPDwg
Q29kZVBvaW50VG9VdGY4KHVuaWNvZGVfY29kZV9wb2ludCk7CkBAIC0xODkxLDIxICsyMDIwLDIx
IEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQg
bnVtX2NoYXJzKSB7CiAvLyBDb252ZXJ0cyBhIHdpZGUgQyBzdHJpbmcgdG8gYW4gc3RkOjpzdHJp
bmcgdXNpbmcgdGhlIFVURi04IGVuY29kaW5nLgogLy8gTlVMTCB3aWxsIGJlIGNvbnZlcnRlZCB0
byAiKG51bGwpIi4KIHN0ZDo6c3RyaW5nIFN0cmluZzo6U2hvd1dpZGVDU3RyaW5nKGNvbnN0IHdj
aGFyX3QgKiB3aWRlX2Nfc3RyKSB7Ci0gIGlmICh3aWRlX2Nfc3RyID09IE5VTEwpICByZXR1cm4g
IihudWxsKSI7CisgIGlmICh3aWRlX2Nfc3RyID09IG51bGxwdHIpIHJldHVybiAiKG51bGwpIjsK
IAogICByZXR1cm4gaW50ZXJuYWw6OldpZGVTdHJpbmdUb1V0Zjgod2lkZV9jX3N0ciwgLTEpOwog
fQogCi0vLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRo
ZXkgaGF2ZSB0aGUgc2FtZQotLy8gY29udGVudC4KKy8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3Ry
aW5ncy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGV5IGhhdmUgdGhlCisvLyBzYW1l
IGNvbnRlbnQuCiAvLwogLy8gVW5saWtlIHdjc2NtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5k
bGUgTlVMTCBhcmd1bWVudChzKS4gIEEgTlVMTAogLy8gQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBk
aWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0
eSBzdHJpbmcuCiBib29sIFN0cmluZzo6V2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCAq
IGxocywgY29uc3Qgd2NoYXJfdCAqIHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiBy
aHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7
CiAKLSAgaWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0
cikgcmV0dXJuIGZhbHNlOwogCiAgIHJldHVybiB3Y3NjbXAobGhzLCByaHMpID09IDA7CiB9CkBA
IC0xOTQxLDM3ICsyMDcwLDM1IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJORShjb25z
dCBjaGFyKiBzMV9leHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIg
dnMgIiA8PCBQcmludFRvU3RyaW5nKHMyKTsKIH0KIAotLy8gQ29tcGFyZXMgdHdvIEMgc3RyaW5n
cywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleSBoYXZlCisvLyBDb21wYXJl
cyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZXkgaGF2ZQogLy8gdGhlIHNhbWUgY29udGVudC4KIC8vCiAvLyBVbmxpa2Ugc3RyY2Fz
ZWNtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEKIC8v
IE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMg
c3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiBib29sIFN0cmluZzo6Q2Fz
ZUluc2Vuc2l0aXZlQ1N0cmluZ0VxdWFscyhjb25zdCBjaGFyICogbGhzLCBjb25zdCBjaGFyICog
cmhzKSB7Ci0gIGlmIChsaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gcmhzID09IE5VTEw7Ci0gIGlm
IChyaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7CisgIGlmIChsaHMgPT0gbnVsbHB0cikg
cmV0dXJuIHJocyA9PSBudWxscHRyOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxz
ZTsKICAgcmV0dXJuIHBvc2l4OjpTdHJDYXNlQ21wKGxocywgcmhzKSA9PSAwOwogfQogCi0gIC8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1
ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCi0gIC8vCi0gIC8vIFVubGlr
ZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMp
LgotICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5v
bi1OVUxMIHdpZGUgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgot
ICAvLyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zIHNsaWdo
dGx5IGRpZmZlci4KLSAgLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3
aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKLSAgLy8gZW52aXJvbm1lbnQgdmFy
aWFibGUuIE9uIEdOVSBwbGF0Zm9ybSB0aGlzIG1ldGhvZCB1c2VzIHdjc2Nhc2VjbXAKLSAgLy8g
d2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZSBjdXJy
ZW50IGxvY2FsZS4KLSAgLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxz
byB1c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQotICAvLyBjdXJyZW50IGxvY2FsZS4KKy8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGV5CisvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisvLworLy8g
VW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1l
bnQocykuCisvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55
IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCisvLyBpbmNsdWRpbmcgdGhlIGVtcHR5IHN0cmluZy4K
Ky8vIE5COiBUaGUgaW1wbGVtZW50YXRpb25zIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgc2xpZ2h0
bHkgZGlmZmVyLgorLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3aGlj
aCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKKy8vIGVudmlyb25tZW50IHZhcmlhYmxl
LiBPbiBHTlUgcGxhdGZvcm0gdGhpcyBtZXRob2QgdXNlcyB3Y3NjYXNlY21wCisvLyB3aGljaCBj
b21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUgY2F0ZWdvcnkgb2YgdGhlIGN1cnJlbnQgbG9j
YWxlLgorLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxzbyB1c2VzIExD
X0NUWVBFIGNhdGVnb3J5IG9mIHRoZQorLy8gY3VycmVudCBsb2NhbGUuCiBib29sIFN0cmluZzo6
Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3Qq
IHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiByaHMgPT0gTlVMTDsKKyAgaWYgKGxo
cyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAKLSAgaWYgKHJocyA9PSBOVUxM
KSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogCiAj
aWYgR1RFU1RfT1NfV0lORE9XUwogICByZXR1cm4gX3djc2ljbXAobGhzLCByaHMpID09IDA7CkBA
IC0xOTgyLDE0ICsyMTA5LDE0IEBAIGJvb2wgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0
cmluZ0VxdWFscyhjb25zdCB3Y2hhcl90KiBsaHMsCiAgIC8vIE90aGVyIHVua25vd24gT1NlcyBt
YXkgbm90IGRlZmluZSBpdCBlaXRoZXIuCiAgIHdpbnRfdCBsZWZ0LCByaWdodDsKICAgZG8gewot
ICAgIGxlZnQgPSB0b3dsb3dlcigqbGhzKyspOwotICAgIHJpZ2h0ID0gdG93bG93ZXIoKnJocysr
KTsKKyAgICBsZWZ0ID0gdG93bG93ZXIoc3RhdGljX2Nhc3Q8d2ludF90PigqbGhzKyspKTsKKyAg
ICByaWdodCA9IHRvd2xvd2VyKHN0YXRpY19jYXN0PHdpbnRfdD4oKnJocysrKSk7CiAgIH0gd2hp
bGUgKGxlZnQgJiYgbGVmdCA9PSByaWdodCk7CiAgIHJldHVybiBsZWZ0ID09IHJpZ2h0OwogI2Vu
ZGlmICAvLyBPUyBzZWxlY3RvcgogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHN0ciBlbmRzIHdp
dGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcgY2FzZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiBzdHIgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsIGlnbm9yaW5nIGNhc2Uu
CiAvLyBBbnkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8gZW5kIHdpdGggYW4gZW1wdHkgc3VmZml4
LgogYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogICAgIGNvbnN0IHN0ZDo6
c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWZmaXgpIHsKQEAgLTIwMDIsMTggKzIx
MjksMjggQEAgYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogCiAvLyBGb3Jt
YXRzIGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCiBzdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdElu
dFdpZHRoMihpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEludFdpZHRoTih2YWx1ZSwgMik7
Cit9CisKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIHRvIGdpdmVuIHdpZHRoIHdpdGggbGVhZGlu
ZyB6ZXJvcy4KK3N0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0SW50V2lkdGhOKGludCB2YWx1ZSwg
aW50IHdpZHRoKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwotICBzcyA8PCBzdGQ6OnNldGZp
bGwoJzAnKSA8PCBzdGQ6OnNldHcoMikgPDwgdmFsdWU7CisgIHNzIDw8IHN0ZDo6c2V0ZmlsbCgn
MCcpIDw8IHN0ZDo6c2V0dyh3aWR0aCkgPDwgdmFsdWU7CiAgIHJldHVybiBzcy5zdHIoKTsKIH0K
IAogLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiVYIi4KLXN0ZDo6c3RyaW5nIFN0cmluZzo6
Rm9ybWF0SGV4SW50KGludCB2YWx1ZSkgeworc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRIZXhV
SW50MzIodWludDMyX3QgdmFsdWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CiAgIHNzIDw8
IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHZhbHVlOwogICByZXR1cm4gc3Muc3RyKCk7
CiB9CiAKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCitzdGQ6OnN0cmluZyBTdHJp
bmc6OkZvcm1hdEhleEludChpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEhleFVJbnQzMihz
dGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpKTsKK30KKwogLy8gRm9ybWF0cyBhIGJ5dGUgYXMg
IiUwMlgiLgogc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFs
dWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CkBAIC0yMDMwLDcgKzIxNjcsNyBAQCBzdGQ6
OnN0cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6OnN0ZDo6c3RyaW5nc3RyZWFtKiBzcykgewog
ICBjb25zdCBjaGFyKiBjb25zdCBlbmQgPSBzdGFydCArIHN0ci5sZW5ndGgoKTsKIAogICBzdGQ6
OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNlcnZlKDIgKiAoZW5kIC0gc3RhcnQpKTsKKyAg
cmVzdWx0LnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90PigyICogKGVuZCAtIHN0YXJ0KSkpOwog
ICBmb3IgKGNvbnN0IGNoYXIqIGNoID0gc3RhcnQ7IGNoICE9IGVuZDsgKytjaCkgewogICAgIGlm
ICgqY2ggPT0gJ1wwJykgewogICAgICAgcmVzdWx0ICs9ICJcXDAiOyAgLy8gUmVwbGFjZXMgTlVM
IHdpdGggIlxcMCI7CkBAIC0yMDUwLDcgKzIxODcsOSBAQCBzdGQ6OnN0cmluZyBBcHBlbmRVc2Vy
TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgZ3Rlc3RfbXNnLAogICBpZiAodXNlcl9tc2dfc3Ry
aW5nLmVtcHR5KCkpIHsKICAgICByZXR1cm4gZ3Rlc3RfbXNnOwogICB9Ci0KKyAgaWYgKGd0ZXN0
X21zZy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIHVzZXJfbXNnX3N0cmluZzsKKyAgfQogICByZXR1
cm4gZ3Rlc3RfbXNnICsgIlxuIiArIHVzZXJfbXNnX3N0cmluZzsKIH0KIApAQCAtMjA2MCw5ICsy
MTk5LDcgQEAgc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1lc3NhZ2UoY29uc3Qgc3RkOjpzdHJpbmcm
IGd0ZXN0X21zZywKIAogLy8gQ3JlYXRlcyBhbiBlbXB0eSBUZXN0UmVzdWx0LgogVGVzdFJlc3Vs
dDo6VGVzdFJlc3VsdCgpCi0gICAgOiBkZWF0aF90ZXN0X2NvdW50XygwKSwKLSAgICAgIGVsYXBz
ZWRfdGltZV8oMCkgewotfQorICAgIDogZGVhdGhfdGVzdF9jb3VudF8oMCksIHN0YXJ0X3RpbWVz
dGFtcF8oMCksIGVsYXBzZWRfdGltZV8oMCkge30KIAogLy8gRCd0b3IuCiBUZXN0UmVzdWx0Ojp+
VGVzdFJlc3VsdCgpIHsKQEAgLTIwNzQsNyArMjIxMSw3IEBAIFRlc3RSZXN1bHQ6On5UZXN0UmVz
dWx0KCkgewogY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRlc3RSZXN1bHQ6OkdldFRlc3RQYXJ0UmVz
dWx0KGludCBpKSBjb25zdCB7CiAgIGlmIChpIDwgMCB8fCBpID49IHRvdGFsX3BhcnRfY291bnQo
KSkKICAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3BhcnRfcmVz
dWx0c18uYXQoaSk7CisgIHJldHVybiB0ZXN0X3BhcnRfcmVzdWx0c18uYXQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihpKSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBwcm9wZXJ0eS4gaSBj
YW4gcmFuZ2UgZnJvbSAwIHRvCkBAIC0yMDgzLDcgKzIyMjAsNyBAQCBjb25zdCBUZXN0UGFydFJl
c3VsdCYgVGVzdFJlc3VsdDo6R2V0VGVzdFBhcnRSZXN1bHQoaW50IGkpIGNvbnN0IHsKIGNvbnN0
IFRlc3RQcm9wZXJ0eSYgVGVzdFJlc3VsdDo6R2V0VGVzdFByb3BlcnR5KGludCBpKSBjb25zdCB7
CiAgIGlmIChpIDwgMCB8fCBpID49IHRlc3RfcHJvcGVydHlfY291bnQoKSkKICAgICBpbnRlcm5h
bDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3Byb3BlcnRpZXNfLmF0KGkpOworICBy
ZXR1cm4gdGVzdF9wcm9wZXJ0aWVzXy5hdChzdGF0aWNfY2FzdDxzaXplX3Q+KGkpKTsKIH0KIAog
Ly8gQ2xlYXJzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0cy4KQEAgLTIxMzEsMjAgKzIyNjgsMjEgQEAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RTdWl0ZXNBdHRyaWJ1dGVzW10g
PSB7CiAvLyBUaGUgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0
c3VpdGU+IGVsZW1lbnQgb2YgWE1MCiAvLyBvdXRwdXQuCiBzdGF0aWMgY29uc3QgY2hhciogY29u
c3Qga1Jlc2VydmVkVGVzdFN1aXRlQXR0cmlidXRlc1tdID0gewotICAiZGlzYWJsZWQiLAotICAi
ZXJyb3JzIiwKLSAgImZhaWx1cmVzIiwKLSAgIm5hbWUiLAotICAidGVzdHMiLAotICAidGltZSIK
LX07CisgICAgImRpc2FibGVkIiwgImVycm9ycyIsICJmYWlsdXJlcyIsICAibmFtZSIsCisgICAg
InRlc3RzIiwgICAgInRpbWUiLCAgICJ0aW1lc3RhbXAiLCAic2tpcHBlZCJ9OwogCiAvLyBUaGUg
bGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVu
dCBvZiBYTUwgb3V0cHV0Lgogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RD
YXNlQXR0cmlidXRlc1tdID0gewotICAgICJjbGFzc25hbWUiLCAgIm5hbWUiLCAgICAgICAgInN0
YXR1cyIsICJ0aW1lIiwKLSAgICAidHlwZV9wYXJhbSIsICJ2YWx1ZV9wYXJhbSIsICJmaWxlIiwg
ICAibGluZSJ9OworICAgICJjbGFzc25hbWUiLCAgICJuYW1lIiwgInN0YXR1cyIsICJ0aW1lIiwg
ICJ0eXBlX3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIn07CiAKLXRl
bXBsYXRlIDxpbnQga1NpemU+CisvLyBVc2UgYSBzbGlnaHRseSBkaWZmZXJlbnQgc2V0IGZvciBh
bGxvd2VkIG91dHB1dCB0byBlbnN1cmUgZXhpc3RpbmcgdGVzdHMgY2FuCisvLyBzdGlsbCBSZWNv
cmRQcm9wZXJ0eSgicmVzdWx0Iikgb3IgIlJlY29yZFByb3BlcnR5KHRpbWVzdGFtcCIpCitzdGF0
aWMgY29uc3QgY2hhciogY29uc3Qga1Jlc2VydmVkT3V0cHV0VGVzdENhc2VBdHRyaWJ1dGVzW10g
PSB7CisgICAgImNsYXNzbmFtZSIsICAgIm5hbWUiLCAic3RhdHVzIiwgInRpbWUiLCAgICJ0eXBl
X3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIiwgICAicmVzdWx0Iiwg
InRpbWVzdGFtcCJ9OworCit0ZW1wbGF0ZSA8c2l6ZV90IGtTaXplPgogc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IEFycmF5QXNWZWN0b3IoY29uc3QgY2hhciogY29uc3QgKCZhcnJheSlba1NpemVd
KSB7CiAgIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4oYXJyYXksIGFycmF5ICsga1Np
emUpOwogfQpAQCAtMjE2NCw2ICsyMzAyLDIyIEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudCgKICAgcmV0dXJuIHN0ZDo6dmVj
dG9yPHN0ZDo6c3RyaW5nPigpOwogfQogCisvLyBUT0RPKGpkZXNwcmV6KTogTWVyZ2UgdGhlIHR3
byBnZXRSZXNlcnZlZCBhdHRyaWJ1dGVzIG9uY2Ugc2tpcCBpcyBpbXByb3ZlZAorc3RhdGljIHN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVt
ZW50KAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxfZWxlbWVudCkgeworICBpZiAoeG1sX2Vs
ZW1lbnQgPT0gInRlc3RzdWl0ZXMiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2Vy
dmVkVGVzdFN1aXRlc0F0dHJpYnV0ZXMpOworICB9IGVsc2UgaWYgKHhtbF9lbGVtZW50ID09ICJ0
ZXN0c3VpdGUiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2VydmVkVGVzdFN1aXRl
QXR0cmlidXRlcyk7CisgIH0gZWxzZSBpZiAoeG1sX2VsZW1lbnQgPT0gInRlc3RjYXNlIikgewor
ICAgIHJldHVybiBBcnJheUFzVmVjdG9yKGtSZXNlcnZlZE91dHB1dFRlc3RDYXNlQXR0cmlidXRl
cyk7CisgIH0gZWxzZSB7CisgICAgR1RFU1RfQ0hFQ0tfKGZhbHNlKSA8PCAiVW5yZWNvZ25pemVk
IHhtbF9lbGVtZW50IHByb3ZpZGVkOiAiIDw8IHhtbF9lbGVtZW50OworICB9CisgIC8vIFRoaXMg
Y29kZSBpcyB1bnJlYWNoYWJsZSBidXQgc29tZSBjb21waWxlcnMgbWF5IG5vdCByZWFsaXplcyB0
aGF0LgorICByZXR1cm4gc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KCk7Cit9CisKIHN0YXRpYyBz
dGQ6OnN0cmluZyBGb3JtYXRXb3JkTGlzdChjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4m
IHdvcmRzKSB7CiAgIE1lc3NhZ2Ugd29yZF9saXN0OwogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHdvcmRzLnNpemUoKTsgKytpKSB7CkBAIC0yMjA3LDcgKzIzNjEsMTcgQEAgdm9pZCBUZXN0UmVz
dWx0OjpDbGVhcigpIHsKICAgZWxhcHNlZF90aW1lXyA9IDA7CiB9CiAKLS8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIHRlc3QgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIG9mZiB0aGUgdGVzdCBwYXJ0
IHdhcyBza2lwcGVkLgorc3RhdGljIGJvb2wgVGVzdFBhcnRTa2lwcGVkKGNvbnN0IFRlc3RQYXJ0
UmVzdWx0JiByZXN1bHQpIHsKKyAgcmV0dXJuIHJlc3VsdC5za2lwcGVkKCk7Cit9CisKKy8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCB3YXMgc2tpcHBlZC4KK2Jvb2wgVGVz
dFJlc3VsdDo6U2tpcHBlZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFGYWlsZWQoKSAmJiBDb3VudElm
KHRlc3RfcGFydF9yZXN1bHRzXywgVGVzdFBhcnRTa2lwcGVkKSA+IDA7Cit9CisKKy8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmYWlsZWQuCiBib29sIFRlc3RSZXN1bHQ6
OkZhaWxlZCgpIGNvbnN0IHsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF9wYXJ0X2NvdW50
KCk7ICsraSkgewogICAgIGlmIChHZXRUZXN0UGFydFJlc3VsdChpKS5mYWlsZWQoKSkKQEAgLTIy
MTYsMjIgKzIzODAsMjIgQEAgYm9vbCBUZXN0UmVzdWx0OjpGYWlsZWQoKSBjb25zdCB7CiAgIHJl
dHVybiBmYWxzZTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IGZhdGFs
bHkgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHBhcnQg
ZmF0YWxseSBmYWlsZWQuCiBzdGF0aWMgYm9vbCBUZXN0UGFydEZhdGFsbHlGYWlsZWQoY29uc3Qg
VGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgewogICByZXR1cm4gcmVzdWx0LmZhdGFsbHlfZmFpbGVk
KCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiBi
b29sIFRlc3RSZXN1bHQ6Okhhc0ZhdGFsRmFpbHVyZSgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50
SWYodGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydEZhdGFsbHlGYWlsZWQpID4gMDsKIH0KIAot
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KKy8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZh
aWxlZC4KIHN0YXRpYyBib29sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZChjb25zdCBUZXN0UGFy
dFJlc3VsdCYgcmVzdWx0KSB7CiAgIHJldHVybiByZXN1bHQubm9uZmF0YWxseV9mYWlsZWQoKTsK
IH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVy
ZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0
YWwgZmFpbHVyZS4KIGJvb2wgVGVzdFJlc3VsdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgY29uc3Qg
ewogICByZXR1cm4gQ291bnRJZih0ZXN0X3BhcnRfcmVzdWx0c18sIFRlc3RQYXJ0Tm9uZmF0YWxs
eUZhaWxlZCkgPiAwOwogfQpAQCAtMjI5NCwyNSArMjQ1OCwyNSBAQCB2b2lkIFJlcG9ydEZhaWx1
cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlwZSwKICAg
Ly8gQWRkVGVzdFBhcnRSZXN1bHQuCiAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5BZGRUZXN0
UGFydFJlc3VsdCgKICAgICAgIHJlc3VsdF90eXBlLAotICAgICAgTlVMTCwgIC8vIE5vIGluZm8g
YWJvdXQgdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuCi0gICAg
ICAtMSwgICAgLy8gV2UgaGF2ZSBubyBpbmZvIG9uIHdoaWNoIGxpbmUgY2F1c2VkIHRoZSBleGNl
cHRpb24uCisgICAgICBudWxscHRyLCAgLy8gTm8gaW5mbyBhYm91dCB0aGUgc291cmNlIGZpbGUg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAgICAgIC0xLCAgICAgICAvLyBXZSBoYXZl
IG5vIGluZm8gb24gd2hpY2ggbGluZSBjYXVzZWQgdGhlIGV4Y2VwdGlvbi4KICAgICAgIG1lc3Nh
Z2UsCi0gICAgICAiIik7ICAgLy8gTm8gc3RhY2sgdHJhY2UsIGVpdGhlci4KKyAgICAgICIiKTsg
IC8vIE5vIHN0YWNrIHRyYWNlLCBlaXRoZXIuCiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAogCi0vLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBj
YXNlIHRvIHVzZSB0aGUgc2FtZSB0ZXN0CisvLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVz
dHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSB0byB1c2UgdGhlIHNhbWUgdGVzdAogLy8gZml4dHVy
ZSBjbGFzcy4gIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRo
ZQotLy8gc2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50
IHRlc3QgY2FzZS4gIElmCisvLyBzYW1lIGZpeHR1cmUgY2xhc3MgYXMgdGhlIGZpcnN0IHRlc3Qg
aW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4gIElmCiAvLyB5ZXMsIGl0IHJldHVybnMgdHJ1ZTsg
b3RoZXJ3aXNlIGl0IGdlbmVyYXRlcyBhIEdvb2dsZSBUZXN0IGZhaWx1cmUgYW5kCiAvLyByZXR1
cm5zIGZhbHNlLgogYm9vbCBUZXN0OjpIYXNTYW1lRml4dHVyZUNsYXNzKCkgewogICBpbnRlcm5h
bDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgp
OwotICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gaW1wbC0+Y3VycmVudF90ZXN0
X2Nhc2UoKTsKKyAgY29uc3QgVGVzdFN1aXRlKiBjb25zdCB0ZXN0X3N1aXRlID0gaW1wbC0+Y3Vy
cmVudF90ZXN0X3N1aXRlKCk7CiAKLSAgLy8gSW5mbyBhYm91dCB0aGUgZmlyc3QgdGVzdCBpbiB0
aGUgY3VycmVudCB0ZXN0IGNhc2UuCi0gIGNvbnN0IFRlc3RJbmZvKiBjb25zdCBmaXJzdF90ZXN0
X2luZm8gPSB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KClbMF07CisgIC8vIEluZm8gYWJvdXQg
dGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4KKyAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IGZpcnN0X3Rlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KClb
MF07CiAgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZmlyc3RfZml4dHVyZV9pZCA9IGZpcnN0X3Rl
c3RfaW5mby0+Zml4dHVyZV9jbGFzc19pZF87CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGZpcnN0X3Rl
c3RfbmFtZSA9IGZpcnN0X3Rlc3RfaW5mby0+bmFtZSgpOwogCkBAIC0yMzI4LDcgKzI0OTIsNyBA
QCBib29sIFRlc3Q6Okhhc1NhbWVGaXh0dXJlQ2xhc3MoKSB7CiAgICAgY29uc3QgYm9vbCB0aGlz
X2lzX1RFU1QgPSB0aGlzX2ZpeHR1cmVfaWQgPT0gaW50ZXJuYWw6OkdldFRlc3RUeXBlSWQoKTsK
IAogICAgIGlmIChmaXJzdF9pc19URVNUIHx8IHRoaXNfaXNfVEVTVCkgewotICAgICAgLy8gQm90
aCBURVNUIGFuZCBURVNUX0YgYXBwZWFyIGluIHNhbWUgdGVzdCBjYXNlLCB3aGljaCBpcyBpbmNv
cnJlY3QuCisgICAgICAvLyBCb3RoIFRFU1QgYW5kIFRFU1RfRiBhcHBlYXIgaW4gc2FtZSB0ZXN0
IHN1aXRlLCB3aGljaCBpcyBpbmNvcnJlY3QuCiAgICAgICAvLyBUZWxsIHRoZSB1c2VyIGhvdyB0
byBmaXggdGhpcy4KIAogICAgICAgLy8gR2V0cyB0aGUgbmFtZSBvZiB0aGUgVEVTVCBhbmQgdGhl
IG5hbWUgb2YgdGhlIFRFU1RfRi4gIE5vdGUKQEAgLTIzNDAsOSArMjUwNCw5IEBAIGJvb2wgVGVz
dDo6SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgICAgICAgICBmaXJzdF9pc19URVNUID8gdGhp
c190ZXN0X25hbWUgOiBmaXJzdF90ZXN0X25hbWU7CiAKICAgICAgIEFERF9GQUlMVVJFKCkKLSAg
ICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUg
c2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGluZyBURVNU
X0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGlzXG4iCi0gICAgICAgICAgPDwgImls
bGVnYWwuICBJbiB0ZXN0IGNhc2UgIiA8PCB0aGlzX3Rlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUo
KQorICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBtdXN0IHVz
ZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKKyAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGlu
ZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpc1xuIgorICAgICAgICAg
IDw8ICJpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSAiIDw8IHRoaXNfdGVzdF9pbmZvLT50ZXN0X3N1
aXRlX25hbWUoKQogICAgICAgICAgIDw8ICIsXG4iCiAgICAgICAgICAgPDwgInRlc3QgIiA8PCBU
RVNUX0ZfbmFtZSA8PCAiIGlzIGRlZmluZWQgdXNpbmcgVEVTVF9GIGJ1dFxuIgogICAgICAgICAg
IDw8ICJ0ZXN0ICIgPDwgVEVTVF9uYW1lIDw8ICIgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91
IHByb2JhYmx5XG4iCkBAIC0yMzUyLDE1ICsyNTE2LDE1IEBAIGJvb2wgVGVzdDo6SGFzU2FtZUZp
eHR1cmVDbGFzcygpIHsKICAgICAgIC8vIFR3byBmaXh0dXJlIGNsYXNzZXMgd2l0aCB0aGUgc2Ft
ZSBuYW1lIGFwcGVhciBpbiB0d28gZGlmZmVyZW50CiAgICAgICAvLyBuYW1lc3BhY2VzLCB3aGlj
aCBpcyBub3QgYWxsb3dlZC4gVGVsbCB0aGUgdXNlciBob3cgdG8gZml4IHRoaXMuCiAgICAgICBB
RERfRkFJTFVSRSgpCi0gICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNh
c2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICAgICAgPDwgImNsYXNz
LiAgSG93ZXZlciwgaW4gdGVzdCBjYXNlICIKLSAgICAgICAgICA8PCB0aGlzX3Rlc3RfaW5mby0+
dGVzdF9jYXNlX25hbWUoKSA8PCAiLFxuIgotICAgICAgICAgIDw8ICJ5b3UgZGVmaW5lZCB0ZXN0
ICIgPDwgZmlyc3RfdGVzdF9uYW1lCi0gICAgICAgICAgPDwgIiBhbmQgdGVzdCAiIDw8IHRoaXNf
dGVzdF9uYW1lIDw8ICJcbiIKKyAgICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRl
c3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCisgICAgICAgICAgPDwg
ImNsYXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiCisgICAgICAgICAgPDwgdGhpc190ZXN0
X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpIDw8ICIsXG4iCisgICAgICAgICAgPDwgInlvdSBkZWZp
bmVkIHRlc3QgIiA8PCBmaXJzdF90ZXN0X25hbWUgPDwgIiBhbmQgdGVzdCAiCisgICAgICAgICAg
PDwgdGhpc190ZXN0X25hbWUgPDwgIlxuIgogICAgICAgICAgIDw8ICJ1c2luZyB0d28gZGlmZmVy
ZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmXG4iCiAgICAgICAg
ICAgPDwgInRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0
cmFuc2xhdGlvblxuIgogICAgICAgICAgIDw8ICJ1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1l
LiAgWW91IHNob3VsZCBwcm9iYWJseSByZW5hbWUgb25lXG4iCi0gICAgICAgICAgPDwgIm9mIHRo
ZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4iOwor
ICAgICAgICAgIDw8ICJvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVy
ZW50IHRlc3Qgc3VpdGVzLiI7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKICAgfQpAQCAtMjM5
Myw3ICsyNTU3LDcgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIHN0YXRpYyBzdGQ6OnN0cmluZyBG
b3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbG9jYXRp
b24pIHsKICAgTWVzc2FnZSBtZXNzYWdlOwotICBpZiAoZGVzY3JpcHRpb24gIT0gTlVMTCkgewor
ICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbHB0cikgewogICAgIG1lc3NhZ2UgPDwgIkMrKyBleGNl
cHRpb24gd2l0aCBkZXNjcmlwdGlvbiBcIiIgPDwgZGVzY3JpcHRpb24gPDwgIlwiIjsKICAgfSBl
bHNlIHsKICAgICBtZXNzYWdlIDw8ICJVbmtub3duIEMrKyBleGNlcHRpb24iOwpAQCAtMjQ5MSw3
ICsyNjU1LDcgQEAgUmVzdWx0IEhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAog
ICAgIH0gY2F0Y2ggKC4uLikgeyAgLy8gTk9MSU5UCiAgICAgICBpbnRlcm5hbDo6UmVwb3J0RmFp
bHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgICAgIFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxG
YWlsdXJlLAotICAgICAgICAgIEZvcm1hdEN4eEV4Y2VwdGlvbk1lc3NhZ2UoTlVMTCwgbG9jYXRp
b24pKTsKKyAgICAgICAgICBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKG51bGxwdHIsIGxvY2F0
aW9uKSk7CiAgICAgfQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXN1bHQ+KDApOwogI2Vsc2UK
QEAgLTI1MTEsOCArMjY3NSw5IEBAIHZvaWQgVGVzdDo6UnVuKCkgewogICBpbnRlcm5hbDo6VW5p
dFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBp
bXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogICBpbnRl
cm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQodGhpcywgJlRlc3Q6OlNl
dFVwLCAiU2V0VXAoKSIpOwotICAvLyBXZSB3aWxsIHJ1biB0aGUgdGVzdCBvbmx5IGlmIFNldFVw
KCkgd2FzIHN1Y2Nlc3NmdWwuCi0gIGlmICghSGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgLy8gV2Ug
d2lsbCBydW4gdGhlIHRlc3Qgb25seSBpZiBTZXRVcCgpIHdhcyBzdWNjZXNzZnVsIGFuZCBkaWRu
J3QgY2FsbAorICAvLyBHVEVTVF9TS0lQKCkuCisgIGlmICghSGFzRmF0YWxGYWlsdXJlKCkgJiYg
IUlzU2tpcHBlZCgpKSB7CiAgICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25M
ZWF2aW5nR1Rlc3QoKTsKICAgICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZT
dXBwb3J0ZWQoCiAgICAgICAgIHRoaXMsICZUZXN0OjpUZXN0Qm9keSwgInRoZSB0ZXN0IGJvZHki
KTsKQEAgLTI1MjYsMzcgKzI2OTEsNDIgQEAgdm9pZCBUZXN0OjpSdW4oKSB7CiAgICAgICB0aGlz
LCAmVGVzdDo6VGVhckRvd24sICJUZWFyRG93bigpIik7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KIGJv
b2wgVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRU
ZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPkhhc0ZhdGFsRmFpbHVyZSgpOwogfQog
Ci0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZh
aWx1cmUuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBo
YXMgYSBub24tZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVzdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkg
ewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVz
dWx0KCktPgogICAgICAgSGFzTm9uZmF0YWxGYWlsdXJlKCk7CiB9CiAKKy8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IHdhcyBza2lwcGVkLgorYm9vbCBUZXN0
OjpJc1NraXBwZWQoKSB7CisgIHJldHVybiBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCktPmN1
cnJlbnRfdGVzdF9yZXN1bHQoKS0+U2tpcHBlZCgpOworfQorCiAvLyBjbGFzcyBUZXN0SW5mbwog
CiAvLyBDb25zdHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0LiBJdCBhc3N1bWVzIG93bmVyc2hpcCBv
ZiB0aGUgdGVzdCBmYWN0b3J5CiAvLyBvYmplY3QuCi1UZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qg
c3RkOjpzdHJpbmcmIGFfdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcmIGFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3R5
cGVfcGFyYW0sCitUZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIGFfdGVzdF9z
dWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBhX25hbWUs
IGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBhX3ZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpDb2RlTG9jYXRp
b24gYV9jb2RlX2xvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpUeXBlSWQg
Zml4dHVyZV9jbGFzc19pZCwKICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VGVzdEZhY3Rv
cnlCYXNlKiBmYWN0b3J5KQotICAgIDogdGVzdF9jYXNlX25hbWVfKGFfdGVzdF9jYXNlX25hbWUp
LAorICAgIDogdGVzdF9zdWl0ZV9uYW1lXyhhX3Rlc3Rfc3VpdGVfbmFtZSksCiAgICAgICBuYW1l
XyhhX25hbWUpLAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3Ry
aW5nKGFfdHlwZV9wYXJhbSkgOiBOVUxMKSwKLSAgICAgIHZhbHVlX3BhcmFtXyhhX3ZhbHVlX3Bh
cmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdmFsdWVfcGFyYW0pIDogTlVMTCksCisgICAgICB0eXBl
X3BhcmFtXyhhX3R5cGVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmcoYV90eXBlX3BhcmFtKSA6IG51
bGxwdHIpLAorICAgICAgdmFsdWVfcGFyYW1fKGFfdmFsdWVfcGFyYW0gPyBuZXcgc3RkOjpzdHJp
bmcoYV92YWx1ZV9wYXJhbSkgOiBudWxscHRyKSwKICAgICAgIGxvY2F0aW9uXyhhX2NvZGVfbG9j
YXRpb24pLAogICAgICAgZml4dHVyZV9jbGFzc19pZF8oZml4dHVyZV9jbGFzc19pZCksCiAgICAg
ICBzaG91bGRfcnVuXyhmYWxzZSksCiAgICAgICBpc19kaXNhYmxlZF8oZmFsc2UpLAogICAgICAg
bWF0Y2hlc19maWx0ZXJfKGZhbHNlKSwKKyAgICAgIGlzX2luX2Fub3RoZXJfc2hhcmRfKGZhbHNl
KSwKICAgICAgIGZhY3RvcnlfKGZhY3RvcnkpLAogICAgICAgcmVzdWx0XygpIHt9CiAKQEAgLTI1
NzAsNyArMjc0MCw3IEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLwogLy8gQXJndW1lbnRzOgog
Ly8KLS8vICAgdGVzdF9jYXNlX25hbWU6ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRl
c3Rfc3VpdGVfbmFtZTogIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAg
ICAgICAgbmFtZSBvZiB0aGUgdGVzdAogLy8gICB0eXBlX3BhcmFtOiAgICAgICB0aGUgbmFtZSBv
ZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCiAvLyAgICAgICAgICAgICAg
ICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4K
QEAgLTI1NzgsNDAgKzI3NDgsMzUgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIC8vICAgICAgICAg
ICAgICAgICAgICAgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQg
dGVzdC4KIC8vICAgY29kZV9sb2NhdGlvbjogICAgY29kZSBsb2NhdGlvbiB3aGVyZSB0aGUgdGVz
dCBpcyBkZWZpbmVkCiAvLyAgIGZpeHR1cmVfY2xhc3NfaWQ6IElEIG9mIHRoZSB0ZXN0IGZpeHR1
cmUgY2xhc3MKLS8vICAgc2V0X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24g
dGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiAgICAgcG9pbnRl
ciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKKy8vICAgc2V0
X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0
ZXN0IHN1aXRlCisvLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQogLy8gICBmYWN0b3J5OiAgICAgICAgICBw
b2ludGVyIHRvIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHRlc3Qgb2JqZWN0LgogLy8gICAg
ICAgICAgICAgICAgICAgICBUaGUgbmV3bHkgY3JlYXRlZCBUZXN0SW5mbyBpbnN0YW5jZSB3aWxs
IGFzc3VtZQogLy8gICAgICAgICAgICAgICAgICAgICBvd25lcnNoaXAgb2YgdGhlIGZhY3Rvcnkg
b2JqZWN0LgogVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNvbnN0IGNo
YXIqIHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29uc3QgY2hh
ciogdHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAgICBT
ZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVh
cl9kb3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSkgeworICAgIGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdHlwZV9w
YXJhbSwKKyAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9j
YXRpb24sCisgICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsIFNldFVwVGVzdFN1aXRlRnVuYyBz
ZXRfdXBfdGMsCisgICAgVGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywgVGVzdEZh
Y3RvcnlCYXNlKiBmYWN0b3J5KSB7CiAgIFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAg
ICAgbmV3IFRlc3RJbmZvKHRlc3RfY2FzZV9uYW1lLCBuYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9w
YXJhbSwKKyAgICAgIG5ldyBUZXN0SW5mbyh0ZXN0X3N1aXRlX25hbWUsIG5hbWUsIHR5cGVfcGFy
YW0sIHZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvZGVfbG9jYXRpb24sIGZpeHR1
cmVfY2xhc3NfaWQsIGZhY3RvcnkpOwogICBHZXRVbml0VGVzdEltcGwoKS0+QWRkVGVzdEluZm8o
c2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMsIHRlc3RfaW5mbyk7CiAgIHJldHVybiB0ZXN0X2luZm87
CiB9CiAKLXZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNlVHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nh
c2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29k
ZV9sb2NhdGlvbikgewordm9pZCBSZXBvcnRJbnZhbGlkVGVzdFN1aXRlVHlwZShjb25zdCBjaGFy
KiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVM
b2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CiAgIE1lc3NhZ2UgZXJyb3JzOwogICBlcnJvcnMKLSAg
ICAgIDw8ICJBdHRlbXB0ZWQgcmVkZWZpbml0aW9uIG9mIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2Fz
ZV9uYW1lIDw8ICIuXG4iCi0gICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgIDw8ICJjbGFzcy4gIEhv
d2V2ZXIsIGluIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2FzZV9uYW1lIDw8ICIsIHlvdSB0cmllZFxu
IgorICAgICAgPDwgIkF0dGVtcHRlZCByZWRlZmluaXRpb24gb2YgdGVzdCBzdWl0ZSAiIDw8IHRl
c3Rfc3VpdGVfbmFtZSA8PCAiLlxuIgorICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0
ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgorICAgICAgPDwgImNs
YXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiIDw8IHRlc3Rfc3VpdGVfbmFtZSA8PCAiLCB5
b3UgdHJpZWRcbiIKICAgICAgIDw8ICJ0byBkZWZpbmUgYSB0ZXN0IHVzaW5nIGEgZml4dHVyZSBj
bGFzcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lXG4iCiAgICAgICA8PCAidXNlZCBlYXJsaWVyLiBU
aGlzIGNhbiBoYXBwZW4gaWYgdGhlIHR3byBmaXh0dXJlIGNsYXNzZXMgYXJlXG4iCiAgICAgICA8
PCAiZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiBZb3Ug
c2hvdWxkXG4iCiAgICAgICA8PCAicHJvYmFibHkgcmVuYW1lIG9uZSBvZiB0aGUgY2xhc3NlcyB0
byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50XG4iCi0gICAgICA8PCAidGVzdCBjYXNlcy4i
OworICAgICAgPDwgInRlc3Qgc3VpdGVzLiI7CiAKICAgR1RFU1RfTE9HXyhFUlJPUikgPDwgRm9y
bWF0RmlsZUxvY2F0aW9uKGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5saW5lKQpAQCAtMjYy
NCw3ICsyNzg5LDcgQEAgbmFtZXNwYWNlIHsKIC8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRo
ZSB0ZXN0IG5hbWUgb2YgYSBUZXN0SW5mbyBhZ2FpbnN0IGEga25vd24KIC8vIHZhbHVlLgogLy8K
LS8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRlc3RDYXNlIGNsYXNz
IG9ubHkuICBXZSBwdXQKKy8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhl
IFRlc3RTdWl0ZSBjbGFzcyBvbmx5LiAgV2UgcHV0CiAvLyBpdCBpbiB0aGUgYW5vbnltb3VzIG5h
bWVzcGFjZSB0byBwcmV2ZW50IHBvbGx1dGluZyB0aGUgb3V0ZXIKIC8vIG5hbWVzcGFjZS4KIC8v
CkBAIC0yNjM3LDcgKzI4MDIsNyBAQCBjbGFzcyBUZXN0TmFtZUlzIHsKICAgZXhwbGljaXQgVGVz
dE5hbWVJcyhjb25zdCBjaGFyKiBuYW1lKQogICAgICAgOiBuYW1lXyhuYW1lKSB7fQogCi0gIC8v
IFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0ZXN0X2luZm8gbWF0Y2hlcyBuYW1l
Xy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVz
dF9pbmZvIG1hdGNoZXMgbmFtZV8uCiAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0SW5mbyAq
IHRlc3RfaW5mbykgY29uc3QgewogICAgIHJldHVybiB0ZXN0X2luZm8gJiYgdGVzdF9pbmZvLT5u
YW1lKCkgPT0gbmFtZV87CiAgIH0KQEAgLTI2NTEsMTEgKzI4MTYsMTIgQEAgY2xhc3MgVGVzdE5h
bWVJcyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBUaGlzIG1ldGhvZCBleHBhbmRzIGFs
bCBwYXJhbWV0ZXJpemVkIHRlc3RzIHJlZ2lzdGVyZWQgd2l0aCBtYWNyb3MgVEVTVF9QCi0vLyBh
bmQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaW50byByZWd1bGFyIHRlc3RzIGFuZCByZWdpc3Rl
cnMgdGhvc2UuCisvLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIGludG8gcmVndWxhciB0
ZXN0cyBhbmQgcmVnaXN0ZXJzIHRob3NlLgogLy8gVGhpcyB3aWxsIGJlIGRvbmUganVzdCBvbmNl
IGR1cmluZyB0aGUgcHJvZ3JhbSBydW50aW1lLgogdm9pZCBVbml0VGVzdEltcGw6OlJlZ2lzdGVy
UGFyYW1ldGVyaXplZFRlc3RzKCkgewogICBpZiAoIXBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0
ZXJlZF8pIHsKICAgICBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfLlJlZ2lzdGVyVGVzdHMo
KTsKKyAgICB0eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV8uQ2hlY2tGb3JJbnN0YW50
aWF0aW9ucygpOwogICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8gPSB0cnVlOwog
ICB9CiB9CkBAIC0yNjc2LDcgKzI4NDIsOCBAQCB2b2lkIFRlc3RJbmZvOjpSdW4oKSB7CiAgIC8v
IE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXJzIHRoYXQgYSB0ZXN0IGlzIGFi
b3V0IHRvIHN0YXJ0LgogICByZXBlYXRlci0+T25UZXN0U3RhcnQoKnRoaXMpOwogCi0gIGNvbnN0
IFRpbWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgcmVz
dWx0Xy5zZXRfc3RhcnRfdGltZXN0YW1wKGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKSk7Cisg
IGludGVybmFsOjpUaW1lciB0aW1lcjsKIAogICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIo
KS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogCkBAIC0yNjg1LDE1NCArMjg1MiwyMzMgQEAgdm9pZCBU
ZXN0SW5mbzo6UnVuKCkgewogICAgICAgZmFjdG9yeV8sICZpbnRlcm5hbDo6VGVzdEZhY3RvcnlC
YXNlOjpDcmVhdGVUZXN0LAogICAgICAgInRoZSB0ZXN0IGZpeHR1cmUncyBjb25zdHJ1Y3RvciIp
OwogCi0gIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0
ZSBhIGZhdGFsIGZhaWx1cmUuCisgIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9y
IGRpZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUgb3IgaW52b2tlCisgIC8vIEdURVNUX1NL
SVAoKS4KICAgLy8gTm90ZSB0aGF0IHRoZSBvYmplY3Qgd2lsbCBub3QgYmUgbnVsbAotICBpZiAo
IVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJl
KCkgJiYgIVRlc3Q6OklzU2tpcHBlZCgpKSB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IHRocm93IGFz
IGFsbCB1c2VyIGNvZGUgdGhhdCBjYW4gdGhyb3cgYXJlIHdyYXBwZWQgaW50bwogICAgIC8vIGV4
Y2VwdGlvbiBoYW5kbGluZyBjb2RlLgogICAgIHRlc3QtPlJ1bigpOwogICB9CiAKKyAgaWYgKHRl
c3QgIT0gbnVsbHB0cikgewogICAgIC8vIERlbGV0ZXMgdGhlIHRlc3Qgb2JqZWN0LgogICAgIGlt
cGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgICAgaW50
ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAogICAgICAgICB0ZXN0
LCAmVGVzdDo6RGVsZXRlU2VsZl8sICJ0aGUgdGVzdCBmaXh0dXJlJ3MgZGVzdHJ1Y3RvciIpOwor
ICB9CiAKLSAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKGludGVybmFsOjpHZXRUaW1lSW5NaWxs
aXMoKSAtIHN0YXJ0KTsKKyAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKHRpbWVyLkVsYXBzZWQo
KSk7CiAKICAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IGEg
dGVzdCBoYXMganVzdCBmaW5pc2hlZC4KICAgcmVwZWF0ZXItPk9uVGVzdEVuZCgqdGhpcyk7CiAK
ICAgLy8gVGVsbHMgVW5pdFRlc3QgdG8gc3RvcCBhc3NvY2lhdGluZyBhc3NlcnRpb24gcmVzdWx0
cyB0byB0aGlzCiAgIC8vIHRlc3QuCi0gIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhOVUxM
KTsKKyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9pbmZvKG51bGxwdHIpOwogfQogCi0vLyBjbGFz
cyBUZXN0Q2FzZQorLy8gU2tpcCBhbmQgcmVjb3JkcyBhIHNraXBwZWQgdGVzdCByZXN1bHQgZm9y
IHRoaXMgb2JqZWN0Lgordm9pZCBUZXN0SW5mbzo6U2tpcCgpIHsKKyAgaWYgKCFzaG91bGRfcnVu
XykgcmV0dXJuOwogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0
aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29u
c3QgeworICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6Okdl
dFVuaXRUZXN0SW1wbCgpOworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8odGhpcyk7CisK
KyAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
Pmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBl
dmVudCBsaXN0ZW5lcnMgdGhhdCBhIHRlc3QgaXMgYWJvdXQgdG8gc3RhcnQuCisgIHJlcGVhdGVy
LT5PblRlc3RTdGFydCgqdGhpcyk7CisKKyAgY29uc3QgVGVzdFBhcnRSZXN1bHQgdGVzdF9wYXJ0
X3Jlc3VsdCA9CisgICAgICBUZXN0UGFydFJlc3VsdChUZXN0UGFydFJlc3VsdDo6a1NraXAsIHRo
aXMtPmZpbGUoKSwgdGhpcy0+bGluZSgpLCAiIik7CisgIGltcGwtPkdldFRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKCktPlJlcG9ydFRlc3RQYXJ0UmVzdWx0KAorICAgICAg
dGVzdF9wYXJ0X3Jlc3VsdCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBs
aXN0ZW5lciB0aGF0IGEgdGVzdCBoYXMganVzdCBmaW5pc2hlZC4KKyAgcmVwZWF0ZXItPk9uVGVz
dEVuZCgqdGhpcyk7CisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhudWxscHRyKTsKK30K
KworLy8gY2xhc3MgVGVzdFN1aXRlCisKKy8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVs
IHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6OnN1Y2Nlc3NmdWxfdGVz
dF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBUZXN0
UGFzc2VkKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlz
IHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdCB7Cisv
LyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUu
CitpbnQgVGVzdFN1aXRlOjpza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBD
b3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFNraXBwZWQpOworfQorCisvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6
OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9f
bGlzdF8sIFRlc3RGYWlsZWQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQg
dGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RD
YXNlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1
aXRlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CiAgIHJldHVybiBD
b3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9ydGFibGVEaXNhYmxlZCk7CiB9CiAKLS8v
IEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWlu
dCBUZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKKy8vIEdldHMgdGhlIG51
bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRl
OjpkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2lu
Zm9fbGlzdF8sIFRlc3REaXNhYmxlZCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0
cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNlOjpyZXBvcnRh
YmxlX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3Rf
Y291bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJl
cG9ydGFibGUpOwogfQogCi0vLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZSB0aGF0IHNob3VsZCBydW4uCi1pbnQgVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KCkg
Y29uc3QgeworLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlIHRo
YXQgc2hvdWxkIHJ1bi4KK2ludCBUZXN0U3VpdGU6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3Qg
ewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFNob3VsZFJ1blRlc3QpOwogfQog
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzLgotaW50IFRlc3RDYXNlOjp0b3RhbF90
ZXN0X2NvdW50KCkgY29uc3QgeworaW50IFRlc3RTdWl0ZTo6dG90YWxfdGVzdF9jb3VudCgpIGNv
bnN0IHsKICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9pbmZvX2xpc3RfLnNpemUoKSk7
CiB9CiAKLS8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgorLy8gQ3Jl
YXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogLy8KIC8vIEFyZ3VtZW50czoK
IC8vCi0vLyAgIG5hbWU6ICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCi0vLyAgIGFfdHlw
ZV9wYXJhbTogdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBO
VUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyAgIHNldF91cF90YzogICAgcG9pbnRlciB0byB0
aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3Rj
OiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQot
VGVzdENhc2U6OlRlc3RDYXNlKGNvbnN0IGNoYXIqIGFfbmFtZSwgY29uc3QgY2hhciogYV90eXBl
X3BhcmFtLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91
cF90YywKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFy
X2Rvd25fdGMpCisvLyAgIGFfbmFtZTogICAgICAgbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZQorLy8g
ICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlJ3MgdHlwZSBwYXJhbWV0
ZXIsIG9yIE5VTEwgaWYKKy8vICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9y
IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUuCisvLyAgIHNldF91cF90YzogICAgcG9p
bnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRl
YXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0
ZXN0IHN1aXRlCitUZXN0U3VpdGU6OlRlc3RTdWl0ZShjb25zdCBjaGFyKiBhX25hbWUsIGNvbnN0
IGNoYXIqIGFfdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpTZXRV
cFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6
OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpCiAgICAgOiBuYW1lXyhhX25hbWUp
LAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlw
ZV9wYXJhbSkgOiBOVUxMKSwKKyAgICAgIHR5cGVfcGFyYW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBz
dGQ6OnN0cmluZyhhX3R5cGVfcGFyYW0pIDogbnVsbHB0ciksCiAgICAgICBzZXRfdXBfdGNfKHNl
dF91cF90YyksCiAgICAgICB0ZWFyX2Rvd25fdGNfKHRlYXJfZG93bl90YyksCiAgICAgICBzaG91
bGRfcnVuXyhmYWxzZSksCi0gICAgICBlbGFwc2VkX3RpbWVfKDApIHsKLX0KKyAgICAgIHN0YXJ0
X3RpbWVzdGFtcF8oMCksCisgICAgICBlbGFwc2VkX3RpbWVfKDApIHt9CiAKLS8vIERlc3RydWN0
b3Igb2YgVGVzdENhc2UuCi1UZXN0Q2FzZTo6flRlc3RDYXNlKCkgeworLy8gRGVzdHJ1Y3RvciBv
ZiBUZXN0U3VpdGUuCitUZXN0U3VpdGU6On5UZXN0U3VpdGUoKSB7CiAgIC8vIERlbGV0ZXMgZXZl
cnkgVGVzdCBpbiB0aGUgY29sbGVjdGlvbi4KICAgRm9yRWFjaCh0ZXN0X2luZm9fbGlzdF8sIGlu
dGVybmFsOjpEZWxldGU8VGVzdEluZm8+KTsKIH0KIAogLy8gUmV0dXJucyB0aGUgaS10aCB0ZXN0
IGFtb25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwogLy8gdG90YWxfdGVz
dF9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgot
Y29uc3QgVGVzdEluZm8qIFRlc3RDYXNlOjpHZXRUZXN0SW5mbyhpbnQgaSkgY29uc3QgeworY29u
c3QgVGVzdEluZm8qIFRlc3RTdWl0ZTo6R2V0VGVzdEluZm8oaW50IGkpIGNvbnN0IHsKICAgY29u
c3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0
dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4g
aW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+
KGluZGV4KV07CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBhbW9uZyBhbGwgdGhlIHRl
c3RzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElm
IGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KLVRlc3RJbmZvKiBUZXN0Q2Fz
ZTo6R2V0TXV0YWJsZVRlc3RJbmZvKGludCBpKSB7CitUZXN0SW5mbyogVGVzdFN1aXRlOjpHZXRN
dXRhYmxlVGVzdEluZm8oaW50IGkpIHsKICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9y
KHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0
X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3Rf
aW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV07CiB9CiAKLS8vIEFkZHMgYSB0
ZXN0IHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBkZWxldGUgdGhlIHRlc3QgdXBvbgotLy8gZGVz
dHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNlIG9iamVjdC4KLXZvaWQgVGVzdENhc2U6OkFkZFRlc3RJ
bmZvKFRlc3RJbmZvICogdGVzdF9pbmZvKSB7CisvLyBBZGRzIGEgdGVzdCB0byB0aGlzIHRlc3Qg
c3VpdGUuICBXaWxsIGRlbGV0ZSB0aGUgdGVzdCB1cG9uCisvLyBkZXN0cnVjdGlvbiBvZiB0aGUg
VGVzdFN1aXRlIG9iamVjdC4KK3ZvaWQgVGVzdFN1aXRlOjpBZGRUZXN0SW5mbyhUZXN0SW5mbyog
dGVzdF9pbmZvKSB7CiAgIHRlc3RfaW5mb19saXN0Xy5wdXNoX2JhY2sodGVzdF9pbmZvKTsKICAg
dGVzdF9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2luZGljZXNfLnNp
emUoKSkpOwogfQogCi0vLyBSdW5zIGV2ZXJ5IHRlc3QgaW4gdGhpcyBUZXN0Q2FzZS4KLXZvaWQg
VGVzdENhc2U6OlJ1bigpIHsKKy8vIFJ1bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4K
K3ZvaWQgVGVzdFN1aXRlOjpSdW4oKSB7CiAgIGlmICghc2hvdWxkX3J1bl8pIHJldHVybjsKIAog
ICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRU
ZXN0SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2Nhc2UodGhpcyk7CisgIGltcGwt
PnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUodGhpcyk7CiAKICAgVGVzdEV2ZW50TGlzdGVuZXIqIHJl
cGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7
CiAKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9u
VGVzdFN1aXRlU3RhcnQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQg
c3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XwogICByZXBlYXRlci0+T25UZXN0Q2FzZVN0YXJ0KCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dl
dHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgIGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25z
SW5NZXRob2RJZlN1cHBvcnRlZCgKLSAgICAgIHRoaXMsICZUZXN0Q2FzZTo6UnVuU2V0VXBUZXN0
Q2FzZSwgIlNldFVwVGVzdENhc2UoKSIpOworICAgICAgdGhpcywgJlRlc3RTdWl0ZTo6UnVuU2V0
VXBUZXN0U3VpdGUsICJTZXRVcFRlc3RTdWl0ZSgpIik7CiAKLSAgY29uc3QgaW50ZXJuYWw6OlRp
bWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgc3RhcnRf
dGltZXN0YW1wXyA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgaW50ZXJuYWw6OlRp
bWVyIHRpbWVyOwogICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX3Rlc3RfY291bnQoKTsgaSsr
KSB7CiAgICAgR2V0TXV0YWJsZVRlc3RJbmZvKGkpLT5SdW4oKTsKKyAgICBpZiAoR1RFU1RfRkxB
RyhmYWlsX2Zhc3QpICYmIEdldE11dGFibGVUZXN0SW5mbyhpKS0+cmVzdWx0KCktPkZhaWxlZCgp
KSB7CisgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCB0b3RhbF90ZXN0X2NvdW50KCk7IGor
KykgeworICAgICAgICBHZXRNdXRhYmxlVGVzdEluZm8oaiktPlNraXAoKTsKKyAgICAgIH0KKyAg
ICAgIGJyZWFrOworICAgIH0KICAgfQotICBlbGFwc2VkX3RpbWVfID0gaW50ZXJuYWw6OkdldFRp
bWVJbk1pbGxpcygpIC0gc3RhcnQ7CisgIGVsYXBzZWRfdGltZV8gPSB0aW1lci5FbGFwc2VkKCk7
CiAKICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsK
ICAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAotICAgICAg
dGhpcywgJlRlc3RDYXNlOjpSdW5UZWFyRG93blRlc3RDYXNlLCAiVGVhckRvd25UZXN0Q2FzZSgp
Iik7CisgICAgICB0aGlzLCAmVGVzdFN1aXRlOjpSdW5UZWFyRG93blRlc3RTdWl0ZSwgIlRlYXJE
b3duVGVzdFN1aXRlKCkiKTsKIAorICAvLyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQ
SQorICByZXBlYXRlci0+T25UZXN0U3VpdGVFbmQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMg
ZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogICByZXBlYXRlci0+T25UZXN0Q2FzZUVuZCgqdGhpcyk7Ci0gIGlt
cGwtPnNldF9jdXJyZW50X3Rlc3RfY2FzZShOVUxMKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUo
bnVsbHB0cik7CiB9CiAKLS8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhp
cyB0ZXN0IGNhc2UuCi12b2lkIFRlc3RDYXNlOjpDbGVhclJlc3VsdCgpIHsKKy8vIFNraXBzIGFs
bCB0ZXN0cyB1bmRlciB0aGlzIFRlc3RTdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpTa2lwKCkgewor
ICBpZiAoIXNob3VsZF9ydW5fKSByZXR1cm47CisKKyAgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCog
Y29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsKKyAgaW1wbC0+c2V0X2N1
cnJlbnRfdGVzdF9zdWl0ZSh0aGlzKTsKKworICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIg
PSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCkucmVwZWF0ZXIoKTsKKworICAv
LyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQSQorICByZXBlYXRlci0+T25UZXN0U3Vp
dGVTdGFydCgqdGhpcyk7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBh
dmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHJl
cGVhdGVyLT5PblRlc3RDYXNlU3RhcnQoKnRoaXMpOworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF90ZXN0
X2NvdW50KCk7IGkrKykgeworICAgIEdldE11dGFibGVUZXN0SW5mbyhpKS0+U2tpcCgpOworICB9
CisKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9u
VGVzdFN1aXRlRW5kKCp0aGlzKTsKKyAgLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBz
dGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElf
CisgIHJlcGVhdGVyLT5PblRlc3RDYXNlRW5kKCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3Vp
dGUobnVsbHB0cik7Cit9CisKKy8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4g
dGhpcyB0ZXN0IHN1aXRlLgordm9pZCBUZXN0U3VpdGU6OkNsZWFyUmVzdWx0KCkgewogICBhZF9o
b2NfdGVzdF9yZXN1bHRfLkNsZWFyKCk7CiAgIEZvckVhY2godGVzdF9pbmZvX2xpc3RfLCBUZXN0
SW5mbzo6Q2xlYXJUZXN0UmVzdWx0KTsKIH0KIAotLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRo
aXMgdGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6U2h1ZmZsZVRlc3RzKGludGVybmFsOjpSYW5k
b20qIHJhbmRvbSkgeworLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4K
K3ZvaWQgVGVzdFN1aXRlOjpTaHVmZmxlVGVzdHMoaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tKSB7
CiAgIFNodWZmbGUocmFuZG9tLCAmdGVzdF9pbmRpY2VzXyk7CiB9CiAKIC8vIFJlc3RvcmVzIHRo
ZSB0ZXN0IG9yZGVyIHRvIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KLXZvaWQgVGVzdENhc2U6
OlVuc2h1ZmZsZVRlc3RzKCkgewordm9pZCBUZXN0U3VpdGU6OlVuc2h1ZmZsZVRlc3RzKCkgewog
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfaW5kaWNlc18uc2l6ZSgpOyBpKyspIHsKICAg
ICB0ZXN0X2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKICAgfQpAQCAtMjg1NSw5
ICszMTAxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDb3VudChpbnQgdGVzdF9j
b3VudCkgewogICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2NvdW50LCAidGVzdCIs
ICJ0ZXN0cyIpOwogfQogCi0vLyBGb3JtYXRzIHRoZSBjb3VudCBvZiB0ZXN0IGNhc2VzLgotc3Rh
dGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3RfY2FzZV9jb3VudCkg
ewotICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2Nhc2VfY291bnQsICJ0ZXN0IGNh
c2UiLCAidGVzdCBjYXNlcyIpOworLy8gRm9ybWF0cyB0aGUgY291bnQgb2YgdGVzdCBzdWl0ZXMu
CitzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0VGVzdFN1aXRlQ291bnQoaW50IHRlc3Rfc3VpdGVf
Y291bnQpIHsKKyAgcmV0dXJuIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZV9jb3VudCwg
InRlc3Qgc3VpdGUiLCAidGVzdCBzdWl0ZXMiKTsKIH0KIAogLy8gQ29udmVydHMgYSBUZXN0UGFy
dFJlc3VsdDo6VHlwZSBlbnVtIHRvIGh1bWFuLWZyaWVuZGx5IHN0cmluZwpAQCAtMjg2Niw2ICsz
MTEyLDggQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3Rf
Y2FzZV9jb3VudCkgewogLy8gYmV0d2VlbiB0aGUgdHdvIHdoZW4gdmlld2luZyB0aGUgdGVzdCBy
ZXN1bHQuCiBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlwZVRvU3RyaW5nKFRl
c3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBU
ZXN0UGFydFJlc3VsdDo6a1NraXA6CisgICAgICByZXR1cm4gIlNraXBwZWRcbiI7CiAgICAgY2Fz
ZSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3M6CiAgICAgICByZXR1cm4gIlN1Y2Nlc3MiOwogCkBA
IC0yODgyLDYgKzMxMzAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlw
ZVRvU3RyaW5nKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKIH0KIAogbmFtZXNwYWNlIGlu
dGVybmFsIHsKK25hbWVzcGFjZSB7CitlbnVtIGNsYXNzIEdUZXN0Q29sb3IgeyBrRGVmYXVsdCwg
a1JlZCwga0dyZWVuLCBrWWVsbG93IH07Cit9ICAvLyBuYW1lc3BhY2UKIAogLy8gUHJpbnRzIGEg
VGVzdFBhcnRSZXN1bHQgdG8gYW4gc3RkOjpzdHJpbmcuCiBzdGF0aWMgc3RkOjpzdHJpbmcgUHJp
bnRUZXN0UGFydFJlc3VsdFRvU3RyaW5nKApAQCAtMjkxMywyMyArMzE2NCwxOCBAQCBzdGF0aWMg
dm9pZCBQcmludFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRf
cmVzdWx0KSB7CiB9CiAKIC8vIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgotCi1l
bnVtIEdUZXN0Q29sb3IgewotICBDT0xPUl9ERUZBVUxULAotICBDT0xPUl9SRUQsCi0gIENPTE9S
X0dSRUVOLAotICBDT0xPUl9ZRUxMT1cKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTICYmICFH
VEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiBcCiAgICAgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUg
JiYgIUdURVNUX09TX1dJTkRPV1NfUlQgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKIAogLy8g
UmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0dHJpYnV0ZSBmb3IgdGhlIGdpdmVuIGNvbG9yLgogc3Rh
dGljIFdPUkQgR2V0Q29sb3JBdHRyaWJ1dGUoR1Rlc3RDb2xvciBjb2xvcikgewogICBzd2l0Y2gg
KGNvbG9yKSB7Ci0gICAgY2FzZSBDT0xPUl9SRUQ6ICAgIHJldHVybiBGT1JFR1JPVU5EX1JFRDsK
LSAgICBjYXNlIENPTE9SX0dSRUVOOiAgcmV0dXJuIEZPUkVHUk9VTkRfR1JFRU47Ci0gICAgY2Fz
ZSBDT0xPUl9ZRUxMT1c6IHJldHVybiBGT1JFR1JPVU5EX1JFRCB8IEZPUkVHUk9VTkRfR1JFRU47
CisgICAgY2FzZSBHVGVzdENvbG9yOjprUmVkOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfUkVE
OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a0dyZWVuOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRf
R1JFRU47CisgICAgY2FzZSBHVGVzdENvbG9yOjprWWVsbG93OgorICAgICAgcmV0dXJuIEZPUkVH
Uk9VTkRfUkVEIHwgRk9SRUdST1VORF9HUkVFTjsKICAgICBkZWZhdWx0OiAgICAgICAgICAgcmV0
dXJuIDA7CiAgIH0KIH0KQEAgLTI5NjcsMjAgKzMyMTMsMjQgQEAgc3RhdGljIFdPUkQgR2V0TmV3
Q29sb3IoR1Rlc3RDb2xvciBjb2xvciwgV09SRCBvbGRfY29sb3JfYXR0cnMpIHsKIAogI2Vsc2UK
IAotLy8gUmV0dXJucyB0aGUgQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gY29sb3IuICBD
T0xPUl9ERUZBVUxUIGlzCisvLyBSZXR1cm5zIHRoZSBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBn
aXZlbiBjb2xvci4gR1Rlc3RDb2xvcjo6a0RlZmF1bHQgaXMKIC8vIGFuIGludmFsaWQgaW5wdXQu
CiBzdGF0aWMgY29uc3QgY2hhciogR2V0QW5zaUNvbG9yQ29kZShHVGVzdENvbG9yIGNvbG9yKSB7
CiAgIHN3aXRjaCAoY29sb3IpIHsKLSAgICBjYXNlIENPTE9SX1JFRDogICAgIHJldHVybiAiMSI7
Ci0gICAgY2FzZSBDT0xPUl9HUkVFTjogICByZXR1cm4gIjIiOwotICAgIGNhc2UgQ09MT1JfWUVM
TE9XOiAgcmV0dXJuICIzIjsKLSAgICBkZWZhdWx0OiAgICAgICAgICAgIHJldHVybiBOVUxMOwot
ICB9OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1JlZDoKKyAgICAgIHJldHVybiAiMSI7CisgICAg
Y2FzZSBHVGVzdENvbG9yOjprR3JlZW46CisgICAgICByZXR1cm4gIjIiOworICAgIGNhc2UgR1Rl
c3RDb2xvcjo6a1llbGxvdzoKKyAgICAgIHJldHVybiAiMyI7CisgICAgZGVmYXVsdDoKKyAgICAg
IHJldHVybiBudWxscHRyOworICB9CiB9CiAKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAm
JiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBHb29nbGUg
VGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0cHV0LgorLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIEdvb2dsZSBUZXN0IHNob3VsZCB1c2UgY29sb3JzIGluIHRoZSBvdXRwdXQu
CiBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0X2lzX3R0eSkgewogICBjb25zdCBjaGFy
KiBjb25zdCBndGVzdF9jb2xvciA9IEdURVNUX0ZMQUcoY29sb3IpLmNfc3RyKCk7CiAKQEAgLTMw
MjEsMTkgKzMyNzEsMjAgQEAgYm9vbCBTaG91bGRVc2VDb2xvcihib29sIHN0ZG91dF9pc190dHkp
IHsKIC8vIGNhbm5vdCBzaW1wbHkgZW1pdCBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIGhhdmUgdGhl
IHRlcm1pbmFsIGNoYW5nZSBjb2xvcnMuCiAvLyBUaGlzIHJvdXRpbmUgbXVzdCBhY3R1YWxseSBl
bWl0IHRoZSBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHJldHVybiBhIHN0cmluZwogLy8gdGhhdCB3
b3VsZCBiZSBjb2xvcmVkIHdoZW4gcHJpbnRlZCwgYXMgY2FuIGJlIGRvbmUgb24gTGludXguCi1z
dGF0aWMgdm9pZCBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIqIGZt
dCwgLi4uKSB7CisKK0dURVNUX0FUVFJJQlVURV9QUklOVEZfKDIsIDMpCitzdGF0aWMgdm9pZCBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7CiAg
IHZhX2xpc3QgYXJnczsKICAgdmFfc3RhcnQoYXJncywgZm10KTsKIAotI2lmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfWk9TIHx8IFwKLSAg
ICBHVEVTVF9PU19JT1MgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5E
T1dTX1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfWk9TIHx8IEdU
RVNUX09TX0lPUyB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19X
SU5ET1dTX1JUIHx8IGRlZmluZWQoRVNQX1BMQVRGT1JNKQogICBjb25zdCBib29sIHVzZV9jb2xv
ciA9IEFsd2F5c0ZhbHNlKCk7CiAjZWxzZQogICBzdGF0aWMgY29uc3QgYm9vbCBpbl9jb2xvcl9t
b2RlID0KICAgICAgIFNob3VsZFVzZUNvbG9yKHBvc2l4OjpJc0FUVFkocG9zaXg6OkZpbGVObyhz
dGRvdXQpKSAhPSAwKTsKLSAgY29uc3QgYm9vbCB1c2VfY29sb3IgPSBpbl9jb2xvcl9tb2RlICYm
IChjb2xvciAhPSBDT0xPUl9ERUZBVUxUKTsKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19N
T0JJTEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBHVEVTVF9PU19aT1MKLSAgLy8gVGhlICchPSAw
JyBjb21wYXJpc29uIGlzIG5lY2Vzc2FyeSB0byBzYXRpc2Z5IE1TVkMgNy4xLgorICBjb25zdCBi
b29sIHVzZV9jb2xvciA9IGluX2NvbG9yX21vZGUgJiYgKGNvbG9yICE9IEdUZXN0Q29sb3I6OmtE
ZWZhdWx0KTsKKyNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1Nf
Wk9TCiAKICAgaWYgKCF1c2VfY29sb3IpIHsKICAgICB2cHJpbnRmKGZtdCwgYXJncyk7CkBAIC0z
MDc5LDE0ICszMzMwLDEzIEBAIHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVz
ZW50KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgY29uc3QgY2hhciogY29uc3QgdHlw
ZV9wYXJhbSA9IHRlc3RfaW5mby50eXBlX3BhcmFtKCk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHZh
bHVlX3BhcmFtID0gdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCk7CiAKLSAgaWYgKHR5cGVfcGFyYW0g
IT0gTlVMTCB8fCB2YWx1ZV9wYXJhbSAhPSBOVUxMKSB7CisgIGlmICh0eXBlX3BhcmFtICE9IG51
bGxwdHIgfHwgdmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgewogICAgIHByaW50ZigiLCB3aGVyZSAi
KTsKLSAgICBpZiAodHlwZV9wYXJhbSAhPSBOVUxMKSB7CisgICAgaWYgKHR5cGVfcGFyYW0gIT0g
bnVsbHB0cikgewogICAgICAgcHJpbnRmKCIlcyA9ICVzIiwga1R5cGVQYXJhbUxhYmVsLCB0eXBl
X3BhcmFtKTsKLSAgICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBOVUxMKQotICAgICAgICBwcmludGYo
IiBhbmQgIik7CisgICAgICBpZiAodmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgcHJpbnRmKCIgYW5k
ICIpOwogICAgIH0KLSAgICBpZiAodmFsdWVfcGFyYW0gIT0gTlVMTCkgeworICAgIGlmICh2YWx1
ZV9wYXJhbSAhPSBudWxscHRyKSB7CiAgICAgICBwcmludGYoIiVzID0gJXMiLCBrVmFsdWVQYXJh
bUxhYmVsLCB2YWx1ZV9wYXJhbSk7CiAgICAgfQogICB9CkBAIC0zMDk4LDI3ICszMzQ4LDQwIEBA
IHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50KGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8pIHsKIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1Ymxp
YyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgogICBQcmV0dHlVbml0VGVzdFJlc3VsdFBy
aW50ZXIoKSB7fQotICBzdGF0aWMgdm9pZCBQcmludFRlc3ROYW1lKGNvbnN0IGNoYXIgKiB0ZXN0
X2Nhc2UsIGNvbnN0IGNoYXIgKiB0ZXN0KSB7Ci0gICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2Fz
ZSwgdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50VGVzdE5hbWUoY29uc3QgY2hhciogdGVzdF9z
dWl0ZSwgY29uc3QgY2hhciogdGVzdCkgeworICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRl
LCB0ZXN0KTsKICAgfQogCiAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvdmVycmlkZSB3aGF0
J3MgaW4gdGhlIFRlc3RFdmVudExpc3RlbmVyIGNsYXNzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFs
IHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50
IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1Nl
dFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQg
T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpOwotICB2aXJ0dWFsIHZv
aWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbyk7Ci0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOwotICB2aXJ0
dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFs
IHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVh
bCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90
ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25F
bmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQor
ICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykg
b3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlkZTsKKyAgdm9pZCBPbkVudmlyb25tZW50
c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQg
T25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3Zl
cnJpZGUge30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZv
aWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlOwor
I2Vsc2UKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0
ZSkgb3ZlcnJpZGU7CisjZW5kaWYgIC8vIE9uVGVzdENhc2VTdGFydAorCisgIHZvaWQgT25UZXN0
U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGU7CisKKyAgdm9pZCBPblRl
c3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOworICB2
b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZTsKKyNpZm5k
ZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZUVu
ZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSBvdmVycmlkZTsKKyNlbHNlCisgIHZvaWQgT25U
ZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSBvdmVycmlkZTsKKyNlbmRp
ZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPbkVudmly
b25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7
CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0
UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KIAog
IHByaXZhdGU6CiAgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdFN1aXRlcyhjb25zdCBV
bml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgc3RhdGljIHZvaWQgUHJpbnRTa2lwcGVkVGVzdHMoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CiB9OwogCiAgIC8vIEZpcmVkIGJlZm9yZSBlYWNoIGl0
ZXJhdGlvbiBvZiB0ZXN0cyBzdGFydHMuCkBAIC0zMTMyLDU0ICszMzk1LDY5IEBAIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25TdGFydCgKICAgLy8gUHJp
bnRzIHRoZSBmaWx0ZXIgaWYgaXQncyBub3QgKi4gIFRoaXMgcmVtaW5kcyB0aGUgdXNlciB0aGF0
IHNvbWUKICAgLy8gdGVzdHMgbWF5IGJlIHNraXBwZWQuCiAgIGlmICghU3RyaW5nOjpDU3RyaW5n
RXF1YWxzKGZpbHRlciwga1VuaXZlcnNhbEZpbHRlcikpIHsKLSAgICBDb2xvcmVkUHJpbnRmKENP
TE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJOb3RlOiAlcyBmaWx0ZXIgPSAlc1xuIiwg
R1RFU1RfTkFNRV8sIGZpbHRlcik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprWWVs
bG93LCAiTm90ZTogJXMgZmlsdGVyID0gJXNcbiIsIEdURVNUX05BTUVfLAorICAgICAgICAgICAg
ICAgICAgZmlsdGVyKTsKICAgfQogCiAgIGlmIChpbnRlcm5hbDo6U2hvdWxkU2hhcmQoa1Rlc3RU
b3RhbFNoYXJkcywga1Rlc3RTaGFyZEluZGV4LCBmYWxzZSkpIHsKLSAgICBjb25zdCBJbnQzMiBz
aGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOwotICAg
IENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIk5vdGU6IFRo
aXMgaXMgdGVzdCBzaGFyZCAlZCBvZiAlcy5cbiIsCisgICAgY29uc3QgaW50MzJfdCBzaGFyZF9p
bmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOworICAgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIk5vdGU6IFRoaXMgaXMgdGVzdCBzaGFyZCAl
ZCBvZiAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHNoYXJkX2lu
ZGV4KSArIDEsCiAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6cG9zaXg6OkdldEVudihrVGVz
dFRvdGFsU2hhcmRzKSk7CiAgIH0KIAogICBpZiAoR1RFU1RfRkxBRyhzaHVmZmxlKSkgewotICAg
IENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAorICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xv
cjo6a1llbGxvdywKICAgICAgICAgICAgICAgICAgICJOb3RlOiBSYW5kb21pemluZyB0ZXN0cycg
b3JkZXJzIHdpdGggYSBzZWVkIG9mICVkIC5cbiIsCiAgICAgICAgICAgICAgICAgICB1bml0X3Rl
c3QucmFuZG9tX3NlZWQoKSk7CiAgIH0KIAotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAg
Ils9PT09PT09PT09XSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJb
PT09PT09PT09PV0gIik7CiAgIHByaW50ZigiUnVubmluZyAlcyBmcm9tICVzLlxuIiwKICAgICAg
ICAgIEZvcm1hdFRlc3RDb3VudCh1bml0X3Rlc3QudGVzdF90b19ydW5fY291bnQoKSkuY19zdHIo
KSwKLSAgICAgICAgIEZvcm1hdFRlc3RDYXNlQ291bnQodW5pdF90ZXN0LnRlc3RfY2FzZV90b19y
dW5fY291bnQoKSkuY19zdHIoKSk7CisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0
X3Rlc3QudGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSkuY19zdHIoKSk7CiAgIGZmbHVzaChzdGRv
dXQpOwogfQogCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVu
dHNTZXRVcFN0YXJ0KAogICAgIGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gIENv
bG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0tLS0tLS1dICIpOworICBDb2xvcmVkUHJp
bnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKICAgcHJpbnRmKCJHbG9i
YWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuXG4iKTsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAK
KyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiB2b2lkIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0
X2Nhc2UpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KICAgICAgIEZvcm1hdENvdW50
YWJsZU5vdW4odGVzdF9jYXNlLnRlc3RfdG9fcnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7
Ci0gIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICJbLS0tLS0tLS0tLV0gIik7CisgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOwogICBwcmludGYo
IiVzIGZyb20gJXMiLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSk7Ci0gIGlmICh0
ZXN0X2Nhc2UudHlwZV9wYXJhbSgpID09IE5VTEwpIHsKKyAgaWYgKHRlc3RfY2FzZS50eXBlX3Bh
cmFtKCkgPT0gbnVsbHB0cikgewogICAgIHByaW50ZigiXG4iKTsKICAgfSBlbHNlIHsKICAgICBw
cmludGYoIiwgd2hlcmUgJXMgPSAlc1xuIiwga1R5cGVQYXJhbUxhYmVsLCB0ZXN0X2Nhc2UudHlw
ZV9wYXJhbSgpKTsKICAgfQogICBmZmx1c2goc3Rkb3V0KTsKIH0KKyNlbHNlCit2b2lkIFByZXR0
eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3VpdGVTdGFydCgKKyAgICBjb25zdCBUZXN0
U3VpdGUmIHRlc3Rfc3VpdGUpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KKyAgICAg
IEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVz
dCIsICJ0ZXN0cyIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0t
LS0tLS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzIiwgY291bnRzLmNfc3RyKCksIHRlc3Rf
c3VpdGUubmFtZSgpKTsKKyAgaWYgKHRlc3Rfc3VpdGUudHlwZV9wYXJhbSgpID09IG51bGxwdHIp
IHsKKyAgICBwcmludGYoIlxuIik7CisgIH0gZWxzZSB7CisgICAgcHJpbnRmKCIsIHdoZXJlICVz
ID0gJXNcbiIsIGtUeXBlUGFyYW1MYWJlbCwgdGVzdF9zdWl0ZS50eXBlX3BhcmFtKCkpOworICB9
CisgIGZmbHVzaChzdGRvdXQpOworfQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KIAogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0
YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9H
UkVFTiwgICJbIFJVTiAgICAgIF0gIik7Ci0gIFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRlc3Rf
Y2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29s
b3I6OmtHcmVlbiwgIlsgUlVOICAgICAgXSAiKTsKKyAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8u
dGVzdF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwogICBwcmludGYoIlxuIik7CiAg
IGZmbHVzaChzdGRvdXQpOwogfQpAQCAtMzE4NywyMiArMzQ2NSwyNyBAQCB2b2lkIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5m
bykgewogLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlvbiBmYWlsdXJlLgogdm9pZCBQcmV0dHlV
bml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFBhcnRSZXN1bHQoCiAgICAgY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCkgewotICAvLyBJZiB0aGUgdGVzdCBwYXJ0IHN1Y2NlZWRlZCwgd2Ug
ZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZy4KLSAgaWYgKHJlc3VsdC50eXBlKCkgPT0gVGVzdFBh
cnRSZXN1bHQ6OmtTdWNjZXNzKQotICAgIHJldHVybjsKLQotICAvLyBQcmludCBmYWlsdXJlIG1l
c3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uIChlLmcuIGV4cGVjdGVkIHRoaXMgYW5kIGdvdCB0aGF0
KS4KLSAgUHJpbnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwotICBmZmx1c2goc3Rkb3V0KTsKKyAg
c3dpdGNoIChyZXN1bHQudHlwZSgpKSB7CisgICAgLy8gSWYgdGhlIHRlc3QgcGFydCBzdWNjZWVk
ZWQsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgY2FzZSBUZXN0UGFydFJlc3Vs
dDo6a1N1Y2Nlc3M6CisgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgIC8vIFByaW50
IGZhaWx1cmUgbWVzc2FnZSBmcm9tIHRoZSBhc3NlcnRpb24KKyAgICAgIC8vIChlLmcuIGV4cGVj
dGVkIHRoaXMgYW5kIGdvdCB0aGF0KS4KKyAgICAgIFByaW50VGVzdFBhcnRSZXN1bHQocmVzdWx0
KTsKKyAgICAgIGZmbHVzaChzdGRvdXQpOworICB9CiB9CiAKIHZvaWQgUHJldHR5VW5pdFRlc3RS
ZXN1bHRQcmludGVyOjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBp
ZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkgewotICAgIENvbG9yZWRQcmludGYoQ09M
T1JfR1JFRU4sICJbICAgICAgIE9LIF0gIik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9y
OjprR3JlZW4sICJbICAgICAgIE9LIF0gIik7CisgIH0gZWxzZSBpZiAodGVzdF9pbmZvLnJlc3Vs
dCgpLT5Ta2lwcGVkKCkpIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwg
IlsgIFNLSVBQRUQgXSAiKTsKICAgfSBlbHNlIHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JF
RCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQs
ICJbICBGQUlMRUQgIF0gIik7CiAgIH0KLSAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVzdF9j
YXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgIFByaW50VGVzdE5hbWUodGVzdF9pbmZv
LnRlc3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKICAgaWYgKHRlc3RfaW5mby5y
ZXN1bHQoKS0+RmFpbGVkKCkpCiAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQodGVz
dF9pbmZvKTsKIApAQCAtMzIxNSwyMSArMzQ5OCwzMyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgZmZs
dXNoKHN0ZG91dCk7CiB9CiAKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZUVuZChjb25z
dCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CiAgIGlmICghR1RFU1RfRkxBRyhwcmludF90aW1lKSkg
cmV0dXJuOwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9CiAgICAgICBGb3JtYXRDb3Vu
dGFibGVOb3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIp
OwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAiWy0tLS0tLS0tLS1dICIpOwotICBwcmlu
dGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLAotICAgICAgICAgY291bnRzLmNfc3Ry
KCksIHRlc3RfY2FzZS5uYW1lKCksCisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxu
XG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSwKICAgICAgICAgIGludGVybmFs
OjpTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsK
ICAgZmZsdXNoKHN0ZG91dCk7CiB9CisjZWxzZQordm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFBy
aW50ZXI6Ok9uVGVzdFN1aXRlRW5kKGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgeworICBp
ZiAoIUdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHJldHVybjsKKworICBjb25zdCBzdGQ6OnN0cmlu
ZyBjb3VudHMgPQorICAgICAgRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X3N1aXRlLnRlc3RfdG9f
cnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xv
cjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1z
IHRvdGFsKVxuXG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9zdWl0ZS5uYW1lKCksCisgICAgICAg
ICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkp
LmNfc3RyKCkpOworICBmZmx1c2goc3Rkb3V0KTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoCiAgICAgY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbLS0tLS0tLS0tLV0g
Iik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIp
OwogICBwcmludGYoIkdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93blxuIik7CiAgIGZm
bHVzaChzdGRvdXQpOwogfQpAQCAtMzIzNywyMyArMzUzMiw3MCBAQCB2b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KAogLy8gSW50ZXJu
YWwgaGVscGVyIGZvciBwcmludGluZyB0aGUgbGlzdCBvZiBmYWlsZWQgdGVzdHMuCiB2b2lkIFBy
ZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVz
dCYgdW5pdF90ZXN0KSB7CiAgIGNvbnN0IGludCBmYWlsZWRfdGVzdF9jb3VudCA9IHVuaXRfdGVz
dC5mYWlsZWRfdGVzdF9jb3VudCgpOwotICBpZiAoZmFpbGVkX3Rlc3RfY291bnQgPT0gMCkgewor
ICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CisgIHBy
aW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChmYWlsZWRfdGVzdF9j
b3VudCkuY19zdHIoKSk7CisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3Vp
dGUgPSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKKyAgICBpZiAoIXRlc3Rfc3VpdGUuc2hv
dWxkX3J1bigpIHx8ICh0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0X2NvdW50KCkgPT0gMCkpIHsKKyAg
ICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUu
dG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2lu
Zm8gPSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsKKyAgICAgIGlmICghdGVzdF9pbmZvLnNo
b3VsZF9ydW4oKSB8fCAhdGVzdF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgICAgICBj
b250aW51ZTsKKyAgICAgIH0KKyAgICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwg
IlsgIEZBSUxFRCAgXSAiKTsKKyAgICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLm5hbWUo
KSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2Vu
dCh0ZXN0X2luZm8pOworICAgICAgcHJpbnRmKCJcbiIpOworICAgIH0KKyAgfQorICBwcmludGYo
IlxuJTJkIEZBSUxFRCAlc1xuIiwgZmFpbGVkX3Rlc3RfY291bnQsCisgICAgICAgICBmYWlsZWRf
dGVzdF9jb3VudCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7Cit9CisKKy8vIEludGVybmFsIGhl
bHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2YgdGVzdCBzdWl0ZSBmYWlsdXJlcyBub3QgY292
ZXJlZCBieQorLy8gUHJpbnRGYWlsZWRUZXN0cy4KK3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpQcmludEZhaWxlZFRlc3RTdWl0ZXMoCisgICAgY29uc3QgVW5pdFRlc3QmIHVuaXRf
dGVzdCkgeworICBpbnQgc3VpdGVfZmFpbHVyZV9jb3VudCA9IDA7CisgIGZvciAoaW50IGkgPSAw
OyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgY29u
c3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7Cisg
ICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSkgeworICAgICAgY29udGludWU7CisgICAg
fQorICAgIGlmICh0ZXN0X3N1aXRlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLkZhaWxlZCgpKSB7Cisg
ICAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7Cisg
ICAgICBwcmludGYoIiVzOiBTZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93blRlc3RTdWl0ZVxuIiwg
dGVzdF9zdWl0ZS5uYW1lKCkpOworICAgICAgKytzdWl0ZV9mYWlsdXJlX2NvdW50OworICAgIH0K
KyAgfQorICBpZiAoc3VpdGVfZmFpbHVyZV9jb3VudCA+IDApIHsKKyAgICBwcmludGYoIlxuJTJk
IEZBSUxFRCBURVNUICVzXG4iLCBzdWl0ZV9mYWlsdXJlX2NvdW50LAorICAgICAgICAgICBzdWl0
ZV9mYWlsdXJlX2NvdW50ID09IDEgPyAiU1VJVEUiIDogIlNVSVRFUyIpOworICB9Cit9CisKKy8v
IEludGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2Ygc2tpcHBlZCB0ZXN0cy4K
K3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludFNraXBwZWRUZXN0cyhjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CisgIGNvbnN0IGludCBza2lwcGVkX3Rlc3RfY291bnQg
PSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlmIChza2lwcGVkX3Rlc3RfY291
bnQgPT0gMCkgewogICAgIHJldHVybjsKICAgfQogCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5p
dF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlID0gKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICBpZiAoIXRlc3Rf
Y2FzZS5zaG91bGRfcnVuKCkgfHwgKHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpID09IDAp
KSB7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291
bnQoKTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVz
dC5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSB8fCAo
dGVzdF9zdWl0ZS5za2lwcGVkX3Rlc3RfY291bnQoKSA9PSAwKSkgewogICAgICAgY29udGludWU7
CiAgICAgfQotICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291
bnQoKTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3RfY2Fz
ZS5HZXRUZXN0SW5mbyhqKTsKLSAgICAgIGlmICghdGVzdF9pbmZvLnNob3VsZF9ydW4oKSB8fCB0
ZXN0X2luZm8ucmVzdWx0KCktPlBhc3NlZCgpKSB7CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0
ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7CisgICAgICBjb25zdCBUZXN0SW5m
byYgdGVzdF9pbmZvID0gKnRlc3Rfc3VpdGUuR2V0VGVzdEluZm8oaik7CisgICAgICBpZiAoIXRl
c3RfaW5mby5zaG91bGRfcnVuKCkgfHwgIXRlc3RfaW5mby5yZXN1bHQoKS0+U2tpcHBlZCgpKSB7
CiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9S
RUQsICJbICBGQUlMRUQgIF0gIik7Ci0gICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9jYXNlLm5h
bWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJl
c2VudCh0ZXN0X2luZm8pOworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4s
ICJbICBTS0lQUEVEIF0gIik7CisgICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9zdWl0ZS5uYW1l
KCksIHRlc3RfaW5mby5uYW1lKCkpOwogICAgICAgcHJpbnRmKCJcbiIpOwogICAgIH0KICAgfQpA
QCAtMzI2MSwzNyArMzYwMywzNyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6
UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CiAKIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9H
UkVFTiwgICJbPT09PT09PT09PV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dy
ZWVuLCAiWz09PT09PT09PT1dICIpOwogICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCiAgICAg
ICAgICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3Ry
KCksCi0gICAgICAgICBGb3JtYXRUZXN0Q2FzZUNvdW50KHVuaXRfdGVzdC50ZXN0X2Nhc2VfdG9f
cnVuX2NvdW50KCkpLmNfc3RyKCkpOworICAgICAgICAgRm9ybWF0VGVzdFN1aXRlQ291bnQodW5p
dF90ZXN0LnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOwogICBpZiAoR1RFU1Rf
RkxBRyhwcmludF90aW1lKSkgewogICAgIHByaW50ZigiICglcyBtcyB0b3RhbCkiLAogICAgICAg
ICAgICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUo
KSkuY19zdHIoKSk7CiAgIH0KICAgcHJpbnRmKCJcbiIpOwotICBDb2xvcmVkUHJpbnRmKENPTE9S
X0dSRUVOLCAgIlsgIFBBU1NFRCAgXSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjpr
R3JlZW4sICJbICBQQVNTRUQgIF0gIik7CiAgIHByaW50ZigiJXMuXG4iLCBGb3JtYXRUZXN0Q291
bnQodW5pdF90ZXN0LnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKS5jX3N0cigpKTsKIAotICBpbnQg
bnVtX2ZhaWx1cmVzID0gdW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7CisgIGNvbnN0IGlu
dCBza2lwcGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7Cisg
IGlmIChza2lwcGVkX3Rlc3RfY291bnQgPiAwKSB7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENv
bG9yOjprR3JlZW4sICJbICBTS0lQUEVEIF0gIik7CisgICAgcHJpbnRmKCIlcywgbGlzdGVkIGJl
bG93OlxuIiwgRm9ybWF0VGVzdENvdW50KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7Cisg
ICAgUHJpbnRTa2lwcGVkVGVzdHModW5pdF90ZXN0KTsKKyAgfQorCiAgIGlmICghdW5pdF90ZXN0
LlBhc3NlZCgpKSB7Ci0gICAgY29uc3QgaW50IGZhaWxlZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0
LmZhaWxlZF90ZXN0X2NvdW50KCk7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsICAiWyAg
RkFJTEVEICBdICIpOwotICAgIHByaW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRl
c3RDb3VudChmYWlsZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CiAgICAgUHJpbnRGYWlsZWRUZXN0
cyh1bml0X3Rlc3QpOwotICAgIHByaW50ZigiXG4lMmQgRkFJTEVEICVzXG4iLCBudW1fZmFpbHVy
ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBudW1fZmFpbHVyZXMgPT0gMSA/ICJURVNUIiA6
ICJURVNUUyIpOworICAgIFByaW50RmFpbGVkVGVzdFN1aXRlcyh1bml0X3Rlc3QpOwogICB9CiAK
ICAgaW50IG51bV9kaXNhYmxlZCA9IHVuaXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3Rf
Y291bnQoKTsKICAgaWYgKG51bV9kaXNhYmxlZCAmJiAhR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cykpIHsKLSAgICBpZiAoIW51bV9mYWlsdXJlcykgeworICAgIGlmICh1bml0X3Rl
c3QuUGFzc2VkKCkpIHsKICAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBhIHNwYWNlciBpZiBu
byBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCiAgICAgfQotICAgIENvbG9yZWRQcmludGYo
Q09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQg
JXNcblxuIiwKLSAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwKLSAgICAgICAgICAgICAg
ICAgIG51bV9kaXNhYmxlZCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7CisgICAgQ29sb3JlZFBy
aW50ZihHVGVzdENvbG9yOjprWWVsbG93LCAiICBZT1UgSEFWRSAlZCBESVNBQkxFRCAlc1xuXG4i
LAorICAgICAgICAgICAgICAgICAgbnVtX2Rpc2FibGVkLCBudW1fZGlzYWJsZWQgPT0gMSA/ICJU
RVNUIiA6ICJURVNUUyIpOwogICB9CiAgIC8vIEVuc3VyZSB0aGF0IEdvb2dsZSBUZXN0IG91dHB1
dCBpcyBwcmludGVkIGJlZm9yZSwgZS5nLiwgaGVhcGNoZWNrZXIgb3V0cHV0LgogICBmZmx1c2go
c3Rkb3V0KTsKQEAgLTMyOTksMTMgKzM2NDEsMTE3IEBAIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1
bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwK
IAogLy8gRW5kIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgogCisvLyBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgdGhlIFRlc3RFdmVudExpc3RlbmVyIGludGVyZmFjZS4KKy8vCisvLyBDbGFzcyBC
cmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlciBpcyBjb3B5YWJsZS4KK2NsYXNzIEJyaWVmVW5pdFRl
c3RSZXN1bHRQcmludGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKKyBwdWJsaWM6Cisg
IEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVyKCkge30KKyAgc3RhdGljIHZvaWQgUHJpbnRUZXN0
TmFtZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlLCBjb25zdCBjaGFyKiB0ZXN0KSB7CisgICAgcHJp
bnRmKCIlcy4lcyIsIHRlc3Rfc3VpdGUsIHRlc3QpOworICB9CisKKyAgLy8gVGhlIGZvbGxvd2lu
ZyBtZXRob2RzIG92ZXJyaWRlIHdoYXQncyBpbiB0aGUgVGVzdEV2ZW50TGlzdGVuZXIgY2xhc3Mu
CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCov
KSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJh
dGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25z
dCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25t
ZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQor
I2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RD
YXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZWxz
ZQorICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUq
Lykgb3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gT25UZXN0Q2FzZVN0YXJ0CisKKyAgdm9pZCBPblRl
c3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUge30KKworICB2
b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJp
ZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRl
OworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRl
c3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2Vs
c2UKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSov
KSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3du
RW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9u
VGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9u
KSBvdmVycmlkZTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovKSBvdmVycmlkZSB7fQorfTsKKworLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlv
biBmYWlsdXJlLgordm9pZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0UGFydFJl
c3VsdCgKKyAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7CisgIHN3aXRjaCAocmVz
dWx0LnR5cGUoKSkgeworICAgIC8vIElmIHRoZSB0ZXN0IHBhcnQgc3VjY2VlZGVkLCB3ZSBkb24n
dCBuZWVkIHRvIGRvIGFueXRoaW5nLgorICAgIGNhc2UgVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNz
OgorICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAvLyBQcmludCBmYWlsdXJlIG1l
c3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uCisgICAgICAvLyAoZS5nLiBleHBlY3RlZCB0aGlzIGFu
ZCBnb3QgdGhhdCkuCisgICAgICBQcmludFRlc3RQYXJ0UmVzdWx0KHJlc3VsdCk7CisgICAgICBm
Zmx1c2goc3Rkb3V0KTsKKyAgfQorfQorCit2b2lkIEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICBpZiAodGVzdF9pbmZv
LnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1Jl
ZCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBQcmludFRlc3ROYW1lKHRlc3RfaW5mby50ZXN0X3N1
aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJ
ZlByZXNlbnQodGVzdF9pbmZvKTsKKworICAgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7
CisgICAgICBwcmludGYoIiAoJXMgbXMpXG4iLAorICAgICAgICAgICAgIGludGVybmFsOjpTdHJl
YW1hYmxlVG9TdHJpbmcodGVzdF9pbmZvLnJlc3VsdCgpLT5lbGFwc2VkX3RpbWUoKSkKKyAgICAg
ICAgICAgICAgICAgLmNfc3RyKCkpOworICAgIH0gZWxzZSB7CisgICAgICBwcmludGYoIlxuIik7
CisgICAgfQorICAgIGZmbHVzaChzdGRvdXQpOworICB9Cit9CisKK3ZvaWQgQnJpZWZVbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCAvKml0ZXJhdGlvbiovKSB7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWz09PT09PT09PT1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCisgICAgICAg
ICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCks
CisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0X3Rlc3QudGVzdF9zdWl0ZV90b19y
dW5fY291bnQoKSkuY19zdHIoKSk7CisgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7Cisg
ICAgcHJpbnRmKCIgKCVzIG1zIHRvdGFsKSIsCisgICAgICAgICAgIGludGVybmFsOjpTdHJlYW1h
YmxlVG9TdHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsKKyAgfQorICBw
cmludGYoIlxuIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWyAgUEFT
U0VEICBdICIpOworICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC5z
dWNjZXNzZnVsX3Rlc3RfY291bnQoKSkuY19zdHIoKSk7CisKKyAgY29uc3QgaW50IHNraXBwZWRf
dGVzdF9jb3VudCA9IHVuaXRfdGVzdC5za2lwcGVkX3Rlc3RfY291bnQoKTsKKyAgaWYgKHNraXBw
ZWRfdGVzdF9jb3VudCA+IDApIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVl
biwgIlsgIFNLSVBQRUQgXSAiKTsKKyAgICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50
KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CisgIH0KKworICBpbnQgbnVtX2Rpc2FibGVk
ID0gdW5pdF90ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpOworICBpZiAobnVt
X2Rpc2FibGVkICYmICFHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSkgeworICAg
IGlmICh1bml0X3Rlc3QuUGFzc2VkKCkpIHsKKyAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBh
IHNwYWNlciBpZiBubyBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCisgICAgfQorICAgIENv
bG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQg
JXNcblxuIiwKKyAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwgbnVtX2Rpc2FibGVkID09
IDEgPyAiVEVTVCIgOiAiVEVTVFMiKTsKKyAgfQorICAvLyBFbnN1cmUgdGhhdCBHb29nbGUgVGVz
dCBvdXRwdXQgaXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4sIGhlYXBjaGVja2VyIG91dHB1dC4KKyAg
ZmZsdXNoKHN0ZG91dCk7Cit9CisKKy8vIEVuZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcgor
CiAvLyBjbGFzcyBUZXN0RXZlbnRSZXBlYXRlcgogLy8KIC8vIFRoaXMgY2xhc3MgZm9yd2FyZHMg
ZXZlbnRzIHRvIG90aGVyIGV2ZW50IGxpc3RlbmVycy4KIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVy
IDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6CiAgIFRlc3RFdmVudFJlcGVh
dGVyKCkgOiBmb3J3YXJkaW5nX2VuYWJsZWRfKHRydWUpIHt9Ci0gIHZpcnR1YWwgflRlc3RFdmVu
dFJlcGVhdGVyKCk7CisgIH5UZXN0RXZlbnRSZXBlYXRlcigpIG92ZXJyaWRlOwogICB2b2lkIEFw
cGVuZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIpOwogICBUZXN0RXZlbnRMaXN0ZW5lciog
UmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpOwogCkBAIC0zMzE0LDE5ICszNzYw
LDI3IEBAIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVy
IHsKICAgYm9vbCBmb3J3YXJkaW5nX2VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmb3J3YXJkaW5n
X2VuYWJsZWRfOyB9CiAgIHZvaWQgc2V0X2ZvcndhcmRpbmdfZW5hYmxlZChib29sIGVuYWJsZSkg
eyBmb3J3YXJkaW5nX2VuYWJsZWRfID0gZW5hYmxlOyB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lk
IE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVy
YXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VT
dGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0
YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFy
dFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAgdmlydHVhbCB2b2lkIE9u
VGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVu
dmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZp
cnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0
JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3Jh
bUVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRl
cmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3Zl
cnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3Qg
VW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgcGFyYW1l
dGVyKSBvdmVycmlkZTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiBwYXJhbWV0ZXIp
IG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8p
IG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHJlc3VsdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIG92ZXJyaWRlOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2
b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHBhcmFtZXRlcikgb3ZlcnJpZGU7Cisj
ZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRl
c3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIHBhcmFtZXRlcikgb3ZlcnJpZGU7CisgIHZvaWQg
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92
ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pIG92ZXJyaWRlOworICB2b2lkIE9uVGVz
dFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CiAKICBwcml2
YXRlOgogICAvLyBDb250cm9scyB3aGV0aGVyIGV2ZW50cyB3aWxsIGJlIGZvcndhcmRlZCB0byBs
aXN0ZW5lcnNfLiBTZXQgdG8gZmFsc2UKQEAgLTMzNDYsMTYgKzM4MDAsMTUgQEAgdm9pZCBUZXN0
RXZlbnRSZXBlYXRlcjo6QXBwZW5kKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikgewogICBs
aXN0ZW5lcnNfLnB1c2hfYmFjayhsaXN0ZW5lcik7CiB9CiAKLS8vIEZJWE1FOiBGYWN0b3IgdGhl
IHNlYXJjaCBmdW5jdGlvbmFsaXR5IGludG8gVmVjdG9yOjpGaW5kLgogVGVzdEV2ZW50TGlzdGVu
ZXIqIFRlc3RFdmVudFJlcGVhdGVyOjpSZWxlYXNlKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5l
cikgewogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc18uc2l6ZSgpOyArK2kpIHsK
ICAgICBpZiAobGlzdGVuZXJzX1tpXSA9PSBsaXN0ZW5lcikgewotICAgICAgbGlzdGVuZXJzXy5l
cmFzZShsaXN0ZW5lcnNfLmJlZ2luKCkgKyBpKTsKKyAgICAgIGxpc3RlbmVyc18uZXJhc2UobGlz
dGVuZXJzXy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50PihpKSk7CiAgICAgICByZXR1cm4gbGlz
dGVuZXI7CiAgICAgfQogICB9CiAKLSAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBudWxscHRyOwog
fQogCiAvLyBTaW5jZSBtb3N0IG1ldGhvZHMgYXJlIHZlcnkgc2ltaWxhciwgdXNlIG1hY3JvcyB0
byByZWR1Y2UgYm9pbGVycGxhdGUuCkBAIC0zMzcwLDI1ICszODIzLDMzIEBAIHZvaWQgVGVzdEV2
ZW50UmVwZWF0ZXI6Ok5hbWUoY29uc3QgVHlwZSYgcGFyYW1ldGVyKSB7IFwKIH0KIC8vIFRoaXMg
ZGVmaW5lcyBhIG1lbWJlciB0aGF0IGZvcndhcmRzIHRoZSBjYWxsIHRvIGFsbCBsaXN0ZW5lcnMg
aW4gcmV2ZXJzZQogLy8gb3JkZXIuCi0jZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVU
SE9EXyhOYW1lLCBUeXBlKSBcCi12b2lkIFRlc3RFdmVudFJlcGVhdGVyOjpOYW1lKGNvbnN0IFR5
cGUmIHBhcmFtZXRlcikgeyBcCi0gIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7IFwKLSAgICBm
b3IgKGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihsaXN0ZW5lcnNfLnNpemUoKSkgLSAxOyBpID49
IDA7IGktLSkgeyBcCi0gICAgICBsaXN0ZW5lcnNfW2ldLT5OYW1lKHBhcmFtZXRlcik7IFwKLSAg
ICB9IFwKLSAgfSBcCi19CisjZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhO
YW1lLCBUeXBlKSAgICAgIFwKKyAgdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6TmFtZShjb25zdCBU
eXBlJiBwYXJhbWV0ZXIpIHsgXAorICAgIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICBmb3IgKHNpemVfdCBpID0gbGlzdGVuZXJzXy5z
aXplKCk7IGkgIT0gMDsgaS0tKSB7IFwKKyAgICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk5hbWUo
cGFyYW1ldGVyKTsgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiBHVEVTVF9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdFByb2dyYW1TdGFydCwgVW5pdFRlc3QpCiBHVEVTVF9SRVBFQVRFUl9NRVRIT0Rf
KE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCwgVW5pdFRlc3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdENhc2UpCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCitHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdFN1
aXRlKQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCitHVEVT
VF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN1aXRlU3RhcnQsIFRlc3RTdWl0ZSkKIEdURVNUX1JF
UEVBVEVSX01FVEhPRF8oT25UZXN0U3RhcnQsIFRlc3RJbmZvKQogR1RFU1RfUkVQRUFURVJfTUVU
SE9EXyhPblRlc3RQYXJ0UmVzdWx0LCBUZXN0UGFydFJlc3VsdCkKIEdURVNUX1JFUEVBVEVSX01F
VEhPRF8oT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0LCBVbml0VGVzdCkKIEdURVNUX1JFVkVS
U0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1NldFVwRW5kLCBVbml0VGVzdCkKIEdU
RVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1RlYXJEb3duRW5kLCBV
bml0VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RFbmQsIFRlc3RJ
bmZvKQotR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RD
YXNlKQorLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9S
RVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RTdWl0ZSkKKyNlbmRpZiAgLy8gIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9N
RVRIT0RfKE9uVGVzdFN1aXRlRW5kLCBUZXN0U3VpdGUpCiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVS
X01FVEhPRF8oT25UZXN0UHJvZ3JhbUVuZCwgVW5pdFRlc3QpCiAKICN1bmRlZiBHVEVTVF9SRVBF
QVRFUl9NRVRIT0RfCkBAIC0zNDA2LDggKzM4NjcsOCBAQCB2b2lkIFRlc3RFdmVudFJlcGVhdGVy
OjpPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LAogdm9pZCBU
ZXN0RXZlbnRSZXBlYXRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0
ZXJhdGlvbikgewogICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgewotICAgIGZvciAoaW50IGkg
PSBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RlbmVyc18uc2l6ZSgpKSAtIDE7IGkgPj0gMDsgaS0tKSB7
Ci0gICAgICBsaXN0ZW5lcnNfW2ldLT5PblRlc3RJdGVyYXRpb25FbmQodW5pdF90ZXN0LCBpdGVy
YXRpb24pOworICAgIGZvciAoc2l6ZV90IGkgPSBsaXN0ZW5lcnNfLnNpemUoKTsgaSA+IDA7IGkt
LSkgeworICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk9uVGVzdEl0ZXJhdGlvbkVuZCh1bml0X3Rl
c3QsIGl0ZXJhdGlvbik7CiAgICAgfQogICB9CiB9CkBAIC0zNDE5LDEyICszODgwLDEyIEBAIGNs
YXNzIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3Rl
bmVyIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25z
dCBjaGFyKiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKLSAgdm9pZCBMaXN0
VGVzdHNNYXRjaGluZ0ZpbHRlcihjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nh
c2VzKTsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVz
dCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0
ZXIoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogICAvLyBQ
cmludHMgYW4gWE1MIHN1bW1hcnkgb2YgYWxsIHVuaXQgdGVzdHMuCiAgIHN0YXRpYyB2b2lkIFBy
aW50WG1sVGVzdHNMaXN0KHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1
aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogIHByaXZhdGU6CiAgIC8vIElzIGMgYSB3aGl0ZXNwYWNl
IGNoYXJhY3RlciB0aGF0IGlzIG5vcm1hbGl6ZWQgdG8gYSBzcGFjZSBjaGFyYWN0ZXIKQEAgLTM0
NjcsMTQgKzM5MjgsMjQgQEAgY2xhc3MgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAvLyBTdHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0
aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCiAgIHN0YXRp
YyB2b2lkIE91dHB1dFhtbENEYXRhU2VjdGlvbig6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25z
dCBjaGFyKiBkYXRhKTsKIAorICAvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNv
bnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJlczogcmVz
dWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1
bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOworCisgIC8vIFN0cmVh
bXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdFJlc3VsdCBvYmplY3QuCisgIHN0YXRp
YyB2b2lkIE91dHB1dFhtbFRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOwor
CiAgIC8vIFN0cmVhbXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0
LgogICBzdGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFt
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2Vf
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9z
dWl0ZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5m
byYgdGVzdF9pbmZvKTsKIAotICAvLyBQcmludHMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEg
VGVzdENhc2Ugb2JqZWN0Ci0gIHN0YXRpYyB2b2lkIFByaW50WG1sVGVzdENhc2UoOjpzdGQ6Om9z
dHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0
Q2FzZSYgdGVzdF9jYXNlKTsKKyAgLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBh
IFRlc3RTdWl0ZSBvYmplY3QKKyAgc3RhdGljIHZvaWQgUHJpbnRYbWxUZXN0U3VpdGUoOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMgYW4gWE1MIHN1bW1hcnkgb2Yg
dW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0aWMgdm9pZCBQcmludFhtbFVu
aXRUZXN0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCkBAIC0zNTE2LDEwICszOTg3LDEwIEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCwKIH0KIAogdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Okxp
c3RUZXN0c01hdGNoaW5nRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj4m
IHRlc3RfY2FzZXMpIHsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9z
dWl0ZXMpIHsKICAgRklMRSogeG1sb3V0ID0gT3BlbkZpbGVGb3JXcml0aW5nKG91dHB1dF9maWxl
Xyk7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKLSAgUHJpbnRYbWxUZXN0c0xpc3QoJnN0
cmVhbSwgdGVzdF9jYXNlcyk7CisgIFByaW50WG1sVGVzdHNMaXN0KCZzdHJlYW0sIHRlc3Rfc3Vp
dGVzKTsKICAgZnByaW50Zih4bWxvdXQsICIlcyIsIFN0cmluZ1N0cmVhbVRvU3RyaW5nKCZzdHJl
YW0pLmNfc3RyKCkpOwogICBmY2xvc2UoeG1sb3V0KTsKIH0KQEAgLTM1MzQsOCArNDAwNSw2IEBA
IHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigK
IC8vIG1vZHVsZSB3aWxsIGNvbnNpc3Qgb2Ygb3JkaW5hcnkgRW5nbGlzaCB0ZXh0LgogLy8gSWYg
dGhpcyBtb2R1bGUgaXMgZXZlciBtb2RpZmllZCB0byBwcm9kdWNlIHZlcnNpb24gMS4xIFhNTCBv
dXRwdXQsCiAvLyBtb3N0IGludmFsaWQgY2hhcmFjdGVycyBjYW4gYmUgcmV0YWluZWQgdXNpbmcg
Y2hhcmFjdGVyIHJlZmVyZW5jZXMuCi0vLyBGSVhNRTogSXQgbWlnaHQgYmUgbmljZSB0byBoYXZl
IGEgbWluaW1hbGx5IGludmFzaXZlLCBodW1hbi1yZWFkYWJsZQotLy8gZXNjYXBpbmcgc2NoZW1l
IGZvciBpbnZhbGlkIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIGRyb3BwaW5nIHRoZW0uCiBzdGQ6
OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OkVzY2FwZVhtbCgKICAgICBjb25zdCBz
dGQ6OnN0cmluZyYgc3RyLCBib29sIGlzX2F0dHJpYnV0ZSkgewogICBNZXNzYWdlIG07CkBAIC0z
NjAwLDcgKzQwNjksNyBAQCBzdGQ6OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlJl
bW92ZUludmFsaWRYbWxDaGFyYWN0ZXJzKAogLy8gVGhpcyBpcyBob3cgR29vZ2xlIFRlc3QgY29u
Y2VwdHMgbWFwIHRvIHRoZSBEVEQ6CiAvLwogLy8gPHRlc3RzdWl0ZXMgbmFtZT0iQWxsVGVzdHMi
PiAgICAgICAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVW5pdFRlc3Qgb2JqZWN0Ci0vLyAgIDx0ZXN0
c3VpdGUgbmFtZT0idGVzdGNhc2UtbmFtZSI+ICA8LS0gY29ycmVzcG9uZHMgdG8gYSBUZXN0Q2Fz
ZSBvYmplY3QKKy8vICAgPHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0Y2FzZS1uYW1lIj4gIDwtLSBjb3Jy
ZXNwb25kcyB0byBhIFRlc3RTdWl0ZSBvYmplY3QKIC8vICAgICA8dGVzdGNhc2UgbmFtZT0idGVz
dC1uYW1lIj4gICAgIDwtLSBjb3JyZXNwb25kcyB0byBhIFRlc3RJbmZvIG9iamVjdAogLy8gICAg
ICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIj4uLi48L2ZhaWx1cmU+CiAvLyAgICAgICA8ZmFpbHVy
ZSBtZXNzYWdlPSIuLi4iPi4uLjwvZmFpbHVyZT4KQEAgLTM2MjQsMTIgKzQwOTMsMTEgQEAgc3Rh
dGljIGJvb2wgUG9ydGFibGVMb2NhbHRpbWUodGltZV90IHNlY29uZHMsIHN0cnVjdCB0bSogb3V0
KSB7CiAgIC8vIE1JTkdXIDx0aW1lLmg+IHByb3ZpZGVzIG5laXRoZXIgbG9jYWx0aW1lX3Igbm9y
IGxvY2FsdGltZV9zLCBidXQgdXNlcwogICAvLyBXaW5kb3dzJyBsb2NhbHRpbWUoKSwgd2hpY2gg
aGFzIGEgdGhyZWFkLWxvY2FsIHRtIGJ1ZmZlci4KICAgc3RydWN0IHRtKiB0bV9wdHIgPSBsb2Nh
bHRpbWUoJnNlY29uZHMpOyAgLy8gTk9MSU5UCi0gIGlmICh0bV9wdHIgPT0gTlVMTCkKLSAgICBy
ZXR1cm4gZmFsc2U7CisgIGlmICh0bV9wdHIgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogICAq
b3V0ID0gKnRtX3B0cjsKICAgcmV0dXJuIHRydWU7CiAjZWxzZQotICByZXR1cm4gbG9jYWx0aW1l
X3IoJnNlY29uZHMsIG91dCkgIT0gTlVMTDsKKyAgcmV0dXJuIGxvY2FsdGltZV9yKCZzZWNvbmRz
LCBvdXQpICE9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtMzYzOSwxMyArNDEwNywxNCBAQCBz
dGQ6OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxsaXMg
bXMpIHsKICAgc3RydWN0IHRtIHRpbWVfc3RydWN0OwogICBpZiAoIVBvcnRhYmxlTG9jYWx0aW1l
KHN0YXRpY19jYXN0PHRpbWVfdD4obXMgLyAxMDAwKSwgJnRpbWVfc3RydWN0KSkKICAgICByZXR1
cm4gIiI7Ci0gIC8vIFlZWVktTU0tRERUaGg6bW06c3MKKyAgLy8gWVlZWS1NTS1ERFRoaDptbTpz
cy5zc3MKICAgcmV0dXJuIFN0cmVhbWFibGVUb1N0cmluZyh0aW1lX3N0cnVjdC50bV95ZWFyICsg
MTkwMCkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3Qu
dG1fbW9uICsgMSkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9z
dHJ1Y3QudG1fbWRheSkgKyAiVCIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGlt
ZV9zdHJ1Y3QudG1faG91cikgKyAiOiIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIo
dGltZV9zdHJ1Y3QudG1fbWluKSArICI6IiArCi0gICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRo
Mih0aW1lX3N0cnVjdC50bV9zZWMpOworICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGlt
ZV9zdHJ1Y3QudG1fc2VjKSArICIuIiArCisgICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRoTihz
dGF0aWNfY2FzdDxpbnQ+KG1zICUgMTAwMCksIDMpOwogfQogCiAvLyBTdHJlYW1zIGFuIFhNTCBD
REFUQSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQu
CkBAIC0zNjU1LDcgKzQxMjQsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0
cHV0WG1sQ0RhdGFTZWN0aW9uKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgICpzdHJlYW0gPDwg
IjwhW0NEQVRBWyI7CiAgIGZvciAoOzspIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuZXh0X3Nl
Z21lbnQgPSBzdHJzdHIoc2VnbWVudCwgIl1dPiIpOwotICAgIGlmIChuZXh0X3NlZ21lbnQgIT0g
TlVMTCkgeworICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gbnVsbHB0cikgewogICAgICAgc3RyZWFt
LT53cml0ZSgKICAgICAgICAgICBzZWdtZW50LCBzdGF0aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+
KG5leHRfc2VnbWVudCAtIHNlZ21lbnQpKTsKICAgICAgICpzdHJlYW0gPDwgIl1dPl1dJmd0Ozwh
W0NEQVRBWyI7CkBAIC0zNjc0LDcgKzQxNDMsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T3V0cHV0WG1sQXR0cmlidXRlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAog
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewogICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4mIGFsbG93ZWRfbmFtZXMgPQotICAgICAgR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9y
RWxlbWVudChlbGVtZW50X25hbWUpOworICAgICAgR2V0UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVz
Rm9yRWxlbWVudChlbGVtZW50X25hbWUpOwogCiAgIEdURVNUX0NIRUNLXyhzdGQ6OmZpbmQoYWxs
b3dlZF9uYW1lcy5iZWdpbigpLCBhbGxvd2VkX25hbWVzLmVuZCgpLCBuYW1lKSAhPQogICAgICAg
ICAgICAgICAgICAgIGFsbG93ZWRfbmFtZXMuZW5kKCkpCkBAIC0zNjg0LDQ3ICs0MTUzLDk3IEBA
IHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxBdHRyaWJ1dGUoCiAgICpz
dHJlYW0gPDwgIiAiIDw8IG5hbWUgPDwgIj1cIiIgPDwgRXNjYXBlWG1sQXR0cmlidXRlKHZhbHVl
KSA8PCAiXCIiOwogfQogCisvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRh
aW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0Lgordm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50
ZXI6Ok91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1bHQoCisgICAgOjpzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KSB7CisgIC8vIE91dHB1dCB0aGUgYm9p
bGVycGxhdGUgZm9yIGEgbWluaW1hbCB0ZXN0IHN1aXRlIHdpdGggb25lIHRlc3QuCisgICpzdHJl
YW0gPDwgIiAgPHRlc3RzdWl0ZSI7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0
c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWlsdXJlIik7CisgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGVzdHMiLCAiMSIpOworICBPdXRwdXRYbWxBdHRy
aWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgImZhaWx1cmVzIiwgIjEiKTsKKyAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJkaXNhYmxlZCIsICIwIik7CisgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAic2tpcHBlZCIsICIwIik7CisgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZXJyb3JzIiwgIjAiKTsKKyAg
T3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJ0aW1lIiwKKyAgICAgICAg
ICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhyZXN1bHQuZWxhcHNlZF90
aW1lKCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKAorICAgICAgc3RyZWFtLCAidGVzdHN1aXRl
IiwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShy
ZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgKnN0cmVhbSA8PCAiPiI7CisKKyAgLy8gT3V0
cHV0IHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBtaW5pbWFsIHRlc3QgY2FzZSB3aXRoIGEgc2luZ2xl
IHRlc3QuCisgICpzdHJlYW0gPDwgIiAgICA8dGVzdGNhc2UiOworICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCAidGVzdGNhc2UiLCAibmFtZSIsICIiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwgInRlc3RjYXNlIiwgInN0YXR1cyIsICJydW4iKTsKKyAgT3V0cHV0WG1sQXR0cmli
dXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJjb21wbGV0ZWQiKTsKKyAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgImNsYXNzbmFtZSIsICIiKTsKKyAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInRpbWUiLAorICAgICAgICAgICAg
ICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3VsdC5lbGFwc2VkX3RpbWUo
KSkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICBzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0
aW1lc3RhbXAiLAorICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEocmVzdWx0
LnN0YXJ0X3RpbWVzdGFtcCgpKSk7CisKKyAgLy8gT3V0cHV0IHRoZSBhY3R1YWwgdGVzdCByZXN1
bHQuCisgIE91dHB1dFhtbFRlc3RSZXN1bHQoc3RyZWFtLCByZXN1bHQpOworCisgIC8vIENvbXBs
ZXRlIHRoZSB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8ICIgIDwvdGVzdHN1aXRlPlxuIjsKK30K
KwogLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9iamVjdC4K
LS8vIEZJWE1FOiBUaGVyZSBpcyBhbHNvIHZhbHVlIGluIHByaW50aW5nIHByb3BlcnRpZXMgd2l0
aCB0aGUgcGxhaW4gcHJpbnRlci4KIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRw
dXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CiAgIGNvbnN0IFRl
c3RSZXN1bHQmIHJlc3VsdCA9ICp0ZXN0X2luZm8ucmVzdWx0KCk7Ci0gIGNvbnN0IHN0ZDo6c3Ry
aW5nIGtUZXN0Y2FzZSA9ICJ0ZXN0Y2FzZSI7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3Vp
dGUgPSAidGVzdGNhc2UiOwogCiAgIGlmICh0ZXN0X2luZm8uaXNfaW5fYW5vdGhlcl9zaGFyZCgp
KSB7CiAgICAgcmV0dXJuOwogICB9CiAKICAgKnN0cmVhbSA8PCAiICAgIDx0ZXN0Y2FzZSI7Ci0g
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgIm5hbWUiLCB0ZXN0X2luZm8u
bmFtZSgpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUi
LCB0ZXN0X2luZm8ubmFtZSgpKTsKIAotICBpZiAodGVzdF9pbmZvLnZhbHVlX3BhcmFtKCkgIT0g
TlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVl
X3BhcmFtIiwKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpICE9IG51bGxwdHIpIHsKKyAg
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidmFsdWVfcGFyYW0iLAog
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSk7CiAgIH0KLSAg
aWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0X2luZm8udHlwZV9wYXJh
bSgpKTsKKyAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gbnVsbHB0cikgeworICAgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFtIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSk7CiAgIH0KICAgaWYgKEdU
RVNUX0ZMQUcobGlzdF90ZXN0cykpIHsKLSAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBr
VGVzdGNhc2UsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSk7Ci0gICAgT3V0cHV0WG1sQXR0cmli
dXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsCisgICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwga1Rlc3RzdWl0ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpKTsKKyAgICBPdXRwdXRY
bWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAibGluZSIsCiAgICAgICAgICAgICAgICAg
ICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2luZm8ubGluZSgpKSk7CiAgICAgKnN0cmVh
bSA8PCAiIC8+XG4iOwogICAgIHJldHVybjsKICAgfQogCi0gIE91dHB1dFhtbEF0dHJpYnV0ZShz
dHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0s
IGtUZXN0c3VpdGUsICJzdGF0dXMiLAogICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnNo
b3VsZF9ydW4oKSA/ICJydW4iIDogIm5vdHJ1biIpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rl
c3RzdWl0ZSwgInJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8uc2hvdWxk
X3J1bigpCisgICAgICAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBwZWQoKSA/ICJz
a2lwcGVkIiA6ICJjb21wbGV0ZWQiKQorICAgICAgICAgICAgICAgICAgICAgICAgIDogInN1cHBy
ZXNzZWQiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWUi
LAogICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3Vs
dC5lbGFwc2VkX3RpbWUoKSkpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNh
c2UsICJjbGFzc25hbWUiLCB0ZXN0X2Nhc2VfbmFtZSk7CisgIE91dHB1dFhtbEF0dHJpYnV0ZSgK
KyAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9j
aFRpbWVJbk1pbGxpc0FzSXNvODYwMShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImNsYXNzbmFtZSIsIHRlc3Rfc3Vp
dGVfbmFtZSk7CiAKKyAgT3V0cHV0WG1sVGVzdFJlc3VsdChzdHJlYW0sIHJlc3VsdCk7Cit9CisK
K3ZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0UmVzdWx0KDo6c3Rk
Ojpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpIHsKICAgaW50IGZhaWx1cmVz
ID0gMDsKKyAgaW50IHNraXBzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQudG90
YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcGFydCA9
IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKICAgICBpZiAocGFydC5mYWlsZWQoKSkgewot
ICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSkgeworICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSAm
JiBza2lwcyA9PSAwKSB7CiAgICAgICAgICpzdHJlYW0gPDwgIj5cbiI7CiAgICAgICB9CiAgICAg
ICBjb25zdCBzdGQ6OnN0cmluZyBsb2NhdGlvbiA9CkBAIC0zNzMyLDE4ICs0MjUxLDMxIEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0
cmVhbSogc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CiAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CiAgICAgICAq
c3RyZWFtIDw8ICIgICAgICA8ZmFpbHVyZSBtZXNzYWdlPVwiIgotICAgICAgICAgICAgICA8PCBF
c2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKQorICAgICAgICAgICAgICA8PCBFc2Nh
cGVYbWxBdHRyaWJ1dGUoc3VtbWFyeSkKICAgICAgICAgICAgICAgPDwgIlwiIHR5cGU9XCJcIj4i
OwogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZGV0YWlsID0gbG9jYXRpb24gKyAiXG4iICsgcGFy
dC5tZXNzYWdlKCk7CiAgICAgICBPdXRwdXRYbWxDRGF0YVNlY3Rpb24oc3RyZWFtLCBSZW1vdmVJ
bnZhbGlkWG1sQ2hhcmFjdGVycyhkZXRhaWwpLmNfc3RyKCkpOwogICAgICAgKnN0cmVhbSA8PCAi
PC9mYWlsdXJlPlxuIjsKKyAgICB9IGVsc2UgaWYgKHBhcnQuc2tpcHBlZCgpKSB7CisgICAgICBp
ZiAoKytza2lwcyA9PSAxICYmIGZhaWx1cmVzID09IDApIHsKKyAgICAgICAgKnN0cmVhbSA8PCAi
PlxuIjsKKyAgICAgIH0KKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxvY2F0aW9uID0KKyAgICAg
ICAgICBpbnRlcm5hbDo6Rm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihwYXJ0
LmZpbGVfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CisgICAgICBjb25zdCBzdGQ6OnN0
cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CisgICAgICAq
c3RyZWFtIDw8ICIgICAgICA8c2tpcHBlZCBtZXNzYWdlPVwiIgorICAgICAgICAgICAgICA8PCBF
c2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKSA8PCAiXCI+IjsKKyAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGRldGFpbCA9IGxvY2F0aW9uICsgIlxuIiArIHBhcnQubWVzc2FnZSgpOwor
ICAgICAgT3V0cHV0WG1sQ0RhdGFTZWN0aW9uKHN0cmVhbSwgUmVtb3ZlSW52YWxpZFhtbENoYXJh
Y3RlcnMoZGV0YWlsKS5jX3N0cigpKTsKKyAgICAgICpzdHJlYW0gPDwgIjwvc2tpcHBlZD5cbiI7
CiAgICAgfQogICB9CiAKLSAgaWYgKGZhaWx1cmVzID09IDAgJiYgcmVzdWx0LnRlc3RfcHJvcGVy
dHlfY291bnQoKSA9PSAwKSB7CisgIGlmIChmYWlsdXJlcyA9PSAwICYmIHNraXBzID09IDAgJiYg
cmVzdWx0LnRlc3RfcHJvcGVydHlfY291bnQoKSA9PSAwKSB7CiAgICAgKnN0cmVhbSA8PCAiIC8+
XG4iOwogICB9IGVsc2UgewotICAgIGlmIChmYWlsdXJlcyA9PSAwKSB7CisgICAgaWYgKGZhaWx1
cmVzID09IDAgJiYgc2tpcHMgPT0gMCkgewogICAgICAgKnN0cmVhbSA8PCAiPlxuIjsKICAgICB9
CiAgICAgT3V0cHV0WG1sVGVzdFByb3BlcnRpZXMoc3RyZWFtLCByZXN1bHQpOwpAQCAtMzc1MSwy
OSArNDI4MywzNiBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVz
dEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgfQogfQogCi0vLyBQcmludHMgYW4gWE1M
IHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci12b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0Q2FzZShzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RDYXNl
JiB0ZXN0X2Nhc2UpIHsKKy8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0
U3VpdGUgb2JqZWN0Cit2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0
U3VpdGUoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSB7CiAgIGNv
bnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdHN1aXRlIjsKICAgKnN0cmVhbSA8PCAi
ICA8IiA8PCBrVGVzdHN1aXRlOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1
aXRlLCAibmFtZSIsIHRlc3RfY2FzZS5uYW1lKCkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKICAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwKLSAgICAgICAgICAgICAgICAg
ICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV90ZXN0X2NvdW50KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLnJl
cG9ydGFibGVfdGVzdF9jb3VudCgpKSk7CiAgIGlmICghR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkg
ewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJmYWlsdXJlcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UuZmFp
bGVkX3Rlc3RfY291bnQoKSkpOworICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9T
dHJpbmcodGVzdF9zdWl0ZS5mYWlsZWRfdGVzdF9jb3VudCgpKSk7CiAgICAgT3V0cHV0WG1sQXR0
cmlidXRlKAogICAgICAgICBzdHJlYW0sIGtUZXN0c3VpdGUsICJkaXNhYmxlZCIsCi0gICAgICAg
IFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2Nv
dW50KCkpKTsKKyAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUucmVwb3J0YWJs
ZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFt
LCBrVGVzdHN1aXRlLCAic2tpcHBlZCIsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFi
bGVUb1N0cmluZyh0ZXN0X3N1aXRlLnNraXBwZWRfdGVzdF9jb3VudCgpKSk7CisKICAgICBPdXRw
dXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgIjAiKTsKKwogICAg
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3RfY2FzZS5lbGFw
c2VkX3RpbWUoKSkpOwotICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc1htbEF0dHJpYnV0
ZXModGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkp
KTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwg
InRpbWVzdGFtcCIsCisgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKHRl
c3Rfc3VpdGUuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0
aWVzQXNYbWxBdHRyaWJ1dGVzKHRlc3Rfc3VpdGUuYWRfaG9jX3Rlc3RfcmVzdWx0KCkpOwogICB9
CiAgICpzdHJlYW0gPDwgIj5cbiI7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLnRv
dGFsX3Rlc3RfY291bnQoKTsgKytpKSB7Ci0gICAgaWYgKHRlc3RfY2FzZS5HZXRUZXN0SW5mbyhp
KS0+aXNfcmVwb3J0YWJsZSgpKQotICAgICAgT3V0cHV0WG1sVGVzdEluZm8oc3RyZWFtLCB0ZXN0
X2Nhc2UubmFtZSgpLCAqdGVzdF9jYXNlLkdldFRlc3RJbmZvKGkpKTsKKyAgZm9yIChpbnQgaSA9
IDA7IGkgPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKSB7CisgICAgaWYgKHRl
c3Rfc3VpdGUuR2V0VGVzdEluZm8oaSktPmlzX3JlcG9ydGFibGUoKSkKKyAgICAgIE91dHB1dFht
bFRlc3RJbmZvKHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJ
bmZvKGkpKTsKICAgfQogICAqc3RyZWFtIDw8ICIgIDwvIiA8PCBrVGVzdHN1aXRlIDw8ICI+XG4i
OwogfQpAQCAtMzc5NCwxMSArNDMzMywxMSBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRl
cjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgICAgIHN0cmVhbSwg
a1Rlc3RzdWl0ZXMsICJkaXNhYmxlZCIsCiAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90
ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpKSk7CiAgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAiZXJyb3JzIiwgIjAiKTsKKyAgT3V0cHV0WG1sQXR0
cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0aW1lIiwKKyAgICAgICAgICAgICAgICAgICAg
IEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsK
ICAgT3V0cHV0WG1sQXR0cmlidXRlKAogICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlcywgInRpbWVz
dGFtcCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSh1bml0X3Rlc3Qu
c3RhcnRfdGltZXN0YW1wKCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3Rz
dWl0ZXMsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0Fz
U2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsKIAogICBpZiAoR1RFU1RfRkxBRyhz
aHVmZmxlKSkgewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAi
cmFuZG9tX3NlZWQiLApAQCAtMzgwOSwzMSArNDM0OCwzOCBAQCB2b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIik7
CiAgICpzdHJlYW0gPDwgIj5cbiI7CiAKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVz
dENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkKLSAgICAgIFByaW50WG1sVGVz
dENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgZm9yIChpbnQgaSA9
IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBp
ZiAodW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKS0+cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgPiAw
KQorICAgICAgUHJpbnRYbWxUZXN0U3VpdGUoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RTdWl0
ZShpKSk7CiAgIH0KKworICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBv
ZiBvbmUgb2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVu
dCkgaW5jbHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rl
c3RfcmVzdWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRYbWxUZXN0U3VpdGVGb3JUZXN0UmVz
dWx0KHN0cmVhbSwgdW5pdF90ZXN0LmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgfQorCiAgICpz
dHJlYW0gPDwgIjwvIiA8PCBrVGVzdHN1aXRlcyA8PCAiPlxuIjsKIH0KIAogdm9pZCBYbWxVbml0
VGVzdFJlc3VsdFByaW50ZXI6OlByaW50WG1sVGVzdHNMaXN0KAotICAgIHN0ZDo6b3N0cmVhbSog
c3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKSB7CisgICAg
c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0
X3N1aXRlcykgewogICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlcyA9ICJ0ZXN0c3VpdGVz
IjsKIAogICAqc3RyZWFtIDw8ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYt
OFwiPz5cbiI7CiAgICpzdHJlYW0gPDwgIjwiIDw8IGtUZXN0c3VpdGVzOwogCiAgIGludCB0b3Rh
bF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdF9jYXNlcy5zaXplKCk7
ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2FzZXNbaV0tPnRvdGFsX3Rlc3RfY291
bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlcykgeworICAgIHRvdGFs
X3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKTsKICAgfQogICBPdXRwdXRY
bWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgInRlc3RzIiwKICAgICAgICAgICAgICAg
ICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0b3RhbF90ZXN0cykpOwogICBPdXRwdXRYbWxBdHRy
aWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgIm5hbWUiLCAiQWxsVGVzdHMiKTsKICAgKnN0cmVh
bSA8PCAiPlxuIjsKIAotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgp
OyArK2kpIHsKLSAgICBQcmludFhtbFRlc3RDYXNlKHN0cmVhbSwgKnRlc3RfY2FzZXNbaV0pOwor
ICBmb3IgKGF1dG8gdGVzdF9zdWl0ZSA6IHRlc3Rfc3VpdGVzKSB7CisgICAgUHJpbnRYbWxUZXN0
U3VpdGUoc3RyZWFtLCAqdGVzdF9zdWl0ZSk7CiAgIH0KICAgKnN0cmVhbSA8PCAiPC8iIDw8IGtU
ZXN0c3VpdGVzIDw8ICI+XG4iOwogfQpAQCAtMzg3OCwxMSArNDQyNCwxMSBAQCBjbGFzcyBKc29u
VW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewog
IHB1YmxpYzoKICAgZXhwbGljaXQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25zdCBjaGFy
KiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKKyAgdm9pZCBPblRlc3RJdGVy
YXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgLy8gUHJpbnRzIGFuIEpTT04gc3VtbWFyeSBvZiBhbGwgdW5pdCB0ZXN0cy4KICAg
c3RhdGljIHZvaWQgUHJpbnRKc29uVGVzdExpc3QoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2Uq
PiYgdGVzdF9jYXNlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcyk7CiAKICBwcml2YXRlOgogICAvLyBS
ZXR1cm5zIGFuIEpTT04tZXNjYXBlZCBjb3B5IG9mIHRoZSBpbnB1dCBzdHJpbmcgc3RyLgpAQCAt
MzkwMywxNCArNDQ0OSwyNCBAQCBjbGFzcyBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVi
bGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBpbmRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBjb21tYSA9IHRydWUpOwogCisgIC8vIFN0cmVhbXMgYSB0ZXN0IHN1aXRlIEpTT04gc3Rh
bnphIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJl
czogcmVzdWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dEpzb25UZXN0U3VpdGVGb3JU
ZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCk7CisKKyAg
Ly8gU3RyZWFtcyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0UmVzdWx0IG9iamVjdC4K
KyAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVh
bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYg
cmVzdWx0KTsKKwogICAvLyBTdHJlYW1zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJ
bmZvIG9iamVjdC4KICAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RJbmZvKDo6c3RkOjpvc3Ry
ZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiB0ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwogCi0gIC8vIFByaW50cyBhIEpTT04gcmVwcmVz
ZW50YXRpb24gb2YgYSBUZXN0Q2FzZSBvYmplY3QKLSAgc3RhdGljIHZvaWQgUHJpbnRKc29uVGVz
dENhc2UoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7CisgIC8vIFByaW50cyBhIEpTT04gcmVw
cmVzZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0CisgIHN0YXRpYyB2b2lkIFByaW50SnNv
blRlc3RTdWl0ZSg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMg
YSBKU09OIHN1bW1hcnkgb2YgdW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0
aWMgdm9pZCBQcmludEpzb25Vbml0VGVzdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLApAQCAtNDAw
OSw3ICs0NTY1LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdEVwb2NoVGltZUluTWlsbGlz
QXNSRkMzMzM5KFRpbWVJbk1pbGxpcyBtcykgewogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0
aDIodGltZV9zdHJ1Y3QudG1fc2VjKSArICJaIjsKIH0KIAotc3RhdGljIGlubGluZSBzdGQ6OnN0
cmluZyBJbmRlbnQoaW50IHdpZHRoKSB7CitzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIEluZGVu
dChzaXplX3Qgd2lkdGgpIHsKICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHdpZHRoLCAnICcpOwogfQog
CkBAIC00MDIxLDcgKzQ1NzcsNyBAQCB2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91
dHB1dEpzb25LZXkoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGluZGVudCwKICAgICBib29sIGNv
bW1hKSB7CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgYWxsb3dlZF9uYW1lcyA9
Ci0gICAgICBHZXRSZXNlcnZlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7Cisg
ICAgICBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7
CiAKICAgR1RFU1RfQ0hFQ0tfKHN0ZDo6ZmluZChhbGxvd2VkX25hbWVzLmJlZ2luKCksIGFsbG93
ZWRfbmFtZXMuZW5kKCksIG5hbWUpICE9CiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9uYW1l
cy5lbmQoKSkKQEAgLTQwNDEsNyArNDU5Nyw3IEBAIHZvaWQgSnNvblVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T3V0cHV0SnNvbktleSgKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgaW5kZW50LAogICAg
IGJvb2wgY29tbWEpIHsKICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBhbGxvd2Vk
X25hbWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9u
YW1lKTsKKyAgICAgIEdldFJlc2VydmVkT3V0cHV0QXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVu
dF9uYW1lKTsKIAogICBHVEVTVF9DSEVDS18oc3RkOjpmaW5kKGFsbG93ZWRfbmFtZXMuYmVnaW4o
KSwgYWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0KICAgICAgICAgICAgICAgICAgICBhbGxv
d2VkX25hbWVzLmVuZCgpKQpAQCAtNDA1MywzOSArNDYwOSw5NyBAQCB2b2lkIEpzb25Vbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAgICAgKnN0cmVhbSA8PCAiLFxuIjsKIH0K
IAorLy8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgSlNPTiBzdGFuemEgY29udGFpbmluZyB0aGUgZ2l2
ZW4gdGVzdCByZXN1bHQuCit2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dEpz
b25UZXN0U3VpdGVGb3JUZXN0UmVzdWx0KAorICAgIDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNv
bnN0IFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZv
ciBhIG5ldyB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8IEluZGVudCg0KSA8PCAie1xuIjsKKyAg
T3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVG
YWlsdXJlIiwgSW5kZW50KDYpKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUi
LCAidGVzdHMiLCAxLCBJbmRlbnQoNikpOworICBpZiAoIUdURVNUX0ZMQUcobGlzdF90ZXN0cykp
IHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RzdWl0ZSIsICJmYWlsdXJlcyIsIDEs
IEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZGlz
YWJsZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1
aXRlIiwgInNraXBwZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFt
LCAidGVzdHN1aXRlIiwgImVycm9ycyIsIDAsIEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktl
eShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGltZSIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRU
aW1lSW5NaWxsaXNBc0R1cmF0aW9uKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAg
ICAgICAgICBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRl
IiwgInRpbWVzdGFtcCIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxp
c0FzUkZDMzMzOShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpLAorICAgICAgICAgICAgICAgICAg
SW5kZW50KDYpKTsKKyAgfQorICAqc3RyZWFtIDw8IEluZGVudCg2KSA8PCAiXCJ0ZXN0c3VpdGVc
IjogW1xuIjsKKworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZvciBhIG5ldyB0ZXN0IGNh
c2UuCisgICpzdHJlYW0gPDwgSW5kZW50KDgpIDw8ICJ7XG4iOworICBPdXRwdXRKc29uS2V5KHN0
cmVhbSwgInRlc3RjYXNlIiwgIm5hbWUiLCAiIiwgSW5kZW50KDEwKSk7CisgIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAic3RhdHVzIiwgIlJVTiIsIEluZGVudCgxMCkpOworICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJDT01QTEVURUQiLCBJ
bmRlbnQoMTApKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1lc3Rh
bXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJl
c3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAgICAgICAgICAgSW5kZW50KDEwKSk7Cisg
IE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAidGltZSIsCisgICAgICAgICAgICAg
ICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1bHQuZWxhcHNlZF90aW1lKCkpLAor
ICAgICAgICAgICAgICAgIEluZGVudCgxMCkpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRl
c3RjYXNlIiwgImNsYXNzbmFtZSIsICIiLCBJbmRlbnQoMTApLCBmYWxzZSk7CisgICpzdHJlYW0g
PDwgVGVzdFByb3BlcnRpZXNBc0pzb24ocmVzdWx0LCBJbmRlbnQoMTApKTsKKworICAvLyBPdXRw
dXQgdGhlIGFjdHVhbCB0ZXN0IHJlc3VsdC4KKyAgT3V0cHV0SnNvblRlc3RSZXN1bHQoc3RyZWFt
LCByZXN1bHQpOworCisgIC8vIEZpbmlzaCB0aGUgdGVzdCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCAi
XG4iIDw8IEluZGVudCg2KSA8PCAiXVxuIiA8PCBJbmRlbnQoNCkgPDwgIn0iOworfQorCiAvLyBQ
cmludHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0Lgogdm9pZCBK
c29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpzdGQ6Om9zdHJl
YW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQgPSAq
dGVzdF9pbmZvLnJlc3VsdCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdGNhc2UgPSAidGVz
dGNhc2UiOworICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlID0gInRlc3RjYXNlIjsKICAg
Y29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVudCgxMCk7CiAKICAgKnN0cmVhbSA8PCBJ
bmRlbnQoOCkgPDwgIntcbiI7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJu
YW1lIiwgdGVzdF9pbmZvLm5hbWUoKSwga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFt
LCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfaW5mby5uYW1lKCksIGtJbmRlbnQpOwogCi0gIGlm
ICh0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSAhPSBOVUxMKSB7Ci0gICAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVlX3BhcmFtIiwKLSAgICAgICAgICAgICAgICAgIHRlc3Rf
aW5mby52YWx1ZV9wYXJhbSgpLCBrSW5kZW50KTsKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJh
bSgpICE9IG51bGxwdHIpIHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwg
InZhbHVlX3BhcmFtIiwgdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCksCisgICAgICAgICAgICAgICAg
ICBrSW5kZW50KTsKICAgfQotICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7
Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0
X2luZm8udHlwZV9wYXJhbSgpLAorICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBudWxs
cHRyKSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFt
IiwgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSwKICAgICAgICAgICAgICAgICAgIGtJbmRlbnQpOwog
ICB9CiAgIGlmIChHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0Y2FzZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKLSAg
ICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsIHRlc3RfaW5mby5saW5l
KCksIGtJbmRlbnQsIGZhbHNlKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0
ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKKyAgICBPdXRwdXRKc29uS2V5
KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImxpbmUiLCB0ZXN0X2luZm8ubGluZSgpLCBrSW5kZW50LCBm
YWxzZSk7CiAgICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAifSI7CiAgICAgcmV0
dXJuOwogICB9CiAKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIs
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAic3RhdHVzIiwKICAgICAgICAg
ICAgICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpID8gIlJVTiIgOiAiTk9UUlVOIiwga0luZGVu
dCk7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0
SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJyZXN1bHQiLAorICAgICAgICAgICAgICAgIHRl
c3RfaW5mby5zaG91bGRfcnVuKCkKKyAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBw
ZWQoKSA/ICJTS0lQUEVEIiA6ICJDT01QTEVURUQiKQorICAgICAgICAgICAgICAgICAgICA6ICJT
VVBQUkVTU0VEIiwKKyAgICAgICAgICAgICAgICBrSW5kZW50KTsKKyAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lc3RhbXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVw
b2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAg
ICAgICAgICAgICAga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRl
LCAidGltZSIsCiAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihy
ZXN1bHQuZWxhcHNlZF90aW1lKCkpLCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0s
IGtUZXN0Y2FzZSwgImNsYXNzbmFtZSIsIHRlc3RfY2FzZV9uYW1lLCBrSW5kZW50LCBmYWxzZSk7
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiY2xhc3NuYW1lIiwgdGVzdF9z
dWl0ZV9uYW1lLCBrSW5kZW50LAorICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgKnN0cmVhbSA8
PCBUZXN0UHJvcGVydGllc0FzSnNvbihyZXN1bHQsIGtJbmRlbnQpOwogCisgIE91dHB1dEpzb25U
ZXN0UmVzdWx0KHN0cmVhbSwgcmVzdWx0KTsKK30KKwordm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpPdXRwdXRKc29uVGVzdFJlc3VsdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
ZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVu
dCgxMCk7CisKICAgaW50IGZhaWx1cmVzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1
bHQudG90YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYg
cGFydCA9IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKQEAgLTQxMTAsNDAgKzQ3MjQsNDQg
QEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpz
dGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAi
fSI7CiB9CiAKLS8vIFByaW50cyBhbiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ug
b2JqZWN0Ci12b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50SnNvblRlc3RDYXNl
KHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CisvLyBQcmludHMg
YW4gSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RTdWl0ZSBvYmplY3QKK3ZvaWQgSnNvblVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVGVzdFN1aXRlKAorICAgIHN0ZDo6b3N0cmVh
bSogc3RyZWFtLCBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIHsKICAgY29uc3Qgc3RkOjpz
dHJpbmcga1Rlc3RzdWl0ZSA9ICJ0ZXN0c3VpdGUiOwogICBjb25zdCBzdGQ6OnN0cmluZyBrSW5k
ZW50ID0gSW5kZW50KDYpOwogCiAgICpzdHJlYW0gPDwgSW5kZW50KDQpIDw8ICJ7XG4iOwotICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2Nhc2UubmFtZSgp
LCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIs
IHRlc3RfY2FzZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSwKKyAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0c3VpdGUsICJuYW1lIiwgdGVzdF9zdWl0ZS5uYW1lKCksIGtJbmRlbnQpOworICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwgdGVzdF9zdWl0ZS5yZXBv
cnRhYmxlX3Rlc3RfY291bnQoKSwKICAgICAgICAgICAgICAgICBrSW5kZW50KTsKICAgaWYgKCFH
VEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0
c3VpdGUsICJmYWlsdXJlcyIsIHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpLAotICAgICAg
ICAgICAgICAgICAga0luZGVudCk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3Vp
dGUsICJmYWlsdXJlcyIsCisgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0
X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRl
LCAiZGlzYWJsZWQiLAotICAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLnJlcG9ydGFibGVfZGlz
YWJsZWRfdGVzdF9jb3VudCgpLCBrSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgIHRlc3Rfc3Vp
dGUucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1
dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgMCwga0luZGVudCk7CisgICAg
T3V0cHV0SnNvbktleSgKKyAgICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZXN0YW1wIiwK
KyAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc1JGQzMzMzkodGVzdF9zdWl0ZS5zdGFy
dF90aW1lc3RhbXAoKSksCisgICAgICAgIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3Ry
ZWFtLCBrVGVzdHN1aXRlLCAidGltZSIsCi0gICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5N
aWxsaXNBc0R1cmF0aW9uKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAgICAg
ICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9uKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1l
KCkpLAogICAgICAgICAgICAgICAgICAga0luZGVudCwgZmFsc2UpOwotICAgICpzdHJlYW0gPDwg
VGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrSW5k
ZW50KQorICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9zdWl0ZS5hZF9o
b2NfdGVzdF9yZXN1bHQoKSwga0luZGVudCkKICAgICAgICAgICAgIDw8ICIsXG4iOwogICB9CiAK
ICAgKnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZSA8PCAiXCI6IFtcbiI7
CiAKICAgYm9vbCBjb21tYSA9IGZhbHNlOwotICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2Fz
ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgIGlmICh0ZXN0X2Nhc2UuR2V0VGVzdElu
Zm8oaSktPmlzX3JlcG9ydGFibGUoKSkgeworICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3Rfc3Vp
dGUudG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKKyAgICBpZiAodGVzdF9zdWl0ZS5HZXRUZXN0
SW5mbyhpKS0+aXNfcmVwb3J0YWJsZSgpKSB7CiAgICAgICBpZiAoY29tbWEpIHsKICAgICAgICAg
KnN0cmVhbSA8PCAiLFxuIjsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbW1hID0gdHJ1ZTsK
ICAgICAgIH0KLSAgICAgIE91dHB1dEpzb25UZXN0SW5mbyhzdHJlYW0sIHRlc3RfY2FzZS5uYW1l
KCksICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSkpOworICAgICAgT3V0cHV0SnNvblRlc3RJbmZv
KHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGkpKTsK
ICAgICB9CiAgIH0KICAgKnN0cmVhbSA8PCAiXG4iIDw8IGtJbmRlbnQgPDwgIl1cbiIgPDwgSW5k
ZW50KDQpIDw8ICJ9IjsKQEAgLTQxODEsMzkgKzQ3OTksNDUgQEAgdm9pZCBKc29uVW5pdFRlc3RS
ZXN1bHRQcmludGVyOjpQcmludEpzb25Vbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAg
KnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZXMgPDwgIlwiOiBbXG4iOwog
CiAgIGJvb2wgY29tbWEgPSBmYWxzZTsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVz
dENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkgeworICBmb3IgKGludCBpID0g
MDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkgeworICAgIGlm
ICh1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDAp
IHsKICAgICAgIGlmIChjb21tYSkgewogICAgICAgICAqc3RyZWFtIDw8ICIsXG4iOwogICAgICAg
fSBlbHNlIHsKICAgICAgICAgY29tbWEgPSB0cnVlOwogICAgICAgfQotICAgICAgUHJpbnRKc29u
VGVzdENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgICAgIFByaW50
SnNvblRlc3RTdWl0ZShzdHJlYW0sICp1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpKTsKICAgICB9
CiAgIH0KIAorICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBvZiBvbmUg
b2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVudCkgaW5j
bHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVz
dWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRKc29uVGVzdFN1aXRlRm9yVGVzdFJlc3VsdChz
dHJlYW0sIHVuaXRfdGVzdC5hZF9ob2NfdGVzdF9yZXN1bHQoKSk7CisgIH0KKwogICAqc3RyZWFt
IDw8ICJcbiIgPDwga0luZGVudCA8PCAiXVxuIiA8PCAifVxuIjsKIH0KIAogdm9pZCBKc29uVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpQcmludEpzb25UZXN0TGlzdCgKLSAgICBzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNlcykgeworICAg
IHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVz
dF9zdWl0ZXMpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZXMgPSAidGVzdHN1aXRl
cyI7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQgPSBJbmRlbnQoMik7CiAgICpzdHJlYW0g
PDwgIntcbiI7CiAgIGludCB0b3RhbF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdGVzdF9jYXNlcy5zaXplKCk7ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2Fz
ZXNbaV0tPnRvdGFsX3Rlc3RfY291bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0
X3N1aXRlcykgeworICAgIHRvdGFsX3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291
bnQoKTsKICAgfQogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0ZXN0cyIs
IHRvdGFsX3Rlc3RzLCBrSW5kZW50KTsKIAogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3Rz
dWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIiwga0luZGVudCk7CiAgICpzdHJlYW0gPDwga0luZGVu
dCA8PCAiXCIiIDw8IGtUZXN0c3VpdGVzIDw8ICJcIjogW1xuIjsKIAotICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kpIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0ZXN0X3N1aXRlcy5zaXplKCk7ICsraSkgewogICAgIGlmIChpICE9IDApIHsKICAgICAg
ICpzdHJlYW0gPDwgIixcbiI7CiAgICAgfQotICAgIFByaW50SnNvblRlc3RDYXNlKHN0cmVhbSwg
KnRlc3RfY2FzZXNbaV0pOworICAgIFByaW50SnNvblRlc3RTdWl0ZShzdHJlYW0sICp0ZXN0X3N1
aXRlc1tpXSk7CiAgIH0KIAogICAqc3RyZWFtIDw8ICJcbiIKQEAgLTQyNjksNyArNDg5Myw3IEBA
IHZvaWQgU3RyZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7
CiAgIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwogICBoaW50cy5haV9mYW1pbHkg
PSBBRl9VTlNQRUM7ICAgIC8vIFRvIGFsbG93IGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMu
CiAgIGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0gIGFkZHJpbmZvKiBzZXJ2aW5m
byA9IE5VTEw7CisgIGFkZHJpbmZvKiBzZXJ2aW5mbyA9IG51bGxwdHI7CiAKICAgLy8gVXNlIHRo
ZSBnZXRhZGRyaW5mbygpIHRvIGdldCBhIGxpbmtlZCBsaXN0IG9mIElQIGFkZHJlc3NlcyBmb3IK
ICAgLy8gdGhlIGdpdmVuIGhvc3QgbmFtZS4KQEAgLTQyODEsNyArNDkwNSw3IEBAIHZvaWQgU3Ry
ZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7CiAgIH0KIAog
ICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSByZXN1bHRzIGFuZCBjb25uZWN0IHRvIHRoZSBmaXJz
dCB3ZSBjYW4uCi0gIGZvciAoYWRkcmluZm8qIGN1cl9hZGRyID0gc2VydmluZm87IHNvY2tmZF8g
PT0gLTEgJiYgY3VyX2FkZHIgIT0gTlVMTDsKKyAgZm9yIChhZGRyaW5mbyogY3VyX2FkZHIgPSBz
ZXJ2aW5mbzsgc29ja2ZkXyA9PSAtMSAmJiBjdXJfYWRkciAhPSBudWxscHRyOwogICAgICAgIGN1
cl9hZGRyID0gY3VyX2FkZHItPmFpX25leHQpIHsKICAgICBzb2NrZmRfID0gc29ja2V0KAogICAg
ICAgICBjdXJfYWRkci0+YWlfZmFtaWx5LCBjdXJfYWRkci0+YWlfc29ja3R5cGUsIGN1cl9hZGRy
LT5haV9wcm90b2NvbCk7CkBAIC00MzkxLDYgKzUwMTUsNyBAQCBjbGFzcyBTY29wZWRQcmVtYXR1
cmVFeGl0RmlsZSB7CiAgIH0KIAogICB+U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUoKSB7CisjaWYg
IWRlZmluZWQgR1RFU1RfT1NfRVNQODI2NgogICAgIGlmICghcHJlbWF0dXJlX2V4aXRfZmlsZXBh
dGhfLmVtcHR5KCkpIHsKICAgICAgIGludCByZXR2YWwgPSByZW1vdmUocHJlbWF0dXJlX2V4aXRf
ZmlsZXBhdGhfLmNfc3RyKCkpOwogICAgICAgaWYgKHJldHZhbCkgewpAQCAtNDM5OSw2ICs1MDI0
LDcgQEAgY2xhc3MgU2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCByZXR2YWw7CiAgICAgICB9CiAgICAgfQorI2VuZGlmCiAgIH0KIAogIHByaXZh
dGU6CkBAIC00NDEzLDkgKzUwMzksOCBAQCBjbGFzcyBTY29wZWRQcmVtYXR1cmVFeGl0RmlsZSB7
CiAKIFRlc3RFdmVudExpc3RlbmVyczo6VGVzdEV2ZW50TGlzdGVuZXJzKCkKICAgICA6IHJlcGVh
dGVyXyhuZXcgaW50ZXJuYWw6OlRlc3RFdmVudFJlcGVhdGVyKCkpLAotICAgICAgZGVmYXVsdF9y
ZXN1bHRfcHJpbnRlcl8oTlVMTCksCi0gICAgICBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKE5VTEwp
IHsKLX0KKyAgICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfKG51bGxwdHIpLAorICAgICAgZGVm
YXVsdF94bWxfZ2VuZXJhdG9yXyhudWxscHRyKSB7fQogCiBUZXN0RXZlbnRMaXN0ZW5lcnM6On5U
ZXN0RXZlbnRMaXN0ZW5lcnMoKSB7IGRlbGV0ZSByZXBlYXRlcl87IH0KIApAQCAtNDQzMiw5ICs1
MDU3LDkgQEAgdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OkFwcGVuZChUZXN0RXZlbnRMaXN0ZW5l
ciogbGlzdGVuZXIpIHsKIC8vIE5VTEwgaWYgdGhlIGxpc3RlbmVyIGlzIG5vdCBmb3VuZCBpbiB0
aGUgbGlzdC4KIFRlc3RFdmVudExpc3RlbmVyKiBUZXN0RXZlbnRMaXN0ZW5lcnM6OlJlbGVhc2Uo
VGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7CiAgIGlmIChsaXN0ZW5lciA9PSBkZWZhdWx0
X3Jlc3VsdF9wcmludGVyXykKLSAgICBkZWZhdWx0X3Jlc3VsdF9wcmludGVyXyA9IE5VTEw7Cisg
ICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBudWxscHRyOwogICBlbHNlIGlmIChsaXN0ZW5l
ciA9PSBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKQotICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8g
PSBOVUxMOworICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBudWxscHRyOwogICByZXR1cm4g
cmVwZWF0ZXJfLT5SZWxlYXNlKGxpc3RlbmVyKTsKIH0KIApAQCAtNDQ1Myw4ICs1MDc4LDcgQEAg
dm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKFRlc3RFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2Uo
ZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8pOwogICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfID0g
bGlzdGVuZXI7Ci0gICAgaWYgKGxpc3RlbmVyICE9IE5VTEwpCi0gICAgICBBcHBlbmQobGlzdGVu
ZXIpOworICAgIGlmIChsaXN0ZW5lciAhPSBudWxscHRyKSBBcHBlbmQobGlzdGVuZXIpOwogICB9
CiB9CiAKQEAgLTQ0NjksOCArNTA5Myw3IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTZXRE
ZWZhdWx0WG1sR2VuZXJhdG9yKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8v
IGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyk7CiAgICAg
ZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyA9IGxpc3RlbmVyOwotICAgIGlmIChsaXN0ZW5lciAhPSBO
VUxMKQotICAgICAgQXBwZW5kKGxpc3RlbmVyKTsKKyAgICBpZiAobGlzdGVuZXIgIT0gbnVsbHB0
cikgQXBwZW5kKGxpc3RlbmVyKTsKICAgfQogfQogCkBAIC00NDk0LDUyICs1MTE3LDY2IEBAIHZv
aWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTdXBwcmVzc0V2ZW50Rm9yd2FyZGluZygpIHsKIC8vIGNh
bGwgdGhpcyBiZWZvcmUgbWFpbigpIHN0YXJ0cywgZnJvbSB3aGljaCBwb2ludCBvbiB0aGUgcmV0
dXJuCiAvLyB2YWx1ZSB3aWxsIG5ldmVyIGNoYW5nZS4KIFVuaXRUZXN0KiBVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKSB7Ci0gIC8vIFdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDIDcuMSBpbiBvcHRpbWl6
ZWQgbW9kZSwgZGVzdHJveWluZyB0aGUKLSAgLy8gVW5pdFRlc3Qgb2JqZWN0IHVwb24gZXhpdGlu
ZyB0aGUgcHJvZ3JhbSBtZXNzZXMgdXAgdGhlIGV4aXQgY29kZSwKLSAgLy8gY2F1c2luZyBzdWNj
ZXNzZnVsIHRlc3RzIHRvIGFwcGVhciBmYWlsZWQuICBXZSBoYXZlIHRvIHVzZSBhCi0gIC8vIGRp
ZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIGNhc2UgdG8gYnlwYXNzIHRoZSBjb21waWxl
ciBidWcuCi0gIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gbWFrZXMgdGhlIGNvbXBpbGVyIGhhcHB5
LCBhdCB0aGUgY29zdCBvZgotICAvLyBsZWFraW5nIHRoZSBVbml0VGVzdCBvYmplY3QuCi0KICAg
Ly8gQ29kZUdlYXIgQysrQnVpbGRlciBpbnNpc3RzIG9uIGEgcHVibGljIGRlc3RydWN0b3IgZm9y
IHRoZQogICAvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiAgVXNlIHRoaXMgaW1wbGVtZW50YXRp
b24gdG8ga2VlcCBnb29kIE9PCiAgIC8vIGRlc2lnbiB3aXRoIHByaXZhdGUgZGVzdHJ1Y3Rvci4K
IAotI2lmIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmluZWQo
X19CT1JMQU5EQ19fKQorI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKQogICBzdGF0aWMgVW5pdFRl
c3QqIGNvbnN0IGluc3RhbmNlID0gbmV3IFVuaXRUZXN0OwogICByZXR1cm4gaW5zdGFuY2U7CiAj
ZWxzZQogICBzdGF0aWMgVW5pdFRlc3QgaW5zdGFuY2U7CiAgIHJldHVybiAmaW5zdGFuY2U7Ci0j
ZW5kaWYgIC8vIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmlu
ZWQoX19CT1JMQU5EQ19fKQorI2VuZGlmICAvLyBkZWZpbmVkKF9fQk9STEFORENfXykKIH0KIAot
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVz
dDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCkt
PnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3Vj
Y2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdDo6c3VjY2Vzc2Z1bF90ZXN0X3N1aXRl
X2NvdW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgpLT5zdWNjZXNzZnVsX3Rlc3Rfc3VpdGVf
Y291bnQoKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IGNhc2VzLgot
aW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4g
aW1wbCgpLT5mYWlsZWRfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
ZmFpbGVkIHRlc3Qgc3VpdGVzLgoraW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9zdWl0ZV9jb3Vu
dCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKTsK
IH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0
Ojp0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCktPnRvdGFs
X3Rlc3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRl
cy4KK2ludCBVbml0VGVzdDo6dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0
dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogfQogCi0vLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3QgY2FzZXMgdGhhdCBjb250YWluIGF0IGxlYXN0IG9uZSB0ZXN0Cisv
LyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFz
dCBvbmUgdGVzdAogLy8gdGhhdCBzaG91bGQgcnVuLgoraW50IFVuaXRUZXN0Ojp0ZXN0X3N1aXRl
X3RvX3J1bl9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dGVzdF9zdWl0ZV90b19y
dW5fY291bnQoKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworaW50
IFVuaXRUZXN0OjpzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJu
IGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6
OmZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPmZhaWxl
ZF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6OnRvdGFsX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
OworfQogaW50IFVuaXRUZXN0Ojp0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3QgewotICBy
ZXR1cm4gaW1wbCgpLT50ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCk7CisgIHJldHVybiBpbXBsKCkt
PnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCk7CiB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwg
dGVzdHMuCiBpbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAg
cmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCk7CiB9CiAKKy8vIEdldHMgdGhl
IG51bWJlciBvZiBza2lwcGVkIHRlc3RzLgoraW50IFVuaXRUZXN0Ojpza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnNraXBwZWRfdGVzdF9jb3VudCgpOworfQor
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogaW50IFVuaXRUZXN0OjpmYWls
ZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3RfY291bnQo
KTsgfQogCkBAIC00NTc1LDI5ICs1MjEyLDM3IEBAIGludGVybmFsOjpUaW1lSW5NaWxsaXMgVW5p
dFRlc3Q6OmVsYXBzZWRfdGltZSgpIGNvbnN0IHsKICAgcmV0dXJuIGltcGwoKS0+ZWxhcHNlZF90
aW1lKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBwYXNzZWQgKGku
ZS4gYWxsIHRlc3QgY2FzZXMgcGFzc2VkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKy8vIHBhc3NlZCku
CiBib29sIFVuaXRUZXN0OjpQYXNzZWQoKSBjb25zdCB7IHJldHVybiBpbXBsKCktPlBhc3NlZCgp
OyB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBmYWlsZWQgKGkuZS4gc29t
ZSB0ZXN0IGNhc2UgZmFpbGVkCi0vLyBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMg
ZmFpbGVkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IGZh
aWxlZCAoaS5lLiBzb21lIHRlc3Qgc3VpdGUKKy8vIGZhaWxlZCBvciBzb21ldGhpbmcgb3V0c2lk
ZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KIGJvb2wgVW5pdFRlc3Q6OkZhaWxlZCgpIGNvbnN0IHsg
cmV0dXJuIGltcGwoKS0+RmFpbGVkKCk7IH0KIAotLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2Ug
YW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLS8vIHRvdGFs
X3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJu
cyBOVUxMLgorLy8gR2V0cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBz
dWl0ZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bworLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
IC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorY29uc3QgVGVz
dFN1aXRlKiBVbml0VGVzdDo6R2V0VGVzdFN1aXRlKGludCBpKSBjb25zdCB7CisgIHJldHVybiBp
bXBsKCktPkdldFRlc3RTdWl0ZShpKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRl
ZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwogY29uc3QgVGVzdENhc2UqIFVuaXRUZXN0OjpHZXRUZXN0Q2FzZShpbnQgaSkgY29u
c3QgewogICByZXR1cm4gaW1wbCgpLT5HZXRUZXN0Q2FzZShpKTsKIH0KKyNlbmRpZiAgLy8gIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBSZXR1cm5zIHRoZSBUZXN0UmVz
dWx0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVzdCBmYWlsdXJlcyBhbmQKLS8vIHByb3Bl
cnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzLgorLy8gcHJvcGVy
dGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRlc3Qgc3VpdGVzLgogY29uc3QgVGVz
dFJlc3VsdCYgVW5pdFRlc3Q6OmFkX2hvY190ZXN0X3Jlc3VsdCgpIGNvbnN0IHsKICAgcmV0dXJu
ICppbXBsKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwogfQogCi0vLyBHZXRzIHRoZSBpLXRoIHRl
c3QgY2FzZSBhbW9uZyBhbGwgdGhlIHRlc3QgY2FzZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwot
Ly8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdl
LCByZXR1cm5zIE5VTEwuCi1UZXN0Q2FzZSogVW5pdFRlc3Q6OkdldE11dGFibGVUZXN0Q2FzZShp
bnQgaSkgewotICByZXR1cm4gaW1wbCgpLT5HZXRNdXRhYmxlVGVzdENhc2UoaSk7CisvLyBHZXRz
IHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFu
Z2UgZnJvbSAwIHRvCisvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5v
dCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCitUZXN0U3VpdGUqIFVuaXRUZXN0OjpHZXRN
dXRhYmxlVGVzdFN1aXRlKGludCBpKSB7CisgIHJldHVybiBpbXBsKCktPkdldE11dGFibGVTdWl0
ZUNhc2UoaSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGxpc3Qgb2YgZXZlbnQgbGlzdGVuZXJzIHRo
YXQgY2FuIGJlIHVzZWQgdG8gdHJhY2sgZXZlbnRzCkBAIC00NjE3LDggKzUyNjIsOCBAQCBUZXN0
RXZlbnRMaXN0ZW5lcnMmIFVuaXRUZXN0OjpsaXN0ZW5lcnMoKSB7CiAvLyBXZSBkb24ndCBwcm90
ZWN0IHRoaXMgdW5kZXIgbXV0ZXhfLCBhcyB3ZSBvbmx5IHN1cHBvcnQgY2FsbGluZyBpdAogLy8g
ZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBFbnZpcm9ubWVudCogVW5pdFRlc3Q6OkFkZEVudmlyb25t
ZW50KEVudmlyb25tZW50KiBlbnYpIHsKLSAgaWYgKGVudiA9PSBOVUxMKSB7Ci0gICAgcmV0dXJu
IE5VTEw7CisgIGlmIChlbnYgPT0gbnVsbHB0cikgeworICAgIHJldHVybiBudWxscHRyOwogICB9
CiAKICAgaW1wbF8tPmVudmlyb25tZW50cygpLnB1c2hfYmFjayhlbnYpOwpAQCAtNDY0MiwyNSAr
NTI4NywyNCBAQCB2b2lkIFVuaXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKICAgaWYgKGltcGxf
LT5ndGVzdF90cmFjZV9zdGFjaygpLnNpemUoKSA+IDApIHsKICAgICBtc2cgPDwgIlxuIiA8PCBH
VEVTVF9OQU1FXyA8PCAiIHRyYWNlOiI7CiAKLSAgICBmb3IgKGludCBpID0gc3RhdGljX2Nhc3Q8
aW50PihpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXplKCkpOwotICAgICAgICAgaSA+IDA7
IC0taSkgeworICAgIGZvciAoc2l6ZV90IGkgPSBpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5z
aXplKCk7IGkgPiAwOyAtLWkpIHsKICAgICAgIGNvbnN0IGludGVybmFsOjpUcmFjZUluZm8mIHRy
YWNlID0gaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKClbaSAtIDFdOwogICAgICAgbXNnIDw8ICJc
biIgPDwgaW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlvbih0cmFjZS5maWxlLCB0cmFjZS5saW5l
KQogICAgICAgICAgIDw8ICIgIiA8PCB0cmFjZS5tZXNzYWdlOwogICAgIH0KICAgfQogCi0gIGlm
IChvc19zdGFja190cmFjZS5jX3N0cigpICE9IE5VTEwgJiYgIW9zX3N0YWNrX3RyYWNlLmVtcHR5
KCkpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlLmNfc3RyKCkgIT0gbnVsbHB0ciAmJiAhb3Nfc3Rh
Y2tfdHJhY2UuZW1wdHkoKSkgewogICAgIG1zZyA8PCBpbnRlcm5hbDo6a1N0YWNrVHJhY2VNYXJr
ZXIgPDwgb3Nfc3RhY2tfdHJhY2U7CiAgIH0KIAotICBjb25zdCBUZXN0UGFydFJlc3VsdCByZXN1
bHQgPQotICAgIFRlc3RQYXJ0UmVzdWx0KHJlc3VsdF90eXBlLCBmaWxlX25hbWUsIGxpbmVfbnVt
YmVyLAotICAgICAgICAgICAgICAgICAgIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgY29u
c3QgVGVzdFBhcnRSZXN1bHQgcmVzdWx0ID0gVGVzdFBhcnRSZXN1bHQoCisgICAgICByZXN1bHRf
dHlwZSwgZmlsZV9uYW1lLCBsaW5lX251bWJlciwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwog
ICBpbXBsXy0+R2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoKS0+CiAg
ICAgICBSZXBvcnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwogCi0gIGlmIChyZXN1bHRfdHlwZSAh
PSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpIHsKKyAgaWYgKHJlc3VsdF90eXBlICE9IFRlc3RQ
YXJ0UmVzdWx0OjprU3VjY2VzcyAmJgorICAgICAgcmVzdWx0X3R5cGUgIT0gVGVzdFBhcnRSZXN1
bHQ6OmtTa2lwKSB7CiAgICAgLy8gZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSB0YWtlcyBwcmVjZWRl
bmNlIG92ZXIKICAgICAvLyBndGVzdF90aHJvd19vbl9mYWlsdXJlLiAgVGhpcyBhbGxvd3MgYSB1
c2VyIHRvIHNldCB0aGUgbGF0dGVyCiAgICAgLy8gaW4gdGhlIGNvZGUgKHBlcmhhcHMgaW4gb3Jk
ZXIgdG8gdXNlIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMKQEAgLTQ2NzgsMTEgKzUzMjIsMTAgQEAg
dm9pZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCiAgICAgICAvLyB3aXRoIGNsYW5nL2dj
YyB3ZSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgb24geDg2IGJ5IGludm9raW5nIGludDMK
ICAgICAgIGFzbSgiaW50MyIpOwogI2Vsc2UKLSAgICAgIC8vIERlcmVmZXJlbmNlIE5VTEwgdGhy
b3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVudCB0aGUgY29tcGlsZXIKKyAgICAgIC8v
IERlcmVmZXJlbmNlIG51bGxwdHIgdGhyb3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVu
dCB0aGUgY29tcGlsZXIKICAgICAgIC8vIGZyb20gcmVtb3ZpbmcuIFdlIHVzZSB0aGlzIHJhdGhl
ciB0aGFuIGFib3J0KCkgb3IgX19idWlsdGluX3RyYXAoKSBmb3IKLSAgICAgIC8vIHBvcnRhYmls
aXR5OiBTeW1iaWFuIGRvZXNuJ3QgaW1wbGVtZW50IGFib3J0KCkgd2VsbCwgYW5kIHNvbWUgZGVi
dWdnZXJzCi0gICAgICAvLyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgotICAgICAgKnN0
YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KE5VTEwpID0gMTsKKyAgICAgIC8vIHBvcnRhYmlsaXR5
OiBzb21lIGRlYnVnZ2VycyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgorICAgICAgKnN0
YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KG51bGxwdHIpID0gMTsKICNlbmRpZiAgLy8gR1RFU1Rf
T1NfV0lORE9XUwogICAgIH0gZWxzZSBpZiAoR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSkg
ewogI2lmIEdURVNUX0hBU19FWENFUFRJT05TCkBAIC00Njk3LDggKzUzNDAsOCBAQCB2b2lkIFVu
aXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKIH0KIAogLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0
byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJvbQotLy8gaW5z
aWRlIGEgdGVzdCwgdG8gY3VycmVudCBUZXN0Q2FzZSdzIGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hl
biBpbnZva2VkCi0vLyBmcm9tIFNldFVwVGVzdENhc2Ugb3IgVGVhckRvd25UZXN0Q2FzZSwgb3Ig
dG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKKy8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQg
VGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKKy8vIGZyb20gU2V0
VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVy
dHkgc2V0CiAvLyB3aGVuIGludm9rZWQgZWxzZXdoZXJlLiAgSWYgdGhlIHJlc3VsdCBhbHJlYWR5
IGNvbnRhaW5zIGEgcHJvcGVydHkgd2l0aAogLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2ls
bCBiZSB1cGRhdGVkLgogdm9pZCBVbml0VGVzdDo6UmVjb3JkUHJvcGVydHkoY29uc3Qgc3RkOjpz
dHJpbmcmIGtleSwKQEAgLTQ3MzcsOCArNTM4MCw5IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewog
ICAvLyB0aGF0IHVuZGVyc3RhbmRzIHRoZSBwcmVtYXR1cmUtZXhpdC1maWxlIHByb3RvY29sIHRv
IHJlcG9ydCB0aGUKICAgLy8gdGVzdCBhcyBoYXZpbmcgZmFpbGVkLgogICBjb25zdCBpbnRlcm5h
bDo6U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgcHJlbWF0dXJlX2V4aXRfZmlsZSgKLSAgICAgIGlu
X2RlYXRoX3Rlc3RfY2hpbGRfcHJvY2VzcyA/Ci0gICAgICBOVUxMIDogaW50ZXJuYWw6OnBvc2l4
OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKKyAgICAgIGluX2RlYXRoX3Rl
c3RfY2hpbGRfcHJvY2VzcworICAgICAgICAgID8gbnVsbHB0cgorICAgICAgICAgIDogaW50ZXJu
YWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKIAogICAvLyBD
YXB0dXJlcyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKS4gIFRoaXMg
dmFsdWUgd2lsbCBiZQogICAvLyB1c2VkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHByb2dyYW0u
CkBAIC00NzYzLDIyICs1NDA3LDI2IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewogICAgIF9zZXRf
ZXJyb3JfbW9kZShfT1VUX1RPX1NUREVSUik7CiAjIGVuZGlmCiAKLSMgaWYgX01TQ19WRVIgPj0g
MTQwMCAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKKyMgaWYgZGVmaW5lZChfTVNDX1ZFUikg
JiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAgICAgLy8gSW4gdGhlIGRlYnVnIHZlcnNpb24s
IFZpc3VhbCBTdHVkaW8gcG9wcyB1cCBhIHNlcGFyYXRlIGRpYWxvZwogICAgIC8vIG9mZmVyaW5n
IGEgY2hvaWNlIHRvIGRlYnVnIHRoZSBhYm9ydGVkIHByb2dyYW0uIFdlIG5lZWQgdG8gc3VwcHJl
c3MKICAgICAvLyB0aGlzIGRpYWxvZyBvciBpdCB3aWxsIHBvcCB1cCBmb3IgZXZlcnkgRVhQRUNU
L0FTU0VSVF9ERUFUSCBzdGF0ZW1lbnQKICAgICAvLyBleGVjdXRlZC4gR29vZ2xlIFRlc3Qgd2ls
bCBub3RpZnkgdGhlIHVzZXIgb2YgYW55IHVuZXhwZWN0ZWQKICAgICAvLyBmYWlsdXJlIHZpYSBz
dGRlcnIuCi0gICAgLy8KLSAgICAvLyBWQysrIGRvZXNuJ3QgZGVmaW5lIF9zZXRfYWJvcnRfYmVo
YXZpb3IoKSBwcmlvciB0byB0aGUgdmVyc2lvbiA4LjAuCi0gICAgLy8gVXNlcnMgb2YgcHJpb3Ig
VkMgdmVyc2lvbnMgc2hhbGwgc3VmZmVyIHRoZSBhZ29ueSBhbmQgcGFpbiBvZgotICAgIC8vIGNs
aWNraW5nIHRocm91Z2ggdGhlIGNvdW50bGVzcyBkZWJ1ZyBkaWFsb2dzLgotICAgIC8vIEZJWE1F
OiBmaW5kIGEgd2F5IHRvIHN1cHByZXNzIHRoZSBhYm9ydCBkaWFsb2coKSBpbiB0aGUKLSAgICAv
LyBkZWJ1ZyBtb2RlIHdoZW4gY29tcGlsZWQgd2l0aCBWQyA3LjEgb3IgbG93ZXIuCiAgICAgaWYg
KCFHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKQogICAgICAgX3NldF9hYm9ydF9iZWhhdmlv
cigKICAgICAgICAgICAweDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
Q2xlYXIgdGhlIGZvbGxvd2luZyBmbGFnczoKICAgICAgICAgICBfV1JJVEVfQUJPUlRfTVNHIHwg
X0NBTExfUkVQT1JURkFVTFQpOyAgLy8gcG9wLXVwIHdpbmRvdywgY29yZSBkdW1wLgorCisgICAg
Ly8gSW4gZGVidWcgbW9kZSwgdGhlIFdpbmRvd3MgQ1JUIGNhbiBjcmFzaCB3aXRoIGFuIGFzc2Vy
dGlvbiBvdmVyIGludmFsaWQKKyAgICAvLyBpbnB1dCAoZS5nLiBwYXNzaW5nIGFuIGludmFsaWQg
ZmlsZSBkZXNjcmlwdG9yKS4gIFRoZSBkZWZhdWx0IGhhbmRsaW5nCisgICAgLy8gZm9yIHRoZXNl
IGFzc2VydGlvbnMgaXMgdG8gcG9wIHVwIGEgZGlhbG9nIGFuZCB3YWl0IGZvciB1c2VyIGlucHV0
LgorICAgIC8vIEluc3RlYWQgYXNrIHRoZSBDUlQgdG8gZHVtcCBzdWNoIGFzc2VydGlvbnMgdG8g
c3RkZXJyIG5vbi1pbnRlcmFjdGl2ZWx5LgorICAgIGlmICghSXNEZWJ1Z2dlclByZXNlbnQoKSkg
eworICAgICAgKHZvaWQpX0NydFNldFJlcG9ydE1vZGUoX0NSVF9BU1NFUlQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfQ1JUREJHX01PREVfRklMRSB8IF9DUlREQkdfTU9ERV9ERUJV
Ryk7CisgICAgICAodm9pZClfQ3J0U2V0UmVwb3J0RmlsZShfQ1JUX0FTU0VSVCwgX0NSVERCR19G
SUxFX1NUREVSUik7CisgICAgfQogIyBlbmRpZgogICB9CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJ
TkRPV1MKQEAgLTQ3OTUsMTMgKzU0NDMsMjIgQEAgY29uc3QgY2hhciogVW5pdFRlc3Q6Om9yaWdp
bmFsX3dvcmtpbmdfZGlyKCkgY29uc3QgewogICByZXR1cm4gaW1wbF8tPm9yaWdpbmFsX3dvcmtp
bmdfZGlyXy5jX3N0cigpOwogfQogCi0vLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9y
IHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKy8vIFJldHVybnMgdGhlIFRlc3RT
dWl0ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKIC8vIG9y
IE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgorY29uc3QgVGVzdFN1aXRlKiBVbml0VGVzdDo6
Y3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QKKyAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRl
eF8pIHsKKyAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2NrKCZtdXRleF8pOworICByZXR1cm4gaW1w
bF8tPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworfQorCisvLyBMZWdhY3kgQVBJIGlzIHN0aWxsIGF2
YWlsYWJsZSBidXQgZGVwcmVjYXRlZAorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KIGNvbnN0IFRlc3RDYXNlKiBVbml0VGVzdDo6Y3VycmVudF90ZXN0X2Nhc2UoKSBj
b25zdAogICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgewogICBpbnRlcm5hbDo6TXV0
ZXhMb2NrIGxvY2soJm11dGV4Xyk7Ci0gIHJldHVybiBpbXBsXy0+Y3VycmVudF90ZXN0X2Nhc2Uo
KTsKKyAgcmV0dXJuIGltcGxfLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKIH0KKyNlbmRpZgogCiAv
LyBSZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50
bHkgcnVubmluZywKIC8vIG9yIE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgpAQCAtNDgxNCwx
MSArNTQ3MSwxMCBAQCBjb25zdCBUZXN0SW5mbyogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9pbmZv
KCkgY29uc3QKIC8vIFJldHVybnMgdGhlIHJhbmRvbSBzZWVkIHVzZWQgYXQgdGhlIHN0YXJ0IG9m
IHRoZSBjdXJyZW50IHRlc3QgcnVuLgogaW50IFVuaXRUZXN0OjpyYW5kb21fc2VlZCgpIGNvbnN0
IHsgcmV0dXJuIGltcGxfLT5yYW5kb21fc2VlZCgpOyB9CiAKLS8vIFJldHVybnMgUGFyYW1ldGVy
aXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorLy8gUmV0
dXJucyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0
cmFjayBvZgogLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5k
IHJlZ2lzdGVyIHRoZW0uCi1pbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkm
Ci0gICAgVW5pdFRlc3Q6OnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCi0gICAgICAgIEdU
RVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgeworaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVSZWdpc3RyeSYKK1VuaXRUZXN0OjpwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSBH
VEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKICAgcmV0dXJuIGltcGxfLT5wYXJhbWV0ZXJp
emVkX3Rlc3RfcmVnaXN0cnkoKTsKIH0KIApAQCAtNDg1MiwyMyArNTUwOCwyMiBAQCBuYW1lc3Bh
Y2UgaW50ZXJuYWwgewogVW5pdFRlc3RJbXBsOjpVbml0VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVu
dCkKICAgICA6IHBhcmVudF8ocGFyZW50KSwKICAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BVU0hfKDQzNTUgLyogdXNpbmcgdGhpcyBpbiBpbml0aWFsaXplciAqLykKLSAgICAgIGRl
ZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAorICAgICAgICAg
IGRlZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAogICAgICAg
ZGVmYXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAg
ICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0gICAgICBnbG9iYWxfdGVzdF9w
YXJ0X3Jlc3VsdF9yZXBvdGVyXygKKyAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BP
UF8oKSBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvdGVyXygKICAgICAgICAgICAmZGVmYXVs
dF9nbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRlcl8pLAogICAgICAgcGVyX3RocmVhZF90
ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXygKICAgICAgICAgICAmZGVmYXVsdF9wZXJfdGhyZWFk
X3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9y
ZWdpc3RyeV8oKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8oZmFsc2Up
LAotICAgICAgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfKC0xKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9j
YXNlXyhOVUxMKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhOVUxMKSwKKyAgICAgIGxhc3Rf
ZGVhdGhfdGVzdF9zdWl0ZV8oLTEpLAorICAgICAgY3VycmVudF90ZXN0X3N1aXRlXyhudWxscHRy
KSwKKyAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhudWxscHRyKSwKICAgICAgIGFkX2hvY190ZXN0
X3Jlc3VsdF8oKSwKLSAgICAgIG9zX3N0YWNrX3RyYWNlX2dldHRlcl8oTlVMTCksCisgICAgICBv
c19zdGFja190cmFjZV9nZXR0ZXJfKG51bGxwdHIpLAogICAgICAgcG9zdF9mbGFnX3BhcnNlX2lu
aXRfcGVyZm9ybWVkXyhmYWxzZSksCiAgICAgICByYW5kb21fc2VlZF8oMCksICAvLyBXaWxsIGJl
IG92ZXJyaWRkZW4gYnkgdGhlIGZsYWcgYmVmb3JlIGZpcnN0IHVzZS4KLSAgICAgIHJhbmRvbV8o
MCksICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCisgICAgICByYW5kb21f
KDApLCAgICAgICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCiAgICAgICBz
dGFydF90aW1lc3RhbXBfKDApLAogICAgICAgZWxhcHNlZF90aW1lXygwKSwKICNpZiBHVEVTVF9I
QVNfREVBVEhfVEVTVApAQCAtNDg4MCw4ICs1NTM1LDggQEAgVW5pdFRlc3RJbXBsOjpVbml0VGVz
dEltcGwoVW5pdFRlc3QqIHBhcmVudCkKIH0KIAogVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBs
KCkgewotICAvLyBEZWxldGVzIGV2ZXJ5IFRlc3RDYXNlLgotICBGb3JFYWNoKHRlc3RfY2FzZXNf
LCBpbnRlcm5hbDo6RGVsZXRlPFRlc3RDYXNlPik7CisgIC8vIERlbGV0ZXMgZXZlcnkgVGVzdFN1
aXRlLgorICBGb3JFYWNoKHRlc3Rfc3VpdGVzXywgaW50ZXJuYWw6OkRlbGV0ZTxUZXN0U3VpdGU+
KTsKIAogICAvLyBEZWxldGVzIGV2ZXJ5IEVudmlyb25tZW50LgogICBGb3JFYWNoKGVudmlyb25t
ZW50c18sIGludGVybmFsOjpEZWxldGU8RW52aXJvbm1lbnQ+KTsKQEAgLTQ4OTAsMjAgKzU1NDUs
MjAgQEAgVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBsKCkgewogfQogCiAvLyBBZGRzIGEgVGVz
dFByb3BlcnR5IHRvIHRoZSBjdXJyZW50IFRlc3RSZXN1bHQgb2JqZWN0IHdoZW4gaW52b2tlZCBp
biBhCi0vLyBjb250ZXh0IG9mIGEgdGVzdCwgdG8gY3VycmVudCB0ZXN0IGNhc2UncyBhZF9ob2Nf
dGVzdF9yZXN1bHQgd2hlbiBpbnZva2UKLS8vIGZyb20gU2V0VXBUZXN0Q2FzZS9UZWFyRG93blRl
c3RDYXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldAorLy8gY29udGV4dCBvZiBhIHRl
c3QsIHRvIGN1cnJlbnQgdGVzdCBzdWl0ZSdzIGFkX2hvY190ZXN0X3Jlc3VsdCB3aGVuIGludm9r
ZQorLy8gZnJvbSBTZXRVcFRlc3RTdWl0ZS9UZWFyRG93blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGds
b2JhbCBwcm9wZXJ0eSBzZXQKIC8vIG90aGVyd2lzZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBj
b250YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUga2V5LAogLy8gdGhlIHZhbHVlIHdpbGwg
YmUgdXBkYXRlZC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpSZWNvcmRQcm9wZXJ0eShjb25zdCBUZXN0
UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIHsKICAgc3RkOjpzdHJpbmcgeG1sX2VsZW1lbnQ7CiAg
IFRlc3RSZXN1bHQqIHRlc3RfcmVzdWx0OyAgLy8gVGVzdFJlc3VsdCBhcHByb3ByaWF0ZSBmb3Ig
cHJvcGVydHkgcmVjb3JkaW5nLgogCi0gIGlmIChjdXJyZW50X3Rlc3RfaW5mb18gIT0gTlVMTCkg
eworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxlbWVu
dCA9ICJ0ZXN0Y2FzZSI7CiAgICAgdGVzdF9yZXN1bHQgPSAmKGN1cnJlbnRfdGVzdF9pbmZvXy0+
cmVzdWx0Xyk7Ci0gIH0gZWxzZSBpZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKKyAg
fSBlbHNlIGlmIChjdXJyZW50X3Rlc3Rfc3VpdGVfICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxl
bWVudCA9ICJ0ZXN0c3VpdGUiOwotICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3RfY2Fz
ZV8tPmFkX2hvY190ZXN0X3Jlc3VsdF8pOworICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rl
c3Rfc3VpdGVfLT5hZF9ob2NfdGVzdF9yZXN1bHRfKTsKICAgfSBlbHNlIHsKICAgICB4bWxfZWxl
bWVudCA9ICJ0ZXN0c3VpdGVzIjsKICAgICB0ZXN0X3Jlc3VsdCA9ICZhZF9ob2NfdGVzdF9yZXN1
bHRfOwpAQCAtNDkxNSw3ICs1NTcwLDcgQEAgdm9pZCBVbml0VGVzdEltcGw6OlJlY29yZFByb3Bl
cnR5KGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSkgewogLy8gRGlzYWJsZXMgZXZl
bnQgZm9yd2FyZGluZyBpZiB0aGUgY29udHJvbCBpcyBjdXJyZW50bHkgaW4gYSBkZWF0aCB0ZXN0
CiAvLyBzdWJwcm9jZXNzLiBNdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIEluaXRHb29nbGVUZXN0
Lgogdm9pZCBVbml0VGVzdEltcGw6OlN1cHByZXNzVGVzdEV2ZW50c0lmSW5TdWJwcm9jZXNzKCkg
ewotICBpZiAoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ18uZ2V0KCkgIT0gTlVMTCkKKyAg
aWYgKGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IG51bGxwdHIpCiAgICAg
bGlzdGVuZXJzKCktPlN1cHByZXNzRXZlbnRGb3J3YXJkaW5nKCk7CiB9CiAjZW5kaWYgIC8vIEdU
RVNUX0hBU19ERUFUSF9URVNUCkBAIC00OTgzLDYgKzU2MzgsMTAgQEAgdm9pZCBVbml0VGVzdElt
cGw6OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7CiAgICAgLy8gdG8gc2h1dCBkb3duIHRoZSBkZWZh
dWx0IFhNTCBvdXRwdXQgYmVmb3JlIGludm9raW5nIFJVTl9BTExfVEVTVFMuCiAgICAgQ29uZmln
dXJlWG1sT3V0cHV0KCk7CiAKKyAgICBpZiAoR1RFU1RfRkxBRyhicmllZikpIHsKKyAgICAgIGxp
c3RlbmVycygpLT5TZXREZWZhdWx0UmVzdWx0UHJpbnRlcihuZXcgQnJpZWZVbml0VGVzdFJlc3Vs
dFByaW50ZXIpOworICAgIH0KKwogI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KICAgICAv
LyBDb25maWd1cmVzIGxpc3RlbmVycyBmb3Igc3RyZWFtaW5nIHRlc3QgcmVzdWx0cyB0byB0aGUg
c3BlY2lmaWVkIHNlcnZlci4KICAgICBDb25maWd1cmVTdHJlYW1pbmdPdXRwdXQoKTsKQEAgLTQ5
OTcsNzQgKzU2NTYsNzMgQEAgdm9pZCBVbml0VGVzdEltcGw6OlBvc3RGbGFnUGFyc2luZ0luaXQo
KSB7CiAgIH0KIH0KIAotLy8gQSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgdGhlIG5hbWUgb2YgYSBU
ZXN0Q2FzZSBhZ2FpbnN0IGEga25vd24KKy8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSBu
YW1lIG9mIGEgVGVzdFN1aXRlIGFnYWluc3QgYSBrbm93bgogLy8gdmFsdWUuCiAvLwogLy8gVGhp
cyBpcyB1c2VkIGZvciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pdFRlc3QgY2xhc3Mgb25seS4g
IFdlIHB1dAogLy8gaXQgaW4gdGhlIGFub255bW91cyBuYW1lc3BhY2UgdG8gcHJldmVudCBwb2xs
dXRpbmcgdGhlIG91dGVyCiAvLyBuYW1lc3BhY2UuCiAvLwotLy8gVGVzdENhc2VOYW1lSXMgaXMg
Y29weWFibGUuCi1jbGFzcyBUZXN0Q2FzZU5hbWVJcyB7CisvLyBUZXN0U3VpdGVOYW1lSXMgaXMg
Y29weWFibGUuCitjbGFzcyBUZXN0U3VpdGVOYW1lSXMgewogIHB1YmxpYzoKICAgLy8gQ29uc3Ry
dWN0b3IuCi0gIGV4cGxpY2l0IFRlc3RDYXNlTmFtZUlzKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1l
KQotICAgICAgOiBuYW1lXyhuYW1lKSB7fQorICBleHBsaWNpdCBUZXN0U3VpdGVOYW1lSXMoY29u
c3Qgc3RkOjpzdHJpbmcmIG5hbWUpIDogbmFtZV8obmFtZSkge30KIAotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBuYW1lIG9mIHRlc3RfY2FzZSBtYXRjaGVzIG5hbWVfLgotICBib29sIG9wZXJh
dG9yKCkoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgY29uc3QgewotICAgIHJldHVybiB0ZXN0
X2Nhc2UgIT0gTlVMTCAmJiBzdHJjbXAodGVzdF9jYXNlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkp
ID09IDA7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgbmFtZSBvZiB0ZXN0
X3N1aXRlIG1hdGNoZXMgbmFtZV8uCisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0U3VpdGUq
IHRlc3Rfc3VpdGUpIGNvbnN0IHsKKyAgICByZXR1cm4gdGVzdF9zdWl0ZSAhPSBudWxscHRyICYm
CisgICAgICAgICAgIHN0cmNtcCh0ZXN0X3N1aXRlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkpID09
IDA7CiAgIH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3RyaW5nIG5hbWVfOwogfTsKIAotLy8gRmlu
ZHMgYW5kIHJldHVybnMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRv
ZXNuJ3QKKy8vIEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5h
bWUuICBJZiBvbmUgZG9lc24ndAogLy8gZXhpc3QsIGNyZWF0ZXMgb25lIGFuZCByZXR1cm5zIGl0
LiAgSXQncyB0aGUgQ0FMTEVSJ1MKIC8vIFJFU1BPTlNJQklMSVRZIHRvIGVuc3VyZSB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgV0hFTiBUSEUKIC8vIFRFU1RTIEFSRSBOT1QgU0hV
RkZMRUQuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6IG5hbWUg
b2YgdGhlIHRlc3QgY2FzZQotLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRl
c3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCi0vLyAgICAgICAgICAgICAgICAg
ICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4K
LS8vICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1
cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICBwb2ludGVyIHRvIHRoZSBmdW5j
dGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVzdENhc2UqIFVuaXRUZXN0SW1w
bDo6R2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3Vw
X3RjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6VGVhckRvd25U
ZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKSB7Ci0gIC8vIENhbiB3ZSBmaW5kIGEgVGVzdENhc2Ug
d2l0aCB0aGUgZ2l2ZW4gbmFtZT8KLSAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPjo6Y29u
c3RfcmV2ZXJzZV9pdGVyYXRvciB0ZXN0X2Nhc2UgPQotICAgICAgc3RkOjpmaW5kX2lmKHRlc3Rf
Y2FzZXNfLnJiZWdpbigpLCB0ZXN0X2Nhc2VzXy5yZW5kKCksCi0gICAgICAgICAgICAgICAgICAg
VGVzdENhc2VOYW1lSXModGVzdF9jYXNlX25hbWUpKTsKLQotICBpZiAodGVzdF9jYXNlICE9IHRl
c3RfY2FzZXNfLnJlbmQoKSkKLSAgICByZXR1cm4gKnRlc3RfY2FzZTsKKy8vICAgdGVzdF9zdWl0
ZV9uYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHR5cGVfcGFyYW06ICAgICAgdGhl
IG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgorLy8g
ICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdCBzdWl0ZS4KKy8vICAgc2V0X3VwX3RjOiAgICAgICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKy8vICAgdGVhcl9kb3duX3RjOiAg
ICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUK
K1Rlc3RTdWl0ZSogVW5pdFRlc3RJbXBsOjpHZXRUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciog
dGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgIGludGVybmFsOjpT
ZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgIGludGVybmFsOjpUZWFyRG93blRlc3RT
dWl0ZUZ1bmMgdGVhcl9kb3duX3RjKSB7CisgIC8vIENhbiB3ZSBmaW5kIGEgVGVzdFN1aXRlIHdp
dGggdGhlIGdpdmVuIG5hbWU/CisgIGNvbnN0IGF1dG8gdGVzdF9zdWl0ZSA9CisgICAgICBzdGQ6
OmZpbmRfaWYodGVzdF9zdWl0ZXNfLnJiZWdpbigpLCB0ZXN0X3N1aXRlc18ucmVuZCgpLAorICAg
ICAgICAgICAgICAgICAgIFRlc3RTdWl0ZU5hbWVJcyh0ZXN0X3N1aXRlX25hbWUpKTsKKworICBp
ZiAodGVzdF9zdWl0ZSAhPSB0ZXN0X3N1aXRlc18ucmVuZCgpKSByZXR1cm4gKnRlc3Rfc3VpdGU7
CiAKICAgLy8gTm8uICBMZXQncyBjcmVhdGUgb25lLgotICBUZXN0Q2FzZSogY29uc3QgbmV3X3Rl
c3RfY2FzZSA9Ci0gICAgICBuZXcgVGVzdENhc2UodGVzdF9jYXNlX25hbWUsIHR5cGVfcGFyYW0s
IHNldF91cF90YywgdGVhcl9kb3duX3RjKTsKLQotICAvLyBJcyB0aGlzIGEgZGVhdGggdGVzdCBj
YXNlPwotICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0
X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga0RlYXRoVGVzdENhc2VGaWx0ZXIpKSB7Ci0gICAgLy8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVz
dCBjYXNlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3QgY2FzZQotICAgIC8vIGRlZmluZWQgc28g
ZmFyLiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHRlc3QgY2FzZXMgaGF2ZW4ndAorICBhdXRv
KiBjb25zdCBuZXdfdGVzdF9zdWl0ZSA9CisgICAgICBuZXcgVGVzdFN1aXRlKHRlc3Rfc3VpdGVf
bmFtZSwgdHlwZV9wYXJhbSwgc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpOworCisgIC8vIElzIHRo
aXMgYSBkZWF0aCB0ZXN0IHN1aXRlPworICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6
TWF0Y2hlc0ZpbHRlcih0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtEZWF0aFRlc3RTdWl0ZUZpbHRlcikpIHsKKyAgICAvLyBZ
ZXMuICBJbnNlcnRzIHRoZSB0ZXN0IHN1aXRlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3Vp
dGUKKyAgICAvLyBkZWZpbmVkIHNvIGZhci4gIFRoaXMgb25seSB3b3JrcyB3aGVuIHRoZSB0ZXN0
IHN1aXRlcyBoYXZlbid0CiAgICAgLy8gYmVlbiBzaHVmZmxlZC4gIE90aGVyd2lzZSB3ZSBtYXkg
ZW5kIHVwIHJ1bm5pbmcgYSBkZWF0aCB0ZXN0CiAgICAgLy8gYWZ0ZXIgYSBub24tZGVhdGggdGVz
dC4KLSAgICArK2xhc3RfZGVhdGhfdGVzdF9jYXNlXzsKLSAgICB0ZXN0X2Nhc2VzXy5pbnNlcnQo
dGVzdF9jYXNlc18uYmVnaW4oKSArIGxhc3RfZGVhdGhfdGVzdF9jYXNlXywKLSAgICAgICAgICAg
ICAgICAgICAgICAgbmV3X3Rlc3RfY2FzZSk7CisgICAgKytsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVf
OworICAgIHRlc3Rfc3VpdGVzXy5pbnNlcnQodGVzdF9zdWl0ZXNfLmJlZ2luKCkgKyBsYXN0X2Rl
YXRoX3Rlc3Rfc3VpdGVfLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Rlc3Rfc3VpdGUp
OwogICB9IGVsc2UgewogICAgIC8vIE5vLiAgQXBwZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaXN0
LgotICAgIHRlc3RfY2FzZXNfLnB1c2hfYmFjayhuZXdfdGVzdF9jYXNlKTsKKyAgICB0ZXN0X3N1
aXRlc18ucHVzaF9iYWNrKG5ld190ZXN0X3N1aXRlKTsKICAgfQogCi0gIHRlc3RfY2FzZV9pbmRp
Y2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VfaW5kaWNlc18uc2l6ZSgp
KSk7Ci0gIHJldHVybiBuZXdfdGVzdF9jYXNlOworICB0ZXN0X3N1aXRlX2luZGljZXNfLnB1c2hf
YmFjayhzdGF0aWNfY2FzdDxpbnQ+KHRlc3Rfc3VpdGVfaW5kaWNlc18uc2l6ZSgpKSk7CisgIHJl
dHVybiBuZXdfdGVzdF9zdWl0ZTsKIH0KIAogLy8gSGVscGVycyBmb3Igc2V0dGluZyB1cCAvIHRl
YXJpbmcgZG93biB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQuICBUaGV5CkBAIC01MDgyLDcgKzU3NDAs
OCBAQCBzdGF0aWMgdm9pZCBUZWFyRG93bkVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsg
ZW52LT5UZWFyRG93bigpOyB9CiAvLyBBbGwgb3RoZXIgZnVuY3Rpb25zIGNhbGxlZCBmcm9tIFJ1
bkFsbFRlc3RzKCkgbWF5IHNhZmVseSBhc3N1bWUgdGhhdAogLy8gcGFyYW1ldGVyaXplZCB0ZXN0
cyBhcmUgcmVhZHkgdG8gYmUgY291bnRlZCBhbmQgcnVuLgogYm9vbCBVbml0VGVzdEltcGw6OlJ1
bkFsbFRlc3RzKCkgewotICAvLyBUcnVlIGlmZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBi
ZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzIGNhbGxlZC4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBp
ZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzCisg
IC8vIGNhbGxlZC4KICAgY29uc3QgYm9vbCBndGVzdF9pc19pbml0aWFsaXplZF9iZWZvcmVfcnVu
X2FsbF90ZXN0cyA9IEdUZXN0SXNJbml0aWFsaXplZCgpOwogCiAgIC8vIERvIG5vdCBydW4gYW55
IHRlc3QgaWYgdGhlIC0taGVscCBmbGFnIHdhcyBzcGVjaWZpZWQuCkBAIC01MDk4LDEyICs1NzU3
LDEzIEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgLy8gcHJvdG9jb2wu
CiAgIGludGVybmFsOjpXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKTsKIAotICAvLyBU
cnVlIGlmZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUt
c3R5bGUKKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZv
ciBydW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5bGUKICAgLy8gZGVhdGggdGVzdC4KICAgYm9vbCBp
bl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gZmFsc2U7CiAKICNpZiBHVEVTVF9IQVNfREVB
VEhfVEVTVAotICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gKGludGVybmFsX3J1bl9k
ZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwpOworICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0
aF90ZXN0ID0KKyAgICAgIChpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBu
dWxscHRyKTsKICMgaWYgZGVmaW5lZChHVEVTVF9FWFRSQV9ERUFUSF9URVNUX0NISUxEX1NFVFVQ
XykKICAgaWYgKGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QpIHsKICAgICBHVEVTVF9FWFRS
QV9ERUFUSF9URVNUX0NISUxEX1NFVFVQXygpOwpAQCAtNTEzMCw3ICs1NzkwLDcgQEAgYm9vbCBV
bml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICByYW5kb21fc2VlZF8gPSBHVEVTVF9GTEFH
KHNodWZmbGUpID8KICAgICAgIEdldFJhbmRvbVNlZWRGcm9tRmxhZyhHVEVTVF9GTEFHKHJhbmRv
bV9zZWVkKSkgOiAwOwogCi0gIC8vIFRydWUgaWZmIGF0IGxlYXN0IG9uZSB0ZXN0IGhhcyBmYWls
ZWQuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgYXQgbGVhc3Qgb25lIHRlc3QgaGFzIGZhaWxl
ZC4KICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0
ZXIgPSBsaXN0ZW5lcnMoKS0+cmVwZWF0ZXIoKTsKQEAgLTUxNDIsMTcgKzU4MDIsMTcgQEAgYm9v
bCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICAvLyB3aGVuIHdlIGFyZSBpbnNpZGUg
dGhlIHN1YnByb2Nlc3Mgb2YgYSBkZWF0aCB0ZXN0LgogICBjb25zdCBpbnQgcmVwZWF0ID0gaW5f
c3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA/IDEgOiBHVEVTVF9GTEFHKHJlcGVhdCk7CiAgIC8v
IFJlcGVhdHMgZm9yZXZlciBpZiB0aGUgcmVwZWF0IGNvdW50IGlzIG5lZ2F0aXZlLgotICBjb25z
dCBib29sIGZvcmV2ZXIgPSByZXBlYXQgPCAwOwotICBmb3IgKGludCBpID0gMDsgZm9yZXZlciB8
fCBpICE9IHJlcGVhdDsgaSsrKSB7CisgIGNvbnN0IGJvb2wgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIg
PSByZXBlYXQgPCAwOworICBmb3IgKGludCBpID0gMDsgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgfHwg
aSAhPSByZXBlYXQ7IGkrKykgewogICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VydmUgZmFpbHVyZXMg
Z2VuZXJhdGVkIGJ5IGFkLWhvYyB0ZXN0CiAgICAgLy8gYXNzZXJ0aW9ucyBleGVjdXRlZCBiZWZv
cmUgUlVOX0FMTF9URVNUUygpLgogICAgIENsZWFyTm9uQWRIb2NUZXN0UmVzdWx0KCk7CiAKLSAg
ICBjb25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBHZXRUaW1lSW5NaWxsaXMoKTsKKyAgICBUaW1l
ciB0aW1lcjsKIAotICAgIC8vIFNodWZmbGVzIHRlc3QgY2FzZXMgYW5kIHRlc3RzIGlmIHJlcXVl
c3RlZC4KKyAgICAvLyBTaHVmZmxlcyB0ZXN0IHN1aXRlcyBhbmQgdGVzdHMgaWYgcmVxdWVzdGVk
LgogICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuICYmIEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAg
ICAgIHJhbmRvbSgpLT5SZXNlZWQocmFuZG9tX3NlZWRfKTsKKyAgICAgIHJhbmRvbSgpLT5SZXNl
ZWQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJhbmRvbV9zZWVkXykpOwogICAgICAgLy8gVGhpcyBz
aG91bGQgYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBPblRlc3RJdGVyYXRpb25TdGFydCgpLAogICAg
ICAgLy8gc3VjaCB0aGF0IGEgdGVzdCBldmVudCBsaXN0ZW5lciBjYW4gc2VlIHRoZSBhY3R1YWwg
dGVzdCBvcmRlcgogICAgICAgLy8gaW4gdGhlIGV2ZW50LgpAQCAtNTE2MiwxOSArNTgyMiw0OCBA
QCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAgICAgLy8gVGVsbHMgdGhlIHVu
aXQgdGVzdCBldmVudCBsaXN0ZW5lcnMgdGhhdCB0aGUgdGVzdHMgYXJlIGFib3V0IHRvIHN0YXJ0
LgogICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25TdGFydCgqcGFyZW50XywgaSk7CiAKLSAg
ICAvLyBSdW5zIGVhY2ggdGVzdCBjYXNlIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB0ZXN0IHRv
IHJ1bi4KKyAgICAvLyBSdW5zIGVhY2ggdGVzdCBzdWl0ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBv
bmUgdGVzdCB0byBydW4uCiAgICAgaWYgKGhhc190ZXN0c190b19ydW4pIHsKICAgICAgIC8vIFNl
dHMgdXAgYWxsIGVudmlyb25tZW50cyBiZWZvcmVoYW5kLgogICAgICAgcmVwZWF0ZXItPk9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydCgqcGFyZW50Xyk7CiAgICAgICBGb3JFYWNoKGVudmlyb25tZW50
c18sIFNldFVwRW52aXJvbm1lbnQpOwogICAgICAgcmVwZWF0ZXItPk9uRW52aXJvbm1lbnRzU2V0
VXBFbmQoKnBhcmVudF8pOwogCi0gICAgICAvLyBSdW5zIHRoZSB0ZXN0cyBvbmx5IGlmIHRoZXJl
IHdhcyBubyBmYXRhbCBmYWlsdXJlIGR1cmluZyBnbG9iYWwKLSAgICAgIC8vIHNldC11cC4KLSAg
ICAgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKLSAgICAgICAgZm9yIChpbnQgdGVz
dF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsKKyAgICAg
IC8vIFJ1bnMgdGhlIHRlc3RzIG9ubHkgaWYgdGhlcmUgd2FzIG5vIGZhdGFsIGZhaWx1cmUgb3Ig
c2tpcCB0cmlnZ2VyZWQKKyAgICAgIC8vIGR1cmluZyBnbG9iYWwgc2V0LXVwLgorICAgICAgaWYg
KFRlc3Q6OklzU2tpcHBlZCgpKSB7CisgICAgICAgIC8vIEVtaXQgZGlhZ25vc3RpY3Mgd2hlbiBn
bG9iYWwgc2V0LXVwIGNhbGxzIHNraXAsIGFzIGl0IHdpbGwgbm90IGJlCisgICAgICAgIC8vIGVt
aXR0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgVGVzdFJlc3VsdCYgdGVzdF9yZXN1bHQgPQorICAg
ICAgICAgICAgKmludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3Vs
dCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RfcmVzdWx0LnRvdGFsX3BhcnRf
Y291bnQoKTsgKytqKSB7CisgICAgICAgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFy
dF9yZXN1bHQgPQorICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChq
KTsKKyAgICAgICAgICBpZiAodGVzdF9wYXJ0X3Jlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1
bHQ6OmtTa2lwKSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgcmVzdWx0ID0gdGVz
dF9wYXJ0X3Jlc3VsdC5tZXNzYWdlKCk7CisgICAgICAgICAgICBwcmludGYoIiVzXG4iLCByZXN1
bHQuY19zdHIoKSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZmbHVzaChzdGRv
dXQpOworICAgICAgfSBlbHNlIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAg
ICAgZm9yIChpbnQgdGVzdF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X3N1aXRl
X2NvdW50KCk7CisgICAgICAgICAgICAgdGVzdF9pbmRleCsrKSB7CisgICAgICAgICAgR2V0TXV0
YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAgICAgaWYgKEdURVNUX0ZM
QUcoZmFpbF9mYXN0KSAmJgorICAgICAgICAgICAgICBHZXRNdXRhYmxlU3VpdGVDYXNlKHRlc3Rf
aW5kZXgpLT5GYWlsZWQoKSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IHRlc3RfaW5kZXgg
KyAxOyBqIDwgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyBqKyspIHsKKyAgICAgICAgICAgICAg
R2V0TXV0YWJsZVN1aXRlQ2FzZShqKS0+U2tpcCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9IGVsc2UgaWYgKFRlc3Q6
Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIGZhdGFsIGZh
aWx1cmUgZHVyaW5nIHRoZSBnbG9iYWwgc2V0dXAgdGhlbiB3ZSBrbm93IHdlCisgICAgICAgIC8v
IGFyZW4ndCBnb2luZyB0byBydW4gYW55IHRlc3RzLiBFeHBsaWNpdGx5IG1hcmsgYWxsIG9mIHRo
ZSB0ZXN0cyBhcworICAgICAgICAvLyBza2lwcGVkIHRvIG1ha2UgdGhpcyBvYnZpb3VzIGluIHRo
ZSBvdXRwdXQuCisgICAgICAgIGZvciAoaW50IHRlc3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwg
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogICAgICAgICAgICAgIHRlc3RfaW5kZXgrKykgewot
ICAgICAgICAgIEdldE11dGFibGVUZXN0Q2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAg
ICAgR2V0TXV0YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+U2tpcCgpOwogICAgICAgICB9CiAg
ICAgICB9CiAKQEAgLTUxODUsNyArNTg3NCw3IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxU
ZXN0cygpIHsKICAgICAgIHJlcGVhdGVyLT5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kKCpwYXJl
bnRfKTsKICAgICB9CiAKLSAgICBlbGFwc2VkX3RpbWVfID0gR2V0VGltZUluTWlsbGlzKCkgLSBz
dGFydDsKKyAgICBlbGFwc2VkX3RpbWVfID0gdGltZXIuRWxhcHNlZCgpOwogCiAgICAgLy8gVGVs
bHMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IHRoZSB0ZXN0cyBoYXZlIGp1c3Qg
ZmluaXNoZWQuCiAgICAgcmVwZWF0ZXItPk9uVGVzdEl0ZXJhdGlvbkVuZCgqcGFyZW50XywgaSk7
CkBAIC01MjEzLDE0ICs1OTAyLDE0IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygp
IHsKIAogICBpZiAoIWd0ZXN0X2lzX2luaXRpYWxpemVkX2JlZm9yZV9ydW5fYWxsX3Rlc3RzKSB7
CiAgICAgQ29sb3JlZFByaW50ZigKLSAgICAgICAgQ09MT1JfUkVELAorICAgICAgICBHVGVzdENv
bG9yOjprUmVkLAogICAgICAgICAiXG5JTVBPUlRBTlQgTk9USUNFIC0gRE8gTk9UIElHTk9SRTpc
biIKICAgICAgICAgIlRoaXMgdGVzdCBwcm9ncmFtIGRpZCBOT1QgY2FsbCAiIEdURVNUX0lOSVRf
R09PR0xFX1RFU1RfTkFNRV8KICAgICAgICAgIigpIGJlZm9yZSBjYWxsaW5nIFJVTl9BTExfVEVT
VFMoKS4gVGhpcyBpcyBJTlZBTElELiBTb29uICIgR1RFU1RfTkFNRV8KICAgICAgICAgIiB3aWxs
IHN0YXJ0IHRvIGVuZm9yY2UgdGhlIHZhbGlkIHVzYWdlLiAiCiAgICAgICAgICJQbGVhc2UgZml4
IGl0IEFTQVAsIG9yIElUIFdJTEwgU1RBUlQgVE8gRkFJTC5cbiIpOyAgLy8gTk9MSU5UCiAjaWYg
R1RFU1RfRk9SX0dPT0dMRV8KLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwKKyAgICBDb2xv
cmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsCiAgICAgICAgICAgICAgICAgICAiRm9yIG1vcmUg
ZGV0YWlscywgc2VlIGh0dHA6Ly93aWtpL01haW4vVmFsaWRHVW5pdE1haW4uXG4iKTsKICNlbmRp
ZiAgLy8gR1RFU1RfRk9SX0dPT0dMRV8KICAgfQpAQCAtNTIzNCwxMCArNTkyMywxMCBAQCBib29s
IFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAvLyBiZSBjcmVhdGVkLCBwcmludHMgYW4g
ZXJyb3IgYW5kIGV4aXRzLgogdm9pZCBXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKSB7
CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHRlc3Rfc2hhcmRfZmlsZSA9IHBvc2l4OjpHZXRFbnYoa1Rl
c3RTaGFyZFN0YXR1c0ZpbGUpOwotICBpZiAodGVzdF9zaGFyZF9maWxlICE9IE5VTEwpIHsKKyAg
aWYgKHRlc3Rfc2hhcmRfZmlsZSAhPSBudWxscHRyKSB7CiAgICAgRklMRSogY29uc3QgZmlsZSA9
IHBvc2l4OjpGT3Blbih0ZXN0X3NoYXJkX2ZpbGUsICJ3Iik7Ci0gICAgaWYgKGZpbGUgPT0gTlVM
TCkgewotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsCisgICAgaWYgKGZpbGUgPT0gbnVs
bHB0cikgeworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLAogICAgICAgICAg
ICAgICAgICAgICAiQ291bGQgbm90IHdyaXRlIHRvIHRoZSB0ZXN0IHNoYXJkIHN0YXR1cyBmaWxl
IFwiJXNcIiAiCiAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQgYnkgdGhlICVzIGVudmly
b25tZW50IHZhcmlhYmxlLlxuIiwKICAgICAgICAgICAgICAgICAgICAgdGVzdF9zaGFyZF9maWxl
LCBrVGVzdFNoYXJkU3RhdHVzRmlsZSk7CkBAIC01MjYxLDggKzU5NTAsOCBAQCBib29sIFNob3Vs
ZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgcmV0dXJuIGZhbHNlOwog
ICB9CiAKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gSW50MzJGcm9tRW52T3JEaWUodG90
YWxfc2hhcmRzX2VudiwgLTEpOwotICBjb25zdCBJbnQzMiBzaGFyZF9pbmRleCA9IEludDMyRnJv
bUVudk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEpOworICBjb25zdCBpbnQzMl90IHRvdGFsX3No
YXJkcyA9IEludDMyRnJvbUVudk9yRGllKHRvdGFsX3NoYXJkc19lbnYsIC0xKTsKKyAgY29uc3Qg
aW50MzJfdCBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKHNoYXJkX2luZGV4X2Vudiwg
LTEpOwogCiAgIGlmICh0b3RhbF9zaGFyZHMgPT0gLTEgJiYgc2hhcmRfaW5kZXggPT0gLTEpIHsK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjcxLDcgKzU5NjAsNyBAQCBib29sIFNob3VsZFNoYXJk
KGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxpZCBlbnZpcm9u
bWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAi
ID0gIiA8PCBzaGFyZF9pbmRleAogICAgICAgPDwgIiwgYnV0IGhhdmUgbGVmdCAiIDw8IGtUZXN0
VG90YWxTaGFyZHMgPDwgIiB1bnNldC5cbiI7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQs
IG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6
OmtSZWQsICIlcyIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKICAgICBmZmx1c2goc3Rkb3V0
KTsKICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgIH0gZWxzZSBpZiAodG90YWxfc2hhcmRzICE9
IC0xICYmIHNoYXJkX2luZGV4ID09IC0xKSB7CkBAIC01Mjc5LDcgKzU5NjgsNyBAQCBib29sIFNo
b3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxp
ZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0VG90YWxT
aGFyZHMgPDwgIiA9ICIgPDwgdG90YWxfc2hhcmRzCiAgICAgICA8PCAiLCBidXQgaGF2ZSBsZWZ0
ICIgPDwga1Rlc3RTaGFyZEluZGV4IDw8ICIgdW5zZXQuXG4iOwotICAgIENvbG9yZWRQcmludGYo
Q09MT1JfUkVELCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CisgICAgQ29sb3JlZFByaW50ZihH
VGVzdENvbG9yOjprUmVkLCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CiAgICAgZmZs
dXNoKHN0ZG91dCk7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICB9IGVsc2UgaWYgKHNoYXJk
X2luZGV4IDwgMCB8fCBzaGFyZF9pbmRleCA+PSB0b3RhbF9zaGFyZHMpIHsKQEAgLTUyODgsNyAr
NTk3Nyw3IEBAIGJvb2wgU2hvdWxkU2hhcmQoY29uc3QgY2hhciogdG90YWxfc2hhcmRzX2VudiwK
ICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiIDwgIiA8PCBrVGVzdFRvdGFsU2hhcmRzCiAg
ICAgICA8PCAiLCBidXQgeW91IGhhdmUgIiA8PCBrVGVzdFNoYXJkSW5kZXggPDwgIj0iIDw8IHNo
YXJkX2luZGV4CiAgICAgICA8PCAiLCAiIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwgIj0iIDw8IHRv
dGFsX3NoYXJkcyA8PCAiLlxuIjsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwgbXNnLkdl
dFN0cmluZygpLmNfc3RyKCkpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwg
IiVzIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwogICAgIGZmbHVzaChzdGRvdXQpOwogICAg
IGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgfQpAQCAtNTI5OSwxMyArNTk4OCwxMyBAQCBib29sIFNo
b3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAvLyBQYXJzZXMgdGhlIGVu
dmlyb25tZW50IHZhcmlhYmxlIHZhciBhcyBhbiBJbnQzMi4gSWYgaXQgaXMgdW5zZXQsCiAvLyBy
ZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYW4gSW50MzIsIHByaW50cyBhbiBlcnJv
cgogLy8gYW5kIGFib3J0cy4KLUludDMyIEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIHZh
ciwgSW50MzIgZGVmYXVsdF92YWwpIHsKK2ludDMyX3QgSW50MzJGcm9tRW52T3JEaWUoY29uc3Qg
Y2hhciogdmFyLCBpbnQzMl90IGRlZmF1bHRfdmFsKSB7CiAgIGNvbnN0IGNoYXIqIHN0cl92YWwg
PSBwb3NpeDo6R2V0RW52KHZhcik7Ci0gIGlmIChzdHJfdmFsID09IE5VTEwpIHsKKyAgaWYgKHN0
cl92YWwgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBkZWZhdWx0X3ZhbDsKICAgfQogCi0gIElu
dDMyIHJlc3VsdDsKKyAgaW50MzJfdCByZXN1bHQ7CiAgIGlmICghUGFyc2VJbnQzMihNZXNzYWdl
KCkgPDwgIlRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IHZhciwKICAgICAg
ICAgICAgICAgICAgIHN0cl92YWwsICZyZXN1bHQpKSB7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUp
OwpAQCAtNTMxNCw4ICs2MDAzLDggQEAgSW50MzIgSW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hh
ciogdmFyLCBJbnQzMiBkZWZhdWx0X3ZhbCkgewogfQogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVt
YmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRl
c3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVn
ZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBvbiB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMg
c29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0
byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4gQXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0
b3RhbF9zaGFyZHMuCiBib29sIFNob3VsZFJ1blRlc3RPblNoYXJkKGludCB0b3RhbF9zaGFyZHMs
IGludCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpIHsKICAgcmV0dXJuICh0ZXN0X2lkICUgdG90
YWxfc2hhcmRzKSA9PSBzaGFyZF9pbmRleDsKQEAgLTUzMjMsMTUgKzYwMTIsMTUgQEAgYm9vbCBT
aG91bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hhcmRzLCBpbnQgc2hhcmRfaW5kZXgsIGlu
dCB0ZXN0X2lkKSB7CiAKIC8vIENvbXBhcmVzIHRoZSBuYW1lIG9mIGVhY2ggdGVzdCB3aXRoIHRo
ZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgdG8KIC8vIGRlY2lkZSB3aGV0aGVyIHRoZSB0ZXN0IHNo
b3VsZCBiZSBydW4sIHRoZW4gcmVjb3JkcyB0aGUgcmVzdWx0IGluCi0vLyBlYWNoIFRlc3RDYXNl
IGFuZCBUZXN0SW5mbyBvYmplY3QuCisvLyBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8gb2Jq
ZWN0LgogLy8gSWYgc2hhcmRfdGVzdHMgPT0gdHJ1ZSwgZnVydGhlciBmaWx0ZXJzIHRlc3RzIGJh
c2VkIG9uIHNoYXJkaW5nCiAvLyB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50IC0gc2VlCiAv
LyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xl
dGVzdC9kb2NzL2FkdmFuY2VkLm1kCiAvLyAuIFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0
aGF0IHNob3VsZCBydW4uCiBpbnQgVW5pdFRlc3RJbXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRv
U2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gc2hh
cmRfdGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wgPworICBjb25zdCBpbnQzMl90IHRv
dGFsX3NoYXJkcyA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KICAg
ICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0VG90YWxTaGFyZHMsIC0xKSA6IC0xOwotICBjb25z
dCBJbnQzMiBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RP
Q09MID8KKyAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9S
X1NIQVJESU5HX1BST1RPQ09MID8KICAgICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJ
bmRleCwgLTEpIDogLTE7CiAKICAgLy8gbnVtX3J1bm5hYmxlX3Rlc3RzIGFyZSB0aGUgbnVtYmVy
IG9mIHRlc3RzIHRoYXQgd2lsbApAQCAtNTM0MCwyNiArNjAyOSwyMyBAQCBpbnQgVW5pdFRlc3RJ
bXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKICAgLy8g
dGhpcyBzaGFyZC4KICAgaW50IG51bV9ydW5uYWJsZV90ZXN0cyA9IDA7CiAgIGludCBudW1fc2Vs
ZWN0ZWRfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNp
emUoKTsgaSsrKSB7Ci0gICAgVGVzdENhc2UqIGNvbnN0IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNf
W2ldOwotICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSA9IHRlc3RfY2FzZS0+
bmFtZSgpOwotICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4oZmFsc2UpOworICBmb3IgKGF1
dG8qIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlc18pIHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYg
dGVzdF9zdWl0ZV9uYW1lID0gdGVzdF9zdWl0ZS0+bmFtZSgpOworICAgIHRlc3Rfc3VpdGUtPnNl
dF9zaG91bGRfcnVuKGZhbHNlKTsKIAotICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdGVzdF9j
YXNlLT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisrKSB7Ci0gICAgICBUZXN0SW5mbyogY29u
c3QgdGVzdF9pbmZvID0gdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpW2pdOworICAgIGZvciAo
c2l6ZV90IGogPSAwOyBqIDwgdGVzdF9zdWl0ZS0+dGVzdF9pbmZvX2xpc3QoKS5zaXplKCk7IGor
KykgeworICAgICAgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3Rf
aW5mb19saXN0KClbal07CiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X25hbWUodGVzdF9p
bmZvLT5uYW1lKCkpOwotICAgICAgLy8gQSB0ZXN0IGlzIGRpc2FibGVkIGlmIHRlc3QgY2FzZSBu
YW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCisgICAgICAvLyBBIHRlc3QgaXMgZGlzYWJsZWQgaWYg
dGVzdCBzdWl0ZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCiAgICAgICAvLyBrRGlzYWJsZVRl
c3RGaWx0ZXIuCi0gICAgICBjb25zdCBib29sIGlzX2Rpc2FibGVkID0KLSAgICAgICAgICBpbnRl
cm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKHRlc3RfY2FzZV9uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rpc2FibGVU
ZXN0RmlsdGVyKSB8fAotICAgICAgICAgIGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6Ok1hdGNo
ZXNGaWx0ZXIodGVzdF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKTsKKyAgICAgIGNvbnN0IGJvb2wgaXNf
ZGlzYWJsZWQgPSBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlX25hbWUsIGtEaXNhYmxl
VGVzdEZpbHRlcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6
VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X25hbWUsIGtEaXNhYmxlVGVzdEZpbHRlcik7CiAgICAgICB0ZXN0X2lu
Zm8tPmlzX2Rpc2FibGVkXyA9IGlzX2Rpc2FibGVkOwogCi0gICAgICBjb25zdCBib29sIG1hdGNo
ZXNfZmlsdGVyID0KLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJN
YXRjaGVzVGVzdCh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOworICAgICAgY29uc3QgYm9vbCBt
YXRjaGVzX2ZpbHRlciA9IGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNU
ZXN0KAorICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTsKICAgICAgIHRlc3Rf
aW5mby0+bWF0Y2hlc19maWx0ZXJfID0gbWF0Y2hlc19maWx0ZXI7CiAKICAgICAgIGNvbnN0IGJv
b2wgaXNfcnVubmFibGUgPQpAQCAtNTM3Niw3ICs2MDYyLDcgQEAgaW50IFVuaXRUZXN0SW1wbDo6
RmlsdGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7CiAgICAgICBudW1f
c2VsZWN0ZWRfdGVzdHMgKz0gaXNfc2VsZWN0ZWQ7CiAKICAgICAgIHRlc3RfaW5mby0+c2hvdWxk
X3J1bl8gPSBpc19zZWxlY3RlZDsKLSAgICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4odGVz
dF9jYXNlLT5zaG91bGRfcnVuKCkgfHwgaXNfc2VsZWN0ZWQpOworICAgICAgdGVzdF9zdWl0ZS0+
c2V0X3Nob3VsZF9ydW4odGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigpIHx8IGlzX3NlbGVjdGVkKTsK
ICAgICB9CiAgIH0KICAgcmV0dXJuIG51bV9zZWxlY3RlZF90ZXN0czsKQEAgLTUzODcsNyArNjA3
Myw3IEBAIGludCBVbml0VGVzdEltcGw6OkZpbHRlclRlc3RzKFJlYWN0aW9uVG9TaGFyZGluZyBz
aGFyZF90ZXN0cykgewogLy8gbWF4X2xlbmd0aCBjaGFyYWN0ZXJzLCBvbmx5IHByaW50cyB0aGUg
Zmlyc3QgbWF4X2xlbmd0aCBjaGFyYWN0ZXJzCiAvLyBhbmQgIi4uLiIuCiBzdGF0aWMgdm9pZCBQ
cmludE9uT25lTGluZShjb25zdCBjaGFyKiBzdHIsIGludCBtYXhfbGVuZ3RoKSB7Ci0gIGlmIChz
dHIgIT0gTlVMTCkgeworICBpZiAoc3RyICE9IG51bGxwdHIpIHsKICAgICBmb3IgKGludCBpID0g
MDsgKnN0ciAhPSAnXDAnOyArK3N0cikgewogICAgICAgaWYgKGkgPj0gbWF4X2xlbmd0aCkgewog
ICAgICAgICBwcmludGYoIi4uLiIpOwpAQCAtNTQwOSwyNyArNjA5NSwyNSBAQCB2b2lkIFVuaXRU
ZXN0SW1wbDo6TGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKSB7CiAgIC8vIFByaW50IGF0IG1vc3Qg
dGhpcyBtYW55IGNoYXJhY3RlcnMgZm9yIGVhY2ggdHlwZS92YWx1ZSBwYXJhbWV0ZXIuCiAgIGNv
bnN0IGludCBrTWF4UGFyYW1MZW5ndGggPSAyNTA7CiAKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIGNvbnN0IFRlc3RDYXNlKiBjb25zdCB0
ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2VzX1tpXTsKLSAgICBib29sIHByaW50ZWRfdGVzdF9jYXNlX25h
bWUgPSBmYWxzZTsKKyAgZm9yIChhdXRvKiB0ZXN0X3N1aXRlIDogdGVzdF9zdWl0ZXNfKSB7Cisg
ICAgYm9vbCBwcmludGVkX3Rlc3Rfc3VpdGVfbmFtZSA9IGZhbHNlOwogCi0gICAgZm9yIChzaXpl
X3QgaiA9IDA7IGogPCB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsK
LSAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAgICAgICAgIHRlc3Rf
Y2FzZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHRl
c3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKKyAgICAgIGNvbnN0IFRl
c3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT50ZXN0X2luZm9fbGlzdCgpW2pd
OwogICAgICAgaWYgKHRlc3RfaW5mby0+bWF0Y2hlc19maWx0ZXJfKSB7Ci0gICAgICAgIGlmICgh
cHJpbnRlZF90ZXN0X2Nhc2VfbmFtZSkgewotICAgICAgICAgIHByaW50ZWRfdGVzdF9jYXNlX25h
bWUgPSB0cnVlOwotICAgICAgICAgIHByaW50ZigiJXMuIiwgdGVzdF9jYXNlLT5uYW1lKCkpOwot
ICAgICAgICAgIGlmICh0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7CisgICAgICAg
IGlmICghcHJpbnRlZF90ZXN0X3N1aXRlX25hbWUpIHsKKyAgICAgICAgICBwcmludGVkX3Rlc3Rf
c3VpdGVfbmFtZSA9IHRydWU7CisgICAgICAgICAgcHJpbnRmKCIlcy4iLCB0ZXN0X3N1aXRlLT5u
YW1lKCkpOworICAgICAgICAgIGlmICh0ZXN0X3N1aXRlLT50eXBlX3BhcmFtKCkgIT0gbnVsbHB0
cikgewogICAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVHlwZVBhcmFtTGFiZWwpOwog
ICAgICAgICAgICAgLy8gV2UgcHJpbnQgdGhlIHR5cGUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxp
bmUgdG8gbWFrZQogICAgICAgICAgICAgLy8gdGhlIG91dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEg
cHJvZ3JhbS4KLSAgICAgICAgICAgIFByaW50T25PbmVMaW5lKHRlc3RfY2FzZS0+dHlwZV9wYXJh
bSgpLCBrTWF4UGFyYW1MZW5ndGgpOworICAgICAgICAgICAgUHJpbnRPbk9uZUxpbmUodGVzdF9z
dWl0ZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1MZW5ndGgpOwogICAgICAgICAgIH0KICAgICAg
ICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRmKCIgICVzIiwgdGVz
dF9pbmZvLT5uYW1lKCkpOwotICAgICAgICBpZiAodGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpICE9
IE5VTEwpIHsKKyAgICAgICAgaWYgKHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSAhPSBudWxscHRy
KSB7CiAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVmFsdWVQYXJhbUxhYmVsKTsKICAg
ICAgICAgICAvLyBXZSBwcmludCB0aGUgdmFsdWUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUg
dG8gbWFrZSB0aGUKICAgICAgICAgICAvLyBvdXRwdXQgZWFzeSB0byBwYXJzZSBieSBhIHByb2dy
YW0uCkBAIC01NDQ4LDExICs2MTMyLDExIEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpMaXN0VGVzdHNN
YXRjaGluZ0ZpbHRlcigpIHsKICAgICBpZiAob3V0cHV0X2Zvcm1hdCA9PSAieG1sIikgewogICAg
ICAgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyKAogICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6
R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkuY19zdHIoKSkKLSAgICAgICAgICAuUHJpbnRY
bWxUZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9jYXNlc18pOworICAgICAgICAgIC5QcmludFhtbFRl
c3RzTGlzdCgmc3RyZWFtLCB0ZXN0X3N1aXRlc18pOwogICAgIH0gZWxzZSBpZiAob3V0cHV0X2Zv
cm1hdCA9PSAianNvbiIpIHsKICAgICAgIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXIoCiAgICAg
ICAgICAgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKS5jX3N0
cigpKQotICAgICAgICAgIC5QcmludEpzb25UZXN0TGlzdCgmc3RyZWFtLCB0ZXN0X2Nhc2VzXyk7
CisgICAgICAgICAgLlByaW50SnNvblRlc3RMaXN0KCZzdHJlYW0sIHRlc3Rfc3VpdGVzXyk7CiAg
ICAgfQogICAgIGZwcmludGYoZmlsZW91dCwgIiVzIiwgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnN0
cmVhbSkuY19zdHIoKSk7CiAgICAgZmNsb3NlKGZpbGVvdXQpOwpAQCAtNTQ3Niw3ICs2MTYwLDcg
QEAgdm9pZCBVbml0VGVzdEltcGw6OnNldF9vc19zdGFja190cmFjZV9nZXR0ZXIoCiAvLyBvdGhl
cndpc2UsIGNyZWF0ZXMgYW4gT3NTdGFja1RyYWNlR2V0dGVyLCBtYWtlcyBpdCB0aGUgY3VycmVu
dAogLy8gZ2V0dGVyLCBhbmQgcmV0dXJucyBpdC4KIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFj
ZSogVW5pdFRlc3RJbXBsOjpvc19zdGFja190cmFjZV9nZXR0ZXIoKSB7Ci0gIGlmIChvc19zdGFj
a190cmFjZV9nZXR0ZXJfID09IE5VTEwpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlX2dldHRlcl8g
PT0gbnVsbHB0cikgewogI2lmZGVmIEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl8KICAgICBv
c19zdGFja190cmFjZV9nZXR0ZXJfID0gbmV3IEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl87
CiAjZWxzZQpAQCAtNTQ4OSwzOCArNjE3MywzOCBAQCBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZh
Y2UqIFVuaXRUZXN0SW1wbDo6b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCkgewogCiAvLyBSZXR1cm5z
IHRoZSBtb3N0IHNwZWNpZmljIFRlc3RSZXN1bHQgY3VycmVudGx5IHJ1bm5pbmcuCiBUZXN0UmVz
dWx0KiBVbml0VGVzdEltcGw6OmN1cnJlbnRfdGVzdF9yZXN1bHQoKSB7Ci0gIGlmIChjdXJyZW50
X3Rlc3RfaW5mb18gIT0gTlVMTCkgeworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxw
dHIpIHsKICAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9pbmZvXy0+cmVzdWx0XzsKICAgfQotICBp
ZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKLSAgICByZXR1cm4gJmN1cnJlbnRfdGVz
dF9jYXNlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0XzsKKyAgaWYgKGN1cnJlbnRfdGVzdF9zdWl0ZV8g
IT0gbnVsbHB0cikgeworICAgIHJldHVybiAmY3VycmVudF90ZXN0X3N1aXRlXy0+YWRfaG9jX3Rl
c3RfcmVzdWx0XzsKICAgfQogICByZXR1cm4gJmFkX2hvY190ZXN0X3Jlc3VsdF87CiB9CiAKLS8v
IFNodWZmbGVzIGFsbCB0ZXN0IGNhc2VzLCBhbmQgdGhlIHRlc3RzIHdpdGhpbiBlYWNoIHRlc3Qg
Y2FzZSwKKy8vIFNodWZmbGVzIGFsbCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4g
ZWFjaCB0ZXN0IHN1aXRlLAogLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3Rp
bGwgcnVuIGZpcnN0Lgogdm9pZCBVbml0VGVzdEltcGw6OlNodWZmbGVUZXN0cygpIHsKLSAgLy8g
U2h1ZmZsZXMgdGhlIGRlYXRoIHRlc3QgY2FzZXMuCi0gIFNodWZmbGVSYW5nZShyYW5kb20oKSwg
MCwgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfICsgMSwgJnRlc3RfY2FzZV9pbmRpY2VzXyk7CisgIC8v
IFNodWZmbGVzIHRoZSBkZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgp
LCAwLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwgJnRlc3Rfc3VpdGVfaW5kaWNlc18pOwog
Ci0gIC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGggdGVzdCBjYXNlcy4KLSAgU2h1ZmZsZVJhbmdl
KHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3RfY2FzZV8gKyAxLAotICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VzXy5zaXplKCkpLCAmdGVzdF9jYXNlX2luZGljZXNfKTsK
KyAgLy8gU2h1ZmZsZXMgdGhlIG5vbi1kZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdl
KHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwKKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGludD4odGVzdF9zdWl0ZXNfLnNpemUoKSksICZ0ZXN0X3N1aXRlX2luZGljZXNf
KTsKIAotICAvLyBTaHVmZmxlcyB0aGUgdGVzdHMgaW5zaWRlIGVhY2ggdGVzdCBjYXNlLgotICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgdGVz
dF9jYXNlc19baV0tPlNodWZmbGVUZXN0cyhyYW5kb20oKSk7CisgIC8vIFNodWZmbGVzIHRoZSB0
ZXN0cyBpbnNpZGUgZWFjaCB0ZXN0IHN1aXRlLgorICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGUgOiB0
ZXN0X3N1aXRlc18pIHsKKyAgICB0ZXN0X3N1aXRlLT5TaHVmZmxlVGVzdHMocmFuZG9tKCkpOwog
ICB9CiB9CiAKLS8vIFJlc3RvcmVzIHRoZSB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyB0byB0aGVpciBv
cmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCisvLyBSZXN0b3JlcyB0aGUgdGVzdCBzdWl0
ZXMgYW5kIHRlc3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KIHZv
aWQgVW5pdFRlc3RJbXBsOjpVbnNodWZmbGVUZXN0cygpIHsKLSAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIC8vIFVuc2h1ZmZsZXMgdGhlIHRl
c3RzIGluIGVhY2ggdGVzdCBjYXNlLgotICAgIHRlc3RfY2FzZXNfW2ldLT5VbnNodWZmbGVUZXN0
cygpOwotICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IGNhc2UuCi0gICAgdGVz
dF9jYXNlX2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB0ZXN0X3N1aXRlc18uc2l6ZSgpOyBpKyspIHsKKyAgICAvLyBVbnNodWZmbGVz
IHRoZSB0ZXN0cyBpbiBlYWNoIHRlc3Qgc3VpdGUuCisgICAgdGVzdF9zdWl0ZXNfW2ldLT5VbnNo
dWZmbGVUZXN0cygpOworICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IHN1aXRl
LgorICAgIHRlc3Rfc3VpdGVfaW5kaWNlc19baV0gPSBzdGF0aWNfY2FzdDxpbnQ+KGkpOwogICB9
CiB9CiAKQEAgLTU1NzksMTIgKzYyNjMsMTIgQEAgYm9vbCBTa2lwUHJlZml4KGNvbnN0IGNoYXIq
IHByZWZpeCwgY29uc3QgY2hhcioqIHBzdHIpIHsKIHN0YXRpYyBjb25zdCBjaGFyKiBQYXJzZUZs
YWdWYWx1ZShjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZfb3B0aW9uYWwpIHsKICAgLy8gc3RyIGFuZCBm
bGFnIG11c3Qgbm90IGJlIE5VTEwuCi0gIGlmIChzdHIgPT0gTlVMTCB8fCBmbGFnID09IE5VTEwp
IHJldHVybiBOVUxMOworICBpZiAoc3RyID09IG51bGxwdHIgfHwgZmxhZyA9PSBudWxscHRyKSBy
ZXR1cm4gbnVsbHB0cjsKIAogICAvLyBUaGUgZmxhZyBtdXN0IHN0YXJ0IHdpdGggIi0tIiBmb2xs
b3dlZCBieSBHVEVTVF9GTEFHX1BSRUZJWF8uCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZsYWdfc3Ry
ID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBmbGFnOwogICBjb25z
dCBzaXplX3QgZmxhZ19sZW4gPSBmbGFnX3N0ci5sZW5ndGgoKTsKLSAgaWYgKHN0cm5jbXAoc3Ry
LCBmbGFnX3N0ci5jX3N0cigpLCBmbGFnX2xlbikgIT0gMCkgcmV0dXJuIE5VTEw7CisgIGlmIChz
dHJuY21wKHN0ciwgZmxhZ19zdHIuY19zdHIoKSwgZmxhZ19sZW4pICE9IDApIHJldHVybiBudWxs
cHRyOwogCiAgIC8vIFNraXBzIHRoZSBmbGFnIG5hbWUuCiAgIGNvbnN0IGNoYXIqIGZsYWdfZW5k
ID0gc3RyICsgZmxhZ19sZW47CkBAIC01NTk3LDcgKzYyODEsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogUGFyc2VGbGFnVmFsdWUoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLAogICAv
LyBJZiBkZWZfb3B0aW9uYWwgaXMgdHJ1ZSBhbmQgdGhlcmUgYXJlIG1vcmUgY2hhcmFjdGVycyBh
ZnRlciB0aGUKICAgLy8gZmxhZyBuYW1lLCBvciBpZiBkZWZfb3B0aW9uYWwgaXMgZmFsc2UsIHRo
ZXJlIG11c3QgYmUgYSAnPScgYWZ0ZXIKICAgLy8gdGhlIGZsYWcgbmFtZS4KLSAgaWYgKGZsYWdf
ZW5kWzBdICE9ICc9JykgcmV0dXJuIE5VTEw7CisgIGlmIChmbGFnX2VuZFswXSAhPSAnPScpIHJl
dHVybiBudWxscHRyOwogCiAgIC8vIFJldHVybnMgdGhlIHN0cmluZyBhZnRlciAiPSIuCiAgIHJl
dHVybiBmbGFnX2VuZCArIDE7CkBAIC01NjE4LDMyICs2MzAyLDMwIEBAIHN0YXRpYyBib29sIFBh
cnNlQm9vbEZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBib29sKiB2YWx1
ZSkgewogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIs
IGZsYWcsIHRydWUpOwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlm
ICh2YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51
bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICAvLyBDb252ZXJ0cyB0aGUgc3RyaW5nIHZhbHVlIHRv
IGEgYm9vbC4KICAgKnZhbHVlID0gISgqdmFsdWVfc3RyID09ICcwJyB8fCAqdmFsdWVfc3RyID09
ICdmJyB8fCAqdmFsdWVfc3RyID09ICdGJyk7CiAgIHJldHVybiB0cnVlOwogfQogCi0vLyBQYXJz
ZXMgYSBzdHJpbmcgZm9yIGFuIEludDMyIGZsYWcsIGluIHRoZSBmb3JtIG9mCi0vLyAiLS1mbGFn
PXZhbHVlIi4KKy8vIFBhcnNlcyBhIHN0cmluZyBmb3IgYW4gaW50MzJfdCBmbGFnLCBpbiB0aGUg
Zm9ybSBvZiAiLS1mbGFnPXZhbHVlIi4KIC8vCiAvLyBPbiBzdWNjZXNzLCBzdG9yZXMgdGhlIHZh
bHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJldHVybnMKIC8vIHRydWUuICBPbiBmYWls
dXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdpbmcgKnZhbHVlLgotYm9vbCBQYXJzZUlu
dDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIEludDMyKiB2YWx1ZSkg
eworYm9vbCBQYXJzZUludDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcs
IGludDMyX3QqIHZhbHVlKSB7CiAgIC8vIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGFzIGEg
c3RyaW5nLgogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShz
dHIsIGZsYWcsIGZhbHNlKTsKIAogICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgot
ICBpZiAodmFsdWVfc3RyID09IE5VTEwpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9
PSBudWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgLy8gU2V0cyAqdmFsdWUgdG8gdGhlIHZhbHVl
IG9mIHRoZSBmbGFnLgogICByZXR1cm4gUGFyc2VJbnQzMihNZXNzYWdlKCkgPDwgIlRoZSB2YWx1
ZSBvZiBmbGFnIC0tIiA8PCBmbGFnLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZV9zdHIsIHZh
bHVlKTsKIH0KIAotLy8gUGFyc2VzIGEgc3RyaW5nIGZvciBhIHN0cmluZyBmbGFnLCBpbiB0aGUg
Zm9ybSBvZgotLy8gIi0tZmxhZz12YWx1ZSIuCisvLyBQYXJzZXMgYSBzdHJpbmcgZm9yIGEgc3Ry
aW5nIGZsYWcsIGluIHRoZSBmb3JtIG9mICItLWZsYWc9dmFsdWUiLgogLy8KIC8vIE9uIHN1Y2Nl
c3MsIHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcgaW4gKnZhbHVlLCBhbmQgcmV0dXJucwog
Ly8gdHJ1ZS4gIE9uIGZhaWx1cmUsIHJldHVybnMgZmFsc2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFs
dWUuCkBAIC01NjUzLDcgKzYzMzUsNyBAQCBzdGF0aWMgYm9vbCBQYXJzZVN0cmluZ0ZsYWcoY29u
c3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBTdHJpbmcqIHZhbHVlKSB7CiAgIGNvbnN0
IGNoYXIqIGNvbnN0IHZhbHVlX3N0ciA9IFBhcnNlRmxhZ1ZhbHVlKHN0ciwgZmxhZywgZmFsc2Up
OwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIg
PT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51bGxwdHIpIHJldHVy
biBmYWxzZTsKIAogICAvLyBTZXRzICp2YWx1ZSB0byB0aGUgdmFsdWUgb2YgdGhlIGZsYWcuCiAg
ICp2YWx1ZSA9IHZhbHVlX3N0cjsKQEAgLTU2ODQsMTAgKzYzNjYsOCBAQCBzdGF0aWMgYm9vbCBI
YXNHb29nbGVUZXN0RmxhZ1ByZWZpeChjb25zdCBjaGFyKiBzdHIpIHsKIC8vICAgQFkgICAgY2hh
bmdlcyB0aGUgY29sb3IgdG8geWVsbG93LgogLy8gICBARCAgICBjaGFuZ2VzIHRvIHRoZSBkZWZh
dWx0IHRlcm1pbmFsIHRleHQgY29sb3IuCiAvLwotLy8gRklYTUU6IFdyaXRlIHRlc3RzIGZvciB0
aGlzIG9uY2Ugd2UgYWRkIHN0ZG91dAotLy8gY2FwdHVyaW5nIHRvIEdvb2dsZSBUZXN0Lgogc3Rh
dGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7Ci0gIEdUZXN0Q29s
b3IgY29sb3IgPSBDT0xPUl9ERUZBVUxUOyAgLy8gVGhlIGN1cnJlbnQgY29sb3IuCisgIEdUZXN0
Q29sb3IgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsgIC8vIFRoZSBjdXJyZW50IGNvbG9y
LgogCiAgIC8vIENvbmNlcHR1YWxseSwgd2Ugc3BsaXQgdGhlIHN0cmluZyBpbnRvIHNlZ21lbnRz
IGRpdmlkZWQgYnkgZXNjYXBlCiAgIC8vIHNlcXVlbmNlcy4gIFRoZW4gd2UgcHJpbnQgb25lIHNl
Z21lbnQgYXQgYSB0aW1lLiAgQXQgdGhlIGVuZCBvZgpAQCAtNTY5NSw3ICs2Mzc1LDcgQEAgc3Rh
dGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7CiAgIC8vIG5leHQg
c2VnbWVudC4KICAgZm9yICg7OykgewogICAgIGNvbnN0IGNoYXIqIHAgPSBzdHJjaHIoc3RyLCAn
QCcpOwotICAgIGlmIChwID09IE5VTEwpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7CiAgICAg
ICBDb2xvcmVkUHJpbnRmKGNvbG9yLCAiJXMiLCBzdHIpOwogICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTU3MDcsMTMgKzYzODcsMTMgQEAgc3RhdGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29u
c3QgY2hhciogc3RyKSB7CiAgICAgaWYgKGNoID09ICdAJykgewogICAgICAgQ29sb3JlZFByaW50
Zihjb2xvciwgIkAiKTsKICAgICB9IGVsc2UgaWYgKGNoID09ICdEJykgewotICAgICAgY29sb3Ig
PSBDT0xPUl9ERUZBVUxUOworICAgICAgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsKICAg
ICB9IGVsc2UgaWYgKGNoID09ICdSJykgewotICAgICAgY29sb3IgPSBDT0xPUl9SRUQ7CisgICAg
ICBjb2xvciA9IEdUZXN0Q29sb3I6OmtSZWQ7CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnRycpIHsK
LSAgICAgIGNvbG9yID0gQ09MT1JfR1JFRU47CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtH
cmVlbjsKICAgICB9IGVsc2UgaWYgKGNoID09ICdZJykgewotICAgICAgY29sb3IgPSBDT0xPUl9Z
RUxMT1c7CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtZZWxsb3c7CiAgICAgfSBlbHNlIHsK
ICAgICAgIC0tc3RyOwogICAgIH0KQEAgLTU3MjEsOTggKzY0MDEsMTI2IEBAIHN0YXRpYyB2b2lk
IFByaW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0cikgewogfQogCiBzdGF0aWMgY29uc3Qg
Y2hhciBrQ29sb3JFbmNvZGVkSGVscE1lc3NhZ2VbXSA9Ci0iVGhpcyBwcm9ncmFtIGNvbnRhaW5z
IHRlc3RzIHdyaXR0ZW4gdXNpbmcgIiBHVEVTVF9OQU1FXyAiLiBZb3UgY2FuIHVzZSB0aGVcbiIK
LSJmb2xsb3dpbmcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOlxu
IgotIlxuIgotIlRlc3QgU2VsZWN0aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJsaXN0X3Rlc3RzQERcbiIKLSIgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgdGVzdHMgaW5z
dGVhZCBvZiBydW5uaW5nIHRoZW0uIFRoZSBuYW1lIG9mXG4iCi0iICAgICAgVEVTVChGb28sIEJh
cikgaXMgXCJGb28uQmFyXCIuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZpbHRl
cj1AWVBPU1RJVkVfUEFUVEVSTlMiCisgICAgIlRoaXMgcHJvZ3JhbSBjb250YWlucyB0ZXN0cyB3
cml0dGVuIHVzaW5nICIgR1RFU1RfTkFNRV8KKyAgICAiLiBZb3UgY2FuIHVzZSB0aGVcbiIKKyAg
ICAiZm9sbG93aW5nIGNvbW1hbmQgbGluZSBmbGFncyB0byBjb250cm9sIGl0cyBiZWhhdmlvcjpc
biIKKyAgICAiXG4iCisgICAgIlRlc3QgU2VsZWN0aW9uOlxuIgorICAgICIgIEBHLS0iIEdURVNU
X0ZMQUdfUFJFRklYXworICAgICJsaXN0X3Rlc3RzQERcbiIKKyAgICAiICAgICAgTGlzdCB0aGUg
bmFtZXMgb2YgYWxsIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyB0aGVtLiBUaGUgbmFtZSBvZlxu
IgorICAgICIgICAgICBURVNUKEZvbywgQmFyKSBpcyBcIkZvby5CYXJcIi5cbiIKKyAgICAiICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZmlsdGVyPUBZUE9TSVRJVkVfUEFUVEVSTlMi
CiAgICAgIltARy1AWU5FR0FUSVZFX1BBVFRFUk5TXUBEXG4iCi0iICAgICAgUnVuIG9ubHkgdGhl
IHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHBvc2l0aXZlIHBhdHRlcm5zIGJ1
dFxuIgotIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0aXZlIHBhdHRlcm5zLiAnPycgbWF0Y2hlcyBh
bnkgc2luZ2xlIGNoYXJhY3RlcjsgJyonXG4iCi0iICAgICAgbWF0Y2hlcyBhbnkgc3Vic3RyaW5n
OyAnOicgc2VwYXJhdGVzIHR3byBwYXR0ZXJucy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJF
RklYXyAiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNARFxuIgotIiAgICAgIFJ1biBhbGwgZGlzYWJs
ZWQgdGVzdHMgdG9vLlxuIgotIlxuIgotIlRlc3QgRXhlY3V0aW9uOlxuIgotIiAgQEctLSIgR1RF
U1RfRkxBR19QUkVGSVhfICJyZXBlYXQ9QFlbQ09VTlRdQERcbiIKLSIgICAgICBSdW4gdGhlIHRl
c3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVhdCBmb3JldmVyLlxu
IgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJzaHVmZmxlQERcbiIKLSIgICAgICBSYW5k
b21pemUgdGVzdHMnIG9yZGVycyBvbiBldmVyeSBpdGVyYXRpb24uXG4iCi0iICBARy0tIiBHVEVT
VF9GTEFHX1BSRUZJWF8gInJhbmRvbV9zZWVkPUBZW05VTUJFUl1ARFxuIgotIiAgICAgIFJhbmRv
bSBudW1iZXIgc2VlZCB0byB1c2UgZm9yIHNodWZmbGluZyB0ZXN0IG9yZGVycyAoYmV0d2VlbiAx
IGFuZFxuIgotIiAgICAgIDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1
cnJlbnQgdGltZSkuXG4iCi0iXG4iCi0iVGVzdCBPdXRwdXQ6XG4iCi0iICBARy0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gImNvbG9yPUBZKEBHeWVzQFl8QEdub0BZfEBHYXV0b0BZKUBEXG4iCi0iICAg
ICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBHYXV0b0BE
LlxuIgotIiAgLUBHLSIgR1RFU1RfRkxBR19QUkVGSVhfICJwcmludF90aW1lPTBARFxuIgotIiAg
ICAgIERvbid0IHByaW50IHRoZSBlbGFwc2VkIHRpbWUgb2YgZWFjaCB0ZXN0LlxuIgotIiAgQEct
LSIgR1RFU1RfRkxBR19QUkVGSVhfICJvdXRwdXQ9QFkoQEdqc29uQFl8QEd4bWxAWSlbQEc6QFlE
SVJFQ1RPUllfUEFUSEBHIgotICAgIEdURVNUX1BBVEhfU0VQXyAiQFl8QEc6QFlGSUxFX1BBVEhd
QERcbiIKLSIgICAgICBHZW5lcmF0ZSBhIEpTT04gb3IgWE1MIHJlcG9ydCBpbiB0aGUgZ2l2ZW4g
ZGlyZWN0b3J5IG9yIHdpdGggdGhlIGdpdmVuXG4iCi0iICAgICAgZmlsZSBuYW1lLiBAWUZJTEVf
UEFUSEBEIGRlZmF1bHRzIHRvIEBHdGVzdF9kZXRhaWxzLnhtbEBELlxuIgorICAgICIgICAgICBS
dW4gb25seSB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIG9uZSBvZiB0aGUgcG9zaXRpdmUg
cGF0dGVybnMgIgorICAgICJidXRcbiIKKyAgICAiICAgICAgbm9uZSBvZiB0aGUgbmVnYXRpdmUg
cGF0dGVybnMuICc/JyBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyOyAiCisgICAgIicqJ1xu
IgorICAgICIgICAgICBtYXRjaGVzIGFueSBzdWJzdHJpbmc7ICc6JyBzZXBhcmF0ZXMgdHdvIHBh
dHRlcm5zLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJhbHNvX3J1
bl9kaXNhYmxlZF90ZXN0c0BEXG4iCisgICAgIiAgICAgIFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMg
dG9vLlxuIgorICAgICJcbiIKKyAgICAiVGVzdCBFeGVjdXRpb246XG4iCisgICAgIiAgQEctLSIg
R1RFU1RfRkxBR19QUkVGSVhfCisgICAgInJlcGVhdD1AWVtDT1VOVF1ARFxuIgorICAgICIgICAg
ICBSdW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVh
dCBmb3JldmVyLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzaHVm
ZmxlQERcbiIKKyAgICAiICAgICAgUmFuZG9taXplIHRlc3RzJyBvcmRlcnMgb24gZXZlcnkgaXRl
cmF0aW9uLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJyYW5kb21f
c2VlZD1AWVtOVU1CRVJdQERcbiIKKyAgICAiICAgICAgUmFuZG9tIG51bWJlciBzZWVkIHRvIHVz
ZSBmb3Igc2h1ZmZsaW5nIHRlc3Qgb3JkZXJzIChiZXR3ZWVuIDEgYW5kXG4iCisgICAgIiAgICAg
IDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSkuXG4i
CisgICAgIlxuIgorICAgICJUZXN0IE91dHB1dDpcbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8KKyAgICAiY29sb3I9QFkoQEd5ZXNAWXxAR25vQFl8QEdhdXRvQFkpQERcbiIKKyAg
ICAiICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBH
YXV0b0BELlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJicmllZj0x
QERcbiIKKyAgICAiICAgICAgT25seSBwcmludCB0ZXN0IGZhaWx1cmVzLlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJwcmludF90aW1lPTBARFxuIgorICAgICIgICAg
ICBEb24ndCBwcmludCB0aGUgZWxhcHNlZCB0aW1lIG9mIGVhY2ggdGVzdC5cbiIKKyAgICAiICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAib3V0cHV0PUBZKEBHanNvbkBZfEBHeG1sQFkp
W0BHOkBZRElSRUNUT1JZX1BBVEhARyIgR1RFU1RfUEFUSF9TRVBfCisgICAgIkBZfEBHOkBZRklM
RV9QQVRIXUBEXG4iCisgICAgIiAgICAgIEdlbmVyYXRlIGEgSlNPTiBvciBYTUwgcmVwb3J0IGlu
IHRoZSBnaXZlbiBkaXJlY3Rvcnkgb3Igd2l0aCB0aGUgIgorICAgICJnaXZlblxuIgorICAgICIg
ICAgICBmaWxlIG5hbWUuIEBZRklMRV9QQVRIQEQgZGVmYXVsdHMgdG8gQEd0ZXN0X2RldGFpbC54
bWxARC5cbiIKICMgaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotIiAgQEctLSIgR1RFU1Rf
RkxBR19QUkVGSVhfICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZUE9SVEBEXG4iCi0iICAg
ICAgU3RyZWFtIHRlc3QgcmVzdWx0cyB0byB0aGUgZ2l2ZW4gc2VydmVyLlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZ
UE9SVEBEXG4iCisgICAgIiAgICAgIFN0cmVhbSB0ZXN0IHJlc3VsdHMgdG8gdGhlIGdpdmVuIHNl
cnZlci5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSJcbiIKLSJB
c3NlcnRpb24gQmVoYXZpb3I6XG4iCisgICAgIlxuIgorICAgICJBc3NlcnRpb24gQmVoYXZpb3I6
XG4iCiAjIGlmIEdURVNUX0hBU19ERUFUSF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImRlYXRoX3Rlc3Rfc3R5bGU9QFkoQEdmYXN0QFl8QEd0
aHJlYWRzYWZlQFkpQERcbiIKLSIgICAgICBTZXQgdGhlIGRlZmF1bHQgZGVhdGggdGVzdCBzdHls
ZS5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZGVhdGhfdGVzdF9z
dHlsZT1AWShAR2Zhc3RAWXxAR3RocmVhZHNhZmVAWSlARFxuIgorICAgICIgICAgICBTZXQgdGhl
IGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0hBU19ERUFU
SF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8g
ImJyZWFrX29uX2ZhaWx1cmVARFxuIgotIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGlu
dG8gZGVidWdnZXIgYnJlYWstcG9pbnRzLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJlcyBp
bnRvIEMrKyBleGNlcHRpb25zIGZvciB1c2UgYnkgYW4gZXh0ZXJuYWxcbiIKLSIgICAgICB0ZXN0
IGZyYW1ld29yay5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiY2F0Y2hfZXhjZXB0
aW9ucz0wQERcbiIKLSIgICAgICBEbyBub3QgcmVwb3J0IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWls
dXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgotIiAgICAgIHRvIGNyYXNoIHRoZSBwcm9ncmFt
IG9yIHRocm93IGEgcG9wLXVwIChvbiBXaW5kb3dzKS5cbiIKLSJcbiIKLSJFeGNlcHQgZm9yIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXyAibGlzdF90ZXN0c0BELCB5b3UgY2FuIGFsdGVybmF0aXZl
bHkgc2V0ICIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiYnJlYWtfb25f
ZmFpbHVyZUBEXG4iCisgICAgIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8gZGVi
dWdnZXIgYnJlYWstcG9pbnRzLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXwor
ICAgICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKKyAgICAiICAgICAgVHVybiBhc3NlcnRpb24gZmFp
bHVyZXMgaW50byBDKysgZXhjZXB0aW9ucyBmb3IgdXNlIGJ5IGFuIGV4dGVybmFsXG4iCisgICAg
IiAgICAgIHRlc3QgZnJhbWV3b3JrLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklY
XworICAgICJjYXRjaF9leGNlcHRpb25zPTBARFxuIgorICAgICIgICAgICBEbyBub3QgcmVwb3J0
IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgorICAg
ICIgICAgICB0byBjcmFzaCB0aGUgcHJvZ3JhbSBvciB0aHJvdyBhIHBvcC11cCAob24gV2luZG93
cykuXG4iCisgICAgIlxuIgorICAgICJFeGNlcHQgZm9yIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklY
XworICAgICJsaXN0X3Rlc3RzQEQsIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBzZXQgIgogICAgICJ0
aGUgY29ycmVzcG9uZGluZ1xuIgotImVudmlyb25tZW50IHZhcmlhYmxlIG9mIGEgZmxhZyAoYWxs
IGxldHRlcnMgaW4gdXBwZXItY2FzZSkuIEZvciBleGFtcGxlLCB0b1xuIgotImRpc2FibGUgY29s
b3JlZCB0ZXh0IG91dHB1dCwgeW91IGNhbiBlaXRoZXIgc3BlY2lmeSBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8KKyAgICAiZW52aXJvbm1lbnQgdmFyaWFibGUgb2YgYSBmbGFnIChhbGwgbGV0dGVy
cyBpbiB1cHBlci1jYXNlKS4gRm9yIGV4YW1wbGUsICIKKyAgICAidG9cbiIKKyAgICAiZGlzYWJs
ZSBjb2xvcmVkIHRleHQgb3V0cHV0LCB5b3UgY2FuIGVpdGhlciBzcGVjaWZ5ICIKKyAgICAiQEct
LSIgR1RFU1RfRkxBR19QUkVGSVhfCiAgICAgImNvbG9yPW5vQEQgb3Igc2V0XG4iCi0idGhlIEBH
IiBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUg
dG8gQEdub0BELlxuIgotIlxuIgotIkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVhZCB0
aGUgIiBHVEVTVF9OQU1FXyAiIGRvY3VtZW50YXRpb24gYXRcbiIKLSJARyIgR1RFU1RfUFJPSkVD
VF9VUkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4gIiBHVEVTVF9OQU1FXyAiXG4iCi0iKG5v
dCBvbmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyksIHBsZWFzZSByZXBvcnQgaXQgdG9cbiIK
LSJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7CisgICAgInRoZSBARyIgR1RFU1RfRkxB
R19QUkVGSVhfVVBQRVJfCisgICAgIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gQEdu
b0BELlxuIgorICAgICJcbiIKKyAgICAiRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWFk
IHRoZSAiIEdURVNUX05BTUVfCisgICAgIiBkb2N1bWVudGF0aW9uIGF0XG4iCisgICAgIkBHIiBH
VEVTVF9QUk9KRUNUX1VSTF8gIkBELiBJZiB5b3UgZmluZCBhIGJ1ZyBpbiAiIEdURVNUX05BTUVf
CisgICAgIlxuIgorICAgICIobm90IG9uZSBpbiB5b3VyIG93biBjb2RlIG9yIHRlc3RzKSwgcGxl
YXNlIHJlcG9ydCBpdCB0b1xuIgorICAgICJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7
CiAKIHN0YXRpYyBib29sIFBhcnNlR29vZ2xlVGVzdEZsYWcoY29uc3QgY2hhciogY29uc3QgYXJn
KSB7CiAgIHJldHVybiBQYXJzZUJvb2xGbGFnKGFyZywga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxh
ZywKICAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRf
dGVzdHMpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtCcmVha09uRmFpbHVyZUZsYWcs
Ci0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKSB8fAot
ICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtDYXRjaEV4Y2VwdGlvbnNGbGFnLAotICAgICAgICAg
ICAgICAgICAgICAmR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSkgfHwKLSAgICAgIFBhcnNl
U3RyaW5nRmxhZyhhcmcsIGtDb2xvckZsYWcsICZHVEVTVF9GTEFHKGNvbG9yKSkgfHwKLSAgICAg
IFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtEZWF0aFRlc3RTdHlsZUZsYWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgJkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkpIHx8Ci0gICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga0RlYXRoVGVzdFVzZUZvcmssCi0gICAgICAgICAgICAgICAgICAgICZHVEVT
VF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFy
Zywga0ZpbHRlckZsYWcsICZHVEVTVF9GTEFHKGZpbHRlcikpIHx8Ci0gICAgICBQYXJzZVN0cmlu
Z0ZsYWcoYXJnLCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnLAotICAgICAgICAgICAgICAgICAg
ICAgICZHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSkgfHwKLSAgICAgIFBhcnNl
Qm9vbEZsYWcoYXJnLCBrTGlzdFRlc3RzRmxhZywgJkdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHx8
Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0
cHV0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNU
X0ZMQUcocHJpbnRfdGltZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRG
OEZsYWcsICZHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB8fAotICAgICAgUGFyc2VJbnQzMkZsYWco
YXJnLCBrUmFuZG9tU2VlZEZsYWcsICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKLSAgICAg
IFBhcnNlSW50MzJGbGFnKGFyZywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8
Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVm
ZmxlKSkgfHwKLSAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcs
Ci0gICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8
Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAotICAgICAg
ICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAotICAgICAg
UGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsCi0gICAgICAgICAgICAgICAg
ICAgICZHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpKTsKKyAgICAgICAgIFBhcnNlQm9vbEZs
YWcoYXJnLCBrQnJlYWtPbkZhaWx1cmVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RF
U1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJn
LCBrQ2F0Y2hFeGNlcHRpb25zRmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZM
QUcoY2F0Y2hfZXhjZXB0aW9ucykpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBr
Q29sb3JGbGFnLCAmR1RFU1RfRkxBRyhjb2xvcikpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0Zs
YWcoYXJnLCBrRGVhdGhUZXN0U3R5bGVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICZH
VEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhh
cmcsIGtEZWF0aFRlc3RVc2VGb3JrLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxB
RyhkZWF0aF90ZXN0X3VzZV9mb3JrKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBr
RmFpbEZhc3QsICZHVEVTVF9GTEFHKGZhaWxfZmFzdCkpIHx8CisgICAgICAgICBQYXJzZVN0cmlu
Z0ZsYWcoYXJnLCBrRmlsdGVyRmxhZywgJkdURVNUX0ZMQUcoZmlsdGVyKSkgfHwKKyAgICAgICAg
IFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpKSB8
fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtMaXN0VGVzdHNGbGFnLCAmR1RFU1RfRkxB
RyhsaXN0X3Rlc3RzKSkgfHwKKyAgICAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtPdXRwdXRG
bGFnLCAmR1RFU1RfRkxBRyhvdXRwdXQpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcs
IGtCcmllZkZsYWcsICZHVEVTVF9GTEFHKGJyaWVmKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZs
YWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHx8CisgICAg
ICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRGOEZsYWcsICZHVEVTVF9GTEFHKHByaW50
X3V0ZjgpKSB8fAorICAgICAgICAgUGFyc2VJbnQzMkZsYWcoYXJnLCBrUmFuZG9tU2VlZEZsYWcs
ICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKKyAgICAgICAgIFBhcnNlSW50MzJGbGFnKGFy
Zywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8CisgICAgICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVmZmxlKSkgfHwKKyAgICAg
ICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8CisgICAgICAg
ICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAorICAgICAgICAg
UGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsICZHVEVTVF9GTEFHKHRocm93
X29uX2ZhaWx1cmUpKTsKIH0KIAogI2lmIEdURVNUX1VTRV9PV05fRkxBR0ZJTEVfRkxBR18KQEAg
LTU4OTUsNyArNjYwMyw3IEBAIHZvaWQgUGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5SW1wbChpbnQq
IGFyZ2MsIENoYXJUeXBlKiogYXJndikgewogdm9pZCBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHko
aW50KiBhcmdjLCBjaGFyKiogYXJndikgewogICBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHlJbXBs
KGFyZ2MsIGFyZ3YpOwogCi0gIC8vIEZpeCB0aGUgdmFsdWUgb2YgKl9OU0dldEFyZ2MoKSBvbiBt
YWNPUywgYnV0IGlmZgorICAvLyBGaXggdGhlIHZhbHVlIG9mICpfTlNHZXRBcmdjKCkgb24gbWFj
T1MsIGJ1dCBpZiBhbmQgb25seSBpZgogICAvLyAqX05TR2V0QXJndigpID09IGFyZ3YKICAgLy8g
T25seSBhcHBsaWNhYmxlIHRvIGNoYXIqKiB2ZXJzaW9uIG9mIGFyZ3YKICNpZiBHVEVTVF9PU19N
QUMKQEAgLTU5NjMsMjMgKzY2NzEsNTAgQEAgdm9pZCBJbml0R29vZ2xlVGVzdChpbnQqIGFyZ2Ms
IHdjaGFyX3QqKiBhcmd2KSB7CiAjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRf
R09PR0xFX1RFU1RfRlVOQ1RJT05fKQogfQogCisvLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBj
YW4gYmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBsYXRmb3JtcyB3aGVyZQorLy8gdGhlcmUg
aXMgbm8gYXJnYy9hcmd2Lgordm9pZCBJbml0R29vZ2xlVGVzdCgpIHsKKyAgLy8gU2luY2UgQXJk
dWlubyBkb2Vzbid0IGhhdmUgYSBjb21tYW5kIGxpbmUsIGZha2Ugb3V0IHRoZSBhcmdjL2FyZ3Yg
YXJndW1lbnRzCisgIGludCBhcmdjID0gMTsKKyAgY29uc3QgYXV0byBhcmcwID0gImR1bW15IjsK
KyAgY2hhciogYXJndjAgPSBjb25zdF9jYXN0PGNoYXIqPihhcmcwKTsKKyAgY2hhcioqIGFyZ3Yg
PSAmYXJndjA7CisKKyNpZiBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZV
TkNUSU9OXykKKyAgR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKCZhcmdj
LCBhcmd2KTsKKyNlbHNlICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNU
X0ZVTkNUSU9OXykKKyAgaW50ZXJuYWw6OkluaXRHb29nbGVUZXN0SW1wbCgmYXJnYywgYXJndik7
CisjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJ
T05fKQorfQorCiBzdGQ6OnN0cmluZyBUZW1wRGlyKCkgewogI2lmIGRlZmluZWQoR1RFU1RfQ1VT
VE9NX1RFTVBESVJfRlVOQ1RJT05fKQogICByZXR1cm4gR1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVO
Q1RJT05fKCk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCisjZWxpZiBH
VEVTVF9PU19XSU5ET1dTX01PQklMRQogICByZXR1cm4gIlxcdGVtcFxcIjsKICNlbGlmIEdURVNU
X09TX1dJTkRPV1MKICAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBpbnRlcm5hbDo6cG9zaXg6Okdl
dEVudigiVEVNUCIpOwotICBpZiAodGVtcF9kaXIgPT0gTlVMTCB8fCB0ZW1wX2RpclswXSA9PSAn
XDAnKQorICBpZiAodGVtcF9kaXIgPT0gbnVsbHB0ciB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKSB7
CiAgICAgcmV0dXJuICJcXHRlbXBcXCI7Ci0gIGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1w
X2RpcikgLSAxXSA9PSAnXFwnKQorICB9IGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1wX2Rp
cikgLSAxXSA9PSAnXFwnKSB7CiAgICAgcmV0dXJuIHRlbXBfZGlyOwotICBlbHNlCisgIH0gZWxz
ZSB7CiAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHRlbXBfZGlyKSArICJcXCI7CisgIH0KICNlbGlm
IEdURVNUX09TX0xJTlVYX0FORFJPSUQKLSAgcmV0dXJuICIvc2RjYXJkLyI7CisgIGNvbnN0IGNo
YXIqIHRlbXBfZGlyID0gaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfVE1QRElSIik7Cisg
IGlmICh0ZW1wX2RpciA9PSBudWxscHRyIHx8IHRlbXBfZGlyWzBdID09ICdcMCcpIHsKKyAgICBy
ZXR1cm4gIi9kYXRhL2xvY2FsL3RtcC8iOworICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2Rp
cjsKKyAgfQorI2VsaWYgR1RFU1RfT1NfTElOVVgKKyAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBp
bnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVTVF9UTVBESVIiKTsKKyAgaWYgKHRlbXBfZGlyID09
IG51bGxwdHIgfHwgdGVtcF9kaXJbMF0gPT0gJ1wwJykgeworICAgIHJldHVybiAiL3RtcC8iOwor
ICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsKKyAgfQogI2Vsc2UKICAgcmV0dXJuICIv
dG1wLyI7CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFpbi5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCmluZGV4IDIxMTNmNjIxZTY1NDMwZTU1NzBkZmIy
MDE1ODg0YTJkNGY0Y2YwYjMuLjQ2YjI3YzNkN2Q1NjU0NjY4OTA2YmZmNWY1YmExYTI2Njg4MWY3
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCkBAIC0yNywx
MSArMjcsMjggQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2luY2x1ZGUg
PHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAK
KyNpZiBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09TX0VTUDMyCisjaWYgR1RFU1RfT1NfRVNQ
ODI2NgorZXh0ZXJuICJDIiB7CisjZW5kaWYKK3ZvaWQgc2V0dXAoKSB7CisgIHRlc3Rpbmc6Oklu
aXRHb29nbGVUZXN0KCk7Cit9CisKK3ZvaWQgbG9vcCgpIHsgUlVOX0FMTF9URVNUUygpOyB9CisK
KyNpZiBHVEVTVF9PU19FU1A4MjY2Cit9CisjZW5kaWYKKworI2Vsc2UKKwogR1RFU1RfQVBJXyBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgcHJpbnRmKCJSdW5uaW5nIG1haW4o
KSBmcm9tICVzXG4iLCBfX0ZJTEVfXyk7CiAgIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdj
LCBhcmd2KTsKICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKIH0KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvQlVJTEQuYmF6ZWwKaW5kZXggYTkzMGQ2NWUwNDQwMTQ0NDE2YWU4
OGFiMjc1OGZkOTM0MGEwOTM3Yi4uZTc5Yjg3NWNjN2QxZjJjYjU3OGY3OWIwMmFlZGRiZjZjM2Rh
Yjc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXpl
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L0JVSUxELmJhemVsCkBAIC0yOCwy
OCArMjgsMTYgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjCi0jIEF1dGhvcjog
bWlzdGVyZ0Bnb29nbGUuY29tIChHZW5uYWRpeSBDaXZpbCkKLSMKICMgQmF6ZWwgQlVJTEQgZm9y
IFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKIAotbGljZW5z
ZXMoWyJub3RpY2UiXSkKK2xvYWQoIkBydWxlc19jYy8vY2M6ZGVmcy5iemwiLCAiY2NfYmluYXJ5
IiwgImNjX3Rlc3QiKQorbG9hZCgiQHJ1bGVzX3B5dGhvbi8vcHl0aG9uOmRlZnMuYnpsIiwgInB5
X2xpYnJhcnkiLCAicHlfdGVzdCIpCiAKLWNvbmZpZ19zZXR0aW5nKAotICAgIG5hbWUgPSAid2lu
ZG93cyIsCi0gICAgdmFsdWVzID0geyJjcHUiOiAieDY0X3dpbmRvd3MifSwKLSkKLQotY29uZmln
X3NldHRpbmcoCi0gICAgbmFtZSA9ICJ3aW5kb3dzX21zdmMiLAotICAgIHZhbHVlcyA9IHsiY3B1
IjogIng2NF93aW5kb3dzX21zdmMifSwKLSkKK2xpY2Vuc2VzKFsibm90aWNlIl0pCiAKLWNvbmZp
Z19zZXR0aW5nKAotICAgIG5hbWUgPSAiaGFzX2Fic2wiLAotICAgIHZhbHVlcyA9IHsiZGVmaW5l
IjogImFic2w9MSJ9LAotKQorcGFja2FnZShkZWZhdWx0X3Zpc2liaWxpdHkgPSBbIi8vOl9fc3Vi
cGFja2FnZXNfXyJdKQogCi0jb24gd2luZG93cyBleGNsdWRlIGd0ZXN0LXR1cGxlLmggYW5kIGdv
b2dsZXRlc3QtdHVwbGUtdGVzdC5jYworI29uIHdpbmRvd3MgZXhjbHVkZSBndGVzdC10dXBsZS5o
CiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ3Rlc3RfYWxsX3Rlc3QiLAogICAgIHNpemUgPSAic21h
bGwiLApAQCAtNjIsNDEgKzUwLDQzIEBAIGNjX3Rlc3QoCiAgICAgICAgIF0sCiAgICAgICAgIGV4
Y2x1ZGUgPSBbCiAgICAgICAgICAgICAiZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MiLAotICAg
ICAgICAgICAgImdvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xl
dGVzdC9zcmMvZ3Rlc3QtYWxsLmNjIiwKICAgICAgICAgICAgICJndGVzdF9hbGxfdGVzdC5jYyIs
CiAgICAgICAgICAgICAiZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIiwKICAgICAgICAgICAg
ICJndGVzdC1saXN0ZW5lcl90ZXN0LmNjIiwKICAgICAgICAgICAgICJndGVzdC11bml0dGVzdC1h
cGlfdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2Mi
LAorICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYyIsCiAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIiwKICAgICAgICAgICAg
ICJnb29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWVu
di12YXItdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRl
c3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdF8uY2MiLAor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyIs
CiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyIs
Ci0gICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCi0gICAgICAgICAg
ICAgImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVz
dC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1
ZmZsZS10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10
ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNj
IiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAotICAgICAgICAg
ICAgICJnb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MiLAotICAgICAgICAgICAg
ICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYyIsCi0gICAgICAg
ICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKLQor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCisgICAgICAgICAgICAi
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlz
dC10ZXN0cy11bml0dGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1ZmZsZS10
ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5j
YyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3RfLmNjIiwKKyAg
ICAgICAgICAgICJnb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyIsCisgICAgICAgICAg
ICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qt
dGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJh
bS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qt
cGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKICAgICAgICAgXSwKICAgICApICsg
c2VsZWN0KHsKICAgICAgICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3Nf
bXN2YyI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAg
ICAiZ29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIiwKLSAgICAgICAgXSwKKyAgICAgICAgIi8vY29u
ZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSksCiAgICAgY29wdHMgPSBzZWxlY3QoewogICAg
ICAgICAiLy86d2luZG93cyI6IFsiLURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0wIl0sCi0gICAg
ICAgICIvLzp3aW5kb3dzX21zdmMiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9MCJdLAog
ICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQ
TEU9MSJdLAorICAgIH0pICsgc2VsZWN0KHsKKyAgICAgICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMg
c291cmNlIGZpbGVzIGFzIFVURi04IGVuY29kZWQuCisgICAgICAgICIvLzptc3ZjX2NvbXBpbGVy
IjogWyItdXRmLTgiXSwKKyAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAg
fSksCiAgICAgaW5jbHVkZXMgPSBbCiAgICAgICAgICJnb29nbGV0ZXN0IiwKQEAgLTEwNiwxNSAr
OTYsMTEgQEAgY2NfdGVzdCgKICAgICBdLAogICAgIGxpbmtvcHRzID0gc2VsZWN0KHsKICAgICAg
ICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3NfbXN2YyI6IFtdLAotICAg
ICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAiLXB0aHJlYWQiLAot
ICAgICAgICBdLAorICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1wdGhyZWFkIl0s
CiAgICAgfSksCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAogKQogCi0KICMgVGVzdHMg
ZGVhdGggdGVzdHMuCiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0
LXRlc3QiLApAQCAtMTc1LDYgKzE2MSw3IEBAIHB5X2xpYnJhcnkoCiAgICAgbmFtZSA9ICJndGVz
dF90ZXN0X3V0aWxzIiwKICAgICB0ZXN0b25seSA9IDEsCiAgICAgc3JjcyA9IFsiZ3Rlc3RfdGVz
dF91dGlscy5weSJdLAorICAgIGltcG9ydHMgPSBbIi4iXSwKICkKIAogY2NfYmluYXJ5KApAQCAt
MTk5LDEzICsxODYsMTIgQEAgY2NfYmluYXJ5KAogICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCiAp
CiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QiLAogICAg
IHNpemUgPSAic21hbGwiLAogICAgIHNyY3MgPSBbImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHki
XSwKICAgICBhcmdzID0gc2VsZWN0KHsKLSAgICAgICAgIjpoYXNfYWJzbCI6IFtdLAorICAgICAg
ICAiLy86aGFzX2Fic2wiOiBbXSwKICAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWyIt
LW5vX3N0YWNrdHJhY2Vfc3VwcG9ydCJdLAogICAgIH0pLAogICAgIGRhdGEgPSBbCkBAIC0yNDUs
NiArMjMxLDIxIEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwK
ICkKIAorY2NfYmluYXJ5KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVz
dF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0LWZhaWxmYXN0
LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCispCisKK3B5X3Rlc3Qo
CisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0IiwKKyAgICBzaXplID0g
Im1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weSJd
LAorICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XyJdLAorICAgIGRl
cHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCispCisKIGNjX2JpbmFyeSgKICAgICBuYW1lID0g
Imdvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0XyIsCiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMjYw
LDYgKzI2MSwyMCBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0s
CiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25t
ZW50LXVuaXR0ZXN0XyIsCisgICAgdGVzdG9ubHkgPSAxLAorICAgIHNyY3MgPSBbImdvb2dsZXRl
c3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0
ZXN0Il0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZp
cm9ubWVudC11bml0dGVzdCIsCisgICAgc2l6ZSA9ICJtZWRpdW0iLAorICAgIHNyY3MgPSBbImdv
b2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsi
Omdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0XyJdLAorICAgIGRlcHMgPSBb
IjpndGVzdF90ZXN0X3V0aWxzIl0sCispCiAKIGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdvb2ds
ZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdF8iLApAQCAtMjY4LDggKzI4Myw2IEBAIGNj
X2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAogKQogCi0KLQogcHlfdGVzdCgKICAg
ICBuYW1lID0gImdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdCIsCiAgICAgc2l6
ZSA9ICJzbWFsbCIsCkBAIC0yNzgsNyArMjkxLDYgQEAgcHlfdGVzdCgKICAgICBkZXBzID0gWyI6
Z3Rlc3RfdGVzdF91dGlscyJdLAogKQogCi0KIGNjX3Rlc3QoCiAgICAgbmFtZSA9ICJndGVzdF9h
c3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QiLAogICAgIHNpemUgPSAic21hbGwiLApAQCAtMjg2LDgg
KzI5OCw2IEBAIGNjX3Rlc3QoCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3QiXSwKICkKIAotCi0KIGNj
X2JpbmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0XyIs
CiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMzAzLDcgKzMxMyw2IEBAIHB5X3Rlc3QoCiAgICAgZGVw
cyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAotCiBjY19iaW5hcnkoCiAgICAgbmFtZSA9
ICJnb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfIiwKICAgICB0ZXN0b25seSA9IDEsCkBA
IC0zMTEsNiArMzIwLDM4IEBAIGNjX2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAog
KQogCitjY190ZXN0KAorICAgIG5hbWUgPSAiZ3Rlc3Rfc2tpcF90ZXN0IiwKKyAgICBzaXplID0g
InNtYWxsIiwKKyAgICBzcmNzID0gWyJndGVzdF9za2lwX3Rlc3QuY2MiXSwKKyAgICBkZXBzID0g
WyIvLzpndGVzdF9tYWluIl0sCispCisKK2NjX3Rlc3QoCisgICAgbmFtZSA9ICJndGVzdF9za2lw
X2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNy
Y3MgPSBbImd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyJdLAorICAgIGRl
cHMgPSBbIi8vOmd0ZXN0X21haW4iXSwKKykKKworcHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0
X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3Mg
PSBbImd0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWyI6Z3Rl
c3Rfc2tpcF90ZXN0Il0sCisgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKKykKKwor
cHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBfZW52aXJvbm1lbnRfY2hlY2tfb3V0cHV0
X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3MgPSBbImd0ZXN0X3NraXBfZW52
aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWworICAgICAgICAi
Omd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdCIsCisgICAgXSwKKyAgICBkZXBz
ID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBweV90ZXN0KAogICAgIG5hbWUgPSAiZ29v
Z2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTM4
MSw3ICs0MjIsNyBAQCBweV90ZXN0KAogICAgICAgICAiZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHki
LAogICAgIF0sCiAgICAgYXJncyA9IHNlbGVjdCh7Ci0gICAgICAgICI6aGFzX2Fic2wiOiBbXSwK
KyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCiAgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVs
dCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKICAgICB9KSwKICAgICBkYXRhID0gWwpA
QCAtNDIxLDYgKzQ2MiwyMSBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0
aWxzIl0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3Qtc2V0dXB0ZXN0
c3VpdGUtdGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0
LXNldHVwdGVzdHN1aXRlLXRlc3RfLmNjIl0sCisgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJd
LAorKQorCitweV90ZXN0KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10
ZXN0IiwKKyAgICBzaXplID0gIm1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1zZXR1
cHRlc3RzdWl0ZS10ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3Qtc2V0dXB0ZXN0
c3VpdGUtdGVzdF8iXSwKKyAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBj
Y19iaW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdF8iLAog
ICAgIHRlc3Rvbmx5ID0gMSwKQEAgLTQ1Miw3ICs1MDgsNiBAQCBweV90ZXN0KAogICAgIGRlcHMg
PSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdv
b2dsZXRlc3QtanNvbi1vdXRmaWxlcy10ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTQ3
NCwxOCArNTI5LDE5IEBAIHB5X3Rlc3QoCiAgICAgICAgICJnb29nbGV0ZXN0LWpzb24tb3V0cHV0
LXVuaXR0ZXN0LnB5IiwKICAgICAgICAgImd0ZXN0X2pzb25fdGVzdF91dGlscy5weSIsCiAgICAg
XSwKKyAgICBhcmdzID0gc2VsZWN0KHsKKyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCisgICAg
ICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwK
KyAgICB9KSwKICAgICBkYXRhID0gWwogICAgICAgICAjIFdlIGludm9rZSBndGVzdF9ub190ZXN0
X3VuaXR0ZXN0IHRvIHZlcmlmeSB0aGUgSlNPTiBvdXRwdXQKICAgICAgICAgIyB3aGVuIHRoZSB0
ZXN0IHByb2dyYW0gY29udGFpbnMgbm8gdGVzdCBkZWZpbml0aW9uLgogICAgICAgICAiOmd0ZXN0
X25vX3Rlc3RfdW5pdHRlc3QiLAogICAgICAgICAiOmd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Rf
IiwKICAgICBdLAotICAgIGFyZ3MgPSBzZWxlY3QoewotICAgICAgICAiOmhhc19hYnNsIjogW10s
Ci0gICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBv
cnQiXSwKLSAgICB9KSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQorCiAj
IFZlcmlmaWVzIGludGVyYWN0aW9uIG9mIGRlYXRoIHRlc3RzIGFuZCBleGNlcHRpb25zLgogY2Nf
dGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF9jYXRjaF90ZXN0IiwK
QEAgLTUxNSw2ICs1NzEsMTAgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwKICAgICBz
cmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0LnB5Il0sCiAg
ICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfIl0s
CisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAgICAibm9f
dGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJd
LAogKQogCkBAIC01MjMsNSArNTgzLDkgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwK
ICAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0LnB5
Il0sCiAgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRl
c3RfIl0sCisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAg
ICAibm9fdGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91
dGlscyJdLAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkKaW5kZXggNWQ0OWMxMDIz
YzUwZWYxNjgzM2U2YjhlMmE4ZTYyMDI0ODQzMmFjMy4uOTRhNWIzM2YyMzA1MDkyNTkzNzU1YzNh
Yjg2YWE1ZjZjMzI5ZTJhMCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0LnB5CkBAIC04
OSw5ICs4OSw5IEBAIGlmIFNVUFBPUlRTX1NFSF9FWENFUFRJT05TOgogICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biAnCiAgICAgICAgICAgICAg
ICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgZGVzdHJ1Y3RvcicKICAgICAgICAgICAgICAg
ICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3
aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXBUZXN0Q2FzZSgpJworICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBTZXRVcFRlc3RTdWl0
ZSgpJwogICAgICAgICAgICAgICAgICAgIGluIHRlc3Rfb3V0cHV0KQotICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBUZWFyRG93blRlc3RD
YXNlKCknCisgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEg
dGhyb3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVz
dF9vdXRwdXQpCiAgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4
MmEgdGhyb3duIGluIFNldFVwKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQp
CkBAIC0xMTcsMTAgKzExNywxMSBAQCBjbGFzcyBDYXRjaEN4eEV4Y2VwdGlvbnNUZXN0KGd0ZXN0
X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAiIiIKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNl
cHRpb25zSW5GaXh0dXJlQ29uc3RydWN0b3Ioc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysg
ZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJwotICAgICAgICAgICAgICAgICAnIlN0YW5kYXJk
IEMrKyBleGNlcHRpb24iIHRocm93biAnCi0gICAgICAgICAgICAgICAgICdpbiB0aGUgdGVzdCBm
aXh0dXJlXCdzIGNvbnN0cnVjdG9yJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBk
ZXNjcmlwdGlvbiAnCisgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3duICcK
KyAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgY29uc3RydWN0b3InIGluIEVYX0JJTkFS
WV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1
bmV4cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1Ro
aXMgZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAg
ICAgJyJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCIgKG5vIHF1b3RlcykgJwpAQCAtMTMw
LDg4ICsxMzEsOTAgQEAgY2xhc3MgQ2F0Y2hDeHhFeGNlcHRpb25zVGVzdChndGVzdF90ZXN0X3V0
aWxzLlRlc3RDYXNlKToKICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpOgogCiAgICAgZGVmIHRlc3RD
YXRjaGVzQ3h4RXhjZXB0aW9uc0luRml4dHVyZURlc3RydWN0b3Ioc2VsZik6Ci0gICAgICBzZWxm
LmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAnCi0gICAgICAgICAgICAg
ICAgICAgJyJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIiB0aHJvd24gJwotICAgICAgICAgICAgICAg
ICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3RydWN0b3InCi0gICAgICAgICAgICAgICAg
ICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9u
SW5EZXN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAg
ICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllf
T1VUUFVUKQorICAgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAgICdDKysgZXhjZXB0aW9u
IHdpdGggZGVzY3JpcHRpb24gJworICAgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIg
dGhyb3duICcKKyAgICAgICAgICAnaW4gdGhlIHRlc3QgZml4dHVyZVwncyBkZXN0cnVjdG9yJyBp
biBFWF9CSU5BUllfT1VUUFVULAorICAgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgICBz
ZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgJ0N4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Q6
OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBp
biBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hl
c0N4eEV4Y2VwdGlvbnNJblNldFVwVGVzdENhc2Uoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdD
KysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwot
ICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcFRlc3RDYXNlKCknCi0gICAgICAgICAg
ICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRp
b25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAg
ICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9P
VVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0
IGNvbnN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0g
ICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdD
eHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAg
ICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRl
c3Q6OlNldFVwKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAg
ICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4
eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAg
ICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRl
c3QgdGVzdCBib2R5ICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0g
ICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVl
KAorICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysg
ZXhjZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4gU2V0VXBUZXN0U3VpdGUoKScgaW4gRVhf
QklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisg
ICAgICAgICdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0U3VpdGUo
KSAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBF
WF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2Vw
dGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0IGNvbnN0cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBh
cyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAg
c2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRl
c3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5B
UllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAg
ICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRl
c3RTdWl0ZVRlc3Q6OlRlYXJEb3duKCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicg
aW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRy
dWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkg
JworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhf
QklOQVJZX09VVFBVVCkKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5UZWFyRG93
blRlc3RDYXNlKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRl
c2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAgICAgICAgICAgJyB0
aHJvd24gaW4gVGVhckRvd25UZXN0Q2FzZSgpJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5B
UllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24g
d2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisgICAgICAgICcgdGhy
b3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFS
WV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luU2V0VXAoc2VsZik6
Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5k
YXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcCgp
JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0
XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAg
ICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9C
SU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Qg
ZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAg
ICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2Fs
bGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkK
KyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3Jp
cHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJworICAgICAgICAnIHRocm93biBpbiBTZXRV
cCgpJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RT
dWl0ZSgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQ
VVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhw
ZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93bigp
ICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVY
X0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1bmV4cGVjdGVkJyBub3QgaW4gRVhf
QklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1RoaXMgZmFpbHVyZSBiZWxvbmdzIGlu
IHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAgICAgJyJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdCIgKG5vIHF1b3RlcykgJwogICAgICAgICAgICAgICAgICAnYXBwZWFycyBvbiB0aGUg
c2FtZSBsaW5lIGFzIHdvcmRzICJjYWxsZWQgdW5leHBlY3RlZGx5IicpCiAKICAgZGVmIHRlc3RD
YXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVhckRvd24oc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdD
KysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwot
ICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBUZWFyRG93bigpJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxs
ZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQot
ICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgZGVzdHJ1Y3RvciAn
Ci0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0Mr
KyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisg
ICAgICAgICcgdGhyb3duIGluIFRlYXJEb3duKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJ
TkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9u
SW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAnY2FsbGVkIGFz
IGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBz
ZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0
cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQ
VVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0lu
VGVzdEJvZHkoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVz
Y3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRo
cm93biBpbiB0aGUgdGVzdCBib2R5JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJE
b3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwot
ICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0Xygn
Q3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAg
ICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJE
b3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAg
ICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAg
ICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRp
b24iJworICAgICAgICAnIHRocm93biBpbiB0aGUgdGVzdCBib2R5JyBpbiBFWF9CSU5BUllfT1VU
UFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4
eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9k
eVRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9C
SU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAg
ICAgICAgJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93bigpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzTm9uU3RkQ3h4RXhjZXB0aW9ucyhzZWxmKToKLSAgICBz
ZWxmLmFzc2VydF8oJ1Vua25vd24gQysrIGV4Y2VwdGlvbiB0aHJvd24gaW4gdGhlIHRlc3QgYm9k
eScKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2Vy
dFRydWUoCisgICAgICAgICdVbmtub3duIEMrKyBleGNlcHRpb24gdGhyb3duIGluIHRoZSB0ZXN0
IGJvZHknIGluIEVYX0JJTkFSWV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAK
ICAgZGVmIHRlc3RVbmhhbmRsZWRDeHhFeGNlcHRpb25zQWJvcnRUaGVQcm9ncmFtKHNlbGYpOgog
ICAgICMgRmlsdGVycyBvdXQgU0VIIGV4Y2VwdGlvbiB0ZXN0cyBvbiBXaW5kb3dzLiBVbmhhbmRs
ZWQgU0VIIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKaW5kZXgg
MDlkYWU3MDAzMGEzM2FlYWJhMDYwYWFlZjk3YTk3OWE4ZjU4MDRhZS4uOGMxMjdkNDBiMTFkNGQ3
MmEzZmFhZTgwYmFmYmI3NDZkMWFhNDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVz
dF8uY2MKQEAgLTY0LDE5ICs2NCwyMCBAQCBjbGFzcyBTZWhFeGNlcHRpb25JbkRlc3RydWN0b3JU
ZXN0IDogcHVibGljIFRlc3QgewogCiBURVNUX0YoU2VoRXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVz
dCwgVGhyb3dzRXhjZXB0aW9uSW5EZXN0cnVjdG9yKSB7fQogCi1jbGFzcyBTZWhFeGNlcHRpb25J
blNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgU2VoRXhjZXB0aW9uSW5T
ZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9p
ZCBTZXRVcFRlc3RDYXNlKCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KKyAg
c3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBO
VUxMKTsgfQogfTsKIAotVEVTVF9GKFNlaEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRo
cm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkge30KK1RFU1RfRihTZWhFeGNlcHRpb25JblNl
dFVwVGVzdFN1aXRlVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZSkge30KIAot
Y2xhc3MgU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsK
K2NsYXNzIFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3Qg
ewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsgUmFpc2VFeGNl
cHRpb24oNDIsIDAsIDAsIE5VTEwpOyB9CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRl
KCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KIH07CiAKLVRFU1RfRihTZWhF
eGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3du
VGVzdENhc2UpIHt9CitURVNUX0YoU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRlc3Qs
CisgICAgICAgVGhyb3dzRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZSkge30KIAogY2xhc3Mg
U2VoRXhjZXB0aW9uSW5TZXRVcFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgpAQCAt
MTA5LDI0ICsxMTAsMjQgQEAgY2xhc3MgQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQg
QysrIGV4Y2VwdGlvbiIpKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2Uo
KSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMi
LAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVz
dENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVh
ckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsK
ICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QoKSB7
CisgIH5DeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERf
RkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCBkZXN0cnVjdG9yICIK
ICAgICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgQURE
X0ZBSUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlNldFVwKCkgIgog
ICAgICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4cGVjdGVkbHkuIjsKICAgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICBBRERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRv
d24oKSAiCiAgICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogICB9
CkBAIC0xMzcsOTcgKzEzOCw3OCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRl
c3QsIFRocm93c0V4Y2VwdGlvbkluQ29uc3RydWN0b3IpIHsKICAgICAgICAgICAgICAgICA8PCAi
Y2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogfQogCi0vLyBFeGNlcHRpb25zIGluIGRlc3RydWN0b3Jz
IGFyZSBub3Qgc3VwcG9ydGVkIGluIEMrKzExLgotI2lmICFHVEVTVF9MQU5HX0NYWDExCi1jbGFz
cyBDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgot
ICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBDeHhFeGNlcHRpb25JblNldFVw
VGVzdFN1aXRlVGVzdCgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2Vw
dGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJD
eHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCBjb25zdHJ1Y3RvciAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCi0gcHJvdGVjdGVkOgotICB+Q3h4RXhj
ZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCgpIHsKLSAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJM
RV9DT0RFX1dBUk5JTkdfQkVMT1dfKAotICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3Io
IlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKSk7Ci0gIH0KLX07Ci0KLVRFU1RfRihDeHhFeGNlcHRp
b25JbkRlc3RydWN0b3JUZXN0LCBUaHJvd3NFeGNlcHRpb25JbkRlc3RydWN0b3IpIHt9Ci0jZW5k
aWYgIC8vIEMrKzExIG1vZGUKLQotY2xhc3MgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVz
dCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2Fz
ZVRlc3QoKSB7Ci0gICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBl
Y3RlZC5cbiIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3Rh
dGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9y
KCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBw
cmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6
OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVz
dFN1aXRlVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMg
ZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5TZXRV
cFRlc3RDYXNlVGVzdCgpIHsKKyAgfkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0KCkg
b3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5T
ZXRVcFRlc3RDYXNlVGVzdCBkZXN0cnVjdG9yICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0U3VpdGVUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4
cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRp
b25JblNldFVwVGVzdENhc2VUZXN0OjpTZXRVcCgpICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICIKICAgICAgICAgICAgImNhbGxlZCBhcyBl
eHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lk
IFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdDo6VGVhckRvd24oKSAiCisgICAgICAgICAgICJD
eHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogfTsKIAotVEVTVF9GKEN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkgewor
VEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0LCBUaHJvd3NFeGNlcHRpb25J
blNldFVwVGVzdFN1aXRlKSB7CiAgIHByaW50ZigiJXMiLAotICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICIKKyAgICAgICAgICJDeHhFeGNlcHRpb25J
blNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgIgogICAgICAgICAgImNhbGxlZCBhcyBleHBl
Y3RlZC5cbiIpOwogfQogCi1jbGFzcyBDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0
IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RD
YXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICB0aHJvdyBz
dGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsKICAgfQogfTsKIAot
VEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlv
bkluVGVhckRvd25UZXN0Q2FzZSkge30KK1RFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVz
dFN1aXRlVGVzdCwKKyAgICAgICBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1aXRlKSB7
fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblNldFVwVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJs
aWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRl
YXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhF
eGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0
aW9uSW5TZXRVcFRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JblNldFVwVGVzdCgpIG92ZXJyaWRl
IHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0
IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3Rh
bmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHRocm93
IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CiAKLSAgdmly
dHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAg
IHByaW50ZigiJXMiLAogICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJE
b3duKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CkBAIC0yNDEsMjAg
KzIyMywyMCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QsIFRocm93c0V4Y2VwdGlv
bkluU2V0VXApIHsKIAogY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBz
dGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAg
ICAgICAgIkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgor
ICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRl
KCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAogIHByb3Rl
Y3RlZDoKLSAgfkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0KCkgeworICB+Q3h4RXhjZXB0aW9u
SW5UZWFyRG93blRlc3QoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAg
ICJDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgImNh
bGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
eworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRocm93IHN0ZDo6cnVudGltZV9l
cnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwogICB9CiB9OwpAQCAtMjYzLDIwICsyNDUs
MjAgQEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0LCBUaHJvd3NFeGNlcHRpb25J
blRlYXJEb3duKSB7fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdCA6IHB1Ymxp
YyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7Cisg
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAg
ICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAi
CisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd25UZXN0U3Vp
dGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJv
dGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QoKSB7CisgIH5DeHhFeGNlcHRp
b25JblRlc3RCb2R5VGVzdCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAg
ICAgIkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAi
Y2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAg
ICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAg
ICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKQEAgLTI5Niw3ICsyNzgsNyBAQCBURVNUKEN4
eEV4Y2VwdGlvblRlc3QsIFRocm93c05vblN0ZEN4eEV4Y2VwdGlvbikgewogLy8gb25lcy4KIHZv
aWQgVGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFu
ZGxlZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRoZSBwcm9ncmFtLiIpOwotICBmZmx1c2go
TlVMTCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhpdCgzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRl
c3QuY2MKaW5kZXggYzBjMzAyNmZiNTg5NTY2MGFkMmM5ZDY1ZmJkOTliNWZhZjlhZDQ4Yy4uYzBi
M2QxZjIxZDA0ZDNkZTc3ODAzODM2NzA0Y2I3ZjQ3ZDJhZGZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdC10ZXN0
LmNjCkBAIC0zMSw2ICszMSw3IEBACiAvLyBUZXN0cyBmb3IgZGVhdGggdGVzdHMuCiAKICNpbmNs
dWRlICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisKICNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgiCiAKQEAgLTQwLDcg
KzQxLDkgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiAjaWYgR1RFU1Rf
SEFTX0RFQVRIX1RFU1QKIAogIyBpZiBHVEVTVF9PU19XSU5ET1dTCisjICBpbmNsdWRlIDxmY250
bC5oPiAgICAgICAgICAgLy8gRm9yIE9fQklOQVJZCiAjICBpbmNsdWRlIDxkaXJlY3QuaD4gICAg
ICAgICAgLy8gRm9yIGNoZGlyKCkuCisjICBpbmNsdWRlIDxpby5oPgogIyBlbHNlCiAjICBpbmNs
dWRlIDx1bmlzdGQuaD4KICMgIGluY2x1ZGUgPHN5cy93YWl0Lmg+ICAgICAgICAvLyBGb3Igd2Fp
dHBpZC4KQEAgLTU5LDYgKzYyLDggQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1Ry
dWU7CiAKIG5hbWVzcGFjZSBwb3NpeCA9IDo6dGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4OwogCit1
c2luZyB0ZXN0aW5nOjpDb250YWluc1JlZ2V4OwordXNpbmcgdGVzdGluZzo6TWF0Y2hlcjsKIHVz
aW5nIHRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdEZhY3Rvcnk7CkBAIC05Nyw2ICsx
MDIsOCBAQCBjbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSB7CiB9ICAvLyBuYW1lc3BhY2Ug
aW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKK25hbWVzcGFjZSB7CisKIHZvaWQg
RGllV2l0aE1lc3NhZ2UoY29uc3QgOjpzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewogICBmcHJpbnRm
KHN0ZGVyciwgIiVzIiwgbWVzc2FnZS5jX3N0cigpKTsKICAgZmZsdXNoKHN0ZGVycik7ICAvLyBN
YWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhpdHMuCkBA
IC0xMjMsOSArMTMwLDcgQEAgY2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIFRlc3RGb3JEZWF0aFRlc3QoKSA6IG9yaWdpbmFsX2Rp
cl8oRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSkge30KIAotICB2aXJ0dWFsIH5UZXN0Rm9yRGVh
dGhUZXN0KCkgewotICAgIHBvc2l4OjpDaERpcihvcmlnaW5hbF9kaXJfLmNfc3RyKCkpOwotICB9
CisgIH5UZXN0Rm9yRGVhdGhUZXN0KCkgb3ZlcnJpZGUgeyBwb3NpeDo6Q2hEaXIob3JpZ2luYWxf
ZGlyXy5jX3N0cigpKTsgfQogCiAgIC8vIEEgc3RhdGljIG1lbWJlciBmdW5jdGlvbiB0aGF0J3Mg
ZXhwZWN0ZWQgdG8gZGllLgogICBzdGF0aWMgdm9pZCBTdGF0aWNNZW1iZXJGdW5jdGlvbigpIHsg
RGllSW5zaWRlKCJTdGF0aWNNZW1iZXJGdW5jdGlvbiIpOyB9CkBAIC0xMzYsNyArMTQxLDcgQEAg
Y2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICAgIERp
ZUluc2lkZSgiTWVtYmVyRnVuY3Rpb24iKTsKICAgfQogCi0gIC8vIFRydWUgaWZmIE1lbWJlckZ1
bmN0aW9uKCkgc2hvdWxkIGRpZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5j
dGlvbigpIHNob3VsZCBkaWUuCiAgIGJvb2wgc2hvdWxkX2RpZV87CiAgIGNvbnN0IEZpbGVQYXRo
IG9yaWdpbmFsX2Rpcl87CiB9OwpAQCAtMTUzLDcgKzE1OCw3IEBAIGNsYXNzIE1heURpZSB7CiAg
IH0KIAogIHByaXZhdGU6Ci0gIC8vIFRydWUgaWZmIE1lbWJlckZ1bmN0aW9uKCkgc2hvdWxkIGRp
ZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5jdGlvbigpIHNob3VsZCBkaWUu
CiAgIGJvb2wgc2hvdWxkX2RpZV87CiB9OwogCkBAIC0xOTksNiArMjA0LDI2IEBAIGludCBEaWVJ
bkRlYnVnRWxzZTEyKGludCogc2lkZWVmZmVjdCkgewogICByZXR1cm4gMTI7CiB9CiAKKyMgaWYg
R1RFU1RfT1NfV0lORE9XUworCisvLyBEZWF0aCBpbiBkYmcgZHVlIHRvIFdpbmRvd3MgQ1JUIGFz
c2VydGlvbiBmYWlsdXJlLCBub3Qgb3B0LgoraW50IERpZUluQ1JURGVidWdFbHNlMTIoaW50KiBz
aWRlZWZmZWN0KSB7CisgIGlmIChzaWRlZWZmZWN0KSAqc2lkZWVmZmVjdCA9IDEyOworCisgIC8v
IENyZWF0ZSBhbiBpbnZhbGlkIGZkIGJ5IGNsb3NpbmcgYSB2YWxpZCBvbmUKKyAgaW50IGZkcGlw
ZVsyXTsKKyAgRVhQRUNUX0VRKF9waXBlKGZkcGlwZSwgMjU2LCBPX0JJTkFSWSksIDApOworICBF
WFBFQ1RfRVEoX2Nsb3NlKGZkcGlwZVswXSksIDApOworICBFWFBFQ1RfRVEoX2Nsb3NlKGZkcGlw
ZVsxXSksIDApOworCisgIC8vIF9kdXAoKSBzaG91bGQgY3Jhc2ggaW4gZGVidWcgbW9kZQorICBF
WFBFQ1RfRVEoX2R1cChmZHBpcGVbMF0pLCAtMSk7CisKKyAgcmV0dXJuIDEyOworfQorCisjZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1MKKwogIyBpZiBHVEVTVF9PU19XSU5ET1dTIHx8IEdURVNU
X09TX0ZVQ0hTSUEKIAogLy8gVGVzdHMgdGhlIEV4aXRlZFdpdGhDb2RlIHByZWRpY2F0ZS4KQEAg
LTI3Myw2ICsyOTgsMTMgQEAgVEVTVChFeGl0U3RhdHVzUHJlZGljYXRlVGVzdCwgS2lsbGVkQnlT
aWduYWwpIHsKIAogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19GVUNI
U0lBCiAKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0
aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RhbmdsaW5nLWVsc2UiCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1wdHktYm9keSIKKyNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2VuZGlmCiAvLyBUZXN0cyB0aGF0IHRoZSBk
ZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBtYXkgb3IgbWF5IG5vdAogLy8g
YmUgZm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRoYXQgaW4gZWl0aGVyIGNhc2UgdGhlIGNv
bXBsZXRlIHRleHQKIC8vIGNvbXByaXNlcyBvbmx5IGEgc2luZ2xlIEMrKyBzdGF0ZW1lbnQuCkBA
IC0yOTYsNiArMzI4LDExIEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBTaW5nbGVTdGF0ZW1l
bnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpIDw8IDEgPDwgMiA8
PCAzOwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2Vu
ZGlmCisKKyMgaWYgR1RFU1RfVVNFU19QQ1JFCiAKIHZvaWQgRGllV2l0aEVtYmVkZGVkTnVsKCkg
ewogICBmcHJpbnRmKHN0ZGVyciwgIkhlbGxvJWNteSBudWxsIHdvcmxkLlxuIiwgJ1wwJyk7CkBA
IC0zMDMsOCArMzQwLDYgQEAgdm9pZCBEaWVXaXRoRW1iZWRkZWROdWwoKSB7CiAgIF9leGl0KDEp
OwogfQogCi0jIGlmIEdURVNUX1VTRVNfUENSRQotCiAvLyBUZXN0cyB0aGF0IEVYUEVDVF9ERUFU
SCBhbmQgQVNTRVJUX0RFQVRIIHdvcmsgd2hlbiB0aGUgZXJyb3IKIC8vIG1lc3NhZ2UgaGFzIGEg
TlVMIGNoYXJhY3RlciBpbiBpdC4KIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFbWJlZGRlZE51
bEluTWVzc2FnZSkgewpAQCAtMzY2LDE3ICs0MDEsMTkgQEAgdm9pZCBTaWdwcm9mQWN0aW9uKGlu
dCwgc2lnaW5mb190Kiwgdm9pZCopIHsgLyogbm8gb3AgKi8gfQogCiAvLyBTZXRzIFNJR1BST0Yg
YWN0aW9uIGFuZCBJVElNRVJfUFJPRiB0aW1lciAoaW50ZXJ2YWw6IDFtcykuCiB2b2lkIFNldFNp
Z3Byb2ZBY3Rpb25BbmRUaW1lcigpIHsKLSAgc3RydWN0IGl0aW1lcnZhbCB0aW1lcjsKLSAgdGlt
ZXIuaXRfaW50ZXJ2YWwudHZfc2VjID0gMDsKLSAgdGltZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9
IDE7Ci0gIHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgw
LCBzZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgTlVMTCkpOwogICBzdHJ1Y3Qgc2lnYWN0
aW9uIHNpZ25hbF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNp
Z25hbF9hY3Rpb24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CiAg
IHNpZ25hbF9hY3Rpb24uc2Ffc2lnYWN0aW9uID0gU2lncHJvZkFjdGlvbjsKICAgc2lnbmFsX2Fj
dGlvbi5zYV9mbGFncyA9IFNBX1JFU1RBUlQgfCBTQV9TSUdJTkZPOwotICBBU1NFUlRfRVEoMCwg
c2lnYWN0aW9uKFNJR1BST0YsICZzaWduYWxfYWN0aW9uLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgw
LCBzaWdhY3Rpb24oU0lHUFJPRiwgJnNpZ25hbF9hY3Rpb24sIG51bGxwdHIpKTsKKyAgLy8gdGlt
ZXIgY29tZXMgc2Vjb25kLCB0byBhdm9pZCBTSUdQUk9GIHByZW1hdHVyZSBkZWxpdmVyeSwgYXMg
c3VnZ2VzdGVkIGF0CisgIC8vIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51
YWwvaHRtbF9ub2RlL1NldHRpbmctYW4tQWxhcm0uaHRtbAorICBzdHJ1Y3QgaXRpbWVydmFsIHRp
bWVyOworICB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOworICB0aW1lci5pdF9pbnRlcnZh
bC50dl91c2VjID0gMTsKKyAgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKKyAg
QVNTRVJUX0VRKDAsIHNldGl0aW1lcihJVElNRVJfUFJPRiwgJnRpbWVyLCBudWxscHRyKSk7CiB9
CiAKIC8vIERpc2FibGVzIElUSU1FUl9QUk9GIHRpbWVyIGFuZCBpZ25vcmVzIFNJR1BST0Ygc2ln
bmFsLgpAQCAtMzg1LDcgKzQyMiw3IEBAIHZvaWQgRGlzYWJsZVNpZ3Byb2ZBY3Rpb25BbmRUaW1l
cihzdHJ1Y3Qgc2lnYWN0aW9uKiBvbGRfc2lnbmFsX2FjdGlvbikgewogICB0aW1lci5pdF9pbnRl
cnZhbC50dl9zZWMgPSAwOwogICB0aW1lci5pdF9pbnRlcnZhbC50dl91c2VjID0gMDsKICAgdGlt
ZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKLSAgQVNTRVJUX0VRKDAsIHNldGl0aW1l
cihJVElNRVJfUFJPRiwgJnRpbWVyLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIo
SVRJTUVSX1BST0YsICZ0aW1lciwgbnVsbHB0cikpOwogICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25h
bF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rp
b24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CkBAIC00NTIsMjEg
KzQ4OSwxNyBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgTWl4ZWRTdHlsZXMpIHsKIAogIyBp
ZiBHVEVTVF9IQVNfQ0xPTkUgJiYgR1RFU1RfSEFTX1BUSFJFQUQKIAotbmFtZXNwYWNlIHsKLQog
Ym9vbCBwdGhyZWFkX2ZsYWc7CiAKIHZvaWQgU2V0UHRocmVhZEZsYWcoKSB7CiAgIHB0aHJlYWRf
ZmxhZyA9IHRydWU7CiB9CiAKLX0gIC8vIG5hbWVzcGFjZQotCiBURVNUX0YoVGVzdEZvckRlYXRo
VGVzdCwgRG9lc05vdEV4ZWN1dGVBdGZvcmtIb29rcykgewogICBpZiAoIXRlc3Rpbmc6OkdURVNU
X0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpIHsKICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwogICAgIHB0aHJlYWRfZmxhZyA9IGZhbHNl
OwotICAgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2F0Zm9yaygmU2V0UHRocmVhZEZsYWcsIE5VTEws
IE5VTEwpKTsKKyAgICBBU1NFUlRfRVEoMCwgcHRocmVhZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFn
LCBudWxscHRyLCBudWxscHRyKSk7CiAgICAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIik7CiAg
ICAgQVNTRVJUX0ZBTFNFKHB0aHJlYWRfZmxhZyk7CiAgIH0KQEAgLTQ5NCwxOCArNTI3LDE1IEBA
IFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBY2NlcHRzQW55dGhpbmdDb252ZXJ0aWJsZVRvUkUp
IHsKICAgY29uc3QgdGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KHJlZ2V4X2Nfc3RyKTsKICAg
RVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJlZ2V4KTsKIAotIyBpZiBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORwotCi0gIGNvbnN0IDo6c3RyaW5nIHJlZ2V4X3N0cihyZWdleF9jX3N0cik7
Ci0gIEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigpLCByZWdleF9zdHIpOwotCi0jIGVuZGlm
ICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAjIGlmICFHVEVTVF9VU0VTX1BDUkUKIAog
ICBjb25zdCA6OnN0ZDo6c3RyaW5nIHJlZ2V4X3N0ZF9zdHIocmVnZXhfY19zdHIpOwogICBFWFBF
Q1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgcmVnZXhfc3RkX3N0cik7CiAKKyAgLy8gVGhpcyBv
bmUgaXMgdHJpY2t5OyBhIHRlbXBvcmFyeSBwb2ludGVyIGludG8gYW5vdGhlciB0ZW1wb3Jhcnku
ICBSZWZlcmVuY2UKKyAgLy8gbGlmZXRpbWUgZXh0ZW5zaW9uIG9mIHRoZSBwb2ludGVyIGlzIG5v
dCBzdWZmaWNpZW50LgorICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgOjpzdGQ6OnN0
cmluZyhyZWdleF9jX3N0cikuY19zdHIoKSk7CisKICMgZW5kaWYgIC8vICFHVEVTVF9VU0VTX1BD
UkUKIH0KIApAQCAtNTU1LDggKzU4NSw4IEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFcnJv
ck1lc3NhZ2VNaXNtYXRjaCkgewogICB9LCAiZGllZCBidXQgbm90IHdpdGggZXhwZWN0ZWQgZXJy
b3IiKTsKIH0KIAotLy8gT24gZXhpdCwgKmFib3J0ZWQgd2lsbCBiZSB0cnVlIGlmZiB0aGUgRVhQ
RUNUX0RFQVRIKCkgc3RhdGVtZW50Ci0vLyBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KKy8vIE9uIGV4
aXQsICphYm9ydGVkIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgRVhQRUNUX0RFQVRI
KCkKKy8vIHN0YXRlbWVudCBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KIHZvaWQgRXhwZWN0RGVhdGhU
ZXN0SGVscGVyKGJvb2wqIGFib3J0ZWQpIHsKICAgKmFib3J0ZWQgPSB0cnVlOwogICBFWFBFQ1Rf
REVBVEgoRGllSWYoZmFsc2UpLCAiRGllSWYiKTsgIC8vIFRoaXMgYXNzZXJ0aW9uIHNob3VsZCBm
YWlsLgpAQCAtNjM2LDYgKzY2Niw0MCBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgVGVzdEV4
cGVjdERlYnVnRGVhdGgpIHsKICMgZW5kaWYKIH0KIAorIyBpZiBHVEVTVF9PU19XSU5ET1dTCisK
Ky8vIFRlc3RzIHRoYXQgRVhQRUNUX0RFQlVHX0RFQVRIIHdvcmtzIGFzIGV4cGVjdGVkIHdoZW4g
aW4gZGVidWcgbW9kZQorLy8gdGhlIFdpbmRvd3MgQ1JUIGNyYXNoZXMgdGhlIHByb2Nlc3Mgd2l0
aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKy8vIDEuIEFzc2VydHMgb24gZGVhdGguCisvLyAyLiBI
YXMgbm8gc2lkZSBlZmZlY3QgKGRvZXNuJ3QgcG9wIHVwIGEgd2luZG93IG9yIHdhaXQgZm9yIHVz
ZXIgaW5wdXQpLgorLy8KKy8vIEFuZCBpbiBvcHQgbW9kZSwgaXQ6CisvLyAxLiAgSGFzIHNpZGUg
ZWZmZWN0cyBidXQgZG9lcyBub3QgYXNzZXJ0LgorVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIENS
VERlYnVnRGVhdGgpIHsKKyAgaW50IHNpZGVlZmZlY3QgPSAwOworCisgIC8vIFB1dCB0aGUgcmVn
ZXggaW4gYSBsb2NhbCB2YXJpYWJsZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuICJ1bnVz
ZWQiCisgIC8vIHdhcm5pbmcgaW4gb3B0IG1vZGUuCisgIGNvbnN0IGNoYXIqIHJlZ2V4ID0gImR1
cC4qIDogQXNzZXJ0aW9uIGZhaWxlZCI7CisKKyAgRVhQRUNUX0RFQlVHX0RFQVRIKERpZUluQ1JU
RGVidWdFbHNlMTIoJnNpZGVlZmZlY3QpLCByZWdleCkKKyAgICAgIDw8ICJNdXN0IGFjY2VwdCBh
IHN0cmVhbWVkIG1lc3NhZ2UiOworCisjIGlmZGVmIE5ERUJVRworCisgIC8vIENoZWNrcyB0aGF0
IHRoZSBhc3NpZ25tZW50IG9jY3VycyBpbiBvcHQgbW9kZSAoc2lkZWVmZmVjdCkuCisgIEVYUEVD
VF9FUSgxMiwgc2lkZWVmZmVjdCk7CisKKyMgZWxzZQorCisgIC8vIENoZWNrcyB0aGF0IHRoZSBh
c3NpZ25tZW50IGRvZXMgbm90IG9jY3VyIGluIGRiZyBtb2RlIChubyBzaWRlZWZmZWN0KS4KKyAg
RVhQRUNUX0VRKDAsIHNpZGVlZmZlY3QpOworCisjIGVuZGlmCit9CisKKyMgZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKKwogLy8gVGVzdHMgdGhhdCBBU1NFUlRfREVCVUdfREVBVEggd29ya3Mg
YXMgZXhwZWN0ZWQsIHRoYXQgaXMsIHlvdSBjYW4gc3RyZWFtIGEKIC8vIG1lc3NhZ2UgdG8gaXQs
IGFuZCBpbiBkZWJ1ZyBtb2RlIGl0OgogLy8gMS4gQXNzZXJ0cyBvbiBkZWF0aC4KQEAgLTg3Niw5
ICs5NDAsOSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRGVhdGhUZXN0TXVsdGlMaW5lTWF0
Y2hQYXNzKSB7CiBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RG
YWN0b3J5IHsKICBwdWJsaWM6CiAgIE1vY2tEZWF0aFRlc3RGYWN0b3J5KCk7Ci0gIHZpcnR1YWwg
Ym9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFKiByZWdleCwKLSAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCk7CisgIGJv
b2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgdGVzdGluZzo6
TWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisg
ICAgICAgICAgICAgIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSBvdmVycmlkZTsKIAogICAv
LyBTZXRzIHRoZSBwYXJhbWV0ZXJzIGZvciBzdWJzZXF1ZW50IGNhbGxzIHRvIENyZWF0ZS4KICAg
dm9pZCBTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLCBEZWF0aFRlc3Q6OlRlc3RSb2xlIHJvbGUs
CkBAIC04ODgsMTAgKzk1MiwxMiBAQCBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1Ymxp
YyBEZWF0aFRlc3RGYWN0b3J5IHsKICAgaW50IEFzc3VtZVJvbGVDYWxscygpIGNvbnN0IHsgcmV0
dXJuIGFzc3VtZV9yb2xlX2NhbGxzXzsgfQogICBpbnQgV2FpdENhbGxzKCkgY29uc3QgeyByZXR1
cm4gd2FpdF9jYWxsc187IH0KICAgc2l6ZV90IFBhc3NlZENhbGxzKCkgY29uc3QgeyByZXR1cm4g
cGFzc2VkX2FyZ3NfLnNpemUoKTsgfQotICBib29sIFBhc3NlZEFyZ3VtZW50KGludCBuKSBjb25z
dCB7IHJldHVybiBwYXNzZWRfYXJnc19bbl07IH0KKyAgYm9vbCBQYXNzZWRBcmd1bWVudChpbnQg
bikgY29uc3QgeworICAgIHJldHVybiBwYXNzZWRfYXJnc19bc3RhdGljX2Nhc3Q8c2l6ZV90Pihu
KV07CisgIH0KICAgc2l6ZV90IEFib3J0Q2FsbHMoKSBjb25zdCB7IHJldHVybiBhYm9ydF9hcmdz
Xy5zaXplKCk7IH0KICAgRGVhdGhUZXN0OjpBYm9ydFJlYXNvbiBBYm9ydEFyZ3VtZW50KGludCBu
KSBjb25zdCB7Ci0gICAgcmV0dXJuIGFib3J0X2FyZ3NfW25dOworICAgIHJldHVybiBhYm9ydF9h
cmdzX1tzdGF0aWNfY2FzdDxzaXplX3Q+KG4pXTsKICAgfQogICBib29sIFRlc3REZWxldGVkKCkg
Y29uc3QgeyByZXR1cm4gdGVzdF9kZWxldGVkXzsgfQogCkBAIC05MzMsMjIgKzk5OSwyMCBAQCBj
bGFzcyBNb2NrRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdCB7CiAgICAgICAgICAgICAgICAg
VGVzdFJvbGUgcm9sZSwgaW50IHN0YXR1cywgYm9vbCBwYXNzZWQpIDoKICAgICAgIHBhcmVudF8o
cGFyZW50KSwgcm9sZV8ocm9sZSksIHN0YXR1c18oc3RhdHVzKSwgcGFzc2VkXyhwYXNzZWQpIHsK
ICAgfQotICB2aXJ0dWFsIH5Nb2NrRGVhdGhUZXN0KCkgewotICAgIHBhcmVudF8tPnRlc3RfZGVs
ZXRlZF8gPSB0cnVlOwotICB9Ci0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIHsKKyAg
fk1vY2tEZWF0aFRlc3QoKSBvdmVycmlkZSB7IHBhcmVudF8tPnRlc3RfZGVsZXRlZF8gPSB0cnVl
OyB9CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSBvdmVycmlkZSB7CiAgICAgKytwYXJlbnRfLT5h
c3N1bWVfcm9sZV9jYWxsc187CiAgICAgcmV0dXJuIHJvbGVfOwogICB9Ci0gIHZpcnR1YWwgaW50
IFdhaXQoKSB7CisgIGludCBXYWl0KCkgb3ZlcnJpZGUgewogICAgICsrcGFyZW50Xy0+d2FpdF9j
YWxsc187CiAgICAgcmV0dXJuIHN0YXR1c187CiAgIH0KLSAgdmlydHVhbCBib29sIFBhc3NlZChi
b29sIGV4aXRfc3RhdHVzX29rKSB7CisgIGJvb2wgUGFzc2VkKGJvb2wgZXhpdF9zdGF0dXNfb2sp
IG92ZXJyaWRlIHsKICAgICBwYXJlbnRfLT5wYXNzZWRfYXJnc18ucHVzaF9iYWNrKGV4aXRfc3Rh
dHVzX29rKTsKICAgICByZXR1cm4gcGFzc2VkXzsKICAgfQotICB2aXJ0dWFsIHZvaWQgQWJvcnQo
QWJvcnRSZWFzb24gcmVhc29uKSB7CisgIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSBv
dmVycmlkZSB7CiAgICAgcGFyZW50Xy0+YWJvcnRfYXJnc18ucHVzaF9iYWNrKHJlYXNvbik7CiAg
IH0KIApAQCAtOTkyLDE2ICsxMDU2LDE0IEBAIHZvaWQgTW9ja0RlYXRoVGVzdEZhY3Rvcnk6OlNl
dFBhcmFtZXRlcnMoYm9vbCBjcmVhdGUsCiAvLyBTZXRzIHRlc3QgdG8gTlVMTCAoaWYgY3JlYXRl
XyBpcyBmYWxzZSkgb3IgdG8gdGhlIGFkZHJlc3Mgb2YgYSBuZXcKIC8vIE1vY2tEZWF0aFRlc3Qg
b2JqZWN0IHdpdGggcGFyYW1ldGVycyB0YWtlbiBmcm9tIHRoZSBsYXN0IGNhbGwKIC8vIHRvIFNl
dFBhcmFtZXRlcnMgKGlmIGNyZWF0ZV8gaXMgdHJ1ZSkuICBBbHdheXMgcmV0dXJucyB0cnVlLgot
Ym9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIC8qc3RhdGVtZW50
Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6UkUqIC8qcmVnZXgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiAvKmZpbGUqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgLypsaW5lKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhU
ZXN0KiogdGVzdCkgeworYm9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKAorICAgIGNv
bnN0IGNoYXIqIC8qc3RhdGVtZW50Ki8sIHRlc3Rpbmc6Ok1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJp
bmcmPiAvKm1hdGNoZXIqLywKKyAgICBjb25zdCBjaGFyKiAvKmZpbGUqLywgaW50IC8qbGluZSov
LCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHRlc3RfZGVsZXRlZF8gPSBmYWxzZTsKICAgaWYgKGNy
ZWF0ZV8pIHsKICAgICAqdGVzdCA9IG5ldyBNb2NrRGVhdGhUZXN0KHRoaXMsIHJvbGVfLCBzdGF0
dXNfLCBwYXNzZWRfKTsKICAgfSBlbHNlIHsKLSAgICAqdGVzdCA9IE5VTEw7CisgICAgKnRlc3Qg
PSBudWxscHRyOwogICB9CiAgIHJldHVybiB0cnVlOwogfQpAQCAtMTAxNCwxNiArMTA3NiwxNiBA
QCBjbGFzcyBNYWNyb0xvZ2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBz
dGF0aWMgdGVzdGluZzo6aW50ZXJuYWw6OlJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KiByZXBsYWNl
cl87CiAgIHN0YXRpYyBNb2NrRGVhdGhUZXN0RmFjdG9yeSogZmFjdG9yeV87CiAKLSAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7
CiAgICAgZmFjdG9yeV8gPSBuZXcgTW9ja0RlYXRoVGVzdEZhY3Rvcnk7CiAgICAgcmVwbGFjZXJf
ID0gbmV3IHRlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeShmYWN0b3J5
Xyk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgcmVwbGFjZXJfOwotICAgIHJl
cGxhY2VyXyA9IE5VTEw7CisgICAgcmVwbGFjZXJfID0gbnVsbHB0cjsKICAgICBkZWxldGUgZmFj
dG9yeV87Ci0gICAgZmFjdG9yeV8gPSBOVUxMOworICAgIGZhY3RvcnlfID0gbnVsbHB0cjsKICAg
fQogCiAgIC8vIFJ1bnMgYSBkZWF0aCB0ZXN0IHRoYXQgYnJlYWtzIHRoZSBydWxlcyBieSByZXR1
cm5pbmcuICBTdWNoIGEgZGVhdGgKQEAgLTEwMzcsMTAgKzEwOTksOSBAQCBjbGFzcyBNYWNyb0xv
Z2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICB9CiB9OwogCi10ZXN0aW5n
OjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6
OnJlcGxhY2VyXwotICAgID0gTlVMTDsKLU1vY2tEZWF0aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2lj
RGVhdGhUZXN0OjpmYWN0b3J5XyA9IE5VTEw7Ci0KK3Rlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNl
RGVhdGhUZXN0RmFjdG9yeSogTWFjcm9Mb2dpY0RlYXRoVGVzdDo6cmVwbGFjZXJfID0KKyAgICBu
dWxscHRyOworTW9ja0RlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OmZhY3Rv
cnlfID0gbnVsbHB0cjsKIAogLy8gVGVzdCB0aGF0IG5vdGhpbmcgaGFwcGVucyB3aGVuIHRoZSBm
YWN0b3J5IGRvZXNuJ3QgcmV0dXJuIGEgRGVhdGhUZXN0OgogVEVTVF9GKE1hY3JvTG9naWNEZWF0
aFRlc3QsIE5vdGhpbmdIYXBwZW5zKSB7CkBAIC0xMjc5LDkgKzEzNDAsNiBAQCBURVNUKFBhcnNl
TmF0dXJhbE51bWJlclRlc3QsIFdvcmtzRm9yU2hvcnRlckludGVnZXJzKSB7CiAKICMgaWYgR1RF
U1RfT1NfV0lORE9XUwogVEVTVChFbnZpcm9ubWVudFRlc3QsIEhhbmRsZUZpdHNJbnRvU2l6ZVQp
IHsKLSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHRlc3QgYWZ0ZXIgdGhpcyBjb25kaXRpb24gaXMg
dmVyaWZpZWQKLSAgLy8gaW4gYSBzdGF0aWMgYXNzZXJ0aW9uIGluIGd0ZXN0LWRlYXRoLXRlc3Qu
Y2MgaW4gdGhlIGZ1bmN0aW9uCi0gIC8vIEdldFN0YXR1c0ZpbGVEZXNjcmlwdG9yLgogICBBU1NF
UlRfVFJVRShzaXplb2YoSEFORExFKSA8PSBzaXplb2Yoc2l6ZV90KSk7CiB9CiAjIGVuZGlmICAv
LyBHVEVTVF9PU19XSU5ET1dTCkBAIC0xMzE5LDggKzEzNzcsNTMgQEAgVEVTVChJbkRlYXRoVGVz
dENoaWxkRGVhdGhUZXN0LCBSZXBvcnRzRGVhdGhUZXN0Q29ycmVjdGx5SW5UaHJlYWRTYWZlU3R5
bGUpIHsKICAgfSwgIkluc2lkZSIpOwogfQogCit2b2lkIERpZVdpdGhNZXNzYWdlKGNvbnN0IGNo
YXIqIG1lc3NhZ2UpIHsKKyAgZnB1dHMobWVzc2FnZSwgc3RkZXJyKTsKKyAgZmZsdXNoKHN0ZGVy
cik7ICAvLyBNYWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3Mg
ZXhpdHMuCisgIF9leGl0KDEpOworfQorCitURVNUKE1hdGNoZXJEZWF0aFRlc3QsIERvZXNOb3RC
cmVha0JhcmVSZWdleE1hdGNoaW5nKSB7CisgIC8vIGdvb2dsZXRlc3QgdGVzdHMgdGhpcywgb2Yg
Y291cnNlOyBoZXJlIHdlIGVuc3VyZSB0aGF0IGluY2x1ZGluZyBnb29nbGVtb2NrCisgIC8vIGhh
cyBub3QgYnJva2VuIGl0LgorI2lmIEdURVNUX1VTRVNfUE9TSVhfUkUKKyAgRVhQRUNUX0RFQVRI
KERpZVdpdGhNZXNzYWdlKCJPLCBJIGRpZSwgSG9yYXRpby4iKSwgIkkgZFthZWlvdV1lIik7Cisj
ZWxzZQorICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIk8sIEkgZGllLCBIb3JhdGlvLiIp
LCAiSSBkaT9lIik7CisjZW5kaWYKK30KKworVEVTVChNYXRjaGVyRGVhdGhUZXN0LCBNb25vbW9y
cGhpY01hdGNoZXJNYXRjaGVzKSB7CisgIEVYUEVDVF9ERUFUSChEaWVXaXRoTWVzc2FnZSgiQmVo
aW5kIE8sIEkgYW0gc2xhaW4hIiksCisgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiSSBhbSBzbGFpbiIpKSk7Cit9CisKK1RFU1QoTWF0Y2hl
ckRlYXRoVGVzdCwgTW9ub21vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNoKSB7CisgIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKAorICAgICAgICAgIERpZVdpdGhN
ZXNzYWdlKCJCZWhpbmQgTywgSSBhbSBzbGFpbiEiKSwKKyAgICAgICAgICBNYXRjaGVyPGNvbnN0
IHN0ZDo6c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiT3csIEkgYW0gc2xhaW4iKSkpLAorICAgICAg
IkV4cGVjdGVkOiBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gXCJPdywgSSBhbSBzbGFpblwi
Iik7Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyTWF0Y2hl
cykgeworICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIlRoZSByZXN0IGlzIHNpbGVuY2Uu
IiksCisgICAgICAgICAgICAgICBDb250YWluc1JlZ2V4KCJyZXN0IGlzIHNpbGVuY2UiKSk7Cit9
CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNo
KSB7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKERpZVdp
dGhNZXNzYWdlKCJUaGUgcmVzdCBpcyBzaWxlbmNlLiIpLAorICAgICAgICAgICAgICAgICAgIENv
bnRhaW5zUmVnZXgoInJlc3QgaXMgc2NpZW5jZSIpKSwKKyAgICAgICJFeHBlY3RlZDogY29udGFp
bnMgcmVndWxhciBleHByZXNzaW9uIFwicmVzdCBpcyBzY2llbmNlXCIiKTsKK30KKworfSAgLy8g
bmFtZXNwYWNlCisKICNlbHNlICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QgZm9sbG93cwogCitu
YW1lc3BhY2UgeworCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZGVycjsKIHVz
aW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRDYXB0dXJlZFN0ZGVycjsKIApAQCAtMTM2OSw4ICsx
NDcyLDE5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1Rlc3QsIEFzc2VydERlYXREb2Vz
Tm90UmV0dXJuaElmVW5zdXBwb3J0ZWQpIHsKICAgRVhQRUNUX0VRKDEsIG4pOwogfQogCit9ICAv
LyBuYW1lc3BhY2UKKwogI2VuZGlmICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAorbmFtZXNw
YWNlIHsKKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJv
cHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIC8vIFRlc3RzIHRoYXQgdGhl
IGRlYXRoIHRlc3QgbWFjcm9zIGV4cGFuZCB0byBjb2RlIHdoaWNoIG1heSBvciBtYXkgbm90CiAv
LyBiZSBmb2xsb3dlZCBieSBvcGVyYXRvcjw8LCBhbmQgdGhhdCBpbiBlaXRoZXIgY2FzZSB0aGUg
Y29tcGxldGUgdGV4dAogLy8gY29tcHJpc2VzIG9ubHkgYSBzaW5nbGUgQysrIHN0YXRlbWVudC4K
QEAgLTEzOTYsNiArMTUxMCw5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERl
YXRoVGVzdCwgU2luZ2xlU3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICBFWFBFQ1RfREVBVEhfSUZf
U1VQUE9SVEVEKF9leGl0KDEpLCAiIikgPDwgMSA8PCAyIDw8IDM7CiB9CisjaWZkZWYgX19HTlVD
X18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCBj
b25kaXRpb25hbCBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBpbnRlcmFj
dHMKIC8vIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KQEAgLTE0MjEsMyArMTUzOCw1IEBA
IFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERlYXRoVGVzdCwgU3dpdGNoU3RhdGVt
ZW50KSB7CiBURVNUKE5vdEFEZWF0aFRlc3QsIFRlc3QpIHsKICAgU1VDQ0VFRCgpOwogfQorCit9
ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCmluZGV4IGI4Yjk0NzBmYzg4
YWQxN2FhZWI2NjRkNDdjMjcwY2ZjYWE3MzFiZWYuLjcyMTk2ODBkMDc0OTc3Nzc4NGY2NDUxNDdi
NTAzOTVkYjA5YmE5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYwpAQCAtNTksNyArNTks
NyBAQCBURVNUKEN4eEV4Y2VwdGlvbkRlYXRoVGVzdCwgRXhjZXB0aW9uSXNGYWlsdXJlKSB7CiAK
IGNsYXNzIFRlc3RFeGNlcHRpb24gOiBwdWJsaWMgc3RkOjpleGNlcHRpb24gewogIHB1YmxpYzoK
LSAgdmlydHVhbCBjb25zdCBjaGFyKiB3aGF0KCkgY29uc3QgdGhyb3coKSB7IHJldHVybiAiZXhj
ZXB0aW9uYWwgbWVzc2FnZSI7IH0KKyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0
IG92ZXJyaWRlIHsgcmV0dXJuICJleGNlcHRpb25hbCBtZXNzYWdlIjsgfQogfTsKIAogVEVTVChD
eHhFeGNlcHRpb25EZWF0aFRlc3QsIFByaW50c01lc3NhZ2VGb3JTdGRFeGNlcHRpb25zKSB7CkBA
IC02OCw3ICs2OCw3IEBAIFRFU1QoQ3h4RXhjZXB0aW9uRGVhdGhUZXN0LCBQcmludHNNZXNzYWdl
Rm9yU3RkRXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9u
YWwgbWVzc2FnZSIpOwogICAvLyBWZXJpZmllcyB0aGF0IHRoZSBsb2NhdGlvbiBpcyBtZW50aW9u
ZWQgaW4gdGhlIGZhaWx1cmUgdGV4dC4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X0RFQVRIKHRocm93IFRlc3RFeGNlcHRpb24oKSwgIiIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgX19GSUxFX18pOwogfQogIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElP
TlMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWVudi12YXItdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1lbnYtdmFyLXRlc3QucHkKaW5kZXggZTFlZmVlZTFlYWI4YzZkYWNiNWQyOTI2ZjRiNWM5MDgw
OTM4ZGIxMy4uMDJjMzY1NWMzOTgyNjg5NjVhMjg1MTYyMzUyMzE3NTIxOWJhYzU2YyAxMDA3NTUK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVz
dC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZW52LXZh
ci10ZXN0LnB5CkBAIC00NSw4ICs0NSw4IEBAIGVudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQog
CiBkZWYgQXNzZXJ0RXEoZXhwZWN0ZWQsIGFjdHVhbCk6CiAgIGlmIGV4cGVjdGVkICE9IGFjdHVh
bDoKLSAgICBwcmludCAnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3RlZCwpCi0gICAgcHJpbnQgJyAg
QWN0dWFsOiAlcycgJSAoYWN0dWFsLCkKKyAgICBwcmludCgnRXhwZWN0ZWQ6ICVzJyAlIChleHBl
Y3RlZCwpKQorICAgIHByaW50KCcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpKQogICAgIHJhaXNl
IEFzc2VydGlvbkVycm9yCiAKIApAQCAtODUsOSArODUsMTIgQEAgY2xhc3MgR1Rlc3RFbnZWYXJU
ZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogCiAgICAgVGVzdEZsYWcoJ2JyZWFrX29u
X2ZhaWx1cmUnLCAnMScsICcwJykKICAgICBUZXN0RmxhZygnY29sb3InLCAneWVzJywgJ2F1dG8n
KQorICAgIFNldEVudlZhcignVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnLCBOb25l
KSAgIyBGb3IgJ2ZhaWxfZmFzdCcgdGVzdAorICAgIFRlc3RGbGFnKCdmYWlsX2Zhc3QnLCAnMScs
ICcwJykKICAgICBUZXN0RmxhZygnZmlsdGVyJywgJ0Zvb1Rlc3QuQmFyJywgJyonKQogICAgIFNl
dEVudlZhcignWE1MX09VVFBVVF9GSUxFJywgTm9uZSkgICMgRm9yICdvdXRwdXQnIHRlc3QKICAg
ICBUZXN0RmxhZygnb3V0cHV0JywgJ3htbDp0bXAvZm9vLnhtbCcsICcnKQorICAgIFRlc3RGbGFn
KCdicmllZicsICcxJywgJzAnKQogICAgIFRlc3RGbGFnKCdwcmludF90aW1lJywgJzAnLCAnMScp
CiAgICAgVGVzdEZsYWcoJ3JlcGVhdCcsICc5OTknLCAnMScpCiAgICAgVGVzdEZsYWcoJ3Rocm93
X29uX2ZhaWx1cmUnLCAnMScsICcwJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKaW5kZXggZmQyYWE4MmY3NGZh
YTIxMjAxZTc5YWUwZTVjM2I1Njg1NTNkZjMzNy4uNTJmOTU4NjRlMWU1ZmY0YmQ4ZjFjN2U5OWUx
NTMxMDY5NDE4MTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKQEAgLTcyLDYgKzcyLDExIEBAIHZvaWQg
UHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAgICByZXR1cm47CiAgIH0KIAorICBpZiAo
c3RyY21wKGZsYWcsICJmYWlsX2Zhc3QiKSA9PSAwKSB7CisgICAgY291dCA8PCBHVEVTVF9GTEFH
KGZhaWxfZmFzdCk7CisgICAgcmV0dXJuOworICB9CisKICAgaWYgKHN0cmNtcChmbGFnLCAiZmls
dGVyIikgPT0gMCkgewogICAgIGNvdXQgPDwgR1RFU1RfRkxBRyhmaWx0ZXIpOwogICAgIHJldHVy
bjsKQEAgLTgyLDYgKzg3LDExIEBAIHZvaWQgUHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsK
ICAgICByZXR1cm47CiAgIH0KIAorICBpZiAoc3RyY21wKGZsYWcsICJicmllZiIpID09IDApIHsK
KyAgICBjb3V0IDw8IEdURVNUX0ZMQUcoYnJpZWYpOworICAgIHJldHVybjsKKyAgfQorCiAgIGlm
IChzdHJjbXAoZmxhZywgInByaW50X3RpbWUiKSA9PSAwKSB7CiAgICAgY291dCA8PCBHVEVTVF9G
TEFHKHByaW50X3RpbWUpOwogICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYWViMmRmZmVhZTQyZmMwMzM4YTFlZGE5OWNkNGQ0MzViNzlhN2IzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZhaWxm
YXN0LXVuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDEwIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4K
KyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyIiIlVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3QgZmFpbF9mYXN0
LgorCitBIHVzZXIgY2FuIHNwZWNpZnkgaWYgYSBHb29nbGUgVGVzdCBwcm9ncmFtIHNob3VsZCBj
b250aW51ZSB0ZXN0IGV4ZWN1dGlvbgorYWZ0ZXIgYSB0ZXN0IGZhaWx1cmUgdmlhIHRoZSBHVEVT
VF9GQUlMX0ZBU1QgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCistLWd0ZXN0X2ZhaWxfZmFz
dCBmbGFnLiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgZmxhZyBjYW4gYWxzbyBiZSBjaGFuZ2Vk
CitieSBCYXplbCBmYWlsIGZhc3QgZW52aXJvbm1lbnQgdmFyaWFibGUgVEVTVEJSSURHRV9URVNU
X1JVTk5FUl9GQUlMX0ZBU1QuCisKK1RoaXMgc2NyaXB0IHRlc3RzIHN1Y2ggZnVuY3Rpb25hbGl0
eSBieSBpbnZva2luZyBnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XworKGEgcHJvZ3JhbSB3
cml0dGVuIHdpdGggR29vZ2xlIFRlc3QpIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50cyBhbmQg
Y29tbWFuZAorbGluZSBmbGFncy4KKyIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCBndGVzdF90ZXN0
X3V0aWxzCisKKyMgQ29uc3RhbnRzLgorCisjIEJhemVsIHRlc3RicmlkZ2UgZW52aXJvbm1lbnQg
dmFyaWFibGUgZm9yIGZhaWwgZmFzdAorQkFaRUxfRkFJTF9GQVNUX0VOVl9WQVIgPSAnVEVTVEJS
SURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnCisKKyMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxl
IGZvciBzcGVjaWZ5aW5nIGZhaWwgZmFzdC4KK0ZBSUxfRkFTVF9FTlZfVkFSID0gJ0dURVNUX0ZB
SUxfRkFTVCcKKworIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIHNwZWNpZnlpbmcgZmFpbCBm
YXN0LgorRkFJTF9GQVNUX0ZMQUcgPSAnZ3Rlc3RfZmFpbF9mYXN0JworCisjIFRoZSBjb21tYW5k
IGxpbmUgZmxhZyB0byBydW4gZGlzYWJsZWQgdGVzdHMuCitSVU5fRElTQUJMRURfRkxBRyA9ICdn
dGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cycKKworIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcg
Zm9yIHNwZWNpZnlpbmcgYSBmaWx0ZXIuCitGSUxURVJfRkxBRyA9ICdndGVzdF9maWx0ZXInCisK
KyMgQ29tbWFuZCB0byBydW4gdGhlIGdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfIHByb2dy
YW0uCitDT01NQU5EID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoCisg
ICAgJ2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfJykKKworIyBUaGUgY29tbWFuZCBsaW5l
IGZsYWcgdG8gdGVsbCBHb29nbGUgVGVzdCB0byBvdXRwdXQgdGhlIGxpc3Qgb2YgdGVzdHMgaXQK
KyMgd2lsbCBydW4uCitMSVNUX1RFU1RTX0ZMQUcgPSAnLS1ndGVzdF9saXN0X3Rlc3RzJworCisj
IEluZGljYXRlcyB3aGV0aGVyIEdvb2dsZSBUZXN0IHN1cHBvcnRzIGRlYXRoIHRlc3RzLgorU1VQ
UE9SVFNfREVBVEhfVEVTVFMgPSAnSGFzRGVhdGhUZXN0JyBpbiBndGVzdF90ZXN0X3V0aWxzLlN1
YnByb2Nlc3MoCisgICAgW0NPTU1BTkQsIExJU1RfVEVTVFNfRkxBR10pLm91dHB1dAorCisjIFV0
aWxpdGllcy4KKworZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisKKworZGVmIFNldEVudlZh
cihlbnZfdmFyLCB2YWx1ZSk6CisgICIiIlNldHMgdGhlIGVudiB2YXJpYWJsZSB0byAndmFsdWUn
OyB1bnNldHMgaXQgd2hlbiAndmFsdWUnIGlzIE5vbmUuIiIiCisKKyAgaWYgdmFsdWUgaXMgbm90
IE5vbmU6CisgICAgZW52aXJvbltlbnZfdmFyXSA9IHZhbHVlCisgIGVsaWYgZW52X3ZhciBpbiBl
bnZpcm9uOgorICAgIGRlbCBlbnZpcm9uW2Vudl92YXJdCisKKworZGVmIFJ1bkFuZFJldHVybk91
dHB1dCh0ZXN0X3N1aXRlPU5vbmUsIGZhaWxfZmFzdD1Ob25lLCBydW5fZGlzYWJsZWQ9RmFsc2Up
OgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5kIHJldHVybnMgaXRzIG91dHB1dC4iIiIK
KworICBhcmdzID0gW10KKyAgeG1sX3BhdGggPSBvcy5wYXRoLmpvaW4oZ3Rlc3RfdGVzdF91dGls
cy5HZXRUZW1wRGlyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICcuR1Rlc3RGYWlsRmFz
dFVuaXRUZXN0LnhtbCcpCisgIGFyZ3MgKz0gWyctLWd0ZXN0X291dHB1dD14bWw6JyArIHhtbF9w
YXRoXQorICBpZiBmYWlsX2Zhc3QgaXMgbm90IE5vbmU6CisgICAgaWYgaXNpbnN0YW5jZShmYWls
X2Zhc3QsIHN0cik6CisgICAgICBhcmdzICs9IFsnLS0lcz0lcycgJSAoRkFJTF9GQVNUX0ZMQUcs
IGZhaWxfZmFzdCldCisgICAgZWxpZiBmYWlsX2Zhc3Q6CisgICAgICBhcmdzICs9IFsnLS0lcycg
JSBGQUlMX0ZBU1RfRkxBR10KKyAgICBlbHNlOgorICAgICAgYXJncyArPSBbJy0tbm8lcycgJSBG
QUlMX0ZBU1RfRkxBR10KKyAgaWYgdGVzdF9zdWl0ZToKKyAgICBhcmdzICs9IFsnLS0lcz0lcy4q
JyAlIChGSUxURVJfRkxBRywgdGVzdF9zdWl0ZSldCisgIGlmIHJ1bl9kaXNhYmxlZDoKKyAgICBh
cmdzICs9IFsnLS0lcycgJSBSVU5fRElTQUJMRURfRkxBR10KKyAgdHh0X291dCA9IGd0ZXN0X3Rl
c3RfdXRpbHMuU3VicHJvY2VzcyhbQ09NTUFORF0gKyBhcmdzLCBlbnY9ZW52aXJvbikub3V0cHV0
CisgIHdpdGggb3Blbih4bWxfcGF0aCkgYXMgeG1sX2ZpbGU6CisgICAgcmV0dXJuIHR4dF9vdXQs
IHhtbF9maWxlLnJlYWQoKQorCisKKyMgVGhlIHVuaXQgdGVzdC4KK2NsYXNzIEdUZXN0RmFpbEZh
c3RVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKKyAgIiIiVGVzdHMgdGhlIGVu
diB2YXJpYWJsZSBvciB0aGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIGZhaWxfZmFzdC4iIiIKKwor
ICBkZWYgdGVzdERlZmF1bHRCZWhhdmlvcihzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygbm90IHNwZWNpZnlpbmcgdGhlIGZhaWxfZmFzdC4iIiIKKworICAgIHR4dCwgXyA9IFJ1
bkFuZFJldHVybk91dHB1dCgpCisgICAgc2VsZi5hc3NlcnRJbignMjIgRkFJTEVEIFRFU1QnLCB0
eHQpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RmxhZyhzZWxmKToKKyAgICB0eHQsIF8gPSBSdW5B
bmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2ltcGxlVGVzdCcsIGZhaWxfZmFzdD1UcnVl
KQorICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgc2VsZi5hc3Nl
cnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisKKyAgICB0eHQsIF8gPSBSdW5BbmRS
ZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2ltcGxlVGVzdCcsIGZhaWxfZmFzdD1GYWxzZSkK
KyAgICBzZWxmLmFzc2VydEluKCc0IEZBSUxFRCBURVNUJywgdHh0KQorICAgIHNlbGYuYXNzZXJ0
Tm90SW4oJ1sgIFNLSVBQRUQgXScsIHR4dCkKKworICBkZWYgdGVzdEdvb2dsZXRlc3RFbnZWYXIo
c2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHNwZWNpZnlpbmcgZmFpbF9mYXN0
IHZpYSBHb29nbGV0ZXN0IGVudiB2YXIuIiIiCisKKyAgICB0cnk6CisgICAgICBTZXRFbnZWYXIo
RkFJTF9GQVNUX0VOVl9WQVIsICcxJykKKyAgICAgIHR4dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1
dCgnSGFzU2ltcGxlVGVzdCcpCisgICAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywg
dHh0KQorICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisK
KyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgJzAnKQorICAgICAgdHh0LCBfID0g
UnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4o
JzQgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydE5vdEluKCdbICBTS0lQUEVE
IF0nLCB0eHQpCisgICAgZmluYWxseToKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZB
UiwgTm9uZSkKKworICBkZWYgdGVzdEJhemVsRW52VmFyKHNlbGYpOgorICAgICIiIlRlc3RzIHRo
ZSBiZWhhdmlvciBvZiBzcGVjaWZ5aW5nIGZhaWxfZmFzdCB2aWEgQmF6ZWwgdGVzdGJyaWRnZS4i
IiIKKworICAgIHRyeToKKyAgICAgIFNldEVudlZhcihCQVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwg
JzEnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykK
KyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFz
c2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0cycsIHR4dCkKKworICAgICAgU2V0RW52VmFyKEJB
WkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5P
dXRwdXQoJ0hhc1NpbXBsZVRlc3QnKQorICAgICAgc2VsZi5hc3NlcnRJbignNCBGQUlMRUQgVEVT
VCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ1sgIFNLSVBQRUQgXScsIHR4dCkKKyAg
ICBmaW5hbGx5OgorICAgICAgU2V0RW52VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25l
KQorCisgIGRlZiB0ZXN0RmxhZ092ZXJyaWRlc0VudlZhcihzZWxmKToKKyAgICAiIiJUZXN0cyBw
cmVjZWRlbmNlIG9mIGZsYWcgb3ZlciBlbnYgdmFyLiIiIgorCisgICAgdHJ5OgorICAgICAgU2V0
RW52VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1
cm5PdXRwdXQoJ0hhc1NpbXBsZVRlc3QnLCBUcnVlKQorICAgICAgc2VsZi5hc3NlcnRJbignMSBG
QUlMRUQgVEVTVCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRl
c3RzJywgdHh0KQorICAgIGZpbmFsbHk6CisgICAgICBTZXRFbnZWYXIoRkFJTF9GQVNUX0VOVl9W
QVIsIE5vbmUpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RW52VmFyT3ZlcnJpZGVzQmF6ZWxFbnZW
YXIoc2VsZik6CisgICAgIiIiVGVzdHMgdGhhdCB0aGUgR29vZ2xldGVzdCBuYXRpdmUgZW52IHZh
ciBvdmVyIEJhemVsIHRlc3RicmlkZ2UuIiIiCisKKyAgICB0cnk6CisgICAgICBTZXRFbnZWYXIo
QkFaRUxfRkFJTF9GQVNUX0VOVl9WQVIsICcwJykKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1Rf
RU5WX1ZBUiwgJzEnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1w
bGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAg
ICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0cycsIHR4dCkKKyAgICBmaW5hbGx5
OgorICAgICAgU2V0RW52VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCBOb25lKQorICAgICAgU2V0RW52
VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25lKQorCisgIGRlZiB0ZXN0RXZlbnRMaXN0
ZW5lcihzZWxmKToKKyAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0n
SGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9VHJ1ZSkKKyAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxF
RCBURVNUJywgdHh0KQorICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRlc3RzJywg
dHh0KQorICAgIGZvciBleHBlY3RlZF9jb3VudCwgY2FsbGJhY2sgaW4gWygxLCAnT25UZXN0U3Vp
dGVTdGFydCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0U3RhcnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09u
VGVzdEVuZCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0UGFydFJlc3VsdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgx
LCAnT25UZXN0U3VpdGVFbmQnKV06CisgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAg
IGV4cGVjdGVkX2NvdW50LCB0eHQuY291bnQoY2FsbGJhY2spLAorICAgICAgICAgICdFeHBlY3Rl
ZCAlZCBjYWxscyB0byBjYWxsYmFjayAlcyBtYXRjaCBjb3VudCBvbiBvdXRwdXQ6ICVzICcgJQor
ICAgICAgICAgIChleHBlY3RlZF9jb3VudCwgY2FsbGJhY2ssIHR4dCkpCisKKyAgICB0eHQsIF8g
PSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9
RmFsc2UpCisgICAgc2VsZi5hc3NlcnRJbignMyBGQUlMRUQgVEVTVCcsIHR4dCkKKyAgICBzZWxm
LmFzc2VydEluKCdbICBTS0lQUEVEIF0gMSB0ZXN0JywgdHh0KQorICAgIGZvciBleHBlY3RlZF9j
b3VudCwgY2FsbGJhY2sgaW4gWygxLCAnT25UZXN0U3VpdGVTdGFydCcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25UZXN0U3RhcnQnKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09uVGVzdEVuZCcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25UZXN0UGFydFJlc3VsdCcpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxLCAnT25UZXN0U3VpdGVFbmQnKV06Cisg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgIGV4cGVjdGVkX2NvdW50LCB0eHQuY291
bnQoY2FsbGJhY2spLAorICAgICAgICAgICdFeHBlY3RlZCAlZCBjYWxscyB0byBjYWxsYmFjayAl
cyBtYXRjaCBjb3VudCBvbiBvdXRwdXQ6ICVzICcgJQorICAgICAgICAgIChleHBlY3RlZF9jb3Vu
dCwgY2FsbGJhY2ssIHR4dCkpCisKKyAgZGVmIGFzc2VydFhtbFJlc3VsdENvdW50KHNlbGYsIHJl
c3VsdCwgY291bnQsIHhtbCk6CisgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgY291bnQs
IHhtbC5jb3VudCgncmVzdWx0PSIlcyInICUgcmVzdWx0KSwKKyAgICAgICAgJ0V4cGVjdGVkIFwn
cmVzdWx0PSIlcyJcJyBtYXRjaCBjb3VudCBvZiAlczogJXMgJyAlCisgICAgICAgIChyZXN1bHQs
IGNvdW50LCB4bWwpKQorCisgIGRlZiBhc3NlcnRYbWxTdGF0dXNDb3VudChzZWxmLCBzdGF0dXMs
IGNvdW50LCB4bWwpOgorICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgIGNvdW50LCB4bWwu
Y291bnQoJ3N0YXR1cz0iJXMiJyAlIHN0YXR1cyksCisgICAgICAgICdFeHBlY3RlZCBcJ3N0YXR1
cz0iJXMiXCcgbWF0Y2ggY291bnQgb2YgJXM6ICVzICcgJQorICAgICAgICAoc3RhdHVzLCBjb3Vu
dCwgeG1sKSkKKworICBkZWYgYXNzZXJ0RmFpbEZhc3RYbWxBbmRUeHRPdXRwdXQoc2VsZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxfZmFzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2tpcHBlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1cHByZXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5fZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2VydCBYTUwgYW5kIHRleHQgb3V0cHV0IG9m
IGEgdGVzdCBleGVjdXRpb24uIiIiCisKKyAgICB0eHQsIHhtbCA9IFJ1bkFuZFJldHVybk91dHB1
dCh0ZXN0X3N1aXRlLCBmYWlsX2Zhc3QsIHJ1bl9kaXNhYmxlZCkKKyAgICBpZiBmYWlsdXJlX2Nv
dW50ID4gMDoKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzIEZBSUxFRCBURVNUJyAlIGZhaWx1cmVf
Y291bnQsIHR4dCkKKyAgICBpZiBzdXBwcmVzc2VkX2NvdW50ID4gMDoKKyAgICAgIHNlbGYuYXNz
ZXJ0SW4oJyVzIERJU0FCTEVEIFRFU1QnICUgc3VwcHJlc3NlZF9jb3VudCwgdHh0KQorICAgIGlm
IHNraXBwZWRfY291bnQgPiAwOgorICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdICVz
IHRlc3RzJyAlIHNraXBwZWRfY291bnQsIHR4dCkKKyAgICBzZWxmLmFzc2VydFhtbFN0YXR1c0Nv
dW50KCdydW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50ICsg
ZmFpbHVyZV9jb3VudCArIHNraXBwZWRfY291bnQsIHhtbCkKKyAgICBzZWxmLmFzc2VydFhtbFN0
YXR1c0NvdW50KCdub3RydW4nLCBzdXBwcmVzc2VkX2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3Nl
cnRYbWxSZXN1bHRDb3VudCgnY29tcGxldGVkJywgcGFzc2VkX2NvdW50ICsgZmFpbHVyZV9jb3Vu
dCwgeG1sKQorICAgIHNlbGYuYXNzZXJ0WG1sUmVzdWx0Q291bnQoJ3NraXBwZWQnLCBza2lwcGVk
X2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3NlcnRYbWxSZXN1bHRDb3VudCgnc3VwcHJlc3NlZCcs
IHN1cHByZXNzZWRfY291bnQsIHhtbCkKKworICBkZWYgYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcihz
ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhaWx1cmVfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBw
ZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291bnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9kaXNhYmxlZD1GYWxzZSk6CisgICAg
IiIiQXNzZXJ0IC0tZmFpbF9mYXN0IHZpYSBmbGFnLiIiIgorCisgICAgZm9yIGZhaWxfZmFzdCBp
biAoJ3RydWUnLCAnMScsICd0JywgVHJ1ZSk6CisgICAgICBzZWxmLmFzc2VydEZhaWxGYXN0WG1s
QW5kVHh0T3V0cHV0KGZhaWxfZmFzdCwgdGVzdF9zdWl0ZSwgcGFzc2VkX2NvdW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50LCBza2lwcGVk
X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVz
c2VkX2NvdW50LCBydW5fZGlzYWJsZWQpCisKKyAgZGVmIGFzc2VydE5vdEZhaWxGYXN0QmVoYXZp
b3Ioc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBza2lwcGVkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdXBwcmVzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5f
ZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2VydCAtLW5vZmFpbF9mYXN0IHZpYSBmbGFnLiIi
IgorCisgICAgZm9yIGZhaWxfZmFzdCBpbiAoJ2ZhbHNlJywgJzAnLCAnZicsIEZhbHNlKToKKyAg
ICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RYbWxBbmRUeHRPdXRwdXQoZmFpbF9mYXN0LCB0ZXN0X3N1
aXRlLCBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZhaWx1cmVfY291bnQsIHNraXBwZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291bnQsIHJ1bl9kaXNhYmxlZCkKKworICBk
ZWYgdGVzdEZsYWdfSGFzRml4dHVyZVRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2
aW9yIG9mIGZhaWxfZmFzdCBhbmQgVEVTVF9GLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RC
ZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRml4dHVyZVRlc3QnLAorICAgICAgICBw
YXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVk
X2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKyAgICBzZWxmLmFzc2VydE5v
dEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0ZpeHR1cmVUZXN0JywK
KyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAg
ICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisKKyAgZGVm
IHRlc3RGbGFnX0hhc1NpbXBsZVRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIGZhaWxfZmFzdCBhbmQgVEVTVC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZp
b3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLAorICAgICAgICBwYXNzZWRf
Y291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50
PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKyAgICBzZWxmLmFzc2VydE5vdEZhaWxG
YXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLAorICAgICAg
ICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD00LAorICAgICAgICBza2lw
cGVkX2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKworICBkZWYgdGVzdEZs
YWdfSGFzUGFyYW1ldGVyc1Rlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9m
IGZhaWxfZmFzdCBhbmQgVEVTVF9QLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlv
cigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzUGFyYW1ldGVyc1N1aXRlL0hhc1BhcmFtZXRlcnNU
ZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTAsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwK
KyAgICAgICAgc2tpcHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisg
ICAgc2VsZi5hc3NlcnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdI
YXNQYXJhbWV0ZXJzU3VpdGUvSGFzUGFyYW1ldGVyc1Rlc3QnLAorICAgICAgICBwYXNzZWRfY291
bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD00LAorICAgICAgICBza2lwcGVkX2NvdW50PTAs
CisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKworICBkZWYgdGVzdEZsYWdfSGFzRGlzYWJs
ZWRUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5k
IERpc2FibGVkIHRlc3QgY2FzZXMuIiIiCisgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNEaXNhYmxlZFRlc3QnLAorICAgICAgICBwYXNzZWRf
Y291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50
PTIsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MSwKKyAgICAgICAgcnVuX2Rpc2FibGVkPUZh
bHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9z
dWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAg
IGZhaWx1cmVfY291bnQ9MywKKyAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBw
cmVzc2VkX2NvdW50PTEsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1GYWxzZSkKKworICBkZWYgdGVz
dEZsYWdfSGFzRGlzYWJsZWRSdW5EaXNhYmxlZFRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhl
IGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgRGlzYWJsZWQgdGVzdCBjYXNlcyBlbmFibGVkLiIi
IgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0n
SGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1
cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2Vk
X2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1UcnVlKQorICAgIHNlbGYuYXNzZXJ0Tm90
RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywK
KyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAg
ICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAg
IHJ1bl9kaXNhYmxlZD1UcnVlKQorCisgIGRlZiB0ZXN0RmxhZ19IYXNEaXNhYmxlZFN1aXRlVGVz
dChzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgZmFpbF9mYXN0IGFuZCBEaXNh
YmxlZCB0ZXN0IHN1aXRlcy4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3IoCisg
ICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUnLAorICAgICAgICBw
YXNzZWRfY291bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0wLAorICAgICAgICBza2lwcGVk
X2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9NSwKKyAgICAgICAgcnVuX2Rpc2Fi
bGVkPUZhbHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAg
dGVzdF9zdWl0ZT0nRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZScsCisgICAgICAgIHBhc3NlZF9j
b3VudD0wLAorICAgICAgICBmYWlsdXJlX2NvdW50PTAsCisgICAgICAgIHNraXBwZWRfY291bnQ9
MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD01LAorICAgICAgICBydW5fZGlzYWJsZWQ9RmFs
c2UpCisKKyAgZGVmIHRlc3RGbGFnX0hhc0Rpc2FibGVkU3VpdGVSdW5EaXNhYmxlZFRlc3Qoc2Vs
Zik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgRGlzYWJsZWQg
dGVzdCBzdWl0ZXMgZW5hYmxlZC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3Io
CisgICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUnLAorICAgICAg
ICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lw
cGVkX2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCwKKyAgICAgICAgcnVuX2Rp
c2FibGVkPVRydWUpCisgICAgc2VsZi5hc3NlcnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAg
ICB0ZXN0X3N1aXRlPSdESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlJywKKyAgICAgICAgcGFzc2Vk
X2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAgc2tpcHBlZF9jb3Vu
dD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1U
cnVlKQorCisgIGlmIFNVUFBPUlRTX0RFQVRIX1RFU1RTOgorCisgICAgZGVmIHRlc3RGbGFnX0hh
c0RlYXRoVGVzdChzZWxmKToKKyAgICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zh
c3QgYW5kIGRlYXRoIHRlc3RzLiIiIgorICAgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0RlYXRoVGVzdCcsCisgICAgICAgICAgcGFzc2Vk
X2NvdW50PTEsCisgICAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICAgIHNraXBwZWRf
Y291bnQ9MywKKyAgICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisgICAgICBzZWxmLmFzc2Vy
dE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGVhdGhUZXN0
JywKKyAgICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgICBmYWlsdXJlX2NvdW50PTQs
CisgICAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICAgIHN1cHByZXNzZWRfY291bnQ9
MCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBndGVzdF90ZXN0X3V0aWxzLk1h
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWZhaWxmYXN0LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIyYzk1MWJjMDA4Mzk5
NGIwNjZjMmQ4NmFlOTJiZTMyMjgxYzY4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MKQEAgLTAs
MCArMSwxNjcgQEAKKy8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisvLyBVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0IHRlc3QgZmlsdGVycy4KKy8vCisvLyBB
IHVzZXIgY2FuIHNwZWNpZnkgd2hpY2ggdGVzdChzKSBpbiBhIEdvb2dsZSBUZXN0IHByb2dyYW0g
dG8gcnVuIHZpYQorLy8gZWl0aGVyIHRoZSBHVEVTVF9GSUxURVIgZW52aXJvbm1lbnQgdmFyaWFi
bGUgb3IgdGhlIC0tZ3Rlc3RfZmlsdGVyCisvLyBmbGFnLiAgVGhpcyBpcyB1c2VkIGZvciB0ZXN0
aW5nIHN1Y2ggZnVuY3Rpb25hbGl0eS4KKy8vCisvLyBUaGUgcHJvZ3JhbSB3aWxsIGJlIGludm9r
ZWQgZnJvbSBhIFB5dGhvbiB1bml0IHRlc3QuICBEb24ndCBydW4gaXQKKy8vIGRpcmVjdGx5Lgor
CisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworbmFtZXNwYWNlIHsKKworLy8gVGVzdCBIYXNG
aXh0dXJlVGVzdC4KKworY2xhc3MgSGFzRml4dHVyZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7fTsKKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0MCkge30KKworVEVTVF9GKEhhc0Zp
eHR1cmVUZXN0LCBUZXN0MSkgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitU
RVNUX0YoSGFzRml4dHVyZVRlc3QsIFRlc3QyKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZS4iOyB9CisKK1RFU1RfRihIYXNGaXh0dXJlVGVzdCwgVGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBl
Y3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0NCkgeyBGQUlM
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCisvLyBUZXN0IEhhc1NpbXBsZVRlc3QuCisK
K1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDApIHt9CisKK1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNTaW1wbGVU
ZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhh
c1NpbXBsZVRlc3QsIFRlc3QzKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisK
K1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworLy8gVGVzdCBIYXNEaXNhYmxlZFRlc3QuCisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0
LCBUZXN0MCkge30KKworVEVTVChIYXNEaXNhYmxlZFRlc3QsIERJU0FCTEVEX1Rlc3QxKSB7IEZB
SUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBU
ZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc0Rpc2Fi
bGVkVGVzdCwgVGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVT
VChIYXNEaXNhYmxlZFRlc3QsIFRlc3Q0KSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4i
OyB9CisKKy8vIFRlc3QgSGFzRGVhdGhUZXN0CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0MCkg
eyBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKGV4aXQoMSksICIuKiIpOyB9CisKK1RFU1QoSGFz
RGVhdGhUZXN0LCBUZXN0MSkgeworICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKEZBSUwoKSA8
PCAiRXhwZWN0ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30KKworVEVTVChIYXNEZWF0aFRlc3QsIFRl
c3QyKSB7CisgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoRkFJTCgpIDw8ICJFeHBlY3RlZCBm
YWlsdXJlLiIsICIuKiIpOworfQorCitURVNUKEhhc0RlYXRoVGVzdCwgVGVzdDMpIHsKKyAgRVhQ
RUNUX0RFQVRIX0lGX1NVUFBPUlRFRChGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIiwgIi4q
Iik7Cit9CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0NCkgeworICBFWFBFQ1RfREVBVEhfSUZf
U1VQUE9SVEVEKEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30KKworLy8g
VGVzdCBESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlCisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJs
ZWRTdWl0ZSwgVGVzdDApIHt9CisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChESVNBQkxFRF9I
YXNEaXNhYmxlZFN1aXRlLCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsg
fQorCitURVNUKERJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUsIFRlc3QzKSB7IEZBSUwoKSA8PCAi
RXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwg
VGVzdDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworLy8gVGVzdCBIYXNQ
YXJhbWV0ZXJzVGVzdAorCitjbGFzcyBIYXNQYXJhbWV0ZXJzVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0V2l0aFBhcmFtPGludD4ge307CisKK1RFU1RfUChIYXNQYXJhbWV0ZXJzVGVzdCwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVF9QKEhhc1BhcmFt
ZXRlcnNUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1AoSGFzUGFyYW1ldGVyc1N1aXRlLCBIYXNQYXJhbWV0ZXJz
VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoMSwgMikpOwor
CitjbGFzcyBNeVRlc3RMaXN0ZW5lciA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50
TGlzdGVuZXIgeworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0
U3VpdGUmIHRlc3Rfc3VpdGUpIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRl
c3RTdWl0ZVN0YXJ0IG9mICVzLlxuIiwgdGVzdF9zdWl0ZS5uYW1lKCkpOworICB9CisKKyAgdm9p
ZCBPblRlc3RTdGFydChjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJy
aWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRlc3RTdGFydCBvZiAlcy4lcy5cbiIsIHRl
c3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwKKyAgICAgICAgICAgdGVzdF9pbmZvLm5hbWUoKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoCisgICAgICBjb25zdCA6OnRlc3Rpbmc6
OlRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSBvdmVycmlkZSB7CisgICAgcHJpbnRm
KCJXZSBhcmUgaW4gT25UZXN0UGFydFJlc3VsdCAlczolZC5cbiIsIHRlc3RfcGFydF9yZXN1bHQu
ZmlsZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIoKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0
X2luZm8pIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRlc3RFbmQgb2YgJXMu
JXMuXG4iLCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfaW5m
by5uYW1lKCkpOworICB9CisKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCA6OnRlc3Rpbmc6
OlRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgb3ZlcnJpZGUgeworICAgIHByaW50ZigiV2UgYXJlIGlu
IE9uVGVzdFN1aXRlRW5kIG9mICVzLlxuIiwgdGVzdF9zdWl0ZS5uYW1lKCkpOworICB9Cit9Owor
CitURVNUKEhhc1NraXBUZXN0LCBUZXN0MCkgeyBTVUNDRUVEKCkgPDwgIkV4cGVjdGVkIHN1Y2Nl
c3MuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MSkgeyBHVEVTVF9TS0lQKCkgPDwgIkV4
cGVjdGVkIHNraXAuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwg
IkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MykgeyBGQUlM
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0NCkg
eyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCit9ICAvLyBuYW1lc3BhY2UKKwor
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2ds
ZVRlc3QoJmFyZ2MsIGFyZ3YpOworICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
LT5saXN0ZW5lcnMoKS5BcHBlbmQobmV3IE15VGVzdExpc3RlbmVyKCkpOworICByZXR1cm4gUlVO
X0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwppbmRleCAzN2YwMmZiNGJkNzc5N2QxNGQz
ODNhMDVmYTE5N2MzNmIzMTgyNWYyLi5hYWZhZDM2ZjNmZWY0NDlmNDZiYTc3ZGIyMGVjYzk2NmI1
NzIwYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsZXBhdGgtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwpAQCAtNTAsOCArNTAsNiBAQCBuYW1lc3BhY2UgaW50
ZXJuYWwgewogbmFtZXNwYWNlIHsKIAogI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0vLyBG
SVhNRTogTW92ZSB0aGVzZSB0byB0aGUgUE9TSVggYWRhcHRlciBzZWN0aW9uIGluCi0vLyBndGVz
dC1wb3J0LmguCiAKIC8vIFdpbmRvd3MgQ0UgZG9lc24ndCBoYXZlIHRoZSByZW1vdmUgQyBmdW5j
dGlvbi4KIGludCByZW1vdmUoY29uc3QgY2hhciogcGF0aCkgewpAQCAtODAsNyArNzgsNyBAQCBU
RVNUKEdldEN1cnJlbnREaXJUZXN0LCBSZXR1cm5zQ3VycmVudERpcikgewogICBjb25zdCBGaWxl
UGF0aCBjd2QgPSBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpOwogICBwb3NpeDo6Q2hEaXIob3Jp
Z2luYWxfZGlyLmNfc3RyKCkpOwogCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKKyMgaWYgR1RFU1Rf
T1NfV0lORE9XUyB8fCBHVEVTVF9PU19PUzIKIAogICAvLyBTa2lwcyB0aGUgIjoiLgogICBjb25z
dCBjaGFyKiBjb25zdCBjd2Rfd2l0aG91dF9kcml2ZSA9IHN0cmNocihjd2QuY19zdHIoKSwgJzon
KTsKQEAgLTQ3OSw3ICs0NzcsNyBAQCBURVNUKEFzc2lnbm1lbnRPcGVyYXRvclRlc3QsIENvbnN0
QXNzaWduZWRUb05vbkNvbnN0KSB7CiAKIGNsYXNzIERpcmVjdG9yeUNyZWF0aW9uVGVzdCA6IHB1
YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICB0ZXN0ZGF0YV9wYXRoXy5TZXQoRmlsZVBhdGgoCiAg
ICAgICAgIFRlbXBEaXIoKSArIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLnN0cmluZygpICsK
ICAgICAgICAgIl9kaXJlY3RvcnlfY3JlYXRpb24iIEdURVNUX1BBVEhfU0VQXyAidGVzdCIgR1RF
U1RfUEFUSF9TRVBfKSk7CkBAIC00OTYsNyArNDk0LDcgQEAgY2xhc3MgRGlyZWN0b3J5Q3JlYXRp
b25UZXN0IDogcHVibGljIFRlc3QgewogICAgIHBvc2l4OjpSbURpcih0ZXN0ZGF0YV9wYXRoXy5j
X3N0cigpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICByZW1vdmUodGVzdGRhdGFfZmlsZV8uY19zdHIoKSk7CiAg
ICAgcmVtb3ZlKHVuaXF1ZV9maWxlMF8uY19zdHIoKSk7CiAgICAgcmVtb3ZlKHVuaXF1ZV9maWxl
MV8uY19zdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weQppbmRleCBkYzBiNWJkOWE1Y2ZjNWJmZThj
NjhhZjFiNjQ3ODk5ZTFmZWJkYTY3Li42YjMyZjJkMjE5OTcxODlhM2NkOWVhZjMxM2Q0NzBiZGQ4
NGZjYzExIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsdGVyLXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkKQEAgLTQyLDcgKzQyLDEwIEBAIHdlIHRlc3Qg
dGhhdCBoZXJlIGFsc28uCiAKIGltcG9ydCBvcwogaW1wb3J0IHJlCi1pbXBvcnQgc2V0cwordHJ5
OgorICBmcm9tIHNldHMgaW1wb3J0IFNldCBhcyBzZXQgICMgRm9yIFB5dGhvbiAyLjMgY29tcGF0
aWJpbGl0eQorZXhjZXB0IEltcG9ydEVycm9yOgorICBwYXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQg
Z3Rlc3RfdGVzdF91dGlscwogCkBAIC01Nyw3ICs2MCw3IEBAIENBTl9QQVNTX0VNUFRZX0VOViA9
IEZhbHNlCiBpZiBzeXMuZXhlY3V0YWJsZToKICAgb3MuZW52aXJvblsnRU1QVFlfVkFSJ10gPSAn
JwogICBjaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygKLSAgICAgIFtzeXMuZXhl
Y3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBvczsgcHJpbnQgXCdFTVBUWV9WQVJcJyBpbiBvcy5lbnZp
cm9uJ10pCisgICAgICBbc3lzLmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50KFwn
RU1QVFlfVkFSXCcgaW4gb3MuZW52aXJvbiknXSkKICAgQ0FOX1BBU1NfRU1QVFlfRU5WID0gZXZh
bChjaGlsZC5vdXRwdXQpCiAKIApAQCAtNzIsNyArNzUsNyBAQCBpZiBzeXMuZXhlY3V0YWJsZToK
ICAgb3MuZW52aXJvblsnVU5TRVRfVkFSJ10gPSAnWCcKICAgZGVsIG9zLmVudmlyb25bJ1VOU0VU
X1ZBUiddCiAgIGNoaWxkID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgICAgW3N5
cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBwcmludCBcJ1VOU0VUX1ZBUlwnIG5vdCBp
biBvcy5lbnZpcm9uJworICAgICAgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBw
cmludChcJ1VOU0VUX1ZBUlwnIG5vdCBpbiBvcy5lbnZpcm9uKScKICAgICAgIF0pCiAgIENBTl9V
TlNFVF9FTlYgPSBldmFsKGNoaWxkLm91dHB1dCkKIApAQCAtMjQ1LDE0ICsyNDgsMTQgQEAgY2xh
c3MgR1Rlc3RGaWx0ZXJVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICBm
b3Igc2xpY2VfdmFyIGluIGxpc3Rfb2Zfc2V0czoKICAgICAgIGZ1bGxfcGFydGl0aW9uLmV4dGVu
ZChzbGljZV92YXIpCiAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2V0X3ZhciksIGxlbihmdWxs
X3BhcnRpdGlvbikpCi0gICAgc2VsZi5hc3NlcnRFcXVhbChzZXRzLlNldChzZXRfdmFyKSwgc2V0
cy5TZXQoZnVsbF9wYXJ0aXRpb24pKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHNldF92YXIp
LCBzZXQoZnVsbF9wYXJ0aXRpb24pKQogCiAgIGRlZiBBZGp1c3RGb3JQYXJhbWV0ZXJpemVkVGVz
dHMoc2VsZiwgdGVzdHNfdG9fcnVuKToKICAgICAiIiJBZGp1c3QgdGVzdHNfdG9fcnVuIGluIGNh
c2UgdmFsdWUgcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgZGlzYWJsZWQuIiIiCiAKICAgICBnbG9i
YWwgcGFyYW1fdGVzdHNfcHJlc2VudAogICAgIGlmIG5vdCBwYXJhbV90ZXN0c19wcmVzZW50Ogot
ICAgICAgcmV0dXJuIGxpc3Qoc2V0cy5TZXQodGVzdHNfdG9fcnVuKSAtIHNldHMuU2V0KFBBUkFN
X1RFU1RTKSkKKyAgICAgIHJldHVybiBsaXN0KHNldCh0ZXN0c190b19ydW4pIC0gc2V0KFBBUkFN
X1RFU1RTKSkKICAgICBlbHNlOgogICAgICAgcmV0dXJuIHRlc3RzX3RvX3J1bgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0
ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXIt
dW5pdHRlc3RfLmNjCmluZGV4IGQzMzViNjAzOTFkMWQ0NjhhNDExNjFiMzhjMTRlY2NiZjFkMTM4
MDUuLmQzMGVjOWM3OGI1NjVkOGU4MTgwMTczZDhmYzRlOGFlZmFkODhhZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3Rf
LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXIt
dW5pdHRlc3RfLmNjCkBAIC0xMjUsOCArMTI1LDggQEAgVEVTVF9QKFBhcmFtVGVzdCwgVGVzdFgp
IHsKIFRFU1RfUChQYXJhbVRlc3QsIFRlc3RZKSB7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKFNlcVAsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDEsIDIpKTsKLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKFNlcVEsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDUsIDYpKTsKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXFQLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcygx
LCAyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxUSwgUGFyYW1UZXN0LCB0ZXN0aW5n
OjpWYWx1ZXMoNSwgNikpOwogCiB9ICAvLyBuYW1lc3BhY2UKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0
dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwt
ZW52aXJvbm1lbnQtdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJiYTYyODUzNWNlMzJkZDQ0ZmFm
MWQ1ZmM0N2U4YTJmYmYyNTM5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw3MiBAQAorIyBDb3B5cmlnaHQgMjAyMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3Qn
cyBnbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBiZWhhdmlvci4KKworQSB1c2VyIGNhbiBzcGVjaWZ5
IGEgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdmlhCit0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52
aXJvbm1lbnQuIEZhaWx1cmVzIGluIHRoZSBnbG9iYWwgZW52aXJvbm1lbnQgc2hvdWxkCityZXN1
bHQgaW4gYWxsIHVuaXQgdGVzdHMgYmVpbmcgc2tpcHBlZC4KKworVGhpcyBzY3JpcHQgdGVzdHMg
c3VjaCBmdW5jdGlvbmFsaXR5IGJ5IGludm9raW5nCitnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9u
bWVudC11bml0dGVzdF8gKGEgcHJvZ3JhbSB3cml0dGVuIHdpdGggR29vZ2xlIFRlc3QpLgorIiIi
CisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKworZGVmIFJ1bkFuZFJldHVybk91dHB1dCgp
OgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5kIHJldHVybnMgaXRzIG91dHB1dC4iIiIK
KworICByZXR1cm4gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFsKKyAgICAgIGd0ZXN0X3Rl
c3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKAorICAgICAgICAgICdnb29nbGV0ZXN0LWds
b2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8nKQorICBdKS5vdXRwdXQKKworCitjbGFzcyBHVGVz
dEdsb2JhbEVudmlyb25tZW50VW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Cisg
ICIiIlRlc3RzIGdsb2JhbCB0ZXN0IGVudmlyb25tZW50IGZhaWx1cmVzLiIiIgorCisgIGRlZiB0
ZXN0RW52aXJvbm1lbnRTZXRVcEZhaWxzKHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBub3Qgc3BlY2lmeWluZyB0aGUgZmFpbF9mYXN0LiIiIgorCisgICAgIyBSdW4gdGhlIHRl
c3QuCisgICAgdHh0ID0gUnVuQW5kUmV0dXJuT3V0cHV0KCkKKworICAgICMgV2Ugc2hvdWxkIHNl
ZSB0aGUgdGV4dCBvZiB0aGUgZ2xvYmFsIGVudmlyb25tZW50IHNldHVwIGVycm9yLgorICAgIHNl
bGYuYXNzZXJ0SW4oJ0Nhbm5lZCBlbnZpcm9ubWVudCBzZXR1cCBlcnJvcicsIHR4dCkKKworICAg
ICMgT3VyIHRlc3Qgc2hvdWxkIGhhdmUgYmVlbiBza2lwcGVkIGR1ZSB0byB0aGUgZXJyb3IsIGFu
ZCBub3QgdHJlYXRlZCBhcyBhCisgICAgIyBwYXNzLgorICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNL
SVBQRUQgXSAxIHRlc3QnLCB0eHQpCisgICAgc2VsZi5hc3NlcnRJbignWyAgUEFTU0VEICBdIDAg
dGVzdHMnLCB0eHQpCisKKyAgICAjIFRoZSB0ZXN0IGNhc2Ugc2hvdWxkbid0IGhhdmUgYmVlbiBy
dW4uCisgICAgc2VsZi5hc3NlcnROb3RJbignVW5leHBlY3RlZCBjYWxsJywgdHh0KQorCisKK2lm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVu
dmlyb25tZW50LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3RfLmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MDFi
MmZhYzI1ZDE3ZGQ3ZmU1YWI3ODhiMTE3NGY2YjkyOTNjMDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50
LXVuaXR0ZXN0Xy5jYwpAQCAtMCwwICsxLDU4IEBACisvLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xl
IEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3QgZ2xvYmFs
IHRlc3QgZW52aXJvbm1lbnRzLgorLy8KKy8vIFRoZSBwcm9ncmFtIHdpbGwgYmUgaW52b2tlZCBm
cm9tIGEgUHl0aG9uIHVuaXQgdGVzdC4gIERvbid0IHJ1biBpdAorLy8gZGlyZWN0bHkuCisKKyNp
bmNsdWRlICJndGVzdC9ndGVzdC5oIgorCituYW1lc3BhY2UgeworCisvLyBBbiBlbnZpcm9ubWVu
dCB0aGF0IGFsd2F5cyBmYWlscyBpbiBpdHMgU2V0VXAgbWV0aG9kLgorY2xhc3MgRmFpbGluZ0Vu
dmlyb25tZW50IGZpbmFsIDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1Ymxp
YzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgRkFJTCgpIDw8ICJDYW5uZWQgZW52aXJvbm1l
bnQgc2V0dXAgZXJyb3IiOyB9Cit9OworCisvLyBSZWdpc3RlciB0aGUgZW52aXJvbm1lbnQuCith
dXRvKiBjb25zdCBnX2Vudmlyb25tZW50XyA9CisgICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0
RW52aXJvbm1lbnQobmV3IEZhaWxpbmdFbnZpcm9ubWVudCk7CisKKy8vIEEgdGVzdCB0aGF0IGRv
ZXNuJ3QgYWN0dWFsbHkgcnVuLgorVEVTVChTb21lVGVzdCwgRG9lc0ZvbykgeyBGQUlMKCkgPDwg
IlVuZXhwZWN0ZWQgY2FsbCI7IH0KKworfSAgLy8gbmFtZXNwYWNlCisKK2ludCBtYWluKGludCBh
cmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBh
cmd2KTsKKworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0ZmlsZXMtdGVzdC5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVzLXRl
c3QucHkKaW5kZXggYzk5YmU0OGU4YWMzNjUwOWVkMzJlYTJmYjhlNGZhMWVhN2ZjODM2NC4uOGVm
NDdiOGY5NzQ2M2MyZTNhZDQ0MjI1NDc5ZDNiYzA2MzM4NzkyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0ZmlsZXMtdGVzdC5weQor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRmaWxl
cy10ZXN0LnB5CkBAIC00MCwyNCArNDAsNDEgQEAgR1RFU1RfT1VUUFVUXzFfVEVTVCA9ICdndGVz
dF94bWxfb3V0ZmlsZTFfdGVzdF8nCiBHVEVTVF9PVVRQVVRfMl9URVNUID0gJ2d0ZXN0X3htbF9v
dXRmaWxlMl90ZXN0XycKIAogRVhQRUNURURfMSA9IHsKLSAgICB1J3Rlc3RzJzogMSwKLSAgICB1
J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0g
ICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzog
dSdBbGxUZXN0cycsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDEsCisgICAgdSdmYWlsdXJlcyc6
CisgICAgICAgIDAsCisgICAgdSdkaXNhYmxlZCc6CisgICAgICAgIDAsCisgICAgdSdlcnJvcnMn
OgorICAgICAgICAwLAorICAgIHUndGltZSc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lc3Rh
bXAnOgorICAgICAgICB1JyonLAorICAgIHUnbmFtZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAog
ICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlPbmUnLAot
ICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgIHUn
ZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAgICAgIHUndGltZSc6IHUn
KicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1Byb3BlcnR5T25lJywKKyAgICAg
ICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAg
ICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAg
dSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAg
IHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCiAgICAgICAg
IHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUnVGVzdFNvbWVQcm9wZXJ0
aWVzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAg
ICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3Bl
cnR5T25lJywKICAgICAgICAgICAgIHUnU2V0VXBQcm9wJzogdScxJywKICAgICAgICAgICAgIHUn
VGVzdFNvbWVQcm9wZXJ0eSc6IHUnMScsCkBAIC02NywyMyArODQsNDAgQEAgRVhQRUNURURfMSA9
IHsKIH0KIAogRVhQRUNURURfMiA9IHsKLSAgICB1J3Rlc3RzJzogMSwKLSAgICB1J2ZhaWx1cmVz
JzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1l
JzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzogdSdBbGxUZXN0
cycsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDEsCisgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
IDAsCisgICAgdSdkaXNhYmxlZCc6CisgICAgICAgIDAsCisgICAgdSdlcnJvcnMnOgorICAgICAg
ICAwLAorICAgIHUndGltZSc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lc3RhbXAnOgorICAg
ICAgICB1JyonLAorICAgIHUnbmFtZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAogICAgIHUndGVz
dHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlUd28nLAotICAgICAgICB1
J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgIHUnZGlzYWJsZWQn
OiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAgICAgIHUndGltZSc6IHUnKicsCisgICAg
ICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1Byb3BlcnR5VHdvJywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1
aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUnVGVzdFNvbWVQcm9wZXJ0aWVzJywKICAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NP
TVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5VHdvJywK
ICAgICAgICAgICAgIHUnU2V0VXBQcm9wJzogdScyJywKQEAgLTEzNiwxMSArMTcwLDYgQEAgY2xh
c3MgR1Rlc3RKc29uT3V0RmlsZXNUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAg
IHNlbGYuYXNzZXJ0XyhwLmV4aXRlZCkKICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBwLmV4aXRf
Y29kZSkKIAotICAgICMgRklYTUU6IGxpYnRvb2wgY2F1c2VzIHRoZSBidWlsdCB0ZXN0IGJpbmFy
eSB0byBiZQotICAgICMgICBuYW1lZCBsdC1ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdF8gaW5zdGVh
ZCBvZgotICAgICMgICBndGVzdF94bWxfb3V0ZmlsZXNfdGVzdF8uICBUbyBhY2NvdW50IGZvciB0
aGlzIHBvc3NpYmlsaXR5LCB3ZQotICAgICMgICBhbGxvdyBib3RoIG5hbWVzIGluIHRoZSBmb2xs
b3dpbmcgY29kZS4gIFdlIHNob3VsZCByZW1vdmUgdGhpcwotICAgICMgICB3aGVuIGxpYnRvb2wg
cmVwbGFjZW1lbnQgdG9vbCBpcyByZWFkeS4KICAgICBvdXRwdXRfZmlsZV9uYW1lMSA9IHRlc3Rf
bmFtZSArICcuanNvbicKICAgICBvdXRwdXRfZmlsZTEgPSBvcy5wYXRoLmpvaW4oc2VsZi5vdXRw
dXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0cHV0X2ZpbGVfbmFtZTIgPSAnbHQt
JyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5pdHRlc3QucHkKaW5kZXgg
NTdkY2Q1ZmExYzQ2MzlmMTUyZmI1NGU1MGZiOWMwNTk4YTBlNDZhMC4uNDFjODU2NTE0NDk5ODRh
N2IxNDE4ZGIyZWQ1OGI1MWZkMzZhMDU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dHB1dC11bml0dGVzdC5w
eQpAQCAtNTcsMzg0ICs1Nyw2MTQgQEAgZWxzZToKICAgU1RBQ0tfVFJBQ0VfVEVNUExBVEUgPSAn
JwogCiBFWFBFQ1RFRF9OT05fRU1QVFkgPSB7Ci0gICAgdSd0ZXN0cyc6IDIzLAotICAgIHUnZmFp
bHVyZXMnOiA0LAotICAgIHUnZGlzYWJsZWQnOiAyLAotICAgIHUnZXJyb3JzJzogMCwKLSAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1J2FkX2hvY19wcm9w
ZXJ0eSc6IHUnNDInLAotICAgIHUnbmFtZSc6IHUnQWxsVGVzdHMnLAotICAgIHUndGVzdHN1aXRl
cyc6IFsKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZXNzZnVsVGVzdCcs
Ci0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAot
ICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisg
ICAgdSd0ZXN0cyc6CisgICAgICAgIDI2LAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICA1LAor
ICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAyLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwK
KyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lJzoKKyAgICAgICAg
dScqJywKKyAgICB1J2FkX2hvY19wcm9wZXJ0eSc6CisgICAgICAgIHUnNDInLAorICAgIHUnbmFt
ZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAorICAgIHUndGVzdHN1aXRlcyc6IFt7CisgICAgICAg
IHUnbmFtZSc6CisgICAgICAgICAgICB1J1N1Y2Nlc3NmdWxUZXN0JywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1
aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2VlZHMnLAorICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywK
KyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUn
KicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU3VjY2Vzc2Z1bFRlc3QnCisgICAgICAg
IH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdGYWlsZWRUZXN0
JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVz
JzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwK
KyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAg
ICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKics
CisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6CisgICAgICAg
ICAgICAgICAgdSdGYWlscycsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAg
ICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09N
UExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnRmFpbGVkVGVzdCcsCisgICAgICAg
ICAgICB1J2ZhaWx1cmVzJzogW3sKKyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAg
ICAgICAgICAgIHUndHlwZSc6IHUnJworICAgICAgICAgICAgfV0KKyAgICAgICAgfV0KKyAgICB9
LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J0Rpc2FibGVkVGVzdCcsCisgICAg
ICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAg
ICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDEsCisgICAgICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAg
ICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3Rf
bm90X3J1bicsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnTk9UUlVOJywKKyAgICAgICAgICAg
IHUncmVzdWx0JzogdSdTVVBQUkVTU0VEJywKKyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisg
ICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnRGlzYWJsZWRUZXN0JworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoK
KyAgICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAg
ICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdk
aXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAg
ICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1l
c3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAg
ICAgICAgICAgdSduYW1lJzogdSdTa2lwcGVkJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J1NLSVBQRUQnLAorICAgICAgICAgICAgdSd0
aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdTa2lwcGVkVGVzdCcKKyAgICAgICAgfSwgeworICAgICAgICAgICAg
dSduYW1lJzogdSdTa2lwcGVkV2l0aE1lc3NhZ2UnLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1
J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnU0tJUFBFRCcsCisgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NraXBwZWRUZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAg
ICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnU2tpcHBlZEFmdGVyRmFpbHVyZScsCisgICAg
ICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAg
dSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUn
dGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAg
ICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7Cisg
ICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBv
ZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAg
MicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycK
KyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgor
ICAgICAgICAgICAgdSdNaXhlZFJlc3VsdFRlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAg
ICAgICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAg
dSdkaXNhYmxlZCc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0
aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbewor
ICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAorICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAg
ICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCisgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICAgICAgdSdGYWlscycsCisgICAgICAgICAg
ICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6
CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAg
ICAgIHUnTWl4ZWRSZXN1bHRUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAg
ICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6
KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2Yg
dGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAxXG4gIDIn
ICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCisg
ICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF94bWxf
b3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdF
eHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdScgIDJcbiAgMycgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAg
ICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHUnbmFtZSc6IHUnRElTQUJMRURfdGVzdCcsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUn
Tk9UUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdTVVBQUkVTU0VEJywKKyAgICAgICAg
ICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JworICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAor
ICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMnOgor
ICAgICAgICAgICAgMSwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAg
ICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAg
ICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAg
ICAgICB1J091dHB1dHNDRGF0YScsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAg
ICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUn
Q09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywK
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAg
ICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAor
ICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzog
dSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdSdGYWlsZWRcblhNTCBvdXRwdXQ6IDw/eG1sIGVuY29kaW5nPSJ1dGYtOCI+Jwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnPHRvcD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+
PC90b3A+JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBQ0tfVFJBQ0VfVEVNUExB
VEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAg
ICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnSW52YWxpZENo
YXJhY3RlcnNUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAg
ICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAg
dSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFt
ZSc6CisgICAgICAgICAgICAgICAgdSdJbnZhbGlkQ2hhcmFjdGVyc0luTWVzc2FnZScsCisgICAg
ICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAg
dSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUn
dGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAg
ICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVy
ZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRmFpbGVkXG5J
bnZhbGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdScgW1x4MDFceDAyXScgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAgICAg
ICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAgfSwgeworICAg
ICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAg
ICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDQsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAg
ICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAg
ICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAg
ICAgdSdTZXRVcFRlc3RTdWl0ZSc6CisgICAgICAgICAgICB1J3llcycsCisgICAgICAgIHUnVGVh
ckRvd25UZXN0U3VpdGUnOgorICAgICAgICAgICAgdSdheWUnLAorICAgICAgICB1J3Rlc3RzdWl0
ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J09uZVByb3BlcnR5JywKKyAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcs
CisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1
JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcs
CisgICAgICAgICAgICB1J2tleV8xJzogdScxJworICAgICAgICB9LCB7CisgICAgICAgICAgICB1
J25hbWUnOiB1J0ludFZhbHVlZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKLSAgICAgICAg
ICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTdWNjZXNzZnVs
VGVzdCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFpbGVkVGVzdCcsCi0gICAgICAgICAgICB1
J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdk
aXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3Rp
bWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNv
cmRpbmdUZXN0JywKKyAgICAgICAgICAgIHUna2V5X2ludCc6IHUnMScKKyAgICAgICAgfSwgewor
ICAgICAgICAgICAgdSduYW1lJzogdSdUaHJlZVByb3BlcnRpZXMnLAorICAgICAgICAgICAgdSdz
dGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAg
ICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFpbHMnLAot
ICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J0Zh
aWxlZFRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1dF91bml0
dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVk
IGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdEaXNhYmxlZFRlc3Qn
LAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwK
LSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAxLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAor
ICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUn
OiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV8xJzogdScxJywK
KyAgICAgICAgICAgIHUna2V5XzInOiB1JzInLAorICAgICAgICAgICAgdSdrZXlfMyc6IHUnMycK
KyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdUd29WYWx1ZXNGb3JPbmVLZXlV
c2VzTGFzdFZhbHVlJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAg
ICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3Rfbm90X3J1bicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdOT1RSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3Rp
bWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnRGlzYWJsZWRU
ZXN0JwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnLAotICAgICAgICAg
ICAgdSd0ZXN0cyc6IDMsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAgICAgICAg
IHUnZGlzYWJsZWQnOiAxLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAg
dSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5
UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV8xJzogdScyJworICAgICAgICB9XQor
ICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnTm9GaXh0dXJlVGVzdCcs
CisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMywKKyAgICAgICAgdSdmYWlsdXJlcyc6
CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAg
ICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAor
ICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J1JlY29yZFBy
b3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdy
ZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCi0gICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUn
RmFpbHMnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAg
ICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25h
bWUnOiB1J01peGVkUmVzdWx0VGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZXMn
OiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1J2ZhaWx1cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
J2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAyXG4gIDMnICsgU1RBQ0tfVFJBQ0VfVEVN
UExBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdE
SVNBQkxFRF90ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J05PVFJVTics
Ci0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1
J1htbFF1b3RpbmdUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAg
dSdmYWlsdXJlcyc6IDEsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAg
IHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAg
ICAgIHUnY2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKKyAgICAgICAgICAgIHUna2V5Jzog
dScxJworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0V4dGVybmFsVXRpbGl0
eVRoYXRDYWxsc1JlY29yZEludFZhbHVlZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J091dHB1dHNDRGF0YScs
Ci0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
WG1sUXVvdGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFp
bHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1
dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0Zh
aWxlZFxuWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9InV0Zi04Ij4nCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnPHRvcD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+PC90b3A+JyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1
J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAg
ICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAg
ICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAgICB1
J2tleV9mb3JfdXRpbGl0eV9pbnQnOiB1JzEnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUn
bmFtZSc6IHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVy
dHknLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3Vs
dCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHUnbmFtZSc6IHUnSW52YWxpZENoYXJhY3RlcnNJbk1lc3NhZ2UnLAotICAgICAgICAgICAgICAg
ICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScq
JywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJz
VGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzoKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRmFpbGVkXG5JbnZh
bGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnIFtceDAxXHgwMl0nICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlSZWNv
cmRpbmdUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiA0LAotICAgICAgICAgICAgdSdmYWls
dXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJy
b3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKKyAgICAgICAgICAgIHUna2V5X2Zvcl91dGls
aXR5X3N0cmluZyc6IHUnMScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6
CisgICAgICAgICAgICB1J1R5cGVkVGVzdC8wJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAg
ICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGlt
ZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAg
ICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAgICAgICAgICAg
IHUndHlwZV9wYXJhbSc6IHUnaW50JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAor
ICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAotICAgICAgICAgICAgdSdTZXRVcFRlc3RDYXNlJzogdSd5ZXMnLAotICAgICAgICAg
ICAgdSdUZWFyRG93blRlc3RDYXNlJzogdSdheWUnLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUn
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J09u
ZVByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAg
ICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xh
c3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2tleV8xJzogdScxJwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0ludFZhbHVlZFByb3BlcnR5JywKLSAgICAgICAg
ICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJl
Y29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV9pbnQnOiB1JzEnCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUn
bmFtZSc6IHUnVGhyZWVQcm9wZXJ0aWVzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAotICAgICAg
ICAgICAgICAgICAgICB1J2tleV8xJzogdScxJywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlf
Mic6IHUnMicsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5XzMnOiB1JzMnCi0gICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6
IHUnVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1ZScsCi0gICAgICAgICAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0
JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfMSc6IHUnMicKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFt
ZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMywKLSAgICAgICAg
ICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAg
ICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0LzAnCisgICAgICAgIH1dCisgICAgfSwg
eworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdUeXBlZFRlc3QvMScsCisgICAgICAg
IHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1
JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1
J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJp
YnV0ZScsCisgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2xvbmcnLAorICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywK
ICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnUmVjb3Jk
UHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAg
ICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFz
c25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleSc6IHUn
MScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdSduYW1lJzogdSdFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQ
cm9wZXJ0eScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAg
ICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNz
bmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5X2Zvcl91
dGlsaXR5X2ludCc6IHUnMScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHUn
RXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHknLAotICAg
ICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAg
dSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J05vRml4
dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV9mb3JfdXRpbGl0eV9zdHJpbmcn
OiB1JzEnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1R5cGVkVGVzdC8wJywKLSAgICAgICAgICAg
IHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1
J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUn
dGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdUeXBlZFRlc3Qv
MScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1
J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wJywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAg
ICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzog
dSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAg
ICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJp
YnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdUeXBlZFRl
c3QvMCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnVHlwZWRUZXN0LzEnLAotICAgICAgICAgICAg
dSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUn
ZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0
aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9UeXBl
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wJworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAg
dSduYW1lJzoKKyAgICAgICAgICAgIHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LzEnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVy
ZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgor
ICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScq
JywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdIYXNU
eXBlUGFyYW1BdHRyaWJ1dGUnLAorICAgICAgICAgICAgdSd0eXBlX3BhcmFtJzogdSdsb25nJywK
KyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1
J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0
ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlw
ZV9wYXJhbSc6IHUnbG9uZycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4n
LAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAg
ICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0LzEnCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1Np
bmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAnLAotICAgICAgICAgICAgdSd0ZXN0cyc6
IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQn
OiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAn
OiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZS8xJworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoK
KyAgICAgICAgICAgIHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICA0LAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywK
KyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0
dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKLSAg
ICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAg
IHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5n
bGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8wJwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8xJywKLSAgICAgICAgICAgIHUndGVzdHMn
OiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVk
JzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRl
c3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0
dHJpYnV0ZS8xJywKKyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKKyAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRF
RCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUn
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hh
c1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6
IHUnbG9uZycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAg
ICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNz
bmFtZSc6IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMScKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHUnbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMn
OiA0LAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVk
JzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRl
c3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0
SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKKyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1
JzMzJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAg
ICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCcsCi0gICAgICAgICAgICAgICAg
ICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCi0gICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFt
ZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywKLSAgICAgICAgICAgICAgICAgICAgdSd2
YWx1ZV9wYXJhbSc6IHUnNDInLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdB
bm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAnLAotICAgICAgICAgICAgICAg
ICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JwotICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J0Fub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMScsCi0gICAgICAg
ICAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKLSAgICAgICAgICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0g
ICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3Qn
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXQorICAg
ICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1
J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1l
JzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEnLAorICAgICAgICAg
ICAgdSd2YWx1ZV9wYXJhbSc6IHUnNDInLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTics
CisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1
J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JworICAgICAgICB9XQorICAgIH1d
CiB9CiAKIEVYUEVDVEVEX0ZJTFRFUkVEID0gewotICAgIHUndGVzdHMnOiAxLAotICAgIHUnZmFp
bHVyZXMnOiAwLAotICAgIHUnZGlzYWJsZWQnOiAwLAotICAgIHUnZXJyb3JzJzogMCwKLSAgICB1
J3RpbWUnOiB1JyonLAotICAgIHUndGltZXN0YW1wJzogdScqJywKLSAgICB1J25hbWUnOiB1J0Fs
bFRlc3RzJywKLSAgICB1J2FkX2hvY19wcm9wZXJ0eSc6IHUnNDInLAorICAgIHUndGVzdHMnOgor
ICAgICAgICAxLAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQn
OgorICAgICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgor
ICAgICAgICB1JyonLAorICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25h
bWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J2FkX2hvY19wcm9wZXJ0eSc6CisgICAg
ICAgIHUnNDInLAogICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnU3Vj
Y2Vzc2Z1bFRlc3QnLAotICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6
IDAsCi0gICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAg
ICAgIHUndGltZSc6IHUnKicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1N1Y2Nl
c3NmdWxUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1
J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAg
ICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0
aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAg
ICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6
IHUnU3VjY2VlZHMnLAogICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAg
ICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisg
ICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCiAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnU3VjY2Vzc2Z1bFRlc3QnLAogICAgICAgICB9XQogICAgIH1dLAogfQogCi1FWFBFQ1RFRF9F
TVBUWSA9IHsKLSAgICB1J3Rlc3RzJzogMCwKLSAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rp
c2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzogdSdBbGxUZXN0cycsCi0gICAgdSd0ZXN0
c3VpdGVzJzogW10sCitFWFBFQ1RFRF9OT19URVNUID0geworICAgIHUndGVzdHMnOgorICAgICAg
ICAwLAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAg
ICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAg
ICB1JyonLAorICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgor
ICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J3Rlc3RzdWl0ZXMnOiBbeworICAgICAgICB1J25h
bWUnOgorICAgICAgICAgICAgdSdOb25UZXN0U3VpdGVGYWlsdXJlJywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdza2lwcGVk
JzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6
CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAg
ICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzoK
KyAgICAgICAgICAgICAgICB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6CisgICAgICAg
ICAgICAgICAgdSdDT01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAg
ICAgICB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgICAgIHUn
KicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6CisgICAgICAgICAgICAgICAgdScnLAorICAg
ICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdn
dGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAg
ICAgICAgICAgIHUndHlwZSc6IHUnJywKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAg
fV0sCiB9CiAKIEdURVNUX1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4
ZWN1dGFibGVQYXRoKEdURVNUX1BST0dSQU1fTkFNRSkKQEAgLTQ1OSwxNCArNjg5LDE0IEBAIGNs
YXNzIEdUZXN0SnNvbk91dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgog
ICAgICAgIiIiCiAgICAgICBzZWxmLl9UZXN0SnNvbk91dHB1dChHVEVTVF9QUk9HUkFNX05BTUUs
IEVYUEVDVEVEX05PTl9FTVBUWSwgMSkKIAotICBkZWYgdGVzdEVtcHR5SnNvbk91dHB1dChzZWxm
KToKKyAgZGVmIHRlc3ROb1Rlc3RKc29uT3V0cHV0KHNlbGYpOgogICAgICIiIlZlcmlmaWVzIEpT
T04gb3V0cHV0IGZvciBhIEdvb2dsZSBUZXN0IGJpbmFyeSB3aXRob3V0IGFjdHVhbCB0ZXN0cy4K
IAotICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gZW1wdHkgSlNPTiBv
dXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIEpTT04gb3V0cHV0IGlzIGV4cGVjdGVkLgor
ICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gSlNPTiBvdXRwdXQgZm9y
IGEgYmluYXJ5IHdpdGggbm8KKyAgICB0ZXN0cywgYW5kIHRlc3RzIHRoYXQgdGhlIEpTT04gb3V0
cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAgc2VsZi5fVGVzdEpzb25PdXRwdXQoJ2d0
ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9FTVBUWSwgMCkKKyAgICBzZWxmLl9UZXN0
SnNvbk91dHB1dCgnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX05PX1RFU1QsIDAp
CiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToKICAgICAiIiJDaGVja3Mgd2hldGhl
ciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgSlNPTiBvdXRwdXQgaXMgdmFsaWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlua2Vk
LXB0ci10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxp
bmtlZC1wdHItdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEwMGYzNDI5
NmJkNTc5NGMxNjQ0NzlmMjJhODhkZDRmNzM2MDAxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtbGlua2VkLXB0ci10ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMTUxICswLDAgQEAK
LS8vIENvcHlyaWdodCAyMDAzLCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8g
ZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2luY2x1ZGUg
PHN0ZGxpYi5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5o
IgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXVzaW5nIHRlc3Rp
bmc6Ok1lc3NhZ2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6bGlua2VkX3B0cjsKLQotaW50
IG51bTsKLU1lc3NhZ2UqIGhpc3RvcnkgPSBOVUxMOwotCi0vLyBDbGFzcyB3aGljaCB0cmFja3Mg
YWxsb2NhdGlvbi9kZWFsbG9jYXRpb24KLWNsYXNzIEEgewotIHB1YmxpYzoKLSAgQSgpOiBteW51
bShudW0rKykgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXludW0gPDwgIiBjdG9yXG4iOyB9Ci0gIHZp
cnR1YWwgfkEoKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBteW51bSA8PCAiIGR0b3JcbiI7IH0KLSAg
dmlydHVhbCB2b2lkIFVzZSgpIHsgKmhpc3RvcnkgPDwgIkEiIDw8IG15bnVtIDw8ICIgdXNlXG4i
OyB9Ci0gcHJvdGVjdGVkOgotICBpbnQgbXludW07Ci19OwotCi0vLyBTdWJjbGFzcwotY2xhc3Mg
QiA6IHB1YmxpYyBBIHsKLSBwdWJsaWM6Ci0gIEIoKSB7ICpoaXN0b3J5IDw8ICJCIiA8PCBteW51
bSA8PCAiIGN0b3JcbiI7IH0KLSAgfkIoKSB7ICpoaXN0b3J5IDw8ICJCIiA8PCBteW51bSA8PCAi
IGR0b3JcbiI7IH0KLSAgdmlydHVhbCB2b2lkIFVzZSgpIHsgKmhpc3RvcnkgPDwgIkIiIDw8IG15
bnVtIDw8ICIgdXNlXG4iOyB9Ci19OwotCi1jbGFzcyBMaW5rZWRQdHJUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewotIHB1YmxpYzoKLSAgTGlua2VkUHRyVGVzdCgpIHsKLSAgICBudW0gPSAw
OwotICAgIGhpc3RvcnkgPSBuZXcgTWVzc2FnZTsKLSAgfQotCi0gIHZpcnR1YWwgfkxpbmtlZFB0
clRlc3QoKSB7Ci0gICAgZGVsZXRlIGhpc3Rvcnk7Ci0gICAgaGlzdG9yeSA9IE5VTEw7Ci0gIH0K
LX07Ci0KLVRFU1RfRihMaW5rZWRQdHJUZXN0LCBHZW5lcmFsVGVzdCkgewotICB7Ci0gICAgbGlu
a2VkX3B0cjxBPiBhMCwgYTEsIGEyOwotICAgIC8vIFVzZSBleHBsaWNpdCBmdW5jdGlvbiBjYWxs
IG5vdGF0aW9uIGhlcmUgdG8gc3VwcHJlc3Mgc2VsZi1hc3NpZ24gd2FybmluZy4KLSAgICBhMC5v
cGVyYXRvcj0oYTApOwotICAgIGExID0gYTI7Ci0gICAgQVNTRVJUX0VRKGEwLmdldCgpLCBzdGF0
aWNfY2FzdDxBKj4oTlVMTCkpOwotICAgIEFTU0VSVF9FUShhMS5nZXQoKSwgc3RhdGljX2Nhc3Q8
QSo+KE5VTEwpKTsKLSAgICBBU1NFUlRfRVEoYTIuZ2V0KCksIHN0YXRpY19jYXN0PEEqPihOVUxM
KSk7Ci0gICAgQVNTRVJUX1RSVUUoYTAgPT0gTlVMTCk7Ci0gICAgQVNTRVJUX1RSVUUoYTEgPT0g
TlVMTCk7Ci0gICAgQVNTRVJUX1RSVUUoYTIgPT0gTlVMTCk7Ci0KLSAgICB7Ci0gICAgICBsaW5r
ZWRfcHRyPEE+IGEzKG5ldyBBKTsKLSAgICAgIGEwID0gYTM7Ci0gICAgICBBU1NFUlRfVFJVRShh
MCA9PSBhMyk7Ci0gICAgICBBU1NFUlRfVFJVRShhMCAhPSBOVUxMKTsKLSAgICAgIEFTU0VSVF9U
UlVFKGEwLmdldCgpID09IGEzKTsKLSAgICAgIEFTU0VSVF9UUlVFKGEwID09IGEzLmdldCgpKTsK
LSAgICAgIGxpbmtlZF9wdHI8QT4gYTQoYTApOwotICAgICAgYTEgPSBhNDsKLSAgICAgIGxpbmtl
ZF9wdHI8QT4gYTUobmV3IEEpOwotICAgICAgQVNTRVJUX1RSVUUoYTUuZ2V0KCkgIT0gYTMpOwot
ICAgICAgQVNTRVJUX1RSVUUoYTUgIT0gYTMuZ2V0KCkpOwotICAgICAgYTIgPSBhNTsKLSAgICAg
IGxpbmtlZF9wdHI8Qj4gYjAobmV3IEIpOwotICAgICAgbGlua2VkX3B0cjxBPiBhNihiMCk7Ci0g
ICAgICBBU1NFUlRfVFJVRShiMCA9PSBhNik7Ci0gICAgICBBU1NFUlRfVFJVRShhNiA9PSBiMCk7
Ci0gICAgICBBU1NFUlRfVFJVRShiMCAhPSBOVUxMKTsKLSAgICAgIGE1ID0gYjA7Ci0gICAgICBh
NSA9IGIwOwotICAgICAgYTMtPlVzZSgpOwotICAgICAgYTQtPlVzZSgpOwotICAgICAgYTUtPlVz
ZSgpOwotICAgICAgYTYtPlVzZSgpOwotICAgICAgYjAtPlVzZSgpOwotICAgICAgKCpiMCkuVXNl
KCk7Ci0gICAgICBiMC5nZXQoKS0+VXNlKCk7Ci0gICAgfQotCi0gICAgYTAtPlVzZSgpOwotICAg
IGExLT5Vc2UoKTsKLSAgICBhMi0+VXNlKCk7Ci0KLSAgICBhMSA9IGEyOwotICAgIGEyLnJlc2V0
KG5ldyBBKTsKLSAgICBhMC5yZXNldCgpOwotCi0gICAgbGlua2VkX3B0cjxBPiBhNzsKLSAgfQot
Ci0gIEFTU0VSVF9TVFJFUSgKLSAgICAiQTAgY3RvclxuIgotICAgICJBMSBjdG9yXG4iCi0gICAg
IkEyIGN0b3JcbiIKLSAgICAiQjIgY3RvclxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTAgdXNl
XG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAg
IkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgZHRvclxuIgotICAgICJBMiBkdG9y
XG4iCi0gICAgIkEwIHVzZVxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTEgdXNlXG4iCi0gICAg
IkEzIGN0b3JcbiIKLSAgICAiQTAgZHRvclxuIgotICAgICJBMyBkdG9yXG4iCi0gICAgIkExIGR0
b3JcbiIsCi0gICAgaGlzdG9yeS0+R2V0U3RyaW5nKCkuY19zdHIoKSk7Ci19Ci0KLX0gIC8vIFVu
bmFtZWQgbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MKaW5kZXggZjQ3M2M3
ZDFhNDVmMWYxOTZiMTM3NDgzYjA1M2NhNTk4MDA3ZDI4OC4uNDkzYzZmMDA0NjRhOTBkNjM1ZDhk
ZjA5NmJmZmVjNTE3M2U2ZTQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYwpAQCAt
OTksNyArOTksNyBAQCBURVNUX1AoVmFsdWVQYXJhbVRlc3QsIFRlc3RBKSB7CiBURVNUX1AoVmFs
dWVQYXJhbVRlc3QsIFRlc3RCKSB7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKAogICAgIE15SW5zdGFudGlhdGlvbiwgVmFsdWVQYXJhbVRl
c3QsCiAgICAgdGVzdGluZzo6VmFsdWVzKE15VHlwZSgib25lIGxpbmUiKSwKICAgICAgICAgICAg
ICAgICAgICAgTXlUeXBlKCJ0d29cbmxpbmVzIiksCkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3Mg
TXlBcnJheSB7CiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPFZlcnlMb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb2dOYW1lLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgIGludCosIE15QXJy
YXk8Ym9vbCwgNDI+ID4gTXlUeXBlczsKIAotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdCwgTXlU
eXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdCwgTXlUeXBlcyk7CiAKIFRZUEVEX1RF
U1QoVHlwZWRUZXN0LCBUZXN0QSkgewogfQpAQCAtMTM3LDcgKzEzNyw3IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgVHlwZVBhcmFtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
IH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbVRlc3QpOworVFlQRURfVEVTVF9TVUlU
RV9QKFR5cGVQYXJhbVRlc3QpOwogCiBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEp
IHsKIH0KQEAgLTE0NSw5ICsxNDUsOSBAQCBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVz
dEEpIHsKIFRZUEVEX1RFU1RfUChUeXBlUGFyYW1UZXN0LCBUZXN0QikgewogfQogCi1SRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1UZXN0LCBUZXN0QSwgVGVzdEIpOworUkVHSVNU
RVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbVRlc3QsIFRlc3RBLCBUZXN0Qik7CiAKLUlO
U1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBUeXBlUGFyYW1UZXN0LCBNeVR5cGVzKTsK
K0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgVHlwZVBhcmFtVGVzdCwgTXlUeXBl
cyk7CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICA6OnRlc3Rpbmc6Oklu
aXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKaW5kZXggODM1NTU5NzE1
MWQwOWQ2YzMxNTY3MWY0MmRiNjZjYzRiZDQ4NTBmZC4uMTA0NTdhZmUzOWE3ZGJkMWZhMGY3MzM5
Mjg2Nzg3MjhkY2QxYjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKQEAgLTM1LDE5ICszNSwyMCBAQAog
I2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisjaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgiCiAKIHVzaW5nIDo6dGVzdGluZzo6QWRkR2xv
YmFsVGVzdEVudmlyb25tZW50OwogdXNpbmcgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudDsKIHVzaW5n
IDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3Q7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3Q7Ci11c2lu
ZyA6OnRlc3Rpbmc6OlRlc3RDYXNlOwordXNpbmcgOjp0ZXN0aW5nOjpUZXN0U3VpdGU7CiB1c2lu
ZyA6OnRlc3Rpbmc6OlRlc3RFdmVudExpc3RlbmVyOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5m
bzsKIHVzaW5nIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ7CiB1c2luZyA6OnRlc3Rpbmc6OlVu
aXRUZXN0OwogCiAvLyBVc2VkIGJ5IHRlc3RzIHRvIHJlZ2lzdGVyIHRoZWlyIGV2ZW50cy4KLXN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiogZ19ldmVudHMgPSBOVUxMOworc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+KiBnX2V2ZW50cyA9IG51bGxwdHI7CiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5h
bWVzcGFjZSBpbnRlcm5hbCB7CkBAIC01Nyw2MyArNTgsNjYgQEAgY2xhc3MgRXZlbnRSZWNvcmRp
bmdMaXN0ZW5lciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgIGV4cGxpY2l0IEV2ZW50
UmVjb3JkaW5nTGlzdGVuZXIoY29uc3QgY2hhciogbmFtZSkgOiBuYW1lXyhuYW1lKSB7fQogCiAg
cHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3JhbVN0YXJ0IikpOwogICB9CiAKLSAgdmly
dHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikg
eworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJyaWRl
IHsKICAgICBNZXNzYWdlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFt
ZSgiT25UZXN0SXRlcmF0aW9uU3RhcnQiKQogICAgICAgICAgICAgPDwgIigiIDw8IGl0ZXJhdGlv
biA8PCAiKSI7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsK
ICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQo
Y29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+
cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwU3RhcnQiKSk7
CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwRW5kIikpOwogICB9
Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0
X2Nhc2UqLykgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAg
dm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJy
aWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RD
YXNlU3RhcnQiKSk7CiAgIH0KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRl
c3RfaW5mbyovKSB7CisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9p
bmZvKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2RO
YW1lKCJPblRlc3RTdGFydCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVz
dWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykgeworICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3Vs
dCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFt
ZSgiT25UZXN0UGFydFJlc3VsdCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQo
Y29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3Qg
VGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9i
YWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RFbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZv
aWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgeworI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5k
KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0Q2FzZUVuZCIpKTsKICAgfQorI2Vu
ZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAotICB2aXJ0dWFsIHZv
aWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRG
dWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IikpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIpKTsKICAgfQog
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlv
bikgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUg
ewogICAgIE1lc3NhZ2UgbWVzc2FnZTsKICAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2ROYW1l
KCJPblRlc3RJdGVyYXRpb25FbmQiKQogICAgICAgICAgICAgPDwgIigiICA8PCBpdGVyYXRpb24g
PDwgIikiOwogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmcoKSk7CiAg
IH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLykgeworICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxN
ZXRob2ROYW1lKCJPblRlc3RQcm9ncmFtRW5kIikpOwogICB9CiAKQEAgLTEyNSwzNCArMTI5LDk4
IEBAIGNsYXNzIEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVu
ZXIgewogICBzdGQ6OnN0cmluZyBuYW1lXzsKIH07CiAKLWNsYXNzIEVudmlyb25tZW50SW52b2Nh
dGlvbkNhdGNoZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgeworLy8gVGhpcyBsaXN0ZW5lciBpcyB1
c2luZyBPblRlc3RTdWl0ZVN0YXJ0LCBPblRlc3RTdWl0ZUVuZCBBUEkKK2NsYXNzIEV2ZW50UmVj
b3JkaW5nTGlzdGVuZXIyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKKyBwdWJsaWM6Cisg
IGV4cGxpY2l0IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIyKGNvbnN0IGNoYXIqIG5hbWUpIDogbmFt
ZV8obmFtZSkge30KKwogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50OjpTZXRVcCIpOworICB2b2lkIE9uVGVz
dFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewor
ICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1T
dGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJh
dGlvbikgb3ZlcnJpZGUgeworICAgIE1lc3NhZ2UgbWVzc2FnZTsKKyAgICBtZXNzYWdlIDw8IEdl
dEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25TdGFydCIpIDw8ICIoIiA8PCBpdGVyYXRp
b24KKyAgICAgICAgICAgIDw8ICIpIjsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKG1lc3NhZ2Uu
R2V0U3RyaW5nKCkpOworICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwU3RhcnQiKSk7Cisg
IH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwRW5kIikpOworICB9CisKKyAgdm9pZCBPblRlc3RT
dWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0X3N1aXRlKi8pIG92ZXJyaWRlIHsKKyAg
ICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RTdWl0ZVN0YXJ0
IikpOworICB9CisKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2lu
Zm8qLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uVGVzdFN0YXJ0IikpOworICB9CisKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0
IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykgb3ZlcnJpZGUgeworICAgIGdf
ZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFBhcnRSZXN1bHQiKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykg
b3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9u
VGVzdEVuZCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6VGVhckRvd24iKTsKKyAgdm9pZCBPblRlc3RT
dWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7CisgICAg
Z19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0U3VpdGVFbmQiKSk7
CiAgIH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVz
dCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0
RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIpKTsKKyAgfQorCisg
IHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEl0
ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUgeworICAgIE1lc3NhZ2UgbWVzc2Fn
ZTsKKyAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25FbmQi
KSA8PCAiKCIgPDwgaXRlcmF0aW9uCisgICAgICAgICAgICA8PCAiKSI7CisgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0UHJv
Z3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdf
ZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1FbmQiKSk7
CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6c3RyaW5nIEdldEZ1bGxNZXRob2ROYW1lKGNvbnN0
IGNoYXIqIG5hbWUpIHsgcmV0dXJuIG5hbWVfICsgIi4iICsgbmFtZTsgfQorCisgIHN0ZDo6c3Ry
aW5nIG5hbWVfOworfTsKKworY2xhc3MgRW52aXJvbm1lbnRJbnZvY2F0aW9uQ2F0Y2hlciA6IHB1
YmxpYyBFbnZpcm9ubWVudCB7CisgcHJvdGVjdGVkOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
eyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6U2V0VXAiKTsgfQorCisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7IGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50OjpU
ZWFyRG93biIpOyB9CiB9OwogCiBjbGFzcyBMaXN0ZW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAg
cHJvdGVjdGVkOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIGdfZXZlbnRz
LT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0Q2FzZSIpOworICBzdGF0aWMgdm9p
ZCBTZXRVcFRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRl
c3Q6OlNldFVwVGVzdFN1aXRlIik7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RD
YXNlKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6VGVhckRvd25U
ZXN0Q2FzZSIpOworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIik7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlz
dGVuZXJUZXN0OjpTZXRVcCIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IGdfZXZl
bnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXAiKTsgfQogCi0gIHZpcnR1YWwgdm9p
ZCBUZWFyRG93bigpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRl
YXJEb3duIik7Ci0gIH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgZ19ldmVudHMtPnB1
c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIpOyB9CiB9OwogCiBURVNUX0YoTGlzdGVu
ZXJUZXN0LCBEb2VzRm9vKSB7CkBAIC0xNzMsNiArMjQxLDcgQEAgVEVTVF9GKExpc3RlbmVyVGVz
dCwgRG9lc0JhcikgewogCiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpFbnZpcm9ubWVudElu
dm9jYXRpb25DYXRjaGVyOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RXZlbnRSZWNvcmRp
bmdMaXN0ZW5lcjsKK3VzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV2ZW50UmVjb3JkaW5nTGlz
dGVuZXIyOwogCiB2b2lkIFZlcmlmeVJlc3VsdHMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+JiBkYXRhLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBleHBlY3Rl
ZF9kYXRhLApAQCAtMjA3LDYgKzI3Niw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikgewogICAgICAgbmV3IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIoIjFzdCIpKTsKICAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLkFwcGVuZCgKICAgICAgIG5ldyBFdmVudFJl
Y29yZGluZ0xpc3RlbmVyKCIybmQiKSk7CisgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0
ZW5lcnMoKS5BcHBlbmQoCisgICAgICBuZXcgRXZlbnRSZWNvcmRpbmdMaXN0ZW5lcjIoIjNyZCIp
KTsKIAogICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEVudmlyb25tZW50SW52b2NhdGlv
bkNhdGNoZXIpOwogCkBAIC0yMTYsODggKzI4NywyMjQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KSB7CiAgIDo6dGVzdGluZzo6R1RFU1RfRkxBRyhyZXBlYXQpID0gMjsKICAgaW50
IHJldF92YWwgPSBSVU5fQUxMX1RFU1RTKCk7CiAKLSAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0
ZWRfZXZlbnRzW10gPSB7Ci0gICAgIjFzdC5PblRlc3RQcm9ncmFtU3RhcnQiLAotICAgICIybmQu
T25UZXN0UHJvZ3JhbVN0YXJ0IiwKLSAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwK
LSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1l
bnRzU2V0VXBTdGFydCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAg
ICJFbnZpcm9ubWVudDo6U2V0VXAiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIs
Ci0gICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VT
dGFydCIsCi0gICAgIjJuZC5PblRlc3RDYXNlU3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNl
dFVwVGVzdENhc2UiLAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3Rh
cnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRl
c3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBh
cnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVz
dEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAg
ICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlz
dGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAg
ICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwK
LSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQiLAotICAgICJMaXN0ZW5l
clRlc3Q6OlRlYXJEb3duVGVzdENhc2UiLAotICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCi0gICAg
IjFzdC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFy
dCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAotICAgICJFbnZpcm9u
bWVudDo6VGVhckRvd24iLAotICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0g
ICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJh
dGlvbkVuZCgwKSIsCi0gICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAotICAgICIxc3Qu
T25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQo
MSkiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKLSAgICAiMm5kLk9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAgIkVudmlyb25tZW50OjpTZXRVcCIsCi0gICAgIjJu
ZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBF
bmQiLAotICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwKLSAgICAiMm5kLk9uVGVzdENhc2VTdGFy
dCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0Q2FzZSIsCi0gICAgIjFzdC5PblRlc3RT
dGFydCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAi
LAotICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRS
ZXN1bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6
VGVhckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0g
ICAgIjFzdC5PblRlc3RTdGFydCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0gICAgIkxpc3Rl
bmVyVGVzdDo6U2V0VXAiLAotICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKLSAgICAi
MXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCi0gICAg
Ikxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwKLSAgICAiMXN0
Lk9uVGVzdEVuZCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0Q2FzZSIsCi0gICAg
IjJuZC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VFbmQiLAotICAgICIxc3Qu
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVh
ckRvd25TdGFydCIsCi0gICAgIkVudmlyb25tZW50OjpUZWFyRG93biIsCi0gICAgIjJuZC5PbkVu
dmlyb25tZW50c1RlYXJEb3duRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25F
bmQiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKLSAgICAiMXN0Lk9uVGVzdEl0
ZXJhdGlvbkVuZCgxKSIsCi0gICAgIjJuZC5PblRlc3RQcm9ncmFtRW5kIiwKLSAgICAiMXN0Lk9u
VGVzdFByb2dyYW1FbmQiCi0gIH07CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXworCisgIC8vIFRoZSBkZXByZWNhdGVkIE9uVGVzdFN1aXRlU3RhcnQvT25UZXN0Q2Fz
ZVN0YXJ0IGV2ZW50cyBhcmUgaW5jbHVkZWQKKyAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRf
ZXZlbnRzW10gPSB7IjFzdC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbVN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJ
dGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1Nl
dFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNT
ZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQu
T25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RDYXNl
U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVu
ZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBh
cnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6
OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3Rl
bmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRl
c3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9u
VGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0
ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJu
ZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6VGVhckRv
d24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52
aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0
ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEp
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RJ
dGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNy
ZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1Nl
dFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
bkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNlU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdENhc2VTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVz
dFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3Vs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3Qg
Qm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25U
ZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRv
d25UZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdFN1aXRlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RDYXNlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRz
VGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpUZWFyRG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93
bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25F
bnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RJdGVy
YXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
MXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UHJvZ3JhbUVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UHJvZ3JhbUVuZCJ9Owor
I2Vsc2UKKyAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRfZXZlbnRzW10gPSB7IjFzdC5PblRl
c3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0
aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBT
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25F
bnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZp
cm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdFN1aXRlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6
U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVu
ZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3du
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RF
bmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25U
ZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3Vs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0U3VpdGUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlRW5kIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50
OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz
cmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQu
T25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9u
U3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmly
b25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJv
bm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1
bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJU
ZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRS
ZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9u
VGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1
aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRl
c3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRz
VGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25F
bmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52
aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25F
bmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMXN0Lk9uVGVzdFByb2dyYW1FbmQifTsKKyNlbmRpZiAgLy8gR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKICAgVmVyaWZ5UmVzdWx0cyhldmVudHMsCiAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZXZlbnRzLAogICAgICAgICAgICAgICAgIHNpemVvZihleHBl
Y3RlZF9ldmVudHMpL3NpemVvZihleHBlY3RlZF9ldmVudHNbMF0pKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNjCmlu
ZGV4IGM2NDQ1ODUzZTQzM2QzYzE0MzQ1MjU3MzkxYTZiOTg4YTlkMzgwZWYuLjk2MmQ1MTkxMTRl
NmU0ZTNkYzNkZjE5ZmRlNzU0NTU3MWJjMDMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW1lc3NhZ2UtdGVzdC5jYwpAQCAtODUsNyAr
ODUsNyBAQCBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zUG9pbnRlcikgewogCiAvLyBUZXN0cyBz
dHJlYW1pbmcgYSBOVUxMIG5vbi1jaGFyIHBvaW50ZXIuCiBURVNUKE1lc3NhZ2VUZXN0LCBTdHJl
YW1zTnVsbFBvaW50ZXIpIHsKLSAgaW50KiBwID0gTlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsK
ICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVzc2FnZSgpIDw8IHApLkdldFN0cmluZygpKTsKIH0K
IApAQCAtOTYsNyArOTYsNyBAQCBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zQ1N0cmluZykgewog
CiAvLyBUZXN0cyBzdHJlYW1pbmcgYSBOVUxMIEMgc3RyaW5nLgogVEVTVChNZXNzYWdlVGVzdCwg
U3RyZWFtc051bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAgPSBOVUxMOworICBjaGFyKiBwID0gbnVs
bHB0cjsKICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVzc2FnZSgpIDw8IHApLkdldFN0cmluZygp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LW9wdGlvbnMtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1vcHRpb25zLXRlc3QuY2MKaW5kZXggZWRkNGViYTNiZDMxMDk1OTUwYThkOThjZjNkYWY2
ZjM0ZDY0OTY5Zi4uZjA3YjMxNmRiM2I5NDEwNTMwM2IyMjc1ZWIzZjlkYzZkMTExOTA4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW9wdGlvbnMt
dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3B0
aW9ucy10ZXN0LmNjCkBAIC0xMDIsMTAgKzEwMiwxNSBAQCBURVNUKE91dHB1dEZpbGVIZWxwZXJz
VGVzdCwgR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKSB7CiAgICAgICBfc3RyY21waSgiZ3Rlc3Qt
b3B0aW9ucy1leF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8CiAgICAgICBfc3RyY21w
aSgiZ3Rlc3RfYWxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAgfHwKICAgICAgIF9zdHJj
bXBpKCJndGVzdF9kbGxfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMDsKKyNlbGlmIEdURVNU
X09TX09TMgorICBjb25zdCBib29sIHN1Y2Nlc3MgPQorICAgICAgc3RyY2FzZWNtcCgiZ29vZ2xl
dGVzdC1vcHRpb25zLXRlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAgfHwKKyAgICAgIHN0cmNh
c2VjbXAoImd0ZXN0LW9wdGlvbnMtZXhfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAor
ICAgICAgc3RyY2FzZWNtcCgiZ3Rlc3RfYWxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAg
fHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0X2RsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9
PSAwOwogI2VsaWYgR1RFU1RfT1NfRlVDSFNJQQogICBjb25zdCBib29sIHN1Y2Nlc3MgPSBleGVf
c3RyID09ICJhcHAiOwogI2Vsc2UKLSAgLy8gRklYTUU6IHJlbW92ZSB0aGUgaGFyZC1jb2RlZCAi
bHQtIiBwcmVmaXggd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50IGlzIHJlYWR5CiAgIGNvbnN0IGJv
b2wgc3VjY2VzcyA9CiAgICAgICBleGVfc3RyID09ICJnb29nbGV0ZXN0LW9wdGlvbnMtdGVzdCIg
fHwKICAgICAgIGV4ZV9zdHIgPT0gImd0ZXN0X2FsbF90ZXN0IiB8fApAQCAtMTIwLDcgKzEyNSw3
IEBAIFRFU1QoT3V0cHV0RmlsZUhlbHBlcnNUZXN0LCBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUp
IHsKIAogY2xhc3MgWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKICAgICBvcmlnaW5hbF93b3JraW5nX2Rpcl8gPSBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigp
OwogICAgIHBvc2l4OjpDaERpcigiLi4iKTsKICAgICAvLyBUaGlzIHdpbGwgbWFrZSB0aGUgdGVz
dCBmYWlsIGlmIHJ1biBmcm9tIHRoZSByb290IGRpcmVjdG9yeS4KQEAgLTEyOCw3ICsxMzMsNyBA
QCBjbGFzcyBYbWxPdXRwdXRDaGFuZ2VEaXJUZXN0IDogcHVibGljIFRlc3QgewogICAgICAgICAg
ICAgICBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpLnN0cmluZygpKTsKICAgfQogCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBw
b3NpeDo6Q2hEaXIob3JpZ2luYWxfd29ya2luZ19kaXJfLnN0cmluZygpLmNfc3RyKCkpOwogICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1v
dXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dAppbmRleCA4NmRhODQ1YjdkMDRl
YTFmMmI1NTM0NjA0ZWU5YzBkMmI1Zjg1OTE2Li4zZmFiM2I5N2Q4ZjFhMjJiNjQxZDc1NWFiODM1
OWU1YjAzYzkyMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0CkBAIC0x
Miw3ICsxMiw3IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKICAgMwogU3Rh
Y2sgdHJhY2U6IChvbWl0dGVkKQogCi0bWzA7MzJtWz09PT09PT09PT1dIBtbbVJ1bm5pbmcgNzYg
dGVzdHMgZnJvbSAzNCB0ZXN0IGNhc2VzLgorG1swOzMybVs9PT09PT09PT09XSAbW21SdW5uaW5n
IDg4IHRlc3RzIGZyb20gNDEgdGVzdCBzdWl0ZXMuCiAbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbUds
b2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIEZvb0Vudmlyb25tZW50OjpTZXRVcCgpIGNh
bGxlZC4KIEJhckVudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC4KQEAgLTM4MCw2NiArMzgwLDc0
IEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttQWRkRmFp
bHVyZUF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxlQW5kTGluZU51bWJlcgogZm9v
LmNjOjQyOiBGYWlsdXJlCiBGYWlsZWQKLUV4cGVjdGVkIGZhaWx1cmUgaW4gZm9vLmNjCitFeHBl
Y3RlZCBub25mYXRhbCBmYWlsdXJlIGluIGZvby5jYwogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQog
CiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUFkZEZhaWx1cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5z
U3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKLRtbMDszMm1bLS0tLS0tLS0tLV0gG1ttNCB0ZXN0
cyBmcm9tIE1peGVkVXBUZXN0Q2FzZVRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRV
cFRlc3RDYXNlVGVzdC5GaXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9vCi0bWzA7MzJtWyAgICAgICBP
SyBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbwotG1sw
OzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlNlY29uZFRlc3RGcm9tTmFt
ZXNwYWNlRm9vCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuU2Vj
b25kVGVzdEZyb21OYW1lc3BhY2VGb28KLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRl
c3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAorG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3Qg
ZnJvbSBHdGVzdEZhaWxBdFRlc3QKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR3Rlc3RGYWlsQXRU
ZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCitmb28uY2M6NDI6
IEZhaWx1cmUKK0ZhaWxlZAorRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSBpbiBmb28uY2MKK1N0YWNr
IHRyYWNlOiAob21pdHRlZCkKKworG1swOzMxbVsgIEZBSUxFRCAgXSAbW21HdGVzdEZhaWxBdFRl
c3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKKxtbMDszMm1bLS0t
LS0tLS0tLV0gG1ttNCB0ZXN0cyBmcm9tIE1peGVkVXBUZXN0U3VpdGVUZXN0CisbWzA7MzJtWyBS
VU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VG
b28KKxtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuRmlyc3RUZXN0
RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRl
VGVzdC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsgICAgICAgT0sgXSAbW21N
aXhlZFVwVGVzdFN1aXRlVGVzdC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsg
UlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbAogZ3Rlc3Qu
Y2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11
c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IGNh
c2UgTWl4ZWRVcFRlc3RDYXNlVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRl
IG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0
IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVUZXN0LAogeW91IGRlZmluZWQgdGVzdCBGaXJzdFRlc3RG
cm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0IFRoaXNTaG91bGRGYWlsCiB1c2luZyB0d28gZGlmZmVy
ZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCiB0aGUgdHdvIGNs
YXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KIHVuaXRz
IGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUK
LW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNl
cy4KK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBz
dWl0ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBGQUlMRUQgIF0gG1tt
TWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAotG1swOzMybVsgUlVOICAgICAgXSAb
W21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCisbWzA7MzFtWyAgRkFJTEVE
ICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsCisbWzA7MzJtWyBSVU4g
ICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsVG9vCiBndGVzdC5j
YzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVz
dCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2Fz
ZSBNaXhlZFVwVGVzdENhc2VUZXN0LAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUg
bXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qg
c3VpdGUgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsCiB5b3UgZGVmaW5lZCB0ZXN0IEZpcnN0VGVzdEZy
b21OYW1lc3BhY2VGb28gYW5kIHRlc3QgVGhpc1Nob3VsZEZhaWxUb28KIHVzaW5nIHR3byBkaWZm
ZXJlbnQgdGVzdCBmaXh0dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWYKIHRoZSB0d28g
Y2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xhdGlvbgogdW5p
dHMgYW5kIGhhdmUgdGhlIHNhbWUgbmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkgcmVuYW1lIG9u
ZQotb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNh
c2VzLgorb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0
IHN1aXRlcy4KIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCi0bWzA7MzJtWy0tLS0tLS0t
LS1dIBtbbTIgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdAot
G1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVz
dC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAotG1swOzMybVsgICAgICAgT0sg
XSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0
aFRoaXNOYW1lU2hvdWxkRmFpbAotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENh
c2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFp
bAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxk
RmFpbFRvbworG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RT
dWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBU
ZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hv
dWxkRmFpbAorG1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVU
ZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKKxtbMDszMm1b
IFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNl
Y29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWls
ZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVz
dCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSBNaXhlZFVwVGVzdENhc2VX
aXRoU2FtZVRlc3ROYW1lVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11
c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1
aXRlIE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCwKIHlvdSBkZWZpbmVkIHRl
c3QgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwgYW5kIHRlc3QgVGhlU2Vjb25k
VGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKIHVzaW5nIHR3byBkaWZmZXJlbnQgdGVzdCBmaXh0
dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWYKIHRoZSB0d28gY2xhc3NlcyBhcmUgZnJv
bSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xhdGlvbgogdW5pdHMgYW5kIGhhdmUgdGhl
IHNhbWUgbmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkgcmVuYW1lIG9uZQotb2YgdGhlIGNsYXNz
ZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNhc2VzLgorb2YgdGhlIGNs
YXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IHN1aXRlcy4KIFN0YWNr
IHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENh
c2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFp
bAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFt
ZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKIBtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2Fz
ZQogG1swOzMybVsgUlVOICAgICAgXSAbW21URVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0
X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9GCiAbWzA7MzJtWyAgICAgICBPSyBdIBtbbVRFU1RfRl9i
ZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUX0YKIBtbMDszMm1b
IFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLkRlZmlu
ZWRVc2luZ1RFU1RBbmRTaG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFs
bCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0
dXJlCi1jbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IGNh
c2UgaXMKLWlsbGVnYWwuICBJbiB0ZXN0IGNhc2UgVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVf
dGVzdF9jYXNlLAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhl
IHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0
aGUgc2FtZSB0ZXN0IHN1aXRlIGlzCitpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSBURVNUX0ZfYmVm
b3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UsCiB0ZXN0IERlZmluZWRVc2luZ1RFU1RfRiBpcyBk
ZWZpbmVkIHVzaW5nIFRFU1RfRiBidXQKIHRlc3QgRGVmaW5lZFVzaW5nVEVTVEFuZFNob3VsZEZh
aWwgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5CiB3YW50IHRvIGNoYW5nZSB0
aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKQEAgLTQ1Myw5ICs0
NjEsOSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbVRF
U1RfYmVmb3JlX1RFU1RfRl9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUX0ZBbmRT
aG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUg
c2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcywgc28g
bWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgaXMKLWlsbGVnYWwu
ICBJbiB0ZXN0IGNhc2UgVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNlLAorQWxs
IHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0
dXJlCitjbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IHN1
aXRlIGlzCitpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSBURVNUX2JlZm9yZV9URVNUX0ZfaW5fc2Ft
ZV90ZXN0X2Nhc2UsCiB0ZXN0IERlZmluZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZhaWwgaXMgZGVm
aW5lZCB1c2luZyBURVNUX0YgYnV0CiB0ZXN0IERlZmluZWRVc2luZ1RFU1QgaXMgZGVmaW5lZCB1
c2luZyBURVNULiAgWW91IHByb2JhYmx5CiB3YW50IHRvIGNoYW5nZSB0aGUgVEVTVCB0byBURVNU
X0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKQEAgLTg3MCw2ICs4NzgsODQgQEAgRXhwZWN0
ZWQgbm9uLWZhdGFsIGZhaWx1cmUuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKIBtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVy
Y2VwdE9ubHlDdXJyZW50VGhyZWFkCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJv
bSBEeW5hbWljRml4dHVyZQorRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1aXRlCisbWzA7MzJt
WyBSVU4gICAgICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFtaWNUZXN0UGFzcworRHluYW1pY0Zp
eHR1cmUoKQorRHluYW1pY0ZpeHR1cmU6OlNldFVwCitEeW5hbWljRml4dHVyZTo6VGVhckRvd24K
K35EeW5hbWljRml4dHVyZSgpCisbWzA7MzJtWyAgICAgICBPSyBdIBtbbUR5bmFtaWNGaXh0dXJl
LkR5bmFtaWNUZXN0UGFzcworG1swOzMybVsgUlVOICAgICAgXSAbW21EeW5hbWljRml4dHVyZS5E
eW5hbWljVGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAor
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVyZQorVmFsdWUgb2Y6IFBhc3MKKyAg
QWN0dWFsOiBmYWxzZQorRXhwZWN0ZWQ6IHRydWUKK1N0YWNrIHRyYWNlOiAob21pdHRlZCkKKwor
RHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJl
OjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBE
eW5hbWljRml4dHVyZUFub3RoZXJOYW1lCitEeW5hbWljRml4dHVyZTo6U2V0VXBUZXN0U3VpdGUK
KxtbMDszMm1bIFJVTiAgICAgIF0gG1ttRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZS5EeW5hbWlj
VGVzdFBhc3MKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1p
Y0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sg
XSAbW21EeW5hbWljRml4dHVyZUFub3RoZXJOYW1lLkR5bmFtaWNUZXN0UGFzcworRHluYW1pY0Zp
eHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMg
ZnJvbSBCYWREeW5hbWljRml4dHVyZTEKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQor
G1swOzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuRml4dHVyZUJhc2UKK0R5
bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRl
YXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21CYWREeW5h
bWljRml4dHVyZTEuRml4dHVyZUJhc2UKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1p
Y0ZpeHR1cmUxLlRlc3RCYXNlCitEeW5hbWljRml4dHVyZSgpCitndGVzdC5jYzojOiBGYWlsdXJl
CitGYWlsZWQKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBz
YW1lIHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhl
IHNhbWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgQmFkRHluYW1pY0Zp
eHR1cmUxLAordGVzdCBGaXh0dXJlQmFzZSBpcyBkZWZpbmVkIHVzaW5nIFRFU1RfRiBidXQKK3Rl
c3QgVGVzdEJhc2UgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5Cit3YW50IHRv
IGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKK2Nh
c2UuCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKK35EeW5hbWljRml4dHVyZSgpCisbWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMS5UZXN0QmFzZQorRHluYW1pY0ZpeHR1
cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJv
bSBCYWREeW5hbWljRml4dHVyZTIKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQorG1sw
OzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWljRml4dHVyZTIuRml4dHVyZUJhc2UKK0R5bmFt
aWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRlYXJE
b3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21CYWREeW5hbWlj
Rml4dHVyZTIuRml4dHVyZUJhc2UKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0Zp
eHR1cmUyLkRlcml2ZWQKK0R5bmFtaWNGaXh0dXJlKCkKK2d0ZXN0LmNjOiM6IEZhaWx1cmUKK0Zh
aWxlZAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUg
dGVzdCBmaXh0dXJlCitjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qgc3VpdGUgQmFkRHluYW1pY0Zp
eHR1cmUyLAoreW91IGRlZmluZWQgdGVzdCBGaXh0dXJlQmFzZSBhbmQgdGVzdCBEZXJpdmVkCit1
c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVu
IGlmCit0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJh
bnNsYXRpb24KK3VuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2Jh
Ymx5IHJlbmFtZSBvbmUKK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZm
ZXJlbnQgdGVzdCBzdWl0ZXMuCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKK35EeW5hbWljRml4
dHVyZSgpCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVk
CitEeW5hbWljRml4dHVyZTo6VGVhckRvd25UZXN0U3VpdGUKIBtbMDszMm1bLS0tLS0tLS0tLV0g
G1ttMSB0ZXN0IGZyb20gUHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QKIBtb
MDszMm1bIFJVTiAgICAgIF0gG1ttUHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRl
c3QuRmFpbHMvMAogZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVyZQpAQCAtODgw
LDYgKzk2Niw5IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKIFN0YWNrIHRy
YWNlOiAob21pdHRlZCkKIAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21QcmludGluZ0ZhaWxpbmdQ
YXJhbXMvRmFpbGluZ1BhcmFtVGVzdC5GYWlscy8wLCB3aGVyZSBHZXRQYXJhbSgpID0gMgorG1sw
OzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBFbXB0eUJhc2VuYW1lUGFyYW1JbnN0Cisb
WzA7MzJtWyBSVU4gICAgICBdIBtbbUVtcHR5QmFzZW5hbWVQYXJhbUluc3QuUGFzc2VzLzAKKxtb
MDszMm1bICAgICAgIE9LIF0gG1ttRW1wdHlCYXNlbmFtZVBhcmFtSW5zdC5QYXNzZXMvMAogG1sw
OzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVz
dAogG1swOzMybVsgUlVOICAgICAgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nl
c3MvYQogG1swOzMybVsgICAgICAgT0sgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1
Y2Nlc3MvYQpAQCAtODkzLDYgKzk4Miw0MyBAQCBFeHBlY3RlZCBmYWlsdXJlCiBTdGFjayB0cmFj
ZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1Bh
cmFtVGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFtKCkgPSAiYSIKKxtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMyB0ZXN0cyBmcm9tIEdvb2dsZVRlc3RWZXJpZmljYXRpb24KKxtbMDszMm1bIFJV
TiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGU8Tm9UZXN0cz4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZh
aWx1cmUKK1BhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBOb1Rlc3RzIGlzIGluc3RhbnRpYXRlZCB2
aWEgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QLCBidXQgbm8gdGVzdHMgYXJlIGRlZmluZWQgdmlh
IFRFU1RfUCAuIE5vIHRlc3QgY2FzZXMgd2lsbCBydW4uCisKK0lkZWFsbHksIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCBzaG91bGQgb25seSBldmVyIGJlIGludm9rZWQgZnJvbSBjb2RlIHRoYXQg
YWx3YXlzIGRlcGVuZCBvbiBjb2RlIHRoYXQgcHJvdmlkZXMgVEVTVF9QLiBGYWlsaW5nIHRvIGRv
IHNvIGlzIG9mdGVuIGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRF
U1RfUCB3YXMgcmVtb3ZlZCBidXQgdGhlIHJlc3QgZ290IGxlZnQgYmVoaW5kLgorCitUbyBzdXBw
cmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5n
IGxpbmUgKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGlu
OgorCitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm9UZXN0
cyk7CitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29v
Z2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8
Tm9UZXN0cz4KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5V
bmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5zdGFudGlhdGVk
VGVzdD4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1BhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZSBEZXRlY3ROb3RJbnN0YW50aWF0ZWRUZXN0IGlzIGRlZmluZWQgdmlhIFRF
U1RfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZC4gTm9uZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxs
IHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0
aGUgb25seSBvbmVzIHByb3ZpZGVkIGV4cGFuZCB0byBub3RoaW5nLgorCitJZGVhbGx5LCBURVNU
X1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9mIGJp
bmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAoQXMgb3Bwb3NlZCB0bywgZm9yIGV4YW1w
bGUsIGJlaW5nIHBsYWNlZCBpbiBhIGxpYnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdl
dCBvdGhlciB1dGlsaXRpZXMuKQorCitUbyBzdXBwcmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRl
c3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgKGluIGEgbm9uLWhlYWRlcikgaW4g
dGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOgorCitHVEVTVF9BTExPV19VTklOU1RBTlRJ
QVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCk7CitTdGFj
ayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZl
cmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90
SW5zdGFudGlhdGVkVGVzdD4KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlm
aWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5v
dEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZh
aWx1cmUKK1R5cGUgcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIERldGVjdE5vdEluc3RhbnRpYXRl
ZFR5cGVzVGVzdCBpcyBkZWZpbmVkIHZpYSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AsIGJ1
dCBuZXZlciBpbnN0YW50aWF0ZWQgdmlhIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUC4g
Tm9uZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxsIHJ1bi4KKworSWRlYWxseSwgVFlQRURfVEVTVF9Q
IGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVkZWQgYXMgcGFydCBvZiBiaW5h
cmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8sIGZvciBleGFtcGxl
LCBiZWluZyBwbGFjZWQgaW4gYSBsaWJyYXJ5IHRoYXQgbWF5IGJlIGxpbmtlZCBpbiB0byBnZXQg
b3RoZXIgdXRpbGl0aWVzLikKKworVG8gc3VwcHJlc3MgdGhpcyBlcnJvciBmb3IgdGhpcyB0ZXN0
IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lIChpbiBhIG5vbi1oZWFkZXIpIGluIHRo
ZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBpbjoKKworR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFU
RURfUEFSQU1FVEVSSVpFRF9URVNUKERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCk7CitT
dGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVz
dFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERl
dGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KIBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttR2xv
YmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCiBCYXJFbnZpcm9ubWVudDo6VGVhckRvd24o
KSBjYWxsZWQuCiBnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzojOiBGYWlsdXJlCkBAIC05MDYs
OSArMTAzMiw5IEBAIEZhaWxlZAogRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4KIFN0YWNrIHRyYWNl
OiAob21pdHRlZCkKIAotG1swOzMybVs9PT09PT09PT09XSAbW203NiB0ZXN0cyBmcm9tIDM0IHRl
c3QgY2FzZXMgcmFuLgotG1swOzMybVsgIFBBU1NFRCAgXSAbW20yNiB0ZXN0cy4KLRtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttNTAgdGVzdHMsIGxpc3RlZCBiZWxvdzoKKxtbMDszMm1bPT09PT09PT09
PV0gG1ttODggdGVzdHMgZnJvbSA0MSB0ZXN0IHN1aXRlcyByYW4uCisbWzA7MzJtWyAgUEFTU0VE
ICBdIBtbbTMxIHRlc3RzLgorG1swOzMxbVsgIEZBSUxFRCAgXSAbW201NyB0ZXN0cywgbGlzdGVk
IGJlbG93OgogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25mYXRhbEZhaWx1cmVUZXN0LkVzY2Fw
ZXNTdHJpbmdPcGVyYW5kcwogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25mYXRhbEZhaWx1cmVU
ZXN0LkRpZmZGb3JMb25nU3RyaW5ncwogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21GYXRhbEZhaWx1
cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQpAQCAtOTI4LDkgKzEwNTQsMTAgQEAgU3Rh
Y2sgdHJhY2U6IChvbWl0dGVkKQogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25GYXRhbEZhaWx1
cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRVcAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21GYXRh
bEZhaWx1cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRVcAogG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21BZGRGYWlsdXJlQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVt
YmVyCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3Vs
ZEZhaWwKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hv
dWxkRmFpbFRvbwotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2Ft
ZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAorG1swOzMx
bVsgIEZBSUxFRCAgXSAbW21HdGVzdEZhaWxBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVk
RmlsZUFuZExpbmVOdW1iZXIKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0
ZVRlc3QuVGhpc1Nob3VsZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RT
dWl0ZVRlc3QuVGhpc1Nob3VsZEZhaWxUb28KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRV
cFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVT
aG91bGRGYWlsCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9z
YW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAogG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21URVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVz
aW5nVEVTVF9GQW5kU2hvdWxkRmFpbAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3ROb25m
YXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNOb05vbmZhdGFsRmFpbHVyZQpAQCAtOTU3
LDE0ICsxMDg0LDIwIEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdC5FeHBlY3RGYXRhbEZhaWx1cmUKIBtb
MDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdC5FeHBlY3RO
b25GYXRhbEZhaWx1cmUKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVyY2VwdE9ubHlDdXJyZW50VGhyZWFkCisbWzA7MzFtWyAg
RkFJTEVEICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFtaWNUZXN0RmFpbAorG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuVGVzdEJhc2UKKxtbMDszMW1bICBGQUlMRUQg
IF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkRlcml2ZWQKIBtbMDszMW1bICBGQUlMRUQgIF0gG1tt
UHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QuRmFpbHMvMCwgd2hlcmUgR2V0
UGFyYW0oKSA9IDIKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFt
VGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFtKCkgPSAiYSIKKxtbMDszMW1bICBGQUlMRUQg
IF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGU8Tm9UZXN0cz4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlm
aWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5z
dGFudGlhdGVkVGVzdD4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNh
dGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdElu
c3RhbnRpYXRlZFR5cGVzVGVzdD4KIAotNTAgRkFJTEVEIFRFU1RTCis1NyBGQUlMRUQgVEVTVFMK
IBtbMDszM20gIFlPVSBIQVZFIDEgRElTQUJMRUQgVEVTVAogCiAbW21Ob3RlOiBHb29nbGUgVGVz
dCBmaWx0ZXIgPSBGYXRhbEZhaWx1cmVUZXN0Lio6TG9nZ2luZ1Rlc3QuKgotWz09PT09PT09PT1d
IFJ1bm5pbmcgNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcy4KK1s9PT09PT09PT09XSBSdW5uaW5n
IDQgdGVzdHMgZnJvbSAyIHRlc3Qgc3VpdGVzLgogWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVu
dmlyb25tZW50IHNldC11cC4KIFstLS0tLS0tLS0tXSAzIHRlc3RzIGZyb20gRmF0YWxGYWlsdXJl
VGVzdAogWyBSVU4gICAgICBdIEZhdGFsRmFpbHVyZVRlc3QuRmF0YWxGYWlsdXJlSW5TdWJyb3V0
aW5lCkBAIC0xMDE3LDcgKzExNTAsNyBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiBbLS0tLS0t
LS0tLV0gMSB0ZXN0IGZyb20gTG9nZ2luZ1Rlc3QgKD8gbXMgdG90YWwpCiAKIFstLS0tLS0tLS0t
XSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9PT09PT09PT09XSA0IHRlc3Rz
IGZyb20gMiB0ZXN0IGNhc2VzIHJhbi4gKD8gbXMgdG90YWwpCitbPT09PT09PT09PV0gNCB0ZXN0
cyBmcm9tIDIgdGVzdCBzdWl0ZXMgcmFuLiAoPyBtcyB0b3RhbCkKIFsgIFBBU1NFRCAgXSAwIHRl
c3RzLgogWyAgRkFJTEVEICBdIDQgdGVzdHMsIGxpc3RlZCBiZWxvdzoKIFsgIEZBSUxFRCAgXSBG
YXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQpAQCAtMTAyNywyMSArMTE2
MCwyMSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKICA0IEZBSUxFRCBURVNUUwogTm90ZTog
R29vZ2xlIFRlc3QgZmlsdGVyID0gKkRJU0FCTEVEXyoKLVs9PT09PT09PT09XSBSdW5uaW5nIDEg
dGVzdCBmcm9tIDEgdGVzdCBjYXNlLgorWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20g
MSB0ZXN0IHN1aXRlLgogWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11
cC4KIFstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QKIFsg
UlVOICAgICAgXSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2Fi
bGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dhcm5pbmcKIFsgICAgICAgT0sgXSBEaXNhYmxlZFRlc3Rz
V2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2FibGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dh
cm5pbmcKIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9
PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRlc3QgY2FzZSByYW4uCitbPT09PT09PT09PV0gMSB0
ZXN0IGZyb20gMSB0ZXN0IHN1aXRlIHJhbi4KIFsgIFBBU1NFRCAgXSAxIHRlc3QuCiBOb3RlOiBH
b29nbGUgVGVzdCBmaWx0ZXIgPSBQYXNzaW5nVGVzdC4qCiBOb3RlOiBUaGlzIGlzIHRlc3Qgc2hh
cmQgMiBvZiAyLgotWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2Uu
CitbPT09PT09PT09PV0gUnVubmluZyAxIHRlc3QgZnJvbSAxIHRlc3Qgc3VpdGUuCiBbLS0tLS0t
LS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0LXVwLgogWy0tLS0tLS0tLS1dIDEgdGVz
dCBmcm9tIFBhc3NpbmdUZXN0CiBbIFJVTiAgICAgIF0gUGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3Qy
CiBbICAgICAgIE9LIF0gUGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3QyCiBbLS0tLS0tLS0tLV0gR2xv
YmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gMSB0ZXN0IGZyb20g
MSB0ZXN0IGNhc2UgcmFuLgorWz09PT09PT09PT1dIDEgdGVzdCBmcm9tIDEgdGVzdCBzdWl0ZSBy
YW4uCiBbICBQQVNTRUQgIF0gMSB0ZXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5CmluZGV4IDJkNjllMzUzYTE5ZTM2
OTQ2NTMzYmY1ZjdlMGEyYzkyNDZmN2RjZTcuLjA5MDI4ZjY2ZjkwYmYyMzgyYmI3OGM3OWJiNGUz
YzM5YWRjMzAxNzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1vdXRwdXQtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlRlc3RzIHRoZSB0ZXh0IG91dHB1dCBvZiBHb29nbGUg
QysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrLgorciIiIlRlc3RzIHRoZSB0ZXh0IG91
dHB1dCBvZiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrLgogCiBUbyB1
cGRhdGUgdGhlIGdvbGRlbiBmaWxlOgogZ29vZ2xldGVzdF9vdXRwdXRfdGVzdC5weSAtLWJ1aWxk
X2Rpcj1CVUlMRC9ESVIgLS1nZW5nb2xkZW4KQEAgLTU1LDcgKzU1LDYgQEAgTk9fU1RBQ0tUUkFD
RV9TVVBQT1JUX0ZMQUcgPSAnLS1ub19zdGFja3RyYWNlX3N1cHBvcnQnCiBJU19MSU5VWCA9IG9z
Lm5hbWUgPT0gJ3Bvc2l4JyBhbmQgb3MudW5hbWUoKVswXSA9PSAnTGludXgnCiBJU19XSU5ET1dT
ID0gb3MubmFtZSA9PSAnbnQnCiAKLSMgRklYTUU6IHJlbW92ZSB0aGUgX2xpbiBzdWZmaXguCiBH
T0xERU5fTkFNRSA9ICdnb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0JwogCiBQ
Uk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgnZ29v
Z2xldGVzdC1vdXRwdXQtdGVzdF8nKQpAQCAtMjg3LDcgKzI4Niw3IEBAIGNsYXNzIEdUZXN0T3V0
cHV0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAjIHNlcXVlbmNlcyB3aGVu
IHdlIHJlYWQgdGhlIGdvbGRlbiBmaWxlIGlycmVzcGVjdGl2ZSBvZiBhbiBvcGVyYXRpbmcKICAg
ICAjIHN5c3RlbSB1c2VkLiBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gc3RyaXAgdGhvc2UgXHIncyBm
cm9tIG5ld2xpbmVzCiAgICAgIyB1bmNvbmRpdGlvbmFsbHkuCi0gICAgZ29sZGVuID0gVG9Vbml4
TGluZUVuZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkpCisgICAgZ29sZGVuID0gVG9Vbml4TGluZUVu
ZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkuZGVjb2RlKCkpCiAgICAgZ29sZGVuX2ZpbGUuY2xvc2Uo
KQogCiAgICAgIyBXZSB3YW50IHRoZSB0ZXN0IHRvIHBhc3MgcmVnYXJkbGVzcyBvZiBjZXJ0YWlu
IGZlYXR1cmVzIGJlaW5nCkBAIC0zMzIsNyArMzMxLDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICBpZiBDQU5fR0VORVJBVEVfR09MREVOX0ZJTEU6CiAgICAgICBvdXRwdXQgPSBH
ZXRPdXRwdXRPZkFsbENvbW1hbmRzKCkKICAgICAgIGdvbGRlbl9maWxlID0gb3BlbihHT0xERU5f
UEFUSCwgJ3diJykKLSAgICAgIGdvbGRlbl9maWxlLndyaXRlKG91dHB1dCkKKyAgICAgIGdvbGRl
bl9maWxlLndyaXRlKG91dHB1dC5lbmNvZGUoKSkKICAgICAgIGdvbGRlbl9maWxlLmNsb3NlKCkK
ICAgICBlbHNlOgogICAgICAgbWVzc2FnZSA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjCmluZGV4IGY2NTI1ZWM5
NzBkZTU0MjFlMGUzM2I2ZmY2ZDJjYzZjOGQwNTE2NDguLjk3MDA5YjVmNmFhZGExNjVhNzc2MTdl
MzkzYTkzMTAyNTE1YTE5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYwpAQCAtOTIsOSArOTIsMTcgQEAgVEVT
VF9QKEZhaWxpbmdQYXJhbVRlc3QsIEZhaWxzKSB7CiAKIC8vIFRoaXMgZ2VuZXJhdGVzIGEgdGVz
dCB3aGljaCB3aWxsIGZhaWwuIEdvb2dsZSBUZXN0IGlzIGV4cGVjdGVkIHRvIHByaW50CiAvLyBp
dHMgcGFyYW1ldGVyIHdoZW4gaXQgb3V0cHV0cyB0aGUgbGlzdCBvZiBhbGwgZmFpbGVkIHRlc3Rz
LgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRpbmdGYWlsaW5nUGFyYW1zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgRmFpbGluZ1BhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rpbmc6OlZhbHVlcygyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRp
bmdGYWlsaW5nUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgIEZhaWxpbmdQYXJhbVRl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKDIpKTsKKworLy8g
VGVzdHMgdGhhdCBhbiBlbXB0eSB2YWx1ZSBmb3IgdGhlIHRlc3Qgc3VpdGUgYmFzZW5hbWUgeWll
bGRzIGp1c3QKKy8vIHRoZSB0ZXN0IG5hbWUgd2l0aG91dCBhbnkgcHJpb3IgLworY2xhc3MgRW1w
dHlCYXNlbmFtZVBhcmFtSW5zdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4g
e307CisKK1RFU1RfUChFbXB0eUJhc2VuYW1lUGFyYW1JbnN0LCBQYXNzZXMpIHsgRVhQRUNUX0VR
KDEsIEdldFBhcmFtKCkpOyB9CisKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIEVtcHR5QmFz
ZW5hbWVQYXJhbUluc3QsIHRlc3Rpbmc6OlZhbHVlcygxKSk7CiAKIHN0YXRpYyBjb25zdCBjaGFy
IGtHb2xkZW5TdHJpbmdbXSA9ICJcIkxpbmVcMCAxXCJcbkxpbmUgMiI7CiAKQEAgLTE3NCw3ICsx
ODIsNyBAQCBURVNUKFNDT1BFRF9UUkFDRVRlc3QsIEFjY2VwdGVkVmFsdWVzKSB7CiAgIFNDT1BF
RF9UUkFDRSgibGl0ZXJhbCBzdHJpbmciKTsKICAgU0NPUEVEX1RSQUNFKHN0ZDo6c3RyaW5nKCJz
dGQ6OnN0cmluZyIpKTsKICAgU0NPUEVEX1RSQUNFKDEzMzcpOyAgLy8gc3RyZWFtYWJsZSB0eXBl
Ci0gIGNvbnN0IGNoYXIqIG51bGxfdmFsdWUgPSBOVUxMOworICBjb25zdCBjaGFyKiBudWxsX3Zh
bHVlID0gbnVsbHB0cjsKICAgU0NPUEVEX1RSQUNFKG51bGxfdmFsdWUpOwogCiAgIEFERF9GQUlM
VVJFKCkgPDwgIkp1c3QgY2hlY2tpbmcgdGhhdCBhbGwgdGhlc2UgdmFsdWVzIHdvcmsgZmluZS4i
OwpAQCAtMzA2LDkgKzMxNCw4IEBAIFRFU1QoU0NPUEVEX1RSQUNFVGVzdCwgV29ya3NDb25jdXJy
ZW50bHkpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDYgZmFpbHVyZXMpXG4iKTsKIAogICBDaGVj
a1BvaW50cyBjaGVja19wb2ludHM7Ci0gIFRocmVhZFdpdGhQYXJhbTxDaGVja1BvaW50cyo+IHRo
cmVhZCgmVGhyZWFkV2l0aFNjb3BlZFRyYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJmNoZWNrX3BvaW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5VTEwpOworICBUaHJlYWRXaXRoUGFyYW08Q2hlY2tQb2ludHMqPiB0aHJlYWQo
JlRocmVhZFdpdGhTY29wZWRUcmFjZSwgJmNoZWNrX3BvaW50cywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpOwogICBjaGVja19wb2ludHMubjEuV2FpdEZv
ck5vdGlmaWNhdGlvbigpOwogCiAgIHsKQEAgLTM2NSwxNSArMzcyLDEzIEBAIGNsYXNzIE5vbkZh
dGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMxLCBpbiB0aGUgdGVz
dCBmaXh0dXJlIGMndG9yLiI7CiAgIH0KIAotICB+Tm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29u
c3RydWN0b3JUZXN0KCkgeworICB+Tm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JU
ZXN0KCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUg
IzUsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBT
ZXRVcCgpIHsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiBT
ZXRVcCgpLiI7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgQUREX0ZBSUxVUkUoKSA8
PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gU2V0VXAoKS4iOyB9CiAKLSAgdmlydHVhbCB2b2lk
IFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlM
VVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzQsIGluIFRlYXJEb3duLiI7CiAgIH0KIH07CkBA
IC0zOTAsMTcgKzM5NSwxNyBAQCBjbGFzcyBGYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3Rv
clRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgSW5pdCgpOwogICB9CiAKLSAgfkZh
dGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIHsKKyAgfkZhdGFsRmFpbHVyZUlu
Rml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8
ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiB0aGUgdGVzdCBmaXh0dXJlIGQndG9yLiI7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAg
ICAgQUREX0ZBSUxVUkUoKSA8PCAiVU5FWFBFQ1RFRCBmYWlsdXJlIGluIFNldFVwKCkuICAiCiAg
ICAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBhcyB0aGUgdGVz
dCBmaXh0dXJlIGMndG9yICIKICAgICAgICAgICAgICAgICAgIDw8ICJoYWQgYSBmYXRhbCBmYWls
dXJlLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRv
d24oKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVU5FWFBFQ1RFRCBmYWlsdXJl
IGluIFRlYXJEb3duKCkuICAiCiAgICAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVy
IGdldCBoZXJlLCBhcyB0aGUgdGVzdCBmaXh0dXJlIGMndG9yICIKICAgICAgICAgICAgICAgICAg
IDw8ICJoYWQgYSBmYXRhbCBmYWlsdXJlLiI7CkBAIC00MjEsMTggKzQyNiwxNSBAQCBURVNUX0Yo
RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LCBGYWlsdXJlSW5Db25zdHJ1Y3Rv
cikgewogLy8gVGVzdHMgbm9uLWZhdGFsIGZhaWx1cmVzIGluIFNldFVwKCkuCiBjbGFzcyBOb25G
YXRhbEZhaWx1cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgfk5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgewotICAgIERlaW5p
dCgpOwotICB9CisgIH5Ob25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIG92ZXJyaWRlIHsgRGVp
bml0KCk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVy
cmlkZSB7CiAgICAgcHJpbnRmKCIoZXhwZWN0aW5nIDQgZmFpbHVyZXMpXG4iKTsKICAgICBBRERf
RkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMxLCBpbiBTZXRVcCgpLiI7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWls
dXJlICMzLCBpbiBUZWFyRG93bigpLiI7Ci0gIH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
IHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiBUZWFyRG93bigpLiI7IH0KKwog
IHByaXZhdGU6CiAgIHZvaWQgRGVpbml0KCkgewogICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjNCwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4iOwpAQCAtNDQ2LDE4ICs0NDgsMTUg
QEAgVEVTVF9GKE5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewog
Ly8gVGVzdHMgZmF0YWwgZmFpbHVyZXMgaW4gU2V0VXAoKS4KIGNsYXNzIEZhdGFsRmFpbHVyZUlu
U2V0VXBUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVh
bCB+RmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSB7Ci0gICAgRGVpbml0KCk7Ci0gIH0KKyAgfkZh
dGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgb3ZlcnJpZGUgeyBEZWluaXQoKTsgfQogCi0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYo
IihleHBlY3RpbmcgMyBmYWlsdXJlcylcbiIpOwogICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjMSwgaW4gU2V0VXAoKS4iOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
ewotICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gVGVhckRvd24oKS4iOwot
ICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjMiwgaW4gVGVhckRvd24oKS4iOyB9CisKICBwcml2YXRlOgogICB2b2lkIERlaW5pdCgp
IHsKICAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzMsIGluIHRoZSB0ZXN0IGZpeHR1
cmUgZCd0b3IuIjsKQEAgLTQ3MCwxMDkgKzQ2OSw1NSBAQCBURVNUX0YoRmF0YWxGYWlsdXJlSW5T
ZXRVcFRlc3QsIEZhaWx1cmVJblNldFVwKSB7CiB9CiAKIFRFU1QoQWRkRmFpbHVyZUF0VGVzdCwg
TWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIpIHsKLSAgQUREX0ZBSUxV
UkVfQVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSBpbiBmb28uY2MiOwotfQot
Ci0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi0vLyBBIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5
IGRpZS4KLXZvaWQgRGllSWYoYm9vbCBzaG91bGRfZGllKSB7Ci0gIEdURVNUX0NIRUNLXyghc2hv
dWxkX2RpZSkgPDwgIiAtIGRlYXRoIGluc2lkZSBEaWVJZigpLiI7CisgIEFERF9GQUlMVVJFX0FU
KCJmb28uY2MiLCA0MikgPDwgIkV4cGVjdGVkIG5vbmZhdGFsIGZhaWx1cmUgaW4gZm9vLmNjIjsK
IH0KIAotLy8gVGVzdHMgcnVubmluZyBkZWF0aCB0ZXN0cyBpbiBhIG11bHRpLXRocmVhZGVkIGNv
bnRleHQuCi0KLS8vIFVzZWQgZm9yIGNvb3JkaW5hdGlvbiBiZXR3ZWVuIHRoZSBtYWluIGFuZCB0
aGUgc3Bhd24gdGhyZWFkLgotc3RydWN0IFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyB7Ci0gIFNw
YXduVGhyZWFkTm90aWZpY2F0aW9ucygpIHt9Ci0KLSAgTm90aWZpY2F0aW9uIHNwYXduX3RocmVh
ZF9zdGFydGVkOwotICBOb3RpZmljYXRpb24gc3Bhd25fdGhyZWFkX29rX3RvX3Rlcm1pbmF0ZTsK
LQotIHByaXZhdGU6Ci0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3Bhd25UaHJl
YWROb3RpZmljYXRpb25zKTsKLX07Ci0KLS8vIFRoZSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBp
biB0aGUgdGhyZWFkIHNwYXduIGJ5IHRoZQotLy8gTXVsdGlwbGVUaHJlYWRzIHRlc3QgKGJlbG93
KS4KLXN0YXRpYyB2b2lkIFRocmVhZFJvdXRpbmUoU3Bhd25UaHJlYWROb3RpZmljYXRpb25zKiBu
b3RpZmljYXRpb25zKSB7Ci0gIC8vIFNpZ25hbHMgdGhlIG1haW4gdGhyZWFkIHRoYXQgdGhpcyB0
aHJlYWQgaGFzIHN0YXJ0ZWQuCi0gIG5vdGlmaWNhdGlvbnMtPnNwYXduX3RocmVhZF9zdGFydGVk
Lk5vdGlmeSgpOwotCi0gIC8vIFdhaXRzIGZvciBwZXJtaXNzaW9uIHRvIGZpbmlzaCBmcm9tIHRo
ZSBtYWluIHRocmVhZC4KLSAgbm90aWZpY2F0aW9ucy0+c3Bhd25fdGhyZWFkX29rX3RvX3Rlcm1p
bmF0ZS5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7CitURVNUKEd0ZXN0RmFpbEF0VGVzdCwgTWVzc2Fn
ZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIpIHsKKyAgR1RFU1RfRkFJTF9BVCgi
Zm9vLmNjIiwgNDIpIDw8ICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlIGluIGZvby5jYyI7CiB9CiAK
LS8vIFRoaXMgaXMgYSBkZWF0aC10ZXN0IHRlc3QsIGJ1dCBpdCdzIG5vdCBuYW1lZCB3aXRoIGEg
RGVhdGhUZXN0Ci0vLyBzdWZmaXguICBJdCBzdGFydHMgdGhyZWFkcyB3aGljaCBtaWdodCBpbnRl
cmZlcmUgd2l0aCBsYXRlcgotLy8gZGVhdGggdGVzdHMsIHNvIGl0IG11c3QgcnVuIGFmdGVyIGFs
bCBvdGhlciBkZWF0aCB0ZXN0cy4KLWNsYXNzIERlYXRoVGVzdEFuZE11bHRpVGhyZWFkc1Rlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAvLyBTdGFydHMgYSB0aHJl
YWQgYW5kIHdhaXRzIGZvciBpdCB0byBiZWdpbi4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewot
ICAgIHRocmVhZF8ucmVzZXQobmV3IFRocmVhZFdpdGhQYXJhbTxTcGF3blRocmVhZE5vdGlmaWNh
dGlvbnMqPigKLSAgICAgICAgJlRocmVhZFJvdXRpbmUsICZub3RpZmljYXRpb25zXywgTlVMTCkp
OwotICAgIG5vdGlmaWNhdGlvbnNfLnNwYXduX3RocmVhZF9zdGFydGVkLldhaXRGb3JOb3RpZmlj
YXRpb24oKTsKLSAgfQotICAvLyBUZWxscyB0aGUgdGhyZWFkIHRvIGZpbmlzaCwgYW5kIHJlYXBz
IGl0LgotICAvLyBEZXBlbmRpbmcgb24gdGhlIHZlcnNpb24gb2YgdGhlIHRocmVhZCBsaWJyYXJ5
IGluIHVzZSwKLSAgLy8gYSBtYW5hZ2VyIHRocmVhZCBtaWdodCBzdGlsbCBiZSBsZWZ0IHJ1bm5p
bmcgdGhhdCB3aWxsIGludGVyZmVyZQotICAvLyB3aXRoIGxhdGVyIGRlYXRoIHRlc3RzLiAgVGhp
cyBpcyB1bmZvcnR1bmF0ZSwgYnV0IHRoaXMgY2xhc3MKLSAgLy8gY2xlYW5zIHVwIGFmdGVyIGl0
c2VsZiBhcyBiZXN0IGl0IGNhbi4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIG5v
dGlmaWNhdGlvbnNfLnNwYXduX3RocmVhZF9va190b190ZXJtaW5hdGUuTm90aWZ5KCk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyBub3RpZmljYXRpb25zXzsK
LSAgdGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI8VGhyZWFkV2l0aFBhcmFtPFNwYXduVGhy
ZWFkTm90aWZpY2F0aW9ucyo+ID4KLSAgICAgIHRocmVhZF87Ci19OwotCi0jZW5kaWYgIC8vIEdU
RVNUX0lTX1RIUkVBRFNBRkUKLQotLy8gVGhlIE1peGVkVXBUZXN0Q2FzZVRlc3QgdGVzdCBjYXNl
IHZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3Qgd2lsbCBmYWlsIGEKKy8vIFRoZSBNaXhlZFVwVGVz
dFN1aXRlVGVzdCB0ZXN0IGNhc2UgdmVyaWZpZXMgdGhhdCBHb29nbGUgVGVzdCB3aWxsIGZhaWwg
YQogLy8gdGVzdCBpZiBpdCB1c2VzIGEgZGlmZmVyZW50IGZpeHR1cmUgY2xhc3MgdGhhbiB3aGF0
IG90aGVyIHRlc3RzIGluCiAvLyB0aGUgc2FtZSB0ZXN0IGNhc2UgdXNlLiAgSXQgZGVsaWJlcmF0
ZWx5IGNvbnRhaW5zIHR3byBmaXh0dXJlCiAvLyBjbGFzc2VzIHdpdGggdGhlIHNhbWUgbmFtZSBi
dXQgZGVmaW5lZCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KIAotLy8gVGhlIE1peGVkVXBUZXN0
Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0aGF0CisvLyBUaGUg
TWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0
aGF0CiAvLyB3aGVuIHRoZSB1c2VyIGRlZmluZXMgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgdGVz
dCBjYXNlIG5hbWUgQU5ECiAvLyBzYW1lIHRlc3QgbmFtZSAoYnV0IGluIGRpZmZlcmVudCBuYW1l
c3BhY2VzKSwgdGhlIHNlY29uZCB0ZXN0IHdpbGwKIC8vIGZhaWwuCiAKIG5hbWVzcGFjZSBmb28g
ewogCi1jbGFzcyBNaXhlZFVwVGVzdENhc2VUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewor
Y2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9Owog
Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbykg
e30KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBTZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZv
bykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFj
ZUZvbykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgU2Vjb25kVGVzdEZyb21OYW1l
c3BhY2VGb28pIHt9CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworY2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1l
VGVzdE5hbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAotVEVTVF9GKE1peGVk
VXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0LAorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVX
aXRoU2FtZVRlc3ROYW1lVGVzdCwKICAgICAgICBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hv
dWxkRmFpbCkge30KIAogfSAgLy8gbmFtZXNwYWNlIGZvbwogCiBuYW1lc3BhY2UgYmFyIHsKIAot
Y2xhc3MgTWl4ZWRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNz
IE1peGVkVXBUZXN0U3VpdGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogLy8g
VGhlIGZvbGxvd2luZyB0d28gdGVzdHMgYXJlIGV4cGVjdGVkIHRvIGZhaWwuICBXZSByZWx5IG9u
IHRoZQogLy8gZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhhdCBHb29nbGUgVGVzdCBnZW5lcmF0ZXMg
dGhlIHJpZ2h0IGVycm9yIG1lc3NhZ2UuCi1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgVGhp
c1Nob3VsZEZhaWwpIHt9Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgVGhpc1Nob3VsZEZh
aWxUb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIFRoaXNTaG91bGRGYWlsKSB7
fQorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVUZXN0LCBUaGlzU2hvdWxkRmFpbFRvbykge30KIAot
Y2xhc3MgTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CitjbGFzcyBNaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCiAvLyBFeHBlY3RlZCB0byBmYWlsLiAgV2UgcmVs
eSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhhdCBHb29nbGUgVGVzdAogLy8gZ2VuZXJh
dGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVdpdGhT
YW1lVGVzdE5hbWVUZXN0LAorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1l
VGVzdCwKICAgICAgICBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbCkge30KIAog
fSAgLy8gbmFtZXNwYWNlIGJhcgpAQCAtNzgzLDE5ICs3MjgsMjcgQEAgVEVTVF9QKFBhcmFtVGVz
dCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoImIiLCBHZXRQYXJhbSgpKSA8PCAiRXhwZWN0ZWQg
ZmFpbHVyZSI7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50aW5nU3RyaW5ncywK
LSAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rpbmc6OlZhbHVlcyhzdGQ6OnN0cmluZygiYSIpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFBhcmFtTmFtZUZ1bmMpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFByaW50aW5n
U3RyaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbVRlc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKHN0ZDo6c3RyaW5nKCJhIikpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFBhcmFtTmFtZUZ1bmMpOwogCi0vLyBUaGlzICNpZmRlZiBibG9j
ayB0ZXN0cyB0aGUgb3V0cHV0IG9mIHR5cGVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9U
RVNUCisvLyBUaGUgY2FzZSB3aGVyZSBhIHN1aXRlIGhhcyBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AgYnV0IG5vdCBURVNUX1AuCit1c2luZyBOb1Rlc3RzID0gUGFyYW1UZXN0OworSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QKFRoaXNJc09kZCwgTm9UZXN0cywgOjp0ZXN0aW5nOjpWYWx1ZXMoIkhl
bGxvIikpOworCisvLyBmYWlscyB1bmRlciBrRXJyb3JPblVuaW5zdGFudGlhdGVkUGFyYW1ldGVy
aXplZFRlc3Q9dHJ1ZQorY2xhc3MgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CitURVNUX1AoRGV0ZWN0Tm90SW5zdGFudGlh
dGVkVGVzdCwgVXNlZCkgeyB9CisKKy8vIFRoaXMgd291bGQgbWFrZSB0aGUgdGVzdCBmYWlsdXJl
IGZyb20gdGhlIGFib3ZlIGdvIGF3YXkuCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoRml4
LCBEZXRlY3ROb3RJbnN0YW50aWF0ZWRUZXN0LCB0ZXN0aW5nOjpWYWx1ZXMoMSkpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QsIHRlc3Rpbmc6OlR5cGVzPGludD4p
OworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QsIHRlc3Rpbmc6OlR5cGVzPGludD4pOwogCiBU
WVBFRF9URVNUKFR5cGVkVGVzdCwgU3VjY2VzcykgewogICBFWFBFQ1RfRVEoMCwgVHlwZVBhcmFt
KCkpOwpAQCAtODE0LDI5ICs3NjcsMjQgQEAgY2xhc3MgVHlwZWRUZXN0TmFtZXMgewogIHB1Ymxp
YzoKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1l
KGludCBpKSB7Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgY2hhcj46OnZh
bHVlKQorICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgY2hhcj46OnZhbHVlKQogICAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKCJjaGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7Ci0gICAg
aWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgaW50Pjo6dmFsdWUpCisgICAgaWYgKHN0
ZDo6aXNfc2FtZTxULCBpbnQ+Ojp2YWx1ZSkKICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygiaW50
IikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgIH0KIH07CiAKLVRZUEVEX1RFU1Rf
Q0FTRShUeXBlZFRlc3RXaXRoTmFtZXMsIFR5cGVzRm9yVGVzdFdpdGhOYW1lcywgVHlwZWRUZXN0
TmFtZXMpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3RXaXRoTmFtZXMsIFR5cGVzRm9yVGVz
dFdpdGhOYW1lcywgVHlwZWRUZXN0TmFtZXMpOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhO
YW1lcywgU3VjY2Vzcykge30KIAogVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFtZXMsIEZhaWx1
cmUpIHsgRkFJTCgpOyB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8g
VGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdGhlIG91dHB1dCBvZiB0eXBlLXBhcmFtZXRlcml6ZWQg
dGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KIGNsYXNzIFR5cGVkVGVzdFAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1UWVBF
RF9URVNUX0NBU0VfUChUeXBlZFRlc3RQKTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQ
KTsKIAogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAsIFN1Y2Nlc3MpIHsKICAgRVhQRUNUX0VRKDBV
LCBUeXBlUGFyYW0oKSk7CkBAIC04NDYsMjggKzc5NCw0MSBAQCBUWVBFRF9URVNUX1AoVHlwZWRU
ZXN0UCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoMVUsIFR5cGVQYXJhbSgpKSA8PCAiRXhwZWN0
ZWQgZmFpbHVyZSI7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAs
IFN1Y2Nlc3MsIEZhaWx1cmUpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVz
dFAsIFN1Y2Nlc3MsIEZhaWx1cmUpOwogCiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPHVuc2lnbmVk
IGNoYXIsIHVuc2lnbmVkIGludD4gVW5zaWduZWRUeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QKFVuc2lnbmVkLCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzKTsKK0lOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUChVbnNpZ25lZCwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBl
cyk7CiAKIGNsYXNzIFR5cGVkVGVzdFBOYW1lcyB7CiAgcHVibGljOgogICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsKLSAgICBpZiAo
dGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCB1bnNpZ25lZCBjaGFyPjo6dmFsdWUpIHsKKyAg
ICBpZiAoc3RkOjppc19zYW1lPFQsIHVuc2lnbmVkIGNoYXI+Ojp2YWx1ZSkgewogICAgICAgcmV0
dXJuIHN0ZDo6c3RyaW5nKCJ1bnNpZ25lZENoYXIiKSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmlu
ZyhpKTsKICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgdW5zaWdu
ZWQgaW50Pjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIHVuc2lnbmVkIGludD46
OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoInVuc2lnbmVkSW50IikgKyA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQogICB9CiB9OwogCi1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChVbnNpZ25lZEN1c3RvbU5hbWUsIFR5cGVkVGVzdFAsIFVuc2lnbmVk
VHlwZXMsCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVW5zaWduZWRDdXN0b21OYW1l
LCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVHlwZWRUZXN0UE5hbWVzKTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9Q
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVz
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKERldGVj
dE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCk7CitUWVBFRF9URVNUX1AoRGV0ZWN0Tm90SW5zdGFu
dGlhdGVkVHlwZXNUZXN0LCBVc2VkKSB7CisgIFR5cGVQYXJhbSBpbnN0YW50aWF0ZTsKKyAgKHZv
aWQpaW5zdGFudGlhdGU7Cit9CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRGV0ZWN0Tm90
SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBVc2VkKTsKKworLy8ga0Vycm9yT25Vbmluc3RhbnRpYXRl
ZFR5cGVQYXJhbWV0ZXJpemVkVGVzdD10cnVlIHdvdWxkIG1ha2UgdGhlIGFib3ZlIGZhaWwuCisv
LyBBZGRpbmcgdGhlIGZvbGxvd2luZyB3b3VsZCBtYWtlIHRoYXQgdGVzdCBmYWlsdXJlIGdvIGF3
YXkuCisvLworLy8gdHlwZWRlZiA6OnRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQg
aW50PiBNeVR5cGVzOworLy8gSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEFsbCwgRGV0
ZWN0Tm90SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBNeVR5cGVzKTsKIAogI2lmIEdURVNUX0hBU19E
RUFUSF9URVNUCiAKQEAgLTg3Nyw4ICs4MzgsNiBAQCBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChVbnNpZ25lZEN1c3RvbU5hbWUsIFR5cGVkVGVzdFAsIFVuc2lnbmVkVHlwZXMsCiBURVNU
KEFEZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KSB7CiB9CiAKLSMgaWYgR1RFU1RfSEFTX1RZUEVE
X1RFU1QKLQogLy8gV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gdmVyaWZ5IHRoYXQgdHlw
ZWQgdGVzdHMgd2hvc2UgdGVzdAogLy8gY2FzZSBuYW1lIGVuZHMgd2l0aCBEZWF0aFRlc3QgYXJl
IHJ1biBmaXJzdC4KIApAQCAtODg3LDE1ICs4NDYsMTEgQEAgY2xhc3MgQVR5cGVkRGVhdGhUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxp
bnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKEFUeXBlZERlYXRoVGVz
dCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoQVR5cGVkRGVhdGhUZXN0LCBOdW1l
cmljVHlwZXMpOwogCiBUWVBFRF9URVNUKEFUeXBlZERlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3Qp
IHsKIH0KIAotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotIyBpZiBHVEVTVF9I
QVNfVFlQRURfVEVTVF9QCi0KIAogLy8gV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gdmVy
aWZ5IHRoYXQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzCiAvLyB3aG9zZSB0ZXN0IGNhc2UgbmFt
ZSBlbmRzIHdpdGggRGVhdGhUZXN0IGFyZSBydW4gZmlyc3QuCkBAIC05MDQsMTYgKzg1OSwxNCBA
QCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEFUeXBlUGFyYW1EZWF0aFRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChBVHlwZVBhcmFtRGVh
dGhUZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChBVHlwZVBhcmFtRGVhdGhUZXN0KTsKIAogVFlQ
RURfVEVTVF9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KSB7CiB9CiAKLVJF
R0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZp
cnN0KTsKLQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEFUeXBlUGFyYW1EZWF0
aFRlc3QsIE51bWVyaWNUeXBlcyk7CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQVR5cGVQ
YXJhbURlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3QpOwogCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVF9QCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIEFUeXBlUGFy
YW1EZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7CiAKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRI
X1RFU1QKIApAQCAtOTY2LDcgKzkxOSw3IEBAIFRFU1RfRihFeHBlY3RGYWlsdXJlVGVzdCwgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlKSB7CiBjbGFzcyBFeHBlY3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0
IDogcHVibGljIEV4cGVjdEZhaWx1cmVUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIHN0YXRpYyB2b2lk
IEFkZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZhaWx1cmVNb2RlIGZhaWx1cmUpIHsKLSAgICBUaHJl
YWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgTlVM
TCk7CisgICAgVGhyZWFkV2l0aFBhcmFtPEZhaWx1cmVNb2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUs
IGZhaWx1cmUsIG51bGxwdHIpOwogICAgIHRocmVhZC5Kb2luKCk7CiAgIH0KIH07CkBAIC0xMDM0
LDE2ICs5ODcsNjQgQEAgVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3ROb25GYXRhbEZh
aWx1cmVPbkFsbFRocmVhZHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlNvbWUgb3RoZXIgbm9uLWZhdGFsIGZhaWx1cmUuIik7CiB9CiAKK2NsYXNzIER5bmFt
aWNGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgRHluYW1p
Y0ZpeHR1cmUoKSB7IHByaW50ZigiRHluYW1pY0ZpeHR1cmUoKVxuIik7IH0KKyAgfkR5bmFtaWNG
aXh0dXJlKCkgb3ZlcnJpZGUgeyBwcmludGYoIn5EeW5hbWljRml4dHVyZSgpXG4iKTsgfQorICB2
b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBwcmludGYoIkR5bmFtaWNGaXh0dXJlOjpTZXRVcFxuIik7
IH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgcHJpbnRmKCJEeW5hbWljRml4dHVyZTo6
VGVhckRvd25cbiIpOyB9CisKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IHByaW50
ZigiRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1aXRlXG4iKTsgfQorICBzdGF0aWMgdm9pZCBU
ZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBwcmludGYoIkR5bmFtaWNGaXh0dXJlOjpUZWFyRG93
blRlc3RTdWl0ZVxuIik7CisgIH0KK307CisKK3RlbXBsYXRlIDxib29sIFBhc3M+CitjbGFzcyBE
eW5hbWljVGVzdCA6IHB1YmxpYyBEeW5hbWljRml4dHVyZSB7CisgcHVibGljOgorICB2b2lkIFRl
c3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRShQYXNzKTsgfQorfTsKKworYXV0byBkeW5h
bWljX3Rlc3QgPSAoCisgICAgLy8gUmVnaXN0ZXIgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgZml4
dHVyZSBjb3JyZWN0bHkuCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KAorICAgICAgICAiRHlu
YW1pY0ZpeHR1cmUiLCAiRHluYW1pY1Rlc3RQYXNzIiwgbnVsbHB0ciwgbnVsbHB0ciwgX19GSUxF
X18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5bmFtaWNGaXh0dXJlKiB7IHJldHVybiBu
ZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAg
ICAgICAgIkR5bmFtaWNGaXh0dXJlIiwgIkR5bmFtaWNUZXN0RmFpbCIsIG51bGxwdHIsIG51bGxw
dHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5hbWljRml4dHVyZSog
eyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PGZhbHNlPjsgfSksCisKKyAgICAvLyBSZWdpc3RlciB0
aGUgc2FtZSBmaXh0dXJlIHdpdGggYW5vdGhlciBuYW1lLiBUaGF0J3MgZmluZS4KKyAgICB0ZXN0
aW5nOjpSZWdpc3RlclRlc3QoCisgICAgICAgICJEeW5hbWljRml4dHVyZUFub3RoZXJOYW1lIiwg
IkR5bmFtaWNUZXN0UGFzcyIsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgIF9fRklMRV9fLCBf
X0xJTkVfXywKKyAgICAgICAgW10oKSAtPiBEeW5hbWljRml4dHVyZSogeyByZXR1cm4gbmV3IER5
bmFtaWNUZXN0PHRydWU+OyB9KSwKKworICAgIC8vIFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRo
ZSBzYW1lIGZpeHR1cmUgaW5jb3JyZWN0bHkuCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KAor
ICAgICAgICAiQmFkRHluYW1pY0ZpeHR1cmUxIiwgIkZpeHR1cmVCYXNlIiwgbnVsbHB0ciwgbnVs
bHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5bmFtaWNGaXh0dXJl
KiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRlc3Rpbmc6OlJlZ2lz
dGVyVGVzdCgKKyAgICAgICAgIkJhZER5bmFtaWNGaXh0dXJlMSIsICJUZXN0QmFzZSIsIG51bGxw
dHIsIG51bGxwdHIsIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgW10oKSAtPiB0ZXN0aW5n
OjpUZXN0KiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorCisgICAgLy8gUmVn
aXN0ZXIgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgZml4dHVyZSBpbmNvcnJlY3RseSBieSBvbW1p
dGluZyB0aGUKKyAgICAvLyByZXR1cm4gdHlwZS4KKyAgICB0ZXN0aW5nOjpSZWdpc3RlclRlc3Qo
CisgICAgICAgICJCYWREeW5hbWljRml4dHVyZTIiLCAiRml4dHVyZUJhc2UiLCBudWxscHRyLCBu
dWxscHRyLCBfX0ZJTEVfXywKKyAgICAgICAgX19MSU5FX18sIFtdKCkgLT4gRHluYW1pY0ZpeHR1
cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVzdDx0cnVlPjsgfSksCisgICAgdGVzdGluZzo6UmVn
aXN0ZXJUZXN0KCJCYWREeW5hbWljRml4dHVyZTIiLCAiRGVyaXZlZCIsIG51bGxwdHIsIG51bGxw
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgW10oKSB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47
IH0pKTsKIAogLy8gVHdvIHRlc3QgZW52aXJvbm1lbnRzIGZvciB0ZXN0aW5nIHRlc3Rpbmc6OkFk
ZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpLgogCiBjbGFzcyBGb29FbnZpcm9ubWVudCA6IHB1Ymxp
YyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgcHVibGljOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7Ci0gICAgcHJpbnRmKCIlcyIsICJGb29FbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuXG4i
KTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBwcmludGYoIiVzIiwgIkZvb0Vudmly
b25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIpOyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLCAiRm9v
RW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgY2FsbGVkLlxuIik7CiAgICAgRkFJTCgpIDw8ICJFeHBl
Y3RlZCBmYXRhbCBmYWlsdXJlLiI7CiAgIH0KQEAgLTEwNTEsMTEgKzEwNTIsOSBAQCBjbGFzcyBG
b29FbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAKIGNsYXNzIEJh
ckVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICBwdWJsaWM6Ci0g
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBwcmludGYoIiVzIiwgIkJhckVudmlyb25tZW50
OjpTZXRVcCgpIGNhbGxlZC5cbiIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHBy
aW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlNldFVwKCkgY2FsbGVkLlxuIik7IH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgcHJpbnRmKCIlcyIsICJCYXJFbnZpcm9ubWVudDo6VGVhckRvd24oKSBjYWxsZWQuXG4iKTsK
ICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iOwogICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFy
YW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYwppbmRleCA1
YTk1MTU1YjIzYTc4NzFkYjVkMjU0OWEwZTlmOTA1MDc1YTkzOTk0Li45NTVkNjk5OTAwZDhjZDhl
YjE5YjI1MWQzNWQ2ZDVmN2VlODJlNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWlu
dmFsaWQtbmFtZTEtdGVzdF8uY2MKQEAgLTM2LDEwICszNiwxMCBAQCBjbGFzcyBEdW1teVRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0IGNoYXIgKj4ge307CiBURVNU
X1AoRHVtbXlUZXN0LCBEdW1teSkgewogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnZh
bGlkVGVzdE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcygiSW52YWxpZFdpdGhRdW90ZXMiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFt
ZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChJbnZhbGlkVGVzdE5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6VmFsdWVzKCJJbnZhbGlkV2l0aFF1b3RlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogfSAgLy8gbmFt
ZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNj
CmluZGV4IGVmMDkzNDkwZTlkYTJmMDJlZDI4YTJkMDcxMjQ0NWUyNDE3Y2JkYTMuLjc2MzcxZGY1
NGYwYjNlMmYyNzczNjRkZDhhMjJkMDI4MjNjMmVlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVz
dF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFt
LXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0Xy5jYwpAQCAtNDEsMTAgKzQxLDEwIEBAIHN0ZDo6c3Ry
aW5nIFN0cmluZ1BhcmFtVGVzdFN1ZmZpeCgKIFRFU1RfUChEdW1teVRlc3QsIER1bW15KSB7CiB9
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKER1cGxpY2F0ZVRlc3ROYW1lcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgIER1bW15VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVz
dGluZzo6VmFsdWVzKCJhIiwgImIiLCAiYSIsICJjIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmdQYXJhbVRlc3RTdWZmaXgpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKER1cGxp
Y2F0ZVRlc3ROYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoImEiLCAiYiIsICJhIiwgImMi
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQYXJhbVRlc3RTdWZmaXgpOwogfSAg
Ly8gbmFtZXNwYWNlCiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0
LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmNjCmluZGV4IGY3ODljYWIyNzA3NDE0YzQ2NDg0OTZkN2I5ZmJhYjRmZTUzMWYw
YjcuLmM4NTIyMjBlMjdlZDIxMzAzZDFjNGEyZTg5NTU4ODA2ZmNiNzY5NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRl
c3QtdGVzdC5jYwpAQCAtMzcsNiArMzcsNyBAQAogIyBpbmNsdWRlIDxhbGdvcml0aG0+CiAjIGlu
Y2x1ZGUgPGlvc3RyZWFtPgogIyBpbmNsdWRlIDxsaXN0PgorIyBpbmNsdWRlIDxzZXQ+CiAjIGlu
Y2x1ZGUgPHNzdHJlYW0+CiAjIGluY2x1ZGUgPHN0cmluZz4KICMgaW5jbHVkZSA8dmVjdG9yPgpA
QCAtNDksMTkgKzUwLDEzIEBAIHVzaW5nIDo6c3RkOjpzb3J0OwogCiB1c2luZyA6OnRlc3Rpbmc6
OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKIHVzaW5nIDo6dGVzdGluZzo6Qm9vbDsKK3VzaW5n
IDo6dGVzdGluZzo6Q29tYmluZTsKIHVzaW5nIDo6dGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIDo6
dGVzdGluZzo6UmFuZ2U7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW07CiB1c2luZyA6
OnRlc3Rpbmc6OlZhbHVlczsKIHVzaW5nIDo6dGVzdGluZzo6VmFsdWVzSW47CiAKLSMgaWYgR1RF
U1RfSEFTX0NPTUJJTkUKLXVzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKLXVzaW5nIDo6dGVzdGlu
Zzo6Z2V0OwotdXNpbmcgOjp0ZXN0aW5nOjptYWtlX3R1cGxlOwotdXNpbmcgOjp0ZXN0aW5nOjp0
dXBsZTsKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KIHVzaW5nIDo6dGVzdGluZzo6
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5p
dFRlc3RPcHRpb25zOwogCkBAIC03Myw0OSArNjgsOSBAQCB1c2luZyA6OnRlc3Rpbmc6OmludGVy
bmFsOjpVbml0VGVzdE9wdGlvbnM7CiAvLyBFWFBFQ1RfVEhBVCgpIGFuZCB0aGUgbWF0Y2hlcnMg
a25vdyBob3cgdG8gcHJpbnQgdHVwbGVzLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiA6OnN0ZDo6
c3RyaW5nIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVh
bSBzdHJlYW07Ci0gIHN0cmVhbSA8PCB2YWx1ZTsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKLX0K
LQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCi0vLyBUaGVzZSBvdmVybG9hZHMgYWxsb3cgcHJp
bnRpbmcgdHVwbGVzIGluIG91ciB0ZXN0cy4gIFdlIGNhbm5vdAotLy8gZGVmaW5lIGFuIG9wZXJh
dG9yPDwgZm9yIHR1cGxlcywgYXMgdGhhdCBkZWZpbml0aW9uIG5lZWRzIHRvIGJlIGluCi0vLyB0
aGUgc3RkIG5hbWVzcGFjZSBpbiBvcmRlciB0byBiZSBwaWNrZWQgdXAgYnkgR29vZ2xlIFRlc3Qg
dmlhCi0vLyBBcmd1bWVudC1EZXBlbmRlbnQgTG9va3VwLCB5ZXQgZGVmaW5pbmcgYW55dGhpbmcg
aW4gdGhlIHN0ZAotLy8gbmFtZXNwYWNlIGluIG5vbi1TVEwgY29kZSBpcyB1bmRlZmluZWQgYmVo
YXZpb3IuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci06OnN0ZDo6c3Ry
aW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQyPiYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0
cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8PCAi
LCAiIDw8IGdldDwxPih2YWx1ZSkgPDwgIikiOwotICByZXR1cm4gc3RyZWFtLnN0cigpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLTo6c3Rk
OjpzdHJpbmcgUHJpbnRWYWx1ZShjb25zdCB0dXBsZTxUMSwgVDIsIFQzPiYgdmFsdWUpIHsKLSAg
OjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZh
bHVlKSA8PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8Mj4o
dmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyAgcmV0dXJuIHRlc3Rpbmc6
OlByaW50VG9TdHJpbmcodmFsdWUpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTA+Ci06OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoCi0gICAgY29uc3QgdHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiYgdmFsdWUpIHsKLSAgOjpzdGQ6
OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8
PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8Mj4odmFsdWUp
IDw8ICIsICIgPDwgZ2V0PDM+KHZhbHVlKQotICAgICAgICAgPDwgIiwgIjw8IGdldDw0Pih2YWx1
ZSkgPDwgIiwgIiA8PCBnZXQ8NT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0PDY+KHZh
bHVlKSA8PCAiLCAiIDw8IGdldDw3Pih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8OD4o
dmFsdWUpIDw8ICIsICIgPDwgZ2V0PDk+KHZhbHVlKSA8PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0u
c3RyKCk7Ci19Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KIC8vIFZlcmlmaWVz
IHRoYXQgYSBzZXF1ZW5jZSBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRvciBhbmQgYWNjZXNzZWQK
IC8vIHZpYSB0aGUgaXRlcmF0b3Igb2JqZWN0IG1hdGNoZXMgdGhlIGV4cGVjdGVkIG9uZSB1c2lu
ZyBHb29nbGUgVGVzdAogLy8gYXNzZXJ0aW9ucy4KQEAgLTQ1MCwzMSArNDA1LDI4IEBAIFRFU1Qo
Qm9vbFRlc3QsIEJvb2xXb3JrcykgewogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92
YWx1ZXMpOwogfQogCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0KIC8vIFRlc3RzIHRoYXQgQ29t
YmluZSgpIHdpdGggdHdvIHBhcmFtZXRlcnMgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBzZXF1ZW5j
ZS4KIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoVHdvUGFyYW1ldGVycykgewogICBjb25z
dCBjaGFyKiBmb28gPSAiZm9vIjsKICAgY29uc3QgY2hhciogYmFyID0gImJhciI7Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQ+ID4gZ2VuID0KKyAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgaW50PiA+IGdlbiA9CiAgICAg
ICBDb21iaW5lKFZhbHVlcyhmb28sIGJhciksIFZhbHVlcygzLCA0KSk7CiAKLSAgdHVwbGU8Y29u
c3QgY2hhciosIGludD4gZXhwZWN0ZWRfdmFsdWVzW10gPSB7Ci0gICAgbWFrZV90dXBsZShmb28s
IDMpLCBtYWtlX3R1cGxlKGZvbywgNCksCi0gICAgbWFrZV90dXBsZShiYXIsIDMpLCBtYWtlX3R1
cGxlKGJhciwgNCl9OworICBzdGQ6OnR1cGxlPGNvbnN0IGNoYXIqLCBpbnQ+IGV4cGVjdGVkX3Zh
bHVlc1tdID0geworICAgICAgc3RkOjptYWtlX3R1cGxlKGZvbywgMyksIHN0ZDo6bWFrZV90dXBs
ZShmb28sIDQpLCBzdGQ6Om1ha2VfdHVwbGUoYmFyLCAzKSwKKyAgICAgIHN0ZDo6bWFrZV90dXBs
ZShiYXIsIDQpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0K
IAogLy8gVGVzdHMgdGhhdCBDb21iaW5lKCkgd2l0aCB0aHJlZSBwYXJhbWV0ZXJzIGdlbmVyYXRl
cyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFRo
cmVlUGFyYW1ldGVycykgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludCwg
aW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDMsIDQpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKDUsIDYpKTsKLSAgdHVwbGU8aW50LCBpbnQsIGludD4gZXhwZWN0ZWRfdmFsdWVzW10g
PSB7Ci0gICAgbWFrZV90dXBsZSgwLCAzLCA1KSwgbWFrZV90dXBsZSgwLCAzLCA2KSwKLSAgICBt
YWtlX3R1cGxlKDAsIDQsIDUpLCBtYWtlX3R1cGxlKDAsIDQsIDYpLAotICAgIG1ha2VfdHVwbGUo
MSwgMywgNSksIG1ha2VfdHVwbGUoMSwgMywgNiksCi0gICAgbWFrZV90dXBsZSgxLCA0LCA1KSwg
bWFrZV90dXBsZSgxLCA0LCA2KX07CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8
aW50LCBpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFZhbHVl
cygzLCA0KSwgVmFsdWVzKDUsIDYpKTsKKyAgc3RkOjp0dXBsZTxpbnQsIGludCwgaW50PiBleHBl
Y3RlZF92YWx1ZXNbXSA9IHsKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgwLCAzLCA1KSwgc3RkOjpt
YWtlX3R1cGxlKDAsIDMsIDYpLAorICAgICAgc3RkOjptYWtlX3R1cGxlKDAsIDQsIDUpLCBzdGQ6
Om1ha2VfdHVwbGUoMCwgNCwgNiksCisgICAgICBzdGQ6Om1ha2VfdHVwbGUoMSwgMywgNSksIHN0
ZDo6bWFrZV90dXBsZSgxLCAzLCA2KSwKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgxLCA0LCA1KSwg
c3RkOjptYWtlX3R1cGxlKDEsIDQsIDYpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0
ZWRfdmFsdWVzKTsKIH0KIApAQCAtNDgyLDEwICs0MzQsMTEgQEAgVEVTVChDb21iaW5lVGVzdCwg
Q29tYmluZVdpdGhUaHJlZVBhcmFtZXRlcnMpIHsKIC8vIHNlcXVlbmNlIGdlbmVyYXRlcyBhIHNl
cXVlbmNlIHdpdGggdGhlIG51bWJlciBvZiBlbGVtZW50cyBlcXVhbCB0byB0aGUKIC8vIG51bWJl
ciBvZiBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBzZWNvbmQgcGFy
YW1ldGVyLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhGaXJzdFBhcmFtZXRlclNpbmds
ZVZhbHVlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9
IENvbWJpbmUoVmFsdWVzKDQyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMCwgMSkpOworICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxzdGQ6OnR1cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFZhbHVlcyg0Miks
IFZhbHVlcygwLCAxKSk7CiAKLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0g
e21ha2VfdHVwbGUoNDIsIDApLCBtYWtlX3R1cGxlKDQyLCAxKX07CisgIHN0ZDo6dHVwbGU8aW50
LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZSg0MiwgMCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV90dXBsZSg0
MiwgMSl9OwogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCkBA
IC00OTMsMjYgKzQ0NiwyNyBAQCBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aEZpcnN0UGFy
YW1ldGVyU2luZ2xlVmFsdWUpIHsKIC8vIHNlcXVlbmNlIGdlbmVyYXRlcyBhIHNlcXVlbmNlIHdp
dGggdGhlIG51bWJlciBvZiBlbGVtZW50cyBlcXVhbCB0byB0aGUKIC8vIG51bWJlciBvZiBlbGVt
ZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBmaXJzdCBwYXJhbWV0ZXIuCiBU
RVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29uZFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUo
VmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyg0MikpOworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1
cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFZhbHVlcygwLCAxKSwgVmFsdWVz
KDQyKSk7CiAKLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge21ha2VfdHVw
bGUoMCwgNDIpLCBtYWtlX3R1cGxlKDEsIDQyKX07CisgIHN0ZDo6dHVwbGU8aW50LCBpbnQ+IGV4
cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZSgwLCA0MiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV90dXBsZSgxLCA0Mil9Owog
ICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCiAvLyBUZXN0cyB0
aGF0IHdoZW4gdGhlIGZpcnN0IHBhcmFtZXRlciBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwK
IC8vIENvbWJpbmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwgdG9vLgogVEVTVChDb21i
aW5lVGVzdCwgQ29tYmluZVdpdGhGaXJzdFBhcmFtZXRlckVtcHR5UmFuZ2UpIHsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBpbnQ+ID4gZ2VuID0gQ29tYmluZShSYW5nZSgwLCAw
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoMCwgMSkpOworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwg
aW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFJhbmdlKDAsIDApLCBWYWx1ZXMoMCwgMSkpOwog
ICBWZXJpZnlHZW5lcmF0b3JJc0VtcHR5KGdlbik7CiB9CiAKIC8vIFRlc3RzIHRoYXQgd2hlbiB0
aGUgc2Vjb25kIHBhcmFtZXRlciBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwKIC8vIENvbWJp
bmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwgdG9vLgogVEVTVChDb21iaW5lVGVzdCwg
Q29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJFbXB0eVJhbmdlKSB7Ci0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdl
KDEsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxpbnQsIGludD4gPiBn
ZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFJhbmdlKDEsIDEpKTsKICAgVmVyaWZ5
R2VuZXJhdG9ySXNFbXB0eShnZW4pOwogfQogCkBAIC01MjEsNDQgKzQ3NSw0MSBAQCBURVNUKENv
bWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29uZFBhcmFtZXRlckVtcHR5UmFuZ2UpIHsKIFRFU1Qo
Q29tYmluZVRlc3QsIENvbWJpbmVXaXRoTWF4TnVtYmVyT2ZQYXJhbWV0ZXJzKSB7CiAgIGNvbnN0
IGNoYXIqIGZvbyA9ICJmb28iOwogICBjb25zdCBjaGFyKiBiYXIgPSAiYmFyIjsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8dHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBpbnQ+ID4gZ2Vu
ID0gQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygxKSwgVmFsdWVzKDIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygz
KSwgVmFsdWVzKDQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyg1KSwgVmFsdWVzKDYpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg3KSwgVmFsdWVzKDgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyg5KSk7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQ+Ci0gICAgICBleHBlY3RlZF92YWx1ZXNbXSA9IHttYWtlX3R1
cGxlKGZvbywgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYWtlX3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSl9OworICBj
b25zdCBQYXJhbUdlbmVyYXRvcjwKKyAgICAgIHN0ZDo6dHVwbGU8Y29uc3QgY2hhciosIGludCwg
aW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQ+ID4KKyAgICAgIGdlbiA9Cisg
ICAgICAgICAgQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLCBWYWx1ZXMoMSksIFZhbHVlcygyKSwg
VmFsdWVzKDMpLCBWYWx1ZXMoNCksCisgICAgICAgICAgICAgICAgICBWYWx1ZXMoNSksIFZhbHVl
cyg2KSwgVmFsdWVzKDcpLCBWYWx1ZXMoOCksIFZhbHVlcyg5KSk7CisKKyAgc3RkOjp0dXBsZTxj
b25zdCBjaGFyKiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludD4K
KyAgICAgIGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZShmb28sIDEsIDIsIDMs
IDQsIDUsIDYsIDcsIDgsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptYWtl
X3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSl9OwogICBWZXJpZnlHZW5lcmF0
b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotCiBj
bGFzcyBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nIHsKICBwdWJsaWM6CiAgIE5vbkRl
ZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIDogc3RyXyhz
KSB7fQorICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKCkgPSBkZWxldGU7CisgIE5v
bkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29uc3QgTm9uRGVmYXVsdENvbnN0cnVjdEFz
c2lnblN0cmluZyYpID0KKyAgICAgIGRlZmF1bHQ7CisgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3Np
Z25TdHJpbmcmIG9wZXJhdG9yPSgKKyAgICAgIGNvbnN0IE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3Np
Z25TdHJpbmcmKSA9IGRlbGV0ZTsKKyAgfk5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmco
KSA9IGRlZmF1bHQ7CiAKICAgY29uc3Qgc3RkOjpzdHJpbmcmIHN0cigpIGNvbnN0IHsgcmV0dXJu
IHN0cl87IH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3RyaW5nIHN0cl87Ci0KLSAgLy8gTm90IGRl
ZmF1bHQgY29uc3RydWN0aWJsZQotICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKCk7
Ci0gIC8vIE5vdCBhc3NpZ25hYmxlCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE5vbkRlZmF1bHRD
b25zdHJ1Y3RBc3NpZ25TdHJpbmcmKTsKIH07CiAKIFRFU1QoQ29tYmluZVRlc3QsIE5vbkRlZmF1
bHRDb25zdHJ1Y3RBc3NpZ24pIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBO
b25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+IGdlbiA9CisgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPHN0ZDo6dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+
IGdlbiA9CiAgICAgICBDb21iaW5lKFZhbHVlcygwLCAxKSwgVmFsdWVzKE5vbkRlZmF1bHRDb25z
dHJ1Y3RBc3NpZ25TdHJpbmcoIkEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZygiQiIpKSk7CiAKLSAgUGFyYW1HZW5l
cmF0b3I8dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+OjppdGVy
YXRvciBpdCA9Ci0gICAgICBnZW4uYmVnaW4oKTsKKyAgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBs
ZTxpbnQsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmc+ID46Oml0ZXJhdG9yCisgICAg
ICBpdCA9IGdlbi5iZWdpbigpOwogCiAgIEVYUEVDVF9FUSgwLCBzdGQ6OmdldDwwPigqaXQpKTsK
ICAgRVhQRUNUX0VRKCJBIiwgc3RkOjpnZXQ8MT4oKml0KS5zdHIoKSk7CkBAIC01NzksOCArNTMw
LDYgQEAgVEVTVChDb21iaW5lVGVzdCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnbikgewogICBF
WFBFQ1RfVFJVRShpdCA9PSBnZW4uZW5kKCkpOwogfQogCi0jZW5kaWYgICAvLyBHVEVTVF9MQU5H
X0NYWDExCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQogCiAvLyBUZXN0cyB0aGF0IGFu
IGdlbmVyYXRvciBwcm9kdWNlcyBjb3JyZWN0IHNlcXVlbmNlIGFmdGVyIGJlaW5nCiAvLyBhc3Np
Z25lZCBmcm9tIGFub3RoZXIgZ2VuZXJhdG9yLgpAQCAtNTk1LDEyICs1NDQsMTIgQEAgVEVTVChQ
YXJhbUdlbmVyYXRvclRlc3QsIEFzc2lnbm1lbnRXb3JrcykgewogCiAvLyBUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCB0aGUgdGVzdHMgYXJlIGV4cGFuZGVkIGFuZCBydW4gYXMgc3BlY2lmaWVkOgog
Ly8gb25lIHRlc3QgcGVyIGVsZW1lbnQgZnJvbSB0aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhl
IGdlbmVyYXRvcgotLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QLiBJdCBh
bHNvIHZlcmlmaWVzIHRoYXQgdGhlIHRlc3QncworLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUC4gSXQgYWxzbyB2ZXJpZmllcyB0aGF0IHRoZSB0ZXN0J3MKIC8vIGZpeHR1
cmUgY29uc3RydWN0b3IsIFNldFVwKCksIGFuZCBUZWFyRG93bigpIGhhdmUgcnVuIGFuZCBoYXZl
IGJlZW4KIC8vIHN1cHBsaWVkIHdpdGggdGhlIGNvcnJlY3QgcGFyYW1ldGVycy4KIAogLy8gVGhl
IHVzZSBvZiBlbnZpcm9ubWVudCBvYmplY3QgYWxsb3dzIGRldGVjdGlvbiBvZiB0aGUgY2FzZSB3
aGVyZSBubyB0ZXN0Ci0vLyBjYXNlIGZ1bmN0aW9uYWxpdHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhp
cyBjYXNlIFRlc3RDYXNlVGVhckRvd24gd2lsbCBub3QKKy8vIGNhc2UgZnVuY3Rpb25hbGl0eSBp
cyBydW4gYXQgYWxsLiBJbiB0aGlzIGNhc2UgVGVhckRvd25UZXN0U3VpdGUgd2lsbCBub3QKIC8v
IGJlIGFibGUgdG8gZGV0ZWN0IG1pc3NpbmcgdGVzdHMsIG5hdHVyYWxseS4KIHRlbXBsYXRlIDxp
bnQga0V4cGVjdGVkQ2FsbHM+CiBjbGFzcyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50IDogcHVi
bGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgewpAQCAtNjE1LDcgKzU2NCw3IEBAIGNsYXNzIFRl
c3RHZW5lcmF0aW9uRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7
CiAgIHZvaWQgVGVhckRvd25FeGVjdXRlZCgpIHsgdGVhcl9kb3duX2NvdW50XysrOyB9CiAgIHZv
aWQgVGVzdEJvZHlFeGVjdXRlZCgpIHsgdGVzdF9ib2R5X2NvdW50XysrOyB9CiAKLSAgdmlydHVh
bCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8v
IElmIGFsbCBNdWx0aXBsZVRlc3RHZW5lcmF0aW9uVGVzdCB0ZXN0cyBoYXZlIGJlZW4gZGUtc2Vs
ZWN0ZWQKICAgICAvLyBieSB0aGUgZmlsdGVyIGZsYWcsIHRoZSBmb2xsb3dpbmcgY2hlY2tzIG1h
a2Ugbm8gc2Vuc2UuCiAgICAgYm9vbCBwZXJmb3JtX2NoZWNrID0gZmFsc2U7CkBAIC02NzIsMTYg
KzYyMSwxNiBAQCBjbGFzcyBUZXN0R2VuZXJhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJh
bTxpbnQ+IHsKICAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Rml4dHVyZUNvbnN0cnVjdG9y
RXhlY3V0ZWQoKTsKICAgICBjdXJyZW50X3BhcmFtZXRlcl8gPSBHZXRQYXJhbSgpOwogICB9Ci0g
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBF
bnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+U2V0VXBFeGVjdXRlZCgpOwogICAgIEVYUEVDVF9FUShj
dXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFy
RG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBFbnZpcm9ubWVudDo6
SW5zdGFuY2UoKS0+VGVhckRvd25FeGVjdXRlZCgpOwogICAgIEVYUEVDVF9FUShjdXJyZW50X3Bh
cmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2Fz
ZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgYm9vbCBhbGxfdGVz
dHNfaW5fdGVzdF9jYXNlX3NlbGVjdGVkID0gdHJ1ZTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgUEFSQU1FVEVSX0NPVU5UOyArK2kpIHsKQEAgLTcwMiw3ICs2NTEsNyBAQCBjbGFzcyBUZXN0
R2VuZXJhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsKICAgICBjb2xsZWN0
ZWRfcGFyYW1ldGVyc18uY2xlYXIoKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVz
dENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHZlY3Rv
cjxpbnQ+IGV4cGVjdGVkX3ZhbHVlcyh0ZXN0X2dlbmVyYXRpb25fcGFyYW1zLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2dlbmVyYXRpb25fcGFyYW1zICsgUEFSQU1FVEVS
X0NPVU5UKTsKICAgICAvLyBUZXN0IGV4ZWN1dGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCBi
eSBHb29nbGUgVGVzdCwKQEAgLTcyOCwxNyArNjc3LDE3IEBAIFRFU1RfUChUZXN0R2VuZXJhdGlv
blRlc3QsIFRlc3RzRXhwYW5kZWRBbmRSdW4pIHsKICAgRVhQRUNUX0VRKGN1cnJlbnRfcGFyYW1l
dGVyXywgR2V0UGFyYW0oKSk7CiAgIGNvbGxlY3RlZF9wYXJhbWV0ZXJzXy5wdXNoX2JhY2soR2V0
UGFyYW0oKSk7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0RXhwYW5zaW9uTW9kdWxl
LCBUZXN0R2VuZXJhdGlvblRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNJbih0
ZXN0X2dlbmVyYXRpb25fcGFyYW1zKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVGVzdEV4
cGFuc2lvbk1vZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlc0luKHRlc3RfZ2VuZXJhdGlvbl9wYXJhbXMpKTsKIAogLy8gVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2VxdWVuY2UgKHRoaXJkIHBhcmFtZXRlciBvZgotLy8g
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1ApIGlzIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgp
IGFuZCBuZWl0aGVyIGF0Ci0vLyB0aGUgY2FsbCBzaXRlIG9mIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QIG5vciBpbiBSVU5fQUxMX1RFU1RTKCkuICBGb3IKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUCkgaXMgZXZhbHVhdGVkIGluIEluaXRHb29nbGVUZXN0KCkgYW5kIG5laXRoZXIgYXQKKy8v
IHRoZSBjYWxsIHNpdGUgb2YgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG5vciBpbiBSVU5fQUxM
X1RFU1RTKCkuICBGb3IKIC8vIHRoYXQsIHdlIGRlY2xhcmUgcGFyYW1fdmFsdWVfIHRvIGJlIGEg
c3RhdGljIG1lbWJlciBvZgogLy8gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QgYW5kIGluaXRpYWxp
emUgaXQgdG8gMC4gIFdlIHNldCBpdCB0byAxIGluCiAvLyBtYWluKCksIGp1c3QgYmVmb3JlIGlu
dm9jYXRpb24gb2YgSW5pdEdvb2dsZVRlc3QoKS4gIEFmdGVyIGNhbGxpbmcKIC8vIEluaXRHb29n
bGVUZXN0KCksIHdlIHNldCB0aGUgdmFsdWUgdG8gMi4gIElmIHRoZSBzZXF1ZW5jZSBpcyBldmFs
dWF0ZWQKLS8vIGJlZm9yZSBvciBhZnRlciBJbml0R29vZ2xlVGVzdCwgSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1Agd2lsbCBjcmVhdGUgYQorLy8gYmVmb3JlIG9yIGFmdGVyIEluaXRHb29nbGVUZXN0
LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agd2lsbCBjcmVhdGUgYQogLy8gdGVzdCB3aXRoIHBh
cmFtZXRlciBvdGhlciB0aGFuIDEsIGFuZCB0aGUgdGVzdCBib2R5IHdpbGwgZmFpbCB0aGUKIC8v
IGFzc2VydGlvbi4KIGNsYXNzIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IDogcHVibGljIFRlc3RX
aXRoUGFyYW08aW50PiB7CkBAIC03NTQsOSArNzAzLDggQEAgaW50IEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0OjpwYXJhbV92YWx1ZV8gPSAwOwogVEVTVF9QKEdlbmVyYXRvckV2YWx1YXRpb25UZXN0
LCBHZW5lcmF0b3JzRXZhbHVhdGVkSW5NYWluKSB7CiAgIEVYUEVDVF9FUSgxLCBHZXRQYXJhbSgp
KTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEdlbkV2YWxNb2R1bGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6cGFyYW1fdmFsdWUoKSkpOwor
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEdlbkV2YWxNb2R1bGUsIEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0
aW9uVGVzdDo6cGFyYW1fdmFsdWUoKSkpOwogCiAvLyBUZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVm
aW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0IGFyZQogLy8gZnVuY3Rpb25hbC4g
R2VuZXJhdG9yIGV4dGVybl9nZW4gaXMgZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3Qy
LmNjLgpAQCAtNzY3LDkgKzcxNSw4IEBAIFRFU1RfUChFeHRlcm5hbEdlbmVyYXRvclRlc3QsIEV4
dGVybmFsR2VuZXJhdG9yKSB7CiAgIC8vIHdoaWNoIHdlIHZlcmlmeSBoZXJlLgogICBFWFBFQ1Rf
RVEoR2V0UGFyYW0oKSwgMzMpOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRXh0ZXJuYWxH
ZW5lcmF0b3JNb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbEdlbmVyYXRv
clRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5fZ2VuKTsKK0lOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUChFeHRlcm5hbEdlbmVyYXRvck1vZHVsZSwgRXh0ZXJuYWxHZW5lcmF0b3JU
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybl9nZW4pOwogCiAvLyBUZXN0cyB0
aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGRlZmluZWQgaW4gb25lIHRyYW5z
bGF0aW9uCiAvLyB1bml0IGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhlci4gVGhpcyB0ZXN0IHdp
bGwgYmUgaW5zdGFudGlhdGVkIGluCkBAIC03ODQsMjAgKzczMSwxOSBAQCBURVNUX1AoRXh0ZXJu
YWxJbnN0YW50aWF0aW9uVGVzdCwgSXNNdWx0aXBsZU9mMzMpIHsKIGNsYXNzIE11bHRpcGxlSW5z
dGFudGlhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwogVEVTVF9QKE11
bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIEFsbG93c011bHRpcGxlSW5zdGFuY2VzKSB7CiB9Ci1J
TlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTEsIE11bHRpcGxlSW5zdGFudGlhdGlvblRl
c3QsIFZhbHVlcygxLCAyKSk7Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsIE11
bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFJhbmdlKDMsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChTZXF1ZW5jZTEsIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFZhbHVlcygxLCAy
KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxdWVuY2UyLCBNdWx0aXBsZUluc3RhbnRp
YXRpb25UZXN0LCBSYW5nZSgzLCA1KSk7CiAKIC8vIFRlc3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVk
IHRlc3QgY2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAvLyBpbiBtdWx0aXBsZSB0cmFuc2xhdGlv
biB1bml0cy4gVGhpcyB0ZXN0IHdpbGwgYmUgaW5zdGFudGlhdGVkCiAvLyBoZXJlIGFuZCBpbiBn
dGVzdC1wYXJhbS10ZXN0X3Rlc3QyLmNjLgogLy8gSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFu
c2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGNsYXNzCiAvLyBpcyBkZWZpbmVkIGluIGd0ZXN0LXBh
cmFtLXRlc3RfdGVzdC5oLgotVEVTVF9QKEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNsYWlv
blVuaXRzVGVzdCwgSXNNdWx0aXBsZU9mNDIpIHsKK1RFU1RfUChJbnN0YW50aWF0aW9uSW5NdWx0
aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0LCBJc011bHRpcGxlT2Y0MikgewogICBFWFBFQ1RfRVEo
MCwgR2V0UGFyYW0oKSAlIDQyKTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcXVlbmNl
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNs
YWlvblVuaXRzVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0MiwgNDIqMikp
OworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMSwgSW5zdGFudGlhdGlvbkluTXVs
dGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoNDIsIDQyICogMikpOwogCiAvLyBUZXN0cyB0aGF0IGVhY2ggaXRlcmF0aW9uIG9mIHBhcmFt
ZXRlcml6ZWQgdGVzdCBydW5zIGluIGEgc2VwYXJhdGUgdGVzdAogLy8gb2JqZWN0LgpAQCAtODA1
LDcgKzc1MSw3IEBAIGNsYXNzIFNlcGFyYXRlSW5zdGFuY2VUZXN0IDogcHVibGljIFRlc3RXaXRo
UGFyYW08aW50PiB7CiAgcHVibGljOgogICBTZXBhcmF0ZUluc3RhbmNlVGVzdCgpIDogY291bnRf
KDApIHt9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZv
aWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRVhQRUNUX0dFKGdsb2JhbF9jb3VudF8sIDIp
CiAgICAgICAgIDw8ICJJZiBzb21lIChidXQgbm90IGFsbCkgU2VwYXJhdGVJbnN0YW5jZVRlc3Qg
dGVzdHMgaGF2ZSBiZWVuICIKICAgICAgICAgPDwgImZpbHRlcmVkIG91dCB0aGlzIHRlc3Qgd2ls
bCBmYWlsLiBNYWtlIHN1cmUgdGhhdCBhbGwgIgpAQCAtODIzLDIwICs3NjksMjAgQEAgVEVTVF9Q
KFNlcGFyYXRlSW5zdGFuY2VUZXN0LCBUZXN0c1J1bkluU2VwYXJhdGVJbnN0YW5jZXMpIHsKICAg
RVhQRUNUX0VRKDAsIGNvdW50XysrKTsKICAgZ2xvYmFsX2NvdW50XysrOwogfQotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoRm91ckVsZW1TZXF1ZW5jZSwgU2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJh
bmdlKDEsIDQpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGb3VyRWxlbVNlcXVlbmNlLCBT
ZXBhcmF0ZUluc3RhbmNlVGVzdCwgUmFuZ2UoMSwgNCkpOwogCiAvLyBUZXN0cyB0aGF0IGFsbCBp
bnN0YW50aWF0aW9ucyBvZiBhIHRlc3QgaGF2ZSBuYW1lZCBhcHByb3ByaWF0ZWx5LiBUZXN0Ci0v
LyBkZWZpbmVkIHdpdGggVEVTVF9QKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpIGFuZCBpbnN0YW50
aWF0ZWQgd2l0aAotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2VOYW1lLCBUZXN0
Q2FzZU5hbWUsIGdlbmVyYXRvcikgbXVzdCBiZSBuYW1lZAotLy8gU2VxdWVuY2VOYW1lL1Rlc3RD
YXNlTmFtZS5UZXN0TmFtZS9pLCB3aGVyZSBpIGlzIHRoZSAwLWJhc2VkIGluZGV4IG9mIHRoZQot
Ly8gc2VxdWVuY2UgZWxlbWVudCB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0LgorLy8gZGVm
aW5lZCB3aXRoIFRFU1RfUChUZXN0U3VpdGVOYW1lLCBUZXN0TmFtZSkgYW5kIGluc3RhbnRpYXRl
ZCB3aXRoCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxdWVuY2VOYW1lLCBUZXN0U3Vp
dGVOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUKKy8vIG5hbWVkIFNlcXVlbmNlTmFtZS9UZXN0U3Vp
dGVOYW1lLlRlc3ROYW1lL2ksIHdoZXJlIGkgaXMgdGhlIDAtYmFzZWQgaW5kZXggb2YKKy8vIHRo
ZSBzZXF1ZW5jZSBlbGVtZW50IHVzZWQgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QuCiBjbGFzcyBO
YW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKIAogVEVTVF9QKE5hbWlu
Z1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5kUGFyYW1ldGVycykgewogICBjb25zdCA6
OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVDVF9T
VFJFUSgiWmVyb1RvRml2ZVNlcXVlbmNlL05hbWluZ1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlplcm9Ub0ZpdmVTZXF1ZW5jZS9OYW1pbmdUZXN0
IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAKICAgTWVzc2FnZSBpbmRleF9zdHJl
YW07CiAgIGluZGV4X3N0cmVhbSA8PCAiVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0
ZXJzLyIgPDwgR2V0UGFyYW0oKTsKQEAgLTg0NSw3ICs3OTEsNyBAQCBURVNUX1AoTmFtaW5nVGVz
dCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0ZXJzKSB7CiAgIEVYUEVDVF9FUSg6
OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSksIHRlc3RfaW5mby0+dmFsdWVfcGFy
YW0oKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFplcm9Ub0ZpdmVTZXF1ZW5jZSwg
TmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFplcm9U
b0ZpdmVTZXF1ZW5jZSwgTmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSkpOwogCiAvLyBUZXN0cyB0aGF0
IG1hY3JvcyBpbiB0ZXN0IG5hbWVzIGFyZSBleHBhbmRlZCBjb3JyZWN0bHkuCiBjbGFzcyBNYWNy
b05hbWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwpAQCAtODU3LDExICs4
MDMsMTEgQEAgVEVTVF9QKFBSRUZJWF9XSVRIX01BQ1JPKE5hbWluZ1Rlc3QpLCBQUkVGSVhfV0lU
SF9GT08oU29tZVRlc3ROYW1lKSkgewogICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25z
dCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5j
dXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVDVF9TVFJFUSgiRm9ydHlUd28vTWFjcm9OYW1p
bmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJG
b29Tb21lVGVzdE5hbWUiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiRm9y
dHlUd28vTWFjcm9OYW1pbmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7Cisg
IEVYUEVDVF9TVFJFUSgiRm9vU29tZVRlc3ROYW1lLzAiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEZvcnR5VHdvLCBNYWNyb05hbWluZ1Rlc3QsIFZh
bHVlcyg0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEZvcnR5VHdvLCBNYWNyb05hbWlu
Z1Rlc3QsIFZhbHVlcyg0MikpOwogCiAvLyBUZXN0cyB0aGUgc2FtZSB0aGluZyBmb3Igbm9uLXBh
cmFtZXRyaXplZCB0ZXN0cy4KIGNsYXNzIE1hY3JvTmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCA6
IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307CkBAIC04NzEsMTAgKzgxNyw0MCBAQCBURVNUX0Yo
UFJFRklYX1dJVEhfTUFDUk8oTmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCksCiAgIGNvbnN0IDo6
dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9CiAgICAgIDo6dGVzdGluZzo6VW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAKLSAgRVhQRUNUX1NU
UkVRKCJNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIk1hY3JvTmFtaW5nVGVzdE5vblBhcmFtZXRyaXpl
ZCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfU1RSRVEoIkZvb1Nv
bWVUZXN0TmFtZSIsIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIAorVEVTVChNYWNyb05hbWVpbmcs
IExvb2t1cE5hbWVzKSB7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiBrbm93X3N1aXRlX25hbWVz
LCBrbm93X3Rlc3RfbmFtZXM7CisKKyAgYXV0byBpbnMgPSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKTsKKyAgaW50IHRzID0gMDsKKyAgd2hpbGUgKGNvbnN0IHRlc3Rpbmc6OlRlc3RT
dWl0ZSogc3VpdGUgPSBpbnMtPkdldFRlc3RTdWl0ZSh0cysrKSkgeworICAgIGtub3dfc3VpdGVf
bmFtZXMuaW5zZXJ0KHN1aXRlLT5uYW1lKCkpOworCisgICAgaW50IHRpID0gMDsKKyAgICB3aGls
ZSAoY29uc3QgdGVzdGluZzo6VGVzdEluZm8qIGluZm8gPSBzdWl0ZS0+R2V0VGVzdEluZm8odGkr
KykpIHsKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5pbnNlcnQoc3RkOjpzdHJpbmcoc3VpdGUtPm5h
bWUoKSkgKyAiLiIgKyBpbmZvLT5uYW1lKCkpOworICAgIH0KKyAgfQorCisgIC8vIENoZWNrIHRo
YXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhlIHRlc3Qgc3VpdCBuYW1lIGFjdHVhbHkgZXhpc3Rz
LgorICBFWFBFQ1RfTkUoICAvLworICAgICAga25vd19zdWl0ZV9uYW1lcy5maW5kKCJGb3J0eVR3
by9NYWNyb05hbWluZ1Rlc3QiKSwKKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZW5kKCkpOworICBF
WFBFQ1RfTkUoCisgICAgICBrbm93X3N1aXRlX25hbWVzLmZpbmQoIk1hY3JvTmFtaW5nVGVzdE5v
blBhcmFtZXRyaXplZCIpLAorICAgICAga25vd19zdWl0ZV9uYW1lcy5lbmQoKSk7CisgIC8vIENo
ZWNrIHRoYXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhlIHRlc3QgbmFtZSBhY3R1YWx5IGV4aXN0
cy4KKyAgRVhQRUNUX05FKCAgLy8KKyAgICAgIGtub3dfdGVzdF9uYW1lcy5maW5kKCJGb3J0eVR3
by9NYWNyb05hbWluZ1Rlc3QuRm9vU29tZVRlc3ROYW1lLzAiKSwKKyAgICAgIGtub3dfdGVzdF9u
YW1lcy5lbmQoKSk7CisgIEVYUEVDVF9ORSgKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5maW5kKCJN
YWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQuRm9vU29tZVRlc3ROYW1lIiksCisgICAgICBr
bm93X3Rlc3RfbmFtZXMuZW5kKCkpOworfQorCiAvLyBUZXN0cyB0aGF0IHVzZXIgc3VwcGxpZWQg
Y3VzdG9tIHBhcmFtZXRlciBuYW1lcyBhcmUgd29ya2luZyBjb3JyZWN0bHkuCiAvLyBSdW5zIHRo
ZSB0ZXN0IHdpdGggYSBidWlsdGluIGhlbHBlciBtZXRob2Qgd2hpY2ggdXNlcyBQcmludFRvU3Ry
aW5nLAogLy8gYXMgd2VsbCBhcyBhIGN1c3RvbSBmdW5jdGlvbiBhbmQgY3VzdG9tIGZ1bmN0b3Ig
dG8gZW5zdXJlIGFsbCBwb3NzaWJsZQpAQCAtODg4LDE3ICs4NjQsMTQgQEAgc3RydWN0IEN1c3Rv
bVBhcmFtTmFtZUZ1bmN0b3IgewogICB9CiB9OwogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChD
dXN0b21QYXJhbU5hbWVGdW5jdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRnVu
Y3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJp
bmcoIkZ1bmN0b3JOYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1O
YW1lRnVuY3RvcigpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVG
dW5jdG9yLCBDdXN0b21GdW5jdG9yTmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1bmN0b3JOYW1lIikpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEFsbEFsbG93ZWRDaGFyYWN0ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9t
RnVuY3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIwMTIzNDU2Nzg5MF8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFt
TmFtZUZ1bmN0b3IoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQWxsQWxsb3dlZENoYXJh
Y3RlcnMsIEN1c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLCAiMDEyMzQ1Njc4OTBf
IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3RvcigpKTsK
IAogaW5saW5lIHN0ZDo6c3RyaW5nIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKAogICAgIGNvbnN0
IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZikgewpAQCAtOTA4LDQ1
ICs4ODEsNDEgQEAgaW5saW5lIHN0ZDo6c3RyaW5nIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKAog
Y2xhc3MgQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08c3Rk
OjpzdHJpbmc+IHt9OwogVEVTVF9QKEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCwgQ3VzdG9tVGVz
dE5hbWVzKSB7fQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChDdXN0b21QYXJhbU5hbWVGdW5j
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiRnVuY3Rpb25OYW1l
IikpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3Rpb24pOwor
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uLCBDdXN0b21G
dW5jdGlvbk5hbWluZ1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6
c3RyaW5nKCJGdW5jdGlvbk5hbWUiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9t
UGFyYW1OYW1lRnVuY3Rpb24pOwogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQorSU5TVEFOVElBVEVf
VEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uUCwgQ3VzdG9tRnVuY3Rpb25OYW1p
bmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiRnVu
Y3Rpb25OYW1lUCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmQ3VzdG9tUGFyYW1OYW1l
RnVuY3Rpb24pOwogCiAvLyBUZXN0IGN1c3RvbSBuYW1pbmcgd2l0aCBhIGxhbWJkYQogCiBjbGFz
cyBDdXN0b21MYW1iZGFOYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08c3RkOjpzdHJp
bmc+IHt9OwogVEVTVF9QKEN1c3RvbUxhbWJkYU5hbWluZ1Rlc3QsIEN1c3RvbVRlc3ROYW1lcykg
e30KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3VzdG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0
b21MYW1iZGFOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6
c3RyaW5nKCJMYW1iZGFOYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3Qg
Ojp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHN0ZDo6c3RyaW5nPiYgaW5mKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBpbmYucGFyYW07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCitJTlNUQU5USUFURV9URVNUX1NV
SVRFX1AoQ3VzdG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0b21MYW1iZGFOYW1pbmdUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiTGFtYmRhTmFtZSIpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBbXShjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUlu
Zm88c3RkOjpzdHJpbmc+JiBpbmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBpbmYucGFyYW07CisgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAKIFRFU1QoQ3VzdG9t
TmFtaW5nVGVzdCwgQ2hlY2tOYW1lUmVnaXN0cnkpIHsKICAgOjp0ZXN0aW5nOjpVbml0VGVzdCog
dW5pdF90ZXN0ID0gOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKICAgc3RkOjpz
ZXQ8c3RkOjpzdHJpbmc+IHRlc3RfbmFtZXM7Ci0gIGZvciAoaW50IGNhc2VfbnVtID0gMDsKLSAg
ICAgICBjYXNlX251bSA8IHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7Ci0gICAg
ICAgKytjYXNlX251bSkgewotICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdENhc2UqIHRlc3RfY2Fz
ZSA9IHVuaXRfdGVzdC0+R2V0VGVzdENhc2UoY2FzZV9udW0pOwotICAgIGZvciAoaW50IHRlc3Rf
bnVtID0gMDsKLSAgICAgICAgIHRlc3RfbnVtIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50
KCk7CisgIGZvciAoaW50IHN1aXRlX251bSA9IDA7IHN1aXRlX251bSA8IHVuaXRfdGVzdC0+dG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpOworICAgICAgICsrc3VpdGVfbnVtKSB7CisgICAgY29uc3Qg
Ojp0ZXN0aW5nOjpUZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSB1bml0X3Rlc3QtPkdldFRlc3RTdWl0
ZShzdWl0ZV9udW0pOworICAgIGZvciAoaW50IHRlc3RfbnVtID0gMDsgdGVzdF9udW0gPCB0ZXN0
X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7CiAgICAgICAgICArK3Rlc3RfbnVtKSB7Ci0gICAg
ICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiB0ZXN0X2luZm8gPSB0ZXN0X2Nhc2UtPkdldFRl
c3RJbmZvKHRlc3RfbnVtKTsKKyAgICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIHRlc3Rf
aW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKHRlc3RfbnVtKTsKICAgICAgIHRlc3RfbmFt
ZXMuaW5zZXJ0KHN0ZDo6c3RyaW5nKHRlc3RfaW5mby0+bmFtZSgpKSk7CiAgICAgfQogICB9CiAg
IEVYUEVDVF9FUSgxdSwgdGVzdF9uYW1lcy5jb3VudCgiQ3VzdG9tVGVzdE5hbWVzL0Z1bmN0b3JO
YW1lIikpOwogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1l
cy9GdW5jdGlvbk5hbWUiKSk7Ci0jaWYgR1RFU1RfTEFOR19DWFgxMQorICBFWFBFQ1RfRVEoMXUs
IHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9GdW5jdGlvbk5hbWVQIikpOwogICBF
WFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9MYW1iZGFOYW1l
IikpOwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCiB9CiAKIC8vIFRlc3QgYSBudW1lcmlj
IG5hbWUgdG8gZW5zdXJlIFByaW50VG9TdHJpbmdQYXJhbU5hbWUgd29ya3MgY29ycmVjdGx5LgpA
QCAtOTYxLDEwICs5MzAsOCBAQCBURVNUX1AoQ3VzdG9tSW50ZWdlck5hbWluZ1Rlc3QsIFRlc3Rz
UmVwb3J0Q29ycmVjdE5hbWVzKSB7CiAgIEVYUEVDVF9TVFJFUSh0ZXN0X25hbWVfc3RyZWFtLkdl
dFN0cmluZygpLmNfc3RyKCksIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIAotSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoUHJpbnRUb1N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3Rv
bUludGVnZXJOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UoMCwgNSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5h
bWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRUb1N0cmluZywgQ3VzdG9tSW50
ZWdlck5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogLy8gVGVzdCBhIGN1c3RvbSBz
dHJ1Y3Qgd2l0aCBQcmludFRvU3RyaW5nLgogCkBAIC05ODgsMTAgKzk1NSw5IEBAIFRFU1RfUChD
dXN0b21TdHJ1Y3ROYW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lcykgewogICBFWFBF
Q1RfU1RSRVEodGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLCB0ZXN0X2luZm8t
Pm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50VG9TdHJpbmcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21TdHJ1Y3ROYW1pbmdUZXN0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgVmFsdWVzKEN1c3RvbVN0cnVjdCgwKSwgQ3VzdG9tU3RydWN0KDEpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFt
ZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChQcmludFRvU3RyaW5nLCBDdXN0b21TdHJ1
Y3ROYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhDdXN0b21TdHJ1
Y3QoMCksIEN1c3RvbVN0cnVjdCgxKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lKCkpOwogCiAvLyBUZXN0IHRoYXQgdXNpbmcgYSBz
dGF0ZWZ1bCBwYXJhbWV0ZXIgbmFtaW5nIGZ1bmN0aW9uIHdvcmtzIGFzIGV4cGVjdGVkLgogCkBA
IC0xMDIwLDEwICs5ODYsOCBAQCBURVNUX1AoU3RhdGVmdWxOYW1pbmdUZXN0LCBUZXN0c1JlcG9y
dENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEodGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJp
bmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFN0YXRlZnVsTmFtaW5nRnVuY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0
YXRlZnVsTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdlKDAsIDUpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGVmdWxOYW1pbmdGdW5jdG9yKCkpOworSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QKFN0YXRlZnVsTmFtaW5nRnVuY3RvciwgU3RhdGVmdWxOYW1pbmdU
ZXN0LCBSYW5nZSgwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZWZ1bE5hbWlu
Z0Z1bmN0b3IoKSk7CiAKIC8vIENsYXNzIHRoYXQgY2Fubm90IGJlIHN0cmVhbWVkIGludG8gYW4g
b3N0cmVhbS4gIEl0IG5lZWRzIHRvIGJlIGNvcHlhYmxlCiAvLyAoYW5kLCBpbiBjYXNlIG9mIE1T
VkMsIGFsc28gYXNzaWduYWJsZSkgaW4gb3JkZXIgdG8gYmUgYSB0ZXN0IHBhcmFtZXRlcgpAQCAt
MTAzMiw2ICs5OTYsOCBAQCBJTlNUQU5USUFURV9URVNUX0NBU0VfUChTdGF0ZWZ1bE5hbWluZ0Z1
bmN0b3IsCiBjbGFzcyBVbnN0cmVhbWFibGUgewogIHB1YmxpYzoKICAgZXhwbGljaXQgVW5zdHJl
YW1hYmxlKGludCB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9CisgIC8vIC1XdW51c2VkLXByaXZh
dGUtZmllbGQ6IGR1bW15IGFjY2Vzc29yIGZvciBgdmFsdWVfYC4KKyAgY29uc3QgaW50JiBkdW1t
eV92YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQogCiAgcHJpdmF0ZToKICAgaW50IHZh
bHVlXzsKQEAgLTEwNDYsOSArMTAxMiw4IEBAIFRFU1RfUChDb21tZW50VGVzdCwgVGVzdHNDb3Jy
ZWN0bHlSZXBvcnRVbnN0cmVhbWFibGVQYXJhbXMpIHsKICAgRVhQRUNUX0VRKDo6dGVzdGluZzo6
UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKSwgdGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpKTsKIH0K
IAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbldpdGhDb21tZW50cywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRUZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVzKFVuc3RyZWFtYWJsZSgxKSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKElu
c3RhbnRpYXRpb25XaXRoQ29tbWVudHMsIENvbW1lbnRUZXN0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhVbnN0cmVhbWFibGUoMSkpKTsKIAogLy8gVmVyaWZ5IHRoYXQgd2UgY2Fu
IGNyZWF0ZSBhIGhpZXJhcmNoeSBvZiB0ZXN0IGZpeHR1cmVzLCB3aGVyZSB0aGUgYmFzZQogLy8g
Y2xhc3MgZml4dHVyZSBpcyBub3QgcGFyYW1ldGVyaXplZCBhbmQgdGhlIGRlcml2ZWQgY2xhc3Mg
aXMuIEluIHRoaXMgY2FzZQpAQCAtMTA4OCwxOSArMTA1Myw2NCBAQCBURVNUX0YoUGFyYW1ldGVy
aXplZERlYXRoVGVzdCwgR2V0UGFyYW1EaWVzRnJvbVRlc3RGKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi4qIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdCAuKiIpOwogfQogCi1JTlNU
QU5USUFURV9URVNUX0NBU0VfUChSYW5nZVplcm9Ub0ZpdmUsIFBhcmFtZXRlcml6ZWREZXJpdmVk
VGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFJhbmdlWmVyb1Rv
Rml2ZSwgUGFyYW1ldGVyaXplZERlcml2ZWRUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFJhbmdlKDAsIDUpKTsKKworLy8gVGVzdHMgcGFyYW0gZ2VuZXJhdG9yIHdvcmtpbmcgd2l0aCBF
bnVtcworZW51bSBNeUVudW1zIHsKKyAgRU5VTTEgPSAxLAorICBFTlVNMiA9IDMsCisgIEVOVU0z
ID0gOCwKK307CisKK2NsYXNzIE15RW51bVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQ
YXJhbTxNeUVudW1zPiB7fTsKKworVEVTVF9QKE15RW51bVRlc3QsIENoZWNrc1BhcmFtTW9yZVRo
YW5aZXJvKSB7IEVYUEVDVF9HRSgxMCwgR2V0UGFyYW0oKSk7IH0KK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChNeUVudW1UZXN0cywgTXlFbnVtVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OlZhbHVlcyhFTlVNMSwgRU5VTTIsIDApKTsKKworbmFtZXNwYWNlIHdvcmtz
X2hlcmUgeworLy8gTmV2ZXIgdXNlZCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHNob3VsZCB3b3Jr
LgorY2xhc3MgTm90VXNlZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+
IHt9OworCisvLy8vLy8vCisvLyBOZXZlciB1c2VkIG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgc2hv
dWxkIHdvcmsuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE5vdFVzZWRUeXBlVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKE5vdFVzZWRUeXBl
VGVzdCk7CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgd291bGQgZmFpbC4g
YnV0Li4uCitjbGFzcyBOb3RJbnN0YW50aWF0ZWRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08aW50PiB7fTsKKy8vIC4uLiB3ZSBtYXJrIGlzIGFzIGFsbG93ZWQuCitHVEVTVF9B
TExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm90SW5zdGFudGlhdGVkVGVz
dCk7CisKK1RFU1RfUChOb3RJbnN0YW50aWF0ZWRUZXN0LCBVc2VkKSB7IH0KKwordXNpbmcgT3Ro
ZXJOYW1lID0gTm90SW5zdGFudGlhdGVkVGVzdDsKK0dURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVE
X1BBUkFNRVRFUklaRURfVEVTVChPdGhlck5hbWUpOworVEVTVF9QKE90aGVyTmFtZSwgVXNlZCkg
eyB9CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgd291bGQgZmFpbC4gYnV0
Li4uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE5vdEluc3RhbnRpYXRlZFR5cGVUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CitUWVBFRF9URVNUX1NVSVRFX1AoTm90SW5zdGFu
dGlhdGVkVHlwZVRlc3QpOworLy8gLi4uIHdlIG1hcmsgaXMgYXMgYWxsb3dlZC4KK0dURVNUX0FM
TE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChOb3RJbnN0YW50aWF0ZWRUeXBl
VGVzdCk7CiAKK1RZUEVEX1RFU1RfUChOb3RJbnN0YW50aWF0ZWRUeXBlVGVzdCwgVXNlZCkgeyB9
CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoTm90SW5zdGFudGlhdGVkVHlwZVRlc3QsIFVz
ZWQpOworfSAgLy8gbmFtZXNwYWNlIHdvcmtzX2hlcmUKIAogaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KSB7Ci0gIC8vIFVzZWQgaW4gVGVzdEdlbmVyYXRpb25UZXN0IHRlc3QgY2FzZS4K
KyAgLy8gVXNlZCBpbiBUZXN0R2VuZXJhdGlvblRlc3QgdGVzdCBzdWl0ZS4KICAgQWRkR2xvYmFs
VGVzdEVudmlyb25tZW50KFRlc3RHZW5lcmF0aW9uVGVzdDo6RW52aXJvbm1lbnQ6Okluc3RhbmNl
KCkpOwotICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IHRlc3QgY2FzZS4gVGVz
dHMgdGhhdCB0aGUgdXBkYXRlZCB2YWx1ZQorICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0IHRlc3Qgc3VpdGUuIFRlc3RzIHRoYXQgdGhlIHVwZGF0ZWQgdmFsdWUKICAgLy8gd2ls
bCBiZSBwaWNrZWQgdXAgZm9yIGluc3RhbnRpYXRpbmcgdGVzdHMgaW4gR2VuZXJhdG9yRXZhbHVh
dGlvblRlc3QuCiAgIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFyYW1fdmFsdWUoMSk7
CiAKICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAKLSAgLy8gVXNl
ZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IGNhc2UuIFRlc3RzIHRoYXQgdmFsdWUg
dXBkYXRlZAorICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IHRlc3Qgc3VpdGUu
IFRlc3RzIHRoYXQgdmFsdWUgdXBkYXRlZAogICAvLyBoZXJlIHdpbGwgTk9UIGJlIHVzZWQgZm9y
IGluc3RhbnRpYXRpbmcgdGVzdHMgaW4KICAgLy8gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QuCiAg
IEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFyYW1fdmFsdWUoMik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10
ZXN0LmgKaW5kZXggNjMyYTYxZjQ5MjZiYTkyMjUxNTlkYjQ2OTgxMGU0MWNhYzBkMjBjNy4uODkx
OTM3NTM4ZDAxMjZlOTRjZDNkOTQ3YWRlYzMxYTU2MTM0YWZjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
aApAQCAtMzIsOCArMzIsOCBAQAogLy8gVGhpcyBoZWFkZXIgZmlsZSBwcm92aWRlcyBjbGFzc2Vz
IGFuZCBmdW5jdGlvbnMgdXNlZCBpbnRlcm5hbGx5CiAvLyBmb3IgdGVzdGluZyBHb29nbGUgVGVz
dCBpdHNlbGYuCiAKLSNpZm5kZWYgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8K
LSNkZWZpbmUgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9URVNUX0dPT0dMRVRFU1RfUEFSQU1fVEVTVF9URVNUX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1RfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3QuaCIKIApAQCAtNDQsOCArNDQsOCBAQCBjbGFzcyBFeHRlcm5hbEluc3RhbnRpYXRp
b25UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsKIAogLy8gVGVz
dCBmaXh0dXJlIGZvciB0ZXN0aW5nIGluc3RhbnRpYXRpb24gb2YgYSB0ZXN0IGluIG11bHRpcGxl
CiAvLyB0cmFuc2xhdGlvbiB1bml0cy4KLWNsYXNzIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJh
bnNsYWlvblVuaXRzVGVzdAorY2xhc3MgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlv
blVuaXRzVGVzdAogICAgIDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsK
IH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KKyNl
bmRpZiAgLy8gR09PR0xFVEVTVF9URVNUX0dPT0dMRVRFU1RfUEFSQU1fVEVTVF9URVNUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdDItdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1w
YXJhbS10ZXN0Mi10ZXN0LmNjCmluZGV4IDI1YmI5NDVjMmY4ZWQyOWZkOTA4NTZiMjNlMDNjMDFl
MmE4NDMwNjAuLjJhMjlmYjFkMDY4NmUyYTRlYzdjNjdjODkxMmZmNmEzOGY4OWNjZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0
Mi10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1w
YXJhbS10ZXN0Mi10ZXN0LmNjCkBAIC00NiwxNiArNDYsMTYgQEAgUGFyYW1HZW5lcmF0b3I8aW50
PiBleHRlcm5fZ2VuID0gVmFsdWVzKDMzKTsKIC8vIGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhl
ci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBpbgogLy8gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
Y2MgYW5kIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QgZml4dHVyZSBjbGFzcyBpcwogLy8gZGVm
aW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KE11bHRpcGxlc09mMzMsCi0gICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbEluc3RhbnRp
YXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOworSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKE11bHRpcGxlc09mMzMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgRXh0ZXJuYWxJbnN0YW50aWF0aW9uVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoMzMsIDY2KSk7CiAKIC8vIFRlc3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVkIHRlc3Qg
Y2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAvLyBpbiBtdWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0
cy4gQW5vdGhlciBpbnN0YW50aWF0aW9uIGlzIGRlZmluZWQKIC8vIGluIGdvb2dsZXRlc3QtcGFy
YW0tdGVzdC10ZXN0LmNjIGFuZAotLy8gSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhaW9u
VW5pdHNUZXN0IGZpeHR1cmUgaXMgZGVmaW5lZCBpbgorLy8gSW5zdGFudGlhdGlvbkluTXVsdGlw
bGVUcmFuc2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KIC8vIGd0ZXN0LXBh
cmFtLXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0
c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkp
OworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0MiozLCA0Mio0LCA0Mio1KSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3Qu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcG9ydC10ZXN0LmNj
CmluZGV4IDM5OTMxNmY5NWI2MzdhY2E5MmZiNWExNTQ0ZWM3ZmMyN2MyZWZiMjcuLjFlMGM4NjE2
MzIyYTcyN2U5MGRhYjRlZjE5NGNjYmIwMzVjMTIwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBvcnQtdGVzdC5jYwpAQCAtMzcsNiArMzcs
NyBAQAogI2VuZGlmICAvLyBHVEVTVF9PU19NQUMKIAogI2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVk
ZSA8bWVtb3J5PgogI2luY2x1ZGUgPHV0aWxpdHk+ICAvLyBGb3Igc3RkOjpwYWlyIGFuZCBzdGQ6
Om1ha2VfcGFpci4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKQEAgLTg5LDEwICs5MCwxMCBAQCBURVNU
KElzWERpZ2l0VGVzdCwgUmV0dXJuc0ZhbHNlRm9yV2lkZU5vbkFzY2lpKSB7CiAKIGNsYXNzIEJh
c2UgewogIHB1YmxpYzoKLSAgLy8gQ29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVy
YXRvciBkbyBleGFjdGx5IHdoYXQgd2UgbmVlZCwgc28gd2UKLSAgLy8gdXNlIHRoZW0uCiAgIEJh
c2UoKSA6IG1lbWJlcl8oMCkge30KICAgZXhwbGljaXQgQmFzZShpbnQgbikgOiBtZW1iZXJfKG4p
IHt9CisgIEJhc2UoY29uc3QgQmFzZSYpID0gZGVmYXVsdDsKKyAgQmFzZSYgb3BlcmF0b3I9KGNv
bnN0IEJhc2UmKSA9IGRlZmF1bHQ7CiAgIHZpcnR1YWwgfkJhc2UoKSB7fQogICBpbnQgbWVtYmVy
KCkgeyByZXR1cm4gbWVtYmVyXzsgfQogCkBAIC0yMDAsMzIgKzIwMSwxMyBAQCBURVNUKEltcGxp
Y2l0Q2FzdFRlc3QsIENhblVzZUltcGxpY2l0Q29uc3RydWN0b3IpIHsKICAgRVhQRUNUX1RSVUUo
Y29udmVydGVkKTsKIH0KIAotVEVTVChJdGVyYXRvclRyYWl0c1Rlc3QsIFdvcmtzRm9yU1RMQ29u
dGFpbmVySXRlcmF0b3JzKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsCi0gICAgICBJdGVy
YXRvclRyYWl0czwgOjpzdGQ6OnZlY3RvcjxpbnQ+Ojpjb25zdF9pdGVyYXRvcj46OnZhbHVlX3R5
cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxib29sLAotICAgICAgSXRlcmF0b3JUcmFpdHM8
IDo6c3RkOjpsaXN0PGJvb2w+OjppdGVyYXRvcj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1Qo
SXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclBvaW50ZXJUb05vbkNvbnN0KSB7Ci0gIFN0YXRp
Y0Fzc2VydFR5cGVFcTxjaGFyLCBJdGVyYXRvclRyYWl0czxjaGFyKj46OnZhbHVlX3R5cGU+KCk7
Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjb25zdCB2b2lkKiwgSXRlcmF0b3JUcmFpdHM8Y29uc3Qg
dm9pZCoqPjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotVEVTVChJdGVyYXRvclRyYWl0c1Rlc3QsIFdv
cmtzRm9yUG9pbnRlclRvQ29uc3QpIHsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGNoYXIsIEl0ZXJh
dG9yVHJhaXRzPGNvbnN0IGNoYXIqPjo6dmFsdWVfdHlwZT4oKTsKLSAgU3RhdGljQXNzZXJ0VHlw
ZUVxPGNvbnN0IHZvaWQqLAotICAgICAgSXRlcmF0b3JUcmFpdHM8Y29uc3Qgdm9pZCogY29uc3Qq
Pjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUgZWxlbWVudF90eXBlIHR5
cGVkZWYgaXMgYXZhaWxhYmxlIGluIHNjb3BlZF9wdHIgYW5kIHJlZmVycwotLy8gdG8gdGhlIHBh
cmFtZXRlciB0eXBlLgotVEVTVChTY29wZWRQdHJUZXN0LCBEZWZpbmVzRWxlbWVudFR5cGUpIHsK
LSAgU3RhdGljQXNzZXJ0VHlwZUVxPGludCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6c2NvcGVkX3B0
cjxpbnQ+OjplbGVtZW50X3R5cGU+KCk7Ci19Ci0KLS8vIEZJWE1FOiBJbXBsZW1lbnQgVEhFIFJF
U1Qgb2Ygc2NvcGVkX3B0ciB0ZXN0cy4KLQorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlv
bmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1i
b2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYK
IFRFU1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIEJlaGF2ZXNMaWtlQVNpbmdsZVN0YXRlbWVudCkg
ewogICBpZiAoQWx3YXlzRmFsc2UoKSkKICAgICBHVEVTVF9DSEVDS18oZmFsc2UpIDw8ICJUaGlz
IHNob3VsZCBuZXZlciBiZSBleGVjdXRlZDsgIgpAQCAtMjQxLDYgKzIyMyw5IEBAIFRFU1QoR3Rl
c3RDaGVja1N5bnRheFRlc3QsIEJlaGF2ZXNMaWtlQVNpbmdsZVN0YXRlbWVudCkgewogICBlbHNl
CiAgICAgR1RFU1RfQ0hFQ0tfKHRydWUpIDw8ICIiOwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAKIFRFU1QoR3Rlc3RDaGVja1N5bnRheFRl
c3QsIFdvcmtzV2l0aFN3aXRjaCkgewogICBzd2l0Y2ggKDApIHsKQEAgLTI2Miw5ICsyNDcsOSBA
QCBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNGaWxlTG9jYXRpb24pIHsKIH0K
IAogVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVW5rbm93bkZpbGUpIHsKLSAg
RVhQRUNUX1BSRURfRk9STUFUMigKLSAgICAgIElzU3Vic3RyaW5nLCAidW5rbm93biBmaWxlIiwg
Rm9ybWF0RmlsZUxvY2F0aW9uKE5VTEwsIDQyKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoSXNT
dWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVMb2NhdGlvbihOVUxMLCA0MikpOworICBFWFBFQ1Rf
UFJFRF9GT1JNQVQyKElzU3Vic3RyaW5nLCAidW5rbm93biBmaWxlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICBGb3JtYXRGaWxlTG9jYXRpb24obnVsbHB0ciwgNDIpKTsKKyAgRVhQRUNUX1BSRURf
Rk9STUFUMihJc1N1YnN0cmluZywgIjQyIiwgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQy
KSk7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkxpbmUp
IHsKQEAgLTI3Miw3ICsyNTcsNyBAQCBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1h
dHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0
c1Vrbm93bkZpbGVBbmRMaW5lKSB7Ci0gIEVYUEVDVF9FUSgidW5rbm93biBmaWxlOiIsIEZvcm1h
dEZpbGVMb2NhdGlvbihOVUxMLCAtMSkpOworICBFWFBFQ1RfRVEoInVua25vd24gZmlsZToiLCBG
b3JtYXRGaWxlTG9jYXRpb24obnVsbHB0ciwgLTEpKTsKIH0KIAogLy8gVmVyaWZpZXMgYmVoYXZp
b3Igb2YgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbi4KQEAgLTI4Miw3ICsy
NjcsNyBAQCBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb25UZXN0LCBG
b3JtYXRzRmlsZUxvY2F0aW9uKSB7CiAKIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZp
bGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25GaWxlKSB7CiAgIEVYUEVDVF9FUSgidW5rbm93
biBmaWxlOjQyIiwKLSAgICAgICAgICAgIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9j
YXRpb24oTlVMTCwgNDIpKTsKKyAgICAgICAgICAgIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRG
aWxlTG9jYXRpb24obnVsbHB0ciwgNDIpKTsKIH0KIAogVEVTVChGb3JtYXRDb21waWxlckluZGVw
ZW5kZW50RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkxpbmUpIHsKQEAgLTI5MCwxNSAr
Mjc1LDE3IEBAIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3Qs
IEZvcm1hdHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVu
dEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25GaWxlQW5kTGluZSkgewotICBFWFBFQ1Rf
RVEoInVua25vd24gZmlsZSIsIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24o
TlVMTCwgLTEpKTsKKyAgRVhQRUNUX0VRKCJ1bmtub3duIGZpbGUiLCBGb3JtYXRDb21waWxlcklu
ZGVwZW5kZW50RmlsZUxvY2F0aW9uKG51bGxwdHIsIC0xKSk7CiB9CiAKLSNpZiBHVEVTVF9PU19M
SU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfUU5YIHx8IEdURVNUX09TX0ZVQ0hTSUEK
KyNpZiBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfUU5YIHx8IEdU
RVNUX09TX0ZVQ0hTSUEgfHwgXAorICAgIEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19G
UkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBcCisgICAgR1RFU1RfT1NfTkVUQlNE
IHx8IEdURVNUX09TX09QRU5CU0QKIHZvaWQqIFRocmVhZEZ1bmModm9pZCogZGF0YSkgewogICBp
bnRlcm5hbDo6TXV0ZXgqIG11dGV4ID0gc3RhdGljX2Nhc3Q8aW50ZXJuYWw6Ok11dGV4Kj4oZGF0
YSk7CiAgIG11dGV4LT5Mb2NrKCk7CiAgIG11dGV4LT5VbmxvY2soKTsKLSAgcmV0dXJuIE5VTEw7
CisgIHJldHVybiBudWxscHRyOwogfQogCiBURVNUKEdldFRocmVhZENvdW50VGVzdCwgUmV0dXJu
c0NvcnJlY3RWYWx1ZSkgewpAQCAtMzg2LDIxICszNzMsMTQgQEAgVEVTVChSZWdleEVuZ2luZVNl
bGVjdGlvblRlc3QsIFNlbGVjdHNDb3JyZWN0UmVnZXhFbmdpbmUpIHsKIAogI2lmIEdURVNUX1VT
RVNfUE9TSVhfUkUKIAotIyBpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgU3RyPgogY2xhc3MgUkVUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsKIAog
Ly8gRGVmaW5lcyBTdHJpbmdUeXBlcyBhcyB0aGUgbGlzdCBvZiBhbGwgc3RyaW5nIHR5cGVzIHRo
YXQgY2xhc3MgUkUKIC8vIHN1cHBvcnRzLgotdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczwKLSAgICA6
OnN0ZDo6c3RyaW5nLAotIyAgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLSAgICA6OnN0cmlu
ZywKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotICAgIGNvbnN0IGNoYXIq
PiBTdHJpbmdUeXBlczsKK3R5cGVkZWYgdGVzdGluZzo6VHlwZXM8IDo6c3RkOjpzdHJpbmcsIGNv
bnN0IGNoYXIqPiBTdHJpbmdUeXBlczsKIAotVFlQRURfVEVTVF9DQVNFKFJFVGVzdCwgU3RyaW5n
VHlwZXMpOworVFlQRURfVEVTVF9TVUlURShSRVRlc3QsIFN0cmluZ1R5cGVzKTsKIAogLy8gVGVz
dHMgUkUncyBpbXBsaWNpdCBjb25zdHJ1Y3RvcnMuCiBUWVBFRF9URVNUKFJFVGVzdCwgSW1wbGlj
aXRDb25zdHJ1Y3RvcldvcmtzKSB7CkBAIC00NDgsOCArNDI4LDYgQEAgVFlQRURfVEVTVChSRVRl
c3QsIFBhcnRpYWxNYXRjaFdvcmtzKSB7CiAgIEVYUEVDVF9GQUxTRShSRTo6UGFydGlhbE1hdGNo
KFR5cGVQYXJhbSgienphIiksIHJlKSk7CiB9CiAKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19UWVBF
RF9URVNUCi0KICNlbGlmIEdURVNUX1VTRVNfU0lNUExFX1JFCiAKIFRFU1QoSXNJblNldFRlc3Qs
IE51bENoYXJJc05vdEluQW55U2V0KSB7CkBAIC05NjUsNyArOTQzLDcgQEAgVEVTVChUaHJlYWRM
b2NhbFRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvckluaXRpYWxpemVzVG9EZWZhdWx0VmFsdWVzKSB7
CiAgIEVYUEVDVF9FUSgwLCB0MS5nZXQoKSk7CiAKICAgVGhyZWFkTG9jYWw8dm9pZCo+IHQyOwot
ICBFWFBFQ1RfVFJVRSh0Mi5nZXQoKSA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUodDIuZ2V0KCkg
PT0gbnVsbHB0cik7CiB9CiAKIFRFU1QoVGhyZWFkTG9jYWxUZXN0LCBTaW5nbGVQYXJhbUNvbnN0
cnVjdG9ySW5pdGlhbGl6ZXNUb1BhcmFtKSB7CkBAIC0xMDE1LDcgKzk5Myw3IEBAIHZvaWQgQWRk
VHdvKGludCogcGFyYW0pIHsgKnBhcmFtICs9IDI7IH0KIAogVEVTVChUaHJlYWRXaXRoUGFyYW1U
ZXN0LCBDb25zdHJ1Y3RvckV4ZWN1dGVzVGhyZWFkRnVuYykgewogICBpbnQgaSA9IDQwOwotICBU
aHJlYWRXaXRoUGFyYW08aW50Kj4gdGhyZWFkKCZBZGRUd28sICZpLCBOVUxMKTsKKyAgVGhyZWFk
V2l0aFBhcmFtPGludCo+IHRocmVhZCgmQWRkVHdvLCAmaSwgbnVsbHB0cik7CiAgIHRocmVhZC5K
b2luKCk7CiAgIEVYUEVDVF9FUSg0MiwgaSk7CiB9CkBAIC0xMDU1LDEwICsxMDMzLDEwIEBAIGNs
YXNzIEF0b21pY0NvdW50ZXJXaXRoTXV0ZXggewogICAgICAgLy8gZnVuY3Rpb25hbGl0eSBhcyB3
ZSBhcmUgdGVzdGluZyB0aGVtIGhlcmUuCiAgICAgICBwdGhyZWFkX211dGV4X3QgbWVtb3J5X2Jh
cnJpZXJfbXV0ZXg7CiAgICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAg
ICBwdGhyZWFkX211dGV4X2luaXQoJm1lbW9yeV9iYXJyaWVyX211dGV4LCBOVUxMKSk7CisgICAg
ICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZtZW1vcnlfYmFycmllcl9tdXRleCwgbnVsbHB0cikp
OwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9sb2NrKCZt
ZW1vcnlfYmFycmllcl9tdXRleCkpOwogCi0gICAgICBTbGVlcE1pbGxpc2Vjb25kcyhyYW5kb21f
LkdlbmVyYXRlKDMwKSk7CisgICAgICBTbGVlcE1pbGxpc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ+
KHJhbmRvbV8uR2VuZXJhdGUoMzApKSk7CiAKICAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NF
U1NfKHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtZW1vcnlfYmFycmllcl9tdXRleCkpOwogICAgICAg
R1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9kZXN0cm95KCZtZW1vcnlf
YmFycmllcl9tdXRleCkpOwpAQCAtMTA2Niw3ICsxMDQ0LDcgQEAgY2xhc3MgQXRvbWljQ291bnRl
cldpdGhNdXRleCB7CiAgICAgICAvLyBPbiBXaW5kb3dzLCBwZXJmb3JtaW5nIGFuIGludGVybG9j
a2VkIGFjY2VzcyBwdXRzIHVwIGEgbWVtb3J5IGJhcnJpZXIuCiAgICAgICB2b2xhdGlsZSBMT05H
IGR1bW15ID0gMDsKICAgICAgIDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsKLSAgICAg
IFNsZWVwTWlsbGlzZWNvbmRzKHJhbmRvbV8uR2VuZXJhdGUoMzApKTsKKyAgICAgIFNsZWVwTWls
bGlzZWNvbmRzKHN0YXRpY19jYXN0PGludD4ocmFuZG9tXy5HZW5lcmF0ZSgzMCkpKTsKICAgICAg
IDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsKICNlbHNlCiAjIGVycm9yICJNZW1vcnkg
YmFycmllciBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCkBAIC0xMDk1LDcgKzEw
NzMsNyBAQCBURVNUKE11dGV4VGVzdCwgT25seU9uZVRocmVhZENhbkxvY2tBdEFUaW1lKSB7CiAg
IHR5cGVkZWYgVGhyZWFkV2l0aFBhcmFtPHBhaXI8QXRvbWljQ291bnRlcldpdGhNdXRleCosIGlu
dD4gPiBUaHJlYWRUeXBlOwogICBjb25zdCBpbnQga0N5Y2xlQ291bnQgPSAyMDsKICAgY29uc3Qg
aW50IGtUaHJlYWRDb3VudCA9IDc7Ci0gIHNjb3BlZF9wdHI8VGhyZWFkVHlwZT4gY291bnRpbmdf
dGhyZWFkc1trVGhyZWFkQ291bnRdOworICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkVHlwZT4gY291
bnRpbmdfdGhyZWFkc1trVGhyZWFkQ291bnRdOwogICBOb3RpZmljYXRpb24gdGhyZWFkc19jYW5f
c3RhcnQ7CiAgIC8vIENyZWF0ZXMgYW5kIHJ1bnMga1RocmVhZENvdW50IHRocmVhZHMgdGhhdCBp
bmNyZW1lbnQgbG9ja2VkX2NvdW50ZXIKICAgLy8ga0N5Y2xlQ291bnQgdGltZXMgZWFjaC4KQEAg
LTExMTgsNyArMTA5Niw3IEBAIFRFU1QoTXV0ZXhUZXN0LCBPbmx5T25lVGhyZWFkQ2FuTG9ja0F0
QVRpbWUpIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiB2b2lkIFJ1bkZyb21UaHJlYWQodm9p
ZCAoZnVuYykoVCksIFQgcGFyYW0pIHsKLSAgVGhyZWFkV2l0aFBhcmFtPFQ+IHRocmVhZChmdW5j
LCBwYXJhbSwgTlVMTCk7CisgIFRocmVhZFdpdGhQYXJhbTxUPiB0aHJlYWQoZnVuYywgcGFyYW0s
IG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQogCkBAIC0xMjA4LDggKzExODYsNiBAQCBj
bGFzcyBEZXN0cnVjdG9yVHJhY2tlciB7CiAgICAgcmV0dXJuIERlc3RydWN0b3JDYWxsOjpMaXN0
KCkuc2l6ZSgpIC0gMTsKICAgfQogICBjb25zdCBzaXplX3QgaW5kZXhfOwotCi0gIEdURVNUX0RJ
U0FMTE9XX0FTU0lHTl8oRGVzdHJ1Y3RvclRyYWNrZXIpOwogfTsKIAogdHlwZWRlZiBUaHJlYWRM
b2NhbDxEZXN0cnVjdG9yVHJhY2tlcj4qIFRocmVhZFBhcmFtOwpAQCAtMTI1MCw4ICsxMjI2LDgg
QEAgVEVTVChUaHJlYWRMb2NhbFRlc3QsIERlc3Ryb3lzTWFuYWdlZE9iamVjdEF0VGhyZWFkRXhp
dCkgewogICAgIEFTU0VSVF9FUSgwVSwgRGVzdHJ1Y3RvckNhbGw6Okxpc3QoKS5zaXplKCkpOwog
CiAgICAgLy8gVGhpcyBjcmVhdGVzIGFub3RoZXIgRGVzdHJ1Y3RvclRyYWNrZXIgb2JqZWN0IGlu
IHRoZSBuZXcgdGhyZWFkLgotICAgIFRocmVhZFdpdGhQYXJhbTxUaHJlYWRQYXJhbT4gdGhyZWFk
KAotICAgICAgICAmQ2FsbFRocmVhZExvY2FsR2V0LCAmdGhyZWFkX2xvY2FsX3RyYWNrZXIsIE5V
TEwpOworICAgIFRocmVhZFdpdGhQYXJhbTxUaHJlYWRQYXJhbT4gdGhyZWFkKCZDYWxsVGhyZWFk
TG9jYWxHZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRocmVh
ZF9sb2NhbF90cmFja2VyLCBudWxscHRyKTsKICAgICB0aHJlYWQuSm9pbigpOwogCiAgICAgLy8g
VGhlIHRocmVhZCBoYXMgZXhpdGVkLCBhbmQgd2Ugc2hvdWxkIGhhdmUgYSBEZXN0cm95ZWRUcmFj
a2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cHJpbnRlcnMtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1wcmludGVycy10ZXN0LmNjCmluZGV4IGVhODM2OWQyN2U1MDQ3MGYxZWFiZTNhZjI4MDRkMzQ1
NDkzYWRlZDkuLjA0NjM1ZTU4YWUyM2E2YzRkZTY4YTE4N2E1NmM2MzIyYzM4MTVjZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmludGVycy10
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmlu
dGVycy10ZXN0LmNjCkBAIC0zMiwzNCArMzIsMjcgQEAKIC8vCiAvLyBUaGlzIGZpbGUgdGVzdHMg
dGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLgogCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNs
dWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+
CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+CisjaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPGxpc3Q+CiAjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgogI2lu
Y2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3QtcHJpbnRlcnMuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgogCi0jaWYgR1RFU1RfSEFT
X1VOT1JERVJFRF9NQVBfCi0jIGluY2x1ZGUgPHVub3JkZXJlZF9tYXA+ICAvLyBOT0xJTlQKLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBfCi0KLSNpZiBHVEVTVF9IQVNfVU5PUkRF
UkVEX1NFVF8KLSMgaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4gIC8vIE5PTElOVAotI2VuZGlmICAv
LyBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KLQotI2lmIEdURVNUX0hBU19TVERfRk9SV0FSRF9M
SVNUXwotIyBpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+IC8vIE5PTElOVAotI2VuZGlmICAvLyBHVEVT
VF9IQVNfU1REX0ZPUldBUkRfTElTVF8KLQogLy8gU29tZSB1c2VyLWRlZmluZWQgdHlwZXMgZm9y
IHRlc3RpbmcgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLgogCiAvLyBBbiBhbm9ueW1vdXMg
ZW51bSB0eXBlLgpAQCAtOTgsNiArOTEsMTggQEAgY2xhc3MgQmlnZ2VzdEludENvbnZlcnRpYmxl
IHsKICAgb3BlcmF0b3IgOjp0ZXN0aW5nOjppbnRlcm5hbDo6QmlnZ2VzdEludCgpIGNvbnN0IHsg
cmV0dXJuIDQyOyB9CiB9OwogCisvLyBBIHBhcmVudCBjbGFzcyB3aXRoIHR3byBjaGlsZCBjbGFz
c2VzLiBUaGUgcGFyZW50IGFuZCBvbmUgb2YgdGhlIGtpZHMgaGF2ZQorLy8gc3RyZWFtIG9wZXJh
dG9ycy4KK2NsYXNzIFBhcmVudENsYXNzIHt9OworY2xhc3MgQ2hpbGRDbGFzc1dpdGhTdHJlYW1P
cGVyYXRvciA6IHB1YmxpYyBQYXJlbnRDbGFzcyB7fTsKK2NsYXNzIENoaWxkQ2xhc3NXaXRob3V0
U3RyZWFtT3BlcmF0b3IgOiBwdWJsaWMgUGFyZW50Q2xhc3Mge307CitzdGF0aWMgdm9pZCBvcGVy
YXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFBhcmVudENsYXNzJikgeworICBvcyA8PCAi
UGFyZW50Q2xhc3MiOworfQorc3RhdGljIHZvaWQgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9z
LCBjb25zdCBDaGlsZENsYXNzV2l0aFN0cmVhbU9wZXJhdG9yJikgeworICBvcyA8PCAiQ2hpbGRD
bGFzc1dpdGhTdHJlYW1PcGVyYXRvciI7Cit9CisKIC8vIEEgdXNlci1kZWZpbmVkIHVucHJpbnRh
YmxlIGNsYXNzIHRlbXBsYXRlIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBjbGFzcyBVbnByaW50YWJsZVRlbXBsYXRlSW5HbG9iYWwgewpAQCAtMTg1LDYg
KzE5MCwxNyBAQCBpbmxpbmUgOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJl
YW0mIG9zLAogICByZXR1cm4gb3MgPDwgIlN0cmVhbWFibGVUZW1wbGF0ZUluRm9vOiAiIDw8IHgu
dmFsdWUoKTsKIH0KIAorLy8gQSB1c2VyLWRlZmluZWQgc3RyZWFtYWJsZSB0eXBlIGluIGEgdXNl
ciBuYW1lc3BhY2Ugd2hvc2Ugb3BlcmF0b3I8PCBpcworLy8gdGVtcGxhdGVkIG9uIHRoZSB0eXBl
IG9mIHRoZSBvdXRwdXQgc3RyZWFtLgorc3RydWN0IFRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbyB7
fTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIE91dHB1dFN0cmVhbT4KK091dHB1dFN0cmVhbSYgb3Bl
cmF0b3I8PChPdXRwdXRTdHJlYW0mIG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbyYgLyp0cyovKSB7CisgIG9zIDw8ICJUZW1wbGF0ZWRT
dHJlYW1hYmxlSW5Gb28iOworICByZXR1cm4gb3M7Cit9CisKIC8vIEEgdXNlci1kZWZpbmVkIHN0
cmVhbWFibGUgYnV0IHJlY3Vyc2l2bHktZGVmaW5lZCBjb250YWluZXIgdHlwZSBpbgogLy8gYSB1
c2VyIG5hbWVzcGFjZSwgaXQgbWltaWNzIHRoZXJlZm9yZSBzdGQ6OmZpbGVzeXN0ZW06OnBhdGgg
b3IKIC8vIGJvb3N0OjpmaWxlc3lzdGVtOjpwYXRoLgpAQCAtMTkyLDggKzIwOCwxNCBAQCBjbGFz
cyBQYXRoTGlrZSB7CiAgcHVibGljOgogICBzdHJ1Y3QgaXRlcmF0b3IgewogICAgIHR5cGVkZWYg
UGF0aExpa2UgdmFsdWVfdHlwZTsKKworICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7CisgICAg
UGF0aExpa2UmIG9wZXJhdG9yKigpOwogICB9OwogCisgIHVzaW5nIHZhbHVlX3R5cGUgPSBjaGFy
OworICB1c2luZyBjb25zdF9pdGVyYXRvciA9IGl0ZXJhdG9yOworCiAgIFBhdGhMaWtlKCkge30K
IAogICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCk7IH0KQEAgLTIw
Nyw2ICsyMjksMzMgQEAgY2xhc3MgUGF0aExpa2UgewogfSAgLy8gbmFtZXNwYWNlIGZvbwogCiBu
YW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citj
bGFzcyBXcmFwcGVyIHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFdyYXBwZXIoVCYmIHZhbHVlKSA6
IHZhbHVlXyhzdGQ6OmZvcndhcmQ8VD4odmFsdWUpKSB7fQorCisgIGNvbnN0IFQmIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gdmFsdWVfOyB9CisKKyBwcml2YXRlOgorICBUIHZhbHVlXzsKK307CisK
K30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2UgaW50ZXJuYWwgewordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFdyYXBwZXI8VD4+IHsKKyBwdWJsaWM6Cisg
IHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IFdyYXBwZXI8VD4mIHcsIDo6c3RkOjpvc3RyZWFtKiBv
cykgeworICAgICpvcyA8PCAiV3JhcHBlcigiOworICAgIFVuaXZlcnNhbFByaW50KHcudmFsdWUo
KSwgb3MpOworICAgICpvcyA8PCAnKSc7CisgIH0KK307Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKKworCiBuYW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNfdGVzdCB7CiAKIHVzaW5nIDo6c3RkOjpk
ZXF1ZTsKQEAgLTIyMiwxNSArMjcxLDEyIEBAIHVzaW5nIDo6dGVzdGluZzo6UHJpbnRUb1N0cmlu
ZzsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJl
TWVzc2FnZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkltcGxpY2l0Q2FzdF87CiB1c2lu
ZyA6OnRlc3Rpbmc6OmludGVybmFsOjpOYXRpdmVBcnJheTsKLXVzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWw6OlJFOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJl
ZmVyZW5jZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZ3M7CiB1c2luZyA6OnRl
c3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxQcmludDsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlVuaXZlcnNhbFByaW50ZXI7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJz
YWxUZXJzZVByaW50OwotI2lmIEdURVNUX0hBU19UUjFfVFVQTEUgfHwgR1RFU1RfSEFTX1NURF9U
VVBMRV8KIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlVuaXZlcnNhbFRlcnNlUHJpbnRUdXBs
ZUZpZWxkc1RvU3RyaW5nczsKLSNlbmRpZgogCiAvLyBQcmludHMgYSB2YWx1ZSB0byBhIHN0cmlu
ZyB1c2luZyB0aGUgdW5pdmVyc2FsIHZhbHVlIHByaW50ZXIuICBUaGlzCiAvLyBpcyBhIGhlbHBl
ciBmb3IgdGVzdGluZyBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCgpIGZvciB2YXJpb3VzIHR5
cGVzLgpAQCAtMzE1LDYgKzM2MSwyMCBAQCBURVNUKFByaW50Q2hhclRlc3QsIFVuc2lnbmVkQ2hh
cikgewogICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oJ2InKSkp
OwogfQogCitURVNUKFByaW50Q2hhclRlc3QsIENoYXIxNikgeworICBFWFBFQ1RfRVEoIlUrMDA0
MSIsIFByaW50KHUnQScpKTsKK30KKworVEVTVChQcmludENoYXJUZXN0LCBDaGFyMzIpIHsKKyAg
RVhQRUNUX0VRKCJVKzAwNDEiLCBQcmludChVJ0EnKSk7Cit9CisKKyNpZmRlZiBfX2NwcF9jaGFy
OF90CitURVNUKFByaW50Q2hhclRlc3QsIENoYXI4KSB7CisgIEVYUEVDVF9FUSgiVSswMDQxIiwg
UHJpbnQodTgnQScpKTsKK30KKyNlbmRpZgorCiAvLyBUZXN0cyBwcmludGluZyBvdGhlciBzaW1w
bGUsIGJ1aWx0LWluIHR5cGVzLgogCiAvLyBib29sLgpAQCAtMzQ1LDIzICs0MDUsMzkgQEAgVEVT
VChQcmludEJ1aWx0SW5UeXBlVGVzdCwgV2NoYXJfdCkgewogICBFWFBFQ1RfRVEoIkwnXFx4Qzc0
RCcgKDUxMDIxKSIsIFByaW50KHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4Qzc0RCkpKTsKIH0KIAot
Ly8gVGVzdCB0aGF0IEludDY0IHByb3ZpZGVzIG1vcmUgc3RvcmFnZSB0aGFuIHdjaGFyX3QuCisv
LyBUZXN0IHRoYXQgaW50NjRfdCBwcm92aWRlcyBtb3JlIHN0b3JhZ2UgdGhhbiB3Y2hhcl90Lgog
VEVTVChQcmludFR5cGVTaXplVGVzdCwgV2NoYXJfdCkgewotICBFWFBFQ1RfTFQoc2l6ZW9mKHdj
aGFyX3QpLCBzaXplb2YodGVzdGluZzo6aW50ZXJuYWw6OkludDY0KSk7CisgIEVYUEVDVF9MVChz
aXplb2Yod2NoYXJfdCksIHNpemVvZihpbnQ2NF90KSk7CiB9CiAKIC8vIFZhcmlvdXMgaW50ZWdl
ciB0eXBlcy4KIFRFU1QoUHJpbnRCdWlsdEluVHlwZVRlc3QsIEludGVnZXIpIHsKICAgRVhQRUNU
X0VRKCInXFx4RkYnICgyNTUpIiwgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oMjU1
KSkpOyAgLy8gdWludDgKICAgRVhQRUNUX0VRKCInXFx4ODAnICgtMTI4KSIsIFByaW50KHN0YXRp
Y19jYXN0PHNpZ25lZCBjaGFyPigtMTI4KSkpOyAgLy8gaW50OAotICBFWFBFQ1RfRVEoIjY1NTM1
IiwgUHJpbnQoVVNIUlRfTUFYKSk7ICAvLyB1aW50MTYKLSAgRVhQRUNUX0VRKCItMzI3NjgiLCBQ
cmludChTSFJUX01JTikpOyAgLy8gaW50MTYKLSAgRVhQRUNUX0VRKCI0Mjk0OTY3Mjk1IiwgUHJp
bnQoVUlOVF9NQVgpKTsgIC8vIHVpbnQzMgotICBFWFBFQ1RfRVEoIi0yMTQ3NDgzNjQ4IiwgUHJp
bnQoSU5UX01JTikpOyAgLy8gaW50MzIKKyAgRVhQRUNUX0VRKCI2NTUzNSIsIFByaW50KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSkpOyAgLy8gdWludDE2CisgIEVYUEVDVF9F
USgiLTMyNzY4IiwgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWluKCkpKTsg
IC8vIGludDE2CisgIEVYUEVDVF9FUSgiNDI5NDk2NzI5NSIsCisgICAgICAgICAgICBQcmludChz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpKTsgIC8vIHVpbnQzMgorICBFWFBF
Q1RfRVEoIi0yMTQ3NDgzNjQ4IiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpKSk7ICAvLyBpbnQzMgogICBFWFBFQ1RfRVEoIjE4NDQ2NzQ0MDcz
NzA5NTUxNjE1IiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHRlc3Rpbmc6OmludGVy
bmFsOjpVSW50NjQ+KC0xKSkpOyAgLy8gdWludDY0CisgICAgICAgICAgICBQcmludChzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpKTsgIC8vIHVpbnQ2NAogICBFWFBFQ1RfRVEo
Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHRl
c3Rpbmc6OmludGVybmFsOjpJbnQ2ND4oMSkgPDwgNjMpKTsgIC8vIGludDY0CisgICAgICAgICAg
ICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSkpOyAgLy8gaW50NjQK
KyNpZmRlZiBfX2NwcF9jaGFyOF90CisgIEVYUEVDVF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAg
IFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjhfdD46Om1pbigpKSk7ICAvLyBjaGFyOF90
CisgIEVYUEVDVF9FUSgiVSswMEZGIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19s
aW1pdHM8Y2hhcjhfdD46Om1heCgpKSk7ICAvLyBjaGFyOF90CisjZW5kaWYKKyAgRVhQRUNUX0VR
KCJVKzAwMDAiLAorICAgICAgICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxjaGFyMTZf
dD46Om1pbigpKSk7ICAvLyBjaGFyMTZfdAorICBFWFBFQ1RfRVEoIlUrRkZGRiIsCisgICAgICAg
ICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXIxNl90Pjo6bWF4KCkpKTsgIC8vIGNo
YXIxNl90CisgIEVYUEVDVF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVt
ZXJpY19saW1pdHM8Y2hhcjMyX3Q+OjptaW4oKSkpOyAgLy8gY2hhcjMyX3QKKyAgRVhQRUNUX0VR
KCJVK0ZGRkZGRkZGIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hh
cjMyX3Q+OjptYXgoKSkpOyAgLy8gY2hhcjMyX3QKIH0KIAogLy8gU2l6ZSB0eXBlcy4KQEAgLTQw
NSw3ICs0ODEsNyBAQCBURVNUKFByaW50Q1N0cmluZ1Rlc3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5V
TEwgQyBzdHJpbmcuCiBURVNUKFByaW50Q1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3QgY2hh
ciogcCA9IE5VTEw7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5V
TEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQxNyw2ICs0OTMsOTIgQEAgVEVTVChQcmludENTdHJp
bmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKICAgICAgICAgICAgIFByaW50KHApKTsKIH0KIAor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIGNvbnN0IGNoYXI4X3QqLgorVEVTVChQcmludFU4U3Ry
aW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hhcjhfdCogcCA9IHU4IueVjCI7CisgIEVYUEVD
VF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHU4XCJcXHhFN1xceDk1XFx4OENc
IiIsIFByaW50KHApKTsKK30KKworLy8gY2hhcjhfdCouCitURVNUKFByaW50VThTdHJpbmdUZXN0
LCBOb25Db25zdCkgeworICBjaGFyOF90IHBbXSA9IHU4IuS4liI7CisgIEVYUEVDVF9FUShQcmlu
dFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHU4XCJcXHhFNFxceEI4XFx4OTZcIiIsCisgICAg
ICAgICAgICBQcmludChzdGF0aWNfY2FzdDxjaGFyOF90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1
OCBzdHJpbmcuCitURVNUKFByaW50VThTdHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXI4
X3QqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8v
IFRlc3RzIHRoYXQgdTggc3RyaW5ncyBhcmUgZXNjYXBlZCBwcm9wZXJseS4KK1RFU1QoUHJpbnRV
OFN0cmluZ1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgeworICBjb25zdCBjaGFyOF90KiBwID0gdTgi
J1wiP1xcXGFcYlxmXG5cclx0XHZceDdGXHhGRiBoZWxsbyDkuJbnlYwiOworICBFWFBFQ1RfRVEo
UHJpbnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAgICAiIHBvaW50aW5nIHRvIHU4XCInXFxc
Ij9cXFxcXFxhXFxiXFxmXFxuXFxyXFx0XFx2XFx4N0ZcXHhGRiAiCisgICAgICAgICAgICAgICAg
ImhlbGxvIFxceEU0XFx4QjhcXHg5NlxceEU3XFx4OTVcXHg4Q1wiIiwKKyAgICAgICAgICAgIFBy
aW50KHApKTsKK30KKyNlbmRpZgorCisvLyBjb25zdCBjaGFyMTZfdCouCitURVNUKFByaW50VTE2
U3RyaW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hhcjE2X3QqIHAgPSB1IueVjCI7CisgIEVY
UEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHVcIlxceDc1NENcIiIsIFBy
aW50KHApKTsKK30KKworLy8gY2hhcjE2X3QqLgorVEVTVChQcmludFUxNlN0cmluZ1Rlc3QsIE5v
bkNvbnN0KSB7CisgIGNoYXIxNl90IHBbXSA9IHUi5LiWIjsKKyAgRVhQRUNUX0VRKFByaW50UG9p
bnRlcihwKSArICIgcG9pbnRpbmcgdG8gdVwiXFx4NEUxNlwiIiwKKyAgICAgICAgICAgIFByaW50
KHN0YXRpY19jYXN0PGNoYXIxNl90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1MTYgc3RyaW5nLgor
VEVTVChQcmludFUxNlN0cmluZ1Rlc3QsIE51bGwpIHsKKyAgY29uc3QgY2hhcjE2X3QqIHAgPSBu
dWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRlc3RzIHRo
YXQgdTE2IHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFByaW50VTE2U3RyaW5n
VGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CisgIGNvbnN0IGNoYXIxNl90KiBwID0gdSInXCI/XFxc
YVxiXGZcblxyXHRcdlx4N0ZceEZGIGhlbGxvIOS4lueVjCI7CisgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIocCkgKworICAgICAgICAgICAgICAgICIgcG9pbnRpbmcgdG8gdVwiJ1xcXCI/XFxcXFxc
YVxcYlxcZlxcblxcclxcdFxcdlxceDdGXFx4RkYgIgorICAgICAgICAgICAgICAgICJoZWxsbyBc
XHg0RTE2XFx4NzU0Q1wiIiwKKyAgICAgICAgICAgIFByaW50KHApKTsKK30KKworLy8gY29uc3Qg
Y2hhcjMyX3QqLgorVEVTVChQcmludFUzMlN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNo
YXIzMl90KiBwID0gVSLwn5e677iPIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArICIg
cG9pbnRpbmcgdG8gVVwiXFx4MUY1RkFcXHhGRTBGXCIiLCBQcmludChwKSk7Cit9CisKKy8vIGNo
YXIzMl90Ki4KK1RFU1QoUHJpbnRVMzJTdHJpbmdUZXN0LCBOb25Db25zdCkgeworICBjaGFyMzJf
dCBwW10gPSBVIvCfjIwiOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGlu
ZyB0byBVXCJcXHgxRjMwQ1wiIiwKKyAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PGNoYXIz
Ml90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1MzIgc3RyaW5nLgorVEVTVChQcmludFUzMlN0cmlu
Z1Rlc3QsIE51bGwpIHsKKyAgY29uc3QgY2hhcjMyX3QqIHAgPSBudWxscHRyOworICBFWFBFQ1Rf
RVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgdTMyIHN0cmluZ3MgYXJl
IGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFByaW50VTMyU3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Bl
cmx5KSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gVSInXCI/XFxcYVxiXGZcblxyXHRcdlx4N0Zc
eEZGIGhlbGxvIPCfl7rvuI8iOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsKKyAgICAg
ICAgICAgICAgICAiIHBvaW50aW5nIHRvIFVcIidcXFwiP1xcXFxcXGFcXGJcXGZcXG5cXHJcXHRc
XHZcXHg3RlxceEZGICIKKyAgICAgICAgICAgICAgICAiaGVsbG8gXFx4MUY1RkFcXHhGRTBGXCIi
LAorICAgICAgICAgICAgUHJpbnQocCkpOworfQorCiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBj
b25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25lZCBz
aG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQgY2Fz
ZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50ZWQg
YXMgd2lkZSBzdHJpbmdzLApAQCAtNDQwLDcgKzYwMiw3IEBAIFRFU1QoUHJpbnRXaWRlQ1N0cmlu
Z1Rlc3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5VTEwgd2lkZSBDIHN0cmluZy4KIFRFU1QoUHJpbnRX
aWRlQ1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3Qgd2NoYXJfdCogcCA9IE5VTEw7CisgIGNv
bnN0IHdjaGFyX3QqIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7
CiB9CiAKQEAgLTQ2MCw3ICs2MjIsNyBAQCBURVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBFc2Nh
cGVzUHJvcGVybHkpIHsKIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIFNpZ25lZENoYXIpIHsK
ICAgc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHNpZ25lZCBjaGFyKj4oMHgxMjM0
KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsK
KyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAt
NDY4LDcgKzYzMCw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIFNpZ25lZENoYXIpIHsK
IFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0U2lnbmVkQ2hhcikgewogICBzaWduZWQg
Y2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2lnbmVkIGNoYXIqPigweDEyMzQpOwogICBFWFBF
Q1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVs
bHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00NzYsNyArNjM4
LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgQ29uc3RTaWduZWRDaGFyKSB7CiBURVNU
KFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNpZ25lZENoYXIpIHsKICAgdW5zaWduZWQgY2hhciog
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KDB4MTIzNCk7CiAgIEVYUEVDVF9F
UShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7CisgIHAgPSBudWxscHRy
OwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQ4NCw3ICs2NDYsNyBA
QCBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNpZ25lZENoYXIpIHsKIFRFU1QoUHJpbnRD
aGFyUG9pbnRlclRlc3QsIENvbnN0VW5zaWduZWRDaGFyKSB7CiAgIGNvbnN0IHVuc2lnbmVkIGNo
YXIqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigweDEyMzQpOwog
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00OTQs
NyArNjU2LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgQ29uc3RVbnNpZ25lZENoYXIp
IHsKIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRlc3QsIEJvb2wpIHsKICAgYm9vbCog
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KDB4QUJDRCk7CiAgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7CisgIHAgPSBudWxscHRyOwogICBFWFBF
Q1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTUwMiw3ICs2NjQsNyBAQCBURVNUKFBy
aW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29sKSB7CiBURVNUKFByaW50UG9pbnRlclRv
QnVpbHRJblR5cGVUZXN0LCBWb2lkKSB7CiAgIHZvaWQqIHAgPSByZWludGVycHJldF9jYXN0PHZv
aWQqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0g
IHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkp
OwogfQogCkBAIC01MTAsNyArNjcyLDcgQEAgVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBl
VGVzdCwgVm9pZCkgewogVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgQ29uc3RW
b2lkKSB7CiAgIGNvbnN0IHZvaWQqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigw
eEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBO
VUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQog
CkBAIC01MTgsNyArNjgwLDcgQEAgVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwg
Q29uc3RWb2lkKSB7CiBURVNUKFByaW50UG9pbnRlclRvUG9pbnRlclRlc3QsIEludFBvaW50ZXJQ
b2ludGVyKSB7CiAgIGludCoqIHAgPSByZWludGVycHJldF9jYXN0PGludCoqPigweEFCQ0QpOwog
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC02Mjcs
MjEgKzc4OSw2NiBAQCBURVNUKFByaW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoTm9UZXJtaW5h
dGluZ051bCkgewogICBFWFBFQ1RfRVEoIlwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcgTlVMKSIs
IFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQogCi0vLyBjb25zdCBjaGFyIGFycmF5IHdpdGggdGVy
bWluYXRpbmcgTlVMLgotVEVTVChQcmludEFycmF5VGVzdCwgQ29uc3RDaGFyQXJyYXlXaXRoVGVy
bWluYXRpbmdOdWwpIHsKKy8vIGNoYXIgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitURVNU
KFByaW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsKICAgY29uc3Qg
Y2hhciBhW10gPSAiXDBIaSI7CiAgIEVYUEVDVF9FUSgiXCJcXDBIaVwiIiwgUHJpbnRBcnJheUhl
bHBlcihhKSk7CiB9CiAKLS8vIGNvbnN0IHdjaGFyX3QgYXJyYXkgd2l0aG91dCB0ZXJtaW5hdGlu
ZyBOVUwuCisjaWZkZWYgX19jcHBfY2hhcjhfdAorLy8gY2hhcl90IGFycmF5IHdpdGhvdXQgdGVy
bWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjhBcnJheVdpdGhOb1Rlcm1p
bmF0aW5nTnVsKSB7CisgIC8vIEFycmF5IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFu
ZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCisgIGNvbnN0IGNoYXI4X3QgYVtdID0ge3U4J0gnLCB1
OCdcMCcsIHU4J2knfTsKKyAgRVhQRUNUX0VRKCJ1OFwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcg
TlVMKSIsIFByaW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyBjaGFyOF90IGFycmF5IHdpdGgg
dGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjhBcnJheVdpdGhUZXJt
aW5hdGluZ051bCkgeworICBjb25zdCBjaGFyOF90IGFbXSA9IHU4Ilww5LiW55WMIjsKKyAgRVhQ
RUNUX0VRKAorICAgICAgInU4XCJcXDBcXHhFNFxceEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIs
CisgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKyNlbmRpZgorCisvLyBjb25zdCBjaGFy
MTZfdCBhcnJheSB3aXRob3V0IHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3Qs
IENoYXIxNkFycmF5V2l0aE5vVGVybWluYXRpbmdOdWwpIHsKKyAgLy8gQXJyYXkgYSBjb250YWlu
cyAnXDAnIGluIHRoZSBtaWRkbGUgYW5kIGRvZXNuJ3QgZW5kIHdpdGggJ1wwJy4KKyAgY29uc3Qg
Y2hhcjE2X3QgYVtdID0ge3Un44GTJywgdSdcMCcsIHUn44KTJywgdSfjgasnLCB1J+OBoScsIHUn
44GvJ307CisgIEVYUEVDVF9FUSgidVwiXFx4MzA1M1xcMFxceDMwOTNcXHgzMDZCXFx4MzA2MVxc
eDMwNkZcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsCisgICAgICAgICAgICBQcmludEFycmF5SGVs
cGVyKGEpKTsKK30KKworLy8gY2hhcjE2X3QgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitU
RVNUKFByaW50QXJyYXlUZXN0LCBDaGFyMTZBcnJheVdpdGhUZXJtaW5hdGluZ051bCkgeworICBj
b25zdCBjaGFyMTZfdCBhW10gPSB1Ilww44GT44KT44Gr44Gh44GvIjsKKyAgRVhQRUNUX0VRKCJ1
XCJcXDBcXHgzMDUzXFx4MzA5M1xceDMwNkJcXHgzMDYxXFx4MzA2RlwiIiwgUHJpbnRBcnJheUhl
bHBlcihhKSk7Cit9CisKKy8vIGNoYXIzMl90IGFycmF5IHdpdGhvdXQgdGVybWluYXRpbmcgTlVM
LgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjMyQXJyYXlXaXRoTm9UZXJtaW5hdGluZ051bCkg
eworICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhlIG1pZGRsZSBhbmQgZG9lc24ndCBl
bmQgd2l0aCAnXDAnLgorICBjb25zdCBjaGFyMzJfdCBhW10gPSB7VSfwn5GLJywgVSdcMCcsIFUn
8J+MjCd9OworICBFWFBFQ1RfRVEoIlVcIlxceDFGNDRCXFwwXFx4MUYzMENcIiAobm8gdGVybWlu
YXRpbmcgTlVMKSIsCisgICAgICAgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8g
Y2hhcjMyX3QgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50QXJyYXlUZXN0
LCBDaGFyMzJBcnJheVdpdGhUZXJtaW5hdGluZ051bCkgeworICBjb25zdCBjaGFyMzJfdCBhW10g
PSBVIlww8J+Ri/CfjIwiOworICBFWFBFQ1RfRVEoIlVcIlxcMFxceDFGNDRCXFx4MUYzMENcIiIs
IFByaW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyB3Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVy
bWluYXRpbmcgTlVMLgogVEVTVChQcmludEFycmF5VGVzdCwgV0NoYXJBcnJheVdpdGhOb1Rlcm1p
bmF0aW5nTnVsKSB7CiAgIC8vIEFycmF5IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFu
ZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCi0gIGNvbnN0IHdjaGFyX3QgYVtdID0geyBMJ0gnLCBM
J1wwJywgTCdpJyB9OworICBjb25zdCB3Y2hhcl90IGFbXSA9IHtMJ0gnLCBMJ1wwJywgTCdpJ307
CiAgIEVYUEVDVF9FUSgiTFwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsIFByaW50QXJy
YXlIZWxwZXIoYSkpOwogfQogCiAvLyB3Y2hhcl90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVM
LgotVEVTVChQcmludEFycmF5VGVzdCwgV0NvbnN0Q2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVs
KSB7CitURVNUKFByaW50QXJyYXlUZXN0LCBXQ2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7
CiAgIGNvbnN0IHdjaGFyX3QgYVtdID0gTCJcMEhpIjsKICAgRVhQRUNUX0VRKCJMXCJcXDBIaVwi
IiwgUHJpbnRBcnJheUhlbHBlcihhKSk7CiB9CkBAIC02NjEsMTYgKzg2OCw2IEBAIFRFU1QoUHJp
bnRBcnJheVRlc3QsIEJpZ0FycmF5KSB7CiAKIC8vIFRlc3RzIHByaW50aW5nIDo6c3RyaW5nIGFu
ZCA6OnN0ZDo6c3RyaW5nLgogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLS8vIDo6c3Ry
aW5nLgotVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmluZ0luR2xvYmFsTmFtZXNwYWNlKSB7Ci0g
IGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxuXDBcclx0XHZceDdGXHhGRiBhIjsKLSAg
Y29uc3QgOjpzdHJpbmcgc3RyKHMsIHNpemVvZihzKSk7Ci0gIEVYUEVDVF9FUSgiXCInXFxcIj9c
XFxcXFxhXFxiXFxmXFxuXFwwXFxyXFx0XFx2XFx4N0ZcXHhGRiBhXFwwXCIiLAotICAgICAgICAg
ICAgUHJpbnQoc3RyKSk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0K
IC8vIDo6c3RkOjpzdHJpbmcuCiBURVNUKFByaW50U3RyaW5nVGVzdCwgU3RyaW5nSW5TdGROYW1l
c3BhY2UpIHsKICAgY29uc3QgY2hhciBzW10gPSAiJ1wiP1xcXGFcYlxmXG5cMFxyXHRcdlx4N0Zc
eEZGIGEiOwpAQCAtNjkzLDE5ICs4OTAsNyBAQCBURVNUKFByaW50U3RyaW5nVGVzdCwgU3RyaW5n
QW1iaWd1b3VzSGV4KSB7CiAgIEVYUEVDVF9FUSgiXCIhXFx4NS0hXCIiLCBQcmludCg6OnN0ZDo6
c3RyaW5nKCIhXHg1LSEiKSkpOwogfQogCi0vLyBUZXN0cyBwcmludGluZyA6OndzdHJpbmcgYW5k
IDo6c3RkOjp3c3RyaW5nLgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0vLyA6Ondz
dHJpbmcuCi1URVNUKFByaW50V2lkZVN0cmluZ1Rlc3QsIFN0cmluZ0luR2xvYmFsTmFtZXNwYWNl
KSB7Ci0gIGNvbnN0IHdjaGFyX3Qgc1tdID0gTCInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHhEM1x4
NTc2XHg4RDNceEM3NEQgYSI7Ci0gIGNvbnN0IDo6d3N0cmluZyBzdHIocywgc2l6ZW9mKHMpL3Np
emVvZih3Y2hhcl90KSk7Ci0gIEVYUEVDVF9FUSgiTFwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxc
MFxcclxcdFxcdiIKLSAgICAgICAgICAgICJcXHhEM1xceDU3NlxceDhEM1xceEM3NEQgYVxcMFwi
IiwKLSAgICAgICAgICAgIFByaW50KHN0cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xP
QkFMX1dTVFJJTkcKLQorLy8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OndzdHJpbmcuCiAjaWYgR1RF
U1RfSEFTX1NURF9XU1RSSU5HCiAvLyA6OnN0ZDo6d3N0cmluZy4KIFRFU1QoUHJpbnRXaWRlU3Ry
aW5nVGVzdCwgU3RyaW5nSW5TdGROYW1lc3BhY2UpIHsKQEAgLTcyNyw2ICs5MTIsMjYgQEAgVEVT
VChQcmludFdpZGVTdHJpbmdUZXN0LCBTdHJpbmdBbWJpZ3VvdXNIZXgpIHsKIH0KICNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CitURVNUKFBy
aW50U3RyaW5nVGVzdCwgVThTdHJpbmcpIHsKKyAgc3RkOjp1OHN0cmluZyBzdHIgPSB1OCJIZWxs
bywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEg
Y29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisgIEVYUEVDVF9FUSgidThcIkhlbGxvLCBcXHhFNFxc
eEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsIFByaW50KHN0cikpOworfQorI2VuZGlmCisKK1RF
U1QoUHJpbnRTdHJpbmdUZXN0LCBVMTZTdHJpbmcpIHsKKyAgc3RkOjp1MTZzdHJpbmcgc3RyID0g
dSJIZWxsbywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBF
Q1RfRVEgY29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisgIEVYUEVDVF9FUSgidVwiSGVsbG8sIFxc
eDRFMTZcXHg3NTRDXCIiLCBQcmludChzdHIpKTsKK30KKworVEVTVChQcmludFN0cmluZ1Rlc3Qs
IFUzMlN0cmluZykgeworICBzdGQ6OnUzMnN0cmluZyBzdHIgPSBVIkhlbGxvLCDwn5e677iPIjsK
KyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEgY29tcGlsZXMgd2l0
aCB0aGlzIHR5cGUKKyAgRVhQRUNUX0VRKCJVXCJIZWxsbywgXFx4MUY1RkFcXHhGRTBGXCIiLCBQ
cmludChzdHIpKTsKK30KKwogLy8gVGVzdHMgcHJpbnRpbmcgdHlwZXMgdGhhdCBzdXBwb3J0IGdl
bmVyaWMgc3RyZWFtaW5nIChpLmUuIHN0cmVhbWluZwogLy8gdG8gc3RkOjpiYXNpY19vc3RyZWFt
PENoYXIsIENoYXJUcmFpdHM+IGZvciBhbnkgdmFsaWQgQ2hhciBhbmQKIC8vIENoYXJUcmFpdHMg
dHlwZXMpLgpAQCAtNzg1LDIyICs5OTAsMjIgQEAgVEVTVChQcmludFR5cGVXaXRoR2VuZXJpY1N0
cmVhbWluZ1Rlc3QsIFR5cGVJbXBsaWNpdGx5Q29udmVydGlibGUpIHsKICAgRVhQRUNUX0VRKCJB
bGxvd3NHZW5lcmljU3RyZWFtaW5nQW5kSW1wbGljaXRDb252ZXJzaW9uVGVtcGxhdGUiLCBQcmlu
dChhKSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0lOVEVSTkFMX0hBU19T
VFJJTkdfVklFVwogCi0vLyBUZXN0cyBwcmludGluZyA6OmFic2w6OnN0cmluZ192aWV3LgorLy8g
VGVzdHMgcHJpbnRpbmcgaW50ZXJuYWw6OlN0cmluZ1ZpZXcuCiAKIFRFU1QoUHJpbnRTdHJpbmdW
aWV3VGVzdCwgU2ltcGxlU3RyaW5nVmlldykgewotICBjb25zdCA6OmFic2w6OnN0cmluZ192aWV3
IHNwID0gIkhlbGxvIjsKKyAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3AgPSAiSGVsbG8i
OwogICBFWFBFQ1RfRVEoIlwiSGVsbG9cIiIsIFByaW50KHNwKSk7CiB9CiAKIFRFU1QoUHJpbnRT
dHJpbmdWaWV3VGVzdCwgVW5wcmludGFibGVDaGFyYWN0ZXJzKSB7CiAgIGNvbnN0IGNoYXIgc3Ry
W10gPSAiTlVMIChcMCkgYW5kIFxyXHQiOwotICBjb25zdCA6OmFic2w6OnN0cmluZ192aWV3IHNw
KHN0ciwgc2l6ZW9mKHN0cikgLSAxKTsKKyAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3Ao
c3RyLCBzaXplb2Yoc3RyKSAtIDEpOwogICBFWFBFQ1RfRVEoIlwiTlVMIChcXDApIGFuZCBcXHJc
XHRcIiIsIFByaW50KHNwKSk7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNlbmRp
ZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCiAKIC8vIFRlc3RzIHByaW50aW5n
IFNUTCBjb250YWluZXJzLgogCkBAIC04MTYsNyArMTAyMSw2IEBAIFRFU1QoUHJpbnRTdGxDb250
YWluZXJUZXN0LCBOb25FbXB0eURlcXVlKSB7CiAgIEVYUEVDVF9FUSgieyAxLCAzIH0iLCBQcmlu
dChub25fZW1wdHkpKTsKIH0KIAotI2lmIEdURVNUX0hBU19VTk9SREVSRURfTUFQXwogCiBURVNU
KFByaW50U3RsQ29udGFpbmVyVGVzdCwgT25lRWxlbWVudEhhc2hNYXApIHsKICAgOjpzdGQ6OnVu
b3JkZXJlZF9tYXA8aW50LCBjaGFyPiBtYXAxOwpAQCAtODM2LDkgKzEwNDAsNyBAQCBURVNUKFBy
aW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpTWFwKSB7CiAgICAgICAgICAgICAgICAgICA8
PCAiIHdoZXJlIFByaW50KG1hcDEpIHJldHVybnMgXCIiIDw8IHJlc3VsdCA8PCAiXCIuIjsKIH0K
IAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8KIAotI2lmIEdURVNUX0hBU19V
Tk9SREVSRURfU0VUXwogCiBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaFNldCkgewog
ICA6OnN0ZDo6dW5vcmRlcmVkX3NldDxpbnQ+IHNldDE7CkBAIC04NzUsNyArMTA3Nyw2IEBAIFRF
U1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBIYXNoTXVsdGlTZXQpIHsKICAgRVhQRUNUX1RSVUUo
c3RkOjplcXVhbChhLCBhICsga1NpemUsIG51bWJlcnMuYmVnaW4oKSkpOwogfQogCi0jZW5kaWYg
IC8vICBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KIAogVEVTVChQcmludFN0bENvbnRhaW5lclRl
c3QsIExpc3QpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgYVtdID0geyJoZWxsbyIsICJ3b3JsZCJ9
OwpAQCAtOTE3LDE0ICsxMTE4LDEyIEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBNdWx0
aVNldCkgewogICBFWFBFQ1RfRVEoInsgMSwgMSwgMSwgMiwgNSB9IiwgUHJpbnQoc2V0MSkpOwog
fQogCi0jaWYgR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCiAKIFRFU1QoUHJpbnRTdGxDb250
YWluZXJUZXN0LCBTaW5nbHlMaW5rZWRMaXN0KSB7CiAgIGludCBhW10gPSB7IDksIDIsIDggfTsK
ICAgY29uc3Qgc3RkOjpmb3J3YXJkX2xpc3Q8aW50PiBpbnRzKGEsIGEgKyAzKTsKICAgRVhQRUNU
X0VRKCJ7IDksIDIsIDggfSIsIFByaW50KGludHMpKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X1NURF9GT1JXQVJEX0xJU1RfCiAKIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBQYWlyKSB7
CiAgIHBhaXI8Y29uc3QgYm9vbCwgaW50PiBwKHRydWUsIDUpOwpAQCAtOTkxLDY3ICsxMTkwLDYg
QEAgVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIENvbnN0SXRlcmF0b3IpIHsKICAgRVhQRUNU
X0VRKCIxLWJ5dGUgb2JqZWN0IDwwMD4iLCBQcmludChpdCkpOwogfQogCi0jaWYgR1RFU1RfSEFT
X1RSMV9UVVBMRQotLy8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OnRyMTo6dHVwbGVzLgotCi0vLyBU
dXBsZXMgb2YgdmFyaW91cyBhcml0aWVzLgotVEVTVChQcmludFRyMVR1cGxlVGVzdCwgVmFyaW91
c1NpemVzKSB7Ci0gIDo6c3RkOjp0cjE6OnR1cGxlPD4gdDA7Ci0gIEVYUEVDVF9FUSgiKCkiLCBQ
cmludCh0MCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGludD4gdDEoNSk7Ci0gIEVYUEVDVF9F
USgiKDUpIiwgUHJpbnQodDEpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxjaGFyLCBib29sPiB0
MignYScsIHRydWUpOwotICBFWFBFQ1RfRVEoIignYScgKDk3LCAweDYxKSwgdHJ1ZSkiLCBQcmlu
dCh0MikpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50PiB0MyhmYWxzZSwg
MiwgMyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzKSIsIFByaW50KHQzKSk7Ci0KLSAgOjpz
dGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludD4gdDQoZmFsc2UsIDIsIDMsIDQpOwot
ICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCkiLCBQcmludCh0NCkpOwotCi0gIDo6c3RkOjp0
cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2w+IHQ1KGZhbHNlLCAyLCAzLCA0LCB0
cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUpIiwgUHJpbnQodDUpKTsK
LQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQ+IHQ2
KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQs
IGludCwgaW50LCBib29sLCBpbnQsIGludD4gdDcoCi0gICAgICBmYWxzZSwgMiwgMywgNCwgdHJ1
ZSwgNiwgNyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3KSIsIFBy
aW50KHQ3KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9v
bCwgaW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcs
IHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSki
LCBQcmludCh0OCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQs
IGJvb2wsIGludCwgaW50LCBib29sLCBpbnQ+IHQ5KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRy
dWUsIDYsIDcsIHRydWUsIDkpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwg
NiwgNywgdHJ1ZSwgOSkiLCBQcmludCh0OSkpOwotCi0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9
ICI4IjsKLSAgLy8gVkMrKyAyMDEwJ3MgaW1wbGVtZW50YXRpb24gb2YgdHVwbGUgb2YgQysrMHgg
aXMgZGVmaWNpZW50LCByZXF1aXJpbmcKLSAgLy8gYW4gZXhwbGljaXQgdHlwZSBjYXN0IG9mIE5V
TEwgdG8gYmUgdXNlZC4KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgY2hhciwgc2hvcnQsIHRl
c3Rpbmc6OmludGVybmFsOjpJbnQzMiwgIC8vIE5PTElOVAotICAgICAgICAgICAgICAgICAgICB0
ZXN0aW5nOjppbnRlcm5hbDo6SW50NjQsIGZsb2F0LCBkb3VibGUsIGNvbnN0IGNoYXIqLCB2b2lk
KiwKLSAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc+Ci0gICAgICB0MTAoZmFsc2UsICdh
Jywgc3RhdGljX2Nhc3Q8c2hvcnQ+KDMpLCA0LCA1LCAxLjVGLCAtMi41LCBzdHIsICAvLyBOT0xJ
TlQKLSAgICAgICAgICBJbXBsaWNpdENhc3RfPHZvaWQqPihOVUxMKSwgIjEwIik7Ci0gIEVYUEVD
VF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywgNCwgNSwgMS41LCAtMi41LCAiICsgUHJp
bnRQb2ludGVyKHN0cikgKwotICAgICAgICAgICAgIiBwb2ludGluZyB0byBcIjhcIiwgTlVMTCwg
XCIxMFwiKSIsCi0gICAgICAgICAgICBQcmludCh0MTApKTsKLX0KLQotLy8gTmVzdGVkIHR1cGxl
cy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIE5lc3RlZFR1cGxlKSB7Ci0gIDo6c3RkOjp0cjE6
OnR1cGxlPCA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQsIGJvb2w+LCBjaGFyPiBuZXN0ZWQoCi0gICAg
ICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDUsIHRydWUpLCAnYScpOwotICBFWFBFQ1RfRVEoIigo
NSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50KG5lc3RlZCkpOwotfQotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCiAvLyBU
ZXN0cyBwcmludGluZyA6OnN0ZDo6dHVwbGVzLgogCiAvLyBUdXBsZXMgb2YgdmFyaW91cyBhcml0
aWVzLgpAQCAtMTA3MSwzMiArMTIwOSwxMSBAQCBURVNUKFByaW50U3RkVHVwbGVUZXN0LCBWYXJp
b3VzU2l6ZXMpIHsKICAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQ+IHQ0KGZhbHNl
LCAyLCAzLCA0KTsKICAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQpIiwgUHJpbnQodDQpKTsK
IAotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbD4gdDUoZmFsc2UsIDIs
IDMsIDQsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSkiLCBQcmlu
dCh0NSkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQ+
IHQ2KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMs
IDQsIHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBp
bnQsIGludCwgYm9vbCwgaW50LCBpbnQ+IHQ3KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUs
IDYsIDcpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNykiLCBQcmlu
dCh0NykpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQs
IGludCwgYm9vbD4gdDgoCi0gICAgICBmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSk7
Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3LCB0cnVlKSIsIFByaW50
KHQ4KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwg
aW50LCBib29sLCBpbnQ+IHQ5KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRy
dWUsIDkpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSwg
OSkiLCBQcmludCh0OSkpOwotCiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9ICI4IjsKLSAgLy8g
VkMrKyAyMDEwJ3MgaW1wbGVtZW50YXRpb24gb2YgdHVwbGUgb2YgQysrMHggaXMgZGVmaWNpZW50
LCByZXF1aXJpbmcKLSAgLy8gYW4gZXhwbGljaXQgdHlwZSBjYXN0IG9mIE5VTEwgdG8gYmUgdXNl
ZC4KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGNoYXIsIHNob3J0LCB0ZXN0aW5nOjppbnRlcm5hbDo6
SW50MzIsICAvLyBOT0xJTlQKLSAgICAgICAgICAgICAgIHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2
NCwgZmxvYXQsIGRvdWJsZSwgY29uc3QgY2hhciosIHZvaWQqLAotICAgICAgICAgICAgICAgc3Rk
OjpzdHJpbmc+CisgIDo6c3RkOjp0dXBsZTxib29sLCBjaGFyLCBzaG9ydCwgaW50MzJfdCwgaW50
NjRfdCwgZmxvYXQsIGRvdWJsZSwgIC8vIE5PTElOVAorICAgICAgICAgICAgICAgY29uc3QgY2hh
ciosIHZvaWQqLCBzdGQ6OnN0cmluZz4KICAgICAgIHQxMChmYWxzZSwgJ2EnLCBzdGF0aWNfY2Fz
dDxzaG9ydD4oMyksIDQsIDUsIDEuNUYsIC0yLjUsIHN0ciwgIC8vIE5PTElOVAotICAgICAgICAg
IEltcGxpY2l0Q2FzdF88dm9pZCo+KE5VTEwpLCAiMTAiKTsKKyAgICAgICAgICBudWxscHRyLCAi
MTAiKTsKICAgRVhQRUNUX0VRKCIoZmFsc2UsICdhJyAoOTcsIDB4NjEpLCAzLCA0LCA1LCAxLjUs
IC0yLjUsICIgKyBQcmludFBvaW50ZXIoc3RyKSArCiAgICAgICAgICAgICAiIHBvaW50aW5nIHRv
IFwiOFwiLCBOVUxMLCBcIjEwXCIpIiwKICAgICAgICAgICAgIFByaW50KHQxMCkpOwpAQCAtMTEw
OSwxMyArMTIyNiwyNyBAQCBURVNUKFByaW50U3RkVHVwbGVUZXN0LCBOZXN0ZWRUdXBsZSkgewog
ICBFWFBFQ1RfRVEoIigoNSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50KG5lc3RlZCkp
OwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKLQotI2lmIEdURVNUX0xBTkdfQ1hY
MTEKIFRFU1QoUHJpbnROdWxscHRyVCwgQmFzaWMpIHsKICAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludChudWxscHRyKSk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKKworVEVT
VChQcmludFJlZmVyZW5jZVdyYXBwZXIsIFByaW50YWJsZSkgeworICBpbnQgeCA9IDU7CisgIEVY
UEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJngpICsgIiA1IiwgUHJpbnQoc3RkOjpyZWYoeCkp
KTsKKyAgRVhQRUNUX0VRKCJAIiArIFByaW50UG9pbnRlcigmeCkgKyAiIDUiLCBQcmludChzdGQ6
OmNyZWYoeCkpKTsKK30KKworVEVTVChQcmludFJlZmVyZW5jZVdyYXBwZXIsIFVucHJpbnRhYmxl
KSB7CisgIDo6Zm9vOjpVbnByaW50YWJsZUluRm9vIHVwOworICBFWFBFQ1RfRVEoCisgICAgICAi
QCIgKyBQcmludFBvaW50ZXIoJnVwKSArCisgICAgICAgICAgIiAxNi1ieXRlIG9iamVjdCA8RUYt
MTIgMDAtMDAgMzQtQUIgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDA+IiwKKyAgICAgIFBy
aW50KHN0ZDo6cmVmKHVwKSkpOworICBFWFBFQ1RfRVEoCisgICAgICAiQCIgKyBQcmludFBvaW50
ZXIoJnVwKSArCisgICAgICAgICAgIiAxNi1ieXRlIG9iamVjdCA8RUYtMTIgMDAtMDAgMzQtQUIg
MDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDA+IiwKKyAgICAgIFByaW50KHN0ZDo6Y3JlZih1
cCkpKTsKK30KIAogLy8gVGVzdHMgcHJpbnRpbmcgdXNlci1kZWZpbmVkIHVucHJpbnRhYmxlIHR5
cGVzLgogCkBAIC0xMTY0LDYgKzEyOTUsMjAgQEAgVEVTVChQcmludFN0cmVhbWFibGVUeXBlVGVz
dCwgVGVtcGxhdGVUeXBlSW5Vc2VyTmFtZXNwYWNlKSB7CiAgICAgICAgICAgICBQcmludCg6OmZv
bzo6U3RyZWFtYWJsZVRlbXBsYXRlSW5Gb288aW50PigpKSk7CiB9CiAKK1RFU1QoUHJpbnRTdHJl
YW1hYmxlVHlwZVRlc3QsIFR5cGVJblVzZXJOYW1lc3BhY2VXaXRoVGVtcGxhdGVkU3RyZWFtT3Bl
cmF0b3IpIHsKKyAgRVhQRUNUX0VRKCJUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28iLAorICAgICAg
ICAgICAgUHJpbnQoOjpmb286OlRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbygpKSk7Cit9CisKK1RF
U1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3QsIFN1YmNsYXNzVXNlc1N1cGVyY2xhc3NTdHJlYW1P
cGVyYXRvcikgeworICBQYXJlbnRDbGFzcyBwYXJlbnQ7CisgIENoaWxkQ2xhc3NXaXRoU3RyZWFt
T3BlcmF0b3IgY2hpbGRfc3RyZWFtOworICBDaGlsZENsYXNzV2l0aG91dFN0cmVhbU9wZXJhdG9y
IGNoaWxkX25vX3N0cmVhbTsKKyAgRVhQRUNUX0VRKCJQYXJlbnRDbGFzcyIsIFByaW50KHBhcmVu
dCkpOworICBFWFBFQ1RfRVEoIkNoaWxkQ2xhc3NXaXRoU3RyZWFtT3BlcmF0b3IiLCBQcmludChj
aGlsZF9zdHJlYW0pKTsKKyAgRVhQRUNUX0VRKCJQYXJlbnRDbGFzcyIsIFByaW50KGNoaWxkX25v
X3N0cmVhbSkpOworfQorCiAvLyBUZXN0cyBwcmludGluZyBhIHVzZXItZGVmaW5lZCByZWN1cnNp
dmUgY29udGFpbmVyIHR5cGUgdGhhdCBoYXMgYSA8PAogLy8gb3BlcmF0b3IuCiBURVNUKFByaW50
U3RyZWFtYWJsZVR5cGVUZXN0LCBQYXRoTGlrZUluVXNlck5hbWVzcGFjZSkgewpAQCAtMTMyMSwy
MSArMTQ2Niw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwg
V29ya3NGb3JXQ2hhclBvaW50ZXJWc1BvaW50ZXIpIHsKIC8vIFRlc3RzIGZvcm1hdHRpbmcgYSBj
aGFyIHBvaW50ZXIgd2hlbiBpdCdzIGNvbXBhcmVkIHRvIGEgc3RyaW5nIG9iamVjdC4KIC8vIElu
IHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IHRoZSBjaGFyIHBvaW50ZXIgYXMgYSBDIHN0cmlu
Zy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBjaGFyIHBvaW50ZXIgdnMgOjpz
dHJpbmcKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NG
b3JDaGFyUG9pbnRlclZzU3RyaW5nKSB7Ci0gIGNvbnN0IGNoYXIqIHMgPSAiaGVsbG8gXCJ3b3Js
ZCI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoZWxsbyBcXFwid29ybGRcIiIsICAvLyBUaGUgc3RyaW5n
IGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjpzdHJpbmcoKSkuY19zdHIoKSk7Ci0KLSAgLy8gY2hh
cioKLSAgY2hhciBzdHJbXSA9ICJoaVwxIjsKLSAgY2hhciogcCA9IHN0cjsKLSAgRVhQRUNUX1NU
UkVRKCJcImhpXFx4MVwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBl
ZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6
OnN0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCiAvLyBjaGFyIHBvaW50ZXIgdnMgc3Rk
OjpzdHJpbmcKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29y
a3NGb3JDaGFyUG9pbnRlclZzU3RkU3RyaW5nKSB7CiAgIGNvbnN0IGNoYXIqIHMgPSAiaGVsbG8g
XCJ3b3JsZCI7CkBAIC0xMzQ5LDIxICsxNDc5LDYgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29u
RmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJQb2ludGVyVnNTdGRTdHJpbmcpIHsKICAg
ICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OnN0ZDo6
c3RyaW5nKCkpLmNfc3RyKCkpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0v
LyB3Y2hhcl90IHBvaW50ZXIgdnMgOjp3c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNXU3RyaW5nKSB7Ci0gIGNv
bnN0IHdjaGFyX3QqIHMgPSBMImhpIFwid29ybGQiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxc
XCJ3b3JsZFwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAg
ICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzLCA6OndzdHJp
bmcoKSkuY19zdHIoKSk7Ci0KLSAgLy8gd2NoYXJfdCoKLSAgd2NoYXJfdCBzdHJbXSA9IEwiaGlc
MSI7Ci0gIHdjaGFyX3QqIHAgPSBzdHI7Ci0gIEVYUEVDVF9TVFJFUSgiTFwiaGlcXHgxXCIiLCAg
Ly8gVGhlIHN0cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAg
Rm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHAsIDo6d3N0cmluZygpKS5jX3N0cigp
KTsKLX0KLSNlbmRpZgotCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyB3Y2hhcl90IHBv
aW50ZXIgdnMgc3RkOjp3c3RyaW5nCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVz
c2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNTdGRXU3RyaW5nKSB7CkBAIC0xMzg2LDcg
KzE1MDEsNyBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdv
cmtzRm9yV0NoYXJQb2ludGVyVnNTdGRXU3RyaW5nKSB7CiAvLyBjaGFyIGFycmF5IHZzIHBvaW50
ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JD
aGFyQXJyYXlWc1BvaW50ZXIpIHsKICAgY2hhciBzdHJbXSA9ICJoaSBcIndvcmxkXCIiOwotICBj
aGFyKiBwID0gTlVMTDsKKyAgY2hhciogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIoc3RyKSwKICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2Fn
ZShzdHIsIHApLmNfc3RyKCkpOwogfQpAQCAtMTQwMSw3ICsxNTE2LDcgQEAgVEVTVChGb3JtYXRG
b3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVZzQ2hhckFy
cmF5KSB7CiAvLyB3Y2hhcl90IGFycmF5IHZzIHBvaW50ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNQb2ludGVyKSB7CiAg
IHdjaGFyX3Qgc3RyW10gPSBMImhpIFwid29ybGRcIiI7Ci0gIHdjaGFyX3QqIHAgPSBOVUxMOwor
ICB3Y2hhcl90KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihzdHIpLAog
ICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgcCkuY19z
dHIoKSk7CiB9CkBAIC0xNDE2LDE2ICsxNTMxLDYgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29u
RmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyQXJyYXlWc1dDaGFyQXJyYXkpIHsKIC8v
IFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIGFycmF5IHdoZW4gaXQncyBjb21wYXJlZCB3aXRoIGEg
c3RyaW5nIG9iamVjdC4KIC8vIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IHRoZSBhcnJh
eSBhcyBhIEMgc3RyaW5nLgogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLS8vIGNoYXIg
YXJyYXkgdnMgc3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRl
c3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdHJpbmcpIHsKLSAgY29uc3QgY2hhciBzdHJbXSA9ICJo
aSBcIndcMHJsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJcImhpIFxcXCJ3XCIiLCAgLy8gVGhlIGNv
bnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEVtYmVkZGVkIE5VTCB0ZXJtaW5hdGVzIHRoZSBzdHJpbmcuCi0gICAgICAgICAgICAgICBG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uoc3RyLCA6OnN0cmluZygpKS5jX3N0cigp
KTsKLX0KLSNlbmRpZgotCiAvLyBjaGFyIGFycmF5IHZzIHN0ZDo6c3RyaW5nCiBURVNUKEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdGRT
dHJpbmcpIHsKICAgY29uc3QgY2hhciBzdHJbXSA9ICJoaSBcIndvcmxkXCIiOwpAQCAtMTQzMywx
NSArMTUzOCw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwg
V29ya3NGb3JDaGFyQXJyYXlWc1N0ZFN0cmluZykgewogICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpzdGQ6OnN0cmluZygpKS5jX3N0cigpKTsK
IH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotLy8gd2NoYXJfdCBhcnJheSB2cyB3
c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtz
Rm9yV0NoYXJBcnJheVZzV1N0cmluZykgewotICBjb25zdCB3Y2hhcl90IHN0cltdID0gTCJoaSBc
IndvcmxkXCIiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxcXCJ3b3JsZFxcXCJcIiIsICAvLyBU
aGUgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6d3N0cmluZygpKS5jX3N0cigpKTsKLX0KLSNl
bmRpZgotCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyB3Y2hhcl90IGFycmF5IHZzIHN0
ZDo6d3N0cmluZwogVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBX
b3Jrc0ZvcldDaGFyQXJyYXlWc1N0ZFdTdHJpbmcpIHsKQEAgLTE1MTYsNiArMTYxMiw2MSBAQCBU
RVNUKFByaW50VG9TdHJpbmdUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVdpdGhFbWJlZGRlZE51bCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4gICAgQXMgVGV4dDogXCJGcm9tIMOkIOKA
lCDhupFcIiIpOwogfQogCisjaWYgR1RFU1RfSEFTX1JUVEkKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PgorY2xhc3MgUHJpbnRUb1N0cmluZ1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CisgcHVi
bGljOgorICB1c2luZyBUZXN0VHlwZSA9IFQ7Cit9OworCitzdHJ1Y3QgUHJpbnRCYXNlIHsKKyAg
dmlydHVhbCB+UHJpbnRCYXNlKCkgPSBkZWZhdWx0OworfTsKK3N0cnVjdCBQcmludERlcml2ZWQg
OiBQcmludEJhc2Uge307CisKK3VzaW5nIFByaW50VG9TdHJpbmdUZXN0VHlwZXMgPQorICAgIHRl
c3Rpbmc6OlR5cGVzPHZvaWQsIGludCwgY29uc3Qgdm9sYXRpbGUgaW50KiwgUHJpbnRCYXNlLCBQ
cmludERlcml2ZWQ+OworVFlQRURfVEVTVF9TVUlURShQcmludFRvU3RyaW5nVGVzdCwgUHJpbnRU
b1N0cmluZ1Rlc3RUeXBlcyk7CisKKy8vIFJldHVybnMgYHRydWVgIGlmIGBoYXlzdGFja2AgY29u
dGFpbnMgYG5lZWRsZWAuCisvLworLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBgRVhQRUNUX1RIQVQo
aGF5c3RhY2ssIEhhc1N1YnN0cihuZWVkbGUpKWAgb25jZQorLy8gR29vZ2xlVGVzdCBzdGFydHMg
ZGVwZW5kaW5nIG9uIEdvb2dsZU1vY2suCitib29sIENvbnRhaW5zU3Vic3RyKGNvbnN0IHN0ZDo6
c3RyaW5nJiBoYXlzdGFjaywgY29uc3Qgc3RkOjpzdHJpbmcmIG5lZWRsZSkgeworICByZXR1cm4g
aGF5c3RhY2suZmluZChuZWVkbGUpICE9IHN0ZDo6c3RyaW5nOjpucG9zOworfQorCitUWVBFRF9U
RVNUKFByaW50VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05hbWVXaXRoVHlwZUluZm9BbmRUeXBlSW5k
ZXgpIHsKKyAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgaW5mbyA9IHR5cGVpZCh0eXBlbmFtZSBU
ZXN0Rml4dHVyZTo6VGVzdFR5cGUpOworICBTQ09QRURfVFJBQ0UoaW5mby5uYW1lKCkpOworICBF
WFBFQ1RfVFJVRShDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGluZm8pLCBpbmZvLm5hbWUo
KSkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIENvbnRhaW5zU3Vic3RyKFByaW50VG9TdHJpbmco
OjpzdGQ6OnR5cGVfaW5kZXh7aW5mb30pLCBpbmZvLm5hbWUoKSkpOworfQorCitURVNUKFByaW50
VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05hbWVXaXRoVHlwZUluZm9BbmRUeXBlSW5kZXhWaWFCYXNl
UmVmKSB7CisgIFByaW50RGVyaXZlZCBkZXJpdmVkOworICBQcmludEJhc2UmIGJhc2UgPSBkZXJp
dmVkOworCisgIHsKKyAgICBjb25zdCA6OnN0ZDo6dHlwZV9pbmZvJiBkZXJpdmVkX2luZm8gPSB0
eXBlaWQoZGVyaXZlZCk7CisgICAgU0NPUEVEX1RSQUNFKGRlcml2ZWRfaW5mby5uYW1lKCkpOwor
ICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGRl
cml2ZWRfaW5mbyksIGRlcml2ZWRfaW5mby5uYW1lKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShDb250
YWluc1N1YnN0cihQcmludFRvU3RyaW5nKDo6c3RkOjp0eXBlX2luZGV4e2Rlcml2ZWRfaW5mb30p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2ZWRfaW5mby5uYW1lKCkpKTsK
KyAgfQorICB7CisgICAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgYmFzZV9yZWZfaW5mbyA9IHR5
cGVpZChiYXNlKTsKKyAgICBTQ09QRURfVFJBQ0UoYmFzZV9yZWZfaW5mby5uYW1lKCkpOworICAg
IEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGJhc2Vf
cmVmX2luZm8pLCBiYXNlX3JlZl9pbmZvLm5hbWUoKSkpOworICAgIEVYUEVDVF9UUlVFKENvbnRh
aW5zU3Vic3RyKFByaW50VG9TdHJpbmcoOjpzdGQ6OnR5cGVfaW5kZXh7YmFzZV9yZWZfaW5mb30p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfcmVmX2luZm8ubmFtZSgpKSk7
CisgIH0KK30KKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKKwogVEVTVChJc1ZhbGlkVVRGOFRl
c3QsIElsbEZvcm1lZFVURjgpIHsKICAgLy8gVGhlIGZvbGxvd2luZyB0ZXN0IHN0cmluZ3MgYXJl
IGlsbC1mb3JtZWQgVVRGLTggYW5kIGFyZSBwcmludGVkCiAgIC8vIGFzIGhleCBvbmx5IChvciBB
U0NJSSwgaW4gY2FzZSBvZiBBU0NJSSBieXRlcykgYmVjYXVzZSBJc1ZhbGlkVVRGOCgpIGlzCkBA
IC0xNjAyLDcgKzE3NTMsNyBAQCBURVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUZXN0LCBXb3Jrc0Zv
ckNTdHJpbmcpIHsKICAgVW5pdmVyc2FsVGVyc2VQcmludChzMiwgJnNzMik7CiAgIEVYUEVDVF9F
USgiXCJhYmNcIiIsIHNzMi5zdHIoKSk7CiAKLSAgY29uc3QgY2hhciogczMgPSBOVUxMOworICBj
b25zdCBjaGFyKiBzMyA9IG51bGxwdHI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3MzOwogICBV
bml2ZXJzYWxUZXJzZVByaW50KHMzLCAmc3MzKTsKICAgRVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0
cigpKTsKQEAgLTE2MjEsNiArMTc3MiwxMyBAQCBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29y
a3NGb3JSZWZlcmVuY2UpIHsKICAgRVhQRUNUX0VRKCIxMjMiLCBzcy5zdHIoKSk7CiB9CiAKK1RF
U1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvclBhaXJXaXRoQ29uc3QpIHsKKyAgc3RkOjpw
YWlyPGNvbnN0IFdyYXBwZXI8c3RkOjpzdHJpbmc+LCBpbnQ+IHAoV3JhcHBlcjxzdGQ6OnN0cmlu
Zz4oImFiYyIpLCAxKTsKKyAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgVW5pdmVyc2FsUHJp
bnQocCwgJnNzKTsKKyAgRVhQRUNUX0VRKCIoV3JhcHBlcihcImFiY1wiKSwgMSkiLCBzcy5zdHIo
KSk7Cit9CisKIFRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNTdHJpbmcpIHsKICAg
Y29uc3QgY2hhciogczEgPSAiYWJjIjsKICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczE7CkBAIC0x
NjMyLDcgKzE3OTAsNyBAQCBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JDU3RyaW5n
KSB7CiAgIFVuaXZlcnNhbFByaW50KHMyLCAmc3MyKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRl
cihzMikgKyAiIHBvaW50aW5nIHRvIFwiYWJjXCIiLCBzdGQ6OnN0cmluZyhzczIuc3RyKCkpKTsK
IAotICBjb25zdCBjaGFyKiBzMyA9IE5VTEw7CisgIGNvbnN0IGNoYXIqIHMzID0gbnVsbHB0cjsK
ICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczM7CiAgIFVuaXZlcnNhbFByaW50KHMzLCAmc3MzKTsK
ICAgRVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0cigpKTsKQEAgLTE2NTAsNDIgKzE4MDgsNjMgQEAg
VEVTVChVbml2ZXJzYWxQcmludFRlc3QsIFdvcmtzRm9yQ2hhckFycmF5KSB7CiAgIEVYUEVDVF9F
USgiXCJcXFwiTGluZVxcMCAxXFxcIlxcbkxpbmUgMlwiIiwgc3MyLnN0cigpKTsKIH0KIAotI2lm
IEdURVNUX0hBU19UUjFfVFVQTEUKLQotVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVs
ZHNUb1N0cmluZ3NUZXN0V2l0aFRyMSwgUHJpbnRzRW1wdHlUdXBsZSkgewotICBTdHJpbmdzIHJl
c3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6
c3RkOjp0cjE6Om1ha2VfdHVwbGUoKSk7Ci0gIEVYUEVDVF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7
Ci19Ci0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdp
dGhUcjEsIFByaW50c09uZVR1cGxlKSB7Ci0gIFN0cmluZ3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVy
c2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzKAotICAgICAgOjpzdGQ6OnRyMTo6bWFrZV90dXBs
ZSgxKSk7Ci0gIEFTU0VSVF9FUSgxdSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIs
IHJlc3VsdFswXSk7Ci19CitURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgSW5jb21wbGV0ZVR5cGUp
IHsKKyAgc3RydWN0IEluY29tcGxldGU7CisgIGNoYXIgc29tZV9vYmplY3QgPSAwOworICBFWFBF
Q1RfRVEoIihpbmNvbXBsZXRlIHR5cGUpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxJbmNvbXBsZXRlJj4oc29tZV9vYmplY3QpKSk7Cit9CisKK1RFU1QoVW5p
dmVyc2FsUHJpbnRUZXN0LCBTbWFydFBvaW50ZXJzKSB7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIp
IiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8aW50PigpKSk7CisgIHN0ZDo6dW5pcXVl
X3B0cjxpbnQ+IHAobmV3IGludCgxNykpOworICBFWFBFQ1RfRVEoIihwdHIgPSAiICsgUHJpbnRQ
b2ludGVyKHAuZ2V0KCkpICsgIiwgdmFsdWUgPSAxNykiLAorICAgICAgICAgICAgUHJpbnRUb1N0
cmluZyhwKSk7CisgIHN0ZDo6dW5pcXVlX3B0cjxpbnRbXT4gcDIobmV3IGludFsyXSk7CisgIEVY
UEVDVF9FUSgiKCIgKyBQcmludFBvaW50ZXIocDIuZ2V0KCkpICsgIikiLCBQcmludFRvU3RyaW5n
KHAyKSk7CisKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjxpbnQ+KCkpKTsKKyAgc3RkOjpzaGFyZWRfcHRyPGludD4gcDMobmV3IGludCgxOTc5
KSk7CisgIEVYUEVDVF9FUSgiKHB0ciA9ICIgKyBQcmludFBvaW50ZXIocDMuZ2V0KCkpICsgIiwg
dmFsdWUgPSAxOTc5KSIsCisgICAgICAgICAgICBQcmludFRvU3RyaW5nKHAzKSk7CisjaWYgX19j
cHBfbGliX3NoYXJlZF9wdHJfYXJyYXlzID49IDIwMTYxMUwKKyAgc3RkOjpzaGFyZWRfcHRyPGlu
dFtdPiBwNChuZXcgaW50WzJdKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9pbnRlcihwNC5n
ZXQoKSkgKyAiKSIsIFByaW50VG9TdHJpbmcocDQpKTsKKyNlbmRpZgogCi1URVNUKFVuaXZlcnNh
bFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUd29UdXBs
ZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1Rv
U3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2VfdHVwbGUoMSwgJ2EnKSk7Ci0gIEFTU0VS
VF9FUSgydSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0g
IEVYUEVDVF9FUSgiJ2EnICg5NywgMHg2MSkiLCByZXN1bHRbMV0pOwotfQorICAvLyBtb2RpZmll
cnMKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjxpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjxjb25zdCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2xhdGlsZSBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VR
KCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2xhdGlsZSBjb25z
dCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjxpbnRbXT4oKSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9T
dHJpbmcoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51
bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgaW50W10+KCkp
KTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhz
dGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgY29uc3QgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIo
bnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxpbnQ+KCkpKTsKKyAgRVhQ
RUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxjb25zdCBp
bnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjx2b2xhdGlsZSBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBjb25zdCBpbnQ+KCkpKTsKKyNpZiBf
X2NwcF9saWJfc2hhcmVkX3B0cl9hcnJheXMgPj0gMjAxNjExTAorICBFWFBFQ1RfRVEoIihudWxs
cHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRfcHRyPGludFtdPigpKSk7CisgIEVYUEVD
VF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8Y29uc3QgaW50
W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjx2b2xhdGlsZSBpbnRbXT4oKSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsCisg
ICAgICAgICAgICBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBjb25zdCBp
bnRbXT4oKSkpOworI2VuZGlmCiAKLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRz
VG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c1RlcnNlbHkpIHsKLSAgY29uc3QgaW50IG4gPSAx
OwotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3Ry
aW5ncygKLSAgICAgIDo6c3RkOjp0cjE6OnR1cGxlPGNvbnN0IGludCYsIGNvbnN0IGNoYXIqPihu
LCAiYSIpKTsKLSAgQVNTRVJUX0VRKDJ1LCByZXN1bHQuc2l6ZSgpKTsKLSAgRVhQRUNUX0VRKCIx
IiwgcmVzdWx0WzBdKTsKLSAgRVhQRUNUX0VRKCJcImFcIiIsIHJlc3VsdFsxXSk7CisgIC8vIHZv
aWQKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjx2b2lkLCB2b2lkICgqKSh2b2lkKik+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dWxscHRyLCBudWxscHRyKSkpOworICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAuZ2V0
KCkpICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZygKKyAgICAgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8dm9pZCwgdm9pZCAoKikodm9pZCopPihwLmdldCgpLCBbXSh2b2lkKikg
e30pKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJl
ZF9wdHI8dm9pZD4oKSkpOworICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAuZ2V0KCkp
ICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9pZD4o
cC5nZXQoKSwgW10odm9pZCopIHt9KSkpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFf
VFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCi0KIFRFU1QoVW5pdmVyc2FsVGVyc2VQ
cmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhTdGQsIFByaW50c0VtcHR5VHVwbGUpIHsK
ICAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmlu
Z3MoOjpzdGQ6Om1ha2VfdHVwbGUoKSk7CiAgIEVYUEVDVF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7
CkBAIC0xNzE1LDM0ICsxODk0LDEyNCBAQCBURVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZp
ZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQcmludHNUZXJzZWx5KSB7CiAgIEVYUEVDVF9FUSgi
XCJhXCIiLCByZXN1bHRbMV0pOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TVERfVFVQTEVf
CisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorY2xhc3MgUHJpbnRBbnlUZXN0IDogcHVibGlj
IDo6dGVzdGluZzo6VGVzdCB7CisgcHJvdGVjdGVkOgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
KyAgc3RhdGljIHN0ZDo6c3RyaW5nIEV4cGVjdGVkVHlwZU5hbWUoKSB7CisjaWYgR1RFU1RfSEFT
X1JUVEkKKyAgICByZXR1cm4gaW50ZXJuYWw6OkdldFR5cGVOYW1lPFQ+KCk7CisjZWxzZQorICAg
IHJldHVybiAiPHVua25vd25fdHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorICB9
Cit9OworCitURVNUX0YoUHJpbnRBbnlUZXN0LCBFbXB0eSkgeworICBpbnRlcm5hbDo6QW55IGFu
eTsKKyAgRVhQRUNUX0VRKCJubyB2YWx1ZSIsIFByaW50VG9TdHJpbmcoYW55KSk7Cit9CisKK1RF
U1RfRihQcmludEFueVRlc3QsIE5vbkVtcHR5KSB7CisgIGludGVybmFsOjpBbnkgYW55OworICBj
b25zdGV4cHIgaW50IHZhbDEgPSAxMDsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgdmFsMiA9ICJjb250
ZW50IjsKKworICBhbnkgPSB2YWwxOworICBFWFBFQ1RfRVEoInZhbHVlIG9mIHR5cGUgIiArIEV4
cGVjdGVkVHlwZU5hbWU8aW50PigpLCBQcmludFRvU3RyaW5nKGFueSkpOwogCi0jaWYgR1RFU1Rf
SEFTX0FCU0wKKyAgYW55ID0gdmFsMjsKKyAgRVhQRUNUX0VRKCJ2YWx1ZSBvZiB0eXBlICIgKyBF
eHBlY3RlZFR5cGVOYW1lPHN0ZDo6c3RyaW5nPigpLAorICAgICAgICAgICAgUHJpbnRUb1N0cmlu
ZyhhbnkpKTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX0FOWQogCisjaWYgR1RF
U1RfSU5URVJOQUxfSEFTX09QVElPTkFMCiBURVNUKFByaW50T3B0aW9uYWxUZXN0LCBCYXNpYykg
ewotICBhYnNsOjpvcHRpb25hbDxpbnQ+IHZhbHVlOworICBpbnRlcm5hbDo6T3B0aW9uYWw8aW50
PiB2YWx1ZTsKICAgRVhQRUNUX0VRKCIobnVsbG9wdCkiLCBQcmludFRvU3RyaW5nKHZhbHVlKSk7
CiAgIHZhbHVlID0gezd9OwogICBFWFBFQ1RfRVEoIig3KSIsIFByaW50VG9TdHJpbmcodmFsdWUp
KTsKLSAgRVhQRUNUX0VRKCIoMS4xKSIsIFByaW50VG9TdHJpbmcoYWJzbDo6b3B0aW9uYWw8ZG91
YmxlPnsxLjF9KSk7Ci0gIEVYUEVDVF9FUSgiKFwiQVwiKSIsIFByaW50VG9TdHJpbmcoYWJzbDo6
b3B0aW9uYWw8c3RkOjpzdHJpbmc+eyJBIn0pKTsKKyAgRVhQRUNUX0VRKCIoMS4xKSIsIFByaW50
VG9TdHJpbmcoaW50ZXJuYWw6Ok9wdGlvbmFsPGRvdWJsZT57MS4xfSkpOworICBFWFBFQ1RfRVEo
IihcIkFcIikiLCBQcmludFRvU3RyaW5nKGludGVybmFsOjpPcHRpb25hbDxzdGQ6OnN0cmluZz57
IkEifSkpOwogfQorI2VuZGlmICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwKIAorI2lm
IEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UCiBzdHJ1Y3QgTm9uUHJpbnRhYmxlIHsKICAgdW5z
aWduZWQgY2hhciBjb250ZW50cyA9IDE3OwogfTsKIAogVEVTVChQcmludE9uZW9mVGVzdCwgQmFz
aWMpIHsKLSAgdXNpbmcgVHlwZSA9IGFic2w6OnZhcmlhbnQ8aW50LCBTdHJlYW1hYmxlSW5HbG9i
YWwsIE5vblByaW50YWJsZT47Ci0gIEVYUEVDVF9FUSgiKCdpbnQnIHdpdGggdmFsdWUgNykiLCBQ
cmludFRvU3RyaW5nKFR5cGUoNykpKTsKLSAgRVhQRUNUX0VRKCIoJ1N0cmVhbWFibGVJbkdsb2Jh
bCcgd2l0aCB2YWx1ZSBTdHJlYW1hYmxlSW5HbG9iYWwpIiwKKyAgdXNpbmcgVHlwZSA9IGludGVy
bmFsOjpWYXJpYW50PGludCwgU3RyZWFtYWJsZUluR2xvYmFsLCBOb25QcmludGFibGU+OworICBF
WFBFQ1RfRVEoIignaW50KGluZGV4ID0gMCknIHdpdGggdmFsdWUgNykiLCBQcmludFRvU3RyaW5n
KFR5cGUoNykpKTsKKyAgRVhQRUNUX0VRKCIoJ1N0cmVhbWFibGVJbkdsb2JhbChpbmRleCA9IDEp
JyB3aXRoIHZhbHVlIFN0cmVhbWFibGVJbkdsb2JhbCkiLAogICAgICAgICAgICAgUHJpbnRUb1N0
cmluZyhUeXBlKFN0cmVhbWFibGVJbkdsb2JhbHt9KSkpOwogICBFWFBFQ1RfRVEoCi0gICAgICAi
KCd0ZXN0aW5nOjpndGVzdF9wcmludGVyc190ZXN0OjpOb25QcmludGFibGUnIHdpdGggdmFsdWUg
MS1ieXRlIG9iamVjdCAiCi0gICAgICAiPDExPikiLAorICAgICAgIigndGVzdGluZzo6Z3Rlc3Rf
cHJpbnRlcnNfdGVzdDo6Tm9uUHJpbnRhYmxlKGluZGV4ID0gMiknIHdpdGggdmFsdWUgIgorICAg
ICAgIjEtYnl0ZSBvYmplY3QgPDExPikiLAogICAgICAgUHJpbnRUb1N0cmluZyhUeXBlKE5vblBy
aW50YWJsZXt9KSkpOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2VuZGlmICAvLyBH
VEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAorbmFtZXNwYWNlIHsKK2NsYXNzIHN0cmluZ19yZWY7
CisKKy8qKgorICogVGhpcyBpcyBhIHN5bnRoZXRpYyBwb2ludGVyIHRvIGEgZml4ZWQgc2l6ZSBz
dHJpbmcuCisgKi8KK2NsYXNzIHN0cmluZ19wdHIgeworIHB1YmxpYzoKKyAgc3RyaW5nX3B0cihj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkgOiBkYXRhXyhkYXRhKSwgc2l6ZV8oc2l6ZSkg
e30KKworICBzdHJpbmdfcHRyJiBvcGVyYXRvcisrKCkgbm9leGNlcHQgeworICAgIGRhdGFfICs9
IHNpemVfOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHN0cmluZ19yZWYgb3BlcmF0b3Iq
KCkgY29uc3Qgbm9leGNlcHQ7CisKKyBwcml2YXRlOgorICBjb25zdCBjaGFyKiBkYXRhXzsKKyAg
c2l6ZV90IHNpemVfOworfTsKKworLyoqCisgKiBUaGlzIGlzIGEgc3ludGhldGljIHJlZmVyZW5j
ZSBvZiBhIGZpeGVkIHNpemUgc3RyaW5nLgorICovCitjbGFzcyBzdHJpbmdfcmVmIHsKKyBwdWJs
aWM6CisgIHN0cmluZ19yZWYoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIDogZGF0YV8o
ZGF0YSksIHNpemVfKHNpemUpIHt9CisKKyAgc3RyaW5nX3B0ciBvcGVyYXRvciYoKSBjb25zdCBu
b2V4Y2VwdCB7IHJldHVybiB7ZGF0YV8sIHNpemVffTsgfSAgLy8gTk9MSU5UCisKKyAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IGNoYXIqIHMpIGNvbnN0IG5vZXhjZXB0IHsKKyAgICBpZiAoc2l6ZV8g
PiAwICYmIGRhdGFfW3NpemVfIC0gMV0gIT0gMCkgeworICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5n
KGRhdGFfLCBzaXplXykgPT0gc3RkOjpzdHJpbmcocyk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZyhkYXRhXykgPT0gc3RkOjpzdHJpbmcocyk7CisgICAgfQorICB9CisK
KyBwcml2YXRlOgorICBjb25zdCBjaGFyKiBkYXRhXzsKKyAgc2l6ZV90IHNpemVfOworfTsKKwor
c3RyaW5nX3JlZiBzdHJpbmdfcHRyOjpvcGVyYXRvciooKSBjb25zdCBub2V4Y2VwdCB7IHJldHVy
biB7ZGF0YV8sIHNpemVffTsgfQorCitURVNUKHN0cmluZ19yZWYsIGNvbXBhcmUpIHsKKyAgY29u
c3QgY2hhciogcyA9ICJhbGV4XDBkYXZpZGpvaG5cMCI7CisgIHN0cmluZ19wdHIgcHRyKHMsIDUp
OworICBFWFBFQ1RfRVEoKnB0ciwgImFsZXgiKTsKKyAgRVhQRUNUX1RSVUUoKnB0ciA9PSAiYWxl
eCIpOworICArK3B0cjsKKyAgRVhQRUNUX0VRKCpwdHIsICJkYXZpZCIpOworICBFWFBFQ1RfVFJV
RSgqcHRyID09ICJkYXZpZCIpOworICArK3B0cjsKKyAgRVhQRUNUX0VRKCpwdHIsICJqb2huIik7
Cit9CisKK30gIC8vIG5hbWVzcGFjZQogCiB9ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNf
dGVzdAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0LnB5IGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzgyMTYyZmM5OWY4YmJlY2Y0YThjYWYyY2UwYTI5YmY2NGIzYzI0YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1z
ZXR1cHRlc3RzdWl0ZS10ZXN0LnB5CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5
dGhvbgorIworIyBDb3B5cmlnaHQgMjAxOSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlZlcmlmaWVzIHRoYXQgU2V0VXBUZXN0U3Vp
dGUgYW5kIFRlYXJEb3duVGVzdFN1aXRlIGVycm9ycyBhcmUgbm90aWNlZC4iIiIKKworaW1wb3J0
IGd0ZXN0X3Rlc3RfdXRpbHMKKworQ09NTUFORCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4
ZWN1dGFibGVQYXRoKAorICAgICdnb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3RfJykKKwor
CitjbGFzcyBHVGVzdFNldFVwVGVzdFN1aXRlVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKKworICBkZWYgdGVzdFNldHVwRXJyb3JBbmRUZWFyRG93bkVycm9yKHNlbGYpOgorICAgIHAg
PSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoQ09NTUFORCkKKyAgICBzZWxmLmFzc2VydE5v
dEVxdWFsKHAuZXhpdF9jb2RlLCAwLCBtc2c9cC5vdXRwdXQpCisKKyAgICBzZWxmLmFzc2VydElu
KAorICAgICAgICAnWyAgRkFJTEVEICBdIFNldHVwRmFpbFRlc3Q6IFNldFVwVGVzdFN1aXRlIG9y
IFRlYXJEb3duVGVzdFN1aXRlXG4nCisgICAgICAgICdbICBGQUlMRUQgIF0gVGVhckRvd25GYWls
VGVzdDogU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGVcbicKKyAgICAgICAgJ1xu
JworICAgICAgICAnIDIgRkFJTEVEIFRFU1QgU1VJVEVTXG4nLAorICAgICAgICBwLm91dHB1dCkK
KworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1
cHRlc3RzdWl0ZS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGJjNGVmNDQxZDliZTQ4
MDJlMmMwMTBkZjhmMWMzZDk2ZGZhZjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3RfLmNjCkBAIC0w
LDAgKzEsNDkgQEAKKy8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworY2xhc3MgU2V0dXBGYWlsVGVzdCA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgU2V0VXBU
ZXN0U3VpdGUoKSB7CisgICAgQVNTRVJUX0VRKCIiLCAiU0VUX1VQX0ZBSUwiKTsKKyAgfQorfTsK
KworVEVTVF9GKFNldHVwRmFpbFRlc3QsIE5vb3BQYXNzaW5nVGVzdCkge30KKworY2xhc3MgVGVh
ckRvd25GYWlsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAg
c3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgQVNTRVJUX0VRKCIiLCAiVEVB
Ul9ET1dOX0ZBSUwiKTsKKyAgfQorfTsKKworVEVTVF9GKFRlYXJEb3duRmFpbFRlc3QsIE5vb3BQ
YXNzaW5nVGVzdCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKaW5kZXggMWZlNWY2YWJhMmE1ZTBmZmNhYjkx
NWU0NjM4ZDIzZjU4Y2Y0OGZmMC4uNDUwNTY2M2FlNDMzYzRmZDUzMjA1YzE2MGZiYzJhYjNlOGU2
NmVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXNodWZmbGUtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKQEAgLTQxLDcgKzQxLDYgQEAgdXNpbmcgOjp0ZXN0aW5n
OjpUZXN0OwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lcnM7CiB1c2luZyA6OnRl
c3Rpbmc6OlRlc3RJbmZvOwogdXNpbmcgOjp0ZXN0aW5nOjpVbml0VGVzdDsKLXVzaW5nIDo6dGVz
dGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI7CiAKIC8vIFRoZSB0ZXN0IG1ldGhvZHMgYXJlIGVt
cHR5LCBhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHRoaXMgcHJvZ3JhbSBpcwogLy8gdG8gcHJpbnQg
dGhlIHRlc3QgbmFtZXMgYmVmb3JlL2FmdGVyIHNodWZmbGluZy4KQEAgLTc3LDEzICs3NiwxMyBA
QCBURVNUKERJU0FCTEVEX0QsIERJU0FCTEVEX0IpIHt9CiAvLyBpdGVyYXRpb24gd2l0aCBhICIt
LS0tIiBtYXJrZXIuCiBjbGFzcyBUZXN0TmFtZVByaW50ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZl
bnRMaXN0ZW5lciB7CiAgcHVibGljOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24gKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVy
YXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24gKi8pIG92ZXJyaWRlIHsKICAgICBwcmlu
dGYoIi0tLS1cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRl
c3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgICBwcmludGYoIiVzLiVzXG4iLCB0ZXN0X2luZm8udGVz
dF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgIHZvaWQgT25UZXN0U3RhcnQoY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGUgeworICAgIHByaW50ZigiJXMuJXNcbiIs
IHRlc3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CiAgIH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10
ZXN0LXBhcnQtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC10ZXN0LXBhcnQtdGVzdC5jYwppbmRleCBjZDJkNmY5ZTg1OGY1Mjc5YmE1YTE2YTVkMWE2ZTM3
YWZmZTkxMGFkLi40NGNmN2NhMDQ0Yjg1MGRhZGMwZGY4OTYyODIyNWMwN2RlYTI3YzkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0
LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRl
c3QtcGFydC10ZXN0LmNjCkBAIC00Niw5ICs0NiwxMCBAQCBjbGFzcyBUZXN0UGFydFJlc3VsdFRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgIFRlc3RQYXJ0UmVzdWx0VGVzdCgpCiAgICAgICA6IHIxXyhU
ZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MsICJmb28vYmFyLmNjIiwgMTAsICJTdWNjZXNzISIpLAog
ICAgICAgICByMl8oVGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUsICJmb28vYmFyLmNj
IiwgLTEsICJGYWlsdXJlISIpLAotICAgICAgICByM18oVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZh
aWx1cmUsIE5VTEwsIC0xLCAiRmFpbHVyZSEiKSB7fQorICAgICAgICByM18oVGVzdFBhcnRSZXN1
bHQ6OmtGYXRhbEZhaWx1cmUsIG51bGxwdHIsIC0xLCAiRmFpbHVyZSEiKSwKKyAgICAgICAgcjRf
KFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgImZvby9iYXIuY2MiLCAyLCAiU2tpcHBlZCEiKSB7fQog
Ci0gIFRlc3RQYXJ0UmVzdWx0IHIxXywgcjJfLCByM187CisgIFRlc3RQYXJ0UmVzdWx0IHIxXywg
cjJfLCByM18sIHI0XzsKIH07CiAKIApAQCAtNzksNiArODAsNyBAQCBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNz
LmZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Mubm9uZmF0YWxseV9mYWlsZWQoKSk7
CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNzLmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFM
U0Uoc3VjY2Vzcy5za2lwcGVkKCkpOwogCiAgIGNvbnN0IFRlc3RQYXJ0UmVzdWx0IG5vbmZhdGFs
X2ZhaWx1cmUoVGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUuY2MiLApAQCAtODgsNiArOTAsNyBAQCBU
RVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVD
VF9UUlVFKG5vbmZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkpOwogICBFWFBFQ1RfVFJVRShub25mYXRh
bF9mYWlsdXJlLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0Uobm9uZmF0YWxf
ZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKG5vbmZhdGFsX2ZhaWx1
cmUuc2tpcHBlZCgpKTsKIAogICBjb25zdCBUZXN0UGFydFJlc3VsdCBmYXRhbF9mYWlsdXJlKFRl
c3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJmaWxlLmNjIiwKQEAgLTk3LDYgKzEwMCwxNCBAQCBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVDVF9UUlVFKGZhdGFsX2Zh
aWx1cmUuZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0UoZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5
X2ZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUoZmF0YWxfZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgp
KTsKKyAgRVhQRUNUX0ZBTFNFKGZhdGFsX2ZhaWx1cmUuc2tpcHBlZCgpKTsKKworICBjb25zdCBU
ZXN0UGFydFJlc3VsdCBza2lwKFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgImZpbGUuY2MiLCA0Miwg
Im1lc3NhZ2UiKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAucGFzc2VkKCkpOworICBFWFBFQ1RfRkFM
U0Uoc2tpcC5mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShza2lwLm5vbmZhdGFsbHlfZmFpbGVk
KCkpOworICBFWFBFQ1RfRkFMU0Uoc2tpcC5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX1RS
VUUoc2tpcC5za2lwcGVkKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6dHlwZSgp
LgpAQCAtMTA0LDIzICsxMTUsMjcgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgdHlwZSkg
ewogICBFWFBFQ1RfRVEoVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzLCByMV8udHlwZSgpKTsKICAg
RVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLCByMl8udHlwZSgpKTsK
ICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLCByM18udHlwZSgpKTsK
KyAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgcjRfLnR5cGUoKSk7CiB9CiAKIC8v
IFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmaWxlX25hbWUoKS4KIFRFU1RfRihUZXN0UGFydFJlc3Vs
dFRlc3QsIGZpbGVfbmFtZSkgewogICBFWFBFQ1RfU1RSRVEoImZvby9iYXIuY2MiLCByMV8uZmls
ZV9uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcjNfLmZpbGVfbmFtZSgpKTsKKyAgRVhQ
RUNUX1NUUkVRKG51bGxwdHIsIHIzXy5maWxlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiZm9v
L2Jhci5jYyIsIHI0Xy5maWxlX25hbWUoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0
OjpsaW5lX251bWJlcigpLgogVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgbGluZV9udW1iZXIp
IHsKICAgRVhQRUNUX0VRKDEwLCByMV8ubGluZV9udW1iZXIoKSk7CiAgIEVYUEVDVF9FUSgtMSwg
cjJfLmxpbmVfbnVtYmVyKCkpOworICBFWFBFQ1RfRVEoMiwgcjRfLmxpbmVfbnVtYmVyKCkpOwog
fQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bWVzc2FnZSgpLgogVEVTVF9GKFRlc3RQYXJ0
UmVzdWx0VGVzdCwgbWVzc2FnZSkgewogICBFWFBFQ1RfU1RSRVEoIlN1Y2Nlc3MhIiwgcjFfLm1l
c3NhZ2UoKSk7CisgIEVYUEVDVF9TVFJFUSgiU2tpcHBlZCEiLCByNF8ubWVzc2FnZSgpKTsKIH0K
IAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OnBhc3NlZCgpLgpAQCAtMTI4LDYgKzE0Myw3IEBA
IFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIFBhc3NlZCkgewogICBFWFBFQ1RfVFJVRShyMV8u
cGFzc2VkKCkpOwogICBFWFBFQ1RfRkFMU0UocjJfLnBhc3NlZCgpKTsKICAgRVhQRUNUX0ZBTFNF
KHIzXy5wYXNzZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyNF8ucGFzc2VkKCkpOwogfQogCiAvLyBU
ZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmFpbGVkKCkuCkBAIC0xMzUsNiArMTUxLDE1IEBAIFRFU1Rf
RihUZXN0UGFydFJlc3VsdFRlc3QsIEZhaWxlZCkgewogICBFWFBFQ1RfRkFMU0UocjFfLmZhaWxl
ZCgpKTsKICAgRVhQRUNUX1RSVUUocjJfLmZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUocjNfLmZh
aWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5mYWlsZWQoKSk7Cit9CisKKy8vIFRlc3RzIFRl
c3RQYXJ0UmVzdWx0OjpmYWlsZWQoKS4KK1RFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIFNraXBw
ZWQpIHsKKyAgRVhQRUNUX0ZBTFNFKHIxXy5za2lwcGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjJf
LnNraXBwZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyM18uc2tpcHBlZCgpKTsKKyAgRVhQRUNUX1RS
VUUocjRfLnNraXBwZWQoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmYXRhbGx5
X2ZhaWxlZCgpLgpAQCAtMTQyLDYgKzE2Nyw3IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3Qs
IEZhdGFsbHlGYWlsZWQpIHsKICAgRVhQRUNUX0ZBTFNFKHIxXy5mYXRhbGx5X2ZhaWxlZCgpKTsK
ICAgRVhQRUNUX0ZBTFNFKHIyXy5mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUocjNf
LmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjRfLmZhdGFsbHlfZmFpbGVkKCkp
OwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bm9uZmF0YWxseV9mYWlsZWQoKS4KQEAg
LTE0OSw2ICsxNzUsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBOb25mYXRhbGx5RmFp
bGVkKSB7CiAgIEVYUEVDVF9GQUxTRShyMV8ubm9uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVD
VF9UUlVFKHIyXy5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIzXy5ub25m
YXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5ub25mYXRhbGx5X2ZhaWxlZCgp
KTsKIH0KIAogLy8gVGVzdHMgdGhlIFRlc3RQYXJ0UmVzdWx0QXJyYXkgY2xhc3MuCkBAIC0yMDAs
NiArMjI3LDQgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0QXJyYXlEZWF0aFRlc3QsIERpZXNXaGVu
SW5kZXhJc091dE9mQm91bmQpIHsKICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXN1bHRz
LkdldFRlc3RQYXJ0UmVzdWx0KDEpLCAiIik7CiB9CiAKLS8vIEZJWE1FOiBBZGQgYSB0ZXN0IGZv
ciB0aGUgY2xhc3MgSGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyLgotCiB9ICAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0
Ml90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRlc3Qy
X3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyZjk4ZGM3ZDFjM2U5MDk3
NThiYTYwNzcyZTk3NzQ5OGNlODFmZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRl
c3QyX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vLyBDb3B5cmlnaHQg
MjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xl
IFRlc3QgaXRzZWxmLiAgVGhpcyB2ZXJpZmllcyB0aGF0IHRoZSBiYXNpYyBjb25zdHJ1Y3RzIG9m
Ci0vLyBHb29nbGUgVGVzdCB3b3JrLgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLSNpbmNs
dWRlICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5oIgotCi11c2luZyA6OnRlc3Rpbmc6OlZh
bHVlczsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwotCi0vLyBU
ZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVmaW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1
bml0Ci0vLyBhcmUgZnVuY3Rpb25hbC4gVGhlIHRlc3QgdXNpbmcgZXh0ZXJuX2dlbl8yIGlzIGRl
ZmluZWQKLS8vIGluIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjLgotUGFyYW1HZW5lcmF0
b3I8aW50PiBleHRlcm5fZ2VuXzIgPSBWYWx1ZXMoMzMpOwotCi0vLyBUZXN0cyB0aGF0IGEgcGFy
YW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGRlZmluZWQgaW4gb25lIHRyYW5zbGF0aW9uIHVu
aXQKLS8vIGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhlci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBp
bgotLy8gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYW5kIEV4dGVybmFsSW5zdGFudGlh
dGlvblRlc3QgZml4dHVyZSBjbGFzcyBpcwotLy8gZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0
X3Rlc3QuaC4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE11bHRpcGxlc09mMzMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOwotCi0vLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVy
aXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAotLy8gaW4gbXVsdGlwbGUgdHJhbnNs
YXRpb24gdW5pdHMuIEFub3RoZXIgaW5zdGFudGlhdGlvbiBpcyBkZWZpbmVkCi0vLyBpbiBnb29n
bGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBhbmQKLS8vIEluc3RhbnRpYXRpb25Jbk11bHRpcGxl
VHJhbnNsYWlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KLS8vIGd0ZXN0LXBhcmFt
LXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkpOwot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhy
b3ctb24tZmFpbHVyZS10ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weQppbmRleCA0NmNiOWY2ZGEzMWRlYWRmZDdl
ZWZkMjM1ZTliMzdkZjI5ZmIzYmFmLi5lYTYyN2M0NzlkNWIxOTgyNGNhNjdiOTgwODljZjQwMGMz
M2MyNzlhIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3QucHkKQEAgLTY4LDEzICs2OCwx
MiBAQCBkZWYgU2V0RW52VmFyKGVudl92YXIsIHZhbHVlKToKIGRlZiBSdW4oY29tbWFuZCk6CiAg
ICIiIlJ1bnMgYSBjb21tYW5kOyByZXR1cm5zIFRydWUvRmFsc2UgaWYgaXRzIGV4aXQgY29kZSBp
cy9pc24ndCAwLiIiIgogCi0gIHByaW50ICdSdW5uaW5nICIlcyIuIC4gLicgJSAnICcuam9pbihj
b21tYW5kKQorICBwcmludCgnUnVubmluZyAiJXMiLiAuIC4nICUgJyAnLmpvaW4oY29tbWFuZCkp
CiAgIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCkKICAgcmV0dXJuIHAu
ZXhpdGVkIGFuZCBwLmV4aXRfY29kZSA9PSAwCiAKIAotIyBUaGUgdGVzdHMuICBGSVhNRTogcmVm
YWN0b3IgdGhlIGNsYXNzIHRvIHNoYXJlIGNvbW1vbgotIyBsb2dpYyB3aXRoIGNvZGUgaW4gZ29v
Z2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0LnB5LgorIyBUaGUgdGVzdHMuCiBjbGFz
cyBUaHJvd09uRmFpbHVyZVRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICIiIlRl
c3RzIHRoZSB0aHJvdy1vbi1mYWlsdXJlIG1vZGUuIiIiCiAKQEAgLTg3LDcgKzg2LDcgQEAgY2xh
c3MgVGhyb3dPbkZhaWx1cmVUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyaWFibGU7IE5vbmUgaWYgdGhlIHZhcmlhYmxlIHNob3VsZCBi
ZSB1bnNldC4KICAgICAgIGZsYWdfdmFsdWU6ICAgICAgIHZhbHVlIG9mIHRoZSAtLWd0ZXN0X2Jy
ZWFrX29uX2ZhaWx1cmUgZmxhZzsKICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgaWYgdGhl
IGZsYWcgc2hvdWxkIG5vdCBiZSBwcmVzZW50LgotICAgICAgc2hvdWxkX2ZhaWw6ICAgICAgVHJ1
ZSBpZmYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8gZmFpbC4KKyAgICAgIHNob3VsZF9mYWls
OiAgICAgIFRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8gZmFp
bC4KICAgICAiIiIKIAogICAgIFNldEVudlZhcihUSFJPV19PTl9GQUlMVVJFLCBlbnZfdmFyX3Zh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYwppbmRleCBmOWEyYzY0NDhhMjlj
YTI5NjQ5YTEyNDgwNTlhOTg1YTUxYWY4NjM2Li44M2JiOTE0YzdlNDc0YTgxMmQ1NzQ1YTNlYzUw
Yjk1YjM4YTY1OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYwpAQCAtNDUs
NyArNDUsNyBAQAogLy8gb25lcy4KIHZvaWQgVGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50
ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxlZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRo
ZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVMTCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhp
dCgxKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXR1cGxlLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtdHVwbGUtdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ4MmMx
NjBmMTc3ZDZmM2JhZGQ3NzA2NGFiOGM3ZTk4YmQyOTc2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtdHVwbGUtdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDMxOSArMCwwIEBACi0v
LyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0v
LwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRp
c3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotI2luY2x1ZGUg
Imd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNs
dWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgewotCi11c2luZyA6OnN0ZDo6dHIxOjpn
ZXQ7Ci11c2luZyA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlOwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVw
bGU7Ci11c2luZyA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVtZW50OwotdXNpbmcgOjpzdGQ6OnRyMTo6
dHVwbGVfc2l6ZTsKLXVzaW5nIDo6dGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxOwotCi0vLyBU
ZXN0cyB0aGF0IHR1cGxlX2VsZW1lbnQ8SywgdHVwbGU8VDAsIFQxLCAuLi4sIFROPiA+Ojp0eXBl
IHJldHVybnMgVEsuCi1URVNUKHR1cGxlX2VsZW1lbnRfVGVzdCwgUmV0dXJuc0VsZW1lbnRUeXBl
KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIHR1cGxlX2VsZW1lbnQ8MCwgdHVwbGU8aW50
LCBjaGFyPiA+Ojp0eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50JiwgdHVwbGVfZWxl
bWVudDwxLCB0dXBsZTxkb3VibGUsIGludCY+ID46OnR5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5
cGVFcTxib29sLCB0dXBsZV9lbGVtZW50PDIsIHR1cGxlPGRvdWJsZSwgaW50LCBib29sPiA+Ojp0
eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IHR1cGxlX3NpemU8VD46OnZhbHVlIGdpdmVzIHRo
ZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlCi0vLyB0eXBlIFQuCi1URVNUKHR1cGxlX3NpemVf
VGVzdCwgUmV0dXJuc051bWJlck9mRmllbGRzKSB7Ci0gIEVYUEVDVF9FUSgwLCArdHVwbGVfc2l6
ZTx0dXBsZTw+ID46OnZhbHVlKTsKLSAgRVhQRUNUX0VRKDEsICt0dXBsZV9zaXplPHR1cGxlPHZv
aWQqPiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArdHVwbGVfc2l6ZTx0dXBsZTxjaGFyPiA+
Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArKHR1cGxlX3NpemU8dHVwbGU8dHVwbGU8aW50LCBk
b3VibGU+ID4gPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0VRKDIsICsodHVwbGVfc2l6ZTx0dXBsZTxp
bnQmLCBjb25zdCBjaGFyPiA+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfRVEoMywgKyh0dXBsZV9zaXpl
PHR1cGxlPGNoYXIqLCB2b2lkLCBjb25zdCBib29sJj4gPjo6dmFsdWUpKTsKLX0KLQotLy8gVGVz
dHMgY29tcGFyaW5nIGEgdHVwbGUgd2l0aCBpdHNlbGYuCi1URVNUKENvbXBhcmlzb25UZXN0LCBD
b21wYXJlc1dpdGhTZWxmKSB7Ci0gIGNvbnN0IHR1cGxlPGludCwgY2hhciwgYm9vbD4gYSg1LCAn
YScsIGZhbHNlKTsKLQotICBFWFBFQ1RfVFJVRShhID09IGEpOwotICBFWFBFQ1RfRkFMU0UoYSAh
PSBhKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHR3byB0dXBsZXMgd2l0aCB0aGUgc2FtZSB2
YWx1ZS4KLVRFU1QoQ29tcGFyaXNvblRlc3QsIENvbXBhcmVzRXF1YWxUdXBsZXMpIHsKLSAgY29u
c3QgdHVwbGU8aW50LCBib29sPiBhKDUsIHRydWUpLCBiKDUsIHRydWUpOwotCi0gIEVYUEVDVF9U
UlVFKGEgPT0gYik7Ci0gIEVYUEVDVF9GQUxTRShhICE9IGIpOwotfQotCi0vLyBUZXN0cyBjb21w
YXJpbmcgdHdvIGRpZmZlcmVudCB0dXBsZXMgdGhhdCBoYXZlIG5vIHJlZmVyZW5jZSBmaWVsZHMu
Ci1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc1VuZXF1YWxUdXBsZXNXaXRob3V0UmVmZXJl
bmNlRmllbGRzKSB7Ci0gIHR5cGVkZWYgdHVwbGU8Y29uc3QgaW50LCBjaGFyPiBGb29UdXBsZTsK
LQotICBjb25zdCBGb29UdXBsZSBhKDAsICd4Jyk7Ci0gIGNvbnN0IEZvb1R1cGxlIGIoMSwgJ2En
KTsKLQotICBFWFBFQ1RfVFJVRShhICE9IGIpOwotICBFWFBFQ1RfRkFMU0UoYSA9PSBiKTsKLQot
ICBjb25zdCBGb29UdXBsZSBjKDEsICdiJyk7Ci0KLSAgRVhQRUNUX1RSVUUoYiAhPSBjKTsKLSAg
RVhQRUNUX0ZBTFNFKGIgPT0gYyk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB0d28gZGlmZmVy
ZW50IHR1cGxlcyB0aGF0IGhhdmUgcmVmZXJlbmNlIGZpZWxkcy4KLVRFU1QoQ29tcGFyaXNvblRl
c3QsIENvbXBhcmVzVW5lcXVhbFR1cGxlc1dpdGhSZWZlcmVuY2VGaWVsZHMpIHsKLSAgdHlwZWRl
ZiB0dXBsZTxpbnQmLCBjb25zdCBjaGFyJj4gRm9vVHVwbGU7Ci0KLSAgaW50IGkgPSA1OwotICBj
b25zdCBjaGFyIGNoID0gJ2EnOwotICBjb25zdCBGb29UdXBsZSBhKGksIGNoKTsKLQotICBpbnQg
aiA9IDY7Ci0gIGNvbnN0IEZvb1R1cGxlIGIoaiwgY2gpOwotCi0gIEVYUEVDVF9UUlVFKGEgIT0g
Yik7Ci0gIEVYUEVDVF9GQUxTRShhID09IGIpOwotCi0gIGogPSA1OwotICBjb25zdCBjaGFyIGNo
MiA9ICdiJzsKLSAgY29uc3QgRm9vVHVwbGUgYyhqLCBjaDIpOwotCi0gIEVYUEVDVF9UUlVFKGIg
IT0gYyk7Ci0gIEVYUEVDVF9GQUxTRShiID09IGMpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgdHVw
bGUgZmllbGQgd2l0aCBhIHJlZmVyZW5jZSB0eXBlIGlzIGFuIGFsaWFzIG9mIHRoZQotLy8gdmFy
aWFibGUgaXQncyBzdXBwb3NlZCB0byByZWZlcmVuY2UuCi1URVNUKFJlZmVyZW5jZUZpZWxkVGVz
dCwgSXNBbGlhc09mUmVmZXJlbmNlZFZhcmlhYmxlKSB7Ci0gIGludCBuID0gMDsKLSAgdHVwbGU8
Ym9vbCwgaW50Jj4gdCh0cnVlLCBuKTsKLQotICBuID0gMTsKLSAgRVhQRUNUX0VRKG4sIGdldDwx
Pih0KSkKLSAgICAgIDw8ICJDaGFuZ2luZyBhIHVuZGVybHlpbmcgdmFyaWFibGUgc2hvdWxkIHVw
ZGF0ZSB0aGUgcmVmZXJlbmNlIGZpZWxkLiI7Ci0KLSAgLy8gTWFrZXMgc3VyZSB0aGF0IHRoZSBp
bXBsZW1lbnRhdGlvbiBkb2Vzbid0IGRvIGFueXRoaW5nIGZ1bm55IHdpdGgKLSAgLy8gdGhlICYg
b3BlcmF0b3IgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBnZXQ8PigpLgotICBFWFBFQ1RfRVEoJm4s
ICYoZ2V0PDE+KHQpKSkKLSAgICAgIDw8ICJUaGUgYWRkcmVzcyBvZiBhIHJlZmVyZW5jZSBmaWVs
ZCBzaG91bGQgZXF1YWwgdGhlIGFkZHJlc3Mgb2YgIgotICAgICAgPDwgInRoZSB1bmRlcmx5aW5n
IHZhcmlhYmxlLiI7Ci0KLSAgZ2V0PDE+KHQpID0gMjsKLSAgRVhQRUNUX0VRKDIsIG4pCi0gICAg
ICA8PCAiQ2hhbmdpbmcgYSByZWZlcmVuY2UgZmllbGQgc2hvdWxkIHVwZGF0ZSB0aGUgdW5kZXJs
eWluZyB2YXJpYWJsZS4iOwotfQotCi0vLyBUZXN0cyB0aGF0IHR1cGxlJ3MgZGVmYXVsdCBjb25z
dHJ1Y3RvciBkZWZhdWx0IGluaXRpYWxpemVzIGVhY2ggZmllbGQuCi0vLyBUaGlzIHRlc3QgbmVl
ZHMgdG8gY29tcGlsZSB3aXRob3V0IGdlbmVyYXRpbmcgd2FybmluZ3MuCi1URVNUKFR1cGxlQ29u
c3RydWN0b3JUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3JEZWZhdWx0SW5pdGlhbGl6ZXNFYWNoRmll
bGQpIHsKLSAgLy8gVGhlIFRSMSByZXBvcnQgcmVxdWlyZXMgdGhhdCB0dXBsZSdzIGRlZmF1bHQg
Y29uc3RydWN0b3IgZGVmYXVsdAotICAvLyBpbml0aWFsaXplcyBlYWNoIGZpZWxkLCBldmVuIGlm
IGl0J3MgYSBwcmltaXRpdmUgdHlwZS4gIElmIHRoZQotICAvLyBpbXBsZW1lbnRhdGlvbiBmb3Jn
ZXRzIHRvIGRvIHRoaXMsIHRoaXMgdGVzdCB3aWxsIGNhdGNoIGl0IGJ5Ci0gIC8vIGdlbmVyYXRp
bmcgd2FybmluZ3MgYWJvdXQgdXNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgKGFzc3VtaW5n
Ci0gIC8vIGEgZGVjZW50IGNvbXBpbGVyKS4KLQotICB0dXBsZTw+IGVtcHR5OwotCi0gIHR1cGxl
PGludD4gYTEsIGIxOwotICBiMSA9IGExOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDA+KGIxKSk7Ci0K
LSAgdHVwbGU8aW50LCBkb3VibGU+IGEyLCBiMjsKLSAgYjIgPSBhMjsKLSAgRVhQRUNUX0VRKDAs
IGdldDwwPihiMikpOwotICBFWFBFQ1RfRVEoMC4wLCBnZXQ8MT4oYjIpKTsKLQotICB0dXBsZTxk
b3VibGUsIGNoYXIsIGJvb2wqPiBhMywgYjM7Ci0gIGIzID0gYTM7Ci0gIEVYUEVDVF9FUSgwLjAs
IGdldDwwPihiMykpOwotICBFWFBFQ1RfRVEoJ1wwJywgZ2V0PDE+KGIzKSk7Ci0gIEVYUEVDVF9U
UlVFKGdldDwyPihiMykgPT0gTlVMTCk7Ci0KLSAgdHVwbGU8aW50LCBpbnQsIGludCwgaW50LCBp
bnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PiBhMTAsIGIxMDsKLSAgYjEwID0gYTEwOwotICBF
WFBFQ1RfRVEoMCwgZ2V0PDA+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDE+KGIxMCkpOwot
ICBFWFBFQ1RfRVEoMCwgZ2V0PDI+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDM+KGIxMCkp
OwotICBFWFBFQ1RfRVEoMCwgZ2V0PDQ+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDU+KGIx
MCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDY+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDc+
KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDg+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0
PDk+KGIxMCkpOwotfQotCi0vLyBUZXN0cyBjb25zdHJ1Y3RpbmcgYSB0dXBsZSBmcm9tIGl0cyBm
aWVsZHMuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb25zdHJ1Y3RzRnJvbUZpZWxkcykg
ewotICBpbnQgbiA9IDE7Ci0gIC8vIFJlZmVyZW5jZSBmaWVsZC4KLSAgdHVwbGU8aW50Jj4gYShu
KTsKLSAgRVhQRUNUX0VRKCZuLCAmKGdldDwwPihhKSkpOwotCi0gIC8vIE5vbi1yZWZlcmVuY2Ug
ZmllbGRzLgotICB0dXBsZTxpbnQsIGNoYXI+IGIoNSwgJ2EnKTsKLSAgRVhQRUNUX0VRKDUsIGdl
dDwwPihiKSk7Ci0gIEVYUEVDVF9FUSgnYScsIGdldDwxPihiKSk7Ci0KLSAgLy8gQ29uc3QgcmVm
ZXJlbmNlIGZpZWxkLgotICBjb25zdCBpbnQgbSA9IDI7Ci0gIHR1cGxlPGJvb2wsIGNvbnN0IGlu
dCY+IGModHJ1ZSwgbSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwwPihjKSk7Ci0gIEVYUEVDVF9FUSgm
bSwgJihnZXQ8MT4oYykpKTsKLX0KLQotLy8gVGVzdHMgdHVwbGUncyBjb3B5IGNvbnN0cnVjdG9y
LgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgQ29weUNvbnN0cnVjdG9yKSB7Ci0gIHR1cGxl
PGRvdWJsZSwgYm9vbD4gYSgwLjAsIHRydWUpOwotICB0dXBsZTxkb3VibGUsIGJvb2w+IGIoYSk7
Ci0KLSAgRVhQRUNUX0RPVUJMRV9FUSgwLjAsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdl
dDwxPihiKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBhIHR1cGxlIGZyb20gYW5vdGhl
ciB0dXBsZSB0aGF0IGhhcyBhIGNvbXBhdGlibGUKLS8vIGJ1dCBkaWZmZXJlbnQgdHlwZS4KLVRF
U1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVjdHNGcm9tRGlmZmVyZW50VHVwbGVUeXBl
KSB7Ci0gIHR1cGxlPGludCwgaW50LCBjaGFyPiBhKDAsIDEsICdhJyk7Ci0gIHR1cGxlPGRvdWJs
ZSwgbG9uZywgaW50PiBiKGEpOwotCi0gIEVYUEVDVF9ET1VCTEVfRVEoMC4wLCBnZXQ8MD4oYikp
OwotICBFWFBFQ1RfRVEoMSwgZ2V0PDE+KGIpKTsKLSAgRVhQRUNUX0VRKCdhJywgZ2V0PDI+KGIp
KTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEgMi10dXBsZSBmcm9tIGFuIHN0ZDo6cGFp
ci4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVjdHNGcm9tUGFpcikgewotICA6
OnN0ZDo6cGFpcjxpbnQsIGNoYXI+IGEoMSwgJ2EnKTsKLSAgdHVwbGU8aW50LCBjaGFyPiBiKGEp
OwotICB0dXBsZTxpbnQsIGNvbnN0IGNoYXImPiBjKGEpOwotfQotCi0vLyBUZXN0cyBhc3NpZ25p
bmcgYSB0dXBsZSB0byBhbm90aGVyIHR1cGxlIHdpdGggdGhlIHNhbWUgdHlwZS4KLVRFU1QoVHVw
bGVBc3NpZ25tZW50VGVzdCwgQXNzaWduc1RvU2FtZVR1cGxlVHlwZSkgewotICBjb25zdCB0dXBs
ZTxpbnQsIGxvbmc+IGEoNSwgN0wpOwotICB0dXBsZTxpbnQsIGxvbmc+IGI7Ci0gIGIgPSBhOwot
ICBFWFBFQ1RfRVEoNSwgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VRKDdMLCBnZXQ8MT4oYikpOwot
fQotCi0vLyBUZXN0cyBhc3NpZ25pbmcgYSB0dXBsZSB0byBhbm90aGVyIHR1cGxlIHdpdGggYSBk
aWZmZXJlbnQgYnV0Ci0vLyBjb21wYXRpYmxlIHR5cGUuCi1URVNUKFR1cGxlQXNzaWdubWVudFRl
c3QsIEFzc2lnbnNUb0RpZmZlcmVudFR1cGxlVHlwZSkgewotICBjb25zdCB0dXBsZTxpbnQsIGxv
bmcsIGJvb2w+IGEoMSwgN0wsIHRydWUpOwotICB0dXBsZTxsb25nLCBpbnQsIGJvb2w+IGI7Ci0g
IGIgPSBhOwotICBFWFBFQ1RfRVEoMUwsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9FUSg3LCBnZXQ8
MT4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8Mj4oYikpOwotfQotCi0vLyBUZXN0cyBhc3NpZ25p
bmcgYW4gc3RkOjpwYWlyIHRvIGEgMi10dXBsZS4KLVRFU1QoVHVwbGVBc3NpZ25tZW50VGVzdCwg
QXNzaWduc0Zyb21QYWlyKSB7Ci0gIGNvbnN0IDo6c3RkOjpwYWlyPGludCwgYm9vbD4gYSg1LCB0
cnVlKTsKLSAgdHVwbGU8aW50LCBib29sPiBiOwotICBiID0gYTsKLSAgRVhQRUNUX0VRKDUsIGdl
dDwwPihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwxPihiKSk7Ci0KLSAgdHVwbGU8bG9uZywgYm9v
bD4gYzsKLSAgYyA9IGE7Ci0gIEVYUEVDVF9FUSg1TCwgZ2V0PDA+KGMpKTsKLSAgRVhQRUNUX1RS
VUUoZ2V0PDE+KGMpKTsKLX0KLQotLy8gQSBmaXh0dXJlIGZvciB0ZXN0aW5nIGJpZyB0dXBsZXMu
Ci1jbGFzcyBCaWdUdXBsZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVk
OgotICB0eXBlZGVmIHR1cGxlPGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludD4gQmlnVHVwbGU7Ci0KLSAgQmlnVHVwbGVUZXN0KCkgOgotICAgICAgYV8oMSwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMiksCi0gICAgICBiXygxLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAzKSB7fQotCi0gIEJpZ1R1cGxlIGFfLCBiXzsKLX07Ci0KLS8vIFRlc3RzIGNvbnN0
cnVjdGluZyBiaWcgdHVwbGVzLgotVEVTVF9GKEJpZ1R1cGxlVGVzdCwgQ29uc3RydWN0aW9uKSB7
Ci0gIEJpZ1R1cGxlIGE7Ci0gIEJpZ1R1cGxlIGIoYl8pOwotfQotCi0vLyBUZXN0cyB0aGF0IGdl
dDxOPih0KSByZXR1cm5zIHRoZSBOLXRoICgwLWJhc2VkKSBmaWVsZCBvZiB0dXBsZSB0LgotVEVT
VF9GKEJpZ1R1cGxlVGVzdCwgZ2V0KSB7Ci0gIEVYUEVDVF9FUSgxLCBnZXQ8MD4oYV8pKTsKLSAg
RVhQRUNUX0VRKDIsIGdldDw5PihhXykpOwotCi0gIC8vIFRlc3RzIHRoYXQgZ2V0KCkgd29ya3Mg
b24gYSBjb25zdCB0dXBsZSB0b28uCi0gIGNvbnN0IEJpZ1R1cGxlIGEoYV8pOwotICBFWFBFQ1Rf
RVEoMSwgZ2V0PDA+KGEpKTsKLSAgRVhQRUNUX0VRKDIsIGdldDw5PihhKSk7Ci19Ci0KLS8vIFRl
c3RzIGNvbXBhcmluZyBiaWcgdHVwbGVzLgotVEVTVF9GKEJpZ1R1cGxlVGVzdCwgQ29tcGFyaXNv
bnMpIHsKLSAgRVhQRUNUX1RSVUUoYV8gPT0gYV8pOwotICBFWFBFQ1RfRkFMU0UoYV8gIT0gYV8p
OwotCi0gIEVYUEVDVF9UUlVFKGFfICE9IGJfKTsKLSAgRVhQRUNUX0ZBTFNFKGFfID09IGJfKTsK
LX0KLQotVEVTVChNYWtlVHVwbGVUZXN0LCBXb3Jrc0ZvclNjYWxhclR5cGVzKSB7Ci0gIHR1cGxl
PGJvb2wsIGludD4gYTsKLSAgYSA9IG1ha2VfdHVwbGUodHJ1ZSwgNSk7Ci0gIEVYUEVDVF9UUlVF
KGdldDwwPihhKSk7Ci0gIEVYUEVDVF9FUSg1LCBnZXQ8MT4oYSkpOwotCi0gIHR1cGxlPGNoYXIs
IGludCwgbG9uZz4gYjsKLSAgYiA9IG1ha2VfdHVwbGUoJ2EnLCAnYicsIDUpOwotICBFWFBFQ1Rf
RVEoJ2EnLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoJ2InLCBnZXQ8MT4oYikpOwotICBFWFBF
Q1RfRVEoNSwgZ2V0PDI+KGIpKTsKLX0KLQotVEVTVChNYWtlVHVwbGVUZXN0LCBXb3Jrc0ZvclBv
aW50ZXJzKSB7Ci0gIGludCBhW10gPSB7IDEsIDIsIDMsIDQgfTsKLSAgY29uc3QgY2hhciogY29u
c3Qgc3RyID0gImhpIjsKLSAgaW50KiBjb25zdCBwID0gYTsKLQotICB0dXBsZTxjb25zdCBjaGFy
KiwgaW50Kj4gdDsKLSAgdCA9IG1ha2VfdHVwbGUoc3RyLCBwKTsKLSAgRVhQRUNUX0VRKHN0ciwg
Z2V0PDA+KHQpKTsKLSAgRVhQRUNUX0VRKHAsIGdldDwxPih0KSk7Ci19Ci0KLX0gIC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXVuaW5pdGlhbGl6ZWQtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkKaW5kZXggNWI3ZDFlNzRmNjdmY2IwMGNiODQ4
NTU3OTY3ZGVmNGY2YTU2Y2M4Zi4uNjk1OTVhMGRkZWRlODA3YWUzNzExZTllZjVmN2IwYWU5MjIw
NzU2MyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXVuaW5pdGlhbGl6ZWQtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5CkBAIC00Myw4ICs0Myw4IEBAIGRlZiBB
c3NlcnQoY29uZGl0aW9uKToKIAogZGVmIEFzc2VydEVxKGV4cGVjdGVkLCBhY3R1YWwpOgogICBp
ZiBleHBlY3RlZCAhPSBhY3R1YWw6Ci0gICAgcHJpbnQgJ0V4cGVjdGVkOiAlcycgJSAoZXhwZWN0
ZWQsKQotICAgIHByaW50ICcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpCisgICAgcHJpbnQoJ0V4
cGVjdGVkOiAlcycgJSAoZXhwZWN0ZWQsKSkKKyAgICBwcmludCgnICBBY3R1YWw6ICVzJyAlIChh
Y3R1YWwsKSkKICAgICByYWlzZSBBc3NlcnRpb25FcnJvcgogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYwppbmRleCBl
ZDk2NDIxYzY3Y2E4YTJmYjM4ZjNkODg5NjAyMzFlZjIyYmVhNmZjLi5lODNjYTJlMTFiMWI2MjZm
MzIzYjkyODUzYTAxODIxYjhhMzUzMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjCkBAIC0zMywxMiArMzMsOCBA
QAogI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmgiCiAjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gVGVzdHMgdGhh
dCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQogLy8gaW5zdGFu
dGlhdGVkIGluIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCiAv
LyAoQ29udGFpbmVyVGVzdCBpcyBhbHNvIGluc3RhbnRpYXRlZCBpbiBndGVzdC10eXBlZC10ZXN0
X3Rlc3QuY2MuKQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoVmVjdG9yLCBDb250YWlu
ZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VHlwZXM8c3Rk
Ojp2ZWN0b3I8aW50PiA+KTsKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitJ
TlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVmVjdG9yLCBDb250YWluZXJUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlR5cGVzPHN0ZDo6dmVjdG9yPGlu
dD4gPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5
cGVkLXRlc3RfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlw
ZWQtdGVzdF90ZXN0LmNjCmluZGV4IDRlMzk4Njk3ZDZkODA5YjEyZThjOTVlNjc0MjBjMmM1Njhk
ZGE2ZTguLjVmYzY3OGNiMGQ1ZDFkMDI1ZDY5MzU2YzJiMWI2ZDEwZTQ1ZWQ2NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0
LmNjCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rl
c3QuaCIKIAogI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgpAQCAtNDEsMjEgKzQyLDIxIEBA
IEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQxMjcgLyogY29uZGl0aW9uYWwgZXhw
cmVzc2lvbiBpcyBjb25zdGFudCAqLykKIAogdXNpbmcgdGVzdGluZzo6VGVzdDsKIAotLy8gVXNl
ZCBmb3IgdGVzdGluZyB0aGF0IFNldFVwVGVzdENhc2UoKS9UZWFyRG93blRlc3RDYXNlKCksIGZp
eHR1cmUKKy8vIFVzZWQgZm9yIHRlc3RpbmcgdGhhdCBTZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3du
VGVzdFN1aXRlKCksIGZpeHR1cmUKIC8vIGN0b3IvZHRvciwgYW5kIFNldFVwKCkvVGVhckRvd24o
KSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlZCB0ZXN0cyBhbmQKIC8vIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0LgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb21tb25UZXN0IDogcHVibGlj
IFRlc3QgewotICAvLyBGb3Igc29tZSB0ZWNobmljYWwgcmVhc29uLCBTZXRVcFRlc3RDYXNlKCkg
YW5kIFRlYXJEb3duVGVzdENhc2UoKQorICAvLyBGb3Igc29tZSB0ZWNobmljYWwgcmVhc29uLCBT
ZXRVcFRlc3RTdWl0ZSgpIGFuZCBUZWFyRG93blRlc3RTdWl0ZSgpCiAgIC8vIG11c3QgYmUgcHVi
bGljLgogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgc2hhcmVkXyA9IG5ldyBUKDUpOwogICB9CiAK
LSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRv
d25UZXN0U3VpdGUoKSB7CiAgICAgZGVsZXRlIHNoYXJlZF87Ci0gICAgc2hhcmVkXyA9IE5VTEw7
CisgICAgc2hhcmVkXyA9IG51bGxwdHI7CiAgIH0KIAogICAvLyBUaGlzICdwcm90ZWN0ZWQ6JyBp
cyBvcHRpb25hbC4gIFRoZXJlJ3Mgbm8gaGFybSBpbiBtYWtpbmcgYWxsCkBAIC02OCwxNCArNjks
MTQgQEAgY2xhc3MgQ29tbW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogICBDb21tb25UZXN0KCkg
OiB2YWx1ZV8oMSkge30KIAotICB2aXJ0dWFsIH5Db21tb25UZXN0KCkgeyBFWFBFQ1RfRVEoMywg
dmFsdWVfKTsgfQorICB+Q29tbW9uVGVzdCgpIG92ZXJyaWRlIHsgRVhQRUNUX0VRKDMsIHZhbHVl
Xyk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlk
ZSB7CiAgICAgRVhQRUNUX0VRKDEsIHZhbHVlXyk7CiAgICAgdmFsdWVfKys7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgRVhQRUNUX0VRKDIsIHZhbHVlXyk7CiAgICAgdmFsdWVfKys7CiAgIH0KQEAgLTg1LDE4ICs4
NiwxNSBAQCBjbGFzcyBDb21tb25UZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1UKiBDb21tb25UZXN0PFQ+OjpzaGFyZWRfID0gTlVMTDsKLQotLy8gVGhp
cyAjaWZkZWYgYmxvY2sgdGVzdHMgdHlwZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RF
U1QKK1QqIENvbW1vblRlc3Q8VD46OnNoYXJlZF8gPSBudWxscHRyOwogCiB1c2luZyB0ZXN0aW5n
OjpUeXBlczsKIAotLy8gVGVzdHMgdGhhdCBTZXRVcFRlc3RDYXNlKCkvVGVhckRvd25UZXN0Q2Fz
ZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKKy8vIFRlc3RzIHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9U
ZWFyRG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKIC8vIGFuZCBTZXRVcCgpL1Rl
YXJEb3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlwZWQgdGVzdHMKIAogdHlwZWRlZiBUeXBlczxj
aGFyLCBpbnQ+IFR3b1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKENvbW1vblRlc3QsIFR3b1R5cGVz
KTsKK1RZUEVEX1RFU1RfU1VJVEUoQ29tbW9uVGVzdCwgVHdvVHlwZXMpOwogCiBUWVBFRF9URVNU
KENvbW1vblRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2Yg
dGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGJlIHZpc2l0ZWQgdmlhCkBAIC0xMjEsMzIg
KzExOSwzMiBAQCBUWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKIFRZ
UEVEX1RFU1QoQ29tbW9uVGVzdCwgVmFsdWVzQXJlU3RpbGxDb3JyZWN0KSB7CiAgIC8vIFN0YXRp
YyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBhbHNvIGJlIHZpc2l0
ZWQKICAgLy8gdmlhICd0aGlzJy4KLSAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBOVUxM
KTsKKyAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VR
KDUsICp0aGlzLT5zaGFyZWRfKTsKIAogICAvLyBUeXBlUGFyYW0gY2FuIGJlIHVzZWQgdG8gcmVm
ZXIgdG8gdGhlIHR5cGUgcGFyYW1ldGVyLgogICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8VHlwZVBh
cmFtPigyKSwgdGhpcy0+dmFsdWVfKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBtdWx0aXBsZSBUWVBF
RF9URVNUX0NBU0UncyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgc2FtZQorLy8gVGVzdHMgdGhhdCBt
dWx0aXBsZSBUWVBFRF9URVNUX1NVSVRFJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKIC8v
IHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRU
ZXN0MSA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLS8vIFZlcmlmaWVzIHRoYXQgdGhlIHNlY29uZCBh
cmd1bWVudCBvZiBUWVBFRF9URVNUX0NBU0UgY2FuIGJlIGEKKy8vIFZlcmlmaWVzIHRoYXQgdGhl
IHNlY29uZCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX1NVSVRFIGNhbiBiZSBhCiAvLyBzaW5nbGUg
dHlwZS4KLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QxLCBpbnQpOworVFlQRURfVEVTVF9TVUlU
RShUeXBlZFRlc3QxLCBpbnQpOwogVFlQRURfVEVTVChUeXBlZFRlc3QxLCBBKSB7fQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdDIgOiBwdWJsaWMgVGVzdCB7CiB9Owog
Ci0vLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9DQVNF
IGNhbiBiZSBhCisvLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURf
VEVTVF9TVUlURSBjYW4gYmUgYQogLy8gVHlwZXM8Li4uPiB0eXBlIGxpc3QuCi1UWVBFRF9URVNU
X0NBU0UoVHlwZWRUZXN0MiwgVHlwZXM8aW50Pik7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVz
dDIsIFR5cGVzPGludD4pOwogCiAvLyBUaGlzIGFsc28gdmVyaWZpZXMgdGhhdCB0ZXN0cyBmcm9t
IGRpZmZlcmVudCB0eXBlZCB0ZXN0IGNhc2VzIGNhbgogLy8gc2hhcmUgdGhlIHNhbWUgbmFtZS4K
QEAgLTE2MSw3ICsxNTksNyBAQCBjbGFzcyBOdW1lcmljVGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07
CiAKIHR5cGVkZWYgVHlwZXM8aW50LCBsb25nPiBOdW1lcmljVHlwZXM7Ci1UWVBFRF9URVNUX0NB
U0UoTnVtZXJpY1Rlc3QsIE51bWVyaWNUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKE51bWVyaWNU
ZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKE51bWVyaWNUZXN0LCBEZWZhdWx0SXNa
ZXJvKSB7CiAgIEVYUEVDVF9FUSgwLCBUeXBlUGFyYW0oKSk7CkBAIC0xNzcsMTA1ICsxNzUsMTAw
IEBAIGNsYXNzIFR5cGVkVGVzdE5hbWVzIHsKICBwdWJsaWM6CiAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0TmFtZShpbnQgaSkgewotICAgIGlmICh0ZXN0
aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGNoYXI+Ojp2YWx1ZSkgeworICAgIGlmIChzdGQ6Omlz
X3NhbWU8VCwgY2hhcj46OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoImNoYXIi
KSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6
OmludGVybmFsOjpJc1NhbWU8VCwgaW50Pjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1l
PFQsIGludD46OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoImludCIpICsgOjp0
ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0KICAgfQogfTsKIAotVFlQRURfVEVTVF9D
QVNFKFR5cGVkVGVzdFdpdGhOYW1lcywgVHdvVHlwZXMsIFR5cGVkVGVzdE5hbWVzKTsKK1RZUEVE
X1RFU1RfU1VJVEUoVHlwZWRUZXN0V2l0aE5hbWVzLCBUd29UeXBlcywgVHlwZWRUZXN0TmFtZXMp
OwogCi1UWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgVGVzdENhc2VOYW1lKSB7Ci0gIGlm
ICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVlKSB7CitU
WVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgVGVzdFN1aXRlTmFtZSkgeworICBpZiAoc3Rk
Ojppc19zYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6
dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+
Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFt
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAg
ICAgICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9jaGFyMCIpOwogICB9Ci0gIGlmICh0ZXN0aW5n
OjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgaW50Pjo6dmFsdWUpIHsKKyAgaWYgKHN0ZDo6
aXNfc2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVz
dGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+Y3Vy
cmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgp
LAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAg
ICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9pbnQxIik7CiAgIH0KIH0KIAotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVAotCi0vLyBUaGlzICNpZmRlZiBibG9jayB0ZXN0cyB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB1c2luZyB0
ZXN0aW5nOjpUeXBlczsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlUFN0
YXRlOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdFN1aXRlUFN0YXRlOwogCi0v
LyBUZXN0cyBUeXBlZFRlc3RDYXNlUFN0YXRlLgorLy8gVGVzdHMgVHlwZWRUZXN0U3VpdGVQU3Rh
dGUuCiAKLWNsYXNzIFR5cGVkVGVzdENhc2VQU3RhdGVUZXN0IDogcHVibGljIFRlc3QgeworY2xh
c3MgVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHN0YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQSIpOwogICAgIHN0
YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQiIpOwogICAgIHN0YXRl
Xy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQyIpOwogICB9CiAKLSAgVHlw
ZWRUZXN0Q2FzZVBTdGF0ZSBzdGF0ZV87CisgIFR5cGVkVGVzdFN1aXRlUFN0YXRlIHN0YXRlXzsK
IH07CiAKLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgU3VjY2VlZHNGb3JNYXRjaGlu
Z0xpc3QpIHsKK1RFU1RfRihUeXBlZFRlc3RTdWl0ZVBTdGF0ZVRlc3QsIFN1Y2NlZWRzRm9yTWF0
Y2hpbmdMaXN0KSB7CiAgIGNvbnN0IGNoYXIqIHRlc3RzID0gIkEsIEIsIEMiOwogICBFWFBFQ1Rf
RVEodGVzdHMsCi0gICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygi
Zm9vLmNjIiwgMSwgdGVzdHMpKTsKKyAgICAgICAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVk
VGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCB0ZXN0cykpOwogfQogCiAvLyBNYWtlcyBz
dXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSB0ZXN0cyBhbmQgc3BhY2VzIGFyb3VuZCB0aGUgbmFt
ZXMKIC8vIGRvbid0IG1hdHRlci4KLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgSWdu
b3Jlc09yZGVyQW5kU3BhY2VzKSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0LCBJ
Z25vcmVzT3JkZXJBbmRTcGFjZXMpIHsKICAgY29uc3QgY2hhciogdGVzdHMgPSAiQSxDLCAgIEIi
OwogICBFWFBFQ1RfRVEodGVzdHMsCi0gICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJl
ZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgdGVzdHMpKTsKKyAgICAgICAgICAgIHN0YXRlXy5WZXJp
ZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCB0ZXN0cykpOwogfQog
Ci10eXBlZGVmIFR5cGVkVGVzdENhc2VQU3RhdGVUZXN0IFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0
aFRlc3Q7Cit1c2luZyBUeXBlZFRlc3RTdWl0ZVBTdGF0ZURlYXRoVGVzdCA9IFR5cGVkVGVzdFN1
aXRlUFN0YXRlVGVzdDsKIAotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERl
dGVjdHNEdXBsaWNhdGVzKSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3Qs
IERldGVjdHNEdXBsaWNhdGVzKSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAg
ICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgIkEsIEIsIEEs
IEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJm
b28uY2MiLCAxLCAiQSwgQiwgQSwgQyIpLAogICAgICAgImZvb1xcLmNjLjEuPzogVGVzdCBBIGlz
IGxpc3RlZCBtb3JlIHRoYW4gb25jZVxcLiIpOwogfQogCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBT
dGF0ZURlYXRoVGVzdCwgRGV0ZWN0c0V4dHJhVGVzdCkgeworVEVTVF9GKFR5cGVkVGVzdFN1aXRl
UFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzRXh0cmFUZXN0KSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9T
VVBQT1JURUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNj
IiwgMSwgIkEsIEIsIEMsIEQiKSwKLSAgICAgICJmb29cXC5jYy4xLj86IE5vIHRlc3QgbmFtZWQg
RCBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IGNhc2VcXC4iKTsKKyAgICAgIHN0YXRlXy5WZXJp
ZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQiwgQywgRCIp
LAorICAgICAgImZvb1xcLmNjLjEuPzogTm8gdGVzdCBuYW1lZCBEIGNhbiBiZSBmb3VuZCBpbiB0
aGlzIHRlc3Qgc3VpdGVcXC4iKTsKIH0KIAotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0
aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVE
ZWF0aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JU
RUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwg
IkEsIEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIs
ICJmb28uY2MiLCAxLCAiQSwgQyIpLAogICAgICAgImZvb1xcLmNjLjEuPzogWW91IGZvcmdvdCB0
byBsaXN0IHRlc3QgQlxcLiIpOwogfQogCiAvLyBUZXN0cyB0aGF0IGRlZmluaW5nIGEgdGVzdCBm
b3IgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBnZW5lcmF0ZXMKIC8vIGEgcnVuLXRpbWUgZXJy
b3IgaWYgdGhlIHRlc3QgY2FzZSBoYXMgYmVlbiByZWdpc3RlcmVkLgotVEVTVF9GKFR5cGVkVGVz
dENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNUZXN0QWZ0ZXJSZWdpc3RyYXRpb24pIHsKLSAg
c3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBCLCBDIik7
CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNUZXN0QWZ0ZXJS
ZWdpc3RyYXRpb24pIHsKKyAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoIlN1aXRl
IiwgImZvby5jYyIsIDEsICJBLCBCLCBDIik7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQo
CiAgICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDIsICJGb29UZXN0IiwgIkQiKSwK
LSAgICAgICJmb29cXC5jYy4yLj86IFRlc3QgRCBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIFJFR0lT
VEVSX1RZUEVEX1RFU1RfQ0FTRV9QIgorICAgICAgImZvb1xcLmNjLjIuPzogVGVzdCBEIG11c3Qg
YmUgZGVmaW5lZCBiZWZvcmUgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QIgogICAgICAgIlxc
KEZvb1Rlc3QsIFxcLlxcLlxcLlxcKVxcLiIpOwogfQogCi0vLyBUZXN0cyB0aGF0IFNldFVwVGVz
dENhc2UoKS9UZWFyRG93blRlc3RDYXNlKCksIGZpeHR1cmUgY3Rvci9kdG9yLAorLy8gVGVzdHMg
dGhhdCBTZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3duVGVzdFN1aXRlKCksIGZpeHR1cmUgY3Rvci9k
dG9yLAogLy8gYW5kIFNldFVwKCkvVGVhckRvd24oKSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdHMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgRGVyaXZl
ZFRlc3QgOiBwdWJsaWMgQ29tbW9uVGVzdDxUPiB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChE
ZXJpdmVkVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoRGVyaXZlZFRlc3QpOwogCiBUWVBFRF9U
RVNUX1AoRGVyaXZlZFRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKICAgLy8gU3RhdGljIG1lbWJl
cnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGJlIHZpc2l0ZWQgdmlhCkBAIC0y
OTIsMTEwICsyODUsMTEwIEBAIFRZUEVEX1RFU1RfUChEZXJpdmVkVGVzdCwgVmFsdWVzQXJlQ29y
cmVjdCkgewogVFlQRURfVEVTVF9QKERlcml2ZWRUZXN0LCBWYWx1ZXNBcmVTdGlsbENvcnJlY3Qp
IHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2Fu
IGFsc28gYmUgdmlzaXRlZAogICAvLyB2aWEgJ3RoaXMnLgotICBBU1NFUlRfVFJVRSh0aGlzLT5z
aGFyZWRfICE9IE5VTEwpOworICBBU1NFUlRfVFJVRSh0aGlzLT5zaGFyZWRfICE9IG51bGxwdHIp
OwogICBFWFBFQ1RfRVEoNSwgKnRoaXMtPnNoYXJlZF8pOwogICBFWFBFQ1RfRVEoMiwgdGhpcy0+
dmFsdWVfKTsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRGVyaXZlZFRlc3QsCitS
RUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRGVyaXZlZFRlc3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXNBcmVDb3JyZWN0LCBWYWx1ZXNBcmVTdGlsbENvcnJlY3QpOwogCiB0
eXBlZGVmIFR5cGVzPHNob3J0LCBsb25nPiBNeVR3b1R5cGVzOwotSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9DQVNFX1AoTXksIERlcml2ZWRUZXN0LCBNeVR3b1R5cGVzKTsKK0lOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChNeSwgRGVyaXZlZFRlc3QsIE15VHdvVHlwZXMpOwogCiAvLyBUZXN0
cyB0aGF0IGN1c3RvbSBuYW1lcyB3b3JrIHdpdGggdHlwZSBwYXJhbWV0cml6ZWQgdGVzdHMuIFdl
IHJldXNlIHRoZQogLy8gVHdvVHlwZXMgZnJvbSBhYm92ZSBoZXJlLgogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBjbGFzcyBUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcyA6IHB1YmxpYyBUZXN0
IHt9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcyk7
CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMpOwogCi1U
WVBFRF9URVNUX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMsIFRlc3RDYXNlTmFtZSkg
ewotICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1
ZSkgeworVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3Vp
dGVOYW1lKSB7CisgIGlmIChzdGQ6OmlzX3NhbWU8VHlwZVBhcmFtLCBjaGFyPjo6dmFsdWUpIHsK
ICAgICBFWFBFQ1RfU1RSRVEoOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKQogICAg
ICAgICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3RfaW5mbygpCi0gICAgICAgICAgICAgICAg
ICAgICAtPnRlc3RfY2FzZV9uYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAtPnRlc3Rfc3Vp
dGVfbmFtZSgpLAogICAgICAgICAgICAgICAgICAiQ3VzdG9tTmFtZS9UeXBlUGFyYW1ldHJpemVk
VGVzdFdpdGhOYW1lcy9wYXJDaGFyMCIpOwogICB9Ci0gIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6
SXNTYW1lPFR5cGVQYXJhbSwgaW50Pjo6dmFsdWUpIHsKKyAgaWYgKHN0ZDo6aXNfc2FtZTxUeXBl
UGFyYW0sIGludD46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2lu
Zm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAg
ICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIkN1c3Rv
bU5hbWUvVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMvcGFySW50MSIpOwogICB9CiB9CiAK
LVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVz
LCBUZXN0Q2FzZU5hbWUpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0
cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3VpdGVOYW1lKTsKIAogY2xhc3MgVHlwZVBhcmFtZXRy
aXplZFRlc3ROYW1lcyB7CiAgcHVibGljOgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3Rh
dGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsKLSAgICBpZiAodGVzdGluZzo6aW50ZXJu
YWw6OklzU2FtZTxULCBjaGFyPjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGNo
YXI+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJwYXJDaGFyIikgKyA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5h
bDo6SXNTYW1lPFQsIGludD46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCBpbnQ+
Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJwYXJJbnQiKSArIDo6dGVzdGlu
Zzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9CiAgIH0KIH07CiAKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKEN1c3RvbU5hbWUsIFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLAor
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEN1c3RvbU5hbWUsIFR5cGVQYXJhbWV0cml6
ZWRUZXN0V2l0aE5hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvVHlwZXMs
IFR5cGVQYXJhbWV0cml6ZWRUZXN0TmFtZXMpOwogCi0vLyBUZXN0cyB0aGF0IG11bHRpcGxlIFRZ
UEVEX1RFU1RfQ0FTRV9QJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKKy8vIFRlc3RzIHRo
YXQgbXVsdGlwbGUgVFlQRURfVEVTVF9TVUlURV9QJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNh
bWUKIC8vIHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3Mg
VHlwZWRUZXN0UDEgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBl
ZFRlc3RQMSk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UDEpOwogCi0vLyBGb3IgdGVz
dGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4gVFlQRURfVEVTVF9DQVNFX1AoKSBhbmQKKy8vIEZv
ciB0ZXN0aW5nIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX1NVSVRFX1AoKSBhbmQK
IC8vIFRZUEVEX1RFU1RfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVk
ZWYgaW50IEludEFmdGVyVHlwZWRUZXN0Q2FzZVA7Cit1c2luZyBJbnRBZnRlclR5cGVkVGVzdFN1
aXRlUCA9IGludDsKIAogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAxLCBBKSB7fQogVFlQRURfVEVT
VF9QKFR5cGVkVGVzdFAxLCBCKSB7fQogCiAvLyBGb3IgdGVzdGluZyB0aGF0IHRoZSBjb2RlIGJl
dHdlZW4gVFlQRURfVEVTVF9QKCkgYW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCgp
IGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVkZWYgaW50IEludEJlZm9yZVJl
Z2lzdGVyVHlwZWRUZXN0Q2FzZVA7CisvLyBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoKSBp
cyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCit1c2luZyBJbnRCZWZvcmVSZWdpc3RlclR5
cGVkVGVzdFN1aXRlUCA9IGludDsKIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRU
ZXN0UDEsIEEsIEIpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAxLCBB
LCBCKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQMiA6IHB1Ymxp
YyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAyKTsKK1RZUEVEX1RF
U1RfU1VJVEVfUChUeXBlZFRlc3RQMik7CiAKIC8vIFRoaXMgYWxzbyB2ZXJpZmllcyB0aGF0IHRl
c3RzIGZyb20gZGlmZmVyZW50IHR5cGUtcGFyYW1ldGVyaXplZAogLy8gdGVzdCBjYXNlcyBjYW4g
c2hhcmUgdGhlIHNhbWUgbmFtZS4KIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQMiwgQSkge30KIAot
UkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UDIsIEEpOworUkVHSVNURVJfVFlQ
RURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAyLCBBKTsKIAotLy8gVmVyaWZpZXMgdGhhdCB0aGUg
Y29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfQ0FTRV9QKCkgYW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9U
RVNUX0NBU0VfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLUludEFmdGVyVHlw
ZWRUZXN0Q2FzZVAgYWZ0ZXIgPSAwOwotSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RDYXNlUCBi
ZWZvcmUgPSAwOworLy8gVmVyaWZpZXMgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVEX1RFU1Rf
U1VJVEVfUCgpIGFuZAorLy8gUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKCkgaXMgbm90IGVu
Y2xvc2VkIGluIGEgbmFtZXNwYWNlLgorSW50QWZ0ZXJUeXBlZFRlc3RTdWl0ZVAgYWZ0ZXIgPSAw
OworSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RTdWl0ZVAgYmVmb3JlID0gMDsKIAotLy8gVmVy
aWZpZXMgdGhhdCB0aGUgbGFzdCBhcmd1bWVudCBvZiBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUCgpCisvLyBWZXJpZmllcyB0aGF0IHRoZSBsYXN0IGFyZ3VtZW50IG9mIElOU1RBTlRJQVRF
X1RZUEVEX1RFU1RfU1VJVEVfUCgpCiAvLyBjYW4gYmUgZWl0aGVyIGEgc2luZ2xlIHR5cGUgb3Ig
YSBUeXBlczwuLi4+IHR5cGUgbGlzdC4KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKElu
dCwgVHlwZWRUZXN0UDEsIGludCk7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChJbnQs
IFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVf
UChJbnQsIFR5cGVkVGVzdFAxLCBpbnQpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9Q
KEludCwgVHlwZWRUZXN0UDIsIFR5cGVzPGludD4pOwogCiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1l
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlCiAvLyBpbnN0YW50aWF0ZWQgbW9y
ZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgdHJhbnNsYXRpb24gdW5pdC4KLUlOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfQ0FTRV9QKERvdWJsZSwgVHlwZWRUZXN0UDIsIFR5cGVzPGRvdWJsZT4pOworSU5T
VEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKERvdWJsZSwgVHlwZWRUZXN0UDIsIFR5cGVzPGRv
dWJsZT4pOwogCiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1lIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0
IGNhc2UgY2FuIGJlCiAvLyBpbnN0YW50aWF0ZWQgaW4gZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVu
aXRzIGxpbmtlZCB0b2dldGhlci4KIC8vIChDb250YWluZXJUZXN0IGlzIGFsc28gaW5zdGFudGlh
dGVkIGluIGd0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYy4pCiB0eXBlZGVmIFR5cGVzPHN0ZDo6dmVj
dG9yPGRvdWJsZT4sIHN0ZDo6c2V0PGNoYXI+ID4gTXlDb250YWluZXJzOwotSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9DQVNFX1AoTXksIENvbnRhaW5lclRlc3QsIE15Q29udGFpbmVycyk7CitJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENvbnRhaW5lclRlc3QsIE15Q29udGFpbmVy
cyk7CiAKIC8vIFRlc3RzIHRoYXQgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBi
ZSBkZWZpbmVkIGFuZAogLy8gaW5zdGFudGlhdGVkIGluIGEgbmFtZXNwYWNlLgpAQCAtNDA2LDcg
KzM5OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgTnVtZXJpY1Rlc3QgOiBwdWJs
aWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChOdW1lcmljVGVzdCk7CitUWVBFRF9U
RVNUX1NVSVRFX1AoTnVtZXJpY1Rlc3QpOwogCiBUWVBFRF9URVNUX1AoTnVtZXJpY1Rlc3QsIERl
ZmF1bHRJc1plcm8pIHsKICAgRVhQRUNUX0VRKDAsIFR5cGVQYXJhbSgpKTsKQEAgLTQxNiw0NiAr
NDA5LDI5IEBAIFRZUEVEX1RFU1RfUChOdW1lcmljVGVzdCwgWmVyb0lzTGVzc1RoYW5PbmUpIHsK
ICAgRVhQRUNUX0xUKFR5cGVQYXJhbSgwKSwgVHlwZVBhcmFtKDEpKTsKIH0KIAotUkVHSVNURVJf
VFlQRURfVEVTVF9DQVNFX1AoTnVtZXJpY1Rlc3QsCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRF
X1AoTnVtZXJpY1Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0SXNaZXJv
LCBaZXJvSXNMZXNzVGhhbk9uZSk7CiB0eXBlZGVmIFR5cGVzPGludCwgZG91YmxlPiBOdW1lcmlj
VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgTnVtZXJpY1Rlc3QsIE51
bWVyaWNUeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIE51bWVyaWNU
ZXN0LCBOdW1lcmljVHlwZXMpOwogCiBzdGF0aWMgY29uc3QgY2hhciogR2V0VGVzdE5hbWUoKSB7
CiAgIHJldHVybiB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0
X2luZm8oKS0+bmFtZSgpOwogfQogLy8gVGVzdCB0aGUgc3RyaXBwaW5nIG9mIHNwYWNlIGZyb20g
dGVzdCBuYW1lcwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRyaW1tZWRUZXN0IDogcHVi
bGljIFRlc3QgeyB9OwotVFlQRURfVEVTVF9DQVNFX1AoVHJpbW1lZFRlc3QpOworVFlQRURfVEVT
VF9TVUlURV9QKFRyaW1tZWRUZXN0KTsKIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVzdDEp
IHsgRVhQRUNUX1NUUkVRKCJUZXN0MSIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9URVNUX1Ao
VHJpbW1lZFRlc3QsIFRlc3QyKSB7IEVYUEVDVF9TVFJFUSgiVGVzdDIiLCBHZXRUZXN0TmFtZSgp
KTsgfQogVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0MykgeyBFWFBFQ1RfU1RSRVEoIlRl
c3QzIiwgR2V0VGVzdE5hbWUoKSk7IH0KIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVzdDQp
IHsgRVhQRUNUX1NUUkVRKCJUZXN0NCIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9URVNUX1Ao
VHJpbW1lZFRlc3QsIFRlc3Q1KSB7IEVYUEVDVF9TVFJFUSgiVGVzdDUiLCBHZXRUZXN0TmFtZSgp
KTsgfQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoCitSRUdJU1RFUl9UWVBFRF9URVNUX1NV
SVRFX1AoCiAgICAgVHJpbW1lZFRlc3QsCiAgICAgVGVzdDEsIFRlc3QyLFRlc3QzICwgVGVzdDQg
LFRlc3Q1ICk7ICAvLyBOT0xJTlQKIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+
IHN0cnVjdCBNeVBhaXIge307CiAvLyBCZSBzdXJlIHRvIHRyeSBhIHR5cGUgd2l0aCBhIGNvbW1h
IGluIGl0cyBuYW1lIGp1c3QgaW4gY2FzZSBpdCBtYXR0ZXJzLgogdHlwZWRlZiBUeXBlczxpbnQs
IGRvdWJsZSwgTXlQYWlyPGludCwgaW50PiA+IFRyaW1UeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE15LCBUcmltbWVkVGVzdCwgVHJpbVR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChNeSwgVHJpbW1lZFRlc3QsIFRyaW1UeXBlcyk7CiAKIH0gIC8vIG5h
bWVzcGFjZSBsaWJyYXJ5MgogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQot
I2lmICFkZWZpbmVkKEdURVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChHVEVTVF9IQVNf
VFlQRURfVEVTVF9QKQotCi0vLyBHb29nbGUgVGVzdCBtYXkgbm90IHN1cHBvcnQgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIHdpdGggc29tZQotLy8gY29tcGlsZXJzLiBJZiB3ZSB1c2UgY29uZGl0
aW9uYWwgY29tcGlsYXRpb24gdG8gY29tcGlsZSBvdXQgYWxsCi0vLyBjb2RlIHJlZmVycmluZyB0
byB0aGUgZ3Rlc3RfbWFpbiBsaWJyYXJ5LCBNU1ZDIGxpbmtlciB3aWxsIG5vdCBsaW5rCi0vLyB0
aGF0IGxpYnJhcnkgYXQgYWxsIGFuZCBjb25zZXF1ZW50bHkgY29tcGxhaW4gYWJvdXQgbWlzc2lu
ZyBlbnRyeQotLy8gcG9pbnQgZGVmaW5lZCBpbiB0aGF0IGxpYnJhcnkgKGZhdGFsIGVycm9yIExO
SzE1NjE6IGVudHJ5IHBvaW50Ci0vLyBtdXN0IGJlIGRlZmluZWQpLiBUaGlzIGR1bW15IHRlc3Qg
a2VlcHMgZ3Rlc3RfbWFpbiBsaW5rZWQgaW4uCi1URVNUKER1bW15VGVzdCwgVHlwZWRUZXN0c0Fy
ZU5vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7fQotCi0jaWYgX01TQ19WRVIKLUdURVNUX0RJ
U0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQxMjcKLSNlbmRpZiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gIF9NU0NfVkVSCi0KLSNlbmRpZiAgLy8gI2lmICFkZWZpbmVkKEdU
RVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVF9QKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0
X3Rlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90
ZXN0LmgKaW5kZXggMmNjZTY3YzgyNWE2Y2FiZGI5YTU0YjkxOTI5YzAwYzk5MmEwZDQ3Yy4uOGNl
NTU5Yzk5ZjczNDFjZWI4YTBiMmI4OWM0YjFhOTcwMjZmYTVhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5oCkBAIC0yNywx
NCArMjcsMTEgQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotCi0jaWZuZGVm
IEdURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX1RFU1Rf
R1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfVEVTVF9HVEVTVF9U
WVBFRF9URVNUX1RFU1RfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9URVNUX0dURVNUX1RZUEVEX1RF
U1RfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNUX0hBU19U
WVBFRF9URVNUX1AKLQogdXNpbmcgdGVzdGluZzo6VGVzdDsKIAogLy8gRm9yIHRlc3RpbmcgdGhh
dCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQpAQCAtNDYsNyAr
NDMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIENvbnRhaW5lclRlc3QgOiBwdWJs
aWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChDb250YWluZXJUZXN0KTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChDb250YWluZXJUZXN0KTsKIAogVFlQRURfVEVTVF9QKENvbnRhaW5lclRl
c3QsIENhbkJlRGVmYXVsdENvbnN0cnVjdGVkKSB7CiAgIFR5cGVQYXJhbSBjb250YWluZXI7CkBA
IC01Nyw5ICs1NCw3IEBAIFRZUEVEX1RFU1RfUChDb250YWluZXJUZXN0LCBJbml0aWFsU2l6ZUlz
WmVybykgewogICBFWFBFQ1RfRVEoMFUsIGNvbnRhaW5lci5zaXplKCkpOwogfQogCi1SRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChDb250YWluZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ2FuQmVEZWZhdWx0Q29uc3RydWN0ZWQsIEluaXRpYWxTaXplSXNaZXJvKTsKLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRF
X1AoQ29udGFpbmVyVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5CZURlZmF1
bHRDb25zdHJ1Y3RlZCwgSW5pdGlhbFNpemVJc1plcm8pOwogCi0jZW5kaWYgIC8vIEdURVNUX1RF
U1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfVEVTVF9H
VEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjCmluZGV4IGYzZWEwM2E1OTZkMGY5
OWEzOTEyNTI2MzBkY2ExMDYyMjkzMTEyZmMuLjhlZjUwNTgzOGM3MGRmYzZlMzM1NGU4NTE4OWZj
M2ZhZjBiMGFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYwpAQCAtNTEsNjEgKzUxLDU2IEBAIHN0cnVjdCBM
ZXNzQnlOYW1lIHsKIAogY2xhc3MgVW5pdFRlc3RIZWxwZXIgewogIHB1YmxpYzoKLSAgLy8gUmV0
dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3QgY2FzZXMgc29ydGVkIGJ5IHRo
ZSB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRl
c3Qgc3VpdGVzIHNvcnRlZCBieSB0aGUgdGVzdCBzdWl0ZQogICAvLyBuYW1lLiAgVGhlIGNhbGxl
ciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIGFycmF5LgotICBzdGF0aWMgVGVzdENh
c2UgY29uc3QqKiBHZXRTb3J0ZWRUZXN0Q2FzZXMoKSB7CisgIHN0YXRpYyBUZXN0U3VpdGUgY29u
c3QqKiBHZXRTb3J0ZWRUZXN0U3VpdGVzKCkgewogICAgIFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAq
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7Ci0gICAgVGVzdENhc2UgY29uc3QqKiBjb25zdCB0ZXN0
X2Nhc2VzID0KLSAgICAgICAgbmV3IGNvbnN0IFRlc3RDYXNlKlt1bml0X3Rlc3QudG90YWxfdGVz
dF9jYXNlX2NvdW50KCldOworICAgIGF1dG8gY29uc3QqKiBjb25zdCB0ZXN0X3N1aXRlcyA9IG5l
dyBjb25zdCBUZXN0U3VpdGUqW3N0YXRpY19jYXN0PHNpemVfdD4oCisgICAgICB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpKV07CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHVu
aXRfdGVzdC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsgKytpKQotICAgICAgdGVzdF9jYXNlc1tp
XSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHVu
aXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkKKyAgICAgIHRlc3Rfc3VpdGVz
W2ldID0gdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKIAotICAgIHN0ZDo6c29ydCh0ZXN0X2Nh
c2VzLAotICAgICAgICAgICAgICB0ZXN0X2Nhc2VzICsgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2Fz
ZV9jb3VudCgpLAotICAgICAgICAgICAgICBMZXNzQnlOYW1lPFRlc3RDYXNlPigpKTsKLSAgICBy
ZXR1cm4gdGVzdF9jYXNlczsKKyAgICBzdGQ6OnNvcnQodGVzdF9zdWl0ZXMsCisgICAgICAgICAg
ICAgIHRlc3Rfc3VpdGVzICsgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSwKKyAg
ICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0U3VpdGU+KCkpOworICAgIHJldHVybiB0ZXN0X3N1
aXRlczsKICAgfQogCi0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2FzZSBieSBpdHMgbmFtZS4gIFRo
ZSBjYWxsZXIgZG9lc24ndCBvd24gdGhlIHJldHVybmVkCisgIC8vIFJldHVybnMgdGhlIHRlc3Qg
c3VpdGUgYnkgaXRzIG5hbWUuICBUaGUgY2FsbGVyIGRvZXNuJ3Qgb3duIHRoZSByZXR1cm5lZAog
ICAvLyBwb2ludGVyLgotICBzdGF0aWMgY29uc3QgVGVzdENhc2UqIEZpbmRUZXN0Q2FzZShjb25z
dCBjaGFyKiBuYW1lKSB7CisgIHN0YXRpYyBjb25zdCBUZXN0U3VpdGUqIEZpbmRUZXN0U3VpdGUo
Y29uc3QgY2hhciogbmFtZSkgewogICAgIFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAqVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgICAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2Fz
ZSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICAgIGlmICgwID09IHN0cmNtcCh0ZXN0
X2Nhc2UtPm5hbWUoKSwgbmFtZSkpCi0gICAgICAgIHJldHVybiB0ZXN0X2Nhc2U7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kp
IHsKKyAgICAgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IHVuaXRfdGVzdC5HZXRUZXN0
U3VpdGUoaSk7CisgICAgICBpZiAoMCA9PSBzdHJjbXAodGVzdF9zdWl0ZS0+bmFtZSgpLCBuYW1l
KSkKKyAgICAgICAgcmV0dXJuIHRlc3Rfc3VpdGU7CiAgICAgfQotICAgIHJldHVybiBOVUxMOwor
ICAgIHJldHVybiBudWxscHRyOwogICB9CiAKLSAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9p
bnRlcnMgdG8gYWxsIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJu
cyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0
IHN1aXRlCiAgIC8vIHNvcnRlZCBieSB0aGUgdGVzdCBuYW1lLiAgVGhlIGNhbGxlciBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlCiAgIC8vIGFycmF5LgotICBzdGF0aWMgVGVzdEluZm8g
Y29uc3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAg
VGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9Ci0gICAgICAgIG5ldyBjb25zdCBUZXN0SW5m
bypbdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCldOworICBzdGF0aWMgVGVzdEluZm8gY29u
c3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgICBU
ZXN0SW5mbyBjb25zdCoqIGNvbnN0IHRlc3RzID0gbmV3IGNvbnN0IFRlc3RJbmZvKltzdGF0aWNf
Y2FzdDxzaXplX3Q+KAorICAgICAgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpKV07CiAK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpOyAr
K2kpCi0gICAgICB0ZXN0c1tpXSA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkKKyAg
ICAgIHRlc3RzW2ldID0gdGVzdF9zdWl0ZS0+R2V0VGVzdEluZm8oaSk7CiAKLSAgICBzdGQ6OnNv
cnQodGVzdHMsIHRlc3RzICsgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCksCisgICAgc3Rk
Ojpzb3J0KHRlc3RzLCB0ZXN0cyArIHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKSwKICAg
ICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0SW5mbz4oKSk7CiAgICAgcmV0dXJuIHRlc3RzOwog
ICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcyBUZXN0Q2FzZVdpdGhDb21tZW50VGVzdCA6IHB1YmxpYyBUZXN0IHt9OwotVFlQRURf
VEVTVF9DQVNFKFRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LCBUeXBlczxpbnQ+KTsKLVRZUEVEX1RF
U1QoVGVzdENhc2VXaXRoQ29tbWVudFRlc3QsIER1bW15KSB7fQordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGNsYXNzIFRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdCA6IHB1YmxpYyBUZXN0IHt9OworVFlQ
RURfVEVTVF9TVUlURShUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QsIFR5cGVzPGludD4pOworVFlQ
RURfVEVTVChUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QsIER1bW15KSB7fQogCi1jb25zdCBpbnQg
a1R5cGVkVGVzdENhc2VzID0gMTsKK2NvbnN0IGludCBrVHlwZWRUZXN0U3VpdGVzID0gMTsKIGNv
bnN0IGludCBrVHlwZWRUZXN0cyA9IDE7Ci0jZWxzZQotY29uc3QgaW50IGtUeXBlZFRlc3RDYXNl
cyA9IDA7Ci1jb25zdCBpbnQga1R5cGVkVGVzdHMgPSAwOwotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVAogCiAvLyBXZSBjYW4gb25seSB0ZXN0IHRoZSBhY2Nlc3NvcnMgdGhhdCBkbyBu
b3QgY2hhbmdlIHZhbHVlIHdoaWxlIHRlc3RzIHJ1bi4KIC8vIFNpbmNlIHRlc3RzIGNhbiBiZSBy
dW4gaW4gYW55IG9yZGVyLCB0aGUgdmFsdWVzIHRoZSBhY2Nlc3NvcnMgdGhhdCB0cmFjawpAQCAt
MTEzLDIxICsxMDgsMTkgQEAgY29uc3QgaW50IGtUeXBlZFRlc3RzID0gMDsKIFRFU1QoQXBpVGVz
dCwgVW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3JrKSB7CiAgIFVuaXRUZXN0KiB1bml0X3Rl
c3QgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKIAotICBBU1NFUlRfRVEoMiArIGtUeXBlZFRl
c3RDYXNlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X2Nhc2VfY291bnQoKSk7Ci0gIEVYUEVDVF9F
USgxICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3QtPnRlc3RfY2FzZV90b19ydW5fY291bnQo
KSk7CisgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdFN1aXRlcywgdW5pdF90ZXN0LT50b3RhbF90
ZXN0X3N1aXRlX2NvdW50KCkpOworICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RTdWl0ZXMsIHVu
aXRfdGVzdC0+dGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSk7CiAgIEVYUEVDVF9FUSgyLCB1bml0
X3Rlc3QtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CiAgIEVYUEVDVF9FUSg1ICsga1R5cGVkVGVz
dHMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jb3VudCgpKTsKICAgRVhQRUNUX0VRKDMgKyBrVHlw
ZWRUZXN0cywgdW5pdF90ZXN0LT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0
Q2FzZSoqIGNvbnN0IHRlc3RfY2FzZXMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdENh
c2VzKCk7CisgIGNvbnN0IFRlc3RTdWl0ZSoqIGNvbnN0IHRlc3Rfc3VpdGVzID0gVW5pdFRlc3RI
ZWxwZXI6OkdldFNvcnRlZFRlc3RTdWl0ZXMoKTsKIAotICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3Qi
LCB0ZXN0X2Nhc2VzWzBdLT5uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3Qi
LCB0ZXN0X2Nhc2VzWzFdLT5uYW1lKCkpOwotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gIEVY
UEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2FzZXNbMl0tPm5h
bWUoKSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCisgIEVYUEVDVF9TVFJFUSgi
QXBpVGVzdCIsIHRlc3Rfc3VpdGVzWzBdLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkRJU0FC
TEVEX1Rlc3QiLCB0ZXN0X3N1aXRlc1sxXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0
U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rfc3VpdGVzWzJdLT5uYW1lKCkpOwogCi0gIGRl
bGV0ZVtdIHRlc3RfY2FzZXM7CisgIGRlbGV0ZVtdIHRlc3Rfc3VpdGVzOwogCiAgIC8vIFRoZSBm
b2xsb3dpbmcgbGluZXMgaW5pdGlhdGUgYWN0aW9ucyB0byB2ZXJpZnkgY2VydGFpbiBtZXRob2Rz
IGluCiAgIC8vIEZpbmFsU3VjY2Vzc0NoZWNrZXI6OlRlYXJEb3duLgpAQCAtMTM3LDE2MCArMTMw
LDE1NyBAQCBURVNUKEFwaVRlc3QsIFVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29yaykgewog
fQogCiBBc3NlcnRpb25SZXN1bHQgSXNOdWxsKGNvbnN0IGNoYXIqIHN0cikgewotICBpZiAoc3Ry
ICE9IE5VTEwpIHsKKyAgaWYgKHN0ciAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJuIHRlc3Rpbmc6
OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiYXJndW1lbnQgaXMgIiA8PCBzdHI7CiAgIH0KICAgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIH0KIAotVEVTVChBcGlUZXN0LCBUZXN0Q2FzZUltbXV0
YWJsZUFjY2Vzc29yc1dvcmspIHsKLSAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVuaXRU
ZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIkFwaVRlc3QiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9j
YXNlICE9IE5VTEwpOworVEVTVChBcGlUZXN0LCBUZXN0U3VpdGVJbW11dGFibGVBY2Nlc3NvcnNX
b3JrKSB7CisgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpG
aW5kVGVzdFN1aXRlKCJBcGlUZXN0Iik7CisgIEFTU0VSVF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVs
bHB0cik7CiAKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9jYXNlLT5uYW1lKCkpOwot
ICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9jYXNlLT50eXBlX3BhcmFtKCkpKTsKLSAgRVhQRUNU
X1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNl
LT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMywgdGVzdF9jYXNlLT50ZXN0
X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDQsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9j
b3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9zdWl0ZS0+bmFtZSgpKTsK
KyAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3VpdGUtPnR5cGVfcGFyYW0oKSkpOworICBFWFBF
Q1RfVFJVRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkpOworICBFWFBFQ1RfRVEoMSwgdGVzdF9z
dWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDMsIHRlc3Rfc3VpdGUt
PnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRfRVEoNCwgdGVzdF9zdWl0ZS0+dG90YWxf
dGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0SW5mbyoqIHRlc3RzID0gVW5pdFRlc3RIZWxw
ZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgIGNvbnN0IFRlc3RJbmZvKiogdGVzdHMg
PSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHModGVzdF9zdWl0ZSk7CiAKICAgRVhQRUNU
X1NUUkVRKCJESVNBQkxFRF9EdW1teTEiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NU
UkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RS
RVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJV
RShJc051bGwodGVzdHNbMF0tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxs
KHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpKTsKICAgRVhQRUNUX0ZBTFNFKHRlc3RzWzBdLT5zaG91
bGRfcnVuKCkpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dv
cmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNb
MV0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZURpc2FibGVk
QWNjZXNzb3JzV29yayIsIHRlc3RzWzFdLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkFwaVRl
c3QiLCB0ZXN0c1sxXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJVRShJc051bGwo
dGVzdHNbMV0tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFd
LT50eXBlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUodGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7
CiAKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZUltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0
c1syXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3Rf
Y2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZUltbXV0YWJsZUFjY2Vzc29y
c1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVz
dHNbMl0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJd
LT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1syXS0+dHlwZV9w
YXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKHRlc3RzWzJdLT5zaG91bGRfcnVuKCkpOwogCiAgIEVY
UEVDVF9TVFJFUSgiVW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbM10tPm5h
bWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzNdLT50ZXN0X2Nhc2VfbmFt
ZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFt
ZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzNdLT52YWx1ZV9wYXJhbSgpKSk7CiAg
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1szXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9U
UlVFKHRlc3RzWzNdLT5zaG91bGRfcnVuKCkpOwogCiAgIGRlbGV0ZVtdIHRlc3RzOwotICB0ZXN0
cyA9IE5VTEw7CisgIHRlc3RzID0gbnVsbHB0cjsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0gIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIlRlc3RDYXNlV2l0
aENvbW1lbnRUZXN0LzAiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9jYXNlICE9IE5VTEwpOworICB0
ZXN0X3N1aXRlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0U3VpdGUoIlRlc3RTdWl0ZVdpdGhD
b21tZW50VGVzdC8wIik7CisgIEFTU0VSVF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVsbHB0cik7CiAK
LSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9jYXNlLT5u
YW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3Rf
Y2FzZS0+dHlwZV9wYXJhbSgpKTsKLSAgRVhQRUNUX1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVu
KCkpOwotICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwot
ICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJU
X0VRKDEsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJU
ZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rfc3VpdGUtPm5hbWUoKSk7CisgIEVYUEVD
VF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3Rfc3VpdGUtPnR5
cGVfcGFyYW0oKSk7CisgIEVYUEVDVF9UUlVFKHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4oKSk7Cisg
IEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOworICBFWFBF
Q1RfRVEoMSwgdGVzdF9zdWl0ZS0+dGVzdF90b19ydW5fY291bnQoKSk7CisgIEFTU0VSVF9FUSgx
LCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCkpOwogCi0gIHRlc3RzID0gVW5pdFRlc3RI
ZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgIHRlc3RzID0gVW5pdFRlc3RIZWxw
ZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwogCiAgIEVYUEVDVF9TVFJFUSgiRHVtbXki
LCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50
VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRl
c3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsK
ICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gIEVYUEVD
VF9TVFJFUShHZXRUeXBlTmFtZTxpbnQ+KCkuY19zdHIoKSwgdGVzdHNbMF0tPnR5cGVfcGFyYW0o
KSk7CisgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRl
c3RzWzBdLT50eXBlX3BhcmFtKCkpOwogICBFWFBFQ1RfVFJVRSh0ZXN0c1swXS0+c2hvdWxkX3J1
bigpKTsKIAogICBkZWxldGVbXSB0ZXN0czsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1QKIH0KIAotVEVTVChBcGlUZXN0LCBUZXN0Q2FzZURpc2FibGVkQWNjZXNzb3JzV29yaykgewot
ICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2Fz
ZSgiRElTQUJMRURfVGVzdCIpOwotICBBU1NFUlRfVFJVRSh0ZXN0X2Nhc2UgIT0gTlVMTCk7CitU
RVNUKEFwaVRlc3QsIFRlc3RTdWl0ZURpc2FibGVkQWNjZXNzb3JzV29yaykgeworICBjb25zdCBU
ZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiRElT
QUJMRURfVGVzdCIpOworICBBU1NFUlRfVFJVRSh0ZXN0X3N1aXRlICE9IG51bGxwdHIpOwogCi0g
IEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3RfY2FzZS0+bmFtZSgpKTsKLSAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9GQUxT
RSh0ZXN0X2Nhc2UtPnNob3VsZF9ydW4oKSk7Ci0gIEVYUEVDVF9FUSgxLCB0ZXN0X2Nhc2UtPmRp
c2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2UtPnRlc3RfdG9f
cnVuX2NvdW50KCkpOwotICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50
KCkpOworICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X3N1aXRlLT5uYW1lKCkp
OworICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9zdWl0ZS0+dHlwZV9wYXJhbSgpKSk7CisgIEVY
UEVDVF9GQUxTRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkpOworICBFWFBFQ1RfRVEoMSwgdGVz
dF9zdWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDAsIHRlc3Rfc3Vp
dGUtPnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRfRVEoMSwgdGVzdF9zdWl0ZS0+dG90
YWxfdGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0g
dGVzdF9jYXNlLT5HZXRUZXN0SW5mbygwKTsKKyAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3Rf
aW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKDApOwogICBFWFBFQ1RfU1RSRVEoIkR1bW15
MiIsIHRlc3RfaW5mby0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0Iiwg
dGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9U
ZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVs
bCh0ZXN0X2luZm8tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rf
aW5mby0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9GQUxTRSh0ZXN0X2luZm8tPnNob3VsZF9y
dW4oKSk7CiB9CiAKIC8vIFRoZXNlIHR3byB0ZXN0cyBhcmUgaGVyZSB0byBwcm92aWRlIHN1cHBv
cnQgZm9yIHRlc3RpbmcKLS8vIHRlc3RfY2FzZV90b19ydW5fY291bnQsIGRpc2FibGVkX3Rlc3Rf
Y291bnQsIGFuZCB0ZXN0X3RvX3J1bl9jb3VudC4KKy8vIHRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50
LCBkaXNhYmxlZF90ZXN0X2NvdW50LCBhbmQgdGVzdF90b19ydW5fY291bnQuCiBURVNUKEFwaVRl
c3QsIERJU0FCTEVEX0R1bW15MSkge30KIFRFU1QoRElTQUJMRURfVGVzdCwgRHVtbXkyKSB7fQog
CiBjbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyIDogcHVibGljIEVudmlyb25tZW50IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92
ZXJyaWRlIHsKICAgICBVbml0VGVzdCogdW5pdF90ZXN0ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCk7CiAKLSAgICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT5zdWNj
ZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RT
dWl0ZXMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCkpOwogICAgIEVY
UEVDVF9FUSgzICsga1R5cGVkVGVzdHMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50
KCkpOwotICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3QtPmZhaWxlZF90ZXN0X2Nhc2VfY291bnQo
KSk7CisgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQo
KSk7CiAgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CiAg
ICAgRVhQRUNUX1RSVUUodW5pdF90ZXN0LT5QYXNzZWQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVu
aXRfdGVzdC0+RmFpbGVkKCkpOwotICAgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdENhc2VzLCB1
bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpKTsKLQotICAgIGNvbnN0IFRlc3RDYXNl
KiogY29uc3QgdGVzdF9jYXNlcyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0Q2FzZXMo
KTsKLQotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RfY2FzZXNbMF0tPm5hbWUoKSk7
Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZXNbMF0tPnR5cGVfcGFyYW0oKSkpOwot
ICAgIEVYUEVDVF9UUlVFKHRlc3RfY2FzZXNbMF0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNU
X0VRKDEsIHRlc3RfY2FzZXNbMF0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgQVNTRVJU
X0VRKDQsIHRlc3RfY2FzZXNbMF0tPnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VR
KDMsIHRlc3RfY2FzZXNbMF0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1Rf
RVEoMCwgdGVzdF9jYXNlc1swXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdF9jYXNlc1swXS0+UGFzc2VkKCkpOwotICAgIEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2Vz
WzBdLT5GYWlsZWQoKSk7Ci0KLSAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0
X2Nhc2VzWzFdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2VzWzFd
LT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlc1sxXS0+c2hvdWxk
X3J1bigpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlc1sxXS0+ZGlzYWJsZWRfdGVzdF9j
b3VudCgpKTsKLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlc1sxXS0+dG90YWxfdGVzdF9jb3Vu
dCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1sxXS0+c3VjY2Vzc2Z1bF90ZXN0X2Nv
dW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2VzWzFdLT5mYWlsZWRfdGVzdF9jb3Vu
dCgpKTsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gICAgRVhQRUNUX1NUUkVRKCJUZXN0
Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9jYXNlc1syXS0+bmFtZSgpKTsKLSAgICBFWFBF
Q1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3RfY2FzZXNbMl0tPnR5cGVf
cGFyYW0oKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1syXS0+c2hvdWxkX3J1bigpKTsK
LSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1syXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsK
LSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlc1syXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwot
ICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2VzWzJdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRSh0ZXN0X2Nhc2VzWzJdLT5QYXNzZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KHRlc3RfY2FzZXNbMl0tPkZhaWxlZCgpKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLQotICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6Rmlu
ZFRlc3RDYXNlKCJBcGlUZXN0Iik7Ci0gICAgY29uc3QgVGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRU
ZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICAgIEFTU0VSVF9FUSgyICsg
a1R5cGVkVGVzdFN1aXRlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkpOwor
CisgICAgY29uc3QgVGVzdFN1aXRlKiogY29uc3QgdGVzdF9zdWl0ZXMgPSBVbml0VGVzdEhlbHBl
cjo6R2V0U29ydGVkVGVzdFN1aXRlcygpOworCisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdF9zdWl0ZXNbMF0tPm5hbWUoKSk7CisgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3Vp
dGVzWzBdLT50eXBlX3BhcmFtKCkpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X3N1aXRlc1swXS0+
c2hvdWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZXNbMF0tPmRpc2FibGVk
X3Rlc3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VRKDQsIHRlc3Rfc3VpdGVzWzBdLT50b3RhbF90
ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgzLCB0ZXN0X3N1aXRlc1swXS0+c3VjY2Vzc2Z1
bF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1swXS0+ZmFpbGVk
X3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNbMF0tPlBhc3NlZCgp
KTsKKyAgICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZXNbMF0tPkZhaWxlZCgpKTsKKworICAgIEVY
UEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3Rfc3VpdGVzWzFdLT5uYW1lKCkpOworICAg
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRlc1sxXS0+dHlwZV9wYXJhbSgpKSk7CisgICAg
RVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVzWzFdLT5zaG91bGRfcnVuKCkpOworICAgIEVYUEVDVF9F
USgxLCB0ZXN0X3N1aXRlc1sxXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgICBBU1NFUlRf
RVEoMSwgdGVzdF9zdWl0ZXNbMV0tPnRvdGFsX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX0VR
KDAsIHRlc3Rfc3VpdGVzWzFdLT5zdWNjZXNzZnVsX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNU
X0VRKDAsIHRlc3Rfc3VpdGVzWzFdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKKworICAgIEVYUEVD
VF9TVFJFUSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X3N1aXRlc1syXS0+bmFt
ZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigp
LAorICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlc1syXS0+dHlwZV9wYXJhbSgpKTsKKyAgICBF
WFBFQ1RfVFJVRSh0ZXN0X3N1aXRlc1syXS0+c2hvdWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEo
MCwgdGVzdF9zdWl0ZXNbMl0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VR
KDEsIHRlc3Rfc3VpdGVzWzJdLT50b3RhbF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgx
LCB0ZXN0X3N1aXRlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9F
USgwLCB0ZXN0X3N1aXRlc1syXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX1RS
VUUodGVzdF9zdWl0ZXNbMl0tPlBhc3NlZCgpKTsKKyAgICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0
ZXNbMl0tPkZhaWxlZCgpKTsKKworICAgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IFVu
aXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJBcGlUZXN0Iik7CisgICAgY29uc3QgVGVzdElu
Zm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsK
ICAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX0R1bW15MSIsIHRlc3RzWzBdLT5uYW1lKCkpOwot
ICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9zdWl0ZV9uYW1lKCkp
OwogICAgIEVYUEVDVF9GQUxTRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigpKTsKIAotICAgIEVYUEVD
VF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgp
KTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+dGVzdF9jYXNlX25hbWUo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0
ZXN0c1sxXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+
dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sxXS0+dmFs
dWVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sxXS0+dHlwZV9wYXJh
bSgpKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7CiAgICAgRVhQ
RUNUX1RSVUUodGVzdHNbMV0tPnJlc3VsdCgpLT5QYXNzZWQoKSk7CiAgICAgRVhQRUNUX0VRKDAs
IHRlc3RzWzFdLT5yZXN1bHQoKS0+dGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKIAotICAgIEVYUEVD
VF9TVFJFUSgiVGVzdENhc2VJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUo
KSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3RfY2FzZV9uYW1l
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlSW1tdXRhYmxlQWNjZXNzb3JzV29yayIs
IHRlc3RzWzJdLT5uYW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJd
LT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT52
YWx1ZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT50eXBlX3Bh
cmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1syXS0+c2hvdWxkX3J1bigpKTsKQEAgLTI5
OCw3ICsyODgsNyBAQCBjbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyIDogcHVibGljIEVudmlyb25t
ZW50IHsKICAgICBFWFBFQ1RfRVEoMCwgdGVzdHNbMl0tPnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5
X2NvdW50KCkpOwogCiAgICAgRVhQRUNUX1NUUkVRKCJVbml0VGVzdEltbXV0YWJsZUFjY2Vzc29y
c1dvcmsiLCB0ZXN0c1szXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0
ZXN0c1szXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVz
dHNbM10tPnZhbHVlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10t
PnR5cGVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzNdLT5zaG91bGRfcnVuKCkp
OwpAQCAtMzEwLDIxICszMDAsMTkgQEAgY2xhc3MgRmluYWxTdWNjZXNzQ2hlY2tlciA6IHB1Ymxp
YyBFbnZpcm9ubWVudCB7CiAKICAgICBkZWxldGVbXSB0ZXN0czsKIAotI2lmIEdURVNUX0hBU19U
WVBFRF9URVNUCi0gICAgdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgi
VGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIpOwotICAgIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6
OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgICAgdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVs
cGVyOjpGaW5kVGVzdFN1aXRlKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIpOworICAgIHRl
c3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwogCiAgICAg
RVhQRUNUX1NUUkVRKCJEdW1teSIsIHRlc3RzWzBdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9TVFJF
USgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNb
MF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMF0t
PnZhbHVlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNf
c3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOworICAgIEVYUEVDVF9TVFJFUShHZXRUeXBl
TmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOwogICAg
IEVYUEVDVF9UUlVFKHRlc3RzWzBdLT5zaG91bGRfcnVuKCkpOwogICAgIEVYUEVDVF9UUlVFKHRl
c3RzWzBdLT5yZXN1bHQoKS0+UGFzc2VkKCkpOwogICAgIEVYUEVDVF9FUSgwLCB0ZXN0c1swXS0+
cmVzdWx0KCktPnRlc3RfcHJvcGVydHlfY291bnQoKSk7CiAKICAgICBkZWxldGVbXSB0ZXN0czsK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLSAgICBkZWxldGVbXSB0ZXN0X2Nhc2Vz
OworICAgIGRlbGV0ZVtdIHRlc3Rfc3VpdGVzOwogICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5jYwppbmRleCBlNjFlMzZiMWRmZThkYTAz
MDE2YWY1Nzg1NWIyYzc4MWVlN2Q5MWU2Li42MTViMjliNzA2NTE2YjE1ZmZiNmQxYWU1MTVhZTlh
NTY2MDBiODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X2FsbF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYWxs
X3Rlc3QuY2MKQEAgLTMzLDE0ICszMywxNCBAQAogLy8gU29tZXRpbWVzIGl0J3MgZGVzaXJhYmxl
IHRvIGJ1aWxkIG1vc3Qgb2YgR29vZ2xlIFRlc3QncyBvd24gdGVzdHMKIC8vIGJ5IGNvbXBpbGlu
ZyBhIHNpbmdsZSBmaWxlLiAgVGhpcyBmaWxlIHNlcnZlcyB0aGlzIHB1cnBvc2UuCiAjaW5jbHVk
ZSAidGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9nb29n
bGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRlc3QtbWVz
c2FnZS10ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1vcHRpb25zLXRlc3QuY2Mi
CiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LXBvcnQtdGVzdC5jYyIKLSNpbmNsdWRlICJ0ZXN0
L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyIKLSNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3Byb2Rf
dGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MiCi0j
aW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9n
dGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVz
dF90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIgor
I2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJvZF90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3Rf
c2tpcF90ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MiCiAjaW5jbHVk
ZSAidGVzdC9wcm9kdWN0aW9uLmNjIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYwppbmRleCAw
ZWFlODU3NWYzZmVlMzBiYWM2NDJiYTE1ODlmZjIzNGQwN2Y5NDU0Li5hZGE0Y2IzMGVmNjhjNTVk
YjgxMzU2NTI5MTg2ODM0ZTI1YzFhYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYwpA
QCAtODAsOCArODAsNyBAQCBURVNUKFRlc3QsIFRlc3QpIHsKICAgdHJ5IHsKICAgICBBc3NlcnRG
YWxzZSgpOwogICB9IGNhdGNoKGNvbnN0IHRlc3Rpbmc6OkFzc2VydGlvbkV4Y2VwdGlvbiYgZSkg
ewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBmYWlsdXJlIikgIT0gTlVMTCkK
LSAgICAgIHRocm93OworICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBmYWlsdXJl
IikgIT0gbnVsbHB0cikgdGhyb3c7CiAKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkEg
ZmFpbGVkIGFzc2VydGlvbiBkaWQgdGhyb3cgYW4gZXhjZXB0aW9uIG9mIHRoZSByaWdodCB0eXBl
LCAiCkBAIC05Nyw3ICs5Niw2IEBAIFRFU1QoVGVzdCwgVGVzdCkgewogaW50IGtUZXN0Rm9yQ29u
dGludWluZ1Rlc3QgPSAwOwogCiBURVNUKFRlc3QsIFRlc3QyKSB7Ci0gIC8vIEZJWE1FOiBob3cg
dG8gZm9yY2UgVGVzdDIgdG8gYmUgYWZ0ZXIgVGVzdD8KICAga1Rlc3RGb3JDb250aW51aW5nVGVz
dCA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfZW52aXJvbm1lbnRfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfZW52aXJvbm1lbnRfdGVzdC5jYwppbmRleCBiYzk1MjRkNjYzNzNlNzE5NTFjYWNjZDkwNmMw
NjZlZjRhZjk0YjQ2Li4wNjRiZmM1MGI5MTg0NTFlMjkwN2JkNTg1NjY3M2RkY2QyNzAxOTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Vudmlyb25tZW50
X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9lbnZpcm9u
bWVudF90ZXN0LmNjCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIE15RW52aXJvbm1lbnQgOiBwdWJs
aWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogICAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9m
IGZhaWx1cmVfaW5fc2V0X3VwXywgU2V0VXAoKSB3aWxsCiAgIC8vIGdlbmVyYXRlIGEgbm9uLWZh
dGFsIGZhaWx1cmUsIGdlbmVyYXRlIGEgZmF0YWwgZmFpbHVyZSwgb3IKICAgLy8gc3VjY2VlZC4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHNldF91cF93YXNfcnVuXyA9IHRydWU7CiAKICAgICBzd2l0Y2ggKGZhaWx1cmVfaW5fc2V0X3Vw
XykgewpAQCAtNjksNyArNjksNyBAQCBjbGFzcyBNeUVudmlyb25tZW50IDogcHVibGljIHRlc3Rp
bmc6OkVudmlyb25tZW50IHsKICAgfQogCiAgIC8vIEdlbmVyYXRlcyBhIG5vbi1mYXRhbCBmYWls
dXJlLgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7CiAgICAgdGVhcl9kb3duX3dhc19ydW5fID0gdHJ1ZTsKICAgICBBRERfRkFJTFVSRSgp
IDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZSBpbiBnbG9iYWwgdGVhci1kb3duLiI7CiAg
IH0KQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIENoZWNrKGJvb2wgY29uZGl0aW9uLCBjb25zdCBj
aGFyKiBtc2cpIHsKICAgfQogfQogCi0vLyBSdW5zIHRoZSB0ZXN0cy4gIFJldHVybiB0cnVlIGlm
ZiBzdWNjZXNzZnVsLgorLy8gUnVucyB0aGUgdGVzdHMuICBSZXR1cm4gdHJ1ZSBpZiBhbmQgb25s
eSBpZiBzdWNjZXNzZnVsLgogLy8KIC8vIFRoZSAnZmFpbHVyZScgcGFyYW1ldGVyIHNwZWNpZmll
cyB0aGUgdHlwZSBvZiBmYWlsdXJlIHRoYXQgc2hvdWxkCiAvLyBiZSBnZW5lcmF0ZWQgYnkgdGhl
IGdsb2JhbCBzZXQtdXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X2hlbHBfdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
aGVscF90ZXN0LnB5CmluZGV4IDU4MmQyNGMyZGNjZTg5NDUzOGFhNjNjY2JkNjEyMGJkZDRiMzUw
YTAuLjhkOTUzYmJkOWRjNGRiNzIzNjdhOTUwODIxMzIyNGU4ODBiZWEwYzMgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0LnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0LnB5CkBAIC00Myw2ICs0
Myw3IEBAIGltcG9ydCBndGVzdF90ZXN0X3V0aWxzCiAKIAogSVNfTElOVVggPSBvcy5uYW1lID09
ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0xpbnV4JworSVNfR05VS0ZSRUVCU0QgPSBv
cy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0dOVS9rRnJlZUJTRCcKIElT
X1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKIAogUFJPR1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91
dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoJ2d0ZXN0X2hlbHBfdGVzdF8nKQpAQCAtNjgsNiAr
NjksNyBAQCBIRUxQX1JFR0VYID0gcmUuY29tcGlsZSgKICAgICBGTEFHX1BSRUZJWCArIHInc2h1
ZmZsZS4qJyArCiAgICAgRkxBR19QUkVGSVggKyByJ3JhbmRvbV9zZWVkPS4qJyArCiAgICAgRkxB
R19QUkVGSVggKyByJ2NvbG9yPS4qJyArCisgICAgRkxBR19QUkVGSVggKyByJ2JyaWVmLionICsK
ICAgICBGTEFHX1BSRUZJWCArIHIncHJpbnRfdGltZS4qJyArCiAgICAgRkxBR19QUkVGSVggKyBy
J291dHB1dD0uKicgKwogICAgIEZMQUdfUFJFRklYICsgcidicmVha19vbl9mYWlsdXJlLionICsK
QEAgLTExMCw3ICsxMTIsNyBAQCBjbGFzcyBHVGVzdEhlbHBUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMu
VGVzdENhc2UpOgogICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIGV4aXRfY29kZSkKICAgICBzZWxm
LmFzc2VydF8oSEVMUF9SRUdFWC5zZWFyY2gob3V0cHV0KSwgb3V0cHV0KQogCi0gICAgaWYgSVNf
TElOVVg6CisgICAgaWYgSVNfTElOVVggb3IgSVNfR05VS0ZSRUVCU0Q6CiAgICAgICBzZWxmLmFz
c2VydF8oU1RSRUFNX1JFU1VMVF9UT19GTEFHIGluIG91dHB1dCwgb3V0cHV0KQogICAgIGVsc2U6
CiAgICAgICBzZWxmLmFzc2VydF8oU1RSRUFNX1JFU1VMVF9UT19GTEFHIG5vdCBpbiBvdXRwdXQs
IG91dHB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5CmluZGV4IDNiYmE3ZWEyY2ZkMzdjYWQ1NTA5ZjQw
ZjhlOGIwMDIyNzA2YmU3ODQuLmE0NDJmYzE2OWM4N2ZjMGRlYmI0MmQzNTJiMjhjNjM3MWRlZjMw
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9v
dXRwdXRfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9saXN0X291dHB1dF91bml0dGVzdC5weQpAQCAtNDYsMTYgKzQ2LDQyIEBAIEdURVNUX0xJU1Rf
VEVTVFNfRkxBRyA9ICctLWd0ZXN0X2xpc3RfdGVzdHMnCiBHVEVTVF9PVVRQVVRfRkxBRyA9ICct
LWd0ZXN0X291dHB1dCcKIAogRVhQRUNURURfWE1MID0gIiIiPFw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ilw/PgotPHRlc3RzdWl0ZXMgdGVzdHM9IjIiIG5hbWU9IkFsbFRlc3Rz
Ij4KKzx0ZXN0c3VpdGVzIHRlc3RzPSIxNiIgbmFtZT0iQWxsVGVzdHMiPgogICA8dGVzdHN1aXRl
IG5hbWU9IkZvb1Rlc3QiIHRlc3RzPSIyIj4KICAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEiIGZp
bGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0MyIgLz4KICAgICA8
dGVzdGNhc2UgbmFtZT0iVGVzdDIiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3Rf
LmNjIiBsaW5lPSI0NSIgLz4KICAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iRm9v
VGVzdEZpeHR1cmUiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDMiIGZpbGU9
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0OCIgLz4KKyAgICA8dGVz
dGNhc2UgbmFtZT0iVGVzdDQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNj
IiBsaW5lPSI0OSIgLz4KKyAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iVHlwZWRU
ZXN0LzAiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDciIHR5cGVfcGFyYW09
ImludCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYwIiAv
PgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0OCIgdHlwZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRl
PgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMiI+CisgICAgPHRlc3Rj
YXNlIG5hbWU9IlRlc3Q3IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0
cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjAiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q4
IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YyIgbGluZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlNpbmds
ZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IlRlc3Q5IiB0eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRf
dW5pdHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEwIiB0
eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBs
aW5lPSI2NyIgLz4KKyAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFt
ZT0iVGVzdDkiIHR5cGVfcGFyYW09ImJvb2wiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEwIiB0eXBl
X3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGlu
ZT0iNjciIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlZhbHVlUGFyYW0v
VmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDUvMCIg
dmFsdWVfcGFyYW09IjMzIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIg
bGluZT0iNTIiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q1LzEiIHZhbHVlX3BhcmFtPSI0
MiIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjUyIiAvPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0Ni8wIiB2YWx1ZV9wYXJhbT0iMzMiIGZpbGU9Ii4qZ3Rl
c3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI1MyIgLz4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iVGVzdDYvMSIgdmFsdWVfcGFyYW09IjQyIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNTMiIC8+CisgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVz
PgogIiIiCiAKIEVYUEVDVEVEX0pTT04gPSAiIiJ7Ci0gICJ0ZXN0cyI6IDIsCisgICJ0ZXN0cyI6
IDE2LAogICAibmFtZSI6ICJBbGxUZXN0cyIsCiAgICJ0ZXN0c3VpdGVzIjogXFsKICAgICB7CkBA
IC03Myw2ICs5OSwxMjQgQEAgRVhQRUNURURfSlNPTiA9ICIiInsKICAgICAgICAgICAibGluZSI6
IDQ1CiAgICAgICAgIH0KICAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJG
b29UZXN0Rml4dHVyZSIsCisgICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxb
CisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MyIsCisgICAgICAgICAgImZpbGUi
OiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjog
NDgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q0IiwKKyAg
ICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAg
ICAgICAgImxpbmUiOiA0OQorICAgICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiVHlwZWRUZXN0XFxcXC8wIiwKKyAgICAgICJ0ZXN0cyI6IDIsCisgICAgICAi
dGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q3IiwKKyAg
ICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDYwCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0OCIsCisgICAgICAgICAgInR5
cGVfcGFyYW0iOiAiaW50IiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2MQorICAgICAgICB9CisgICAgICBc
XQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVHlwZWRUZXN0XFxcXC8xIiwKKyAgICAg
ICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAg
ICJuYW1lIjogIlRlc3Q3IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAgICAg
ICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAg
ICAgImxpbmUiOiA2MAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAi
VGVzdDgiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxl
IjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6
IDYxCisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJT
aW5nbGVcXFxcL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlXFxcXC8wIiwKKyAgICAgICJ0ZXN0
cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1l
IjogIlRlc3Q5IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAgICAgICAgICJm
aWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGlu
ZSI6IDY2CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MTAi
LAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImludCIsCisgICAgICAgICAgImZpbGUiOiAiLipn
dGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNjcKKyAg
ICAgICAgfQorICAgICAgXF0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlNpbmdsZVxc
XFwvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVcXFxcLzEiLAorICAgICAgInRlc3RzIjogMiwK
KyAgICAgICJ0ZXN0c3VpdGUiOiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVz
dDkiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxlIjog
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY2
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MTAiLAorICAg
ICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY3CisgICAgICAg
IH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJWYWx1ZVBhcmFtXFxc
XC9WYWx1ZVBhcmFtVGVzdCIsCisgICAgICAidGVzdHMiOiA0LAorICAgICAgInRlc3RzdWl0ZSI6
IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NVxcXFwvMCIsCisgICAgICAg
ICAgInZhbHVlX3BhcmFtIjogIjMzIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rf
b3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDVcXFxcLzEiLAorICAgICAgICAgICJ2
YWx1ZV9wYXJhbSI6ICI0MiIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1
dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNTIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q2XFxcXC8wIiwKKyAgICAgICAgICAidmFsdWVf
cGFyYW0iOiAiMzMiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDUzCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAibmFtZSI6ICJUZXN0NlxcXFwvMSIsCisgICAgICAgICAgInZhbHVlX3BhcmFt
IjogIjQyIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MworICAgICAgICB9CisgICAgICBcXQogICAgIH0K
ICAgXF0KIH0KQEAgLTExNCw4ICsyNTgsOSBAQCBjbGFzcyBHVGVzdExpc3RUZXN0c091dHB1dFVu
aXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIHAgPSBndGVzdF90ZXN0X3V0
aWxzLlN1YnByb2Nlc3MoCiAgICAgICAgIGNvbW1hbmQsIGVudj1lbnZpcm9uX2NvcHksIHdvcmtp
bmdfZGlyPWd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVtcERpcigpKQogCi0gICAgc2VsZi5hc3NlcnRf
KHAuZXhpdGVkKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIHAuZXhpdF9jb2RlKQorICAgIHNl
bGYuYXNzZXJ0VHJ1ZShwLmV4aXRlZCkKKyAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHAuZXhpdF9j
b2RlKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShmaWxlX3BhdGgpKQogICAg
IHdpdGggb3BlbihmaWxlX3BhdGgpIGFzIGY6CiAgICAgICByZXN1bHQgPSBmLnJlYWQoKQogICAg
IHJldHVybiByZXN1bHQKQEAgLTEyOCw3ICsyNzMsNyBAQCBjbGFzcyBHVGVzdExpc3RUZXN0c091
dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIGZvciBhY3R1YWxf
bGluZSBpbiBhY3R1YWxfbGluZXM6CiAgICAgICBleHBlY3RlZF9saW5lID0gZXhwZWN0ZWRfbGlu
ZXNbbGluZV9jb3VudF0KICAgICAgIGV4cGVjdGVkX2xpbmVfcmUgPSByZS5jb21waWxlKGV4cGVj
dGVkX2xpbmUuc3RyaXAoKSkKLSAgICAgIHNlbGYuYXNzZXJ0XygKKyAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgKICAgICAgICAgICBleHBlY3RlZF9saW5lX3JlLm1hdGNoKGFjdHVhbF9saW5lLnN0cmlw
KCkpLAogICAgICAgICAgICgnYWN0dWFsIG91dHB1dCBvZiAiJXMiLFxuJwogICAgICAgICAgICAn
d2hpY2ggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVnZXggb2YgIiVzIlxuJwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVz
dF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYwppbmRleCBiMWM3YjRkZTM0NjFmYzE2NDVmNDExYjcxZjllMzdmODIyNGZkOGE2
Li45MmI5ZDRmMjhlZWMwM2E1ZmVhNzUzOTY3NDJlZDY4ODQ4MjZmMGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYwpAQCAtNDQsNiArNDQsMzIgQEAgVEVTVChGb29UZXN0LCBUZXN0MSkge30KIAog
VEVTVChGb29UZXN0LCBUZXN0Mikge30KIAorY2xhc3MgRm9vVGVzdEZpeHR1cmUgOiBwdWJsaWMg
Ojp0ZXN0aW5nOjpUZXN0IHt9OworVEVTVF9GKEZvb1Rlc3RGaXh0dXJlLCBUZXN0Mykge30KK1RF
U1RfRihGb29UZXN0Rml4dHVyZSwgVGVzdDQpIHt9CisKK2NsYXNzIFZhbHVlUGFyYW1UZXN0IDog
cHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworVEVTVF9QKFZhbHVlUGFy
YW1UZXN0LCBUZXN0NSkge30KK1RFU1RfUChWYWx1ZVBhcmFtVGVzdCwgVGVzdDYpIHt9CitJTlNU
QU5USUFURV9URVNUX1NVSVRFX1AoVmFsdWVQYXJhbSwgVmFsdWVQYXJhbVRlc3QsIDo6dGVzdGlu
Zzo6VmFsdWVzKDMzLCA0MikpOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFR5cGVk
VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307Cit0eXBlZGVmIHRlc3Rpbmc6OlR5cGVz
PGludCwgYm9vbD4gVHlwZWRUZXN0VHlwZXM7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdCwg
VHlwZWRUZXN0VHlwZXMpOworVFlQRURfVEVTVChUeXBlZFRlc3QsIFRlc3Q3KSB7fQorVFlQRURf
VEVTVChUeXBlZFRlc3QsIFRlc3Q4KSB7fQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNz
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlIDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsK
K1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSk7CitUWVBFRF9U
RVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUsIFRlc3Q5KSB7fQorVFlQRURfVEVTVF9Q
KFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBUZXN0MTApIHt9CitSRUdJU1RFUl9UWVBFRF9U
RVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUsIFRlc3Q5LCBUZXN0MTApOwor
dHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGJvb2w+IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChTaW5n
bGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXMpOworCiBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywg
YXJndik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
cHJlZF9pbXBsX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MKaW5kZXggYjQ2NmMxNTBhZWRjNDNmZGIxMDM3M2I3YTgw
MmNjYmU3NzU3OTBmOC4uYmJlZjk5NDdkOTlkYTQzYTY0NTVmMzA4Y2ExN2I3YjZjYjMwMWJmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVkX2ltcGxf
dW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVk
X2ltcGxfdW5pdHRlc3QuY2MKQEAgLTI3LDcgKzI3LDcgQEAKIC8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotLy8gVGhpcyBmaWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9u
IDAxLzAyLzIwMTggYnkgY29tbWFuZAorLy8gVGhpcyBmaWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VO
RVJBVEVEIG9uIDExLzA1LzIwMTkgYnkgY29tbWFuZAogLy8gJ2dlbl9ndGVzdF9wcmVkX2ltcGwu
cHkgNScuICBETyBOT1QgRURJVCBCWSBIQU5EIQogCiAvLyBSZWdyZXNzaW9uIHRlc3QgZm9yIGd0
ZXN0X3ByZWRfaW1wbC5oCkBAIC03OCw5ICs3OCw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uMShUMSB2
MSkgewogICByZXR1cm4gdjEgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlv
bnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGlj
aCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0
aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBh
IGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRl
bXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24x
SW50KGludCB2MSkgewogICByZXR1cm4gdjEgPiAwOwogfQpAQCAtMTIyLDEzICsxMjEsMTMgQEAg
c3RydWN0IFByZWRGb3JtYXRGdW5jdG9yMSB7CiAKIGNsYXNzIFByZWRpY2F0ZTFUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0
cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOwogICAgIG4xXyA9IDA7CiAgIH0KIAotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAg
Ly8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2
YWx1YXRlZAogICAgIC8vIGV4YWN0bHkgb25jZS4KICAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PApA
QCAtMTQ0LDEwICsxNDMsMTAgQEAgY2xhc3MgUHJlZGljYXRlMVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMg
Ym9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAK
ICAgc3RhdGljIGludCBuMV87CkBAIC00NjUsOSArNDY0LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24y
KFQxIHYxLCBUMiB2MikgewogICByZXR1cm4gdjEgKyB2MiA+IDA7CiB9CiAKLS8vIFRoZSBmb2xs
b3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8v
IGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0
ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJl
IG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0
IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBi
b29sIFByZWRGdW5jdGlvbjJJbnQoaW50IHYxLCBpbnQgdjIpIHsKICAgcmV0dXJuIHYxICsgdjIg
PiAwOwogfQpAQCAtNTE0LDEzICs1MTIsMTMgQEAgc3RydWN0IFByZWRGb3JtYXRGdW5jdG9yMiB7
CiAKIGNsYXNzIFByZWRpY2F0ZTJUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3Rl
Y3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
ewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNl
OwogICAgIG4xXyA9IG4yXyA9IDA7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNo
IG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAgIC8vIGV4YWN0
bHkgb25jZS4KICAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PApAQCAtNTM5LDEwICs1MzcsMTAgQEAg
Y2xhc3MgUHJlZGljYXRlMlRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9
CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRv
IGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBl
eHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5p
c2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNo
LgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8g
ZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CkBA
IC04OTQsOSArODkyLDggQEAgYm9vbCBQcmVkRnVuY3Rpb24zKFQxIHYxLCBUMiB2MiwgVDMgdjMp
IHsKICAgcmV0dXJuIHYxICsgdjIgKyB2MyA+IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdv
IGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1
LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQot
Ly8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBi
ZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cg
d2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRG
dW5jdGlvbjNJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2MykgewogICByZXR1cm4gdjEgKyB2MiAr
IHYzID4gMDsKIH0KQEAgLTk0OCwxMyArOTQ1LDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3Rv
cjMgewogCiBjbGFzcyBQcmVkaWNhdGUzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBw
cm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJy
aWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBm
YWxzZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRl
YXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVz
IHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAg
ICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTk3NiwxMCAr
OTczLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
ICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVk
IHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVu
Y3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0
ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVu
IHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBk
aWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBp
bnQgbjFfOwpAQCAtMTM2NSw5ICsxMzYyLDggQEAgYm9vbCBQcmVkRnVuY3Rpb240KFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCA+IDA7CiB9
CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZl
bnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3
aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3
byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisv
LyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBp
bnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjRJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2
MywgaW50IHY0KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCA+IDA7CiB9CkBAIC0xNDI0
LDEzICsxNDIwLDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjQgewogCiBjbGFzcyBQcmVk
aWNhdGU0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3Rl
ZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSBu
Ml8gPSBuM18gPSBuNF8gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewor
ICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBv
ZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5
IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTE0NTUsMTAgKzE0NTEsMTAgQEAg
Y2xhc3MgUHJlZGljYXRlNFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9
CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRv
IGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBl
eHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5p
c2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNo
LgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8g
ZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CkBA
IC0xODc4LDkgKzE4NzQsOCBAQCBib29sIFByZWRGdW5jdGlvbjUoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCArIHY1ID4gMDsK
IH0KIAotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3Vt
dmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVt
IHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlvbi4KKy8vIFRoZSBmb2xsb3dpbmcg
dHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGJlY2F1c2UgYSBjb21waWxlciBkb2Vzbid0IGhhdmUK
Ky8vIGEgY29udGV4dCB5ZXQgdG8ga25vdyB3aGljaCB0ZW1wbGF0ZSBmdW5jdGlvbiBtdXN0IGJl
IGluc3RhbnRpYXRlZC4KIGJvb2wgUHJlZEZ1bmN0aW9uNUludChpbnQgdjEsIGludCB2MiwgaW50
IHYzLCBpbnQgdjQsIGludCB2NSkgewogICByZXR1cm4gdjEgKyB2MiArIHYzICsgdjQgKyB2NSA+
IDA7CiB9CkBAIC0xOTQyLDEzICsxOTM3LDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjUg
ewogCiBjbGFzcyBQcmVkaWNhdGU1VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxz
ZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSBuNF8gPSBuNV8gPSAwOwogICB9CiAKLSAgdmlydHVh
bCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8v
IFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFs
dWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAg
LTE5NzYsMTAgKzE5NzEsMTAgQEAgY2xhc3MgUHJlZGljYXRlNVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMg
Ym9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAK
ICAgc3RhdGljIGludCBuMV87CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MKaW5kZXggYzFlOTMwNTZkOGI1NjJj
NTlmZWJhODI3OGUyMGMyOWRmMTNlMTkxNS4uMWQxMTg3ZWZmMDA2Y2M4ODc1MGVmOTU3ODI5ZDU4
MGFjNjkwMzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYwpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3Bh
Y2UgewogCiBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6
Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIGZpbGUgZXhpc3RzLgorICAvLyBSZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVuIGZpbGUgZXhpc3RzLgogICBzdGF0aWMg
Ym9vbCBGaWxlRXhpc3RzKGNvbnN0IGNoYXIqIGZpbGVwYXRoKSB7CiAgICAgU3RhdFN0cnVjdCBz
dGF0OwogICAgIHJldHVybiBTdGF0KGZpbGVwYXRoLCAmc3RhdCkgPT0gMDsKQEAgLTU2LDEyICs1
NiwxMiBAQCBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBwcmVt
YXR1cmVfZXhpdF9maWxlX3BhdGhfID0gR2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUi
KTsKIAogICAgIC8vIE5vcm1hbGl6ZSBOVUxMIHRvICIiIGZvciBlYXNlIG9mIGhhbmRsaW5nLgot
ICAgIGlmIChwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfID09IE5VTEwpIHsKKyAgICBpZiAocHJl
bWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSBudWxscHRyKSB7CiAgICAgICBwcmVtYXR1cmVfZXhp
dF9maWxlX3BhdGhfID0gIiI7CiAgICAgfQogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCiAgIGJvb2wgUHJlbWF0dXJl
RXhpdEZpbGVFeGlzdHMoKSBjb25zdCB7CiAgICAgcmV0dXJuIEZpbGVFeGlzdHMocHJlbWF0dXJl
X2V4aXRfZmlsZV9wYXRoXyk7CiAgIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKICAgLy8gVGVzdCB0aGF0IHRoZSBwcmVtYXR1cmUtZXhpdCBm
aWxlIGlzIGRlbGV0ZWQgdXBvbiByZXR1cm4gZnJvbQogICAvLyBSVU5fQUxMX1RFU1RTKCkuCiAg
IGNvbnN0IGNoYXIqIGNvbnN0IGZpbGVwYXRoID0gR2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElU
X0ZJTEUiKTsKLSAgaWYgKGZpbGVwYXRoICE9IE5VTEwgJiYgKmZpbGVwYXRoICE9ICdcMCcpIHsK
KyAgaWYgKGZpbGVwYXRoICE9IG51bGxwdHIgJiYgKmZpbGVwYXRoICE9ICdcMCcpIHsKICAgICBp
ZiAoUHJlbWF0dXJlRXhpdFRlc3Q6OkZpbGVFeGlzdHMoZmlsZXBhdGgpKSB7CiAgICAgICBwcmlu
dGYoCiAgICAgICAgICAgIkZpbGUgJXMgc2hvdWxkbid0IGV4aXN0IGFmdGVyIHRoZSB0ZXN0IHBy
b2dyYW0gZmluaXNoZXMsIGJ1dCBkb2VzLiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYwppbmRleCAxZThmNDk5YmI5ZGUzZDE0YmNiM2Ji
MWE2NDFjMDZkN2ExMjUwYWQyLi43ZGE0YTE1ZWExNDE5ODlmODY0MjZhNTcyYmFjMGE1OGIzM2Y3
NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVh
dF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcmVwZWF0
X3Rlc3QuY2MKQEAgLTc0LDggKzc0LDggQEAgaW50IGdfZW52aXJvbm1lbnRfdGVhcl9kb3duX2Nv
dW50ID0gMDsKIGNsYXNzIE15RW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1l
bnQgewogIHB1YmxpYzoKICAgTXlFbnZpcm9ubWVudCgpIHt9Ci0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsgZ19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQrKzsgfQotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7IGdfZW52aXJvbm1lbnRfdGVhcl9kb3duX2NvdW50Kys7IH0KKyAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsgZ19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQrKzsgfQorICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgeyBnX2Vudmlyb25tZW50X3RlYXJfZG93bl9jb3VudCsrOyB9CiB9
OwogCiAvLyBBIHRlc3QgdGhhdCBzaG91bGQgZmFpbC4KQEAgLTExNywxMyArMTE3LDEyIEBAIGNv
bnN0IGludCBrTnVtYmVyT2ZQYXJhbVRlc3RzID0gMTA7CiBjbGFzcyBNeVBhcmFtVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CiAKIFRFU1RfUChNeVBhcmFtVGVz
dCwgU2hvdWxkUGFzcykgewotICAvLyBGSVhNRTogTWFrZSBwYXJhbWV0ZXIgdmFsdWUgY2hlY2tp
bmcgcm9idXN0IFdSVCBvcmRlciBvZiB0ZXN0cy4KICAgR1RFU1RfQ0hFQ0tfSU5UX0VRXyhnX3Bh
cmFtX3Rlc3RfY291bnQgJSBrTnVtYmVyT2ZQYXJhbVRlc3RzLCBHZXRQYXJhbSgpKTsKICAgZ19w
YXJhbV90ZXN0X2NvdW50Kys7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChNeVBhcmFtU2Vx
dWVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBNeVBhcmFtVGVzdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3Rpbmc6OlJhbmdlKDAsIGtOdW1iZXJPZlBhcmFtVGVzdHMpKTsKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNeVBhcmFtU2VxdWVuY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgTXlQYXJhbVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6
UmFuZ2UoMCwga051bWJlck9mUGFyYW1UZXN0cykpOwogCiAvLyBSZXNldHMgdGhlIGNvdW50IGZv
ciBlYWNoIHRlc3QuCiB2b2lkIFJlc2V0Q291bnRzKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0LnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0ZTYzYWI4OTdkOTYyOGM2NzFjOTM2NGIxZjMzOTE3MDMyNjg1NjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBf
Y2hlY2tfb3V0cHV0X3Rlc3QucHkKQEAgLTAsMCArMSw1OSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjCisjIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlRlc3RzIEdvb2dsZSBUZXN0J3MgZ3Rlc3Qgc2tpcCBp
biBlbnZpcm9ubWVudCBzZXR1cCAgYmVoYXZpb3IuCisKK1RoaXMgc2NyaXB0IGludm9rZXMgZ3Rl
c3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0XyBhbmQgdmVyaWZpZXMgaXRzCitvdXRw
dXQuCisiIiIKKworaW1wb3J0IHJlCisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0
aCB0byB0aGUgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0IGJpbmFyeQorRVhF
X1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgnZ3Rlc3Rfc2tp
cF90ZXN0JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFU
SF0pLm91dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNraXBFbnRpcmVFbnZpcm9ubWVudFRlc3Qo
Z3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAgZGVmIHRlc3RTa2lwRW50aXJlRW52aXJv
bm1lbnRUZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0SW4oJ1NraXBwZWRcbnNraXBwaW5nIHNp
bmdsZSB0ZXN0XG4nLCBPVVRQVVQpCisgICAgc2tpcF9maXh0dXJlID0gJ1NraXBwZWRcbnNraXBw
aW5nIGFsbCB0ZXN0cyBmb3IgdGhpcyBmaXh0dXJlXG4nCisgICAgc2VsZi5hc3NlcnRJc05vdE5v
bmUoCisgICAgICAgIHJlLnNlYXJjaChza2lwX2ZpeHR1cmUgKyAnLionICsgc2tpcF9maXh0dXJl
LCBPVVRQVVQsIGZsYWdzPXJlLkRPVEFMTCksCisgICAgICAgIHJlcHIoT1VUUFVUKSkKKyAgICBz
ZWxmLmFzc2VydE5vdEluKCdGQUlMRUQnLCBPVVRQVVQpCisKKworaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9ubWVudF9jaGVja19vdXRwdXRf
dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9u
bWVudF9jaGVja19vdXRwdXRfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTc5MTU1NmFhNzFlNTYyM2Ez
NTdhZjgyMjcxM2I0ZGYyMTc2NDAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2Vudmlyb25tZW50X2NoZWNrX291dHB1dF90ZXN0LnB5
CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQg
MjAxOSBHb29nbGUgTExDLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisiIiJUZXN0cyBHb29nbGUgVGVzdCdzIGd0ZXN0IHNraXAgaW4gZW52aXJvbm1lbnQgc2V0dXAg
IGJlaGF2aW9yLgorCitUaGlzIHNjcmlwdCBpbnZva2VzIGd0ZXN0X3NraXBfaW5fZW52aXJvbm1l
bnRfc2V0dXBfdGVzdF8gYW5kIHZlcmlmaWVzIGl0cworb3V0cHV0LgorIiIiCisKK2ltcG9ydCBn
dGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0aCB0byB0aGUgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVu
dF9zZXR1cF90ZXN0IGJpbmFyeQorRVhFX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RF
eGVjdXRhYmxlUGF0aCgKKyAgICAnZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0
JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFUSF0pLm91
dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNraXBFbnRpcmVFbnZpcm9ubWVudFRlc3QoZ3Rlc3Rf
dGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAgZGVmIHRlc3RTa2lwRW50aXJlRW52aXJvbm1lbnRU
ZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0SW4oJ1NraXBwaW5nIHRoZSBlbnRpcmUgZW52aXJv
bm1lbnQnLCBPVVRQVVQpCisgICAgc2VsZi5hc3NlcnROb3RJbignRkFJTEVEJywgT1VUUFVUKQor
CisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfaW5f
ZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNzIz
MTA2MzgxNmUwNDdhY2RkMmZiNDE2ZGE4MGU0OTg2NDM4YmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0
dXBfdGVzdC5jYwpAQCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgMjAxOSwgR29vZ2xlIExM
Qy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIExMQy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisvLworLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgc2tpcHBpbmcg
aW4gdGhlIGVudmlyb25tZW50IHJlc3VsdHMgaW4gdGhlCisvLyB0ZXN0Y2FzZXMgYmVpbmcgc2tp
cHBlZC4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisK
K2NsYXNzIFNldHVwRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewor
IHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgR1RFU1RfU0tJUCgpIDw8ICJTa2lw
cGluZyB0aGUgZW50aXJlIGVudmlyb25tZW50IjsgfQorfTsKKworVEVTVChUZXN0LCBBbHdheXNG
YWlscykgeyBFWFBFQ1RfRVEodHJ1ZSwgZmFsc2UpOyB9CisKK2ludCBtYWluKGludCBhcmdjLCBj
aGFyICoqYXJndikgeworICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisK
KyAgdGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBTZXR1cEVudmlyb25tZW50
KCkpOworCisgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhMjMwMDRjY2Ez
NjgxNGVjM2JmN2UwYzEyNDQ0NGFkNjQ3NzBjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYwpAQCAtMCwwICsxLDU1IEBA
CisvLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgorLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8g
ZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy8vCisvLyBBdXRo
b3I6IGFyc2VueS5hcHJlbGV2QGdtYWlsLmNvbSAoQXJzZW55IEFwcmVsZXYpCisvLworCisjaW5j
bHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKwordXNpbmcgOjp0ZXN0aW5nOjpUZXN0OworCitURVNUKFNr
aXBUZXN0LCBEb2VzU2tpcCkgeworICBHVEVTVF9TS0lQKCkgPDwgInNraXBwaW5nIHNpbmdsZSB0
ZXN0IjsKKyAgRVhQRUNUX0VRKDAsIDEpOworfQorCitjbGFzcyBGaXh0dXJlIDogcHVibGljIFRl
c3QgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBHVEVTVF9T
S0lQKCkgPDwgInNraXBwaW5nIGFsbCB0ZXN0cyBmb3IgdGhpcyBmaXh0dXJlIjsKKyAgfQorfTsK
KworVEVTVF9GKEZpeHR1cmUsIFNraXBzT25lVGVzdCkgeworICBFWFBFQ1RfRVEoNSwgNyk7Cit9
CisKK1RFU1RfRihGaXh0dXJlLCBTa2lwc0Fub3RoZXJUZXN0KSB7CisgIEVYUEVDVF9FUSg5OSwg
MTAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
c3RyZXNzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3N0cmVz
c190ZXN0LmNjCmluZGV4IDk1YWRhMzljMzM3ZDBkNGVjZTZmZjViMzIzMmRlOTZjM2Q1OTg2YmQu
Ljg0MzQ4MTkxMGYwM2Y2OTg5NzczYzU4NmI4ZTExZWRkYmQ2MDM0Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNzX3Rlc3QuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9zdHJlc3NfdGVzdC5jYwpAQCAtNDUsNyAr
NDUsNiBAQCBuYW1lc3BhY2UgewogdXNpbmcgaW50ZXJuYWw6Ok5vdGlmaWNhdGlvbjsKIHVzaW5n
IGludGVybmFsOjpUZXN0UHJvcGVydHlLZXlJczsKIHVzaW5nIGludGVybmFsOjpUaHJlYWRXaXRo
UGFyYW07Ci11c2luZyBpbnRlcm5hbDo6c2NvcGVkX3B0cjsKIAogLy8gSW4gb3JkZXIgdG8gcnVu
IHRlc3RzIGluIHRoaXMgZmlsZSwgZm9yIHBsYXRmb3JtcyB3aGVyZSBHb29nbGUgVGVzdCBpcwog
Ly8gdGhyZWFkIHNhZmUsIGltcGxlbWVudCBUaHJlYWRXaXRoUGFyYW0uIFNlZSB0aGUgZGVzY3Jp
cHRpb24gb2YgaXRzIEFQSQpAQCAtMTE5LDcgKzExOCw3IEBAIHZvaWQgQ2hlY2tUZXN0RmFpbHVy
ZUNvdW50KGludCBleHBlY3RlZF9mYWlsdXJlcykgewogLy8gY29uY3VycmVudGx5LgogVEVTVChT
dHJlc3NUZXN0LCBDYW5Vc2VTY29wZWRUcmFjZUFuZEFzc2VydGlvbnNJbk1hbnlUaHJlYWRzKSB7
CiAgIHsKLSAgICBzY29wZWRfcHRyPFRocmVhZFdpdGhQYXJhbTxpbnQ+ID4gdGhyZWFkc1trVGhy
ZWFkQ291bnRdOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRXaXRoUGFyYW08aW50PiA+IHRo
cmVhZHNba1RocmVhZENvdW50XTsKICAgICBOb3RpZmljYXRpb24gdGhyZWFkc19jYW5fc3RhcnQ7
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0ga1RocmVhZENvdW50OyBpKyspCiAgICAgICB0aHJl
YWRzW2ldLnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08aW50PigmTWFueUFzc2VydHMsCkBAIC0x
NjMsNyArMTYyLDcgQEAgdm9pZCBGYWlsaW5nVGhyZWFkKGJvb2wgaXNfZmF0YWwpIHsKIH0KIAog
dm9pZCBHZW5lcmF0ZUZhdGFsRmFpbHVyZUluQW5vdGhlclRocmVhZChib29sIGlzX2ZhdGFsKSB7
Ci0gIFRocmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQoJkZhaWxpbmdUaHJlYWQsIGlzX2ZhdGFs
LCBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPGJvb2w+IHRocmVhZCgmRmFpbGluZ1RocmVhZCwg
aXNfZmF0YWwsIG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkKaW5kZXggNDNjYmE4ZjRj
ZDYxZGZmZjNhMWE1MjEwMWJlZDNlNzM0YTVlMWI1NC4uZDBjMjQ0NjZhNGI3ZTNlNjIzYjVhZjQ5
NWI4ZTI2ZWFhOGE5Yzg2NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF90ZXN0X3V0aWxzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfdGVzdF91dGlscy5weQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgc3lzCiAKIElTX1dJ
TkRPV1MgPSBvcy5uYW1lID09ICdudCcKIElTX0NZR1dJTiA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBh
bmQgJ0NZR1dJTicgaW4gb3MudW5hbWUoKVswXQorSVNfT1MyID0gb3MubmFtZSA9PSAnb3MyJwog
CiBpbXBvcnQgYXRleGl0CiBpbXBvcnQgc2h1dGlsCkBAIC0xNjQsNyArMTY1LDcgQEAgZGVmIEdl
dFRlc3RFeGVjdXRhYmxlUGF0aChleGVjdXRhYmxlX25hbWUsIGJ1aWxkX2Rpcj1Ob25lKToKIAog
ICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihidWlsZF9kaXIgb3IgR2V0QnVp
bGREaXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJs
ZV9uYW1lKSkKLSAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOKSBhbmQgbm90IHBhdGguZW5k
c3dpdGgoJy5leGUnKToKKyAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOIG9yIElTX09TMikg
YW5kIG5vdCBwYXRoLmVuZHN3aXRoKCcuZXhlJyk6CiAgICAgcGF0aCArPSAnLmV4ZScKIAogICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CkBAIC0yMTQsMTAgKzIxNSwxMCBAQCBjbGFzcyBT
dWJwcm9jZXNzOgogICAgIFJldHVybnM6CiAgICAgICBBbiBvYmplY3QgdGhhdCByZXByZXNlbnRz
IG91dGNvbWUgb2YgdGhlIGV4ZWN1dGVkIHByb2Nlc3MuIEl0IGhhcyB0aGUKICAgICAgIGZvbGxv
d2luZyBhdHRyaWJ1dGVzOgotICAgICAgICB0ZXJtaW5hdGVkX2J5X3NpZ25hbCAgIFRydWUgaWZm
IHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuIHRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBieSBhIHNpZ25hbC4KLSAgICAgICAgc2lnbmFsICAgICAgICAgICAgICAg
ICBTeWduYWwgdGhhdCB0ZXJtaW5hdGVkIHRoZSBjaGlsZCBwcm9jZXNzLgotICAgICAgICBleGl0
ZWQgICAgICAgICAgICAgICAgIFRydWUgaWZmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZCBub3Jt
YWxseS4KKyAgICAgICAgdGVybWluYXRlZF9ieV9zaWduYWwgICBUcnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVybWluYXRlZCBieSBhIHNpZ25hbC4KKyAgICAgICAgZXhpdGVkICAgICAgICAgICAgICAg
ICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGx5LgogICAgICAgICBleGl0X2NvZGUgICAgICAg
ICAgICAgIFRoZSBjb2RlIHdpdGggd2hpY2ggdGhlIGNoaWxkIHByb2Nlc3MgZXhpdGVkLgogICAg
ICAgICBvdXRwdXQgICAgICAgICAgICAgICAgIENoaWxkIHByb2Nlc3MncyBzdGRvdXQgYW5kIHN0
ZGVyciBvdXRwdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZCBpbiBh
IHN0cmluZy4KQEAgLTI4NywxMCArMjg4LDkgQEAgY2xhc3MgU3VicHJvY2VzczoKICAgICAgIGVs
c2U6ICAjIG9zLldJRkVYSVRFRChyZXRfY29kZSkgc2hvdWxkIHJldHVybiBUcnVlIGhlcmUuCiAg
ICAgICAgIHNlbGYuX3JldHVybl9jb2RlID0gb3MuV0VYSVRTVEFUVVMocmV0X2NvZGUpCiAKLSAg
ICBpZiBzZWxmLl9yZXR1cm5fY29kZSA8IDA6CisgICAgaWYgYm9vbChzZWxmLl9yZXR1cm5fY29k
ZSAmIDB4ODAwMDAwMDApOgogICAgICAgc2VsZi50ZXJtaW5hdGVkX2J5X3NpZ25hbCA9IFRydWUK
ICAgICAgIHNlbGYuZXhpdGVkID0gRmFsc2UKLSAgICAgIHNlbGYuc2lnbmFsID0gLXNlbGYuX3Jl
dHVybl9jb2RlCiAgICAgZWxzZToKICAgICAgIHNlbGYudGVybWluYXRlZF9ieV9zaWduYWwgPSBG
YWxzZQogICAgICAgc2VsZi5leGl0ZWQgPSBUcnVlCkBAIC0zMDYsOCArMzA2LDYgQEAgZGVmIE1h
aW4oKToKICAgX1BhcnNlQW5kU3RyaXBHVGVzdEZsYWdzKHN5cy5hcmd2KQogICAjIFRoZSB0ZXN0
ZWQgYmluYXJpZXMgc2hvdWxkIG5vdCBiZSB3cml0aW5nIFhNTCBvdXRwdXQgZmlsZXMgdW5sZXNz
IHRoZQogICAjIHNjcmlwdCBleHBsaWNpdGx5IGluc3RydWN0cyB0aGVtIHRvLgotICAjIEZJWE1F
OiBNb3ZlIHRoaXMgaW50byBTdWJwcm9jZXNzIHdoZW4gd2UgaW1wbGVtZW50Ci0gICMgcGFzc2lu
ZyBlbnZpcm9ubWVudCBpbnRvIGl0IGFzIGEgcGFyYW1ldGVyLgogICBpZiBHVEVTVF9PVVRQVVRf
VkFSX05BTUUgaW4gb3MuZW52aXJvbjoKICAgICBkZWwgb3MuZW52aXJvbltHVEVTVF9PVVRQVVRf
VkFSX05BTUVdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKaW5kZXggOTNmNTlkNDljZmRi
OTQ3NGRjYTYyMmMxN2EyYzk2NGFiMGJkNThmNC4uMWQ5NWFkYmY1MzdiYTkxNzgxNjM5ODdjMGQz
ZTBjOGFhMDNhYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKQEAgLTYzLDggKzYz
LDcgQEAgdm9pZCBUZXN0RmFpbHVyZVRocm93c1J1bnRpbWVFcnJvcigpIHsKICAgdHJ5IHsKICAg
ICBFWFBFQ1RfRVEoMiwgMykgPDwgIkV4cGVjdGVkIGZhaWx1cmUiOwogICB9IGNhdGNoKGNvbnN0
IHN0ZDo6cnVudGltZV9lcnJvciYgZSkgewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBl
Y3RlZCBmYWlsdXJlIikgIT0gTlVMTCkKLSAgICAgIHJldHVybjsKKyAgICBpZiAoc3Ryc3RyKGUu
d2hhdCgpLCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IG51bGxwdHIpIHJldHVybjsKIAogICAgIHBy
aW50ZigiJXMiLAogICAgICAgICAgICAiQSBmYWlsZWQgYXNzZXJ0aW9uIGRpZCB0aHJvdyBhbiBl
eGNlcHRpb24gb2YgdGhlIHJpZ2h0IHR5cGUsICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjCmluZGV4IGY3MjEzZmJmM2U1ZTg3MjA4OWJmYjk4NTUx
YWMzYmEzZTNhNjdiZjUuLjE3MzBlOGI4YzljOWI3NDJiNWRjZmQxZjUwNTViMmYyMzJkNDgzZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF91bml0dGVzdC5jYwpA
QCAtMzcsMjEgKzM3LDIyIEBACiAvLyBjb2RlIG9uY2UgImd0ZXN0LmgiIGhhcyBiZWVuICNpbmNs
dWRlZC4KIC8vIERvIG5vdCBtb3ZlIGl0IGFmdGVyIG90aGVyIGd0ZXN0ICNpbmNsdWRlcy4KIFRF
U1QoQ29tbWFuZExpbmVGbGFnc1Rlc3QsIENhbkJlQWNjZXNzZWRJbkNvZGVPbmNlR1Rlc3RISXNJ
bmNsdWRlZCkgewotICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFp
bHVyZSkKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykKLSAg
ICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3IpICE9ICJ1bmtub3duIgotICAgICAgfHwg
dGVzdGluZzo6R1RFU1RfRkxBRyhmaWx0ZXIpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhsaXN0X3Rlc3RzKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhv
dXRwdXQpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhwcmludF90
aW1lKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCkKLSAgICAgIHx8
IHRlc3Rpbmc6OkdURVNUX0ZMQUcocmVwZWF0KSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNU
X0ZMQUcoc2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHNodWZmbGUpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0YWNrX3RyYWNl
X2RlcHRoKSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90
bykgIT0gInVua25vd24iCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHRocm93X29uX2Zh
aWx1cmUpOworICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtf
b25fZmFpbHVyZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hf
ZXhjZXB0aW9ucykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3Ip
ICE9ICJ1bmtub3duIiB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhmYWls
X2Zhc3QpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZpbHRlcikgIT0g
InVua25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVz
dHMpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKG91dHB1dCkgIT0gInVu
a25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJyaWVmKSB8fCB0
ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5n
OjpHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RF
U1RfRkxBRyhyZXBlYXQpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxB
RyhzaG93X2ludGVybmFsX3N0YWNrX2ZyYW1lcykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6
OkdURVNUX0ZMQUcoc2h1ZmZsZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZM
QUcoc3RhY2tfdHJhY2VfZGVwdGgpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RF
U1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKSAhPSAidW5rbm93biIgfHwKKyAgICAgICAgICAgICAg
IHRlc3Rpbmc6OkdURVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSk7CiAgIEVYUEVDVF9UUlVFKGR1
bW15IHx8ICFkdW1teSk7ICAvLyBTdXBwcmVzc2VzIHdhcm5pbmcgdGhhdCBkdW1teSBpcyB1bnVz
ZWQuCiB9CiAKQEAgLTYwLDEyICs2MSwxMyBAQCBURVNUKENvbW1hbmRMaW5lRmxhZ3NUZXN0LCBD
YW5CZUFjY2Vzc2VkSW5Db2RlT25jZUdUZXN0SElzSW5jbHVkZWQpIHsKICNpbmNsdWRlIDxzdHJp
bmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUg
PG1hcD4KLSNpbmNsdWRlIDx2ZWN0b3I+CiAjaW5jbHVkZSA8b3N0cmVhbT4KLSNpZiBHVEVTVF9M
QU5HX0NYWDExCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2lu
Y2x1ZGUgPHVub3JkZXJlZF9zZXQ+Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKKyNpbmNs
dWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1zcGkuaCIKICNpbmNsdWRlICJz
cmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgiCkBAIC04MCw3ICs4Miw3IEBAIGNsYXNzIFN0cmVhbWlu
Z0xpc3RlbmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgY2xhc3MgRmFrZVNvY2tldFdyaXRlciA6
IHB1YmxpYyBTdHJlYW1pbmdMaXN0ZW5lcjo6QWJzdHJhY3RTb2NrZXRXcml0ZXIgewogICAgcHVi
bGljOgogICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRoZSBzb2NrZXQuCi0gICAgdmlydHVhbCB2
b2lkIFNlbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsgb3V0cHV0XyArPSBtZXNzYWdl
OyB9CisgICAgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZSB7
IG91dHB1dF8gKz0gbWVzc2FnZTsgfQogCiAgICAgc3RkOjpzdHJpbmcgb3V0cHV0XzsKICAgfTsK
QEAgLTg4LDggKzkwLDggQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXJUZXN0IDogcHVibGljIFRl
c3QgewogICBTdHJlYW1pbmdMaXN0ZW5lclRlc3QoKQogICAgICAgOiBmYWtlX3NvY2tfd3JpdGVy
XyhuZXcgRmFrZVNvY2tldFdyaXRlciksCiAgICAgICAgIHN0cmVhbWVyXyhmYWtlX3NvY2tfd3Jp
dGVyXyksCi0gICAgICAgIHRlc3RfaW5mb19vYmpfKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5V
TEwsCi0gICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5F
X18pLCAwLCBOVUxMKSB7fQorICAgICAgICB0ZXN0X2luZm9fb2JqXygiRm9vVGVzdCIsICJCYXIi
LCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24o
X19GSUxFX18sIF9fTElORV9fKSwgbnVsbHB0ciwgbnVsbHB0cikge30KIAogIHByb3RlY3RlZDoK
ICAgc3RkOjpzdHJpbmcqIG91dHB1dCgpIHsgcmV0dXJuICYoZmFrZV9zb2NrX3dyaXRlcl8tPm91
dHB1dF8pOyB9CkBAIC0xMTQsMTMgKzExNiwxMyBAQCBURVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJU
ZXN0LCBPblRlc3RJdGVyYXRpb25FbmQpIHsKIAogVEVTVF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVz
dCwgT25UZXN0Q2FzZVN0YXJ0KSB7CiAgICpvdXRwdXQoKSA9ICIiOwotICBzdHJlYW1lcl8uT25U
ZXN0Q2FzZVN0YXJ0KFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAg
c3RyZWFtZXJfLk9uVGVzdENhc2VTdGFydChUZXN0Q2FzZSgiRm9vVGVzdCIsICJCYXIiLCBudWxs
cHRyLCBudWxscHRyKSk7CiAgIEVYUEVDVF9FUSgiZXZlbnQ9VGVzdENhc2VTdGFydCZuYW1lPUZv
b1Rlc3RcbiIsICpvdXRwdXQoKSk7CiB9CiAKIFRFU1RfRihTdHJlYW1pbmdMaXN0ZW5lclRlc3Qs
IE9uVGVzdENhc2VFbmQpIHsKICAgKm91dHB1dCgpID0gIiI7Ci0gIHN0cmVhbWVyXy5PblRlc3RD
YXNlRW5kKFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFt
ZXJfLk9uVGVzdENhc2VFbmQoVGVzdENhc2UoIkZvb1Rlc3QiLCAiQmFyIiwgbnVsbHB0ciwgbnVs
bHB0cikpOwogICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RDYXNlRW5kJnBhc3NlZD0xJmVsYXBzZWRf
dGltZT0wbXNcbiIsICpvdXRwdXQoKSk7CiB9CiAKQEAgLTIwMiw5ICsyMDQsMTEgQEAgdXNpbmcg
dGVzdGluZzo6R1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OkdU
RVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucyk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNv
bG9yKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yayk7Cit1
c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKGZpbHRlcik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVzdHMpOwog
dXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQpOwordXNpbmcgdGVzdGluZzo6R1RFU1Rf
RkxBRyhicmllZik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogdXNp
bmcgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHJlcGVhdCk7CkBAIC0yMTUsMjcgKzIxOSwyNiBAQCB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyh0aHJv
d19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OklzTm90U3Vic3RyaW5nOwogdXNpbmcgdGVz
dGluZzo6SXNTdWJzdHJpbmc7Cit1c2luZyB0ZXN0aW5nOjprTWF4U3RhY2tUcmFjZURlcHRoOwog
dXNpbmcgdGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIHRlc3Rpbmc6OlNjb3BlZEZha2VUZXN0UGFy
dFJlc3VsdFJlcG9ydGVyOwogdXNpbmcgdGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxOwogdXNp
bmcgdGVzdGluZzo6VGVzdDsKLXVzaW5nIHRlc3Rpbmc6OlRlc3RDYXNlOwogdXNpbmcgdGVzdGlu
Zzo6VGVzdEV2ZW50TGlzdGVuZXJzOwogdXNpbmcgdGVzdGluZzo6VGVzdEluZm87CiB1c2luZyB0
ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDsKIHVzaW5nIHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJy
YXk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UHJvcGVydHk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UmVz
dWx0OwordXNpbmcgdGVzdGluZzo6VGVzdFN1aXRlOwogdXNpbmcgdGVzdGluZzo6VGltZUluTWls
bGlzOwogdXNpbmcgdGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
QWRkUmVmZXJlbmNlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlOwogdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6QXBwZW5kVXNlck1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlBd2Fy
ZUZpbmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlFcTsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpDb2RlUG9pbnRUb1V0Zjg7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29t
cGlsZUFzc2VydFR5cGVzRXF1YWw7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29weUFycmF5
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvdW50SWY7CiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6RXFGYWlsdXJlOwpAQCAtMjQzLDcgKzI0Niw2IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpGbG9hdGluZ1BvaW50OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZvckVhY2g7CiB1
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDE7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzOwot
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwogdXNpbmcgdGVzdGluZzo6
aW50ZXJuYWw6OkdldEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3A7CiB1c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6R2V0RWxlbWVudE9yOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldE5l
eHRSYW5kb21TZWVkOwpAQCAtMjUyLDIxICsyNTQsMjAgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJu
YWw6OkdldFRlc3RUeXBlSWQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGltZUluTWls
bGlzOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFR5cGVJZDsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW1w
bGljaXRseUNvbnZlcnRpYmxlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkludDMyOwordXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwordXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6Okhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpJbnQzMkZyb21FbnZPckRpZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJ
c0FQcm90b2NvbE1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXI7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXJUZXN0OwogdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OklzTm90Q29udGFpbmVyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtN
YXhSYW5kb21TZWVkOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtUZXN0VHlwZUlkSW5Hb29n
bGVUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok5hdGl2ZUFycmF5OwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6Ok9zU3RhY2tUcmFjZUdldHRlcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6UGFyc2VJbnQzMkZsYWc7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1Nv
dXJjZUNvcHk7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVy
ZW5jZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVDb25zdDsKLXVzaW5nIHRlc3Rp
bmc6OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
U2hvdWxkUnVuVGVzdE9uU2hhcmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkU2hh
cmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkVXNlQ29sb3I7CkBAIC0yNzcsMTUg
KzI3OCwxMSBAQCB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nOwog
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjpUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3NvcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpU
ZXN0UmVzdWx0QWNjZXNzb3I7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6VUludDMyOwogdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OlVuaXRUZXN0SW1wbDsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpXaWRlU3RyaW5nVG9VdGY4OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmVkaXRfZGlz
dGFuY2U6OkNhbGN1bGF0ZU9wdGltYWxFZGl0czsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpl
ZGl0X2Rpc3RhbmNlOjpDcmVhdGVVbmlmaWVkRGlmZjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjplZGl0X2Rpc3RhbmNlOjpFZGl0VHlwZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprTWF4
UmFuZG9tU2VlZDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprVGVzdFR5cGVJZEluR29vZ2xl
VGVzdDsKLXVzaW5nIHRlc3Rpbmc6OmtNYXhTdGFja1RyYWNlRGVwdGg7CiAKICNpZiBHVEVTVF9I
QVNfU1RSRUFNX1JFRElSRUNUSU9OCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0
ZG91dDsKQEAgLTQ0MCw4ICs0MzcsOCBAQCBjbGFzcyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0Fz
SXNvODYwMVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBjb25zdCBUaW1lSW5NaWxsaXMg
a01pbGxpc1BlclNlYyA9IDEwMDA7CiAKICBwcml2YXRlOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAg
ICBzYXZlZF90el8gPSBudWxscHRyOwogCiAgICAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRF
RF9QVVNIXygvKiBnZXRlbnYsIHN0cmR1cDogZGVwcmVjYXRlZCAqLykKICAgICBpZiAoZ2V0ZW52
KCJUWiIpKQpAQCAtNDU0LDEwICs0NTEsMTAgQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxs
aXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogICAgIFNldFRpbWVab25lKCJVVEMrMDAi
KTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigp
IG92ZXJyaWRlIHsKICAgICBTZXRUaW1lWm9uZShzYXZlZF90el8pOwogICAgIGZyZWUoY29uc3Rf
Y2FzdDxjaGFyKj4oc2F2ZWRfdHpfKSk7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgICBzYXZl
ZF90el8gPSBudWxscHRyOwogICB9CiAKICAgc3RhdGljIHZvaWQgU2V0VGltZVpvbmUoY29uc3Qg
Y2hhciogdGltZV96b25lKSB7CkBAIC00ODksNjEgKzQ4NiwxMTIgQEAgY2xhc3MgRm9ybWF0RXBv
Y2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogY29uc3QgVGltZUlu
TWlsbGlzIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdDo6a01pbGxpc1BlclNl
YzsKIAogVEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRz
VHdvRGlnaXRTZWdtZW50cykgewotICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIiLAor
ICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIuMDAwIiwKICAgICAgICAgICAgIEZvcm1h
dEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMjAwODcxNjIgKiBrTWlsbGlzUGVyU2VjKSk7
CiB9CiAKLVRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIE1pbGxp
c2Vjb25kc0RvTm90QWZmZWN0UmVzdWx0KSB7CitURVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxs
aXNBc0lzbzg2MDFUZXN0LCBJbmNsdWRlc01pbGxpc2Vjb25kc0FmdGVyRG90KSB7CiAgIEVYUEVD
VF9FUSgKLSAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQyIiwKKyAgICAgICIyMDExLTEwLTMxVDE4
OjUyOjQyLjIzNCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIw
MDg3MTYyICoga01pbGxpc1BlclNlYyArIDIzNCkpOwogfQogCiBURVNUX0YoRm9ybWF0RXBvY2hU
aW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNMZWFkaW5nWmVyb2VzKSB7Ci0gIEVYUEVD
VF9FUSgiMjAxMS0wOS0wM1QwNTowNzowMiIsCisgIEVYUEVDVF9FUSgiMjAxMS0wOS0wM1QwNTow
NzowMi4wMDAiLAogICAgICAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEo
MTMxNTAyNjQyMiAqIGtNaWxsaXNQZXJTZWMpKTsKIH0KIAogVEVTVF9GKEZvcm1hdEVwb2NoVGlt
ZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRzMjRIb3VyVGltZSkgewotICBFWFBFQ1RfRVEo
IjIwMTEtMDktMjhUMTc6MDg6MjIiLAorICBFWFBFQ1RfRVEoIjIwMTEtMDktMjhUMTc6MDg6MjIu
MDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMTcy
Mjk3MDIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKIFRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzSXNvODYwMVRlc3QsIFByaW50c0Vwb2NoU3RhcnQpIHsKLSAgRVhQRUNUX0VRKCIxOTcw
LTAxLTAxVDAwOjAwOjAwIiwgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMCkpOwor
ICBFWFBFQ1RfRVEoIjE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwIiwgRm9ybWF0RXBvY2hUaW1lSW5N
aWxsaXNBc0lzbzg2MDEoMCkpOwogfQogCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAotCiAj
IGlmZGVmIF9fQk9STEFORENfXwogLy8gU2lsZW5jZXMgd2FybmluZ3M6ICJDb25kaXRpb24gaXMg
YWx3YXlzIHRydWUiLCAiVW5yZWFjaGFibGUgY29kZSIKICMgIHByYWdtYSBvcHRpb24gcHVzaCAt
dy1jY2MgLXctcmNoCiAjIGVuZGlmCiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRF
UkFMXyh4KSBpcyB0cnVlIHdoZW4geCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0ZXJhbC4KLVRF
U1QoTnVsbExpdGVyYWxUZXN0LCBJc1RydWVGb3JOdWxsTGl0ZXJhbHMpIHsKLSAgRVhQRUNUX1RS
VUUoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyhOVUxMKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lT
X05VTExfTElURVJBTF8oMCkpOwotICBFWFBFQ1RfVFJVRShHVEVTVF9JU19OVUxMX0xJVEVSQUxf
KDBVKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oMEwpKTsKKy8vIFRl
c3RzIHRoYXQgdGhlIExIUyBvZiBFWFBFQ1RfRVEgb3IgQVNTRVJUX0VRIGNhbiBiZSB1c2VkIGFz
IGEgbnVsbCBsaXRlcmFsCisvLyB3aGVuIHRoZSBSSFMgaXMgYSBwb2ludGVyIHR5cGUuCitURVNU
KE51bGxMaXRlcmFsVGVzdCwgTEhTQWxsb3dzTnVsbExpdGVyYWxzKSB7CisgIEVYUEVDVF9FUSgw
LCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEFTU0VSVF9F
USgwLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEVYUEVD
VF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisgIEFT
U0VSVF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisg
IEVYUEVDVF9FUShudWxscHRyLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworICBBU1NF
UlRfRVEobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKworICBjb25zdCBp
bnQqIGNvbnN0IHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoMCwgcCk7ICAgICAvLyBOT0xJTlQK
KyAgQVNTRVJUX0VRKDAsIHApOyAgICAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShOVUxMLCBwKTsg
IC8vIE5PTElOVAorICBBU1NFUlRfRVEoTlVMTCwgcCk7ICAvLyBOT0xJTlQKKyAgRVhQRUNUX0VR
KG51bGxwdHIsIHApOworICBBU1NFUlRfRVEobnVsbHB0ciwgcCk7Cit9CisKK3N0cnVjdCBDb252
ZXJ0VG9BbGwgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgVCgpIGNvbnN0
IHsgIC8vIE5PTElOVAorICAgIHJldHVybiBUKCk7CisgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0
VG9Qb2ludGVyIHsKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIG9wZXJhdG9yIFQqKCkgY29uc3Qg
eyAgLy8gTk9MSU5UCisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KK307CisKK3N0cnVjdCBDb252
ZXJ0VG9BbGxCdXROb1BvaW50ZXJzIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsCisgICAgICAg
ICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19wb2ludGVyPFQ+Ojp2YWx1ZSwg
aW50Pjo6dHlwZSA9IDA+CisgIG9wZXJhdG9yIFQoKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAgICBy
ZXR1cm4gVCgpOworICB9Cit9OworCitzdHJ1Y3QgTXlUeXBlIHt9OworaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShNeVR5cGUgY29uc3QmLCBNeVR5cGUgY29uc3QmKSB7IHJldHVybiB0cnVlOyB9CisK
K1RFU1QoTnVsbExpdGVyYWxUZXN0LCBJbXBsaWNpdENvbnZlcnNpb24pIHsKKyAgRVhQRUNUX0VR
KENvbnZlcnRUb1BvaW50ZXJ7fSwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKyNpZiAh
ZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pCisgIC8vIERpc2FibGVkIGR1
ZSB0byBHQ0MgYnVnIGdjYy5nbnUub3JnL1BSODk1ODAKKyAgRVhQRUNUX0VRKENvbnZlcnRUb0Fs
bHt9LCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworI2VuZGlmCisgIEVYUEVDVF9FUShD
b252ZXJ0VG9BbGx7fSwgTXlUeXBle30pOworICBFWFBFQ1RfRVEoQ29udmVydFRvQWxsQnV0Tm9Q
b2ludGVyc3t9LCBNeVR5cGV7fSk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9M
SVRFUkFMXyh4KSBpcyBmYWxzZSB3aGVuIHggaXMgbm90IGEgbnVsbAotLy8gcG9pbnRlciBsaXRl
cmFsLgotVEVTVChOdWxsTGl0ZXJhbFRlc3QsIElzRmFsc2VGb3JOb25OdWxsTGl0ZXJhbHMpIHsK
LSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oMSkpOwotICBFWFBFQ1RfRkFM
U0UoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXygwLjApKTsKLSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lT
X05VTExfTElURVJBTF8oJ2EnKSk7Ci0gIEVYUEVDVF9GQUxTRShHVEVTVF9JU19OVUxMX0xJVEVS
QUxfKHN0YXRpY19jYXN0PHZvaWQqPihOVUxMKSkpOworI2lmZGVmIF9fY2xhbmdfXworI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNpZiBfX2hhc193YXJuaW5nKCItV3plcm8tYXMtbnVs
bC1wb2ludGVyLWNvbnN0YW50IikKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBlcnJvciAiLVd6
ZXJvLWFzLW51bGwtcG9pbnRlci1jb25zdGFudCIKKyNlbmRpZgorI2VuZGlmCisKK1RFU1QoTnVs
bExpdGVyYWxUZXN0LCBOb0NvbnZlcnNpb25Ob1dhcm5pbmcpIHsKKyAgLy8gVGVzdCB0aGF0IGd0
ZXN0cyBkZXRlY3Rpb24gYW5kIGhhbmRsaW5nIG9mIG51bGwgcG9pbnRlciBjb25zdGFudHMKKyAg
Ly8gZG9lc24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuICcwJyBpc24ndCBhY3R1YWxseSB1c2Vk
IGFzIG51bGwuCisgIEVYUEVDVF9FUSgwLCAwKTsKKyAgQVNTRVJUX0VRKDAsIDApOwogfQogCisj
aWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKwog
IyBpZmRlZiBfX0JPUkxBTkRDX18KIC8vIFJlc3RvcmVzIHdhcm5pbmdzIGFmdGVyIHByZXZpb3Vz
ICIjcHJhZ21hIG9wdGlvbiBwdXNoIiBzdXBwcmVzc2VkIHRoZW0uCiAjICBwcmFnbWEgb3B0aW9u
IHBvcAogIyBlbmRpZgogCi0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIC8vCiAv
LyBUZXN0cyBDb2RlUG9pbnRUb1V0ZjgoKS4KIApAQCAtNTg4LDcgKzYzNiw3IEBAIFRFU1QoQ29k
ZVBvaW50VG9VdGY4VGVzdCwgQ2FuRW5jb2RlMTJUbzE2Qml0cykgewogCiAjaWYgIUdURVNUX1dJ
REVfU1RSSU5HX1VTRVNfVVRGMTZfCiAvLyBUZXN0cyBpbiB0aGlzIGdyb3VwIHJlcXVpcmUgYSB3
Y2hhcl90IHRvIGhvbGQgPiAxNiBiaXRzLCBhbmQgdGh1cwotLy8gYXJlIHNraXBwZWQgb24gV2lu
ZG93cywgQ3lnd2luLCBhbmQgU3ltYmlhbiwgd2hlcmUgYSB3Y2hhcl90IGlzCisvLyBhcmUgc2tp
cHBlZCBvbiBXaW5kb3dzLCBhbmQgQ3lnd2luLCB3aGVyZSBhIHdjaGFyX3QgaXMKIC8vIDE2LWJp
dCB3aWRlLiBUaGlzIGNvZGUgbWF5IG5vdCBjb21waWxlIG9uIHRob3NlIHN5c3RlbXMuCiAKIC8v
IFRlc3RzIHRoYXQgVW5pY29kZSBjb2RlLXBvaW50cyB0aGF0IGhhdmUgMTcgdG8gMjEgYml0cyBh
cmUgZW5jb2RlZApAQCAtNzQzLDcgKzc5MSw3IEBAIFRFU1QoUmFuZG9tRGVhdGhUZXN0LCBHZW5l
cmF0ZXNDcmFzaGVzT25JbnZhbGlkUmFuZ2UpIHsKIH0KIAogVEVTVChSYW5kb21UZXN0LCBHZW5l
cmF0ZXNOdW1iZXJzV2l0aGluUmFuZ2UpIHsKLSAgY29uc3QgVUludDMyIGtSYW5nZSA9IDEwMDAw
OworICBjb25zdGV4cHIgdWludDMyX3Qga1JhbmdlID0gMTAwMDA7CiAgIHRlc3Rpbmc6OmludGVy
bmFsOjpSYW5kb20gcmFuZG9tKDEyMzQ1KTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsr
KSB7CiAgICAgRVhQRUNUX0xUKHJhbmRvbS5HZW5lcmF0ZShrUmFuZ2UpLCBrUmFuZ2UpIDw8ICIg
Zm9yIGl0ZXJhdGlvbiAiIDw8IGk7CkBAIC03NTYsMTAgKzgwNCwxMCBAQCBURVNUKFJhbmRvbVRl
c3QsIEdlbmVyYXRlc051bWJlcnNXaXRoaW5SYW5nZSkgewogfQogCiBURVNUKFJhbmRvbVRlc3Qs
IFJlcGVhdHNXaGVuUmVzZWVkZWQpIHsKLSAgY29uc3QgaW50IGtTZWVkID0gMTIzOwotICBjb25z
dCBpbnQga0FycmF5U2l6ZSA9IDEwOwotICBjb25zdCBVSW50MzIga1JhbmdlID0gMTAwMDA7Ci0g
IFVJbnQzMiB2YWx1ZXNba0FycmF5U2l6ZV07CisgIGNvbnN0ZXhwciBpbnQga1NlZWQgPSAxMjM7
CisgIGNvbnN0ZXhwciBpbnQga0FycmF5U2l6ZSA9IDEwOworICBjb25zdGV4cHIgdWludDMyX3Qg
a1JhbmdlID0gMTAwMDA7CisgIHVpbnQzMl90IHZhbHVlc1trQXJyYXlTaXplXTsKIAogICB0ZXN0
aW5nOjppbnRlcm5hbDo6UmFuZG9tIHJhbmRvbShrU2VlZCk7CiAgIGZvciAoaW50IGkgPSAwOyBp
IDwga0FycmF5U2l6ZTsgaSsrKSB7CkBAIC04NTEsMjMgKzg5OSwyMyBAQCBURVNUKENvbnRhaW5l
clV0aWxpdHlEZWF0aFRlc3QsIFNodWZmbGVSYW5nZSkgewogCiBjbGFzcyBWZWN0b3JTaHVmZmxl
VGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyBjb25zdCBpbnQga1Zl
Y3RvclNpemUgPSAyMDsKKyAgc3RhdGljIGNvbnN0IHNpemVfdCBrVmVjdG9yU2l6ZSA9IDIwOwog
CiAgIFZlY3RvclNodWZmbGVUZXN0KCkgOiByYW5kb21fKDEpIHsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRp
Y19jYXN0PGludD4oa1ZlY3RvclNpemUpOyBpKyspIHsKICAgICAgIHZlY3Rvcl8ucHVzaF9iYWNr
KGkpOwogICAgIH0KICAgfQogCiAgIHN0YXRpYyBib29sIFZlY3RvcklzQ29ycnVwdChjb25zdCBU
ZXN0aW5nVmVjdG9yJiB2ZWN0b3IpIHsKLSAgICBpZiAoa1ZlY3RvclNpemUgIT0gc3RhdGljX2Nh
c3Q8aW50Pih2ZWN0b3Iuc2l6ZSgpKSkgeworICAgIGlmIChrVmVjdG9yU2l6ZSAhPSB2ZWN0b3Iu
c2l6ZSgpKSB7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBib29sIGZvdW5kX2lu
X3ZlY3RvcltrVmVjdG9yU2l6ZV0gPSB7IGZhbHNlIH07CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB2ZWN0b3Iuc2l6ZSgpOyBpKyspIHsKICAgICAgIGNvbnN0IGludCBlID0gdmVjdG9yW2ld
OwotICAgICAgaWYgKGUgPCAwIHx8IGUgPj0ga1ZlY3RvclNpemUgfHwgZm91bmRfaW5fdmVjdG9y
W2VdKSB7CisgICAgICBpZiAoZSA8IDAgfHwgZSA+PSBzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JT
aXplKSB8fCBmb3VuZF9pbl92ZWN0b3JbZV0pIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICB9CiAgICAgICBmb3VuZF9pbl92ZWN0b3JbZV0gPSB0cnVlOwpAQCAtODg0LDcgKzkzMiw3IEBA
IGNsYXNzIFZlY3RvclNodWZmbGVUZXN0IDogcHVibGljIFRlc3QgewogCiAgIHN0YXRpYyBib29s
IFJhbmdlSXNTaHVmZmxlZChjb25zdCBUZXN0aW5nVmVjdG9yJiB2ZWN0b3IsIGludCBiZWdpbiwg
aW50IGVuZCkgewogICAgIGZvciAoaW50IGkgPSBiZWdpbjsgaSA8IGVuZDsgaSsrKSB7Ci0gICAg
ICBpZiAoaSAhPSB2ZWN0b3JbaV0pIHsKKyAgICAgIGlmIChpICE9IHZlY3RvcltzdGF0aWNfY2Fz
dDxzaXplX3Q+KGkpXSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH0KICAgICB9CkBA
IC05MDgsNyArOTU2LDcgQEAgY2xhc3MgVmVjdG9yU2h1ZmZsZVRlc3QgOiBwdWJsaWMgVGVzdCB7
CiAgIFRlc3RpbmdWZWN0b3IgdmVjdG9yXzsKIH07ICAvLyBjbGFzcyBWZWN0b3JTaHVmZmxlVGVz
dAogCi1jb25zdCBpbnQgVmVjdG9yU2h1ZmZsZVRlc3Q6OmtWZWN0b3JTaXplOworY29uc3Qgc2l6
ZV90IFZlY3RvclNodWZmbGVUZXN0OjprVmVjdG9yU2l6ZTsKIAogVEVTVF9GKFZlY3RvclNodWZm
bGVUZXN0LCBIYW5kbGVzRW1wdHlSYW5nZSkgewogICAvLyBUZXN0cyBhbiBlbXB0eSByYW5nZSBh
dCB0aGUgYmVnaW5uaW5nLi4uCkBAIC05NjAsNyArMTAwOCw3IEBAIFRFU1RfRihWZWN0b3JTaHVm
ZmxlVGVzdCwgU2h1ZmZsZXNFbnRpcmVWZWN0b3IpIHsKICAgLy8gVGVzdHMgdGhlIGZpcnN0IGFu
ZCBsYXN0IGVsZW1lbnRzIGluIHBhcnRpY3VsYXIgdG8gZW5zdXJlIHRoYXQKICAgLy8gdGhlcmUg
YXJlIG5vIG9mZi1ieS1vbmUgcHJvYmxlbXMgaW4gb3VyIHNodWZmbGUgYWxnb3JpdGhtLgogICBF
WFBFQ1RfTkUoMCwgdmVjdG9yX1swXSk7Ci0gIEVYUEVDVF9ORShrVmVjdG9yU2l6ZSAtIDEsIHZl
Y3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CisgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDxpbnQ+KGtW
ZWN0b3JTaXplIC0gMSksIHZlY3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CiB9CiAKIFRFU1RfRihW
ZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7CkBAIC05NzAsNyArMTAx
OCw4IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7
CiAKICAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yXyk7CiAgIEVYUEVD
VF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8sIDAsIGtSYW5nZVNpemUpOwotICBFWFBF
Q1RfUFJFRDMoUmFuZ2VJc1Vuc2h1ZmZsZWQsIHZlY3Rvcl8sIGtSYW5nZVNpemUsIGtWZWN0b3JT
aXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VT
aXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkpOwogfQog
CiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZWZWN0b3IpIHsKQEAgLTk3
OSwyMyArMTAyOCwyNSBAQCBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZW
ZWN0b3IpIHsKIAogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsK
ICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXpl
KTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwg
a1ZlY3RvclNpemUpOworICBFWFBFQ1RfUFJFRDMoUmFuZ2VJc1NodWZmbGVkLCB2ZWN0b3JfLCBr
UmFuZ2VTaXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkp
OwogfQogCiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzTWlkZGxlT2ZWZWN0b3Ip
IHsKLSAgaW50IGtSYW5nZVNpemUgPSBrVmVjdG9yU2l6ZS8zOworICBjb25zdCBpbnQga1Jhbmdl
U2l6ZSA9IHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpIC8gMzsKICAgU2h1ZmZsZVJhbmdl
KCZyYW5kb21fLCBrUmFuZ2VTaXplLCAyKmtSYW5nZVNpemUsICZ2ZWN0b3JfKTsKIAogICBBU1NF
UlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKICAgRVhQRUNUX1BSRUQzKFJh
bmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKICAgRVhQRUNUX1BSRUQz
KFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwgMiprUmFuZ2VTaXplKTsKLSAg
RVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAyKmtSYW5nZVNpemUsIGtW
ZWN0b3JTaXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAy
ICoga1JhbmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNp
emUpKTsKIH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc1JlcGVhdGFibHkp
IHsKICAgVGVzdGluZ1ZlY3RvciB2ZWN0b3IyOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0
b3JTaXplOyBpKyspIHsKLSAgICB2ZWN0b3IyLnB1c2hfYmFjayhpKTsKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CisgICAgdmVjdG9yMi5wdXNoX2JhY2soc3Rh
dGljX2Nhc3Q8aW50PihpKSk7CiAgIH0KIAogICByYW5kb21fLlJlc2VlZCgxMjM0KTsKQEAgLTEw
MDYsNyArMTA1Nyw3IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNSZXBlYXRh
Ymx5KSB7CiAgIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8pOwogICBB
U1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3IyKTsKIAotICBmb3IgKGludCBp
ID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBr
VmVjdG9yU2l6ZTsgaSsrKSB7CiAgICAgRVhQRUNUX0VRKHZlY3Rvcl9baV0sIHZlY3RvcjJbaV0p
IDw8ICIgd2hlcmUgaSBpcyAiIDw8IGk7CiAgIH0KIH0KQEAgLTEwMzQsMTEgKzEwODUsMTEgQEAg
VEVTVChTdHJpbmdUZXN0LCBFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSkgewogLy8gQysrQnVpbGRl
cidzIHByZXByb2Nlc3NvciBpcyBidWdneTsgaXQgZmFpbHMgdG8gZXhwYW5kIG1hY3JvcyB0aGF0
CiAvLyBhcHBlYXIgaW4gbWFjcm8gcGFyYW1ldGVycyBhZnRlciB3aWRlIGNoYXIgbGl0ZXJhbHMu
ICBQcm92aWRlIGFuIGFsaWFzCiAvLyBmb3IgTlVMTCBhcyBhIHdvcmthcm91bmQuCi1zdGF0aWMg
Y29uc3Qgd2NoYXJfdCogY29uc3Qga051bGwgPSBOVUxMOworc3RhdGljIGNvbnN0IHdjaGFyX3Qq
IGNvbnN0IGtOdWxsID0gbnVsbHB0cjsKIAogLy8gVGVzdHMgU3RyaW5nOjpDYXNlSW5zZW5zaXRp
dmVXaWRlQ1N0cmluZ0VxdWFscwogVEVTVChTdHJpbmdUZXN0LCBDYXNlSW5zZW5zaXRpdmVXaWRl
Q1N0cmluZ0VxdWFscykgewotICBFWFBFQ1RfVFJVRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdp
ZGVDU3RyaW5nRXF1YWxzKE5VTEwsIE5VTEwpKTsKKyAgRVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNl
SW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhudWxscHRyLCBudWxscHRyKSk7CiAgIEVYUEVD
VF9GQUxTRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGtOdWxsLCBM
IiIpKTsKICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdF
cXVhbHMoTCIiLCBrTnVsbCkpOwogICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRp
dmVXaWRlQ1N0cmluZ0VxdWFscyhrTnVsbCwgTCJmb29iYXIiKSk7CkBAIC0xMTU5LDcgKzEyMTAs
NyBAQCBjbGFzcyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVz
dAogICA6IHB1YmxpYyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3QgewogIHBy
b3RlY3RlZDoKICAgc3RhdGljIHZvaWQgQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRmFpbHVyZU1v
ZGUgZmFpbHVyZSkgewotICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZB
ZGRGYWlsdXJlLCBmYWlsdXJlLCBOVUxMKTsKKyAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1v
ZGU+IHRocmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgbnVsbHB0cik7CiAgICAgdGhyZWFkLkpv
aW4oKTsKICAgfQogfTsKQEAgLTExOTUsMTIgKzEyNDYsNiBAQCBURVNUX0YoRXhwZWN0RmF0YWxG
YWlsdXJlVGVzdCwgQ2F0Y2hlc0ZhdGFsRmFsaXVyZSkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVS
RShBZGRGYXRhbEZhaWx1cmUoKSwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7CiB9CiAKLSNp
ZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3Qs
IEFjY2VwdHNTdHJpbmdPYmplY3QpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQWRkRmF0YWxG
YWlsdXJlKCksIDo6c3RyaW5nKCJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRp
ZgotCiBURVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgQWNjZXB0c1N0ZFN0cmluZ09iamVj
dCkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYXRhbEZhaWx1cmUoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgOjpzdGQ6OnN0cmluZygiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKSk7
CkBAIC0xMjgzLDEzICsxMzI4LDYgQEAgVEVTVF9GKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3Qs
IENhdGNoZXNOb25mYXRhbEZhaWx1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4
cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9T
VFJJTkcKLVRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBBY2NlcHRzU3RyaW5nT2Jq
ZWN0KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZE5vbmZhdGFsRmFpbHVyZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0cmluZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZh
aWx1cmUuIikpOwotfQotI2VuZGlmCi0KIFRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0
LCBBY2NlcHRzU3RkU3RyaW5nT2JqZWN0KSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFk
ZE5vbmZhdGFsRmFpbHVyZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0ZDo6c3Ry
aW5nKCJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKSk7CkBAIC0xMzYzLDcgKzE0MDEsNyBA
QCBjbGFzcyBUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gLi4uIGFuZCAzIFRl
c3RSZXN1bHQgb2JqZWN0cy4KICAgVGVzdFJlc3VsdCAqIHIwLCAqIHIxLCAqIHIyOwogCi0gIHZp
cnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICAvLyBw
cjEgaXMgZm9yIHN1Y2Nlc3MuCiAgICAgcHIxID0gbmV3IFRlc3RQYXJ0UmVzdWx0KFRlc3RQYXJ0
UmVzdWx0OjprU3VjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby9iYXIu
Y2MiLApAQCAtMTQwMCw3ICsxNDM4LDcgQEAgY2xhc3MgVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgICAgcmVzdWx0czItPnB1c2hfYmFjaygqcHIyKTsKICAgfQogCi0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxl
dGUgcHIxOwogICAgIGRlbGV0ZSBwcjI7CiAKQEAgLTE1NTYsNyArMTU5NCw3IEBAIGNsYXNzIEdU
ZXN0RmxhZ1NhdmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gU2F2ZXMgdGhlIEdvb2dsZSBU
ZXN0IGZsYWdzIHN1Y2ggdGhhdCB3ZSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyLCBhbmQKICAgLy8g
dGhlbiBzZXRzIHRoZW0gdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuICBUaGlzIHdpbGwgYmUgY2Fs
bGVkCiAgIC8vIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcyBydW4u
Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVz
dFN1aXRlKCkgewogICAgIHNhdmVyXyA9IG5ldyBHVGVzdEZsYWdTYXZlcjsKIAogICAgIEdURVNU
X0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpID0gZmFsc2U7CkBAIC0xNTY0LDkgKzE2MDIs
MTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewogICAgIEdURVNU
X0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rl
c3RfdXNlX2ZvcmspID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7Cisg
ICAgR1RFU1RfRkxBRyhmYWlsX2Zhc3QpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIp
ID0gIiI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IGZhbHNlOwogICAgIEdURVNUX0ZM
QUcob3V0cHV0KSA9ICIiOworICAgIEdURVNUX0ZMQUcoYnJpZWYpID0gZmFsc2U7CiAgICAgR1RF
U1RfRkxBRyhwcmludF90aW1lKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkg
PSAwOwogICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7CkBAIC0xNTc4LDkgKzE2MTgsOSBAQCBj
bGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAKICAgLy8gUmVzdG9yZXMg
dGhlIEdvb2dsZSBUZXN0IGZsYWdzIHRoYXQgdGhlIHRlc3RzIGhhdmUgbW9kaWZpZWQuICBUaGlz
IHdpbGwKICAgLy8gYmUgY2FsbGVkIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNh
c2UgaXMgcnVuLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgc2F2ZXJfOwotICAgIHNhdmVy
XyA9IE5VTEw7CisgICAgc2F2ZXJfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFZlcmlmaWVzIHRo
YXQgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIGhhdmUgdGhlaXIgZGVmYXVsdCB2YWx1ZXMsIGFuZCB0
aGVuCkBAIC0xNTkxLDkgKzE2MzEsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVi
bGljIFRlc3QgewogICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMp
KTsKICAgICBFWFBFQ1RfU1RSRVEoImF1dG8iLCBHVEVTVF9GTEFHKGNvbG9yKS5jX3N0cigpKTsK
ICAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3VzZV9mb3JrKSk7CisgICAg
RVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKCIi
LCBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZM
QUcobGlzdF90ZXN0cykpOwogICAgIEVYUEVDVF9TVFJFUSgiIiwgR1RFU1RfRkxBRyhvdXRwdXQp
LmNfc3RyKCkpOworICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQ
RUNUX1RSVUUoR1RFU1RfRkxBRyhwcmludF90aW1lKSk7CiAgICAgRVhQRUNUX0VRKDAsIEdURVNU
X0ZMQUcocmFuZG9tX3NlZWQpKTsKICAgICBFWFBFQ1RfRVEoMSwgR1RFU1RfRkxBRyhyZXBlYXQp
KTsKQEAgLTE2MDcsOSArMTY0OSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJs
aWMgVGVzdCB7CiAgICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IHRydWU7CiAgICAg
R1RFU1RfRkxBRyhjb2xvcikgPSAibm8iOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2Vf
Zm9yaykgPSB0cnVlOworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IHRydWU7CiAgICAgR1RF
U1RfRkxBRyhmaWx0ZXIpID0gImFiYyI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IHRy
dWU7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gInhtbDpmb28ueG1sIjsKKyAgICBHVEVTVF9G
TEFHKGJyaWVmKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IGZhbHNlOwog
ICAgIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpID0gMTsKICAgICBHVEVTVF9GTEFHKHJlcGVhdCkg
PSAxMDA7CkBAIC0xNjI0LDcgKzE2NjgsNyBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBHVGVzdEZsYWdTYXZlciogc2F2ZXJfOwogfTsKIAotR1Rl
c3RGbGFnU2F2ZXIqIEdUZXN0RmxhZ1NhdmVyVGVzdDo6c2F2ZXJfID0gTlVMTDsKK0dUZXN0Rmxh
Z1NhdmVyKiBHVGVzdEZsYWdTYXZlclRlc3Q6OnNhdmVyXyA9IG51bGxwdHI7CiAKIC8vIEdvb2ds
ZSBUZXN0IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBvcmRlciBvZiB0ZXN0cy4gIFRoZSBmb2xsb3dp
bmcgdHdvCiAvLyB0ZXN0cyBhcmUgZGVzaWduZWQgdG8gd29yayByZWdhcmRsZXNzIG9mIHRoZWly
IG9yZGVyLgpAQCAtMTczNyw3ICsxNzgxLDcgQEAgVEVTVChJbnQzMkZyb21HVGVzdEVudlRlc3Qs
IFBhcnNlc0FuZFJldHVybnNWYWxpZFZhbHVlKSB7CiAvLyBUZXN0cyB0aGF0IFBhcnNlSW50MzJG
bGFnKCkgcmV0dXJucyBmYWxzZSBhbmQgZG9lc24ndCBjaGFuZ2UgdGhlCiAvLyBvdXRwdXQgdmFs
dWUgd2hlbiB0aGUgZmxhZyBoYXMgd3JvbmcgZm9ybWF0CiBURVNUKFBhcnNlSW50MzJGbGFnVGVz
dCwgUmV0dXJuc0ZhbHNlRm9ySW52YWxpZEZsYWcpIHsKLSAgSW50MzIgdmFsdWUgPSAxMjM7Cisg
IGludDMyX3QgdmFsdWUgPSAxMjM7CiAgIEVYUEVDVF9GQUxTRShQYXJzZUludDMyRmxhZygiLS1h
PTEwMCIsICJiIiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9FUSgxMjMsIHZhbHVlKTsKIApAQCAtMTc1
MCw3ICsxNzk0LDcgQEAgVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFJldHVybnNGYWxzZUZvcklu
dmFsaWRGbGFnKSB7CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVu
VmFsdWVPdmVyZmxvd3MpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsK
IAotICBJbnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJfdCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNU
X0ZBTFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz0xMjM0NTY3ODk4NzY1NDMyMSIsICJhYmMiLCAm
dmFsdWUpKTsKICAgRVhQRUNUX0VRKDEyMywgdmFsdWUpOwogCkBAIC0xNzY0LDcgKzE4MDgsNyBA
QCBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxv
d3MpIHsKIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlz
SW52YWxpZCkgewogICBwcmludGYoIihleHBlY3RpbmcgMiB3YXJuaW5ncylcbiIpOwogCi0gIElu
dDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZhbHVlID0gMTIzOwogICBFWFBFQ1RfRkFMU0Uo
UGFyc2VJbnQzMkZsYWcoIi0tYWJjPUExIiwgImFiYyIsICZ2YWx1ZSkpOwogICBFWFBFQ1RfRVEo
MTIzLCB2YWx1ZSk7CiAKQEAgLTE3NzYsNyArMTgyMCw3IEBAIFRFU1QoUGFyc2VJbnQzMkZsYWdU
ZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52YWxpZCkgewogLy8gcmV0dXJucyB0cnVl
IHdoZW4gdGhlIGZsYWcgcmVwcmVzZW50cyBhIHZhbGlkIGRlY2ltYWwgaW50ZWdlciBpbgogLy8g
dGhlIHJhbmdlIG9mIGFuIEludDMyLgogVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFBhcnNlc0Fu
ZFJldHVybnNWYWxpZFZhbHVlKSB7Ci0gIEludDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZh
bHVlID0gMTIzOwogICBFWFBFQ1RfVFJVRShQYXJzZUludDMyRmxhZygiLS0iIEdURVNUX0ZMQUdf
UFJFRklYXyAiYWJjPTQ1NiIsICJhYmMiLCAmdmFsdWUpKTsKICAgRVhQRUNUX0VRKDQ1NiwgdmFs
dWUpOwogCkBAIC0xNzk5LDcgKzE4NDMsNyBAQCBURVNUKEludDMyRnJvbUVudk9yRGllVGVzdCwg
UGFyc2VzQW5kUmV0dXJuc1ZhbGlkVmFsdWUpIHsKICNlbmRpZiAgLy8gIUdURVNUX09TX1dJTkRP
V1NfTU9CSUxFCiAKIC8vIFRlc3RzIHRoYXQgSW50MzJGcm9tRW52T3JEaWUoKSBhYm9ydHMgd2l0
aCBhbiBlcnJvciBtZXNzYWdlCi0vLyBpZiB0aGUgdmFyaWFibGUgaXMgbm90IGFuIEludDMyLgor
Ly8gaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCBhbiBpbnQzMl90LgogVEVTVChJbnQzMkZyb21FbnZP
ckRpZURlYXRoVGVzdCwgQWJvcnRzT25GYWlsdXJlKSB7CiAgIFNldEVudihHVEVTVF9GTEFHX1BS
RUZJWF9VUFBFUl8gIlZBUiIsICJ4eHgiKTsKICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgK
QEAgLTE4MDgsNyArMTg1Miw3IEBAIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFi
b3J0c09uRmFpbHVyZSkgewogfQogCiAvLyBUZXN0cyB0aGF0IEludDMyRnJvbUVudk9yRGllKCkg
YWJvcnRzIHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8gaWYgdGhlIHZhcmlhYmxlIGNhbm5vdCBi
ZSByZXByZXNlbnRlZCBieSBhbiBJbnQzMi4KKy8vIGlmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUg
cmVwcmVzZW50ZWQgYnkgYW4gaW50MzJfdC4KIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRl
c3QsIEFib3J0c09uSW50MzJPdmVyZmxvdykgewogICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhf
VVBQRVJfICJWQVIiLCAiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNCIpOwogICBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVEKApAQCAtMTgyOCwxMiArMTg3MiwxMiBAQCBURVNUKFNob3VsZFJ1blRlc3RP
blNoYXJkVGVzdCwgSXNQYXJ0aXRpb25XaGVuVGhlcmVJc09uZVNoYXJkKSB7CiAKIGNsYXNzIFNo
b3VsZFNoYXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZp
cnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBpbmRl
eF92YXJfID0gR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJJTkRFWCI7CiAgICAgdG90YWxfdmFy
XyA9IEdURVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVE9UQUwiOwogICB9CiAKLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIFNldEVu
dihpbmRleF92YXJfLCAiIik7CiAgICAgU2V0RW52KHRvdGFsX3Zhcl8sICIiKTsKICAgfQpAQCAt
MTk0MiwxNCArMTk4NiwxNCBAQCBURVNUKFNob3VsZFJ1blRlc3RPblNoYXJkVGVzdCwgSXNQYXJ0
aXRpb25XaGVuVGhlcmVBcmVGaXZlU2hhcmRzKSB7CiAvLyBUZXN0IGNsYXNzLCB0aGVyZSBhcmUg
bm8gc2VwYXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgY2xhc3NlcwogLy8gKGV4Y2VwdCBm
b3Igc29tZSB0cml2aWFsIGNhc2VzKToKIC8vCi0vLyAgIFRlc3RDYXNlLCBVbml0VGVzdCwgVW5p
dFRlc3RSZXN1bHRQcmludGVyLgorLy8gICBUZXN0U3VpdGUsIFVuaXRUZXN0LCBVbml0VGVzdFJl
c3VsdFByaW50ZXIuCiAvLwogLy8gU2ltaWxhcmx5LCB0aGVyZSBhcmUgbm8gc2VwYXJhdGUgdGVz
dHMgZm9yIHRoZSBmb2xsb3dpbmcgbWFjcm9zOgogLy8KIC8vICAgVEVTVCwgVEVTVF9GLCBSVU5f
QUxMX1RFU1RTCiAKIFRFU1QoVW5pdFRlc3RUZXN0LCBDYW5HZXRPcmlnaW5hbFdvcmtpbmdEaXIp
IHsKLSAgQVNTRVJUX1RSVUUoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtp
bmdfZGlyKCkgIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
LT5vcmlnaW5hbF93b3JraW5nX2RpcigpICE9IG51bGxwdHIpOwogICBFWFBFQ1RfU1RSTkUoVW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICIiKTsKIH0KIApA
QCAtMTk3MSwyMCArMjAxNSwyMSBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0KAogICAgIGNvbnN0IGNo
YXIqIGtleSkgewogICBjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvID0gVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfaW5mbyAh
PSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9pbmZvICE9IG51bGxwdHIpOwogICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgqdGVzdF9pbmZv
LT5yZXN1bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga2V5KTsKIH0KIAotdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRp
bmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKK3ZvaWQgRXhwZWN0
Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50
VGVzdFN1aXRlKAogICAgIGNvbnN0IGNoYXIqIGtleSkgewotICBjb25zdCBUZXN0Q2FzZSogdGVz
dF9jYXNlID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9jYXNlKCk7Ci0g
IEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKKyAgY29uc3QgdGVzdGluZzo6VGVzdFN1
aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50
X3Rlc3Rfc3VpdGUoKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBudWxscHRyKTsKICAg
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXkoCi0g
ICAgICB0ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOworICAgICAgdGVzdF9z
dWl0ZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCksIGtleSk7CiB9CiAKLXZvaWQgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2Fz
ZSgKK3ZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2
ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgY29uc3QgY2hhcioga2V5KSB7CiAgIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogICAgICAg
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwpAQCAt
MTk5NiwyOSArMjA0MSwzMiBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1By
b3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCiBjbGFzcyBVbml0VGVzdFJl
Y29yZFByb3BlcnR5VGVzdCA6CiAgICAgcHVibGljIHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVz
dFJlY29yZFByb3BlcnR5VGVzdEhlbHBlciB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBTZXRV
cFRlc3RDYXNlKCkgewotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RTdWl0ZSgpIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdp
dGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUoCiAgICAgICAgICJkaXNhYmxlZCIpOwot
ICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5
Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1By
b3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAgImVycm9y
cyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29y
ZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAg
ImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWls
dXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAog
ICAgICAgICAibmFtZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0
ZSgKICAgICAgICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5n
UHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVz
dFN1aXRlKAogICAgICAgICAidGltZSIpOwogCiAgICAgVGVzdDo6UmVjb3JkUHJvcGVydHkoInRl
c3RfY2FzZV9rZXlfMSIsICIxIik7Ci0gICAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfY2FzZSgpOwotICAgIEFTU0VSVF9U
UlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKIAotICAgIEFTU0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPmFk
X2hvY190ZXN0X3Jlc3VsdCgpLnRlc3RfcHJvcGVydHlfY291bnQoKSk7CisgICAgY29uc3QgdGVz
dGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgICAgVW5pdFRlc3Q6OkdldEluc3Rh
bmNlKCktPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworCisgICAgQVNTRVJUX1RSVUUodGVzdF9zdWl0
ZSAhPSBudWxscHRyKTsKKworICAgIEFTU0VSVF9FUSgxLCB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVz
dF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwogICAgIEVYUEVDVF9TVFJFUSgidGVz
dF9jYXNlX2tleV8xIiwKLSAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLT5hZF9ob2NfdGVzdF9y
ZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOworICAgICAgICAgICAgICAgICB0ZXN0
X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOwog
ICAgIEVYUEVDVF9TVFJFUSgiMSIsCi0gICAgICAgICAgICAgICAgIHRlc3RfY2FzZS0+YWRfaG9j
X3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOworICAgICAgICAgICAg
ICAgICB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCku
dmFsdWUoKSk7CiAgIH0KIH07CiAKQEAgLTIwNzEsNyArMjExOSw3IEBAIFRFU1RfRihVbml0VGVz
dFJlY29yZFByb3BlcnR5VGVzdCwgT3ZlcnJpZGVzVmFsdWVzRm9yRHVwbGljYXRlS2V5cykgewog
fQogCiBURVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsCi0gICAgICAgQWRkRmFpbHVy
ZUluc2lkZVRlc3RzV2hlblVzaW5nVGVzdENhc2VSZXNlcnZlZEtleXMpIHsKKyAgICAgICBBZGRG
YWlsdXJlSW5zaWRlVGVzdHNXaGVuVXNpbmdUZXN0U3VpdGVSZXNlcnZlZEtleXMpIHsKICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJy
ZW50VGVzdCgKICAgICAgICJuYW1lIik7CiAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCkBAIC0yMDk2LDI4ICsyMTQ0
LDI4IEBAIFRFU1RfRihVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdCwKIAogY2xhc3MgVW5pdFRl
c3RSZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAg
cHVibGljOgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgK
KyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVS
ZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAg
ICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1
cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAg
ICAgICAgImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJv
cGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRh
bEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0
ZSgKICAgICAgICAgImRpc2FibGVkIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3Jk
aW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRl
c3RTdWl0ZSgKICAgICAgICAgImVycm9ycyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJl
Y29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRl
T2ZUZXN0U3VpdGUoCiAgICAgICAgICJuYW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJl
UmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBF
eHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNp
ZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInRpbWVzdGFtcCIpOwotICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2Uo
CisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRL
ZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJ0aW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2Fz
ZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZl
ZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInJhbmRvbV9zZWVkIik7CiAgIH0KIH07
CiAKIC8vIFRoaXMgd2lsbCB0ZXN0IHByb3BlcnR5IHJlY29yZGluZyBvdXRzaWRlIG9mIGFueSB0
ZXN0IG9yIHRlc3QgY2FzZS4KLXN0YXRpYyBFbnZpcm9ubWVudCogcmVjb3JkX3Byb3BlcnR5X2Vu
diA9CitzdGF0aWMgRW52aXJvbm1lbnQqIHJlY29yZF9wcm9wZXJ0eV9lbnYgR1RFU1RfQVRUUklC
VVRFX1VOVVNFRF8gPQogICAgIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVW5pdFRlc3RS
ZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCk7CiAKIC8vIFRoaXMgZ3JvdXAgb2YgdGVzdHMg
aXMgZm9yIHByZWRpY2F0ZSBhc3NlcnRpb25zIChBU1NFUlRfUFJFRCosIGV0YykKQEAgLTIxMjgs
MTIgKzIxNzYsMTIgQEAgc3RhdGljIEVudmlyb25tZW50KiByZWNvcmRfcHJvcGVydHlfZW52ID0K
IAogLy8gRmlyc3QsIHNvbWUgcHJlZGljYXRlcyBhbmQgcHJlZGljYXRlLWZvcm1hdHRlcnMgbmVl
ZGVkIGJ5IHRoZSB0ZXN0cy4KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMg
YW4gZXZlbiBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3Vt
ZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogYm9vbCBJc0V2ZW4oaW50IG4pIHsKICAgcmV0dXJuIChu
ICUgMikgPT0gMDsKIH0KIAotLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUg
YXJndW1lbnQgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBBIGZ1bmN0b3IgdGhhdCByZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogc3RydWN0
IElzRXZlbkZ1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50IG4pIHsgcmV0dXJuIElzRXZl
bihuKTsgfQogfTsKQEAgLTIxNzcsMTMgKzIyMjUsMTMgQEAgc3RydWN0IEFzc2VydElzRXZlbkZ1
bmN0b3IgewogICB9CiB9OwogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBzdW0gb2YgdGhlIGFy
Z3VtZW50cyBpcyBhbiBldmVuIG51bWJlci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4gZXZlbiBudW1iZXIuCiBib29sIFN1bUlz
RXZlbjIoaW50IG4xLCBpbnQgbjIpIHsKICAgcmV0dXJuIElzRXZlbihuMSArIG4yKTsKIH0KIAot
Ly8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVu
dHMgaXMgYW4gZXZlbgotLy8gbnVtYmVyLgorLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50cyBpcyBhbgorLy8gZXZlbiBu
dW1iZXIuCiBzdHJ1Y3QgU3VtSXNFdmVuM0Z1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50
IG4xLCBpbnQgbjIsIGludCBuMykgewogICAgIHJldHVybiBJc0V2ZW4objEgKyBuMiArIG4zKTsK
QEAgLTIzNjIsNiArMjQxMCwxNiBAQCBURVNUKFByZWRUZXN0LCBTaW5nbGVFdmFsdWF0aW9uT25G
YWlsdXJlKSB7CiAgIEVYUEVDVF9FUSgxLCBuNCkgPDwgIkFyZ3VtZW50IDQgaXMgbm90IGV2YWx1
YXRlZCBleGFjdGx5IG9uY2UuIjsKIH0KIAorLy8gVGVzdCBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBm
b3Igc2V0cworVEVTVChQcmVkVGVzdCwgRXhwZWN0UHJlZEV2YWxGYWlsdXJlKSB7CisgIHN0ZDo6
c2V0PGludD4gc2V0X2EgPSB7MiwgMSwgMywgNCwgNX07CisgIHN0ZDo6c2V0PGludD4gc2V0X2Ig
PSB7MCwgNCwgOH07CisgIGNvbnN0IGF1dG8gY29tcGFyZV9zZXRzID0gW10gKHN0ZDo6c2V0PGlu
dD4sIHN0ZDo6c2V0PGludD4pIHsgcmV0dXJuIGZhbHNlOyB9OworICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRSgKKyAgICAgIEVYUEVDVF9QUkVEMihjb21wYXJlX3NldHMsIHNldF9hLCBzZXRfYiks
CisgICAgICAiY29tcGFyZV9zZXRzKHNldF9hLCBzZXRfYikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3
aGVyZVxuc2V0X2EgZXZhbHVhdGVzICIKKyAgICAgICJ0byB7IDEsIDIsIDMsIDQsIDUgfVxuc2V0
X2IgZXZhbHVhdGVzIHRvIHsgMCwgNCwgOCB9Iik7Cit9CiAKIC8vIFNvbWUgaGVscGVyIGZ1bmN0
aW9ucyBmb3IgdGVzdGluZyB1c2luZyBvdmVybG9hZGVkL3RlbXBsYXRlCiAvLyBmdW5jdGlvbnMg
d2l0aCBBU1NFUlRfUFJFRG4gYW5kIEVYUEVDVF9QUkVEbi4KQEAgLTI0NTYsMjQgKzI1MTQsMjIg
QEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVEpIHsKIAogLy8gVGVzdHMg
QVNTRVJUX1NUUkVRIHdpdGggTlVMTCBhcmd1bWVudHMuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRl
c3QsIEFTU0VSVF9TVFJFUV9OdWxsKSB7Ci0gIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25z
dCBjaGFyICo+KE5VTEwpLCBOVUxMKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NU
UkVRKE5VTEwsICJub24tbnVsbCIpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwi
KTsKKyAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgbnVs
bHB0cik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUShudWxscHRyLCAibm9u
LW51bGwiKSwgIm5vbi1udWxsIik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9TVFJFUSB3aXRoIE5V
TEwgYXJndW1lbnRzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVFfTnVs
bDIpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIE5V
TEwpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsK
IH0KIAogLy8gVGVzdHMgQVNTRVJUX1NUUk5FLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBB
U1NFUlRfU1RSTkUpIHsKICAgQVNTRVJUX1NUUk5FKCJoaSIsICJIaSIpOwotICBBU1NFUlRfU1RS
TkUoIkhpIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShOVUxMLCAiSGkiKTsKLSAgQVNTRVJUX1NU
Uk5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUk5FKE5VTEwsICIiKTsKKyAgQVNTRVJUX1NUUk5F
KCJIaSIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSTkUobnVsbHB0ciwgIkhpIik7CisgIEFTU0VS
VF9TVFJORSgiIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJORShudWxscHRyLCAiIik7CiAgIEFT
U0VSVF9TVFJORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9TVFJORSgiSGkiLCAiIik7CiAgIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJORSgiSGkiLCAiSGkiKSwKQEAgLTI0ODMsNyArMjUz
OSw3IEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUk5FKSB7CiAvLyBUZXN0
cyBBU1NFUlRfU1RSQ0FTRUVRLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RS
Q0FTRUVRKSB7CiAgIEFTU0VSVF9TVFJDQVNFRVEoImhpIiwgIkhpIik7Ci0gIEFTU0VSVF9TVFJD
QVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihOVUxMKSwgTlVMTCk7CisgIEFTU0VSVF9T
VFJDQVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBudWxscHRyKTsKIAog
ICBBU1NFUlRfU1RSQ0FTRUVRKCIiLCAiIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VS
VF9TVFJDQVNFRVEoIkhpIiwgImhpMiIpLApAQCAtMjQ5MywxMCArMjU0OSwxMCBAQCBURVNUKFN0
cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFRVEpIHsKIC8vIFRlc3RzIEFTU0VSVF9T
VFJDQVNFTkUuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsK
ICAgQVNTRVJUX1NUUkNBU0VORSgiaGkxIiwgIkhpMiIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCJI
aSIsIE5VTEwpOwotICBBU1NFUlRfU1RSQ0FTRU5FKE5VTEwsICJIaSIpOwotICBBU1NFUlRfU1RS
Q0FTRU5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNBU0VORShOVUxMLCAiIik7CisgIEFTU0VS
VF9TVFJDQVNFTkUoIkhpIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJDQVNFTkUobnVsbHB0ciwg
IkhpIik7CisgIEFTU0VSVF9TVFJDQVNFTkUoIiIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSQ0FT
RU5FKG51bGxwdHIsICIiKTsKICAgQVNTRVJUX1NUUkNBU0VORSgiIiwgIkhpIik7CiAgIEFTU0VS
VF9TVFJDQVNFTkUoIkhpIiwgIiIpOwogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RS
Q0FTRU5FKCJIaSIsICJoaSIpLApAQCAtMjUwNiwxNCArMjU2MiwxMyBAQCBURVNUKFN0cmluZ0Fz
c2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsKIC8vIFRlc3RzICpfU1RSRVEgb24gd2lk
ZSBzdHJpbmdzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAgIC8v
IE5VTEwgc3RyaW5ncy4KLSAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IHdjaGFyX3Qg
Kj4oTlVMTCksIE5VTEwpOworICBBU1NFUlRfU1RSRVEoc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJf
dCo+KG51bGxwdHIpLCBudWxscHRyKTsKIAogICAvLyBFbXB0eSBzdHJpbmdzLgogICBBU1NFUlRf
U1RSRVEoTCIiLCBMIiIpOwogCiAgIC8vIE5vbi1udWxsIHZzIE5VTEwuCi0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9TVFJFUShMIm5vbi1udWxsIiwgTlVMTCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJub24tbnVsbCIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShF
WFBFQ1RfU1RSRVEoTCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsKIAogICAvLyBF
cXVhbCBzdHJpbmdzLgogICBFWFBFQ1RfU1RSRVEoTCJIaSIsIEwiSGkiKTsKQEAgLTI1MzUsMTYg
KzI1OTAsMTggQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAvLyBU
ZXN0cyAqX1NUUk5FIG9uIHdpZGUgc3RyaW5ncy4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwg
U1RSTkVfV2lkZSkgewogICAvLyBOVUxMIHN0cmluZ3MuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9TVFJORShzdGF0aWNfY2FzdDxjb25zdCB3Y2hh
cl90ICo+KE5VTEwpLCBOVUxMKTsKLSAgfSwgIiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RSgKKyAgICAgIHsgIC8vIE5PTElOVAorICAgICAgICBFWFBFQ1RfU1RSTkUoc3RhdGljX2Nhc3Q8
Y29uc3Qgd2NoYXJfdCo+KG51bGxwdHIpLCBudWxscHRyKTsKKyAgICAgIH0sCisgICAgICAiIik7
CiAKICAgLy8gRW1wdHkgc3RyaW5ncy4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X1NUUk5FKEwiIiwgTCIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcIlwiIik7CiAK
ICAgLy8gTm9uLW51bGwgdnMgTlVMTC4KLSAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBOVUxM
KTsKKyAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBudWxscHRyKTsKIAogICAvLyBFcXVhbCBz
dHJpbmdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSTkUoTCJIaSIsIEwi
SGkiKSwKQEAgLTI1NjYsMTEgKzI2MjMsMTEgQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBT
VFJORV9XaWRlKSB7CiAvLyBUZXN0cyB0aGF0IElzU3Vic3RyaW5nKCkgcmV0dXJucyB0aGUgY29y
cmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKIC8vIGFyZ3VtZW50IHR5cGUgaXMgY29uc3QgY2hh
ciouCiBURVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JDU3RyaW5n
KSB7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIE5VTEwsICJhIikpOwotICBF
WFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAiYiIsIE5VTEwpKTsKKyAgRVhQRUNUX0ZB
TFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgbnVsbHB0ciwgImEiKSk7CisgIEVYUEVDVF9GQUxTRShJ
c1N1YnN0cmluZygiIiwgIiIsICJiIiwgbnVsbHB0cikpOwogICBFWFBFQ1RfRkFMU0UoSXNTdWJz
dHJpbmcoIiIsICIiLCAibmVlZGxlIiwgImhheXN0YWNrIikpOwogCi0gIEVYUEVDVF9UUlVFKElz
U3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KE5VTEwpLCBOVUxMKSk7
CisgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG51bGxwdHIpLCBudWxscHRyKSk7CiAgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAi
IiwgIm5lZWRsZSIsICJ0d28gbmVlZGxlcyIpKTsKIH0KIApAQCAtMjU4MSw3ICsyNjM4LDggQEAg
VEVTVChJc1N1YnN0cmluZ1Rlc3QsIFJldHVybnNDb3JyZWN0UmVzdWx0Rm9yV2lkZUNTdHJpbmcp
IHsKICAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJiIiwga051bGwpKTsKICAg
RVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJuZWVkbGUiLCBMImhheXN0YWNrIikp
OwogCi0gIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3Qg
d2NoYXJfdCo+KE5VTEwpLCBOVUxMKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSXNTdWJzdHJp
bmcoIiIsICIiLCBzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90Kj4obnVsbHB0ciksIG51bGxwdHIp
KTsKICAgRVhQRUNUX1RSVUUoSXNTdWJzdHJpbmcoIiIsICIiLCBMIm5lZWRsZSIsIEwidHdvIG5l
ZWRsZXMiKSk7CiB9CiAKQEAgLTI3MDksOCArMjc2Nyw4IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnRU
ZXN0IDogcHVibGljIFRlc3QgewogICB0eXBlZGVmIHR5cGVuYW1lIHRlc3Rpbmc6OmludGVybmFs
OjpGbG9hdGluZ1BvaW50PFJhd1R5cGU+IEZsb2F0aW5nOwogICB0eXBlZGVmIHR5cGVuYW1lIEZs
b2F0aW5nOjpCaXRzIEJpdHM7CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGNvbnN0
IHNpemVfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxwczsKKyAgdm9pZCBTZXRVcCgpIG92
ZXJyaWRlIHsKKyAgICBjb25zdCB1aW50MzJfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxw
czsKIAogICAgIC8vIFRoZSBiaXRzIHRoYXQgcmVwcmVzZW50IDAuMC4KICAgICBjb25zdCBCaXRz
IHplcm9fYml0cyA9IEZsb2F0aW5nKDApLmJpdHMoKTsKQEAgLTI4MjQsOCArMjg4Miw2IEBAIFRF
U1RfRihGbG9hdFRlc3QsIExhcmdlRGlmZikgewogVEVTVF9GKEZsb2F0VGVzdCwgSW5maW5pdHkp
IHsKICAgRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHksIHZhbHVlc18uY2xvc2VfdG9f
aW5maW5pdHkpOwogICBFWFBFQ1RfRkxPQVRfRVEoLXZhbHVlc18uaW5maW5pdHksIC12YWx1ZXNf
LmNsb3NlX3RvX2luZmluaXR5KTsKLSNpZiAhR1RFU1RfT1NfU1lNQklBTgotICAvLyBOb2tpYSdz
IFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0cHV0IGluZmluaXR5IG9yIE5hTi4KICAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHks
IC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIi12YWx1ZXNf
LmluZmluaXR5Iik7CiAKQEAgLTI4MzMsMTQgKzI4ODksMTAgQEAgVEVTVF9GKEZsb2F0VGVzdCwg
SW5maW5pdHkpIHsKICAgLy8gYXJlIG9ubHkgMSBETFAgYXBhcnQuCiAgIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLm5hbjEp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzXy5uYW4xIik7Ci0jZW5kaWYgIC8v
ICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgY29tcGFyaW5nIHdpdGggTkFO
IGFsd2F5cyByZXR1cm5zIGZhbHNlLgogVEVTVF9GKEZsb2F0VGVzdCwgTmFOKSB7Ci0jaWYgIUdU
RVNUX09TX1NZTUJJQU4KLS8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBv
dXRwdXQgaW5maW5pdHkgb3IgTmFOLgotCiAgIC8vIEluIEMrK0J1aWxkZXIsIG5hbWVzIHdpdGhp
biBsb2NhbCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkKICAgLy8gRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUpIGNhbm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZQogICAv
LyBzY29waW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxvY2FsIGFsaWFzIGFzIGEgd29ya2Fyb3Vu
ZC4KQEAgLTI4NTgsNyArMjkxMCw2IEBAIFRFU1RfRihGbG9hdFRlc3QsIE5hTikgewogCiAgIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9GTE9BVF9FUSh2Lm5hbjEsIHYuaW5maW5pdHkpLAog
ICAgICAgICAgICAgICAgICAgICAgICAidi5pbmZpbml0eSIpOwotI2VuZGlmICAvLyAhR1RFU1Rf
T1NfU1lNQklBTgogfQogCiAvLyBUZXN0cyB0aGF0ICpfRkxPQVRfRVEgYXJlIHJlZmxleGl2ZS4K
QEAgLTI4ODIsMjIgKzI5MzMsMTggQEAgVEVTVF9GKEZsb2F0VGVzdCwgQ29tbXV0YXRpdmUpIHsK
IFRFU1RfRihGbG9hdFRlc3QsIEVYUEVDVF9ORUFSKSB7CiAgIEVYUEVDVF9ORUFSKC0xLjBmLCAt
MS4xZiwgMC4yZik7CiAgIEVYUEVDVF9ORUFSKDIuMGYsIDMuMGYsIDEuMGYpOwotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLDEuNWYsIDAuMjVmKSwgIC8vIE5PTElO
VAorICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLCAxLjVmLCAwLjI1
ZiksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNl
IGJldHdlZW4gMS4wZiBhbmQgMS41ZiBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndoaWNoIGV4Y2VlZHMgMC4yNWYiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4g
Z2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0
aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIGxpbmUuCiB9CiAKIC8vIFRlc3RzIEFTU0VS
VF9ORUFSLgogVEVTVF9GKEZsb2F0VGVzdCwgQVNTRVJUX05FQVIpIHsKICAgQVNTRVJUX05FQVIo
LTEuMGYsIC0xLjFmLCAwLjJmKTsKICAgQVNTRVJUX05FQVIoMi4wZiwgMy4wZiwgMS4wZik7Ci0g
IEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsMS41ZiwgMC4yNWYpLCAgLy8g
Tk9MSU5UCisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsIDEuNWYsIDAu
MjVmKSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiAxLjBmIGFuZCAxLjVmIGlzIDAuNSwgIgogICAgICAgICAgICAgICAgICAgICAgICAi
d2hpY2ggZXhjZWVkcyAwLjI1ZiIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2Mg
Mi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBm
aXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgbGluZS4KIH0KIAogLy8gVGVzdHMgdGhlIGNhc2Vz
IHdoZXJlIEZsb2F0TEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTI5MjAsMTAgKzI5NjcsNiBAQCBU
RVNUX0YoRmxvYXRUZXN0LCBGbG9hdExFRmFpbHMpIHsKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQy
KEZsb2F0TEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wZik7CiAgIH0sICIodmFsdWVz
Xy5mdXJ0aGVyX2Zyb21fb25lKSA8PSAoMS4wZikiKTsKIAotI2lmICFHVEVTVF9PU19TWU1CSUFO
ICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMg
aWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCi0gIC8vIEMrK0J1aWxkZXIgZ2l2
ZXMgYmFkIHJlc3VsdHMgZm9yIG9yZGVyZWQgY29tcGFyaXNvbnMgaW52b2x2aW5nIE5hTnMKLSAg
Ly8gZHVlIHRvIGNvbXBpbGVyIGJ1Z3MuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8v
IE5PTElOVAogICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2
YWx1ZXNfLmluZmluaXR5KTsKICAgfSwgIih2YWx1ZXNfLm5hbjEpIDw9ICh2YWx1ZXNfLmluZmlu
aXR5KSIpOwpAQCAtMjkzMyw3ICsyOTc2LDYgQEAgVEVTVF9GKEZsb2F0VGVzdCwgRmxvYXRMRUZh
aWxzKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAogICAgIEFTU0VSVF9Q
UkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2YWx1ZXNfLm5hbjEpOwogICB9LCAi
KHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09T
X1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQogfQogCiAvLyBJbnN0YW50aWF0ZXMg
RmxvYXRpbmdQb2ludFRlc3QgZm9yIHRlc3RpbmcgKl9ET1VCTEVfRVEuCkBAIC0yOTk3LDggKzMw
MzksNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgTGFyZ2VEaWZmKSB7CiBURVNUX0YoRG91YmxlVGVz
dCwgSW5maW5pdHkpIHsKICAgRVhQRUNUX0RPVUJMRV9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1
ZXNfLmNsb3NlX3RvX2luZmluaXR5KTsKICAgRVhQRUNUX0RPVUJMRV9FUSgtdmFsdWVzXy5pbmZp
bml0eSwgLXZhbHVlc18uY2xvc2VfdG9faW5maW5pdHkpOwotI2lmICFHVEVTVF9PU19TWU1CSUFO
Ci0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5p
dHkgb3IgTmFOLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZh
bHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi12YWx1ZXNfLmluZmluaXR5Iik7CiAKQEAgLTMwMDYsMTggKzMwNDYsMTAgQEAgVEVT
VF9GKERvdWJsZVRlc3QsIEluZmluaXR5KSB7CiAgIC8vIGFyZSBvbmx5IDEgRExQIGFwYXJ0Lgog
ICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18uaW5maW5p
dHksIHZhbHVlc18ubmFuMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZXNfLm5h
bjEiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCBj
b21wYXJpbmcgd2l0aCBOQU4gYWx3YXlzIHJldHVybnMgZmFsc2UuCiBURVNUX0YoRG91YmxlVGVz
dCwgTmFOKSB7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gSW4gQysrQnVpbGRlciwgbmFt
ZXMgd2l0aGluIGxvY2FsIGNsYXNzZXMgKHN1Y2ggYXMgdXNlZCBieQotICAvLyBFWFBFQ1RfRkFU
QUxfRkFJTFVSRSkgY2Fubm90IGJlIHJlc29sdmVkIGFnYWluc3Qgc3RhdGljIG1lbWJlcnMgb2Yg
dGhlCi0gIC8vIHNjb3BpbmcgY2xhc3MuICBVc2UgYSBzdGF0aWMgbG9jYWwgYWxpYXMgYXMgYSB3
b3JrYXJvdW5kLgotICAvLyBXZSB1c2UgdGhlIGFzc2lnbm1lbnQgc3ludGF4IHNpbmNlIHNvbWUg
Y29tcGlsZXJzLCBsaWtlIFN1biBTdHVkaW8sCi0gIC8vIGRvbid0IGFsbG93IGluaXRpYWxpemlu
ZyByZWZlcmVuY2VzIHVzaW5nIGNvbnN0cnVjdGlvbiBzeW50YXgKLSAgLy8gKHBhcmVudGhlc2Vz
KS4KICAgc3RhdGljIGNvbnN0IERvdWJsZVRlc3Q6OlRlc3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1
ZXNfOwogCiAgIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQg
aW5maW5pdHkgb3IgTmFOLgpAQCAtMzAyNywxNyArMzA1OSwxMyBAQCBURVNUX0YoRG91YmxlVGVz
dCwgTmFOKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEoMS4w
LCB2Lm5hbjEpLCAidi5uYW4xIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ET1VC
TEVfRVEodi5uYW4xLCB2LmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgInYuaW5m
aW5pdHkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhh
dCAqX0RPVUJMRV9FUSBhcmUgcmVmbGV4aXZlLgogVEVTVF9GKERvdWJsZVRlc3QsIFJlZmxleGl2
ZSkgewogICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgMC4wKTsKICAgRVhQRUNUX0RPVUJMRV9FUSgx
LjAsIDEuMCk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gTm9raWEncyBTVExwb3J0IGNy
YXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCiAgIEFTU0VSVF9ET1VC
TEVfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5pbmZpbml0eSk7Ci0jZW5kaWYgIC8vICFH
VEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgKl9ET1VCTEVfRVEgYXJlIGNvbW11
dGF0aXZlLgpAQCAtMzA1Nyw4ICszMDg1LDEzIEBAIFRFU1RfRihEb3VibGVUZXN0LCBFWFBFQ1Rf
TkVBUikgewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjAsIDEuNSwg
MC4yNSksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAiCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4g
Z2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0
aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4KKyAgLy8gQXQgdGhpcyBt
YWduaXR1ZGUgYWRqYWNlbnQgZG91YmxlcyBhcmUgNTEyLjAgYXBhcnQsIHNvIHRoaXMgdHJpZ2dl
cnMgYQorICAvLyBzbGlnaHRseSBkaWZmZXJlbnQgZmFpbHVyZSByZXBvcnRpbmcgcGF0aC4KKyAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCisgICAgICBFWFBFQ1RfTkVBUig0LjI5MzQzMTE0MTYy
MzQxMTJlKzE4LCA0LjI5MzQzMTE0MTYyMzQxMDdlKzE4LCAxLjApLAorICAgICAgIlRoZSBhYnNf
ZXJyb3IgcGFyYW1ldGVyIDEuMCBldmFsdWF0ZXMgdG8gMSB3aGljaCBpcyBzbWFsbGVyIHRoYW4g
dGhlICIKKyAgICAgICJtaW5pbXVtIGRpc3RhbmNlIGJldHdlZW4gZG91YmxlcyBmb3IgbnVtYmVy
cyBvZiB0aGlzIG1hZ25pdHVkZSB3aGljaCBpcyAiCisgICAgICAiNTEyIik7CiB9CiAKIC8vIFRl
c3RzIEFTU0VSVF9ORUFSLgpAQCAtMzA2OCw4ICszMTAxLDYgQEAgVEVTVF9GKERvdWJsZVRlc3Qs
IEFTU0VSVF9ORUFSKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMCwg
MS41LCAwLjI1KSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiAxLjAgYW5kIDEuNSBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAg
ICAgIndoaWNoIGV4Y2VlZHMgMC4yNSIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBn
Y2MgMi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRo
ZSBmaXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgc3RhdGVtZW50LgogfQogCiAvLyBUZXN0cyB0
aGUgY2FzZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTMwOTIsMTAgKzMx
MjMsNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgRG91YmxlTEVGYWlscykgewogICAgIEVYUEVDVF9Q
UkVEX0ZPUk1BVDIoRG91YmxlTEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wKTsKICAg
fSwgIih2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpIDw9ICgxLjApIik7CiAKLSNpZiAhR1RFU1Rf
T1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIE5va2lhJ3MgU1RMcG9y
dCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICAvLyBDKytC
dWlsZGVyIGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRlcmVkIGNvbXBhcmlzb25zIGludm9sdmlu
ZyBOYU5zCi0gIC8vIGR1ZSB0byBjb21waWxlciBidWdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRSh7ICAvLyBOT0xJTlQKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1
ZXNfLm5hbjEsIHZhbHVlc18uaW5maW5pdHkpOwogICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZh
bHVlc18uaW5maW5pdHkpIik7CkBAIC0zMTA1LDcgKzMxMzIsNiBAQCBURVNUX0YoRG91YmxlVGVz
dCwgRG91YmxlTEVGYWlscykgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQK
ICAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18u
bmFuMSk7CiAgIH0sICIodmFsdWVzXy5uYW4xKSA8PSAodmFsdWVzXy5uYW4xKSIpOwotI2VuZGlm
ICAvLyAhR1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCiB9CiAKIApA
QCAtMzEyNiwyOCArMzE1MiwyOCBAQCBURVNUKERpc2FibGVkVGVzdCwgTm90RElTQUJMRURfVGVz
dFNob3VsZFJ1bikgewogCiAvLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIERJ
U0FCTEVEXy4KIC8vIFNob3VsZCBub3QgcnVuLgotVEVTVChESVNBQkxFRF9UZXN0Q2FzZSwgVGVz
dFNob3VsZE5vdFJ1bikgeworVEVTVChESVNBQkxFRF9UZXN0U3VpdGUsIFRlc3RTaG91bGROb3RS
dW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IFRlc3QgaW4gZGlzYWJsZWQg
dGVzdCBjYXNlIHNob3VsZCBub3QgYmUgcnVuLiI7CiB9CiAKIC8vIEEgdGVzdCBjYXNlIGFuZCB0
ZXN0IHdob3NlIG5hbWVzIHN0YXJ0IHdpdGggRElTQUJMRURfLgogLy8gU2hvdWxkIG5vdCBydW4u
Ci1URVNUKERJU0FCTEVEX1Rlc3RDYXNlLCBESVNBQkxFRF9UZXN0U2hvdWxkTm90UnVuKSB7CitU
RVNUKERJU0FCTEVEX1Rlc3RTdWl0ZSwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bikgewogICBG
QUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogVGVzdCBpbiBkaXNhYmxlZCB0ZXN0IGNhc2Ug
c2hvdWxkIG5vdCBiZSBydW4uIjsKIH0KIAotLy8gQ2hlY2sgdGhhdCB3aGVuIGFsbCB0ZXN0cyBp
biBhIHRlc3QgY2FzZSBhcmUgZGlzYWJsZWQsIFNldFVwVGVzdENhc2UoKSBhbmQKLS8vIFRlYXJE
b3duVGVzdENhc2UoKSBhcmUgbm90IGNhbGxlZC4KKy8vIENoZWNrIHRoYXQgd2hlbiBhbGwgdGVz
dHMgaW4gYSB0ZXN0IGNhc2UgYXJlIGRpc2FibGVkLCBTZXRVcFRlc3RTdWl0ZSgpIGFuZAorLy8g
VGVhckRvd25UZXN0U3VpdGUoKSBhcmUgbm90IGNhbGxlZC4KIGNsYXNzIERpc2FibGVkVGVzdHNU
ZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0
Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8
ICJVbmV4cGVjdGVkIGZhaWx1cmU6IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIK
LSAgICAgICAgICAgICAgIlNldFVwVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwor
ICAgICAgICAgICAgICAiU2V0VXBUZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwog
ICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQg
VGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6
IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIKLSAgICAgICAgICAgICAgIlRlYXJE
b3duVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOworICAgICAgICAgICAgICAiVGVh
ckRvd25UZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwogICB9CiB9OwogCkBAIC0z
MTYxLDE0ICszMTg3LDEyIEBAIFRFU1RfRihEaXNhYmxlZFRlc3RzVGVzdCwgRElTQUJMRURfVGVz
dFNob3VsZE5vdFJ1bl8yKSB7CiAKIC8vIFRlc3RzIHRoYXQgZGlzYWJsZWQgdHlwZWQgdGVzdHMg
YXJlbid0IHJ1bi4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogdHlwZWRlZiB0
ZXN0aW5nOjpUeXBlczxpbnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNF
KFR5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBO
dW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgRElTQUJMRURfU2hvdWxkTm90
UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0
ZXN0IHNob3VsZCBub3QgcnVuLiI7CkBAIC0zMTc4LDQ5ICszMjAyLDQzIEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgRElTQUJMRURfVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsK
IAotVFlQRURfVEVTVF9DQVNFKERJU0FCTEVEX1R5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZ
UEVEX1RFU1RfU1VJVEUoRElTQUJMRURfVHlwZWRUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBF
RF9URVNUKERJU0FCTEVEX1R5cGVkVGVzdCwgU2hvdWxkTm90UnVuKSB7CiAgIEZBSUwoKSA8PCAi
VW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7
CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogLy8gVGVzdHMgdGhhdCBk
aXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlbid0IHJ1bi4KIAotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUX1AKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRl
c3RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7
CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRl
c3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZh
aWx1cmU6ICIKICAgICAgICAgIDw8ICJEaXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBz
aG91bGQgbm90IHJ1bi4iOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRl
c3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9Q
KFR5cGVkVGVzdFAsIERJU0FCTEVEX1Nob3VsZE5vdFJ1bik7CiAKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9TVUlURV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIERJU0FCTEVEX1R5cGVkVGVzdFAgOiBwdWJsaWMgVGVz
dCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKIAogVFlQRURfVEVTVF9QKERJU0FC
TEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQg
ZmFpbHVyZTogIgogICAgICAgICAgPDwgIkRpc2FibGVkIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0
IHNob3VsZCBub3QgcnVuLiI7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKERJU0FC
TEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1Rf
Q0FTRV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworUkVHSVNURVJf
VFlQRURfVEVTVF9TVUlURV9QKERJU0FCTEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7CiAK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9TVUlURV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiAvLyBU
ZXN0cyB0aGF0IGFzc2VydGlvbiBtYWNyb3MgZXZhbHVhdGUgdGhlaXIgYXJndW1lbnRzIGV4YWN0
bHkgb25jZS4KIApAQCAtMzMyNyw5ICszMzQ1LDI2IEBAIFRFU1RfRihTaW5nbGVFdmFsdWF0aW9u
VGVzdCwgT3RoZXJDYXNlcykgewogCiAjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAorI2lmIEdU
RVNUX0hBU19SVFRJCisKKyNpZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBFUlJPUl9ERVNDICJjbGFz
cyBzdGQ6OnJ1bnRpbWVfZXJyb3IiCisjZWxzZQorI2RlZmluZSBFUlJPUl9ERVNDICJzdGQ6OnJ1
bnRpbWVfZXJyb3IiCisjZW5kaWYKKworI2Vsc2UgIC8vIEdURVNUX0hBU19SVFRJCisKKyNkZWZp
bmUgRVJST1JfREVTQyAiYW4gc3RkOjpleGNlcHRpb24tZGVyaXZlZCBlcnJvciIKKworI2VuZGlm
ICAvLyBHVEVTVF9IQVNfUlRUSQorCiB2b2lkIFRocm93QW5JbnRlZ2VyKCkgewogICB0aHJvdyAx
OwogfQordm9pZCBUaHJvd1J1bnRpbWVFcnJvcihjb25zdCBjaGFyKiB3aGF0KSB7CisgIHRocm93
IHN0ZDo6cnVudGltZV9lcnJvcih3aGF0KTsKK30KIAogLy8gVGVzdHMgdGhhdCBhc3NlcnRpb24g
YXJndW1lbnRzIGFyZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgogVEVTVF9GKFNpbmdsZUV2YWx1
YXRpb25UZXN0LCBFeGNlcHRpb25UZXN0cykgewpAQCAtMzM0NywzMSArMzM4MiwzOCBAQCBURVNU
X0YoU2luZ2xlRXZhbHVhdGlvblRlc3QsIEV4Y2VwdGlvblRlc3RzKSB7CiAgIH0sIGJvb2wpLCAi
dGhyb3dzIGEgZGlmZmVyZW50IHR5cGUiKTsKICAgRVhQRUNUX0VRKDIsIGFfKTsKIAorICAvLyBm
YWlsZWQgRVhQRUNUX1RIUk9XLCB0aHJvd3MgcnVudGltZSBlcnJvcgorICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShFWFBFQ1RfVEhST1coeyAgLy8gTk9MSU5UCisgICAgYV8rKzsKKyAgICBUaHJv
d1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpOworICB9LCBib29sKSwgInRocm93cyAiIEVS
Uk9SX0RFU0MgIiB3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiIik7CisgIEVYUEVD
VF9FUSgzLCBhXyk7CisKICAgLy8gZmFpbGVkIEVYUEVDVF9USFJPVywgdGhyb3dzIG5vdGhpbmcK
ICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKGFfKyssIGJvb2wpLCAidGhy
b3dzIG5vdGhpbmciKTsKLSAgRVhQRUNUX0VRKDMsIGFfKTsKKyAgRVhQRUNUX0VRKDQsIGFfKTsK
IAogICAvLyBzdWNjZXNzZnVsIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9fVEhST1coYV8r
Kyk7Ci0gIEVYUEVDVF9FUSg0LCBhXyk7CisgIEVYUEVDVF9FUSg1LCBhXyk7CiAKICAgLy8gZmFp
bGVkIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTk9f
VEhST1coeyAgLy8gTk9MSU5UCiAgICAgYV8rKzsKICAgICBUaHJvd0FuSW50ZWdlcigpOwogICB9
KSwgIml0IHRocm93cyIpOwotICBFWFBFQ1RfRVEoNSwgYV8pOworICBFWFBFQ1RfRVEoNiwgYV8p
OwogCiAgIC8vIHN1Y2Nlc3NmdWwgRVhQRUNUX0FOWV9USFJPVwogICBFWFBFQ1RfQU5ZX1RIUk9X
KHsgIC8vIE5PTElOVAogICAgIGFfKys7CiAgICAgVGhyb3dBbkludGVnZXIoKTsKICAgfSk7Ci0g
IEVYUEVDVF9FUSg2LCBhXyk7CisgIEVYUEVDVF9FUSg3LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVY
UEVDVF9BTllfVEhST1cKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJP
VyhhXysrKSwgIml0IGRvZXNuJ3QiKTsKLSAgRVhQRUNUX0VRKDcsIGFfKTsKKyAgRVhQRUNUX0VR
KDgsIGFfKTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMzQ4MSw3
ICszNTIzLDcgQEAgc3RkOjpzdHJpbmcgRWRpdHNUb1N0cmluZyhjb25zdCBzdGQ6OnZlY3RvcjxF
ZGl0VHlwZT4mIGVkaXRzKSB7CiBzdGQ6OnZlY3RvcjxzaXplX3Q+IENoYXJzVG9JbmRpY2VzKGNv
bnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKICAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBvdXQ7CiAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyLnNpemUoKTsgKytpKSB7Ci0gICAgb3V0LnB1c2hfYmFj
ayhzdHJbaV0pOworICAgIG91dC5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8c2l6ZV90PihzdHJbaV0p
KTsKICAgfQogICByZXR1cm4gb3V0OwogfQpAQCAtMzQ5NCw3ICszNTM2LDcgQEAgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+IENoYXJzVG9MaW5lcyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyKSB7CiAg
IHJldHVybiBvdXQ7CiB9CiAKLVRFU1QoRWRpdERpc3RhbmNlLCBUZXN0Q2FzZXMpIHsKK1RFU1Qo
RWRpdERpc3RhbmNlLCBUZXN0U3VpdGVzKSB7CiAgIHN0cnVjdCBDYXNlIHsKICAgICBpbnQgbGlu
ZTsKICAgICBjb25zdCBjaGFyKiBsZWZ0OwpAQCAtMzcxMywyMiArMzc1NSwxNSBAQCBURVNUKEFz
c2VydGlvblRlc3QsIEFTU0VSVF9FUSkgewogfQogCiAvLyBUZXN0cyBBU1NFUlRfRVEoTlVMTCwg
cG9pbnRlcikuCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAogVEVTVChBc3NlcnRpb25UZXN0
LCBBU1NFUlRfRVFfTlVMTCkgewogICAvLyBBIHN1Y2Nlc3MuCi0gIGNvbnN0IGNoYXIqIHAgPSBO
VUxMOwotICAvLyBTb21lIG9sZGVyIEdDQyB2ZXJzaW9ucyBtYXkgaXNzdWUgYSBzcHVyaW91cyB3
YXJuaW5nIGluIHRoaXMgb3IgdGhlIG5leHQKLSAgLy8gYXNzZXJ0aW9uIHN0YXRlbWVudC4gVGhp
cyB3YXJuaW5nIHNob3VsZCBub3QgYmUgc3VwcHJlc3NlZCB3aXRoCi0gIC8vIHN0YXRpY19jYXN0
IHNpbmNlIHRoZSB0ZXN0IHZlcmlmaWVzIHRoZSBhYmlsaXR5IHRvIHVzZSBiYXJlIE5VTEwgYXMg
dGhlCi0gIC8vIGV4cGVjdGVkIHBhcmFtZXRlciB0byB0aGUgbWFjcm8uCi0gIEFTU0VSVF9FUShO
VUxMLCBwKTsKKyAgY29uc3QgY2hhciogcCA9IG51bGxwdHI7CisgIEFTU0VSVF9FUShudWxscHRy
LCBwKTsKIAogICAvLyBBIGZhaWx1cmUuCiAgIHN0YXRpYyBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKEFTU0VSVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9F
UShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdU
RVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgQVNTRVJUX0VRKDAsIG5vbl9wb2ludGVy
KS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2lu
dGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTM3OTgsNiArMzgz
MywxMiBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9USFJPVykgewogICAgICAgQVNTRVJU
X1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAgICAgIkV4cGVjdGVkOiBUaHJvd0Fu
SW50ZWdlcigpIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgogICAgICAgIiAg
QWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iKTsKKyAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoCisgICAgICBBU1NFUlRfVEhST1coVGhyb3dSdW50aW1lRXJyb3IoIkEgZGVzY3JpcHRp
b24iKSwgc3RkOjpsb2dpY19lcnJvciksCisgICAgICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVy
cm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAidGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0
eXBlIHN0ZDo6bG9naWNfZXJyb3IuXG4gICIKKyAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVS
Uk9SX0RFU0MgIiAiCisgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRpb25cIi4i
KTsKICMgZW5kaWYKIAogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgKQEAgLTM4MTIsNiArMzg1Mywx
MSBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9OT19USFJPVykgewogICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShBU1NFUlRfTk9fVEhST1coVGhyb3dBbkludGVnZXIoKSksCiAgICAgICAgICAg
ICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dBbkludGVnZXIoKSBkb2Vzbid0IHRocm93IGFu
IGV4Y2VwdGlvbi4iCiAgICAgICAgICAgICAgICAgICAgICAgICJcbiAgQWN0dWFsOiBpdCB0aHJv
d3MuIik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9OT19USFJPVyhUaHJvd1J1bnRp
bWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVj
dGVkOiBUaHJvd1J1bnRpbWVFcnJvcihcIkEgZGVzY3JpcHRpb25cIikgIgorICAgICAgICAgICAg
ICAgICAgICAgICAiZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4gICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIkFjdHVhbDogaXQgdGhyb3dzICIgRVJST1JfREVTQyAiICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgIndpdGggZGVzY3JpcHRpb24gXCJBIGRlc2NyaXB0aW9uXCIuIik7CiB9
CiAKIC8vIFRlc3RzIEFTU0VSVF9BTllfVEhST1cuCkBAIC0zOTE5LDExICszOTY1LDggQEAgVEVT
VChBc3NlcnRpb25UZXN0LCBOYW1lZEVudW0pIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
RVhQRUNUX0VRKGtFMSwga0UyKSwgIldoaWNoIGlzOiAxIik7CiB9CiAKLS8vIFRoZSB2ZXJzaW9u
IG9mIGdjYyB1c2VkIGluIFhDb2RlIDIuMiBoYXMgYSBidWcgYW5kIGRvZXNuJ3QgYWxsb3cKLS8v
IGFub255bW91cyBlbnVtcyBpbiBhc3NlcnRpb25zLiAgVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcg
dGVzdCBpcyBub3QKLS8vIGRvbmUgb24gTWFjLgotLy8gU3VuIFN0dWRpbyBhbmQgSFAgYUNDIGFs
c28gcmVqZWN0IHRoaXMgY29kZS4KLSNpZiAhR1RFU1RfT1NfTUFDICYmICFkZWZpbmVkKF9fU1VO
UFJPX0NDKSAmJiAhZGVmaW5lZChfX0hQX2FDQykKKy8vIFN1biBTdHVkaW8gYW5kIEhQIGFDQzJy
ZWplY3QgdGhpcyBjb2RlLgorI2lmICFkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAhZGVmaW5lZChf
X0hQX2FDQykKIAogLy8gVGVzdHMgdXNpbmcgYXNzZXJ0aW9ucyB3aXRoIGFub255bW91cyBlbnVt
cy4KIGVudW0gewpAQCAtNDA4NCwxMSArNDEyNywxMyBAQCBURVNUKEhSRVNVTFRBc3NlcnRpb25U
ZXN0LCBTdHJlYW1pbmcpIHsKIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCiAKLSNpZmRl
ZiBfX0JPUkxBTkRDX18KLS8vIFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5
cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUiCi0jIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2Mg
LXctcmNoCisvLyBUaGUgZm9sbG93aW5nIGNvZGUgaW50ZW50aW9uYWxseSB0ZXN0cyBhIHN1Ym9w
dGltYWwgc3ludGF4LgorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkYW5nbGluZy1lbHNlIgorI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VtcHR5LWJvZHkiCisjcHJhZ21hIEdDQyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XcHJhZ21hcyIKICNlbmRpZgotCiAvLyBUZXN0cyB0aGF0IHRo
ZSBhc3NlcnRpb24gbWFjcm9zIGJlaGF2ZSBsaWtlIHNpbmdsZSBzdGF0ZW1lbnRzLgogVEVTVChB
c3NlcnRpb25TeW50YXhUZXN0LCBCYXNpY0Fzc2VydGlvbnNCZWhhdmVzTGlrZVNpbmdsZVN0YXRl
bWVudCkgewogICBpZiAoQWx3YXlzRmFsc2UoKSkKQEAgLTQxMDgsNiArNDE1Myw5IEBAIFRFU1Qo
QXNzZXJ0aW9uU3ludGF4VGVzdCwgQmFzaWNBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0
ZW1lbnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9HVCgzLCAyKSA8PCAiIjsKIH0KKyNpZmRlZiBf
X0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogCiAjaWYgR1RFU1Rf
SEFTX0VYQ0VQVElPTlMKIC8vIFRlc3RzIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwgbm90IGNvbXBs
YWluIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgaW4gdGhlCkBAIC00MTI0LDYgKzQxNzIsMTcgQEAg
VEVTVChFeHBlY3RUaHJvd1Rlc3QsIERvZXNOb3RHZW5lcmF0ZVVucmVhY2hhYmxlQ29kZVdhcm5p
bmcpIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhuKyspLCAi
Iik7CiB9CiAKK1RFU1QoRXhwZWN0VGhyb3dUZXN0LCBEb2VzTm90R2VuZXJhdGVEdXBsaWNhdGVD
YXRjaENsYXVzZVdhcm5pbmcpIHsKKyAgRVhQRUNUX1RIUk9XKHRocm93IHN0ZDo6ZXhjZXB0aW9u
KCksIHN0ZDo6ZXhjZXB0aW9uKTsKK30KKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlv
bmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1i
b2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYK
IFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgRXhjZXB0aW9uQXNzZXJ0aW9uc0JlaGF2ZXNMaWtl
U2luZ2xlU3RhdGVtZW50KSB7CiAgIGlmIChBbHdheXNGYWxzZSgpKQogICAgIEVYUEVDVF9USFJP
VyhUaHJvd05vdGhpbmcoKSwgYm9vbCk7CkBAIC00MTQ5LDggKzQyMDgsMTkgQEAgVEVTVChBc3Nl
cnRpb25TeW50YXhUZXN0LCBFeGNlcHRpb25Bc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0
ZW1lbnQpIHsKICAgZWxzZQogICAgIDsgIC8vIE5PTElOVAogfQorI2lmZGVmIF9fR05VQ19fCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCisKICNlbmRpZiAgLy8gR1RFU1RfSEFT
X0VYQ0VQVElPTlMKIAorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMg
YSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxz
ZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1QoQXNzZXJ0
aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVT
dGF0ZW1lbnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCiAgICAgRVhQRUNUX05PX0ZBVEFMX0ZB
SUxVUkUoRkFJTCgpKSA8PCAiVGhpcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0ZWQuICIKQEAgLTQx
NzMsNiArNDI0Myw5IEBAIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVB
c3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIEFTU0VS
VF9OT19GQVRBTF9GQUlMVVJFKFNVQ0NFRUQoKSk7CiB9CisjaWZkZWYgX19HTlVDX18KKyNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCB0aGUgYXNzZXJ0
aW9uIG1hY3JvcyB3b3JrIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KIFRFU1QoQXNzZXJ0
aW9uU3ludGF4VGVzdCwgV29ya3NXaXRoU3dpdGNoKSB7CkBAIC00MzAyLDEwICs0Mzc1LDggQEAg
VEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFTU0VSVF9TVFIpIHsKIFRFU1QoQXNzZXJ0
aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfRkxPQVRJTkcpIHsKICAgQVNTRVJUX0ZMT0FUX0VR
KDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9ET1VCTEVfRVEoMSwg
MSkgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNT
RVJUX05FQVIoMSwxLjIsIDAuMSkgPDwgIkV4cGVjdCBmYWlsdXJlLiIsICAvLyBOT0xJTlQKKyAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05FQVIoMSwgMS4yLCAwLjEpIDw8ICJFeHBlY3Qg
ZmFpbHVyZS4iLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3QgZmFp
bHVyZS4iKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUg
aXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4g
dGhlIHByZXZpb3VzIHN0YXRlbWVudC4KIH0KIAogLy8gVGVzdHMgdXNpbmcgQVNTRVJUX0ZBTFNF
IHdpdGggYSBzdHJlYW1lZCBtZXNzYWdlLgpAQCAtNDMzMiwxMCArNDQwMywxMiBAQCBURVNUKEFz
c2VydGlvbldpdGhNZXNzYWdlVGVzdCwgU1VDQ0VFRCkgewogVEVTVChBc3NlcnRpb25XaXRoTWVz
c2FnZVRlc3QsIEFTU0VSVF9UUlVFKSB7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8ICJUaGlzIHNo
b3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8IHRydWU7Ci0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9UUlVFKGZhbHNlKSA8PCBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyICo+KE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgIDw8IHN0
YXRpY19jYXN0PGNoYXIgKj4oTlVMTCk7Ci0gIH0sICIobnVsbCkobnVsbCkiKTsKKyAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoCisgICAgICB7ICAvLyBOT0xJTlQKKyAgICAgICAgQVNTRVJUX1RSVUUo
ZmFsc2UpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpOworICAgICAgfSwK
KyAgICAgICIobnVsbCkobnVsbCkiKTsKIH0KIAogI2lmIEdURVNUX09TX1dJTkRPV1MKQEAgLTQ0
NDAsMjMgKzQ1MTMsMTYgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfRVFfRG91YmxlKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI1LjEiKTsKIH0KIAotI2lmIEdURVNUX0NBTl9DT01Q
QVJFX05VTEwKIC8vIFRlc3RzIEVYUEVDVF9FUShOVUxMLCBwb2ludGVyKS4KIFRFU1QoRXhwZWN0
VGVzdCwgRVhQRUNUX0VRX05VTEwpIHsKICAgLy8gQSBzdWNjZXNzLgotICBjb25zdCBjaGFyKiBw
ID0gTlVMTDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVyc2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlv
dXMgd2FybmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0gIC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQu
IFRoaXMgd2FybmluZyBzaG91bGQgbm90IGJlIHN1cHByZXNzZWQgd2l0aAotICAvLyBzdGF0aWNf
Y2FzdCBzaW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUgYWJpbGl0eSB0byB1c2UgYmFyZSBOVUxM
IGFzIHRoZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIgdG8gdGhlIG1hY3JvLgotICBFWFBFQ1Rf
RVEoTlVMTCwgcCk7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEobnVs
bHB0ciwgcCk7CiAKICAgLy8gQSBmYWlsdXJlLgogICBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9FUShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYg
IC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgRVhQRUNUX0VRKDAsIG5vbl9w
b2ludGVyKS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVs
bCBwb2ludGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTQ0ODIs
NyArNDU0OCw3IEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05FKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3R1YWw6ICdhJyAoOTcsIDB4NjEpIHZzICdhJyAoOTcsIDB4NjEpIik7
CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORSgyLCAyKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjIiKTsKLSAgY2hhciogY29uc3QgcDAgPSBOVUxMOworICBjaGFyKiBj
b25zdCBwMCA9IG51bGxwdHI7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORShw
MCwgcDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicDAiKTsKICAgLy8gT25seSB3YXkg
dG8gZ2V0IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CkBAIC00NTQxLDYg
KzQ2MDcsMTIgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfVEhST1cpIHsKICAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93QW5JbnRlZ2VyKCkgdGhyb3dz
IGFuIGV4Y2VwdGlvbiBvZiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIGJvb2wu
XG4gIEFjdHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50IHR5cGUuIik7CisgIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlv
biIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsb2dpY19l
cnJvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dSdW50aW1l
RXJyb3IoXCJBIGRlc2NyaXB0aW9uXCIpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRo
cm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBzdGQ6OmxvZ2ljX2Vycm9yLlxuICAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RFU0MgIiAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlv
blwiLiIpOwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKICAgICAgIEVYUEVDVF9USFJPVyhU
aHJvd05vdGhpbmcoKSwgYm9vbCksCiAgICAgICAiRXhwZWN0ZWQ6IFRocm93Tm90aGluZygpIHRo
cm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgpAQCAtNDU1Myw2ICs0NjI1LDExIEBA
IFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05PX1RIUk9XKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9OT19USFJPVyhUaHJvd0FuSW50ZWdlcigpKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIGRvZXNuJ3QgdGhyb3cgYW4g
IgogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uLlxuICBBY3R1YWw6IGl0IHRo
cm93cy4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05PX1RIUk9XKFRocm93
UnVudGltZUVycm9yKCJBIGRlc2NyaXB0aW9uIikpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiAgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsOiBpdCB0aHJvd3MgIiBFUlJPUl9ERVND
ICIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVz
Y3JpcHRpb25cIi4iKTsKIH0KIAogLy8gVGVzdHMgRVhQRUNUX0FOWV9USFJPVy4KQEAgLTQ1OTAs
NyArNDY2Nyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgUG9pbnRlcikgewogCiAv
LyBUZXN0cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgbm9uLWNoYXIgcG9p
bnRlci4KIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgTnVsbFBvaW50ZXIpIHsKLSAgaW50
KiBwID0gTlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCki
LCBTdHJlYW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2MDEsNyArNDY3OCw3
IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgQ1N0cmluZykgewogCiAvLyBUZXN0cyB1
c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgQyBzdHJpbmcuCiBURVNUKFN0cmVh
bWFibGVUb1N0cmluZ1Rlc3QsIE51bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAgPSBOVUxMOworICBj
aGFyKiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLCBTdHJlYW1hYmxlVG9T
dHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2NDYsOCArNDcyMyw3IEBAIFRFU1QoU3RyZWFt
YWJsZVRlc3QsIGludCkgewogLy8gaW1wbGVtZW50ZWQgYSB3b3JrYXJvdW5kIChzdWJzdGl0dXRp
bmcgIihudWxsKSIgZm9yIE5VTEwpLiAgVGhpcwogLy8gdGVzdHMgd2hldGhlciB0aGUgd29ya2Fy
b3VuZCB3b3Jrcy4KIFRFU1QoU3RyZWFtYWJsZVRlc3QsIE51bGxDaGFyUHRyKSB7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEZBSUwoKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oTlVMTCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICIobnVsbCkiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoRkFJTCgpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgIihudWxsKSIp
OwogfQogCiAvLyBUZXN0cyB0aGF0IGJhc2ljIElPIG1hbmlwdWxhdG9ycyAoZW5kbCwgZW5kcywg
YW5kIGZsdXNoKSBjYW4gYmUKQEAgLTQ2OTgsNiArNDc3NCwxOSBAQCBURVNUKE1hY3JvVGVzdCwg
RkFJTCkgewogICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwgZmFpbHVyZS4iKTsK
IH0KIAorLy8gVGVzdHMgR1RFU1RfRkFJTF9BVC4KK1RFU1QoTWFjcm9UZXN0LCBHVEVTVF9GQUlM
X0FUKSB7CisgIC8vIFZlcmlmaWVzIHRoYXQgR1RFU1RfRkFJTF9BVCBkb2VzIGdlbmVyYXRlIGEg
ZmF0YWwgZmFpbHVyZSBhbmQKKyAgLy8gdGhlIGZhaWx1cmUgbWVzc2FnZSBjb250YWlucyB0aGUg
dXNlci1zdHJlYW1lZCBwYXJ0LgorICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9GQUlMX0FU
KCJmb28uY2MiLCA0MikgPDwgIldyb25nISIsICJXcm9uZyEiKTsKKworICAvLyBWZXJpZmllcyB0
aGF0IHRoZSB1c2VyLXN0cmVhbWVkIHBhcnQgaXMgb3B0aW9uYWwuCisgIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEdURVNUX0ZBSUxfQVQoImZvby5jYyIsIDQyKSwgIkZhaWxlZCIpOworCisgIC8vIFNl
ZSB0aGUgQUREX0ZBSUxfQVQgdGVzdCBhYm92ZSB0byBzZWUgaG93IHdlIHRlc3QgdGhhdCB0aGUg
ZmFpbHVyZSBtZXNzYWdlCisgIC8vIGNvbnRhaW5zIHRoZSByaWdodCBmaWxlbmFtZSBhbmQgbGlu
ZSBudW1iZXIgLS0gdGhlIHNhbWUgYXBwbGllcyBoZXJlLgorfQorCiAvLyBUZXN0cyBTVUNDRUVE
CiBURVNUKE1hY3JvVGVzdCwgU1VDQ0VFRCkgewogICBTVUNDRUVEKCk7CkBAIC00ODMyLDc1ICs0
OTIxLDkgQEAgVEVTVChFcUFzc2VydGlvblRlc3QsIFN0ZFdpZGVTdHJpbmcpIHsKIAogI2VuZGlm
ICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5H
Ci0vLyBUZXN0cyB1c2luZyA6OnN0cmluZyB2YWx1ZXMgaW4ge0VYUEVDVHxBU1NFUlR9X0VRLgot
VEVTVChFcUFzc2VydGlvblRlc3QsIEdsb2JhbFN0cmluZykgewotICAvLyBDb21wYXJlcyBhIGNv
bnN0IGNoYXIqIHRvIGEgOjpzdHJpbmcgdGhhdCBoYXMgaWRlbnRpY2FsIGNvbnRlbnQuCi0gIEVY
UEVDVF9FUSgiVGVzdCIsIDo6c3RyaW5nKCJUZXN0IikpOwotCi0gIC8vIENvbXBhcmVzIHR3byBp
ZGVudGljYWwgOjpzdHJpbmdzLgotICBjb25zdCA6OnN0cmluZyBzdHIxKCJBICogaW4gdGhlIG1p
ZGRsZSIpOwotICBjb25zdCA6OnN0cmluZyBzdHIyKHN0cjEpOwotICBBU1NFUlRfRVEoc3RyMSwg
c3RyMik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmluZyB0byBhIGNvbnN0IGNoYXIqIHRoYXQg
aGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
RVEoOjpzdHJpbmcoIlRlc3QiKSwgInRlc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
InRlc3QiKTsKLQotICAvLyBDb21wYXJlcyB0d28gOjpzdHJpbmdzIHRoYXQgaGF2ZSBkaWZmZXJl
bnQgY29udGVudHMsIG9uZSBvZiB3aGljaAotICAvLyBoYXZpbmcgYSBOVUwgY2hhcmFjdGVyIGlu
IHRoZSBtaWRkbGUuCi0gIDo6c3RyaW5nIHN0cjMoc3RyMSk7Ci0gIHN0cjMuYXQoMikgPSAnXDAn
OwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoc3RyMSwgc3RyMyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdHIzIik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmlu
ZyB0byBhIGNoYXIqIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfRVEoOjpzdHJpbmcoImJhciIpLCBjb25z
dF9jYXN0PGNoYXIqPigiZm9vIikpOwotICB9LCAiIik7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1Rf
SEFTX0dMT0JBTF9TVFJJTkcKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0vLyBU
ZXN0cyB1c2luZyA6OndzdHJpbmcgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1Qo
RXFBc3NlcnRpb25UZXN0LCBHbG9iYWxXaWRlU3RyaW5nKSB7Ci0gIC8vIENvbXBhcmVzIHR3byBp
ZGVudGljYWwgOjp3c3RyaW5ncy4KLSAgc3RhdGljIGNvbnN0IDo6d3N0cmluZyB3c3RyMShMIkEg
KiBpbiB0aGUgbWlkZGxlIik7Ci0gIHN0YXRpYyBjb25zdCA6OndzdHJpbmcgd3N0cjIod3N0cjEp
OwotICBFWFBFQ1RfRVEod3N0cjEsIHdzdHIyKTsKLQotICAvLyBDb21wYXJlcyBhIGNvbnN0IHdj
aGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGlkZW50aWNhbCBjb250ZW50LgotICBjb25z
dCB3Y2hhcl90IGtUZXN0WDgxMTlbXSA9IHsgJ1QnLCAnZScsICdzJywgJ3QnLCAweDgxMTksICdc
MCcgfTsKLSAgQVNTRVJUX0VRKGtUZXN0WDgxMTksIDo6d3N0cmluZyhrVGVzdFg4MTE5KSk7Ci0K
LSAgLy8gQ29tcGFyZXMgYSBjb25zdCB3Y2hhcl90KiB0byBhIDo6d3N0cmluZyB0aGF0IGhhcyBk
aWZmZXJlbnQKLSAgLy8gY29udGVudC4KLSAgY29uc3Qgd2NoYXJfdCBrVGVzdFg4MTIwW10gPSB7
ICdUJywgJ2UnLCAncycsICd0JywgMHg4MTIwLCAnXDAnIH07Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9FUShrVGVzdFg4MTIwLCA6OndzdHJpbmco
a1Rlc3RYODExOSkpOwotICB9LCAiVGVzdFxceDgxMTkiKTsKLQotICAvLyBDb21wYXJlcyBhIHdj
aGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICB3Y2hh
cl90KiBjb25zdCBwMSA9IGNvbnN0X2Nhc3Q8d2NoYXJfdCo+KEwiZm9vIik7Ci0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShwMSwgOjp3c3RyaW5nKEwiYmFyIikpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYmFyIik7Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIDo6d3N0cmlu
Z3MgdGhhdCBoYXZlIGRpZmZlcmVudCBjb250ZW50cywgb25lIG9mIHdoaWNoCi0gIC8vIGhhdmlu
ZyBhIE5VTCBjaGFyYWN0ZXIgaW4gdGhlIG1pZGRsZS4KLSAgc3RhdGljIDo6d3N0cmluZyB3c3Ry
MzsKLSAgd3N0cjMgPSB3c3RyMTsKLSAgd3N0cjMuYXQoMikgPSBMJ1wwJzsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoQVNTRVJUX0VRKHdzdHIxLCB3c3RyMyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICJ3c3RyMyIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwot
CiAvLyBUZXN0cyB1c2luZyBjaGFyIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRF
U1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewotICBjaGFyKiBjb25zdCBwMCA9IE5V
TEw7CisgIGNoYXIqIGNvbnN0IHAwID0gbnVsbHB0cjsKICAgLy8gT25seSB3YXkgdG8gZ2V0IHRo
ZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CiAgIC8vIGlzIHRvIGhhdmUgYSBz
ZXBhcmF0ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGluZwogICAvLyB0aGUgdHdvIGNhc3Rz
IG9uIHRoZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0aGVyIGRvZXMKQEAgLTQ5MjIsNyAr
NDk0NSw3IEBAIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewogCiAvLyBUZXN0
cyB1c2luZyB3Y2hhcl90IHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFB
c3NlcnRpb25UZXN0LCBXaWRlQ2hhclBvaW50ZXIpIHsKLSAgd2NoYXJfdCogY29uc3QgcDAgPSBO
VUxMOworICB3Y2hhcl90KiBjb25zdCBwMCA9IG51bGxwdHI7CiAgIC8vIE9ubHkgd2F5IHRvIGdl
dCB0aGUgTm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0aGUgY2FzdAogICAvLyBpcyB0byBoYXZl
IGEgc2VwYXJhdGUgdm9pZCogdmFyaWFibGUgZmlyc3QuIFB1dHRpbmcKICAgLy8gdGhlIHR3byBj
YXN0cyBvbiB0aGUgc2FtZSBsaW5lIGRvZXNuJ3Qgd29yaywgbmVpdGhlciBkb2VzCkBAIC00OTQ3
LDkgKzQ5NzAsOCBAQCBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgV2lkZUNoYXJQb2ludGVyKSB7CiAK
IC8vIFRlc3RzIHVzaW5nIG90aGVyIHR5cGVzIG9mIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJU
fV9FUS4KIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBPdGhlclBvaW50ZXIpIHsKLSAgQVNTRVJUX0VR
KHN0YXRpY19jYXN0PGNvbnN0IGludCo+KE5VTEwpLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
Y29uc3QgaW50Kj4oTlVMTCkpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3Rh
dGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCksCisgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxjb25z
dCBpbnQqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVsbHB0cikpOworICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVs
bHB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0
PGNvbnN0IGludCo+KDB4MTIzNCkpLAogICAgICAgICAgICAgICAgICAgICAgICAiMHgxMjM0Iik7
CiB9CkBAIC01MDY1LDcgKzUwODcsNyBAQCBjbGFzcyBUZXN0TGlmZUN5Y2xlVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKIAogICAvLyBEZXN0cnVjdG9yLiAgRGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRl
c3Qgb2JqZWN0cyB0aGF0IHVzZXMgdGhpcwogICAvLyBmaXh0dXJlLgotICB+VGVzdExpZmVDeWNs
ZVRlc3QoKSB7IGNvdW50Xy0tOyB9CisgIH5UZXN0TGlmZUN5Y2xlVGVzdCgpIG92ZXJyaWRlIHsg
Y291bnRfLS07IH0KIAogICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGl2ZSB0ZXN0IG9iamVj
dHMgdGhhdCB1c2VzIHRoaXMgZml4dHVyZS4KICAgaW50IGNvdW50KCkgY29uc3QgeyByZXR1cm4g
Y291bnRfOyB9CkBAIC01MTU2LDggKzUxNzgsNyBAQCBURVNUKEFzc2VydGlvblJlc3VsdFRlc3Qs
IENhblN0cmVhbU9zdHJlYW1NYW5pcHVsYXRvcnMpIHsKICAgRVhQRUNUX1NUUkVRKCJEYXRhXG5c
XDBXaWxsIGJlIHZpc2libGUiLCByLm1lc3NhZ2UoKSk7CiB9CiAKLS8vIFRoZSBuZXh0IHRlc3Qg
dXNlcyBleHBsaWNpdCBjb252ZXJzaW9uIG9wZXJhdG9ycyAtLSBhIEMrKzExIGZlYXR1cmUuCi0j
aWYgR1RFU1RfTEFOR19DWFgxMQorLy8gVGhlIG5leHQgdGVzdCB1c2VzIGV4cGxpY2l0IGNvbnZl
cnNpb24gb3BlcmF0b3JzCiAKIFRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVzdCwgQ29uc3RydWN0aWJs
ZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewogICBzdHJ1Y3QgRXhwbGljaXRs
eUNvbnZlcnRpYmxlVG9Cb29sIHsKQEAgLTUxNzAsOCArNTE5MSw2IEBAIFRFU1QoQXNzZXJ0aW9u
UmVzdWx0VGVzdCwgQ29uc3RydWN0aWJsZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9v
bCkgewogICBFWFBFQ1RfVFJVRSh2Mik7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgx
MQotCiBzdHJ1Y3QgQ29udmVydGlibGVUb0Fzc2VydGlvblJlc3VsdCB7CiAgIG9wZXJhdG9yIEFz
c2VydGlvblJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIEFzc2VydGlvblJlc3VsdCh0cnVlKTsgfQog
fTsKQEAgLTUyODUsMTIgKzUzMDQsMTIgQEAgVEVTVChNZXNzYWdlVGVzdCwgQ2FuU3RyZWFtVXNl
clR5cGVJblVzZXJOYW1lU3BhY2VXaXRoU3RyZWFtT3BlcmF0b3JJbkdsb2JhbCkgewogLy8gVGVz
dHMgc3RyZWFtaW5nIE5VTEwgcG9pbnRlcnMgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1QoTWVz
c2FnZVRlc3QsIE51bGxQb2ludGVycykgewogICBNZXNzYWdlIG1zZzsKLSAgY2hhciogY29uc3Qg
cDEgPSBOVUxMOwotICB1bnNpZ25lZCBjaGFyKiBjb25zdCBwMiA9IE5VTEw7Ci0gIGludCogcDMg
PSBOVUxMOwotICBkb3VibGUqIHA0ID0gTlVMTDsKLSAgYm9vbCogcDUgPSBOVUxMOwotICBNZXNz
YWdlKiBwNiA9IE5VTEw7CisgIGNoYXIqIGNvbnN0IHAxID0gbnVsbHB0cjsKKyAgdW5zaWduZWQg
Y2hhciogY29uc3QgcDIgPSBudWxscHRyOworICBpbnQqIHAzID0gbnVsbHB0cjsKKyAgZG91Ymxl
KiBwNCA9IG51bGxwdHI7CisgIGJvb2wqIHA1ID0gbnVsbHB0cjsKKyAgTWVzc2FnZSogcDYgPSBu
dWxscHRyOwogCiAgIG1zZyA8PCBwMSA8PCBwMiA8PCBwMyA8PCBwNCA8PCBwNSA8PCBwNjsKICAg
QVNTRVJUX1NUUkVRKCIobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkiLApAQCAt
NTMwMCwxMiArNTMxOSwxMiBAQCBURVNUKE1lc3NhZ2VUZXN0LCBOdWxsUG9pbnRlcnMpIHsKIC8v
IFRlc3RzIHN0cmVhbWluZyB3aWRlIHN0cmluZ3MgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1Qo
TWVzc2FnZVRlc3QsIFdpZGVTdHJpbmdzKSB7CiAgIC8vIFN0cmVhbXMgYSBOVUxMIG9mIHR5cGUg
Y29uc3Qgd2NoYXJfdCouCi0gIGNvbnN0IHdjaGFyX3QqIGNvbnN0X3dzdHIgPSBOVUxMOworICBj
b25zdCB3Y2hhcl90KiBjb25zdF93c3RyID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVs
bCkiLAogICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCBjb25zdF93c3RyKS5HZXRTdHJpbmco
KS5jX3N0cigpKTsKIAogICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0eXBlIHdjaGFyX3QqLgotICB3
Y2hhcl90KiB3c3RyID0gTlVMTDsKKyAgd2NoYXJfdCogd3N0ciA9IG51bGxwdHI7CiAgIEVYUEVD
VF9TVFJFUSgiKG51bGwpIiwKICAgICAgICAgICAgICAgIChNZXNzYWdlKCkgPDwgd3N0cikuR2V0
U3RyaW5nKCkuY19zdHIoKSk7CiAKQEAgLTUzMjksMTUgKzUzNDgsMTUgQEAgbmFtZXNwYWNlIHRl
c3RpbmcgewogY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
ICAgc3RhdGljIGNvbnN0IFRlc3RJbmZvKiBHZXRUZXN0SW5mbyhjb25zdCBjaGFyKiB0ZXN0X25h
bWUpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gR2V0VW5pdFRlc3RJ
bXBsKCktPgotICAgICAgICBHZXRUZXN0Q2FzZSgiVGVzdEluZm9UZXN0IiwgIiIsIE5VTEwsIE5V
TEwpOworICAgIGNvbnN0IFRlc3RTdWl0ZSogY29uc3QgdGVzdF9zdWl0ZSA9CisgICAgICAgIEdl
dFVuaXRUZXN0SW1wbCgpLT5HZXRUZXN0U3VpdGUoIlRlc3RJbmZvVGVzdCIsICIiLCBudWxscHRy
LCBudWxscHRyKTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLT50b3RhbF90
ZXN0X2NvdW50KCk7ICsraSkgewotICAgICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5m
byA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0
ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgeworICAgICAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKGkpOwogICAgICAg
aWYgKHN0cmNtcCh0ZXN0X25hbWUsIHRlc3RfaW5mby0+bmFtZSgpKSA9PSAwKQogICAgICAgICBy
ZXR1cm4gdGVzdF9pbmZvOwogICAgIH0KLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gbnVs
bHB0cjsKICAgfQogCiAgIHN0YXRpYyBjb25zdCBUZXN0UmVzdWx0KiBHZXRUZXN0UmVzdWx0KApA
QCAtNTM1MCw3ICs1MzY5LDcgQEAgY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3Qgewog
VEVTVF9GKFRlc3RJbmZvVGVzdCwgTmFtZXMpIHsKICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRl
c3RfaW5mbyA9IEdldFRlc3RJbmZvKCJOYW1lcyIpOwogCi0gIEFTU0VSVF9TVFJFUSgiVGVzdElu
Zm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgQVNTRVJUX1NUUkVRKCJU
ZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgQVNTRVJUX1NU
UkVRKCJOYW1lcyIsIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIApAQCAtNTM5MCwxMyArNTQwOSwx
MyBAQCBURVNUX1AoQ29kZUxvY2F0aW9uRm9yVEVTVFAsIFZlcmlmeSkgewogICBWRVJJRllfQ09E
RV9MT0NBVElPTjsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoLCBDb2RlTG9jYXRpb25G
b3JURVNUUCwgVmFsdWVzKDApKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIENvZGVMb2Nh
dGlvbkZvclRFU1RQLCBWYWx1ZXMoMCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNz
IENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RF
U1RfQ0FTRShDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIGludCk7CitUWVBFRF9URVNUX1NVSVRF
KENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCwgaW50KTsKIAogVFlQRURfVEVTVChDb2RlTG9jYXRp
b25Gb3JUWVBFRFRFU1QsIFZlcmlmeSkgewogICBWRVJJRllfQ09ERV9MT0NBVElPTjsKQEAgLTU0
MDYsMjAgKzU0MjUsMjEgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb2RlTG9jYXRp
b25Gb3JUWVBFRFRFU1RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1Ao
Q29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0
aW9uRm9yVFlQRURURVNUUCk7CiAKIFRZUEVEX1RFU1RfUChDb2RlTG9jYXRpb25Gb3JUWVBFRFRF
U1RQLCBWZXJpZnkpIHsKICAgVkVSSUZZX0NPREVfTE9DQVRJT047CiB9CiAKLVJFR0lTVEVSX1RZ
UEVEX1RFU1RfQ0FTRV9QKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIFZlcmlmeSk7CitSRUdJ
U1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCwgVmVyaWZ5
KTsKIAotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIENvZGVMb2NhdGlvbkZvclRZ
UEVEVEVTVFAsIGludCk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENvZGVM
b2NhdGlvbkZvclRZUEVEVEVTVFAsIGludCk7CiAKICN1bmRlZiBWRVJJRllfQ09ERV9MT0NBVElP
TgogCiAvLyBUZXN0cyBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYSB0ZXN0IGNhc2UuCi0K
Ky8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVm
IEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogY2xhc3MgU2V0VXBUZXN0Q2FzZVRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgogICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVk
IG9uY2UgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlCkBAIC01NDUxLDEx
ICs1NDcxLDExIEBAIGNsYXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogICAg
IEVYUEVDVF9FUSgwLCBjb3VudGVyXyk7CiAKICAgICAvLyBDbGVhbnMgdXAgdGhlIHNoYXJlZCBy
ZXNvdXJjZS4KLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKKyAgICBzaGFyZWRfcmVzb3Vy
Y2VfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVh
Y2ggdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2
b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIFNldFVwVGVzdENhc2UoKSBzaG91bGQgYmUg
Y2FsbGVkIG9ubHkgb25jZSwgc28gY291bnRlcl8gc2hvdWxkCiAgICAgLy8gYWx3YXlzIGJlIDEu
CiAgICAgRVhQRUNUX0VRKDEsIGNvdW50ZXJfKTsKQEAgLTU0NjksMzggKzU0ODksMTAxIEBAIGNs
YXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogaW50IFNldFVwVGVz
dENhc2VUZXN0Ojpjb3VudGVyXyA9IDA7Ci1jb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6
c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6
c2hhcmVkX3Jlc291cmNlXyA9IG51bGxwdHI7CiAKIC8vIEEgdGVzdCB0aGF0IHVzZXMgdGhlIHNo
YXJlZCByZXNvdXJjZS4KLVRFU1RfRihTZXRVcFRlc3RDYXNlVGVzdCwgVGVzdDEpIHsKLSAgRVhQ
RUNUX1NUUk5FKE5VTEwsIHNoYXJlZF9yZXNvdXJjZV8pOwotfQorVEVTVF9GKFNldFVwVGVzdENh
c2VUZXN0LCBUZXN0MSkgeyBFWFBFQ1RfU1RSTkUobnVsbHB0ciwgc2hhcmVkX3Jlc291cmNlXyk7
IH0KIAogLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgogVEVT
VF9GKFNldFVwVGVzdENhc2VUZXN0LCBUZXN0MikgewogICBFWFBFQ1RfU1RSRVEoIjEyMyIsIHNo
YXJlZF9yZXNvdXJjZV8pOwogfQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCiAKKy8vIFRlc3RzIFNldHVwVGVzdFN1aXRlL1RlYXJEb3duIFRlc3RTdWl0ZQor
Y2xhc3MgU2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3QgeworIHByb3RlY3RlZDoKKyAg
Ly8gVGhpcyB3aWxsIGJlIGNhbGxlZCBvbmNlIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlz
IHRlc3QgY2FzZQorICAvLyBpcyBydW4uCisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkg
eworICAgIHByaW50ZigiU2V0dGluZyB1cCB0aGUgdGVzdCBzdWl0ZSAuIC4gLlxuIik7CisKKyAg
ICAvLyBJbml0aWFsaXplcyBzb21lIHNoYXJlZCByZXNvdXJjZS4gIEluIHRoaXMgc2ltcGxlIGV4
YW1wbGUsIHdlCisgICAgLy8ganVzdCBjcmVhdGUgYSBDIHN0cmluZy4gIE1vcmUgY29tcGxleCBz
dHVmZiBjYW4gYmUgZG9uZSBpZgorICAgIC8vIGRlc2lyZWQuCisgICAgc2hhcmVkX3Jlc291cmNl
XyA9ICIxMjMiOworCisgICAgLy8gSW5jcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMg
dGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICAgIGNvdW50ZXJfKys7CisKKyAgICAvLyBTZXRVcFRl
c3RTdWl0ZSgpIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLgorICAgIEVYUEVDVF9FUSgxLCBj
b3VudGVyXyk7CisgIH0KKworICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhl
IGxhc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcworICAvLyBydW4uCisgIHN0YXRpYyB2b2lk
IFRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIHByaW50ZigiVGVhcmluZyBkb3duIHRoZSB0ZXN0
IHN1aXRlIC4gLiAuXG4iKTsKKworICAgIC8vIERlY3JlbWVudHMgdGhlIG51bWJlciBvZiB0ZXN0
IHN1aXRlcyB0aGF0IGhhdmUgYmVlbiBzZXQgdXAuCisgICAgY291bnRlcl8tLTsKKworICAgIC8v
IFRlYXJEb3duVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgRVhQ
RUNUX0VRKDAsIGNvdW50ZXJfKTsKKworICAgIC8vIENsZWFucyB1cCB0aGUgc2hhcmVkIHJlc291
cmNlLgorICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworICB9CisKKyAgLy8gVGhpcyB3
aWxsIGJlIGNhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgorICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIFNldFVwVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNh
bGxlZCBvbmx5IG9uY2UsIHNvIGNvdW50ZXJfIHNob3VsZAorICAgIC8vIGFsd2F5cyBiZSAxLgor
ICAgIEVYUEVDVF9FUSgxLCBjb3VudGVyXyk7CisgIH0KKworICAvLyBOdW1iZXIgb2YgdGVzdCBz
dWl0ZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICBzdGF0aWMgaW50IGNvdW50ZXJfOworCisg
IC8vIFNvbWUgcmVzb3VyY2UgdG8gYmUgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZS4KKyAgc3RhdGljIGNvbnN0IGNoYXIqIHNoYXJlZF9yZXNvdXJjZV87Cit9OworCitpbnQg
U2V0VXBUZXN0U3VpdGVUZXN0Ojpjb3VudGVyXyA9IDA7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RT
dWl0ZVRlc3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworCisvLyBBIHRlc3QgdGhhdCB1
c2VzIHRoZSBzaGFyZWQgcmVzb3VyY2UuCitURVNUX0YoU2V0VXBUZXN0U3VpdGVUZXN0LCBUZXN0
U2V0dXBUZXN0U3VpdGUxKSB7CisgIEVYUEVDVF9TVFJORShudWxscHRyLCBzaGFyZWRfcmVzb3Vy
Y2VfKTsKK30KKworLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNl
LgorVEVTVF9GKFNldFVwVGVzdFN1aXRlVGVzdCwgVGVzdFNldHVwVGVzdFN1aXRlMikgeworICBF
WFBFQ1RfU1RSRVEoIjEyMyIsIHNoYXJlZF9yZXNvdXJjZV8pOworfQogCiAvLyBUaGUgUGFyc2VG
bGFnc1Rlc3QgdGVzdCBjYXNlIHRlc3RzIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seS4KIAogLy8g
VGhlIEZsYWdzIHN0cnVjdCBzdG9yZXMgYSBjb3B5IG9mIGFsbCBHb29nbGUgVGVzdCBmbGFncy4K
IHN0cnVjdCBGbGFncyB7CiAgIC8vIENvbnN0cnVjdHMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgZWFj
aCBmbGFnIGhhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KLSAgRmxhZ3MoKSA6IGFsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIGJyZWFrX29uX2ZhaWx1cmUoZmFsc2UpLAot
ICAgICAgICAgICAgY2F0Y2hfZXhjZXB0aW9ucyhmYWxzZSksCi0gICAgICAgICAgICBkZWF0aF90
ZXN0X3VzZV9mb3JrKGZhbHNlKSwKLSAgICAgICAgICAgIGZpbHRlcigiIiksCi0gICAgICAgICAg
ICBsaXN0X3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIG91dHB1dCgiIiksCi0gICAgICAgICAg
ICBwcmludF90aW1lKHRydWUpLAotICAgICAgICAgICAgcmFuZG9tX3NlZWQoMCksCi0gICAgICAg
ICAgICByZXBlYXQoMSksCi0gICAgICAgICAgICBzaHVmZmxlKGZhbHNlKSwKLSAgICAgICAgICAg
IHN0YWNrX3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAotICAgICAgICAgICAgc3Ry
ZWFtX3Jlc3VsdF90bygiIiksCi0gICAgICAgICAgICB0aHJvd19vbl9mYWlsdXJlKGZhbHNlKSB7
fQorICBGbGFncygpCisgICAgICA6IGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKGZhbHNlKSwKKyAg
ICAgICAgYnJlYWtfb25fZmFpbHVyZShmYWxzZSksCisgICAgICAgIGNhdGNoX2V4Y2VwdGlvbnMo
ZmFsc2UpLAorICAgICAgICBkZWF0aF90ZXN0X3VzZV9mb3JrKGZhbHNlKSwKKyAgICAgICAgZmFp
bF9mYXN0KGZhbHNlKSwKKyAgICAgICAgZmlsdGVyKCIiKSwKKyAgICAgICAgbGlzdF90ZXN0cyhm
YWxzZSksCisgICAgICAgIG91dHB1dCgiIiksCisgICAgICAgIGJyaWVmKGZhbHNlKSwKKyAgICAg
ICAgcHJpbnRfdGltZSh0cnVlKSwKKyAgICAgICAgcmFuZG9tX3NlZWQoMCksCisgICAgICAgIHJl
cGVhdCgxKSwKKyAgICAgICAgc2h1ZmZsZShmYWxzZSksCisgICAgICAgIHN0YWNrX3RyYWNlX2Rl
cHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAorICAgICAgICBzdHJlYW1fcmVzdWx0X3RvKCIiKSwK
KyAgICAgICAgdGhyb3dfb25fZmFpbHVyZShmYWxzZSkge30KIAogICAvLyBGYWN0b3J5IG1ldGhv
ZHMuCiAKQEAgLTU1MzYsNiArNTYxOSwxNCBAQCBzdHJ1Y3QgRmxhZ3MgewogICAgIHJldHVybiBm
bGFnczsKICAgfQogCisgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0
X2ZhaWxfZmFzdCBmbGFnIGhhcworICAvLyB0aGUgZ2l2ZW4gdmFsdWUuCisgIHN0YXRpYyBGbGFn
cyBGYWlsRmFzdChib29sIGZhaWxfZmFzdCkgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdz
LmZhaWxfZmFzdCA9IGZhaWxfZmFzdDsKKyAgICByZXR1cm4gZmxhZ3M7CisgIH0KKwogICAvLyBD
cmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9maWx0ZXIgZmxhZyBoYXMgdGhl
IGdpdmVuCiAgIC8vIHZhbHVlLgogICBzdGF0aWMgRmxhZ3MgRmlsdGVyKGNvbnN0IGNoYXIqIGZp
bHRlcikgewpAQCAtNTU2MCw2ICs1NjUxLDE0IEBAIHN0cnVjdCBGbGFncyB7CiAgICAgcmV0dXJu
IGZsYWdzOwogICB9CiAKKyAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rl
c3RfYnJpZWYgZmxhZyBoYXMgdGhlIGdpdmVuCisgIC8vIHZhbHVlLgorICBzdGF0aWMgRmxhZ3Mg
QnJpZWYoYm9vbCBicmllZikgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdzLmJyaWVmID0g
YnJpZWY7CisgICAgcmV0dXJuIGZsYWdzOworICB9CisKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0
cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIGhhcyB0aGUgZ2l2ZW4KICAgLy8g
dmFsdWUuCiAgIHN0YXRpYyBGbGFncyBQcmludFRpbWUoYm9vbCBwcmludF90aW1lKSB7CkBAIC01
NTcwLDcgKzU2NjksNyBAQCBzdHJ1Y3QgRmxhZ3MgewogCiAgIC8vIENyZWF0ZXMgYSBGbGFncyBz
dHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgaGFzIHRoZSBnaXZlbgogICAv
LyB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoSW50MzIgcmFuZG9tX3NlZWQpIHsK
KyAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoaW50MzJfdCByYW5kb21fc2VlZCkgewogICAgIEZs
YWdzIGZsYWdzOwogICAgIGZsYWdzLnJhbmRvbV9zZWVkID0gcmFuZG9tX3NlZWQ7CiAgICAgcmV0
dXJuIGZsYWdzOwpAQCAtNTU3OCw3ICs1Njc3LDcgQEAgc3RydWN0IEZsYWdzIHsKIAogICAvLyBD
cmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9yZXBlYXQgZmxhZyBoYXMgdGhl
IGdpdmVuCiAgIC8vIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgUmVwZWF0KEludDMyIHJlcGVhdCkg
eworICBzdGF0aWMgRmxhZ3MgUmVwZWF0KGludDMyX3QgcmVwZWF0KSB7CiAgICAgRmxhZ3MgZmxh
Z3M7CiAgICAgZmxhZ3MucmVwZWF0ID0gcmVwZWF0OwogICAgIHJldHVybiBmbGFnczsKQEAgLTU1
OTQsNyArNTY5Myw3IEBAIHN0cnVjdCBGbGFncyB7CiAKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0
cnVjdCB3aGVyZSB0aGUgR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkgZmxhZyBoYXMKICAg
Ly8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgU3RhY2tUcmFjZURlcHRoKEludDMy
IHN0YWNrX3RyYWNlX2RlcHRoKSB7CisgIHN0YXRpYyBGbGFncyBTdGFja1RyYWNlRGVwdGgoaW50
MzJfdCBzdGFja190cmFjZV9kZXB0aCkgewogICAgIEZsYWdzIGZsYWdzOwogICAgIGZsYWdzLnN0
YWNrX3RyYWNlX2RlcHRoID0gc3RhY2tfdHJhY2VfZGVwdGg7CiAgICAgcmV0dXJuIGZsYWdzOwpA
QCAtNTYyMSwxNCArNTcyMCwxNiBAQCBzdHJ1Y3QgRmxhZ3MgewogICBib29sIGJyZWFrX29uX2Zh
aWx1cmU7CiAgIGJvb2wgY2F0Y2hfZXhjZXB0aW9uczsKICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9m
b3JrOworICBib29sIGZhaWxfZmFzdDsKICAgY29uc3QgY2hhciogZmlsdGVyOwogICBib29sIGxp
c3RfdGVzdHM7CiAgIGNvbnN0IGNoYXIqIG91dHB1dDsKKyAgYm9vbCBicmllZjsKICAgYm9vbCBw
cmludF90aW1lOwotICBJbnQzMiByYW5kb21fc2VlZDsKLSAgSW50MzIgcmVwZWF0OworICBpbnQz
Ml90IHJhbmRvbV9zZWVkOworICBpbnQzMl90IHJlcGVhdDsKICAgYm9vbCBzaHVmZmxlOwotICBJ
bnQzMiBzdGFja190cmFjZV9kZXB0aDsKKyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aDsKICAg
Y29uc3QgY2hhciogc3RyZWFtX3Jlc3VsdF90bzsKICAgYm9vbCB0aHJvd19vbl9mYWlsdXJlOwog
fTsKQEAgLTU2MzcsMTQgKzU3MzgsMTYgQEAgc3RydWN0IEZsYWdzIHsKIGNsYXNzIFBhcnNlRmxh
Z3NUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgLy8gQ2xlYXJzIHRoZSBmbGFn
cyBiZWZvcmUgZWFjaCB0ZXN0LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7CiAgICAgR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykg
PSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpID0gZmFsc2U7CiAgICAg
R1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcoZGVh
dGhfdGVzdF91c2VfZm9yaykgPSBmYWxzZTsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFzdCkgPSBm
YWxzZTsKICAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAiIjsKICAgICBHVEVTVF9GTEFHKGxpc3Rf
dGVzdHMpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gIiI7CisgICAgR1RFU1Rf
RkxBRyhicmllZikgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKHByaW50X3RpbWUpID0gdHJ1ZTsK
ICAgICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IDA7CiAgICAgR1RFU1RfRkxBRyhyZXBlYXQp
ID0gMTsKQEAgLTU2NTYsMTEgKzU3NTksMTEgQEAgY2xhc3MgUGFyc2VGbGFnc1Rlc3QgOiBwdWJs
aWMgVGVzdCB7CiAKICAgLy8gQXNzZXJ0cyB0aGF0IHR3byBuYXJyb3cgb3Igd2lkZSBzdHJpbmcg
YXJyYXlzIGFyZSBlcXVhbC4KICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICBzdGF0
aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKHNpemVfdCBzaXplMSwgQ2hhclR5cGUqKiBhcnJh
eTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUyLCBDaGFy
VHlwZSoqIGFycmF5MikgeworICBzdGF0aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKGludCBz
aXplMSwgQ2hhclR5cGUqKiBhcnJheTEsIGludCBzaXplMiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDaGFyVHlwZSoqIGFycmF5MikgewogICAgIEFTU0VSVF9FUShzaXplMSwg
c2l6ZTIpIDw8ICIgQXJyYXkgc2l6ZXMgZGlmZmVyZW50LiI7CiAKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSAhPSBzaXplMTsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gc2l6ZTE7
IGkrKykgewogICAgICAgQVNTRVJUX1NUUkVRKGFycmF5MVtpXSwgYXJyYXkyW2ldKSA8PCAiIHdo
ZXJlIGkgPT0gIiA8PCBpOwogICAgIH0KICAgfQpAQCAtNTY3Miw5ICs1Nzc1LDExIEBAIGNsYXNz
IFBhcnNlRmxhZ3NUZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVDVF9FUShleHBlY3RlZC5i
cmVha19vbl9mYWlsdXJlLCBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKTsKICAgICBFWFBF
Q1RfRVEoZXhwZWN0ZWQuY2F0Y2hfZXhjZXB0aW9ucywgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRp
b25zKSk7CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmRlYXRoX3Rlc3RfdXNlX2ZvcmssIEdURVNU
X0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpOworICAgIEVYUEVDVF9FUShleHBlY3RlZC5mYWls
X2Zhc3QsIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKGV4cGVjdGVk
LmZpbHRlciwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCkpOwogICAgIEVYUEVDVF9FUShleHBl
Y3RlZC5saXN0X3Rlc3RzLCBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKTsKICAgICBFWFBFQ1RfU1RS
RVEoZXhwZWN0ZWQub3V0cHV0LCBHVEVTVF9GTEFHKG91dHB1dCkuY19zdHIoKSk7CisgICAgRVhQ
RUNUX0VRKGV4cGVjdGVkLmJyaWVmLCBHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQRUNUX0VR
KGV4cGVjdGVkLnByaW50X3RpbWUsIEdURVNUX0ZMQUcocHJpbnRfdGltZSkpOwogICAgIEVYUEVD
VF9FUShleHBlY3RlZC5yYW5kb21fc2VlZCwgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpOwogICAg
IEVYUEVDVF9FUShleHBlY3RlZC5yZXBlYXQsIEdURVNUX0ZMQUcocmVwZWF0KSk7CkBAIC01NzQy
LDE0MSArNTg0Nyw5MCBAQCBjbGFzcyBQYXJzZUZsYWdzVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAog
Ly8gVGVzdHMgcGFyc2luZyBhbiBlbXB0eSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFn
c1Rlc3QsIEVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHtudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHtudWxscHRy
fTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFncygpLCBm
YWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYSBjb21tYW5kIGxpbmUgdGhhdCBoYXMgbm8g
ZmxhZy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTm9GbGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7CiB9CiAKKy8vIFRlc3RzIHBhcnNpbmcgLS1ndGVz
dF9mYWlsX2Zhc3QuCitURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZhaWxGYXN0KSB7CisgIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2ZhaWxfZmFzdCIsIG51bGxwdHJ9
OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmFpbEZhc3QodHJ1
ZSksIGZhbHNlKTsKK30KKwogLy8gVGVzdHMgcGFyc2luZyBhIGJhZCAtLWd0ZXN0X2ZpbHRlciBm
bGFnLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGaWx0ZXJCYWQpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXIiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmls
dGVyIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXIiLCBudWxscHRyfTsKIAogICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCIiKSwg
dHJ1ZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgLS1ndGVzdF9maWx0ZXIgZmxh
Zy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgRmlsdGVyRW1wdHkpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXI9IiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2Zp
bHRlcj0iLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28u
ZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUi
LCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBG
bGFnczo6RmlsdGVyKCIiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgbm9uLWVt
cHR5IC0tZ3Rlc3RfZmlsdGVyIGZsYWcuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZpbHRlck5v
bkVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3RfZmlsdGVyPWFiYyIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXI9YWJjIiwgbnVsbHB0cn07CiAKLSAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBj
b25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigiYWJjIiksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUuCiBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIEJyZWFrT25GYWlsdXJlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZSh0cnVlKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlXzApIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFs
c2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX2YpIHsKLSAgY29uc3Qg
Y2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9m
YWlsdXJlPWYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28u
ZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mIiwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwg
ZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1G
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX0YpIHsKLSAgY29u
c3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19v
bl9mYWlsdXJlPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJm
b28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1GIiwgbnVsbHB0cn07CiAKLSAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBj
b25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNl
KSwgZmFsc2UpOwogfQpAQCAtNTg4NCw0OCArNTkzOCwyNyBAQCBURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIEJyZWFrT25GYWlsdXJlRmFsc2VfRikgewogLy8gVGVzdHMgcGFyc2luZyBhIC0tZ3Rlc3Rf
YnJlYWtfb25fZmFpbHVyZSBmbGFnIHRoYXQgaGFzIGEgInRydWUiCiAvLyBkZWZpbml0aW9uLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZVRydWUpIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKHRydWUpLCBmYWxz
ZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBDYXRjaEV4Y2VwdGlvbnMpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zIiwK
LSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X2NhdGNoX2V4Y2VwdGlvbnMiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6Q2F0Y2hFeGNlcHRpb25zKHRydWUpLCBmYWxzZSk7CiB9CiAK
IC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9kZWF0aF90ZXN0X3VzZV9mb3JrLgogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RVc2VGb3JrKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZGVhdGhfdGVzdF91c2VfZm9yayIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9kZWF0aF90ZXN0X3VzZV9mb3JrIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkRlYXRoVGVzdFVzZUZvcmsodHJ1ZSksIGZhbHNlKTsKIH0K
QEAgLTU5MzMsMzYgKzU5NjYsMjEgQEAgVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RV
c2VGb3JrKSB7CiAvLyBUZXN0cyBoYXZpbmcgdGhlIHNhbWUgZmxhZyB0d2ljZSB3aXRoIGRpZmZl
cmVudCB2YWx1ZXMuICBUaGUKIC8vIGV4cGVjdGVkIGJlaGF2aW9yIGlzIHRoYXQgdGhlIG9uZSBj
b21pbmcgbGFzdCB0YWtlcyBwcmVjZWRlbmNlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEdXBs
aWNhdGVkRmxhZ3MpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiLS1ndGVzdF9maWx0ZXI9YSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmls
dGVyPWEiLCAiLS1ndGVzdF9maWx0ZXI9YiIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsK
IAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVy
KCJiIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGFuIHVucmVjb2duaXplZCBmbGFn
IG9uIHRoZSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFVucmVjb2duaXpl
ZEZsYWcpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
LS1ndGVzdF9icmVha19vbl9mYWlsdXJlIiwKLSAgICAiYmFyIiwgIC8vIFVucmVjb2duaXplZCBi
eSBHb29nbGUgVGVzdC4KLSAgICAiLS1ndGVzdF9maWx0ZXI9YiIsCi0gICAgTlVMTAotICB9Owor
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYXIiLCAgLy8gVW5yZWNvZ25pemVkIGJ5
IEdvb2dsZSBUZXN0LgorICAgICAgICAgICAgICAgICAgICAgICAgIi0tZ3Rlc3RfZmlsdGVyPWIi
LCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiYmFyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZv
by5leGUiLCAiYmFyIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZmxhZ3M7CiAgIGZsYWdzLmJyZWFr
X29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNTk3MiwzODggKzU5OTAsMjUwIEBAIFRFU1RfRihQYXJz
ZUZsYWdzVGVzdCwgVW5yZWNvZ25pemVkRmxhZykgewogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0
ZXN0X2xpc3RfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGbGFn
KSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAg
Ii0tZ3Rlc3RfbGlzdF90ZXN0cyIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlzdF90ZXN0cyIsIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRl
c3RzKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5n
IGEgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNUcnVlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0g
ewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0xIiwKLSAgICAg
IE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9saXN0X3Rlc3RzPTEiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVT
VF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRydWUp
LCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFn
IHdpdGggYSAiZmFsc2UiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIExpc3RUZXN0c0Zh
bHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAg
ICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0wIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBj
aGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPTAiLCBudWxscHRy
fTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAg
ICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxw
dHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVz
dHMgcGFyc2luZyAtLWd0ZXN0X2xpc3RfdGVzdHM9Zi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
TGlzdFRlc3RzRmFsc2VfZikgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5l
eGUiLAotICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9ZiIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPWYiLCBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsK
IAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRl
c3RzKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfbGlzdF90
ZXN0cz1GLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGYWxzZV9GKSB7Ci0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfbGlzdF90
ZXN0cz1GIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsICItLWd0ZXN0X2xpc3RfdGVzdHM9RiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHMoZmFsc2UpLCBmYWxzZSk7CiB9CiAK
IC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9vdXRwdXQgKGludmFsaWQpLgogVEVTVF9GKFBhcnNl
RmxhZ3NUZXN0LCBPdXRwdXRFbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgICItLWd0ZXN0X291dHB1dCIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9vdXRwdXQiLCBudWxscHRyfTsK
IAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9vdXRwdXQiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsICItLWd0ZXN0X291dHB1dCIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzKCksIHRydWUpOwogfQogCiAvLyBUZXN0cyBwYXJz
aW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbAogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBPdXRwdXRYbWwp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9vdXRwdXQ9eG1sIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsi
Zm9vLmV4ZSIsICItLWd0ZXN0X291dHB1dD14bWwiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFy
KiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6T3V0cHV0KCJ4bWwiKSwgZmFsc2UpOwogfQog
CiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxlCiBURVNUX0YoUGFyc2VG
bGFnc1Rlc3QsIE91dHB1dFhtbEZpbGUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQ9eG1sOmZpbGUiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0PXht
bDpmaWxlIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9v
LmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhl
IiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2Miwg
RmxhZ3M6Ok91dHB1dCgieG1sOmZpbGUiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5n
IC0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8KIFRFU1RfRihQYXJzZUZsYWdzVGVz
dCwgT3V0cHV0WG1sRGlyZWN0b3J5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAotICAg
IE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rf
b3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAorICAgICAgICAgICAgICAgICAgICAgICAgbnVs
bHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07
CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGbGFnczo6T3V0cHV0KCJ4bWw6ZGlyZWN0b3J5L3BhdGgvIiksIGZh
bHNlKTsKIH0KIAorLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnCitURVNUX0Yo
UGFyc2VGbGFnc1Rlc3QsIEJyaWVmRmxhZykgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9icmllZiIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYodHJ1ZSksIGZhbHNlKTsKK30KKworLy8gVGVzdHMg
aGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnIHdpdGggYSAidHJ1ZSIgdmFsdWUKK1RFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnVHJ1ZSkgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
ImZvby5leGUiLCAiLS1ndGVzdF9icmllZj0xIiwgbnVsbHB0cn07CisKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OworCisgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmllZih0cnVlKSwgZmFsc2UpOworfQorCisvLyBU
ZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2JyaWVmIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKK1RF
U1RfRihQYXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnRmFsc2UpIHsKKyAgY29uc3QgY2hhciogYXJn
dltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWY9MCIsIG51bGxwdHJ9OworCisgIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BB
UlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYoZmFsc2UpLCBmYWxzZSk7Cit9
CisKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnCiBURVNUX0YoUGFy
c2VGbGFnc1Rlc3QsIFByaW50VGltZUZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lIiwKLSAgICAgIE5V
TEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9w
cmludF90aW1lIiwgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZSh0cnVlKSwgZmFs
c2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X3ByaW50X3RpbWUgZmxhZyB3aXRo
IGEgInRydWUiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZVRydWUpIHsK
LSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1n
dGVzdF9wcmludF90aW1lPTEiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9MSIsIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRU
aW1lKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5n
IGEgLS1ndGVzdF9wcmludF90aW1lIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgUHJpbnRUaW1lRmFsc2UpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lPTAiLAotICAg
ICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X3ByaW50X3RpbWU9MCIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdf
RkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwgZmFsc2UpOworICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZh
bHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfcHJpbnRfdGltZT1m
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBQcmludFRpbWVGYWxzZV9mKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1m
IiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICIt
LWd0ZXN0X3ByaW50X3RpbWU9ZiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRl
c3RzIHBhcnNpbmcgLS1ndGVzdF9wcmludF90aW1lPUYuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3Qs
IFByaW50VGltZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28u
ZXhlIiwKLSAgICAiLS1ndGVzdF9wcmludF90aW1lPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcHJpbnRfdGltZT1GIiwgbnVs
bHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07
CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50
VGltZShmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JhbmRv
bV9zZWVkPW51bWJlcgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBSYW5kb21TZWVkKSB7Ci0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmFuZG9t
X3NlZWQ9MTAwMCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9yYW5kb21fc2VlZD0xMDAwIiwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlJhbmRvbVNlZWQoMTAwMCksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JlcGVhdD1udW1iZXIKIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgUmVwZWF0KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLCBu
dWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRy
fTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UmVw
ZWF0KDEwMDApLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19y
dW5fZGlzYWJsZWRfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlz
YWJsZWRUZXN0c0ZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9v
LmV4ZSIsCi0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsCi0gICAgICBO
VUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rf
YWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QWxzb1J1bkRpc2FibGVkVGVzdHMo
dHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogfQogCiAvLyBUZXN0
cyBoYXZpbmcgYSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcgd2l0aCBhICJ0
cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRUZXN0c1Ry
dWUpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAg
ICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0xIiwKLSAgICAgIE5VTEwKLSAgICB9
OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9hbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cz0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKHRydWUpLCBmYWxz
ZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpBbHNv
UnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVz
dHMgZmxhZyB3aXRoIGEgImZhbHNlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNv
UnVuRGlzYWJsZWRUZXN0c0ZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIs
Ci0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9v
LmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBh
cmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJs
ZWRUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2
LCBhcmd2MiwgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKGZhbHNlKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9z
aHVmZmxlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBTaHVmZmxlV2l0aG91dFZhbHVlKSB7Ci0g
IGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1
ZmZsZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3Rfc2h1ZmZsZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJn
diwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBh
cnNpbmcgLS1ndGVzdF9zaHVmZmxlPTAuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFNodWZmbGVG
YWxzZV8wKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3Rfc2h1ZmZsZT0wIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3NodWZmbGU9MCIsIG51bGxwdHJ9OwogCi0gIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKGZhbHNlKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF9zaHVmZmxlIGZsYWcgdGhhdCBoYXMg
YSAidHJ1ZSIgZGVmaW5pdGlvbi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU2h1ZmZsZVRydWUp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9zaHVmZmxlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJm
b28uZXhlIiwgIi0tZ3Rlc3Rfc2h1ZmZsZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlNodWZmbGUodHJ1ZSksIGZhbHNlKTsKIH0KIAog
Ly8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3N0YWNrX3RyYWNlX2RlcHRoPW51bWJlci4KIFRFU1Rf
RihQYXJzZUZsYWdzVGVzdCwgU3RhY2tUcmFjZURlcHRoKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGg9NSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1n
dGVzdF9zdGFja190cmFjZV9kZXB0aD01IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0YWNrVHJhY2VEZXB0aCg1KSwgZmFsc2UpOwogfQog
CiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFN0cmVhbVJlc3VsdFRvKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90
bz1sb2NhbGhvc3Q6MTIzNCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF9zdHJlYW1fcmVzdWx0X3RvPWxvY2FsaG9zdDoxMjM0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oCiAgICAgICBhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0cmVhbVJlc3VsdFRvKCJsb2NhbGhvc3Q6
MTIzNCIpLCBmYWxzZSk7CkBAIC02MzYxLDMyICs2MjQxLDE4IEBAIFRFU1RfRihQYXJzZUZsYWdz
VGVzdCwgU3RyZWFtUmVzdWx0VG8pIHsKIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3Rocm93
X29uX2ZhaWx1cmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlV2l0aG91
dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsIG51bGxwdHJ9
OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwK
LSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAg
IEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpUaHJvd09uRmFp
bHVyZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfdGhyb3df
b25fZmFpbHVyZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBUaHJvd09uRmFpbHVyZUZhbHNl
XzApIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1n
dGVzdF90aHJvd19vbl9mYWlsdXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0wIiwgbnVsbHB0
cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
ICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25G
YWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQpAQCAtNjM5NCwxNiArNjI2MCw5IEBAIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgVGhyb3dPbkZhaWx1cmVGYWxzZV8wKSB7CiAvLyBUZXN0cyBwYXJzaW5n
IGEgLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlIGZsYWcgdGhhdCBoYXMgYSAidHJ1ZSIKIC8vIGRl
ZmluaXRpb24uCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlVHJ1ZSkgewot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3Ro
cm93X29uX2ZhaWx1cmU9MSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlPTEiLCBudWxscHRyfTsKIAot
ICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVT
VF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6VGhyb3dPbkZhaWx1cmUo
dHJ1ZSksIGZhbHNlKTsKIH0KQEAgLTY0MzgsNyArNjI5Nyw3IEBAIFRFU1RfRihQYXJzZUZsYWdz
VGVzdCwgV2lkZVN0cmluZ3MpIHsKICNpZiBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfCiBj
bGFzcyBGbGFnZmlsZVRlc3QgOiBwdWJsaWMgUGFyc2VGbGFnc1Rlc3QgewogIHB1YmxpYzoKLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIFBh
cnNlRmxhZ3NUZXN0OjpTZXRVcCgpOwogCiAgICAgdGVzdGRhdGFfcGF0aF8uU2V0KGludGVybmFs
OjpGaWxlUGF0aCgKQEAgLTY0NDgsNyArNjMwNyw3IEBAIGNsYXNzIEZsYWdmaWxlVGVzdCA6IHB1
YmxpYyBQYXJzZUZsYWdzVGVzdCB7CiAgICAgRVhQRUNUX1RSVUUodGVzdGRhdGFfcGF0aF8uQ3Jl
YXRlRm9sZGVyKCkpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lk
IFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeDo6Um1E
aXIodGVzdGRhdGFfcGF0aF8uY19zdHIoKSk7CiAgICAgUGFyc2VGbGFnc1Rlc3Q6OlRlYXJEb3du
KCk7CiAgIH0KQEAgLTY0NzIsMTYgKzYzMzEsOSBAQCBURVNUX0YoRmxhZ2ZpbGVUZXN0LCBFbXB0
eSkgewogICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCIt
LSIgR1RFU1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIo
KTsKIAotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdm
aWxlX2ZsYWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3MoKSwgZmFsc2UpOwogfQpAQCAtNjQ5Mywx
NiArNjM0NSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIEZpbHRlck5vbkVtcHR5KSB7CiAgIHN0
ZDo6c3RyaW5nIGZsYWdmaWxlX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gImZsYWdmaWxlPSIpICsgZmxhZ2ZpbGVfcGF0aC5jX3N0cigpOwogCi0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgZmxhZ2ZpbGVfZmxhZy5j
X3N0cigpLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgZmxhZ2ZpbGVfZmxhZy5jX3N0cigpLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJhYmMiKSwgZmFsc2UpOwogfQpAQCAtNjUx
NiwxNiArNjM2MSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIFNldmVyYWxGbGFncykgewogICBz
dGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RFU1Rf
RkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAotICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2ZsYWcu
Y19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZXhwZWN0ZWRfZmxhZ3M7
CiAgIGV4cGVjdGVkX2ZsYWdzLmJyZWFrX29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNjU0MSwzNCAr
NjM3OSwzNCBAQCBjbGFzcyBDdXJyZW50VGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHBy
b3RlY3RlZDoKICAgLy8gVGVzdHMgdGhhdCBjdXJyZW50X3Rlc3RfaW5mbygpIHJldHVybnMgTlVM
TCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4KICAgLy8gdGhlIHRlc3QgY2FzZSBpcyBydW4uCi0g
IHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1
aXRlKCkgewogICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMg
cG9pbnQuCiAgICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgICBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0
X2luZm8gPT0gTlVMTCkKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gbnVsbHB0cikKICAg
ICAgICAgPDwgIlRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQu
IjsKICAgfQogCiAgIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5zIE5V
TEwgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbgogICAvLyB0aGUgdGVzdCBjYXNlIGhhcyBydW4uCi0g
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3du
VGVzdFN1aXRlKCkgewogICAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgICAgVW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdF9pbmZvID09IE5VTEwpCisgICAgRVhQRUNUX1RSVUUodGVzdF9pbmZvID09IG51bGxw
dHIpCiAgICAgICAgIDw8ICJUaGVyZSBzaG91bGQgYmUgbm8gdGVzdHMgcnVubmluZyBhdCB0aGlz
IHBvaW50LiI7CiAgIH0KIH07CiAKIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSBy
ZXR1cm5zIFRlc3RJbmZvIGZvciBjdXJyZW50bHkgcnVubmluZwogLy8gdGVzdCBieSBjaGVja2lu
ZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuCi1URVNUX0Yo
Q3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgeworVEVT
VF9GKEN1cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlKSB7
CiAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRfVFJVRShOVUxMICE9IHRlc3RfaW5m
bykKKyAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSB0ZXN0X2luZm8pCiAgICAgICA8PCAiVGhlcmUg
aXMgYSB0ZXN0IHJ1bm5pbmcgc28gd2Ugc2hvdWxkIGhhdmUgYSB2YWxpZCBUZXN0SW5mby4iOwot
ICBFWFBFQ1RfU1RSRVEoIkN1cnJlbnRUZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpCi0gICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBy
dW5uaW5nIHRlc3QgY2FzZS4iOwotICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5B
VGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVz
dEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBl
Y3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBF
WFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlIiwgdGVzdF9pbmZvLT5u
YW1lKCkpCiAgICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5u
aW5nIHRlc3QuIjsKIH0KIApAQCAtNjU3NiwxNCArNjQxNCwxNCBAQCBURVNUX0YoQ3VycmVudFRl
c3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgewogLy8gdGVzdCBieSBj
aGVja2luZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuICBX
ZQogLy8gdXNlIHRoaXMgdGVzdCB0byBzZWUgdGhhdCB0aGUgVGVzdEluZm8gb2JqZWN0IGFjdHVh
bGx5IGNoYW5nZWQgZnJvbQogLy8gdGhlIHByZXZpb3VzIGludm9jYXRpb24uCi1URVNUX0YoQ3Vy
cmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENhc2UpIHsKK1RFU1Rf
RihDdXJyZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvclNlY29uZFRlc3RJbkFUZXN0U3VpdGUpIHsK
ICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKE5VTEwgIT0gdGVzdF9pbmZv
KQorICBBU1NFUlRfVFJVRShudWxscHRyICE9IHRlc3RfaW5mbykKICAgICAgIDw8ICJUaGVyZSBp
cyBhIHRlc3QgcnVubmluZyBzbyB3ZSBzaG91bGQgaGF2ZSBhIHZhbGlkIFRlc3RJbmZvLiI7Ci0g
IEVYUEVDVF9TVFJFUSgiQ3VycmVudFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNl
X25hbWUoKSkKLSAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1
bm5pbmcgdGVzdCBjYXNlLiI7Ci0gIEVYUEVDVF9TVFJFUSgiV29ya3NGb3JTZWNvbmRUZXN0SW5B
VGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVz
dEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBl
Y3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBF
WFBFQ1RfU1RSRVEoIldvcmtzRm9yU2Vjb25kVGVzdEluQVRlc3RTdWl0ZSIsIHRlc3RfaW5mby0+
bmFtZSgpKQogICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgcnVu
bmluZyB0ZXN0LiI7CiB9CiAKQEAgLTY2MjgsMTIgKzY0NjYsOCBAQCBURVNUKE5lc3RlZFRlc3Rp
bmdOYW1lc3BhY2VUZXN0LCBGYWlsdXJlKSB7CiAvLyBzdWNjZXNzZnVsbHkuCiBjbGFzcyBQcm90
ZWN0ZWRGaXh0dXJlTWV0aG9kc1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgVGVzdDo6U2V0VXAoKTsKLSAgfQotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7Ci0gICAgVGVzdDo6VGVhckRvd24oKTsKLSAgfQorICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgeyBUZXN0OjpTZXRVcCgpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7IFRlc3Q6OlRlYXJEb3duKCk7IH0KIH07CiAKIC8vIFN0cmVhbWluZ0Fzc2VydGlvbnNU
ZXN0IHRlc3RzIHRoZSBzdHJlYW1pbmcgdmVyc2lvbnMgb2YgYSByZXByZXNlbnRhdGl2ZQpAQCAt
NjgzMSw3ICs2NjY1LDcgQEAgVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5T
dGRvdXRJc1R0eSkgewogVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5UZXJt
U3VwcG9ydHNDb2xvcnMpIHsKICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7CiAKLSNpZiBH
VEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9X
U19NSU5HVwogICAvLyBPbiBXaW5kb3dzLCB3ZSBpZ25vcmUgdGhlIFRFUk0gdmFyaWFibGUgYXMg
aXQncyB1c3VhbGx5IG5vdCBzZXQuCiAKICAgU2V0RW52KCJURVJNIiwgImR1bWIiKTsKQEAgLTcw
MDYsMjAgKzY4NDAsMTkgQEAgVEVTVChIYXNGYWlsdXJlVGVzdCwgV29ya3NPdXRzaWRlT2ZUZXN0
Qm9keTIpIHsKIAogY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlz
dGVuZXIgewogIHB1YmxpYzoKLSAgVGVzdExpc3RlbmVyKCkgOiBvbl9zdGFydF9jb3VudGVyXyhO
VUxMKSwgaXNfZGVzdHJveWVkXyhOVUxMKSB7fQorICBUZXN0TGlzdGVuZXIoKSA6IG9uX3N0YXJ0
X2NvdW50ZXJfKG51bGxwdHIpLCBpc19kZXN0cm95ZWRfKG51bGxwdHIpIHt9CiAgIFRlc3RMaXN0
ZW5lcihpbnQqIG9uX3N0YXJ0X2NvdW50ZXIsIGJvb2wqIGlzX2Rlc3Ryb3llZCkKICAgICAgIDog
b25fc3RhcnRfY291bnRlcl8ob25fc3RhcnRfY291bnRlciksCiAgICAgICAgIGlzX2Rlc3Ryb3ll
ZF8oaXNfZGVzdHJveWVkKSB7fQogCi0gIHZpcnR1YWwgflRlc3RMaXN0ZW5lcigpIHsKKyAgflRl
c3RMaXN0ZW5lcigpIG92ZXJyaWRlIHsKICAgICBpZiAoaXNfZGVzdHJveWVkXykKICAgICAgICpp
c19kZXN0cm95ZWRfID0gdHJ1ZTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQg
T25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAg
aWYgKG9uX3N0YXJ0X2NvdW50ZXJfICE9IE5VTEwpCi0gICAgICAoKm9uX3N0YXJ0X2NvdW50ZXJf
KSsrOworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUgeworICAgIGlmIChvbl9zdGFydF9jb3VudGVyXyAhPSBudWxscHRyKSAo
Km9uX3N0YXJ0X2NvdW50ZXJfKSsrOwogICB9CiAKICBwcml2YXRlOgpAQCAtNzAzMSw5ICs2ODY0
LDkgQEAgY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIg
ewogVEVTVChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0LCBDb25zdHJ1Y3Rpb25Xb3JrcykgewogICBU
ZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogCi0gIEVYUEVDVF9UUlVFKFRlc3RFdmVudExp
c3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKSAhPSBOVUxMKTsKLSAgRVhQ
RUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKLSAg
RVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1sX2dlbmVyYXRvcigpID09IE5VTEwpOwor
ICBFWFBFQ1RfVFJVRShUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxp
c3RlbmVycykgIT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jl
c3VsdF9wcmludGVyKCkgPT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZh
dWx0X3htbF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKIH0KIAogLy8gVGVzdHMgdGhhdCB0aGUg
VGVzdEV2ZW50TGlzdGVuZXJzIGRlc3RydWN0b3IgZGVsZXRlcyBhbGwgdGhlIGxpc3RlbmVycyBp
dApAQCAtNzA0MiwxMiArNjg3NSwxMiBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIERl
c3RydWN0aW9uV29ya3MpIHsKICAgYm9vbCBkZWZhdWx0X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ry
b3llZCA9IGZhbHNlOwogICBib29sIGRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkID0g
ZmFsc2U7CiAgIGJvb2wgZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRl
c3RMaXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0g
ICAgICBOVUxMLCAmZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl9pc19kZXN0cm95ZWQpOwotICBUZXN0
TGlzdGVuZXIqIGRlZmF1bHRfeG1sX3ByaW50ZXIgPSBuZXcgVGVzdExpc3RlbmVyKAotICAgICAg
TlVMTCwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAgVGVzdExpc3RlbmVy
KiBleHRyYV9saXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBOVUxMLCAmZXh0cmFf
bGlzdGVuZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3Jlc3VsdF9w
cmludGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfcmVzdWx0
X3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3htbF9wcmlu
dGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfeG1sX3ByaW50
ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBleHRyYV9saXN0ZW5lciA9CisgICAg
ICBuZXcgVGVzdExpc3RlbmVyKG51bGxwdHIsICZleHRyYV9saXN0ZW5lcl9pc19kZXN0cm95ZWQp
OwogCiAgIHsKICAgICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwpAQCAtNzA4NywyMSAr
NjkyMCwyMSBAQCBjbGFzcyBTZXF1ZW5jZVRlc3RpbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRl
c3RFdmVudExpc3RlbmVyIHsKICAgICAgIDogdmVjdG9yXyh2ZWN0b3IpLCBpZF8oaWQpIHt9CiAK
ICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3Qg
VW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2Jh
Y2soR2V0RXZlbnREZXNjcmlwdGlvbigiT25UZXN0UHJvZ3JhbVN0YXJ0IikpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRp
b24oIk9uVGVzdFByb2dyYW1FbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRl
cmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVz
dEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7CiAgICAgdmVj
dG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdEl0ZXJhdGlvblN0YXJ0
IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qaXRl
cmF0aW9uKi8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNj
cmlwdGlvbigiT25UZXN0SXRlcmF0aW9uRW5kIikpOwogICB9CiAKQEAgLTcxNzIsNyArNzAwNSw3
IEBAIFRFU1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwgUmVsZWFzZSkgewogICAgIEVYUEVDVF9F
UShsaXN0ZW5lciwgbGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpKTsKICAgICBUZXN0RXZlbnRM
aXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycyktPk9uVGVzdFByb2dyYW1T
dGFydCgKICAgICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAgICBFWFBFQ1RfVFJV
RShsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikgPT0gTlVMTCk7CisgICAgRVhQRUNUX1RSVUUo
bGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpID09IG51bGxwdHIpOwogICB9CiAgIEVYUEVDVF9F
USgwLCBvbl9zdGFydF9jb3VudGVyKTsKICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CkBA
IC03MTgyLDcgKzcwMTUsNyBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIFJlbGVhc2Up
IHsKIC8vIFRlc3RzIHRoYXQgbm8gZXZlbnRzIGFyZSBmb3J3YXJkZWQgd2hlbiBldmVudCBmb3J3
YXJkaW5nIGlzIGRpc2FibGVkLgogVEVTVChFdmVudExpc3RlbmVyVGVzdCwgU3VwcHJlc3NFdmVu
dEZvcndhcmRpbmcpIHsKICAgaW50IG9uX3N0YXJ0X2NvdW50ZXIgPSAwOwotICBUZXN0TGlzdGVu
ZXIqIGxpc3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3RhcnRfY291bnRlciwgTlVMTCk7
CisgIFRlc3RMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKCZvbl9zdGFydF9j
b3VudGVyLCBudWxscHRyKTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogICBs
aXN0ZW5lcnMuQXBwZW5kKGxpc3RlbmVyKTsKQEAgLTcyMjMsOSArNzA1Niw5IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIpIHsKIAogICAvLyBSZXBsYWNp
bmcgZGVmYXVsdF9yZXN1bHRfcHJpbnRlciB3aXRoIHNvbWV0aGluZyBlbHNlIHNob3VsZCByZW1v
dmUgaXQKICAgLy8gZnJvbSB0aGUgbGlzdCBhbmQgZGVzdHJveSBpdC4KLSAgVGVzdEV2ZW50TGlz
dGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKCZsaXN0ZW5lcnMsIE5VTEwp
OworICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIo
Jmxpc3RlbmVycywgbnVsbHB0cik7CiAKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRf
cmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1
bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJv
eWVkKTsKIAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMg
c3RpbGwgdGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTcyNDksNyArNzA4Miw3IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFJlc3VsdFByaW50ZXJXb3JrcykgewogICAg
IFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0UmVzdWx0UHJpbnRlcigmbGlz
dGVuZXJzLCBsaXN0ZW5lcik7CiAKICAgICBFWFBFQ1RfRVEobGlzdGVuZXIsIGxpc3RlbmVycy5S
ZWxlYXNlKGxpc3RlbmVyKSk7Ci0gICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVz
dWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVs
dF9yZXN1bHRfcHJpbnRlcigpID09IG51bGxwdHIpOwogICAgIEVYUEVDVF9GQUxTRShpc19kZXN0
cm95ZWQpOwogCiAgICAgLy8gQnJvYWRjYXN0aW5nIGV2ZW50cyBub3cgc2hvdWxkIG5vdCBhZmZl
Y3QgZGVmYXVsdF9yZXN1bHRfcHJpbnRlci4KQEAgLTcyODIsOSArNzExNSw5IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfeG1sX2dlbmVyYXRvcikgewogCiAgIC8vIFJlcGxhY2lu
ZyBkZWZhdWx0X3htbF9nZW5lcmF0b3Igd2l0aCBzb21ldGhpbmcgZWxzZSBzaG91bGQgcmVtb3Zl
IGl0CiAgIC8vIGZyb20gdGhlIGxpc3QgYW5kIGRlc3Ryb3kgaXQuCi0gIFRlc3RFdmVudExpc3Rl
bmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJhdG9yKCZsaXN0ZW5lcnMsIE5VTEwpOwor
ICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlz
dGVuZXJzLCBudWxscHRyKTsKIAotICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxf
Z2VuZXJhdG9yKCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3ht
bF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJveWVkKTsK
IAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwg
dGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTczMDgsNyArNzE0MSw3IEBAIFRFU1QoRXZlbnRMaXN0
ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFhtbEdlbmVyYXRvcldvcmtzKSB7CiAgICAgVGVzdEV2
ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3IoJmxpc3RlbmVycywg
bGlzdGVuZXIpOwogCiAgICAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5lcnMuUmVsZWFzZShs
aXN0ZW5lcikpOwotICAgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0
b3IoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2Vu
ZXJhdG9yKCkgPT0gbnVsbHB0cik7CiAgICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CiAK
ICAgICAvLyBCcm9hZGNhc3RpbmcgZXZlbnRzIG5vdyBzaG91bGQgbm90IGFmZmVjdCBkZWZhdWx0
X3htbF9nZW5lcmF0b3IuCkBAIC03MzcxLDk1ICs3MjA0LDgzIEBAIEdURVNUX1RFU1QoQWx0ZXJu
YXRpdmVOYW1lVGVzdCwgV29ya3MpIHsgIC8vIEdURVNUX1RFU1QgaXMgdGhlIHNhbWUgYXMgVEVT
VC4KIAogLy8gVGVzdHMgZm9yIGludGVybmFsIHV0aWxpdGllcyBuZWNlc3NhcnkgZm9yIGltcGxl
bWVudGF0aW9uIG9mIHRoZSB1bml2ZXJzYWwKIC8vIHByaW50aW5nLgotLy8gRklYTUU6IEZpbmQg
YSBiZXR0ZXIgaG9tZSBmb3IgdGhlbS4KIAogY2xhc3MgQ29udmVyc2lvbkhlbHBlckJhc2Uge307
CiBjbGFzcyBDb252ZXJzaW9uSGVscGVyRGVyaXZlZCA6IHB1YmxpYyBDb252ZXJzaW9uSGVscGVy
QmFzZSB7fTsKIAotLy8gVGVzdHMgdGhhdCBJc0FQcm90b2NvbE1lc3NhZ2U8VD46OnZhbHVlIGlz
IGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBW
YWx1ZUlzQ29tcGlsZVRpbWVDb25zdGFudCkgewotICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oSXNB
UHJvdG9jb2xNZXNzYWdlPFByb3RvY29sTWVzc2FnZT46OnZhbHVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RfdHJ1ZSk7Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXyghSXNBUHJvdG9j
b2xNZXNzYWdlPGludD46OnZhbHVlLCBjb25zdF9mYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQg
SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBpcwotLy8gcHJvdG8y
OjpNZXNzYWdlIG9yIGEgc3ViLWNsYXNzIG9mIGl0LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VU
ZXN0LCBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSXNBUHJvdG9jb2xNZXNzYWdlKSB7Ci0gIEVYUEVDVF9U
UlVFKElzQVByb3RvY29sTWVzc2FnZTwgOjpwcm90bzI6Ok1lc3NhZ2U+Ojp2YWx1ZSk7Ci0gIEVY
UEVDVF9UUlVFKElzQVByb3RvY29sTWVzc2FnZTxQcm90b2NvbE1lc3NhZ2U+Ojp2YWx1ZSk7Ci19
Ci0KLS8vIFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyBmYWxzZSB3
aGVuIFQgaXMgbmVpdGhlcgotLy8gUHJvdG9jb2xNZXNzYWdlIG5vciBhIHN1Yi1jbGFzcyBvZiBp
dC4KLVRFU1QoSXNBUHJvdG9jb2xNZXNzYWdlVGVzdCwgVmFsdWVJc0ZhbHNlV2hlblR5cGVJc05v
dEFQcm90b2NvbE1lc3NhZ2UpIHsKLSAgRVhQRUNUX0ZBTFNFKElzQVByb3RvY29sTWVzc2FnZTxp
bnQ+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FQcm90b2NvbE1lc3NhZ2U8Y29uc3QgQ29u
dmVyc2lvbkhlbHBlckJhc2U+Ojp2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgQ29tcGlsZUFz
c2VydFR5cGVzRXF1YWwgY29tcGlsZXMgd2hlbiB0aGUgdHlwZSBhcmd1bWVudHMgYXJlCi0vLyBl
cXVhbC4KLVRFU1QoQ29tcGlsZUFzc2VydFR5cGVzRXF1YWwsIENvbXBpbGVzV2hlblR5cGVzQXJl
RXF1YWwpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8dm9pZCwgdm9pZD4oKTsKLSAgQ29t
cGlsZUFzc2VydFR5cGVzRXF1YWw8aW50KiwgaW50Kj4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBS
ZW1vdmVSZWZlcmVuY2UgZG9lcyBub3QgYWZmZWN0IG5vbi1yZWZlcmVuY2UgdHlwZXMuCi1URVNU
KFJlbW92ZVJlZmVyZW5jZVRlc3QsIERvZXNOb3RBZmZlY3ROb25SZWZlcmVuY2VUeXBlKSB7Ci0g
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlUmVmZXJlbmNlPGludD46OnR5cGU+
KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5j
ZTxjb25zdCBjaGFyPjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVSZWZlcmVu
Y2UgcmVtb3ZlcyByZWZlcmVuY2UgZnJvbSByZWZlcmVuY2UgdHlwZXMuCi1URVNUKFJlbW92ZVJl
ZmVyZW5jZVRlc3QsIFJlbW92ZXNSZWZlcmVuY2UpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8aW50LCBSZW1vdmVSZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRU
eXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5jZTxjb25zdCBjaGFyJj46OnR5cGU+
KCk7Ci19CitzdHJ1Y3QgSGFzRGVidWdTdHJpbmdNZXRob2RzIHsKKyAgc3RkOjpzdHJpbmcgRGVi
dWdTdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBzdGQ6OnN0cmluZyBTaG9ydERlYnVn
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3RzIEdURVNUX1JFTU9W
RV9SRUZFUkVOQ0VfLgorc3RydWN0IEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzIDogcHVibGlj
IEhhc0RlYnVnU3RyaW5nTWV0aG9kcyB7fTsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlKCkgewotICBDb21waWxlQXNz
ZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV8oVDIpPigpOwotfQorc3Ry
dWN0IFdyb25nVHlwZURlYnVnU3RyaW5nTWV0aG9kIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJp
bmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBpbnQgU2hvcnREZWJ1Z1N0cmluZygpIGNvbnN0
IHsgcmV0dXJuIDE7IH0KK307CiAKLVRFU1QoUmVtb3ZlUmVmZXJlbmNlVGVzdCwgTWFjcm9WZXJz
aW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZTxpbnQsIGludD4oKTsKLSAgVGVzdEdU
ZXN0UmVtb3ZlUmVmZXJlbmNlPGNvbnN0IGNoYXIsIGNvbnN0IGNoYXImPigpOwotfQorc3RydWN0
IE5vdENvbnN0RGVidWdTdHJpbmdNZXRob2QgeworICBzdGQ6OnN0cmluZyBEZWJ1Z1N0cmluZygp
IHsgcmV0dXJuICIiOyB9CisgIHN0ZDo6c3RyaW5nIFNob3J0RGVidWdTdHJpbmcoKSBjb25zdCB7
IHJldHVybiAiIjsgfQorfTsKIAorc3RydWN0IE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZCB7Cisg
IHN0ZDo6c3RyaW5nIERlYnVnU3RyaW5nKCkgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3Rz
IHRoYXQgUmVtb3ZlQ29uc3QgZG9lcyBub3QgYWZmZWN0IG5vbi1jb25zdCB0eXBlcy4KLVRFU1Qo
UmVtb3ZlQ29uc3RUZXN0LCBEb2VzTm90QWZmZWN0Tm9uQ29uc3RUeXBlKSB7Ci0gIENvbXBpbGVB
c3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlQ29uc3Q8aW50Pjo6dHlwZT4oKTsKLSAgQ29tcGls
ZUFzc2VydFR5cGVzRXF1YWw8Y2hhciYsIFJlbW92ZUNvbnN0PGNoYXImPjo6dHlwZT4oKTsKK3N0
cnVjdCBJbmNvbXBsZXRlVHlwZTsKKworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1Z1N0cmluZ0FuZFNo
b3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lCisvLyBjb25zdGFudC4K
K1RFU1QoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nVGVzdCwgVmFsdWVJc0NvbXBp
bGVUaW1lQ29uc3RhbnQpIHsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKAorICAgICAgSGFzRGVi
dWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPEhhc0RlYnVnU3RyaW5nTWV0aG9kcz46OnZhbHVl
LAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXygKKyAgICAgIEhh
c0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxJbmhlcml0c0RlYnVnU3RyaW5nTWV0aG9k
cz46OnZhbHVlLAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhI
YXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSW5oZXJpdHNEZWJ1Z1N0cmluZ01ldGhvZHM+Ojp2YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X3RydWUpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisg
ICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFdyb25nVHlwZURlYnVnU3Ry
aW5nTWV0aG9kPjo6dmFsdWUsCisgICAgICBjb25zdF9mYWxzZSk7CisgIEdURVNUX0NPTVBJTEVf
QVNTRVJUXygKKyAgICAgICFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8Tm90Q29u
c3REZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBHVEVT
VF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2Up
OworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9y
dERlYnVnU3RyaW5nPEluY29tcGxldGVUeXBlPjo6dmFsdWUsIGNvbnN0X2ZhbHNlKTsKKyAgR1RF
U1RfQ09NUElMRV9BU1NFUlRfKCFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8aW50
Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9mYWxzZSk7CiB9CiAKLS8v
IFRlc3RzIHRoYXQgUmVtb3ZlQ29uc3QgcmVtb3ZlcyBjb25zdCBmcm9tIGNvbnN0IHR5cGVzLgot
VEVTVChSZW1vdmVDb25zdFRlc3QsIFJlbW92ZXNDb25zdCkgewotICBDb21waWxlQXNzZXJ0VHlw
ZXNFcXVhbDxpbnQsIFJlbW92ZUNvbnN0PGNvbnN0IGludD46OnR5cGU+KCk7Ci0gIENvbXBpbGVB
c3NlcnRUeXBlc0VxdWFsPGNoYXJbMl0sIFJlbW92ZUNvbnN0PGNvbnN0IGNoYXJbMl0+Ojp0eXBl
PigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyWzJdWzNdLCBSZW1vdmVDb25zdDxj
b25zdCBjaGFyWzJdWzNdPjo6dHlwZT4oKTsKKy8vIFRlc3RzIHRoYXQgSGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBoYXMKKy8vIG5lZWRl
ZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmdUZXN0LAor
ICAgICBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5n
KSB7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzPjo6dmFsdWUpOwogfQogCi0vLyBUZXN0cyBH
VEVTVF9SRU1PVkVfQ09OU1RfLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
Pgotdm9pZCBUZXN0R1Rlc3RSZW1vdmVDb25zdCgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8VDEsIEdURVNUX1JFTU9WRV9DT05TVF8oVDIpPigpOwotfQotCi1URVNUKFJlbW92ZUNvbnN0
VGVzdCwgTWFjcm9WZXJzaW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZUNvbnN0PGludCwgaW50Pigp
OwotICBUZXN0R1Rlc3RSZW1vdmVDb25zdDxkb3VibGUmLCBkb3VibGUmPigpOwotICBUZXN0R1Rl
c3RSZW1vdmVDb25zdDxjaGFyLCBjb25zdCBjaGFyPigpOworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1
Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVAorLy8g
ZG9lc24ndCBoYXZlIG5lZWRlZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0
RGVidWdTdHJpbmdUZXN0LAorICAgICBWYWx1ZUlzRmFsc2VXaGVuVHlwZUlzTm90QVByb3RvY29s
TWVzc2FnZSkgeworICBFWFBFQ1RfRkFMU0UoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPGludD46OnZhbHVlKTsKKyAgRVhQRUNUX0ZBTFNFKAorICAgICAgSGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPGNvbnN0IENvbnZlcnNpb25IZWxwZXJCYXNlPjo6dmFsdWUpOwog
fQogCiAvLyBUZXN0cyBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8uCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiB2b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVy
ZW5jZUFuZENvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVN
T1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfKFQyKT4oKTsKKyAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3NhbWU8VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUMik+Ojp2YWx1ZSwK
KyAgICAgICAgICAgICAgICAiR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfIGZhaWxl
ZC4iKTsKIH0KIAogVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKQEAg
LTc0NzAsMzUgKzcyOTEsMTIgQEAgVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29y
a3MpIHsKICAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlQW5kQ29uc3Q8Y29uc3QgY2hhciosIGNv
bnN0IGNoYXIqPigpOwogfQogCi0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBkb2VzIG5vdCBh
ZmZlY3QgcmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBEb2VzTm90QWZm
ZWN0UmVmZXJlbmNlVHlwZSkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQmLCBBZGRS
ZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0
IGNoYXImLCBBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciY+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0
cyB0aGF0IEFkZFJlZmVyZW5jZSBhZGRzIHJlZmVyZW5jZSB0byBub24tcmVmZXJlbmNlIHR5cGVz
LgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBBZGRzUmVmZXJlbmNlKSB7Ci0gIENvbXBpbGVBc3Nl
cnRUeXBlc0VxdWFsPGludCYsIEFkZFJlZmVyZW5jZTxpbnQ+Ojp0eXBlPigpOwotICBDb21waWxl
QXNzZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyJiwgQWRkUmVmZXJlbmNlPGNvbnN0IGNoYXI+Ojp0
eXBlPigpOwotfQotCi0vLyBUZXN0cyBHVEVTVF9BRERfUkVGRVJFTkNFXy4KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0QWRkUmVmZXJlbmNlKCkg
ewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfQUREX1JFRkVSRU5DRV8oVDIp
PigpOwotfQotCi1URVNUKEFkZFJlZmVyZW5jZVRlc3QsIE1hY3JvVmVyc2lvbikgewotICBUZXN0
R1Rlc3RBZGRSZWZlcmVuY2U8aW50JiwgaW50PigpOwotICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8
Y29uc3QgY2hhciYsIGNvbnN0IGNoYXImPigpOwotfQotCiAvLyBUZXN0cyBHVEVTVF9SRUZFUkVO
Q0VfVE9fQ09OU1RfLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgogdm9p
ZCBUZXN0R1Rlc3RSZWZlcmVuY2VUb0NvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVh
bDxUMSwgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUMik+KCk7CisgIHN0YXRpY19hc3NlcnQo
c3RkOjppc19zYW1lPFQxLCBHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfKFQyKT46OnZhbHVlLAor
ICAgICAgICAgICAgICAgICJHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfIGZhaWxlZC4iKTsKIH0K
IAogVEVTVChHVGVzdFJlZmVyZW5jZVRvQ29uc3RUZXN0LCBXb3JrcykgewpAQCAtNzUwOCwzNSAr
NzMwNiw2IEBAIFRFU1QoR1Rlc3RSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKICAgVGVz
dEdUZXN0UmVmZXJlbmNlVG9Db25zdDxjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHN0ZDo6c3Ry
aW5nJj4oKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBJbXBsaWNpdGx5Q29udmVydGlibGU8VDEsIFQy
Pjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi1URVNUKEltcGxpY2l0bHlDb252
ZXJ0aWJsZVRlc3QsIFZhbHVlSXNDb21waWxlVGltZUNvbnN0YW50KSB7Ci0gIEdURVNUX0NPTVBJ
TEVfQVNTRVJUXygoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCwgaW50Pjo6dmFsdWUpLCBjb25z
dF90cnVlKTsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKCghSW1wbGljaXRseUNvbnZlcnRpYmxl
PHZvaWQqLCBpbnQqPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfZmFs
c2UpOwotfQotCi0vLyBUZXN0cyB0aGF0IEltcGxpY2l0bHlDb252ZXJ0aWJsZTxUMSwgVDI+Ojp2
YWx1ZSBpcyB0cnVlIHdoZW4gVDEgY2FuCi0vLyBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBU
Mi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJc1RydWVXaGVuQ29udmVy
dGlibGUpIHsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQsIGRvdWJs
ZT46OnZhbHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8ZG91Ymxl
LCBpbnQ+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGlu
dCosIHZvaWQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJs
ZTxpbnQqLCBjb25zdCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlD
b252ZXJ0aWJsZTxDb252ZXJzaW9uSGVscGVyRGVyaXZlZCYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQ29udmVyc2lvbkhlbHBlckJhc2UmPjo6dmFsdWUpKTsK
LSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBDb252ZXJzaW9uSGVs
cGVyQmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9u
SGVscGVyQmFzZT46OnZhbHVlKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSW1wbGljaXRseUNvbnZl
cnRpYmxlPFQxLCBUMj46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVDEKLS8vIGNhbm5vdCBiZSBpbXBs
aWNpdGx5IGNvbnZlcnRlZCB0byBUMi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwg
VmFsdWVJc0ZhbHNlV2hlbk5vdENvbnZlcnRpYmxlKSB7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGlj
aXRseUNvbnZlcnRpYmxlPGRvdWJsZSwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9GQUxTRSgo
SW1wbGljaXRseUNvbnZlcnRpYmxlPHZvaWQqLCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZB
TFNFKChJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgaW50KiwgaW50Kj46OnZhbHVlKSk7Ci0g
IEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPENvbnZlcnNpb25IZWxwZXJCYXNl
JiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVyc2lvbkhlbHBl
ckRlcml2ZWQmPjo6dmFsdWUpKTsKLX0KIAogLy8gVGVzdHMgSXNDb250YWluZXJUZXN0LgogCkBA
IC03NTU1LDcgKzczMjQsNiBAQCBURVNUKElzQ29udGFpbmVyVGVzdFRlc3QsIFdvcmtzRm9yQ29u
dGFpbmVyKSB7CiAgICAgICAgICAgICBzaXplb2YoSXNDb250YWluZXJUZXN0PHN0ZDo6bWFwPGlu
dCwgZG91YmxlPiA+KDApKSk7CiB9CiAKLSNpZiBHVEVTVF9MQU5HX0NYWDExCiBzdHJ1Y3QgQ29u
c3RPbmx5Q29udGFpbmVyV2l0aFBvaW50ZXJJdGVyYXRvciB7CiAgIHVzaW5nIGNvbnN0X2l0ZXJh
dG9yID0gaW50KjsKICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKQEAgLTc1NzcsNyAr
NzM0NSw2IEBAIFRFU1QoSXNDb250YWluZXJUZXN0VGVzdCwgQ29uc3RPbmx5Q29udGFpbmVyKSB7
CiAgIEVYUEVDVF9FUShzaXplb2YoSXNDb250YWluZXIpLAogICAgICAgICAgICAgc2l6ZW9mKElz
Q29udGFpbmVyVGVzdDxDb25zdE9ubHlDb250YWluZXJXaXRoQ2xhc3NJdGVyYXRvcj4oMCkpKTsK
IH0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQogCiAvLyBUZXN0cyBJc0hhc2hUYWJsZS4K
IHN0cnVjdCBBSGFzaFRhYmxlIHsKQEAgLTc1OTAsMTMgKzczNTcsOCBAQCBzdHJ1Y3QgTm90UmVh
bGx5QUhhc2hUYWJsZSB7CiBURVNUKElzSGFzaFRhYmxlLCBCYXNpYykgewogICBFWFBFQ1RfVFJV
RSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8QUhhc2hUYWJsZT46OnZhbHVlKTsKICAg
RVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxOb3RSZWFsbHlBSGFz
aFRhYmxlPjo6dmFsdWUpOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKICAgRVhQRUNUX0ZBTFNFKHRl
c3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxzdGQ6OnZlY3RvcjxpbnQ+Pjo6dmFsdWUpOwog
ICBFWFBFQ1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8c3RkOjp1bm9yZGVy
ZWRfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKLSNpZiBH
VEVTVF9IQVNfSEFTSF9TRVRfCi0gIEVYUEVDVF9UUlVFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hh
c2hUYWJsZTxfX2dudV9jeHg6Omhhc2hfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdU
RVNUX0hBU19IQVNIX1NFVF8KIH0KIAogLy8gVGVzdHMgQXJyYXlFcSgpLgpAQCAtNzc0Niw2ICs3
NTA4LDIyMSBAQCBURVNUKE5hdGl2ZUFycmF5VGVzdCwgV29ya3NGb3JUd29EaW1lbnNpb25hbEFy
cmF5KSB7CiAgIEVYUEVDVF9FUShhLCBuYS5iZWdpbigpKTsKIH0KIAorLy8gSW5kZXhTZXF1ZW5j
ZQorVEVTVChJbmRleFNlcXVlbmNlLCBNYWtlSW5kZXhTZXF1ZW5jZSkgeworICB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6SW5kZXhTZXF1ZW5jZTsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
Ok1ha2VJbmRleFNlcXVlbmNlOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8
SW5kZXhTZXF1ZW5jZTw+LCBNYWtlSW5kZXhTZXF1ZW5jZTwwPjo6dHlwZT46OnZhbHVlKSk7Cisg
IEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDA+LCBNYWtl
SW5kZXhTZXF1ZW5jZTwxPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAg
KHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDAsIDE+LCBNYWtlSW5kZXhTZXF1ZW5jZTwyPjo6
dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKCgKKyAgICAgIHN0ZDo6aXNfc2FtZTxJbmRl
eFNlcXVlbmNlPDAsIDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPjo6dHlwZT46OnZhbHVlKSk7
CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfYmFzZV9vZjxJbmRleFNlcXVlbmNlPDAs
IDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPj46OnZhbHVlKSk7Cit9CisKKy8vIEVsZW1Gcm9t
TGlzdAorVEVTVChFbGVtRnJvbUxpc3QsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpFbGVtRnJvbUxpc3Q7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxp
bnQsIEVsZW1Gcm9tTGlzdDwwLCBpbnQsIGRvdWJsZSwgY2hhcj46OnR5cGU+Ojp2YWx1ZSkpOwor
ICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8ZG91YmxlLCBFbGVtRnJvbUxpc3Q8
MSwgaW50LCBkb3VibGUsIGNoYXI+Ojp0eXBlPjo6dmFsdWUpKTsKKyAgRVhQRUNUX1RSVUUoCisg
ICAgICAoc3RkOjppc19zYW1lPGNoYXIsIEVsZW1Gcm9tTGlzdDwyLCBpbnQsIGRvdWJsZSwgY2hh
cj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgoCisgICAgICBzdGQ6OmlzX3NhbWU8
Y2hhciwgRWxlbUZyb21MaXN0PDcsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciwgaW50LCBpbnQsIGlu
dCwgaW50Pjo6dHlwZT46OnZhbHVlKSk7Cit9CisKKy8vIEZsYXRUdXBsZQorVEVTVChGbGF0VHVw
bGUsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAg
RmxhdFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4gdHVwbGUgPSB7fTsKKyAgRVhQRUNU
X0VRKDAsIHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDAuMCwgdHVwbGUuR2V0PDE+KCkp
OworICBFWFBFQ1RfRVEobnVsbHB0ciwgdHVwbGUuR2V0PDI+KCkpOworCisgIHR1cGxlID0gRmxh
dFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4oCisgICAgICB0ZXN0aW5nOjppbnRlcm5h
bDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIDcsIDMuMiwgIkZvbyIpOworICBFWFBFQ1RfRVEo
NywgdHVwbGUuR2V0PDA+KCkpOworICBFWFBFQ1RfRVEoMy4yLCB0dXBsZS5HZXQ8MT4oKSk7Cisg
IEVYUEVDVF9FUShzdGQ6OnN0cmluZygiRm9vIiksIHR1cGxlLkdldDwyPigpKTsKKworICB0dXBs
ZS5HZXQ8MT4oKSA9IDUuMTsKKyAgRVhQRUNUX0VRKDUuMSwgdHVwbGUuR2V0PDE+KCkpOworfQor
CituYW1lc3BhY2Ugeworc3RkOjpzdHJpbmcgQWRkSW50VG9TdHJpbmcoaW50IGksIGNvbnN0IHN0
ZDo6c3RyaW5nJiBzKSB7CisgIHJldHVybiBzICsgc3RkOjp0b19zdHJpbmcoaSk7Cit9Cit9ICAv
LyBuYW1lc3BhY2UKKworVEVTVChGbGF0VHVwbGUsIEFwcGx5KSB7CisgIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1cGxlPGludCwgc3RkOjpzdHJpbmc+IHR1
cGxle3Rlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RUYWd7fSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsICJIZWxsbyJ9OworCisgIC8vIExhbWJkYS4K
KyAgRVhQRUNUX1RSVUUodHVwbGUuQXBwbHkoW10oaW50IGksIGNvbnN0IHN0ZDo6c3RyaW5nJiBz
KSAtPiBib29sIHsKKyAgICByZXR1cm4gaSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHMuc2l6ZSgpKTsK
KyAgfSkpOworCisgIC8vIEZ1bmN0aW9uLgorICBFWFBFQ1RfRVEodHVwbGUuQXBwbHkoQWRkSW50
VG9TdHJpbmcpLCAiSGVsbG81Iik7CisKKyAgLy8gTXV0YXRpbmcgb3BlcmF0aW9ucy4KKyAgdHVw
bGUuQXBwbHkoW10oaW50JiBpLCBzdGQ6OnN0cmluZyYgcykgeworICAgICsraTsKKyAgICBzICs9
IHM7CisgIH0pOworICBFWFBFQ1RfRVEodHVwbGUuR2V0PDA+KCksIDYpOworICBFWFBFQ1RfRVEo
dHVwbGUuR2V0PDE+KCksICJIZWxsb0hlbGxvIik7Cit9CisKK3N0cnVjdCBDb25zdHJ1Y3Rpb25D
b3VudGluZyB7CisgIENvbnN0cnVjdGlvbkNvdW50aW5nKCkgeyArK2RlZmF1bHRfY3Rvcl9jYWxs
czsgfQorICB+Q29uc3RydWN0aW9uQ291bnRpbmcoKSB7ICsrZHRvcl9jYWxsczsgfQorICBDb25z
dHJ1Y3Rpb25Db3VudGluZyhjb25zdCBDb25zdHJ1Y3Rpb25Db3VudGluZyYpIHsgKytjb3B5X2N0
b3JfY2FsbHM7IH0KKyAgQ29uc3RydWN0aW9uQ291bnRpbmcoQ29uc3RydWN0aW9uQ291bnRpbmcm
Jikgbm9leGNlcHQgeyArK21vdmVfY3Rvcl9jYWxsczsgfQorICBDb25zdHJ1Y3Rpb25Db3VudGlu
ZyYgb3BlcmF0b3I9KGNvbnN0IENvbnN0cnVjdGlvbkNvdW50aW5nJikgeworICAgICsrY29weV9h
c3NpZ25tZW50X2NhbGxzOworICAgIHJldHVybiAqdGhpczsKKyAgfQorICBDb25zdHJ1Y3Rpb25D
b3VudGluZyYgb3BlcmF0b3I9KENvbnN0cnVjdGlvbkNvdW50aW5nJiYpIG5vZXhjZXB0IHsKKyAg
ICArK21vdmVfYXNzaWdubWVudF9jYWxsczsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBz
dGF0aWMgdm9pZCBSZXNldCgpIHsKKyAgICBkZWZhdWx0X2N0b3JfY2FsbHMgPSAwOworICAgIGR0
b3JfY2FsbHMgPSAwOworICAgIGNvcHlfY3Rvcl9jYWxscyA9IDA7CisgICAgbW92ZV9jdG9yX2Nh
bGxzID0gMDsKKyAgICBjb3B5X2Fzc2lnbm1lbnRfY2FsbHMgPSAwOworICAgIG1vdmVfYXNzaWdu
bWVudF9jYWxscyA9IDA7CisgIH0KKworICBzdGF0aWMgaW50IGRlZmF1bHRfY3Rvcl9jYWxsczsK
KyAgc3RhdGljIGludCBkdG9yX2NhbGxzOworICBzdGF0aWMgaW50IGNvcHlfY3Rvcl9jYWxsczsK
KyAgc3RhdGljIGludCBtb3ZlX2N0b3JfY2FsbHM7CisgIHN0YXRpYyBpbnQgY29weV9hc3NpZ25t
ZW50X2NhbGxzOworICBzdGF0aWMgaW50IG1vdmVfYXNzaWdubWVudF9jYWxsczsKK307CisKK2lu
dCBDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzID0gMDsKK2ludCBDb25z
dHJ1Y3Rpb25Db3VudGluZzo6ZHRvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRp
bmc6OmNvcHlfY3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVf
Y3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfYXNzaWdubWVu
dF9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9j
YWxscyA9IDA7CisKK1RFU1QoRmxhdFR1cGxlLCBDb25zdHJ1Y3RvckNhbGxzKSB7CisgIHVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgLy8gRGVmYXVsdCBjb25zdHJ1Y3Rp
b24uCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7IEZsYXRUdXBsZTxDb25z
dHJ1Y3Rpb25Db3VudGluZz4gdHVwbGU7IH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50
aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291
bnRpbmc6OmR0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6
OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6
bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpj
b3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRp
bmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBjb25zdHJ1Y3Rpb24u
CisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7CisgICAgQ29uc3RydWN0aW9u
Q291bnRpbmcgZWxlbTsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291bnRpbmc+IHR1cGxl
eworICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIGVs
ZW19OworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9y
X2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxz
LCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMs
IDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywg
MCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2Nh
bGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1l
bnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgY29uc3RydWN0aW9uLgorICBDb25zdHJ1Y3Rpb25D
b3VudGluZzo6UmVzZXQoKTsKKyAgeworICAgIEZsYXRUdXBsZTxDb25zdHJ1Y3Rpb25Db3VudGlu
Zz4gdHVwbGV7CisgICAgICAgIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RU
YWd7fSwgQ29uc3RydWN0aW9uQ291bnRpbmd7fX07CisgIH0KKyAgRVhQRUNUX0VRKENvbnN0cnVj
dGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3Ry
dWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9u
Q291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25D
b3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNv
dW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0
aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBhc3Np
Z25tZW50LgorICAvLyBUT0RPKG9mYXRzKTogaXQgc2hvdWxkIGJlIHRlc3RpbmcgYXNzaWdubWVu
dCBvcGVyYXRvciBvZiBGbGF0VHVwbGUsIG5vdCBpdHMKKyAgLy8gZWxlbWVudHMKKyAgQ29uc3Ry
dWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7CisgIHsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9u
Q291bnRpbmc+IHR1cGxlOworICAgIENvbnN0cnVjdGlvbkNvdW50aW5nIGVsZW07CisgICAgdHVw
bGUuR2V0PDA+KCkgPSBlbGVtOworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50
aW5nOjpkdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpj
b3B5X2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1v
dmVfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29w
eV9hc3NpZ25tZW50X2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5n
Ojptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgYXNzaWdubWVudC4KKyAg
Ly8gVE9ETyhvZmF0cyk6IGl0IHNob3VsZCBiZSB0ZXN0aW5nIGFzc2lnbm1lbnQgb3BlcmF0b3Ig
b2YgRmxhdFR1cGxlLCBub3QgaXRzCisgIC8vIGVsZW1lbnRzCisgIENvbnN0cnVjdGlvbkNvdW50
aW5nOjpSZXNldCgpOworICB7CisgICAgRmxhdFR1cGxlPENvbnN0cnVjdGlvbkNvdW50aW5nPiB0
dXBsZTsKKyAgICB0dXBsZS5HZXQ8MD4oKSA9IENvbnN0cnVjdGlvbkNvdW50aW5ne307CisgIH0K
KyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDIp
OworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBF
WFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVY
UEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQ
RUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOwor
ICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywg
MSk7CisKKyAgQ29uc3RydWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7Cit9CisKK1RFU1QoRmxhdFR1
cGxlLCBNYW55VHlwZXMpIHsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZsYXRUdXBsZTsK
KworICAvLyBJbnN0YW50aWF0ZSBGbGF0VHVwbGUgd2l0aCAyNTcgaW50cy4KKyAgLy8gVGVzdHMg
c2hvdyB0aGF0IHdlIGNhbiBkbyBpdCB3aXRoIHRob3VzYW5kcyBvZiBlbGVtZW50cywgYnV0IHZl
cnkgbG9uZworICAvLyBjb21waWxlIHRpbWVzIG1ha2VzIGl0IHVudXN1aXRhYmxlIGZvciB0aGlz
IHRlc3QuCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UOCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQsIGludCwKKyNkZWZpbmUgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVT
VF9GTEFUX1RVUExFX0lOVDggR1RFU1RfRkxBVF9UVVBMRV9JTlQ4CisjZGVmaW5lIEdURVNUX0ZM
QVRfVFVQTEVfSU5UMzIgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVTVF9GTEFUX1RVUExFX0lO
VDE2CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQz
MiBHVEVTVF9GTEFUX1RVUExFX0lOVDMyCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UMTI4
IEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQ2NAorI2RlZmluZSBH
VEVTVF9GTEFUX1RVUExFX0lOVDI1NiBHVEVTVF9GTEFUX1RVUExFX0lOVDEyOCBHVEVTVF9GTEFU
X1RVUExFX0lOVDEyOAorCisgIC8vIExldCdzIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBoYXZlIGEg
dmVyeSBsb25nIGxpc3Qgb2YgdHlwZXMgd2l0aG91dCBibG93aW5nCisgIC8vIHVwIHRoZSB0ZW1w
bGF0ZSBpbnN0YW50aWF0aW9uIGRlcHRoLgorICBGbGF0VHVwbGU8R1RFU1RfRkxBVF9UVVBMRV9J
TlQyNTYgaW50PiB0dXBsZTsKKworICB0dXBsZS5HZXQ8MD4oKSA9IDc7CisgIHR1cGxlLkdldDw5
OT4oKSA9IDE3OworICB0dXBsZS5HZXQ8MjU2PigpID0gMTAwMDsKKyAgRVhQRUNUX0VRKDcsIHR1
cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDE3LCB0dXBsZS5HZXQ8OTk+KCkpOworICBFWFBF
Q1RfRVEoMTAwMCwgdHVwbGUuR2V0PDI1Nj4oKSk7Cit9CisKIC8vIFRlc3RzIFNraXBQcmVmaXgo
KS4KIAogVEVTVChTa2lwUHJlZml4VGVzdCwgU2tpcHNXaGVuUHJlZml4TWF0Y2hlcykgewpAQCAt
Nzc3MywyMyArNzc1MCwzNSBAQCBURVNUKFNraXBQcmVmaXhUZXN0LCBEb2VzTm90U2tpcFdoZW5Q
cmVmaXhEb2VzTm90TWF0Y2gpIHsKIH0KIAogLy8gVGVzdHMgYWRfaG9jX3Rlc3RfcmVzdWx0KCku
CitURVNUKEFkSG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclVuaXRUZXN0RG9l
c05vdFNob3dGYWlsdXJlKSB7CisgIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVz
dWx0ID0KKyAgICAgIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVz
dF9yZXN1bHQoKTsKKyAgRVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKK30KIAot
Y2xhc3MgQWRIb2NUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90
ZWN0ZWQ6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Ci0gICAgRkFJTCgpIDw8ICJB
IGZhaWx1cmUgaGFwcGVuZWQgaW5zaWRlIFNldFVwVGVzdENhc2UoKS4iOwotICB9CitjbGFzcyBE
eW5hbWljVW5pdFRlc3RGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CisKK2NsYXNz
IER5bmFtaWNUZXN0IDogcHVibGljIER5bmFtaWNVbml0VGVzdEZpeHR1cmUgeworICB2b2lkIFRl
c3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRSh0cnVlKTsgfQogfTsKIAotVEVTVF9GKEFk
SG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclRlc3RDYXNlU2hvd3NGYWlsdXJl
KSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0gdGVzdGluZzo6
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3RfY2FzZSgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+YWRfaG9jX3Rlc3RfcmVzdWx0KCk7Ci0gIEVY
UEVDVF9UUlVFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKLX0KK2F1dG8qIGR5bmFtaWNfdGVzdCA9
IHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAiRHluYW1pY1VuaXRUZXN0Rml4dHVyZSIsICJE
eW5hbWljVGVzdCIsICJUWVBFIiwgIlZBTFVFIiwgX19GSUxFX18sCisgICAgX19MSU5FX18sIFtd
KCkgLT4gRHluYW1pY1VuaXRUZXN0Rml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0OyB9
KTsKKworVEVTVChSZWdpc3RlclRlc3QsIFdhc1JlZ2lzdGVyZWQpIHsKKyAgYXV0byogdW5pdHRl
c3QgPSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB1bml0dGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBhdXRv
KiB0ZXN0cyA9IHVuaXR0ZXN0LT5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKHRlc3RzLT5uYW1l
KCkgIT0gc3RkOjpzdHJpbmcoIkR5bmFtaWNVbml0VGVzdEZpeHR1cmUiKSkgY29udGludWU7Cisg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0cy0+dG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsK
KyAgICAgIGlmICh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPm5hbWUoKSAhPSBzdGQ6OnN0cmluZygi
RHluYW1pY1Rlc3QiKSkgY29udGludWU7CisgICAgICAvLyBGb3VuZCBpdC4KKyAgICAgIEVYUEVD
VF9TVFJFUSh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPnZhbHVlX3BhcmFtKCksICJWQUxVRSIpOwor
ICAgICAgRVhQRUNUX1NUUkVRKHRlc3RzLT5HZXRUZXN0SW5mbyhqKS0+dHlwZV9wYXJhbSgpLCAi
VFlQRSIpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQogCi1URVNUX0YoQWRIb2NUZXN0UmVz
dWx0VGVzdCwgQWRIb2NUZXN0UmVzdWx0VGVzdEZvclVuaXRUZXN0RG9lc05vdFNob3dGYWlsdXJl
KSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0KLSAgICAgIHRl
c3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKTsKLSAg
RVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKKyAgRkFJTCgpIDw8ICJEaWRuJ3Qg
ZmluZCB0aGUgdGVzdCEiOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwppbmRleCBhMzhlYmFjODM5ZjdiNGZj
ZjcxMDkzNTFjNGQzZmVjZGUyNzE1YjBhLi4xOWFhMjUyYTMwMTBmZDU2ZWFiZTM3NjgzMDhhODBk
MmRjNmRiZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRmaWxlMV90ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwpAQCAtMzQsMTIgKzM0LDggQEAKIAogY2xhc3Mg
UHJvcGVydHlPbmUgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlNldFVwUHJvcCIsIDEpOwot
ICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBSZWNvcmRQcm9wZXJ0eSgiVGVh
ckRvd25Qcm9wIiwgMSk7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgUmVjb3JkUHJv
cGVydHkoIlNldFVwUHJvcCIsIDEpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IFJl
Y29yZFByb3BlcnR5KCJUZWFyRG93blByb3AiLCAxKTsgfQogfTsKIAogVEVTVF9GKFByb3BlcnR5
T25lLCBUZXN0U29tZVByb3BlcnRpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKaW5kZXggYWZhZjE1YTVk
YzMyMzE1ZDUxYWM3YTBhNTU1ZjgzY2FiNDFlZjc0Zi4uZjlhMmE2ZTk4NDZkZGNkOTVkYmRiODhk
OGM3NGQwN2M0YmM5ZGZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKQEAgLTM0LDEyICszNCw4IEBACiAK
IGNsYXNzIFByb3BlcnR5VHdvIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3Ai
LCAyKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgUmVjb3JkUHJvcGVy
dHkoIlRlYXJEb3duUHJvcCIsIDIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IFJl
Y29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAyKTsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJp
ZGUgeyBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9wIiwgMik7IH0KIH07CiAKIFRFU1RfRihQ
cm9wZXJ0eVR3bywgVGVzdFNvbWVQcm9wZXJ0aWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weQppbmRleCAyYzAz
MWZmOGRiYTUxMmMyZTA0ZTI3MDUzNGUyOWZjZWJlODg2Y2Y5Li5hYzY2ZmViNjY3MTllNjJjZmEx
NmM3OWExN2Y2M2RlOTkwZjI3N2MxIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkKQEAgLTQyLDggKzQyLDggQEAg
R1RFU1RfT1VUUFVUXzJfVEVTVCA9ICJndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8iCiAKIEVYUEVD
VEVEX1hNTF8xID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0
ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFt
ZT0iUHJvcGVydHlPbmUiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9y
cz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIg
c3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgorICA8dGVzdHN1
aXRlIG5hbWU9IlByb3BlcnR5T25lIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAi
IGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29t
cGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgog
ICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZh
bHVlPSIxIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1
ZT0iMSIvPgpAQCAtNTYsOCArNTYsOCBAQCBFWFBFQ1RFRF9YTUxfMSA9ICIiIjw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiAKIEVYUEVDVEVEX1hNTF8yID0gIiIiPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBm
YWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlUd28iIHRlc3Rz
PSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHRpbWU9Iioi
IGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5VHdv
IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21l
UHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgogICAgICAgPHByb3BlcnRpZXM+CiAg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxw
cm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1ZT0iMiIvPgpAQCAtMTExLDExICsx
MTEsNiBAQCBjbGFzcyBHVGVzdFhNTE91dEZpbGVzVGVzdChndGVzdF94bWxfdGVzdF91dGlscy5H
VGVzdFhNTFRlc3RDYXNlKToKICAgICBzZWxmLmFzc2VydF8ocC5leGl0ZWQpCiAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMCwgcC5leGl0X2NvZGUpCiAKLSAgICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNl
cyB0aGUgYnVpbHQgdGVzdCBiaW5hcnkgdG8gYmUKLSAgICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1s
X291dGZpbGVzX3Rlc3RfIGluc3RlYWQgb2YKLSAgICAjICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rl
c3RfLiAgVG8gYWNjb3VudCBmb3IgdGhpcyBwb3NzaWJpbGl0eSwgd2UKLSAgICAjICAgYWxsb3cg
Ym90aCBuYW1lcyBpbiB0aGUgZm9sbG93aW5nIGNvZGUuICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMK
LSAgICAjICAgd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0
cHV0X2ZpbGVfbmFtZTEgPSB0ZXN0X25hbWUgKyAiLnhtbCIKICAgICBvdXRwdXRfZmlsZTEgPSBv
cy5wYXRoLmpvaW4oc2VsZi5vdXRwdXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0
cHV0X2ZpbGVfbmFtZTIgPSAnbHQtJyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Qu
cHkKaW5kZXggZmFlZGQ0ZTZjZTcyZGFiZWY3ODZhMzEyZWY0YWVjYTVjNWQyOWJmYS4uZWFkZTdh
YWM4OGY1OWU2YmI2ZjViYTM0MTgyOGJhZTQ2ZmNkMDA2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdC5weQpA
QCAtNjUsMjEgKzY1LDIxIEBAIGVsc2U6CiAgIHN5cy5hcmd2LnJlbW92ZShOT19TVEFDS1RSQUNF
X1NVUFBPUlRfRkxBRykKIAogRVhQRUNURURfTk9OX0VNUFRZX1hNTCA9ICIiIjw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08dGVzdHN1aXRlcyB0ZXN0cz0iMjMiIGZhaWx1
cmVzPSI0IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5h
bWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJT
dWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVu
IiB0aW1lPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+Cis8dGVzdHN1aXRlcyB0ZXN0
cz0iMjYiIGZhaWx1cmVzPSI1IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KKyAgPHRlc3Rz
dWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxl
ZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAg
IDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAg
PC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iRmFpbGVkVGVzdCIgdGVzdHM9IjEiIGZh
aWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRl
c3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IkZhaWxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0i
MSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNv
bXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgog
ICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIi
IHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgogRXhwZWN0
ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCiAgIDIlKHN0YWNrKXNdXT48L2ZhaWx1
cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
TWl4ZWRSZXN1bHRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIxIiBlcnJv
cnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJy
dW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+Ci0gICAgPHRlc3RjYXNl
IG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3Vs
dFRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9Ik1peGVkUmVzdWx0VGVzdCIgdGVzdHM9IjMiIGZh
aWx1cmVzPSIxIiBkaXNhYmxlZD0iMSIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0
aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4i
IHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iTWl4
ZWRSZXN1bHRUZXN0Ii8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIg
cmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJNaXhl
ZFJlc3VsdFRlc3QiPgogICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KiYjeDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gw
QTsgIDEmI3gwQTsgIDIiIHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KgogRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCkBAIC04OSwx
MTYgKzg5LDE0NyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6CiAgIDIKICAg
MyUoc3RhY2spc11dPjwvZmFpbHVyZT4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBu
YW1lPSJESVNBQkxFRF90ZXN0IiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJN
aXhlZFJlc3VsdFRlc3QiLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdCIgc3Rh
dHVzPSJub3RydW4iIHJlc3VsdD0ic3VwcHJlc3NlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBj
bGFzc25hbWU9Ik1peGVkUmVzdWx0VGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0
ZSBuYW1lPSJYbWxRdW90aW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRh
IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVzdCI+CisgIDx0
ZXN0c3VpdGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRhIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJj
b21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVz
dCI+CiAgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqJiN4MEE7RmFpbGVkJiN4MEE7WE1MIG91dHB1dDogJmx0Oz94bWwgZW5jb2Rpbmc9JnF1b3Q7
dXRmLTgmcXVvdDsmZ3Q7Jmx0O3RvcCZndDsmbHQ7IVtDREFUQVtjZGF0YSB0ZXh0XV0mZ3Q7Jmx0
Oy90b3AmZ3Q7IiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNj
OioKIEZhaWxlZAogWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9InV0Zi04Ij48dG9wPjwhW0NE
QVRBW2NkYXRhIHRleHRdXT5dXSZndDs8IVtDREFUQVs8L3RvcD4lKHN0YWNrKXNdXT48L2ZhaWx1
cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
SW52YWxpZENoYXJhY3RlcnNUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnZhbGlkQ2hhcmFj
dGVyc0luTWVzc2FnZSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iSW52YWxpZENo
YXJhY3RlcnNUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc1Rlc3Qi
IHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0i
MCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSW52YWxpZENo
YXJhY3RlcnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0i
KiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCI+CiAgICAg
ICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7
RmFpbGVkJiN4MEE7SW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdIiB0eXBlPSIiPjwh
W0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEZhaWxlZAogSW52YWxpZCBj
aGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdJShzdGFjaylzXV0+PC9mYWlsdXJlPgogICAgIDwvdGVz
dGNhc2U+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkRpc2FibGVkVGVzdCIg
dGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMSIgZXJyb3JzPSIwIiB0aW1lPSIqIj4K
LSAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJEaXNhYmxlZFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1l
PSJEaXNhYmxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjEiIHNraXBw
ZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgcmVzdWx0PSJzdXBw
cmVzc2VkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iRGlzYWJsZWRUZXN0Ii8+
CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVz
dCIgdGVzdHM9IjQiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIq
IiBTZXRVcFRlc3RDYXNlPSJ5ZXMiIFRlYXJEb3duVGVzdENhc2U9ImF5ZSI+Ci0gICAgPHRlc3Rj
YXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQ
cm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IlNraXBwZWRUZXN0IiB0
ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIyIiBlcnJvcnM9IjAi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWQiIHN0
YXR1cz0icnVuIiByZXN1bHQ9InNraXBwZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTa2lwcGVkVGVzdCI+CisgICAgICA8c2tpcHBlZCBtZXNzYWdlPSJndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7Ij48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0
ZXN0Xy5jYzoqCislKHN0YWNrKXNdXT48L3NraXBwZWQ+CisgICAgPC90ZXN0Y2FzZT4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iU2tpcHBlZFdpdGhNZXNzYWdlIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJz
a2lwcGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU2tpcHBlZFRlc3QiPgor
ICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFb
Q0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGlj
ZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShzdGFjaylzXV0+PC9za2lwcGVkPgorICAg
IDwvdGVzdGNhc2U+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWRBZnRlckZhaWx1cmUiIHN0
YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFz
c25hbWU9IlNraXBwZWRUZXN0Ij4KKyAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9v
dXRwdXRfdW5pdHRlc3RfLmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1
ZXM6JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRf
dW5pdHRlc3RfLmNjOioKK0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKKyAgMQor
ICAyJShzdGFjaylzXV0+PC9mYWlsdXJlPgorICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVs
bCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3Qu
JShzdGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVzdGNhc2U+CisKKyAgPC90ZXN0c3VpdGU+
CisgIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0IiB0ZXN0cz0iNCIgZmFp
bHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRp
bWVzdGFtcD0iKiIgU2V0VXBUZXN0U3VpdGU9InllcyIgVGVhckRvd25UZXN0U3VpdGU9ImF5ZSI+
CisgICAgPHRlc3RjYXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJj
b21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29y
ZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJr
ZXlfMSIgdmFsdWU9IjEiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgot
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9
IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgICA8dGVzdGNhc2UgbmFt
ZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGlt
ZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAg
ICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV9pbnQiIHZhbHVl
PSIxIi8+CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iVGhyZWVQcm9wZXJ0aWVzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1l
PSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUaHJlZVByb3Bl
cnRpZXMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAgICAgICA8cHJvcGVydGll
cz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV8xIiB2YWx1ZT0iMSIvPgogICAgICAgICA8
cHJvcGVydHkgbmFtZT0ia2V5XzIiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1l
PSJrZXlfMyIgdmFsdWU9IjMiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNl
PgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBz
dGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAg
IDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjIiLz4KICAgICAgIDwvcHJvcGVydGllcz4K
ICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJOb0Zp
eHR1cmVUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAi
IHRpbWU9IioiPgotICAgICA8dGVzdGNhc2UgbmFtZT0iUmVjb3JkUHJvcGVydHkiIHN0YXR1cz0i
cnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICA8dGVzdHN1aXRlIG5h
bWU9Ik5vRml4dHVyZVRlc3QiIHRlc3RzPSIzIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNr
aXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICAgPHRlc3Rj
YXNlIG5hbWU9IlJlY29yZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAg
ICA8cHJvcGVydGllcz4KICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZhbHVlPSIxIi8+
CiAgICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2Ug
bmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVydHkiIHN0
YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVz
dGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVy
dHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9pbnQiIHZhbHVlPSIxIi8+CiAgICAg
ICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2UgbmFtZT0i
RXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1
cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVzdGNh
c2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVy
dHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9zdHJpbmciIHZhbHVlPSIxIi8+CiAg
ICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAg
PHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0IiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5h
bWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBz
dGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+
Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0
c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAi
IGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVf
cGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3Rj
YXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3Ro
ZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3Ro
ZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1
aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9
IlR5cGVkVGVzdC8wIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0i
MSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJp
YnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1l
PSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzAiIC8+CiAgIDwvdGVzdHN1
aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlR5cGVkVGVzdC8xIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVk
VGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBl
cnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhh
c1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0i
Y29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzEi
IC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1l
dGVyaXplZFRlc3RDYXNlLzAiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVy
cm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJp
YnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2lu
Z2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCIgLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFy
YW09IioiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIiBjbGFzc25hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiAvPgog
ICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6
ZWRUZXN0Q2FzZS8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUi
IHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlNpbmdsZS9U
eXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzEiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xl
L1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIq
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIg
Y2xhc3NuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMSIgLz4KICAgPC90
ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0ZXM+IiIiICUgeydzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBM
QVRFfQorPC90ZXN0c3VpdGVzPiIiIiAlIHsKKyAgICAnc3RhY2snOiBTVEFDS19UUkFDRV9URU1Q
TEFURQorfQogCiBFWFBFQ1RFRF9GSUxURVJFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMSIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiCiAgICAgICAgICAgICB0aW1lc3Rh
bXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0
ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MCIKLSAgICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRl
c3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1
cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIKKyAgICAgICAgICAgICBlcnJvcnM9IjAi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlN1Y2NlZWRzIiBz
dGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xh
c3NuYW1lPSJTdWNjZXNzZnVsVGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4i
IiIKIAogRVhQRUNURURfU0hBUkRFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRp
c2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVz
dHMiIGFkX2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVzdHN1aXRlIG5hbWU9IlN1Y2Nlc3NmdWxU
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9Iioi
IGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNz
ZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIg
ZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJT
dWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3Rh
bXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0
ZXN0c3VpdGUgbmFtZT0iTm9GaXh0dXJlVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICAgPHRlc3RjYXNlIG5hbWU9IlJlY29y
ZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0
Ij4KLSAgICAgICA8cHJvcGVydGllcz4KLSAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZh
bHVlPSIxIi8+Ci0gICAgICAgPC9wcm9wZXJ0aWVzPgotICAgICA8L3Rlc3RjYXNlPgorICA8dGVz
dHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiIFNldFVwVGVzdFN1aXRlPSJ5ZXMiIFRlYXJEb3duVGVzdFN1aXRlPSJheWUiPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29t
cGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRp
bmdUZXN0Ij4KKyAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5
X2ludCIgdmFsdWU9IjEiLz4KKyAgICAgIDwvcHJvcGVydGllcz4KKyAgICA8L3Rlc3RjYXNlPgog
ICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3Qi
IHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+
Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVl
UGFyYW1UZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9
Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIg
cmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5n
bGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVzPiIiIgog
Ci1FWFBFQ1RFRF9FTVBUWV9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorRVhQRUNURURfTk9fVEVTVF9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVzdHM9IjAiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIgogICAgICAgICAgICAgdGltZXN0YW1wPSIqIiBu
YW1lPSJBbGxUZXN0cyI+Ci08L3Rlc3RzdWl0ZXM+IiIiCisgIDx0ZXN0c3VpdGUgbmFtZT0iTm9u
VGVzdFN1aXRlRmFpbHVyZSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgc2tp
cHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2Fz
ZSBuYW1lPSIiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0
YW1wPSIqIiBjbGFzc25hbWU9IiI+CisgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF9ub190
ZXN0X3VuaXR0ZXN0LmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X25vX3Rlc3RfdW5pdHRl
c3QuY2M6KgorRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgorICAxCisgIDIlKHN0
YWNrKXNdXT48L2ZhaWx1cmU+CisgICAgPC90ZXN0Y2FzZT4KKyAgPC90ZXN0c3VpdGU+Cis8L3Rl
c3RzdWl0ZXM+IiIiICUgeworICAgICdzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBMQVRFCit9CiAK
IEdURVNUX1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQ
YXRoKEdURVNUX1BST0dSQU1fTkFNRSkKIApAQCAtMjIxLDE0ICsyNTIsMTQgQEAgY2xhc3MgR1Rl
c3RYTUxPdXRwdXRVbml0VGVzdChndGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhNTFRlc3RDYXNl
KToKICAgICAgICIiIgogICAgICAgc2VsZi5fVGVzdFhtbE91dHB1dChHVEVTVF9QUk9HUkFNX05B
TUUsIEVYUEVDVEVEX05PTl9FTVBUWV9YTUwsIDEpCiAKLSAgZGVmIHRlc3RFbXB0eVhtbE91dHB1
dChzZWxmKToKKyAgZGVmIHRlc3ROb1Rlc3RYbWxPdXRwdXQoc2VsZik6CiAgICAgIiIiVmVyaWZp
ZXMgWE1MIG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBiaW5hcnkgd2l0aG91dCBhY3R1YWwgdGVz
dHMuCiAKLSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIGVtcHR5IFhN
TCBvdXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIFhNTCBvdXRwdXQgaXMgZXhwZWN0ZWQu
CisgICAgUnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGdlbmVyYXRlcyBhbiBYTUwgb3V0cHV0IGZv
ciBhIGJpbmFyeSB3aXRob3V0IHRlc3RzLAorICAgIGFuZCB0ZXN0cyB0aGF0IHRoZSBYTUwgb3V0
cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAgc2VsZi5fVGVzdFhtbE91dHB1dCgnZ3Rl
c3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX0VNUFRZX1hNTCwgMCkKKyAgICBzZWxmLl9U
ZXN0WG1sT3V0cHV0KCdndGVzdF9ub190ZXN0X3VuaXR0ZXN0JywgRVhQRUNURURfTk9fVEVTVF9Y
TUwsIDApCiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToKICAgICAiIiJDaGVja3Mg
d2hldGhlciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgWE1MIG91dHB1dCBpcyB2YWxp
ZC4KQEAgLTI2Niw3ICsyOTcsOCBAQCBjbGFzcyBHVGVzdFhNTE91dHB1dFVuaXRUZXN0KGd0ZXN0
X3htbF90ZXN0X3V0aWxzLkdUZXN0WE1MVGVzdENhc2UpOgogICAgICAgICAnZ3Rlc3Rfbm9fdGVz
dF91bml0dGVzdCcpCiAgICAgdHJ5OgogICAgICAgb3MucmVtb3ZlKG91dHB1dF9maWxlKQotICAg
IGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgZSA9IHN5cy5l
eGNfaW5mbygpWzFdCiAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVOT0VOVDoKICAgICAgICAg
cmFpc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfeG1sX291dHB1dF91bml0dGVzdF8uY2MKaW5kZXggMmVlODgzODAwNWVlZWMyMzU3MWJhZTM4
OWM3OTI2OThjMzBjNGQ1MC4uYzAwMzZhYWVmOWRmMjc2NTRhZTZhNmNlMWRlZDA3NjQyY2EyZDM5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjCkBAIC02Nyw2ICs2NywyMiBAQCBURVNUX0YoRGlzYWJs
ZWRUZXN0LCBESVNBQkxFRF90ZXN0X25vdF9ydW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVk
IGZhaWx1cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4iOwogfQogCitjbGFzcyBT
a2lwcGVkVGVzdCA6IHB1YmxpYyBUZXN0IHsKK307CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tp
cHBlZCkgeworICBHVEVTVF9TS0lQKCk7Cit9CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tpcHBl
ZFdpdGhNZXNzYWdlKSB7CisgIEdURVNUX1NLSVAoKSA8PCAiSXQgaXMgZ29vZCBwcmFjdGljZSB0
byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuIjsKK30KKworVEVTVF9GKFNraXBwZWRUZXN0LCBT
a2lwcGVkQWZ0ZXJGYWlsdXJlKSB7CisgIEVYUEVDVF9FUSgxLCAyKTsKKyAgR1RFU1RfU0tJUCgp
IDw8ICJJdCBpcyBnb29kIHByYWN0aWNlIHRvIHRlbGwgd2h5IHlvdSBza2lwIGEgdGVzdC4iOwor
fQorCiBURVNUKE1peGVkUmVzdWx0VGVzdCwgU3VjY2VlZHMpIHsKICAgRVhQRUNUX0VRKDEsIDEp
OwogICBBU1NFUlRfRVEoMSwgMSk7CkBAIC05NCw4ICsxMTAsMTAgQEAgVEVTVChJbnZhbGlkQ2hh
cmFjdGVyc1Rlc3QsIEludmFsaWRDaGFyYWN0ZXJzSW5NZXNzYWdlKSB7CiAKIGNsYXNzIFByb3Bl
cnR5UmVjb3JkaW5nVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lk
IFNldFVwVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJTZXRVcFRlc3RDYXNlIiwgInllcyIp
OyB9Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJU
ZWFyRG93blRlc3RDYXNlIiwgImF5ZSIpOyB9CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRl
KCkgeyBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBUZXN0U3VpdGUiLCAieWVzIik7IH0KKyAgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3du
VGVzdFN1aXRlIiwgImF5ZSIpOworICB9CiB9OwogCiBURVNUX0YoUHJvcGVydHlSZWNvcmRpbmdU
ZXN0LCBPbmVQcm9wZXJ0eSkgewpAQCAtMTQzLDI5ICsxNjEsMjUgQEAgVEVTVChOb0ZpeHR1cmVU
ZXN0LCBFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRTdHJpbmdWYWx1ZWRQcm9wZXJ0eSkg
ewogY2xhc3MgVmFsdWVQYXJhbVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9Owog
VEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7fQogVEVTVF9Q
KFZhbHVlUGFyYW1UZXN0LCBBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7
fQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2luZ2xlLCBWYWx1ZVBhcmFtVGVzdCwgVmFsdWVz
KDMzLCA0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNpbmdsZSwgVmFsdWVQYXJhbVRl
c3QsIFZhbHVlcygzMywgNDIpKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCiAvLyBWZXJp
ZmllcyB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVf
cGFyYW0nCiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlZCB0ZXN0cy4KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgVGVzdCB7fTsKIHR5cGVkZWYgdGVzdGlu
Zzo6VHlwZXM8aW50LCBsb25nPiBUeXBlZFRlc3RUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShUeXBl
ZFRlc3QsIFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBUeXBl
ZFRlc3RUeXBlcyk7CiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgSGFzVHlwZVBhcmFtQXR0cmlidXRl
KSB7fQotI2VuZGlmCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCiAvLyBWZXJpZmllcyB0
aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0n
CiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSA6IHB1YmxpYyBU
ZXN0IHt9OwotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSk7Ci1U
WVBFRF9URVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmli
dXRlKSB7fQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKTsKLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50
LCBsb25nPiBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChTaW5nbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBl
UGFyYW1ldGVyaXplZFRlc3RDYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZVR5cGVzKTsKLSNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSA6IHB1YmxpYyBUZXN0IHt9Owor
VFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKTsKK1RZUEVEX1RF
U1RfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7
fQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LCBIYXNUeXBlUGFyYW1BdHRyaWJ1dGUpOwordHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGxv
bmc+IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUChTaW5nbGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlVHlwZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgSW5pdEdv
b2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF94bWxfdGVzdF91dGlscy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKaW5kZXggMWUwMzU4NTkyZmIwMDg0ZjBhODlj
MzQzNmZmNzUxNzQ4NjgyN2FjZC4uNWRkMGViOTI0NDNhZDczMTU5ZmMzODQ1YzU3OWYzOTllOGYz
YmY4NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxf
dGVzdF91dGlscy5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ht
bF90ZXN0X3V0aWxzLnB5CkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIEdUZXN0WE1MVGVzdENhc2Uo
Z3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAg
ICAgIGxlbihleHBlY3RlZF9jaGlsZHJlbiksIGxlbihhY3R1YWxfY2hpbGRyZW4pLAogICAgICAg
ICAnbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzIGRpZmZlciBpbiBlbGVtZW50ICcgKyBhY3R1YWxf
bm9kZS50YWdOYW1lKQotICAgIGZvciBjaGlsZF9pZCwgY2hpbGQgaW4gZXhwZWN0ZWRfY2hpbGRy
ZW4uaXRlcml0ZW1zKCk6CisgICAgZm9yIGNoaWxkX2lkLCBjaGlsZCBpbiBleHBlY3RlZF9jaGls
ZHJlbi5pdGVtcygpOgogICAgICAgc2VsZi5hc3NlcnRfKGNoaWxkX2lkIGluIGFjdHVhbF9jaGls
ZHJlbiwKICAgICAgICAgICAgICAgICAgICAnPCVzPiBpcyBub3QgaW4gPCVzPiAoaW4gZWxlbWVu
dCAlcyknICUKICAgICAgICAgICAgICAgICAgICAoY2hpbGRfaWQsIGFjdHVhbF9jaGlsZHJlbiwg
YWN0dWFsX25vZGUudGFnTmFtZSkpCkBAIC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgR1Rlc3RYTUxU
ZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAgICd0ZXN0c3VpdGUnOiAn
bmFtZScsCiAgICAgICAndGVzdGNhc2UnOiAnbmFtZScsCiAgICAgICAnZmFpbHVyZSc6ICdtZXNz
YWdlJywKKyAgICAgICdza2lwcGVkJzogJ21lc3NhZ2UnLAogICAgICAgJ3Byb3BlcnR5JzogJ25h
bWUnLAogICB9CiAKQEAgLTE2OSw5ICsxNzAsOSBAQCBjbGFzcyBHVGVzdFhNTFRlc3RDYXNlKGd0
ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICogIFRoZSBzdGFjayB0cmFjZXMgYXJlIHJl
bW92ZWQuCiAgICAgIiIiCiAKLSAgICBpZiBlbGVtZW50LnRhZ05hbWUgPT0gJ3Rlc3RzdWl0ZXMn
OgorICAgIGlmIGVsZW1lbnQudGFnTmFtZSBpbiAoJ3Rlc3RzdWl0ZXMnLCAndGVzdHN1aXRlJywg
J3Rlc3RjYXNlJyk6CiAgICAgICB0aW1lc3RhbXAgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUo
J3RpbWVzdGFtcCcpCi0gICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIocideXGR7NH0tXGRc
ZC1cZFxkVFxkXGQ6XGRcZDpcZFxkJCcsCisgICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIo
cideXGR7NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkXC5cZFxkXGQkJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnKicsIHRpbWVzdGFtcC52YWx1ZSkKICAgICBpZiBlbGVtZW50
LnRhZ05hbWUgaW4gKCd0ZXN0c3VpdGVzJywgJ3Rlc3RzdWl0ZScsICd0ZXN0Y2FzZScpOgogICAg
ICAgdGltZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZSgndGltZScpCkBAIC0xNzksNyArMTgw
LDcgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToK
ICAgICAgIHR5cGVfcGFyYW0gPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3R5cGVfcGFyYW0n
KQogICAgICAgaWYgdHlwZV9wYXJhbSBhbmQgdHlwZV9wYXJhbS52YWx1ZToKICAgICAgICAgdHlw
ZV9wYXJhbS52YWx1ZSA9ICcqJwotICAgIGVsaWYgZWxlbWVudC50YWdOYW1lID09ICdmYWlsdXJl
JzoKKyAgICBlbGlmIGVsZW1lbnQudGFnTmFtZSA9PSAnZmFpbHVyZScgb3IgZWxlbWVudC50YWdO
YW1lID09ICdza2lwcGVkJzoKICAgICAgIHNvdXJjZV9saW5lX3BhdCA9IHInXi4qWy9cXF0oLio6
KVxkK1xuJwogICAgICAgIyBSZXBsYWNlcyB0aGUgc291cmNlIGxpbmUgaW5mb3JtYXRpb24gd2l0
aCBhIG5vcm1hbGl6ZWQgZm9ybS4KICAgICAgIG1lc3NhZ2UgPSBlbGVtZW50LmdldEF0dHJpYnV0
ZU5vZGUoJ21lc3NhZ2UnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9wcm9kdWN0aW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24u
aAppbmRleCA1NDI3MjNiNzA4NzM4N2Q0ZmI1MjlmYzA3YTY4OGJjMWM4ZDc4YjFlLi40MWE1NDcy
MjU0MjNkODMzMWE2NDlkYTk1ZjI4ZTFmZDNjNWFlNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L3Byb2R1Y3Rpb24uaApAQCAtMzAsOCArMzAsOCBAQAogLy8KIC8vIFRoaXMgaXMg
cGFydCBvZiB0aGUgdW5pdCB0ZXN0IGZvciBndGVzdF9wcm9kLmguCiAKLSNpZm5kZWYgR1RFU1Rf
VEVTVF9QUk9EVUNUSU9OX0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2lm
bmRlZiBHT09HTEVURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2RlZmluZSBHT09HTEVURVNUX1RF
U1RfUFJPRFVDVElPTl9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgogCkBAIC01
MSw0ICs1MSw0IEBAIGNsYXNzIFByaXZhdGVDb2RlIHsKICAgaW50IHhfOwogfTsKIAotI2VuZGlm
ICAvLyBHVEVTVF9URVNUX1BST0RVQ1RJT05fSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9URVNU
X1BST0RVQ1RJT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2Rl
L2d0ZXN0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC94Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNGJmZGM0MjQy
YTNlNWVlYjZjMDcwMTYyMWJjY2QxODlhN2M1ODMuLjE1MGI4ODAyMWFiODVhOTIzOWNhZGIxMmRl
YzE0M2IwZmRkNGE5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2Rl
L2d0ZXN0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QveGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsMTEgKzUy
LDggQEAKIAkJNDA0ODg0QTIwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggaW4g
Q29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwNDg4M0U0MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1pbnRlcm5hbC5oICovOyB9OwogCQk0
MDQ4ODRBMzBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oIGluIENvcHkgSGVhZGVycyBJ
bnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODNFNTBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovOyB9OwogCQk0MDQ4ODRBNDBFMkY3QkU2MDBD
Rjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4M0U2MEUyRjc5OUIwMENGNzY1OCAvKiBn
dGVzdC1zdHJpbmcuaCAqLzsgfTsKLQkJNDA0ODg0QUMwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5H
RVMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4
NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBDSEFOR0VTICovOyB9OwotCQk0MDQ4ODRBRDBFMkY3Q0Q5
MDBDRjc2NTggLyogQ09OVFJJQlVUT1JTIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODRBQTBFMkY3Q0Q5MDBDRjc2NTggLyogQ09OVFJJQlVUT1JT
ICovOyB9OwogCQk0MDQ4ODRBRTBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODg0QUIwRTJGN0NEOTAw
Q0Y3NjU4IC8qIExJQ0VOU0UgKi87IH07CiAJCTQwODk5RjNBMEZGQTcwRDQwMDBCMjlBRSAvKiBn
dGVzdC1hbGwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMjRBMTJBMTBFOUVBREE3MDBCRDE3RkQgLyogZ3Rlc3QtYWxsLmNjICovOyB9OwotCQk0MDg5
OUY1MDBGRkE3MjgxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCBpbiBDb3B5IEhlYWRlcnMgSW50
ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA4OTlGNEQwRkZBNzI3
MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggKi87IH07CiAJCTQwODk5RjUzMEZGQTcyQTAwMDBC
MjlBRSAvKiBndGVzdF91bml0dGVzdC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNCMjM4QzEyMEU3RkUxM0MwMDg0NkUxMSAvKiBndGVzdF91bml0dGVz
dC5jYyAqLzsgfTsKIAkJNDA4OUEwNDQwRkZBRDFCRTAwMEIyOUFFIC8qIHNhbXBsZTEuY2MgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyQzBGRkFD
RjdGMDAwQjI5QUUgLyogc2FtcGxlMS5jYyAqLzsgfTsKIAkJNDA4OUEwNDYwRkZBRDFCRTAwMEIy
OUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyRTBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMV91bml0
dGVzdC5jYyAqLzsgfTsKQEAgLTc1LDEwICs3Miw5IEBACiAJCTQwQzg0OUEyMTAxQTM3MDUwMDgz
NjQyQSAvKiBndGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3
b3JrICovOyB9OwogCQk0MEM4NDlBNDEwMUEzNzE1MDA4MzY0MkEgLyogZ3Rlc3QuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM4
RkYwRUMyN0Y2NDAwQTcwRjRDIC8qIGd0ZXN0LmZyYW1ld29yayAqLzsgfTsKIAkJNDUzOUM5MzQw
RUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS10ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OwotCQk0NTM5QzkzODBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5o
IGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTM5QzkzNTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5oICovOyB9
OwotCQk0NTM5QzkzOTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0
ZWQuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDUzOUM5MzYwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2Vu
ZXJhdGVkLmggKi87IH07CiAJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJh
bS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ1MzlDOTM3MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS11dGls
LmggKi87IH07CiAJCTQ1NjdDODE4MTI2NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDU2N0M4MTcx
MjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQlBM0MxMEJFMDI2MDk1MkM2MDAyMzE1NUQgLyog
Z3Rlc3QtbWF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQzEwQkRGMjYwOTUyQzUwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRjY3RDRGM0UxQzdG
NUQ4QjAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQtYXJjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oICovOyB9OwogCQlGNjdENEYzRjFDN0Y1REE3MDAxN0M3MjkgLyogZ3Rlc3Qt
cG9ydC1hcmNoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFy
Y2guaCAqLzsgfTsKIAkJRjY3RDRGNDQxQzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjQxMUM3
RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wb3J0LmggKi87IH07CkBAIC0xOTIsMTMgKzE4OCwxMCBA
QAogCQkJCTQwNDg4NEEwMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LWludGVy
bmFsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQwNDg4NEExMEUyRjdCRTYw
MENGNzY1OCAvKiBndGVzdC1maWxlcGF0aC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywK
IAkJCQk0MDQ4ODRBMjBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtaW50ZXJuYWwuaCBpbiBDb3B5
IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUzOUM5MzgwRUMyODBFMjAwQTcwRjRDIC8qIGd0
ZXN0LWxpbmtlZF9wdHIuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUzOUM5
MzkwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggaW4gQ29w
eSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCUY2N0Q0
RjNGMUM3RjVEQTcwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCBpbiBDb3B5IEhlYWRlcnMg
SW50ZXJuYWwgKi8sCiAJCQkJNDA0ODg0QTMwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LXBvcnQu
aCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkJNDA0ODg0QTQwRTJGN0JFNjAwQ0Y3
NjU4IC8qIGd0ZXN0LXN0cmluZy5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKLQkJCQk0
MDg5OUY1MDBGRkE3MjgxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCBpbiBDb3B5IEhlYWRlcnMg
SW50ZXJuYWwgKi8sCiAJCQkJM0JGNkYyQTAwRTc5QjVBRDAwMEYyRUVFIC8qIGd0ZXN0LXR5cGUt
dXRpbC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNv
cHkgSGVhZGVycyBJbnRlcm5hbCI7CkBAIC0yMzksMTEgKzIzMiw4IEBACiAJCTQwNDg4M0U2MEUy
Rjc5OUIwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gImd0ZXN0LXN0cmluZy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDA0ODgzRjYwRTJGNzk5QjAwQ0Y3NjU4IC8qIFJFQURNRS5tZCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBSRUFETUUubWQ7IHBhdGggPSAuLi9SRUFETUUubWQ7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKIAkJNDA0ODg0MEQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0X21haW4uY2MgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBndGVzdF9tYWluLmNjOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MDQ4ODRBOTBFMkY3Q0Q5MDBDRjc2NTggLyogQ0hBTkdF
UyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDSEFOR0VTOyBwYXRoID0gLi4vQ0hBTkdFUzsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk0MDQ4ODRBQTBFMkY3Q0Q5MDBDRjc2NTggLyog
Q09OVFJJQlVUT1JTICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IENPTlRSSUJVVE9SUzsgcGF0aCA9
IC4uL0NPTlRSSUJVVE9SUzsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MDQ4ODRB
QjBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBMSUNF
TlNFOyBwYXRoID0gLi4vTElDRU5TRTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0
MDg5OUY0MzBGRkE3MTg0MDAwQjI5QUUgLyogZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAiZ3Rlc3RfdW5pdHRl
c3QtZnJhbWV3b3JrIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNDA4
OTlGNEQwRkZBNzI3MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9ICJndGVzdC10dXBsZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDA4OTlGQjMwRkZBNzU2NzAwMEIyOUFFIC8qIFN0YXRpY0xpYnJhcnlUYXJnZXQueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU3RhdGljTGlicmFyeVRhcmdl
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDA4OUEwMTMwRkZBQ0VG
QzAwMEIyOUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFi
bGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAic2FtcGxlMV91bml0dGVzdC1mcmFtZXdv
cmsiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MDg5QTAyQzBGRkFD
RjdGMDAwQjI5QUUgLyogc2FtcGxlMS5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IHNhbXBsZTEuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjEsMTAg
KzI1MSw5IEBACiAJCTQ0QzQ4REZGMTRBNDA5OEYwMEEyRDlDNyAvKiBQcm9kdWN0aW9uUHJvamVj
dC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQcm9kdWN0aW9uUHJv
amVjdC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUzOUM4RkYwRUMy
N0Y2NDAwQTcwRjRDIC8qIGd0ZXN0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IGd0ZXN0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNDUzOUM5MzMwRUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBhcmFtLXRlc3QuaCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ1MzlDOTM1MEVDMjgwRTIwMEE3MEY0QyAv
KiBndGVzdC1saW5rZWRfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJn
dGVzdC1saW5rZWRfcHRyLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NTM5Qzkz
NjBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTM5QzkzNzBFQzI4MEUyMDBBNzBGNEMg
LyogZ3Rlc3QtcGFyYW0tdXRpbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAi
Z3Rlc3QtcGFyYW0tdXRpbC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDU2N0M4
MTcxMjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wcmludGVycy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTNDMTBCREYyNjA5NTJDNTAwMjMxNTVEIC8qIGd0ZXN0LW1hdGNoZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1tYXRjaGVycy5oIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtcG9y
dC1hcmNoLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjdENEY0MTFDN0Y1REQw
MDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSAiZ3Rlc3QtcG9ydC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3RDRGNDIx
QzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXByaW50ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9ICJndGVzdC1wcmludGVycy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM0MCw4ICszMjksNiBAQAogCQkwOEZCNzdBQ0ZFODQxNzA3QzAyQUFDMDcgLyogU291
cmNlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MDQ4
ODRBOTBFMkY3Q0Q5MDBDRjc2NTggLyogQ0hBTkdFUyAqLywKLQkJCQk0MDQ4ODRBQTBFMkY3Q0Q5
MDBDRjc2NTggLyogQ09OVFJJQlVUT1JTICovLAogCQkJCTQwNDg4M0Q5MEUyRjc5OUIwMENGNzY1
OCAvKiBpbmNsdWRlICovLAogCQkJCTQwNDg4NEFCMEUyRjdDRDkwMENGNzY1OCAvKiBMSUNFTlNF
ICovLAogCQkJCTQwODlBMDJGMEZGQUNGODQwMDBCMjlBRSAvKiBzYW1wbGVzICovLApAQCAtMzg0
LDYgKzM3MSw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MDQ4ODNFMTBFMkY3OTlCMDBDRjc2
NTggLyogaW50ZXJuYWwgKi8sCiAJCQkJNDA0ODgzREIwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0
LWRlYXRoLXRlc3QuaCAqLywKKwkJCQlBM0MxMEJERjI2MDk1MkM1MDAyMzE1NUQgLyogZ3Rlc3Qt
bWF0Y2hlcnMuaCAqLywKIAkJCQk0MDQ4ODNEQzBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtbWVz
c2FnZS5oICovLAogCQkJCTQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS10
ZXN0LmggKi8sCiAJCQkJNDU2N0M4MTcxMjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJz
LmggKi8sCkBAIC00MDQsMTMgKzM5MiwxMCBAQAogCQkJCTQwNDg4M0UyMEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmggKi8sCiAJCQkJNDA0ODgzRTMwRTJGNzk5
QjAwQ0Y3NjU4IC8qIGd0ZXN0LWZpbGVwYXRoLmggKi8sCiAJCQkJNDA0ODgzRTQwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggKi8sCi0JCQkJNDUzOUM5MzUwRUMyODBFMjAwQTcw
RjRDIC8qIGd0ZXN0LWxpbmtlZF9wdHIuaCAqLywKLQkJCQk0NTM5QzkzNjBFQzI4MEUyMDBBNzBG
NEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLywKIAkJCQk0NTM5QzkzNzBFQzI4
MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC5oICovLAogCQkJCUY2N0Q0RjNEMUM3RjVE
OEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCAqLywKIAkJCQk0MDQ4ODNFNTBFMkY3OTlC
MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovLAogCQkJCTQwNDg4M0U2MEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1zdHJpbmcuaCAqLywKLQkJCQk0MDg5OUY0RDBGRkE3MjcxMDAwQjI5QUUgLyog
Z3Rlc3QtdHVwbGUuaCAqLywKIAkJCQkzQkY2RjI5RjBFNzlCNUFEMDAwRjJFRUUgLyogZ3Rlc3Qt
dHlwZS11dGlsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGludGVybmFsOwpAQCAtNDc2LDYgKzQ2
MSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJ
CQkJNDA0ODg0MzgwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUEzQzEwQkUwMjYwOTUyQzYwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDA0ODg0MzkwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LW1l
c3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MzlDOTM0MEVDMjgwQUUwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS10ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjdENEYzRTFDN0Y1RDhCMDAx
N0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4gSGVhZGVycyAqLywKQEAgLTY1OCw4ICs2NDQs
NiBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk0MDQ4ODRBQzBFMkY3Q0Q5MDBDRjc2
NTggLyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNDA0ODg0QUQwRTJGN0NEOTAwQ0Y3
NjU4IC8qIENPTlRSSUJVVE9SUyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDBDODQ5NzgxMDFBMzY1
NDAwODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDA0ODg0
QUUwRTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgaW4gUmVzb3VyY2VzICovLAogCQkJCTQwNDg4
NDUwMEUyRjc5OUIwMENGNzY1OCAvKiBSRUFETUUubWQgaW4gUmVzb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423952</attachid>
            <date>2021-03-22 15:51:25 -0700</date>
            <delta_ts>2021-03-22 16:50:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223607-20210322155123.patch</filename>
            <type>text/plain</type>
            <size>2263235</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYTFjYTlkYWNh
YzdmNjQzODM5NjY0MTg5YWUyYTZkMmFhYWQ3N2RiYS4uMmI2NGFlNzNmNzczYjJjODUyOGRjODZj
ZjkyNjk3OGMzZjg0Yzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIx
LTAzLTIyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBVcGRhdGUgZ29vZ2xldGVzdCB0byAxYThlY2YxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ZXN0LzoKKyAgICAgICAgVXBkYXRlIGdvb2dsZXRl
c3QsIGJ1dC4uLgorCisgICAgICAgICogZ3Rlc3QvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIEtl
ZXAgb3VyIG93biBjb3B5LCBqdXN0IGFkZCB0aGUgbmV3IHNvdXJjZSBmaWxlLgorCisgICAgICAg
ICogZ3Rlc3QvUkVBRE1FLldlYktpdDogUmVtb3ZlZC4KKyAgICAgICAgKiBndGVzdC9jaGFuZ2Vz
LmRpZmY6IFJlbW92ZWQuCisgICAgICAgIEl0IGFwcGVhcnMgdGhhdCBvdXIgZml4IGZvciBGcmVl
QlNEIGhhcyBiZWVuIHVwc3RyZWFtZWQuCisKIDIwMjEtMDItMjQgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxpbmtlciB3YXJuaW5ncyBidWls
ZGluZyBndGVzdCBmb3IgbWFjQ2F0YWx5c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L0NIQU5HRVMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9DSEFOR0VTCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTUyMTMyNDIxMmM5MTI4N2Q5MjQ0ZDQ0YmFiMzA2ZGI2
NjRiYWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NIQU5HRVMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAs
MCBAQAotQ2hhbmdlcyBmb3IgMS43LjA6Ci0KLSogTmV3IGZlYXR1cmU6IGRlYXRoIHRlc3RzIGFy
ZSBzdXBwb3J0ZWQgb24gT3BlbkJTRCBhbmQgaW4gaU9TCi0gIHNpbXVsYXRvciBub3cuCi0qIE5l
dyBmZWF0dXJlOiBHb29nbGUgVGVzdCBub3cgaW1wbGVtZW50cyBhIHByb3RvY29sIHRvIGFsbG93
Ci0gIGEgdGVzdCBydW5uZXIgdG8gZGV0ZWN0IHRoYXQgYSB0ZXN0IHByb2dyYW0gaGFzIGV4aXRl
ZAotICBwcmVtYXR1cmVseSBhbmQgcmVwb3J0IGl0IGFzIGEgZmFpbHVyZSAoYmVmb3JlIGl0IHdv
dWxkIGJlCi0gIGZhbHNlbHkgcmVwb3J0ZWQgYXMgYSBzdWNjZXNzIGlmIHRoZSBleGl0IGNvZGUg
aXMgMCkuCi0qIE5ldyBmZWF0dXJlOiBUZXN0OjpSZWNvcmRQcm9wZXJ0eSgpIGNhbiBub3cgYmUg
dXNlZCBvdXRzaWRlIG9mIHRoZQotICBsaWZlc3BhbiBvZiBhIHRlc3QgbWV0aG9kLCBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0bwotICB0aGUgY3VycmVudCB0ZXN0IGNhc2Ug
b3IgdGhlIHRlc3QgcHJvZ3JhbSBpbiB0aGUgWE1MIHJlcG9ydC4KLSogTmV3IGZlYXR1cmUgKHBv
dGVudGlhbGx5IGJyZWFraW5nKTogLS1ndGVzdF9saXN0X3Rlc3RzIG5vdyBwcmludHMKLSAgdGhl
IHR5cGUgcGFyYW1ldGVycyBhbmQgdmFsdWUgcGFyYW1ldGVycyBmb3IgZWFjaCB0ZXN0LgotKiBJ
bXByb3ZlbWVudDogY2hhciBwb2ludGVycyBhbmQgY2hhciBhcnJheXMgYXJlIG5vdyBlc2NhcGVk
IHByb3Blcmx5Ci0gIGluIGZhaWx1cmUgbWVzc2FnZXMuCi0qIEltcHJvdmVtZW50OiBmYWlsdXJl
IHN1bW1hcnkgaW4gWE1MIHJlcG9ydHMgbm93IGluY2x1ZGVzIGZpbGUgYW5kCi0gIGxpbmUgaW5m
b3JtYXRpb24uCi0qIEltcHJvdmVtZW50OiB0aGUgPHRlc3RzdWl0ZXM+IFhNTCBlbGVtZW50IG5v
dyBoYXMgYSB0aW1lc3RhbXAgYXR0cmlidXRlLgotKiBJbXByb3ZlbWVudDogV2hlbiAtLWd0ZXN0
X2ZpbHRlciBpcyBzcGVjaWZpZWQsIFhNTCByZXBvcnQgbm93IGRvZXNuJ3QKLSAgY29udGFpbiBp
bmZvcm1hdGlvbiBhYm91dCB0ZXN0cyB0aGF0IGFyZSBmaWx0ZXJlZCBvdXQuCi0qIEZpeGVkIHRo
ZSBidWcgd2hlcmUgbG9uZyAtLWd0ZXN0X2ZpbHRlciBmbGFnIHZhbHVlcyBhcmUgdHJ1bmNhdGVk
IGluCi0gIGRlYXRoIHRlc3RzLgotKiBQb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2U6IFJVTl9B
TExfVEVTVFMoKSBpcyBub3cgaW1wbGVtZW50ZWQgYXMgYQotICBmdW5jdGlvbiBpbnN0ZWFkIG9m
IGEgbWFjcm8gaW4gb3JkZXIgdG8gd29yayBiZXR0ZXIgd2l0aCBDbGFuZy4KLSogQ29tcGF0aWJp
bGl0eSBmaXhlcyB3aXRoIEMrKyAxMSBhbmQgdmFyaW91cyBwbGF0Zm9ybXMuCi0qIEJ1Zy93YXJu
aW5nIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjYuMDoKLQotKiBOZXcgZmVhdHVyZTogQUREX0ZB
SUxVUkVfQVQoKSBmb3IgcmVwb3J0aW5nIGEgdGVzdCBmYWlsdXJlIGF0IHRoZQotICBnaXZlbiBz
b3VyY2UgbG9jYXRpb24gLS0gdXNlZnVsIGZvciB3cml0aW5nIHRlc3RpbmcgdXRpbGl0aWVzLgot
KiBOZXcgZmVhdHVyZTogdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyIGlzIG1vdmVkIGZyb20g
R29vZ2xlIE1vY2sKLSAgdG8gR29vZ2xlIFRlc3QuCi0qIE5ldyBmZWF0dXJlOiB0eXBlIHBhcmFt
ZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgYXJlIHJlcG9ydGVkIGluCi0gIHRoZSBYTUwgcmVw
b3J0IG5vdy4KLSogQSBndGVzdF9kaXNhYmxlX3B0aHJlYWRzIENNYWtlIG9wdGlvbi4KLSogQ29s
b3JlZCBvdXRwdXQgd29ya3MgaW4gR05VIFNjcmVlbiBzZXNzaW9ucyBub3cuCi0qIFBhcmFtZXRl
cnMgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgbm93IHByaW50ZWQgaW4gdGhlCi0g
IHRleHR1YWwgb3V0cHV0LgotKiBGYWlsdXJlcyBmcm9tIGFkIGhvYyB0ZXN0IGFzc2VydGlvbnMg
cnVuIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgYXJlCi0gIG5vdyBjb3JyZWN0bHkgcmVwb3J0ZWQu
Ci0qIEFyZ3VtZW50cyBvZiBBU1NFUlRfWFkgYW5kIEVYUEVDVF9YWSBubyBsb25nZXIgbmVlZCB0
byBzdXBwb3J0IDw8IHRvCi0gIG9zdHJlYW0uCi0qIE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2Yg
ZXhjZXB0aW9ucy4KLSogR1RFU1RfQVNTRVJUX1hZIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgQVNT
RVJUX1hZIGluIGNhc2UgdGhlIGxhdHRlcgotICBuYW1lIGlzIGFscmVhZHkgdXNlZCBieSBhbm90
aGVyIGxpYnJhcnkuCi0qIC0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucyBpcyBub3cgdHJ1ZSBieSBk
ZWZhdWx0LCBhbGxvd2luZyBhIHRlc3QKLSAgcHJvZ3JhbSB0byBjb250aW51ZSBhZnRlciBhbiBl
eGNlcHRpb24gaXMgdGhyb3duLgotKiBWYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZXMg
Y2FuIG5vdyBkZXJpdmUgZnJvbSBUZXN0IGFuZAotICBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gc2Vw
YXJhdGVseSwgZWFzaW5nIGNvbnZlcnNpb24gb2YgbGVnYWN5IHRlc3RzLgotKiBEZWF0aCB0ZXN0
IG1lc3NhZ2VzIGFyZSBjbGVhcmx5IG1hcmtlZCB0byBtYWtlIHRoZW0gbW9yZQotICBkaXN0aW5n
dWlzaGFibGUgZnJvbSBvdGhlciBtZXNzYWdlcy4KLSogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3Ig
QW5kcm9pZCwgR29vZ2xlIE5hdGl2ZSBDbGllbnQsIE1pbkdXLCBIUCBVWCwKLSAgUG93ZXJQQywg
THVjaWQgYXV0b3Rvb2xzLCBsaWJDU3RkLCBTdW4gQysrLCBCb3JsYW5kIEMrKyBCdWlsZGVyIChD
b2RlIEdlYXIpLAotICBJQk0gWEwgQysrIChWaXN1YWwgQWdlIEMrKyksIGFuZCBDKysweC4KLSog
QnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0qIFBvdGVudGlhbGx5IGlu
Y29tcGF0aWJsZSBjaGFuZ2VzOiBkaXNhYmxlcyB0aGUgaGFybWZ1bCAnbWFrZSBpbnN0YWxsJwot
ICBjb21tYW5kIGluIGF1dG90b29scy4KLQotQ2hhbmdlcyBmb3IgMS41LjA6Ci0KLSAqIE5ldyBm
ZWF0dXJlOiBhc3NlcnRpb25zIGNhbiBiZSBzYWZlbHkgY2FsbGVkIGluIG11bHRpcGxlIHRocmVh
ZHMKLSAgIHdoZXJlIHRoZSBwdGhyZWFkcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4KLSAqIE5ldyBm
ZWF0dXJlOiBwcmVkaWNhdGVzIHVzZWQgaW5zaWRlIEVYUEVDVF9UUlVFKCkgYW5kIGZyaWVuZHMK
LSAgIGNhbiBub3cgZ2VuZXJhdGUgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZXMuCi0gKiBOZXcgZmVh
dHVyZTogR29vZ2xlIFRlc3QgY2FuIG5vdyBiZSBjb21waWxlZCBhcyBhIERMTC4KLSAqIE5ldyBm
ZWF0dXJlOiBmdXNlZCBzb3VyY2UgZmlsZXMgYXJlIGluY2x1ZGVkLgotICogTmV3IGZlYXR1cmU6
IHByaW50cyBoZWxwIHdoZW4gZW5jb3VudGVyaW5nIHVucmVjb2duaXplZCBHb29nbGUgVGVzdCBm
bGFncy4KLSAqIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBDTWFrZSBidWlsZCBzY3JpcHQgKHJlcXVp
cmVzIENNYWtlIDIuNi40KykuCi0gKiBFeHBlcmltZW50YWwgZmVhdHVyZTogdGhlIFB1bXAgc2Ny
aXB0IGZvciBtZXRhIHByb2dyYW1taW5nLgotICogZG91YmxlIHZhbHVlcyBzdHJlYW1lZCB0byBh
biBhc3NlcnRpb24gYXJlIHByaW50ZWQgd2l0aCBlbm91Z2ggcHJlY2lzaW9uCi0gICB0byBkaWZm
ZXJlbnRpYXRlIGFueSB0d28gZGlmZmVyZW50IHZhbHVlcy4KLSAqIEdvb2dsZSBUZXN0IG5vdyB3
b3JrcyBvbiBTb2xhcmlzIGFuZCBBSVguCi0gKiBCdWlsZCBhbmQgdGVzdCBzY3JpcHQgaW1wcm92
ZW1lbnRzLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0KLSBQ
b3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzOgotCi0gKiBTdG9wcGVkIHN1cHBvcnRpbmcgVkMr
KyA3LjEgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLgotICogRHJvcHBlZCBzdXBwb3J0IGZvciAn
bWFrZSBpbnN0YWxsJy4KLQotQ2hhbmdlcyBmb3IgMS40LjA6Ci0KLSAqIE5ldyBmZWF0dXJlOiB0
aGUgZXZlbnQgbGlzdGVuZXIgQVBJCi0gKiBOZXcgZmVhdHVyZTogdGVzdCBzaHVmZmxpbmcKLSAq
IE5ldyBmZWF0dXJlOiB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgaXMgY2xvc2VyIHRvIGp1bml0cmVw
b3J0IGFuZCBjYW4KLSAgIGJlIHBhcnNlZCBieSBIdWRzb24gbm93LgotICogTmV3IGZlYXR1cmU6
IHdoZW4gYSB0ZXN0IHJ1bnMgdW5kZXIgVmlzdWFsIFN0dWRpbywgaXRzIGZhaWx1cmVzIGFyZQot
ICAgaW50ZWdyYXRlZCBpbiB0aGUgSURFLgotICogTmV3IGZlYXR1cmU6IC9NRChkKSB2ZXJzaW9u
cyBvZiBWQysrIHByb2plY3RzLgotICogTmV3IGZlYXR1cmU6IGVsYXBzZWQgdGltZSBmb3IgdGhl
IHRlc3RzIGlzIHByaW50ZWQgYnkgZGVmYXVsdC4KLSAqIE5ldyBmZWF0dXJlOiBjb21lcyB3aXRo
IGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uIHN1Y2ggdGhhdCBCb29zdAotICAgaXMgbm8gbG9u
Z2VyIG5lZWRlZCBmb3IgQ29tYmluZSgpLgotICogTmV3IGZlYXR1cmU6IEVYUEVDVF9ERUFUSF9J
Rl9TVVBQT1JURUQgbWFjcm8gYW5kIGZyaWVuZHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIFhjb2Rl
IHByb2plY3QgY2FuIG5vdyBwcm9kdWNlIHN0YXRpYyBndGVzdAotICAgbGlicmFyaWVzIGluIGFk
ZGl0aW9uIHRvIGEgZnJhbWV3b3JrLgotICogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3IgU29sYXJp
cywgQ3lnd2luLCBtaW5HVywgV2luZG93cyBNb2JpbGUsCi0gICBTeW1iaWFuLCBnY2MsIGFuZCBD
KytCdWlsZGVyLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0K
LUNoYW5nZXMgZm9yIDEuMy4wOgotCi0gKiBOZXcgZmVhdHVyZTogZGVhdGggdGVzdHMgb24gV2lu
ZG93cywgQ3lnd2luLCBhbmQgTWFjLgotICogTmV3IGZlYXR1cmU6IGFiaWxpdHkgdG8gdXNlIEdv
b2dsZSBUZXN0IGFzc2VydGlvbnMgaW4gb3RoZXIgdGVzdGluZwotICAgZnJhbWV3b3Jrcy4KLSAq
IE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHJ1biBkaXNhYmxlZCB0ZXN0IHZpYQotICAgLS1ndGVz
dF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgLS1oZWxwIGZs
YWcgZm9yIHByaW50aW5nIHRoZSB1c2FnZS4KLSAqIE5ldyBmZWF0dXJlOiBhY2Nlc3MgdG8gR29v
Z2xlIFRlc3QgZmxhZyB2YWx1ZXMgaW4gdXNlciBjb2RlLgotICogTmV3IGZlYXR1cmU6IGEgc2Ny
aXB0IHRoYXQgcGFja3MgR29vZ2xlIFRlc3QgaW50byBvbmUgLmggYW5kIG9uZQotICAgLmNjIGZp
bGUgZm9yIGVhc3kgZGVwbG95bWVudC4KLSAqIE5ldyBmZWF0dXJlOiBzdXBwb3J0IGZvciBkaXN0
cmlidXRpbmcgdGVzdCBmdW5jdGlvbnMgdG8gbXVsdGlwbGUKLSAgIG1hY2hpbmVzIChyZXF1aXJl
cyBzdXBwb3J0IGZyb20gdGhlIHRlc3QgcnVubmVyKS4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVt
ZW50YXRpb24gY2xlYW4tdXBzLgotCi1DaGFuZ2VzIGZvciAxLjIuMToKLQotICogQ29tcGF0aWJp
bGl0eSBmaXhlcyBmb3IgTGludXggSUEtNjQgYW5kIElCTSB6L09TLgotICogQWRkZWQgc3VwcG9y
dCBmb3IgdXNpbmcgQm9vc3QgYW5kIG90aGVyIFRSMSBpbXBsZW1lbnRhdGlvbnMuCi0gKiBDaGFu
Z2VzIHRvIHRoZSBidWlsZCBzY3JpcHRzIHRvIHN1cHBvcnQgdXBjb21pbmcgcmVsZWFzZSBvZiBH
b29nbGUgQysrCi0gICBNb2NraW5nIEZyYW1ld29yay4KLSAqIEFkZGVkIE1ha2VmaWxlIHRvIHRo
ZSBkaXN0cmlidXRpb24gcGFja2FnZS4KLSAqIEltcHJvdmVkIGJ1aWxkIGluc3RydWN0aW9ucyBp
biBSRUFETUUuCi0KLUNoYW5nZXMgZm9yIDEuMi4wOgotCi0gKiBOZXcgZmVhdHVyZTogdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiB0aGUgQVNTRVJUL0VYUEVDVF8o
Tk9OKUZBVEFMX0ZBSUxVUkUoX09OX0FMTF9USFJFQURTKQotICAgbWFjcm9zLgotICogQ2hhbmdl
ZCB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgdG8gbWF0Y2ggSlVuaXQvQW50J3MuCi0gKiBBZGRlZCB0
ZXN0cyB0byB0aGUgWGNvZGUgcHJvamVjdC4KLSAqIEFkZGVkIHNjb25zL1NDb25zY3JpcHQgZm9y
IGJ1aWxkaW5nIHdpdGggU0NvbnMuCi0gKiBBZGRlZCBzcmMvZ3Rlc3QtYWxsLmNjIGZvciBidWls
ZGluZyBHb29nbGUgVGVzdCBmcm9tIGEgc2luZ2xlIGZpbGUuCi0gKiBGaXhlZCBjb21wYXRpYmls
aXR5IHdpdGggU29sYXJpcyBhbmQgei9PUy4KLSAqIEVuYWJsZWQgcnVubmluZyBQeXRob24gdGVz
dHMgb24gc3lzdGVtcyB3aXRoIHB5dGhvbiAyLjMgaW5zdGFsbGVkLAotICAgZS5nLiBNYWMgT1Mg
WCAxMC40LgotICogQnVnIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjEuMDoKLQotICogTmV3IGZl
YXR1cmU6IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0dXJlOiBleGNlcHRp
b24gYXNzZXJ0aW9ucy4KLSAqIE5ldyBmZWF0dXJlOiBwcmludGluZyBlbGFwc2VkIHRpbWUgb2Yg
dGVzdHMuCi0gKiBJbXByb3ZlZCB0aGUgcm9idXN0bmVzcyBvZiBkZWF0aCB0ZXN0cy4KLSAqIEFk
ZGVkIGFuIFhjb2RlIHByb2plY3QgYW5kIHNhbXBsZXMuCi0gKiBBZGp1c3RlZCB0aGUgb3V0cHV0
IGZvcm1hdCBvbiBXaW5kb3dzIHRvIGJlIHVuZGVyc3RhbmRhYmxlIGJ5IFZpc3VhbCBTdHVkaW8u
Ci0gKiBNaW5vciBidWcgZml4ZXMuCi0KLUNoYW5nZXMgZm9yIDEuMC4xOgotCi0gKiBBZGRlZCBw
cm9qZWN0IGZpbGVzIGZvciBWaXN1YWwgU3R1ZGlvIDcuMS4KLSAqIEZpeGVkIGlzc3VlcyB3aXRo
IGNvbXBpbGluZyBvbiBNYWMgT1MgWC4KLSAqIEZpeGVkIGlzc3VlcyB3aXRoIGNvbXBpbGluZyBv
biBDeWd3aW4uCi0KLUNoYW5nZXMgZm9yIDEuMC4wOgotCi0gKiBJbml0aWFsIE9wZW4gU291cmNl
IHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50
eHQKaW5kZXggNTEwNDNlMjY2OTI5Y2Y3N2JkZDY1MTg1OWExODg5MzJmNGVmZjZmOS4uNjc0Nzdm
NDdjZTM5MzkwNWVjNzQ0NTQ0M2M1MDg2M2IwNmNmNDI3MCAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYgKzE0LDcgQEAgc2V0KEdURVNUX1NPVVJDRVMKICAg
ICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKICAgICAke0dURVNUX0RJUn0v
c3JjL2d0ZXN0LWZpbGVwYXRoLmNjCiAgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdF9tYWluLmNj
CisgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdC1tYXRjaGVycy5jYwogICAgICR7R1RFU1RfRElS
fS9zcmMvZ3Rlc3QtcG9ydC5jYwogICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtcHJpbnRlcnMu
Y2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LXRlc3QtcGFydC5jYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ09OVFJJQlVUT1JTIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvQ09OVFJJQlVUT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWFlMmZj
MDQ0MTBkYzMwOGU0NjRhYTI1NmZlMWYyZDMxZWRjOTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NPTlRSSUJV
VE9SUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgVGhpcyBmaWxlIGNvbnRhaW5z
IGEgbGlzdCBvZiBwZW9wbGUgd2hvJ3ZlIG1hZGUgbm9uLXRyaXZpYWwKLSMgY29udHJpYnV0aW9u
IHRvIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIHByb2plY3QuICBQZW9wbGUKLSMg
d2hvIGNvbW1pdCBjb2RlIHRvIHRoZSBwcm9qZWN0IGFyZSBlbmNvdXJhZ2VkIHRvIGFkZCB0aGVp
ciBuYW1lcwotIyBoZXJlLiAgUGxlYXNlIGtlZXAgdGhlIGxpc3Qgc29ydGVkIGJ5IGZpcnN0IG5h
bWVzLgotCi1BamF5IEpvc2hpIDxqYWpAZ29vZ2xlLmNvbT4KLUJhbMOhenMgRMOhbiA8YmFsYXpz
LmRhbkBnbWFpbC5jb20+Ci1CaGFyYXQgTWVkaXJhdHRhIDxiaGFyYXRAbWVuYWx0by5jb20+Ci1D
aGFuZGxlciBDYXJydXRoIDxjaGFuZGxlcmNAZ29vZ2xlLmNvbT4KLUNocmlzIFByaW5jZSA8Y3By
aW5jZUBnb29nbGUuY29tPgotQ2hyaXMgVGF5bG9yIDx0YXlsb3JjQGdvb2dsZS5jb20+Ci1EYW4g
RWdub3IgPGVnbm9yQGdvb2dsZS5jb20+Ci1FcmljIFJvbWFuIDxlcm9tYW5AY2hyb21pdW0ub3Jn
PgotSGFkeSBaYWxlayA8aGFkeS56YWxla0BnbWFpbC5jb20+Ci1KZWZmcmV5IFlhc3NraW4gPGp5
YXNza2luQGdvb2dsZS5jb20+Ci1Kw7NpIFNpZ3Vyw7Bzc29uIDxqb2lAZ29vZ2xlLmNvbT4KLUtl
aXIgTWllcmxlIDxtaWVybGVAZ21haWwuY29tPgotS2VpdGggUmF5IDxrZWl0aC5yYXlAZ21haWwu
Y29tPgotS2VudG9uIFZhcmRhIDxrZW50b25AZ29vZ2xlLmNvbT4KLU1hbnVlbCBLbGltZWsgPGts
aW1la0Bnb29nbGUuY29tPgotTWFya3VzIEhldWxlIDxtYXJrdXMuaGV1bGVAZ21haWwuY29tPgot
TWlrYSBSYWVudG8gPG1pa2llQGlraS5maT4KLU1pa2zDs3MgRmF6ZWthcyA8bWZhemVrYXNAc3pl
bWFmb3IuY29tPgotUGFzaSBWYWxtaW5lbiA8cGFzaS52YWxtaW5lbkBnbWFpbC5jb20+Ci1QYXRy
aWNrIEhhbm5hIDxwaGFubmFAZ29vZ2xlLmNvbT4KLVBhdHJpY2sgUmlsZXkgPHBmckBnb29nbGUu
Y29tPgotUGV0ZXIgS2FtaW5za2kgPHBpb3Rya0Bnb29nbGUuY29tPgotUHJlc3RvbiBKYWNrc29u
IDxwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20+Ci1SYWluZXIgS2xhZmZlbmJvZWNrIDxyYWlu
ZXIua2xhZmZlbmJvZWNrQGR5bmF0cmFjZS5jb20+Ci1SdXNzIENveCA8cnNjQGdvb2dsZS5jb20+
Ci1SdXNzIFJ1ZmVyIDxydXNzQHBlbnRhZC5jb20+Ci1TZWFuIE1jYWZlZSA8ZWVmYWNtQGdtYWls
LmNvbT4KLVNpZ3Vyw7B1ciDDgXNnZWlyc3NvbiA8c2lnZ2lAZ29vZ2xlLmNvbT4KLVRyYWN5IEJp
YWxpayA8dHJhY3lAcGVudGFkLmNvbT4KLVZhZGltIEJlcm1hbiA8dmFkaW1iQGdvb2dsZS5jb20+
Ci1WbGFkIExvc2V2IDx2bGFkbEBnb29nbGUuY29tPgotWmhhbnlvbmcgV2FuIDx3YW5AZ29vZ2xl
LmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L01ha2VmaWxlLmFtIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvTWFrZWZpbGUuYW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI0NGM4NDE2YmEwODBjMmYwMTZmMTY2YjE4YjQyYzBmNzNlY2U3YmUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvTWFrZWZpbGUuYW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMzkgKzAsMCBAQAotIyBB
dXRvbWFrZSBmaWxlCi0KLUFDTE9DQUxfQU1GTEFHUyA9IC1JIG00Ci0KLSMgTm9uc3RhbmRhcmQg
cGFja2FnZSBmaWxlcyBmb3IgZGlzdHJpYnV0aW9uCi1FWFRSQV9ESVNUID0gXAotICBDSEFOR0VT
IFwKLSAgQ09OVFJJQlVUT1JTIFwKLSAgTElDRU5TRSBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oLnB1bXAgXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFt
LXV0aWwtZ2VuZXJhdGVkLmgucHVtcCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHVwbGUuaC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwu
aC5wdW1wIFwKLSAgbWFrZS9NYWtlZmlsZSBcCi0gIHNjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5w
eSBcCi0gIHNjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5weSBcCi0gIHNjcmlwdHMvcHVtcC5w
eSBcCi0gIHNjcmlwdHMvdGVzdC9NYWtlZmlsZQotCi0jIGd0ZXN0IHNvdXJjZSBmaWxlcyB0aGF0
IHdlIGRvbid0IGNvbXBpbGUgZGlyZWN0bHkuICBUaGV5IGFyZQotIyAjaW5jbHVkZWQgYnkgZ3Rl
c3QtYWxsLmNjLgotR1RFU1RfU1JDID0gXAotICBzcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyBcCi0g
IHNyYy9ndGVzdC1maWxlcGF0aC5jYyBcCi0gIHNyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaCBcCi0g
IHNyYy9ndGVzdC1wb3J0LmNjIFwKLSAgc3JjL2d0ZXN0LXByaW50ZXJzLmNjIFwKLSAgc3JjL2d0
ZXN0LXRlc3QtcGFydC5jYyBcCi0gIHNyYy9ndGVzdC10eXBlZC10ZXN0LmNjIFwKLSAgc3JjL2d0
ZXN0LmNjCi0KLUVYVFJBX0RJU1QgKz0gJChHVEVTVF9TUkMpCi0KLSMgU2FtcGxlIGZpbGVzIHRo
YXQgd2UgZG9uJ3QgY29tcGlsZS4KLUVYVFJBX0RJU1QgKz0gXAotICBzYW1wbGVzL3ByaW1lX3Rh
Ymxlcy5oIFwKLSAgc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1w
bGUyX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjIFwKLSAgc2Ft
cGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNj
IFwKLSAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU3X3Vu
aXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9z
YW1wbGU5X3VuaXR0ZXN0LmNjCi0KLSMgQysrIHRlc3QgZmlsZXMgdGhhdCB3ZSBkb24ndCBjb21w
aWxlIGRpcmVjdGx5LgotRVhUUkFfRElTVCArPSBcCi0gIHRlc3QvZ3Rlc3QtZGVhdGgtdGVzdF9l
eF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0
ZXN0LWZpbGVwYXRoX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LWxpbmtlZF9wdHJfdGVzdC5jYyBc
Ci0gIHRlc3QvZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtbWVzc2FnZV90
ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1vcHRpb25zX3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRl
c3QtcGFyYW0tdGVzdDItdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10
ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXBhcmFtLXRlc3Rf
dGVzdC5oIFwKLSAgdGVzdC9ndGVzdC1wb3J0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3ByZW1h
dHVyZV9leGl0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXByaW50ZXJzX3Rlc3QuY2MgXAotICB0
ZXN0L2d0ZXN0LXRlc3QtcGFydF90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRl
c3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0
LXR5cGVkLXRlc3RfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmggXAot
ICB0ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWJy
ZWFrLW9uLWZhaWx1cmUtdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4
Y2VwdGlvbnMtdGVzdF8uY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtY29sb3ItdGVzdF8uY2MgXAot
ICB0ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfZW52aXJv
bm1lbnRfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNjIFwK
LSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVz
dHMtdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9tYWluX3VuaXR0ZXN0LmNjIFwKLSAgdGVz
dC9ndGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10
ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9n
dGVzdF9wcm9kX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjIFwKLSAgdGVz
dC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X3NvbGVfaGVhZGVy
X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3N0cmVzc190ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF90
aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24t
ZmFpbHVyZS10ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3Rf
LmNjIFwKLSAgdGVzdC9ndGVzdF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3RfdW5pdHRlc3Qu
Y2MgXAotICB0ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3Rf
eG1sX291dGZpbGUyX3Rlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyBcCi0gIHRlc3QvcHJvZHVjdGlvbi5jYyBcCi0gIHRlc3QvcHJvZHVjdGlvbi5oCi0KLSMg
UHl0aG9uIHRlc3RzIHRoYXQgd2UgZG9uJ3QgcnVuLgotRVhUUkFfRElTVCArPSBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0
ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1jb2xvci10
ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdC5weSBcCi0gIHRlc3QvZ29v
Z2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weSBc
Ci0gIHRlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9nb29n
bGV0ZXN0LW91dHB1dC10ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0X2dv
bGRlbl9saW4udHh0IFwKLSAgdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdC5weSBcCi0gIHRl
c3QvZ3Rlc3RfdGVzdF91dGlscy5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWls
dXJlLXRlc3QucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5IFwK
LSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291
dHB1dF91bml0dGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKLQotIyBD
TWFrZSBzY3JpcHQKLUVYVFJBX0RJU1QgKz0gXAotICBDTWFrZUxpc3RzLnR4dCBcCi0gIGNtYWtl
L2ludGVybmFsX3V0aWxzLmNtYWtlCi0KLSMgTVNWQyBwcm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNU
ICs9IFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbiBcCi0gIG1zdmMvMjAxMC9ndGVzdC1tZC52
Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LnNsbiBcCi0gIG1zdmMvMjAxMC9ndGVzdC52Y3hw
cm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X21haW4tbWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9n
dGVzdF9tYWluLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHBy
b2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ogXAotICBtc3ZjLzIwMTAv
Z3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52
Y3hwcm9qCi0KLSMgeGNvZGUgcHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIHhjb2Rl
L0NvbmZpZy9EZWJ1Z1Byb2plY3QueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvRnJhbWV3b3Jr
VGFyZ2V0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL0dlbmVyYWwueGNjb25maWcgXAotICB4
Y29kZS9Db25maWcvUmVsZWFzZVByb2plY3QueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvU3Rh
dGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL0NvbmZpZy9UZXN0VGFyZ2V0Lnhj
Y29uZmlnIFwKLSAgeGNvZGUvUmVzb3VyY2VzL0luZm8ucGxpc3QgXAotICB4Y29kZS9TY3JpcHRz
L3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2NyaXB0cy92ZXJzaW9uZ2VuZXJhdGUucHkgXAotICB4
Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCi0KLSMgeGNvZGUgc2FtcGxlIGZp
bGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvSW5m
by5wbGlzdCBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL1dpZGdldEZyYW1ld29y
ay54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtT
YW1wbGUvcnVudGVzdHMuc2ggXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRn
ZXQuY2MgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXQuaCBcCi0gIHhj
b2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3dpZGdldF90ZXN0LmNjCi0KLSMgQysrQnVpbGRl
ciBwcm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgY29kZWdlYXIvZ3Rlc3QuY2Jwcm9q
IFwKLSAgY29kZWdlYXIvZ3Rlc3QuZ3JvdXBwcm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3RfYWxsLmNj
IFwKLSAgY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBcCi0gIGNvZGVnZWFyL2d0ZXN0X21haW4uY2Jw
cm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qCi0KLSMgRGlzdHJpYnV0ZSBh
bmQgaW5zdGFsbCBNNCBtYWNybwotbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCi1tNGRh
dGFfREFUQSA9IG00L2d0ZXN0Lm00Ci1FWFRSQV9ESVNUICs9ICQobTRkYXRhX0RBVEEpCi0KLSMg
V2UgZGVmaW5lIHRoZSBnbG9iYWwgQU1fQ1BQRkxBR1MgYXMgZXZlcnl0aGluZyB3ZSBjb21waWxl
IGluY2x1ZGVzIGZyb20gdGhlc2UKLSMgZGlyZWN0b3JpZXMuCi1BTV9DUFBGTEFHUyA9IC1JJChz
cmNkaXIpIC1JJChzcmNkaXIpL2luY2x1ZGUKLQotIyBNb2RpZmllcyBjb21waWxlciBhbmQgbGlu
a2VyIGZsYWdzIGZvciBwdGhyZWFkcyBjb21wYXRpYmlsaXR5LgotaWYgSEFWRV9QVEhSRUFEUwot
ICBBTV9DWFhGTEFHUyA9IEBQVEhSRUFEX0NGTEFHU0AgLURHVEVTVF9IQVNfUFRIUkVBRD0xCi0g
IEFNX0xJQlMgPSBAUFRIUkVBRF9MSUJTQAotZWxzZQotICBBTV9DWFhGTEFHUyA9IC1ER1RFU1Rf
SEFTX1BUSFJFQUQ9MAotZW5kaWYKLQotIyBCdWlsZCBydWxlcyBmb3IgbGlicmFyaWVzLgotbGli
X0xUTElCUkFSSUVTID0gbGliL2xpYmd0ZXN0LmxhIGxpYi9saWJndGVzdF9tYWluLmxhCi0KLWxp
Yl9saWJndGVzdF9sYV9TT1VSQ0VTID0gc3JjL2d0ZXN0LWFsbC5jYwotCi1wa2dpbmNsdWRlX0hF
QURFUlMgPSBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIFwKLSAgaW5jbHVk
ZS9ndGVzdC9ndGVzdC1tZXNzYWdlLmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRl
c3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCBcCi0gIGluY2x1ZGUvZ3Rl
c3QvZ3Rlc3Qtc3BpLmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIFwKLSAg
aW5jbHVkZS9ndGVzdC9ndGVzdC10eXBlZC10ZXN0LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0
LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oIFwKLSAgaW5jbHVkZS9ndGVz
dC9ndGVzdF9wcm9kLmgKLQotcGtnaW5jbHVkZV9pbnRlcm5hbGRpciA9ICQocGtnaW5jbHVkZWRp
cikvaW50ZXJuYWwKLXBrZ2luY2x1ZGVfaW50ZXJuYWxfSEVBREVSUyA9IFwKLSAgaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmggXAotICBpbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LWludGVybmFsLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtl
ZF9wdHIuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5l
cmF0ZWQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIFwK
LSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmggXAotICBpbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC1zdHJpbmcuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCBc
Ci0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmggXAotICBpbmNsdWRl
L2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9jdXN0b20vZ3Rlc3QtcG9ydC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20v
Z3Rlc3QtcHJpbnRlcnMuaAotCi1saWJfbGliZ3Rlc3RfbWFpbl9sYV9TT1VSQ0VTID0gc3JjL2d0
ZXN0X21haW4uY2MKLWxpYl9saWJndGVzdF9tYWluX2xhX0xJQkFERCA9IGxpYi9saWJndGVzdC5s
YQotCi0jIEJ1aWxkIHJ1bGVzIGZvciBzYW1wbGVzIGFuZCB0ZXN0cy4gQXV0b21ha2UncyBuYW1p
bmcgZm9yIHNvbWUgb2YKLSMgdGhlc2UgdmFyaWFibGVzIGlzbid0IHRlcnJpYmx5IG9idmlvdXMs
IHNvIHRoaXMgaXMgYSBicmllZgotIyByZWZlcmVuY2U6Ci0jCi0jIFRFU1RTIC0tIFByb2dyYW1z
IHJ1biBhdXRvbWF0aWNhbGx5IGJ5ICJtYWtlIGNoZWNrIgotIyBjaGVja19QUk9HUkFNUyAtLSBQ
cm9ncmFtcyBidWlsdCBieSAibWFrZSBjaGVjayIgYnV0IG5vdCBuZWNlc3NhcmlseSBydW4KLQot
VEVTVFM9Ci1URVNUU19FTlZJUk9OTUVOVCA9IEdURVNUX1NPVVJDRV9ESVI9IiQoc3JjZGlyKS90
ZXN0IiBcCi0gICAgICAgICAgICAgICAgICAgIEdURVNUX0JVSUxEX0RJUj0iJCh0b3BfYnVpbGRk
aXIpL3Rlc3QiCi1jaGVja19QUk9HUkFNUz0KLQotIyBBIHNpbXBsZSBzYW1wbGUgb24gdXNpbmcg
Z3Rlc3QuCi1URVNUUyArPSBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMv
c2FtcGxlMl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0IFwKLSAgICBz
YW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdCBc
Ci0gICAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTdfdW5p
dHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1w
bGU5X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0Ci1jaGVja19QUk9H
UkFNUyArPSBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlMl91
bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3Nh
bXBsZTRfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdCBcCi0gICAgc2Ft
cGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QgXAot
ICAgIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU5X3VuaXR0
ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0Ci0KLXNhbXBsZXNfc2FtcGxlMV91
bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2Ft
cGxlMS5jYwotc2FtcGxlc19zYW1wbGUxX3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTJfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlMl91bml0
dGVzdC5jYyBzYW1wbGVzL3NhbXBsZTIuY2MKLXNhbXBsZXNfc2FtcGxlMl91bml0dGVzdF9MREFE
RCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGUzX3VuaXR0ZXN0X1NPVVJDRVMgPSBz
YW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlM191bml0dGVzdF9MREFE
RCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1wbGU0X3VuaXR0ZXN0X1NPVVJDRVMgPSBz
YW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QuY2Mgc2FtcGxlcy9zYW1wbGU0LmNjCi1zYW1wbGVzX3Nh
bXBsZTRfdW5pdHRlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlNV91
bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2Ft
cGxlMS5jYwotc2FtcGxlc19zYW1wbGU1X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTZfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlNl91bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZTdfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlN191bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci1zYW1wbGVzX3NhbXBsZThfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlOF91bml0
dGVzdC5jYwotc2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21h
aW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0Lmxh
Ci0KLSMgQWxzbyB2ZXJpZnkgdGhhdCBsaWJndGVzdCB3b3JrcyBieSBpdHNlbGYuCi1zYW1wbGVz
X3NhbXBsZTlfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwot
c2FtcGxlc19zYW1wbGU5X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVz
X3NhbXBsZTEwX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNj
Ci1zYW1wbGVzX3NhbXBsZTEwX3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0LmxhCi0KLSMg
VGhpcyB0ZXN0cyBtb3N0IGNvbnN0cnVjdHMgb2YgZ3Rlc3QgYW5kIHZlcmlmaWVzIHRoYXQgbGli
Z3Rlc3RfbWFpbgotIyBhbmQgbGliZ3Rlc3Qgd29yay4KLVRFU1RTICs9IHRlc3QvZ3Rlc3RfYWxs
X3Rlc3QKLWNoZWNrX1BST0dSQU1TICs9IHRlc3QvZ3Rlc3RfYWxsX3Rlc3QKLXRlc3RfZ3Rlc3Rf
YWxsX3Rlc3RfU09VUkNFUyA9IHRlc3QvZ3Rlc3RfYWxsX3Rlc3QuY2MKLXRlc3RfZ3Rlc3RfYWxs
X3Rlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi0KLSMgVGVzdHMgdGhhdCBmdXNlZCBndGVzdCBmaWxl
cyBjb21waWxlIGFuZCB3b3JrLgotRlVTRURfR1RFU1RfU1JDID0gXAotICBmdXNlZC1zcmMvZ3Rl
c3QvZ3Rlc3QtYWxsLmNjIFwKLSAgZnVzZWQtc3JjL2d0ZXN0L2d0ZXN0LmggXAotICBmdXNlZC1z
cmMvZ3Rlc3QvZ3Rlc3RfbWFpbi5jYwotCi1pZiBIQVZFX1BZVEhPTgotVEVTVFMgKz0gdGVzdC9m
dXNlZF9ndGVzdF90ZXN0Ci1jaGVja19QUk9HUkFNUyArPSB0ZXN0L2Z1c2VkX2d0ZXN0X3Rlc3QK
LXRlc3RfZnVzZWRfZ3Rlc3RfdGVzdF9TT1VSQ0VTID0gJChGVVNFRF9HVEVTVF9TUkMpIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlcy9zYW1wbGUxLmNjIHNhbXBsZXMv
c2FtcGxlMV91bml0dGVzdC5jYwotdGVzdF9mdXNlZF9ndGVzdF90ZXN0X0NQUEZMQUdTID0gLUki
JChzcmNkaXIpL2Z1c2VkLXNyYyIKLQotIyBCdWlsZCBydWxlcyBmb3IgcHV0dGluZyBmdXNlZCBH
b29nbGUgVGVzdCBmaWxlcyBpbnRvIHRoZSBkaXN0cmlidXRpb24KLSMgcGFja2FnZS4gVGhlIHVz
ZXIgY2FuIGFsc28gY3JlYXRlIHRob3NlIGZpbGVzIGJ5IG1hbnVhbGx5IHJ1bm5pbmcKLSMgc2Ny
aXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5LgotJCh0ZXN0X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNF
Uyk6IGZ1c2VkLWd0ZXN0Ci0KLWZ1c2VkLWd0ZXN0OiAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChw
a2dpbmNsdWRlX2ludGVybmFsX0hFQURFUlMpIFwKLSAgICAgICAgICAgICAkKEdURVNUX1NSQykg
c3JjL2d0ZXN0LWFsbC5jYyBzcmMvZ3Rlc3RfbWFpbi5jYyBcCi0gICAgICAgICAgICAgc2NyaXB0
cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5Ci0JbWtkaXIgLXAgIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0J
Y2htb2QgLVIgdSt3ICIkKHNyY2RpcikvZnVzZWQtc3JjIgotCXJtIC1mICIkKHNyY2RpcikvZnVz
ZWQtc3JjL2d0ZXN0L2d0ZXN0LWFsbC5jYyIKLQlybSAtZiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9n
dGVzdC9ndGVzdC5oIgotCSIkKHNyY2Rpcikvc2NyaXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5IiAi
JChzcmNkaXIpL2Z1c2VkLXNyYyIKLQljcCAtZiAiJChzcmNkaXIpL3NyYy9ndGVzdF9tYWluLmNj
IiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9ndGVzdC8iCi0KLW1haW50YWluZXItY2xlYW4tbG9jYWw6
Ci0Jcm0gLXJmICIkKHNyY2RpcikvZnVzZWQtc3JjIgotZW5kaWYKLQotIyBEZWF0aCB0ZXN0cyBt
YXkgcHJvZHVjZSBjb3JlIGR1bXBzIGluIHRoZSBidWlsZCBkaXJlY3RvcnkuIEluIGNhc2UKLSMg
dGhpcyBoYXBwZW5zLCBjbGVhbiB0aGVtIHRvIGtlZXAgZGlzdGNsZWFuY2hlY2sgaGFwcHkuCi1D
TEVBTkZJTEVTID0gY29yZQotCi0jIERpc2FibGVzICdtYWtlIGluc3RhbGwnIGFzIGluc3RhbGxp
bmcgYSBjb21waWxlZCB2ZXJzaW9uIG9mIEdvb2dsZQotIyBUZXN0IGNhbiBsZWFkIHRvIHVuZGVm
aW5lZCBiZWhhdmlvciBkdWUgdG8gdmlvbGF0aW9uIG9mIHRoZQotIyBPbmUtRGVmaW5pdGlvbiBS
dWxlLgotCi1pbnN0YWxsLWV4ZWMtbG9jYWw6Ci0JZWNobyAiJ21ha2UgaW5zdGFsbCcgaXMgZGFu
Z2Vyb3VzIGFuZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBzZWUgUkVBRE1FIGZvciBob3cgdG8g
aW50ZWdyYXRlIEdvb2dsZSBUZXN0IGludG8geW91ciBidWlsZCBzeXN0ZW0uIgotCWZhbHNlCi0K
LWluc3RhbGwtZGF0YS1sb2NhbDoKLQllY2hvICInbWFrZSBpbnN0YWxsJyBpcyBkYW5nZXJvdXMg
YW5kIG5vdCBzdXBwb3J0ZWQuIEluc3RlYWQsIHNlZSBSRUFETUUgZm9yIGhvdyB0byBpbnRlZ3Jh
dGUgR29vZ2xlIFRlc3QgaW50byB5b3VyIGJ1aWxkIHN5c3RlbS4iCi0JZmFsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5XZWJLaXQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9SRUFETUUuV2ViS2l0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
NmUzYmJmZjg5MWMxYjcwMTc1ZmJmNDYxY2FkOTJiYmQyYTMxYzhiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JF
QURNRS5XZWJLaXQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUdUZXN0IHYuMS44LjEK
LQotaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3JlbGVhc2VzL3RhZy9yZWxl
YXNlLTEuOC4xLwotCi0yMDE2LTAxLTAyIFRpbmctV2VpIExhbiAobGFudHc0NEBnbWFpbC5jb20p
Ci0gICAgICBSZW1vdmUgdXNhZ2Ugb2YgZW52aXJvbiBnbG9iYWwgdmFyaWFibGUgdG8gZml4IHRo
ZSBidWlsZCBvbiBGcmVlQlNELgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
UkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvUkVBRE1FLm1kCmluZGV4IGUzMGZl
ODA0NzEyN2JlZTE2ZDJjNzFmMTRiNTA5ZjM3NTcxYWRkNDEuLjcxN2M4ODY3OTBiYWJiZjdjZWI0
MmJlZGNlNDIwOWE2ODFhNTA0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L1JFQURNRS5tZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFETUUubWQKQEAgLTIs
ODAgKzIsNTEgQEAKIAogIyMjIyBTZXR1cAogCi1UbyBidWlsZCBHb29nbGUgVGVzdCBhbmQgeW91
ciB0ZXN0cyB0aGF0IHVzZSBpdCwgeW91IG5lZWQgdG8gdGVsbCB5b3VyIGJ1aWxkCitUbyBidWls
ZCBHb29nbGVUZXN0IGFuZCB5b3VyIHRlc3RzIHRoYXQgdXNlIGl0LCB5b3UgbmVlZCB0byB0ZWxs
IHlvdXIgYnVpbGQKIHN5c3RlbSB3aGVyZSB0byBmaW5kIGl0cyBoZWFkZXJzIGFuZCBzb3VyY2Ug
ZmlsZXMuIFRoZSBleGFjdCB3YXkgdG8gZG8gaXQKIGRlcGVuZHMgb24gd2hpY2ggYnVpbGQgc3lz
dGVtIHlvdSB1c2UsIGFuZCBpcyB1c3VhbGx5IHN0cmFpZ2h0Zm9yd2FyZC4KIAotIyMjIyBCdWls
ZAorIyMjIEJ1aWxkIHdpdGggQ01ha2UKIAotU3VwcG9zZSB5b3UgcHV0IEdvb2dsZSBUZXN0IGlu
IGRpcmVjdG9yeSBgJHtHVEVTVF9ESVJ9YC4gVG8gYnVpbGQgaXQsIGNyZWF0ZSBhCi1saWJyYXJ5
IGJ1aWxkIHRhcmdldCAob3IgYSBwcm9qZWN0IGFzIGNhbGxlZCBieSBWaXN1YWwgU3R1ZGlvIGFu
ZCBYY29kZSkgdG8KLWNvbXBpbGUKLQotICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtYWxsLmNj
Ci0KLXdpdGggYCR7R1RFU1RfRElSfS9pbmNsdWRlYCBpbiB0aGUgc3lzdGVtIGhlYWRlciBzZWFy
Y2ggcGF0aCBhbmQgYCR7R1RFU1RfRElSfWAKLWluIHRoZSBub3JtYWwgaGVhZGVyIHNlYXJjaCBw
YXRoLiBBc3N1bWluZyBhIExpbnV4LWxpa2Ugc3lzdGVtIGFuZCBnY2MsCi1zb21ldGhpbmcgbGlr
ZSB0aGUgZm9sbG93aW5nIHdpbGwgZG86Ci0KLSAgICBnKysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9
L2luY2x1ZGUgLUkke0dURVNUX0RJUn0gXAotICAgICAgICAtcHRocmVhZCAtYyAke0dURVNUX0RJ
Un0vc3JjL2d0ZXN0LWFsbC5jYwotICAgIGFyIC1ydiBsaWJndGVzdC5hIGd0ZXN0LWFsbC5vCi0K
LShXZSBuZWVkIGAtcHRocmVhZGAgYXMgR29vZ2xlIFRlc3QgdXNlcyB0aHJlYWRzLikKLQotTmV4
dCwgeW91IHNob3VsZCBjb21waWxlIHlvdXIgdGVzdCBzb3VyY2UgZmlsZSB3aXRoIGAke0dURVNU
X0RJUn0vaW5jbHVkZWAgaW4KLXRoZSBzeXN0ZW0gaGVhZGVyIHNlYXJjaCBwYXRoLCBhbmQgbGlu
ayBpdCB3aXRoIGd0ZXN0IGFuZCBhbnkgb3RoZXIgbmVjZXNzYXJ5Ci1saWJyYXJpZXM6Ci0KLSAg
ICBnKysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9L2luY2x1ZGUgLXB0aHJlYWQgcGF0aC90by95b3Vy
X3Rlc3QuY2MgbGliZ3Rlc3QuYSBcCi0gICAgICAgIC1vIHlvdXJfdGVzdAotCi1BcyBhbiBleGFt
cGxlLCB0aGUgbWFrZS8gZGlyZWN0b3J5IGNvbnRhaW5zIGEgTWFrZWZpbGUgdGhhdCB5b3UgY2Fu
IHVzZSB0byBidWlsZAotR29vZ2xlIFRlc3Qgb24gc3lzdGVtcyB3aGVyZSBHTlUgbWFrZSBpcyBh
dmFpbGFibGUgKGUuZy4gTGludXgsIE1hYyBPUyBYLCBhbmQKLUN5Z3dpbikuIEl0IGRvZXNuJ3Qg
dHJ5IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3Mgb3duIHRlc3RzLiBJbnN0ZWFkLCBpdCBqdXN0Ci1i
dWlsZHMgdGhlIEdvb2dsZSBUZXN0IGxpYnJhcnkgYW5kIGEgc2FtcGxlIHRlc3QuIFlvdSBjYW4g
dXNlIGl0IGFzIGEgc3RhcnRpbmcKLXBvaW50IGZvciB5b3VyIG93biBidWlsZCBzY3JpcHQuCi0K
LUlmIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFyZSBjb3JyZWN0IGZvciB5b3VyIGVudmlyb25tZW50
LCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCi1zaG91bGQgc3VjY2VlZDoKLQotICAgIGNkICR7R1RF
U1RfRElSfS9tYWtlCi0gICAgbWFrZQotICAgIC4vc2FtcGxlMV91bml0dGVzdAotCi1JZiB5b3Ug
c2VlIGVycm9ycywgdHJ5IHRvIHR3ZWFrIHRoZSBjb250ZW50cyBvZiBgbWFrZS9NYWtlZmlsZWAg
dG8gbWFrZSB0aGVtIGdvCi1hd2F5LiBUaGVyZSBhcmUgaW5zdHJ1Y3Rpb25zIGluIGBtYWtlL01h
a2VmaWxlYCBvbiBob3cgdG8gZG8gaXQuCi0KLSMjIyBVc2luZyBDTWFrZQotCi1Hb29nbGUgVGVz
dCBjb21lcyB3aXRoIGEgQ01ha2UgYnVpbGQgc2NyaXB0ICgKLVtDTWFrZUxpc3RzLnR4dF0oaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVyL0NNYWtlTGlzdHMu
dHh0KSkKK0dvb2dsZVRlc3QgY29tZXMgd2l0aCBhIENNYWtlIGJ1aWxkIHNjcmlwdAorKFtDTWFr
ZUxpc3RzLnR4dF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFz
dGVyL0NNYWtlTGlzdHMudHh0KSkKIHRoYXQgY2FuIGJlIHVzZWQgb24gYSB3aWRlIHJhbmdlIG9m
IHBsYXRmb3JtcyAoIkMiIHN0YW5kcyBmb3IgY3Jvc3MtcGxhdGZvcm0uKS4KIElmIHlvdSBkb24n
dCBoYXZlIENNYWtlIGluc3RhbGxlZCBhbHJlYWR5LCB5b3UgY2FuIGRvd25sb2FkIGl0IGZvciBm
cmVlIGZyb20KIDxodHRwOi8vd3d3LmNtYWtlLm9yZy8+LgogCiBDTWFrZSB3b3JrcyBieSBnZW5l
cmF0aW5nIG5hdGl2ZSBtYWtlZmlsZXMgb3IgYnVpbGQgcHJvamVjdHMgdGhhdCBjYW4gYmUgdXNl
ZCBpbgotdGhlIGNvbXBpbGVyIGVudmlyb25tZW50IG9mIHlvdXIgY2hvaWNlLiBZb3UgY2FuIGVp
dGhlciBidWlsZCBHb29nbGUgVGVzdCBhcyBhCit0aGUgY29tcGlsZXIgZW52aXJvbm1lbnQgb2Yg
eW91ciBjaG9pY2UuIFlvdSBjYW4gZWl0aGVyIGJ1aWxkIEdvb2dsZVRlc3QgYXMgYQogc3RhbmRh
bG9uZSBwcm9qZWN0IG9yIGl0IGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhbiBleGlzdGluZyBD
TWFrZSBidWlsZCBmb3IKIGFub3RoZXIgcHJvamVjdC4KIAogIyMjIyBTdGFuZGFsb25lIENNYWtl
IFByb2plY3QKIAotV2hlbiBidWlsZGluZyBHb29nbGUgVGVzdCBhcyBhIHN0YW5kYWxvbmUgcHJv
amVjdCwgdGhlIHR5cGljYWwgd29ya2Zsb3cgc3RhcnRzCi13aXRoOgorV2hlbiBidWlsZGluZyBH
b29nbGVUZXN0IGFzIGEgc3RhbmRhbG9uZSBwcm9qZWN0LCB0aGUgdHlwaWNhbCB3b3JrZmxvdyBz
dGFydHMKK3dpdGgKIAotICAgIG1rZGlyIG15YnVpbGQgICAgICAgIyBDcmVhdGUgYSBkaXJlY3Rv
cnkgdG8gaG9sZCB0aGUgYnVpbGQgb3V0cHV0LgotICAgIGNkIG15YnVpbGQKLSAgICBjbWFrZSAk
e0dURVNUX0RJUn0gICMgR2VuZXJhdGUgbmF0aXZlIGJ1aWxkIHNjcmlwdHMuCitgYGAKK2dpdCBj
bG9uZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QuZ2l0IC1iIHJlbGVhc2Ut
MS4xMC4wCitjZCBnb29nbGV0ZXN0ICAgICAgICAjIE1haW4gZGlyZWN0b3J5IG9mIHRoZSBjbG9u
ZWQgcmVwb3NpdG9yeS4KK21rZGlyIGJ1aWxkICAgICAgICAgICMgQ3JlYXRlIGEgZGlyZWN0b3J5
IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KK2NkIGJ1aWxkCitjbWFrZSAuLiAgICAgICAgICAg
ICAjIEdlbmVyYXRlIG5hdGl2ZSBidWlsZCBzY3JpcHRzIGZvciBHb29nbGVUZXN0LgorYGBgCiAK
LUlmIHlvdSB3YW50IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3Mgc2FtcGxlcywgeW91IHNob3VsZCBy
ZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQKLXdpdGgKK1RoZSBhYm92ZSBjb21tYW5kIGFsc28gaW5j
bHVkZXMgR29vZ2xlTW9jayBieSBkZWZhdWx0LiBBbmQgc28sIGlmIHlvdSB3YW50IHRvCitidWls
ZCBvbmx5IEdvb2dsZVRlc3QsIHlvdSBzaG91bGQgcmVwbGFjZSB0aGUgbGFzdCBjb21tYW5kIHdp
dGgKIAotICAgIGNtYWtlIC1EZ3Rlc3RfYnVpbGRfc2FtcGxlcz1PTiAke0dURVNUX0RJUn0KK2Bg
YAorY21ha2UgLi4gLURCVUlMRF9HTU9DSz1PRkYKK2BgYAogCiBJZiB5b3UgYXJlIG9uIGEgXCpu
aXggc3lzdGVtLCB5b3Ugc2hvdWxkIG5vdyBzZWUgYSBNYWtlZmlsZSBpbiB0aGUgY3VycmVudAot
ZGlyZWN0b3J5LiBKdXN0IHR5cGUgJ21ha2UnIHRvIGJ1aWxkIGd0ZXN0LgorZGlyZWN0b3J5LiBK
dXN0IHR5cGUgYG1ha2VgIHRvIGJ1aWxkIEdvb2dsZVRlc3QuIEFuZCB0aGVuIHlvdSBjYW4gc2lt
cGx5IGluc3RhbGwKK0dvb2dsZVRlc3QgaWYgeW91IGFyZSBhIHN5c3RlbSBhZG1pbmlzdHJhdG9y
LgorCitgYGAKK21ha2UKK3N1ZG8gbWFrZSBpbnN0YWxsICAgICMgSW5zdGFsbCBpbiAvdXNyL2xv
Y2FsLyBieSBkZWZhdWx0CitgYGAKIAogSWYgeW91IHVzZSBXaW5kb3dzIGFuZCBoYXZlIFZpc3Vh
bCBTdHVkaW8gaW5zdGFsbGVkLCBhIGBndGVzdC5zbG5gIGZpbGUgYW5kCiBzZXZlcmFsIGAudmNw
cm9qYCBmaWxlcyB3aWxsIGJlIGNyZWF0ZWQuIFlvdSBjYW4gdGhlbiBidWlsZCB0aGVtIHVzaW5n
IFZpc3VhbApAQCAtODUsMTMgKzU2LDE5IEBAIE9uIE1hYyBPUyBYIHdpdGggWGNvZGUgaW5zdGFs
bGVkLCBhIGAueGNvZGVwcm9qYCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkLgogCiAjIyMjIEluY29y
cG9yYXRpbmcgSW50byBBbiBFeGlzdGluZyBDTWFrZSBQcm9qZWN0CiAKLUlmIHlvdSB3YW50IHRv
IHVzZSBndGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxyZWFkeSB1c2VzIENNYWtlLCB0aGVuIGEg
bW9yZQotcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBidWlsZCBndGVzdCBhcyBw
YXJ0IG9mIHRoYXQgcHJvamVjdCBkaXJlY3RseS4KLVRoaXMgaXMgZG9uZSBieSBtYWtpbmcgdGhl
IEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgYXZhaWxhYmxlIHRvIHRoZSBtYWluIGJ1aWxkCi1hbmQg
YWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MgYGFkZF9zdWJkaXJlY3RvcnkoKWAgY29tbWFuZC4gVGhp
cyBoYXMgdGhlCi1zaWduaWZpY2FudCBhZHZhbnRhZ2UgdGhhdCB0aGUgc2FtZSBjb21waWxlciBh
bmQgbGlua2VyIHNldHRpbmdzIGFyZSB1c2VkCi1iZXR3ZWVuIGd0ZXN0IGFuZCB0aGUgcmVzdCBv
ZiB5b3VyIHByb2plY3QsIHNvIGlzc3VlcyBhc3NvY2lhdGVkIHdpdGggdXNpbmcKLWluY29tcGF0
aWJsZSBsaWJyYXJpZXMgKGVnIGRlYnVnL3JlbGVhc2UpLCBldGMuIGFyZSBhdm9pZGVkLiBUaGlz
IGlzCitJZiB5b3Ugd2FudCB0byB1c2UgR29vZ2xlVGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxy
ZWFkeSB1c2VzIENNYWtlLCB0aGUgZWFzaWVzdAord2F5IGlzIHRvIGdldCBpbnN0YWxsZWQgbGli
cmFyaWVzIGFuZCBoZWFkZXJzLgorCisqICAgSW1wb3J0IEdvb2dsZVRlc3QgYnkgdXNpbmcgYGZp
bmRfcGFja2FnZWAgKG9yIGBwa2dfY2hlY2tfbW9kdWxlc2ApLiBGb3IKKyAgICBleGFtcGxlLCBp
ZiBgZmluZF9wYWNrYWdlKEdUZXN0IENPTkZJRyBSRVFVSVJFRClgIGlzIHN1Y2NlZWQsIHlvdSBj
YW4gdXNlCisgICAgdGhlIGxpYnJhcmllcyBhcyBgR1Rlc3Q6Omd0ZXN0YCwgYEdUZXN0OjpnbW9j
a2AuCisKK0FuZCBhIG1vcmUgcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBidWls
ZCBHb29nbGVUZXN0IGFzIHBhcnQgb2YgdGhhdAorcHJvamVjdCBkaXJlY3RseS4gVGhpcyBpcyBk
b25lIGJ5IG1ha2luZyB0aGUgR29vZ2xlVGVzdCBzb3VyY2UgY29kZSBhdmFpbGFibGUgdG8KK3Ro
ZSBtYWluIGJ1aWxkIGFuZCBhZGRpbmcgaXQgdXNpbmcgQ01ha2UncyBgYWRkX3N1YmRpcmVjdG9y
eSgpYCBjb21tYW5kLiBUaGlzCitoYXMgdGhlIHNpZ25pZmljYW50IGFkdmFudGFnZSB0aGF0IHRo
ZSBzYW1lIGNvbXBpbGVyIGFuZCBsaW5rZXIgc2V0dGluZ3MgYXJlCit1c2VkIGJldHdlZW4gR29v
Z2xlVGVzdCBhbmQgdGhlIHJlc3Qgb2YgeW91ciBwcm9qZWN0LCBzbyBpc3N1ZXMgYXNzb2NpYXRl
ZCB3aXRoCit1c2luZyBpbmNvbXBhdGlibGUgbGlicmFyaWVzIChlZyBkZWJ1Zy9yZWxlYXNlKSwg
ZXRjLiBhcmUgYXZvaWRlZC4gVGhpcyBpcwogcGFydGljdWxhcmx5IHVzZWZ1bCBvbiBXaW5kb3dz
LiBNYWtpbmcgR29vZ2xlVGVzdCdzIHNvdXJjZSBjb2RlIGF2YWlsYWJsZSB0byB0aGUKIG1haW4g
YnVpbGQgY2FuIGJlIGRvbmUgYSBmZXcgZGlmZmVyZW50IHdheXM6CiAKQEAgLTExNSw2MCArOTIs
NTcgQEAgcHVsbGVkIGludG8gdGhlIG1haW4gYnVpbGQgd2l0aCBgYWRkX3N1YmRpcmVjdG9yeSgp
YC4gRm9yIGV4YW1wbGU6CiAKIE5ldyBmaWxlIGBDTWFrZUxpc3RzLnR4dC5pbmA6CiAKLSAgICBj
bWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44LjIpCitgYGBjbWFrZQorY21ha2VfbWlu
aW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOC4xMikKIAotICAgIHByb2plY3QoZ29vZ2xldGVzdC1k
b3dubG9hZCBOT05FKQorcHJvamVjdChnb29nbGV0ZXN0LWRvd25sb2FkIE5PTkUpCiAKLSAgICBp
bmNsdWRlKEV4dGVybmFsUHJvamVjdCkKLSAgICBFeHRlcm5hbFByb2plY3RfQWRkKGdvb2dsZXRl
c3QKLSAgICAgIEdJVF9SRVBPU0lUT1JZICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29v
Z2xldGVzdC5naXQKLSAgICAgIEdJVF9UQUcgICAgICAgICAgIG1hc3RlcgotICAgICAgU09VUkNF
X0RJUiAgICAgICAgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1zcmMiCi0gICAgICBC
SU5BUllfRElSICAgICAgICAiJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkIgot
ICAgICAgQ09ORklHVVJFX0NPTU1BTkQgIiIKLSAgICAgIEJVSUxEX0NPTU1BTkQgICAgICIiCi0g
ICAgICBJTlNUQUxMX0NPTU1BTkQgICAiIgotICAgICAgVEVTVF9DT01NQU5EICAgICAgIiIKLSAg
ICApCitpbmNsdWRlKEV4dGVybmFsUHJvamVjdCkKK0V4dGVybmFsUHJvamVjdF9BZGQoZ29vZ2xl
dGVzdAorICBHSVRfUkVQT1NJVE9SWSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2ds
ZXRlc3QuZ2l0CisgIEdJVF9UQUcgICAgICAgICAgIG1hc3RlcgorICBTT1VSQ0VfRElSICAgICAg
ICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qtc3JjIgorICBCSU5BUllf
RElSICAgICAgICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3QtYnVpbGQi
CisgIENPTkZJR1VSRV9DT01NQU5EICIiCisgIEJVSUxEX0NPTU1BTkQgICAgICIiCisgIElOU1RB
TExfQ09NTUFORCAgICIiCisgIFRFU1RfQ09NTUFORCAgICAgICIiCispCitgYGAKIAogRXhpc3Rp
bmcgYnVpbGQncyBgQ01ha2VMaXN0cy50eHRgOgogCi0gICAgIyBEb3dubG9hZCBhbmQgdW5wYWNr
IGdvb2dsZXRlc3QgYXQgY29uZmlndXJlIHRpbWUKLSAgICBjb25maWd1cmVfZmlsZShDTWFrZUxp
c3RzLnR4dC5pbiBnb29nbGV0ZXN0LWRvd25sb2FkL0NNYWtlTGlzdHMudHh0KQotICAgIGV4ZWN1
dGVfcHJvY2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUcgIiR7Q01BS0VfR0VORVJBVE9S
fSIgLgotICAgICAgUkVTVUxUX1ZBUklBQkxFIHJlc3VsdAotICAgICAgV09SS0lOR19ESVJFQ1RP
UlkgJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWRvd25sb2FkICkKLSAgICBpZihyZXN1
bHQpCi0gICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTWFrZSBzdGVwIGZvciBnb29nbGV0ZXN0
IGZhaWxlZDogJHtyZXN1bHR9IikKLSAgICBlbmRpZigpCi0gICAgZXhlY3V0ZV9wcm9jZXNzKENP
TU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtLWJ1aWxkIC4KLSAgICAgIFJFU1VMVF9WQVJJQUJMRSBy
ZXN1bHQKLSAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xl
dGVzdC1kb3dubG9hZCApCi0gICAgaWYocmVzdWx0KQotICAgICAgbWVzc2FnZShGQVRBTF9FUlJP
UiAiQnVpbGQgc3RlcCBmb3IgZ29vZ2xldGVzdCBmYWlsZWQ6ICR7cmVzdWx0fSIpCi0gICAgZW5k
aWYoKQotCi0gICAgIyBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIHBhcmVudCBwcm9qZWN0J3MgY29t
cGlsZXIvbGlua2VyCi0gICAgIyBzZXR0aW5ncyBvbiBXaW5kb3dzCi0gICAgc2V0KGd0ZXN0X2Zv
cmNlX3NoYXJlZF9jcnQgT04gQ0FDSEUgQk9PTCAiIiBGT1JDRSkKLQotICAgICMgQWRkIGdvb2ds
ZXRlc3QgZGlyZWN0bHkgdG8gb3VyIGJ1aWxkLiBUaGlzIGRlZmluZXMKLSAgICAjIHRoZSBndGVz
dCBhbmQgZ3Rlc3RfbWFpbiB0YXJnZXRzLgotICAgIGFkZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9C
SU5BUllfRElSfS9nb29nbGV0ZXN0LXNyYwotICAgICAgICAgICAgICAgICAgICAgJHtDTUFLRV9C
SU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkCi0gICAgICAgICAgICAgICAgICAgICBFWENMVURF
X0ZST01fQUxMKQotCi0gICAgIyBUaGUgZ3Rlc3QvZ3Rlc3RfbWFpbiB0YXJnZXRzIGNhcnJ5IGhl
YWRlciBzZWFyY2ggcGF0aAotICAgICMgZGVwZW5kZW5jaWVzIGF1dG9tYXRpY2FsbHkgd2hlbiB1
c2luZyBDTWFrZSAyLjguMTEgb3IKLSAgICAjIGxhdGVyLiBPdGhlcndpc2Ugd2UgaGF2ZSB0byBh
ZGQgdGhlbSBoZXJlIG91cnNlbHZlcy4KLSAgICBpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xF
U1MgMi44LjExKQotICAgICAgaW5jbHVkZV9kaXJlY3RvcmllcygiJHtndGVzdF9TT1VSQ0VfRElS
fS9pbmNsdWRlIikKLSAgICBlbmRpZigpCi0KLSAgICAjIE5vdyBzaW1wbHkgbGluayBhZ2FpbnN0
IGd0ZXN0IG9yIGd0ZXN0X21haW4gYXMgbmVlZGVkLiBFZwotICAgIGFkZF9leGVjdXRhYmxlKGV4
YW1wbGUgZXhhbXBsZS5jcHApCi0gICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4YW1wbGUgZ3Rl
c3RfbWFpbikKLSAgICBhZGRfdGVzdChOQU1FIGV4YW1wbGVfdGVzdCBDT01NQU5EIGV4YW1wbGUp
CitgYGBjbWFrZQorIyBEb3dubG9hZCBhbmQgdW5wYWNrIGdvb2dsZXRlc3QgYXQgY29uZmlndXJl
IHRpbWUKK2NvbmZpZ3VyZV9maWxlKENNYWtlTGlzdHMudHh0LmluIGdvb2dsZXRlc3QtZG93bmxv
YWQvQ01ha2VMaXN0cy50eHQpCitleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0NNQUtFX0NPTU1B
TkR9IC1HICIke0NNQUtFX0dFTkVSQVRPUn0iIC4KKyAgUkVTVUxUX1ZBUklBQkxFIHJlc3VsdAor
ICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZ29vZ2xldGVz
dC1kb3dubG9hZCApCitpZihyZXN1bHQpCisgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNYWtlIHN0
ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQorZW5kaWYoKQorZXhlY3V0ZV9w
cm9jZXNzKENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtLWJ1aWxkIC4KKyAgUkVTVUxUX1ZBUklB
QkxFIHJlc3VsdAorICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJ
Un0vZ29vZ2xldGVzdC1kb3dubG9hZCApCitpZihyZXN1bHQpCisgIG1lc3NhZ2UoRkFUQUxfRVJS
T1IgIkJ1aWxkIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQorZW5kaWYo
KQorCisjIFByZXZlbnQgb3ZlcnJpZGluZyB0aGUgcGFyZW50IHByb2plY3QncyBjb21waWxlci9s
aW5rZXIKKyMgc2V0dGluZ3Mgb24gV2luZG93cworc2V0KGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQg
T04gQ0FDSEUgQk9PTCAiIiBGT1JDRSkKKworIyBBZGQgZ29vZ2xldGVzdCBkaXJlY3RseSB0byBv
dXIgYnVpbGQuIFRoaXMgZGVmaW5lcworIyB0aGUgZ3Rlc3QgYW5kIGd0ZXN0X21haW4gdGFyZ2V0
cy4KK2FkZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRl
c3Qtc3JjCisgICAgICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29n
bGV0ZXN0LWJ1aWxkCisgICAgICAgICAgICAgICAgIEVYQ0xVREVfRlJPTV9BTEwpCisKKyMgTm93
IHNpbXBseSBsaW5rIGFnYWluc3QgZ3Rlc3Qgb3IgZ3Rlc3RfbWFpbiBhcyBuZWVkZWQuIEVnCith
ZGRfZXhlY3V0YWJsZShleGFtcGxlIGV4YW1wbGUuY3BwKQordGFyZ2V0X2xpbmtfbGlicmFyaWVz
KGV4YW1wbGUgZ3Rlc3RfbWFpbikKK2FkZF90ZXN0KE5BTUUgZXhhbXBsZV90ZXN0IENPTU1BTkQg
ZXhhbXBsZSkKK2BgYAogCiBOb3RlIHRoYXQgdGhpcyBhcHByb2FjaCByZXF1aXJlcyBDTWFrZSAy
LjguMiBvciBsYXRlciBkdWUgdG8gaXRzIHVzZSBvZiB0aGUKIGBFeHRlcm5hbFByb2plY3RfQWRk
KClgIGNvbW1hbmQuIFRoZSBhYm92ZSB0ZWNobmlxdWUgaXMgZGlzY3Vzc2VkIGluIG1vcmUgZGV0
YWlsCkBAIC0xNzgsMTA0ICsxNTIsNDQgQEAgYWxzbyBjb250YWlucyBhIGxpbmsgdG8gYSBmdWxs
eSBnZW5lcmFsaXplZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdGVjaG5pcXVlLgogIyMjIyMgVmlz
dWFsIFN0dWRpbyBEeW5hbWljIHZzIFN0YXRpYyBSdW50aW1lcwogCiBCeSBkZWZhdWx0LCBuZXcg
VmlzdWFsIFN0dWRpbyBwcm9qZWN0cyBsaW5rIHRoZSBDIHJ1bnRpbWVzIGR5bmFtaWNhbGx5IGJ1
dAotR29vZ2xlIFRlc3QgbGlua3MgdGhlbSBzdGF0aWNhbGx5LiBUaGlzIHdpbGwgZ2VuZXJhdGUg
YW4gZXJyb3IgdGhhdCBsb29rcworR29vZ2xlVGVzdCBsaW5rcyB0aGVtIHN0YXRpY2FsbHkuIFRo
aXMgd2lsbCBnZW5lcmF0ZSBhbiBlcnJvciB0aGF0IGxvb2tzCiBzb21ldGhpbmcgbGlrZSB0aGUg
Zm9sbG93aW5nOiBndGVzdC5saWIoZ3Rlc3QtYWxsLm9iaikgOiBlcnJvciBMTksyMDM4OiBtaXNt
YXRjaAogZGV0ZWN0ZWQgZm9yICdSdW50aW1lTGlicmFyeSc6IHZhbHVlICdNVGRfU3RhdGljRGVi
dWcnIGRvZXNuJ3QgbWF0Y2ggdmFsdWUKICdNRGRfRHluYW1pY0RlYnVnJyBpbiBtYWluLm9iagog
Ci1Hb29nbGUgVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtlIG9wdGlvbiBmb3IgdGhpczogYGd0ZXN0
X2ZvcmNlX3NoYXJlZF9jcnRgCitHb29nbGVUZXN0IGFscmVhZHkgaGFzIGEgQ01ha2Ugb3B0aW9u
IGZvciB0aGlzOiBgZ3Rlc3RfZm9yY2Vfc2hhcmVkX2NydGAKIAogRW5hYmxpbmcgdGhpcyBvcHRp
b24gd2lsbCBtYWtlIGd0ZXN0IGxpbmsgdGhlIHJ1bnRpbWVzIGR5bmFtaWNhbGx5IHRvbywgYW5k
CiBtYXRjaCB0aGUgcHJvamVjdCBpbiB3aGljaCBpdCBpcyBpbmNsdWRlZC4KIAotIyMjIExlZ2Fj
eSBCdWlsZCBTY3JpcHRzCisjIyMjIEMrKyBTdGFuZGFyZCBWZXJzaW9uCiAKLUJlZm9yZSBzZXR0
bGluZyBvbiBDTWFrZSwgd2UgaGF2ZSBiZWVuIHByb3ZpZGluZyBoYW5kLW1haW50YWluZWQgYnVp
bGQKLXByb2plY3RzL3NjcmlwdHMgZm9yIFZpc3VhbCBTdHVkaW8sIFhjb2RlLCBhbmQgQXV0b3Rv
b2xzLiBXaGlsZSB3ZSBjb250aW51ZSB0bwotcHJvdmlkZSB0aGVtIGZvciBjb252ZW5pZW5jZSwg
dGhleSBhcmUgbm90IGFjdGl2ZWx5IG1haW50YWluZWQgYW55IG1vcmUuIFdlCi1oaWdobHkgcmVj
b21tZW5kIHRoYXQgeW91IGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBhYm92ZSBzZWN0
aW9ucyB0bwotaW50ZWdyYXRlIEdvb2dsZSBUZXN0IHdpdGggeW91ciBleGlzdGluZyBidWlsZCBz
eXN0ZW0uCitBbiBlbnZpcm9ubWVudCB0aGF0IHN1cHBvcnRzIEMrKzExIGlzIHJlcXVpcmVkIGlu
IG9yZGVyIHRvIHN1Y2Nlc3NmdWxseSBidWlsZAorR29vZ2xlVGVzdC4gT25lIHdheSB0byBlbnN1
cmUgdGhpcyBpcyB0byBzcGVjaWZ5IHRoZSBzdGFuZGFyZCBpbiB0aGUgdG9wLWxldmVsCitwcm9q
ZWN0LCBmb3IgZXhhbXBsZSBieSB1c2luZyB0aGUgYHNldChDTUFLRV9DWFhfU1RBTkRBUkQgMTEp
YCBjb21tYW5kLiBJZiB0aGlzCitpcyBub3QgZmVhc2libGUsIGZvciBleGFtcGxlIGluIGEgQyBw
cm9qZWN0IHVzaW5nIEdvb2dsZVRlc3QgZm9yIHZhbGlkYXRpb24sCit0aGVuIGl0IGNhbiBiZSBz
cGVjaWZpZWQgYnkgYWRkaW5nIGl0IHRvIHRoZSBvcHRpb25zIGZvciBjbWFrZSB2aWEgdGhlCitg
RENNQUtFX0NYWF9GTEFHU2Agb3B0aW9uLgogCi1JZiB5b3Ugc3RpbGwgbmVlZCB0byB1c2UgdGhl
IGxlZ2FjeSBidWlsZCBzY3JpcHRzLCBoZXJlJ3MgaG93OgorIyMjIFR3ZWFraW5nIEdvb2dsZVRl
c3QKIAotVGhlIG1zdmNcIGZvbGRlciBjb250YWlucyB0d28gc29sdXRpb25zIHdpdGggVmlzdWFs
IEMrKyBwcm9qZWN0cy4gT3BlbiB0aGUKLWBndGVzdC5zbG5gIG9yIGBndGVzdC1tZC5zbG5gIGZp
bGUgdXNpbmcgVmlzdWFsIFN0dWRpbywgYW5kIHlvdSBhcmUgcmVhZHkgdG8KLWJ1aWxkIEdvb2ds
ZSBUZXN0IHRoZSBzYW1lIHdheSB5b3UgYnVpbGQgYW55IFZpc3VhbCBTdHVkaW8gcHJvamVjdC4g
RmlsZXMgdGhhdAotaGF2ZSBuYW1lcyBlbmRpbmcgd2l0aCAtbWQgdXNlIERMTCB2ZXJzaW9ucyBv
ZiBNaWNyb3NvZnQgcnVudGltZSBsaWJyYXJpZXMgKHRoZQotL01EIG9yIHRoZSAvTURkIGNvbXBp
bGVyIG9wdGlvbikuIEZpbGVzIHdpdGhvdXQgdGhhdCBzdWZmaXggdXNlIHN0YXRpYyB2ZXJzaW9u
cwotb2YgdGhlIHJ1bnRpbWUgbGlicmFyaWVzICh0aGUgL01UIG9yIHRoZSAvTVRkIG9wdGlvbiku
IFBsZWFzZSBub3RlIHRoYXQgb25lIG11c3QKLXVzZSB0aGUgc2FtZSBvcHRpb24gdG8gY29tcGls
ZSBib3RoIGd0ZXN0IGFuZCB0aGUgdGVzdCBjb2RlLiBJZiB5b3UgdXNlIFZpc3VhbAotU3R1ZGlv
IDIwMDUgb3IgYWJvdmUsIHdlIHJlY29tbWVuZCB0aGUgLW1kIHZlcnNpb24gYXMgL01EIGlzIHRo
ZSBkZWZhdWx0IGZvciBuZXcKLXByb2plY3RzIGluIHRoZXNlIHZlcnNpb25zIG9mIFZpc3VhbCBT
dHVkaW8uCi0KLU9uIE1hYyBPUyBYLCBvcGVuIHRoZSBgZ3Rlc3QueGNvZGVwcm9qYCBpbiB0aGUg
YHhjb2RlL2AgZm9sZGVyIHVzaW5nIFhjb2RlLgotQnVpbGQgdGhlICJndGVzdCIgdGFyZ2V0LiBU
aGUgdW5pdmVyc2FsIGJpbmFyeSBmcmFtZXdvcmsgd2lsbCBlbmQgdXAgaW4geW91cgotc2VsZWN0
ZWQgYnVpbGQgZGlyZWN0b3J5IChzZWxlY3RlZCBpbiB0aGUgWGNvZGUgIlByZWZlcmVuY2VzLi4u
IiAtPiAiQnVpbGRpbmciCi1wYW5lIGFuZCBkZWZhdWx0cyB0byB4Y29kZS9idWlsZCkuIEFsdGVy
bmF0aXZlbHksIGF0IHRoZSBjb21tYW5kIGxpbmUsIGVudGVyOgotCi0gICAgeGNvZGVidWlsZAot
Ci1UaGlzIHdpbGwgYnVpbGQgdGhlICJSZWxlYXNlIiBjb25maWd1cmF0aW9uIG9mIGd0ZXN0LmZy
YW1ld29yayBpbiB5b3VyIGRlZmF1bHQKLWJ1aWxkIGxvY2F0aW9uLiBTZWUgdGhlICJ4Y29kZWJ1
aWxkIiBtYW4gcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotYnVpbGRpbmcgZGlmZmVy
ZW50IGNvbmZpZ3VyYXRpb25zIGFuZCBidWlsZGluZyBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLgot
Ci1JZiB5b3Ugd2lzaCB0byB1c2UgdGhlIEdvb2dsZSBUZXN0IFhjb2RlIHByb2plY3Qgd2l0aCBY
Y29kZSA0LnggYW5kIGFib3ZlLCB5b3UKLW5lZWQgdG8gZWl0aGVyOgotCi0qICAgdXBkYXRlIHRo
ZSBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHhjb2RlL0NvbmZpZy9HZW5lcmFsLnhjb25m
aWcuCi0gICAgQ29tbWVudCBvcHRpb25zIGBTREtST09UYCwgYE1BQ09TX0RFUExPWU1FTlRfVEFS
R0VUYCwgYW5kIGBHQ0NfVkVSU0lPTmAuIElmCi0gICAgeW91IGNob29zZSB0aGlzIHJvdXRlIHlv
dSBsb3NlIHRoZSBhYmlsaXR5IHRvIHRhcmdldCBlYXJsaWVyIHZlcnNpb25zIG9mCi0gICAgTWFj
T1MgWC4KLSogICBJbnN0YWxsIGFuIFNESyBmb3IgYW4gZWFybGllciB2ZXJzaW9uLiBUaGlzIGRv
ZXNuJ3QgYXBwZWFyIHRvIGJlIHN1cHBvcnRlZAotICAgIGJ5IEFwcGxlLCBidXQgaGFzIGJlZW4g
cmVwb3J0ZWQgdG8gd29yawotICAgIChodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25z
LzUzNzg1MTgpLgotCi0jIyMgVHdlYWtpbmcgR29vZ2xlIFRlc3QKLQotR29vZ2xlIFRlc3QgY2Fu
IGJlIHVzZWQgaW4gZGl2ZXJzZSBlbnZpcm9ubWVudHMuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRp
b24gbWF5CitHb29nbGVUZXN0IGNhbiBiZSB1c2VkIGluIGRpdmVyc2UgZW52aXJvbm1lbnRzLiBU
aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG1heQogbm90IHdvcmsgKG9yIG1heSBub3Qgd29yayB3
ZWxsKSBvdXQgb2YgdGhlIGJveCBpbiBzb21lIGVudmlyb25tZW50cy4gSG93ZXZlciwKLXlvdSBj
YW4gZWFzaWx5IHR3ZWFrIEdvb2dsZSBUZXN0IGJ5IGRlZmluaW5nIGNvbnRyb2wgbWFjcm9zIG9u
IHRoZSBjb21waWxlcgoreW91IGNhbiBlYXNpbHkgdHdlYWsgR29vZ2xlVGVzdCBieSBkZWZpbmlu
ZyBjb250cm9sIG1hY3JvcyBvbiB0aGUgY29tcGlsZXIKIGNvbW1hbmQgbGluZS4gR2VuZXJhbGx5
LCB0aGVzZSBtYWNyb3MgYXJlIG5hbWVkIGxpa2UgYEdURVNUX1hZWmAgYW5kIHlvdSBkZWZpbmUK
IHRoZW0gdG8gZWl0aGVyIDEgb3IgMCB0byBlbmFibGUgb3IgZGlzYWJsZSBhIGNlcnRhaW4gZmVh
dHVyZS4KIAogV2UgbGlzdCB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQgbWFjcm9zIGJlbG93LiBG
b3IgYSBjb21wbGV0ZSBsaXN0LCBzZWUgZmlsZQotW2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0
ZXIvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgpLgotCi0jIyMgQ2hvb3Npbmcg
YSBUUjEgVHVwbGUgTGlicmFyeQotCi1Tb21lIEdvb2dsZSBUZXN0IGZlYXR1cmVzIHJlcXVpcmUg
dGhlIEMrKyBUZWNobmljYWwgUmVwb3J0IDEgKFRSMSkgdHVwbGUKLWxpYnJhcnksIHdoaWNoIGlz
IG5vdCB5ZXQgYXZhaWxhYmxlIHdpdGggYWxsIGNvbXBpbGVycy4gVGhlIGdvb2QgbmV3cyBpcyB0
aGF0Ci1Hb29nbGUgVGVzdCBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIFRSMSB0dXBsZSB0aGF0J3Mg
ZW5vdWdoIGZvciBpdHMgb3duIG5lZWQsIGFuZAotd2lsbCBhdXRvbWF0aWNhbGx5IHVzZSB0aGlz
IHdoZW4gdGhlIGNvbXBpbGVyIGRvZXNuJ3QgcHJvdmlkZSBUUjEgdHVwbGUuCi0KLVVzdWFsbHkg
eW91IGRvbid0IG5lZWQgdG8gY2FyZSBhYm91dCB3aGljaCB0dXBsZSBsaWJyYXJ5IEdvb2dsZSBU
ZXN0IHVzZXMuCi1Ib3dldmVyLCBpZiB5b3VyIHByb2plY3QgYWxyZWFkeSB1c2VzIFRSMSB0dXBs
ZSwgeW91IG5lZWQgdG8gdGVsbCBHb29nbGUgVGVzdCB0bwotdXNlIHRoZSBzYW1lIFRSMSB0dXBs
ZSBsaWJyYXJ5IHRoZSByZXN0IG9mIHlvdXIgcHJvamVjdCB1c2VzLCBvciB0aGUgdHdvIHR1cGxl
Ci1pbXBsZW1lbnRhdGlvbnMgd2lsbCBjbGFzaC4gVG8gZG8gdGhhdCwgYWRkCi0KLSAgICAtREdU
RVNUX1VTRV9PV05fVFIxX1RVUExFPTAKLQotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIHdoaWxlIGNv
bXBpbGluZyBHb29nbGUgVGVzdCBhbmQgeW91ciB0ZXN0cy4gSWYgeW91IHdhbnQgdG8KLWZvcmNl
IEdvb2dsZSBUZXN0IHRvIHVzZSBpdHMgb3duIHR1cGxlIGxpYnJhcnksIGp1c3QgYWRkCi0KLSAg
ICAtREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTEKLQotdG8gdGhlIGNvbXBpbGVyIGZsYWdzIGlu
c3RlYWQuCi0KLUlmIHlvdSBkb24ndCB3YW50IEdvb2dsZSBUZXN0IHRvIHVzZSB0dXBsZSBhdCBh
bGwsIGFkZAotCi0gICAgLURHVEVTVF9IQVNfVFIxX1RVUExFPTAKLQotYW5kIGFsbCBmZWF0dXJl
cyB1c2luZyB0dXBsZSB3aWxsIGJlIGRpc2FibGVkLgorW2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9t
YXN0ZXIvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCkuCiAK
ICMjIyBNdWx0aS10aHJlYWRlZCBUZXN0cwogCi1Hb29nbGUgVGVzdCBpcyB0aHJlYWQtc2FmZSB3
aGVyZSB0aGUgcHRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4gQWZ0ZXIKLWAjaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QuaCJgLCB5b3UgY2FuIGNoZWNrIHRoZSBgR1RFU1RfSVNfVEhSRUFEU0FGRWAg
bWFjcm8gdG8gc2VlCi13aGV0aGVyIHRoaXMgaXMgdGhlIGNhc2UgKHllcyBpZiB0aGUgbWFjcm8g
aXMgYCNkZWZpbmVkYCB0byAxLCBubyBpZiBpdCdzCi11bmRlZmluZWQuKS4KK0dvb2dsZVRlc3Qg
aXMgdGhyZWFkLXNhZmUgd2hlcmUgdGhlIHB0aHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuIEFm
dGVyCitgI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiYCwgeW91IGNhbiBjaGVjayB0aGUKK2BHVEVT
VF9JU19USFJFQURTQUZFYCBtYWNybyB0byBzZWUgd2hldGhlciB0aGlzIGlzIHRoZSBjYXNlICh5
ZXMgaWYgdGhlIG1hY3JvIGlzCitgI2RlZmluZWRgIHRvIDEsIG5vIGlmIGl0J3MgdW5kZWZpbmVk
LikuCiAKLUlmIEdvb2dsZSBUZXN0IGRvZXNuJ3QgY29ycmVjdGx5IGRldGVjdCB3aGV0aGVyIHB0
aHJlYWQgaXMgYXZhaWxhYmxlIGluIHlvdXIKK0lmIEdvb2dsZVRlc3QgZG9lc24ndCBjb3JyZWN0
bHkgZGV0ZWN0IHdoZXRoZXIgcHRocmVhZCBpcyBhdmFpbGFibGUgaW4geW91cgogZW52aXJvbm1l
bnQsIHlvdSBjYW4gZm9yY2UgaXQgd2l0aAogCiAgICAgLURHVEVTVF9IQVNfUFRIUkVBRD0xCkBA
IC0yODQsMTYgKzE5OCwxNiBAQCBvcgogCiAgICAgLURHVEVTVF9IQVNfUFRIUkVBRD0wCiAKLVdo
ZW4gR29vZ2xlIFRlc3QgdXNlcyBwdGhyZWFkLCB5b3UgbWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRv
IHlvdXIgY29tcGlsZXIgYW5kL29yCitXaGVuIEdvb2dsZVRlc3QgdXNlcyBwdGhyZWFkLCB5b3Ug
bWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRvIHlvdXIgY29tcGlsZXIgYW5kL29yCiBsaW5rZXIgdG8g
c2VsZWN0IHRoZSBwdGhyZWFkIGxpYnJhcnksIG9yIHlvdSdsbCBnZXQgbGluayBlcnJvcnMuIElm
IHlvdSB1c2UgdGhlCi1DTWFrZSBzY3JpcHQgb3IgdGhlIGRlcHJlY2F0ZWQgQXV0b3Rvb2xzIHNj
cmlwdCwgdGhpcyBpcyB0YWtlbiBjYXJlIG9mIGZvciB5b3UuCi1JZiB5b3UgdXNlIHlvdXIgb3du
IGJ1aWxkIHNjcmlwdCwgeW91J2xsIG5lZWQgdG8gcmVhZCB5b3VyIGNvbXBpbGVyIGFuZCBsaW5r
ZXIncwotbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBmbGFncyB0byBhZGQuCitDTWFrZSBzY3Jp
cHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91LiBJZiB5b3UgdXNlIHlvdXIgb3duIGJ1
aWxkIHNjcmlwdCwKK3lvdSdsbCBuZWVkIHRvIHJlYWQgeW91ciBjb21waWxlciBhbmQgbGlua2Vy
J3MgbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBmbGFncwordG8gYWRkLgogCiAjIyMgQXMgYSBT
aGFyZWQgTGlicmFyeSAoRExMKQogCi1Hb29nbGUgVGVzdCBpcyBjb21wYWN0LCBzbyBtb3N0IHVz
ZXJzIGNhbiBidWlsZCBhbmQgbGluayBpdCBhcyBhIHN0YXRpYyBsaWJyYXJ5Ci1mb3IgdGhlIHNp
bXBsaWNpdHkuIFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGUgVGVzdCBhcyBhIHNoYXJlZCBs
aWJyYXJ5IChrbm93bgorR29vZ2xlVGVzdCBpcyBjb21wYWN0LCBzbyBtb3N0IHVzZXJzIGNhbiBi
dWlsZCBhbmQgbGluayBpdCBhcyBhIHN0YXRpYyBsaWJyYXJ5Citmb3IgdGhlIHNpbXBsaWNpdHku
IFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGVUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtu
b3duCiBhcyBhIERMTCBvbiBXaW5kb3dzKSBpZiB5b3UgcHJlZmVyLgogCiBUbyBjb21waWxlICpn
dGVzdCogYXMgYSBzaGFyZWQgbGlicmFyeSwgYWRkCkBAIC0zMTMsMjIgKzIyNywyMiBAQCBOb3Rl
OiB3aGlsZSB0aGUgYWJvdmUgc3RlcHMgYXJlbid0IHRlY2huaWNhbGx5IG5lY2Vzc2FyeSB0b2Rh
eSB3aGVuIHVzaW5nIHNvbWUKIGNvbXBpbGVycyAoZS5nLiBHQ0MpLCB0aGV5IG1heSBiZWNvbWUg
bmVjZXNzYXJ5IGluIHRoZSBmdXR1cmUsIGlmIHdlIGRlY2lkZSB0bwogaW1wcm92ZSB0aGUgc3Bl
ZWQgb2YgbG9hZGluZyB0aGUgbGlicmFyeSAoc2VlCiA8aHR0cDovL2djYy5nbnUub3JnL3dpa2kv
VmlzaWJpbGl0eT4gZm9yIGRldGFpbHMpLiBUaGVyZWZvcmUgeW91IGFyZSByZWNvbW1lbmRlZAot
dG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUgZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGUgVGVzdCBhcyBh
IHNoYXJlZCBsaWJyYXJ5LgotT3RoZXJ3aXNlIGEgZnV0dXJlIHJlbGVhc2Ugb2YgR29vZ2xlIFRl
c3QgbWF5IGJyZWFrIHlvdXIgYnVpbGQgc2NyaXB0LgordG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUg
ZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGVUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkuCitPdGhlcndp
c2UgYSBmdXR1cmUgcmVsZWFzZSBvZiBHb29nbGVUZXN0IG1heSBicmVhayB5b3VyIGJ1aWxkIHNj
cmlwdC4KIAogIyMjIEF2b2lkaW5nIE1hY3JvIE5hbWUgQ2xhc2hlcwogCiBJbiBDKyssIG1hY3Jv
cyBkb24ndCBvYmV5IG5hbWVzcGFjZXMuIFRoZXJlZm9yZSB0d28gbGlicmFyaWVzIHRoYXQgYm90
aCBkZWZpbmUgYQogbWFjcm8gb2YgdGhlIHNhbWUgbmFtZSB3aWxsIGNsYXNoIGlmIHlvdSBgI2lu
Y2x1ZGVgIGJvdGggZGVmaW5pdGlvbnMuIEluIGNhc2UgYQotR29vZ2xlIFRlc3QgbWFjcm8gY2xh
c2hlcyB3aXRoIGFub3RoZXIgbGlicmFyeSwgeW91IGNhbiBmb3JjZSBHb29nbGUgVGVzdCB0bwor
R29vZ2xlVGVzdCBtYWNybyBjbGFzaGVzIHdpdGggYW5vdGhlciBsaWJyYXJ5LCB5b3UgY2FuIGZv
cmNlIEdvb2dsZVRlc3QgdG8KIHJlbmFtZSBpdHMgbWFjcm8gdG8gYXZvaWQgdGhlIGNvbmZsaWN0
LgogCi1TcGVjaWZpY2FsbHksIGlmIGJvdGggR29vZ2xlIFRlc3QgYW5kIHNvbWUgb3RoZXIgY29k
ZSBkZWZpbmUgbWFjcm8gRk9PLCB5b3UgY2FuCitTcGVjaWZpY2FsbHksIGlmIGJvdGggR29vZ2xl
VGVzdCBhbmQgc29tZSBvdGhlciBjb2RlIGRlZmluZSBtYWNybyBGT08sIHlvdSBjYW4KIGFkZAog
CiAgICAgLURHVEVTVF9ET05UX0RFRklORV9GT089MQogCi10byB0aGUgY29tcGlsZXIgZmxhZ3Mg
dG8gdGVsbCBHb29nbGUgVGVzdCB0byBjaGFuZ2UgdGhlIG1hY3JvJ3MgbmFtZSBmcm9tIGBGT09g
Cit0byB0aGUgY29tcGlsZXIgZmxhZ3MgdG8gdGVsbCBHb29nbGVUZXN0IHRvIGNoYW5nZSB0aGUg
bWFjcm8ncyBuYW1lIGZyb20gYEZPT2AKIHRvIGBHVEVTVF9GT09gLiBDdXJyZW50bHkgYEZPT2Ag
Y2FuIGJlIGBGQUlMYCwgYFNVQ0NFRURgLCBvciBgVEVTVGAuIEZvcgogZXhhbXBsZSwgd2l0aCBg
LURHVEVTVF9ET05UX0RFRklORV9URVNUPTFgLCB5b3UnbGwgbmVlZCB0byB3cml0ZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jaGFuZ2VzLmRpZmYgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9jaGFuZ2VzLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA5OWQ3OTVlNzAwNTNhZWQ4MzhmZTBlMDE1ZTk2NTAzYWZjMjU4OTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
Y2hhbmdlcy5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKLWluZGV4IDA5MDgzNTUx
NjEyLi5hYzg2NjAzNTRjYSAxMDA2NDQKLS0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1kZWF0aC10ZXN0LmNjCi0rKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwotQEAgLTExNTIsMjAgKzExNTIsNiBAQCBzdHJ1Y3QgRXhlY0Rl
YXRoVGVzdEFyZ3MgewotICAgaW50IGNsb3NlX2ZkOyAgICAgICAvLyBGaWxlIGRlc2NyaXB0b3Ig
dG8gY2xvc2U7IHRoZSByZWFkIGVuZCBvZiBhIHBpcGUKLSB9OwotIAotLSMgIGlmIEdURVNUX09T
X01BQwotLWlubGluZSBjaGFyKiogR2V0RW52aXJvbigpIHsKLS0gIC8vIFdoZW4gR29vZ2xlIFRl
c3QgaXMgYnVpbHQgYXMgYSBmcmFtZXdvcmsgb24gTWFjT1MgWCwgdGhlIGVudmlyb24gdmFyaWFi
bGUKLS0gIC8vIGlzIHVuYXZhaWxhYmxlLiBBcHBsZSdzIGRvY3VtZW50YXRpb24gKG1hbiBlbnZp
cm9uKSByZWNvbW1lbmRzIHVzaW5nCi0tICAvLyBfTlNHZXRFbnZpcm9uKCkgaW5zdGVhZC4KLS0g
IHJldHVybiAqX05TR2V0RW52aXJvbigpOwotLX0KLS0jICBlbHNlCi0tLy8gU29tZSBQT1NJWCBw
bGF0Zm9ybXMgZXhwZWN0IHlvdSB0byBkZWNsYXJlIGVudmlyb24uIGV4dGVybiAiQyIgbWFrZXMK
LS0vLyBpdCByZXNpZGUgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UuCi0tZXh0ZXJuICJDIiBjaGFy
KiogZW52aXJvbjsKLS1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7IHJldHVybiBlbnZpcm9u
OyB9Ci0tIyAgZW5kaWYgIC8vIEdURVNUX09TX01BQwotLQotICMgIGlmICFHVEVTVF9PU19RTlgK
LSAvLyBUaGUgbWFpbiBmdW5jdGlvbiBmb3IgYSB0aHJlYWRzYWZlLXN0eWxlIGRlYXRoIHRlc3Qg
Y2hpbGQgcHJvY2Vzcy4KLSAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBhIGNsb25lKCkt
ZWQgcHJvY2VzcyBhbmQgdGh1cyBtdXN0IGF2b2lkCi1AQCAtMTE5MSw4ICsxMTc3LDExIEBAIHN0
YXRpYyBpbnQgRXhlY0RlYXRoVGVzdENoaWxkTWFpbih2b2lkKiBjaGlsZF9hcmcpIHsKLSAgIC8v
IHVuc2FmZS4gIFNpbmNlIGV4ZWN2ZSgpIGRvZXNuJ3Qgc2VhcmNoIHRoZSBQQVRILCB0aGUgdXNl
ciBtdXN0Ci0gICAvLyBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2aWEgYSB2YWxpZCBwYXRoIHRo
YXQgY29udGFpbnMgYXQgbGVhc3QKLSAgIC8vIG9uZSBwYXRoIHNlcGFyYXRvci4KLS0gIGV4ZWN2
ZShhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2LCBHZXRFbnZpcm9uKCkpOwotLSAgRGVhdGhUZXN0
QWJvcnQoc3RkOjpzdHJpbmcoImV4ZWN2ZSgiKSArIGFyZ3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGlu
ICIgKwotKyAgLy8gV2UgaGF2ZSByZXBsYWNlZCBleGVjdmUoKSB3aXRoIGV4ZWN2KCkgZm9yIFdl
YktpdCB0byBhdm9pZCB1c2luZwotKyAgLy8gZW52aXJvbi4gSXQgc2hvdWxkIGJlIHNhZmUgYmVj
YXVzZSBleGVjdigpIGlzIGp1c3QgYSBzaW1wbGUgd3JhcHBlcgotKyAgLy8gb2YgZXhlY3ZlKCku
Ci0rICBleGVjdihhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2KTsKLSsgIERlYXRoVGVzdEFib3J0
KHN0ZDo6c3RyaW5nKCJleGVjdigiKSArIGFyZ3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGluICIgKwot
ICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsgIiBmYWlsZWQ6ICIgKwotICAgICAgICAg
ICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKSk7Ci0gICByZXR1cm4gRVhJVF9GQUlM
VVJFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3QucGMu
aW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdC5wYy5pbgppbmRleCBlNzk2
N2FkNTZmZjJjMzJlZDRiYTA2NzAzYWVhNTI1ZGNhZDJjZTdiLi5iNDE0OGZhZTQyYjFjZDc4MmRj
MWI2YTVkMWQ3ZTFlM2E4ZTRlNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jbWFrZS9ndGVzdC5wYy5pbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9n
dGVzdC5wYy5pbgpAQCAtNiw0ICs2LDQgQEAgRGVzY3JpcHRpb246IEdvb2dsZVRlc3QgKHdpdGhv
dXQgbWFpbigpIGZ1bmN0aW9uKQogVmVyc2lvbjogQFBST0pFQ1RfVkVSU0lPTkAKIFVSTDogaHR0
cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0CiBMaWJzOiAtTCR7bGliZGlyfSAtbGd0
ZXN0IEBDTUFLRV9USFJFQURfTElCU19JTklUQAotQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdU
RVNUX0hBU19QVEhSRUFEX01BQ1JPQCBAQ01BS0VfVEhSRUFEX0xJQlNfSU5JVEAKK0NmbGFnczog
LUkke2luY2x1ZGVkaXJ9IEBHVEVTVF9IQVNfUFRIUkVBRF9NQUNST0AKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0X21haW4ucGMuaW4gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdF9tYWluLnBjLmluCmluZGV4IGZlMjVkOWM3M2M2ODNi
NjQxN2I5OWJiNzAzYzEzYWUxNmJhOGE5NTIuLjM4Yzg4YzU0ZDUzODZkOTYwZWM0OGQ5Zjc2NjY0
ZWI5Nzk4YjRlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0
ZXN0X21haW4ucGMuaW4KKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3Rf
bWFpbi5wYy5pbgpAQCAtNSw2ICs1LDYgQEAgTmFtZTogZ3Rlc3RfbWFpbgogRGVzY3JpcHRpb246
IEdvb2dsZVRlc3QgKHdpdGggbWFpbigpIGZ1bmN0aW9uKQogVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0Ci1SZXF1aXJl
czogZ3Rlc3QKK1JlcXVpcmVzOiBndGVzdCA9IEBQUk9KRUNUX1ZFUlNJT05ACiBMaWJzOiAtTCR7
bGliZGlyfSAtbGd0ZXN0X21haW4gQENNQUtFX1RIUkVBRF9MSUJTX0lOSVRACi1DZmxhZ3M6IC1J
JHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURfTUFDUk9AIEBDTUFLRV9USFJFQURfTElC
U19JTklUQAorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01BQ1JP
QApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRp
bHMuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5j
bWFrZQppbmRleCA4YzFmOWJhOTljZjUwNTc0ZjY2OWRkN2RlYmEzMjRkY2U0MDU5NWYzLi5kYzJi
Njg1YzNhOGYwOTk1MzhhMTM1N2ViZGUyOTY4NmM2NGIwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQpAQCAtMTIsNiArMTIs
MTAgQEAKICMgICBUZXN0IGFuZCBHb29nbGUgTW9jaydzIG9wdGlvbigpIGRlZmluaXRpb25zLCBh
bmQgdGh1cyBtdXN0IGJlCiAjICAgY2FsbGVkICphZnRlciogdGhlIG9wdGlvbnMgaGF2ZSBiZWVu
IGRlZmluZWQuCiAKK2lmIChQT0xJQ1kgQ01QMDA1NCkKKyAgY21ha2VfcG9saWN5KFNFVCBDTVAw
MDU0IE5FVykKK2VuZGlmIChQT0xJQ1kgQ01QMDA1NCkKKwogIyBUd2Vha3MgQ01ha2UncyBkZWZh
dWx0IGNvbXBpbGVyL2xpbmtlciBzZXR0aW5ncyB0byBzdWl0IEdvb2dsZSBUZXN0J3MgbmVlZHMu
CiAjCiAjIFRoaXMgbXVzdCBiZSBhIG1hY3JvKCksIGFzIGluc2lkZSBhIGZ1bmN0aW9uIHN0cmlu
ZygpIGNhbiBvbmx5CkBAIC0yMiw2ICsyNiw4IEBAIG1hY3JvKGZpeF9kZWZhdWx0X2NvbXBpbGVy
X3NldHRpbmdzXykKICAgICAjIFRoaXMgcmVwbGFjZW1lbnQgY29kZSBpcyB0YWtlbiBmcm9tIHNh
bXBsZSBpbiB0aGUgQ01ha2UgV2lraSBhdAogICAgICMgaHR0cHM6Ly9naXRsYWIua2l0d2FyZS5j
b20vY21ha2UvY29tbXVuaXR5L3dpa2lzL0ZBUSNkeW5hbWljLXJlcGxhY2UuCiAgICAgZm9yZWFj
aCAoZmxhZ192YXIKKyAgICAgICAgICAgICBDTUFLRV9DX0ZMQUdTIENNQUtFX0NfRkxBR1NfREVC
VUcgQ01BS0VfQ19GTEFHU19SRUxFQVNFCisgICAgICAgICAgICAgQ01BS0VfQ19GTEFHU19NSU5T
SVpFUkVMIENNQUtFX0NfRkxBR1NfUkVMV0lUSERFQklORk8KICAgICAgICAgICAgICBDTUFLRV9D
WFhfRkxBR1MgQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHIENNQUtFX0NYWF9GTEFHU19SRUxFQVNFCiAg
ICAgICAgICAgICAgQ01BS0VfQ1hYX0ZMQUdTX01JTlNJWkVSRUwgQ01BS0VfQ1hYX0ZMQUdTX1JF
TFdJVEhERUJJTkZPKQogICAgICAgaWYgKE5PVCBCVUlMRF9TSEFSRURfTElCUyBBTkQgTk9UIGd0
ZXN0X2ZvcmNlX3NoYXJlZF9jcnQpCkBAIC01Niw3ICs2Miw2IEBAIG1hY3JvKGNvbmZpZ19jb21w
aWxlcl9hbmRfbGlua2VyKQogICB1bnNldChHVEVTVF9IQVNfUFRIUkVBRCkKICAgaWYgKE5PVCBn
dGVzdF9kaXNhYmxlX3B0aHJlYWRzIEFORCBOT1QgTUlOR1cpCiAgICAgIyBEZWZpbmVzIENNQUtF
X1VTRV9QVEhSRUFEU19JTklUIGFuZCBDTUFLRV9USFJFQURfTElCU19JTklULgotICAgIHNldChU
SFJFQURTX1BSRUZFUl9QVEhSRUFEX0ZMQUcgT04pCiAgICAgZmluZF9wYWNrYWdlKFRocmVhZHMp
CiAgICAgaWYgKENNQUtFX1VTRV9QVEhSRUFEU19JTklUKQogICAgICAgc2V0KEdURVNUX0hBU19Q
VEhSRUFEIE9OKQpAQCAtNjcsMzcgKzcyLDIzIEBAIG1hY3JvKGNvbmZpZ19jb21waWxlcl9hbmRf
bGlua2VyKQogICBpZiAoTVNWQykKICAgICAjIE5ld2xpbmVzIGluc2lkZSBmbGFncyB2YXJpYWJs
ZXMgYnJlYWsgQ01ha2UncyBOTWFrZSBnZW5lcmF0b3IuCiAgICAgIyBUT0RPKHZsYWRsQGdvb2ds
ZS5jb20pOiBBZGQgLVJUQ3MgYW5kIC1SVEN1IHRvIGRlYnVnIGJ1aWxkcy4KLSAgICBzZXQoY3h4
X2Jhc2VfZmxhZ3MgIi1HUyAtVzQgLVdYIC13ZDQyNTEgLXdkNDI3NSAtbm9sb2dvIC1KIC1aaSIp
Ci0gICAgaWYgKE1TVkNfVkVSU0lPTiBMRVNTIDE0MDApICAjIDE0MDAgaXMgVmlzdWFsIFN0dWRp
byAyMDA1Ci0gICAgICAjIFN1cHByZXNzIHNwdXJpb3VzIHdhcm5pbmdzIE1TVkMgNy4xIHNvbWV0
aW1lcyBpc3N1ZXMuCi0gICAgICAjIEZvcmNpbmcgdmFsdWUgdG8gYm9vbC4KLSAgICAgIHNldChj
eHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDgwMCIpCi0gICAgICAjIENvcHkg
Y29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRl
ZC4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDUxMSAt
d2Q0NTEyIikKLSAgICAgICMgQ29tcGF0aWJpbGl0eSB3YXJuaW5ncyBub3QgYXBwbGljYWJsZSB0
byBHb29nbGUgVGVzdC4KLSAgICAgICMgUmVzb2x2ZWQgb3ZlcmxvYWQgd2FzIGZvdW5kIGJ5IGFy
Z3VtZW50LWRlcGVuZGVudCBsb29rdXAuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4
X2Jhc2VfZmxhZ3N9IC13ZDQ2NzUiKQotICAgIGVuZGlmKCkKLSAgICBpZiAoTVNWQ19WRVJTSU9O
IExFU1MgMTUwMCkgICMgMTUwMCBpcyBWaXN1YWwgU3R1ZGlvIDIwMDgKLSAgICAgICMgQ29uZGl0
aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudC4KLSAgICAgICMgV2hlbiBjb21waWxpbmcgd2l0
aCAvVzQsIHdlIGdldCBzZXZlcmFsIGluc3RhbmNlcyBvZiBDNDEyNwotICAgICAgIyAoQ29uZGl0
aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCkuIEluIG91ciBjb2RlLCB3ZSBkaXNhYmxlIHRo
YXQKLSAgICAgICMgd2FybmluZyBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcy4gSG93ZXZlciwgb24g
VmlzdWFsIFN0dWRpbyAyMDA1LAotICAgICAgIyB0aGUgd2FybmluZyBmaXJlcyBvbiBzdGQ6Omxp
c3QuIFRoZXJlZm9yZSBvbiB0aGF0IGNvbXBpbGVyIGFuZCBlYXJsaWVyLAotICAgICAgIyB3ZSBk
aXNhYmxlIHRoZSB3YXJuaW5nIHByb2plY3Qtd2lkZS4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFn
cyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDEyNyIpCi0gICAgZW5kaWYoKQotICAgIGlmIChOT1Qg
KE1TVkNfVkVSU0lPTiBMRVNTIDE3MDApKSAgIyAxNzAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMi4K
LSAgICAgICMgU3VwcHJlc3MgInVucmVhY2hhYmxlIGNvZGUiIHdhcm5pbmcgb24gVlMgMjAxMiBh
bmQgbGF0ZXIuCi0gICAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzIz
MjY2OSBleHBsYWlucyB0aGUgaXNzdWUuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4
X2Jhc2VfZmxhZ3N9IC13ZDQ3MDIiKQotICAgIGVuZGlmKCkKLQorICAgIHNldChjeHhfYmFzZV9m
bGFncyAiLUdTIC1XNCAtV1ggLXdkNDI1MSAtd2Q0Mjc1IC1ub2xvZ28gLUoiKQogICAgIHNldChj
eHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLURfVU5JQ09ERSAtRFVOSUNPREUgLURX
SU4zMiAtRF9XSU4zMiIpCiAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdz
fSAtRFNUUklDVCAtRFdJTjMyX0xFQU5fQU5EX01FQU4iKQogICAgIHNldChjeHhfZXhjZXB0aW9u
X2ZsYWdzICItRUhzYyAtRF9IQVNfRVhDRVBUSU9OUz0xIikKICAgICBzZXQoY3h4X25vX2V4Y2Vw
dGlvbl9mbGFncyAiLUVIcy1jLSAtRF9IQVNfRVhDRVBUSU9OUz0wIikKICAgICBzZXQoY3h4X25v
X3J0dGlfZmxhZ3MgIi1HUi0iKQorICAgICMgU3VwcHJlc3MgInVucmVhY2hhYmxlIGNvZGUiIHdh
cm5pbmcKKyAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzIzMjY2OSBl
eHBsYWlucyB0aGUgaXNzdWUuCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2Zs
YWdzfSAtd2Q0NzAyIikKKyAgICAjIEVuc3VyZSBNU1ZDIHRyZWF0cyBzb3VyY2UgZmlsZXMgYXMg
VVRGLTggZW5jb2RlZC4KKyAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9
IC11dGYtOCIpCisgIGVsc2VpZiAoQ01BS0VfQ1hYX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJDbGFu
ZyIpCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICItV2FsbCAtV3NoYWRvdyAtV2Vycm9yIC1XY29u
dmVyc2lvbiIpCisgICAgc2V0KGN4eF9leGNlcHRpb25fZmxhZ3MgIi1mZXhjZXB0aW9ucyIpCisg
ICAgc2V0KGN4eF9ub19leGNlcHRpb25fZmxhZ3MgIi1mbm8tZXhjZXB0aW9ucyIpCisgICAgc2V0
KGN4eF9zdHJpY3RfZmxhZ3MgIi1XIC1XcG9pbnRlci1hcml0aCAtV3JldHVybi10eXBlIC1XY2Fz
dC1xdWFsIC1Xd3JpdGUtc3RyaW5ncyAtV3N3aXRjaCAtV3VudXNlZC1wYXJhbWV0ZXIgLVdjYXN0
LWFsaWduIC1XY2hhci1zdWJzY3JpcHRzIC1XaW5saW5lIC1XcmVkdW5kYW50LWRlY2xzIikKKyAg
ICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIi1mbm8tcnR0aSIpCiAgIGVsc2VpZiAoQ01BS0VfQ09N
UElMRVJfSVNfR05VQ1hYKQogICAgIHNldChjeHhfYmFzZV9mbGFncyAiLVdhbGwgLVdzaGFkb3cg
LVdlcnJvciIpCiAgICAgaWYoTk9UIENNQUtFX0NYWF9DT01QSUxFUl9WRVJTSU9OIFZFUlNJT05f
TEVTUyA3LjAuMCkKQEAgLTE0OCw3ICsxMzksNiBAQCBtYWNybyhjb25maWdfY29tcGlsZXJfYW5k
X2xpbmtlcikKICAgICAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Y3h4X2Jhc2VfZmxhZ3N9ICR7Y3h4
X25vX2V4Y2VwdGlvbl9mbGFnc30iKQogICBzZXQoY3h4X2RlZmF1bHQgIiR7Y3h4X2V4Y2VwdGlv
bn0iKQogICBzZXQoY3h4X25vX3J0dGkgIiR7Y3h4X2RlZmF1bHR9ICR7Y3h4X25vX3J0dGlfZmxh
Z3N9IikKLSAgc2V0KGN4eF91c2Vfb3duX3R1cGxlICIke2N4eF9kZWZhdWx0fSAtREdURVNUX1VT
RV9PV05fVFIxX1RVUExFPTEiKQogCiAgICMgRm9yIGJ1aWxkaW5nIHRoZSBndGVzdCBsaWJyYXJp
ZXMuCiAgIHNldChjeHhfc3RyaWN0ICIke2N4eF9kZWZhdWx0fSAke2N4eF9zdHJpY3RfZmxhZ3N9
IikKQEAgLTE2Nyw2ICsxNTcsMjIgQEAgZnVuY3Rpb24oY3h4X2xpYnJhcnlfd2l0aF90eXBlIG5h
bWUgdHlwZSBjeHhfZmxhZ3MpCiAgIHNldF90YXJnZXRfcHJvcGVydGllcygke25hbWV9CiAgICAg
UFJPUEVSVElFUwogICAgIERFQlVHX1BPU1RGSVggImQiKQorICAjIFNldCB0aGUgb3V0cHV0IGRp
cmVjdG9yeSBmb3IgYnVpbGQgYXJ0aWZhY3RzCisgIHNldF90YXJnZXRfcHJvcGVydGllcygke25h
bWV9CisgICAgUFJPUEVSVElFUworICAgIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFL
RV9CSU5BUllfRElSfS9iaW4iCisgICAgTElCUkFSWV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtF
X0JJTkFSWV9ESVJ9L2xpYiIKKyAgICBBUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vbGliIgorICAgIFBEQl9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX0JJTkFS
WV9ESVJ9L2JpbiIpCisgICMgbWFrZSBQREJzIG1hdGNoIGxpYnJhcnkgbmFtZQorICBnZXRfdGFy
Z2V0X3Byb3BlcnR5KHBkYl9kZWJ1Z19wb3N0Zml4ICR7bmFtZX0gREVCVUdfUE9TVEZJWCkKKyAg
c2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7bmFtZX0KKyAgICBQUk9QRVJUSUVTCisgICAgUERCX05B
TUUgIiR7bmFtZX0iCisgICAgUERCX05BTUVfREVCVUcgIiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0
Zml4fSIKKyAgICBDT01QSUxFX1BEQl9OQU1FICIke25hbWV9IgorICAgIENPTVBJTEVfUERCX05B
TUVfREVCVUcgIiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0Zml4fSIpCisKICAgaWYgKEJVSUxEX1NI
QVJFRF9MSUJTIE9SIHR5cGUgU1RSRVFVQUwgIlNIQVJFRCIpCiAgICAgc2V0X3RhcmdldF9wcm9w
ZXJ0aWVzKCR7bmFtZX0KICAgICAgIFBST1BFUlRJRVMKQEAgLTE4NCw2ICsxOTAsMTAgQEAgZnVu
Y3Rpb24oY3h4X2xpYnJhcnlfd2l0aF90eXBlIG5hbWUgdHlwZSBjeHhfZmxhZ3MpCiAgICAgZW5k
aWYoKQogICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke25hbWV9IFBVQkxJQyAke3RocmVhZHNf
c3BlY30pCiAgIGVuZGlmKCkKKworICBpZiAoTk9UICIke0NNQUtFX1ZFUlNJT059IiBWRVJTSU9O
X0xFU1MgIjMuOCIpCisgICAgdGFyZ2V0X2NvbXBpbGVfZmVhdHVyZXMoJHtuYW1lfSBQVUJMSUMg
Y3h4X3N0ZF8xMSkKKyAgZW5kaWYoKQogZW5kZnVuY3Rpb24oKQogCiAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
QEAgLTIwNCw3ICsyMTQsNyBAQCBlbmRmdW5jdGlvbigpCiAjIGlzIGJ1aWx0IGZyb20gdGhlIGdp
dmVuIHNvdXJjZSBmaWxlcyB3aXRoIHRoZSBnaXZlbiBjb21waWxlciBmbGFncy4KIGZ1bmN0aW9u
KGN4eF9leGVjdXRhYmxlX3dpdGhfZmxhZ3MgbmFtZSBjeHhfZmxhZ3MgbGlicykKICAgYWRkX2V4
ZWN1dGFibGUoJHtuYW1lfSAke0FSR059KQotICBpZiAoTVNWQyBBTkQgKE5PVCAoTVNWQ19WRVJT
SU9OIExFU1MgMTcwMCkpKSAgIyAxNzAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMi4KKyAgaWYgKE1T
VkMpCiAgICAgIyBCaWdPYmogcmVxdWlyZWQgZm9yIHRlc3RzLgogICAgIHNldChjeHhfZmxhZ3Mg
IiR7Y3h4X2ZsYWdzfSAtYmlnb2JqIikKICAgZW5kaWYoKQpAQCAtMjM2LDcgKzI0NiwxMyBAQCBm
dW5jdGlvbihjeHhfZXhlY3V0YWJsZSBuYW1lIGRpciBsaWJzKQogZW5kZnVuY3Rpb24oKQogCiAj
IFNldHMgUFlUSE9OSU5URVJQX0ZPVU5EIGFuZCBQWVRIT05fRVhFQ1VUQUJMRS4KLWZpbmRfcGFj
a2FnZShQeXRob25JbnRlcnApCitpZiAoIiR7Q01BS0VfVkVSU0lPTn0iIFZFUlNJT05fTEVTUyAi
My4xMi4wIikKKyAgZmluZF9wYWNrYWdlKFB5dGhvbkludGVycCkKK2Vsc2UoKQorICBmaW5kX3Bh
Y2thZ2UoUHl0aG9uIENPTVBPTkVOVFMgSW50ZXJwcmV0ZXIpCisgIHNldChQWVRIT05JTlRFUlBf
Rk9VTkQgJHtQeXRob25fSW50ZXJwcmV0ZXJfRk9VTkR9KQorICBzZXQoUFlUSE9OX0VYRUNVVEFC
TEUgJHtQeXRob25fRVhFQ1VUQUJMRX0pCitlbmRpZigpCiAKICMgY3h4X3Rlc3Rfd2l0aF9mbGFn
cyhuYW1lIGN4eF9mbGFncyBsaWJzIHNyY3MuLi4pCiAjCkBAIC0yNDQsNyArMjYwLDcgQEAgZmlu
ZF9wYWNrYWdlKFB5dGhvbkludGVycCkKICMgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIGZpbGVzIHdp
dGggdGhlIGdpdmVuIGNvbXBpbGVyIGZsYWdzLgogZnVuY3Rpb24oY3h4X3Rlc3Rfd2l0aF9mbGFn
cyBuYW1lIGN4eF9mbGFncyBsaWJzKQogICBjeHhfZXhlY3V0YWJsZV93aXRoX2ZsYWdzKCR7bmFt
ZX0gIiR7Y3h4X2ZsYWdzfSIgIiR7bGlic30iICR7QVJHTn0pCi0gIGFkZF90ZXN0KE5BTUUgJHtu
YW1lfSBDT01NQU5EICR7bmFtZX0pCisgICAgYWRkX3Rlc3QoTkFNRSAke25hbWV9IENPTU1BTkQg
IiQ8VEFSR0VUX0ZJTEU6JHtuYW1lfT4iKQogZW5kZnVuY3Rpb24oKQogCiAjIGN4eF90ZXN0KG5h
bWUgbGlicyBzcmNzLi4uKQpAQCAtMjYzLDMzICsyNzksMzAgQEAgZW5kZnVuY3Rpb24oKQogIyB0
ZXN0L25hbWUucHkuICBJdCBkb2VzIG5vdGhpbmcgaWYgUHl0aG9uIGlzIG5vdCBpbnN0YWxsZWQu
CiBmdW5jdGlvbihweV90ZXN0IG5hbWUpCiAgIGlmIChQWVRIT05JTlRFUlBfRk9VTkQpCi0gICAg
aWYgKCR7Q01BS0VfTUFKT1JfVkVSU0lPTn0uJHtDTUFLRV9NSU5PUl9WRVJTSU9OfSBHUkVBVEVS
IDMuMSkKKyAgICBpZiAoIiR7Q01BS0VfTUFKT1JfVkVSU0lPTn0uJHtDTUFLRV9NSU5PUl9WRVJT
SU9OfSIgVkVSU0lPTl9HUkVBVEVSIDMuMSkKICAgICAgIGlmIChDTUFLRV9DT05GSUdVUkFUSU9O
X1RZUEVTKQotCSMgTXVsdGktY29uZmlndXJhdGlvbiBidWlsZCBnZW5lcmF0b3JzIGFzIGZvciBW
aXN1YWwgU3R1ZGlvIHNhdmUKLQkjIG91dHB1dCBpbiBhIHN1YmRpcmVjdG9yeSBvZiBDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVIgKERlYnVnLAotCSMgUmVsZWFzZSBldGMuKSwgc28gd2UgaGF2ZSB0
byBwcm92aWRlIGl0IGhlcmUuCi0gICAgICAgIGFkZF90ZXN0KAotICAgICAgICAgIE5BTUUgJHtu
YW1lfQorICAgICAgICAjIE11bHRpLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBm
b3IgVmlzdWFsIFN0dWRpbyBzYXZlCisgICAgICAgICMgb3V0cHV0IGluIGEgc3ViZGlyZWN0b3J5
IG9mIENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUiAoRGVidWcsCisgICAgICAgICMgUmVsZWFzZSBl
dGMuKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGl0IGhlcmUuCisgICAgICAgIGFkZF90ZXN0KE5B
TUUgJHtuYW1lfQogICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1lfS5weQogICAgICAgICAgICAgICAtLWJ1
aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJDxDT05GSUc+ICR7QVJHTn0pCiAg
ICAgICBlbHNlIChDTUFLRV9DT05GSUdVUkFUSU9OX1RZUEVTKQotCSMgU2luZ2xlLWNvbmZpZ3Vy
YXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBsaWtlIE1ha2VmaWxlIGdlbmVyYXRvcnMKLQkjIGRvbid0
IGhhdmUgc3ViZGlycyBiZWxvdyBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIuCi0gICAgICAgIGFk
ZF90ZXN0KAotICAgICAgICAgIE5BTUUgJHtuYW1lfQorICAgICAgICAjIFNpbmdsZS1jb25maWd1
cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMgbGlrZSBNYWtlZmlsZSBnZW5lcmF0b3JzCisgICAgICAg
ICMgZG9uJ3QgaGF2ZSBzdWJkaXJzIGJlbG93IENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUi4KKyAg
ICAgICAgYWRkX3Rlc3QoTkFNRSAke25hbWV9CiAgICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9F
WEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGVzdC8ke25hbWV9LnB5Ci0g
ICAgICAgICAgICAgIC0tYnVpbGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSAke0FS
R059KQorICAgICAgICAgICAgLS1idWlsZF9kaXI9JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9
ICR7QVJHTn0pCiAgICAgICBlbmRpZiAoQ01BS0VfQ09ORklHVVJBVElPTl9UWVBFUykKLSAgICBl
bHNlICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRF
UiAzLjEpCisgICAgZWxzZSgpCiAgICAgICAjICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSBp
cyBrbm93biBhdCBjb25maWd1cmF0aW9uIHRpbWUsIHNvIHdlIGNhbgogICAgICAgIyBkaXJlY3Rs
eSBiaW5kIGl0IGZyb20gY21ha2UuICR7Q1RFU1RfQ09ORklHVVJBVElPTl9UWVBFfSBpcyBrbm93
bgogICAgICAgIyBvbmx5IGF0IGN0ZXN0IHJ1bnRpbWUgKGJ5IGNhbGxpbmcgY3Rlc3QgLWMgPENv
bmZpZ3VyYXRpb24+KSwgc28KICAgICAgICMgd2UgaGF2ZSB0byBlc2NhcGUgJCB0byBkZWxheSB2
YXJpYWJsZSBzdWJzdGl0dXRpb24gaGVyZS4KLSAgICAgIGFkZF90ZXN0KAotICAgICAgICAke25h
bWV9Ci0gICAgICAgICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXN0LyR7bmFtZX0ucHkKKyAgICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfQorICAgICAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS90ZXN0LyR7bmFtZX0ucHkKICAgICAgICAgICAtLWJ1aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vXCR7Q1RFU1RfQ09ORklHVVJBVElPTl9UWVBFfSAke0FSR059KQotICAgIGVu
ZGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRF
UiAzLjEpCisgICAgZW5kaWYoKQogICBlbmRpZihQWVRIT05JTlRFUlBfRk9VTkQpCiBlbmRmdW5j
dGlvbigpCiAKQEAgLTMwNiw2ICszMTksMTggQEAgZnVuY3Rpb24oaW5zdGFsbF9wcm9qZWN0KQog
ICAgICAgUlVOVElNRSBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iCiAgICAg
ICBBUkNISVZFIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfSIKICAgICAgIExJ
QlJBUlkgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9IikKKyAgICBpZihDTUFL
RV9DWFhfQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIpCisgICAgICAjIEluc3RhbGwgUERCcwor
ICAgICAgZm9yZWFjaCh0ICR7QVJHTn0pCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkodF9w
ZGJfbmFtZSAke3R9IENPTVBJTEVfUERCX05BTUUpCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVy
dHkodF9wZGJfbmFtZV9kZWJ1ZyAke3R9IENPTVBJTEVfUERCX05BTUVfREVCVUcpCisgICAgICAg
IGdldF90YXJnZXRfcHJvcGVydHkodF9wZGJfb3V0cHV0X2RpcmVjdG9yeSAke3R9IFBEQl9PVVRQ
VVRfRElSRUNUT1JZKQorICAgICAgICBpbnN0YWxsKEZJTEVTCisgICAgICAgICAgIiR7dF9wZGJf
b3V0cHV0X2RpcmVjdG9yeX0vXCR7Q01BS0VfSU5TVEFMTF9DT05GSUdfTkFNRX0vJDwkPENPTkZJ
RzpEZWJ1Zz46JHt0X3BkYl9uYW1lX2RlYnVnfT4kPCQ8Tk9UOiQ8Q09ORklHOkRlYnVnPj46JHt0
X3BkYl9uYW1lfT4ucGRiIgorICAgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9M
SUJESVJ9CisgICAgICAgICAgT1BUSU9OQUwpCisgICAgICBlbmRmb3JlYWNoKCkKKyAgICBlbmRp
ZigpCiAgICAgIyBDb25maWd1cmUgYW5kIGluc3RhbGwgcGtnY29uZmlnIGZpbGVzLgogICAgIGZv
cmVhY2godCAke0FSR059KQogICAgICAgc2V0KGNvbmZpZ3VyZWRfcGMgIiR7Z2VuZXJhdGVkX2Rp
cn0vJHt0fS5wYyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9s
aWJndGVzdC5sYS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2xpYmd0ZXN0Lmxh
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0MGM4Mzg4NWY5ODlhMDJhMGFiMzA3M2E3NGU2NWJjMDRkZGYzZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9saWJndGVz
dC5sYS5pbgpAQCAtMCwwICsxLDIxIEBACisjIGxpYmd0ZXN0LmxhIC0gYSBsaWJ0b29sIGxpYnJh
cnkgZmlsZQorIyBHZW5lcmF0ZWQgYnkgbGlidG9vbCAoR05VIGxpYnRvb2wpIDIuNC42CisKKyMg
UGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxp
bmtpbmcgdGhlIGxpYnJhcnkuCisKKyMgTmFtZXMgb2YgdGhpcyBsaWJyYXJ5LgorbGlicmFyeV9u
YW1lcz0nbGliZ3Rlc3Quc28nCisKKyMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJy
YXJ5PworaW5zdGFsbGVkPXllcworCisjIFNob3VsZCB3ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5
IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1bGVzPworc2hvdWxkbm90bGluaz1ubworCisjIEZp
bGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KK2Rsb3Blbj0nJworZGxwcmVvcGVuPScnCisKKyMgRGly
ZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKK2xpYmRp
cj0nQENNQUtFX0lOU1RBTExfRlVMTF9MSUJESVJAJwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NWMzMDU0Yjg1MWRhYjRkOGZlNjhjNTYzZDk1NTI2NjgzMTgyNGMyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Nv
ZGVnZWFyL2d0ZXN0LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi3vu788
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAg
PFByb3BlcnR5R3JvdXA+DQotICAgIDxQcm9qZWN0R3VpZD57YmNhMzdhNzItNWIwNy00NmNmLWI0
NGUtODlmOGUwNjQ1MWEyfTwvUHJvamVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSIn
JChDb25maWcpJz09JyciPlJlbGVhc2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNl
KSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2Zn
XzEpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2Zn
XzE+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3Vw
Pg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9y
ICckKENmZ18yKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRy
dWU8L0NmZ18yPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVy
dHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQot
ICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD50cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0g
ICAgPE91dHB1dEV4dD5saWI8L091dHB1dEV4dD4NCi0gICAgPERDQ19DQnVpbGRlck91dHB1dD5K
UEhORTwvRENDX0NCdWlsZGVyT3V0cHV0Pg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmlu
ZXM+DQotICAgIDxEeW5hbWljUlRMPnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxVc2VQYWNrYWdl
cz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAgPFByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8
L1Byb2plY3RUeXBlPg0KLSAgICA8QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENv
bXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUu
YnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwu
YnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJw
aTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3Mu
YnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJw
aTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2
ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlT
eXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdl
Yl85MF8xMDAuYnBpO2RjbFppcEZvcmdlZDExLmJwaTt2Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9C
RFMyMDA2LmJwaTtHUjMyX0RTR05fQkRTMjAwNi5icGk7SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29y
ZUQxMVIuYnBpO0p2U3lzdGVtRDExUi5icGk7SnZTdGRDdHJsc0QxMVIuYnBpO0p2QXBwRnJtRDEx
Ui5icGk7SnZCYW5kc0QxMVIuYnBpO0p2REJEMTFSLmJwaTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQx
MVIuYnBpO0p2Q21wRDExUi5icGk7SnZDcnlwdEQxMVIuYnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1
c3RvbUQxMVIuYnBpO0p2RG9ja2luZ0QxMVIuYnBpO0p2RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVE
SUQxMVIuYnBpO0p2R2xvYnVzRDExUi5icGk7SnZITUlEMTFSLmJwaTtKdkludGVycHJldGVyRDEx
Ui5icGk7SnZKYW5zRDExUi5icGk7SnZNYW5hZ2VkVGhyZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJw
aTtKdk5ldEQxMVIuYnBpO0p2UGFnZUNvbXBzRDExUi5icGk7SnZQbHVnaW5EMTFSLmJwaTtKdlBy
aW50UHJldmlld0QxMVIuYnBpO0p2UnVudGltZURlc2lnbkQxMVIuYnBpO0p2VGltZUZyYW1ld29y
a0QxMVIuYnBpO0p2VmFsaWRhdG9yc0QxMVIuYnBpO0p2V2l6YXJkRDExUi5icGk7SnZYUEN0cmxz
RDExUi5icGk7VmNsU21wLmJwaTtDRXhjZXB0aW9uRXhwZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0
cz4NCi0gICAgPEJDQ193cGFyPmZhbHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQo
QkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNs
Oy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9JbmNsdWRlUGF0aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJz
PnJ0bC5saWI7dmNsLmxpYjwvQWxsUGFja2FnZUxpYnM+DQotICAgIDxUTElCX1BhZ2VTaXplPjMy
PC9UTElCX1BhZ2VTaXplPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYjskKEJE
UylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+
DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+
DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1
Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJV
RzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9J
TElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZh
bHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5j
cmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQot
ICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFi
bGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1
Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRp
YXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rp
c3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJD
Q19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9w
dGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktf
TGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktf
TGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4N
Ci0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+
DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENm
Z18yKSchPScnIj4NCi0gICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQot
ICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGly
Pg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGli
cmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8
L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNp
b25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFs
aXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBT
dGF0aWNMaWJyYXJ5PC9Cb3JsYW5kLlByb2plY3RUeXBlPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+
DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9u
SW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5jbHVkZVZlckluZm8iPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0luY0J1aWxkIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZl
cnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4w
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxW
ZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBO
YW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlNw
ZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFs
c2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJETEwiPkZhbHNlPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxlIj4xMDMzPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25JbmZvPjwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25J
bmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9u
SW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVy
c2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJz
aW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1lIj48L1Zl
cnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNp
b25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4w
PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJDb21tZW50cyI+PC9WZXJz
aW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tleXM+PERlYnVnZ2luZz48RGVidWdnaW5nIE5hbWU9
IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
TGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VMYXVuY2hlciI+RmFs
c2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWdDV0QiPjwvUGFyYW1ldGVycz48
UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGljYXRpb24iPjwvUGFyYW1ldGVycz48UGFyYW1ldGVy
cyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3Rl
UGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJh
bWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJh
bWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJl
bW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1i
b2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5
bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVk
U3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdl
cz4NCi0gICAgICANCi0gICAgICANCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChC
RFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIDIw
MDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICA8RXhjbHVkZWRf
UGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2V4cDEwMC5icGwiPkNvZGVHZWFyIEMr
K0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQot
ICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48TGlua2VyIE5hbWU9IkxpYlByZWZpeCI+
PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgiPjwvTGlua2VyPjxMaW5rZXIgTmFtZT0i
TGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFByb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0
UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZhbHNlPC9Qcm9qZWN0UHJvcGVydGllcz48
UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0aHMiPlRydWU8L1Byb2plY3RQcm9wZXJ0
aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJpZnlQYWNrYWdlcyI+VHJ1ZTwvUHJvamVj
dFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9IkNvdW50Ij4zPC9IaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTAi
PiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVc
dmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlz
dG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRT
KVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRl
Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGggTmFtZT0iSXRlbTIiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7
JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxzcmM7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3Rz
X2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5h
bWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxp
YlxvYmo7JChCRFMpXGxpYlxwc2RrPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48
L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVz
PjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxE
ZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hp
c3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlz
dHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9IkNv
dW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElC
X1BhZ2VTaXplIE5hbWU9Ikl0ZW0wIj4zMjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48
SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1lPSJJdGVtMSI+MTY8L0hpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemU+PC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjwvQ1BsdXNQ
bHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+
DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRC
aW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPE5v
bmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1kZWF0aC10ZXN0LmgiPg0KLSAgICAg
IDxCdWlsZE9yZGVyPjM8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1tZXNzYWdlLmgiPg0KLSAgICAgIDxCdWlsZE9y
ZGVyPjQ8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5c
aW5jbHVkZVxndGVzdFxndGVzdC1wYXJhbS10ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjU8
L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVk
ZVxndGVzdFxndGVzdC1zcGkuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+NjwvQnVpbGRPcmRlcj4N
Ci0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0
LXRlc3QtcGFydC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj43PC9CdWlsZE9yZGVyPg0KLSAgICA8
L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtdHlwZWQt
dGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj44PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNs
dWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0X3ByZWRfaW1wbC5oIj4NCi0gICAgICA8QnVpbGRP
cmRlcj4xPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluY2x1ZGVcZ3Rlc3RcZ3Rlc3RfcHJvZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4yPC9CdWls
ZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rl
c3RcaW50ZXJuYWxcZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVpbGRP
cmRlcj45PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtZmlsZXBhdGguaCI+DQotICAgICAgPEJ1aWxk
T3JkZXI+MTA8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0i
Li5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1pbnRlcm5hbC5oIj4NCi0gICAgICA8QnVp
bGRPcmRlcj4xMTwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LWxpbmtlZF9wdHIuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MTI8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRl
ZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNDwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0K
LSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LXBhcmFt
LXV0aWwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTM8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9u
ZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1w
b3J0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE1PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3Qtc3Ry
aW5nLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE2PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtdHlw
ZS11dGlsLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE3PC9CdWlsZE9yZGVyPg0KLSAgICA8L05v
bmU+DQotICAgIDxDcHBDb21waWxlIEluY2x1ZGU9Imd0ZXN0X2FsbC5jYyI+DQotICAgICAgPEJ1
aWxkT3JkZXI+MTg8L0J1aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxk
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwvS2V5Pg0K
LSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVpbGRDb25m
aWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFy
L2d0ZXN0Lmdyb3VwcHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0
Lmdyb3VwcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFmMzFjYWI2NDBiYjQ1
NDA4MTJmODhmNmZhMGZhY2M2ZjAxMGRiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdC5n
cm91cHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi3vu788UHJvamVjdCB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4N
Ci0gIDxQcm9wZXJ0eUdyb3VwPg0KLSAgICA8UHJvamVjdEd1aWQ+e2MxZDkyM2UwLTZjYmEtNDMz
Mi05YjZmLTM0MjBhY2JmNTA5MX08L1Byb2plY3RHdWlkPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0K
LSAgPEl0ZW1Hcm91cCAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9
Imd0ZXN0LmNicHJvaiIgLz4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0X21haW4uY2Jw
cm9qIiAvPg0KLSAgICA8UHJvamVjdHMgSW5jbHVkZT0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiAv
Pg0KLSAgPC9JdGVtR3JvdXA+DQotICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxCb3JsYW5k
LlBlcnNvbmFsaXR5PkRlZmF1bHQuUGVyc29uYWxpdHk8L0JvcmxhbmQuUGVyc29uYWxpdHk+DQot
ICAgIDxCb3JsYW5kLlByb2plY3RUeXBlIC8+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9y
bGFuZFByb2plY3QgeG1sbnM9IiI+PERlZmF1bHQuUGVyc29uYWxpdHk+PC9EZWZhdWx0LlBlcnNv
bmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4
dGVuc2lvbnM+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0Ij4NCi0gICAgPE1TQnVpbGQgUHJvamVj
dHM9Imd0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0
IE5hbWU9Imd0ZXN0OkNsZWFuIj4NCi0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0LmNicHJv
aiIgVGFyZ2V0cz0iQ2xlYW4iIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rl
c3Q6TWFrZSI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdC5jYnByb2oiIFRhcmdldHM9
Ik1ha2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfbWFpbiI+DQot
ICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW46Q2xlYW4iPg0KLSAgICA8
TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW46TWFrZSI+DQotICAgIDxN
U0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWluLmNicHJvaiIgVGFyZ2V0cz0iTWFrZSIgLz4NCi0g
IDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdCI+DQotICAgIDxNU0J1
aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwv
VGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdDpDbGVhbiI+DQotICAgIDxN
U0J1aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5jYnByb2oiIFRhcmdldHM9IkNsZWFuIiAv
Pg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X3VuaXR0ZXN0Ok1ha2UiPg0K
LSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJN
YWtlIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9IkJ1aWxkIj4NCi0gICAgPENh
bGxUYXJnZXQgVGFyZ2V0cz0iZ3Rlc3Q7Z3Rlc3RfbWFpbjtndGVzdF91bml0dGVzdCIgLz4NCi0g
IDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJDbGVhbiI+DQotICAgIDxDYWxsVGFyZ2V0IFRh
cmdldHM9Imd0ZXN0OkNsZWFuO2d0ZXN0X21haW46Q2xlYW47Z3Rlc3RfdW5pdHRlc3Q6Q2xlYW4i
IC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iTWFrZSI+DQotICAgIDxDYWxsVGFy
Z2V0IFRhcmdldHM9Imd0ZXN0Ok1ha2U7Z3Rlc3RfbWFpbjpNYWtlO2d0ZXN0X3VuaXR0ZXN0Ok1h
a2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxJbXBvcnQgQ29uZGl0aW9uPSJFeGlzdHMoJyQoTVNC
dWlsZEJpblBhdGgpXEJvcmxhbmQuR3JvdXAuVGFyZ2V0cycpIiBQcm9qZWN0PSIkKE1TQnVpbGRC
aW5QYXRoKVxCb3JsYW5kLkdyb3VwLlRhcmdldHMiIC8+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Nv
ZGVnZWFyL2d0ZXN0X2FsbC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X2FsbC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE3YWQ2OGFkMWNhYTVm
YjIwODM4YzcwMDg5NmE0MTgyYmE1OWQ5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9h
bGwuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSwg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBKb3NoIEtlbGxleSAoam9z
aGtlbEBnbWFpbC5jb20pCi0vLwotLy8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29v
Z2xlIFRlc3QpCi0vLwotLy8gQysrQnVpbGRlcidzIElERSBjYW5ub3QgYnVpbGQgYSBzdGF0aWMg
bGlicmFyeSBmcm9tIGZpbGVzIHdpdGggaHlwaGVucwotLy8gaW4gdGhlaXIgbmFtZS4gIFNlZSBo
dHRwOi8vcWMuY29kZWdlYXIuY29tL3djL3FjbWFpbi5hc3B4P2Q9NzA5NzcgLgotLy8gVGhpcyBm
aWxlIHNlcnZlcyBhcyBhIHdvcmthcm91bmQuCi0KLSNpbmNsdWRlICJzcmMvZ3Rlc3QtYWxsLmNj
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGlu
ay5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NTVlYmYyZjkxMTBlNjM1M2M2ODdjYzM5NDIz
NDhkYTc5N2NiNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYworKysgL2Rl
di9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgot
Ly8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IEpvc2ggS2VsbGV5IChqb3Noa2VsQGdtYWlsLmNv
bSkKLS8vCi0vLyBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKLS8v
Ci0vLyBMaW5rcyBndGVzdC5saWIgYW5kIGd0ZXN0X21haW4ubGliIGludG8gdGhlIGN1cnJlbnQg
cHJvamVjdCBpbiBDKytCdWlsZGVyLgotLy8gVGhpcyBtZWFucyB0aGF0IHRoZXNlIGxpYnJhcmll
cyBjYW4ndCBiZSByZW5hbWVkLCBidXQgaXQncyB0aGUgb25seSB3YXkgdG8KLS8vIGVuc3VyZSB0
aGF0IERlYnVnIHZlcnN1cyBSZWxlYXNlIHRlc3QgYnVpbGRzIGFyZSBsaW5rZWQgYWdhaW5zdCB0
aGUKLS8vIGFwcHJvcHJpYXRlIERlYnVnIG9yIFJlbGVhc2UgYnVpbGQgb2YgdGhlIGxpYnJhcmll
cy4KLQotI3ByYWdtYSBsaW5rICJndGVzdC5saWIiCi0jcHJhZ21hIGxpbmsgImd0ZXN0X21haW4u
bGliIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
bWFpbi5jYnByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWlu
LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc2Y2UxMzk4ZmYzOTMzMzMz
NzcyNWY0NDY2ZGE1NjNlOTgzMzU4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWlu
LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8UHJvcGVydHlHcm91
cD4NCi0gICAgPFByb2plY3RHdWlkPntiY2EzN2E3Mi01YjA3LTQ2Y2YtYjQ0ZS04OWY4ZTA2NDUx
YTJ9PC9Qcm9qZWN0R3VpZD4NCi0gICAgPENvbmZpZyBDb25kaXRpb249IickKENvbmZpZyknPT0n
JyI+UmVsZWFzZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0Jhc2UnIG9yICckKEJhc2UpJyE9JyciPg0KLSAg
ICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0RlYnVnJyBvciAnJChDZmdfMSknIT0nJyI+DQot
ICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMT50cnVlPC9DZmdfMT4NCi0gICAgPENm
Z1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nUmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9
JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQot
ICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChCYXNlKSchPScnIj4NCi0gICAgPEJDQ19PcHRp
bWl6ZUZvclNwZWVkPnRydWU8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8T3V0cHV0RXh0
PmxpYjwvT3V0cHV0RXh0Pg0KLSAgICA8RENDX0NCdWlsZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1
aWxkZXJPdXRwdXQ+DQotICAgIDxEZWZpbmVzPk5PX1NUUklDVDwvRGVmaW5lcz4NCi0gICAgPER5
bmFtaWNSVEw+dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAgPFVzZVBhY2thZ2VzPnRydWU8L1VzZVBh
Y2thZ2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwU3RhdGljTGlicmFyeTwvUHJvamVjdFR5cGU+
DQotICAgIDxCQ0NfQ1BQQ29tcGlsZUFsd2F5cz50cnVlPC9CQ0NfQ1BQQ29tcGlsZUFsd2F5cz4N
Ci0gICAgPFBhY2thZ2VJbXBvcnRzPnJ0bC5icGk7dmNsLmJwaTtiY2JpZS5icGk7dmNseC5icGk7
dmNsYWN0bmJhbmQuYnBpO3htbHJ0bC5icGk7YmNic21wLmJwaTtkYnJ0bC5icGk7dmNsZGIuYnBp
O2JkZXJ0bC5icGk7dmNsZGJ4LmJwaTtkc25hcC5icGk7ZHNuYXBjb24uYnBpO3ZjbGliLmJwaTtp
YnhwcmVzcy5icGk7YWRvcnRsLmJwaTtkYnhjZHMuYnBpO2RiZXhwcmVzcy5icGk7RGJ4Q29tbW9u
RHJpdmVyLmJwaTt3ZWJzbmFwLmJwaTt2Y2xpZS5icGk7d2ViZHNuYXAuYnBpO2luZXQuYnBpO2lu
ZXRkYmJkZS5icGk7aW5ldGRieHByZXNzLmJwaTtzb2FwcnRsLmJwaTtSYXZlNzVWQ0wuYnBpO3Rl
ZVVJLmJwaTt0ZWUuYnBpO3RlZWRiLmJwaTtJbmR5Q29yZS5icGk7SW5keVN5c3RlbS5icGk7SW5k
eVByb3RvY29scy5icGk7SW50cmF3ZWJEQl85MF8xMDAuYnBpO0ludHJhd2ViXzkwXzEwMC5icGk7
ZGNsWmlwRm9yZ2VkMTEuYnBpO3ZjbFppcEZvcmdlZDExLmJwaTtHUjMyX0JEUzIwMDYuYnBpO0dS
MzJfRFNHTl9CRFMyMDA2LmJwaTtKY2wuYnBpO0pjbFZjbC5icGk7SnZDb3JlRDExUi5icGk7SnZT
eXN0ZW1EMTFSLmJwaTtKdlN0ZEN0cmxzRDExUi5icGk7SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRz
RDExUi5icGk7SnZEQkQxMVIuYnBpO0p2RGxnc0QxMVIuYnBpO0p2QkRFRDExUi5icGk7SnZDbXBE
MTFSLmJwaTtKdkNyeXB0RDExUi5icGk7SnZDdHJsc0QxMVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7
SnZEb2NraW5nRDExUi5icGk7SnZEb3ROZXRDdHJsc0QxMVIuYnBpO0p2RURJRDExUi5icGk7SnZH
bG9idXNEMTFSLmJwaTtKdkhNSUQxMVIuYnBpO0p2SW50ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNE
MTFSLmJwaTtKdk1hbmFnZWRUaHJlYWRzRDExUi5icGk7SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5i
cGk7SnZQYWdlQ29tcHNEMTFSLmJwaTtKdlBsdWdpbkQxMVIuYnBpO0p2UHJpbnRQcmV2aWV3RDEx
Ui5icGk7SnZSdW50aW1lRGVzaWduRDExUi5icGk7SnZUaW1lRnJhbWV3b3JrRDExUi5icGk7SnZW
YWxpZGF0b3JzRDExUi5icGk7SnZXaXphcmREMTFSLmJwaTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xT
bXAuYnBpO0NFeGNlcHRpb25FeHBlcnQxMS5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAgICA8QkND
X3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7
JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGlu
Y2x1ZGU7Li48L0luY2x1ZGVQYXRoPg0KLSAgICA8QWxsUGFja2FnZUxpYnM+cnRsLmxpYjt2Y2wu
bGliPC9BbGxQYWNrYWdlTGlicz4NCi0gICAgPFRMSUJfUGFnZVNpemU+MzI8L1RMSUJfUGFnZVNp
emU+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQo
QkRTKVxsaWJccHNkazwvSUxJTktfTGlicmFyeVBhdGg+DQotICA8L1Byb3BlcnR5R3JvdXA+DQot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18xKSchPScnIj4NCi0gICAgPEJDQ19P
cHRpbWl6ZUZvclNwZWVkPmZhbHNlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPERDQ19P
cHRpbWl6ZT5mYWxzZTwvRENDX09wdGltaXplPg0KLSAgICA8RENDX0RlYnVnSW5mb0luRXhlPnRy
dWU8L0RDQ19EZWJ1Z0luZm9JbkV4ZT4NCi0gICAgPERlZmluZXM+X0RFQlVHOyQoRGVmaW5lcyk8
L0RlZmluZXM+DQotICAgIDxJTElOS19GdWxsRGVidWdJbmZvPnRydWU8L0lMSU5LX0Z1bGxEZWJ1
Z0luZm8+DQotICAgIDxCQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+ZmFsc2U8L0JDQ19Jbmxp
bmVGdW5jdGlvbkV4cGFuc2lvbj4NCi0gICAgPElMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtp
bmc+dHJ1ZTwvSUxJTktfRGlzYWJsZUluY3JlbWVudGFsTGlua2luZz4NCi0gICAgPEJDQ19Vc2VS
ZWdpc3RlclZhcmlhYmxlcz5Ob25lPC9CQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+DQotICAgIDxE
Q0NfRGVmaW5lPkRFQlVHPC9EQ0NfRGVmaW5lPg0KLSAgICA8QkNDX0RlYnVnTGluZU51bWJlcnM+
dHJ1ZTwvQkNDX0RlYnVnTGluZU51bWJlcnM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+
RGVidWc8L0ludGVybWVkaWF0ZU91dHB1dERpcj4NCi0gICAgPFRBU01fRGlzcGxheVNvdXJjZUxp
bmVzPnRydWU8L1RBU01fRGlzcGxheVNvdXJjZUxpbmVzPg0KLSAgICA8QkNDX1N0YWNrRnJhbWVz
PnRydWU8L0JDQ19TdGFja0ZyYW1lcz4NCi0gICAgPEJDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz50
cnVlPC9CQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4k
KEJEUylcbGliXGRlYnVnOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4N
Ci0gICAgPFRBU01fRGVidWdnaW5nPkZ1bGw8L1RBU01fRGVidWdnaW5nPg0KLSAgICA8QkNDX1Nv
dXJjZURlYnVnZ2luZ09uPnRydWU8L0JDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj4NCi0gIDwvUHJvcGVy
dHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzIpJyE9JyciPg0K
LSAgICA8RGVmaW5lcz5OREVCVUc7JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPEludGVybWVk
aWF0ZU91dHB1dERpcj5SZWxlYXNlPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxJTElO
S19MaWJyYXJ5UGF0aD4kKEJEUylcbGliXHJlbGVhc2U7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lM
SU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1Z2dpbmc+Tm9uZTwvVEFTTV9EZWJ1Z2dp
bmc+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvamVjdEV4dGVuc2lvbnM+DQotICAgIDxC
b3JsYW5kLlBlcnNvbmFsaXR5PkNQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk8L0JvcmxhbmQu
UGVyc29uYWxpdHk+DQotICAgIDxCb3JsYW5kLlByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8
L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFBy
b2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk+PFZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJNaW5vclZlciI+
MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5h
bWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByZVJlbGVh
c2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcml2YXRlIj5GYWxzZTwvVmVyc2lvbklu
Zm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJDb2Rl
UGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJz
aW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9uIj48L1ZlcnNpb25JbmZvS2V5cz48VmVy
c2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+
PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmlnaHQiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1hcmtzIj48L1ZlcnNpb25JbmZvS2V5cz48
VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmlsZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlz
PjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxW
ZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25JbmZv
S2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1lbnRzIj48L1ZlcnNpb25JbmZvS2V5cz48
L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VE
aXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMYXVuY2hlciI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVy
cz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90
ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXRoIj48L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFt
ZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
UmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlRGVidWciPkZh
bHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBh
dGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwv
UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkVW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxz
ZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxF
eGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAwLmJwbCI+Q29k
ZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1Bh
Y2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9m
ZmljZXhwMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2VydmVycyBQYWNr
YWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdlcz48TGlua2Vy
PjxMaW5rZXIgTmFtZT0iTGliUHJlZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlN1ZmZp
eCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48L0xpbmtlcj48
UHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+
RmFsc2U8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQ
YXRocyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZl
cmlmeVBhY2thZ2VzIj5UcnVlPC9Qcm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQcm9wZXJ0aWVz
PjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGgg
TmFtZT0iQ291bnQiPjM8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNf
aGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVc
ZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hpc3Rv
cnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJ
dGVtMSI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5j
bHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRo
PjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7
JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXHNy
YzsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19o
bEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obElM
SU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJ
dGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0hpc3RvcnlM
aXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGg+PEhpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0i
Q291bnQiPjE8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMg
TmFtZT0iSXRlbTAiPk5PX1NUUklDVDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3RvcnlM
aXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemUgTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFn
ZVNpemU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemUgTmFtZT0iSXRlbTAiPjMyPC9IaXN0
b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5h
bWU9Ikl0ZW0xIj4xNjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48L0hpc3RvcnlMaXN0
c19obFRMSUJfUGFnZVNpemU+PC9DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFu
ZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8
SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+
DQotICA8SXRlbUdyb3VwPg0KLSAgICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlxzcmNcZ3Rlc3Rf
bWFpbi5jYyI+DQotICAgICAgPEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9DcHBD
b21waWxlPg0KLSAgICA8QnVpbGRDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnIj4NCi0gICAg
ICA8S2V5PkNmZ18xPC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgICA8QnVp
bGRDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2UiPg0KLSAgICAgIDxLZXk+Q2ZnXzI8L0tl
eT4NCi0gICAgPC9CdWlsZENvbmZpZ3VyYXRpb24+DQotICA8L0l0ZW1Hcm91cD4NCi08L1Byb2pl
Y3Q+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
dW5pdHRlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
dW5pdHRlc3QuY2Jwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzVkYjhlNGRh
NTk0NTdmYzhlZmFhMmQ2Y2NlYTg3YzZiODRkYmQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X3VuaXR0ZXN0LmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLe+7vzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQotICA8
UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlkPntlZWE2MzM5My01YWM1LTRiOWMtODkw
OS1kNzVmZWYyZGFhNDF9PC9Qcm9qZWN0R3VpZD4NCi0gICAgPENvbmZpZyBDb25kaXRpb249Iick
KENvbmZpZyknPT0nJyI+UmVsZWFzZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0Jhc2UnIG9yICckKEJhc2Up
JyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0RlYnVnJyBvciAnJChDZmdf
MSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdfMT50cnVlPC9DZmdf
MT4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+
DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nUmVsZWFzZScgb3Ig
JyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1
ZTwvQ2ZnXzI+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0
eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChCYXNlKSchPScnIj4NCi0g
ICAgPE91dHB1dEV4dD5leGU8L091dHB1dEV4dD4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVk
PnRydWU8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0Rl
ZmluZXM+DQotICAgIDxEQ0NfQ0J1aWxkZXJPdXRwdXQ+SlBITkU8L0RDQ19DQnVpbGRlck91dHB1
dD4NCi0gICAgPER5bmFtaWNSVEw+dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAgPElMSU5LX09iamVj
dFNlYXJjaFBhdGg+Li5cdGVzdDwvSUxJTktfT2JqZWN0U2VhcmNoUGF0aD4NCi0gICAgPFVzZVBh
Y2thZ2VzPnRydWU8L1VzZVBhY2thZ2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwQ29uc29sZUFw
cGxpY2F0aW9uPC9Qcm9qZWN0VHlwZT4NCi0gICAgPE5vVkNMPnRydWU8L05vVkNMPg0KLSAgICA8
QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQ
YWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5i
YW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwu
YnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3Mu
YnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5i
cGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUu
YnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7
dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2Nv
bHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO0pjbC5icGk7
SmNsVmNsLmJwaTtKdkNvcmVEMTFSLmJwaTtKdlN5c3RlbUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFS
LmJwaTtKdkFwcEZybUQxMVIuYnBpO0p2QmFuZHNEMTFSLmJwaTtKdkRCRDExUi5icGk7SnZEbGdz
RDExUi5icGk7SnZCREVEMTFSLmJwaTtKdkNtcEQxMVIuYnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0
cmxzRDExUi5icGk7SnZDdXN0b21EMTFSLmJwaTtKdkRvY2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0
cmxzRDExUi5icGk7SnZFRElEMTFSLmJwaTtKdkdsb2J1c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7
SnZJbnRlcnByZXRlckQxMVIuYnBpO0p2SmFuc0QxMVIuYnBpO0p2TWFuYWdlZFRocmVhZHNEMTFS
LmJwaTtKdk1NRDExUi5icGk7SnZOZXREMTFSLmJwaTtKdlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1
Z2luRDExUi5icGk7SnZQcmludFByZXZpZXdEMTFSLmJwaTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJw
aTtKdlRpbWVGcmFtZXdvcmtEMTFSLmJwaTtKdlZhbGlkYXRvcnNEMTFSLmJwaTtKdldpemFyZEQx
MVIuYnBpO0p2WFBDdHJsc0QxMVIuYnBpO1ZjbFNtcC5icGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAg
ICA8QkNDX3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAgICA8SW5jbHVkZVBhdGg+JChCRFMpXGlu
Y2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5j
bHVkZTsuLlx0ZXN0Oy4uPC9JbmNsdWRlUGF0aD4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQo
QkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrOy4uXHRlc3Q8L0lMSU5LX0xp
YnJhcnlQYXRoPg0KLSAgICA8TXVsdGl0aHJlYWRlZD50cnVlPC9NdWx0aXRocmVhZGVkPg0KLSAg
PC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSkn
IT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9y
U3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERD
Q19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVz
Pl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50
cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5z
aW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNh
YmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtp
bmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVy
VmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJD
Q19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50
ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxU
QVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0g
ICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlz
YWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8
SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwv
SUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVn
Z2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdn
aW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENmZ18yKSchPScnIj4NCi0gICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmlu
ZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0
cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJ
TktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5n
Pk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RF
eHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBl
cnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlw
ZT5DcHBDb25zb2xlQXBwbGljYXRpb248L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3Js
YW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxp
dHk+PFZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJNaW5vclZlciI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9
IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZl
cnNpb25JbmZvIE5hbWU9IlByZVJlbGVhc2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQ
cml2YXRlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJDb2RlUGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUi
PjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9u
Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4x
LjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmln
aHQiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1h
cmtzIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmls
ZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNp
b24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1l
bnRzIj48L1ZlcnNpb25JbmZvS2V5cz48L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1
Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VEaXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1l
dGVycyBOYW1lPSJMYXVuY2hlciI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxh
dW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJSZW1vdGVQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFy
YW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRl
cnMgTmFtZT0iUmVtb3RlRGVidWciPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9
IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBhdGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2Fk
VW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxzZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1
ZGVkX1BhY2thZ2VzPg0KLSAgICAgIA0KLSAgICAgIA0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdl
cyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRl
ciBPZmZpY2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAg
IDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZXhwMTAwLmJwbCI+
Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9Q
YWNrYWdlcz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdlcz48TGlua2VyPjxMaW5rZXIgTmFtZT0i
TGliUHJlZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExp
bmtlciBOYW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48L0xpbmtlcj48UHJvamVjdFByb3BlcnRp
ZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+RmFsc2U8L1Byb2plY3RQ
cm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJv
amVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5U
cnVlPC9Qcm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQcm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNf
aGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iQ291bnQiPjM8
L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBO
YW1lPSJJdGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJE
UylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTsuLlx0ZXN0Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTEiPiQoQkRTKVxp
bmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXGlu
Y2x1ZGU7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19o
bEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0yIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxk
aW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJ
bmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJ
TElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0i
Q291bnQiPjE8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9i
ajskKEJEUylcbGliXHBzZGs7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylc
bGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFt
ZT0iSXRlbTIiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrOyQoT1VU
UFVURElSKTsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3Rv
cnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0
b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4yPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVz
PjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlM
aXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0iSXRlbTEiPlNUUklD
VDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9DUGx1
c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVj
dD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWls
ZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+DQotICA8SXRlbUdyb3VwPg0KLSAgICA8
Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4NCi0gICAgICA8
QnVpbGRPcmRlcj4wPC9CdWlsZE9yZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxDcHBD
b21waWxlIEluY2x1ZGU9Imd0ZXN0X2xpbmsuY2MiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE8L0J1
aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29u
ZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4N
Ci0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAg
PC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjU0YzhjNGIzMTg4NWQyNTcxZmEyMzAwYjYzMWU4YmY5ZDk1YWUwNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jb25maWd1cmUuYWMKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi1tNF9pbmNsdWRl
KG00L2FjeF9wdGhyZWFkLm00KQotCi0jIEF0IHRoaXMgcG9pbnQsIHRoZSBYY29kZSBwcm9qZWN0
IGFzc3VtZXMgdGhlIHZlcnNpb24gc3RyaW5nIHdpbGwgYmUgdGhyZWUKLSMgaW50ZWdlcnMgc2Vw
YXJhdGVkIGJ5IHBlcmlvZHMgYW5kIHN1cnJvdW5kZWQgYnkgc3F1YXJlIGJyYWNrZXRzIChlLmcu
Ci0jICJbMS4wLjFdIikuIEl0IGFsc28gYXN1bWVzIHRoYXQgdGhlcmUgd29uJ3QgYmUgYW55IGNs
b3NpbmcgcGFyZW50aGVzaXMKLSMgYmV0d2VlbiAiQUNfSU5JVCgiIGFuZCB0aGUgY2xvc2luZyAi
KSIgaW5jbHVkaW5nIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgotQUNfSU5JVChbR29vZ2xlIEMrKyBU
ZXN0aW5nIEZyYW1ld29ya10sCi0gICAgICAgIFsxLjguMF0sCi0gICAgICAgIFtnb29nbGV0ZXN0
ZnJhbWV3b3JrQGdvb2dsZWdyb3Vwcy5jb21dLAotICAgICAgICBbZ3Rlc3RdKQotCi0jIFByb3Zp
ZGUgdmFyaW91cyBvcHRpb25zIHRvIGluaXRpYWxpemUgdGhlIEF1dG9jb25mIGFuZCBjb25maWd1
cmUgcHJvY2Vzc2VzLgotQUNfUFJFUkVRKFsyLjU5XSkKLUFDX0NPTkZJR19TUkNESVIoWy4vTElD
RU5TRV0pCi1BQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCi1BQ19DT05GSUdfQVVYX0RJUihbYnVp
bGQtYXV4XSkKLUFDX0NPTkZJR19IRUFERVJTKFtidWlsZC1hdXgvY29uZmlnLmhdKQotQUNfQ09O
RklHX0ZJTEVTKFtNYWtlZmlsZV0pCi1BQ19DT05GSUdfRklMRVMoW3NjcmlwdHMvZ3Rlc3QtY29u
ZmlnXSwgW2NobW9kICt4IHNjcmlwdHMvZ3Rlc3QtY29uZmlnXSkKLQotIyBJbml0aWFsaXplIEF1
dG9tYWtlIHdpdGggdmFyaW91cyBvcHRpb25zLiBXZSByZXF1aXJlIGF0IGxlYXN0IHYxLjksIHBy
ZXZlbnQKLSMgcGVkYW50aWMgY29tcGxhaW50cyBhYm91dCBwYWNrYWdlIGZpbGVzLCBhbmQgZW5h
YmxlIHZhcmlvdXMgZGlzdHJpYnV0aW9uCi0jIHRhcmdldHMuCi1BTV9JTklUX0FVVE9NQUtFKFsx
LjkgZGlzdC1iemlwMiBkaXN0LXppcCBmb3JlaWduIHN1YmRpci1vYmplY3RzXSkKLQotIyBDaGVj
ayBmb3IgcHJvZ3JhbXMgdXNlZCBpbiBidWlsZGluZyBHb29nbGUgVGVzdC4KLUFDX1BST0dfQ0MK
LUFDX1BST0dfQ1hYCi1BQ19MQU5HKFtDKytdKQotQUNfUFJPR19MSUJUT09MCi0KLSMgVE9ETyhj
aGFuZGxlcmNAZ29vZ2xlLmNvbSk6IEN1cnJlbnRseSB3ZSBhcmVuJ3QgcnVubmluZyB0aGUgUHl0
aG9uIHRlc3RzCi0jIGFnYWluc3QgdGhlIGludGVycHJldGVyIGRldGVjdGVkIGJ5IEFNX1BBVEhf
UFlUSE9OLCBhbmQgc28gd2UgY29uZGl0aW9uCi0jIEhBVkVfUFlUSE9OIGJ5IHJlcXVpcmluZyAi
cHl0aG9uIiB0byBiZSBpbiB0aGUgUEFUSCwgYW5kIHRoYXQgaW50ZXJwcmV0ZXIncwotIyB2ZXJz
aW9uIHRvIGJlID49IDIuMy4gVGhpcyB3aWxsIGFsbG93IHRoZSBzY3JpcHRzIHRvIHVzZSBhICIv
dXNyL2Jpbi9lbnYiCi0jIGhhc2hiYW5nLgotUFlUSE9OPSAgIyBXZSAqZG8gbm90KiBhbGxvdyB0
aGUgdXNlciB0byBzcGVjaWZ5IGEgcHl0aG9uIGludGVycHJldGVyCi1BQ19QQVRIX1BST0coW1BZ
VEhPTl0sW3B5dGhvbl0sWzpdKQotQVNfSUYoW3Rlc3QgIiRQWVRIT04iICE9ICI6Il0sCi0gICAg
ICBbQU1fUFlUSE9OX0NIRUNLX1ZFUlNJT04oWyRQWVRIT05dLFsyLjNdLFs6XSxbUFlUSE9OPSI6
Il0pXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX1BZVEhPTl0sW3Rlc3QgIiRQWVRIT04iICE9ICI6
Il0pCi0KLSMgQ29uZmlndXJlIHB0aHJlYWRzLgotQUNfQVJHX1dJVEgoW3B0aHJlYWRzXSwKLSAg
ICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXB0aHJlYWRzXSwKLSAgICAgICAgICAg
ICAgIFt1c2UgcHRocmVhZHMgKGRlZmF1bHQgaXMgeWVzKV0pXSwKLSAgICAgICAgICAgIFt3aXRo
X3B0aHJlYWRzPSR3aXRodmFsXSwKLSAgICAgICAgICAgIFt3aXRoX3B0aHJlYWRzPWNoZWNrXSkK
LQotaGF2ZV9wdGhyZWFkcz1ubwotQVNfSUYoW3Rlc3QgIngkd2l0aF9wdGhyZWFkcyIgIT0gInhu
byJdLAotICAgICAgW0FDWF9QVEhSRUFEKAotICAgICAgICBbXSwKLSAgICAgICAgW0FTX0lGKFt0
ZXN0ICJ4JHdpdGhfcHRocmVhZHMiICE9ICJ4Y2hlY2siXSwKLSAgICAgICAgICAgICAgIFtBQ19N
U0dfRkFJTFVSRSgKLSAgICAgICAgICAgICAgICAgWy0td2l0aC1wdGhyZWFkcyB3YXMgc3BlY2lm
aWVkLCBidXQgdW5hYmxlIHRvIGJlIHVzZWRdKV0pXSkKLSAgICAgICBoYXZlX3B0aHJlYWRzPSIk
YWN4X3B0aHJlYWRfb2siXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX1BUSFJFQURTXSxbdGVzdCAi
eCRoYXZlX3B0aHJlYWRzIiA9ICJ4eWVzIl0pCi1BQ19TVUJTVChQVEhSRUFEX0NGTEFHUykKLUFD
X1NVQlNUKFBUSFJFQURfTElCUykKLQotIyBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKSBDaGVj
ayBmb3IgdGhlIG5lY2Vzc2FyeSBzeXN0ZW0gaGVhZGVycy4KLQotIyBUT0RPKGNoYW5kbGVyY0Bn
b29nbGUuY29tKSBDaGVjayB0aGUgdHlwZXMsIHN0cnVjdHVyZXMsIGFuZCBvdGhlciBjb21waWxl
cgotIyBhbmQgYXJjaGl0ZWN0dXJlIGNoYXJhY3RlcmlzdGljcy4KLQotIyBPdXRwdXQgdGhlIGdl
bmVyYXRlZCBmaWxlcy4gTm8gZnVydGhlciBhdXRvY29uZiBtYWNyb3MgbWF5IGJlIHVzZWQuCi1B
Q19PVVRQVVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29u
ZmlnLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Qa2djb25maWcubWQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NjEyODk0ZDJhM2M4ZWFkYjQ0MmM1NTg3ODA0ZmI3
Nzg1ZWFhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Qa2djb25maWcubWQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDYgKzAsMCBAQAotIyMgVXNpbmcgR29vZ2xlVGVzdCBmcm9tIHZhcmlvdXMgYnVpbGQg
c3lzdGVtcyAjIwotCi1Hb29nbGVUZXN0IGNvbWVzIHdpdGggcGtnLWNvbmZpZyBmaWxlcyB0aGF0
IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBhbGwKLW5lY2Vzc2FyeSBmbGFncyBmb3IgY29tcGls
aW5nIGFuZCBsaW5raW5nIHRvIEdvb2dsZVRlc3QgKGFuZCBHb29nbGVNb2NrKS4KLVBrZy1jb25m
aWcgaXMgYSBzdGFuZGFyZGlzZWQgcGxhaW4tdGV4dCBmb3JtYXQgY29udGFpbmluZwotCi0gICog
dGhlIGluY2x1ZGVkaXIgKC1JKSBwYXRoCi0gICogbmVjZXNzYXJ5IG1hY3JvICgtRCkgZGVmaW5p
dGlvbnMKLSAgKiBmdXJ0aGVyIHJlcXVpcmVkIGZsYWdzICgtcHRocmVhZCkKLSAgKiB0aGUgbGli
cmFyeSAoLUwpIHBhdGgKLSAgKiB0aGUgbGlicmFyeSAoLWwpIHRvIGxpbmsgdG8KLQotQWxsIGN1
cnJlbnQgYnVpbGQgc3lzdGVtcyBzdXBwb3J0IHBrZy1jb25maWcgaW4gb25lIHdheSBvciBhbm90
aGVyLiBGb3IKLWFsbCBleGFtcGxlcyBoZXJlIHdlIGFzc3VtZSB5b3Ugd2FudCB0byBjb21waWxl
IHRoZSBzYW1wbGUKLWBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NgLgotCi0KLSMjIyBDTWFr
ZSAjIyMKLQotVXNpbmcgYHBrZy1jb25maWdgIGluIENNYWtlIGlzIGZhaXJseSBlYXN5OgotCi1g
YGAKLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjApCi0KLWNtYWtlX3BvbGljeShT
RVQgQ01QMDA0OCBORVcpCi1wcm9qZWN0KG15X2d0ZXN0X3BrZ2NvbmZpZyBWRVJTSU9OIDAuMC4x
IExBTkdVQUdFUyBDWFgpCi0KLWZpbmRfcGFja2FnZShQa2dDb25maWcpCi1wa2dfc2VhcmNoX21v
ZHVsZShHVEVTVCBSRVFVSVJFRCBndGVzdF9tYWluKQotCi1hZGRfZXhlY3V0YWJsZSh0ZXN0YXBw
IHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYykKLXRhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0
YXBwICR7R1RFU1RfTERGTEFHU30pCi10YXJnZXRfY29tcGlsZV9vcHRpb25zKHRlc3RhcHAgUFVC
TElDICR7R1RFU1RfQ0ZMQUdTfSkKLQotaW5jbHVkZShDVGVzdCkKLWFkZF90ZXN0KGZpcnN0X2Fu
ZF9vbmx5X3Rlc3QgdGVzdGFwcCkKLWBgYAotCi1JdCBpcyBnZW5lcmFsbHkgcmVjb21tZW5kZWQg
dGhhdCB5b3UgdXNlIGB0YXJnZXRfY29tcGlsZV9vcHRpb25zYCArIGBfQ0ZMQUdTYAotb3ZlciBg
dGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXNgICsgYF9JTkNMVURFX0RJUlNgIGFzIHRoZSBmb3Jt
ZXIgaW5jbHVkZXMgbm90Ci1qdXN0IC1JIGZsYWdzIChHb29nbGVUZXN0IG1pZ2h0IHJlcXVpcmUg
YSBtYWNybyBpbmRpY2F0aW5nIHRvIGludGVybmFsIGhlYWRlcnMKLXRoYXQgYWxsIGxpYnJhcmll
cyBoYXZlIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRpbmcgZW5hYmxlZC4gSW4gYWRkaXRpb24s
Ci1Hb29nbGVUZXN0IG1pZ2h0IGFsc28gcmVxdWlyZSBgLXB0aHJlYWRgIGluIHRoZSBjb21waWxp
bmcgc3RlcCwgYW5kIGFzIHN1Y2gKLXNwbGl0dGluZyB0aGUgcGtnLWNvbmZpZyBgQ2ZsYWdzYCB2
YXJpYWJsZSBpbnRvIGluY2x1ZGUgZGlycyBhbmQgbWFjcm9zIGZvcgotYHRhcmdldF9jb21waWxl
X2RlZmluaXRpb25zKClgIG1pZ2h0IHN0aWxsIG1pc3MgdGhpcykuIFRoZSBzYW1lIHJlY29tbWVu
ZGF0aW9uCi1nb2VzIGZvciB1c2luZyBgX0xERkxBR1NgIG92ZXIgdGhlIG1vcmUgY29tbW9ucGxh
Y2UgYF9MSUJSQVJJRVNgLCB3aGljaAotaGFwcGVucyB0byBkaXNjYXJkIGAtTGAgZmxhZ3MgYW5k
IGAtcHRocmVhZGAuCi0KLQotIyMjIEF1dG90b29scyAjIyMKLQotRmluZGluZyBHb29nbGVUZXN0
IGluIEF1dG9jb25mIGFuZCB1c2luZyBpdCBmcm9tIEF1dG9tYWtlIGlzIGFsc28gZmFpcmx5IGVh
c3k6Ci0KLUluIHlvdXIgYGNvbmZpZ3VyZS5hY2A6Ci0KLWBgYAotQUNfUFJFUkVRKFsyLjY5XSkK
LUFDX0lOSVQoW215X2d0ZXN0X3BrZ2NvbmZpZ10sIFswLjAuMV0pCi1BQ19DT05GSUdfU1JDRElS
KFtzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NdKQotQUNfUFJPR19DWFgKLQotUEtHX0NIRUNL
X01PRFVMRVMoW0dURVNUXSwgW2d0ZXN0X21haW5dKQotCi1BTV9JTklUX0FVVE9NQUtFKFtmb3Jl
aWduIHN1YmRpci1vYmplY3RzXSkKLUFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQotQUNfT1VU
UFVUCi1gYGAKLQotYW5kIGluIHlvdXIgYE1ha2VmaWxlLmFtYDoKLQotYGBgCi1jaGVja19QUk9H
UkFNUyA9IHRlc3RhcHAKLVRFU1RTID0gJChjaGVja19QUk9HUkFNUykKLQotdGVzdGFwcF9TT1VS
Q0VTID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi10ZXN0YXBwX0NYWEZMQUdTID0gJChH
VEVTVF9DRkxBR1MpCi10ZXN0YXBwX0xEQUREID0gJChHVEVTVF9MSUJTKQotYGBgCi0KLQotIyMj
IE1lc29uICMjIwotCi1NZXNvbiBuYXRpdmVseSB1c2VzIHBrZ2NvbmZpZyB0byBxdWVyeSBkZXBl
bmRlbmNpZXM6Ci0KLWBgYAotcHJvamVjdCgnbXlfZ3Rlc3RfcGtnY29uZmlnJywgJ2NwcCcsIHZl
cnNpb24gOiAnMC4wLjEnKQotCi1ndGVzdF9kZXAgPSBkZXBlbmRlbmN5KCdndGVzdF9tYWluJykK
LQotdGVzdGFwcCA9IGV4ZWN1dGFibGUoCi0gICd0ZXN0YXBwJywKLSAgZmlsZXMoWydzYW1wbGVz
L3NhbXBsZTNfdW5pdHRlc3QuY2MnXSksCi0gIGRlcGVuZGVuY2llcyA6IGd0ZXN0X2RlcCwKLSAg
aW5zdGFsbCA6IGZhbHNlKQotCi10ZXN0KCdmaXJzdF9hbmRfb25seV90ZXN0JywgdGVzdGFwcCkK
LWBgYAotCi0KLSMjIyBQbGFpbiBNYWtlZmlsZXMgIyMjCi0KLVNpbmNlIGBwa2ctY29uZmlnYCBp
cyBhIHNtYWxsIFVuaXggY29tbWFuZC1saW5lIHV0aWxpdHksIGl0IGNhbiBiZSB1c2VkCi1pbiBo
YW5kd3JpdHRlbiBgTWFrZWZpbGVgcyB0b286Ci0KLWBgYAotR1RFU1RfQ0ZMQUdTID0gYHBrZy1j
b25maWcgLS1jZmxhZ3MgZ3Rlc3RfbWFpbmAKLUdURVNUX0xJQlMgPSBgcGtnLWNvbmZpZyAtLWxp
YnMgZ3Rlc3RfbWFpbmAKLQotLlBIT05ZOiB0ZXN0cyBhbGwKLQotdGVzdHM6IGFsbAotCS4vdGVz
dGFwcAotCi1hbGw6IHRlc3RhcHAKLQotdGVzdGFwcDogdGVzdGFwcC5vCi0JJChDWFgpICQoQ1hY
RkxBR1MpICQoTERGTEFHUykgJDwgLW8gJEAgJChHVEVTVF9MSUJTKQotCi10ZXN0YXBwLm86IHNh
bXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwotCSQoQ1hYKSAkKENQUEZMQUdTKSAkKENYWEZMQUdT
KSAkPCAtYyAtbyAkQCAkKEdURVNUX0NGTEFHUykKLWBgYAotCi0KLSMjIyBIZWxwISBwa2ctY29u
ZmlnIGNhbid0IGZpbmQgR29vZ2xlVGVzdCEgIyMjCi0KLUxldCdzIHNheSB5b3UgaGF2ZSBhIGBD
TWFrZUxpc3RzLnR4dGAgYWxvbmcgdGhlIGxpbmVzIG9mIHRoZSBvbmUgaW4gdGhpcwotdHV0b3Jp
YWwgYW5kIHlvdSB0cnkgdG8gcnVuIGBjbWFrZWAuIEl0IGlzIHZlcnkgcG9zc2libGUgdGhhdCB5
b3UgZ2V0IGEKLWZhaWx1cmUgYWxvbmcgdGhlIGxpbmVzIG9mOgotCi1gYGAKLS0tIENoZWNraW5n
IGZvciBvbmUgb2YgdGhlIG1vZHVsZXMgJ2d0ZXN0X21haW4nCi1DTWFrZSBFcnJvciBhdCAvdXNy
L3NoYXJlL2NtYWtlL01vZHVsZXMvRmluZFBrZ0NvbmZpZy5jbWFrZTo2NDAgKG1lc3NhZ2UpOgot
ICBOb25lIG9mIHRoZSByZXF1aXJlZCAnZ3Rlc3RfbWFpbicgZm91bmQKLWBgYAotCi1UaGVzZSBm
YWlsdXJlcyBhcmUgY29tbW9uIGlmIHlvdSBpbnN0YWxsZWQgR29vZ2xlVGVzdCB5b3Vyc2VsZiBh
bmQgaGF2ZSBub3QKLXNvdXJjZWQgaXQgZnJvbSBhIGRpc3RybyBvciBvdGhlciBwYWNrYWdlIG1h
bmFnZXIuIElmIHNvLCB5b3UgbmVlZCB0byB0ZWxsCi1wa2ctY29uZmlnIHdoZXJlIGl0IGNhbiBm
aW5kIHRoZSBgLnBjYCBmaWxlcyBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbi4KLVNheSB5b3Ug
aW5zdGFsbGVkIEdvb2dsZVRlc3QgdG8gYC91c3IvbG9jYWxgLCB0aGVuIGl0IG1pZ2h0IGJlIHRo
YXQgdGhlCi1gLnBjYCBmaWxlcyBhcmUgaW5zdGFsbGVkIHVuZGVyIGAvdXNyL2xvY2FsL2xpYjY0
L3BrZ2NvbmZpZ2AuIElmIHlvdSBzZXQKLQotYGBgCi1leHBvcnQgUEtHX0NPTkZJR19QQVRIPS91
c3IvbG9jYWwvbGliNjQvcGtnY29uZmlnCi1gYGAKLQotcGtnLWNvbmZpZyB3aWxsIGFsc28gdHJ5
IHRvIGxvb2sgaW4gYFBLR19DT05GSUdfUEFUSGAgdG8gZmluZCBgZ3Rlc3RfbWFpbi5wY2AuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBNYW51YWwubWQgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBNYW51YWwubWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgyN2JiMjRiMDQyZGM1NDNhZjRjNDA5YWQwM2UxNDdlYTU5NDliN2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvZG9jcy9QdW1wTWFudWFsLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMTc3
ICswLDAgQEAKLQotCi08Yj5QPC9iPnVtcCBpcyA8Yj5VPC9iPnNlZnVsIGZvciA8Yj5NPC9iPmV0
YSA8Yj5QPC9iPnJvZ3JhbW1pbmcuCi0KLSMgVGhlIFByb2JsZW0gIwotCi1UZW1wbGF0ZSBhbmQg
bWFjcm8gbGlicmFyaWVzIG9mdGVuIG5lZWQgdG8gZGVmaW5lIG1hbnkgY2xhc3NlcywKLWZ1bmN0
aW9ucywgb3IgbWFjcm9zIHRoYXQgdmFyeSBvbmx5IChvciBhbG1vc3Qgb25seSkgaW4gdGhlIG51
bWJlciBvZgotYXJndW1lbnRzIHRoZXkgdGFrZS4gSXQncyBhIGxvdCBvZiByZXBldGl0aXZlLCBt
ZWNoYW5pY2FsLCBhbmQKLWVycm9yLXByb25lIHdvcmsuCi0KLVZhcmlhZGljIHRlbXBsYXRlcyBh
bmQgdmFyaWFkaWMgbWFjcm9zIGNhbiBhbGxldmlhdGUgdGhlIHByb2JsZW0uCi1Ib3dldmVyLCB3
aGlsZSBib3RoIGFyZSBiZWluZyBjb25zaWRlcmVkIGJ5IHRoZSBDKysgY29tbWl0dGVlLCBuZWl0
aGVyCi1pcyBpbiB0aGUgc3RhbmRhcmQgeWV0IG9yIHdpZGVseSBzdXBwb3J0ZWQgYnkgY29tcGls
ZXJzLiAgVGh1cyB0aGV5Ci1hcmUgb2Z0ZW4gbm90IGEgZ29vZCBjaG9pY2UsIGVzcGVjaWFsbHkg
d2hlbiB5b3VyIGNvZGUgbmVlZHMgdG8gYmUKLXBvcnRhYmxlLiBBbmQgdGhlaXIgY2FwYWJpbGl0
aWVzIGFyZSBzdGlsbCBsaW1pdGVkLgotCi1BcyBhIHJlc3VsdCwgYXV0aG9ycyBvZiBzdWNoIGxp
YnJhcmllcyBvZnRlbiBoYXZlIHRvIHdyaXRlIHNjcmlwdHMgdG8KLWdlbmVyYXRlIHRoZWlyIGlt
cGxlbWVudGF0aW9uLiBIb3dldmVyLCBvdXIgZXhwZXJpZW5jZSBpcyB0aGF0IGl0J3MKLXRlZGlv
dXMgdG8gd3JpdGUgc3VjaCBzY3JpcHRzLCB3aGljaCB0ZW5kIHRvIHJlZmxlY3QgdGhlIHN0cnVj
dHVyZSBvZgotdGhlIGdlbmVyYXRlZCBjb2RlIHBvb3JseSBhbmQgYXJlIG9mdGVuIGhhcmQgdG8g
cmVhZCBhbmQgZWRpdC4gRm9yCi1leGFtcGxlLCBhIHNtYWxsIGNoYW5nZSBuZWVkZWQgaW4gdGhl
IGdlbmVyYXRlZCBjb2RlIG1heSByZXF1aXJlIHNvbWUKLW5vbi1pbnR1aXRpdmUsIG5vbi10cml2
aWFsIGNoYW5nZXMgaW4gdGhlIHNjcmlwdC4gVGhpcyBpcyBlc3BlY2lhbGx5Ci1wYWluZnVsIHdo
ZW4gZXhwZXJpbWVudGluZyB3aXRoIHRoZSBjb2RlLgotCi0jIE91ciBTb2x1dGlvbiAjCi0KLVB1
bXAgKGZvciBQdW1wIGlzIFVzZWZ1bCBmb3IgTWV0YSBQcm9ncmFtbWluZywgUHJldHR5IFVzZWZ1
bCBmb3IgTWV0YQotUHJvZ3JhbW1pbmcsIG9yIFByYWN0aWNhbCBVdGlsaXR5IGZvciBNZXRhIFBy
b2dyYW1taW5nLCB3aGljaGV2ZXIgeW91Ci1wcmVmZXIpIGlzIGEgc2ltcGxlIG1ldGEtcHJvZ3Jh
bW1pbmcgdG9vbCBmb3IgQysrLiBUaGUgaWRlYSBpcyB0aGF0IGEKLXByb2dyYW1tZXIgd3JpdGVz
IGEgYGZvby5wdW1wYCBmaWxlIHdoaWNoIGNvbnRhaW5zIEMrKyBjb2RlIHBsdXMgbWV0YQotY29k
ZSB0aGF0IG1hbmlwdWxhdGVzIHRoZSBDKysgY29kZS4gVGhlIG1ldGEgY29kZSBjYW4gaGFuZGxl
Ci1pdGVyYXRpb25zIG92ZXIgYSByYW5nZSwgbmVzdGVkIGl0ZXJhdGlvbnMsIGxvY2FsIG1ldGEg
dmFyaWFibGUKLWRlZmluaXRpb25zLCBzaW1wbGUgYXJpdGhtZXRpYywgYW5kIGNvbmRpdGlvbmFs
IGV4cHJlc3Npb25zLiBZb3UgY2FuCi12aWV3IGl0IGFzIGEgc21hbGwgRG9tYWluLVNwZWNpZmlj
IExhbmd1YWdlLiBUaGUgbWV0YSBsYW5ndWFnZSBpcwotZGVzaWduZWQgdG8gYmUgbm9uLWludHJ1
c2l2ZSAocy50LiBpdCB3b24ndCBjb25mdXNlIEVtYWNzJyBDKysgbW9kZSwKLWZvciBleGFtcGxl
KSBhbmQgY29uY2lzZSwgbWFraW5nIFB1bXAgY29kZSBpbnR1aXRpdmUgYW5kIGVhc3kgdG8KLW1h
aW50YWluLgotCi0jIyBIaWdobGlnaHRzICMjCi0KLSAgKiBUaGUgaW1wbGVtZW50YXRpb24gaXMg
aW4gYSBzaW5nbGUgUHl0aG9uIHNjcmlwdCBhbmQgdGh1cyB1bHRyYSBwb3J0YWJsZTogbm8gYnVp
bGQgb3IgaW5zdGFsbGF0aW9uIGlzIG5lZWRlZCBhbmQgaXQgd29ya3MgY3Jvc3MgcGxhdGZvcm1z
LgotICAqIFB1bXAgdHJpZXMgdG8gYmUgc21hcnQgd2l0aCByZXNwZWN0IHRvIFtHb29nbGUncyBz
dHlsZSBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9zdHlsZWd1aWRlKTogaXQgYnJl
YWtzIGxvbmcgbGluZXMgKGVhc3kgdG8gaGF2ZSB3aGVuIHRoZXkgYXJlIGdlbmVyYXRlZCkgYXQg
YWNjZXB0YWJsZSBwbGFjZXMgdG8gZml0IHdpdGhpbiA4MCBjb2x1bW5zIGFuZCBpbmRlbnQgdGhl
IGNvbnRpbnVhdGlvbiBsaW5lcyBjb3JyZWN0bHkuCi0gICogVGhlIGZvcm1hdCBpcyBodW1hbi1y
ZWFkYWJsZSBhbmQgbW9yZSBjb25jaXNlIHRoYW4gWE1MLgotICAqIFRoZSBmb3JtYXQgd29ya3Mg
cmVsYXRpdmVseSB3ZWxsIHdpdGggRW1hY3MnIEMrKyBtb2RlLgotCi0jIyBFeGFtcGxlcyAjIwot
Ci1UaGUgZm9sbG93aW5nIFB1bXAgY29kZSAod2hlcmUgbWV0YSBrZXl3b3JkcyBzdGFydCB3aXRo
IGAkYCwgYFtbYCBhbmQgYF1dYCBhcmUgbWV0YSBicmFja2V0cywgYW5kIGAkJGAgc3RhcnRzIGEg
bWV0YSBjb21tZW50IHRoYXQgZW5kcyB3aXRoIHRoZSBsaW5lKToKLQotYGBgCi0kdmFyIG4gPSAz
ICAgICAkJCBEZWZpbmVzIGEgbWV0YSB2YXJpYWJsZSBuLgotJHJhbmdlIGkgMC4ubiAgJCQgRGVj
bGFyZXMgdGhlIHJhbmdlIG9mIG1ldGEgaXRlcmF0b3IgaSAoaW5jbHVzaXZlKS4KLSRmb3IgaSBb
WwotICAgICAgICAgICAgICAgJCQgTWV0YSBsb29wLgotLy8gRm9vJGkgZG9lcyBibGFoIGZvciAk
aS1hcnkgcHJlZGljYXRlcy4KLSRyYW5nZSBqIDEuLmkKLXRlbXBsYXRlIDxzaXplX3QgTiAkZm9y
IGogW1ssIHR5cGVuYW1lIEEkal1dPgotY2xhc3MgRm9vJGkgewotJGlmIGkgPT0gMCBbWwotICBi
bGFoIGE7Ci1dXSAkZWxpZiBpIDw9IDIgW1sKLSAgYmxhaCBiOwotXV0gJGVsc2UgW1sKLSAgYmxh
aCBjOwotXV0KLX07Ci0KLV1dCi1gYGAKLQotd2lsbCBiZSB0cmFuc2xhdGVkIGJ5IHRoZSBQdW1w
IGNvbXBpbGVyIHRvOgotCi1gYGAKLS8vIEZvbzAgZG9lcyBibGFoIGZvciAwLWFyeSBwcmVkaWNh
dGVzLgotdGVtcGxhdGUgPHNpemVfdCBOPgotY2xhc3MgRm9vMCB7Ci0gIGJsYWggYTsKLX07Ci0K
LS8vIEZvbzEgZG9lcyBibGFoIGZvciAxLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVf
dCBOLCB0eXBlbmFtZSBBMT4KLWNsYXNzIEZvbzEgewotICBibGFoIGI7Ci19OwotCi0vLyBGb28y
IGRvZXMgYmxhaCBmb3IgMi1hcnkgcHJlZGljYXRlcy4KLXRlbXBsYXRlIDxzaXplX3QgTiwgdHlw
ZW5hbWUgQTEsIHR5cGVuYW1lIEEyPgotY2xhc3MgRm9vMiB7Ci0gIGJsYWggYjsKLX07Ci0KLS8v
IEZvbzMgZG9lcyBibGFoIGZvciAzLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBO
LCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTIsIHR5cGVuYW1lIEEzPgotY2xhc3MgRm9vMyB7Ci0g
IGJsYWggYzsKLX07Ci1gYGAKLQotSW4gYW5vdGhlciBleGFtcGxlLAotCi1gYGAKLSRyYW5nZSBp
IDEuLm4KLUZ1bmMoJGZvciBpICsgW1thJGldXSk7Ci0kJCBUaGUgdGV4dCBiZXR3ZWVuIGkgYW5k
IFtbIGlzIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiBpdGVyYXRpb25zLgotYGBgCi0KLXdpbGwgZ2Vu
ZXJhdGUgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGluZXMgKHdpdGhvdXQgdGhlIGNvbW1lbnRzKSwg
ZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBgbmA6Ci0KLWBgYAotRnVuYygpOyAgICAgICAgICAg
ICAgLy8gSWYgbiBpcyAwLgotRnVuYyhhMSk7ICAgICAgICAgICAgLy8gSWYgbiBpcyAxLgotRnVu
YyhhMSArIGEyKTsgICAgICAgLy8gSWYgbiBpcyAyLgotRnVuYyhhMSArIGEyICsgYTMpOyAgLy8g
SWYgbiBpcyAzLgotLy8gQW5kIHNvIG9uLi4uCi1gYGAKLQotIyMgQ29uc3RydWN0cyAjIwotCi1X
ZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgbWV0YSBwcm9ncmFtbWluZyBjb25zdHJ1Y3RzOgotCi18
IGAkdmFyIGlkID0gZXhwYCB8IERlZmluZXMgYSBuYW1lZCBjb25zdGFudCB2YWx1ZS4gYCRpZGAg
aXMgdmFsaWQgdXRpbCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG1ldGEgbGV4aWNhbCBibG9jay4g
fAotfDotLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLXwKLXwgYCRyYW5nZSBpZCBleHAuLmV4cGAgfCBTZXRzIHRoZSByYW5nZSBvZiBhbiBpdGVy
YXRpb24gdmFyaWFibGUsIHdoaWNoIGNhbiBiZSByZXVzZWQgaW4gbXVsdGlwbGUgbG9vcHMgbGF0
ZXIuICAgICAgICAgIHwKLXwgYCRmb3IgaWQgc2VwIFtbIGNvZGUgXV1gIHwgSXRlcmF0aW9uLiBU
aGUgcmFuZ2Ugb2YgYGlkYCBtdXN0IGhhdmUgYmVlbiBkZWZpbmVkIGVhcmxpZXIuIGAkaWRgIGlz
IHZhbGlkIGluIGBjb2RlYC4gICAgICAgICB8Ci18IGAkKCQpYCAgICAgICAgICB8IEdlbmVyYXRl
cyBhIHNpbmdsZSBgJGAgY2hhcmFjdGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgJGlkYCAgICAgICAgICAgfCBWYWx1
ZSBvZiB0aGUgbmFtZWQgY29uc3RhbnQgb3IgaXRlcmF0aW9uIHZhcmlhYmxlLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCQoZXhwKWAgICAgICAgIHwg
VmFsdWUgb2YgdGhlIGV4cHJlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGAkaWYgZXhwIFtbIGNv
ZGUgXV0gZWxzZV9icmFuY2hgIHwgQ29uZGl0aW9uYWwuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8Ci18IGBbWyBjb2RlIF1dYCAgICB8IE1ldGEgbGV4aWNhbCBibG9jay4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAotfCBgY3BwX2NvZGVgICAgICAgfCBSYXcgQysrIGNvZGUuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKLXwgYCQkIGNvbW1lbnRgICAgIHwgTWV0YSBjb21tZW50LiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci0KLSoqTm90ZToqKiBUbyBnaXZlIHRoZSB1c2VyIHNvbWUgZnJlZWRv
bSBpbiBmb3JtYXR0aW5nIHRoZSBQdW1wIHNvdXJjZQotY29kZSwgUHVtcCBpZ25vcmVzIGEgbmV3
LWxpbmUgY2hhcmFjdGVyIGlmIGl0J3MgcmlnaHQgYWZ0ZXIgYCRmb3IgZm9vYAotb3IgbmV4dCB0
byBgW1tgIG9yIGBdXWAuIFdpdGhvdXQgdGhpcyBydWxlIHlvdSdsbCBvZnRlbiBiZSBmb3JjZWQg
dG8gd3JpdGUKLXZlcnkgbG9uZyBsaW5lcyB0byBnZXQgdGhlIGRlc2lyZWQgb3V0cHV0LiBUaGVy
ZWZvcmUgc29tZXRpbWVzIHlvdSBtYXkKLW5lZWQgdG8gaW5zZXJ0IGFuIGV4dHJhIG5ldy1saW5l
IGluIHN1Y2ggcGxhY2VzIGZvciBhIG5ldy1saW5lIHRvIHNob3cKLXVwIGluIHlvdXIgb3V0cHV0
LgotCi0jIyBHcmFtbWFyICMjCi0KLWBgYAotY29kZSA6Oj0gYXRvbWljX2NvZGUqCi1hdG9taWNf
Y29kZSA6Oj0gJHZhciBpZCA9IGV4cAotICAgIHwgJHZhciBpZCA9IFtbIGNvZGUgXV0KLSAgICB8
ICRyYW5nZSBpZCBleHAuLmV4cAotICAgIHwgJGZvciBpZCBzZXAgW1sgY29kZSBdXQotICAgIHwg
JCgkKQotICAgIHwgJGlkCi0gICAgfCAkKGV4cCkKLSAgICB8ICRpZiBleHAgW1sgY29kZSBdXSBl
bHNlX2JyYW5jaAotICAgIHwgW1sgY29kZSBdXQotICAgIHwgY3BwX2NvZGUKLXNlcCA6Oj0gY3Bw
X2NvZGUgfCBlbXB0eV9zdHJpbmcKLWVsc2VfYnJhbmNoIDo6PSAkZWxzZSBbWyBjb2RlIF1dCi0g
ICAgfCAkZWxpZiBleHAgW1sgY29kZSBdXSBlbHNlX2JyYW5jaAotICAgIHwgZW1wdHlfc3RyaW5n
Ci1leHAgOjo9IHNpbXBsZV9leHByZXNzaW9uX2luX1B5dGhvbl9zeW50YXgKLWBgYAotCi0jIyBD
b2RlICMjCi0KLVlvdSBjYW4gZmluZCB0aGUgc291cmNlIGNvZGUgb2YgUHVtcCBpbiBbc2NyaXB0
cy9wdW1wLnB5XSguLi9zY3JpcHRzL3B1bXAucHkpLiBJdCBpcyBzdGlsbAotdmVyeSB1bnBvbGlz
aGVkIGFuZCBsYWNrcyBhdXRvbWF0ZWQgdGVzdHMsIGFsdGhvdWdoIGl0IGhhcyBiZWVuCi1zdWNj
ZXNzZnVsbHkgdXNlZCBtYW55IHRpbWVzLiBJZiB5b3UgZmluZCBhIGNoYW5jZSB0byB1c2UgaXQg
aW4geW91cgotcHJvamVjdCwgcGxlYXNlIGxldCB1cyBrbm93IHdoYXQgeW91IHRoaW5rISAgV2Ug
YWxzbyB3ZWxjb21lIGhlbHAgb24KLWltcHJvdmluZyBQdW1wLgotCi0jIyBSZWFsIEV4YW1wbGVz
ICMjCi0KLVlvdSBjYW4gZmluZCByZWFsLXdvcmxkIGFwcGxpY2F0aW9ucyBvZiBQdW1wIGluIFtH
b29nbGUgVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3RyZWUvbWFz
dGVyL2dvb2dsZXRlc3QpIGFuZCBbR29vZ2xlIE1vY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29n
bGUvZ29vZ2xldGVzdC90cmVlL21hc3Rlci9nb29nbGVtb2NrKS4gVGhlIHNvdXJjZSBmaWxlIGBm
b28uaC5wdW1wYCBnZW5lcmF0ZXMgYGZvby5oYC4KLQotIyMgVGlwcyAjIwotCi0gICogSWYgYSBt
ZXRhIHZhcmlhYmxlIGlzIGZvbGxvd2VkIGJ5IGEgbGV0dGVyIG9yIGRpZ2l0LCB5b3UgY2FuIHNl
cGFyYXRlIHRoZW0gdXNpbmcgYFtbXV1gLCB3aGljaCBpbnNlcnRzIGFuIGVtcHR5IHN0cmluZy4g
Rm9yIGV4YW1wbGUgYEZvbyRqW1tdXUhlbHBlcmAgZ2VuZXJhdGUgYEZvbzFIZWxwZXJgIHdoZW4g
YGpgIGlzIDEuCi0gICogVG8gYXZvaWQgZXh0cmEtbG9uZyBQdW1wIHNvdXJjZSBsaW5lcywgeW91
IGNhbiBicmVhayBhIGxpbmUgYW55d2hlcmUgeW91IHdhbnQgYnkgaW5zZXJ0aW5nIGBbW11dYCBm
b2xsb3dlZCBieSBhIG5ldyBsaW5lLiBTaW5jZSBhbnkgbmV3LWxpbmUgY2hhcmFjdGVyIG5leHQg
dG8gYFtbYCBvciBgXV1gIGlzIGlnbm9yZWQsIHRoZSBnZW5lcmF0ZWQgY29kZSB3b24ndCBjb250
YWluIHRoaXMgbmV3IGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9k
b2NzL1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUkVBRE1FLm1kCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiYzU3Yjc5OWNjZTkzM2MwMzRjMzE4NTk1OTRjYTFiODc2ODlhZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1JFQURNRS5tZApAQCAt
MCwwICsxLDQgQEAKKyMgQ29udGVudCBNb3ZlZAorCitXZSBhcmUgd29ya2luZyBvbiB1cGRhdGVz
IHRvIHRoZSBHb29nbGVUZXN0IGRvY3VtZW50YXRpb24sIHdoaWNoIGhhcyBtb3ZlZCB0bwordGhl
IHRvcC1sZXZlbCBbZG9jc10oLi4vLi4vZG9jcykgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYzYwYTMzZGFkNDNiYWY5ODM4MWY3YzlmMjBmNjliNTU4YjJhYWQwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2RvY3MvWGNvZGVHdWlkZS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLQotCi1U
aGlzIGd1aWRlIHdpbGwgZXhwbGFpbiBob3cgdG8gdXNlIHRoZSBHb29nbGUgVGVzdGluZyBGcmFt
ZXdvcmsgaW4geW91ciBYY29kZSBwcm9qZWN0cyBvbiBNYWMgT1MgWC4gVGhpcyB0dXRvcmlhbCBi
ZWdpbnMgYnkgcXVpY2tseSBleHBsYWluaW5nIHdoYXQgdG8gZG8gZm9yIGV4cGVyaWVuY2VkIHVz
ZXJzLiBBZnRlciB0aGUgcXVpY2sgc3RhcnQsIHRoZSBndWlkZSBnb2VzIHByb3ZpZGVzIGFkZGl0
aW9uYWwgZXhwbGFuYXRpb24gYWJvdXQgZWFjaCBzdGVwLgotCi0jIFF1aWNrIFN0YXJ0ICMKLQot
SGVyZSBpcyB0aGUgcXVpY2sgZ3VpZGUgZm9yIHVzaW5nIEdvb2dsZSBUZXN0IGluIHlvdXIgWGNv
ZGUgcHJvamVjdC4KLQotICAxLiBEb3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIFt3ZWJzaXRl
XShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QpIHVzaW5nIHRoaXMgY29tbWFu
ZDogYHN2biBjaGVja291dCBodHRwOi8vZ29vZ2xldGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1
bmsvIGdvb2dsZXRlc3QtcmVhZC1vbmx5YC4KLSAgMS4gT3BlbiB1cCB0aGUgYGd0ZXN0Lnhjb2Rl
cHJvamAgaW4gdGhlIGBnb29nbGV0ZXN0LXJlYWQtb25seS94Y29kZS9gIGRpcmVjdG9yeSBhbmQg
YnVpbGQgdGhlIGd0ZXN0LmZyYW1ld29yay4KLSAgMS4gQ3JlYXRlIGEgbmV3ICJTaGVsbCBUb29s
IiB0YXJnZXQgaW4geW91ciBYY29kZSBwcm9qZWN0IGNhbGxlZCBzb21ldGhpbmcgbGlrZSAiVW5p
dFRlc3RzIi4KLSAgMS4gQWRkIHRoZSBndGVzdC5mcmFtZXdvcmsgdG8geW91ciBwcm9qZWN0IGFu
ZCBhZGQgaXQgdG8gdGhlICJMaW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ug
b2YgIlVuaXRUZXN0cyIuCi0gIDEuIEFkZCB5b3VyIHVuaXQgdGVzdCBzb3VyY2UgY29kZSB0byB0
aGUgIkNvbXBpbGUgU291cmNlcyIgYnVpbGQgcGhhc2Ugb2YgIlVuaXRUZXN0cyIuCi0gIDEuIEVk
aXQgdGhlICJVbml0VGVzdHMiIGV4ZWN1dGFibGUgYW5kIGFkZCBhbiBlbnZpcm9ubWVudCB2YXJp
YWJsZSBuYW1lZCAiRFlMRFxfRlJBTUVXT1JLXF9QQVRIIiB3aXRoIGEgdmFsdWUgZXF1YWwgdG8g
dGhlIHBhdGggdG8gdGhlIGZyYW1ld29yayBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsg
cmVsYXRpdmUgdG8gdGhlIGNvbXBpbGVkIGV4ZWN1dGFibGUuCi0gIDEuIEJ1aWxkIGFuZCBHby4K
LQotVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBmdXJ0aGVyIGV4cGxhaW4gZWFjaCBvZiB0aGUgc3Rl
cHMgbGlzdGVkIGFib3ZlIGluIGRlcHRoLCBkZXNjcmliaW5nIGluIG1vcmUgZGV0YWlsIGhvdyB0
byBjb21wbGV0ZSBpdCBpbmNsdWRpbmcgc29tZSB2YXJpYXRpb25zLgotCi0jIEdldCB0aGUgU291
cmNlICMKLQotQ3VycmVudGx5LCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIGRpc2N1c3NlZCBoZXJlIGlz
bid0IGF2YWlsYWJsZSBpbiBhIHRhZ2dlZCByZWxlYXNlIG9mIEdvb2dsZSBUZXN0LCBpdCBpcyBv
bmx5IGF2YWlsYWJsZSBpbiB0aGUgdHJ1bmsuIEFzIGV4cGxhaW5lZCBhdCB0aGUgR29vZ2xlIFRl
c3QgW3NpdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdCksIHlvdSBjYW4g
Z2V0IHRoZSBjb2RlIGZyb20gYW5vbnltb3VzIFNWTiB3aXRoIHRoaXMgY29tbWFuZDoKLQotYGBg
Ci1zdm4gY2hlY2tvdXQgaHR0cDovL2dvb2dsZXRlc3QuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5r
LyBnb29nbGV0ZXN0LXJlYWQtb25seQotYGBgCi0KLUFsdGVybmF0aXZlbHksIGlmIHlvdSBhcmUg
d29ya2luZyB3aXRoIFN1YnZlcnNpb24gaW4geW91ciBvd24gY29kZSBiYXNlLCB5b3UgY2FuIGFk
ZCBHb29nbGUgVGVzdCBhcyBhbiBleHRlcm5hbCBkZXBlbmRlbmN5IHRvIHlvdXIgb3duIFN1YnZl
cnNpb24gcmVwb3NpdG9yeS4gQnkgZm9sbG93aW5nIHRoaXMgYXBwcm9hY2gsIGV2ZXJ5b25lIHRo
YXQgY2hlY2tzIG91dCB5b3VyIHN2biByZXBvc2l0b3J5IHdpbGwgYWxzbyByZWNlaXZlIGEgY29w
eSBvZiBHb29nbGUgVGVzdCAoYSBzcGVjaWZpYyB2ZXJzaW9uLCBpZiB5b3Ugd2lzaCkgd2l0aG91
dCBoYXZpbmcgdG8gY2hlY2sgaXQgb3V0IGV4cGxpY2l0bHkuIFRoaXMgbWFrZXMgdGhlIHNldCB1
cCBvZiB5b3VyIHByb2plY3Qgc2ltcGxlciBhbmQgcmVkdWNlcyB0aGUgY29waWVkIGNvZGUgaW4g
dGhlIHJlcG9zaXRvcnkuCi0KLVRvIHVzZSBgc3ZuOmV4dGVybmFsc2AsIGRlY2lkZSB3aGVyZSB5
b3Ugd291bGQgbGlrZSB0byBoYXZlIHRoZSBleHRlcm5hbCBzb3VyY2UgcmVzaWRlLiBZb3UgbWln
aHQgY2hvb3NlIHRvIHB1dCB0aGUgZXh0ZXJuYWwgc291cmNlIGluc2lkZSB0aGUgdHJ1bmssIGJl
Y2F1c2UgeW91IHdhbnQgaXQgdG8gYmUgcGFydCBvZiB0aGUgYnJhbmNoIHdoZW4geW91IG1ha2Ug
YSByZWxlYXNlLiBIb3dldmVyLCBrZWVwaW5nIGl0IG91dHNpZGUgdGhlIHRydW5rIGluIGEgdmVy
c2lvbi10YWdnZWQgZGlyZWN0b3J5IGNhbGxlZCBzb21ldGhpbmcgbGlrZSBgdGhpcmQtcGFydHkv
Z29vZ2xldGVzdC8xLjAuMWAsIGlzIGFub3RoZXIgb3B0aW9uLiBPbmNlIHRoZSBsb2NhdGlvbiBp
cyBlc3RhYmxpc2hlZCwgdXNlIGBzdm4gcHJvcGVkaXQgc3ZuOmV4dGVybmFscyBfZGlyZWN0b3J5
X2AgdG8gc2V0IHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnR5IG9uIGEgZGlyZWN0b3J5IGluIHlv
dXIgcmVwb3NpdG9yeS4gVGhpcyBkaXJlY3Rvcnkgd29uJ3QgY29udGFpbiB0aGUgY29kZSwgYnV0
IGJlIGl0cyB2ZXJzaW9uZWQgcGFyZW50IGRpcmVjdG9yeS4KLQotVGhlIGNvbW1hbmQgYHN2biBw
cm9wZWRpdGAgd2lsbCBicmluZyB1cCB5b3VyIFN1YnZlcnNpb24gZWRpdG9yLCBtYWtpbmcgZWRp
dGluZyB0aGUgbG9uZywgKHBvdGVudGlhbGx5IG11bHRpLWxpbmUpIHByb3BlcnR5IHNpbXBsZXIu
IFRoaXMgc2FtZSBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2hlY2sgb3V0IGEgdGFnZ2VkIGJyYW5j
aCwgYnkgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIFVSTCAoZS5nLiBgaHR0cHM6Ly9naXRodWIuY29t
L2dvb2dsZS9nb29nbGV0ZXN0L3JlbGVhc2VzL3RhZy9yZWxlYXNlLTEuMC4xYCkuIEFkZGl0aW9u
YWxseSwgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydHkgYWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9u
IG9mIGEgcGFydGljdWxhciByZXZpc2lvbiBvZiB0aGUgdHJ1bmsgd2l0aCB0aGUgYC1yXyMjX2Ag
b3B0aW9uIChlLmcuIGBleHRlcm5hbHMvc3JjL2dvb2dsZXRlc3QgLXI2MCBodHRwOi8vZ29vZ2xl
dGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmtgKS4KLQotSGVyZSBpcyBhbiBleGFtcGxlIG9m
IHVzaW5nIHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnRpZXMgb24gYSB0cnVuayAocmVhZCB2aWEg
YHN2biBwcm9wZ2V0YCkgb2YgYSBwcm9qZWN0LiBUaGlzIHZhbHVlIGNoZWNrcyBvdXQgYSBjb3B5
IG9mIEdvb2dsZSBUZXN0IGludG8gdGhlIGB0cnVuay9leHRlcm5hbHMvc3JjL2dvb2dsZXRlc3Qv
YCBkaXJlY3RvcnkuCi0KLWBgYAotW0NvbXB1dGVyOnN2bl0gdXNlciQgc3ZuIHByb3BnZXQgc3Zu
OmV4dGVybmFscyB0cnVuawotZXh0ZXJuYWxzL3NyYy9nb29nbGV0ZXN0IGh0dHA6Ly9nb29nbGV0
ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuawotYGBgCi0KLSMgQWRkIHRoZSBGcmFtZXdvcmsg
dG8gWW91ciBQcm9qZWN0ICMKLQotVGhlIG5leHQgc3RlcCBpcyB0byBidWlsZCBhbmQgYWRkIHRo
ZSBndGVzdC5mcmFtZXdvcmsgdG8geW91ciBvd24gcHJvamVjdC4gVGhpcyBndWlkZSBkZXNjcmli
ZXMgdHdvIGNvbW1vbiB3YXlzIGJlbG93LgotCi0gICogKipPcHRpb24gMSoqIC0tLSBUaGUgc2lt
cGxlc3Qgd2F5IHRvIGFkZCBHb29nbGUgVGVzdCB0byB5b3VyIG93biBwcm9qZWN0LCBpcyB0byBv
cGVuIGd0ZXN0Lnhjb2RlcHJvaiAoZm91bmQgaW4gdGhlIHhjb2RlLyBkaXJlY3Rvcnkgb2YgdGhl
IEdvb2dsZSBUZXN0IHRydW5rKSBhbmQgYnVpbGQgdGhlIGZyYW1ld29yayBtYW51YWxseS4gVGhl
biwgYWRkIHRoZSBidWlsdCBmcmFtZXdvcmsgaW50byB5b3VyIHByb2plY3QgdXNpbmcgdGhlICJB
ZGQtPkV4aXN0aW5nIEZyYW1ld29yay4uLiIgZnJvbSB0aGUgY29udGV4dCBtZW51IG9yICJQcm9q
ZWN0LT5BZGQuLi4iIGZyb20gdGhlIG1haW4gbWVudS4gVGhlIGd0ZXN0LmZyYW1ld29yayBpcyBy
ZWxvY2F0YWJsZSBhbmQgY29udGFpbnMgdGhlIGhlYWRlcnMgYW5kIG9iamVjdCBjb2RlIHRoYXQg
eW91J2xsIG5lZWQgdG8gbWFrZSB0ZXN0cy4gVGhpcyBtZXRob2QgcmVxdWlyZXMgcmVidWlsZGlu
ZyBldmVyeSB0aW1lIHlvdSB1cGdyYWRlIEdvb2dsZSBUZXN0IGluIHlvdXIgcHJvamVjdC4KLSAg
KiAqKk9wdGlvbiAyKiogLS0tIElmIHlvdSBhcmUgZ29pbmcgdG8gYmUgbGl2aW5nIG9mZiB0aGUg
dHJ1bmsgb2YgR29vZ2xlIFRlc3QsIGluY29ycG9yYXRpbmcgaXRzIGxhdGVzdCBmZWF0dXJlcyBp
bnRvIHlvdXIgdW5pdCB0ZXN0cyAob3IgYXJlIGEgR29vZ2xlIFRlc3QgZGV2ZWxvcGVyIHlvdXJz
ZWxmKS4gWW91J2xsIHdhbnQgdG8gcmVidWlsZCB0aGUgZnJhbWV3b3JrIGV2ZXJ5IHRpbWUgdGhl
IHNvdXJjZSB1cGRhdGVzLiB0byBkbyB0aGlzLCB5b3UnbGwgbmVlZCB0byBhZGQgdGhlIGd0ZXN0
Lnhjb2RlcHJvaiBmaWxlLCBub3QgdGhlIGZyYW1ld29yayBpdHNlbGYsIHRvIHlvdXIgb3duIFhj
b2RlIHByb2plY3QuIFRoZW4sIGZyb20gdGhlIGJ1aWxkIHByb2R1Y3RzIHRoYXQgYXJlIHJldmVh
bGVkIGJ5IHRoZSBwcm9qZWN0J3MgZGlzY2xvc3VyZSB0cmlhbmdsZSwgeW91IGNhbiBmaW5kIHRo
ZSBndGVzdC5mcmFtZXdvcmssIHdoaWNoIGNhbiBiZSBhZGRlZCB0byB5b3VyIHRhcmdldHMgKGRp
c2N1c3NlZCBiZWxvdykuCi0KLSMgTWFrZSBhIFRlc3QgVGFyZ2V0ICMKLQotVG8gc3RhcnQgd3Jp
dGluZyB0ZXN0cywgbWFrZSBhIG5ldyAiU2hlbGwgVG9vbCIgdGFyZ2V0LiBUaGlzIHRhcmdldCB0
ZW1wbGF0ZSBpcyBhdmFpbGFibGUgdW5kZXIgQlNELCBDb2NvYSwgb3IgQ2FyYm9uLiBBZGQgeW91
ciB1bml0IHRlc3Qgc291cmNlIGNvZGUgdG8gdGhlICJDb21waWxlIFNvdXJjZXMiIGJ1aWxkIHBo
YXNlIG9mIHRoZSB0YXJnZXQuCi0KLU5leHQsIHlvdSdsbCB3YW50IHRvIGFkZCBndGVzdC5mcmFt
ZXdvcmsgaW4gdHdvIGRpZmZlcmVudCB3YXlzLCBkZXBlbmRpbmcgdXBvbiB3aGljaCBvcHRpb24g
eW91IGNob3NlIGFib3ZlLgotCi0gICogKipPcHRpb24gMSoqIC0tLSBEdXJpbmcgY29tcGlsYXRp
b24sIFhjb2RlIHdpbGwgbmVlZCB0byBrbm93IHRoYXQgeW91IGFyZSBsaW5raW5nIGFnYWluc3Qg
dGhlIGd0ZXN0LmZyYW1ld29yay4gQWRkIHRoZSBndGVzdC5mcmFtZXdvcmsgdG8gdGhlICJMaW5r
IEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ugb2YgeW91ciB0ZXN0IHRhcmdldC4g
VGhpcyB3aWxsIGluY2x1ZGUgdGhlIEdvb2dsZSBUZXN0IGhlYWRlcnMgaW4geW91ciBoZWFkZXIg
c2VhcmNoIHBhdGgsIGFuZCB3aWxsIHRlbGwgdGhlIGxpbmtlciB3aGVyZSB0byBmaW5kIHRoZSBs
aWJyYXJ5LgotICAqICoqT3B0aW9uIDIqKiAtLS0gSWYgeW91ciB3b3JraW5nIG91dCBvZiB0aGUg
dHJ1bmssIHlvdSdsbCBhbHNvIHdhbnQgdG8gYWRkIGd0ZXN0LmZyYW1ld29yayB0byB5b3VyICJM
aW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhhc2Ugb2YgeW91ciB0ZXN0IHRhcmdl
dC4gSW4gYWRkaXRpb24sIHlvdSdsbCAgd2FudCB0byBhZGQgdGhlIGd0ZXN0LmZyYW1ld29yayBh
cyBhIGRlcGVuZGVuY3kgdG8geW91ciB1bml0IHRlc3QgdGFyZ2V0LiBUaGlzIHdheSwgWGNvZGUg
d2lsbCBtYWtlIHN1cmUgdGhhdCBndGVzdC5mcmFtZXdvcmsgaXMgdXAgdG8gZGF0ZSwgZXZlcnkg
dGltZSB5b3VyIGJ1aWxkIHlvdXIgdGFyZ2V0LiBGaW5hbGx5LCBpZiB5b3UgZG9uJ3Qgc2hhcmUg
YnVpbGQgZGlyZWN0b3JpZXMgd2l0aCBHb29nbGUgVGVzdCwgeW91J2xsIGhhdmUgdG8gY29weSB0
aGUgZ3Rlc3QuZnJhbWV3b3JrIGludG8geW91ciBvd24gYnVpbGQgcHJvZHVjdHMgZGlyZWN0b3J5
IHVzaW5nIGEgIlJ1biBTY3JpcHQiIGJ1aWxkIHBoYXNlLgotCi0jIFNldCBVcCB0aGUgRXhlY3V0
YWJsZSBSdW4gRW52aXJvbm1lbnQgIwotCi1TaW5jZSB0aGUgdW5pdCB0ZXN0IGV4ZWN1dGFibGUg
aXMgYSBzaGVsbCB0b29sLCBpdCBkb2Vzbid0IGhhdmUgYSBidW5kbGUgd2l0aCBhIGBDb250ZW50
cy9GcmFtZXdvcmtzYCBkaXJlY3RvcnksIGluIHdoaWNoIHRvIHBsYWNlIGd0ZXN0LmZyYW1ld29y
ay4gSW5zdGVhZCwgdGhlIGR5bmFtaWMgbGlua2VyIG11c3QgYmUgdG9sZCBhdCBydW50aW1lIHRv
IHNlYXJjaCBmb3IgdGhlIGZyYW1ld29yayBpbiBhbm90aGVyIGxvY2F0aW9uLiBUaGlzIGNhbiBi
ZSBhY2NvbXBsaXNoZWQgYnkgc2V0dGluZyB0aGUgIkRZTERcX0ZSQU1FV09SS1xfUEFUSCIgZW52
aXJvbm1lbnQgdmFyaWFibGUgaW4gdGhlICJFZGl0IEFjdGl2ZSBFeGVjdXRhYmxlIC4uLiIgQXJn
dW1lbnRzIHRhYiwgdW5kZXIgIlZhcmlhYmxlcyB0byBiZSBzZXQgaW4gdGhlIGVudmlyb25tZW50
OiIuIFRoZSBwYXRoIGZvciB0aGlzIHZhbHVlIGlzIHRoZSBwYXRoIChyZWxhdGl2ZSBvciBhYnNv
bHV0ZSkgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsuCi0K
LUlmIHlvdSBoYXZlbid0IHNldCB1cCB0aGUgRFlMRFxfRlJBTUVXT1JLXF9QQVRILCBjb3JyZWN0
bHksIHlvdSBtaWdodCBnZXQgYSBtZXNzYWdlIGxpa2UgdGhpczoKLQotYGBgCi1bU2Vzc2lvbiBz
dGFydGVkIGF0IDIwMDgtMDgtMTUgMDY6MjM6NTcgLTA2MDAuXQotICBkeWxkOiBMaWJyYXJ5IG5v
dCBsb2FkZWQ6IEBsb2FkZXJfcGF0aC8uLi9GcmFtZXdvcmtzL2d0ZXN0LmZyYW1ld29yay9WZXJz
aW9ucy9BL2d0ZXN0Ci0gICAgUmVmZXJlbmNlZCBmcm9tOiAvVXNlcnMvdXNlcm5hbWUvRG9jdW1l
bnRzL1NhbmRib3gvZ3Rlc3RTYW1wbGUvYnVpbGQvRGVidWcvV2lkZ2V0RnJhbWV3b3JrVGVzdAot
ICAgIFJlYXNvbjogaW1hZ2Ugbm90IGZvdW5kCi1gYGAKLQotVG8gY29ycmVjdCB0aGlzIHByb2Js
ZW0sIGdvIHRvIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZXhlY3V0YWJsZSBuYW1l
ZCBpbiAiUmVmZXJlbmNlZCBmcm9tOiIgdmFsdWUgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYWJvdmUu
IFRoZW4sIHdpdGggdGhlIHRlcm1pbmFsIGluIHRoaXMgbG9jYXRpb24sIGZpbmQgdGhlIHJlbGF0
aXZlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBndGVzdC5mcmFtZXdvcmsu
IFRoYXQgaXMgdGhlIHZhbHVlIHlvdSdsbCBuZWVkIHRvIHNldCBhcyB0aGUgRFlMRFxfRlJBTUVX
T1JLXF9QQVRILgotCi0jIEJ1aWxkIGFuZCBHbyAjCi0KLU5vdywgd2hlbiB5b3UgY2xpY2sgIkJ1
aWxkIGFuZCBHbyIsIHRoZSB0ZXN0IHdpbGwgYmUgZXhlY3V0ZWQuIER1bXBpbmcgb3V0IHNvbWV0
aGluZyBsaWtlIHRoaXM6Ci0KLWBgYAotW1Nlc3Npb24gc3RhcnRlZCBhdCAyMDA4LTA4LTA2IDA2
OjM2OjEzIC0wNjAwLl0KLVs9PT09PT09PT09XSBSdW5uaW5nIDIgdGVzdHMgZnJvbSAxIHRlc3Qg
Y2FzZS4KLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCi1bLS0t
LS0tLS0tLV0gMiB0ZXN0cyBmcm9tIFdpZGdldEluaXRpYWxpemVyVGVzdAotWyBSVU4gICAgICBd
IFdpZGdldEluaXRpYWxpemVyVGVzdC5UZXN0Q29uc3RydWN0b3IKLVsgICAgICAgT0sgXSBXaWRn
ZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnN0cnVjdG9yCi1bIFJVTiAgICAgIF0gV2lkZ2V0SW5p
dGlhbGl6ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bICAgICAgIE9LIF0gV2lkZ2V0SW5pdGlhbGl6
ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1l
bnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gMiB0ZXN0cyBmcm9tIDEgdGVzdCBjYXNlIHJhbi4K
LVsgIFBBU1NFRCAgXSAyIHRlc3RzLgotCi1UaGUgRGVidWdnZXIgaGFzIGV4aXRlZCB3aXRoIHN0
YXR1cyAwLiAgCi1gYGAKLQotIyBTdW1tYXJ5ICMKLQotVW5pdCB0ZXN0aW5nIGlzIGEgdmFsdWFi
bGUgd2F5IHRvIGVuc3VyZSB5b3VyIGRhdGEgbW9kZWwgc3RheXMgdmFsaWQgZXZlbiBkdXJpbmcg
cmFwaWQgZGV2ZWxvcG1lbnQgb3IgcmVmYWN0b3JpbmcuIFRoZSBHb29nbGUgVGVzdGluZyBGcmFt
ZXdvcmsgaXMgYSBncmVhdCB1bml0IHRlc3RpbmcgZnJhbWV3b3JrIGZvciBDIGFuZCBDKysgd2hp
Y2ggaW50ZWdyYXRlcyB3ZWxsIHdpdGggYW4gWGNvZGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9hZHZhbmNlZC5tZApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODA2NWQxOTYyMWE4YjM3ZmI3OGNiNWUwZWQxYjg2MThmZTc2MjVkMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMjUyMCAr
MCwwIEBACi0jIEFkdmFuY2VkIGdvb2dsZXRlc3QgVG9waWNzCi0KLQotIyMgSW50cm9kdWN0aW9u
Ci0KLU5vdyB0aGF0IHlvdSBoYXZlIHJlYWQgdGhlIFtnb29nbGV0ZXN0IFByaW1lcl0ocHJpbWVy
Lm1kKSBhbmQgbGVhcm5lZCBob3cgdG8gd3JpdGUKLXRlc3RzIHVzaW5nIGdvb2dsZXRlc3QsIGl0
J3MgdGltZSB0byBsZWFybiBzb21lIG5ldyB0cmlja3MuIFRoaXMgZG9jdW1lbnQgd2lsbAotc2hv
dyB5b3UgbW9yZSBhc3NlcnRpb25zIGFzIHdlbGwgYXMgaG93IHRvIGNvbnN0cnVjdCBjb21wbGV4
IGZhaWx1cmUgbWVzc2FnZXMsCi1wcm9wYWdhdGUgZmF0YWwgZmFpbHVyZXMsIHJldXNlIGFuZCBz
cGVlZCB1cCB5b3VyIHRlc3QgZml4dHVyZXMsIGFuZCB1c2UgdmFyaW91cwotZmxhZ3Mgd2l0aCB5
b3VyIHRlc3RzLgotCi0jIyBNb3JlIEFzc2VydGlvbnMKLQotVGhpcyBzZWN0aW9uIGNvdmVycyBz
b21lIGxlc3MgZnJlcXVlbnRseSB1c2VkLCBidXQgc3RpbGwgc2lnbmlmaWNhbnQsCi1hc3NlcnRp
b25zLgotCi0jIyMgRXhwbGljaXQgU3VjY2VzcyBhbmQgRmFpbHVyZQotCi1UaGVzZSB0aHJlZSBh
c3NlcnRpb25zIGRvIG5vdCBhY3R1YWxseSB0ZXN0IGEgdmFsdWUgb3IgZXhwcmVzc2lvbi4gSW5z
dGVhZCwgdGhleQotZ2VuZXJhdGUgYSBzdWNjZXNzIG9yIGZhaWx1cmUgZGlyZWN0bHkuIExpa2Ug
dGhlIG1hY3JvcyB0aGF0IGFjdHVhbGx5IHBlcmZvcm0gYQotdGVzdCwgeW91IG1heSBzdHJlYW0g
YSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIGludG8gdGhlbS4KLQotYGBgYysrCi1TVUNDRUVEKCk7
Ci1gYGAKLQotR2VuZXJhdGVzIGEgc3VjY2Vzcy4gVGhpcyBkb2VzICoqTk9UKiogbWFrZSB0aGUg
b3ZlcmFsbCB0ZXN0IHN1Y2NlZWQuIEEgdGVzdCBpcwotY29uc2lkZXJlZCBzdWNjZXNzZnVsIG9u
bHkgaWYgbm9uZSBvZiBpdHMgYXNzZXJ0aW9ucyBmYWlsIGR1cmluZyBpdHMgZXhlY3V0aW9uLgot
Ci1OT1RFOiBgU1VDQ0VFRCgpYCBpcyBwdXJlbHkgZG9jdW1lbnRhcnkgYW5kIGN1cnJlbnRseSBk
b2Vzbid0IGdlbmVyYXRlIGFueQotdXNlci12aXNpYmxlIG91dHB1dC4gSG93ZXZlciwgd2UgbWF5
IGFkZCBgU1VDQ0VFRCgpYCBtZXNzYWdlcyB0byBnb29nbGV0ZXN0J3MKLW91dHB1dCBpbiB0aGUg
ZnV0dXJlLgotCi1gYGBjKysKLUZBSUwoKTsKLUFERF9GQUlMVVJFKCk7Ci1BRERfRkFJTFVSRV9B
VCgiZmlsZV9wYXRoIiwgbGluZV9udW1iZXIpOwotYGBgCi0KLWBGQUlMKClgIGdlbmVyYXRlcyBh
IGZhdGFsIGZhaWx1cmUsIHdoaWxlIGBBRERfRkFJTFVSRSgpYCBhbmQgYEFERF9GQUlMVVJFX0FU
KClgCi1nZW5lcmF0ZSBhIG5vbmZhdGFsIGZhaWx1cmUuIFRoZXNlIGFyZSB1c2VmdWwgd2hlbiBj
b250cm9sIGZsb3csIHJhdGhlciB0aGFuIGEKLUJvb2xlYW4gZXhwcmVzc2lvbiwgZGV0ZXJtaW5l
cyB0aGUgdGVzdCdzIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gRm9yIGV4YW1wbGUsIHlvdQotbWlnaHQg
d2FudCB0byB3cml0ZSBzb21ldGhpbmcgbGlrZToKLQotYGBgYysrCi1zd2l0Y2goZXhwcmVzc2lv
bikgewotICBjYXNlIDE6Ci0gICAgIC4uLiBzb21lIGNoZWNrcyAuLi4KLSAgY2FzZSAyOgotICAg
ICAuLi4gc29tZSBvdGhlciBjaGVja3MgLi4uCi0gIGRlZmF1bHQ6Ci0gICAgIEZBSUwoKSA8PCAi
V2Ugc2hvdWxkbid0IGdldCBoZXJlLiI7Ci19Ci1gYGAKLQotTk9URTogeW91IGNhbiBvbmx5IHVz
ZSBgRkFJTCgpYCBpbiBmdW5jdGlvbnMgdGhhdCByZXR1cm4gYHZvaWRgLiBTZWUgdGhlCi1bQXNz
ZXJ0aW9uIFBsYWNlbWVudCBzZWN0aW9uXSgjYXNzZXJ0aW9uLXBsYWNlbWVudCkgZm9yIG1vcmUg
aW5mb3JtYXRpb24uCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0K
LSMjIyBFeGNlcHRpb24gQXNzZXJ0aW9ucwotCi1UaGVzZSBhcmUgZm9yIHZlcmlmeWluZyB0aGF0
IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgKG9yIGRvZXMgbm90IHRocm93KSBhbgotZXhjZXB0aW9u
IG9mIHRoZSBnaXZlbiB0eXBlOgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgfCBW
ZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NF
UlRfVEhST1coc3RhdGVtZW50LCBleGNlcHRpb25fdHlwZSk7YCB8IGBFWFBFQ1RfVEhST1coc3Rh
dGVtZW50LCBleGNlcHRpb25fdHlwZSk7YCB8IGBzdGF0ZW1lbnRgIHRocm93cyBhbiBleGNlcHRp
b24gb2YgdGhlIGdpdmVuIHR5cGUKLWBBU1NFUlRfQU5ZX1RIUk9XKHN0YXRlbWVudCk7YCAgICAg
ICAgICAgICB8IGBFWFBFQ1RfQU5ZX1RIUk9XKHN0YXRlbWVudCk7YCAgICAgICAgICAgICB8IGBz
dGF0ZW1lbnRgIHRocm93cyBhbiBleGNlcHRpb24gb2YgYW55IHR5cGUKLWBBU1NFUlRfTk9fVEhS
T1coc3RhdGVtZW50KTtgICAgICAgICAgICAgICB8IGBFWFBFQ1RfTk9fVEhST1coc3RhdGVtZW50
KTtgICAgICAgICAgICAgICB8IGBzdGF0ZW1lbnRgIGRvZXNuJ3QgdGhyb3cgYW55IGV4Y2VwdGlv
bgotCi1FeGFtcGxlczoKLQotYGBgYysrCi1BU1NFUlRfVEhST1coRm9vKDUpLCBiYXJfZXhjZXB0
aW9uKTsKLQotRVhQRUNUX05PX1RIUk9XKHsKLSAgaW50IG4gPSA1OwotICBCYXIoJm4pOwotfSk7
Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYzsgcmVxdWlyZXMg
ZXhjZXB0aW9ucyB0byBiZSBlbmFibGVkIGluIHRoZQotYnVpbGQgZW52aXJvbm1lbnQgKG5vdGUg
dGhhdCBgZ29vZ2xlM2AgKipkaXNhYmxlcyoqIGV4Y2VwdGlvbnMpLgotCi0jIyMgUHJlZGljYXRl
IEFzc2VydGlvbnMgZm9yIEJldHRlciBFcnJvciBNZXNzYWdlcwotCi1FdmVuIHRob3VnaCBnb29n
bGV0ZXN0IGhhcyBhIHJpY2ggc2V0IG9mIGFzc2VydGlvbnMsIHRoZXkgY2FuIG5ldmVyIGJlIGNv
bXBsZXRlLAotYXMgaXQncyBpbXBvc3NpYmxlIChub3IgYSBnb29kIGlkZWEpIHRvIGFudGljaXBh
dGUgYWxsIHNjZW5hcmlvcyBhIHVzZXIgbWlnaHQKLXJ1biBpbnRvLiBUaGVyZWZvcmUsIHNvbWV0
aW1lcyBhIHVzZXIgaGFzIHRvIHVzZSBgRVhQRUNUX1RSVUUoKWAgdG8gY2hlY2sgYQotY29tcGxl
eCBleHByZXNzaW9uLCBmb3IgbGFjayBvZiBhIGJldHRlciBtYWNyby4gVGhpcyBoYXMgdGhlIHBy
b2JsZW0gb2Ygbm90Ci1zaG93aW5nIHlvdSB0aGUgdmFsdWVzIG9mIHRoZSBwYXJ0cyBvZiB0aGUg
ZXhwcmVzc2lvbiwgbWFraW5nIGl0IGhhcmQgdG8KLXVuZGVyc3RhbmQgd2hhdCB3ZW50IHdyb25n
LiBBcyBhIHdvcmthcm91bmQsIHNvbWUgdXNlcnMgY2hvb3NlIHRvIGNvbnN0cnVjdCB0aGUKLWZh
aWx1cmUgbWVzc2FnZSBieSB0aGVtc2VsdmVzLCBzdHJlYW1pbmcgaXQgaW50byBgRVhQRUNUX1RS
VUUoKWAuIEhvd2V2ZXIsIHRoaXMKLWlzIGF3a3dhcmQgZXNwZWNpYWxseSB3aGVuIHRoZSBleHBy
ZXNzaW9uIGhhcyBzaWRlLWVmZmVjdHMgb3IgaXMgZXhwZW5zaXZlIHRvCi1ldmFsdWF0ZS4KLQot
Z29vZ2xldGVzdCBnaXZlcyB5b3UgdGhyZWUgZGlmZmVyZW50IG9wdGlvbnMgdG8gc29sdmUgdGhp
cyBwcm9ibGVtOgotCi0jIyMjIFVzaW5nIGFuIEV4aXN0aW5nIEJvb2xlYW4gRnVuY3Rpb24KLQot
SWYgeW91IGFscmVhZHkgaGF2ZSBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCByZXR1cm5zIGBi
b29sYCAob3IgYSB0eXBlIHRoYXQKLWNhbiBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBgYm9v
bGApLCB5b3UgY2FuIHVzZSBpdCBpbiBhICpwcmVkaWNhdGUKLWFzc2VydGlvbiogdG8gZ2V0IHRo
ZSBmdW5jdGlvbiBhcmd1bWVudHMgcHJpbnRlZCBmb3IgZnJlZToKLQotfCBGYXRhbCBhc3NlcnRp
b24gICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAg
ICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFTU0VSVF9QUkVEMShwcmVkMSwgdmFsMSk7
YCAgICAgICB8IGBFWFBFQ1RfUFJFRDEocHJlZDEsIHZhbDEpO2AgICAgICAgfCBgcHJlZDEodmFs
MSlgIGlzIHRydWUgICAgICAgfAotfCBgQVNTRVJUX1BSRUQyKHByZWQyLCB2YWwxLCB2YWwyKTtg
IHwgYEVYUEVDVF9QUkVEMihwcmVkMiwgdmFsMSwgdmFsMik7YCB8IGBwcmVkMih2YWwxLCB2YWwy
KWAgaXMgdHJ1ZSB8Ci18IGAuLi5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgLi4u
YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg
ICAgIHwKLQotSW4gdGhlIGFib3ZlLCBgcHJlZG5gIGlzIGFuIGBuYC1hcnkgcHJlZGljYXRlIGZ1
bmN0aW9uIG9yIGZ1bmN0b3IsIHdoZXJlIGB2YWwxYCwKLWB2YWwyYCwgLi4uLCBhbmQgYHZhbG5g
IGFyZSBpdHMgYXJndW1lbnRzLiBUaGUgYXNzZXJ0aW9uIHN1Y2NlZWRzIGlmIHRoZQotcHJlZGlj
YXRlIHJldHVybnMgYHRydWVgIHdoZW4gYXBwbGllZCB0byB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBh
bmQgZmFpbHMKLW90aGVyd2lzZS4gV2hlbiB0aGUgYXNzZXJ0aW9uIGZhaWxzLCBpdCBwcmludHMg
dGhlIHZhbHVlIG9mIGVhY2ggYXJndW1lbnQuIEluCi1laXRoZXIgY2FzZSwgdGhlIGFyZ3VtZW50
cyBhcmUgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4KLQotSGVyZSdzIGFuIGV4YW1wbGUuIEdpdmVu
Ci0KLWBgYGMrKwotLy8gUmV0dXJucyB0cnVlIGlmIG0gYW5kIG4gaGF2ZSBubyBjb21tb24gZGl2
aXNvcnMgZXhjZXB0IDEuCi1ib29sIE11dHVhbGx5UHJpbWUoaW50IG0sIGludCBuKSB7IC4uLiB9
Ci0KLWNvbnN0IGludCBhID0gMzsKLWNvbnN0IGludCBiID0gNDsKLWNvbnN0IGludCBjID0gMTA7
Ci1gYGAKLQotdGhlIGFzc2VydGlvbgotCi1gYGBjKysKLSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5
UHJpbWUsIGEsIGIpOwotYGBgCi0KLXdpbGwgc3VjY2VlZCwgd2hpbGUgdGhlIGFzc2VydGlvbgot
Ci1gYGBjKysKLSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5UHJpbWUsIGIsIGMpOwotYGBgCi0KLXdp
bGwgZmFpbCB3aXRoIHRoZSBtZXNzYWdlCi0KLWBgYG5vbmUKLU11dHVhbGx5UHJpbWUoYiwgYykg
aXMgZmFsc2UsIHdoZXJlCi1iIGlzIDQKLWMgaXMgMTAKLWBgYAotCi0+IE5PVEU6Ci0+Ci0+IDEu
ICBJZiB5b3Ugc2VlIGEgY29tcGlsZXIgZXJyb3IgIm5vIG1hdGNoaW5nIGZ1bmN0aW9uIHRvIGNh
bGwiIHdoZW4gdXNpbmcKLT4gICAgIGBBU1NFUlRfUFJFRCpgIG9yIGBFWFBFQ1RfUFJFRCpgLCBw
bGVhc2Ugc2VlCi0+ICAgICBbdGhpc10oZmFxLm1kI092ZXJsb2FkZWRQcmVkaWNhdGUpIGZvciBo
b3cgdG8gcmVzb2x2ZSBpdC4KLT4gMS4gIEN1cnJlbnRseSB3ZSBvbmx5IHByb3ZpZGUgcHJlZGlj
YXRlIGFzc2VydGlvbnMgb2YgYXJpdHkgPD0gNS4gSWYgeW91IG5lZWQKLT4gICAgIGEgaGlnaGVy
LWFyaXR5IGFzc2VydGlvbiwgbGV0IFt1c10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29n
bGV0ZXN0L2lzc3Vlcykga25vdy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotIyMjIyBVc2luZyBhIEZ1bmN0aW9uIFRoYXQgUmV0dXJucyBhbiBBc3NlcnRpb25S
ZXN1bHQKLQotV2hpbGUgYEVYUEVDVF9QUkVEKigpYCBhbmQgZnJpZW5kcyBhcmUgaGFuZHkgZm9y
IGEgcXVpY2sgam9iLCB0aGUgc3ludGF4IGlzIG5vdAotc2F0aXNmYWN0b3J5OiB5b3UgaGF2ZSB0
byB1c2UgZGlmZmVyZW50IG1hY3JvcyBmb3IgZGlmZmVyZW50IGFyaXRpZXMsIGFuZCBpdAotZmVl
bHMgbW9yZSBsaWtlIExpc3AgdGhhbiBDKysuIFRoZSBgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1
bHRgIGNsYXNzIHNvbHZlcwotdGhpcyBwcm9ibGVtLgotCi1BbiBgQXNzZXJ0aW9uUmVzdWx0YCBv
YmplY3QgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIGFuIGFzc2VydGlvbiAod2hldGhlciBpdCdz
Ci1hIHN1Y2Nlc3Mgb3IgYSBmYWlsdXJlLCBhbmQgYW4gYXNzb2NpYXRlZCBtZXNzYWdlKS4gWW91
IGNhbiBjcmVhdGUgYW4KLWBBc3NlcnRpb25SZXN1bHRgIHVzaW5nIG9uZSBvZiB0aGVzZSBmYWN0
b3J5IGZ1bmN0aW9uczoKLQotYGBgYysrCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIFJldHVy
bnMgYW4gQXNzZXJ0aW9uUmVzdWx0IG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0IGFuIGFzc2VydGlv
biBoYXMKLS8vIHN1Y2NlZWRlZC4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25TdWNjZXNzKCk7
Ci0KLS8vIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0
IGFuIGFzc2VydGlvbiBoYXMKLS8vIGZhaWxlZC4KLUFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25G
YWlsdXJlKCk7Ci0KLX0KLWBgYAotCi1Zb3UgY2FuIHRoZW4gdXNlIHRoZSBgPDxgIG9wZXJhdG9y
IHRvIHN0cmVhbSBtZXNzYWdlcyB0byB0aGUgYEFzc2VydGlvblJlc3VsdGAKLW9iamVjdC4KLQot
VG8gcHJvdmlkZSBtb3JlIHJlYWRhYmxlIG1lc3NhZ2VzIGluIEJvb2xlYW4gYXNzZXJ0aW9ucyAo
ZS5nLiBgRVhQRUNUX1RSVUUoKWApLAotd3JpdGUgYSBwcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBy
ZXR1cm5zIGBBc3NlcnRpb25SZXN1bHRgIGluc3RlYWQgb2YgYGJvb2xgLiBGb3IKLWV4YW1wbGUs
IGlmIHlvdSBkZWZpbmUgYElzRXZlbigpYCBhczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkFzc2Vy
dGlvblJlc3VsdCBJc0V2ZW4oaW50IG4pIHsKLSAgaWYgKChuICUgMikgPT0gMCkKLSAgICAgcmV0
dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOwotICBlbHNlCi0gICAgIHJldHVybiA6
OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCBuIDw8ICIgaXMgb2RkIjsKLX0KLWBgYAot
Ci1pbnN0ZWFkIG9mOgotCi1gYGBjKysKLWJvb2wgSXNFdmVuKGludCBuKSB7Ci0gIHJldHVybiAo
biAlIDIpID09IDA7Ci19Ci1gYGAKLQotdGhlIGZhaWxlZCBhc3NlcnRpb24gYEVYUEVDVF9UUlVF
KElzRXZlbihGaWIoNCkpKWAgd2lsbCBwcmludDoKLQotYGBgbm9uZQotVmFsdWUgb2Y6IElzRXZl
bihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UgKDMgaXMgb2RkKQotRXhwZWN0ZWQ6IHRydWUKLWBg
YAotCi1pbnN0ZWFkIG9mIGEgbW9yZSBvcGFxdWUKLQotYGBgbm9uZQotVmFsdWUgb2Y6IElzRXZl
bihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UKLUV4cGVjdGVkOiB0cnVlCi1gYGAKLQotSWYgeW91
IHdhbnQgaW5mb3JtYXRpdmUgbWVzc2FnZXMgaW4gYEVYUEVDVF9GQUxTRWAgYW5kIGBBU1NFUlRf
RkFMU0VgIGFzIHdlbGwKLShvbmUgdGhpcmQgb2YgQm9vbGVhbiBhc3NlcnRpb25zIGluIHRoZSBH
b29nbGUgY29kZSBiYXNlIGFyZSBuZWdhdGl2ZSBvbmVzKSwgYW5kCi1hcmUgZmluZSB3aXRoIG1h
a2luZyB0aGUgcHJlZGljYXRlIHNsb3dlciBpbiB0aGUgc3VjY2VzcyBjYXNlLCB5b3UgY2FuIHN1
cHBseSBhCi1zdWNjZXNzIG1lc3NhZ2U6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpBc3NlcnRpb25S
ZXN1bHQgSXNFdmVuKGludCBuKSB7Ci0gIGlmICgobiAlIDIpID09IDApCi0gICAgIHJldHVybiA6
OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKSA8PCBuIDw8ICIgaXMgZXZlbiI7Ci0gIGVsc2UK
LSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBv
ZGQiOwotfQotYGBgCi0KLVRoZW4gdGhlIHN0YXRlbWVudCBgRVhQRUNUX0ZBTFNFKElzRXZlbihG
aWIoNikpKWAgd2lsbCBwcmludAotCi1gYGBub25lCi0gIFZhbHVlIG9mOiBJc0V2ZW4oRmliKDYp
KQotICAgICBBY3R1YWw6IHRydWUgKDggaXMgZXZlbikKLSAgRXhwZWN0ZWQ6IGZhbHNlCi1gYGAK
LQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBVc2luZyBh
IFByZWRpY2F0ZS1Gb3JtYXR0ZXIKLQotSWYgeW91IGZpbmQgdGhlIGRlZmF1bHQgbWVzc2FnZSBn
ZW5lcmF0ZWQgYnkgYChBU1NFUlR8RVhQRUNUKV9QUkVEKmAgYW5kCi1gKEFTU0VSVHxFWFBFQ1Qp
XyhUUlVFfEZBTFNFKWAgdW5zYXRpc2ZhY3RvcnksIG9yIHNvbWUgYXJndW1lbnRzIHRvIHlvdXIK
LXByZWRpY2F0ZSBkbyBub3Qgc3VwcG9ydCBzdHJlYW1pbmcgdG8gYG9zdHJlYW1gLCB5b3UgY2Fu
IGluc3RlYWQgdXNlIHRoZQotZm9sbG93aW5nICpwcmVkaWNhdGUtZm9ybWF0dGVyIGFzc2VydGlv
bnMqIHRvICpmdWxseSogY3VzdG9taXplIGhvdyB0aGUgbWVzc2FnZQotaXMgZm9ybWF0dGVkOgot
Ci1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25m
YXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBB
U1NFUlRfUFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwgdmFsMSk7YCAgICAgICB8IGBFWFBFQ1Rf
UFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwgdmFsMSk7YCAgICAgICB8IGBwcmVkX2Zvcm1hdDEo
dmFsMSlgIGlzIHN1Y2Nlc3NmdWwKLWBBU1NFUlRfUFJFRF9GT1JNQVQyKHByZWRfZm9ybWF0Miwg
dmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfUFJFRF9GT1JNQVQyKHByZWRfZm9ybWF0MiwgdmFsMSwg
dmFsMik7YCB8IGBwcmVkX2Zvcm1hdDIodmFsMSwgdmFsMilgIGlzIHN1Y2Nlc3NmdWwKLWAuLi5g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGAuLi5gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC4uLgotCi1UaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIHRoZSBwcmV2aW91cyBncm91cCBvZiBtYWNyb3MgaXMgdGhh
dCBpbnN0ZWFkIG9mCi1hIHByZWRpY2F0ZSwgYChBU1NFUlR8RVhQRUNUKV9QUkVEX0ZPUk1BVCpg
IHRha2UgYSAqcHJlZGljYXRlLWZvcm1hdHRlcioKLShgcHJlZF9mb3JtYXRuYCksIHdoaWNoIGlz
IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB3aXRoIHRoZSBzaWduYXR1cmU6Ci0KLWBgYGMrKwotOjp0
ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgUHJlZGljYXRlRm9ybWF0dGVybihjb25zdCBjaGFyKiBl
eHByMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiBleHBybiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVDEgdmFsMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVDIgdmFsMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRuIHZhbG4pOwotYGBgCi0KLXdoZXJlIGB2YWwxYCwgYHZhbDJgLCAuLi4sIGFuZCBg
dmFsbmAgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIHByZWRpY2F0ZSBhcmd1bWVudHMsCi1hbmQgYGV4
cHIxYCwgYGV4cHIyYCwgLi4uLCBhbmQgYGV4cHJuYCBhcmUgdGhlIGNvcnJlc3BvbmRpbmcgZXhw
cmVzc2lvbnMgYXMgdGhleQotYXBwZWFyIGluIHRoZSBzb3VyY2UgY29kZS4gVGhlIHR5cGVzIGBU
MWAsIGBUMmAsIC4uLiwgYW5kIGBUbmAgY2FuIGJlIGVpdGhlcgotdmFsdWUgdHlwZXMgb3IgcmVm
ZXJlbmNlIHR5cGVzLiBGb3IgZXhhbXBsZSwgaWYgYW4gYXJndW1lbnQgaGFzIHR5cGUgYEZvb2As
IHlvdQotY2FuIGRlY2xhcmUgaXQgYXMgZWl0aGVyIGBGb29gIG9yIGBjb25zdCBGb28mYCwgd2hp
Y2hldmVyIGlzIGFwcHJvcHJpYXRlLgotCi1BcyBhbiBleGFtcGxlLCBsZXQncyBpbXByb3ZlIHRo
ZSBmYWlsdXJlIG1lc3NhZ2UgaW4gYE11dHVhbGx5UHJpbWUoKWAsIHdoaWNoIHdhcwotdXNlZCB3
aXRoIGBFWFBFQ1RfUFJFRDIoKWA6Ci0KLWBgYGMrKwotLy8gUmV0dXJucyB0aGUgc21hbGxlc3Qg
cHJpbWUgY29tbW9uIGRpdmlzb3Igb2YgbSBhbmQgbiwKLS8vIG9yIDEgd2hlbiBtIGFuZCBuIGFy
ZSBtdXR1YWxseSBwcmltZS4KLWludCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2aXNvcihpbnQgbSwg
aW50IG4pIHsgLi4uIH0KLQotLy8gQSBwcmVkaWNhdGUtZm9ybWF0dGVyIGZvciBhc3NlcnRpbmcg
dGhhdCB0d28gaW50ZWdlcnMgYXJlIG11dHVhbGx5IHByaW1lLgotOjp0ZXN0aW5nOjpBc3NlcnRp
b25SZXN1bHQgQXNzZXJ0TXV0dWFsbHlQcmltZShjb25zdCBjaGFyKiBtX2V4cHIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5fZXhw
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuKSB7
Ci0gIGlmIChNdXR1YWxseVByaW1lKG0sIG4pKSByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25T
dWNjZXNzKCk7Ci0KLSAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1f
ZXhwciA8PCAiIGFuZCAiIDw8IG5fZXhwcgotICAgICAgPDwgIiAoIiA8PCBtIDw8ICIgYW5kICIg
PDwgbiA8PCAiKSBhcmUgbm90IG11dHVhbGx5IHByaW1lLCAiCi0gICAgICA8PCAiYXMgdGhleSBo
YXZlIGEgY29tbW9uIGRpdmlzb3IgIiA8PCBTbWFsbGVzdFByaW1lQ29tbW9uRGl2aXNvcihtLCBu
KTsKLX0KLWBgYAotCi1XaXRoIHRoaXMgcHJlZGljYXRlLWZvcm1hdHRlciwgd2UgY2FuIHVzZQot
Ci1gYGBjKysKLSAgRVhQRUNUX1BSRURfRk9STUFUMihBc3NlcnRNdXR1YWxseVByaW1lLCBiLCBj
KTsKLWBgYAotCi10byBnZW5lcmF0ZSB0aGUgbWVzc2FnZQotCi1gYGBub25lCi1iIGFuZCBjICg0
IGFuZCAxMCkgYXJlIG5vdCBtdXR1YWxseSBwcmltZSwgYXMgdGhleSBoYXZlIGEgY29tbW9uIGRp
dmlzb3IgMi4KLWBgYAotCi1BcyB5b3UgbWF5IGhhdmUgcmVhbGl6ZWQsIG1hbnkgb2YgdGhlIGJ1
aWx0LWluIGFzc2VydGlvbnMgd2UgaW50cm9kdWNlZCBlYXJsaWVyCi1hcmUgc3BlY2lhbCBjYXNl
cyBvZiBgKEVYUEVDVHxBU1NFUlQpX1BSRURfRk9STUFUKmAuIEluIGZhY3QsIG1vc3Qgb2YgdGhl
bSBhcmUKLWluZGVlZCBkZWZpbmVkIHVzaW5nIGAoRVhQRUNUfEFTU0VSVClfUFJFRF9GT1JNQVQq
YC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEZsb2F0
aW5nLVBvaW50IENvbXBhcmlzb24KLQotQ29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMg
aXMgdHJpY2t5LiBEdWUgdG8gcm91bmQtb2ZmIGVycm9ycywgaXQgaXMgdmVyeQotdW5saWtlbHkg
dGhhdCB0d28gZmxvYXRpbmctcG9pbnRzIHdpbGwgbWF0Y2ggZXhhY3RseS4gVGhlcmVmb3JlLCBg
QVNTRVJUX0VRYCAncwotbmFpdmUgY29tcGFyaXNvbiB1c3VhbGx5IGRvZXNuJ3Qgd29yay4gQW5k
IHNpbmNlIGZsb2F0aW5nLXBvaW50cyBjYW4gaGF2ZSBhIHdpZGUKLXZhbHVlIHJhbmdlLCBubyBz
aW5nbGUgZml4ZWQgZXJyb3IgYm91bmQgd29ya3MuIEl0J3MgYmV0dGVyIHRvIGNvbXBhcmUgYnkg
YQotZml4ZWQgcmVsYXRpdmUgZXJyb3IgYm91bmQsIGV4Y2VwdCBmb3IgdmFsdWVzIGNsb3NlIHRv
IDAgZHVlIHRvIHRoZSBsb3NzIG9mCi1wcmVjaXNpb24gdGhlcmUuCi0KLUluIGdlbmVyYWwsIGZv
ciBmbG9hdGluZy1wb2ludCBjb21wYXJpc29uIHRvIG1ha2Ugc2Vuc2UsIHRoZSB1c2VyIG5lZWRz
IHRvCi1jYXJlZnVsbHkgY2hvb3NlIHRoZSBlcnJvciBib3VuZC4gSWYgdGhleSBkb24ndCB3YW50
IG9yIGNhcmUgdG8sIGNvbXBhcmluZyBpbgotdGVybXMgb2YgVW5pdHMgaW4gdGhlIExhc3QgUGxh
Y2UgKFVMUHMpIGlzIGEgZ29vZCBkZWZhdWx0LCBhbmQgZ29vZ2xldGVzdAotcHJvdmlkZXMgYXNz
ZXJ0aW9ucyB0byBkbyB0aGlzLiBGdWxsIGRldGFpbHMgYWJvdXQgVUxQcyBhcmUgcXVpdGUgbG9u
ZzsgaWYgeW91Ci13YW50IHRvIGxlYXJuIG1vcmUsIHNlZQotW2hlcmVdKGh0dHBzOi8vcmFuZG9t
YXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2NvbXBhcmluZy1mbG9hdGluZy1wb2ludC1u
dW1iZXJzLTIwMTItZWRpdGlvbi8pLgotCi0jIyMjIEZsb2F0aW5nLVBvaW50IE1hY3JvcwotCi18
IEZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAg
ICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBg
QVNTRVJUX0ZMT0FUX0VRKHZhbDEsIHZhbDIpO2AgIHwgYEVYUEVDVF9GTE9BVF9FUSh2YWwxLHZh
bDIpO2AgIHwgdGhlIHR3byBgZmxvYXRgIHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsICB8Ci18IGBB
U1NFUlRfRE9VQkxFX0VRKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0RPVUJMRV9FUSh2YWwxLCB2
YWwyKTtgfCB0aGUgdHdvIGBkb3VibGVgIHZhbHVlcyBhcmUgYWxtb3N0IGVxdWFsIHwKLQotQnkg
ImFsbW9zdCBlcXVhbCIgd2UgbWVhbiB0aGUgdmFsdWVzIGFyZSB3aXRoaW4gNCBVTFAncyBmcm9t
IGVhY2ggb3RoZXIuCi0KLU5PVEU6IGBDSEVDS19ET1VCTEVfRVEoKWAgaW4gYGJhc2UvbG9nZ2lu
Zy5oYCB1c2VzIGEgZml4ZWQgYWJzb2x1dGUgZXJyb3IgYm91bmQsCi1zbyBpdHMgcmVzdWx0IG1h
eSBkaWZmZXIgZnJvbSB0aGF0IG9mIHRoZSBnb29nbGV0ZXN0IG1hY3Jvcy4gVGhhdCBtYWNybyBp
cwotdW5zYWZlIGFuZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBQbGVhc2UgZG9uJ3QgdXNlIGl0IGFu
eSBtb3JlLgotCi1UaGUgZm9sbG93aW5nIGFzc2VydGlvbnMgYWxsb3cgeW91IHRvIGNob29zZSB0
aGUgYWNjZXB0YWJsZSBlcnJvciBib3VuZDoKLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAg
ICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICB8IFZl
cmlmaWVzICAgICAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX05FQVIodmFsMSwgdmFsMiwgYWJzX2Vy
cm9yKTtgIHwgYEVYUEVDVF9ORUFSKHZhbDEsIHZhbDIsIGFic19lcnJvcik7YCB8IHRoZSBkaWZm
ZXJlbmNlIGJldHdlZW4gYHZhbDFgIGFuZCBgdmFsMmAgZG9lc24ndCBleGNlZWQgdGhlIGdpdmVu
IGFic29sdXRlIGVycm9yIHwKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMjIyBGbG9hdGluZy1Qb2ludCBQcmVkaWNhdGUtRm9ybWF0IEZ1bmN0aW9ucwotCi1T
b21lIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgYXJlIHVzZWZ1bCwgYnV0IG5vdCB0aGF0IG9m
dGVuIHVzZWQuIEluIG9yZGVyIHRvCi1hdm9pZCBhbiBleHBsb3Npb24gb2YgbmV3IG1hY3Jvcywg
d2UgcHJvdmlkZSB0aGVtIGFzIHByZWRpY2F0ZS1mb3JtYXQgZnVuY3Rpb25zCi10aGF0IGNhbiBi
ZSB1c2VkIGluIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm9zIChlLmcuIGBFWFBFQ1RfUFJFRF9G
T1JNQVQyYCwKLWV0YykuCi0KLWBgYGMrKwotRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6
OkZsb2F0TEUsIHZhbDEsIHZhbDIpOwotRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OkRv
dWJsZUxFLCB2YWwxLCB2YWwyKTsKLWBgYAotCi1WZXJpZmllcyB0aGF0IGB2YWwxYCBpcyBsZXNz
IHRoYW4sIG9yIGFsbW9zdCBlcXVhbCB0bywgYHZhbDJgLiBZb3UgY2FuIHJlcGxhY2UKLWBFWFBF
Q1RfUFJFRF9GT1JNQVQyYCBpbiB0aGUgYWJvdmUgdGFibGUgd2l0aCBgQVNTRVJUX1BSRURfRk9S
TUFUMmAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBB
c3NlcnRpbmcgVXNpbmcgZ01vY2sgTWF0Y2hlcnMKLQotR29vZ2xlLWRldmVsb3BlZCBDKysgbW9j
a2luZyBmcmFtZXdvcmsgW2dNb2NrXSguLi8uLi9nb29nbGVtb2NrKSBjb21lcyB3aXRoIGEKLWxp
YnJhcnkgb2YgbWF0Y2hlcnMgZm9yIHZhbGlkYXRpbmcgYXJndW1lbnRzIHBhc3NlZCB0byBtb2Nr
IG9iamVjdHMuIEEgZ01vY2sKLSptYXRjaGVyKiBpcyBiYXNpY2FsbHkgYSBwcmVkaWNhdGUgdGhh
dCBrbm93cyBob3cgdG8gZGVzY3JpYmUgaXRzZWxmLiBJdCBjYW4gYmUKLXVzZWQgaW4gdGhlc2Ug
YXNzZXJ0aW9uIG1hY3JvczoKLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgfCBO
b25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgfAot
fCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX1RIQVQodmFsdWUs
IG1hdGNoZXIpO2AgfCBgRVhQRUNUX1RIQVQodmFsdWUsIG1hdGNoZXIpO2AgfCB2YWx1ZSBtYXRj
aGVzIG1hdGNoZXIgfAotCi1Gb3IgZXhhbXBsZSwgYFN0YXJ0c1dpdGgocHJlZml4KWAgaXMgYSBt
YXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0cmluZyBzdGFydGluZwotd2l0aCBgcHJlZml4YCwgYW5k
IHlvdSBjYW4gd3JpdGU6Ci0KLWBgYGMrKwotdXNpbmcgOjp0ZXN0aW5nOjpTdGFydHNXaXRoOwot
Li4uCi0gICAgLy8gVmVyaWZpZXMgdGhhdCBGb28oKSByZXR1cm5zIGEgc3RyaW5nIHN0YXJ0aW5n
IHdpdGggIkhlbGxvIi4KLSAgICBFWFBFQ1RfVEhBVChGb28oKSwgU3RhcnRzV2l0aCgiSGVsbG8i
KSk7Ci1gYGAKLQotUmVhZCB0aGlzIFtyZWNpcGVdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9Db29r
Qm9vay5tZCN1c2luZy1tYXRjaGVycy1pbi1nb29nbGUtdGVzdC1hc3NlcnRpb25zKSBpbgotdGhl
IGdNb2NrIENvb2tib29rIGZvciBtb3JlIGRldGFpbHMuCi0KLWdNb2NrIGhhcyBhIHJpY2ggc2V0
IG9mIG1hdGNoZXJzLiBZb3UgY2FuIGRvIG1hbnkgdGhpbmdzIGdvb2dsZXRlc3QgY2Fubm90IGRv
Ci1hbG9uZSB3aXRoIHRoZW0uIEZvciBhIGxpc3Qgb2YgbWF0Y2hlcnMgZ01vY2sgcHJvdmlkZXMs
IHJlYWQKLVt0aGlzXSguLi8uLi9nb29nbGVtb2NrL2RvY3MvQ29va0Jvb2subWQjdXNpbmctbWF0
Y2hlcnMpLiBFc3BlY2lhbGx5IHVzZWZ1bCBhbW9uZyB0aGVtIGFyZQotc29tZSBbcHJvdG9jb2wg
YnVmZmVyIG1hdGNoZXJzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL251Y2xldXMvYmxvYi9t
YXN0ZXIvbnVjbGV1cy90ZXN0aW5nL3Byb3RvY29sLWJ1ZmZlci1tYXRjaGVycy5oKS4gSXQncyBl
YXN5IHRvIHdyaXRlCi15b3VyIFtvd24gbWF0Y2hlcnNdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9D
b29rQm9vay5tZCN3cml0aW5nLW5ldy1tYXRjaGVycy1xdWlja2x5KSB0b28uCi0KLUZvciBleGFt
cGxlLCB5b3UgY2FuIHVzZSBnTW9jaydzCi1bRXF1YWxzUHJvdG9dKGh0dHBzOi8vZ2l0aHViLmNv
bS9nb29nbGUvbnVjbGV1cy9ibG9iL21hc3Rlci9udWNsZXVzL3Rlc3RpbmcvcHJvdG9jb2wtYnVm
ZmVyLW1hdGNoZXJzLmgpCi10byBjb21wYXJlIHByb3RvcyBpbiB5b3VyIHRlc3RzOgotCi1gYGBj
KysKLSNpbmNsdWRlICJ0ZXN0aW5nL2Jhc2UvcHVibGljL2dtb2NrLmgiCi11c2luZyA6OnRlc3Rp
bmc6OkVxdWFsc1Byb3RvOwotLi4uCi0gICAgRVhQRUNUX1RIQVQoYWN0dWFsX3Byb3RvLCBFcXVh
bHNQcm90bygiZm9vOiAxMjMgYmFyOiAneHl6JyIpKTsKLSAgICBFWFBFQ1RfVEhBVCgqYWN0dWFs
X3Byb3RvX3B0ciwgRXF1YWxzUHJvdG8oZXhwZWN0ZWRfcHJvdG8pKTsKLWBgYAotCi1nTW9jayBp
cyBidW5kbGVkIHdpdGggZ29vZ2xldGVzdCwgc28geW91IGRvbid0IG5lZWQgdG8gYWRkIGFueSBi
dWlsZCBkZXBlbmRlbmN5Ci1pbiBvcmRlciB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLiBKdXN0
IGluY2x1ZGUgYCJ0ZXN0aW5nL2Jhc2UvcHVibGljL2dtb2NrLmgiYAotYW5kIHlvdSdyZSByZWFk
eSB0byBnby4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIGFuZCBNYWMuCi0K
LSMjIyBNb3JlIFN0cmluZyBBc3NlcnRpb25zCi0KLShQbGVhc2UgcmVhZCB0aGUgW3ByZXZpb3Vz
XSgjQXNzZXJ0VGhhdCkgc2VjdGlvbiBmaXJzdCBpZiB5b3UgaGF2ZW4ndC4pCi0KLVlvdSBjYW4g
dXNlIHRoZSBnTW9jayBbc3RyaW5nIG1hdGNoZXJzXSguLi8uLi9nb29nbGVtb2NrL2RvY3MvQ2hl
YXRTaGVldC5tZCNzdHJpbmctbWF0Y2hlcnMpCi13aXRoIGBFWFBFQ1RfVEhBVCgpYCBvciBgQVNT
RVJUX1RIQVQoKWAgdG8gZG8gbW9yZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MKLShzdWItc3Ry
aW5nLCBwcmVmaXgsIHN1ZmZpeCwgcmVndWxhciBleHByZXNzaW9uLCBhbmQgZXRjKS4gRm9yIGV4
YW1wbGUsCi0KLWBgYGMrKwotdXNpbmcgOjp0ZXN0aW5nOjpIYXNTdWJzdHI7Ci11c2luZyA6OnRl
c3Rpbmc6Ok1hdGNoZXNSZWdleDsKLS4uLgotICBBU1NFUlRfVEhBVChmb29fc3RyaW5nLCBIYXNT
dWJzdHIoIm5lZWRsZSIpKTsKLSAgRVhQRUNUX1RIQVQoYmFyX3N0cmluZywgTWF0Y2hlc1JlZ2V4
KCJcXHcqXFxkKyIpKTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywg
TWFjLgotCi1JZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGEgd2VsbC1mb3JtZWQgSFRNTCBvciBYTUwg
ZG9jdW1lbnQsIHlvdSBjYW4gY2hlY2sgd2hldGhlcgotaXRzIERPTSB0cmVlIG1hdGNoZXMgYW4g
W1hQYXRoCi1leHByZXNzaW9uXShodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aC8jY29udGVudHMp
OgotCi1gYGBjKysKLS8vIEN1cnJlbnRseSBzdGlsbCBpbiAvL3RlbXBsYXRlL3Byb3RvdGVtcGxh
dGUvdGVzdGluZzp4cGF0aF9tYXRjaGVyCi0jaW5jbHVkZSAidGVtcGxhdGUvcHJvdG90ZW1wbGF0
ZS90ZXN0aW5nL3hwYXRoX21hdGNoZXIuaCIKLXVzaW5nIHByb3RvdGVtcGxhdGU6OnRlc3Rpbmc6
Ok1hdGNoZXNYUGF0aDsKLUVYUEVDVF9USEFUKGh0bWxfc3RyaW5nLCBNYXRjaGVzWFBhdGgoIi8v
YVt0ZXh0KCk9J2NsaWNrIGhlcmUnXSIpKTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51
eC4KLQotIyMjIFdpbmRvd3MgSFJFU1VMVCBhc3NlcnRpb25zCi0KLVRoZXNlIGFzc2VydGlvbnMg
dGVzdCBmb3IgYEhSRVNVTFRgIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4KLQotRmF0YWwgYXNzZXJ0aW9u
ICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAg
ICAgICAgICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBB
U1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoZXhwcmVzc2lvbilgIHwgYEVYUEVDVF9IUkVTVUxUX1NV
Q0NFRURFRChleHByZXNzaW9uKWAgfCBgZXhwcmVzc2lvbmAgaXMgYSBzdWNjZXNzIGBIUkVTVUxU
YAotYEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChleHByZXNzaW9uKWAgICAgfCBgRVhQRUNUX0hSRVNV
TFRfRkFJTEVEKGV4cHJlc3Npb24pYCAgICB8IGBleHByZXNzaW9uYCBpcyBhIGZhaWx1cmUgYEhS
RVNVTFRgCi0KLVRoZSBnZW5lcmF0ZWQgb3V0cHV0IGNvbnRhaW5zIHRoZSBodW1hbi1yZWFkYWJs
ZSBlcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aAotdGhlIGBIUkVTVUxUYCBjb2RlIHJldHVy
bmVkIGJ5IGBleHByZXNzaW9uYC4KLQotWW91IG1pZ2h0IHVzZSB0aGVtIGxpa2UgdGhpczoKLQot
YGBgYysrCi1DQ29tUHRyPElTaGVsbERpc3BhdGNoMj4gc2hlbGw7Ci1BU1NFUlRfSFJFU1VMVF9T
VUNDRUVERUQoc2hlbGwuQ29DcmVhdGVJbnN0YW5jZShMIlNoZWxsLkFwcGxpY2F0aW9uIikpOwot
Q0NvbVZhcmlhbnQgZW1wdHk7Ci1BU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoc2hlbGwtPlNoZWxs
RXhlY3V0ZShDQ29tQlNUUih1cmwpLCBlbXB0eSwgZW1wdHksIGVtcHR5LCBlbXB0eSkpOwotYGBg
Ci0KLSoqQXZhaWxhYmlsaXR5Kio6IFdpbmRvd3MuCi0KLSMjIyBUeXBlIEFzc2VydGlvbnMKLQot
WW91IGNhbiBjYWxsIHRoZSBmdW5jdGlvbgotCi1gYGBjKysKLTo6dGVzdGluZzo6U3RhdGljQXNz
ZXJ0VHlwZUVxPFQxLCBUMj4oKTsKLWBgYAotCi10byBhc3NlcnQgdGhhdCB0eXBlcyBgVDFgIGFu
ZCBgVDJgIGFyZSB0aGUgc2FtZS4gVGhlIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBpZgotdGhlIGFz
c2VydGlvbiBpcyBzYXRpc2ZpZWQuIElmIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LCB0aGUgZnVu
Y3Rpb24gY2FsbCB3aWxsCi1mYWlsIHRvIGNvbXBpbGUsIGFuZCB0aGUgY29tcGlsZXIgZXJyb3Ig
bWVzc2FnZSB3aWxsIGxpa2VseSAoZGVwZW5kaW5nIG9uIHRoZQotY29tcGlsZXIpIHNob3cgeW91
IHRoZSBhY3R1YWwgdmFsdWVzIG9mIGBUMWAgYW5kIGBUMmAuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1
bAotaW5zaWRlIHRlbXBsYXRlIGNvZGUuCi0KLSoqQ2F2ZWF0Kio6IFdoZW4gdXNlZCBpbnNpZGUg
YSBtZW1iZXIgZnVuY3Rpb24gb2YgYSBjbGFzcyB0ZW1wbGF0ZSBvciBhIGZ1bmN0aW9uCi10ZW1w
bGF0ZSwgYFN0YXRpY0Fzc2VydFR5cGVFcTxUMSwgVDI+KClgIGlzIGVmZmVjdGl2ZSBvbmx5IGlm
IHRoZSBmdW5jdGlvbiBpcwotaW5zdGFudGlhdGVkLiBGb3IgZXhhbXBsZSwgZ2l2ZW46Ci0KLWBg
YGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEZvbyB7Ci0gcHVibGljOgotICB2b2lk
IEJhcigpIHsgOjp0ZXN0aW5nOjpTdGF0aWNBc3NlcnRUeXBlRXE8aW50LCBUPigpOyB9Ci19Owot
YGBgCi0KLXRoZSBjb2RlOgotCi1gYGBjKysKLXZvaWQgVGVzdDEoKSB7IEZvbzxib29sPiBmb287
IH0KLWBgYAotCi13aWxsIG5vdCBnZW5lcmF0ZSBhIGNvbXBpbGVyIGVycm9yLCBhcyBgRm9vPGJv
b2w+OjpCYXIoKWAgaXMgbmV2ZXIgYWN0dWFsbHkKLWluc3RhbnRpYXRlZC4gSW5zdGVhZCwgeW91
IG5lZWQ6Ci0KLWBgYGMrKwotdm9pZCBUZXN0MigpIHsgRm9vPGJvb2w+IGZvbzsgZm9vLkJhcigp
OyB9Ci1gYGAKLQotdG8gY2F1c2UgYSBjb21waWxlciBlcnJvci4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEFzc2VydGlvbiBQbGFjZW1lbnQKLQotWW91
IGNhbiB1c2UgYXNzZXJ0aW9ucyBpbiBhbnkgQysrIGZ1bmN0aW9uLiBJbiBwYXJ0aWN1bGFyLCBp
dCBkb2Vzbid0IGhhdmUgdG8gYmUKLWEgbWV0aG9kIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3Mu
IFRoZSBvbmUgY29uc3RyYWludCBpcyB0aGF0IGFzc2VydGlvbnMgdGhhdAotZ2VuZXJhdGUgYSBm
YXRhbCBmYWlsdXJlIChgRkFJTCpgIGFuZCBgQVNTRVJUXypgKSBjYW4gb25seSBiZSB1c2VkIGlu
Ci12b2lkLXJldHVybmluZyBmdW5jdGlvbnMuIFRoaXMgaXMgYSBjb25zZXF1ZW5jZSBvZiBHb29n
bGUncyBub3QgdXNpbmcKLWV4Y2VwdGlvbnMuIEJ5IHBsYWNpbmcgaXQgaW4gYSBub24tdm9pZCBm
dW5jdGlvbiB5b3UnbGwgZ2V0IGEgY29uZnVzaW5nIGNvbXBpbGUKLWVycm9yIGxpa2UgYCJlcnJv
cjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZSJgIG9yIGAiY2Fubm90
Ci1pbml0aWFsaXplIHJldHVybiBvYmplY3Qgb2YgdHlwZSAnYm9vbCcgd2l0aCBhbiBydmFsdWUg
b2YgdHlwZSAndm9pZCciYCBvcgotYCJlcnJvcjogbm8gdmlhYmxlIGNvbnZlcnNpb24gZnJvbSAn
dm9pZCcgdG8gJ3N0cmluZyciYC4KLQotSWYgeW91IG5lZWQgdG8gdXNlIGZhdGFsIGFzc2VydGlv
bnMgaW4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgbm9uLXZvaWQsIG9uZQotb3B0aW9uIGlzIHRv
IG1ha2UgdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFsdWUgaW4gYW4gb3V0IHBhcmFtZXRlciBp
bnN0ZWFkLiBGb3IKLWV4YW1wbGUsIHlvdSBjYW4gcmV3cml0ZSBgVDIgRm9vKFQxIHgpYCB0byBg
dm9pZCBGb28oVDEgeCwgVDIqIHJlc3VsdClgLiBZb3UKLW5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
YCpyZXN1bHRgIGNvbnRhaW5zIHNvbWUgc2Vuc2libGUgdmFsdWUgZXZlbiB3aGVuIHRoZQotZnVu
Y3Rpb24gcmV0dXJucyBwcmVtYXR1cmVseS4gQXMgdGhlIGZ1bmN0aW9uIG5vdyByZXR1cm5zIGB2
b2lkYCwgeW91IGNhbiB1c2UKLWFueSBhc3NlcnRpb24gaW5zaWRlIG9mIGl0LgotCi1JZiBjaGFu
Z2luZyB0aGUgZnVuY3Rpb24ncyB0eXBlIGlzIG5vdCBhbiBvcHRpb24sIHlvdSBzaG91bGQganVz
dCB1c2UgYXNzZXJ0aW9ucwotdGhhdCBnZW5lcmF0ZSBub24tZmF0YWwgZmFpbHVyZXMsIHN1Y2gg
YXMgYEFERF9GQUlMVVJFKmAgYW5kIGBFWFBFQ1RfKmAuCi0KLU5PVEU6IENvbnN0cnVjdG9ycyBh
bmQgZGVzdHJ1Y3RvcnMgYXJlIG5vdCBjb25zaWRlcmVkIHZvaWQtcmV0dXJuaW5nIGZ1bmN0aW9u
cywKLWFjY29yZGluZyB0byB0aGUgQysrIGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBzbyB5
b3UgbWF5IG5vdCB1c2UgZmF0YWwKLWFzc2VydGlvbnMgaW4gdGhlbS4gWW91J2xsIGdldCBhIGNv
bXBpbGF0aW9uIGVycm9yIGlmIHlvdSB0cnkuIEEgc2ltcGxlCi13b3JrYXJvdW5kIGlzIHRvIHRy
YW5zZmVyIHRoZSBlbnRpcmUgYm9keSBvZiB0aGUgY29uc3RydWN0b3Igb3IgZGVzdHJ1Y3RvciB0
byBhCi1wcml2YXRlIHZvaWQtcmV0dXJuaW5nIG1ldGhvZC4gSG93ZXZlciwgeW91IHNob3VsZCBi
ZSBhd2FyZSB0aGF0IGEgZmF0YWwKLWFzc2VydGlvbiBmYWlsdXJlIGluIGEgY29uc3RydWN0b3Ig
ZG9lcyBub3QgdGVybWluYXRlIHRoZSBjdXJyZW50IHRlc3QsIGFzIHlvdXIKLWludHVpdGlvbiBt
aWdodCBzdWdnZXN0OyBpdCBtZXJlbHkgcmV0dXJucyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBlYXJs
eSwgcG9zc2libHkKLWxlYXZpbmcgeW91ciBvYmplY3QgaW4gYSBwYXJ0aWFsbHktY29uc3RydWN0
ZWQgc3RhdGUuIExpa2V3aXNlLCBhIGZhdGFsCi1hc3NlcnRpb24gZmFpbHVyZSBpbiBhIGRlc3Ry
dWN0b3IgbWF5IGxlYXZlIHlvdXIgb2JqZWN0IGluIGEKLXBhcnRpYWxseS1kZXN0cnVjdGVkIHN0
YXRlLiBVc2UgYXNzZXJ0aW9ucyBjYXJlZnVsbHkgaW4gdGhlc2Ugc2l0dWF0aW9ucyEKLQotIyMg
VGVhY2hpbmcgZ29vZ2xldGVzdCBIb3cgdG8gUHJpbnQgWW91ciBWYWx1ZXMKLQotV2hlbiBhIHRl
c3QgYXNzZXJ0aW9uIHN1Y2ggYXMgYEVYUEVDVF9FUWAgZmFpbHMsIGdvb2dsZXRlc3QgcHJpbnRz
IHRoZSBhcmd1bWVudAotdmFsdWVzIHRvIGhlbHAgeW91IGRlYnVnLiBJdCBkb2VzIHRoaXMgdXNp
bmcgYSB1c2VyLWV4dGVuc2libGUgdmFsdWUgcHJpbnRlci4KLQotVGhpcyBwcmludGVyIGtub3dz
IGhvdyB0byBwcmludCBidWlsdC1pbiBDKysgdHlwZXMsIG5hdGl2ZSBhcnJheXMsIFNUTAotY29u
dGFpbmVycywgYW5kIGFueSB0eXBlIHRoYXQgc3VwcG9ydHMgdGhlIGA8PGAgb3BlcmF0b3IuIEZv
ciBvdGhlciB0eXBlcywgaXQKLXByaW50cyB0aGUgcmF3IGJ5dGVzIGluIHRoZSB2YWx1ZSBhbmQg
aG9wZXMgdGhhdCB5b3UgdGhlIHVzZXIgY2FuIGZpZ3VyZSBpdCBvdXQuCi0KLUFzIG1lbnRpb25l
ZCBlYXJsaWVyLCB0aGUgcHJpbnRlciBpcyAqZXh0ZW5zaWJsZSouIFRoYXQgbWVhbnMgeW91IGNh
biB0ZWFjaCBpdAotdG8gZG8gYSBiZXR0ZXIgam9iIGF0IHByaW50aW5nIHlvdXIgcGFydGljdWxh
ciB0eXBlIHRoYW4gdG8gZHVtcCB0aGUgYnl0ZXMuIFRvCi1kbyB0aGF0LCBkZWZpbmUgYDw8YCBm
b3IgeW91ciB0eXBlOgotCi1gYGBjKysKLS8vIFN0cmVhbXMgYXJlIGFsbG93ZWQgb25seSBmb3Ig
bG9nZ2luZy4gIERvbid0IGluY2x1ZGUgdGhpcyBmb3IKLS8vIGFueSBvdGhlciBwdXJwb3NlLgot
I2luY2x1ZGUgPG9zdHJlYW0+Ci0KLW5hbWVzcGFjZSBmb28gewotCi1jbGFzcyBCYXIgeyAgLy8g
V2Ugd2FudCBnb29nbGV0ZXN0IHRvIGJlIGFibGUgdG8gcHJpbnQgaW5zdGFuY2VzIG9mIHRoaXMu
Ci0uLi4KLSAgLy8gQ3JlYXRlIGEgZnJlZSBpbmxpbmUgZnJpZW5kIGZ1bmN0aW9uLgotICBmcmll
bmQgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEJhciYg
YmFyKSB7Ci0gICAgcmV0dXJuIG9zIDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIg
bmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotICB9Ci19OwotCi0vLyBJZiB5b3UgY2FuJ3QgZGVj
bGFyZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGNsYXNzIGl0J3MgaW1wb3J0YW50IHRoYXQgdGhlCi0v
LyA8PCBvcGVyYXRvciBpcyBkZWZpbmVkIGluIHRoZSBTQU1FIG5hbWVzcGFjZSB0aGF0IGRlZmlu
ZXMgQmFyLiAgQysrJ3MgbG9vay11cAotLy8gcnVsZXMgcmVseSBvbiB0aGF0Lgotc3RkOjpvc3Ry
ZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEJhciYgYmFyKSB7Ci0gIHJl
dHVybiBvcyA8PCBiYXIuRGVidWdTdHJpbmcoKTsgIC8vIHdoYXRldmVyIG5lZWRlZCB0byBwcmlu
dCBiYXIgdG8gb3MKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGZvbwotYGBgCi0KLVNvbWV0aW1lcywg
dGhpcyBtaWdodCBub3QgYmUgYW4gb3B0aW9uOiB5b3VyIHRlYW0gbWF5IGNvbnNpZGVyIGl0IGJh
ZCBzdHlsZSB0bwotaGF2ZSBhIGA8PGAgb3BlcmF0b3IgZm9yIGBCYXJgLCBvciBgQmFyYCBtYXkg
YWxyZWFkeSBoYXZlIGEgYDw8YCBvcGVyYXRvciB0aGF0Ci1kb2Vzbid0IGRvIHdoYXQgeW91IHdh
bnQgKGFuZCB5b3UgY2Fubm90IGNoYW5nZSBpdCkuIElmIHNvLCB5b3UgY2FuIGluc3RlYWQKLWRl
ZmluZSBhIGBQcmludFRvKClgIGZ1bmN0aW9uIGxpa2UgdGhpczoKLQotYGBgYysrCi0vLyBTdHJl
YW1zIGFyZSBhbGxvd2VkIG9ubHkgZm9yIGxvZ2dpbmcuICBEb24ndCBpbmNsdWRlIHRoaXMgZm9y
Ci0vLyBhbnkgb3RoZXIgcHVycG9zZS4KLSNpbmNsdWRlIDxvc3RyZWFtPgotCi1uYW1lc3BhY2Ug
Zm9vIHsKLQotY2xhc3MgQmFyIHsKLSAgLi4uCi0gIGZyaWVuZCB2b2lkIFByaW50VG8oY29uc3Qg
QmFyJiBiYXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICAqb3MgPDwgYmFyLkRlYnVnU3RyaW5n
KCk7ICAvLyB3aGF0ZXZlciBuZWVkZWQgdG8gcHJpbnQgYmFyIHRvIG9zCi0gIH0KLX07Ci0KLS8v
IElmIHlvdSBjYW4ndCBkZWNsYXJlIHRoZSBmdW5jdGlvbiBpbiB0aGUgY2xhc3MgaXQncyBpbXBv
cnRhbnQgdGhhdCBQcmludFRvKCkKLS8vIGlzIGRlZmluZWQgaW4gdGhlIFNBTUUgbmFtZXNwYWNl
IHRoYXQgZGVmaW5lcyBCYXIuICBDKysncyBsb29rLXVwIHJ1bGVzIHJlbHkKLS8vIG9uIHRoYXQu
Ci12b2lkIFByaW50VG8oY29uc3QgQmFyJiBiYXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgKm9z
IDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0
byBvcwotfQotCi19ICAvLyBuYW1lc3BhY2UgZm9vCi1gYGAKLQotSWYgeW91IGhhdmUgZGVmaW5l
ZCBib3RoIGA8PGAgYW5kIGBQcmludFRvKClgLCB0aGUgbGF0dGVyIHdpbGwgYmUgdXNlZCB3aGVu
Ci1nb29nbGV0ZXN0IGlzIGNvbmNlcm5lZC4gVGhpcyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBo
b3cgdGhlIHZhbHVlIGFwcGVhcnMgaW4KLWdvb2dsZXRlc3QncyBvdXRwdXQgd2l0aG91dCBhZmZl
Y3RpbmcgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgYmVoYXZpb3Igb2YgaXRzCi1gPDxgIG9wZXJh
dG9yLgotCi1JZiB5b3Ugd2FudCB0byBwcmludCBhIHZhbHVlIGB4YCB1c2luZyBnb29nbGV0ZXN0
J3MgdmFsdWUgcHJpbnRlciB5b3Vyc2VsZiwganVzdAotY2FsbCBgOjp0ZXN0aW5nOjpQcmludFRv
U3RyaW5nKHgpYCwgd2hpY2ggcmV0dXJucyBhbiBgc3RkOjpzdHJpbmdgOgotCi1gYGBjKysKLXZl
Y3RvcjxwYWlyPEJhciwgaW50PiA+IGJhcl9pbnRzID0gR2V0QmFySW50VmVjdG9yKCk7Ci0KLUVY
UEVDVF9UUlVFKElzQ29ycmVjdEJhckludFZlY3RvcihiYXJfaW50cykpCi0gICAgPDwgImJhcl9p
bnRzID0gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoYmFyX2ludHMpOwotYGBgCi0KLSMj
IERlYXRoIFRlc3RzCi0KLUluIG1hbnkgYXBwbGljYXRpb25zLCB0aGVyZSBhcmUgYXNzZXJ0aW9u
cyB0aGF0IGNhbiBjYXVzZSBhcHBsaWNhdGlvbiBmYWlsdXJlIGlmCi1hIGNvbmRpdGlvbiBpcyBu
b3QgbWV0LiBUaGVzZSBzYW5pdHkgY2hlY2tzLCB3aGljaCBlbnN1cmUgdGhhdCB0aGUgcHJvZ3Jh
bSBpcyBpbgotYSBrbm93biBnb29kIHN0YXRlLCBhcmUgdGhlcmUgdG8gZmFpbCBhdCB0aGUgZWFy
bGllc3QgcG9zc2libGUgdGltZSBhZnRlciBzb21lCi1wcm9ncmFtIHN0YXRlIGlzIGNvcnJ1cHRl
ZC4gSWYgdGhlIGFzc2VydGlvbiBjaGVja3MgdGhlIHdyb25nIGNvbmRpdGlvbiwgdGhlbgotdGhl
IHByb2dyYW0gbWF5IHByb2NlZWQgaW4gYW4gZXJyb25lb3VzIHN0YXRlLCB3aGljaCBjb3VsZCBs
ZWFkIHRvIG1lbW9yeQotY29ycnVwdGlvbiwgc2VjdXJpdHkgaG9sZXMsIG9yIHdvcnNlLiBIZW5j
ZSBpdCBpcyB2aXRhbGx5IGltcG9ydGFudCB0byB0ZXN0IHRoYXQKLXN1Y2ggYXNzZXJ0aW9uIHN0
YXRlbWVudHMgd29yayBhcyBleHBlY3RlZC4KLQotU2luY2UgdGhlc2UgcHJlY29uZGl0aW9uIGNo
ZWNrcyBjYXVzZSB0aGUgcHJvY2Vzc2VzIHRvIGRpZSwgd2UgY2FsbCBzdWNoIHRlc3RzCi1fZGVh
dGggdGVzdHNfLiBNb3JlIGdlbmVyYWxseSwgYW55IHRlc3QgdGhhdCBjaGVja3MgdGhhdCBhIHBy
b2dyYW0gdGVybWluYXRlcwotKGV4Y2VwdCBieSB0aHJvd2luZyBhbiBleGNlcHRpb24pIGluIGFu
IGV4cGVjdGVkIGZhc2hpb24gaXMgYWxzbyBhIGRlYXRoIHRlc3QuCi0KLQotTm90ZSB0aGF0IGlm
IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3ZSBkb24ndCBjb25zaWRlciBp
dCAiZGVhdGgiCi1mb3IgdGhlIHB1cnBvc2Ugb2YgZGVhdGggdGVzdHMsIGFzIHRoZSBjYWxsZXIg
b2YgdGhlIGNvZGUgY291bGQgY2F0Y2ggdGhlCi1leGNlcHRpb24gYW5kIGF2b2lkIHRoZSBjcmFz
aC4gSWYgeW91IHdhbnQgdG8gdmVyaWZ5IGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHlvdXIKLWNvZGUs
IHNlZSBbRXhjZXB0aW9uIEFzc2VydGlvbnNdKCNleGNlcHRpb24tYXNzZXJ0aW9ucykuCi0KLUlm
IHlvdSB3YW50IHRvIHRlc3QgYEVYUEVDVF8qKCkvQVNTRVJUXyooKWAgZmFpbHVyZXMgaW4geW91
ciB0ZXN0IGNvZGUsIHNlZQotQ2F0Y2hpbmcgRmFpbHVyZXMKLQotIyMjIEhvdyB0byBXcml0ZSBh
IERlYXRoIFRlc3QKLQotZ29vZ2xldGVzdCBoYXMgdGhlIGZvbGxvd2luZyBtYWNyb3MgdG8gc3Vw
cG9ydCBkZWF0aCB0ZXN0czoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAt
LS0tLS0tLQotYEFTU0VSVF9ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4KTtgICAgICAgICAgICAgICB8
IGBFWFBFQ1RfREVBVEgoc3RhdGVtZW50LCByZWdleCk7YCAgICAgICAgICAgICAgfCBgc3RhdGVt
ZW50YCBjcmFzaGVzIHdpdGggdGhlIGdpdmVuIGVycm9yCi1gQVNTRVJUX0RFQVRIX0lGX1NVUFBP
UlRFRChzdGF0ZW1lbnQsIHJlZ2V4KTtgIHwgYEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoc3Rh
dGVtZW50LCByZWdleCk7YCB8IGlmIGRlYXRoIHRlc3RzIGFyZSBzdXBwb3J0ZWQsIHZlcmlmaWVz
IHRoYXQgYHN0YXRlbWVudGAgY3Jhc2hlcyB3aXRoIHRoZSBnaXZlbiBlcnJvcjsgb3RoZXJ3aXNl
IHZlcmlmaWVzIG5vdGhpbmcKLWBBU1NFUlRfRVhJVChzdGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVn
ZXgpO2AgICAgfCBgRVhQRUNUX0VYSVQoc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4KTtgICAg
IHwgYHN0YXRlbWVudGAgZXhpdHMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3IsIGFuZCBpdHMgZXhpdCBj
b2RlIG1hdGNoZXMgYHByZWRpY2F0ZWAKLQotd2hlcmUgYHN0YXRlbWVudGAgaXMgYSBzdGF0ZW1l
bnQgdGhhdCBpcyBleHBlY3RlZCB0byBjYXVzZSB0aGUgcHJvY2VzcyB0byBkaWUsCi1gcHJlZGlj
YXRlYCBpcyBhIGZ1bmN0aW9uIG9yIGZ1bmN0aW9uIG9iamVjdCB0aGF0IGV2YWx1YXRlcyBhbiBp
bnRlZ2VyIGV4aXQKLXN0YXR1cywgYW5kIGByZWdleGAgaXMgYSAoUGVybCkgcmVndWxhciBleHBy
ZXNzaW9uIHRoYXQgdGhlIHN0ZGVyciBvdXRwdXQgb2YKLWBzdGF0ZW1lbnRgIGlzIGV4cGVjdGVk
IHRvIG1hdGNoLiBOb3RlIHRoYXQgYHN0YXRlbWVudGAgY2FuIGJlICphbnkgdmFsaWQKLXN0YXRl
bWVudCogKGluY2x1ZGluZyAqY29tcG91bmQgc3RhdGVtZW50KikgYW5kIGRvZXNuJ3QgaGF2ZSB0
byBiZSBhbgotZXhwcmVzc2lvbi4KLQotCi1BcyB1c3VhbCwgdGhlIGBBU1NFUlRgIHZhcmlhbnRz
IGFib3J0IHRoZSBjdXJyZW50IHRlc3QgZnVuY3Rpb24sIHdoaWxlIHRoZQotYEVYUEVDVGAgdmFy
aWFudHMgZG8gbm90LgotCi0+IE5PVEU6IFdlIHVzZSB0aGUgd29yZCAiY3Jhc2giIGhlcmUgdG8g
bWVhbiB0aGF0IHRoZSBwcm9jZXNzIHRlcm1pbmF0ZXMgd2l0aCBhCi0+ICpub24temVybyogZXhp
dCBzdGF0dXMgY29kZS4gVGhlcmUgYXJlIHR3byBwb3NzaWJpbGl0aWVzOiBlaXRoZXIgdGhlIHBy
b2Nlc3MKLT4gaGFzIGNhbGxlZCBgZXhpdCgpYCBvciBgX2V4aXQoKWAgd2l0aCBhIG5vbi16ZXJv
IHZhbHVlLCBvciBpdCBtYXkgYmUga2lsbGVkIGJ5Ci0+IGEgc2lnbmFsLgotPgotPiBUaGlzIG1l
YW5zIHRoYXQgaWYgYCpzdGF0ZW1lbnQqYCB0ZXJtaW5hdGVzIHRoZSBwcm9jZXNzIHdpdGggYSAw
IGV4aXQgY29kZSwgaXQKLT4gaXMgKm5vdCogY29uc2lkZXJlZCBhIGNyYXNoIGJ5IGBFWFBFQ1Rf
REVBVEhgLiBVc2UgYEVYUEVDVF9FWElUYCBpbnN0ZWFkIGlmCi0+IHRoaXMgaXMgdGhlIGNhc2Us
IG9yIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IHRoZSBleGl0IGNvZGUgbW9yZSBwcmVjaXNlbHku
Ci0KLUEgcHJlZGljYXRlIGhlcmUgbXVzdCBhY2NlcHQgYW4gYGludGAgYW5kIHJldHVybiBhIGBi
b29sYC4gVGhlIGRlYXRoIHRlc3QKLXN1Y2NlZWRzIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSByZXR1
cm5zIGB0cnVlYC4gZ29vZ2xldGVzdCBkZWZpbmVzIGEgZmV3Ci1wcmVkaWNhdGVzIHRoYXQgaGFu
ZGxlIHRoZSBtb3N0IGNvbW1vbiBjYXNlczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkV4aXRlZFdp
dGhDb2RlKGV4aXRfY29kZSkKLWBgYAotCi1UaGlzIGV4cHJlc3Npb24gaXMgYHRydWVgIGlmIHRo
ZSBwcm9ncmFtIGV4aXRlZCBub3JtYWxseSB3aXRoIHRoZSBnaXZlbiBleGl0Ci1jb2RlLgotCi1g
YGBjKysKLTo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwoc2lnbmFsX251bWJlcikgIC8vIE5vdCBh
dmFpbGFibGUgb24gV2luZG93cy4KLWBgYAotCi1UaGlzIGV4cHJlc3Npb24gaXMgYHRydWVgIGlm
IHRoZSBwcm9ncmFtIHdhcyBraWxsZWQgYnkgdGhlIGdpdmVuIHNpZ25hbC4KLQotVGhlIGAqX0RF
QVRIYCBtYWNyb3MgYXJlIGNvbnZlbmllbnQgd3JhcHBlcnMgZm9yIGAqX0VYSVRgIHRoYXQgdXNl
IGEgcHJlZGljYXRlCi10aGF0IHZlcmlmaWVzIHRoZSBwcm9jZXNzJyBleGl0IGNvZGUgaXMgbm9u
LXplcm8uCi0KLU5vdGUgdGhhdCBhIGRlYXRoIHRlc3Qgb25seSBjYXJlcyBhYm91dCB0aHJlZSB0
aGluZ3M6Ci0KLTEuICBkb2VzIGBzdGF0ZW1lbnRgIGFib3J0IG9yIGV4aXQgdGhlIHByb2Nlc3M/
Ci0yLiAgKGluIHRoZSBjYXNlIG9mIGBBU1NFUlRfRVhJVGAgYW5kIGBFWFBFQ1RfRVhJVGApIGRv
ZXMgdGhlIGV4aXQgc3RhdHVzCi0gICAgc2F0aXNmeSBgcHJlZGljYXRlYD8gT3IgKGluIHRoZSBj
YXNlIG9mIGBBU1NFUlRfREVBVEhgIGFuZCBgRVhQRUNUX0RFQVRIYCkKLSAgICBpcyB0aGUgZXhp
dCBzdGF0dXMgbm9uLXplcm8/IEFuZAotMy4gIGRvZXMgdGhlIHN0ZGVyciBvdXRwdXQgbWF0Y2gg
YHJlZ2V4YD8KLQotSW4gcGFydGljdWxhciwgaWYgYHN0YXRlbWVudGAgZ2VuZXJhdGVzIGFuIGBB
U1NFUlRfKmAgb3IgYEVYUEVDVF8qYCBmYWlsdXJlLCBpdAotd2lsbCAqKm5vdCoqIGNhdXNlIHRo
ZSBkZWF0aCB0ZXN0IHRvIGZhaWwsIGFzIGdvb2dsZXRlc3QgYXNzZXJ0aW9ucyBkb24ndCBhYm9y
dAotdGhlIHByb2Nlc3MuCi0KLVRvIHdyaXRlIGEgZGVhdGggdGVzdCwgc2ltcGx5IHVzZSBvbmUg
b2YgdGhlIGFib3ZlIG1hY3JvcyBpbnNpZGUgeW91ciB0ZXN0Ci1mdW5jdGlvbi4gRm9yIGV4YW1w
bGUsCi0KLWBgYGMrKwotVEVTVChNeURlYXRoVGVzdCwgRm9vKSB7Ci0gIC8vIFRoaXMgZGVhdGgg
dGVzdCB1c2VzIGEgY29tcG91bmQgc3RhdGVtZW50LgotICBBU1NFUlRfREVBVEgoewotICAgIGlu
dCBuID0gNTsKLSAgICBGb28oJm4pOwotICB9LCAiRXJyb3Igb24gbGluZSAuKiBvZiBGb28oKSIp
OwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBOb3JtYWxFeGl0KSB7Ci0gIEVYUEVDVF9FWElUKE5v
cm1hbEV4aXQoKSwgOjp0ZXN0aW5nOjpFeGl0ZWRXaXRoQ29kZSgwKSwgIlN1Y2Nlc3MiKTsKLX0K
LQotVEVTVChNeURlYXRoVGVzdCwgS2lsbE15c2VsZikgewotICBFWFBFQ1RfRVhJVChLaWxsTXlz
ZWxmKCksIDo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwoU0lHS0lMTCksCi0gICAgICAgICAgICAg
ICJTZW5kaW5nIG15c2VsZiB1bmJsb2NrYWJsZSBzaWduYWwiKTsKLX0KLWBgYAotCi12ZXJpZmll
cyB0aGF0OgotCi0qICAgY2FsbGluZyBgRm9vKDUpYCBjYXVzZXMgdGhlIHByb2Nlc3MgdG8gZGll
IHdpdGggdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2UsCi0qICAgY2FsbGluZyBgTm9ybWFsRXhpdCgp
YCBjYXVzZXMgdGhlIHByb2Nlc3MgdG8gcHJpbnQgYCJTdWNjZXNzImAgdG8gc3RkZXJyIGFuZAot
ICAgIGV4aXQgd2l0aCBleGl0IGNvZGUgMCwgYW5kCi0qICAgY2FsbGluZyBgS2lsbE15c2VsZigp
YCBraWxscyB0aGUgcHJvY2VzcyB3aXRoIHNpZ25hbCBgU0lHS0lMTGAuCi0KLVRoZSB0ZXN0IGZ1
bmN0aW9uIGJvZHkgbWF5IGNvbnRhaW4gb3RoZXIgYXNzZXJ0aW9ucyBhbmQgc3RhdGVtZW50cyBh
cyB3ZWxsLCBpZgotbmVjZXNzYXJ5LgotCi0jIyMgRGVhdGggVGVzdCBOYW1pbmcKLQotSU1QT1JU
QU5UOiBXZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRvIGZvbGxvdyB0aGUgY29udmVudGlvbiBv
ZiBuYW1pbmcgeW91cgotKip0ZXN0IGNhc2UqKiAobm90IHRlc3QpIGAqRGVhdGhUZXN0YCB3aGVu
IGl0IGNvbnRhaW5zIGEgZGVhdGggdGVzdCwgYXMKLWRlbW9uc3RyYXRlZCBpbiB0aGUgYWJvdmUg
ZXhhbXBsZS4gVGhlIFtEZWF0aCBUZXN0cyBBbmQKLVRocmVhZHNdKCNkZWF0aC10ZXN0cy1hbmQt
dGhyZWFkcykgc2VjdGlvbiBiZWxvdyBleHBsYWlucyB3aHkuCi0KLUlmIGEgdGVzdCBmaXh0dXJl
IGNsYXNzIGlzIHNoYXJlZCBieSBub3JtYWwgdGVzdHMgYW5kIGRlYXRoIHRlc3RzLCB5b3UgY2Fu
IHVzZQotYHVzaW5nYCBvciBgdHlwZWRlZmAgdG8gaW50cm9kdWNlIGFuIGFsaWFzIGZvciB0aGUg
Zml4dHVyZSBjbGFzcyBhbmQgYXZvaWQKLWR1cGxpY2F0aW5nIGl0cyBjb2RlOgotCi1gYGBjKysK
LWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsgLi4uIH07Ci0KLXVzaW5n
IEZvb0RlYXRoVGVzdCA9IEZvb1Rlc3Q7Ci0KLVRFU1RfRihGb29UZXN0LCBEb2VzVGhpcykgewot
ICAvLyBub3JtYWwgdGVzdAotfQotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBEb2VzVGhhdCkgewot
ICAvLyBkZWF0aCB0ZXN0Ci19Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgQ3lnd2luLCBhbmQgTWFjCi0KLSMjIyBS
ZWd1bGFyIEV4cHJlc3Npb24gU3ludGF4Ci0KLQotT24gUE9TSVggc3lzdGVtcyAoZS5nLiBMaW51
eCwgQ3lnd2luLCBhbmQgTWFjKSwgZ29vZ2xldGVzdCB1c2VzIHRoZQotW1BPU0lYIGV4dGVuZGVk
IHJlZ3VsYXIgZXhwcmVzc2lvbl0oaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv
MDA5Njk1Mzk5L2Jhc2VkZWZzL3hiZF9jaGFwMDkuaHRtbCN0YWdfMDlfMDQpCi1zeW50YXguIFRv
IGxlYXJuIGFib3V0IHRoaXMgc3ludGF4LCB5b3UgbWF5IHdhbnQgdG8gcmVhZCB0aGlzCi1bV2lr
aXBlZGlhIGVudHJ5XShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlZ3VsYXJfZXhwcmVz
c2lvbiNQT1NJWF9FeHRlbmRlZF9SZWd1bGFyX0V4cHJlc3Npb25zKS4KLQotT24gV2luZG93cywg
Z29vZ2xldGVzdCB1c2VzIGl0cyBvd24gc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbXBsZW1l
bnRhdGlvbi4gSXQKLWxhY2tzIG1hbnkgZmVhdHVyZXMuIEZvciBleGFtcGxlLCB3ZSBkb24ndCBz
dXBwb3J0IHVuaW9uIChgInh8eSJgKSwgZ3JvdXBpbmcKLShgIih4eSkiYCksIGJyYWNrZXRzIChg
Ilt4eV0iYCksIGFuZCByZXBldGl0aW9uIGNvdW50IChgInh7NSw3fSJgKSwgYW1vbmcKLW90aGVy
cy4gQmVsb3cgaXMgd2hhdCB3ZSBkbyBzdXBwb3J0IChgQWAgZGVub3RlcyBhIGxpdGVyYWwgY2hh
cmFjdGVyLCBwZXJpb2QKLShgLmApLCBvciBhIHNpbmdsZSBgXFwgYCBlc2NhcGUgc2VxdWVuY2U7
IGB4YCBhbmQgYHlgIGRlbm90ZSByZWd1bGFyCi1leHByZXNzaW9ucy4pOgotCi1FeHByZXNzaW9u
IHwgTWVhbmluZwotLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1gY2AgICAgICAgIHwgbWF0Y2hlcyBhbnkg
bGl0ZXJhbCBjaGFyYWN0ZXIgYGNgCi1gXFxkYCAgICAgIHwgbWF0Y2hlcyBhbnkgZGVjaW1hbCBk
aWdpdAotYFxcRGAgICAgICB8IG1hdGNoZXMgYW55IGNoYXJhY3RlciB0aGF0J3Mgbm90IGEgZGVj
aW1hbCBkaWdpdAotYFxcZmAgICAgICB8IG1hdGNoZXMgYFxmYAotYFxcbmAgICAgICB8IG1hdGNo
ZXMgYFxuYAotYFxccmAgICAgICB8IG1hdGNoZXMgYFxyYAotYFxcc2AgICAgICB8IG1hdGNoZXMg
YW55IEFTQ0lJIHdoaXRlc3BhY2UsIGluY2x1ZGluZyBgXG5gCi1gXFxTYCAgICAgIHwgbWF0Y2hl
cyBhbnkgY2hhcmFjdGVyIHRoYXQncyBub3QgYSB3aGl0ZXNwYWNlCi1gXFx0YCAgICAgIHwgbWF0
Y2hlcyBgXHRgCi1gXFx2YCAgICAgIHwgbWF0Y2hlcyBgXHZgCi1gXFx3YCAgICAgIHwgbWF0Y2hl
cyBhbnkgbGV0dGVyLCBgX2AsIG9yIGRlY2ltYWwgZGlnaXQKLWBcXFdgICAgICAgfCBtYXRjaGVz
IGFueSBjaGFyYWN0ZXIgdGhhdCBgXFx3YCBkb2Vzbid0IG1hdGNoCi1gXFxjYCAgICAgIHwgbWF0
Y2hlcyBhbnkgbGl0ZXJhbCBjaGFyYWN0ZXIgYGNgLCB3aGljaCBtdXN0IGJlIGEgcHVuY3R1YXRp
b24KLWAuYCAgICAgICAgfCBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyIGV4Y2VwdCBgXG5g
Ci1gQT9gICAgICAgIHwgbWF0Y2hlcyAwIG9yIDEgb2NjdXJyZW5jZXMgb2YgYEFgCi1gQSpgICAg
ICAgIHwgbWF0Y2hlcyAwIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2YgYEFgCi1gQStgICAgICAgIHwg
bWF0Y2hlcyAxIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2YgYEFgCi1gXmAgICAgICAgIHwgbWF0Y2hl
cyB0aGUgYmVnaW5uaW5nIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpCi1gJGAg
ICAgICAgIHwgbWF0Y2hlcyB0aGUgZW5kIG9mIGEgc3RyaW5nIChub3QgdGhhdCBvZiBlYWNoIGxp
bmUpCi1geHlgICAgICAgIHwgbWF0Y2hlcyBgeGAgZm9sbG93ZWQgYnkgYHlgCi0KLVRvIGhlbHAg
eW91IGRldGVybWluZSB3aGljaCBjYXBhYmlsaXR5IGlzIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3Rl
bSwgZ29vZ2xldGVzdAotZGVmaW5lcyBtYWNyb3MgdG8gZ292ZXJuIHdoaWNoIHJlZ3VsYXIgZXhw
cmVzc2lvbiBpdCBpcyB1c2luZy4gVGhlIG1hY3JvcyBhcmU6Ci08IS0tYWJzbDpnb29nbGUzLWJl
Z2luKGdvb2dsZTMtb25seSktLT5gR1RFU1RfVVNFU19QQ1JFPTFgLCBvcgotPCEtLWFic2w6Z29v
Z2xlMy1lbmQtLT4gYEdURVNUX1VTRVNfU0lNUExFX1JFPTFgIG9yIGBHVEVTVF9VU0VTX1BPU0lY
X1JFPTFgLiBJZgoteW91IHdhbnQgeW91ciBkZWF0aCB0ZXN0cyB0byB3b3JrIGluIGFsbCBjYXNl
cywgeW91IGNhbiBlaXRoZXIgYCNpZmAgb24gdGhlc2UKLW1hY3JvcyBvciB1c2UgdGhlIG1vcmUg
bGltaXRlZCBzeW50YXggb25seS4KLQotIyMjIEhvdyBJdCBXb3JrcwotCi1VbmRlciB0aGUgaG9v
ZCwgYEFTU0VSVF9FWElUKClgIHNwYXducyBhIG5ldyBwcm9jZXNzIGFuZCBleGVjdXRlcyB0aGUg
ZGVhdGggdGVzdAotc3RhdGVtZW50IGluIHRoYXQgcHJvY2Vzcy4gVGhlIGRldGFpbHMgb2YgaG93
IHByZWNpc2VseSB0aGF0IGhhcHBlbnMgZGVwZW5kIG9uCi10aGUgcGxhdGZvcm0gYW5kIHRoZSB2
YXJpYWJsZSA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgKHdoaWNoIGlz
Ci1pbml0aWFsaXplZCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgZmxhZyBgLS1ndGVzdF9kZWF0aF90
ZXN0X3N0eWxlYCkuCi0KLSogICBPbiBQT1NJWCBzeXN0ZW1zLCBgZm9yaygpYCAob3IgYGNsb25l
KClgIG9uIExpbnV4KSBpcyB1c2VkIHRvIHNwYXduIHRoZQotICAgIGNoaWxkLCBhZnRlciB3aGlj
aDoKLSAgICAqICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMgYCJmYXN0ImAsIHRoZSBkZWF0
aCB0ZXN0IHN0YXRlbWVudCBpcwotICAgICAgICBpbW1lZGlhdGVseSBleGVjdXRlZC4KLSAgICAq
ICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMgYCJ0aHJlYWRzYWZlImAsIHRoZSBjaGlsZCBw
cm9jZXNzIHJlLWV4ZWN1dGVzCi0gICAgICAgIHRoZSB1bml0IHRlc3QgYmluYXJ5IGp1c3QgYXMg
aXQgd2FzIG9yaWdpbmFsbHkgaW52b2tlZCwgYnV0IHdpdGggc29tZQotICAgICAgICBleHRyYSBm
bGFncyB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVhdGggdGVzdCB1bmRlciBjb25zaWRlcmF0
aW9uIHRvCi0gICAgICAgIGJlIHJ1bi4KLSogICBPbiBXaW5kb3dzLCB0aGUgY2hpbGQgaXMgc3Bh
d25lZCB1c2luZyB0aGUgYENyZWF0ZVByb2Nlc3MoKWAgQVBJLCBhbmQKLSAgICByZS1leGVjdXRl
cyB0aGUgYmluYXJ5IHRvIGNhdXNlIGp1c3QgdGhlIHNpbmdsZSBkZWF0aCB0ZXN0IHVuZGVyCi0g
ICAgY29uc2lkZXJhdGlvbiB0byBiZSBydW4gLSBtdWNoIGxpa2UgdGhlIGB0aHJlYWRzYWZlYCBt
b2RlIG9uIFBPU0lYLgotCi1PdGhlciB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSBhcmUgaWxsZWdh
bCBhbmQgd2lsbCBjYXVzZSB0aGUgZGVhdGggdGVzdCB0byBmYWlsLgotQ3VycmVudGx5LCB0aGUg
ZmxhZydzIGRlZmF1bHQgdmFsdWUgaXMKLSJmYXN0Ii4gSG93ZXZlciwgd2UgcmVzZXJ2ZQotdGhl
IHJpZ2h0IHRvIGNoYW5nZSBpdCBpbiB0aGUgZnV0dXJlLiBUaGVyZWZvcmUsIHlvdXIgdGVzdHMg
c2hvdWxkIG5vdCBkZXBlbmQgb24KLXRoaXMuIEluIGVpdGhlciBjYXNlLCB0aGUgcGFyZW50IHBy
b2Nlc3Mgd2FpdHMgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvCi1jb21wbGV0ZSwgYW5kIGNoZWNr
cyB0aGF0Ci0KLTEuICB0aGUgY2hpbGQncyBleGl0IHN0YXR1cyBzYXRpc2ZpZXMgdGhlIHByZWRp
Y2F0ZSwgYW5kCi0yLiAgdGhlIGNoaWxkJ3Mgc3RkZXJyIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhw
cmVzc2lvbi4KLQotSWYgdGhlIGRlYXRoIHRlc3Qgc3RhdGVtZW50IHJ1bnMgdG8gY29tcGxldGlv
biB3aXRob3V0IGR5aW5nLCB0aGUgY2hpbGQgcHJvY2Vzcwotd2lsbCBub25ldGhlbGVzcyB0ZXJt
aW5hdGUsIGFuZCB0aGUgYXNzZXJ0aW9uIGZhaWxzLgotCi0jIyMgRGVhdGggVGVzdHMgQW5kIFRo
cmVhZHMKLQotVGhlIHJlYXNvbiBmb3IgdGhlIHR3byBkZWF0aCB0ZXN0IHN0eWxlcyBoYXMgdG8g
ZG8gd2l0aCB0aHJlYWQgc2FmZXR5LiBEdWUgdG8KLXdlbGwta25vd24gcHJvYmxlbXMgd2l0aCBm
b3JraW5nIGluIHRoZSBwcmVzZW5jZSBvZiB0aHJlYWRzLCBkZWF0aCB0ZXN0cyBzaG91bGQKLWJl
IHJ1biBpbiBhIHNpbmdsZS10aHJlYWRlZCBjb250ZXh0LiBTb21ldGltZXMsIGhvd2V2ZXIsIGl0
IGlzbid0IGZlYXNpYmxlIHRvCi1hcnJhbmdlIHRoYXQga2luZCBvZiBlbnZpcm9ubWVudC4gRm9y
IGV4YW1wbGUsIHN0YXRpY2FsbHktaW5pdGlhbGl6ZWQgbW9kdWxlcwotbWF5IHN0YXJ0IHRocmVh
ZHMgYmVmb3JlIG1haW4gaXMgZXZlciByZWFjaGVkLiBPbmNlIHRocmVhZHMgaGF2ZSBiZWVuIGNy
ZWF0ZWQsCi1pdCBtYXkgYmUgZGlmZmljdWx0IG9yIGltcG9zc2libGUgdG8gY2xlYW4gdGhlbSB1
cC4KLQotZ29vZ2xldGVzdCBoYXMgdGhyZWUgZmVhdHVyZXMgaW50ZW5kZWQgdG8gcmFpc2UgYXdh
cmVuZXNzIG9mIHRocmVhZGluZyBpc3N1ZXMuCi0KLTEuICBBIHdhcm5pbmcgaXMgZW1pdHRlZCBp
ZiBtdWx0aXBsZSB0aHJlYWRzIGFyZSBydW5uaW5nIHdoZW4gYSBkZWF0aCB0ZXN0IGlzCi0gICAg
ZW5jb3VudGVyZWQuCi0yLiAgVGVzdCBjYXNlcyB3aXRoIGEgbmFtZSBlbmRpbmcgaW4gIkRlYXRo
VGVzdCIgYXJlIHJ1biBiZWZvcmUgYWxsIG90aGVyIHRlc3RzLgotMy4gIEl0IHVzZXMgYGNsb25l
KClgIGluc3RlYWQgb2YgYGZvcmsoKWAgdG8gc3Bhd24gdGhlIGNoaWxkIHByb2Nlc3Mgb24gTGlu
dXgKLSAgICAoYGNsb25lKClgIGlzIG5vdCBhdmFpbGFibGUgb24gQ3lnd2luIGFuZCBNYWMpLCBh
cyBgZm9yaygpYCBpcyBtb3JlIGxpa2VseQotICAgIHRvIGNhdXNlIHRoZSBjaGlsZCB0byBoYW5n
IHdoZW4gdGhlIHBhcmVudCBwcm9jZXNzIGhhcyBtdWx0aXBsZSB0aHJlYWRzLgotCi1JdCdzIHBl
cmZlY3RseSBmaW5lIHRvIGNyZWF0ZSB0aHJlYWRzIGluc2lkZSBhIGRlYXRoIHRlc3Qgc3RhdGVt
ZW50OyB0aGV5IGFyZQotZXhlY3V0ZWQgaW4gYSBzZXBhcmF0ZSBwcm9jZXNzIGFuZCBjYW5ub3Qg
YWZmZWN0IHRoZSBwYXJlbnQuCi0KLSMjIyBEZWF0aCBUZXN0IFN0eWxlcwotCi0KLVRoZSAidGhy
ZWFkc2FmZSIgZGVhdGggdGVzdCBzdHlsZSB3YXMgaW50cm9kdWNlZCBpbiBvcmRlciB0byBoZWxw
IG1pdGlnYXRlIHRoZQotcmlza3Mgb2YgdGVzdGluZyBpbiBhIHBvc3NpYmx5IG11bHRpdGhyZWFk
ZWQgZW52aXJvbm1lbnQuIEl0IHRyYWRlcyBpbmNyZWFzZWQKLXRlc3QgZXhlY3V0aW9uIHRpbWUg
KHBvdGVudGlhbGx5IGRyYW1hdGljYWxseSBzbykgZm9yIGltcHJvdmVkIHRocmVhZCBzYWZldHku
Ci0KLVRoZSBhdXRvbWF0ZWQgdGVzdGluZyBmcmFtZXdvcmsgZG9lcyBub3Qgc2V0IHRoZSBzdHls
ZSBmbGFnLiBZb3UgY2FuIGNob29zZSBhCi1wYXJ0aWN1bGFyIHN0eWxlIG9mIGRlYXRoIHRlc3Rz
IGJ5IHNldHRpbmcgdGhlIGZsYWcgcHJvZ3JhbW1hdGljYWxseToKLQotYGBgYysrCi10ZXN0aW5n
OjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlPSJ0aHJlYWRzYWZlIgotYGBgCi0KLVlvdSBj
YW4gZG8gdGhpcyBpbiBgbWFpbigpYCB0byBzZXQgdGhlIHN0eWxlIGZvciBhbGwgZGVhdGggdGVz
dHMgaW4gdGhlIGJpbmFyeSwKLW9yIGluIGluZGl2aWR1YWwgdGVzdHMuIFJlY2FsbCB0aGF0IGZs
YWdzIGFyZSBzYXZlZCBiZWZvcmUgcnVubmluZyBlYWNoIHRlc3QgYW5kCi1yZXN0b3JlZCBhZnRl
cndhcmRzLCBzbyB5b3UgbmVlZCBub3QgZG8gdGhhdCB5b3Vyc2VsZi4gRm9yIGV4YW1wbGU6Ci0K
LWBgYGMrKwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7Ci0gIEluaXRHb29nbGUo
YXJndlswXSwgJmFyZ2MsICZhcmd2LCB0cnVlKTsKLSAgOjp0ZXN0aW5nOjpGTEFHU19ndGVzdF9k
ZWF0aF90ZXN0X3N0eWxlID0gImZhc3QiOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQot
Ci1URVNUKE15RGVhdGhUZXN0LCBUZXN0T25lKSB7Ci0gIDo6dGVzdGluZzo6RkxBR1NfZ3Rlc3Rf
ZGVhdGhfdGVzdF9zdHlsZSA9ICJ0aHJlYWRzYWZlIjsKLSAgLy8gVGhpcyB0ZXN0IGlzIHJ1biBp
biB0aGUgInRocmVhZHNhZmUiIHN0eWxlOgotICBBU1NFUlRfREVBVEgoVGhpc1Nob3VsZERpZSgp
LCAiIik7Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIFRlc3RUd28pIHsKLSAgLy8gVGhpcyB0ZXN0
IGlzIHJ1biBpbiB0aGUgImZhc3QiIHN0eWxlOgotICBBU1NFUlRfREVBVEgoVGhpc1Nob3VsZERp
ZSgpLCAiIik7Ci19Ci1gYGAKLQotCi0jIyMgQ2F2ZWF0cwotCi1UaGUgYHN0YXRlbWVudGAgYXJn
dW1lbnQgb2YgYEFTU0VSVF9FWElUKClgIGNhbiBiZSBhbnkgdmFsaWQgQysrIHN0YXRlbWVudC4g
SWYKLWl0IGxlYXZlcyB0aGUgY3VycmVudCBmdW5jdGlvbiB2aWEgYSBgcmV0dXJuYCBzdGF0ZW1l
bnQgb3IgYnkgdGhyb3dpbmcgYW4KLWV4Y2VwdGlvbiwgdGhlIGRlYXRoIHRlc3QgaXMgY29uc2lk
ZXJlZCB0byBoYXZlIGZhaWxlZC4gU29tZSBnb29nbGV0ZXN0IG1hY3JvcwotbWF5IHJldHVybiBm
cm9tIHRoZSBjdXJyZW50IGZ1bmN0aW9uIChlLmcuIGBBU1NFUlRfVFJVRSgpYCksIHNvIGJlIHN1
cmUgdG8gYXZvaWQKLXRoZW0gaW4gYHN0YXRlbWVudGAuCi0KLVNpbmNlIGBzdGF0ZW1lbnRgIHJ1
bnMgaW4gdGhlIGNoaWxkIHByb2Nlc3MsIGFueSBpbi1tZW1vcnkgc2lkZSBlZmZlY3QgKGUuZy4K
LW1vZGlmeWluZyBhIHZhcmlhYmxlLCByZWxlYXNpbmcgbWVtb3J5LCBldGMpIGl0IGNhdXNlcyB3
aWxsICpub3QqIGJlIG9ic2VydmFibGUKLWluIHRoZSBwYXJlbnQgcHJvY2Vzcy4gSW4gcGFydGlj
dWxhciwgaWYgeW91IHJlbGVhc2UgbWVtb3J5IGluIGEgZGVhdGggdGVzdCwKLXlvdXIgcHJvZ3Jh
bSB3aWxsIGZhaWwgdGhlIGhlYXAgY2hlY2sgYXMgdGhlIHBhcmVudCBwcm9jZXNzIHdpbGwgbmV2
ZXIgc2VlIHRoZQotbWVtb3J5IHJlY2xhaW1lZC4gVG8gc29sdmUgdGhpcyBwcm9ibGVtLCB5b3Ug
Y2FuCi0KLTEuICB0cnkgbm90IHRvIGZyZWUgbWVtb3J5IGluIGEgZGVhdGggdGVzdDsKLTIuICBm
cmVlIHRoZSBtZW1vcnkgYWdhaW4gaW4gdGhlIHBhcmVudCBwcm9jZXNzOyBvcgotMy4gIGRvIG5v
dCB1c2UgdGhlIGhlYXAgY2hlY2tlciBpbiB5b3VyIHByb2dyYW0uCi0KLUR1ZSB0byBhbiBpbXBs
ZW1lbnRhdGlvbiBkZXRhaWwsIHlvdSBjYW5ub3QgcGxhY2UgbXVsdGlwbGUgZGVhdGggdGVzdCBh
c3NlcnRpb25zCi1vbiB0aGUgc2FtZSBsaW5lOyBvdGhlcndpc2UsIGNvbXBpbGF0aW9uIHdpbGwg
ZmFpbCB3aXRoIGFuIHVub2J2aW91cyBlcnJvcgotbWVzc2FnZS4KLQotRGVzcGl0ZSB0aGUgaW1w
cm92ZWQgdGhyZWFkIHNhZmV0eSBhZmZvcmRlZCBieSB0aGUgInRocmVhZHNhZmUiIHN0eWxlIG9m
IGRlYXRoCi10ZXN0LCB0aHJlYWQgcHJvYmxlbXMgc3VjaCBhcyBkZWFkbG9jayBhcmUgc3RpbGwg
cG9zc2libGUgaW4gdGhlIHByZXNlbmNlIG9mCi1oYW5kbGVycyByZWdpc3RlcmVkIHdpdGggYHB0
aHJlYWRfYXRmb3JrKDMpYC4KLQotCi0jIyBVc2luZyBBc3NlcnRpb25zIGluIFN1Yi1yb3V0aW5l
cwotCi0jIyMgQWRkaW5nIFRyYWNlcyB0byBBc3NlcnRpb25zCi0KLUlmIGEgdGVzdCBzdWItcm91
dGluZSBpcyBjYWxsZWQgZnJvbSBzZXZlcmFsIHBsYWNlcywgd2hlbiBhbiBhc3NlcnRpb24gaW5z
aWRlIGl0Ci1mYWlscywgaXQgY2FuIGJlIGhhcmQgdG8gdGVsbCB3aGljaCBpbnZvY2F0aW9uIG9m
IHRoZSBzdWItcm91dGluZSB0aGUgZmFpbHVyZSBpcwotZnJvbS4gCi1Zb3UgY2FuIGFsbGV2aWF0
ZSB0aGlzIHByb2JsZW0gdXNpbmcgZXh0cmEgbG9nZ2luZyBvciBjdXN0b20gZmFpbHVyZSBtZXNz
YWdlcywKLWJ1dCB0aGF0IHVzdWFsbHkgY2x1dHRlcnMgdXAgeW91ciB0ZXN0cy4gQSBiZXR0ZXIg
c29sdXRpb24gaXMgdG8gdXNlIHRoZQotYFNDT1BFRF9UUkFDRWAgbWFjcm8gb3IgdGhlIGBTY29w
ZWRUcmFjZWAgdXRpbGl0eToKLQotYGBgYysrCi1TQ09QRURfVFJBQ0UobWVzc2FnZSk7Ci1TY29w
ZWRUcmFjZSB0cmFjZSgiZmlsZV9wYXRoIiwgbGluZV9udW1iZXIsIG1lc3NhZ2UpOwotYGBgCi0K
LXdoZXJlIGBtZXNzYWdlYCBjYW4gYmUgYW55dGhpbmcgc3RyZWFtYWJsZSB0byBgc3RkOjpvc3Ry
ZWFtYC4gYFNDT1BFRF9UUkFDRWAKLW1hY3JvIHdpbGwgY2F1c2UgdGhlIGN1cnJlbnQgZmlsZSBu
YW1lLCBsaW5lIG51bWJlciwgYW5kIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJlCi1hZGRlZCBpbiBl
dmVyeSBmYWlsdXJlIG1lc3NhZ2UuIGBTY29wZWRUcmFjZWAgYWNjZXB0cyBleHBsaWNpdCBmaWxl
IG5hbWUgYW5kCi1saW5lIG51bWJlciBpbiBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3Ig
d3JpdGluZyB0ZXN0IGhlbHBlcnMuIFRoZSBlZmZlY3QKLXdpbGwgYmUgdW5kb25lIHdoZW4gdGhl
IGNvbnRyb2wgbGVhdmVzIHRoZSBjdXJyZW50IGxleGljYWwgc2NvcGUuCi0KLUZvciBleGFtcGxl
LAotCi1gYGBjKysKLTEwOiB2b2lkIFN1YjEoaW50IG4pIHsKLTExOiAgIEVYUEVDVF9FUSgxLCBC
YXIobikpOwotMTI6ICAgRVhQRUNUX0VRKDIsIEJhcihuICsgMSkpOwotMTM6IH0KLTE0OgotMTU6
IFRFU1QoRm9vVGVzdCwgQmFyKSB7Ci0xNjogICB7Ci0xNzogICAgIFNDT1BFRF9UUkFDRSgiQSIp
OyAgLy8gVGhpcyB0cmFjZSBwb2ludCB3aWxsIGJlIGluY2x1ZGVkIGluCi0xODogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZXZlcnkgZmFpbHVyZSBpbiB0aGlzIHNjb3BlLgotMTk6ICAgICBT
dWIxKDEpOwotMjA6ICAgfQotMjE6ICAgLy8gTm93IGl0IHdvbid0LgotMjI6ICAgU3ViMSg5KTsK
LTIzOiB9Ci1gYGAKLQotY291bGQgcmVzdWx0IGluIG1lc3NhZ2VzIGxpa2UgdGhlc2U6Ci0KLWBg
YG5vbmUKLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTE6IEZhaWx1cmUKLVZhbHVlIG9mOiBCYXIobikK
LUV4cGVjdGVkOiAxCi0gIEFjdHVhbDogMgotICAgVHJhY2U6Ci1wYXRoL3RvL2Zvb190ZXN0LmNj
OjE3OiBBCi0KLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTI6IEZhaWx1cmUKLVZhbHVlIG9mOiBCYXIo
biArIDEpCi1FeHBlY3RlZDogMgotICBBY3R1YWw6IDMKLWBgYAotCi1XaXRob3V0IHRoZSB0cmFj
ZSwgaXQgd291bGQndmUgYmVlbiBkaWZmaWN1bHQgdG8ga25vdyB3aGljaCBpbnZvY2F0aW9uIG9m
Ci1gU3ViMSgpYCB0aGUgdHdvIGZhaWx1cmVzIGNvbWUgZnJvbSByZXNwZWN0aXZlbHkuIChZb3Ug
Y291bGQgYWRkCi0KLWFuIGV4dHJhIG1lc3NhZ2UgdG8gZWFjaCBhc3NlcnRpb24gaW4gYFN1YjEo
KWAgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIGBuYCwgYnV0Ci10aGF0J3MgdGVkaW91cy4pCi0K
LVNvbWUgdGlwcyBvbiB1c2luZyBgU0NPUEVEX1RSQUNFYDoKLQotMS4gIFdpdGggYSBzdWl0YWJs
ZSBtZXNzYWdlLCBpdCdzIG9mdGVuIGVub3VnaCB0byB1c2UgYFNDT1BFRF9UUkFDRWAgYXQgdGhl
Ci0gICAgYmVnaW5uaW5nIG9mIGEgc3ViLXJvdXRpbmUsIGluc3RlYWQgb2YgYXQgZWFjaCBjYWxs
IHNpdGUuCi0yLiAgV2hlbiBjYWxsaW5nIHN1Yi1yb3V0aW5lcyBpbnNpZGUgYSBsb29wLCBtYWtl
IHRoZSBsb29wIGl0ZXJhdG9yIHBhcnQgb2YgdGhlCi0gICAgbWVzc2FnZSBpbiBgU0NPUEVEX1RS
QUNFYCBzdWNoIHRoYXQgeW91IGNhbiBrbm93IHdoaWNoIGl0ZXJhdGlvbiB0aGUgZmFpbHVyZQot
ICAgIGlzIGZyb20uCi0zLiAgU29tZXRpbWVzIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgdHJhY2Ug
cG9pbnQgaXMgZW5vdWdoIGZvciBpZGVudGlmeWluZyB0aGUKLSAgICBwYXJ0aWN1bGFyIGludm9j
YXRpb24gb2YgYSBzdWItcm91dGluZS4gSW4gdGhpcyBjYXNlLCB5b3UgZG9uJ3QgaGF2ZSB0bwot
ICAgIGNob29zZSBhIHVuaXF1ZSBtZXNzYWdlIGZvciBgU0NPUEVEX1RSQUNFYC4gWW91IGNhbiBz
aW1wbHkgdXNlIGAiImAuCi00LiAgWW91IGNhbiB1c2UgYFNDT1BFRF9UUkFDRWAgaW4gYW4gaW5u
ZXIgc2NvcGUgd2hlbiB0aGVyZSBpcyBvbmUgaW4gdGhlIG91dGVyCi0gICAgc2NvcGUuIEluIHRo
aXMgY2FzZSwgYWxsIGFjdGl2ZSB0cmFjZSBwb2ludHMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUg
ZmFpbHVyZQotICAgIG1lc3NhZ2VzLCBpbiByZXZlcnNlIG9yZGVyIHRoZXkgYXJlIGVuY291bnRl
cmVkLgotNS4gIFRoZSB0cmFjZSBkdW1wIGlzIGNsaWNrYWJsZSBpbiBFbWFjcyAtIGhpdCBgcmV0
dXJuYCBvbiBhIGxpbmUgbnVtYmVyIGFuZAotICAgIHlvdSdsbCBiZSB0YWtlbiB0byB0aGF0IGxp
bmUgaW4gdGhlIHNvdXJjZSBmaWxlIQotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93
cywgTWFjLgotCi0jIyMgUHJvcGFnYXRpbmcgRmF0YWwgRmFpbHVyZXMKLQotQSBjb21tb24gcGl0
ZmFsbCB3aGVuIHVzaW5nIGBBU1NFUlRfKmAgYW5kIGBGQUlMKmAgaXMgbm90IHVuZGVyc3RhbmRp
bmcgdGhhdAotd2hlbiB0aGV5IGZhaWwgdGhleSBvbmx5IGFib3J0IHRoZSBfY3VycmVudCBmdW5j
dGlvbl8sIG5vdCB0aGUgZW50aXJlIHRlc3QuIEZvcgotZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0
ZXN0IHdpbGwgc2VnZmF1bHQ6Ci0KLWBgYGMrKwotdm9pZCBTdWJyb3V0aW5lKCkgewotICAvLyBH
ZW5lcmF0ZXMgYSBmYXRhbCBmYWlsdXJlIGFuZCBhYm9ydHMgdGhlIGN1cnJlbnQgZnVuY3Rpb24u
Ci0gIEFTU0VSVF9FUSgxLCAyKTsKLQotICAvLyBUaGUgZm9sbG93aW5nIHdvbid0IGJlIGV4ZWN1
dGVkLgotICAuLi4KLX0KLQotVEVTVChGb29UZXN0LCBCYXIpIHsKLSAgU3Vicm91dGluZSgpOyAg
Ly8gVGhlIGludGVuZGVkIGJlaGF2aW9yIGlzIGZvciB0aGUgZmF0YWwgZmFpbHVyZQotICAgICAg
ICAgICAgICAgICAvLyBpbiBTdWJyb3V0aW5lKCkgdG8gYWJvcnQgdGhlIGVudGlyZSB0ZXN0Lgot
Ci0gIC8vIFRoZSBhY3R1YWwgYmVoYXZpb3I6IHRoZSBmdW5jdGlvbiBnb2VzIG9uIGFmdGVyIFN1
YnJvdXRpbmUoKSByZXR1cm5zLgotICBpbnQqIHAgPSBOVUxMOwotICAqcCA9IDM7ICAvLyBTZWdm
YXVsdCEKLX0KLWBgYAotCi1UbyBhbGxldmlhdGUgdGhpcywgZ29vZ2xldGVzdCBwcm92aWRlcyB0
aHJlZSBkaWZmZXJlbnQgc29sdXRpb25zLiBZb3UgY291bGQgdXNlCi1laXRoZXIgZXhjZXB0aW9u
cywgdGhlIGAoQVNTRVJUfEVYUEVDVClfTk9fRkFUQUxfRkFJTFVSRWAgYXNzZXJ0aW9ucyBvciB0
aGUKLWBIYXNGYXRhbEZhaWx1cmUoKWAgZnVuY3Rpb24uIFRoZXkgYXJlIGRlc2NyaWJlZCBpbiB0
aGUgZm9sbG93aW5nIHR3bwotc3Vic2VjdGlvbnMuCi0KLSMjIyMgQXNzZXJ0aW5nIG9uIFN1YnJv
dXRpbmVzIHdpdGggYW4gZXhjZXB0aW9uCi0KLVRoZSBmb2xsb3dpbmcgY29kZSBjYW4gdHVybiBB
U1NFUlQtZmFpbHVyZSBpbnRvIGFuIGV4Y2VwdGlvbjoKLQotYGBgYysrCi1jbGFzcyBUaHJvd0xp
c3RlbmVyIDogcHVibGljIHRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgdGVzdGluZzo6VGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkg
b3ZlcnJpZGUgewotICAgIGlmIChyZXN1bHQudHlwZSgpID09IHRlc3Rpbmc6OlRlc3RQYXJ0UmVz
dWx0OjprRmF0YWxGYWlsdXJlKSB7Ci0gICAgICB0aHJvdyB0ZXN0aW5nOjpBc3NlcnRpb25FeGNl
cHRpb24ocmVzdWx0KTsKLSAgICB9Ci0gIH0KLX07Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpIHsKLSAgLi4uCi0gIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0
ZW5lcnMoKS5BcHBlbmQobmV3IFRocm93TGlzdGVuZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNU
UygpOwotfQotYGBgCi0KLVRoaXMgbGlzdGVuZXIgc2hvdWxkIGJlIGFkZGVkIGFmdGVyIG90aGVy
IGxpc3RlbmVycyBpZiB5b3UgaGF2ZSBhbnksIG90aGVyd2lzZQotdGhleSB3b24ndCBzZWUgZmFp
bGVkIGBPblRlc3RQYXJ0UmVzdWx0YC4KLQotIyMjIyBBc3NlcnRpbmcgb24gU3Vicm91dGluZXMK
LQotQXMgc2hvd24gYWJvdmUsIGlmIHlvdXIgdGVzdCBjYWxscyBhIHN1YnJvdXRpbmUgdGhhdCBo
YXMgYW4gYEFTU0VSVF8qYCBmYWlsdXJlCi1pbiBpdCwgdGhlIHRlc3Qgd2lsbCBjb250aW51ZSBh
ZnRlciB0aGUgc3Vicm91dGluZSByZXR1cm5zLiBUaGlzIG1heSBub3QgYmUgd2hhdAoteW91IHdh
bnQuCi0KLU9mdGVuIHBlb3BsZSB3YW50IGZhdGFsIGZhaWx1cmVzIHRvIHByb3BhZ2F0ZSBsaWtl
IGV4Y2VwdGlvbnMuIEZvciB0aGF0Ci1nb29nbGV0ZXN0IG9mZmVycyB0aGUgZm9sbG93aW5nIG1h
Y3JvczoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFs
IGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfCAtLS0tLS0tLQotYEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKHN0YXRlbWVudCk7YCB8
IGBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShzdGF0ZW1lbnQpO2AgfCBgc3RhdGVtZW50YCBkb2Vz
bid0IGdlbmVyYXRlIGFueSBuZXcgZmF0YWwgZmFpbHVyZXMgaW4gdGhlIGN1cnJlbnQgdGhyZWFk
LgotCi1Pbmx5IGZhaWx1cmVzIGluIHRoZSB0aHJlYWQgdGhhdCBleGVjdXRlcyB0aGUgYXNzZXJ0
aW9uIGFyZSBjaGVja2VkIHRvIGRldGVybWluZQotdGhlIHJlc3VsdCBvZiB0aGlzIHR5cGUgb2Yg
YXNzZXJ0aW9ucy4gSWYgYHN0YXRlbWVudGAgY3JlYXRlcyBuZXcgdGhyZWFkcywKLWZhaWx1cmVz
IGluIHRoZXNlIHRocmVhZHMgYXJlIGlnbm9yZWQuCi0KLUV4YW1wbGVzOgotCi1gYGBjKysKLUFT
U0VSVF9OT19GQVRBTF9GQUlMVVJFKEZvbygpKTsKLQotaW50IGk7Ci1FWFBFQ1RfTk9fRkFUQUxf
RkFJTFVSRSh7Ci0gIGkgPSBCYXIoKTsKLX0pOwotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExp
bnV4LCBXaW5kb3dzLCBNYWMuIEFzc2VydGlvbnMgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGFyZQot
Y3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cy4KLQotIyMjIyBDaGVja2luZyBmb3Ig
RmFpbHVyZXMgaW4gdGhlIEN1cnJlbnQgVGVzdAotCi1gSGFzRmF0YWxGYWlsdXJlKClgIGluIHRo
ZSBgOjp0ZXN0aW5nOjpUZXN0YCBjbGFzcyByZXR1cm5zIGB0cnVlYCBpZiBhbgotYXNzZXJ0aW9u
IGluIHRoZSBjdXJyZW50IHRlc3QgaGFzIHN1ZmZlcmVkIGEgZmF0YWwgZmFpbHVyZS4gVGhpcyBh
bGxvd3MKLWZ1bmN0aW9ucyB0byBjYXRjaCBmYXRhbCBmYWlsdXJlcyBpbiBhIHN1Yi1yb3V0aW5l
IGFuZCByZXR1cm4gZWFybHkuCi0KLWBgYGMrKwotY2xhc3MgVGVzdCB7Ci0gcHVibGljOgotICAu
Li4KLSAgc3RhdGljIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCk7Ci19OwotYGBgCi0KLVRoZSB0eXBp
Y2FsIHVzYWdlLCB3aGljaCBiYXNpY2FsbHkgc2ltdWxhdGVzIHRoZSBiZWhhdmlvciBvZiBhIHRo
cm93biBleGNlcHRpb24sCi1pczoKLQotYGBgYysrCi1URVNUKEZvb1Rlc3QsIEJhcikgewotICBT
dWJyb3V0aW5lKCk7Ci0gIC8vIEFib3J0cyBpZiBTdWJyb3V0aW5lKCkgaGFkIGEgZmF0YWwgZmFp
bHVyZS4KLSAgaWYgKEhhc0ZhdGFsRmFpbHVyZSgpKSByZXR1cm47Ci0KLSAgLy8gVGhlIGZvbGxv
d2luZyB3b24ndCBiZSBleGVjdXRlZC4KLSAgLi4uCi19Ci1gYGAKLQotSWYgYEhhc0ZhdGFsRmFp
bHVyZSgpYCBpcyB1c2VkIG91dHNpZGUgb2YgYFRFU1QoKWAgLCBgVEVTVF9GKClgICwgb3IgYSB0
ZXN0Ci1maXh0dXJlLCB5b3UgbXVzdCBhZGQgdGhlIGA6OnRlc3Rpbmc6OlRlc3Q6OmAgcHJlZml4
LCBhcyBpbjoKLQotYGBgYysrCi1pZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUo
KSkgcmV0dXJuOwotYGBgCi0KLVNpbWlsYXJseSwgYEhhc05vbmZhdGFsRmFpbHVyZSgpYCByZXR1
cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhdAotbGVhc3Qgb25lIG5vbi1mYXRh
bCBmYWlsdXJlLCBhbmQgYEhhc0ZhaWx1cmUoKWAgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJl
bnQKLXRlc3QgaGFzIGF0IGxlYXN0IG9uZSBmYWlsdXJlIG9mIGVpdGhlciBraW5kLgotCi0qKkF2
YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyBMb2dnaW5nIEFkZGl0aW9u
YWwgSW5mb3JtYXRpb24KLQotSW4geW91ciB0ZXN0IGNvZGUsIHlvdSBjYW4gY2FsbCBgUmVjb3Jk
UHJvcGVydHkoImtleSIsIHZhbHVlKWAgdG8gbG9nIGFkZGl0aW9uYWwKLWluZm9ybWF0aW9uLCB3
aGVyZSBgdmFsdWVgIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYGludGAuIFRoZSAqbGFz
dCogdmFsdWUKLXJlY29yZGVkIGZvciBhIGtleSB3aWxsIGJlIGVtaXR0ZWQgdG8gdGhlIFtYTUwg
b3V0cHV0XSgjZ2VuZXJhdGluZy1hbi14bWwtcmVwb3J0KSBpZiB5b3UKLXNwZWNpZnkgb25lLiBG
b3IgZXhhbXBsZSwgdGhlIHRlc3QKLQotYGBgYysrCi1URVNUX0YoV2lkZ2V0VXNhZ2VUZXN0LCBN
aW5BbmRNYXhXaWRnZXRzKSB7Ci0gIFJlY29yZFByb3BlcnR5KCJNYXhpbXVtV2lkZ2V0cyIsIENv
bXB1dGVNYXhVc2FnZSgpKTsKLSAgUmVjb3JkUHJvcGVydHkoIk1pbmltdW1XaWRnZXRzIiwgQ29t
cHV0ZU1pblVzYWdlKCkpOwotfQotYGBgCi0KLXdpbGwgb3V0cHV0IFhNTCBsaWtlIHRoaXM6Ci0K
LWBgYHhtbAotICAuLi4KLSAgICA8dGVzdGNhc2UgbmFtZT0iTWluQW5kTWF4V2lkZ2V0cyIgc3Rh
dHVzPSJydW4iIHRpbWU9IjAuMDA2IiBjbGFzc25hbWU9IldpZGdldFVzYWdlVGVzdCIgTWF4aW11
bVdpZGdldHM9IjEyIiBNaW5pbXVtV2lkZ2V0cz0iOSIgLz4KLSAgLi4uCi1gYGAKLQotPiBOT1RF
OgotPgotPiAqICAgYFJlY29yZFByb3BlcnR5KClgIGlzIGEgc3RhdGljIG1lbWJlciBvZiB0aGUg
YFRlc3RgIGNsYXNzLiBUaGVyZWZvcmUgaXQKLT4gICAgIG5lZWRzIHRvIGJlIHByZWZpeGVkIHdp
dGggYDo6dGVzdGluZzo6VGVzdDo6YCBpZiB1c2VkIG91dHNpZGUgb2YgdGhlCi0+ICAgICBgVEVT
VGAgYm9keSBhbmQgdGhlIHRlc3QgZml4dHVyZSBjbGFzcy4KLT4gKiAgIGAqa2V5KmAgbXVzdCBi
ZSBhIHZhbGlkIFhNTCBhdHRyaWJ1dGUgbmFtZSwgYW5kIGNhbm5vdCBjb25mbGljdCB3aXRoIHRo
ZQotPiAgICAgb25lcyBhbHJlYWR5IHVzZWQgYnkgZ29vZ2xldGVzdCAoYG5hbWVgLCBgc3RhdHVz
YCwgYHRpbWVgLCBgY2xhc3NuYW1lYCwKLT4gICAgIGB0eXBlX3BhcmFtYCwgYW5kIGB2YWx1ZV9w
YXJhbWApLgotPiAqICAgQ2FsbGluZyBgUmVjb3JkUHJvcGVydHkoKWAgb3V0c2lkZSBvZiB0aGUg
bGlmZXNwYW4gb2YgYSB0ZXN0IGlzIGFsbG93ZWQuCi0+ICAgICBJZiBpdCdzIGNhbGxlZCBvdXRz
aWRlIG9mIGEgdGVzdCBidXQgYmV0d2VlbiBhIHRlc3QgY2FzZSdzCi0+ICAgICBgU2V0VXBUZXN0
Q2FzZSgpYCBhbmQgYFRlYXJEb3duVGVzdENhc2UoKWAgbWV0aG9kcywgaXQgd2lsbCBiZSBhdHRy
aWJ1dGVkCi0+ICAgICB0byB0aGUgWE1MIGVsZW1lbnQgZm9yIHRoZSB0ZXN0IGNhc2UuIElmIGl0
J3MgY2FsbGVkIG91dHNpZGUgb2YgYWxsIHRlc3QKLT4gICAgIGNhc2VzIChlLmcuIGluIGEgdGVz
dCBlbnZpcm9ubWVudCksIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0byB0aGUgdG9wLWxldmVsCi0+
ICAgICBYTUwgZWxlbWVudC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMgU2hhcmluZyBSZXNvdXJjZXMgQmV0d2VlbiBUZXN0cyBpbiB0aGUgU2FtZSBUZXN0
IENhc2UKLQotZ29vZ2xldGVzdCBjcmVhdGVzIGEgbmV3IHRlc3QgZml4dHVyZSBvYmplY3QgZm9y
IGVhY2ggdGVzdCBpbiBvcmRlciB0byBtYWtlCi10ZXN0cyBpbmRlcGVuZGVudCBhbmQgZWFzaWVy
IHRvIGRlYnVnLiBIb3dldmVyLCBzb21ldGltZXMgdGVzdHMgdXNlIHJlc291cmNlcwotdGhhdCBh
cmUgZXhwZW5zaXZlIHRvIHNldCB1cCwgbWFraW5nIHRoZSBvbmUtY29weS1wZXItdGVzdCBtb2Rl
bCBwcm9oaWJpdGl2ZWx5Ci1leHBlbnNpdmUuCi0KLUlmIHRoZSB0ZXN0cyBkb24ndCBjaGFuZ2Ug
dGhlIHJlc291cmNlLCB0aGVyZSdzIG5vIGhhcm0gaW4gdGhlaXIgc2hhcmluZyBhCi1zaW5nbGUg
cmVzb3VyY2UgY29weS4gU28sIGluIGFkZGl0aW9uIHRvIHBlci10ZXN0IHNldC11cC90ZWFyLWRv
d24sIGdvb2dsZXRlc3QKLWFsc28gc3VwcG9ydHMgcGVyLXRlc3QtY2FzZSBzZXQtdXAvdGVhci1k
b3duLiBUbyB1c2UgaXQ6Ci0KLTEuICBJbiB5b3VyIHRlc3QgZml4dHVyZSBjbGFzcyAoc2F5IGBG
b29UZXN0YCApLCBkZWNsYXJlIGFzIGBzdGF0aWNgIHNvbWUgbWVtYmVyCi0gICAgdmFyaWFibGVz
IHRvIGhvbGQgdGhlIHNoYXJlZCByZXNvdXJjZXMuCi0xLiAgT3V0c2lkZSB5b3VyIHRlc3QgZml4
dHVyZSBjbGFzcyAodHlwaWNhbGx5IGp1c3QgYmVsb3cgaXQpLCBkZWZpbmUgdGhvc2UKLSAgICBt
ZW1iZXIgdmFyaWFibGVzLCBvcHRpb25hbGx5IGdpdmluZyB0aGVtIGluaXRpYWwgdmFsdWVzLgot
MS4gIEluIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBjbGFzcywgZGVmaW5lIGEgYHN0YXRpYyB2b2lk
IFNldFVwVGVzdENhc2UoKWAKLSAgICBmdW5jdGlvbiAocmVtZW1iZXIgbm90IHRvIHNwZWxsIGl0
IGFzICoqYFNldHVwVGVzdENhc2VgKiogd2l0aCBhIHNtYWxsIGB1YCEpCi0gICAgdG8gc2V0IHVw
IHRoZSBzaGFyZWQgcmVzb3VyY2VzIGFuZCBhIGBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNl
KClgCi0gICAgZnVuY3Rpb24gdG8gdGVhciB0aGVtIGRvd24uCi0KLVRoYXQncyBpdCEgZ29vZ2xl
dGVzdCBhdXRvbWF0aWNhbGx5IGNhbGxzIGBTZXRVcFRlc3RDYXNlKClgIGJlZm9yZSBydW5uaW5n
IHRoZQotKmZpcnN0IHRlc3QqIGluIHRoZSBgRm9vVGVzdGAgdGVzdCBjYXNlIChpLmUuIGJlZm9y
ZSBjcmVhdGluZyB0aGUgZmlyc3QKLWBGb29UZXN0YCBvYmplY3QpLCBhbmQgY2FsbHMgYFRlYXJE
b3duVGVzdENhc2UoKWAgYWZ0ZXIgcnVubmluZyB0aGUgKmxhc3QgdGVzdCoKLWluIGl0IChpLmUu
IGFmdGVyIGRlbGV0aW5nIHRoZSBsYXN0IGBGb29UZXN0YCBvYmplY3QpLiBJbiBiZXR3ZWVuLCB0
aGUgdGVzdHMgY2FuCi11c2UgdGhlIHNoYXJlZCByZXNvdXJjZXMuCi0KLVJlbWVtYmVyIHRoYXQg
dGhlIHRlc3Qgb3JkZXIgaXMgdW5kZWZpbmVkLCBzbyB5b3VyIGNvZGUgY2FuJ3QgZGVwZW5kIG9u
IGEgdGVzdAotcHJlY2VkaW5nIG9yIGZvbGxvd2luZyBhbm90aGVyLiBBbHNvLCB0aGUgdGVzdHMg
bXVzdCBlaXRoZXIgbm90IG1vZGlmeSB0aGUgc3RhdGUKLW9mIGFueSBzaGFyZWQgcmVzb3VyY2Us
IG9yLCBpZiB0aGV5IGRvIG1vZGlmeSB0aGUgc3RhdGUsIHRoZXkgbXVzdCByZXN0b3JlIHRoZQot
c3RhdGUgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGNvbnRyb2wgdG8gdGhl
IG5leHQgdGVzdC4KLQotSGVyZSdzIGFuIGV4YW1wbGUgb2YgcGVyLXRlc3QtY2FzZSBzZXQtdXAg
YW5kIHRlYXItZG93bjoKLQotYGBgYysrCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGlu
Zzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAvLyBQZXItdGVzdC1jYXNlIHNldC11cC4KLSAgLy8g
Q2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgLy8gQ2Fu
IGJlIG9taXR0ZWQgaWYgbm90IG5lZWRlZC4KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgp
IHsKLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gbmV3IC4uLjsKLSAgfQotCi0gIC8vIFBlci10ZXN0
LWNhc2UgdGVhci1kb3duLgotICAvLyBDYWxsZWQgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbiB0aGlz
IHRlc3QgY2FzZS4KLSAgLy8gQ2FuIGJlIG9taXR0ZWQgaWYgbm90IG5lZWRlZC4KLSAgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKLSAgICBkZWxldGUgc2hhcmVkX3Jlc291cmNlXzsK
LSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKLSAgfQotCi0gIC8vIFlvdSBjYW4gZGVmaW5l
IHBlci10ZXN0IHNldC11cCBsb2dpYyBhcyB1c3VhbC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eyAuLi4gfQotCi0gIC8vIFlvdSBjYW4gZGVmaW5lIHBlci10ZXN0IHRlYXItZG93biBsb2dpYyBh
cyB1c3VhbC4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeyAuLi4gfQotCi0gIC8vIFNvbWUg
ZXhwZW5zaXZlIHJlc291cmNlIHNoYXJlZCBieSBhbGwgdGVzdHMuCi0gIHN0YXRpYyBUKiBzaGFy
ZWRfcmVzb3VyY2VfOwotfTsKLQotVCogRm9vVGVzdDo6c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7
Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MSkgewotICAuLi4geW91IGNhbiByZWZlciB0byBzaGFy
ZWRfcmVzb3VyY2VfIGhlcmUgLi4uCi19Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MikgewotICAu
Li4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3VyY2VfIGhlcmUgLi4uCi19Ci1gYGAKLQot
Tk9URTogVGhvdWdoIHRoZSBhYm92ZSBjb2RlIGRlY2xhcmVzIGBTZXRVcFRlc3RDYXNlKClgIHBy
b3RlY3RlZCwgaXQgbWF5Ci1zb21ldGltZXMgYmUgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgaXQgcHVi
bGljLCBzdWNoIGFzIHdoZW4gdXNpbmcgaXQgd2l0aAotYFRFU1RfUGAuCi0KLSoqQXZhaWxhYmls
aXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIEdsb2JhbCBTZXQtVXAgYW5kIFRlYXIt
RG93bgotCi1KdXN0IGFzIHlvdSBjYW4gZG8gc2V0LXVwIGFuZCB0ZWFyLWRvd24gYXQgdGhlIHRl
c3QgbGV2ZWwgYW5kIHRoZSB0ZXN0IGNhc2UKLWxldmVsLCB5b3UgY2FuIGFsc28gZG8gaXQgYXQg
dGhlIHRlc3QgcHJvZ3JhbSBsZXZlbC4gSGVyZSdzIGhvdy4KLQotRmlyc3QsIHlvdSBzdWJjbGFz
cyB0aGUgYDo6dGVzdGluZzo6RW52aXJvbm1lbnRgIGNsYXNzIHRvIGRlZmluZSBhIHRlc3QKLWVu
dmlyb25tZW50LCB3aGljaCBrbm93cyBob3cgdG8gc2V0LXVwIGFuZCB0ZWFyLWRvd246Ci0KLWBg
YGMrKwotY2xhc3MgRW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgdmlydHVhbCB+RW52aXJvbm1l
bnQoKSB7fQotCi0gIC8vIE92ZXJyaWRlIHRoaXMgdG8gZGVmaW5lIGhvdyB0byBzZXQgdXAgdGhl
IGVudmlyb25tZW50LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQotCi0gIC8vIE92ZXJyaWRl
IHRoaXMgdG8gZGVmaW5lIGhvdyB0byB0ZWFyIGRvd24gdGhlIGVudmlyb25tZW50LgotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7fQotfTsKLWBgYAotCi1UaGVuLCB5b3UgcmVnaXN0ZXIgYW4g
aW5zdGFuY2Ugb2YgeW91ciBlbnZpcm9ubWVudCBjbGFzcyB3aXRoIGdvb2dsZXRlc3QgYnkKLWNh
bGxpbmcgdGhlIGA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpYCBmdW5jdGlv
bjoKLQotYGBgYysrCi1FbnZpcm9ubWVudCogQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KEVudmly
b25tZW50KiBlbnYpOwotYGBgCi0KLU5vdywgd2hlbiBgUlVOX0FMTF9URVNUUygpYCBpcyBjYWxs
ZWQsIGl0IGZpcnN0IGNhbGxzIHRoZSBgU2V0VXAoKWAgbWV0aG9kIG9mCi10aGUgZW52aXJvbm1l
bnQgb2JqZWN0LCB0aGVuIHJ1bnMgdGhlIHRlc3RzIGlmIHRoZXJlIHdhcyBubyBmYXRhbCBmYWls
dXJlcywgYW5kCi1maW5hbGx5IGNhbGxzIGBUZWFyRG93bigpYCBvZiB0aGUgZW52aXJvbm1lbnQg
b2JqZWN0LgotCi1JdCdzIE9LIHRvIHJlZ2lzdGVyIG11bHRpcGxlIGVudmlyb25tZW50IG9iamVj
dHMuIEluIHRoaXMgY2FzZSwgdGhlaXIgYFNldFVwKClgCi13aWxsIGJlIGNhbGxlZCBpbiB0aGUg
b3JkZXIgdGhleSBhcmUgcmVnaXN0ZXJlZCwgYW5kIHRoZWlyIGBUZWFyRG93bigpYCB3aWxsIGJl
Ci1jYWxsZWQgaW4gdGhlIHJldmVyc2Ugb3JkZXIuCi0KLU5vdGUgdGhhdCBnb29nbGV0ZXN0IHRh
a2VzIG93bmVyc2hpcCBvZiB0aGUgcmVnaXN0ZXJlZCBlbnZpcm9ubWVudCBvYmplY3RzLgotVGhl
cmVmb3JlICoqZG8gbm90IGRlbGV0ZSB0aGVtKiogYnkgeW91cnNlbGYuCi0KLVlvdSBzaG91bGQg
Y2FsbCBgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KClgIGJlZm9yZSBgUlVOX0FMTF9URVNUUygp
YCBpcyBjYWxsZWQsCi1wcm9iYWJseSBpbiBgbWFpbigpYC4gSWYgeW91IHVzZSBgZ3Rlc3RfbWFp
bmAsIHlvdSBuZWVkIHRvIGNhbGwgdGhpcyBiZWZvcmUKLWBtYWluKClgIHN0YXJ0cyBmb3IgaXQg
dG8gdGFrZSBlZmZlY3QuIE9uZSB3YXkgdG8gZG8gdGhpcyBpcyB0byBkZWZpbmUgYSBnbG9iYWwK
LXZhcmlhYmxlIGxpa2UgdGhpczoKLQotYGBgYysrCi06OnRlc3Rpbmc6OkVudmlyb25tZW50KiBj
b25zdCBmb29fZW52ID0KLSAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChu
ZXcgRm9vRW52aXJvbm1lbnQpOwotYGBgCi0KLUhvd2V2ZXIsIHdlIHN0cm9uZ2x5IHJlY29tbWVu
ZCB5b3UgdG8gd3JpdGUgeW91ciBvd24gYG1haW4oKWAgYW5kIGNhbGwKLWBBZGRHbG9iYWxUZXN0
RW52aXJvbm1lbnQoKWAgdGhlcmUsIGFzIHJlbHlpbmcgb24gaW5pdGlhbGl6YXRpb24gb2YgZ2xv
YmFsCi12YXJpYWJsZXMgbWFrZXMgdGhlIGNvZGUgaGFyZGVyIHRvIHJlYWQgYW5kIG1heSBjYXVz
ZSBwcm9ibGVtcyB3aGVuIHlvdSByZWdpc3RlcgotbXVsdGlwbGUgZW52aXJvbm1lbnRzIGZyb20g
ZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGFuZCB0aGUgZW52aXJvbm1lbnRzIGhhdmUKLWRl
cGVuZGVuY2llcyBhbW9uZyB0aGVtIChyZW1lbWJlciB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0
IGd1YXJhbnRlZSB0aGUgb3JkZXIKLWluIHdoaWNoIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBkaWZm
ZXJlbnQgdHJhbnNsYXRpb24gdW5pdHMgYXJlIGluaXRpYWxpemVkKS4KLQotIyMgVmFsdWUtUGFy
YW1ldGVyaXplZCBUZXN0cwotCi0qVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyogYWxsb3cgeW91
IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50Ci1wYXJhbWV0ZXJzIHdpdGhvdXQgd3Jp
dGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4gVGhpcyBpcyB1c2VmdWwgaW4g
YQotbnVtYmVyIG9mIHNpdHVhdGlvbnMsIGZvciBleGFtcGxlOgotCi0qICAgWW91IGhhdmUgYSBw
aWVjZSBvZiBjb2RlIHdob3NlIGJlaGF2aW9yIGlzIGFmZmVjdGVkIGJ5IG9uZSBvciBtb3JlCi0g
ICAgY29tbWFuZC1saW5lIGZsYWdzLiBZb3Ugd2FudCB0byBtYWtlIHN1cmUgeW91ciBjb2RlIHBl
cmZvcm1zIGNvcnJlY3RseSBmb3IKLSAgICB2YXJpb3VzIHZhbHVlcyBvZiB0aG9zZSBmbGFncy4K
LSogICBZb3Ugd2FudCB0byB0ZXN0IGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgYW4gT08g
aW50ZXJmYWNlLgotKiAgIFlvdSB3YW50IHRvIHRlc3QgeW91ciBjb2RlIG92ZXIgdmFyaW91cyBp
bnB1dHMgKGEuay5hLiBkYXRhLWRyaXZlbiB0ZXN0aW5nKS4KLSAgICBUaGlzIGZlYXR1cmUgaXMg
ZWFzeSB0byBhYnVzZSwgc28gcGxlYXNlIGV4ZXJjaXNlIHlvdXIgZ29vZCBzZW5zZSB3aGVuIGRv
aW5nCi0gICAgaXQhCi0KLSMjIyBIb3cgdG8gV3JpdGUgVmFsdWUtUGFyYW1ldGVyaXplZCBUZXN0
cwotCi1UbyB3cml0ZSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLCBmaXJzdCB5b3Ugc2hvdWxk
IGRlZmluZSBhIGZpeHR1cmUgY2xhc3MuIEl0Ci1tdXN0IGJlIGRlcml2ZWQgZnJvbSBib3RoIGA6
OnRlc3Rpbmc6OlRlc3RgIGFuZAotYDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+YCAo
dGhlIGxhdHRlciBpcyBhIHB1cmUgaW50ZXJmYWNlKSwgd2hlcmUgYFRgCi1pcyB0aGUgdHlwZSBv
ZiB5b3VyIHBhcmFtZXRlciB2YWx1ZXMuIEZvciBjb252ZW5pZW5jZSwgeW91IGNhbiBqdXN0IGRl
cml2ZSB0aGUKLWZpeHR1cmUgY2xhc3MgZnJvbSBgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFQ+
YCwgd2hpY2ggaXRzZWxmIGlzIGRlcml2ZWQgZnJvbQotYm90aCBgOjp0ZXN0aW5nOjpUZXN0YCBh
bmQgYDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+YC4gYFRgIGNhbiBiZSBhbnkKLWNv
cHlhYmxlIHR5cGUuIElmIGl0J3MgYSByYXcgcG9pbnRlciwgeW91IGFyZSByZXNwb25zaWJsZSBm
b3IgbWFuYWdpbmcgdGhlCi1saWZlc3BhbiBvZiB0aGUgcG9pbnRlZCB2YWx1ZXMuCi0KLU5PVEU6
IElmIHlvdXIgdGVzdCBmaXh0dXJlIGRlZmluZXMgYFNldFVwVGVzdENhc2UoKWAgb3IgYFRlYXJE
b3duVGVzdENhc2UoKWAKLXRoZXkgbXVzdCBiZSBkZWNsYXJlZCAqKnB1YmxpYyoqIHJhdGhlciB0
aGFuICoqcHJvdGVjdGVkKiogaW4gb3JkZXIgdG8gdXNlCi1gVEVTVF9QYC4KLQotYGBgYysrCi1j
bGFzcyBGb29UZXN0IDoKLSAgICBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0
IGNoYXIqPiB7Ci0gIC8vIFlvdSBjYW4gaW1wbGVtZW50IGFsbCB0aGUgdXN1YWwgZml4dHVyZSBj
bGFzcyBtZW1iZXJzIGhlcmUuCi0gIC8vIFRvIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0ZXIsIGNh
bGwgR2V0UGFyYW0oKSBmcm9tIGNsYXNzCi0gIC8vIFRlc3RXaXRoUGFyYW08VD4uCi19OwotCi0v
LyBPciwgd2hlbiB5b3Ugd2FudCB0byBhZGQgcGFyYW1ldGVycyB0byBhIHByZS1leGlzdGluZyBm
aXh0dXJlIGNsYXNzOgotY2xhc3MgQmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsK
LSAgLi4uCi19OwotY2xhc3MgQmFyVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwKLSAgICAgICAgICAg
ICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Y29uc3QgY2hhcio+IHsK
LSAgLi4uCi19OwotYGBgCi0KLVRoZW4sIHVzZSB0aGUgYFRFU1RfUGAgbWFjcm8gdG8gZGVmaW5l
IGFzIG1hbnkgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGlzIGZpeHR1cmUKLWFzIHlvdSB3YW50LiBU
aGUgYF9QYCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIiBvciAicGF0dGVybiIsIHdoaWNo
ZXZlciB5b3UKLXByZWZlciB0byB0aGluay4KLQotYGBgYysrCi1URVNUX1AoRm9vVGVzdCwgRG9l
c0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgYWNjZXNzIHRoZSB0ZXN0IHBhcmFtZXRlciB3
aXRoIHRoZSBHZXRQYXJhbSgpIG1ldGhvZAotICAvLyBvZiB0aGUgVGVzdFdpdGhQYXJhbTxUPiBj
bGFzczoKLSAgRVhQRUNUX1RSVUUoZm9vLkJsYWgoR2V0UGFyYW0oKSkpOwotICAuLi4KLX0KLQot
VEVTVF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFoKSB7Ci0gIC4uLgotfQotYGBgCi0KLUZpbmFsbHks
IHlvdSBjYW4gdXNlIGBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgdG8gaW5zdGFudGlhdGUgdGhl
IHRlc3QgY2FzZSB3aXRoCi1hbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIGdvb2dsZXRl
c3QgZGVmaW5lcyBhIG51bWJlciBvZiBmdW5jdGlvbnMgZm9yCi1nZW5lcmF0aW5nIHRlc3QgcGFy
YW1ldGVycy4gVGhleSByZXR1cm4gd2hhdCB3ZSBjYWxsIChzdXJwcmlzZSEpICpwYXJhbWV0ZXIK
LWdlbmVyYXRvcnMqLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGljaCBhcmUgYWxsIGlu
IHRoZSBgdGVzdGluZ2AKLW5hbWVzcGFjZToKLQotfCBQYXJhbWV0ZXIgR2VuZXJhdG9yICAgICAg
ICAgIHwgQmVoYXZpb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHwKLXwgYFJhbmdlKGJlZ2luLCBlbmQgWywgc3RlcF0pYCB8IFlpZWxk
cyB2YWx1ZXMgYHtiZWdpbiwgYmVnaW4rc3RlcCwgYmVnaW4rc3RlcCtzdGVwLCAuLi59YC4gVGhl
IHZhbHVlcyBkbyBub3QgaW5jbHVkZSBgZW5kYC4gYHN0ZXBgIGRlZmF1bHRzIHRvIDEuICAgICAg
fAotfCBgVmFsdWVzKHYxLCB2MiwgLi4uLCB2TilgICAgIHwgWWllbGRzIHZhbHVlcyBge3YxLCB2
MiwgLi4uLCB2Tn1gLiAgICAgICAgICB8Ci18IGBWYWx1ZXNJbihjb250YWluZXIpYCBhbmQgYFZh
bHVlc0luKGJlZ2luLGVuZClgICAgfCBZaWVsZHMgdmFsdWVzIGZyb20gYSBDLXN0eWxlIGFycmF5
LCBhbiBTVEwtc3R5bGUgY29udGFpbmVyLCBvciBhbiBpdGVyYXRvciByYW5nZSAgYFtiZWdpbiwg
ZW5kKWAuIHwKLXwgYEJvb2woKWAgICAgICAgICAgICAgICAgICAgICB8IFlpZWxkcyBzZXF1ZW5j
ZSBge2ZhbHNlLCB0cnVlfWAuICAgICAgICAgICAgfAotfCBgQ29tYmluZShnMSwgZzIsIC4uLiwg
Z04pYCAgIHwgWWllbGRzIGFsbCBjb21iaW5hdGlvbnMgKENhcnRlc2lhbiBwcm9kdWN0KSBhcyBz
dGRcOlw6dHVwbGVzIG9mIHRoZSB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IHRoZSBgTmAgZ2VuZXJhdG9y
cy4gICAgICAgICAgICB8Ci0KLUZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgY29tbWVudHMgYXQg
dGhlIGRlZmluaXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucy4KLQotVGhlIGZvbGxvd2luZyBzdGF0
ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIHRoZSBgRm9vVGVzdGAgdGVzdCBjYXNl
IGVhY2gKLXdpdGggcGFyYW1ldGVyIHZhbHVlcyBgIm1lZW55ImAsIGAibWlueSJgLCBhbmQgYCJt
b2UiYC4KLQotYGBgYysrCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnN0YW50aWF0aW9uTmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICA6OnRlc3Rpbmc6OlZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7Ci1gYGAKLQot
Tk9URTogVGhlIGNvZGUgYWJvdmUgbXVzdCBiZSBwbGFjZWQgYXQgZ2xvYmFsIG9yIG5hbWVzcGFj
ZSBzY29wZSwgbm90IGF0Ci1mdW5jdGlvbiBzY29wZS4KLQotTk9URTogRG9uJ3QgZm9yZ2V0IHRo
aXMgc3RlcCEgSWYgeW91IGRvIHlvdXIgdGVzdCB3aWxsIHNpbGVudGx5IHBhc3MsIGJ1dCBub25l
Ci1vZiBpdHMgY2FzZXMgd2lsbCBldmVyIHJ1biEKLQotVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50
IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiAoeWVzLCB5b3UgY2FuIGluc3RhbnRpYXRlIGl0Ci1t
b3JlIHRoYW4gb25jZSksIHRoZSBmaXJzdCBhcmd1bWVudCB0byBgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1BgIGlzIGEgcHJlZml4Ci10aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGFjdHVhbCB0ZXN0
IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUKLXByZWZpeGVzIGZvciBkaWZmZXJl
bnQgaW5zdGFudGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3Zl
Ci13aWxsIGhhdmUgdGhlc2UgbmFtZXM6Ci0KLSogICBgSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuRG9lc0JsYWgvMWAgZm9yIGAibWlueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuRG9lc0JsYWgvMmAgZm9yIGAibW9lImAKLSogICBgSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuSGFzQmxhaEJsYWgvMWAgZm9yIGAibWlueSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMmAgZm9yIGAibW9lImAKLQotWW91IGNhbiB1c2UgdGhlc2Ug
bmFtZXMgaW4gW2AtLWd0ZXN0X2ZpbHRlcmBdKCNydW5uaW5nLWEtc3Vic2V0LW9mLXRoZS10ZXN0
cykuCi0KLVRoaXMgc3RhdGVtZW50IHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzIGZyb20gYEZv
b1Rlc3RgIGFnYWluLCBlYWNoIHdpdGgKLXBhcmFtZXRlciB2YWx1ZXMgYCJjYXQiYCBhbmQgYCJk
b2ciYDoKLQotYGBgYysrCi1jb25zdCBjaGFyKiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsKLUlO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzSW4ocGV0cykpOwotYGBg
Ci0KLVRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVz
ZSBuYW1lczoKLQotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxh
aC8wYCBmb3IgYCJjYXQiYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5E
b2VzQmxhaC8xYCBmb3IgYCJkb2ciYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJjYXQiYAotKiAgIGBBbm90aGVySW5zdGFudGlhdGlv
bk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xYCBmb3IgYCJkb2ciYAotCi1QbGVhc2Ugbm90ZSB0
aGF0IGBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgd2lsbCBpbnN0YW50aWF0ZSAqYWxsKiB0ZXN0
cyBpbiB0aGUKLWdpdmVuIHRlc3QgY2FzZSwgd2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21l
IGJlZm9yZSBvciAqYWZ0ZXIqIHRoZQotYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QYCBzdGF0ZW1l
bnQuCi0KLVlvdSBjYW4gc2VlIHNhbXBsZTdfdW5pdHRlc3QuY2MgYW5kIHNhbXBsZThfdW5pdHRl
c3QuY2MgZm9yIG1vcmUgZXhhbXBsZXMuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5k
b3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYwotCi0jIyMgQ3JlYXRpbmcgVmFs
dWUtUGFyYW1ldGVyaXplZCBBYnN0cmFjdCBUZXN0cwotCi1JbiB0aGUgYWJvdmUsIHdlIGRlZmlu
ZSBhbmQgaW5zdGFudGlhdGUgYEZvb1Rlc3RgIGluIHRoZSAqc2FtZSogc291cmNlIGZpbGUuCi1T
b21ldGltZXMgeW91IG1heSB3YW50IHRvIGRlZmluZSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3Rz
IGluIGEgbGlicmFyeSBhbmQgbGV0Ci1vdGhlciBwZW9wbGUgaW5zdGFudGlhdGUgdGhlbSBsYXRl
ci4gVGhpcyBwYXR0ZXJuIGlzIGtub3duIGFzICphYnN0cmFjdCB0ZXN0cyouCi1BcyBhbiBleGFt
cGxlIG9mIGl0cyBhcHBsaWNhdGlvbiwgd2hlbiB5b3UgYXJlIGRlc2lnbmluZyBhbiBpbnRlcmZh
Y2UgeW91IGNhbgotd3JpdGUgYSBzdGFuZGFyZCBzdWl0ZSBvZiBhYnN0cmFjdCB0ZXN0cyAocGVy
aGFwcyB1c2luZyBhIGZhY3RvcnkgZnVuY3Rpb24gYXMKLXRoZSB0ZXN0IHBhcmFtZXRlcikgdGhh
dCBhbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBpbnRlcmZhY2UgYXJlIGV4cGVjdGVkIHRvCi1w
YXNzLiBXaGVuIHNvbWVvbmUgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlLCB0aGV5IGNhbiBpbnN0
YW50aWF0ZSB5b3VyIHN1aXRlIHRvCi1nZXQgYWxsIHRoZSBpbnRlcmZhY2UtY29uZm9ybWFuY2Ug
dGVzdHMgZm9yIGZyZWUuCi0KLVRvIGRlZmluZSBhYnN0cmFjdCB0ZXN0cywgeW91IHNob3VsZCBv
cmdhbml6ZSB5b3VyIGNvZGUgbGlrZSB0aGlzOgotCi0xLiAgUHV0IHRoZSBkZWZpbml0aW9uIG9m
IHRoZSBwYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZSBjbGFzcyAoZS5nLiBgRm9vVGVzdGApCi0g
ICAgaW4gYSBoZWFkZXIgZmlsZSwgc2F5IGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhp
cyBhcyAqZGVjbGFyaW5nKiB5b3VyCi0gICAgYWJzdHJhY3QgdGVzdHMuCi0xLiAgUHV0IHRoZSBg
VEVTVF9QYCBkZWZpbml0aW9ucyBpbiBgZm9vX3BhcmFtX3Rlc3QuY2NgLCB3aGljaCBpbmNsdWRl
cwotICAgIGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhpcyBhcyAqaW1wbGVtZW50aW5n
KiB5b3VyIGFic3RyYWN0IHRlc3RzLgotCi1PbmNlIHRoZXkgYXJlIGRlZmluZWQsIHlvdSBjYW4g
aW5zdGFudGlhdGUgdGhlbSBieSBpbmNsdWRpbmcgYGZvb19wYXJhbV90ZXN0LmhgLAotaW52b2tp
bmcgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKClgLCBhbmQgZGVwZW5kaW5nIG9uIHRoZSBsaWJy
YXJ5IHRhcmdldCB0aGF0Ci1jb250YWlucyBgZm9vX3BhcmFtX3Rlc3QuY2NgLiBZb3UgY2FuIGlu
c3RhbnRpYXRlIHRoZSBzYW1lIGFic3RyYWN0IHRlc3QgY2FzZQotbXVsdGlwbGUgdGltZXMsIHBv
c3NpYmx5IGluIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMuCi0KLSMjIyBTcGVjaWZ5aW5nIE5hbWVz
IGZvciBWYWx1ZS1QYXJhbWV0ZXJpemVkIFRlc3QgUGFyYW1ldGVycwotCi1UaGUgb3B0aW9uYWwg
bGFzdCBhcmd1bWVudCB0byBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoKWAgYWxsb3dzIHRoZSB1
c2VyIHRvCi1zcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0IGdlbmVyYXRlcyBjdXN0
b20gdGVzdCBuYW1lIHN1ZmZpeGVzIGJhc2VkIG9uCi10aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUg
ZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1lbnQgb2YgdHlwZQotYHRlc3Rpbmc6OlRl
c3RQYXJhbUluZm88Y2xhc3MgUGFyYW1UeXBlPmAsIGFuZCByZXR1cm4gYHN0ZDo6c3RyaW5nYC4K
LQotYHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWVgIGlzIGEgYnVpbHRpbiB0ZXN0IHN1
ZmZpeCBnZW5lcmF0b3IgdGhhdAotcmV0dXJucyB0aGUgdmFsdWUgb2YgYHRlc3Rpbmc6OlByaW50
VG9TdHJpbmcoR2V0UGFyYW0oKSlgLiBJdCBkb2VzIG5vdCB3b3JrIGZvcgotYHN0ZDo6c3RyaW5n
YCBvciBDIHN0cmluZ3MuCi0KLU5PVEU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1wdHksIHVu
aXF1ZSwgYW5kIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkKLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJz
LiBJbiBwYXJ0aWN1bGFyLCB0aGV5IFtzaG91bGQgbm90IGNvbnRhaW4KLXVuZGVyc2NvcmVzXSho
dHRwczovL2czZG9jLmNvcnAuZ29vZ2xlLmNvbS90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L2dvb2ds
ZXRlc3QvZzNkb2MvZmFxLm1kI25vLXVuZGVyc2NvcmVzKS4KLQotYGBgYysrCi1jbGFzcyBNeVRl
c3RDYXNlIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7fTsKLQotVEVTVF9Q
KE15VGVzdENhc2UsIE15VGVzdCkKLXsKLSAgc3RkOjpjb3V0IDw8ICJFeGFtcGxlIFRlc3QgUGFy
YW06ICIgPDwgR2V0UGFyYW0oKSA8PCBzdGQ6OmVuZGw7Ci19Ci0KLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKE15R3JvdXAsIE15VGVzdENhc2UsIHRlc3Rpbmc6OlJhbmdlKDAsIDEwKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7Ci1g
YGAKLQotIyMgVHlwZWQgVGVzdHM8L2lkPgotCi1TdXBwb3NlIHlvdSBoYXZlIG11bHRpcGxlIGlt
cGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBpbnRlcmZhY2UgYW5kIHdhbnQgdG8gbWFrZQotc3Vy
ZSB0aGF0IGFsbCBvZiB0aGVtIHNhdGlzZnkgc29tZSBjb21tb24gcmVxdWlyZW1lbnRzLiBPciwg
eW91IG1heSBoYXZlIGRlZmluZWQKLXNldmVyYWwgdHlwZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8g
Y29uZm9ybSB0byB0aGUgc2FtZSAiY29uY2VwdCIgYW5kIHlvdSB3YW50IHRvCi12ZXJpZnkgaXQu
IEluIGJvdGggY2FzZXMsIHlvdSB3YW50IHRoZSBzYW1lIHRlc3QgbG9naWMgcmVwZWF0ZWQgZm9y
IGRpZmZlcmVudAotdHlwZXMuCi0KLVdoaWxlIHlvdSBjYW4gd3JpdGUgb25lIGBURVNUYCBvciBg
VEVTVF9GYCBmb3IgZWFjaCB0eXBlIHlvdSB3YW50IHRvIHRlc3QgKGFuZAoteW91IG1heSBldmVu
IGZhY3RvciB0aGUgdGVzdCBsb2dpYyBpbnRvIGEgZnVuY3Rpb24gdGVtcGxhdGUgdGhhdCB5b3Ug
aW52b2tlIGZyb20KLXRoZSBgVEVTVGApLCBpdCdzIHRlZGlvdXMgYW5kIGRvZXNuJ3Qgc2NhbGU6
IGlmIHlvdSB3YW50IGBtYCB0ZXN0cyBvdmVyIGBuYAotdHlwZXMsIHlvdSdsbCBlbmQgdXAgd3Jp
dGluZyBgbSpuYCBgVEVTVGBzLgotCi0qVHlwZWQgdGVzdHMqIGFsbG93IHlvdSB0byByZXBlYXQg
dGhlIHNhbWUgdGVzdCBsb2dpYyBvdmVyIGEgbGlzdCBvZiB0eXBlcy4gWW91Ci1vbmx5IG5lZWQg
dG8gd3JpdGUgdGhlIHRlc3QgbG9naWMgb25jZSwgYWx0aG91Z2ggeW91IG11c3Qga25vdyB0aGUg
dHlwZSBsaXN0Ci13aGVuIHdyaXRpbmcgdHlwZWQgdGVzdHMuIEhlcmUncyBob3cgeW91IGRvIGl0
OgotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZS4gSXQgc2hvdWxkIGJl
IHBhcmFtZXRlcml6ZWQgYnkgYSB0eXBlLgotUmVtZW1iZXIgdG8gZGVyaXZlIGl0IGZyb20gYDo6
dGVzdGluZzo6VGVzdGA6Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBG
b29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHVibGljOgotICAuLi4KLSAgdHlw
ZWRlZiBzdGQ6Omxpc3Q8VD4gTGlzdDsKLSAgc3RhdGljIFQgc2hhcmVkXzsKLSAgVCB2YWx1ZV87
Ci19OwotYGBgCi0KLU5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2YgdHlwZXMgd2l0aCB0aGUgdGVz
dCBjYXNlLCB3aGljaCB3aWxsIGJlIHJlcGVhdGVkIGZvcgotZWFjaCB0eXBlIGluIHRoZSBsaXN0
OgotCi1gYGBjKysKLXVzaW5nIE15VHlwZXMgPSA6OnRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwg
dW5zaWduZWQgaW50PjsKLVRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzKTsKLWBgYAot
Ci1UaGUgdHlwZSBhbGlhcyAoYHVzaW5nYCBvciBgdHlwZWRlZmApIGlzIG5lY2Vzc2FyeSBmb3Ig
dGhlIGBUWVBFRF9URVNUX0NBU0VgCi1tYWNybyB0byBwYXJzZSBjb3JyZWN0bHkuIE90aGVyd2lz
ZSB0aGUgY29tcGlsZXIgd2lsbCB0aGluayB0aGF0IGVhY2ggY29tbWEgaW4KLXRoZSB0eXBlIGxp
c3QgaW50cm9kdWNlcyBhIG5ldyBtYWNybyBhcmd1bWVudC4KLQotVGhlbiwgdXNlIGBUWVBFRF9U
RVNUKClgIGluc3RlYWQgb2YgYFRFU1RfRigpYCB0byBkZWZpbmUgYSB0eXBlZCB0ZXN0IGZvciB0
aGlzCi10ZXN0IGNhc2UuIFlvdSBjYW4gcmVwZWF0IHRoaXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ug
d2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUKEZvb1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIElu
c2lkZSBhIHRlc3QsIHJlZmVyIHRvIHRoZSBzcGVjaWFsIG5hbWUgVHlwZVBhcmFtIHRvIGdldCB0
aGUgdHlwZQotICAvLyBwYXJhbWV0ZXIuICBTaW5jZSB3ZSBhcmUgaW5zaWRlIGEgZGVyaXZlZCBj
bGFzcyB0ZW1wbGF0ZSwgQysrIHJlcXVpcmVzCi0gIC8vIHVzIHRvIHZpc2l0IHRoZSBtZW1iZXJz
IG9mIEZvb1Rlc3QgdmlhICd0aGlzJy4KLSAgVHlwZVBhcmFtIG4gPSB0aGlzLT52YWx1ZV87Ci0K
LSAgLy8gVG8gdmlzaXQgc3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUsIGFkZCB0aGUgJ1Rl
c3RGaXh0dXJlOjonCi0gIC8vIHByZWZpeC4KLSAgbiArPSBUZXN0Rml4dHVyZTo6c2hhcmVkXzsK
LQotICAvLyBUbyByZWZlciB0byB0eXBlZGVmcyBpbiB0aGUgZml4dHVyZSwgYWRkIHRoZSAndHlw
ZW5hbWUgVGVzdEZpeHR1cmU6OicKLSAgLy8gcHJlZml4LiAgVGhlICd0eXBlbmFtZScgaXMgcmVx
dWlyZWQgdG8gc2F0aXNmeSB0aGUgY29tcGlsZXIuCi0gIHR5cGVuYW1lIFRlc3RGaXh0dXJlOjpM
aXN0IHZhbHVlczsKLQotICB2YWx1ZXMucHVzaF9iYWNrKG4pOwotICAuLi4KLX0KLQotVFlQRURf
VEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAotCi1Zb3UgY2FuIHNlZSBz
YW1wbGU2X3VuaXR0ZXN0LmNjCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzIChy
ZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYwotCi0jIyBUeXBlLVBhcmFtZXRlcml6ZWQg
VGVzdHMKLQotKlR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyogYXJlIGxpa2UgdHlwZWQgdGVzdHMs
IGV4Y2VwdCB0aGF0IHRoZXkgZG9uJ3QgcmVxdWlyZQoteW91IHRvIGtub3cgdGhlIGxpc3Qgb2Yg
dHlwZXMgYWhlYWQgb2YgdGltZS4gSW5zdGVhZCwgeW91IGNhbiBkZWZpbmUgdGhlIHRlc3QKLWxv
Z2ljIGZpcnN0IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGRpZmZlcmVudCB0eXBlIGxpc3RzIGxh
dGVyLiBZb3UgY2FuIGV2ZW4KLWluc3RhbnRpYXRlIGl0IG1vcmUgdGhhbiBvbmNlIGluIHRoZSBz
YW1lIHByb2dyYW0uCi0KLUlmIHlvdSBhcmUgZGVzaWduaW5nIGFuIGludGVyZmFjZSBvciBjb25j
ZXB0LCB5b3UgY2FuIGRlZmluZSBhIHN1aXRlIG9mCi10eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMg
dG8gdmVyaWZ5IHByb3BlcnRpZXMgdGhhdCBhbnkgdmFsaWQgaW1wbGVtZW50YXRpb24gb2YKLXRo
ZSBpbnRlcmZhY2UvY29uY2VwdCBzaG91bGQgaGF2ZS4gVGhlbiwgdGhlIGF1dGhvciBvZiBlYWNo
IGltcGxlbWVudGF0aW9uIGNhbgotanVzdCBpbnN0YW50aWF0ZSB0aGUgdGVzdCBzdWl0ZSB3aXRo
IHRoZWlyIHR5cGUgdG8gdmVyaWZ5IHRoYXQgaXQgY29uZm9ybXMgdG8KLXRoZSByZXF1aXJlbWVu
dHMsIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIHNpbWlsYXIgdGVzdHMgcmVwZWF0ZWRseS4gSGVy
ZSdzIGFuCi1leGFtcGxlOgotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFzcyB0ZW1wbGF0
ZSwgYXMgd2UgZGlkIHdpdGggdHlwZWQgdGVzdHM6Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gIC4uLgot
fTsKLWBgYAotCi1OZXh0LCBkZWNsYXJlIHRoYXQgeW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3QgY2FzZToKLQotYGBgYysrCi1UWVBFRF9URVNUX0NBU0VfUChGb29UZXN0
KTsKLWBgYAotCi1UaGVuLCB1c2UgYFRZUEVEX1RFU1RfUCgpYCB0byBkZWZpbmUgYSB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdC4gWW91IGNhbiByZXBlYXQKLXRoaXMgYXMgbWFueSB0aW1lcyBhcyB5
b3Ugd2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAg
Ly8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJh
bWV0ZXIuCi0gIFR5cGVQYXJhbSBuID0gMDsKLSAgLi4uCi19Ci0KLVRZUEVEX1RFU1RfUChGb29U
ZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAotCi1Ob3cgdGhlIHRyaWNreSBwYXJ0OiB5
b3UgbmVlZCB0byByZWdpc3RlciBhbGwgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGUKLWBSRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUGAgbWFjcm8gYmVmb3JlIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhl
bS4gVGhlIGZpcnN0Ci1hcmd1bWVudCBvZiB0aGUgbWFjcm8gaXMgdGhlIHRlc3QgY2FzZSBuYW1l
OyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cwotaW4gdGhpcyB0ZXN0IGNhc2U6
Ci0KLWBgYGMrKwotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERvZXNCbGFoLCBIYXNQcm9wZXJ0eUEpOwotYGBgCi0KLUZpbmFs
bHksIHlvdSBhcmUgZnJlZSB0byBpbnN0YW50aWF0ZSB0aGUgcGF0dGVybiB3aXRoIHRoZSB0eXBl
cyB5b3Ugd2FudC4gSWYgeW91Ci1wdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwg
eW91IGNhbiBgI2luY2x1ZGVgIGl0IGluIG11bHRpcGxlIEMrKwotc291cmNlIGZpbGVzIGFuZCBp
bnN0YW50aWF0ZSBpdCBtdWx0aXBsZSB0aW1lcy4KLQotYGBgYysrCi10eXBlZGVmIDo6dGVzdGlu
Zzo6VHlwZXM8Y2hhciwgaW50LCB1bnNpZ25lZCBpbnQ+IE15VHlwZXM7Ci1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7Ci1gYGAKLQotVG8gZGlzdGlu
Z3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiwgdGhlIGZpcnN0IGFyZ3Vt
ZW50IHRvIHRoZQotYElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QYCBtYWNybyBpcyBhIHBy
ZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi1hY3R1YWwgdGVzdCBjYXNlIG5hbWUuIFJl
bWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQgaW5zdGFuY2VzLgot
Ci1JbiB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB0eXBlIGxpc3QgY29udGFpbnMgb25seSBv
bmUgdHlwZSwgeW91IGNhbiB3cml0ZQotdGhhdCB0eXBlIGRpcmVjdGx5IHdpdGhvdXQgYDo6dGVz
dGluZzo6VHlwZXM8Li4uPmAsIGxpa2UgdGhpczoKLQotYGBgYysrCi1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgaW50KTsKLWBgYAotCi1Zb3UgY2FuIHNlZSBgc2Ft
cGxlNl91bml0dGVzdC5jY2AgZm9yIGEgY29tcGxldGUgZXhhbXBsZS4KLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwgTWFjCi0K
LSMjIFRlc3RpbmcgUHJpdmF0ZSBDb2RlCi0KLUlmIHlvdSBjaGFuZ2UgeW91ciBzb2Z0d2FyZSdz
IGludGVybmFsIGltcGxlbWVudGF0aW9uLCB5b3VyIHRlc3RzIHNob3VsZCBub3QKLWJyZWFrIGFz
IGxvbmcgYXMgdGhlIGNoYW5nZSBpcyBub3Qgb2JzZXJ2YWJsZSBieSB1c2Vycy4gVGhlcmVmb3Jl
LCAqKnBlciB0aGUKLWJsYWNrLWJveCB0ZXN0aW5nIHByaW5jaXBsZSwgbW9zdCBvZiB0aGUgdGlt
ZSB5b3Ugc2hvdWxkIHRlc3QgeW91ciBjb2RlIHRocm91Z2gKLWl0cyBwdWJsaWMgaW50ZXJmYWNl
cy4qKgotCi0qKklmIHlvdSBzdGlsbCBmaW5kIHlvdXJzZWxmIG5lZWRpbmcgdG8gdGVzdCBpbnRl
cm5hbCBpbXBsZW1lbnRhdGlvbiBjb2RlLAotY29uc2lkZXIgaWYgdGhlcmUncyBhIGJldHRlciBk
ZXNpZ24uKiogVGhlIGRlc2lyZSB0byB0ZXN0IGludGVybmFsCi1pbXBsZW1lbnRhdGlvbiBpcyBv
ZnRlbiBhIHNpZ24gdGhhdCB0aGUgY2xhc3MgaXMgZG9pbmcgdG9vIG11Y2guIENvbnNpZGVyCi1l
eHRyYWN0aW5nIGFuIGltcGxlbWVudGF0aW9uIGNsYXNzLCBhbmQgdGVzdGluZyBpdC4gVGhlbiB1
c2UgdGhhdCBpbXBsZW1lbnRhdGlvbgotY2xhc3MgaW4gdGhlIG9yaWdpbmFsIGNsYXNzLgotCi1J
ZiB5b3UgYWJzb2x1dGVseSBoYXZlIHRvIHRlc3Qgbm9uLXB1YmxpYyBpbnRlcmZhY2UgY29kZSB0
aG91Z2gsIHlvdSBjYW4uIFRoZXJlCi1hcmUgdHdvIGNhc2VzIHRvIGNvbnNpZGVyOgotCi0qICAg
U3RhdGljIGZ1bmN0aW9ucyAoICpub3QqIHRoZSBzYW1lIGFzIHN0YXRpYyBtZW1iZXIgZnVuY3Rp
b25zISkgb3IgdW5uYW1lZAotICAgIG5hbWVzcGFjZXMsIGFuZAotKiAgIFByaXZhdGUgb3IgcHJv
dGVjdGVkIGNsYXNzIG1lbWJlcnMKLQotVG8gdGVzdCB0aGVtLCB3ZSB1c2UgdGhlIGZvbGxvd2lu
ZyBzcGVjaWFsIHRlY2huaXF1ZXM6Ci0KLSogICBCb3RoIHN0YXRpYyBmdW5jdGlvbnMgYW5kIGRl
ZmluaXRpb25zL2RlY2xhcmF0aW9ucyBpbiBhbiB1bm5hbWVkIG5hbWVzcGFjZQotICAgIGFyZSBv
bmx5IHZpc2libGUgd2l0aGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuIFRvIHRlc3QgdGhl
bSwgeW91IGNhbgotICAgIGAjaW5jbHVkZWAgdGhlIGVudGlyZSBgLmNjYCBmaWxlIGJlaW5nIHRl
c3RlZCBpbiB5b3VyIGAqX3Rlc3QuY2NgIGZpbGUuCi0gICAgKGluY2x1ZGluZyBgLmNjYCBmaWxl
cyBpcyBub3QgYSBnb29kIHdheSB0byByZXVzZSBjb2RlIC0geW91IHNob3VsZCBub3QgZG8KLSAg
ICB0aGlzIGluIHByb2R1Y3Rpb24gY29kZSEpCi0KLSAgICBIb3dldmVyLCBhIGJldHRlciBhcHBy
b2FjaCBpcyB0byBtb3ZlIHRoZSBwcml2YXRlIGNvZGUgaW50byB0aGUKLSAgICBgZm9vOjppbnRl
cm5hbGAgbmFtZXNwYWNlLCB3aGVyZSBgZm9vYCBpcyB0aGUgbmFtZXNwYWNlIHlvdXIgcHJvamVj
dAotICAgIG5vcm1hbGx5IHVzZXMsIGFuZCBwdXQgdGhlIHByaXZhdGUgZGVjbGFyYXRpb25zIGlu
IGEgYCotaW50ZXJuYWwuaGAgZmlsZS4KLSAgICBZb3VyIHByb2R1Y3Rpb24gYC5jY2AgZmlsZXMg
YW5kIHlvdXIgdGVzdHMgYXJlIGFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzCi0gICAgaW50ZXJuYWwg
aGVhZGVyLCBidXQgeW91ciBjbGllbnRzIGFyZSBub3QuIFRoaXMgd2F5LCB5b3UgY2FuIGZ1bGx5
IHRlc3QgeW91cgotICAgIGludGVybmFsIGltcGxlbWVudGF0aW9uIHdpdGhvdXQgbGVha2luZyBp
dCB0byB5b3VyIGNsaWVudHMuCi0KLSogICBQcml2YXRlIGNsYXNzIG1lbWJlcnMgYXJlIG9ubHkg
YWNjZXNzaWJsZSBmcm9tIHdpdGhpbiB0aGUgY2xhc3Mgb3IgYnkKLSAgICBmcmllbmRzLiBUbyBh
Y2Nlc3MgYSBjbGFzcycgcHJpdmF0ZSBtZW1iZXJzLCB5b3UgY2FuIGRlY2xhcmUgeW91ciB0ZXN0
Ci0gICAgZml4dHVyZSBhcyBhIGZyaWVuZCB0byB0aGUgY2xhc3MgYW5kIGRlZmluZSBhY2Nlc3Nv
cnMgaW4geW91ciBmaXh0dXJlLiBUZXN0cwotICAgIHVzaW5nIHRoZSBmaXh0dXJlIGNhbiB0aGVu
IGFjY2VzcyB0aGUgcHJpdmF0ZSBtZW1iZXJzIG9mIHlvdXIgcHJvZHVjdGlvbgotICAgIGNsYXNz
IHZpYSB0aGUgYWNjZXNzb3JzIGluIHRoZSBmaXh0dXJlLiBOb3RlIHRoYXQgZXZlbiB0aG91Z2gg
eW91ciBmaXh0dXJlCi0gICAgaXMgYSBmcmllbmQgdG8geW91ciBwcm9kdWN0aW9uIGNsYXNzLCB5
b3VyIHRlc3RzIGFyZSBub3QgYXV0b21hdGljYWxseQotICAgIGZyaWVuZHMgdG8gaXQsIGFzIHRo
ZXkgYXJlIHRlY2huaWNhbGx5IGRlZmluZWQgaW4gc3ViLWNsYXNzZXMgb2YgdGhlCi0gICAgZml4
dHVyZS4KLQotICAgIEFub3RoZXIgd2F5IHRvIHRlc3QgcHJpdmF0ZSBtZW1iZXJzIGlzIHRvIHJl
ZmFjdG9yIHRoZW0gaW50byBhbgotICAgIGltcGxlbWVudGF0aW9uIGNsYXNzLCB3aGljaCBpcyB0
aGVuIGRlY2xhcmVkIGluIGEgYCotaW50ZXJuYWwuaGAgZmlsZS4gWW91cgotICAgIGNsaWVudHMg
YXJlbid0IGFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzIGhlYWRlciBidXQgeW91ciB0ZXN0cyBjYW4u
IFN1Y2ggaXMKLSAgICBjYWxsZWQgdGhlCi0gICAgW1BpbXBsXShodHRwczovL3d3dy5nYW1lZGV2
Lm5ldC9hcnRpY2xlcy9wcm9ncmFtbWluZy9nZW5lcmFsLWFuZC1nYW1lcGxheS1wcm9ncmFtbWlu
Zy90aGUtYy1waW1wbC1yMTc5NC8pCi0gICAgKFByaXZhdGUgSW1wbGVtZW50YXRpb24pIGlkaW9t
LgotCi0gICAgT3IsIHlvdSBjYW4gZGVjbGFyZSBhbiBpbmRpdmlkdWFsIHRlc3QgYXMgYSBmcmll
bmQgb2YgeW91ciBjbGFzcyBieSBhZGRpbmcKLSAgICB0aGlzIGxpbmUgaW4gdGhlIGNsYXNzIGJv
ZHk6Ci0KLSAgICBgYGBjKysKLSAgICAgICAgRlJJRU5EX1RFU1QoVGVzdENhc2VOYW1lLCBUZXN0
TmFtZSk7Ci0gICAgYGBgCi0KLSAgICBGb3IgZXhhbXBsZSwKLQotICAgIGBgYGMrKwotICAgIC8v
IGZvby5oCi0KLSAgICAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgotCi0gICAgY2xhc3Mg
Rm9vIHsKLSAgICAgIC4uLgotICAgIHByaXZhdGU6Ci0gICAgICBGUklFTkRfVEVTVChGb29UZXN0
LCBCYXJSZXR1cm5zWmVyb09uTnVsbCk7Ci0KLSAgICAgIGludCBCYXIodm9pZCogeCk7Ci0gICAg
fTsKLQotICAgIC8vIGZvb190ZXN0LmNjCi0gICAgLi4uCi0gICAgVEVTVChGb29UZXN0LCBCYXJS
ZXR1cm5zWmVyb09uTnVsbCkgewotICAgICAgRm9vIGZvbzsKLSAgICAgIEVYUEVDVF9FUSgwLCBm
b28uQmFyKE5VTEwpKTsgIC8vIFVzZXMgRm9vJ3MgcHJpdmF0ZSBtZW1iZXIgQmFyKCkuCi0gICAg
fQotICAgIGBgYAotCi0gICAgUGF5IHNwZWNpYWwgYXR0ZW50aW9uIHdoZW4geW91ciBjbGFzcyBp
cyBkZWZpbmVkIGluIGEgbmFtZXNwYWNlLCBhcyB5b3UKLSAgICBzaG91bGQgZGVmaW5lIHlvdXIg
dGVzdCBmaXh0dXJlcyBhbmQgdGVzdHMgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGlmIHlvdSB3YW50
Ci0gICAgdGhlbSB0byBiZSBmcmllbmRzIG9mIHlvdXIgY2xhc3MuIEZvciBleGFtcGxlLCBpZiB0
aGUgY29kZSB0byBiZSB0ZXN0ZWQKLSAgICBsb29rcyBsaWtlOgotCi0gICAgYGBgYysrCi0gICAg
bmFtZXNwYWNlIG15X25hbWVzcGFjZSB7Ci0KLSAgICBjbGFzcyBGb28gewotICAgICAgZnJpZW5k
IGNsYXNzIEZvb1Rlc3Q7Ci0gICAgICBGUklFTkRfVEVTVChGb29UZXN0LCBCYXIpOwotICAgICAg
RlJJRU5EX1RFU1QoRm9vVGVzdCwgQmF6KTsKLSAgICAgIC4uLiBkZWZpbml0aW9uIG9mIHRoZSBj
bGFzcyBGb28gLi4uCi0gICAgfTsKLQotICAgIH0gIC8vIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UK
LSAgICBgYGAKLQotICAgIFlvdXIgdGVzdCBjb2RlIHNob3VsZCBiZSBzb21ldGhpbmcgbGlrZToK
LQotICAgIGBgYGMrKwotICAgIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UgewotCi0gICAgY2xhc3Mg
Rm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotICAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAuLi4KLSAgICB9OwotCi0gICAgVEVTVF9GKEZvb1Rlc3QsIEJhcikgeyAuLi4gfQotICAgIFRF
U1RfRihGb29UZXN0LCBCYXopIHsgLi4uIH0KLQotICAgIH0gIC8vIG5hbWVzcGFjZSBteV9uYW1l
c3BhY2UKLSAgICBgYGAKLQotCi0jIyAiQ2F0Y2hpbmciIEZhaWx1cmVzCi0KLUlmIHlvdSBhcmUg
YnVpbGRpbmcgYSB0ZXN0aW5nIHV0aWxpdHkgb24gdG9wIG9mIGdvb2dsZXRlc3QsIHlvdSdsbCB3
YW50IHRvIHRlc3QKLXlvdXIgdXRpbGl0eS4gV2hhdCBmcmFtZXdvcmsgd291bGQgeW91IHVzZSB0
byB0ZXN0IGl0PyBnb29nbGV0ZXN0LCBvZiBjb3Vyc2UuCi0KLVRoZSBjaGFsbGVuZ2UgaXMgdG8g
dmVyaWZ5IHRoYXQgeW91ciB0ZXN0aW5nIHV0aWxpdHkgcmVwb3J0cyBmYWlsdXJlcyBjb3JyZWN0
bHkuCi1JbiBmcmFtZXdvcmtzIHRoYXQgcmVwb3J0IGEgZmFpbHVyZSBieSB0aHJvd2luZyBhbiBl
eGNlcHRpb24sIHlvdSBjb3VsZCBjYXRjaAotdGhlIGV4Y2VwdGlvbiBhbmQgYXNzZXJ0IG9uIGl0
LiBCdXQgZ29vZ2xldGVzdCBkb2Vzbid0IHVzZSBleGNlcHRpb25zLCBzbyBob3cgZG8KLXdlIHRl
c3QgdGhhdCBhIHBpZWNlIG9mIGNvZGUgZ2VuZXJhdGVzIGFuIGV4cGVjdGVkIGZhaWx1cmU/Ci0K
LWd1bml0LXNwaS5oIGNvbnRhaW5zIHNvbWUgY29uc3RydWN0cyB0byBkbyB0aGlzLiBBZnRlciAj
aW5jbHVkaW5nIHRoaXMgaGVhZGVyLAoteW91IGNhbiB1c2UKLQotYGBgYysrCi0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKHN0YXRlbWVudCwgc3Vic3RyaW5nKTsKLWBgYAotCi10byBhc3NlcnQgdGhh
dCBgc3RhdGVtZW50YCBnZW5lcmF0ZXMgYSBmYXRhbCAoZS5nLiBgQVNTRVJUXypgKSBmYWlsdXJl
IGluIHRoZQotY3VycmVudCB0aHJlYWQgd2hvc2UgbWVzc2FnZSBjb250YWlucyB0aGUgZ2l2ZW4g
YHN1YnN0cmluZ2AsIG9yIHVzZQotCi1gYGBjKysKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
c3RhdGVtZW50LCBzdWJzdHJpbmcpOwotYGBgCi0KLWlmIHlvdSBhcmUgZXhwZWN0aW5nIGEgbm9u
LWZhdGFsIChlLmcuIGBFWFBFQ1RfKmApIGZhaWx1cmUuCi0KLU9ubHkgZmFpbHVyZXMgaW4gdGhl
IGN1cnJlbnQgdGhyZWFkIGFyZSBjaGVja2VkIHRvIGRldGVybWluZSB0aGUgcmVzdWx0IG9mIHRo
aXMKLXR5cGUgb2YgZXhwZWN0YXRpb25zLiBJZiBgc3RhdGVtZW50YCBjcmVhdGVzIG5ldyB0aHJl
YWRzLCBmYWlsdXJlcyBpbiB0aGVzZQotdGhyZWFkcyBhcmUgYWxzbyBpZ25vcmVkLiBJZiB5b3Ug
d2FudCB0byBjYXRjaCBmYWlsdXJlcyBpbiBvdGhlciB0aHJlYWRzIGFzCi13ZWxsLCB1c2Ugb25l
IG9mIHRoZSBmb2xsb3dpbmcgbWFjcm9zIGluc3RlYWQ6Ci0KLWBgYGMrKwotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhzdGF0ZW1lbnQsIHN1YnN0cmluZyk7Ci0gIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURTKHN0YXRlbWVudCwgc3Vic3RyaW5nKTsK
LWBgYAotCi1OT1RFOiBBc3NlcnRpb25zIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhcmUgY3VycmVu
dGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cy4KLQotRm9yIHRlY2huaWNhbCByZWFzb25zLCB0
aGVyZSBhcmUgc29tZSBjYXZlYXRzOgotCi0xLiAgWW91IGNhbm5vdCBzdHJlYW0gYSBmYWlsdXJl
IG1lc3NhZ2UgdG8gZWl0aGVyIG1hY3JvLgotCi0xLiAgYHN0YXRlbWVudGAgaW4gYEVYUEVDVF9G
QVRBTF9GQUlMVVJFe19PTl9BTExfVEhSRUFEU30oKWAgY2Fubm90IHJlZmVyZW5jZQotICAgIGxv
Y2FsIG5vbi1zdGF0aWMgdmFyaWFibGVzIG9yIG5vbi1zdGF0aWMgbWVtYmVycyBvZiBgdGhpc2Ag
b2JqZWN0LgotCi0xLiAgYHN0YXRlbWVudGAgaW4gYEVYUEVDVF9GQVRBTF9GQUlMVVJFe19PTl9B
TExfVEhSRUFEU30oKSgpYCBjYW5ub3QgcmV0dXJuIGEKLSAgICB2YWx1ZS4KLQotCi0jIyBHZXR0
aW5nIHRoZSBDdXJyZW50IFRlc3QncyBOYW1lCi0KLVNvbWV0aW1lcyBhIGZ1bmN0aW9uIG1heSBu
ZWVkIHRvIGtub3cgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuCi1Gb3Ig
ZXhhbXBsZSwgeW91IG1heSBiZSB1c2luZyB0aGUgYFNldFVwKClgIG1ldGhvZCBvZiB5b3VyIHRl
c3QgZml4dHVyZSB0byBzZXQKLXRoZSBnb2xkZW4gZmlsZSBuYW1lIGJhc2VkIG9uIHdoaWNoIHRl
c3QgaXMgcnVubmluZy4gVGhlIGA6OnRlc3Rpbmc6OlRlc3RJbmZvYAotY2xhc3MgaGFzIHRoaXMg
aW5mb3JtYXRpb246Ci0KLWBgYGMrKwotbmFtZXNwYWNlIHRlc3RpbmcgewotCi1jbGFzcyBUZXN0
SW5mbyB7Ci0gcHVibGljOgotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgbmFtZSBhbmQgdGhl
IHRlc3QgbmFtZSwgcmVzcGVjdGl2ZWx5LgotICAvLwotICAvLyBEbyBOT1QgZGVsZXRlIG9yIGZy
ZWUgdGhlIHJldHVybiB2YWx1ZSAtIGl0J3MgbWFuYWdlZCBieSB0aGUKLSAgLy8gVGVzdEluZm8g
Y2xhc3MuCi0gIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lKCkgY29uc3Q7Ci0gIGNvbnN0IGNo
YXIqIG5hbWUoKSBjb25zdDsKLX07Ci0KLX0KLWBgYAotCi1UbyBvYnRhaW4gYSBgVGVzdEluZm9g
IG9iamVjdCBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QsIGNhbGwKLWBjdXJyZW50X3Rl
c3RfaW5mbygpYCBvbiB0aGUgYFVuaXRUZXN0YCBzaW5nbGV0b24gb2JqZWN0OgotCi1gYGBjKysK
LSAgLy8gR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdC4K
LSAgLy8gRG8gTk9UIGRlbGV0ZSB0aGUgcmV0dXJuZWQgb2JqZWN0IC0gaXQncyBtYW5hZ2VkIGJ5
IHRoZSBVbml0VGVzdCBjbGFzcy4KLSAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3Qg
dGVzdF9pbmZvID0KLSAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJy
ZW50X3Rlc3RfaW5mbygpOwotCi0KLQotICBwcmludGYoIldlIGFyZSBpbiB0ZXN0ICVzIG9mIHRl
c3QgY2FzZSAlcy5cbiIsCi0gICAgICAgICB0ZXN0X2luZm8tPm5hbWUoKSwKLSAgICAgICAgIHRl
c3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci1gYGAKLQotYGN1cnJlbnRfdGVzdF9pbmZvKClg
IHJldHVybnMgYSBudWxsIHBvaW50ZXIgaWYgbm8gdGVzdCBpcyBydW5uaW5nLiBJbgotcGFydGlj
dWxhciwgeW91IGNhbm5vdCBmaW5kIHRoZSB0ZXN0IGNhc2UgbmFtZSBpbiBgVGVzdENhc2VTZXRV
cCgpYCwKLWBUZXN0Q2FzZVRlYXJEb3duKClgICh3aGVyZSB5b3Uga25vdyB0aGUgdGVzdCBjYXNl
IG5hbWUgaW1wbGljaXRseSksIG9yCi1mdW5jdGlvbnMgY2FsbGVkIGZyb20gdGhlbS4KLQotKipB
dmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgRXh0ZW5kaW5nIGdvb2ds
ZXRlc3QgYnkgSGFuZGxpbmcgVGVzdCBFdmVudHMKLQotZ29vZ2xldGVzdCBwcm92aWRlcyBhbiAq
KmV2ZW50IGxpc3RlbmVyIEFQSSoqIHRvIGxldCB5b3UgcmVjZWl2ZSBub3RpZmljYXRpb25zCi1h
Ym91dCB0aGUgcHJvZ3Jlc3Mgb2YgYSB0ZXN0IHByb2dyYW0gYW5kIHRlc3QgZmFpbHVyZXMuIFRo
ZSBldmVudHMgeW91IGNhbgotbGlzdGVuIHRvIGluY2x1ZGUgdGhlIHN0YXJ0IGFuZCBlbmQgb2Yg
dGhlIHRlc3QgcHJvZ3JhbSwgYSB0ZXN0IGNhc2UsIG9yIGEgdGVzdAotbWV0aG9kLCBhbW9uZyBv
dGhlcnMuIFlvdSBtYXkgdXNlIHRoaXMgQVBJIHRvIGF1Z21lbnQgb3IgcmVwbGFjZSB0aGUgc3Rh
bmRhcmQKLWNvbnNvbGUgb3V0cHV0LCByZXBsYWNlIHRoZSBYTUwgb3V0cHV0LCBvciBwcm92aWRl
IGEgY29tcGxldGVseSBkaWZmZXJlbnQgZm9ybQotb2Ygb3V0cHV0LCBzdWNoIGFzIGEgR1VJIG9y
IGEgZGF0YWJhc2UuIFlvdSBjYW4gYWxzbyB1c2UgdGVzdCBldmVudHMgYXMKLWNoZWNrcG9pbnRz
IHRvIGltcGxlbWVudCBhIHJlc291cmNlIGxlYWsgY2hlY2tlciwgZm9yIGV4YW1wbGUuCi0KLSoq
QXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBEZWZpbmluZyBFdmVu
dCBMaXN0ZW5lcnMKLQotVG8gZGVmaW5lIGEgZXZlbnQgbGlzdGVuZXIsIHlvdSBzdWJjbGFzcyBl
aXRoZXIgdGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXIgb3IKLXRlc3Rpbmc6OkVtcHR5VGVzdEV2
ZW50TGlzdGVuZXIgVGhlIGZvcm1lciBpcyBhbiAoYWJzdHJhY3QpIGludGVyZmFjZSwgd2hlcmUK
LSplYWNoIHB1cmUgdmlydHVhbCBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gdG8gaGFuZGxlIGEg
dGVzdCBldmVudCogKEZvcgotZXhhbXBsZSwgd2hlbiBhIHRlc3Qgc3RhcnRzLCB0aGUgYE9uVGVz
dFN0YXJ0KClgIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4pLiBUaGUKLWxhdHRlciBwcm92aWRlcyBh
biBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBhbGwgbWV0aG9kcyBpbiB0aGUgaW50ZXJmYWNlLCBz
dWNoCi10aGF0IGEgc3ViY2xhc3Mgb25seSBuZWVkcyB0byBvdmVycmlkZSB0aGUgbWV0aG9kcyBp
dCBjYXJlcyBhYm91dC4KLQotV2hlbiBhbiBldmVudCBpcyBmaXJlZCwgaXRzIGNvbnRleHQgaXMg
cGFzc2VkIHRvIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIGFzIGFuCi1hcmd1bWVudC4gVGhlIGZvbGxv
d2luZyBhcmd1bWVudCB0eXBlcyBhcmUgdXNlZDoKLQotKiAgIFVuaXRUZXN0IHJlZmxlY3RzIHRo
ZSBzdGF0ZSBvZiB0aGUgZW50aXJlIHRlc3QgcHJvZ3JhbSwKLSogICBUZXN0Q2FzZSBoYXMgaW5m
b3JtYXRpb24gYWJvdXQgYSB0ZXN0IGNhc2UsIHdoaWNoIGNhbiBjb250YWluIG9uZSBvciBtb3Jl
Ci0gICAgdGVzdHMsCi0qICAgVGVzdEluZm8gY29udGFpbnMgdGhlIHN0YXRlIG9mIGEgdGVzdCwg
YW5kCi0qICAgVGVzdFBhcnRSZXN1bHQgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIGEgdGVzdCBh
c3NlcnRpb24uCi0KLUFuIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gY2FuIGV4YW1pbmUgdGhlIGFy
Z3VtZW50IGl0IHJlY2VpdmVzIHRvIGZpbmQgb3V0Ci1pbnRlcmVzdGluZyBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgZXZlbnQgYW5kIHRoZSB0ZXN0IHByb2dyYW0ncyBzdGF0ZS4KLQotSGVyZSdzIGFu
IGV4YW1wbGU6Ci0KLWBgYGMrKwotICBjbGFzcyBNaW5pbWFsaXN0UHJpbnRlciA6IHB1YmxpYyA6
OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewotICAgIC8vIENhbGxlZCBiZWZvcmUg
YSB0ZXN0IHN0YXJ0cy4KLSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgOjp0ZXN0
aW5nOjpUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgICBwcmludGYoIioqKiBUZXN0ICVzLiVz
IHN0YXJ0aW5nLlxuIiwKLSAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwg
dGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgfQotCi0gICAgLy8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVk
IGFzc2VydGlvbiBvciBhIFNVQ0NFU1MoKS4KLSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSB7
Ci0gICAgICBwcmludGYoIiVzIGluICVzOiVkXG4lc1xuIiwKLSAgICAgICAgICAgICB0ZXN0X3Bh
cnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJlIiA6ICJTdWNjZXNzIiwKLSAgICAgICAg
ICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZpbGVfbmFtZSgpLAotICAgICAgICAgICAgIHRlc3RfcGFy
dF9yZXN1bHQubGluZV9udW1iZXIoKSwKLSAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LnN1
bW1hcnkoKSk7Ci0gICAgfQotCi0gICAgLy8gQ2FsbGVkIGFmdGVyIGEgdGVzdCBlbmRzLgotICAg
IHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyYgdGVzdF9p
bmZvKSB7Ci0gICAgICBwcmludGYoIioqKiBUZXN0ICVzLiVzIGVuZGluZy5cbiIsCi0gICAgICAg
ICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwotICAg
IH0KLSAgfTsKLWBgYAotCi0jIyMgVXNpbmcgRXZlbnQgTGlzdGVuZXJzCi0KLVRvIHVzZSB0aGUg
ZXZlbnQgbGlzdGVuZXIgeW91IGhhdmUgZGVmaW5lZCwgYWRkIGFuIGluc3RhbmNlIG9mIGl0IHRv
IHRoZQotZ29vZ2xldGVzdCBldmVudCBsaXN0ZW5lciBsaXN0IChyZXByZXNlbnRlZCBieSBjbGFz
cyBUZXN0RXZlbnRMaXN0ZW5lcnMgLSBub3RlCi10aGUgInMiIGF0IHRoZSBlbmQgb2YgdGhlIG5h
bWUpIGluIHlvdXIgYG1haW4oKWAgZnVuY3Rpb24sIGJlZm9yZSBjYWxsaW5nCi1gUlVOX0FMTF9U
RVNUUygpYDoKLQotYGBgYysrCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLSAg
Ojp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIC8vIEdldHMgaG9sZCBv
ZiB0aGUgZXZlbnQgbGlzdGVuZXIgbGlzdC4KLSAgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5l
cnMmIGxpc3RlbmVycyA9Ci0gICAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmxpc3RlbmVycygpOwotICAvLyBBZGRzIGEgbGlzdGVuZXIgdG8gdGhlIGVuZC4gIGdvb2ds
ZXRlc3QgdGFrZXMgdGhlIG93bmVyc2hpcC4KLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgTWluaW1h
bGlzdFByaW50ZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBgCi0KLVRoZXJl
J3Mgb25seSBvbmUgcHJvYmxlbTogdGhlIGRlZmF1bHQgdGVzdCByZXN1bHQgcHJpbnRlciBpcyBz
dGlsbCBpbiBlZmZlY3QsIHNvCi1pdHMgb3V0cHV0IHdpbGwgbWluZ2xlIHdpdGggdGhlIG91dHB1
dCBmcm9tIHlvdXIgbWluaW1hbGlzdCBwcmludGVyLiBUbyBzdXBwcmVzcwotdGhlIGRlZmF1bHQg
cHJpbnRlciwganVzdCByZWxlYXNlIGl0IGZyb20gdGhlIGV2ZW50IGxpc3RlbmVyIGxpc3QgYW5k
IGRlbGV0ZSBpdC4KLVlvdSBjYW4gZG8gc28gYnkgYWRkaW5nIG9uZSBsaW5lOgotCi1gYGBjKysK
LSAgLi4uCi0gIGRlbGV0ZSBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1
bHRfcHJpbnRlcigpKTsKLSAgbGlzdGVuZXJzLkFwcGVuZChuZXcgTWluaW1hbGlzdFByaW50ZXIp
OwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotYGBgCi0KLU5vdywgc2l0IGJhY2sgYW5kIGVu
am95IGEgY29tcGxldGVseSBkaWZmZXJlbnQgb3V0cHV0IGZyb20geW91ciB0ZXN0cy4gRm9yIG1v
cmUKLWRldGFpbHMsIHlvdSBjYW4gcmVhZCB0aGlzIHNhbXBsZTlfdW5pdHRlc3QuY2MKLQotWW91
IG1heSBhcHBlbmQgbW9yZSB0aGFuIG9uZSBsaXN0ZW5lciB0byB0aGUgbGlzdC4gV2hlbiBhbiBg
T24qU3RhcnQoKWAgb3IKLWBPblRlc3RQYXJ0UmVzdWx0KClgIGV2ZW50IGlzIGZpcmVkLCB0aGUg
bGlzdGVuZXJzIHdpbGwgcmVjZWl2ZSBpdCBpbiB0aGUgb3JkZXIKLXRoZXkgYXBwZWFyIGluIHRo
ZSBsaXN0IChzaW5jZSBuZXcgbGlzdGVuZXJzIGFyZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBs
aXN0LAotdGhlIGRlZmF1bHQgdGV4dCBwcmludGVyIGFuZCB0aGUgZGVmYXVsdCBYTUwgZ2VuZXJh
dG9yIHdpbGwgcmVjZWl2ZSB0aGUgZXZlbnQKLWZpcnN0KS4gQW4gYE9uKkVuZCgpYCBldmVudCB3
aWxsIGJlIHJlY2VpdmVkIGJ5IHRoZSBsaXN0ZW5lcnMgaW4gdGhlICpyZXZlcnNlKgotb3JkZXIu
IFRoaXMgYWxsb3dzIG91dHB1dCBieSBsaXN0ZW5lcnMgYWRkZWQgbGF0ZXIgdG8gYmUgZnJhbWVk
IGJ5IG91dHB1dCBmcm9tCi1saXN0ZW5lcnMgYWRkZWQgZWFybGllci4KLQotIyMjIEdlbmVyYXRp
bmcgRmFpbHVyZXMgaW4gTGlzdGVuZXJzCi0KLVlvdSBtYXkgdXNlIGZhaWx1cmUtcmFpc2luZyBt
YWNyb3MgKGBFWFBFQ1RfKigpYCwgYEFTU0VSVF8qKClgLCBgRkFJTCgpYCwgZXRjKQotd2hlbiBw
cm9jZXNzaW5nIGFuIGV2ZW50LiBUaGVyZSBhcmUgc29tZSByZXN0cmljdGlvbnM6Ci0KLTEuICBZ
b3UgY2Fubm90IGdlbmVyYXRlIGFueSBmYWlsdXJlIGluIGBPblRlc3RQYXJ0UmVzdWx0KClgIChv
dGhlcndpc2UgaXQgd2lsbAotICAgIGNhdXNlIGBPblRlc3RQYXJ0UmVzdWx0KClgIHRvIGJlIGNh
bGxlZCByZWN1cnNpdmVseSkuCi0xLiAgQSBsaXN0ZW5lciB0aGF0IGhhbmRsZXMgYE9uVGVzdFBh
cnRSZXN1bHQoKWAgaXMgbm90IGFsbG93ZWQgdG8gZ2VuZXJhdGUgYW55Ci0gICAgZmFpbHVyZS4K
LQotV2hlbiB5b3UgYWRkIGxpc3RlbmVycyB0byB0aGUgbGlzdGVuZXIgbGlzdCwgeW91IHNob3Vs
ZCBwdXQgbGlzdGVuZXJzIHRoYXQKLWhhbmRsZSBgT25UZXN0UGFydFJlc3VsdCgpYCAqYmVmb3Jl
KiBsaXN0ZW5lcnMgdGhhdCBjYW4gZ2VuZXJhdGUgZmFpbHVyZXMuIFRoaXMKLWVuc3VyZXMgdGhh
dCBmYWlsdXJlcyBnZW5lcmF0ZWQgYnkgdGhlIGxhdHRlciBhcmUgYXR0cmlidXRlZCB0byB0aGUg
cmlnaHQgdGVzdAotYnkgdGhlIGZvcm1lci4KLQotV2UgaGF2ZSBhIHNhbXBsZSBvZiBmYWlsdXJl
LXJhaXNpbmcgbGlzdGVuZXIgc2FtcGxlMTBfdW5pdHRlc3QuY2MKLQotIyMgUnVubmluZyBUZXN0
IFByb2dyYW1zOiBBZHZhbmNlZCBPcHRpb25zCi0KLWdvb2dsZXRlc3QgdGVzdCBwcm9ncmFtcyBh
cmUgb3JkaW5hcnkgZXhlY3V0YWJsZXMuIE9uY2UgYnVpbHQsIHlvdSBjYW4gcnVuIHRoZW0KLWRp
cmVjdGx5IGFuZCBhZmZlY3QgdGhlaXIgYmVoYXZpb3IgdmlhIHRoZSBmb2xsb3dpbmcgZW52aXJv
bm1lbnQgdmFyaWFibGVzCi1hbmQvb3IgY29tbWFuZCBsaW5lIGZsYWdzLiBGb3IgdGhlIGZsYWdz
IHRvIHdvcmssIHlvdXIgcHJvZ3JhbXMgbXVzdCBjYWxsCi1gOjp0ZXN0aW5nOjpJbml0R29vZ2xl
VGVzdCgpYCBiZWZvcmUgY2FsbGluZyBgUlVOX0FMTF9URVNUUygpYC4KLQotVG8gc2VlIGEgbGlz
dCBvZiBzdXBwb3J0ZWQgZmxhZ3MgYW5kIHRoZWlyIHVzYWdlLCBwbGVhc2UgcnVuIHlvdXIgdGVz
dCBwcm9ncmFtCi13aXRoIHRoZSBgLS1oZWxwYCBmbGFnLiBZb3UgY2FuIGFsc28gdXNlIGAtaGAs
IGAtP2AsIG9yIGAvP2AgZm9yIHNob3J0LgotCi1JZiBhbiBvcHRpb24gaXMgc3BlY2lmaWVkIGJv
dGggYnkgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIGJ5IGEgZmxhZywgdGhlCi1sYXR0ZXIg
dGFrZXMgcHJlY2VkZW5jZS4KLQotIyMjIFNlbGVjdGluZyBUZXN0cwotCi0jIyMjIExpc3Rpbmcg
VGVzdCBOYW1lcwotCi1Tb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGxpc3QgdGhlIGF2YWls
YWJsZSB0ZXN0cyBpbiBhIHByb2dyYW0gYmVmb3JlCi1ydW5uaW5nIHRoZW0gc28gdGhhdCBhIGZp
bHRlciBtYXkgYmUgYXBwbGllZCBpZiBuZWVkZWQuIEluY2x1ZGluZyB0aGUgZmxhZwotYC0tZ3Rl
c3RfbGlzdF90ZXN0c2Agb3ZlcnJpZGVzIGFsbCBvdGhlciBmbGFncyBhbmQgbGlzdHMgdGVzdHMg
aW4gdGhlIGZvbGxvd2luZwotZm9ybWF0OgotCi1gYGBub25lCi1UZXN0Q2FzZTEuCi0gIFRlc3RO
YW1lMQotICBUZXN0TmFtZTIKLVRlc3RDYXNlMi4KLSAgVGVzdE5hbWUKLWBgYAotCi1Ob25lIG9m
IHRoZSB0ZXN0cyBsaXN0ZWQgYXJlIGFjdHVhbGx5IHJ1biBpZiB0aGUgZmxhZyBpcyBwcm92aWRl
ZC4gVGhlcmUgaXMgbm8KLWNvcnJlc3BvbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIHRo
aXMgZmxhZy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMj
IyBSdW5uaW5nIGEgU3Vic2V0IG9mIHRoZSBUZXN0cwotCi1CeSBkZWZhdWx0LCBhIGdvb2dsZXRl
c3QgcHJvZ3JhbSBydW5zIGFsbCB0ZXN0cyB0aGUgdXNlciBoYXMgZGVmaW5lZC4gU29tZXRpbWVz
LAoteW91IHdhbnQgdG8gcnVuIG9ubHkgYSBzdWJzZXQgb2YgdGhlIHRlc3RzIChlLmcuIGZvciBk
ZWJ1Z2dpbmcgb3IgcXVpY2tseQotdmVyaWZ5aW5nIGEgY2hhbmdlKS4gSWYgeW91IHNldCB0aGUg
YEdURVNUX0ZJTFRFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCi1gLS1ndGVzdF9maWx0
ZXJgIGZsYWcgdG8gYSBmaWx0ZXIgc3RyaW5nLCBnb29nbGV0ZXN0IHdpbGwgb25seSBydW4gdGhl
IHRlc3RzCi13aG9zZSBmdWxsIG5hbWVzIChpbiB0aGUgZm9ybSBvZiBgVGVzdENhc2VOYW1lLlRl
c3ROYW1lYCkgbWF0Y2ggdGhlIGZpbHRlci4KLQotVGhlIGZvcm1hdCBvZiBhIGZpbHRlciBpcyBh
ICdgOmAnLXNlcGFyYXRlZCBsaXN0IG9mIHdpbGRjYXJkIHBhdHRlcm5zIChjYWxsZWQKLXRoZSAq
cG9zaXRpdmUgcGF0dGVybnMqKSBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGEgJ2AtYCcgYW5kIGFu
b3RoZXIKLSdgOmAnLXNlcGFyYXRlZCBwYXR0ZXJuIGxpc3QgKGNhbGxlZCB0aGUgKm5lZ2F0aXZl
IHBhdHRlcm5zKikuIEEgdGVzdCBtYXRjaGVzCi10aGUgZmlsdGVyIGlmIGFuZCBvbmx5IGlmIGl0
IG1hdGNoZXMgYW55IG9mIHRoZSBwb3NpdGl2ZSBwYXR0ZXJucyBidXQgZG9lcyBub3QKLW1hdGNo
IGFueSBvZiB0aGUgbmVnYXRpdmUgcGF0dGVybnMuCi0KLUEgcGF0dGVybiBtYXkgY29udGFpbiBg
JyonYCAobWF0Y2hlcyBhbnkgc3RyaW5nKSBvciBgJz8nYCAobWF0Y2hlcyBhbnkgc2luZ2xlCi1j
aGFyYWN0ZXIpLiBGb3IgY29udmVuaWVuY2UsIHRoZSBmaWx0ZXIKLQotYCcqLU5lZ2F0aXZlUGF0
dGVybnMnYCBjYW4gYmUgYWxzbyB3cml0dGVuIGFzIGAnLU5lZ2F0aXZlUGF0dGVybnMnYC4KLQot
Rm9yIGV4YW1wbGU6Ci0KLSogICBgLi9mb29fdGVzdGAgSGFzIG5vIGZsYWcsIGFuZCB0aHVzIHJ1
bnMgYWxsIGl0cyB0ZXN0cy4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0qYCBBbHNv
IHJ1bnMgZXZlcnl0aGluZywgZHVlIHRvIHRoZSBzaW5nbGUKLSAgICBtYXRjaC1ldmVyeXRoaW5n
IGAqYCB2YWx1ZS4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj1Gb29UZXN0LipgIFJ1
bnMgZXZlcnl0aGluZyBpbiB0ZXN0IGNhc2UgYEZvb1Rlc3RgCi0gICAgLgotKiAgIGAuL2Zvb190
ZXN0IC0tZ3Rlc3RfZmlsdGVyPSpOdWxsKjoqQ29uc3RydWN0b3IqYCBSdW5zIGFueSB0ZXN0IHdo
b3NlIGZ1bGwKLSAgICBuYW1lIGNvbnRhaW5zIGVpdGhlciBgIk51bGwiYCBvciBgIkNvbnN0cnVj
dG9yImAgLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3RfZmlsdGVyPS0qRGVhdGhUZXN0LipgIFJ1
bnMgYWxsIG5vbi1kZWF0aCB0ZXN0cy4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj1G
b29UZXN0LiotRm9vVGVzdC5CYXJgIFJ1bnMgZXZlcnl0aGluZyBpbiB0ZXN0Ci0gICAgY2FzZSBg
Rm9vVGVzdGAgZXhjZXB0IGBGb29UZXN0LkJhcmAuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9m
aWx0ZXI9Rm9vVGVzdC4qOkJhclRlc3QuKi1Gb29UZXN0LkJhcjpCYXJUZXN0LkZvb2AgUnVucwot
ICAgIGV2ZXJ5dGhpbmcgaW4gdGVzdCBjYXNlIGBGb29UZXN0YCBleGNlcHQgYEZvb1Rlc3QuQmFy
YCBhbmQgZXZlcnl0aGluZyBpbgotICAgIHRlc3QgY2FzZSBgQmFyVGVzdGAgZXhjZXB0IGBCYXJU
ZXN0LkZvb2AuCi0gICAgCi0jIyMjIFRlbXBvcmFyaWx5IERpc2FibGluZyBUZXN0cwotCi1JZiB5
b3UgaGF2ZSBhIGJyb2tlbiB0ZXN0IHRoYXQgeW91IGNhbm5vdCBmaXggcmlnaHQgYXdheSwgeW91
IGNhbiBhZGQgdGhlCi1gRElTQUJMRURfYCBwcmVmaXggdG8gaXRzIG5hbWUuIFRoaXMgd2lsbCBl
eGNsdWRlIGl0IGZyb20gZXhlY3V0aW9uLiBUaGlzIGlzCi1iZXR0ZXIgdGhhbiBjb21tZW50aW5n
IG91dCB0aGUgY29kZSBvciB1c2luZyBgI2lmIDBgLCBhcyBkaXNhYmxlZCB0ZXN0cyBhcmUKLXN0
aWxsIGNvbXBpbGVkIChhbmQgdGh1cyB3b24ndCByb3QpLgotCi1JZiB5b3UgbmVlZCB0byBkaXNh
YmxlIGFsbCB0ZXN0cyBpbiBhIHRlc3QgY2FzZSwgeW91IGNhbiBlaXRoZXIgYWRkIGBESVNBQkxF
RF9gCi10byB0aGUgZnJvbnQgb2YgdGhlIG5hbWUgb2YgZWFjaCB0ZXN0LCBvciBhbHRlcm5hdGl2
ZWx5IGFkZCBpdCB0byB0aGUgZnJvbnQgb2YKLXRoZSB0ZXN0IGNhc2UgbmFtZS4KLQotRm9yIGV4
YW1wbGUsIHRoZSBmb2xsb3dpbmcgdGVzdHMgd29uJ3QgYmUgcnVuIGJ5IGdvb2dsZXRlc3QsIGV2
ZW4gdGhvdWdoIHRoZXkKLXdpbGwgc3RpbGwgYmUgY29tcGlsZWQ6Ci0KLWBgYGMrKwotLy8gVGVz
dHMgdGhhdCBGb28gZG9lcyBBYmMuCi1URVNUKEZvb1Rlc3QsIERJU0FCTEVEX0RvZXNBYmMpIHsg
Li4uIH0KLQotY2xhc3MgRElTQUJMRURfQmFyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qg
eyAuLi4gfTsKLQotLy8gVGVzdHMgdGhhdCBCYXIgZG9lcyBYeXouCi1URVNUX0YoRElTQUJMRURf
QmFyVGVzdCwgRG9lc1h5eikgeyAuLi4gfQotYGBgCi0KLU5PVEU6IFRoaXMgZmVhdHVyZSBzaG91
bGQgb25seSBiZSB1c2VkIGZvciB0ZW1wb3JhcnkgcGFpbi1yZWxpZWYuIFlvdSBzdGlsbCBoYXZl
Ci10byBmaXggdGhlIGRpc2FibGVkIHRlc3RzIGF0IGEgbGF0ZXIgZGF0ZS4gQXMgYSByZW1pbmRl
ciwgZ29vZ2xldGVzdCB3aWxsIHByaW50Ci1hIGJhbm5lciB3YXJuaW5nIHlvdSBpZiBhIHRlc3Qg
cHJvZ3JhbSBjb250YWlucyBhbnkgZGlzYWJsZWQgdGVzdHMuCi0KLVRJUDogWW91IGNhbiBlYXNp
bHkgY291bnQgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB5b3UgaGF2ZSB1c2luZyBgZ3Nl
YXJjaGAKLWFuZC9vciBgZ3JlcGAuIFRoaXMgbnVtYmVyIGNhbiBiZSB1c2VkIGFzIGEgbWV0cmlj
IGZvciBpbXByb3ZpbmcgeW91ciB0ZXN0Ci1xdWFsaXR5LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBM
aW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFRlbXBvcmFyaWx5IEVuYWJsaW5nIERpc2FibGVk
IFRlc3RzCi0KLVRvIGluY2x1ZGUgZGlzYWJsZWQgdGVzdHMgaW4gdGVzdCBleGVjdXRpb24sIGp1
c3QgaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gd2l0aAotdGhlIGAtLWd0ZXN0X2Fsc29fcnVuX2Rp
c2FibGVkX3Rlc3RzYCBmbGFnIG9yIHNldCB0aGUKLWBHVEVTVF9BTFNPX1JVTl9ESVNBQkxFRF9U
RVNUU2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIGAwYC4KLVlv
dSBjYW4gY29tYmluZSB0aGlzIHdpdGggdGhlIGAtLWd0ZXN0X2ZpbHRlcmAgZmxhZyB0byBmdXJ0
aGVyIHNlbGVjdCB3aGljaAotZGlzYWJsZWQgdGVzdHMgdG8gcnVuLgotCi0qKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgUmVwZWF0aW5nIHRoZSBUZXN0cwotCi1P
bmNlIGluIGEgd2hpbGUgeW91J2xsIHJ1biBpbnRvIGEgdGVzdCB3aG9zZSByZXN1bHQgaXMgaGl0
LW9yLW1pc3MuIFBlcmhhcHMgaXQKLXdpbGwgZmFpbCBvbmx5IDElIG9mIHRoZSB0aW1lLCBtYWtp
bmcgaXQgcmF0aGVyIGhhcmQgdG8gcmVwcm9kdWNlIHRoZSBidWcgdW5kZXIKLWEgZGVidWdnZXIu
IFRoaXMgY2FuIGJlIGEgbWFqb3Igc291cmNlIG9mIGZydXN0cmF0aW9uLgotCi1UaGUgYC0tZ3Rl
c3RfcmVwZWF0YCBmbGFnIGFsbG93cyB5b3UgdG8gcmVwZWF0IGFsbCAob3Igc2VsZWN0ZWQpIHRl
c3QgbWV0aG9kcyBpbgotYSBwcm9ncmFtIG1hbnkgdGltZXMuIEhvcGVmdWxseSwgYSBmbGFreSB0
ZXN0IHdpbGwgZXZlbnR1YWxseSBmYWlsIGFuZCBnaXZlIHlvdQotYSBjaGFuY2UgdG8gZGVidWcu
IEhlcmUncyBob3cgdG8gdXNlIGl0OgotCi1gYGBub25lCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVw
ZWF0PTEwMDAKLVJlcGVhdCBmb29fdGVzdCAxMDAwIHRpbWVzIGFuZCBkb24ndCBzdG9wIGF0IGZh
aWx1cmVzLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PS0xCi1BIG5lZ2F0aXZlIGNvdW50
IG1lYW5zIHJlcGVhdGluZyBmb3JldmVyLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEw
MDAgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlCi1SZXBlYXQgZm9vX3Rlc3QgMTAwMCB0aW1lcywg
c3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZhaWx1cmUuICBUaGlzCi1pcyBlc3BlY2lhbGx5IHVzZWZ1
bCB3aGVuIHJ1bm5pbmcgdW5kZXIgYSBkZWJ1Z2dlcjogd2hlbiB0aGUgdGVzdAotZmFpbHMsIGl0
IHdpbGwgZHJvcCBpbnRvIHRoZSBkZWJ1Z2dlciBhbmQgeW91IGNhbiB0aGVuIGluc3BlY3QKLXZh
cmlhYmxlcyBhbmQgc3RhY2tzLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDAgLS1n
dGVzdF9maWx0ZXI9Rm9vQmFyLioKLVJlcGVhdCB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVz
IHRoZSBmaWx0ZXIgMTAwMCB0aW1lcy4KLWBgYAotCi1JZiB5b3VyIHRlc3QgcHJvZ3JhbSBjb250
YWlucyBbZ2xvYmFsIHNldC11cC90ZWFyLWRvd25dKCNnbG9iYWwtc2V0LXVwLWFuZC10ZWFyLWRv
d24pIGNvZGUsIGl0Ci13aWxsIGJlIHJlcGVhdGVkIGluIGVhY2ggaXRlcmF0aW9uIGFzIHdlbGws
IGFzIHRoZSBmbGFraW5lc3MgbWF5IGJlIGluIGl0LiBZb3UKLWNhbiBhbHNvIHNwZWNpZnkgdGhl
IHJlcGVhdCBjb3VudCBieSBzZXR0aW5nIHRoZSBgR1RFU1RfUkVQRUFUYCBlbnZpcm9ubWVudAot
dmFyaWFibGUuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMj
IyBTaHVmZmxpbmcgdGhlIFRlc3RzCi0KLVlvdSBjYW4gc3BlY2lmeSB0aGUgYC0tZ3Rlc3Rfc2h1
ZmZsZWAgZmxhZyAob3Igc2V0IHRoZSBgR1RFU1RfU0hVRkZMRWAKLWVudmlyb25tZW50IHZhcmlh
YmxlIHRvIGAxYCkgdG8gcnVuIHRoZSB0ZXN0cyBpbiBhIHByb2dyYW0gaW4gYSByYW5kb20gb3Jk
ZXIuCi1UaGlzIGhlbHBzIHRvIHJldmVhbCBiYWQgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGVzdHMu
Ci0KLUJ5IGRlZmF1bHQsIGdvb2dsZXRlc3QgdXNlcyBhIHJhbmRvbSBzZWVkIGNhbGN1bGF0ZWQg
ZnJvbSB0aGUgY3VycmVudCB0aW1lLgotVGhlcmVmb3JlIHlvdSdsbCBnZXQgYSBkaWZmZXJlbnQg
b3JkZXIgZXZlcnkgdGltZS4gVGhlIGNvbnNvbGUgb3V0cHV0IGluY2x1ZGVzCi10aGUgcmFuZG9t
IHNlZWQgdmFsdWUsIHN1Y2ggdGhhdCB5b3UgY2FuIHJlcHJvZHVjZSBhbiBvcmRlci1yZWxhdGVk
IHRlc3QgZmFpbHVyZQotbGF0ZXIuIFRvIHNwZWNpZnkgdGhlIHJhbmRvbSBzZWVkIGV4cGxpY2l0
bHksIHVzZSB0aGUgYC0tZ3Rlc3RfcmFuZG9tX3NlZWQ9U0VFRGAKLWZsYWcgKG9yIHNldCB0aGUg
YEdURVNUX1JBTkRPTV9TRUVEYCBlbnZpcm9ubWVudCB2YXJpYWJsZSksIHdoZXJlIGBTRUVEYCBp
cyBhbgotaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzAsIDk5OTk5XS4gVGhlIHNlZWQgdmFsdWUgMCBp
cyBzcGVjaWFsOiBpdCB0ZWxscwotZ29vZ2xldGVzdCB0byBkbyB0aGUgZGVmYXVsdCBiZWhhdmlv
ciBvZiBjYWxjdWxhdGluZyB0aGUgc2VlZCBmcm9tIHRoZSBjdXJyZW50Ci10aW1lLgotCi1JZiB5
b3UgY29tYmluZSB0aGlzIHdpdGggYC0tZ3Rlc3RfcmVwZWF0PU5gLCBnb29nbGV0ZXN0IHdpbGwg
cGljayBhIGRpZmZlcmVudAotcmFuZG9tIHNlZWQgYW5kIHJlLXNodWZmbGUgdGhlIHRlc3RzIGlu
IGVhY2ggaXRlcmF0aW9uLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgQ29udHJvbGxpbmcgVGVzdCBPdXRwdXQKLQotIyMjIyBDb2xvcmVkIFRlcm1pbmFs
IE91dHB1dAotCi1nb29nbGV0ZXN0IGNhbiB1c2UgY29sb3JzIGluIGl0cyB0ZXJtaW5hbCBvdXRw
dXQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCB0aGUKLWltcG9ydGFudCBpbmZvcm1hdGlvbjoK
LQotLi4uPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wy0tLS0tLS0tLS1dPHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj4gMSB0ZXN0IGZyb20gRm9vVGVzdDxici8+Ci08c3BhbiBzdHls
ZT0iY29sb3I6Z3JlZW4iPlsgUlVOICAgICAgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEZv
b1Rlc3QuRG9lc0FiYzxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgICAgICAgT0sg
XTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEZvb1Rlc3QuRG9lc0FiYzxici8+Ci08c3BhbiBz
dHlsZT0iY29sb3I6Z3JlZW4iPlstLS0tLS0tLS0tXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+
IDIgdGVzdHMgZnJvbSBCYXJUZXN0PGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+WyBS
VU4gICAgICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gQmFyVGVzdC5IYXNYeXpQcm9wZXJ0
eTxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgICAgICAgT0sgXTxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+IEJhclRlc3QuSGFzWHl6UHJvcGVydHk8YnIvPgotPHNwYW4gc3R5bGU9
ImNvbG9yOmdyZWVuIj5bIFJVTiAgICAgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBCYXJU
ZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLS4uLiBzb21lIGVycm9yIG1lc3NhZ2VzIC4u
Ljxici8+Ci08c3BhbiAgIHN0eWxlPSJjb2xvcjpyZWQiPlsgIEZBSUxFRCAgXSA8c3BhbiBzdHls
ZT0iY29sb3I6YmxhY2siPkJhclRlc3QuUmV0dXJuc1RydWVPblN1Y2Nlc3M8YnIvPgotLi4uPGJy
Lz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wz09PT09PT09PT1dPHNwYW4gc3R5bGU9ImNv
bG9yOmJsYWNrIj4gMzAgdGVzdHMgZnJvbSAxNCB0ZXN0IGNhc2VzIHJhbi48YnIvPgotPHNwYW4g
c3R5bGU9ImNvbG9yOmdyZWVuIj5bICBQQVNTRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiAyOCB0ZXN0cy48YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOnJlZCI+WyAgRkFJTEVEICBdPHNw
YW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gMiB0ZXN0cywgbGlzdGVkIGJlbG93Ojxici8+Ci08c3Bh
biBzdHlsZT0iY29sb3I6cmVkIj5bICBGQUlMRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiBCYXJUZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpy
ZWQiPlsgIEZBSUxFRCAgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEFub3RoZXJUZXN0LkRv
ZXNYeXo8YnIvPgotICAyIEZBSUxFRCBURVNUUwotCi1Zb3UgY2FuIHNldCB0aGUgYEdURVNUX0NP
TE9SYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUgYC0tZ3Rlc3RfY29sb3JgCi1jb21tYW5k
IGxpbmUgZmxhZyB0byBgeWVzYCwgYG5vYCwgb3IgYGF1dG9gICh0aGUgZGVmYXVsdCkgdG8gZW5h
YmxlIGNvbG9ycywKLWRpc2FibGUgY29sb3JzLCBvciBsZXQgZ29vZ2xldGVzdCBkZWNpZGUuIFdo
ZW4gdGhlIHZhbHVlIGlzIGBhdXRvYCwgZ29vZ2xldGVzdAotd2lsbCB1c2UgY29sb3JzIGlmIGFu
ZCBvbmx5IGlmIHRoZSBvdXRwdXQgZ29lcyB0byBhIHRlcm1pbmFsIGFuZCAob24gbm9uLVdpbmRv
d3MKLXBsYXRmb3JtcykgdGhlIGBURVJNYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8g
YHh0ZXJtYCBvciBgeHRlcm0tY29sb3JgLgotCi0gKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIyBTdXBwcmVzc2luZyB0aGUgRWxhcHNlZCBUaW1lCi0KLUJ5IGRl
ZmF1bHQsIGdvb2dsZXRlc3QgcHJpbnRzIHRoZSB0aW1lIGl0IHRha2VzIHRvIHJ1biBlYWNoIHRl
c3QuIFRvIGRpc2FibGUKLXRoYXQsIHJ1biB0aGUgdGVzdCBwcm9ncmFtIHdpdGggdGhlIGAtLWd0
ZXN0X3ByaW50X3RpbWU9MGAgY29tbWFuZCBsaW5lIGZsYWcsIG9yCi1zZXQgdGhlIEdURVNUX1BS
SU5UX1RJTUUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDBgLgotCi0qKkF2YWlsYWJpbGl0eSoq
OiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFN1cHByZXNzaW5nIFVURi04IFRleHQgT3V0
cHV0Ci0KLUluIGNhc2Ugb2YgYXNzZXJ0aW9uIGZhaWx1cmVzLCBnb29nbGV0ZXN0IHByaW50cyBl
eHBlY3RlZCBhbmQgYWN0dWFsIHZhbHVlcyBvZgotdHlwZSBgc3RyaW5nYCBib3RoIGFzIGhleC1l
bmNvZGVkIHN0cmluZ3MgYXMgd2VsbCBhcyBpbiByZWFkYWJsZSBVVEYtOCB0ZXh0IGlmCi10aGV5
IGNvbnRhaW4gdmFsaWQgbm9uLUFTQ0lJIFVURi04IGNoYXJhY3RlcnMuIElmIHlvdSB3YW50IHRv
IHN1cHByZXNzIHRoZSBVVEYtOAotdGV4dCBiZWNhdXNlLCBmb3IgZXhhbXBsZSwgeW91IGRvbid0
IGhhdmUgYW4gVVRGLTggY29tcGF0aWJsZSBvdXRwdXQgbWVkaXVtLCBydW4KLXRoZSB0ZXN0IHBy
b2dyYW0gd2l0aCBgLS1ndGVzdF9wcmludF91dGY4PTBgIG9yIHNldCB0aGUgYEdURVNUX1BSSU5U
X1VURjhgCi1lbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgMGAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6
IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLQotIyMjIyBHZW5lcmF0aW5nIGFuIFhNTCBSZXBvcnQK
LQotZ29vZ2xldGVzdCBjYW4gZW1pdCBhIGRldGFpbGVkIFhNTCByZXBvcnQgdG8gYSBmaWxlIGlu
IGFkZGl0aW9uIHRvIGl0cyBub3JtYWwKLXRleHR1YWwgb3V0cHV0LiBUaGUgcmVwb3J0IGNvbnRh
aW5zIHRoZSBkdXJhdGlvbiBvZiBlYWNoIHRlc3QsIGFuZCB0aHVzIGNhbiBoZWxwCi15b3UgaWRl
bnRpZnkgc2xvdyB0ZXN0cy4gVGhlIHJlcG9ydCBpcyBhbHNvIHVzZWQgYnkgdGhlIGh0dHA6Ly91
bml0dGVzdAotZGFzaGJvYXJkIHRvIHNob3cgcGVyLXRlc3QtbWV0aG9kIGVycm9yIG1lc3NhZ2Vz
LgotCi1UbyBnZW5lcmF0ZSB0aGUgWE1MIHJlcG9ydCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVUYCBl
bnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0ZXN0X291dHB1dGAgZmxhZyB0byB0aGUg
c3RyaW5nIGAieG1sOnBhdGhfdG9fb3V0cHV0X2ZpbGUiYCwgd2hpY2ggd2lsbAotY3JlYXRlIHRo
ZSBmaWxlIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi4gWW91IGNhbiBhbHNvIGp1c3QgdXNlIHRoZSBz
dHJpbmcgYCJ4bWwiYCwKLWluIHdoaWNoIGNhc2UgdGhlIG91dHB1dCBjYW4gYmUgZm91bmQgaW4g
dGhlIGB0ZXN0X2RldGFpbC54bWxgIGZpbGUgaW4gdGhlCi1jdXJyZW50IGRpcmVjdG9yeS4KLQot
SWYgeW91IHNwZWNpZnkgYSBkaXJlY3RvcnkgKGZvciBleGFtcGxlLCBgInhtbDpvdXRwdXQvZGly
ZWN0b3J5LyJgIG9uIExpbnV4IG9yCi1gInhtbDpvdXRwdXRcZGlyZWN0b3J5XCJgIG9uIFdpbmRv
d3MpLCBnb29nbGV0ZXN0IHdpbGwgY3JlYXRlIHRoZSBYTUwgZmlsZSBpbgotdGhhdCBkaXJlY3Rv
cnksIG5hbWVkIGFmdGVyIHRoZSB0ZXN0IGV4ZWN1dGFibGUgKGUuZy4gYGZvb190ZXN0LnhtbGAg
Zm9yIHRlc3QKLXByb2dyYW0gYGZvb190ZXN0YCBvciBgZm9vX3Rlc3QuZXhlYCkuIElmIHRoZSBm
aWxlIGFscmVhZHkgZXhpc3RzIChwZXJoYXBzIGxlZnQKLW92ZXIgZnJvbSBhIHByZXZpb3VzIHJ1
biksIGdvb2dsZXRlc3Qgd2lsbCBwaWNrIGEgZGlmZmVyZW50IG5hbWUgKGUuZy4KLWBmb29fdGVz
dF8xLnhtbGApIHRvIGF2b2lkIG92ZXJ3cml0aW5nIGl0LgotCi0KLVRoZSByZXBvcnQgaXMgYmFz
ZWQgb24gdGhlIGBqdW5pdHJlcG9ydGAgQW50IHRhc2suIFNpbmNlIHRoYXQgZm9ybWF0IHdhcwot
b3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgSmF2YSwgYSBsaXR0bGUgaW50ZXJwcmV0YXRpb24gaXMg
cmVxdWlyZWQgdG8gbWFrZSBpdAotYXBwbHkgdG8gZ29vZ2xldGVzdCB0ZXN0cywgYXMgc2hvd24g
aGVyZToKLQotYGBgeG1sCi08dGVzdHN1aXRlcyBuYW1lPSJBbGxUZXN0cyIgLi4uPgotICA8dGVz
dHN1aXRlIG5hbWU9InRlc3RfY2FzZV9uYW1lIiAuLi4+Ci0gICAgPHRlc3RjYXNlICAgIG5hbWU9
InRlc3RfbmFtZSIgLi4uPgotICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIi8+Ci0gICAgICA8
ZmFpbHVyZSBtZXNzYWdlPSIuLi4iLz4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Ii4uLiIvPgot
ICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPgotYGBgCi0KLSog
ICBUaGUgcm9vdCBgPHRlc3RzdWl0ZXM+YCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIHRoZSBlbnRp
cmUgdGVzdCBwcm9ncmFtLgotKiAgIGA8dGVzdHN1aXRlPmAgZWxlbWVudHMgY29ycmVzcG9uZCB0
byBnb29nbGV0ZXN0IHRlc3QgY2FzZXMuCi0qICAgYDx0ZXN0Y2FzZT5gIGVsZW1lbnRzIGNvcnJl
c3BvbmQgdG8gZ29vZ2xldGVzdCB0ZXN0IGZ1bmN0aW9ucy4KLQotRm9yIGluc3RhbmNlLCB0aGUg
Zm9sbG93aW5nIHByb2dyYW0KLQotYGBgYysrCi1URVNUKE1hdGhUZXN0LCBBZGRpdGlvbikgeyAu
Li4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24pIHsgLi4uIH0KLVRFU1QoTG9naWNUZXN0
LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291bGQgZ2VuZXJhdGUgdGhpcyBy
ZXBvcnQ6Ci0KLWBgYHhtbAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
LTx0ZXN0c3VpdGVzIHRlc3RzPSIzIiBmYWlsdXJlcz0iMSIgZXJyb3JzPSIwIiB0aW1lPSIwLjAz
NSIgdGltZXN0YW1wPSIyMDExLTEwLTMxVDE4OjUyOjQyIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0
ZXN0c3VpdGUgbmFtZT0iTWF0aFRlc3QiIHRlc3RzPSIyIiBmYWlsdXJlcz0iMSIgZXJyb3JzPSIw
IiB0aW1lPSIwLjAxNSI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFkZGl0aW9uIiBzdGF0dXM9InJ1
biIgdGltZT0iMC4wMDciIGNsYXNzbmFtZT0iIj4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZh
bHVlIG9mOiBhZGQoMSwgMSkmI3gwQTsgIEFjdHVhbDogMyYjeDBBO0V4cGVjdGVkOiAyIiB0eXBl
PSIiPi4uLjwvZmFpbHVyZT4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZhbHVlIG9mOiBhZGQo
MSwgLTEpJiN4MEE7ICBBY3R1YWw6IDEmI3gwQTtFeHBlY3RlZDogMCIgdHlwZT0iIj4uLi48L2Zh
aWx1cmU+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VidHJhY3Rpb24i
IHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNSIgY2xhc3NuYW1lPSIiPgotICAgIDwvdGVzdGNhc2U+
Ci0gIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkxvZ2ljVGVzdCIgdGVzdHM9IjEi
IGZhaWx1cmVzPSIwIiBlcnJvcnM9IjAiIHRpbWU9IjAuMDA1Ij4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iTm9uQ29udHJhZGljdGlvbiIgc3RhdHVzPSJydW4iIHRpbWU9IjAuMDA1IiBjbGFzc25hbWU9
IiI+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0ZXM+Ci1gYGAK
LQotVGhpbmdzIHRvIG5vdGU6Ci0KLSogICBUaGUgYHRlc3RzYCBhdHRyaWJ1dGUgb2YgYSBgPHRl
c3RzdWl0ZXM+YCBvciBgPHRlc3RzdWl0ZT5gIGVsZW1lbnQgdGVsbHMgaG93Ci0gICAgbWFueSB0
ZXN0IGZ1bmN0aW9ucyB0aGUgZ29vZ2xldGVzdCBwcm9ncmFtIG9yIHRlc3QgY2FzZSBjb250YWlu
cywgd2hpbGUgdGhlCi0gICAgYGZhaWx1cmVzYCBhdHRyaWJ1dGUgdGVsbHMgaG93IG1hbnkgb2Yg
dGhlbSBmYWlsZWQuCi0KLSogICBUaGUgYHRpbWVgIGF0dHJpYnV0ZSBleHByZXNzZXMgdGhlIGR1
cmF0aW9uIG9mIHRoZSB0ZXN0LCB0ZXN0IGNhc2UsIG9yCi0gICAgZW50aXJlIHRlc3QgcHJvZ3Jh
bSBpbiBzZWNvbmRzLgotCi0qICAgVGhlIGB0aW1lc3RhbXBgIGF0dHJpYnV0ZSByZWNvcmRzIHRo
ZSBsb2NhbCBkYXRlIGFuZCB0aW1lIG9mIHRoZSB0ZXN0Ci0gICAgZXhlY3V0aW9uLgotCi0qICAg
RWFjaCBgPGZhaWx1cmU+YCBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGZhaWxlZCBn
b29nbGV0ZXN0Ci0gICAgYXNzZXJ0aW9uLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2lu
ZG93cywgTWFjLgotCi0jIyMjIEdlbmVyYXRpbmcgYW4gSlNPTiBSZXBvcnQKLQotZ29vZ2xldGVz
dCBjYW4gYWxzbyBlbWl0IGEgSlNPTiByZXBvcnQgYXMgYW4gYWx0ZXJuYXRpdmUgZm9ybWF0IHRv
IFhNTC4gVG8KLWdlbmVyYXRlIHRoZSBKU09OIHJlcG9ydCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVU
YCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0ZXN0X291dHB1dGAgZmxhZyB0byB0
aGUgc3RyaW5nIGAianNvbjpwYXRoX3RvX291dHB1dF9maWxlImAsIHdoaWNoIHdpbGwKLWNyZWF0
ZSB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uIFlvdSBjYW4gYWxzbyBqdXN0IHVzZSB0
aGUgc3RyaW5nCi1gImpzb24iYCwgaW4gd2hpY2ggY2FzZSB0aGUgb3V0cHV0IGNhbiBiZSBmb3Vu
ZCBpbiB0aGUgYHRlc3RfZGV0YWlsLmpzb25gIGZpbGUKLWluIHRoZSBjdXJyZW50IGRpcmVjdG9y
eS4KLQotVGhlIHJlcG9ydCBmb3JtYXQgY29uZm9ybXMgdG8gdGhlIGZvbGxvd2luZyBKU09OIFNj
aGVtYToKLQotYGBganNvbgotewotICAiJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3Jn
L3NjaGVtYSMiLAotICAidHlwZSI6ICJvYmplY3QiLAotICAiZGVmaW5pdGlvbnMiOiB7Ci0gICAg
IlRlc3RDYXNlIjogewotICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVz
IjogewotICAgICAgICAibmFtZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidGVz
dHMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICJmYWlsdXJlcyI6IHsgInR5cGUi
OiAiaW50ZWdlciIgfSwKLSAgICAgICAgImRpc2FibGVkIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9
LAotICAgICAgICAidGltZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidGVzdHN1
aXRlIjogewotICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKLSAgICAgICAgICAiaXRlbXMiOiB7
Ci0gICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1Rlc3RJbmZvIgotICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0gICAgIlRlc3RJbmZvIjogewotICAgICAg
InR5cGUiOiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVzIjogewotICAgICAgICAibmFtZSI6
IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAic3RhdHVzIjogewotICAgICAgICAgICJ0
eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgImVudW0iOiBbIlJVTiIsICJOT1RSVU4iXQotICAg
ICAgICB9LAotICAgICAgICAidGltZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAi
Y2xhc3NuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICJmYWlsdXJlcyI6IHsK
LSAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAgICAgICAgIml0ZW1zIjogewotICAgICAg
ICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9GYWlsdXJlIgotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgfQotICAgIH0sCi0gICAgIkZhaWx1cmUiOiB7Ci0gICAgICAidHlwZSI6ICJv
YmplY3QiLAotICAgICAgInByb3BlcnRpZXMiOiB7Ci0gICAgICAgICJmYWlsdXJlcyI6IHsgInR5
cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidHlwZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9Ci0g
ICAgICB9Ci0gICAgfQotICB9LAotICAicHJvcGVydGllcyI6IHsKLSAgICAidGVzdHMiOiB7ICJ0
eXBlIjogImludGVnZXIiIH0sCi0gICAgImZhaWx1cmVzIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9
LAotICAgICJkaXNhYmxlZCI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAiZXJyb3JzIjog
eyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICJ0aW1lc3RhbXAiOiB7Ci0gICAgICAidHlwZSI6
ICJzdHJpbmciLAotICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiCi0gICAgfSwKLSAgICAidGlt
ZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICJuYW1lIjogeyAidHlwZSI6ICJzdHJpbmci
IH0sCi0gICAgInRlc3RzdWl0ZXMiOiB7Ci0gICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAgICAi
aXRlbXMiOiB7Ci0gICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvVGVzdENhc2UiCi0gICAg
ICB9Ci0gICAgfQotICB9Ci19Ci1gYGAKLQotVGhlIHJlcG9ydCB1c2VzIHRoZSBmb3JtYXQgdGhh
dCBjb25mb3JtcyB0byB0aGUgZm9sbG93aW5nIFByb3RvMyB1c2luZyB0aGUgW0pTT04KLWVuY29k
aW5nXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3Mv
cHJvdG8zI2pzb24pOgotCi1gYGBwcm90bwotc3ludGF4ID0gInByb3RvMyI7Ci0KLXBhY2thZ2Ug
Z29vZ2xldGVzdDsKLQotaW1wb3J0ICJnb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvIjsK
LWltcG9ydCAiZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvIjsKLQotbWVzc2FnZSBVbml0
VGVzdCB7Ci0gIGludDMyIHRlc3RzID0gMTsKLSAgaW50MzIgZmFpbHVyZXMgPSAyOwotICBpbnQz
MiBkaXNhYmxlZCA9IDM7Ci0gIGludDMyIGVycm9ycyA9IDQ7Ci0gIGdvb2dsZS5wcm90b2J1Zi5U
aW1lc3RhbXAgdGltZXN0YW1wID0gNTsKLSAgZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIHRpbWUg
PSA2OwotICBzdHJpbmcgbmFtZSA9IDc7Ci0gIHJlcGVhdGVkIFRlc3RDYXNlIHRlc3RzdWl0ZXMg
PSA4OwotfQotCi1tZXNzYWdlIFRlc3RDYXNlIHsKLSAgc3RyaW5nIG5hbWUgPSAxOwotICBpbnQz
MiB0ZXN0cyA9IDI7Ci0gIGludDMyIGZhaWx1cmVzID0gMzsKLSAgaW50MzIgZGlzYWJsZWQgPSA0
OwotICBpbnQzMiBlcnJvcnMgPSA1OwotICBnb29nbGUucHJvdG9idWYuRHVyYXRpb24gdGltZSA9
IDY7Ci0gIHJlcGVhdGVkIFRlc3RJbmZvIHRlc3RzdWl0ZSA9IDc7Ci19Ci0KLW1lc3NhZ2UgVGVz
dEluZm8gewotICBzdHJpbmcgbmFtZSA9IDE7Ci0gIGVudW0gU3RhdHVzIHsKLSAgICBSVU4gPSAw
OwotICAgIE5PVFJVTiA9IDE7Ci0gIH0KLSAgU3RhdHVzIHN0YXR1cyA9IDI7Ci0gIGdvb2dsZS5w
cm90b2J1Zi5EdXJhdGlvbiB0aW1lID0gMzsKLSAgc3RyaW5nIGNsYXNzbmFtZSA9IDQ7Ci0gIG1l
c3NhZ2UgRmFpbHVyZSB7Ci0gICAgc3RyaW5nIGZhaWx1cmVzID0gMTsKLSAgICBzdHJpbmcgdHlw
ZSA9IDI7Ci0gIH0KLSAgcmVwZWF0ZWQgRmFpbHVyZSBmYWlsdXJlcyA9IDU7Ci19Ci1gYGAKLQot
Rm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIHByb2dyYW0KLQotYGBgYysrCi1URVNUKE1hdGhU
ZXN0LCBBZGRpdGlvbikgeyAuLi4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24pIHsgLi4u
IH0KLVRFU1QoTG9naWNUZXN0LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291
bGQgZ2VuZXJhdGUgdGhpcyByZXBvcnQ6Ci0KLWBgYGpzb24KLXsKLSAgInRlc3RzIjogMywKLSAg
ImZhaWx1cmVzIjogMSwKLSAgImVycm9ycyI6IDAsCi0gICJ0aW1lIjogIjAuMDM1cyIsCi0gICJ0
aW1lc3RhbXAiOiAiMjAxMS0xMC0zMVQxODo1Mjo0MloiCi0gICJuYW1lIjogIkFsbFRlc3RzIiwK
LSAgInRlc3RzdWl0ZXMiOiBbCi0gICAgewotICAgICAgIm5hbWUiOiAiTWF0aFRlc3QiLAotICAg
ICAgInRlc3RzIjogMiwKLSAgICAgICJmYWlsdXJlcyI6IDEsCi0gICAgICAiZXJyb3JzIjogMCwK
LSAgICAgICJ0aW1lIjogIjAuMDE1cyIsCi0gICAgICAidGVzdHN1aXRlIjogWwotICAgICAgICB7
Ci0gICAgICAgICAgIm5hbWUiOiAiQWRkaXRpb24iLAotICAgICAgICAgICJzdGF0dXMiOiAiUlVO
IiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwN3MiLAotICAgICAgICAgICJjbGFzc25hbWUiOiAi
IiwKLSAgICAgICAgICAiZmFpbHVyZXMiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICJtZXNzYWdlIjogIlZhbHVlIG9mOiBhZGQoMSwgMSlceDBBICBBY3R1YWw6IDNceDBBRXhwZWN0
ZWQ6IDIiLAotICAgICAgICAgICAgICAidHlwZSI6ICIiCi0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAibWVzc2FnZSI6ICJWYWx1ZSBvZjogYWRkKDEsIC0xKVx4
MEEgIEFjdHVhbDogMVx4MEFFeHBlY3RlZDogMCIsCi0gICAgICAgICAgICAgICJ0eXBlIjogIiIK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAibmFtZSI6ICJTdWJ0cmFjdGlvbiIsCi0gICAgICAgICAgInN0YXR1cyI6ICJSVU4iLAot
ICAgICAgICAgICJ0aW1lIjogIjAuMDA1cyIsCi0gICAgICAgICAgImNsYXNzbmFtZSI6ICIiCi0g
ICAgICAgIH0KLSAgICAgIF0KLSAgICB9Ci0gICAgewotICAgICAgIm5hbWUiOiAiTG9naWNUZXN0
IiwKLSAgICAgICJ0ZXN0cyI6IDEsCi0gICAgICAiZmFpbHVyZXMiOiAwLAotICAgICAgImVycm9y
cyI6IDAsCi0gICAgICAidGltZSI6ICIwLjAwNXMiLAotICAgICAgInRlc3RzdWl0ZSI6IFsKLSAg
ICAgICAgewotICAgICAgICAgICJuYW1lIjogIk5vbkNvbnRyYWRpY3Rpb24iLAotICAgICAgICAg
ICJzdGF0dXMiOiAiUlVOIiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwNXMiLAotICAgICAgICAg
ICJjbGFzc25hbWUiOiAiIgotICAgICAgICB9Ci0gICAgICBdCi0gICAgfQotICBdCi19Ci1gYGAK
LQotSU1QT1JUQU5UOiBUaGUgZXhhY3QgZm9ybWF0IG9mIHRoZSBKU09OIGRvY3VtZW50IGlzIHN1
YmplY3QgdG8gY2hhbmdlLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgQ29udHJvbGxpbmcgSG93IEZhaWx1cmVzIEFyZSBSZXBvcnRlZAotCi0jIyMjIFR1
cm5pbmcgQXNzZXJ0aW9uIEZhaWx1cmVzIGludG8gQnJlYWstUG9pbnRzCi0KLVdoZW4gcnVubmlu
ZyB0ZXN0IHByb2dyYW1zIHVuZGVyIGEgZGVidWdnZXIsIGl0J3MgdmVyeSBjb252ZW5pZW50IGlm
IHRoZQotZGVidWdnZXIgY2FuIGNhdGNoIGFuIGFzc2VydGlvbiBmYWlsdXJlIGFuZCBhdXRvbWF0
aWNhbGx5IGRyb3AgaW50byBpbnRlcmFjdGl2ZQotbW9kZS4gZ29vZ2xldGVzdCdzICpicmVhay1v
bi1mYWlsdXJlKiBtb2RlIHN1cHBvcnRzIHRoaXMgYmVoYXZpb3IuCi0KLVRvIGVuYWJsZSBpdCwg
c2V0IHRoZSBgR1RFU1RfQlJFQUtfT05fRkFJTFVSRWAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
YSB2YWx1ZQotb3RoZXIgdGhhbiBgMGAgLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUg
YC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZWAKLWNvbW1hbmQgbGluZSBmbGFnLgotCi0qKkF2YWls
YWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIERpc2FibGluZyBDYXRjaGlu
ZyBUZXN0LVRocm93biBFeGNlcHRpb25zCi0KLWdvb2dsZXRlc3QgY2FuIGJlIHVzZWQgZWl0aGVy
IHdpdGggb3Igd2l0aG91dCBleGNlcHRpb25zIGVuYWJsZWQuIElmIGEgdGVzdAotdGhyb3dzIGEg
QysrIGV4Y2VwdGlvbiBvciAob24gV2luZG93cykgYSBzdHJ1Y3R1cmVkIGV4Y2VwdGlvbiAoU0VI
KSwgYnkgZGVmYXVsdAotZ29vZ2xldGVzdCBjYXRjaGVzIGl0LCByZXBvcnRzIGl0IGFzIGEgdGVz
dCBmYWlsdXJlLCBhbmQgY29udGludWVzIHdpdGggdGhlIG5leHQKLXRlc3QgbWV0aG9kLiBUaGlz
IG1heGltaXplcyB0aGUgY292ZXJhZ2Ugb2YgYSB0ZXN0IHJ1bi4gQWxzbywgb24gV2luZG93cyBh
bgotdW5jYXVnaHQgZXhjZXB0aW9uIHdpbGwgY2F1c2UgYSBwb3AtdXAgd2luZG93LCBzbyBjYXRj
aGluZyB0aGUgZXhjZXB0aW9ucyBhbGxvd3MKLXlvdSB0byBydW4gdGhlIHRlc3RzIGF1dG9tYXRp
Y2FsbHkuCi0KLVdoZW4gZGVidWdnaW5nIHRoZSB0ZXN0IGZhaWx1cmVzLCBob3dldmVyLCB5b3Ug
bWF5IGluc3RlYWQgd2FudCB0aGUgZXhjZXB0aW9ucwotdG8gYmUgaGFuZGxlZCBieSB0aGUgZGVi
dWdnZXIsIHN1Y2ggdGhhdCB5b3UgY2FuIGV4YW1pbmUgdGhlIGNhbGwgc3RhY2sgd2hlbiBhbgot
ZXhjZXB0aW9uIGlzIHRocm93bi4gVG8gYWNoaWV2ZSB0aGF0LCBzZXQgdGhlIGBHVEVTVF9DQVRD
SF9FWENFUFRJT05TYAotZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDBgLCBvciB1c2UgdGhlIGAt
LWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnM9MGAgZmxhZyB3aGVuCi1ydW5uaW5nIHRoZSB0ZXN0cy4K
LQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9mYXEubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9kb2NzL2ZhcS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q0MmZmN2Ri
YWE4ZmFiZDBjYzY1MmZkNzA1Mjc5ODE4NGU5NWM0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2ZhcS5t
ZAorKysgL2Rldi9udWxsCkBAIC0xLDc3MCArMCwwIEBACi0jIEdvb2dsZXRlc3QgRkFRCi0KLQot
IyMgV2h5IHNob3VsZCB0ZXN0IGNhc2UgbmFtZXMgYW5kIHRlc3QgbmFtZXMgbm90IGNvbnRhaW4g
dW5kZXJzY29yZT8KLQotVW5kZXJzY29yZSAoYF9gKSBpcyBzcGVjaWFsLCBhcyBDKysgcmVzZXJ2
ZXMgdGhlIGZvbGxvd2luZyB0byBiZSB1c2VkIGJ5IHRoZQotY29tcGlsZXIgYW5kIHRoZSBzdGFu
ZGFyZCBsaWJyYXJ5OgotCi0xLiAgYW55IGlkZW50aWZpZXIgdGhhdCBzdGFydHMgd2l0aCBhbiBg
X2AgZm9sbG93ZWQgYnkgYW4gdXBwZXItY2FzZSBsZXR0ZXIsIGFuZAotMS4gIGFueSBpZGVudGlm
aWVyIHRoYXQgY29udGFpbnMgdHdvIGNvbnNlY3V0aXZlIHVuZGVyc2NvcmVzIChpLmUuIGBfX2Ap
Ci0gICAgKmFueXdoZXJlKiBpbiBpdHMgbmFtZS4KLQotVXNlciBjb2RlIGlzICpwcm9oaWJpdGVk
KiBmcm9tIHVzaW5nIHN1Y2ggaWRlbnRpZmllcnMuCi0KLU5vdyBsZXQncyBsb29rIGF0IHdoYXQg
dGhpcyBtZWFucyBmb3IgYFRFU1RgIGFuZCBgVEVTVF9GYC4KLQotQ3VycmVudGx5IGBURVNUKFRl
c3RDYXNlTmFtZSwgVGVzdE5hbWUpYCBnZW5lcmF0ZXMgYSBjbGFzcyBuYW1lZAotYFRlc3RDYXNl
TmFtZV9UZXN0TmFtZV9UZXN0YC4gV2hhdCBoYXBwZW5zIGlmIGBUZXN0Q2FzZU5hbWVgIG9yIGBU
ZXN0TmFtZWAKLWNvbnRhaW5zIGBfYD8KLQotMS4gIElmIGBUZXN0Q2FzZU5hbWVgIHN0YXJ0cyB3
aXRoIGFuIGBfYCBmb2xsb3dlZCBieSBhbiB1cHBlci1jYXNlIGxldHRlciAoc2F5LAotICAgIGBf
Rm9vYCksIHdlIGVuZCB1cCB3aXRoIGBfRm9vX1Rlc3ROYW1lX1Rlc3RgLCB3aGljaCBpcyByZXNl
cnZlZCBhbmQgdGh1cwotICAgIGludmFsaWQuCi0xLiAgSWYgYFRlc3RDYXNlTmFtZWAgZW5kcyB3
aXRoIGFuIGBfYCAoc2F5LCBgRm9vX2ApLCB3ZSBnZXQKLSAgICBgRm9vX19UZXN0TmFtZV9UZXN0
YCwgd2hpY2ggaXMgaW52YWxpZC4KLTEuICBJZiBgVGVzdE5hbWVgIHN0YXJ0cyB3aXRoIGFuIGBf
YCAoc2F5LCBgX0JhcmApLCB3ZSBnZXQKLSAgICBgVGVzdENhc2VOYW1lX19CYXJfVGVzdGAsIHdo
aWNoIGlzIGludmFsaWQuCi0xLiAgSWYgYFRlc3ROYW1lYCBlbmRzIHdpdGggYW4gYF9gIChzYXks
IGBCYXJfYCksIHdlIGdldAotICAgIGBUZXN0Q2FzZU5hbWVfQmFyX19UZXN0YCwgd2hpY2ggaXMg
aW52YWxpZC4KLQotU28gY2xlYXJseSBgVGVzdENhc2VOYW1lYCBhbmQgYFRlc3ROYW1lYCBjYW5u
b3Qgc3RhcnQgb3IgZW5kIHdpdGggYF9gIChBY3R1YWxseSwKLWBUZXN0Q2FzZU5hbWVgIGNhbiBz
dGFydCB3aXRoIGBfYCAtLSBhcyBsb25nIGFzIHRoZSBgX2AgaXNuJ3QgZm9sbG93ZWQgYnkgYW4K
LXVwcGVyLWNhc2UgbGV0dGVyLiBCdXQgdGhhdCdzIGdldHRpbmcgY29tcGxpY2F0ZWQuIFNvIGZv
ciBzaW1wbGljaXR5IHdlIGp1c3Qgc2F5Ci10aGF0IGl0IGNhbm5vdCBzdGFydCB3aXRoIGBfYC4p
LgotCi1JdCBtYXkgc2VlbSBmaW5lIGZvciBgVGVzdENhc2VOYW1lYCBhbmQgYFRlc3ROYW1lYCB0
byBjb250YWluIGBfYCBpbiB0aGUgbWlkZGxlLgotSG93ZXZlciwgY29uc2lkZXIgdGhpczoKLQot
YGBgYysrCi1URVNUKFRpbWUsIEZsaWVzX0xpa2VfQW5fQXJyb3cpIHsgLi4uIH0KLVRFU1QoVGlt
ZV9GbGllcywgTGlrZV9Bbl9BcnJvdykgeyAuLi4gfQotYGBgCi0KLU5vdywgdGhlIHR3byBgVEVT
VGBzIHdpbGwgYm90aCBnZW5lcmF0ZSB0aGUgc2FtZSBjbGFzcwotKGBUaW1lX0ZsaWVzX0xpa2Vf
QW5fQXJyb3dfVGVzdGApLiBUaGF0J3Mgbm90IGdvb2QuCi0KLVNvIGZvciBzaW1wbGljaXR5LCB3
ZSBqdXN0IGFzayB0aGUgdXNlcnMgdG8gYXZvaWQgYF9gIGluIGBUZXN0Q2FzZU5hbWVgIGFuZAot
YFRlc3ROYW1lYC4gVGhlIHJ1bGUgaXMgbW9yZSBjb25zdHJhaW5pbmcgdGhhbiBuZWNlc3Nhcnks
IGJ1dCBpdCdzIHNpbXBsZSBhbmQKLWVhc3kgdG8gcmVtZW1iZXIuIEl0IGFsc28gZ2l2ZXMgZ29v
Z2xldGVzdCBzb21lIHdpZ2dsZSByb29tIGluIGNhc2UgaXRzCi1pbXBsZW1lbnRhdGlvbiBuZWVk
cyB0byBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KLQotSWYgeW91IHZpb2xhdGUgdGhlIHJ1bGUsIHRo
ZXJlIG1heSBub3QgYmUgaW1tZWRpYXRlIGNvbnNlcXVlbmNlcywgYnV0IHlvdXIgdGVzdAotbWF5
IChqdXN0IG1heSkgYnJlYWsgd2l0aCBhIG5ldyBjb21waWxlciAob3IgYSBuZXcgdmVyc2lvbiBv
ZiB0aGUgY29tcGlsZXIgeW91Ci1hcmUgdXNpbmcpIG9yIHdpdGggYSBuZXcgdmVyc2lvbiBvZiBn
b29nbGV0ZXN0LiBUaGVyZWZvcmUgaXQncyBiZXN0IHRvIGZvbGxvdwotdGhlIHJ1bGUuCi0KLSMj
IFdoeSBkb2VzIGdvb2dsZXRlc3Qgc3VwcG9ydCBgRVhQRUNUX0VRKE5VTEwsIHB0cilgIGFuZCBg
QVNTRVJUX0VRKE5VTEwsIHB0cilgIGJ1dCBub3QgYEVYUEVDVF9ORShOVUxMLCBwdHIpYCBhbmQg
YEFTU0VSVF9ORShOVUxMLCBwdHIpYD8KLQotRmlyc3Qgb2YgYWxsIHlvdSBjYW4gdXNlIGBFWFBF
Q1RfTkUobnVsbHB0ciwgcHRyKWAgYW5kIGBBU1NFUlRfTkUobnVsbHB0ciwKLXB0cilgLiBUaGlz
IGlzIHRoZSBwcmVmZXJyZWQgc3ludGF4IGluIHRoZSBzdHlsZSBndWlkZSBiZWNhdXNlIG51bGxw
dHIgZG9lcyBub3QKLWhhdmUgdGhlIHR5cGUgcHJvYmxlbXMgdGhhdCBOVUxMIGRvZXMuIFdoaWNo
IGlzIHdoeSBOVUxMIGRvZXMgbm90IHdvcmsuCi0KLUR1ZSB0byBzb21lIHBlY3VsaWFyaXR5IG9m
IEMrKywgaXQgcmVxdWlyZXMgc29tZSBub24tdHJpdmlhbCB0ZW1wbGF0ZSBtZXRhCi1wcm9ncmFt
bWluZyB0cmlja3MgdG8gc3VwcG9ydCB1c2luZyBgTlVMTGAgYXMgYW4gYXJndW1lbnQgb2YgdGhl
IGBFWFBFQ1RfWFgoKWAKLWFuZCBgQVNTRVJUX1hYKClgIG1hY3Jvcy4gVGhlcmVmb3JlIHdlIG9u
bHkgZG8gaXQgd2hlcmUgaXQncyBtb3N0IG5lZWRlZAotKG90aGVyd2lzZSB3ZSBtYWtlIHRoZSBp
bXBsZW1lbnRhdGlvbiBvZiBnb29nbGV0ZXN0IGhhcmRlciB0byBtYWludGFpbiBhbmQgbW9yZQot
ZXJyb3ItcHJvbmUgdGhhbiBuZWNlc3NhcnkpLgotCi1UaGUgYEVYUEVDVF9FUSgpYCBtYWNybyB0
YWtlcyB0aGUgKmV4cGVjdGVkKiB2YWx1ZSBhcyBpdHMgZmlyc3QgYXJndW1lbnQgYW5kIHRoZQot
KmFjdHVhbCogdmFsdWUgYXMgdGhlIHNlY29uZC4gSXQncyByZWFzb25hYmxlIHRoYXQgc29tZW9u
ZSB3YW50cyB0byB3cml0ZQotYEVYUEVDVF9FUShOVUxMLCBzb21lX2V4cHJlc3Npb24pYCwgYW5k
IHRoaXMgaW5kZWVkIHdhcyByZXF1ZXN0ZWQgc2V2ZXJhbCB0aW1lcy4KLVRoZXJlZm9yZSB3ZSBp
bXBsZW1lbnRlZCBpdC4KLQotVGhlIG5lZWQgZm9yIGBFWFBFQ1RfTkUoTlVMTCwgcHRyKWAgaXNu
J3QgbmVhcmx5IGFzIHN0cm9uZy4gV2hlbiB0aGUgYXNzZXJ0aW9uCi1mYWlscywgeW91IGFscmVh
ZHkga25vdyB0aGF0IGBwdHJgIG11c3QgYmUgYE5VTExgLCBzbyBpdCBkb2Vzbid0IGFkZCBhbnkK
LWluZm9ybWF0aW9uIHRvIHByaW50IGBwdHJgIGluIHRoaXMgY2FzZS4gVGhhdCBtZWFucyBgRVhQ
RUNUX1RSVUUocHRyICE9IE5VTEwpYAotd29ya3MganVzdCBhcyB3ZWxsLgotCi1JZiB3ZSB3ZXJl
IHRvIHN1cHBvcnQgYEVYUEVDVF9ORShOVUxMLCBwdHIpYCwgZm9yIGNvbnNpc3RlbmN5IHdlJ2xs
IGhhdmUgdG8KLXN1cHBvcnQgYEVYUEVDVF9ORShwdHIsIE5VTEwpYCBhcyB3ZWxsLCBhcyB1bmxp
a2UgYEVYUEVDVF9FUWAsIHdlIGRvbid0IGhhdmUgYQotY29udmVudGlvbiBvbiB0aGUgb3JkZXIg
b2YgdGhlIHR3byBhcmd1bWVudHMgZm9yIGBFWFBFQ1RfTkVgLiBUaGlzIG1lYW5zIHVzaW5nCi10
aGUgdGVtcGxhdGUgbWV0YSBwcm9ncmFtbWluZyB0cmlja3MgdHdpY2UgaW4gdGhlIGltcGxlbWVu
dGF0aW9uLCBtYWtpbmcgaXQgZXZlbgotaGFyZGVyIHRvIHVuZGVyc3RhbmQgYW5kIG1haW50YWlu
LiBXZSBiZWxpZXZlIHRoZSBiZW5lZml0IGRvZXNuJ3QganVzdGlmeSB0aGUKLWNvc3QuCi0KLUZp
bmFsbHksIHdpdGggdGhlIGdyb3d0aCBvZiB0aGUgZ01vY2sgbWF0Y2hlciBsaWJyYXJ5LCB3ZSBh
cmUgZW5jb3VyYWdpbmcgcGVvcGxlCi10byB1c2UgdGhlIHVuaWZpZWQgYEVYUEVDVF9USEFUKHZh
bHVlLCBtYXRjaGVyKWAgc3ludGF4IG1vcmUgb2Z0ZW4gaW4gdGVzdHMuIE9uZQotc2lnbmlmaWNh
bnQgYWR2YW50YWdlIG9mIHRoZSBtYXRjaGVyIGFwcHJvYWNoIGlzIHRoYXQgbWF0Y2hlcnMgY2Fu
IGJlIGVhc2lseQotY29tYmluZWQgdG8gZm9ybSBuZXcgbWF0Y2hlcnMsIHdoaWxlIHRoZSBgRVhQ
RUNUX05FYCwgZXRjLCBtYWNyb3MgY2Fubm90IGJlCi1lYXNpbHkgY29tYmluZWQuIFRoZXJlZm9y
ZSB3ZSB3YW50IHRvIGludmVzdCBtb3JlIGluIHRoZSBtYXRjaGVycyB0aGFuIGluIHRoZQotYEVY
UEVDVF9YWCgpYCBtYWNyb3MuCi0KLSMjIEkgbmVlZCB0byB0ZXN0IHRoYXQgZGlmZmVyZW50IGlt
cGxlbWVudGF0aW9ucyBvZiBhbiBpbnRlcmZhY2Ugc2F0aXNmeSBzb21lIGNvbW1vbiByZXF1aXJl
bWVudHMuIFNob3VsZCBJIHVzZSB0eXBlZCB0ZXN0cyBvciB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRl
c3RzPwotCi1Gb3IgdGVzdGluZyB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBp
bnRlcmZhY2UsIGVpdGhlciB0eXBlZCB0ZXN0cyBvcgotdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
cyBjYW4gZ2V0IGl0IGRvbmUuIEl0J3MgcmVhbGx5IHVwIHRvIHlvdSB0aGUgdXNlciB0bwotZGVj
aWRlIHdoaWNoIGlzIG1vcmUgY29udmVuaWVudCBmb3IgeW91LCBkZXBlbmRpbmcgb24geW91ciBw
YXJ0aWN1bGFyIGNhc2UuIFNvbWUKLXJvdWdoIGd1aWRlbGluZXM6Ci0KLSogICBUeXBlZCB0ZXN0
cyBjYW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlmIGluc3RhbmNlcyBvZiB0aGUgZGlmZmVyZW50Ci0g
ICAgaW1wbGVtZW50YXRpb25zIGNhbiBiZSBjcmVhdGVkIHRoZSBzYW1lIHdheSwgbW9kdWxvIHRo
ZSB0eXBlLiBGb3IgZXhhbXBsZSwKLSAgICBpZiBhbGwgdGhlc2UgaW1wbGVtZW50YXRpb25zIGhh
dmUgYSBwdWJsaWMgZGVmYXVsdCBjb25zdHJ1Y3RvciAoc3VjaCB0aGF0Ci0gICAgeW91IGNhbiB3
cml0ZSBgbmV3IFR5cGVQYXJhbWApLCBvciBpZiB0aGVpciBmYWN0b3J5IGZ1bmN0aW9ucyBoYXZl
IHRoZSBzYW1lCi0gICAgZm9ybSAoZS5nLiBgQ3JlYXRlSW5zdGFuY2U8VHlwZVBhcmFtPigpYCku
Ci0qICAgVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBjYW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlm
IHlvdSBuZWVkIGRpZmZlcmVudCBjb2RlCi0gICAgcGF0dGVybnMgdG8gY3JlYXRlIGRpZmZlcmVu
dCBpbXBsZW1lbnRhdGlvbnMnIGluc3RhbmNlcywgZS5nLiBgbmV3IEZvb2AgdnMKLSAgICBgbmV3
IEJhcig1KWAuIFRvIGFjY29tbW9kYXRlIGZvciB0aGUgZGlmZmVyZW5jZXMsIHlvdSBjYW4gd3Jp
dGUgZmFjdG9yeQotICAgIGZ1bmN0aW9uIHdyYXBwZXJzIGFuZCBwYXNzIHRoZXNlIGZ1bmN0aW9u
IHBvaW50ZXJzIHRvIHRoZSB0ZXN0cyBhcyB0aGVpcgotICAgIHBhcmFtZXRlcnMuCi0qICAgV2hl
biBhIHR5cGVkIHRlc3QgZmFpbHMsIHRoZSBvdXRwdXQgaW5jbHVkZXMgdGhlIG5hbWUgb2YgdGhl
IHR5cGUsIHdoaWNoIGNhbgotICAgIGhlbHAgeW91IHF1aWNrbHkgaWRlbnRpZnkgd2hpY2ggaW1w
bGVtZW50YXRpb24gaXMgd3JvbmcuIFZhbHVlLXBhcmFtZXRlcml6ZWQKLSAgICB0ZXN0cyBjYW5u
b3QgZG8gdGhpcywgc28gdGhlcmUgeW91J2xsIGhhdmUgdG8gbG9vayBhdCB0aGUgaXRlcmF0aW9u
IG51bWJlcgotICAgIHRvIGtub3cgd2hpY2ggaW1wbGVtZW50YXRpb24gdGhlIGZhaWx1cmUgaXMg
ZnJvbSwgd2hpY2ggaXMgbGVzcyBkaXJlY3QuCi0qICAgSWYgeW91IG1ha2UgYSBtaXN0YWtlIHdy
aXRpbmcgYSB0eXBlZCB0ZXN0LCB0aGUgY29tcGlsZXIgZXJyb3JzIGNhbiBiZQotICAgIGhhcmRl
ciB0byBkaWdlc3QsIGFzIHRoZSBjb2RlIGlzIHRlbXBsYXRpemVkLgotKiAgIFdoZW4gdXNpbmcg
dHlwZWQgdGVzdHMsIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB5b3UgYXJlIHRlc3RpbmcgYWdhaW5z
dCB0aGUKLSAgICBpbnRlcmZhY2UgdHlwZSwgbm90IHRoZSBjb25jcmV0ZSB0eXBlcyAoaW4gb3Ro
ZXIgd29yZHMsIHlvdSB3YW50IHRvIG1ha2UKLSAgICBzdXJlIGBpbXBsaWNpdF9jYXN0PE15SW50
ZXJmYWNlKj4obXlfY29uY3JldGVfaW1wbClgIHdvcmtzLCBub3QganVzdCB0aGF0Ci0gICAgYG15
X2NvbmNyZXRlX2ltcGxgIHdvcmtzKS4gSXQncyBsZXNzIGxpa2VseSB0byBtYWtlIG1pc3Rha2Vz
IGluIHRoaXMgYXJlYQotICAgIHdoZW4gdXNpbmcgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4K
LQotSSBob3BlIEkgZGlkbid0IGNvbmZ1c2UgeW91IG1vcmUuIDotKSBJZiB5b3UgZG9uJ3QgbWlu
ZCwgSSdkIHN1Z2dlc3QgeW91IHRvIGdpdmUKLWJvdGggYXBwcm9hY2hlcyBhIHRyeS4gUHJhY3Rp
Y2UgaXMgYSBtdWNoIGJldHRlciB3YXkgdG8gZ3Jhc3AgdGhlIHN1YnRsZQotZGlmZmVyZW5jZXMg
YmV0d2VlbiB0aGUgdHdvIHRvb2xzLiBPbmNlIHlvdSBoYXZlIHNvbWUgY29uY3JldGUgZXhwZXJp
ZW5jZSwgeW91Ci1jYW4gbXVjaCBtb3JlIGVhc2lseSBkZWNpZGUgd2hpY2ggb25lIHRvIHVzZSB0
aGUgbmV4dCB0aW1lLgotCi0jIyBNeSBkZWF0aCB0ZXN0cyBiZWNhbWUgdmVyeSBzbG93IC0gd2hh
dCBoYXBwZW5lZD8KLQotSW4gQXVndXN0IDIwMDggd2UgaGFkIHRvIHN3aXRjaCB0aGUgZGVmYXVs
dCBkZWF0aCB0ZXN0IHN0eWxlIGZyb20gYGZhc3RgIHRvCi1gdGhyZWFkc2FmZWAsIGFzIHRoZSBm
b3JtZXIgaXMgbm8gbG9uZ2VyIHNhZmUgbm93IHRoYXQgdGhyZWFkZWQgbG9nZ2luZyBpcyB0aGUK
LWRlZmF1bHQuIFRoaXMgY2F1c2VkIG1hbnkgZGVhdGggdGVzdHMgdG8gc2xvdyBkb3duLiBVbmZv
cnR1bmF0ZWx5IHRoaXMgY2hhbmdlCi13YXMgbmVjZXNzYXJ5LgotCi1QbGVhc2UgcmVhZCBbRml4
aW5nIEZhaWxpbmcgRGVhdGggVGVzdHNdKGRlYXRoX3Rlc3Rfc3R5bGVzLm1kKSBmb3Igd2hhdCB5
b3UgY2FuCi1kby4KLQotIyMgSSBnb3Qgc29tZSBydW4tdGltZSBlcnJvcnMgYWJvdXQgaW52YWxp
ZCBwcm90byBkZXNjcmlwdG9ycyB3aGVuIHVzaW5nIGBQcm90b2NvbE1lc3NhZ2VFcXVhbHNgLiBI
ZWxwIQotCi0qKk5vdGU6KiogYFByb3RvY29sTWVzc2FnZUVxdWFsc2AgYW5kIGBQcm90b2NvbE1l
c3NhZ2VFcXVpdmAgYXJlICpkZXByZWNhdGVkKgotbm93LiBQbGVhc2UgdXNlIGBFcXVhbHNQcm90
b2AsIGV0YyBpbnN0ZWFkLgotCi1gUHJvdG9jb2xNZXNzYWdlRXF1YWxzYCBhbmQgYFByb3RvY29s
TWVzc2FnZUVxdWl2YCB3ZXJlIHJlZGVmaW5lZCByZWNlbnRseSBhbmQKLWFyZSBub3cgbGVzcyB0
b2xlcmFudCBvbiBpbnZhbGlkIHByb3RvY29sIGJ1ZmZlciBkZWZpbml0aW9ucy4gSW4gcGFydGlj
dWxhciwgaWYKLXlvdSBoYXZlIGEgYGZvby5wcm90b2AgdGhhdCBkb2Vzbid0IGZ1bGx5IHF1YWxp
ZnkgdGhlIHR5cGUgb2YgYSBwcm90b2NvbCBtZXNzYWdlCi1pdCByZWZlcmVuY2VzIChlLmcuIGBt
ZXNzYWdlPEJhcj5gIHdoZXJlIGl0IHNob3VsZCBiZSBgbWVzc2FnZTxibGFoLkJhcj5gKSwgeW91
Ci13aWxsIG5vdyBnZXQgcnVuLXRpbWUgZXJyb3JzIGxpa2U6Ci0KLWBgYAotLi4uIGRlc2NyaXB0
b3IuY2M6Li4uXSBJbnZhbGlkIHByb3RvIGRlc2NyaXB0b3IgZm9yIGZpbGUgInBhdGgvdG8vZm9v
LnByb3RvIjoKLS4uLiBkZXNjcmlwdG9yLmNjOi4uLl0gIGJsYWguTXlNZXNzYWdlLm15X2ZpZWxk
OiAiLkJhciIgaXMgbm90IGRlZmluZWQuCi1gYGAKLQotSWYgeW91IHNlZSB0aGlzLCB5b3VyIGAu
cHJvdG9gIGZpbGUgaXMgYnJva2VuIGFuZCBuZWVkcyB0byBiZSBmaXhlZCBieSBtYWtpbmcKLXRo
ZSB0eXBlcyBmdWxseSBxdWFsaWZpZWQuIFRoZSBuZXcgZGVmaW5pdGlvbiBvZiBgUHJvdG9jb2xN
ZXNzYWdlRXF1YWxzYCBhbmQKLWBQcm90b2NvbE1lc3NhZ2VFcXVpdmAganVzdCBoYXBwZW4gdG8g
cmV2ZWFsIHlvdXIgYnVnLgotCi0jIyBNeSBkZWF0aCB0ZXN0IG1vZGlmaWVzIHNvbWUgc3RhdGUs
IGJ1dCB0aGUgY2hhbmdlIHNlZW1zIGxvc3QgYWZ0ZXIgdGhlIGRlYXRoIHRlc3QgZmluaXNoZXMu
IFdoeT8KLQotRGVhdGggdGVzdHMgKGBFWFBFQ1RfREVBVEhgLCBldGMpIGFyZSBleGVjdXRlZCBp
biBhIHN1Yi1wcm9jZXNzIHMudC4gdGhlCi1leHBlY3RlZCBjcmFzaCB3b24ndCBraWxsIHRoZSB0
ZXN0IHByb2dyYW0gKGkuZS4gdGhlIHBhcmVudCBwcm9jZXNzKS4gQXMgYQotcmVzdWx0LCBhbnkg
aW4tbWVtb3J5IHNpZGUgZWZmZWN0cyB0aGV5IGluY3VyIGFyZSBvYnNlcnZhYmxlIGluIHRoZWly
IHJlc3BlY3RpdmUKLXN1Yi1wcm9jZXNzZXMsIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBwcm9jZXNz
LiBZb3UgY2FuIHRoaW5rIG9mIHRoZW0gYXMgcnVubmluZwotaW4gYSBwYXJhbGxlbCB1bml2ZXJz
ZSwgbW9yZSBvciBsZXNzLgotCi1JbiBwYXJ0aWN1bGFyLCBpZiB5b3UgdXNlIFtnTW9ja10oLi4v
Li4vZ29vZ2xlbW9jaykgYW5kIHRoZSBkZWF0aCB0ZXN0IHN0YXRlbWVudAotaW52b2tlcyBzb21l
IG1vY2sgbWV0aG9kcywgdGhlIHBhcmVudCBwcm9jZXNzIHdpbGwgdGhpbmsgdGhlIGNhbGxzIGhh
dmUgbmV2ZXIKLW9jY3VycmVkLiBUaGVyZWZvcmUsIHlvdSBtYXkgd2FudCB0byBtb3ZlIHlvdXIg
YEVYUEVDVF9DQUxMYCBzdGF0ZW1lbnRzIGluc2lkZQotdGhlIGBFWFBFQ1RfREVBVEhgIG1hY3Jv
LgotCi0jIyBFWFBFQ1RfRVEoaHRvbmwoYmxhaCksIGJsYWhfYmxhaCkgZ2VuZXJhdGVzIHdlaXJk
IGNvbXBpbGVyIGVycm9ycyBpbiBvcHQgbW9kZS4gSXMgdGhpcyBhIGdvb2dsZXRlc3QgYnVnPwot
Ci1BY3R1YWxseSwgdGhlIGJ1ZyBpcyBpbiBgaHRvbmwoKWAuCi0KLUFjY29yZGluZyB0byBgJ21h
biBodG9ubCdgLCBgaHRvbmwoKWAgaXMgYSAqZnVuY3Rpb24qLCB3aGljaCBtZWFucyBpdCdzIHZh
bGlkIHRvCi11c2UgYGh0b25sYCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIuIEhvd2V2ZXIsIGluIG9w
dCBtb2RlIGBodG9ubCgpYCBpcyBkZWZpbmVkIGFzCi1hICptYWNybyosIHdoaWNoIGJyZWFrcyB0
aGlzIHVzYWdlLgotCi1Xb3JzZSwgdGhlIG1hY3JvIGRlZmluaXRpb24gb2YgYGh0b25sKClgIHVz
ZXMgYSBgZ2NjYCBleHRlbnNpb24gYW5kIGlzICpub3QqCi1zdGFuZGFyZCBDKysuIFRoYXQgaGFj
a3kgaW1wbGVtZW50YXRpb24gaGFzIHNvbWUgYWQgaG9jIGxpbWl0YXRpb25zLiBJbgotcGFydGlj
dWxhciwgaXQgcHJldmVudHMgeW91IGZyb20gd3JpdGluZyBgRm9vPHNpemVvZihodG9ubCh4KSk+
KClgLCB3aGVyZSBgRm9vYAotaXMgYSB0ZW1wbGF0ZSB0aGF0IGhhcyBhbiBpbnRlZ3JhbCBhcmd1
bWVudC4KLQotVGhlIGltcGxlbWVudGF0aW9uIG9mIGBFWFBFQ1RfRVEoYSwgYilgIHVzZXMgYHNp
emVvZiguLi4gYSAuLi4pYCBpbnNpZGUgYQotdGVtcGxhdGUgYXJndW1lbnQsIGFuZCB0aHVzIGRv
ZXNuJ3QgY29tcGlsZSBpbiBvcHQgbW9kZSB3aGVuIGBhYCBjb250YWlucyBhIGNhbGwKLXRvIGBo
dG9ubCgpYC4gSXQgaXMgZGlmZmljdWx0IHRvIG1ha2UgYEVYUEVDVF9FUWAgYnlwYXNzIHRoZSBg
aHRvbmwoKWAgYnVnLCBhcwotdGhlIHNvbHV0aW9uIG11c3Qgd29yayB3aXRoIGRpZmZlcmVudCBj
b21waWxlcnMgb24gdmFyaW91cyBwbGF0Zm9ybXMuCi0KLWBodG9ubCgpYCBoYXMgc29tZSBvdGhl
ciBwcm9ibGVtcyBhcyBkZXNjcmliZWQgaW4gYC8vdXRpbC9lbmRpYW4vZW5kaWFuLmhgLAotd2hp
Y2ggZGVmaW5lcyBgZ2h0b25sKClgIHRvIHJlcGxhY2UgaXQuIGBnaHRvbmwoKWAgZG9lcyB0aGUg
c2FtZSB0aGluZyBgaHRvbmwoKWAKLWRvZXMsIG9ubHkgd2l0aG91dCBpdHMgcHJvYmxlbXMuIFdl
IHN1Z2dlc3QgeW91IHRvIHVzZSBgZ2h0b25sKClgIGluc3RlYWQgb2YKLWBodG9ubCgpYCwgYm90
aCBpbiB5b3VyIHRlc3RzIGFuZCBwcm9kdWN0aW9uIGNvZGUuCi0KLWAvL3V0aWwvZW5kaWFuL2Vu
ZGlhbi5oYCBhbHNvIGRlZmluZXMgYGdodG9ucygpYCwgd2hpY2ggc29sdmVzIHNpbWlsYXIgcHJv
YmxlbXMKLWluIGBodG9ucygpYC4KLQotRG9uJ3QgZm9yZ2V0IHRvIGFkZCBgLy91dGlsL2VuZGlh
bmAgdG8gdGhlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIGluIHRoZSBgQlVJTERgCi1maWxlIHdoZXJl
dmVyIGBnaHRvbmwoKWAgYW5kIGBnaHRvbnMoKWAgYXJlIHVzZWQuIFRoZSBsaWJyYXJ5IGNvbnNp
c3RzIG9mIGEKLXNpbmdsZSBoZWFkZXIgZmlsZSBhbmQgd2lsbCBub3QgYmxvYXQgeW91ciBiaW5h
cnkuCi0KLSMjIFRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgInVuZGVmaW5lZCByZWZlcmVu
Y2VzIiB0byBzb21lIHN0YXRpYyBjb25zdCBtZW1iZXIgdmFyaWFibGVzLCBidXQgSSBkaWQgZGVm
aW5lIHRoZW0gaW4gdGhlIGNsYXNzIGJvZHkuIFdoYXQncyB3cm9uZz8KLQotSWYgeW91ciBjbGFz
cyBoYXMgYSBzdGF0aWMgZGF0YSBtZW1iZXI6Ci0KLWBgYGMrKwotLy8gZm9vLmgKLWNsYXNzIEZv
byB7Ci0gIC4uLgotICBzdGF0aWMgY29uc3QgaW50IGtCYXIgPSAxMDA7Ci19OwotYGBgCi0KLVlv
dSBhbHNvIG5lZWQgdG8gZGVmaW5lIGl0ICpvdXRzaWRlKiBvZiB0aGUgY2xhc3MgYm9keSBpbiBg
Zm9vLmNjYDoKLQotYGBgYysrCi1jb25zdCBpbnQgRm9vOjprQmFyOyAgLy8gTm8gaW5pdGlhbGl6
ZXIgaGVyZS4KLWBgYAotCi1PdGhlcndpc2UgeW91ciBjb2RlIGlzICoqaW52YWxpZCBDKysqKiwg
YW5kIG1heSBicmVhayBpbiB1bmV4cGVjdGVkIHdheXMuIEluCi1wYXJ0aWN1bGFyLCB1c2luZyBp
dCBpbiBnb29nbGV0ZXN0IGNvbXBhcmlzb24gYXNzZXJ0aW9ucyAoYEVYUEVDVF9FUWAsIGV0Yykg
d2lsbAotZ2VuZXJhdGUgYW4gInVuZGVmaW5lZCByZWZlcmVuY2UiIGxpbmtlciBlcnJvci4gVGhl
IGZhY3QgdGhhdCAiaXQgdXNlZCB0byB3b3JrIgotZG9lc24ndCBtZWFuIGl0J3MgdmFsaWQuIEl0
IGp1c3QgbWVhbnMgdGhhdCB5b3Ugd2VyZSBsdWNreS4gOi0pCi0KLSMjIENhbiBJIGRlcml2ZSBh
IHRlc3QgZml4dHVyZSBmcm9tIGFub3RoZXI/Ci0KLVllcy4KLQotRWFjaCB0ZXN0IGZpeHR1cmUg
aGFzIGEgY29ycmVzcG9uZGluZyBhbmQgc2FtZSBuYW1lZCB0ZXN0IGNhc2UuIFRoaXMgbWVhbnMg
b25seQotb25lIHRlc3QgY2FzZSBjYW4gdXNlIGEgcGFydGljdWxhciBmaXh0dXJlLiBTb21ldGlt
ZXMsIGhvd2V2ZXIsIG11bHRpcGxlIHRlc3QKLWNhc2VzIG1heSB3YW50IHRvIHVzZSB0aGUgc2Ft
ZSBvciBzbGlnaHRseSBkaWZmZXJlbnQgZml4dHVyZXMuIEZvciBleGFtcGxlLCB5b3UKLW1heSB3
YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiBhIEdVSSBsaWJyYXJ5J3MgdGVzdCBjYXNlcyBk
b24ndCBsZWFrCi1pbXBvcnRhbnQgc3lzdGVtIHJlc291cmNlcyBsaWtlIGZvbnRzIGFuZCBicnVz
aGVzLgotCi1JbiBnb29nbGV0ZXN0LCB5b3Ugc2hhcmUgYSBmaXh0dXJlIGFtb25nIHRlc3QgY2Fz
ZXMgYnkgcHV0dGluZyB0aGUgc2hhcmVkIGxvZ2ljCi1pbiBhIGJhc2UgdGVzdCBmaXh0dXJlLCB0
aGVuIGRlcml2aW5nIGZyb20gdGhhdCBiYXNlIGEgc2VwYXJhdGUgZml4dHVyZSBmb3IgZWFjaAot
dGVzdCBjYXNlIHRoYXQgd2FudHMgdG8gdXNlIHRoaXMgY29tbW9uIGxvZ2ljLiBZb3UgdGhlbiB1
c2UgYFRFU1RfRigpYCB0byB3cml0ZQotdGVzdHMgdXNpbmcgZWFjaCBkZXJpdmVkIGZpeHR1cmUu
Ci0KLVR5cGljYWxseSwgeW91ciBjb2RlIGxvb2tzIGxpa2UgdGhpczoKLQotYGBgYysrCi0vLyBE
ZWZpbmVzIGEgYmFzZSB0ZXN0IGZpeHR1cmUuCi1jbGFzcyBCYXNlVGVzdCA6IHB1YmxpYyA6OnRl
c3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLi4uCi19OwotCi0vLyBEZXJpdmVzIGEgZml4
dHVyZSBGb29UZXN0IGZyb20gQmFzZVRlc3QuCi1jbGFzcyBGb29UZXN0IDogcHVibGljIEJhc2VU
ZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7Ci0gICAgQmFzZVRl
c3Q6OlNldFVwKCk7ICAvLyBTZXRzIHVwIHRoZSBiYXNlIGZpeHR1cmUgZmlyc3QuCi0gICAgLi4u
IGFkZGl0aW9uYWwgc2V0LXVwIHdvcmsgLi4uCi0gIH0KLQotICB2b2lkIFRlYXJEb3duKCkgb3Zl
cnJpZGUgewotICAgIC4uLiBjbGVhbi11cCB3b3JrIGZvciBGb29UZXN0IC4uLgotICAgIEJhc2VU
ZXN0OjpUZWFyRG93bigpOyAgLy8gUmVtZW1iZXIgdG8gdGVhciBkb3duIHRoZSBiYXNlIGZpeHR1
cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIGNsZWFuaW5nIHVwIEZvb1Rl
c3QhCi0gIH0KLQotICAuLi4gZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgZm9yIEZvb1Rlc3QgLi4u
Ci19OwotCi0vLyBUZXN0cyB0aGF0IHVzZSB0aGUgZml4dHVyZSBGb29UZXN0LgotVEVTVF9GKEZv
b1Rlc3QsIEJhcikgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIEJheikgeyAuLi4gfQotCi0uLi4g
YWRkaXRpb25hbCBmaXh0dXJlcyBkZXJpdmVkIGZyb20gQmFzZVRlc3QgLi4uCi1gYGAKLQotSWYg
bmVjZXNzYXJ5LCB5b3UgY2FuIGNvbnRpbnVlIHRvIGRlcml2ZSB0ZXN0IGZpeHR1cmVzIGZyb20g
YSBkZXJpdmVkIGZpeHR1cmUuCi1nb29nbGV0ZXN0IGhhcyBubyBsaW1pdCBvbiBob3cgZGVlcCB0
aGUgaGllcmFyY2h5IGNhbiBiZS4KLQotRm9yIGEgY29tcGxldGUgZXhhbXBsZSB1c2luZyBkZXJp
dmVkIHRlc3QgZml4dHVyZXMsIHNlZSBbZ29vZ2xldGVzdAotc2FtcGxlXShodHRwczovL2dpdGh1
Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9zYW1wbGVzL3Nh
bXBsZTVfdW5pdHRlc3QuY2MpCi0KLSMjIE15IGNvbXBpbGVyIGNvbXBsYWlucyAidm9pZCB2YWx1
ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZS4iIFdoYXQgZG9lcyB0aGlzIG1lYW4/Ci0K
LVlvdSdyZSBwcm9iYWJseSB1c2luZyBhbiBgQVNTRVJUXyooKWAgaW4gYSBmdW5jdGlvbiB0aGF0
IGRvZXNuJ3QgcmV0dXJuIGB2b2lkYC4KLWBBU1NFUlRfKigpYCBjYW4gb25seSBiZSB1c2VkIGlu
IGB2b2lkYCBmdW5jdGlvbnMsIGR1ZSB0byBleGNlcHRpb25zIGJlaW5nCi1kaXNhYmxlZCBieSBv
dXIgYnVpbGQgc3lzdGVtLiBQbGVhc2Ugc2VlIG1vcmUgZGV0YWlscwotW2hlcmVdKGFkdmFuY2Vk
Lm1kI2Fzc2VydGlvbi1wbGFjZW1lbnQpLgotCi0jIyBNeSBkZWF0aCB0ZXN0IGhhbmdzIChvciBz
ZWctZmF1bHRzKS4gSG93IGRvIEkgZml4IGl0PwotCi1JbiBnb29nbGV0ZXN0LCBkZWF0aCB0ZXN0
cyBhcmUgcnVuIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQgdGhlIHdheSB0aGV5IHdvcmsgaXMKLWRl
bGljYXRlLiBUbyB3cml0ZSBkZWF0aCB0ZXN0cyB5b3UgcmVhbGx5IG5lZWQgdG8gdW5kZXJzdGFu
ZCBob3cgdGhleSB3b3JrLgotUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSByZWFkIFt0aGlzXShh
ZHZhbmNlZC5tZCNob3ctaXQtd29ya3MpLgotCi1JbiBwYXJ0aWN1bGFyLCBkZWF0aCB0ZXN0cyBk
b24ndCBsaWtlIGhhdmluZyBtdWx0aXBsZSB0aHJlYWRzIGluIHRoZSBwYXJlbnQKLXByb2Nlc3Mu
IFNvIHRoZSBmaXJzdCB0aGluZyB5b3UgY2FuIHRyeSBpcyB0byBlbGltaW5hdGUgY3JlYXRpbmcg
dGhyZWFkcyBvdXRzaWRlCi1vZiBgRVhQRUNUX0RFQVRIKClgLiBGb3IgZXhhbXBsZSwgeW91IG1h
eSB3YW50IHRvIHVzZSBbbW9ja3NdKC4uLy4uL2dvb2dsZW1vY2spCi1vciBmYWtlIG9iamVjdHMg
aW5zdGVhZCBvZiByZWFsIG9uZXMgaW4geW91ciB0ZXN0cy4KLQotU29tZXRpbWVzIHRoaXMgaXMg
aW1wb3NzaWJsZSBhcyBzb21lIGxpYnJhcnkgeW91IG11c3QgdXNlIG1heSBiZSBjcmVhdGluZwot
dGhyZWFkcyBiZWZvcmUgYG1haW4oKWAgaXMgZXZlbiByZWFjaGVkLiBJbiB0aGlzIGNhc2UsIHlv
dSBjYW4gdHJ5IHRvIG1pbmltaXplCi10aGUgY2hhbmNlIG9mIGNvbmZsaWN0cyBieSBlaXRoZXIg
bW92aW5nIGFzIG1hbnkgYWN0aXZpdGllcyBhcyBwb3NzaWJsZSBpbnNpZGUKLWBFWFBFQ1RfREVB
VEgoKWAgKGluIHRoZSBleHRyZW1lIGNhc2UsIHlvdSB3YW50IHRvIG1vdmUgZXZlcnl0aGluZyBp
bnNpZGUpLCBvcgotbGVhdmluZyBhcyBmZXcgdGhpbmdzIGFzIHBvc3NpYmxlIGluIGl0LiBBbHNv
LCB5b3UgY2FuIHRyeSB0byBzZXQgdGhlIGRlYXRoIHRlc3QKLXN0eWxlIHRvIGAidGhyZWFkc2Fm
ZSJgLCB3aGljaCBpcyBzYWZlciBidXQgc2xvd2VyLCBhbmQgc2VlIGlmIGl0IGhlbHBzLgotCi1J
ZiB5b3UgZ28gd2l0aCB0aHJlYWQtc2FmZSBkZWF0aCB0ZXN0cywgcmVtZW1iZXIgdGhhdCB0aGV5
IHJlcnVuIHRoZSB0ZXN0Ci1wcm9ncmFtIGZyb20gdGhlIGJlZ2lubmluZyBpbiB0aGUgY2hpbGQg
cHJvY2Vzcy4gVGhlcmVmb3JlIG1ha2Ugc3VyZSB5b3VyCi1wcm9ncmFtIGNhbiBydW4gc2lkZS1i
eS1zaWRlIHdpdGggaXRzZWxmIGFuZCBpcyBkZXRlcm1pbmlzdGljLgotCi1JbiB0aGUgZW5kLCB0
aGlzIGJvaWxzIGRvd24gdG8gZ29vZCBjb25jdXJyZW50IHByb2dyYW1taW5nLiBZb3UgaGF2ZSB0
byBtYWtlCi1zdXJlIHRoYXQgdGhlcmUgaXMgbm8gcmFjZSBjb25kaXRpb25zIG9yIGRlYWQgbG9j
a3MgaW4geW91ciBwcm9ncmFtLiBObyBzaWx2ZXIKLWJ1bGxldCAtIHNvcnJ5IQotCi0jIyBTaG91
bGQgSSB1c2UgdGhlIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3Igb2YgdGhlIHRlc3QgZml4dHVyZSBv
ciBTZXRVcCgpL1RlYXJEb3duKCk/Ci0KLVRoZSBmaXJzdCB0aGluZyB0byByZW1lbWJlciBpcyB0
aGF0IGdvb2dsZXRlc3QgZG9lcyAqKm5vdCoqIHJldXNlIHRoZSBzYW1lIHRlc3QKLWZpeHR1cmUg
b2JqZWN0IGFjcm9zcyBtdWx0aXBsZSB0ZXN0cy4gRm9yIGVhY2ggYFRFU1RfRmAsIGdvb2dsZXRl
c3Qgd2lsbCBjcmVhdGUKLWEgKipmcmVzaCoqIHRlc3QgZml4dHVyZSBvYmplY3QsIGltbWVkaWF0
ZWx5IGNhbGwgYFNldFVwKClgLCBydW4gdGhlIHRlc3QgYm9keSwKLWNhbGwgYFRlYXJEb3duKClg
LCBhbmQgdGhlbiBkZWxldGUgdGhlIHRlc3QgZml4dHVyZSBvYmplY3QuCi0KLVdoZW4geW91IG5l
ZWQgdG8gd3JpdGUgcGVyLXRlc3Qgc2V0LXVwIGFuZCB0ZWFyLWRvd24gbG9naWMsIHlvdSBoYXZl
IHRoZSBjaG9pY2UKLWJldHdlZW4gdXNpbmcgdGhlIHRlc3QgZml4dHVyZSBjb25zdHJ1Y3Rvci9k
ZXN0cnVjdG9yIG9yIGBTZXRVcCgpL1RlYXJEb3duKClgLgotVGhlIGZvcm1lciBpcyB1c3VhbGx5
IHByZWZlcnJlZCwgYXMgaXQgaGFzIHRoZSBmb2xsb3dpbmcgYmVuZWZpdHM6Ci0KLSogICBCeSBp
bml0aWFsaXppbmcgYSBtZW1iZXIgdmFyaWFibGUgaW4gdGhlIGNvbnN0cnVjdG9yLCB3ZSBoYXZl
IHRoZSBvcHRpb24gdG8KLSAgICBtYWtlIGl0IGBjb25zdGAsIHdoaWNoIGhlbHBzIHByZXZlbnQg
YWNjaWRlbnRhbCBjaGFuZ2VzIHRvIGl0cyB2YWx1ZSBhbmQKLSAgICBtYWtlcyB0aGUgdGVzdHMg
bW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSogICBJbiBjYXNlIHdlIG5lZWQgdG8gc3ViY2xhc3Mg
dGhlIHRlc3QgZml4dHVyZSBjbGFzcywgdGhlIHN1YmNsYXNzJwotICAgIGNvbnN0cnVjdG9yIGlz
IGd1YXJhbnRlZWQgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcycgY29uc3RydWN0b3IgKmZpcnN0Kiwg
YW5kCi0gICAgdGhlIHN1YmNsYXNzJyBkZXN0cnVjdG9yIGlzIGd1YXJhbnRlZWQgdG8gY2FsbCB0
aGUgYmFzZSBjbGFzcycgZGVzdHJ1Y3RvcgotICAgICphZnRlcndhcmQqLiBXaXRoIGBTZXRVcCgp
L1RlYXJEb3duKClgLCBhIHN1YmNsYXNzIG1heSBtYWtlIHRoZSBtaXN0YWtlIG9mCi0gICAgZm9y
Z2V0dGluZyB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBgU2V0VXAoKS9UZWFyRG93bigpYCBvciBj
YWxsIHRoZW0gYXQgdGhlCi0gICAgd3JvbmcgdGltZS4KLQotWW91IG1heSBzdGlsbCB3YW50IHRv
IHVzZSBgU2V0VXAoKS9UZWFyRG93bigpYCBpbiB0aGUgZm9sbG93aW5nIHJhcmUgY2FzZXM6Ci0K
LSogICBJbiB0aGUgYm9keSBvZiBhIGNvbnN0cnVjdG9yIChvciBkZXN0cnVjdG9yKSwgaXQncyBu
b3QgcG9zc2libGUgdG8gdXNlIHRoZQotICAgIGBBU1NFUlRfeHhgIG1hY3Jvcy4gVGhlcmVmb3Jl
LCBpZiB0aGUgc2V0LXVwIG9wZXJhdGlvbiBjb3VsZCBjYXVzZSBhIGZhdGFsCi0gICAgdGVzdCBm
YWlsdXJlIHRoYXQgc2hvdWxkIHByZXZlbnQgdGhlIHRlc3QgZnJvbSBydW5uaW5nLCBpdCdzIG5l
Y2Vzc2FyeSB0bwotICAgIHVzZSBhIGBDSEVDS2AgbWFjcm8gb3IgdG8gdXNlIGBTZXRVcCgpYCBp
bnN0ZWFkIG9mIGEgY29uc3RydWN0b3IuCi0qICAgSWYgdGhlIHRlYXItZG93biBvcGVyYXRpb24g
Y291bGQgdGhyb3cgYW4gZXhjZXB0aW9uLCB5b3UgbXVzdCB1c2UKLSAgICBgVGVhckRvd24oKWAg
YXMgb3Bwb3NlZCB0byB0aGUgZGVzdHJ1Y3RvciwgYXMgdGhyb3dpbmcgaW4gYSBkZXN0cnVjdG9y
IGxlYWRzCi0gICAgdG8gdW5kZWZpbmVkIGJlaGF2aW9yIGFuZCB1c3VhbGx5IHdpbGwga2lsbCB5
b3VyIHByb2dyYW0gcmlnaHQgYXdheS4gTm90ZQotICAgIHRoYXQgbWFueSBzdGFuZGFyZCBsaWJy
YXJpZXMgKGxpa2UgU1RMKSBtYXkgdGhyb3cgd2hlbiBleGNlcHRpb25zIGFyZQotICAgIGVuYWJs
ZWQgaW4gdGhlIGNvbXBpbGVyLiBUaGVyZWZvcmUgeW91IHNob3VsZCBwcmVmZXIgYFRlYXJEb3du
KClgIGlmIHlvdQotICAgIHdhbnQgdG8gd3JpdGUgcG9ydGFibGUgdGVzdHMgdGhhdCB3b3JrIHdp
dGggb3Igd2l0aG91dCBleGNlcHRpb25zLgotKiAgIFRoZSBnb29nbGV0ZXN0IHRlYW0gaXMgY29u
c2lkZXJpbmcgbWFraW5nIHRoZSBhc3NlcnRpb24gbWFjcm9zIHRocm93IG9uCi0gICAgcGxhdGZv
cm1zIHdoZXJlIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgKGUuZy4gV2luZG93cywgTWFjIE9TLCBh
bmQgTGludXgKLSAgICBjbGllbnQtc2lkZSksIHdoaWNoIHdpbGwgZWxpbWluYXRlIHRoZSBuZWVk
IGZvciB0aGUgdXNlciB0byBwcm9wYWdhdGUKLSAgICBmYWlsdXJlcyBmcm9tIGEgc3Vicm91dGlu
ZSB0byBpdHMgY2FsbGVyLiBUaGVyZWZvcmUsIHlvdSBzaG91bGRuJ3QgdXNlCi0gICAgZ29vZ2xl
dGVzdCBhc3NlcnRpb25zIGluIGEgZGVzdHJ1Y3RvciBpZiB5b3VyIGNvZGUgY291bGQgcnVuIG9u
IHN1Y2ggYQotICAgIHBsYXRmb3JtLgotKiAgIEluIGEgY29uc3RydWN0b3Igb3IgZGVzdHJ1Y3Rv
ciwgeW91IGNhbm5vdCBtYWtlIGEgdmlydHVhbCBmdW5jdGlvbiBjYWxsIG9uCi0gICAgdGhpcyBv
YmplY3QuIChZb3UgY2FuIGNhbGwgYSBtZXRob2QgZGVjbGFyZWQgYXMgdmlydHVhbCwgYnV0IGl0
IHdpbGwgYmUKLSAgICBzdGF0aWNhbGx5IGJvdW5kLikgVGhlcmVmb3JlLCBpZiB5b3UgbmVlZCB0
byBjYWxsIGEgbWV0aG9kIHRoYXQgd2lsbCBiZQotICAgIG92ZXJyaWRkZW4gaW4gYSBkZXJpdmVk
IGNsYXNzLCB5b3UgaGF2ZSB0byB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAuCi0KLQotIyMgVGhl
IGNvbXBpbGVyIGNvbXBsYWlucyAibm8gbWF0Y2hpbmcgZnVuY3Rpb24gdG8gY2FsbCIgd2hlbiBJ
IHVzZSBBU1NFUlRfUFJFRCouIEhvdyBkbyBJIGZpeCBpdD8KLQotSWYgdGhlIHByZWRpY2F0ZSBm
dW5jdGlvbiB5b3UgdXNlIGluIGBBU1NFUlRfUFJFRCpgIG9yIGBFWFBFQ1RfUFJFRCpgIGlzCi1v
dmVybG9hZGVkIG9yIGEgdGVtcGxhdGUsIHRoZSBjb21waWxlciB3aWxsIGhhdmUgdHJvdWJsZSBm
aWd1cmluZyBvdXQgd2hpY2gKLW92ZXJsb2FkZWQgdmVyc2lvbiBpdCBzaG91bGQgdXNlLiBgQVNT
RVJUX1BSRURfRk9STUFUKmAgYW5kCi1gRVhQRUNUX1BSRURfRk9STUFUKmAgZG9uJ3QgaGF2ZSB0
aGlzIHByb2JsZW0uCi0KLUlmIHlvdSBzZWUgdGhpcyBlcnJvciwgeW91IG1pZ2h0IHdhbnQgdG8g
c3dpdGNoIHRvCi1gKEFTU0VSVHxFWFBFQ1QpX1BSRURfRk9STUFUKmAsIHdoaWNoIHdpbGwgYWxz
byBnaXZlIHlvdSBhIGJldHRlciBmYWlsdXJlCi1tZXNzYWdlLiBJZiwgaG93ZXZlciwgdGhhdCBp
cyBub3QgYW4gb3B0aW9uLCB5b3UgY2FuIHJlc29sdmUgdGhlIHByb2JsZW0gYnkKLWV4cGxpY2l0
bHkgdGVsbGluZyB0aGUgY29tcGlsZXIgd2hpY2ggdmVyc2lvbiB0byBwaWNrLgotCi1Gb3IgZXhh
bXBsZSwgc3VwcG9zZSB5b3UgaGF2ZQotCi1gYGBjKysKLWJvb2wgSXNQb3NpdGl2ZShpbnQgbikg
ewotICByZXR1cm4gbiA+IDA7Ci19Ci0KLWJvb2wgSXNQb3NpdGl2ZShkb3VibGUgeCkgewotICBy
ZXR1cm4geCA+IDA7Ci19Ci1gYGAKLQoteW91IHdpbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IgaWYg
eW91IHdyaXRlCi0KLWBgYGMrKwotRVhQRUNUX1BSRUQxKElzUG9zaXRpdmUsIDUpOwotYGBgCi0K
LUhvd2V2ZXIsIHRoaXMgd2lsbCB3b3JrOgotCi1gYGBjKysKLUVYUEVDVF9QUkVEMShzdGF0aWNf
Y2FzdDxib29sICgqKShpbnQpPihJc1Bvc2l0aXZlKSwgNSk7Ci1gYGAKLQotKFRoZSBzdHVmZiBp
bnNpZGUgdGhlIGFuZ2xlZCBicmFja2V0cyBmb3IgdGhlIGBzdGF0aWNfY2FzdGAgb3BlcmF0b3Ig
aXMgdGhlIHR5cGUKLW9mIHRoZSBmdW5jdGlvbiBwb2ludGVyIGZvciB0aGUgYGludGAtdmVyc2lv
biBvZiBgSXNQb3NpdGl2ZSgpYC4pCi0KLUFzIGFub3RoZXIgZXhhbXBsZSwgd2hlbiB5b3UgaGF2
ZSBhIHRlbXBsYXRlIGZ1bmN0aW9uCi0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1i
b29sIElzTmVnYXRpdmUoVCB4KSB7Ci0gIHJldHVybiB4IDwgMDsKLX0KLWBgYAotCi15b3UgY2Fu
IHVzZSBpdCBpbiBhIHByZWRpY2F0ZSBhc3NlcnRpb24gbGlrZSB0aGlzOgotCi1gYGBjKysKLUFT
U0VSVF9QUkVEMShJc05lZ2F0aXZlPGludD4sIC01KTsKLWBgYAotCi1UaGluZ3MgYXJlIG1vcmUg
aW50ZXJlc3RpbmcgaWYgeW91ciB0ZW1wbGF0ZSBoYXMgbW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXJz
LiBUaGUKLWZvbGxvd2luZyB3b24ndCBjb21waWxlOgotCi1gYGBjKysKLUFTU0VSVF9QUkVEMihH
cmVhdGVyVGhhbjxpbnQsIGludD4sIDUsIDApOwotYGBgCi0KLWFzIHRoZSBDKysgcHJlLXByb2Nl
c3NvciB0aGlua3MgeW91IGFyZSBnaXZpbmcgYEFTU0VSVF9QUkVEMmAgNCBhcmd1bWVudHMsIHdo
aWNoCi1pcyBvbmUgbW9yZSB0aGFuIGV4cGVjdGVkLiBUaGUgd29ya2Fyb3VuZCBpcyB0byB3cmFw
IHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gaW4KLXBhcmVudGhlc2VzOgotCi1gYGBjKysKLUFTU0VS
VF9QUkVEMigoR3JlYXRlclRoYW48aW50LCBpbnQ+KSwgNSwgMCk7Ci1gYGAKLQotCi0jIyBNeSBj
b21waWxlciBjb21wbGFpbnMgYWJvdXQgImlnbm9yaW5nIHJldHVybiB2YWx1ZSIgd2hlbiBJIGNh
bGwgUlVOX0FMTF9URVNUUygpLiBXaHk/Ci0KLVNvbWUgcGVvcGxlIGhhZCBiZWVuIGlnbm9yaW5n
IHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAuIFRoYXQgaXMsCi1pbnN0ZWFk
IG9mCi0KLWBgYGMrKwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotYGBgCi0KLXRoZXkgd3Jp
dGUKLQotYGBgYysrCi0gIFJVTl9BTExfVEVTVFMoKTsKLWBgYAotCi1UaGlzIGlzICoqd3Jvbmcg
YW5kIGRhbmdlcm91cyoqLiBUaGUgdGVzdGluZyBzZXJ2aWNlcyBuZWVkcyB0byBzZWUgdGhlIHJl
dHVybgotdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlm
IGEgdGVzdCBoYXMgcGFzc2VkLiBJZiB5b3VyCi1gbWFpbigpYCBmdW5jdGlvbiBpZ25vcmVzIGl0
LCB5b3VyIHRlc3Qgd2lsbCBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgZXZlbiBpZiBpdAotaGFz
IGEgZ29vZ2xldGVzdCBhc3NlcnRpb24gZmFpbHVyZS4gVmVyeSBiYWQuCi0KLVdlIGhhdmUgZGVj
aWRlZCB0byBmaXggdGhpcyAodGhhbmtzIHRvIE1pY2hhZWwgQ2hhc3RhaW4gZm9yIHRoZSBpZGVh
KS4gTm93LCB5b3VyCi1jb2RlIHdpbGwgbm8gbG9uZ2VyIGJlIGFibGUgdG8gaWdub3JlIGBSVU5f
QUxMX1RFU1RTKClgIHdoZW4gY29tcGlsZWQgd2l0aAotYGdjY2AuIElmIHlvdSBkbyBzbywgeW91
J2xsIGdldCBhIGNvbXBpbGVyIGVycm9yLgotCi1JZiB5b3Ugc2VlIHRoZSBjb21waWxlciBjb21w
bGFpbmluZyBhYm91dCB5b3UgaWdub3JpbmcgdGhlIHJldHVybiB2YWx1ZSBvZgotYFJVTl9BTExf
VEVTVFMoKWAsIHRoZSBmaXggaXMgc2ltcGxlOiBqdXN0IG1ha2Ugc3VyZSBpdHMgdmFsdWUgaXMg
dXNlZCBhcyB0aGUKLXJldHVybiB2YWx1ZSBvZiBgbWFpbigpYC4KLQotQnV0IGhvdyBjb3VsZCB3
ZSBpbnRyb2R1Y2UgYSBjaGFuZ2UgdGhhdCBicmVha3MgZXhpc3RpbmcgdGVzdHM/IFdlbGwsIGlu
IHRoaXMKLWNhc2UsIHRoZSBjb2RlIHdhcyBhbHJlYWR5IGJyb2tlbiBpbiB0aGUgZmlyc3QgcGxh
Y2UsIHNvIHdlIGRpZG4ndCBicmVhayBpdC4gOi0pCi0KLSMjIE15IGNvbXBpbGVyIGNvbXBsYWlu
cyB0aGF0IGEgY29uc3RydWN0b3IgKG9yIGRlc3RydWN0b3IpIGNhbm5vdCByZXR1cm4gYSB2YWx1
ZS4gV2hhdCdzIGdvaW5nIG9uPwotCi1EdWUgdG8gYSBwZWN1bGlhcml0eSBvZiBDKyssIGluIG9y
ZGVyIHRvIHN1cHBvcnQgdGhlIHN5bnRheCBmb3Igc3RyZWFtaW5nCi1tZXNzYWdlcyB0byBhbiBg
QVNTRVJUXypgLCBlLmcuCi0KLWBgYGMrKwotICBBU1NFUlRfRVEoMSwgRm9vKCkpIDw8ICJibGFo
IGJsYWgiIDw8IGZvbzsKLWBgYAotCi13ZSBoYWQgdG8gZ2l2ZSB1cCB1c2luZyBgQVNTRVJUKmAg
YW5kIGBGQUlMKmAgKGJ1dCBub3QgYEVYUEVDVCpgIGFuZAotYEFERF9GQUlMVVJFKmApIGluIGNv
bnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIG1vdmUgdGhl
Ci1jb250ZW50IG9mIHlvdXIgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciB0byBhIHByaXZhdGUgdm9p
ZCBtZW1iZXIgZnVuY3Rpb24sIG9yCi1zd2l0Y2ggdG8gYEVYUEVDVF8qKClgIGlmIHRoYXQgd29y
a3MuIFRoaXMKLVtzZWN0aW9uXShhZHZhbmNlZC5tZCNhc3NlcnRpb24tcGxhY2VtZW50KSBpbiB0
aGUgdXNlcidzIGd1aWRlIGV4cGxhaW5zIGl0LgotCi0jIyBNeSBTZXRVcCgpIGZ1bmN0aW9uIGlz
IG5vdCBjYWxsZWQuIFdoeT8KLQotQysrIGlzIGNhc2Utc2Vuc2l0aXZlLiBEaWQgeW91IHNwZWxs
IGl0IGFzIGBTZXR1cCgpYD8KLQotU2ltaWxhcmx5LCBzb21ldGltZXMgcGVvcGxlIHNwZWxsIGBT
ZXRVcFRlc3RDYXNlKClgIGFzIGBTZXR1cFRlc3RDYXNlKClgIGFuZAotd29uZGVyIHdoeSBpdCdz
IG5ldmVyIGNhbGxlZC4KLQotIyMgSG93IGRvIEkganVtcCB0byB0aGUgbGluZSBvZiBhIGZhaWx1
cmUgaW4gRW1hY3MgZGlyZWN0bHk/Ci0KLWdvb2dsZXRlc3QncyBmYWlsdXJlIG1lc3NhZ2UgZm9y
bWF0IGlzIHVuZGVyc3Rvb2QgYnkgRW1hY3MgYW5kIG1hbnkgb3RoZXIgSURFcywKLWxpa2UgYWNt
ZSBhbmQgWENvZGUuIElmIGEgZ29vZ2xldGVzdCBtZXNzYWdlIGlzIGluIGEgY29tcGlsYXRpb24g
YnVmZmVyIGluCi1FbWFjcywgdGhlbiBpdCdzIGNsaWNrYWJsZS4KLQotCi0jIyBJIGhhdmUgc2V2
ZXJhbCB0ZXN0IGNhc2VzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBsb2dpYywg
ZG8gSSBoYXZlIHRvIGRlZmluZSBhIG5ldyB0ZXN0IGZpeHR1cmUgY2xhc3MgZm9yIGVhY2ggb2Yg
dGhlbT8gVGhpcyBzZWVtcyBwcmV0dHkgdGVkaW91cy4KLQotWW91IGRvbid0IGhhdmUgdG8uIElu
c3RlYWQgb2YKLQotYGBgYysrCi1jbGFzcyBGb29UZXN0IDogcHVibGljIEJhc2VUZXN0IHt9Owot
Ci1URVNUX0YoRm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4u
LiB9Ci0KLWNsYXNzIEJhclRlc3QgOiBwdWJsaWMgQmFzZVRlc3Qge307Ci0KLVRFU1RfRihCYXJU
ZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0LCBEZWYpIHsgLi4uIH0KLWBgYAotCi15
b3UgY2FuIHNpbXBseSBgdHlwZWRlZmAgdGhlIHRlc3QgZml4dHVyZXM6Ci0KLWBgYGMrKwotdHlw
ZWRlZiBCYXNlVGVzdCBGb29UZXN0OwotCi1URVNUX0YoRm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1U
RVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLXR5cGVkZWYgQmFzZVRlc3QgQmFyVGVzdDsK
LQotVEVTVF9GKEJhclRlc3QsIEFiYykgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIERlZikgeyAu
Li4gfQotYGBgCi0KLSMjIGdvb2dsZXRlc3Qgb3V0cHV0IGlzIGJ1cmllZCBpbiBhIHdob2xlIGJ1
bmNoIG9mIExPRyBtZXNzYWdlcy4gV2hhdCBkbyBJIGRvPwotCi1UaGUgZ29vZ2xldGVzdCBvdXRw
dXQgaXMgbWVhbnQgdG8gYmUgYSBjb25jaXNlIGFuZCBodW1hbi1mcmllbmRseSByZXBvcnQuIElm
Ci15b3VyIHRlc3QgZ2VuZXJhdGVzIHRleHR1YWwgb3V0cHV0IGl0c2VsZiwgaXQgd2lsbCBtaXgg
d2l0aCB0aGUgZ29vZ2xldGVzdAotb3V0cHV0LCBtYWtpbmcgaXQgaGFyZCB0byByZWFkLiBIb3dl
dmVyLCB0aGVyZSBpcyBhbiBlYXN5IHNvbHV0aW9uIHRvIHRoaXMKLXByb2JsZW0uCi0KLVNpbmNl
IGBMT0dgIG1lc3NhZ2VzIGdvIHRvIHN0ZGVyciwgd2UgZGVjaWRlZCB0byBsZXQgZ29vZ2xldGVz
dCBvdXRwdXQgZ28gdG8KLXN0ZG91dC4gVGhpcyB3YXksIHlvdSBjYW4gZWFzaWx5IHNlcGFyYXRl
IHRoZSB0d28gdXNpbmcgcmVkaXJlY3Rpb24uIEZvcgotZXhhbXBsZToKLQotYGBgc2hlbGwKLSQg
Li9teV90ZXN0ID4gZ3Rlc3Rfb3V0cHV0LnR4dAotYGBgCi0KLQotIyMgV2h5IHNob3VsZCBJIHBy
ZWZlciB0ZXN0IGZpeHR1cmVzIG92ZXIgZ2xvYmFsIHZhcmlhYmxlcz8KLQotVGhlcmUgYXJlIHNl
dmVyYWwgZ29vZCByZWFzb25zOgotCi0xLiAgSXQncyBsaWtlbHkgeW91ciB0ZXN0IG5lZWRzIHRv
IGNoYW5nZSB0aGUgc3RhdGVzIG9mIGl0cyBnbG9iYWwgdmFyaWFibGVzLgotICAgIFRoaXMgbWFr
ZXMgaXQgZGlmZmljdWx0IHRvIGtlZXAgc2lkZSBlZmZlY3RzIGZyb20gZXNjYXBpbmcgb25lIHRl
c3QgYW5kCi0gICAgY29udGFtaW5hdGluZyBvdGhlcnMsIG1ha2luZyBkZWJ1Z2dpbmcgZGlmZmlj
dWx0LiBCeSB1c2luZyBmaXh0dXJlcywgZWFjaAotICAgIHRlc3QgaGFzIGEgZnJlc2ggc2V0IG9m
IHZhcmlhYmxlcyB0aGF0J3MgZGlmZmVyZW50IChidXQgd2l0aCB0aGUgc2FtZQotICAgIG5hbWVz
KS4gVGh1cywgdGVzdHMgYXJlIGtlcHQgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KLTEuICBH
bG9iYWwgdmFyaWFibGVzIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UuCi0xLiAgVGVzdCBm
aXh0dXJlcyBjYW4gYmUgcmV1c2VkIHZpYSBzdWJjbGFzc2luZywgd2hpY2ggY2Fubm90IGJlIGRv
bmUgZWFzaWx5Ci0gICAgd2l0aCBnbG9iYWwgdmFyaWFibGVzLiBUaGlzIGlzIHVzZWZ1bCBpZiBt
YW55IHRlc3QgY2FzZXMgaGF2ZSBzb21ldGhpbmcgaW4KLSAgICBjb21tb24uCi0KLQotICAgICMj
IFdoYXQgY2FuIHRoZSBzdGF0ZW1lbnQgYXJndW1lbnQgaW4gQVNTRVJUX0RFQVRIKCkgYmU/Ci0K
LWBBU1NFUlRfREVBVEgoKnN0YXRlbWVudCosICpyZWdleCopYCAob3IgYW55IGRlYXRoIGFzc2Vy
dGlvbiBtYWNybykgY2FuIGJlIHVzZWQKLXdoZXJldmVyIGAqc3RhdGVtZW50KmAgaXMgdmFsaWQu
IFNvIGJhc2ljYWxseSBgKnN0YXRlbWVudCpgIGNhbiBiZSBhbnkgQysrCi1zdGF0ZW1lbnQgdGhh
dCBtYWtlcyBzZW5zZSBpbiB0aGUgY3VycmVudCBjb250ZXh0LiBJbiBwYXJ0aWN1bGFyLCBpdCBj
YW4KLXJlZmVyZW5jZSBnbG9iYWwgYW5kL29yIGxvY2FsIHZhcmlhYmxlcywgYW5kIGNhbiBiZToK
LQotKiAgIGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwgKG9mdGVuIHRoZSBjYXNlKSwKLSogICBhIGNv
bXBsZXggZXhwcmVzc2lvbiwgb3IKLSogICBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLQotU29tZSBl
eGFtcGxlcyBhcmUgc2hvd24gaGVyZToKLQotYGBgYysrCi0vLyBBIGRlYXRoIHRlc3QgY2FuIGJl
IGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwuCi1URVNUKE15RGVhdGhUZXN0LCBGdW5jdGlvbkNhbGwp
IHsKLSAgQVNTRVJUX0RFQVRIKFh5eig1KSwgIlh5eiBmYWlsZWQiKTsKLX0KLQotLy8gT3IgYSBj
b21wbGV4IGV4cHJlc3Npb24gdGhhdCByZWZlcmVuY2VzIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25z
LgotVEVTVChNeURlYXRoVGVzdCwgQ29tcGxleEV4cHJlc3Npb24pIHsKLSAgY29uc3QgYm9vbCBj
ID0gQ29uZGl0aW9uKCk7Ci0gIEFTU0VSVF9ERUFUSCgoYyA/IEZ1bmMxKDApIDogb2JqZWN0Mi5N
ZXRob2QoInRlc3QiKSksCi0gICAgICAgICAgICAgICAiKEZ1bmMxfE1ldGhvZCkgZmFpbGVkIik7
Ci19Ci0KLS8vIERlYXRoIGFzc2VydGlvbnMgY2FuIGJlIHVzZWQgYW55IHdoZXJlIGluIGEgZnVu
Y3Rpb24uICBJbgotLy8gcGFydGljdWxhciwgdGhleSBjYW4gYmUgaW5zaWRlIGEgbG9vcC4KLVRF
U1QoTXlEZWF0aFRlc3QsIEluc2lkZUxvb3ApIHsKLSAgLy8gVmVyaWZpZXMgdGhhdCBGb28oMCks
IEZvbygxKSwgLi4uLCBhbmQgRm9vKDQpIGFsbCBkaWUuCi0gIGZvciAoaW50IGkgPSAwOyBpIDwg
NTsgaSsrKSB7Ci0gICAgRVhQRUNUX0RFQVRIX00oRm9vKGkpLCAiRm9vIGhhcyBcXGQrIGVycm9y
cyIsCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpNZXNzYWdlKCkgPDwgIndoZXJlIGkg
aXMgIiA8PCBpKTsKLSAgfQotfQotCi0vLyBBIGRlYXRoIGFzc2VydGlvbiBjYW4gY29udGFpbiBh
IGNvbXBvdW5kIHN0YXRlbWVudC4KLVRFU1QoTXlEZWF0aFRlc3QsIENvbXBvdW5kU3RhdGVtZW50
KSB7Ci0gIC8vIFZlcmlmaWVzIHRoYXQgYXQgbGVhc2Ugb25lIG9mIEJhcigwKSwgQmFyKDEpLCAu
Li4sIGFuZAotICAvLyBCYXIoNCkgZGllcy4KLSAgQVNTRVJUX0RFQVRIKHsKLSAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IDU7IGkrKykgewotICAgICAgQmFyKGkpOwotICAgIH0KLSAgfSwKLSAgIkJh
ciBoYXMgXFxkKyBlcnJvcnMiKTsKLX0KLWBgYAotCi1ndGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2Mg
Y29udGFpbnMgbW9yZSBleGFtcGxlcyBpZiB5b3UgYXJlIGludGVyZXN0ZWQuCi0KLSMjIEkgaGF2
ZSBhIGZpeHR1cmUgY2xhc3MgYEZvb1Rlc3RgLCBidXQgYFRFU1RfRihGb29UZXN0LCBCYXIpYCBn
aXZlcyBtZSBlcnJvciBgYCJubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0byBgRm9vVGVz
dDo6Rm9vVGVzdCgpJyJgYC4gV2h5PwotCi1Hb29nbGV0ZXN0IG5lZWRzIHRvIGJlIGFibGUgdG8g
Y3JlYXRlIG9iamVjdHMgb2YgeW91ciB0ZXN0IGZpeHR1cmUgY2xhc3MsIHNvIGl0Ci1tdXN0IGhh
dmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBOb3JtYWxseSB0aGUgY29tcGlsZXIgd2lsbCBkZWZp
bmUgb25lIGZvciB5b3UuCi1Ib3dldmVyLCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgeW91IGhhdmUg
dG8gZGVmaW5lIHlvdXIgb3duOgotCi0qICAgSWYgeW91IGV4cGxpY2l0bHkgZGVjbGFyZSBhIG5v
bi1kZWZhdWx0IGNvbnN0cnVjdG9yIGZvciBjbGFzcyBgRm9vVGVzdGAKLSAgICAoYERJU0FMTE9X
X0VWSUxfQ09OU1RSVUNUT1JTKClgIGRvZXMgdGhpcyksIHRoZW4geW91IG5lZWQgdG8gZGVmaW5l
IGEKLSAgICBkZWZhdWx0IGNvbnN0cnVjdG9yLCBldmVuIGlmIGl0IHdvdWxkIGJlIGVtcHR5Lgot
KiAgIElmIGBGb29UZXN0YCBoYXMgYSBjb25zdCBub24tc3RhdGljIGRhdGEgbWVtYmVyLCB0aGVu
IHlvdSBoYXZlIHRvIGRlZmluZSB0aGUKLSAgICBkZWZhdWx0IGNvbnN0cnVjdG9yICphbmQqIGlu
aXRpYWxpemUgdGhlIGNvbnN0IG1lbWJlciBpbiB0aGUgaW5pdGlhbGl6ZXIKLSAgICBsaXN0IG9m
IHRoZSBjb25zdHJ1Y3Rvci4gKEVhcmx5IHZlcnNpb25zIG9mIGBnY2NgIGRvZXNuJ3QgZm9yY2Ug
eW91IHRvCi0gICAgaW5pdGlhbGl6ZSB0aGUgY29uc3QgbWVtYmVyLiBJdCdzIGEgYnVnIHRoYXQg
aGFzIGJlZW4gZml4ZWQgaW4gYGdjYyA0YC4pCi0KLSMjIFdoeSBkb2VzIEFTU0VSVF9ERUFUSCBj
b21wbGFpbiBhYm91dCBwcmV2aW91cyB0aHJlYWRzIHRoYXQgd2VyZSBhbHJlYWR5IGpvaW5lZD8K
LQotV2l0aCB0aGUgTGludXggcHRocmVhZCBsaWJyYXJ5LCB0aGVyZSBpcyBubyB0dXJuaW5nIGJh
Y2sgb25jZSB5b3UgY3Jvc3MgdGhlIGxpbmUKLWZyb20gc2luZ2xlIHRocmVhZCB0byBtdWx0aXBs
ZSB0aHJlYWRzLiBUaGUgZmlyc3QgdGltZSB5b3UgY3JlYXRlIGEgdGhyZWFkLCBhCi1tYW5hZ2Vy
IHRocmVhZCBpcyBjcmVhdGVkIGluIGFkZGl0aW9uLCBzbyB5b3UgZ2V0IDMsIG5vdCAyLCB0aHJl
YWRzLiBMYXRlciB3aGVuCi10aGUgdGhyZWFkIHlvdSBjcmVhdGUgam9pbnMgdGhlIG1haW4gdGhy
ZWFkLCB0aGUgdGhyZWFkIGNvdW50IGRlY3JlbWVudHMgYnkgMSwKLWJ1dCB0aGUgbWFuYWdlciB0
aHJlYWQgd2lsbCBuZXZlciBiZSBraWxsZWQsIHNvIHlvdSBzdGlsbCBoYXZlIDIgdGhyZWFkcywg
d2hpY2gKLW1lYW5zIHlvdSBjYW5ub3Qgc2FmZWx5IHJ1biBhIGRlYXRoIHRlc3QuCi0KLVRoZSBu
ZXcgTlBUTCB0aHJlYWQgbGlicmFyeSBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbSwg
YXMgaXQgZG9lc24ndAotY3JlYXRlIGEgbWFuYWdlciB0aHJlYWQuIEhvd2V2ZXIsIGlmIHlvdSBk
b24ndCBjb250cm9sIHdoaWNoIG1hY2hpbmUgeW91ciB0ZXN0Ci1ydW5zIG9uLCB5b3Ugc2hvdWxk
bid0IGRlcGVuZCBvbiB0aGlzLgotCi0jIyBXaHkgZG9lcyBnb29nbGV0ZXN0IHJlcXVpcmUgdGhl
IGVudGlyZSB0ZXN0IGNhc2UsIGluc3RlYWQgb2YgaW5kaXZpZHVhbCB0ZXN0cywgdG8gYmUgbmFt
ZWQgKkRlYXRoVGVzdCB3aGVuIGl0IHVzZXMgQVNTRVJUX0RFQVRIPwotCi1nb29nbGV0ZXN0IGRv
ZXMgbm90IGludGVybGVhdmUgdGVzdHMgZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNlcy4gVGhhdCBp
cywgaXQgcnVucwotYWxsIHRlc3RzIGluIG9uZSB0ZXN0IGNhc2UgZmlyc3QsIGFuZCB0aGVuIHJ1
bnMgYWxsIHRlc3RzIGluIHRoZSBuZXh0IHRlc3QgY2FzZSwKLWFuZCBzbyBvbi4gZ29vZ2xldGVz
dCBkb2VzIHRoaXMgYmVjYXVzZSBpdCBuZWVkcyB0byBzZXQgdXAgYSB0ZXN0IGNhc2UgYmVmb3Jl
Ci10aGUgZmlyc3QgdGVzdCBpbiBpdCBpcyBydW4sIGFuZCB0ZWFyIGl0IGRvd24gYWZ0ZXJ3b3Jk
cy4gU3BsaXR0aW5nIHVwIHRoZSB0ZXN0Ci1jYXNlIHdvdWxkIHJlcXVpcmUgbXVsdGlwbGUgc2V0
LXVwIGFuZCB0ZWFyLWRvd24gcHJvY2Vzc2VzLCB3aGljaCBpcyBpbmVmZmljaWVudAotYW5kIG1h
a2VzIHRoZSBzZW1hbnRpY3MgdW5jbGVhbi4KLQotSWYgd2Ugd2VyZSB0byBkZXRlcm1pbmUgdGhl
IG9yZGVyIG9mIHRlc3RzIGJhc2VkIG9uIHRlc3QgbmFtZSBpbnN0ZWFkIG9mIHRlc3QKLWNhc2Ug
bmFtZSwgdGhlbiB3ZSB3b3VsZCBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoZSBmb2xsb3dpbmcgc2l0
dWF0aW9uOgotCi1gYGBjKysKLVRFU1RfRihGb29UZXN0LCBBYmNEZWF0aFRlc3QpIHsgLi4uIH0K
LVRFU1RfRihGb29UZXN0LCBVdncpIHsgLi4uIH0KLQotVEVTVF9GKEJhclRlc3QsIERlZkRlYXRo
VGVzdCkgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIFh5eikgeyAuLi4gfQotYGBgCi0KLVNpbmNl
IGBGb29UZXN0LkFiY0RlYXRoVGVzdGAgbmVlZHMgdG8gcnVuIGJlZm9yZSBgQmFyVGVzdC5YeXpg
LCBhbmQgd2UgZG9uJ3QKLWludGVybGVhdmUgdGVzdHMgZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNl
cywgd2UgbmVlZCB0byBydW4gYWxsIHRlc3RzIGluIHRoZQotYEZvb1Rlc3RgIGNhc2UgYmVmb3Jl
IHJ1bm5pbmcgYW55IHRlc3QgaW4gdGhlIGBCYXJUZXN0YCBjYXNlLiBUaGlzIGNvbnRyYWRpY3Rz
Ci13aXRoIHRoZSByZXF1aXJlbWVudCB0byBydW4gYEJhclRlc3QuRGVmRGVhdGhUZXN0YCBiZWZv
cmUgYEZvb1Rlc3QuVXZ3YC4KLQotIyMgQnV0IEkgZG9uJ3QgbGlrZSBjYWxsaW5nIG15IGVudGly
ZSB0ZXN0IGNhc2UgXCpEZWF0aFRlc3Qgd2hlbiBpdCBjb250YWlucyBib3RoIGRlYXRoIHRlc3Rz
IGFuZCBub24tZGVhdGggdGVzdHMuIFdoYXQgZG8gSSBkbz8KLQotWW91IGRvbid0IGhhdmUgdG8s
IGJ1dCBpZiB5b3UgbGlrZSwgeW91IG1heSBzcGxpdCB1cCB0aGUgdGVzdCBjYXNlIGludG8KLWBG
b29UZXN0YCBhbmQgYEZvb0RlYXRoVGVzdGAsIHdoZXJlIHRoZSBuYW1lcyBtYWtlIGl0IGNsZWFy
IHRoYXQgdGhleSBhcmUKLXJlbGF0ZWQ6Ci0KLWBgYGMrKwotY2xhc3MgRm9vVGVzdCA6IHB1Ymxp
YyA6OnRlc3Rpbmc6OlRlc3QgeyAuLi4gfTsKLQotVEVTVF9GKEZvb1Rlc3QsIEFiYykgeyAuLi4g
fQotVEVTVF9GKEZvb1Rlc3QsIERlZikgeyAuLi4gfQotCi11c2luZyBGb29EZWF0aFRlc3QgPSBG
b29UZXN0OwotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBVdncpIHsgLi4uIEVYUEVDVF9ERUFUSCgu
Li4pIC4uLiB9Ci1URVNUX0YoRm9vRGVhdGhUZXN0LCBYeXopIHsgLi4uIEFTU0VSVF9ERUFUSCgu
Li4pIC4uLiB9Ci1gYGAKLQotIyMgZ29vZ2xldGVzdCBwcmludHMgdGhlIExPRyBtZXNzYWdlcyBp
biBhIGRlYXRoIHRlc3QncyBjaGlsZCBwcm9jZXNzIG9ubHkgd2hlbiB0aGUgdGVzdCBmYWlscy4g
SG93IGNhbiBJIHNlZSB0aGUgTE9HIG1lc3NhZ2VzIHdoZW4gdGhlIGRlYXRoIHRlc3Qgc3VjY2Vl
ZHM/Ci0KLVByaW50aW5nIHRoZSBMT0cgbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHRoZSBzdGF0ZW1l
bnQgaW5zaWRlIGBFWFBFQ1RfREVBVEgoKWAKLW1ha2VzIGl0IGhhcmRlciB0byBzZWFyY2ggZm9y
IHJlYWwgcHJvYmxlbXMgaW4gdGhlIHBhcmVudCdzIGxvZy4gVGhlcmVmb3JlLAotZ29vZ2xldGVz
dCBvbmx5IHByaW50cyB0aGVtIHdoZW4gdGhlIGRlYXRoIHRlc3QgaGFzIGZhaWxlZC4KLQotSWYg
eW91IHJlYWxseSBuZWVkIHRvIHNlZSBzdWNoIExPRyBtZXNzYWdlcywgYSB3b3JrYXJvdW5kIGlz
IHRvIHRlbXBvcmFyaWx5Ci1icmVhayB0aGUgZGVhdGggdGVzdCAoZS5nLiBieSBjaGFuZ2luZyB0
aGUgcmVnZXggcGF0dGVybiBpdCBpcyBleHBlY3RlZCB0bwotbWF0Y2gpLiBBZG1pdHRlZGx5LCB0
aGlzIGlzIGEgaGFjay4gV2UnbGwgY29uc2lkZXIgYSBtb3JlIHBlcm1hbmVudCBzb2x1dGlvbgot
YWZ0ZXIgdGhlIGZvcmstYW5kLWV4ZWMtc3R5bGUgZGVhdGggdGVzdHMgYXJlIGltcGxlbWVudGVk
LgotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICJubyBtYXRjaCBmb3IgJ29wZXJh
dG9yPDwnIiB3aGVuIEkgdXNlIGFuIGFzc2VydGlvbi4gV2hhdCBnaXZlcz8KLQotSWYgeW91IHVz
ZSBhIHVzZXItZGVmaW5lZCB0eXBlIGBGb29UeXBlYCBpbiBhbiBhc3NlcnRpb24sIHlvdSBtdXN0
IG1ha2Ugc3VyZQotdGhlcmUgaXMgYW4gYHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mLCBjb25zdCBGb29UeXBlJilgIGZ1bmN0aW9uCi1kZWZpbmVkIHN1Y2ggdGhhdCB3ZSBj
YW4gcHJpbnQgYSB2YWx1ZSBvZiBgRm9vVHlwZWAuCi0KLUluIGFkZGl0aW9uLCBpZiBgRm9vVHlw
ZWAgaXMgZGVjbGFyZWQgaW4gYSBuYW1lIHNwYWNlLCB0aGUgYDw8YCBvcGVyYXRvciBhbHNvCi1u
ZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSAqc2FtZSogbmFtZSBzcGFjZS4gU2VlIGdvL3RvdHcv
NDkgZm9yIGRldGFpbHMuCi0KLSMjIEhvdyBkbyBJIHN1cHByZXNzIHRoZSBtZW1vcnkgbGVhayBt
ZXNzYWdlcyBvbiBXaW5kb3dzPwotCi1TaW5jZSB0aGUgc3RhdGljYWxseSBpbml0aWFsaXplZCBn
b29nbGV0ZXN0IHNpbmdsZXRvbiByZXF1aXJlcyBhbGxvY2F0aW9ucyBvbgotdGhlIGhlYXAsIHRo
ZSBWaXN1YWwgQysrIG1lbW9yeSBsZWFrIGRldGVjdG9yIHdpbGwgcmVwb3J0IG1lbW9yeSBsZWFr
cyBhdCB0aGUKLWVuZCBvZiB0aGUgcHJvZ3JhbSBydW4uIFRoZSBlYXNpZXN0IHdheSB0byBhdm9p
ZCB0aGlzIGlzIHRvIHVzZSB0aGUKLWBfQ3J0TWVtQ2hlY2twb2ludGAgYW5kIGBfQ3J0TWVtRHVt
cEFsbE9iamVjdHNTaW5jZWAgY2FsbHMgdG8gbm90IHJlcG9ydCBhbnkKLXN0YXRpY2FsbHkgaW5p
dGlhbGl6ZWQgaGVhcCBvYmplY3RzLiBTZWUgTVNETiBmb3IgbW9yZSBkZXRhaWxzIGFuZCBhZGRp
dGlvbmFsCi1oZWFwIGNoZWNrL2RlYnVnIHJvdXRpbmVzLgotCi0KLSMjIEhvdyBjYW4gbXkgY29k
ZSBkZXRlY3QgaWYgaXQgaXMgcnVubmluZyBpbiBhIHRlc3Q/Ci0KLUlmIHlvdSB3cml0ZSBjb2Rl
IHRoYXQgc25pZmZzIHdoZXRoZXIgaXQncyBydW5uaW5nIGluIGEgdGVzdCBhbmQgZG9lcyBkaWZm
ZXJlbnQKLXRoaW5ncyBhY2NvcmRpbmdseSwgeW91IGFyZSBsZWFraW5nIHRlc3Qtb25seSBsb2dp
YyBpbnRvIHByb2R1Y3Rpb24gY29kZSBhbmQKLXRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvIGVuc3Vy
ZSB0aGF0IHRoZSB0ZXN0LW9ubHkgY29kZSBwYXRocyBhcmVuJ3QgcnVuIGJ5Ci1taXN0YWtlIGlu
IHByb2R1Y3Rpb24uIFN1Y2ggY2xldmVybmVzcyBhbHNvIGxlYWRzIHRvCi1bSGVpc2VuYnVnc10o
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSGVpc2VuYnVnKS4gVGhlcmVmb3JlIHdlIHN0
cm9uZ2x5Ci1hZHZpc2UgYWdhaW5zdCB0aGUgcHJhY3RpY2UsIGFuZCBnb29nbGV0ZXN0IGRvZXNu
J3QgcHJvdmlkZSBhIHdheSB0byBkbyBpdC4KLQotSW4gZ2VuZXJhbCwgdGhlIHJlY29tbWVuZGVk
IHdheSB0byBjYXVzZSB0aGUgY29kZSB0byBiZWhhdmUgZGlmZmVyZW50bHkgdW5kZXIKLXRlc3Qg
aXMgW0RlcGVuZGVuY3kgSW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9E
ZXBlbmRlbmN5X2luamVjdGlvbikuIFlvdSBjYW4gaW5qZWN0Ci1kaWZmZXJlbnQgZnVuY3Rpb25h
bGl0eSBmcm9tIHRoZSB0ZXN0IGFuZCBmcm9tIHRoZSBwcm9kdWN0aW9uIGNvZGUuIFNpbmNlIHlv
dXIKLXByb2R1Y3Rpb24gY29kZSBkb2Vzbid0IGxpbmsgaW4gdGhlIGZvci10ZXN0IGxvZ2ljIGF0
IGFsbCAodGhlCi1bYHRlc3Rvbmx5YF0oaHR0cHM6Ly9kb2NzLmJhemVsLmJ1aWxkL3ZlcnNpb25z
L21hc3Rlci9iZS9jb21tb24tZGVmaW5pdGlvbnMuaHRtbCNjb21tb24udGVzdG9ubHkpCi1hdHRy
aWJ1dGUgZm9yIEJVSUxEIHRhcmdldHMgaGVscHMgdG8gZW5zdXJlIHRoYXQpLCB0aGVyZSBpcyBu
byBkYW5nZXIgaW4KLWFjY2lkZW50YWxseSBydW5uaW5nIGl0LgotCi1Ib3dldmVyLCBpZiB5b3Ug
KnJlYWxseSosICpyZWFsbHkqLCAqcmVhbGx5KiBoYXZlIG5vIGNob2ljZSwgYW5kIGlmIHlvdSBm
b2xsb3cKLXRoZSBydWxlIG9mIGVuZGluZyB5b3VyIHRlc3QgcHJvZ3JhbSBuYW1lcyB3aXRoIGBf
dGVzdGAsIHlvdSBjYW4gdXNlIHRoZQotKmhvcnJpYmxlKiBoYWNrIG9mIHNuaWZmaW5nIHlvdXIg
ZXhlY3V0YWJsZSBuYW1lIChgYXJndlswXWAgaW4gYG1haW4oKWApIHRvIGtub3cKLXdoZXRoZXIg
dGhlIGNvZGUgaXMgdW5kZXIgdGVzdC4KLQotCi0jIyBIb3cgZG8gSSB0ZW1wb3JhcmlseSBkaXNh
YmxlIGEgdGVzdD8KLQotSWYgeW91IGhhdmUgYSBicm9rZW4gdGVzdCB0aGF0IHlvdSBjYW5ub3Qg
Zml4IHJpZ2h0IGF3YXksIHlvdSBjYW4gYWRkIHRoZQotRElTQUJMRURfIHByZWZpeCB0byBpdHMg
bmFtZS4gVGhpcyB3aWxsIGV4Y2x1ZGUgaXQgZnJvbSBleGVjdXRpb24uIFRoaXMgaXMKLWJldHRl
ciB0aGFuIGNvbW1lbnRpbmcgb3V0IHRoZSBjb2RlIG9yIHVzaW5nICNpZiAwLCBhcyBkaXNhYmxl
ZCB0ZXN0cyBhcmUgc3RpbGwKLWNvbXBpbGVkIChhbmQgdGh1cyB3b24ndCByb3QpLgotCi1UbyBp
bmNsdWRlIGRpc2FibGVkIHRlc3RzIGluIHRlc3QgZXhlY3V0aW9uLCBqdXN0IGludm9rZSB0aGUg
dGVzdCBwcm9ncmFtIHdpdGgKLXRoZSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZs
YWcuCi0KLSMjIElzIGl0IE9LIGlmIEkgaGF2ZSB0d28gc2VwYXJhdGUgYFRFU1QoRm9vLCBCYXIp
YCB0ZXN0IG1ldGhvZHMgZGVmaW5lZCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcz8KLQotWWVzLgot
Ci1UaGUgcnVsZSBpcyAqKmFsbCB0ZXN0IG1ldGhvZHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11
c3QgdXNlIHRoZSBzYW1lIGZpeHR1cmUKLWNsYXNzLioqIFRoaXMgbWVhbnMgdGhhdCB0aGUgZm9s
bG93aW5nIGlzICoqYWxsb3dlZCoqIGJlY2F1c2UgYm90aCB0ZXN0cyB1c2UgdGhlCi1zYW1lIGZp
eHR1cmUgY2xhc3MgKGA6OnRlc3Rpbmc6OlRlc3RgKS4KLQotYGBgYysrCi1uYW1lc3BhY2UgZm9v
IHsKLVRFU1QoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8v
IG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7Ci1URVNUKENvb2xUZXN0LCBEb1NvbWV0
aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19ICAvLyBuYW1lc3BhY2UgYmFyCi1gYGAKLQotSG93
ZXZlciwgdGhlIGZvbGxvd2luZyBjb2RlIGlzICoqbm90IGFsbG93ZWQqKiBhbmQgd2lsbCBwcm9k
dWNlIGEgcnVudGltZSBlcnJvcgotZnJvbSBnb29nbGV0ZXN0IGJlY2F1c2UgdGhlIHRlc3QgbWV0
aG9kcyBhcmUgdXNpbmcgZGlmZmVyZW50IHRlc3QgZml4dHVyZQotY2xhc3NlcyB3aXRoIHRoZSBz
YW1lIHRlc3QgY2FzZSBuYW1lLgotCi1gYGBjKysKLW5hbWVzcGFjZSBmb28gewotY2xhc3MgQ29v
bFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OyAgLy8gRml4dHVyZSBmb286OkNvb2xU
ZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0g
IC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7Ci1jbGFzcyBDb29sVGVzdCA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307ICAvLyBGaXh0dXJlOiBiYXI6OkNvb2xUZXN0Ci1URVNU
X0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVz
cGFjZSBiYXIKLWBgYApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9w
cmltZXIubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3ByaW1lci5tZApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZWE4ZDcxN2I4MzViY2JkMjNmODRjOWVhMDVmMTZh
ODc4YTVkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3ByaW1lci5tZAorKysgL2Rldi9udWxsCkBAIC0x
LDU2OSArMCwwIEBACi0jIEdvb2dsZXRlc3QgUHJpbWVyCi0KLQotIyMgSW50cm9kdWN0aW9uOiBX
aHkgZ29vZ2xldGVzdD8KLQotKmdvb2dsZXRlc3QqIGhlbHBzIHlvdSB3cml0ZSBiZXR0ZXIgQysr
IHRlc3RzLgotCi1nb29nbGV0ZXN0IGlzIGEgdGVzdGluZyBmcmFtZXdvcmsgZGV2ZWxvcGVkIGJ5
IHRoZSBUZXN0aW5nCi1UZWNobm9sb2d5IHRlYW0gd2l0aCBHb29nbGUncyBzcGVjaWZpYwotcmVx
dWlyZW1lbnRzIGFuZCBjb25zdHJhaW50cyBpbiBtaW5kLiBObyBtYXR0ZXIgd2hldGhlciB5b3Ug
d29yayBvbiBMaW51eCwKLVdpbmRvd3MsIG9yIGEgTWFjLCBpZiB5b3Ugd3JpdGUgQysrIGNvZGUs
IGdvb2dsZXRlc3QgY2FuIGhlbHAgeW91LiBBbmQgaXQKLXN1cHBvcnRzICphbnkqIGtpbmQgb2Yg
dGVzdHMsIG5vdCBqdXN0IHVuaXQgdGVzdHMuCi0KLVNvIHdoYXQgbWFrZXMgYSBnb29kIHRlc3Qs
IGFuZCBob3cgZG9lcyBnb29nbGV0ZXN0IGZpdCBpbj8gV2UgYmVsaWV2ZToKLQotMS4gIFRlc3Rz
IHNob3VsZCBiZSAqaW5kZXBlbmRlbnQqIGFuZCAqcmVwZWF0YWJsZSouIEl0J3MgYSBwYWluIHRv
IGRlYnVnIGEgdGVzdAotICAgIHRoYXQgc3VjY2VlZHMgb3IgZmFpbHMgYXMgYSByZXN1bHQgb2Yg
b3RoZXIgdGVzdHMuIGdvb2dsZXRlc3QgaXNvbGF0ZXMgdGhlCi0gICAgdGVzdHMgYnkgcnVubmlu
ZyBlYWNoIG9mIHRoZW0gb24gYSBkaWZmZXJlbnQgb2JqZWN0LiBXaGVuIGEgdGVzdCBmYWlscywK
LSAgICBnb29nbGV0ZXN0IGFsbG93cyB5b3UgdG8gcnVuIGl0IGluIGlzb2xhdGlvbiBmb3IgcXVp
Y2sgZGVidWdnaW5nLgotMS4gIFRlc3RzIHNob3VsZCBiZSB3ZWxsICpvcmdhbml6ZWQqIGFuZCBy
ZWZsZWN0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHRlc3RlZAotICAgIGNvZGUuIGdvb2dsZXRlc3Qg
Z3JvdXBzIHJlbGF0ZWQgdGVzdHMgaW50byB0ZXN0IGNhc2VzIHRoYXQgY2FuIHNoYXJlIGRhdGEK
LSAgICBhbmQgc3Vicm91dGluZXMuIFRoaXMgY29tbW9uIHBhdHRlcm4gaXMgZWFzeSB0byByZWNv
Z25pemUgYW5kIG1ha2VzIHRlc3RzCi0gICAgZWFzeSB0byBtYWludGFpbi4gU3VjaCBjb25zaXN0
ZW5jeSBpcyBlc3BlY2lhbGx5IGhlbHBmdWwgd2hlbiBwZW9wbGUgc3dpdGNoCi0gICAgcHJvamVj
dHMgYW5kIHN0YXJ0IHRvIHdvcmsgb24gYSBuZXcgY29kZSBiYXNlLgotMS4gIFRlc3RzIHNob3Vs
ZCBiZSAqcG9ydGFibGUqIGFuZCAqcmV1c2FibGUqLiBHb29nbGUgaGFzIGEgbG90IG9mIGNvZGUg
dGhhdCBpcwotICAgIHBsYXRmb3JtLW5ldXRyYWwsIGl0cyB0ZXN0cyBzaG91bGQgYWxzbyBiZSBw
bGF0Zm9ybS1uZXV0cmFsLiBnb29nbGV0ZXN0Ci0gICAgd29ya3Mgb24gZGlmZmVyZW50IE9TZXMs
IHdpdGggZGlmZmVyZW50IGNvbXBpbGVycyAoZ2NjLCBpY2MsIGFuZCBNU1ZDKSwgd2l0aAotICAg
IG9yIHdpdGhvdXQgZXhjZXB0aW9ucywgc28gZ29vZ2xldGVzdCB0ZXN0cyBjYW4gZWFzaWx5IHdv
cmsgd2l0aCBhIHZhcmlldHkgb2YKLSAgICBjb25maWd1cmF0aW9ucy4KLTEuICBXaGVuIHRlc3Rz
IGZhaWwsIHRoZXkgc2hvdWxkIHByb3ZpZGUgYXMgbXVjaCAqaW5mb3JtYXRpb24qIGFib3V0IHRo
ZSBwcm9ibGVtCi0gICAgYXMgcG9zc2libGUuIGdvb2dsZXRlc3QgZG9lc24ndCBzdG9wIGF0IHRo
ZSBmaXJzdCB0ZXN0IGZhaWx1cmUuIEluc3RlYWQsIGl0Ci0gICAgb25seSBzdG9wcyB0aGUgY3Vy
cmVudCB0ZXN0IGFuZCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dC4gWW91IGNhbiBhbHNvIHNldCB1
cAotICAgIHRlc3RzIHRoYXQgcmVwb3J0IG5vbi1mYXRhbCBmYWlsdXJlcyBhZnRlciB3aGljaCB0
aGUgY3VycmVudCB0ZXN0IGNvbnRpbnVlcy4KLSAgICBUaHVzLCB5b3UgY2FuIGRldGVjdCBhbmQg
Zml4IG11bHRpcGxlIGJ1Z3MgaW4gYSBzaW5nbGUgcnVuLWVkaXQtY29tcGlsZQotICAgIGN5Y2xl
LgotMS4gIFRoZSB0ZXN0aW5nIGZyYW1ld29yayBzaG91bGQgbGliZXJhdGUgdGVzdCB3cml0ZXJz
IGZyb20gaG91c2VrZWVwaW5nIGNob3JlcwotICAgIGFuZCBsZXQgdGhlbSBmb2N1cyBvbiB0aGUg
dGVzdCAqY29udGVudCouIGdvb2dsZXRlc3QgYXV0b21hdGljYWxseSBrZWVwcwotICAgIHRyYWNr
IG9mIGFsbCB0ZXN0cyBkZWZpbmVkLCBhbmQgZG9lc24ndCByZXF1aXJlIHRoZSB1c2VyIHRvIGVu
dW1lcmF0ZSB0aGVtCi0gICAgaW4gb3JkZXIgdG8gcnVuIHRoZW0uCi0xLiAgVGVzdHMgc2hvdWxk
IGJlICpmYXN0Ki4gV2l0aCBnb29nbGV0ZXN0LCB5b3UgY2FuIHJldXNlIHNoYXJlZCByZXNvdXJj
ZXMKLSAgICBhY3Jvc3MgdGVzdHMgYW5kIHBheSBmb3IgdGhlIHNldC11cC90ZWFyLWRvd24gb25s
eSBvbmNlLCB3aXRob3V0IG1ha2luZwotICAgIHRlc3RzIGRlcGVuZCBvbiBlYWNoIG90aGVyLgot
Ci1TaW5jZSBnb29nbGV0ZXN0IGlzIGJhc2VkIG9uIHRoZSBwb3B1bGFyIHhVbml0IGFyY2hpdGVj
dHVyZSwgeW91J2xsIGZlZWwgcmlnaHQKLWF0IGhvbWUgaWYgeW91J3ZlIHVzZWQgSlVuaXQgb3Ig
UHlVbml0IGJlZm9yZS4gSWYgbm90LCBpdCB3aWxsIHRha2UgeW91IGFib3V0IDEwCi1taW51dGVz
IHRvIGxlYXJuIHRoZSBiYXNpY3MgYW5kIGdldCBzdGFydGVkLiBTbyBsZXQncyBnbyEKLQotIyMg
QmV3YXJlIG9mIHRoZSBub21lbmNsYXR1cmUKLQotX05vdGU6XyBUaGVyZSBtaWdodCBiZSBzb21l
IGNvbmZ1c2lvbiBvZiBpZGVhIGR1ZSB0byBkaWZmZXJlbnQKLWRlZmluaXRpb25zIG9mIHRoZSB0
ZXJtcyBfVGVzdF8sIF9UZXN0IENhc2VfIGFuZCBfVGVzdCBTdWl0ZV8sIHNvIGJld2FyZQotb2Yg
bWlzdW5kZXJzdGFuZGluZyB0aGVzZS4KLQotSGlzdG9yaWNhbGx5LCBnb29nbGV0ZXN0IHN0YXJ0
ZWQgdG8gdXNlIHRoZSB0ZXJtIF9UZXN0IENhc2VfIGZvciBncm91cGluZwotcmVsYXRlZCB0ZXN0
cywgd2hlcmVhcyBjdXJyZW50IHB1YmxpY2F0aW9ucyBpbmNsdWRpbmcgdGhlIEludGVybmF0aW9u
YWwgU29mdHdhcmUKLVRlc3RpbmcgUXVhbGlmaWNhdGlvbnMgQm9hcmQgKFtJU1RRQl0oaHR0cDov
L3d3dy5pc3RxYi5vcmcvKSkgYW5kIHZhcmlvdXMKLXRleHRib29rcyBvbiBTb2Z0d2FyZSBRdWFs
aXR5IHVzZSB0aGUgdGVybSBfW1Rlc3QKLVN1aXRlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3Jn
L3NlYXJjaC90ZXN0JTIwc3VpdGUpXyBmb3IgdGhpcy4KLQotVGhlIHJlbGF0ZWQgdGVybSBfVGVz
dF8sIGFzIGl0IGlzIHVzZWQgaW4gdGhlIGdvb2dsZXRlc3QsIGlzIGNvcnJlc3BvbmRpbmcgdG8K
LXRoZSB0ZXJtIF9bVGVzdCBDYXNlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90
ZXN0JTIwY2FzZSlfIG9mIElTVFFCCi1hbmQgb3RoZXJzLgotCi1UaGUgdGVybSBfVGVzdF8gaXMg
Y29tbW9ubHkgb2YgYnJvYWQgZW5vdWdoIHNlbnNlLCBpbmNsdWRpbmcgSVNUUUIncwotZGVmaW5p
dGlvbiBvZiBfVGVzdCBDYXNlXywgc28gaXQncyBub3QgbXVjaCBvZiBhIHByb2JsZW0gaGVyZS4g
QnV0IHRoZQotdGVybSBfVGVzdCBDYXNlXyBhcyB1c2VkIGluIEdvb2dsZSBUZXN0IGlzIG9mIGNv
bnRyYWRpY3Rvcnkgc2Vuc2UgYW5kIHRodXMgY29uZnVzaW5nLgotCi1VbmZvcnR1bmF0ZWx5IHJl
cGxhY2luZyB0aGUgdGVybSBfVGVzdCBDYXNlXyBieSBfVGVzdCBTdWl0ZV8gdGhyb3VnaG91dCB0
aGUKLWdvb2dsZXRlc3QgaXMgbm90IGVhc3kgd2l0aG91dCBicmVha2luZyBkZXBlbmRlbnQgcHJv
amVjdHMsIGFzIGBUZXN0Q2FzZWAgaXMKLXBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYXQgdmFyaW91
cyBwbGFjZXMuCi0KLVNvIGZvciB0aGUgdGltZSBiZWluZywgcGxlYXNlIGJlIGF3YXJlIG9mIHRo
ZSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2YKLXRoZSB0ZXJtczoKLQotTWVhbmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgZ29vZ2xldGVzdCBUZXJtICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IFtJU1RRQl0oaHR0cDovL3d3dy5pc3RxYi5vcmcvKSBUZXJtCi06LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUV4ZXJj
aXNlIGEgcGFydGljdWxhciBwcm9ncmFtIHBhdGggd2l0aCBzcGVjaWZpYyBpbnB1dCB2YWx1ZXMg
YW5kIHZlcmlmeSB0aGUgcmVzdWx0cyB8IFtURVNUKCldKCNzaW1wbGUtdGVzdHMpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCBbVGVzdCBDYXNlXShodHRwOi8vZ2xvc3NhcnkuaXN0cWIub3Jn
L3NlYXJjaC90ZXN0JTIwY2FzZSkKLUEgc2V0IG9mIHNldmVyYWwgdGVzdHMgcmVsYXRlZCB0byBv
bmUgY29tcG9uZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtUZXN0
Q2FzZV0oI2Jhc2ljLWNvbmNlcHRzKSB8IFtUZXN0U3VpdGVdKGh0dHA6Ly9nbG9zc2FyeS5pc3Rx
Yi5vcmcvc2VhcmNoL3Rlc3QlMjBzdWl0ZSkKLQotIyMgQmFzaWMgQ29uY2VwdHMKLQotV2hlbiB1
c2luZyBnb29nbGV0ZXN0LCB5b3Ugc3RhcnQgYnkgd3JpdGluZyAqYXNzZXJ0aW9ucyosIHdoaWNo
IGFyZSBzdGF0ZW1lbnRzCi10aGF0IGNoZWNrIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgdHJ1ZS4g
QW4gYXNzZXJ0aW9uJ3MgcmVzdWx0IGNhbiBiZSAqc3VjY2VzcyosCi0qbm9uZmF0YWwgZmFpbHVy
ZSosIG9yICpmYXRhbCBmYWlsdXJlKi4gSWYgYSBmYXRhbCBmYWlsdXJlIG9jY3VycywgaXQgYWJv
cnRzIHRoZQotY3VycmVudCBmdW5jdGlvbjsgb3RoZXJ3aXNlIHRoZSBwcm9ncmFtIGNvbnRpbnVl
cyBub3JtYWxseS4KLQotKlRlc3RzKiB1c2UgYXNzZXJ0aW9ucyB0byB2ZXJpZnkgdGhlIHRlc3Rl
ZCBjb2RlJ3MgYmVoYXZpb3IuIElmIGEgdGVzdCBjcmFzaGVzCi1vciBoYXMgYSBmYWlsZWQgYXNz
ZXJ0aW9uLCB0aGVuIGl0ICpmYWlscyo7IG90aGVyd2lzZSBpdCAqc3VjY2VlZHMqLgotCi1BICp0
ZXN0IGNhc2UqIGNvbnRhaW5zIG9uZSBvciBtYW55IHRlc3RzLiBZb3Ugc2hvdWxkIGdyb3VwIHlv
dXIgdGVzdHMgaW50byB0ZXN0Ci1jYXNlcyB0aGF0IHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZiB0
aGUgdGVzdGVkIGNvZGUuIFdoZW4gbXVsdGlwbGUgdGVzdHMgaW4gYQotdGVzdCBjYXNlIG5lZWQg
dG8gc2hhcmUgY29tbW9uIG9iamVjdHMgYW5kIHN1YnJvdXRpbmVzLCB5b3UgY2FuIHB1dCB0aGVt
IGludG8gYQotKnRlc3QgZml4dHVyZSogY2xhc3MuCi0KLUEgKnRlc3QgcHJvZ3JhbSogY2FuIGNv
bnRhaW4gbXVsdGlwbGUgdGVzdCBjYXNlcy4KLQotV2UnbGwgbm93IGV4cGxhaW4gaG93IHRvIHdy
aXRlIGEgdGVzdCBwcm9ncmFtLCBzdGFydGluZyBhdCB0aGUgaW5kaXZpZHVhbAotYXNzZXJ0aW9u
IGxldmVsIGFuZCBidWlsZGluZyB1cCB0byB0ZXN0cyBhbmQgdGVzdCBjYXNlcy4KLQotIyMgQXNz
ZXJ0aW9ucwotCi1nb29nbGV0ZXN0IGFzc2VydGlvbnMgYXJlIG1hY3JvcyB0aGF0IHJlc2VtYmxl
IGZ1bmN0aW9uIGNhbGxzLiBZb3UgdGVzdCBhIGNsYXNzCi1vciBmdW5jdGlvbiBieSBtYWtpbmcg
YXNzZXJ0aW9ucyBhYm91dCBpdHMgYmVoYXZpb3IuIFdoZW4gYW4gYXNzZXJ0aW9uIGZhaWxzLAot
Z29vZ2xldGVzdCBwcmludHMgdGhlIGFzc2VydGlvbidzIHNvdXJjZSBmaWxlIGFuZCBsaW5lIG51
bWJlciBsb2NhdGlvbiwgYWxvbmcKLXdpdGggYSBmYWlsdXJlIG1lc3NhZ2UuIFlvdSBtYXkgYWxz
byBzdXBwbHkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIHdoaWNoIHdpbGwKLWJlIGFwcGVuZGVk
IHRvIGdvb2dsZXRlc3QncyBtZXNzYWdlLgotCi1UaGUgYXNzZXJ0aW9ucyBjb21lIGluIHBhaXJz
IHRoYXQgdGVzdCB0aGUgc2FtZSB0aGluZyBidXQgaGF2ZSBkaWZmZXJlbnQgZWZmZWN0cwotb24g
dGhlIGN1cnJlbnQgZnVuY3Rpb24uIGBBU1NFUlRfKmAgdmVyc2lvbnMgZ2VuZXJhdGUgZmF0YWwg
ZmFpbHVyZXMgd2hlbiB0aGV5Ci1mYWlsLCBhbmQgKiphYm9ydCB0aGUgY3VycmVudCBmdW5jdGlv
bioqLiBgRVhQRUNUXypgIHZlcnNpb25zIGdlbmVyYXRlIG5vbmZhdGFsCi1mYWlsdXJlcywgd2hp
Y2ggZG9uJ3QgYWJvcnQgdGhlIGN1cnJlbnQgZnVuY3Rpb24uIFVzdWFsbHkgYEVYUEVDVF8qYCBh
cmUKLXByZWZlcnJlZCwgYXMgdGhleSBhbGxvdyBtb3JlIHRoYW4gb25lIGZhaWx1cmUgdG8gYmUg
cmVwb3J0ZWQgaW4gYSB0ZXN0LgotSG93ZXZlciwgeW91IHNob3VsZCB1c2UgYEFTU0VSVF8qYCBp
ZiBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgd2hlbiB0aGUKLWFzc2VydGlvbiBp
biBxdWVzdGlvbiBmYWlscy4KLQotU2luY2UgYSBmYWlsZWQgYEFTU0VSVF8qYCByZXR1cm5zIGZy
b20gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaW1tZWRpYXRlbHksCi1wb3NzaWJseSBza2lwcGluZyBj
bGVhbi11cCBjb2RlIHRoYXQgY29tZXMgYWZ0ZXIgaXQsIGl0IG1heSBjYXVzZSBhIHNwYWNlIGxl
YWsuCi1EZXBlbmRpbmcgb24gdGhlIG5hdHVyZSBvZiB0aGUgbGVhaywgaXQgbWF5IG9yIG1heSBu
b3QgYmUgd29ydGggZml4aW5nIC0gc28ga2VlcAotdGhpcyBpbiBtaW5kIGlmIHlvdSBnZXQgYSBo
ZWFwIGNoZWNrZXIgZXJyb3IgaW4gYWRkaXRpb24gdG8gYXNzZXJ0aW9uIGVycm9ycy4KLQotVG8g
cHJvdmlkZSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2UsIHNpbXBseSBzdHJlYW0gaXQgaW50byB0
aGUgbWFjcm8gdXNpbmcgdGhlCi1gPDxgIG9wZXJhdG9yLCBvciBhIHNlcXVlbmNlIG9mIHN1Y2gg
b3BlcmF0b3JzLiBBbiBleGFtcGxlOgotCi1gYGBjKysKLUFTU0VSVF9FUSh4LnNpemUoKSwgeS5z
aXplKCkpIDw8ICJWZWN0b3JzIHggYW5kIHkgYXJlIG9mIHVuZXF1YWwgbGVuZ3RoIjsKLQotZm9y
IChpbnQgaSA9IDA7IGkgPCB4LnNpemUoKTsgKytpKSB7Ci0gIEVYUEVDVF9FUSh4W2ldLCB5W2ld
KSA8PCAiVmVjdG9ycyB4IGFuZCB5IGRpZmZlciBhdCBpbmRleCAiIDw8IGk7Ci19Ci1gYGAKLQot
QW55dGhpbmcgdGhhdCBjYW4gYmUgc3RyZWFtZWQgdG8gYW4gYG9zdHJlYW1gIGNhbiBiZSBzdHJl
YW1lZCB0byBhbiBhc3NlcnRpb24KLW1hY3JvLS1pbiBwYXJ0aWN1bGFyLCBDIHN0cmluZ3MgYW5k
IGBzdHJpbmdgIG9iamVjdHMuIElmIGEgd2lkZSBzdHJpbmcKLShgd2NoYXJfdCpgLCBgVENIQVIq
YCBpbiBgVU5JQ09ERWAgbW9kZSBvbiBXaW5kb3dzLCBvciBgc3RkOjp3c3RyaW5nYCkgaXMKLXN0
cmVhbWVkIHRvIGFuIGFzc2VydGlvbiwgaXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIFVURi04IHdo
ZW4gcHJpbnRlZC4KLQotIyMjIEJhc2ljIEFzc2VydGlvbnMKLQotVGhlc2UgYXNzZXJ0aW9ucyBk
byBiYXNpYyB0cnVlL2ZhbHNlIGNvbmRpdGlvbiB0ZXN0aW5nLgotCi1GYXRhbCBhc3NlcnRpb24g
ICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgIHwgVmVyaWZpZXMKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0t
LS0tLS0tLS0tLS0tLS0tLQotYEFTU0VSVF9UUlVFKGNvbmRpdGlvbik7YCAgfCBgRVhQRUNUX1RS
VUUoY29uZGl0aW9uKTtgICB8IGBjb25kaXRpb25gIGlzIHRydWUKLWBBU1NFUlRfRkFMU0UoY29u
ZGl0aW9uKTtgIHwgYEVYUEVDVF9GQUxTRShjb25kaXRpb24pO2AgfCBgY29uZGl0aW9uYCBpcyBm
YWxzZQotCi1SZW1lbWJlciwgd2hlbiB0aGV5IGZhaWwsIGBBU1NFUlRfKmAgeWllbGRzIGEgZmF0
YWwgZmFpbHVyZSBhbmQgcmV0dXJucyBmcm9tIHRoZQotY3VycmVudCBmdW5jdGlvbiwgd2hpbGUg
YEVYUEVDVF8qYCB5aWVsZHMgYSBub25mYXRhbCBmYWlsdXJlLCBhbGxvd2luZyB0aGUKLWZ1bmN0
aW9uIHRvIGNvbnRpbnVlIHJ1bm5pbmcuIEluIGVpdGhlciBjYXNlLCBhbiBhc3NlcnRpb24gZmFp
bHVyZSBtZWFucyBpdHMKLWNvbnRhaW5pbmcgdGVzdCBmYWlscy4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEJpbmFyeSBDb21wYXJpc29uCi0KLVRoaXMg
c2VjdGlvbiBkZXNjcmliZXMgYXNzZXJ0aW9ucyB0aGF0IGNvbXBhcmUgdHdvIHZhbHVlcy4KLQot
RmF0YWwgYXNzZXJ0aW9uICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgIHwgVmVy
aWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSB8IC0tLS0tLS0tLS0tLS0tCi1gQVNTRVJUX0VRKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0VR
KHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA9PSB2YWwyYAotYEFTU0VSVF9ORSh2YWwxLCB2YWwyKTtg
IHwgYEVYUEVDVF9ORSh2YWwxLCB2YWwyKTtgIHwgYHZhbDEgIT0gdmFsMmAKLWBBU1NFUlRfTFQo
dmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfTFQodmFsMSwgdmFsMik7YCB8IGB2YWwxIDwgdmFsMmAK
LWBBU1NFUlRfTEUodmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfTEUodmFsMSwgdmFsMik7YCB8IGB2
YWwxIDw9IHZhbDJgCi1gQVNTRVJUX0dUKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0dUKHZhbDEs
IHZhbDIpO2AgfCBgdmFsMSA+IHZhbDJgCi1gQVNTRVJUX0dFKHZhbDEsIHZhbDIpO2AgfCBgRVhQ
RUNUX0dFKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA+PSB2YWwyYAotCi1WYWx1ZSBhcmd1bWVudHMg
bXVzdCBiZSBjb21wYXJhYmxlIGJ5IHRoZSBhc3NlcnRpb24ncyBjb21wYXJpc29uIG9wZXJhdG9y
IG9yCi15b3UnbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3IuIFdlIHVzZWQgdG8gcmVxdWlyZSB0aGUg
YXJndW1lbnRzIHRvIHN1cHBvcnQgdGhlCi1gPDxgIG9wZXJhdG9yIGZvciBzdHJlYW1pbmcgdG8g
YW4gYG9zdHJlYW1gLCBidXQgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5LiBJZgotYDw8YCBpcyBz
dXBwb3J0ZWQsIGl0IHdpbGwgYmUgY2FsbGVkIHRvIHByaW50IHRoZSBhcmd1bWVudHMgd2hlbiB0
aGUgYXNzZXJ0aW9uCi1mYWlsczsgb3RoZXJ3aXNlIGdvb2dsZXRlc3Qgd2lsbCBhdHRlbXB0IHRv
IHByaW50IHRoZW0gaW4gdGhlIGJlc3Qgd2F5IGl0IGNhbi4KLUZvciBtb3JlIGRldGFpbHMgYW5k
IGhvdyB0byBjdXN0b21pemUgdGhlIHByaW50aW5nIG9mIHRoZSBhcmd1bWVudHMsIHNlZQotZ01v
Y2sgW3JlY2lwZV0oLi4vLi4vZ29vZ2xlbW9jay9kb2NzL0Nvb2tCb29rLm1kI3RlYWNoaW5nLWdv
b2dsZS1tb2NrLWhvdy10by1wcmludC15b3VyLXZhbHVlcykuKS4KLQotVGhlc2UgYXNzZXJ0aW9u
cyBjYW4gd29yayB3aXRoIGEgdXNlci1kZWZpbmVkIHR5cGUsIGJ1dCBvbmx5IGlmIHlvdSBkZWZp
bmUgdGhlCi1jb3JyZXNwb25kaW5nIGNvbXBhcmlzb24gb3BlcmF0b3IgKGUuZy4gYD09YCwgYDxg
LCBldGMpLiBTaW5jZSB0aGlzIGlzCi1kaXNjb3VyYWdlZCBieSB0aGUgR29vZ2xlIFtDKysgU3R5
bGUKLUd1aWRlXShodHRwczovL2dvb2dsZS5naXRodWIuaW8vc3R5bGVndWlkZS9jcHBndWlkZS5o
dG1sI09wZXJhdG9yX092ZXJsb2FkaW5nKSwKLXlvdSBtYXkgbmVlZCB0byB1c2UgYEFTU0VSVF9U
UlVFKClgIG9yIGBFWFBFQ1RfVFJVRSgpYCB0byBhc3NlcnQgdGhlIGVxdWFsaXR5IG9mCi10d28g
b2JqZWN0cyBvZiBhIHVzZXItZGVmaW5lZCB0eXBlLgotCi1Ib3dldmVyLCB3aGVuIHBvc3NpYmxl
LCBgQVNTRVJUX0VRKGFjdHVhbCwgZXhwZWN0ZWQpYCBpcyBwcmVmZXJyZWQgdG8KLWBBU1NFUlRf
VFJVRShhY3R1YWwgPT0gZXhwZWN0ZWQpYCwgc2luY2UgaXQgdGVsbHMgeW91IGBhY3R1YWxgIGFu
ZCBgZXhwZWN0ZWRgJ3MKLXZhbHVlcyBvbiBmYWlsdXJlLgotCi1Bcmd1bWVudHMgYXJlIGFsd2F5
cyBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiBUaGVyZWZvcmUsIGl0J3MgT0sgZm9yIHRoZQotYXJn
dW1lbnRzIHRvIGhhdmUgc2lkZSBlZmZlY3RzLiBIb3dldmVyLCBhcyB3aXRoIGFueSBvcmRpbmFy
eSBDL0MrKyBmdW5jdGlvbiwKLXRoZSBhcmd1bWVudHMnIGV2YWx1YXRpb24gb3JkZXIgaXMgdW5k
ZWZpbmVkIChpLmUuIHRoZSBjb21waWxlciBpcyBmcmVlIHRvCi1jaG9vc2UgYW55IG9yZGVyKSBh
bmQgeW91ciBjb2RlIHNob3VsZCBub3QgZGVwZW5kIG9uIGFueSBwYXJ0aWN1bGFyIGFyZ3VtZW50
Ci1ldmFsdWF0aW9uIG9yZGVyLgotCi1gQVNTRVJUX0VRKClgIGRvZXMgcG9pbnRlciBlcXVhbGl0
eSBvbiBwb2ludGVycy4gSWYgdXNlZCBvbiB0d28gQyBzdHJpbmdzLCBpdAotdGVzdHMgaWYgdGhl
eSBhcmUgaW4gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uLCBub3QgaWYgdGhleSBoYXZlIHRoZSBz
YW1lIHZhbHVlLgotVGhlcmVmb3JlLCBpZiB5b3Ugd2FudCB0byBjb21wYXJlIEMgc3RyaW5ncyAo
ZS5nLiBgY29uc3QgY2hhcipgKSBieSB2YWx1ZSwgdXNlCi1gQVNTRVJUX1NUUkVRKClgLCB3aGlj
aCB3aWxsIGJlIGRlc2NyaWJlZCBsYXRlciBvbi4gSW4gcGFydGljdWxhciwgdG8gYXNzZXJ0Ci10
aGF0IGEgQyBzdHJpbmcgaXMgYE5VTExgLCB1c2UgYEFTU0VSVF9TVFJFUShjX3N0cmluZywgTlVM
TClgLiBDb25zaWRlciB1c2UKLWBBU1NFUlRfRVEoY19zdHJpbmcsIG51bGxwdHIpYCBpZiBjKysx
MSBpcyBzdXBwb3J0ZWQuIFRvIGNvbXBhcmUgdHdvIGBzdHJpbmdgCi1vYmplY3RzLCB5b3Ugc2hv
dWxkIHVzZSBgQVNTRVJUX0VRYC4KLQotV2hlbiBkb2luZyBwb2ludGVyIGNvbXBhcmlzb25zIHVz
ZSBgKl9FUShwdHIsIG51bGxwdHIpYCBhbmQgYCpfTkUocHRyLCBudWxscHRyKWAKLWluc3RlYWQg
b2YgYCpfRVEocHRyLCBOVUxMKWAgYW5kIGAqX05FKHB0ciwgTlVMTClgLiBUaGlzIGlzIGJlY2F1
c2UgYG51bGxwdHJgIGlzCi10eXBlZCB3aGlsZSBgTlVMTGAgaXMgbm90LiBTZWUgW0ZBUV0oZmFx
Lm1kI3doeS1kb2VzLWdvb2dsZS10ZXN0LXN1cHBvcnQtZXhwZWN0X2VxbnVsbC1wdHItYW5kLWFz
c2VydF9lcW51bGwtcHRyLWJ1dC1ub3QtZXhwZWN0X25lbnVsbC1wdHItYW5kLWFzc2VydF9uZW51
bGwtcHRyKQotZm9yIG1vcmUgZGV0YWlscy4KLQotSWYgeW91J3JlIHdvcmtpbmcgd2l0aCBmbG9h
dGluZyBwb2ludCBudW1iZXJzLCB5b3UgbWF5IHdhbnQgdG8gdXNlIHRoZSBmbG9hdGluZwotcG9p
bnQgdmFyaWF0aW9ucyBvZiBzb21lIG9mIHRoZXNlIG1hY3JvcyBpbiBvcmRlciB0byBhdm9pZCBw
cm9ibGVtcyBjYXVzZWQgYnkKLXJvdW5kaW5nLiBTZWUgW0FkdmFuY2VkIGdvb2dsZXRlc3QgVG9w
aWNzXShhZHZhbmNlZC5tZCkgZm9yIGRldGFpbHMuCi0KLU1hY3JvcyBpbiB0aGlzIHNlY3Rpb24g
d29yayB3aXRoIGJvdGggbmFycm93IGFuZCB3aWRlIHN0cmluZyBvYmplY3RzIChgc3RyaW5nYAot
YW5kIGB3c3RyaW5nYCkuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMu
Ci0KLSoqSGlzdG9yaWNhbCBub3RlKio6IEJlZm9yZSBGZWJydWFyeSAyMDE2IGAqX0VRYCBoYWQg
YSBjb252ZW50aW9uIG9mIGNhbGxpbmcgaXQKLWFzIGBBU1NFUlRfRVEoZXhwZWN0ZWQsIGFjdHVh
bClgLCBzbyBsb3RzIG9mIGV4aXN0aW5nIGNvZGUgdXNlcyB0aGlzIG9yZGVyLiBOb3cKLWAqX0VR
YCB0cmVhdHMgYm90aCBwYXJhbWV0ZXJzIGluIHRoZSBzYW1lIHdheS4KLQotIyMjIFN0cmluZyBD
b21wYXJpc29uCi0KLVRoZSBhc3NlcnRpb25zIGluIHRoaXMgZ3JvdXAgY29tcGFyZSB0d28gKipD
IHN0cmluZ3MqKi4gSWYgeW91IHdhbnQgdG8gY29tcGFyZQotdHdvIGBzdHJpbmdgIG9iamVjdHMs
IHVzZSBgRVhQRUNUX0VRYCwgYEVYUEVDVF9ORWAsIGFuZCBldGMgaW5zdGVhZC4KLQotfCBGYXRh
bCBhc3NlcnRpb24gICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAg
ICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NFUlRfU1RSRVEoc3RyMSwgc3RyMik7YCAg
ICAgfCBgRVhQRUNUX1NUUkVRKHN0cjEsIHN0cjIpO2AgICAgIHwgdGhlIHR3byBDIHN0cmluZ3Mg
aGF2ZSB0aGUgc2FtZSBjb250ZW50ICAgICAgICAgICAgICAgICAgfAotfCBgQVNTRVJUX1NUUk5F
KHN0cjEsIHN0cjIpO2AgICAgIHwgYEVYUEVDVF9TVFJORShzdHIxLCBzdHIyKTtgICAgICB8IHRo
ZSB0d28gQyBzdHJpbmdzIGhhdmUgZGlmZmVyZW50IGNvbnRlbnRzICAgICAgICAgICAgICAgIHwK
LXwgYEFTU0VSVF9TVFJDQVNFRVEoc3RyMSwgc3RyMik7YCB8IGBFWFBFQ1RfU1RSQ0FTRUVRKHN0
cjEsIHN0cjIpO2AgfCB0aGUgdHdvIEMgc3RyaW5ncyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQsIGln
bm9yaW5nIGNhc2UgICB8Ci18IGBBU1NFUlRfU1RSQ0FTRU5FKHN0cjEsIHN0cjIpO2AgfCBgRVhQ
RUNUX1NUUkNBU0VORShzdHIxLCBzdHIyKTtgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSBkaWZm
ZXJlbnQgY29udGVudHMsIGlnbm9yaW5nIGNhc2UgfAotCi1Ob3RlIHRoYXQgIkNBU0UiIGluIGFu
IGFzc2VydGlvbiBuYW1lIG1lYW5zIHRoYXQgY2FzZSBpcyBpZ25vcmVkLiBBIGBOVUxMYAotcG9p
bnRlciBhbmQgYW4gZW1wdHkgc3RyaW5nIGFyZSBjb25zaWRlcmVkICpkaWZmZXJlbnQqLgotCi1g
KlNUUkVRKmAgYW5kIGAqU1RSTkUqYCBhbHNvIGFjY2VwdCB3aWRlIEMgc3RyaW5ncyAoYHdjaGFy
X3QqYCkuIElmIGEgY29tcGFyaXNvbgotb2YgdHdvIHdpZGUgc3RyaW5ncyBmYWlscywgdGhlaXIg
dmFsdWVzIHdpbGwgYmUgcHJpbnRlZCBhcyBVVEYtOCBuYXJyb3cgc3RyaW5ncy4KLQotKipBdmFp
bGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotKipTZWUgYWxzbyoqOiBGb3IgbW9y
ZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MgKHN1YnN0cmluZywgcHJlZml4LCBzdWZmaXgsIGFu
ZAotcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nLCBmb3IgZXhhbXBsZSksIHNlZQotW3RoaXNd
KGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9nb29nbGV0
ZXN0L2RvY3MvYWR2YW5jZWQubWQpCi1pbiB0aGUgQWR2YW5jZWQgZ29vZ2xldGVzdCBHdWlkZS4K
LQotIyMgU2ltcGxlIFRlc3RzCi0KLVRvIGNyZWF0ZSBhIHRlc3Q6Ci0KLTEuICBVc2UgdGhlIGBU
RVNUKClgIG1hY3JvIHRvIGRlZmluZSBhbmQgbmFtZSBhIHRlc3QgZnVuY3Rpb24sIFRoZXNlIGFy
ZQotICAgIG9yZGluYXJ5IEMrKyBmdW5jdGlvbnMgdGhhdCBkb24ndCByZXR1cm4gYSB2YWx1ZS4K
LTEuICBJbiB0aGlzIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIGFueSB2YWxpZCBDKysgc3RhdGVtZW50
cyB5b3Ugd2FudCB0byBpbmNsdWRlLAotICAgIHVzZSB0aGUgdmFyaW91cyBnb29nbGV0ZXN0IGFz
c2VydGlvbnMgdG8gY2hlY2sgdmFsdWVzLgotMS4gIFRoZSB0ZXN0J3MgcmVzdWx0IGlzIGRldGVy
bWluZWQgYnkgdGhlIGFzc2VydGlvbnM7IGlmIGFueSBhc3NlcnRpb24gaW4gdGhlCi0gICAgdGVz
dCBmYWlscyAoZWl0aGVyIGZhdGFsbHkgb3Igbm9uLWZhdGFsbHkpLCBvciBpZiB0aGUgdGVzdCBj
cmFzaGVzLCB0aGUKLSAgICBlbnRpcmUgdGVzdCBmYWlscy4gT3RoZXJ3aXNlLCBpdCBzdWNjZWVk
cy4KLQotYGBgYysrCi1URVNUKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpIHsKLSAgLi4uIHRlc3Qg
Ym9keSAuLi4KLX0KLWBgYAotCi1gVEVTVCgpYCBhcmd1bWVudHMgZ28gZnJvbSBnZW5lcmFsIHRv
IHNwZWNpZmljLiBUaGUgKmZpcnN0KiBhcmd1bWVudCBpcyB0aGUgbmFtZQotb2YgdGhlIHRlc3Qg
Y2FzZSwgYW5kIHRoZSAqc2Vjb25kKiBhcmd1bWVudCBpcyB0aGUgdGVzdCdzIG5hbWUgd2l0aGlu
IHRoZSB0ZXN0Ci1jYXNlLiBCb3RoIG5hbWVzIG11c3QgYmUgdmFsaWQgQysrIGlkZW50aWZpZXJz
LCBhbmQgdGhleSBzaG91bGQgbm90IGNvbnRhaW4KLXVuZGVyc2NvcmUgKGBfYCkuIEEgdGVzdCdz
ICpmdWxsIG5hbWUqIGNvbnNpc3RzIG9mIGl0cyBjb250YWluaW5nIHRlc3QgY2FzZSBhbmQKLWl0
cyBpbmRpdmlkdWFsIG5hbWUuIFRlc3RzIGZyb20gZGlmZmVyZW50IHRlc3QgY2FzZXMgY2FuIGhh
dmUgdGhlIHNhbWUKLWluZGl2aWR1YWwgbmFtZS4KLQotRm9yIGV4YW1wbGUsIGxldCdzIHRha2Ug
YSBzaW1wbGUgaW50ZWdlciBmdW5jdGlvbjoKLQotYGBgYysrCi1pbnQgRmFjdG9yaWFsKGludCBu
KTsgIC8vIFJldHVybnMgdGhlIGZhY3RvcmlhbCBvZiBuCi1gYGAKLQotQSB0ZXN0IGNhc2UgZm9y
IHRoaXMgZnVuY3Rpb24gbWlnaHQgbG9vayBsaWtlOgotCi1gYGBjKysKLS8vIFRlc3RzIGZhY3Rv
cmlhbCBvZiAwLgotVEVTVChGYWN0b3JpYWxUZXN0LCBIYW5kbGVzWmVyb0lucHV0KSB7Ci0gIEVY
UEVDVF9FUShGYWN0b3JpYWwoMCksIDEpOwotfQotCi0vLyBUZXN0cyBmYWN0b3JpYWwgb2YgcG9z
aXRpdmUgbnVtYmVycy4KLVRFU1QoRmFjdG9yaWFsVGVzdCwgSGFuZGxlc1Bvc2l0aXZlSW5wdXQp
IHsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCgxKSwgMSk7Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwo
MiksIDIpOwotICBFWFBFQ1RfRVEoRmFjdG9yaWFsKDMpLCA2KTsKLSAgRVhQRUNUX0VRKEZhY3Rv
cmlhbCg4KSwgNDAzMjApOwotfQotYGBgCi0KLWdvb2dsZXRlc3QgZ3JvdXBzIHRoZSB0ZXN0IHJl
c3VsdHMgYnkgdGVzdCBjYXNlcywgc28gbG9naWNhbGx5LXJlbGF0ZWQgdGVzdHMKLXNob3VsZCBi
ZSBpbiB0aGUgc2FtZSB0ZXN0IGNhc2U7IGluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QgYXJndW1l
bnQgdG8gdGhlaXIKLWBURVNUKClgIHNob3VsZCBiZSB0aGUgc2FtZS4gSW4gdGhlIGFib3ZlIGV4
YW1wbGUsIHdlIGhhdmUgdHdvIHRlc3RzLAotYEhhbmRsZXNaZXJvSW5wdXRgIGFuZCBgSGFuZGxl
c1Bvc2l0aXZlSW5wdXRgLCB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSB0ZXN0IGNhc2UKLWBGYWN0
b3JpYWxUZXN0YC4KLQotV2hlbiBuYW1pbmcgeW91ciB0ZXN0IGNhc2VzIGFuZCB0ZXN0cywgeW91
IHNob3VsZCBmb2xsb3cgdGhlIHNhbWUgY29udmVudGlvbiBhcwotZm9yIFtuYW1pbmcgZnVuY3Rp
b25zIGFuZAotY2xhc3Nlc10oaHR0cHM6Ly9nb29nbGUuZ2l0aHViLmlvL3N0eWxlZ3VpZGUvY3Bw
Z3VpZGUuaHRtbCNGdW5jdGlvbl9OYW1lcykuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBX
aW5kb3dzLCBNYWMuCi0KLSMjIFRlc3QgRml4dHVyZXM6IFVzaW5nIHRoZSBTYW1lIERhdGEgQ29u
ZmlndXJhdGlvbiBmb3IgTXVsdGlwbGUgVGVzdHMKLQotSWYgeW91IGZpbmQgeW91cnNlbGYgd3Jp
dGluZyB0d28gb3IgbW9yZSB0ZXN0cyB0aGF0IG9wZXJhdGUgb24gc2ltaWxhciBkYXRhLCB5b3UK
LWNhbiB1c2UgYSAqdGVzdCBmaXh0dXJlKi4gSXQgYWxsb3dzIHlvdSB0byByZXVzZSB0aGUgc2Ft
ZSBjb25maWd1cmF0aW9uIG9mCi1vYmplY3RzIGZvciBzZXZlcmFsIGRpZmZlcmVudCB0ZXN0cy4K
LQotVG8gY3JlYXRlIGEgZml4dHVyZToKLQotMS4gIERlcml2ZSBhIGNsYXNzIGZyb20gYDo6dGVz
dGluZzo6VGVzdGAgLiBTdGFydCBpdHMgYm9keSB3aXRoIGBwcm90ZWN0ZWQ6YCBhcwotICAgIHdl
J2xsIHdhbnQgdG8gYWNjZXNzIGZpeHR1cmUgbWVtYmVycyBmcm9tIHN1Yi1jbGFzc2VzLgotMS4g
IEluc2lkZSB0aGUgY2xhc3MsIGRlY2xhcmUgYW55IG9iamVjdHMgeW91IHBsYW4gdG8gdXNlLgot
MS4gIElmIG5lY2Vzc2FyeSwgd3JpdGUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9yIGBTZXRVcCgp
YCBmdW5jdGlvbiB0byBwcmVwYXJlCi0gICAgdGhlIG9iamVjdHMgZm9yIGVhY2ggdGVzdC4gQSBj
b21tb24gbWlzdGFrZSBpcyB0byBzcGVsbCBgU2V0VXAoKWAgYXMKLSAgICAqKmBTZXR1cCgpYCoq
IHdpdGggYSBzbWFsbCBgdWAgLSBVc2UgYG92ZXJyaWRlYCBpbiBDKysxMSB0byBtYWtlIHN1cmUg
eW91Ci0gICAgc3BlbGxlZCBpdCBjb3JyZWN0bHkKLTEuICBJZiBuZWNlc3NhcnksIHdyaXRlIGEg
ZGVzdHJ1Y3RvciBvciBgVGVhckRvd24oKWAgZnVuY3Rpb24gdG8gcmVsZWFzZSBhbnkKLSAgICBy
ZXNvdXJjZXMgeW91IGFsbG9jYXRlZCBpbiBgU2V0VXAoKWAgLiBUbyBsZWFybiB3aGVuIHlvdSBz
aG91bGQgdXNlIHRoZQotICAgIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IgYW5kIHdoZW4geW91IHNo
b3VsZCB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAsIHJlYWQKLSAgICB0aGlzIFtGQVFdKGZhcS5t
ZCNzaG91bGQtaS11c2UtdGhlLWNvbnN0cnVjdG9yZGVzdHJ1Y3Rvci1vZi10aGUtdGVzdC1maXh0
dXJlLW9yLXNldHVwdGVhcmRvd24pIGVudHJ5LgotMS4gIElmIG5lZWRlZCwgZGVmaW5lIHN1YnJv
dXRpbmVzIGZvciB5b3VyIHRlc3RzIHRvIHNoYXJlLgotCi1XaGVuIHVzaW5nIGEgZml4dHVyZSwg
dXNlIGBURVNUX0YoKWAgaW5zdGVhZCBvZiBgVEVTVCgpYCBhcyBpdCBhbGxvd3MgeW91IHRvCi1h
Y2Nlc3Mgb2JqZWN0cyBhbmQgc3Vicm91dGluZXMgaW4gdGhlIHRlc3QgZml4dHVyZToKLQotYGBg
YysrCi1URVNUX0YoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSkgewotICAuLi4gdGVzdCBib2R5IC4u
LgotfQotYGBgCi0KLUxpa2UgYFRFU1QoKWAsIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgdGVz
dCBjYXNlIG5hbWUsIGJ1dCBmb3IgYFRFU1RfRigpYCB0aGlzCi1tdXN0IGJlIHRoZSBuYW1lIG9m
IHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuIFlvdSd2ZSBwcm9iYWJseSBndWVzc2VkOiBgX0ZgIGlz
IGZvcgotZml4dHVyZS4KLQotVW5mb3J0dW5hdGVseSwgdGhlIEMrKyBtYWNybyBzeXN0ZW0gZG9l
cyBub3QgYWxsb3cgdXMgdG8gY3JlYXRlIGEgc2luZ2xlIG1hY3JvCi10aGF0IGNhbiBoYW5kbGUg
Ym90aCB0eXBlcyBvZiB0ZXN0cy4gVXNpbmcgdGhlIHdyb25nIG1hY3JvIGNhdXNlcyBhIGNvbXBp
bGVyCi1lcnJvci4KLQotQWxzbywgeW91IG11c3QgZmlyc3QgZGVmaW5lIGEgdGVzdCBmaXh0dXJl
IGNsYXNzIGJlZm9yZSB1c2luZyBpdCBpbiBhCi1gVEVTVF9GKClgLCBvciB5b3UnbGwgZ2V0IHRo
ZSBjb21waWxlciBlcnJvciAiYHZpcnR1YWwgb3V0c2lkZSBjbGFzcwotZGVjbGFyYXRpb25gIi4K
LQotRm9yIGVhY2ggdGVzdCBkZWZpbmVkIHdpdGggYFRFU1RfRigpYCAsIGdvb2dsZXRlc3Qgd2ls
bCBjcmVhdGUgYSAqZnJlc2gqIHRlc3QKLWZpeHR1cmUgYXQgcnVudGltZSwgaW1tZWRpYXRlbHkg
aW5pdGlhbGl6ZSBpdCB2aWEgYFNldFVwKClgICwgcnVuIHRoZSB0ZXN0LAotY2xlYW4gdXAgYnkg
Y2FsbGluZyBgVGVhckRvd24oKWAgLCBhbmQgdGhlbiBkZWxldGUgdGhlIHRlc3QgZml4dHVyZS4g
Tm90ZSB0aGF0Ci1kaWZmZXJlbnQgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGhhdmUgZGlm
ZmVyZW50IHRlc3QgZml4dHVyZSBvYmplY3RzLCBhbmQKLWdvb2dsZXRlc3QgYWx3YXlzIGRlbGV0
ZXMgYSB0ZXN0IGZpeHR1cmUgYmVmb3JlIGl0IGNyZWF0ZXMgdGhlIG5leHQgb25lLgotZ29vZ2xl
dGVzdCBkb2VzICoqbm90KiogcmV1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlIGZvciBtdWx0aXBs
ZSB0ZXN0cy4gQW55Ci1jaGFuZ2VzIG9uZSB0ZXN0IG1ha2VzIHRvIHRoZSBmaXh0dXJlIGRvIG5v
dCBhZmZlY3Qgb3RoZXIgdGVzdHMuCi0KLUFzIGFuIGV4YW1wbGUsIGxldCdzIHdyaXRlIHRlc3Rz
IGZvciBhIEZJRk8gcXVldWUgY2xhc3MgbmFtZWQgYFF1ZXVlYCwgd2hpY2ggaGFzCi10aGUgZm9s
bG93aW5nIGludGVyZmFjZToKLQotYGBgYysrCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRT4gIC8vIEUg
aXMgdGhlIGVsZW1lbnQgdHlwZS4KLWNsYXNzIFF1ZXVlIHsKLSBwdWJsaWM6Ci0gIFF1ZXVlKCk7
Ci0gIHZvaWQgRW5xdWV1ZShjb25zdCBFJiBlbGVtZW50KTsKLSAgRSogRGVxdWV1ZSgpOyAgLy8g
UmV0dXJucyBOVUxMIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4KLSAgc2l6ZV90IHNpemUoKSBjb25z
dDsKLSAgLi4uCi19OwotYGBgCi0KLUZpcnN0LCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNzLiBCeSBj
b252ZW50aW9uLCB5b3Ugc2hvdWxkIGdpdmUgaXQgdGhlIG5hbWUKLWBGb29UZXN0YCB3aGVyZSBg
Rm9vYCBpcyB0aGUgY2xhc3MgYmVpbmcgdGVzdGVkLgotCi1gYGBjKysKLWNsYXNzIFF1ZXVlVGVz
dCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsKLSAgICAgcTFfLkVucXVldWUoMSk7Ci0gICAgIHEyXy5FbnF1ZXVlKDIpOwot
ICAgICBxMl8uRW5xdWV1ZSgzKTsKLSAgfQotCi0gIC8vIHZvaWQgVGVhckRvd24oKSBvdmVycmlk
ZSB7fQotCi0gIFF1ZXVlPGludD4gcTBfOwotICBRdWV1ZTxpbnQ+IHExXzsKLSAgUXVldWU8aW50
PiBxMl87Ci19OwotYGBgCi0KLUluIHRoaXMgY2FzZSwgYFRlYXJEb3duKClgIGlzIG5vdCBuZWVk
ZWQgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0byBjbGVhbiB1cCBhZnRlcgotZWFjaCB0ZXN0LCBvdGhl
ciB0aGFuIHdoYXQncyBhbHJlYWR5IGRvbmUgYnkgdGhlIGRlc3RydWN0b3IuCi0KLU5vdyB3ZSds
bCB3cml0ZSB0ZXN0cyB1c2luZyBgVEVTVF9GKClgIGFuZCB0aGlzIGZpeHR1cmUuCi0KLWBgYGMr
KwotVEVTVF9GKFF1ZXVlVGVzdCwgSXNFbXB0eUluaXRpYWxseSkgewotICBFWFBFQ1RfRVEocTBf
LnNpemUoKSwgMCk7Ci19Ci0KLVRFU1RfRihRdWV1ZVRlc3QsIERlcXVldWVXb3JrcykgewotICBp
bnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfRVEobiwgbnVsbHB0cik7Ci0KLSAgbiA9
IHExXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9ORShuLCBudWxscHRyKTsKLSAgRVhQRUNUX0VRKCpu
LCAxKTsKLSAgRVhQRUNUX0VRKHExXy5zaXplKCksIDApOwotICBkZWxldGUgbjsKLQotICBuID0g
cTJfLkRlcXVldWUoKTsKLSAgQVNTRVJUX05FKG4sIG51bGxwdHIpOwotICBFWFBFQ1RfRVEoKm4s
IDIpOwotICBFWFBFQ1RfRVEocTJfLnNpemUoKSwgMSk7Ci0gIGRlbGV0ZSBuOwotfQotYGBgCi0K
LVRoZSBhYm92ZSB1c2VzIGJvdGggYEFTU0VSVF8qYCBhbmQgYEVYUEVDVF8qYCBhc3NlcnRpb25z
LiBUaGUgcnVsZSBvZiB0aHVtYiBpcwotdG8gdXNlIGBFWFBFQ1RfKmAgd2hlbiB5b3Ugd2FudCB0
aGUgdGVzdCB0byBjb250aW51ZSB0byByZXZlYWwgbW9yZSBlcnJvcnMgYWZ0ZXIKLXRoZSBhc3Nl
cnRpb24gZmFpbHVyZSwgYW5kIHVzZSBgQVNTRVJUXypgIHdoZW4gY29udGludWluZyBhZnRlciBm
YWlsdXJlIGRvZXNuJ3QKLW1ha2Ugc2Vuc2UuIEZvciBleGFtcGxlLCB0aGUgc2Vjb25kIGFzc2Vy
dGlvbiBpbiB0aGUgYERlcXVldWVgIHRlc3QgaXMKLT1BU1NFUlRfTkUobnVsbHB0ciwgbik9LCBh
cyB3ZSBuZWVkIHRvIGRlcmVmZXJlbmNlIHRoZSBwb2ludGVyIGBuYCBsYXRlciwgd2hpY2gKLXdv
dWxkIGxlYWQgdG8gYSBzZWdmYXVsdCB3aGVuIGBuYCBpcyBgTlVMTGAuCi0KLVdoZW4gdGhlc2Ug
dGVzdHMgcnVuLCB0aGUgZm9sbG93aW5nIGhhcHBlbnM6Ci0KLTEuICBnb29nbGV0ZXN0IGNvbnN0
cnVjdHMgYSBgUXVldWVUZXN0YCBvYmplY3QgKGxldCdzIGNhbGwgaXQgYHQxYCApLgotMS4gIGB0
MS5TZXRVcCgpYCBpbml0aWFsaXplcyBgdDFgIC4KLTEuICBUaGUgZmlyc3QgdGVzdCAoIGBJc0Vt
cHR5SW5pdGlhbGx5YCApIHJ1bnMgb24gYHQxYCAuCi0xLiAgYHQxLlRlYXJEb3duKClgIGNsZWFu
cyB1cCBhZnRlciB0aGUgdGVzdCBmaW5pc2hlcy4KLTEuICBgdDFgIGlzIGRlc3RydWN0ZWQuCi0x
LiAgVGhlIGFib3ZlIHN0ZXBzIGFyZSByZXBlYXRlZCBvbiBhbm90aGVyIGBRdWV1ZVRlc3RgIG9i
amVjdCwgdGhpcyB0aW1lCi0gICAgcnVubmluZyB0aGUgYERlcXVldWVXb3Jrc2AgdGVzdC4KLQot
KipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotCi0jIyBJbnZva2luZyB0
aGUgVGVzdHMKLQotYFRFU1QoKWAgYW5kIGBURVNUX0YoKWAgaW1wbGljaXRseSByZWdpc3RlciB0
aGVpciB0ZXN0cyB3aXRoIGdvb2dsZXRlc3QuIFNvLAotdW5saWtlIHdpdGggbWFueSBvdGhlciBD
KysgdGVzdGluZyBmcmFtZXdvcmtzLCB5b3UgZG9uJ3QgaGF2ZSB0byByZS1saXN0IGFsbAoteW91
ciBkZWZpbmVkIHRlc3RzIGluIG9yZGVyIHRvIHJ1biB0aGVtLgotCi1BZnRlciBkZWZpbmluZyB5
b3VyIHRlc3RzLCB5b3UgY2FuIHJ1biB0aGVtIHdpdGggYFJVTl9BTExfVEVTVFMoKWAgLCB3aGlj
aAotcmV0dXJucyBgMGAgaWYgYWxsIHRoZSB0ZXN0cyBhcmUgc3VjY2Vzc2Z1bCwgb3IgYDFgIG90
aGVyd2lzZS4gTm90ZSB0aGF0Ci1gUlVOX0FMTF9URVNUUygpYCBydW5zICphbGwgdGVzdHMqIGlu
IHlvdXIgbGluayB1bml0IC0tIHRoZXkgY2FuIGJlIGZyb20KLWRpZmZlcmVudCB0ZXN0IGNhc2Vz
LCBvciBldmVuIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMuCi0KLVdoZW4gaW52b2tlZCwgdGhlIGBS
VU5fQUxMX1RFU1RTKClgIG1hY3JvOgotCi0xLiBTYXZlcyB0aGUgc3RhdGUgb2YgYWxsIGdvb2ds
ZXRlc3QgZmxhZ3MKLQotKiAgIENyZWF0ZXMgYSB0ZXN0IGZpeHR1cmUgb2JqZWN0IGZvciB0aGUg
Zmlyc3QgdGVzdC4KLQotKiAgIEluaXRpYWxpemVzIGl0IHZpYSBgU2V0VXAoKWAuCi0KLSogICBS
dW5zIHRoZSB0ZXN0IG9uIHRoZSBmaXh0dXJlIG9iamVjdC4KLQotKiAgIENsZWFucyB1cCB0aGUg
Zml4dHVyZSB2aWEgYFRlYXJEb3duKClgLgotCi0qICAgRGVsZXRlcyB0aGUgZml4dHVyZS4KLQot
KiBSZXN0b3JlcyB0aGUgc3RhdGUgb2YgYWxsIGdvb2dsZXRlc3QgZmxhZ3MKLQotKiAgIFJlcGVh
dHMgdGhlIGFib3ZlIHN0ZXBzIGZvciB0aGUgbmV4dCB0ZXN0LCB1bnRpbCBhbGwgdGVzdHMgaGF2
ZSBydW4uCi0KLUlmIGEgZmF0YWwgZmFpbHVyZSBoYXBwZW5zIHRoZSBzdWJzZXF1ZW50IHN0ZXBz
IHdpbGwgYmUgc2tpcHBlZC4KLQotPiBJTVBPUlRBTlQ6IFlvdSBtdXN0ICoqbm90KiogaWdub3Jl
IHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAsIG9yCi0+IHlvdSB3aWxsIGdl
dCBhIGNvbXBpbGVyIGVycm9yLiBUaGUgcmF0aW9uYWxlIGZvciB0aGlzIGRlc2lnbiBpcyB0aGF0
IHRoZQotPiBhdXRvbWF0ZWQgdGVzdGluZyBzZXJ2aWNlIGRldGVybWluZXMgd2hldGhlciBhIHRl
c3QgaGFzIHBhc3NlZCBiYXNlZCBvbiBpdHMKLT4gZXhpdCBjb2RlLCBub3Qgb24gaXRzIHN0ZG91
dC9zdGRlcnIgb3V0cHV0OyB0aHVzIHlvdXIgYG1haW4oKWAgZnVuY3Rpb24gbXVzdAotPiByZXR1
cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLgotPgotPiBBbHNvLCB5b3Ugc2hvdWxk
IGNhbGwgYFJVTl9BTExfVEVTVFMoKWAgb25seSAqKm9uY2UqKi4gQ2FsbGluZyBpdCBtb3JlIHRo
YW4KLT4gb25jZSBjb25mbGljdHMgd2l0aCBzb21lIGFkdmFuY2VkIGdvb2dsZXRlc3QgZmVhdHVy
ZXMgKGUuZy4gdGhyZWFkLXNhZmUgW2RlYXRoCi0+IHRlc3RzXShhZHZhbmNlZCNkZWF0aC10ZXN0
cykpIGFuZCB0aHVzIGlzIG5vdCBzdXBwb3J0ZWQuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIFdyaXRpbmcgdGhlIG1haW4oKSBGdW5jdGlvbgotCi1JbiBg
Z29vZ2xlM2AsIHRoZSBzaW1wbGVzdCBhcHByb2FjaCBpcyB0byB1c2UgdGhlIGRlZmF1bHQgbWFp
bigpIGZ1bmN0aW9uCi1wcm92aWRlZCBieSBsaW5raW5nIGluIGAiLy90ZXN0aW5nL2Jhc2UvcHVi
bGljOmd0ZXN0X21haW4iYC4gSWYgdGhhdCBkb2Vzbid0Ci1jb3ZlciB3aGF0IHlvdSBuZWVkLCB5
b3Ugc2hvdWxkIHdyaXRlIHlvdXIgb3duIG1haW4oKSBmdW5jdGlvbiwgd2hpY2ggc2hvdWxkCi1y
ZXR1cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLiBMaW5rIHRvIGAiLy90ZXN0aW5n
L2Jhc2UvcHVibGljOmd1bml0ImAuCi1Zb3UgY2FuIHN0YXJ0IGZyb20gdGhpcyBib2lsZXJwbGF0
ZToKLQotYGBgYysrCi0jaW5jbHVkZSAidGhpcy9wYWNrYWdlL2Zvby5oIgotI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLS8vIFRoZSBmaXh0dXJlIGZvciB0ZXN0aW5n
IGNsYXNzIEZvby4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBw
cm90ZWN0ZWQ6Ci0gIC8vIFlvdSBjYW4gcmVtb3ZlIGFueSBvciBhbGwgb2YgdGhlIGZvbGxvd2lu
ZyBmdW5jdGlvbnMgaWYgaXRzIGJvZHkKLSAgLy8gaXMgZW1wdHkuCi0KLSAgRm9vVGVzdCgpIHsK
LSAgICAgLy8gWW91IGNhbiBkbyBzZXQtdXAgd29yayBmb3IgZWFjaCB0ZXN0IGhlcmUuCi0gIH0K
LQotICB+Rm9vVGVzdCgpIG92ZXJyaWRlIHsKLSAgICAgLy8gWW91IGNhbiBkbyBjbGVhbi11cCB3
b3JrIHRoYXQgZG9lc24ndCB0aHJvdyBleGNlcHRpb25zIGhlcmUuCi0gIH0KLQotICAvLyBJZiB0
aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgYXJlIG5vdCBlbm91Z2ggZm9yIHNldHRpbmcg
dXAKLSAgLy8gYW5kIGNsZWFuaW5nIHVwIGVhY2ggdGVzdCwgeW91IGNhbiBkZWZpbmUgdGhlIGZv
bGxvd2luZyBtZXRob2RzOgotCi0gIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7Ci0gICAgIC8vIENv
ZGUgaGVyZSB3aWxsIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgY29uc3RydWN0b3Ig
KHJpZ2h0Ci0gICAgIC8vIGJlZm9yZSBlYWNoIHRlc3QpLgotICB9Ci0KLSAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlIHsKLSAgICAgLy8gQ29kZSBoZXJlIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0
ZWx5IGFmdGVyIGVhY2ggdGVzdCAocmlnaHQKLSAgICAgLy8gYmVmb3JlIHRoZSBkZXN0cnVjdG9y
KS4KLSAgfQotCi0gIC8vIE9iamVjdHMgZGVjbGFyZWQgaGVyZSBjYW4gYmUgdXNlZCBieSBhbGwg
dGVzdHMgaW4gdGhlIHRlc3QgY2FzZSBmb3IgRm9vLgotfTsKLQotLy8gVGVzdHMgdGhhdCB0aGUg
Rm9vOjpCYXIoKSBtZXRob2QgZG9lcyBBYmMuCi1URVNUX0YoRm9vVGVzdCwgTWV0aG9kQmFyRG9l
c0FiYykgewotICBjb25zdCBzdGQ6OnN0cmluZyBpbnB1dF9maWxlcGF0aCA9ICJ0aGlzL3BhY2th
Z2UvdGVzdGRhdGEvbXlpbnB1dGZpbGUuZGF0IjsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgb3V0cHV0
X2ZpbGVwYXRoID0gInRoaXMvcGFja2FnZS90ZXN0ZGF0YS9teW91dHB1dGZpbGUuZGF0IjsKLSAg
Rm9vIGY7Ci0gIEVYUEVDVF9FUShmLkJhcihpbnB1dF9maWxlcGF0aCwgb3V0cHV0X2ZpbGVwYXRo
KSwgMCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgRm9vIGRvZXMgWHl6LgotVEVTVF9GKEZvb1Rlc3Qs
IERvZXNYeXopIHsKLSAgLy8gRXhlcmNpc2VzIHRoZSBYeXogZmVhdHVyZSBvZiBGb28uCi19Ci0K
LX0gIC8vIG5hbWVzcGFjZQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAg
Ojp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7Ci0gIHJldHVybiBSVU5fQUxM
X1RFU1RTKCk7Ci19Ci1gYGAKLQotCi1UaGUgYDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoKWAg
ZnVuY3Rpb24gcGFyc2VzIHRoZSBjb21tYW5kIGxpbmUgZm9yCi1nb29nbGV0ZXN0IGZsYWdzLCBh
bmQgcmVtb3ZlcyBhbGwgcmVjb2duaXplZCBmbGFncy4gVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8K
LWNvbnRyb2wgYSB0ZXN0IHByb2dyYW0ncyBiZWhhdmlvciB2aWEgdmFyaW91cyBmbGFncywgd2hp
Y2ggd2UnbGwgY292ZXIgaW4KLVtBZHZhbmNlZEd1aWRlXShhZHZhbmNlZC5tZCkuIFlvdSAqKm11
c3QqKiBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGNhbGxpbmcKLWBSVU5fQUxMX1RFU1RTKClg
LCBvciB0aGUgZmxhZ3Mgd29uJ3QgYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQuCi0KLU9uIFdpbmRv
d3MsIGBJbml0R29vZ2xlVGVzdCgpYCBhbHNvIHdvcmtzIHdpdGggd2lkZSBzdHJpbmdzLCBzbyBp
dCBjYW4gYmUgdXNlZAotaW4gcHJvZ3JhbXMgY29tcGlsZWQgaW4gYFVOSUNPREVgIG1vZGUgYXMg
d2VsbC4KLQotQnV0IG1heWJlIHlvdSB0aGluayB0aGF0IHdyaXRpbmcgYWxsIHRob3NlIG1haW4o
KSBmdW5jdGlvbnMgaXMgdG9vIG11Y2ggd29yaz8gV2UKLWFncmVlIHdpdGggeW91IGNvbXBsZXRl
bHkgYW5kIHRoYXQncyB3aHkgR29vZ2xlIFRlc3QgcHJvdmlkZXMgYSBiYXNpYwotaW1wbGVtZW50
YXRpb24gb2YgbWFpbigpLiBJZiBpdCBmaXRzIHlvdXIgbmVlZHMsIHRoZW4ganVzdCBsaW5rIHlv
dXIgdGVzdCB3aXRoCi1ndGVzdFxfbWFpbiBsaWJyYXJ5IGFuZCB5b3UgYXJlIGdvb2QgdG8gZ28u
Ci0KLU5PVEU6IGBQYXJzZUdVbml0RmxhZ3MoKWAgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBg
SW5pdEdvb2dsZVRlc3QoKWAuCi0KLQotIyMgS25vd24gTGltaXRhdGlvbnMKLQotKiAgIEdvb2ds
ZSBUZXN0IGlzIGRlc2lnbmVkIHRvIGJlIHRocmVhZC1zYWZlLiBUaGUgaW1wbGVtZW50YXRpb24g
aXMgdGhyZWFkLXNhZmUKLSAgICBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBgcHRocmVhZHNgIGxpYnJh
cnkgaXMgYXZhaWxhYmxlLiBJdCBpcyBjdXJyZW50bHkKLSAgICBfdW5zYWZlXyB0byB1c2UgR29v
Z2xlIFRlc3QgYXNzZXJ0aW9ucyBmcm9tIHR3byB0aHJlYWRzIGNvbmN1cnJlbnRseSBvbgotICAg
IG90aGVyIHN5c3RlbXMgKGUuZy4gV2luZG93cykuIEluIG1vc3QgdGVzdHMgdGhpcyBpcyBub3Qg
YW4gaXNzdWUgYXMgdXN1YWxseQotICAgIHRoZSBhc3NlcnRpb25zIGFyZSBkb25lIGluIHRoZSBt
YWluIHRocmVhZC4gSWYgeW91IHdhbnQgdG8gaGVscCwgeW91IGNhbgotICAgIHZvbHVudGVlciB0
byBpbXBsZW1lbnQgdGhlIG5lY2Vzc2FyeSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBpbgot
ICAgIGBndGVzdC1wb3J0LmhgIGZvciB5b3VyIHBsYXRmb3JtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9zYW1wbGVzLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvZG9jcy9zYW1wbGVzLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGRjY2Ez
ODE0OTFlMTk4MjMzMmM2ZDQ0NzJjYTgyZDBkMDIxNzAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3Mvc2Ft
cGxlcy5tZAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMgR29vZ2xldGVzdCBTYW1w
bGVzIHsjc2FtcGxlc30KLQotSWYgeW91J3JlIGxpa2UgdXMsIHlvdSdkIGxpa2UgdG8gbG9vayBh
dCBbZ29vZ2xldGVzdAotc2FtcGxlcy5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xl
dGVzdC90cmVlL21hc3Rlci9nb29nbGV0ZXN0L3NhbXBsZXMpCi1UaGUgc2FtcGxlIGRpcmVjdG9y
eSBoYXMgYSBudW1iZXIgb2Ygd2VsbC1jb21tZW50ZWQgc2FtcGxlcyBzaG93aW5nIGhvdyB0byB1
c2UgYQotdmFyaWV0eSBvZiBnb29nbGV0ZXN0IGZlYXR1cmVzLgotCi0qICAgU2FtcGxlICMxIHNo
b3dzIHRoZSBiYXNpYyBzdGVwcyBvZiB1c2luZyBnb29nbGV0ZXN0IHRvIHRlc3QgQysrIGZ1bmN0
aW9ucy4KLSogICBTYW1wbGUgIzIgc2hvd3MgYSBtb3JlIGNvbXBsZXggdW5pdCB0ZXN0IGZvciBh
IGNsYXNzIHdpdGggbXVsdGlwbGUgbWVtYmVyCi0gICAgZnVuY3Rpb25zLgotKiAgIFNhbXBsZSAj
MyB1c2VzIGEgdGVzdCBmaXh0dXJlLgotKiAgIFNhbXBsZSAjNCB0ZWFjaGVzIHlvdSBob3cgdG8g
dXNlIGdvb2dsZXRlc3QgYW5kIGBnb29nbGV0ZXN0LmhgIHRvZ2V0aGVyIHRvCi0gICAgZ2V0IHRo
ZSBiZXN0IG9mIGJvdGggbGlicmFyaWVzLgotKiAgIFNhbXBsZSAjNSBwdXRzIHNoYXJlZCB0ZXN0
aW5nIGxvZ2ljIGluIGEgYmFzZSB0ZXN0IGZpeHR1cmUsIGFuZCByZXVzZXMgaXQgaW4KLSAgICBk
ZXJpdmVkIGZpeHR1cmVzLgotKiAgIFNhbXBsZSAjNiBkZW1vbnN0cmF0ZXMgdHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3RzLgotKiAgIFNhbXBsZSAjNyB0ZWFjaGVzIHRoZSBiYXNpY3Mgb2YgdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUgIzggc2hvd3MgdXNpbmcgYENvbWJpbmUo
KWAgaW4gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUgIzkgc2hvd3MgdXNl
IG9mIHRoZSBsaXN0ZW5lciBBUEkgdG8gbW9kaWZ5IEdvb2dsZSBUZXN0J3MgY29uc29sZQotICAg
IG91dHB1dCBhbmQgdGhlIHVzZSBvZiBpdHMgcmVmbGVjdGlvbiBBUEkgdG8gaW5zcGVjdCB0ZXN0
IHJlc3VsdHMuCi0qICAgU2FtcGxlICMxMCBzaG93cyB1c2Ugb2YgdGhlIGxpc3RlbmVyIEFQSSB0
byBpbXBsZW1lbnQgYSBwcmltaXRpdmUgbWVtb3J5Ci0gICAgbGVhayBjaGVja2VyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10
ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRo
LXRlc3QuaAppbmRleCAyMGM1NGQ4Njk1MTlmNjkzMGU3ZWJmZDJjMDgwNWJhY2E0MjIxNmJhLi5h
ZGZiMTkyMTExZjI4NjBmZTM3MDEyMzI5ZGM0YTk1Mzc5MjRiMWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3Qu
aApAQCAtMzUsOCArMzUsOCBAQAogLy8gZGlyZWN0bHkuCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9ERUFUSF9U
RVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwor
I2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXworI2Rl
ZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwogCiAjaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIgogCkBAIC0x
NjEsNyArMTYxLDYgQEAgR1RFU1RfQVBJXyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKIC8vICAg
aXMgcmFyZWx5IGEgcHJvYmxlbSBhcyBwZW9wbGUgdXN1YWxseSBkb24ndCBwdXQgdGhlIHRlc3Qg
YmluYXJ5CiAvLyAgIGRpcmVjdG9yeSBpbiBQQVRILgogLy8KLS8vIEZJWE1FOiBtYWtlIHRocmVh
ZC1zYWZlIGRlYXRoIHRlc3RzIHNlYXJjaCB0aGUgUEFUSC4KIAogLy8gQXNzZXJ0cyB0aGF0IGEg
Z2l2ZW4gc3RhdGVtZW50IGNhdXNlcyB0aGUgcHJvZ3JhbSB0byBleGl0LCB3aXRoIGFuCiAvLyBp
bnRlZ2VyIGV4aXQgc3RhdHVzIHRoYXQgc2F0aXNmaWVzIHByZWRpY2F0ZSwgYW5kIGVtaXR0aW5n
IGVycm9yIG91dHB1dApAQCAtMTcwLDcgKzE2OSw3IEBAIEdURVNUX0FQSV8gYm9vbCBJbkRlYXRo
VGVzdENoaWxkKCk7CiAgICAgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUs
IHJlZ2V4LCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKIAogLy8gTGlrZSBBU1NFUlRfRVhJVCwgYnV0
IGNvbnRpbnVlcyBvbiB0byBzdWNjZXNzaXZlIHRlc3RzIGluIHRoZQotLy8gdGVzdCBjYXNlLCBp
ZiBhbnk6CisvLyB0ZXN0IHN1aXRlLCBpZiBhbnk6CiAjIGRlZmluZSBFWFBFQ1RfRVhJVChzdGF0
ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXgpIFwKICAgICBHVEVTVF9ERUFUSF9URVNUXyhzdGF0ZW1l
bnQsIHByZWRpY2F0ZSwgcmVnZXgsIEdURVNUX05PTkZBVEFMX0ZBSUxVUkVfKQogCkBAIC0xODEs
NyArMTgwLDcgQEAgR1RFU1RfQVBJXyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKICAgICBBU1NF
UlRfRVhJVChzdGF0ZW1lbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV4aXRlZFVuc3VjY2Vzc2Z1
bGx5LCByZWdleCkKIAogLy8gTGlrZSBBU1NFUlRfREVBVEgsIGJ1dCBjb250aW51ZXMgb24gdG8g
c3VjY2Vzc2l2ZSB0ZXN0cyBpbiB0aGUKLS8vIHRlc3QgY2FzZSwgaWYgYW55OgorLy8gdGVzdCBz
dWl0ZSwgaWYgYW55OgogIyBkZWZpbmUgRVhQRUNUX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpIFwK
ICAgICBFWFBFQ1RfRVhJVChzdGF0ZW1lbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV4aXRlZFVu
c3VjY2Vzc2Z1bGx5LCByZWdleCkKIApAQCAtMTkxLDExICsxOTAsMTAgQEAgR1RFU1RfQVBJXyBi
b29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKIGNsYXNzIEdURVNUX0FQSV8gRXhpdGVkV2l0aENvZGUg
ewogIHB1YmxpYzoKICAgZXhwbGljaXQgRXhpdGVkV2l0aENvZGUoaW50IGV4aXRfY29kZSk7Cisg
IEV4aXRlZFdpdGhDb2RlKGNvbnN0IEV4aXRlZFdpdGhDb2RlJikgPSBkZWZhdWx0OworICB2b2lk
IG9wZXJhdG9yPShjb25zdCBFeGl0ZWRXaXRoQ29kZSYgb3RoZXIpID0gZGVsZXRlOwogICBib29s
IG9wZXJhdG9yKCkoaW50IGV4aXRfc3RhdHVzKSBjb25zdDsKICBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IEV4aXRlZFdpdGhDb2RlJiBvdGhlcik7Ci0KICAgY29uc3QgaW50IGV4aXRfY29k
ZV87CiB9OwogCkBAIC0yMjgsNyArMjI2LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNp
Z25hbCB7CiAvLyAgIHJldHVybiAxMjsKIC8vIH0KIC8vCi0vLyBURVNUKFRlc3RDYXNlLCBUZXN0
RGllT3IxMldvcmtzSW5EZ2JBbmRPcHQpIHsKKy8vIFRFU1QoVGVzdFN1aXRlLCBUZXN0RGllT3Ix
MldvcmtzSW5EZ2JBbmRPcHQpIHsKIC8vICAgaW50IHNpZGVlZmZlY3QgPSAwOwogLy8gICAvLyBP
bmx5IGFzc2VydHMgaW4gZGJnLgogLy8gICBFWFBFQ1RfREVCVUdfREVBVEgoRGllSW5EZWJ1Z09y
MTIoJnNpZGVlZmZlY3QpLCAiZGVhdGgiKTsKQEAgLTI3NywyMCArMjc1LDIwIEBAIGNsYXNzIEdU
RVNUX0FQSV8gS2lsbGVkQnlTaWduYWwgewogLy8gVGhpcyBtYWNybyBpcyB1c2VkIGZvciBpbXBs
ZW1lbnRpbmcgbWFjcm9zIHN1Y2ggYXMKIC8vIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQgYW5k
IEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQgb24gc3lzdGVtcyB3aGVyZQogLy8gZGVhdGggdGVz
dHMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRob3NlIG1hY3JvcyBtdXN0IGNvbXBpbGUgb24gc3VjaCBz
eXN0ZW1zCi0vLyBpZmYgRVhQRUNUX0RFQVRIIGFuZCBBU1NFUlRfREVBVEggY29tcGlsZSB3aXRo
IHRoZSBzYW1lIHBhcmFtZXRlcnMgb24KLS8vIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGRlYXRoIHRl
c3RzLiBUaGlzIGFsbG93cyBvbmUgdG8gd3JpdGUgc3VjaCBhIG1hY3JvCi0vLyBvbiBhIHN5c3Rl
bSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgZGVhdGggdGVzdHMgYW5kIGJlIHN1cmUgdGhhdCBpdCB3
aWxsCi0vLyBjb21waWxlIG9uIGEgZGVhdGgtdGVzdCBzdXBwb3J0aW5nIHN5c3RlbS4gSXQgaXMg
ZXhwb3NlZCBwdWJsaWNseSBzbyB0aGF0Ci0vLyBzeXN0ZW1zIHRoYXQgaGF2ZSBkZWF0aC10ZXN0
cyB3aXRoIHN0cmljdGVyIHJlcXVpcmVtZW50cyB0aGFuCi0vLyBHVEVTVF9IQVNfREVBVEhfVEVT
VCBjYW4gd3JpdGUgdGhlaXIgb3duIGVxdWl2YWxlbnQgb2YKLS8vIEVYUEVDVF9ERUFUSF9JRl9T
VVBQT1JURUQgYW5kIEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQuCisvLyBpZiBhbmQgb25seSBp
ZiBFWFBFQ1RfREVBVEggYW5kIEFTU0VSVF9ERUFUSCBjb21waWxlIHdpdGggdGhlIHNhbWUgcGFy
YW1ldGVycworLy8gb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgZGVhdGggdGVzdHMuIFRoaXMgYWxs
b3dzIG9uZSB0byB3cml0ZSBzdWNoIGEgbWFjcm8gb24KKy8vIGEgc3lzdGVtIHRoYXQgZG9lcyBu
b3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBhbmQgYmUgc3VyZSB0aGF0IGl0IHdpbGwgY29tcGlsZQor
Ly8gb24gYSBkZWF0aC10ZXN0IHN1cHBvcnRpbmcgc3lzdGVtLiBJdCBpcyBleHBvc2VkIHB1Ymxp
Y2x5IHNvIHRoYXQgc3lzdGVtcworLy8gdGhhdCBoYXZlIGRlYXRoLXRlc3RzIHdpdGggc3RyaWN0
ZXIgcmVxdWlyZW1lbnRzIHRoYW4gR1RFU1RfSEFTX0RFQVRIX1RFU1QKKy8vIGNhbiB3cml0ZSB0
aGVpciBvd24gZXF1aXZhbGVudCBvZiBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEIGFuZAorLy8g
QVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRC4KIC8vCiAvLyBQYXJhbWV0ZXJzOgogLy8gICBzdGF0
ZW1lbnQgLSAgQSBzdGF0ZW1lbnQgdGhhdCBhIG1hY3JvIHN1Y2ggYXMgRVhQRUNUX0RFQVRIIHdv
dWxkIHRlc3QKIC8vICAgICAgICAgICAgICAgIGZvciBwcm9ncmFtIHRlcm1pbmF0aW9uLiBUaGlz
IG1hY3JvIGhhcyB0byBtYWtlIHN1cmUgdGhpcwogLy8gICAgICAgICAgICAgICAgc3RhdGVtZW50
IGlzIGNvbXBpbGVkIGJ1dCBub3QgZXhlY3V0ZWQsIHRvIGVuc3VyZSB0aGF0CiAvLyAgICAgICAg
ICAgICAgICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEIGNvbXBpbGVzIHdpdGggYSBjZXJ0YWlu
Ci0vLyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWZmIEVYUEVDVF9ERUFUSCBjb21waWxlcyB3
aXRoIGl0LgorLy8gICAgICAgICAgICAgICAgcGFyYW1ldGVyIGlmIGFuZCBvbmx5IGlmIEVYUEVD
VF9ERUFUSCBjb21waWxlcyB3aXRoIGl0LgogLy8gICByZWdleCAgICAgLSAgQSByZWdleCB0aGF0
IGEgbWFjcm8gc3VjaCBhcyBFWFBFQ1RfREVBVEggd291bGQgdXNlIHRvIHRlc3QKIC8vICAgICAg
ICAgICAgICAgIHRoZSBvdXRwdXQgb2Ygc3RhdGVtZW50LiAgVGhpcyBwYXJhbWV0ZXIgaGFzIHRv
IGJlCiAvLyAgICAgICAgICAgICAgICBjb21waWxlZCBidXQgbm90IGV2YWx1YXRlZCBieSB0aGlz
IG1hY3JvLCB0byBlbnN1cmUgdGhhdApAQCAtMzQxLDQgKzMzOSw0IEBAIGNsYXNzIEdURVNUX0FQ
SV8gS2lsbGVkQnlTaWduYWwgewogCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYg
IC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXworI2VuZGlmICAvLyBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVBVEhfVEVTVF9IXwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tYXRjaGVycy5oIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tYXRjaGVycy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiZDNkY2Y2MTRhNDVkYjhiYjBkMTA4ZTE2NWI5M2ZlNjk5ODBlYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0
LW1hdGNoZXJzLmgKQEAgLTAsMCArMSw5MzAgQEAKKy8vIENvcHlyaWdodCAyMDA3LCBHb29nbGUg
SW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworLy8gVGhlIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2lu
ZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQorLy8KKy8vIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGp1
c3QgZW5vdWdoIG9mIHRoZSBtYXRjaGVyIGludGVyZmFjZSB0byBhbGxvdworLy8gRVhQRUNUX0RF
QVRIIGFuZCBmcmllbmRzIHRvIGFjY2VwdCBhIG1hdGNoZXIgYXJndW1lbnQuCisKKyNpZm5kZWYg
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01BVENIRVJTX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9NQVRDSEVSU19IXworCisjaW5jbHVkZSA8YXRvbWlj
PgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxvc3RyZWFtPgorI2luY2x1ZGUgPHN0cmlu
Zz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50
ZXJzLmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCisKKy8vIE1TVkMgd2FybmluZyBDNTA0
NiBpcyBuZXcgYXMgb2YgVlMyMDE3IHZlcnNpb24gMTUuOC4KKyNpZiBkZWZpbmVkKF9NU0NfVkVS
KSAmJiBfTVNDX1ZFUiA+PSAxOTE1CisjZGVmaW5lIEdURVNUX01BWUJFXzUwNDZfIDUwNDYKKyNl
bHNlCisjZGVmaW5lIEdURVNUX01BWUJFXzUwNDZfCisjZW5kaWYKKworR1RFU1RfRElTQUJMRV9N
U0NfV0FSTklOR1NfUFVTSF8oCisgICAgNDI1MSBHVEVTVF9NQVlCRV81MDQ2XyAvKiBjbGFzcyBB
IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGllbnRzIG9mIGNsYXNzIEIgKi8KKyAgICAvKiBTeW1ib2wgaW52
b2x2aW5nIHR5cGUgd2l0aCBpbnRlcm5hbCBsaW5rYWdlIG5vdCBkZWZpbmVkICovKQorCituYW1l
c3BhY2UgdGVzdGluZyB7CisKKy8vIFRvIGltcGxlbWVudCBhIG1hdGNoZXIgRm9vIGZvciB0eXBl
IFQsIGRlZmluZToKKy8vICAgMS4gYSBjbGFzcyBGb29NYXRjaGVyTWF0Y2hlciB0aGF0IGltcGxl
bWVudHMgdGhlIG1hdGNoZXIgaW50ZXJmYWNlOgorLy8gICAgIHVzaW5nIGlzX2d0ZXN0X21hdGNo
ZXIgPSB2b2lkOworLy8gICAgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKGNvbnN0IFQmLCBzdGQ6Om9z
dHJlYW0qKTsKKy8vICAgICAgIChNYXRjaFJlc3VsdExpc3RlbmVyKiBjYW4gYWxzbyBiZSB1c2Vk
IGluc3RlYWQgb2Ygc3RkOjpvc3RyZWFtKikKKy8vICAgICB2b2lkIERlc2NyaWJlVG8oc3RkOjpv
c3RyZWFtKik7CisvLyAgICAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oc3RkOjpvc3RyZWFtKik7
CisvLworLy8gICAyLiBhIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgTWF0Y2hlcjxU
PiBvYmplY3QgZnJvbSBhCisvLyAgICAgIEZvb01hdGNoZXJNYXRjaGVyLgorCitjbGFzcyBNYXRj
aFJlc3VsdExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIC8vIENyZWF0ZXMgYSBsaXN0ZW5lciBvYmpl
Y3Qgd2l0aCB0aGUgZ2l2ZW4gdW5kZXJseWluZyBvc3RyZWFtLiAgVGhlCisgIC8vIGxpc3RlbmVy
IGRvZXMgbm90IG93biB0aGUgb3N0cmVhbSwgYW5kIGRvZXMgbm90IGRlcmVmZXJlbmNlIGl0Cisg
IC8vIGluIHRoZSBjb25zdHJ1Y3RvciBvciBkZXN0cnVjdG9yLgorICBleHBsaWNpdCBNYXRjaFJl
c3VsdExpc3RlbmVyKDo6c3RkOjpvc3RyZWFtKiBvcykgOiBzdHJlYW1fKG9zKSB7fQorICB2aXJ0
dWFsIH5NYXRjaFJlc3VsdExpc3RlbmVyKCkgPSAwOyAgLy8gTWFrZXMgdGhpcyBjbGFzcyBhYnN0
cmFjdC4KKworICAvLyBTdHJlYW1zIHggdG8gdGhlIHVuZGVybHlpbmcgb3N0cmVhbTsgZG9lcyBu
b3RoaW5nIGlmIHRoZSBvc3RyZWFtCisgIC8vIGlzIE5VTEwuCisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgorICBNYXRjaFJlc3VsdExpc3RlbmVyJiBvcGVyYXRvcjw8KGNvbnN0IFQmIHgpIHsKKyAg
ICBpZiAoc3RyZWFtXyAhPSBudWxscHRyKSAqc3RyZWFtXyA8PCB4OworICAgIHJldHVybiAqdGhp
czsKKyAgfQorCisgIC8vIFJldHVybnMgdGhlIHVuZGVybHlpbmcgb3N0cmVhbS4KKyAgOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSgpIHsgcmV0dXJuIHN0cmVhbV87IH0KKworICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIGlzIGludGVyZXN0ZWQgaW4gYW4gZXhwbGFu
YXRpb24KKyAgLy8gb2YgdGhlIG1hdGNoIHJlc3VsdC4gIEEgbWF0Y2hlcidzIE1hdGNoQW5kRXhw
bGFpbigpIG1ldGhvZCBjYW4gdXNlCisgIC8vIHRoaXMgaW5mb3JtYXRpb24gdG8gYXZvaWQgZ2Vu
ZXJhdGluZyB0aGUgZXhwbGFuYXRpb24gd2hlbiBubyBvbmUKKyAgLy8gaW50ZW5kcyB0byBoZWFy
IGl0LgorICBib29sIElzSW50ZXJlc3RlZCgpIGNvbnN0IHsgcmV0dXJuIHN0cmVhbV8gIT0gbnVs
bHB0cjsgfQorCisgcHJpdmF0ZToKKyAgOjpzdGQ6Om9zdHJlYW0qIGNvbnN0IHN0cmVhbV87CisK
KyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhNYXRjaFJlc3VsdExpc3RlbmVyKTsK
K307CisKK2lubGluZSBNYXRjaFJlc3VsdExpc3RlbmVyOjp+TWF0Y2hSZXN1bHRMaXN0ZW5lcigp
IHsKK30KKworLy8gQW4gaW5zdGFuY2Ugb2YgYSBzdWJjbGFzcyBvZiB0aGlzIGtub3dzIGhvdyB0
byBkZXNjcmliZSBpdHNlbGYgYXMgYQorLy8gbWF0Y2hlci4KK2NsYXNzIE1hdGNoZXJEZXNjcmli
ZXJJbnRlcmZhY2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+TWF0Y2hlckRlc2NyaWJlckludGVy
ZmFjZSgpIHt9CisKKyAgLy8gRGVzY3JpYmVzIHRoaXMgbWF0Y2hlciB0byBhbiBvc3RyZWFtLiAg
VGhlIGZ1bmN0aW9uIHNob3VsZCBwcmludAorICAvLyBhIHZlcmIgcGhyYXNlIHRoYXQgZGVzY3Jp
YmVzIHRoZSBwcm9wZXJ0eSBhIHZhbHVlIG1hdGNoaW5nIHRoaXMKKyAgLy8gbWF0Y2hlciBzaG91
bGQgaGF2ZS4gIFRoZSBzdWJqZWN0IG9mIHRoZSB2ZXJiIHBocmFzZSBpcyB0aGUgdmFsdWUKKyAg
Ly8gYmVpbmcgbWF0Y2hlZC4gIEZvciBleGFtcGxlLCB0aGUgRGVzY3JpYmVUbygpIG1ldGhvZCBv
ZiB0aGUgR3QoNykKKyAgLy8gbWF0Y2hlciBwcmludHMgImlzIGdyZWF0ZXIgdGhhbiA3Ii4KKyAg
dmlydHVhbCB2b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCA9IDA7CisK
KyAgLy8gRGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBvZiB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVh
bS4gIEZvcgorICAvLyBleGFtcGxlLCBpZiB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBtYXRjaGVy
IGlzICJpcyBncmVhdGVyIHRoYW4KKyAgLy8gNyIsIHRoZSBuZWdhdGVkIGRlc2NyaXB0aW9uIGNv
dWxkIGJlICJpcyBub3QgZ3JlYXRlciB0aGFuIDciLgorICAvLyBZb3UgYXJlIG5vdCByZXF1aXJl
ZCB0byBvdmVycmlkZSB0aGlzIHdoZW4gaW1wbGVtZW50aW5nCisgIC8vIE1hdGNoZXJJbnRlcmZh
Y2UsIGJ1dCBpdCBpcyBoaWdobHkgYWR2aXNlZCBzbyB0aGF0IHlvdXIgbWF0Y2hlcgorICAvLyBj
YW4gcHJvZHVjZSBnb29kIGVycm9yIG1lc3NhZ2VzLgorICB2aXJ0dWFsIHZvaWQgRGVzY3JpYmVO
ZWdhdGlvblRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAgICpvcyA8PCAibm90ICgi
OworICAgIERlc2NyaWJlVG8ob3MpOworICAgICpvcyA8PCAiKSI7CisgIH0KK307CisKKy8vIFRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hdGNoZXIuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2Ns
YXNzIE1hdGNoZXJJbnRlcmZhY2UgOiBwdWJsaWMgTWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSB7
CisgcHVibGljOgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIG1hdGNoZXIg
bWF0Y2hlcyB4OyBhbHNvIGV4cGxhaW5zIHRoZQorICAvLyBtYXRjaCByZXN1bHQgdG8gJ2xpc3Rl
bmVyJyBpZiBuZWNlc3NhcnkgKHNlZSB0aGUgbmV4dCBwYXJhZ3JhcGgpLCBpbgorICAvLyB0aGUg
Zm9ybSBvZiBhIG5vbi1yZXN0cmljdGl2ZSByZWxhdGl2ZSBjbGF1c2UgKCJ3aGljaCAuLi4iLAor
ICAvLyAid2hvc2UgLi4uIiwgZXRjKSB0aGF0IGRlc2NyaWJlcyB4LiAgRm9yIGV4YW1wbGUsIHRo
ZQorICAvLyBNYXRjaEFuZEV4cGxhaW4oKSBtZXRob2Qgb2YgdGhlIFBvaW50ZWUoLi4uKSBtYXRj
aGVyIHNob3VsZAorICAvLyBnZW5lcmF0ZSBhbiBleHBsYW5hdGlvbiBsaWtlICJ3aGljaCBwb2lu
dHMgdG8gLi4uIi4KKyAgLy8KKyAgLy8gSW1wbGVtZW50YXRpb25zIG9mIE1hdGNoQW5kRXhwbGFp
bigpIHNob3VsZCBhZGQgYW4gZXhwbGFuYXRpb24gb2YKKyAgLy8gdGhlIG1hdGNoIHJlc3VsdCAq
aWYgYW5kIG9ubHkgaWYqIHRoZXkgY2FuIHByb3ZpZGUgYWRkaXRpb25hbAorICAvLyBpbmZvcm1h
dGlvbiB0aGF0J3Mgbm90IGFscmVhZHkgcHJlc2VudCAob3Igbm90IG9idmlvdXMpIGluIHRoZQor
ICAvLyBwcmludC1vdXQgb2YgeCBhbmQgdGhlIG1hdGNoZXIncyBkZXNjcmlwdGlvbi4gIFdoZXRo
ZXIgdGhlIG1hdGNoCisgIC8vIHN1Y2NlZWRzIGlzIG5vdCBhIGZhY3RvciBpbiBkZWNpZGluZyB3
aGV0aGVyIGFuIGV4cGxhbmF0aW9uIGlzCisgIC8vIG5lZWRlZCwgYXMgc29tZXRpbWVzIHRoZSBj
YWxsZXIgbmVlZHMgdG8gcHJpbnQgYSBmYWlsdXJlIG1lc3NhZ2UKKyAgLy8gd2hlbiB0aGUgbWF0
Y2ggc3VjY2VlZHMgKGUuZy4gd2hlbiB0aGUgbWF0Y2hlciBpcyB1c2VkIGluc2lkZQorICAvLyBO
b3QoKSkuCisgIC8vCisgIC8vIEZvciBleGFtcGxlLCBhICJoYXMgYXQgbGVhc3QgMTAgZWxlbWVu
dHMiIG1hdGNoZXIgc2hvdWxkIGV4cGxhaW4KKyAgLy8gd2hhdCB0aGUgYWN0dWFsIGVsZW1lbnQg
Y291bnQgaXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIG1hdGNoIHJlc3VsdCwKKyAgLy8gYXMgaXQgaXMg
dXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZSByZWFkZXI7IG9uIHRoZSBvdGhlciBoYW5kLCBhbgor
ICAvLyAiaXMgZW1wdHkiIG1hdGNoZXIgcHJvYmFibHkgb25seSBuZWVkcyB0byBleHBsYWluIHdo
YXQgdGhlIGFjdHVhbAorICAvLyBzaXplIGlzIHdoZW4gdGhlIG1hdGNoIGZhaWxzLCBhcyBpdCdz
IHJlZHVuZGFudCB0byBzYXkgdGhhdCB0aGUKKyAgLy8gc2l6ZSBpcyAwIHdoZW4gdGhlIHZhbHVl
IGlzIGFscmVhZHkga25vd24gdG8gYmUgZW1wdHkuCisgIC8vCisgIC8vIFlvdSBzaG91bGQgb3Zl
cnJpZGUgdGhpcyBtZXRob2Qgd2hlbiBkZWZpbmluZyBhIG5ldyBtYXRjaGVyLgorICAvLworICAv
LyBJdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIChHb29nbGUgVGVzdCkgdG8g
Z3VhcmFudGVlCisgIC8vIHRoYXQgJ2xpc3RlbmVyJyBpcyBub3QgTlVMTC4gIFRoaXMgaGVscHMg
dG8gc2ltcGxpZnkgYSBtYXRjaGVyJ3MKKyAgLy8gaW1wbGVtZW50YXRpb24gd2hlbiBpdCBkb2Vz
bid0IGNhcmUgYWJvdXQgdGhlIHBlcmZvcm1hbmNlLCBhcyBpdAorICAvLyBjYW4gdGFsayB0byAn
bGlzdGVuZXInIHdpdGhvdXQgY2hlY2tpbmcgaXRzIHZhbGlkaXR5IGZpcnN0LgorICAvLyBIb3dl
dmVyLCBpbiBvcmRlciB0byBpbXBsZW1lbnQgZHVtbXkgbGlzdGVuZXJzIGVmZmljaWVudGx5LAor
ICAvLyBsaXN0ZW5lci0+c3RyZWFtKCkgbWF5IGJlIE5VTEwuCisgIHZpcnR1YWwgYm9vbCBNYXRj
aEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3QgPSAw
OworCisgIC8vIEluaGVyaXRzIHRoZXNlIG1ldGhvZHMgZnJvbSBNYXRjaGVyRGVzY3JpYmVySW50
ZXJmYWNlOgorICAvLyAgIHZpcnR1YWwgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFtKiBv
cykgY29uc3QgPSAwOworICAvLyAgIHZpcnR1YWwgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oOjpz
dGQ6Om9zdHJlYW0qIG9zKSBjb25zdDsKK307CisKK25hbWVzcGFjZSBpbnRlcm5hbCB7CisKK3N0
cnVjdCBBbnlFcSB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29s
IG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA9PSBi
OyB9Cit9Oworc3RydWN0IEFueU5lIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1l
IEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7IHJl
dHVybiBhICE9IGI7IH0KK307CitzdHJ1Y3QgQW55THQgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
QSwgdHlwZW5hbWUgQj4KKyAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IEEmIGEsIGNvbnN0IEImIGIp
IGNvbnN0IHsgcmV0dXJuIGEgPCBiOyB9Cit9Oworc3RydWN0IEFueUd0IHsKKyAgdGVtcGxhdGUg
PHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBj
b25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhID4gYjsgfQorfTsKK3N0cnVjdCBBbnlMZSB7Cisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29sIG9wZXJhdG9yKCkoY29u
c3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA8PSBiOyB9Cit9Oworc3RydWN0
IEFueUdlIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3Bl
cmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhID49IGI7IH0K
K307CisKKy8vIEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVyIHRoYXQgaWdub3JlcyB0aGUgZXhwbGFu
YXRpb24uCitjbGFzcyBEdW1teU1hdGNoUmVzdWx0TGlzdGVuZXIgOiBwdWJsaWMgTWF0Y2hSZXN1
bHRMaXN0ZW5lciB7CisgcHVibGljOgorICBEdW1teU1hdGNoUmVzdWx0TGlzdGVuZXIoKSA6IE1h
dGNoUmVzdWx0TGlzdGVuZXIobnVsbHB0cikge30KKworIHByaXZhdGU6CisgIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oRHVtbXlNYXRjaFJlc3VsdExpc3RlbmVyKTsKK307CisKKy8v
IEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVyIHRoYXQgZm9yd2FyZHMgdGhlIGV4cGxhbmF0aW9uIHRv
IGEgZ2l2ZW4KKy8vIG9zdHJlYW0uICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIE1h
dGNoUmVzdWx0TGlzdGVuZXIgaXMKKy8vIHRoYXQgdGhlIGZvcm1lciBpcyBjb25jcmV0ZS4KK2Ns
YXNzIFN0cmVhbU1hdGNoUmVzdWx0TGlzdGVuZXIgOiBwdWJsaWMgTWF0Y2hSZXN1bHRMaXN0ZW5l
ciB7CisgcHVibGljOgorICBleHBsaWNpdCBTdHJlYW1NYXRjaFJlc3VsdExpc3RlbmVyKDo6c3Rk
Ojpvc3RyZWFtKiBvcykKKyAgICAgIDogTWF0Y2hSZXN1bHRMaXN0ZW5lcihvcykge30KKworIHBy
aXZhdGU6CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3RyZWFtTWF0Y2hSZXN1
bHRMaXN0ZW5lcik7Cit9OworCitzdHJ1Y3QgU2hhcmVkUGF5bG9hZEJhc2UgeworICBzdGQ6OmF0
b21pYzxpbnQ+IHJlZnsxfTsKKyAgdm9pZCBSZWYoKSB7IHJlZi5mZXRjaF9hZGQoMSwgc3RkOjpt
ZW1vcnlfb3JkZXJfcmVsYXhlZCk7IH0KKyAgYm9vbCBVbnJlZigpIHsgcmV0dXJuIHJlZi5mZXRj
aF9zdWIoMSwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCkgPT0gMTsgfQorfTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgU2hhcmVkUGF5bG9hZCA6IFNoYXJlZFBheWxvYWRCYXNl
IHsKKyAgZXhwbGljaXQgU2hhcmVkUGF5bG9hZChjb25zdCBUJiB2KSA6IHZhbHVlKHYpIHt9Cisg
IGV4cGxpY2l0IFNoYXJlZFBheWxvYWQoVCYmIHYpIDogdmFsdWUoc3RkOjptb3ZlKHYpKSB7fQor
CisgIHN0YXRpYyB2b2lkIERlc3Ryb3koU2hhcmVkUGF5bG9hZEJhc2UqIHNoYXJlZCkgeworICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxTaGFyZWRQYXlsb2FkKj4oc2hhcmVkKTsKKyAgfQorCisgIFQg
dmFsdWU7Cit9OworCisvLyBBbiBpbnRlcm5hbCBjbGFzcyBmb3IgaW1wbGVtZW50aW5nIE1hdGNo
ZXI8VD4sIHdoaWNoIHdpbGwgZGVyaXZlCisvLyBmcm9tIGl0LiAgV2UgcHV0IGZ1bmN0aW9uYWxp
dGllcyBjb21tb24gdG8gYWxsIE1hdGNoZXI8VD4KKy8vIHNwZWNpYWxpemF0aW9ucyBoZXJlIHRv
IGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE1h
dGNoZXJCYXNlIDogcHJpdmF0ZSBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlIHsKKyBwdWJsaWM6
CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgbWF0Y2hlciBtYXRjaGVzIHg7
IGFsc28gZXhwbGFpbnMgdGhlCisgIC8vIG1hdGNoIHJlc3VsdCB0byAnbGlzdGVuZXInLgorICBi
b29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBUJiB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0
ZW5lcikgY29uc3QgeworICAgIEdURVNUX0NIRUNLXyh2dGFibGVfICE9IG51bGxwdHIpOworICAg
IHJldHVybiB2dGFibGVfLT5tYXRjaF9hbmRfZXhwbGFpbigqdGhpcywgeCwgbGlzdGVuZXIpOwor
ICB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgbWF0Y2hlciBtYXRj
aGVzIHguCisgIGJvb2wgTWF0Y2hlcyhjb25zdCBUJiB4KSBjb25zdCB7CisgICAgRHVtbXlNYXRj
aFJlc3VsdExpc3RlbmVyIGR1bW15OworICAgIHJldHVybiBNYXRjaEFuZEV4cGxhaW4oeCwgJmR1
bW15KTsKKyAgfQorCisgIC8vIERlc2NyaWJlcyB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4K
KyAgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgZmluYWwgeworICAg
IEdURVNUX0NIRUNLXyh2dGFibGVfICE9IG51bGxwdHIpOworICAgIHZ0YWJsZV8tPmRlc2NyaWJl
KCp0aGlzLCBvcywgZmFsc2UpOworICB9CisKKyAgLy8gRGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBv
ZiB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4KKyAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8o
OjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCBmaW5hbCB7CisgICAgR1RFU1RfQ0hFQ0tfKHZ0YWJs
ZV8gIT0gbnVsbHB0cik7CisgICAgdnRhYmxlXy0+ZGVzY3JpYmUoKnRoaXMsIG9zLCB0cnVlKTsK
KyAgfQorCisgIC8vIEV4cGxhaW5zIHdoeSB4IG1hdGNoZXMsIG9yIGRvZXNuJ3QgbWF0Y2gsIHRo
ZSBtYXRjaGVyLgorICB2b2lkIEV4cGxhaW5NYXRjaFJlc3VsdFRvKGNvbnN0IFQmIHgsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgY29uc3QgeworICAgIFN0cmVhbU1hdGNoUmVzdWx0TGlzdGVuZXIgbGlz
dGVuZXIob3MpOworICAgIE1hdGNoQW5kRXhwbGFpbih4LCAmbGlzdGVuZXIpOworICB9CisKKyAg
Ly8gUmV0dXJucyB0aGUgZGVzY3JpYmVyIGZvciB0aGlzIG1hdGNoZXIgb2JqZWN0OyByZXRhaW5z
IG93bmVyc2hpcAorICAvLyBvZiB0aGUgZGVzY3JpYmVyLCB3aGljaCBpcyBvbmx5IGd1YXJhbnRl
ZWQgdG8gYmUgYWxpdmUgd2hlbgorICAvLyB0aGlzIG1hdGNoZXIgb2JqZWN0IGlzIGFsaXZlLgor
ICBjb25zdCBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlKiBHZXREZXNjcmliZXIoKSBjb25zdCB7
CisgICAgaWYgKHZ0YWJsZV8gPT0gbnVsbHB0cikgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IHZ0YWJsZV8tPmdldF9kZXNjcmliZXIoKnRoaXMpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIE1h
dGNoZXJCYXNlKCkgOiB2dGFibGVfKG51bGxwdHIpIHt9CisKKyAgLy8gQ29uc3RydWN0cyBhIG1h
dGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50YXRpb24uCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgor
ICBleHBsaWNpdCBNYXRjaGVyQmFzZShjb25zdCBNYXRjaGVySW50ZXJmYWNlPFU+KiBpbXBsKSB7
CisgICAgSW5pdChpbXBsKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFt
ZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hlckJhc2UoTSYmIG0p
IHsgIC8vIE5PTElOVAorICAgIEluaXQoc3RkOjpmb3J3YXJkPE0+KG0pKTsKKyAgfQorCisgIE1h
dGNoZXJCYXNlKGNvbnN0IE1hdGNoZXJCYXNlJiBvdGhlcikKKyAgICAgIDogdnRhYmxlXyhvdGhl
ci52dGFibGVfKSwgYnVmZmVyXyhvdGhlci5idWZmZXJfKSB7CisgICAgaWYgKElzU2hhcmVkKCkp
IGJ1ZmZlcl8uc2hhcmVkLT5SZWYoKTsKKyAgfQorCisgIE1hdGNoZXJCYXNlJiBvcGVyYXRvcj0o
Y29uc3QgTWF0Y2hlckJhc2UmIG90aGVyKSB7CisgICAgaWYgKHRoaXMgPT0gJm90aGVyKSByZXR1
cm4gKnRoaXM7CisgICAgRGVzdHJveSgpOworICAgIHZ0YWJsZV8gPSBvdGhlci52dGFibGVfOwor
ICAgIGJ1ZmZlcl8gPSBvdGhlci5idWZmZXJfOworICAgIGlmIChJc1NoYXJlZCgpKSBidWZmZXJf
LnNoYXJlZC0+UmVmKCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgTWF0Y2hlckJhc2Uo
TWF0Y2hlckJhc2UmJiBvdGhlcikKKyAgICAgIDogdnRhYmxlXyhvdGhlci52dGFibGVfKSwgYnVm
ZmVyXyhvdGhlci5idWZmZXJfKSB7CisgICAgb3RoZXIudnRhYmxlXyA9IG51bGxwdHI7CisgIH0K
KworICBNYXRjaGVyQmFzZSYgb3BlcmF0b3I9KE1hdGNoZXJCYXNlJiYgb3RoZXIpIHsKKyAgICBp
ZiAodGhpcyA9PSAmb3RoZXIpIHJldHVybiAqdGhpczsKKyAgICBEZXN0cm95KCk7CisgICAgdnRh
YmxlXyA9IG90aGVyLnZ0YWJsZV87CisgICAgYnVmZmVyXyA9IG90aGVyLmJ1ZmZlcl87CisgICAg
b3RoZXIudnRhYmxlXyA9IG51bGxwdHI7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgfk1h
dGNoZXJCYXNlKCkgb3ZlcnJpZGUgeyBEZXN0cm95KCk7IH0KKworIHByaXZhdGU6CisgIHN0cnVj
dCBWVGFibGUgeworICAgIGJvb2wgKCptYXRjaF9hbmRfZXhwbGFpbikoY29uc3QgTWF0Y2hlckJh
c2UmLCBjb25zdCBUJiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0
TGlzdGVuZXIqKTsKKyAgICB2b2lkICgqZGVzY3JpYmUpKGNvbnN0IE1hdGNoZXJCYXNlJiwgc3Rk
Ojpvc3RyZWFtKiwgYm9vbCBuZWdhdGlvbik7CisgICAgLy8gUmV0dXJucyB0aGUgY2FwdHVyZWQg
b2JqZWN0IGlmIGl0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZSwgb3RoZXJ3aXNlCisgICAgLy8g
cmV0dXJucyB0aGUgTWF0Y2hlckJhc2UgaXRzZWxmLgorICAgIGNvbnN0IE1hdGNoZXJEZXNjcmli
ZXJJbnRlcmZhY2UqICgqZ2V0X2Rlc2NyaWJlcikoY29uc3QgTWF0Y2hlckJhc2UmKTsKKyAgICAv
LyBDYWxsZWQgb24gc2hhcmVkIGluc3RhbmNlcyB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVh
Y2hlcyAwLgorICAgIHZvaWQgKCpzaGFyZWRfZGVzdHJveSkoU2hhcmVkUGF5bG9hZEJhc2UqKTsK
KyAgfTsKKworICBib29sIElzU2hhcmVkKCkgY29uc3QgeworICAgIHJldHVybiB2dGFibGVfICE9
IG51bGxwdHIgJiYgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ryb3kgIT0gbnVsbHB0cjsKKyAgfQorCisg
IC8vIElmIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgbGlzdGVuZXIsIGNhbGwgdGhhdC4KKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIFA+CisgIHN0YXRpYyBhdXRvIE1hdGNoQW5kRXhwbGFpbkltcGwo
Y29uc3QgTWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQmIHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIqIGxpc3RlbmVyKQorICAgICAgLT4g
ZGVjbHR5cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhwbGFpbih2YWx1ZSwgbGlzdGVuZXItPnN0cmVh
bSgpKSkgeworICAgIHJldHVybiBQOjpHZXQobSkuTWF0Y2hBbmRFeHBsYWluKHZhbHVlLCBsaXN0
ZW5lci0+c3RyZWFtKCkpOworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFA+CisgIHN0YXRp
YyBhdXRvIE1hdGNoQW5kRXhwbGFpbkltcGwoY29uc3QgTWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQm
IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlz
dGVuZXIqIGxpc3RlbmVyKQorICAgICAgLT4gZGVjbHR5cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhw
bGFpbih2YWx1ZSwgbGlzdGVuZXIpKSB7CisgICAgcmV0dXJuIFA6OkdldChtKS5NYXRjaEFuZEV4
cGxhaW4odmFsdWUsIGxpc3RlbmVyKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgor
ICBzdGF0aWMgdm9pZCBEZXNjcmliZUltcGwoY29uc3QgTWF0Y2hlckJhc2UmIG0sIHN0ZDo6b3N0
cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG5lZ2F0aW9uKSB7Cisg
ICAgaWYgKG5lZ2F0aW9uKSB7CisgICAgICBQOjpHZXQobSkuRGVzY3JpYmVOZWdhdGlvblRvKG9z
KTsKKyAgICB9IGVsc2UgeworICAgICAgUDo6R2V0KG0pLkRlc2NyaWJlVG8ob3MpOworICAgIH0K
KyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgorICBzdGF0aWMgY29uc3QgTWF0Y2hlckRl
c2NyaWJlckludGVyZmFjZSogR2V0RGVzY3JpYmVySW1wbCgKKyAgICAgIGNvbnN0IE1hdGNoZXJC
YXNlJiBtKSB7CisgICAgLy8gSWYgdGhlIGltcGwgaXMgYSBNYXRjaGVyRGVzY3JpYmVySW50ZXJm
YWNlLCB0aGVuIHJldHVybiBpdC4KKyAgICAvLyBPdGhlcndpc2UgdXNlIE1hdGNoZXJCYXNlIGl0
c2VsZi4KKyAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBpbXBsZW1lbnQgdGhlIEdldERlc2NyaWJl
cigpIGZ1bmN0aW9uIHdpdGhvdXQgc3VwcG9ydAorICAgIC8vIGZyb20gdGhlIGltcGwsIGJ1dCBz
b21lIHVzZXJzIHJlYWxseSB3YW50IHRvIGdldCB0aGVpciBpbXBsIGJhY2sgd2hlbgorICAgIC8v
IHRoZXkgY2FsbCBHZXREZXNjcmliZXIoKS4KKyAgICAvLyBXZSB1c2Ugc3RkOjpnZXQgb24gYSB0
dXBsZSBhcyBhIHdvcmthcm91bmQgb2Ygbm90IGhhdmluZyBgaWYgY29uc3RleHByYC4KKyAgICBy
ZXR1cm4gc3RkOjpnZXQ8KAorICAgICAgICBzdGQ6OmlzX2NvbnZlcnRpYmxlPGRlY2x0eXBlKCZQ
OjpHZXQobSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1hdGNoZXJEZXNj
cmliZXJJbnRlcmZhY2UqPjo6dmFsdWUKKyAgICAgICAgICAgID8gMQorICAgICAgICAgICAgOiAw
KT4oc3RkOjptYWtlX3R1cGxlKCZtLCAmUDo6R2V0KG0pKSk7CisgIH0KKworICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgUD4KKyAgY29uc3QgVlRhYmxlKiBHZXRWVGFibGUoKSB7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBWVGFibGUga1ZUYWJsZSA9IHsmTWF0Y2hBbmRFeHBsYWluSW1wbDxQPiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXNjcmliZUltcGw8UD4sICZHZXRE
ZXNjcmliZXJJbXBsPFA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UDo6c2hhcmVkX2Rlc3Ryb3l9OworICAgIHJldHVybiAma1ZUYWJsZTsKKyAgfQorCisgIHVuaW9u
IEJ1ZmZlciB7CisgICAgLy8gQWRkIHNvbWUgdHlwZXMgdG8gZ2l2ZSBCdWZmZXIgc29tZSBjb21t
b24gYWxpZ25tZW50L3NpemUgdXNlIGNhc2VzLgorICAgIHZvaWQqIHB0cjsKKyAgICBkb3VibGUg
ZDsKKyAgICBpbnQ2NF90IGk7CisgICAgLy8gQW5kIGFkZCBvbmUgZm9yIHRoZSBvdXQtb2YtbGlu
ZSBjYXNlcy4KKyAgICBTaGFyZWRQYXlsb2FkQmFzZSogc2hhcmVkOworICB9OworCisgIHZvaWQg
RGVzdHJveSgpIHsKKyAgICBpZiAoSXNTaGFyZWQoKSAmJiBidWZmZXJfLnNoYXJlZC0+VW5yZWYo
KSkgeworICAgICAgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ryb3koYnVmZmVyXy5zaGFyZWQpOworICAg
IH0KKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNPgorICBzdGF0aWMgY29uc3RleHByIGJv
b2wgSXNJbmxpbmVkKCkgeworICAgIHJldHVybiBzaXplb2YoTSkgPD0gc2l6ZW9mKEJ1ZmZlcikg
JiYgYWxpZ25vZihNKSA8PSBhbGlnbm9mKEJ1ZmZlcikgJiYKKyAgICAgICAgICAgc3RkOjppc190
cml2aWFsbHlfY29weV9jb25zdHJ1Y3RpYmxlPE0+Ojp2YWx1ZSAmJgorICAgICAgICAgICBzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8TT46OnZhbHVlOworICB9CisKKyAgdGVtcGxhdGUg
PHR5cGVuYW1lIE0sIGJvb2wgPSBNYXRjaGVyQmFzZTo6SXNJbmxpbmVkPE0+KCk+CisgIHN0cnVj
dCBWYWx1ZVBvbGljeSB7CisgICAgc3RhdGljIGNvbnN0IE0mIEdldChjb25zdCBNYXRjaGVyQmFz
ZSYgbSkgeworICAgICAgLy8gV2hlbiBpbmxpbmVkIGFsb25nIHdpdGggSW5pdCwgbmVlZCB0byBi
ZSBleHBsaWNpdCB0byBhdm9pZCB2aW9sYXRpbmcKKyAgICAgIC8vIHN0cmljdCBhbGlhc2luZyBy
dWxlcy4KKyAgICAgIGNvbnN0IE0gKnB0ciA9IHN0YXRpY19jYXN0PGNvbnN0IE0qPigKKyAgICAg
ICAgICBzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oJm0uYnVmZmVyXykpOworICAgICAgcmV0dXJu
ICpwdHI7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIEluaXQoTWF0Y2hlckJhc2UmIG0sIE0gaW1w
bCkgeworICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPigmbS5idWZmZXJfKSkgTShpbXBs
KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNoYXJlZF9kZXN0cm95ID0gbnVs
bHB0cjsKKyAgfTsKKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTT4KKyAgc3RydWN0IFZhbHVlUG9s
aWN5PE0sIGZhbHNlPiB7CisgICAgdXNpbmcgU2hhcmVkID0gU2hhcmVkUGF5bG9hZDxNPjsKKyAg
ICBzdGF0aWMgY29uc3QgTSYgR2V0KGNvbnN0IE1hdGNoZXJCYXNlJiBtKSB7CisgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U2hhcmVkKj4obS5idWZmZXJfLnNoYXJlZCktPnZhbHVlOworICAgIH0K
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnPgorICAgIHN0YXRpYyB2b2lkIEluaXQoTWF0Y2hl
ckJhc2UmIG0sIEFyZyYmIGFyZykgeworICAgICAgbS5idWZmZXJfLnNoYXJlZCA9IG5ldyBTaGFy
ZWQoc3RkOjpmb3J3YXJkPEFyZz4oYXJnKSk7CisgICAgfQorICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBzaGFyZWRfZGVzdHJveSA9ICZTaGFyZWQ6OkRlc3Ryb3k7CisgIH07CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIFUsIGJvb2wgQj4KKyAgc3RydWN0IFZhbHVlUG9saWN5PGNvbnN0IE1hdGNo
ZXJJbnRlcmZhY2U8VT4qLCBCPiB7CisgICAgdXNpbmcgTSA9IGNvbnN0IE1hdGNoZXJJbnRlcmZh
Y2U8VT47CisgICAgdXNpbmcgU2hhcmVkID0gU2hhcmVkUGF5bG9hZDxzdGQ6OnVuaXF1ZV9wdHI8
TT4+OworICAgIHN0YXRpYyBjb25zdCBNJiBHZXQoY29uc3QgTWF0Y2hlckJhc2UmIG0pIHsKKyAg
ICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8U2hhcmVkKj4obS5idWZmZXJfLnNoYXJlZCktPnZhbHVl
OworICAgIH0KKyAgICBzdGF0aWMgdm9pZCBJbml0KE1hdGNoZXJCYXNlJiBtLCBNKiBpbXBsKSB7
CisgICAgICBtLmJ1ZmZlcl8uc2hhcmVkID0gbmV3IFNoYXJlZChzdGQ6OnVuaXF1ZV9wdHI8TT4o
aW1wbCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzaGFyZWRfZGVzdHJv
eSA9ICZTaGFyZWQ6OkRlc3Ryb3k7CisgIH07CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0+Cisg
IHZvaWQgSW5pdChNJiYgbSkgeworICAgIHVzaW5nIE1NID0gdHlwZW5hbWUgc3RkOjpkZWNheTxN
Pjo6dHlwZTsKKyAgICB1c2luZyBQb2xpY3kgPSBWYWx1ZVBvbGljeTxNTT47CisgICAgdnRhYmxl
XyA9IEdldFZUYWJsZTxQb2xpY3k+KCk7CisgICAgUG9saWN5OjpJbml0KCp0aGlzLCBzdGQ6OmZv
cndhcmQ8TT4obSkpOworICB9CisKKyAgY29uc3QgVlRhYmxlKiB2dGFibGVfOworICBCdWZmZXIg
YnVmZmVyXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBBIE1hdGNoZXI8
VD4gaXMgYSBjb3B5YWJsZSBhbmQgSU1NVVRBQkxFIChleGNlcHQgYnkgYXNzaWdubWVudCkKKy8v
IG9iamVjdCB0aGF0IGNhbiBjaGVjayB3aGV0aGVyIGEgdmFsdWUgb2YgdHlwZSBUIG1hdGNoZXMu
ICBUaGUKKy8vIGltcGxlbWVudGF0aW9uIG9mIE1hdGNoZXI8VD4gaXMganVzdCBhIHN0ZDo6c2hh
cmVkX3B0ciB0byBjb25zdAorLy8gTWF0Y2hlckludGVyZmFjZTxUPi4gIERvbid0IGluaGVyaXQg
ZnJvbSBNYXRjaGVyIQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBNYXRjaGVyIDogcHVi
bGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxUPiB7CisgcHVibGljOgorICAvLyBDb25zdHJ1Y3Rz
IGEgbnVsbCBtYXRjaGVyLiAgTmVlZGVkIGZvciBzdG9yaW5nIE1hdGNoZXIgb2JqZWN0cyBpbiBT
VEwKKyAgLy8gY29udGFpbmVycy4gIEEgZGVmYXVsdC1jb25zdHJ1Y3RlZCBtYXRjaGVyIGlzIG5v
dCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3UKKyAgLy8gY2Fubm90IHVzZSBpdCB1bnRpbCBhIHZhbGlk
IHZhbHVlIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGl0LgorICBleHBsaWNpdCBNYXRjaGVyKCkge30g
IC8vIE5PTElOVAorCisgIC8vIENvbnN0cnVjdHMgYSBtYXRjaGVyIGZyb20gaXRzIGltcGxlbWVu
dGF0aW9uLgorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3Qg
VCY+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8VD4oaW1wbCkge30KKwor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KKyAgZXhwbGljaXQgTWF0Y2hlcigKKyAgICAgIGNvbnN0
IE1hdGNoZXJJbnRlcmZhY2U8VT4qIGltcGwsCisgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
Zjwhc3RkOjppc19zYW1lPFUsIGNvbnN0IFUmPjo6dmFsdWU+Ojp0eXBlKiA9CisgICAgICAgICAg
bnVsbHB0cikKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPFQ+KGltcGwpIHt9CisKKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVm
ZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9t
YXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxUPihzdGQ6
OmZvcndhcmQ8TT4obSkpIHt9ICAvLyBOT0xJTlQKKworICAvLyBJbXBsaWNpdCBjb25zdHJ1Y3Rv
ciBoZXJlIGFsbG93cyBwZW9wbGUgdG8gd3JpdGUKKyAgLy8gRVhQRUNUX0NBTEwoZm9vLCBCYXIo
NSkpIGluc3RlYWQgb2YgRVhQRUNUX0NBTEwoZm9vLCBCYXIoRXEoNSkpKSBzb21ldGltZXMKKyAg
TWF0Y2hlcihUIHZhbHVlKTsgIC8vIE5PTElOVAorfTsKKworLy8gVGhlIGZvbGxvd2luZyB0d28g
c3BlY2lhbGl6YXRpb25zIGFsbG93IHRoZSB1c2VyIHRvIHdyaXRlIHN0cgorLy8gaW5zdGVhZCBv
ZiBFcShzdHIpIGFuZCAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSB3aGVuIGEgc3RkOjpzdHJp
bmcKKy8vIG1hdGNoZXIgaXMgZXhwZWN0ZWQuCit0ZW1wbGF0ZSA8PgorY2xhc3MgR1RFU1RfQVBJ
XyBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4KKyAgICA6IHB1YmxpYyBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30K
KworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3Qgc3RkOjpz
dHJpbmcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6
c3RyaW5nJj4oaW1wbCkge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTSwgdHlwZW5hbWUgPSB0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTT46OnR5cGU6OmlzX2d0ZXN0X21hdGNoZXI+CisgIE1hdGNoZXIoTSYmIG0pICAvLyBOT0xJ
TlQKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6c3RyaW5nJj4oc3Rk
Ojpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIg
aW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpz
dHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElO
VAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJm
b28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQKK307
CisKK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElfIE1hdGNoZXI8c3RkOjpzdHJpbmc+Cisg
ICAgOiBwdWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPHN0ZDo6c3RyaW5nPiB7CisgcHVibGlj
OgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRl
cmZhY2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNo
ZXJCYXNlPHN0ZDo6c3RyaW5nPihpbXBsKSB7fQorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1h
dGNoZXJJbnRlcmZhY2U8c3RkOjpzdHJpbmc+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8c3RkOjpzdHJpbmc+KGltcGwpIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0s
IHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVyPgorICBNYXRjaGVyKE0m
JiBtKSAgLy8gTk9MSU5UCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxzdGQ6OnN0cmlu
Zz4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0
ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEg
c3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcyk7ICAvLyBOT0xJ
TlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUgImZvbyIgaW5zdGVhZCBvZiBFcSgi
Zm9vIikgc29tZXRpbWVzLgorICBNYXRjaGVyKGNvbnN0IGNoYXIqIHMpOyAgLy8gTk9MSU5UCit9
OworCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisvLyBUaGUgZm9sbG93aW5n
IHR3byBzcGVjaWFsaXphdGlvbnMgYWxsb3cgdGhlIHVzZXIgdG8gd3JpdGUgc3RyCisvLyBpbnN0
ZWFkIG9mIEVxKHN0cikgYW5kICJmb28iIGluc3RlYWQgb2YgRXEoImZvbyIpIHdoZW4gYSBhYnNs
OjpzdHJpbmdfdmlldworLy8gbWF0Y2hlciBpcyBleHBlY3RlZC4KK3RlbXBsYXRlIDw+CitjbGFz
cyBHVEVTVF9BUElfIE1hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPgorICAgIDog
cHVibGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxjb25zdCBpbnRlcm5hbDo6U3RyaW5nVmlldyY+
IHsKKyBwdWJsaWM6CisgIE1hdGNoZXIoKSB7fQorCisgIGV4cGxpY2l0IE1hdGNoZXIoY29uc3Qg
TWF0Y2hlckludGVyZmFjZTxjb25zdCBpbnRlcm5hbDo6U3RyaW5nVmlldyY+KiBpbXBsKQorICAg
ICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPihp
bXBsKSB7fQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNPjo6dHlw
ZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hlcihNJiYgbSkgIC8vIE5PTElOVAorICAgICAg
OiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPihzdGQ6
OmZvcndhcmQ8TT4obSkpIHsKKyAgfQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBz
dHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3Rk
OjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5P
TElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVx
KCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQK
KworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFzcyBhYnNsOjpzdHJpbmdfdmlld3Mgb3Igc3Rk
OjpzdHJpbmdfdmlld3MgZGlyZWN0bHkuCisgIE1hdGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcg
cyk7ICAvLyBOT0xJTlQKK307CisKK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElfIE1hdGNo
ZXI8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+CisgICAgOiBwdWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJC
YXNlPGludGVybmFsOjpTdHJpbmdWaWV3PiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30KKwor
ICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3QgaW50ZXJuYWw6
OlN0cmluZ1ZpZXcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGludGVy
bmFsOjpTdHJpbmdWaWV3PihpbXBsKSB7fQorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNo
ZXJJbnRlcmZhY2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+KiBpbXBsKQorICAgICAgOiBpbnRlcm5h
bDo6TWF0Y2hlckJhc2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+KGltcGwpIHt9CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNl
PAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVy
PgorICBNYXRjaGVyKE0mJiBtKSAgLy8gTk9MSU5UCisgICAgICA6IGludGVybmFsOjpNYXRjaGVy
QmFzZTxpbnRlcm5hbDo6U3RyaW5nVmlldz4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8v
IEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1l
cywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNv
bnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0
byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIo
Y29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFz
cyBhYnNsOjpzdHJpbmdfdmlld3Mgb3Igc3RkOjpzdHJpbmdfdmlld3MgZGlyZWN0bHkuCisgIE1h
dGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgcyk7ICAvLyBOT0xJTlQKK307CisjZW5kaWYgIC8v
IEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworCisvLyBQcmludHMgYSBtYXRjaGVyIGlu
IGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGQ6Om9z
dHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgTWF0Y2hlcjxUPiYgbWF0
Y2hlcikgeworICBtYXRjaGVyLkRlc2NyaWJlVG8oJm9zKTsKKyAgcmV0dXJuIG9zOworfQorCisv
LyBUaGUgUG9seW1vcnBoaWNNYXRjaGVyIGNsYXNzIHRlbXBsYXRlIG1ha2VzIGl0IGVhc3kgdG8g
aW1wbGVtZW50IGEKKy8vIHBvbHltb3JwaGljIG1hdGNoZXIgKGkuZS4gYSBtYXRjaGVyIHRoYXQg
Y2FuIG1hdGNoIHZhbHVlcyBvZiBtb3JlCisvLyB0aGFuIG9uZSB0eXBlLCBlLmcuIEVxKG4pIGFu
ZCBOb3ROdWxsKCkpLgorLy8KKy8vIFRvIGRlZmluZSBhIHBvbHltb3JwaGljIG1hdGNoZXIsIGEg
dXNlciBzaG91bGQgcHJvdmlkZSBhbiBJbXBsCisvLyBjbGFzcyB0aGF0IGhhcyBhIERlc2NyaWJl
VG8oKSBtZXRob2QgYW5kIGEgRGVzY3JpYmVOZWdhdGlvblRvKCkKKy8vIG1ldGhvZCwgYW5kIGRl
ZmluZSBhIG1lbWJlciBmdW5jdGlvbiAob3IgbWVtYmVyIGZ1bmN0aW9uIHRlbXBsYXRlKQorLy8K
Ky8vICAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3QgVmFsdWUmIHZhbHVlLAorLy8gICAgICAg
ICAgICAgICAgICAgICAgICBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3Q7Cisv
LworLy8gU2VlIHRoZSBkZWZpbml0aW9uIG9mIE5vdE51bGwoKSBmb3IgYSBjb21wbGV0ZSBleGFt
cGxlLgordGVtcGxhdGUgPGNsYXNzIEltcGw+CitjbGFzcyBQb2x5bW9ycGhpY01hdGNoZXIgewor
IHB1YmxpYzoKKyAgZXhwbGljaXQgUG9seW1vcnBoaWNNYXRjaGVyKGNvbnN0IEltcGwmIGFuX2lt
cGwpIDogaW1wbF8oYW5faW1wbCkge30KKworICAvLyBSZXR1cm5zIGEgbXV0YWJsZSByZWZlcmVu
Y2UgdG8gdGhlIHVuZGVybHlpbmcgbWF0Y2hlcgorICAvLyBpbXBsZW1lbnRhdGlvbiBvYmplY3Qu
CisgIEltcGwmIG11dGFibGVfaW1wbCgpIHsgcmV0dXJuIGltcGxfOyB9CisKKyAgLy8gUmV0dXJu
cyBhbiBpbW11dGFibGUgcmVmZXJlbmNlIHRvIHRoZSB1bmRlcmx5aW5nIG1hdGNoZXIKKyAgLy8g
aW1wbGVtZW50YXRpb24gb2JqZWN0LgorICBjb25zdCBJbXBsJiBpbXBsKCkgY29uc3QgeyByZXR1
cm4gaW1wbF87IH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgTWF0Y2hl
cjxUPigpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hlcjxUPihuZXcgTW9ub21vcnBoaWNJbXBs
PGNvbnN0IFQmPihpbXBsXykpOworICB9CisKKyBwcml2YXRlOgorICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgY2xhc3MgTW9ub21vcnBoaWNJbXBsIDogcHVibGljIE1hdGNoZXJJbnRlcmZhY2U8
VD4geworICAgcHVibGljOgorICAgIGV4cGxpY2l0IE1vbm9tb3JwaGljSW1wbChjb25zdCBJbXBs
JiBpbXBsKSA6IGltcGxfKGltcGwpIHt9CisKKyAgICB2b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9z
dHJlYW0qIG9zKSBjb25zdCBvdmVycmlkZSB7IGltcGxfLkRlc2NyaWJlVG8ob3MpOyB9CisKKyAg
ICB2b2lkIERlc2NyaWJlTmVnYXRpb25Ubyg6OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IG92ZXJy
aWRlIHsKKyAgICAgIGltcGxfLkRlc2NyaWJlTmVnYXRpb25Ubyhvcyk7CisgICAgfQorCisgICAg
Ym9vbCBNYXRjaEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikg
Y29uc3Qgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIGltcGxfLk1hdGNoQW5kRXhwbGFpbih4LCBs
aXN0ZW5lcik7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGNvbnN0IEltcGwgaW1wbF87Cisg
IH07CisKKyAgSW1wbCBpbXBsXzsKK307CisKKy8vIENyZWF0ZXMgYSBtYXRjaGVyIGZyb20gaXRz
IGltcGxlbWVudGF0aW9uLgorLy8gREVQUkVDQVRFRDogRXNwZWNpYWxseSBpbiB0aGUgZ2VuZXJp
YyBjb2RlLCBwcmVmZXI6CisvLyAgIE1hdGNoZXI8VD4obmV3IE15TWF0Y2hlckltcGw8Y29uc3Qg
VCY+KC4uLikpOworLy8KKy8vIE1ha2VNYXRjaGVyIG1heSBjcmVhdGUgYSBNYXRjaGVyIHRoYXQg
YWNjZXB0cyBpdHMgYXJndW1lbnQgYnkgdmFsdWUsIHdoaWNoCisvLyBsZWFkcyB0byB1bm5lY2Vz
c2FyeSBjb3BpZXMgJiBsYWNrIG9mIHN1cHBvcnQgZm9yIG5vbi1jb3B5YWJsZSB0eXBlcy4KK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIE1hdGNoZXI8VD4gTWFrZU1hdGNoZXIoY29uc3Qg
TWF0Y2hlckludGVyZmFjZTxUPiogaW1wbCkgeworICByZXR1cm4gTWF0Y2hlcjxUPihpbXBsKTsK
K30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50
YXRpb24uICBUaGlzIGlzCisvLyBlYXNpZXIgdG8gdXNlIHRoYW4gdGhlIFBvbHltb3JwaGljTWF0
Y2hlcjxJbXBsPiBjb25zdHJ1Y3RvciBhcyBpdAorLy8gZG9lc24ndCByZXF1aXJlIHlvdSB0byBl
eHBsaWNpdGx5IHdyaXRlIHRoZSB0ZW1wbGF0ZSBhcmd1bWVudCwgZS5nLgorLy8KKy8vICAgTWFr
ZVBvbHltb3JwaGljTWF0Y2hlcihmb28pOworLy8gdnMKKy8vICAgUG9seW1vcnBoaWNNYXRjaGVy
PFR5cGVPZkZvbz4oZm9vKTsKK3RlbXBsYXRlIDxjbGFzcyBJbXBsPgoraW5saW5lIFBvbHltb3Jw
aGljTWF0Y2hlcjxJbXBsPiBNYWtlUG9seW1vcnBoaWNNYXRjaGVyKGNvbnN0IEltcGwmIGltcGwp
IHsKKyAgcmV0dXJuIFBvbHltb3JwaGljTWF0Y2hlcjxJbXBsPihpbXBsKTsKK30KKworbmFtZXNw
YWNlIGludGVybmFsIHsKKy8vIEltcGxlbWVudHMgYSBtYXRjaGVyIHRoYXQgY29tcGFyZXMgYSBn
aXZlbiB2YWx1ZSB3aXRoIGEKKy8vIHByZS1zdXBwbGllZCB2YWx1ZSB1c2luZyBvbmUgb2YgdGhl
ID09LCA8PSwgPCwgZXRjLCBvcGVyYXRvcnMuICBUaGUKKy8vIHR3byB2YWx1ZXMgYmVpbmcgY29t
cGFyZWQgZG9uJ3QgaGF2ZSB0byBoYXZlIHRoZSBzYW1lIHR5cGUuCisvLworLy8gVGhlIG1hdGNo
ZXIgZGVmaW5lZCBoZXJlIGlzIHBvbHltb3JwaGljIChmb3IgZXhhbXBsZSwgRXEoNSkgY2FuIGJl
CisvLyB1c2VkIHRvIG1hdGNoIGFuIGludCwgYSBzaG9ydCwgYSBkb3VibGUsIGV0YykuICBUaGVy
ZWZvcmUgd2UgdXNlCisvLyBhIHRlbXBsYXRlIHR5cGUgY29udmVyc2lvbiBvcGVyYXRvciBpbiB0
aGUgaW1wbGVtZW50YXRpb24uCisvLworLy8gVGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBkZWZpbml0
aW9uIGFzc3VtZXMgdGhhdCB0aGUgUmhzIHBhcmFtZXRlciBpcworLy8gYSAiYmFyZSIgdHlwZSAo
aS5lLiBuZWl0aGVyICdjb25zdCBUJyBub3IgJ1QmJykuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRCwg
dHlwZW5hbWUgUmhzLCB0eXBlbmFtZSBPcD4KK2NsYXNzIENvbXBhcmlzb25CYXNlIHsKKyBwdWJs
aWM6CisgIGV4cGxpY2l0IENvbXBhcmlzb25CYXNlKGNvbnN0IFJocyYgcmhzKSA6IHJoc18ocmhz
KSB7fQorCisgIHVzaW5nIGlzX2d0ZXN0X21hdGNoZXIgPSB2b2lkOworCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBMaHM+CisgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKGNvbnN0IExocyYgbGhzLCBzdGQ6
Om9zdHJlYW0qKSBjb25zdCB7CisgICAgcmV0dXJuIE9wKCkobGhzLCBVbndyYXAocmhzXykpOwor
ICB9CisgIHZvaWQgRGVzY3JpYmVUbyhzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCB7CisgICAgKm9z
IDw8IEQ6OkRlc2MoKSA8PCAiICI7CisgICAgVW5pdmVyc2FsUHJpbnQoVW53cmFwKHJoc18pLCBv
cyk7CisgIH0KKyAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oc3RkOjpvc3RyZWFtKiBvcykgY29u
c3QgeworICAgICpvcyA8PCBEOjpOZWdhdGVkRGVzYygpIDw8ICIgIjsKKyAgICBVbml2ZXJzYWxQ
cmludChVbndyYXAocmhzXyksIG9zKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CisgIHN0YXRpYyBjb25zdCBUJiBVbndyYXAoY29uc3QgVCYgdikgeworICAgIHJl
dHVybiB2OworICB9CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBzdGF0aWMgY29uc3QgVCYg
VW53cmFwKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gdikgeworICAgIHJldHVybiB2OworICB9
CisKKyAgUmhzIHJoc187Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgorY2xhc3MgRXFN
YXRjaGVyIDogcHVibGljIENvbXBhcmlzb25CYXNlPEVxTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUVx
PiB7CisgcHVibGljOgorICBleHBsaWNpdCBFcU1hdGNoZXIoY29uc3QgUmhzJiByaHMpCisgICAg
ICA6IENvbXBhcmlzb25CYXNlPEVxTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUVxPihyaHMpIHsgfQor
ICBzdGF0aWMgY29uc3QgY2hhciogRGVzYygpIHsgcmV0dXJuICJpcyBlcXVhbCB0byI7IH0KKyAg
c3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0IGVxdWFsIHRv
IjsgfQorfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+CitjbGFzcyBOZU1hdGNoZXIgOiBwdWJs
aWMgQ29tcGFyaXNvbkJhc2U8TmVNYXRjaGVyPFJocz4sIFJocywgQW55TmU+IHsKKyBwdWJsaWM6
CisgIGV4cGxpY2l0IE5lTWF0Y2hlcihjb25zdCBSaHMmIHJocykKKyAgICAgIDogQ29tcGFyaXNv
bkJhc2U8TmVNYXRjaGVyPFJocz4sIFJocywgQW55TmU+KHJocykgeyB9CisgIHN0YXRpYyBjb25z
dCBjaGFyKiBEZXNjKCkgeyByZXR1cm4gImlzbid0IGVxdWFsIHRvIjsgfQorICBzdGF0aWMgY29u
c3QgY2hhciogTmVnYXRlZERlc2MoKSB7IHJldHVybiAiaXMgZXF1YWwgdG8iOyB9Cit9OwordGVt
cGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIEx0TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29u
QmFzZTxMdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMdD4geworIHB1YmxpYzoKKyAgZXhwbGljaXQg
THRNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxMdE1hdGNo
ZXI8UmhzPiwgUmhzLCBBbnlMdD4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2Mo
KSB7IHJldHVybiAiaXMgPCI7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkg
eyByZXR1cm4gImlzbid0IDwiOyB9Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNz
IEd0TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxHdE1hdGNoZXI8UmhzPiwgUmhzLCBB
bnlHdD4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgR3RNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQor
ICAgICAgOiBDb21wYXJpc29uQmFzZTxHdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlHdD4ocmhzKSB7
IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgPiI7IH0KKyAgc3Rh
dGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0ID4iOyB9Cit9Owor
dGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIExlTWF0Y2hlciA6IHB1YmxpYyBDb21wYXJp
c29uQmFzZTxMZU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMZT4geworIHB1YmxpYzoKKyAgZXhwbGlj
aXQgTGVNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxMZU1h
dGNoZXI8UmhzPiwgUmhzLCBBbnlMZT4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERl
c2MoKSB7IHJldHVybiAiaXMgPD0iOyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVz
YygpIHsgcmV0dXJuICJpc24ndCA8PSI7IH0KK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgor
Y2xhc3MgR2VNYXRjaGVyIDogcHVibGljIENvbXBhcmlzb25CYXNlPEdlTWF0Y2hlcjxSaHM+LCBS
aHMsIEFueUdlPiB7CisgcHVibGljOgorICBleHBsaWNpdCBHZU1hdGNoZXIoY29uc3QgUmhzJiBy
aHMpCisgICAgICA6IENvbXBhcmlzb25CYXNlPEdlTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUdlPihy
aHMpIHsgfQorICBzdGF0aWMgY29uc3QgY2hhciogRGVzYygpIHsgcmV0dXJuICJpcyA+PSI7IH0K
KyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0ID49Ijsg
fQorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aXNfY29uc3RydWN0aWJs
ZTxzdGQ6OnN0cmluZywgVD46OnZhbHVlPjo6dHlwZT4KK3VzaW5nIFN0cmluZ0xpa2UgPSBUOwor
CisvLyBJbXBsZW1lbnRzIHBvbHltb3JwaGljIG1hdGNoZXJzIE1hdGNoZXNSZWdleChyZWdleCkg
YW5kCisvLyBDb250YWluc1JlZ2V4KHJlZ2V4KSwgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYSBNYXRj
aGVyPFQ+IGFzIGxvbmcgYXMKKy8vIFQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIHN0cmluZy4KK2Ns
YXNzIE1hdGNoZXNSZWdleE1hdGNoZXIgeworIHB1YmxpYzoKKyAgTWF0Y2hlc1JlZ2V4TWF0Y2hl
cihjb25zdCBSRSogcmVnZXgsIGJvb2wgZnVsbF9tYXRjaCkKKyAgICAgIDogcmVnZXhfKHJlZ2V4
KSwgZnVsbF9tYXRjaF8oZnVsbF9tYXRjaCkge30KKworI2lmIEdURVNUX0lOVEVSTkFMX0hBU19T
VFJJTkdfVklFVworICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBpbnRlcm5hbDo6U3RyaW5n
VmlldyYgcywKKyAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlz
dGVuZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hBbmRFeHBsYWluKHN0ZDo6c3RyaW5nKHMp
LCBsaXN0ZW5lcik7CisgIH0KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19W
SUVXCisKKyAgLy8gQWNjZXB0cyBwb2ludGVyIHR5cGVzLCBwYXJ0aWN1bGFybHk6CisgIC8vICAg
Y29uc3QgY2hhcioKKyAgLy8gICBjaGFyKgorICAvLyAgIGNvbnN0IHdjaGFyX3QqCisgIC8vICAg
d2NoYXJfdCoKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgorICBib29sIE1hdGNoQW5k
RXhwbGFpbihDaGFyVHlwZSogcywgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0
IHsKKyAgICByZXR1cm4gcyAhPSBudWxscHRyICYmIE1hdGNoQW5kRXhwbGFpbihzdGQ6OnN0cmlu
ZyhzKSwgbGlzdGVuZXIpOworICB9CisKKyAgLy8gTWF0Y2hlcyBhbnl0aGluZyB0aGF0IGNhbiBj
b252ZXJ0IHRvIHN0ZDo6c3RyaW5nLgorICAvLworICAvLyBUaGlzIGlzIGEgdGVtcGxhdGUsIG5v
dCBqdXN0IGEgcGxhaW4gZnVuY3Rpb24gd2l0aCBjb25zdCBzdGQ6OnN0cmluZyYsCisgIC8vIGJl
Y2F1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgaGFzIHNvbWUgaW50ZXJmZXJpbmcgbm9uLWV4cGxpY2l0
IGNvbnN0cnVjdG9ycy4KKyAgdGVtcGxhdGUgPGNsYXNzIE1hdGNoZWVTdHJpbmdUeXBlPgorICBi
b29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBNYXRjaGVlU3RyaW5nVHlwZSYgcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5lciogLyogbGlzdGVuZXIgKi8pIGNvbnN0
IHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgczIocyk7CisgICAgcmV0dXJuIGZ1bGxfbWF0Y2hf
ID8gUkU6OkZ1bGxNYXRjaChzMiwgKnJlZ2V4XykKKyAgICAgICAgICAgICAgICAgICAgICAgOiBS
RTo6UGFydGlhbE1hdGNoKHMyLCAqcmVnZXhfKTsKKyAgfQorCisgIHZvaWQgRGVzY3JpYmVUbyg6
OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKyAgICAqb3MgPDwgKGZ1bGxfbWF0Y2hfID8gIm1h
dGNoZXMiIDogImNvbnRhaW5zIikgPDwgIiByZWd1bGFyIGV4cHJlc3Npb24gIjsKKyAgICBVbml2
ZXJzYWxQcmludGVyPHN0ZDo6c3RyaW5nPjo6UHJpbnQocmVnZXhfLT5wYXR0ZXJuKCksIG9zKTsK
KyAgfQorCisgIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29u
c3QgeworICAgICpvcyA8PCAiZG9lc24ndCAiIDw8IChmdWxsX21hdGNoXyA/ICJtYXRjaCIgOiAi
Y29udGFpbiIpCisgICAgICAgIDw8ICIgcmVndWxhciBleHByZXNzaW9uICI7CisgICAgVW5pdmVy
c2FsUHJpbnRlcjxzdGQ6OnN0cmluZz46OlByaW50KHJlZ2V4Xy0+cGF0dGVybigpLCBvcyk7Cisg
IH0KKworIHByaXZhdGU6CisgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxjb25zdCBSRT4gcmVnZXhf
OworICBjb25zdCBib29sIGZ1bGxfbWF0Y2hfOworfTsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgZnVsbHkgbWF0Y2hlcyByZWd1bGFyIGV4cHJl
c3Npb24gJ3JlZ2V4Jy4KKy8vIFRoZSBtYXRjaGVyIHRha2VzIG93bmVyc2hpcCBvZiAncmVnZXgn
LgoraW5saW5lIFBvbHltb3JwaGljTWF0Y2hlcjxpbnRlcm5hbDo6TWF0Y2hlc1JlZ2V4TWF0Y2hl
cj4gTWF0Y2hlc1JlZ2V4KAorICAgIGNvbnN0IGludGVybmFsOjpSRSogcmVnZXgpIHsKKyAgcmV0
dXJuIE1ha2VQb2x5bW9ycGhpY01hdGNoZXIoaW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXIo
cmVnZXgsIHRydWUpKTsKK30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUID0gc3RkOjpzdHJpbmc+CitQ
b2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IE1hdGNoZXNS
ZWdleCgKKyAgICBjb25zdCBpbnRlcm5hbDo6U3RyaW5nTGlrZTxUPiYgcmVnZXgpIHsKKyAgcmV0
dXJuIE1hdGNoZXNSZWdleChuZXcgaW50ZXJuYWw6OlJFKHN0ZDo6c3RyaW5nKHJlZ2V4KSkpOwor
fQorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9u
ICdyZWdleCcuCisvLyBUaGUgbWF0Y2hlciB0YWtlcyBvd25lcnNoaXAgb2YgJ3JlZ2V4Jy4KK2lu
bGluZSBQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IENv
bnRhaW5zUmVnZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlJFKiByZWdleCkgeworICByZXR1cm4g
TWFrZVBvbHltb3JwaGljTWF0Y2hlcihpbnRlcm5hbDo6TWF0Y2hlc1JlZ2V4TWF0Y2hlcihyZWdl
eCwgZmFsc2UpKTsKK30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUID0gc3RkOjpzdHJpbmc+CitQb2x5
bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXI+IENvbnRhaW5zUmVn
ZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ0xpa2U8VD4mIHJlZ2V4KSB7CisgIHJldHVy
biBDb250YWluc1JlZ2V4KG5ldyBpbnRlcm5hbDo6UkUoc3RkOjpzdHJpbmcocmVnZXgpKSk7Cit9
CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhbnl0aGlu
ZyBlcXVhbCB0byB4LgorLy8gTm90ZTogaWYgdGhlIHBhcmFtZXRlciBvZiBFcSgpIHdlcmUgZGVj
bGFyZWQgYXMgY29uc3QgVCYsIEVxKCJmb28iKQorLy8gd291bGRuJ3QgY29tcGlsZS4KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIGludGVybmFsOjpFcU1hdGNoZXI8VD4gRXEoVCB4KSB7
IHJldHVybiBpbnRlcm5hbDo6RXFNYXRjaGVyPFQ+KHgpOyB9CisKKy8vIENvbnN0cnVjdHMgYSBN
YXRjaGVyPFQ+IGZyb20gYSAndmFsdWUnIG9mIHR5cGUgVC4gIFRoZSBjb25zdHJ1Y3RlZAorLy8g
bWF0Y2hlciBtYXRjaGVzIGFueSB2YWx1ZSB0aGF0J3MgZXF1YWwgdG8gJ3ZhbHVlJy4KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorTWF0Y2hlcjxUPjo6TWF0Y2hlcihUIHZhbHVlKSB7ICp0aGlzID0g
RXEodmFsdWUpOyB9CisKKy8vIENyZWF0ZXMgYSBtb25vbW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0
Y2hlcyBhbnl0aGluZyB3aXRoIHR5cGUgTGhzCisvLyBhbmQgZXF1YWwgdG8gcmhzLiAgQSB1c2Vy
IG1heSBuZWVkIHRvIHVzZSB0aGlzIGluc3RlYWQgb2YgRXEoLi4uKQorLy8gaW4gb3JkZXIgdG8g
cmVzb2x2ZSBhbiBvdmVybG9hZGluZyBhbWJpZ3VpdHkuCisvLworLy8gVHlwZWRFcTxUPih4KSBp
cyBqdXN0IGEgY29udmVuaWVudCBzaG9ydC1oYW5kIGZvciBNYXRjaGVyPFQ+KEVxKHgpKQorLy8g
b3IgTWF0Y2hlcjxUPih4KSwgYnV0IG1vcmUgcmVhZGFibGUgdGhhbiB0aGUgbGF0dGVyLgorLy8K
Ky8vIFdlIGNvdWxkIGRlZmluZSBzaW1pbGFyIG1vbm9tb3JwaGljIG1hdGNoZXJzIGZvciBvdGhl
ciBjb21wYXJpc29uCisvLyBvcGVyYXRpb25zIChlLmcuIFR5cGVkTHQsIFR5cGVkR2UsIGFuZCBl
dGMpLCBidXQgZGVjaWRlZCBub3QgdG8gZG8KKy8vIGl0IHlldCBhcyB0aG9zZSBhcmUgdXNlZCBt
dWNoIGxlc3MgdGhhbiBFcSgpIGluIHByYWN0aWNlLiAgQSB1c2VyCisvLyBjYW4gYWx3YXlzIHdy
aXRlIE1hdGNoZXI8VD4oTHQoNSkpIHRvIGJlIGV4cGxpY2l0IGFib3V0IHRoZSB0eXBlLAorLy8g
Zm9yIGV4YW1wbGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHM+Citpbmxp
bmUgTWF0Y2hlcjxMaHM+IFR5cGVkRXEoY29uc3QgUmhzJiByaHMpIHsgcmV0dXJuIEVxKHJocyk7
IH0KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGFueXRo
aW5nID49IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5saW5lIGludGVybmFsOjpHZU1h
dGNoZXI8UmhzPiBHZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJuYWw6OkdlTWF0Y2hlcjxSaHM+
KHgpOworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0IG1hdGNoZXMg
YW55dGhpbmcgPiB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBpbnRlcm5hbDo6
R3RNYXRjaGVyPFJocz4gR3QoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpHdE1hdGNoZXI8
UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRj
aGVzIGFueXRoaW5nIDw9IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5saW5lIGludGVy
bmFsOjpMZU1hdGNoZXI8UmhzPiBMZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJuYWw6OkxlTWF0
Y2hlcjxSaHM+KHgpOworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0
IG1hdGNoZXMgYW55dGhpbmcgPCB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBp
bnRlcm5hbDo6THRNYXRjaGVyPFJocz4gTHQoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpM
dE1hdGNoZXI8UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIg
dGhhdCBtYXRjaGVzIGFueXRoaW5nICE9IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5s
aW5lIGludGVybmFsOjpOZU1hdGNoZXI8UmhzPiBOZShSaHMgeCkgeworICByZXR1cm4gaW50ZXJu
YWw6Ok5lTWF0Y2hlcjxSaHM+KHgpOworfQorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKworR1RF
U1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MSA1MDQ2CisKKyNlbmRpZiAg
Ly8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01BVENIRVJTX0hfCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1lc3NhZ2UuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCmlu
ZGV4IDVjYTA0MTYxNGNiMzU1OTIyZjM1NWI4OTNmOWM4NGEzYjdmNTJjNmYuLmJlY2ZkNDlmY2Jh
OWM1YWI5ODZlNGI0Mzk2YmM4MTQzYTNjNTg3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCkBAIC00NCwxMCArNDQs
MTIgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfTUVTU0FHRV9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X01FU1NBR0VfSF8KIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8c3N0cmVhbT4KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIK
IApAQCAtMTA2LDE0ICsxMDgsNiBAQCBjbGFzcyBHVEVTVF9BUElfIE1lc3NhZ2UgewogICAgICpz
c18gPDwgc3RyOwogICB9CiAKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8vIFN0cmVhbXMgYSB2
YWx1ZSAoZWl0aGVyIGEgcG9pbnRlciBvciBub3QpIHRvIHRoaXMgb2JqZWN0LgotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0IFQmIHZh
bHVlKSB7Ci0gICAgU3RyZWFtSGVscGVyKHR5cGVuYW1lIGludGVybmFsOjppc19wb2ludGVyPFQ+
Ojp0eXBlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLSNlbHNlCiAgIC8vIFN0
cmVhbXMgYSBub24tcG9pbnRlciB2YWx1ZSB0byB0aGlzIG9iamVjdC4KICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiAgIGlubGluZSBNZXNzYWdlJiBvcGVyYXRvciA8PChjb25zdCBUJiB2YWwpIHsK
QEAgLTE1MSwxNCArMTQ1LDEzIEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAgIC8vIGFz
ICIobnVsbCkiLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgaW5saW5lIE1lc3NhZ2UmIG9w
ZXJhdG9yIDw8KFQqIGNvbnN0JiBwb2ludGVyKSB7ICAvLyBOT0xJTlQKLSAgICBpZiAocG9pbnRl
ciA9PSBOVUxMKSB7CisgICAgaWYgKHBvaW50ZXIgPT0gbnVsbHB0cikgewogICAgICAgKnNzXyA8
PCAiKG51bGwpIjsKICAgICB9IGVsc2UgewogICAgICAgKnNzXyA8PCBwb2ludGVyOwogICAgIH0K
ICAgICByZXR1cm4gKnRoaXM7CiAgIH0KLSNlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgogCiAg
IC8vIFNpbmNlIHRoZSBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgYXJlIG92ZXJsb2FkZWQgZm9yIGJv
dGggbmFycm93CiAgIC8vIGFuZCB3aWRlIHN0cmVhbXMsIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlz
IHNwZWNpYWxpemVkIGRlZmluaXRpb24KQEAgLTE4NywxMiArMTgwLDYgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBNZXNzYWdlIHsKICAgTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgOjpzdGQ6OndzdHJp
bmcmIHdzdHIpOwogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNU
X0hBU19HTE9CQUxfV1NUUklORwotICAvLyBDb252ZXJ0cyB0aGUgZ2l2ZW4gd2lkZSBzdHJpbmcg
dG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYtOAotICAvLyBlbmNvZGluZywgYW5kIHN0
cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotICBNZXNzYWdlJiBvcGVy
YXRvciA8PChjb25zdCA6OndzdHJpbmcmIHdzdHIpOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xP
QkFMX1dTVFJJTkcKLQogICAvLyBHZXRzIHRoZSB0ZXh0IHN0cmVhbWVkIHRvIHRoaXMgb2JqZWN0
IHNvIGZhciBhcyBhbiBzdGQ6OnN0cmluZy4KICAgLy8gRWFjaCAnXDAnIGNoYXJhY3RlciBpbiB0
aGUgYnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIuCiAgIC8vCkBAIC0yMDAsMzEgKzE4Nyw4
IEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAgIHN0ZDo6c3RyaW5nIEdldFN0cmluZygp
IGNvbnN0OwogCiAgcHJpdmF0ZToKLSNpZiBHVEVTVF9PU19TWU1CSUFOCi0gIC8vIFRoZXNlIGFy
ZSBuZWVkZWQgYXMgdGhlIE5va2lhIFN5bWJpYW4gQ29tcGlsZXIgY2Fubm90IGRlY2lkZSBiZXR3
ZWVuCi0gIC8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBsYXRlLiBU
aGUgTm9raWEgY29tcGlsZXIgX2Nhbl8KLSAgLy8gZGVjaWRlIGJldHdlZW4gY2xhc3MgdGVtcGxh
dGUgc3BlY2lhbGl6YXRpb25zIGZvciBUIGFuZCBUKiwgc28gYQotICAvLyB0cjE6OnR5cGVfdHJh
aXRzLWxpa2UgaXNfcG9pbnRlciB3b3JrcywgYW5kIHdlIGNhbiBvdmVybG9hZCBvbiB0aGF0Lgot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIHZvaWQgU3RyZWFtSGVscGVyKGludGVy
bmFsOjp0cnVlX3R5cGUgLyppc19wb2ludGVyKi8sIFQqIHBvaW50ZXIpIHsKLSAgICBpZiAocG9p
bnRlciA9PSBOVUxMKSB7Ci0gICAgICAqc3NfIDw8ICIobnVsbCkiOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAqc3NfIDw8IHBvaW50ZXI7Ci0gICAgfQotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBpbmxpbmUgdm9pZCBTdHJlYW1IZWxwZXIoaW50ZXJuYWw6OmZhbHNlX3R5cGUgLyppc19w
b2ludGVyKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSkgewot
ICAgIC8vIFNlZSB0aGUgY29tbWVudHMgaW4gTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgVCYp
IGFib3ZlIGZvciB3aHkKLSAgICAvLyB3ZSBuZWVkIHRoaXMgdXNpbmcgc3RhdGVtZW50LgotICAg
IHVzaW5nIDo6b3BlcmF0b3IgPDw7Ci0gICAgKnNzXyA8PCB2YWx1ZTsKLSAgfQotI2VuZGlmICAv
LyBHVEVTVF9PU19TWU1CSUFOCi0KICAgLy8gV2UnbGwgaG9sZCB0aGUgdGV4dCBzdHJlYW1lZCB0
byB0aGlzIG9iamVjdCBoZXJlLgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6
OnN0cmluZ3N0cmVhbT4gc3NfOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8IDo6c3RkOjpzdHJp
bmdzdHJlYW0+IHNzXzsKIAogICAvLyBXZSBkZWNsYXJlIChidXQgZG9uJ3QgaW1wbGVtZW50KSB0
aGlzIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyCiAgIC8vIGZyb20gaW1wbGVtZW50aW5nIHRoZSBh
c3NpZ25tZW50IG9wZXJhdG9yLgpAQCAtMjUyLDQgKzIxNiw0IEBAIHN0ZDo6c3RyaW5nIFN0cmVh
bWFibGVUb1N0cmluZyhjb25zdCBUJiBzdHJlYW1hYmxlKSB7CiAKIEdURVNUX0RJU0FCTEVfTVND
X1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX01FU1NBR0VfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX01FU1NBR0VfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKaW5kZXggM2U5NWU0MzkwZTAwZTExNjMx
MGE0MjM4M2QyZTMwYjU4ZWRhNWYwZC4uODA0ZTcwMjgxN2IwM2I5MGEzZTc3ZmQ4YmRjOGEwMzdl
NzJmNWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9ndGVzdC1wYXJhbS10ZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKQEAgLTEsNyArMSwzIEBACi0vLyBUaGlzIGZpbGUg
d2FzIEdFTkVSQVRFRCBieSBjb21tYW5kOgotLy8gICAgIHB1bXAucHkgZ3Rlc3QtcGFyYW0tdGVz
dC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJpZ2h0IDIwMDgs
IEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KQEAgLTM0LDEyICszMCw5
IEBACiAvLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6
ZWQgdGVzdHMKIC8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBGcmFtZXdvcmsg
KEdvb2dsZSBUZXN0KQogLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQu
ICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBE
RUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCi0j
ZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCisjaWZuZGVm
IEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCiAKIC8vIFZhbHVlLXBh
cmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVy
ZW50CiAvLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhl
IHNhbWUgdGVzdC4KQEAgLTc1LDcgKzY4LDcgQEAgVEVTVF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFo
KSB7CiAgIC4uLgogfQogCi0vLyBGaW5hbGx5LCB5b3UgY2FuIHVzZSBJTlNUQU5USUFURV9URVNU
X0NBU0VfUCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdAorLy8gRmluYWxseSwgeW91IGNhbiB1c2Ug
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0CiAvLyBjYXNl
IHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50LiBHb29nbGUgVGVzdCBkZWZpbmVz
IGEgbnVtYmVyCiAvLyBvZiBmdW5jdGlvbnMgZm9yIGdlbmVyYXRpbmcgdGVzdCBwYXJhbWV0ZXJz
LiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKIC8vIChzdXJwcmlzZSEpIHBhcmFtZXRlciBnZW5l
cmF0b3JzLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGljaApAQCAtOTYsMTcgKzg5LDE3
IEBAIFRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewogLy8gRm9yIG1vcmUgZGV0YWlscywg
c2VlIGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cK
IC8vIGluIHRoaXMgZmlsZS4KIC8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGlu
c3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCisvLyBUaGUgZm9sbG93
aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVz
dCBzdWl0ZQogLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgIm1lZW55IiwgIm1pbnkiLCBh
bmQgIm1vZSIuCiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRpYXRpb25OYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AoSW5zdGFudGlhdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoIm1lZW55IiwgIm1pbnkiLCAibW9lIikp
OwogCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJu
LCAoeWVzLCB5b3UKLS8vIGNhbiBpbnN0YW50aWF0ZSBpdCBtb3JlIHRoZW4gb25jZSkgdGhlIGZp
cnN0IGFyZ3VtZW50IHRvIHRoZQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaXMg
YSBwcmVmaXggdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZQotLy8gYWN0dWFsIHRlc3QgY2FzZSBu
YW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50CisvLyBj
YW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFuIG9uY2UpIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0
aGUKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpcyBhIHByZWZpeCB0aGF0IHdp
bGwgYmUgYWRkZWQgdG8gdGhlCisvLyBhY3R1YWwgdGVzdCBzdWl0ZSBuYW1lLiBSZW1lbWJlciB0
byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50CiAvLyBpbnN0YW50aWF0aW9ucy4g
VGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlCiAvLyB0aGVz
ZSBuYW1lczoKIC8vCkBAIC0xMjMsNyArMTE2LDcgQEAgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
SW5zdGFudGlhdGlvbk5hbWUsCiAvLyB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgImNhdCIgYW5kICJk
b2ciOgogCiBjb25zdCBjaGFyKiBwZXRzW10gPSB7ImNhdCIsICJkb2cifTsKLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4o
cGV0cykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFt
ZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogCiAvLyBUaGUgdGVzdHMgZnJvbSB0aGUgaW5z
dGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUgdGhlc2UgbmFtZXM6CiAvLwpAQCAtMTMyLDkgKzEy
NSw5IEBAIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwg
Rm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogLy8gICAgKiBBbm90aGVySW5zdGFudGlhdGlvbk5h
bWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wIGZvciAiY2F0IgogLy8gICAgKiBBbm90aGVySW5zdGFu
dGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xIGZvciAiZG9nIgogLy8KLS8vIFBsZWFz
ZSBub3RlIHRoYXQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agd2lsbCBpbnN0YW50aWF0ZSBhbGwg
dGVzdHMKLS8vIGluIHRoZSBnaXZlbiB0ZXN0IGNhc2UsIHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlv
bnMgY29tZSBiZWZvcmUgb3IKLS8vIEFGVEVSIHRoZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBz
dGF0ZW1lbnQuCisvLyBQbGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCB3
aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cworLy8gaW4gdGhlIGdpdmVuIHRlc3Qgc3VpdGUsIHdo
ZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMgY29tZSBiZWZvcmUgb3IKKy8vIEFGVEVSIHRoZSBJTlNU
QU5USUFURV9URVNUX1NVSVRFX1Agc3RhdGVtZW50LgogLy8KIC8vIFBsZWFzZSBhbHNvIG5vdGUg
dGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIHRvIHRoZQog
Ly8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpLCBhZnRlciBt
YWluKCkgaGFzIHN0YXJ0ZWQuCkBAIC0xNzgsMjYgKzE3MSwyMyBAQCBURVNUX1AoRGVyaXZlZFRl
c3QsIERvZXNCbGFoKSB7CiAKICNlbmRpZiAgLy8gMAogCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRp
bGl0eT4KLSNlbmRpZgorI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUgPHV0aWxpdHk+CiAK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIgorI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewogCiAvLyBGdW5jdGlvbnMgcHJv
ZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgogLy8KIC8vIEdvb2dsZSBUZXN0IHVzZXMgdGhl
c2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVlLQotLy8gcGFyYW1l
dGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRp
YXRlZAorLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBz
dWl0ZSBpcyBpbnN0YW50aWF0ZWQKIC8vIHdpdGggYSBwYXJ0aWN1bGFyIGdlbmVyYXRvciwgR29v
Z2xlIFRlc3QgY3JlYXRlcyBhbmQgcnVucyB0ZXN0cwogLy8gZm9yIGVhY2ggZWxlbWVudCBpbiB0
aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvci4KIC8vCi0vLyBJbiB0aGUgZm9s
bG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBhcmUgaW5zdGFudGlh
dGVkCisvLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEZv
b1Rlc3QgYXJlIGluc3RhbnRpYXRlZAogLy8gZWFjaCB0aHJlZSB0aW1lcyB3aXRoIHBhcmFtZXRl
ciB2YWx1ZXMgMywgNSwgYW5kIDg6CiAvLwogLy8gY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyBUZXN0
V2l0aFBhcmFtPGludD4geyAuLi4gfTsKQEAgLTIwNiw3ICsxOTYsNyBAQCBuYW1lc3BhY2UgdGVz
dGluZyB7CiAvLyB9CiAvLyBURVNUX1AoRm9vVGVzdCwgVGVzdFRoYXQpIHsKIC8vIH0KLS8vIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9vVGVzdCwgVmFsdWVzKDMsIDUs
IDgpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChUZXN0U2VxdWVuY2UsIEZvb1Rlc3Qs
IFZhbHVlcygzLCA1LCA4KSk7CiAvLwogCiAvLyBSYW5nZSgpIHJldHVybnMgZ2VuZXJhdG9ycyBw
cm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgpAQCAtMjYzLDEzICsyNTMs
MTMgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7
CiAvLwogLy8gRXhhbXBsZXM6CiAvLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0
ZXN0IGNhc2UgU3RyaW5nVGVzdAorLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0
IHN1aXRlIFN0cmluZ1Rlc3QKIC8vIGVhY2ggd2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIs
ICJiYXIiLCBhbmQgImJheiI6CiAvLwogLy8gY29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28i
LCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVu
Y2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3MpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChTdHJpbmdTZXF1ZW5jZSwgU3RyaW5nVGVzdCwgVmFsdWVzSW4oc3RyaW5ncykpOwog
Ly8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIFN0bFN0cmluZ1Rl
c3QKKy8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBzdWl0ZSBTdGxTdHJpbmdU
ZXN0CiAvLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2YWx1ZXMgImEiIGFuZCAiYiI6CiAv
LwogLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gR2V0UGFyYW1ldGVyU3RyaW5ncygp
IHsKQEAgLTI3OSw5ICsyNjksOSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2Uo
VCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIHY7CiAvLyB9CiAvLwotLy8gSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
U3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBh
cmFtZXRlclN0cmluZ3MoKSkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENoYXJTZXF1
ZW5jZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBTdGxTdHJpbmdUZXN0LAorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOwog
Ly8KIC8vCiAvLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0
CkBAIC0yOTQsMTYgKzI4NCwxNSBAQCBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2Uo
VCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIGxpc3Q7CiAvLyB9CiAvLyA6OnN0ZDo6bGlz
dDxjaGFyPiBsID0gR2V0UGFyYW1ldGVyQ2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkp
OworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENoYXJTZXF1ZW5jZTIsCisvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzSW4obC5iZWdpbigpLCBsLmVuZCgpKSk7CiAvLwogdGVtcGxhdGUgPHR5cGVuYW1lIEZv
cndhcmRJdGVyYXRvcj4KIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjwKLSAgdHlwZW5hbWUgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVf
dHlwZT4KKyAgICB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0b3I+
Ojp2YWx1ZV90eXBlPgogVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRl
cmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRl
cmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlw
ZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0
b3I+Ojp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKICAgcmV0dXJuIGludGVybmFsOjpQYXJhbUdlbmVy
YXRvcjxQYXJhbVR5cGU+KAogICAgICAgbmV3IGludGVybmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFu
Z2VHZW5lcmF0b3I8UGFyYW1UeXBlPihiZWdpbiwgZW5kKSk7CiB9CkBAIC0zMjYsODY5ICszMTUs
MjIgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVf
dHlwZT4gVmFsdWVzSW4oCiAvLyBWYWx1ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQogLy8gICAt
IHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYx
LCB2MiwgLi4uLCB2Ti4KIC8vCi0vLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVz
dHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVzdCBlYWNoCisvLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0
YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEJhclRlc3QgZWFjaAogLy8gd2l0aCB2YWx1
ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NB
U0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikp
OworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE51bVNlcXVlbmNlLAorLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgIEJhclRlc3QsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikpOwogLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRl
c3RzIGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCisv
LyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3Qgc3VpdGUgQmF6VGVzdCBlYWNoIHdp
dGggdmFsdWVzIDEsIDIsIDMuNS4KIC8vIFRoZSBleGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRl
cGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIgaW4gQmF6VGVzdC4KIC8vCi0vLyBJTlNUQU5U
SUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAz
LjUpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGbG9hdGluZ051bWJlcnMsIEJhelRl
c3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKIC8vCi0vLyBDdXJyZW50bHksIFZhbHVlcygpIHN1cHBv
cnRzIGZyb20gMSB0byA1MCBwYXJhbWV0ZXJzLgogLy8KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4K
LWludGVybmFsOjpWYWx1ZUFycmF5MTxUMT4gVmFsdWVzKFQxIHYxKSB7Ci0gIHJldHVybiBpbnRl
cm5hbDo6VmFsdWVBcnJheTE8VDE+KHYxKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwgVDI+IFZhbHVlcyhUMSB2MSwg
VDIgdjIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjxUMSwgVDI+KHYxLCB2Mik7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBUMiwgVDM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM8VDEsIFQyLCBUMz4odjEsIHYy
LCB2Myk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUND4KLWludGVybmFsOjpWYWx1ZUFycmF5NDxUMSwgVDIsIFQzLCBUND4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTQ8VDEsIFQyLCBUMywgVDQ+KHYxLCB2MiwgdjMsIHY0KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNT4KLWludGVybmFsOjpWYWx1ZUFycmF5NTxUMSwgVDIsIFQzLCBUNCwgVDU+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXk1PFQxLCBUMiwgVDMsIFQ0LCBUNT4odjEsIHYyLCB2MywgdjQs
IHY1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWludGVybmFs
OjpWYWx1ZUFycmF5NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4odjEsIHYyLCB2MywgdjQsIHY1LCB2
Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBWYWx1
ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nykg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3Pih2MSwgdjIsIHYzLCB2NCwgdjUsCi0gICAgICB2NiwgdjcpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiBWYWx1ZXMo
VDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5ODxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDg+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk5PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjkpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5Pih2MSwg
djIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLWludGVybmFsOjpWYWx1ZUFycmF5MTA8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBWYWx1ZXMoVDEgdjEsCi0gICAgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwKSB7
Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMD4odjEsCi0gICAgICB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTExPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwKLSAgICBUMTE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQx
MSB2MTEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLAotICAgICAgVDExPih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWludGVybmFsOjpWYWx1
ZUFycmF5MTI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgVDEyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyKSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2
NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsCi0gICAgVDEzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEy
LCBUMTM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIs
IHYxMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1pbnRlcm5h
bDo6VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICBUMTQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2
MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE1PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICBUMTQsIFQxNT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXkxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNj4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2
OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwK
LSAgICBUMTYgdjE2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTE2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQx
NCwgVDE1LCBUMTY+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTc+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywK
LSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNykgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTc+KHYxLCB2MiwgdjMsIHY0
LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1
LCB2MTYsIHYxNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LAotICAgIFQ3IHY3
LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOD4odjEs
IHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxOTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwKLSAgICBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+KHYxLCB2MiwgdjMs
IHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwg
djE1LCB2MTYsIHYxNywgdjE4LCB2MTkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+Ci1pbnRlcm5hbDo6VmFs
dWVBcnJheTIwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IFZhbHVlcyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCkg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjA+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LAotICAgICAgdjgs
IHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYy
MCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMT4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAgIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywKLSAgICBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIxPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2
LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2
MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjEsIHR5cGVuYW1lIFQyMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjI8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBU
MjIgdjIyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIyPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+KHYxLCB2MiwgdjMsIHY0LAotICAg
ICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYs
IHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIyKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjM+Ci1pbnRlcm5hbDo6
VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0g
ICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzKSB7Ci0gIHJl
dHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4odjEsIHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgs
IHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTI0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjQ8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+KHYx
LCB2MiwKLSAgICAgIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LAotICAgICAgdjE5LCB2MjAsIHYyMSwgdjIyLCB2
MjMsIHYyNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNT4KLWludGVybmFsOjpW
YWx1ZUFycmF5MjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjU+IFZhbHVlcyhUMSB2MSwKLSAgICBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsCi0g
ICAgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywg
VDE4IHYxOCwgVDE5IHYxOSwKLSAgICBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LCBUMjQgdjI0LCBUMjUgdjI1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI1PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjU+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywKLSAgICAgIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNj4KLWludGVybmFsOjpWYWx1ZUFycmF5MjY8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAg
VDI2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUs
Ci0gICAgVDI2IHYyNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNjxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LAotICAgICAgVDI2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LAotICAgICAgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjc+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgVDI3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYyNykgewotICByZXR1
cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjc+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LAot
ICAgICAgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2
MjUsIHYyNiwgdjI3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICBUMjg+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBU
MjYsIFQyNywgVDI4Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYx
MSwgdjEyLCB2MTMsCi0gICAgICB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy
MSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywKLSAgICAgIHYyOCk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI5PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMg
djIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mjk8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwg
djEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwg
djIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LAotICAgICAgdjI3LCB2MjgsIHYyOSk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5MzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzA+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsCi0gICAgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwKLSAgICBUMjUgdjI1
LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwKSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsCi0g
ICAgICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYy
MiwgdjIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAg
IFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQz
MCB2MzAsIFQzMSB2MzEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywg
VDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzE+KHYxLCB2MiwgdjMsIHY0LCB2
NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2
MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAotICAgICAgdjI1LCB2
MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjks
IFQzMCwgVDMxLCBUMzI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBU
MjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAg
ICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMj4o
djEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwKLSAgICAgIHYxMCwgdjExLCB2MTIs
IHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLAot
ICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMik7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotaW50ZXJuYWw6OlZhbHVlQXJy
YXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcg
djcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBU
MjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUs
IFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0g
ICAgVDMyIHYzMiwgVDMzIHYzMykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzMzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+KHYx
LCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywKLSAg
ICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMyk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwKLSAgICBUMjMg
djIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5
LCBUMzAgdjMwLAotICAgIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYx
NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAgICB2MjMsIHYyNCwgdjI1LCB2MjYsIHYy
NywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0KTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1PgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkzNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwKLSAgICBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LAotICAgIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQz
NSB2MzUpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsCi0gICAgICB2MjIsIHYyMywg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYz
NSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJh
eTM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0gICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwKLSAgICBU
MzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYg
djM2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM2PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBU
MjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4odjEs
IHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYy
MywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLAotICAg
ICAgdjM0LCB2MzUsIHYzNik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNz4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAot
ICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwKLSAgICBUMzcgdjM3KSB7Ci0g
IHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3Pih2MSwgdjIs
IHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2
MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LAotICAgICAgdjIwLCB2MjEsIHYyMiwgdjIzLCB2
MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsCi0gICAgICB2
MzQsIHYzNSwgdjM2LCB2MzcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzg8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLAot
ICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgs
IFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYy
NCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwKLSAgICBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2
LAotICAgIFQzNyB2MzcsIFQzOCB2MzgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5
Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBU
MTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4odjEsIHYyLAotICAgICAgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgs
Ci0gICAgICB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2Mjgs
IHYyOSwgdjMwLCB2MzEsIHYzMiwKLSAgICAgIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2Mzgp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzOTxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwK
LSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4
LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwgVDMw
IHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYz
NiwKLSAgICBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4odjEsCi0gICAgICB2Miwg
djMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUs
IHYxNiwgdjE3LAotICAgICAgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUs
IHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsCi0gICAgICB2MzIsIHYzMywgdjM0LCB2MzUs
IHYzNiwgdjM3LCB2MzgsIHYzOSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5
cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5NDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4gVmFsdWVz
KFQxIHYxLAotICAgIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4
IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwKLSAgICBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LAotICAgIFQy
MCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2
MjYsIFQyNyB2MjcsCi0gICAgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMy
IHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwKLSAgICBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJh
eTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAg
VDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MD4odjEsIHYyLCB2Mywg
djQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwKLSAg
ICAgIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2
LCB2MjcsIHYyOCwgdjI5LAotICAgICAgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2
LCB2MzcsIHYzOCwgdjM5LCB2NDApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxPgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLAotICAgIFQ0MT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywK
LSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2
MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1
IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0
MSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0MTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsCi0gICAgICB2MTUsIHYxNiwgdjE3LCB2MTgs
IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwKLSAgICAg
IHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2
NDAsIHY0MSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0Mj4KLWludGVybmFsOjpWYWx1ZUFycmF5NDI8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwgVDQxLAotICAgIFQ0Mj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2Mjgs
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYz
NCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwg
VDQxIHY0MSwKLSAgICBUNDIgdjQyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQy
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEy
LCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDI+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywKLSAgICAg
IHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2
MjUsIHYyNiwgdjI3LAotICAgICAgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2
MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsCi0gICAgICB2NDIpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5
cGVuYW1lIFQ0Mz4KLWludGVybmFsOjpWYWx1ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
Ci0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgVDQzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwg
VDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICBUMzQgdjM0
LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBU
NDEgdjQxLAotICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0
MiwgVDQzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LAotICAgICAgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIy
LCB2MjMsIHYyNCwgdjI1LCB2MjYsCi0gICAgICB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMy
LCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwKLSAgICAgIHY0MSwgdjQy
LCB2NDMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXk0NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAot
ICAgIFQ0ND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwg
VDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQy
LCBUNDMgdjQzLCBUNDQgdjQ0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ0PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwKLSAgICAgIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMs
IHYyNCwgdjI1LAotICAgICAgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMs
IHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksCi0gICAgICB2NDAsIHY0MSwgdjQyLCB2NDMs
IHY0NCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEs
IHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4K
LWludGVybmFsOjpWYWx1ZUFycmF5NDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwKLSAgICBU
MTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMg
djIzLCBUMjQgdjI0LAotICAgIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsCi0gICAgVDMzIHYzMywgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwKLSAg
ICBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1KSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAg
ICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDU+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYs
IHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYx
NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LAotICAgICAgdjI1LCB2MjYsIHYy
NywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2Mzgs
Ci0gICAgICB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUg
VDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVu
YW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDY+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYx
NiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2
MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksCi0gICAgVDQw
IHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0
NikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2
LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDY+KHYxLCB2
MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAsIHYxMSwgdjEyLCB2MTMs
IHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywKLSAgICAg
IHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2
MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2
NDUsIHY0Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0
NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLWludGVybmFsOjpWYWx1ZUFycmF5
NDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQs
IFQ0NSwgVDQ2LCBUNDc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBU
MjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQz
NiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwg
VDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0Nykgewot
ICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcs
IFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LAotICAgICAgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLAotICAgICAg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYz
NSwgdjM2LCB2MzcsCi0gICAgICB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0
NSwgdjQ2LCB2NDcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLWlu
dGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBU
NDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gVmFsdWVzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcgdjcsIFQ4IHY4LCBUOSB2OSwg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAg
ICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2Mjcs
IFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0gICAgVDMyIHYzMiwgVDMzIHYz
MywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwK
LSAgICBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1
LCBUNDYgdjQ2LCBUNDcgdjQ3LAotICAgIFQ0OCB2NDgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpW
YWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
Ci0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEs
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4odjEsIHYyLCB2MywgdjQsIHY1LCB2
NiwgdjcsCi0gICAgICB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwg
djE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwKLSAgICAgIHYyMywgdjI0LCB2MjUsIHYyNiwg
djI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LAotICAgICAg
djM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsIHY0
OCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5
cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAg
ICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0
MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwKLSAg
ICBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLAotICAgIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsCi0gICAgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwK
LSAgICBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0
LCBUNDUgdjQ1LCBUNDYgdjQ2LAotICAgIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDkpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwKLSAgICAgIHYy
MiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMs
IHYzNCwgdjM1LAotICAgICAgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsIHY0MSwgdjQyLCB2NDMs
IHY0NCwgdjQ1LCB2NDYsIHY0NywgdjQ4LCB2NDkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlw
ZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcs
IHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1pbnRlcm5hbDo6VmFs
dWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0g
ICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0g
ICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LAotICAgIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUs
Ci0gICAgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwgVDQ5IHY0OSwgVDUwIHY1MCkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
Ci0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDks
IFQ1MD4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIx
LCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLAotICAgICAgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0Miwg
djQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsCi0gICAgICB2NDgsIHY0OSwgdjUwKTsKK3RlbXBsYXRl
IDx0eXBlbmFtZS4uLiBUPgoraW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4gVmFsdWVzKFQuLi4g
dikgeworICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk8VC4uLj4oc3RkOjptb3ZlKHYpLi4u
KTsKIH0KIAogLy8gQm9vbCgpIGFsbG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVy
cyBpbiBhIHNldCBvZiAoZmFsc2UsIHRydWUpLgpAQCAtMTIwMSw3ICszNDMsNyBAQCBpbnRlcm5h
bDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKIC8vIG9mIG11bHRpcGxlIGZsYWdzIGNhbiBiZSB0ZXN0ZWQgd2hlbiBz
ZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2luZwogLy8gQ29tYmluZSgpIGZ1bmN0aW9u
LgogLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhbGwgdGVzdHMgaW4gdGhlIHRlc3Qg
Y2FzZSBGbGFnRGVwZW5kZW50VGVzdAorLy8gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGFsbCB0
ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZSBGbGFnRGVwZW5kZW50VGVzdAogLy8gd2lsbCBiZSBpbnN0
YW50aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0cnVlLgogLy8KIC8vIGNs
YXNzIEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Ym9v
bD4gewpAQCAtMTIwOSwxMyArMzUxLDEyIEBAIGludGVybmFsOjpWYWx1ZUFycmF5NTA8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAogLy8gICAg
IGV4dGVybmFsX2ZsYWcgPSBHZXRQYXJhbSgpOwogLy8gICB9CiAvLyB9Ci0vLyBJTlNUQU5USUFU
RV9URVNUX0NBU0VfUChCb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0LCBCb29sKCkpOwor
Ly8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEJvb2xTZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRl
c3QsIEJvb2woKSk7CiAvLwogaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBC
b29sKCkgewogICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0cnVlKTsKIH0KIAotIyBpZiBHVEVTVF9I
QVNfQ09NQklORQogLy8gQ29tYmluZSgpIGFsbG93cyB0aGUgdXNlciB0byBjb21iaW5lIHR3byBv
ciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCiAvLyB2YWx1ZXMgb2YgYSBDYXJ0ZXNpYW4gcHJv
ZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRzLgogLy8KQEAgLTEyMjQsMTg0ICszNjUs
ODIgQEAgaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxib29sPiBCb29sKCkgewogLy8g
ICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRz
IGNvbWluZyBmcm9tCiAvLyAgICAgdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIGVsZW1lbnRzIGZy
b20gdGhlIHNlcXVlbmNlcyBnZW5lcmF0ZWQgYnkKIC8vICAgICBnZW4xLCBnZW4yLCAuLi4sIGdl
bk4uIFRoZSBzZXF1ZW5jZSBlbGVtZW50cyB3aWxsIGhhdmUgYSB0eXBlIG9mCi0vLyAgICAgdHVw
bGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4gYXJlIHRoZSB0eXBlcwor
Ly8gICAgIHN0ZDo6dHVwbGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4g
YXJlIHRoZSB0eXBlcwogLy8gICAgIG9mIGVsZW1lbnRzIGZyb20gc2VxdWVuY2VzIHByb2R1Y2Vz
IGJ5IGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4KIC8vCi0vLyBDb21iaW5lIGNhbiBoYXZlIHVwIHRv
IDEwIGFyZ3VtZW50cy4gVGhpcyBudW1iZXIgaXMgY3VycmVudGx5IGxpbWl0ZWQKLS8vIGJ5IHRo
ZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHVwbGUgaW1wbGVtZW50YXRpb24g
dXNlZCBieSBHb29nbGUKLS8vIFRlc3QuCi0vLwogLy8gRXhhbXBsZToKIC8vCi0vLyBUaGlzIHdp
bGwgaW5zdGFudGlhdGUgdGVzdHMgaW4gdGVzdCBjYXNlIEFuaW1hbFRlc3QgZWFjaCBvbmUgd2l0
aAorLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGluIHRlc3Qgc3VpdGUgQW5pbWFsVGVz
dCBlYWNoIG9uZSB3aXRoCiAvLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxB
Q0spLCB0dXBsZSgiY2F0IiwgV0hJVEUpLAogLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1
cGxlKCJkb2ciLCBXSElURSk6CiAvLwogLy8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElU
RSB9OwogLy8gY2xhc3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08dHVwbGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59OworLy8gICAgIDogcHVi
bGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgQ29sb3I+
ID4gey4uLn07CiAvLwogLy8gVEVTVF9QKEFuaW1hbFRlc3QsIEFuaW1hbExvb2tzTmljZSkgey4u
Ln0KIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChBbmltYWxWYXJpYXRpb25zLCBBbmlt
YWxUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmluZShWYWx1ZXMoImNhdCIs
ICJkb2ciKSwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKEJMQUNL
LCBXSElURSkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChBbmltYWxWYXJpYXRpb25z
LCBBbmltYWxUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoVmFsdWVz
KCJjYXQiLCAiZG9nIiksCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoQkxBQ0ssIFdISVRFKSkpOwogLy8KIC8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBp
biBGbGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJpYXRpb25zIG9mIHR3bwogLy8gQm9vbGVh
biBmbGFnczoKIC8vCiAvLyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdAotLy8gICAgIDogcHVibGlj
IHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9vbCwgYm9vbD4gPiB7CisvLyAgICAgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxzdGQ6OnR1cGxlPGJvb2wsIGJvb2w+ID4gewog
Ly8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CiAvLyAgICAgLy8gQXNzaWducyBleHRlcm5hbF9m
bGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiB2YWx1ZXMgZnJvbSB0aGUgdHVwbGUuCi0vLyAgICAg
dGllKGV4dGVybmFsX2ZsYWdfMSwgZXh0ZXJuYWxfZmxhZ18yKSA9IEdldFBhcmFtKCk7CisvLyAg
ICAgc3RkOjp0aWUoZXh0ZXJuYWxfZmxhZ18xLCBleHRlcm5hbF9mbGFnXzIpID0gR2V0UGFyYW0o
KTsKIC8vICAgfQogLy8gfTsKIC8vCiAvLyBURVNUX1AoRmxhZ0RlcGVuZGVudFRlc3QsIFRlc3RG
ZWF0dXJlMSkgewogLy8gICAvLyBUZXN0IHlvdXIgY29kZSB1c2luZyBleHRlcm5hbF9mbGFnXzEg
YW5kIGV4dGVybmFsX2ZsYWdfMiBoZXJlLgogLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoVHdvQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbWJpbmUoQm9vbCgpLCBCb29sKCkpKTsKLS8vCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMj4KLWludGVybmFsOjpDYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyMjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyPiBDb21iaW5lKAotICAgIGNvbnN0
IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMikgewotICByZXR1cm4gaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIyPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjI+KAotICAg
ICAgZzEsIGcyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1l
IEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjM+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMz4gQ29tYmluZSgK
LSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdl
bmVyYXRvcjMmIGczKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRl
cjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMz4oCi0gICAgICBnMSwgZzIsIGcz
KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRv
cjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yND4KLWludGVy
bmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5l
cmF0b3IzLAotICAgIEdlbmVyYXRvcjQ+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAg
Y29uc3QgR2VuZXJhdG9yNCYgZzQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2Vu
ZXJhdG9yND4oCi0gICAgICBnMSwgZzIsIGczLCBnNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAot
ICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjU+Ci1pbnRlcm5hbDo6
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjU8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9y
MywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVy
YXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0g
ICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI1PEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PigKLSAgICAg
IGcxLCBnMiwgZzMsIGc0LCBnNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3Ix
LCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5cGVuYW1l
IEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUsIHR5cGVuYW1lIEdlbmVyYXRvcjY+Ci1p
bnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjY8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwg
R2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2PiBDb21i
aW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29u
c3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBH
ZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYgZzYpIHsKLSAgcmV0dXJuIGludGVybmFs
OjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0
b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNj4oCi0gICAgICBn
MSwgZzIsIGczLCBnNCwgZzUsIGc2KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRv
cjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5h
bWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwK
LSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xk
ZXI3PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwg
R2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNz4gQ29tYmluZSgKLSAgICBjb25zdCBH
ZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGcz
LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNv
bnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNykgewotICBy
ZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI3PEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0
b3I2LCBHZW5lcmF0b3I3PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3KTsKLX0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5
cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2Vu
ZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3LCB0
eXBlbmFtZSBHZW5lcmF0b3I4PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI4PEdl
bmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJh
dG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOD4gQ29tYmluZSgKLSAgICBj
b25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRv
cjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYg
ZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNywg
Y29uc3QgR2VuZXJhdG9yOCYgZzgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyODxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2Vu
ZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOD4o
Ci0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBnNywgZzgpOwotfQotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJh
dG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBl
bmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5cGVuYW1lIEdlbmVy
YXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjk+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhv
bGRlcjk8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0
LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LAotICAgIEdl
bmVyYXRvcjk+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVy
YXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9y
NCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2JiBnNiwKLSAgICAg
ICAgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4LCBjb25zdCBHZW5l
cmF0b3I5JiBnOSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI5
PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBH
ZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5
PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3LCBnOCwgZzkpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUg
R2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1
LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjcsIHR5cGVuYW1l
IEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjksCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9y
MTA+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVy
YXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9y
NiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwgR2VuZXJhdG9yOSwKLSAgICBHZW5lcmF0b3IxMD4g
Q29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIs
IGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29u
c3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25zdCBH
ZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsIGNvbnN0IEdlbmVyYXRvcjkmIGc5
LAotICAgICAgICBjb25zdCBHZW5lcmF0b3IxMCYgZzEwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRv
cjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3
LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5LAotICAgICAgR2VuZXJhdG9yMTA+KAotICAgICAgZzEs
IGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4LCBnOSwgZzEwKTsKLX0KLSMgZW5kaWYgIC8vIEdU
RVNUX0hBU19DT01CSU5FCi0KLSMgZGVmaW5lIFRFU1RfUCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9u
YW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRl
c3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9jYXNlX25hbWUgeyBcCi0gICBwdWJsaWM6
IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUp
KCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gICBwcml2YXRlOiBcCi0g
ICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAg
ICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAg
ICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVf
XykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5H
SUZZXyh0ZXN0X2Nhc2VfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJ
TkdJRllfKHRlc3RfbmFtZSksIFwKLSAgICAgICAgICAgICAgICAgICAgICBuZXcgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6VGVzdE1ldGFGYWN0b3J5PCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk+KCkpOyBcCi0gICAgICByZXR1cm4gMDsgXAotICAg
IH0gXAotICAgIHN0YXRpYyBpbnQgZ3Rlc3RfcmVnaXN0ZXJpbmdfZHVtbXlfIEdURVNUX0FUVFJJ
QlVURV9VTlVTRURfOyBcCi0gICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhcCi0g
ICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkp
OyBcCi0gIH07IFwKLSAgaW50IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUs
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTo6Z3Rlc3RfcmVnaXN0
ZXJpbmdfZHVtbXlfID0gXAotICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2Vf
bmFtZSwgdGVzdF9uYW1lKTo6QWRkVG9SZWdpc3RyeSgpOyBcCi0gIHZvaWQgR1RFU1RfVEVTVF9D
TEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQotCi0vLyBU
aGUgb3B0aW9uYWwgbGFzdCBhcmd1bWVudCB0byBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBhbGxv
d3MgdGhlIHVzZXIKLS8vIHRvIHNwZWNpZnkgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHRoYXQgZ2Vu
ZXJhdGVzIGN1c3RvbSB0ZXN0IG5hbWUgc3VmZml4ZXMKLS8vIGJhc2VkIG9uIHRoZSB0ZXN0IHBh
cmFtZXRlcnMuIFRoZSBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IG9uZSBhcmd1bWVudCBvZgotLy8g
dHlwZSB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPGNsYXNzIFBhcmFtVHlwZT4sIGFuZCByZXR1cm4g
c3RkOjpzdHJpbmcuCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVHdvQm9vbFNlcXVlbmNl
LCBGbGFnRGVwZW5kZW50VGVzdCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5l
KEJvb2woKSwgQm9vbCgpKSk7CisvLwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIEdlbmVyYXRvcj4K
K2ludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyPEdlbmVyYXRvci4uLj4gQ29tYmluZShj
b25zdCBHZW5lcmF0b3ImLi4uIGcpIHsKKyAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyPEdlbmVyYXRvci4uLj4oZy4uLik7Cit9CisKKyNkZWZpbmUgVEVTVF9QKHRlc3Rf
c3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOiBwdWJsaWMgdGVzdF9zdWl0ZV9u
YW1lIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
IHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1
aXRlX25hbWUsIHRlc3RfbmFtZSkoKSB7fSAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQg
VGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBwcml2YXRlOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDo6dGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJu
SG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25hbWUpLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNv
ZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pKSAgICAgICAgICAgXAorICAgICAgICAgIC0+
QWRkVGVzdFBhdHRlcm4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25h
bWUpLCBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSksICBcCisgICAgICAgICAgICAgIG5ldyA6
OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rvcnk8R1RFU1RfVEVTVF9DTEFTU19OQU1F
XyggXAorICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpPigpLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXykpOyAgICAgICAgICBcCisg
ICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0
aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsg
ICAgICAgICAgICAgICBcCisgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpKTsg
ICAgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGludCBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjpndGVzdF9yZWdpc3Rl
cmluZ19kdW1teV8gPSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1JlZ2lzdHJ5KCk7ICAgICBcCisgIHZv
aWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSk6OlRl
c3RCb2R5KCkKKworLy8gVGhlIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5CisvLyBnZW5lcmF0b3IgYW5kIGFuIG9wdGlv
bmFsIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFtZQor
Ly8gc3VmZml4ZXMgYmFzZWQgb24gdGhlIHRlc3QgcGFyYW1ldGVycy4gU3VjaCBhIGZ1bmN0aW9u
IG9yIGZ1bmN0b3Igc2hvdWxkCisvLyBhY2NlcHQgb25lIGFyZ3VtZW50IG9mIHR5cGUgdGVzdGlu
Zzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBhbmQKKy8vIHJldHVybiBzdGQ6OnN0
cmluZy4KIC8vCiAvLyB0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lIGlzIGEgYnVpbHRp
biB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAogLy8gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGVz
dGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKS4KQEAgLTE0MTAsMjUgKzQ0OSw1OSBAQCBp
bnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIs
IEdlbmVyYXRvcjMsCiAvLyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciB1bmRlcnNjb3JlLiBC
ZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMKIC8vIHRvIHN0ZDo6c3RyaW5nIGFuZCBD
IHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNlIHR5cGVzLgogCi0jIGRlZmluZSBJTlNU
QU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3RfY2FzZV9uYW1lLCBnZW5lcmF0b3IsIC4u
LikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dGVzdF9j
YXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9u
YW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBnZW5lcmF0b3I7IH0gXAotICBzdGF0aWMg
OjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJh
dGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHRlc3RfY2Fz
ZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAgICByZXR1cm4gOjp0ZXN0aW5nOjppbnRl
cm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+IFwKLSAgICAg
ICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwKLSAgc3RhdGljIGludCBndGVzdF8jI3By
ZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBc
Ci0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVk
X3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0
ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAg
ICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAg
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0Q2FzZUluc3RhbnRpYXRpb24oXAot
ICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAm
Z3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8sIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdl
bmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18p
CisjZGVmaW5lIEdURVNUX0VYUEFORF8oYXJnKSBhcmcKKyNkZWZpbmUgR1RFU1RfR0VUX0ZJUlNU
XyhmaXJzdCwgLi4uKSBmaXJzdAorI2RlZmluZSBHVEVTVF9HRVRfU0VDT05EXyhmaXJzdCwgc2Vj
b25kLCAuLi4pIHNlY29uZAorCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChwcmVm
aXgsIHRlc3Rfc3VpdGVfbmFtZSwgLi4uKSAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyA6OnRl
c3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0X3N1aXRlX25hbWU6OlBhcmFtVHlw
ZT4gICAgICBcCisgICAgICBndGVzdF8jI3ByZWZpeCMjdGVzdF9zdWl0ZV9uYW1lIyNfRXZhbEdl
bmVyYXRvcl8oKSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIEdURVNUX0VYUEFO
RF8oR1RFU1RfR0VUX0ZJUlNUXyhfX1ZBX0FSR1NfXywgRFVNTVlfUEFSQU1fKSk7ICAgICAgICBc
CisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMj
cHJlZml4IyN0ZXN0X3N1aXRlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXyggICBcCisgICAgICBj
b25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVzdF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+
JiBpbmZvKSB7ICAgICBcCisgICAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNl
KCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpUZXN0Tm90RW1wdHkoR1RFU1RfRVhQQU5EXyhHVEVTVF9HRVRfU0VDT05EXygg
ICAgICBcCisgICAgICAgICAgX19WQV9BUkdTX18sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RGVmYXVsdFBhcmFtTmFtZTx0ZXN0X3N1aXRlX25hbWU6OlBhcmFtVHlwZT4sICBcCisg
ICAgICAgICAgRFVNTVlfUEFSQU1fKSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICBhdXRvIHQgPSBzdGQ6Om1ha2VfdHVwbGUoX19W
QV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6dHVwbGVfc2l6ZTxkZWNsdHlwZSh0KT46OnZhbHVlIDw9IDIsICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICJUb28gTWFueSBBcmdzISIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgcmV0dXJuICgoR1RFU1RfRVhQQU5EXyhHVEVTVF9HRVRfU0VDT05EXyggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9fVkFfQVJHU19fLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlZmF1bHRQYXJhbU5hbWU8dGVzdF9zdWl0ZV9uYW1l
OjpQYXJhbVR5cGU+LCAgICBcCisgICAgICAgIERVTU1ZX1BBUkFNXykpKSkoaW5mbyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIHN0YXRpYyBpbnQgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMj
X2R1bW15XyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBHVEVTVF9BVFRSSUJVVEVf
VU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIC0+cGFyYW1ldGVyaXplZF90
ZXN0X3JlZ2lzdHJ5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
ICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKHRlc3Rf
c3VpdGVfbmFtZSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSkg
ICAgICBcCisgICAgICAgICAgICAgIC0+QWRkVGVzdFN1aXRlSW5zdGFudGlhdGlvbiggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICBHVEVTVF9T
VFJJTkdJRllfKHByZWZpeCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxH
ZW5lcmF0b3JfLCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxHZW5lcmF0ZU5hbWVfLCAgICAgICBcCisgICAgICAgICAg
ICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pCisKKworLy8gQWxsb3cgTWFya2luZyBhIFBhcmFt
ZXRlcml6ZWQgdGVzdCBjbGFzcyBhcyBub3QgbmVlZGluZyB0byBiZSBpbnN0YW50aWF0ZWQuCisj
ZGVmaW5lIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChUKSAg
ICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBndGVzdF9kb19ub3RfdXNlX291dHNpZGVf
bmFtZXNwYWNlX3Njb3BlIHt9ICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljIGNvbnN0IDo6
dGVzdGluZzo6aW50ZXJuYWw6Ok1hcmtBc0lnbm9yZWQgZ3Rlc3RfYWxsb3dfaWdub3JlXyMjVCgg
XAorICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUKSkKKworLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCisjZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpY19hc3NlcnQoOjp0ZXN0aW5n
OjppbnRlcm5hbDo6SW5zdGFudGlhdGVUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBcCisgICAg
ICAgICAgICAgICAgIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogfSAgLy8gbmFtZXNwYWNlIHRlc3Rp
bmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8K
KyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NzRmMmIzYjU2OTMzMDAxMmU4NWVlM2NmNGZkNTdlYjBiNTQyMWQ2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAKKysrIC9kZXYvbnVsbApAQCAtMSw1
MDAgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1MCAgJCQgTWF4aW11
bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kdmFyIG1h
eHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJndW1lbnRzIHdlIHdh
bnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgotLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLS8vCi0vLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRl
cml6ZWQgdGVzdHMKLS8vIGluIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBGcmFtZXdv
cmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJ
UFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KLS8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwotCi0KLS8v
IFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdp
dGggZGlmZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3Bp
ZXMgb2YgdGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJlIGlzIGhvdyB5b3UgdXNlIHZhbHVlLXBh
cmFtZXRlcml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8vIFRvIHdyaXRlIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVmaW5lIGEgZml4dHVyZQotLy8gY2xhc3Mu
IEl0IGlzIHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08VD4gKHNl
ZSBiZWxvdyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFuY2Ugc2NoZW1lIHRoYXQncyBzb21ldGlt
ZXMgdXNlZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8vIGNsYXNzIGhpZXJhcmNoaWVzKSwgd2hl
cmUgdGhlIHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLgotLy8gVGVzdFdpdGhQYXJhbTxU
PiBpcyBpdHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6OlRlc3QuIFQgY2FuIGJlIGFueQotLy8g
Y29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2ludGVyLCB5b3UgYXJlIHJlc3BvbnNpYmxl
IGZvciBtYW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9mIHRoZSBwb2ludGVkIHZhbHVlcy4KLQot
Y2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Y29uc3QgY2hh
cio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxsIHRoZSB1c3VhbCBjbGFzcyBmaXh0dXJl
IG1lbWJlcnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVzZSB0aGUgVEVTVF9QIG1hY3JvIHRvIGRl
ZmluZSBhcyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGZvciB0aGlzIGZpeHR1cmUgYXMg
eW91IHdhbnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIgotLy8gb3IgInBh
dHRlcm4iLCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0aGluay4KLQotVEVTVF9QKEZvb1Rlc3Qs
IERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0
ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRoUGFyYW08
VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAgLi4uCi19
Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLQotLy8gRmluYWxs
eSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgdG8gaW5zdGFudGlhdGUgdGhl
IHRlc3QKLS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBhcmFtZXRlcnMgeW91IHdhbnQuIEdvb2ds
ZSBUZXN0IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyB0
ZXN0IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbAotLy8gKHN1cnByaXNlISkg
cGFyYW1ldGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRoZW0sIHdoaWNoCi0v
LyBhcmUgYWxsIGluIHRoZSB0ZXN0aW5nIG5hbWVzcGFjZToKLS8vCi0vLwotLy8gIFJhbmdlKGJl
Z2luLCBlbmQgWywgc3RlcF0pIC0gWWllbGRzIHZhbHVlcyB7YmVnaW4sIGJlZ2luK3N0ZXAsCi0v
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbitzdGVwK3N0ZXAsIC4uLn0uIFRo
ZSB2YWx1ZXMgZG8gbm90Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
IGVuZC4gc3RlcCBkZWZhdWx0cyB0byAxLgotLy8gIFZhbHVlcyh2MSwgdjIsIC4uLiwgdk4pICAg
IC0gWWllbGRzIHZhbHVlcyB7djEsIHYyLCAuLi4sIHZOfS4KLS8vICBWYWx1ZXNJbihjb250YWlu
ZXIpICAgICAgICAtIFlpZWxkcyB2YWx1ZXMgZnJvbSBhIEMtc3R5bGUgYXJyYXksIGFuIFNUTAot
Ly8gIFZhbHVlc0luKGJlZ2luLGVuZCkgICAgICAgICAgY29udGFpbmVyLCBvciBhbiBpdGVyYXRv
ciByYW5nZSBbYmVnaW4sIGVuZCkuCi0vLyAgQm9vbCgpICAgICAgICAgICAgICAgICAgICAgLSBZ
aWVsZHMgc2VxdWVuY2Uge2ZhbHNlLCB0cnVlfS4KLS8vICBDb21iaW5lKGcxLCBnMiwgLi4uLCBn
TikgICAtIFlpZWxkcyBhbGwgY29tYmluYXRpb25zICh0aGUgQ2FydGVzaWFuIHByb2R1Y3QKLS8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgbWF0aCBzYXZ2eSkgb2YgdGhl
IHZhbHVlcyBnZW5lcmF0ZWQKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHRo
ZSBOIGdlbmVyYXRvcnMuCi0vLwotLy8gRm9yIG1vcmUgZGV0YWlscywgc2VlIGNvbW1lbnRzIGF0
IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cKLS8vIGluIHRoaXMgZmls
ZS4KLS8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3Rz
IGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCi0vLyBlYWNoIHdpdGggcGFyYW1ldGVyIHZhbHVl
cyAibWVlbnkiLCAibWlueSIsIGFuZCAibW9lIi4KLQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
SW5zdGFudGlhdGlvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBGb29UZXN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJtZWVueSIsICJtaW55IiwgIm1vZSIpKTsKLQot
Ly8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiwgKHll
cywgeW91Ci0vLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGVuIG9uY2UpIHRoZSBmaXJzdCBh
cmd1bWVudCB0byB0aGUKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIGlzIGEgcHJl
Zml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLS8vIGFjdHVhbCB0ZXN0IGNhc2UgbmFtZS4g
UmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVudAotLy8gaW5zdGFu
dGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2
ZQotLy8gdGhlc2UgbmFtZXM6Ci0vLwotLy8gICAgKiBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
LkRvZXNCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVz
dC5Eb2VzQmxhaC8yIGZvciAibW9lIgotLy8gICAgKiBJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
Lkhhc0JsYWhCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8xIGZvciAibWlueSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUv
Rm9vVGVzdC5IYXNCbGFoQmxhaC8yIGZvciAibW9lIgotLy8KLS8vIFlvdSBjYW4gdXNlIHRoZXNl
IG5hbWVzIGluIC0tZ3Rlc3RfZmlsdGVyLgotLy8KLS8vIFRoaXMgc3RhdGVtZW50IHdpbGwgaW5z
dGFudGlhdGUgYWxsIHRlc3RzIGZyb20gRm9vVGVzdCBhZ2FpbiwgZWFjaAotLy8gd2l0aCBwYXJh
bWV0ZXIgdmFsdWVzICJjYXQiIGFuZCAiZG9nIjoKLQotY29uc3QgY2hhciogcGV0c1tdID0geyJj
YXQiLCAiZG9nIn07Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChBbm90aGVySW5zdGFudGlhdGlv
bk5hbWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsKLQotLy8gVGhlIHRlc3RzIGZyb20gdGhl
IGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlIHRoZXNlIG5hbWVzOgotLy8KLS8vICAgICog
QW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMCBmb3IgImNhdCIKLS8v
ICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMSBmb3IgImRv
ZyIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgv
MCBmb3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFz
QmxhaEJsYWgvMSBmb3IgImRvZyIKLS8vCi0vLyBQbGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QIHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzCi0vLyBpbiB0aGUgZ2l2ZW4g
dGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRlZmluaXRpb25zIGNvbWUgYmVmb3JlIG9yCi0vLyBB
RlRFUiB0aGUgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agc3RhdGVtZW50LgotLy8KLS8vIFBsZWFz
ZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0
ZXJzIHRvIHRoZQotLy8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVz
dCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCi0vLyBUaGlzIGFsbG93cyB0aGUgdXNlciBv
biBvbmUgaGFuZCwgdG8gYWRqdXN0IGdlbmVyYXRvciBwYXJhbWV0ZXJzIGluIG9yZGVyCi0vLyB0
byBkeW5hbWljYWxseSBkZXRlcm1pbmUgYSBzZXQgb2YgdGVzdHMgdG8gcnVuIGFuZCBvbiB0aGUg
b3RoZXIgaGFuZCwKLS8vIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gaW5zcGVjdCB0aGUgZ2Vu
ZXJhdGVkIHRlc3RzIHdpdGggR29vZ2xlIFRlc3QKLS8vIHJlZmxlY3Rpb24gQVBJIGJlZm9yZSBS
VU5fQUxMX1RFU1RTKCkgaXMgZXhlY3V0ZWQuCi0vLwotLy8gWW91IGNhbiBzZWUgc2FtcGxlcy9z
YW1wbGU3X3VuaXR0ZXN0LmNjIGFuZCBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MKLS8vIGZv
ciBtb3JlIGV4YW1wbGVzLgotLy8KLS8vIEluIHRoZSBmdXR1cmUsIHdlIHBsYW4gdG8gcHVibGlz
aCB0aGUgQVBJIGZvciBkZWZpbmluZyBuZXcgcGFyYW1ldGVyCi0vLyBnZW5lcmF0b3JzLiBCdXQg
Zm9yIG5vdyB0aGlzIGludGVyZmFjZSByZW1haW5zIHBhcnQgb2YgdGhlIGludGVybmFsCi0vLyBp
bXBsZW1lbnRhdGlvbiBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UuCi0vLwotLy8KLS8vIEEgcGFy
YW1ldGVyaXplZCB0ZXN0IGZpeHR1cmUgbXVzdCBiZSBkZXJpdmVkIGZyb20gdGVzdGluZzo6VGVz
dCBhbmQgZnJvbQotLy8gdGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPFQ+LCB3aGVyZSBUIGlz
IHRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIKLS8vIHZhbHVlcy4gSW5oZXJpdGluZyBmcm9tIFRl
c3RXaXRoUGFyYW08VD4gc2F0aXNmaWVzIHRoYXQgcmVxdWlyZW1lbnQgYmVjYXVzZQotLy8gVGVz
dFdpdGhQYXJhbTxUPiBpbmhlcml0cyBmcm9tIGJvdGggVGVzdCBhbmQgV2l0aFBhcmFtSW50ZXJm
YWNlLiBJbiBtb3JlCi0vLyBjb21wbGljYXRlZCBoaWVyYXJjaGllcywgaG93ZXZlciwgaXQgaXMg
b2NjYXNpb25hbGx5IHVzZWZ1bCB0byBpbmhlcml0Ci0vLyBzZXBhcmF0ZWx5IGZyb20gVGVzdCBh
bmQgV2l0aFBhcmFtSW50ZXJmYWNlLiBGb3IgZXhhbXBsZToKLQotY2xhc3MgQmFzZVRlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgLy8gWW91IGNhbiBpbmhlcml0IGFsbCB0aGUgdXN1
YWwgbWVtYmVycyBmb3IgYSBub24tcGFyYW1ldGVyaXplZCB0ZXN0Ci0gIC8vIGZpeHR1cmUgaGVy
ZS4KLX07Ci0KLWNsYXNzIERlcml2ZWRUZXN0IDogcHVibGljIEJhc2VUZXN0LCBwdWJsaWMgOjp0
ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8aW50PiB7Ci0gIC8vIFRoZSB1c3VhbCB0ZXN0IGZp
eHR1cmUgbWVtYmVycyBnbyBoZXJlIHRvby4KLX07Ci0KLVRFU1RfRihCYXNlVGVzdCwgSGFzRm9v
KSB7Ci0gIC8vIFRoaXMgaXMgYW4gb3JkaW5hcnkgbm9uLXBhcmFtZXRlcml6ZWQgdGVzdC4KLX0K
LQotVEVTVF9QKERlcml2ZWRUZXN0LCBEb2VzQmxhaCkgewotICAvLyBHZXRQYXJhbSB3b3JrcyBq
dXN0IHRoZSBzYW1lIGhlcmUgYXMgaWYgeW91IGluaGVyaXQgZnJvbSBUZXN0V2l0aFBhcmFtLgot
ICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgpKSk7Ci19Ci0KLSNlbmRpZiAgLy8gMAot
Ci0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09T
X1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRpbGl0eT4KLSNlbmRpZgotCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVz
dC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRp
bC1nZW5lcmF0ZWQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGdW5jdGlvbnMgcHJv
ZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgotLy8KLS8vIEdvb2dsZSBUZXN0IHVzZXMgdGhl
c2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRlcnMgZm9yIHZhbHVlLQotLy8gcGFyYW1l
dGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRp
YXRlZAotLy8gd2l0aCBhIHBhcnRpY3VsYXIgZ2VuZXJhdG9yLCBHb29nbGUgVGVzdCBjcmVhdGVz
IGFuZCBydW5zIHRlc3RzCi0vLyBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZSBwcm9k
dWNlZCBieSB0aGUgZ2VuZXJhdG9yLgotLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgc2FtcGxlLCB0
ZXN0cyBmcm9tIHRlc3QgY2FzZSBGb29UZXN0IGFyZSBpbnN0YW50aWF0ZWQKLS8vIGVhY2ggdGhy
ZWUgdGltZXMgd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIDMsIDUsIGFuZCA4OgotLy8KLS8vIGNsYXNz
IEZvb1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsgLi4uIH07Ci0vLwotLy8gVEVT
VF9QKEZvb1Rlc3QsIFRlc3RUaGlzKSB7Ci0vLyB9Ci0vLyBURVNUX1AoRm9vVGVzdCwgVGVzdFRo
YXQpIHsKLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9v
VGVzdCwgVmFsdWVzKDMsIDUsIDgpKTsKLS8vCi0KLS8vIFJhbmdlKCkgcmV0dXJucyBnZW5lcmF0
b3JzIHByb3ZpZGluZyBzZXF1ZW5jZXMgb2YgdmFsdWVzIGluIGEgcmFuZ2UuCi0vLwotLy8gU3lu
b3BzaXM6Ci0vLyBSYW5nZShzdGFydCwgZW5kKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3Ig
cHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtzdGFydCwgc3RhcnQrMSwKLS8vICAgICBz
dGFydCsyLCAuLi4sIH0uCi0vLyBSYW5nZShzdGFydCwgZW5kLCBzdGVwKQotLy8gICAtIHJldHVy
bnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtzdGFydCwgc3Rh
cnQrc3RlcCwKLS8vICAgICBzdGFydCtzdGVwK3N0ZXAsIC4uLiwgfS4KLS8vIE5vdGVzOgotLy8g
ICAqIFRoZSBnZW5lcmF0ZWQgc2VxdWVuY2VzIG5ldmVyIGluY2x1ZGUgZW5kLiBGb3IgZXhhbXBs
ZSwgUmFuZ2UoMSwgNSkKLS8vICAgICByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBhIHNl
cXVlbmNlIHsxLCAyLCAzLCA0fS4gUmFuZ2UoMSwgOSwgMikKLS8vICAgICByZXR1cm5zIGEgZ2Vu
ZXJhdG9yIHByb2R1Y2luZyB7MSwgMywgNSwgN30uCi0vLyAgICogc3RhcnQgYW5kIGVuZCBtdXN0
IGhhdmUgdGhlIHNhbWUgdHlwZS4gVGhhdCB0eXBlIG1heSBiZSBhbnkgaW50ZWdyYWwgb3IKLS8v
ICAgICBmbG9hdGluZy1wb2ludCB0eXBlIG9yIGEgdXNlciBkZWZpbmVkIHR5cGUgc2F0aXNmeWlu
ZyB0aGVzZSBjb25kaXRpb25zOgotLy8gICAgICogSXQgbXVzdCBiZSBhc3NpZ25hYmxlIChoYXZl
IG9wZXJhdG9yPSgpIGRlZmluZWQpLgotLy8gICAgICogSXQgbXVzdCBoYXZlIG9wZXJhdG9yKygp
IChvcGVyYXRvcisoaW50LWNvbXBhdGlibGUgdHlwZSkgZm9yCi0vLyAgICAgICB0d28tb3BlcmFu
ZCB2ZXJzaW9uKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRvcjwoKSBkZWZpbmVkLgot
Ly8gICAgIEVsZW1lbnRzIGluIHRoZSByZXN1bHRpbmcgc2VxdWVuY2VzIHdpbGwgYWxzbyBoYXZl
IHRoYXQgdHlwZS4KLS8vICAgKiBDb25kaXRpb24gc3RhcnQgPCBlbmQgbXVzdCBiZSBzYXRpc2Zp
ZWQgaW4gb3JkZXIgZm9yIHJlc3VsdGluZyBzZXF1ZW5jZXMKLS8vICAgICB0byBjb250YWluIGFu
eSBlbGVtZW50cy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSW5jcmVtZW50
VD4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBSYW5nZShUIHN0YXJ0LCBUIGVuZCwgSW5j
cmVtZW50VCBzdGVwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4oCi0g
ICAgICBuZXcgaW50ZXJuYWw6OlJhbmdlR2VuZXJhdG9yPFQsIEluY3JlbWVudFQ+KHN0YXJ0LCBl
bmQsIHN0ZXApKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbnRlcm5hbDo6UGFyYW1H
ZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKLSAgcmV0dXJuIFJhbmdlKHN0YXJ0
LCBlbmQsIDEpOwotfQotCi0vLyBWYWx1ZXNJbigpIGZ1bmN0aW9uIGFsbG93cyBnZW5lcmF0aW9u
IG9mIHRlc3RzIHdpdGggcGFyYW1ldGVycyBjb21pbmcgZnJvbQotLy8gYSBjb250YWluZXIuCi0v
LwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKQotLy8gICAt
IHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZy
b20KLS8vICAgICBhIEMtc3R5bGUgYXJyYXkuCi0vLyBWYWx1ZXNJbihjb25zdCBDb250YWluZXIm
IGNvbnRhaW5lcikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5j
ZXMgd2l0aCBlbGVtZW50cyBmcm9tCi0vLyAgICAgYW4gU1RMLXN0eWxlIGNvbnRhaW5lci4KLS8v
IFZhbHVlc0luKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpCi0vLyAgIC0gcmV0dXJucyBh
IGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMgZnJvbQotLy8gICAg
IGEgcmFuZ2UgW2JlZ2luLCBlbmQpIGRlZmluZWQgYnkgYSBwYWlyIG9mIFNUTC1zdHlsZSBpdGVy
YXRvcnMuIFRoZXNlCi0vLyAgICAgaXRlcmF0b3JzIGNhbiBhbHNvIGJlIHBsYWluIEMgcG9pbnRl
cnMuCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBWYWx1ZXNJbiBjb3BpZXMgdGhlIHZhbHVlcyBm
cm9tIHRoZSBjb250YWluZXJzCi0vLyBwYXNzZWQgaW4gYW5kIGtlZXBzIHRoZW0gdG8gZ2VuZXJh
dGUgdGVzdHMgaW4gUlVOX0FMTF9URVNUUygpLgotLy8KLS8vIEV4YW1wbGVzOgotLy8KLS8vIFRo
aXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIFN0cmluZ1Rlc3QKLS8vIGVhY2gg
d2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIsICJiYXIiLCBhbmQgImJheiI6Ci0vLwotLy8g
Y29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28iLCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0
cmluZ3MpKTsKLS8vCi0vLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBT
dGxTdHJpbmdUZXN0Ci0vLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0aCB2YWx1ZXMgImEiIGFu
ZCAiYiI6Ci0vLwotLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gR2V0UGFyYW1ldGVy
U3RyaW5ncygpIHsKLS8vICAgOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmluZz4gdjsKLS8vICAg
di5wdXNoX2JhY2soImEiKTsKLS8vICAgdi5wdXNoX2JhY2soImIiKTsKLS8vICAgcmV0dXJuIHY7
Ci0vLyB9Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOwotLy8KLS8vCi0vLyBU
aGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0Ci0vLyBlYWNoIHdp
dGggcGFyYW1ldGVyIHZhbHVlcyAnYScgYW5kICdiJzoKLS8vCi0vLyA6OnN0ZDo6bGlzdDxjaGFy
PiBHZXRQYXJhbWV0ZXJDaGFycygpIHsKLS8vICAgOjpzdGQ6Omxpc3Q8Y2hhcj4gbGlzdDsKLS8v
ICAgbGlzdC5wdXNoX2JhY2soJ2EnKTsKLS8vICAgbGlzdC5wdXNoX2JhY2soJ2InKTsKLS8vICAg
cmV0dXJuIGxpc3Q7Ci0vLyB9Ci0vLyA6OnN0ZDo6bGlzdDxjaGFyPiBsID0gR2V0UGFyYW1ldGVy
Q2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAg
ICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkpOwotLy8KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1l
IDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZh
bHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRv
ciBlbmQpIHsKLSAgdHlwZWRlZiB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRv
clRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ci0gICAgICA6OnZhbHVlX3R5cGUgUGFyYW1UeXBlOwot
ICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT4oCi0gICAgICBuZXcg
aW50ZXJuYWw6OlZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcjxQYXJhbVR5cGU+KGJlZ2lu
LCBlbmQpKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6
OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pIHsKLSAgcmV0
dXJuIFZhbHVlc0luKGFycmF5LCBhcnJheSArIE4pOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29u
dGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFs
dWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpIHsKLSAg
cmV0dXJuIFZhbHVlc0luKGNvbnRhaW5lci5iZWdpbigpLCBjb250YWluZXIuZW5kKCkpOwotfQot
Ci0vLyBWYWx1ZXMoKSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyBmcm9tIGV4cGxpY2l0bHkgc3Bl
Y2lmaWVkIGxpc3Qgb2YKLS8vIHBhcmFtZXRlcnMuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1
ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJv
ZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYxLCB2MiwgLi4uLCB2Ti4KLS8vCi0vLyBG
b3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVz
dCBlYWNoCi0vLyB3aXRoIHZhbHVlcyAib25lIiwgInR3byIsIGFuZCAidGhyZWUiOgotLy8KLS8v
IElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE51bVNlcXVlbmNlLCBCYXJUZXN0LCBWYWx1ZXMoIm9u
ZSIsICJ0d28iLCAidGhyZWUiKSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJv
bSB0ZXN0IGNhc2UgQmF6VGVzdCBlYWNoIHdpdGggdmFsdWVzIDEsIDIsIDMuNS4KLS8vIFRoZSBl
eGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIg
aW4gQmF6VGVzdC4KLS8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJl
cnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKLS8vCi0vLyBDdXJyZW50bHksIFZhbHVl
cygpIHN1cHBvcnRzIGZyb20gMSB0byAkbiBwYXJhbWV0ZXJzLgotLy8KLSRyYW5nZSBpIDEuLm4K
LSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1l
IFQkal1dPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkkaTwkZm9yIGosIFtbVCRqXV0+IFZhbHVlcygk
Zm9yIGosIFtbVCRqIHYkal1dKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheSRpPCRm
b3IgaiwgW1tUJGpdXT4oJGZvciBqLCBbW3Ykal1dKTsKLX0KLQotXV0KLQotLy8gQm9vbCgpIGFs
bG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVycyBpbiBhIHNldCBvZiAoZmFsc2Us
IHRydWUpLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQm9vbCgpCi0vLyAgIC0gcmV0dXJucyBhIGdl
bmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVudHMge2ZhbHNlLCB0cnVlfS4K
LS8vCi0vLyBJdCBpcyB1c2VmdWwgd2hlbiB0ZXN0aW5nIGNvZGUgdGhhdCBkZXBlbmRzIG9uIEJv
b2xlYW4gZmxhZ3MuIENvbWJpbmF0aW9ucwotLy8gb2YgbXVsdGlwbGUgZmxhZ3MgY2FuIGJlIHRl
c3RlZCB3aGVuIHNldmVyYWwgQm9vbCgpJ3MgYXJlIGNvbWJpbmVkIHVzaW5nCi0vLyBDb21iaW5l
KCkgZnVuY3Rpb24uCi0vLwotLy8gSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGFsbCB0ZXN0cyBp
biB0aGUgdGVzdCBjYXNlIEZsYWdEZXBlbmRlbnRUZXN0Ci0vLyB3aWxsIGJlIGluc3RhbnRpYXRl
ZCB0d2ljZSB3aXRoIHBhcmFtZXRlcnMgZmFsc2UgYW5kIHRydWUuCi0vLwotLy8gY2xhc3MgRmxh
Z0RlcGVuZGVudFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxib29sPiB7Ci0v
LyAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLS8vICAgICBleHRlcm5hbF9mbGFnID0gR2V0UGFy
YW0oKTsKLS8vICAgfQotLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQm9vbFNlcXVl
bmNlLCBGbGFnRGVwZW5kZW50VGVzdCwgQm9vbCgpKTsKLS8vCi1pbmxpbmUgaW50ZXJuYWw6OlBh
cmFtR2VuZXJhdG9yPGJvb2w+IEJvb2woKSB7Ci0gIHJldHVybiBWYWx1ZXMoZmFsc2UsIHRydWUp
OwotfQotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0vLyBDb21iaW5lKCkgYWxsb3dzIHRoZSB1
c2VyIHRvIGNvbWJpbmUgdHdvIG9yIG1vcmUgc2VxdWVuY2VzIHRvIHByb2R1Y2UKLS8vIHZhbHVl
cyBvZiBhIENhcnRlc2lhbiBwcm9kdWN0IG9mIHRob3NlIHNlcXVlbmNlcycgZWxlbWVudHMuCi0v
LwotLy8gU3lub3BzaXM6Ci0vLyBDb21iaW5lKGdlbjEsIGdlbjIsIC4uLiwgZ2VuTikKLS8vICAg
LSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBj
b21pbmcgZnJvbQotLy8gICAgIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiBlbGVtZW50cyBmcm9t
IHRoZSBzZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5Ci0vLyAgICAgZ2VuMSwgZ2VuMiwgLi4uLCBnZW5O
LiBUaGUgc2VxdWVuY2UgZWxlbWVudHMgd2lsbCBoYXZlIGEgdHlwZSBvZgotLy8gICAgIHR1cGxl
PFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAuLi4sIFROIGFyZSB0aGUgdHlwZXMKLS8v
ICAgICBvZiBlbGVtZW50cyBmcm9tIHNlcXVlbmNlcyBwcm9kdWNlcyBieSBnZW4xLCBnZW4yLCAu
Li4sIGdlbk4uCi0vLwotLy8gQ29tYmluZSBjYW4gaGF2ZSB1cCB0byAkbWF4dHVwbGUgYXJndW1l
bnRzLiBUaGlzIG51bWJlciBpcyBjdXJyZW50bHkgbGltaXRlZAotLy8gYnkgdGhlIG1heGltdW0g
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0dXBsZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IEdv
b2dsZQotLy8gVGVzdC4KLS8vCi0vLyBFeGFtcGxlOgotLy8KLS8vIFRoaXMgd2lsbCBpbnN0YW50
aWF0ZSB0ZXN0cyBpbiB0ZXN0IGNhc2UgQW5pbWFsVGVzdCBlYWNoIG9uZSB3aXRoCi0vLyB0aGUg
cGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxBQ0spLCB0dXBsZSgiY2F0IiwgV0hJVEUp
LAotLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1cGxlKCJkb2ciLCBXSElURSk6Ci0vLwot
Ly8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElURSB9OwotLy8gY2xhc3MgQW5pbWFsVGVz
dAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Y29uc3QgY2hh
ciosIENvbG9yPiA+IHsuLi59OwotLy8KLS8vIFRFU1RfUChBbmltYWxUZXN0LCBBbmltYWxMb29r
c05pY2UpIHsuLi59Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5pbWFsVmFyaWF0
aW9ucywgQW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoVmFs
dWVzKCJjYXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyhCTEFDSywgV0hJVEUpKSk7Ci0vLwotLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3Rz
IGluIEZsYWdEZXBlbmRlbnRUZXN0IHdpdGggYWxsIHZhcmlhdGlvbnMgb2YgdHdvCi0vLyBCb29s
ZWFuIGZsYWdzOgotLy8KLS8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0Ci0vLyAgICAgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTx0dXBsZTxib29sLCBib29sPiA+IHsKLS8vICAgdmly
dHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIEFzc2lnbnMgZXh0ZXJuYWxfZmxhZ18xIGFu
ZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhlIHR1cGxlLgotLy8gICAgIHRpZShleHRl
cm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBHZXRQYXJhbSgpOwotLy8gICB9Ci0vLyB9
OwotLy8KLS8vIFRFU1RfUChGbGFnRGVwZW5kZW50VGVzdCwgVGVzdEZlYXR1cmUxKSB7Ci0vLyAg
IC8vIFRlc3QgeW91ciBjb2RlIHVzaW5nIGV4dGVybmFsX2ZsYWdfMSBhbmQgZXh0ZXJuYWxfZmxh
Z18yIGhlcmUuCi0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUd29Cb29sU2VxdWVu
Y2UsIEZsYWdEZXBlbmRlbnRUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmlu
ZShCb29sKCksIEJvb2woKSkpOwotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxlCi0kZm9yIGkgW1sK
LSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBHZW5lcmF0b3Ik
al1dPgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIkaTwkZm9yIGosIFtbR2VuZXJh
dG9yJGpdXT4gQ29tYmluZSgKLSAgICAkZm9yIGosIFtbY29uc3QgR2VuZXJhdG9yJGomIGckal1d
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlciRpPCRmb3Igaiwg
W1tHZW5lcmF0b3Ikal1dPigKLSAgICAgICRmb3IgaiwgW1tnJGpdXSk7Ci19Ci0KLV1dCi0jIGVu
ZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCi0jIGRlZmluZSBURVNUX1AodGVzdF9jYXNlX25h
bWUsIHRlc3RfbmFtZSkgXAotICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2Fz
ZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgICAgIDogcHVibGljIHRlc3RfY2FzZV9uYW1lIHsgXAot
ICAgcHVibGljOiBcCi0gICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwg
dGVzdF9uYW1lKSgpIHt9IFwKLSAgICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHkoKTsgXAotICAgcHJp
dmF0ZTogXAotICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgXAotICAgICAgOjp0ZXN0
aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5
KCkuIFwKLSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xkZXI8dGVzdF9jYXNlX25hbWU+
KFwKLSAgICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0gICAgICAgICAgICAgICAgICBfX0ZJTEVf
XywgX19MSU5FX18pKS0+QWRkVGVzdFBhdHRlcm4oXAotICAgICAgICAgICAgICAgICAgICAgIEdU
RVNUX1NUUklOR0lGWV8odGVzdF9jYXNlX25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAg
R1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgbmV3
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlc3RNZXRhRmFjdG9yeTwgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpPigpKTsgXAotICAgICAgcmV0dXJu
IDA7IFwKLSAgICB9IFwKLSAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBH
VEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgXAotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8oXAotICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpKTsgXAotICB9OyBcCi0gIGludCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rf
Y2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSk6Omd0
ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyA9IFwKLSAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OkFkZFRvUmVnaXN0cnkoKTsgXAotICB2b2lkIEdU
RVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5
KCkKLQotLy8gVGhlIG9wdGlvbmFsIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgYWxsb3dzIHRoZSB1c2VyCi0vLyB0byBzcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3Rv
ciB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzCi0vLyBiYXNlZCBvbiB0
aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1l
bnQgb2YKLS8vIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBh
bmQgcmV0dXJuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJh
bU5hbWUgaXMgYSBidWlsdGluIHRlc3Qgc3VmZml4IGdlbmVyYXRvciB0aGF0Ci0vLyByZXR1cm5z
IHRoZSB2YWx1ZSBvZiB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKEdldFBhcmFtKCkpLgotLy8KLS8v
IE5vdGU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1wdHksIHVuaXF1ZSwgYW5kIG1heSBvbmx5
IGNvbnRhaW4gQVNDSUkKLS8vIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIHVuZGVyc2NvcmUu
IEJlY2F1c2UgUHJpbnRUb1N0cmluZyBhZGRzIHF1b3RlcwotLy8gdG8gc3RkOjpzdHJpbmcgYW5k
IEMgc3RyaW5ncywgaXQgd29uJ3Qgd29yayBmb3IgdGhlc2UgdHlwZXMuCi0KLSMgZGVmaW5lIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKHByZWZpeCwgdGVzdF9jYXNlX25hbWUsIGdlbmVyYXRvciwg
Li4uKSBcCi0gIHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0
X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiBcCi0gICAgICBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNl
X25hbWUjI19FdmFsR2VuZXJhdG9yXygpIHsgcmV0dXJuIGdlbmVyYXRvcjsgfSBcCi0gIHN0YXRp
YyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX0V2YWxHZW5l
cmF0ZU5hbWVfKCBcCi0gICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVzdF9j
YXNlX25hbWU6OlBhcmFtVHlwZT4mIGluZm8pIHsgXAotICAgIHJldHVybiA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpHZXRQYXJhbU5hbWVHZW48dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAg
ICAgICAoX19WQV9BUkdTX18pKGluZm8pOyBcCi0gIH0gXAotICBzdGF0aWMgaW50IGd0ZXN0XyMj
cHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9
IFwKLSAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPnBhcmFtZXRlcml6
ZWRfdGVzdF9yZWdpc3RyeSgpLiBcCi0gICAgICAgICAgR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVy
PHRlc3RfY2FzZV9uYW1lPihcCi0gICAgICAgICAgICAgICN0ZXN0X2Nhc2VfbmFtZSwgXAotICAg
ICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oXAotICAgICAgICAg
ICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKSktPkFkZFRlc3RDYXNlSW5zdGFudGlhdGlvbihc
Ci0gICAgICAgICAgICAgICAgICAgICAgI3ByZWZpeCwgXAotICAgICAgICAgICAgICAgICAgICAg
ICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdG9yXywgXAotICAg
ICAgICAgICAgICAgICAgICAgICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFs
R2VuZXJhdGVOYW1lXywgXAotICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVf
XykKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCA1MTg2NWY4NGU2ZjZm
YTNlMGZjZTE5ODcwMGI1YTVkZmU1ZjY1NTBlLi40NmZlODk1MGZlODhkZGQ4ZDdiYzliZmMxZDcw
OGMwYzkyOGEzMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdC1wcmludGVycy5oCkBAIC05Nyw3NSArOTcsMTQxIEBACiAKIC8vIEdP
T0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSSU5URVJTX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UFJJTlRFUlNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSSU5U
RVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUklOVEVSU19I
XwogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8
b3N0cmVhbT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVkZSA8c3RyaW5n
PgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0
aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0
LXBvcnQuaCIKKwogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCisj
aW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCi0jaWYgR1RFU1RfSEFTX1NU
RF9UVVBMRV8KLSMgaW5jbHVkZSA8dHVwbGU+Ci0jZW5kaWYKLQotI2lmIEdURVNUX0hBU19BQlNM
Ci0jaW5jbHVkZSAiYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgiCi0jaW5jbHVkZSAiYWJzbC90
eXBlcy9vcHRpb25hbC5oIgotI2luY2x1ZGUgImFic2wvdHlwZXMvdmFyaWFudC5oIgotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0hBU19SVFRJCisjaW5jbHVkZSA8dHlwZWlu
ZGV4PgorI2luY2x1ZGUgPHR5cGVpbmZvPgorI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQogCiBu
YW1lc3BhY2UgdGVzdGluZyB7CiAKLS8vIERlZmluaXRpb25zIGluIHRoZSAnaW50ZXJuYWwnIGFu
ZCAnaW50ZXJuYWwyJyBuYW1lIHNwYWNlcyBhcmUKLS8vIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhv
dXQgbm90aWNlLiAgRE8gTk9UIFVTRSBUSEVNIElOIFVTRVIgQ09ERSEKLW5hbWVzcGFjZSBpbnRl
cm5hbDIgeworLy8gRGVmaW5pdGlvbnMgaW4gdGhlIGludGVybmFsKiBuYW1lc3BhY2VzIGFyZSBz
dWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4KKy8vIERPIE5PVCBVU0UgVEhFTSBJTiBV
U0VSIENPREUhCituYW1lc3BhY2UgaW50ZXJuYWwgewogCi0vLyBQcmludHMgdGhlIGdpdmVuIG51
bWJlciBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIHRoZSBnaXZlbgotLy8gb3N0cmVh
bS4KLUdURVNUX0FQSV8gdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBj
aGFyKiBvYmpfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6c3RkOjpv
c3RyZWFtKiBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgVW5pdmVyc2FsUHJpbnQo
Y29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiAKLS8vIEZvciBzZWxlY3Rpbmcg
d2hpY2ggcHJpbnRlciB0byB1c2Ugd2hlbiBhIGdpdmVuIHR5cGUgaGFzIG5laXRoZXIgPDwKLS8v
IG5vciBQcmludFRvKCkuCi1lbnVtIFR5cGVLaW5kIHsKLSAga1Byb3RvYnVmLCAgICAgICAgICAg
ICAgLy8gYSBwcm90b2J1ZiB0eXBlCi0gIGtDb252ZXJ0aWJsZVRvSW50ZWdlciwgIC8vIGEgdHlw
ZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gKGUuZy4gYSBuYW1lZCBvciB1bm5hbWVkIGVudW0gdHlwZSkKLSNpZiBHVEVT
VF9IQVNfQUJTTAotICBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXcsICAvLyBhIHR5cGUgaW1wbGlj
aXRseSBjb252ZXJ0aWJsZSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhYnNs
OjpzdHJpbmdfdmlldwotI2VuZGlmCi0gIGtPdGhlclR5cGUgIC8vIGFueXRoaW5nIGVsc2UKKy8v
IFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciB3aGVuIHRoZSB1c2VyIGRvZXNu
J3QgZGVmaW5lCisvLyBhIFByaW50VG8oKSBmb3IgaXQuCitzdHJ1Y3QgQ29udGFpbmVyUHJpbnRl
ciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAgICAgICAoc2l6ZW9mKElzQ29udGFpbmVy
VGVzdDxUPigwKSkgPT0gc2l6ZW9mKElzQ29udGFpbmVyKSkgJiYKKyAgICAgICAgICAgICAgICAh
SXNSZWN1cnNpdmVDb250YWluZXI8VD46OnZhbHVlPjo6dHlwZT4KKyAgc3RhdGljIHZvaWQgUHJp
bnRWYWx1ZShjb25zdCBUJiBjb250YWluZXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBjb25z
dCBzaXplX3Qga01heENvdW50ID0gMzI7ICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVu
dHMgdG8gcHJpbnQuCisgICAgKm9zIDw8ICd7JzsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAg
IGZvciAoYXV0byYmIGVsZW0gOiBjb250YWluZXIpIHsKKyAgICAgIGlmIChjb3VudCA+IDApIHsK
KyAgICAgICAgKm9zIDw8ICcsJzsKKyAgICAgICAgaWYgKGNvdW50ID09IGtNYXhDb3VudCkgeyAg
Ly8gRW5vdWdoIGhhcyBiZWVuIHByaW50ZWQuCisgICAgICAgICAgKm9zIDw8ICIgLi4uIjsKKyAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgKm9zIDw8ICcgJzsKKyAg
ICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8oZWxlbSwgb3MpIGhlcmUgYXMgUHJpbnRUbygp
IGRvZXNuJ3QKKyAgICAgIC8vIGhhbmRsZSBgZWxlbWAgYmVpbmcgYSBuYXRpdmUgYXJyYXkuCisg
ICAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoZWxlbSwgb3MpOworICAgICAgKytjb3VudDsK
KyAgICB9CisKKyAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAqb3MgPDwgJyAnOworICAgIH0K
KyAgICAqb3MgPDwgJ30nOworICB9CiB9OwogCi0vLyBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBr
VHlwZUtpbmQ+OjpQcmludFZhbHVlKHZhbHVlLCBvcykgaXMgY2FsbGVkCi0vLyBieSB0aGUgdW5p
dmVyc2FsIHByaW50ZXIgdG8gcHJpbnQgYSB2YWx1ZSBvZiB0eXBlIFQgd2hlbiBuZWl0aGVyCi0v
LyBvcGVyYXRvcjw8IG5vciBQcmludFRvKCkgaXMgZGVmaW5lZCBmb3IgVCwgd2hlcmUga1R5cGVL
aW5kIGlzIHRoZQotLy8gImtpbmQiIG9mIFQgYXMgZGVmaW5lZCBieSBlbnVtIFR5cGVLaW5kLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIFR5cGVLaW5kIGtUeXBlS2luZD4KLWNsYXNzIFR5cGVXaXRo
b3V0Rm9ybWF0dGVyIHsKLSBwdWJsaWM6Ci0gIC8vIFRoaXMgZGVmYXVsdCB2ZXJzaW9uIGlzIGNh
bGxlZCB3aGVuIGtUeXBlS2luZCBpcyBrT3RoZXJUeXBlLgorLy8gVXNlZCB0byBwcmludCBhIHBv
aW50ZXIgdGhhdCBpcyBuZWl0aGVyIGEgY2hhciBwb2ludGVyIG5vciBhIG1lbWJlcgorLy8gcG9p
bnRlciwgd2hlbiB0aGUgdXNlciBkb2Vzbid0IGRlZmluZSBQcmludFRvKCkgZm9yIGl0LiAgKEEg
bWVtYmVyCisvLyB2YXJpYWJsZSBwb2ludGVyIG9yIG1lbWJlciBmdW5jdGlvbiBwb2ludGVyIGRv
ZXNuJ3QgcmVhbGx5IHBvaW50IHRvCisvLyBhIGxvY2F0aW9uIGluIHRoZSBhZGRyZXNzIHNwYWNl
LiAgVGhlaXIgcmVwcmVzZW50YXRpb24gaXMKKy8vIGltcGxlbWVudGF0aW9uLWRlZmluZWQuICBU
aGVyZWZvcmUgdGhleSB3aWxsIGJlIHByaW50ZWQgYXMgcmF3CisvLyBieXRlcy4pCitzdHJ1Y3Qg
RnVuY3Rpb25Qb2ludGVyUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6aXNfZnVuY3Rpb248VD46OnZhbHVlPjo6dHlwZT4KKyAgc3RhdGljIHZvaWQgUHJpbnRW
YWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7
CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAvLyBUIGlzIGEgZnVu
Y3Rpb24gdHlwZSwgc28gJypvcyA8PCBwJyBkb2Vzbid0IGRvIHdoYXQgd2Ugd2FudAorICAgICAg
Ly8gKGl0IGp1c3QgcHJpbnRzIHAgYXMgYm9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBj
b25zdAorICAgICAgLy8gdm9pZCouCisgICAgICAqb3MgPDwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB2b2lkKj4ocCk7CisgICAgfQorICB9Cit9OworCitzdHJ1Y3QgUG9pbnRlclByaW50ZXIgewor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShUKiBwLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7CisgICAgICAqb3Mg
PDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAvLyBUIGlzIG5vdCBhIGZ1bmN0aW9uIHR5
cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwKKyAgICAgIC8vIHJlbHlpbmcgb24gQURM
IHRvIHBpY2sgdXAgdXNlci1kZWZpbmVkIDw8IGZvciB0aGVpciBwb2ludGVyCisgICAgICAvLyB0
eXBlcywgaWYgYW55LgorICAgICAgKm9zIDw8IHA7CisgICAgfQorICB9Cit9OworCituYW1lc3Bh
Y2UgaW50ZXJuYWxfc3RyZWFtX29wZXJhdG9yX3dpdGhvdXRfbGV4aWNhbF9uYW1lX2xvb2t1cCB7
CisKKy8vIFRoZSBwcmVzZW5jZSBvZiBhbiBvcGVyYXRvcjw8IGhlcmUgd2lsbCB0ZXJtaW5hdGUg
bGV4aWNhbCBzY29wZSBsb29rdXAKKy8vIHN0cmFpZ2h0IGF3YXkgKGV2ZW4gdGhvdWdoIGl0IGNh
bm5vdCBiZSBhIG1hdGNoIGJlY2F1c2Ugb2YgaXRzIGFyZ3VtZW50CisvLyB0eXBlcykuIFRodXMs
IHRoZSB0d28gb3BlcmF0b3I8PCBjYWxscyBpbiBTdHJlYW1QcmludGVyIHdpbGwgZmluZCBvbmx5
IEFETAorLy8gY2FuZGlkYXRlcy4KK3N0cnVjdCBMb29rdXBCbG9ja2VyIHt9Owordm9pZCBvcGVy
YXRvcjw8KExvb2t1cEJsb2NrZXIsIExvb2t1cEJsb2NrZXIpOworCitzdHJ1Y3QgU3RyZWFtUHJp
bnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgLy8gRG9uJ3QgYWNj
ZXB0IG1lbWJlciBwb2ludGVycyBoZXJlLiBXZSdkIHByaW50IHRoZW0gdmlhIGltcGxpY2l0Cisg
ICAgICAgICAgICAvLyBjb252ZXJzaW9uIHRvIGJvb2wsIHdoaWNoIGlzbid0IHVzZWZ1bC4KKyAg
ICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8CisgICAgICAgICAg
ICAgICAgIXN0ZDo6aXNfbWVtYmVyX3BvaW50ZXI8VD46OnZhbHVlPjo6dHlwZSwKKyAgICAgICAg
ICAgIC8vIE9ubHkgYWNjZXB0IHR5cGVzIGZvciB3aGljaCB3ZSBjYW4gZmluZCBhIHN0cmVhbWlu
ZyBvcGVyYXRvciB2aWEKKyAgICAgICAgICAgIC8vIEFETCAocG9zc2libHkgaW52b2x2aW5nIGlt
cGxpY2l0IGNvbnZlcnNpb25zKS4KKyAgICAgICAgICAgIHR5cGVuYW1lID0gZGVjbHR5cGUoc3Rk
OjpkZWNsdmFsPHN0ZDo6b3N0cmVhbSY+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgc3RkOjpkZWNsdmFsPGNvbnN0IFQmPigpKT4KICAgc3RhdGljIHZvaWQgUHJpbnRWYWx1
ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgUHJpbnRCeXRlc0lu
T2JqZWN0VG8oc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigmdmFsdWUpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmFsdWUpLCBvcyk7CisgICAgLy8gQ2Fs
bCBzdHJlYW1pbmcgb3BlcmF0b3IgZm91bmQgYnkgQURMLCBwb3NzaWJseSB3aXRoIGltcGxpY2l0
IGNvbnZlcnNpb25zCisgICAgLy8gb2YgdGhlIGFyZ3VtZW50cy4KKyAgICAqb3MgPDwgdmFsdWU7
CiAgIH0KIH07CiAKLS8vIFdlIHByaW50IGEgcHJvdG9idWYgdXNpbmcgaXRzIFNob3J0RGVidWdT
dHJpbmcoKSB3aGVuIHRoZSBzdHJpbmcKLS8vIGRvZXNuJ3QgZXhjZWVkIHRoaXMgbWFueSBjaGFy
YWN0ZXJzOyBvdGhlcndpc2Ugd2UgcHJpbnQgaXQgdXNpbmcKLS8vIERlYnVnU3RyaW5nKCkgZm9y
IGJldHRlciByZWFkYWJpbGl0eS4KLWNvbnN0IHNpemVfdCBrUHJvdG9idWZPbmVMaW5lck1heExl
bmd0aCA9IDUwOworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRo
b3V0X2xleGljYWxfbmFtZV9sb29rdXAKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBU
eXBlV2l0aG91dEZvcm1hdHRlcjxULCBrUHJvdG9idWY+IHsKLSBwdWJsaWM6CitzdHJ1Y3QgUHJv
dG9idWZQcmludGVyIHsKKyAgLy8gV2UgcHJpbnQgYSBwcm90b2J1ZiB1c2luZyBpdHMgU2hvcnRE
ZWJ1Z1N0cmluZygpIHdoZW4gdGhlIHN0cmluZworICAvLyBkb2Vzbid0IGV4Y2VlZCB0aGlzIG1h
bnkgY2hhcmFjdGVyczsgb3RoZXJ3aXNlIHdlIHByaW50IGl0IHVzaW5nCisgIC8vIERlYnVnU3Ry
aW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KKyAgc3RhdGljIGNvbnN0IHNpemVfdCBrUHJv
dG9idWZPbmVMaW5lck1heExlbmd0aCA9IDUwOworCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAor
ICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbDo6SGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2
YWx1ZT46OnR5cGU+CiAgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewogICAgIHN0ZDo6c3RyaW5nIHByZXR0eV9zdHIgPSB2YWx1ZS5T
aG9ydERlYnVnU3RyaW5nKCk7CiAgICAgaWYgKHByZXR0eV9zdHIubGVuZ3RoKCkgPiBrUHJvdG9i
dWZPbmVMaW5lck1heExlbmd0aCkgewpAQCAtMTc1LDkgKzI0MSw3IEBAIGNsYXNzIFR5cGVXaXRo
b3V0Rm9ybWF0dGVyPFQsIGtQcm90b2J1Zj4gewogICB9CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0aWJsZVRvSW50ZWdl
cj4gewotIHB1YmxpYzoKK3N0cnVjdCBDb252ZXJ0aWJsZVRvSW50ZWdlclByaW50ZXIgewogICAv
LyBTaW5jZSBUIGhhcyBubyA8PCBvcGVyYXRvciBvciBQcmludFRvKCkgYnV0IGNhbiBiZSBpbXBs
aWNpdGx5CiAgIC8vIGNvbnZlcnRlZCB0byBCaWdnZXN0SW50LCB3ZSBwcmludCBpdCBhcyBhIEJp
Z2dlc3RJbnQuCiAgIC8vCkBAIC0xODUsMTEyICsyNDksNzMgQEAgY2xhc3MgVHlwZVdpdGhvdXRG
b3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9JbnRlZ2VyPiB7CiAgIC8vIGNhc2UgcHJpbnRpbmcg
aXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvci4gIEluIGNhc2UKICAgLy8g
VCBpcyBub3QgYW4gZW51bSwgcHJpbnRpbmcgaXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgYmVzdCB3
ZSBjYW4gZG8KICAgLy8gZ2l2ZW4gdGhhdCBpdCBoYXMgbm8gdXNlci1kZWZpbmVkIHByaW50ZXIu
Ci0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewotICAgIGNvbnN0IGludGVybmFsOjpCaWdnZXN0SW50IGtCaWdJbnQgPSB2YWx1ZTsK
LSAgICAqb3MgPDwga0JpZ0ludDsKKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6
QmlnZ2VzdEludCB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHZhbHVl
OwogICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX0FCU0wKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
Y2xhc3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9TdHJpbmdWaWV3PiB7
Ci0gcHVibGljOgotICAvLyBTaW5jZSBUIGhhcyBuZWl0aGVyIG9wZXJhdG9yPDwgbm9yIFByaW50
VG8oKSBidXQgY2FuIGJlIGltcGxpY2l0bHkKLSAgLy8gY29udmVydGVkIHRvIGFic2w6OnN0cmlu
Z192aWV3LCB3ZSBwcmludCBpdCBhcyBhIGFic2w6OnN0cmluZ192aWV3LgotICAvLwotICAvLyBO
b3RlOiB0aGUgaW1wbGVtZW50YXRpb24gaXMgZnVydGhlciBiZWxvdywgYXMgaXQgZGVwZW5kcyBv
bgotICAvLyBpbnRlcm5hbDo6UHJpbnRUbyBzeW1ib2wgd2hpY2ggaXMgZGVmaW5lZCBsYXRlciBp
biB0aGUgZmlsZS4KLSAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpz
dGQ6Om9zdHJlYW0qIG9zKTsKLX07Ci0jZW5kaWYKLQotLy8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1
ZSB0byB0aGUgZ2l2ZW4gb3N0cmVhbS4gIElmIHRoZSB2YWx1ZSBpcyBhCi0vLyBwcm90b2NvbCBt
ZXNzYWdlLCBpdHMgZGVidWcgc3RyaW5nIGlzIHByaW50ZWQ7IGlmIGl0J3MgYW4gZW51bSBvcgot
Ly8gb2YgYSB0eXBlIGltcGxpY2l0bHkgY29udmVydGlibGUgdG8gQmlnZ2VzdEludCwgaXQncyBw
cmludGVkIGFzIGFuCi0vLyBpbnRlZ2VyOyBvdGhlcndpc2UgdGhlIGJ5dGVzIGluIHRoZSB2YWx1
ZSBhcmUgcHJpbnRlZC4gIFRoaXMgaXMKLS8vIHdoYXQgVW5pdmVyc2FsUHJpbnRlcjxUPjo6UHJp
bnQoKSBkb2VzIHdoZW4gaXQga25vd3Mgbm90aGluZyBhYm91dAotLy8gdHlwZSBUIGFuZCBUIGhh
cyBuZWl0aGVyIDw8IG9wZXJhdG9yIG5vciBQcmludFRvKCkuCi0vLwotLy8gQSB1c2VyIGNhbiBv
dmVycmlkZSB0aGlzIGJlaGF2aW9yIGZvciBhIGNsYXNzIHR5cGUgRm9vIGJ5IGRlZmluaW5nCi0v
LyBhIDw8IG9wZXJhdG9yIGluIHRoZSBuYW1lc3BhY2Ugd2hlcmUgRm9vIGlzIGRlZmluZWQuCi0v
LwotLy8gV2UgcHV0IHRoaXMgb3BlcmF0b3IgaW4gbmFtZXNwYWNlICdpbnRlcm5hbDInIGluc3Rl
YWQgb2YgJ2ludGVybmFsJwotLy8gdG8gc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLCBhcyBt
dWNoIGNvZGUgaW4gJ2ludGVybmFsJyBuZWVkcyB0bwotLy8gdXNlIDw8IGluIFNUTCwgd2hpY2gg
d291bGQgY29uZmxpY3Qgd2l0aCBvdXIgb3duIDw8IHdlcmUgaXQgZGVmaW5lZAotLy8gaW4gJ2lu
dGVybmFsJy4KLS8vCi0vLyBOb3RlIHRoYXQgdGhpcyBvcGVyYXRvcjw8IHRha2VzIGEgZ2VuZXJp
YyBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwKLS8vIENoYXJUcmFpdHM+IHR5cGUgaW5zdGVhZCBv
ZiB0aGUgbW9yZSByZXN0cmljdGVkIHN0ZDo6b3N0cmVhbS4gIElmCi0vLyB3ZSBkZWZpbmUgaXQg
dG8gdGFrZSBhbiBzdGQ6Om9zdHJlYW0gaW5zdGVhZCwgd2UnbGwgZ2V0IGFuCi0vLyAiYW1iaWd1
b3VzIG92ZXJsb2FkcyIgY29tcGlsZXIgZXJyb3Igd2hlbiB0cnlpbmcgdG8gcHJpbnQgYSB0eXBl
Ci0vLyBGb28gdGhhdCBzdXBwb3J0cyBzdHJlYW1pbmcgdG8gc3RkOjpiYXNpY19vc3RyZWFtPENo
YXIsCi0vLyBDaGFyVHJhaXRzPiwgYXMgdGhlIGNvbXBpbGVyIGNhbm5vdCB0ZWxsIHdoZXRoZXIK
LS8vIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3QgVCYpIG9yCi0vLyBvcGVyYXRvcjw8
KHN0ZDo6YmFzaWNfc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+LCBjb25zdCBGb28mKSBpcyBtb3Jl
Ci0vLyBzcGVjaWZpYy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyLCB0eXBlbmFtZSBDaGFyVHJh
aXRzLCB0eXBlbmFtZSBUPgotOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4m
IG9wZXJhdG9yPDwoCi0gICAgOjpzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwgQ2hhclRyYWl0cz4m
IG9zLCBjb25zdCBUJiB4KSB7Ci0gIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIChpbnRlcm5hbDo6
SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID8ga1Byb3RvYnVmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpbnRlcm5h
bDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFQmLCBpbnRlcm5hbDo6QmlnZ2VzdEludD46OnZhbHVlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrQ29udmVydGlibGVUb0ludGVnZXIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Ci0jaWYgR1RFU1RfSEFTX0FCU0wKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6SW1wbGljaXRseUNv
bnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBUJiwgYWJzbDo6c3RyaW5nX3ZpZXc+Ojp2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA/IGtDb252ZXJ0aWJsZVRvU3RyaW5nVmlldwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CitzdHJ1Y3QgQ29udmVydGlibGVUb1N0cmlu
Z1ZpZXdQcmludGVyIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKKyAgc3Rh
dGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6U3RyaW5nVmlldyB2YWx1ZSwgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7CisgICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KHZhbHVlLCBvcyk7Cisg
IH0KICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrT3Ro
ZXJUeXBlKT46OlByaW50VmFsdWUoeCwgJm9zKTsKLSAgcmV0dXJuIG9zOwotfQorfTsKIAotfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsMgotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotLy8gVGhp
cyBuYW1lc3BhY2UgTVVTVCBOT1QgQkUgTkVTVEVEIElOIDo6dGVzdGluZywgb3IgdGhlIG5hbWUg
bG9vay11cAotLy8gbWFnaWMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgVW5pdmVyc2FsUHJpbnRl
ciB3b24ndCB3b3JrLgotbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwgeworLy8gUHJpbnRzIHRo
ZSBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGdpdmVuIG9iamVjdCB0byB0aGUgZ2l2ZW4K
Ky8vIG9zdHJlYW0uCitHVEVTVF9BUElfIHZvaWQgUHJpbnRCeXRlc0luT2JqZWN0VG8oY29uc3Qg
dW5zaWduZWQgY2hhciogb2JqX2J5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnN0ZDo6b3N0cmVhbSogb3MpOworc3RydWN0IFJhd0J5dGVzUHJpbnRlciB7CisgIC8vIFNG
SU5BRSBvbiBgc2l6ZW9mYCB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIGNvbXBsZXRlIHR5cGUuCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgPSBzaXplb2YoVCk+CisgIHN0YXRpYyB2b2lk
IFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgIFBy
aW50Qnl0ZXNJbk9iamVjdFRvKAorICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBj
aGFyKj4oCisgICAgICAgICAgICAvLyBMb2FkIGJlYXJpbmcgY2FzdCB0byB2b2lkKiB0byBzdXBw
b3J0IGlPUworICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oc3RkOjph
ZGRyZXNzb2YodmFsdWUpKSksCisgICAgICAgIHNpemVvZih2YWx1ZSksIG9zKTsKKyAgfQorfTsK
IAotLy8gVXNlZCB0byBwcmludCBhIHZhbHVlIHRoYXQgaXMgbm90IGFuIFNUTC1zdHlsZSBjb250
YWluZXIgd2hlbiB0aGUKLS8vIHVzZXIgZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnROb25Db250YWluZXJUbyhj
b25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIC8vIFdpdGggdGhlIGZvbGxv
d2luZyBzdGF0ZW1lbnQsIGR1cmluZyB1bnF1YWxpZmllZCBuYW1lIGxvb2t1cCwKLSAgLy8gdGVz
dGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGFwcGVhcnMgYXMgaWYgaXQgd2FzIGRlY2xhcmVk
IGluCi0gIC8vIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBuYW1lc3BhY2UgdGhhdCBjb250YWlucyBi
b3RoCi0gIC8vIDo6dGVzdGluZ19pbnRlcm5hbCBhbmQgOjp0ZXN0aW5nOjppbnRlcm5hbDIsIGku
ZS4gdGhlIGdsb2JhbAotICAvLyBuYW1lc3BhY2UuICBGb3IgbW9yZSBkZXRhaWxzLCByZWZlciB0
byB0aGUgQysrIFN0YW5kYXJkIHNlY3Rpb24KLSAgLy8gNy4zLjQtMSBbbmFtZXNwYWNlLnVkaXJd
LiAgVGhpcyBhbGxvd3MgdXMgdG8gZmFsbCBiYWNrIG9udG8KLSAgLy8gdGVzdGluZzo6aW50ZXJu
YWwyOjpvcGVyYXRvcjw8IGluIGNhc2UgVCBkb2Vzbid0IGNvbWUgd2l0aCBhIDw8Ci0gIC8vIG9w
ZXJhdG9yLgotICAvLwotICAvLyBXZSBjYW5ub3Qgd3JpdGUgJ3VzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWwyOjpvcGVyYXRvcjw8OycsIHdoaWNoCi0gIC8vIGdjYyAzLjMgZmFpbHMgdG8gY29tcGls
ZSBkdWUgdG8gYSBjb21waWxlciBidWcuCi0gIHVzaW5nIG5hbWVzcGFjZSA6OnRlc3Rpbmc6Omlu
dGVybmFsMjsgIC8vIE5PTElOVAorc3RydWN0IEZhbGxiYWNrUHJpbnRlciB7CisgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgorICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0IFQmLCA6OnN0ZDo6
b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgIihpbmNvbXBsZXRlIHR5cGUpIjsKKyAgfQorfTsK
IAotICAvLyBBc3N1bWluZyBUIGlzIGRlZmluZWQgaW4gbmFtZXNwYWNlIGZvbywgaW4gdGhlIG5l
eHQgc3RhdGVtZW50LAotICAvLyB0aGUgY29tcGlsZXIgd2lsbCBjb25zaWRlciBhbGwgb2Y6Ci0g
IC8vCi0gIC8vICAgMS4gZm9vOjpvcGVyYXRvcjw8ICh0aGFua3MgdG8gS29lbmlnIGxvb2stdXAp
LAotICAvLyAgIDIuIDo6b3BlcmF0b3I8PCAoYXMgdGhlIGN1cnJlbnQgbmFtZXNwYWNlIGlzIGVu
Y2xvc2VkIGluIDo6KSwKLSAgLy8gICAzLiB0ZXN0aW5nOjppbnRlcm5hbDI6Om9wZXJhdG9yPDwg
KHRoYW5rcyB0byB0aGUgdXNpbmcgc3RhdGVtZW50IGFib3ZlKS4KLSAgLy8KLSAgLy8gVGhlIG9w
ZXJhdG9yPDwgd2hvc2UgdHlwZSBtYXRjaGVzIFQgYmVzdCB3aWxsIGJlIHBpY2tlZC4KLSAgLy8K
LSAgLy8gV2UgZGVsaWJlcmF0ZWx5IGFsbG93ICMyIHRvIGJlIGEgY2FuZGlkYXRlLCBhcyBzb21l
dGltZXMgaXQncwotICAvLyBpbXBvc3NpYmxlIHRvIGRlZmluZSAjMSAoZS5nLiB3aGVuIGZvbyBp
cyA6OnN0ZCwgZGVmaW5pbmcKLSAgLy8gYW55dGhpbmcgaW4gaXQgaXMgdW5kZWZpbmVkIGJlaGF2
aW9yIHVubGVzcyB5b3UgYXJlIGEgY29tcGlsZXIKLSAgLy8gdmVuZG9yLikuCi0gICpvcyA8PCB2
YWx1ZTsKLX0KKy8vIFRyeSBldmVyeSBwcmludGVyIGluIG9yZGVyIGFuZCByZXR1cm4gdGhlIGZp
cnN0IG9uZSB0aGF0IHdvcmtzLgordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEUsIHR5
cGVuYW1lIFByaW50ZXIsIHR5cGVuYW1lLi4uIFByaW50ZXJzPgorc3RydWN0IEZpbmRGaXJzdFBy
aW50ZXIgOiBGaW5kRmlyc3RQcmludGVyPFQsIEUsIFByaW50ZXJzLi4uPiB7fTsKIAotfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBQcmludGVyLCB0eXBlbmFtZS4uLiBQcmludGVycz4KK3N0cnVjdCBGaW5kRmlyc3RQcmludGVy
PAorICAgIFQsIGRlY2x0eXBlKFByaW50ZXI6OlByaW50VmFsdWUoc3RkOjpkZWNsdmFsPGNvbnN0
IFQmPigpLCBudWxscHRyKSksCisgICAgUHJpbnRlciwgUHJpbnRlcnMuLi4+IHsKKyAgdXNpbmcg
dHlwZSA9IFByaW50ZXI7Cit9OwogCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50
ZXJuYWwgeworLy8gU2VsZWN0IHRoZSBiZXN0IHByaW50ZXIgaW4gdGhlIGZvbGxvd2luZyBvcmRl
cjoKKy8vICAtIFByaW50IGNvbnRhaW5lcnMgKHRoZXkgaGF2ZSBiZWdpbi9lbmQvZXRjKS4KKy8v
ICAtIFByaW50IGZ1bmN0aW9uIHBvaW50ZXJzLgorLy8gIC0gUHJpbnQgb2JqZWN0IHBvaW50ZXJz
LgorLy8gIC0gVXNlIHRoZSBzdHJlYW0gb3BlcmF0b3IsIGlmIGF2YWlsYWJsZS4KKy8vICAtIFBy
aW50IHByb3RvY29sIGJ1ZmZlcnMuCisvLyAgLSBQcmludCB0eXBlcyBjb252ZXJ0aWJsZSB0byBC
aWdnZXN0SW50LgorLy8gIC0gUHJpbnQgdHlwZXMgY29udmVydGlibGUgdG8gU3RyaW5nVmlldywg
aWYgYXZhaWxhYmxlLgorLy8gIC0gRmFsbGJhY2sgdG8gcHJpbnRpbmcgdGhlIHJhdyBieXRlcyBv
ZiB0aGUgb2JqZWN0LgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIFByaW50V2l0aEZhbGxi
YWNrKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgdXNpbmcgUHJpbnRl
ciA9IHR5cGVuYW1lIEZpbmRGaXJzdFByaW50ZXI8CisgICAgICBULCB2b2lkLCBDb250YWluZXJQ
cmludGVyLCBGdW5jdGlvblBvaW50ZXJQcmludGVyLCBQb2ludGVyUHJpbnRlciwKKyAgICAgIGlu
dGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9sb29rdXA6OlN0cmVh
bVByaW50ZXIsCisgICAgICBQcm90b2J1ZlByaW50ZXIsIENvbnZlcnRpYmxlVG9JbnRlZ2VyUHJp
bnRlciwKKyAgICAgIENvbnZlcnRpYmxlVG9TdHJpbmdWaWV3UHJpbnRlciwgUmF3Qnl0ZXNQcmlu
dGVyLCBGYWxsYmFja1ByaW50ZXI+Ojp0eXBlOworICBQcmludGVyOjpQcmludFZhbHVlKHZhbHVl
LCBvcyk7Cit9CiAKIC8vIEZvcm1hdEZvckNvbXBhcmlzb248VG9QcmludCwgT3RoZXJPcGVyYW5k
Pjo6Rm9ybWF0KHZhbHVlKSBmb3JtYXRzIGEKIC8vIHZhbHVlIG9mIHR5cGUgVG9QcmludCB0aGF0
IGlzIGFuIG9wZXJhbmQgb2YgYSBjb21wYXJpc29uIGFzc2VydGlvbgpAQCAtMzQwLDYgKzM2NSwx
NCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyKTsKIEdURVNU
X0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNoYXIpOwogR1RFU1RfSU1Q
TF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8od2NoYXJfdCk7CiBHVEVTVF9JTVBMX0ZPUk1B
VF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hhcl90KTsKKyNpZmRlZiBfX2NwcF9jaGFy
OF90CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyOF90KTsKK0dU
RVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKGNvbnN0IGNoYXI4X3QpOworI2Vu
ZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyMTZfdCk7CitH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyMTZfdCk7CitH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjaGFyMzJfdCk7CitHVEVTVF9J
TVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyMzJfdCk7CiAKICN1bmRl
ZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXwogCkBAIC0zNTcsMTYgKzM5
MCwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hh
cl90KTsKIAogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0
ZDo6c3RyaW5nKTsKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3Qg
Y2hhciwgOjpzdGQ6OnN0cmluZyk7Ci0KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotR1RF
U1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0cmluZyk7Ci1HVEVT
VF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIsIDo6c3RyaW5nKTsK
LSNlbmRpZgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi1HVEVTVF9JTVBMX0ZPUk1B
VF9DX1NUUklOR19BU19TVFJJTkdfKHdjaGFyX3QsIDo6d3N0cmluZyk7Ci1HVEVTVF9JTVBMX0ZP
Uk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IHdjaGFyX3QsIDo6d3N0cmluZyk7CisjaWZk
ZWYgX19jcHBfY2hhcjhfdAorR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhj
aGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNf
U1RSSU5HXyhjb25zdCBjaGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOwogI2VuZGlmCitHVEVTVF9J
TVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNoYXIxNl90LCA6OnN0ZDo6dTE2c3RyaW5n
KTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY29uc3QgY2hhcjE2X3Qs
IDo6c3RkOjp1MTZzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
XyhjaGFyMzJfdCwgOjpzdGQ6OnUzMnN0cmluZyk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklO
R19BU19TVFJJTkdfKGNvbnN0IGNoYXIzMl90LCA6OnN0ZDo6dTMyc3RyaW5nKTsKIAogI2lmIEdU
RVNUX0hBU19TVERfV1NUUklORwogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
Xyh3Y2hhcl90LCA6OnN0ZDo6d3N0cmluZyk7CkBAIC0zOTksODUgKzQzMCw2IEBAIHN0ZDo6c3Ry
aW5nIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSgKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12
b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwot
Ci1lbnVtIERlZmF1bHRQcmludGVyVHlwZSB7Ci0gIGtQcmludENvbnRhaW5lciwKLSAga1ByaW50
UG9pbnRlciwKLSAga1ByaW50RnVuY3Rpb25Qb2ludGVyLAotICBrUHJpbnRPdGhlciwKLX07Ci10
ZW1wbGF0ZSA8RGVmYXVsdFByaW50ZXJUeXBlIHR5cGU+IHN0cnVjdCBXcmFwUHJpbnRlclR5cGUg
e307Ci0KLS8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciB3aGVuIHRoZSB1
c2VyIGRvZXNuJ3QgZGVmaW5lCi0vLyBhIFByaW50VG8oKSBmb3IgaXQuCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgQz4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludENvbnRh
aW5lcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEMmIGNvbnRhaW5l
ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGNvbnN0IHNpemVfdCBrTWF4Q291bnQgPSAzMjsg
IC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyB0byBwcmludC4KLSAgKm9zIDw8ICd7
JzsKLSAgc2l6ZV90IGNvdW50ID0gMDsKLSAgZm9yICh0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRv
ciBpdCA9IGNvbnRhaW5lci5iZWdpbigpOwotICAgICAgIGl0ICE9IGNvbnRhaW5lci5lbmQoKTsg
KytpdCwgKytjb3VudCkgewotICAgIGlmIChjb3VudCA+IDApIHsKLSAgICAgICpvcyA8PCAnLCc7
Ci0gICAgICBpZiAoY291bnQgPT0ga01heENvdW50KSB7ICAvLyBFbm91Z2ggaGFzIGJlZW4gcHJp
bnRlZC4KLSAgICAgICAgKm9zIDw8ICIgLi4uIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0g
ICAgfQotICAgICpvcyA8PCAnICc7Ci0gICAgLy8gV2UgY2Fubm90IGNhbGwgUHJpbnRUbygqaXQs
IG9zKSBoZXJlIGFzIFByaW50VG8oKSBkb2Vzbid0Ci0gICAgLy8gaGFuZGxlICppdCBiZWluZyBh
IG5hdGl2ZSBhcnJheS4KLSAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoKml0LCBvcyk7Ci0g
IH0KLQotICBpZiAoY291bnQgPiAwKSB7Ci0gICAgKm9zIDw8ICcgJzsKLSAgfQotICAqb3MgPDwg
J30nOwotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgcG9pbnRlciB0aGF0IGlzIG5laXRoZXIgYSBj
aGFyIHBvaW50ZXIgbm9yIGEgbWVtYmVyCi0vLyBwb2ludGVyLCB3aGVuIHRoZSB1c2VyIGRvZXNu
J3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuICAoQSBtZW1iZXIKLS8vIHZhcmlhYmxlIHBvaW50
ZXIgb3IgbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXIgZG9lc24ndCByZWFsbHkgcG9pbnQgdG8KLS8v
IGEgbG9jYXRpb24gaW4gdGhlIGFkZHJlc3Mgc3BhY2UuICBUaGVpciByZXByZXNlbnRhdGlvbiBp
cwotLy8gaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gIFRoZXJlZm9yZSB0aGV5IHdpbGwgYmUgcHJp
bnRlZCBhcyByYXcKLS8vIGJ5dGVzLikKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZh
dWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50UG9pbnRlcj4gLyogZHVtbXkgKi8sCi0g
ICAgICAgICAgICAgICAgICAgIFQqIHAsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBpZiAocCA9
PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAvLyBUIGlzIG5v
dCBhIGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwKLSAgICAvLyBy
ZWx5aW5nIG9uIEFETCB0byBwaWNrIHVwIHVzZXItZGVmaW5lZCA8PCBmb3IgdGhlaXIgcG9pbnRl
cgotICAgIC8vIHR5cGVzLCBpZiBhbnkuCi0gICAgKm9zIDw8IHA7Ci0gIH0KLX0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50
RnVuY3Rpb25Qb2ludGVyPiAvKiBkdW1teSAqLywKLSAgICAgICAgICAgICAgICAgICAgVCogcCwg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGlmIChwID09IE5VTEwpIHsKLSAgICAqb3MgPDwgIk5V
TEwiOwotICB9IGVsc2UgewotICAgIC8vIFQgaXMgYSBmdW5jdGlvbiB0eXBlLCBzbyAnKm9zIDw8
IHAnIGRvZXNuJ3QgZG8gd2hhdCB3ZSB3YW50Ci0gICAgLy8gKGl0IGp1c3QgcHJpbnRzIHAgYXMg
Ym9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBjb25zdAotICAgIC8vIHZvaWQqLgotICAg
ICpvcyA8PCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihwKTsKLSAgfQotfQotCi0vLyBV
c2VkIHRvIHByaW50IGEgbm9uLWNvbnRhaW5lciwgbm9uLXBvaW50ZXIgdmFsdWUgd2hlbiB0aGUg
dXNlcgotLy8gZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50T3RoZXI+
IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7Ci0gIDo6dGVzdGluZ19pbnRlcm5hbDo6RGVmYXVsdFByaW50Tm9uQ29u
dGFpbmVyVG8odmFsdWUsIG9zKTsKLX0KLQogLy8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1ZSB1c2lu
ZyB0aGUgPDwgb3BlcmF0b3IgaWYgaXQgaGFzIG9uZTsKIC8vIG90aGVyd2lzZSBwcmludHMgdGhl
IGJ5dGVzIGluIGl0LiAgVGhpcyBpcyB3aGF0CiAvLyBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmlu
dCgpIGRvZXMgd2hlbiBQcmludFRvKCkgaXMgbm90IHNwZWNpYWxpemVkCkBAIC00OTEsNDAgKzQ0
Myw3IEBAIHZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludE90aGVyPiAv
KiBkdW1teSAqLywKIC8vIHdhbnRzKS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBQcmlu
dFRvKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgLy8gRGVmYXVsdFBy
aW50VG8oKSBpcyBvdmVybG9hZGVkLiAgVGhlIHR5cGUgb2YgaXRzIGZpcnN0IGFyZ3VtZW50Ci0g
IC8vIGRldGVybWluZXMgd2hpY2ggdmVyc2lvbiB3aWxsIGJlIHBpY2tlZC4KLSAgLy8KLSAgLy8g
Tm90ZSB0aGF0IHdlIGNoZWNrIGZvciBjb250YWluZXIgdHlwZXMgaGVyZSwgcHJpb3IgdG8gd2Ug
Y2hlY2sKLSAgLy8gZm9yIHByb3RvY29sIG1lc3NhZ2UgdHlwZXMgaW4gb3VyIG9wZXJhdG9yPDwu
ICBUaGUgcmF0aW9uYWxlIGlzOgotICAvLwotICAvLyBGb3IgcHJvdG9jb2wgbWVzc2FnZXMsIHdl
IHdhbnQgdG8gZ2l2ZSBwZW9wbGUgYSBjaGFuY2UgdG8KLSAgLy8gb3ZlcnJpZGUgR29vZ2xlIE1v
Y2sncyBmb3JtYXQgYnkgZGVmaW5pbmcgYSBQcmludFRvKCkgb3IKLSAgLy8gb3BlcmF0b3I8PC4g
IEZvciBTVEwgY29udGFpbmVycywgb3RoZXIgZm9ybWF0cyBjYW4gYmUKLSAgLy8gaW5jb21wYXRp
YmxlIHdpdGggR29vZ2xlIE1vY2sncyBmb3JtYXQgZm9yIHRoZSBjb250YWluZXIKLSAgLy8gZWxl
bWVudHM7IHRoZXJlZm9yZSB3ZSBjaGVjayBmb3IgY29udGFpbmVyIHR5cGVzIGhlcmUgdG8gZW5z
dXJlCi0gIC8vIHRoYXQgb3VyIGZvcm1hdCBpcyB1c2VkLgotICAvLwotICAvLyBOb3RlIHRoYXQg
TVNWQyBhbmQgY2xhbmctY2wgZG8gYWxsb3cgYW4gaW1wbGljaXQgY29udmVyc2lvbiBmcm9tCi0g
IC8vIHBvaW50ZXItdG8tZnVuY3Rpb24gdG8gcG9pbnRlci10by1vYmplY3QsIGJ1dCBjbGFuZy1j
bCB3YXJucyBvbiBpdC4KLSAgLy8gU28gZG9uJ3QgdXNlIEltcGxpY2l0bHlDb252ZXJ0aWJsZSBp
ZiBpdCBjYW4gYmUgaGVscGVkIHNpbmNlIGl0IHdpbGwKLSAgLy8gY2F1c2UgdGhpcyB3YXJuaW5n
LCBhbmQgdXNlIGEgc2VwYXJhdGUgb3ZlcmxvYWQgb2YgRGVmYXVsdFByaW50VG8gZm9yCi0gIC8v
IGZ1bmN0aW9uIHBvaW50ZXJzIHNvIHRoYXQgdGhlIGAqb3MgPDwgcGAgaW4gdGhlIG9iamVjdCBw
b2ludGVyIG92ZXJsb2FkCi0gIC8vIGRvZXNuJ3QgY2F1c2UgdGhhdCB3YXJuaW5nIGVpdGhlci4K
LSAgRGVmYXVsdFByaW50VG8oCi0gICAgICBXcmFwUHJpbnRlclR5cGUgPAotICAgICAgICAgICAg
ICAgICAgKHNpemVvZihJc0NvbnRhaW5lclRlc3Q8VD4oMCkpID09IHNpemVvZihJc0NvbnRhaW5l
cikpICYmCi0gICAgICAgICAgICAgICFJc1JlY3Vyc2l2ZUNvbnRhaW5lcjxUPjo6dmFsdWUKLSAg
ICAgICAgICA/IGtQcmludENvbnRhaW5lcgotICAgICAgICAgIDogIWlzX3BvaW50ZXI8VD46OnZh
bHVlCi0gICAgICAgICAgICAgICAgPyBrUHJpbnRPdGhlcgotI2lmIEdURVNUX0xBTkdfQ1hYMTEK
LSAgICAgICAgICAgICAgICA6IHN0ZDo6aXNfZnVuY3Rpb248dHlwZW5hbWUgc3RkOjpyZW1vdmVf
cG9pbnRlcjxUPjo6dHlwZT46OnZhbHVlCi0jZWxzZQotICAgICAgICAgICAgICAgIDogIWludGVy
bmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgY29uc3Qgdm9pZCo+Ojp2YWx1ZQotI2VuZGlm
Ci0gICAgICAgICAgICAgICAgICAgICAgPyBrUHJpbnRGdW5jdGlvblBvaW50ZXIKLSAgICAgICAg
ICAgICAgICAgICAgICA6IGtQcmludFBvaW50ZXIgPiAoKSwKLSAgICAgIHZhbHVlLCBvcyk7Cisg
IGludGVybmFsOjpQcmludFdpdGhGYWxsYmFjayh2YWx1ZSwgb3MpOwogfQogCiAvLyBUaGUgZm9s
bG93aW5nIGxpc3Qgb2YgUHJpbnRUbygpIG92ZXJsb2FkcyB0ZWxscwpAQCAtNTU1LDYgKzQ3NCwx
NiBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGJvb2wgeCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAv
LyBpcyBpbXBsZW1lbnRlZCBhcyBhbiB1bnNpZ25lZCB0eXBlLgogR1RFU1RfQVBJXyB2b2lkIFBy
aW50VG8od2NoYXJfdCB3YywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAorR1RFU1RfQVBJXyB2b2lk
IFByaW50VG8oY2hhcjMyX3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFBy
aW50VG8oY2hhcjE2X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGlj
aXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNpZmRlZiBfX2NwcF9jaGFyOF90Citpbmxp
bmUgdm9pZCBQcmludFRvKGNoYXI4X3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50
VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNlbmRpZgorCiAvLyBPdmVy
bG9hZHMgZm9yIEMgc3RyaW5ncy4KIEdURVNUX0FQSV8gdm9pZCBQcmludFRvKGNvbnN0IGNoYXIq
IHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQcmludFRvKGNoYXIqIHMsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNTc1LDYgKzUwNCwyMyBAQCBpbmxpbmUgdm9pZCBQcmlu
dFRvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogaW5saW5l
IHZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAg
UHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSwgb3MpOwogfQorI2lmZGVmIF9f
Y3BwX2NoYXI4X3QKKy8vIE92ZXJsb2FkcyBmb3IgdTggc3RyaW5ncy4KK3ZvaWQgUHJpbnRUbyhj
b25zdCBjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRU
byhjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgUHJpbnRUbyhJbXBsaWNpdENh
c3RfPGNvbnN0IGNoYXI4X3QqPihzKSwgb3MpOworfQorI2VuZGlmCisvLyBPdmVybG9hZHMgZm9y
IHUxNiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0IGNoYXIxNl90KiBzLCA6OnN0ZDo6b3N0
cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyMTZfdCogcywgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCBjaGFyMTZfdCo+KHMpLCBv
cyk7Cit9CisvLyBPdmVybG9hZHMgZm9yIHUzMiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0
IGNoYXIzMl90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhj
aGFyMzJfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0
Xzxjb25zdCBjaGFyMzJfdCo+KHMpLCBvcyk7Cit9CiAKIC8vIE1TVkMgY2FuIGJlIGNvbmZpZ3Vy
ZWQgdG8gZGVmaW5lIHdjaGFyX3QgYXMgYSB0eXBlZGVmIG9mIHVuc2lnbmVkCiAvLyBzaG9ydC4g
IEl0IGRlZmluZXMgX05BVElWRV9XQ0hBUl9UX0RFRklORUQgd2hlbiB3Y2hhcl90IGlzIGEgbmF0
aXZlCkBAIC02MDMsMjcgKzU0OSwzMyBAQCB2b2lkIFByaW50UmF3QXJyYXlUbyhjb25zdCBUIGFb
XSwgc2l6ZV90IGNvdW50LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgfQogfQogCi0vLyBPdmVy
bG9hZHMgZm9yIDo6c3RyaW5nIGFuZCA6OnN0ZDo6c3RyaW5nLgotI2lmIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhjb25zdCA6OnN0cmluZyZz
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0cmlu
ZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50U3RyaW5nVG8ocywgb3MpOwotfQot
I2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCisvLyBPdmVybG9hZHMgZm9yIDo6
c3RkOjpzdHJpbmcuCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRTdHJpbmdUbyhjb25zdCA6OnN0ZDo6
c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0
IDo6c3RkOjpzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICBQcmludFN0cmluZ1Rv
KHMsIG9zKTsKIH0KIAotLy8gT3ZlcmxvYWRzIGZvciA6OndzdHJpbmcgYW5kIDo6c3RkOjp3c3Ry
aW5nLgotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotR1RFU1RfQVBJXyB2b2lkIFByaW50
V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyZzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5s
aW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewotICBQcmludFdpZGVTdHJpbmdUbyhzLCBvcyk7CisvLyBPdmVybG9hZHMgZm9yIDo6c3RkOjp1
OHN0cmluZworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK0dURVNUX0FQSV8gdm9pZCBQcmludFU4U3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5s
aW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dThzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFt
KiBvcykgeworICBQcmludFU4U3RyaW5nVG8ocywgb3MpOworfQorI2VuZGlmCisKKy8vIE92ZXJs
b2FkcyBmb3IgOjpzdGQ6OnUxNnN0cmluZworR1RFU1RfQVBJXyB2b2lkIFByaW50VTE2U3RyaW5n
VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGlu
ZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7CisgIFByaW50VTE2U3RyaW5nVG8ocywgb3MpOworfQorCisvLyBPdmVybG9hZHMgZm9y
IDo6c3RkOjp1MzJzdHJpbmcKK0dURVNUX0FQSV8gdm9pZCBQcmludFUzMlN0cmluZ1RvKGNvbnN0
IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CitpbmxpbmUgdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewor
ICBQcmludFUzMlN0cmluZ1RvKHMsIG9zKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HCiAKKy8vIE92ZXJsb2FkcyBmb3IgOjpzdGQ6OndzdHJpbmcuCiAjaWYgR1RFU1Rf
SEFTX1NURF9XU1RSSU5HCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29uc3Qg
OjpzdGQ6OndzdHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIGlubGluZSB2b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNjMx
LDEwNiArNTgzLDgyIEBAIGlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcm
IHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogfQogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dT
VFJJTkcKIAotI2lmIEdURVNUX0hBU19BQlNMCi0vLyBPdmVybG9hZCBmb3IgYWJzbDo6c3RyaW5n
X3ZpZXcuCi1pbmxpbmUgdm9pZCBQcmludFRvKGFic2w6OnN0cmluZ192aWV3IHNwLCA6OnN0ZDo6
b3N0cmVhbSogb3MpIHsKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKKy8vIE92
ZXJsb2FkIGZvciBpbnRlcm5hbDo6U3RyaW5nVmlldy4KK2lubGluZSB2b2lkIFByaW50VG8oaW50
ZXJuYWw6OlN0cmluZ1ZpZXcgc3AsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICBQcmludFRvKDo6
c3RkOjpzdHJpbmcoc3ApLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19BQlNMCisjZW5k
aWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCi0jaWYgR1RFU1RfTEFOR19D
WFgxMQogaW5saW5lIHZvaWQgUHJpbnRUbyhzdGQ6Om51bGxwdHJfdCwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7ICpvcyA8PCAiKG51bGxwdHIpIjsgfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDEx
CiAKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERfVFVQTEVfCi0vLyBI
ZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEgdHVwbGUuICBUIG11c3QgYmUgaW5zdGFudGlh
dGVkIHdpdGgKLS8vIGEgdHVwbGUgdHlwZS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBQ
cmludFR1cGxlVG8oY29uc3QgVCYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwotCi0jaWYgR1RFU1Rf
SEFTX1RSMV9UVVBMRQotLy8gT3ZlcmxvYWQgZm9yIDo6c3RkOjp0cjE6OnR1cGxlLiAgTmVlZGVk
IGZvciBwcmludGluZyBmdW5jdGlvbiBhcmd1bWVudHMsCi0vLyB3aGljaCBhcmUgcGFja2VkIGFz
IHR1cGxlcy4KLQotLy8gT3ZlcmxvYWRlZCBQcmludFRvKCkgZm9yIHR1cGxlcyBvZiB2YXJpb3Vz
IGFyaXRpZXMuICBXZSBzdXBwb3J0Ci0vLyB0dXBsZXMgb2YgdXAtdG8gMTAgZmllbGRzLiAgVGhl
IGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3b3JrcwotLy8gcmVnYXJkbGVzcyBvZiB3aGV0aGVy
IHRyMTo6dHVwbGUgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlCi0vLyBub24tc3RhbmRhcmQgdmFy
aWFkaWMgdGVtcGxhdGUgZmVhdHVyZSBvciBub3QuCi0KLWlubGluZSB2b2lkIFByaW50VG8oY29u
c3QgOjpzdGQ6OnRyMTo6dHVwbGU8PiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50
VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXZvaWQgUHJpbnRU
byhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMT4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewot
ICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyPgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMj4mIHQs
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLXZvaWQgUHJpbnRU
byhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzPiYgdCwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLXZvaWQgUHJpbnRUbyhj
b25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4mIHQsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwordm9pZCBQcmludFRvKHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8VD4gcmVmLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJp
bnRlcjxUJj46OlByaW50KHJlZi5nZXQoKSwgb3MpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgot
dm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4m
IHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0
LCBvcyk7CitpbmxpbmUgY29uc3Qgdm9pZCogVm9pZGlmeVBvaW50ZXIoY29uc3Qgdm9pZCogcCkg
eyByZXR1cm4gcDsgfQoraW5saW5lIGNvbnN0IHZvaWQqIFZvaWRpZnlQb2ludGVyKHZvbGF0aWxl
IGNvbnN0IHZvaWQqIHApIHsKKyAgcmV0dXJuIGNvbnN0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHApOwog
fQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2Pgotdm9pZCBQcmlu
dFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+JiB0LAot
ICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3Mp
OwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0cj4KK3ZvaWQgUHJpbnRTbWFydFBv
aW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGNoYXIpIHsKKyAgaWYgKHB0
ciA9PSBudWxscHRyKSB7CisgICAgKm9zIDw8ICIobnVsbHB0cikiOworICB9IGVsc2UgeworICAg
IC8vIFdlIGNhbid0IHByaW50IHRoZSB2YWx1ZS4gSnVzdCBwcmludCB0aGUgcG9pbnRlci4uCisg
ICAgKm9zIDw8ICIoIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQoKSkgPDwgIikiOworICB9
CiB9Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
UHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHIs
CisgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc192
b2lkPFQ+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIXN0ZDo6aXNfYXJyYXk8VD46OnZhbHVlPjo6dHlwZT4KK3ZvaWQgUHJpbnRTbWFydFBv
aW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MsIGludCkgeworICBpZiAocHRy
ID09IG51bGxwdHIpIHsKKyAgICAqb3MgPDwgIihudWxscHRyKSI7CisgIH0gZWxzZSB7CisgICAg
Km9zIDw8ICIocHRyID0gIiA8PCAoVm9pZGlmeVBvaW50ZXIpKHB0ci5nZXQoKSkgPDwgIiwgdmFs
dWUgPSAiOworICAgIFVuaXZlcnNhbFByaW50ZXI8VD46OlByaW50KCpwdHIsIG9zKTsKKyAgICAq
b3MgPDwgIikiOworICB9CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0
ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+JiB0LAotICAgICAg
ICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwordGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+Cit2b2lkIFByaW50VG8oY29uc3Qgc3RkOjp1
bmlxdWVfcHRyPFQsIEQ+JiBwdHIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgKFByaW50U21hcnRQ
b2ludGVyPFQ+KShwdHIsIG9zLCAwKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgICAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLXZv
aWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5PiYgdCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
UHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordm9pZCBQcmludFRv
KGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxUPiYgcHRyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIChQ
cmludFNtYXJ0UG9pbnRlcjxUPikocHRyLCBvcywgMCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMD4KLXZvaWQgUHJpbnRUbygKLSAgICBjb25zdCA6OnN0ZDo6dHIx
Ojp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+JiB0LAotICAg
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOworLy8gSGVscGVy
IGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLiAgVCBtdXN0IGJlIGluc3RhbnRpYXRlZCB3
aXRoCisvLyBhIHR1cGxlIHR5cGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgUHJpbnRU
dXBsZVRvKGNvbnN0IFQmLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgMD4sCisgICAg
ICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSopIHt9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
LCBzaXplX3QgST4KK3ZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmIHQsIHN0ZDo6aW50ZWdyYWxf
Y29uc3RhbnQ8c2l6ZV90LCBJPiwKKyAgICAgICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBv
cykgeworICBQcmludFR1cGxlVG8odCwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIEkg
LSAxPigpLCBvcyk7CisgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQorICBp
ZiAoSSA+IDEpIHsKKyAgICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BPUF8oKQorICAg
ICpvcyA8PCAiLCAiOworICB9CisgIFVuaXZlcnNhbFByaW50ZXI8dHlwZW5hbWUgc3RkOjp0dXBs
ZV9lbGVtZW50PEkgLSAxLCBUPjo6dHlwZT46OlByaW50KAorICAgICAgc3RkOjpnZXQ8SSAtIDE+
KHQpLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKIAotI2lmIEdURVNU
X0hBU19TVERfVFVQTEVfCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+CiB2b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7CisgICpvcyA8PCAiKCI7CisgIFByaW50VHVwbGVUbyh0
LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc2l6ZW9mLi4uKFR5cGVzKT4oKSwgb3Mp
OworICAqb3MgPDwgIikiOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1RVUExFXwogCiAv
LyBPdmVybG9hZCBmb3Igc3RkOjpwYWlyLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMj4KQEAgLTc0NCw2ICs2NzIsMTggQEAgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjpwYWly
PFQxLCBUMj4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgKm9zIDw8ICcpJzsKIH0K
IAorI2lmIEdURVNUX0hBU19SVFRJCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0
eXBlX2luZm8mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgaW50ZXJuYWw6OlByaW50
VG88OjpzdGQ6OnR5cGVfaW5mbz4odmFsdWUsIG9zKTsKKyAgKm9zIDw8ICIgKFwiIiA8PCB2YWx1
ZS5uYW1lKCkgPDwgIlwiKSI7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6
OnR5cGVfaW5kZXgmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgaW50ZXJuYWw6OlBy
aW50VG88OjpzdGQ6OnR5cGVfaW5kZXg+KHZhbHVlLCBvcyk7CisgICpvcyA8PCAiIChcIiIgPDwg
dmFsdWUubmFtZSgpIDw8ICJcIikiOworfQorI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorCiAv
LyBJbXBsZW1lbnRzIHByaW50aW5nIGEgbm9uLXJlZmVyZW5jZSB0eXBlIFQgYnkgbGV0dGluZyB0
aGUgY29tcGlsZXIKIC8vIHBpY2sgdGhlIHJpZ2h0IG92ZXJsb2FkIG9mIFByaW50VG8oKSBmb3Ig
VC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtNzcxLDE0ICs3MTEsNDYgQEAgY2xhc3MgVW5p
dmVyc2FsUHJpbnRlciB7CiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQogfTsK
IAotI2lmIEdURVNUX0hBU19BQlNMCisvLyBSZW1vdmUgYW55IGNvbnN0LXF1YWxpZmllcnMgYmVm
b3JlIHBhc3NpbmcgYSB0eXBlIHRvIFVuaXZlcnNhbFByaW50ZXIuCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KK2NsYXNzIFVuaXZlcnNhbFByaW50ZXI8Y29uc3QgVD4gOiBwdWJsaWMgVW5pdmVyc2Fs
UHJpbnRlcjxUPiB7fTsKIAotLy8gUHJpbnRlciBmb3IgYWJzbDo6b3B0aW9uYWwKKyNpZiBHVEVT
VF9JTlRFUk5BTF9IQVNfQU5ZCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6YW55IC8gYWJzbDo6YW55
CisKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPEFueT4geworIHB1YmxpYzoK
KyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgQW55JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7CisgICAgaWYgKHZhbHVlLmhhc192YWx1ZSgpKSB7CisgICAgICAqb3MgPDwgInZhbHVlIG9m
IHR5cGUgIiA8PCBHZXRUeXBlTmFtZSh2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICpvcyA8
PCAibm8gdmFsdWUiOworICAgIH0KKyAgfQorCisgcHJpdmF0ZToKKyAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEdldFR5cGVOYW1lKGNvbnN0IEFueSYgdmFsdWUpIHsKKyNpZiBHVEVTVF9IQVNfUlRUSQor
ICAgIHJldHVybiBpbnRlcm5hbDo6R2V0VHlwZU5hbWUodmFsdWUudHlwZSgpKTsKKyNlbHNlCisg
ICAgc3RhdGljX2Nhc3Q8dm9pZD4odmFsdWUpOyAgLy8gcG9zc2libHkgdW51c2VkCisgICAgcmV0
dXJuICI8dW5rbm93bl90eXBlPiI7CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCisgIH0KK307
CisKKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorCisjaWYgR1RFU1RfSU5URVJO
QUxfSEFTX09QVElPTkFMCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6b3B0aW9uYWwgLyBhYnNsOjpv
cHRpb25hbAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8
OjphYnNsOjpvcHRpb25hbDxUPj4geworY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxPcHRpb25hbDxU
Pj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgOjphYnNsOjpvcHRpb25h
bDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMgdm9pZCBQcmludChj
b25zdCBPcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICAgICpvcyA8
PCAnKCc7CiAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgKm9zIDw8ICJudWxsb3B0IjsKQEAgLTc4
OSwxNCArNzYxLDIyIEBAIGNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjpvcHRpb25hbDxU
Pj4gewogICB9CiB9OwogCi0vLyBQcmludGVyIGZvciBhYnNsOjp2YXJpYW50CisjZW5kaWYgIC8v
IEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAorCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1ZB
UklBTlQKKworLy8gUHJpbnRlciBmb3Igc3RkOjp2YXJpYW50IC8gYWJzbDo6dmFyaWFudAogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjp2
YXJpYW50PFQuLi4+PiB7CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFZhcmlhbnQ8VC4uLj4+IHsK
ICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IDo6YWJzbDo6dmFyaWFudDxULi4u
PiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBzdGF0aWMgdm9pZCBQcmludChjb25z
dCBWYXJpYW50PFQuLi4+JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAgICAgKm9zIDw8
ICcoJzsKLSAgICBhYnNsOjp2aXNpdChWaXNpdG9ye29zfSwgdmFsdWUpOworI2lmIEdURVNUX0hB
U19BQlNMCisgICAgYWJzbDo6dmlzaXQoVmlzaXRvcntvcywgdmFsdWUuaW5kZXgoKX0sIHZhbHVl
KTsKKyNlbHNlCisgICAgc3RkOjp2aXNpdChWaXNpdG9ye29zLCB2YWx1ZS5pbmRleCgpfSwgdmFs
dWUpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAogICAgICpvcyA8PCAnKSc7CiAgIH0KIApA
QCAtODA0LDE0ICs3ODQsMTYgQEAgY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjw6OmFic2w6OnZhcmlh
bnQ8VC4uLj4+IHsKICAgc3RydWN0IFZpc2l0b3IgewogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBV
PgogICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCBVJiB1KSBjb25zdCB7Ci0gICAgICAqb3MgPDwg
IiciIDw8IEdldFR5cGVOYW1lPFU+KCkgPDwgIicgd2l0aCB2YWx1ZSAiOworICAgICAgKm9zIDw8
ICInIiA8PCBHZXRUeXBlTmFtZTxVPigpIDw8ICIoaW5kZXggPSAiIDw8IGluZGV4CisgICAgICAg
ICAgPDwgIiknIHdpdGggdmFsdWUgIjsKICAgICAgIFVuaXZlcnNhbFByaW50KHUsIG9zKTsKICAg
ICB9CiAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zOworICAgIHN0ZDo6c2l6ZV90IGluZGV4OwogICB9
OwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2VuZGlmICAvLyBHVEVTVF9JTlRF
Uk5BTF9IQVNfVkFSSUFOVAogCiAvLyBVbml2ZXJzYWxQcmludEFycmF5KGJlZ2luLCBsZW4sIG9z
KSBwcmludHMgYW4gYXJyYXkgb2YgJ2xlbicKIC8vIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRy
ZXNzICdiZWdpbicuCkBAIC04MjYsNyArODA4LDYgQEAgdm9pZCBVbml2ZXJzYWxQcmludEFycmF5
KGNvbnN0IFQqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgICAv
LyBJZiB0aGUgYXJyYXkgaGFzIG1vcmUgdGhhbiBrVGhyZXNob2xkIGVsZW1lbnRzLCB3ZSdsbCBo
YXZlIHRvCiAgICAgLy8gb21pdCBzb21lIGRldGFpbHMgYnkgcHJpbnRpbmcgb25seSB0aGUgZmly
c3QgYW5kIHRoZSBsYXN0CiAgICAgLy8ga0NodW5rU2l6ZSBlbGVtZW50cy4KLSAgICAvLyBGSVhN
RTogbGV0IHRoZSB1c2VyIGNvbnRyb2wgdGhlIHRocmVzaG9sZCB1c2luZyBhIGZsYWcuCiAgICAg
aWYgKGxlbiA8PSBrVGhyZXNob2xkKSB7CiAgICAgICBQcmludFJhd0FycmF5VG8oYmVnaW4sIGxl
biwgb3MpOwogICAgIH0gZWxzZSB7CkBAIC04NDEsNiArODIyLDIwIEBAIHZvaWQgVW5pdmVyc2Fs
UHJpbnRBcnJheShjb25zdCBUKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7CiBHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheSgKICAgICBjb25zdCBjaGFy
KiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKIAorI2lmZGVmIF9fY3Bw
X2NoYXI4X3QKKy8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0KSBjaGFyOF90IGFycmF5
IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNo
YXI4X3QqIGJlZ2luLCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKKyNlbmRpZgorCisvLyBUaGlzIG92ZXJsb2FkIHBy
aW50cyBhIChjb25zdCkgY2hhcjE2X3QgYXJyYXkgY29tcGFjdGx5LgorR1RFU1RfQVBJXyB2b2lk
IFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjE2X3QqIGJlZ2luLCBzaXplX3QgbGVuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
KworLy8gVGhpcyBvdmVybG9hZCBwcmludHMgYSAoY29uc3QpIGNoYXIzMl90IGFycmF5IGNvbXBh
Y3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIzMl90
KiBiZWdpbiwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDo6c3RkOjpvc3RyZWFtKiBvcyk7CisKIC8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0
KSB3Y2hhcl90IGFycmF5IGNvbXBhY3RseS4KIEdURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQcmlu
dEFycmF5KAogICAgIGNvbnN0IHdjaGFyX3QqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0
cmVhbSogb3MpOwpAQCAtOTA1LDcgKzkwMCw3IEBAIHRlbXBsYXRlIDw+CiBjbGFzcyBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICBwdWJsaWM6CiAgIHN0YXRpYyB2b2lkIFBy
aW50KGNvbnN0IGNoYXIqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgaWYgKHN0ciA9
PSBOVUxMKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CiAgICAgICAqb3MgPDwgIk5VTEwi
OwogICAgIH0gZWxzZSB7CiAgICAgICBVbml2ZXJzYWxQcmludChzdGQ6OnN0cmluZyhzdHIpLCBv
cyk7CkBAIC05MTMsMTkgKzkwOCw2MiBAQCBjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29u
c3QgY2hhcio+IHsKICAgfQogfTsKIHRlbXBsYXRlIDw+Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVBy
aW50ZXI8Y2hhcio+IHsKK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyKj4gOiBwdWJs
aWMgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIqPiB7Cit9OworCisjaWZkZWYgX19j
cHBfY2hhcjhfdAordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25z
dCBjaGFyOF90Kj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJpbnQoY2hhciogc3RyLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hh
cio+OjpQcmludChzdHIsIG9zKTsKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgY2hhcjhfdCog
c3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKKyAg
ICAgICpvcyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFByaW50KDo6
c3RkOjp1OHN0cmluZyhzdHIpLCBvcyk7CisgICAgfQorICB9Cit9OwordGVtcGxhdGUgPD4KK2Ns
YXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyOF90Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjhfdCo+IHt9OworI2VuZGlmCisKK3RlbXBsYXRlIDw+
CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjE2X3QqPiB7CisgcHVibGlj
OgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBjaGFyMTZfdCogc3RyLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKKyAgICAgICpvcyA8PCAiTlVMTCI7
CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp1MTZzdHJpbmcoc3Ry
KSwgb3MpOworICAgIH0KKyAgfQorfTsKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxUZXJz
ZVByaW50ZXI8Y2hhcjE2X3QqPgorICAgIDogcHVibGljIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxj
b25zdCBjaGFyMTZfdCo+IHt9OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQ
cmludGVyPGNvbnN0IGNoYXIzMl90Kj4geworIHB1YmxpYzoKKyAgc3RhdGljIHZvaWQgUHJpbnQo
Y29uc3QgY2hhcjMyX3QqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHN0ciA9
PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICBV
bml2ZXJzYWxQcmludCg6OnN0ZDo6dTMyc3RyaW5nKHN0ciksIG9zKTsKKyAgICB9CiAgIH0KIH07
Cit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNoYXIzMl90Kj4KKyAg
ICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjMyX3QqPiB7fTsKIAog
I2lmIEdURVNUX0hBU19TVERfV1NUUklORwogdGVtcGxhdGUgPD4KIGNsYXNzIFVuaXZlcnNhbFRl
cnNlUHJpbnRlcjxjb25zdCB3Y2hhcl90Kj4gewogIHB1YmxpYzoKICAgc3RhdGljIHZvaWQgUHJp
bnQoY29uc3Qgd2NoYXJfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBpZiAoc3Ry
ID09IE5VTEwpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIpIHsKICAgICAgICpvcyA8PCAiTlVM
TCI7CiAgICAgfSBlbHNlIHsKICAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp3c3RyaW5nKHN0
ciksIG9zKTsKQEAgLTk2MSwxMDkgKzk5OSwyMCBAQCB2b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0
IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIAogdHlwZWRlZiA6OnN0ZDo6dmVjdG9y
PCA6OnN0ZDo6c3RyaW5nPiBTdHJpbmdzOwogCi0vLyBUdXBsZVBvbGljeTxUdXBsZVQ+IG11c3Qg
cHJvdmlkZToKLS8vIC0gdHVwbGVfc2l6ZQotLy8gICAgIHNpemUgb2YgdHVwbGUgVHVwbGVULgot
Ly8gLSBnZXQ8c2l6ZV90IEk+KGNvbnN0IFR1cGxlVCYgdCkKLS8vICAgICBzdGF0aWMgZnVuY3Rp
b24gZXh0cmFjdGluZyBlbGVtZW50IEkgb2YgdHVwbGUgVHVwbGVULgotLy8gLSB0dXBsZV9lbGVt
ZW50PHNpemVfdCBJPjo6dHlwZQotLy8gICAgIHR5cGUgb2YgZWxlbWVudCBJIG9mIHR1cGxlIFR1
cGxlVC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZVQ+Ci1zdHJ1Y3QgVHVwbGVQb2xpY3k7Ci0K
LSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotc3Ry
dWN0IFR1cGxlUG9saWN5IHsKLSAgdHlwZWRlZiBUdXBsZVQgVHVwbGU7Ci0gIHN0YXRpYyBjb25z
dCBzaXplX3QgdHVwbGVfc2l6ZSA9IDo6c3RkOjp0cjE6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1
ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpz
dGQ6OnRyMTo6dHVwbGVfZWxlbWVudDxzdGF0aWNfY2FzdDxpbnQ+KEkpLCBUdXBsZT4gewotICB9
OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIHR5cGVuYW1lIEFkZFJlZmVyZW5j
ZTxjb25zdCB0eXBlbmFtZSA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVtZW50PAotICAgICAgc3RhdGlj
X2Nhc3Q8aW50PihJKSwgVHVwbGU+Ojp0eXBlPjo6dHlwZQotICBnZXQoY29uc3QgVHVwbGUmIHR1
cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjp0cjE6OmdldDxJPih0dXBsZSk7Ci0gIH0KLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotY29uc3Qgc2l6ZV90IFR1cGxlUG9saWN5PFR1cGxl
VD46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdU
RVNUX0hBU19TVERfVFVQTEVfCi10ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+Ci1zdHJ1Y3Qg
VHVwbGVQb2xpY3k8IDo6c3RkOjp0dXBsZTxUeXBlcy4uLj4gPiB7Ci0gIHR5cGVkZWYgOjpzdGQ6
OnR1cGxlPFR5cGVzLi4uPiBUdXBsZTsKLSAgc3RhdGljIGNvbnN0IHNpemVfdCB0dXBsZV9zaXpl
ID0gOjpzdGQ6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90
IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpzdGQ6OnR1cGxlX2VsZW1lbnQ8SSwgVHVw
bGU+IHt9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3RhdGljIGNvbnN0IHR5cGVuYW1l
IDo6c3RkOjp0dXBsZV9lbGVtZW50PEksIFR1cGxlPjo6dHlwZSYgZ2V0KAotICAgICAgY29uc3Qg
VHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjpnZXQ8ST4odHVwbGUpOwotICB9Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgotY29uc3Qgc2l6ZV90IFR1cGxlUG9saWN5
PCA6OnN0ZDo6dHVwbGU8VHlwZXMuLi4+ID46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNU
X0hBU19TVERfVFVQTEVfCi0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19T
VERfVFVQTEVfCi0vLyBUaGlzIGhlbHBlciB0ZW1wbGF0ZSBhbGxvd3MgUHJpbnRUbygpIGZvciB0
dXBsZXMgYW5kCi0vLyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoKSB0
byBiZSBkZWZpbmVkIGJ5Ci0vLyBpbmR1Y3Rpb24gb24gdGhlIG51bWJlciBvZiB0dXBsZSBmaWVs
ZHMuICBUaGUgaWRlYSBpcyB0aGF0Ci0vLyBUdXBsZVByZWZpeFByaW50ZXI8Tj46OlByaW50UHJl
Zml4VG8odCwgb3MpIHByaW50cyB0aGUgZmlyc3QgTgotLy8gZmllbGRzIGluIHR1cGxlIHQsIGFu
ZCBjYW4gYmUgZGVmaW5lZCBpbiB0ZXJtcyBvZgotLy8gVHVwbGVQcmVmaXhQcmludGVyPE4gLSAx
Pi4KLS8vCi0vLyBUaGUgaW5kdWN0aXZlIGNhc2UuCi10ZW1wbGF0ZSA8c2l6ZV90IE4+Ci1zdHJ1
Y3QgVHVwbGVQcmVmaXhQcmludGVyIHsKLSAgLy8gUHJpbnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBv
ZiBhIHR1cGxlLgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFBy
aW50UHJlZml4VG8oY29uc3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIFR1
cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlByaW50UHJlZml4VG8odCwgb3MpOwotICAgIEdURVNU
X0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQotICAgIGlmIChOID4gMSkgewotICAgIEdU
RVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpCi0gICAgICAqb3MgPDwgIiwgIjsKLSAg
ICB9Ci0gICAgVW5pdmVyc2FsUHJpbnRlcjwKLSAgICAgICAgdHlwZW5hbWUgVHVwbGVQb2xpY3k8
VHVwbGU+Ojp0ZW1wbGF0ZSB0dXBsZV9lbGVtZW50PE4gLSAxPjo6dHlwZT4KLSAgICAgICAgOjpQ
cmludChUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBsYXRlIGdldDxOIC0gMT4odCksIG9zKTsKLSAg
fQotCiAgIC8vIFRlcnNlbHkgcHJpbnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBvZiBhIHR1cGxlIHRv
IGEgc3RyaW5nIHZlY3RvciwKICAgLy8gb25lIGVsZW1lbnQgZm9yIGVhY2ggZmllbGQuCi0gIHRl
bXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgVGVyc2VQcmludFByZWZpeFRv
U3RyaW5ncyhjb25zdCBUdXBsZSYgdCwgU3RyaW5ncyogc3RyaW5ncykgewotICAgIFR1cGxlUHJl
Zml4UHJpbnRlcjxOIC0gMT46OlRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3ModCwgc3RyaW5ncyk7
Ci0gICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgICBVbml2ZXJzYWxUZXJzZVByaW50KFR1
cGxlUG9saWN5PFR1cGxlPjo6dGVtcGxhdGUgZ2V0PE4gLSAxPih0KSwgJnNzKTsKLSAgICBzdHJp
bmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwotICB9Ci19OwotCi0vLyBCYXNlIGNhc2UuCi10ZW1w
bGF0ZSA8Pgotc3RydWN0IFR1cGxlUHJlZml4UHJpbnRlcjwwPiB7Ci0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgUHJpbnRQcmVmaXhUbyhjb25zdCBUdXBsZSYsIDo6
c3RkOjpvc3RyZWFtKikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRp
YyB2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29uc3QgVHVwbGUmLCBTdHJpbmdzKikg
e30KLX07Ci0KLS8vIEhlbHBlciBmdW5jdGlvbiBmb3IgcHJpbnRpbmcgYSB0dXBsZS4KLS8vIFR1
cGxlIG11c3QgYmUgZWl0aGVyIHN0ZDo6dHIxOjp0dXBsZSBvciBzdGQ6OnR1cGxlIHR5cGUuCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci12b2lkIFByaW50VHVwbGVUbyhjb25zdCBUdXBsZSYg
dCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8PCAiKCI7Ci0gIFR1cGxlUHJlZml4UHJp
bnRlcjxUdXBsZVBvbGljeTxUdXBsZT46OnR1cGxlX3NpemU+OjpQcmludFByZWZpeFRvKHQsIG9z
KTsKLSAgKm9zIDw8ICIpIjsKK3ZvaWQgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyhjb25zdCBU
dXBsZSYsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCAwPiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdzKikge30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZSwg
c2l6ZV90IEk+Cit2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29uc3QgVHVwbGUmIHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxz
aXplX3QsIEk+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ3MqIHN0cmlu
Z3MpIHsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyh0LCBzdGQ6OmludGVncmFsX2NvbnN0
YW50PHNpemVfdCwgSSAtIDE+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5n
cyk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgIFVuaXZlcnNhbFRlcnNlUHJpbnQoc3Rk
OjpnZXQ8SSAtIDE+KHQpLCAmc3MpOworICBzdHJpbmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwog
fQogCiAvLyBQcmludHMgdGhlIGZpZWxkcyBvZiBhIHR1cGxlIHRlcnNlbHkgdG8gYSBzdHJpbmcg
dmVjdG9yLCBvbmUKQEAgLTEwNzIsMjQgKzEwMjEsMTQgQEAgdm9pZCBQcmludFR1cGxlVG8oY29u
c3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogdGVtcGxhdGUgPHR5cGVuYW1lIFR1
cGxlPgogU3RyaW5ncyBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoY29u
c3QgVHVwbGUmIHZhbHVlKSB7CiAgIFN0cmluZ3MgcmVzdWx0OwotICBUdXBsZVByZWZpeFByaW50
ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0dXBsZV9zaXplPjo6Ci0gICAgICBUZXJzZVByaW50UHJl
Zml4VG9TdHJpbmdzKHZhbHVlLCAmcmVzdWx0KTsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5n
cygKKyAgICAgIHZhbHVlLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc3RkOjp0dXBs
ZV9zaXplPFR1cGxlPjo6dmFsdWU+KCksCisgICAgICAmcmVzdWx0KTsKICAgcmV0dXJuIHJlc3Vs
dDsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RV
UExFXwogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIAotI2lmIEdURVNUX0hBU19BQlNMCi1u
YW1lc3BhY2UgaW50ZXJuYWwyIHsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBUeXBlV2l0
aG91dEZvcm1hdHRlcjxULCBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXc+OjpQcmludFZhbHVlKAot
ICAgIGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgaW50ZXJuYWw6OlBy
aW50VG8oYWJzbDo6c3RyaW5nX3ZpZXcodmFsdWUpLCBvcyk7Ci19Ci19ICAvLyBuYW1lc3BhY2Ug
aW50ZXJuYWwyCi0jZW5kaWYKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiA6OnN0ZDo6c3RyaW5n
IFByaW50VG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpIHsKICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBz
czsKQEAgLTExMDQsNCArMTA0Myw0IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogLy8gZGVjbGFy
YXRpb25zIGZyb20gdGhpcyBmaWxlLgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9n
dGVzdC1wcmludGVycy5oIgogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UFJJTlRFUlNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BS
SU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LXNwaS5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9n
dGVzdC1zcGkuaAppbmRleCAxZTg5ODM5MzhlYTI3OTJjNTI2OTBlYWQyOWIwMGFiNThjZGFhZTlj
Li5lYWNlZjQ0NjY5ZTgxMDRhM2QyOGRhYTA1NGVkYWRjZGViMjNjNTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmgKQEAgLTMzLDgg
KzMzLDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDQgRE8gTk9UIERFTEVURQogCi0jaWZuZGVm
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfU1BJX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9TUElfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1NQSV9IXwog
CiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIApAQCAtNzIsMTQgKzcyLDE1IEBAIGNsYXNzIEdU
RVNUX0FQSV8gU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVGVzdFBhcnRSZXN1bHRBcnJheSogcmVzdWx0KTsKIAogICAv
LyBUaGUgZCd0b3IgcmVzdG9yZXMgdGhlIHByZXZpb3VzIHRlc3QgcGFydCByZXN1bHQgcmVwb3J0
ZXIuCi0gIHZpcnR1YWwgflNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyKCk7CisgIH5T
Y29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigpIG92ZXJyaWRlOwogCiAgIC8vIEFwcGVu
ZHMgdGhlIFRlc3RQYXJ0UmVzdWx0IG9iamVjdCB0byB0aGUgVGVzdFBhcnRSZXN1bHRBcnJheQog
ICAvLyByZWNlaXZlZCBpbiB0aGUgY29uc3RydWN0b3IuCiAgIC8vCiAgIC8vIFRoaXMgbWV0aG9k
IGlzIGZyb20gdGhlIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UKICAgLy8gaW50ZXJm
YWNlLgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisKICBwcml2YXRlOgogICB2b2lkIEluaXQoKTsK
IApAQCAtMjM0LDQgKzIzNSw0IEBAIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAg
Ly8gIDQyNTEKICAgICB9XAogICB9IHdoaWxlICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNG
YWxzZSgpKQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCisj
ZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9TUElfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFy
dC5oCmluZGV4IDFjN2I4OWUwODc5NmQ5NzMwZjlmOGVlYWU0MDYyMjcxNzdkYmE1MTkuLjIwM2Zk
Zjk4YzY5ZmNkZjk2NDc0MzdjZGM4ZTZjYzcwYWUxOGU2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaApAQCAt
MjksOCArMjksOCBAQAogLy8KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwotI2RlZmluZSBH
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXworI2lmbmRlZiBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KIAogI2luY2x1ZGUgPGlvc2Z3ZD4KICNpbmNs
dWRlIDx2ZWN0b3I+CkBAIC01MywyMiArNTMsMjAgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFy
dFJlc3VsdCB7CiAgIGVudW0gVHlwZSB7CiAgICAga1N1Y2Nlc3MsICAgICAgICAgIC8vIFN1Y2Nl
ZWRlZC4KICAgICBrTm9uRmF0YWxGYWlsdXJlLCAgLy8gRmFpbGVkIGJ1dCB0aGUgdGVzdCBjYW4g
Y29udGludWUuCi0gICAga0ZhdGFsRmFpbHVyZSAgICAgIC8vIEZhaWxlZCBhbmQgdGhlIHRlc3Qg
c2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga0ZhdGFsRmFpbHVyZSwgICAgIC8vIEZhaWxlZCBh
bmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga1NraXAgICAgICAgICAgICAg
IC8vIFNraXBwZWQuCiAgIH07CiAKICAgLy8gQyd0b3IuICBUZXN0UGFydFJlc3VsdCBkb2VzIE5P
VCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAgLy8gQWx3YXlzIHVzZSB0aGlzIGNvbnN0
cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0ZSBhCiAgIC8vIFRlc3RQYXJ0UmVzdWx0
IG9iamVjdC4KLSAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsCi0gICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLAotICAgICAgICAgICAgICAgICBpbnQgYV9saW5lX251
bWJlciwKKyAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5cGUsIGNvbnN0IGNoYXIqIGFfZmlsZV9u
YW1lLCBpbnQgYV9saW5lX251bWJlciwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYV9t
ZXNzYWdlKQogICAgICAgOiB0eXBlXyhhX3R5cGUpLAotICAgICAgICBmaWxlX25hbWVfKGFfZmls
ZV9uYW1lID09IE5VTEwgPyAiIiA6IGFfZmlsZV9uYW1lKSwKKyAgICAgICAgZmlsZV9uYW1lXyhh
X2ZpbGVfbmFtZSA9PSBudWxscHRyID8gIiIgOiBhX2ZpbGVfbmFtZSksCiAgICAgICAgIGxpbmVf
bnVtYmVyXyhhX2xpbmVfbnVtYmVyKSwKICAgICAgICAgc3VtbWFyeV8oRXh0cmFjdFN1bW1hcnko
YV9tZXNzYWdlKSksCi0gICAgICAgIG1lc3NhZ2VfKGFfbWVzc2FnZSkgewotICB9CisgICAgICAg
IG1lc3NhZ2VfKGFfbWVzc2FnZSkge30KIAogICAvLyBHZXRzIHRoZSBvdXRjb21lIG9mIHRoZSB0
ZXN0IHBhcnQuCiAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfOyB9CkBAIC03Niw3
ICs3NCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFBhcnRSZXN1bHQgewogICAvLyBHZXRzIHRo
ZSBuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2Us
IG9yCiAgIC8vIE5VTEwgaWYgaXQncyB1bmtub3duLgogICBjb25zdCBjaGFyKiBmaWxlX25hbWUo
KSBjb25zdCB7Ci0gICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/IE5VTEwgOiBmaWxlX25h
bWVfLmNfc3RyKCk7CisgICAgcmV0dXJuIGZpbGVfbmFtZV8uZW1wdHkoKSA/IG51bGxwdHIgOiBm
aWxlX25hbWVfLmNfc3RyKCk7CiAgIH0KIAogICAvLyBHZXRzIHRoZSBsaW5lIGluIHRoZSBzb3Vy
Y2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2UsCkBAIC04OSwxOCArODcsMjEg
QEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFydFJlc3VsdCB7CiAgIC8vIEdldHMgdGhlIG1lc3Nh
Z2UgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXN0IHBhcnQuCiAgIGNvbnN0IGNoYXIqIG1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtZXNzYWdlXy5jX3N0cigpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgdGVzdCBwYXJ0IHBhc3NlZC4KLSAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJldHVy
biB0eXBlXyA9PSBrU3VjY2VzczsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3QgcGFydCB3YXMgc2tpcHBlZC4KKyAgYm9vbCBza2lwcGVkKCkgY29uc3QgeyByZXR1
cm4gdHlwZV8gPT0ga1NraXA7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBh
cnQgZmFpbGVkLgotICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfICE9IGtTdWNj
ZXNzOyB9CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IHBh
c3NlZC4KKyAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBrU3VjY2Vzczsg
fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBub24tZmF0YWxseSBmYWls
ZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1m
YXRhbGx5IGZhaWxlZC4KICAgYm9vbCBub25mYXRhbGx5X2ZhaWxlZCgpIGNvbnN0IHsgcmV0dXJu
IHR5cGVfID09IGtOb25GYXRhbEZhaWx1cmU7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSB0ZXN0IHBhcnQgZmF0YWxseSBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVkLgogICBib29sIGZhdGFsbHlfZmFpbGVk
KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga0ZhdGFsRmFpbHVyZTsgfQogCisgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IGZhaWxlZC4KKyAgYm9vbCBmYWls
ZWQoKSBjb25zdCB7IHJldHVybiBmYXRhbGx5X2ZhaWxlZCgpIHx8IG5vbmZhdGFsbHlfZmFpbGVk
KCk7IH0KKwogIHByaXZhdGU6CiAgIFR5cGUgdHlwZV87CiAKQEAgLTE2NCw4ICsxNjUsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcgogICAgIDogcHVibGljIFRl
c3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UgewogIHB1YmxpYzoKICAgSGFzTmV3RmF0YWxG
YWlsdXJlSGVscGVyKCk7Ci0gIHZpcnR1YWwgfkhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlcigpOwot
ICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHJlc3VsdCk7CisgIH5IYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIoKSBvdmVycmlkZTsKKyAgdm9p
ZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVy
cmlkZTsKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmUoKSBjb25zdCB7IHJldHVybiBoYXNf
bmV3X2ZhdGFsX2ZhaWx1cmVfOyB9CiAgcHJpdmF0ZToKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2Zh
aWx1cmVfOwpAQCAtMTgwLDQgKzE4MSw0IEBAIGNsYXNzIEdURVNUX0FQSV8gSGFzTmV3RmF0YWxG
YWlsdXJlSGVscGVyCiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQy
NTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXwor
I2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXR5
cGVkLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
dHlwZWQtdGVzdC5oCmluZGV4IDc0YmNlNDZiZGM1MGY0YzhjZGUyYzZkNzI2NDkxMWZmNGQ5OWNm
MTkuLjlmZGM2YmUxMGRjMjZiODAzM2UxYWE1YTBmNWFmMDVmODI1NDc5MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQt
dGVzdC5oCkBAIC0yNywxMSArMjcsMTAgQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RF
U1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfR1RFU1RfVFlQRURfVEVTVF9IXwogCiAvLyBUaGlzIGhlYWRlciBpbXBsZW1lbnRzIHR5cGVk
IHRlc3RzIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKQEAgLTUyLDIyICs1MSwyMiBA
QCBjbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBUIHZhbHVlXzsKIH07
CiAKLS8vIE5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2YgdHlwZXMgd2l0aCB0aGUgdGVzdCBjYXNl
LCB3aGljaCB3aWxsIGJlCisvLyBOZXh0LCBhc3NvY2lhdGUgYSBsaXN0IG9mIHR5cGVzIHdpdGgg
dGhlIHRlc3Qgc3VpdGUsIHdoaWNoIHdpbGwgYmUKIC8vIHJlcGVhdGVkIGZvciBlYWNoIHR5cGUg
aW4gdGhlIGxpc3QuICBUaGUgdHlwZWRlZiBpcyBuZWNlc3NhcnkgZm9yCiAvLyB0aGUgbWFjcm8g
dG8gcGFyc2UgY29ycmVjdGx5LgogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxjaGFyLCBpbnQsIHVu
c2lnbmVkIGludD4gTXlUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzKTsK
K1RZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcyk7CiAKIC8vIElmIHRoZSB0eXBlIGxp
c3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZSB0aGF0IHR5cGUKIC8vIGRp
cmVjdGx5IHdpdGhvdXQgVHlwZXM8Li4uPjoKLS8vICAgVFlQRURfVEVTVF9DQVNFKEZvb1Rlc3Qs
IGludCk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgaW50KTsKIAogLy8gVGhlbiwg
dXNlIFRZUEVEX1RFU1QoKSBpbnN0ZWFkIG9mIFRFU1RfRigpIHRvIGRlZmluZSBhcyBtYW55IHR5
cGVkCi0vLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IGNhc2UgYXMgeW91IHdhbnQuCisvLyB0ZXN0cyBm
b3IgdGhpcyB0ZXN0IHN1aXRlIGFzIHlvdSB3YW50LgogVFlQRURfVEVTVChGb29UZXN0LCBEb2Vz
QmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byBUeXBlUGFyYW0gdG8gZ2V0IHRo
ZSB0eXBlIHBhcmFtZXRlci4KLSAgLy8gU2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xh
c3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcyB1c2UgdG8KLSAgLy8gdmlzaXQgdGhlIG1lbWJlcnMg
b2YgRm9vVGVzdCB2aWEgJ3RoaXMnLgorICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byB0aGUg
c3BlY2lhbCBuYW1lIFR5cGVQYXJhbSB0byBnZXQgdGhlIHR5cGUKKyAgLy8gcGFyYW1ldGVyLiAg
U2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xhc3MgdGVtcGxhdGUsIEMrKyByZXF1aXJl
cworICAvLyB1cyB0byB2aXNpdCB0aGUgbWVtYmVycyBvZiBGb29UZXN0IHZpYSAndGhpcycuCiAg
IFR5cGVQYXJhbSBuID0gdGhpcy0+dmFsdWVfOwogCiAgIC8vIFRvIHZpc2l0IHN0YXRpYyBtZW1i
ZXJzIG9mIHRoZSBmaXh0dXJlLCBhZGQgdGhlIFRlc3RGaXh0dXJlOjoKQEAgLTgzLDcgKzgyLDcg
QEAgVFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkgewogCiBUWVBFRF9URVNUKEZvb1Rlc3Qs
IEhhc1Byb3BlcnR5QSkgeyAuLi4gfQogCi0vLyBUWVBFRF9URVNUX0NBU0UgdGFrZXMgYW4gb3B0
aW9uYWwgdGhpcmQgYXJndW1lbnQgd2hpY2ggYWxsb3dzIHRvIHNwZWNpZnkgYQorLy8gVFlQRURf
VEVTVF9TVUlURSB0YWtlcyBhbiBvcHRpb25hbCB0aGlyZCBhcmd1bWVudCB3aGljaCBhbGxvd3Mg
dG8gc3BlY2lmeSBhCiAvLyBjbGFzcyB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1
ZmZpeGVzIGJhc2VkIG9uIHRoZSB0eXBlLiBUaGlzIHNob3VsZAogLy8gYmUgYSBjbGFzcyB3aGlj
aCBoYXMgYSBzdGF0aWMgdGVtcGxhdGUgZnVuY3Rpb24gR2V0TmFtZShpbnQgaW5kZXgpIHJldHVy
bmluZwogLy8gYSBzdHJpbmcgZm9yIGVhY2ggdHlwZS4gVGhlIHByb3ZpZGVkIGludGVnZXIgaW5k
ZXggZXF1YWxzIHRoZSBpbmRleCBvZiB0aGUKQEAgLTk5LDcgKzk4LDcgQEAgVFlQRURfVEVTVChG
b29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIC8vICAgICAgIGlmIChzdGQ6OmlzX3NhbWU8
VCwgdW5zaWduZWQgaW50PigpKSByZXR1cm4gInVuc2lnbmVkSW50IjsKIC8vICAgICB9CiAvLyAg
IH07Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29UZXN0LCBNeVR5cGVzLCBNeVR5cGVOYW1lcyk7
CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBlTmFtZXMpOwog
CiAjZW5kaWYgIC8vIDAKIApAQCAtMTI2LDEzICsxMjUsMTMgQEAgY2xhc3MgRm9vVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLi4uCiB9OwogCi0vLyBOZXh0LCBkZWNsYXJlIHRoYXQg
eW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZQorLy8gTmV4dCwg
ZGVjbGFyZSB0aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1
aXRlCiAvLyAodGhlIF9QIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJu
Iiwgd2hpY2hldmVyIHlvdQogLy8gcHJlZmVyKToKLVRZUEVEX1RFU1RfQ0FTRV9QKEZvb1Rlc3Qp
OworVFlQRURfVEVTVF9TVUlURV9QKEZvb1Rlc3QpOwogCiAvLyBUaGVuLCB1c2UgVFlQRURfVEVT
VF9QKCkgdG8gZGVmaW5lIGFzIG1hbnkgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzCi0vLyBmb3Ig
dGhpcyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGFzIHlvdSB3YW50LgorLy8gZm9yIHRo
aXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgYXMgeW91IHdhbnQuCiBUWVBFRF9URVNU
X1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKICAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlw
ZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIuCiAgIFR5cGVQYXJhbSBuID0gMDsKQEAg
LTE0MywxMCArMTQyLDEwIEBAIFRZUEVEX1RFU1RfUChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsg
Li4uIH0KIAogLy8gTm93IHRoZSB0cmlja3kgcGFydDogeW91IG5lZWQgdG8gcmVnaXN0ZXIgYWxs
IHRlc3QgcGF0dGVybnMgYmVmb3JlCiAvLyB5b3UgY2FuIGluc3RhbnRpYXRlIHRoZW0uICBUaGUg
Zmlyc3QgYXJndW1lbnQgb2YgdGhlIG1hY3JvIGlzIHRoZQotLy8gdGVzdCBjYXNlIG5hbWU7IHRo
ZSByZXN0IGFyZSB0aGUgbmFtZXMgb2YgdGhlIHRlc3RzIGluIHRoaXMgdGVzdAorLy8gdGVzdCBz
dWl0ZSBuYW1lOyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cyBpbiB0aGlzIHRl
c3QKIC8vIGNhc2UuCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChGb29UZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRG9lc0JsYWgsIEhhc1Byb3BlcnR5QSk7CitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoRm9vVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
b2VzQmxhaCwgSGFzUHJvcGVydHlBKTsKIAogLy8gRmluYWxseSwgeW91IGFyZSBmcmVlIHRvIGlu
c3RhbnRpYXRlIHRoZSBwYXR0ZXJuIHdpdGggdGhlIHR5cGVzIHlvdQogLy8gd2FudC4gIElmIHlv
dSBwdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwgeW91IGNhbiAjaW5jbHVkZQpA
QCAtMTU0LDYxICsxNTMsNTggQEAgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwK
IC8vCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgaW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJu
LCB0aGUgZmlyc3QKIC8vIGFyZ3VtZW50IHRvIHRoZSBJTlNUQU5USUFURV8qIG1hY3JvIGlzIGEg
cHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZAotLy8gdG8gdGhlIGFjdHVhbCB0ZXN0IGNhc2UgbmFt
ZS4gIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvcgorLy8gdG8gdGhlIGFjdHVh
bCB0ZXN0IHN1aXRlIG5hbWUuICBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IK
IC8vIGRpZmZlcmVudCBpbnN0YW5jZXMuCiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPGNoYXIsIGlu
dCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1Ao
TXksIEZvb1Rlc3QsIE15VHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15
LCBGb29UZXN0LCBNeVR5cGVzKTsKIAogLy8gSWYgdGhlIHR5cGUgbGlzdCBjb250YWlucyBvbmx5
IG9uZSB0eXBlLCB5b3UgY2FuIHdyaXRlIHRoYXQgdHlwZQogLy8gZGlyZWN0bHkgd2l0aG91dCBU
eXBlczwuLi4+OgotLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVz
dCwgaW50KTsKKy8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBGb29UZXN0
LCBpbnQpOwogLy8KLS8vIFNpbWlsYXIgdG8gdGhlIG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVE
X1RFU1RfQ0FTRSBhYm92ZSwKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHRha2VzIGFuIG9w
dGlvbmFsIGZvdXJ0aCBhcmd1bWVudCB3aGljaCBhbGxvd3MgdG8KKy8vIFNpbWlsYXIgdG8gdGhl
IG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1RfU1VJVEUgYWJvdmUsCisvLyBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AgdGFrZXMgYW4gb3B0aW9uYWwgZm91cnRoIGFyZ3VtZW50IHdoaWNo
IGFsbG93cyB0bwogLy8gZ2VuZXJhdGUgY3VzdG9tIG5hbWVzLgotLy8gICBJTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBlTmFtZXMpOworLy8g
ICBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMsIE15
VHlwZU5hbWVzKTsKIAogI2VuZGlmICAvLyAwCiAKKyNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaCIKIAogLy8gSW1wbGVt
ZW50cyB0eXBlZCB0ZXN0cy4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIC8vIElOVEVS
TkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwogLy8gRXhw
YW5kcyB0byB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZiBmb3IgdGhlIHR5cGUgcGFyYW1ldGVycyBv
ZiB0aGUKLS8vIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVfUEFSQU1TXyhU
ZXN0Q2FzZU5hbWUpIGd0ZXN0X3R5cGVfcGFyYW1zXyMjVGVzdENhc2VOYW1lIyNfCisvLyBnaXZl
biB0ZXN0IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBFX1BBUkFNU18oVGVzdFN1aXRlTmFtZSkg
Z3Rlc3RfdHlwZV9wYXJhbXNfIyNUZXN0U3VpdGVOYW1lIyNfCiAKIC8vIEV4cGFuZHMgdG8gdGhl
IG5hbWUgb2YgdGhlIHR5cGVkZWYgZm9yIHRoZSBOYW1lR2VuZXJhdG9yLCByZXNwb25zaWJsZSBm
b3IKIC8vIGNyZWF0aW5nIHRoZSBzdWZmaXhlcyBvZiB0aGUgbmFtZS4KLSNkZWZpbmUgR1RFU1Rf
TkFNRV9HRU5FUkFUT1JfKFRlc3RDYXNlTmFtZSkgXAotICBndGVzdF90eXBlX3BhcmFtc18jI1Rl
c3RDYXNlTmFtZSMjX05hbWVHZW5lcmF0b3IKLQotLy8gVGhlICdUeXBlcycgdGVtcGxhdGUgYXJn
dW1lbnQgYmVsb3cgbXVzdCBoYXZlIHNwYWNlcyBhcm91bmQgaXQKLS8vIHNpbmNlIHNvbWUgY29t
cGlsZXJzIG1heSBjaG9rZSBvbiAnPj4nIHdoZW4gcGFzc2luZyBhIHRlbXBsYXRlCi0vLyBpbnN0
YW5jZSAoZS5nLiBUeXBlczxpbnQ+KQotIyBkZWZpbmUgVFlQRURfVEVTVF9DQVNFKENhc2VOYW1l
LCBUeXBlcywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0eXBlZGVmIDo6
dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlIEdURVNUX1RZUEVfUEFS
QU1TXyggXAotICAgICAgQ2FzZU5hbWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJu
YWw6Ok5hbWVHZW5lcmF0b3JTZWxlY3RvcjxfX1ZBX0FSR1NfXz46OnR5cGUgICAgXAorI2RlZmlu
ZSBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oVGVzdFN1aXRlTmFtZSkgXAorICBndGVzdF90eXBlX3Bh
cmFtc18jI1Rlc3RTdWl0ZU5hbWUjI19OYW1lR2VuZXJhdG9yCisKKyNkZWZpbmUgVFlQRURfVEVT
VF9TVUlURShDYXNlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpHZW5lcmF0ZVR5cGVMaXN0PFR5cGVzPjo6
dHlwZSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhDYXNlTmFtZSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdHlwZWRlZiA6OnRlc3Rpbmc6
OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8X19WQV9BUkdTX18+Ojp0eXBlIFwKICAg
ICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSkKIAotIyBkZWZpbmUgVFlQRURfVEVT
VChDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorI2RlZmluZSBUWVBFRF9URVNUKENhc2VOYW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KHNpemVvZihHVEVT
VF9TVFJJTkdJRllfKFRlc3ROYW1lKSkgPiAxLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgICJ0ZXN0LW5hbWUgbXVzdCBub3QgYmUgZW1wdHkiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rlc3RfVHlwZVBhcmFt
Xz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBjbGFzcyBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKENhc2VOYW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICAgOiBwdWJsaWMgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcHJpdmF0ZTogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgZ3Rlc3RfVHlwZVBhcmFtXyBU
eXBlUGFyYW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHZp
cnR1YWwgdm9pZCBUZXN0Qm9keSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB9OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICBzdGF0aWMgYm9vbCBndGVzdF8jI0Nhc2VOYW1lIyNfIyNUZXN0TmFtZSMjX3Jl
Z2lzdGVyZWRfICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBHVEVTVF9BVFRSSUJVVEVf
VU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0PCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSA6
OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlUGFyYW1ldGVyaXplZFRlc3Q8ICAgXAogICAgICAgICAg
IENhc2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlbXBsYXRlU2Vs
PEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oQ2FzZU5hbWUsICAgXAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdE5hbWUp
PiwgXApAQCAtMjE2LDcgKzIxMiw4IEBAIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15
LCBGb29UZXN0LCBNeVR5cGVzKTsKICAgICAgICAgICAgICAgQ2FzZU5hbWUpPjo6UmVnaXN0ZXIo
IiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9u
KCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRklM
RV9fLCBfX0xJTkVfXyksICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgI0Nhc2VOYW1lLCAjVGVzdE5hbWUsIDAsICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyhD
YXNlTmFtZSksICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSksIDAsICAgICAgICAgICAgIFwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJh
dGVOYW1lczwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1RZUEVfUEFSQU1TXyhDYXNlTmFtZSk+KCkp
OyAgICAgIFwKQEAgLTIyNCw4MyArMjIxLDEwOSBAQCBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAgIHZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1F
XyhDYXNlTmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0TmFtZSk8Z3Rlc3RfVHlwZVBhcmFtXz46OlRl
c3RCb2R5KCkKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAorLy8gTGVnYWN5IEFQ
SSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIFRZUEVEX1RFU1RfQ0FTRSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydCg6
OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVkKCksICIiKTsgXAor
ICBUWVBFRF9URVNUX1NVSVRFCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwogCiAvLyBJbXBsZW1lbnRzIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KIAotI2lm
IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBE
TyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lc3BhY2Ug
bmFtZSB0aGF0IHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgZm9yCi0vLyB0aGUgZ2l2ZW4g
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcmUgZGVmaW5lZCBpbi4gIFRoZSBleGFjdAor
Ly8gdGhlIGdpdmVuIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIGFyZSBkZWZpbmVkIGlu
LiAgVGhlIGV4YWN0CiAvLyBuYW1lIG9mIHRoZSBuYW1lc3BhY2UgaXMgc3ViamVjdCB0byBjaGFu
Z2Ugd2l0aG91dCBub3RpY2UuCi0jIGRlZmluZSBHVEVTVF9DQVNFX05BTUVTUEFDRV8oVGVzdENh
c2VOYW1lKSBcCi0gIGd0ZXN0X2Nhc2VfIyNUZXN0Q2FzZU5hbWUjI18KKyNkZWZpbmUgR1RFU1Rf
U1VJVEVfTkFNRVNQQUNFXyhUZXN0U3VpdGVOYW1lKSBndGVzdF9zdWl0ZV8jI1Rlc3RTdWl0ZU5h
bWUjI18KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIg
Q09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSB1c2VkIHRv
IHJlbWVtYmVyIHRoZSBuYW1lcyBvZgotLy8gdGhlIGRlZmluZWQgdGVzdHMgaW4gdGhlIGdpdmVu
IHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVEX1RFU1RfQ0FTRV9QX1NUQVRFXyhUZXN0
Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfdHlwZWRfdGVzdF9jYXNlX3Bfc3RhdGVfIyNUZXN0Q2FzZU5h
bWUjI18KKy8vIHRoZSBkZWZpbmVkIHRlc3RzIGluIHRoZSBnaXZlbiB0ZXN0IHN1aXRlLgorI2Rl
ZmluZSBHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RBVEVfKFRlc3RTdWl0ZU5hbWUpIFwKKyAg
Z3Rlc3RfdHlwZWRfdGVzdF9zdWl0ZV9wX3N0YXRlXyMjVGVzdFN1aXRlTmFtZSMjXwogCiAvLyBJ
TlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFIERJUkVDVExZ
LgogLy8KIC8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHVzZWQgdG8gcmVt
ZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4g
dGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhUZXN0Q2Fz
ZU5hbWUpIFwKLSAgZ3Rlc3RfcmVnaXN0ZXJlZF90ZXN0X25hbWVzXyMjVGVzdENhc2VOYW1lIyNf
CisvLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBzdWl0ZS4KKyNkZWZp
bmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhUZXN0U3VpdGVOYW1lKSBcCisgIGd0ZXN0
X3JlZ2lzdGVyZWRfdGVzdF9uYW1lc18jI1Rlc3RTdWl0ZU5hbWUjI18KIAogLy8gVGhlIHZhcmlh
YmxlcyBkZWZpbmVkIGluIHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBtYWNyb3MgYXJlCiAv
LyBzdGF0aWMgYXMgdHlwaWNhbGx5IHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBpbiBhIC5oIGZpbGUg
dGhhdCBjYW4gYmUKIC8vICNpbmNsdWRlZCBpbiBtdWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0cyBs
aW5rZWQgdG9nZXRoZXIuCi0jIGRlZmluZSBUWVBFRF9URVNUX0NBU0VfUChDYXNlTmFtZSkgXAot
ICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZWRUZXN0Q2FzZVBTdGF0ZSBcCi0gICAg
ICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8oQ2FzZU5hbWUpCi0KLSMgZGVmaW5lIFRZ
UEVEX1RFU1RfUChDYXNlTmFtZSwgVGVzdE5hbWUpIFwKLSAgbmFtZXNwYWNlIEdURVNUX0NBU0Vf
TkFNRVNQQUNFXyhDYXNlTmFtZSkgeyBcCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBl
UGFyYW1fPiBcCi0gIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIENhc2VOYW1lPGd0ZXN0X1R5cGVQ
YXJhbV8+IHsgXAotICAgcHJpdmF0ZTogXAotICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlw
ZVBhcmFtXz4gVGVzdEZpeHR1cmU7IFwKLSAgICB0eXBlZGVmIGd0ZXN0X1R5cGVQYXJhbV8gVHlw
ZVBhcmFtOyBcCi0gICAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7IFwKLSAgfTsgXAotICBzdGF0
aWMgYm9vbCBndGVzdF8jI1Rlc3ROYW1lIyNfZGVmaW5lZF8gR1RFU1RfQVRUUklCVVRFX1VOVVNF
RF8gPSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8oQ2FzZU5hbWUpLkFk
ZFRlc3ROYW1lKFwKLSAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICNDYXNlTmFtZSwgI1Rl
c3ROYW1lKTsgXAotICB9IFwKLSAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+
IFwKLSAgdm9pZCBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpOjpUZXN0TmFtZTxndGVz
dF9UeXBlUGFyYW1fPjo6VGVzdEJvZHkoKQotCi0jIGRlZmluZSBSRUdJU1RFUl9UWVBFRF9URVNU
X0NBU0VfUChDYXNlTmFtZSwgLi4uKSBcCi0gIG5hbWVzcGFjZSBHVEVTVF9DQVNFX05BTUVTUEFD
RV8oQ2FzZU5hbWUpIHsgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlbXBsYXRl
czxfX1ZBX0FSR1NfXz46OnR5cGUgZ3Rlc3RfQWxsVGVzdHNfOyBcCi0gIH0gXAotICBzdGF0aWMg
Y29uc3QgY2hhciogY29uc3QgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhDYXNlTmFtZSkg
XAotICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICAgICAgR1RFU1RfVFlQ
RURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKS5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVz
KCBcCi0gICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgI19fVkFfQVJHU19fKQotCi0v
LyBUaGUgJ1R5cGVzJyB0ZW1wbGF0ZSBhcmd1bWVudCBiZWxvdyBtdXN0IGhhdmUgc3BhY2VzIGFy
b3VuZCBpdAotLy8gc2luY2Ugc29tZSBjb21waWxlcnMgbWF5IGNob2tlIG9uICc+Picgd2hlbiBw
YXNzaW5nIGEgdGVtcGxhdGUKLS8vIGluc3RhbmNlIChlLmcuIFR5cGVzPGludD4pCi0jIGRlZmlu
ZSBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChQcmVmaXgsIENhc2VOYW1lLCBUeXBlcywg
Li4uKSAgICAgIFwKLSAgc3RhdGljIGJvb2wgZ3Rlc3RfIyNQcmVmaXgjI18jI0Nhc2VOYW1lIEdU
RVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTwgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgQ2FzZU5hbWUsIEdURVNUX0NBU0VfTkFNRVNQQUNFXyhDYXNlTmFtZSk6Omd0ZXN0X0Fs
bFRlc3RzXywgICAgIFwKLSAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlTGlzdDwg
VHlwZXMgPjo6dHlwZT46OiAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIFJlZ2lzdGVyKCNQ
cmVmaXgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklM
RV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgICAgICAgICAgICAmR1RFU1RfVFlQRURfVEVTVF9D
QVNFX1BfU1RBVEVfKENhc2VOYW1lKSwgI0Nhc2VOYW1lLCAgXAotICAgICAgICAgICAgICAgICAg
IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2FzZU5hbWUpLCAgICAgICAgICAgICAgICBc
Ci0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVOYW1lczwg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPCAgICAgICAgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX19WQV9BUkdTX18+Ojp0eXBlLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0
PCBUeXBlcyA+Ojp0eXBlPigpKQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AK
LQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KKyNk
ZWZpbmUgVFlQRURfVEVTVF9TVUlURV9QKFN1aXRlTmFtZSkgICAgICAgICAgICAgIFwKKyAgc3Rh
dGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdFN1aXRlUFN0YXRlIFwKKyAgICAgIEdU
RVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVOYW1lKQorCisvLyBMZWdhY3kgQVBJ
IGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0
KDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSwgIiIp
OyBcCisgIFRZUEVEX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZ
X1RFU1RfQ0FTRUFQSV8KKworI2RlZmluZSBUWVBFRF9URVNUX1AoU3VpdGVOYW1lLCBUZXN0TmFt
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNlIEdURVNUX1NVSVRF
X05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIGNsYXNzIFRlc3ROYW1lIDogcHVibGljIFN1aXRlTmFtZTxndGVzdF9UeXBl
UGFyYW1fPiB7ICAgICAgICAgICAgIFwKKyAgICAgcHJpdmF0ZTogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB0eXBlZGVmIFN1
aXRlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiBUZXN0Rml4dHVyZTsgICAgICAgICAgICAgICAgXAor
ICAgICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1fIFR5cGVQYXJhbTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRp
YyBib29sIGd0ZXN0XyMjVGVzdE5hbWUjI19kZWZpbmVkXyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VE
XyA9IFwKKyAgICAgICAgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9QX1NUQVRFXyhTdWl0ZU5hbWUp
LkFkZFRlc3ROYW1lKCAgICAgICBcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sIEdU
RVNUX1NUUklOR0lGWV8oU3VpdGVOYW1lKSwgICAgICAgICAgXAorICAgICAgICAgICAgR1RFU1Rf
U1RSSU5HSUZZXyhUZXN0TmFtZSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2b2lkIEdURVNUX1NVSVRFX05BTUVTUEFD
RV8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFN1aXRl
TmFtZSk6OlRlc3ROYW1lPGd0ZXN0X1R5cGVQYXJhbV8+OjpUZXN0Qm9keSgpCisKKy8vIE5vdGU6
IHRoaXMgd29uJ3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIHRyYWlsaW5nIGFyZ3VtZW50cyBhcmUg
bWFjcm9zLgorI2RlZmluZSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoU3VpdGVOYW1lLCAu
Li4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbmFtZXNwYWNlIEdURVNUX1NVSVRFX05B
TUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
dHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1wbGF0ZXM8X19WQV9BUkdTX18+IGd0ZXN0
X0FsbFRlc3RzXzsgICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICBTdWl0ZU5hbWUpIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9Q
X1NUQVRFXyhTdWl0ZU5hbWUpLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoIFwKKyAgICAgICAg
ICBHVEVTVF9TVFJJTkdJRllfKFN1aXRlTmFtZSksIF9fRklMRV9fLCBfX0xJTkVfXywgI19fVkFf
QVJHU19fKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlZ2lzdGVy
VHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBcCisgICAgICAgICAgICAgICAgIiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZGVmaW5lIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJ
VEVfUChQcmVmaXgsIFN1aXRlTmFtZSwgVHlwZXMsIC4uLikgICAgICAgXAorICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFByZWZpeCkpID4gMSwgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdC1zdWl0LXByZWZpeCBtdXN0IG5vdCBiZSBl
bXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBib29sIGd0ZXN0XyMjUHJl
Zml4IyNfIyNTdWl0ZU5hbWUgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSAgICAgICAgXAorICAg
ICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8ICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBTdWl0ZU5hbWUsIEdURVNUX1NVSVRFX05BTUVT
UEFDRV8oU3VpdGVOYW1lKTo6Z3Rlc3RfQWxsVGVzdHNfLCAgICBcCisgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVUeXBlTGlzdDxUeXBlcz46OnR5cGU+OjogICAgICAgICAg
ICAgXAorICAgICAgICAgIFJlZ2lzdGVyKEdURVNUX1NUUklOR0lGWV8oUHJlZml4KSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgICBcCisgICAgICAg
ICAgICAgICAgICAgJkdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVOYW1lKSwg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8oU3VpdGVO
YW1lKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICBH
VEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKFN1aXRlTmFtZSksICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVOYW1lczwg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6
OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8ICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fVkFfQVJHU19fPjo6dHlwZSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okdl
bmVyYXRlVHlwZUxpc3Q8VHlwZXM+Ojp0eXBlPigpKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyNkZWZpbmUgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydCggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okluc3RhbnRpYXRlVHlwZWRUZXN0Q2FzZV9QX0lzRGVw
cmVjYXRlZCgpLCAiIik7IFwKKyAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QCisjZW5k
aWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZW5kaWYgIC8vIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgKaW5kZXggNWRmNGIwYTNhNzEyNzY5
MDQ1NWE5NDVjYjE1MjhiNmJkNzQ0OWI2Ni4uMTA4OGUxMTBiY2YwNmFlYmE1NzAxNzU2NDI4NmIz
YjRkZWZmNGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
Z3Rlc3QuaApAQCAtNDksMTYgKzQ5LDIwIEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCi0jZGVmaW5l
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9I
XwogCisjaW5jbHVkZSA8Y3N0ZGRlZj4KICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCIKICNpbmNsdWRlICJndGVz
dC9ndGVzdC1kZWF0aC10ZXN0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIK
ICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qt
cGFyYW0tdGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCkBAIC02OSwy
MSArNzMsNiBAQAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDI1MSBcCiAvKiBj
bGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5IGNsaWVudHMg
b2YgY2xhc3MgQiAqLykKIAotLy8gRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSwgZGlmZmVyZW50
IHN0cmluZyBjbGFzc2VzIGFyZSBhdmFpbGFibGUuCi0vLyBPbiBMaW51eCwgaW4gYWRkaXRpb24g
dG8gOjpzdGQ6OnN0cmluZywgR29vZ2xlIGFsc28gbWFrZXMgdXNlIG9mCi0vLyBjbGFzcyA6OnN0
cmluZywgd2hpY2ggaGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyA6OnN0ZDo6c3RyaW5nLCBidXQK
LS8vIGhhcyBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLS8vCi0vLyBZb3UgY2FuIGRlZmlu
ZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyB0byAxIHRvIGluZGljYXRlIHRoYXQKLS8vIDo6c3Ry
aW5nIGlzIGF2YWlsYWJsZSBBTkQgaXMgYSBkaXN0aW5jdCB0eXBlIHRvIDo6c3RkOjpzdHJpbmcs
IG9yCi0vLyBkZWZpbmUgaXQgdG8gMCB0byBpbmRpY2F0ZSBvdGhlcndpc2UuCi0vLwotLy8gSWYg
OjpzdGQ6OnN0cmluZyBhbmQgOjpzdHJpbmcgYXJlIHRoZSBzYW1lIGNsYXNzIG9uIHlvdXIgcGxh
dGZvcm0KLS8vIGR1ZSB0byBhbGlhc2luZywgeW91IHNob3VsZCBkZWZpbmUgR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcgdG8gMC4KLS8vCi0vLyBJZiB5b3UgZG8gbm90IGRlZmluZSBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORywgaXQgaXMgZGVmaW5lZAotLy8gaGV1cmlzdGljYWxseS4KLQogbmFtZXNw
YWNlIHRlc3RpbmcgewogCiAvLyBTaWxlbmNlIEM0MTAwICh1bnJlZmVyZW5jZWQgZm9ybWFsIHBh
cmFtZXRlcikgYW5kIDQ4MDUKQEAgLTExMiw2ICsxMDEsMTAgQEAgR1RFU1RfREVDTEFSRV9ib29s
XyhjYXRjaF9leGNlcHRpb25zKTsKIC8vIHRvIGxldCBHb29nbGUgVGVzdCBkZWNpZGUuCiBHVEVT
VF9ERUNMQVJFX3N0cmluZ18oY29sb3IpOwogCisvLyBUaGlzIGZsYWcgY29udHJvbHMgd2hldGhl
ciB0aGUgdGVzdCBydW5uZXIgc2hvdWxkIGNvbnRpbnVlIGV4ZWN1dGlvbiBwYXN0CisvLyBmaXJz
dCBmYWlsdXJlLgorR1RFU1RfREVDTEFSRV9ib29sXyhmYWlsX2Zhc3QpOworCiAvLyBUaGlzIGZs
YWcgc2V0cyB1cCB0aGUgZmlsdGVyIHRvIHNlbGVjdCBieSBuYW1lIHVzaW5nIGEgZ2xvYiBwYXR0
ZXJuCiAvLyB0aGUgdGVzdHMgdG8gcnVuLiBJZiB0aGUgZmlsdGVyIGlzIG5vdCBnaXZlbiBhbGwg
dGVzdHMgYXJlIGV4ZWN1dGVkLgogR1RFU1RfREVDTEFSRV9zdHJpbmdfKGZpbHRlcik7CkBAIC0x
MjgsNiArMTIxLDkgQEAgR1RFU1RfREVDTEFSRV9ib29sXyhsaXN0X3Rlc3RzKTsKIC8vIGluIGFk
ZGl0aW9uIHRvIGl0cyBub3JtYWwgdGV4dHVhbCBvdXRwdXQuCiBHVEVTVF9ERUNMQVJFX3N0cmlu
Z18ob3V0cHV0KTsKIAorLy8gVGhpcyBmbGFncyBjb250cm9sIHdoZXRoZXIgR29vZ2xlIFRlc3Qg
cHJpbnRzIG9ubHkgdGVzdCBmYWlsdXJlcy4KK0dURVNUX0RFQ0xBUkVfYm9vbF8oYnJpZWYpOwor
CiAvLyBUaGlzIGZsYWdzIGNvbnRyb2wgd2hldGhlciBHb29nbGUgVGVzdCBwcmludHMgdGhlIGVs
YXBzZWQgdGltZSBmb3IgZWFjaAogLy8gdGVzdC4KIEdURVNUX0RFQ0xBUkVfYm9vbF8ocHJpbnRf
dGltZSk7CkBAIC0xODgsNiArMTg0LDcgQEAgY2xhc3MgRnVjaHNpYURlYXRoVGVzdDsKIGNsYXNz
IFVuaXRUZXN0SW1wbCogR2V0VW5pdFRlc3RJbXBsKCk7CiB2b2lkIFJlcG9ydEZhaWx1cmVJblVu
a25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKTsK
K3N0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVz
KCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogCkBAIC0xOTUsNyArMTkyLDEyIEBAIHZv
aWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHJl
c3VsdF90eXBlLAogLy8gSWYgd2UgZG9uJ3QgZm9yd2FyZCBkZWNsYXJlIHRoZW0gdGhlIGNvbXBp
bGVyIG1pZ2h0IGNvbmZ1c2UgdGhlIGNsYXNzZXMKIC8vIGluIGZyaWVuZHNoaXAgY2xhdXNlcyB3
aXRoIHNhbWUgbmFtZWQgY2xhc3NlcyBvbiB0aGUgc2NvcGUuCiBjbGFzcyBUZXN0OwotY2xhc3Mg
VGVzdENhc2U7CitjbGFzcyBUZXN0U3VpdGU7CisKKy8vIE9sZCBBUEkgaXMgc3RpbGwgYXZhaWxh
YmxlIGJ1dCBkZXByZWNhdGVkCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXwordXNpbmcgVGVzdENhc2UgPSBUZXN0U3VpdGU7CisjZW5kaWYKIGNsYXNzIFRlc3RJbmZv
OwogY2xhc3MgVW5pdFRlc3Q7CiAKQEAgLTI4NCw3ICsyODYsMTEgQEAgY2xhc3MgR1RFU1RfQVBJ
XyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBVc2VkIGluIEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2Vy
dGlvbl9yZXN1bHQpLgogICBBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0aW9uUmVzdWx0JiBv
dGhlcik7CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MTAKKy8vIEM0
ODAwIGlzIGEgbGV2ZWwgMyB3YXJuaW5nIGluIFZpc3VhbCBTdHVkaW8gMjAxNSBhbmQgZWFybGll
ci4KKy8vIFRoaXMgd2FybmluZyBpcyBub3QgZW1pdHRlZCBpbiBWaXN1YWwgU3R1ZGlvIDIwMTcu
CisvLyBUaGlzIHdhcm5pbmcgaXMgb2ZmIGJ5IGRlZmF1bHQgc3RhcnRpbmcgaW4gVmlzdWFsIFN0
dWRpbyAyMDE5IGJ1dCBjYW4gYmUKKy8vIGVuYWJsZWQgd2l0aCBjb21tYW5kLWxpbmUgb3B0aW9u
cy4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTEwIHx8IF9NU0NfVkVS
ID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ4MDAgLyogZm9y
Y2luZyB2YWx1ZSB0byBib29sICovKQogI2VuZGlmCiAKQEAgLTI5OCwxMiArMzA0LDEzIEBAIGNs
YXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiAgIGV4cGxpY2l0IEFzc2VydGlvblJlc3VsdCgKICAgICAgIGNvbnN0IFQmIHN1Y2Nlc3MsCi0g
ICAgICB0eXBlbmFtZSBpbnRlcm5hbDo6RW5hYmxlSWY8Ci0gICAgICAgICAgIWludGVybmFsOjpJ
bXBsaWNpdGx5Q29udmVydGlibGU8VCwgQXNzZXJ0aW9uUmVzdWx0Pjo6dmFsdWU+Ojp0eXBlKgot
ICAgICAgICAgIC8qZW5hYmxlciovID0gTlVMTCkKKyAgICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxl
X2lmPAorICAgICAgICAgICFzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIEFzc2VydGlvblJlc3VsdD46
OnZhbHVlPjo6dHlwZSoKKyAgICAgIC8qZW5hYmxlciovCisgICAgICA9IG51bGxwdHIpCiAgICAg
ICA6IHN1Y2Nlc3NfKHN1Y2Nlc3MpIHt9CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVND
X1ZFUiA8IDE5MTAKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTEwIHx8
IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQog
I2VuZGlmCiAKQEAgLTMxMyw3ICszMjAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCB7CiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBhc3NlcnRpb24gc3VjY2VlZGVkLgogICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gc3VjY2Vzc187IH0gIC8vIE5PTElOVAogCiAgIC8vIFJldHVybnMgdGhlIGFzc2VydGlvbidz
IG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KQEAgLTMyNCw5ICszMzEs
OCBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgIC8vIGFzc2VydGlvbidz
IGV4cGVjdGF0aW9uKS4gV2hlbiBub3RoaW5nIGhhcyBiZWVuIHN0cmVhbWVkIGludG8gdGhlCiAg
IC8vIG9iamVjdCwgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCiAgIGNvbnN0IGNoYXIqIG1lc3Nh
Z2UoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG1lc3NhZ2VfLmdldCgpICE9IE5VTEwgPyAgbWVzc2Fn
ZV8tPmNfc3RyKCkgOiAiIjsKKyAgICByZXR1cm4gbWVzc2FnZV8uZ2V0KCkgIT0gbnVsbHB0ciA/
IG1lc3NhZ2VfLT5jX3N0cigpIDogIiI7CiAgIH0KLSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFm
dGVyIG1ha2luZyBzdXJlIG5vIGNsaWVudHMgdXNlIGl0LgogICAvLyBEZXByZWNhdGVkOyBwbGVh
c2UgdXNlIG1lc3NhZ2UoKSBpbnN0ZWFkLgogICBjb25zdCBjaGFyKiBmYWlsdXJlX21lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtZXNzYWdlKCk7IH0KIApAQCAtMzQ3LDggKzM1Myw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICBwcml2YXRlOgogICAvLyBBcHBlbmRzIHRo
ZSBjb250ZW50cyBvZiBtZXNzYWdlIHRvIG1lc3NhZ2VfLgogICB2b2lkIEFwcGVuZE1lc3NhZ2Uo
Y29uc3QgTWVzc2FnZSYgYV9tZXNzYWdlKSB7Ci0gICAgaWYgKG1lc3NhZ2VfLmdldCgpID09IE5V
TEwpCi0gICAgICBtZXNzYWdlXy5yZXNldChuZXcgOjpzdGQ6OnN0cmluZyk7CisgICAgaWYgKG1l
c3NhZ2VfLmdldCgpID09IG51bGxwdHIpIG1lc3NhZ2VfLnJlc2V0KG5ldyA6OnN0ZDo6c3RyaW5n
KTsKICAgICBtZXNzYWdlXy0+YXBwZW5kKGFfbWVzc2FnZS5HZXRTdHJpbmcoKS5jX3N0cigpKTsK
ICAgfQogCkBAIC0zNjEsNyArMzY2LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1
bHQgewogICAvLyBjb25zdHJ1Y3QgaXMgbm90IHNhdGlzZmllZCB3aXRoIHRoZSBwcmVkaWNhdGUn
cyBvdXRjb21lLgogICAvLyBSZWZlcmVuY2VkIHZpYSBhIHBvaW50ZXIgdG8gYXZvaWQgdGFraW5n
IHRvbyBtdWNoIHN0YWNrIGZyYW1lIHNwYWNlCiAgIC8vIHdpdGggdGVzdCBhc3NlcnRpb25zLgot
ICBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2FnZV87CisgIHN0ZDo6
dW5pcXVlX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2FnZV87CiB9OwogCiAvLyBNYWtlcyBhIHN1
Y2Nlc3NmdWwgYXNzZXJ0aW9uIHJlc3VsdC4KQEAgLTM4NSw4ICszOTAsOCBAQCBuYW1lc3BhY2Ug
dGVzdGluZyB7CiAKIC8vIFRoZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGFsbCB0ZXN0cyBpbmhlcml0
IGZyb20uCiAvLwotLy8gSW4gR29vZ2xlIFRlc3QsIGEgdW5pdCB0ZXN0IHByb2dyYW0gY29udGFp
bnMgb25lIG9yIG1hbnkgVGVzdENhc2VzLCBhbmQKLS8vIGVhY2ggVGVzdENhc2UgY29udGFpbnMg
b25lIG9yIG1hbnkgVGVzdHMuCisvLyBJbiBHb29nbGUgVGVzdCwgYSB1bml0IHRlc3QgcHJvZ3Jh
bSBjb250YWlucyBvbmUgb3IgbWFueSBUZXN0U3VpdGVzLCBhbmQKKy8vIGVhY2ggVGVzdFN1aXRl
IGNvbnRhaW5zIG9uZSBvciBtYW55IFRlc3RzLgogLy8KIC8vIFdoZW4geW91IGRlZmluZSBhIHRl
c3QgdXNpbmcgdGhlIFRFU1QgbWFjcm8sIHlvdSBkb24ndCBuZWVkIHRvCiAvLyBleHBsaWNpdGx5
IGRlcml2ZSBmcm9tIFRlc3QgLSB0aGUgVEVTVCBtYWNybyBhdXRvbWF0aWNhbGx5IGRvZXMKQEAg
LTQxMCw0OSArNDE1LDU0IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdCB7CiAgcHVibGljOgogICBm
cmllbmQgY2xhc3MgVGVzdEluZm87CiAKLSAgLy8gRGVmaW5lcyB0eXBlcyBmb3IgcG9pbnRlcnMg
dG8gZnVuY3Rpb25zIHRoYXQgc2V0IHVwIGFuZCB0ZWFyIGRvd24KLSAgLy8gYSB0ZXN0IGNhc2Uu
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlNldFVwVGVzdENhc2VGdW5jIFNldFVwVGVzdENhc2VGdW5j
OwotICB0eXBlZGVmIGludGVybmFsOjpUZWFyRG93blRlc3RDYXNlRnVuYyBUZWFyRG93blRlc3RD
YXNlRnVuYzsKLQogICAvLyBUaGUgZCd0b3IgaXMgdmlydHVhbCBhcyB3ZSBpbnRlbmQgdG8gaW5o
ZXJpdCBmcm9tIFRlc3QuCiAgIHZpcnR1YWwgflRlc3QoKTsKIAotICAvLyBTZXRzIHVwIHRoZSBz
dHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgorICAvLyBTZXRzIHVw
IHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgLy8K
LSAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6U2V0VXBUZXN0Q2FzZSgpIGJlZm9yZSBy
dW5uaW5nIHRoZSBmaXJzdAotICAvLyB0ZXN0IGluIHRlc3QgY2FzZSBGb28uICBIZW5jZSBhIHN1
Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gU2V0VXBUZXN0Q2FzZSgpIG1ldGhvZCB0
byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgorICAvLyBHb29nbGUgVGVzdCB3
aWxsIGNhbGwgRm9vOjpTZXRVcFRlc3RTdWl0ZSgpIGJlZm9yZSBydW5uaW5nIHRoZSBmaXJzdAor
ICAvLyB0ZXN0IGluIHRlc3Qgc3VpdGUgRm9vLiAgSGVuY2UgYSBzdWItY2xhc3MgY2FuIGRlZmlu
ZSBpdHMgb3duCisgIC8vIFNldFVwVGVzdFN1aXRlKCkgbWV0aG9kIHRvIHNoYWRvdyB0aGUgb25l
IGRlZmluZWQgaW4gdGhlIHN1cGVyCiAgIC8vIGNsYXNzLgotICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7fQogCi0gIC8vIFRl
YXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2Uu
CisgIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IHN1aXRlLgogICAvLwotICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93
blRlc3RDYXNlKCkgYWZ0ZXIgcnVubmluZyB0aGUgbGFzdAotICAvLyB0ZXN0IGluIHRlc3QgY2Fz
ZSBGb28uICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8gVGVhckRv
d25UZXN0Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBl
cgorICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93blRlc3RTdWl0ZSgpIGFm
dGVyIHJ1bm5pbmcgdGhlIGxhc3QKKyAgLy8gdGVzdCBpbiB0ZXN0IHN1aXRlIEZvby4gIEhlbmNl
IGEgc3ViLWNsYXNzIGNhbiBkZWZpbmUgaXRzIG93bgorICAvLyBUZWFyRG93blRlc3RTdWl0ZSgp
IG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgogICAvLyBjbGFz
cy4KKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7fQorCisgIC8vIExlZ2FjeSBB
UEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlLiBVc2UgU2V0VXBUZXN0U3VpdGUg
YW5kCisgIC8vIFRlYXJEb3duVGVzdFN1aXRlIGluc3RlYWQuCisjaWZuZGVmIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkg
e30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHt9CisjZW5kaWYgIC8vIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGN1
cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgogICBzdGF0aWMg
Ym9vbCBIYXNGYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJy
ZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgogICBz
dGF0aWMgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmUoKTsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgorICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCB3YXMgc2tpcHBlZC4KKyAgc3RhdGlj
IGJvb2wgSXNTa2lwcGVkKCk7CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRo
ZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRhbCBvcgogICAvLyBub24tZmF0YWwpIGZh
aWx1cmUuCiAgIHN0YXRpYyBib29sIEhhc0ZhaWx1cmUoKSB7IHJldHVybiBIYXNGYXRhbEZhaWx1
cmUoKSB8fCBIYXNOb25mYXRhbEZhaWx1cmUoKTsgfQogCi0gIC8vIExvZ3MgYSBwcm9wZXJ0eSBm
b3IgdGhlIGN1cnJlbnQgdGVzdCwgdGVzdCBjYXNlLCBvciBmb3IgdGhlIGVudGlyZQorICAvLyBM
b2dzIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHRlc3QsIHRlc3Qgc3VpdGUsIG9yIGZvciB0
aGUgZW50aXJlCiAgIC8vIGludm9jYXRpb24gb2YgdGhlIHRlc3QgcHJvZ3JhbSB3aGVuIHVzZWQg
b3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhCi0gIC8vIHRlc3QgY2FzZS4gIE9ubHkgdGhlIGxh
c3QgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IGlzIHJlbWVtYmVyZWQuICBUaGVzZQorICAvLyB0ZXN0
IHN1aXRlLiAgT25seSB0aGUgbGFzdCB2YWx1ZSBmb3IgYSBnaXZlbiBrZXkgaXMgcmVtZW1iZXJl
ZC4gIFRoZXNlCiAgIC8vIGFyZSBwdWJsaWMgc3RhdGljIHNvIHRoZXkgY2FuIGJlIGNhbGxlZCBm
cm9tIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIC8vIG5vdCBtZW1iZXJzIG9mIHRoZSB0
ZXN0IGZpeHR1cmUuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGR1cmluZwogICAvLyBs
aWZlc3BhbiBvZiB0aGUgdGVzdCAoZnJvbSB0aGUgbW9tZW50IGl0cyBjb25zdHJ1Y3RvciBzdGFy
dHMgdG8gdGhlCiAgIC8vIG1vbWVudCBpdHMgZGVzdHJ1Y3RvciBmaW5pc2hlcykgd2lsbCBiZSBv
dXRwdXQgaW4gWE1MIGFzIGF0dHJpYnV0ZXMgb2YKICAgLy8gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVu
dC4gIFByb3BlcnRpZXMgcmVjb3JkZWQgZnJvbSBmaXh0dXJlJ3MKLSAgLy8gU2V0VXBUZXN0Q2Fz
ZSBvciBUZWFyRG93blRlc3RDYXNlIGFyZSBsb2dnZWQgYXMgYXR0cmlidXRlcyBvZiB0aGUKKyAg
Ly8gU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUgYXJlIGxvZ2dlZCBhcyBhdHRy
aWJ1dGVzIG9mIHRoZQogICAvLyBjb3JyZXNwb25kaW5nIDx0ZXN0c3VpdGU+IGVsZW1lbnQuICBD
YWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGluIHRoZQogICAvLyBnbG9iYWwgY29udGV4dCAo
YmVmb3JlIG9yIGFmdGVyIGludm9jYXRpb24gb2YgUlVOX0FMTF9URVNUUyBhbmQgZnJvbQogICAv
LyBTZXRVcC9UZWFyRG93biBtZXRob2Qgb2YgRW52aXJvbm1lbnQgb2JqZWN0cyByZWdpc3RlcmVk
IHdpdGggR29vZ2xlCkBAIC00NzEsOCArNDgxLDggQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0IHsK
ICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CiAKICBwcml2YXRlOgotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZSBzYW1lIGZpeHR1cmUgY2xhc3MgYXMKLSAg
Ly8gdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBjYXNlLgorICAvLyBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgdGhlIHNhbWUgZml4dHVy
ZSBjbGFzcworICAvLyBhcyB0aGUgZmlyc3QgdGVzdCBpbiB0aGUgY3VycmVudCB0ZXN0IHN1aXRl
LgogICBzdGF0aWMgYm9vbCBIYXNTYW1lRml4dHVyZUNsYXNzKCk7CiAKICAgLy8gUnVucyB0aGUg
dGVzdCBhZnRlciB0aGUgdGVzdCBmaXh0dXJlIGhhcyBiZWVuIHNldCB1cC4KQEAgLTQ5MCw3ICs1
MDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3QgewogICAvLyBpbnRlcm5hbCBtZXRob2QgdG8g
YXZvaWQgY2xhc2hpbmcgd2l0aCBuYW1lcyB1c2VkIGluIHVzZXIgVEVTVHMuCiAgIHZvaWQgRGVs
ZXRlU2VsZl8oKSB7IGRlbGV0ZSB0aGlzOyB9CiAKLSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9w
dHI8IEdURVNUX0ZMQUdfU0FWRVJfID4gZ3Rlc3RfZmxhZ19zYXZlcl87CisgIGNvbnN0IHN0ZDo6
dW5pcXVlX3B0cjxHVEVTVF9GTEFHX1NBVkVSXz4gZ3Rlc3RfZmxhZ19zYXZlcl87CiAKICAgLy8g
T2Z0ZW4gYSB1c2VyIG1pc3NwZWxscyBTZXRVcCgpIGFzIFNldHVwKCkgYW5kIHNwZW5kcyBhIGxv
bmcgdGltZQogICAvLyB3b25kZXJpbmcgd2h5IGl0IGlzIG5ldmVyIGNhbGxlZCBieSBHb29nbGUg
VGVzdC4gIFRoZSBkZWNsYXJhdGlvbiBvZgpAQCAtNTA5LDcgKzUxOSw3IEBAIGNsYXNzIEdURVNU
X0FQSV8gVGVzdCB7CiAgIC8vIElmIHlvdSBzZWUgYW4gZXJyb3IgYWJvdXQgb3ZlcnJpZGluZyB0
aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG9yCiAgIC8vIGFib3V0IGl0IGJlaW5nIHByaXZhdGUsIHlv
dSBoYXZlIG1pcy1zcGVsbGVkIFNldFVwKCkgYXMgU2V0dXAoKS4KICAgc3RydWN0IFNldHVwX3No
b3VsZF9iZV9zcGVsbGVkX1NldFVwIHt9OwotICB2aXJ0dWFsIFNldHVwX3Nob3VsZF9iZV9zcGVs
bGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIE5VTEw7IH0KKyAgdmlydHVhbCBTZXR1cF9zaG91
bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgLy8g
V2UgZGlzYWxsb3cgY29weWluZyBUZXN0cy4KICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNT
SUdOXyhUZXN0KTsKQEAgLTU3MywyMSArNTgzLDI4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFJl
c3VsdCB7CiAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgdGVzdCBwcm9wZXJ0aWVzLgog
ICBpbnQgdGVzdF9wcm9wZXJ0eV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFydCBmYWlsZWQpLgotICBib29sIFBh
c3NlZCgpIGNvbnN0IHsgcmV0dXJuICFGYWlsZWQoKTsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3QgcGFydCBmYWlsZWQpLgor
ICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFTa2lwcGVkKCkgJiYgIUZhaWxlZCgpOyB9
CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHdhcyBza2lwcGVk
LgorICBib29sIFNraXBwZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0
ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZh
aWxlZC4KICAgYm9vbCBGYWlsZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSB0ZXN0IGZhdGFsbHkgZmFpbGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiAgIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCkgY29uc3Q7
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVy
ZS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGhhcyBhIG5vbi1m
YXRhbCBmYWlsdXJlLgogICBib29sIEhhc05vbmZhdGFsRmFpbHVyZSgpIGNvbnN0OwogCiAgIC8v
IFJldHVybnMgdGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgogICBUaW1lSW5NaWxs
aXMgZWxhcHNlZF90aW1lKCkgY29uc3QgeyByZXR1cm4gZWxhcHNlZF90aW1lXzsgfQogCisgIC8v
IEdldHMgdGhlIHRpbWUgb2YgdGhlIHRlc3QgY2FzZSBzdGFydCwgaW4gbXMgZnJvbSB0aGUgc3Rh
cnQgb2YgdGhlCisgIC8vIFVOSVggZXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFydF90aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBzdGFydF90aW1lc3RhbXBfOyB9CisKICAgLy8gUmV0dXJucyB0
aGUgaS10aCB0ZXN0IHBhcnQgcmVzdWx0IGFtb25nIGFsbCB0aGUgcmVzdWx0cy4gaSBjYW4gcmFu
Z2UgZnJvbSAwCiAgIC8vIHRvIHRvdGFsX3BhcnRfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGlu
IHRoYXQgcmFuZ2UsIGFib3J0cyB0aGUgcHJvZ3JhbS4KICAgY29uc3QgVGVzdFBhcnRSZXN1bHQm
IEdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdDsKQEAgLTU5OSw3ICs2MTYsNyBAQCBjbGFz
cyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogCiAgcHJpdmF0ZToKICAgZnJpZW5kIGNsYXNzIFRl
c3RJbmZvOwotICBmcmllbmQgY2xhc3MgVGVzdENhc2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3Vp
dGU7CiAgIGZyaWVuZCBjbGFzcyBVbml0VGVzdDsKICAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpE
ZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRlcjsKICAgZnJpZW5kIGNsYXNzIGludGVy
bmFsOjpFeGVjRGVhdGhUZXN0OwpAQCAtNjE4LDYgKzYzNSw5IEBAIGNsYXNzIEdURVNUX0FQSV8g
VGVzdFJlc3VsdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJvcGVydGllc187CiAgIH0KIAorICAvLyBT
ZXRzIHRoZSBzdGFydCB0aW1lLgorICB2b2lkIHNldF9zdGFydF90aW1lc3RhbXAoVGltZUluTWls
bGlzIHN0YXJ0KSB7IHN0YXJ0X3RpbWVzdGFtcF8gPSBzdGFydDsgfQorCiAgIC8vIFNldHMgdGhl
IGVsYXBzZWQgdGltZS4KICAgdm9pZCBzZXRfZWxhcHNlZF90aW1lKFRpbWVJbk1pbGxpcyBlbGFw
c2VkKSB7IGVsYXBzZWRfdGltZV8gPSBlbGFwc2VkOyB9CiAKQEAgLTYzMSw3ICs2NTEsNyBAQCBj
bGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7CiAKICAgLy8gQWRkcyBhIGZhaWx1cmUgaWYg
dGhlIGtleSBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBvZiBHb29nbGUgVGVzdAotICAvLyB0ZXN0
Y2FzZSB0YWdzLiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2YWxpZC4KKyAgLy8g
dGVzdHN1aXRlIHRhZ3MuICBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3BlcnR5IGlzIHZhbGlkLgog
ICAvLyBGSVhNRTogVmFsaWRhdGUgYXR0cmlidXRlIG5hbWVzIGFyZSBsZWdhbCBhbmQgaHVtYW4g
cmVhZGFibGUuCiAgIHN0YXRpYyBib29sIFZhbGlkYXRlVGVzdFByb3BlcnR5KGNvbnN0IHN0ZDo6
c3RyaW5nJiB4bWxfZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KTsKQEAgLTY2MSw2ICs2ODEsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICBzdGQ6OnZlY3RvcjxUZXN0UHJvcGVydHk+
IHRlc3RfcHJvcGVydGllc187CiAgIC8vIFJ1bm5pbmcgY291bnQgb2YgZGVhdGggdGVzdHMuCiAg
IGludCBkZWF0aF90ZXN0X2NvdW50XzsKKyAgLy8gVGhlIHN0YXJ0IHRpbWUsIGluIG1pbGxpc2Vj
b25kcyBzaW5jZSBVTklYIEVwb2NoLgorICBUaW1lSW5NaWxsaXMgc3RhcnRfdGltZXN0YW1wXzsK
ICAgLy8gVGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlzZWNvbmRzLgogICBUaW1lSW5NaWxsaXMg
ZWxhcHNlZF90aW1lXzsKIApAQCAtNjcwLDcgKzY5Miw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dFJlc3VsdCB7CiAKIC8vIEEgVGVzdEluZm8gb2JqZWN0IHN0b3JlcyB0aGUgZm9sbG93aW5nIGlu
Zm9ybWF0aW9uIGFib3V0IGEgdGVzdDoKIC8vCi0vLyAgIFRlc3QgY2FzZSBuYW1lCisvLyAgIFRl
c3Qgc3VpdGUgbmFtZQogLy8gICBUZXN0IG5hbWUKIC8vICAgV2hldGhlciB0aGUgdGVzdCBzaG91
bGQgYmUgcnVuCiAvLyAgIEEgZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNyZWF0ZXMgdGhlIHRlc3Qg
b2JqZWN0IHdoZW4gaW52b2tlZApAQCAtNjg1LDggKzcwNywxMyBAQCBjbGFzcyBHVEVTVF9BUElf
IFRlc3RJbmZvIHsKICAgLy8gZG9uJ3QgaW5oZXJpdCBmcm9tIFRlc3RJbmZvLgogICB+VGVzdElu
Zm8oKTsKIAotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgbmFtZS4KLSAgY29uc3QgY2hhciog
dGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X2Nhc2VfbmFtZV8uY19zdHIoKTsg
fQorICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHN1aXRlIG5hbWUuCisgIGNvbnN0IGNoYXIqIHRlc3Rf
c3VpdGVfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3Rfc3VpdGVfbmFtZV8uY19zdHIoKTsgfQor
CisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X3N1aXRlX25hbWUoKTsgfQorI2VuZGlmICAv
LyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBSZXR1cm5zIHRoZSB0
ZXN0IG5hbWUuCiAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0
cigpOyB9CkBAIC02OTQsMTcgKzcyMSwxNSBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsK
ICAgLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYg
dGhpcyBpcyBub3QgYSB0eXBlZAogICAvLyBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0Lgog
ICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh0eXBlX3BhcmFtXy5n
ZXQoKSAhPSBOVUxMKQotICAgICAgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOwotICAgIHJl
dHVybiBOVUxMOworICAgIGlmICh0eXBlX3BhcmFtXy5nZXQoKSAhPSBudWxscHRyKSByZXR1cm4g
dHlwZV9wYXJhbV8tPmNfc3RyKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KIAogICAvLyBS
ZXR1cm5zIHRoZSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9y
IE5VTEwgaWYgdGhpcwogICAvLyBpcyBub3QgYSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCiAg
IGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtKCkgY29uc3QgewotICAgIGlmICh2YWx1ZV9wYXJhbV8u
Z2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB2YWx1ZV9wYXJhbV8tPmNfc3RyKCk7Ci0gICAg
cmV0dXJuIE5VTEw7CisgICAgaWYgKHZhbHVlX3BhcmFtXy5nZXQoKSAhPSBudWxscHRyKSByZXR1
cm4gdmFsdWVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAg
Ly8gUmV0dXJucyB0aGUgZmlsZSBuYW1lIHdoZXJlIHRoaXMgdGVzdCBpcyBkZWZpbmVkLgpAQCAt
NzIxLDcgKzc0Niw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBiZWVuIHNw
ZWNpZmllZCkgYW5kIGl0cyBmdWxsIG5hbWUgbWF0Y2hlcyB0aGUgdXNlci1zcGVjaWZpZWQgZmls
dGVyLgogICAvLwogICAvLyBHb29nbGUgVGVzdCBhbGxvd3MgdGhlIHVzZXIgdG8gZmlsdGVyIHRo
ZSB0ZXN0cyBieSB0aGVpciBmdWxsIG5hbWVzLgotICAvLyBUaGUgZnVsbCBuYW1lIG9mIGEgdGVz
dCBCYXIgaW4gdGVzdCBjYXNlIEZvbyBpcyBkZWZpbmVkIGFzCisgIC8vIFRoZSBmdWxsIG5hbWUg
b2YgYSB0ZXN0IEJhciBpbiB0ZXN0IHN1aXRlIEZvbyBpcyBkZWZpbmVkIGFzCiAgIC8vICJGb28u
QmFyIi4gIE9ubHkgdGhlIHRlc3RzIHRoYXQgbWF0Y2ggdGhlIGZpbHRlciB3aWxsIHJ1bi4KICAg
Ly8KICAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBnbG9iIChub3Qg
cmVnZXgpIHBhdHRlcm5zLApAQCAtNzM0LDcgKzc1OSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dEluZm8gewogICAvLyBjb250YWlucyB0aGUgY2hhcmFjdGVyICdBJyBvciBzdGFydHMgd2l0aCAi
Rm9vLiIuCiAgIGJvb2wgc2hvdWxkX3J1bigpIGNvbnN0IHsgcmV0dXJuIHNob3VsZF9ydW5fOyB9
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlzIHRlc3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhN
TCByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIHRlc3Qgd2ls
bCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGJvb2wgaXNfcmVwb3J0YWJsZSgpIGNvbnN0
IHsKICAgICAvLyBUaGUgWE1MIHJlcG9ydCBpbmNsdWRlcyB0ZXN0cyBtYXRjaGluZyB0aGUgZmls
dGVyLCBleGNsdWRpbmcgdGhvc2UKICAgICAvLyBydW4gaW4gb3RoZXIgc2hhcmRzLgpAQCAtNzQ5
LDI0ICs3NzQsMTkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0SW5mbyB7CiAgIGZyaWVuZCBjbGFz
cyBpbnRlcm5hbDo6RGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk7CiAjZW5kaWYgIC8vIEdURVNUX0hB
U19ERUFUSF9URVNUCiAgIGZyaWVuZCBjbGFzcyBUZXN0OwotICBmcmllbmQgY2xhc3MgVGVzdENh
c2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3VpdGU7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6
VW5pdFRlc3RJbXBsOwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlN0cmVhbWluZ0xpc3RlbmVy
VGVzdDsKICAgZnJpZW5kIFRlc3RJbmZvKiBpbnRlcm5hbDo6TWFrZUFuZFJlZ2lzdGVyVGVzdElu
Zm8oCi0gICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgIGNvbnN0IGNoYXIq
IG5hbWUsCi0gICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgY29uc3QgY2hhciog
dmFsdWVfcGFyYW0sCi0gICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24s
Ci0gICAgICBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgICBUZXN0OjpT
ZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNl
RnVuYyB0ZWFyX2Rvd25fdGMsCisgICAgICBjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNv
bnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCisgICAgICBjb25zdCBjaGFy
KiB2YWx1ZV9wYXJhbSwgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uLAorICAg
ICAgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkLCBpbnRlcm5hbDo6U2V0VXBUZXN0
U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1
bmMgdGVhcl9kb3duX3RjLAogICAgICAgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSogZmFjdG9y
eSk7CiAKICAgLy8gQ29uc3RydWN0cyBhIFRlc3RJbmZvIG9iamVjdC4gVGhlIG5ld2x5IGNvbnN0
cnVjdGVkIGluc3RhbmNlIGFzc3VtZXMKICAgLy8gb3duZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9i
amVjdC4KLSAgVGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RfY2FzZV9uYW1lLAotICAg
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwKKyAgVGVzdEluZm8oY29uc3Qgc3RkOjpz
dHJpbmcmIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsCiAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwgICAvLyBOVUxMIGlmIG5vdCBhIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0CiAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdmFsdWVfcGFyYW0sICAv
LyBOVUxMIGlmIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdAogICAgICAgICAgICBpbnRl
cm5hbDo6Q29kZUxvY2F0aW9uIGFfY29kZV9sb2NhdGlvbiwKQEAgLTc4MywyNiArODAzLDI5IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBkZWxldGVzIGl0LgogICB2b2lkIFJ1
bigpOwogCisgIC8vIFNraXAgYW5kIHJlY29yZHMgdGhlIHRlc3QgcmVzdWx0IGZvciB0aGlzIG9i
amVjdC4KKyAgdm9pZCBTa2lwKCk7CisKICAgc3RhdGljIHZvaWQgQ2xlYXJUZXN0UmVzdWx0KFRl
c3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICB0ZXN0X2luZm8tPnJlc3VsdF8uQ2xlYXIoKTsKICAg
fQogCiAgIC8vIFRoZXNlIGZpZWxkcyBhcmUgaW1tdXRhYmxlIHByb3BlcnRpZXMgb2YgdGhlIHRl
c3QuCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3RfY2FzZV9uYW1lXzsgICAgIC8vIFRlc3QgY2Fz
ZSBuYW1lCisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87ICAgIC8vIHRlc3Qg
c3VpdGUgbmFtZQogICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lXzsgICAgICAgICAgICAgICAvLyBU
ZXN0IG5hbWUKICAgLy8gTmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhp
cyBpcyBub3QgYSB0eXBlZCBvciBhCiAgIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotICBj
b25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB0eXBlX3BhcmFt
XzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHR5cGVfcGFy
YW1fOwogICAvLyBUZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9y
IE5VTEwgaWYgdGhpcyBpcyBub3QgYQogICAvLyB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0g
IGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHZhbHVlX3Bh
cmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHZhbHVl
X3BhcmFtXzsKICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBsb2NhdGlvbl87Ci0gIGNvbnN0IGlu
dGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87ICAgLy8gSUQgb2YgdGhlIHRlc3QgZml4
dHVyZSBjbGFzcwotICBib29sIHNob3VsZF9ydW5fOyAgICAgICAgICAgICAgICAgLy8gVHJ1ZSBp
ZmYgdGhpcyB0ZXN0IHNob3VsZCBydW4KLSAgYm9vbCBpc19kaXNhYmxlZF87ICAgICAgICAgICAg
ICAgIC8vIFRydWUgaWZmIHRoaXMgdGVzdCBpcyBkaXNhYmxlZAotICBib29sIG1hdGNoZXNfZmls
dGVyXzsgICAgICAgICAgICAgLy8gVHJ1ZSBpZiB0aGlzIHRlc3QgbWF0Y2hlcyB0aGUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZXItc3BlY2lmaWVkIGZpbHRlci4K
LSAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgICAgICAgIC8vIFdpbGwgYmUgcnVuIGluIGFu
b3RoZXIgc2hhcmQuCisgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87
ICAvLyBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzCisgIGJvb2wgc2hvdWxkX3J1bl87ICAg
ICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCBzaG91bGQgcnVuCisgIGJv
b2wgaXNfZGlzYWJsZWRfOyAgICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVz
dCBpcyBkaXNhYmxlZAorICBib29sIG1hdGNoZXNfZmlsdGVyXzsgICAgICAgLy8gVHJ1ZSBpZiB0
aGlzIHRlc3QgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVz
ZXItc3BlY2lmaWVkIGZpbHRlci4KKyAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgIC8vIFdp
bGwgYmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCiAgIGludGVybmFsOjpUZXN0RmFjdG9yeUJhc2Uq
IGNvbnN0IGZhY3RvcnlfOyAgLy8gVGhlIGZhY3RvcnkgdGhhdCBjcmVhdGVzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHRlc3Qgb2JqZWN0CiAK
QEAgLTgxMyw5MCArODM2LDk4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RJbmZvKTsKIH07CiAKLS8vIEEgdGVzdCBj
YXNlLCB3aGljaCBjb25zaXN0cyBvZiBhIHZlY3RvciBvZiBUZXN0SW5mb3MuCisvLyBBIHRlc3Qg
c3VpdGUsIHdoaWNoIGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRlc3RJbmZvcy4KIC8vCi0vLyBU
ZXN0Q2FzZSBpcyBub3QgY29weWFibGUuCi1jbGFzcyBHVEVTVF9BUElfIFRlc3RDYXNlIHsKKy8v
IFRlc3RTdWl0ZSBpcyBub3QgY29weWFibGUuCitjbGFzcyBHVEVTVF9BUElfIFRlc3RTdWl0ZSB7
CiAgcHVibGljOgotICAvLyBDcmVhdGVzIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4K
KyAgLy8gQ3JlYXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogICAvLwotICAv
LyBUZXN0Q2FzZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gIEFsd2F5cyB1
c2UgdGhpcwotICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0Q2FzZSBvYmplY3QuCisg
IC8vIFRlc3RTdWl0ZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gIEFsd2F5
cyB1c2UgdGhpcworICAvLyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBUZXN0U3VpdGUgb2JqZWN0
LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0gIC8vICAgbmFtZTogICAgICAgICBuYW1l
IG9mIHRoZSB0ZXN0IGNhc2UKKyAgLy8gICBuYW1lOiAgICAgICAgIG5hbWUgb2YgdGhlIHRlc3Qg
c3VpdGUKICAgLy8gICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBw
YXJhbWV0ZXIsIG9yIE5VTEwgaWYKICAgLy8gICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRv
IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRlYXJfZG93
bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNh
c2UKLSAgVGVzdENhc2UoY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFt
LAotICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICAg
ICAgIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90Yyk7CisgIC8vICAgc2V0
X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qg
c3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQg
dGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQorICBUZXN0U3VpdGUoY29uc3QgY2hhciogbmFtZSwg
Y29uc3QgY2hhciogYV90eXBlX3BhcmFtLAorICAgICAgICAgICAgaW50ZXJuYWw6OlNldFVwVGVz
dFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICBpbnRlcm5hbDo6VGVhckRvd25UZXN0
U3VpdGVGdW5jIHRlYXJfZG93bl90Yyk7CiAKLSAgLy8gRGVzdHJ1Y3RvciBvZiBUZXN0Q2FzZS4K
LSAgdmlydHVhbCB+VGVzdENhc2UoKTsKKyAgLy8gRGVzdHJ1Y3RvciBvZiBUZXN0U3VpdGUuCisg
IHZpcnR1YWwgflRlc3RTdWl0ZSgpOwogCi0gIC8vIEdldHMgdGhlIG5hbWUgb2YgdGhlIFRlc3RD
YXNlLgorICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBUZXN0U3VpdGUuCiAgIGNvbnN0IGNoYXIq
IG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0cigpOyB9CiAKICAgLy8gUmV0dXJucyB0
aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYQot
ICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgorICAvLyB0eXBlLXBhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZS4KICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSgpIGNvbnN0IHsKLSAgICBp
ZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB0eXBlX3BhcmFtXy0+
Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0g
bnVsbHB0cikgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRy
OwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBjYXNl
IHNob3VsZCBydW4uCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3Qg
c3VpdGUgc2hvdWxkIHJ1bi4KICAgYm9vbCBzaG91bGRfcnVuKCkgY29uc3QgeyByZXR1cm4gc2hv
dWxkX3J1bl87IH0KIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBp
biB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVz
dHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29u
c3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMgaW4gdGhpcyB0ZXN0
IHN1aXRlLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3Q7CisKKyAgLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAgIGludCBmYWls
ZWRfdGVzdF9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxl
ZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGludCBy
ZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhl
IG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAgIGludCBkaXNh
YmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKICAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHRlc3Rz
IHRvIGJlIHByaW50ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGludCByZXBvcnRhYmxlX3Rlc3Rf
Y291bnQoKSBjb25zdDsKIAotICAvLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRl
c3QgY2FzZSB0aGF0IHNob3VsZCBydW4uCisgIC8vIEdldCB0aGUgbnVtYmVyIG9mIHRlc3RzIGlu
IHRoaXMgdGVzdCBzdWl0ZSB0aGF0IHNob3VsZCBydW4uCiAgIGludCB0ZXN0X3RvX3J1bl9jb3Vu
dCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0
IHN1aXRlLgogICBpbnQgdG90YWxfdGVzdF9jb3VudCgpIGNvbnN0OwogCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBwYXNzZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCiAgIGJvb2wgUGFzc2VkKCkgY29uc3QgeyBy
ZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBjYXNl
IGZhaWxlZC4KLSAgYm9vbCBGYWlsZWQoKSBjb25zdCB7IHJldHVybiBmYWlsZWRfdGVzdF9jb3Vu
dCgpID4gMDsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc3Vp
dGUgZmFpbGVkLgorICBib29sIEZhaWxlZCgpIGNvbnN0IHsKKyAgICByZXR1cm4gZmFpbGVkX3Rl
c3RfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCkuRmFpbGVkKCk7CisgIH0KIAog
ICAvLyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUlu
TWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KIAor
ICAvLyBHZXRzIHRoZSB0aW1lIG9mIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0LCBpbiBtcyBmcm9tIHRo
ZSBzdGFydCBvZiB0aGUKKyAgLy8gVU5JWCBlcG9jaC4KKyAgVGltZUluTWlsbGlzIHN0YXJ0X3Rp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0X3RpbWVzdGFtcF87IH0KKwogICAvLyBSZXR1
cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0ZXN0cy4gaSBjYW4gcmFuZ2UgZnJvbSAw
IHRvCiAgIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFu
Z2UsIHJldHVybnMgTlVMTC4KICAgY29uc3QgVGVzdEluZm8qIEdldFRlc3RJbmZvKGludCBpKSBj
b25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IHRoYXQgaG9sZHMgdGVzdCBwcm9w
ZXJ0aWVzIHJlY29yZGVkIGR1cmluZwotICAvLyBleGVjdXRpb24gb2YgU2V0VXBUZXN0Q2FzZSBh
bmQgVGVhckRvd25UZXN0Q2FzZS4KKyAgLy8gZXhlY3V0aW9uIG9mIFNldFVwVGVzdFN1aXRlIGFu
ZCBUZWFyRG93blRlc3RTdWl0ZS4KICAgY29uc3QgVGVzdFJlc3VsdCYgYWRfaG9jX3Rlc3RfcmVz
dWx0KCkgY29uc3QgeyByZXR1cm4gYWRfaG9jX3Rlc3RfcmVzdWx0XzsgfQogCiAgcHJpdmF0ZToK
ICAgZnJpZW5kIGNsYXNzIFRlc3Q7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RJ
bXBsOwogCi0gIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRo
aXMgVGVzdENhc2UuCisgIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9z
IGluIHRoaXMgVGVzdFN1aXRlLgogICBzdGQ6OnZlY3RvcjxUZXN0SW5mbyo+JiB0ZXN0X2luZm9f
bGlzdCgpIHsgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsgfQogCi0gIC8vIEdldHMgdGhlIChpbW11
dGFibGUpIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhpcyBUZXN0Q2FzZS4KKyAgLy8gR2V0cyB0
aGUgKGltbXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZvcyBpbiB0aGlzIFRlc3RTdWl0ZS4KICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiYgdGVzdF9pbmZvX2xpc3QoKSBjb25zdCB7CiAg
ICAgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsKICAgfQpAQCAtOTA4LDUxICs5MzksNjcgQEAgY2xh
c3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIFNldHMgdGhlIHNob3VsZF9ydW4gbWVtYmVy
LgogICB2b2lkIHNldF9zaG91bGRfcnVuKGJvb2wgc2hvdWxkKSB7IHNob3VsZF9ydW5fID0gc2hv
dWxkOyB9CiAKLSAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBk
ZWxldGUgdGhlIFRlc3RJbmZvIHVwb24KLSAgLy8gZGVzdHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNl
IG9iamVjdC4KKyAgLy8gQWRkcyBhIFRlc3RJbmZvIHRvIHRoaXMgdGVzdCBzdWl0ZS4gIFdpbGwg
ZGVsZXRlIHRoZSBUZXN0SW5mbyB1cG9uCisgIC8vIGRlc3RydWN0aW9uIG9mIHRoZSBUZXN0U3Vp
dGUgb2JqZWN0LgogICB2b2lkIEFkZFRlc3RJbmZvKFRlc3RJbmZvICogdGVzdF9pbmZvKTsKIAot
ICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgor
ICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4K
ICAgdm9pZCBDbGVhclJlc3VsdCgpOwogCi0gIC8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwg
dGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSAgc3RhdGljIHZvaWQgQ2xlYXJUZXN0Q2Fz
ZVJlc3VsdChUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAgdGVzdF9jYXNlLT5DbGVhclJlc3Vs
dCgpOworICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGluIHRoZSBnaXZlbiB0
ZXN0IHN1aXRlLgorICBzdGF0aWMgdm9pZCBDbGVhclRlc3RTdWl0ZVJlc3VsdChUZXN0U3VpdGUq
IHRlc3Rfc3VpdGUpIHsKKyAgICB0ZXN0X3N1aXRlLT5DbGVhclJlc3VsdCgpOwogICB9CiAKLSAg
Ly8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENhc2UuCisgIC8vIFJ1bnMgZXZlcnkgdGVz
dCBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgdm9pZCBSdW4oKTsKIAotICAvLyBSdW5zIFNldFVwVGVz
dENhc2UoKSBmb3IgdGhpcyBUZXN0Q2FzZS4gIFRoaXMgd3JhcHBlciBpcyBuZWVkZWQKLSAgLy8g
Zm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGZyb20gU2V0VXBUZXN0Q2FzZSgpLgotICB2
b2lkIFJ1blNldFVwVGVzdENhc2UoKSB7ICgqc2V0X3VwX3RjXykoKTsgfQorICAvLyBTa2lwcyB0
aGUgZXhlY3V0aW9uIG9mIHRlc3RzIHVuZGVyIHRoaXMgVGVzdFN1aXRlCisgIHZvaWQgU2tpcCgp
OwogCi0gIC8vIFJ1bnMgVGVhckRvd25UZXN0Q2FzZSgpIGZvciB0aGlzIFRlc3RDYXNlLiAgVGhp
cyB3cmFwcGVyIGlzCi0gIC8vIG5lZWRlZCBmb3IgY2F0Y2hpbmcgZXhjZXB0aW9ucyB0aHJvd24g
ZnJvbSBUZWFyRG93blRlc3RDYXNlKCkuCi0gIHZvaWQgUnVuVGVhckRvd25UZXN0Q2FzZSgpIHsg
KCp0ZWFyX2Rvd25fdGNfKSgpOyB9CisgIC8vIFJ1bnMgU2V0VXBUZXN0U3VpdGUoKSBmb3IgdGhp
cyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMgbmVlZGVkCisgIC8vIGZvciBjYXRjaGluZyBl
eGNlcHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdFN1aXRlKCkuCisgIHZvaWQgUnVuU2V0VXBU
ZXN0U3VpdGUoKSB7CisgICAgaWYgKHNldF91cF90Y18gIT0gbnVsbHB0cikgeworICAgICAgKCpz
ZXRfdXBfdGNfKSgpOworICAgIH0KKyAgfQorCisgIC8vIFJ1bnMgVGVhckRvd25UZXN0U3VpdGUo
KSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMKKyAgLy8gbmVlZGVkIGZvciBj
YXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFRlYXJEb3duVGVzdFN1aXRlKCkuCisgIHZv
aWQgUnVuVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgaWYgKHRlYXJfZG93bl90Y18gIT0gbnVs
bHB0cikgeworICAgICAgKCp0ZWFyX2Rvd25fdGNfKSgpOworICAgIH0KKyAgfQogCi0gIC8vIFJl
dHVybnMgdHJ1ZSBpZmYgdGVzdCBwYXNzZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0ZXN0IHBhc3NlZC4KICAgc3RhdGljIGJvb2wgVGVzdFBhc3NlZChjb25zdCBUZXN0SW5m
byogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+c2hvdWxkX3J1bigpICYmIHRl
c3RfaW5mby0+cmVzdWx0KCktPlBhc3NlZCgpOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3Qgc2tp
cHBlZC4KKyAgc3RhdGljIGJvb2wgVGVzdFNraXBwZWQoY29uc3QgVGVzdEluZm8qIHRlc3RfaW5m
bykgeworICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAmJiB0ZXN0X2luZm8tPnJl
c3VsdCgpLT5Ta2lwcGVkKCk7CisgIH0KKworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGVzdCBmYWlsZWQuCiAgIHN0YXRpYyBib29sIFRlc3RGYWlsZWQoY29uc3QgVGVzdEluZm8q
IHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAmJiB0ZXN0
X2luZm8tPnJlc3VsdCgpLT5GYWlsZWQoKTsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIHRlc3QgaXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTAotICAv
LyByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBpcyBk
aXNhYmxlZCBhbmQgd2lsbCBiZSByZXBvcnRlZCBpbgorICAvLyB0aGUgWE1MIHJlcG9ydC4KICAg
c3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGVEaXNhYmxlZChjb25zdCBUZXN0SW5mbyogdGVzdF9p
bmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+aXNfcmVwb3J0YWJsZSgpICYmIHRlc3RfaW5m
by0+aXNfZGlzYWJsZWRfOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0ZXN0IGlzIGRp
c2FibGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGVzdCBpcyBkaXNhYmxl
ZC4KICAgc3RhdGljIGJvb2wgVGVzdERpc2FibGVkKGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8p
IHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19kaXNhYmxlZF87CiAgIH0KIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoaXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0aGUgWE1MIHJlcG9ydC4KKyAg
Ly8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0
aGUgWE1MIHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGUoY29uc3QgVGVzdElu
Zm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3JlcG9ydGFibGUoKTsK
ICAgfQpAQCAtOTYyLDE3ICsxMDA5LDE3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdENhc2Ugewog
ICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKTsKICAgfQogCi0gIC8vIFNodWZmbGVz
IHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGlu
IHRoaXMgdGVzdCBzdWl0ZS4KICAgdm9pZCBTaHVmZmxlVGVzdHMoaW50ZXJuYWw6OlJhbmRvbSog
cmFuZG9tKTsKIAogICAvLyBSZXN0b3JlcyB0aGUgdGVzdCBvcmRlciB0byBiZWZvcmUgdGhlIGZp
cnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKIAotICAvLyBOYW1lIG9mIHRo
ZSB0ZXN0IGNhc2UuCisgIC8vIE5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUuCiAgIHN0ZDo6c3RyaW5n
IG5hbWVfOwogICAvLyBOYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSwgb3IgTlVMTCBpZiB0aGlz
IGlzIG5vdCBhIHR5cGVkIG9yIGEKICAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIGNv
bnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHR5cGVfcGFyYW1f
OworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgOjpzdGQ6OnN0cmluZz4gdHlwZV9wYXJh
bV87CiAgIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVy
LiAgSXQgb3ducyB0aGUKICAgLy8gZWxlbWVudHMgaW4gdGhlIHZlY3Rvci4KICAgc3RkOjp2ZWN0
b3I8VGVzdEluZm8qPiB0ZXN0X2luZm9fbGlzdF87CkBAIC05ODAsMjAgKzEwMjcsMjIgQEAgY2xh
c3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIHNodWZmbGluZyBhbmQgcmVzdG9yaW5nIHRo
ZSB0ZXN0IG9yZGVyLiAgVGhlIGktdGggZWxlbWVudCBpbiB0aGlzCiAgIC8vIHZlY3RvciBpcyB0
aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBpbiB0aGUgc2h1ZmZsZWQgdGVzdCBsaXN0LgogICBz
dGQ6OnZlY3RvcjxpbnQ+IHRlc3RfaW5kaWNlc187Ci0gIC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0
aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlLgotICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVu
YyBzZXRfdXBfdGNfOwotICAvLyBQb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRv
d24gdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3du
X3RjXzsKLSAgLy8gVHJ1ZSBpZmYgYW55IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2Ugc2hvdWxkIHJ1
bi4KKyAgLy8gUG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1
aXRlLgorICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90Y187CisgIC8vIFBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZS4KKyAg
aW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGNfOworICAvLyBUcnVl
IGlmIGFuZCBvbmx5IGlmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBzdWl0ZSBzaG91bGQgcnVuLgog
ICBib29sIHNob3VsZF9ydW5fOworICAvLyBUaGUgc3RhcnQgdGltZSwgaW4gbWlsbGlzZWNvbmRz
IHNpbmNlIFVOSVggRXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFydF90aW1lc3RhbXBfOwogICAv
LyBFbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWlsbGlzIGVsYXBzZWRf
dGltZV87Ci0gIC8vIEhvbGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0
aW9uIG9mIFNldFVwVGVzdENhc2UgYW5kCi0gIC8vIFRlYXJEb3duVGVzdENhc2UuCisgIC8vIEhv
bGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIFNldFVwVGVz
dFN1aXRlIGFuZAorICAvLyBUZWFyRG93blRlc3RTdWl0ZS4KICAgVGVzdFJlc3VsdCBhZF9ob2Nf
dGVzdF9yZXN1bHRfOwogCi0gIC8vIFdlIGRpc2FsbG93IGNvcHlpbmcgVGVzdENhc2VzLgotICBH
VEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RDYXNlKTsKKyAgLy8gV2UgZGlzYWxs
b3cgY29weWluZyBUZXN0U3VpdGVzLgorICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFRlc3RTdWl0ZSk7CiB9OwogCiAvLyBBbiBFbnZpcm9ubWVudCBvYmplY3QgaXMgY2FwYWJsZSBv
ZiBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYW4KQEAgLTEwMjQsNyArMTA3Myw3IEBAIGNs
YXNzIEVudmlyb25tZW50IHsKICAgLy8gSWYgeW91IHNlZSBhbiBlcnJvciBhYm91dCBvdmVycmlk
aW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gb3IKICAgLy8gYWJvdXQgaXQgYmVpbmcgcHJpdmF0
ZSwgeW91IGhhdmUgbWlzLXNwZWxsZWQgU2V0VXAoKSBhcyBTZXR1cCgpLgogICBzdHJ1Y3QgU2V0
dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAge307Ci0gIHZpcnR1YWwgU2V0dXBfc2hvdWxkX2Jl
X3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4gTlVMTDsgfQorICB2aXJ0dWFsIFNldHVw
X3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIH07
CiAKICNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMTA2MCw4ICsxMTA5LDEzIEBAIGNsYXNz
IFRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gRmlyZWQgYWZ0ZXIgZW52aXJvbm1lbnQgc2V0LXVw
IGZvciBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBlbmRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZp
cm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSA9IDA7CiAKLSAgLy8g
RmlyZWQgYmVmb3JlIHRoZSB0ZXN0IGNhc2Ugc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpID0gMDsKKyAgLy8gRmlyZWQgYmVm
b3JlIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0cy4KKyAgdmlydHVhbCB2b2lkIE9uVGVzdFN1aXRlU3Rh
cnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykge30KKworICAvLyAgTGVnYWN5IEFQ
SSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29u
c3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHt9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBGaXJlZCBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRz
LgogICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykg
PSAwOwpAQCAtMTA3NCw4ICsxMTI4LDEzIEBAIGNsYXNzIFRlc3RFdmVudExpc3RlbmVyIHsKICAg
Ly8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgZW5kcy4KICAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChj
b25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7CiAKLSAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRl
c3QgY2FzZSBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlKSA9IDA7CisgIC8vIEZpcmVkIGFmdGVyIHRoZSB0ZXN0IHN1aXRlIGVuZHMu
CisgIHZpcnR1YWwgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9z
dWl0ZSovKSB7fQorCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFp
bGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1
YWwgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQor
I2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKICAgLy8gRmly
ZWQgYmVmb3JlIGVudmlyb25tZW50IHRlYXItZG93biBmb3IgZWFjaCBpdGVyYXRpb24gb2YgdGVz
dHMgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKQEAgLTEwOTgsMjEgKzExNTcsMzAgQEAgY2xh
c3MgVGVzdEV2ZW50TGlzdGVuZXIgewogLy8gYWJvdmUuCiBjbGFzcyBFbXB0eVRlc3RFdmVudExp
c3RlbmVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwg
dm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0
ZXJhdGlvbiovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9u
bWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVh
bCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykge30K
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyov
KSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3Vs
dCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29u
c3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNl
RW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25F
bnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7
fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVz
dCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgLyppdGVyYXRpb24qLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dy
YW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9CisgIHZvaWQgT25UZXN0UHJv
Z3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2
b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7
fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdFN1aXRl
U3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJpZGUge30KKy8vICBM
ZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29u
c3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZW5kaWYgIC8vICBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0
IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdFBhcnRS
ZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3VsdCovKSBvdmVycmlk
ZSB7fQorICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3Zl
cnJpZGUge30KKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9z
dWl0ZSovKSBvdmVycmlkZSB7fQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FT
RUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSov
KSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93
bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBP
blRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lk
IE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRl
IHt9CiB9OwogCiAvLyBUZXN0RXZlbnRMaXN0ZW5lcnMgbGV0cyB1c2VycyBhZGQgbGlzdGVuZXJz
IHRvIHRyYWNrIGV2ZW50cyBpbiBHb29nbGUgVGVzdC4KQEAgLTExNTIsNyArMTIyMCw3IEBAIGNs
YXNzIEdURVNUX0FQSV8gVGVzdEV2ZW50TGlzdGVuZXJzIHsKICAgfQogCiAgcHJpdmF0ZToKLSAg
ZnJpZW5kIGNsYXNzIFRlc3RDYXNlOworICBmcmllbmQgY2xhc3MgVGVzdFN1aXRlOwogICBmcmll
bmQgY2xhc3MgVGVzdEluZm87CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6RGVmYXVsdEdsb2Jh
bFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6Tm9FeGVj
RGVhdGhUZXN0OwpAQCAtMTE5Myw3ICsxMjYxLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0RXZl
bnRMaXN0ZW5lcnMgewogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RFdmVu
dExpc3RlbmVycyk7CiB9OwogCi0vLyBBIFVuaXRUZXN0IGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9m
IFRlc3RDYXNlcy4KKy8vIEEgVW5pdFRlc3QgY29uc2lzdHMgb2YgYSB2ZWN0b3Igb2YgVGVzdFN1
aXRlcy4KIC8vCiAvLyBUaGlzIGlzIGEgc2luZ2xldG9uIGNsYXNzLiAgVGhlIG9ubHkgaW5zdGFu
Y2Ugb2YgVW5pdFRlc3QgaXMKIC8vIGNyZWF0ZWQgd2hlbiBVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KSBpcyBmaXJzdCBjYWxsZWQuICBUaGlzCkBAIC0xMjIyLDEwICsxMjkwLDE0IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyB3YXMgZXhlY3V0ZWQuICBUaGUgVW5pdFRlc3Qgb2Jq
ZWN0IG93bnMgdGhlIHN0cmluZy4KICAgY29uc3QgY2hhciogb3JpZ2luYWxfd29ya2luZ19kaXIo
KSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9yIHRoZSB0ZXN0
IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKyAgLy8gUmV0dXJucyB0aGUgVGVzdFN1aXRlIG9i
amVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLAogICAvLyBvciBOVUxM
IGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAgY29uc3QgVGVzdENhc2UqIGN1cnJlbnRfdGVzdF9j
YXNlKCkgY29uc3QKLSAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7CisgIGNvbnN0
IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QgR1RFU1RfTE9DS19FWENMVURF
RF8obXV0ZXhfKTsKKworLy8gTGVnYWN5IEFQSSBpcyBzdGlsbCBhdmFpbGFibGUgYnV0IGRlcHJl
Y2F0ZWQKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIGNvbnN0
IFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2FzZSgpIGNvbnN0IEdURVNUX0xPQ0tfRVhDTFVERURf
KG11dGV4Xyk7CisjZW5kaWYKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9y
IHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKICAgLy8gb3IgTlVMTCBpZiBubyB0
ZXN0IGlzIHJ1bm5pbmcuCkBAIC0xMjM1LDI5ICsxMzA3LDQwIEBAIGNsYXNzIEdURVNUX0FQSV8g
VW5pdFRlc3QgewogICAvLyBSZXR1cm5zIHRoZSByYW5kb20gc2VlZCB1c2VkIGF0IHRoZSBzdGFy
dCBvZiB0aGUgY3VycmVudCB0ZXN0IHJ1bi4KICAgaW50IHJhbmRvbV9zZWVkKCkgY29uc3Q7CiAK
LSAgLy8gUmV0dXJucyB0aGUgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVz
ZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5zIHRoZSBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogICAvLyB2YWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBhbmQgcmVnaXN0ZXIgdGhlbS4KICAgLy8K
ICAgLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9H
UkFNLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmIHBhcmFtZXRl
cml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgIGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
UmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCiAgICAgICBHVEVTVF9MT0NL
X0VYQ0xVREVEXyhtdXRleF8pOwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVs
IHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0Owor
ICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KKyAgaW50IHN1
Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBj
b25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KKyAgaW50
IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7
CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCisgIGludCB0b3RhbF90
ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0
ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAog
ICAvLyB0aGF0IHNob3VsZCBydW4uCisgIGludCB0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNv
bnN0OworCisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgaW50IHN1Y2Nl
c3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIGludCBmYWlsZWRfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3Q7CisgIGludCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdDsKICAgaW50
IHRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdDsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNz
ZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMuCisgIGludCBza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogICBp
bnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApAQCAtMTI4MywxOSArMTM2NiwyNSBAQCBj
bGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgLy8gR2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBp
biBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdDsKIAot
ICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0
IGNhc2VzIHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5p
dCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAgLy8gcGFzc2VkKS4KICAgYm9v
bCBQYXNzZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3Qg
ZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotICAvLyBvciBzb21ldGhpbmcgb3V0
c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBzdWl0ZQorICAvLyBmYWls
ZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCiAgIGJvb2wgRmFp
bGVkKCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRo
ZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCisg
IC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRlc3Qgc3VpdGVzLiBp
IGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4g
SWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorICBjb25zdCBUZXN0U3Vp
dGUqIEdldFRlc3RTdWl0ZShpbnQgaSkgY29uc3Q7CisKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KICAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGludCBpKSBjb25zdDsK
KyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIFJl
dHVybnMgdGhlIFRlc3RSZXN1bHQgY29udGFpbmluZyBpbmZvcm1hdGlvbiBvbiB0ZXN0IGZhaWx1
cmVzIGFuZAotICAvLyBwcm9wZXJ0aWVzIGxvZ2dlZCBvdXRzaWRlIG9mIGluZGl2aWR1YWwgdGVz
dCBjYXNlcy4KKyAgLy8gcHJvcGVydGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRl
c3Qgc3VpdGVzLgogICBjb25zdCBUZXN0UmVzdWx0JiBhZF9ob2NfdGVzdF9yZXN1bHQoKSBjb25z
dDsKIAogICAvLyBSZXR1cm5zIHRoZSBsaXN0IG9mIGV2ZW50IGxpc3RlbmVycyB0aGF0IGNhbiBi
ZSB1c2VkIHRvIHRyYWNrIGV2ZW50cwpAQCAtMTMyNiwxNSArMTQxNSwxNSBAQCBjbGFzcyBHVEVT
VF9BUElfIFVuaXRUZXN0IHsKICAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7CiAK
ICAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVj
dCB3aGVuIGludm9rZWQgZnJvbQotICAvLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJyZW50IFRlc3RD
YXNlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKLSAgLy8gZnJvbSBTZXRVcFRl
c3RDYXNlIG9yIFRlYXJEb3duVGVzdENhc2UsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0
CisgIC8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3Rf
cmVzdWx0XyB3aGVuIGludm9rZWQKKyAgLy8gZnJvbSBTZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93
blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKICAgLy8gd2hlbiBpbnZv
a2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3BlcnR5
IHdpdGgKICAgLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2lsbCBiZSB1cGRhdGVkLgogICB2
b2lkIFJlY29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRo
ZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0g
IFRlc3RDYXNlKiBHZXRNdXRhYmxlVGVzdENhc2UoaW50IGkpOworICAvLyBHZXRzIHRoZSBpLXRo
IHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAw
IHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRo
YXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgVGVzdFN1aXRlKiBHZXRNdXRhYmxlVGVzdFN1aXRl
KGludCBpKTsKIAogICAvLyBBY2Nlc3NvcnMgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBvYmplY3Qu
CiAgIGludGVybmFsOjpVbml0VGVzdEltcGwqIGltcGwoKSB7IHJldHVybiBpbXBsXzsgfQpAQCAt
MTM0OCw2ICsxNDM3LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdCB7CiAgIGZyaWVuZCBj
bGFzcyBpbnRlcm5hbDo6U3RyZWFtaW5nTGlzdGVuZXJUZXN0OwogICBmcmllbmQgY2xhc3MgaW50
ZXJuYWw6OlVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0SGVscGVyOwogICBmcmllbmQgRW52aXJv
bm1lbnQqIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChFbnZpcm9ubWVudCogZW52KTsKKyAgZnJp
ZW5kIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaW50ZXJuYWw6OkdldElnbm9yZWRQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlcygpOwogICBmcmllbmQgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogaW50ZXJu
YWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBmcmllbmQgdm9pZCBpbnRlcm5hbDo6UmVwb3J0RmFp
bHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgVGVzdFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0
X3R5cGUsCkBAIC0xNDE5LDYgKzE1MDksMTAgQEAgR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVU
ZXN0KGludCogYXJnYywgY2hhcioqIGFyZ3YpOwogLy8gVU5JQ09ERSBtb2RlLgogR1RFU1RfQVBJ
XyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywgd2NoYXJfdCoqIGFyZ3YpOwogCisvLyBU
aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBs
YXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMgbm8gYXJnYy9hcmd2LgorR1RFU1RfQVBJXyB2b2lk
IEluaXRHb29nbGVUZXN0KCk7CisKIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAKIC8vIFNlcGFyYXRl
IHRoZSBlcnJvciBnZW5lcmF0aW5nIGNvZGUgZnJvbSB0aGUgY29kZSBwYXRoIHRvIHJlZHVjZSB0
aGUgc3RhY2sKQEAgLTE0MzUsNiArMTUyOSwxMyBAQCBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVy
RVFGYWlsdXJlKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAg
IGZhbHNlKTsKIH0KIAorLy8gVGhpcyBibG9jayBvZiBjb2RlIGRlZmluZXMgb3BlcmF0b3I9PS8h
PQorLy8gdG8gYmxvY2sgbGV4aWNhbCBzY29wZSBsb29rdXAuCisvLyBJdCBwcmV2ZW50cyB1c2lu
ZyBpbnZhbGlkIG9wZXJhdG9yPT0vIT0gZGVmaW5lZCBhdCBuYW1lc3BhY2Ugc2NvcGUuCitzdHJ1
Y3QgZmFrZXR5cGUge307CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGZha2V0eXBlLCBmYWtldHlw
ZSkgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShmYWtldHlwZSwgZmFr
ZXR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKIC8vIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtB
U1NFUlR8RVhQRUNUfV9FUS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiBB
c3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCkBA
IC0xNDQ4LDI2ICsxNTQ5LDE3IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJFUShjb25zdCBj
aGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgcmV0dXJuIENtcEhlbHBlckVRRmFpbHVyZShsaHNfZXhw
cmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKIH0KIAotLy8gV2l0aCB0aGlzIG92
ZXJsb2FkZWQgdmVyc2lvbiwgd2UgYWxsb3cgYW5vbnltb3VzIGVudW1zIHRvIGJlIHVzZWQKLS8v
IGluIHtBU1NFUlR8RVhQRUNUfV9FUSB3aGVuIGNvbXBpbGVkIHdpdGggZ2NjIDQsIGFzIGFub255
bW91cyBlbnVtcwotLy8gY2FuIGJlIGltcGxpY2l0bHkgY2FzdCB0byBCaWdnZXN0SW50LgotR1RF
U1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3QgY2hhciogbGhzX2V4cHJl
c3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QmlnZ2VzdEludCByaHMpOwotCi0vLyBUaGUgaGVscGVyIGNsYXNzIGZvciB7QVNTRVJUfEVYUEVD
VH1fRVEuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8vIGxoc19pc19udWxsX2xpdGVyYWwgaXMg
dHJ1ZSBpZmYgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgpCi0vLyBpcyBhIG51bGwg
cG9pbnRlciBsaXRlcmFsLiAgVGhlIGZvbGxvd2luZyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlz
Ci0vLyBmb3IgbGhzX2lzX251bGxfbGl0ZXJhbCBiZWluZyBmYWxzZS4KLXRlbXBsYXRlIDxib29s
IGxoc19pc19udWxsX2xpdGVyYWw+CiBjbGFzcyBFcUhlbHBlciB7CiAgcHVibGljOgogICAvLyBU
aGlzIHRlbXBsYXRpemVkIHZlcnNpb24gaXMgZm9yIHRoZSBnZW5lcmFsIGNhc2UuCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgIHRlbXBsYXRlIDwKKyAgICAgIHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwKKyAgICAgIC8vIERpc2FibGUgdGhpcyBvdmVybG9hZCBmb3Ig
Y2FzZXMgd2hlcmUgb25lIGFyZ3VtZW50IGlzIGEgcG9pbnRlcgorICAgICAgLy8gYW5kIHRoZSBv
dGhlciBpcyB0aGUgbnVsbCBwb2ludGVyIGNvbnN0YW50LgorICAgICAgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8IXN0ZDo6aXNfaW50ZWdyYWw8VDE+Ojp2YWx1ZSB8fAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIXN0ZDo6aXNfcG9pbnRlcjxUMj46OnZhbHVlPjo6dHlwZSogPSBudWxs
cHRyPgogICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBhcmUoY29uc3QgY2hhciogbGhzX2V4
cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
aHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQx
JiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNf
ZXhwcmVzc2lvbiwgY29uc3QgVDEmIGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFQyJiByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJlc3Np
b24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KQEAgLTE0ODQsNDkgKzE1NzYsMTUg
QEAgY2xhc3MgRXFIZWxwZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmln
Z2VzdEludCByaHMpIHsKICAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJlc3Npb24sIHJo
c19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KLX07Ci0KLS8vIFRoaXMgc3BlY2lhbGl6YXRp
b24gaXMgdXNlZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCB0byBBU1NFUlRfRVEoKQotLy8gaXMg
YSBudWxsIHBvaW50ZXIgbGl0ZXJhbCwgbGlrZSBOVUxMLCBmYWxzZSwgb3IgMC4KLXRlbXBsYXRl
IDw+Ci1jbGFzcyBFcUhlbHBlcjx0cnVlPiB7Ci0gcHVibGljOgotICAvLyBXZSBkZWZpbmUgdHdv
IG92ZXJsb2FkZWQgdmVyc2lvbnMgb2YgQ29tcGFyZSgpLiAgVGhlIGZpcnN0Ci0gIC8vIHZlcnNp
b24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgp
IGlzCi0gIC8vIE5PVCBhIHBvaW50ZXIsIGUuZy4gQVNTRVJUX0VRKDAsIEFuSW50RnVuY3Rpb24o
KSkgb3IKLSAgLy8gRVhQRUNUX0VRKGZhbHNlLCBhX2Jvb2wpLgotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyPgotICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENvbXBhcmUoCi0g
ICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgIGNvbnN0IGNoYXIqIHJoc19l
eHByZXNzaW9uLAotICAgICAgY29uc3QgVDEmIGxocywKLSAgICAgIGNvbnN0IFQyJiByaHMsCi0g
ICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgcHJldmVudHMgdGhpcyBvdmVybG9hZCBmcm9tIGJl
aW5nIGNvbnNpZGVyZWQgaWYgVDIKLSAgICAgIC8vIGlzIG5vdCBhIHBvaW50ZXIgdHlwZS4gIFdl
IG5lZWQgdGhpcyBiZWNhdXNlIEFTU0VSVF9FUShOVUxMLCBteV9wdHIpCi0gICAgICAvLyBleHBh
bmRzIHRvIENvbXBhcmUoIiIsICIiLCBOVUxMLCBteV9wdHIpLCB3aGljaCByZXF1aXJlcyBhIGNv
bnZlcnNpb24KLSAgICAgIC8vIHRvIG1hdGNoIHRoZSBTZWNyZXQqIGluIHRoZSBvdGhlciBvdmVy
bG9hZCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UKLSAgICAgIC8vIHRoaXMgdGVtcGxhdGUg
bWF0Y2ggYmV0dGVyLgotICAgICAgdHlwZW5hbWUgRW5hYmxlSWY8IWlzX3BvaW50ZXI8VDI+Ojp2
YWx1ZT46OnR5cGUqID0gMCkgewotICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lv
biwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAgfQogCi0gIC8vIFRoaXMgdmVyc2lvbiB3
aWxsIGJlIHBpY2tlZCB3aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gQVNTRVJUX0VRKCkgaXMg
YQotICAvLyBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUShOVUxMLCBhX3BvaW50ZXIpLgogICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21wYXJlKAotICAg
ICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICBjb25zdCBjaGFyKiByaHNfZXhw
cmVzc2lvbiwKLSAgICAgIC8vIFdlIHVzZWQgdG8gaGF2ZSBhIHNlY29uZCB0ZW1wbGF0ZSBwYXJh
bWV0ZXIgaW5zdGVhZCBvZiBTZWNyZXQqLiAgVGhhdAotICAgICAgLy8gdGVtcGxhdGUgcGFyYW1l
dGVyIHdvdWxkIGRlZHVjZSB0byAnbG9uZycsIG1ha2luZyB0aGlzIGEgYmV0dGVyIG1hdGNoCi0g
ICAgICAvLyB0aGFuIHRoZSBmaXJzdCBvdmVybG9hZCBldmVuIHdpdGhvdXQgdGhlIGZpcnN0IG92
ZXJsb2FkJ3MgRW5hYmxlSWYuCi0gICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBnY2Mgd2l0aCAtV2Nv
bnZlcnNpb24tbnVsbCB3YXJucyB3aGVuICJwYXNzaW5nIE5VTEwgdG8KLSAgICAgIC8vIG5vbi1w
b2ludGVyIGFyZ3VtZW50IiAoZXZlbiBhIGRlZHVjZWQgaW50ZWdyYWwgYXJndW1lbnQpLCBzbyB0
aGUgb2xkCi0gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYXVzZWQgd2FybmluZ3MgaW4gdXNlciBj
b2RlLgotICAgICAgU2VjcmV0KiAvKiBsaHMgKE5VTEwpICovLAotICAgICAgVCogcmhzKSB7Cisg
ICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwgY29uc3QgY2hhciogcmhzX2V4cHJlc3Np
b24sCisgICAgICAvLyBIYW5kbGUgY2FzZXMgd2hlcmUgJzAnIGlzIHVzZWQgYXMgYSBudWxsIHBv
aW50ZXIgbGl0ZXJhbC4KKyAgICAgIHN0ZDo6bnVsbHB0cl90IC8qIGxocyAqLywgVCogcmhzKSB7
CiAgICAgLy8gV2UgYWxyZWFkeSBrbm93IHRoYXQgJ2xocycgaXMgYSBudWxsIHBvaW50ZXIuCi0g
ICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNzaW9uLCByaHNfZXhwcmVzc2lvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VCo+KE5VTEwpLCByaHMpOworICAgIHJl
dHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIHN0YXRpY19j
YXN0PFQqPihudWxscHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmhzKTsKICAgfQogfTsK
IApAQCAtMTU0NywxMSArMTYwNSw2IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJPcEZhaWx1
cmUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogLy8gQVNTRVJUXz8/IGFu
ZCBFWFBFQ1RfPz8uICBJdCBpcyBoZXJlIGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUKIC8v
IG9mIHNpbWlsYXIgY29kZS4KIC8vCi0vLyBGb3IgZWFjaCB0ZW1wbGF0aXplZCBoZWxwZXIgZnVu
Y3Rpb24sIHdlIGFsc28gZGVmaW5lIGFuIG92ZXJsb2FkZWQKLS8vIHZlcnNpb24gZm9yIEJpZ2dl
c3RJbnQgaW4gb3JkZXIgdG8gcmVkdWNlIGNvZGUgYmxvYXQgYW5kIGFsbG93Ci0vLyBhbm9ueW1v
dXMgZW51bXMgdG8gYmUgdXNlZCB3aXRoIHtBU1NFUlR8RVhQRUNUfV8/PyB3aGVuIGNvbXBpbGVk
Ci0vLyB3aXRoIGdjYyA0LgotLy8KIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9U
IFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KIAogI2RlZmluZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJf
KG9wX25hbWUsIG9wKVwKQEAgLTE1NjMsMjIgKzE2MTYsMjAgQEAgQXNzZXJ0aW9uUmVzdWx0IENt
cEhlbHBlciMjb3BfbmFtZShjb25zdCBjaGFyKiBleHByMSwgY29uc3QgY2hhciogZXhwcjIsIFwK
ICAgfSBlbHNlIHtcCiAgICAgcmV0dXJuIENtcEhlbHBlck9wRmFpbHVyZShleHByMSwgZXhwcjIs
IHZhbDEsIHZhbDIsICNvcCk7XAogICB9XAotfVwKLUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0
IENtcEhlbHBlciMjb3BfbmFtZShcCi0gICAgY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIq
IGV4cHIyLCBCaWdnZXN0SW50IHZhbDEsIEJpZ2dlc3RJbnQgdmFsMikKK30KIAogLy8gSU5URVJO
QUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgogCiAvLyBJ
bXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9ORQotR1RF
U1RfSU1QTF9DTVBfSEVMUEVSXyhORSwgIT0pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhORSwg
IT0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNU
fV9MRQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pOworR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMRSwgPD0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9MVAotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMVCwgPCk7CitHVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKExULCA8KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB7QVNTRVJUfEVYUEVDVH1fR0UKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KTsKK0dU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1
bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1QKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR1Qs
ID4pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPikKIAogI3VuZGVmIEdURVNUX0lNUExf
Q01QX0hFTFBFUl8KIApAQCAtMTc3NCwxMyArMTgyNSwxMyBAQCBjbGFzcyBHVEVTVF9BUElfIEFz
c2VydEhlbHBlciB7CiAvLyAgIEZvb1Rlc3QoKSB7CiAvLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJh
bSgpIGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB+Rm9vVGVzdCgpIHsKKy8vICAgfkZvb1Rl
c3QoKSBvdmVycmlkZSB7CiAvLyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJhbSgpIGhlcmUuCiAvLyAg
IH0KLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworLy8gICB2b2lkIFNldFVwKCkgb3ZlcnJp
ZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8gICB9Ci0vLyAgIHZp
cnR1YWwgdm9pZCBUZWFyRG93biB7CisvLyAgIHZvaWQgVGVhckRvd24gb3ZlcnJpZGUgewogLy8g
ICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgogLy8gICB9CiAvLyB9OwpAQCAtMTc4OSw3
ICsxODQwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRIZWxwZXIgewogLy8gICBGb28gZm9v
OwogLy8gICBBU1NFUlRfVFJVRShmb28uRG9lc0JhcihHZXRQYXJhbSgpKSk7CiAvLyB9Ci0vLyBJ
TlNUQU5USUFURV9URVNUX0NBU0VfUChPbmVUb1RlblJhbmdlLCBGb29UZXN0LCA6OnRlc3Rpbmc6
OlJhbmdlKDEsIDEwKSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoT25lVG9UZW5SYW5n
ZSwgRm9vVGVzdCwgOjp0ZXN0aW5nOjpSYW5nZSgxLCAxMCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KIGNsYXNzIFdpdGhQYXJhbUludGVyZmFjZSB7CkBAIC0xNzk4LDEyICsxODQ5LDkgQEAg
Y2xhc3MgV2l0aFBhcmFtSW50ZXJmYWNlIHsKICAgdmlydHVhbCB+V2l0aFBhcmFtSW50ZXJmYWNl
KCkge30KIAogICAvLyBUaGUgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWUuIElzIGFsc28gYXZhaWxh
YmxlIGluIHRoZSB0ZXN0IGZpeHR1cmUncwotICAvLyBjb25zdHJ1Y3Rvci4gVGhpcyBtZW1iZXIg
ZnVuY3Rpb24gaXMgbm9uLXN0YXRpYywgZXZlbiB0aG91Z2ggaXQgb25seQotICAvLyByZWZlcmVu
Y2VzIHN0YXRpYyBkYXRhLCB0byByZWR1Y2UgdGhlIG9wcG9ydHVuaXR5IGZvciBpbmNvcnJlY3Qg
dXNlcwotICAvLyBsaWtlIHdyaXRpbmcgJ1dpdGhQYXJhbUludGVyZmFjZTxib29sPjo6R2V0UGFy
YW0oKScgZm9yIGEgdGVzdCB0aGF0Ci0gIC8vIHVzZXMgYSBmaXh0dXJlIHdob3NlIHBhcmFtZXRl
ciB0eXBlIGlzIGludC4KLSAgY29uc3QgUGFyYW1UeXBlJiBHZXRQYXJhbSgpIGNvbnN0IHsKLSAg
ICBHVEVTVF9DSEVDS18ocGFyYW1ldGVyXyAhPSBOVUxMKQorICAvLyBjb25zdHJ1Y3Rvci4KKyAg
c3RhdGljIGNvbnN0IFBhcmFtVHlwZSYgR2V0UGFyYW0oKSB7CisgICAgR1RFU1RfQ0hFQ0tfKHBh
cmFtZXRlcl8gIT0gbnVsbHB0cikKICAgICAgICAgPDwgIkdldFBhcmFtKCkgY2FuIG9ubHkgYmUg
Y2FsbGVkIGluc2lkZSBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdCAiCiAgICAgICAgIDw8ICIt
LSBkaWQgeW91IGludGVuZCB0byB3cml0ZSBURVNUX1AgaW5zdGVhZCBvZiBURVNUX0Y/IjsKICAg
ICByZXR1cm4gKnBhcmFtZXRlcl87CkBAIC0xODI0LDcgKzE4NzIsNyBAQCBjbGFzcyBXaXRoUGFy
YW1JbnRlcmZhY2UgewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jb25zdCBUKiBXaXRo
UGFyYW1JbnRlcmZhY2U8VD46OnBhcmFtZXRlcl8gPSBOVUxMOworY29uc3QgVCogV2l0aFBhcmFt
SW50ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gbnVsbHB0cjsKIAogLy8gTW9zdCB2YWx1ZS1wYXJh
bWV0ZXJpemVkIGNsYXNzZXMgY2FuIGlnbm9yZSB0aGUgZXhpc3RlbmNlIG9mCiAvLyBXaXRoUGFy
YW1JbnRlcmZhY2UsIGFuZCBjYW4ganVzdCBpbmhlcml0IGZyb20gOjp0ZXN0aW5nOjpUZXN0V2l0
aFBhcmFtLgpAQCAtMTgzNSw2ICsxODgzLDExIEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJs
aWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAKIC8vIE1hY3JvcyBmb3Ig
aW5kaWNhdGluZyBzdWNjZXNzL2ZhaWx1cmUgaW4gdGVzdCBjb2RlLgogCisvLyBTa2lwcyB0ZXN0
IGluIHJ1bnRpbWUuCisvLyBTa2lwcGluZyB0ZXN0IGFib3J0cyBjdXJyZW50IGZ1bmN0aW9uLgor
Ly8gU2tpcHBlZCB0ZXN0cyBhcmUgbmVpdGhlciBzdWNjZXNzZnVsIG5vciBmYWlsZWQuCisjZGVm
aW5lIEdURVNUX1NLSVAoKSBHVEVTVF9TS0lQXygiIikKKwogLy8gQUREX0ZBSUxVUkUgdW5jb25k
aXRpb25hbGx5IGFkZHMgYSBmYWlsdXJlIHRvIHRoZSBjdXJyZW50IHRlc3QuCiAvLyBTVUNDRUVE
IGdlbmVyYXRlcyBhIHN1Y2Nlc3MgLSBpdCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgbWFrZSB0aGUK
IC8vIGN1cnJlbnQgdGVzdCBzdWNjZXNzZnVsLCBhcyBhIHRlc3QgaXMgb25seSBzdWNjZXNzZnVs
IHdoZW4gaXQgaGFzCkBAIC0xODY0LDYgKzE5MTcsMTEgQEAgY2xhc3MgVGVzdFdpdGhQYXJhbSA6
IHB1YmxpYyBUZXN0LCBwdWJsaWMgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+IHsKIC8vIEdlbmVyYXRl
cyBhIGZhdGFsIGZhaWx1cmUgd2l0aCBhIGdlbmVyaWMgbWVzc2FnZS4KICNkZWZpbmUgR1RFU1Rf
RkFJTCgpIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKCJGYWlsZWQiKQogCisvLyBMaWtlIEdURVNUX0ZB
SUwoKSwgYnV0IGF0IHRoZSBnaXZlbiBzb3VyY2UgZmlsZSBsb2NhdGlvbi4KKyNkZWZpbmUgR1RF
U1RfRkFJTF9BVChmaWxlLCBsaW5lKSAgICAgICAgIFwKKyAgR1RFU1RfTUVTU0FHRV9BVF8oZmls
ZSwgbGluZSwgIkZhaWxlZCIsIFwKKyAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpUZXN0
UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkKKwogLy8gRGVmaW5lIHRoaXMgbWFjcm8gdG8gMSB0
byBvbWl0IHRoZSBkZWZpbml0aW9uIG9mIEZBSUwoKSwgd2hpY2ggaXMgYQogLy8gZ2VuZXJpYyBu
YW1lIGFuZCBjbGFzaGVzIHdpdGggc29tZSBvdGhlciBsaWJyYXJpZXMuCiAjaWYgIUdURVNUX0RP
TlRfREVGSU5FX0ZBSUwKQEAgLTE5NjQsOSArMjAyMiw3IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0g
OiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAvLyAgIEFTU0VS
VF9HVChyZWNvcmRzLnNpemUoKSwgMCkgPDwgIlRoZXJlIGlzIG5vIHJlY29yZCBsZWZ0LiI7CiAK
ICNkZWZpbmUgRVhQRUNUX0VRKHZhbDEsIHZhbDIpIFwKLSAgRVhQRUNUX1BSRURfRk9STUFUMig6
OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAgIEVxSGVscGVyPEdU
RVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAgICAgICAgICAgICAg
ICAgICAgdmFsMSwgdmFsMikKKyAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVy
bmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUgRVhQRUNUX05FKHZh
bDEsIHZhbDIpIFwKICAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpD
bXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgRVhQRUNUX0xFKHZhbDEsIHZhbDIpIFwK
QEAgLTE5NzksOSArMjAzNSw3IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwg
cHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0
ZXN0aW5nOjppbnRlcm5hbDo6Q21wSGVscGVyR1QsIHZhbDEsIHZhbDIpCiAKICNkZWZpbmUgR1RF
U1RfQVNTRVJUX0VRKHZhbDEsIHZhbDIpIFwKLSAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rp
bmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAgICAgICAgIEVxSGVscGVyPEdURVNUX0lT
X05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBcCi0gICAgICAgICAgICAgICAgICAgICAg
dmFsMSwgdmFsMikKKyAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpF
cUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1RfQVNTRVJUX05FKHZh
bDEsIHZhbDIpIFwKICAgQVNTRVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpD
bXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUgR1RFU1RfQVNTRVJUX0xFKHZhbDEsIHZh
bDIpIFwKQEAgLTIxNzIsMTIgKzIyMjYsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFNjb3BlZFRyYWNl
IHsKICAgICBQdXNoVHJhY2UoZmlsZSwgbGluZSwgbWVzc2FnZSA/IG1lc3NhZ2UgOiAiKG51bGwp
Iik7CiAgIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0gIFNjb3BlZFRyYWNlKGNv
bnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCA6OnN0cmluZyYgbWVzc2FnZSkgewotICAg
IFB1c2hUcmFjZShmaWxlLCBsaW5lLCBtZXNzYWdlKTsKLSAgfQotI2VuZGlmCi0KICAgU2NvcGVk
VHJhY2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlKSB7CiAgICAgUHVzaFRyYWNlKGZpbGUsIGxpbmUsIG1lc3NhZ2UpOwogICB9CkBAIC0yMjE1
LDEwICsyMjYzLDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRUcmFjZSB7CiAgIDo6dGVzdGlu
Zzo6U2NvcGVkVHJhY2UgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF90cmFjZV8sIF9fTElORV9f
KShcCiAgICAgX19GSUxFX18sIF9fTElORV9fLCAobWVzc2FnZSkpCiAKLQogLy8gQ29tcGlsZS10
aW1lIGFzc2VydGlvbiBmb3IgdHlwZSBlcXVhbGl0eS4KLS8vIFN0YXRpY0Fzc2VydFR5cGVFcTx0
eXBlMSwgdHlwZTI+KCkgY29tcGlsZXMgaWZmIHR5cGUxIGFuZCB0eXBlMiBhcmUKLS8vIHRoZSBz
YW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCisvLyBT
dGF0aWNBc3NlcnRUeXBlRXE8dHlwZTEsIHR5cGUyPigpIGNvbXBpbGVzIGlmIGFuZCBvbmx5IGlm
IHR5cGUxIGFuZCB0eXBlMgorLy8gYXJlIHRoZSBzYW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0
dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCiAvLwogLy8gSW5zdGVhZCBvZiBtYWtpbmcgU3RhdGlj
QXNzZXJ0VHlwZUVxIGEgY2xhc3MgdGVtcGxhdGUsIHdlIG1ha2UgaXQgYQogLy8gZnVuY3Rpb24g
dGVtcGxhdGUgdGhhdCBpbnZva2VzIGEgaGVscGVyIGNsYXNzIHRlbXBsYXRlLiAgVGhpcwpAQCAt
MjI0NywxOCArMjI5NCwxOCBAQCBjbGFzcyBHVEVTVF9BUElfIFNjb3BlZFRyYWNlIHsKIC8vCiAv
LyB0byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMj4KLWJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewotICAodm9pZClpbnRlcm5hbDo6
U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQxLCBUMj4oKTsKK2NvbnN0ZXhwciBib29sIFN0YXRp
Y0Fzc2VydFR5cGVFcSgpIG5vZXhjZXB0IHsKKyAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8
VDEsIFQyPjo6dmFsdWUsICJUMSBhbmQgVDIgYXJlIG5vdCB0aGUgc2FtZSB0eXBlIik7CiAgIHJl
dHVybiB0cnVlOwogfQogCiAvLyBEZWZpbmVzIGEgdGVzdC4KIC8vCi0vLyBUaGUgZmlyc3QgcGFy
YW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UsIGFuZCB0aGUgc2Vjb25kCi0vLyBw
YXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IGNhc2UuCisv
LyBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlLCBhbmQg
dGhlIHNlY29uZAorLy8gcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHdpdGhpbiB0
aGUgdGVzdCBzdWl0ZS4KIC8vCi0vLyBUaGUgY29udmVudGlvbiBpcyB0byBlbmQgdGhlIHRlc3Qg
Y2FzZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCi0vLyBleGFtcGxlLCBhIHRlc3QgY2FzZSBmb3Ig
dGhlIEZvbyBjbGFzcyBjYW4gYmUgbmFtZWQgRm9vVGVzdC4KKy8vIFRoZSBjb252ZW50aW9uIGlz
IHRvIGVuZCB0aGUgdGVzdCBzdWl0ZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCisvLyBleGFtcGxl
LCBhIHRlc3Qgc3VpdGUgZm9yIHRoZSBGb28gY2xhc3MgY2FuIGJlIG5hbWVkIEZvb1Rlc3QuCiAv
LwogLy8gVGVzdCBjb2RlIHNob3VsZCBhcHBlYXIgYmV0d2VlbiBicmFjZXMgYWZ0ZXIgYW4gaW52
b2NhdGlvbiBvZgogLy8gdGhpcyBtYWNyby4gIEV4YW1wbGU6CkBAIC0yMjc3LDI4ICsyMzI0LDI4
IEBAIGJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewogLy8gY29kZS4gIEdldFRlc3RUeXBlSWQo
KSBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUKIC8vIHZhbHVlLCBhcyBp
dCBhbHdheXMgY2FsbHMgR2V0VHlwZUlkPD4oKSBmcm9tIHRoZSBHb29nbGUgVGVzdAogLy8gZnJh
bWV3b3JrLgotI2RlZmluZSBHVEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpXAot
ICBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBcCi0gICAgICAgICAgICAg
IDo6dGVzdGluZzo6VGVzdCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJZCgpKQor
I2RlZmluZSBHVEVTVF9URVNUKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAg
ICBcCisgIEdURVNUX1RFU1RfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lLCA6OnRlc3Rpbmc6
OlRlc3QsIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJ
ZCgpKQogCiAvLyBEZWZpbmUgdGhpcyBtYWNybyB0byAxIHRvIG9taXQgdGhlIGRlZmluaXRpb24g
b2YgVEVTVCgpLCB3aGljaAogLy8gaXMgYSBnZW5lcmljIG5hbWUgYW5kIGNsYXNoZXMgd2l0aCBz
b21lIG90aGVyIGxpYnJhcmllcy4KICNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfVEVTVAotIyBkZWZp
bmUgVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBHVEVTVF9URVNUKHRlc3RfY2FzZV9u
YW1lLCB0ZXN0X25hbWUpCisjZGVmaW5lIFRFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUp
IEdURVNUX1RFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpCiAjZW5kaWYKIAogLy8gRGVm
aW5lcyBhIHRlc3QgdGhhdCB1c2VzIGEgdGVzdCBmaXh0dXJlLgogLy8KIC8vIFRoZSBmaXJzdCBw
YXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcywgd2hpY2gKLS8v
IGFsc28gZG91YmxlcyBhcyB0aGUgdGVzdCBjYXNlIG5hbWUuICBUaGUgc2Vjb25kIHBhcmFtZXRl
ciBpcyB0aGUKLS8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IGNhc2UuCisvLyBh
bHNvIGRvdWJsZXMgYXMgdGhlIHRlc3Qgc3VpdGUgbmFtZS4gIFRoZSBzZWNvbmQgcGFyYW1ldGVy
IGlzIHRoZQorLy8gbmFtZSBvZiB0aGUgdGVzdCB3aXRoaW4gdGhlIHRlc3Qgc3VpdGUuCiAvLwog
Ly8gQSB0ZXN0IGZpeHR1cmUgY2xhc3MgbXVzdCBiZSBkZWNsYXJlZCBlYXJsaWVyLiAgVGhlIHVz
ZXIgc2hvdWxkIHB1dAogLy8gdGhlIHRlc3QgY29kZSBiZXR3ZWVuIGJyYWNlcyBhZnRlciB1c2lu
ZyB0aGlzIG1hY3JvLiAgRXhhbXBsZToKIC8vCiAvLyAgIGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7CiAvLyAgICBwcm90ZWN0ZWQ6Ci0vLyAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkgeyBiXy5BZGRFbGVtZW50KDMpOyB9CisvLyAgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsgYl8uQWRkRWxlbWVudCgzKTsgfQogLy8KIC8vICAgICBGb28gYV87CiAvLyAgICAgRm9vIGJf
OwpAQCAtMjMxMiwxMCArMjM1OSwxMyBAQCBib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIHsKIC8v
ICAgICBFWFBFQ1RfRVEoYV8uc2l6ZSgpLCAwKTsKIC8vICAgICBFWFBFQ1RfRVEoYl8uc2l6ZSgp
LCAxKTsKIC8vICAgfQotCisvLworLy8gR09PR0xFVEVTVF9DTTAwMTEgRE8gTk9UIERFTEVURQor
I2lmICFHVEVTVF9ET05UX0RFRklORV9URVNUCiAjZGVmaW5lIFRFU1RfRih0ZXN0X2ZpeHR1cmUs
IHRlc3RfbmFtZSlcCiAgIEdURVNUX1RFU1RfKHRlc3RfZml4dHVyZSwgdGVzdF9uYW1lLCB0ZXN0
X2ZpeHR1cmUsIFwKICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VHlwZUlk
PHRlc3RfZml4dHVyZT4oKSkKKyNlbmRpZiAgLy8gIUdURVNUX0RPTlRfREVGSU5FX1RFU1QKIAog
Ly8gUmV0dXJucyBhIHBhdGggdG8gdGVtcG9yYXJ5IGRpcmVjdG9yeS4KIC8vIFRyaWVzIHRvIGRl
dGVybWluZSBhbiBhcHByb3ByaWF0ZSBkaXJlY3RvcnkgZm9yIHRoZSBwbGF0Zm9ybS4KQEAgLTIz
MjUsNiArMjM3NSw4NiBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIFRlbXBEaXIoKTsKICMgIHBy
YWdtYSB3YXJuaW5nKHBvcCkKICNlbmRpZgogCisvLyBEeW5hbWljYWxseSByZWdpc3RlcnMgYSB0
ZXN0IHdpdGggdGhlIGZyYW1ld29yay4KKy8vCisvLyBUaGlzIGlzIGFuIGFkdmFuY2VkIEFQSSBv
bmx5IHRvIGJlIHVzZWQgd2hlbiB0aGUgYFRFU1RgIG1hY3JvcyBhcmUKKy8vIGluc3VmZmljaWVu
dC4gVGhlIG1hY3JvcyBzaG91bGQgYmUgcHJlZmVycmVkIHdoZW4gcG9zc2libGUsIGFzIHRoZXkg
YXZvaWQKKy8vIG1vc3Qgb2YgdGhlIGNvbXBsZXhpdHkgb2YgY2FsbGluZyB0aGlzIGZ1bmN0aW9u
LgorLy8KKy8vIFRoZSBgZmFjdG9yeWAgYXJndW1lbnQgaXMgYSBmYWN0b3J5IGNhbGxhYmxlICht
b3ZlLWNvbnN0cnVjdGlibGUpIG9iamVjdCBvcgorLy8gZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNy
ZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRlc3Qgb2JqZWN0LiBJdAorLy8gaGFuZGxlcyBv
d25lcnNoaXAgdG8gdGhlIGNhbGxlci4gVGhlIHNpZ25hdHVyZSBvZiB0aGUgY2FsbGFibGUgaXMK
Ky8vIGBGaXh0dXJlKigpYCwgd2hlcmUgYEZpeHR1cmVgIGlzIHRoZSB0ZXN0IGZpeHR1cmUgY2xh
c3MgZm9yIHRoZSB0ZXN0LiBBbGwKKy8vIHRlc3RzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2FtZSBg
dGVzdF9zdWl0ZV9uYW1lYCBtdXN0IHJldHVybiB0aGUgc2FtZQorLy8gZml4dHVyZSB0eXBlLiBU
aGlzIGlzIGNoZWNrZWQgYXQgcnVudGltZS4KKy8vCisvLyBUaGUgZnJhbWV3b3JrIHdpbGwgaW5m
ZXIgdGhlIGZpeHR1cmUgY2xhc3MgZnJvbSB0aGUgZmFjdG9yeSBhbmQgd2lsbCBjYWxsCisvLyB0
aGUgYFNldFVwVGVzdFN1aXRlYCBhbmQgYFRlYXJEb3duVGVzdFN1aXRlYCBmb3IgaXQuCisvLwor
Ly8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGBSVU5fQUxMX1RFU1RTKClgIGlzIGludm9rZWQsIG90
aGVyd2lzZSBiZWhhdmlvciBpcworLy8gdW5kZWZpbmVkLgorLy8KKy8vIFVzZSBjYXNlIGV4YW1w
bGU6CisvLworLy8gY2xhc3MgTXlGaXh0dXJlIDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Cisv
LyAgcHVibGljOgorLy8gICAvLyBBbGwgb2YgdGhlc2Ugb3B0aW9uYWwsIGp1c3QgbGlrZSBpbiBy
ZWd1bGFyIG1hY3JvIHVzYWdlLgorLy8gICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0ZSgpIHsg
Li4uIH0KKy8vICAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7IC4uLiB9CisvLyAg
IHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IC4uLiB9CisvLyAgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7IC4uLiB9CisvLyB9OworLy8KKy8vIGNsYXNzIE15VGVzdCA6IHB1YmxpYyBNeUZpeHR1
cmUgeworLy8gIHB1YmxpYzoKKy8vICAgZXhwbGljaXQgTXlUZXN0KGludCBkYXRhKSA6IGRhdGFf
KGRhdGEpIHt9CisvLyAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7IC4uLiB9CisvLworLy8g
IHByaXZhdGU6CisvLyAgIGludCBkYXRhXzsKKy8vIH07CisvLworLy8gdm9pZCBSZWdpc3Rlck15
VGVzdHMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgdmFsdWVzKSB7CisvLyAgIGZvciAoaW50IHYg
OiB2YWx1ZXMpIHsKKy8vICAgICA6OnRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKy8vICAgICAgICAg
Ik15Rml4dHVyZSIsICgiVGVzdCIgKyBzdGQ6OnRvX3N0cmluZyh2KSkuY19zdHIoKSwgbnVsbHB0
ciwKKy8vICAgICAgICAgc3RkOjp0b19zdHJpbmcodikuY19zdHIoKSwKKy8vICAgICAgICAgX19G
SUxFX18sIF9fTElORV9fLAorLy8gICAgICAgICAvLyBJbXBvcnRhbnQgdG8gdXNlIHRoZSBmaXh0
dXJlIHR5cGUgYXMgdGhlIHJldHVybiB0eXBlIGhlcmUuCisvLyAgICAgICAgIFs9XSgpIC0+IE15
Rml4dHVyZSogeyByZXR1cm4gbmV3IE15VGVzdCh2KTsgfSk7CisvLyAgIH0KKy8vIH0KKy8vIC4u
LgorLy8gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisvLyAgIHN0ZDo6dmVjdG9y
PGludD4gdmFsdWVzX3RvX3Rlc3QgPSBMb2FkVmFsdWVzRnJvbUNvbmZpZygpOworLy8gICBSZWdp
c3Rlck15VGVzdHModmFsdWVzX3RvX3Rlc3QpOworLy8gICAuLi4KKy8vICAgcmV0dXJuIFJVTl9B
TExfVEVTVFMoKTsKKy8vIH0KKy8vCit0ZW1wbGF0ZSA8aW50Ji4uLiBFeHBsaWNpdFBhcmFtZXRl
ckJhcnJpZXIsIHR5cGVuYW1lIEZhY3Rvcnk+CitUZXN0SW5mbyogUmVnaXN0ZXJUZXN0KGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogdGVzdF9uYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLCBjb25zdCBjaGFyKiB2YWx1ZV9w
YXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
IEZhY3RvcnkgZmFjdG9yeSkgeworICB1c2luZyBUZXN0VCA9IHR5cGVuYW1lIHN0ZDo6cmVtb3Zl
X3BvaW50ZXI8ZGVjbHR5cGUoZmFjdG9yeSgpKT46OnR5cGU7CisKKyAgY2xhc3MgRmFjdG9yeUlt
cGwgOiBwdWJsaWMgaW50ZXJuYWw6OlRlc3RGYWN0b3J5QmFzZSB7CisgICBwdWJsaWM6CisgICAg
ZXhwbGljaXQgRmFjdG9yeUltcGwoRmFjdG9yeSBmKSA6IGZhY3RvcnlfKHN0ZDo6bW92ZShmKSkg
e30KKyAgICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFjdG9yeV8oKTsg
fQorCisgICBwcml2YXRlOgorICAgIEZhY3RvcnkgZmFjdG9yeV87CisgIH07CisKKyAgcmV0dXJu
IGludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKKyAgICAgIHRlc3Rfc3VpdGVfbmFt
ZSwgdGVzdF9uYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9wYXJhbSwKKyAgICAgIGludGVybmFsOjpD
b2RlTG9jYXRpb24oZmlsZSwgbGluZSksIGludGVybmFsOjpHZXRUeXBlSWQ8VGVzdFQ+KCksCisg
ICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46OkdldFNldFVwQ2FzZU9yU3Vp
dGUoZmlsZSwgbGluZSksCisgICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46
OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICBuZXcgRmFjdG9yeUlt
cGx7c3RkOjptb3ZlKGZhY3RvcnkpfSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAK
IC8vIFVzZSB0aGlzIGZ1bmN0aW9uIGluIG1haW4oKSB0byBydW4gYWxsIHRlc3RzLiAgSXQgcmV0
dXJucyAwIGlmIGFsbApAQCAtMjM0Myw0ICsyNDczLDQgQEAgaW5saW5lIGludCBSVU5fQUxMX1RF
U1RTKCkgewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiAK
LSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXworI2VuZGlmICAvLyBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oCmluZGV4IDBjMTEwNWNi
OGViMmVmN2MyNjE2ZTY3ZmY1NTU2YWFiMjlmZjJkMWQuLjUwMjlhOWJiMDJhZGE3NDBmOWVlM2Vl
ZTZhNTI4MWQ2ZTk1OTNhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaApAQCAtMjcsMTUgKzI3LDE0IEBACiAv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLS8vIFRoaXMgZmlsZSBpcyBBVVRPTUFU
SUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE4IGJ5IGNvbW1hbmQKKy8vIFRoaXMgZmlsZSBp
cyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE5IGJ5IGNvbW1hbmQKIC8vICdn
ZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKIC8vCiAvLyBJ
bXBsZW1lbnRzIGEgZmFtaWx5IG9mIGdlbmVyaWMgcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3Mu
Ci0KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSRURfSU1QTF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUkVEX0lNUExfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKQEAgLTY3LDYgKzY2
LDggQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogLy8gV2UgYWxzbyBkZWZpbmUgdGhlIEVYUEVDVF8q
IHZhcmlhdGlvbnMuCiAvLwogLy8gRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgcHJlZGljYXRlcyB3
aG9zZSBhcml0eSBpcyBhdCBtb3N0IDUuCisvLyBQbGVhc2UgZW1haWwgZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkCisvLyBzdXBwb3J0IGZvciBoaWdoZXIg
YXJpdGllcy4KIAogLy8gR1RFU1RfQVNTRVJUXyBpcyB0aGUgYmFzaWMgc3RhdGVtZW50IHRvIHdo
aWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHJlZHVjZS4gIERvbid0
IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KQEAgLTg5LDkgKzkwLDEwIEBAIEFzc2VydGlvblJlc3Vs
dCBBc3NlcnRQcmVkMUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHYxKSB7CiAgIGlmIChwcmVkKHYxKSkgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8
IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMSA8PCAi
KSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MTsKKyAgcmV0dXJuIEFzc2Vy
dGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwg
ZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpOwog
fQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9Q
UkVEX0ZPUk1BVDEuCkBAIC0xMzMsMTEgKzEzNSwxMiBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0
UHJlZDJIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFQyJiB2MikgewogICBpZiAocHJlZCh2MSwgdjIpKSByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJl
ZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiKSBldmFsdWF0ZXMgdG8gZmFs
c2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwg
IiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJc
biIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MjsKKyAgcmV0dXJuIEFzc2VydGlvbkZh
aWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUy
CisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwg
IlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlBy
aW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKTsKIH0KIAogLy8gSW50ZXJuYWwgbWFj
cm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQyLgpAQCAtMTg0
LDEzICsxODcsMTMgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQzSGVscGVyKGNvbnN0IGNo
YXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
MyYgdjMpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MykpIHJldHVybiBBc3NlcnRpb25TdWNjZXNz
KCk7CiAKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKSA8PCBwcmVkX3RleHQgPDwgIigiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEgPDwgIiwgIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGUyIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBlMyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MzsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAg
PDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIsICIgPDwgZTMKKyAg
ICAgICAgIDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCisgICAgICAgICA8PCAiXG4i
CisgICAgICAgICA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRU
b1N0cmluZyh2MSkgPDwgIlxuIgorICAgICAgICAgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjIpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUzIDw8
ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYzKTsKIH0KIAog
Ly8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9G
T1JNQVQzLgpAQCAtMjQyLDE1ICsyNDUsMTQgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQ0
SGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUNCYgdjQpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MywgdjQpKSByZXR1
cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwg
cHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIs
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IGU0IDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwgd2hlcmUiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYxCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IHYyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMyA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHYzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxu
IiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHY0OworICByZXR1cm4gQXNzZXJ0aW9uRmFp
bHVyZSgpCisgICAgICAgICA8PCBwcmVkX3RleHQgPDwgIigiIDw8IGUxIDw8ICIsICIgPDwgZTIg
PDwgIiwgIiA8PCBlMyA8PCAiLCAiIDw8IGU0CisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8g
ZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAg
ICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5n
KHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVz
dGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAgICAgICAgPDwgZTQgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjQpOwogfQogCiAvLyBJbnRl
cm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDQu
CkBAIC0zMDcsMTcgKzMwOSwxNSBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0UHJlZDVIZWxwZXIo
Y29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFQ1JiB2NSkgewogICBpZiAocHJlZCh2MSwgdjIsIHYzLCB2NCwgdjUpKSByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJl
ZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IGU0IDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlNSA8PCAiKSBl
dmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTQgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2NAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTUgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NTsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUo
KQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIs
ICIgPDwgZTMgPDwgIiwgIiA8PCBlNAorICAgICAgICAgPDwgIiwgIiA8PCBlNSA8PCAiKSBldmFs
dWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEg
PDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJc
biIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmlu
dFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAi
IDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgorICAgICAgICAgPDwgZTQg
PDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjQpIDw8ICJc
biIKKyAgICAgICAgIDw8IGU1IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmlu
dFRvU3RyaW5nKHY1KTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7
RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQ1LgpAQCAtMzU2LDQgKzM1Niw0IEBAIEFzc2VydGlv
blJlc3VsdCBBc3NlcnRQcmVkNUhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAKIH0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUkVEX0lNUExfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSRURfSU1QTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdF9wcm9kLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0X3Byb2QuaAppbmRleCBlNjUxNjcxZWJkZTg1OWZjNzMxYjU0NTliZGMwNjYxYWYw
NzU3Y2I2Li4zOGI5ZDg1YTUxZWZiNzQ3ZmViOTY5YTVjZGNhZGIxYzI3YjJmODdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaApA
QCAtMzEsOCArMzEsOCBAQAogLy8gR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1l
d29yayBkZWZpbml0aW9ucyB1c2VmdWwgaW4gcHJvZHVjdGlvbiBjb2RlLgogLy8gR09PR0xFVEVT
VF9DTTAwMDMgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfUFJPRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KKyNp
Zm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KKyNkZWZpbmUgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8KIAogLy8gV2hlbiB5b3UgbmVlZCB0
byB0ZXN0IHRoZSBwcml2YXRlIG9yIHByb3RlY3RlZCBtZW1iZXJzIG9mIGEgY2xhc3MsCiAvLyB1
c2UgdGhlIEZSSUVORF9URVNUIG1hY3JvIHRvIGRlY2xhcmUgeW91ciB0ZXN0cyBhcyBmcmllbmRz
IG9mIHRoZQpAQCAtNTgsNCArNTgsNCBAQAogI2RlZmluZSBGUklFTkRfVEVTVCh0ZXN0X2Nhc2Vf
bmFtZSwgdGVzdF9uYW1lKVwKIGZyaWVuZCBjbGFzcyB0ZXN0X2Nhc2VfbmFtZSMjXyMjdGVzdF9u
YW1lIyNfVGVzdAogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9I
XworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9IXwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9j
dXN0b20vZ3Rlc3QtcG9ydC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCmluZGV4IGNkODVkOTU2ZDJkYzE3YmQ1Mzdm
MjE0MjM0MGJkZjU4ZjQ3MzcxMTguLmRiMDI4ODFjMGM4OTlhNzRmMDc5ODU5ODBhZmEyZTZlOThj
Njg4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgKQEAgLTMxLDcgKzMx
LDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BPUlRf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVT
VF9QT1JUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNU
T01fR1RFU1RfUE9SVF9IXwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfQ1VTVE9NX0dURVNUX1BPUlRfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVy
cy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0
b20vZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCBlYjQ0NjdhYmNhYmVhN2ZmNzZmOWQyZDUyNzM4N2M5
ZGE4MTAxNDhiLi5iOTQ5NWQ4Mzc4M2JjZGUwNTBmNWZkYzE3NzAzNmFhNDg4MGIzZmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1
c3RvbS9ndGVzdC1wcmludGVycy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXByaW50ZXJzLmgKQEAgLTM2LDcgKzM2LDcg
QEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lm
bmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklO
VEVSU19IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9N
X0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9DVVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXworI2VuZGlmICAvLyBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BSSU5URVJTX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9jdXN0b20vZ3Rlc3QuaAppbmRleCA0YzhlMDdiZTIzZjFmZDYxNTlhZmVmMmVlZmQ3
NDQ0MDM0ZGQwNjA0Li5hZmFhZjE3YmEyOGUzYmViNzkwYTEyNjM4Y2ZmZWM4ZGJhNTY5OGVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgKQEAgLTMxLDcgKzMxLDcgQEAKIC8vCiAvLyAqKiBD
dXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KIAotI2VuZGlmICAvLyBHVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2VuZGlmICAvLyBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRo
LXRlc3QtaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCmluZGV4IDBhOWI0MmM4YTU3MmE4
NzE5NGM2NTEwOTAzZTIxZWEyMjYwZmFjNWMuLjQ5MDI5NmRmYWQyZDAwYzQ4MTFlYjQ5MTI2YWIy
NjU2OTYxYzc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1p
bnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTQgQEAKIC8vIGRlYXRoIHRlc3RzLiAgVGhleSBhcmUg
c3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2RlZmlu
ZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRF
Uk5BTF9IXwogCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5hbWVzcGFjZSBpbnRlcm5h
bCB7CkBAIC03OCw3ICs4MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gRGVhdGhUZXN0IHsKICAgLy8g
YXJndW1lbnQgaXMgc2V0LiAgSWYgdGhlIGRlYXRoIHRlc3Qgc2hvdWxkIGJlIHNraXBwZWQsIHRo
ZSBwb2ludGVyCiAgIC8vIGlzIHNldCB0byBOVUxMOyBvdGhlcndpc2UsIGl0IGlzIHNldCB0byB0
aGUgYWRkcmVzcyBvZiBhIG5ldyBjb25jcmV0ZQogICAvLyBEZWF0aFRlc3Qgb2JqZWN0IHRoYXQg
Y29udHJvbHMgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3VycmVudCB0ZXN0LgotICBzdGF0aWMgYm9v
bCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCisgIHN0YXRp
YyBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpz
dHJpbmcmPiBtYXRjaGVyLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwg
aW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwogICBEZWF0aFRlc3QoKTsKICAgdmlydHVhbCB+
RGVhdGhUZXN0KCkgeyB9CkBAIC0xNDQsMjEgKzE0Niw0NCBAQCBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiBjbGFzcyBEZWF0aFRlc3RGYWN0b3J5IHsKICBwdWJs
aWM6CiAgIHZpcnR1YWwgfkRlYXRoVGVzdEZhY3RvcnkoKSB7IH0KLSAgdmlydHVhbCBib29sIENy
ZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKLSAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkg
PSAwOworICB2aXJ0dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwgY29u
c3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZSwgRGVhdGhUZXN0
KiogdGVzdCkgPSAwOwogfTsKIAogLy8gQSBjb25jcmV0ZSBEZWF0aFRlc3RGYWN0b3J5IGltcGxl
bWVudGF0aW9uIGZvciBub3JtYWwgdXNlLgogY2xhc3MgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnkg
OiBwdWJsaWMgRGVhdGhUZXN0RmFjdG9yeSB7CiAgcHVibGljOgotICB2aXJ0dWFsIGJvb2wgQ3Jl
YXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAotICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KTsK
KyAgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIERlYXRoVGVzdCoqIHRlc3QpIG92ZXJyaWRlOwogfTsKIAogLy8gUmV0dXJucyB0cnVlIGlm
IGV4aXRfc3RhdHVzIGRlc2NyaWJlcyBhIHByb2Nlc3MgdGhhdCB3YXMgdGVybWluYXRlZAogLy8g
YnkgYSBzaWduYWwsIG9yIGV4aXRlZCBub3JtYWxseSB3aXRoIGEgbm9uemVybyBleGl0IGNvZGUu
CiBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50IGV4aXRfc3RhdHVzKTsK
IAorLy8gQSBzdHJpbmcgcGFzc2VkIHRvIEVYUEVDVF9ERUFUSCAoZXRjLikgaXMgY2F1Z2h0IGJ5
IG9uZSBvZiB0aGVzZSBvdmVybG9hZHMKKy8vIGFuZCBpbnRlcnByZXRlZCBhcyBhIHJlZ2V4IChy
YXRoZXIgdGhhbiBhbiBFcSBtYXRjaGVyKSBmb3IgbGVnYWN5CisvLyBjb21wYXRpYmlsaXR5Lgor
aW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVy
KAorICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KSB7CisgIHJldHVybiBDb250YWlu
c1JlZ2V4KHJlZ2V4LnBhdHRlcm4oKSk7Cit9CitpbmxpbmUgTWF0Y2hlcjxjb25zdCA6OnN0ZDo6
c3RyaW5nJj4gTWFrZURlYXRoVGVzdE1hdGNoZXIoY29uc3QgY2hhciogcmVnZXgpIHsKKyAgcmV0
dXJuIENvbnRhaW5zUmVnZXgocmVnZXgpOworfQoraW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6
OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKAorICAgIGNvbnN0IDo6c3RkOjpzdHJpbmcm
IHJlZ2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4KHJlZ2V4KTsKK30KKworLy8gSWYgYSBN
YXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBpcyBwYXNzZWQgdG8gRVhQRUNUX0RFQVRIIChl
dGMuKSwgaXQncworLy8gdXNlZCBkaXJlY3RseS4KK2lubGluZSBNYXRjaGVyPGNvbnN0IDo6c3Rk
OjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0Y2hlcigKKyAgICBNYXRjaGVyPGNvbnN0IDo6c3Rk
OjpzdHJpbmcmPiBtYXRjaGVyKSB7CisgIHJldHVybiBtYXRjaGVyOworfQorCiAvLyBUcmFwcyBD
KysgZXhjZXB0aW9ucyBlc2NhcGluZyBzdGF0ZW1lbnQgYW5kIHJlcG9ydHMgdGhlbSBhcyB0ZXN0
CiAvLyBmYWlsdXJlcy4gTm90ZSB0aGF0IHRyYXBwaW5nIFNFSCBleGNlcHRpb25zIGlzIG5vdCBp
bXBsZW1lbnRlZCBoZXJlLgogIyBpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMTg2LDM4ICsy
MTEsMzggQEAgR1RFU1RfQVBJXyBib29sIEV4aXRlZFVuc3VjY2Vzc2Z1bGx5KGludCBleGl0X3N0
YXR1cyk7CiAKIC8vIFRoaXMgbWFjcm8gaXMgZm9yIGltcGxlbWVudGluZyBBU1NFUlRfREVBVEgq
LCBFWFBFQ1RfREVBVEgqLAogLy8gQVNTRVJUX0VYSVQqLCBhbmQgRVhQRUNUX0VYSVQqLgotIyBk
ZWZpbmUgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4LCBmYWls
KSBcCi0gIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfIFwKLSAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBcCi0gICAgY29uc3QgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6UkUmIGd0ZXN0X3JlZ2V4ID0gKHJlZ2V4KTsgXAotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6
OkRlYXRoVGVzdCogZ3Rlc3RfZHQ7IFwKLSAgICBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkRl
YXRoVGVzdDo6Q3JlYXRlKCNzdGF0ZW1lbnQsICZndGVzdF9yZWdleCwgXAotICAgICAgICBfX0ZJ
TEVfXywgX19MSU5FX18sICZndGVzdF9kdCkpIHsgXAotICAgICAgZ290byBHVEVTVF9DT05DQVRf
VE9LRU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gICAgaWYgKGd0ZXN0
X2R0ICE9IE5VTEwpIHsgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6c2NvcGVkX3B0cjwg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0PiBcCi0gICAgICAgICAgZ3Rlc3RfZHRfcHRy
KGd0ZXN0X2R0KTsgXAotICAgICAgc3dpdGNoIChndGVzdF9kdC0+QXNzdW1lUm9sZSgpKSB7IFwK
LSAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6Ok9WRVJTRUVfVEVT
VDogXAotICAgICAgICAgIGlmICghZ3Rlc3RfZHQtPlBhc3NlZChwcmVkaWNhdGUoZ3Rlc3RfZHQt
PldhaXQoKSkpKSB7IFwKLSAgICAgICAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVz
dF9sYWJlbF8sIF9fTElORV9fKTsgXAotICAgICAgICAgIH0gXAotICAgICAgICAgIGJyZWFrOyBc
Ci0gICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpFWEVDVVRFX1RF
U1Q6IHsgXAotICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJu
U2VudGluZWwgXAotICAgICAgICAgICAgICBndGVzdF9zZW50aW5lbChndGVzdF9kdCk7IFwKLSAg
ICAgICAgICBHVEVTVF9FWEVDVVRFX0RFQVRIX1RFU1RfU1RBVEVNRU5UXyhzdGF0ZW1lbnQsIGd0
ZXN0X2R0KTsgXAotICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rpbmc6OmludGVybmFs
OjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyBcCi0gICAgICAgICAgYnJlYWs7IFwKLSAg
ICAgICAgfSBcCi0gICAgICAgIGRlZmF1bHQ6IFwKLSAgICAgICAgICBicmVhazsgXAotICAgICAg
fSBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9s
YWJlbF8sIF9fTElORV9fKTogXAotICAgICAgZmFpbCg6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0
aFRlc3Q6Okxhc3RNZXNzYWdlKCkpCisjZGVmaW5lIEdURVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVu
dCwgcHJlZGljYXRlLCByZWdleF9vcl9tYXRjaGVyLCBmYWlsKSAgICAgICAgXAorICBHVEVTVF9B
TUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6RGVhdGhUZXN0KiBndGVzdF9kdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIGlmICghOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpDcmVhdGUo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICNzdGF0ZW1lbnQs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlRGVhdGhUZXN0TWF0Y2hlcihy
ZWdleF9vcl9tYXRjaGVyKSwgICAgICAgXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9f
LCAmZ3Rlc3RfZHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
IGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTsgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChndGVz
dF9kdCAhPSBudWxscHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgIHN0ZDo6dW5pcXVlX3B0cjwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
RGVhdGhUZXN0PiBndGVzdF9kdF9wdHIoZ3Rlc3RfZHQpOyBcCisgICAgICBzd2l0Y2ggKGd0ZXN0
X2R0LT5Bc3N1bWVSb2xlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6T1ZFUlNF
RV9URVNUOiAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBpZiAoIWd0ZXN0X2R0LT5Q
YXNzZWQocHJlZGljYXRlKGd0ZXN0X2R0LT5XYWl0KCkpKSkgeyAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVf
Xyk7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhU
ZXN0OjpFWEVDVVRFX1RFU1Q6IHsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJuU2VudGluZWwgZ3Rlc3Rfc2VudGluZWwo
ICAgICAgIFwKKyAgICAgICAgICAgICAgZ3Rlc3RfZHQpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgR1RFU1RfRVhFQ1VU
RV9ERUFUSF9URVNUX1NUQVRFTUVOVF8oc3RhdGVtZW50LCBndGVzdF9kdCk7ICAgICAgICAgICAg
XAorICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRl
c3Q6OlRFU1RfRElEX05PVF9ESUUpOyAgIFwKKyAgICAgICAgICBicmVhazsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBi
cmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgfSBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhn
dGVzdF9sYWJlbF8sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICA6IGZhaWwoOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpMYXN0TWVzc2Fn
ZSgpKQogLy8gVGhlIHN5bWJvbCAiZmFpbCIgaGVyZSBleHBhbmRzIHRvIHNvbWV0aGluZyBpbnRv
IHdoaWNoIGEgbWVzc2FnZQogLy8gY2FuIGJlIHN0cmVhbWVkLgogCkBAIC0yMjYsMTQgKzI1MSwx
MyBAQCBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNzZnVsbHkoaW50IGV4aXRfc3RhdHVz
KTsKIC8vIG11c3QgYWNjZXB0IGEgc3RyZWFtZWQgbWVzc2FnZSBldmVuIHRob3VnaCB0aGUgbWVz
c2FnZSBpcyBuZXZlciBwcmludGVkLgogLy8gVGhlIHJlZ2V4IG9iamVjdCBpcyBub3QgZXZhbHVh
dGVkLCBidXQgaXQgaXMgdXNlZCB0byBwcmV2ZW50ICJ1bnVzZWQiCiAvLyB3YXJuaW5ncyBhbmQg
dG8gYXZvaWQgYW4gZXhwcmVzc2lvbiB0aGF0IGRvZXNuJ3QgY29tcGlsZSBpbiBkZWJ1ZyBtb2Rl
LgotI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVtZW50LCByZWdleCkgICAg
ICAgICAgICAgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1
ZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgXAotICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hB
QkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAotICB9IGVsc2UgaWYgKCE6OnRl
c3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAgXAotICAgIGNvbnN0
IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFJiBndGVzdF9yZWdleCA9IChyZWdleCk7ICAgICAgXAot
ICAgIHN0YXRpY19jYXN0PHZvaWQ+KGd0ZXN0X3JlZ2V4KTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVt
ZW50LCByZWdleF9vcl9tYXRjaGVyKSAgICBcCisgIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NL
RVJfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEdU
RVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsg
ICBcCisgIH0gZWxzZSBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAg
ICAgICAgICAgICAgIFwKKyAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlRGVhdGhUZXN0TWF0
Y2hlcihyZWdleF9vcl9tYXRjaGVyKTsgXAorICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgOjp0ZXN0aW5nOjpNZXNz
YWdlKCkKIAogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBjb250ZW50cyBvZiB0
aGUKQEAgLTI3Nyw0ICszMDEsNCBAQCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50
ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCk7CiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8v
IG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LWZpbGVwYXRoLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2lu
dGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgKaW5kZXggYWUzOGQ5NWJmODQ0ZmE5ZGMyMTczOWNmODIx
Mjc2ZDViMzQxN2UzYS4uNGI1YWEzYjQ0MmRmMzFkNzY2MmM5Njk2Nzc5YTFlMTg2YWE0Mjc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC1maWxlcGF0aC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaApAQCAtMzcsOCArMzcsOCBAQAogCiAvLyBH
T09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2RlZmluZSBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KIAogI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgogCkBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgR1RF
U1RfQVBJXyBGaWxlUGF0aCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbik7CiAKLSAgLy8gUmV0dXJucyB0
cnVlIGlmZiB0aGUgcGF0aCBpcyAiIi4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBwYXRoIGlzICIiLgogICBib29sIElzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwYXRobmFt
ZV8uZW1wdHkoKTsgfQogCiAgIC8vIElmIGlucHV0IG5hbWUgaGFzIGEgdHJhaWxpbmcgc2VwYXJh
dG9yIGNoYXJhY3RlciwgcmVtb3ZlcyBpdCBhbmQgcmV0dXJucwpAQCAtMjA4LDQgKzIwOCw0IEBA
IGNsYXNzIEdURVNUX0FQSV8gRmlsZVBhdGggewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5H
U19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwu
aAppbmRleCBiNzYyZjYxZmM1M2MzZGI5Y2ZiNzUzOTQwZDkxYjVkNTRhYjM2MzU3Li5mZjU1N2Q1
YTM3YjNhNzEyYWUzOWU0OGY3NGUyNDIzNzU4N2RlNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1p
bnRlcm5hbC5oCkBAIC0zNCw4ICszNCw4IEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5P
VCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0lO
VEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5U
RVJOQUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X0lOVEVSTkFMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9JTlRFUk5BTF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5o
IgogCkBAIC01MywxMSArNTMsMTMgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPGZs
b2F0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRl
IDxpb21hbmlwPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8
c2V0PgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgiCkBAIC03NywxMCAr
NzksMjAgQEAKICNkZWZpbmUgR1RFU1RfQ09OQ0FUX1RPS0VOX0lNUExfKGZvbywgYmFyKSBmb28g
IyMgYmFyCiAKIC8vIFN0cmluZ2lmaWVzIGl0cyBhcmd1bWVudC4KLSNkZWZpbmUgR1RFU1RfU1RS
SU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gV29yayBhcm91bmQgYSBidWcgaW4gdmlzdWFsIHN0dWRp
byB3aGljaCBkb2Vzbid0IGFjY2VwdCBjb2RlIGxpa2UgdGhpczoKKy8vCisvLyAgICNkZWZpbmUg
R1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gICAjZGVmaW5lIE1BQ1JPKGEsIGIsIGMp
IC4uLiBHVEVTVF9TVFJJTkdJRllfKGEpIC4uLgorLy8gICBNQUNSTygsIHgsIHkpCisvLworLy8g
Q29tcGxhaW5pbmcgYWJvdXQgdGhlIGFyZ3VtZW50IHRvIEdURVNUX1NUUklOR0lGWV8gYmVpbmcg
ZW1wdHkuCisvLyBUaGlzIGlzIGFsbG93ZWQgYnkgdGhlIHNwZWMuCisjZGVmaW5lIEdURVNUX1NU
UklOR0lGWV9IRUxQRVJfKG5hbWUsIC4uLikgI25hbWUKKyNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZ
XyguLi4pIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKF9fVkFfQVJHU19fLCApCiAKLWNsYXNzIFBy
b3RvY29sTWVzc2FnZTsKLW5hbWVzcGFjZSBwcm90bzIgeyBjbGFzcyBNZXNzYWdlOyB9CituYW1l
c3BhY2UgcHJvdG8yIHsKK2NsYXNzIE1lc3NhZ2VMaXRlOworfQogCiBuYW1lc3BhY2UgdGVzdGlu
ZyB7CiAKQEAgLTkxLDcgKzEwMyw3IEBAIGNsYXNzIE1lc3NhZ2U7ICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFJlcHJlc2VudHMgYSBmYWlsdXJlIG1lc3NhZ2UuCiBjbGFzcyBUZXN0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnRzIGEgdGVzdC4KIGNsYXNzIFRlc3RJ
bmZvOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZm9ybWF0aW9uIGFib3V0IGEgdGVzdC4K
IGNsYXNzIFRlc3RQYXJ0UmVzdWx0OyAgICAgICAgICAgICAgICAgIC8vIFJlc3VsdCBvZiBhIHRl
c3QgcGFydC4KLWNsYXNzIFVuaXRUZXN0OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgY29s
bGVjdGlvbiBvZiB0ZXN0IGNhc2VzLgorY2xhc3MgVW5pdFRlc3Q7ICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gQSBjb2xsZWN0aW9uIG9mIHRlc3Qgc3VpdGVzLgogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KIDo6c3RkOjpzdHJpbmcgUHJpbnRUb1N0cmluZyhjb25zdCBUJiB2YWx1ZSk7CkBAIC0x
MDYsMzQgKzExOCwyMiBAQCBjbGFzcyBVbml0VGVzdEltcGw7ICAgICAgICAgICAgICAgICAgICAv
LyBPcGFxdWUgaW1wbGVtZW50YXRpb24gb2YgVW5pdFRlc3QKIC8vIHN0YWNrIHRyYWNlLgogR1RF
U1RfQVBJXyBleHRlcm4gY29uc3QgY2hhciBrU3RhY2tUcmFjZU1hcmtlcltdOwogCi0vLyBUd28g
b3ZlcmxvYWRlZCBoZWxwZXJzIGZvciBjaGVja2luZyBhdCBjb21waWxlIHRpbWUgd2hldGhlciBh
bgotLy8gZXhwcmVzc2lvbiBpcyBhIG51bGwgcG9pbnRlciBsaXRlcmFsIChpLmUuIE5VTEwgb3Ig
YW55IDAtdmFsdWVkCi0vLyBjb21waWxlLXRpbWUgaW50ZWdyYWwgY29uc3RhbnQpLiAgVGhlaXIg
cmV0dXJuIHZhbHVlcyBoYXZlCi0vLyBkaWZmZXJlbnQgc2l6ZXMsIHNvIHdlIGNhbiB1c2Ugc2l6
ZW9mKCkgdG8gdGVzdCB3aGljaCB2ZXJzaW9uIGlzCi0vLyBwaWNrZWQgYnkgdGhlIGNvbXBpbGVy
LiAgVGhlc2UgaGVscGVycyBoYXZlIG5vIGltcGxlbWVudGF0aW9ucywgYXMKLS8vIHdlIG9ubHkg
bmVlZCB0aGVpciBzaWduYXR1cmVzLgotLy8KLS8vIEdpdmVuIElzTnVsbExpdGVyYWxIZWxwZXIo
eCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZpcnN0Ci0vLyB2ZXJzaW9uIGlmIHggY2Fu
IGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFNlY3JldCosIGFuZCBwaWNrIHRoZQotLy8gc2Vj
b25kIHZlcnNpb24gb3RoZXJ3aXNlLiAgU2luY2UgU2VjcmV0IGlzIGEgc2VjcmV0IGFuZCBpbmNv
bXBsZXRlCi0vLyB0eXBlLCB0aGUgb25seSBleHByZXNzaW9uIGEgdXNlciBjYW4gd3JpdGUgdGhh
dCBoYXMgdHlwZSBTZWNyZXQqIGlzCi0vLyBhIG51bGwgcG9pbnRlciBsaXRlcmFsLiAgVGhlcmVm
b3JlLCB3ZSBrbm93IHRoYXQgeCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0ZXJhbCBpZiBhbmQg
b25seSBpZiB0aGUgZmlyc3QgdmVyc2lvbiBpcyBwaWNrZWQgYnkgdGhlCi0vLyBjb21waWxlci4K
LWNoYXIgSXNOdWxsTGl0ZXJhbEhlbHBlcihTZWNyZXQqIHApOwotY2hhciAoJklzTnVsbExpdGVy
YWxIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotLy8gQSBjb21waWxlLXRpbWUgYm9vbCBj
b25zdGFudCB0aGF0IGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgeCBpcyBhCi0vLyBudWxsIHBvaW50
ZXIgbGl0ZXJhbCAoaS5lLiBOVUxMIG9yIGFueSAwLXZhbHVlZCBjb21waWxlLXRpbWUKLS8vIGlu
dGVncmFsIGNvbnN0YW50KS4KLSNpZmRlZiBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfCi0vLyBX
ZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJlIHRoZSBjb21waWxlciBkb2Vz
bid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBzaXMgKC4u
LikuCi0jIGRlZmluZSBHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHgpIGZhbHNlCi0jZWxzZQotIyBk
ZWZpbmUgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBcCi0gICAgKHNpemVvZig6OnRlc3Rpbmc6
OmludGVybmFsOjpJc051bGxMaXRlcmFsSGVscGVyKHgpKSA9PSAxKQotI2VuZGlmICAvLyBHVEVT
VF9FTExJUFNJU19ORUVEU19QT0RfCisvLyBBbiBJZ25vcmVkVmFsdWUgb2JqZWN0IGNhbiBiZSBp
bXBsaWNpdGx5IGNvbnN0cnVjdGVkIGZyb20gQU5ZIHZhbHVlLgorY2xhc3MgSWdub3JlZFZhbHVl
IHsKKyAgc3RydWN0IFNpbmsge307CisgcHVibGljOgorICAvLyBUaGlzIGNvbnN0cnVjdG9yIHRl
bXBsYXRlIGFsbG93cyBhbnkgdmFsdWUgdG8gYmUgaW1wbGljaXRseQorICAvLyBjb252ZXJ0ZWQg
dG8gSWdub3JlZFZhbHVlLiAgVGhlIG9iamVjdCBoYXMgbm8gZGF0YSBtZW1iZXIgYW5kCisgIC8v
IGRvZXNuJ3QgdHJ5IHRvIHJlbWVtYmVyIGFueXRoaW5nIGFib3V0IHRoZSBhcmd1bWVudC4gIFdl
CisgIC8vIGRlbGliZXJhdGVseSBvbWl0IHRoZSAnZXhwbGljaXQnIGtleXdvcmQgaW4gb3JkZXIg
dG8gYWxsb3cgdGhlCisgIC8vIGNvbnZlcnNpb24gdG8gYmUgaW1wbGljaXQuCisgIC8vIERpc2Fi
bGUgdGhlIGNvbnZlcnNpb24gaWYgVCBhbHJlYWR5IGhhcyBhIG1hZ2ljYWwgY29udmVyc2lvbiBv
cGVyYXRvci4KKyAgLy8gT3RoZXJ3aXNlIHdlIGdldCBhbWJpZ3VpdHkuCisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNf
Y29udmVydGlibGU8VCwgU2luaz46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50Pjo6dHlwZSA9IDA+CisgIElnbm9yZWRWYWx1ZShjb25zdCBUJiAvKiBpZ25v
cmVkICovKSB7fSAgLy8gTk9MSU5UKHJ1bnRpbWUvZXhwbGljaXQpCit9OwogCiAvLyBBcHBlbmRz
IHRoZSB1c2VyLXN1cHBsaWVkIG1lc3NhZ2UgdG8gdGhlIEdvb2dsZS1UZXN0LWdlbmVyYXRlZCBt
ZXNzYWdlLgogR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBBcHBlbmRVc2VyTWVzc2FnZSgKQEAgLTIw
MSw3ICsyMDEsNyBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIERpZmZTdHJpbmdzKGNvbnN0IHN0
ZDo6c3RyaW5nJiBsZWZ0LAogLy8gICBleHBlY3RlZF92YWx1ZTogICAgICAiNSIKIC8vICAgYWN0
dWFsX3ZhbHVlOiAgICAgICAgIjYiCiAvLwotLy8gVGhlIGlnbm9yaW5nX2Nhc2UgcGFyYW1ldGVy
IGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQorLy8gVGhlIGlnbm9yaW5nX2Nhc2UgcGFy
YW1ldGVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFzc2VydGlvbiBpcyBhCiAvLyAqX1NU
UkNBU0VFUSouICBXaGVuIGl0J3MgdHJ1ZSwgdGhlIHN0cmluZyAiIChpZ25vcmluZyBjYXNlKSIg
d2lsbAogLy8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVzc2FnZS4KIEdURVNUX0FQSV8gQXNzZXJ0
aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBleHBlY3RlZF9leHByZXNzaW9uLApAQCAt
Mjg3LDcgKzI4Nyw3IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnQgewogICAvLwogICAvLyBTZWUgdGhl
IGZvbGxvd2luZyBhcnRpY2xlIGZvciBtb3JlIGRldGFpbHMgb24gVUxQOgogICAvLyBodHRwOi8v
cmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2NvbXBhcmluZy1mbG9hdGluZy1w
b2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8KLSAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4VWxw
cyA9IDQ7CisgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrTWF4VWxwcyA9IDQ7CiAKICAgLy8gQ29u
c3RydWN0cyBhIEZsb2F0aW5nUG9pbnQgZnJvbSBhIHJhdyBmbG9hdGluZy1wb2ludCBudW1iZXIu
CiAgIC8vCkBAIC0zMzAsMTUgKzMzMCwxNSBAQCBjbGFzcyBGbG9hdGluZ1BvaW50IHsKICAgLy8g
UmV0dXJucyB0aGUgc2lnbiBiaXQgb2YgdGhpcyBudW1iZXIuCiAgIEJpdHMgc2lnbl9iaXQoKSBj
b25zdCB7IHJldHVybiBrU2lnbkJpdE1hc2sgJiB1Xy5iaXRzXzsgfQogCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhpcyBpcyBOQU4gKG5vdCBhIG51bWJlcikuCisgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGlzIGlzIE5BTiAobm90IGEgbnVtYmVyKS4KICAgYm9vbCBpc19uYW4o
KSBjb25zdCB7CiAgICAgLy8gSXQncyBhIE5BTiBpZiB0aGUgZXhwb25lbnQgYml0cyBhcmUgYWxs
IG9uZXMgYW5kIHRoZSBmcmFjdGlvbgogICAgIC8vIGJpdHMgYXJlIG5vdCBlbnRpcmVseSB6ZXJv
cy4KICAgICByZXR1cm4gKGV4cG9uZW50X2JpdHMoKSA9PSBrRXhwb25lbnRCaXRNYXNrKSAmJiAo
ZnJhY3Rpb25fYml0cygpICE9IDApOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlz
IG51bWJlciBpcyBhdCBtb3N0IGtNYXhVbHBzIFVMUCdzIGF3YXkgZnJvbQotICAvLyByaHMuICBJ
biBwYXJ0aWN1bGFyLCB0aGlzIGZ1bmN0aW9uOgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhpcyBudW1iZXIgaXMgYXQgbW9zdCBrTWF4VWxwcyBVTFAncyBhd2F5CisgIC8vIGZy
b20gcmhzLiAgSW4gcGFydGljdWxhciwgdGhpcyBmdW5jdGlvbjoKICAgLy8KICAgLy8gICAtIHJl
dHVybnMgZmFsc2UgaWYgZWl0aGVyIG51bWJlciBpcyAob3IgYm90aCBhcmUpIE5BTi4KICAgLy8g
ICAtIHRyZWF0cyByZWFsbHkgbGFyZ2UgbnVtYmVycyBhcyBhbG1vc3QgZXF1YWwgdG8gaW5maW5p
dHkuCkBAIC00MDksNyArNDA5LDcgQEAgdHlwZWRlZiBGbG9hdGluZ1BvaW50PGZsb2F0PiBGbG9h
dDsKIHR5cGVkZWYgRmxvYXRpbmdQb2ludDxkb3VibGU+IERvdWJsZTsKIAogLy8gSW4gb3JkZXIg
dG8gY2F0Y2ggdGhlIG1pc3Rha2Ugb2YgcHV0dGluZyB0ZXN0cyB0aGF0IHVzZSBkaWZmZXJlbnQK
LS8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSwgd2UgbmVlZCB0
byBhc3NpZ24KKy8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUs
IHdlIG5lZWQgdG8gYXNzaWduCiAvLyB1bmlxdWUgSURzIHRvIGZpeHR1cmUgY2xhc3NlcyBhbmQg
Y29tcGFyZSB0aGVtLiAgVGhlIFR5cGVJZCB0eXBlIGlzCiAvLyB1c2VkIHRvIGhvbGQgc3VjaCBJ
RHMuICBUaGUgdXNlciBzaG91bGQgdHJlYXQgVHlwZUlkIGFzIGFuIG9wYXF1ZQogLy8gdHlwZTog
dGhlIG9ubHkgb3BlcmF0aW9uIGFsbG93ZWQgb24gVHlwZUlkIHZhbHVlcyBpcyB0byBjb21wYXJl
CkBAIC00NjksNyArNDY5LDcgQEAgY2xhc3MgVGVzdEZhY3RvcnlCYXNlIHsKIHRlbXBsYXRlIDxj
bGFzcyBUZXN0Q2xhc3M+CiBjbGFzcyBUZXN0RmFjdG9yeUltcGwgOiBwdWJsaWMgVGVzdEZhY3Rv
cnlCYXNlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgVGVzdCogQ3JlYXRlVGVzdCgpIHsgcmV0dXJu
IG5ldyBUZXN0Q2xhc3M7IH0KKyAgVGVzdCogQ3JlYXRlVGVzdCgpIG92ZXJyaWRlIHsgcmV0dXJu
IG5ldyBUZXN0Q2xhc3M7IH0KIH07CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTCkBAIC00ODUsOSAr
NDg1LDkgQEAgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgSXNIUkVTVUxURmFpbHVyZShjb25z
dCBjaGFyKiBleHByLAogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKIAotLy8gVHlwZXMg
b2YgU2V0VXBUZXN0Q2FzZSgpIGFuZCBUZWFyRG93blRlc3RDYXNlKCkgZnVuY3Rpb25zLgotdHlw
ZWRlZiB2b2lkICgqU2V0VXBUZXN0Q2FzZUZ1bmMpKCk7Ci10eXBlZGVmIHZvaWQgKCpUZWFyRG93
blRlc3RDYXNlRnVuYykoKTsKKy8vIFR5cGVzIG9mIFNldFVwVGVzdFN1aXRlKCkgYW5kIFRlYXJE
b3duVGVzdFN1aXRlKCkgZnVuY3Rpb25zLgordXNpbmcgU2V0VXBUZXN0U3VpdGVGdW5jID0gdm9p
ZCAoKikoKTsKK3VzaW5nIFRlYXJEb3duVGVzdFN1aXRlRnVuYyA9IHZvaWQgKCopKCk7CiAKIHN0
cnVjdCBDb2RlTG9jYXRpb24gewogICBDb2RlTG9jYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGFf
ZmlsZSwgaW50IGFfbGluZSkKQEAgLTQ5Nyw1OCArNDk3LDExNiBAQCBzdHJ1Y3QgQ29kZUxvY2F0
aW9uIHsKICAgaW50IGxpbmU7CiB9OwogCisvLyAgSGVscGVyIHRvIGlkZW50aWZ5IHdoaWNoIHNl
dHVwIGZ1bmN0aW9uIGZvciBUZXN0Q2FzZSAvIFRlc3RTdWl0ZSB0byBjYWxsLgorLy8gIE9ubHkg
b25lIGZ1bmN0aW9uIGlzIGFsbG93ZWQsIGVpdGhlciBUZXN0Q2FzZSBvciBUZXN0U3V0ZSBidXQg
bm90IGJvdGguCisKKy8vIFV0aWxpdHkgZnVuY3Rpb25zIHRvIGhlbHAgU3VpdGVBcGlSZXNvbHZl
cgordXNpbmcgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgPSB2b2lkICgqKSgpOworCitpbmxp
bmUgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0Tm90RGVmYXVsdE9yTnVsbCgKKyAgICBT
ZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBhLCBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBk
ZWYpIHsKKyAgcmV0dXJuIGEgPT0gZGVmID8gbnVsbHB0ciA6IGE7Cit9CisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgorLy8gIE5vdGUgdGhhdCBTdWl0ZUFwaVJlc29sdmVyIGluaGVyaXRzIGZyb20g
VCBiZWNhdXNlCisvLyAgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RTdWl0ZSgpIGNvdWxk
IGJlIHByb3RlY3RlZC4gVGhzIHdheQorLy8gIFN1aXRlQXBpUmVzb2x2ZXIgY2FuIGFjY2VzcyB0
aGVtLgorc3RydWN0IFN1aXRlQXBpUmVzb2x2ZXIgOiBUIHsKKyAgLy8gdGVzdGluZzo6VGVzdCBp
cyBvbmx5IGZvcndhcmQgZGVjbGFyZWQgYXQgdGhpcyBwb2ludC4gU28gd2UgbWFrZSBpdCBhCisg
IC8vIGRlcGVuZGVuZCBjbGFzcyBmb3IgdGhlIGNvbXBpbGVyIHRvIGJlIE9LIHdpdGggaXQuCisg
IHVzaW5nIFRlc3QgPQorICAgICAgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzaXplb2YoVCkg
IT0gMCwgOjp0ZXN0aW5nOjpUZXN0LCB2b2lkPjo6dHlwZTsKKworICBzdGF0aWMgU2V0VXBUZWFy
RG93blN1aXRlRnVuY1R5cGUgR2V0U2V0VXBDYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBmaWxlbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9mcCA9CisgICAg
ICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlNldFVwVGVzdENhc2UsICZUZXN0OjpTZXRVcFRl
c3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X3N1aXRlX2ZwID0K
KyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6U2V0VXBUZXN0U3VpdGUsICZUZXN0OjpT
ZXRVcFRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2FzZV9mcCB8fCAhdGVz
dF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRlIGJvdGggU2V0VXBU
ZXN0U3VpdGUgYW5kIFNldFVwVGVzdENhc2UsIHBsZWFzZSAiCisgICAgICAgICAgICJtYWtlIHN1
cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCAiCisgICAgICAgIDw8IGZpbGVuYW1lIDw8
ICI6IiA8PCBsaW5lX251bTsKKworICAgIHJldHVybiB0ZXN0X2Nhc2VfZnAgIT0gbnVsbHB0ciA/
IHRlc3RfY2FzZV9mcCA6IHRlc3Rfc3VpdGVfZnA7CisjZWxzZQorICAgICh2b2lkKShmaWxlbmFt
ZSk7CisgICAgKHZvaWQpKGxpbmVfbnVtKTsKKyAgICByZXR1cm4gJlQ6OlNldFVwVGVzdFN1aXRl
OworI2VuZGlmCisgIH0KKworICBzdGF0aWMgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0
VGVhckRvd25DYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBmaWxlbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVfbnVt
KSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICAgIFNldFVw
VGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9mcCA9CisgICAgICAgIEdldE5vdERlZmF1
bHRPck51bGwoJlQ6OlRlYXJEb3duVGVzdENhc2UsICZUZXN0OjpUZWFyRG93blRlc3RDYXNlKTsK
KyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X3N1aXRlX2ZwID0KKyAgICAgICAg
R2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6VGVhckRvd25UZXN0U3VpdGUsICZUZXN0OjpUZWFyRG93
blRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18oIXRlc3RfY2FzZV9mcCB8fCAhdGVzdF9z
dWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5vdCBwcm92aWRlIGJvdGggVGVhckRvd25U
ZXN0U3VpdGUgYW5kIFRlYXJEb3duVGVzdENhc2UsIgorICAgICAgICAgICAiIHBsZWFzZSBtYWtl
IHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCIKKyAgICAgICAgPDwgZmlsZW5hbWUg
PDwgIjoiIDw8IGxpbmVfbnVtOworCisgICAgcmV0dXJuIHRlc3RfY2FzZV9mcCAhPSBudWxscHRy
ID8gdGVzdF9jYXNlX2ZwIDogdGVzdF9zdWl0ZV9mcDsKKyNlbHNlCisgICAgKHZvaWQpKGZpbGVu
YW1lKTsKKyAgICAodm9pZCkobGluZV9udW0pOworICAgIHJldHVybiAmVDo6VGVhckRvd25UZXN0
U3VpdGU7CisjZW5kaWYKKyAgfQorfTsKKwogLy8gQ3JlYXRlcyBhIG5ldyBUZXN0SW5mbyBvYmpl
Y3QgYW5kIHJlZ2lzdGVycyBpdCB3aXRoIEdvb2dsZSBUZXN0OwogLy8gcmV0dXJucyB0aGUgY3Jl
YXRlZCBvYmplY3QuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6
ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRlc3Rfc3VpdGVfbmFtZTogIG5hbWUgb2Yg
dGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdAot
Ly8gICB0eXBlX3BhcmFtICAgICAgICB0aGUgbmFtZSBvZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1l
dGVyLCBvciBOVUxMIGlmCisvLyAgIHR5cGVfcGFyYW06ICAgICAgIHRoZSBuYW1lIG9mIHRoZSB0
ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKIC8vICAgICAgICAgICAgICAgICAgICAg
dGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotLy8gICB2
YWx1ZV9wYXJhbSAgICAgICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUg
cGFyYW1ldGVyLAorLy8gICB2YWx1ZV9wYXJhbTogICAgICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m
IHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAogLy8gICAgICAgICAgICAgICAgICAgICBvciBO
VUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCiAvLyAgIGNvZGVf
bG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUgdGhlIHRlc3QgaXMgZGVmaW5lZAogLy8g
ICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzCi0vLyAgIHNl
dF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUg
dGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCisvLyAgIHNldF91cF90YzogICAgICAgIHBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorLy8gICB0
ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24g
dGhlIHRlc3Qgc3VpdGUKIC8vICAgZmFjdG9yeTogICAgICAgICAgcG9pbnRlciB0byB0aGUgZmFj
dG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9iamVjdC4KIC8vICAgICAgICAgICAgICAgICAgICAg
VGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8gaW5zdGFuY2Ugd2lsbCBhc3N1bWUKIC8vICAgICAg
ICAgICAgICAgICAgICAgb3duZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9iamVjdC4KIEdURVNUX0FQ
SV8gVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNvbnN0IGNoYXIqIHRl
c3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29uc3QgY2hhciogdHlw
ZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9jYXRpb24g
Y29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAgICBTZXRVcFRl
c3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3du
X3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSk7CisgICAgY29uc3QgY2hhciogdGVz
dF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAor
ICAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwK
KyAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwgU2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90
YywKKyAgICBUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjLCBUZXN0RmFjdG9yeUJh
c2UqIGZhY3RvcnkpOwogCiAvLyBJZiAqcHN0ciBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4
LCBtb2RpZmllcyAqcHN0ciB0byBiZSByaWdodAogLy8gcGFzdCB0aGUgcHJlZml4IGFuZCByZXR1
cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnBzdHIgdW5jaGFuZ2VkCiAvLyBhbmQgcmV0dXJu
cyBmYWxzZS4gIE5vbmUgb2YgcHN0ciwgKnBzdHIsIGFuZCBwcmVmaXggY2FuIGJlIE5VTEwuCiBH
VEVTVF9BUElfIGJvb2wgU2tpcFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIq
KiBwc3RyKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9U
RVNUX1AKLQogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oNDI1MSBcCiAvKiBjbGFz
cyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBiZSB1c2VkIGJ5IGNsaWVudHMgb2Yg
Y2xhc3MgQiAqLykKIAotLy8gU3RhdGUgb2YgdGhlIGRlZmluaXRpb24gb2YgYSB0eXBlLXBhcmFt
ZXRlcml6ZWQgdGVzdCBjYXNlLgotY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRl
IHsKKy8vIFN0YXRlIG9mIHRoZSBkZWZpbml0aW9uIG9mIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3Qgc3VpdGUuCitjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdFN1aXRlUFN0YXRlIHsKICBwdWJs
aWM6Ci0gIFR5cGVkVGVzdENhc2VQU3RhdGUoKSA6IHJlZ2lzdGVyZWRfKGZhbHNlKSB7fQorICBU
eXBlZFRlc3RTdWl0ZVBTdGF0ZSgpIDogcmVnaXN0ZXJlZF8oZmFsc2UpIHt9CiAKICAgLy8gQWRk
cyB0aGUgZ2l2ZW4gdGVzdCBuYW1lIHRvIGRlZmluZWRfdGVzdF9uYW1lc18gYW5kIHJldHVybiB0
cnVlCi0gIC8vIGlmIHRoZSB0ZXN0IGNhc2UgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZDsgb3RoZXJ3
aXNlIGFib3J0cyB0aGUKKyAgLy8gaWYgdGhlIHRlc3Qgc3VpdGUgaGFzbid0IGJlZW4gcmVnaXN0
ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKICAgLy8gcHJvZ3JhbS4KICAgYm9vbCBBZGRUZXN0
TmFtZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogY2FzZV9uYW1lLAog
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfbmFtZSkgewogICAgIGlmIChyZWdp
c3RlcmVkXykgewotICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBUZXN0ICVzIG11c3QgYmUgZGVm
aW5lZCBiZWZvcmUgIgotICAgICAgICAgICAgICAiUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1Ao
JXMsIC4uLikuXG4iLAorICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICIlcyBU
ZXN0ICVzIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgorICAgICAgICAgICAgICAiUkVHSVNURVJf
VFlQRURfVEVTVF9TVUlURV9QKCVzLCAuLi4pLlxuIiwKICAgICAgICAgICAgICAgRm9ybWF0Rmls
ZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCksIHRlc3RfbmFtZSwgY2FzZV9uYW1lKTsKICAg
ICAgIGZmbHVzaChzdGRlcnIpOwogICAgICAgcG9zaXg6OkFib3J0KCk7CkBAIC01NzEsOCArNjI5
LDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsKICAgLy8gVmVyaWZp
ZXMgdGhhdCByZWdpc3RlcmVkX3Rlc3RzIG1hdGNoIHRoZSB0ZXN0IG5hbWVzIGluCiAgIC8vIGRl
ZmluZWRfdGVzdF9uYW1lc187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVs
LCBvcgogICAvLyBhYm9ydHMgdGhlIHByb2dyYW0gb3RoZXJ3aXNlLgotICBjb25zdCBjaGFyKiBW
ZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAotICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxp
bmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpOworICBjb25zdCBjaGFyKiBWZXJpZnlS
ZWdpc3RlcmVkVGVzdE5hbWVzKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGlu
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
ZWdpc3RlcmVkX3Rlc3RzKTsKIAogIHByaXZhdGU6CiAgIHR5cGVkZWYgOjpzdGQ6Om1hcDxzdGQ6
OnN0cmluZywgQ29kZUxvY2F0aW9uPiBSZWdpc3RlcmVkVGVzdHNNYXA7CkBAIC01ODEsMTQgKzY0
MCwxOSBAQCBjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVzdENhc2VQU3RhdGUgewogICBSZWdpc3Rl
cmVkVGVzdHNNYXAgcmVnaXN0ZXJlZF90ZXN0c187CiB9OwogCisvLyAgTGVnYWN5IEFQSSBpcyBk
ZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCit1c2luZyBUeXBlZFRlc3RDYXNlUFN0YXRlID0gVHlwZWRUZXN0U3Vp
dGVQU3RhdGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KwogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MQogCiAvLyBTa2lw
cyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1hIGluICdz
dHInOwogLy8gcmV0dXJucyBOVUxMIGlmIG5vIGNvbW1hIGlzIGZvdW5kIGluICdzdHInLgogaW5s
aW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25zdCBjaGFyKiBzdHIpIHsKICAgY29uc3QgY2hh
ciogY29tbWEgPSBzdHJjaHIoc3RyLCAnLCcpOwotICBpZiAoY29tbWEgPT0gTlVMTCkgewotICAg
IHJldHVybiBOVUxMOworICBpZiAoY29tbWEgPT0gbnVsbHB0cikgeworICAgIHJldHVybiBudWxs
cHRyOwogICB9CiAgIHdoaWxlIChJc1NwYWNlKCooKytjb21tYSkpKSB7fQogICByZXR1cm4gY29t
bWE7CkBAIC01OTgsNyArNjYyLDcgQEAgaW5saW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25z
dCBjaGFyKiBzdHIpIHsKIC8vIHRoZSBlbnRpcmUgc3RyaW5nIGlmIGl0IGNvbnRhaW5zIG5vIGNv
bW1hLgogaW5saW5lIHN0ZDo6c3RyaW5nIEdldFByZWZpeFVudGlsQ29tbWEoY29uc3QgY2hhciog
c3RyKSB7CiAgIGNvbnN0IGNoYXIqIGNvbW1hID0gc3RyY2hyKHN0ciwgJywnKTsKLSAgcmV0dXJu
IGNvbW1hID09IE5VTEwgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNvbW1hKTsKKyAgcmV0dXJu
IGNvbW1hID09IG51bGxwdHIgPyBzdHIgOiBzdGQ6OnN0cmluZyhzdHIsIGNvbW1hKTsKIH0KIAog
Ly8gU3BsaXRzIGEgZ2l2ZW4gc3RyaW5nIG9uIGEgZ2l2ZW4gZGVsaW1pdGVyLCBwb3B1bGF0aW5n
IGEgZ2l2ZW4KQEAgLTYyMSw3ICs2ODUsNyBAQCBzdHJ1Y3QgTmFtZUdlbmVyYXRvclNlbGVjdG9y
IHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBOYW1lR2VuZXJhdG9yPgotdm9pZCBHZW5lcmF0
ZU5hbWVzUmVjdXJzaXZlbHkoVHlwZXMwLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qLCBpbnQp
IHt9Cit2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVseShpbnRlcm5hbDo6Tm9uZSwgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+KiwgaW50KSB7fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTmFtZUdl
bmVyYXRvciwgdHlwZW5hbWUgVHlwZXM+CiB2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVseShU
eXBlcywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiByZXN1bHQsIGludCBpKSB7CkBAIC02NDgs
NyArNzEyLDcgQEAgdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBGaXh0dXJlLCBjbGFzcyBUZXN0
U2VsLCB0eXBlbmFtZSBUeXBlcz4KIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdCB7CiAgcHVi
bGljOgogICAvLyAnaW5kZXgnIGlzIHRoZSBpbmRleCBvZiB0aGUgdGVzdCBpbiB0aGUgdHlwZSBs
aXN0ICdUeXBlcycKLSAgLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FT
RV9QKFByZWZpeCwgVGVzdENhc2UsCisgIC8vIHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9UWVBF
RF9URVNUX1NVSVRFX1AoUHJlZml4LCBUZXN0U3VpdGUsCiAgIC8vIFR5cGVzKS4gIFZhbGlkIHZh
bHVlcyBmb3IgJ2luZGV4JyBhcmUgWzAsIE4gLSAxXSB3aGVyZSBOIGlzIHRoZQogICAvLyBsZW5n
dGggb2YgVHlwZXMuCiAgIHN0YXRpYyBib29sIFJlZ2lzdGVyKGNvbnN0IGNoYXIqIHByZWZpeCwg
Y29uc3QgQ29kZUxvY2F0aW9uJiBjb2RlX2xvY2F0aW9uLApAQCAtNjYzLDEzICs3MjcsMTcgQEAg
Y2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0IHsKICAgICAvLyBsaXN0LgogICAgIE1ha2VBbmRS
ZWdpc3RlclRlc3RJbmZvKAogICAgICAgICAoc3RkOjpzdHJpbmcocHJlZml4KSArIChwcmVmaXhb
MF0gPT0gJ1wwJyA/ICIiIDogIi8iKSArIGNhc2VfbmFtZSArCi0gICAgICAgICAiLyIgKyB0eXBl
X25hbWVzW2luZGV4XSkKKyAgICAgICAgICIvIiArIHR5cGVfbmFtZXNbc3RhdGljX2Nhc3Q8c2l6
ZV90PihpbmRleCldKQogICAgICAgICAgICAgLmNfc3RyKCksCiAgICAgICAgIFN0cmlwVHJhaWxp
bmdTcGFjZXMoR2V0UHJlZml4VW50aWxDb21tYSh0ZXN0X25hbWVzKSkuY19zdHIoKSwKICAgICAg
ICAgR2V0VHlwZU5hbWU8VHlwZT4oKS5jX3N0cigpLAotICAgICAgICBOVUxMLCAgLy8gTm8gdmFs
dWUgcGFyYW1ldGVyLgotICAgICAgICBjb2RlX2xvY2F0aW9uLCBHZXRUeXBlSWQ8Rml4dHVyZUNs
YXNzPigpLCBUZXN0Q2xhc3M6OlNldFVwVGVzdENhc2UsCi0gICAgICAgIFRlc3RDbGFzczo6VGVh
ckRvd25UZXN0Q2FzZSwgbmV3IFRlc3RGYWN0b3J5SW1wbDxUZXN0Q2xhc3M+KTsKKyAgICAgICAg
bnVsbHB0ciwgIC8vIE5vIHZhbHVlIHBhcmFtZXRlci4KKyAgICAgICAgY29kZV9sb2NhdGlvbiwg
R2V0VHlwZUlkPEZpeHR1cmVDbGFzcz4oKSwKKyAgICAgICAgU3VpdGVBcGlSZXNvbHZlcjxUZXN0
Q2xhc3M+OjpHZXRTZXRVcENhc2VPclN1aXRlKAorICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5m
aWxlLmNfc3RyKCksIGNvZGVfbG9jYXRpb24ubGluZSksCisgICAgICAgIFN1aXRlQXBpUmVzb2x2
ZXI8VGVzdENsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZSgKKyAgICAgICAgICAgIGNvZGVf
bG9jYXRpb24uZmlsZS5jX3N0cigpLCBjb2RlX2xvY2F0aW9uLmxpbmUpLAorICAgICAgICBuZXcg
VGVzdEZhY3RvcnlJbXBsPFRlc3RDbGFzcz4pOwogCiAgICAgLy8gTmV4dCwgcmVjdXJzZXMgKGF0
IGNvbXBpbGUgdGltZSkgd2l0aCB0aGUgdGFpbCBvZiB0aGUgdHlwZSBsaXN0LgogICAgIHJldHVy
biBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwKQEAgLTY4NCw3ICs3NTIs
NyBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3QgewogCiAvLyBUaGUgYmFzZSBjYXNlIGZv
ciB0aGUgY29tcGlsZSB0aW1lIHJlY3Vyc2lvbi4KIHRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
Rml4dHVyZSwgY2xhc3MgVGVzdFNlbD4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0
dXJlLCBUZXN0U2VsLCBUeXBlczA+IHsKK2NsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0
dXJlLCBUZXN0U2VsLCBpbnRlcm5hbDo6Tm9uZT4gewogIHB1YmxpYzoKICAgc3RhdGljIGJvb2wg
UmVnaXN0ZXIoY29uc3QgY2hhciogLypwcmVmaXgqLywgY29uc3QgQ29kZUxvY2F0aW9uJiwKICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogLypjYXNlX25hbWUqLywgY29uc3QgY2hh
ciogLyp0ZXN0X25hbWVzKi8sCkBAIC02OTUsMTggKzc2MywyNCBAQCBjbGFzcyBUeXBlUGFyYW1l
dGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwgVHlwZXMwPiB7CiAgIH0KIH07CiAKLS8vIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgVGVzdHMsIFR5cGVzPjo6UmVnaXN0ZXIo
KQorR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUoY29u
c3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pOworR1RFU1Rf
QVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9u
KAorICAgIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSk7CisKKy8vIFR5cGVQYXJhbWV0ZXJpemVkVGVz
dFN1aXRlPEZpeHR1cmUsIFRlc3RzLCBUeXBlcz46OlJlZ2lzdGVyKCkKIC8vIHJlZ2lzdGVycyAq
YWxsIGNvbWJpbmF0aW9ucyogb2YgJ1Rlc3RzJyBhbmQgJ1R5cGVzJyB3aXRoIEdvb2dsZQogLy8g
VGVzdC4gIFRoZSByZXR1cm4gdmFsdWUgaXMgaW5zaWduaWZpY2FudCAtIHdlIGp1c3QgbmVlZCB0
byByZXR1cm4KIC8vIHNvbWV0aGluZyBzdWNoIHRoYXQgd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlv
biBpbiBhIG5hbWVzcGFjZSBzY29wZS4KIHRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVy
ZSwgdHlwZW5hbWUgVGVzdHMsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0Q2FzZSB7CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSB7CiAgcHVibGlj
OgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiBwcmVmaXgsIENvZGVMb2NhdGlv
biBjb2RlX2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RD
YXNlUFN0YXRlKiBzdGF0ZSwgY29uc3QgY2hhciogY2FzZV9uYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSogc3RhdGUsIGNvbnN0IGNoYXIqIGNh
c2VfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9uYW1lcywK
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiB0
eXBlX25hbWVzID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlTmFtZXM8RGVm
YXVsdE5hbWVHZW5lcmF0b3IsIFR5cGVzPigpKSB7CisgICAgUmVnaXN0ZXJUeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY2FzZV9uYW1lKTsKICAgICBzdGQ6OnN0cmluZyB0
ZXN0X25hbWUgPSBTdHJpcFRyYWlsaW5nU3BhY2VzKAogICAgICAgICBHZXRQcmVmaXhVbnRpbENv
bW1hKHRlc3RfbmFtZXMpKTsKICAgICBpZiAoIXN0YXRlLT5UZXN0RXhpc3RzKHRlc3RfbmFtZSkp
IHsKQEAgLTcyNiwyMCArODAwLDIwIEBAIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2Ug
ewogICAgICAgICBwcmVmaXgsIHRlc3RfbG9jYXRpb24sIGNhc2VfbmFtZSwgdGVzdF9uYW1lcywg
MCwgdHlwZV9uYW1lcyk7CiAKICAgICAvLyBOZXh0LCByZWN1cnNlcyAoYXQgY29tcGlsZSB0aW1l
KSB3aXRoIHRoZSB0YWlsIG9mIHRoZSB0ZXN0IGxpc3QuCi0gICAgcmV0dXJuIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgdHlwZW5hbWUgVGVzdHM6OlRhaWwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM+OjpSZWdpc3RlcihwcmVmaXgsIGNvZGVf
bG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2tpcENvbW1hKHRlc3RfbmFtZXMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lcyk7
CisgICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPEZpeHR1cmUsIHR5cGVuYW1l
IFRlc3RzOjpUYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBl
cz46OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXBD
b21tYSh0ZXN0X25hbWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlX25hbWVzKTsKICAgfQogfTsKIAogLy8gVGhlIGJhc2UgY2Fz
ZSBmb3IgdGhlIGNvbXBpbGUgdGltZSByZWN1cnNpb24uCiB0ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIEZpeHR1cmUsIHR5cGVuYW1lIFR5cGVzPgotY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4geworY2xhc3MgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0U3VpdGU8Rml4dHVyZSwgaW50ZXJuYWw6Ok5vbmUsIFR5cGVzPiB7CiAgcHVibGljOgog
ICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiAvKnByZWZpeCovLCBjb25zdCBDb2Rl
TG9jYXRpb24mLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RDYXNlUFN0
YXRlKiAvKnN0YXRlKi8sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5cGVkVGVzdFN1
aXRlUFN0YXRlKiAvKnN0YXRlKi8sCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IC8qY2FzZV9uYW1lKi8sIGNvbnN0IGNoYXIqIC8qdGVzdF9uYW1lcyovLAogICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mID0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPigpIC8qdHlwZV9uYW1lcyov
KSB7CkBAIC03NDcsOCArODIxLDYgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTxG
aXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4gewogICB9CiB9OwogCi0jZW5kaWYgIC8vIEdURVNU
X0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gUmV0dXJucyB0
aGUgY3VycmVudCBPUyBzdGFjayB0cmFjZSBhcyBhbiBzdGQ6OnN0cmluZy4KIC8vCiAvLyBUaGUg
bWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIHRvIGJlIGluY2x1ZGVkIGlzIHNwZWNpZmll
ZCBieQpAQCAtNzgwLDYgKzg1MiwxNiBAQCBzdHJ1Y3QgR1RFU1RfQVBJXyBDb25zdENoYXJQdHIg
ewogICBjb25zdCBjaGFyKiB2YWx1ZTsKIH07CiAKKy8vIEhlbHBlciBmb3IgZGVjbGFyaW5nIHN0
ZDo6c3RyaW5nIHdpdGhpbiAnaWYnIHN0YXRlbWVudAorLy8gaW4gcHJlIEMrKzE3IGJ1aWxkIGVu
dmlyb25tZW50Lgorc3RydWN0IFRydWVXaXRoU3RyaW5nIHsKKyAgVHJ1ZVdpdGhTdHJpbmcoKSA9
IGRlZmF1bHQ7CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0IGNoYXIqIHN0cikgOiB2
YWx1ZShzdHIpIHt9CisgIGV4cGxpY2l0IFRydWVXaXRoU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5n
JiBzdHIpIDogdmFsdWUoc3RyKSB7fQorICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorICBzdGQ6OnN0cmluZyB2YWx1ZTsKK307CisKIC8vIEEgc2ltcGxl
IExpbmVhciBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIGZvciBnZW5lcmF0aW5nIHJhbmRvbQogLy8g
bnVtYmVycyB3aXRoIGEgdW5pZm9ybSBkaXN0cmlidXRpb24uICBVbmxpa2UgcmFuZCgpIGFuZCBz
cmFuZCgpLCBpdAogLy8gZG9lc24ndCB1c2UgZ2xvYmFsIHN0YXRlIChhbmQgdGhlcmVmb3JlIGNh
bid0IGludGVyZmVyZSB3aXRoIHVzZXIKQEAgLTc4NywxMzUgKzg2OSw1MyBAQCBzdHJ1Y3QgR1RF
U1RfQVBJXyBDb25zdENoYXJQdHIgewogLy8gYnV0IGl0J3MgZ29vZCBlbm91Z2ggZm9yIG91ciBw
dXJwb3Nlcy4KIGNsYXNzIEdURVNUX0FQSV8gUmFuZG9tIHsKICBwdWJsaWM6Ci0gIHN0YXRpYyBj
b25zdCBVSW50MzIga01heFJhbmdlID0gMXUgPDwgMzE7CisgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBrTWF4UmFuZ2UgPSAxdSA8PCAzMTsKIAotICBleHBsaWNpdCBSYW5kb20oVUludDMyIHNlZWQp
IDogc3RhdGVfKHNlZWQpIHt9CisgIGV4cGxpY2l0IFJhbmRvbSh1aW50MzJfdCBzZWVkKSA6IHN0
YXRlXyhzZWVkKSB7fQogCi0gIHZvaWQgUmVzZWVkKFVJbnQzMiBzZWVkKSB7IHN0YXRlXyA9IHNl
ZWQ7IH0KKyAgdm9pZCBSZXNlZWQodWludDMyX3Qgc2VlZCkgeyBzdGF0ZV8gPSBzZWVkOyB9CiAK
ICAgLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBmcm9tIFswLCByYW5nZSkuICBDcmFzaGVz
IGlmICdyYW5nZScgaXMKICAgLy8gMCBvciBncmVhdGVyIHRoYW4ga01heFJhbmdlLgotICBVSW50
MzIgR2VuZXJhdGUoVUludDMyIHJhbmdlKTsKKyAgdWludDMyX3QgR2VuZXJhdGUodWludDMyX3Qg
cmFuZ2UpOwogCiAgcHJpdmF0ZToKLSAgVUludDMyIHN0YXRlXzsKKyAgdWludDMyX3Qgc3RhdGVf
OwogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFJhbmRvbSk7CiB9OwogCi0vLyBE
ZWZpbmluZyBhIHZhcmlhYmxlIG9mIHR5cGUgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIFQy
PiB3aWxsIGNhdXNlIGEKLS8vIGNvbXBpbGVyIGVycm9yIGlmZiBUMSBhbmQgVDIgYXJlIGRpZmZl
cmVudCB0eXBlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3Qg
Q29tcGlsZUFzc2VydFR5cGVzRXF1YWw7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQsIFQ+IHsKLX07Ci0KLS8vIFJlbW92ZXMgdGhlIHJl
ZmVyZW5jZSBmcm9tIGEgdHlwZSBpZiBpdCBpcyBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3
aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OnJl
bW92ZV9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZVJlZmVyZW5jZSB7IHR5cGVkZWYgVCB0eXBl
OyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSZW1vdmVSZWZl
cmVuY2U8VCY+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3
cmFwcGVyIGFyb3VuZCBSZW1vdmVSZWZlcmVuY2UgdGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVu
dAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JF
TU9WRV9SRUZFUkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpS
ZW1vdmVSZWZlcmVuY2U8VD46OnR5cGUKKy8vIFR1cm5zIGNvbnN0IFUmLCBVJiwgY29uc3QgVSwg
YW5kIFUgYWxsIGludG8gVS4KKyNkZWZpbmUgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09O
U1RfKFQpIFwKKyAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1v
dmVfcmVmZXJlbmNlPFQ+Ojp0eXBlPjo6dHlwZQogCi0vLyBSZW1vdmVzIGNvbnN0IGZyb20gYSB0
eXBlIGlmIGl0IGlzIGEgY29uc3QgdHlwZSwgb3RoZXJ3aXNlIGxlYXZlcwotLy8gaXQgdW5jaGFu
Z2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0cjE6OnJlbW92ZV9jb25zdCwgd2hpY2ggaXMgbm90
Ci0vLyB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0
IFJlbW92ZUNvbnN0IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKKy8vIEhhc0RlYnVn
U3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxUPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9v
bCBjb25zdGFudAorLy8gdGhhdCdzIHRydWUgaWYgYW5kIG9ubHkgaWYgVCBoYXMgbWV0aG9kcyBE
ZWJ1Z1N0cmluZygpIGFuZCBTaG9ydERlYnVnU3RyaW5nKCkKKy8vIHRoYXQgcmV0dXJuIHN0ZDo6
c3RyaW5nLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3Qg
VD4geyB0eXBlZGVmIFQgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBNU1ZDIDguMCwgU3VuIEMr
KywgYW5kIElCTSBYTCBDKysgaGF2ZSBhIGJ1ZyB3aGljaCBjYXVzZXMgdGhlIGFib3ZlCi0vLyBk
ZWZpbml0aW9uIHRvIGZhaWwgdG8gcmVtb3ZlIHRoZSBjb25zdCBpbiAnY29uc3QgaW50WzNdJyBh
bmQgJ2NvbnN0Ci0vLyBjaGFyWzNdWzRdJy4gIFRoZSBmb2xsb3dpbmcgc3BlY2lhbGl6YXRpb24g
d29ya3MgYXJvdW5kIHRoZSBidWcuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1z
dHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVFtOXT4gewotICB0eXBlZGVmIHR5cGVuYW1lIFJlbW92
ZUNvbnN0PFQ+Ojp0eXBlIHR5cGVbTl07Ci19OwotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVIgPCAxNDAwCi0vLyBUaGlzIGlzIHRoZSBvbmx5IHNwZWNpYWxpemF0aW9uIHRoYXQg
YWxsb3dzIFZDKysgNy4xIHRvIHJlbW92ZSBjb25zdCBpbgotLy8gJ2NvbnN0IGludFszXSBhbmQg
J2NvbnN0IGludFszXVs0XScuICBIb3dldmVyLCBpdCBjYXVzZXMgdHJvdWJsZSB3aXRoIEdDQwot
Ly8gYW5kIHRodXMgbmVlZHMgdG8gYmUgY29uZGl0aW9uYWxseSBjb21waWxlZC4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0cnVjdCBSZW1vdmVDb25zdDxUW05dPiB7Ci0gIHR5
cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ29uc3Q8VD46OnR5cGUgdHlwZVtOXTsKLX07Ci0jZW5kaWYK
K2NsYXNzIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZyB7CisgcHJpdmF0ZToKKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIEM+CisgIHN0YXRpYyBhdXRvIENoZWNrRGVidWdTdHJpbmcoQyop
IC0+IHR5cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShz
dGQ6OmRlY2x2YWw8Y29uc3QgQz4oKS5EZWJ1Z1N0cmluZygpKT46OnR5cGU7CisgIHRlbXBsYXRl
IDx0eXBlbmFtZT4KKyAgc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSBDaGVja0RlYnVnU3RyaW5nKC4u
Lik7CiAKLS8vIEEgaGFuZHkgd3JhcHBlciBhcm91bmQgUmVtb3ZlQ29uc3QgdGhhdCB3b3JrcyB3
aGVuIHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0j
ZGVmaW5lIEdURVNUX1JFTU9WRV9DT05TVF8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6
aW50ZXJuYWw6OlJlbW92ZUNvbnN0PFQ+Ojp0eXBlCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBDPgor
ICBzdGF0aWMgYXV0byBDaGVja1Nob3J0RGVidWdTdHJpbmcoQyopIC0+IHR5cGVuYW1lIHN0ZDo6
aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8Y29uc3Qg
Qz4oKS5TaG9ydERlYnVnU3RyaW5nKCkpPjo6dHlwZTsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lPgor
ICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIENoZWNrU2hvcnREZWJ1Z1N0cmluZyguLi4pOwogCi0v
LyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0IFUsIGFuZCBVIGFsbCBpbnRvIFUuCi0jZGVmaW5l
IEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUKSBcCi0gICAgR1RFU1RfUkVNT1ZF
X0NPTlNUXyhHVEVTVF9SRU1PVkVfUkVGRVJFTkNFXyhUKSkKKyAgdXNpbmcgSGFzRGVidWdTdHJp
bmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tEZWJ1Z1N0cmluZzxUPihudWxscHRyKSk7CisgIHVzaW5n
IEhhc1Nob3J0RGVidWdTdHJpbmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tTaG9ydERlYnVnU3RyaW5n
PFQ+KG51bGxwdHIpKTsKIAotLy8gSW1wbGljaXRseUNvbnZlcnRpYmxlPEZyb20sIFRvPjo6dmFs
dWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbAotLy8gY29uc3RhbnQgdGhhdCdzIHRydWUgaWZmIHR5
cGUgRnJvbSBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8KLS8vIHR5cGUgVG8uCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+Ci1jbGFzcyBJbXBsaWNpdGx5Q29udmVy
dGlibGUgewotIHByaXZhdGU6Ci0gIC8vIFdlIG5lZWQgdGhlIGZvbGxvd2luZyBoZWxwZXIgZnVu
Y3Rpb25zIG9ubHkgZm9yIHRoZWlyIHR5cGVzLgotICAvLyBUaGV5IGhhdmUgbm8gaW1wbGVtZW50
YXRpb25zLgotCi0gIC8vIE1ha2VGcm9tKCkgaXMgYW4gZXhwcmVzc2lvbiB3aG9zZSB0eXBlIGlz
IEZyb20uICBXZSBjYW5ub3Qgc2ltcGx5Ci0gIC8vIHVzZSBGcm9tKCksIGFzIHRoZSB0eXBlIEZy
b20gbWF5IG5vdCBoYXZlIGEgcHVibGljIGRlZmF1bHQKLSAgLy8gY29uc3RydWN0b3IuCi0gIHN0
YXRpYyB0eXBlbmFtZSBBZGRSZWZlcmVuY2U8RnJvbT46OnR5cGUgTWFrZUZyb20oKTsKLQotICAv
LyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVybG9hZGVkLiAgR2l2ZW4gYW4gZXhwcmVzc2lv
bgotICAvLyBIZWxwZXIoeCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZpcnN0IHZlcnNp
b24gaWYgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gdHlwZSBUbzsgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcGljayB0aGUKLSAgLy8gc2Vjb25kIHZlcnNpb24uCi0gIC8vCi0gIC8v
IFRoZSBmaXJzdCB2ZXJzaW9uIHJldHVybnMgYSB2YWx1ZSBvZiBzaXplIDEsIGFuZCB0aGUgc2Vj
b25kCi0gIC8vIHZlcnNpb24gcmV0dXJucyBhIHZhbHVlIG9mIHNpemUgMi4gIFRoZXJlZm9yZSwg
YnkgY2hlY2tpbmcgdGhlCi0gIC8vIHNpemUgb2YgSGVscGVyKHgpLCB3aGljaCBjYW4gYmUgZG9u
ZSBhdCBjb21waWxlIHRpbWUsIHdlIGNhbiB0ZWxsCi0gIC8vIHdoaWNoIHZlcnNpb24gb2YgSGVs
cGVyKCkgaXMgdXNlZCwgYW5kIGhlbmNlIHdoZXRoZXIgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRs
eSBjb252ZXJ0ZWQgdG8gdHlwZSBUby4KLSAgc3RhdGljIGNoYXIgSGVscGVyKFRvKTsKLSAgc3Rh
dGljIGNoYXIgKCZIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQotICAvLyBXZSBoYXZlIHRv
IHB1dCB0aGUgJ3B1YmxpYycgc2VjdGlvbiBhZnRlciB0aGUgJ3ByaXZhdGUnIHNlY3Rpb24sCi0g
IC8vIG9yIE1TVkMgcmVmdXNlcyB0byBjb21waWxlIHRoZSBjb2RlLgogIHB1YmxpYzoKLSNpZiBk
ZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gQysrQnVpbGRlciBjYW5ub3QgdXNlIG1lbWJlciBv
dmVybG9hZCByZXNvbHV0aW9uIGR1cmluZyB0ZW1wbGF0ZQotICAvLyBpbnN0YW50aWF0aW9uLiAg
VGhlIHNpbXBsZXN0IHdvcmthcm91bmQgaXMgdG8gdXNlIGl0cyBDKysweCB0eXBlIHRyYWl0cwot
ICAvLyBmdW5jdGlvbnMgKEMrK0J1aWxkZXIgMjAwOSBhbmQgYWJvdmUgb25seSkuCi0gIHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gX19pc19jb252ZXJ0aWJsZShGcm9tLCBUbyk7Ci0jZWxzZQot
ICAvLyBNU1ZDIHdhcm5zIGFib3V0IGltcGxpY2l0bHkgY29udmVydGluZyBmcm9tIGRvdWJsZSB0
byBpbnQgZm9yCi0gIC8vIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YSwgc28gd2UgbmVlZCB0byB0ZW1w
b3JhcmlseSBkaXNhYmxlIHRoZQotICAvLyB3YXJuaW5nLgotICBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QVVNIXyg0MjQ0KQotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9Ci0gICAgICBz
aXplb2YoSGVscGVyKEltcGxpY2l0bHlDb252ZXJ0aWJsZTo6TWFrZUZyb20oKSkpID09IDE7Ci0g
IEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQotI2VuZGlmICAvLyBfX0JPUkxBTkRD
X18KKyAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0KKyAgICAgIEhhc0RlYnVnU3RyaW5n
VHlwZTo6dmFsdWUgJiYgSGFzU2hvcnREZWJ1Z1N0cmluZ1R5cGU6OnZhbHVlOwogfTsKLXRlbXBs
YXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KLWNvbnN0IGJvb2wgSW1wbGljaXRseUNv
bnZlcnRpYmxlPEZyb20sIFRvPjo6dmFsdWU7CiAKLS8vIElzQVByb3RvY29sTWVzc2FnZTxUPjo6
dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbCBjb25zdGFudCB0aGF0J3MKLS8vIHRydWUgaWZm
IFQgaXMgdHlwZSBQcm90b2NvbE1lc3NhZ2UsIHByb3RvMjo6TWVzc2FnZSwgb3IgYSBzdWJjbGFz
cwotLy8gb2YgdGhvc2UuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBJc0FQcm90b2Nv
bE1lc3NhZ2UKLSAgICA6IHB1YmxpYyBib29sX2NvbnN0YW50PAotICBJbXBsaWNpdGx5Q29udmVy
dGlibGU8Y29uc3QgVCosIGNvbnN0IDo6UHJvdG9jb2xNZXNzYWdlKj46OnZhbHVlIHx8Ci0gIElt
cGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBUKiwgY29uc3QgOjpwcm90bzI6Ok1lc3NhZ2UqPjo6
dmFsdWU+IHsKLX07Citjb25zdGV4cHIgYm9vbCBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdT
dHJpbmc8VD46OnZhbHVlOwogCiAvLyBXaGVuIHRoZSBjb21waWxlciBzZWVzIGV4cHJlc3Npb24g
SXNDb250YWluZXJUZXN0PEM+KDApLCBpZiBDIGlzIGFuCiAvLyBTVEwtc3R5bGUgY29udGFpbmVy
IGNsYXNzLCB0aGUgZmlyc3Qgb3ZlcmxvYWQgb2YgSXNDb250YWluZXJUZXN0CkBAIC05NDIsNyAr
OTQyLDYgQEAgc3RydWN0IElzQVByb3RvY29sTWVzc2FnZQogLy8gSXNDb250YWluZXJUZXN0KHR5
cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yKikgYW5kCiAvLyBJc0NvbnRhaW5lclRlc3QoLi4uKSBk
b2Vzbid0IHdvcmsgd2l0aCBWaXN1YWwgQWdlIEMrKyBhbmQgU3VuIEMrKy4KIHR5cGVkZWYgaW50
IElzQ29udGFpbmVyOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKIHRlbXBsYXRlIDxjbGFzcyBDLAog
ICAgICAgICAgIGNsYXNzIEl0ZXJhdG9yID0gZGVjbHR5cGUoOjpzdGQ6OmRlY2x2YWw8Y29uc3Qg
QyY+KCkuYmVnaW4oKSksCiAgICAgICAgICAgY2xhc3MgPSBkZWNsdHlwZSg6OnN0ZDo6ZGVjbHZh
bDxjb25zdCBDJj4oKS5lbmQoKSksCkBAIC05NTIsMTQgKzk1MSw2IEBAIHRlbXBsYXRlIDxjbGFz
cyBDLAogSXNDb250YWluZXIgSXNDb250YWluZXJUZXN0KGludCAvKiBkdW1teSAqLykgewogICBy
ZXR1cm4gMDsKIH0KLSNlbHNlCi10ZW1wbGF0ZSA8Y2xhc3MgQz4KLUlzQ29udGFpbmVyIElzQ29u
dGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZW5hbWUgQzo6aXRlcmF0b3IqIC8qIGl0ICovID0gTlVMTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciogLyogY29uc3RfaXQgKi8gPSBO
VUxMKSB7Ci0gIHJldHVybiAwOwotfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCiAKIHR5
cGVkZWYgY2hhciBJc05vdENvbnRhaW5lcjsKIHRlbXBsYXRlIDxjbGFzcyBDPgpAQCAtOTgwLDQ3
ICs5NzEsMzAgQEAgc3RydWN0IElzSGFzaFRhYmxlIHsKICAgc3RhdGljIGNoYXIgdGVzdCguLi4p
OwogCiAgcHVibGljOgotICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHNpemVvZih0ZXN0PFQ+
KDAsIDApKSA9PSBzaXplb2YoaW50KTsKKyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXpl
b2YodGVzdDxUPihudWxscHRyLCBudWxscHRyKSkgPT0gc2l6ZW9mKGludCk7CiB9OwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNvbnN0IGJvb2wgSXNIYXNoVGFibGU8VD46OnZhbHVlOwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IFZvaWRUIHsKLSAgICB0eXBlZGVmIHZvaWQgdmFs
dWVfdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+Ci1z
dHJ1Y3QgSGFzVmFsdWVUeXBlIDogZmFsc2VfdHlwZSB7fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotc3RydWN0IEhhc1ZhbHVlVHlwZTxULCBWb2lkVDx0eXBlbmFtZSBUOjp2YWx1ZV90eXBlPiA+
IDogdHJ1ZV90eXBlIHsKLX07Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBDLAotICAgICAgICAgIGJv
b2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2YoSXNDb250YWluZXIp
LAotICAgICAgICAgIGJvb2wgPSBIYXNWYWx1ZVR5cGU8Qz46OnZhbHVlPgorICAgICAgICAgIGJv
b2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDApKSA9PSBzaXplb2YoSXNDb250YWluZXIp
Pgogc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDsKIAotdGVtcGxhdGUgPHR5cGVuYW1l
IEMsIGJvb2wgSFY+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIGZhbHNlLCBI
Vj4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBDPgorc3RydWN0
IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCBmYWxzZT4gOiBwdWJsaWMgc3RkOjpmYWxzZV90
eXBlIHt9OwogCiAvLyBTaW5jZSB0aGUgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsIGRlcGVuZHMg
b24gdGhlIElzQ29udGFpbmVyVGVzdCB3ZSBuZWVkIHRvCiAvLyBvYmV5IHRoZSBzYW1lIGluY29u
c2lzdGVuY2llcyBhcyB0aGUgSXNDb250YWluZXJUZXN0LCBuYW1lbHkgY2hlY2sgaWYKIC8vIHNv
bWV0aGluZyBpcyBhIGNvbnRhaW5lciBpcyByZWx5aW5nIG9uIG9ubHkgY29uc3RfaXRlcmF0b3Ig
aW4gQysrMTEgYW5kCiAvLyBpcyByZWx5aW5nIG9uIGJvdGggY29uc3RfaXRlcmF0b3IgYW5kIGl0
ZXJhdG9yIG90aGVyd2lzZQogdGVtcGxhdGUgPHR5cGVuYW1lIEM+Ci1zdHJ1Y3QgSXNSZWN1cnNp
dmVDb250YWluZXJJbXBsPEMsIHRydWUsIGZhbHNlPiA6IHB1YmxpYyBmYWxzZV90eXBlIHt9Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8
QywgdHJ1ZSwgdHJ1ZT4gewotICAjaWYgR1RFU1RfTEFOR19DWFgxMQotICB0eXBlZGVmIHR5cGVu
YW1lIEl0ZXJhdG9yVHJhaXRzPHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yPjo6dmFsdWVfdHlw
ZQotICAgICAgdmFsdWVfdHlwZTsKLSNlbHNlCi0gIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JU
cmFpdHM8dHlwZW5hbWUgQzo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7Ci0jZW5k
aWYKLSAgdHlwZWRlZiBpc19zYW1lPHZhbHVlX3R5cGUsIEM+IHR5cGU7CitzdHJ1Y3QgSXNSZWN1
cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWU+IHsKKyAgdXNpbmcgdmFsdWVfdHlwZSA9IGRlY2x0
eXBlKCpzdGQ6OmRlY2x2YWw8dHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3I+KCkpOworICB1c2lu
ZyB0eXBlID0KKyAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwK
KyAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPHZh
bHVlX3R5cGU+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICBDPjsKIH07CiAKIC8v
IElzUmVjdXJzaXZlQ29udGFpbmVyPFR5cGU+IGlzIGEgdW5hcnkgY29tcGlsZS10aW1lIHByZWRp
Y2F0ZSB0aGF0CkBAIC0xMDMyLDEzICsxMDA2LDYgQEAgc3RydWN0IElzUmVjdXJzaXZlQ29udGFp
bmVySW1wbDxDLCB0cnVlLCB0cnVlPiB7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KIHN0cnVjdCBJ
c1JlY3Vyc2l2ZUNvbnRhaW5lciA6IHB1YmxpYyBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8Qz46
OnR5cGUge307CiAKLS8vIEVuYWJsZUlmPGNvbmRpdGlvbj46OnR5cGUgaXMgdm9pZCB3aGVuICdD
b25kJyBpcyB0cnVlLCBhbmQKLS8vIHVuZGVmaW5lZCB3aGVuICdDb25kJyBpcyBmYWxzZS4gIFRv
IHVzZSBTRklOQUUgdG8gbWFrZSBhIGZ1bmN0aW9uCi0vLyBvdmVybG9hZCBvbmx5IGFwcGx5IHdo
ZW4gYSBwYXJ0aWN1bGFyIGV4cHJlc3Npb24gaXMgdHJ1ZSwgYWRkCi0vLyAidHlwZW5hbWUgRW5h
YmxlSWY8ZXhwcmVzc2lvbj46OnR5cGUqID0gMCIgYXMgdGhlIGxhc3QgcGFyYW1ldGVyLgotdGVt
cGxhdGU8Ym9vbD4gc3RydWN0IEVuYWJsZUlmOwotdGVtcGxhdGU8PiBzdHJ1Y3QgRW5hYmxlSWY8
dHJ1ZT4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsgIC8vIE5PTElOVAotCiAvLyBVdGlsaXRpZXMg
Zm9yIG5hdGl2ZSBhcnJheXMuCiAKIC8vIEFycmF5RXEoKSBjb21wYXJlcyB0d28gay1kaW1lbnNp
b25hbCBuYXRpdmUgYXJyYXlzIHVzaW5nIHRoZQpAQCAtMTE2MSwxMCArMTEyOCw5IEBAIGNsYXNz
IE5hdGl2ZUFycmF5IHsKICAgfQogCiAgcHJpdmF0ZToKLSAgZW51bSB7Ci0gICAga0NoZWNrVHlw
ZUlzTm90Q29uc3RPckFSZWZlcmVuY2UgPSBTdGF0aWNBc3NlcnRUeXBlRXFIZWxwZXI8Ci0gICAg
ICAgIEVsZW1lbnQsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhFbGVtZW50KT46
OnZhbHVlCi0gIH07CisgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfY29uc3Q8RWxlbWVudD46OnZh
bHVlLCAiVHlwZSBtdXN0IG5vdCBiZSBjb25zdCIpOworICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Omlz
X3JlZmVyZW5jZTxFbGVtZW50Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAgIlR5cGUgbXVzdCBu
b3QgYmUgYSByZWZlcmVuY2UiKTsKIAogICAvLyBJbml0aWFsaXplcyB0aGlzIG9iamVjdCB3aXRo
IGEgY29weSBvZiB0aGUgaW5wdXQuCiAgIHZvaWQgSW5pdENvcHkoY29uc3QgRWxlbWVudCogYXJy
YXksIHNpemVfdCBhX3NpemUpIHsKQEAgLTExODUsMTMgKzExNTEsMTkwIEBAIGNsYXNzIE5hdGl2
ZUFycmF5IHsKICAgY29uc3QgRWxlbWVudCogYXJyYXlfOwogICBzaXplX3Qgc2l6ZV87CiAgIHZv
aWQgKE5hdGl2ZUFycmF5OjoqY2xvbmVfKShjb25zdCBFbGVtZW50Kiwgc2l6ZV90KTsKK307CisK
Ky8vIEJhY2twb3J0IG9mIHN0ZDo6aW5kZXhfc2VxdWVuY2UuCit0ZW1wbGF0ZSA8c2l6ZV90Li4u
IElzPgorc3RydWN0IEluZGV4U2VxdWVuY2UgeworICB1c2luZyB0eXBlID0gSW5kZXhTZXF1ZW5j
ZTsKK307CisKKy8vIERvdWJsZSB0aGUgSW5kZXhTZXF1ZW5jZSwgYW5kIG9uZSBpZiBwbHVzX29u
ZSBpcyB0cnVlLgordGVtcGxhdGUgPGJvb2wgcGx1c19vbmUsIHR5cGVuYW1lIFQsIHNpemVfdCBz
aXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlOwordGVtcGxhdGUgPHNpemVfdC4uLiBJLCBz
aXplX3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1ZW5jZTx0cnVlLCBJbmRleFNlcXVlbmNl
PEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNlcXVlbmNlPEkuLi4sIChz
aXplb2ZUICsgSSkuLi4sIDIgKiBzaXplb2ZUPjsKK307Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEks
IHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlPGZhbHNlLCBJbmRleFNlcXVl
bmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUgPSBJbmRleFNlcXVlbmNlPEkuLi4s
IChzaXplb2ZUICsgSSkuLi4+OworfTsKKworLy8gQmFja3BvcnQgb2Ygc3RkOjptYWtlX2luZGV4
X3NlcXVlbmNlLgorLy8gSXQgdXNlcyBPKGxuKE4pKSBpbnN0YW50aWF0aW9uIGRlcHRoLgordGVt
cGxhdGUgPHNpemVfdCBOPgorc3RydWN0IE1ha2VJbmRleFNlcXVlbmNlSW1wbAorICAgIDogRG91
YmxlU2VxdWVuY2U8TiAlIDIgPT0gMSwgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2VJbXBsPE4g
LyAyPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIE4gLyAyPjo6dHlwZSB7fTsKIAotICBH
VEVTVF9ESVNBTExPV19BU1NJR05fKE5hdGl2ZUFycmF5KTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3Qg
TWFrZUluZGV4U2VxdWVuY2VJbXBsPDA+IDogSW5kZXhTZXF1ZW5jZTw+IHt9OworCit0ZW1wbGF0
ZSA8c2l6ZV90IE4+Cit1c2luZyBNYWtlSW5kZXhTZXF1ZW5jZSA9IHR5cGVuYW1lIE1ha2VJbmRl
eFNlcXVlbmNlSW1wbDxOPjo6dHlwZTsKKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+Cit1c2lu
ZyBJbmRleFNlcXVlbmNlRm9yID0gdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4u
KFQpPjo6dHlwZTsKKwordGVtcGxhdGUgPHNpemVfdD4KK3N0cnVjdCBJZ25vcmUgeworICBJZ25v
cmUoLi4uKTsgIC8vIE5PTElOVAorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IEVs
ZW1Gcm9tTGlzdEltcGw7Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEk+CitzdHJ1Y3QgRWxlbUZyb21M
aXN0SW1wbDxJbmRleFNlcXVlbmNlPEkuLi4+PiB7CisgIC8vIFdlIG1ha2UgSWdub3JlIGEgdGVt
cGxhdGUgdG8gc29sdmUgYSBwcm9ibGVtIHdpdGggTVNWQy4KKyAgLy8gQSBub24tdGVtcGxhdGUg
SWdub3JlIHdvdWxkIHdvcmsgZmluZSB3aXRoIGBkZWNsdHlwZShJZ25vcmUoSSkpLi4uYCwgYnV0
CisgIC8vIE1TVkMgZG9lc24ndCB1bmRlcnN0YW5kIGhvdyB0byBkZWFsIHdpdGggdGhhdCBwYWNr
IGV4cGFuc2lvbi4KKyAgLy8gVXNlIGAwICogSWAgdG8gaGF2ZSBhIHNpbmdsZSBpbnN0YW50aWF0
aW9uIG9mIElnbm9yZS4KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFI+CisgIHN0YXRpYyBSIEFwcGx5
KElnbm9yZTwwICogST4uLi4sIFIgKCopKCksIC4uLik7Cit9OworCit0ZW1wbGF0ZSA8c2l6ZV90
IE4sIHR5cGVuYW1lLi4uIFQ+CitzdHJ1Y3QgRWxlbUZyb21MaXN0IHsKKyAgdXNpbmcgdHlwZSA9
CisgICAgICBkZWNsdHlwZShFbGVtRnJvbUxpc3RJbXBsPHR5cGVuYW1lIE1ha2VJbmRleFNlcXVl
bmNlPE4+Ojp0eXBlPjo6QXBwbHkoCisgICAgICAgICAgc3RhdGljX2Nhc3Q8VCAoKikoKT4obnVs
bHB0cikuLi4pKTsKIH07CiAKK3N0cnVjdCBGbGF0VHVwbGVDb25zdHJ1Y3RUYWcge307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgRmxhdFR1cGxlOworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRGVyaXZlZCwgc2l6ZV90IEk+CitzdHJ1Y3QgRmxhdFR1cGxlRWxlbUJhc2U7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBULCBzaXplX3QgST4KK3N0cnVjdCBGbGF0VHVwbGVFbGVtQmFz
ZTxGbGF0VHVwbGU8VC4uLj4sIEk+IHsKKyAgdXNpbmcgdmFsdWVfdHlwZSA9IHR5cGVuYW1lIEVs
ZW1Gcm9tTGlzdDxJLCBULi4uPjo6dHlwZTsKKyAgRmxhdFR1cGxlRWxlbUJhc2UoKSA9IGRlZmF1
bHQ7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmc+CisgIGV4cGxpY2l0IEZsYXRUdXBsZUVsZW1C
YXNlKEZsYXRUdXBsZUNvbnN0cnVjdFRhZywgQXJnJiYgdCkKKyAgICAgIDogdmFsdWUoc3RkOjpm
b3J3YXJkPEFyZz4odCkpIHt9CisgIHZhbHVlX3R5cGUgdmFsdWU7Cit9OworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgSWR4Pgorc3RydWN0IEZsYXRUdXBsZUJhc2U7CisK
K3RlbXBsYXRlIDxzaXplX3QuLi4gSWR4LCB0eXBlbmFtZS4uLiBUPgorc3RydWN0IEZsYXRUdXBs
ZUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJbmRleFNlcXVlbmNlPElkeC4uLj4+CisgICAgOiBGbGF0
VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4uLi4geworICB1c2luZyBJbmRpY2Vz
ID0gSW5kZXhTZXF1ZW5jZTxJZHguLi4+OworICBGbGF0VHVwbGVCYXNlKCkgPSBkZWZhdWx0Owor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KKyAgZXhwbGljaXQgRmxhdFR1cGxlQmFzZShG
bGF0VHVwbGVDb25zdHJ1Y3RUYWcsIEFyZ3MmJi4uLiBhcmdzKQorICAgICAgOiBGbGF0VHVwbGVF
bGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4oRmxhdFR1cGxlQ29uc3RydWN0VGFne30sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmZvcndh
cmQ8QXJncz4oYXJncykpLi4uIHt9CisKKyAgdGVtcGxhdGUgPHNpemVfdCBJPgorICBjb25zdCB0
eXBlbmFtZSBFbGVtRnJvbUxpc3Q8SSwgVC4uLj46OnR5cGUmIEdldCgpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gRmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJPjo6dmFsdWU7CisgIH0K
KworICB0ZW1wbGF0ZSA8c2l6ZV90IEk+CisgIHR5cGVuYW1lIEVsZW1Gcm9tTGlzdDxJLCBULi4u
Pjo6dHlwZSYgR2V0KCkgeworICAgIHJldHVybiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8
VC4uLj4sIEk+Ojp2YWx1ZTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPgorICBhdXRv
IEFwcGx5KEYmJiBmKSAtPiBkZWNsdHlwZShzdGQ6OmZvcndhcmQ8Rj4oZikodGhpcy0+R2V0PElk
eD4oKS4uLikpIHsKKyAgICByZXR1cm4gc3RkOjpmb3J3YXJkPEY+KGYpKEdldDxJZHg+KCkuLi4p
OworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CisgIGF1dG8gQXBwbHkoRiYmIGYpIGNv
bnN0IC0+IGRlY2x0eXBlKHN0ZDo6Zm9yd2FyZDxGPihmKSh0aGlzLT5HZXQ8SWR4PigpLi4uKSkg
eworICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8Rj4oZikoR2V0PElkeD4oKS4uLik7CisgIH0KK307
CisKKy8vIEFuYWxvZyB0byBzdGQ6OnR1cGxlIGJ1dCB3aXRoIGRpZmZlcmVudCB0cmFkZW9mZnMu
CisvLyBUaGlzIGNsYXNzIG1pbmltaXplcyB0aGUgdGVtcGxhdGUgaW5zdGFudGlhdGlvbiBkZXB0
aCwgdGh1cyBhbGxvd2luZyBtb3JlCisvLyBlbGVtZW50cyB0aGFuIHN0ZDo6dHVwbGUgd291bGQu
IHN0ZDo6dHVwbGUgaGFzIGJlZW4gc2VlbiB0byByZXF1aXJlIGFuCisvLyBpbnN0YW50aWF0aW9u
IGRlcHRoIG9mIG1vcmUgdGhhbiAxMHggdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBzb21lCisv
LyBpbXBsZW1lbnRhdGlvbnMuCisvLyBGbGF0VHVwbGUgYW5kIEVsZW1Gcm9tTGlzdCBhcmUgbm90
IHJlY3Vyc2l2ZSBhbmQgaGF2ZSBhIGZpeGVkIGRlcHRoCisvLyByZWdhcmRsZXNzIG9mIFQuLi4K
Ky8vIE1ha2VJbmRleFNlcXVlbmNlLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXQgaXMgcmVjdXJzaXZl
IGJ1dCB3aXRoIGFuCisvLyBpbnN0YW50aWF0aW9uIGRlcHRoIG9mIE8obG4oTikpLgordGVtcGxh
dGUgPHR5cGVuYW1lLi4uIFQ+CitjbGFzcyBGbGF0VHVwbGUKKyAgICA6IHByaXZhdGUgRmxhdFR1
cGxlQmFzZTxGbGF0VHVwbGU8VC4uLj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT4geworICB1c2luZyBJ
bmRpY2VzID0gdHlwZW5hbWUgRmxhdFR1cGxlQmFzZTwKKyAgICAgIEZsYXRUdXBsZTxULi4uPiwg
dHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT46OkluZGljZXM7
CisKKyBwdWJsaWM6CisgIEZsYXRUdXBsZSgpID0gZGVmYXVsdDsKKyAgdGVtcGxhdGUgPHR5cGVu
YW1lLi4uIEFyZ3M+CisgIGV4cGxpY2l0IEZsYXRUdXBsZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcg
dGFnLCBBcmdzJiYuLi4gYXJncykKKyAgICAgIDogRmxhdFR1cGxlOjpGbGF0VHVwbGVCYXNlKHRh
Zywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSB7fQorCisgIHVzaW5nIEZsYXRUdXBsZTo6
RmxhdFR1cGxlQmFzZTo6QXBwbHk7CisgIHVzaW5nIEZsYXRUdXBsZTo6RmxhdFR1cGxlQmFzZTo6
R2V0OworfTsKKworLy8gVXRpbGl0eSBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkIHdpdGggc3RhdGlj
X2Fzc2VydCB0byBpbmR1Y2UgZGVwcmVjYXRpb24KKy8vIHdhcm5pbmdzLgorR1RFU1RfSU5URVJO
QUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRl
ZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCIpCitjb25zdGV4
cHIgYm9vbCBJbnN0YW50aWF0ZVRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCkgeyByZXR1cm4gdHJ1
ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJUWVBFRF9URVNUX0NBU0Vf
UCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVTVF9TVUlURV9QIikK
K2NvbnN0ZXhwciBib29sIFR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVybiB0
cnVlOyB9CisKK0dURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQoCisgICAgIlRZUEVEX1RFU1RfQ0FT
RSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiVFlQRURfVEVTVF9TVUlURSIpCitj
b25zdGV4cHIgYm9vbCBUeXBlZFRlc3RDYXNlSXNEZXByZWNhdGVkKCkgeyByZXR1cm4gdHJ1ZTsg
fQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJSRUdJU1RFUl9UWVBFRF9URVNU
X0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAgICAiUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFJlZ2lzdGVyVHlwZWRUZXN0Q2FzZV9QX0lz
RGVwcmVjYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KKworR1RFU1RfSU5URVJOQUxfREVQUkVDQVRF
RCgKKyAgICAiSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxl
YXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUCIpCitjb25zdGV4
cHIgYm9vbCBJbnN0YW50aWF0ZVR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVy
biB0cnVlOyB9CisKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKIAorbmFtZXNwYWNlIHN0ZCB7CisvLyBTb21lIHN0YW5kYXJkIGxpYnJhcnkgaW1wbGVt
ZW50YXRpb25zIHVzZSBgc3RydWN0IHR1cGxlX3NpemVgIGFuZCBzb21lIHVzZQorLy8gYGNsYXNz
IHR1cGxlX3NpemVgLiBDbGFuZyB3YXJucyBhYm91dCB0aGUgbWlzbWF0Y2guCisvLyBodHRwczov
L3Jldmlld3MubGx2bS5vcmcvRDU1NDY2CisjaWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlz
bWF0Y2hlZC10YWdzIgorI2VuZGlmCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3Qg
dHVwbGVfc2l6ZTx0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlPFRzLi4uPj4KKyAgICA6IHN0
ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBzaXplb2YuLi4oVHMpPiB7fTsKKyNpZmRlZiBf
X2NsYW5nX18KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorfSAgLy8gbmFt
ZXNwYWNlIHN0ZAorCiAjZGVmaW5lIEdURVNUX01FU1NBR0VfQVRfKGZpbGUsIGxpbmUsIG1lc3Nh
Z2UsIHJlc3VsdF90eXBlKSBcCiAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFzc2VydEhlbHBlcihy
ZXN1bHRfdHlwZSwgZmlsZSwgbGluZSwgbWVzc2FnZSkgXAogICAgID0gOjp0ZXN0aW5nOjpNZXNz
YWdlKCkKQEAgLTEyMDgsNTEgKzEzNTEsMTI4IEBAIGNsYXNzIE5hdGl2ZUFycmF5IHsKICNkZWZp
bmUgR1RFU1RfU1VDQ0VTU18obWVzc2FnZSkgXAogICBHVEVTVF9NRVNTQUdFXyhtZXNzYWdlLCA6
OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcykKIAotLy8gU3VwcHJlc3MgTVNWQyB3
YXJuaW5nIDQ3MDIgKHVucmVhY2hhYmxlIGNvZGUpIGZvciB0aGUgY29kZSBmb2xsb3dpbmcKKyNk
ZWZpbmUgR1RFU1RfU0tJUF8obWVzc2FnZSkgXAorICByZXR1cm4gR1RFU1RfTUVTU0FHRV8obWVz
c2FnZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a1NraXApCisKKy8vIFN1cHByZXNzIE1T
VkMgd2FybmluZyA0MDcyICh1bnJlYWNoYWJsZSBjb2RlKSBmb3IgdGhlIGNvZGUgZm9sbG93aW5n
CiAvLyBzdGF0ZW1lbnQgaWYgaXQgcmV0dXJucyBvciB0aHJvd3MgKG9yIGRvZXNuJ3QgcmV0dXJu
IG9yIHRocm93IGluIHNvbWUKIC8vIHNpdHVhdGlvbnMpLgorLy8gTk9URTogVGhlICJlbHNlIiBp
cyBpbXBvcnRhbnQgdG8ga2VlcCB0aGlzIGV4cGFuc2lvbiB0byBwcmV2ZW50IGEgdG9wLWxldmVs
CisvLyAiZWxzZSIgZnJvbSBhdHRhY2hpbmcgdG8gb3VyICJpZiIuCiAjZGVmaW5lIEdURVNUX1NV
UFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KSBcCi0gIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgc3RhdGVtZW50OyB9CisgIGlm
ICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgc3RhdGVtZW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAgICAgICAgICAgICAgICAgICAgIC8qIE5PTElO
VCAqLyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGljX2Fzc2VydCh0cnVlLCAi
IikgIC8vIFVzZXIgbXVzdCBoYXZlIGEgc2VtaWNvbG9uIGFmdGVyIGV4cGFuc2lvbi4KIAotI2Rl
ZmluZSBHVEVTVF9URVNUX1RIUk9XXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbiwgZmFp
bCkgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6
OmludGVybmFsOjpDb25zdENoYXJQdHIgZ3Rlc3RfbXNnID0gIiIpIHsgXAotICAgIGJvb2wgZ3Rl
c3RfY2F1Z2h0X2V4cGVjdGVkID0gZmFsc2U7IFwKLSAgICB0cnkgeyBcCi0gICAgICBHVEVTVF9T
VVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7IFwKLSAg
ICB9IFwKLSAgICBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyBcCi0gICAgICBn
dGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSB0cnVlOyBcCi0gICAgfSBcCi0gICAgY2F0Y2ggKC4uLikg
eyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAgIkV4cGVjdGVkOiAiICNz
dGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBcCi0gICAgICAgICAgI2V4
cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBhIGRpZmZlcmVudCB0eXBl
LiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhy
b3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgICBpZiAoIWd0ZXN0X2NhdWdodF9leHBlY3Rl
ZCkgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0gICAgICAgICAgIkV4cGVjdGVkOiAi
ICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiBcCi0gICAgICAgICAg
I2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0IHRocm93cyBub3RoaW5nLiI7IFwK
LSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBf
X0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwKLSAgICBHVEVTVF9DT05DQVRfVE9LRU5f
KGd0ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKTogXAotICAgICAgZmFpbChndGVzdF9t
c2cudmFsdWUpCisjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworbmFtZXNwYWNlIHRlc3Rpbmcg
eworbmFtZXNwYWNlIGludGVybmFsIHsKKworY2xhc3MgTmV2ZXJUaHJvd24geworIHB1YmxpYzoK
KyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IHsKKyAgICByZXR1cm4gInRoaXMg
ZXhjZXB0aW9uIHNob3VsZCBuZXZlciBiZSB0aHJvd24iOworICB9Cit9OworCit9ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisKKyNpZiBHVEVTVF9IQVNf
UlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSA6OnRlc3Rpbmc6OmludGVy
bmFsOjpHZXRUeXBlTmFtZSh0eXBlaWQoZSkpCisKKyNlbHNlICAvLyBHVEVTVF9IQVNfUlRUSQor
CisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKSBcCisgIHN0ZDo6c3RyaW5nIHsgImFu
IHN0ZDo6ZXhjZXB0aW9uLWRlcml2ZWQgZXJyb3IiIH0KKworI2VuZGlmICAvLyBHVEVTVF9IQVNf
UlRUSQorCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oc3Rh
dGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pICAgXAorICBjYXRjaCAodHlwZW5hbWUgc3RkOjpj
b25kaXRpb25hbDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9yZWZlcmVuY2U8ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkX2V4Y2VwdGlvbj46OnR5cGU+Ojp0eXBlLCAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgICAgIHN0ZDo6ZXhjZXB0aW9uPjo6dmFsdWUsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6Ok5l
dmVyVGhyb3duJiwgY29uc3Qgc3RkOjpleGNlcHRpb24mPjo6dHlwZSBcCisgICAgICAgICAgICAg
ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gICAg
ICBcCisgICAgICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgIjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSArPSBHVEVT
VF9FWENFUFRJT05fVFlQRV8oZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9IGUud2hhdCgpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0
X21zZy52YWx1ZSArPSAiXCIuIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxf
dGVzdHRocm93XywgX19MSU5FX18pOyAgICAgICAgICAgICAgICBcCisgIH0KKworI2Vsc2UgIC8v
IEdURVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9USFJPV19DQVRDSF9T
VERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbikKKworI2VuZGlmICAv
LyBHVEVTVF9IQVNfRVhDRVBUSU9OUworCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfKHN0YXRl
bWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBmYWlsKSAgICAgICAgICAgICAgXAorICBHVEVTVF9B
TUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OlRydWVXaXRoU3RyaW5nIGd0
ZXN0X21zZ3t9KSB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgYm9vbCBndGVzdF9jYXVnaHRf
ZXhwZWN0ZWQgPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NP
REVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgICAgICAgICAgICBcCisgICAgfSBjYXRjaCAo
ZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gdHJ1ZTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
R1RFU1RfVEVTVF9USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVk
X2V4Y2VwdGlvbikgICAgXAorICAgIGNhdGNoICguLi4pIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGd0ZXN0X21zZy52
YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlw
ZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAgICAgICAgICAgICAgICAgICAgIi5cbiAg
QWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iOyAgICAgICAgIFwKKyAgICAgIGdv
dG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7
ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghZ3Rlc3RfY2F1Z2h0
X2V4cGVjdGVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBh
biBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAgICAgICAg
ICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3Mgbm90aGluZy4iOyAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0
dGhyb3dfLCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9
IGVsc2UgLypOT0xJTlQqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsX3Rl
c3R0aHJvd18sIF9fTElORV9fKSAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDogZmFpbChn
dGVzdF9tc2cudmFsdWUuY19zdHIoKSkKKworI2lmIEdURVNUX0hBU19FWENFUFRJT05TCisKKyNk
ZWZpbmUgR1RFU1RfVEVTVF9OT19USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXygpICAgICAgICAg
ICAgICAgIFwKKyAgY2F0Y2ggKHN0ZDo6ZXhjZXB0aW9uIGNvbnN0JiBlKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQgdGhyb3dzICI7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0g
R1RFU1RfRVhDRVBUSU9OX1RZUEVfKGUpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9t
c2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwiIjsgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBndGVzdF9tc2cudmFsdWUgKz0gZS53aGF0KCk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIlwiLiI7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rl
c3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk7IFwKKyAgfQorCisjZWxzZSAgLy8gR1RF
U1RfSEFTX0VYQ0VQVElPTlMKKworI2RlZmluZSBHVEVTVF9URVNUX05PX1RIUk9XX0NBVENIX1NU
RF9FWENFUFRJT05fKCkKKworI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwogCiAjZGVm
aW5lIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVudCwgZmFpbCkgXAogICBHVEVTVF9BTUJJ
R1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNU
cnVlKCkpIHsgXAorICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHJ1ZVdpdGhTdHJpbmcgZ3Rl
c3RfbXNne30pIHsgXAogICAgIHRyeSB7IFwKICAgICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hB
QkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgXAogICAgIH0gXAorICAgIEdURVNU
X1RFU1RfTk9fVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oKSBcCiAgICAgY2F0Y2ggKC4uLikg
eyBcCisgICAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQgdGhyb3dzLiI7IFwKICAgICAgIGdvdG8g
R1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0bm90aHJvd18sIF9fTElORV9fKTsg
XAogICAgIH0gXAogICB9IGVsc2UgXAogICAgIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFi
ZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoIkV4cGVjdGVkOiAiICNz
dGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAotICAgICAgICAgICAi
ICBBY3R1YWw6IGl0IHRocm93cy4iKQorICAgICAgZmFpbCgoIkV4cGVjdGVkOiAiICNzdGF0ZW1l
bnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiIgXAorICAgICAgICAgICAgIiAgQWN0
dWFsOiAiICsgZ3Rlc3RfbXNnLnZhbHVlKS5jX3N0cigpKQogCiAjZGVmaW5lIEdURVNUX1RFU1Rf
QU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIGZhaWwpIFwKICAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxP
Q0tFUl8gXApAQCAtMTMwMCwzMSArMTUyMCw0MSBAQCBjbGFzcyBOYXRpdmVBcnJheSB7CiAgICAg
ICAgICAgICIgIEFjdHVhbDogaXQgZG9lcy4iKQogCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9m
IHRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGdpdmVuIHRlc3QuCi0jZGVmaW5lIEdURVNU
X1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICB0ZXN0X2Nh
c2VfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAorI2RlZmluZSBHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSBcCisgIHRlc3Rfc3VpdGVfbmFtZSMjXyMj
dGVzdF9uYW1lIyNfVGVzdAogCiAvLyBIZWxwZXIgbWFjcm8gZm9yIGRlZmluaW5nIHRlc3RzLgot
I2RlZmluZSBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lLCBwYXJlbnRfY2xh
c3MsIHBhcmVudF9pZClcCi1jbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9u
YW1lLCB0ZXN0X25hbWUpIDogcHVibGljIHBhcmVudF9jbGFzcyB7XAotIHB1YmxpYzpcCi0gIEdU
RVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkoKSB7fVwKLSBw
cml2YXRlOlwKLSAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7XAotICBzdGF0aWMgOjp0ZXN0aW5n
OjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXztcCi0g
IEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oXAotICAgICAgR1RFU1RfVEVTVF9DTEFT
U19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSk7XAotfTtcCi1cCi06OnRlc3Rpbmc6
OlRlc3RJbmZvKiBjb25zdCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0
ZXN0X25hbWUpXAotICA6OnRlc3RfaW5mb18gPVwKLSAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpN
YWtlQW5kUmVnaXN0ZXJUZXN0SW5mbyhcCi0gICAgICAgICN0ZXN0X2Nhc2VfbmFtZSwgI3Rlc3Rf
bmFtZSwgTlVMTCwgTlVMTCwgXAotICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9j
YXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgXAotICAgICAgICAocGFyZW50X2lkKSwgXAotICAg
ICAgICBwYXJlbnRfY2xhc3M6OlNldFVwVGVzdENhc2UsIFwKLSAgICAgICAgcGFyZW50X2NsYXNz
OjpUZWFyRG93blRlc3RDYXNlLCBcCi0gICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpU
ZXN0RmFjdG9yeUltcGw8XAotICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0
X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4pO1wKLXZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0
ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQotCi0jZW5kaWYgIC8vIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5URVJOQUxfSF8KKyNkZWZpbmUgR1RFU1Rf
VEVTVF8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUsIHBhcmVudF9jbGFzcywgcGFyZW50X2lk
KSAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1
aXRlX25hbWUpKSA+IDEsICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdF9z
dWl0ZV9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpKSA+IDEs
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdF9uYW1lIG11c3Qg
bm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgY2xhc3Mg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgIDogcHVibGljIHBhcmVudF9jbGFzcyB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHB1YmxpYzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9u
YW1lKSgpID0gZGVmYXVsdDsgICAgICAgICAgIFwKKyAgICB+R1RFU1RfVEVTVF9DTEFTU19OQU1F
Xyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSBvdmVycmlkZSA9IGRlZmF1bHQ7IFwKKyAg
ICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwKKyAgICBHVEVTVF9E
SVNBTExPV19NT1ZFX0FORF9BU1NJR05fKEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0
ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgIHByaXZhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz
dGF0aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXzsgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgR1RFU1RfVEVTVF9DTEFTU19O
QU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOjp0ZXN0X2luZm9fID0gIFwK
KyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKCAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAjdGVzdF9zdWl0ZV9uYW1lLCAjdGVz
dF9uYW1lLCBudWxscHRyLCBudWxscHRyLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwg
KHBhcmVudF9pZCksIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpTdWl0ZUFwaVJl
c29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgcGFy
ZW50X2NsYXNzPjo6R2V0U2V0VXBDYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19MSU5FX18pLCAgICAg
ICAgIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpTdWl0ZUFwaVJlc29sdmVyPCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgcGFyZW50X2NsYXNz
Pjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShfX0ZJTEVfXywgX19MSU5FX18pLCAgICAgIFwKKyAg
ICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdEZhY3RvcnlJbXBsPEdURVNUX1RF
U1RfQ0xBU1NfTkFNRV8oICAgIFwKKyAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpPik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHko
KQorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9J
TlRFUk5BTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDgyYjg3Mjg5YWUxN2M4YWE3Yjk2ZDhlOGM5MmI5NmUwMThjNzY4
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwMyBHb29n
bGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8g
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8g
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBICJzbWFydCIgcG9pbnRlciB0eXBlIHdpdGgg
cmVmZXJlbmNlIHRyYWNraW5nLiAgRXZlcnkgcG9pbnRlciB0byBhCi0vLyBwYXJ0aWN1bGFyIG9i
amVjdCBpcyBrZXB0IG9uIGEgY2lyY3VsYXIgbGlua2VkIGxpc3QuICBXaGVuIHRoZSBsYXN0IHBv
aW50ZXIKLS8vIHRvIGFuIG9iamVjdCBpcyBkZXN0cm95ZWQgb3IgcmVhc3NpZ25lZCwgdGhlIG9i
amVjdCBpcyBkZWxldGVkLgotLy8KLS8vIFVzZWQgcHJvcGVybHksIHRoaXMgZGVsZXRlcyB0aGUg
b2JqZWN0IHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGdvZXMgYXdheS4KLS8vIFRoZXJlIGFyZSBz
ZXZlcmFsIGNhdmVhdHM6Ci0vLyAtIExpa2UgYWxsIHJlZmVyZW5jZSBjb3VudGluZyBzY2hlbWVz
LCBjeWNsZXMgbGVhZCB0byBsZWFrcy4KLS8vIC0gRWFjaCBzbWFydCBwb2ludGVyIGlzIGFjdHVh
bGx5IHR3byBwb2ludGVycyAoOCBieXRlcyBpbnN0ZWFkIG9mIDQpLgotLy8gLSBFdmVyeSB0aW1l
IGEgcG9pbnRlciBpcyBhc3NpZ25lZCwgdGhlIGVudGlyZSBsaXN0IG9mIHBvaW50ZXJzIHRvIHRo
YXQKLS8vICAgb2JqZWN0IGlzIHRyYXZlcnNlZC4gIFRoaXMgY2xhc3MgaXMgdGhlcmVmb3JlIE5P
VCBTVUlUQUJMRSB3aGVuIHRoZXJlCi0vLyAgIHdpbGwgb2Z0ZW4gYmUgbW9yZSB0aGFuIHR3byBv
ciB0aHJlZSBwb2ludGVycyB0byBhIHBhcnRpY3VsYXIgb2JqZWN0LgotLy8gLSBSZWZlcmVuY2Vz
IGFyZSBvbmx5IHRyYWNrZWQgYXMgbG9uZyBhcyBsaW5rZWRfcHRyPD4gb2JqZWN0cyBhcmUgY29w
aWVkLgotLy8gICBJZiBhIGxpbmtlZF9wdHI8PiBpcyBjb252ZXJ0ZWQgdG8gYSByYXcgcG9pbnRl
ciBhbmQgYmFjaywgQkFEIFRISU5HUwotLy8gICB3aWxsIGhhcHBlbiAoZG91YmxlIGRlbGV0aW9u
KS4KLS8vCi0vLyBBIGdvb2QgdXNlIG9mIHRoaXMgY2xhc3MgaXMgc3RvcmluZyBvYmplY3QgcmVm
ZXJlbmNlcyBpbiBTVEwgY29udGFpbmVycy4KLS8vIFlvdSBjYW4gc2FmZWx5IHB1dCBsaW5rZWRf
cHRyPD4gaW4gYSB2ZWN0b3I8Pi4KLS8vIE90aGVyIHVzZXMgbWF5IG5vdCBiZSBhcyBnb29kLgot
Ly8KLS8vIE5vdGU6IElmIHlvdSB1c2UgYW4gaW5jb21wbGV0ZSB0eXBlIHdpdGggbGlua2VkX3B0
cjw+LCB0aGUgY2xhc3MKLS8vICpjb250YWluaW5nKiBsaW5rZWRfcHRyPD4gbXVzdCBoYXZlIGEg
Y29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKGV2ZW4KLS8vIGlmIHRoZXkgZG8gbm90aGluZyEp
LgotLy8KLS8vIEJpbGwgR2liYm9ucyBzdWdnZXN0ZWQgd2UgdXNlIHNvbWV0aGluZyBsaWtlIHRo
aXMuCi0vLwotLy8gVGhyZWFkIFNhZmV0eToKLS8vICAgVW5saWtlIG90aGVyIGxpbmtlZF9wdHIg
aW1wbGVtZW50YXRpb25zLCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCi0vLyAgIGEgbGlua2VkX3B0
ciBvYmplY3QgaXMgdGhyZWFkLXNhZmUgaW4gdGhlIHNlbnNlIHRoYXQ6Ci0vLyAgICAgLSBpdCdz
IHNhZmUgdG8gY29weSBsaW5rZWRfcHRyIG9iamVjdHMgY29uY3VycmVudGx5LAotLy8gICAgIC0g
aXQncyBzYWZlIHRvIGNvcHkgKmZyb20qIGEgbGlua2VkX3B0ciBhbmQgcmVhZCBpdHMgdW5kZXJs
eWluZwotLy8gICAgICAgcmF3IHBvaW50ZXIgKGUuZy4gdmlhIGdldCgpKSBjb25jdXJyZW50bHks
IGFuZAotLy8gICAgIC0gaXQncyBzYWZlIHRvIHdyaXRlIHRvIHR3byBsaW5rZWRfcHRycyB0aGF0
IHBvaW50IHRvIHRoZSBzYW1lCi0vLyAgICAgICBzaGFyZWQgb2JqZWN0IGNvbmN1cnJlbnRseS4K
LS8vIEZJWE1FOiByZW5hbWUgdGhpcyB0byBzYWZlX2xpbmtlZF9wdHIgdG8gYXZvaWQKLS8vIGNv
bmZ1c2lvbiB3aXRoIG5vcm1hbCBsaW5rZWRfcHRyLgotCi0vLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9MSU5LRURfUFRSX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RF
U1RfTElOS0VEX1BUUl9IXwotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8YXNzZXJ0
Lmg+Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLW5hbWVzcGFj
ZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFByb3RlY3RzIGNvcHlpbmcg
b2YgYWxsIGxpbmtlZF9wdHIgb2JqZWN0cy4KLUdURVNUX0FQSV8gR1RFU1RfREVDTEFSRV9TVEFU
SUNfTVVURVhfKGdfbGlua2VkX3B0cl9tdXRleCk7Ci0KLS8vIFRoaXMgaXMgdXNlZCBpbnRlcm5h
bGx5IGJ5IGFsbCBpbnN0YW5jZXMgb2YgbGlua2VkX3B0cjw+LiAgSXQgbmVlZHMgdG8gYmUKLS8v
IGEgbm9uLXRlbXBsYXRlIGNsYXNzIGJlY2F1c2UgZGlmZmVyZW50IHR5cGVzIG9mIGxpbmtlZF9w
dHI8PiBjYW4gcmVmZXIgdG8KLS8vIHRoZSBzYW1lIG9iamVjdCAobGlua2VkX3B0cjxTdXBlcmNs
YXNzPihvYmopIHZzIGxpbmtlZF9wdHI8U3ViY2xhc3M+KG9iaikpLgotLy8gU28sIGl0IG5lZWRz
IHRvIGJlIHBvc3NpYmxlIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgbGlua2VkX3B0ciB0byBwYXJ0
aWNpcGF0ZQotLy8gaW4gdGhlIHNhbWUgY2lyY3VsYXIgbGlua2VkIGxpc3QsIHNvIHdlIG5lZWQg
YSBzaW5nbGUgY2xhc3MgdHlwZSBoZXJlLgotLy8KLS8vIERPIE5PVCBVU0UgVEhJUyBDTEFTUyBE
SVJFQ1RMWSBZT1VSU0VMRi4gIFVzZSBsaW5rZWRfcHRyPFQ+LgotY2xhc3MgbGlua2VkX3B0cl9p
bnRlcm5hbCB7Ci0gcHVibGljOgotICAvLyBDcmVhdGUgYSBuZXcgY2lyY2xlIHRoYXQgaW5jbHVk
ZXMgb25seSB0aGlzIGluc3RhbmNlLgotICB2b2lkIGpvaW5fbmV3KCkgewotICAgIG5leHRfID0g
dGhpczsKLSAgfQotCi0gIC8vIE1hbnkgbGlua2VkX3B0ciBvcGVyYXRpb25zIG1heSBjaGFuZ2Ug
cC5saW5rXyBmb3Igc29tZSBsaW5rZWRfcHRyCi0gIC8vIHZhcmlhYmxlIHAgaW4gdGhlIHNhbWUg
Y2lyY2xlIGFzIHRoaXMgb2JqZWN0LiAgVGhlcmVmb3JlIHdlIG5lZWQKLSAgLy8gdG8gcHJldmVu
dCB0d28gc3VjaCBvcGVyYXRpb25zIGZyb20gb2NjdXJyaW5nIGNvbmN1cnJlbnRseS4KLSAgLy8K
LSAgLy8gTm90ZSB0aGF0IGRpZmZlcmVudCB0eXBlcyBvZiBsaW5rZWRfcHRyIG9iamVjdHMgY2Fu
IGNvZXhpc3QgaW4gYQotICAvLyBjaXJjbGUgKGUuZy4gbGlua2VkX3B0cjxCYXNlPiwgbGlua2Vk
X3B0cjxEZXJpdmVkMT4sIGFuZAotICAvLyBsaW5rZWRfcHRyPERlcml2ZWQyPikuICBUaGVyZWZv
cmUgd2UgbXVzdCB1c2UgYSBzaW5nbGUgbXV0ZXggdG8KLSAgLy8gcHJvdGVjdCBhbGwgbGlua2Vk
X3B0ciBvYmplY3RzLiAgVGhpcyBjYW4gY3JlYXRlIHNlcmlvdXMKLSAgLy8gY29udGVudGlvbiBp
biBwcm9kdWN0aW9uIGNvZGUsIGJ1dCBpcyBhY2NlcHRhYmxlIGluIGEgdGVzdGluZwotICAvLyBm
cmFtZXdvcmsuCi0KLSAgLy8gSm9pbiBhbiBleGlzdGluZyBjaXJjbGUuCi0gIHZvaWQgam9pbihs
aW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwdHIpCi0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVE
XyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygmZ19saW5rZWRfcHRy
X211dGV4KTsKLQotICAgIGxpbmtlZF9wdHJfaW50ZXJuYWwgY29uc3QqIHAgPSBwdHI7Ci0gICAg
d2hpbGUgKHAtPm5leHRfICE9IHB0cikgewotICAgICAgYXNzZXJ0KHAtPm5leHRfICE9IHRoaXMg
JiYKLSAgICAgICAgICAgICAiVHJ5aW5nIHRvIGpvaW4oKSBhIGxpbmtlZCByaW5nIHdlIGFyZSBh
bHJlYWR5IGluLiAiCi0gICAgICAgICAgICAgIklzIEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxl
ZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAgICB9Ci0gICAgcC0+bmV4dF8gPSB0aGlzOwot
ICAgIG5leHRfID0gcHRyOwotICB9Ci0KLSAgLy8gTGVhdmUgd2hhdGV2ZXIgY2lyY2xlIHdlJ3Jl
IHBhcnQgb2YuICBSZXR1cm5zIHRydWUgaWYgd2Ugd2VyZSB0aGUKLSAgLy8gbGFzdCBtZW1iZXIg
b2YgdGhlIGNpcmNsZS4gIE9uY2UgdGhpcyBpcyBkb25lLCB5b3UgY2FuIGpvaW4oKSBhbm90aGVy
LgotICBib29sIGRlcGFydCgpCi0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhnX2xpbmtlZF9w
dHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygmZ19saW5rZWRfcHRyX211dGV4KTsKLQot
ICAgIGlmIChuZXh0XyA9PSB0aGlzKSByZXR1cm4gdHJ1ZTsKLSAgICBsaW5rZWRfcHRyX2ludGVy
bmFsIGNvbnN0KiBwID0gbmV4dF87Ci0gICAgd2hpbGUgKHAtPm5leHRfICE9IHRoaXMpIHsKLSAg
ICAgIGFzc2VydChwLT5uZXh0XyAhPSBuZXh0XyAmJgotICAgICAgICAgICAgICJUcnlpbmcgdG8g
ZGVwYXJ0KCkgYSBsaW5rZWQgcmluZyB3ZSBhcmUgbm90IGluLiAiCi0gICAgICAgICAgICAgIklz
IEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxlZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAg
ICB9Ci0gICAgcC0+bmV4dF8gPSBuZXh0XzsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIG11dGFibGUgbGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCogbmV4dF87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIGxpbmtlZF9wdHIgewotIHB1YmxpYzoKLSAg
dHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKLQotICAvLyBUYWtlIG92ZXIgb3duZXJzaGlwIG9mIGEg
cmF3IHBvaW50ZXIuICBUaGlzIHNob3VsZCBoYXBwZW4gYXMgc29vbiBhcwotICAvLyBwb3NzaWJs
ZSBhZnRlciB0aGUgb2JqZWN0IGlzIGNyZWF0ZWQuCi0gIGV4cGxpY2l0IGxpbmtlZF9wdHIoVCog
cHRyID0gTlVMTCkgeyBjYXB0dXJlKHB0cik7IH0KLSAgfmxpbmtlZF9wdHIoKSB7IGRlcGFydCgp
OyB9Ci0KLSAgLy8gQ29weSBhbiBleGlzdGluZyBsaW5rZWRfcHRyPD4sIGFkZGluZyBvdXJzZWx2
ZXMgdG8gdGhlIGxpc3Qgb2YgcmVmZXJlbmNlcy4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IGxp
bmtlZF9wdHIobGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSB7IGNvcHkoJnB0cik7IH0KLSAgbGlu
a2VkX3B0cihsaW5rZWRfcHRyIGNvbnN0JiBwdHIpIHsgIC8vIE5PTElOVAotICAgIGFzc2VydCgm
cHRyICE9IHRoaXMpOwotICAgIGNvcHkoJnB0cik7Ci0gIH0KLQotICAvLyBBc3NpZ25tZW50IHJl
bGVhc2VzIHRoZSBvbGQgdmFsdWUgYW5kIGFjcXVpcmVzIHRoZSBuZXcuCi0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBVPiBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0cjxVPiBjb25zdCYgcHRy
KSB7Ci0gICAgZGVwYXJ0KCk7Ci0gICAgY29weSgmcHRyKTsKLSAgICByZXR1cm4gKnRoaXM7Ci0g
IH0KLQotICBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlua2VkX3B0ciBjb25zdCYgcHRyKSB7Ci0g
ICAgaWYgKCZwdHIgIT0gdGhpcykgewotICAgICAgZGVwYXJ0KCk7Ci0gICAgICBjb3B5KCZwdHIp
OwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICAvLyBTbWFydCBwb2ludGVyIG1l
bWJlcnMuCi0gIHZvaWQgcmVzZXQoVCogcHRyID0gTlVMTCkgewotICAgIGRlcGFydCgpOwotICAg
IGNhcHR1cmUocHRyKTsKLSAgfQotICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0K
LSAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQotICBUJiBvcGVyYXRv
ciooKSBjb25zdCB7IHJldHVybiAqdmFsdWVfOyB9Ci0KLSAgYm9vbCBvcGVyYXRvcj09KFQqIHAp
IGNvbnN0IHsgcmV0dXJuIHZhbHVlXyA9PSBwOyB9Ci0gIGJvb2wgb3BlcmF0b3IhPShUKiBwKSBj
b25zdCB7IHJldHVybiB2YWx1ZV8gIT0gcDsgfQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KLSAg
Ym9vbCBvcGVyYXRvcj09KGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgY29uc3QgewotICAgIHJl
dHVybiB2YWx1ZV8gPT0gcHRyLmdldCgpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgot
ICBib29sIG9wZXJhdG9yIT0obGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSBjb25zdCB7Ci0gICAg
cmV0dXJuIHZhbHVlXyAhPSBwdHIuZ2V0KCk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBVPgotICBmcmllbmQgY2xhc3MgbGlua2VkX3B0cjsKLQotICBUKiB2YWx1ZV87
Ci0gIGxpbmtlZF9wdHJfaW50ZXJuYWwgbGlua187Ci0KLSAgdm9pZCBkZXBhcnQoKSB7Ci0gICAg
aWYgKGxpbmtfLmRlcGFydCgpKSBkZWxldGUgdmFsdWVfOwotICB9Ci0KLSAgdm9pZCBjYXB0dXJl
KFQqIHB0cikgewotICAgIHZhbHVlXyA9IHB0cjsKLSAgICBsaW5rXy5qb2luX25ldygpOwotICB9
Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IHZvaWQgY29weShsaW5rZWRfcHRyPFU+IGNvbnN0
KiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHItPmdldCgpOwotICAgIGlmICh2YWx1ZV8pCi0gICAg
ICBsaW5rXy5qb2luKCZwdHItPmxpbmtfKTsKLSAgICBlbHNlCi0gICAgICBsaW5rXy5qb2luX25l
dygpOwotICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUKLWJvb2wgb3BlcmF0
b3I9PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0dXJuIHB0ciA9PSB4
LmdldCgpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUKLWJvb2wgb3BlcmF0b3Ih
PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgpIHsKLSAgcmV0dXJuIHB0ciAhPSB4Lmdl
dCgpOwotfQotCi0vLyBBIGZ1bmN0aW9uIHRvIGNvbnZlcnQgVCogaW50byBsaW5rZWRfcHRyPFQ+
Ci0vLyBEb2luZyBlLmcuIG1ha2VfbGlua2VkX3B0cihuZXcgRm9vQmFyQmF6PHR5cGU+KGFyZykp
IGlzIGEgc2hvcnRlciBub3RhdGlvbgotLy8gZm9yIGxpbmtlZF9wdHI8Rm9vQmFyQmF6PHR5cGU+
ID4obmV3IEZvb0JhckJhejx0eXBlPihhcmcpKQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1saW5r
ZWRfcHRyPFQ+IG1ha2VfbGlua2VkX3B0cihUKiBwdHIpIHsKLSAgcmV0dXJuIGxpbmtlZF9wdHI8
VD4ocHRyKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2Ug
dGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
TElOS0VEX1BUUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdl
bmVyYXRlZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmFjOGMwMjcwM2Q1OTFl
YjJmMjJlZjE0ODQxYjQyNTU2YzUwNDA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1
NTIgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAg
ICBwdW1wLnB5IGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcAotLy8gRE8gTk9UIEVE
SVQgQlkgSEFORCEhIQotCi0vLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgotLy8gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1l
dDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0v
LwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9yIGltcGxlbWVudGluZyBw
YXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIFNDUklQ
VC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5IEdvb2dsZSBUZXN0IHN1
cHBvcnRzIGF0IG1vc3QgNTAgYXJndW1lbnRzIGluIFZhbHVlcywKLS8vIGFuZCBhdCBtb3N0IDEw
IGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0
aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGltaXRlZAotLy8gYnkg
dGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlz
Ci0vLyBjdXJyZW50bHkgc2V0IGF0IDEwLgotCi0vLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1Qg
REVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJB
TV9VVElMX0dFTkVSQVRFRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9y
dC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8vIEZvcndhcmQgZGVjbGFyYXRpb25zIG9m
IFZhbHVlc0luKCksIHdoaWNoIGlzIGltcGxlbWVudGVkIGluCi0vLyBpbmNsdWRlL2d0ZXN0L2d0
ZXN0LXBhcmFtLXRlc3QuaC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1p
bnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6
Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihG
b3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRvciBlbmQpOwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gVmFsdWVz
SW4oY29uc3QgVCAoJmFycmF5KVtOXSk7Ci0KLXRlbXBsYXRlIDxjbGFzcyBDb250YWluZXI+Ci1p
bnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dHlwZW5hbWUgQ29udGFpbmVyOjp2YWx1ZV90eXBlPiBW
YWx1ZXNJbigKLSAgICBjb25zdCBDb250YWluZXImIGNvbnRhaW5lcik7Ci0KLW5hbWVzcGFjZSBp
bnRlcm5hbCB7Ci0KLS8vIFVzZWQgaW4gdGhlIFZhbHVlcygpIGZ1bmN0aW9uIHRvIHByb3ZpZGUg
cG9seW1vcnBoaWMgY2FwYWJpbGl0aWVzLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotY2xhc3Mg
VmFsdWVBcnJheTEgewotIHB1YmxpYzoKLSAgZXhwbGljaXQgVmFsdWVBcnJheTEoVDEgdjEpIDog
djFfKHYxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdl
bmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8
VD4odjFfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkxKGNvbnN0IFZhbHVlQXJyYXkxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1jbGFz
cyBWYWx1ZUFycmF5MiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MihUMSB2MSwgVDIgdjIpIDog
djFfKHYxKSwgdjJfKHYyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyKGNvbnN0IFZhbHVlQXJyYXkyJiBvdGhl
cikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTImIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0g
IGNvbnN0IFQyIHYyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPgotY2xhc3MgVmFsdWVBcnJheTMgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTMoVDEgdjEsIFQyIHYyLCBUMyB2MykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMoY29uc3QgVmFsdWVBcnJh
eTMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhv
dGhlci52M18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkz
JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQz
IHYzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIFZhbHVlQXJyYXk0IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXk0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksCi0gICAgICB2NF8odjQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pfTsKLSAgICByZXR1cm4gVmFsdWVz
SW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQoY29uc3QgVmFsdWVBcnJheTQmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5NCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBj
b25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1j
bGFzcyBWYWx1ZUFycmF5NSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NShUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwKLSAgICAg
IHY0Xyh2NCksIHY1Xyh2NSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NShjb25zdCBW
YWx1ZUFycmF5NSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NSYgb3RoZXIpOwotCi0gIGNv
bnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0
IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNj4KLWNsYXNzIFZhbHVlQXJyYXk2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk2KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYpIDogdjFfKHYxKSwgdjJfKHYy
KSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2Nikge30KLQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7
Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0
PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0
XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5Nihjb25zdCBW
YWx1ZUFycmF5NiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTYm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci1j
bGFzcyBWYWx1ZUFycmF5NyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NykgOiB2MV8odjEpLAotICAgICAgdjJf
KHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSB7fQotCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNv
bnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8
VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZf
KSwgc3RhdGljX2Nhc3Q8VD4odjdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk3KGNvbnN0IFZhbHVlQXJyYXk3JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
IHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk3JiBvdGhlcik7
Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAg
Y29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3Qg
VDcgdjdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4PgotY2xhc3MgVmFsdWVBcnJheTggewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
Ci0gICAgICBUOCB2OCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSB7fQotCi0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBj
b25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nh
c3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk4KGNvbnN0IFZhbHVlQXJyYXk4JiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5OCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIFZhbHVlQXJyYXk5IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXk5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBU
OCB2OCwKLSAgICAgIFQ5IHY5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2Fz
dDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2OV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTkoY29uc3QgVmFsdWVBcnJheTkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8p
LCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwg
djVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4
XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1jbGFz
cyBWYWx1ZUFycmF5MTAgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTEwKFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBU
MTAgdjEwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2
Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCkge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEwKGNvbnN0IFZhbHVlQXJyYXkxMCYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkxMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMT4KLWNsYXNzIFZhbHVlQXJyYXkxMSB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MTEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEpIDogdjFfKHYxKSwgdjJfKHYy
KSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4
Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyl9OwotICAgIHJl
dHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTEoY29uc3QgVmFsdWVB
cnJheTExJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2
M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIu
djZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5
XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWNsYXNzIFZhbHVlQXJyYXkxMiB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5MTIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIp
IDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwKLSAgICAgIHY2
Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2
MTJfKHYxMikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTIoY29uc3QgVmFs
dWVBcnJheTEyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkx
MiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBU
MyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87
Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNv
bnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLWNsYXNzIFZhbHVlQXJyYXkxMyB7Ci0gcHVibGljOgot
ICBWYWx1ZUFycmF5MTMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQx
MyB2MTMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwKLSAgICAgIHY1Xyh2
NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2
MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pfTsKLSAgICByZXR1cm4gVmFs
dWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEzKGNvbnN0IFZhbHVlQXJyYXkxMyYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVy
LnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0g
ICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBf
KG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwg
djEzXyhvdGhlci52MTNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQ+Ci1jbGFzcyBWYWx1ZUFycmF5MTQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE0KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0KSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8o
djYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYx
MSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkxNChjb25zdCBWYWx1ZUFycmF5MTQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3Ro
ZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVy
LnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52
OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIu
djExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTE0JiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotY2xhc3MgVmFsdWVBcnJheTE1IHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXkxNShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNf
KHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0
Xyh2MTQpLCB2MTVfKHYxNSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEy
XyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MTUoY29uc3QgVmFsdWVBcnJheTE1JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLWNsYXNzIFZhbHVl
QXJyYXkxNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTYoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYpIDog
djFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2
NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2
Xyh2MTYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
LCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3Rh
dGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxNihjb25zdCBWYWx1ZUFycmF5MTYmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkxNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0g
IGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0g
IGNvbnN0IFQxNiB2MTZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3PgotY2xhc3Mg
VmFsdWVBcnJheTE3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxNyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYx
NiwKLSAgICAgIFQxNyB2MTcpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8o
djEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAg
djE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9
Ci0KLSAgVmFsdWVBcnJheTE3KGNvbnN0IFZhbHVlQXJyYXkxNyYgb3RoZXIpIDogdjFfKG90aGVy
LnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52
NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdf
KSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAg
ICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwg
djE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2
XyksIHYxN18ob3RoZXIudjE3Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTE3JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTg+Ci1jbGFzcyBWYWx1ZUFycmF5MTggewot
IHB1YmxpYzoKLSAgVmFsdWVBcnJheTE4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAg
ICAgVDE4IHYxOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUp
LCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2
MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYx
NSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4Xyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTgoY29u
c3QgVmFsdWVBcnJheTE4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOT4KLWNsYXNzIFZhbHVlQXJyYXkxOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTkoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQx
NSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5KSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2
N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIp
LCB2MTNfKHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdf
KHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJy
YXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxU
Pih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18p
LCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0
aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZh
bHVlQXJyYXkxOShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2
Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVf
KG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4Xyhv
dGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8o
b3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3Ro
ZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdf
KG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTkmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMD4KLWNsYXNzIFZhbHVlQXJyYXkyMCB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjAoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksCi0gICAgICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLAotICAgICAgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwKLSAgICAgIHYxOV8odjE5
KSwgdjIwXyh2MjApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MjAoY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgVmFsdWVBcnJheTIwJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2
Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0g
IGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0
IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBU
MTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBU
MTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBU
MTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLWNsYXNzIFZhbHVlQXJyYXkyMSB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5MjEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2
MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2
OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMp
LCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThf
KHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSkge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MjEoY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXykge30KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEg
djFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwot
ICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25z
dCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQx
MSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQx
NCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQx
NyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQy
MCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWNsYXNzIFZhbHVlQXJyYXkyMiB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjIoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyKSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgp
LCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2
MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2
MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjIoY29u
c3QgVmFsdWVBcnJheTIyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIw
XyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXykge30KLQotIHByaXZhdGU6Ci0g
IC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFf
OwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBj
b25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBU
OCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2
MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2
MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2
MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2
MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLWNsYXNz
IFZhbHVlQXJyYXkyMyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjMoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzKSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5
KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9
Ci0KLSAgVmFsdWVBcnJheTIzKGNvbnN0IFZhbHVlQXJyYXkyMyYgb3RoZXIpIDogdjFfKG90aGVy
LnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52
NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdf
KSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAg
ICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwg
djE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2
XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVy
LnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYy
Ml8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MjMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0PgotY2xhc3MgVmFsdWVBcnJheTI0IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXkyNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQpIDogdjFfKHYx
KSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwK
LSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCkge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxU
Pih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjQoY29uc3QgVmFsdWVBcnJheTI0JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyNCYg
b3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2
M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0g
IGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0
IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0
IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0
IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0
IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0
IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1jbGFzcyBWYWx1ZUFycmF5MjUgewotIHB1Ymxp
YzoKLSAgVmFsdWVBcnJheTI1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYy
NCwKLSAgICAgIFQyNSB2MjUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8o
djEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAg
djE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0
aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0lu
KGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNShjb25zdCBWYWx1ZUFycmF5MjUmIG90aGVy
KSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18p
LCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAg
djdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhl
ci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18o
b3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2
MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAg
ICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwg
djIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0
XyksIHYyNV8ob3RoZXIudjI1Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTI1JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTgg
djE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEg
djIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQg
djI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2PgotY2xhc3MgVmFsdWVBcnJheTI2IHsKLSBwdWJsaWM6Ci0g
IFZhbHVlQXJyYXkyNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBU
NyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgs
IFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQy
NSB2MjUsCi0gICAgICBUMjYgdjI2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJy
YXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxU
Pih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18p
LCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0
aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MjYoY29uc3QgVmFsdWVBcnJheTI2JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90
aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3
XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5Xyks
IHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0g
ICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8p
LCB2MjZfKG90aGVyLnYyNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkyNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNz4KLWNs
YXNzIFZhbHVlQXJyYXkyNyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjcoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3
IHYyNykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8o
djYpLAotICAgICAgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYx
MSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLAotICAgICAgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYx
Nl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwKLSAgICAgIHYyMF8odjIw
KSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSks
Ci0gICAgICB2MjZfKHYyNiksIHYyN18odjI3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNyhjb25zdCBWYWx1ZUFy
cmF5MjcmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAg
ICB2MjdfKG90aGVyLnYyN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkyNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwot
ICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25z
dCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2
OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYx
Ml87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYx
NV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYx
OF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYy
MV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYy
NF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYy
N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOD4KLWNsYXNzIFZhbHVlQXJyYXkyOCB7Ci0gcHVi
bGljOgotICBWYWx1ZUFycmF5MjgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQg
djI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCkgOiB2MV8odjEp
LCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdf
KHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwK
LSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2
MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2
MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYy
NiksIHYyN18odjI3KSwgdjI4Xyh2MjgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nh
c3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxU
Pih2MjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJy
YXkyOChjb25zdCBWYWx1ZUFycmF5MjgmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3Ro
ZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVy
LnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52
OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIu
djExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0
XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVy
LnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhv
dGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYy
M18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8o
b3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pIHt9
Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyOCYgb3RoZXIpOwot
Ci0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNv
bnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3
IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBf
OwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNf
OwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZf
OwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlf
OwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJf
OwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVf
OwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2Mjhf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLWNsYXNzIFZhbHVlQXJy
YXkyOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjkoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBU
MjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYy
OCwgVDI5IHYyOSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2
MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSkg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1
XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYy
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2
MjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXky
OShjb25zdCBWYWx1ZUFycmF5MjkmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIu
djJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1
XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8p
LCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjEx
XyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0Xyks
Ci0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYx
N18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhl
ci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18o
b3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3Ro
ZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2Mjlf
KG90aGVyLnYyOV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkyOSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0g
IGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0g
IGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0g
IGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0g
IGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0g
IGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0g
IGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUg
VDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLWNsYXNzIFZhbHVlQXJyYXkzMCB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5MzAoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLAotICAgICAgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAot
ICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5
Xyh2MjkpLCB2MzBfKHYzMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEy
XyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxU
Pih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYx
OV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyks
IHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2
MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8p
LCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzAoY29uc3Qg
VmFsdWVBcnJheTMwJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0g
ICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8o
b3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90
aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJf
KG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAg
djE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4
XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyks
IHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYy
M18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8p
LAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52
MjlfKSwgdjMwXyhvdGhlci52MzBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MzAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLWNsYXNzIFZhbHVlQXJyYXkzMSB7Ci0gcHVibGljOgot
ICBWYWx1ZUFycmF5MzEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2Niwg
VDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQx
MyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4
LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBU
MjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYz
MCwgVDMxIHYzMSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAot
ICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYx
NSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYy
MF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyksIHYyNF8odjI0
KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5
Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJh
eSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzEoY29uc3QgVmFsdWVBcnJheTMxJiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEw
XyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVy
LnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2Xyhv
dGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYx
OV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8o
b3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2
MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52Mjdf
KSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwK
LSAgICAgIHYzMV8ob3RoZXIudjMxXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgVmFsdWVBcnJheTMxJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2
Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0g
IGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0
IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBU
MTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBU
MTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBU
MTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBU
MjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBU
MjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBU
MjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBU
MzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzI+
Ci1jbGFzcyBWYWx1ZUFycmF5MzIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTMyKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1
LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIx
IHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIpIDog
djFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2
NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2
Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8o
djIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwg
djI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2
MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
ICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5
W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwg
c3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGlj
X2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRp
Y19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nh
c3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19j
YXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pfTsKLSAgICBy
ZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMyKGNvbnN0IFZhbHVl
QXJyYXkzMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAg
djNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVy
LnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52
OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhl
ci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8o
b3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3Ro
ZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFf
KG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwg
djI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAg
ICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5Xyks
IHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYz
Ml8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzMiYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187
Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNv
bnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQx
MCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQx
MyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQx
NiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQx
OSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQy
MiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQy
NSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQy
OCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQz
MSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzPgotY2xhc3MgVmFsdWVBcnJheTMzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXkzMyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLAotICAgICAgVDMzIHYzMykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCks
Ci0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8o
djE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2
MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2
MzNfKHYzMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRp
Y19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0
aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19j
YXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0
PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMzXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
MzMoY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8p
LAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52
MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3Ro
ZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNf
KG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90
aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5
XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyks
IHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXykge30KLQotIHByaXZhdGU6Ci0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwot
ICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25z
dCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2
OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFf
OwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRf
OwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdf
OwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBf
OwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNf
OwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZf
OwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2Mjlf
OwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJf
OwotICBjb25zdCBUMzMgdjMzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1jbGFzcyBWYWx1ZUFycmF5MzQgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTM0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMg
djEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwg
VDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1
IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAs
IFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0KSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAg
ICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNf
KHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyks
IHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8o
djIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAg
djI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYz
Ml8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBz
dGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKX07
Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkzNChjb25z
dCBWYWx1ZUFycmF5MzQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2
XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8o
b3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYx
Ml8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAg
ICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2
MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBf
KSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIu
djIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2
XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVy
LnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhv
dGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzQmIG90aGVyKTsKLQotICBjb25z
dCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2
NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0g
IGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29u
c3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29u
c3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29u
c3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29u
c3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29u
c3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29u
c3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29u
c3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29u
c3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNT4KLWNsYXNzIFZhbHVlQXJyYXkzNSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzUo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAg
VDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMy
IHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUpIDogdjFfKHYxKSwgdjJfKHYy
KSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4
Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEz
KSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4
Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIp
LCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2Mjdf
KHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAg
IHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19j
YXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0
PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4o
djM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTM1KGNvbnN0IFZhbHVlQXJyYXkzNSYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSB7fQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzUmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2PgotY2xhc3MgVmFsdWVB
cnJheTM2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzNihUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIs
IFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAg
VDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0
Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAg
ICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2
MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2
MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNikge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRp
Y19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNf
Y2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0
PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+
KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3
XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxU
Pih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYz
NF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2Xyl9
OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzYoY29u
c3QgVmFsdWVBcnJheTM2JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyks
Ci0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2
Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlf
KG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2
MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAg
ICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwg
djE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIw
XyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVy
LnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYy
Nl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhl
ci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8o
b3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2
MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsK
LSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsK
LSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsK
LSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsK
LSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsK
LSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsK
LSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsK
LSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsK
LSAgY29uc3QgVDM2IHYzNl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzc+Ci1jbGFzcyBWYWx1ZUFycmF5MzcgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM3
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIw
IHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAg
IFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQz
MiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3
KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwK
LSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2
MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2
MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLAotICAgICAgdjI0Xyh2MjQpLCB2MjVfKHYy
NSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwKLSAgICAgIHYz
MF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVf
KHYzNSksCi0gICAgICB2MzZfKHYzNiksIHYzN18odjM3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25z
dCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8
VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlf
KSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+
KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2
XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwg
c3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYy
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0
YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM3Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MzcoY29uc3QgVmFsdWVBcnJheTM3JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90
aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3
XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5Xyks
IHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0g
ICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8p
LCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52
MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3Ro
ZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIu
djM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90
aGVyLnYzN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkz
NyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBU
MyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87
Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNv
bnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNv
bnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNv
bnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNv
bnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNv
bnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNv
bnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNv
bnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNv
bnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNv
bnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNv
bnN0IFQzNyB2MzdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzg+Ci1jbGFzcyBWYWx1ZUFycmF5MzggewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTM4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5
IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYy
NSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQz
MSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2
LCBUMzcgdjM3LCBUMzggdjM4KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBf
KHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCks
IHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8o
djE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwg
djI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0g
ICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMz
KSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4
Xyh2MzgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxU
Pih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18p
LCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3Rh
dGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2Fz
dDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nh
c3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxU
Pih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
M18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8
VD4odjM4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5MzgoY29uc3QgVmFsdWVBcnJheTM4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90
aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhl
ci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIu
djhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVy
LnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYx
NF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhl
ci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8o
b3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2
MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZf
KG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwg
djI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMx
XyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0Xyks
Ci0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYz
N18pLCB2MzhfKG90aGVyLnYzOF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkzOCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzk+Ci1jbGFzcyBWYWx1ZUFycmF5MzkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM5KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBU
MTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQy
NiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5KSA6IHYxXyh2MSksIHYyXyh2MiksCi0gICAgICB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5
KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0
Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAg
ICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwg
djM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2
MzgpLCB2MzlfKHYzOSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRp
Y19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0
PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYx
MF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyks
IHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2
MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8p
LCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0
YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBz
dGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0
aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5Xyl9OwotICAgIHJl
dHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzkoY29uc3QgVmFsdWVB
cnJheTM5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2
M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIu
djZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5
XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVy
LnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1Xyhv
dGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhl
ci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8o
b3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2
MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAg
ICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwg
djMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMy
XyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVy
LnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYz
OF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5MzkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNv
bnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNv
bnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNv
bnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNv
bnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNv
bnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNv
bnN0IFQzOSB2MzlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwPgotY2xhc3MgVmFs
dWVBcnJheTQwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MChUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAg
ICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwg
VDQwIHY0MCkgOiB2MV8odjEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVf
KHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwKLSAgICAgIHYxMF8odjEw
KSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSks
Ci0gICAgICB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8o
djIwKSwgdjIxXyh2MjEpLAotICAgICAgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwg
djI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwKLSAgICAgIHYyOF8odjI4KSwgdjI5Xyh2
MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksCi0gICAgICB2
MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5
Xyh2MzkpLAotICAgICAgdjQwXyh2NDApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nh
c3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxU
Pih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
MF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8
VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2
MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8p
LCBzdGF0aWNfY2FzdDxUPih2NDBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk0MChjb25zdCBWYWx1ZUFycmF5NDAmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2Xyks
IHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYz
OV8pLCB2NDBfKG90aGVyLnY0MF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXk0MCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMw
IHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMz
IHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2
IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5
IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MT4KLWNsYXNzIFZhbHVlQXJyYXk0MSB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5NDEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwg
VDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2
MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsCi0gICAgICBUNDEgdjQxKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYz
NSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0
MF8odjQwKSwgdjQxXyh2NDEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8
VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2
MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8p
LCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4o
djI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2Mjhf
KSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBz
dGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwg
c3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0
aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDEoY29uc3QgVmFsdWVBcnJheTQxJiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3Xyhv
dGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhl
ci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18o
b3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2
MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAg
ICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSB7
fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDEmIG90aGVyKTsK
LQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBj
b25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBU
NyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEw
XzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEz
XzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2
XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5
XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIy
XzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1
XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4
XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMx
XzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0
XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3
XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQw
XzsKLSAgY29uc3QgVDQxIHY0MV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1jbGFzcyBWYWx1ZUFycmF5NDIgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTQyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQx
LAotICAgICAgVDQyIHY0MikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2
NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIw
Xyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQp
LCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2Mjlf
KHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMyks
IHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLAot
ICAgICAgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2Fz
dDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nh
c3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQyKGNvbnN0IFZhbHVlQXJyYXk0
MiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90
aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xyks
Ci0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2
MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJf
KSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIu
djE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4
XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVy
LnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0Xyhv
dGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYy
N18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8o
b3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2
MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVf
KSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwK
LSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQx
XyksIHY0Ml8ob3RoZXIudjQyXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTQyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTgg
djE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEg
djIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQg
djI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcg
djI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAg
djMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMg
djMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYg
djM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkg
djM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIg
djQyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEs
IHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzPgotY2xhc3MgVmFsdWVBcnJheTQzIHsKLSBwdWJs
aWM6Ci0gIFZhbHVlQXJyYXk0MyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQx
OCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2
MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBU
MzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYz
NSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwK
LSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRf
KHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSks
IHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8o
djE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYx
OSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYy
NF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4
KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMz
Xyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksCi0gICAg
ICB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSwg
djQzXyh2NDMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFt
R2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2Fz
dDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2
OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwg
c3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0
aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nh
c3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxU
Pih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0
Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXk0Myhjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5Xyhv
dGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhl
ci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8o
b3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2
MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAg
ICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwg
djM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2
XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVy
LnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0
Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNv
bnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNv
bnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNv
bnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNv
bnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNv
bnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNv
bnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNv
bnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NDQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTQ0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcg
djM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0Miwg
VDQzIHY0MywgVDQ0IHY0NCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2
NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2
MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2
MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYx
OSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQp
LAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2Mjlf
KHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyks
IHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksCi0gICAgICB2MzdfKHYzNyksIHYzOF8o
djM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpLAotICAgICAg
djQzXyh2NDMpLCB2NDRfKHY0NCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRp
Y19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0
PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+
KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIx
XyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYy
OF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyks
IHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2
MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18p
LCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0
YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRf
KX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0NChj
b25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJf
KSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1Xyks
IHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2
OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyks
IHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0g
ICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18p
LCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52
MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3Ro
ZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIu
djI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90
aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMy
XyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAg
IHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYz
OF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8p
LCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52
NDNfKSwgdjQ0XyhvdGhlci52NDRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5NDQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQz
MyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQz
NiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQz
OSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0
MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5
cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDU+Ci1jbGFzcyBWYWx1ZUFycmF5
NDUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3
LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2Mjgs
IFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQg
djM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQw
LCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSkgOiB2
MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2
KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAg
ICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwg
djE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2
MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2
MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksCi0gICAgICB2MzBfKHYz
MCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUp
LAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBf
KHY0MCksIHY0MV8odjQxKSwKLSAgICAgIHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCks
IHY0NV8odjQ1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8
VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk0NShjb25zdCBWYWx1ZUFycmF5NDUmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2Xyks
IHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYz
OV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8p
LAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52
NDVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDUmIG90
aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNf
OwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBj
b25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBU
MTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBU
MTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBU
MTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBU
MTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBU
MjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBU
MjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBU
MjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBU
MzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBU
MzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBU
MzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBU
NDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBU
NDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0
Nj4KLWNsYXNzIFZhbHVlQXJyYXk0NiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDYoVDEgdjEs
IFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwK
LSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2
MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYy
NiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwg
VDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2
MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzLCBU
NDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0g
ICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkp
LCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRf
KHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCks
IHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwKLSAgICAgIHYyM18o
djIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYy
OCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYz
M18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3
KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwKLSAgICAgIHY0MV8odjQxKSwgdjQy
Xyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLCB2NDZfKHY0Nikge30KLQot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBj
b25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRp
Y19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0
PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2
XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2
MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18p
LCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0
YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBz
dGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0
aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19j
YXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNf
Y2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0
PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTQ2KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52
MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3Ro
ZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIu
djQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90
aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29u
c3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29u
c3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29u
c3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29u
c3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29u
c3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29u
c3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29u
c3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29u
c3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29u
c3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29u
c3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29u
c3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAgY29u
c3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUg
VDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVu
YW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5h
bWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5
cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3
PgotY2xhc3MgVmFsdWVBcnJheTQ3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0NyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAot
ICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYx
NSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQy
MSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBU
MzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0
NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAg
ICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCks
IHY5Xyh2OSksIHYxMF8odjEwKSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYx
MyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYx
OF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAg
ICAgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyks
IHYyOF8odjI4KSwKLSAgICAgIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8o
djMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksCi0gICAgICB2MzVfKHYzNSksIHYzNl8odjM2KSwg
djM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLAotICAgICAgdjQxXyh2
NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLCB2NDVfKHY0NSksIHY0Nl8odjQ2
KSwKLSAgICAgIHY0N18odjQ3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+
KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4
XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwg
c3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYz
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3Xyks
IHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0
YXRpY19jYXN0PFQ+KHY0N18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTQ3KGNvbnN0IFZhbHVlQXJyYXk0NyYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwg
djhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAg
djExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0
XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2Xyks
IHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYx
OV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8p
LAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52
MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3Ro
ZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFf
KG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90
aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3
XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5Xyks
IHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXyksCi0g
ICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90aGVyLnY0NV8p
LCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSB7fQotCi0gcHJpdmF0
ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDcmIG90aGVyKTsKLQotICBjb25zdCBU
MSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87
Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNv
bnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3Qg
VDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3Qg
VDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3Qg
VDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3Qg
VDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3Qg
VDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3Qg
VDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3Qg
VDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3Qg
VDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3Qg
VDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3Qg
VDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3Qg
VDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3Qg
VDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLSAgY29uc3Qg
VDQ3IHY0N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBU
NDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLWNsYXNz
IFZhbHVlQXJyYXk0OCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDgoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYy
NywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywK
LSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBU
NDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LCBUNDggdjQ4KSA6IHYxXyh2MSksCi0gICAgICB2Ml8o
djIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgp
LCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2
MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAgIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2
MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksCi0gICAgICB2MjJfKHYy
MiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2Mjcp
LAotICAgICAgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJf
KHYzMiksIHYzM18odjMzKSwKLSAgICAgIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiks
IHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksCi0gICAgICB2NDBfKHY0MCksIHY0MV8o
djQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLAotICAgICAg
djQ2Xyh2NDYpLCB2NDdfKHY0NyksIHY0OF8odjQ4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8
VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0
OChjb25zdCBWYWx1ZUFycmF5NDgmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIu
djJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1
XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8p
LCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjEx
XyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0Xyks
Ci0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYx
N18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhl
ci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18o
b3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3Ro
ZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2Mjlf
KG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwg
djMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAg
ICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3Xyks
IHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0
MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhl
ci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52NDVfKSwgdjQ2XyhvdGhlci52
NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3XyksIHY0OF8ob3RoZXIudjQ4Xykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQ4JiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNv
bnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNv
bnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNv
bnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNv
bnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187Ci0gIGNv
bnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLSAgY29uc3QgVDQ2IHY0Nl87Ci0gIGNv
bnN0IFQ0NyB2NDdfOwotICBjb25zdCBUNDggdjQ4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0
NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+Ci1jbGFzcyBWYWx1ZUFycmF5NDkgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTQ5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQx
LAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3
IHY0NywgVDQ4IHY0OCwKLSAgICAgIFQ0OSB2NDkpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksCi0gICAgICB2MjdfKHYyNyksIHYy
OF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLAotICAg
ICAgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyks
IHYzOF8odjM4KSwKLSAgICAgIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8o
djQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksCi0gICAgICB2NDVfKHY0NSksIHY0Nl8odjQ2KSwg
djQ3Xyh2NDcpLCB2NDhfKHY0OCksIHY0OV8odjQ5KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRp
Y19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nh
c3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19j
YXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8
VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDhfKSwgc3RhdGljX2Nhc3Q8VD4odjQ5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5NDkoY29uc3QgVmFsdWVBcnJheTQ5JiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwg
djI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAg
ICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyks
IHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYz
Nl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhl
ci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhlci52
NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0XyksIHY0NV8ob3Ro
ZXIudjQ1XyksIHY0Nl8ob3RoZXIudjQ2XyksCi0gICAgICB2NDdfKG90aGVyLnY0N18pLCB2NDhf
KG90aGVyLnY0OF8pLCB2NDlfKG90aGVyLnY0OV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29u
c3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUg
djVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwot
ICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAg
Y29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAg
Y29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAg
Y29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAg
Y29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAg
Y29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAg
Y29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAg
Y29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAg
Y29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAg
Y29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAg
Y29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAg
Y29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwotICBjb25zdCBUNDQgdjQ0XzsKLSAg
Y29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwotICBjb25zdCBUNDcgdjQ3XzsKLSAg
Y29uc3QgVDQ4IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUwPgotY2xhc3MgVmFs
dWVBcnJheTUwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk1MChUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBU
MjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAg
ICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwg
VDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2
NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDksCi0gICAgICBUNTAgdjUwKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3
Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEy
Xyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFf
KHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2
MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2
MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYz
NSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0
MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLAotICAg
ICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3KSwgdjQ4Xyh2NDgpLCB2NDlfKHY0OSks
IHY1MF8odjUwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8
VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0
PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhfKSwgc3RhdGljX2Nhc3Q8VD4o
djQ5XyksIHN0YXRpY19jYXN0PFQ+KHY1MF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkp
OwotICB9Ci0KLSAgVmFsdWVBcnJheTUwKGNvbnN0IFZhbHVlQXJyYXk1MCYgb3RoZXIpIDogdjFf
KG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0Xyhv
dGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3Ro
ZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8p
LAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52
MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3Ro
ZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlf
KG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90
aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1
XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3Xyks
IHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0g
ICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18p
LCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52
MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3Ro
ZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIu
djQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90
aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSwgdjQ4
XyhvdGhlci52NDhfKSwgdjQ5XyhvdGhlci52NDlfKSwgdjUwXyhvdGhlci52NTBfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NTAmIG90aGVyKTsKLQotICBj
b25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBU
NCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187
Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAg
Y29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAg
Y29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAg
Y29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAg
Y29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAg
Y29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAg
Y29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAg
Y29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAg
Y29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAg
Y29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAg
Y29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAg
Y29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAg
Y29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLSAg
Y29uc3QgVDQ3IHY0N187Ci0gIGNvbnN0IFQ0OCB2NDhfOwotICBjb25zdCBUNDkgdjQ5XzsKLSAg
Y29uc3QgVDUwIHY1MF87Ci19OwotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0vLyBJTlRFUk5B
TCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIEdlbmVy
YXRlcyB2YWx1ZXMgZnJvbSB0aGUgQ2FydGVzaWFuIHByb2R1Y3Qgb2YgdmFsdWVzIHByb2R1Y2Vk
Ci0vLyBieSB0aGUgYXJndW1lbnQgZ2VuZXJhdG9ycy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIKLSAgICA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDI+
ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gUGFyYW1U
eXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyKGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyKQotICAgICAgOiBn
MV8oZzEpLCBnMl8oZzIpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3Iy
KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVn
aW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdp
bigpLCBnMl8sIGcyXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3Io
dGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBn
MSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1
cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyKQotICAgICAg
ICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcx
LmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2lu
KCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MikgICAgewotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0K
LSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJh
c2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8v
IEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9y
cwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9m
IHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3Nl
cnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50Ml87Ci0gICAgICBpZiAoY3VycmVudDJfID09
IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVu
dDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7
Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBj
b25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5n
ZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1l
IGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJh
dG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNU
X0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAg
ICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAg
ICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAg
ICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNh
c3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0
IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgot
ICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkg
b2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAg
ICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAg
ICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAg
ICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfKTsKLSAgICB9Ci0KLSAg
IHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6
IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAg
ICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVu
dDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3Ro
ZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSB7Ci0gICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZh
bHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNl
dChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8pKTsKLSAgICB9Ci0gICAgYm9v
bCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3Qg
dGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25l
bnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0
dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJf
ID09IGVuZDJfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVu
dCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3Ro
ZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29u
c3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCBy
YW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUg
YWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+
OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRf
dmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI6Okl0ZXJh
dG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMiYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQyPiBnMl87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIK
LQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLWNs
YXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPiB7Ci0gcHVibGljOgot
ICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gUGFyYW1UeXBlOwotCi0gIENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0g
ICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
Mz4mIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpIHt9Ci0gIHZpcnR1YWwg
fkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0g
ICAgICAgIGczXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhp
cywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46
Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIs
Ci0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJy
ZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MykKLSAgICAgICAg
OiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5l
bmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigp
KSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJlZ2lu
M18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSAgICB7
Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJh
dG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAg
ICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFu
Z2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJl
eW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsK
LSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQzXzsKLSAgICAgIGlmIChj
dXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAg
ICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7
Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAg
ICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICBy
ZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJh
bVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2Vu
ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9m
IHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhC
YXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJU
aGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8
ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3Qg
SXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVh
bFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBp
dGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8g
cmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlv
bnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVy
biAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAg
ICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1
cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50M18pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICBJ
dGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIuYmFz
ZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhvdGhl
ci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAgICBi
ZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0gICAg
ICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVyLmJl
Z2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQzXyhv
dGhlci5jdXJyZW50M18pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0K
LSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0g
ICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1
cnJlbnQyXywgKmN1cnJlbnQzXykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3Qgewot
ICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5n
ZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJl
YWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJy
ZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAg
ICAgICBjdXJyZW50M18gPT0gZW5kM187Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRp
b24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVm
aW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJl
bnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlw
ZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yMzo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3IzJiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGcz
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMwotCi0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWNs
YXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQ+ID4gewotIHB1Ymxp
YzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiBQYXJhbVR5cGU7
Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjQoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0KQotICAg
ICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpIHt9Ci0gIHZpcnR1YWwgfkNh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAg
ICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGcz
Xy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgotICBj
bGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4g
ewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3VycmVu
dDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVy
YXRvciYgY3VycmVudDQpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4x
XyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAotICAg
ICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1
cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSks
IGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5k
NF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpICAgIHsKLSAgICAgIENvbXB1dGVDdXJy
ZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmly
dHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJh
dG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNl
IHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAv
LyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwg
ZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVu
ZCgpKTsKLSAgICAgICsrY3VycmVudDRfOwotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0Xykg
ewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAg
ICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNf
ID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3Vy
cmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAg
ICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAg
IH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUo
KSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50
X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5n
IHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAg
IC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAg
ICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigp
KQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRv
cnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjpl
bmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAv
LyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9u
ZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBh
IHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRF
bmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwK
LSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQx
XyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0g
ICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0Xyk7Ci0gICAgfQotCi0gICBwcml2
YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNl
XyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAg
IGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyks
Ci0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVu
ZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2lu
M18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAg
Y3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40
XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVy
LmN1cnJlbnQ0XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAg
IHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAg
ICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVu
dDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XykpOwotICAgIH0KLSAgICBi
b29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFz
dCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBv
bmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICBy
ZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50
Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gZW5kNF87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0
ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5l
IHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRb
aV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3Vy
cmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNDo6
SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0
JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yNAotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yNQotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRl
c3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVm
IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiBQYXJhbVR5cGU7Ci0KLSAgQ2Fy
dGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQz
PiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNT4mIGc1KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1KCkg
e30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4o
KSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigp
LCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5i
ZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0
b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwK
LSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3Im
IGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBn
NSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ1KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVn
aW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBi
ZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50Miks
Ci0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50
M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVu
ZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkp
LCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSkgICAgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VH
ZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFk
dmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwot
ICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJh
bmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQo
IUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50NV87Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVu
ZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRf
OwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJy
ZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAg
ICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJf
KSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwot
ICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQ
YXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsg
fQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2Ug
Z2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlz
IG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNL
XyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8
ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAg
IDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29u
c3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0Fj
dHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9y
dCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAg
Ly8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFz
aGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJl
dHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAg
ICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAg
IGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVu
dDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9v
dGhlci0+Y3VycmVudDVfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29u
c3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAg
ICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAot
ICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhl
ci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50
Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAg
ICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVu
dDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3Ro
ZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAg
YmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAg
ICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZh
bHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAg
aWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBl
KCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0gICAgICAgICAgICAqY3VycmVu
dDRfLCAqY3VycmVudDVfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAg
ICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdo
ZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hl
ZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQx
XyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAg
IGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ld
XyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8g
Y3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBl
PiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3I1OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1
bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjUmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNf
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNT4gZzVfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1Ci0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3I2Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVz
dGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LAotICAgICAgICBUNj4gPiB7Ci0gcHVibGlj
OgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gUGFy
YW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2KGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBn
NCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQ2PiYgZzYpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCks
IGc1XyhnNSksIGc2XyhnNikge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjYoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
ZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJl
Z2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0Xywg
ZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCkpOwotICB9Ci0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7
Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8u
ZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8u
ZW5kKCksIGc2XywgZzZfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0
b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1Ymxp
YzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6
aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAot
ICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFf
KGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQo
KSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwg
ZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8o
ZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAg
ICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJy
ZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBj
dXJyZW50Nl8oY3VycmVudDYpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3Qgewot
ICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25l
bnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZp
cnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsr
Y3VycmVudDZfOwotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJy
ZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAg
ICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRf
KSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50
M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAg
ICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9u
ZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJl
bnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZp
bmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAg
ICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0Lgot
ICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9y
KCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJh
dG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6
OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENo
ZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAg
IC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5
b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGlu
IGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBB
dEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8
fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVu
dDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYK
LSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAg
ICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAgICAgY3Vy
cmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0
ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNl
XyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVy
LmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJl
Z2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAg
ICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVn
aW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90
aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAg
IGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0Xyks
Ci0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVu
ZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2lu
Nl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAg
Y3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICgh
QXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3Vy
cmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0Xywg
KmN1cnJlbnQ1XywgKmN1cnJlbnQ2XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3Qg
ewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSBy
YW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFz
IHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBj
dXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAg
ICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5k
NF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50
Nl8gPT0gZW5kNl87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBv
dGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBj
b25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRo
IHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRo
ZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46
Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
ND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0
ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46
Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+
OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJh
dG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0
ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+Ojpp
dGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9y
IGN1cnJlbnQ2XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0g
IH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNjo6SXRlcmF0b3IKLQotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2JiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNgotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcKLSAgICA6IHB1YmxpYyBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LAotICAgICAgICBUNz4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVw
bGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yNyhjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUNz4mIGc3KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBn
NF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3I3KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0
aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGcz
Xy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5i
ZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGcz
Xy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2
Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCkpOwotICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVy
YXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVi
bGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVudDIsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+
OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0
LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciYgY3Vy
cmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1LAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciYgY3VycmVudDUsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDY+OjppdGVyYXRvciYgY3VycmVudDYsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciYgY3VycmVudDcpCi0gICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVn
aW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAot
ICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJf
KGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQo
KSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwg
ZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQpLAotICAgICAgICAgIGJlZ2luNV8o
ZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3VycmVudDVfKGN1cnJlbnQ1KSwKLSAgICAg
ICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2XyhnNi5lbmQoKSksIGN1cnJlbnQ2XyhjdXJy
ZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdpbigpKSwgZW5kN18oZzcuZW5kKCkpLCBj
dXJyZW50N18oY3VycmVudDcpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3Qgewot
ICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25l
bnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZp
cnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsr
Y3VycmVudDdfOwotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3XykgewotICAgICAgICBjdXJy
ZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsKLSAgICAgIH0KLSAgICAgIGlm
IChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVudDZfID0gYmVnaW42XzsKLSAg
ICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVuZDVf
KSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRfOwot
ICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50
NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAg
ICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7
Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAg
ICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICBy
ZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJh
bVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2Vu
ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9m
IHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhC
YXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJU
aGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8
ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3Qg
SXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVh
bFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBp
dGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8g
cmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlv
bnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVy
biAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAg
ICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1
cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlw
ZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhl
ci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3Xyk7
Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhl
cikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIu
YmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFf
KG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAg
ICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQy
XyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVy
LmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJl
Z2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAg
ICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVn
aW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90
aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAg
IGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2Xyks
Ci0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVu
ZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XykgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
IHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3
IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAg
ICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XykpOwotICAg
IH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRl
cmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAg
IC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2Uu
Ci0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAg
ICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwK
LSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0g
ZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl8gfHwKLSAgICAgICAgICBjdXJy
ZW50N18gPT0gZW5kN187Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9y
JiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBp
LXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlz
IHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46
Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
NT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0
ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46
Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+
OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJh
dG9yIGN1cnJlbnQ2XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0
ZXJhdG9yIGJlZ2luN187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciBlbmQ3XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9y
IGN1cnJlbnQ3XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0g
IH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzo6SXRlcmF0b3IKLQotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3JiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsK
LX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNwotCi0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLWNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAg
ICAgVDcsIFQ4PiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yOChjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1
PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCkKLSAg
ICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2
KSwgZzdfKGc3KSwKLSAgICAgICAgICBnOF8oZzgpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I4KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlz
LCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5i
ZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdp
bigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4Xy5iZWdpbigpKTsKLSAgfQot
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qg
ewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJf
LmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVf
LmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywKLSAgICAgICAgZzhf
LmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRv
cihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6
aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJl
bnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4KQotICAgICAgICA6IGJh
c2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgp
KSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBl
bmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhn
My5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAg
ICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJl
bnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1
cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8o
ZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVn
aW4oKSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBi
ZWdpbjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCkg
ICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5J
dGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87
Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9m
LXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBi
ZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2Uo
KSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50OF87Ci0gICAgICBp
ZiAoY3VycmVudDhfID09IGVuZDhfKSB7Ci0gICAgICAgIGN1cnJlbnQ4XyA9IGJlZ2luOF87Ci0g
ICAgICAgICsrY3VycmVudDdfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3
XykgewotICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsK
LSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVu
dDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAo
Y3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAg
ICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0Xykg
ewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAg
ICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNf
ID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3Vy
cmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAg
ICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAg
IH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUo
KSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50
X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5n
IHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAg
IC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAg
ICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigp
KQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRv
cnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjpl
bmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAv
LyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9u
ZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBh
IHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRF
bmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwK
LSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQx
XyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0g
ICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAg
ICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJl
bnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09
IHR5cGVkX290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQ3XyAmJgotICAgICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDhfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRl
cmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVn
aW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAg
ICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdp
bjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3Ro
ZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAg
ZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwK
LSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5k
NF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41
XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBj
dXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSwKLSAgICAgICAgYmVnaW42XyhvdGhlci5iZWdpbjZf
KSwKLSAgICAgICAgZW5kNl8ob3RoZXIuZW5kNl8pLAotICAgICAgICBjdXJyZW50Nl8ob3RoZXIu
Y3VycmVudDZfKSwKLSAgICAgICAgYmVnaW43XyhvdGhlci5iZWdpbjdfKSwKLSAgICAgICAgZW5k
N18ob3RoZXIuZW5kN18pLAotICAgICAgICBjdXJyZW50N18ob3RoZXIuY3VycmVudDdfKSwKLSAg
ICAgICAgYmVnaW44XyhvdGhlci5iZWdpbjhfKSwKLSAgICAgICAgZW5kOF8ob3RoZXIuZW5kOF8p
LAotICAgICAgICBjdXJyZW50OF8ob3RoZXIuY3VycmVudDhfKSB7Ci0gICAgICBDb21wdXRlQ3Vy
cmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewot
ICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFy
YW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50M18sCi0gICAgICAgICAgICAq
Y3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZfLCAqY3VycmVudDdfLCAqY3VycmVudDhf
KSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJl
cG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRo
ZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0
cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAot
ICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBl
bmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJl
bnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAg
ICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XzsK
LSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwot
ICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJ
dGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2
ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6
aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46
Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0
b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRl
cmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0
ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3Ig
Y3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0
b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJh
dG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3Vy
cmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3Ig
YmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9y
IGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVu
dDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVn
aW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVu
ZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgYmVnaW42
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGVuZDZf
OwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgY3VycmVudDZfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgYmVnaW43XzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGVuZDdfOwot
ICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgY3VycmVudDdfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgYmVnaW44XzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGVuZDhfOwotICAg
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgY3VycmVudDhfOwotICAgIGxp
bmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I4OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9u
IC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2Fy
dGVzaWFuUHJvZHVjdEdlbmVyYXRvcjgmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4g
ZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUOD4gZzhfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5Ci0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBUOT4gPiB7Ci0gcHVibGljOgot
ICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOT4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5KGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcy
LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAg
ICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOT4m
IGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUp
LCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAgICAgICAgIGc5XyhnOSkge30KLSAgdmly
dHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4g
bmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCksIGcz
XywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2lu
KCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAgICAgICAgZzdfLmJlZ2luKCksIGc4XywgZzhf
LmJlZ2luKCksIGc5XywgZzlfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgp
LAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgp
LCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5kKCksIGc5XywgZzlfLmVuZCgp
KTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25z
dCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0
b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+
JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3Im
IGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAg
IGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQx
KSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJl
bnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMu
ZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4o
KSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdp
bjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0g
ICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8o
Y3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVuZDdfKGc3LmVuZCgp
KSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAgICBiZWdpbjhfKGc4LmJlZ2luKCkpLCBl
bmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50OCksCi0gICAgICAgICAgYmVnaW45Xyhn
OS5iZWdpbigpKSwgZW5kOV8oZzkuZW5kKCkpLCBjdXJyZW50OV8oY3VycmVudDkpICAgIHsKLSAg
ICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3Io
KSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0K
LSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBp
dGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25k
IGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAg
ICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDlfOwotICAgICAgaWYgKGN1cnJl
bnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50OV8gPSBiZWdpbjlfOwotICAgICAgICAr
K2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50OF8gPT0gZW5kOF8pIHsKLSAg
ICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAgICAgKytjdXJyZW50N187Ci0gICAgICB9
Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7Ci0gICAgICAgIGN1cnJlbnQ3XyA9IGJl
Z2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ2
XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1
cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAg
ICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0g
ICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2lu
NF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9
PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJl
bnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAg
Y3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAg
ICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcg
SXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3Vy
cmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVh
bCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90
aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3Vh
cmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUg
dHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0
b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFt
IGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlm
ZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciog
dHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25z
dCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBl
cXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZl
IHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAg
IC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgp
ICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJl
bnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09
IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50
NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2XyAmJgot
ICAgICAgICAgIGN1cnJlbnQ3XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDdfICYmCi0gICAgICAg
ICAgY3VycmVudDhfID09IHR5cGVkX290aGVyLT5jdXJyZW50OF8gJiYKLSAgICAgICAgICBjdXJy
ZW50OV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ5Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgot
ICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhl
ci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFf
KG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAg
ICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwK
LSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3Ro
ZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVu
dDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0g
ICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJl
bnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90
aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAg
IGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAg
ICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIu
YmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdf
KG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAg
ICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4
XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVnaW45XyksCi0gICAgICAgIGVuZDlfKG90aGVy
LmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90aGVyLmN1cnJlbnQ5XykgewotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1
ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQo
bmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAg
ICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1
cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVu
ZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVu
ZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRl
cmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0g
ICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVu
ZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAgICAgICAgY3VycmVu
dDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVuZDVfIHx8Ci0gICAgICAg
ICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAgICAgY3VycmVudDdfID09IGVuZDdfIHx8
Ci0gICAgICAgICAgY3VycmVudDhfID09IGVuZDhfIHx8Ci0gICAgICAgICAgY3VycmVudDlfID09
IGVuZDlfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIp
OwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3Qg
YmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5n
ZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0
dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+
OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+Ojpp
dGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+
OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQz
Pjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVy
YXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+Ojpp
dGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6
aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRv
ciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVy
YXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRl
cmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBj
dXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRv
ciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0
b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBjdXJy
ZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBi
ZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3Ig
ZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBjdXJyZW50
N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBiZWdp
bjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgZW5k
OF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBjdXJyZW50OF87
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBiZWdpbjlf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgZW5kOV87
Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBjdXJyZW50OV87Ci0g
ICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjk6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOSYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiBnNF87
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiBnN187Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ4PiBnOF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5PiBnOV87Ci19OyAg
Ly8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkKLQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTA+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMTAKLSAgICA6
IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNywgVDgsIFQ5LCBUMTA+ID4gewotIHB1YmxpYzoK
LSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMD4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMChj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4mIGcxMCkKLSAgICAg
IDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwg
ZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpLCBnMTBfKGcxMCkge30KLSAgdmly
dHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwKCkge30KLQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBn
M18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdp
bigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4
Xy5iZWdpbigpLCBnOV8sIGc5Xy5iZWdpbigpLCBnMTBfLCBnMTBfLmJlZ2luKCkpOwotICB9Ci0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7
Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8u
ZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8u
ZW5kKCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBnOF8u
ZW5kKCksIGc5XywgZzlfLmVuZCgpLCBnMTBfLCBnMTBfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+
JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3Im
IGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBn
NSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ5LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiYgZzEwLAotICAgICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3ImIGN1cnJlbnQxMCkKLSAgICAg
ICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhn
MS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdp
bigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJl
Z2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSwK
LSAgICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBlbmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0
XyhjdXJyZW50NCksCi0gICAgICAgICAgYmVnaW41XyhnNS5iZWdpbigpKSwgZW5kNV8oZzUuZW5k
KCkpLCBjdXJyZW50NV8oY3VycmVudDUpLAotICAgICAgICAgIGJlZ2luNl8oZzYuYmVnaW4oKSks
IGVuZDZfKGc2LmVuZCgpKSwgY3VycmVudDZfKGN1cnJlbnQ2KSwKLSAgICAgICAgICBiZWdpbjdf
KGc3LmJlZ2luKCkpLCBlbmQ3XyhnNy5lbmQoKSksIGN1cnJlbnQ3XyhjdXJyZW50NyksCi0gICAg
ICAgICAgYmVnaW44XyhnOC5iZWdpbigpKSwgZW5kOF8oZzguZW5kKCkpLCBjdXJyZW50OF8oY3Vy
cmVudDgpLAotICAgICAgICAgIGJlZ2luOV8oZzkuYmVnaW4oKSksIGVuZDlfKGc5LmVuZCgpKSwg
Y3VycmVudDlfKGN1cnJlbnQ5KSwKLSAgICAgICAgICBiZWdpbjEwXyhnMTAuYmVnaW4oKSksIGVu
ZDEwXyhnMTAuZW5kKCkpLCBjdXJyZW50MTBfKGN1cnJlbnQxMCkgICAgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VH
ZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFk
dmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwot
ICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJh
bmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQo
IUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50MTBfOwotICAgICAgaWYgKGN1cnJlbnQxMF8gPT0g
ZW5kMTBfKSB7Ci0gICAgICAgIGN1cnJlbnQxMF8gPSBiZWdpbjEwXzsKLSAgICAgICAgKytjdXJy
ZW50OV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDlfID09IGVuZDlfKSB7Ci0gICAgICAg
IGN1cnJlbnQ5XyA9IGJlZ2luOV87Ci0gICAgICAgICsrY3VycmVudDhfOwotICAgICAgfQotICAg
ICAgaWYgKGN1cnJlbnQ4XyA9PSBlbmQ4XykgewotICAgICAgICBjdXJyZW50OF8gPSBiZWdpbjhf
OwotICAgICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50N18gPT0g
ZW5kN18pIHsKLSAgICAgICAgY3VycmVudDdfID0gYmVnaW43XzsKLSAgICAgICAgKytjdXJyZW50
Nl87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7Ci0gICAgICAgIGN1
cnJlbnQ2XyA9IGJlZ2luNl87Ci0gICAgICAgICsrY3VycmVudDVfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQ1XyA9PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwot
ICAgICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5k
NF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJl
bnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAg
ICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENs
b25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3Vy
cmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhh
dmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0g
ICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3Qu
Ci0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0
b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRl
cmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0
ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAg
Q2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAg
ICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBi
ZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4g
aW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0
IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkp
IHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAm
JgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAg
ICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYKLSAgICAgICAgICBj
dXJyZW50NV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ1XyAmJgotICAgICAgICAgIGN1cnJlbnQ2
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDZfICYmCi0gICAgICAgICAgY3VycmVudDdfID09IHR5
cGVkX290aGVyLT5jdXJyZW50N18gJiYKLSAgICAgICAgICBjdXJyZW50OF8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQ4XyAmJgotICAgICAgICAgIGN1cnJlbnQ5XyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDlfICYmCi0gICAgICAgICAgY3VycmVudDEwXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDEw
Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBv
dGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3Ro
ZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVu
dDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0g
ICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJl
bnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90
aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAg
IGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAg
ICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIu
YmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVf
KG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAg
ICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2
XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVy
LmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJl
Z2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAg
ICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVn
aW45XyksCi0gICAgICAgIGVuZDlfKG90aGVyLmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90
aGVyLmN1cnJlbnQ5XyksCi0gICAgICAgIGJlZ2luMTBfKG90aGVyLmJlZ2luMTBfKSwKLSAgICAg
ICAgZW5kMTBfKG90aGVyLmVuZDEwXyksCi0gICAgICAgIGN1cnJlbnQxMF8ob3RoZXIuY3VycmVu
dDEwXykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQg
Q29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3Vy
cmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAq
Y3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2
XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8sICpjdXJy
ZW50MTBfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBt
dXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVy
IG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5k
IG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQx
XyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQz
XyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAg
IGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBl
bmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5XyA9PSBlbmQ5XyB8fAotICAgICAgICAgIGN1cnJl
bnQxMF8gPT0gZW5kMTBfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRv
ciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUg
aS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBp
cyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+
OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+Ojpp
dGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+
OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2
Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVy
YXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+Ojpp
dGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6
aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRv
ciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVy
YXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRl
cmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBj
dXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRv
ciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0
b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBjdXJy
ZW50OV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3Ig
YmVnaW4xMF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0
b3IgZW5kMTBfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0ZXJhdG9yIGN1
cnJlbnQxMF87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9
OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwOjpJdGVyYXRvcgotCi0gIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBv
cGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwJiBvdGhlcik7Ci0KLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsK
LSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+IGc4XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDk+IGc5XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDEwPiBnMTBfOwotfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMAotCi0KLS8vIElOVEVSTkFMIElNUExFTUVOVEFU
SU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gSGVscGVyIGNsYXNzZXMgcHJv
dmlkaW5nIENvbWJpbmUoKSB3aXRoIHBvbHltb3JwaGljIGZlYXR1cmVzLiBUaGV5IGFsbG93Ci0v
LyBjYXN0aW5nIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3JOPFQ+IHRvIFBhcmFtR2VuZXJhdG9y
PFU+IGlmIFQgaXMKLS8vIGNvbnZlcnRpYmxlIHRvIFUuCi0vLwotdGVtcGxhdGUgPGNsYXNzIEdl
bmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjI+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
MiB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjIoY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpIHt9Ci0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci0gIG9wZXJhdG9yIFBhcmFtR2Vu
ZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4g
UGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyPiA+KAotICAgICAgICBuZXcg
Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI8VDEsIFQyPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDI+ID4oZzJfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IENhcnRlc2lhblByb2R1Y3RIb2xkZXIyJiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBn
MV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1
Y3RIb2xkZXIyCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3Iy
LCBjbGFzcyBHZW5lcmF0b3IzPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjMgewotIHB1
YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIzKGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25z
dCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMykKLSAgICAgIDogZzFf
KGcxKSwgZzJfKGcyKSwgZzNfKGczKSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMz4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGlu
Zzo6dHVwbGU8VDEsIFQyLCBUMz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0
b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPigKLSAgICAgICAgbmV3IENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3IzPFQxLCBUMiwgVDM+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihn
M18pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjMmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3Qg
R2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotfTsgIC8vIGNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXIzCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFz
cyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQ+Ci1j
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNCB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVj
dEhvbGRlcjQoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCkKLSAgICAgIDogZzFf
KGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiA+KCkgY29uc3Qg
ewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQz
LCBUND4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0PFQxLCBUMiwg
VDMsIFQ0PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI0JiBvdGhlcik7Ci0KLSAgY29uc3Qg
R2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0
b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEhvbGRlcjQKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVy
YXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xhc3MgR2Vu
ZXJhdG9yNT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI1IHsKLSBwdWJsaWM6Ci1DYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyNShjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9y
MiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBj
b25zdCBHZW5lcmF0b3I1JiBnNSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwg
ZzRfKGc0KSwgZzVfKGc1KSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDU+ID4oKSBjb25z
dCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwg
VDMsIFQ0LCBUNT4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1PFQx
LCBUMiwgVDMsIFQ0LCBUNT4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQx
PiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNSYgb3RoZXIpOwotCi0gIGNvbnN0
IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJh
dG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNQotCi10ZW1wbGF0ZSA8Y2xh
c3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBj
bGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2PgotY2xh
c3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RI
b2xkZXI2KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBj
b25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRv
cjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2KQotICAgICAgOiBnMV8oZzEpLCBnMl8o
ZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpIHt9Ci0gIHRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNj4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6
dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gPigpIGNvbnN0IHsKLSAgICBy
ZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNj4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDY+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4g
PihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdl
bmVyYXRvcjxUNj4gPihnNl8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3Ix
IGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwot
ICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0
IEdlbmVyYXRvcjYgZzZfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI2Ci0K
LXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5l
cmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdl
bmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjc+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
NyB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjcoY29uc3QgR2VuZXJhdG9yMSYg
ZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25z
dCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJh
dG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIp
LCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpIHt9Ci0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci0gIG9wZXJhdG9y
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
Ci0gICAgICBUNz4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVz
dGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+ID4oCi0gICAgICAgIG5ldyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2Vu
ZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1
PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3XykpKTsKLSAgfQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNyYg
b3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcy
XzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBj
b25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdl
bmVyYXRvcjcgZzdfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI3Ci0KLXRl
bXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0
b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdlbmVy
YXRvcjYsIGNsYXNzIEdlbmVyYXRvcjcsCi0gICAgY2xhc3MgR2VuZXJhdG9yOD4KLWNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXI4IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
OChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3Qg
R2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBn
NSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNiwgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0
IEdlbmVyYXRvcjgmIGc4KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLAotICAgICAgICAgIGc4XyhnOCkge30KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDg+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LAotICAgICAgVDg+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2Vu
ZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQy
PiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQ3PiA+KGc3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQ4PiA+KGc4XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyOCYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwot
ICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0
IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJh
dG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotICBjb25zdCBHZW5lcmF0b3I4IGc4
XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOAotCi10ZW1wbGF0ZSA8Y2xh
c3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBj
bGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFz
cyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjk+Ci1j
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOSB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVj
dEhvbGRlcjkoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJh
dG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3
LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5JiBnOSkKLSAgICAg
IDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwg
ZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpIHt9Ci0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LAotICAgICAgVDk+ID4oKSBjb25zdCB7Ci0gICAgcmV0
dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwKLSAgICAgICAgVDk+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PigKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1H
ZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4oZzdfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDk+ID4oZzlfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI5JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJh
dG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGcz
XzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBj
b25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187Ci0gIGNvbnN0IEdl
bmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5IGc5XzsKLX07ICAvLyBjbGFzcyBDYXJ0
ZXNpYW5Qcm9kdWN0SG9sZGVyOQotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3Mg
R2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFz
cyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3LAotICAgIGNs
YXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjksIGNsYXNzIEdlbmVyYXRvcjEwPgotY2xh
c3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0
SG9sZGVyMTAoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAg
IGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJh
dG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3
LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25zdCBHZW5lcmF0b3I5JiBnOSwgY29uc3Qg
R2VuZXJhdG9yMTAmIGcxMCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRf
KGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8o
ZzkpLCBnMTBfKGcxMCkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICBUMTA+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJu
IFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksCi0gICAgICAgIFQxMD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1
Y3RHZW5lcmF0b3IxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LAotICAgICAg
ICAgICAgVDEwPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4o
ZzdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDk+ID4oZzlfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDEwPiA+KGcxMF8pKSk7Ci0gIH0KLQotIHByaXZhdGU6
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwJiBvdGhlcik7Ci0K
LSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25z
dCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVy
YXRvcjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBn
N187Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5IGc5XzsKLSAg
Y29uc3QgR2VuZXJhdG9yMTAgZzEwXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyMTAKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKLQotfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5wdW1wIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwZGZmZTQzYzNjNjc4NTY4NTI0NmRiNWYz
MWQxOTQ3YzhhMjJjMjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVz
dC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKKysrIC9kZXYvbnVsbApAQCAtMSwyODIgKzAs
MCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFyIG4gPSA1MCAgJCQgTWF4aW11bSBsZW5n
dGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kdmFyIG1heHR1cGxl
ID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJpbmUgYXJndW1lbnRzIHdlIHdhbnQgdG8g
c3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJl
c2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8K
LS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
Ly8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LS8vIFR5cGUgYW5kIGZ1bmN0aW9uIHV0aWxpdGllcyBmb3IgaW1wbGVtZW50aW5nIHBhcmFtZXRl
cml6ZWQgdGVzdHMuCi0vLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8g
Tk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgR29vZ2xlIFRlc3Qgc3VwcG9ydHMg
YXQgbW9zdCAkbiBhcmd1bWVudHMgaW4gVmFsdWVzLAotLy8gYW5kIGF0IG1vc3QgJG1heHR1cGxl
IGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29udGFjdAotLy8gZ29vZ2xldGVzdGZyYW1l
d29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVkIG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0
aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENvbWJpbmUgaXMgbGltaXRlZAotLy8gYnkg
dGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlz
Ci0vLyBjdXJyZW50bHkgc2V0IGF0ICRtYXh0dXBsZS4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEg
RE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RF
U1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9J
TlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGb3J3YXJkIGRlY2xhcmF0
aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgotLy8gaW5jbHVkZS9n
dGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJh
dG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBlbmFtZSA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgotVmFs
dWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+
IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pOwotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFp
bmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVf
dHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOwotCi1uYW1l
c3BhY2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGluIHRoZSBWYWx1ZXMoKSBmdW5jdGlvbiB0byBw
cm92aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGllcy4KLSRyYW5nZSBpIDEuLm4KLSRmb3IgaSBb
WwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgot
Y2xhc3MgVmFsdWVBcnJheSRpIHsKLSBwdWJsaWM6Ci0gICRpZiBpPT0xIFtbZXhwbGljaXQgXV1W
YWx1ZUFycmF5JGkoJGZvciBqLCBbW1QkaiB2JGpdXSkgOiAkZm9yIGosIFtbdiQoailfKHYkaild
XSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRv
cjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7JGZvciBqLCBbW3N0YXRpY19j
YXN0PFQ+KHYkKGopXyldXX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0g
IFZhbHVlQXJyYXkkaShjb25zdCBWYWx1ZUFycmF5JGkmIG90aGVyKSA6ICRmb3IgaiwgW1t2JChq
KV8ob3RoZXIudiQoailfKV1dIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZh
bHVlQXJyYXkkaSYgb3RoZXIpOwotCi0kZm9yIGogW1sKLQotICBjb25zdCBUJGogdiQoailfOwot
XV0KLQotfTsKLQotXV0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8gSU5URVJOQUwgSU1Q
TEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0vLyBHZW5lcmF0ZXMg
dmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIHZhbHVlcyBwcm9kdWNlZAotLy8g
YnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwotJHJhbmdlIGkgMi4ubWF4dHVwbGUKLSRm
b3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgMi4uaQotCi10ZW1wbGF0ZSA8JGZvciBq
LCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvciRpCi0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8JGZv
ciBqLCBbW1Qkal1dPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTwk
Zm9yIGosIFtbVCRqXV0+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
JGkoJGZvciBqLCBbW2NvbnN0IFBhcmFtR2VuZXJhdG9yPFQkaj4mIGckal1dKQotICAgICAgOiAk
Zm9yIGosIFtbZyQoailfKGckaildXSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yJGkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsICRmb3Ig
aiwgW1tnJChqKV8sIGckKGopXy5iZWdpbigpXV0pOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcih0aGlzLCAkZm9yIGosIFtbZyQoailfLCBnJChqKV8uZW5kKCldXSk7Ci0gIH0KLQot
IHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwgJGZvciBqLCBbWwotCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGosCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUJGo+OjppdGVyYXRvciYgY3VycmVudCQoaildXSkKLSAgICAgICAgOiBiYXNlXyhi
YXNlKSwKLSRmb3IgaiwgW1sKLQotICAgICAgICAgIGJlZ2luJChqKV8oZyRqLmJlZ2luKCkpLCBl
bmQkKGopXyhnJGouZW5kKCkpLCBjdXJyZW50JChqKV8oY3VycmVudCRqKQotXV0gICAgewotICAg
ICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigp
IHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQot
ICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0
ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQg
ZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAg
ICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50JChpKV87Ci0KLSRmb3IgayBbWwot
ICAgICAgaWYgKGN1cnJlbnQkKGkrMi1rKV8gPT0gZW5kJChpKzItaylfKSB7Ci0gICAgICAgIGN1
cnJlbnQkKGkrMi1rKV8gPSBiZWdpbiQoaSsyLWspXzsKLSAgICAgICAgKytjdXJyZW50JChpKzIt
ay0xKV87Ci0gICAgICB9Ci0KLV1dCi0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAg
fQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgp
IGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2
aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRf
dmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcg
dGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAg
Ly8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAg
ICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkp
Ci0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9y
cyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVu
ZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNr
ZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8v
IFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25k
IHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEg
dmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVu
ZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAot
ICAgICAgICAgKCRmb3IgaiAgJiYgW1sKLQotICAgICAgICAgIGN1cnJlbnQkKGopXyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudCQoailfCi1dXSk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0
ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNl
XyksICRmb3IgaiwgW1sKLQotICAgICAgICBiZWdpbiQoailfKG90aGVyLmJlZ2luJChqKV8pLAot
ICAgICAgICBlbmQkKGopXyhvdGhlci5lbmQkKGopXyksCi0gICAgICAgIGN1cnJlbnQkKGopXyhv
dGhlci5jdXJyZW50JChqKV8pCi1dXSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVu
ZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCRmb3Igaiwg
W1sqY3VycmVudCQoailfXV0pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAg
ICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ug
d2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFj
aGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0kZm9yIGogIHx8IFtbCi0K
LSAgICAgICAgICBjdXJyZW50JChqKV8gPT0gZW5kJChqKV8KLV1dOwotICAgIH0KLQotICAgIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lk
IG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1f
IGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNl
cy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3Iu
Ci0kZm9yIGogW1sKLQotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQkaj46Oml0
ZXJhdG9yIGJlZ2luJChqKV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VCRq
Pjo6aXRlcmF0b3IgZW5kJChqKV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VCRqPjo6
aXRlcmF0b3IgY3VycmVudCQoailfOwotXV0KLQotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBj
dXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3Ik
aTo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3IkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+
IGckKGopXzsKLQotXV0KLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkK
LQotCi1dXQotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNF
UiBDT0RFLgotLy8KLS8vIEhlbHBlciBjbGFzc2VzIHByb3ZpZGluZyBDb21iaW5lKCkgd2l0aCBw
b2x5bW9ycGhpYyBmZWF0dXJlcy4gVGhleSBhbGxvdwotLy8gY2FzdGluZyBDYXJ0ZXNpYW5Qcm9k
dWN0R2VuZXJhdG9yTjxUPiB0byBQYXJhbUdlbmVyYXRvcjxVPiBpZiBUIGlzCi0vLyBjb252ZXJ0
aWJsZSB0byBVLgotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxlCi0kZm9yIGkgW1sKLSRyYW5nZSBq
IDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1tjbGFzcyBHZW5lcmF0b3Ikal1dPgotY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlciRpIHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyJGkoJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRqJiBnJGpdXSkKLSAgICAgIDogJGZvciBq
LCBbW2ckKGopXyhnJGopXV0ge30KLSAgdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpd
XT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8JGZvciBqLCBb
W1Qkal1dPiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5n
Ojp0dXBsZTwkZm9yIGosIFtbVCRqXV0+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yJGk8JGZvciBqLCBbW1Qkal1dPigKLSRmb3IgaixbWwotCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQkaj4gPihnJChqKV8pCi1dXSkpOwotICB9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXIkaSYgb3RoZXIp
OwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBHZW5lcmF0b3IkaiBnJChqKV87Ci0KLV1dCi19OyAg
Ly8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpCi0KLV1dCi0KLSMgZW5kaWYgIC8vIEdU
RVNUX0hBU19DT01CSU5FCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNw
YWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dU
RVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRp
bC5oCmluZGV4IGQ2NGY2MjBjNGM2NzQzNDY3M2MwYTYxZTIzOTYwYjYxNWMzNGU3ODQuLjNlNDlh
NmJhYWM3MjRkNmJkZWNmYzUxMDYwY2FkNzA4Njc4MzNmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtcGFyYW0tdXRpbC5oCkBAIC0zMiwyMyArMzIsMjYgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfUEFSQU1fVVRJTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX1BBUkFNX1VUSUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAK
KyNpbmNsdWRlIDxjYXNzZXJ0PgogI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVkZSA8dHlwZV90cmFp
dHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LWxpbmtlZF9wdHIuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0
LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCIKKyNpbmNsdWRlICJndGVzdC9n
dGVzdC10ZXN0LXBhcnQuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewotCiAvLyBJbnB1dCB0byBh
IHBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIGdlbmVyYXRvciwgZGVzY3JpYmluZyBhIHRlc3QgcGFy
YW1ldGVyLgogLy8gQ29uc2lzdHMgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZSBhbmQgdGhlIGludGVn
ZXIgcGFyYW1ldGVyIGluZGV4LgogdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4KQEAgLTcyLDEz
ICs3NSwxNCBAQCBzdHJ1Y3QgUHJpbnRUb1N0cmluZ1BhcmFtTmFtZSB7CiBuYW1lc3BhY2UgaW50
ZXJuYWwgewogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNF
UiBDT0RFLgotLy8KKy8vIFV0aWxpdHkgRnVuY3Rpb25zCisKIC8vIE91dHB1dHMgYSBtZXNzYWdl
IGV4cGxhaW5pbmcgaW52YWxpZCByZWdpc3RyYXRpb24gb2YgZGlmZmVyZW50Ci0vLyBmaXh0dXJl
IGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IGNhc2UuIFRoaXMgbWF5IGhhcHBlbiB3aGVuCisvLyBm
aXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IHN1aXRlLiBUaGlzIG1heSBoYXBwZW4gd2hl
bgogLy8gVEVTVF9QIG1hY3JvIGlzIHVzZWQgdG8gZGVmaW5lIHR3byB0ZXN0cyB3aXRoIHRoZSBz
YW1lIG5hbWUKIC8vIGJ1dCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KLUdURVNUX0FQSV8gdm9p
ZCBSZXBvcnRJbnZhbGlkVGVzdENhc2VUeXBlKGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNv
ZGVfbG9jYXRpb24pOworR1RFU1RfQVBJXyB2b2lkIFJlcG9ydEludmFsaWRUZXN0U3VpdGVUeXBl
KGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbik7CiAKIHRlbXBsYXRl
IDx0eXBlbmFtZT4gY2xhc3MgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U7CiB0ZW1wbGF0ZSA8dHlw
ZW5hbWU+IGNsYXNzIFBhcmFtR2VuZXJhdG9yOwpAQCAtMTUzLDcgKzE1Nyw3IEBAIGNsYXNzIFBh
cmFtSXRlcmF0b3IgewogIHByaXZhdGU6CiAgIGZyaWVuZCBjbGFzcyBQYXJhbUdlbmVyYXRvcjxU
PjsKICAgZXhwbGljaXQgUGFyYW1JdGVyYXRvcihQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBp
bXBsKSA6IGltcGxfKGltcGwpIHt9Ci0gIHNjb3BlZF9wdHI8UGFyYW1JdGVyYXRvckludGVyZmFj
ZTxUPiA+IGltcGxfOworICBzdGQ6OnVuaXF1ZV9wdHI8UGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiA+IGltcGxfOwogfTsKIAogLy8gUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gaXMgdGhlIGJp
bmFyeSBpbnRlcmZhY2UgdG8gYWNjZXNzIGdlbmVyYXRvcnMKQEAgLTE5Miw3ICsxOTYsNyBAQCBj
bGFzcyBQYXJhbUdlbmVyYXRvciB7CiAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0
ZXJhdG9yKGltcGxfLT5FbmQoKSk7IH0KIAogIHByaXZhdGU6Ci0gIGxpbmtlZF9wdHI8Y29uc3Qg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gPiBpbXBsXzsKKyAgc3RkOjpzaGFyZWRfcHRyPGNv
bnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+ID4gaW1wbF87CiB9OwogCiAvLyBHZW5lcmF0
ZXMgdmFsdWVzIGZyb20gYSByYW5nZSBvZiB0d28gY29tcGFyYWJsZSB2YWx1ZXMuIENhbiBiZSB1
c2VkIHRvCkBAIC0yMDUsMTIgKzIwOSwxMiBAQCBjbGFzcyBSYW5nZUdlbmVyYXRvciA6IHB1Ymxp
YyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7CiAgIFJhbmdlR2VuZXJhdG9yKFQgYmVnaW4s
IFQgZW5kLCBJbmNyZW1lbnRUIHN0ZXApCiAgICAgICA6IGJlZ2luXyhiZWdpbiksIGVuZF8oZW5k
KSwKICAgICAgICAgc3RlcF8oc3RlcCksIGVuZF9pbmRleF8oQ2FsY3VsYXRlRW5kSW5kZXgoYmVn
aW4sIGVuZCwgc3RlcCkpIHt9Ci0gIHZpcnR1YWwgflJhbmdlR2VuZXJhdG9yKCkge30KKyAgflJh
bmdlR2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8VD4qIEJlZ2luKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBC
ZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGJl
Z2luXywgMCwgc3RlcF8pOwogICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogRW5kKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBFbmQoKSBjb25z
dCBvdmVycmlkZSB7CiAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBlbmRfLCBlbmRfaW5k
ZXhfLCBzdGVwXyk7CiAgIH0KIApAQCAtMjIwLDIwICsyMjQsMjAgQEAgY2xhc3MgUmFuZ2VHZW5l
cmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICAgIEl0ZXJhdG9y
KGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+KiBiYXNlLCBUIHZhbHVlLCBpbnQgaW5k
ZXgsCiAgICAgICAgICAgICAgSW5jcmVtZW50VCBzdGVwKQogICAgICAgICA6IGJhc2VfKGJhc2Up
LCB2YWx1ZV8odmFsdWUpLCBpbmRleF8oaW5kZXgpLCBzdGVwXyhzdGVwKSB7fQotICAgIHZpcnR1
YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmly
dHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNv
bnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRv
cigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9pZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAg
ICAgdmFsdWVfID0gc3RhdGljX2Nhc3Q8VD4odmFsdWVfICsgc3RlcF8pOwogICAgICAgaW5kZXhf
Kys7CiAgICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUo
KSBjb25zdCB7CisgICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUoKSBjb25zdCBv
dmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKICAgICB9Ci0gICAg
dmlydHVhbCBjb25zdCBUKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gJnZhbHVlXzsgfQotICAg
IHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiYgb3Ro
ZXIpIGNvbnN0IHsKKyAgICBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gJnZhbHVlXzsgfQorICAgIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICAvLyBIYXZpbmcgdGhlIHNhbWUg
YmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgogICAgICAgLy8gaXRlcmF0
b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgogICAgICAgR1RFU1Rf
Q0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCkBAIC0yOTAs
MTIgKzI5NCwxMiBAQCBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJs
aWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRm9y
d2FyZEl0ZXJhdG9yPgogICBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IoRm9yd2FyZEl0
ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKQogICAgICAgOiBjb250YWluZXJfKGJl
Z2luLCBlbmQpIHt9Ci0gIHZpcnR1YWwgflZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcigp
IHt9CisgIH5WYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IoKSBvdmVycmlkZSB7fQogCi0g
IHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQmVnaW4oKSBjb25zdCB7CisgIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgIHJl
dHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5iZWdpbigpKTsKICAgfQotICB2aXJ0
dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEVuZCgpIGNvbnN0IHsKKyAgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxUPiogRW5kKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgIHJldHVybiBuZXcg
SXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5lbmQoKSk7CiAgIH0KIApAQCAtMzA3LDE2ICszMTEs
MTYgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxUPiogYmFzZSwKICAgICAgICAgICAgICB0eXBlbmFtZSBDb250YWluZXJUeXBl
Ojpjb25zdF9pdGVyYXRvciBpdGVyYXRvcikKICAgICAgICAgOiBiYXNlXyhiYXNlKSwgaXRlcmF0
b3JfKGl0ZXJhdG9yKSB7fQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0
b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJl
dHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9p
ZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAgICAgKytpdGVyYXRvcl87CiAgICAgICB2YWx1ZV8u
cmVzZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBD
bG9uZSgpIGNvbnN0IHsKKyAgICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBDbG9uZSgpIGNv
bnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwogICAgIH0K
ICAgICAvLyBXZSBuZWVkIHRvIHVzZSBjYWNoZWQgdmFsdWUgcmVmZXJlbmNlZCBieSBpdGVyYXRv
cl8gYmVjYXVzZSAqaXRlcmF0b3JfCkBAIC0zMjYsMTIgKzMzMCwxMSBAQCBjbGFzcyBWYWx1ZXNJ
bkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
VD4gewogICAgIC8vIGNhbiBhZHZhbmNlIGl0ZXJhdG9yXyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
cmFuZ2UsIGFuZCB3ZSBjYW5ub3QKICAgICAvLyBkZXRlY3QgdGhhdCBmYWN0LiBUaGUgY2xpZW50
IGNvZGUsIG9uIHRoZSBvdGhlciBoYW5kLCBpcwogICAgIC8vIHJlc3BvbnNpYmxlIGZvciBub3Qg
Y2FsbGluZyBDdXJyZW50KCkgb24gYW4gb3V0LW9mLXJhbmdlIGl0ZXJhdG9yLgotICAgIHZpcnR1
YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IHsKLSAgICAgIGlmICh2YWx1ZV8uZ2V0KCkgPT0g
TlVMTCkKLSAgICAgICAgdmFsdWVfLnJlc2V0KG5ldyBUKCppdGVyYXRvcl8pKTsKKyAgICBjb25z
dCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgaWYgKHZhbHVlXy5nZXQoKSA9
PSBudWxscHRyKSB2YWx1ZV8ucmVzZXQobmV3IFQoKml0ZXJhdG9yXykpOwogICAgICAgcmV0dXJu
IHZhbHVlXy5nZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJh
bUl0ZXJhdG9ySW50ZXJmYWNlPFQ+JiBvdGhlcikgY29uc3QgeworICAgIGJvb2wgRXF1YWxzKGNv
bnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAg
ICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRo
ZSBvdGhlcgogICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2Fu
IGRvd25jYXN0LgogICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5C
YXNlR2VuZXJhdG9yKCkpCkBAIC0zNTQsOSArMzU3LDkgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRv
clJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAg
ICAvLyBBIGNhY2hlZCB2YWx1ZSBvZiAqaXRlcmF0b3JfLiBXZSBrZWVwIGl0IGhlcmUgdG8gYWxs
b3cgYWNjZXNzIGJ5CiAgICAgLy8gcG9pbnRlciBpbiB0aGUgd3JhcHBpbmcgaXRlcmF0b3IncyBv
cGVyYXRvci0+KCkuCiAgICAgLy8gdmFsdWVfIG5lZWRzIHRvIGJlIG11dGFibGUgdG8gYmUgYWNj
ZXNzZWQgaW4gQ3VycmVudCgpLgotICAgIC8vIFVzZSBvZiBzY29wZWRfcHRyIGhlbHBzIG1hbmFn
ZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKKyAgICAvLyBVc2Ugb2Ygc3RkOjp1bmlxdWVfcHRy
IGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKICAgICAvLyB3aGljaCBpcyBi
b3VuZCBieSB0aGUgbGlmZXNwYW4gb2YgdGhlIGl0ZXJhdG9yIGl0c2VsZi4KLSAgICBtdXRhYmxl
IHNjb3BlZF9wdHI8Y29uc3QgVD4gdmFsdWVfOworICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRy
PGNvbnN0IFQ+IHZhbHVlXzsKICAgfTsgIC8vIGNsYXNzIFZhbHVlc0luSXRlcmF0b3JSYW5nZUdl
bmVyYXRvcjo6SXRlcmF0b3IKIAogICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCkBAIC0zNzYsMjUgKzM3OSwxMiBAQCBzdGQ6OnN0cmluZyBEZWZhdWx0
UGFyYW1OYW1lKGNvbnN0IFRlc3RQYXJhbUluZm88UGFyYW1UeXBlPiYgaW5mbykgewogICByZXR1
cm4gbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCk7CiB9CiAKLS8vIElOVEVSTkFMIElNUExFTUVOVEFU
SU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gUGFyYW1ldGVyaXplZCB0ZXN0
IG5hbWUgb3ZlcmxvYWQgaGVscGVycywgd2hpY2ggaGVscCB0aGUKLS8vIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIG1hY3JvIGNob29zZSBiZXR3ZWVuIHRoZSBkZWZhdWx0IHBhcmFtZXRlcml6ZWQK
LS8vIHRlc3QgbmFtZSBnZW5lcmF0b3IgYW5kIHVzZXIgcGFyYW0gbmFtZSBnZW5lcmF0b3IuCi10
ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlLCBjbGFzcyBQYXJhbU5hbWVHZW5GdW5jdG9yPgotUGFy
YW1OYW1lR2VuRnVuY3RvciBHZXRQYXJhbU5hbWVHZW4oUGFyYW1OYW1lR2VuRnVuY3RvciBmdW5j
KSB7Ci0gIHJldHVybiBmdW5jOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlPgotc3Ry
dWN0IFBhcmFtTmFtZUdlbkZ1bmMgewotICB0eXBlZGVmIHN0ZDo6c3RyaW5nIFR5cGUoY29uc3Qg
VGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+Jik7Ci19OwotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1U
eXBlPgotdHlwZW5hbWUgUGFyYW1OYW1lR2VuRnVuYzxQYXJhbVR5cGU+OjpUeXBlICpHZXRQYXJh
bU5hbWVHZW4oKSB7Ci0gIHJldHVybiBEZWZhdWx0UGFyYW1OYW1lOwordGVtcGxhdGUgPHR5cGVu
YW1lIFQgPSBpbnQ+Cit2b2lkIFRlc3ROb3RFbXB0eSgpIHsKKyAgc3RhdGljX2Fzc2VydChzaXpl
b2YoVCkgPT0gMCwgIkVtcHR5IGFyZ3VtZW50cyBhcmUgbm90IGFsbG93ZWQuIik7CiB9Cit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVCA9IGludD4KK3ZvaWQgVGVzdE5vdEVtcHR5KGNvbnN0IFQmKSB7fQog
CiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgog
Ly8KQEAgLTQwNiw3ICszOTYsNyBAQCBjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdEZhY3RvcnkgOiBw
dWJsaWMgVGVzdEZhY3RvcnlCYXNlIHsKICAgdHlwZWRlZiB0eXBlbmFtZSBUZXN0Q2xhc3M6OlBh
cmFtVHlwZSBQYXJhbVR5cGU7CiAgIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0RmFjdG9yeShQ
YXJhbVR5cGUgcGFyYW1ldGVyKSA6CiAgICAgICBwYXJhbWV0ZXJfKHBhcmFtZXRlcikge30KLSAg
dmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkgeworICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJp
ZGUgewogICAgIFRlc3RDbGFzczo6U2V0UGFyYW0oJnBhcmFtZXRlcl8pOwogICAgIHJldHVybiBu
ZXcgVGVzdENsYXNzKCk7CiAgIH0KQEAgLTQzNCwxOSArNDI0LDE5IEBAIGNsYXNzIFRlc3RNZXRh
RmFjdG9yeUJhc2UgewogLy8gVGVzdE1ldGFGYWN0b3J5IGNyZWF0ZXMgdGVzdCBmYWN0b3JpZXMg
Zm9yIHBhc3NpbmcgaW50bwogLy8gTWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8gZnVuY3Rpb24uIFNp
bmNlIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIHJlY2VpdmVzCiAvLyBvd25lcnNoaXAgb2YgdGVz
dCBmYWN0b3J5IHBvaW50ZXIsIHNhbWUgZmFjdG9yeSBvYmplY3QgY2Fubm90IGJlIHBhc3NlZAot
Ly8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8g
aXMgZ29pbmcgdG8gY2FsbAorLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGVJbmZvIGlzIGdvaW5nIHRvIGNhbGwKIC8vIGl0IGZvciBlYWNoIFRlc3Qv
UGFyYW1ldGVyIHZhbHVlIGNvbWJpbmF0aW9uLiBUaHVzIGl0IG5lZWRzIG1ldGEgZmFjdG9yeQog
Ly8gY3JlYXRvciBjbGFzcy4KLXRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KK3RlbXBsYXRlIDxj
bGFzcyBUZXN0U3VpdGU+CiBjbGFzcyBUZXN0TWV0YUZhY3RvcnkKLSAgICA6IHB1YmxpYyBUZXN0
TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJhbVR5cGU+IHsKKyAgICA6IHB1
YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RTdWl0ZTo6UGFyYW1UeXBlPiB7
CiAgcHVibGljOgotICB0eXBlZGVmIHR5cGVuYW1lIFRlc3RDYXNlOjpQYXJhbVR5cGUgUGFyYW1U
eXBlOworICB1c2luZyBQYXJhbVR5cGUgPSB0eXBlbmFtZSBUZXN0U3VpdGU6OlBhcmFtVHlwZTsK
IAogICBUZXN0TWV0YUZhY3RvcnkoKSB7fQogCi0gIHZpcnR1YWwgVGVzdEZhY3RvcnlCYXNlKiBD
cmVhdGVUZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSB7Ci0gICAgcmV0dXJuIG5ldyBQ
YXJhbWV0ZXJpemVkVGVzdEZhY3Rvcnk8VGVzdENhc2U+KHBhcmFtZXRlcik7CisgIFRlc3RGYWN0
b3J5QmFzZSogQ3JlYXRlVGVzdEZhY3RvcnkoUGFyYW1UeXBlIHBhcmFtZXRlcikgb3ZlcnJpZGUg
eworICAgIHJldHVybiBuZXcgUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5PFRlc3RTdWl0ZT4ocGFy
YW1ldGVyKTsKICAgfQogCiAgcHJpdmF0ZToKQEAgLTQ1NSw5MyArNDQ1LDEwNyBAQCBjbGFzcyBU
ZXN0TWV0YUZhY3RvcnkKIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNF
IElOIFVTRVIgQ09ERS4KIC8vCi0vLyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSBpcyBh
IGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIGNsYXNz
ZXMuIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlCisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mb0Jhc2UgaXMgYSBnZW5lcmljIGludGVyZmFjZQorLy8gdG8gUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZUluZm8gY2xhc3Nlcy4gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlCiAvLyBh
Y2N1bXVsYXRlcyB0ZXN0IGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IFRFU1RfUCBtYWNybyBpbnZv
Y2F0aW9ucwotLy8gYW5kIGdlbmVyYXRvcnMgcHJvdmlkZWQgYnkgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgbWFjcm8gaW52b2NhdGlvbnMKKy8vIGFuZCBnZW5lcmF0b3JzIHByb3ZpZGVkIGJ5IElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpbnZvY2F0aW9ucwogLy8gYW5kIHVzZXMgdGhh
dCBpbmZvcm1hdGlvbiB0byByZWdpc3RlciBhbGwgcmVzdWx0aW5nIHRlc3QgaW5zdGFuY2VzCi0v
LyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4gVGhlIFBhcmFtZXRlcml6ZVRlc3RDYXNlUmVnaXN0
cnkgY2xhc3MgaG9sZHMKLS8vIGEgY29sbGVjdGlvbiBvZiBwb2ludGVycyB0byB0aGUgUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mbyBvYmplY3RzCisvLyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4g
VGhlIFBhcmFtZXRlcml6ZVRlc3RTdWl0ZVJlZ2lzdHJ5IGNsYXNzIGhvbGRzCisvLyBhIGNvbGxl
Y3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIG9iamVj
dHMKIC8vIGFuZCBjYWxscyBSZWdpc3RlclRlc3RzKCkgb24gZWFjaCBvZiB0aGVtIHdoZW4gYXNr
ZWQuCi1jbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7CitjbGFzcyBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgewogIHB1YmxpYzoKLSAgdmlydHVhbCB+UGFyYW1ldGVy
aXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICB2aXJ0dWFsIH5QYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mb0Jhc2UoKSB7fQogCi0gIC8vIEJhc2UgcGFydCBvZiB0ZXN0IGNhc2UgbmFtZSBmb3Ig
ZGlzcGxheSBwdXJwb3Nlcy4KLSAgdmlydHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdENh
c2VOYW1lKCkgY29uc3QgPSAwOwotICAvLyBUZXN0IGNhc2UgaWQgdG8gdmVyaWZ5IGlkZW50aXR5
LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJZCgpIGNvbnN0ID0gMDsKKyAgLy8g
QmFzZSBwYXJ0IG9mIHRlc3Qgc3VpdGUgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgdmly
dHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdFN1aXRlTmFtZSgpIGNvbnN0ID0gMDsKKyAg
Ly8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisgIHZpcnR1YWwgVHlwZUlkIEdl
dFRlc3RTdWl0ZVR5cGVJZCgpIGNvbnN0ID0gMDsKICAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tl
cyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0cyBpbiB0aGlzCi0gIC8vIHRlc3QgY2FzZSBy
aWdodCBiZWZvcmUgcnVubmluZyB0aGVtIGluIFJVTl9BTExfVEVTVFMgbWFjcm8uCi0gIC8vIFRo
aXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIG1vcmUgdGhlbiBvbmNlIG9uIGFueSBzaW5n
bGUKLSAgLy8gaW5zdGFuY2Ugb2YgYSBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSBkZXJp
dmVkIGNsYXNzLgorICAvLyB0ZXN0IHN1aXRlIHJpZ2h0IGJlZm9yZSBydW5uaW5nIHRoZW0gaW4g
UlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgogICB2aXJ0dWFsIHZvaWQg
UmVnaXN0ZXJUZXN0cygpID0gMDsKIAogIHByb3RlY3RlZDoKLSAgUGFyYW1ldGVyaXplZFRlc3RD
YXNlSW5mb0Jhc2UoKSB7fQorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UoKSB7fQog
CiAgcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvQmFzZSk7CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKTsKIH07CiAKIC8vIElOVEVSTkFMIElNUExF
TUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwotLy8gUGFyYW1ldGVyaXpl
ZFRlc3RDYXNlSW5mbyBhY2N1bXVsYXRlcyB0ZXN0cyBvYnRhaW5lZCBmcm9tIFRFU1RfUAotLy8g
bWFjcm8gaW52b2NhdGlvbnMgZm9yIGEgcGFydGljdWxhciB0ZXN0IGNhc2UgYW5kIGdlbmVyYXRv
cnMKLS8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaW52b2Nh
dGlvbnMgZm9yIHRoYXQKLS8vIHRlc3QgY2FzZS4gSXQgcmVnaXN0ZXJzIHRlc3RzIHdpdGggYWxs
IHZhbHVlcyBnZW5lcmF0ZWQgYnkgYWxsCisvLyBSZXBvcnQgYSB0aGUgbmFtZSBvZiBhIHRlc3Rf
c3VpdCBhcyBzYWZlIHRvIGlnbm9yZQorLy8gYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNvbnN0cnVj
dGlvbiBvZiB0aGlzIHR5cGUuCitzdHJ1Y3QgTWFya0FzSWdub3JlZCB7CisgIGV4cGxpY2l0IE1h
cmtBc0lnbm9yZWQoY29uc3QgY2hhciogdGVzdF9zdWl0ZSk7Cit9OworCitHVEVTVF9BUElfIHZv
aWQgSW5zZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGxvY2F0aW9u
LCBib29sIGhhc190ZXN0X3ApOworCisvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5P
VCBVU0UgSU4gVVNFUiBDT0RFLgorLy8KKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGFj
Y3VtdWxhdGVzIHRlc3RzIG9idGFpbmVkIGZyb20gVEVTVF9QCisvLyBtYWNybyBpbnZvY2F0aW9u
cyBmb3IgYSBwYXJ0aWN1bGFyIHRlc3Qgc3VpdGUgYW5kIGdlbmVyYXRvcnMKKy8vIG9idGFpbmVk
IGZyb20gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvIGludm9jYXRpb25zIGZvciB0aGF0
CisvLyB0ZXN0IHN1aXRlLiBJdCByZWdpc3RlcnMgdGVzdHMgd2l0aCBhbGwgdmFsdWVzIGdlbmVy
YXRlZCBieSBhbGwKIC8vIGdlbmVyYXRvcnMgd2hlbiBhc2tlZC4KLXRlbXBsYXRlIDxjbGFzcyBU
ZXN0Q2FzZT4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewordGVtcGxhdGUgPGNsYXNzIFRlc3RTdWl0ZT4KK2Ns
YXNzIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVJbmZvQmFzZSB7CiAgcHVibGljOgogICAvLyBQYXJhbVR5cGUgYW5kIEdlbmVyYXRvckNy
ZWF0aW9uRnVuYyBhcmUgcHJpdmF0ZSB0eXBlcyBidXQgYXJlIHJlcXVpcmVkCiAgIC8vIGZvciBk
ZWNsYXJhdGlvbnMgb2YgcHVibGljIG1ldGhvZHMgQWRkVGVzdFBhdHRlcm4oKSBhbmQKLSAgLy8g
QWRkVGVzdENhc2VJbnN0YW50aWF0aW9uKCkuCi0gIHR5cGVkZWYgdHlwZW5hbWUgVGVzdENhc2U6
OlBhcmFtVHlwZSBQYXJhbVR5cGU7CisgIC8vIEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oKS4K
KyAgdXNpbmcgUGFyYW1UeXBlID0gdHlwZW5hbWUgVGVzdFN1aXRlOjpQYXJhbVR5cGU7CiAgIC8v
IEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIGFwcHJvcHJpYXRlIGdlbmVy
YXRvciB0eXBlLgogICB0eXBlZGVmIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT4oR2VuZXJhdG9y
Q3JlYXRpb25GdW5jKSgpOwotICB0eXBlZGVmIHR5cGVuYW1lIFBhcmFtTmFtZUdlbkZ1bmM8UGFy
YW1UeXBlPjo6VHlwZSBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jOworICB1c2luZyBQYXJhbU5hbWVH
ZW5lcmF0b3JGdW5jID0gc3RkOjpzdHJpbmcoY29uc3QgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+
Jik7CiAKLSAgZXhwbGljaXQgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbygKLSAgICAgIGNvbnN0
IGNoYXIqIG5hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKQotICAgICAgOiB0ZXN0X2Nh
c2VfbmFtZV8obmFtZSksIGNvZGVfbG9jYXRpb25fKGNvZGVfbG9jYXRpb24pIHt9CisgIGV4cGxp
Y2l0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKGNvbnN0IGNoYXIqIG5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9u
KQorICAgICAgOiB0ZXN0X3N1aXRlX25hbWVfKG5hbWUpLCBjb2RlX2xvY2F0aW9uXyhjb2RlX2xv
Y2F0aW9uKSB7fQogCi0gIC8vIFRlc3QgY2FzZSBiYXNlIG5hbWUgZm9yIGRpc3BsYXkgcHVycG9z
ZXMuCi0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RDYXNlTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIHRlc3RfY2FzZV9uYW1lXzsgfQotICAvLyBUZXN0IGNhc2UgaWQgdG8gdmVyaWZ5
IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5cGVJZCgpIGNvbnN0IHsg
cmV0dXJuIEdldFR5cGVJZDxUZXN0Q2FzZT4oKTsgfQorICAvLyBUZXN0IHN1aXRlIGJhc2UgbmFt
ZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RTdWl0
ZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgcmV0dXJuIHRlc3Rfc3VpdGVfbmFtZV87Cisg
IH0KKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRpdHkuCisgIFR5cGVJZCBHZXRU
ZXN0U3VpdGVUeXBlSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBHZXRUeXBlSWQ8VGVzdFN1
aXRlPigpOyB9CiAgIC8vIFRFU1RfUCBtYWNybyB1c2VzIEFkZFRlc3RQYXR0ZXJuKCkgdG8gcmVj
b3JkIGluZm9ybWF0aW9uCiAgIC8vIGFib3V0IGEgc2luZ2xlIHRlc3QgaW4gYSBMb2NhbFRlc3RJ
bmZvIHN0cnVjdHVyZS4KLSAgLy8gdGVzdF9jYXNlX25hbWUgaXMgdGhlIGJhc2UgbmFtZSBvZiB0
aGUgdGVzdCBjYXNlICh3aXRob3V0IGludm9jYXRpb24KKyAgLy8gdGVzdF9zdWl0ZV9uYW1lIGlz
IHRoZSBiYXNlIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUgKHdpdGhvdXQgaW52b2NhdGlvbgogICAv
LyBwcmVmaXgpLiB0ZXN0X2Jhc2VfbmFtZSBpcyB0aGUgbmFtZSBvZiBhbiBpbmRpdmlkdWFsIHRl
c3Qgd2l0aG91dAogICAvLyBwYXJhbWV0ZXIgaW5kZXguIEZvciB0aGUgdGVzdCBTZXF1ZW5jZUEv
Rm9vVGVzdC5Eb0Jhci8xIEZvb1Rlc3QgaXMKLSAgLy8gdGVzdCBjYXNlIGJhc2UgbmFtZSBhbmQg
RG9CYXIgaXMgdGVzdCBiYXNlIG5hbWUuCi0gIHZvaWQgQWRkVGVzdFBhdHRlcm4oY29uc3QgY2hh
ciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVz
dF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQ
YXJhbVR5cGU+KiBtZXRhX2ZhY3RvcnkpIHsKLSAgICB0ZXN0c18ucHVzaF9iYWNrKGxpbmtlZF9w
dHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbyh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Jhc2VfbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXRhX2ZhY3RvcnkpKSk7CisgIC8vIHRlc3Qgc3VpdGUgYmFzZSBuYW1lIGFuZCBEb0JhciBpcyB0
ZXN0IGJhc2UgbmFtZS4KKyAgdm9pZCBBZGRUZXN0UGF0dGVybihjb25zdCBjaGFyKiB0ZXN0X3N1
aXRlX25hbWUsIGNvbnN0IGNoYXIqIHRlc3RfYmFzZV9uYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBlPiogbWV0YV9mYWN0b3J5LAorICAgICAg
ICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgICAgdGVzdHNf
LnB1c2hfYmFjayhzdGQ6OnNoYXJlZF9wdHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbygKKyAgICAg
ICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X2Jhc2VfbmFtZSwgbWV0YV9mYWN0b3J5LCBjb2RlX2xv
Y2F0aW9uKSkpOwogICB9Ci0gIC8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIHVzZXMg
QWRkR2VuZXJhdG9yKCkgdG8gcmVjb3JkIGluZm9ybWF0aW9uCisgIC8vIElOU1RBTlRJQVRFX1RF
U1RfU1VJVEVfUCBtYWNybyB1c2VzIEFkZEdlbmVyYXRvcigpIHRvIHJlY29yZCBpbmZvcm1hdGlv
bgogICAvLyBhYm91dCBhIGdlbmVyYXRvci4KLSAgaW50IEFkZFRlc3RDYXNlSW5zdGFudGlhdGlv
bihjb25zdCBzdGQ6OnN0cmluZyYgaW5zdGFudGlhdGlvbl9uYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRvckNyZWF0aW9uRnVuYyogZnVuYywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUp
IHsKKyAgaW50IEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGlu
c3RhbnRpYXRpb25fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJh
dG9yQ3JlYXRpb25GdW5jKiBmdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
YXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7CiAgICAgaW5zdGFudGlhdGlv
bnNfLnB1c2hfYmFjaygKICAgICAgICAgSW5zdGFudGlhdGlvbkluZm8oaW5zdGFudGlhdGlvbl9u
YW1lLCBmdW5jLCBuYW1lX2Z1bmMsIGZpbGUsIGxpbmUpKTsKICAgICByZXR1cm4gMDsgIC8vIFJl
dHVybiB2YWx1ZSB1c2VkIG9ubHkgdG8gcnVuIHRoaXMgbWV0aG9kIGluIG5hbWVzcGFjZSBzY29w
ZS4KICAgfQotICAvLyBVbml0VGVzdCBjbGFzcyBpbnZva2VzIHRoaXMgbWV0aG9kIHRvIHJlZ2lz
dGVyIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlCi0gIC8vIHRlc3QgY2FzZXMgcmlnaHQgYmVmb3Jl
IHJ1bm5pbmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KLSAgLy8gVGhpcyBtZXRob2Qg
c2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGVuIG9uY2Ugb24gYW55IHNpbmdsZQotICAvLyBp
bnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIGRlcml2ZWQgY2xhc3Mu
Ci0gIC8vIFVuaXRUZXN0IGhhcyBhIGd1YXJkIHRvIHByZXZlbnQgZnJvbSBjYWxsaW5nIHRoaXMg
bWV0aG9kIG1vcmUgdGhlbiBvbmNlLgotICB2aXJ0dWFsIHZvaWQgUmVnaXN0ZXJUZXN0cygpIHsK
KyAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0
cyBpbiB0aGlzIHRlc3Qgc3VpdGUKKyAgLy8gcmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGVzdHMgaW4g
UlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQorICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgorICAvLyBVbml0VGVzdCBo
YXMgYSBndWFyZCB0byBwcmV2ZW50IGZyb20gY2FsbGluZyB0aGlzIG1ldGhvZCBtb3JlIHRoYW4g
b25jZS4KKyAgdm9pZCBSZWdpc3RlclRlc3RzKCkgb3ZlcnJpZGUgeworICAgIGJvb2wgZ2VuZXJh
dGVkX2luc3RhbnRpYXRpb25zID0gZmFsc2U7CisKICAgICBmb3IgKHR5cGVuYW1lIFRlc3RJbmZv
Q29udGFpbmVyOjppdGVyYXRvciB0ZXN0X2l0ID0gdGVzdHNfLmJlZ2luKCk7CiAgICAgICAgICB0
ZXN0X2l0ICE9IHRlc3RzXy5lbmQoKTsgKyt0ZXN0X2l0KSB7Ci0gICAgICBsaW5rZWRfcHRyPFRl
c3RJbmZvPiB0ZXN0X2luZm8gPSAqdGVzdF9pdDsKKyAgICAgIHN0ZDo6c2hhcmVkX3B0cjxUZXN0
SW5mbz4gdGVzdF9pbmZvID0gKnRlc3RfaXQ7CiAgICAgICBmb3IgKHR5cGVuYW1lIEluc3RhbnRp
YXRpb25Db250YWluZXI6Oml0ZXJhdG9yIGdlbl9pdCA9CiAgICAgICAgICAgICAgICBpbnN0YW50
aWF0aW9uc18uYmVnaW4oKTsgZ2VuX2l0ICE9IGluc3RhbnRpYXRpb25zXy5lbmQoKTsKICAgICAg
ICAgICAgICAgICsrZ2VuX2l0KSB7CkBAIC01NTEsMTYgKzU1NSwxOCBAQCBjbGFzcyBQYXJhbWV0
ZXJpemVkVGVzdENhc2VJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNl
IHsKICAgICAgICAgY29uc3QgY2hhciogZmlsZSA9IGdlbl9pdC0+ZmlsZTsKICAgICAgICAgaW50
IGxpbmUgPSBnZW5faXQtPmxpbmU7CiAKLSAgICAgICAgc3RkOjpzdHJpbmcgdGVzdF9jYXNlX25h
bWU7CisgICAgICAgIHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZTsKICAgICAgICAgaWYgKCAh
aW5zdGFudGlhdGlvbl9uYW1lLmVtcHR5KCkgKQotICAgICAgICAgIHRlc3RfY2FzZV9uYW1lID0g
aW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOwotICAgICAgICB0ZXN0X2Nhc2VfbmFtZSArPSB0ZXN0
X2luZm8tPnRlc3RfY2FzZV9iYXNlX25hbWU7CisgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lID0g
aW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOworICAgICAgICB0ZXN0X3N1aXRlX25hbWUgKz0gdGVz
dF9pbmZvLT50ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKIAogICAgICAgICBzaXplX3QgaSA9IDA7CiAg
ICAgICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0X3BhcmFtX25hbWVzOwogICAgICAgICBm
b3IgKHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFBhcmFtVHlwZT46Oml0ZXJhdG9yIHBhcmFtX2l0
ID0KICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmJlZ2luKCk7CiAgICAgICAgICAgICAgcGFy
YW1faXQgIT0gZ2VuZXJhdG9yLmVuZCgpOyArK3BhcmFtX2l0LCArK2kpIHsKKyAgICAgICAgICBn
ZW5lcmF0ZWRfaW5zdGFudGlhdGlvbnMgPSB0cnVlOworCiAgICAgICAgICAgTWVzc2FnZSB0ZXN0
X25hbWVfc3RyZWFtOwogCiAgICAgICAgICAgc3RkOjpzdHJpbmcgcGFyYW1fbmFtZSA9IG5hbWVf
ZnVuYygKQEAgLTU3NywzOSArNTgzLDQ4IEBAIGNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUlu
Zm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewogCiAgICAgICAgICAg
dGVzdF9wYXJhbV9uYW1lcy5pbnNlcnQocGFyYW1fbmFtZSk7CiAKLSAgICAgICAgICB0ZXN0X25h
bWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNlX25hbWUgPDwgIi8iIDw8IHBhcmFtX25h
bWU7CisgICAgICAgICAgaWYgKCF0ZXN0X2luZm8tPnRlc3RfYmFzZV9uYW1lLmVtcHR5KCkpIHsK
KyAgICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwgdGVzdF9pbmZvLT50ZXN0X2Jhc2VfbmFt
ZSA8PCAiLyI7CisgICAgICAgICAgfQorICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwgcGFy
YW1fbmFtZTsKICAgICAgICAgICBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKLSAgICAgICAgICAg
ICAgdGVzdF9jYXNlX25hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgdGVzdF9uYW1lX3N0cmVh
bS5HZXRTdHJpbmcoKS5jX3N0cigpLAotICAgICAgICAgICAgICBOVUxMLCAgLy8gTm8gdHlwZSBw
YXJhbWV0ZXIuCi0gICAgICAgICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5jX3N0cigp
LAotICAgICAgICAgICAgICBjb2RlX2xvY2F0aW9uXywKLSAgICAgICAgICAgICAgR2V0VGVzdENh
c2VUeXBlSWQoKSwKLSAgICAgICAgICAgICAgVGVzdENhc2U6OlNldFVwVGVzdENhc2UsCi0gICAg
ICAgICAgICAgIFRlc3RDYXNlOjpUZWFyRG93blRlc3RDYXNlLAorICAgICAgICAgICAgICB0ZXN0
X3N1aXRlX25hbWUuY19zdHIoKSwgdGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigp
LAorICAgICAgICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICAg
ICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5jX3N0cigpLCB0ZXN0X2luZm8tPmNvZGVf
bG9jYXRpb24sCisgICAgICAgICAgICAgIEdldFRlc3RTdWl0ZVR5cGVJZCgpLAorICAgICAgICAg
ICAgICBTdWl0ZUFwaVJlc29sdmVyPFRlc3RTdWl0ZT46OkdldFNldFVwQ2FzZU9yU3VpdGUoZmls
ZSwgbGluZSksCisgICAgICAgICAgICAgIFN1aXRlQXBpUmVzb2x2ZXI8VGVzdFN1aXRlPjo6R2V0
VGVhckRvd25DYXNlT3JTdWl0ZShmaWxlLCBsaW5lKSwKICAgICAgICAgICAgICAgdGVzdF9pbmZv
LT50ZXN0X21ldGFfZmFjdG9yeS0+Q3JlYXRlVGVzdEZhY3RvcnkoKnBhcmFtX2l0KSk7CiAgICAg
ICAgIH0gIC8vIGZvciBwYXJhbV9pdAogICAgICAgfSAgLy8gZm9yIGdlbl9pdAogICAgIH0gIC8v
IGZvciB0ZXN0X2l0Ci0gIH0gIC8vIFJlZ2lzdGVyVGVzdHMKKworICAgIGlmICghZ2VuZXJhdGVk
X2luc3RhbnRpYXRpb25zKSB7CisgICAgICAvLyBUaGVyZSBhcmUgbm8gZ2VuZXJhb3Rycywgb3Ig
dGhleSBhbGwgZ2VuZXJhdGUgbm90aGluZyAuLi4KKyAgICAgIEluc2VydFN5bnRoZXRpY1Rlc3RD
YXNlKEdldFRlc3RTdWl0ZU5hbWUoKSwgY29kZV9sb2NhdGlvbl8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAhdGVzdHNfLmVtcHR5KCkpOworICAgIH0KKyAgfSAgICAvLyBSZWdpc3Rl
clRlc3RzCiAKICBwcml2YXRlOgogICAvLyBMb2NhbFRlc3RJbmZvIHN0cnVjdHVyZSBrZWVwcyBp
bmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSB0ZXN0IHJlZ2lzdGVyZWQKICAgLy8gd2l0aCBURVNU
X1AgbWFjcm8uCiAgIHN0cnVjdCBUZXN0SW5mbyB7Ci0gICAgVGVzdEluZm8oY29uc3QgY2hhciog
YV90ZXN0X2Nhc2VfYmFzZV9uYW1lLAotICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdGVzdF9i
YXNlX25hbWUsCi0gICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBh
X3Rlc3RfbWV0YV9mYWN0b3J5KSA6Ci0gICAgICAgIHRlc3RfY2FzZV9iYXNlX25hbWUoYV90ZXN0
X2Nhc2VfYmFzZV9uYW1lKSwKLSAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90ZXN0X2Jhc2VfbmFt
ZSksCi0gICAgICAgIHRlc3RfbWV0YV9mYWN0b3J5KGFfdGVzdF9tZXRhX2ZhY3RvcnkpIHt9Ci0K
LSAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfYmFzZV9uYW1lOworICAgIFRlc3RJbmZv
KGNvbnN0IGNoYXIqIGFfdGVzdF9zdWl0ZV9iYXNlX25hbWUsIGNvbnN0IGNoYXIqIGFfdGVzdF9i
YXNlX25hbWUsCisgICAgICAgICAgICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBh
X3Rlc3RfbWV0YV9mYWN0b3J5LAorICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBhX2NvZGVfbG9j
YXRpb24pCisgICAgICAgIDogdGVzdF9zdWl0ZV9iYXNlX25hbWUoYV90ZXN0X3N1aXRlX2Jhc2Vf
bmFtZSksCisgICAgICAgICAgdGVzdF9iYXNlX25hbWUoYV90ZXN0X2Jhc2VfbmFtZSksCisgICAg
ICAgICAgdGVzdF9tZXRhX2ZhY3RvcnkoYV90ZXN0X21ldGFfZmFjdG9yeSksCisgICAgICAgICAg
Y29kZV9sb2NhdGlvbihhX2NvZGVfbG9jYXRpb24pIHt9CisKKyAgICBjb25zdCBzdGQ6OnN0cmlu
ZyB0ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKICAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Jhc2Vf
bmFtZTsKLSAgICBjb25zdCBzY29wZWRfcHRyPFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBl
PiA+IHRlc3RfbWV0YV9mYWN0b3J5OworICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxUZXN0TWV0
YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4gPiB0ZXN0X21ldGFfZmFjdG9yeTsKKyAgICBjb25zdCBD
b2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbjsKICAgfTsKLSAgdHlwZWRlZiA6OnN0ZDo6dmVjdG9y
PGxpbmtlZF9wdHI8VGVzdEluZm8+ID4gVGVzdEluZm9Db250YWluZXI7Ci0gIC8vIFJlY29yZHMg
ZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvczoKKyAgdXNp
bmcgVGVzdEluZm9Db250YWluZXIgPSA6OnN0ZDo6dmVjdG9yPHN0ZDo6c2hhcmVkX3B0cjxUZXN0
SW5mbz4gPjsKKyAgLy8gUmVjb3JkcyBkYXRhIHJlY2VpdmVkIGZyb20gSU5TVEFOVElBVEVfVEVT
VF9TVUlURV9QIG1hY3JvczoKICAgLy8gIDxJbnN0YW50aWF0aW9uIG5hbWUsIFNlcXVlbmNlIGdl
bmVyYXRvciBjcmVhdGlvbiBmdW5jdGlvbiwKICAgLy8gICAgIE5hbWUgZ2VuZXJhdG9yIGZ1bmN0
aW9uLCBTb3VyY2UgZmlsZSwgU291cmNlIGxpbmU+CiAgIHN0cnVjdCBJbnN0YW50aWF0aW9uSW5m
byB7CkBAIC02NDYsNzkgKzY2MSwyODcgQEAgY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5m
byA6IHB1YmxpYyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSB7CiAgICAgcmV0dXJuIHRy
dWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfbmFtZV87CisgIGNvbnN0
IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87CiAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0
aW9uXzsKICAgVGVzdEluZm9Db250YWluZXIgdGVzdHNfOwogICBJbnN0YW50aWF0aW9uQ29udGFp
bmVyIGluc3RhbnRpYXRpb25zXzsKIAotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8pOwotfTsgIC8vIGNsYXNzIFBhcmFtZXRlcml6ZWRU
ZXN0Q2FzZUluZm8KKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlSW5mbyk7Cit9OyAgLy8gY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUlu
Zm8KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwordGVtcGxhdGUgPGNsYXNz
IFRlc3RDYXNlPgordXNpbmcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyA9IFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVJbmZvPFRlc3RDYXNlPjsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBV
U0UgSU4gVVNFUiBDT0RFLgogLy8KLS8vIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IGNv
bnRhaW5zIGEgbWFwIG9mIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlCi0vLyBjbGFzc2Vz
IGFjY2Vzc2VkIGJ5IHRlc3QgY2FzZSBuYW1lcy4gVEVTVF9QIGFuZCBJTlNUQU5USUFURV9URVNU
X0NBU0VfUAotLy8gbWFjcm9zIHVzZSBpdCB0byBsb2NhdGUgdGhlaXIgY29ycmVzcG9uZGluZyBQ
YXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvCi0vLyBkZXNjcmlwdG9ycy4KLWNsYXNzIFBhcmFtZXRl
cml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHsKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3Ry
eSBjb250YWlucyBhIG1hcCBvZgorLy8gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlIGNs
YXNzZXMgYWNjZXNzZWQgYnkgdGVzdCBzdWl0ZSBuYW1lcy4gVEVTVF9QCisvLyBhbmQgSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QIG1hY3JvcyB1c2UgaXQgdG8gbG9jYXRlIHRoZWlyIGNvcnJlc3Bv
bmRpbmcKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGRlc2NyaXB0b3JzLgorY2xhc3Mg
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IHsKICBwdWJsaWM6Ci0gIFBhcmFtZXRlcml6
ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkge30KLSAgflBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5
KCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFpbmVyOjppdGVyYXRvciBpdCA9IHRlc3Rf
Y2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHRlc3RfY2FzZV9pbmZvc18uZW5k
KCk7ICsraXQpIHsKLSAgICAgIGRlbGV0ZSAqaXQ7CisgIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVS
ZWdpc3RyeSgpIHt9CisgIH5QYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkoKSB7CisgICAg
Zm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAg
ZGVsZXRlIHRlc3Rfc3VpdGVfaW5mbzsKICAgICB9CiAgIH0KIAogICAvLyBMb29rcyB1cCBvciBj
cmVhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJv
dXQKLSAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25zIG9mIGEgcGFydGljdWxhciB0ZXN0IGNh
c2UuCi0gIHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KLSAgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mbzxUZXN0Q2FzZT4qIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcigKLSAgICAgIGNvbnN0IGNo
YXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsK
LSAgICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNlPiogdHlwZWRfdGVzdF9pbmZv
ID0gTlVMTDsKLSAgICBmb3IgKFRlc3RDYXNlSW5mb0NvbnRhaW5lcjo6aXRlcmF0b3IgaXQgPSB0
ZXN0X2Nhc2VfaW5mb3NfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSB0ZXN0X2Nhc2VfaW5mb3Nf
LmVuZCgpOyArK2l0KSB7Ci0gICAgICBpZiAoKCppdCktPkdldFRlc3RDYXNlTmFtZSgpID09IHRl
c3RfY2FzZV9uYW1lKSB7Ci0gICAgICAgIGlmICgoKml0KS0+R2V0VGVzdENhc2VUeXBlSWQoKSAh
PSBHZXRUeXBlSWQ8VGVzdENhc2U+KCkpIHsKKyAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25z
IG9mIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlLgorICB0ZW1wbGF0ZSA8Y2xhc3MgVGVzdFN1aXRl
PgorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KiBHZXRUZXN0U3VpdGVQ
YXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvPFRl
c3RTdWl0ZT4qIHR5cGVkX3Rlc3RfaW5mbyA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiB0ZXN0
X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAgaWYgKHRlc3Rfc3VpdGVf
aW5mby0+R2V0VGVzdFN1aXRlTmFtZSgpID09IHRlc3Rfc3VpdGVfbmFtZSkgeworICAgICAgICBp
ZiAodGVzdF9zdWl0ZV9pbmZvLT5HZXRUZXN0U3VpdGVUeXBlSWQoKSAhPSBHZXRUeXBlSWQ8VGVz
dFN1aXRlPigpKSB7CiAgICAgICAgICAgLy8gQ29tcGxhaW4gYWJvdXQgaW5jb3JyZWN0IHVzYWdl
IG9mIEdvb2dsZSBUZXN0IGZhY2lsaXRpZXMKICAgICAgICAgICAvLyBhbmQgdGVybWluYXRlIHRo
ZSBwcm9ncmFtIHNpbmNlIHdlIGNhbm5vdCBndWFyYW50eSBjb3JyZWN0Ci0gICAgICAgICAgLy8g
dGVzdCBjYXNlIHNldHVwIGFuZCB0ZWFyLWRvd24gaW4gdGhpcyBjYXNlLgotICAgICAgICAgIFJl
cG9ydEludmFsaWRUZXN0Q2FzZVR5cGUodGVzdF9jYXNlX25hbWUsIGNvZGVfbG9jYXRpb24pOwor
ICAgICAgICAgIC8vIHRlc3Qgc3VpdGUgc2V0dXAgYW5kIHRlYXItZG93biBpbiB0aGlzIGNhc2Uu
CisgICAgICAgICAgUmVwb3J0SW52YWxpZFRlc3RTdWl0ZVR5cGUodGVzdF9zdWl0ZV9uYW1lLCBj
b2RlX2xvY2F0aW9uKTsKICAgICAgICAgICBwb3NpeDo6QWJvcnQoKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBzdXJlIHRoYXQgdGhlIG9iamVj
dCB3ZSBmb3VuZCBpcyBvZiB0aGUgc2FtZQogICAgICAgICAgIC8vIHR5cGUgd2UgYXJlIGxvb2tp
bmcgZm9yLCBzbyB3ZSBkb3duY2FzdCBpdCB0byB0aGF0IHR5cGUKICAgICAgICAgICAvLyB3aXRo
b3V0IGZ1cnRoZXIgY2hlY2tzLgogICAgICAgICAgIHR5cGVkX3Rlc3RfaW5mbyA9IENoZWNrZWRE
b3duY2FzdFRvQWN0dWFsVHlwZTwKLSAgICAgICAgICAgICAgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mbzxUZXN0Q2FzZT4gPigqaXQpOworICAgICAgICAgICAgICBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlSW5mbzxUZXN0U3VpdGU+ID4odGVzdF9zdWl0ZV9pbmZvKTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHR5cGVkX3Rlc3RfaW5mbyA9PSBOVUxM
KSB7Ci0gICAgICB0eXBlZF90ZXN0X2luZm8gPSBuZXcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5m
bzxUZXN0Q2FzZT4oCi0gICAgICAgICAgdGVzdF9jYXNlX25hbWUsIGNvZGVfbG9jYXRpb24pOwot
ICAgICAgdGVzdF9jYXNlX2luZm9zXy5wdXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKKyAgICBp
ZiAodHlwZWRfdGVzdF9pbmZvID09IG51bGxwdHIpIHsKKyAgICAgIHR5cGVkX3Rlc3RfaW5mbyA9
IG5ldyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+KAorICAgICAgICAgIHRl
c3Rfc3VpdGVfbmFtZSwgY29kZV9sb2NhdGlvbik7CisgICAgICB0ZXN0X3N1aXRlX2luZm9zXy5w
dXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGVkX3Rlc3Rf
aW5mbzsKICAgfQogICB2b2lkIFJlZ2lzdGVyVGVzdHMoKSB7Ci0gICAgZm9yIChUZXN0Q2FzZUlu
Zm9Db250YWluZXI6Oml0ZXJhdG9yIGl0ID0gdGVzdF9jYXNlX2luZm9zXy5iZWdpbigpOwotICAg
ICAgICAgaXQgIT0gdGVzdF9jYXNlX2luZm9zXy5lbmQoKTsgKytpdCkgewotICAgICAgKCppdCkt
PlJlZ2lzdGVyVGVzdHMoKTsKKyAgICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGVfaW5mbyA6IHRlc3Rf
c3VpdGVfaW5mb3NfKSB7CisgICAgICB0ZXN0X3N1aXRlX2luZm8tPlJlZ2lzdGVyVGVzdHMoKTsK
ICAgICB9CiAgIH0KKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWls
YWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdGVtcGxh
dGUgPGNsYXNzIFRlc3RDYXNlPgorICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRlc3RDYXNl
PiogR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciogdGVzdF9jYXNl
X25hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgICAgcmV0dXJuIEdldFRlc3RT
dWl0ZVBhdHRlcm5Ib2xkZXI8VGVzdENhc2U+KHRlc3RfY2FzZV9uYW1lLCBjb2RlX2xvY2F0aW9u
KTsKKyAgfQorCisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
IAogIHByaXZhdGU6Ci0gIHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxQYXJhbWV0ZXJpemVkVGVzdENh
c2VJbmZvQmFzZSo+IFRlc3RDYXNlSW5mb0NvbnRhaW5lcjsKKyAgdXNpbmcgVGVzdFN1aXRlSW5m
b0NvbnRhaW5lciA9IDo6c3RkOjp2ZWN0b3I8UGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNl
Kj47CiAKLSAgVGVzdENhc2VJbmZvQ29udGFpbmVyIHRlc3RfY2FzZV9pbmZvc187CisgIFRlc3RT
dWl0ZUluZm9Db250YWluZXIgdGVzdF9zdWl0ZV9pbmZvc187CiAKLSAgR1RFU1RfRElTQUxMT1df
Q09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3RyeSk7CisgIEdURVNU
X0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5
KTsKK307CisKKy8vIEtlZXAgdHJhY2sgb2Ygd2hhdCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBz
dWl0ZSBhcmUgZGVmaW5lZCBhbmQKKy8vIHdoZXJlIGFzIHdlbGwgYXMgd2hpY2ggYXJlIGludGF0
aWF0ZWQuIFRoaXMgYWxsb3dzIHN1c2VxdWVudGx5CisvLyBpZGVudGlmeWluZyBzdWl0cyB0aGF0
IGFyZSBkZWZpbmVkIGJ1dCBuZXZlciB1c2VkLgorY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVSZWdpc3RyeSB7CisgcHVibGljOgorICAvLyBBZGQgYSBzdWl0ZSBkZWZpbml0aW9uCisg
IHZvaWQgUmVnaXN0ZXJUZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKTsKKworICAv
LyBBZGQgYW4gaW5zdGFudGlhdGlvbiBvZiBhIHN1aXQuCisgIHZvaWQgUmVnaXN0ZXJJbnN0YW50
aWF0aW9uKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSk7CisKKyAgLy8gRm9yIGVhY2ggc3Vp
dCByZXBvcmVkIGFzIGRlZmluZWQgYnV0IG5vdCByZXBvcnRlZCBhcyBpbnN0YW50aWF0aW9uLAor
ICAvLyBlbWl0IGEgdGVzdCB0aGF0IHJlcG9ydHMgdGhhdCBmYWN0IChjb25maWd1cmFibHksIGFz
IGFuIGVycm9yKS4KKyAgdm9pZCBDaGVja0Zvckluc3RhbnRpYXRpb25zKCk7CisKKyBwcml2YXRl
OgorICBzdHJ1Y3QgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIHsKKyAgICBleHBsaWNp
dCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8oQ29kZUxvY2F0aW9uIGMpCisgICAgICAg
IDogY29kZV9sb2NhdGlvbihjKSwgaW5zdGFudGlhdGVkKGZhbHNlKSB7fQorCisgICAgQ29kZUxv
Y2F0aW9uIGNvZGVfbG9jYXRpb247CisgICAgYm9vbCBpbnN0YW50aWF0ZWQ7CisgIH07CisKKyAg
c3RkOjptYXA8c3RkOjpzdHJpbmcsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbz4gc3Vp
dGVzXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBGb3J3YXJkIGRlY2xh
cmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgorLy8gaW5jbHVk
ZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgor
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4g
VmFsdWVzSW4oCisgICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOworCituYW1lc3BhY2Ug
aW50ZXJuYWwgeworLy8gVXNlZCBpbiB0aGUgVmFsdWVzKCkgZnVuY3Rpb24gdG8gcHJvdmlkZSBw
b2x5bW9ycGhpYyBjYXBhYmlsaXRpZXMuCisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJu
aW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQxMDApCisjZW5kaWYKKwordGVt
cGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorY2xhc3MgVmFsdWVBcnJheSB7CisgcHVibGljOgorICBl
eHBsaWNpdCBWYWx1ZUFycmF5KFRzLi4uIHYpIDogdl8oRmxhdFR1cGxlQ29uc3RydWN0VGFne30s
IHN0ZDo6bW92ZSh2KS4uLikge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAgICByZXR1cm4gVmFs
dWVzSW4oTWFrZVZlY3RvcjxUPihNYWtlSW5kZXhTZXF1ZW5jZTxzaXplb2YuLi4oVHMpPigpKSk7
CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QuLi4gST4K
KyAgc3RkOjp2ZWN0b3I8VD4gTWFrZVZlY3RvcihJbmRleFNlcXVlbmNlPEkuLi4+KSBjb25zdCB7
CisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPFQ+e3N0YXRpY19jYXN0PFQ+KHZfLnRlbXBsYXRlIEdl
dDxJPigpKS4uLn07CisgIH0KKworICBGbGF0VHVwbGU8VHMuLi4+IHZfOworfTsKKworI2lmZGVm
IF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKK3RlbXBsYXRlIDx0eXBl
bmFtZS4uLiBUPgorY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcgorICAgIDogcHVibGlj
IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPDo6c3RkOjp0dXBsZTxULi4uPj4geworIHB1YmxpYzoK
KyAgdHlwZWRlZiA6OnN0ZDo6dHVwbGU8VC4uLj4gUGFyYW1UeXBlOworCisgIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3IoY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4mIGcp
CisgICAgICA6IGdlbmVyYXRvcnNfKGcpIHt9CisgIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
KCkgb3ZlcnJpZGUge30KKworICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJl
Z2luKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZ2Vu
ZXJhdG9yc18sIGZhbHNlKTsKKyAgfQorICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlw
ZT4qIEVuZCgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMs
IGdlbmVyYXRvcnNfLCB0cnVlKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPGNsYXNz
IEk+CisgIGNsYXNzIEl0ZXJhdG9ySW1wbDsKKyAgdGVtcGxhdGUgPHNpemVfdC4uLiBJPgorICBj
bGFzcyBJdGVyYXRvckltcGw8SW5kZXhTZXF1ZW5jZTxJLi4uPj4KKyAgICAgIDogcHVibGljIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7CisgICBwdWJsaWM6CisgICAgSXRlcmF0
b3JJbXBsKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCisg
ICAgICAgICAgICAgY29uc3Qgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4mIGdlbmVy
YXRvcnMsIGJvb2wgaXNfZW5kKQorICAgICAgICA6IGJhc2VfKGJhc2UpLAorICAgICAgICAgIGJl
Z2luXyhzdGQ6OmdldDxJPihnZW5lcmF0b3JzKS5iZWdpbigpLi4uKSwKKyAgICAgICAgICBlbmRf
KHN0ZDo6Z2V0PEk+KGdlbmVyYXRvcnMpLmVuZCgpLi4uKSwKKyAgICAgICAgICBjdXJyZW50Xyhp
c19lbmQgPyBlbmRfIDogYmVnaW5fKSB7CisgICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Cisg
ICAgfQorICAgIH5JdGVyYXRvckltcGwoKSBvdmVycmlkZSB7fQorCisgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJy
aWRlIHsKKyAgICAgIHJldHVybiBiYXNlXzsKKyAgICB9CisgICAgLy8gQWR2YW5jZSBzaG91bGQg
bm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCisgICAgLy8gc28gbm8g
Y29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4K
KyAgICB2b2lkIEFkdmFuY2UoKSBvdmVycmlkZSB7CisgICAgICBhc3NlcnQoIUF0RW5kKCkpOwor
ICAgICAgLy8gQWR2YW5jZSB0aGUgbGFzdCBpdGVyYXRvci4KKyAgICAgICsrc3RkOjpnZXQ8c2l6
ZW9mLi4uKFQpIC0gMT4oY3VycmVudF8pOworICAgICAgLy8gaWYgdGhhdCByZWFjaGVzIGVuZCwg
cHJvcGFnYXRlIHRoYXQgdXAuCisgICAgICBBZHZhbmNlSWZFbmQ8c2l6ZW9mLi4uKFQpIC0gMT4o
KTsKKyAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKKyAgICB9CisgICAgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIHJl
dHVybiBuZXcgSXRlcmF0b3JJbXBsKCp0aGlzKTsKKyAgICB9CisKKyAgICBjb25zdCBQYXJhbVR5
cGUqIEN1cnJlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQo
KTsgfQorCisgICAgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgLy8gSGF2aW5nIHRoZSBzYW1l
IGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKKyAgICAgIC8vIGl0ZXJh
dG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KKyAgICAgIEdURVNU
X0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQorICAgICAg
ICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgorICAg
ICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOworICAg
ICAgY29uc3QgSXRlcmF0b3JJbXBsKiB0eXBlZF9vdGhlciA9CisgICAgICAgICAgQ2hlY2tlZERv
d25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9ySW1wbD4oJm90aGVyKTsKKworICAgICAg
Ly8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlv
bmQgdGhlaXIKKyAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4g
YSB2YXJpZXR5IG9mIGZhc2hpb25zLAorICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0
RW5kKCkuCisgICAgICBpZiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgcmV0dXJu
IHRydWU7CisKKyAgICAgIGJvb2wgc2FtZSA9IHRydWU7CisgICAgICBib29sIGR1bW15W10gPSB7
CisgICAgICAgICAgKHNhbWUgPSBzYW1lICYmIHN0ZDo6Z2V0PEk+KGN1cnJlbnRfKSA9PQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpnZXQ8ST4odHlwZWRfb3RoZXItPmN1cnJl
bnRfKSkuLi59OworICAgICAgKHZvaWQpZHVtbXk7CisgICAgICByZXR1cm4gc2FtZTsKKyAgICB9
CisKKyAgIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHNpemVfdCBUaGlzST4KKyAgICB2b2lkIEFk
dmFuY2VJZkVuZCgpIHsKKyAgICAgIGlmIChzdGQ6OmdldDxUaGlzST4oY3VycmVudF8pICE9IHN0
ZDo6Z2V0PFRoaXNJPihlbmRfKSkgcmV0dXJuOworCisgICAgICBib29sIGxhc3QgPSBUaGlzSSA9
PSAwOworICAgICAgaWYgKGxhc3QpIHsKKyAgICAgICAgLy8gV2UgYXJlIGRvbmUuIE5vdGhpbmcg
ZWxzZSB0byBwcm9wYWdhdGUuCisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgY29u
c3RleHByIHNpemVfdCBOZXh0SSA9IFRoaXNJIC0gKFRoaXNJICE9IDApOworICAgICAgc3RkOjpn
ZXQ8VGhpc0k+KGN1cnJlbnRfKSA9IHN0ZDo6Z2V0PFRoaXNJPihiZWdpbl8pOworICAgICAgKytz
dGQ6OmdldDxOZXh0ST4oY3VycmVudF8pOworICAgICAgQWR2YW5jZUlmRW5kPE5leHRJPigpOwor
ICAgIH0KKworICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgIGlmICghQXRF
bmQoKSkKKyAgICAgICAgY3VycmVudF92YWx1ZV8gPSBzdGQ6Om1ha2Vfc2hhcmVkPFBhcmFtVHlw
ZT4oKnN0ZDo6Z2V0PEk+KGN1cnJlbnRfKS4uLik7CisgICAgfQorICAgIGJvb2wgQXRFbmQoKSBj
b25zdCB7CisgICAgICBib29sIGF0X2VuZCA9IGZhbHNlOworICAgICAgYm9vbCBkdW1teVtdID0g
eworICAgICAgICAgIChhdF9lbmQgPSBhdF9lbmQgfHwgc3RkOjpnZXQ8ST4oY3VycmVudF8pID09
IHN0ZDo6Z2V0PEk+KGVuZF8pKS4uLn07CisgICAgICAodm9pZClkdW1teTsKKyAgICAgIHJldHVy
biBhdF9lbmQ7CisgICAgfQorCisgICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogY29uc3QgYmFzZV87CisgICAgc3RkOjp0dXBsZTx0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUPjo6aXRlcmF0b3IuLi4+IGJlZ2luXzsKKyAgICBzdGQ6OnR1cGxlPHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gZW5kXzsKKyAgICBzdGQ6OnR1cGxlPHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gY3VycmVudF87CisgICAgc3RkOjpz
aGFyZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87CisgIH07CisKKyAgdXNpbmcgSXRl
cmF0b3IgPSBJdGVyYXRvckltcGw8dHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4u
KFQpPjo6dHlwZT47CisKKyAgc3RkOjp0dXBsZTxQYXJhbUdlbmVyYXRvcjxUPi4uLj4gZ2VuZXJh
dG9yc187Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MuLi4gR2VuPgorY2xhc3MgQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlciB7CisgcHVibGljOgorICBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyKGNvbnN0IEdl
biYuLi4gZykgOiBnZW5lcmF0b3JzXyhnLi4uKSB7fQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4g
VD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQuLi4+PigpIGNvbnN0
IHsKKyAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8OjpzdGQ6OnR1cGxlPFQuLi4+PigKKyAgICAg
ICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I8VC4uLj4oZ2VuZXJhdG9yc18pKTsKKyAg
fQorCisgcHJpdmF0ZToKKyAgc3RkOjp0dXBsZTxHZW4uLi4+IGdlbmVyYXRvcnNfOwogfTsKIAog
fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5k
aWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwor
I2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1f
VVRJTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgKaW5kZXggZjgzNzAwZTA2ZDk4
YzM2ZjY0ODcyOTFjM2Y5MzE4MDdhZjM1M2Y3NC4uZmZlNjMwMDNkMDdjOTVhZmNjMWY0N2NlMTQy
OGQ0NWQ1NmQ4ZjZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oCkBAIC0zMiwy
MCArMzIsMTkgQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUgZGVmaW5lcyB0aGUgR1RFU1RfT1NfKiBt
YWNyby4KIC8vIEl0IGlzIHNlcGFyYXRlIGZyb20gZ3Rlc3QtcG9ydC5oIHNvIHRoYXQgY3VzdG9t
L2d0ZXN0LXBvcnQuaCBjYW4gaW5jbHVkZSBpdC4KIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCisjZGVmaW5lIEdPT0dMRVRFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KIAogLy8gRGV0ZXJtaW5l
cyB0aGUgcGxhdGZvcm0gb24gd2hpY2ggR29vZ2xlIFRlc3QgaXMgY29tcGlsZWQuCiAjaWZkZWYg
X19DWUdXSU5fXwogIyBkZWZpbmUgR1RFU1RfT1NfQ1lHV0lOIDEKLSNlbGlmIGRlZmluZWQgX19T
WU1CSUFOMzJfXwotIyBkZWZpbmUgR1RFU1RfT1NfU1lNQklBTiAxCisjIGVsaWYgZGVmaW5lZChf
X01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pIHx8IGRlZmluZWQoX19NSU5HVzY0X18p
CisjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCisjICBkZWZpbmUgR1RFU1RfT1Nf
V0lORE9XUyAxCiAjZWxpZiBkZWZpbmVkIF9XSU4zMgogIyBkZWZpbmUgR1RFU1RfT1NfV0lORE9X
UyAxCiAjIGlmZGVmIF9XSU4zMl9XQ0UKICMgIGRlZmluZSBHVEVTVF9PU19XSU5ET1dTX01PQklM
RSAxCi0jIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pCi0j
ICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAxCiAjIGVsaWYgZGVmaW5lZChXSU5BUElf
RkFNSUxZKQogIyAgaW5jbHVkZSA8d2luYXBpZmFtaWx5Lmg+CiAjICBpZiBXSU5BUElfRkFNSUxZ
X1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0RFU0tUT1ApCkBAIC02NSwxNSArNjQsMjIgQEAK
ICMgZWxzZQogIyAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAxCiAjIGVuZGlmICAv
LyBfV0lOMzJfV0NFCisjZWxpZiBkZWZpbmVkIF9fT1MyX18KKyMgZGVmaW5lIEdURVNUX09TX09T
MiAxCiAjZWxpZiBkZWZpbmVkIF9fQVBQTEVfXwogIyBkZWZpbmUgR1RFU1RfT1NfTUFDIDEKKyMg
aW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjIGlmIFRBUkdFVF9PU19JUEhPTkUKICMg
IGRlZmluZSBHVEVTVF9PU19JT1MgMQogIyBlbmRpZgorI2VsaWYgZGVmaW5lZCBfX0RyYWdvbkZs
eV9fCisjIGRlZmluZSBHVEVTVF9PU19EUkFHT05GTFkgMQogI2VsaWYgZGVmaW5lZCBfX0ZyZWVC
U0RfXwogIyBkZWZpbmUgR1RFU1RfT1NfRlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fRnVjaHNp
YV9fCiAjIGRlZmluZSBHVEVTVF9PU19GVUNIU0lBIDEKKyNlbGlmIGRlZmluZWQoX19HTElCQ19f
KSAmJiBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKKyMgZGVmaW5lIEdURVNUX09TX0dOVV9L
RlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fbGludXhfXwogIyBkZWZpbmUgR1RFU1RfT1NfTElO
VVggMQogIyBpZiBkZWZpbmVkIF9fQU5EUk9JRF9fCkBAIC05NSw2ICsxMDEsMTIgQEAKICMgZGVm
aW5lIEdURVNUX09TX09QRU5CU0QgMQogI2VsaWYgZGVmaW5lZCBfX1FOWF9fCiAjIGRlZmluZSBH
VEVTVF9PU19RTlggMQorI2VsaWYgZGVmaW5lZChfX0hBSUtVX18pCisjZGVmaW5lIEdURVNUX09T
X0hBSUtVIDEKKyNlbGlmIGRlZmluZWQgRVNQODI2NgorI2RlZmluZSBHVEVTVF9PU19FU1A4MjY2
IDEKKyNlbGlmIGRlZmluZWQgRVNQMzIKKyNkZWZpbmUgR1RFU1RfT1NfRVNQMzIgMQogI2VuZGlm
ICAvLyBfX0NZR1dJTl9fCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QT1JUX0FSQ0hfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaAppbmRleCA3
ODY0OTdkODU0Yzk3ZjFiNmFiOTM3MmEyNDFjMWZhMTU1YTMwYTU0Li4xYzBkZWRkZDcwMGE1Y2Vm
ZWY2YTJiZjUzZGE5YjNjZDA4NDk5NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaApAQCAtNDAs
OCArNDAsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5k
ZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCi0jZGVmaW5lIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2lmbmRlZiBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXworI2RlZmluZSBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXwogCiAvLyBFbnZpcm9ubWVu
dC1kZXNjcmliaW5nIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg
LTcyLDEwICs3Miw2IEBACiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzL2lzbid0
IGF2YWlsYWJsZS4KIC8vICAgR1RFU1RfSEFTX0VYQ0VQVElPTlMgICAgIC0gRGVmaW5lIGl0IHRv
IDEvMCB0byBpbmRpY2F0ZSB0aGF0IGV4Y2VwdGlvbnMKIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJlIGVuYWJsZWQuCi0vLyAgIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HICAtIERl
ZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA6OnN0cmluZwotLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUKLS8vICAgR1RFU1RfSEFTX0dMT0JB
TF9XU1RSSU5HIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IDo6d3N0cmluZwot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFibGUKIC8vICAg
R1RFU1RfSEFTX1BPU0lYX1JFICAgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0
aGF0IFBPU0lYIHJlZ3VsYXIKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVz
c2lvbnMgYXJlL2FyZW4ndCBhdmFpbGFibGUuCiAvLyAgIEdURVNUX0hBU19QVEhSRUFEICAgICAg
ICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA8cHRocmVhZC5oPgpAQCAtODUs
OCArODEsNiBAQAogLy8gICBHVEVTVF9IQVNfU1REX1dTVFJJTkcgICAgLSBEZWZpbmUgaXQgdG8g
MS8wIHRvIGluZGljYXRlIHRoYXQKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
Ojp3c3RyaW5nIGRvZXMvZG9lc24ndCB3b3JrIChHb29nbGUgVGVzdCBjYW4KIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB3aGVyZSBzdGQ6OndzdHJpbmcgaXMgdW5hdmFp
bGFibGUpLgotLy8gICBHVEVTVF9IQVNfVFIxX1RVUExFICAgICAgLSBEZWZpbmUgaXQgdG8gMS8w
IHRvIGluZGljYXRlIHRyMTo6dHVwbGUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXMvaXNuJ3QgYXZhaWxhYmxlLgogLy8gICBHVEVTVF9IQVNfU0VIICAgICAgICAgICAgLSBEZWZp
bmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbXBpbGVyIHN1cHBvcnRzIE1pY3Jvc29mdCdzICJTdHJ1Y3R1cmVkCiAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbiBIYW5kbGluZyIuCkBAIC05
NCwxMiArODgsNiBAQAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZWZpbmUgaXQg
dG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBsYXRmb3JtIHN1cHBvcnRzIEkvTyBzdHJlYW0gcmVkaXJlY3Rpb24gdXNpbmcKIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwKCkgYW5kIGR1cDIoKS4KLS8vICAgR1RF
U1RfVVNFX09XTl9UUjFfVFVQTEUgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB3aGV0
aGVyIEdvb2dsZQotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0J3Mgb3duIHRy
MSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXNlZC4gIFVudXNlZCB3aGVuIHRoZSB1c2VyIHNldHMKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RFU1RfSEFTX1RSMV9UVVBMRSB0byAwLgotLy8gICBHVEVTVF9M
QU5HX0NYWDExICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQgR29v
Z2xlIFRlc3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgYnVpbGRpbmcgaW4g
QysrMTEvQysrOTggbW9kZS4KIC8vICAgR1RFU1RfTElOS0VEX0FTX1NIQVJFRF9MSUJSQVJZCiAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERlZmluZSB0byAxIHdoZW4gY29tcGlsaW5n
IHRlc3RzIHRoYXQgdXNlCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdvb2dsZSBU
ZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duIGFzCkBAIC0xMjUsOCArMTEzLDExIEBACiAv
LwogLy8gICBHVEVTVF9PU19BSVggICAgICAtIElCTSBBSVgKIC8vICAgR1RFU1RfT1NfQ1lHV0lO
ICAgLSBDeWd3aW4KKy8vICAgR1RFU1RfT1NfRFJBR09ORkxZIC0gRHJhZ29uRmx5QlNECiAvLyAg
IEdURVNUX09TX0ZSRUVCU0QgIC0gRnJlZUJTRAogLy8gICBHVEVTVF9PU19GVUNIU0lBICAtIEZ1
Y2hzaWEKKy8vICAgR1RFU1RfT1NfR05VX0tGUkVFQlNEIC0gR05VL2tGcmVlQlNECisvLyAgIEdU
RVNUX09TX0hBSUtVICAgIC0gSGFpa3UKIC8vICAgR1RFU1RfT1NfSFBVWCAgICAgLSBIUC1VWAog
Ly8gICBHVEVTVF9PU19MSU5VWCAgICAtIExpbnV4CiAvLyAgICAgR1RFU1RfT1NfTElOVVhfQU5E
Uk9JRCAtIEdvb2dsZSBBbmRyb2lkCkBAIC0xMzUsOSArMTI2LDkgQEAKIC8vICAgR1RFU1RfT1Nf
TkFDTCAgICAgLSBHb29nbGUgTmF0aXZlIENsaWVudCAoTmFDbCkKIC8vICAgR1RFU1RfT1NfTkVU
QlNEICAgLSBOZXRCU0QKIC8vICAgR1RFU1RfT1NfT1BFTkJTRCAgLSBPcGVuQlNECisvLyAgIEdU
RVNUX09TX09TMiAgICAgIC0gT1MvMgogLy8gICBHVEVTVF9PU19RTlggICAgICAtIFFOWAogLy8g
ICBHVEVTVF9PU19TT0xBUklTICAtIFN1biBTb2xhcmlzCi0vLyAgIEdURVNUX09TX1NZTUJJQU4g
IC0gU3ltYmlhbgogLy8gICBHVEVTVF9PU19XSU5ET1dTICAtIFdpbmRvd3MgKERlc2t0b3AsIE1p
bkdXLCBvciBNb2JpbGUpCiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19ERVNLVE9QICAtIFdpbmRv
d3MgRGVza3RvcAogLy8gICAgIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgICAgLSBNaW5HVwpAQCAt
MTQ2LDcgKzEzNyw3IEBACiAvLyAgICAgR1RFU1RfT1NfV0lORE9XU19SVCAgICAgICAtIFdpbmRv
d3MgU3RvcmUgQXBwL1dpblJUCiAvLyAgIEdURVNUX09TX1pPUyAgICAgIC0gei9PUwogLy8KLS8v
IEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwgTGludXgsIE1heCBPUyBYLCBhbmQgV2luZG93
cyBoYXZlIHRoZQorLy8gQW1vbmcgdGhlIHBsYXRmb3JtcywgQ3lnd2luLCBMaW51eCwgTWFjIE9T
IFgsIGFuZCBXaW5kb3dzIGhhdmUgdGhlCiAvLyBtb3N0IHN0YWJsZSBzdXBwb3J0LiAgU2luY2Ug
Y29yZSBtZW1iZXJzIG9mIHRoZSBHb29nbGUgVGVzdCBwcm9qZWN0CiAvLyBkb24ndCBoYXZlIGFj
Y2VzcyB0byBvdGhlciBwbGF0Zm9ybXMsIHN1cHBvcnQgZm9yIHRoZW0gbWF5IGJlIGxlc3MKIC8v
IHN0YWJsZS4gIElmIHlvdSBub3RpY2UgYW55IHByb2JsZW1zIG9uIHlvdXIgcGxhdGZvcm0sIHBs
ZWFzZSBub3RpZnkKQEAgLTE3Miw4ICsxNjMsNiBAQAogLy8gICBFWFBFQ1RfREVBVEgoRG9Tb21l
dGhpbmdEZWFkbHkoKSk7CiAvLyAjZW5kaWYKIC8vCi0vLyAgIEdURVNUX0hBU19DT01CSU5FICAg
ICAgLSB0aGUgQ29tYmluZSgpIGZ1bmN0aW9uIChmb3IgdmFsdWUtcGFyYW1ldGVyaXplZAotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMpCiAvLyAgIEdURVNUX0hBU19ERUFUSF9U
RVNUICAgLSBkZWF0aCB0ZXN0cwogLy8gICBHVEVTVF9IQVNfVFlQRURfVEVTVCAgIC0gdHlwZWQg
dGVzdHMKIC8vICAgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUCAtIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0cwpAQCAtMTg0LDcgKzE3Myw2IEBACiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZpbmUgdGhlbXNlbHZlcy4KIC8vICAgR1RFU1RfVVNFU19TSU1QTEVfUkUgICAtIG91ciBvd24g
c2ltcGxlIHJlZ2V4IGlzIHVzZWQ7CiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUg
YWJvdmUgUkVcYihzKSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgotLy8gICBHVEVTVF9DQU5fQ09N
UEFSRV9OVUxMIC0gYWNjZXB0cyB1bnR5cGVkIE5VTEwgaW4gRVhQRUNUX0VRKCkuCiAKIC8vIE1p
c2MgcHVibGljIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDIsMzEgKzE5MCwz
MiBAQAogLy8gICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAtIGZvciBkaXNhYmxpbmcg
YSBnY2Mgd2FybmluZy4KIC8vICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gIC0gZGVjbGFyZXMg
dGhhdCBhIGNsYXNzJyBpbnN0YW5jZXMgb3IgYQogLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXJpYWJsZSBkb24ndCBoYXZlIHRvIGJlIHVzZWQuCi0vLyAgIEdURVNUX0RJU0FMTE9X
X0FTU0lHTl8gICAtIGRpc2FibGVzIG9wZXJhdG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfQVNT
SUdOXyAgIC0gZGlzYWJsZXMgY29weSBvcGVyYXRvcj0uCiAvLyAgIEdURVNUX0RJU0FMTE9XX0NP
UFlfQU5EX0FTU0lHTl8gLSBkaXNhYmxlcyBjb3B5IGN0b3IgYW5kIG9wZXJhdG9yPS4KKy8vICAg
R1RFU1RfRElTQUxMT1dfTU9WRV9BU1NJR05fICAgLSBkaXNhYmxlcyBtb3ZlIG9wZXJhdG9yPS4K
Ky8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BTkRfQVNTSUdOXyAtIGRpc2FibGVzIG1vdmUgY3Rv
ciBhbmQgb3BlcmF0b3I9LgogLy8gICBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfICAgLSBkZWNsYXJl
cyB0aGF0IGEgZnVuY3Rpb24ncyByZXN1bHQgbXVzdCBiZSB1c2VkLgogLy8gICBHVEVTVF9JTlRF
TlRJT05BTF9DT05TVF9DT05EX1BVU0hfIC0gc3RhcnQgY29kZSBzZWN0aW9uIHdoZXJlIE1TVkMg
QzQxMjcgaXMKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBy
ZXNzZWQgKGNvbnN0YW50IGNvbmRpdGlvbmFsKS4KIC8vICAgR1RFU1RfSU5URU5USU9OQUxfQ09O
U1RfQ09ORF9QT1BfICAtIGZpbmlzaCBjb2RlIHNlY3Rpb24gd2hlcmUgTVNWQyBDNDEyNwogLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgc3VwcHJlc3NlZC4KLS8v
Ci0vLyBDKysxMSBmZWF0dXJlIHdyYXBwZXJzOgotLy8KLS8vICAgdGVzdGluZzo6aW50ZXJuYWw6
OmZvcndhcmQgLSBwb3J0YWJpbGl0eSB3cmFwcGVyIGZvciBzdGQ6OmZvcndhcmQuCi0vLyAgIHRl
c3Rpbmc6OmludGVybmFsOjptb3ZlICAtIHBvcnRhYmlsaXR5IHdyYXBwZXIgZm9yIHN0ZDo6bW92
ZS4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAtIGZvciBlbmFibGluZyBVbml2ZXJzYWxQ
cmludGVyPHN0ZDo6YW55PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVy
c2FsUHJpbnRlcjxhYnNsOjphbnk+IHNwZWNpYWxpemF0aW9ucy4KKy8vICAgR1RFU1RfSU5URVJO
QUxfSEFTX09QVElPTkFMIC0gZm9yIGVuYWJsaW5nIFVuaXZlcnNhbFByaW50ZXI8c3RkOjpvcHRp
b25hbD4KKy8vICAgb3IKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVy
c2FsUHJpbnRlcjxhYnNsOjpvcHRpb25hbD4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3BlY2lhbGl6YXRpb25zLgorLy8gICBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJ
RVcgLSBmb3IgZW5hYmxpbmcgTWF0Y2hlcjxzdGQ6OnN0cmluZ192aWV3PiBvcgorLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGFic2w6OnN0cmluZ192aWV3Pgor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCisv
LyAgIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIC0gZm9yIGVuYWJsaW5nIFVuaXZlcnNhbFBy
aW50ZXI8c3RkOjp2YXJpYW50PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaXZlcnNhbFByaW50ZXI8YWJzbDo6dmFyaWFudD4KKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCiAvLwogLy8gU3luY2hyb25pemF0aW9uOgogLy8g
ICBNdXRleCwgTXV0ZXhMb2NrLCBUaHJlYWRMb2NhbCwgR2V0VGhyZWFkQ291bnQoKQogLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcy4KIC8v
Ci0vLyBUZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nOgotLy8gICBpc19wb2ludGVyICAgICAtIGFz
IGluIFRSMTsgbmVlZGVkIG9uIFN5bWJpYW4gYW5kIElCTSBYTCBDL0MrKyBvbmx5LgotLy8gICBJ
dGVyYXRvclRyYWl0cyAtIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2Ygc3RkOjppdGVyYXRvcl90
cmFpdHMsIHdoaWNoCi0vLyAgICAgICAgICAgICAgICAgICAgaXMgbm90IGF2YWlsYWJsZSBpbiBs
aWJDc3RkIHdoZW4gY29tcGlsZWQgd2l0aCBTdW4gQysrLgotLy8KLS8vIFNtYXJ0IHBvaW50ZXJz
OgotLy8gICBzY29wZWRfcHRyICAgICAtIGFzIGluIFRSMi4KLS8vCiAvLyBSZWd1bGFyIGV4cHJl
c3Npb25zOgogLy8gICBSRSAgICAgICAgICAgICAtIGEgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lv
biBjbGFzcyB1c2luZyB0aGUgUE9TSVgKIC8vICAgICAgICAgICAgICAgICAgICBFeHRlbmRlZCBS
ZWd1bGFyIEV4cHJlc3Npb24gc3ludGF4IG9uIFVOSVgtbGlrZSBwbGF0Zm9ybXMKQEAgLTI0OCw4
ICsyMzcsNyBAQAogLy8KIC8vIEludGVnZXIgdHlwZXM6CiAvLyAgIFR5cGVXaXRoU2l6ZSAgIC0g
bWFwcyBhbiBpbnRlZ2VyIHRvIGEgaW50IHR5cGUuCi0vLyAgIEludDMyLCBVSW50MzIsIEludDY0
LCBVSW50NjQsIFRpbWVJbk1pbGxpcwotLy8gICAgICAgICAgICAgICAgICAtIGludGVnZXJzIG9m
IGtub3duIHNpemVzLgorLy8gICBUaW1lSW5NaWxsaXMgICAtIGludGVnZXJzIG9mIGtub3duIHNp
emVzLgogLy8gICBCaWdnZXN0SW50ICAgICAtIHRoZSBiaWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5
cGUuCiAvLwogLy8gQ29tbWFuZC1saW5lIHV0aWxpdGllczoKQEAgLTI2MCwxNCArMjQ4LDI1IEBA
CiAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSB1dGlsaXRpZXM6CiAvLyAgIEdldEVudigpICAgICAg
ICAgICAgIC0gZ2V0cyB0aGUgdmFsdWUgb2YgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAg
IEJvb2xGcm9tR1Rlc3RFbnYoKSAgIC0gcGFyc2VzIGEgYm9vbCBlbnZpcm9ubWVudCB2YXJpYWJs
ZS4KLS8vICAgSW50MzJGcm9tR1Rlc3RFbnYoKSAgLSBwYXJzZXMgYW4gSW50MzIgZW52aXJvbm1l
bnQgdmFyaWFibGUuCisvLyAgIEludDMyRnJvbUdUZXN0RW52KCkgIC0gcGFyc2VzIGFuIGludDMy
X3QgZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAgIFN0cmluZ0Zyb21HVGVzdEVudigpIC0gcGFy
c2VzIGEgc3RyaW5nIGVudmlyb25tZW50IHZhcmlhYmxlLgorLy8KKy8vIERlcHJlY2F0aW9uIHdh
cm5pbmdzOgorLy8gICBHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpIC0gYXR0cmli
dXRlIG1hcmtpbmcgYSBmdW5jdGlvbiBhcworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVwcmVjYXRlZDsgY2FsbGluZyBhIG1hcmtlZCBmdW5jdGlvbgorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGdlbmVyYXRlIGEgY29t
cGlsZXIgd2FybmluZwogCiAjaW5jbHVkZSA8Y3R5cGUuaD4gICAvLyBmb3IgaXNzcGFjZSwgZXRj
CiAjaW5jbHVkZSA8c3RkZGVmLmg+ICAvLyBmb3IgcHRyZGlmZl90Ci0jaW5jbHVkZSA8c3RkbGli
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgPGNlcnJubz4KKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKwogI2lmbmRlZiBfV0lOMzJfV0NF
CiAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgpAQCAtMjc4
LDE3ICsyNzcsMTUgQEAKICMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjZW5kaWYK
IAotLy8gQnJpbmdzIGluIHRoZSBkZWZpbml0aW9uIG9mIEhBU19HTE9CQUxfU1RSSU5HLiAgVGhp
cyBtdXN0IGJlIGRvbmUKLS8vIEJFRk9SRSB3ZSB0ZXN0IEhBU19HTE9CQUxfU1RSSU5HLgotI2lu
Y2x1ZGUgPHN0cmluZz4gIC8vIE5PTElOVAotI2luY2x1ZGUgPGFsZ29yaXRobT4gIC8vIE5PTElO
VAogI2luY2x1ZGUgPGlvc3RyZWFtPiAgLy8gTk9MSU5UCi0jaW5jbHVkZSA8c3N0cmVhbT4gIC8v
IE5PTElOVAotI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8bG9jYWxlPgorI2luY2x1ZGUg
PG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+ICAvLyBOT0xJTlQKKyNpbmNsdWRlIDx0dXBsZT4K
ICNpbmNsdWRlIDx2ZWN0b3I+ICAvLyBOT0xJTlQKIAotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQtYXJjaC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVz
dC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgiCiAK
ICNpZiAhZGVmaW5lZChHVEVTVF9ERVZfRU1BSUxfKQogIyBkZWZpbmUgR1RFU1RfREVWX0VNQUlM
XyAiZ29vZ2xldGVzdGZyYW1ld29ya0BAZ29vZ2xlZ3JvdXBzLmNvbSIKQEAgLTMxNSwxNCArMzEy
LDE0IEBACiAvLyAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQ4MDAgNDM4NSkK
IC8vICAgLyogY29kZSB0aGF0IHRyaWdnZXJzIHdhcm5pbmdzIEM0ODAwIGFuZCBDNDM4NSAqLwog
Ly8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNpZiBfTVNDX1ZFUiA+PSAx
NDAwCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKICMgZGVmaW5lIEdURVNUX0RJU0FCTEVfTVNDX1dB
Uk5JTkdTX1BVU0hfKHdhcm5pbmdzKSBcCiAgICAgX19wcmFnbWEod2FybmluZyhwdXNoKSkgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgX19wcmFnbWEod2FybmluZyhkaXNhYmxlOiB3YXJu
aW5ncykpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgICAgICAg
ICAgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcocG9wKSkKICNlbHNlCi0vLyBPbGRlciB2ZXJzaW9u
cyBvZiBNU1ZDIGRvbid0IGhhdmUgX19wcmFnbWEuCisvLyBOb3QgYWxsIGNvbXBpbGVycyBhcmUg
TVNWQwogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8od2FybmluZ3Mp
CiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKICNlbmRpZgpAQCAt
MzQzLDgwICszNDAsNiBAQAogICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQog
I2VuZGlmCiAKLSNpZm5kZWYgR1RFU1RfTEFOR19DWFgxMQotLy8gZ2NjIGFuZCBjbGFuZyBkZWZp
bmUgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gd2hlbgotLy8gLXN0ZD17YyxnbnV9Kyt7MHgs
MTF9IGlzIHBhc3NlZC4gIFRoZSBDKysxMSBzdGFuZGFyZCBzcGVjaWZpZXMgYQotLy8gdmFsdWUg
Zm9yIF9fY3BsdXNwbHVzLCBhbmQgcmVjZW50IHZlcnNpb25zIG9mIGNsYW5nLCBnY2MsIGFuZAot
Ly8gcHJvYmFibHkgb3RoZXIgY29tcGlsZXJzIHNldCB0aGF0IHRvbyBpbiBDKysxMSBtb2RlLgot
IyBpZiBfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXyB8fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNM
IHx8IF9NU0NfVkVSID49IDE5MDAKLS8vIENvbXBpbGluZyBpbiBhdCBsZWFzdCBDKysxMSBtb2Rl
LgotIyAgZGVmaW5lIEdURVNUX0xBTkdfQ1hYMTEgMQotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1Rf
TEFOR19DWFgxMSAwCi0jIGVuZGlmCi0jZW5kaWYKLQotLy8gRGlzdGluY3QgZnJvbSBDKysxMSBs
YW5ndWFnZSBzdXBwb3J0LCBzb21lIGVudmlyb25tZW50cyBkb24ndCBwcm92aWRlCi0vLyBwcm9w
ZXIgQysrMTEgbGlicmFyeSBzdXBwb3J0LiBOb3RhYmx5LCBpdCdzIHBvc3NpYmxlIHRvIGJ1aWxk
IGluCi0vLyBDKysxMSBtb2RlIHdoZW4gdGFyZ2V0aW5nIE1hYyBPUyBYIDEwLjYsIHdoaWNoIGhh
cyBhbiBvbGQgbGlic3RkYysrCi0vLyB3aXRoIG5vIEMrKzExIHN1cHBvcnQuCi0vLwotLy8gbGli
c3RkYysrIGhhcyBzdWZmaWNpZW50IEMrKzExIHN1cHBvcnQgYXMgb2YgR0NDIDQuNi4wLCBfX0dM
SUJDWFhfXwotLy8gMjAxMTAzMjUsIGJ1dCBtYWludGVuYW5jZSByZWxlYXNlcyBpbiB0aGUgNC40
IGFuZCA0LjUgc2VyaWVzIGZvbGxvd2VkCi0vLyB0aGlzIGRhdGUsIHNvIGNoZWNrIGZvciB0aG9z
ZSB2ZXJzaW9ucyBieSB0aGVpciBkYXRlIHN0YW1wcy4KLS8vIGh0dHBzOi8vZ2NjLmdudS5vcmcv
b25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2FiaS5odG1sI2FiaS52ZXJzaW9uaW5nCi0jaWYg
R1RFU1RfTEFOR19DWFgxMSAmJiBcCi0gICAgKCFkZWZpbmVkKF9fR0xJQkNYWF9fKSB8fCAoIFwK
LSAgICAgICAgX19HTElCQ1hYX18gPj0gMjAxMTAzMjV1bCAmJiAgLyogR0NDID49IDQuNi4wICov
IFwKLSAgICAgICAgLyogQmxhY2tsaXN0IG9mIHBhdGNoIHJlbGVhc2VzIG9mIG9sZGVyIGJyYW5j
aGVzOiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDE2dWwgJiYgIC8qIEdDQyA0
LjQuNiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwMzEzdWwgJiYgIC8qIEdDQyA0
LjQuNyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTEwNDI4dWwgJiYgIC8qIEdDQyA0
LjUuMyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9IDIwMTIwNzAydWwpKSAgIC8qIEdDQyA0
LjUuNCAqLwotIyBkZWZpbmUgR1RFU1RfU1RETElCX0NYWDExIDEKLSNlbmRpZgotCi0vLyBPbmx5
IHVzZSBDKysxMSBsaWJyYXJ5IGZlYXR1cmVzIGlmIHRoZSBsaWJyYXJ5IHByb3ZpZGVzIHRoZW0u
Ci0jaWYgR1RFU1RfU1RETElCX0NYWDExCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0JFR0lOX0FO
RF9FTkRfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXyAxCi0jIGlmICFk
ZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19GVUxMX1ZFUiA+PSAxOTAwMjM4MjQpCi0vLyB3b3Jr
cyBvbmx5IHdpdGggVlMyMDE1VTIgYW5kIGJldHRlcgotIyAgIGRlZmluZSBHVEVTVF9IQVNfU1RE
X0ZVTkNUSU9OXyAxCi0jIGVuZGlmCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0lOSVRJQUxJWkVS
X0xJU1RfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfTU9WRV8gMQotIyBkZWZpbmUgR1RFU1Rf
SEFTX1NURF9VTklRVUVfUFRSXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX1NIQVJFRF9QVFJf
IDEKLSMgZGVmaW5lIEdURVNUX0hBU19VTk9SREVSRURfTUFQXyAxCi0jIGRlZmluZSBHVEVTVF9I
QVNfVU5PUkRFUkVEX1NFVF8gMQotI2VuZGlmCi0KLS8vIEMrKzExIHNwZWNpZmllcyB0aGF0IDx0
dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4KLS8vIFNvbWUgcGxhdGZvcm1zIHN0aWxsIG1pZ2h0
IG5vdCBoYXZlIGl0LCBob3dldmVyLgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSMgZGVmaW5lIEdU
RVNUX0hBU19TVERfVFVQTEVfIDEKLSMgaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBJbnNwaXJl
ZCBieQotLy8gaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0xhbmd1YWdlRXh0ZW5zaW9ucy5o
dG1sI2luY2x1ZGUtZmlsZS1jaGVja2luZy1tYWNyb3MKLSMgIGlmIGRlZmluZWQoX19oYXNfaW5j
bHVkZSkgJiYgIV9faGFzX2luY2x1ZGUoPHR1cGxlPikKLSMgICB1bmRlZiBHVEVTVF9IQVNfU1RE
X1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQotLy8gSW5zcGlyZWQg
YnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcAotIyAgaWYgZGVmaW5lZChfQ1BQ
TElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPCA1MjAKLSMgICB1bmRlZiBHVEVTVF9IQVNfU1REX1RV
UExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9fR0xJQkNYWF9fKQotLy8gSW5zcGlyZWQg
YnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcCwKLS8vIGh0dHA6Ly9nY2MuZ251
Lm9yZy9nY2MtNC4yL2NoYW5nZXMuaHRtbCBhbmQKLS8vIGh0dHBzOi8vd2ViLmFyY2hpdmUub3Jn
L3dlYi8yMDE0MDIyNzA0NDQyOS9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9tYW51
YWwvYmswMXB0MDFjaDAxLmh0bWwjbWFudWFsLmludHJvLnN0YXR1cy5zdGFuZGFyZC4yMDB4Ci0j
ICBpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCAy
KQotIyAgIHVuZGVmIEdURVNUX0hBU19TVERfVFVQTEVfCi0jICBlbmRpZgotIyBlbmRpZgotI2Vu
ZGlmCi0KIC8vIEJyaW5ncyBpbiBkZWZpbml0aW9ucyBmb3IgZnVuY3Rpb25zIHVzZWQgaW4gdGhl
IHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeAogLy8gbmFtZXNwYWNlIChyZWFkLCB3cml0ZSwgY2xv
c2UsIGNoZGlyLCBpc2F0dHksIHN0YXQpLiBXZSBkbyBub3QgY3VycmVudGx5CiAvLyB1c2UgdGhl
bSBvbiBXaW5kb3dzIE1vYmlsZS4KQEAgLTQ0OSw3ICszNzIsOCBAQCB0eXBlZGVmIHN0cnVjdCBf
UlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgIGluY2x1ZGUg
PGFuZHJvaWQvYXBpLWxldmVsLmg+ICAvLyBOT0xJTlQKICNlbmRpZgogCi0vLyBEZWZpbmVzIHRo
aXMgdG8gdHJ1ZSBpZmYgR29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCByZWd1bGFyIGV4cHJlc3Np
b25zLgorLy8gRGVmaW5lcyB0aGlzIHRvIHRydWUgaWYgYW5kIG9ubHkgaWYgR29vZ2xlIFRlc3Qg
Y2FuIHVzZSBQT1NJWCByZWd1bGFyCisvLyBleHByZXNzaW9ucy4KICNpZm5kZWYgR1RFU1RfSEFT
X1BPU0lYX1JFCiAjIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQKIC8vIE9uIEFuZHJvaWQsIDxy
ZWdleC5oPiBpcyBvbmx5IGF2YWlsYWJsZSBzdGFydGluZyB3aXRoIEdpbmdlcmJyZWFkLgpAQCAt
NDkwLDcgKzQxNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVT
VF9DUklUSUNBTF9TRUNUSU9OOwogLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMgd2hldGhlciBl
eGNlcHRpb25zIGFyZSBlbmFibGVkLCBzbyB3ZSBuZWVkCiAvLyB0byBmaWd1cmUgaXQgb3V0Lgog
IyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKF9DUFBVTldJTkQpCi0vLyBNU1ZDIGRl
ZmluZXMgX0NQUFVOV0lORCB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgorLy8gTVNW
QyBkZWZpbmVzIF9DUFBVTldJTkQgdG8gMSBpZiBhbmQgb25seSBpZiBleGNlcHRpb25zIGFyZSBl
bmFibGVkLgogIyAgZGVmaW5lIEdURVNUX0hBU19FWENFUFRJT05TIDEKICMgZWxpZiBkZWZpbmVk
KF9fQk9STEFORENfXykKIC8vIEMrK0J1aWxkZXIncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU1RM
IHVzZXMgdGhlIF9IQVNfRVhDRVBUSU9OUwpAQCAtNTAxLDE2ICs0MjUsMTcgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjICBl
bmRpZiAgLy8gX0hBU19FWENFUFRJT05TCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMg
X0hBU19FWENFUFRJT05TCiAjIGVsaWYgZGVmaW5lZChfX2NsYW5nX18pCi0vLyBjbGFuZyBkZWZp
bmVzIF9fRVhDRVBUSU9OUyBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCBiZWZvcmUgY2xhbmcg
MjIwNzE0LAotLy8gYnV0IGlmZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBP
YmotQysrIGZpbGVzLCB0aGVyZSBjYW4gYmUKLS8vIGNsZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlv
bnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmIEMrKyBleGNlcHRpb25zCi0vLyBh
cmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSB3aGlj
aCBjaGVja3MgZm9yIEMrKwotLy8gZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFuZyByMjA2MzUy
LCBidXQgd2hpY2ggY2hlY2tlZCBmb3IgY2xlYW51cHMgcHJpb3IgdG8KLS8vIHRoYXQuIFRvIHJl
bGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRoIGNsYW5nLCBj
aGVjayBmb3IKKy8vIGNsYW5nIGRlZmluZXMgX19FWENFUFRJT05TIGlmIGFuZCBvbmx5IGlmIGV4
Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYmVmb3JlIGNsYW5nCisvLyAyMjA3MTQsIGJ1dCBpZiBhbmQg
b25seSBpZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBPYmotQysrIGZpbGVz
LAorLy8gdGhlcmUgY2FuIGJlIGNsZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlvbnMgd2hpY2ggYWxz
byBuZWVkIGNsZWFudXBzLCBldmVuIGlmCisvLyBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQu
IGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSB3aGljaAorLy8gY2hlY2tz
IGZvciBDKysgZXhjZXB0aW9ucyBzdGFydGluZyBhdCBjbGFuZyByMjA2MzUyLCBidXQgd2hpY2gg
Y2hlY2tlZCBmb3IKKy8vIGNsZWFudXBzIHByaW9yIHRvIHRoYXQuIFRvIHJlbGlhYmx5IGNoZWNr
IGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3aXRoCisvLyBjbGFuZywgY2hlY2sgZm9y
CiAvLyBfX0VYQ0VQVElPTlMgJiYgX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0aW9ucykuCiAjICBk
ZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgKF9fRVhDRVBUSU9OUyAmJiBfX2hhc19mZWF0dXJl
KGN4eF9leGNlcHRpb25zKSkKICMgZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0VYQ0VQVElP
TlMKLS8vIGdjYyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBl
bmFibGVkLgorLy8gZ2NjIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkgaWYg
ZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAx
CiAjIGVsaWYgZGVmaW5lZChfX1NVTlBST19DQykKIC8vIFN1biBQcm8gQ0Mgc3VwcG9ydHMgZXhj
ZXB0aW9ucy4gIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNvbXBpbGUtdGltZSB3YXkgb2YKQEAgLTUx
OCw3ICs0NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1Rf
Q1JJVElDQUxfU0VDVElPTjsKIC8vIHRoZXkgYXJlIGVuYWJsZWQgdW5sZXNzIHRoZSB1c2VyIHRl
bGxzIHVzIG90aGVyd2lzZS4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVs
aWYgZGVmaW5lZChfX0lCTUNQUF9fKSAmJiBfX0VYQ0VQVElPTlMKLS8vIHhsQyBkZWZpbmVzIF9f
RVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgorLy8geGxDIGRlZmlu
ZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkgaWYgZXhjZXB0aW9ucyBhcmUgZW5hYmxl
ZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX0hQ
X2FDQykKIC8vIEV4Y2VwdGlvbiBoYW5kbGluZyBpcyBpbiBlZmZlY3QgYnkgZGVmYXVsdCBpbiBI
UCBhQ0MgY29tcGlsZXIuIEl0IGhhcyB0bwpAQCAtNTMxLDQwICs0NTYsMTggQEAgdHlwZWRlZiBz
dHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjIGVu
ZGlmICAvLyBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKICNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAotI2lmICFkZWZpbmVkKEdURVNUX0hBU19TVERf
U1RSSU5HKQotLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIHRoaXMgbWFjcm8gYW55IGxvbmdl
ciwgd2Uga2VlcCBpdCBpbiBjYXNlCi0vLyBzb21lIGNsaWVudHMgc3RpbGwgZGVwZW5kIG9uIGl0
LgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9TVFJJTkcgMQotI2VsaWYgIUdURVNUX0hBU19TVERf
U1RSSU5HCi0vLyBUaGUgdXNlciB0b2xkIHVzIHRoYXQgOjpzdGQ6OnN0cmluZyBpc24ndCBhdmFp
bGFibGUuCi0jIGVycm9yICI6OnN0ZDo6c3RyaW5nIGlzbid0IGF2YWlsYWJsZS4iCi0jZW5kaWYg
IC8vICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5HKQotCi0jaWZuZGVmIEdURVNUX0hBU19H
TE9CQUxfU1RSSU5HCi0jIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyAwCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KICNpZm5kZWYgR1RFU1RfSEFTX1NURF9XU1RS
SU5HCiAvLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIDo6c3RkOjp3c3RyaW5nIGlz
IGF2YWlsYWJsZSwgc28gd2UgbmVlZAogLy8gdG8gZmlndXJlIGl0IG91dC4KLS8vIEZJWE1FOiB1
c2VzIGF1dG9jb25mIHRvIGRldGVjdCB3aGV0aGVyIDo6c3RkOjp3c3RyaW5nCi0vLyAgIGlzIGF2
YWlsYWJsZS4KLQogLy8gQ3lnd2luIDEuNyBhbmQgYmVsb3cgZG9lc24ndCBzdXBwb3J0IDo6c3Rk
Ojp3c3RyaW5nLgogLy8gU29sYXJpcycgbGliYysrIGRvZXNuJ3Qgc3VwcG9ydCBpdCBlaXRoZXIu
ICBBbmRyb2lkIGhhcwogLy8gbm8gc3VwcG9ydCBmb3IgaXQgYXQgbGVhc3QgYXMgcmVjZW50IGFz
IEZyb3lvICgyLjIpLgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5HIFwKLSAgICAoIShH
VEVTVF9PU19MSU5VWF9BTkRST0lEIHx8IEdURVNUX09TX0NZR1dJTiB8fCBHVEVTVF9PU19TT0xB
UklTKSkKKyNkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RSSU5HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICghKEdURVNUX09TX0xJTlVYX0FORFJPSUQgfHwgR1RF
U1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMgfHwgXAorICAgICBHVEVTVF9PU19IQUlL
VSB8fCBHVEVTVF9PU19FU1AzMiB8fCBHVEVTVF9PU19FU1A4MjY2KSkKIAogI2VuZGlmICAvLyBH
VEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmbmRlZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcK
LS8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgOjp3c3RyaW5nIGlzIGF2YWlsYWJs
ZSwgc28gd2UgbmVlZAotLy8gdG8gZmlndXJlIGl0IG91dC4KLSMgZGVmaW5lIEdURVNUX0hBU19H
TE9CQUxfV1NUUklORyBcCi0gICAgKEdURVNUX0hBU19TVERfV1NUUklORyAmJiBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORykKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0KIC8v
IERldGVybWluZXMgd2hldGhlciBSVFRJIGlzIGF2YWlsYWJsZS4KICNpZm5kZWYgR1RFU1RfSEFT
X1JUVEkKIC8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRoZXIgUlRUSSBpcyBlbmFibGVk
LCBzbyB3ZSBuZWVkIHRvCkBAIC01NzIsMTQgKzQ3NSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIAogIyBpZmRlZiBfTVND
X1ZFUgogCi0jICBpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBkZWZpbmVzIHRoaXMgbWFjcm8gaWZm
IFJUVEkgaXMgZW5hYmxlZC4KKyNpZmRlZiBfQ1BQUlRUSSAgLy8gTVNWQyBkZWZpbmVzIHRoaXMg
bWFjcm8gaWYgYW5kIG9ubHkgaWYgUlRUSSBpcyBlbmFibGVkLgogIyAgIGRlZmluZSBHVEVTVF9I
QVNfUlRUSSAxCiAjICBlbHNlCiAjICAgZGVmaW5lIEdURVNUX0hBU19SVFRJIDAKICMgIGVuZGlm
CiAKLS8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2NjIGRlZmluZXMgX19HWFhfUlRU
SSBpZmYgUlRUSSBpcyBlbmFibGVkLgotIyBlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIChHVEVT
VF9HQ0NfVkVSXyA+PSA0MDMwMikKKy8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMuMiwgZ2Nj
IGRlZmluZXMgX19HWFhfUlRUSSBpZiBhbmQgb25seSBpZiBSVFRJIGlzCisvLyBlbmFibGVkLgor
IyBlbGlmIGRlZmluZWQoX19HTlVDX18pCiAKICMgIGlmZGVmIF9fR1hYX1JUVEkKIC8vIFdoZW4g
YnVpbGRpbmcgYWdhaW5zdCBTVExwb3J0IHdpdGggdGhlIEFuZHJvaWQgTkRLIGFuZCB3aXRoCkBA
IC02MzUsOSArNTM5LDExIEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBH
VEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8KIC8vIFRvIGRpc2FibGUgdGhyZWFkaW5nIHN1cHBv
cnQgaW4gR29vZ2xlIFRlc3QsIGFkZCAtREdURVNUX0hBU19QVEhSRUFEPTAKIC8vIHRvIHlvdXIg
Y29tcGlsZXIgZmxhZ3MuCi0jZGVmaW5lIEdURVNUX0hBU19QVEhSRUFEICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoR1RFU1RfT1NfTElOVVggfHwgR1RF
U1RfT1NfTUFDIHx8IEdURVNUX09TX0hQVVggfHwgR1RFU1RfT1NfUU5YIHx8IFwKLSAgIEdURVNU
X09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkFDTCB8fCBHVEVTVF9PU19ORVRCU0QgfHwgR1RFU1Rf
T1NfRlVDSFNJQSkKKyNkZWZpbmUgR1RFU1RfSEFTX1BUSFJFQUQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIChHVEVTVF9PU19MSU5VWCB8
fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19RTlggfHwgICAgICAg
ICAgXAorICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19OQUNMIHx8IEdURVNUX09TX05F
VEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAgIEdURVNUX09TX0RSQUdPTkZMWSB8fCBH
VEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfT1BFTkJTRCB8fCAgICAgICAgICBcCisg
ICBHVEVTVF9PU19IQUlLVSkKICNlbmRpZiAgLy8gR1RFU1RfSEFTX1BUSFJFQUQKIAogI2lmIEdU
RVNUX0hBU19QVEhSRUFECkBAIC02NDksMTM2ICs1NTUsNiBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgaW5jbHVkZSA8dGlt
ZS5oPiAgLy8gTk9MSU5UCiAjZW5kaWYKIAotLy8gRGV0ZXJtaW5lcyBpZiBoYXNoX21hcC9oYXNo
X3NldCBhcmUgYXZhaWxhYmxlLgotLy8gT25seSB1c2VkIGZvciB0ZXN0aW5nIGFnYWluc3QgdGhv
c2UgY29udGFpbmVycy4KLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfSEFTSF9NQVBfKQotIyBpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTAwKQotIyAgZGVmaW5lIEdURVNUX0hB
U19IQVNIX01BUF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9tYXAgaXMgYXZhaWxhYmxlLgot
IyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX1NFVF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQgaGFzaF9z
ZXQgaXMgYXZhaWxhYmxlLgotIyBlbmRpZiAgLy8gX01TQ19WRVIKLSNlbmRpZiAgLy8gIWRlZmlu
ZWQoR1RFU1RfSEFTX0hBU0hfTUFQXykKLQotLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIEdvb2dsZSBU
ZXN0IGNhbiB1c2UgdHIxL3R1cGxlLiAgWW91IGNhbiBkZWZpbmUKLS8vIHRoaXMgbWFjcm8gdG8g
MCB0byBwcmV2ZW50IEdvb2dsZSBUZXN0IGZyb20gdXNpbmcgdHVwbGUgKGFueQotLy8gZmVhdHVy
ZSBkZXBlbmRpbmcgb24gdHVwbGUgd2l0aCBiZSBkaXNhYmxlZCBpbiB0aGlzIG1vZGUpLgotI2lm
bmRlZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQgJiYg
ZGVmaW5lZChfU1RMUE9SVF9NQUpPUikKLS8vIFNUTHBvcnQsIHByb3ZpZGVkIHdpdGggdGhlIEFu
ZHJvaWQgTkRLLCBoYXMgbmVpdGhlciA8dHIxL3R1cGxlPiBvciA8dHVwbGU+LgotIyAgZGVmaW5l
IEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVND
X1ZFUiA+PSAxOTEwKQotLy8gUHJldmVudCBgd2FybmluZyBDNDk5NjogJ3N0ZDo6dHIxJzogd2Fy
bmluZyBTVEw0MDAyOgotLy8gVGhlIG5vbi1TdGFuZGFyZCBzdGQ6OnRyMSBuYW1lc3BhY2UgYW5k
IFRSMS1vbmx5IG1hY2hpbmVyeQotLy8gYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgUkVNT1ZF
RC5gCi0jICBkZWZpbmUgR1RFU1RfSEFTX1RSMV9UVVBMRSAwCi0jIGVsaWYgR1RFU1RfTEFOR19D
WFgxMSAmJiBkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikKLS8vIGxpYmMrKyBkb2Vzbid0IHN1cHBv
cnQgVFIxLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbHNlCi0vLyBUaGUg
dXNlciBkaWRuJ3QgdGVsbCB1cyBub3QgdG8gZG8gaXQsIHNvIHdlIGFzc3VtZSBpdCdzIE9LLgot
IyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMQotIyBlbmRpZgotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFIxX1RVUExFCi0KLS8vIERldGVybWluZXMgd2hldGhlciBHb29nbGUgVGVzdCdzIG93
biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24KLS8vIHNob3VsZCBiZSB1c2VkLgotI2lmbmRlZiBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotLy8gV2UgdXNlIG91ciBvd24gdHVwbGUgaW1wbGVtZW50
YXRpb24gb24gU3ltYmlhbi4KLSMgaWYgR1RFU1RfT1NfU1lNQklBTgotIyAgZGVmaW5lIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFIDEKLSMgZWxzZQotLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMs
IHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0IG91dC4KLQotLy8gV2UgdXNlIG91ciBvd24gVFIxIHR1
cGxlIGlmIHdlIGFyZW4ndCBzdXJlIHRoZSB1c2VyIGhhcyBhbgotLy8gaW1wbGVtZW50YXRpb24g
b2YgaXQgYWxyZWFkeS4gIEF0IHRoaXMgdGltZSwgbGlic3RkYysrIDQuMC4wKyBhbmQKLS8vIE1T
VkMgMjAxMCBhcmUgdGhlIG9ubHkgbWFpbnN0cmVhbSBzdGFuZGFyZCBsaWJyYXJpZXMgdGhhdCBj
b21lCi0vLyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uLiAgTlZJRElBJ3MgQ1VEQSBO
VkNDIGNvbXBpbGVyCi0vLyBwcmV0ZW5kcyB0byBiZSBHQ0MgYnkgZGVmaW5pbmcgX19HTlVDX18g
YW5kIGZyaWVuZHMsIGJ1dCBjYW5ub3QKLS8vIGNvbXBpbGUgR0NDJ3MgdHVwbGUgaW1wbGVtZW50
YXRpb24uICBNU1ZDIDIwMDggKDkuMCkgcHJvdmlkZXMgVFIxCi0vLyB0dXBsZSBpbiBhIDMyMyBN
QiBGZWF0dXJlIFBhY2sgZG93bmxvYWQsIHdoaWNoIHdlIGNhbm5vdCBhc3N1bWUgdGhlCi0vLyB1
c2VyIGhhcy4gIFFOWCdzIFFDQyBjb21waWxlciBpcyBhIG1vZGlmaWVkIEdDQyBidXQgaXQgZG9l
c24ndAotLy8gc3VwcG9ydCBUUjEgdHVwbGUuICBsaWJjKysgb25seSBwcm92aWRlcyBzdGQ6OnR1
cGxlLCBpbiBDKysxMSBtb2RlLAotLy8gYW5kIGl0IGNhbiBiZSB1c2VkIHdpdGggc29tZSBjb21w
aWxlcnMgdGhhdCBkZWZpbmUgX19HTlVDX18uCi0jIGlmIChkZWZpbmVkKF9fR05VQ19fKSAmJiAh
ZGVmaW5lZChfX0NVREFDQ19fKSAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gNDAwMDApIFwKLSAgICAg
ICYmICFHVEVTVF9PU19RTlggJiYgIWRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKSkgXAotICAgICAg
fHwgKF9NU0NfVkVSID49IDE2MDAgJiYgX01TQ19WRVIgPCAxOTAwKQotIyAgZGVmaW5lIEdURVNU
X0VOVl9IQVNfVFIxX1RVUExFXyAxCi0jIGVuZGlmCi0KLS8vIEMrKzExIHNwZWNpZmllcyB0aGF0
IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4gVXNlIHRoYXQgaWYgZ3Rlc3QgaXMgdXNlZAot
Ly8gaW4gQysrMTEgbW9kZSBhbmQgbGlic3RkYysrIGlzbid0IHZlcnkgb2xkIChiaW5hcmllcyB0
YXJnZXRpbmcgT1MgWCAxMC42Ci0vLyBjYW4gYnVpbGQgd2l0aCBjbGFuZyBidXQgbmVlZCB0byB1
c2UgZ2NjNC4yJ3MgbGlic3RkYysrKS4KLSMgaWYgR1RFU1RfTEFOR19DWFgxMSAmJiAoIWRlZmlu
ZWQoX19HTElCQ1hYX18pIHx8IF9fR0xJQkNYWF9fID4gMjAxMTAzMjUpCi0jICBkZWZpbmUgR1RF
U1RfRU5WX0hBU19TVERfVFVQTEVfIDEKLSMgZW5kaWYKLQotIyBpZiBHVEVTVF9FTlZfSEFTX1RS
MV9UVVBMRV8gfHwgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfCi0jICBkZWZpbmUgR1RFU1RfVVNF
X09XTl9UUjFfVFVQTEUgMAotIyBlbHNlCi0jICBkZWZpbmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQ
TEUgMQotIyBlbmRpZgotIyBlbmRpZiAgLy8gR1RFU1RfT1NfU1lNQklBTgotI2VuZGlmICAvLyBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotCi0vLyBUbyBhdm9pZCBjb25kaXRpb25hbCBjb21waWxh
dGlvbiB3ZSBtYWtlIGl0IGd0ZXN0LXBvcnQuaCdzIHJlc3BvbnNpYmlsaXR5Ci0vLyB0byAjaW5j
bHVkZSB0aGUgaGVhZGVyIGltcGxlbWVudGluZyB0dXBsZS4KLSNpZiBHVEVTVF9IQVNfU1REX1RV
UExFXwotIyBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQKLSMgZGVmaW5l
IEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9U
VVBMRV8KLQotLy8gV2UgaW5jbHVkZSB0cjE6OnR1cGxlIGV2ZW4gaWYgc3RkOjp0dXBsZSBpcyBh
dmFpbGFibGUgdG8gZGVmaW5lIHByaW50ZXJzIGZvcgotLy8gdGhlbS4KLSNpZiBHVEVTVF9IQVNf
VFIxX1RVUExFCi0jIGlmbmRlZiBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0jICBkZWZpbmUgR1RF
U1RfVFVQTEVfTkFNRVNQQUNFXyA6OnN0ZDo6dHIxCi0jIGVuZGlmICAvLyBHVEVTVF9UVVBMRV9O
QU1FU1BBQ0VfCi0KLSMgaWYgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLSMgIGluY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiICAvLyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBO
T0xJTlQKLSMgZWxpZiBHVEVTVF9PU19TWU1CSUFOCi0KLS8vIE9uIFN5bWJpYW4sIEJPT1NUX0hB
U19UUjFfVFVQTEUgY2F1c2VzIEJvb3N0J3MgVFIxIHR1cGxlIGxpYnJhcnkgdG8KLS8vIHVzZSBT
VExwb3J0J3MgdHVwbGUgaW1wbGVtZW50YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgZG9lc24n
dAotLy8gd29yayBhcyB0aGUgY29weSBvZiBTVExwb3J0IGRpc3RyaWJ1dGVkIHdpdGggU3ltYmlh
biBpcyBpbmNvbXBsZXRlLgotLy8gQnkgbWFraW5nIHN1cmUgQk9PU1RfSEFTX1RSMV9UVVBMRSBp
cyB1bmRlZmluZWQsIHdlIGZvcmNlIEJvb3N0IHRvCi0vLyB1c2UgaXRzIG93biB0dXBsZSBpbXBs
ZW1lbnRhdGlvbi4KLSMgIGlmZGVmIEJPT1NUX0hBU19UUjFfVFVQTEUKLSMgICB1bmRlZiBCT09T
VF9IQVNfVFIxX1RVUExFCi0jICBlbmRpZiAgLy8gQk9PU1RfSEFTX1RSMV9UVVBMRQotCi0vLyBU
aGlzIHByZXZlbnRzIDxib29zdC90cjEvZGV0YWlsL2NvbmZpZy5ocHA+LCB3aGljaCBkZWZpbmVz
Ci0vLyBCT09TVF9IQVNfVFIxX1RVUExFLCBmcm9tIGJlaW5nICNpbmNsdWRlZCBieSBCb29zdCdz
IDx0dXBsZT4uCi0jICBkZWZpbmUgQk9PU1RfVFIxX0RFVEFJTF9DT05GSUdfSFBQX0lOQ0xVREVE
Ci0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElOVAot
Ci0jIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKEdURVNUX0dDQ19WRVJfID49IDQwMDAwKQot
Ly8gR0NDIDQuMCsgaW1wbGVtZW50cyB0cjEvdHVwbGUgaW4gdGhlIDx0cjEvdHVwbGU+IGhlYWRl
ci4gIFRoaXMgZG9lcwotLy8gbm90IGNvbmZvcm0gdG8gdGhlIFRSMSBzcGVjLCB3aGljaCByZXF1
aXJlcyB0aGUgaGVhZGVyIHRvIGJlIDx0dXBsZT4uCi0KLSMgIGlmICFHVEVTVF9IQVNfUlRUSSAm
JiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0vLyBVbnRpbCB2ZXJzaW9uIDQuMy4yLCBnY2MgaGFz
IGEgYnVnIHRoYXQgY2F1c2VzIDx0cjEvZnVuY3Rpb25hbD4sCi0vLyB3aGljaCBpcyAjaW5jbHVk
ZWQgYnkgPHRyMS90dXBsZT4sIHRvIG5vdCBjb21waWxlIHdoZW4gUlRUSSBpcwotLy8gZGlzYWJs
ZWQuICBfVFIxX0ZVTkNUSU9OQUwgaXMgdGhlIGhlYWRlciBndWFyZCBmb3IKLS8vIDx0cjEvZnVu
Y3Rpb25hbD4uICBIZW5jZSB0aGUgZm9sbG93aW5nICNkZWZpbmUgaXMgdXNlZCB0byBwcmV2ZW50
Ci0vLyA8dHIxL2Z1bmN0aW9uYWw+IGZyb20gYmVpbmcgaW5jbHVkZWQuCi0jICAgZGVmaW5lIF9U
UjFfRlVOQ1RJT05BTCAxCi0jICAgaW5jbHVkZSA8dHIxL3R1cGxlPgotIyAgIHVuZGVmIF9UUjFf
RlVOQ1RJT05BTCAgLy8gQWxsb3dzIHRoZSB1c2VyIHRvICNpbmNsdWRlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAvLyA8dHIxL2Z1bmN0aW9uYWw+IGlmIHRoZXkgY2hvb3NlIHRvLgotIyAgZWxz
ZQotIyAgIGluY2x1ZGUgPHRyMS90dXBsZT4gIC8vIE5PTElOVAotIyAgZW5kaWYgIC8vICFHVEVT
VF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0KLS8vIFZTIDIwMTAgbm93IGhh
cyB0cjEgc3VwcG9ydC4KLSMgZWxpZiBfTVNDX1ZFUiA+PSAxNjAwCi0jICBpbmNsdWRlIDx0dXBs
ZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5PTElOVAotCi0jIGVsc2UgIC8vIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFCi0jICBpbmNsdWRlIDx0cjEvdHVwbGU+ICAvLyBJV1lVIHByYWdt
YTogZXhwb3J0ICAvLyBOT0xJTlQKLSMgZW5kaWYgIC8vIEdURVNUX1VTRV9PV05fVFIxX1RVUExF
Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRQotCiAvLyBEZXRlcm1pbmVzIHdoZXRo
ZXIgY2xvbmUoMikgaXMgc3VwcG9ydGVkLgogLy8gVXN1YWxseSBpdCB3aWxsIG9ubHkgYmUgYXZh
aWxhYmxlIG9uIExpbnV4LCBleGNsdWRpbmcKIC8vIExpbnV4IG9uIHRoZSBJdGFuaXVtIGFyY2hp
dGVjdHVyZS4KQEAgLTgxMiwyNCArNTg4LDIyIEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElD
QUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogI2lmbmRlZiBHVEVTVF9IQVNfU1RS
RUFNX1JFRElSRUNUSU9OCiAvLyBCeSBkZWZhdWx0LCB3ZSBhc3N1bWUgdGhhdCBzdHJlYW0gcmVk
aXJlY3Rpb24gaXMgc3VwcG9ydGVkIG9uIGFsbAogLy8gcGxhdGZvcm1zIGV4Y2VwdCBrbm93biBt
b2JpbGUgb25lcy4KLSMgaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfU1lN
QklBTiB8fCBcCi0gICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dT
X1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19SVCB8fCBHVEVTVF9PU19FU1A4MjY2CiAjICBk
ZWZpbmUgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTiAwCiAjIGVsc2UKICMgIGRlZmluZSBH
VEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OIDEKLSMgZW5kaWYgIC8vICFHVEVTVF9PU19XSU5E
T1dTX01PQklMRSAmJiAhR1RFU1RfT1NfU1lNQklBTgorIyBlbmRpZiAgLy8gIUdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFCiAjZW5kaWYgIC8vIEdURVNUX0hBU19TVFJFQU1fUkVESVJFQ1RJT04KIAog
Ly8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN1cHBvcnQgZGVhdGggdGVzdHMuCi0vLyBHb29nbGUg
VGVzdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3RzIGZvciBWQyA3LjEgYW5kIGVhcmxpZXIg
YXMKLS8vIGFib3J0KCkgaW4gYSBWQyA3LjEgYXBwbGljYXRpb24gY29tcGlsZWQgYXMgR1VJIGlu
IGRlYnVnIGNvbmZpZwogLy8gcG9wcyB1cCBhIGRpYWxvZyB3aW5kb3cgdGhhdCBjYW5ub3QgYmUg
c3VwcHJlc3NlZCBwcm9ncmFtbWF0aWNhbGx5LgotI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVT
VF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfU09MQVJJUyB8fCAgIFwKLSAgICAgKEdURVNUX09TX01B
QyAmJiAhR1RFU1RfT1NfSU9TKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIChH
VEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgJiYgX01TQ19WRVIgPj0gMTQwMCkgfHwgICAgICAgICAg
XAotICAgICBHVEVTVF9PU19XSU5ET1dTX01JTkdXIHx8IEdURVNUX09TX0FJWCB8fCBHVEVTVF9P
U19IUFVYIHx8IFwKLSAgICAgR1RFU1RfT1NfT1BFTkJTRCB8fCBHVEVTVF9PU19RTlggfHwgR1RF
U1RfT1NfRlJFRUJTRCB8fCBcCi0gICAgIEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNI
U0lBKQorI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1Nf
U09MQVJJUyB8fCAgICAgICAgICAgICBcCisgICAgIChHVEVTVF9PU19NQUMgJiYgIUdURVNUX09T
X0lPUykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKEdURVNU
X09TX1dJTkRPV1NfREVTS1RPUCAmJiBfTVNDX1ZFUikgfHwgR1RFU1RfT1NfV0lORE9XU19NSU5H
VyB8fCAgXAorICAgICBHVEVTVF9PU19BSVggfHwgR1RFU1RfT1NfSFBVWCB8fCBHVEVTVF9PU19P
UEVOQlNEIHx8IEdURVNUX09TX1FOWCB8fCBcCisgICAgIEdURVNUX09TX0ZSRUVCU0QgfHwgR1RF
U1RfT1NfTkVUQlNEIHx8IEdURVNUX09TX0ZVQ0hTSUEgfHwgICAgICAgICAgIFwKKyAgICAgR1RF
U1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBHVEVTVF9PU19IQUlL
VSkKICMgZGVmaW5lIEdURVNUX0hBU19ERUFUSF9URVNUIDEKICNlbmRpZgogCkBAIC04MzcsMjYg
KzYxMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJ
VElDQUxfU0VDVElPTjsKIAogLy8gVHlwZWQgdGVzdHMgbmVlZCA8dHlwZWluZm8+IGFuZCB2YXJp
YWRpYyBtYWNyb3MsIHdoaWNoIEdDQywgVkMrKyA4LjAsCiAvLyBTdW4gUHJvIENDLCBJQk0gVmlz
dWFsIEFnZSwgYW5kIEhQIGFDQyBzdXBwb3J0LgotI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IChf
TVNDX1ZFUiA+PSAxNDAwKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKSB8fCBcCisjaWYgZGVmaW5l
ZChfX0dOVUNfXykgfHwgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NVTlBST19DQykg
fHwgXAogICAgIGRlZmluZWQoX19JQk1DUFBfXykgfHwgZGVmaW5lZChfX0hQX2FDQykKICMgZGVm
aW5lIEdURVNUX0hBU19UWVBFRF9URVNUIDEKICMgZGVmaW5lIEdURVNUX0hBU19UWVBFRF9URVNU
X1AgMQogI2VuZGlmCiAKLS8vIERldGVybWluZXMgd2hldGhlciB0byBzdXBwb3J0IENvbWJpbmUo
KS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4KLS8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dHMgYXJlIGVuYWJsZWQuICBUaGUgaW1wbGVtZW50YXRpb24gZG9lc24ndAotLy8gd29yayBvbiBT
dW4gU3R1ZGlvIHNpbmNlIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0ZW1wbGF0ZWQgY29udmVyc2lv
bgotLy8gb3BlcmF0b3JzLgotI2lmIChHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19T
VERfVFVQTEVfKSAmJiAhZGVmaW5lZChfX1NVTlBST19DQykKLSMgZGVmaW5lIEdURVNUX0hBU19D
T01CSU5FIDEKLSNlbmRpZgotCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHN5c3RlbSBjb21w
aWxlciB1c2VzIFVURi0xNiBmb3IgZW5jb2Rpbmcgd2lkZSBzdHJpbmdzLgogI2RlZmluZSBHVEVT
VF9XSURFX1NUUklOR19VU0VTX1VURjE2XyBcCi0gICAgKEdURVNUX09TX1dJTkRPV1MgfHwgR1RF
U1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfQUlYKQorICAoR1RF
U1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfQUlYIHx8IEdURVNU
X09TX09TMikKIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRlc3QgcmVzdWx0cyBjYW4gYmUgc3Ry
ZWFtZWQgdG8gYSBzb2NrZXQuCi0jaWYgR1RFU1RfT1NfTElOVVgKKyNpZiBHVEVTVF9PU19MSU5V
WCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1NfRFJBR09ORkxZIHx8IFwKKyAg
ICBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNE
CiAjIGRlZmluZSBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfIDEKICNlbmRpZgogCkBAIC04OTgs
MTIgKzY2NSw2IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9D
UklUSUNBTF9TRUNUSU9OOwogIyBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8KICNlbmRp
ZgogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUgR1RFU1RfQ1hYMTFfRVFVQUxTX0RF
TEVURV8gPSBkZWxldGUKLSNlbHNlICAvLyBHVEVTVF9MQU5HX0NYWDExCi0jIGRlZmluZSBHVEVT
VF9DWFgxMV9FUVVBTFNfREVMRVRFXwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KIC8v
IFVzZSB0aGlzIGFubm90YXRpb24gYmVmb3JlIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHByaW50
ZiBmb3JtYXQgc3RyaW5nLgogI2lmIChkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fY2xh
bmdfXykpICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgaWYgZGVmaW5lZChfX01JTkdXX1BS
SU5URl9GT1JNQVQpCkBAIC05MjIsMjcgKzY4MywzOCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NS
SVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICNlbmRpZgogCiAKLS8vIEEg
bWFjcm8gdG8gZGlzYWxsb3cgb3BlcmF0b3I9CisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IGNvcHkg
b3BlcmF0b3I9CiAvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJh
dGlvbnMgZm9yIGEgY2xhc3MuCiAjZGVmaW5lIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8odHlwZSkg
XAotICB2b2lkIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpIEdURVNUX0NYWDExX0VRVUFMU19ERUxF
VEVfCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYpID0gZGVsZXRlCiAKIC8vIEEgbWFj
cm8gdG8gZGlzYWxsb3cgY29weSBjb25zdHJ1Y3RvciBhbmQgb3BlcmF0b3I9CiAvLyBUaGlzIHNo
b3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCiAj
ZGVmaW5lIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8odHlwZSkgXAotICB0eXBlKHR5
cGUgY29uc3QgJikgR1RFU1RfQ1hYMTFfRVFVQUxTX0RFTEVURV87IFwKLSAgR1RFU1RfRElTQUxM
T1dfQVNTSUdOXyh0eXBlKQorICB0eXBlKHR5cGUgY29uc3QmKSA9IGRlbGV0ZTsgICAgICAgICAg
ICAgICAgIFwKKyAgdHlwZSYgb3BlcmF0b3I9KHR5cGUgY29uc3QmKSA9IGRlbGV0ZQorCisvLyBB
IG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgb3BlcmF0b3I9CisvLyBUaGlzIHNob3VsZCBiZSB1c2Vk
IGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCisjZGVmaW5lIEdURVNU
X0RJU0FMTE9XX01PVkVfQVNTSUdOXyh0eXBlKSBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlICYm
KSBub2V4Y2VwdCA9IGRlbGV0ZQorCisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgY29uc3Ry
dWN0b3IgYW5kIG9wZXJhdG9yPQorLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBpbiB0aGUgcHJpdmF0
ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNzLgorI2RlZmluZSBHVEVTVF9ESVNBTExPV19NT1ZF
X0FORF9BU1NJR05fKHR5cGUpIFwKKyAgdHlwZSh0eXBlJiYpIG5vZXhjZXB0ID0gZGVsZXRlOyAg
ICAgICAgICAgICBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlJiYpIG5vZXhjZXB0ID0gZGVsZXRl
CiAKIC8vIFRlbGwgdGhlIGNvbXBpbGVyIHRvIHdhcm4gYWJvdXQgdW51c2VkIHJldHVybiB2YWx1
ZXMgZm9yIGZ1bmN0aW9ucyBkZWNsYXJlZAogLy8gd2l0aCB0aGlzIG1hY3JvLiAgVGhlIG1hY3Jv
IHNob3VsZCBiZSB1c2VkIG9uIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogLy8gZm9sbG93aW5nIHRo
ZSBhcmd1bWVudCBsaXN0OgogLy8KIC8vICAgU3Byb2NrZXQqIEFsbG9jYXRlU3Byb2NrZXQoKSBH
VEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChHVEVTVF9H
Q0NfVkVSXyA+PSAzMDQwMCkgJiYgIWRlZmluZWQoQ09NUElMRVJfSUNDKQorI2lmIGRlZmluZWQo
X19HTlVDX18pICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKICMgZGVmaW5lIEdURVNUX01VU1Rf
VVNFX1JFU1VMVF8gX19hdHRyaWJ1dGVfXyAoKHdhcm5fdW51c2VkX3Jlc3VsdCkpCiAjZWxzZQog
IyBkZWZpbmUgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXwotI2VuZGlmICAvLyBfX0dOVUNfXyAmJiAo
R1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFDT01QSUxFUl9JQ0MKKyNlbmRpZiAgLy8gX19H
TlVDX18gJiYgIUNPTVBJTEVSX0lDQwogCiAvLyBNUyBDKysgY29tcGlsZXIgZW1pdHMgd2Fybmlu
ZyB3aGVuIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb21waWxlIHRpbWUKIC8vIGNvbnN0
YW50LiBJbiBzb21lIGNvbnRleHRzIHRoaXMgd2FybmluZyBpcyBmYWxzZSBwb3NpdGl2ZSBhbmQg
bmVlZHMgdG8gYmUKQEAgLTk3MSwxMyArNzQzLDE3IEBAIHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJ
VElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogIyAgZGVmaW5lIEdURVNUX0hB
U19TRUggMAogIyBlbmRpZgogCi0jZGVmaW5lIEdURVNUX0lTX1RIUkVBRFNBRkUgXAotICAgIChH
VEVTVF9IQVNfTVVURVhfQU5EX1RIUkVBRF9MT0NBTF8gXAotICAgICB8fCAoR1RFU1RfT1NfV0lO
RE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lORE9XU19SVCkg
XAotICAgICB8fCBHVEVTVF9IQVNfUFRIUkVBRCkKLQogI2VuZGlmICAvLyBHVEVTVF9IQVNfU0VI
CiAKKyNpZm5kZWYgR1RFU1RfSVNfVEhSRUFEU0FGRQorCisjZGVmaW5lIEdURVNUX0lTX1RIUkVB
RFNBRkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAoR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9DQUxfIHx8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgIChHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19X
SU5ET1dTX1BIT05FICYmICFHVEVTVF9PU19XSU5ET1dTX1JUKSB8fCBcCisgICBHVEVTVF9IQVNf
UFRIUkVBRCkKKworI2VuZGlmICAvLyBHVEVTVF9JU19USFJFQURTQUZFCisKIC8vIEdURVNUX0FQ
SV8gcXVhbGlmaWVzIGFsbCBzeW1ib2xzIHRoYXQgbXVzdCBiZSBleHBvcnRlZC4gVGhlIGRlZmlu
aXRpb25zIGJlbG93CiAvLyBhcmUgZ3VhcmRlZCBieSAjaWZuZGVmIHRvIGdpdmUgZW1iZWRkZXJz
IGEgY2hhbmNlIHRvIGRlZmluZSBHVEVTVF9BUElfIGluCiAvLyBndGVzdC9pbnRlcm5hbC9jdXN0
b20vZ3Rlc3QtcG9ydC5oCkBAIC0xMDQ0LDYgKzgyMCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgZGVmaW5lIEdURVNU
X0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXwogI2VuZGlmICAvLyBfX2NsYW5nX18KIAor
Ly8gQSBmdW5jdGlvbiBsZXZlbCBhdHRyaWJ1dGUgdG8gZGlzYWJsZSBIV0FkZHJlc3NTYW5pdGl6
ZXIgaW5zdHJ1bWVudGF0aW9uLgorI2lmIGRlZmluZWQoX19jbGFuZ19fKQorIyBpZiBfX2hhc19m
ZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpCisjICBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX0hXQUREUkVTU18gXAorICAgICAgIF9fYXR0cmlidXRlX18oKG5vX3Nhbml0aXpl
KCJod2FkZHJlc3MiKSkpCisjIGVsc2UKKyMgIGRlZmluZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfSFdBRERSRVNTXworIyBlbmRpZiAgLy8gX19oYXNfZmVhdHVyZShod2FkZHJlc3Nfc2Fu
aXRpemVyKQorI2Vsc2UKKyMgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FE
RFJFU1NfCisjZW5kaWYgIC8vIF9fY2xhbmdfXworCiAvLyBBIGZ1bmN0aW9uIGxldmVsIGF0dHJp
YnV0ZSB0byBkaXNhYmxlIFRocmVhZFNhbml0aXplciBpbnN0cnVtZW50YXRpb24uCiAjaWYgZGVm
aW5lZChfX2NsYW5nX18pCiAjIGlmIF9faGFzX2ZlYXR1cmUodGhyZWFkX3Nhbml0aXplcikKQEAg
LTEwNjAsMTYgKzg0OCwxMyBAQCBuYW1lc3BhY2UgdGVzdGluZyB7CiAKIGNsYXNzIE1lc3NhZ2U7
CiAKLSNpZiBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVTUEFDRV8pCi0vLyBJbXBvcnQgdHVwbGUg
YW5kIGZyaWVuZHMgaW50byB0aGUgOjp0ZXN0aW5nIG5hbWVzcGFjZS4KLS8vIEl0IGlzIHBhcnQg
b2Ygb3VyIGludGVyZmFjZSwgaGF2aW5nIHRoZW0gaW4gOjp0ZXN0aW5nIGFsbG93cyB1cyB0byBj
aGFuZ2UKLS8vIHRoZWlyIHR5cGVzIGFzIG5lZWRlZC4KLXVzaW5nIEdURVNUX1RVUExFX05BTUVT
UEFDRV86OmdldDsKLXVzaW5nIEdURVNUX1RVUExFX05BTUVTUEFDRV86Om1ha2VfdHVwbGU7Ci11
c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBsZTsKLXVzaW5nIEdURVNUX1RVUExFX05B
TUVTUEFDRV86OnR1cGxlX3NpemU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBs
ZV9lbGVtZW50OwotI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVTUEFDRV8pCisv
LyBMZWdhY3kgaW1wb3J0cyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisvLyBOZXcgY29k
ZSBzaG91bGQgdXNlIHN0ZDo6IG5hbWVzIGRpcmVjdGx5LgordXNpbmcgc3RkOjpnZXQ7Cit1c2lu
ZyBzdGQ6Om1ha2VfdHVwbGU7Cit1c2luZyBzdGQ6OnR1cGxlOwordXNpbmcgc3RkOjp0dXBsZV9l
bGVtZW50OwordXNpbmcgc3RkOjp0dXBsZV9zaXplOwogCiBuYW1lc3BhY2UgaW50ZXJuYWwgewog
CkBAIC0xMDc4LDE1OCArODYzLDIxIEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLyBTZWNyZXQg
b2JqZWN0LCB3aGljaCBpcyB3aGF0IHdlIHdhbnQuCiBjbGFzcyBTZWNyZXQ7CiAKLS8vIFRoZSBH
VEVTVF9DT01QSUxFX0FTU0VSVF8gbWFjcm8gY2FuIGJlIHVzZWQgdG8gdmVyaWZ5IHRoYXQgYSBj
b21waWxlIHRpbWUKLS8vIGV4cHJlc3Npb24gaXMgdHJ1ZS4gRm9yIGV4YW1wbGUsIHlvdSBjb3Vs
ZCB1c2UgaXQgdG8gdmVyaWZ5IHRoZQotLy8gc2l6ZSBvZiBhIHN0YXRpYyBhcnJheToKKy8vIFRo
ZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gaXMgYSBsZWdhY3kgbWFjcm8gdXNlZCB0byB2ZXJpZnkg
dGhhdCBhIGNvbXBpbGUKKy8vIHRpbWUgZXhwcmVzc2lvbiBpcyB0cnVlIChpbiBuZXcgY29kZSwg
dXNlIHN0YXRpY19hc3NlcnQgaW5zdGVhZCkuIEZvcgorLy8gZXhhbXBsZSwgeW91IGNvdWxkIHVz
ZSBpdCB0byB2ZXJpZnkgdGhlIHNpemUgb2YgYSBzdGF0aWMgYXJyYXk6CiAvLwogLy8gICBHVEVT
VF9DT01QSUxFX0FTU0VSVF8oR1RFU1RfQVJSQVlfU0laRV8obmFtZXMpID09IE5VTV9OQU1FUywK
IC8vICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX2luY29ycmVjdF9zaXplKTsKIC8vCi0v
LyBvciB0byBtYWtlIHN1cmUgYSBzdHJ1Y3QgaXMgc21hbGxlciB0aGFuIGEgY2VydGFpbiBzaXpl
OgotLy8KLS8vICAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKHNpemVvZihmb28pIDwgMTI4LCBmb29f
dG9vX2xhcmdlKTsKLS8vCi0vLyBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBtYWNybyBpcyB0
aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUuIElmCi0vLyB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSwg
bW9zdCBjb21waWxlcnMgd2lsbCBpc3N1ZSBhIHdhcm5pbmcvZXJyb3IKLS8vIGNvbnRhaW5pbmcg
dGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLgotCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZp
bmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1zZykgc3RhdGljX2Fzc2VydChleHByLCAj
bXNnKQotI2Vsc2UgIC8vICFHVEVTVF9MQU5HX0NYWDExCi10ZW1wbGF0ZSA8Ym9vbD4KLSAgc3Ry
dWN0IENvbXBpbGVBc3NlcnQgewotfTsKLQotIyBkZWZpbmUgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KGV4cHIsIG1zZykgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbXBpbGVBc3Nl
cnQ8KHN0YXRpY19jYXN0PGJvb2w+KGV4cHIpKT4gXAotICAgICAgbXNnW3N0YXRpY19jYXN0PGJv
b2w+KGV4cHIpID8gMSA6IC0xXSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXwotI2VuZGlmICAvLyAh
R1RFU1RfTEFOR19DWFgxMQotCi0vLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIEdURVNUX0NP
TVBJTEVfQVNTRVJUXzoKLS8vCi0vLyAoSW4gQysrMTEsIHdlIHNpbXBseSB1c2Ugc3RhdGljX2Fz
c2VydCBpbnN0ZWFkIG9mIHRoZSBmb2xsb3dpbmcpCi0vLwotLy8gLSBHVEVTVF9DT01QSUxFX0FT
U0VSVF8gd29ya3MgYnkgZGVmaW5pbmcgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyAtMQotLy8gICBl
bGVtZW50cyAoYW5kIHRodXMgaXMgaW52YWxpZCkgd2hlbiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxz
ZS4KLS8vCi0vLyAtIFRoZSBzaW1wbGVyIGRlZmluaXRpb24KLS8vCi0vLyAgICAjZGVmaW5lIEdU
RVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHR5cGVkZWYgY2hhciBtc2dbKGV4cHIpID8g
MSA6IC0xXQotLy8KLS8vICAgZG9lcyBub3Qgd29yaywgYXMgZ2NjIHN1cHBvcnRzIHZhcmlhYmxl
LWxlbmd0aCBhcnJheXMgd2hvc2Ugc2l6ZXMKLS8vICAgYXJlIGRldGVybWluZWQgYXQgcnVuLXRp
bWUgKHRoaXMgaXMgZ2NjJ3MgZXh0ZW5zaW9uIGFuZCBub3QgcGFydAotLy8gICBvZiB0aGUgQysr
IHN0YW5kYXJkKS4gIEFzIGEgcmVzdWx0LCBnY2MgZmFpbHMgdG8gcmVqZWN0IHRoZQotLy8gICBm
b2xsb3dpbmcgY29kZSB3aXRoIHRoZSBzaW1wbGUgZGVmaW5pdGlvbjoKLS8vCi0vLyAgICAgaW50
IGZvbzsKLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oZm9vLCBtc2cpOyAvLyBub3Qgc3Vw
cG9zZWQgdG8gY29tcGlsZSBhcyBmb28gaXMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBub3QgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi0vLwotLy8gLSBCeSB1
c2luZyB0aGUgdHlwZSBDb21waWxlQXNzZXJ0PChib29sKGV4cHIpKT4sIHdlIGVuc3VyZXMgdGhh
dAotLy8gICBleHByIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LiAgKFRlbXBsYXRlIGFyZ3Vt
ZW50cyBtdXN0IGJlCi0vLyAgIGRldGVybWluZWQgYXQgY29tcGlsZS10aW1lLikKLS8vCi0vLyAt
IFRoZSBvdXR0ZXIgcGFyZW50aGVzZXMgaW4gQ29tcGlsZUFzc2VydDwoYm9vbChleHByKSk+IGFy
ZSBuZWNlc3NhcnkKLS8vICAgdG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDMuNC40IGFuZCA0
LjAuMS4gIElmIHdlIGhhZCB3cml0dGVuCi0vLwotLy8gICAgIENvbXBpbGVBc3NlcnQ8Ym9vbChl
eHByKT4KLS8vCi0vLyAgIGluc3RlYWQsIHRoZXNlIGNvbXBpbGVycyB3aWxsIHJlZnVzZSB0byBj
b21waWxlCi0vLwotLy8gICAgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyg1ID4gMCwgc29tZV9tZXNz
YWdlKTsKLS8vCi0vLyAgIChUaGV5IHNlZW0gdG8gdGhpbmsgdGhlICI+IiBpbiAiNSA+IDAiIG1h
cmtzIHRoZSBlbmQgb2YgdGhlCi0vLyAgIHRlbXBsYXRlIGFyZ3VtZW50IGxpc3QuKQotLy8KLS8v
IC0gVGhlIGFycmF5IHNpemUgaXMgKGJvb2woZXhwcikgPyAxIDogLTEpLCBpbnN0ZWFkIG9mIHNp
bXBseQotLy8KLS8vICAgICAoKGV4cHIpID8gMSA6IC0xKS4KLS8vCi0vLyAgIFRoaXMgaXMgdG8g
YXZvaWQgcnVubmluZyBpbnRvIGEgYnVnIGluIE1TIFZDIDcuMSwgd2hpY2gKLS8vICAgY2F1c2Vz
ICgoMC4wKSA/IDEgOiAtMSkgdG8gaW5jb3JyZWN0bHkgZXZhbHVhdGUgdG8gMS4KLQotLy8gU3Rh
dGljQXNzZXJ0VHlwZUVxSGVscGVyIGlzIHVzZWQgYnkgU3RhdGljQXNzZXJ0VHlwZUVxIGRlZmlu
ZWQgaW4gZ3Rlc3QuaC4KLS8vCi0vLyBUaGlzIHRlbXBsYXRlIGlzIGRlY2xhcmVkLCBidXQgaW50
ZW50aW9uYWxseSB1bmRlZmluZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
Pgotc3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1zdHJ1Y3QgU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQsIFQ+IHsKLSAgZW51bSB7IHZh
bHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gU2FtZSBhcyBzdGQ6OmlzX3NhbWU8Pi4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0IElzU2FtZSB7Ci0gIGVudW0geyB2YWx1
ZSA9IGZhbHNlIH07Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXNTYW1lPFQs
IFQ+IHsKLSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gRXZhbHVhdGVzIHRvIHRo
ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gJ2FycmF5Jy4KLSNkZWZpbmUgR1RFU1RfQVJSQVlfU0la
RV8oYXJyYXkpIChzaXplb2YoYXJyYXkpIC8gc2l6ZW9mKGFycmF5WzBdKSkKLQotI2lmIEdURVNU
X0hBU19HTE9CQUxfU1RSSU5HCi10eXBlZGVmIDo6c3RyaW5nIHN0cmluZzsKLSNlbHNlCi10eXBl
ZGVmIDo6c3RkOjpzdHJpbmcgc3RyaW5nOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NU
UklORwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi10eXBlZGVmIDo6d3N0cmluZyB3
c3RyaW5nOwotI2VsaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCi10eXBlZGVmIDo6c3RkOjp3c3Ry
aW5nIHdzdHJpbmc7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORworLy8gVGhl
IHNlY29uZCBhcmd1bWVudCB0byB0aGUgbWFjcm8gbXVzdCBiZSBhIHZhbGlkIEMrKyBpZGVudGlm
aWVyLiBJZiB0aGUKKy8vIGV4cHJlc3Npb24gaXMgZmFsc2UsIGNvbXBpbGVyIHdpbGwgaXNzdWUg
YW4gZXJyb3IgY29udGFpbmluZyB0aGlzIGlkZW50aWZpZXIuCisjZGVmaW5lIEdURVNUX0NPTVBJ
TEVfQVNTRVJUXyhleHByLCBtc2cpIHN0YXRpY19hc3NlcnQoZXhwciwgI21zZykKIAogLy8gQSBo
ZWxwZXIgZm9yIHN1cHByZXNzaW5nIHdhcm5pbmdzIG9uIGNvbnN0YW50IGNvbmRpdGlvbi4gIEl0
IGp1c3QKIC8vIHJldHVybnMgJ2NvbmRpdGlvbicuCiBHVEVTVF9BUElfIGJvb2wgSXNUcnVlKGJv
b2wgY29uZGl0aW9uKTsKIAotLy8gRGVmaW5lcyBzY29wZWRfcHRyLgotCi0vLyBUaGlzIGltcGxl
bWVudGF0aW9uIG9mIHNjb3BlZF9wdHIgaXMgUEFSVElBTCAtIGl0IG9ubHkgY29udGFpbnMKLS8v
IGVub3VnaCBzdHVmZiB0byBzYXRpc2Z5IEdvb2dsZSBUZXN0J3MgbmVlZC4KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotY2xhc3Mgc2NvcGVkX3B0ciB7Ci0gcHVibGljOgotICB0eXBlZGVmIFQgZWxl
bWVudF90eXBlOwotCi0gIGV4cGxpY2l0IHNjb3BlZF9wdHIoVCogcCA9IE5VTEwpIDogcHRyXyhw
KSB7fQotICB+c2NvcGVkX3B0cigpIHsgcmVzZXQoKTsgfQotCi0gIFQmIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuICpwdHJfOyB9Ci0gIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBw
dHJfOyB9Ci0gIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIHB0cl87IH0KLQotICBUKiByZWxlYXNl
KCkgewotICAgIFQqIGNvbnN0IHB0ciA9IHB0cl87Ci0gICAgcHRyXyA9IE5VTEw7Ci0gICAgcmV0
dXJuIHB0cjsKLSAgfQotCi0gIHZvaWQgcmVzZXQoVCogcCA9IE5VTEwpIHsKLSAgICBpZiAocCAh
PSBwdHJfKSB7Ci0gICAgICBpZiAoSXNUcnVlKHNpemVvZihUKSA+IDApKSB7ICAvLyBNYWtlcyBz
dXJlIFQgaXMgYSBjb21wbGV0ZSB0eXBlLgotICAgICAgICBkZWxldGUgcHRyXzsKLSAgICAgIH0K
LSAgICAgIHB0cl8gPSBwOwotICAgIH0KLSAgfQotCi0gIGZyaWVuZCB2b2lkIHN3YXAoc2NvcGVk
X3B0ciYgYSwgc2NvcGVkX3B0ciYgYikgewotICAgIHVzaW5nIHN0ZDo6c3dhcDsKLSAgICBzd2Fw
KGEucHRyXywgYi5wdHJfKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgVCogcHRyXzsKLQotICBHVEVT
VF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKHNjb3BlZF9wdHIpOwotfTsKLQogLy8gRGVmaW5l
cyBSRS4KIAogI2lmIEdURVNUX1VTRVNfUENSRQpAQCAtMTI0NywyNSArODk1LDE2IEBAIGNsYXNz
IEdURVNUX0FQSV8gUkUgewogICAvLyBDb25zdHJ1Y3RzIGFuIFJFIGZyb20gYSBzdHJpbmcuCiAg
IFJFKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19zdHIoKSk7IH0g
IC8vIE5PTElOVAogCi0jIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KLSAgUkUoY29uc3Qg
OjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19zdHIoKSk7IH0gIC8vIE5PTElOVAotCi0j
IGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAgIFJFKGNvbnN0IGNoYXIqIHJl
Z2V4KSB7IEluaXQocmVnZXgpOyB9ICAvLyBOT0xJTlQKICAgflJFKCk7CiAKICAgLy8gUmV0dXJu
cyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZWdleC4KICAgY29uc3QgY2hhciog
cGF0dGVybigpIGNvbnN0IHsgcmV0dXJuIHBhdHRlcm5fOyB9CiAKLSAgLy8gRnVsbE1hdGNoKHN0
ciwgcmUpIHJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMKLSAg
Ly8gdGhlIGVudGlyZSBzdHIuCi0gIC8vIFBhcnRpYWxNYXRjaChzdHIsIHJlKSByZXR1cm5zIHRy
dWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAvLyBGdWxsTWF0Y2goc3RyLCByZSkgcmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAvLyBtYXRj
aGVzIHRoZSBlbnRpcmUgc3RyLgorICAvLyBQYXJ0aWFsTWF0Y2goc3RyLCByZSkgcmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQogICAvLyBtYXRjaGVzIGEg
c3Vic3RyaW5nIG9mIHN0ciAoaW5jbHVkaW5nIHN0ciBpdHNlbGYpLgotICAvLwotICAvLyBGSVhN
RTogbWFrZSBGdWxsTWF0Y2goKSBhbmQgUGFydGlhbE1hdGNoKCkgd29yawotICAvLyB3aGVuIHN0
ciBjb250YWlucyBOVUwgY2hhcmFjdGVycy4KICAgc3RhdGljIGJvb2wgRnVsbE1hdGNoKGNvbnN0
IDo6c3RkOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgICAgcmV0dXJuIEZ1bGxNYXRj
aChzdHIuY19zdHIoKSwgcmUpOwogICB9CkBAIC0xMjczLDI2ICs5MTIsMTEgQEAgY2xhc3MgR1RF
U1RfQVBJXyBSRSB7CiAgICAgcmV0dXJuIFBhcnRpYWxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwog
ICB9CiAKLSMgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQotICBzdGF0aWMgYm9vbCBGdWxs
TWF0Y2goY29uc3QgOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7Ci0gICAgcmV0dXJuIEZ1
bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwotICB9Ci0gIHN0YXRpYyBib29sIFBhcnRpYWxNYXRj
aChjb25zdCA6OnN0cmluZyYgc3RyLCBjb25zdCBSRSYgcmUpIHsKLSAgICByZXR1cm4gUGFydGlh
bE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0gIH0KLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcKLQogICBzdGF0aWMgYm9vbCBGdWxsTWF0Y2goY29uc3QgY2hhciogc3RyLCBj
b25zdCBSRSYgcmUpOwogICBzdGF0aWMgYm9vbCBQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3Ry
LCBjb25zdCBSRSYgcmUpOwogCiAgcHJpdmF0ZToKICAgdm9pZCBJbml0KGNvbnN0IGNoYXIqIHJl
Z2V4KTsKLQotICAvLyBXZSB1c2UgYSBjb25zdCBjaGFyKiBpbnN0ZWFkIG9mIGFuIHN0ZDo6c3Ry
aW5nLCBhcyBHb29nbGUgVGVzdCB1c2VkIHRvIGJlCi0gIC8vIHVzZWQgd2hlcmUgc3RkOjpzdHJp
bmcgaXMgbm90IGF2YWlsYWJsZS4gIEZJWE1FOiBjaGFuZ2UgdG8KLSAgLy8gc3RkOjpzdHJpbmcu
CiAgIGNvbnN0IGNoYXIqIHBhdHRlcm5fOwogICBib29sIGlzX3ZhbGlkXzsKIApAQCAtMTMwNiw4
ICs5MzAsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFJFIHsKICAgY29uc3QgY2hhciogZnVsbF9wYXR0
ZXJuXzsgIC8vIEZvciBGdWxsTWF0Y2goKTsKIAogIyBlbmRpZgotCi0gIEdURVNUX0RJU0FMTE9X
X0FTU0lHTl8oUkUpOwogfTsKIAogI2VuZGlmICAvLyBHVEVTVF9VU0VTX1BDUkUKQEAgLTEzNjAs
NyArOTgyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBHVGVzdExvZyB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKS5HZXRTdHJlYW0oKQogCiBpbmxp
bmUgdm9pZCBMb2dUb1N0ZGVycigpIHt9Ci1pbmxpbmUgdm9pZCBGbHVzaEluZm9Mb2coKSB7IGZm
bHVzaChOVUxMKTsgfQoraW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBmZmx1c2gobnVsbHB0
cik7IH0KIAogI2VuZGlmICAvLyAhZGVmaW5lZChHVEVTVF9MT0dfKQogCkBAIC0xMzk3LDE5ICsx
MDE5LDYgQEAgaW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkgeyBmZmx1c2goTlVMTCk7IH0KICAg
ICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAjcG9zaXhfY2FsbCA8PCAiZmFpbGVkIHdpdGggZXJyb3Ig
IiBcCiAgICAgICAgICAgICAgICAgICAgICAgPDwgZ3Rlc3RfZXJyb3IKIAotLy8gQWRkcyByZWZl
cmVuY2UgdG8gYSB0eXBlIGlmIGl0IGlzIG5vdCBhIHJlZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3
aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlzIHRoZSBzYW1lIGFzCi0vLyB0cjE6OmFk
ZF9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5jZSB7IHR5cGVkZWYgVCYgdHlwZTsgfTsg
IC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmZXJlbmNlPFQm
PiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIg
YXJvdW5kIEFkZFJlZmVyZW5jZSB0aGF0IHdvcmtzIHdoZW4gdGhlIGFyZ3VtZW50IFQKLS8vIGRl
cGVuZHMgb24gdGVtcGxhdGUgcGFyYW1ldGVycy4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRkVSRU5D
RV8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkFkZFJlZmVyZW5jZTxU
Pjo6dHlwZQotCiAvLyBUcmFuc2Zvcm1zICJUIiBpbnRvICJjb25zdCBUJiIgYWNjb3JkaW5nIHRv
IHN0YW5kYXJkIHJlZmVyZW5jZSBjb2xsYXBzaW5nCiAvLyBydWxlcyAodGhpcyBpcyBvbmx5IG5l
ZWRlZCBhcyBhIGJhY2twb3J0IGZvciBDKys5OCBjb21waWxlcnMgdGhhdCBkbyBub3QKIC8vIHN1
cHBvcnQgcmVmZXJlbmNlIGNvbGxhcHNpbmcpLiBTcGVjaWZpY2FsbHksIGl0IHRyYW5zZm9ybXM6
CkBAIC0xNDMwLDI4ICsxMDM5LDYgQEAgc3RydWN0IENvbnN0UmVmPFQmPiB7IHR5cGVkZWYgVCYg
dHlwZTsgfTsKICNkZWZpbmUgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUKSBcCiAgIHR5cGVu
YW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbnN0UmVmPFQ+Ojp0eXBlCiAKLSNpZiBHVEVTVF9I
QVNfU1REX01PVkVfCi11c2luZyBzdGQ6OmZvcndhcmQ7Ci11c2luZyBzdGQ6Om1vdmU7Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJ2YWx1ZVJlZiB7Ci0gIHR5cGVkZWYgVCYmIHR5
cGU7Ci19OwotI2Vsc2UgIC8vIEdURVNUX0hBU19TVERfTU9WRV8KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotY29uc3QgVCYgbW92ZShjb25zdCBUJiB0KSB7Ci0gIHJldHVybiB0OwotfQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1HVEVTVF9BRERfUkVGRVJFTkNFXyhUKSBmb3J3YXJkKEdURVNUX0FE
RF9SRUZFUkVOQ0VfKFQpIHQpIHsgcmV0dXJuIHQ7IH0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdHJ1Y3QgUnZhbHVlUmVmIHsKLSAgdHlwZWRlZiBjb25zdCBUJiB0eXBlOwotfTsKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1NURF9NT1ZFXwotCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAt
IERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KIC8vIFVzZSBJbXBsaWNpdENhc3RfIGFzIGEg
c2FmZSB2ZXJzaW9uIG9mIHN0YXRpY19jYXN0IGZvciB1cGNhc3RpbmcgaW4KQEAgLTE1MDUsMTMg
KzEwOTIsMTMgQEAgaW5saW5lIFRvIERvd25DYXN0XyhGcm9tKiBmKSB7ICAvLyBzbyB3ZSBvbmx5
IGFjY2VwdCBwb2ludGVycwogICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfKCkK
ICAgaWYgKGZhbHNlKSB7CiAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygpCi0g
ICAgY29uc3QgVG8gdG8gPSBOVUxMOwotICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkltcGxpY2l0
Q2FzdF88RnJvbSo+KHRvKTsKKyAgY29uc3QgVG8gdG8gPSBudWxscHRyOworICA6OnRlc3Rpbmc6
OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEZyb20qPih0byk7CiAgIH0KIAogI2lmIEdURVNUX0hB
U19SVFRJCiAgIC8vIFJUVEk6IGRlYnVnIG1vZGUgb25seSEKLSAgR1RFU1RfQ0hFQ0tfKGYgPT0g
TlVMTCB8fCBkeW5hbWljX2Nhc3Q8VG8+KGYpICE9IE5VTEwpOworICBHVEVTVF9DSEVDS18oZiA9
PSBudWxscHRyIHx8IGR5bmFtaWNfY2FzdDxUbz4oZikgIT0gbnVsbHB0cik7CiAjZW5kaWYKICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRvPihmKTsKIH0KQEAgLTE1NjUsOSArMTE1Miw2IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRJbmplY3RhYmxlQXJndnMoKTsKIC8vIERlcHJlY2F0ZWQ6
IHBhc3MgdGhlIGFyZ3MgdmVjdG9yIGJ5IHZhbHVlIGluc3RlYWQuCiB2b2lkIFNldEluamVjdGFi
bGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIG5ld19hcmd2cyk7CiB2b2lk
IFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIG5ld19h
cmd2cyk7Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFy
Z3ZzKGNvbnN0IHN0ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cyk7Ci0jZW5kaWYgIC8v
IEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCiB2b2lkIENsZWFySW5qZWN0YWJsZUFyZ3ZzKCk7CiAK
ICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKQEAgLTE1ODMsNyArMTE2Nyw3IEBAIGlu
bGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7CiAgICAgMCwgICAgICAgICAgICAg
ICAgICAvLyAwIHNlY29uZHMuCiAgICAgbiAqIDEwMDBMICogMTAwMEwsICAvLyBBbmQgbiBtcy4K
ICAgfTsKLSAgbmFub3NsZWVwKCZ0aW1lLCBOVUxMKTsKKyAgbmFub3NsZWVwKCZ0aW1lLCBudWxs
cHRyKTsKIH0KICMgZW5kaWYgIC8vIEdURVNUX0hBU19QVEhSRUFECiAKQEAgLTE2MDEsNyArMTE4
NSw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBuKSB7CiBjbGFzcyBOb3Rp
ZmljYXRpb24gewogIHB1YmxpYzoKICAgTm90aWZpY2F0aW9uKCkgOiBub3RpZmllZF8oZmFsc2Up
IHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2luaXQoJm11
dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0
ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgIH0KICAgfk5vdGlmaWNhdGlvbigpIHsKICAg
ICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dGV4Xyk7CkBAIC0xNjU5LDcgKzEyNDMsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIEF1dG9IYW5kbGUgewogICB2b2lkIFJlc2V0KEhhbmRsZSBoYW5kbGUp
OwogCiAgcHJpdmF0ZToKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgaGFuZGxlIGlzIGEgdmFs
aWQgaGFuZGxlIG9iamVjdCB0aGF0IGNhbiBiZSBjbG9zZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgaGFuZGxlIGlzIGEgdmFsaWQgaGFuZGxlIG9iamVjdCB0aGF0IGNh
biBiZQorICAvLyBjbG9zZWQuCiAgIGJvb2wgSXNDbG9zZWFibGUoKSBjb25zdDsKIAogICBIYW5k
bGUgaGFuZGxlXzsKQEAgLTE3MTAsNyArMTI5NSw3IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbUJh
c2UgewogLy8gcGFzcyBpbnRvIHB0aHJlYWRfY3JlYXRlKCkuCiBleHRlcm4gIkMiIGlubGluZSB2
b2lkKiBUaHJlYWRGdW5jV2l0aENMaW5rYWdlKHZvaWQqIHRocmVhZCkgewogICBzdGF0aWNfY2Fz
dDxUaHJlYWRXaXRoUGFyYW1CYXNlKj4odGhyZWFkKS0+UnVuKCk7Ci0gIHJldHVybiBOVUxMOwor
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogLy8gSGVscGVyIGNsYXNzIGZvciB0ZXN0aW5nIEdvb2ds
ZSBUZXN0J3MgbXVsdGktdGhyZWFkaW5nIGNvbnN0cnVjdHMuCkBAIC0xNzM5LDIwICsxMzI0LDE5
IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbSA6IHB1YmxpYyBUaHJlYWRXaXRoUGFyYW1CYXNlIHsK
ICAgICAvLyBUaGUgdGhyZWFkIGNhbiBiZSBjcmVhdGVkIG9ubHkgYWZ0ZXIgYWxsIGZpZWxkcyBl
eGNlcHQgdGhyZWFkXwogICAgIC8vIGhhdmUgYmVlbiBpbml0aWFsaXplZC4KICAgICBHVEVTVF9D
SEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAgcHRocmVhZF9jcmVhdGUoJnRocmVhZF8sIDAs
ICZUaHJlYWRGdW5jV2l0aENMaW5rYWdlLCBiYXNlKSk7CisgICAgICAgIHB0aHJlYWRfY3JlYXRl
KCZ0aHJlYWRfLCBudWxscHRyLCAmVGhyZWFkRnVuY1dpdGhDTGlua2FnZSwgYmFzZSkpOwogICB9
Ci0gIH5UaHJlYWRXaXRoUGFyYW0oKSB7IEpvaW4oKTsgfQorICB+VGhyZWFkV2l0aFBhcmFtKCkg
b3ZlcnJpZGUgeyBKb2luKCk7IH0KIAogICB2b2lkIEpvaW4oKSB7CiAgICAgaWYgKCFmaW5pc2hl
ZF8pIHsKLSAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfam9pbih0aHJl
YWRfLCAwKSk7CisgICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX2pvaW4o
dGhyZWFkXywgbnVsbHB0cikpOwogICAgICAgZmluaXNoZWRfID0gdHJ1ZTsKICAgICB9CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgUnVuKCkgewotICAgIGlmICh0aHJlYWRfY2FuX3N0YXJ0XyAhPSBO
VUxMKQotICAgICAgdGhyZWFkX2Nhbl9zdGFydF8tPldhaXRGb3JOb3RpZmljYXRpb24oKTsKKyAg
dm9pZCBSdW4oKSBvdmVycmlkZSB7CisgICAgaWYgKHRocmVhZF9jYW5fc3RhcnRfICE9IG51bGxw
dHIpIHRocmVhZF9jYW5fc3RhcnRfLT5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7CiAgICAgZnVuY18o
cGFyYW1fKTsKICAgfQogCkBAIC0xNzYyLDcgKzEzNDYsOCBAQCBjbGFzcyBUaHJlYWRXaXRoUGFy
YW0gOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgIC8vIFdoZW4gbm9uLU5VTEwsIHVz
ZWQgdG8gYmxvY2sgZXhlY3V0aW9uIHVudGlsIHRoZSBjb250cm9sbGVyIHRocmVhZAogICAvLyBu
b3RpZmllcy4KICAgTm90aWZpY2F0aW9uKiBjb25zdCB0aHJlYWRfY2FuX3N0YXJ0XzsKLSAgYm9v
bCBmaW5pc2hlZF87ICAvLyB0cnVlIGlmZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlv
biBoYXMgZmluaXNoZWQuCisgIGJvb2wgZmluaXNoZWRfOyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBp
ZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlvbiBoYXMKKyAgICAgICAgICAgICAgICAg
ICAvLyBmaW5pc2hlZC4KICAgcHRocmVhZF90IHRocmVhZF87ICAvLyBUaGUgbmF0aXZlIHRocmVh
ZCBvYmplY3QuCiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRXaXRo
UGFyYW0pOwpAQCAtMjAyNyw3ICsxNjEyLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMg
VGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1
YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgogICAgIERlZmF1bHRWYWx1ZUhv
bGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1YWwgVmFsdWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIo
KSBjb25zdCB7IHJldHVybiBuZXcgVmFsdWVIb2xkZXIoKTsgfQorICAgIFZhbHVlSG9sZGVyKiBN
YWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7
IH0KIAogICAgcHJpdmF0ZToKICAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKERl
ZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkpOwpAQCAtMjAzNiw3ICsxNjIxLDcgQEAgY2xhc3MgVGhy
ZWFkTG9jYWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgSW5zdGFuY2VWYWx1
ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeShjb25zdCBUJiB2YWx1ZSkg
OiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRl
cigpIGNvbnN0IHsKKyAgICBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJy
aWRlIHsKICAgICAgIHJldHVybiBuZXcgVmFsdWVIb2xkZXIodmFsdWVfKTsKICAgICB9CiAKQEAg
LTIwNDYsNyArMTYzMSw3IEBAIGNsYXNzIFRocmVhZExvY2FsIDogcHVibGljIFRocmVhZExvY2Fs
QmFzZSB7CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhJbnN0YW5jZVZhbHVl
SG9sZGVyRmFjdG9yeSk7CiAgIH07CiAKLSAgc2NvcGVkX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+
IGRlZmF1bHRfZmFjdG9yeV87CisgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+
IGRlZmF1bHRfZmFjdG9yeV87CiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhU
aHJlYWRMb2NhbCk7CiB9OwpAQCAtMjExNSw3ICsxNzAwLDcgQEAgY2xhc3MgTXV0ZXhCYXNlIHsK
IGNsYXNzIE11dGV4IDogcHVibGljIE11dGV4QmFzZSB7CiAgcHVibGljOgogICBNdXRleCgpIHsK
LSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211dGV4X2luaXQoJm11dGV4
XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhf
aW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgICAgaGFzX293bmVyXyA9IGZhbHNlOwogICB9CiAg
IH5NdXRleCgpIHsKQEAgLTIyMTMsNyArMTc5OCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFk
TG9jYWwgewogICBUKiBHZXRPckNyZWF0ZVZhbHVlKCkgY29uc3QgewogICAgIFRocmVhZExvY2Fs
VmFsdWVIb2xkZXJCYXNlKiBjb25zdCBob2xkZXIgPQogICAgICAgICBzdGF0aWNfY2FzdDxUaHJl
YWRMb2NhbFZhbHVlSG9sZGVyQmFzZSo+KHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5XykpOwotICAg
IGlmIChob2xkZXIgIT0gTlVMTCkgeworICAgIGlmIChob2xkZXIgIT0gbnVsbHB0cikgewogICAg
ICAgcmV0dXJuIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxWYWx1ZUhvbGRlcj4oaG9sZGVy
KS0+cG9pbnRlcigpOwogICAgIH0KIApAQCAtMjIzNiw3ICsxODIxLDcgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUaHJlYWRMb2NhbCB7CiAgIGNsYXNzIERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkgOiBw
dWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBEZWZhdWx0VmFsdWVI
b2xkZXJGYWN0b3J5KCkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVy
KCkgY29uc3QgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7IH0KKyAgICBWYWx1ZUhvbGRlciog
TWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG5ldyBWYWx1ZUhvbGRlcigp
OyB9CiAKICAgIHByaXZhdGU6CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhE
ZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KTsKQEAgLTIyNDUsNyArMTgzMCw3IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBjbGFzcyBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9y
eSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVibGljOgogICAgIGV4cGxpY2l0
IEluc3RhbmNlVmFsdWVIb2xkZXJGYWN0b3J5KGNvbnN0IFQmIHZhbHVlKSA6IHZhbHVlXyh2YWx1
ZSkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgewor
ICAgIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgewogICAgICAg
cmV0dXJuIG5ldyBWYWx1ZUhvbGRlcih2YWx1ZV8pOwogICAgIH0KIApAQCAtMjI1Nyw3ICsxODQy
LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2NhbCB7CiAKICAgLy8gQSBrZXkgcHRocmVh
ZHMgdXNlcyBmb3IgbG9va2luZyB1cCBwZXItdGhyZWFkIHZhbHVlcy4KICAgY29uc3QgcHRocmVh
ZF9rZXlfdCBrZXlfOwotICBzY29wZWRfcHRyPFZhbHVlSG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9m
YWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVfcHRyPFZhbHVlSG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9m
YWN0b3J5XzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRocmVhZExvY2Fs
KTsKIH07CkBAIC0yMzE1LDc3ICsxOTAwLDEyIEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9j
YWwgewogLy8gd2UgY2Fubm90IGRldGVjdCBpdC4KIEdURVNUX0FQSV8gc2l6ZV90IEdldFRocmVh
ZENvdW50KCk7CiAKLS8vIFBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBzaXMg
KC4uLikgY3Jhc2hlcyB0aGUgQVJNCi0vLyBjb21waWxlciBhbmQgZ2VuZXJhdGVzIGEgd2Fybmlu
ZyBpbiBTdW4gU3R1ZGlvIGJlZm9yZSAxMnU0LiBUaGUgTm9raWEgU3ltYmlhbgotLy8gYW5kIHRo
ZSBJQk0gWEwgQy9DKysgY29tcGlsZXIgdHJ5IHRvIGluc3RhbnRpYXRlIGEgY29weSBjb25zdHJ1
Y3RvcgotLy8gZm9yIG9iamVjdHMgcGFzc2VkIHRocm91Z2ggZWxsaXBzaXMgKC4uLiksIGZhaWxp
bmcgZm9yIHVuY29weWFibGUKLS8vIG9iamVjdHMuICBXZSBkZWZpbmUgdGhpcyB0byBlbnN1cmUg
dGhhdCBvbmx5IFBPRCBpcyBwYXNzZWQgdGhyb3VnaAotLy8gZWxsaXBzaXMgb24gdGhlc2Ugc3lz
dGVtcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykg
fHwgXAotICAgICAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPCAweDUxMzAp
Ci0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9uIHdoZXJlIHRoZSBjb21waWxl
ciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFzc2VzIHRocm91Z2ggZWxsaXBz
aXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfIDEKLSNlbHNlCi0j
IGRlZmluZSBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMIDEKLSNlbmRpZgotCi0vLyBUaGUgTm9raWEg
U3ltYmlhbiBhbmQgSUJNIFhMIEMvQysrIGNvbXBpbGVycyBjYW5ub3QgZGVjaWRlIGJldHdlZW4K
LS8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1bmN0aW9uIHRlbXBsYXRlLiAgVGhlc2Ug
Y29tcGlsZXJzCi0vLyBfY2FuXyBkZWNpZGUgYmV0d2VlbiBjbGFzcyB0ZW1wbGF0ZSBzcGVjaWFs
aXphdGlvbnMgZm9yIFQgYW5kIFQqLAotLy8gc28gYSB0cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNf
cG9pbnRlciB3b3Jrcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IGRlZmluZWQoX19J
Qk1DUFBfXykKLSMgZGVmaW5lIEdURVNUX05FRURTX0lTX1BPSU5URVJfIDEKLSNlbmRpZgotCi10
ZW1wbGF0ZSA8Ym9vbCBib29sX3ZhbHVlPgotc3RydWN0IGJvb2xfY29uc3RhbnQgewotICB0eXBl
ZGVmIGJvb2xfY29uc3RhbnQ8Ym9vbF92YWx1ZT4gdHlwZTsKLSAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSBib29sX3ZhbHVlOwotfTsKLXRlbXBsYXRlIDxib29sIGJvb2xfdmFsdWU+IGNvbnN0
IGJvb2wgYm9vbF9jb25zdGFudDxib29sX3ZhbHVlPjo6dmFsdWU7Ci0KLXR5cGVkZWYgYm9vbF9j
b25zdGFudDxmYWxzZT4gZmFsc2VfdHlwZTsKLXR5cGVkZWYgYm9vbF9jb25zdGFudDx0cnVlPiB0
cnVlX3R5cGU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0IGlz
X3NhbWUgOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1z
dHJ1Y3QgaXNfc2FtZTxULCBUPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRlciA6IHB1YmxpYyBmYWxzZV90eXBlIHt9Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBpc19wb2ludGVyPFQqPiA6IHB1YmxpYyB0
cnVlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4KLXN0cnVjdCBJdGVy
YXRvclRyYWl0cyB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OnZhbHVlX3R5cGUgdmFs
dWVfdHlwZTsKLX07Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXRlcmF0b3JU
cmFpdHM8VCo+IHsKLSAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLXN0cnVjdCBJdGVyYXRvclRyYWl0czxjb25zdCBUKj4gewotICB0eXBlZGVmIFQg
dmFsdWVfdHlwZTsKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTCiAjIGRlZmluZSBHVEVTVF9Q
QVRIX1NFUF8gIlxcIgogIyBkZWZpbmUgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8gMQotLy8gVGhl
IGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUgY29tcGlsZXIgc3VwcG9ydHMuCi10eXBl
ZGVmIF9faW50NjQgQmlnZ2VzdEludDsKICNlbHNlCiAjIGRlZmluZSBHVEVTVF9QQVRIX1NFUF8g
Ii8iCiAjIGRlZmluZSBHVEVTVF9IQVNfQUxUX1BBVEhfU0VQXyAwCi10eXBlZGVmIGxvbmcgbG9u
ZyBCaWdnZXN0SW50OyAgLy8gTk9MSU5UCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKIAog
Ly8gVXRpbGl0aWVzIGZvciBjaGFyLgpAQCAtMjQxNiw2ICsxOTM2LDE5IEBAIGlubGluZSBib29s
IElzVXBwZXIoY2hhciBjaCkgewogaW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhciBjaCkgewogICBy
ZXR1cm4gaXN4ZGlnaXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpKSAhPSAwOwogfQor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKK2lubGluZSBib29sIElzWERpZ2l0KGNoYXI4X3QgY2gpIHsK
KyAgcmV0dXJuIGlzeGRpZ2l0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsK
K30KKyNlbmRpZgoraW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjE2X3QgY2gpIHsKKyAgY29uc3Qg
dW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsK
KyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOworfQor
aW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjMyX3QgY2gpIHsKKyAgY29uc3QgdW5zaWduZWQgY2hh
ciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsKKyAgcmV0dXJuIGNo
ID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOworfQogaW5saW5lIGJvb2wg
SXNYRGlnaXQod2NoYXJfdCBjaCkgewogICBjb25zdCB1bnNpZ25lZCBjaGFyIGxvd19ieXRlID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOwogICByZXR1cm4gY2ggPT0gbG93X2J5dGUg
JiYgaXN4ZGlnaXQobG93X2J5dGUpICE9IDA7CkBAIC0yNDUwLDE2ICsxOTgzLDE2IEBAIG5hbWVz
cGFjZSBwb3NpeCB7CiB0eXBlZGVmIHN0cnVjdCBfc3RhdCBTdGF0U3RydWN0OwogCiAjIGlmZGVm
IF9fQk9STEFORENfXwotaW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7IHJldHVybiBpc2F0dHko
ZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsg
fQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikg
ewogICByZXR1cm4gc3RyaWNtcChzMSwgczIpOwogfQogaW5saW5lIGNoYXIqIFN0ckR1cChjb25z
dCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9CiAjIGVsc2UgIC8vICFfX0JPUkxB
TkRDX18KICMgIGlmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi1pbmxpbmUgaW50IElzQVRUWShp
bnQgLyogZmQgKi8pIHsgcmV0dXJuIDA7IH0KK2lubGluZSBpbnQgRG9Jc0FUVFkoaW50IC8qIGZk
ICovKSB7IHJldHVybiAwOyB9CiAjICBlbHNlCi1pbmxpbmUgaW50IElzQVRUWShpbnQgZmQpIHsg
cmV0dXJuIF9pc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1
cm4gX2lzYXR0eShmZCk7IH0KICMgIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQog
aW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewog
ICByZXR1cm4gX3N0cmljbXAoczEsIHMyKTsKQEAgLTI0ODAsMTIgKzIwMTMsMjggQEAgaW5saW5l
IGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsKIH0KICMgZW5kaWYgIC8vIEdURVNU
X09TX1dJTkRPV1NfTU9CSUxFCiAKKyNlbGlmIEdURVNUX09TX0VTUDgyNjYKK3R5cGVkZWYgc3Ry
dWN0IHN0YXQgU3RhdFN0cnVjdDsKKworaW5saW5lIGludCBGaWxlTm8oRklMRSogZmlsZSkgeyBy
ZXR1cm4gZmlsZW5vKGZpbGUpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBmZCkgeyByZXR1
cm4gaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBTdGF0KGNvbnN0IGNoYXIqIHBhdGgsIFN0YXRT
dHJ1Y3QqIGJ1ZikgeworICAvLyBzdGF0IGZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCBvbiBFU1A4
MjY2CisgIHJldHVybiAwOworfQoraW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMx
LCBjb25zdCBjaGFyKiBzMikgeworICByZXR1cm4gc3RyY2FzZWNtcChzMSwgczIpOworfQoraW5s
aW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9
CitpbmxpbmUgaW50IFJtRGlyKGNvbnN0IGNoYXIqIGRpcikgeyByZXR1cm4gcm1kaXIoZGlyKTsg
fQoraW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3QpIHsgcmV0dXJuIFNfSVNE
SVIoc3Quc3RfbW9kZSk7IH0KKwogI2Vsc2UKIAogdHlwZWRlZiBzdHJ1Y3Qgc3RhdCBTdGF0U3Ry
dWN0OwogCiBpbmxpbmUgaW50IEZpbGVObyhGSUxFKiBmaWxlKSB7IHJldHVybiBmaWxlbm8oZmls
ZSk7IH0KLWlubGluZSBpbnQgSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsgfQor
aW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShmZCk7IH0KIGlubGlu
ZSBpbnQgU3RhdChjb25zdCBjaGFyKiBwYXRoLCBTdGF0U3RydWN0KiBidWYpIHsgcmV0dXJuIHN0
YXQocGF0aCwgYnVmKTsgfQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBj
b25zdCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyY2FzZWNtcChzMSwgczIpOwpAQCAtMjQ5Niwx
NCArMjA0NSwyMSBAQCBpbmxpbmUgYm9vbCBJc0Rpcihjb25zdCBTdGF0U3RydWN0JiBzdCkgeyBy
ZXR1cm4gU19JU0RJUihzdC5zdF9tb2RlKTsgfQogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1MKIAoraW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7CisgIC8vIERvSXNBVFRZIG1pZ2h0IGNo
YW5nZSBlcnJubyAoZm9yIGV4YW1wbGUgRU5PVFRZIGluIGNhc2UgeW91IHJlZGlyZWN0IHN0ZG91
dAorICAvLyB0byBhIGZpbGUgb24gTGludXgpLCB3aGljaCBpcyB1bmV4cGVjdGVkLCBzbyBzYXZl
IHRoZSBwcmV2aW91cyB2YWx1ZSwgYW5kCisgIC8vIHJlc3RvcmUgaXQgYWZ0ZXIgdGhlIGNhbGwu
CisgIGludCBzYXZlZEVycm5vID0gZXJybm87CisgIGludCBpc0F0dHlWYWx1ZSA9IERvSXNBVFRZ
KGZkKTsKKyAgZXJybm8gPSBzYXZlZEVycm5vOworCisgIHJldHVybiBpc0F0dHlWYWx1ZTsKK30K
KwogLy8gRnVuY3Rpb25zIGRlcHJlY2F0ZWQgYnkgTVNWQyA4LjAuCiAKIEdURVNUX0RJU0FCTEVf
TVNDX0RFUFJFQ0FURURfUFVTSF8oKQogCi1pbmxpbmUgY29uc3QgY2hhciogU3RyTkNweShjaGFy
KiBkZXN0LCBjb25zdCBjaGFyKiBzcmMsIHNpemVfdCBuKSB7Ci0gIHJldHVybiBzdHJuY3B5KGRl
c3QsIHNyYywgbik7Ci19Ci0KIC8vIENoRGlyKCksIEZSZW9wZW4oKSwgRkRPcGVuKCksIFJlYWQo
KSwgV3JpdGUoKSwgQ2xvc2UoKSwgYW5kCiAvLyBTdHJFcnJvcigpIGFyZW4ndCBuZWVkZWQgb24g
V2luZG93cyBDRSBhdCB0aGlzIHRpbWUgYW5kIHRodXMgbm90CiAvLyBkZWZpbmVkIHRoZXJlLgpA
QCAtMjUxMiw3ICsyMDY4LDE1IEBAIGlubGluZSBjb25zdCBjaGFyKiBTdHJOQ3B5KGNoYXIqIGRl
c3QsIGNvbnN0IGNoYXIqIHNyYywgc2l6ZV90IG4pIHsKIGlubGluZSBpbnQgQ2hEaXIoY29uc3Qg
Y2hhciogZGlyKSB7IHJldHVybiBjaGRpcihkaXIpOyB9CiAjZW5kaWYKIGlubGluZSBGSUxFKiBG
T3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlKSB7CisjaWYgR1RFU1RfT1Nf
V0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5HVworICBzdHJ1Y3Qgd2NoYXJfY29kZWN2
dCA6IHB1YmxpYyBzdGQ6OmNvZGVjdnQ8d2NoYXJfdCwgY2hhciwgc3RkOjptYnN0YXRlX3Q+IHt9
OworICBzdGQ6OndzdHJpbmdfY29udmVydDx3Y2hhcl9jb2RlY3Z0PiBjb252ZXJ0ZXI7CisgIHN0
ZDo6d3N0cmluZyB3aWRlX3BhdGggPSBjb252ZXJ0ZXIuZnJvbV9ieXRlcyhwYXRoKTsKKyAgc3Rk
Ojp3c3RyaW5nIHdpZGVfbW9kZSA9IGNvbnZlcnRlci5mcm9tX2J5dGVzKG1vZGUpOworICByZXR1
cm4gX3dmb3Blbih3aWRlX3BhdGguY19zdHIoKSwgd2lkZV9tb2RlLmNfc3RyKCkpOworI2Vsc2Ug
IC8vIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKICAgcmV0dXJu
IGZvcGVuKHBhdGgsIG1vZGUpOworI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVT
VF9PU19XSU5ET1dTX01JTkdXCiB9CiAjaWYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiBpbmxp
bmUgRklMRSAqRlJlb3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFyKiBtb2RlLCBGSUxF
KiBzdHJlYW0pIHsKQEAgLTI1MzIsMTUgKzIwOTYsMTYgQEAgaW5saW5lIGludCBDbG9zZShpbnQg
ZmQpIHsgcmV0dXJuIGNsb3NlKGZkKTsgfQogaW5saW5lIGNvbnN0IGNoYXIqIFN0ckVycm9yKGlu
dCBlcnJudW0pIHsgcmV0dXJuIHN0cmVycm9yKGVycm51bSk7IH0KICNlbmRpZgogaW5saW5lIGNv
bnN0IGNoYXIqIEdldEVudihjb25zdCBjaGFyKiBuYW1lKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JU
Ci0gIC8vIFdlIGFyZSBvbiBXaW5kb3dzIENFLCB3aGljaCBoYXMgbm8gZW52aXJvbm1lbnQgdmFy
aWFibGVzLgorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1Nf
UEhPTkUgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1NfUlQgfHwgR1RFU1RfT1NfRVNQODI2Ngor
ICAvLyBXZSBhcmUgb24gYW4gZW1iZWRkZWQgcGxhdGZvcm0sIHdoaWNoIGhhcyBubyBlbnZpcm9u
bWVudCB2YXJpYWJsZXMuCiAgIHN0YXRpY19jYXN0PHZvaWQ+KG5hbWUpOyAgLy8gVG8gcHJldmVu
dCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5nLgotICByZXR1cm4gTlVMTDsKKyAgcmV0dXJuIG51
bGxwdHI7CiAjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX1N1bk9TXzVf
OCkgfHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKICAgLy8gRW52aXJvbm1lbnQgdmFyaWFibGVzIHdo
aWNoIHdlIHByb2dyYW1tYXRpY2FsbHkgY2xlYXIgd2lsbCBiZSBzZXQgdG8gdGhlCiAgIC8vIGVt
cHR5IHN0cmluZyByYXRoZXIgdGhhbiB1bnNldCAoTlVMTCkuICBIYW5kbGUgdGhhdCBjYXNlLgog
ICBjb25zdCBjaGFyKiBjb25zdCBlbnYgPSBnZXRlbnYobmFtZSk7Ci0gIHJldHVybiAoZW52ICE9
IE5VTEwgJiYgZW52WzBdICE9ICdcMCcpID8gZW52IDogTlVMTDsKKyAgcmV0dXJuIChlbnYgIT0g
bnVsbHB0ciAmJiBlbnZbMF0gIT0gJ1wwJykgPyBlbnYgOiBudWxscHRyOwogI2Vsc2UKICAgcmV0
dXJuIGdldGVudihuYW1lKTsKICNlbmRpZgpAQCAtMjU1Miw5ICsyMTE3LDkgQEAgR1RFU1RfRElT
QUJMRV9NU0NfREVQUkVDQVRFRF9QT1BfKCkKIC8vIFdpbmRvd3MgQ0UgaGFzIG5vIEMgbGlicmFy
eS4gVGhlIGFib3J0KCkgZnVuY3Rpb24gaXMgdXNlZCBpbgogLy8gc2V2ZXJhbCBwbGFjZXMgaW4g
R29vZ2xlIFRlc3QuIFRoaXMgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgYSByZWFzb25hYmxlCiAv
LyBpbWl0YXRpb24gb2Ygc3RhbmRhcmQgYmVoYXZpb3VyLgotdm9pZCBBYm9ydCgpOworW1tub3Jl
dHVybl1dIHZvaWQgQWJvcnQoKTsKICNlbHNlCi1pbmxpbmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQo
KTsgfQorW1tub3JldHVybl1dIGlubGluZSB2b2lkIEFib3J0KCkgeyBhYm9ydCgpOyB9CiAjZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKIH0gIC8vIG5hbWVzcGFjZSBwb3NpeApA
QCAtMjU2NCwyNyArMjEyOSwyNCBAQCBpbmxpbmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQoKTsgfQog
Ly8gTVNWQy1iYXNlZCBwbGF0Zm9ybXMuICBXZSBtYXAgdGhlIEdURVNUX1NOUFJJTlRGXyBtYWNy
byB0byB0aGUgYXBwcm9wcmlhdGUKIC8vIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGFjaGlldmUgdGhh
dC4gIFdlIHVzZSBtYWNybyBkZWZpbml0aW9uIGhlcmUgYmVjYXVzZQogLy8gc25wcmludGYgaXMg
YSB2YXJpYWRpYyBmdW5jdGlvbi4KLSNpZiBfTVNDX1ZFUiA+PSAxNDAwICYmICFHVEVTVF9PU19X
SU5ET1dTX01PQklMRQorI2lmIF9NU0NfVkVSICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQog
Ly8gTVNWQyAyMDA1IGFuZCBhYm92ZSBzdXBwb3J0IHZhcmlhZGljIG1hY3Jvcy4KICMgZGVmaW5l
IEdURVNUX1NOUFJJTlRGXyhidWZmZXIsIHNpemUsIGZvcm1hdCwgLi4uKSBcCiAgICAgIF9zbnBy
aW50Zl9zKGJ1ZmZlciwgc2l6ZSwgc2l6ZSwgZm9ybWF0LCBfX1ZBX0FSR1NfXykKICNlbGlmIGRl
ZmluZWQoX01TQ19WRVIpCi0vLyBXaW5kb3dzIENFIGRvZXMgbm90IGRlZmluZSBfc25wcmludGZf
cyBhbmQgTVNWQyBwcmlvciB0byAyMDA1IGRvZXNuJ3QKLS8vIGNvbXBsYWluIGFib3V0IF9zbnBy
aW50Zi4KKy8vIFdpbmRvd3MgQ0UgZG9lcyBub3QgZGVmaW5lIF9zbnByaW50Zl9zCiAjIGRlZmlu
ZSBHVEVTVF9TTlBSSU5URl8gX3NucHJpbnRmCiAjZWxzZQogIyBkZWZpbmUgR1RFU1RfU05QUklO
VEZfIHNucHJpbnRmCiAjZW5kaWYKIAotLy8gVGhlIG1heGltdW0gbnVtYmVyIGEgQmlnZ2VzdElu
dCBjYW4gcmVwcmVzZW50LiAgVGhpcyBkZWZpbml0aW9uCi0vLyB3b3JrcyBubyBtYXR0ZXIgQmln
Z2VzdEludCBpcyByZXByZXNlbnRlZCBpbiBvbmUncyBjb21wbGVtZW50IG9yCi0vLyB0d28ncyBj
b21wbGVtZW50LgorLy8gVGhlIGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUgY29tcGls
ZXIgc3VwcG9ydHMuCiAvLwotLy8gV2UgY2Fubm90IHJlbHkgb24gbnVtZXJpY19saW1pdHMgaW4g
U1RMLCBhcyBfX2ludDY0IGFuZCBsb25nIGxvbmcKLS8vIGFyZSBub3QgcGFydCBvZiBzdGFuZGFy
ZCBDKysgYW5kIG51bWVyaWNfbGltaXRzIGRvZXNuJ3QgbmVlZCB0byBiZQotLy8gZGVmaW5lZCBm
b3IgdGhlbS4KLWNvbnN0IEJpZ2dlc3RJbnQga01heEJpZ2dlc3RJbnQgPQotICAgIH4oc3RhdGlj
X2Nhc3Q8QmlnZ2VzdEludD4oMSkgPDwgKDgqc2l6ZW9mKEJpZ2dlc3RJbnQpIC0gMSkpOworLy8g
bG9uZyBsb25nIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQgbGVhc3QgNjQtYml0cyBpbiBDKysxMS4K
K3VzaW5nIEJpZ2dlc3RJbnQgPSBsb25nIGxvbmc7ICAvLyBOT0xJTlQKKworLy8gVGhlIG1heGlt
dW0gbnVtYmVyIGEgQmlnZ2VzdEludCBjYW4gcmVwcmVzZW50LgorY29uc3RleHByIEJpZ2dlc3RJ
bnQga01heEJpZ2dlc3RJbnQgPSAoc3RkOjpudW1lcmljX2xpbWl0czxCaWdnZXN0SW50Pjo6bWF4
KSgpOwogCiAvLyBUaGlzIHRlbXBsYXRlIGNsYXNzIHNlcnZlcyBhcyBhIGNvbXBpbGUtdGltZSBm
dW5jdGlvbiBmcm9tIHNpemUgdG8KIC8vIHR5cGUuICBJdCBtYXBzIGEgc2l6ZSBpbiBieXRlcyB0
byBhIHByaW1pdGl2ZSB0eXBlIHdpdGggdGhhdApAQCAtMjYwOSw0MCArMjE3MSwyNyBAQCBjbGFz
cyBUeXBlV2l0aFNpemUgewogIHB1YmxpYzoKICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgdXNlciBm
cm9tIHVzaW5nIFR5cGVXaXRoU2l6ZTxOPiB3aXRoIGluY29ycmVjdAogICAvLyB2YWx1ZXMgb2Yg
Ti4KLSAgdHlwZWRlZiB2b2lkIFVJbnQ7CisgIHVzaW5nIFVJbnQgPSB2b2lkOwogfTsKIAogLy8g
VGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDQuCiB0ZW1wbGF0ZSA8PgogY2xhc3MgVHlwZVdp
dGhTaXplPDQ+IHsKICBwdWJsaWM6Ci0gIC8vIHVuc2lnbmVkIGludCBoYXMgc2l6ZSA0IGluIGJv
dGggZ2NjIGFuZCBNU1ZDLgotICAvLwotICAvLyBBcyBiYXNlL2Jhc2ljdHlwZXMuaCBkb2Vzbid0
IGNvbXBpbGUgb24gV2luZG93cywgd2UgY2Fubm90IHVzZQotICAvLyB1aW50MzIsIHVpbnQ2NCwg
YW5kIGV0YyBoZXJlLgotICB0eXBlZGVmIGludCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50
IFVJbnQ7CisgIHVzaW5nIEludCA9IHN0ZDo6aW50MzJfdDsKKyAgdXNpbmcgVUludCA9IHN0ZDo6
dWludDMyX3Q7CiB9OwogCiAvLyBUaGUgc3BlY2lhbGl6YXRpb24gZm9yIHNpemUgOC4KIHRlbXBs
YXRlIDw+CiBjbGFzcyBUeXBlV2l0aFNpemU8OD4gewogIHB1YmxpYzoKLSNpZiBHVEVTVF9PU19X
SU5ET1dTCi0gIHR5cGVkZWYgX19pbnQ2NCBJbnQ7Ci0gIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2
NCBVSW50OwotI2Vsc2UKLSAgdHlwZWRlZiBsb25nIGxvbmcgSW50OyAgLy8gTk9MSU5UCi0gIHR5
cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVJbnQ7ICAvLyBOT0xJTlQKLSNlbmRpZiAgLy8gR1RF
U1RfT1NfV0lORE9XUworICB1c2luZyBJbnQgPSBzdGQ6OmludDY0X3Q7CisgIHVzaW5nIFVJbnQg
PSBzdGQ6OnVpbnQ2NF90OwogfTsKIAogLy8gSW50ZWdlciB0eXBlcyBvZiBrbm93biBzaXplcy4K
LXR5cGVkZWYgVHlwZVdpdGhTaXplPDQ+OjpJbnQgSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6
ZTw0Pjo6VUludCBVSW50MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6SW50IEludDY0Owot
dHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OlVJbnQgVUludDY0OwotdHlwZWRlZiBUeXBlV2l0aFNp
emU8OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNv
bmRzLgordXNpbmcgVGltZUluTWlsbGlzID0gaW50NjRfdDsgIC8vIFJlcHJlc2VudHMgdGltZSBp
biBtaWxsaXNlY29uZHMuCiAKIC8vIFV0aWxpdGllcyBmb3IgY29tbWFuZCBsaW5lIGZsYWdzIGFu
ZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAKQEAgLTI2NjEsNyArMjIxMCw3IEBAIHR5cGVkZWYg
VHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50cyB0aW1lIGlu
IG1pbGxpc2Vjb25kcy4KIC8vIE1hY3JvcyBmb3IgZGVjbGFyaW5nIGZsYWdzLgogIyBkZWZpbmUg
R1RFU1RfREVDTEFSRV9ib29sXyhuYW1lKSBHVEVTVF9BUElfIGV4dGVybiBib29sIEdURVNUX0ZM
QUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfaW50MzJfKG5hbWUpIFwKLSAgICBHVEVT
VF9BUElfIGV4dGVybiA6OnRlc3Rpbmc6OmludGVybmFsOjpJbnQzMiBHVEVTVF9GTEFHKG5hbWUp
CisgICAgR1RFU1RfQVBJXyBleHRlcm4gc3RkOjppbnQzMl90IEdURVNUX0ZMQUcobmFtZSkKICMg
ZGVmaW5lIEdURVNUX0RFQ0xBUkVfc3RyaW5nXyhuYW1lKSBcCiAgICAgR1RFU1RfQVBJXyBleHRl
cm4gOjpzdGQ6OnN0cmluZyBHVEVTVF9GTEFHKG5hbWUpCiAKQEAgLTI2NjksNyArMjIxOCw3IEBA
IHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50
cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KICMgZGVmaW5lIEdURVNUX0RFRklORV9ib29sXyhuYW1l
LCBkZWZhdWx0X3ZhbCwgZG9jKSBcCiAgICAgR1RFU1RfQVBJXyBib29sIEdURVNUX0ZMQUcobmFt
ZSkgPSAoZGVmYXVsdF92YWwpCiAjIGRlZmluZSBHVEVTVF9ERUZJTkVfaW50MzJfKG5hbWUsIGRl
ZmF1bHRfdmFsLCBkb2MpIFwKLSAgICBHVEVTVF9BUElfIDo6dGVzdGluZzo6aW50ZXJuYWw6Oklu
dDMyIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCisgICAgR1RFU1RfQVBJXyBzdGQ6
OmludDMyX3QgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKICMgZGVmaW5lIEdURVNU
X0RFRklORV9zdHJpbmdfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKICAgICBHVEVTVF9BUElf
IDo6c3RkOjpzdHJpbmcgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZhdWx0X3ZhbCkKIApAQCAtMjY4
NCwxOSArMjIzMywxNTIgQEAgdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OkludCBUaW1lSW5NaWxs
aXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzLgogLy8gUGFyc2VzICdzdHIn
IGZvciBhIDMyLWJpdCBzaWduZWQgaW50ZWdlci4gIElmIHN1Y2Nlc3NmdWwsIHdyaXRlcyB0aGUg
cmVzdWx0CiAvLyB0byAqdmFsdWUgYW5kIHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGxlYXZlcyAq
dmFsdWUgdW5jaGFuZ2VkIGFuZCByZXR1cm5zCiAvLyBmYWxzZS4KLS8vIEZJWE1FOiBGaW5kIGEg
YmV0dGVyIHdheSB0byByZWZhY3RvciBmbGFnIGFuZCBlbnZpcm9ubWVudCBwYXJzaW5nCi0vLyBv
dXQgb2YgYm90aCBndGVzdC1wb3J0LmNjIGFuZCBndGVzdC5jYyB0byBhdm9pZCBleHBvcnRpbmcg
dGhpcyB1dGlsaXR5Ci0vLyBmdW5jdGlvbi4KLWJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdl
JiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQzMiogdmFsdWUpOworR1RFU1RfQVBJXyBi
b29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIqIHN0ciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIHZhbHVlKTsKIAotLy8gUGFyc2Vz
IGEgYm9vbC9JbnQzMi9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy8vIFBh
cnNlcyBhIGJvb2wvaW50MzJfdC9zdHJpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUK
IC8vIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIEdvb2dsZSBUZXN0IGZsYWcuCiBib29sIEJv
b2xGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgYm9vbCBkZWZhdWx0X3ZhbCk7Ci1HVEVT
VF9BUElfIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRl
ZmF1bHRfdmFsKTsKK0dURVNUX0FQSV8gaW50MzJfdCBJbnQzMkZyb21HVGVzdEVudihjb25zdCBj
aGFyKiBmbGFnLCBpbnQzMl90IGRlZmF1bHRfdmFsKTsKIHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdB
bHNvQ2hlY2tFbnZWYXIoKTsKIGNvbnN0IGNoYXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBj
aGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZhdWx0X3ZhbCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KKyNpZiAhZGVmaW5lZChHVEVTVF9JTlRF
Uk5BTF9ERVBSRUNBVEVEKQorCisvLyBJbnRlcm5hbCBNYWNybyB0byBtYXJrIGFuIEFQSSBkZXBy
ZWNhdGVkLCBmb3IgZ29vZ2xldGVzdCB1c2FnZSBvbmx5CisvLyBVc2FnZTogY2xhc3MgR1RFU1Rf
SU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSBNeUNsYXNzIG9yCisvLyBHVEVTVF9JTlRFUk5B
TF9ERVBSRUNBVEVEKG1lc3NhZ2UpIDxyZXR1cm5fdHlwZT4gbXlGdW5jdGlvbigpOyBFdmVyeSB1
c2FnZSBvZgorLy8gYSBkZXByZWNhdGVkIGVudGl0eSB3aWxsIHRyaWdnZXIgYSB3YXJuaW5nIHdo
ZW4gY29tcGlsZWQgd2l0aAorLy8gYC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNgIG9wdGlvbiAo
Y2xhbmcsIGdjYywgYW55IF9fR05VQ19fIGNvbXBpbGVyKS4KKy8vIEZvciBtc3ZjIC9XMyBvcHRp
b24gd2lsbCBuZWVkIHRvIGJlIHVzZWQKKy8vIE5vdGUgdGhhdCBmb3IgJ290aGVyJyBjb21waWxl
cnMgdGhpcyBtYWNybyBldmFsdWF0ZXMgdG8gbm90aGluZyB0byBwcmV2ZW50CisvLyBjb21waWxh
dGlvbnMgZXJyb3JzLgorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEdURVNUX0lOVEVS
TkFMX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3NhZ2UpKQor
I2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfREVQUkVDQVRF
RChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyNlbHNlCisj
ZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZgorCisjZW5k
aWYgIC8vICFkZWZpbmVkKEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQpCisKKyNpZiBHVEVTVF9I
QVNfQUJTTAorLy8gQWx3YXlzIHVzZSBhYnNsOjphbnkgZm9yIFVuaXZlcnNhbFByaW50ZXI8PiBz
cGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBv
cnQuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19BTlkgMQorI2luY2x1ZGUgImFic2wvdHlw
ZXMvYW55LmgiCituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgaW50ZXJuYWwgewordXNp
bmcgQW55ID0gOjphYnNsOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCisjZWxzZQorI2lmZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19p
bmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9y
IEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6YW55IGZvciBVbml2ZXJzYWxQcmludGVyPD4KKy8v
IHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAxCisjaW5j
bHVkZSA8YW55PgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3Vz
aW5nIEFueSA9IDo6c3RkOjphbnk7Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCisvLyBUaGUgY2FzZSB3aGVyZSBhYnNsIGlzIGNvbmZpZ3VyZWQgTk9U
IHRvIGFsaWFzIHN0ZDo6YW55IGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2VuZGlmICAvLyBfX2hh
c19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisjZW5kaWYgIC8vIF9f
aGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKworI2lmIEdURVNUX0hBU19B
QlNMCisvLyBBbHdheXMgdXNlIGFic2w6Om9wdGlvbmFsIGZvciBVbml2ZXJzYWxQcmludGVyPD4g
c3BlY2lhbGl6YXRpb25zIGlmCisvLyBnb29nbGV0ZXN0IGlzIGJ1aWx0IHdpdGggYWJzbCBzdXBw
b3J0LgorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwgMQorI2luY2x1ZGUgImFi
c2wvdHlwZXMvb3B0aW9uYWwuaCIKK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRl
cm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFsID0gOjphYnNsOjpv
cHRpb25hbDxUPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRl
c3RpbmcKKyNlbHNlCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPG9w
dGlvbmFsPikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysx
NyBhbmQgaGlnaGVyIHVzZSBzdGQ6Om9wdGlvbmFsIGZvciBVbml2ZXJzYWxQcmludGVyPD4KKy8v
IHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMIDEK
KyNpbmNsdWRlIDxvcHRpb25hbD4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRl
cm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIE9wdGlvbmFsID0gOjpzdGQ6Om9w
dGlvbmFsPFQ+OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVz
dGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBz
dGQ6Om9wdGlvbmFsIGlzIG5vdAorLy8gc3VwcG9ydGVkLgorI2VuZGlmICAvLyBfX2hhc19pbmNs
dWRlKDxvcHRpb25hbD4pICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19o
YXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFTX0FC
U0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgZm9yIE1hdGNoZXI8PiBzcGVjaWFs
aXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBvcnQuCisj
IGRlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcgMQorI2luY2x1ZGUgImFic2wv
c3RyaW5ncy9zdHJpbmdfdmlldy5oIgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGlu
dGVybmFsIHsKK3VzaW5nIFN0cmluZ1ZpZXcgPSA6OmFic2w6OnN0cmluZ192aWV3OworfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworI2Vsc2UKKyMgaWZk
ZWYgX19oYXNfaW5jbHVkZQorIyAgIGlmIF9faGFzX2luY2x1ZGUoPHN0cmluZ192aWV3PikgJiYg
X19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysxNyBhbmQgaGlnaGVy
IHVzZSBzdGQ6OnN0cmluZ192aWV3IGZvciBNYXRjaGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4K
KyMgICBkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXIDEKKyNpbmNsdWRlIDxz
dHJpbmdfdmlldz4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit1
c2luZyBTdHJpbmdWaWV3ID0gOjpzdGQ6OnN0cmluZ192aWV3OworfSAgLy8gbmFtZXNwYWNlIGlu
dGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBp
cyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnN0cmluZ192aWV3IGlzIG5vdAorLy8gc3Vw
cG9ydGVkLgorIyAgZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUoPHN0cmluZ192aWV3PikgJiYgX19j
cGx1c3BsdXMgPj0gMjAxNzAzTAorIyBlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAv
LyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFTX0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJz
bDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+IHNwZWNpYWxpemF0aW9ucyBpZiBnb29n
bGV0ZXN0CisvLyBpcyBidWlsdCB3aXRoIGFic2wgc3VwcG9ydC4KKyNkZWZpbmUgR1RFU1RfSU5U
RVJOQUxfSEFTX1ZBUklBTlQgMQorI2luY2x1ZGUgImFic2wvdHlwZXMvdmFyaWFudC5oIgorbmFt
ZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFt
ZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6YWJzbDo6dmFyaWFudDxULi4uPjsKK30gIC8vIG5h
bWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKyNlbHNlCisjaWZkZWYg
X19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPHZhcmlhbnQ+KSAmJiBfX2NwbHVzcGx1
cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9yIEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6
dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+CisvLyBzcGVjaWFsaXphdGlvbnMuCisjZGVm
aW5lIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIDEKKyNpbmNsdWRlIDx2YXJpYW50PgorbmFt
ZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFt
ZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6c3RkOjp2YXJpYW50PFQuLi4+OworfSAgLy8gbmFt
ZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hl
cmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnZhcmlhbnQgaXMgbm90IHN1
cHBvcnRlZC4KKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZSg8dmFyaWFudD4pICYmIF9fY3BsdXNw
bHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVT
VF9IQVNfQUJTTAorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaAppbmRleCA0YzliNjI2MmMz
YzEwMzcyNmFhM2NhYjRjMTk5OTViYWVmOTU4Yjk4Li4xMGY3NzRmOTY2MDZlNWI5Yjg3YmEzNGVj
N2M1MmJhNDc1YWQ4NWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgKQEAgLTM4LDggKzM4
LDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCi0jZGVmaW5lIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjaWZuZGVmIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KKyNkZWZpbmUgR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXwogCiAjaWZkZWYgX19C
T1JMQU5EQ19fCiAvLyBzdHJpbmcuaCBpcyBub3QgZ3VhcmFudGVlZCB0byBwcm92aWRlIHN0cmNw
eSBvbiBDKysgQnVpbGRlci4KQEAgLTQ3LDYgKzQ3LDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxzdHJpbmc+CiAKICNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCkBAIC05NCw3ICs5NSw4IEBAIGNsYXNz
IEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGNvbnN0IGNoYXIqIFV0ZjE2VG9BbnNpKExQ
Q1dTVFIgdXRmMTZfc3RyKTsKICNlbmRpZgogCi0gIC8vIENvbXBhcmVzIHR3byBDIHN0cmluZ3Mu
ICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAvLyBDb21w
YXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZXkgaGF2
ZSB0aGUgc2FtZQorICAvLyBjb250ZW50LgogICAvLwogICAvLyBVbmxpa2Ugc3RyY21wKCksIHRo
aXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQogICAvLyBOVUxMIEMg
c3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywK
QEAgLTEwNywxNiArMTA5LDE2IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgLy8gcmV0
dXJuZWQuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBTaG93V2lkZUNTdHJpbmcoY29uc3Qgd2NoYXJf
dCogd2lkZV9jX3N0cik7CiAKLSAgLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0
dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUKLSAgLy8gY29udGVudC4KKyAgLy8gQ29t
cGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRo
ZXkgaGF2ZSB0aGUKKyAgLy8gc2FtZSBjb250ZW50LgogICAvLwogICAvLyBVbmxpa2Ugd2NzY21w
KCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAgQQogICAvLyBO
VUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0
cmluZywKICAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiAgIHN0YXRpYyBib29sIFdp
ZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywgY29uc3Qgd2NoYXJfdCogcmhzKTsK
IAotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0
cnVlIGlmZiB0aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgLy8gQ29tcGFyZXMg
dHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHN0
cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCiAg
IC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5V
TEwgQyBzdHJpbmcsCkBAIC0xMjQsOCArMTI2LDggQEAgY2xhc3MgR1RFU1RfQVBJXyBTdHJpbmcg
ewogICBzdGF0aWMgYm9vbCBDYXNlSW5zZW5zaXRpdmVDU3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIq
IGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiByaHMpOwogCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3Jpbmcg
Y2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQu
CisgIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4K
ICAgLy8KICAgLy8gVW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxl
IE5VTEwgYXJndW1lbnQocykuCiAgIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRp
ZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgd2lkZSBDIHN0cmluZywKQEAgLTEzOSwxNyArMTQxLDIz
IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGJvb2wgQ2FzZUluc2Vuc2l0
aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hhcl90KiByaHMpOwogCi0g
IC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBlbmRzIHdpdGggdGhlIGdpdmVu
IHN1ZmZpeCwgaWdub3JpbmcKLSAgLy8gY2FzZS4gQW55IHN0cmluZyBpcyBjb25zaWRlcmVkIHRv
IGVuZCB3aXRoIGFuIGVtcHR5IHN1ZmZpeC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSBnaXZlbiBzdHJpbmcgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsCisgIC8vIGln
bm9yaW5nIGNhc2UuIEFueSBzdHJpbmcgaXMgY29uc2lkZXJlZCB0byBlbmQgd2l0aCBhbiBlbXB0
eSBzdWZmaXguCiAgIHN0YXRpYyBib29sIEVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogICAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcmIHN0ciwgY29uc3Qgc3RkOjpzdHJpbmcmIHN1ZmZpeCk7CiAKICAg
Ly8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiUwMmQiLgogICBzdGF0aWMgc3RkOjpzdHJpbmcg
Rm9ybWF0SW50V2lkdGgyKGludCB2YWx1ZSk7ICAvLyAiJTAyZCIgZm9yIHdpZHRoID09IDIKIAor
ICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSB0byBnaXZlbiB3aWR0aCB3aXRoIGxlYWRpbmcgemVy
b3MuCisgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRJbnRXaWR0aE4oaW50IHZhbHVlLCBpbnQg
d2lkdGgpOworCiAgIC8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCiAgIHN0YXRpYyBz
dGQ6OnN0cmluZyBGb3JtYXRIZXhJbnQoaW50IHZhbHVlKTsKIAorICAvLyBGb3JtYXRzIGFuIGlu
dCB2YWx1ZSBhcyAiJVgiLgorICBzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0SGV4VUludDMyKHVp
bnQzMl90IHZhbHVlKTsKKwogICAvLyBGb3JtYXRzIGEgYnl0ZSBhcyAiJTAyWCIuCiAgIHN0YXRp
YyBzdGQ6OnN0cmluZyBGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUpOwogCkBAIC0xNjQs
NCArMTcyLDQgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6
OnN0ZDo6c3RyaW5nc3RyZWFtKiBzdHJlYW0pOwogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9
ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhhM2E2YTAxZmFjNzU1MTdlYWI4MzEzMTI0Mjdl
MTVkNWU0ZWJiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1
cGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIxICswLDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMg
R0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC10dXBsZS5oLnB1bXAK
LS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQotLy8gQ29weXJpZ2h0IDIwMDkgR29vZ2xlIElu
Yy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUg
bmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8gR09PR0xFVEVTVF9D
TTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6OnN0ZDo6cGFpci4K
LQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcgdGhhdCBwcmV2ZW50
cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFzIGEgZnJpZW5kIChp
dCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwotLy8gYnlwYXNzZXMg
dGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3RoZXJ3aXNlIGJl
Ci0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMgPCAxMiBhbHNv
IGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IChkZWZp
bmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZpbmUgR1RFU1Rf
REVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9E
RUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFN
RVNfKFUpPiBmcmllbmQgY2xhc3MgdHVwbGU7IFwKLSAgIHByaXZhdGU6Ci0jZW5kaWYKLQotLy8g
VmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAxMyBkZWZpbmUgc3ltYm9scyBpbiBzdGQ6
OnRyMSB0aGF0IGNvbmZsaWN0Ci0vLyB3aXRoIG91ciBvd24gZGVmaW5pdGlvbnMuIFRoZXJlZm9y
ZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90IHdvcmsgb24KLS8vIHRob3NlIGNvbXBpbGVy
cy4KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwICAvKiAxNjAwIGlz
IFZpc3VhbCBTdHVkaW8gMjAxMCAqLwotIyBlcnJvciAiZ3Rlc3QncyB0dXBsZSBkb2Vzbid0IGNv
bXBpbGUgb24gVmlzdWFsIFN0dWRpbyAyMDEwIG9yIGxhdGVyLiBcCi1HVEVTVF9VU0VfT1dOX1RS
MV9UVVBMRSBtdXN0IGJlIHNldCB0byAwIG9uIHRob3NlIGNvbXBpbGVycy4iCi0jZW5kaWYKLQot
Ly8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZpbmUg
R1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotI2RlZmluZSBHVEVTVF8xX1RVUExFXyhUKSB0dXBs
ZTxUIyMwLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwg
dm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfMl9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwg
dm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0j
ZGVmaW5lIEdURVNUXzNfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIHZvaWQsIHZv
aWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF80
X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCB2b2lkLCB2b2lkLCB2b2lk
LCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfNV9UVVBMRV8oVCkgdHVw
bGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgdm9pZCwgdm9pZCwgXAotICAgIHZvaWQs
IHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzZfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEs
IFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lkPgot
I2RlZmluZSBHVEVTVF83X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCBU
IyM0LCBUIyM1LCBUIyM2LCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1Rf
OF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMj
NiwgXAotICAgIFQjIzcsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzlfVFVQTEVfKFQpIHR1
cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIFQjIzYsIFwKLSAgICBUIyM3
LCBUIyM4LCB2b2lkPgotI2RlZmluZSBHVEVTVF8xMF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMj
MSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMjNiwgXAotICAgIFQjIzcsIFQjIzgsIFQjIzk+
Ci0KLS8vIEdURVNUX25fVFlQRU5BTUVTXyhUKSBkZWNsYXJlcyBhIGxpc3Qgb2YgbiB0eXBlbmFt
ZXMuCi0jZGVmaW5lIEdURVNUXzBfVFlQRU5BTUVTXyhUKQotI2RlZmluZSBHVEVTVF8xX1RZUEVO
QU1FU18oVCkgdHlwZW5hbWUgVCMjMAotI2RlZmluZSBHVEVTVF8yX1RZUEVOQU1FU18oVCkgdHlw
ZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMQotI2RlZmluZSBHVEVTVF8zX1RZUEVOQU1FU18oVCkg
dHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMgotI2RlZmluZSBHVEVT
VF80X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUg
VCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMKLSNkZWZpbmUgR1RFU1RfNV9UWVBFTkFNRVNfKFQp
IHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBl
bmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0Ci0jZGVmaW5lIEdURVNUXzZfVFlQRU5BTUVTXyhUKSB0
eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5h
bWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNQotI2RlZmluZSBHVEVTVF83X1RZ
UEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwg
XAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1lIFQjIzUsIHR5cGVu
YW1lIFQjIzYKLSNkZWZpbmUgR1RFU1RfOF9UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5
cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFt
ZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0eXBlbmFtZSBUIyM2LCB0eXBlbmFtZSBUIyM3Ci0jZGVm
aW5lIEdURVNUXzlfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0
eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5h
bWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVuYW1lIFQjIzcsIHR5cGVuYW1lIFQj
IzgKLSNkZWZpbmUgR1RFU1RfMTBfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFt
ZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMj
NCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5cGVuYW1lIFQjIzcsIHR5
cGVuYW1lIFQjIzgsIHR5cGVuYW1lIFQjIzkKLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBzdHVm
ZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBXZSBj
YW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBs
aWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMCA9IHZvaWQsIHR5cGVuYW1lIFQxID0gdm9pZCwgdHlwZW5hbWUgVDIg
PSB2b2lkLAotICAgIHR5cGVuYW1lIFQzID0gdm9pZCwgdHlwZW5hbWUgVDQgPSB2b2lkLCB0eXBl
bmFtZSBUNSA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDYgPSB2b2lkLCB0eXBlbmFtZSBUNyA9IHZv
aWQsIHR5cGVuYW1lIFQ4ID0gdm9pZCwKLSAgICB0eXBlbmFtZSBUOSA9IHZvaWQ+Ci1jbGFzcyB0
dXBsZTsKLQotLy8gQW55dGhpbmcgaW4gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIGlzIEdvb2ds
ZSBUZXN0J3MgSU5URVJOQUwKLS8vIElNUExFTUVOVEFUSU9OIERFVEFJTCBhbmQgTVVTVCBOT1Qg
QkUgVVNFRCBESVJFQ1RMWSBpbiB1c2VyIGNvZGUuCi1uYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwg
ewotCi0vLyBCeVJlZjxUPjo6dHlwZSBpcyBUIGlmIFQgaXMgYSByZWZlcmVuY2U7IG90aGVyd2lz
ZSBpdCdzIGNvbnN0IFQmLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQnlSZWYgeyB0
eXBlZGVmIGNvbnN0IFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotc3RydWN0IEJ5UmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0v
LyBBIGhhbmR5IHdyYXBwZXIgZm9yIEJ5UmVmLgotI2RlZmluZSBHVEVTVF9CWV9SRUZfKFQpIHR5
cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFsOjpCeVJlZjxUPjo6dHlwZQotCi0vLyBB
ZGRSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBU
Ji4gIFRoaXMKLS8vIGlzIHRoZSBzYW1lIGFzIHRyMTo6YWRkX3JlZmVyZW5jZTxUPjo6dHlwZS4K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZiB7IHR5cGVkZWYgVCYgdHlwZTsg
fTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmPFQmPiB7
IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgZm9y
IEFkZFJlZi4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRl8oVCkgdHlwZW5hbWUgOjpzdGQ6OnRyMTo6
Z3Rlc3RfaW50ZXJuYWw6OkFkZFJlZjxUPjo6dHlwZQotCi0vLyBBIGhlbHBlciBmb3IgaW1wbGVt
ZW50aW5nIGdldDxrPigpLgotdGVtcGxhdGUgPGludCBrPiBjbGFzcyBHZXQ7Ci0KLS8vIEEgaGVs
cGVyIGZvciBpbXBsZW1lbnRpbmcgdHVwbGVfZWxlbWVudDxrLCBUPi4gIGtJbmRleFZhbGlkIGlz
IHRydWUKLS8vIGlmZiBrIDwgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdHVwbGUgdHlwZSBULgot
dGVtcGxhdGUgPGJvb2wga0luZGV4VmFsaWQsIGludCBrSW5kZXgsIGNsYXNzIFR1cGxlPgotc3Ry
dWN0IFR1cGxlRWxlbWVudDsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDAsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDEsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDIsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDMsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUMyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDQsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDUsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDYsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDcsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUNyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDgsIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUOCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1z
dHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDksIEdURVNUXzEwX1RVUExFXyhUKSA+IHsKLSAgdHlw
ZWRlZiBUOSB0eXBlOwotfTsKLQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRl
bXBsYXRlIDw+Ci1jbGFzcyB0dXBsZTw+IHsKLSBwdWJsaWM6Ci0gIHR1cGxlKCkge30KLSAgdHVw
bGUoY29uc3QgdHVwbGUmIC8qIHQgKi8pICB7fQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1
cGxlJiAvKiB0ICovKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQotdGVtcGxhdGUgPEdURVNUXzFf
VFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzFfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRl
bXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVw
bGUoKSA6IGYwXygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAp
IDogZjBfKGYwKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXykge30K
LQotICB0ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVT
VF8xX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShj
b25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RF
U1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzFfVFVQ
TEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVD
TEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhV
KT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzFfVFVQTEVfKFUpJiB0KSB7Ci0gICAg
ZjBfID0gdC5mMF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzJfVFVQTEVfKFQp
IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVy
bmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSB7fQotCi0gIGV4cGxpY2l0IHR1
cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSkgOiBmMF8oZjAp
LAotICAgICAgZjFfKGYxKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYw
XyksIGYxXyh0LmYxXykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFUpPgot
ICB0dXBsZShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1cGxlKGNv
bnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIDogZjBfKHAuZmlyc3QpLCBmMV8ocC5zZWNvbmQp
IHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZy
b20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYg
b3BlcmF0b3I9KGNvbnN0IEdURVNUXzJfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlG
cm9tKHQpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1
cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUxPiYgcCkgewotICAgIGYwXyA9
IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzJf
VFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzJfVFVQTEVfKFUp
JiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgcmV0dXJuICp0
aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
M19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfM19UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAg
dGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0
dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNU
X0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JF
Rl8oVDIpIGYyKSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMikge30KLQotICB0dXBsZShjb25z
dCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pIHt9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfM19U
VVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSB7fQotCi0g
IHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9y
PShjb25zdCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsK
LSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxH
VEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8zX1RV
UExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYy
XyA9IHQuZjJfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFf
OwotICBUMiBmMl87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFQpPgotY2xh
c3MgR1RFU1RfNF9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmll
bmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygp
LCBmMl8oKSwgZjNfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBm
MCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RF
U1RfQllfUkVGXyhUMykgZjMpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwKLSAgICAgIGYz
XyhmMykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzRfVFlQ
RU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIDogZjBfKHQu
ZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXykge30KLQotICB0
dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQot
Ci0gIHRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0o
Y29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0g
IH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RF
U1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNF9UVVBM
RV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8g
PSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBU
MCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNV9UVVBMRV8oVCkgewotIHB1Ymxp
YzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsK
LQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpIHt9Ci0KLSAg
ZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYx
LAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLAotICAg
ICAgR1RFU1RfQllfUkVGXyhUNCkgZjQpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNf
KGYzKSwgZjRfKGY0KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyks
IGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYzXyksCi0gICAgICBmNF8odC5mNF8pIHt9
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RF
U1RfNV9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwK
LSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0Xykge30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNv
bnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVT
VF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgR1RFU1RfNV9UVVBM
RV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNM
QVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFUp
PgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkmIHQpIHsKLSAgICBm
MF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18g
PSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBU
MCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF82X1RVUExFXyhU
KSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRl
cm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCksIGYyXygpLCBmM18oKSwgZjRf
KCksIGY1XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdU
RVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZ
X1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8o
VDUpIGY1KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksIGYzXyhmMyksIGY0XyhmNCksCi0g
ICAgICBmNV8oZjUpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwg
ZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1
Xyh0LmY1Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFUpPgotICB0dXBs
ZShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBm
Ml8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSB7fQot
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQp
OyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0
KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRl
IDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF82
X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAg
IGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1
XyA9IHQuZjVfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFf
OwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfN19UVVBMRV8oVCkgewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6
OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBm
NV8oKSwgZjZfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwg
R1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1Rf
QllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVG
XyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhm
MiksCi0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8oZjUpLCBmNl8oZjYpIHt9Ci0KLSAgdHVw
bGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwg
ZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2Xykge30K
LQotICB0ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVT
VF83X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLAot
ICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSB7fQot
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQp
OyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0
KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRl
IDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF83
X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAg
IGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1
XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0g
IFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBU
NSBmNV87Ci0gIFQ2IGY2XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVCk+
Ci1jbGFzcyBHVEVTVF84X1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+
IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwg
ZjFfKCksIGYyXygpLCBmM18oKSwgZjRfKCksIGY1XygpLCBmNl8oKSwgZjdfKCkge30KLQotICBl
eHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEs
Ci0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMsIEdURVNU
X0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllfUkVGXyhUNSkgZjUsIEdURVNUX0JZX1JF
Rl8oVDYpIGY2LAotICAgICAgR1RFU1RfQllfUkVGXyhUNykgZjcpIDogZjBfKGYwKSwgZjFfKGYx
KSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2XyhmNiksIGY3
XyhmNykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVf
KSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF84X1RZUEVO
QU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYw
XyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8p
LCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pIHt9Ci0KLSAgdHVwbGUmIG9wZXJh
dG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0
ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNU
XzhfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RF
U1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzhfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSB7
Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0g
ICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAgZjVfID0gdC5mNV87Ci0gICAg
ZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci0g
IFQ1IGY1XzsKLSAgVDYgZjZfOwotICBUNyBmN187Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9U
WVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfOV9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVt
cGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBs
ZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3
XygpLCBmOF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBH
VEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9C
WV9SRUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9SRUZf
KFQ1KSBmNSwgR1RFU1RfQllfUkVGXyhUNikgZjYsIEdURVNUX0JZX1JFRl8oVDcpIGY3LAotICAg
ICAgR1RFU1RfQllfUkVGXyhUOCkgZjgpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNf
KGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2XyhmNiksIGY3XyhmNyksIGY4XyhmOCkg
e30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBm
Ml8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZf
KHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF85
X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSA6IGYw
Xyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pLCBmNF8o
dC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pLCBmOF8odC5mOF8pIHt9
Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20o
dCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3Bl
cmF0b3I9KGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9t
KHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxh
dGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNU
XzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0g
ICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAg
ZjVfID0gdC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0gICAgZjhf
ID0gdC5mOF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87
Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci0gIFQ1IGY1XzsKLSAgVDYgZjZfOwot
ICBUNyBmN187Ci0gIFQ4IGY4XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNf
KFQpPgotY2xhc3MgdHVwbGUgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQg
Y2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBm
Ml8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpLCBmOF8oKSwKLSAgICAgIGY5
XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZ
X1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8o
VDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1
LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNiwgR1RFU1RfQllfUkVGXyhUNykgZjcsCi0gICAgICBHVEVT
VF9CWV9SRUZfKFQ4KSBmOCwgR1RFU1RfQllfUkVGXyhUOSkgZjkpIDogZjBfKGYwKSwgZjFfKGYx
KSwgZjJfKGYyKSwKLSAgICAgIGYzXyhmMyksIGY0XyhmNCksIGY1XyhmNSksIGY2XyhmNiksIGY3
XyhmNyksIGY4XyhmOCksIGY5XyhmOSkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBm
MF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRf
KHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSwg
ZjlfKHQuZjlfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFUpPgotICB0
dXBsZShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFf
KSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xyks
IGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4XyksCi0gICAgICBmOV8odC5mOV8pIHt9
Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20o
dCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9w
ZXJhdG9yPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZy
b20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1w
bGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdU
RVNUXzEwX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFf
OwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwot
ICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9IHQuZjdfOwotICAg
IGY4XyA9IHQuZjhfOwotICAgIGY5XyA9IHQuZjlfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQot
Ci0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwot
ICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwotICBUOCBmOF87Ci0gIFQ5IGY5XzsKLX07
Ci0KLS8vIDYuMS4zLjIgVHVwbGUgY3JlYXRpb24gZnVuY3Rpb25zLgotCi0vLyBLbm93biBsaW1p
dGF0aW9uczogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIGFuCi0vLyBzdGQ6OnRyMTo6cmVmZXJl
bmNlX3dyYXBwZXI8VD4gdG8gbWFrZV90dXBsZSgpLiAgQW5kIHdlIGRvbid0Ci0vLyBpbXBsZW1l
bnQgdGllKCkuCi0KLWlubGluZSB0dXBsZTw+IG1ha2VfdHVwbGUoKSB7IHJldHVybiB0dXBsZTw+
KCk7IH0KLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8x
X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCkgewotICByZXR1cm4gR1RFU1RfMV9U
VVBMRV8oVCkoZjApOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfMl9UWVBFTkFNRVNfKFQpPgotaW5s
aW5lIEdURVNUXzJfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYg
ZjEpIHsKLSAgcmV0dXJuIEdURVNUXzJfVFVQTEVfKFQpKGYwLCBmMSk7Ci19Ci0KLXRlbXBsYXRl
IDxHVEVTVF8zX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfM19UVVBMRV8oVCkgbWFrZV90
dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyKSB7Ci0gIHJldHVy
biBHVEVTVF8zX1RVUExFXyhUKShmMCwgZjEsIGYyKTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzRf
VFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF80X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0
IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzKSB7
Ci0gIHJldHVybiBHVEVTVF80X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMyk7Ci19Ci0KLXRlbXBs
YXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfNV9UVVBMRV8oVCkgbWFr
ZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNv
bnN0IFQzJiBmMywgY29uc3QgVDQmIGY0KSB7Ci0gIHJldHVybiBHVEVTVF81X1RVUExFXyhUKShm
MCwgZjEsIGYyLCBmMywgZjQpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQp
PgotaW5saW5lIEdURVNUXzZfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25z
dCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwg
Y29uc3QgVDUmIGY1KSB7Ci0gIHJldHVybiBHVEVTVF82X1RVUExFXyhUKShmMCwgZjEsIGYyLCBm
MywgZjQsIGY1KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhUKT4KLWlubGlu
ZSBHVEVTVF83X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYx
LCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1
JiBmNSwgY29uc3QgVDYmIGY2KSB7Ci0gIHJldHVybiBHVEVTVF83X1RVUExFXyhUKShmMCwgZjEs
IGYyLCBmMywgZjQsIGY1LCBmNik7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18o
VCk+Ci1pbmxpbmUgR1RFU1RfOF9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNv
bnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0
LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29uc3QgVDcmIGY3KSB7Ci0gIHJldHVybiBH
VEVTVF84X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwgZjcpOwotfQotCi10
ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzlfVFVQTEVfKFQp
IG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAg
ICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1LCBjb25zdCBUNiYgZjYs
IGNvbnN0IFQ3JiBmNywKLSAgICBjb25zdCBUOCYgZjgpIHsKLSAgcmV0dXJuIEdURVNUXzlfVFVQ
TEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjgpOwotfQotCi10ZW1wbGF0
ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF8xMF9UVVBMRV8oVCkgbWFr
ZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNv
bnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29u
c3QgVDcmIGY3LAotICAgIGNvbnN0IFQ4JiBmOCwgY29uc3QgVDkmIGY5KSB7Ci0gIHJldHVybiBH
VEVTVF8xMF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYsIGY3LCBmOCwgZjkp
OwotfQotCi0vLyA2LjEuMy4zIFR1cGxlIGhlbHBlciBjbGFzc2VzLgotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVHVwbGU+IHN0cnVjdCB0dXBsZV9zaXplOwotCi10ZW1wbGF0ZSA8R1RFU1RfMF9UWVBF
TkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfMF9UVVBMRV8oVCkgPiB7Ci0gIHN0
YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAwOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5B
TUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzFfVFVQTEVfKFQpID4gewotICBzdGF0
aWMgY29uc3QgaW50IHZhbHVlID0gMTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8yX1RZUEVOQU1F
U18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8yX1RVUExFXyhUKSA+IHsKLSAgc3RhdGlj
IGNvbnN0IGludCB2YWx1ZSA9IDI7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNf
KFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfM19UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBj
b25zdCBpbnQgdmFsdWUgPSAzOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhU
KT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzRfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29u
c3QgaW50IHZhbHVlID0gNDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+
Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF81X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0
IGludCB2YWx1ZSA9IDU7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgot
c3RydWN0IHR1cGxlX3NpemU8R1RFU1RfNl9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBp
bnQgdmFsdWUgPSA2OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhUKT4KLXN0
cnVjdCB0dXBsZV9zaXplPEdURVNUXzdfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50
IHZhbHVlID0gNzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVCk+Ci1zdHJ1
Y3QgdHVwbGVfc2l6ZTxHVEVTVF84X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2
YWx1ZSA9IDg7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotc3RydWN0
IHR1cGxlX3NpemU8R1RFU1RfOV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFs
dWUgPSA5OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3Qg
dHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFs
dWUgPSAxMDsKLX07Ci0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVw
bGVfZWxlbWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxl
bWVudDwKLSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0
eXBlIHR5cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0
eXBlbmFtZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVt
ZW50IGFjY2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotdGVtcGxhdGUgPD4K
LWNsYXNzIEdldDwwPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0
YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygwLCBUdXBsZSkpCi0gIEZp
ZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYwXzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUg
PGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5U
XygwLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjBf
OyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDE+IHsKLSBwdWJsaWM6Ci0gIHRlbXBs
YXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VM
RU1FTlRfKDEsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjFfOyB9ICAv
LyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9S
RUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBU
dXBsZSYgdCkgeyByZXR1cm4gdC5mMV87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8
Mj4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1Rf
QUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYg
dCkgeyByZXR1cm4gdC5mMl87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBs
ZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUp
KQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYyXzsgfQotfTsKLQot
dGVtcGxhdGUgPD4KLWNsYXNzIEdldDwzPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygzLCBU
dXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYzXzsgfSAgLy8gTk9MSU5UCi0K
LSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9U
VVBMRV9FTEVNRU5UXygzLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsg
cmV0dXJuIHQuZjNfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDQ+IHsKLSBwdWJs
aWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdU
RVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJu
IHQuZjRfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRp
YyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAgQ29uc3RG
aWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mNF87IH0KLX07Ci0KLXRlbXBsYXRlIDw+
Ci1jbGFzcyBHZXQ8NT4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBz
dGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNSwgVHVwbGUpKQotICBG
aWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNV87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRl
IDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVO
VF8oNSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmY1
XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw2PiB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9F
TEVNRU5UXyg2LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmY2XzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3Qg
VHVwbGUmIHQpIHsgcmV0dXJuIHQuZjZfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0
PDc+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUm
IHQpIHsgcmV0dXJuIHQuZjdfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcsIFR1cGxl
KSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mN187IH0KLX07Ci0K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OD4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOCwg
VHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mOF87IH0gIC8vIE5PTElOVAot
Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1Rf
VFVQTEVfRUxFTUVOVF8oOCwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmY4XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw5PiB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhH
VEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVy
biB0LmY5XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0
aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0gIENvbnN0
RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjlfOyB9Ci19OwotCi19ICAvLyBuYW1l
c3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8xMF9UWVBFTkFN
RVNfKFQpPgotR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfMTBf
VFVQTEVfKFQpKSkKLWdldChHVEVTVF8xMF9UVVBMRV8oVCkmIHQpIHsKLSAgcmV0dXJuIGd0ZXN0
X2ludGVybmFsOjpHZXQ8az46OkZpZWxkKHQpOwotfQotCi10ZW1wbGF0ZSA8aW50IGssIEdURVNU
XzEwX1RZUEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGss
ICBHVEVTVF8xMF9UVVBMRV8oVCkpKQotZ2V0KGNvbnN0IEdURVNUXzEwX1RVUExFXyhUKSYgdCkg
ewotICByZXR1cm4gZ3Rlc3RfaW50ZXJuYWw6OkdldDxrPjo6Q29uc3RGaWVsZCh0KTsKLX0KLQot
Ly8gNi4xLjMuNSBSZWxhdGlvbmFsIG9wZXJhdG9ycwotCi0vLyBXZSBvbmx5IGltcGxlbWVudCA9
PSBhbmQgIT0sIGFzIHdlIGRvbid0IGhhdmUgYSBuZWVkIGZvciB0aGUgcmVzdCB5ZXQuCi0KLW5h
bWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLS8vIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJh
dG9yPGssIGs+OjpFcSh0MSwgdDIpIHJldHVybnMgdHJ1ZSBpZiB0aGUKLS8vIGZpcnN0IGsgZmll
bGRzIG9mIHQxIGVxdWFscyB0aGUgZmlyc3QgayBmaWVsZHMgb2YgdDIuCi0vLyBTYW1lU2l6ZVR1
cGxlUHJlZml4Q29tcGFyYXRvcihrMSwgazIpIHdvdWxkIGJlIGEgY29tcGlsZXIgZXJyb3IgaWYK
LS8vIGsxICE9IGsyLgotdGVtcGxhdGUgPGludCBrU2l6ZTEsIGludCBrU2l6ZTI+Ci1zdHJ1Y3Qg
U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I7Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgU2Ft
ZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8MCwgMD4gewotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGUxLCBjbGFzcyBUdXBsZTI+Ci0gIHN0YXRpYyBib29sIEVxKGNvbnN0IFR1cGxlMSYgLyogdDEg
Ki8sIGNvbnN0IFR1cGxlMiYgLyogdDIgKi8pIHsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfTsK
LQotdGVtcGxhdGUgPGludCBrPgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9y
PGssIGs+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVwbGUyPgotICBzdGF0
aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIHQxLCBjb25zdCBUdXBsZTImIHQyKSB7Ci0gICAgcmV0
dXJuIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPGsgLSAxLCBrIC0gMT46OkVxKHQxLCB0
MikgJiYKLSAgICAgICAgOjpzdGQ6OnRyMTo6Z2V0PGsgLSAxPih0MSkgPT0gOjpzdGQ6OnRyMTo6
Z2V0PGsgLSAxPih0Mik7Ci0gIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5h
bAotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKSwgR1RFU1RfMTBfVFlQRU5BTUVT
XyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR1RFU1RfMTBfVFVQTEVfKFQpJiB0
LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHUpIHsK
LSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjwK
LSAgICAgIHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVfKFQpID46OnZhbHVlLAotICAgICAgdHVw
bGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVSkgPjo6dmFsdWU+OjpFcSh0LCB1KTsKLX0KLQotdGVt
cGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci1p
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdURVNUXzEwX1RVUExFXyhUKSYgdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB1KSB7IHJldHVybiAh
KHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxlbWVudGVkLgotCi19ICAv
LyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLSN1bmRlZiBHVEVTVF8wX1RV
UExFXwotI3VuZGVmIEdURVNUXzFfVFVQTEVfCi0jdW5kZWYgR1RFU1RfMl9UVVBMRV8KLSN1bmRl
ZiBHVEVTVF8zX1RVUExFXwotI3VuZGVmIEdURVNUXzRfVFVQTEVfCi0jdW5kZWYgR1RFU1RfNV9U
VVBMRV8KLSN1bmRlZiBHVEVTVF82X1RVUExFXwotI3VuZGVmIEdURVNUXzdfVFVQTEVfCi0jdW5k
ZWYgR1RFU1RfOF9UVVBMRV8KLSN1bmRlZiBHVEVTVF85X1RVUExFXwotI3VuZGVmIEdURVNUXzEw
X1RVUExFXwotCi0jdW5kZWYgR1RFU1RfMF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfMV9UWVBF
TkFNRVNfCi0jdW5kZWYgR1RFU1RfMl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfM19UWVBFTkFN
RVNfCi0jdW5kZWYgR1RFU1RfNF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNV9UWVBFTkFNRVNf
Ci0jdW5kZWYgR1RFU1RfNl9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfN19UWVBFTkFNRVNfCi0j
dW5kZWYgR1RFU1RfOF9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfOV9UWVBFTkFNRVNfCi0jdW5k
ZWYgR1RFU1RfMTBfVFlQRU5BTUVTXwotCi0jdW5kZWYgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19G
UklFTkRfCi0jdW5kZWYgR1RFU1RfQllfUkVGXwotI3VuZGVmIEdURVNUX0FERF9SRUZfCi0jdW5k
ZWYgR1RFU1RfVFVQTEVfRUxFTUVOVF8KLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX1RVUExFX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgucHVtcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1w
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjYyNmUwNDlmMDg3ODBmZmNlOTZkNDg1
MmNiOGVkNWQzZWY1ZjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtdHVwbGUuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzQ4ICswLDAgQEAKLSQkIC0qLSBt
b2RlOiBjKys7IC0qLQotJHZhciBuID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIHR1cGxlIGZp
ZWxkcyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kJCBUaGlzIG1ldGEgY29tbWVudCBmaXhlcyBhdXRv
LWluZGVudGF0aW9uIGluIEVtYWNzLiB9fQotLy8gQ29weXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4K
LS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgbmVl
ZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9jay4KLQotLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4gIC8vIEZvciA6OnN0ZDo6cGFpci4KLQot
Ly8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyB1
cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRlbXBsYXRlIGFzIGEgZnJpZW5kIChpdCBj
b21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQpLiAgVGhpcwotLy8gYnlwYXNzZXMgdGhl
IGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhhdCBzaG91bGQgb3RoZXJ3aXNlIGJlCi0v
LyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVkaW8gdmVyc2lvbnMgPCAxMiBhbHNvIGhh
dmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18pIHx8IChkZWZpbmVk
KF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4NTkwKQotIyBkZWZpbmUgR1RFU1RfREVD
TEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9ERUNM
QVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBsYXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1F
U18oVSk+IGZyaWVuZCBjbGFzcyB0dXBsZTsgXAotICAgcHJpdmF0ZToKLSNlbmRpZgotCi0vLyBW
aXN1YWwgU3R1ZGlvIDIwMTAsIDIwMTIsIGFuZCAyMDEzIGRlZmluZSBzeW1ib2xzIGluIHN0ZDo6
dHIxIHRoYXQgY29uZmxpY3QKLS8vIHdpdGggb3VyIG93biBkZWZpbml0aW9ucy4gVGhlcmVmb3Jl
IHVzaW5nIG91ciBvd24gdHVwbGUgZG9lcyBub3Qgd29yayBvbgotLy8gdGhvc2UgY29tcGlsZXJz
LgotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgIC8qIDE2MDAgaXMg
VmlzdWFsIFN0dWRpbyAyMDEwICovCi0jIGVycm9yICJndGVzdCdzIHR1cGxlIGRvZXNuJ3QgY29t
cGlsZSBvbiBWaXN1YWwgU3R1ZGlvIDIwMTAgb3IgbGF0ZXIuIFwKLUdURVNUX1VTRV9PV05fVFIx
X1RVUExFIG11c3QgYmUgc2V0IHRvIDAgb24gdGhvc2UgY29tcGlsZXJzLiIKLSNlbmRpZgotCi0K
LSRyYW5nZSBpIDAuLm4tMQotJHJhbmdlIGogMC4ubgotJHJhbmdlIGsgMS4ubgotLy8gR1RFU1Rf
bl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10dXBsZS4KLSNkZWZpbmUgR1RFU1RfMF9U
VVBMRV8oVCkgdHVwbGU8PgotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAuLmstMQotJHJhbmdlIG0y
IGsuLm4tMQotI2RlZmluZSBHVEVTVF8kKGspX1RVUExFXyhUKSB0dXBsZTwkZm9yIG0sIFtbVCMj
JG1dXSRmb3IgbTIgW1ssIHZvaWRdXT4KLQotXV0KLQotLy8gR1RFU1Rfbl9UWVBFTkFNRVNfKFQp
IGRlY2xhcmVzIGEgbGlzdCBvZiBuIHR5cGVuYW1lcy4KLQotJGZvciBqIFtbCi0kcmFuZ2UgbSAw
Li5qLTEKLSNkZWZpbmUgR1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpICRmb3IgbSwgW1t0eXBlbmFt
ZSBUIyMkbV1dCi0KLQotXV0KLQotLy8gSW4gdGhlb3J5LCBkZWZpbmluZyBzdHVmZiBpbiB0aGUg
OjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8gYmVoYXZpb3IuICBXZSBjYW4gZG8gdGhp
cyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBsaWJyYXJ5IHZl
bmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBsYXRlIDwkZm9y
IGksIFtbdHlwZW5hbWUgVCRpID0gdm9pZF1dPgotY2xhc3MgdHVwbGU7Ci0KLS8vIEFueXRoaW5n
IGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBHb29nbGUgVGVzdCdzIElOVEVSTkFMCi0v
LyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1QgTk9UIEJFIFVTRUQgRElSRUNUTFkgaW4g
dXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotLy8gQnlSZWY8VD46OnR5
cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhlcndpc2UgaXQncyBjb25zdCBUJi4KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmIHsgdHlwZWRlZiBjb25zdCBUJiB0eXBl
OyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBCeVJlZjxUJj4g
eyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZv
ciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhUKSB0eXBlbmFtZSA6OnN0ZDo6dHIxOjpn
dGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQotLy8gQWRkUmVmPFQ+Ojp0eXBlIGlzIFQg
aWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgVCYuICBUaGlzCi0vLyBpcyB0aGUg
c2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07
ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBBZGRSZWYuCi0jZGVmaW5lIEdU
RVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFsOjpBZGRS
ZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVudGluZyBnZXQ8az4oKS4KLXRl
bXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBBIGhlbHBlciBmb3IgaW1wbGVtZW50aW5n
IHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxpZCBpcyB0cnVlCi0vLyBpZmYgayA8IHRo
ZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUgVC4KLXRlbXBsYXRlIDxib29sIGtJbmRl
eFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4KLXN0cnVjdCBUdXBsZUVsZW1lbnQ7Ci0K
LQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0
IFR1cGxlRWxlbWVudDx0cnVlLCAkaSwgR1RFU1RfJChuKV9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVk
ZWYgVCRpIHR5cGU7Ci19OwotCi0KLV1dCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwK
LQotdGVtcGxhdGUgPD4KLWNsYXNzIHR1cGxlPD4gewotIHB1YmxpYzoKLSAgdHVwbGUoKSB7fQot
ICB0dXBsZShjb25zdCB0dXBsZSYgLyogdCAqLykgIHt9Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29u
c3QgdHVwbGUmIC8qIHQgKi8pIHsgcmV0dXJuICp0aGlzOyB9Ci19OwotCi0KLSRmb3IgayBbWwot
JHJhbmdlIG0gMC4uay0xCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgotY2xh
c3MgJGlmIGsgPCBuIFtbR1RFU1RfJChrKV9UVVBMRV8oVCldXSAkZWxzZSBbW3R1cGxlXV0gewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6
OkdldDsKLQotICB0dXBsZSgpIDogJGZvciBtLCBbW2YkKG0pXygpXV0ge30KLQotICBleHBsaWNp
dCB0dXBsZSgkZm9yIG0sIFtbR1RFU1RfQllfUkVGXyhUJG0pIGYkbV1dKSA6IFtbXV0KLSRmb3Ig
bSwgW1tmJChtKV8oZiRtKV1dIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogJGZvciBt
LCBbW2YkKG0pXyh0LmYkKG0pXyldXSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF8kKGspX1RZUEVO
QU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSA6ICRmb3Ig
bSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotJGlmIGsgPT0gMiBbWwotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBsZShjb25zdCA6OnN0ZDo6cGFpcjxVMCwg
VTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vjb25kKSB7fQotCi1dXQotCi0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAg
dGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShj
b25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsK
LSAgfQotCi0kaWYgayA9PSAyIFtbCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUg
VTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8VTAsIFUxPiYgcCkgewot
ICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLV1dCi0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVt
cGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0
IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSB7Ci0KLSRmb3IgbSBbWwotICAgIGYkKG0pXyA9IHQu
ZiQobSlfOwotCi1dXQotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0KLSRmb3IgbSBbWwotICBU
JG0gZiQobSlfOwotCi1dXQotfTsKLQotCi1dXQotLy8gNi4xLjMuMiBUdXBsZSBjcmVhdGlvbiBm
dW5jdGlvbnMuCi0KLS8vIEtub3duIGxpbWl0YXRpb25zOiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Np
bmcgYW4KLS8vIHN0ZDo6dHIxOjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiB0byBtYWtlX3R1cGxlKCku
ICBBbmQgd2UgZG9uJ3QKLS8vIGltcGxlbWVudCB0aWUoKS4KLQotaW5saW5lIHR1cGxlPD4gbWFr
ZV90dXBsZSgpIHsgcmV0dXJuIHR1cGxlPD4oKTsgfQotCi0kZm9yIGsgW1sKLSRyYW5nZSBtIDAu
LmstMQotCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNU
XyQoaylfVFVQTEVfKFQpIG1ha2VfdHVwbGUoJGZvciBtLCBbW2NvbnN0IFQkbSYgZiRtXV0pIHsK
LSAgcmV0dXJuIEdURVNUXyQoaylfVFVQTEVfKFQpKCRmb3IgbSwgW1tmJG1dXSk7Ci19Ci0KLV1d
Ci0KLS8vIDYuMS4zLjMgVHVwbGUgaGVscGVyIGNsYXNzZXMuCi0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUdXBsZT4gc3RydWN0IHR1cGxlX3NpemU7Ci0KLQotJGZvciBqIFtbCi10ZW1wbGF0ZSA8R1RF
U1RfJChqKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfJChqKV9UVVBM
RV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAkajsKLX07Ci0KLQotXV0KLXRl
bXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVwbGVfZWxlbWVudCB7Ci0gIHR5
cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxlbWVudDwKLSAgICAgIGsgPCAo
dHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0eXBlIHR5cGU7Ci19OwotCi0j
ZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1cGxlKSB0eXBlbmFtZSB0dXBsZV9lbGVt
ZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVtZW50IGFjY2Vzcy4KLQotbmFt
ZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotCi0kZm9yIGkgW1sKLXRlbXBsYXRlIDw+Ci1jbGFz
cyBHZXQ8JGk+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGlj
IEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKCRpLCBUdXBsZSkpCi0gIEZpZWxk
KFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUg
PGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5U
XygkaSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmYk
KGkpXzsgfQotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRl
bXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpPgotR1RFU1RfQUREX1JFRl8o
R1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfJChuKV9UVVBMRV8oVCkpKQotZ2V0KEdURVNU
XyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5hbDo6R2V0PGs+OjpG
aWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCk+
Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssICBHVEVTVF8kKG4pX1RVUExF
XyhUKSkpCi1nZXQoY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQpIHsKLSAgcmV0dXJuIGd0
ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19Ci0KLS8vIDYuMS4zLjUgUmVs
YXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1lbnQgPT0gYW5kICE9LCBhcyB3
ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0LgotCi1uYW1lc3BhY2UgZ3Rlc3Rf
aW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPjo6RXEo
dDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBrIGZpZWxkcyBvZiB0MSBlcXVh
bHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNpemVUdXBsZVByZWZpeENvbXBh
cmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9yIGlmCi0vLyBrMSAhPSBrMi4K
LXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3RydWN0IFNhbWVTaXplVHVwbGVQ
cmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVm
aXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVw
bGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8qIHQxICovLCBjb25zdCBUdXBs
ZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX07Ci0KLXRlbXBsYXRlIDxp
bnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrLCBrPiB7Ci0gIHRl
bXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAgc3RhdGljIGJvb2wgRXEoY29u
c3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAgIHJldHVybiBTYW1lU2l6ZVR1
cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0MSwgdDIpICYmCi0gICAgICAg
IDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDIp
OwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUg
PEdURVNUXyQobilfVFlQRU5BTUVTXyhUKSwgR1RFU1RfJChuKV9UWVBFTkFNRVNfKFUpPgotaW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHVEVTVF8kKG4pX1RVUExFXyhUKSYgdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVSkmIHUpIHsKLSAgcmV0
dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjwKLSAgICAg
IHR1cGxlX3NpemU8R1RFU1RfJChuKV9UVVBMRV8oVCkgPjo6dmFsdWUsCi0gICAgICB0dXBsZV9z
aXplPEdURVNUXyQobilfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7Ci19Ci0KLXRlbXBs
YXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdURVNUXyQobilfVFlQRU5BTUVTXyhVKT4K
LWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFUpJiB1KSB7IHJl
dHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0vLyBVbmltcGxlbWVudGVkLgot
Ci19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ugc3RkCi0KLQotJGZvciBqIFtb
Ci0jdW5kZWYgR1RFU1RfJChqKV9UVVBMRV8KLQotXV0KLQotCi0kZm9yIGogW1sKLSN1bmRlZiBH
VEVTVF8kKGopX1RZUEVOQU1FU18KLQotXV0KLQotI3VuZGVmIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVTVF9BRERfUkVGXwot
I3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGls
LmgKaW5kZXggMjhlNDExMjQ1MzYxYzA4ZjI4NzA3ZTkyNDhlNmQwMzMyMGU2ODYxOC4uYjg3YTJl
MmNhY2UzM2I4Y2YxZDQyYTJiM2JkYjQ0Y2JiOTBkYzI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR5cGUtdXRpbC5oCkBAIC0xLDcgKzEsMyBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5FUkFURUQg
YnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXR5cGUtdXRpbC5oLnB1bXAKLS8vIERP
IE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KIC8v
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAvLwpAQCAtMzEsMTkgKzI3LDEzIEBACiAvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQogLy8gVHlwZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBp
bXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVzdHMuICBUaGlz
IGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8v
Ci0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0IDUwIHR5cGVzIGluIGEgbGlzdCwgYW5k
IGF0IG1vc3QgNTAKLS8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRlc3RmcmFtZXdv
cmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KKy8vIHRlc3RzLgogCiAv
LyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXworI2RlZmluZSBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCiAKICNpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAKQEAgLTc0LDE1NjggKzY0LDQzIEBAIGlu
bGluZSBzdGQ6OnN0cmluZyBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKHN0ZDo6c3Ry
aW5nIHMpIHsKICAgcmV0dXJuIHM7CiB9CiAKLS8vIEdldFR5cGVOYW1lPFQ+KCkgcmV0dXJucyBh
IGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdHlwZSBULgotLy8gTkI6IFRoaXMgZnVuY3Rpb24gaXMg
YWxzbyB1c2VkIGluIEdvb2dsZSBNb2NrLCBzbyBkb24ndCBtb3ZlIGl0IGluc2lkZSBvZgotLy8g
dGhlIHR5cGVkLXRlc3Qtb25seSBzZWN0aW9uIGJlbG93LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsKLSMgaWYgR1RFU1RfSEFTX1JUVEkKLQotICBj
b25zdCBjaGFyKiBjb25zdCBuYW1lID0gdHlwZWlkKFQpLm5hbWUoKTsKLSMgIGlmIEdURVNUX0hB
U19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKKyNpZiBHVEVTVF9IQVNfUlRUSQorLy8g
R2V0VHlwZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8mKSByZXR1cm5zIGEgaHVtYW4tcmVhZGFi
bGUgbmFtZSBvZiB0eXBlIFQuCitpbmxpbmUgc3RkOjpzdHJpbmcgR2V0VHlwZU5hbWUoY29uc3Qg
c3RkOjp0eXBlX2luZm8mIHR5cGUpIHsKKyAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHR5cGUu
bmFtZSgpOworI2lmIEdURVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykKICAg
aW50IHN0YXR1cyA9IDA7CiAgIC8vIGdjYydzIGltcGxlbWVudGF0aW9uIG9mIHR5cGVpZChUKS5u
YW1lKCkgbWFuZ2xlcyB0aGUgdHlwZSBuYW1lLAogICAvLyBzbyB3ZSBoYXZlIHRvIGRlbWFuZ2xl
IGl0LgotIyAgIGlmIEdURVNUX0hBU19DWFhBQklfSF8KKyNpZiBHVEVTVF9IQVNfQ1hYQUJJX0hf
CiAgIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYgIC8vIEdURVNUX0hBU19D
WFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9fY3hhX2RlbWFuZ2xlKG5h
bWUsIDAsIDAsICZzdGF0dXMpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfCisgIGNo
YXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1hbmdsZShuYW1lLCBudWxscHRyLCBu
dWxscHRyLCAmc3RhdHVzKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV9zdHIoc3RhdHVzID09
IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7CiAgIGZyZWUocmVhZGFibGVfbmFtZSk7CiAgIHJl
dHVybiBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKG5hbWVfc3RyKTsKLSMgIGVsc2UK
KyNlbHNlCiAgIHJldHVybiBuYW1lOwotIyAgZW5kaWYgIC8vIEdURVNUX0hBU19DWFhBQklfSF8g
fHwgX19IUF9hQ0MKLQotIyBlbHNlCi0KLSAgcmV0dXJuICI8dHlwZT4iOwotCi0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfUlRUSQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8IF9fSFBf
YUNDCiB9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURf
VEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIEFzc2VydHlUeXBlRXE8VDEsIFQy
Pjo6dHlwZSBpcyBkZWZpbmVkIGlmZiBUMSBhbmQgVDIgYXJlIHRoZSBzYW1lCi0vLyB0eXBlLiAg
VGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBpbGUtdGltZSBhc3NlcnRpb24gdG8gZW5zdXJlIHRo
YXQKLS8vIHR3byB0eXBlcyBhcmUgZXF1YWwuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDI+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxOwotCisvLyBHZXRUeXBlTmFtZTxUPigpIHJl
dHVybnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVCBpZiBhbmQgb25seSBpZgorLy8g
UlRUSSBpcyBlbmFibGVkLCBvdGhlcndpc2UgaXQgcmV0dXJucyBhIGR1bW15IHR5cGUgbmFtZS4K
Ky8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBpbiBHb29nbGUgTW9jaywgc28gZG9u
J3QgbW92ZSBpdCBpbnNpZGUgb2YKKy8vIHRoZSB0eXBlZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxv
dy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFzc2VydFR5cGVFcTxULCBUPiB7Ci0g
IHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKK3N0ZDo6c3RyaW5nIEdldFR5cGVOYW1lKCkgeworI2lm
IEdURVNUX0hBU19SVFRJCisgIHJldHVybiBHZXRUeXBlTmFtZSh0eXBlaWQoVCkpOworI2Vsc2UK
KyAgcmV0dXJuICI8dHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorfQogCi0vLyBB
IHVuaXF1ZSB0eXBlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBhcmd1bWVudHMg
b2YgY2xhc3MKLS8vIHRlbXBsYXRlIFR5cGVzLiAgVGhpcyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUg
dmFyaWFkaWMgdGVtcGxhdGVzCi0vLyAoZS5nLiBUeXBlczxpbnQ+LCBUeXBlPGludCwgZG91Ymxl
PiwgYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0Ci0vLyBzdXBwb3J0IGRpcmVjdGx5LgorLy8g
QSB1bmlxdWUgdHlwZSBpbmRpY2F0aW5nIGFuIGVtcHR5IG5vZGUKIHN0cnVjdCBOb25lIHt9Owog
Ci0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMg
YXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4gcGFydGljdWxhciwgVHlw
ZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBlIGxpc3Qgd2l0aCBOIHR5
cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2VwdCBmb3IgVHlwZXMwLCBl
dmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoKLS8vIEhlYWQg
Zm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBmb3IgdGhlIHJlc3Qgb2Yg
dGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgotc3RydWN0IFR5cGVzMCB7
fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwot
ICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDI+Ci1zdHJ1Y3QgVHlwZXMyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMTxUMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPgotc3RydWN0IFR5cGVzMyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczI8VDIsIFQzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0Pgotc3RydWN0IFR5cGVzNCB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczM8VDIsIFQzLCBUND4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1zdHJ1Y3QgVHlwZXM1IHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzNDxUMiwgVDMsIFQ0LCBUNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1Y3QgVHlwZXM2IHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNTxUMiwgVDMsIFQ0LCBUNSwgVDY+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KLXN0cnVj
dCBUeXBlczcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM2PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1zdHJ1Y3QgVHlwZXM4IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1zdHJ1Y3QgVHlwZXM5IHsKLSAgdHlw
ZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1zdHJ1
Y3QgVHlwZXMxMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczk8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0IFR5cGVzMTEgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMDxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyPgotc3RydWN0IFR5cGVz
MTIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMz4KLXN0cnVjdCBUeXBlczEzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMTI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0Pgot
c3RydWN0IFR5cGVzMTQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMzxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1Pgotc3RydWN0IFR5cGVzMTUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMxNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNj4KLXN0cnVjdCBUeXBlczE2
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTU8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3RydWN0IFR5cGVzMTcg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxNjxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYs
IFQxNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
Pgotc3RydWN0IFR5cGVzMTggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMx
NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLXN0cnVjdCBUeXBlczE5IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTg8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwPgotc3RydWN0IFR5cGVzMjAgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxOTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjE+Ci1zdHJ1Y3QgVHlwZXMyMSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBl
czIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjI+Ci1zdHJ1Y3QgVHlw
ZXMyMiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIxPFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzPgotc3RydWN0
IFR5cGVzMjMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyMjxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXMyNCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAg
dHlwZWRlZiBUeXBlczIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+
Ci1zdHJ1Y3QgVHlwZXMyNSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI0
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjY+Ci1zdHJ1Y3QgVHlwZXMyNiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRl
ZiBUeXBlczI1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3Pgotc3RydWN0IFR5cGVzMjcgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNjxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3PiBUYWls
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXMyOCB7Ci0gIHR5cGVkZWYg
VDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOD4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1zdHJ1Y3QgVHlwZXMyOSB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI4PFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICAgIFQyOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMD4KLXN0cnVjdCBUeXBlczMwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0
eXBlZGVmIFR5cGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzA+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVzMzEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMx
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyPgotc3RydWN0IFR5cGVzMzIgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMz4KLXN0cnVjdCBUeXBlczMzIHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzMzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAs
IFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0Pgotc3RydWN0IFR5cGVzMzQgewotICB0eXBlZGVmIFQxIEhl
YWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
LCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1Pgotc3RydWN0IFR5cGVz
MzUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNDxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgotc3RydWN0IFR5cGVzMzYgewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gVGFpbDsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQy
NywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFt
ZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1l
IFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNz4KLXN0cnVjdCBUeXBlczM3IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzY8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4Pgotc3RydWN0IFR5cGVzMzggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5Pgotc3Ry
dWN0IFR5cGVzMzkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzODxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0
MD4KLXN0cnVjdCBUeXBlczQwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVz
Mzk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAg
ICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzks
IHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1zdHJ1Y3QgVHlwZXM0MSB7Ci0gIHR5
cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0
eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLXN0cnVjdCBUeXBlczQyIHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczQzIHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDI8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVu
YW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0
eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0g
ICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5
LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1l
IFQ0MywgdHlwZW5hbWUgVDQ0Pgotc3RydWN0IFR5cGVzNDQgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXM0MzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgVDQzLAotICAgICAgVDQ0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1l
IFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzNDUgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXM0NDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgVDQzLAotICAgICAgVDQ0LCBUNDU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlw
ZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgotc3RydWN0IFR5cGVz
NDYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0Nj4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5
cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAg
ICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLXN0cnVjdCBUeXBlczQ3IHsKLSAgdHlwZWRl
ZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0g
ICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0
eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0
MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFt
ZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4Pgotc3RydWN0IFR5cGVzNDggewotICB0
eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAs
Ci0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUg
VDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVu
YW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0
eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0g
ICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5
Pgotc3RydWN0IFR5cGVzNDkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0
ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0
LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0
NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIFQ1MD4KLXN0cnVjdCBUeXBl
czUwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDk8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0
NywgVDQ4LCBUNDksIFQ1MD4gVGFpbDsKLX07Ci0KLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFs
Ci0KLS8vIFdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVHlwZXNO
PC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0
aGUgbGVuZ3RoLiAgVHlwZXM8Li4uPiBpcyBtdWNoCi0vLyBlYXNpZXIgdG8gd3JpdGUsIGJ1dCBn
ZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0aGVyZSBpcyBhCi0vLyBjb21waWxlciBl
cnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcgb3V0IGVhY2ggdGVtcGxhdGUKLS8vIGFy
Z3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVsdCB2YWx1ZSAodGhpcyBtZWFucyBUeXBl
czxpbnQ+Ci0vLyB3aWxsIGFwcGVhciBhcyBUeXBlczxpbnQsIE5vbmUsIE5vbmUsIC4uLiwgTm9u
ZT4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlvbiBpcyB0
byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0vLyB1c2Vy
IHdvdWxkIHdyaXRlIFR5cGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJh
bnNsYXRlCi0vLyB0aGF0IHRvIFR5cGVzTjxUMSwgLi4uLCBUTj4gaW50ZXJuYWxseSB0byBtYWtl
IGVycm9yIG1lc3NhZ2VzCi0vLyByZWFkYWJsZS4gIFRoZSB0cmFuc2xhdGlvbiBpcyBkb25lIGJ5
IHRoZSAndHlwZScgbWVtYmVyIG9mIHRoZQotLy8gVHlwZXMgdGVtcGxhdGUuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDIgPSBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICB0eXBlbmFtZSBUMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNCA9IGludGVy
bmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ2
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlw
ZW5hbWUgVDggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUOSA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUMTAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTEgPSBp
bnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDEyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5h
bWUgVDEzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQxNCA9IGludGVybmFsOjpOb25lLAot
ICAgIHR5cGVuYW1lIFQxNSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMTYgPSBpbnRlcm5h
bDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDE4
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDE5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5
cGVuYW1lIFQyMCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQyMSA9IGludGVybmFs
OjpOb25lLCB0eXBlbmFtZSBUMjIgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjMg
PSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI0ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlw
ZW5hbWUgVDI1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyNiA9IGludGVybmFsOjpOb25l
LAotICAgIHR5cGVuYW1lIFQyNyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjggPSBpbnRl
cm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjkgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUg
VDMwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDMxID0gaW50ZXJuYWw6Ok5vbmUs
IHR5cGVuYW1lIFQzMiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzMyA9IGludGVy
bmFsOjpOb25lLCB0eXBlbmFtZSBUMzQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBU
MzUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAg
dHlwZW5hbWUgVDM3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzOCA9IGludGVybmFsOjpO
b25lLAotICAgIHR5cGVuYW1lIFQzOSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDAgPSBp
bnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5h
bWUgVDQyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQzID0gaW50ZXJuYWw6Ok5v
bmUsIHR5cGVuYW1lIFQ0NCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ0NSA9IGlu
dGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDYgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFt
ZSBUNDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQ4ID0gaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgdHlwZW5hbWUgVDQ5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ1MCA9IGludGVybmFs
OjpOb25lPgotc3RydWN0IFR5cGVzIHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM1MDxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1z
dHJ1Y3QgVHlwZXM8aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMCB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXN0cnVjdCBUeXBlczxUMSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMxPFQxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjxUMSwgVDI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM8VDEsIFQyLCBUMz4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVk
ZWYgaW50ZXJuYWw6OlR5cGVzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3Pgotc3RydWN0IFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczg8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM5PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczEwPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXMxMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwKLSAgICAgIFQxMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxNDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQ+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1Pgotc3Ry
dWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4g
ewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTY+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgVDE2LCBUMTcsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTc8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTk+Ci1zdHJ1Y3QgVHlwZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyMDxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyMzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyND4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjQ8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUs
Ci0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjc+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwK
LSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjg+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBl
bmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwgVDI5LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzMjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwK
LSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOT4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+Ci1zdHJ1Y3QgVHlwZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzMzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwPiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LAotICAgIFQzMSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0
eXBlZGVmIGludGVybmFsOjpUeXBlczMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMj4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMyPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzI+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpU
eXBlczM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
Ci0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzY+Ci1zdHJ1Y3QgVHlwZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzc+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMzODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiB0eXBlOwotfTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
Mzk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDA+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXM0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDA+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAg
IHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwg
dHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBU
MzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MT4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDE8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDE+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDI8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0Mj4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBl
bmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwg
dHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBU
NDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0
MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAg
ICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDM+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwg
dHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50
ZXJuYWw6OlR5cGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBU
NDEsIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0
NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAg
VDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NT4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5h
bWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFt
ZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlw
ZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIs
IHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUg
VDQ2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQy
LCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXM0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQy
LCBUNDMsIFQ0NCwgVDQ1LCBUNDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1l
IFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3Pgotc3Ry
dWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0
NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDc8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2
LCBUNDc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5h
bWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5
cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3
LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1l
IFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUg
VDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDg+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0
LCBUNDUsCi0gICAgVDQ2LCBUNDcsIFQ0OCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAs
Ci0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUg
VDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVu
YW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0
eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0g
ICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBU
NDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgaW50ZXJuYWw6Ok5vbmU+IHsK
LSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+
IHR5cGU7Ci19OwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCiAjIGRlZmluZSBHVEVTVF9URU1Q
TEFURV8gdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzCiAKIC8vIFRoZSB0ZW1wbGF0ZSAic2Vs
ZWN0b3IiIHN0cnVjdCBUZW1wbGF0ZVNlbDxUbXBsPiBpcyB1c2VkIHRvCkBAIC0xNjU3LDE2OTIg
KzEyMiw2MiBAQCBzdHJ1Y3QgVGVtcGxhdGVTZWwgewogIyBkZWZpbmUgR1RFU1RfQklORF8oVG1w
bFNlbCwgVCkgXAogICBUbXBsU2VsOjp0ZW1wbGF0ZSBCaW5kPFQ+Ojp0eXBlCiAKLS8vIEEgdW5p
cXVlIHN0cnVjdCB0ZW1wbGF0ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUKLS8v
IGFyZ3VtZW50cyBvZiBjbGFzcyB0ZW1wbGF0ZSBUZW1wbGF0ZXMuICBUaGlzIGFsbG93cyB1cyB0
byBzaW11bGF0ZQotLy8gdmFyaWFkaWMgdGVtcGxhdGVzIChlLmcuIFRlbXBsYXRlczxpbnQ+LCBU
ZW1wbGF0ZXM8aW50LCBkb3VibGU+LAotLy8gYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0IHN1
cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBOb25lVCB7fTsK
LQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1Y3QgdGVtcGxhdGVz
IGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdGVtcGxhdGUgbGlzdHMuICBJbiBwYXJ0aWN1bGFy
LCBUZW1wbGF0ZXNOPFQxLCBUMiwgLi4uLAotLy8gVE4+IHJlcHJlc2VudHMgYSBsaXN0IG9mIE4g
dGVtcGxhdGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKS4gIEV4Y2VwdAotLy8gZm9yIFRlbXBsYXRl
czAsIGV2ZXJ5IHN0cnVjdCBpbiB0aGUgZmFtaWx5IGhhcyB0d28gbWVtYmVyIHR5cGVzOgotLy8g
SGVhZCBmb3IgdGhlIHNlbGVjdG9yIG9mIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbiB0aGUgbGlzdCwg
YW5kIFRhaWwKLS8vIGZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdC4KLQotLy8gVGhlIGVtcHR5IHRl
bXBsYXRlIGxpc3QuCi1zdHJ1Y3QgVGVtcGxhdGVzMCB7fTsKLQotLy8gVGVtcGxhdGUgbGlzdHMg
b2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIFRhaWw7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3RydWN0IFRlbXBsYXRlczIgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE8VDI+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXMzIHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyPFQyLCBUMz4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUND4KLXN0cnVjdCBUZW1wbGF0
ZXM0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMzPFQyLCBUMywgVDQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNT4KLXN0cnVjdCBUZW1wbGF0ZXM1IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0PFQyLCBUMywg
VDQsIFQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNj4KLXN0cnVjdCBUZW1wbGF0
ZXM2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM1PFQyLCBUMywgVDQsIFQ1LCBUNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0IFRlbXBsYXRlczcgewotICB0eXBlZGVm
IFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczY8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDg+Ci1zdHJ1Y3QgVGVtcGxhdGVzOCB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNzxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM4PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwPgotc3RydWN0IFRlbXBsYXRlczEwIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNl
bDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTE+Ci1zdHJ1Y3QgVGVt
cGxhdGVzMTEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRl
bXBsYXRlczEwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTE+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMj4KLXN0cnVjdCBU
ZW1wbGF0ZXMxMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0cnVjdCBUZW1wbGF0ZXMxMyB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTI8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTM+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVf
IFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1Rf
VEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczE0IHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMzxUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxND4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBH
VEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBU
MTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFk
OwotICB0eXBlZGVmIFRlbXBsYXRlczE0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTU+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTY+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTYgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNj4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVjdCBU
ZW1wbGF0ZXMxNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1
Y3QgVGVtcGxhdGVzMTggewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczE3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTg+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOT4KLXN0cnVjdCBUZW1wbGF0ZXMxOSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTg8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjAgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE5PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBI
ZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyPgotc3RydWN0IFRlbXBsYXRlczIyIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgotc3RydWN0IFRlbXBsYXRl
czIzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
MjQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjUgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXMyNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjY+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1Rf
VEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8g
VDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNU
X1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjcg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI2
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOD4KLXN0cnVjdCBUZW1wbGF0ZXMyOCB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwg
R1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1Q
TEFURV8gVDI5Pgotc3RydWN0IFRlbXBsYXRlczI5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAg
ICBUMjk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9U
RU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBU
MTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1Rf
VEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVN
UExBVEVfIFQzMD4KLXN0cnVjdCBUZW1wbGF0ZXMzMCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
ICAgVDI5LCBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0IFRlbXBs
YXRlczMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxPiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVN
UExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1
LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMj4KLXN0cnVjdCBUZW1w
bGF0ZXMzMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMzE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMz4KLXN0cnVjdCBUZW1wbGF0ZXMzMyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzQgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczMzPFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxh
dGVzMzUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBs
YXRlczM0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNj4KLXN0cnVjdCBUZW1wbGF0ZXMz
NiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNz4KLXN0cnVjdCBUZW1wbGF0ZXMzNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+
IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4Pgotc3RydWN0IFRlbXBsYXRlczM4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVh
ZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8g
VDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNU
X1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVf
IFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOT4KLXN0cnVjdCBUZW1wbGF0ZXMzOSB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzg8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwg
R1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1Q
TEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQs
IEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQwPgotc3RydWN0IFRlbXBsYXRlczQwIHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzOTxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1Q
TEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjks
IEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVN
UExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0
LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4KLXN0cnVjdCBUZW1w
bGF0ZXM0MSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNDA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxPiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdU
RVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8g
VDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNU
X1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVf
IFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVT
VF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQz
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9U
RU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBU
MzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1Rf
VEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0Mj4KLXN0cnVjdCBUZW1wbGF0ZXM0MiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDE8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyPiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RF
TVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAs
IEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFU
RV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdU
RVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExB
VEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBH
VEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVf
IFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVT
VF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRF
XyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RF
U1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQzPgotc3RydWN0IFRlbXBsYXRlczQzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQw
LCBUNDEsIFQ0MiwKLSAgICAgIFQ0Mz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNU
X1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVf
IFQ0ND4KLXN0cnVjdCBUZW1wbGF0ZXM0NCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhl
YWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0ND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwg
R1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1Q
TEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEs
IEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFU
RV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdU
RVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExB
VEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NT4KLXN0cnVjdCBUZW1wbGF0ZXM0NSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDQ8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1PiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDY+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDYgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ1PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0NSwgVDQ2
PiBUYWlsOwordGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBIZWFkXywgR1RFU1RfVEVNUExBVEVf
Li4uIFRhaWxfPgorc3RydWN0IFRlbXBsYXRlcyB7CisgIHVzaW5nIEhlYWQgPSBUZW1wbGF0ZVNl
bDxIZWFkXz47CisgIHVzaW5nIFRhaWwgPSBUZW1wbGF0ZXM8VGFpbF8uLi4+OwogfTsKIAotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RF
TVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQy
MywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9U
RU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1Q
TEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgs
IEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVN
UExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQz
LCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDc+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDcgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ2PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0
NSwgVDQ2LCBUNDc+IFRhaWw7Cit0ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIEhlYWRfPgorc3Ry
dWN0IFRlbXBsYXRlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gVGVtcGxhdGVTZWw8SGVhZF8+
OworICB1c2luZyBUYWlsID0gTm9uZTsKIH07CiAKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVN
UExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5
LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RF
TVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
NCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBM
QVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwg
R1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1Q
TEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBsYXRlczQ4IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NzxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUs
IFQ0NiwgVDQ3LCBUNDg+IFRhaWw7CisvLyBUdXBsZS1saWtlIHR5cGUgbGlzdHMKK3RlbXBsYXRl
IDx0eXBlbmFtZSBIZWFkXywgdHlwZW5hbWUuLi4gVGFpbF8+CitzdHJ1Y3QgVHlwZXMgeworICB1
c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwgPSBUeXBlczxUYWlsXy4uLj47CiB9Owog
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8g
VDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNU
X1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVf
IFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVT
VF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0
OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5Pgotc3RydWN0IFRlbXBsYXRlczQ5IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0ODxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQz
NiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUsIFQ0
NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKK3RlbXBsYXRlIDx0eXBlbmFtZSBIZWFkXz4KK3N0cnVj
dCBUeXBlczxIZWFkXz4geworICB1c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwgPSBO
b25lOwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDcsIEdURVNUX1RF
TVBMQVRFXyBUNDgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0OSwgR1RFU1RfVEVNUExBVEVfIFQ1
MD4KLXN0cnVjdCBUZW1wbGF0ZXM1MCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVGFp
bDsKKy8vIEhlbHBlciBtZXRhZnVuY3Rpb25zIHRvIHRlbGwgYXBhcnQgYSBzaW5nbGUgdHlwZSBm
cm9tIHR5cGVzCisvLyBnZW5lcmF0ZWQgYnkgOjp0ZXN0aW5nOjpUeXBlcwordGVtcGxhdGUgPHR5
cGVuYW1lLi4uIFRzPgorc3RydWN0IFByb3h5VHlwZUxpc3QgeworICB1c2luZyB0eXBlID0gVHlw
ZXM8VHMuLi4+OwogfTsKIAordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IGlzX3Byb3h5X3R5
cGVfbGlzdCA6IHN0ZDo6ZmFsc2VfdHlwZSB7fTsKIAotLy8gV2UgZG9uJ3Qgd2FudCB0byByZXF1
aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0
aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVGVtcGxhdGVzPC4u
Lj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1l
c3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3Rz
IG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBo
YXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVzPGxpc3Q+Ci0vLyB3aWxs
IGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAuLi4sIE5vbmVUPiBpbiB0
aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0aW9uIGlzIHRvIGNvbWJp
bmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEKLS8vIHVzZXIgd291bGQg
d3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJhbnNs
YXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFr
ZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBi
eSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0ZW1wbGF0ZS4KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEgPSBOb25lVCwgR1RFU1RfVEVNUExBVEVfIFQyID0gTm9u
ZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNCA9
IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8g
VDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcgPSBOb25lVCwgR1RFU1RfVEVNUExB
VEVfIFQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ5ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUMTAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDExID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUMTIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUMTQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE1
ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTggPSBOb25lVCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjAgPSBOb25lVCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjIgPSBOb25lVCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjQgPSBO
b25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBU
MjYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI3ID0gTm9uZVQsIEdURVNUX1RFTVBM
QVRFXyBUMjggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI5ID0gTm9uZVQsIEdURVNU
X1RFTVBMQVRFXyBUMzAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxID0gTm9uZVQs
IEdURVNUX1RFTVBMQVRFXyBUMzIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMzID0g
Tm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDM1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzggPSBOb25lVCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDAgPSBOb25lVCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDIgPSBOb25l
VCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDQg
PSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRF
XyBUNDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ3ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUNDggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5ID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUNTAgPSBOb25lVD4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0eXBlZGVm
IFRlbXBsYXRlczUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAg
ICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiB0eXBlOwotfTsK
LQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUZW1wbGF0ZXM8Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczAgdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTxUMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDI+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyPFQxLCBU
Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzPFQxLCBUMiwgVDM+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Pgotc3RydWN0IFRlbXBsYXRlczxUMSwg
VDIsIFQzLCBUNCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNj4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM2PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczg8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0
eXBlZGVmIFRlbXBsYXRlczExPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEyPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RF
U1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRF
XyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0
cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTQ8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgICAgVDE0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNU
X1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8g
VDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNU
X1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTU8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0
LCBUMTU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1
LCBUMTYsIFQxNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE3PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAg
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMDxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBM
QVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzPgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MjM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRF
XyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1Rf
VEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3
LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRF
XyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RF
U1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFU
RV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdU
RVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjQ8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDEx
LCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RF
TVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
NiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBM
QVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNj4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8g
VDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNU
X1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXMyODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAg
ICAgVDI4LCBUMjk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgVDMwLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVm
IFRlbXBsYXRlczMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMD4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RF
TVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQy
MCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9U
RU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwg
VDMwLCBUMzE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
Mj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAs
IFQzMSwgVDMyLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAg
ICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMw
LCBUMzEsIFQzMiwgVDMzLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczMzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzMzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzY+Ci1zdHJ1
Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAot
ICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNz4KLXN0cnVjdCBUZW1w
bGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAot
ICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM4PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
MiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9U
RU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzk+Ci1zdHJ1Y3QgVGVt
cGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4g
ewotICB0eXBlZGVmIFRlbXBsYXRlczM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RF
TVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQy
MCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9U
RU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1Q
TEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUs
IEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVN
UExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQw
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0g
ICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MT4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBOb25lVCwgTm9uZVQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZXM0MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0
MT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyPgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLAotICAgICAgVDQyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBH
VEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBM
QVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwg
R1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRF
XyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Mz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0
Mz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExB
VEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBH
VEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVf
IFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVT
VF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRF
XyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RF
U1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0
MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9U
RU1QTEFURV8gVDQ1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywK
LSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNU
X1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQ2Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDY8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
Ci0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBM
QVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwg
R1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1Q
TEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAs
IEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0g
ICAgVDQ1LCBUNDYsIFQ0NywgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBs
YXRlczQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIs
IFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RF
U1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFU
RV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdU
RVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8g
VDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNU
X1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVf
IFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVT
VF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1
LCBUNDYsIFQ0NywgVDQ4LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0ODxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0
NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RF
TVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0
NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9U
RU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwg
VDQyLCBUNDMsIFQ0NCwKLSAgICBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXM0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IHR5cGU7Ci19
OwotCi0vLyBUaGUgVHlwZUxpc3QgdGVtcGxhdGUgbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlIGVp
dGhlciBhIHNpbmdsZSB0eXBlCi0vLyBvciBhIFR5cGVzPC4uLj4gbGlzdCBpbiBUWVBFRF9URVNU
X0NBU0UoKSBhbmQKLS8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKCkuCit0ZW1wbGF0
ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3QgaXNfcHJveHlfdHlwZV9saXN0PFByb3h5VHlwZUxp
c3Q8VHMuLi4+PiA6IHN0ZDo6dHJ1ZV90eXBlIHt9OwogCisvLyBHZW5lcmF0b3Igd2hpY2ggY29u
ZGl0aW9uYWxseSBjcmVhdGVzIHR5cGUgbGlzdHMuCisvLyBJdCByZWNvZ25pemVzIGlmIGEgcmVx
dWVzdGVkIHR5cGUgbGlzdCBzaG91bGQgYmUgY3JlYXRlZAorLy8gYW5kIHByZXZlbnRzIGNyZWF0
aW5nIGEgbmV3IHR5cGUgbGlzdCBuZXN0ZWQgd2l0aGluIGFub3RoZXIgb25lLgogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgVHlwZUxpc3QgewotICB0eXBlZGVmIFR5cGVzMTxUPiB0eXBl
OwotfTsKK3N0cnVjdCBHZW5lcmF0ZVR5cGVMaXN0IHsKKyBwcml2YXRlOgorICB1c2luZyBwcm94
eSA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8aXNfcHJveHlfdHlwZV9saXN0PFQ+Ojp2YWx1
ZSwgVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3h5VHlw
ZUxpc3Q8VD4+Ojp0eXBlOwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlw
ZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBU
NDcsIFQ0OCwgVDQ5LCBUNTA+ID4gewotICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUs
IFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPjo6dHlwZSB0eXBlOworIHB1YmxpYzoKKyAgdXNpbmcg
dHlwZSA9IHR5cGVuYW1lIHByb3h5Ojp0eXBlOwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIH0gIC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+Cit1c2luZyBUeXBlcyA9IGludGVy
bmFsOjpQcm94eVR5cGVMaXN0PFRzLi4uPjsKKwogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9I
XworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1bXAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDFhNWQzOWRmYTZkMjRjN2M0MWExNmExNWYyZTJh
NWNlOTQ5ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBl
LXV0aWwuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMzE0ICswLDAgQEAKLSQkIC0qLSBtb2Rl
OiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGltdW0gbGVuZ3RoIG9mIHR5cGUgbGlzdHMg
d2Ugd2FudCB0byBzdXBwb3J0LgotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KLS8vIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotLy8gVHlwZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlw
ZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVzdHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkg
d2Ugc3VwcG9ydCBhdCBtb3N0ICRuIHR5cGVzIGluIGEgbGlzdCwgYW5kIGF0IG1vc3QgJG4KLS8v
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qg
Y2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBz
LmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9U
IERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQ
RV9VVElMX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCi0KLS8v
ICNpZmRlZiBfX0dOVUNfXyBpcyB0b28gZ2VuZXJhbCBoZXJlLiAgSXQgaXMgcG9zc2libGUgdG8g
dXNlIGdjYyB3aXRob3V0IHVzaW5nCi0vLyBsaWJzdGRjKysgKHdoaWNoIGlzIHdoZXJlIGN4eGFi
aS5oIGNvbWVzIGZyb20pLgotIyBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCi0jICBpbmNsdWRlIDxj
eHhhYmkuaD4KLSMgZWxpZiBkZWZpbmVkKF9fSFBfYUNDKQotIyAgaW5jbHVkZSA8YWN4eF9kZW1h
bmdsZS5oPgotIyBlbmRpZiAgLy8gR1RFU1RfSEFTSF9DWFhBQklfSF8KLQotbmFtZXNwYWNlIHRl
c3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gQ2Fub25pY2FsaXplcyBhIGdpdmVu
IG5hbWUgd2l0aCByZXNwZWN0IHRvIHRoZSBTdGFuZGFyZCBDKysgTGlicmFyeS4KLS8vIFRoaXMg
aGFuZGxlcyByZW1vdmluZyB0aGUgaW5saW5lIG5hbWVzcGFjZSB3aXRoaW4gYHN0ZGAgdGhhdCBp
cwotLy8gdXNlZCBieSB2YXJpb3VzIHN0YW5kYXJkIGxpYnJhcmllcyAoZS5nLiwgYHN0ZDo6X18x
YCkuICBOYW1lcyBvdXRzaWRlCi0vLyBvZiBuYW1lc3BhY2Ugc3RkIGFyZSByZXR1cm5lZCB1bm1v
ZGlmaWVkLgotaW5saW5lIHN0ZDo6c3RyaW5nIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZlcnNpb25p
bmcoc3RkOjpzdHJpbmcgcykgewotICBzdGF0aWMgY29uc3QgY2hhciBwcmVmaXhbXSA9ICJzdGQ6
Ol9fIjsKLSAgaWYgKHMuY29tcGFyZSgwLCBzdHJsZW4ocHJlZml4KSwgcHJlZml4KSA9PSAwKSB7
Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBlbmQgPSBzLmZpbmQoIjo6Iiwgc3RybGVuKHBy
ZWZpeCkpOwotICAgIGlmIChlbmQgIT0gcy5ucG9zKSB7Ci0gICAgICAvLyBFcmFzZSBldmVyeXRo
aW5nIGJldHdlZW4gdGhlIGluaXRpYWwgYHN0ZGAgYW5kIHRoZSBzZWNvbmQgYDo6YC4KLSAgICAg
IHMuZXJhc2Uoc3RybGVuKCJzdGQiKSwgZW5kIC0gc3RybGVuKCJzdGQiKSk7Ci0gICAgfQotICB9
Ci0gIHJldHVybiBzOwotfQotCi0vLyBHZXRUeXBlTmFtZTxUPigpIHJldHVybnMgYSBodW1hbi1y
ZWFkYWJsZSBuYW1lIG9mIHR5cGUgVC4KLS8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNl
ZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YKLS8vIHRoZSB0eXBl
ZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RkOjpz
dHJpbmcgR2V0VHlwZU5hbWUoKSB7Ci0jIGlmIEdURVNUX0hBU19SVFRJCi0KLSAgY29uc3QgY2hh
ciogY29uc3QgbmFtZSA9IHR5cGVpZChUKS5uYW1lKCk7Ci0jICBpZiBHVEVTVF9IQVNfQ1hYQUJJ
X0hfIHx8IGRlZmluZWQoX19IUF9hQ0MpCi0gIGludCBzdGF0dXMgPSAwOwotICAvLyBnY2MncyBp
bXBsZW1lbnRhdGlvbiBvZiB0eXBlaWQoVCkubmFtZSgpIG1hbmdsZXMgdGhlIHR5cGUgbmFtZSwK
LSAgLy8gc28gd2UgaGF2ZSB0byBkZW1hbmdsZSBpdC4KLSMgICBpZiBHVEVTVF9IQVNfQ1hYQUJJ
X0hfCi0gIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0jICAgZW5kaWYgIC8vIEdURVNUX0hB
U19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVfbmFtZSA9IF9fY3hhX2RlbWFuZ2xl
KG5hbWUsIDAsIDAsICZzdGF0dXMpOwotICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lX3N0cihzdGF0
dXMgPT0gMCA/IHJlYWRhYmxlX25hbWUgOiBuYW1lKTsKLSAgZnJlZShyZWFkYWJsZV9uYW1lKTsK
LSAgcmV0dXJuIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZlcnNpb25pbmcobmFtZV9zdHIpOwotIyAg
ZWxzZQotICByZXR1cm4gbmFtZTsKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8
IF9fSFBfYUNDCi0KLSMgZWxzZQotCi0gIHJldHVybiAiPHR5cGU+IjsKLQotIyBlbmRpZiAgLy8g
R1RFU1RfSEFTX1JUVEkKLX0KLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hB
U19UWVBFRF9URVNUX1AKLQotLy8gQXNzZXJ0eVR5cGVFcTxUMSwgVDI+Ojp0eXBlIGlzIGRlZmlu
ZWQgaWZmIFQxIGFuZCBUMiBhcmUgdGhlIHNhbWUKLS8vIHR5cGUuICBUaGlzIGNhbiBiZSB1c2Vk
IGFzIGEgY29tcGlsZS10aW1lIGFzc2VydGlvbiB0byBlbnN1cmUgdGhhdAotLy8gdHdvIHR5cGVz
IGFyZSBlcXVhbC4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXN0cnVj
dCBBc3NlcnRUeXBlRXE7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFzc2VydFR5
cGVFcTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKLQotLy8gQSB1bmlxdWUgdHlw
ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYXJndW1lbnRzIG9mIGNsYXNzCi0v
LyB0ZW1wbGF0ZSBUeXBlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlIHZhcmlhZGljIHRl
bXBsYXRlcwotLy8gKGUuZy4gVHlwZXM8aW50PiwgVHlwZTxpbnQsIGRvdWJsZT4sIGFuZCBldGMp
LCB3aGljaCBDKysgZG9lc24ndAotLy8gc3VwcG9ydCBkaXJlY3RseS4KLXN0cnVjdCBOb25lIHt9
OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0
ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxpc3RzLiAgSW4gcGFydGljdWxhciwg
VHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2VudHMgYSB0eXBlIGxpc3Qgd2l0aCBO
IHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4KLS8vIEV4Y2VwdCBmb3IgVHlwZXMw
LCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoKLS8vIEhl
YWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBhbmQgVGFpbCBmb3IgdGhlIHJlc3Qg
b2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlwZSBsaXN0Lgotc3RydWN0IFR5cGVz
MCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMxIHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLQotJHJhbmdlIGkgMi4ubgotCi0kZm9yIGkg
W1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkKLXRlbXBsYXRlIDwkZm9yIGosIFtbdHlw
ZW5hbWUgVCRqXV0+Ci1zdHJ1Y3QgVHlwZXMkaSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlcyQoaS0xKTwkZm9yIGssIFtbVCRrXV0+IFRhaWw7Ci19OwotCi0KLV1dCi0KLX0g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBXZSBkb24ndCB3YW50IHRvIHJlcXVpcmUgdGhl
IHVzZXJzIHRvIHdyaXRlIFR5cGVzTjwuLi4+IGRpcmVjdGx5LAotLy8gYXMgdGhhdCB3b3VsZCBy
ZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFR5cGVzPC4uLj4gaXMgbXVjaAotLy8g
ZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhl
cmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91
dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQg
dmFsdWUgKHRoaXMgbWVhbnMgVHlwZXM8aW50PgotLy8gd2lsbCBhcHBlYXIgYXMgVHlwZXM8aW50
LCBOb25lLCBOb25lLCAuLi4sIE5vbmU+IGluIHRoZSBjb21waWxlcgotLy8gZXJyb3JzKS4KLS8v
Ci0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0IG9mIHRoZSB0d28g
YXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0ZSBUeXBlczxUMSwgLi4uLCBUTj4sIGFu
ZCBHb29nbGUgVGVzdCB3aWxsIHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUeXBlc048VDEsIC4uLiwg
VE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUg
dHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFR5cGVz
IHRlbXBsYXRlLgotCi0kcmFuZ2UgaSAxLi5uCi10ZW1wbGF0ZSA8JGZvciBpLCBbW3R5cGVuYW1l
IFQkaSA9IGludGVybmFsOjpOb25lXV0+Ci1zdHJ1Y3QgVHlwZXMgewotICB0eXBlZGVmIGludGVy
bmFsOjpUeXBlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1z
dHJ1Y3QgVHlwZXM8JGZvciBpLCBbW2ludGVybmFsOjpOb25lXV0+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXMwIHR5cGU7Ci19OwotCi0kcmFuZ2UgaSAxLi5uLTEKLSRmb3IgaSBbWwotJHJh
bmdlIGogMS4uaQotJHJhbmdlIGsgaSsxLi5uCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1l
IFQkal1dPgotc3RydWN0IFR5cGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBpbnRlcm5hbDo6
Tm9uZV1dPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0
eXBlOwotfTsKLQotXV0KLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQotIyBkZWZpbmUgR1RFU1Rf
VEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcwotCi0vLyBUaGUgdGVtcGxhdGUg
InNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8VG1wbD4gaXMgdXNlZCB0bwotLy8gcmVwcmVz
ZW50IFRtcGwsIHdoaWNoIG11c3QgYmUgYSBjbGFzcyB0ZW1wbGF0ZSB3aXRoIG9uZSB0eXBlCi0v
LyBwYXJhbWV0ZXIsIGFzIGEgdHlwZS4gIFRlbXBsYXRlU2VsPFRtcGw+OjpCaW5kPFQ+Ojp0eXBl
IGlzIGRlZmluZWQKLS8vIGFzIHRoZSB0eXBlIFRtcGw8VD4uICBUaGlzIGFsbG93cyB1cyB0byBh
Y3R1YWxseSBpbnN0YW50aWF0ZSB0aGUKLS8vIHRlbXBsYXRlICJzZWxlY3RlZCIgYnkgVGVtcGxh
dGVTZWw8VG1wbD4uCi0vLwotLy8gVGhpcyB0cmljayBpcyBuZWNlc3NhcnkgZm9yIHNpbXVsYXRp
bmcgdHlwZWRlZiBmb3IgY2xhc3MgdGVtcGxhdGVzLAotLy8gd2hpY2ggQysrIGRvZXNuJ3Qgc3Vw
cG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVG1wbD4KLXN0cnVjdCBU
ZW1wbGF0ZVNlbCB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBzdHJ1Y3QgQmluZCB7Ci0g
ICAgdHlwZWRlZiBUbXBsPFQ+IHR5cGU7Ci0gIH07Ci19OwotCi0jIGRlZmluZSBHVEVTVF9CSU5E
XyhUbXBsU2VsLCBUKSBcCi0gIFRtcGxTZWw6OnRlbXBsYXRlIEJpbmQ8VD46OnR5cGUKLQotLy8g
QSB1bmlxdWUgc3RydWN0IHRlbXBsYXRlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRo
ZQotLy8gYXJndW1lbnRzIG9mIGNsYXNzIHRlbXBsYXRlIFRlbXBsYXRlcy4gIFRoaXMgYWxsb3dz
IHVzIHRvIHNpbXVsYXRlCi0vLyB2YXJpYWRpYyB0ZW1wbGF0ZXMgKGUuZy4gVGVtcGxhdGVzPGlu
dD4sIFRlbXBsYXRlczxpbnQsIGRvdWJsZT4sCi0vLyBhbmQgZXRjKSwgd2hpY2ggQysrIGRvZXNu
J3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IE5vbmVU
IHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1w
bGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0ZW1wbGF0ZSBsaXN0cy4gIEluIHBhcnRp
Y3VsYXIsIFRlbXBsYXRlc048VDEsIFQyLCAuLi4sCi0vLyBUTj4gcmVwcmVzZW50cyBhIGxpc3Qg
b2YgTiB0ZW1wbGF0ZXMgKFQxLCBUMiwgLi4uLCBhbmQgVE4pLiAgRXhjZXB0Ci0vLyBmb3IgVGVt
cGxhdGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6
Ci0vLyBIZWFkIGZvciB0aGUgc2VsZWN0b3Igb2YgdGhlIGZpcnN0IHRlbXBsYXRlIGluIHRoZSBs
aXN0LCBhbmQgVGFpbAotLy8gZm9yIHRoZSByZXN0IG9mIHRoZSBsaXN0LgotCi0vLyBUaGUgZW1w
dHkgdGVtcGxhdGUgbGlzdC4KLXN0cnVjdCBUZW1wbGF0ZXMwIHt9OwotCi0vLyBUZW1wbGF0ZSBs
aXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQx
PiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczAgVGFpbDsKLX07Ci0KLSRyYW5nZSBpIDIuLm4K
LQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2UgayAyLi5pCi10ZW1wbGF0ZSA8JGZv
ciBqLCBbW0dURVNUX1RFTVBMQVRFXyBUJGpdXT4KLXN0cnVjdCBUZW1wbGF0ZXMkaSB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzJChpLTEpPCRm
b3IgaywgW1tUJGtdXT4gVGFpbDsKLX07Ci0KLQotXV0KLQotLy8gV2UgZG9uJ3Qgd2FudCB0byBy
ZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBh
cyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVGVtcGxhdGVz
PC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxl
IG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNp
c3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZlbiBpZiBp
dCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVGVtcGxhdGVzPGxpc3Q+Ci0vLyB3
aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQsIE5vbmVULCAuLi4sIE5vbmVUPiBp
biB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8gT3VyIHNvbHV0aW9uIGlzIHRvIGNv
bWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJvYWNoZXM6IGEKLS8vIHVzZXIgd291
bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJh
bnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8g
bWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9u
ZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRlbXBsYXRlcyB0ZW1wbGF0ZS4KLQot
JHJhbmdlIGkgMS4ubgotdGVtcGxhdGUgPCRmb3IgaSwgW1tHVEVTVF9URU1QTEFURV8gVCRpID0g
Tm9uZVRdXT4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0eXBlZGVmIFRlbXBsYXRlcyRuPCRmb3Ig
aSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVGVtcGxhdGVzPCRm
b3IgaSwgW1tOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMCB0eXBlOwotfTsKLQotJHJh
bmdlIGkgMS4ubi0xCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIGkrMS4ubgot
dGVtcGxhdGUgPCRmb3IgaiwgW1tHVEVTVF9URU1QTEFURV8gVCRqXV0+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0eXBlOwotfTsKLQotXV0KLQotLy8gVGhlIFR5cGVMaXN0
IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBlaXRoZXIgYSBzaW5nbGUgdHlwZQot
Ly8gb3IgYSBUeXBlczwuLi4+IGxpc3QgaW4gVFlQRURfVEVTVF9DQVNFKCkgYW5kCi0vLyBJTlNU
QU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
cnVjdCBUeXBlTGlzdCB7Ci0gIHR5cGVkZWYgVHlwZXMxPFQ+IHR5cGU7Ci19OwotCi0KLSRyYW5n
ZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpXV0+Ci1zdHJ1Y3QgVHlw
ZUxpc3Q8VHlwZXM8JGZvciBpLCBbW1QkaV1dPiA+IHsKLSAgdHlwZWRlZiB0eXBlbmFtZSBUeXBl
czwkZm9yIGksIFtbVCRpXV0+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tNC9hY3hfcHRocmVhZC5tNCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
Y2YyMGRlMTQ0YTExYmUyYWE2MDNiMDRlYTUxMTI0NDE5MTAzN2I3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200
L2FjeF9wdGhyZWFkLm00CisrKyAvZGV2L251bGwKQEAgLTEsMzYzICswLDAgQEAKLSMgVGhpcyB3
YXMgcmV0cmlldmVkIGZyb20KLSMgICAgaHR0cDovL3N2bi4wcG9pbnRlci5kZS92aWV3dmMvdHJ1
bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3JldmlzaW9uPTEyNzcmcm9vdD1hdmFoaQotIyBTZWUg
YWxzbyAocGVyaGFwcyBmb3IgbmV3IHZlcnNpb25zPykKLSMgICAgaHR0cDovL3N2bi4wcG9pbnRl
ci5kZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3Jvb3Q9YXZhaGkKLSMKLSMg
V2UndmUgcmV3cml0dGVuIHRoZSBpbmNvbnNpc3RlbmN5IGNoZWNrIGNvZGUgKGZyb20gYXZhaGkp
LCB0byB3b3JrCi0jIG1vcmUgYnJvYWRseS4gIEluIHBhcnRpY3VsYXIsIGl0IG5vIGxvbmdlciBh
c3N1bWVzIGxkIGFjY2VwdHMgLXpkZWZzLgotIyBUaGlzIGNhdXNlZCBhIHJlc3RydWN0aW5nIG9m
IHRoZSBjb2RlLCBidXQgdGhlIGZ1bmN0aW9uYWxpdHkgaGFzIG9ubHkKLSMgY2hhbmdlZCBhIGxp
dHRsZS4KLQotZG5sIEBzeW5vcHNpcyBBQ1hfUFRIUkVBRChbQUNUSU9OLUlGLUZPVU5EWywgQUNU
SU9OLUlGLU5PVC1GT1VORF1dKQotZG5sCi1kbmwgQHN1bW1hcnkgZmlndXJlIG91dCBob3cgdG8g
YnVpbGQgQyBwcm9ncmFtcyB1c2luZyBQT1NJWCB0aHJlYWRzCi1kbmwKLWRubCBUaGlzIG1hY3Jv
IGZpZ3VyZXMgb3V0IGhvdyB0byBidWlsZCBDIHByb2dyYW1zIHVzaW5nIFBPU0lYIHRocmVhZHMu
Ci1kbmwgSXQgc2V0cyB0aGUgUFRIUkVBRF9MSUJTIG91dHB1dCB2YXJpYWJsZSB0byB0aGUgdGhy
ZWFkcyBsaWJyYXJ5IGFuZAotZG5sIGxpbmtlciBmbGFncywgYW5kIHRoZSBQVEhSRUFEX0NGTEFH
UyBvdXRwdXQgdmFyaWFibGUgdG8gYW55IHNwZWNpYWwKLWRubCBDIGNvbXBpbGVyIGZsYWdzIHRo
YXQgYXJlIG5lZWRlZC4gKFRoZSB1c2VyIGNhbiBhbHNvIGZvcmNlIGNlcnRhaW4KLWRubCBjb21w
aWxlciBmbGFncy9saWJzIHRvIGJlIHRlc3RlZCBieSBzZXR0aW5nIHRoZXNlIGVudmlyb25tZW50
Ci1kbmwgdmFyaWFibGVzLikKLWRubAotZG5sIEFsc28gc2V0cyBQVEhSRUFEX0NDIHRvIGFueSBz
cGVjaWFsIEMgY29tcGlsZXIgdGhhdCBpcyBuZWVkZWQgZm9yCi1kbmwgbXVsdGktdGhyZWFkZWQg
cHJvZ3JhbXMgKGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBDQyBvdGhlcndpc2UpLgotZG5sIChU
aGlzIGlzIG5lY2Vzc2FyeSBvbiBBSVggdG8gdXNlIHRoZSBzcGVjaWFsIGNjX3IgY29tcGlsZXIg
YWxpYXMuKQotZG5sCi1kbmwgTk9URTogWW91IGFyZSBhc3N1bWVkIHRvIG5vdCBvbmx5IGNvbXBp
bGUgeW91ciBwcm9ncmFtIHdpdGggdGhlc2UKLWRubCBmbGFncywgYnV0IGFsc28gbGluayBpdCB3
aXRoIHRoZW0gYXMgd2VsbC4gZS5nLiB5b3Ugc2hvdWxkIGxpbmsKLWRubCB3aXRoICRQVEhSRUFE
X0NDICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTICRMREZMQUdTIC4uLiAkUFRIUkVBRF9MSUJTCi1k
bmwgJExJQlMKLWRubAotZG5sIElmIHlvdSBhcmUgb25seSBidWlsZGluZyB0aHJlYWRzIHByb2dy
YW1zLCB5b3UgbWF5IHdpc2ggdG8gdXNlCi1kbmwgdGhlc2UgdmFyaWFibGVzIGluIHlvdXIgZGVm
YXVsdCBMSUJTLCBDRkxBR1MsIGFuZCBDQzoKLWRubAotZG5sICAgICAgICBMSUJTPSIkUFRIUkVB
RF9MSUJTICRMSUJTIgotZG5sICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdT
IgotZG5sICAgICAgICBDQz0iJFBUSFJFQURfQ0MiCi1kbmwKLWRubCBJbiBhZGRpdGlvbiwgaWYg
dGhlIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIHRocmVhZC1hdHRyaWJ1dGUKLWRubCBjb25zdGFu
dCBoYXMgYSBub25zdGFuZGFyZCBuYW1lLCBkZWZpbmVzIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxF
IHRvCi1kbmwgdGhhdCBuYW1lIChlLmcuIFBUSFJFQURfQ1JFQVRFX1VOREVUQUNIRUQgb24gQUlY
KS4KLWRubAotZG5sIEFDVElPTi1JRi1GT1VORCBpcyBhIGxpc3Qgb2Ygc2hlbGwgY29tbWFuZHMg
dG8gcnVuIGlmIGEgdGhyZWFkcwotZG5sIGxpYnJhcnkgaXMgZm91bmQsIGFuZCBBQ1RJT04tSUYt
Tk9ULUZPVU5EIGlzIGEgbGlzdCBvZiBjb21tYW5kcyB0bwotZG5sIHJ1biBpdCBpZiBpdCBpcyBu
b3QgZm91bmQuIElmIEFDVElPTi1JRi1GT1VORCBpcyBub3Qgc3BlY2lmaWVkLCB0aGUKLWRubCBk
ZWZhdWx0IGFjdGlvbiB3aWxsIGRlZmluZSBIQVZFX1BUSFJFQUQuCi1kbmwKLWRubCBQbGVhc2Ug
bGV0IHRoZSBhdXRob3JzIGtub3cgaWYgdGhpcyBtYWNybyBmYWlscyBvbiBhbnkgcGxhdGZvcm0s
IG9yCi1kbmwgaWYgeW91IGhhdmUgYW55IG90aGVyIHN1Z2dlc3Rpb25zIG9yIGNvbW1lbnRzLiBU
aGlzIG1hY3JvIHdhcyBiYXNlZAotZG5sIG9uIHdvcmsgYnkgU0dKIG9uIGF1dG9jb25mIHNjcmlw
dHMgZm9yIEZGVFcgKHd3dy5mZnR3Lm9yZykgKHdpdGgKLWRubCBoZWxwIGZyb20gTS4gRnJpZ28p
LCBhcyB3ZWxsIGFzIGFjX3B0aHJlYWQgYW5kIGhiX3B0aHJlYWQgbWFjcm9zCi1kbmwgcG9zdGVk
IGJ5IEFsZWphbmRybyBGb3Jlcm8gQ3VlcnZvIHRvIHRoZSBhdXRvY29uZiBtYWNybyByZXBvc2l0
b3J5LgotZG5sIFdlIGFyZSBhbHNvIGdyYXRlZnVsIGZvciB0aGUgaGVscGZ1bCBmZWVkYmFjayBv
ZiBudW1lcm91cyB1c2Vycy4KLWRubAotZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwot
ZG5sIEBhdXRob3IgU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgotZG5s
IEB2ZXJzaW9uIDIwMDYtMDUtMjkKLWRubCBAbGljZW5zZSBHUExXaXRoQUNFeGNlcHRpb24KLWRu
bCAKLWRubCBDaGVja3MgZm9yIEdDQyBzaGFyZWQvcHRocmVhZCBpbmNvbnNpc3RlbmN5IGJhc2Vk
IG9uIHdvcmsgYnkKLWRubCBNYXJjaW4gT3dzaWFueSA8bWFyY2luQG93c2lhbnkucGw+Ci0KLQot
QUNfREVGVU4oW0FDWF9QVEhSRUFEXSwgWwotQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1Rd
KQotQUNfTEFOR19TQVZFCi1BQ19MQU5HX0MKLWFjeF9wdGhyZWFkX29rPW5vCi0KLSMgV2UgdXNl
ZCB0byBjaGVjayBmb3IgcHRocmVhZC5oIGZpcnN0LCBidXQgdGhpcyBmYWlscyBpZiBwdGhyZWFk
LmgKLSMgcmVxdWlyZXMgc3BlY2lhbCBjb21waWxlciBmbGFncyAoZS5nLiBvbiBUcnVlNjQgb3Ig
U2VxdWVudCkuCi0jIEl0IGdldHMgY2hlY2tlZCBmb3IgaW4gdGhlIGxpbmsgdGVzdCBhbnl3YXku
Ci0KLSMgRmlyc3Qgb2YgYWxsLCBjaGVjayBpZiB0aGUgdXNlciBoYXMgc2V0IGFueSBvZiB0aGUg
UFRIUkVBRF9MSUJTLAotIyBldGNldGVyYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGFuZCBpZiB0
aHJlYWRzIGxpbmtpbmcgd29ya3MgdXNpbmcKLSMgdGhlbToKLWlmIHRlc3QgeCIkUFRIUkVBRF9M
SUJTJFBUSFJFQURfQ0ZMQUdTIiAhPSB4OyB0aGVuCi0gICAgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZM
QUdTIgotICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBz
YXZlX0xJQlM9IiRMSUJTIgotICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotICAg
ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBwdGhyZWFkX2pvaW4gaW4gTElCUz0kUFRIUkVBRF9M
SUJTIHdpdGggQ0ZMQUdTPSRQVEhSRUFEX0NGTEFHU10pCi0gICAgICAgIEFDX1RSWV9MSU5LX0ZV
TkMocHRocmVhZF9qb2luLCBhY3hfcHRocmVhZF9vaz15ZXMpCi0gICAgICAgIEFDX01TR19SRVNV
TFQoJGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9
IHhubzsgdGhlbgotICAgICAgICAgICAgICAgIFBUSFJFQURfTElCUz0iIgotICAgICAgICAgICAg
ICAgIFBUSFJFQURfQ0ZMQUdTPSIiCi0gICAgICAgIGZpCi0gICAgICAgIExJQlM9IiRzYXZlX0xJ
QlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotZmkKLQotIyBXZSBtdXN0IGNoZWNr
IGZvciB0aGUgdGhyZWFkcyBsaWJyYXJ5IHVuZGVyIGEgbnVtYmVyIG9mIGRpZmZlcmVudAotIyBu
YW1lczsgdGhlIG9yZGVyaW5nIGlzIHZlcnkgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBzeXN0ZW1z
Ci0jIChlLmcuIERFQykgaGF2ZSBib3RoIC1scHRocmVhZCBhbmQgLWxwdGhyZWFkcywgd2hlcmUg
b25lIG9mIHRoZQotIyBsaWJyYXJpZXMgaXMgYnJva2VuIChub24tUE9TSVgpLgotCi0jIENyZWF0
ZSBhIGxpc3Qgb2YgdGhyZWFkIGZsYWdzIHRvIHRyeS4gIEl0ZW1zIHN0YXJ0aW5nIHdpdGggYSAi
LSIgYXJlCi0jIEMgY29tcGlsZXIgZmxhZ3MsIGFuZCBvdGhlciBpdGVtcyBhcmUgbGlicmFyeSBu
YW1lcywgZXhjZXB0IGZvciAibm9uZSIKLSMgd2hpY2ggaW5kaWNhdGVzIHRoYXQgd2UgdHJ5IHdp
dGhvdXQgYW55IGZsYWdzIGF0IGFsbCwgYW5kICJwdGhyZWFkLWNvbmZpZyIKLSMgd2hpY2ggaXMg
YSBwcm9ncmFtIHJldHVybmluZyB0aGUgZmxhZ3MgZm9yIHRoZSBQdGggZW11bGF0aW9uIGxpYnJh
cnkuCi0KLWFjeF9wdGhyZWFkX2ZsYWdzPSJwdGhyZWFkcyBub25lIC1LdGhyZWFkIC1rdGhyZWFk
IGx0aHJlYWQgLXB0aHJlYWQgLXB0aHJlYWRzIC1tdGhyZWFkcyBwdGhyZWFkIC0tdGhyZWFkLXNh
ZmUgLW10IHB0aHJlYWQtY29uZmlnIgotCi0jIFRoZSBvcmRlcmluZyAqaXMqIChzb21ldGltZXMp
IGltcG9ydGFudC4gIFNvbWUgbm90ZXMgb24gdGhlCi0jIGluZGl2aWR1YWwgaXRlbXMgZm9sbG93
OgotCi0jIHB0aHJlYWRzOiBBSVggKG11c3QgY2hlY2sgdGhpcyBiZWZvcmUgLWxwdGhyZWFkKQot
IyBub25lOiBpbiBjYXNlIHRocmVhZHMgYXJlIGluIGxpYmM7IHNob3VsZCBiZSB0cmllZCBiZWZv
cmUgLUt0aHJlYWQgYW5kCi0jICAgICAgIG90aGVyIGNvbXBpbGVyIGZsYWdzIHRvIHByZXZlbnQg
Y29udGludWFsIGNvbXBpbGVyIHdhcm5pbmdzCi0jIC1LdGhyZWFkOiBTZXF1ZW50ICh0aHJlYWRz
IGluIGxpYmMsIGJ1dCAtS3RocmVhZCBuZWVkZWQgZm9yIHB0aHJlYWQuaCkKLSMgLWt0aHJlYWQ6
IEZyZWVCU0Qga2VybmVsIHRocmVhZHMgKHByZWZlcnJlZCB0byAtcHRocmVhZCBzaW5jZSBTTVAt
YWJsZSkKLSMgbHRocmVhZDogTGludXhUaHJlYWRzIHBvcnQgb24gRnJlZUJTRCAoYWxzbyBwcmVm
ZXJyZWQgdG8gLXB0aHJlYWQpCi0jIC1wdGhyZWFkOiBMaW51eC9nY2MgKGtlcm5lbCB0aHJlYWRz
KSwgQlNEL2djYyAodXNlcmxhbmQgdGhyZWFkcykKLSMgLXB0aHJlYWRzOiBTb2xhcmlzL2djYwot
IyAtbXRocmVhZHM6IE1pbmd3MzIvZ2NjLCBMeW54L2djYwotIyAtbXQ6IFN1biBXb3Jrc2hvcCBD
IChtYXkgb25seSBsaW5rIFN1bk9TIHRocmVhZHMgWy1sdGhyZWFkXSwgYnV0IGl0Ci0jICAgICAg
ZG9lc24ndCBodXJ0IHRvIGNoZWNrIHNpbmNlIHRoaXMgc29tZXRpbWVzIGRlZmluZXMgcHRocmVh
ZHMgdG9vOwotIyAgICAgIGFsc28gZGVmaW5lcyAtRF9SRUVOVFJBTlQpCi0jICAgICAgLi4uIC1t
dCBpcyBhbHNvIHRoZSBwdGhyZWFkcyBmbGFnIGZvciBIUC9hQ0MKLSMgcHRocmVhZDogTGludXgs
IGV0Y2V0ZXJhCi0jIC0tdGhyZWFkLXNhZmU6IEtBSSBDKysKLSMgcHRocmVhZC1jb25maWc6IHVz
ZSBwdGhyZWFkLWNvbmZpZyBwcm9ncmFtIChmb3IgR05VIFB0aCBsaWJyYXJ5KQotCi1jYXNlICIk
e2hvc3RfY3B1fS0ke2hvc3Rfb3N9IiBpbgotICAgICAgICAqc29sYXJpcyopCi0KLSAgICAgICAg
IyBPbiBTb2xhcmlzIChhdCBsZWFzdCwgZm9yIHNvbWUgdmVyc2lvbnMpLCBsaWJjIGNvbnRhaW5z
IHN0dWJiZWQKLSAgICAgICAgIyAobm9uLWZ1bmN0aW9uYWwpIHZlcnNpb25zIG9mIHRoZSBwdGhy
ZWFkcyByb3V0aW5lcywgc28gbGluay1iYXNlZAotICAgICAgICAjIHRlc3RzIHdpbGwgZXJyb25l
b3VzbHkgc3VjY2VlZC4gIChXZSBuZWVkIHRvIGxpbmsgd2l0aCAtcHRocmVhZHMvLW10LwotICAg
ICAgICAjIC1scHRocmVhZC4pICAoVGhlIHN0dWJzIGFyZSBtaXNzaW5nIHB0aHJlYWRfY2xlYW51
cF9wdXNoLCBvciByYXRoZXIKLSAgICAgICAgIyBhIGZ1bmN0aW9uIGNhbGxlZCBieSB0aGlzIG1h
Y3JvLCBzbyB3ZSBjb3VsZCBjaGVjayBmb3IgdGhhdCwgYnV0Ci0gICAgICAgICMgd2hvIGtub3dz
IHdoZXRoZXIgdGhleSdsbCBzdHViIHRoYXQgdG9vIGluIGEgZnV0dXJlIGxpYmMuKSAgU28sCi0g
ICAgICAgICMgd2UnbGwganVzdCBsb29rIGZvciAtcHRocmVhZHMgYW5kIC1scHRocmVhZCBmaXJz
dDoKLQotICAgICAgICBhY3hfcHRocmVhZF9mbGFncz0iLXB0aHJlYWRzIHB0aHJlYWQgLW10IC1w
dGhyZWFkICRhY3hfcHRocmVhZF9mbGFncyIKLSAgICAgICAgOzsKLWVzYWMKLQotaWYgdGVzdCB4
IiRhY3hfcHRocmVhZF9vayIgPSB4bm87IHRoZW4KLWZvciBmbGFnIGluICRhY3hfcHRocmVhZF9m
bGFnczsgZG8KLQotICAgICAgICBjYXNlICRmbGFnIGluCi0gICAgICAgICAgICAgICAgbm9uZSkK
LSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgcHRocmVhZHMgd29yayB3
aXRob3V0IGFueSBmbGFnc10pCi0gICAgICAgICAgICAgICAgOzsKLQotICAgICAgICAgICAgICAg
IC0qKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciBwdGhyZWFkcyB3
b3JrIHdpdGggJGZsYWddKQotICAgICAgICAgICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIkZmxhZyIK
LSAgICAgICAgICAgICAgICA7OwotCi0JCXB0aHJlYWQtY29uZmlnKQotCQlBQ19DSEVDS19QUk9H
KGFjeF9wdGhyZWFkX2NvbmZpZywgcHRocmVhZC1jb25maWcsIHllcywgbm8pCi0JCWlmIHRlc3Qg
eCIkYWN4X3B0aHJlYWRfY29uZmlnIiA9IHhubzsgdGhlbiBjb250aW51ZTsgZmkKLQkJUFRIUkVB
RF9DRkxBR1M9ImBwdGhyZWFkLWNvbmZpZyAtLWNmbGFnc2AiCi0JCVBUSFJFQURfTElCUz0iYHB0
aHJlYWQtY29uZmlnIC0tbGRmbGFnc2AgYHB0aHJlYWQtY29uZmlnIC0tbGlic2AiCi0JCTs7Ci0K
LSAgICAgICAgICAgICAgICAqKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9y
IHRoZSBwdGhyZWFkcyBsaWJyYXJ5IC1sJGZsYWddKQotICAgICAgICAgICAgICAgIFBUSFJFQURf
TElCUz0iLWwkZmxhZyIKLSAgICAgICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0KLSAgICAg
ICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAg
ICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0gICAgICAgIENGTEFHUz0iJENGTEFHUyAk
UFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBDaGVjayBmb3IgdmFyaW91cyBmdW5jdGlvbnMu
ICBXZSBtdXN0IGluY2x1ZGUgcHRocmVhZC5oLAotICAgICAgICAjIHNpbmNlIHNvbWUgZnVuY3Rp
b25zIG1heSBiZSBtYWNyb3MuICAoT24gdGhlIFNlcXVlbnQsIHdlCi0gICAgICAgICMgbmVlZCBh
IHNwZWNpYWwgZmxhZyAtS3RocmVhZCB0byBtYWtlIHRoaXMgaGVhZGVyIGNvbXBpbGUuKQotICAg
ICAgICAjIFdlIGNoZWNrIGZvciBwdGhyZWFkX2pvaW4gYmVjYXVzZSBpdCBpcyBpbiAtbHB0aHJl
YWQgb24gSVJJWAotICAgICAgICAjIHdoaWxlIHB0aHJlYWRfY3JlYXRlIGlzIGluIGxpYmMuICBX
ZSBjaGVjayBmb3IgcHRocmVhZF9hdHRyX2luaXQKLSAgICAgICAgIyBkdWUgdG8gREVDIGNyYXpp
bmVzcyB3aXRoIC1scHRocmVhZHMuICBXZSBjaGVjayBmb3IKLSAgICAgICAgIyBwdGhyZWFkX2Ns
ZWFudXBfcHVzaCBiZWNhdXNlIGl0IGlzIG9uZSBvZiB0aGUgZmV3IHB0aHJlYWQKLSAgICAgICAg
IyBmdW5jdGlvbnMgb24gU29sYXJpcyB0aGF0IGRvZXNuJ3QgaGF2ZSBhIG5vbi1mdW5jdGlvbmFs
IGxpYmMgc3R1Yi4KLSAgICAgICAgIyBXZSB0cnkgcHRocmVhZF9jcmVhdGUgb24gZ2VuZXJhbCBw
cmluY2lwbGVzLgotICAgICAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAot
ICAgICAgICAgICAgICAgICAgICBbcHRocmVhZF90IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwot
ICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51
cF9wdXNoKDAsIDApOwotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9jcmVhdGUoMCwwLDAs
MCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0gICAgICAgICAgICAgICAgICAgIFthY3hf
cHRocmVhZF9vaz15ZXNdKQotCi0gICAgICAgIExJQlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENG
TEFHUz0iJHNhdmVfQ0ZMQUdTIgotCi0gICAgICAgIEFDX01TR19SRVNVTFQoJGFjeF9wdGhyZWFk
X29rKQotICAgICAgICBpZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZmkKLQotICAgICAgICBQVEhSRUFEX0xJQlM9
IiIKLSAgICAgICAgUFRIUkVBRF9DRkxBR1M9IiIKLWRvbmUKLWZpCi0KLSMgVmFyaW91cyBvdGhl
ciBjaGVja3M6Ci1pZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAgICAg
ICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgTElCUz0iJFBUSFJFQURfTElCUyAkTElCUyIK
LSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAgICAgIENGTEFHUz0iJENGTEFHUyAk
UFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBEZXRlY3QgQUlYIGxvc3NhZ2U6IEpPSU5BQkxF
IGF0dHJpYnV0ZSBpcyBjYWxsZWQgVU5ERVRBQ0hFRC4KLQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBq
b2luYWJsZSBwdGhyZWFkIGF0dHJpYnV0ZV0pCi0JYXR0cl9uYW1lPXVua25vd24KLQlmb3IgYXR0
ciBpbiBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBQVEhSRUFEX0NSRUFURV9VTkRFVEFDSEVEOyBk
bwotCSAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLCBbaW50IGF0dHI9JGF0
dHI7IHJldHVybiBhdHRyO10sCi0gICAgICAgICAgICAgICAgICAgICAgICBbYXR0cl9uYW1lPSRh
dHRyOyBicmVha10pCi0JZG9uZQotICAgICAgICBBQ19NU0dfUkVTVUxUKCRhdHRyX25hbWUpCi0g
ICAgICAgIGlmIHRlc3QgIiRhdHRyX25hbWUiICE9IFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFOyB0
aGVuCi0gICAgICAgICAgICBBQ19ERUZJTkVfVU5RVU9URUQoUFRIUkVBRF9DUkVBVEVfSk9JTkFC
TEUsICRhdHRyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmluZSB0
byBuZWNlc3Nhcnkgc3ltYm9sIGlmIHRoaXMgY29uc3RhbnQKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlcyBhIG5vbi1zdGFuZGFyZCBuYW1lIG9uIHlvdXIgc3lzdGVtLl0pCi0g
ICAgICAgIGZpCi0KLSAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBtb3JlIHNwZWNpYWwgZmxh
Z3MgYXJlIHJlcXVpcmVkIGZvciBwdGhyZWFkc10pCi0gICAgICAgIGZsYWc9bm8KLSAgICAgICAg
Y2FzZSAiJHtob3N0X2NwdX0tJHtob3N0X29zfSIgaW4KLSAgICAgICAgICAgICotYWl4KiB8ICot
ZnJlZWJzZCogfCAqLWRhcndpbiopIGZsYWc9Ii1EX1RIUkVBRF9TQUZFIjs7Ci0gICAgICAgICAg
ICAqc29sYXJpcyogfCAqLW9zZiogfCAqLWhwdXgqKSBmbGFnPSItRF9SRUVOVFJBTlQiOzsKLSAg
ICAgICAgZXNhYwotICAgICAgICBBQ19NU0dfUkVTVUxUKCR7ZmxhZ30pCi0gICAgICAgIGlmIHRl
c3QgIngkZmxhZyIgIT0geG5vOyB0aGVuCi0gICAgICAgICAgICBQVEhSRUFEX0NGTEFHUz0iJGZs
YWcgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBmaQotCi0gICAgICAgIExJQlM9IiRzYXZlX0xJ
QlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotICAgICAgICAjIE1vcmUgQUlYIGxv
c3NhZ2U6IG11c3QgY29tcGlsZSB3aXRoIHhsY19yIG9yIGNjX3IKLQlpZiB0ZXN0IHgiJEdDQyIg
IT0geHllczsgdGhlbgotICAgICAgICAgIEFDX0NIRUNLX1BST0dTKFBUSFJFQURfQ0MsIHhsY19y
IGNjX3IsICR7Q0N9KQotICAgICAgICBlbHNlCi0gICAgICAgICAgUFRIUkVBRF9DQz0kQ0MKLQlm
aQotCi0JIyBUaGUgbmV4dCBwYXJ0IHRyaWVzIHRvIGRldGVjdCBHQ0MgaW5jb25zaXN0ZW5jeSB3
aXRoIC1zaGFyZWQgb24gc29tZQotCSMgYXJjaGl0ZWN0dXJlcyBhbmQgc3lzdGVtcy4gVGhlIHBy
b2JsZW0gaXMgdGhhdCBpbiBjZXJ0YWluCi0JIyBjb25maWd1cmF0aW9ucywgd2hlbiAtc2hhcmVk
IGlzIHNwZWNpZmllZCwgR0NDICJmb3JnZXRzIiB0bwotCSMgaW50ZXJuYWxseSB1c2UgdmFyaW91
cyBmbGFncyB3aGljaCBhcmUgc3RpbGwgbmVjZXNzYXJ5LgotCQotCSMKLQkjIFByZXBhcmUgdGhl
IGZsYWdzCi0JIwotCXNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotCXNhdmVfTElCUz0iJExJQlMiCi0J
c2F2ZV9DQz0iJENDIgotCQotCSMgVHJ5IHdpdGggdGhlIGZsYWdzIGRldGVybWluZWQgYnkgdGhl
IGVhcmxpZXIgY2hlY2tzLgotCSMKLQkjIC1XbCwteixkZWZzIGZvcmNlcyBsaW5rLXRpbWUgc3lt
Ym9sIHJlc29sdXRpb24sIHNvIHRoYXQgdGhlCi0JIyBsaW5raW5nIGNoZWNrcyB3aXRoIC1zaGFy
ZWQgYWN0dWFsbHkgaGF2ZSBhbnkgdmFsdWUKLQkjCi0JIyBGSVhNRTogLWZQSUMgaXMgcmVxdWly
ZWQgZm9yIC1zaGFyZWQgb24gbWFueSBhcmNoaXRlY3R1cmVzLAotCSMgc28gd2Ugc3BlY2lmeSBp
dCBoZXJlLCBidXQgdGhlIHJpZ2h0IHdheSB3b3VsZCBwcm9iYWJseSBiZSB0bwotCSMgcHJvcGVy
bHkgZGV0ZWN0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkgcmVxdWlyZWQuCi0JQ0ZMQUdTPSItc2hh
cmVkIC1mUElDIC1XbCwteixkZWZzICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTIgotCUxJQlM9IiRQ
VEhSRUFEX0xJQlMgJExJQlMiCi0JQ0M9IiRQVEhSRUFEX0NDIgotCQotCSMgSW4gb3JkZXIgbm90
IHRvIGNyZWF0ZSBzZXZlcmFsIGxldmVscyBvZiBpbmRlbnRhdGlvbiwgd2UgdGVzdAotCSMgdGhl
IHZhbHVlIG9mICIkZG9uZSIgdW50aWwgd2UgZmluZCB0aGUgY3VyZSBvciBydW4gb3V0IG9mIGlk
ZWFzLgotCWRvbmU9Im5vIgotCQotCSMgRmlyc3QsIG1ha2Ugc3VyZSB0aGUgQ0ZMQUdTIHdlIGFk
ZGVkIGFyZSBhY3R1YWxseSBhY2NlcHRlZCBieSBvdXIKLQkjIGNvbXBpbGVyLiAgSWYgbm90IChh
bmQgT1MgWCdzIGxkLCBmb3IgaW5zdGFuY2UsIGRvZXMgbm90IGFjY2VwdCAteiksCi0JIyB0aGVu
IHdlIGNhbid0IGRvIHRoaXMgdGVzdC4KLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0J
ICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGNoZWNrIGZvciBHQ0MgcHRocmVhZC9zaGFy
ZWQgaW5jb25zaXN0ZW5jaWVzXSkKLQkgICBBQ19UUllfTElOSygsLCAsIFtkb25lPXllc10pCi0J
Ci0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXMgOyB0aGVuCi0JICAgICAgQUNfTVNHX1JFU1VM
VChbbm9dKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgIGZpCi0J
ZmkKLQkKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5H
KFt3aGV0aGVyIC1wdGhyZWFkIGlzIHN1ZmZpY2llbnQgd2l0aCAtc2hhcmVkXSkKLQkgICBBQ19U
UllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0
aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRf
Y2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAsMCwwLDApOyBwdGhy
ZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0JICAgCi0JICAgaWYg
dGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQot
CSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0JICAgZmkKLQlmaQotCQotCSMK
LQkjIExpbnV4IGdjYyBvbiBzb21lIGFyY2hpdGVjdHVyZXMgc3VjaCBhcyBtaXBzL21pcHNlbCBm
b3JnZXRzCi0JIyBhYm91dCAtbHB0aHJlYWQKLQkjCi0JaWYgdGVzdCB4IiRkb25lIiA9IHhubzsg
dGhlbgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbHB0aHJlYWQgZml4ZXMgdGhhdF0p
Ci0JICAgTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMgJHNhdmVfTElCUyIKLQkgICBBQ19U
UllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0
aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRf
Y2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJlYWRfY3JlYXRlKDAsMCwwLDApOyBwdGhy
ZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtkb25lPXllc10pCi0JCi0JICAgaWYgdGVz
dCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAg
ICAgIFBUSFJFQURfTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJQlMiCi0JICAgZWxzZQotCSAg
ICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQotCWZpCi0JIwotCSMgRnJlZUJTRCA0LjEw
IGdjYyBmb3JnZXRzIHRvIHVzZSAtbGNfciBpbnN0ZWFkIG9mIC1sYwotCSMKLQlpZiB0ZXN0IHgi
JGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1sY19yIGZp
eGVzIHRoYXRdKQotCSAgIExJQlM9Ii1sY19yICRQVEhSRUFEX0xJQlMgJHNhdmVfTElCUyIKLQkg
ICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotCSAgICAgICBbcHRocmVhZF90
IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoMCk7
IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgICAgcHRocmVhZF9jcmVhdGUoMCww
LDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0JICAgICAgIFtkb25lPXllc10pCi0J
Ci0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBBQ19NU0dfUkVTVUxU
KFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxjX3IgJFBUSFJFQURfTElCUyIKLQkgICBl
bHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGZpCi0JZmkKLQlpZiB0ZXN0IHgi
JGRvbmUiID0geG5vOyB0aGVuCi0JICAgIyBPSywgd2UgaGF2ZSBydW4gb3V0IG9mIGlkZWFzCi0J
ICAgQUNfTVNHX1dBUk4oW0ltcG9zc2libGUgdG8gZGV0ZXJtaW5lIGhvdyB0byB1c2UgcHRocmVh
ZHMgd2l0aCBzaGFyZWQgbGlicmFyaWVzXSkKLQkKLQkgICAjIHNvIGl0J3Mgbm90IHNhZmUgdG8g
YXNzdW1lIHRoYXQgd2UgbWF5IHVzZSBwdGhyZWFkcwotCSAgIGFjeF9wdGhyZWFkX29rPW5vCi0J
ZmkKLQkKLQlDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLQlMSUJTPSIkc2F2ZV9MSUJTIgotCUNDPSIk
c2F2ZV9DQyIKLWVsc2UKLSAgICAgICAgUFRIUkVBRF9DQz0iJENDIgotZmkKLQotQUNfU1VCU1Qo
UFRIUkVBRF9MSUJTKQotQUNfU1VCU1QoUFRIUkVBRF9DRkxBR1MpCi1BQ19TVUJTVChQVEhSRUFE
X0NDKQotCi0jIEZpbmFsbHksIGV4ZWN1dGUgQUNUSU9OLUlGLUZPVU5EL0FDVElPTi1JRi1OT1Qt
Rk9VTkQ6Ci1pZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAgICAgICAg
aWZlbHNlKFskMV0sLEFDX0RFRklORShIQVZFX1BUSFJFQUQsMSxbRGVmaW5lIGlmIHlvdSBoYXZl
IFBPU0lYIHRocmVhZHMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMuXSksWyQxXSkKLSAgICAg
ICAgOgotZWxzZQotICAgICAgICBhY3hfcHRocmVhZF9vaz1ubwotICAgICAgICAkMgotZmkKLUFD
X0xBTkdfUkVTVE9SRQotXSlkbmwgQUNYX1BUSFJFQUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L200L2d0ZXN0Lm00IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rl
c3QubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OThiYTc1YTRkN2YyYzQ4NjYz
MmM2ZGRkYzBkZTUxNzhkMjkwZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rlc3QubTQKKysrIC9kZXYv
bnVsbApAQCAtMSw3NCArMCwwIEBACi1kbmwgR1RFU1RfTElCX0NIRUNLKFttaW5pbXVtIHZlcnNp
b24gWywKLWRubCAgICAgICAgICAgICAgICAgIGFjdGlvbiBpZiBmb3VuZCBbLGFjdGlvbiBpZiBu
b3QgZm91bmRdXV0pCi1kbmwKLWRubCBDaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBHb29n
bGUgVGVzdCBsaWJyYXJ5LCBvcHRpb25hbGx5IGF0IGEgbWluaW11bQotZG5sIHZlcnNpb24sIGFu
ZCBpbmRpY2F0ZSBhIHZpYWJsZSB2ZXJzaW9uIHdpdGggdGhlIEhBVkVfR1RFU1QgZmxhZy4gSXQg
ZGVmaW5lcwotZG5sIHN0YW5kYXJkIHZhcmlhYmxlcyBmb3Igc3Vic3RpdHV0aW9uIGluY2x1ZGlu
ZyBHVEVTVF9DUFBGTEFHUywKLWRubCBHVEVTVF9DWFhGTEFHUywgR1RFU1RfTERGTEFHUywgYW5k
IEdURVNUX0xJQlMuIEl0IGFsc28gZGVmaW5lcwotZG5sIEdURVNUX1ZFUlNJT04gYXMgdGhlIHZl
cnNpb24gb2YgR29vZ2xlIFRlc3QgZm91bmQuIEZpbmFsbHksIGl0IHByb3ZpZGVzCi1kbmwgb3B0
aW9uYWwgY3VzdG9tIGFjdGlvbiBzbG90cyBpbiB0aGUgZXZlbnQgR1RFU1QgaXMgZm91bmQgb3Ig
bm90LgotQUNfREVGVU4oW0dURVNUX0xJQl9DSEVDS10sCi1bCi1kbmwgUHJvdmlkZSBhIGZsYWcg
dG8gZW5hYmxlIG9yIGRpc2FibGUgR29vZ2xlIFRlc3QgdXNhZ2UuCi1BQ19BUkdfRU5BQkxFKFtn
dGVzdF0sCi0gIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZ3Rlc3RdLAotICAgICAgICAgICAg
ICAgICAgW0VuYWJsZSB0ZXN0cyB1c2luZyB0aGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29y
ay4KLSAgICAgICAgICAgICAgICAgIChEZWZhdWx0IGlzIGVuYWJsZWQuKV0pXSwKLSAgW10sCi0g
IFtlbmFibGVfZ3Rlc3Q9XSkKLUFDX0FSR19WQVIoW0dURVNUX0NPTkZJR10sCi0gICAgICAgICAg
IFtUaGUgZXhhY3QgcGF0aCBvZiBHb29nbGUgVGVzdCdzICdndGVzdC1jb25maWcnIHNjcmlwdC5d
KQotQUNfQVJHX1ZBUihbR1RFU1RfQ1BQRkxBR1NdLAotICAgICAgICAgICBbQy1saWtlIHByZXBy
b2Nlc3NvciBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkKLUFDX0FSR19WQVIoW0dURVNUX0NYWEZM
QUdTXSwKLSAgICAgICAgICAgW0MrKyBjb21waWxlIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQot
QUNfQVJHX1ZBUihbR1RFU1RfTERGTEFHU10sCi0gICAgICAgICAgIFtMaW5rZXIgcGF0aCBhbmQg
b3B0aW9uIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfTElCU10s
Ci0gICAgICAgICAgIFtMaWJyYXJ5IGxpbmtpbmcgZmxhZ3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1B
Q19BUkdfVkFSKFtHVEVTVF9WRVJTSU9OXSwKLSAgICAgICAgICAgW1RoZSB2ZXJzaW9uIG9mIEdv
b2dsZSBUZXN0IGF2YWlsYWJsZS5dKQotSEFWRV9HVEVTVD0ibm8iCi1BU19JRihbdGVzdCAieCR7
ZW5hYmxlX2d0ZXN0fSIgIT0gInhubyJdLAotICBbQUNfTVNHX0NIRUNLSU5HKFtmb3IgJ2d0ZXN0
LWNvbmZpZyddKQotICAgQVNfSUYoW3Rlc3QgIngke2VuYWJsZV9ndGVzdH0iICE9ICJ4eWVzIl0s
Ci0gICAgIFtBU19JRihbdGVzdCAteCAiJHtlbmFibGVfZ3Rlc3R9L3NjcmlwdHMvZ3Rlc3QtY29u
ZmlnIl0sCi0gICAgICAgIFtHVEVTVF9DT05GSUc9IiR7ZW5hYmxlX2d0ZXN0fS9zY3JpcHRzL2d0
ZXN0LWNvbmZpZyJdLAotICAgICAgICBbR1RFU1RfQ09ORklHPSIke2VuYWJsZV9ndGVzdH0vYmlu
L2d0ZXN0LWNvbmZpZyJdKQotICAgICAgQVNfSUYoW3Rlc3QgLXggIiR7R1RFU1RfQ09ORklHfSJd
LCBbXSwKLSAgICAgICAgW0FDX01TR19SRVNVTFQoW25vXSkKLSAgICAgICAgIEFDX01TR19FUlJP
UihbZG5sCi1VbmFibGUgdG8gbG9jYXRlIGVpdGhlciBhIGJ1aWx0IG9yIGluc3RhbGxlZCBHb29n
bGUgVGVzdC4KLVRoZSBzcGVjaWZpYyBsb2NhdGlvbiAnJHtlbmFibGVfZ3Rlc3R9JyB3YXMgcHJv
dmlkZWQgZm9yIGEgYnVpbHQgb3IgaW5zdGFsbGVkCi1Hb29nbGUgVGVzdCwgYnV0IG5vICdndGVz
dC1jb25maWcnIHNjcmlwdCBjb3VsZCBiZSBmb3VuZCBhdCB0aGlzIGxvY2F0aW9uLl0pCi0gICAg
ICAgICBdKV0sCi0gICAgIFtBQ19QQVRIX1BST0coW0dURVNUX0NPTkZJR10sIFtndGVzdC1jb25m
aWddKV0pCi0gICBBU19JRihbdGVzdCAteCAiJHtHVEVTVF9DT05GSUd9Il0sCi0gICAgIFtBQ19N
U0dfUkVTVUxUKFske0dURVNUX0NPTkZJR31dKQotICAgICAgbTRfaWZ2YWwoWyQxXSwKLSAgICAg
ICAgW19ndGVzdF9taW5fdmVyc2lvbj0iLS1taW4tdmVyc2lvbj0kMSIKLSAgICAgICAgIEFDX01T
R19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0IGF0IGxlYXN0IHZlcnNpb24gPj0gJDFdKV0sCi0g
ICAgICAgIFtfZ3Rlc3RfbWluX3ZlcnNpb249Ii0tbWluLXZlcnNpb249MCIKLSAgICAgICAgIEFD
X01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0XSldKQotICAgICAgQVNfSUYoWyR7R1RFU1Rf
Q09ORklHfSAke19ndGVzdF9taW5fdmVyc2lvbn1dLAotICAgICAgICBbQUNfTVNHX1JFU1VMVChb
eWVzXSkKLSAgICAgICAgIEhBVkVfR1RFU1Q9J3llcyddLAotICAgICAgICBbQUNfTVNHX1JFU1VM
VChbbm9dKV0pXSwKLSAgICAgW0FDX01TR19SRVNVTFQoW25vXSldKQotICAgQVNfSUYoW3Rlc3Qg
Ingke0hBVkVfR1RFU1R9IiA9ICJ4eWVzIl0sCi0gICAgIFtHVEVTVF9DUFBGTEFHUz1gJHtHVEVT
VF9DT05GSUd9IC0tY3BwZmxhZ3NgCi0gICAgICBHVEVTVF9DWFhGTEFHUz1gJHtHVEVTVF9DT05G
SUd9IC0tY3h4ZmxhZ3NgCi0gICAgICBHVEVTVF9MREZMQUdTPWAke0dURVNUX0NPTkZJR30gLS1s
ZGZsYWdzYAotICAgICAgR1RFU1RfTElCUz1gJHtHVEVTVF9DT05GSUd9IC0tbGlic2AKLSAgICAg
IEdURVNUX1ZFUlNJT049YCR7R1RFU1RfQ09ORklHfSAtLXZlcnNpb25gCi0gICAgICBBQ19ERUZJ
TkUoW0hBVkVfR1RFU1RdLFsxXSxbRGVmaW5lZCB3aGVuIEdvb2dsZSBUZXN0IGlzIGF2YWlsYWJs
ZS5dKV0sCi0gICAgIFtBU19JRihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIgPSAieHllcyJdLAot
ICAgICAgICBbQUNfTVNHX0VSUk9SKFtkbmwKLUdvb2dsZSBUZXN0IHdhcyBlbmFibGVkLCBidXQg
bm8gdmlhYmxlIHZlcnNpb24gY291bGQgYmUgZm91bmQuXSkKLSAgICAgICAgIF0pXSldKQotQUNf
U1VCU1QoW0hBVkVfR1RFU1RdKQotQU1fQ09ORElUSU9OQUwoW0hBVkVfR1RFU1RdLFt0ZXN0ICJ4
JEhBVkVfR1RFU1QiID0gInh5ZXMiXSkKLUFTX0lGKFt0ZXN0ICJ4JEhBVkVfR1RFU1QiID0gInh5
ZXMiXSwKLSAgW200X2lmdmFsKFskMl0sIFskMl0pXSwKLSAgW200X2lmdmFsKFskM10sIFskM10p
XSkKLV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxl
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWFjNzQ0OTNiYTU1MjQ2NTk3ZTkwYjg5OGZhZTg0N2FlMzU4ZWFiNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBA
QAotIyBBIHNhbXBsZSBNYWtlZmlsZSBmb3IgYnVpbGRpbmcgR29vZ2xlIFRlc3QgYW5kIHVzaW5n
IGl0IGluIHVzZXIKLSMgdGVzdHMuICBQbGVhc2UgdHdlYWsgaXQgdG8gc3VpdCB5b3VyIGVudmly
b25tZW50IGFuZCBwcm9qZWN0LiAgWW91Ci0jIG1heSB3YW50IHRvIG1vdmUgaXQgdG8geW91ciBw
cm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuCi0jCi0jIFNZTk9QU0lTOgotIwotIyAgIG1ha2UgW2Fs
bF0gIC0gbWFrZXMgZXZlcnl0aGluZy4KLSMgICBtYWtlIFRBUkdFVCAtIG1ha2VzIHRoZSBnaXZl
biB0YXJnZXQuCi0jICAgbWFrZSBjbGVhbiAgLSByZW1vdmVzIGFsbCBmaWxlcyBnZW5lcmF0ZWQg
YnkgbWFrZS4KLQotIyBQbGVhc2UgdHdlYWsgdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBkZWZpbml0
aW9ucyBhcyBuZWVkZWQgYnkgeW91cgotIyBwcm9qZWN0LCBleGNlcHQgR1RFU1RfSEVBREVSUywg
d2hpY2ggeW91IGNhbiB1c2UgaW4geW91ciBvd24gdGFyZ2V0cwotIyBidXQgc2hvdWxkbid0IG1v
ZGlmeS4KLQotIyBQb2ludHMgdG8gdGhlIHJvb3Qgb2YgR29vZ2xlIFRlc3QsIHJlbGF0aXZlIHRv
IHdoZXJlIHRoaXMgZmlsZSBpcy4KLSMgUmVtZW1iZXIgdG8gdHdlYWsgdGhpcyBpZiB5b3UgbW92
ZSB0aGlzIGZpbGUuCi1HVEVTVF9ESVIgPSAuLgotCi0jIFdoZXJlIHRvIGZpbmQgdXNlciBjb2Rl
LgotVVNFUl9ESVIgPSAuLi9zYW1wbGVzCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBwcmVwcm9j
ZXNzb3IuCi0jIFNldCBHb29nbGUgVGVzdCdzIGhlYWRlciBkaXJlY3RvcnkgYXMgYSBzeXN0ZW0g
ZGlyZWN0b3J5LCBzdWNoIHRoYXQKLSMgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZ2VuZXJhdGUgd2Fy
bmluZ3MgaW4gR29vZ2xlIFRlc3QgaGVhZGVycy4KLUNQUEZMQUdTICs9IC1pc3lzdGVtICQoR1RF
U1RfRElSKS9pbmNsdWRlCi0KLSMgRmxhZ3MgcGFzc2VkIHRvIHRoZSBDKysgY29tcGlsZXIuCi1D
WFhGTEFHUyArPSAtZyAtV2FsbCAtV2V4dHJhIC1wdGhyZWFkCi0KLSMgQWxsIHRlc3RzIHByb2R1
Y2VkIGJ5IHRoaXMgTWFrZWZpbGUuICBSZW1lbWJlciB0byBhZGQgbmV3IHRlc3RzIHlvdQotIyBj
cmVhdGVkIHRvIHRoZSBsaXN0LgotVEVTVFMgPSBzYW1wbGUxX3VuaXR0ZXN0Ci0KLSMgQWxsIEdv
b2dsZSBUZXN0IGhlYWRlcnMuICBVc3VhbGx5IHlvdSBzaG91bGRuJ3QgY2hhbmdlIHRoaXMKLSMg
ZGVmaW5pdGlvbi4KLUdURVNUX0hFQURFUlMgPSAkKEdURVNUX0RJUikvaW5jbHVkZS9ndGVzdC8q
LmggXAotICAgICAgICAgICAgICAgICQoR1RFU1RfRElSKS9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
LyouaAotCi0jIEhvdXNlLWtlZXBpbmcgYnVpbGQgdGFyZ2V0cy4KLQotYWxsIDogJChURVNUUykK
LQotY2xlYW4gOgotCXJtIC1mICQoVEVTVFMpIGd0ZXN0LmEgZ3Rlc3RfbWFpbi5hICoubwotCi0j
IEJ1aWxkcyBndGVzdC5hIGFuZCBndGVzdF9tYWluLmEuCi0KLSMgVXN1YWxseSB5b3Ugc2hvdWxk
bid0IHR3ZWFrIHN1Y2ggaW50ZXJuYWwgdmFyaWFibGVzLCBpbmRpY2F0ZWQgYnkgYQotIyB0cmFp
bGluZyBfLgotR1RFU1RfU1JDU18gPSAkKEdURVNUX0RJUikvc3JjLyouY2MgJChHVEVTVF9ESVIp
L3NyYy8qLmggJChHVEVTVF9IRUFERVJTKQotCi0jIEZvciBzaW1wbGljaXR5IGFuZCB0byBhdm9p
ZCBkZXBlbmRpbmcgb24gR29vZ2xlIFRlc3QncwotIyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCB0
aGUgZGVwZW5kZW5jaWVzIHNwZWNpZmllZCBiZWxvdyBhcmUKLSMgY29uc2VydmF0aXZlIGFuZCBu
b3Qgb3B0aW1pemVkLiAgVGhpcyBpcyBmaW5lIGFzIEdvb2dsZSBUZXN0Ci0jIGNvbXBpbGVzIGZh
c3QgYW5kIGZvciBvcmRpbmFyeSB1c2VycyBpdHMgc291cmNlIHJhcmVseSBjaGFuZ2VzLgotZ3Rl
c3QtYWxsLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZMQUdTKSAtSSQoR1RFU1Rf
RElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAgICAkKEdURVNUX0RJUikvc3JjL2d0ZXN0
LWFsbC5jYwotCi1ndGVzdF9tYWluLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZM
QUdTKSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAgICAkKEdURVNU
X0RJUikvc3JjL2d0ZXN0X21haW4uY2MKLQotZ3Rlc3QuYSA6IGd0ZXN0LWFsbC5vCi0JJChBUikg
JChBUkZMQUdTKSAkQCAkXgotCi1ndGVzdF9tYWluLmEgOiBndGVzdC1hbGwubyBndGVzdF9tYWlu
Lm8KLQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLSMgQnVpbGRzIGEgc2FtcGxlIHRlc3QuICBB
IHRlc3Qgc2hvdWxkIGxpbmsgd2l0aCBlaXRoZXIgZ3Rlc3QuYSBvcgotIyBndGVzdF9tYWluLmEs
IGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGRlZmluZXMgaXRzIG93biBtYWluKCkKLSMgZnVuY3Rp
b24uCi0KLXNhbXBsZTEubyA6ICQoVVNFUl9ESVIpL3NhbXBsZTEuY2MgJChVU0VSX0RJUikvc2Ft
cGxlMS5oICQoR1RFU1RfSEVBREVSUykKLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykg
LWMgJChVU0VSX0RJUikvc2FtcGxlMS5jYwotCi1zYW1wbGUxX3VuaXR0ZXN0Lm8gOiAkKFVTRVJf
RElSKS9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgICAgICAgICAgICAgICAgICAgICQoVVNFUl9E
SVIpL3NhbXBsZTEuaCAkKEdURVNUX0hFQURFUlMpCi0JJChDWFgpICQoQ1BQRkxBR1MpICQoQ1hY
RkxBR1MpIC1jICQoVVNFUl9ESVIpL3NhbXBsZTFfdW5pdHRlc3QuY2MKLQotc2FtcGxlMV91bml0
dGVzdCA6IHNhbXBsZTEubyBzYW1wbGUxX3VuaXR0ZXN0Lm8gZ3Rlc3RfbWFpbi5hCi0JJChDWFgp
ICQoQ1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1scHRocmVhZCAkXiAtbyAkQApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC5zbG4KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUzNmIzM2I2MjE1YzM3NGFmYzExNmI1MjA4NGIxNmY0MTQ4ODA0N2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbgorKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBW
ZXJzaW9uIDExLjAwCi0jIFZpc3VhbCBDKysgRXhwcmVzcyAyMDEwCi1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0LW1kIiwgImd0ZXN0LW1k
LnZjeHByb2oiLCAie0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH0iCi1FbmRQ
cm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gImd0ZXN0X21haW4tbWQiLCAiZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qIiwgInszQUY1NEM4QS0x
MEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzN9IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF9wcm9kX3Rlc3QtbWQi
LCAiZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oiLCAiezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQw
LThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X3VuaXR0ZXN0LW1kIiwgImd0ZXN0X3VuaXR0
ZXN0LW1kLnZjeHByb2oiLCAiezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMn0i
Ci1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlv
blBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyCi0J
CURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNlfFdpbjMyID0gUmVsZWFzZXxXaW4zMgot
CQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlvbgotCUdsb2JhbFNl
Y3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCi0JCXtD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9
LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2
LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXtD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfHg2NC5CdWlsZC4wID0g
RGVidWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2
LUI1RkEtQzNCNDIzQjMxQkU4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVhc2V8eDY0LkFj
dGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNC
MzFCRTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBC
Ri00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzM30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7M0FGNTRDOEEtMTBC
Ri00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAot
CQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7M0FGNTRD
OEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBS
ZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxl
YXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezI0
ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQnVpbGQuMCA9
IERlYnVnfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LkRl
YnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUx
LUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBS
ZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJl
bGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdF
OC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQK
LQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQuQnVp
bGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZB
LTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5EZWJ1Z3x4NjQuQWN0
aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTJ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzkt
ODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVF
MEVENDgxQTJ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZC
NS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxl
YXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVy
dGllcykgPSBwcmVTb2x1dGlvbgotCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKLQlFbmRHbG9i
YWxTZWN0aW9uCi1FbmRHbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2
Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
YTZmZjEyZjdiNTc5MDE1YWJiMTQxNTgwZTJmMmQ0ZmRhNmY5YzMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2
Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAot
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1
bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1h
cy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExh
YmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmln
dXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0
Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8
eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
ICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldp
bjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlv
bj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+
Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0
eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+e0M4RjZDMTcyLTU2RjIt
NEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMy
UHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBl
PlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVs
dGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9y
bVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJD
b25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNl
dD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAg
IDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAg
ICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRv
b2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5T
dGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRp
Qnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4
dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExh
YmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3Rz
KCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIg
TGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1w
b3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIk
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRp
dGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdy
b3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgot
ICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRm
b3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0
Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJN
YWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEw
LjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9u
RGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGly
PgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxP
dXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25m
aWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAg
PE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZp
Z3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlc
PC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIp
JChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0g
ICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0
TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJn
ZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAg
ICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9u
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1l
TGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAg
PERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVk
ZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4K
LSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVC
VUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJh
cnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1h
dD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5c
Li47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRp
b25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7
X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25H
cm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xn
dGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4u
XGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5c
aW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4u
Oy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+
Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qLmZp
bHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRlZmYyMzA2ZTFmYWM5M2U3
N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZj
eHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMi
PgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJE
NzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7
ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4K
LSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRp
Zmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRp
Zmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5z
aW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4KLSAgICAgIDxGaWx0
ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3Vw
PgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjYWNkNWMwY2U2YjkzMjg2YmE1MjcwZjgzMTFmN2Q2NDkyMWUwMmU2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4KKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1N
aWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4w
MAotIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFE
MC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdCIsICJndGVzdC52Y3hwcm9qIiwgIntDOEY2
QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9IgotRW5kUHJvamVjdAotUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF9tYWluIiwg
Imd0ZXN0X21haW4udmN4cHJvaiIsICJ7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYy
MDMyfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEw
QzkxQkM5NDJ9IikgPSAiZ3Rlc3RfdW5pdHRlc3QiLCAiZ3Rlc3RfdW5pdHRlc3QudmN4cHJvaiIs
ICJ7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfSIKLUVuZFByb2plY3QKLVBy
b2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3Rf
cHJvZF90ZXN0IiwgImd0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qIiwgInsyNDg0ODU1MS1FRjRGLTQ3
RTgtOUE5RC1FQTRENDlCQzNFQ0F9IgotRW5kUHJvamVjdAotR2xvYmFsCi0JR2xvYmFsU2VjdGlv
bihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KLQkJRGVidWd8
V2luMzIgPSBEZWJ1Z3xXaW4zMgotCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQKLQkJUmVsZWFzZXxX
aW4zMiA9IFJlbGVhc2V8V2luMzIKLQkJUmVsZWFzZXx4NjQgPSBSZWxlYXNlfHg2NAotCUVuZEds
b2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1z
KSA9IHBvc3RTb2x1dGlvbgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3
fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00
RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIK
LQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uRGVidWd8eDY0LkFjdGl2
ZUNmZyA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3
fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1
RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIK
LQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uUmVsZWFzZXxXaW4zMi5C
dWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIz
QjMxQkU3fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7QzhGNkMxNzIt
NTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFz
ZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2
OEVEOTg2MjAzMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXszQUY1NEM4
QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1
Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8eDY0
LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2
MjAzMn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXszQUY1NEM4
QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJl
bGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVs
ZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05
MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0
RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9
LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5
LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0
RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfHg2NC5CdWlsZC4wID0g
RGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5
LTgyM0MtRjRFRTBFRDQ4MUExfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJlbGVhc2V8eDY0LkFj
dGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVE
NDgxQTF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0
Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0
OUJDM0VDQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7MjQ4NDg1NTEtRUY0
Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAot
CQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0
OUJDM0VDQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7MjQ4NDg1
NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBS
ZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxl
YXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQlFbmRHbG9iYWxTZWN0aW9uCi0JR2xvYmFs
U2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24KLQkJSGlkZVNvbHV0aW9u
Tm9kZSA9IEZBTFNFCi0JRW5kR2xvYmFsU2VjdGlvbgotRW5kR2xvYmFsCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QudmN4cHJvaiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNDZmNWM3YWYyNDUzOGQzOThjMzYyNmM4ZWNjZTkxNDhjOTZmMDFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ5ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08
UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAg
PEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENv
bmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+
RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgot
ICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2lu
MzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54
NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPntD
OEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9PC9Qcm9qZWN0R3VpZD4KLSAgICA8
S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIg
Lz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25m
aWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRp
Y0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRl
PC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xz
ZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1
cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJh
dGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAg
ICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdy
b3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmln
dXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYx
MDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0i
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25k
aXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRH
cm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3Bl
cnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9j
YWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RG
aWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERp
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0
aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUp
XDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlc
JChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQo
T3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gIDwvUHJvcGVydHlHcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5h
bWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4k
KE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0
ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0k
KENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFBy
b2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+
Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3Jv
dXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9w
dGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxS
ZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5F
bmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJh
cnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVs
PkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRp
dEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21w
aWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZB
UklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZh
c3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0
YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRp
b25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVs
dGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dh
cm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFz
ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJl
YWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFy
Z2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRl
ZmYyMzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29s
c1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxv
cGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJT
b3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3
Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9u
cz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAg
ICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8
VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwv
VW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5j
O3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVt
R3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4K
LSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
IDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLW1k
LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1t
ZC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDc3Mzg5NWI3MDIzZGU4
NDc0MGQ2MmJiYTYzZWM5MDBmNzRjOTI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9t
YWluLW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9q
ZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJE
ZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4K
LSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0
Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3
LUY2OEVEOTg2MjAzM308L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5
d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRz
UGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xp
YnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+
Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0
aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlv
blR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8
UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1
cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFj
dGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEw
MDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIg
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJy
YXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNl
dHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9w
ZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9Ikxv
Y2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTku
MTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9u
KVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4k
KFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24p
XDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+
Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbmQ8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNv
bHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8
SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1l
Pmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW5kPC9UYXJnZXROYW1lPgotICA8L1By
b3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0
X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9u
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9P
cHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklB
RElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJl
YnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2lj
UnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdE
TEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgot
ICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAg
ICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJV
RztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50
aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwv
SXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9S
dW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgot
ICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9J
dGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFY
PTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVt
RGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVt
R3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rl
c3QtbWQudmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57YzhmNmMxNzItNTZmMi00ZTc2LWI1ZmEt
YzNiNDIzYjMxYmU4fTwvUHJvamVjdD4KLSAgICA8L1Byb2plY3RSZWZlcmVuY2U+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgot
ICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWlu
LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzI2Yzc3M2NjYjE3NzZhNThkNmY0ZmQ2NWExNmNiNTBmNDIyZDE1NC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qLmZpbHRlcnMKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNy
b3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwPgotICAgIDxG
aWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0
RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgot
ICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8
L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIg
RmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVC
LTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5oO2hw
cDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XGd0ZXN0X21haW4uY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X21haW4udmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAx
MC9ndGVzdF9tYWluLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYjI1
ODk3YzhiMWMyZGJiM2NmNmMxM2U5YjQxOTNmYzlhZTA1MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X21haW4udmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi3v
u788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFi
ZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RD
b25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9u
PlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4K
LSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57M0FGNTRDOEEtMTBCRi00
MzMyLTkxNDctRjY4RUQ5ODYyMDMyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQ
cm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+
U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0
aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3Jt
VG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNv
bmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAg
PENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0
YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlC
eXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0
c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0
ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFi
ZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQo
VXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0
aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3Jv
dXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0g
ICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZv
cm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1h
Y3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAu
MC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoU29sdXRpb25E
aXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+
Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAg
ICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQo
Q29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQo
UHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3Jt
KS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwk
KFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluZDwvVGFy
Z2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91
dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3Vy
YXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1l
KVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8
L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVz
dF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAg
ICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nl
c3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1p
bmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNo
ZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2Fybmlu
Z0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwv
Q2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2pl
Y3ROYW1lKWQubGliPC9PdXRwdXRGaWxlPgotICAgIDwvTGliPgotICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxP
cHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElCOyUoUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1
bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAg
PFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIp
JChQcm9qZWN0TmFtZSlkLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYj4KLSAgICAgIDxPdXRwdXRGaWxl
PiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0
cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5saWI8L091dHB1dEZpbGU+Ci0gICAgPC9M
aWI+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25h
bEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0UmVmZXJlbmNl
IEluY2x1ZGU9Imd0ZXN0LnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+e2M4ZjZjMTcyLTU2ZjIt
NGU3Ni1iNWZhLWMzYjQyM2IzMWJlN308L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNl
PgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1p
Y3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25U
YXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAv
Z3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDcyNmM3NzNjY2IxNzc2YTU4ZDZmNGZkNjVhMTZjYjUwZjQyMmQxNTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwK
QEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8
RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57
NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4K
LSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214
PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVy
IEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhF
Qi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDto
cHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0
ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNy
Y1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMv
MjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODMwZTVkY2U0MTA2MjNjMTViNjhmZWE3MThlZDk0YzQ1N2YwNzBmNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYv
bnVsbApAQCAtMSwxOTkgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0i
UmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25m
aWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2
NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJv
amVjdEd1aWQ+ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn08L1Byb2plY3RH
dWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZh
dWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2pl
Y3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8
L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlv
bilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0lu
dERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNv
bHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8
SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1l
Pmd0ZXN0X3Byb2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJvZF90
ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4K
LSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9wcm9kX3Rlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJv
ZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlv
bkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwv
T3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJ
QURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5p
bWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwv
QmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRE
ZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0g
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3Byb2RfdGVz
dC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1
YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+
Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlv
bkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09w
dGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFE
SUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZh
c3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVh
ZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwv
V2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFi
YXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVz
dF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3RlbT5D
b25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+
Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0NPTlNP
TEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgot
ICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5Pgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRp
b25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgot
ICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNv
bnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1p
emVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09N
REFURm9sZGluZz4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hp
bmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5p
dGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1E
YXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+
Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAg
ICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAg
PC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24u
Y2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHRlc3RccHJvZHVjdGlvbi5oIiAvPgotICA8L0l0
ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJn
dGVzdF9tYWluLW1kLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMz
Mi05MTQ3LWY2OGVkOTg2MjAzM308L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgot
ICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jv
c29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJn
ZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rl
c3RfcHJvZF90ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhYzM2NzMxMGFlZTYyNmY0ZWM5YzFkZmZkYTczM2E1MGYyYTVj
NWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvai5m
aWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4K
LSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAg
ICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZG
fTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2Rs
O2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxG
aWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5
Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgot
ICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgot
ICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfcHJvZF90ZXN0LmNjIj4KLSAgICAgIDxGaWx0
ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uY2MiPgotICAgICAgPEZpbHRlcj5Tb3Vy
Y2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
dGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24u
aCI+Ci0gICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRl
PgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJv
ZF90ZXN0LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Rf
cHJvZF90ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0MmUxMzUx
MWRmMjhhNTMyMjI0MjA1N2U3NTQxZjk2NTY3MGRkYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTkxICswLDAgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZh
dWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBM
YWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZp
Z3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVj
dENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVn
fHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5X
aW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRp
b24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3Jt
PgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnsyNDg0ODU1MS1FRjRG
LTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9PC9Qcm9qZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4z
MlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIk
KFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0
aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3Jt
VG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNv
bmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmln
dXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4K
LSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGlj
YXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+
Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgp
XE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9u
U2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIg
Lz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIx
OS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoU29sdXRpb25EaXIpJChT
b2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAg
PEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlu
a0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRh
bCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChT
b2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAg
PEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxM
aW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3Jl
bWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwk
KFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXRE
aXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1l
KVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChP
dXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6
YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJl
YnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVu
YWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFy
eT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVs
MzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENv
bnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgot
ICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpciln
dGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3Rl
bT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9U
YXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8
SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9u
PkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPEJhc2ljUnVudGltZUNo
ZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlBy
b2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwv
R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRhYmFzZUZpbGU+JChP
dXREaXIpZ3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxT
dWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgot
ICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRF
QlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGli
cmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5
c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8
L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0Vu
YWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJn
ZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRl
bURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+
TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9n
cmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lz
dGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+
Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgot
ICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF9wcm9kX3Rlc3QuY2MiPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAg
ICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0
aW9uLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNs
dWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAgPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uaCIgLz4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk
ZT0iZ3Rlc3RfbWFpbi52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQz
MzItOTE0Ny1mNjhlZDk4NjIwMzJ9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNy
b3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFy
Z2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
c3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWMzNjczMTBhZWU2MjZmNGVjOWMxZGZmZGE3MzNhNTBmMmE1YzVlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ouZmlsdGVycwor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6
Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVt
R3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1
ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1
ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBq
O2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIElu
Y2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAt
ODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxF
eHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0Zp
bHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8RmlsdGVyPlNvdXJj
ZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVz
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3Vw
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmgiPgotICAg
ICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgPC9J
dGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1k
LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRl
c3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNiMGRjNGUxYTRl
MDNhZThkNjNlZmYzNmM2N2JmZTgyMzY1ZjE4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rl
c3RfdW5pdHRlc3QtbWQudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE4OCArMCwwIEBACi3v
u788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFi
ZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RD
b25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9u
PlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4K
LSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57NEQ5RkRGQjUtOTg2QS00
MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQ
cm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+
QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlC
eXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRv
b2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25m
aWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3Vy
YXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0g
ICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29u
ZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFy
YWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52
MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0
aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNl
dHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9w
ZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9Ikxv
Y2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBv
cnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2Vy
LnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4K
LSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+
Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTku
MTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVt
ZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
TGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9u
TmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGly
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50
YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5mYWxz
ZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0k
KENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0
TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfdW5pdHRlc3Q8L1RhcmdldE5h
bWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+
JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9u
KVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGly
PgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3VuaXR0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0
dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAg
ICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAg
ICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50
aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxS
dW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2Fy
bmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25G
b3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlv
bj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNl
RmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0g
ICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5l
Pk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4K
LSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0Pgot
ICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3Jh
bURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFz
ZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICA8L0xpbms+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0g
ICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFS
SUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJl
YWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0g
ICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGlt
aXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09N
REFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPFRhcmdldE1hY2hp
bmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmlu
aXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVC
VUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwu
LjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3Vi
U3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1
ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwv
RW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rl
c3RfdW5pdHRlc3QuY2MiPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+TWluU3BhY2U8L09wdGltaXph
dGlvbj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5NaW5TcGFjZTwvT3B0aW1pemF0aW9uPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAg
PEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPkRlZmF1bHQ8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1h
dD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0g
IDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rlc3RfbWFpbi1t
ZC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhl
ZDk4NjIwMzN9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRh
cmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwv
SW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0
LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdF91bml0dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDA0N2RhZTUxM2U4NjAxNTNhNWNlYzJmNDViNDhjZGJjNzVmOWI2Y2UuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ouZmlsdGVycworKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hl
bWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50
aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50
aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDth
c207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9
IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00
YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNp
b25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlwuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVz
PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVjNmFiZGU3ZGExN2UyOWVkMjQ3NmY3MGM2OTQxNWFlOTY4ZjIxZjMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2oKKysrIC9kZXYv
bnVsbApAQCAtMSwxODAgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0i
UmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25m
aWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2
NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJv
amVjdEd1aWQ+ezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMX08L1Byb2plY3RH
dWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZh
dWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2pl
Y3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRh
bD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXRE
aXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0
TmFtZSlcPC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxzZTwvTGlua0luY3Jl
bWVudGFsPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0g
IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRp
b25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXRE
aXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29s
dXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9P
dXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGly
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xD
b21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVH
O19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAg
IDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tz
PgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJh
cnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZv
cm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0g
ICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFt
RGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNl
RmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPFRhcmdl
dE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05T
T0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4K
LSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1l
Q2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGlt
ZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQ
cm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0ZXN0LnBkYjwvUHJvZ3JhbURh
dGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwv
TGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0
aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0
aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVD
T01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFj
aGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4K
LSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05E
RUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxp
YnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJ
bmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4u
OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1
Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJT
eXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVl
PC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9F
bmFibGVDT01EQVRGb2xkaW5nPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3Vw
PgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVz
dF91bml0dGVzdC5jYyI+Ci0gICAgICA8T3B0aW1pemF0aW9uIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5NaW5TcGFjZTwvT3B0aW1pemF0
aW9uPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPk1pblNwYWNlPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj5EZWZhdWx0PC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8
QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJl
Y29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8RGVidWdJ
bmZvcm1hdGlvbkZvcm1hdCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4u
LjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJndGVzdF9tYWluLnZj
eHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMzMi05MTQ3LWY2OGVkOTg2
MjAzMn08L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4K
LSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0
cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBv
cnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4
cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Vu
aXR0ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ3
ZGFlNTEzZTg2MDE1M2E1Y2VjMmY0NWI0OGNkYmM3NWY5YjZjZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEs
MTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQ
cm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0
LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVy
IEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3
RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAg
IDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRl
bnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVz
Ij4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVG
QkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4
O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rl
c3RfdW5pdHRlc3QuY2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxl
cy9wcmltZV90YWJsZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvcHJpbWVf
dGFibGVzLmgKaW5kZXggNTIzYzUwYjlhZmIxYTA5MTkxNjgwOTRkNzFmZGYzNzZiNjRhZjZiMi4u
M2ExMDM1MmJhYWU1YmE3MWFjYjYwN2U2NzFkOWJmMTVkMTZlNzlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3ByaW1lX3RhYmxlcy5oCkBAIC0zMyw4ICszMyw4IEBA
CiAvLyBwcmltZSBhbmQgZGV0ZXJtaW5lcyBhIG5leHQgcHJpbWUgbnVtYmVyLiBUaGlzIGludGVy
ZmFjZSBpcyB1c2VkCiAvLyBpbiBHb29nbGUgVGVzdCBzYW1wbGVzIGRlbW9uc3RyYXRpbmcgdXNl
IG9mIHBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKLSNpZm5kZWYgR1RFU1RfU0FNUExFU19QUklNRV9U
QUJMRVNfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KKyNpZm5kZWYg
R09PR0xFVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19IXworI2RlZmluZSBHT09HTEVURVNUX1NB
TVBMRVNfUFJJTUVfVEFCTEVTX0hfCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKQEAgLTQzLDcg
KzQzLDcgQEAgY2xhc3MgUHJpbWVUYWJsZSB7CiAgcHVibGljOgogICB2aXJ0dWFsIH5QcmltZVRh
YmxlKCkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisg
IC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBuIGlzIGEgcHJpbWUgbnVtYmVyLgogICB2
aXJ0dWFsIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3QgPSAwOwogCiAgIC8vIFJldHVybnMgdGhl
IHNtYWxsZXN0IHByaW1lIG51bWJlciBncmVhdGVyIHRoYW4gcDsgb3IgcmV0dXJucyAtMQpAQCAt
NTQsNyArNTQsNyBAQCBjbGFzcyBQcmltZVRhYmxlIHsKIC8vIEltcGxlbWVudGF0aW9uICMxIGNh
bGN1bGF0ZXMgdGhlIHByaW1lcyBvbi10aGUtZmx5LgogY2xhc3MgT25UaGVGbHlQcmltZVRhYmxl
IDogcHVibGljIFByaW1lVGFibGUgewogIHB1YmxpYzoKLSAgdmlydHVhbCBib29sIElzUHJpbWUo
aW50IG4pIGNvbnN0IHsKKyAgYm9vbCBJc1ByaW1lKGludCBuKSBjb25zdCBvdmVycmlkZSB7CiAg
ICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IDI7IGkqaSA8
PSBuOyBpKyspIHsKQEAgLTY1LDEyICs2NSwxMiBAQCBjbGFzcyBPblRoZUZseVByaW1lVGFibGUg
OiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICB2aXJ0dWFs
IGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsKLSAgICBmb3IgKGludCBuID0gcCArIDE7
IG4gPiAwOyBuKyspIHsKKyAgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29uc3Qgb3ZlcnJpZGUg
eworICAgIGlmIChwIDwgMCkgcmV0dXJuIC0xOworCisgICAgZm9yIChpbnQgbiA9IHAgKyAxOzsg
bisrKSB7CiAgICAgICBpZiAoSXNQcmltZShuKSkgcmV0dXJuIG47CiAgICAgfQotCi0gICAgcmV0
dXJuIC0xOwogICB9CiB9OwogCkBAIC04MywxMyArODMsMTMgQEAgY2xhc3MgUHJlQ2FsY3VsYXRl
ZFByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgICA6IGlzX3ByaW1lX3NpemVf
KG1heCArIDEpLCBpc19wcmltZV8obmV3IGJvb2xbbWF4ICsgMV0pIHsKICAgICBDYWxjdWxhdGVQ
cmltZXNVcFRvKG1heCk7CiAgIH0KLSAgdmlydHVhbCB+UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUo
KSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQorICB+UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUoKSBv
dmVycmlkZSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQogCi0gIHZpcnR1YWwgYm9vbCBJc1ByaW1l
KGludCBuKSBjb25zdCB7CisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUgewog
ICAgIHJldHVybiAwIDw9IG4gJiYgbiA8IGlzX3ByaW1lX3NpemVfICYmIGlzX3ByaW1lX1tuXTsK
ICAgfQogCi0gIHZpcnR1YWwgaW50IEdldE5leHRQcmltZShpbnQgcCkgY29uc3QgeworICBpbnQg
R2V0TmV4dFByaW1lKGludCBwKSBjb25zdCBvdmVycmlkZSB7CiAgICAgZm9yIChpbnQgbiA9IHAg
KyAxOyBuIDwgaXNfcHJpbWVfc2l6ZV87IG4rKykgewogICAgICAgaWYgKGlzX3ByaW1lX1tuXSkg
cmV0dXJuIG47CiAgICAgfQpAQCAtMTIzLDQgKzEyMyw0IEBAIGNsYXNzIFByZUNhbGN1bGF0ZWRQ
cmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogICB2b2lkIG9wZXJhdG9yPShjb25zdCBQ
cmVDYWxjdWxhdGVkUHJpbWVUYWJsZSYgcmhzKTsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FN
UExFU19QUklNRV9UQUJMRVNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1BSSU1F
X1RBQkxFU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGUxLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxLmNjCmlu
ZGV4IDEzY2VjMWQwZmJmYWJkYWFmMWM2YzQxYjFhODZiYzFkMDkwODk4M2QuLjFkNDI3NTk3OWZm
NjExMDFiZjFhZTljMzIwNWY0MWY0MDgzMGMzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTEuY2MKQEAgLTQxLDcgKzQxLDcgQEAgaW50IEZhY3RvcmlhbChpbnQg
bikgewogICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBw
cmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgbiBpcyBhIHByaW1l
IG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbikgewogICAvLyBUcml2aWFsIGNhc2UgMTogc21h
bGwgbnVtYmVycwogICBpZiAobiA8PSAxKSByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCmluZGV4IDJjM2U5ZjA1ZjFhMTBhNDQyNWY3N2IyODcx
NmU4MDU5NjgyMTk2MWYuLmJhMzkyY2ZiZDI2NjhiNmFiZWIwOWIxOTQ3NWM1OWEwN2UwNzg5MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCkBAIC0yOSwxMyAr
MjksMTMgQEAKIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2ds
ZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCiAKLSNpZm5kZWYgR1RFU1RfU0FNUExFU19TQU1QTEUx
X0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2lmbmRlZiBHT09HTEVURVNU
X1NBTVBMRVNfU0FNUExFMV9IXworI2RlZmluZSBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMV9I
XwogCiAvLyBSZXR1cm5zIG4hICh0aGUgZmFjdG9yaWFsIG9mIG4pLiAgRm9yIG5lZ2F0aXZlIG4s
IG4hIGlzIGRlZmluZWQgdG8gYmUgMS4KIGludCBGYWN0b3JpYWwoaW50IG4pOwogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbik7CiAKLSNl
bmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1Rf
U0FNUExFU19TQU1QTEUxX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2Ft
cGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwppbmRleCA3Y2U5NTUwZjg4M2FhMzQyZDI1YjA0ODU5
M2ZhYTk2Y2FiZDhlMWZhLi4zNmNkYWMyMjc5YWVlYTcwMmUwZDM1MjBjNzcyNThlOTI3MzcyNmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEwX3Vu
aXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMTBf
dW5pdHRlc3QuY2MKQEAgLTc0LDEyICs3NCwxMiBAQCBpbnQgV2F0ZXI6OmFsbG9jYXRlZF8gPSAw
OwogY2xhc3MgTGVha0NoZWNrZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAg
cHJpdmF0ZToKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgotICB2aXJ0dWFsIHZv
aWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qIHRlc3RfaW5mbyAqLykgeworICB2b2lk
IE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsK
ICAgICBpbml0aWFsbHlfYWxsb2NhdGVkXyA9IFdhdGVyOjphbGxvY2F0ZWQoKTsKICAgfQogCiAg
IC8vIENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChj
b25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSB7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0
IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsKICAgICBpbnQgZGlmZmVyZW5j
ZSA9IFdhdGVyOjphbGxvY2F0ZWQoKSAtIGluaXRpYWxseV9hbGxvY2F0ZWRfOwogCiAgICAgLy8g
WW91IGNhbiBnZW5lcmF0ZSBhIGZhaWx1cmUgaW4gYW55IGV2ZW50IGhhbmRsZXIgZXhjZXB0CkBA
IC0xMDAsNyArMTAwLDcgQEAgVEVTVChMaXN0ZW5lcnNUZXN0LCBEb2VzTm90TGVhaykgewogLy8g
c3BlY2lmaWVkLgogVEVTVChMaXN0ZW5lcnNUZXN0LCBMZWFrc1dhdGVyKSB7CiAgIFdhdGVyKiB3
YXRlciA9IG5ldyBXYXRlcjsKLSAgRVhQRUNUX1RSVUUod2F0ZXIgIT0gTlVMTCk7CisgIEVYUEVD
VF9UUlVFKHdhdGVyICE9IG51bGxwdHIpOwogfQogfSAgLy8gbmFtZXNwYWNlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5jYwppbmRleCBmM2I3MjJmY2FjZmVlZTdk
ODkwYjJkMWYxOWJjOTc0MTVlY2E0OWY2Li5kOGU4NzIzOTY1YTFkYzAxZWE3ZjY1NjYxOWI3MWZi
NTA2OTg0OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3Nh
bXBsZTIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyLmNj
CkBAIC0zNSw3ICszNSw3IEBACiAKIC8vIENsb25lcyBhIDAtdGVybWluYXRlZCBDIHN0cmluZywg
YWxsb2NhdGluZyBtZW1vcnkgdXNpbmcgbmV3LgogY29uc3QgY2hhciogTXlTdHJpbmc6OkNsb25l
Q1N0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSB7Ci0gIGlmIChhX2Nfc3RyaW5nID09IE5V
TEwpIHJldHVybiBOVUxMOworICBpZiAoYV9jX3N0cmluZyA9PSBudWxscHRyKSByZXR1cm4gbnVs
bHB0cjsKIAogICBjb25zdCBzaXplX3QgbGVuID0gc3RybGVuKGFfY19zdHJpbmcpOwogICBjaGFy
KiBjb25zdCBjbG9uZSA9IG5ldyBjaGFyWyBsZW4gKyAxIF07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCmluZGV4IDU4ZjM2MGY0NWM3NjU4YzAxOTdlM2ZmYzY1ZWM4
YjM3NWZiMzM2YjAuLjBmOTg2ODk1OWQyMTU3NjBmNDU2N2ZlNjE2NWUwNzc3Mzk5NDc0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCkBAIC0yOSw4ICsyOSw4
IEBACiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJhdGluZyB1c2luZyBHb29nbGUgQysr
IHRlc3RpbmcgZnJhbWV3b3JrLgogCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNfU0FNUExFMl9IXwot
I2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1Q
TEVTX1NBTVBMRTJfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KIAog
I2luY2x1ZGUgPHN0cmluZy5oPgogCkBAIC01MCwxNSArNTAsMTUgQEAgY2xhc3MgTXlTdHJpbmcg
ewogICAvLyBDJ3RvcnMKIAogICAvLyBUaGUgZGVmYXVsdCBjJ3RvciBjb25zdHJ1Y3RzIGEgTlVM
TCBzdHJpbmcuCi0gIE15U3RyaW5nKCkgOiBjX3N0cmluZ18oTlVMTCkge30KKyAgTXlTdHJpbmco
KSA6IGNfc3RyaW5nXyhudWxscHRyKSB7fQogCiAgIC8vIENvbnN0cnVjdHMgYSBNeVN0cmluZyBi
eSBjbG9uaW5nIGEgMC10ZXJtaW5hdGVkIEMgc3RyaW5nLgotICBleHBsaWNpdCBNeVN0cmluZyhj
b25zdCBjaGFyKiBhX2Nfc3RyaW5nKSA6IGNfc3RyaW5nXyhOVUxMKSB7CisgIGV4cGxpY2l0IE15
U3RyaW5nKGNvbnN0IGNoYXIqIGFfY19zdHJpbmcpIDogY19zdHJpbmdfKG51bGxwdHIpIHsKICAg
ICBTZXQoYV9jX3N0cmluZyk7CiAgIH0KIAogICAvLyBDb3B5IGMndG9yCi0gIE15U3RyaW5nKGNv
bnN0IE15U3RyaW5nJiBzdHJpbmcpIDogY19zdHJpbmdfKE5VTEwpIHsKKyAgTXlTdHJpbmcoY29u
c3QgTXlTdHJpbmcmIHN0cmluZykgOiBjX3N0cmluZ18obnVsbHB0cikgewogICAgIFNldChzdHJp
bmcuY19zdHJpbmdfKTsKICAgfQogCkBAIC03MSwxMyArNzEsMTAgQEAgY2xhc3MgTXlTdHJpbmcg
ewogICAvLyBHZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBNeVN0cmluZyBvYmpl
Y3QgcmVwcmVzZW50cy4KICAgY29uc3QgY2hhciogY19zdHJpbmcoKSBjb25zdCB7IHJldHVybiBj
X3N0cmluZ187IH0KIAotICBzaXplX3QgTGVuZ3RoKCkgY29uc3QgewotICAgIHJldHVybiBjX3N0
cmluZ18gPT0gTlVMTCA/IDAgOiBzdHJsZW4oY19zdHJpbmdfKTsKLSAgfQorICBzaXplX3QgTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gY19zdHJpbmdfID09IG51bGxwdHIgPyAwIDogc3RybGVuKGNf
c3RyaW5nXyk7IH0KIAogICAvLyBTZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBN
eVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgdm9pZCBTZXQoY29uc3QgY2hhciogY19zdHJp
bmcpOwogfTsKIAotCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFMl9IXworI2VuZGlm
ICAvLyBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjCmluZGV4IDA4NDg4MjYxOTJj
YzY2ZmNiNzkwNmVmMmMwYWFlZjY2YWY4NDNmOTIuLjQxZTMxYzE3NjdkZWU1NWNjNWQ1YzBiZWEy
ZGYyNjdjNWQ4MTE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMl91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTJfdW5pdHRlc3QuY2MKQEAgLTY2LDcgKzY2LDcgQEAgVEVTVChNeVN0cmluZywg
RGVmYXVsdENvbnN0cnVjdG9yKSB7CiAgIC8vIHdlIGhhdmUgdG8gbGl2ZSB3aXRoIHRoaXMgZmFj
dC4KICAgLy8KICAgLy8gPC9UZWNobmljYWxEZXRhaWxzPgotICBFWFBFQ1RfU1RSRVEoTlVMTCwg
cy5jX3N0cmluZygpKTsKKyAgRVhQRUNUX1NUUkVRKG51bGxwdHIsIHMuY19zdHJpbmcoKSk7CiAK
ICAgRVhQRUNUX0VRKDB1LCBzLkxlbmd0aCgpKTsKIH0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNU
KE15U3RyaW5nLCBTZXQpIHsKICAgRVhQRUNUX0VRKDAsIHN0cmNtcChzLmNfc3RyaW5nKCksIGtI
ZWxsb1N0cmluZykpOwogCiAgIC8vIENhbiB3ZSBzZXQgdGhlIE15U3RyaW5nIHRvIE5VTEw/Ci0g
IHMuU2V0KE5VTEwpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcy5jX3N0cmluZygpKTsKKyAgcy5T
ZXQobnVsbHB0cik7CisgIEVYUEVDVF9TVFJFUShudWxscHRyLCBzLmNfc3RyaW5nKCkpOwogfQog
fSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTMtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTMtaW5sLmgKaW5kZXggMWEyOWNlOTI5NmE2NGRmZTk3YTlmN2ZkYzZkYTg2Mzg3ZGMwYjc1Yi4u
NjU5ZTBmMGJiNWRmNjI5MDViYjM1ZjlhYjAzOGYyYzM4ZDNjMGU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzLWlubC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMy1pbmwuaApAQCAtMjksOCArMjksOCBAQAog
CiAvLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xlIEMrKyB0ZXN0
aW5nIGZyYW1ld29yay4KIAotI2lmbmRlZiBHVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCi0j
ZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFM19JTkxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9T
QU1QTEVTX1NBTVBMRTNfSU5MX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUz
X0lOTF9IXwogCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAKQEAgLTU4LDcgKzU4LDggQEAgY2xhc3Mg
UXVldWVOb2RlIHsKICBwcml2YXRlOgogICAvLyBDcmVhdGVzIGEgbm9kZSB3aXRoIGEgZ2l2ZW4g
ZWxlbWVudCB2YWx1ZS4gIFRoZSBuZXh0IHBvaW50ZXIgaXMKICAgLy8gc2V0IHRvIE5VTEwuCi0g
IGV4cGxpY2l0IFF1ZXVlTm9kZShjb25zdCBFJiBhbl9lbGVtZW50KSA6IGVsZW1lbnRfKGFuX2Vs
ZW1lbnQpLCBuZXh0XyhOVUxMKSB7fQorICBleHBsaWNpdCBRdWV1ZU5vZGUoY29uc3QgRSYgYW5f
ZWxlbWVudCkKKyAgICAgIDogZWxlbWVudF8oYW5fZWxlbWVudCksIG5leHRfKG51bGxwdHIpIHt9
CiAKICAgLy8gV2UgZGlzYWJsZSB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IG9wZXJhdG9yIGFuZCBj
b3B5IGMndG9yLgogICBjb25zdCBRdWV1ZU5vZGUmIG9wZXJhdG9yID0gKGNvbnN0IFF1ZXVlTm9k
ZSYpOwpAQCAtNzIsNyArNzMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRT4gIC8vIEUgaXMgdGhl
IGVsZW1lbnQgdHlwZS4KIGNsYXNzIFF1ZXVlIHsKICBwdWJsaWM6CiAgIC8vIENyZWF0ZXMgYW4g
ZW1wdHkgcXVldWUuCi0gIFF1ZXVlKCkgOiBoZWFkXyhOVUxMKSwgbGFzdF8oTlVMTCksIHNpemVf
KDApIHt9CisgIFF1ZXVlKCkgOiBoZWFkXyhudWxscHRyKSwgbGFzdF8obnVsbHB0ciksIHNpemVf
KDApIHt9CiAKICAgLy8gRCd0b3IuICBDbGVhcnMgdGhlIHF1ZXVlLgogICB+UXVldWUoKSB7IENs
ZWFyKCk7IH0KQEAgLTg2LDEyICs4NywxMiBAQCBjbGFzcyBRdWV1ZSB7CiAgICAgICBmb3IgKDsg
OykgewogICAgICAgICBkZWxldGUgbm9kZTsKICAgICAgICAgbm9kZSA9IG5leHQ7Ci0gICAgICAg
IGlmIChub2RlID09IE5VTEwpIGJyZWFrOworICAgICAgICBpZiAobm9kZSA9PSBudWxscHRyKSBi
cmVhazsKICAgICAgICAgbmV4dCA9IG5vZGUtPm5leHQoKTsKICAgICAgIH0KIAogICAgICAgLy8g
Mi4gUmVzZXRzIHRoZSBtZW1iZXIgdmFyaWFibGVzLgotICAgICAgaGVhZF8gPSBsYXN0XyA9IE5V
TEw7CisgICAgICBoZWFkXyA9IGxhc3RfID0gbnVsbHB0cjsKICAgICAgIHNpemVfID0gMDsKICAg
ICB9CiAgIH0KQEAgLTEyOCwxNCArMTI5LDE0IEBAIGNsYXNzIFF1ZXVlIHsKICAgLy8gdGhlIHF1
ZXVlIGlzIGVtcHR5LgogICBFKiBEZXF1ZXVlKCkgewogICAgIGlmIChzaXplXyA9PSAwKSB7Ci0g
ICAgICByZXR1cm4gTlVMTDsKKyAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGNv
bnN0IFF1ZXVlTm9kZTxFPiogY29uc3Qgb2xkX2hlYWQgPSBoZWFkXzsKICAgICBoZWFkXyA9IGhl
YWRfLT5uZXh0XzsKICAgICBzaXplXy0tOwogICAgIGlmIChzaXplXyA9PSAwKSB7Ci0gICAgICBs
YXN0XyA9IE5VTEw7CisgICAgICBsYXN0XyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgRSogZWxl
bWVudCA9IG5ldyBFKG9sZF9oZWFkLT5lbGVtZW50KCkpOwpAQCAtMTUwLDcgKzE1MSw4IEBAIGNs
YXNzIFF1ZXVlIHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+CiAgIFF1ZXVlKiBNYXAoRiBmdW5j
dGlvbikgY29uc3QgewogICAgIFF1ZXVlKiBuZXdfcXVldWUgPSBuZXcgUXVldWUoKTsKLSAgICBm
b3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9IGhlYWRfOyBub2RlICE9IE5VTEw7IG5vZGUg
PSBub2RlLT5uZXh0XykgeworICAgIGZvciAoY29uc3QgUXVldWVOb2RlPEU+KiBub2RlID0gaGVh
ZF87IG5vZGUgIT0gbnVsbHB0cjsKKyAgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0XykgewogICAg
ICAgbmV3X3F1ZXVlLT5FbnF1ZXVlKGZ1bmN0aW9uKG5vZGUtPmVsZW1lbnQoKSkpOwogICAgIH0K
IApAQCAtMTY3LDQgKzE2OSw0IEBAIGNsYXNzIFF1ZXVlIHsKICAgY29uc3QgUXVldWUmIG9wZXJh
dG9yID0gKGNvbnN0IFF1ZXVlJik7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FN
UExFM19JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5p
dHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5pdHRl
c3QuY2MKaW5kZXggZTA5M2MyNTg4NTczZjk2MjcwYTVlZDQxMjQ1YWM3ZTg5ZjQ4NTExOC4uYjE5
NDE2ZDUzYzk1ZjA4NGVmZTUxYmY4ZWYyM2NjNjkzZjNjNWQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwpAQCAtNzEsNyAr
NzEsNyBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAg
Ly8gdmlydHVhbCB2b2lkIFNldFVwKCkgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVhY2ggdGVzdCBp
cyBydW4uICBZb3UKICAgLy8gc2hvdWxkIGRlZmluZSBpdCBpZiB5b3UgbmVlZCB0byBpbml0aWFs
aXplIHRoZSB2YXJpYWJsZXMuCiAgIC8vIE90aGVyd2lzZSwgdGhpcyBjYW4gYmUgc2tpcHBlZC4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHExXy5FbnF1ZXVlKDEpOwogICAgIHEyXy5FbnF1ZXVlKDIpOwogICAgIHEyXy5FbnF1ZXVlKDMp
OwpAQCAtOTksOCArOTksOCBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICAgICBBU1NFUlRfRVEocS0+U2l6ZSgpLCBuZXdfcS0+U2l6ZSgpKTsKIAogICAg
IC8vIFZlcmlmaWVzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgZWxlbWVudHMgb2YgdGhl
IHR3byBxdWV1ZXMuCi0gICAgZm9yICggY29uc3QgUXVldWVOb2RlPGludD4gKiBuMSA9IHEtPkhl
YWQoKSwgKiBuMiA9IG5ld19xLT5IZWFkKCk7Ci0gICAgICAgICAgbjEgIT0gTlVMTDsgbjEgPSBu
MS0+bmV4dCgpLCBuMiA9IG4yLT5uZXh0KCkgKSB7CisgICAgZm9yIChjb25zdCBRdWV1ZU5vZGU8
aW50PipuMSA9IHEtPkhlYWQoKSwgKm4yID0gbmV3X3EtPkhlYWQoKTsKKyAgICAgICAgIG4xICE9
IG51bGxwdHI7IG4xID0gbjEtPm5leHQoKSwgbjIgPSBuMi0+bmV4dCgpKSB7CiAgICAgICBFWFBF
Q1RfRVEoMiAqIG4xLT5lbGVtZW50KCksIG4yLT5lbGVtZW50KCkpOwogICAgIH0KIApAQCAtMTI1
LDE2ICsxMjUsMTYgQEAgVEVTVF9GKFF1ZXVlVGVzdFNtcGwzLCBEZWZhdWx0Q29uc3RydWN0b3Ip
IHsKIC8vIFRlc3RzIERlcXVldWUoKS4KIFRFU1RfRihRdWV1ZVRlc3RTbXBsMywgRGVxdWV1ZSkg
ewogICBpbnQgKiBuID0gcTBfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiA9PSBOVUxMKTsK
KyAgRVhQRUNUX1RSVUUobiA9PSBudWxscHRyKTsKIAogICBuID0gcTFfLkRlcXVldWUoKTsKLSAg
QVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUobiAhPSBudWxscHRyKTsKICAg
RVhQRUNUX0VRKDEsICpuKTsKICAgRVhQRUNUX0VRKDB1LCBxMV8uU2l6ZSgpKTsKICAgZGVsZXRl
IG47CiAKICAgbiA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9UUlVFKG4gIT0gTlVMTCk7Cisg
IEFTU0VSVF9UUlVFKG4gIT0gbnVsbHB0cik7CiAgIEVYUEVDVF9FUSgyLCAqbik7CiAgIEVYUEVD
VF9FUSgxdSwgcTJfLlNpemUoKSk7CiAgIGRlbGV0ZSBuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTQuaAppbmRleCBlMjU2ZjQwNjRmZTkxYTdmMDFhOTQ1NTBkMzJjM2Ji
MTFiMGE0ZmZmLi4wYzRlZDkyZTczOGJhNjFlZDZiNWYyOGZkM2IwY2I0Y2EyYzI2NGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaApAQCAtMjgsOCArMjgsOCBA
QAogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVz
aW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNf
U0FNUExFNF9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NB
TVBMRTRfSF8KIAogLy8gQSBzaW1wbGUgbW9ub3RvbmljIGNvdW50ZXIuCiBjbGFzcyBDb3VudGVy
IHsKQEAgLTUwLDQgKzUwLDQgQEAgY2xhc3MgQ291bnRlciB7CiAgIHZvaWQgUHJpbnQoKSBjb25z
dDsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEU0X0hfCisjZW5kaWYgIC8v
IEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEU0X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MKaW5kZXggZDhhODc4OGM2ZDBmZGEy
Mzg2NDZmZWEyOTBlMDk3Y2M3NjI3Nzg1NS4uMGEyMWRkMjE1NzcwN2ZiMzJjNDU5MjQ4YjBjNTM0
MTYwOWVjMDYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU1X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlNV91bml0dGVzdC5jYwpAQCAtNjMsMTUgKzYzLDEzIEBAIGNsYXNzIFF1aWNrVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIC8vIFJlbWVtYmVyIHRoYXQg
U2V0VXAoKSBpcyBydW4gaW1tZWRpYXRlbHkgYmVmb3JlIGEgdGVzdCBzdGFydHMuCiAgIC8vIFRo
aXMgaXMgYSBnb29kIHBsYWNlIHRvIHJlY29yZCB0aGUgc3RhcnQgdGltZS4KLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgewotICAgIHN0YXJ0X3RpbWVfID0gdGltZShOVUxMKTsKLSAgfQorICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgeyBzdGFydF90aW1lXyA9IHRpbWUobnVsbHB0cik7IH0KIAogICAv
LyBUZWFyRG93bigpIGlzIGludm9rZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYSB0ZXN0IGZpbmlzaGVz
LiAgSGVyZSB3ZQogICAvLyBjaGVjayBpZiB0aGUgdGVzdCB3YXMgdG9vIHNsb3cuCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICAv
LyBHZXRzIHRoZSB0aW1lIHdoZW4gdGhlIHRlc3QgZmluaXNoZXMKLSAgICBjb25zdCB0aW1lX3Qg
ZW5kX3RpbWUgPSB0aW1lKE5VTEwpOworICAgIGNvbnN0IHRpbWVfdCBlbmRfdGltZSA9IHRpbWUo
bnVsbHB0cik7CiAKICAgICAvLyBBc3NlcnRzIHRoYXQgdGhlIHRlc3QgdG9vayBubyBtb3JlIHRo
YW4gfjUgc2Vjb25kcy4gIERpZCB5b3UKICAgICAvLyBrbm93IHRoYXQgeW91IGNhbiB1c2UgYXNz
ZXJ0aW9ucyBpbiBTZXRVcCgpIGFuZCBUZWFyRG93bigpIGFzCkBAIC0xNDIsNyArMTQwLDcgQEAg
VEVTVF9GKEludGVnZXJGdW5jdGlvblRlc3QsIElzUHJpbWUpIHsKIC8vIHN0dWZmIGluc2lkZSB0
aGUgYm9keSBvZiB0aGUgdGVzdCBmaXh0dXJlLCBhcyB1c3VhbC4KIGNsYXNzIFF1ZXVlVGVzdCA6
IHB1YmxpYyBRdWlja1Rlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIEZpcnN0LCB3ZSBuZWVkIHRvIHNl
dCB1cCB0aGUgc3VwZXIgZml4dHVyZSAoUXVpY2tUZXN0KS4KICAgICBRdWlja1Rlc3Q6OlNldFVw
KCk7CiAKQEAgLTE3NiwxNiArMTc0LDE2IEBAIFRFU1RfRihRdWV1ZVRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikgewogLy8gVGVzdHMgRGVxdWV1ZSgpLgogVEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1
ZSkgewogICBpbnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuID09IE5VTEwp
OworICBFWFBFQ1RfVFJVRShuID09IG51bGxwdHIpOwogCiAgIG4gPSBxMV8uRGVxdWV1ZSgpOwot
ICBFWFBFQ1RfVFJVRShuICE9IE5VTEwpOworICBFWFBFQ1RfVFJVRShuICE9IG51bGxwdHIpOwog
ICBFWFBFQ1RfRVEoMSwgKm4pOwogICBFWFBFQ1RfRVEoMHUsIHExXy5TaXplKCkpOwogICBkZWxl
dGUgbjsKIAogICBuID0gcTJfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiAhPSBOVUxMKTsK
KyAgRVhQRUNUX1RSVUUobiAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDIsICpuKTsKICAgRVhQ
RUNUX0VRKDF1LCBxMl8uU2l6ZSgpKTsKICAgZGVsZXRlIG47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKaW5kZXggZGRmMmYxYzEz
YmJlMDM0ODEzNDQ5MzZiMGE3MmRiYjJhMGIyODQyNC4uZGEzMTdlZWQ1YTBkMjU4NjA1Yzg5ZTBk
ODhmYzQzYzE3YzFlYjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2Ft
cGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Nh
bXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwpAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBQcmltZVRh
YmxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLy8gaW1wbGVtZW50ZWQgYnkgVC4K
ICAgUHJpbWVUYWJsZVRlc3QoKSA6IHRhYmxlXyhDcmVhdGVQcmltZVRhYmxlPFQ+KCkpIHt9CiAK
LSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3QoKSB7IGRlbGV0ZSB0YWJsZV87IH0KKyAgflByaW1l
VGFibGVUZXN0KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9CiAKICAgLy8gTm90ZSB0aGF0
IHdlIHRlc3QgYW4gaW1wbGVtZW50YXRpb24gdmlhIHRoZSBiYXNlIGludGVyZmFjZQogICAvLyBp
bnN0ZWFkIG9mIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gY2xhc3MuICBUaGlzIGlzIGltcG9y
dGFudApAQCAtNzMsOCArNzMsNiBAQCBjbGFzcyBQcmltZVRhYmxlVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsKICAgUHJpbWVUYWJsZSogY29uc3QgdGFibGVfOwogfTsKIAotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUCi0KIHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAvLyBHb29nbGUgVGVz
dCBvZmZlcnMgdHdvIHdheXMgZm9yIHJldXNpbmcgdGVzdHMgZm9yIGRpZmZlcmVudCB0eXBlcy4K
QEAgLTg0LDcgKzgyLDcgQEAgdXNpbmcgdGVzdGluZzo6VHlwZXM7CiAKIC8vIFRvIHdyaXRlIGEg
dHlwZWQgdGVzdCBjYXNlLCBmaXJzdCB1c2UKIC8vCi0vLyAgIFRZUEVEX1RFU1RfQ0FTRShUZXN0
Q2FzZU5hbWUsIFR5cGVMaXN0KTsKKy8vICAgVFlQRURfVEVTVF9TVUlURShUZXN0Q2FzZU5hbWUs
IFR5cGVMaXN0KTsKIC8vCiAvLyB0byBkZWNsYXJlIGl0IGFuZCBzcGVjaWZ5IHRoZSB0eXBlIHBh
cmFtZXRlcnMuICBBcyB3aXRoIFRFU1RfRiwKIC8vIFRlc3RDYXNlTmFtZSBtdXN0IG1hdGNoIHRo
ZSB0ZXN0IGZpeHR1cmUgbmFtZS4KQEAgLTkyLDcgKzkwLDcgQEAgdXNpbmcgdGVzdGluZzo6VHlw
ZXM7CiAvLyBUaGUgbGlzdCBvZiB0eXBlcyB3ZSB3YW50IHRvIHRlc3QuCiB0eXBlZGVmIFR5cGVz
PE9uVGhlRmx5UHJpbWVUYWJsZSwgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU+IEltcGxlbWVudGF0
aW9uczsKIAotVFlQRURfVEVTVF9DQVNFKFByaW1lVGFibGVUZXN0LCBJbXBsZW1lbnRhdGlvbnMp
OworVFlQRURfVEVTVF9TVUlURShQcmltZVRhYmxlVGVzdCwgSW1wbGVtZW50YXRpb25zKTsKIAog
Ly8gVGhlbiB1c2UgVFlQRURfVEVTVChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB0byBkZWZpbmUg
YSB0eXBlZCB0ZXN0LAogLy8gc2ltaWxhciB0byBURVNUX0YuCkBAIC0xMzEsMTMgKzEyOSw5IEBA
IFRZUEVEX1RFU1QoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkgewogfQogCiAvLyBU
aGF0J3MgaXQhICBHb29nbGUgVGVzdCB3aWxsIHJlcGVhdCBlYWNoIFRZUEVEX1RFU1QgZm9yIGVh
Y2ggdHlwZQotLy8gaW4gdGhlIHR5cGUgbGlzdCBzcGVjaWZpZWQgaW4gVFlQRURfVEVTVF9DQVNF
LiAgU2l0IGJhY2sgYW5kIGJlCisvLyBpbiB0aGUgdHlwZSBsaXN0IHNwZWNpZmllZCBpbiBUWVBF
RF9URVNUX1NVSVRFLiAgU2l0IGJhY2sgYW5kIGJlCiAvLyBoYXBweSB0aGF0IHlvdSBkb24ndCBo
YXZlIHRvIGRlZmluZSB0aGVtIG11bHRpcGxlIHRpbWVzLgogCi0jZW5kaWYgIC8vIEdURVNUX0hB
U19UWVBFRF9URVNUCi0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIHVzaW5nIHRlc3Rp
bmc6OlR5cGVzOwogCiAvLyBTb21ldGltZXMsIGhvd2V2ZXIsIHlvdSBkb24ndCB5ZXQga25vdyBh
bGwgdGhlIHR5cGVzIHRoYXQgeW91IHdhbnQKQEAgLTE2Myw3ICsxNTcsNyBAQCBjbGFzcyBQcmlt
ZVRhYmxlVGVzdDIgOiBwdWJsaWMgUHJpbWVUYWJsZVRlc3Q8VD4gewogLy8gVGhlbiwgZGVjbGFy
ZSB0aGUgdGVzdCBjYXNlLiAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0CiAv
LyBmaXh0dXJlLCBhbmQgYWxzbyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlIChhcyB1c3VhbCku
ICBUaGUgX1AKIC8vIHN1ZmZpeCBpcyBmb3IgInBhcmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJuIi4K
LVRZUEVEX1RFU1RfQ0FTRV9QKFByaW1lVGFibGVUZXN0Mik7CitUWVBFRF9URVNUX1NVSVRFX1Ao
UHJpbWVUYWJsZVRlc3QyKTsKIAogLy8gTmV4dCwgdXNlIFRZUEVEX1RFU1RfUChUZXN0Q2FzZU5h
bWUsIFRlc3ROYW1lKSB0byBkZWZpbmUgYSB0ZXN0LAogLy8gc2ltaWxhciB0byB3aGF0IHlvdSBk
byB3aXRoIFRFU1RfRi4KQEAgLTE5Niw3ICsxOTAsNyBAQCBUWVBFRF9URVNUX1AoUHJpbWVUYWJs
ZVRlc3QyLCBDYW5HZXROZXh0UHJpbWUpIHsKIAogLy8gVHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Rz
IGludm9sdmUgb25lIGV4dHJhIHN0ZXA6IHlvdSBoYXZlIHRvCiAvLyBlbnVtZXJhdGUgdGhlIHRl
c3RzIHlvdSBkZWZpbmVkOgotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoCitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoCiAgICAgUHJpbWVUYWJsZVRlc3QyLCAgLy8gVGhlIGZpcnN0IGFy
Z3VtZW50IGlzIHRoZSB0ZXN0IGNhc2UgbmFtZS4KICAgICAvLyBUaGUgcmVzdCBvZiB0aGUgYXJn
dW1lbnRzIGFyZSB0aGUgdGVzdCBuYW1lcy4KICAgICBSZXR1cm5zRmFsc2VGb3JOb25QcmltZXMs
IFJldHVybnNUcnVlRm9yUHJpbWVzLCBDYW5HZXROZXh0UHJpbWUpOwpAQCAtMjE2LDkgKzIxMCw4
IEBAIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAogLy8gZGVmaW5lZCBhdCB0aGUgdGltZSB3
ZSB3cml0ZSB0aGUgVFlQRURfVEVTVF9QKClzLgogdHlwZWRlZiBUeXBlczxPblRoZUZseVByaW1l
VGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPgogICAgIFByaW1lVGFibGVJbXBsZW1lbnRh
dGlvbnM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChPblRoZUZseUFuZFByZUNhbGN1
bGF0ZWQsICAgIC8vIEluc3RhbmNlIG5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFByaW1lVGFibGVUZXN0MiwgICAgICAgICAgICAgLy8gVGVzdCBjYXNlIG5hbWUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlvbnMpOyAgLy8gVHlw
ZSBsaXN0CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoT25UaGVGbHlBbmRQcmVDYWxj
dWxhdGVkLCAgICAvLyBJbnN0YW5jZSBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUHJpbWVUYWJsZVRlc3QyLCAgICAgICAgICAgICAvLyBUZXN0IGNhc2UgbmFtZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlvbnMpOyAgLy8g
VHlwZSBsaXN0CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAogfSAgLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTdfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTdf
dW5pdHRlc3QuY2MKaW5kZXggYzFhZThiZGVkYzlhZmM5YTExZDBkOTIwMjFlZjc2NzdkMzk4YTlj
OS4uZTBlZmMyOWU0YTJhOTc3ZTFhNTBhNDViYjM3NTI0M2M5Njg1NDdkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYwpAQCAt
NjUsMTEgKzY1LDExIEBAIFByaW1lVGFibGUqIENyZWF0ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxl
KCkgewogLy8gY3JlYXRlIGFuZCBzdG9yZSBhbiBpbnN0YW5jZSBvZiBQcmltZVRhYmxlLgogY2xh
c3MgUHJpbWVUYWJsZVRlc3RTbXBsNyA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPENyZWF0ZVByaW1l
VGFibGVGdW5jKj4gewogIHB1YmxpYzoKLSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3RTbXBsNygp
IHsgZGVsZXRlIHRhYmxlXzsgfQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRhYmxlXyA9ICgq
R2V0UGFyYW0oKSkoKTsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIH5QcmltZVRh
YmxlVGVzdFNtcGw3KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFibGVfOyB9CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQorICB2b2lkIFRlYXJEb3du
KCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSB0YWJsZV87Ci0gICAgdGFibGVfID0gTlVMTDsKKyAg
ICB0YWJsZV8gPSBudWxscHRyOwogICB9CiAKICBwcm90ZWN0ZWQ6CkBAIC0xMTAsOCArMTEwLDgg
QEAgVEVTVF9QKFByaW1lVGFibGVUZXN0U21wbDcsIENhbkdldE5leHRQcmltZSkgewogLy8KIC8v
IEhlcmUsIHdlIGluc3RhbnRpYXRlIG91ciB0ZXN0cyB3aXRoIGEgbGlzdCBvZiB0d28gUHJpbWVU
YWJsZSBvYmplY3QKIC8vIGZhY3RvcnkgZnVuY3Rpb25zOgotSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAotICAgICAg
ICAgICAgICAgICAgICAgICAgVmFsdWVzKCZDcmVhdGVPblRoZUZseVByaW1lVGFibGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNyZWF0ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxl
PDEwMDA+KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoT25UaGVGbHlBbmRQcmVDYWxjdWxh
dGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
cygmQ3JlYXRlT25UaGVGbHlQcmltZVRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmQ3JlYXRlUHJlQ2FsY3VsYXRlZFByaW1lVGFibGU8MTAwMD4pKTsKIAogfSAgLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZThfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZThf
dW5pdHRlc3QuY2MKaW5kZXggY2U3NWNmMDMwODcwYzM3NmRmZWM2MDMxZGIyNDcxMTA4NzAzODNm
Ni4uMTA0ODhiMGVhNDUwOWE2NTkxZjA2YjA1YWM1YWUxNDQzM2I2NTJlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYwpAQCAt
MzcsNyArMzcsNiBAQAogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIG5hbWVzcGFjZSB7Ci0j
aWYgR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gU3VwcG9zZSB3ZSB3YW50IHRvIGludHJvZHVjZSBh
IG5ldywgaW1wcm92ZWQgaW1wbGVtZW50YXRpb24gb2YgUHJpbWVUYWJsZQogLy8gd2hpY2ggY29t
YmluZXMgc3BlZWQgb2YgUHJlY2FsY1ByaW1lVGFibGUgYW5kIHZlcnNhdGlsaXR5IG9mCkBAIC01
MCwyNCArNDksMjUgQEAgY2xhc3MgSHlicmlkUHJpbWVUYWJsZSA6IHB1YmxpYyBQcmltZVRhYmxl
IHsKICBwdWJsaWM6CiAgIEh5YnJpZFByaW1lVGFibGUoYm9vbCBmb3JjZV9vbl90aGVfZmx5LCBp
bnQgbWF4X3ByZWNhbGN1bGF0ZWQpCiAgICAgICA6IG9uX3RoZV9mbHlfaW1wbF8obmV3IE9uVGhl
Rmx5UHJpbWVUYWJsZSksCi0gICAgICAgIHByZWNhbGNfaW1wbF8oZm9yY2Vfb25fdGhlX2ZseSA/
IE5VTEwgOgotICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJlQ2FsY3VsYXRlZFByaW1l
VGFibGUobWF4X3ByZWNhbGN1bGF0ZWQpKSwKKyAgICAgICAgcHJlY2FsY19pbXBsXyhmb3JjZV9v
bl90aGVfZmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbHB0cgorICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IG5ldyBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZShtYXhfcHJlY2Fs
Y3VsYXRlZCkpLAogICAgICAgICBtYXhfcHJlY2FsY3VsYXRlZF8obWF4X3ByZWNhbGN1bGF0ZWQp
IHt9Ci0gIHZpcnR1YWwgfkh5YnJpZFByaW1lVGFibGUoKSB7CisgIH5IeWJyaWRQcmltZVRhYmxl
KCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSBvbl90aGVfZmx5X2ltcGxfOwogICAgIGRlbGV0ZSBw
cmVjYWxjX2ltcGxfOwogICB9CiAKLSAgdmlydHVhbCBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0
IHsKLSAgICBpZiAocHJlY2FsY19pbXBsXyAhPSBOVUxMICYmIG4gPCBtYXhfcHJlY2FsY3VsYXRl
ZF8pCisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUgeworICAgIGlmIChwcmVj
YWxjX2ltcGxfICE9IG51bGxwdHIgJiYgbiA8IG1heF9wcmVjYWxjdWxhdGVkXykKICAgICAgIHJl
dHVybiBwcmVjYWxjX2ltcGxfLT5Jc1ByaW1lKG4pOwogICAgIGVsc2UKICAgICAgIHJldHVybiBv
bl90aGVfZmx5X2ltcGxfLT5Jc1ByaW1lKG4pOwogICB9CiAKLSAgdmlydHVhbCBpbnQgR2V0TmV4
dFByaW1lKGludCBwKSBjb25zdCB7CisgIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IG92
ZXJyaWRlIHsKICAgICBpbnQgbmV4dF9wcmltZSA9IC0xOwotICAgIGlmIChwcmVjYWxjX2ltcGxf
ICE9IE5VTEwgJiYgcCA8IG1heF9wcmVjYWxjdWxhdGVkXykKKyAgICBpZiAocHJlY2FsY19pbXBs
XyAhPSBudWxscHRyICYmIHAgPCBtYXhfcHJlY2FsY3VsYXRlZF8pCiAgICAgICBuZXh0X3ByaW1l
ID0gcHJlY2FsY19pbXBsXy0+R2V0TmV4dFByaW1lKHApOwogCiAgICAgcmV0dXJuIG5leHRfcHJp
bWUgIT0gLTEgPyBuZXh0X3ByaW1lIDogb25fdGhlX2ZseV9pbXBsXy0+R2V0TmV4dFByaW1lKHAp
OwpAQCAtODksMjQgKzg5LDE3IEBAIHVzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKIC8vIFByZUNh
bGN1bGF0ZWRQcmltZVRhYmxlIGRpc2FibGVkLiBXZSBkbyB0aGlzIGJ5IGRlZmluaW5nIGZpeHR1
cmUgd2hpY2ggd2lsbAogLy8gYWNjZXB0IGRpZmZlcmVudCBjb21iaW5hdGlvbnMgb2YgcGFyYW1l
dGVycyBmb3IgaW5zdGFudGlhdGluZyBhCiAvLyBIeWJyaWRQcmltZVRhYmxlIGluc3RhbmNlLgot
Y2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTwgOjp0ZXN0aW5nOjp0
dXBsZTxib29sLCBpbnQ+ID4geworY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdp
dGhQYXJhbTwgOjpzdGQ6OnR1cGxlPGJvb2wsIGludD4gPiB7CiAgcHJvdGVjdGVkOgotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8gVGhpcyBjYW4gYmUgd3JpdHRlbiBhcwotICAgIC8v
Ci0gICAgLy8gYm9vbCBmb3JjZV9vbl90aGVfZmx5OwotICAgIC8vIGludCBtYXhfcHJlY2FsY3Vs
YXRlZDsKLSAgICAvLyB0aWUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1bGF0ZWQpID0g
R2V0UGFyYW0oKTsKLSAgICAvLwotICAgIC8vIG9uY2UgdGhlIEdvb2dsZSBDKysgU3R5bGUgR3Vp
ZGUgYWxsb3dzIHVzZSBvZiA6OnN0ZDo6dHIxOjp0aWUuCi0gICAgLy8KLSAgICBib29sIGZvcmNl
X29uX3RoZV9mbHkgPSA6OnRlc3Rpbmc6OmdldDwwPihHZXRQYXJhbSgpKTsKLSAgICBpbnQgbWF4
X3ByZWNhbGN1bGF0ZWQgPSA6OnRlc3Rpbmc6OmdldDwxPihHZXRQYXJhbSgpKTsKKyAgdm9pZCBT
ZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBib29sIGZvcmNlX29uX3RoZV9mbHk7CisgICAgaW50IG1h
eF9wcmVjYWxjdWxhdGVkOworICAgIHN0ZDo6dGllKGZvcmNlX29uX3RoZV9mbHksIG1heF9wcmVj
YWxjdWxhdGVkKSA9IEdldFBhcmFtKCk7CiAgICAgdGFibGVfID0gbmV3IEh5YnJpZFByaW1lVGFi
bGUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1bGF0ZWQpOwogICB9Ci0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxl
dGUgdGFibGVfOwotICAgIHRhYmxlXyA9IE5VTEw7CisgICAgdGFibGVfID0gbnVsbHB0cjsKICAg
fQogICBIeWJyaWRQcmltZVRhYmxlKiB0YWJsZV87CiB9OwpAQCAtMTU1LDE5ICsxNDgsNyBAQCBU
RVNUX1AoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQcmltZSkgewogLy8gd2lsbCBwdXQgc29t
ZSBvZiB0aGUgdGVzdGVkIG51bWJlcnMgYmV5b25kIHRoZSBjYXBhYmlsaXR5IG9mIHRoZQogLy8g
UHJlY2FsY1ByaW1lVGFibGUgaW5zdGFuY2UgYW5kIHNvbWUgaW5zaWRlIGl0ICgxMCkuIENvbWJp
bmUgd2lsbCBwcm9kdWNlIGFsbAogLy8gcG9zc2libGUgY29tYmluYXRpb25zLgotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoTWVhbmluZ2Z1bFRlc3RQYXJhbWV0ZXJzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgUHJpbWVUYWJsZVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5l
KEJvb2woKSwgVmFsdWVzKDEsIDEwKSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE1lYW5p
bmdmdWxUZXN0UGFyYW1ldGVycywgUHJpbWVUYWJsZVRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgQ29tYmluZShCb29sKCksIFZhbHVlcygxLCAxMCkpKTsKIAotI2Vsc2UKLQotLy8gR29v
Z2xlIFRlc3QgbWF5IG5vdCBzdXBwb3J0IENvbWJpbmUoKSB3aXRoIHNvbWUgY29tcGlsZXJzLiBJ
ZiB3ZQotLy8gdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGNvbXBpbGUgb3V0IGFsbCBj
b2RlIHJlZmVycmluZyB0bwotLy8gdGhlIGd0ZXN0X21haW4gbGlicmFyeSwgTVNWQyBsaW5rZXIg
d2lsbCBub3QgbGluayB0aGF0IGxpYnJhcnkgYXQKLS8vIGFsbCBhbmQgY29uc2VxdWVudGx5IGNv
bXBsYWluIGFib3V0IG1pc3NpbmcgZW50cnkgcG9pbnQgZGVmaW5lZCBpbgotLy8gdGhhdCBsaWJy
YXJ5IChmYXRhbCBlcnJvciBMTksxNTYxOiBlbnRyeSBwb2ludCBtdXN0IGJlCi0vLyBkZWZpbmVk
KS4gVGhpcyBkdW1teSB0ZXN0IGtlZXBzIGd0ZXN0X21haW4gbGlua2VkIGluLgotVEVTVChEdW1t
eVRlc3QsIENvbWJpbmVJc05vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7fQotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19DT01CSU5FCiB9ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwppbmRleCA1M2Y5YWY1
YmExZGZjMjY5NTY2MDc4ZjIzNmY2OTU1OTlkYzUyYWRhLi5lNTAyZDA4ZDczZTdkNzBiZWRlODZj
YmQ3MTE3NTRjZDA5ZGU4NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCkBAIC00OSwxNiArNDksMTYgQEAgbmFtZXNwYWNl
IHsKIGNsYXNzIFRlcnNlUHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsK
ICBwcml2YXRlOgogICAvLyBDYWxsZWQgYmVmb3JlIGFueSB0ZXN0IGFjdGl2aXR5IHN0YXJ0cy4K
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5p
dF90ZXN0ICovKSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYg
LyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7fQogCiAgIC8vIENhbGxlZCBhZnRlciBhbGwgdGVz
dCBhY3Rpdml0aWVzIGhhdmUgZW5kZWQuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5k
KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwg
IlRFU1QgJXNcbiIsIHVuaXRfdGVzdC5QYXNzZWQoKSA/ICJQQVNTRUQiIDogIkZBSUxFRCIpOwog
ICAgIGZmbHVzaChzdGRvdXQpOwogICB9CiAKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3Rh
cnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5m
bykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJy
aWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIqKiogVGVzdCAlcy4lcyBz
dGFydGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwKQEAg
LTY3LDcgKzY3LDcgQEAgY2xhc3MgVGVyc2VQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50
TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVkIGFzc2VydGlvbiBv
ciBhIFNVQ0NFRUQoKSBpbnZvY2F0aW9uLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3Vs
dChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgeworICB2b2lkIE9uVGVz
dFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIG92ZXJy
aWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIlcyBpbiAlczolZFxuJXNc
biIsCiAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJl
IiA6ICJTdWNjZXNzIiwKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgVGVyc2VQcmludGVyIDogcHVi
bGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEg
dGVzdCBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3Zl
cnJpZGUgewogICAgIGZwcmludGYoc3Rkb3V0LAogICAgICAgICAgICAgIioqKiBUZXN0ICVzLiVz
IGVuZGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwKQEAg
LTEzNSwxMCArMTM1LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAv
LyBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgdGhlIFVuaXRUZXN0IHJlZmxlY3Rpb24gQVBJ
IHRvIGluc3BlY3QgdGVzdAogICAvLyByZXN1bHRzLiBIZXJlIHdlIGRpc2NvdW50IGZhaWx1cmVz
IGZyb20gdGhlIHRlc3RzIHdlIGV4cGVjdGVkIHRvIGZhaWwuCiAgIGludCB1bmV4cGVjdGVkbHlf
ZmFpbGVkX3Rlc3RzID0gMDsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2Ug
PSAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpOwotICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVz
dF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvID0gKnRlc3RfY2FzZS5HZXRUZXN0SW5mbyhqKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBjb25z
dCB0ZXN0aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUgPSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0
ZShpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUudG90YWxfdGVzdF9jb3Vu
dCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8gPSAqdGVzdF9zdWl0
ZS5HZXRUZXN0SW5mbyhqKTsKICAgICAgIC8vIENvdW50cyBmYWlsZWQgdGVzdHMgdGhhdCB3ZXJl
IG5vdCBtZWFudCB0byBmYWlsICh0aG9zZSB3aXRob3V0CiAgICAgICAvLyAnRmFpbHMnIGluIHRo
ZSBuYW1lKS4KICAgICAgIGlmICh0ZXN0X2luZm8ucmVzdWx0KCktPkZhaWxlZCgpICYmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURNRS5tZCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMzU5ZmVk
OTIzMmI1MDdjNDRlNTViNDAyYWU2ZTY1OGJmOWE2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURNRS5tZApAQCAtMCwwICsxLDUgQEAKKyMg
UGxlYXNlIE5vdGU6CisKK0ZpbGVzIGluIHRoaXMgZGlyZWN0b3J5IGFyZSBubyBsb25nZXIgc3Vw
cG9ydGVkIGJ5IHRoZSBtYWludGFpbmVycy4gVGhleQorcmVwcmVzZW50IG1vc3R5IGhpc3Rvcmlj
YWwgYXJ0aWZhY3RzIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGNvbW11bml0eSBvbmx5LiBUaGVyZQor
aXMgbm8gZ3VhcmFudGVlIHdoYXRzb2V2ZXIgdGhhdCB0aGVzZSBzY3JpcHRzIHN0aWxsIHdvcmsu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9w
cmVkX2ltcGwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9w
cmVkX2ltcGwucHkKaW5kZXggYjQzZWZkZjQxZTVjMDI3NDBmNzJiMzU1MzJiZTVjZjA0OTc5NDgz
NS4uZTA5YTZlMDE3NzhkOTc0ZWFkOTc2YTVlZGY3OWZiNWQ0MzRhMzYzMiAxMDA3NTUKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9nZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5Cisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5w
eQpAQCAtNzgsNyArNzgsNyBAQCBkZWYgSGVhZGVyUHJlYW1ibGUobik6CiAgICAgfQogCiAgIHJl
dHVybiAoCi0iIiIvLyBDb3B5cmlnaHQgMjAwNiwgR29vZ2xlIEluYy4KKyAgIiIiLy8gQ29weXJp
Z2h0IDIwMDYsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8KIC8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMTExLDYgKzExMSw4IEBAIGRlZiBIZWFkZXJQcmVhbWJsZShuKToKIC8vICcl
KGNvbW1hbmQpcycuICBETyBOT1QgRURJVCBCWSBIQU5EIQogLy8KIC8vIEltcGxlbWVudHMgYSBm
YW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3Jvcy4KKy8vIEdPT0dMRVRF
U1RfQ00wMDAxIERPIE5PVCBERUxFVEUKKwogCiAjaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCiAjZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJF
RF9JTVBMX0hfCkBAIC0yNDYsOCArMjQ4LDEwIEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVk
JShuKXNIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0IiIiICUgREVGUwogCiAgIGltcGwgKz0g
JyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIicKIAotICBpbXBsICs9IEl0ZXIobiwg
IiIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxcbiIgPDwgZSVzIDw8ICIgZXZh
bHVhdGVzIHRvICIgPDwgdiVzIiIiKQorICBpbXBsICs9IEl0ZXIoCisgICAgICBuLCAiIiIKKyAg
ICAgIDw8ICJcXG4iIDw8IGUlcyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJp
bnRUb1N0cmluZyh2JXMpIiIiCisgICkKIAogICBpbXBsICs9ICIiIjsKIH0KQEAgLTMzMyw3ICsz
MzcsNyBAQCBkZWYgVW5pdFRlc3RQcmVhbWJsZSgpOgogICAgIH0KIAogICByZXR1cm4gKAotIiIi
Ly8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCisgICIiIi8vIENvcHlyaWdodCAyMDA2LCBH
b29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTQyNyw3ICs0MzEsNyBAQCBkZWYgVGVzdHNGb3JBcml0eShuKToKICAgICB9CiAKICAgdGVzdHMg
PSAoCi0iIiIvLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0b3JzIGZvciB0ZXN0aW5nICUoYXJpdHkp
cyBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KKyAgIiIiLy8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9y
cyBmb3IgdGVzdGluZyAlKGFyaXR5KXMgcHJlZGljYXRlIGFzc2VydGlvbnMuCiAKIC8vIEEgJShh
cml0eSlzIHByZWRpY2F0ZSBmdW5jdGlvbi4KIHRlbXBsYXRlIDwlKHR5cGVzKXM+CkBAIC00MzUs
OSArNDM5LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24lKG4pcyglKHR2cylzKSB7CiAgIHJldHVybiAl
KHZfc3VtKXMgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5l
ZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGlt
ZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8g
VGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVy
IGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1
bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24lKG4pc0ludCgl
KGludF92cylzKSB7CiAgIHJldHVybiAlKHZfc3VtKXMgPiAwOwogfQpAQCAtNTEwLDcgKzUxMyw3
IEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvciUobilzIHsKIAogY2xhc3MgUHJlZGljYXRlJShu
KXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVjdGVkX3Rv
X2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOyIiIiAlIERFRlMKIApAQCAt
NTIwLDcgKzUyMyw3IEBAIGNsYXNzIFByZWRpY2F0ZSUobilzVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICIiIgogCiAgIHRlc3RzICs9ICIiIgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBl
YWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAgIC8vIGV4
YWN0bHkgb25jZS4iIiIKIApAQCAtNTQwLDEwICs1NDMsMTAgQEAgY2xhc3MgUHJlZGljYXRlJShu
KXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUg
aWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8v
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVu
IHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0
cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBp
ZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZmluaXNoZWRfOwogIiIiICUgREVGUwogCkBAIC01NzIsMTIgKzU3NSwxMiBAQCB0
eXBlZGVmIFByZWRpY2F0ZSUobilzVGVzdCBBU1NFUlRfUFJFRCUobilzVGVzdDsKICAgICAiIiJS
ZXR1cm5zIHRoZSB0ZXN0IGZvciBhIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFjcm8uCiAKICAgICBB
cmdzOgotICAgICAgdXNlX2Zvcm1hdDogICAgIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYSAq
X1BSRURfRk9STUFUKi4KLSAgICAgIHVzZV9hc3NlcnQ6ICAgICB0cnVlIGlmZiB0aGUgYXNzZXJ0
aW9uIGlzIGEgQVNTRVJUXyouCi0gICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBpZmYgdGhlIGFz
c2VydGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgotICAgICAgdXNlX2Z1bmN0b3I6ICAgIHRydWUg
aWZmIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgYXNzZXJ0aW9uIGlzCisgICAgICB1c2VfZm9y
bWF0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGEgKl9QUkVEX0ZP
Uk1BVCouCisgICAgICB1c2VfYXNzZXJ0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNz
ZXJ0aW9uIGlzIGEgQVNTRVJUXyouCisgICAgICBleHBlY3RfZmFpbHVyZTogdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgICAgICB1c2VfZnVu
Y3RvcjogICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGFz
c2VydGlvbiBpcwogICAgICAgICAgICAgICAgICAgICAgIGEgZnVuY3RvciAoYXMgb3Bwb3NlZCB0
byBhIGZ1bmN0aW9uKQotICAgICAgdXNlX3VzZXJfdHlwZTogIHRydWUgaWZmIHRoZSBwcmVkaWNh
dGUgZnVuY3Rvci9mdW5jdGlvbiB0YWtlcworICAgICAgdXNlX3VzZXJfdHlwZTogIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSBmdW5jdG9yL2Z1bmN0aW9uIHRha2VzCiAgICAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnQocykgb2YgYSB1c2VyLWRlZmluZWQgdHlwZS4KIAogICAg
IEV4YW1wbGU6CkBAIC01ODgsNyArNTkxLDcgQEAgdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3Qg
QVNTRVJUX1BSRUQlKG4pc1Rlc3Q7CiAKICAgICBpZiB1c2VfYXNzZXJ0OgogICAgICAgYXNzcnQg
PSAnQVNTRVJUJyAgIyAnYXNzZXJ0JyBpcyByZXNlcnZlZCwgc28gd2UgY2Fubm90IHVzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGlkZW50aWZpZXIgaGVyZS4KKyAgICAgICMgdGhh
dCBpZGVudGlmaWVyIGhlcmUuCiAgICAgZWxzZToKICAgICAgIGFzc3J0ID0gJ0VYUEVDVCcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1wLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCA1ZWZiNjUzYzIwN2QxZjFjMmFlY2M0ZDY5MGJmNzMyZTNjMWQ3MWFiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1NSArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJwdW1wIHYw
LjIuMCAtIFByZXR0eSBVc2VmdWwgZm9yIE1ldGEgUHJvZ3JhbW1pbmcuCi0KLUEgdG9vbCBmb3Ig
cHJlcHJvY2Vzc29yIG1ldGEgcHJvZ3JhbW1pbmcuICBVc2VmdWwgZm9yIGdlbmVyYXRpbmcKLXJl
cGV0aXRpdmUgYm9pbGVycGxhdGUgY29kZS4gIEVzcGVjaWFsbHkgdXNlZnVsIGZvciB3cml0aW5n
IEMrKwotY2xhc3NlcywgZnVuY3Rpb25zLCBtYWNyb3MsIGFuZCB0ZW1wbGF0ZXMgdGhhdCBuZWVk
IHRvIHdvcmsgd2l0aAotdmFyaW91cyBudW1iZXIgb2YgYXJndW1lbnRzLgotCi1VU0FHRToKLSAg
ICAgICBwdW1wLnB5IFNPVVJDRV9GSUxFCi0KLUVYQU1QTEVTOgotICAgICAgIHB1bXAucHkgZm9v
LmNjLnB1bXAKLSAgICAgICAgIENvbnZlcnRzIGZvby5jYy5wdW1wIHRvIGZvby5jYy4KLQotR1JB
TU1BUjoKLSAgICAgICBDT0RFIDo6PSBBVE9NSUNfQ09ERSoKLSAgICAgICBBVE9NSUNfQ09ERSA6
Oj0gJHZhciBJRCA9IEVYUFJFU1NJT04KLSAgICAgICAgICAgfCAkdmFyIElEID0gW1sgQ09ERSBd
XQotICAgICAgICAgICB8ICRyYW5nZSBJRCBFWFBSRVNTSU9OLi5FWFBSRVNTSU9OCi0gICAgICAg
ICAgIHwgJGZvciBJRCBTRVBBUkFUT1IgW1sgQ09ERSBdXQotICAgICAgICAgICB8ICQoJCkKLSAg
ICAgICAgICAgfCAkSUQKLSAgICAgICAgICAgfCAkKEVYUFJFU1NJT04pCi0gICAgICAgICAgIHwg
JGlmIEVYUFJFU1NJT04gW1sgQ09ERSBdXSBFTFNFX0JSQU5DSAotICAgICAgICAgICB8IFtbIENP
REUgXV0KLSAgICAgICAgICAgfCBSQVdfQ09ERQotICAgICAgIFNFUEFSQVRPUiA6Oj0gUkFXX0NP
REUgfCBFTVBUWQotICAgICAgIEVMU0VfQlJBTkNIIDo6PSAkZWxzZSBbWyBDT0RFIF1dCi0gICAg
ICAgICAgIHwgJGVsaWYgRVhQUkVTU0lPTiBbWyBDT0RFIF1dIEVMU0VfQlJBTkNICi0gICAgICAg
ICAgIHwgRU1QVFkKLSAgICAgICBFWFBSRVNTSU9OIGhhcyBQeXRob24gc3ludGF4LgotIiIiCi0K
LV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpoYW55b25nIFdhbiknCi0KLWltcG9ydCBv
cwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLQotVE9LRU5fVEFCTEUgPSBbCi0gICAgKHJlLmNv
bXBpbGUocidcJHZhclxzKycpLCAnJHZhcicpLAotICAgIChyZS5jb21waWxlKHInXCRlbGlmXHMr
JyksICckZWxpZicpLAotICAgIChyZS5jb21waWxlKHInXCRlbHNlXHMrJyksICckZWxzZScpLAot
ICAgIChyZS5jb21waWxlKHInXCRmb3JccysnKSwgJyRmb3InKSwKLSAgICAocmUuY29tcGlsZShy
J1wkaWZccysnKSwgJyRpZicpLAotICAgIChyZS5jb21waWxlKHInXCRyYW5nZVxzKycpLCAnJHJh
bmdlJyksCi0gICAgKHJlLmNvbXBpbGUocidcJFtfQS1aYS16XVx3KicpLCAnJGlkJyksCi0gICAg
KHJlLmNvbXBpbGUocidcJFwoXCRcKScpLCAnJCgkKScpLAotICAgIChyZS5jb21waWxlKHInXCQn
KSwgJyQnKSwKLSAgICAocmUuY29tcGlsZShyJ1xbXFtcbj8nKSwgJ1tbJyksCi0gICAgKHJlLmNv
bXBpbGUocidcXVxdXG4/JyksICddXScpLAotICAgIF0KLQotCi1jbGFzcyBDdXJzb3I6Ci0gICIi
IlJlcHJlc2VudHMgYSBwb3NpdGlvbiAobGluZSBhbmQgY29sdW1uKSBpbiBhIHRleHQgZmlsZS4i
IiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgbGluZT0tMSwgY29sdW1uPS0xKToKLSAgICBzZWxm
LmxpbmUgPSBsaW5lCi0gICAgc2VsZi5jb2x1bW4gPSBjb2x1bW4KLQotICBkZWYgX19lcV9fKHNl
bGYsIHJocyk6Ci0gICAgcmV0dXJuIHNlbGYubGluZSA9PSByaHMubGluZSBhbmQgc2VsZi5jb2x1
bW4gPT0gcmhzLmNvbHVtbgotCi0gIGRlZiBfX25lX18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4g
bm90IHNlbGYgPT0gcmhzCi0KLSAgZGVmIF9fbHRfXyhzZWxmLCByaHMpOgotICAgIHJldHVybiBz
ZWxmLmxpbmUgPCByaHMubGluZSBvciAoCi0gICAgICAgIHNlbGYubGluZSA9PSByaHMubGluZSBh
bmQgc2VsZi5jb2x1bW4gPCByaHMuY29sdW1uKQotCi0gIGRlZiBfX2xlX18oc2VsZiwgcmhzKToK
LSAgICByZXR1cm4gc2VsZiA8IHJocyBvciBzZWxmID09IHJocwotCi0gIGRlZiBfX2d0X18oc2Vs
ZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDwgc2VsZgotCi0gIGRlZiBfX2dlX18oc2VsZiwgcmhz
KToKLSAgICByZXR1cm4gcmhzIDw9IHNlbGYKLQotICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICBp
ZiBzZWxmID09IEVvZigpOgotICAgICAgcmV0dXJuICdFT0YnCi0gICAgZWxzZToKLSAgICAgIHJl
dHVybiAnJXMoJXMpJyAlIChzZWxmLmxpbmUgKyAxLCBzZWxmLmNvbHVtbikKLQotICBkZWYgX19h
ZGRfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNv
bHVtbiArIG9mZnNldCkKLQotICBkZWYgX19zdWJfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVy
biBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbiAtIG9mZnNldCkKLQotICBkZWYgQ2xvbmUo
c2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJldHVybiBD
dXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbikKLQotCi0jIFNwZWNpYWwgY3Vyc29yIHRvIGlu
ZGljYXRlIHRoZSBlbmQtb2YtZmlsZS4KLWRlZiBFb2YoKToKLSAgIiIiUmV0dXJucyB0aGUgc3Bl
Y2lhbCBjdXJzb3IgdG8gZGVub3RlIHRoZSBlbmQtb2YtZmlsZS4iIiIKLSAgcmV0dXJuIEN1cnNv
cigtMSwgLTEpCi0KLQotY2xhc3MgVG9rZW46Ci0gICIiIlJlcHJlc2VudHMgYSB0b2tlbiBpbiBh
IFB1bXAgc291cmNlIGZpbGUuIiIiCi0KLSAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0PU5vbmUs
IGVuZD1Ob25lLCB2YWx1ZT1Ob25lLCB0b2tlbl90eXBlPU5vbmUpOgotICAgIGlmIHN0YXJ0IGlz
IE5vbmU6Ci0gICAgICBzZWxmLnN0YXJ0ID0gRW9mKCkKLSAgICBlbHNlOgotICAgICAgc2VsZi5z
dGFydCA9IHN0YXJ0Ci0gICAgaWYgZW5kIGlzIE5vbmU6Ci0gICAgICBzZWxmLmVuZCA9IEVvZigp
Ci0gICAgZWxzZToKLSAgICAgIHNlbGYuZW5kID0gZW5kCi0gICAgc2VsZi52YWx1ZSA9IHZhbHVl
Ci0gICAgc2VsZi50b2tlbl90eXBlID0gdG9rZW5fdHlwZQotCi0gIGRlZiBfX3N0cl9fKHNlbGYp
OgotICAgIHJldHVybiAnVG9rZW4gQCVzOiBcJyVzXCcgdHlwZT0lcycgJSAoCi0gICAgICAgIHNl
bGYuc3RhcnQsIHNlbGYudmFsdWUsIHNlbGYudG9rZW5fdHlwZSkKLQotICBkZWYgQ2xvbmUoc2Vs
Zik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4iIiIKLQotICAgIHJldHVybiBUb2tl
bihzZWxmLnN0YXJ0LkNsb25lKCksIHNlbGYuZW5kLkNsb25lKCksIHNlbGYudmFsdWUsCi0gICAg
ICAgICAgICAgICAgIHNlbGYudG9rZW5fdHlwZSkKLQotCi1kZWYgU3RhcnRzV2l0aChsaW5lcywg
cG9zLCBzdHJpbmcpOgotICAiIiJSZXR1cm5zIFRydWUgaWZmIHRoZSBnaXZlbiBwb3NpdGlvbiBp
biBsaW5lcyBzdGFydHMgd2l0aCAnc3RyaW5nJy4iIiIKLQotICByZXR1cm4gbGluZXNbcG9zLmxp
bmVdW3Bvcy5jb2x1bW46XS5zdGFydHN3aXRoKHN0cmluZykKLQotCi1kZWYgRmluZEZpcnN0SW5M
aW5lKGxpbmUsIHRva2VuX3RhYmxlKToKLSAgYmVzdF9tYXRjaF9zdGFydCA9IC0xCi0gIGZvciAo
cmVnZXgsIHRva2VuX3R5cGUpIGluIHRva2VuX3RhYmxlOgotICAgIG0gPSByZWdleC5zZWFyY2go
bGluZSkKLSAgICBpZiBtOgotICAgICAgIyBXZSBmb3VuZCByZWdleCBpbiBsaW5lcwotICAgICAg
aWYgYmVzdF9tYXRjaF9zdGFydCA8IDAgb3IgbS5zdGFydCgpIDwgYmVzdF9tYXRjaF9zdGFydDoK
LSAgICAgICAgYmVzdF9tYXRjaF9zdGFydCA9IG0uc3RhcnQoKQotICAgICAgICBiZXN0X21hdGNo
X2xlbmd0aCA9IG0uZW5kKCkgLSBtLnN0YXJ0KCkKLSAgICAgICAgYmVzdF9tYXRjaF90b2tlbl90
eXBlID0gdG9rZW5fdHlwZQotCi0gIGlmIGJlc3RfbWF0Y2hfc3RhcnQgPCAwOgotICAgIHJldHVy
biBOb25lCi0KLSAgcmV0dXJuIChiZXN0X21hdGNoX3N0YXJ0LCBiZXN0X21hdGNoX2xlbmd0aCwg
YmVzdF9tYXRjaF90b2tlbl90eXBlKQotCi0KLWRlZiBGaW5kRmlyc3QobGluZXMsIHRva2VuX3Rh
YmxlLCBjdXJzb3IpOgotICAiIiJGaW5kcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBhbnkgc3Ry
aW5nIGluIHN0cmluZ3MgaW4gbGluZXMuIiIiCi0KLSAgc3RhcnQgPSBjdXJzb3IuQ2xvbmUoKQot
ICBjdXJfbGluZV9udW1iZXIgPSBjdXJzb3IubGluZQotICBmb3IgbGluZSBpbiBsaW5lc1tzdGFy
dC5saW5lOl06Ci0gICAgaWYgY3VyX2xpbmVfbnVtYmVyID09IHN0YXJ0LmxpbmU6Ci0gICAgICBs
aW5lID0gbGluZVtzdGFydC5jb2x1bW46XQotICAgIG0gPSBGaW5kRmlyc3RJbkxpbmUobGluZSwg
dG9rZW5fdGFibGUpCi0gICAgaWYgbToKLSAgICAgICMgV2UgZm91bmQgYSByZWdleCBpbiBsaW5l
LgotICAgICAgKHN0YXJ0X2NvbHVtbiwgbGVuZ3RoLCB0b2tlbl90eXBlKSA9IG0KLSAgICAgIGlm
IGN1cl9saW5lX251bWJlciA9PSBzdGFydC5saW5lOgotICAgICAgICBzdGFydF9jb2x1bW4gKz0g
c3RhcnQuY29sdW1uCi0gICAgICBmb3VuZF9zdGFydCA9IEN1cnNvcihjdXJfbGluZV9udW1iZXIs
IHN0YXJ0X2NvbHVtbikKLSAgICAgIGZvdW5kX2VuZCA9IGZvdW5kX3N0YXJ0ICsgbGVuZ3RoCi0g
ICAgICByZXR1cm4gTWFrZVRva2VuKGxpbmVzLCBmb3VuZF9zdGFydCwgZm91bmRfZW5kLCB0b2tl
bl90eXBlKQotICAgIGN1cl9saW5lX251bWJlciArPSAxCi0gICMgV2UgZmFpbGVkIHRvIGZpbmQg
c3RyIGluIGxpbmVzCi0gIHJldHVybiBOb25lCi0KLQotZGVmIFN1YlN0cmluZyhsaW5lcywgc3Rh
cnQsIGVuZCk6Ci0gICIiIlJldHVybnMgYSBzdWJzdHJpbmcgaW4gbGluZXMuIiIiCi0KLSAgaWYg
ZW5kID09IEVvZigpOgotICAgIGVuZCA9IEN1cnNvcihsZW4obGluZXMpIC0gMSwgbGVuKGxpbmVz
Wy0xXSkpCi0KLSAgaWYgc3RhcnQgPj0gZW5kOgotICAgIHJldHVybiAnJwotCi0gIGlmIHN0YXJ0
LmxpbmUgPT0gZW5kLmxpbmU6Ci0gICAgcmV0dXJuIGxpbmVzW3N0YXJ0LmxpbmVdW3N0YXJ0LmNv
bHVtbjplbmQuY29sdW1uXQotCi0gIHJlc3VsdF9saW5lcyA9IChbbGluZXNbc3RhcnQubGluZV1b
c3RhcnQuY29sdW1uOl1dICsKLSAgICAgICAgICAgICAgICAgIGxpbmVzW3N0YXJ0LmxpbmUgKyAx
OmVuZC5saW5lXSArCi0gICAgICAgICAgICAgICAgICBbbGluZXNbZW5kLmxpbmVdWzplbmQuY29s
dW1uXV0pCi0gIHJldHVybiAnJy5qb2luKHJlc3VsdF9saW5lcykKLQotCi1kZWYgU3RyaXBNZXRh
Q29tbWVudHMoc3RyKToKLSAgIiIiU3RyaXAgbWV0YSBjb21tZW50cyBmcm9tIGVhY2ggbGluZSBp
biB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotCi0gICMgRmlyc3QsIGNvbXBsZXRlbHkgcmVtb3ZlIGxp
bmVzIGNvbnRhaW5pbmcgbm90aGluZyBidXQgYSBtZXRhCi0gICMgY29tbWVudCwgaW5jbHVkaW5n
IHRoZSB0cmFpbGluZyBcbi4KLSAgc3RyID0gcmUuc3ViKHInXlxzKlwkXCQuKlxuJywgJycsIHN0
cikKLQotICAjIFRoZW4sIHJlbW92ZSBtZXRhIGNvbW1lbnRzIGZyb20gY29udGVudGZ1bCBsaW5l
cy4KLSAgcmV0dXJuIHJlLnN1YihyJ1xzKlwkXCQuKicsICcnLCBzdHIpCi0KLQotZGVmIE1ha2VU
b2tlbihsaW5lcywgc3RhcnQsIGVuZCwgdG9rZW5fdHlwZSk6Ci0gICIiIkNyZWF0ZXMgYSBuZXcg
aW5zdGFuY2Ugb2YgVG9rZW4uIiIiCi0KLSAgcmV0dXJuIFRva2VuKHN0YXJ0LCBlbmQsIFN1YlN0
cmluZyhsaW5lcywgc3RhcnQsIGVuZCksIHRva2VuX3R5cGUpCi0KLQotZGVmIFBhcnNlVG9rZW4o
bGluZXMsIHBvcywgcmVnZXgsIHRva2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVd
W3Bvcy5jb2x1bW46XQotICBtID0gcmVnZXguc2VhcmNoKGxpbmUpCi0gIGlmIG0gYW5kIG5vdCBt
LnN0YXJ0KCk6Ci0gICAgcmV0dXJuIE1ha2VUb2tlbihsaW5lcywgcG9zLCBwb3MgKyBtLmVuZCgp
LCB0b2tlbl90eXBlKQotICBlbHNlOgotICAgIHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQg
JXMuJyAlICh0b2tlbl90eXBlLCBwb3MpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1JRF9SRUdFWCA9
IHJlLmNvbXBpbGUocidbX0EtWmEtel1cdyonKQotRVFfUkVHRVggPSByZS5jb21waWxlKHInPScp
Ci1SRVNUX09GX0xJTkVfUkVHRVggPSByZS5jb21waWxlKHInLio/KD89JHxcJFwkKScpCi1PUFRJ
T05BTF9XSElURV9TUEFDRVNfUkVHRVggPSByZS5jb21waWxlKHInXHMqJykKLVdISVRFX1NQQUNF
X1JFR0VYID0gcmUuY29tcGlsZShyJ1xzJykKLURPVF9ET1RfUkVHRVggPSByZS5jb21waWxlKHIn
XC5cLicpCi0KLQotZGVmIFNraXAobGluZXMsIHBvcywgcmVnZXgpOgotICBsaW5lID0gbGluZXNb
cG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBp
ZiBtIGFuZCBub3QgbS5zdGFydCgpOgotICAgIHJldHVybiBwb3MgKyBtLmVuZCgpCi0gIGVsc2U6
Ci0gICAgcmV0dXJuIHBvcwotCi0KLWRlZiBTa2lwVW50aWwobGluZXMsIHBvcywgcmVnZXgsIHRv
a2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0g
cmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBpZiBtOgotICAgIHJldHVybiBwb3MgKyBtLnN0YXJ0
KCkKLSAgZWxzZToKLSAgICBwcmludCAoJ0VSUk9SOiAlcyBleHBlY3RlZCBvbiBsaW5lICVzIGFm
dGVyIGNvbHVtbiAlcy4nICUKLSAgICAgICAgICAgKHRva2VuX3R5cGUsIHBvcy5saW5lICsgMSwg
cG9zLmNvbHVtbikpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1kZWYgUGFyc2VFeHBUb2tlbkluUGFy
ZW5zKGxpbmVzLCBwb3MpOgotICBkZWYgUGFyc2VJblBhcmVucyhwb3MpOgotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgT1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYKQotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgcidcKCcpCi0gICAgcG9zID0gUGFyc2UocG9zKQotICAgIHBvcyA9IFNr
aXAobGluZXMsIHBvcywgcidcKScpCi0gICAgcmV0dXJuIHBvcwotCi0gIGRlZiBQYXJzZShwb3Mp
OgotICAgIHBvcyA9IFNraXBVbnRpbChsaW5lcywgcG9zLCByJ1wofFwpJywgJyknKQotICAgIGlm
IFN1YlN0cmluZyhsaW5lcywgcG9zLCBwb3MgKyAxKSA9PSAnKCc6Ci0gICAgICBwb3MgPSBQYXJz
ZShwb3MgKyAxKQotICAgICAgcG9zID0gU2tpcChsaW5lcywgcG9zLCByJ1wpJykKLSAgICAgIHJl
dHVybiBQYXJzZShwb3MpCi0gICAgZWxzZToKLSAgICAgIHJldHVybiBwb3MKLQotICBzdGFydCA9
IHBvcy5DbG9uZSgpCi0gIHBvcyA9IFBhcnNlSW5QYXJlbnMocG9zKQotICByZXR1cm4gTWFrZVRv
a2VuKGxpbmVzLCBzdGFydCwgcG9zLCAnZXhwJykKLQotCi1kZWYgUlN0cmlwTmV3TGluZUZyb21U
b2tlbih0b2tlbik6Ci0gIGlmIHRva2VuLnZhbHVlLmVuZHN3aXRoKCdcbicpOgotICAgIHJldHVy
biBUb2tlbih0b2tlbi5zdGFydCwgdG9rZW4uZW5kLCB0b2tlbi52YWx1ZVs6LTFdLCB0b2tlbi50
b2tlbl90eXBlKQotICBlbHNlOgotICAgIHJldHVybiB0b2tlbgotCi0KLWRlZiBUb2tlbml6ZUxp
bmVzKGxpbmVzLCBwb3MpOgotICB3aGlsZSBUcnVlOgotICAgIGZvdW5kID0gRmluZEZpcnN0KGxp
bmVzLCBUT0tFTl9UQUJMRSwgcG9zKQotICAgIGlmIG5vdCBmb3VuZDoKLSAgICAgIHlpZWxkIE1h
a2VUb2tlbihsaW5lcywgcG9zLCBFb2YoKSwgJ2NvZGUnKQotICAgICAgcmV0dXJuCi0KLSAgICBp
ZiBmb3VuZC5zdGFydCA9PSBwb3M6Ci0gICAgICBwcmV2X3Rva2VuID0gTm9uZQotICAgICAgcHJl
dl90b2tlbl9yc3RyaXBwZWQgPSBOb25lCi0gICAgZWxzZToKLSAgICAgIHByZXZfdG9rZW4gPSBN
YWtlVG9rZW4obGluZXMsIHBvcywgZm91bmQuc3RhcnQsICdjb2RlJykKLSAgICAgIHByZXZfdG9r
ZW5fcnN0cmlwcGVkID0gUlN0cmlwTmV3TGluZUZyb21Ub2tlbihwcmV2X3Rva2VuKQotCi0gICAg
aWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHZhcic6Ci0gICAgICBpZiBwcmV2X3Rva2VuX3JzdHJp
cHBlZDoKLSAgICAgICAgeWllbGQgcHJldl90b2tlbl9yc3RyaXBwZWQKLSAgICAgIHlpZWxkIGZv
dW5kCi0gICAgICBpZF90b2tlbiA9IFBhcnNlVG9rZW4obGluZXMsIGZvdW5kLmVuZCwgSURfUkVH
RVgsICdpZCcpCi0gICAgICB5aWVsZCBpZF90b2tlbgotICAgICAgcG9zID0gU2tpcChsaW5lcywg
aWRfdG9rZW4uZW5kLCBPUFRJT05BTF9XSElURV9TUEFDRVNfUkVHRVgpCi0KLSAgICAgIGVxX3Rv
a2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBFUV9SRUdFWCwgJz0nKQotICAgICAgeWllbGQg
ZXFfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGluZXMsIGVxX3Rva2VuLmVuZCwgcidccyonKQot
Ci0gICAgICBpZiBTdWJTdHJpbmcobGluZXMsIHBvcywgcG9zICsgMikgIT0gJ1tbJzoKLSAgICAg
ICAgZXhwX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBSRVNUX09GX0xJTkVfUkVHRVgs
ICdleHAnKQotICAgICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAgICAgcG9zID0gQ3Vyc29yKGV4
cF90b2tlbi5lbmQubGluZSArIDEsIDApCi0gICAgZWxpZiBmb3VuZC50b2tlbl90eXBlID09ICck
Zm9yJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2
X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2VuID0gUGFy
c2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlpZWxkIGlk
X3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIFdISVRFX1NQQUNF
X1JFR0VYKQotICAgIGVsaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHJhbmdlJzoKLSAgICAgIGlm
IHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuX3JzdHJpcHBl
ZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywg
Zm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAgIHlpZWxkIGlkX3Rva2VuCi0gICAgICBw
b3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIE9QVElPTkFMX1dISVRFX1NQQUNFU19SRUdF
WCkKLQotICAgICAgZG90c19wb3MgPSBTa2lwVW50aWwobGluZXMsIHBvcywgRE9UX0RPVF9SRUdF
WCwgJy4uJykKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBkb3RzX3BvcywgJ2V4
cCcpCi0gICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMsIGRvdHNfcG9zLCBkb3RzX3BvcyArIDIs
ICcuLicpCi0gICAgICBwb3MgPSBkb3RzX3BvcyArIDIKLSAgICAgIG5ld19wb3MgPSBDdXJzb3Io
cG9zLmxpbmUgKyAxLCAwKQotICAgICAgeWllbGQgTWFrZVRva2VuKGxpbmVzLCBwb3MsIG5ld19w
b3MsICdleHAnKQotICAgICAgcG9zID0gbmV3X3BvcwotICAgIGVsaWYgZm91bmQudG9rZW5fdHlw
ZSA9PSAnJCc6Ci0gICAgICBpZiBwcmV2X3Rva2VuOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2Vu
Ci0gICAgICB5aWVsZCBmb3VuZAotICAgICAgZXhwX3Rva2VuID0gUGFyc2VFeHBUb2tlbkluUGFy
ZW5zKGxpbmVzLCBmb3VuZC5lbmQpCi0gICAgICB5aWVsZCBleHBfdG9rZW4KLSAgICAgIHBvcyA9
IGV4cF90b2tlbi5lbmQKLSAgICBlbGlmIChmb3VuZC50b2tlbl90eXBlID09ICddXScgb3IgZm91
bmQudG9rZW5fdHlwZSA9PSAnJGlmJyBvcgotICAgICAgICAgIGZvdW5kLnRva2VuX3R5cGUgPT0g
JyRlbGlmJyBvciBmb3VuZC50b2tlbl90eXBlID09ICckZWxzZScpOgotICAgICAgaWYgcHJldl90
b2tlbl9yc3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVkCi0gICAg
ICB5aWVsZCBmb3VuZAotICAgICAgcG9zID0gZm91bmQuZW5kCi0gICAgZWxzZToKLSAgICAgIGlm
IHByZXZfdG9rZW46Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW4KLSAgICAgIHlpZWxkIGZvdW5k
Ci0gICAgICBwb3MgPSBmb3VuZC5lbmQKLQotCi1kZWYgVG9rZW5pemUocyk6Ci0gICIiIkEgZ2Vu
ZXJhdG9yIHRoYXQgeWllbGRzIHRoZSB0b2tlbnMgaW4gdGhlIGdpdmVuIHN0cmluZy4iIiIKLSAg
aWYgcyAhPSAnJzoKLSAgICBsaW5lcyA9IHMuc3BsaXRsaW5lcyhUcnVlKQotICAgIGZvciB0b2tl
biBpbiBUb2tlbml6ZUxpbmVzKGxpbmVzLCBDdXJzb3IoMCwgMCkpOgotICAgICAgeWllbGQgdG9r
ZW4KLQotCi1jbGFzcyBDb2RlTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGF0b21pY19jb2Rl
X2xpc3Q9Tm9uZSk6Ci0gICAgc2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlX2xpc3QKLQot
Ci1jbGFzcyBWYXJOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25lLCBh
dG9taWNfY29kZT1Ob25lKToKLSAgICBzZWxmLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyCi0gICAg
c2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlCi0KLQotY2xhc3MgUmFuZ2VOb2RlOgotICBk
ZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25lLCBleHAxPU5vbmUsIGV4cDI9Tm9uZSk6
Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuZXhwMSA9IGV4cDEK
LSAgICBzZWxmLmV4cDIgPSBleHAyCi0KLQotY2xhc3MgRm9yTm9kZToKLSAgZGVmIF9faW5pdF9f
KHNlbGYsIGlkZW50aWZpZXI9Tm9uZSwgc2VwPU5vbmUsIGNvZGU9Tm9uZSk6Ci0gICAgc2VsZi5p
ZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYuc2VwID0gc2VwCi0gICAgc2VsZi5jb2Rl
ID0gY29kZQotCi0KLWNsYXNzIEVsc2VOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgZWxzZV9i
cmFuY2g9Tm9uZSk6Ci0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNoCi0KLQotY2xh
c3MgSWZOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgZXhwPU5vbmUsIHRoZW5fYnJhbmNoPU5v
bmUsIGVsc2VfYnJhbmNoPU5vbmUpOgotICAgIHNlbGYuZXhwID0gZXhwCi0gICAgc2VsZi50aGVu
X2JyYW5jaCA9IHRoZW5fYnJhbmNoCi0gICAgc2VsZi5lbHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNo
Ci0KLQotY2xhc3MgUmF3Q29kZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0b2tlbj1Ob25l
KToKLSAgICBzZWxmLnJhd19jb2RlID0gdG9rZW4KLQotCi1jbGFzcyBMaXRlcmFsRG9sbGFyTm9k
ZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuKToKLSAgICBzZWxmLnRva2VuID0gdG9rZW4K
LQotCi1jbGFzcyBFeHBOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgdG9rZW4sIHB5dGhvbl9l
eHApOgotICAgIHNlbGYudG9rZW4gPSB0b2tlbgotICAgIHNlbGYucHl0aG9uX2V4cCA9IHB5dGhv
bl9leHAKLQotCi1kZWYgUG9wRnJvbnQoYV9saXN0KToKLSAgaGVhZCA9IGFfbGlzdFswXQotICBh
X2xpc3RbOjFdID0gW10KLSAgcmV0dXJuIGhlYWQKLQotCi1kZWYgUHVzaEZyb250KGFfbGlzdCwg
ZWxlbSk6Ci0gIGFfbGlzdFs6MF0gPSBbZWxlbV0KLQotCi1kZWYgUG9wVG9rZW4oYV9saXN0LCB0
b2tlbl90eXBlPU5vbmUpOgotICB0b2tlbiA9IFBvcEZyb250KGFfbGlzdCkKLSAgaWYgdG9rZW5f
dHlwZSBpcyBub3QgTm9uZSBhbmQgdG9rZW4udG9rZW5fdHlwZSAhPSB0b2tlbl90eXBlOgotICAg
IHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQgJXMnICUgKHRva2VuX3R5cGUsIHRva2VuLnN0
YXJ0KQotICAgIHByaW50ICdFUlJPUjogJXMgZm91bmQgaW5zdGVhZCcgJSAodG9rZW4sKQotICAg
IHN5cy5leGl0KDEpCi0KLSAgcmV0dXJuIHRva2VuCi0KLQotZGVmIFBlZWtUb2tlbihhX2xpc3Qp
OgotICBpZiBub3QgYV9saXN0OgotICAgIHJldHVybiBOb25lCi0KLSAgcmV0dXJuIGFfbGlzdFsw
XQotCi0KLWRlZiBQYXJzZUV4cE5vZGUodG9rZW4pOgotICBweXRob25fZXhwID0gcmUuc3ViKHIn
KFtfQS1aYS16XVx3KiknLCByJ3NlbGYuR2V0VmFsdWUoIlwxIiknLCB0b2tlbi52YWx1ZSkKLSAg
cmV0dXJuIEV4cE5vZGUodG9rZW4sIHB5dGhvbl9leHApCi0KLQotZGVmIFBhcnNlRWxzZU5vZGUo
dG9rZW5zKToKLSAgZGVmIFBvcCh0b2tlbl90eXBlPU5vbmUpOgotICAgIHJldHVybiBQb3BUb2tl
bih0b2tlbnMsIHRva2VuX3R5cGUpCi0KLSAgbmV4dCA9IFBlZWtUb2tlbih0b2tlbnMpCi0gIGlm
IG5vdCBuZXh0OgotICAgIHJldHVybiBOb25lCi0gIGlmIG5leHQudG9rZW5fdHlwZSA9PSAnJGVs
c2UnOgotICAgIFBvcCgnJGVsc2UnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBh
cnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBjb2RlX25vZGUK
LSAgZWxpZiBuZXh0LnRva2VuX3R5cGUgPT0gJyRlbGlmJzoKLSAgICBQb3AoJyRlbGlmJykKLSAg
ICBleHAgPSBQb3AoJ2NvZGUnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNl
Q29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIGlubmVyX2Vsc2Vfbm9kZSA9IFBh
cnNlRWxzZU5vZGUodG9rZW5zKQotICAgIHJldHVybiBDb2RlTm9kZShbSWZOb2RlKFBhcnNlRXhw
Tm9kZShleHApLCBjb2RlX25vZGUsIGlubmVyX2Vsc2Vfbm9kZSldKQotICBlbGlmIG5vdCBuZXh0
LnZhbHVlLnN0cmlwKCk6Ci0gICAgUG9wKCdjb2RlJykKLSAgICByZXR1cm4gUGFyc2VFbHNlTm9k
ZSh0b2tlbnMpCi0gIGVsc2U6Ci0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VBdG9taWND
b2RlTm9kZSh0b2tlbnMpOgotICBkZWYgUG9wKHRva2VuX3R5cGU9Tm9uZSk6Ci0gICAgcmV0dXJu
IFBvcFRva2VuKHRva2VucywgdG9rZW5fdHlwZSkKLQotICBoZWFkID0gUG9wRnJvbnQodG9rZW5z
KQotICB0ID0gaGVhZC50b2tlbl90eXBlCi0gIGlmIHQgPT0gJ2NvZGUnOgotICAgIHJldHVybiBS
YXdDb2RlTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyR2YXInOgotICAgIGlkX3Rva2VuID0gUG9w
KCdpZCcpCi0gICAgUG9wKCc9JykKLSAgICBuZXh0ID0gUGVla1Rva2VuKHRva2VucykKLSAgICBp
ZiBuZXh0LnRva2VuX3R5cGUgPT0gJ2V4cCc6Ci0gICAgICBleHBfdG9rZW4gPSBQb3AoKQotICAg
ICAgcmV0dXJuIFZhck5vZGUoaWRfdG9rZW4sIFBhcnNlRXhwTm9kZShleHBfdG9rZW4pKQotICAg
IFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBv
cCgnXV0nKQotICAgIHJldHVybiBWYXJOb2RlKGlkX3Rva2VuLCBjb2RlX25vZGUpCi0gIGVsaWYg
dCA9PSAnJGZvcic6Ci0gICAgaWRfdG9rZW4gPSBQb3AoJ2lkJykKLSAgICBuZXh0X3Rva2VuID0g
UGVla1Rva2VuKHRva2VucykKLSAgICBpZiBuZXh0X3Rva2VuLnRva2VuX3R5cGUgPT0gJ2NvZGUn
OgotICAgICAgc2VwX3Rva2VuID0gbmV4dF90b2tlbgotICAgICAgUG9wKCdjb2RlJykKLSAgICBl
bHNlOgotICAgICAgc2VwX3Rva2VuID0gTm9uZQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9k
ZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBGb3JO
b2RlKGlkX3Rva2VuLCBzZXBfdG9rZW4sIGNvZGVfbm9kZSkKLSAgZWxpZiB0ID09ICckaWYnOgot
ICAgIGV4cF90b2tlbiA9IFBvcCgnY29kZScpCi0gICAgUG9wKCdbWycpCi0gICAgY29kZV9ub2Rl
ID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgZWxzZV9ub2RlID0g
UGFyc2VFbHNlTm9kZSh0b2tlbnMpCi0gICAgcmV0dXJuIElmTm9kZShQYXJzZUV4cE5vZGUoZXhw
X3Rva2VuKSwgY29kZV9ub2RlLCBlbHNlX25vZGUpCi0gIGVsaWYgdCA9PSAnJHJhbmdlJzoKLSAg
ICBpZF90b2tlbiA9IFBvcCgnaWQnKQotICAgIGV4cDFfdG9rZW4gPSBQb3AoJ2V4cCcpCi0gICAg
UG9wKCcuLicpCi0gICAgZXhwMl90b2tlbiA9IFBvcCgnZXhwJykKLSAgICByZXR1cm4gUmFuZ2VO
b2RlKGlkX3Rva2VuLCBQYXJzZUV4cE5vZGUoZXhwMV90b2tlbiksCi0gICAgICAgICAgICAgICAg
ICAgICBQYXJzZUV4cE5vZGUoZXhwMl90b2tlbikpCi0gIGVsaWYgdCA9PSAnJGlkJzoKLSAgICBy
ZXR1cm4gUGFyc2VFeHBOb2RlKFRva2VuKGhlYWQuc3RhcnQgKyAxLCBoZWFkLmVuZCwgaGVhZC52
YWx1ZVsxOl0sICdpZCcpKQotICBlbGlmIHQgPT0gJyQoJCknOgotICAgIHJldHVybiBMaXRlcmFs
RG9sbGFyTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyQnOgotICAgIGV4cF90b2tlbiA9IFBvcCgn
ZXhwJykKLSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKGV4cF90b2tlbikKLSAgZWxpZiB0ID09ICdb
Wyc6Ci0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9wKCddXScp
Ci0gICAgcmV0dXJuIGNvZGVfbm9kZQotICBlbHNlOgotICAgIFB1c2hGcm9udCh0b2tlbnMsIGhl
YWQpCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFyc2VDb2RlTm9kZSh0b2tlbnMpOgotICBh
dG9taWNfY29kZV9saXN0ID0gW10KLSAgd2hpbGUgVHJ1ZToKLSAgICBpZiBub3QgdG9rZW5zOgot
ICAgICAgYnJlYWsKLSAgICBhdG9taWNfY29kZV9ub2RlID0gUGFyc2VBdG9taWNDb2RlTm9kZSh0
b2tlbnMpCi0gICAgaWYgYXRvbWljX2NvZGVfbm9kZToKLSAgICAgIGF0b21pY19jb2RlX2xpc3Qu
YXBwZW5kKGF0b21pY19jb2RlX25vZGUpCi0gICAgZWxzZToKLSAgICAgIGJyZWFrCi0gIHJldHVy
biBDb2RlTm9kZShhdG9taWNfY29kZV9saXN0KQotCi0KLWRlZiBQYXJzZVRvQVNUKHB1bXBfc3Jj
X3RleHQpOgotICAiIiJDb252ZXJ0IHRoZSBnaXZlbiBQdW1wIHNvdXJjZSB0ZXh0IGludG8gYW4g
QVNULiIiIgotICB0b2tlbnMgPSBsaXN0KFRva2VuaXplKHB1bXBfc3JjX3RleHQpKQotICBjb2Rl
X25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgcmV0dXJuIGNvZGVfbm9kZQotCi0KLWNs
YXNzIEVudjoKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYudmFyaWFibGVzID0gW10K
LSAgICBzZWxmLnJhbmdlcyA9IFtdCi0KLSAgZGVmIENsb25lKHNlbGYpOgotICAgIGNsb25lID0g
RW52KCkKLSAgICBjbG9uZS52YXJpYWJsZXMgPSBzZWxmLnZhcmlhYmxlc1s6XQotICAgIGNsb25l
LnJhbmdlcyA9IHNlbGYucmFuZ2VzWzpdCi0gICAgcmV0dXJuIGNsb25lCi0KLSAgZGVmIFB1c2hW
YXJpYWJsZShzZWxmLCB2YXIsIHZhbHVlKToKLSAgICAjIElmIHZhbHVlIGxvb2tzIGxpa2UgYW4g
aW50LCBzdG9yZSBpdCBhcyBhbiBpbnQuCi0gICAgdHJ5OgotICAgICAgaW50X3ZhbHVlID0gaW50
KHZhbHVlKQotICAgICAgaWYgKCclcycgJSBpbnRfdmFsdWUpID09IHZhbHVlOgotICAgICAgICB2
YWx1ZSA9IGludF92YWx1ZQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICBwYXNzCi0gICAg
c2VsZi52YXJpYWJsZXNbOjBdID0gWyh2YXIsIHZhbHVlKV0KLQotICBkZWYgUG9wVmFyaWFibGUo
c2VsZik6Ci0gICAgc2VsZi52YXJpYWJsZXNbOjFdID0gW10KLQotICBkZWYgUHVzaFJhbmdlKHNl
bGYsIHZhciwgbG93ZXIsIHVwcGVyKToKLSAgICBzZWxmLnJhbmdlc1s6MF0gPSBbKHZhciwgbG93
ZXIsIHVwcGVyKV0KLQotICBkZWYgUG9wUmFuZ2Uoc2VsZik6Ci0gICAgc2VsZi5yYW5nZXNbOjFd
ID0gW10KLQotICBkZWYgR2V0VmFsdWUoc2VsZiwgaWRlbnRpZmllcik6Ci0gICAgZm9yICh2YXIs
IHZhbHVlKSBpbiBzZWxmLnZhcmlhYmxlczoKLSAgICAgIGlmIGlkZW50aWZpZXIgPT0gdmFyOgot
ICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIHByaW50ICdFUlJPUjogbWV0YSB2YXJpYWJsZSAl
cyBpcyB1bmRlZmluZWQuJyAlIChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQotCi0gIGRl
ZiBFdmFsRXhwKHNlbGYsIGV4cCk6Ci0gICAgdHJ5OgotICAgICAgcmVzdWx0ID0gZXZhbChleHAu
cHl0aG9uX2V4cCkKLSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgcHJpbnQgJ0VSUk9S
OiBjYXVnaHQgZXhjZXB0aW9uICVzOiAlcycgJSAoZS5fX2NsYXNzX18uX19uYW1lX18sIGUpCi0g
ICAgICBwcmludCAoJ0VSUk9SOiBmYWlsZWQgdG8gZXZhbHVhdGUgbWV0YSBleHByZXNzaW9uICVz
IGF0ICVzJyAlCi0gICAgICAgICAgICAgKGV4cC5weXRob25fZXhwLCBleHAudG9rZW4uc3RhcnQp
KQotICAgICAgc3lzLmV4aXQoMSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLSAgZGVmIEdldFJhbmdl
KHNlbGYsIGlkZW50aWZpZXIpOgotICAgIGZvciAodmFyLCBsb3dlciwgdXBwZXIpIGluIHNlbGYu
cmFuZ2VzOgotICAgICAgaWYgaWRlbnRpZmllciA9PSB2YXI6Ci0gICAgICAgIHJldHVybiAobG93
ZXIsIHVwcGVyKQotCi0gICAgcHJpbnQgJ0VSUk9SOiByYW5nZSAlcyBpcyB1bmRlZmluZWQuJyAl
IChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQotCi0KLWNsYXNzIE91dHB1dDoKLSAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuc3RyaW5nID0gJycKLQotICBkZWYgR2V0TGFzdExp
bmUoc2VsZik6Ci0gICAgaW5kZXggPSBzZWxmLnN0cmluZy5yZmluZCgnXG4nKQotICAgIGlmIGlu
ZGV4IDwgMDoKLSAgICAgIHJldHVybiAnJwotCi0gICAgcmV0dXJuIHNlbGYuc3RyaW5nW2luZGV4
ICsgMTpdCi0KLSAgZGVmIEFwcGVuZChzZWxmLCBzKToKLSAgICBzZWxmLnN0cmluZyArPSBzCi0K
LQotZGVmIFJ1bkF0b21pY0NvZGUoZW52LCBub2RlLCBvdXRwdXQpOgotICBpZiBpc2luc3RhbmNl
KG5vZGUsIFZhck5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUu
c3RyaXAoKQotICAgIHJlc3VsdCA9IE91dHB1dCgpCi0gICAgUnVuQXRvbWljQ29kZShlbnYuQ2xv
bmUoKSwgbm9kZS5hdG9taWNfY29kZSwgcmVzdWx0KQotICAgIHZhbHVlID0gcmVzdWx0LnN0cmlu
ZwotICAgIGVudi5QdXNoVmFyaWFibGUoaWRlbnRpZmllciwgdmFsdWUpCi0gIGVsaWYgaXNpbnN0
YW5jZShub2RlLCBSYW5nZU5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIu
dmFsdWUuc3RyaXAoKQotICAgIGxvd2VyID0gaW50KGVudi5FdmFsRXhwKG5vZGUuZXhwMSkpCi0g
ICAgdXBwZXIgPSBpbnQoZW52LkV2YWxFeHAobm9kZS5leHAyKSkKLSAgICBlbnYuUHVzaFJhbmdl
KGlkZW50aWZpZXIsIGxvd2VyLCB1cHBlcikKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUsIEZvck5v
ZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUuc3RyaXAoKQotICAg
IGlmIG5vZGUuc2VwIGlzIE5vbmU6Ci0gICAgICBzZXAgPSAnJwotICAgIGVsc2U6Ci0gICAgICBz
ZXAgPSBub2RlLnNlcC52YWx1ZQotICAgIChsb3dlciwgdXBwZXIpID0gZW52LkdldFJhbmdlKGlk
ZW50aWZpZXIpCi0gICAgZm9yIGkgaW4gcmFuZ2UobG93ZXIsIHVwcGVyICsgMSk6Ci0gICAgICBu
ZXdfZW52ID0gZW52LkNsb25lKCkKLSAgICAgIG5ld19lbnYuUHVzaFZhcmlhYmxlKGlkZW50aWZp
ZXIsIGkpCi0gICAgICBSdW5Db2RlKG5ld19lbnYsIG5vZGUuY29kZSwgb3V0cHV0KQotICAgICAg
aWYgaSAhPSB1cHBlcjoKLSAgICAgICAgb3V0cHV0LkFwcGVuZChzZXApCi0gIGVsaWYgaXNpbnN0
YW5jZShub2RlLCBSYXdDb2RlTm9kZSk6Ci0gICAgb3V0cHV0LkFwcGVuZChub2RlLnJhd19jb2Rl
LnZhbHVlKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgSWZOb2RlKToKLSAgICBjb25kID0gZW52
LkV2YWxFeHAobm9kZS5leHApCi0gICAgaWYgY29uZDoKLSAgICAgIFJ1bkNvZGUoZW52LkNsb25l
KCksIG5vZGUudGhlbl9icmFuY2gsIG91dHB1dCkKLSAgICBlbGlmIG5vZGUuZWxzZV9icmFuY2gg
aXMgbm90IE5vbmU6Ci0gICAgICBSdW5Db2RlKGVudi5DbG9uZSgpLCBub2RlLmVsc2VfYnJhbmNo
LCBvdXRwdXQpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBFeHBOb2RlKToKLSAgICB2YWx1ZSA9
IGVudi5FdmFsRXhwKG5vZGUpCi0gICAgb3V0cHV0LkFwcGVuZCgnJXMnICUgKHZhbHVlLCkpCi0g
IGVsaWYgaXNpbnN0YW5jZShub2RlLCBMaXRlcmFsRG9sbGFyTm9kZSk6Ci0gICAgb3V0cHV0LkFw
cGVuZCgnJCcpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBDb2RlTm9kZSk6Ci0gICAgUnVuQ29k
ZShlbnYuQ2xvbmUoKSwgbm9kZSwgb3V0cHV0KQotICBlbHNlOgotICAgIHByaW50ICdCQUQnCi0g
ICAgcHJpbnQgbm9kZQotICAgIHN5cy5leGl0KDEpCi0KLQotZGVmIFJ1bkNvZGUoZW52LCBjb2Rl
X25vZGUsIG91dHB1dCk6Ci0gIGZvciBhdG9taWNfY29kZSBpbiBjb2RlX25vZGUuYXRvbWljX2Nv
ZGU6Ci0gICAgUnVuQXRvbWljQ29kZShlbnYsIGF0b21pY19jb2RlLCBvdXRwdXQpCi0KLQotZGVm
IElzU2luZ2xlTGluZUNvbW1lbnQoY3VyX2xpbmUpOgotICByZXR1cm4gJy8vJyBpbiBjdXJfbGlu
ZQotCi0KLWRlZiBJc0luUHJlcHJvY2Vzc29yRGlyZWN0aXZlKHByZXZfbGluZXMsIGN1cl9saW5l
KToKLSAgaWYgY3VyX2xpbmUubHN0cmlwKCkuc3RhcnRzd2l0aCgnIycpOgotICAgIHJldHVybiBU
cnVlCi0gIHJldHVybiBwcmV2X2xpbmVzIGFuZCBwcmV2X2xpbmVzWy0xXS5lbmRzd2l0aCgnXFwn
KQotCi0KLWRlZiBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQpOgotICBsb2MgPSBsaW5lLmZpbmQo
Jy8vJykKLSAgYmVmb3JlX2NvbW1lbnQgPSBsaW5lWzpsb2NdLnJzdHJpcCgpCi0gIGlmIGJlZm9y
ZV9jb21tZW50ID09ICcnOgotICAgIGluZGVudCA9IGxvYwotICBlbHNlOgotICAgIG91dHB1dC5h
cHBlbmQoYmVmb3JlX2NvbW1lbnQpCi0gICAgaW5kZW50ID0gbGVuKGJlZm9yZV9jb21tZW50KSAt
IGxlbihiZWZvcmVfY29tbWVudC5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50KicgJyArICcv
LyAnCi0gIG1heF9sZW4gPSA4MCAtIGxlbihwcmVmaXgpCi0gIGNvbW1lbnQgPSBsaW5lW2xvYyAr
IDI6XS5zdHJpcCgpCi0gIHNlZ3MgPSBbc2VnIGZvciBzZWcgaW4gcmUuc3BsaXQocicoXHcrXFcq
KScsIGNvbW1lbnQpIGlmIHNlZyAhPSAnJ10KLSAgY3VyX2xpbmUgPSAnJwotICBmb3Igc2VnIGlu
IHNlZ3M6Ci0gICAgaWYgbGVuKChjdXJfbGluZSArIHNlZykucnN0cmlwKCkpIDwgbWF4X2xlbjoK
LSAgICAgIGN1cl9saW5lICs9IHNlZwotICAgIGVsc2U6Ci0gICAgICBpZiBjdXJfbGluZS5zdHJp
cCgpICE9ICcnOgotICAgICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnJzdHJp
cCgpKQotICAgICAgY3VyX2xpbmUgPSBzZWcubHN0cmlwKCkKLSAgaWYgY3VyX2xpbmUuc3RyaXAo
KSAhPSAnJzoKLSAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnN0cmlwKCkpCi0K
LQotZGVmIFdyYXBDb2RlKGxpbmUsIGxpbmVfY29uY2F0LCBvdXRwdXQpOgotICBpbmRlbnQgPSBs
ZW4obGluZSkgLSBsZW4obGluZS5sc3RyaXAoKSkKLSAgcHJlZml4ID0gaW5kZW50KicgJyAgIyBQ
cmVmaXggb2YgdGhlIGN1cnJlbnQgbGluZQotICBtYXhfbGVuID0gODAgLSBpbmRlbnQgLSBsZW4o
bGluZV9jb25jYXQpICAjIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUKLSAgbmV3
X3ByZWZpeCA9IHByZWZpeCArIDQqJyAnICAjIFByZWZpeCBvZiBhIGNvbnRpbnVhdGlvbiBsaW5l
Ci0gIG5ld19tYXhfbGVuID0gbWF4X2xlbiAtIDQgICMgTWF4aW11bSBsZW5ndGggb2YgYSBjb250
aW51YXRpb24gbGluZQotICAjIFByZWZlcnMgdG8gd3JhcCBhIGxpbmUgYWZ0ZXIgYSAnLCcgb3Ig
JzsnLgotICBzZWdzID0gW3NlZyBmb3Igc2VnIGluIHJlLnNwbGl0KHInKFteLDtdK1ssO10/KScs
IGxpbmUuc3RyaXAoKSkgaWYgc2VnICE9ICcnXQotICBjdXJfbGluZSA9ICcnICAjIFRoZSBjdXJy
ZW50IGxpbmUgd2l0aG91dCBsZWFkaW5nIHNwYWNlcy4KLSAgZm9yIHNlZyBpbiBzZWdzOgotICAg
ICMgSWYgdGhlIGxpbmUgaXMgc3RpbGwgdG9vIGxvbmcsIHdyYXAgYXQgYSBzcGFjZS4KLSAgICB3
aGlsZSBjdXJfbGluZSA9PSAnJyBhbmQgbGVuKHNlZy5zdHJpcCgpKSA+IG1heF9sZW46Ci0gICAg
ICBzZWcgPSBzZWcubHN0cmlwKCkKLSAgICAgIHNwbGl0X2F0ID0gc2VnLnJmaW5kKCcgJywgMCwg
bWF4X2xlbikKLSAgICAgIG91dHB1dC5hcHBlbmQocHJlZml4ICsgc2VnWzpzcGxpdF9hdF0uc3Ry
aXAoKSArIGxpbmVfY29uY2F0KQotICAgICAgc2VnID0gc2VnW3NwbGl0X2F0ICsgMTpdCi0gICAg
ICBwcmVmaXggPSBuZXdfcHJlZml4Ci0gICAgICBtYXhfbGVuID0gbmV3X21heF9sZW4KLQotICAg
IGlmIGxlbigoY3VyX2xpbmUgKyBzZWcpLnJzdHJpcCgpKSA8IG1heF9sZW46Ci0gICAgICBjdXJf
bGluZSA9IChjdXJfbGluZSArIHNlZykubHN0cmlwKCkKLSAgICBlbHNlOgotICAgICAgb3V0cHV0
LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5yc3RyaXAoKSArIGxpbmVfY29uY2F0KQotICAgICAg
cHJlZml4ID0gbmV3X3ByZWZpeAotICAgICAgbWF4X2xlbiA9IG5ld19tYXhfbGVuCi0gICAgICBj
dXJfbGluZSA9IHNlZy5sc3RyaXAoKQotICBpZiBjdXJfbGluZS5zdHJpcCgpICE9ICcnOgotICAg
IG91dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUuc3RyaXAoKSkKLQotCi1kZWYgV3JhcFBy
ZXByb2Nlc3NvckRpcmVjdGl2ZShsaW5lLCBvdXRwdXQpOgotICBXcmFwQ29kZShsaW5lLCAnIFxc
Jywgb3V0cHV0KQotCi0KLWRlZiBXcmFwUGxhaW5Db2RlKGxpbmUsIG91dHB1dCk6Ci0gIFdyYXBD
b2RlKGxpbmUsICcnLCBvdXRwdXQpCi0KLQotZGVmIElzTXVsdGlMaW5lSVdZVVByYWdtYShsaW5l
KToKLSAgcmV0dXJuIHJlLnNlYXJjaChyJy9cKiBJV1lVIHByYWdtYTogJywgbGluZSkKLQotCi1k
ZWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9uZUxpbmVJV1lVUHJhZ21hKGxpbmUpOgotICByZXR1
cm4gKHJlLm1hdGNoKHInXiMoaWZuZGVmfGRlZmluZXxlbmRpZlxzKi8vKVxzKltcd19dK1xzKiQn
LCBsaW5lKSBvcgotICAgICAgICAgIHJlLm1hdGNoKHInXiNpbmNsdWRlXHMnLCBsaW5lKSBvcgot
ICAgICAgICAgICMgRG9uJ3QgYnJlYWsgSVdZVSBwcmFnbWFzLCBlaXRoZXI7IHRoYXQgY2F1c2Vz
IGl3eXUucHkgcHJvYmxlbXMuCi0gICAgICAgICAgcmUuc2VhcmNoKHInLy8gSVdZVSBwcmFnbWE6
ICcsIGxpbmUpKQotCi0KLWRlZiBXcmFwTG9uZ0xpbmUobGluZSwgb3V0cHV0KToKLSAgbGluZSA9
IGxpbmUucnN0cmlwKCkKLSAgaWYgbGVuKGxpbmUpIDw9IDgwOgotICAgIG91dHB1dC5hcHBlbmQo
bGluZSkKLSAgZWxpZiBJc1NpbmdsZUxpbmVDb21tZW50KGxpbmUpOgotICAgIGlmIElzSGVhZGVy
R3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMgVGhlIHN0eWxl
IGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1YXJkIGxpbmVz
LAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0cHV0LmFwcGVu
ZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwQ29tbWVudChsaW5lLCBvdXRwdXQpCi0gIGVs
aWYgSXNJblByZXByb2Nlc3NvckRpcmVjdGl2ZShvdXRwdXQsIGxpbmUpOgotICAgIGlmIElzSGVh
ZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgICAgICMgVGhlIHN0
eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93IGxvbmcgaGVhZGVyIGd1YXJkIGxp
bmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFnbWFzLgotICAgICAgb3V0cHV0LmFw
cGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwUHJlcHJvY2Vzc29yRGlyZWN0aXZlKGxp
bmUsIG91dHB1dCkKLSAgZWxpZiBJc011bHRpTGluZUlXWVVQcmFnbWEobGluZSk6Ci0gICAgb3V0
cHV0LmFwcGVuZChsaW5lKQotICBlbHNlOgotICAgIFdyYXBQbGFpbkNvZGUobGluZSwgb3V0cHV0
KQotCi0KLWRlZiBCZWF1dGlmeUNvZGUoc3RyaW5nKToKLSAgbGluZXMgPSBzdHJpbmcuc3BsaXRs
aW5lcygpCi0gIG91dHB1dCA9IFtdCi0gIGZvciBsaW5lIGluIGxpbmVzOgotICAgIFdyYXBMb25n
TGluZShsaW5lLCBvdXRwdXQpCi0gIG91dHB1dDIgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBp
biBvdXRwdXRdCi0gIHJldHVybiAnXG4nLmpvaW4ob3V0cHV0MikgKyAnXG4nCi0KLQotZGVmIENv
bnZlcnRGcm9tUHVtcFNvdXJjZShzcmNfdGV4dCk6Ci0gICIiIlJldHVybiB0aGUgdGV4dCBnZW5l
cmF0ZWQgZnJvbSB0aGUgZ2l2ZW4gUHVtcCBzb3VyY2UgdGV4dC4iIiIKLSAgYXN0ID0gUGFyc2VU
b0FTVChTdHJpcE1ldGFDb21tZW50cyhzcmNfdGV4dCkpCi0gIG91dHB1dCA9IE91dHB1dCgpCi0g
IFJ1bkNvZGUoRW52KCksIGFzdCwgb3V0cHV0KQotICByZXR1cm4gQmVhdXRpZnlDb2RlKG91dHB1
dC5zdHJpbmcpCi0KLQotZGVmIG1haW4oYXJndik6Ci0gIGlmIGxlbihhcmd2KSA9PSAxOgotICAg
IHByaW50IF9fZG9jX18KLSAgICBzeXMuZXhpdCgxKQotCi0gIGZpbGVfcGF0aCA9IGFyZ3ZbLTFd
Ci0gIG91dHB1dF9zdHIgPSBDb252ZXJ0RnJvbVB1bXBTb3VyY2UoZmlsZShmaWxlX3BhdGgsICdy
JykucmVhZCgpKQotICBpZiBmaWxlX3BhdGguZW5kc3dpdGgoJy5wdW1wJyk6Ci0gICAgb3V0cHV0
X2ZpbGVfcGF0aCA9IGZpbGVfcGF0aFs6LTVdCi0gIGVsc2U6Ci0gICAgb3V0cHV0X2ZpbGVfcGF0
aCA9ICctJwotICBpZiBvdXRwdXRfZmlsZV9wYXRoID09ICctJzoKLSAgICBwcmludCBvdXRwdXRf
c3RyLAotICBlbHNlOgotICAgIG91dHB1dF9maWxlID0gZmlsZShvdXRwdXRfZmlsZV9wYXRoLCAn
dycpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJy8vIFRoaXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5
IGNvbW1hbmQ6XG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKCcvLyAgICAgJXMgJXNcbicgJQot
ICAgICAgICAgICAgICAgICAgICAgIChvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKSwgb3MucGF0
aC5iYXNlbmFtZShmaWxlX3BhdGgpKSkKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnLy8gRE8gTk9U
IEVESVQgQlkgSEFORCEhIVxuXG4nKQotICAgIG91dHB1dF9maWxlLndyaXRlKG91dHB1dF9zdHIp
Ci0gICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
Ci0gIG1haW4oc3lzLmFyZ3YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
Y3JpcHRzL3J1bl93aXRoX3BhdGgucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRz
L3J1bl93aXRoX3BhdGgucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2YWI0ZDM0YTQxYTRmMTU2N2U3M2Q4YjY0
MzZiOWFjYjU3MzQwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NjcmlwdHMvcnVuX3dpdGhfcGF0aC5weQpAQCAtMCwwICsxLDMyIEBACisjIS91c3IvYmluL2Vu
diBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKworIiIiUnVucyBwcm9ncmFtIHNwZWNpZmllZCBpbiB0aGUgY29tbWFuZCBsaW5lIHdp
dGggdGhlIHN1YnN0aXR1dGVkIFBBVEguCisKKyAgIFRoaXMgc2NyaXB0IGlzIG5lZWRlZCBmb3Ig
dG8gc3VwcG9ydCBidWlsZGluZyB1bmRlciBQdWxzZSB3aGljaCBpcyB1bmFibGUKKyAgIHRvIG92
ZXJyaWRlIHRoZSBleGlzdGluZyBQQVRIIHZhcmlhYmxlLgorIiIiCisKK2ltcG9ydCBvcworaW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworU1VCU1RfUEFUSF9FTlZfVkFSX05BTUUgPSAi
U1VCU1RfUEFUSCIKKworZGVmIG1haW4oKToKKyAgaWYgU1VCU1RfUEFUSF9FTlZfVkFSX05BTUUg
aW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWyJQQVRIIl0gPSBvcy5lbnZpcm9uW1NVQlNU
X1BBVEhfRU5WX1ZBUl9OQU1FXQorCisgIGV4aXRfY29kZSA9IHN1YnByb2Nlc3MuUG9wZW4oc3lz
LmFyZ3ZbMTpdKS53YWl0KCkKKworICAjIGV4aXRfY29kZSBpcyBuZWdhdGl2ZSAoLXNpZ25hbCkg
aWYgdGhlIHByb2Nlc3MgaGFzIGJlZW4gdGVybWluYXRlZCBieQorICAjIGEgc2lnbmFsLiBSZXR1
cm5pbmcgbmVnYXRpdmUgZXhpdCBjb2RlIGlzIG5vdCBwb3J0YWJsZSBhbmQgc28gd2UgcmV0dXJu
CisgICMgMTAwIGluc3RlYWQuCisgIGlmIGV4aXRfY29kZSA8IDA6CisgICAgZXhpdF9jb2RlID0g
MTAwCisKKyAgc3lzLmV4aXQoZXhpdF9jb2RlKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18i
OgorICBtYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMv
dXBsb2FkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKaW5k
ZXggYzg1MmU0YzkxZTA2ZWY3YzQ5ZTAzODY4MzUwOWZmZDk0OTVjODIwZi4uZWJhNTcxMTQyZjVi
ODcxMTgzODZlYTIwMzA3YjA0MzNhY2E5ODZkZiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2NyaXB0cy91cGxvYWQucHkKQEAgLTEsMTggKzEsMzMgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhv
bgogIwotIyBDb3B5cmlnaHQgMjAwNyBHb29nbGUgSW5jLgorIyBDb3B5cmlnaHQgMjAwNywgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKLSMgTGljZW5zZWQgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4K
LSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKICMKLSMgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s
aWNlbnNlcy9MSUNFTlNFLTIuMAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgogIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu
IHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUg
dGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lv
bnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKICIiIlRvb2wgZm9yIHVwbG9hZGluZyBk
aWZmcyBmcm9tIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0byB0aGUgY29kZXJldmlldyBhcHAu
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1hbGwuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtYWxsLmNjCmluZGV4IGIyMTdhMTgw
MDZiMGM4YmRhZjRhOWY5YjZkMDZkZTRmZDhhZDllZWQuLmFkMjkyOTA1Y2YzODFkNjllYmE5MDA4
ZjUxOTZjZjY0NzdhNTZjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1hbGwuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWFs
bC5jYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgInNyYy9ndGVzdC5jYyIKICNpbmNsdWRl
ICJzcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtZmlsZXBhdGgu
Y2MiCisjaW5jbHVkZSAic3JjL2d0ZXN0LW1hdGNoZXJzLmNjIgogI2luY2x1ZGUgInNyYy9ndGVz
dC1wb3J0LmNjIgogI2luY2x1ZGUgInNyYy9ndGVzdC1wcmludGVycy5jYyIKICNpbmNsdWRlICJz
cmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwppbmRleCBhYzg2NjAzNTRjYWZhYzU4M2FkZWIyZjIxMzFiYzZh
Y2E3ODNjNWE3Li5jM2Q2ZGZjY2FkN2M5NjhiODNmMTk3Mjc0NTA4ZWZkODQ1ZGU5N2FhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwpAQCAt
MzEsNiArMzEsMTAgQEAKIC8vIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGRlYXRoIHRlc3RzLgogCiAj
aW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIgorCisjaW5jbHVkZSA8ZnVuY3Rpb25h
bD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIgogCkBAIC02
MiwxMCArNjYsMTYgQEAKICMgZW5kaWYgIC8vIEdURVNUX09TX1FOWAogCiAjIGlmIEdURVNUX09T
X0ZVQ0hTSUEKKyMgIGluY2x1ZGUgPGxpYi9mZGlvL2ZkLmg+CiAjICBpbmNsdWRlIDxsaWIvZmRp
by9pby5oPgogIyAgaW5jbHVkZSA8bGliL2ZkaW8vc3Bhd24uaD4KKyMgIGluY2x1ZGUgPGxpYi96
eC9jaGFubmVsLmg+CisjICBpbmNsdWRlIDxsaWIvengvcG9ydC5oPgorIyAgaW5jbHVkZSA8bGli
L3p4L3Byb2Nlc3MuaD4KKyMgIGluY2x1ZGUgPGxpYi96eC9zb2NrZXQuaD4KICMgIGluY2x1ZGUg
PHppcmNvbi9wcm9jZXNzYXJncy5oPgogIyAgaW5jbHVkZSA8emlyY29uL3N5c2NhbGxzLmg+Cisj
ICBpbmNsdWRlIDx6aXJjb24vc3lzY2FsbHMvcG9saWN5Lmg+CiAjICBpbmNsdWRlIDx6aXJjb24v
c3lzY2FsbHMvcG9ydC5oPgogIyBlbmRpZiAgLy8gR1RFU1RfT1NfRlVDSFNJQQogCkBAIC0xMTMs
OCArMTIzLDggQEAgR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgIkluZGljYXRlcyB0aGUgZmls
ZSwgbGluZSBudW1iZXIsIHRlbXBvcmFsIGluZGV4IG9mICIKICAgICAidGhlIHNpbmdsZSBkZWF0
aCB0ZXN0IHRvIHJ1biwgYW5kIGEgZmlsZSBkZXNjcmlwdG9yIHRvICIKICAgICAid2hpY2ggYSBz
dWNjZXNzIGNvZGUgbWF5IGJlIHNlbnQsIGFsbCBzZXBhcmF0ZWQgYnkgIgotICAgICJ0aGUgJ3wn
IGNoYXJhY3RlcnMuICBUaGlzIGZsYWcgaXMgc3BlY2lmaWVkIGlmIGFuZCBvbmx5IGlmIHRoZSBj
dXJyZW50ICIKLSAgICAicHJvY2VzcyBpcyBhIHN1Yi1wcm9jZXNzIGxhdW5jaGVkIGZvciBydW5u
aW5nIGEgdGhyZWFkLXNhZmUgIgorICAgICJ0aGUgJ3wnIGNoYXJhY3RlcnMuICBUaGlzIGZsYWcg
aXMgc3BlY2lmaWVkIGlmIGFuZCBvbmx5IGlmIHRoZSAiCisgICAgImN1cnJlbnQgcHJvY2VzcyBp
cyBhIHN1Yi1wcm9jZXNzIGxhdW5jaGVkIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUgIgogICAg
ICJkZWF0aCB0ZXN0LiAgRk9SIElOVEVSTkFMIFVTRSBPTkxZLiIpOwogfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCiAKQEAgLTIzOCw3ICsyNDgsNyBAQCBzdGF0aWMgc3RkOjpzdHJpbmcgRGVhdGhU
ZXN0VGhyZWFkV2FybmluZyhzaXplX3QgdGhyZWFkX2NvdW50KSB7CiAgICAgbXNnIDw8ICJkZXRl
Y3RlZCAiIDw8IHRocmVhZF9jb3VudCA8PCAiIHRocmVhZHMuIjsKICAgfQogICBtc2cgPDwgIiBT
ZWUgIgotICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9i
L21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvIgorICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9n
b29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9kb2NzLyIKICAgICAgICAgICJhZHZhbmNlZC5t
ZCNkZWF0aC10ZXN0cy1hbmQtdGhyZWFkcyIKICAgICAgIDw8ICIgZm9yIG1vcmUgZXhwbGFuYXRp
b24gYW5kIHN1Z2dlc3RlZCBzb2x1dGlvbnMsIGVzcGVjaWFsbHkgaWYiCiAgICAgICA8PCAiIHRo
aXMgaXMgdGhlIGxhc3QgbWVzc2FnZSB5b3Ugc2VlIGJlZm9yZSB5b3VyIHRlc3QgdGltZXMgb3V0
LiI7CkBAIC0yNjYsOCArMjc2LDYgQEAgc3RhdGljIGNvbnN0IGludCBrRnVjaHNpYVJlYWRQaXBl
RmQgPSAzOwogLy8gc3RhdGVtZW50LCB3aGljaCBpcyBub3QgYWxsb3dlZDsgVEhSRVcgbWVhbnMg
dGhhdCB0aGUgdGVzdCBzdGF0ZW1lbnQKIC8vIHJldHVybmVkIGNvbnRyb2wgYnkgdGhyb3dpbmcg
YW4gZXhjZXB0aW9uLiAgSU5fUFJPR1JFU1MgbWVhbnMgdGhlIHRlc3QKIC8vIGhhcyBub3QgeWV0
IGNvbmNsdWRlZC4KLS8vIEZJWE1FOiBVbmlmeSBuYW1lcyBhbmQgcG9zc2libHkgdmFsdWVzIGZv
cgotLy8gQWJvcnRSZWFzb24sIERlYXRoVGVzdE91dGNvbWUsIGFuZCBmbGFnIGNoYXJhY3RlcnMg
YWJvdmUuCiBlbnVtIERlYXRoVGVzdE91dGNvbWUgeyBJTl9QUk9HUkVTUywgRElFRCwgTElWRUQs
IFJFVFVSTkVELCBUSFJFVyB9OwogCiAvLyBSb3V0aW5lIGZvciBhYm9ydGluZyB0aGUgcHJvZ3Jh
bSB3aGljaCBpcyBzYWZlIHRvIGNhbGwgZnJvbSBhbgpAQCAtMjgxLDcgKzI4OSw3IEBAIHN0YXRp
YyB2b2lkIERlYXRoVGVzdEFib3J0KGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CiAgIC8v
IHRoZSBoZWFwIGZvciBhbnkgYWRkaXRpb25hbCBub24tbWludXNjdWxlIG1lbW9yeSByZXF1aXJl
bWVudHMuCiAgIGNvbnN0IEludGVybmFsUnVuRGVhdGhUZXN0RmxhZyogY29uc3QgZmxhZyA9CiAg
ICAgICBHZXRVbml0VGVzdEltcGwoKS0+aW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZygpOwot
ICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICBGSUxF
KiBwYXJlbnQgPSBwb3NpeDo6RkRPcGVuKGZsYWctPndyaXRlX2ZkKCksICJ3Iik7CiAgICAgZnB1
dGMoa0RlYXRoVGVzdEludGVybmFsRXJyb3IsIHBhcmVudCk7CiAgICAgZnByaW50ZihwYXJlbnQs
ICIlcyIsIG1lc3NhZ2UuY19zdHIoKSk7CkBAIC0zNjEsNyArMzY5LDcgQEAgc3RhdGljIHZvaWQg
RmFpbEZyb21JbnRlcm5hbEVycm9yKGludCBmZCkgewogLy8gZm9yIHRoZSBjdXJyZW50IHRlc3Qu
CiBEZWF0aFRlc3Q6OkRlYXRoVGVzdCgpIHsKICAgVGVzdEluZm8qIGNvbnN0IGluZm8gPSBHZXRV
bml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgaWYgKGluZm8gPT0gTlVMTCkg
eworICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CiAgICAgRGVhdGhUZXN0QWJvcnQoIkNhbm5vdCBy
dW4gYSBkZWF0aCB0ZXN0IG91dHNpZGUgb2YgYSBURVNUIG9yICIKICAgICAgICAgICAgICAgICAg
ICAiVEVTVF9GIGNvbnN0cnVjdCIpOwogICB9CkBAIC0zNjksMTAgKzM3NywxMSBAQCBEZWF0aFRl
c3Q6OkRlYXRoVGVzdCgpIHsKIAogLy8gQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGRlYXRoIHRlc3Qg
YnkgZGlzcGF0Y2hpbmcgdG8gdGhlIGN1cnJlbnQKIC8vIGRlYXRoIHRlc3QgZmFjdG9yeS4KLWJv
b2wgRGVhdGhUZXN0OjpDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVn
ZXgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBE
ZWF0aFRlc3QqKiB0ZXN0KSB7Citib29sIERlYXRoVGVzdDo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0
YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmlu
ZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHJldHVybiBHZXRVbml0VGVzdEltcGwoKS0+
ZGVhdGhfdGVzdF9mYWN0b3J5KCktPkNyZWF0ZSgKLSAgICAgIHN0YXRlbWVudCwgcmVnZXgsIGZp
bGUsIGxpbmUsIHRlc3QpOworICAgICAgc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZp
bGUsIGxpbmUsIHRlc3QpOwogfQogCiBjb25zdCBjaGFyKiBEZWF0aFRlc3Q6Okxhc3RNZXNzYWdl
KCkgewpAQCAtMzg4LDkgKzM5Nyw5IEBAIHN0ZDo6c3RyaW5nIERlYXRoVGVzdDo6bGFzdF9kZWF0
aF90ZXN0X21lc3NhZ2VfOwogLy8gUHJvdmlkZXMgY3Jvc3MgcGxhdGZvcm0gaW1wbGVtZW50YXRp
b24gZm9yIHNvbWUgZGVhdGggZnVuY3Rpb25hbGl0eS4KIGNsYXNzIERlYXRoVGVzdEltcGwgOiBw
dWJsaWMgRGVhdGhUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIERlYXRoVGVzdEltcGwoY29uc3QgY2hh
ciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4KQorICBEZWF0aFRlc3RJbXBsKGNvbnN0
IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcikK
ICAgICAgIDogc3RhdGVtZW50XyhhX3N0YXRlbWVudCksCi0gICAgICAgIHJlZ2V4XyhhX3JlZ2V4
KSwKKyAgICAgICAgbWF0Y2hlcl8oc3RkOjptb3ZlKG1hdGNoZXIpKSwKICAgICAgICAgc3Bhd25l
ZF8oZmFsc2UpLAogICAgICAgICBzdGF0dXNfKC0xKSwKICAgICAgICAgb3V0Y29tZV8oSU5fUFJP
R1JFU1MpLApAQCAtMzk4LDEzICs0MDcsMTIgQEAgY2xhc3MgRGVhdGhUZXN0SW1wbCA6IHB1Ymxp
YyBEZWF0aFRlc3QgewogICAgICAgICB3cml0ZV9mZF8oLTEpIHt9CiAKICAgLy8gcmVhZF9mZF8g
aXMgZXhwZWN0ZWQgdG8gYmUgY2xvc2VkIGFuZCBjbGVhcmVkIGJ5IGEgZGVyaXZlZCBjbGFzcy4K
LSAgfkRlYXRoVGVzdEltcGwoKSB7IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHJlYWRfZmRfID09
IC0xKTsgfQorICB+RGVhdGhUZXN0SW1wbCgpIG92ZXJyaWRlIHsgR1RFU1RfREVBVEhfVEVTVF9D
SEVDS18ocmVhZF9mZF8gPT0gLTEpOyB9CiAKLSAgdm9pZCBBYm9ydChBYm9ydFJlYXNvbiByZWFz
b24pOwotICB2aXJ0dWFsIGJvb2wgUGFzc2VkKGJvb2wgc3RhdHVzX29rKTsKKyAgdm9pZCBBYm9y
dChBYm9ydFJlYXNvbiByZWFzb24pIG92ZXJyaWRlOworICBib29sIFBhc3NlZChib29sIHN0YXR1
c19vaykgb3ZlcnJpZGU7CiAKICAgY29uc3QgY2hhciogc3RhdGVtZW50KCkgY29uc3QgeyByZXR1
cm4gc3RhdGVtZW50XzsgfQotICBjb25zdCBSRSogcmVnZXgoKSBjb25zdCB7IHJldHVybiByZWdl
eF87IH0KICAgYm9vbCBzcGF3bmVkKCkgY29uc3QgeyByZXR1cm4gc3Bhd25lZF87IH0KICAgdm9p
ZCBzZXRfc3Bhd25lZChib29sIGlzX3NwYXduZWQpIHsgc3Bhd25lZF8gPSBpc19zcGF3bmVkOyB9
CiAgIGludCBzdGF0dXMoKSBjb25zdCB7IHJldHVybiBzdGF0dXNfOyB9CkBAIC00MjIsMTMgKzQz
MCwxNSBAQCBjbGFzcyBEZWF0aFRlc3RJbXBsIDogcHVibGljIERlYXRoVGVzdCB7CiAgIC8vIGNh
c2Ugb2YgdW5leHBlY3RlZCBjb2Rlcy4KICAgdm9pZCBSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0
ZSgpOwogCisgIC8vIFJldHVybnMgc3RkZXJyIG91dHB1dCBmcm9tIHRoZSBjaGlsZCBwcm9jZXNz
LgorICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIEdldEVycm9yTG9ncygpOworCiAgcHJpdmF0ZToKICAg
Ly8gVGhlIHRleHR1YWwgY29udGVudCBvZiB0aGUgY29kZSB0aGlzIG9iamVjdCBpcyB0ZXN0aW5n
LiAgVGhpcyBjbGFzcwogICAvLyBkb2Vzbid0IG93biB0aGlzIHN0cmluZyBhbmQgc2hvdWxkIG5v
dCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KICAgY29uc3QgY2hhciogY29uc3Qgc3RhdGVtZW50XzsK
LSAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aGljaCB0ZXN0IG91dHB1dCBtdXN0IG1hdGNo
LiAgRGVhdGhUZXN0SW1wbAotICAvLyBkb2Vzbid0IG93biB0aGlzIG9iamVjdCBhbmQgc2hvdWxk
IG5vdCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KLSAgY29uc3QgUkUqIGNvbnN0IHJlZ2V4XzsKKyAg
Ly8gQSBtYXRjaGVyIHRoYXQncyBleHBlY3RlZCB0byBtYXRjaCB0aGUgc3RkZXJyIG91dHB1dCBi
eSB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNo
ZXJfOwogICAvLyBUcnVlIGlmIHRoZSBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3MgaGFzIGJlZW4g
c3VjY2Vzc2Z1bGx5IHNwYXduZWQuCiAgIGJvb2wgc3Bhd25lZF87CiAgIC8vIFRoZSBleGl0IHN0
YXR1cyBvZiB0aGUgY2hpbGQgcHJvY2Vzcy4KQEAgLTQ5MCw2ICs1MDAsMTAgQEAgdm9pZCBEZWF0
aFRlc3RJbXBsOjpSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0ZSgpIHsKICAgc2V0X3JlYWRfZmQo
LTEpOwogfQogCitzdGQ6OnN0cmluZyBEZWF0aFRlc3RJbXBsOjpHZXRFcnJvckxvZ3MoKSB7Cisg
IHJldHVybiBHZXRDYXB0dXJlZFN0ZGVycigpOworfQorCiAvLyBTaWduYWxzIHRoYXQgdGhlIGRl
YXRoIHRlc3QgY29kZSB3aGljaCBzaG91bGQgaGF2ZSBleGl0ZWQsIGRpZG4ndC4KIC8vIFNob3Vs
ZCBiZSBjYWxsZWQgb25seSBpbiBhIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcy4KIC8vIFdyaXRl
cyBhIHN0YXR1cyBieXRlIHRvIHRoZSBjaGlsZCdzIHN0YXR1cyBmaWxlIGRlc2NyaXB0b3IsIHRo
ZW4KQEAgLTU0MywyMiArNTU3LDIxIEBAIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIEZvcm1hdERlYXRo
VGVzdE91dHB1dChjb25zdCA6OnN0ZDo6c3RyaW5nJiBvdXRwdXQpIHsKIC8vICAgICAgICAgICAg
IGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHdhaXQoMikuIE9uIFdpbmRvd3MsIHRoaXMgaXMg
dGhlCiAvLyAgICAgICAgICAgICB2YWx1ZSBzdXBwbGllZCB0byB0aGUgRXhpdFByb2Nlc3MoKSBB
UEkgb3IgYSBudW1lcmljIGNvZGUKIC8vICAgICAgICAgICAgIG9mIHRoZSBleGNlcHRpb24gdGhh
dCB0ZXJtaW5hdGVkIHRoZSBwcm9ncmFtLgotLy8gICByZWdleDogICAgQSByZWd1bGFyIGV4cHJl
c3Npb24gb2JqZWN0IHRvIGJlIGFwcGxpZWQgdG8KLS8vICAgICAgICAgICAgIHRoZSB0ZXN0J3Mg
Y2FwdHVyZWQgc3RhbmRhcmQgZXJyb3Igb3V0cHV0OyB0aGUgZGVhdGggdGVzdAotLy8gICAgICAg
ICAgICAgZmFpbHMgaWYgaXQgZG9lcyBub3QgbWF0Y2guCisvLyAgIG1hdGNoZXJfOiBBIG1hdGNo
ZXIgdGhhdCdzIGV4cGVjdGVkIHRvIG1hdGNoIHRoZSBzdGRlcnIgb3V0cHV0IGJ5IHRoZSBjaGls
ZAorLy8gICAgICAgICAgICAgcHJvY2Vzcy4KIC8vCiAvLyBBcmd1bWVudDoKIC8vICAgc3RhdHVz
X29rOiB0cnVlIGlmIGV4aXRfc3RhdHVzIGlzIGFjY2VwdGFibGUgaW4gdGhlIGNvbnRleHQgb2YK
IC8vICAgICAgICAgICAgICB0aGlzIHBhcnRpY3VsYXIgZGVhdGggdGVzdCwgd2hpY2ggZmFpbHMg
aWYgaXQgaXMgZmFsc2UKIC8vCi0vLyBSZXR1cm5zIHRydWUgaWZmIGFsbCBvZiB0aGUgYWJvdmUg
Y29uZGl0aW9ucyBhcmUgbWV0LiAgT3RoZXJ3aXNlLCB0aGUKLS8vIGZpcnN0IGZhaWxpbmcgY29u
ZGl0aW9uLCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIGlzIHRoZSBvbmUgdGhhdCBpcworLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIGFsbCBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBh
cmUgbWV0LiAgT3RoZXJ3aXNlLAorLy8gdGhlIGZpcnN0IGZhaWxpbmcgY29uZGl0aW9uLCBpbiB0
aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIGlzIHRoZSBvbmUgdGhhdCBpcwogLy8gcmVwb3J0ZWQuIEFs
c28gc2V0cyB0aGUgbGFzdCBkZWF0aCB0ZXN0IG1lc3NhZ2Ugc3RyaW5nLgogYm9vbCBEZWF0aFRl
c3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsKICAgaWYgKCFzcGF3bmVkKCkpCiAgICAg
cmV0dXJuIGZhbHNlOwogCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UgPSBHZXRD
YXB0dXJlZFN0ZGVycigpOworICBjb25zdCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlID0gR2V0
RXJyb3JMb2dzKCk7CiAKICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CiAgIE1lc3NhZ2UgYnVmZmVy
OwpAQCAtNTc5LDE4ICs1OTIsMTUgQEAgYm9vbCBEZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBz
dGF0dXNfb2spIHsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRElFRDoKICAgICAgIGlmIChzdGF0
dXNfb2spIHsKLSMgaWYgR1RFU1RfVVNFU19QQ1JFCi0gICAgICAgIC8vIFBDUkUgcmVnZXhlcyBz
dXBwb3J0IGVtYmVkZGVkIE5VTHMuCi0gICAgICAgIGNvbnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQ
YXJ0aWFsTWF0Y2goZXJyb3JfbWVzc2FnZSwgKnJlZ2V4KCkpOwotIyBlbHNlCi0gICAgICAgIGNv
bnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQYXJ0aWFsTWF0Y2goZXJyb3JfbWVzc2FnZS5jX3N0cigp
LCAqcmVnZXgoKSk7Ci0jIGVuZGlmICAvLyBHVEVTVF9VU0VTX1BDUkUKLSAgICAgICAgaWYgKG1h
dGNoZWQpIHsKKyAgICAgICAgaWYgKG1hdGNoZXJfLk1hdGNoZXMoZXJyb3JfbWVzc2FnZSkpIHsK
ICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBz
dGQ6Om9zdHJpbmdzdHJlYW0gc3RyZWFtOworICAgICAgICAgIG1hdGNoZXJfLkRlc2NyaWJlVG8o
JnN0cmVhbSk7CiAgICAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qg
d2l0aCBleHBlY3RlZCBlcnJvci5cbiIKLSAgICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6
ICIgPDwgcmVnZXgoKS0+cGF0dGVybigpIDw8ICJcbiIKLSAgICAgICAgICAgICAgICAgPDwgIkFj
dHVhbCBtc2c6XG4iIDw8IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsKKyAg
ICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6ICIgPDwgc3RyZWFtLnN0cigpIDw8ICJcbiIK
KyAgICAgICAgICAgICAgICAgPDwgIkFjdHVhbCBtc2c6XG4iCisgICAgICAgICAgICAgICAgIDw8
IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgfQogICAgICAg
fSBlbHNlIHsKICAgICAgICAgYnVmZmVyIDw8ICIgICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qgd2l0
aCBleHBlY3RlZCBleGl0IGNvZGU6XG4iCkBAIC02MzksMTEgKzY0OSwxMSBAQCBib29sIERlYXRo
VGVzdEltcGw6OlBhc3NlZChib29sIHN0YXR1c19vaykgewogLy8KIGNsYXNzIFdpbmRvd3NEZWF0
aFRlc3QgOiBwdWJsaWMgRGVhdGhUZXN0SW1wbCB7CiAgcHVibGljOgotICBXaW5kb3dzRGVhdGhU
ZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgIGNvbnN0IFJF
KiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsCi0gICAgICAg
ICAgICAgICAgICAgaW50IGxpbmUpCi0gICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpLCBmaWxlXyhmaWxlKSwgbGluZV8obGluZSkge30KKyAgV2luZG93c0RlYXRoVGVz
dChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1h
dGNoZXIsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCisg
ICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSksCisg
ICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5lXyhsaW5lKSB7fQogCiAgIC8vIEFsbCBv
ZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gRGVhdGhUZXN0Lgog
ICB2aXJ0dWFsIGludCBXYWl0KCk7CkBAIC03MjAsNyArNzMwLDcgQEAgRGVhdGhUZXN0OjpUZXN0
Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICBjb25zdCBUZXN0SW5mbyog
Y29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAgIGNvbnN0IGludCBkZWF0
aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKIAotICBp
ZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICAvLyBQYXJz
ZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIGhhcyBwZXJmb3JtZWQgYWxsIHRoZSBuZWNlc3Nh
cnkKICAgICAvLyBwcm9jZXNzaW5nLgogICAgIHNldF93cml0ZV9mZChmbGFnLT53cml0ZV9mZCgp
KTsKQEAgLTcyOSw4ICs3MzksOCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIFdpbmRvd3NEZWF0aFRl
c3Q6OkFzc3VtZVJvbGUoKSB7CiAKICAgLy8gV2luZG93c0RlYXRoVGVzdCB1c2VzIGFuIGFub255
bW91cyBwaXBlIHRvIGNvbW11bmljYXRlIHJlc3VsdHMgb2YKICAgLy8gYSBkZWF0aCB0ZXN0Lgot
ICBTRUNVUklUWV9BVFRSSUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRhYmxlID0gewotICAgIHNp
emVvZihTRUNVUklUWV9BVFRSSUJVVEVTKSwgTlVMTCwgVFJVRSB9OworICBTRUNVUklUWV9BVFRS
SUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRhYmxlID0ge3NpemVvZihTRUNVUklUWV9BVFRSSUJV
VEVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dWxscHRyLCBUUlVFfTsKICAgSEFORExFIHJlYWRfaGFuZGxlLCB3cml0ZV9oYW5kbGU7CiAgIEdU
RVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKAogICAgICAgOjpDcmVhdGVQaXBlKCZyZWFkX2hhbmRsZSwg
JndyaXRlX2hhbmRsZSwgJmhhbmRsZXNfYXJlX2luaGVyaXRhYmxlLApAQCAtNzQxLDEzICs3NTEs
MTMgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkg
ewogICB3cml0ZV9oYW5kbGVfLlJlc2V0KHdyaXRlX2hhbmRsZSk7CiAgIGV2ZW50X2hhbmRsZV8u
UmVzZXQoOjpDcmVhdGVFdmVudCgKICAgICAgICZoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSwKLSAg
ICAgIFRSVUUsICAgIC8vIFRoZSBldmVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gbm9u
LXNpZ25hbGVkIHN0YXRlLgotICAgICAgRkFMU0UsICAgLy8gVGhlIGluaXRpYWwgc3RhdGUgaXMg
bm9uLXNpZ25hbGxlZC4KLSAgICAgIE5VTEwpKTsgIC8vIFRoZSBldmVuIGlzIHVubmFtZWQuCi0g
IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hhbmRsZV8uR2V0KCkgIT0gTlVMTCk7Ci0g
IGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0KLSAgICAgIHN0ZDo6c3RyaW5nKCItLSIp
ICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ZpbHRlckZsYWcgKyAiPSIgKwotICAgICAgaW5mby0+
dGVzdF9jYXNlX25hbWUoKSArICIuIiArIGluZm8tPm5hbWUoKTsKKyAgICAgIFRSVUUsICAgICAg
IC8vIFRoZSBldmVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gbm9uLXNpZ25hbGVkIHN0
YXRlLgorICAgICAgRkFMU0UsICAgICAgLy8gVGhlIGluaXRpYWwgc3RhdGUgaXMgbm9uLXNpZ25h
bGxlZC4KKyAgICAgIG51bGxwdHIpKTsgIC8vIFRoZSBldmVuIGlzIHVubmFtZWQuCisgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hhbmRsZV8uR2V0KCkgIT0gbnVsbHB0cik7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9G
TEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJG
bGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
aW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJF
RklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgKwogICAgICAgIj0iICsgZmlsZV8gKyAi
fCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsgInwiICsKQEAgLTc2MCwxMCArNzcwLDkg
QEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewog
ICAgICAgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihl
dmVudF9oYW5kbGVfLkdldCgpKSk7CiAKICAgY2hhciBleGVjdXRhYmxlX3BhdGhbX01BWF9QQVRI
ICsgMV07ICAvLyBOT0xJTlQKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oCi0gICAgICBfTUFY
X1BBVEggKyAxICE9IDo6R2V0TW9kdWxlRmlsZU5hbWVBKE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGVfcGF0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01BWF9QQVRIKSk7CisgIEdURVNUX0RF
QVRIX1RFU1RfQ0hFQ0tfKF9NQVhfUEFUSCArIDEgIT0gOjpHZXRNb2R1bGVGaWxlTmFtZUEobnVs
bHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01BWF9QQVRIKSk7CiAKICAg
c3RkOjpzdHJpbmcgY29tbWFuZF9saW5lID0KICAgICAgIHN0ZDo6c3RyaW5nKDo6R2V0Q29tbWFu
ZExpbmVBKCkpICsgIiAiICsgZmlsdGVyX2ZsYWcgKyAiIFwiIiArCkBAIC03ODQsMTcgKzc5Mywx
NiBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIFdpbmRvd3NEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7
CiAgIHN0YXJ0dXBfaW5mby5oU3RkRXJyb3IgPSA6OkdldFN0ZEhhbmRsZShTVERfRVJST1JfSEFO
RExFKTsKIAogICBQUk9DRVNTX0lORk9STUFUSU9OIHByb2Nlc3NfaW5mbzsKLSAgR1RFU1RfREVB
VEhfVEVTVF9DSEVDS18oOjpDcmVhdGVQcm9jZXNzQSgKLSAgICAgIGV4ZWN1dGFibGVfcGF0aCwK
LSAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KGNvbW1hbmRfbGluZS5jX3N0cigpKSwKLSAgICAgIE5V
TEwsICAgLy8gUmV0dW5lZCBwcm9jZXNzIGhhbmRsZSBpcyBub3QgaW5oZXJpdGFibGUuCi0gICAg
ICBOVUxMLCAgIC8vIFJldHVuZWQgdGhyZWFkIGhhbmRsZSBpcyBub3QgaW5oZXJpdGFibGUuCi0g
ICAgICBUUlVFLCAgIC8vIENoaWxkIGluaGVyaXRzIGFsbCBpbmhlcml0YWJsZSBoYW5kbGVzIChm
b3Igd3JpdGVfaGFuZGxlXykuCi0gICAgICAweDAsICAgIC8vIERlZmF1bHQgY3JlYXRpb24gZmxh
Z3MuCi0gICAgICBOVUxMLCAgIC8vIEluaGVyaXQgdGhlIHBhcmVudCdzIGVudmlyb25tZW50Lgot
ICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksCi0g
ICAgICAmc3RhcnR1cF9pbmZvLAotICAgICAgJnByb2Nlc3NfaW5mbykgIT0gRkFMU0UpOworICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXygKKyAgICAgIDo6Q3JlYXRlUHJvY2Vzc0EoCisgICAgICAg
ICAgZXhlY3V0YWJsZV9wYXRoLCBjb25zdF9jYXN0PGNoYXIqPihjb21tYW5kX2xpbmUuY19zdHIo
KSksCisgICAgICAgICAgbnVsbHB0ciwgIC8vIFJldHVuZWQgcHJvY2VzcyBoYW5kbGUgaXMgbm90
IGluaGVyaXRhYmxlLgorICAgICAgICAgIG51bGxwdHIsICAvLyBSZXR1bmVkIHRocmVhZCBoYW5k
bGUgaXMgbm90IGluaGVyaXRhYmxlLgorICAgICAgICAgIFRSVUUsICAvLyBDaGlsZCBpbmhlcml0
cyBhbGwgaW5oZXJpdGFibGUgaGFuZGxlcyAoZm9yIHdyaXRlX2hhbmRsZV8pLgorICAgICAgICAg
IDB4MCwgICAvLyBEZWZhdWx0IGNyZWF0aW9uIGZsYWdzLgorICAgICAgICAgIG51bGxwdHIsICAv
LyBJbmhlcml0IHRoZSBwYXJlbnQncyBlbnZpcm9ubWVudC4KKyAgICAgICAgICBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSwgJnN0YXJ0dXBfaW5mbywKKyAg
ICAgICAgICAmcHJvY2Vzc19pbmZvKSAhPSBGQUxTRSk7CiAgIGNoaWxkX2hhbmRsZV8uUmVzZXQo
cHJvY2Vzc19pbmZvLmhQcm9jZXNzKTsKICAgOjpDbG9zZUhhbmRsZShwcm9jZXNzX2luZm8uaFRo
cmVhZCk7CiAgIHNldF9zcGF3bmVkKHRydWUpOwpAQCAtODA1LDM4ICs4MTMsMzQgQEAgRGVhdGhU
ZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogCiBjbGFzcyBG
dWNoc2lhRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1YmxpYzoKLSAgRnVj
aHNpYURlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwKLSAgICAgICAgICAgICAgICAg
ICBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxl
LAotICAgICAgICAgICAgICAgICAgIGludCBsaW5lKQotICAgICAgOiBEZWF0aFRlc3RJbXBsKGFf
c3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHt9Ci0gIHZpcnR1
YWwgfkZ1Y2hzaWFEZWF0aFRlc3QoKSB7Ci0gICAgenhfc3RhdHVzX3Qgc3RhdHVzID0genhfaGFu
ZGxlX2Nsb3NlKGNoaWxkX3Byb2Nlc3NfKTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhz
dGF0dXMgPT0gWlhfT0spOwotICAgIHN0YXR1cyA9IHp4X2hhbmRsZV9jbG9zZShwb3J0Xyk7Ci0g
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgfQorICBGdWNo
c2lhRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBp
bnQgbGluZSkKKyAgICAgIDogRGVhdGhUZXN0SW1wbChhX3N0YXRlbWVudCwgc3RkOjptb3ZlKG1h
dGNoZXIpKSwKKyAgICAgICAgZmlsZV8oZmlsZSksCisgICAgICAgIGxpbmVfKGxpbmUpIHt9CiAK
ICAgLy8gQWxsIG9mIHRoZXNlIHZpcnR1YWwgZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSBE
ZWF0aFRlc3QuCi0gIHZpcnR1YWwgaW50IFdhaXQoKTsKLSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1
bWVSb2xlKCk7CisgIGludCBXYWl0KCkgb3ZlcnJpZGU7CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUo
KSBvdmVycmlkZTsKKyAgc3RkOjpzdHJpbmcgR2V0RXJyb3JMb2dzKCkgb3ZlcnJpZGU7CiAKICBw
cml2YXRlOgogICAvLyBUaGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB3aGljaCB0aGUgZGVhdGggdGVz
dCBpcyBsb2NhdGVkLgogICBjb25zdCBjaGFyKiBjb25zdCBmaWxlXzsKICAgLy8gVGhlIGxpbmUg
bnVtYmVyIG9uIHdoaWNoIHRoZSBkZWF0aCB0ZXN0IGlzIGxvY2F0ZWQuCiAgIGNvbnN0IGludCBs
aW5lXzsKKyAgLy8gVGhlIHN0ZGVyciBkYXRhIGNhcHR1cmVkIGJ5IHRoZSBjaGlsZCBwcm9jZXNz
LgorICBzdGQ6OnN0cmluZyBjYXB0dXJlZF9zdGRlcnJfOwogCi0gIHp4X2hhbmRsZV90IGNoaWxk
X3Byb2Nlc3NfID0gWlhfSEFORExFX0lOVkFMSUQ7Ci0gIHp4X2hhbmRsZV90IHBvcnRfID0gWlhf
SEFORExFX0lOVkFMSUQ7CisgIHp4Ojpwcm9jZXNzIGNoaWxkX3Byb2Nlc3NfOworICB6eDo6Y2hh
bm5lbCBleGNlcHRpb25fY2hhbm5lbF87CisgIHp4Ojpzb2NrZXQgc3RkZXJyX3NvY2tldF87CiB9
OwogCiAvLyBVdGlsaXR5IGNsYXNzIGZvciBhY2N1bXVsYXRpbmcgY29tbWFuZC1saW5lIGFyZ3Vt
ZW50cy4KIGNsYXNzIEFyZ3VtZW50cyB7CiAgcHVibGljOgotICBBcmd1bWVudHMoKSB7Ci0gICAg
YXJnc18ucHVzaF9iYWNrKE5VTEwpOwotICB9CisgIEFyZ3VtZW50cygpIHsgYXJnc18ucHVzaF9i
YWNrKG51bGxwdHIpOyB9CiAKICAgfkFyZ3VtZW50cygpIHsKICAgICBmb3IgKHN0ZDo6dmVjdG9y
PGNoYXIqPjo6aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2luKCk7IGkgIT0gYXJnc18uZW5kKCk7CkBA
IC04NzIsNTEgKzg3Niw4NiBAQCBjbGFzcyBBcmd1bWVudHMgewogLy8gc3RhdHVzLCBvciAwIGlm
IG5vIGNoaWxkIHByb2Nlc3MgZXhpc3RzLiAgQXMgYSBzaWRlIGVmZmVjdCwgc2V0cyB0aGUKIC8v
IG91dGNvbWUgZGF0YSBtZW1iZXIuCiBpbnQgRnVjaHNpYURlYXRoVGVzdDo6V2FpdCgpIHsKKyAg
Y29uc3QgaW50IGtQcm9jZXNzS2V5ID0gMDsKKyAgY29uc3QgaW50IGtTb2NrZXRLZXkgPSAxOwor
ICBjb25zdCBpbnQga0V4Y2VwdGlvbktleSA9IDI7CisKICAgaWYgKCFzcGF3bmVkKCkpCiAgICAg
cmV0dXJuIDA7CiAKLSAgLy8gUmVnaXN0ZXIgdG8gd2FpdCBmb3IgdGhlIGNoaWxkIHByb2Nlc3Mg
dG8gdGVybWluYXRlLgorICAvLyBDcmVhdGUgYSBwb3J0IHRvIHdhaXQgZm9yIHNvY2tldC90YXNr
L2V4Y2VwdGlvbiBldmVudHMuCiAgIHp4X3N0YXR1c190IHN0YXR1c196eDsKLSAgc3RhdHVzX3p4
ID0genhfb2JqZWN0X3dhaXRfYXN5bmMoY2hpbGRfcHJvY2Vzc18sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwIC8qIGtleSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWlhf
UFJPQ0VTU19URVJNSU5BVEVELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa
WF9XQUlUX0FTWU5DX09OQ0UpOworICB6eDo6cG9ydCBwb3J0OworICBzdGF0dXNfenggPSB6eDo6
cG9ydDo6Y3JlYXRlKDAsICZwb3J0KTsKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVz
X3p4ID09IFpYX09LKTsKIAotICAvLyBXYWl0IGZvciBpdCB0byB0ZXJtaW5hdGUsIG9yIGFuIGV4
Y2VwdGlvbiB0byBiZSByZWNlaXZlZC4KLSAgenhfcG9ydF9wYWNrZXRfdCBwYWNrZXQ7Ci0gIHN0
YXR1c196eCA9IHp4X3BvcnRfd2FpdChwb3J0XywgWlhfVElNRV9JTkZJTklURSwgJnBhY2tldCk7
CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0
ZS4KKyAgc3RhdHVzX3p4ID0gY2hpbGRfcHJvY2Vzc18ud2FpdF9hc3luYygKKyAgICAgIHBvcnQs
IGtQcm9jZXNzS2V5LCBaWF9QUk9DRVNTX1RFUk1JTkFURUQsIDApOwogICBHVEVTVF9ERUFUSF9U
RVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwogCi0gIGlmIChaWF9QS1RfSVNfRVhDRVBU
SU9OKHBhY2tldC50eXBlKSkgewotICAgIC8vIFByb2Nlc3MgZW5jb3VudGVyZWQgYW4gZXhjZXB0
aW9uLiBLaWxsIGl0IGRpcmVjdGx5IHJhdGhlciB0aGFuIGxldHRpbmcKLSAgICAvLyBvdGhlciBo
YW5kbGVycyBwcm9jZXNzIHRoZSBldmVudC4KLSAgICBzdGF0dXNfenggPSB6eF90YXNrX2tpbGwo
Y2hpbGRfcHJvY2Vzc18pOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9
PSBaWF9PSyk7CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBzb2NrZXQgdG8gYmUgcmVh
ZGFibGUgb3IgY2xvc2VkLgorICBzdGF0dXNfenggPSBzdGRlcnJfc29ja2V0Xy53YWl0X2FzeW5j
KAorICAgICAgcG9ydCwga1NvY2tldEtleSwgWlhfU09DS0VUX1JFQURBQkxFIHwgWlhfU09DS0VU
X1BFRVJfQ0xPU0VELCAwKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09
IFpYX09LKTsKKworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciBhbiBleGNlcHRpb24uCisgIHN0
YXR1c196eCA9IGV4Y2VwdGlvbl9jaGFubmVsXy53YWl0X2FzeW5jKAorICAgICAgcG9ydCwga0V4
Y2VwdGlvbktleSwgWlhfQ0hBTk5FTF9SRUFEQUJMRSwgMCk7CisgIEdURVNUX0RFQVRIX1RFU1Rf
Q0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKLSAgICAvLyBOb3cgd2FpdCBmb3IgfGNoaWxk
X3Byb2Nlc3NffCB0byB0ZXJtaW5hdGUuCi0gICAgenhfc2lnbmFsc190IHNpZ25hbHMgPSAwOwot
ICAgIHN0YXR1c196eCA9IHp4X29iamVjdF93YWl0X29uZSgKLSAgICAgICAgY2hpbGRfcHJvY2Vz
c18sIFpYX1BST0NFU1NfVEVSTUlOQVRFRCwgWlhfVElNRV9JTkZJTklURSwgJnNpZ25hbHMpOwor
ICBib29sIHByb2Nlc3NfdGVybWluYXRlZCA9IGZhbHNlOworICBib29sIHNvY2tldF9jbG9zZWQg
PSBmYWxzZTsKKyAgZG8geworICAgIHp4X3BvcnRfcGFja2V0X3QgcGFja2V0ID0ge307CisgICAg
c3RhdHVzX3p4ID0gcG9ydC53YWl0KHp4Ojp0aW1lOjppbmZpbml0ZSgpLCAmcGFja2V0KTsKICAg
ICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwotICAgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKHNpZ25hbHMgJiBaWF9QUk9DRVNTX1RFUk1JTkFURUQpOwotICB9
IGVsc2UgewotICAgIC8vIFByb2Nlc3MgdGVybWluYXRlZC4KLSAgICBHVEVTVF9ERUFUSF9URVNU
X0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOwotICAgIEdURVNUX0RF
QVRIX1RFU1RfQ0hFQ0tfKHBhY2tldC5zaWduYWwub2JzZXJ2ZWQgJiBaWF9QUk9DRVNTX1RFUk1J
TkFURUQpOwotICB9CisKKyAgICBpZiAocGFja2V0LmtleSA9PSBrRXhjZXB0aW9uS2V5KSB7Cisg
ICAgICAvLyBQcm9jZXNzIGVuY291bnRlcmVkIGFuIGV4Y2VwdGlvbi4gS2lsbCBpdCBkaXJlY3Rs
eSByYXRoZXIgdGhhbgorICAgICAgLy8gbGV0dGluZyBvdGhlciBoYW5kbGVycyBwcm9jZXNzIHRo
ZSBldmVudC4gV2Ugd2lsbCBnZXQgYSBrUHJvY2Vzc0tleQorICAgICAgLy8gZXZlbnQgd2hlbiB0
aGUgcHJvY2VzcyBhY3R1YWxseSB0ZXJtaW5hdGVzLgorICAgICAgc3RhdHVzX3p4ID0gY2hpbGRf
cHJvY2Vzc18ua2lsbCgpOworICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4
ID09IFpYX09LKTsKKyAgICB9IGVsc2UgaWYgKHBhY2tldC5rZXkgPT0ga1Byb2Nlc3NLZXkpIHsK
KyAgICAgIC8vIFByb2Nlc3MgdGVybWluYXRlZC4KKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hF
Q0tfKFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50eXBlKSk7CisgICAgICBHVEVTVF9ERUFU
SF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2VydmVkICYgWlhfUFJPQ0VTU19URVJNSU5B
VEVEKTsKKyAgICAgIHByb2Nlc3NfdGVybWluYXRlZCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChw
YWNrZXQua2V5ID09IGtTb2NrZXRLZXkpIHsKKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50eXBlKSk7CisgICAgICBpZiAocGFja2V0LnNp
Z25hbC5vYnNlcnZlZCAmIFpYX1NPQ0tFVF9SRUFEQUJMRSkgeworICAgICAgICAvLyBSZWFkIGRh
dGEgZnJvbSB0aGUgc29ja2V0LgorICAgICAgICBjb25zdGV4cHIgc2l6ZV90IGtCdWZmZXJTaXpl
ID0gMTAyNDsKKyAgICAgICAgZG8geworICAgICAgICAgIHNpemVfdCBvbGRfbGVuZ3RoID0gY2Fw
dHVyZWRfc3RkZXJyXy5sZW5ndGgoKTsKKyAgICAgICAgICBzaXplX3QgYnl0ZXNfcmVhZCA9IDA7
CisgICAgICAgICAgY2FwdHVyZWRfc3RkZXJyXy5yZXNpemUob2xkX2xlbmd0aCArIGtCdWZmZXJT
aXplKTsKKyAgICAgICAgICBzdGF0dXNfenggPSBzdGRlcnJfc29ja2V0Xy5yZWFkKAorICAgICAg
ICAgICAgICAwLCAmY2FwdHVyZWRfc3RkZXJyXy5mcm9udCgpICsgb2xkX2xlbmd0aCwga0J1ZmZl
clNpemUsCisgICAgICAgICAgICAgICZieXRlc19yZWFkKTsKKyAgICAgICAgICBjYXB0dXJlZF9z
dGRlcnJfLnJlc2l6ZShvbGRfbGVuZ3RoICsgYnl0ZXNfcmVhZCk7CisgICAgICAgIH0gd2hpbGUg
KHN0YXR1c196eCA9PSBaWF9PSyk7CisgICAgICAgIGlmIChzdGF0dXNfenggPT0gWlhfRVJSX1BF
RVJfQ0xPU0VEKSB7CisgICAgICAgICAgc29ja2V0X2Nsb3NlZCA9IHRydWU7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpY
X0VSUl9TSE9VTERfV0FJVCk7CisgICAgICAgICAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tldF8u
d2FpdF9hc3luYygKKyAgICAgICAgICAgICAgcG9ydCwga1NvY2tldEtleSwgWlhfU09DS0VUX1JF
QURBQkxFIHwgWlhfU09DS0VUX1BFRVJfQ0xPU0VELCAwKTsKKyAgICAgICAgICBHVEVTVF9ERUFU
SF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOworICAgICAgICB9CisgICAgICB9IGVs
c2UgeworICAgICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2Vy
dmVkICYgWlhfU09DS0VUX1BFRVJfQ0xPU0VEKTsKKyAgICAgICAgc29ja2V0X2Nsb3NlZCA9IHRy
dWU7CisgICAgICB9CisgICAgfQorICB9IHdoaWxlICghcHJvY2Vzc190ZXJtaW5hdGVkICYmICFz
b2NrZXRfY2xvc2VkKTsKIAogICBSZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0ZSgpOwogCiAgIHp4
X2luZm9fcHJvY2Vzc190IGJ1ZmZlcjsKLSAgc3RhdHVzX3p4ID0genhfb2JqZWN0X2dldF9pbmZv
KAotICAgICAgY2hpbGRfcHJvY2Vzc18sCi0gICAgICBaWF9JTkZPX1BST0NFU1MsCi0gICAgICAm
YnVmZmVyLAotICAgICAgc2l6ZW9mKGJ1ZmZlciksCi0gICAgICBudWxscHRyLAotICAgICAgbnVs
bHB0cik7CisgIHN0YXR1c196eCA9IGNoaWxkX3Byb2Nlc3NfLmdldF9pbmZvKAorICAgICAgWlhf
SU5GT19QUk9DRVNTLCAmYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKICAgR1RF
U1RfREVBVEhfVEVTVF9DSEVDS18oYnVmZmVyLmV4aXRlZCk7CkBAIC05MzYsMjEgKzk3NSwyMCBA
QCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEZ1Y2hzaWFEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAg
IGNvbnN0IFRlc3RJbmZvKiBjb25zdCBpbmZvID0gaW1wbC0+Y3VycmVudF90ZXN0X2luZm8oKTsK
ICAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXggPSBpbmZvLT5yZXN1bHQoKS0+ZGVhdGhfdGVz
dF9jb3VudCgpOwogCi0gIGlmIChmbGFnICE9IE5VTEwpIHsKKyAgaWYgKGZsYWcgIT0gbnVsbHB0
cikgewogICAgIC8vIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCkgaGFzIHBlcmZvcm1l
ZCBhbGwgdGhlIG5lY2Vzc2FyeQogICAgIC8vIHByb2Nlc3NpbmcuCiAgICAgc2V0X3dyaXRlX2Zk
KGtGdWNoc2lhUmVhZFBpcGVGZCk7CiAgICAgcmV0dXJuIEVYRUNVVEVfVEVTVDsKICAgfQogCi0g
IENhcHR1cmVTdGRlcnIoKTsKICAgLy8gRmx1c2ggdGhlIGxvZyBidWZmZXJzIHNpbmNlIHRoZSBs
b2cgc3RyZWFtcyBhcmUgc2hhcmVkIHdpdGggdGhlIGNoaWxkLgogICBGbHVzaEluZm9Mb2coKTsK
IAogICAvLyBCdWlsZCB0aGUgY2hpbGQgcHJvY2VzcyBjb21tYW5kIGxpbmUuCi0gIGNvbnN0IHN0
ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0KLSAgICAgIHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1Rf
RkxBR19QUkVGSVhfICsga0ZpbHRlckZsYWcgKyAiPSIKLSAgICAgICsgaW5mby0+dGVzdF9jYXNl
X25hbWUoKSArICIuIiArIGluZm8tPm5hbWUoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsdGVy
X2ZsYWcgPSBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga0ZpbHRlckZsYWcgKyAiPSIgKyBpbmZvLT50ZXN0
X3N1aXRlX25hbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsg
aW5mby0+bmFtZSgpOwogICBjb25zdCBzdGQ6OnN0cmluZyBpbnRlcm5hbF9mbGFnID0KICAgICAg
IHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ludGVybmFsUnVuRGVh
dGhUZXN0RmxhZyArICI9IgogICAgICAgKyBmaWxlXyArICJ8IgpAQCAtOTY0LDM1ICsxMDAyLDY4
IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgRnVjaHNpYURlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsK
ICAgLy8gQnVpbGQgdGhlIHBpcGUgZm9yIGNvbW11bmljYXRpb24gd2l0aCB0aGUgY2hpbGQuCiAg
IHp4X3N0YXR1c190IHN0YXR1czsKICAgenhfaGFuZGxlX3QgY2hpbGRfcGlwZV9oYW5kbGU7Ci0g
IHVpbnQzMl90IHR5cGU7Ci0gIHN0YXR1cyA9IGZkaW9fcGlwZV9oYWxmKCZjaGlsZF9waXBlX2hh
bmRsZSwgJnR5cGUpOwotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPj0gMCk7Ci0g
IHNldF9yZWFkX2ZkKHN0YXR1cyk7CisgIGludCBjaGlsZF9waXBlX2ZkOworICBzdGF0dXMgPSBm
ZGlvX3BpcGVfaGFsZigmY2hpbGRfcGlwZV9mZCwgJmNoaWxkX3BpcGVfaGFuZGxlKTsKKyAgR1RF
U1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKKyAgc2V0X3JlYWRfZmQoY2hp
bGRfcGlwZV9mZCk7CiAKICAgLy8gU2V0IHRoZSBwaXBlIGhhbmRsZSBmb3IgdGhlIGNoaWxkLgot
ICBmZGlvX3NwYXduX2FjdGlvbl90IGFkZF9oYW5kbGVfYWN0aW9uID0ge307Ci0gIGFkZF9oYW5k
bGVfYWN0aW9uLmFjdGlvbiA9IEZESU9fU1BBV05fQUNUSU9OX0FERF9IQU5ETEU7Ci0gIGFkZF9o
YW5kbGVfYWN0aW9uLmguaWQgPSBQQV9ITkQodHlwZSwga0Z1Y2hzaWFSZWFkUGlwZUZkKTsKLSAg
YWRkX2hhbmRsZV9hY3Rpb24uaC5oYW5kbGUgPSBjaGlsZF9waXBlX2hhbmRsZTsKKyAgZmRpb19z
cGF3bl9hY3Rpb25fdCBzcGF3bl9hY3Rpb25zWzJdID0ge307CisgIGZkaW9fc3Bhd25fYWN0aW9u
X3QqIGFkZF9oYW5kbGVfYWN0aW9uID0gJnNwYXduX2FjdGlvbnNbMF07CisgIGFkZF9oYW5kbGVf
YWN0aW9uLT5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElPTl9BRERfSEFORExFOworICBhZGRfaGFu
ZGxlX2FjdGlvbi0+aC5pZCA9IFBBX0hORChQQV9GRCwga0Z1Y2hzaWFSZWFkUGlwZUZkKTsKKyAg
YWRkX2hhbmRsZV9hY3Rpb24tPmguaGFuZGxlID0gY2hpbGRfcGlwZV9oYW5kbGU7CisKKyAgLy8g
Q3JlYXRlIGEgc29ja2V0IHBhaXIgd2lsbCBiZSB1c2VkIHRvIHJlY2VpdmUgdGhlIGNoaWxkIHBy
b2Nlc3MnIHN0ZGVyci4KKyAgeng6OnNvY2tldCBzdGRlcnJfcHJvZHVjZXJfc29ja2V0OworICBz
dGF0dXMgPQorICAgICAgeng6OnNvY2tldDo6Y3JlYXRlKDAsICZzdGRlcnJfcHJvZHVjZXJfc29j
a2V0LCAmc3RkZXJyX3NvY2tldF8pOworICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMg
Pj0gMCk7CisgIGludCBzdGRlcnJfcHJvZHVjZXJfZmQgPSAtMTsKKyAgc3RhdHVzID0KKyAgICAg
IGZkaW9fZmRfY3JlYXRlKHN0ZGVycl9wcm9kdWNlcl9zb2NrZXQucmVsZWFzZSgpLCAmc3RkZXJy
X3Byb2R1Y2VyX2ZkKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID49IDApOwog
Ci0gIC8vIFNwYXduIHRoZSBjaGlsZCBwcm9jZXNzLgotICBzdGF0dXMgPSBmZGlvX3NwYXduX2V0
YyhaWF9IQU5ETEVfSU5WQUxJRCwgRkRJT19TUEFXTl9DTE9ORV9BTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3MuQXJndigpWzBdLCBhcmdzLkFyZ3YoKSwgbnVsbHB0ciwgMSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgJmFkZF9oYW5kbGVfYWN0aW9uLCAmY2hpbGRfcHJvY2Vz
c18sIG51bGxwdHIpOworICAvLyBNYWtlIHRoZSBzdGRlcnIgc29ja2V0IG5vbmJsb2NraW5nLgor
ICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhmY250bChzdGRlcnJfcHJvZHVjZXJfZmQsIEZfU0VU
RkwsIDApID09IDApOworCisgIGZkaW9fc3Bhd25fYWN0aW9uX3QqIGFkZF9zdGRlcnJfYWN0aW9u
ID0gJnNwYXduX2FjdGlvbnNbMV07CisgIGFkZF9zdGRlcnJfYWN0aW9uLT5hY3Rpb24gPSBGRElP
X1NQQVdOX0FDVElPTl9DTE9ORV9GRDsKKyAgYWRkX3N0ZGVycl9hY3Rpb24tPmZkLmxvY2FsX2Zk
ID0gc3RkZXJyX3Byb2R1Y2VyX2ZkOworICBhZGRfc3RkZXJyX2FjdGlvbi0+ZmQudGFyZ2V0X2Zk
ID0gU1RERVJSX0ZJTEVOTzsKKworICAvLyBDcmVhdGUgYSBjaGlsZCBqb2IuCisgIHp4X2hhbmRs
ZV90IGNoaWxkX2pvYiA9IFpYX0hBTkRMRV9JTlZBTElEOworICBzdGF0dXMgPSB6eF9qb2JfY3Jl
YXRlKHp4X2pvYl9kZWZhdWx0KCksIDAsICYgY2hpbGRfam9iKTsKKyAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKKyAgenhfcG9saWN5X2Jhc2ljX3QgcG9saWN5Owor
ICBwb2xpY3kuY29uZGl0aW9uID0gWlhfUE9MX05FV19BTlk7CisgIHBvbGljeS5wb2xpY3kgPSBa
WF9QT0xfQUNUSU9OX0FMTE9XOworICBzdGF0dXMgPSB6eF9qb2Jfc2V0X3BvbGljeSgKKyAgICAg
IGNoaWxkX2pvYiwgWlhfSk9CX1BPTF9SRUxBVElWRSwgWlhfSk9CX1BPTF9CQVNJQywgJnBvbGlj
eSwgMSk7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CiAKLSAg
Ly8gQ3JlYXRlIGFuIGV4Y2VwdGlvbiBwb3J0IGFuZCBhdHRhY2ggaXQgdG8gdGhlIHxjaGlsZF9w
cm9jZXNzX3wsIHRvIGFsbG93CisgIC8vIENyZWF0ZSBhbiBleGNlcHRpb24gY2hhbm5lbCBhdHRh
Y2hlZCB0byB0aGUgfGNoaWxkX2pvYnwsIHRvIGFsbG93CiAgIC8vIHVzIHRvIHN1cHByZXNzIHRo
ZSBzeXN0ZW0gZGVmYXVsdCBleGNlcHRpb24gaGFuZGxlciBmcm9tIGZpcmluZy4KLSAgc3RhdHVz
ID0genhfcG9ydF9jcmVhdGUoMCwgJnBvcnRfKTsKKyAgc3RhdHVzID0KKyAgICAgIHp4X3Rhc2tf
Y3JlYXRlX2V4Y2VwdGlvbl9jaGFubmVsKAorICAgICAgICAgIGNoaWxkX2pvYiwgMCwgZXhjZXB0
aW9uX2NoYW5uZWxfLnJlc2V0X2FuZF9nZXRfYWRkcmVzcygpKTsKICAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgc3RhdHVzID0genhfdGFza19iaW5kX2V4Y2Vw
dGlvbl9wb3J0KAotICAgICAgY2hpbGRfcHJvY2Vzc18sIHBvcnRfLCAwIC8qIGtleSAqLywgMCAv
Km9wdGlvbnMgKi8pOworCisgIC8vIFNwYXduIHRoZSBjaGlsZCBwcm9jZXNzLgorICBzdGF0dXMg
PSBmZGlvX3NwYXduX2V0YygKKyAgICAgIGNoaWxkX2pvYiwgRkRJT19TUEFXTl9DTE9ORV9BTEws
IGFyZ3MuQXJndigpWzBdLCBhcmdzLkFyZ3YoKSwgbnVsbHB0ciwKKyAgICAgIDIsIHNwYXduX2Fj
dGlvbnMsIGNoaWxkX3Byb2Nlc3NfLnJlc2V0X2FuZF9nZXRfYWRkcmVzcygpLCBudWxscHRyKTsK
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKIAogICBzZXRfc3Bh
d25lZCh0cnVlKTsKICAgcmV0dXJuIE9WRVJTRUVfVEVTVDsKIH0KIAorc3RkOjpzdHJpbmcgRnVj
aHNpYURlYXRoVGVzdDo6R2V0RXJyb3JMb2dzKCkgeworICByZXR1cm4gY2FwdHVyZWRfc3RkZXJy
XzsKK30KKwogI2Vsc2UgIC8vIFdlIGFyZSBuZWl0aGVyIG9uIFdpbmRvd3MsIG5vciBvbiBGdWNo
c2lhLgogCiAvLyBGb3JraW5nRGVhdGhUZXN0IHByb3ZpZGVzIGltcGxlbWVudGF0aW9ucyBmb3Ig
bW9zdCBvZiB0aGUgYWJzdHJhY3QKQEAgLTEwMDAsMTAgKzEwNzEsMTAgQEAgRGVhdGhUZXN0OjpU
ZXN0Um9sZSBGdWNoc2lhRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogLy8gbGVmdCB1bmRlZmlu
ZWQuCiBjbGFzcyBGb3JraW5nRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1
YmxpYzoKLSAgRm9ya2luZ0RlYXRoVGVzdChjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJF
KiByZWdleCk7CisgIEZvcmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRj
aGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcik7CiAKICAgLy8gQWxsIG9mIHRoZXNlIHZp
cnR1YWwgZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSBEZWF0aFRlc3QuCi0gIHZpcnR1YWwg
aW50IFdhaXQoKTsKKyAgaW50IFdhaXQoKSBvdmVycmlkZTsKIAogIHByb3RlY3RlZDoKICAgdm9p
ZCBzZXRfY2hpbGRfcGlkKHBpZF90IGNoaWxkX3BpZCkgeyBjaGlsZF9waWRfID0gY2hpbGRfcGlk
OyB9CkBAIC0xMDE0LDkgKzEwODUsOSBAQCBjbGFzcyBGb3JraW5nRGVhdGhUZXN0IDogcHVibGlj
IERlYXRoVGVzdEltcGwgewogfTsKIAogLy8gQ29uc3RydWN0cyBhIEZvcmtpbmdEZWF0aFRlc3Qu
Ci1Gb3JraW5nRGVhdGhUZXN0OjpGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVt
ZW50LCBjb25zdCBSRSogYV9yZWdleCkKLSAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpLAotICAgICAgY2hpbGRfcGlkXygtMSkge30KK0ZvcmtpbmdEZWF0aFRlc3Q6OkZv
cmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyKQor
ICAgIDogRGVhdGhUZXN0SW1wbChhX3N0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpKSwgY2hp
bGRfcGlkXygtMSkge30KIAogLy8gV2FpdHMgZm9yIHRoZSBjaGlsZCBpbiBhIGRlYXRoIHRlc3Qg
dG8gZXhpdCwgcmV0dXJuaW5nIGl0cyBleGl0CiAvLyBzdGF0dXMsIG9yIDAgaWYgbm8gY2hpbGQg
cHJvY2VzcyBleGlzdHMuICBBcyBhIHNpZGUgZWZmZWN0LCBzZXRzIHRoZQpAQCAtMTAzNyw5ICsx
MTA4LDkgQEAgaW50IEZvcmtpbmdEZWF0aFRlc3Q6OldhaXQoKSB7CiAvLyBpbiB0aGUgY2hpbGQg
cHJvY2Vzcy4KIGNsYXNzIE5vRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0
IHsKICBwdWJsaWM6Ci0gIE5vRXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwg
Y29uc3QgUkUqIGFfcmVnZXgpIDoKLSAgICAgIEZvcmtpbmdEZWF0aFRlc3QoYV9zdGF0ZW1lbnQs
IGFfcmVnZXgpIHsgfQotICB2aXJ0dWFsIFRlc3RSb2xlIEFzc3VtZVJvbGUoKTsKKyAgTm9FeGVj
RGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3Ry
aW5nJj4gbWF0Y2hlcikKKyAgICAgIDogRm9ya2luZ0RlYXRoVGVzdChhX3N0YXRlbWVudCwgc3Rk
Ojptb3ZlKG1hdGNoZXIpKSB7fQorICBUZXN0Um9sZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7CiB9
OwogCiAvLyBUaGUgQXNzdW1lUm9sZSBwcm9jZXNzIGZvciBhIGZvcmstYW5kLXJ1biBkZWF0aCB0
ZXN0LiAgSXQgaW1wbGVtZW50cyBhCkBAIC0xMDkyLDEwICsxMTYzLDEzIEBAIERlYXRoVGVzdDo6
VGVzdFJvbGUgTm9FeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogLy8gb25seSB0aGlzIHNw
ZWNpZmljIGRlYXRoIHRlc3QgdG8gYmUgcnVuLgogY2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1Ymxp
YyBGb3JraW5nRGVhdGhUZXN0IHsKICBwdWJsaWM6Ci0gIEV4ZWNEZWF0aFRlc3QoY29uc3QgY2hh
ciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lKSA6Ci0gICAgICBGb3JraW5nRGVhdGhUZXN0KGFfc3RhdGVt
ZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHsgfQotICB2aXJ0dWFsIFRl
c3RSb2xlIEFzc3VtZVJvbGUoKTsKKyAgRXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRl
bWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCisgICAgICA6IEZvcmtpbmdEZWF0aFRlc3Qo
YV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSksCisgICAgICAgIGZpbGVfKGZpbGUpLAor
ICAgICAgICBsaW5lXyhsaW5lKSB7fQorICBUZXN0Um9sZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7
CisKICBwcml2YXRlOgogICBzdGF0aWMgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0QXJn
dnNGb3JEZWF0aFRlc3RDaGlsZFByb2Nlc3MoKSB7CiAgICAgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gYXJncyA9IEdldEluamVjdGFibGVBcmd2cygpOwpAQCAtMTExNSw5ICsxMTg5LDcgQEAg
Y2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0IHsKIC8vIFV0aWxp
dHkgY2xhc3MgZm9yIGFjY3VtdWxhdGluZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLgogY2xhc3Mg
QXJndW1lbnRzIHsKICBwdWJsaWM6Ci0gIEFyZ3VtZW50cygpIHsKLSAgICBhcmdzXy5wdXNoX2Jh
Y2soTlVMTCk7Ci0gIH0KKyAgQXJndW1lbnRzKCkgeyBhcmdzXy5wdXNoX2JhY2sobnVsbHB0cik7
IH0KIAogICB+QXJndW1lbnRzKCkgewogICAgIGZvciAoc3RkOjp2ZWN0b3I8Y2hhcio+OjppdGVy
YXRvciBpID0gYXJnc18uYmVnaW4oKTsgaSAhPSBhcmdzXy5lbmQoKTsKQEAgLTExNTIsNyArMTIy
NCw5IEBAIHN0cnVjdCBFeGVjRGVhdGhUZXN0QXJncyB7CiAgIGludCBjbG9zZV9mZDsgICAgICAg
Ly8gRmlsZSBkZXNjcmlwdG9yIHRvIGNsb3NlOyB0aGUgcmVhZCBlbmQgb2YgYSBwaXBlCiB9Owog
Ci0jICBpZiAhR1RFU1RfT1NfUU5YCisjICBpZiBHVEVTVF9PU19RTlgKK2V4dGVybiAiQyIgY2hh
cioqIGVudmlyb247CisjICBlbHNlICAvLyBHVEVTVF9PU19RTlgKIC8vIFRoZSBtYWluIGZ1bmN0
aW9uIGZvciBhIHRocmVhZHNhZmUtc3R5bGUgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzLgogLy8g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9uZSgpLWVkIHByb2Nlc3MgYW5kIHRodXMg
bXVzdCBhdm9pZAogLy8gYW55IHBvdGVudGlhbGx5IHVuc2FmZSBvcGVyYXRpb25zIGxpa2UgbWFs
bG9jIG9yIGxpYmMgZnVuY3Rpb25zLgpAQCAtMTE3MiwyMSArMTI0NiwxOCBAQCBzdGF0aWMgaW50
IEV4ZWNEZWF0aFRlc3RDaGlsZE1haW4odm9pZCogY2hpbGRfYXJnKSB7CiAgICAgcmV0dXJuIEVY
SVRfRkFJTFVSRTsKICAgfQogCi0gIC8vIFdlIGNhbiBzYWZlbHkgY2FsbCBleGVjdmUoKSBhcyBp
dCdzIGEgZGlyZWN0IHN5c3RlbSBjYWxsLiAgV2UKKyAgLy8gV2UgY2FuIHNhZmVseSBjYWxsIGV4
ZWN2KCkgYXMgaXQncyBhbG1vc3QgYSBkaXJlY3Qgc3lzdGVtIGNhbGwuIFdlCiAgIC8vIGNhbm5v
dCB1c2UgZXhlY3ZwKCkgYXMgaXQncyBhIGxpYmMgZnVuY3Rpb24gYW5kIHRodXMgcG90ZW50aWFs
bHkKLSAgLy8gdW5zYWZlLiAgU2luY2UgZXhlY3ZlKCkgZG9lc24ndCBzZWFyY2ggdGhlIFBBVEgs
IHRoZSB1c2VyIG11c3QKKyAgLy8gdW5zYWZlLiAgU2luY2UgZXhlY3YoKSBkb2Vzbid0IHNlYXJj
aCB0aGUgUEFUSCwgdGhlIHVzZXIgbXVzdAogICAvLyBpbnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2
aWEgYSB2YWxpZCBwYXRoIHRoYXQgY29udGFpbnMgYXQgbGVhc3QKICAgLy8gb25lIHBhdGggc2Vw
YXJhdG9yLgotICAvLyBXZSBoYXZlIHJlcGxhY2VkIGV4ZWN2ZSgpIHdpdGggZXhlY3YoKSBmb3Ig
V2ViS2l0IHRvIGF2b2lkIHVzaW5nCi0gIC8vIGVudmlyb24uIEl0IHNob3VsZCBiZSBzYWZlIGJl
Y2F1c2UgZXhlY3YoKSBpcyBqdXN0IGEgc2ltcGxlIHdyYXBwZXIKLSAgLy8gb2YgZXhlY3ZlKCku
CiAgIGV4ZWN2KGFyZ3MtPmFyZ3ZbMF0sIGFyZ3MtPmFyZ3YpOwogICBEZWF0aFRlc3RBYm9ydChz
dGQ6OnN0cmluZygiZXhlY3YoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4uKSBpbiAiICsKICAg
ICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsgIiBmYWlsZWQ6ICIgKwogICAgICAgICAgICAg
ICAgICBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbigpKTsKICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsK
IH0KLSMgIGVuZGlmICAvLyAhR1RFU1RfT1NfUU5YCisjICBlbmRpZiAgLy8gR1RFU1RfT1NfUU5Y
CiAKICMgIGlmIEdURVNUX0hBU19DTE9ORQogLy8gVHdvIHV0aWxpdHkgcm91dGluZXMgdGhhdCB0
b2dldGhlciBkZXRlcm1pbmUgdGhlIGRpcmVjdGlvbiB0aGUgc3RhY2sKQEAgLTEyMDAsMTUgKzEy
NzEsMjQgQEAgc3RhdGljIGludCBFeGVjRGVhdGhUZXN0Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2Fy
ZykgewogLy8gY29ycmVjdCBhbnN3ZXIuCiBzdGF0aWMgdm9pZCBTdGFja0xvd2VyVGhhbkFkZHJl
c3MoY29uc3Qgdm9pZCogcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wqIHJlc3VsdCkgR1RFU1RfTk9fSU5MSU5FXzsKKy8vIE1ha2Ugc3VyZSBzYW5pdGl6ZXJzIGRv
IG5vdCB0YW1wZXIgd2l0aCB0aGUgc3RhY2sgaGVyZS4KKy8vIElkZWFsbHksIHdlIHdhbnQgdG8g
dXNlIGBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzc2AgaW5zdGVhZCBvZiBhIGxvY2FsIHZhcmlhYmxl
CisvLyBhZGRyZXNzIHdpdGggc2FuaXRpemVyIGRpc2FibGVkLCBidXQgaXQgZG9lcyBub3Qgd29y
ayB3aGVuIHRoZQorLy8gY29tcGlsZXIgb3B0aW1pemVzIHRoZSBzdGFjayBmcmFtZSBvdXQsIHdo
aWNoIGhhcHBlbnMgb24gUG93ZXJQQyB0YXJnZXRzLgorLy8gSFdBZGRyZXNzU2FuaXRpemVyIGFk
ZCBhIHJhbmRvbSB0YWcgdG8gdGhlIE1TQiBvZiB0aGUgbG9jYWwgdmFyaWFibGUgYWRkcmVzcywK
Ky8vIG1ha2luZyBjb21wYXJpc29uIHJlc3VsdCB1bnByZWRpY3RhYmxlLgorR1RFU1RfQVRUUklC
VVRFX05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdB
RERSRVNTXwogc3RhdGljIHZvaWQgU3RhY2tMb3dlclRoYW5BZGRyZXNzKGNvbnN0IHZvaWQqIHB0
ciwgYm9vbCogcmVzdWx0KSB7Ci0gIGludCBkdW1teTsKLSAgKnJlc3VsdCA9ICgmZHVtbXkgPCBw
dHIpOworICBpbnQgZHVtbXkgPSAwOworICAqcmVzdWx0ID0gc3RkOjpsZXNzPGNvbnN0IHZvaWQq
PigpKCZkdW1teSwgcHRyKTsKIH0KIAogLy8gTWFrZSBzdXJlIEFkZHJlc3NTYW5pdGl6ZXIgZG9l
cyBub3QgdGFtcGVyIHdpdGggdGhlIHN0YWNrIGhlcmUuCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBz
dGF0aWMgYm9vbCBTdGFja0dyb3dzRG93bigpIHsKLSAgaW50IGR1bW15OworICBpbnQgZHVtbXkg
PSAwOwogICBib29sIHJlc3VsdDsKICAgU3RhY2tMb3dlclRoYW5BZGRyZXNzKCZkdW1teSwgJnJl
c3VsdCk7CiAgIHJldHVybiByZXN1bHQ7CkBAIC0xMjUxLDcgKzEzMzEsNyBAQCBzdGF0aWMgcGlk
X3QgRXhlY0RlYXRoVGVzdFNwYXduQ2hpbGQoY2hhciogY29uc3QqIGFyZ3YsIGludCBjbG9zZV9m
ZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkX2ZsYWdzIHwg
RkRfQ0xPRVhFQykpOwogICBzdHJ1Y3QgaW5oZXJpdGFuY2UgaW5oZXJpdCA9IHswfTsKICAgLy8g
c3Bhd24gaXMgYSBzeXN0ZW0gY2FsbC4KLSAgY2hpbGRfcGlkID0gc3Bhd24oYXJncy5hcmd2WzBd
LCAwLCBOVUxMLCAmaW5oZXJpdCwgYXJncy5hcmd2LCBHZXRFbnZpcm9uKCkpOworICBjaGlsZF9w
aWQgPSBzcGF3bihhcmdzLmFyZ3ZbMF0sIDAsIG51bGxwdHIsICZpbmhlcml0LCBhcmdzLmFyZ3Ys
IGVudmlyb24pOwogICAvLyBSZXN0b3JlcyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4K
ICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNoZGlyKGN3ZF9mZCkgIT0gLTEpOwogICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGNsb3NlKGN3ZF9mZCkpOwpAQCAtMTI3NSw5ICsx
MzU1LDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0
KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKIAogICBpZiAoIXVzZV9mb3JrKSB7CiAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc3RhY2tfZ3Jvd3NfZG93biA9IFN0YWNrR3Jvd3NEb3duKCk7Ci0gICAgY29u
c3Qgc2l6ZV90IHN0YWNrX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworICAgIGNvbnN0IGF1dG8gc3Rh
Y2tfc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oZ2V0cGFnZXNpemUoKSAqIDIpOwogICAgIC8v
IE1NQVBfQU5PTllNT1VTIGlzIG5vdCBkZWZpbmVkIG9uIE1hYywgc28gd2UgdXNlIE1BUF9BTk9O
IGluc3RlYWQuCi0gICAgdm9pZCogY29uc3Qgc3RhY2sgPSBtbWFwKE5VTEwsIHN0YWNrX3NpemUs
IFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisgICAgdm9pZCogY29uc3Qgc3RhY2sgPSBtbWFwKG51
bGxwdHIsIHN0YWNrX3NpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1BUF9BTk9OIHwgTUFQX1BSSVZBVEUsIC0xLCAwKTsKICAgICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLXyhzdGFjayAhPSBNQVBfRkFJTEVEKTsKIApAQCAtMTI5MSw4ICsx
MzcxLDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0
KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKICAgICB2b2lkKiBjb25zdCBzdGFja190b3AgPQogICAg
ICAgICBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2spICsKICAgICAgICAgICAgIChzdGFja19ncm93
c19kb3duID8gc3RhY2tfc2l6ZSAtIGtNYXhTdGFja0FsaWdubWVudCA6IDApOwotICAgIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YWNrX3NpemUgPiBrTWF4U3RhY2tBbGlnbm1lbnQgJiYKLSAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oc3RhY2tfdG9wKSAlIGtNYXhTdGFja0Fs
aWdubWVudCA9PSAwKTsKKyAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8c2l6ZV90PihzdGFja19zaXplKSA+IGtNYXhTdGFja0FsaWdubWVudCAmJgorICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhY2tfdG9wKSAlIGtNYXhTdGFja0Fs
aWdubWVudCA9PSAwKTsKIAogICAgIGNoaWxkX3BpZCA9IGNsb25lKCZFeGVjRGVhdGhUZXN0Q2hp
bGRNYWluLCBzdGFja190b3AsIFNJR0NITEQsICZhcmdzKTsKIApAQCAtMTMwOSw3ICsxMzkwLDcg
QEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2
LCBpbnQgY2xvc2VfZmQpIHsKICMgIGVuZGlmICAvLyBHVEVTVF9PU19RTlgKICMgIGlmIEdURVNU
X09TX0xJTlVYCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfU1lTQ0FMTF8oCi0gICAgICBzaWdh
Y3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0aW9uLCBOVUxMKSk7CisgICAgICBzaWdh
Y3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0aW9uLCBudWxscHRyKSk7CiAjICBlbmRp
ZiAgLy8gR1RFU1RfT1NfTElOVVgKIAogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhjaGlsZF9w
aWQgIT0gLTEpOwpAQCAtMTMyNyw3ICsxNDA4LDcgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVj
RGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9
IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAgIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4
ID0gaW5mby0+cmVzdWx0KCktPmRlYXRoX3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBO
VUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICBzZXRfd3JpdGVfZmQoZmxhZy0+
d3JpdGVfZmQoKSk7CiAgICAgcmV0dXJuIEVYRUNVVEVfVEVTVDsKICAgfQpAQCAtMTMzOCw5ICsx
NDE5LDkgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkg
ewogICAvLyBpdCBiZSBjbG9zZWQgd2hlbiB0aGUgY2hpbGQgcHJvY2VzcyBkb2VzIGFuIGV4ZWM6
CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZjbnRsKHBpcGVfZmRbMV0sIEZfU0VURkQsIDAp
ICE9IC0xKTsKIAotICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6
OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iCi0g
ICAgICArIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9G
TEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJG
bGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
aW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJF
RklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcgKyAiPSIKICAgICAgICsgZmlsZV8gKyAi
fCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsgInwiCkBAIC0xMzczLDcgKzE0NTQsOCBA
QCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEV4ZWNEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAvLyBi
eSB0aGUgInRlc3QiIGFyZ3VtZW50IHRvIGl0cyBhZGRyZXNzLiAgSWYgdGhlIHRlc3Qgc2hvdWxk
IGJlCiAvLyBza2lwcGVkLCBzZXRzIHRoYXQgcG9pbnRlciB0byBOVUxMLiAgUmV0dXJucyB0cnVl
LCB1bmxlc3MgdGhlCiAvLyBmbGFnIGlzIHNldCB0byBhbiBpbnZhbGlkIHZhbHVlLgotYm9vbCBE
ZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29u
c3QgUkUqIHJlZ2V4LAorYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0
IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
YXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIFVuaXRUZXN0
SW1wbCogY29uc3QgaW1wbCA9IEdldFVuaXRUZXN0SW1wbCgpOwpAQCAtMTM4Miw3ICsxNDY0LDcg
QEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRl
bWVudCwgY29uc3QgUkUqIHJlZ2V4LAogICBjb25zdCBpbnQgZGVhdGhfdGVzdF9pbmRleCA9IGlt
cGwtPmN1cnJlbnRfdGVzdF9pbmZvKCkKICAgICAgIC0+aW5jcmVtZW50X2RlYXRoX3Rlc3RfY291
bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsK
ICAgICBpZiAoZGVhdGhfdGVzdF9pbmRleCA+IGZsYWctPmluZGV4KCkpIHsKICAgICAgIERlYXRo
VGVzdDo6c2V0X2xhc3RfZGVhdGhfdGVzdF9tZXNzYWdlKAogICAgICAgICAgICJEZWF0aCB0ZXN0
IGNvdW50ICgiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGRlYXRoX3Rlc3RfaW5kZXgpCkBAIC0xMzkz
LDcgKzE0NzUsNyBAQCBib29sIERlZmF1bHREZWF0aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29uc3Qg
Y2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCiAKICAgICBpZiAoIShmbGFnLT5maWxl
KCkgPT0gZmlsZSAmJiBmbGFnLT5saW5lKCkgPT0gbGluZSAmJgogICAgICAgICAgIGZsYWctPmlu
ZGV4KCkgPT0gZGVhdGhfdGVzdF9pbmRleCkpIHsKLSAgICAgICp0ZXN0ID0gTlVMTDsKKyAgICAg
ICp0ZXN0ID0gbnVsbHB0cjsKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgfQpAQCAtMTQw
MiwyMiArMTQ4NCwyMiBAQCBib29sIERlZmF1bHREZWF0aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29u
c3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCiAKICAgaWYgKEdURVNUX0ZMQUco
ZGVhdGhfdGVzdF9zdHlsZSkgPT0gInRocmVhZHNhZmUiIHx8CiAgICAgICBHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0ID0gbmV3IFdpbmRvd3NEZWF0
aFRlc3Qoc3RhdGVtZW50LCByZWdleCwgZmlsZSwgbGluZSk7CisgICAgKnRlc3QgPSBuZXcgV2lu
ZG93c0RlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSwgZmlsZSwgbGluZSk7
CiAgIH0KIAogIyBlbGlmIEdURVNUX09TX0ZVQ0hTSUEKIAogICBpZiAoR1RFU1RfRkxBRyhkZWF0
aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIgfHwKICAgICAgIEdURVNUX0ZMQUcoZGVhdGhf
dGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRlc3QgPSBuZXcgRnVjaHNpYURlYXRoVGVz
dChzdGF0ZW1lbnQsIHJlZ2V4LCBmaWxlLCBsaW5lKTsKKyAgICAqdGVzdCA9IG5ldyBGdWNoc2lh
RGVhdGhUZXN0KHN0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpLCBmaWxlLCBsaW5lKTsKICAg
fQogCiAjIGVsc2UKIAogICBpZiAoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhy
ZWFkc2FmZSIpIHsKLSAgICAqdGVzdCA9IG5ldyBFeGVjRGVhdGhUZXN0KHN0YXRlbWVudCwgcmVn
ZXgsIGZpbGUsIGxpbmUpOworICAgICp0ZXN0ID0gbmV3IEV4ZWNEZWF0aFRlc3Qoc3RhdGVtZW50
LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZpbGUsIGxpbmUpOwogICB9IGVsc2UgaWYgKEdURVNUX0ZM
QUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRlc3QgPSBuZXcgTm9FeGVj
RGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgpOworICAgICp0ZXN0ID0gbmV3IE5vRXhlY0RlYXRo
VGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSk7CiAgIH0KIAogIyBlbmRpZiAgLy8g
R1RFU1RfT1NfV0lORE9XUwpAQCAtMTQ0Nyw4ICsxNTI5LDYgQEAgc3RhdGljIGludCBHZXRTdGF0
dXNGaWxlRGVzY3JpcHRvcih1bnNpZ25lZCBpbnQgcGFyZW50X3Byb2Nlc3NfaWQsCiAgICAgICAg
ICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHBhcmVudF9wcm9jZXNzX2lkKSk7CiAgIH0K
IAotICAvLyBGSVhNRTogUmVwbGFjZSB0aGUgZm9sbG93aW5nIGNoZWNrIHdpdGggYQotICAvLyBj
b21waWxlLXRpbWUgYXNzZXJ0aW9uIHdoZW4gYXZhaWxhYmxlLgogICBHVEVTVF9DSEVDS18oc2l6
ZW9mKEhBTkRMRSkgPD0gc2l6ZW9mKHNpemVfdCkpOwogCiAgIGNvbnN0IEhBTkRMRSB3cml0ZV9o
YW5kbGUgPQpAQCAtMTUwNCw3ICsxNTg0LDcgQEAgc3RhdGljIGludCBHZXRTdGF0dXNGaWxlRGVz
Y3JpcHRvcih1bnNpZ25lZCBpbnQgcGFyZW50X3Byb2Nlc3NfaWQsCiAvLyBpbml0aWFsaXplZCBm
cm9tIHRoZSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSBmbGFnIGlmCiAvLyB0
aGUgZmxhZyBpcyBzcGVjaWZpZWQ7IG90aGVyd2lzZSByZXR1cm5zIE5VTEwuCiBJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCkgewotICBpZiAo
R1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPT0gIiIpIHJldHVybiBOVUxMOwor
ICBpZiAoR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPT0gIiIpIHJldHVybiBu
dWxscHRyOwogCiAgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUIGltcGxpZXMgdGhhdCB3ZSBoYXZl
IDo6c3RkOjpzdHJpbmcsIHNvIHdlCiAgIC8vIGNhbiB1c2UgaXQgaGVyZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1maWxlcGF0aC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1maWxlcGF0aC5jYwppbmRleCBhN2U2NWMwODJhNzVm
YzZmYjAzOGEwMjNkNWIxZDNlMDllNDc5ZjExLi5hZjI5NzY4NDAzMWNkMjU3YjMyMWZhOTg0YmI1
NzBhZjRjOWEyM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QtZmlsZXBhdGguY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWZp
bGVwYXRoLmNjCkBAIC0zOCw5ICszOCw2IEBACiAjZWxpZiBHVEVTVF9PU19XSU5ET1dTCiAjIGlu
Y2x1ZGUgPGRpcmVjdC5oPgogIyBpbmNsdWRlIDxpby5oPgotI2VsaWYgR1RFU1RfT1NfU1lNQklB
TgotLy8gU3ltYmlhbiBPcGVuQyBoYXMgUEFUSF9NQVggaW4gc3lzL3N5c2xpbWl0cy5oCi0jIGlu
Y2x1ZGUgPHN5cy9zeXNsaW1pdHMuaD4KICNlbHNlCiAjIGluY2x1ZGUgPGxpbWl0cy5oPgogIyBp
bmNsdWRlIDxjbGltaXRzPiAgLy8gU29tZSBMaW51eCBkaXN0cmlidXRpb25zIGRlZmluZSBQQVRI
X01BWCBoZXJlLgpAQCAtOTUsMTMgKzkyLDE0IEBAIHN0YXRpYyBib29sIElzUGF0aFNlcGFyYXRv
cihjaGFyIGMpIHsKIAogLy8gUmV0dXJucyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSwg
b3IgIiIgaWYgdW5zdWNjZXNzZnVsLgogRmlsZVBhdGggRmlsZVBhdGg6OkdldEN1cnJlbnREaXIo
KSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0gIC8vIFdpbmRvd3MgQ0UgZG9lc24ndCBoYXZlIGEg
Y3VycmVudCBkaXJlY3RvcnksIHNvIHdlIGp1c3QgcmV0dXJuCisjaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBcCisgICAgR1RFU1RfT1NfV0lO
RE9XU19SVCB8fCBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09TX0VTUDMyCisgIC8vIFRoZXNl
IHBsYXRmb3JtcyBkbyBub3QgaGF2ZSBhIGN1cnJlbnQgZGlyZWN0b3J5LCBzbyB3ZSBqdXN0IHJl
dHVybgogICAvLyBzb21ldGhpbmcgcmVhc29uYWJsZS4KICAgcmV0dXJuIEZpbGVQYXRoKGtDdXJy
ZW50RGlyZWN0b3J5U3RyaW5nKTsKICNlbGlmIEdURVNUX09TX1dJTkRPV1MKICAgY2hhciBjd2Rb
R1RFU1RfUEFUSF9NQVhfICsgMV0gPSB7ICdcMCcgfTsKLSAgcmV0dXJuIEZpbGVQYXRoKF9nZXRj
d2QoY3dkLCBzaXplb2YoY3dkKSkgPT0gTlVMTCA/ICIiIDogY3dkKTsKKyAgcmV0dXJuIEZpbGVQ
YXRoKF9nZXRjd2QoY3dkLCBzaXplb2YoY3dkKSkgPT0gbnVsbHB0ciA/ICIiIDogY3dkKTsKICNl
bHNlCiAgIGNoYXIgY3dkW0dURVNUX1BBVEhfTUFYXyArIDFdID0geyAnXDAnIH07CiAgIGNoYXIq
IHJlc3VsdCA9IGdldGN3ZChjd2QsIHNpemVvZihjd2QpKTsKQEAgLTEwOSw5ICsxMDcsOSBAQCBG
aWxlUGF0aCBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpIHsKICAgLy8gZ2V0Y3dkIHdpbGwgbGlr
ZWx5IGZhaWwgaW4gTmFDbCBkdWUgdG8gdGhlIHNhbmRib3gsIHNvIHJldHVybiBzb21ldGhpbmcK
ICAgLy8gcmVhc29uYWJsZS4gVGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgYSBzaGltIGltcGxl
bWVudGF0aW9uIGZvciBnZXRjd2QsCiAgIC8vIGhvd2V2ZXIsIHNvIGZhbGxiYWNrIG9ubHkgd2hl
biBmYWlsdXJlIGlzIGRldGVjdGVkLgotICByZXR1cm4gRmlsZVBhdGgocmVzdWx0ID09IE5VTEwg
PyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3ZCk7CisgIHJldHVybiBGaWxlUGF0aChyZXN1
bHQgPT0gbnVsbHB0ciA/IGtDdXJyZW50RGlyZWN0b3J5U3RyaW5nIDogY3dkKTsKICMgZW5kaWYg
IC8vIEdURVNUX09TX05BQ0wKLSAgcmV0dXJuIEZpbGVQYXRoKHJlc3VsdCA9PSBOVUxMID8gIiIg
OiBjd2QpOworICByZXR1cm4gRmlsZVBhdGgocmVzdWx0ID09IG51bGxwdHIgPyAiIiA6IGN3ZCk7
CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiB9CiAKQEAgLTEzNiw4ICsxMzQs
OCBAQCBjb25zdCBjaGFyKiBGaWxlUGF0aDo6RmluZExhc3RQYXRoU2VwYXJhdG9yKCkgY29uc3Qg
ewogI2lmIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCiAgIGNvbnN0IGNoYXIqIGNvbnN0IGxhc3Rf
YWx0X3NlcCA9IHN0cnJjaHIoY19zdHIoKSwga0FsdGVybmF0ZVBhdGhTZXBhcmF0b3IpOwogICAv
LyBDb21wYXJpbmcgdHdvIHBvaW50ZXJzIG9mIHdoaWNoIG9ubHkgb25lIGlzIE5VTEwgaXMgdW5k
ZWZpbmVkLgotICBpZiAobGFzdF9hbHRfc2VwICE9IE5VTEwgJiYKLSAgICAgIChsYXN0X3NlcCA9
PSBOVUxMIHx8IGxhc3RfYWx0X3NlcCA+IGxhc3Rfc2VwKSkgeworICBpZiAobGFzdF9hbHRfc2Vw
ICE9IG51bGxwdHIgJiYKKyAgICAgIChsYXN0X3NlcCA9PSBudWxscHRyIHx8IGxhc3RfYWx0X3Nl
cCA+IGxhc3Rfc2VwKSkgewogICAgIHJldHVybiBsYXN0X2FsdF9zZXA7CiAgIH0KICNlbmRpZgpA
QCAtMTY1LDcgKzE2Myw3IEBAIEZpbGVQYXRoIEZpbGVQYXRoOjpSZW1vdmVGaWxlTmFtZSgpIGNv
bnN0IHsKICAgY29uc3QgY2hhciogY29uc3QgbGFzdF9zZXAgPSBGaW5kTGFzdFBhdGhTZXBhcmF0
b3IoKTsKICAgc3RkOjpzdHJpbmcgZGlyOwogICBpZiAobGFzdF9zZXApIHsKLSAgICBkaXIgPSBz
dGQ6OnN0cmluZyhjX3N0cigpLCBsYXN0X3NlcCArIDEgLSBjX3N0cigpKTsKKyAgICBkaXIgPSBz
dGQ6OnN0cmluZyhjX3N0cigpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGxhc3Rfc2VwICsgMSAtIGNf
c3RyKCkpKTsKICAgfSBlbHNlIHsKICAgICBkaXIgPSBrQ3VycmVudERpcmVjdG9yeVN0cmluZzsK
ICAgfQpAQCAtMjUwLDkgKzI0OCw2IEBAIGJvb2wgRmlsZVBhdGg6OkRpcmVjdG9yeUV4aXN0cygp
IGNvbnN0IHsKIC8vIHJvb3QgZGlyZWN0b3J5IHBlciBkaXNrIGRyaXZlLikKIGJvb2wgRmlsZVBh
dGg6OklzUm9vdERpcmVjdG9yeSgpIGNvbnN0IHsKICNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIC8v
IEZJWE1FOiBvbiBXaW5kb3dzIGEgbmV0d29yayBzaGFyZSBsaWtlCi0gIC8vIFxcc2VydmVyXHNo
YXJlIGNhbiBiZSBhIHJvb3QgZGlyZWN0b3J5LCBhbHRob3VnaCBpdCBjYW5ub3QgYmUgdGhlCi0g
IC8vIGN1cnJlbnQgZGlyZWN0b3J5LiAgSGFuZGxlIHRoaXMgcHJvcGVybHkuCiAgIHJldHVybiBw
YXRobmFtZV8ubGVuZ3RoKCkgPT0gMyAmJiBJc0Fic29sdXRlUGF0aCgpOwogI2Vsc2UKICAgcmV0
dXJuIHBhdGhuYW1lXy5sZW5ndGgoKSA9PSAxICYmIElzUGF0aFNlcGFyYXRvcihwYXRobmFtZV8u
Y19zdHIoKVswXSk7CkBAIC0zMjQsMTAgKzMxOSwxMyBAQCBib29sIEZpbGVQYXRoOjpDcmVhdGVG
b2xkZXIoKSBjb25zdCB7CiAjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKICAgRmlsZVBhdGgg
cmVtb3ZlZF9zZXAodGhpcy0+UmVtb3ZlVHJhaWxpbmdQYXRoU2VwYXJhdG9yKCkpOwogICBMUENX
U1RSIHVuaWNvZGUgPSBTdHJpbmc6OkFuc2lUb1V0ZjE2KHJlbW92ZWRfc2VwLmNfc3RyKCkpOwot
ICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVuaWNvZGUsIE5VTEwpID8gMCA6IC0xOwor
ICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVuaWNvZGUsIG51bGxwdHIpID8gMCA6IC0x
OwogICBkZWxldGUgW10gdW5pY29kZTsKICNlbGlmIEdURVNUX09TX1dJTkRPV1MKICAgaW50IHJl
c3VsdCA9IF9ta2RpcihwYXRobmFtZV8uY19zdHIoKSk7CisjZWxpZiBHVEVTVF9PU19FU1A4MjY2
CisgIC8vIGRvIG5vdGhpbmcKKyAgaW50IHJlc3VsdCA9IDA7CiAjZWxzZQogICBpbnQgcmVzdWx0
ID0gbWtkaXIocGF0aG5hbWVfLmNfc3RyKCksIDA3NzcpOwogI2VuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTX01PQklMRQpAQCAtMzUwLDM1ICszNDgsMjAgQEAgRmlsZVBhdGggRmlsZVBhdGg6OlJl
bW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpIGNvbnN0IHsKIC8vIFJlbW92ZXMgYW55IHJlZHVu
ZGFudCBzZXBhcmF0b3JzIHRoYXQgbWlnaHQgYmUgaW4gdGhlIHBhdGhuYW1lLgogLy8gRm9yIGV4
YW1wbGUsICJiYXIvLy9mb28iIGJlY29tZXMgImJhci9mb28iLiBEb2VzIG5vdCBlbGltaW5hdGUg
b3RoZXIKIC8vIHJlZHVuZGFuY2llcyB0aGF0IG1pZ2h0IGJlIGluIGEgcGF0aG5hbWUgaW52b2x2
aW5nICIuIiBvciAiLi4iLgotLy8gRklYTUU6IGhhbmRsZSBXaW5kb3dzIG5ldHdvcmsgc2hhcmVz
IChlLmcuIFxcc2VydmVyXHNoYXJlKS4KIHZvaWQgRmlsZVBhdGg6Ok5vcm1hbGl6ZSgpIHsKLSAg
aWYgKHBhdGhuYW1lXy5jX3N0cigpID09IE5VTEwpIHsKLSAgICBwYXRobmFtZV8gPSAiIjsKLSAg
ICByZXR1cm47Ci0gIH0KLSAgY29uc3QgY2hhciogc3JjID0gcGF0aG5hbWVfLmNfc3RyKCk7Ci0g
IGNoYXIqIGNvbnN0IGRlc3QgPSBuZXcgY2hhcltwYXRobmFtZV8ubGVuZ3RoKCkgKyAxXTsKLSAg
Y2hhciogZGVzdF9wdHIgPSBkZXN0OwotICBtZW1zZXQoZGVzdF9wdHIsIDAsIHBhdGhuYW1lXy5s
ZW5ndGgoKSArIDEpOwotCi0gIHdoaWxlICgqc3JjICE9ICdcMCcpIHsKLSAgICAqZGVzdF9wdHIg
PSAqc3JjOwotICAgIGlmICghSXNQYXRoU2VwYXJhdG9yKCpzcmMpKSB7Ci0gICAgICBzcmMrKzsK
KyAgYXV0byBvdXQgPSBwYXRobmFtZV8uYmVnaW4oKTsKKworICBmb3IgKGNvbnN0IGNoYXIgY2hh
cmFjdGVyIDogcGF0aG5hbWVfKSB7CisgICAgaWYgKCFJc1BhdGhTZXBhcmF0b3IoY2hhcmFjdGVy
KSkgeworICAgICAgKihvdXQrKykgPSBjaGFyYWN0ZXI7CisgICAgfSBlbHNlIGlmIChvdXQgPT0g
cGF0aG5hbWVfLmJlZ2luKCkgfHwgKnN0ZDo6cHJldihvdXQpICE9IGtQYXRoU2VwYXJhdG9yKSB7
CisgICAgICAqKG91dCsrKSA9IGtQYXRoU2VwYXJhdG9yOwogICAgIH0gZWxzZSB7Ci0jaWYgR1RF
U1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgICAgIGlmICgqZGVzdF9wdHIgPT0ga0FsdGVybmF0ZVBh
dGhTZXBhcmF0b3IpIHsKLSAgICAgICAgKmRlc3RfcHRyID0ga1BhdGhTZXBhcmF0b3I7Ci0gICAg
ICB9Ci0jZW5kaWYKLSAgICAgIHdoaWxlIChJc1BhdGhTZXBhcmF0b3IoKnNyYykpCi0gICAgICAg
IHNyYysrOworICAgICAgY29udGludWU7CiAgICAgfQotICAgIGRlc3RfcHRyKys7CiAgIH0KLSAg
KmRlc3RfcHRyID0gJ1wwJzsKLSAgcGF0aG5hbWVfID0gZGVzdDsKLSAgZGVsZXRlW10gZGVzdDsK
KworICBwYXRobmFtZV8uZXJhc2Uob3V0LCBwYXRobmFtZV8uZW5kKCkpOwogfQogCiB9ICAvLyBu
YW1lc3BhY2UgaW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdC1pbnRlcm5hbC1pbmwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1pbnRlcm5hbC1pbmwuaAppbmRleCA0NzkwMDQxNDliNDhjMjg1NjRlMjA1ZTAyMTBjNmM0MzEw
NDE4YjViLi5jZmY1MzRlZTllZGUzNzI0YjkyMzU3OTc1YTg4YWJjYTg2Mjk3ZDcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWludGVybmFsLWlubC5oCkBAIC0z
MSw4ICszMSw4IEBACiAvLyBUaGlzIGZpbGUgY29udGFpbnMgcHVyZWx5IEdvb2dsZSBUZXN0J3Mg
aW50ZXJuYWwgaW1wbGVtZW50YXRpb24uICBQbGVhc2UKIC8vIERPIE5PVCAjSU5DTFVERSBJVCBJ
TiBBIFVTRVIgUFJPR1JBTS4KIAotI2lmbmRlZiBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5M
X0hfCi0jZGVmaW5lIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU1JD
X0dURVNUX0lOVEVSTkFMX0lOTF9IXwogCiAjaWZuZGVmIF9XSU4zMl9XQ0UKICMgaW5jbHVkZSA8
ZXJybm8uaD4KQEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4gIC8vIEZvciBt
ZW1tb3ZlLgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5j
bHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKQEAg
LTgyLDkgKzg0LDExIEBAIGNvbnN0IGNoYXIga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZ1tdID0g
ImFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIjsKIGNvbnN0IGNoYXIga0JyZWFrT25GYWlsdXJlRmxh
Z1tdID0gImJyZWFrX29uX2ZhaWx1cmUiOwogY29uc3QgY2hhciBrQ2F0Y2hFeGNlcHRpb25zRmxh
Z1tdID0gImNhdGNoX2V4Y2VwdGlvbnMiOwogY29uc3QgY2hhciBrQ29sb3JGbGFnW10gPSAiY29s
b3IiOworY29uc3QgY2hhciBrRmFpbEZhc3RbXSA9ICJmYWlsX2Zhc3QiOwogY29uc3QgY2hhciBr
RmlsdGVyRmxhZ1tdID0gImZpbHRlciI7CiBjb25zdCBjaGFyIGtMaXN0VGVzdHNGbGFnW10gPSAi
bGlzdF90ZXN0cyI7CiBjb25zdCBjaGFyIGtPdXRwdXRGbGFnW10gPSAib3V0cHV0IjsKK2NvbnN0
IGNoYXIga0JyaWVmRmxhZ1tdID0gImJyaWVmIjsKIGNvbnN0IGNoYXIga1ByaW50VGltZUZsYWdb
XSA9ICJwcmludF90aW1lIjsKIGNvbnN0IGNoYXIga1ByaW50VVRGOEZsYWdbXSA9ICJwcmludF91
dGY4IjsKIGNvbnN0IGNoYXIga1JhbmRvbVNlZWRGbGFnW10gPSAicmFuZG9tX3NlZWQiOwpAQCAt
OTgsMTQgKzEwMiwxNCBAQCBjb25zdCBjaGFyIGtGbGFnZmlsZUZsYWdbXSA9ICJmbGFnZmlsZSI7
CiAvLyBBIHZhbGlkIHJhbmRvbSBzZWVkIG11c3QgYmUgaW4gWzEsIGtNYXhSYW5kb21TZWVkXS4K
IGNvbnN0IGludCBrTWF4UmFuZG9tU2VlZCA9IDk5OTk5OwogCi0vLyBnX2hlbHBfZmxhZyBpcyB0
cnVlIGlmZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtIGlzCi0vLyBzcGVj
aWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy8vIGdfaGVscF9mbGFnIGlzIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVxdWl2YWxlbnQgZm9ybQorLy8gaXMgc3Bl
Y2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBHVEVTVF9BUElfIGV4dGVybiBib29sIGdfaGVs
cF9mbGFnOwogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzLgog
R1RFU1RfQVBJXyBUaW1lSW5NaWxsaXMgR2V0VGltZUluTWlsbGlzKCk7CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgR29vZ2xlIFRlc3Qgc2hvdWxkIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1dC4KKy8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBHb29nbGUgVGVzdCBzaG91bGQgdXNlIGNvbG9y
cyBpbiB0aGUgb3V0cHV0LgogR1RFU1RfQVBJXyBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rk
b3V0X2lzX3R0eSk7CiAKIC8vIEZvcm1hdHMgdGhlIGdpdmVuIHRpbWUgaW4gbWlsbGlzZWNvbmRz
IGFzIHNlY29uZHMuCkBAIC0xMjIsMTEgKzEyNiwxMSBAQCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5n
IEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKFRpbWVJbk1pbGxpcyBtcyk7CiAvLyBP
biBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJl
dHVybnMKIC8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdp
bmcgKnZhbHVlLgogR1RFU1RfQVBJXyBib29sIFBhcnNlSW50MzJGbGFnKAotICAgIGNvbnN0IGNo
YXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgSW50MzIqIHZhbHVlKTsKKyAgICBjb25zdCBjaGFy
KiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIGludDMyX3QqIHZhbHVlKTsKIAogLy8gUmV0dXJucyBh
IHJhbmRvbSBzZWVkIGluIHJhbmdlIFsxLCBrTWF4UmFuZG9tU2VlZF0gYmFzZWQgb24gdGhlCiAv
LyBnaXZlbiAtLWd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgdmFsdWUuCi1pbmxpbmUgaW50IEdldFJh
bmRvbVNlZWRGcm9tRmxhZyhJbnQzMiByYW5kb21fc2VlZF9mbGFnKSB7CitpbmxpbmUgaW50IEdl
dFJhbmRvbVNlZWRGcm9tRmxhZyhpbnQzMl90IHJhbmRvbV9zZWVkX2ZsYWcpIHsKICAgY29uc3Qg
dW5zaWduZWQgaW50IHJhd19zZWVkID0gKHJhbmRvbV9zZWVkX2ZsYWcgPT0gMCkgPwogICAgICAg
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihHZXRUaW1lSW5NaWxsaXMoKSkgOgogICAgICAgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgaW50PihyYW5kb21fc2VlZF9mbGFnKTsKQEAgLTE2MiwxMCArMTY2
LDEyIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKICAgICBjb2xvcl8gPSBHVEVTVF9GTEFHKGNv
bG9yKTsKICAgICBkZWF0aF90ZXN0X3N0eWxlXyA9IEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHls
ZSk7CiAgICAgZGVhdGhfdGVzdF91c2VfZm9ya18gPSBHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNl
X2ZvcmspOworICAgIGZhaWxfZmFzdF8gPSBHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CiAgICAgZmls
dGVyXyA9IEdURVNUX0ZMQUcoZmlsdGVyKTsKICAgICBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF8g
PSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KTsKICAgICBsaXN0X3Rlc3RzXyA9
IEdURVNUX0ZMQUcobGlzdF90ZXN0cyk7CiAgICAgb3V0cHV0XyA9IEdURVNUX0ZMQUcob3V0cHV0
KTsKKyAgICBicmllZl8gPSBHVEVTVF9GTEFHKGJyaWVmKTsKICAgICBwcmludF90aW1lXyA9IEdU
RVNUX0ZMQUcocHJpbnRfdGltZSk7CiAgICAgcHJpbnRfdXRmOF8gPSBHVEVTVF9GTEFHKHByaW50
X3V0ZjgpOwogICAgIHJhbmRvbV9zZWVkXyA9IEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpOwpAQCAt
MTg1LDkgKzE5MSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgICAgR1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3N0eWxlKSA9IGRlYXRoX3Rlc3Rfc3R5bGVfOwogICAgIEdURVNUX0ZMQUcoZGVh
dGhfdGVzdF91c2VfZm9yaykgPSBkZWF0aF90ZXN0X3VzZV9mb3JrXzsKICAgICBHVEVTVF9GTEFH
KGZpbHRlcikgPSBmaWx0ZXJfOworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IGZhaWxfZmFz
dF87CiAgICAgR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgPSBpbnRlcm5hbF9y
dW5fZGVhdGhfdGVzdF87CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IGxpc3RfdGVzdHNf
OwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9IG91dHB1dF87CisgICAgR1RFU1RfRkxBRyhicmll
ZikgPSBicmllZl87CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IHByaW50X3RpbWVfOwog
ICAgIEdURVNUX0ZMQUcocHJpbnRfdXRmOCkgPSBwcmludF91dGY4XzsKICAgICBHVEVTVF9GTEFH
KHJhbmRvbV9zZWVkKSA9IHJhbmRvbV9zZWVkXzsKQEAgLTIwNiwxNiArMjE0LDE4IEBAIGNsYXNz
IEdUZXN0RmxhZ1NhdmVyIHsKICAgc3RkOjpzdHJpbmcgY29sb3JfOwogICBzdGQ6OnN0cmluZyBk
ZWF0aF90ZXN0X3N0eWxlXzsKICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9mb3JrXzsKKyAgYm9vbCBm
YWlsX2Zhc3RfOwogICBzdGQ6OnN0cmluZyBmaWx0ZXJfOwogICBzdGQ6OnN0cmluZyBpbnRlcm5h
bF9ydW5fZGVhdGhfdGVzdF87CiAgIGJvb2wgbGlzdF90ZXN0c187CiAgIHN0ZDo6c3RyaW5nIG91
dHB1dF87CisgIGJvb2wgYnJpZWZfOwogICBib29sIHByaW50X3RpbWVfOwogICBib29sIHByaW50
X3V0ZjhfOwotICBpbnRlcm5hbDo6SW50MzIgcmFuZG9tX3NlZWRfOwotICBpbnRlcm5hbDo6SW50
MzIgcmVwZWF0XzsKKyAgaW50MzJfdCByYW5kb21fc2VlZF87CisgIGludDMyX3QgcmVwZWF0XzsK
ICAgYm9vbCBzaHVmZmxlXzsKLSAgaW50ZXJuYWw6OkludDMyIHN0YWNrX3RyYWNlX2RlcHRoXzsK
KyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aF87CiAgIHN0ZDo6c3RyaW5nIHN0cmVhbV9yZXN1
bHRfdG9fOwogICBib29sIHRocm93X29uX2ZhaWx1cmVfOwogfSBHVEVTVF9BVFRSSUJVVEVfVU5V
U0VEXzsKQEAgLTIyNiwxMSArMjM2LDExIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKIC8vIElm
IHRoZSBjb2RlX3BvaW50IGlzIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludAogLy8gKGku
ZS4gb3V0c2lkZSBvZiBVbmljb2RlIHJhbmdlIFUrMCB0byBVKzEwRkZGRikgaXQgd2lsbCBiZSBj
b252ZXJ0ZWQKIC8vIHRvICIoSW52YWxpZCBVbmljb2RlIDB4WFhYWFhYWFgpIi4KLUdURVNUX0FQ
SV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KTsKK0dURVNU
X0FQSV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KHVpbnQzMl90IGNvZGVfcG9pbnQpOwog
CiAvLyBDb252ZXJ0cyBhIHdpZGUgc3RyaW5nIHRvIGEgbmFycm93IHN0cmluZyBpbiBVVEYtOCBl
bmNvZGluZy4KIC8vIFRoZSB3aWRlIHN0cmluZyBpcyBhc3N1bWVkIHRvIGhhdmUgdGhlIGZvbGxv
d2luZyBlbmNvZGluZzoKLS8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90KSA9PSAyIChvbiBX
aW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpCisvLyAgIFVURi0xNiBpZiBzaXplb2Yod2NoYXJf
dCkgPT0gMiAob24gV2luZG93cywgQ3lnd2luKQogLy8gICBVVEYtMzIgaWYgc2l6ZW9mKHdjaGFy
X3QpID09IDQgKG9uIExpbnV4KQogLy8gUGFyYW1ldGVyIHN0ciBwb2ludHMgdG8gYSBudWxsLXRl
cm1pbmF0ZWQgd2lkZSBzdHJpbmcuCiAvLyBQYXJhbWV0ZXIgbnVtX2NoYXJzIG1heSBhZGRpdGlv
bmFsbHkgbGltaXQgdGhlIG51bWJlcgpAQCAtMjU5LDE0ICsyNjksMTQgQEAgR1RFU1RfQVBJXyBi
b29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19zdHIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc2hhcmRfaW5kZXhfc3RyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCk7CiAK
LS8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFyIGFzIGFuIEludDMyLiBJZiBp
dCBpcyB1bnNldCwKLS8vIHJldHVybnMgZGVmYXVsdF92YWwuIElmIGl0IGlzIG5vdCBhbiBJbnQz
MiwgcHJpbnRzIGFuIGVycm9yIGFuZAorLy8gUGFyc2VzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJs
ZSB2YXIgYXMgYSAzMi1iaXQgaW50ZWdlci4gSWYgaXQgaXMgdW5zZXQsCisvLyByZXR1cm5zIGRl
ZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYSAzMi1iaXQgaW50ZWdlciwgcHJpbnRzIGFuIGVycm9y
IGFuZAogLy8gYW5kIGFib3J0cy4KLUdURVNUX0FQSV8gSW50MzIgSW50MzJGcm9tRW52T3JEaWUo
Y29uc3QgY2hhciogZW52X3ZhciwgSW50MzIgZGVmYXVsdF92YWwpOworR1RFU1RfQVBJXyBpbnQz
Ml90IEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIGVudl92YXIsIGludDMyX3QgZGVmYXVs
dF92YWwpOwogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNoYXJkcywgdGhlIHNoYXJk
IGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNo
b3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRy
YXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0
CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBv
biB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMgc29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1
ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4g
QXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0b3RhbF9zaGFyZHMuCiBHVEVTVF9BUElf
IGJvb2wgU2hvdWxkUnVuVGVzdE9uU2hhcmQoCiAgICAgaW50IHRvdGFsX3NoYXJkcywgaW50IHNo
YXJkX2luZGV4LCBpbnQgdGVzdF9pZCk7CkBAIC0yOTcsNyArMzA3LDggQEAgdm9pZCBGb3JFYWNo
KGNvbnN0IENvbnRhaW5lciYgYywgRnVuY3RvciBmdW5jdG9yKSB7CiAvLyBpbiByYW5nZSBbMCwg
di5zaXplKCkpLgogdGVtcGxhdGUgPHR5cGVuYW1lIEU+CiBpbmxpbmUgRSBHZXRFbGVtZW50T3Io
Y29uc3Qgc3RkOjp2ZWN0b3I8RT4mIHYsIGludCBpLCBFIGRlZmF1bHRfdmFsdWUpIHsKLSAgcmV0
dXJuIChpIDwgMCB8fCBpID49IHN0YXRpY19jYXN0PGludD4odi5zaXplKCkpKSA/IGRlZmF1bHRf
dmFsdWUgOiB2W2ldOworICByZXR1cm4gKGkgPCAwIHx8IGkgPj0gc3RhdGljX2Nhc3Q8aW50Pih2
LnNpemUoKSkpID8gZGVmYXVsdF92YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogdltzdGF0aWNfY2FzdDxzaXplX3Q+KGkpXTsKIH0KIAog
Ly8gUGVyZm9ybXMgYW4gaW4tcGxhY2Ugc2h1ZmZsZSBvZiBhIHJhbmdlIG9mIHRoZSB2ZWN0b3In
cyBlbGVtZW50cy4KQEAgLTMxOSw4ICszMzAsMTEgQEAgdm9pZCBTaHVmZmxlUmFuZ2UoaW50ZXJu
YWw6OlJhbmRvbSogcmFuZG9tLCBpbnQgYmVnaW4sIGludCBlbmQsCiAgIC8vIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUKICAgZm9yIChpbnQgcmFuZ2Vf
d2lkdGggPSBlbmQgLSBiZWdpbjsgcmFuZ2Vfd2lkdGggPj0gMjsgcmFuZ2Vfd2lkdGgtLSkgewog
ICAgIGNvbnN0IGludCBsYXN0X2luX3JhbmdlID0gYmVnaW4gKyByYW5nZV93aWR0aCAtIDE7Ci0g
ICAgY29uc3QgaW50IHNlbGVjdGVkID0gYmVnaW4gKyByYW5kb20tPkdlbmVyYXRlKHJhbmdlX3dp
ZHRoKTsKLSAgICBzdGQ6OnN3YXAoKCp2KVtzZWxlY3RlZF0sICgqdilbbGFzdF9pbl9yYW5nZV0p
OworICAgIGNvbnN0IGludCBzZWxlY3RlZCA9CisgICAgICAgIGJlZ2luICsKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50PihyYW5kb20tPkdlbmVyYXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihyYW5n
ZV93aWR0aCkpKTsKKyAgICBzdGQ6OnN3YXAoKCp2KVtzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVj
dGVkKV0sCisgICAgICAgICAgICAgICgqdilbc3RhdGljX2Nhc3Q8c2l6ZV90PihsYXN0X2luX3Jh
bmdlKV0pOwogICB9CiB9CiAKQEAgLTM0Nyw3ICszNjEsNyBAQCBjbGFzcyBUZXN0UHJvcGVydHlL
ZXlJcyB7CiAgIC8vIFRlc3RQcm9wZXJ0eUtleUlzIGhhcyBOTyBkZWZhdWx0IGNvbnN0cnVjdG9y
LgogICBleHBsaWNpdCBUZXN0UHJvcGVydHlLZXlJcyhjb25zdCBzdGQ6OnN0cmluZyYga2V5KSA6
IGtleV8oa2V5KSB7fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0
ZXN0IHByb3BlcnR5IG1hdGNoZXMgb24ga2V5Xy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdCBwcm9wZXJ0eSBtYXRjaGVzIG9uIGtleV8uCiAg
IGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIGNvbnN0
IHsKICAgICByZXR1cm4gdGVzdF9wcm9wZXJ0eS5rZXkoKSA9PSBrZXlfOwogICB9CkBAIC0zODAs
MTcgKzM5NCwxMCBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0T3B0aW9ucyB7CiAKICAgLy8g
RnVuY3Rpb25zIGZvciBwcm9jZXNzaW5nIHRoZSBndGVzdF9maWx0ZXIgZmxhZy4KIAotICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHRoZSB3aWxkY2FyZCBwYXR0ZXJuIG1hdGNoZXMgdGhlIHN0cmluZy4g
IFRoZQotICAvLyBmaXJzdCAnOicgb3IgJ1wwJyBjaGFyYWN0ZXIgaW4gcGF0dGVybiBtYXJrcyB0
aGUgZW5kIG9mIGl0LgotICAvLwotICAvLyBUaGlzIHJlY3Vyc2l2ZSBhbGdvcml0aG0gaXNuJ3Qg
dmVyeSBlZmZpY2llbnQsIGJ1dCBpcyBjbGVhciBhbmQKLSAgLy8gd29ya3Mgd2VsbCBlbm91Z2gg
Zm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLSAgc3RhdGljIGJvb2wg
UGF0dGVybk1hdGNoZXNTdHJpbmcoY29uc3QgY2hhciAqcGF0dGVybiwgY29uc3QgY2hhciAqc3Ry
KTsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgbWF0
Y2hlcyB0aGUgdGVzdCBjYXNlCi0gIC8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUuCi0gIHN0YXRp
YyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnRl
c3RfbmFtZSk7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdXNlci1zcGVj
aWZpZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHRlc3QKKyAgLy8gc3VpdGUgbmFtZSBhbmQgdGhlIHRl
c3QgbmFtZS4KKyAgc3RhdGljIGJvb2wgRmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSk7CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTCiAgIC8v
IEZ1bmN0aW9uIGZvciBzdXBwb3J0aW5nIHRoZSBndGVzdF9jYXRjaF9leGNlcHRpb24gZmxhZy4K
QEAgLTQ0Miw4ICs0NDksOCBAQCBjbGFzcyBPc1N0YWNrVHJhY2VHZXR0ZXIgOiBwdWJsaWMgT3NT
dGFja1RyYWNlR2V0dGVySW50ZXJmYWNlIHsKICBwdWJsaWM6CiAgIE9zU3RhY2tUcmFjZUdldHRl
cigpIHt9CiAKLSAgdmlydHVhbCBzdGQ6OnN0cmluZyBDdXJyZW50U3RhY2tUcmFjZShpbnQgbWF4
X2RlcHRoLCBpbnQgc2tpcF9jb3VudCk7Ci0gIHZpcnR1YWwgdm9pZCBVcG9uTGVhdmluZ0dUZXN0
KCk7CisgIHN0ZDo6c3RyaW5nIEN1cnJlbnRTdGFja1RyYWNlKGludCBtYXhfZGVwdGgsIGludCBz
a2lwX2NvdW50KSBvdmVycmlkZTsKKyAgdm9pZCBVcG9uTGVhdmluZ0dUZXN0KCkgb3ZlcnJpZGU7
CiAKICBwcml2YXRlOgogI2lmIEdURVNUX0hBU19BQlNMCkBAIC00NzQsNyArNDgxLDcgQEAgY2xh
c3MgRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgZXhwbGljaXQgRGVmYXVs
dEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoVW5pdFRlc3RJbXBsKiB1bml0X3Rlc3QpOwog
ICAvLyBJbXBsZW1lbnRzIHRoZSBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlLiBSZXBv
cnRzIHRoZSB0ZXN0IHBhcnQKICAgLy8gcmVzdWx0IGluIHRoZSBjdXJyZW50IHRlc3QuCi0gIHZp
cnR1YWwgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVz
dWx0KTsKKyAgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYg
cmVzdWx0KSBvdmVycmlkZTsKIAogIHByaXZhdGU6CiAgIFVuaXRUZXN0SW1wbCogY29uc3QgdW5p
dF90ZXN0XzsKQEAgLTQ5MCw3ICs0OTcsNyBAQCBjbGFzcyBEZWZhdWx0UGVyVGhyZWFkVGVzdFBh
cnRSZXN1bHRSZXBvcnRlcgogICBleHBsaWNpdCBEZWZhdWx0UGVyVGhyZWFkVGVzdFBhcnRSZXN1
bHRSZXBvcnRlcihVbml0VGVzdEltcGwqIHVuaXRfdGVzdCk7CiAgIC8vIEltcGxlbWVudHMgdGhl
IFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2UuIFRoZSBpbXBsZW1lbnRhdGlvbiBqdXN0
CiAgIC8vIGRlbGVnYXRlcyB0byB0aGUgY3VycmVudCBnbG9iYWwgdGVzdCBwYXJ0IHJlc3VsdCBy
ZXBvcnRlciBvZiAqdW5pdF90ZXN0Xy4KLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVz
dWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOworICB2b2lkIFJlcG9ydFRlc3RQYXJ0
UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOwogCiAgcHJpdmF0
ZToKICAgVW5pdFRlc3RJbXBsKiBjb25zdCB1bml0X3Rlc3RfOwpAQCAtNTI4LDIyICs1MzUsMjUg
QEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICB2b2lkIFNldFRlc3RQYXJ0UmVz
dWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKAogICAgICAgVGVzdFBhcnRSZXN1bHRSZXBvcnRl
ckludGVyZmFjZSogcmVwb3J0ZXIpOwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNz
ZnVsIHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0
OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KKyAgaW50
IHN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51
bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZhaWxlZF90ZXN0X2Nhc2VfY291bnQo
KSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KKyAg
aW50IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29u
c3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCisgIGludCB0b3Rh
bF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFs
bCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorICAvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVz
dAogICAvLyB0aGF0IHNob3VsZCBydW4uCi0gIGludCB0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkg
Y29uc3Q7CisgIGludCB0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMu
CisgIGludCBza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1i
ZXIgb2YgZmFpbGVkIHRlc3RzLgogICBpbnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApA
QCAtNTY5LDI3ICs1NzksMzMgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAv
LyBHZXRzIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWlsbGlz
IGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KIAotICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0IGNhc2Vz
IHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0
IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAgLy8gcGFzc2VkKS4KICAgYm9vbCBQYXNz
ZWQoKSBjb25zdCB7IHJldHVybiAhRmFpbGVkKCk7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotICAvLyBv
ciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBz
dWl0ZQorICAvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxl
ZCkuCiAgIGJvb2wgRmFpbGVkKCkgY29uc3QgewotICAgIHJldHVybiBmYWlsZWRfdGVzdF9jYXNl
X2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0X3Jlc3VsdCgpLT5GYWlsZWQoKTsKKyAgICByZXR1
cm4gZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCkt
PkZhaWxlZCgpOwogICB9CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxs
IHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9j
YXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwu
Ci0gIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3QgewotICAgIGNvbnN0
IGludCBpbmRleCA9IEdldEVsZW1lbnRPcih0ZXN0X2Nhc2VfaW5kaWNlc18sIGksIC0xKTsKLSAg
ICByZXR1cm4gaW5kZXggPCAwID8gTlVMTCA6IHRlc3RfY2FzZXNfW2ldOworICAvLyBHZXRzIHRo
ZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2Ug
ZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAtIDEuIElmIGkgaXMgbm90
IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgY29uc3QgVGVzdFN1aXRlKiBHZXRUZXN0
U3VpdGUoaW50IGkpIGNvbnN0IHsKKyAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3Io
dGVzdF9zdWl0ZV9pbmRpY2VzXywgaSwgLTEpOworICAgIHJldHVybiBpbmRleCA8IDAgPyBudWxs
cHRyIDogdGVzdF9zdWl0ZXNfW3N0YXRpY19jYXN0PHNpemVfdD4oaSldOwogICB9CiAKLSAgLy8g
R2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiBy
YW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlz
IG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIFRlc3RDYXNlKiBHZXRNdXRhYmxl
VGVzdENhc2UoaW50IGkpIHsKLSAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVz
dF9jYXNlX2luZGljZXNfLCBpLCAtMSk7Ci0gICAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0
ZXN0X2Nhc2VzX1tpbmRleF07CisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KyAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGludCBpKSBjb25zdCB7IHJldHVybiBHZXRU
ZXN0U3VpdGUoaSk7IH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworCisgIC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRlc3Qg
c3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3Vu
dCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorICBUZXN0
U3VpdGUqIEdldE11dGFibGVTdWl0ZUNhc2UoaW50IGkpIHsKKyAgICBjb25zdCBpbnQgaW5kZXgg
PSBHZXRFbGVtZW50T3IodGVzdF9zdWl0ZV9pbmRpY2VzXywgaSwgLTEpOworICAgIHJldHVybiBp
bmRleCA8IDAgPyBudWxscHRyIDogdGVzdF9zdWl0ZXNfW3N0YXRpY19jYXN0PHNpemVfdD4oaW5k
ZXgpXTsKICAgfQogCiAgIC8vIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgZXZlbnQgbGlzdGVuZXIg
bGlzdC4KQEAgLTYyNiwzMSArNjQyLDQwIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBs
IHsKICAgLy8gdHJhY2UgYnV0IEJhcigpIGFuZCBDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9w
KCkgd29uJ3QuCiAgIHN0ZDo6c3RyaW5nIEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoaW50
IHNraXBfY291bnQpIEdURVNUX05PX0lOTElORV87CiAKLSAgLy8gRmluZHMgYW5kIHJldHVybnMg
YSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRvZXNuJ3QKKyAgLy8gRmlu
ZHMgYW5kIHJldHVybnMgYSBUZXN0U3VpdGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBk
b2Vzbid0CiAgIC8vIGV4aXN0LCBjcmVhdGVzIG9uZSBhbmQgcmV0dXJucyBpdC4KICAgLy8KICAg
Ly8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIHRlc3RfY2FzZV9uYW1lOiBuYW1lIG9mIHRoZSB0
ZXN0IGNhc2UKLSAgLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0
eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgotICAvLyAgICAgICAgICAgICAgICAgICB0aGlzIGlz
IG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAgc2V0X3Vw
X3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBj
YXNlCi0gIC8vICAgdGVhcl9kb3duX3RjOiAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQg
dGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCi0gIFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShjb25zdCBj
aGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHR5cGVfcGFyYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNl
RnVuYyBzZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRl
c3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpOworICAvLyAgIHRlc3Rfc3VpdGVfbmFtZTogbmFtZSBv
ZiB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHR5cGVfcGFyYW06ICAgICAgdGhlIG5hbWUgb2YgdGhl
IHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgorICAvLyAgICAgICAgICAgICAgICAg
ICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgorICAv
LyAgIHNldF91cF90YzogICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVw
IHRoZSB0ZXN0IHN1aXRlCisgIC8vICAgdGVhcl9kb3duX3RjOiAgICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKKyAgVGVzdFN1aXRlKiBHZXRU
ZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBlX3Bh
cmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVG
dW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJE
b3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpOworCisvLyAgTGVnYWN5IEFQSSBpcyBkZXBy
ZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9U
RVNUX0NBU0VBUElfCisgIFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShjb25zdCBjaGFyKiB0ZXN0X2Nh
c2VfbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGludGVybmFsOjpTZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpIHsK
KyAgICByZXR1cm4gR2V0VGVzdFN1aXRlKHRlc3RfY2FzZV9uYW1lLCB0eXBlX3BhcmFtLCBzZXRf
dXBfdGMsIHRlYXJfZG93bl90Yyk7CisgIH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEFkZHMgYSBUZXN0SW5mbyB0byB0aGUgdW5pdCB0ZXN0
LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0gIC8vICAgc2V0X3VwX3RjOiAgICBwb2lu
dGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZQotICAvLyAgIHRl
YXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0
ZXN0IGNhc2UKKyAgLy8gICBzZXRfdXBfdGM6ICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRo
YXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0
byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1aXRlCiAgIC8vICAgdGVz
dF9pbmZvOiAgICB0aGUgVGVzdEluZm8gb2JqZWN0Ci0gIHZvaWQgQWRkVGVzdEluZm8oVGVzdDo6
U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6OlRl
YXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90YywKKyAgdm9pZCBBZGRUZXN0SW5mbyhpbnRl
cm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbDo6VGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywKICAgICAgICAgICAg
ICAgICAgICBUZXN0SW5mbyogdGVzdF9pbmZvKSB7CisjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QK
ICAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzLCB3ZSBu
ZWVkIHRvCiAgICAgLy8gcmVtZW1iZXIgdGhlIG9yaWdpbmFsIHdvcmtpbmcgZGlyZWN0b3J5IHdo
ZW4gdGhlIHRlc3QgcHJvZ3JhbQogICAgIC8vIHdhcyBmaXJzdCBpbnZva2VkLiAgV2UgY2Fubm90
IGRvIHRoaXMgaW4gUlVOX0FMTF9URVNUUygpLCBhcwpAQCAtNjYzLDIyICs2ODgsMzMgQEAgY2xh
c3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAgICAgR1RFU1RfQ0hFQ0tfKCFvcmlnaW5h
bF93b3JraW5nX2Rpcl8uSXNFbXB0eSgpKQogICAgICAgICAgIDw8ICJGYWlsZWQgdG8gZ2V0IHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiI7CiAgICAgfQorI2VuZGlmICAvLyBHVEVTVF9I
QVNfREVBVEhfVEVTVAogCi0gICAgR2V0VGVzdENhc2UodGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFt
ZSgpLAotICAgICAgICAgICAgICAgIHRlc3RfaW5mby0+dHlwZV9wYXJhbSgpLAotICAgICAgICAg
ICAgICAgIHNldF91cF90YywKLSAgICAgICAgICAgICAgICB0ZWFyX2Rvd25fdGMpLT5BZGRUZXN0
SW5mbyh0ZXN0X2luZm8pOworICAgIEdldFRlc3RTdWl0ZSh0ZXN0X2luZm8tPnRlc3Rfc3VpdGVf
bmFtZSgpLCB0ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSwKKyAgICAgICAgICAgICAgICAgc2V0X3Vw
X3RjLCB0ZWFyX2Rvd25fdGMpCisgICAgICAgIC0+QWRkVGVzdEluZm8odGVzdF9pbmZvKTsKICAg
fQogCi0gIC8vIFJldHVybnMgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVz
ZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5zIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVS
ZWdpc3RyeSBvYmplY3QgdXNlZCB0byBrZWVwIHRyYWNrIG9mCiAgIC8vIHZhbHVlLXBhcmFtZXRl
cml6ZWQgdGVzdHMgYW5kIGluc3RhbnRpYXRlIGFuZCByZWdpc3RlciB0aGVtLgotICBpbnRlcm5h
bDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeSgpIHsKKyAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSYgcGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgewogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkX3Rl
c3RfcmVnaXN0cnlfOwogICB9CiAKLSAgLy8gU2V0cyB0aGUgVGVzdENhc2Ugb2JqZWN0IGZvciB0
aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcuCi0gIHZvaWQgc2V0X2N1cnJlbnRfdGVz
dF9jYXNlKFRlc3RDYXNlKiBhX2N1cnJlbnRfdGVzdF9jYXNlKSB7Ci0gICAgY3VycmVudF90ZXN0
X2Nhc2VfID0gYV9jdXJyZW50X3Rlc3RfY2FzZTsKKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiBp
Z25vcmVkX3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXMoKSB7CisgICAgcmV0dXJuICZpZ25vcmVk
X3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXNfOworICB9CisKKyAgLy8gUmV0dXJucyBUeXBlUGFy
YW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YK
KyAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0aW9ucyBvZiB0aGVt
LgorICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSYKKyAgdHlw
ZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSB7CisgICAgcmV0dXJuIHR5cGVfcGFyYW1l
dGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKyAgfQorCisgIC8vIFNldHMgdGhlIFRlc3RTdWl0ZSBv
YmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZy4KKyAgdm9pZCBzZXRf
Y3VycmVudF90ZXN0X3N1aXRlKFRlc3RTdWl0ZSogYV9jdXJyZW50X3Rlc3Rfc3VpdGUpIHsKKyAg
ICBjdXJyZW50X3Rlc3Rfc3VpdGVfID0gYV9jdXJyZW50X3Rlc3Rfc3VpdGU7CiAgIH0KIAogICAv
LyBTZXRzIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkg
cnVubmluZy4gIElmCkBAIC02ODksNyArNzI1LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVz
dEltcGwgewogICB9CiAKICAgLy8gUmVnaXN0ZXJzIGFsbCBwYXJhbWV0ZXJpemVkIHRlc3RzIGRl
ZmluZWQgdXNpbmcgVEVTVF9QIGFuZAotICAvLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCwgY3Jl
YXRpbmcgcmVndWxhciB0ZXN0cyBmb3IgZWFjaCB0ZXN0L3BhcmFtZXRlcgorICAvLyBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AsIGNyZWF0aW5nIHJlZ3VsYXIgdGVzdHMgZm9yIGVhY2ggdGVzdC9w
YXJhbWV0ZXIKICAgLy8gY29tYmluYXRpb24uIFRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgbW9y
ZSB0aGVuIG9uY2U7IGl0IGhhcyBndWFyZHMKICAgLy8gcHJvdGVjdGluZyBmcm9tIHJlZ2lzdGVy
aW5nIHRoZSB0ZXN0cyBtb3JlIHRoZW4gb25jZS4gIElmCiAgIC8vIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdHMgYXJlIGRpc2FibGVkLCBSZWdpc3RlclBhcmFtZXRlcml6ZWRUZXN0cyBpcwpAQCAt
NzA0LDcgKzc0MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKIAogICAvLyBD
bGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzLCBleGNlcHQgdGhlIGFkIGhvYyB0ZXN0cy4K
ICAgdm9pZCBDbGVhck5vbkFkSG9jVGVzdFJlc3VsdCgpIHsKLSAgICBGb3JFYWNoKHRlc3RfY2Fz
ZXNfLCBUZXN0Q2FzZTo6Q2xlYXJUZXN0Q2FzZVJlc3VsdCk7CisgICAgRm9yRWFjaCh0ZXN0X3N1
aXRlc18sIFRlc3RTdWl0ZTo6Q2xlYXJUZXN0U3VpdGVSZXN1bHQpOwogICB9CiAKICAgLy8gQ2xl
YXJzIHRoZSByZXN1bHRzIG9mIGFkLWhvYyB0ZXN0IGFzc2VydGlvbnMuCkBAIC03MTMsNyArNzQ5
LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICB9CiAKICAgLy8gQWRkcyBh
IFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9r
ZWQgaW4gYQotICAvLyBjb250ZXh0IG9mIGEgdGVzdCBvciBhIHRlc3QgY2FzZSwgb3IgdG8gdGhl
IGdsb2JhbCBwcm9wZXJ0eSBzZXQuIElmIHRoZQorICAvLyBjb250ZXh0IG9mIGEgdGVzdCBvciBh
IHRlc3Qgc3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0LiBJZiB0aGUKICAgLy8g
cmVzdWx0IGFscmVhZHkgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIGtleSwgdGhl
IHZhbHVlIHdpbGwgYmUKICAgLy8gdXBkYXRlZC4KICAgdm9pZCBSZWNvcmRQcm9wZXJ0eShjb25z
dCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpOwpAQCAtNzI1LDcgKzc2MSw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKIAogICAvLyBNYXRjaGVzIHRoZSBmdWxsIG5hbWUg
b2YgZWFjaCB0ZXN0IGFnYWluc3QgdGhlIHVzZXItc3BlY2lmaWVkCiAgIC8vIGZpbHRlciB0byBk
ZWNpZGUgd2hldGhlciB0aGUgdGVzdCBzaG91bGQgcnVuLCB0aGVuIHJlY29yZHMgdGhlCi0gIC8v
IHJlc3VsdCBpbiBlYWNoIFRlc3RDYXNlIGFuZCBUZXN0SW5mbyBvYmplY3QuCisgIC8vIHJlc3Vs
dCBpbiBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8gb2JqZWN0LgogICAvLyBJZiBzaGFyZF90
ZXN0cyA9PSBIT05PUl9TSEFSRElOR19QUk9UT0NPTCwgZnVydGhlciBmaWx0ZXJzIHRlc3RzCiAg
IC8vIGJhc2VkIG9uIHNoYXJkaW5nIHZhcmlhYmxlcyBpbiB0aGUgZW52aXJvbm1lbnQuCiAgIC8v
IFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IHNob3VsZCBydW4uCkBAIC03MzQsNyAr
NzcwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAvLyBQcmludHMgdGhl
IG5hbWVzIG9mIHRoZSB0ZXN0cyBtYXRjaGluZyB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVyIGZs
YWcuCiAgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKTsKIAotICBjb25zdCBUZXN0Q2Fz
ZSogY3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3RfY2FzZV87
IH0KKyAgY29uc3QgVGVzdFN1aXRlKiBjdXJyZW50X3Rlc3Rfc3VpdGUoKSBjb25zdCB7IHJldHVy
biBjdXJyZW50X3Rlc3Rfc3VpdGVfOyB9CiAgIFRlc3RJbmZvKiBjdXJyZW50X3Rlc3RfaW5mbygp
IHsgcmV0dXJuIGN1cnJlbnRfdGVzdF9pbmZvXzsgfQogICBjb25zdCBUZXN0SW5mbyogY3VycmVu
dF90ZXN0X2luZm8oKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3RfaW5mb187IH0KIApAQCAt
Nzk1LDExICs4MzEsMTEgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAvLyBH
ZXRzIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4KICAgaW50ZXJuYWw6OlJhbmRvbSogcmFu
ZG9tKCkgeyByZXR1cm4gJnJhbmRvbV87IH0KIAotICAvLyBTaHVmZmxlcyBhbGwgdGVzdCBjYXNl
cywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0IGNhc2UsCisgIC8vIFNodWZmbGVzIGFs
bCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0IHN1aXRlLAogICAv
LyBtYWtpbmcgc3VyZSB0aGF0IGRlYXRoIHRlc3RzIGFyZSBzdGlsbCBydW4gZmlyc3QuCiAgIHZv
aWQgU2h1ZmZsZVRlc3RzKCk7CiAKLSAgLy8gUmVzdG9yZXMgdGhlIHRlc3QgY2FzZXMgYW5kIHRl
c3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KKyAgLy8gUmVzdG9y
ZXMgdGhlIHRlc3Qgc3VpdGVzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZp
cnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVzdHMoKTsKIAogICAvLyBSZXR1cm5zIHRo
ZSB2YWx1ZSBvZiBHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpIGF0IHRoZSBtb21lbnQKQEAg
LTgzOSwzMSArODc1LDM3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgLy8g
YmVmb3JlL2FmdGVyIHRoZSB0ZXN0cyBhcmUgcnVuLgogICBzdGQ6OnZlY3RvcjxFbnZpcm9ubWVu
dCo+IGVudmlyb25tZW50c187CiAKLSAgLy8gVGhlIHZlY3RvciBvZiBUZXN0Q2FzZXMgaW4gdGhl
aXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25zIHRoZQorICAvLyBUaGUgdmVjdG9yIG9mIFRlc3RT
dWl0ZXMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25zIHRoZQogICAvLyBlbGVtZW50
cyBpbiB0aGUgdmVjdG9yLgotICBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+IHRlc3RfY2FzZXNfOwor
ICBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiB0ZXN0X3N1aXRlc187CiAKLSAgLy8gUHJvdmlkZXMg
YSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBmb3IgdGhlIHRlc3QgY2FzZSBsaXN0IHRvIGFsbG93Ci0g
IC8vIGVhc3kgc2h1ZmZsaW5nIGFuZCByZXN0b3JpbmcgdGhlIHRlc3QgY2FzZSBvcmRlci4gIFRo
ZSBpLXRoCi0gIC8vIGVsZW1lbnQgb2YgdGhpcyB2ZWN0b3IgaXMgdGhlIGluZGV4IG9mIHRoZSBp
LXRoIHRlc3QgY2FzZSBpbiB0aGUKKyAgLy8gUHJvdmlkZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlv
biBmb3IgdGhlIHRlc3Qgc3VpdGUgbGlzdCB0byBhbGxvdworICAvLyBlYXN5IHNodWZmbGluZyBh
bmQgcmVzdG9yaW5nIHRoZSB0ZXN0IHN1aXRlIG9yZGVyLiAgVGhlIGktdGgKKyAgLy8gZWxlbWVu
dCBvZiB0aGlzIHZlY3RvciBpcyB0aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBzdWl0ZSBpbiB0
aGUKICAgLy8gc2h1ZmZsZWQgb3JkZXIuCi0gIHN0ZDo6dmVjdG9yPGludD4gdGVzdF9jYXNlX2lu
ZGljZXNfOworICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3Rfc3VpdGVfaW5kaWNlc187CiAKICAgLy8g
UGFyYW1ldGVyaXplZFRlc3RSZWdpc3RyeSBvYmplY3QgdXNlZCB0byByZWdpc3RlciB2YWx1ZS1w
YXJhbWV0ZXJpemVkCiAgIC8vIHRlc3RzLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RD
YXNlUmVnaXN0cnkgcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKyAgaW50ZXJuYWw6OlBh
cmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlf
OworICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeQorICAgICAg
dHlwZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfOworCisgIC8vIFRoZSBzZXQgaG9sZGlu
ZyB0aGUgbmFtZSBvZiBwYXJhbWV0ZXJpemVkCisgIC8vIHRlc3Qgc3VpdGVzIHRoYXQgbWF5IGdv
IHVuaW5zdGFudGlhdGVkLgorICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gaWdub3JlZF9wYXJhbWV0
ZXJpemVkX3Rlc3Rfc3VpdGVzXzsKIAogICAvLyBJbmRpY2F0ZXMgd2hldGhlciBSZWdpc3RlclBh
cmFtZXRlcml6ZWRUZXN0cygpIGhhcyBiZWVuIGNhbGxlZCBhbHJlYWR5LgogICBib29sIHBhcmFt
ZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF87CiAKLSAgLy8gSW5kZXggb2YgdGhlIGxhc3QgZGVh
dGggdGVzdCBjYXNlIHJlZ2lzdGVyZWQuICBJbml0aWFsbHkgLTEuCi0gIGludCBsYXN0X2RlYXRo
X3Rlc3RfY2FzZV87CisgIC8vIEluZGV4IG9mIHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3VpdGUgcmVn
aXN0ZXJlZC4gIEluaXRpYWxseSAtMS4KKyAgaW50IGxhc3RfZGVhdGhfdGVzdF9zdWl0ZV87CiAK
LSAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RDYXNlIGZvciB0aGUgY3VycmVudGx5IHJ1bm5p
bmcgdGVzdC4gIEl0Ci0gIC8vIGNoYW5nZXMgYXMgR29vZ2xlIFRlc3QgZ29lcyB0aHJvdWdoIG9u
ZSB0ZXN0IGNhc2UgYWZ0ZXIgYW5vdGhlci4KKyAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RT
dWl0ZSBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuICBJdAorICAvLyBjaGFuZ2VzIGFz
IEdvb2dsZSBUZXN0IGdvZXMgdGhyb3VnaCBvbmUgdGVzdCBzdWl0ZSBhZnRlciBhbm90aGVyLgog
ICAvLyBXaGVuIG5vIHRlc3QgaXMgcnVubmluZywgdGhpcyBpcyBzZXQgdG8gTlVMTCBhbmQgR29v
Z2xlIFRlc3QKICAgLy8gc3RvcmVzIGFzc2VydGlvbiByZXN1bHRzIGluIGFkX2hvY190ZXN0X3Jl
c3VsdF8uICBJbml0aWFsbHkgTlVMTC4KLSAgVGVzdENhc2UqIGN1cnJlbnRfdGVzdF9jYXNlXzsK
KyAgVGVzdFN1aXRlKiBjdXJyZW50X3Rlc3Rfc3VpdGVfOwogCiAgIC8vIFRoaXMgcG9pbnRzIHRv
IHRoZSBUZXN0SW5mbyBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuICBJdAogICAvLyBj
aGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdvZXMgdGhyb3VnaCBvbmUgdGVzdCBhZnRlciBhbm90aGVy
LiAgV2hlbgpAQCAtODkxLDcgKzkzMyw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBs
IHsKICAgLy8gZGVzaXJlZC4KICAgT3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlKiBvc19zdGFj
a190cmFjZV9nZXR0ZXJfOwogCi0gIC8vIFRydWUgaWZmIFBvc3RGbGFnUGFyc2luZ0luaXQoKSBo
YXMgYmVlbiBjYWxsZWQuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgUG9zdEZsYWdQYXJzaW5n
SW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KICAgYm9vbCBwb3N0X2ZsYWdfcGFyc2VfaW5pdF9wZXJm
b3JtZWRfOwogCiAgIC8vIFRoZSByYW5kb20gbnVtYmVyIHNlZWQgdXNlZCBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSB0ZXN0IHJ1bi4KQEAgLTkxMCw4ICs5NTIsOCBAQCBjbGFzcyBHVEVTVF9BUElf
IFVuaXRUZXN0SW1wbCB7CiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKICAgLy8gVGhlIGRlY29t
cG9zZWQgY29tcG9uZW50cyBvZiB0aGUgZ3Rlc3RfaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QgZmxh
ZywKICAgLy8gcGFyc2VkIHdoZW4gUlVOX0FMTF9URVNUUyBpcyBjYWxsZWQuCi0gIGludGVybmFs
OjpzY29wZWRfcHRyPEludGVybmFsUnVuRGVhdGhUZXN0RmxhZz4gaW50ZXJuYWxfcnVuX2RlYXRo
X3Rlc3RfZmxhZ187Ci0gIGludGVybmFsOjpzY29wZWRfcHRyPGludGVybmFsOjpEZWF0aFRlc3RG
YWN0b3J5PiBkZWF0aF90ZXN0X2ZhY3RvcnlfOworICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxS
dW5EZWF0aFRlc3RGbGFnPiBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXzsKKyAgc3RkOjp1
bmlxdWVfcHRyPGludGVybmFsOjpEZWF0aFRlc3RGYWN0b3J5PiBkZWF0aF90ZXN0X2ZhY3Rvcnlf
OwogI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVAogCiAgIC8vIEEgcGVyLXRocmVhZCBz
dGFjayBvZiB0cmFjZXMgY3JlYXRlZCBieSB0aGUgU0NPUEVEX1RSQUNFKCkgbWFjcm8uCkBAIC05
NzgsMjQgKzEwMjAsMTEgQEAgYm9vbCBQYXJzZU5hdHVyYWxOdW1iZXIoY29uc3QgOjpzdGQ6OnN0
cmluZyYgc3RyLCBJbnRlZ2VyKiBudW1iZXIpIHsKICAgY2hhciogZW5kOwogICAvLyBCaWdnZXN0
Q29udmVydGlibGUgaXMgdGhlIGxhcmdlc3QgaW50ZWdlciB0eXBlIHRoYXQgc3lzdGVtLXByb3Zp
ZGVkCiAgIC8vIHN0cmluZy10by1udW1iZXIgY29udmVyc2lvbiByb3V0aW5lcyBjYW4gcmV0dXJu
LgorICB1c2luZyBCaWdnZXN0Q29udmVydGlibGUgPSB1bnNpZ25lZCBsb25nIGxvbmc7ICAvLyBO
T0xJTlQKIAotIyBpZiBHVEVTVF9PU19XSU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCi0g
IC8vIE1TVkMgYW5kIEMrKyBCdWlsZGVyIGRlZmluZSBfX2ludDY0IGluc3RlYWQgb2YgdGhlIHN0
YW5kYXJkIGxvbmcgbG9uZy4KLSAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IEJpZ2dlc3RDb252
ZXJ0aWJsZTsKLSAgY29uc3QgQmlnZ2VzdENvbnZlcnRpYmxlIHBhcnNlZCA9IF9zdHJ0b3VpNjQo
c3RyLmNfc3RyKCksICZlbmQsIDEwKTsKLQotIyBlbHNlCi0KLSAgdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgQmlnZ2VzdENvbnZlcnRpYmxlOyAgLy8gTk9MSU5UCi0gIGNvbnN0IEJpZ2dlc3RD
b252ZXJ0aWJsZSBwYXJzZWQgPSBzdHJ0b3VsbChzdHIuY19zdHIoKSwgJmVuZCwgMTApOwotCi0j
IGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFkZWZpbmVkKF9fR05VQ19fKQotCisgIGNv
bnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBzdHJ0b3VsbChzdHIuY19zdHIoKSwgJmVu
ZCwgMTApOyAgLy8gTk9MSU5UCiAgIGNvbnN0IGJvb2wgcGFyc2Vfc3VjY2VzcyA9ICplbmQgPT0g
J1wwJyAmJiBlcnJubyA9PSAwOwogCi0gIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY29tcGls
ZSB0aW1lIGFzc2VydGlvbiB3aGVuIGl0IGlzCi0gIC8vIGF2YWlsYWJsZS4KICAgR1RFU1RfQ0hF
Q0tfKHNpemVvZihJbnRlZ2VyKSA8PSBzaXplb2YocGFyc2VkKSk7CiAKICAgY29uc3QgSW50ZWdl
ciByZXN1bHQgPSBzdGF0aWNfY2FzdDxJbnRlZ2VyPihwYXJzZWQpOwpAQCAtMTA1OSwxOCArMTA4
OCwxOCBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExp
c3RlbmVyIHsKICAgICAgIE1ha2VDb25uZWN0aW9uKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+
U29ja2V0V3JpdGVyKCkgeworICAgIH5Tb2NrZXRXcml0ZXIoKSBvdmVycmlkZSB7CiAgICAgICBp
ZiAoc29ja2ZkXyAhPSAtMSkKICAgICAgICAgQ2xvc2VDb25uZWN0aW9uKCk7CiAgICAgfQogCiAg
ICAgLy8gU2VuZHMgYSBzdHJpbmcgdG8gdGhlIHNvY2tldC4KLSAgICB2aXJ0dWFsIHZvaWQgU2Vu
ZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICAgIHZvaWQgU2VuZChjb25zdCBzdGQ6
OnN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGUgewogICAgICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8g
IT0gLTEpCiAgICAgICAgICAgPDwgIlNlbmQoKSBjYW4gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGVy
ZSBpcyBhIGNvbm5lY3Rpb24uIjsKIAotICAgICAgY29uc3QgaW50IGxlbiA9IHN0YXRpY19jYXN0
PGludD4obWVzc2FnZS5sZW5ndGgoKSk7Ci0gICAgICBpZiAod3JpdGUoc29ja2ZkXywgbWVzc2Fn
ZS5jX3N0cigpLCBsZW4pICE9IGxlbikgeworICAgICAgY29uc3QgYXV0byBsZW4gPSBzdGF0aWNf
Y2FzdDxzaXplX3Q+KG1lc3NhZ2UubGVuZ3RoKCkpOworICAgICAgaWYgKHdyaXRlKHNvY2tmZF8s
IG1lc3NhZ2UuY19zdHIoKSwgbGVuKSAhPSBzdGF0aWNfY2FzdDxzc2l6ZV90PihsZW4pKSB7CiAg
ICAgICAgIEdURVNUX0xPR18oV0FSTklORykKICAgICAgICAgICAgIDw8ICJzdHJlYW1fcmVzdWx0
X3RvOiBmYWlsZWQgdG8gc3RyZWFtIHRvICIKICAgICAgICAgICAgIDw8IGhvc3RfbmFtZV8gPDwg
IjoiIDw8IHBvcnRfbnVtXzsKQEAgLTEwODIsNyArMTExMSw3IEBAIGNsYXNzIFN0cmVhbWluZ0xp
c3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAgIHZvaWQgTWFrZUNv
bm5lY3Rpb24oKTsKIAogICAgIC8vIENsb3NlcyB0aGUgc29ja2V0LgotICAgIHZvaWQgQ2xvc2VD
b25uZWN0aW9uKCkgeworICAgIHZvaWQgQ2xvc2VDb25uZWN0aW9uKCkgb3ZlcnJpZGUgewogICAg
ICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8gIT0gLTEpCiAgICAgICAgICAgPDwgIkNsb3NlQ29ubmVj
dGlvbigpIGNhbiBiZSBjYWxsZWQgb25seSB3aGVuIHRoZXJlIGlzIGEgY29ubmVjdGlvbi4iOwog
CkBAIC0xMTA4LDExICsxMTM3LDExIEBAIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICBleHBsaWNpdCBTdHJlYW1pbmdMaXN0ZW5lcihB
YnN0cmFjdFNvY2tldFdyaXRlciogc29ja2V0X3dyaXRlcikKICAgICAgIDogc29ja2V0X3dyaXRl
cl8oc29ja2V0X3dyaXRlcikgeyBTdGFydCgpOyB9CiAKLSAgdm9pZCBPblRlc3RQcm9ncmFtU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLykgeworICB2b2lkIE9uVGVzdFByb2dy
YW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7CiAgICAg
U2VuZExuKCJldmVudD1UZXN0UHJvZ3JhbVN0YXJ0Iik7CiAgIH0KIAotICB2b2lkIE9uVGVzdFBy
b2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgeworICB2b2lkIE9uVGVzdFByb2dy
YW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGUgewogICAgIC8vIE5vdGUg
dGhhdCBHb29nbGUgVGVzdCBjdXJyZW50IG9ubHkgcmVwb3J0IGVsYXBzZWQgdGltZSBmb3IgZWFj
aAogICAgIC8vIHRlc3QgaXRlcmF0aW9uLCBub3QgZm9yIHRoZSBlbnRpcmUgdGVzdCBwcm9ncmFt
LgogICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1FbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29s
KHVuaXRfdGVzdC5QYXNzZWQoKSkpOwpAQCAtMTEyMSw0MiArMTE1MCw0NyBAQCBjbGFzcyBTdHJl
YW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICBzb2Nr
ZXRfd3JpdGVyXy0+Q2xvc2VDb25uZWN0aW9uKCk7CiAgIH0KIAotICB2b2lkIE9uVGVzdEl0ZXJh
dGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8sIGludCBpdGVyYXRpb24p
IHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90
ZXN0ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJy
aWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RJdGVyYXRpb25TdGFydCZpdGVyYXRpb249IiAr
CiAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhpdGVyYXRpb24pKTsKICAgfQogCi0gIHZv
aWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCAvKiBp
dGVyYXRpb24gKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qIGl0ZXJhdGlvbiAq
Lykgb3ZlcnJpZGUgewogICAgIFNlbmRMbigiZXZlbnQ9VGVzdEl0ZXJhdGlvbkVuZCZwYXNzZWQ9
IiArCiAgICAgICAgICAgIEZvcm1hdEJvb2wodW5pdF90ZXN0LlBhc3NlZCgpKSArICImZWxhcHNl
ZF90aW1lPSIgKwogICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90ZXN0LmVsYXBz
ZWRfdGltZSgpKSArICJtcyIpOwogICB9CiAKLSAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3Qg
VGVzdENhc2UmIHRlc3RfY2FzZSkgeworICAvLyBOb3RlIHRoYXQgImV2ZW50PVRlc3RDYXNlU3Rh
cnQiIGlzIGEgd2lyZSBmb3JtYXQgYW5kIGhhcyB0byByZW1haW4KKyAgLy8gImNhc2UiIGZvciBj
b21wYXRpYmlsdHkKKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3Rf
Y2FzZSkgb3ZlcnJpZGUgewogICAgIFNlbmRMbihzdGQ6OnN0cmluZygiZXZlbnQ9VGVzdENhc2VT
dGFydCZuYW1lPSIpICsgdGVzdF9jYXNlLm5hbWUoKSk7CiAgIH0KIAotICB2b2lkIE9uVGVzdENh
c2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgewotICAgIFNlbmRMbigiZXZlbnQ9VGVz
dENhc2VFbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29sKHRlc3RfY2FzZS5QYXNzZWQoKSkKLSAgICAg
ICAgICAgKyAiJmVsYXBzZWRfdGltZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5l
bGFwc2VkX3RpbWUoKSkKLSAgICAgICAgICAgKyAibXMiKTsKKyAgLy8gTm90ZSB0aGF0ICJldmVu
dD1UZXN0Q2FzZUVuZCIgaXMgYSB3aXJlIGZvcm1hdCBhbmQgaGFzIHRvIHJlbWFpbgorICAvLyAi
Y2FzZSIgZm9yIGNvbXBhdGliaWx0eQorICB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENh
c2UmIHRlc3RfY2FzZSkgb3ZlcnJpZGUgeworICAgIFNlbmRMbigiZXZlbnQ9VGVzdENhc2VFbmQm
cGFzc2VkPSIgKyBGb3JtYXRCb29sKHRlc3RfY2FzZS5QYXNzZWQoKSkgKworICAgICAgICAgICAi
JmVsYXBzZWRfdGltZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5lbGFwc2VkX3Rp
bWUoKSkgKworICAgICAgICAgICAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0U3RhcnQoY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJ
bmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oc3RkOjpzdHJpbmcoImV2ZW50
PVRlc3RTdGFydCZuYW1lPSIpICsgdGVzdF9pbmZvLm5hbWUoKSk7CiAgIH0KIAotICB2b2lkIE9u
VGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CisgIHZvaWQgT25UZXN0RW5kKGNv
bnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRl
c3RFbmQmcGFzc2VkPSIgKwogICAgICAgICAgICBGb3JtYXRCb29sKCh0ZXN0X2luZm8ucmVzdWx0
KCkpLT5QYXNzZWQoKSkgKwogICAgICAgICAgICAiJmVsYXBzZWRfdGltZT0iICsKICAgICAgICAg
ICAgU3RyZWFtYWJsZVRvU3RyaW5nKCh0ZXN0X2luZm8ucmVzdWx0KCkpLT5lbGFwc2VkX3RpbWUo
KSkgKyAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFy
dFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgeworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29u
c3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIG92ZXJyaWRlIHsKICAgICBjb25z
dCBjaGFyKiBmaWxlX25hbWUgPSB0ZXN0X3BhcnRfcmVzdWx0LmZpbGVfbmFtZSgpOwotICAgIGlm
IChmaWxlX25hbWUgPT0gTlVMTCkKLSAgICAgIGZpbGVfbmFtZSA9ICIiOworICAgIGlmIChmaWxl
X25hbWUgPT0gbnVsbHB0cikgZmlsZV9uYW1lID0gIiI7CiAgICAgU2VuZExuKCJldmVudD1UZXN0
UGFydFJlc3VsdCZmaWxlPSIgKyBVcmxFbmNvZGUoZmlsZV9uYW1lKSArCiAgICAgICAgICAgICIm
bGluZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIo
KSkgKwogICAgICAgICAgICAiJm1lc3NhZ2U9IiArIFVybEVuY29kZSh0ZXN0X3BhcnRfcmVzdWx0
Lm1lc3NhZ2UoKSkpOwpAQCAtMTE3Miw3ICsxMjA2LDcgQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVu
ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAKICAgc3RkOjpzdHJpbmcgRm9y
bWF0Qm9vbChib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICIxIiA6ICIwIjsgfQogCi0gIGNv
bnN0IHNjb3BlZF9wdHI8QWJzdHJhY3RTb2NrZXRXcml0ZXI+IHNvY2tldF93cml0ZXJfOworICBj
b25zdCBzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTb2NrZXRXcml0ZXI+IHNvY2tldF93cml0ZXJf
OwogCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3RyZWFtaW5nTGlzdGVuZXIp
OwogfTsgIC8vIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyCkBAIC0xMTg0LDQgKzEyMTgsNCBAQCBj
bGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsK
IAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MQogCi0jZW5kaWYg
IC8vIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVT
VF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtbWF0Y2hlcnMuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxMDRlYmFiMWJhOWFmMDYzMjdmYzk0
YzBhMDM4YjY4MDZkNDIwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC1tYXRjaGVycy5jYwpAQCAtMCwwICsxLDk3IEBACisvLyBDb3B5cmlnaHQg
MjAwNywgR29vZ2xlIEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4K
Ky8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFRoZSBHb29nbGUgQysrIFRlc3Rp
bmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKKy8vCisvLyBUaGlzIGZpbGUg
aW1wbGVtZW50cyBqdXN0IGVub3VnaCBvZiB0aGUgbWF0Y2hlciBpbnRlcmZhY2UgdG8gYWxsb3cK
Ky8vIEVYUEVDVF9ERUFUSCBhbmQgZnJpZW5kcyB0byBhY2NlcHQgYSBtYXRjaGVyIGFyZ3VtZW50
LgorCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKKyNpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0
Y2hlcnMuaCIKKworI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHRlc3RpbmcgeworCisv
LyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYg
d2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5n
Jj46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRoaXMgPSBFcShzKTsgfQorCisv
LyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYg
d2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5n
Jj46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeworICAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMp
KTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgc3RkOjpzdHJp
bmcgd2hvc2UgdmFsdWUgaXMgZXF1YWwgdG8KKy8vIHMuCitNYXRjaGVyPHN0ZDo6c3RyaW5nPjo6
TWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcykgeyAqdGhpcyA9IEVxKHMpOyB9CisKKy8vIENv
bnN0cnVjdHMgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0ZDo6c3RyaW5nIHdob3NlIHZhbHVl
IGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxzdGQ6OnN0cmluZz46Ok1hdGNoZXIoY29uc3Qg
Y2hhciogcykgeyAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMpKTsgfQorCisjaWYgR1RFU1RfSU5U
RVJOQUxfSEFTX1NUUklOR19WSUVXCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01h
dGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihjb25zdCBzdGQ6OnN0
cmluZyYgcykgeworICAqdGhpcyA9IEVxKHMpOworfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hl
ciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1
YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihj
b25zdCBjaGFyKiBzKSB7CisgICp0aGlzID0gRXEoc3RkOjpzdHJpbmcocykpOworfQorCisvLyBD
b25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9z
ZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmlu
Z1ZpZXcmPjo6TWF0Y2hlcihpbnRlcm5hbDo6U3RyaW5nVmlldyBzKSB7CisgICp0aGlzID0gRXEo
c3RkOjpzdHJpbmcocykpOworfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBTdHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxp
bnRlcm5hbDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRo
aXMgPSBFcShzKTsgfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBT
dHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxpbnRlcm5h
bDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeworICAqdGhpcyA9IEVxKHN0
ZDo6c3RyaW5nKHMpKTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVz
IGEgU3RyaW5nVmlldyB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0bworLy8gcy4KK01hdGNoZXI8aW50
ZXJuYWw6OlN0cmluZ1ZpZXc+OjpNYXRjaGVyKGludGVybmFsOjpTdHJpbmdWaWV3IHMpIHsKKyAg
KnRoaXMgPSBFcShzdGQ6OnN0cmluZyhzKSk7Cit9CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFM
X0hBU19TVFJJTkdfVklFVworCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwppbmRleCBmZWNiNWQxMWMyMTI5NmE5MTgxYTEx
MjgwMjI2MDY3YjY0M2VkZDA1Li4zZjM5ZjcxYzA3NDU5YjVjMDExMDU3NzcxMTM0ZTVjMmI5OGNl
OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwpAQCAtMzEs
MTYgKzMxLDIxIEBACiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCiAj
aW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxj
c3RkaW50PgogI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgogCiAjaWYgR1RF
U1RfT1NfV0lORE9XUwogIyBpbmNsdWRlIDx3aW5kb3dzLmg+CiAjIGluY2x1ZGUgPGlvLmg+CiAj
IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjIGluY2x1ZGUgPG1hcD4gIC8vIFVzZWQgaW4gVGhyZWFk
TG9jYWwuCisjIGlmZGVmIF9NU0NfVkVSCisjICBpbmNsdWRlIDxjcnRkYmcuaD4KKyMgZW5kaWYg
IC8vIF9NU0NfVkVSCiAjZWxzZQogIyBpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZiAgLy8gR1RF
U1RfT1NfV0lORE9XUwpAQCAtNTEsNiArNTYsMTQgQEAKICMgaW5jbHVkZSA8bWFjaC92bV9tYXAu
aD4KICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKKyNpZiBHVEVTVF9PU19EUkFHT05GTFkgfHwg
R1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgXAorICAgIEdURVNU
X09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECisjIGluY2x1ZGUgPHN5cy9zeXNjdGwuaD4K
KyMgaWYgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1Nf
R05VX0tGUkVFQlNECisjICBpbmNsdWRlIDxzeXMvdXNlci5oPgorIyBlbmRpZgorI2VuZGlmCisK
ICNpZiBHVEVTVF9PU19RTlgKICMgaW5jbHVkZSA8ZGV2Y3RsLmg+CiAjIGluY2x1ZGUgPGZjbnRs
Lmg+CkBAIC0xMDUsNyArMTE4LDcgQEAgVCBSZWFkUHJvY0ZpbGVGaWVsZChjb25zdCBzdGQ6OnN0
cmluZyYgZmlsZW5hbWUsIGludCBmaWVsZCkgewogc2l6ZV90IEdldFRocmVhZENvdW50KCkgewog
ICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9CiAgICAgICAoTWVzc2FnZSgpIDw8ICIvcHJv
Yy8iIDw8IGdldHBpZCgpIDw8ICIvc3RhdCIpLkdldFN0cmluZygpOwotICByZXR1cm4gUmVhZFBy
b2NGaWxlRmllbGQ8aW50PihmaWxlbmFtZSwgMTkpOworICByZXR1cm4gUmVhZFByb2NGaWxlRmll
bGQ8c2l6ZV90PihmaWxlbmFtZSwgMTkpOwogfQogCiAjZWxpZiBHVEVTVF9PU19NQUMKQEAgLTEy
Nyw2ICsxNDAsODIgQEAgc2l6ZV90IEdldFRocmVhZENvdW50KCkgewogICB9CiB9CiAKKyNlbGlm
IEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX0dOVV9L
RlJFRUJTRCB8fCBcCisgICAgICBHVEVTVF9PU19ORVRCU0QKKworI2lmIEdURVNUX09TX05FVEJT
RAorI3VuZGVmIEtFUk5fUFJPQworI2RlZmluZSBLRVJOX1BST0MgS0VSTl9QUk9DMgorI2RlZmlu
ZSBraW5mb19wcm9jIGtpbmZvX3Byb2MyCisjZW5kaWYKKworI2lmIEdURVNUX09TX0RSQUdPTkZM
WQorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua3BfbnRocmVhZHMpCisjZWxpZiBHVEVTVF9PU19G
UkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRAorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Au
a2lfbnVtdGhyZWFkcykKKyNlbGlmIEdURVNUX09TX05FVEJTRAorI2RlZmluZSBLUF9OTFdQKGtw
KSAoa3AucF9ubHdwcykKKyNlbmRpZgorCisvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhyZWFk
cyBydW5uaW5nIGluIHRoZSBwcm9jZXNzLCBvciAwIHRvIGluZGljYXRlIHRoYXQKKy8vIHdlIGNh
bm5vdCBkZXRlY3QgaXQuCitzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CisgIGludCBtaWJbXSA9
IHsKKyAgICBDVExfS0VSTiwKKyAgICBLRVJOX1BST0MsCisgICAgS0VSTl9QUk9DX1BJRCwKKyAg
ICBnZXRwaWQoKSwKKyNpZiBHVEVTVF9PU19ORVRCU0QKKyAgICBzaXplb2Yoc3RydWN0IGtpbmZv
X3Byb2MpLAorICAgIDEsCisjZW5kaWYKKyAgfTsKKyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1p
YikgLyBzaXplb2YobWliWzBdKTsKKyAgc3RydWN0IGtpbmZvX3Byb2MgaW5mbzsKKyAgc2l6ZV90
IHNpemUgPSBzaXplb2YoaW5mbyk7CisgIGlmIChzeXNjdGwobWliLCBtaWJsZW4sICZpbmZvLCAm
c2l6ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorICByZXR1cm4gc3RhdGljX2Nh
c3Q8c2l6ZV90PihLUF9OTFdQKGluZm8pKTsKK30KKyNlbGlmIEdURVNUX09TX09QRU5CU0QKKwor
Ly8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgcnVubmluZyBpbiB0aGUgcHJvY2Vzcywg
b3IgMCB0byBpbmRpY2F0ZSB0aGF0CisvLyB3ZSBjYW5ub3QgZGV0ZWN0IGl0Lgorc2l6ZV90IEdl
dFRocmVhZENvdW50KCkgeworICBpbnQgbWliW10gPSB7CisgICAgQ1RMX0tFUk4sCisgICAgS0VS
Tl9QUk9DLAorICAgIEtFUk5fUFJPQ19QSUQgfCBLRVJOX1BST0NfU0hPV19USFJFQURTLAorICAg
IGdldHBpZCgpLAorICAgIHNpemVvZihzdHJ1Y3Qga2luZm9fcHJvYyksCisgICAgMCwKKyAgfTsK
KyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikgLyBzaXplb2YobWliWzBdKTsKKworICAvLyBn
ZXQgbnVtYmVyIG9mIHN0cnVjdHMKKyAgc2l6ZV90IHNpemU7CisgIGlmIChzeXNjdGwobWliLCBt
aWJsZW4sIE5VTEwsICZzaXplLCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAg
bWliWzVdID0gc3RhdGljX2Nhc3Q8aW50PihzaXplIC8gc3RhdGljX2Nhc3Q8c2l6ZV90PihtaWJb
NF0pKTsKKworICAvLyBwb3B1bGF0ZSBhcnJheSBvZiBzdHJ1Y3RzCisgIHN0cnVjdCBraW5mb19w
cm9jIGluZm9bbWliWzVdXTsKKyAgaWYgKHN5c2N0bChtaWIsIG1pYmxlbiwgJmluZm8sICZzaXpl
LCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gZXhjbHVkZSBlbXB0eSBt
ZW1iZXJzCisgIHNpemVfdCBudGhyZWFkcyA9IDA7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZSAvIHN0YXRpY19jYXN0PHNpemVfdD4obWliWzRdKTsgaSsrKSB7CisgICAgaWYgKGluZm9b
aV0ucF90aWQgIT0gLTEpCisgICAgICBudGhyZWFkcysrOworICB9CisgIHJldHVybiBudGhyZWFk
czsKK30KKwogI2VsaWYgR1RFU1RfT1NfUU5YCiAKIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0
aHJlYWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nlc3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhhdApAQCAt
MTM4LDcgKzIyNyw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICAgfQogICBwcm9jZnNf
aW5mbyBwcm9jZXNzX2luZm87CiAgIGNvbnN0IGludCBzdGF0dXMgPQotICAgICAgZGV2Y3RsKGZk
LCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6ZW9mKHByb2Nlc3NfaW5mbyksIE5V
TEwpOworICAgICAgZGV2Y3RsKGZkLCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywgc2l6
ZW9mKHByb2Nlc3NfaW5mbyksIG51bGxwdHIpOwogICBjbG9zZShmZCk7CiAgIGlmIChzdGF0dXMg
PT0gRU9LKSB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvY2Vzc19pbmZvLm51
bV90aHJlYWRzKTsKQEAgLTE1Miw3ICsyNDEsNyBAQCBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7
CiBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAgIHN0cnVjdCBwcm9jZW50cnk2NCBlbnRyeTsK
ICAgcGlkX3QgcGlkID0gZ2V0cGlkKCk7Ci0gIGludCBzdGF0dXMgPSBnZXRwcm9jczY0KCZlbnRy
eSwgc2l6ZW9mKGVudHJ5KSwgTlVMTCwgMCwgJnBpZCwgMSk7CisgIGludCBzdGF0dXMgPSBnZXRw
cm9jczY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgbnVsbHB0ciwgMCwgJnBpZCwgMSk7CiAgIGlm
IChzdGF0dXMgPT0gMSkgewogICAgIHJldHVybiBlbnRyeS5waV90aGNvdW50OwogICB9IGVsc2Ug
ewpAQCAtMTkyLDcgKzI4MSw3IEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICNpZiBHVEVT
VF9JU19USFJFQURTQUZFICYmIEdURVNUX09TX1dJTkRPV1MKIAogdm9pZCBTbGVlcE1pbGxpc2Vj
b25kcyhpbnQgbikgewotICA6OlNsZWVwKG4pOworICA6OlNsZWVwKHN0YXRpY19jYXN0PERXT1JE
PihuKSk7CiB9CiAKIEF1dG9IYW5kbGU6OkF1dG9IYW5kbGUoKQpAQCAtMjMwLDE1ICszMTksMTUg
QEAgdm9pZCBBdXRvSGFuZGxlOjpSZXNldChIQU5ETEUgaGFuZGxlKSB7CiBib29sIEF1dG9IYW5k
bGU6OklzQ2xvc2VhYmxlKCkgY29uc3QgewogICAvLyBEaWZmZXJlbnQgV2luZG93cyBBUElzIG1h
eSB1c2UgZWl0aGVyIG9mIHRoZXNlIHZhbHVlcyB0byByZXByZXNlbnQgYW4KICAgLy8gaW52YWxp
ZCBoYW5kbGUuCi0gIHJldHVybiBoYW5kbGVfICE9IE5VTEwgJiYgaGFuZGxlXyAhPSBJTlZBTElE
X0hBTkRMRV9WQUxVRTsKKyAgcmV0dXJuIGhhbmRsZV8gIT0gbnVsbHB0ciAmJiBoYW5kbGVfICE9
IElOVkFMSURfSEFORExFX1ZBTFVFOwogfQogCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbigp
Ci0gICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChOVUxMLCAgIC8vIERlZmF1bHQgc2VjdXJpdHkg
YXR0cmlidXRlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsICAgLy8gRG8gbm90
IHJlc2V0IGF1dG9tYXRpY2FsbHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwg
IC8vIEluaXRpYWxseSB1bnNldC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKSB7
ICAvLyBBbm9ueW1vdXMgZXZlbnQuCi0gIEdURVNUX0NIRUNLXyhldmVudF8uR2V0KCkgIT0gTlVM
TCk7CisgICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChudWxscHRyLCAgICAgLy8gRGVmYXVsdCBz
ZWN1cml0eSBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwgICAg
ICAgIC8vIERvIG5vdCByZXNldCBhdXRvbWF0aWNhbGx5LgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRkFMU0UsICAgICAgIC8vIEluaXRpYWxseSB1bnNldC4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG51bGxwdHIpKSB7ICAvLyBBbm9ueW1vdXMgZXZlbnQuCisgIEdURVNUX0NIRUNL
XyhldmVudF8uR2V0KCkgIT0gbnVsbHB0cik7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpOb3Rp
ZnkoKSB7CkBAIC0yNjEsMTMgKzM1MCwxMCBAQCBNdXRleDo6TXV0ZXgoKQogTXV0ZXg6On5NdXRl
eCgpIHsKICAgLy8gU3RhdGljIG11dGV4ZXMgYXJlIGxlYWtlZCBpbnRlbnRpb25hbGx5LiBJdCBp
cyBub3QgdGhyZWFkLXNhZmUgdG8gdHJ5CiAgIC8vIHRvIGNsZWFuIHRoZW0gdXAuCi0gIC8vIEZJ
WE1FOiBTd2l0Y2ggdG8gU2xpbSBSZWFkZXIvV3JpdGVyIChTUlcpIExvY2tzLCB3aGljaCByZXF1
aXJlcwotICAvLyBub3RoaW5nIHRvIGNsZWFuIGl0IHVwIGJ1dCBpcyBhdmFpbGFibGUgb25seSBv
biBWaXN0YSBhbmQgbGF0ZXIuCi0gIC8vIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVz
L3dpbmRvd3MvZGVza3RvcC9TeW5jL3NsaW0tcmVhZGVyLXdyaXRlci0tc3J3LS1sb2NrcwogICBp
ZiAodHlwZV8gPT0ga0R5bmFtaWMpIHsKICAgICA6OkRlbGV0ZUNyaXRpY2FsU2VjdGlvbihjcml0
aWNhbF9zZWN0aW9uXyk7CiAgICAgZGVsZXRlIGNyaXRpY2FsX3NlY3Rpb25fOwotICAgIGNyaXRp
Y2FsX3NlY3Rpb25fID0gTlVMTDsKKyAgICBjcml0aWNhbF9zZWN0aW9uXyA9IG51bGxwdHI7CiAg
IH0KIH0KIApAQCAtMjk2LDYgKzM4Miw3IEBAIHZvaWQgTXV0ZXg6OkFzc2VydEhlbGQoKSB7CiAK
IG5hbWVzcGFjZSB7CiAKKyNpZmRlZiBfTVNDX1ZFUgogLy8gVXNlIHRoZSBSQUlJIGlkaW9tIHRv
IGZsYWcgbWVtIGFsbG9jcyB0aGF0IGFyZSBpbnRlbnRpb25hbGx5IG5ldmVyCiAvLyBkZWFsbG9j
YXRlZC4gVGhlIG1vdGl2YXRpb24gaXMgdG8gc2lsZW5jZSB0aGUgZmFsc2UgcG9zaXRpdmUgbWVt
IGxlYWtzCiAvLyB0aGF0IGFyZSByZXBvcnRlZCBieSB0aGUgZGVidWcgdmVyc2lvbiBvZiBNUydz
IENSVCB3aGljaCBjYW4gb25seSBkZXRlY3QKQEAgLTMwOCwxOSArMzk1LDE1IEBAIGNsYXNzIE1l
bW9yeUlzTm90RGVhbGxvY2F0ZWQKIHsKICBwdWJsaWM6CiAgIE1lbW9yeUlzTm90RGVhbGxvY2F0
ZWQoKSA6IG9sZF9jcnRkYmdfZmxhZ18oMCkgewotI2lmZGVmIF9NU0NfVkVSCiAgICAgb2xkX2Ny
dGRiZ19mbGFnXyA9IF9DcnRTZXREYmdGbGFnKF9DUlREQkdfUkVQT1JUX0ZMQUcpOwogICAgIC8v
IFNldCBoZWFwIGFsbG9jYXRpb24gYmxvY2sgdHlwZSB0byBfSUdOT1JFX0JMT0NLIHNvIHRoYXQg
TVMgZGVidWcgQ1JUCiAgICAgLy8gZG9lc24ndCByZXBvcnQgbWVtIGxlYWsgaWYgdGhlcmUncyBu
byBtYXRjaGluZyBkZWFsbG9jYXRpb24uCiAgICAgX0NydFNldERiZ0ZsYWcob2xkX2NydGRiZ19m
bGFnXyAmIH5fQ1JUREJHX0FMTE9DX01FTV9ERik7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9
CiAKICAgfk1lbW9yeUlzTm90RGVhbGxvY2F0ZWQoKSB7Ci0jaWZkZWYgX01TQ19WRVIKICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBfQ1JUREJHX0FMTE9DX01FTV9ERiBmbGFnCiAgICAgX0Ny
dFNldERiZ0ZsYWcob2xkX2NydGRiZ19mbGFnXyk7Ci0jZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9
CiAKICBwcml2YXRlOgpAQCAtMzI4LDYgKzQxMSw3IEBAIGNsYXNzIE1lbW9yeUlzTm90RGVhbGxv
Y2F0ZWQKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKE1lbW9yeUlzTm90RGVh
bGxvY2F0ZWQpOwogfTsKKyNlbmRpZiAgLy8gX01TQ19WRVIKIAogfSAgLy8gbmFtZXNwYWNlCiAK
QEAgLTM0Myw3ICs0MjcsOSBAQCB2b2lkIE11dGV4OjpUaHJlYWRTYWZlTGF6eUluaXQoKSB7CiAg
ICAgICAgIG93bmVyX3RocmVhZF9pZF8gPSAwOwogICAgICAgICB7CiAgICAgICAgICAgLy8gVXNl
IFJBSUkgdG8gZmxhZyB0aGF0IGZvbGxvd2luZyBtZW0gYWxsb2MgaXMgbmV2ZXIgZGVhbGxvY2F0
ZWQuCisjaWZkZWYgX01TQ19WRVIKICAgICAgICAgICBNZW1vcnlJc05vdERlYWxsb2NhdGVkIG1l
bW9yeV9pc19ub3RfZGVhbGxvY2F0ZWQ7CisjZW5kaWYgIC8vIF9NU0NfVkVSCiAgICAgICAgICAg
Y3JpdGljYWxfc2VjdGlvbl8gPSBuZXcgQ1JJVElDQUxfU0VDVElPTjsKICAgICAgICAgfQogICAg
ICAgICA6OkluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbl8pOwpAQCAt
Mzg0LDE3ICs0NzAsMTYgQEAgY2xhc3MgVGhyZWFkV2l0aFBhcmFtU3VwcG9ydCA6IHB1YmxpYyBU
aHJlYWRXaXRoUGFyYW1CYXNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZp
Y2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgVGhyZWFkTWFpblBhcmFtKiBwYXJhbSA9
IG5ldyBUaHJlYWRNYWluUGFyYW0ocnVubmFibGUsIHRocmVhZF9jYW5fc3RhcnQpOwogICAgIERX
T1JEIHRocmVhZF9pZDsKLSAgICAvLyBGSVhNRTogQ29uc2lkZXIgdG8gdXNlIF9iZWdpbnRocmVh
ZGV4IGluc3RlYWQuCiAgICAgSEFORExFIHRocmVhZF9oYW5kbGUgPSA6OkNyZWF0ZVRocmVhZCgK
LSAgICAgICAgTlVMTCwgICAgLy8gRGVmYXVsdCBzZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAg
Ly8gRGVmYXVsdCBzdGFjayBzaXplLgorICAgICAgICBudWxscHRyLCAgLy8gRGVmYXVsdCBzZWN1
cml0eS4KKyAgICAgICAgMCwgICAgICAgIC8vIERlZmF1bHQgc3RhY2sgc2l6ZS4KICAgICAgICAg
JlRocmVhZFdpdGhQYXJhbVN1cHBvcnQ6OlRocmVhZE1haW4sCi0gICAgICAgIHBhcmFtLCAgIC8v
IFBhcmFtZXRlciB0byBUaHJlYWRNYWluU3RhdGljCi0gICAgICAgIDB4MCwgICAgIC8vIERlZmF1
bHQgY3JlYXRpb24gZmxhZ3MuCisgICAgICAgIHBhcmFtLCAgICAgICAgLy8gUGFyYW1ldGVyIHRv
IFRocmVhZE1haW5TdGF0aWMKKyAgICAgICAgMHgwLCAgICAgICAgICAvLyBEZWZhdWx0IGNyZWF0
aW9uIGZsYWdzLgogICAgICAgICAmdGhyZWFkX2lkKTsgIC8vIE5lZWQgYSB2YWxpZCBwb2ludGVy
IGZvciB0aGUgY2FsbCB0byB3b3JrIHVuZGVyIFdpbjk4LgotICAgIEdURVNUX0NIRUNLXyh0aHJl
YWRfaGFuZGxlICE9IE5VTEwpIDw8ICJDcmVhdGVUaHJlYWQgZmFpbGVkIHdpdGggZXJyb3IgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDo6R2V0TGFzdEVycm9y
KCkgPDwgIi4iOwotICAgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpIHsKKyAgICBHVEVTVF9D
SEVDS18odGhyZWFkX2hhbmRsZSAhPSBudWxscHRyKQorICAgICAgICA8PCAiQ3JlYXRlVGhyZWFk
IGZhaWxlZCB3aXRoIGVycm9yICIgPDwgOjpHZXRMYXN0RXJyb3IoKSA8PCAiLiI7CisgICAgaWYg
KHRocmVhZF9oYW5kbGUgPT0gbnVsbHB0cikgewogICAgICAgZGVsZXRlIHBhcmFtOwogICAgIH0K
ICAgICByZXR1cm4gdGhyZWFkX2hhbmRsZTsKQEAgLTQwNiwxNSArNDkxLDE1IEBAIGNsYXNzIFRo
cmVhZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgICAg
ICAgIDogcnVubmFibGVfKHJ1bm5hYmxlKSwKICAgICAgICAgICB0aHJlYWRfY2FuX3N0YXJ0Xyh0
aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgfQotICAgIHNjb3BlZF9wdHI8UnVubmFibGU+IHJ1bm5h
YmxlXzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVubmFibGU+IHJ1bm5hYmxlXzsKICAgICAvLyBE
b2VzIG5vdCBvd24uCiAgICAgTm90aWZpY2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0XzsKICAgfTsK
IAogICBzdGF0aWMgRFdPUkQgV0lOQVBJIFRocmVhZE1haW4odm9pZCogcHRyKSB7CiAgICAgLy8g
VHJhbnNmZXJzIG93bmVyc2hpcC4KLSAgICBzY29wZWRfcHRyPFRocmVhZE1haW5QYXJhbT4gcGFy
YW0oc3RhdGljX2Nhc3Q8VGhyZWFkTWFpblBhcmFtKj4ocHRyKSk7Ci0gICAgaWYgKHBhcmFtLT50
aHJlYWRfY2FuX3N0YXJ0XyAhPSBOVUxMKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRNYWlu
UGFyYW0+IHBhcmFtKHN0YXRpY19jYXN0PFRocmVhZE1haW5QYXJhbSo+KHB0cikpOworICAgIGlm
IChwYXJhbS0+dGhyZWFkX2Nhbl9zdGFydF8gIT0gbnVsbHB0cikKICAgICAgIHBhcmFtLT50aHJl
YWRfY2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlvbigpOwogICAgIHBhcmFtLT5ydW5uYWJs
ZV8tPlJ1bigpOwogICAgIHJldHVybiAwOwpAQCAtNDUzLDYgKzUzOCw5IEBAIGNsYXNzIFRocmVh
ZExvY2FsUmVnaXN0cnlJbXBsIHsKICAgLy8gUmV0dXJucyBhIHZhbHVlIHRoYXQgY2FuIGJlIHVz
ZWQgdG8gaWRlbnRpZnkgdGhlIHRocmVhZCBmcm9tIG90aGVyIHRocmVhZHMuCiAgIHN0YXRpYyBU
aHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSogR2V0VmFsdWVPbkN1cnJlbnRUaHJlYWQoCiAgICAg
ICBjb25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgeworI2lmZGVm
IF9NU0NfVkVSCisgICAgTWVtb3J5SXNOb3REZWFsbG9jYXRlZCBtZW1vcnlfaXNfbm90X2RlYWxs
b2NhdGVkOworI2VuZGlmICAvLyBfTVNDX1ZFUgogICAgIERXT1JEIGN1cnJlbnRfdGhyZWFkID0g
OjpHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBNdXRleExvY2sgbG9jaygmbXV0ZXhfKTsKICAg
ICBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBjb25zdCB0aHJlYWRfdG9fdGhyZWFkX2xvY2FscyA9
CkBAIC00NzIsNyArNTYwLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogICAg
ICAgICAgIHRocmVhZF9sb2NhbF92YWx1ZXMKICAgICAgICAgICAgICAgLmluc2VydChzdGQ6Om1h
a2VfcGFpcigKICAgICAgICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9pbnN0YW5jZSwKLSAgICAg
ICAgICAgICAgICAgIGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+KAorICAg
ICAgICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNl
PigKICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfaW5zdGFuY2UtPk5ld1ZhbHVl
Rm9yQ3VycmVudFRocmVhZCgpKSkpCiAgICAgICAgICAgICAgIC5maXJzdDsKICAgICB9CkBAIC00
ODEsNyArNTY5LDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewogCiAgIHN0YXRp
YyB2b2lkIE9uVGhyZWFkTG9jYWxEZXN0cm95ZWQoCiAgICAgICBjb25zdCBUaHJlYWRMb2NhbEJh
c2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgewotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8
VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBzdGQ6OnZl
Y3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVf
aG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkTG9jYWxWYWx1ZXMgZGF0YSBzdHJ1
Y3R1cmUgd2hpbGUgaG9sZGluZyB0aGUgbG9jaywgYnV0CiAgICAgLy8gZGVmZXIgdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMuCiAgICAgewpAQCAtNTA5
LDcgKzU5Nyw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsKIAogICBzdGF0aWMg
dm9pZCBPblRocmVhZEV4aXQoRFdPUkQgdGhyZWFkX2lkKSB7CiAgICAgR1RFU1RfQ0hFQ0tfKHRo
cmVhZF9pZCAhPSAwKSA8PCA6OkdldExhc3RFcnJvcigpOwotICAgIHN0ZDo6dmVjdG9yPGxpbmtl
ZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKKyAgICBz
dGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4g
dmFsdWVfaG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhyZWFkSWRUb1RocmVhZExvY2Fs
cyBkYXRhIHN0cnVjdHVyZSB3aGlsZSBob2xkaW5nIHRoZQogICAgIC8vIGxvY2ssIGJ1dCBkZWZl
ciB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlcy4KICAg
ICB7CkBAIC01MzYsNyArNjI0LDggQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3RyeUltcGwgewog
IHByaXZhdGU6CiAgIC8vIEluIGEgcGFydGljdWxhciB0aHJlYWQsIG1hcHMgYSBUaHJlYWRMb2Nh
bCBvYmplY3QgdG8gaXRzIHZhbHVlLgogICB0eXBlZGVmIHN0ZDo6bWFwPGNvbnN0IFRocmVhZExv
Y2FsQmFzZSosCi0gICAgICAgICAgICAgICAgICAgbGlua2VkX3B0cjxUaHJlYWRMb2NhbFZhbHVl
SG9sZGVyQmFzZT4gPiBUaHJlYWRMb2NhbFZhbHVlczsKKyAgICAgICAgICAgICAgICAgICBzdGQ6
OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4KKyAgICAgIFRocmVhZExv
Y2FsVmFsdWVzOwogICAvLyBTdG9yZXMgYWxsIFRocmVhZElkVG9UaHJlYWRMb2NhbHMgaGF2aW5n
IHZhbHVlcyBpbiBhIHRocmVhZCwgaW5kZXhlZCBieQogICAvLyB0aHJlYWQncyBJRC4KICAgdHlw
ZWRlZiBzdGQ6Om1hcDxEV09SRCwgVGhyZWFkTG9jYWxWYWx1ZXM+IFRocmVhZElkVG9UaHJlYWRM
b2NhbHM7CkBAIC01NTEsMTggKzY0MCwxNyBAQCBjbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1w
bCB7CiAgICAgSEFORExFIHRocmVhZCA9IDo6T3BlblRocmVhZChTWU5DSFJPTklaRSB8IFRIUkVB
RF9RVUVSWV9JTkZPUk1BVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX2lkKTsKLSAgICBH
VEVTVF9DSEVDS18odGhyZWFkICE9IE5VTEwpOworICAgIEdURVNUX0NIRUNLXyh0aHJlYWQgIT0g
bnVsbHB0cik7CiAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGEgdmFsaWQgdGhyZWFkIElEIHBvaW50
ZXIgaW50byBDcmVhdGVUaHJlYWQgZm9yIGl0CiAgICAgLy8gdG8gd29yayBjb3JyZWN0bHkgdW5k
ZXIgV2luOTguCiAgICAgRFdPUkQgd2F0Y2hlcl90aHJlYWRfaWQ7CiAgICAgSEFORExFIHdhdGNo
ZXJfdGhyZWFkID0gOjpDcmVhdGVUaHJlYWQoCi0gICAgICAgIE5VTEwsICAgLy8gRGVmYXVsdCBz
ZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAvLyBEZWZhdWx0IHN0YWNrIHNpemUKKyAgICAgICAg
bnVsbHB0ciwgIC8vIERlZmF1bHQgc2VjdXJpdHkuCisgICAgICAgIDAsICAgICAgICAvLyBEZWZh
dWx0IHN0YWNrIHNpemUKICAgICAgICAgJlRocmVhZExvY2FsUmVnaXN0cnlJbXBsOjpXYXRjaGVy
VGhyZWFkRnVuYywKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxMUFZPSUQ+KG5ldyBUaHJlYWRJ
ZEFuZEhhbmRsZSh0aHJlYWRfaWQsIHRocmVhZCkpLAotICAgICAgICBDUkVBVEVfU1VTUEVOREVE
LAotICAgICAgICAmd2F0Y2hlcl90aHJlYWRfaWQpOwotICAgIEdURVNUX0NIRUNLXyh3YXRjaGVy
X3RocmVhZCAhPSBOVUxMKTsKKyAgICAgICAgQ1JFQVRFX1NVU1BFTkRFRCwgJndhdGNoZXJfdGhy
ZWFkX2lkKTsKKyAgICBHVEVTVF9DSEVDS18od2F0Y2hlcl90aHJlYWQgIT0gbnVsbHB0cik7CiAg
ICAgLy8gR2l2ZSB0aGUgd2F0Y2hlciB0aHJlYWQgdGhlIHNhbWUgcHJpb3JpdHkgYXMgb3VycyB0
byBhdm9pZCBiZWluZwogICAgIC8vIGJsb2NrZWQgYnkgaXQuCiAgICAgOjpTZXRUaHJlYWRQcmlv
cml0eSh3YXRjaGVyX3RocmVhZCwKQEAgLTU4Nyw3ICs2NzUsOSBAQCBjbGFzcyBUaHJlYWRMb2Nh
bFJlZ2lzdHJ5SW1wbCB7CiAgIC8vIFJldHVybnMgbWFwIG9mIHRocmVhZCBsb2NhbCBpbnN0YW5j
ZXMuCiAgIHN0YXRpYyBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBHZXRUaHJlYWRMb2NhbHNNYXBM
b2NrZWQoKSB7CiAgICAgbXV0ZXhfLkFzc2VydEhlbGQoKTsKKyNpZmRlZiBfTVNDX1ZFUgogICAg
IE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQgbWVtb3J5X2lzX25vdF9kZWFsbG9jYXRlZDsKKyNlbmRp
ZiAgLy8gX01TQ19WRVIKICAgICBzdGF0aWMgVGhyZWFkSWRUb1RocmVhZExvY2FscyogbWFwID0g
bmV3IFRocmVhZElkVG9UaHJlYWRMb2NhbHMoKTsKICAgICByZXR1cm4gbWFwOwogICB9CkBAIC02
MzAsNyArNzIwLDcgQEAgUkU6On5SRSgpIHsKICAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihwYXR0
ZXJuXykpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBt
YXRjaGVzIHRoZSBlbnRpcmUgc3RyLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJl
Z3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgogYm9vbCBSRTo6RnVs
bE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFs
aWRfKSByZXR1cm4gZmFsc2U7CiAKQEAgLTYzOCw4ICs3MjgsOCBAQCBib29sIFJFOjpGdWxsTWF0
Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlZ2V4ZWMoJnJl
LmZ1bGxfcmVnZXhfLCBzdHIsIDEsICZtYXRjaCwgMCkgPT0gMDsKIH0KIAotLy8gUmV0dXJucyB0
cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIK
LS8vIChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkg
aWYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2YKKy8vIHN0ciAo
aW5jbHVkaW5nIHN0ciBpdHNlbGYpLgogYm9vbCBSRTo6UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIq
IHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUuaXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7
CiAKQEAgLTY3OSwxNCArNzY5LDE0IEBAIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgp
IHsKIAogI2VsaWYgR1RFU1RfVVNFU19TSU1QTEVfUkUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBj
aCBhcHBlYXJzIGFueXdoZXJlIGluIHN0ciAoZXhjbHVkaW5nIHRoZQorLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIGNoIGFwcGVhcnMgYW55d2hlcmUgaW4gc3RyIChleGNsdWRpbmcgdGhl
CiAvLyB0ZXJtaW5hdGluZyAnXDAnIGNoYXJhY3RlcikuCiBib29sIElzSW5TZXQoY2hhciBjaCwg
Y29uc3QgY2hhciogc3RyKSB7Ci0gIHJldHVybiBjaCAhPSAnXDAnICYmIHN0cmNocihzdHIsIGNo
KSAhPSBOVUxMOworICByZXR1cm4gY2ggIT0gJ1wwJyAmJiBzdHJjaHIoc3RyLCBjaCkgIT0gbnVs
bHB0cjsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBiZWxvbmdzIHRvIHRoZSBnaXZlbiBj
bGFzc2lmaWNhdGlvbi4gIFVubGlrZQotLy8gc2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+
LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgY2ggYmVsb25ncyB0byB0aGUgZ2l2ZW4gY2xhc3NpZmljYXRpb24uCisvLyBVbmxpa2Ug
c2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkg
dGhlCiAvLyBjdXJyZW50IGxvY2FsZS4KIGJvb2wgSXNBc2NpaURpZ2l0KGNoYXIgY2gpIHsgcmV0
dXJuICcwJyA8PSBjaCAmJiBjaCA8PSAnOSc7IH0KIGJvb2wgSXNBc2NpaVB1bmN0KGNoYXIgY2gp
IHsKQEAgLTY5OSwxMyArNzg5LDEzIEBAIGJvb2wgSXNBc2NpaVdvcmRDaGFyKGNoYXIgY2gpIHsK
ICAgICAgICgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8fCBjaCA9PSAnXyc7CiB9CiAKLS8vIFJl
dHVybnMgdHJ1ZSBpZmYgIlxcYyIgaXMgYSBzdXBwb3J0ZWQgZXNjYXBlIHNlcXVlbmNlLgorLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmICJcXGMiIGlzIGEgc3VwcG9ydGVkIGVzY2FwZSBz
ZXF1ZW5jZS4KIGJvb2wgSXNWYWxpZEVzY2FwZShjaGFyIGMpIHsKICAgcmV0dXJuIChJc0FzY2lp
UHVuY3QoYykgfHwgSXNJblNldChjLCAiZERmbnJzU3R2d1ciKSk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIGdpdmVuIGF0b20gKHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZCBwYXR0ZXJu
KQotLy8gbWF0Y2hlcyBjaC4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlz
IGludmFsaWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVuIGF0b20g
KHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZAorLy8gcGF0dGVybikgbWF0Y2hlcyBjaC4gIFRoZSBy
ZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlzIGludmFsaWQuCiBib29sIEF0b21NYXRj
aGVzQ2hhcihib29sIGVzY2FwZWQsIGNoYXIgcGF0dGVybl9jaGFyLCBjaGFyIGNoKSB7CiAgIGlm
IChlc2NhcGVkKSB7ICAvLyAiXFxwIiB3aGVyZSBwIGlzIHBhdHRlcm5fY2hhci4KICAgICBzd2l0
Y2ggKHBhdHRlcm5fY2hhcikgewpAQCAtNzM2LDE3ICs4MjYsMTQgQEAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEZvcm1hdFJlZ2V4U3ludGF4RXJyb3IoY29uc3QgY2hhciogcmVnZXgsIGludCBpbmRleCkg
ewogLy8gR2VuZXJhdGVzIG5vbi1mYXRhbCBmYWlsdXJlcyBhbmQgcmV0dXJucyBmYWxzZSBpZiBy
ZWdleCBpcyBpbnZhbGlkOwogLy8gb3RoZXJ3aXNlIHJldHVybnMgdHJ1ZS4KIGJvb2wgVmFsaWRh
dGVSZWdleChjb25zdCBjaGFyKiByZWdleCkgewotICBpZiAocmVnZXggPT0gTlVMTCkgewotICAg
IC8vIEZJWE1FOiBmaXggdGhlIHNvdXJjZSBmaWxlIGxvY2F0aW9uIGluIHRoZQotICAgIC8vIGFz
c2VydGlvbiBmYWlsdXJlcyB0byBtYXRjaCB3aGVyZSB0aGUgcmVnZXggaXMgdXNlZCBpbiB1c2Vy
Ci0gICAgLy8gY29kZS4KKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIpIHsKICAgICBBRERfRkFJTFVS
RSgpIDw8ICJOVUxMIGlzIG5vdCBhIHZhbGlkIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24uIjsK
ICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAogICBib29sIGlzX3ZhbGlkID0gdHJ1ZTsKIAotICAv
LyBUcnVlIGlmZiA/LCAqLCBvciArIGNhbiBmb2xsb3cgdGhlIHByZXZpb3VzIGF0b20uCisgIC8v
IFRydWUgaWYgYW5kIG9ubHkgaWYgPywgKiwgb3IgKyBjYW4gZm9sbG93IHRoZSBwcmV2aW91cyBh
dG9tLgogICBib29sIHByZXZfcmVwZWF0YWJsZSA9IGZhbHNlOwogICBmb3IgKGludCBpID0gMDsg
cmVnZXhbaV07IGkrKykgewogICAgIGlmIChyZWdleFtpXSA9PSAnXFwnKSB7ICAvLyBBbiBlc2Nh
cGUgc2VxdWVuY2UKQEAgLTgyMiw4ICs5MDksOCBAQCBib29sIE1hdGNoUmVwZXRpdGlvbkFuZFJl
Z2V4QXRIZWFkKAogICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVn
ZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIuICByZWdleCBtdXN0IGJlIGEKLS8vIHZhbGlkIHNp
bXBsZSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIG5vdCBzdGFydCB3aXRoICJeIiwgb3IgdGhlCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVnZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBz
dHIuIHJlZ2V4IG11c3QKKy8vIGJlIGEgdmFsaWQgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBh
bmQgbm90IHN0YXJ0IHdpdGggIl4iLCBvciB0aGUKIC8vIHJlc3VsdCBpcyB1bmRlZmluZWQuCiBi
b29sIE1hdGNoUmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikg
ewogICBpZiAoKnJlZ2V4ID09ICdcMCcpICAvLyBBbiBlbXB0eSByZWdleCBtYXRjaGVzIGEgcHJl
Zml4IG9mIGFueXRoaW5nLgpAQCAtODUzLDggKzk0MCw4IEBAIGJvb2wgTWF0Y2hSZWdleEF0SGVh
ZChjb25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKSB7CiAgIH0KIH0KIAotLy8gUmV0
dXJucyB0cnVlIGlmZiByZWdleCBtYXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXgg
bXVzdCBiZQotLy8gYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVz
dWx0IGlzIHVuZGVmaW5lZC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWdleCBt
YXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXggbXVzdAorLy8gYmUgYSB2YWxpZCBz
aW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KIC8v
CiAvLyBUaGUgYWxnb3JpdGhtIGlzIHJlY3Vyc2l2ZSwgYnV0IHRoZSByZWN1cnNpb24gZGVwdGgg
ZG9lc24ndCBleGNlZWQKIC8vIHRoZSByZWdleCBsZW5ndGgsIHNvIHdlIHdvbid0IG5lZWQgdG8g
d29ycnkgYWJvdXQgcnVubmluZyBvdXQgb2YKQEAgLTg2Miw4ICs5NDksNyBAQCBib29sIE1hdGNo
UmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewogLy8gZXhw
b25lbnRpYWwgd2l0aCByZXNwZWN0IHRvIHRoZSByZWdleCBsZW5ndGggKyB0aGUgc3RyaW5nIGxl
bmd0aCwKIC8vIGJ1dCB1c3VhbGx5IGl0J3MgbXVzdCBmYXN0ZXIgKG9mdGVuIGNsb3NlIHRvIGxp
bmVhcikuCiBib29sIE1hdGNoUmVnZXhBbnl3aGVyZShjb25zdCBjaGFyKiByZWdleCwgY29uc3Qg
Y2hhciogc3RyKSB7Ci0gIGlmIChyZWdleCA9PSBOVUxMIHx8IHN0ciA9PSBOVUxMKQotICAgIHJl
dHVybiBmYWxzZTsKKyAgaWYgKHJlZ2V4ID09IG51bGxwdHIgfHwgc3RyID09IG51bGxwdHIpIHJl
dHVybiBmYWxzZTsKIAogICBpZiAoKnJlZ2V4ID09ICdeJykKICAgICByZXR1cm4gTWF0Y2hSZWdl
eEF0SGVhZChyZWdleCArIDEsIHN0cik7CkBAIC04ODMsMjEgKzk2OSwyMSBAQCBSRTo6flJFKCkg
ewogICBmcmVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGZ1bGxfcGF0dGVybl8pKTsKIH0KIAotLy8gUmV0
dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0
ci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUg
bWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KIGJvb2wgUkU6OkZ1bGxNYXRjaChjb25zdCBjaGFyKiBz
dHIsIGNvbnN0IFJFJiByZSkgewogICByZXR1cm4gcmUuaXNfdmFsaWRfICYmIE1hdGNoUmVnZXhB
bnl3aGVyZShyZS5mdWxsX3BhdHRlcm5fLCBzdHIpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZm
IHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHN0cgotLy8gKGlu
Y2x1ZGluZyBzdHIgaXRzZWxmKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1
bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZgorLy8gc3RyIChpbmNsdWRp
bmcgc3RyIGl0c2VsZikuCiBib29sIFJFOjpQYXJ0aWFsTWF0Y2goY29uc3QgY2hhciogc3RyLCBj
b25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlLmlzX3ZhbGlkXyAmJiBNYXRjaFJlZ2V4QW55d2hl
cmUocmUucGF0dGVybl8sIHN0cik7CiB9CiAKIC8vIEluaXRpYWxpemVzIGFuIFJFIGZyb20gaXRz
IHN0cmluZyByZXByZXNlbnRhdGlvbi4KIHZvaWQgUkU6OkluaXQoY29uc3QgY2hhciogcmVnZXgp
IHsKLSAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gTlVMTDsKLSAgaWYgKHJlZ2V4ICE9IE5V
TEwpIHsKKyAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0gbnVsbHB0cjsKKyAgaWYgKHJlZ2V4
ICE9IG51bGxwdHIpIHsKICAgICBwYXR0ZXJuXyA9IHBvc2l4OjpTdHJEdXAocmVnZXgpOwogICB9
CiAKQEAgLTkzNSw3ICsxMDIxLDcgQEAgY29uc3QgY2hhciBrVW5rbm93bkZpbGVbXSA9ICJ1bmtu
b3duIGZpbGUiOwogLy8gRm9ybWF0cyBhIHNvdXJjZSBmaWxlIHBhdGggYW5kIGEgbGluZSBudW1i
ZXIgYXMgdGhleSB3b3VsZCBhcHBlYXIKIC8vIGluIGFuIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUg
Y29tcGlsZXIgdXNlZCB0byBjb21waWxlIHRoaXMgY29kZS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0
cmluZyBGb3JtYXRGaWxlTG9jYXRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsKLSAg
Y29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gTlVMTCA/IGtVbmtub3duRmlsZSA6
IGZpbGUpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlX25hbWUoZmlsZSA9PSBudWxscHRyID8g
a1Vua25vd25GaWxlIDogZmlsZSk7CiAKICAgaWYgKGxpbmUgPCAwKSB7CiAgICAgcmV0dXJuIGZp
bGVfbmFtZSArICI6IjsKQEAgLTk1NCw3ICsxMDQwLDcgQEAgR1RFU1RfQVBJXyA6OnN0ZDo6c3Ry
aW5nIEZvcm1hdEZpbGVMb2NhdGlvbihjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewogLy8g
dG8gdGhlIGZpbGUgbG9jYXRpb24gaXQgcHJvZHVjZXMsIHVubGlrZSBGb3JtYXRGaWxlTG9jYXRp
b24oKS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBGb3JtYXRDb21waWxlckluZGVwZW5kZW50
RmlsZUxvY2F0aW9uKAogICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7Ci0gIGNvbnN0
IHN0ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IE5VTEwgPyBrVW5rbm93bkZpbGUgOiBmaWxl
KTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gbnVsbHB0ciA/IGtVbmtu
b3duRmlsZSA6IGZpbGUpOwogCiAgIGlmIChsaW5lIDwgMCkKICAgICByZXR1cm4gZmlsZV9uYW1l
OwpAQCAtMTAyMSwyMCArMTEwNywyMiBAQCBjbGFzcyBDYXB0dXJlZFN0cmVhbSB7CiAgICAgLy8g
Y29kZSBhcyBwYXJ0IG9mIGEgcmVndWxhciBzdGFuZGFsb25lIGV4ZWN1dGFibGUsIHdoaWNoIGRv
ZXNuJ3QKICAgICAvLyBydW4gaW4gYSBEYWx2aWsgcHJvY2VzcyAoZS5nLiB3aGVuIHJ1bm5pbmcg
aXQgdGhyb3VnaCAnYWRiIHNoZWxsJykuCiAgICAgLy8KLSAgICAvLyBUaGUgbG9jYXRpb24gL3Nk
Y2FyZCBpcyBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gbmF0aXZlIGNvZGUKLSAgICAvLyBhbmQg
aXMgdGhlIG9ubHkgbG9jYXRpb24gKHVub2ZmaWNpYWxseSkgc3VwcG9ydGVkIGJ5IHRoZSBBbmRy
b2lkCi0gICAgLy8gdGVhbS4gSXQncyBnZW5lcmFsbHkgYSBzeW1saW5rIHRvIHRoZSByZWFsIFNE
IENhcmQgbW91bnQgcG9pbnQKLSAgICAvLyB3aGljaCBjYW4gYmUgL21udC9zZGNhcmQsIC9tbnQv
c2RjYXJkMCwgL3N5c3RlbS9tZWRpYS9zZGNhcmQsIG9yCi0gICAgLy8gb3RoZXIgT0VNLWN1c3Rv
bWl6ZWQgbG9jYXRpb25zLiBOZXZlciByZWx5IG9uIHRoZXNlLCBhbmQgYWx3YXlzCi0gICAgLy8g
dXNlIC9zZGNhcmQuCi0gICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL3NkY2FyZC9ndGVzdF9j
YXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKKyAgICAvLyBUaGUgbG9jYXRpb24gL2RhdGEvbG9jYWwv
dG1wIGlzIGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBuYXRpdmUgY29kZS4KKyAgICAvLyAnL3Nk
Y2FyZCcgYW5kIG90aGVyIHZhcmlhbnRzIGNhbm5vdCBiZSByZWxpZWQgb24sIGFzIHRoZXkgYXJl
IG5vdAorICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgbW91bnRlZCwgb3IgbWF5IGhhdmUgYSBkZWxh
eSBpbiBtb3VudGluZy4KKyAgICBjaGFyIG5hbWVfdGVtcGxhdGVbXSA9ICIvZGF0YS9sb2NhbC90
bXAvZ3Rlc3RfY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7CiAjICBlbHNlCiAgICAgY2hhciBuYW1l
X3RlbXBsYXRlW10gPSAiL3RtcC9jYXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKICMgIGVuZGlmICAv
LyBHVEVTVF9PU19MSU5VWF9BTkRST0lECiAgICAgY29uc3QgaW50IGNhcHR1cmVkX2ZkID0gbWtz
dGVtcChuYW1lX3RlbXBsYXRlKTsKKyAgICBpZiAoY2FwdHVyZWRfZmQgPT0gLTEpIHsKKyAgICAg
IEdURVNUX0xPR18oV0FSTklORykKKyAgICAgICAgICA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB0bXAg
ZmlsZSAiIDw8IG5hbWVfdGVtcGxhdGUKKyAgICAgICAgICA8PCAiIGZvciB0ZXN0OyBkb2VzIHRo
ZSB0ZXN0IGhhdmUgYWNjZXNzIHRvIHRoZSAvdG1wIGRpcmVjdG9yeT8iOworICAgIH0KICAgICBm
aWxlbmFtZV8gPSBuYW1lX3RlbXBsYXRlOwogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwot
ICAgIGZmbHVzaChOVUxMKTsKKyAgICBmZmx1c2gobnVsbHB0cik7CiAgICAgZHVwMihjYXB0dXJl
ZF9mZCwgZmRfKTsKICAgICBjbG9zZShjYXB0dXJlZF9mZCk7CiAgIH0KQEAgLTEwNDYsMTMgKzEx
MzQsMTcgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogICBzdGQ6OnN0cmluZyBHZXRDYXB0dXJl
ZFN0cmluZygpIHsKICAgICBpZiAodW5jYXB0dXJlZF9mZF8gIT0gLTEpIHsKICAgICAgIC8vIFJl
c3RvcmVzIHRoZSBvcmlnaW5hbCBzdHJlYW0uCi0gICAgICBmZmx1c2goTlVMTCk7CisgICAgICBm
Zmx1c2gobnVsbHB0cik7CiAgICAgICBkdXAyKHVuY2FwdHVyZWRfZmRfLCBmZF8pOwogICAgICAg
Y2xvc2UodW5jYXB0dXJlZF9mZF8pOwogICAgICAgdW5jYXB0dXJlZF9mZF8gPSAtMTsKICAgICB9
CiAKICAgICBGSUxFKiBjb25zdCBmaWxlID0gcG9zaXg6OkZPcGVuKGZpbGVuYW1lXy5jX3N0cigp
LCAiciIpOworICAgIGlmIChmaWxlID09IG51bGxwdHIpIHsKKyAgICAgIEdURVNUX0xPR18oRkFU
QUwpIDw8ICJGYWlsZWQgdG8gb3BlbiB0bXAgZmlsZSAiIDw8IGZpbGVuYW1lXworICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgIiBmb3IgY2FwdHVyaW5nIHN0cmVhbS4iOworICAgIH0KICAgICBj
b25zdCBzdGQ6OnN0cmluZyBjb250ZW50ID0gUmVhZEVudGlyZUZpbGUoZmlsZSk7CiAgICAgcG9z
aXg6OkZDbG9zZShmaWxlKTsKICAgICByZXR1cm4gY29udGVudDsKQEAgLTEwNjksMTMgKzExNjEs
MTMgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogCiBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNB
VEVEX1BPUF8oKQogCi1zdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3RkZXJyID0g
TlVMTDsKLXN0YXRpYyBDYXB0dXJlZFN0cmVhbSogZ19jYXB0dXJlZF9zdGRvdXQgPSBOVUxMOwor
c3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZGVyciA9IG51bGxwdHI7CitzdGF0
aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rkb3V0ID0gbnVsbHB0cjsKIAogLy8gU3Rh
cnRzIGNhcHR1cmluZyBhbiBvdXRwdXQgc3RyZWFtIChzdGRvdXQvc3RkZXJyKS4KIHN0YXRpYyB2
b2lkIENhcHR1cmVTdHJlYW0oaW50IGZkLCBjb25zdCBjaGFyKiBzdHJlYW1fbmFtZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZWRTdHJlYW0qKiBzdHJlYW0pIHsKLSAgaWYgKCpz
dHJlYW0gIT0gTlVMTCkgeworICBpZiAoKnN0cmVhbSAhPSBudWxscHRyKSB7CiAgICAgR1RFU1Rf
TE9HXyhGQVRBTCkgPDwgIk9ubHkgb25lICIgPDwgc3RyZWFtX25hbWUKICAgICAgICAgICAgICAg
ICAgICAgICA8PCAiIGNhcHR1cmVyIGNhbiBleGlzdCBhdCBhIHRpbWUuIjsKICAgfQpAQCAtMTA4
Nyw3ICsxMTc5LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldENhcHR1cmVkU3RyZWFtKENhcHR1
cmVkU3RyZWFtKiogY2FwdHVyZWRfc3RyZWFtKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvbnRl
bnQgPSAoKmNhcHR1cmVkX3N0cmVhbSktPkdldENhcHR1cmVkU3RyaW5nKCk7CiAKICAgZGVsZXRl
ICpjYXB0dXJlZF9zdHJlYW07Ci0gICpjYXB0dXJlZF9zdHJlYW0gPSBOVUxMOworICAqY2FwdHVy
ZWRfc3RyZWFtID0gbnVsbHB0cjsKIAogICByZXR1cm4gY29udGVudDsKIH0KQEAgLTExNDYsMTAg
KzEyMzgsMTEgQEAgc3RkOjpzdHJpbmcgUmVhZEVudGlyZUZpbGUoRklMRSogZmlsZSkgewogfQog
CiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLXN0YXRpYyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9IE5VTEw7ICAvLyBPd25lZC4KK3N0YXRp
YyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9
CisgICAgbnVsbHB0cjsgIC8vIE93bmVkLgogCiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0
SW5qZWN0YWJsZUFyZ3ZzKCkgewotICBpZiAoZ19pbmplY3RlZF90ZXN0X2FyZ3ZzICE9IE5VTEwp
IHsKKyAgaWYgKGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJu
ICpnX2luamVjdGVkX3Rlc3RfYXJndnM7CiAgIH0KICAgcmV0dXJuIEdldEFyZ3ZzKCk7CkBAIC0x
MTY1LDE2ICsxMjU4LDkgQEAgdm9pZCBTZXRJbmplY3RhYmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+JiBuZXdfYXJndnMpIHsKICAgICAgIG5ldyBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4obmV3X2FyZ3ZzLmJlZ2luKCksIG5ld19hcmd2cy5lbmQoKSkpOwogfQogCi0jaWYg
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0
ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cykgewotICBTZXRJbmplY3RhYmxlQXJndnMo
Ci0gICAgICBuZXcgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KG5ld19hcmd2cy5iZWdpbigpLCBu
ZXdfYXJndnMuZW5kKCkpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcK
LQogdm9pZCBDbGVhckluamVjdGFibGVBcmd2cygpIHsKICAgZGVsZXRlIGdfaW5qZWN0ZWRfdGVz
dF9hcmd2czsKLSAgZ19pbmplY3RlZF90ZXN0X2FyZ3ZzID0gTlVMTDsKKyAgZ19pbmplY3RlZF90
ZXN0X2FyZ3ZzID0gbnVsbHB0cjsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QK
IApAQCAtMTIwNSw5ICsxMjkxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZsYWdUb0VudlZhcihj
b25zdCBjaGFyKiBmbGFnKSB7CiAvLyBQYXJzZXMgJ3N0cicgZm9yIGEgMzItYml0IHNpZ25lZCBp
bnRlZ2VyLiAgSWYgc3VjY2Vzc2Z1bCwgd3JpdGVzCiAvLyB0aGUgcmVzdWx0IHRvICp2YWx1ZSBh
bmQgcmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVzICp2YWx1ZQogLy8gdW5jaGFuZ2VkIGFu
ZCByZXR1cm5zIGZhbHNlLgotYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0
LCBjb25zdCBjaGFyKiBzdHIsIEludDMyKiB2YWx1ZSkgeworYm9vbCBQYXJzZUludDMyKGNvbnN0
IE1lc3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBzdHIsIGludDMyX3QqIHZhbHVlKSB7CiAg
IC8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgYSBkZWNpbWFsIGludGVnZXIu
Ci0gIGNoYXIqIGVuZCA9IE5VTEw7CisgIGNoYXIqIGVuZCA9IG51bGxwdHI7CiAgIGNvbnN0IGxv
bmcgbG9uZ192YWx1ZSA9IHN0cnRvbChzdHIsICZlbmQsIDEwKTsgIC8vIE5PTElOVAogCiAgIC8v
IEhhcyBzdHJ0b2woKSBjb25zdW1lZCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nPwpAQCAt
MTIyMiwxMyArMTMwOCwxMyBAQCBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3Rl
eHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKSB7CiAgICAgcmV0dXJuIGZhbHNlOwog
ICB9CiAKLSAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gSW50MzI/
Ci0gIGNvbnN0IEludDMyIHJlc3VsdCA9IHN0YXRpY19jYXN0PEludDMyPihsb25nX3ZhbHVlKTsK
KyAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUgcmFuZ2Ugb2YgYW4gaW50MzJfdD8KKyAg
Y29uc3QgYXV0byByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQzMl90Pihsb25nX3ZhbHVlKTsKICAg
aWYgKGxvbmdfdmFsdWUgPT0gTE9OR19NQVggfHwgbG9uZ192YWx1ZSA9PSBMT05HX01JTiB8fAog
ICAgICAgLy8gVGhlIHBhcnNlZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYSBsb25nLiAgKHN0cnRvbCgp
IHJldHVybnMKICAgICAgIC8vIExPTkdfTUFYIG9yIExPTkdfTUlOIHdoZW4gdGhlIGlucHV0IG92
ZXJmbG93cy4pCiAgICAgICByZXN1bHQgIT0gbG9uZ192YWx1ZQotICAgICAgLy8gVGhlIHBhcnNl
ZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYW4gSW50MzIuCisgICAgICAvLyBUaGUgcGFyc2VkIHZhbHVl
IG92ZXJmbG93cyBhcyBhbiBpbnQzMl90LgogICAgICAgKSB7CiAgICAgTWVzc2FnZSBtc2c7CiAg
ICAgbXNnIDw8ICJXQVJOSU5HOiAiIDw8IHNyY190ZXh0CkBAIC0xMjQ2LDMzICsxMzMyLDMzIEBA
IGJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3Ry
LCBJbnQzMiogdmFsdWUpIHsKIC8vIFJlYWRzIGFuZCByZXR1cm5zIHRoZSBCb29sZWFuIGVudmly
b25tZW50IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8KIC8vIHRoZSBnaXZlbiBmbGFnOyBpZiBp
dCdzIG5vdCBzZXQsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KIC8vCi0vLyBUaGUgdmFsdWUgaXMg
Y29uc2lkZXJlZCB0cnVlIGlmZiBpdCdzIG5vdCAiMCIuCisvLyBUaGUgdmFsdWUgaXMgY29uc2lk
ZXJlZCB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0J3Mgbm90ICIwIi4KIGJvb2wgQm9vbEZyb21HVGVz
dEVudihjb25zdCBjaGFyKiBmbGFnLCBib29sIGRlZmF1bHRfdmFsdWUpIHsKICNpZiBkZWZpbmVk
KEdURVNUX0dFVF9CT09MX0ZST01fRU5WXykKICAgcmV0dXJuIEdURVNUX0dFVF9CT09MX0ZST01f
RU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVu
dl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0cmluZ192
YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHN0cmluZ192
YWx1ZSA9PSBOVUxMID8KLSAgICAgIGRlZmF1bHRfdmFsdWUgOiBzdHJjbXAoc3RyaW5nX3ZhbHVl
LCAiMCIpICE9IDA7CisgIHJldHVybiBzdHJpbmdfdmFsdWUgPT0gbnVsbHB0ciA/IGRlZmF1bHRf
dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyY21wKHN0cmluZ192
YWx1ZSwgIjAiKSAhPSAwOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9CT09MX0ZST01f
RU5WXykKIH0KIAogLy8gUmVhZHMgYW5kIHJldHVybnMgYSAzMi1iaXQgaW50ZWdlciBzdG9yZWQg
aW4gdGhlIGVudmlyb25tZW50CiAvLyB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZl
biBmbGFnOyBpZiBpdCBpc24ndCBzZXQgb3IKIC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgdmFsaWQg
MzItYml0IGludGVnZXIsIHJldHVybnMgZGVmYXVsdF92YWx1ZS4KLUludDMyIEludDMyRnJvbUdU
ZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUpIHsKK2ludDMyX3Qg
SW50MzJGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgaW50MzJfdCBkZWZhdWx0X3ZhbHVl
KSB7CiAjaWYgZGVmaW5lZChHVEVTVF9HRVRfSU5UMzJfRlJPTV9FTlZfKQogICByZXR1cm4gR1RF
U1RfR0VUX0lOVDMyX0ZST01fRU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNv
bnN0IHN0ZDo6c3RyaW5nIGVudl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNo
YXIqIGNvbnN0IHN0cmluZ192YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsK
LSAgaWYgKHN0cmluZ192YWx1ZSA9PSBOVUxMKSB7CisgIGlmIChzdHJpbmdfdmFsdWUgPT0gbnVs
bHB0cikgewogICAgIC8vIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3Qgc2V0LgogICAg
IHJldHVybiBkZWZhdWx0X3ZhbHVlOwogICB9CiAKLSAgSW50MzIgcmVzdWx0ID0gZGVmYXVsdF92
YWx1ZTsKKyAgaW50MzJfdCByZXN1bHQgPSBkZWZhdWx0X3ZhbHVlOwogICBpZiAoIVBhcnNlSW50
MzIoTWVzc2FnZSgpIDw8ICJFbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IGVudl92YXIsCiAgICAg
ICAgICAgICAgICAgICBzdHJpbmdfdmFsdWUsICZyZXN1bHQpKSB7CiAgICAgcHJpbnRmKCJUaGUg
ZGVmYXVsdCB2YWx1ZSAlcyBpcyB1c2VkLlxuIiwKQEAgLTEyOTYsNyArMTM4Miw3IEBAIEludDMy
IEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsdWUp
IHsKIHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdBbHNvQ2hlY2tFbnZWYXIoKXsKICAgc3RkOjpzdHJp
bmcgZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWcgPSAiIjsKICAgY29uc3QgY2hhciogeG1s
X291dHB1dF9maWxlX2VudiA9IHBvc2l4OjpHZXRFbnYoIlhNTF9PVVRQVVRfRklMRSIpOwotICBp
ZiAoTlVMTCAhPSB4bWxfb3V0cHV0X2ZpbGVfZW52KSB7CisgIGlmIChudWxscHRyICE9IHhtbF9v
dXRwdXRfZmlsZV9lbnYpIHsKICAgICBkZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZyA9IHN0
ZDo6c3RyaW5nKCJ4bWw6IikgKyB4bWxfb3V0cHV0X2ZpbGVfZW52OwogICB9CiAgIHJldHVybiBk
ZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZzsKQEAgLTEzMTAsNyArMTM5Niw3IEBAIGNvbnN0
IGNoYXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBjb25zdCBjaGFyKiBk
ZWZhdWx0X3ZhbHVlKSB7CiAjZWxzZQogICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0gRmxh
Z1RvRW52VmFyKGZsYWcpOwogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZSA9IHBvc2l4OjpHZXRF
bnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHZhbHVlID09IE5VTEwgPyBkZWZhdWx0X3Zh
bHVlIDogdmFsdWU7CisgIHJldHVybiB2YWx1ZSA9PSBudWxscHRyID8gZGVmYXVsdF92YWx1ZSA6
IHZhbHVlOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0dFVF9TVFJJTkdfRlJPTV9FTlZfKQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRl
cnMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MKaW5k
ZXggZGU0ZDI0NWU5ZmM4ODk3YWYyMTM3Njc5ZDkxM2Q2NjVmZDg0MzZlMS4uMWI2OGZjYjUwMDU1
MGY4ZDA4NDZiMTU4NDU1YTEyNmJiYzRiZmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc3JjL2d0ZXN0LXByaW50ZXJzLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC1wcmludGVycy5jYwpAQCAtNDIsMTEgKzQyLDE2IEBACiAvLyBkZWZpbmVz
IEZvby4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCisKICNpbmNsdWRlIDxz
dGRpby5oPgorCiAjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVk
ZSA8Y3djaGFyPgogI2luY2x1ZGUgPG9zdHJlYW0+ICAvLyBOT0xJTlQKICNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1wb3J0LmgiCiAjaW5jbHVkZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgogCkBAIC01
OSw2ICs2NCw3IEBAIHVzaW5nIDo6c3RkOjpvc3RyZWFtOwogLy8gUHJpbnRzIGEgc2VnbWVudCBv
ZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0LgogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpF
X01FTU9SWV8KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXworR1RFU1RfQVRU
UklCVVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVEla
RV9USFJFQURfCiB2b2lkIFByaW50Qnl0ZVNlZ21lbnRJbk9iamVjdFRvKGNvbnN0IHVuc2lnbmVk
IGNoYXIqIG9ial9ieXRlcywgc2l6ZV90IHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgY291bnQsIG9zdHJlYW0qIG9zKSB7CkBAIC04OSw3ICs5NSw2IEBAIHZv
aWQgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKGNvbnN0IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRl
cywgc2l6ZV90IGNvdW50LAogICAvLyBJZiB0aGUgb2JqZWN0IHNpemUgaXMgYmlnZ2VyIHRoYW4g
a1RocmVzaG9sZCwgd2UnbGwgaGF2ZSB0byBvbWl0CiAgIC8vIHNvbWUgZGV0YWlscyBieSBwcmlu
dGluZyBvbmx5IHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qga0NodW5rU2l6ZQogICAvLyBieXRlcy4K
LSAgLy8gRklYTUU6IGxldCB0aGUgdXNlciBjb250cm9sIHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBm
bGFnLgogICBpZiAoY291bnQgPCBrVGhyZXNob2xkKSB7CiAgICAgUHJpbnRCeXRlU2VnbWVudElu
T2JqZWN0VG8ob2JqX2J5dGVzLCAwLCBjb3VudCwgb3MpOwogICB9IGVsc2UgewpAQCAtMTAyLDkg
KzEwNywxOSBAQCB2b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1wbChjb25zdCB1bnNpZ25lZCBj
aGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgKm9zIDw8ICI+IjsKIH0KIAorLy8gSGVs
cGVycyBmb3Igd2lkZW5pbmcgYSBjaGFyYWN0ZXIgdG8gY2hhcjMyX3QuIFNpbmNlIHRoZSBzdGFu
ZGFyZCBkb2VzIG5vdAorLy8gc3BlY2lmeSBpZiBjaGFyIC8gd2NoYXJfdCBpcyBzaWduZWQgb3Ig
dW5zaWduZWQsIGl0IGlzIGltcG9ydGFudCB0byBmaXJzdAorLy8gY29udmVydCBpdCB0byB0aGUg
dW5zaWduZWQgdHlwZSBvZiB0aGUgc2FtZSB3aWR0aCBiZWZvcmUgd2lkZW5pbmcgaXQgdG8KKy8v
IGNoYXIzMl90LgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgorY2hhcjMyX3QgVG9DaGFy
MzIoQ2hhclR5cGUgaW4pIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIzMl90PigKKyAgICAg
IHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6bWFrZV91bnNpZ25lZDxDaGFyVHlwZT46OnR5cGU+
KGluKSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZQogCi1uYW1lc3BhY2UgaW50ZXJuYWwyIHsKK25h
bWVzcGFjZSBpbnRlcm5hbCB7CiAKIC8vIERlbGVnYXRlcyB0byBQcmludEJ5dGVzSW5PYmplY3RU
b0ltcGwoKSB0byBwcmludCB0aGUgYnl0ZXMgaW4gdGhlCiAvLyBnaXZlbiBvYmplY3QuICBUaGUg
ZGVsZWdhdGlvbiBzaW1wbGlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2gKQEAgLTExNiwx
MCArMTMxLDYgQEAgdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUbyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKG9i
al9ieXRlcywgY291bnQsIG9zKTsKIH0KIAotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotCi1u
YW1lc3BhY2UgaW50ZXJuYWwgewotCiAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGEgY2hh
ciAob3Igd2NoYXJfdCksIHdlIHByaW50IGl0IGluIG9uZQogLy8gb2YgdGhyZWUgZm9ybWF0czoK
IC8vICAgLSBhcyBpcyBpZiBpdCdzIGEgcHJpbnRhYmxlIEFTQ0lJIChlLmcuICdhJywgJzInLCAn
ICcpLApAQCAtMTM0LDE3ICsxNDUsMTUgQEAgZW51bSBDaGFyRm9ybWF0IHsKIC8vIFJldHVybnMg
dHJ1ZSBpZiBjIGlzIGEgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3Rlci4gIFdlIHRlc3QgdGhlCiAv
LyB2YWx1ZSBvZiBjIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBpc3ByaW50KCksIHdoaWNo
IGlzIGJ1Z2d5IG9uCiAvLyBXaW5kb3dzIE1vYmlsZS4KLWlubGluZSBib29sIElzUHJpbnRhYmxl
QXNjaWkod2NoYXJfdCBjKSB7Ci0gIHJldHVybiAweDIwIDw9IGMgJiYgYyA8PSAweDdFOwotfQor
aW5saW5lIGJvb2wgSXNQcmludGFibGVBc2NpaShjaGFyMzJfdCBjKSB7IHJldHVybiAweDIwIDw9
IGMgJiYgYyA8PSAweDdFOyB9CiAKLS8vIFByaW50cyBhIHdpZGUgb3IgbmFycm93IGNoYXIgYyBh
cyBhIGNoYXJhY3RlciBsaXRlcmFsIHdpdGhvdXQgdGhlCi0vLyBxdW90ZXMsIGVzY2FwaW5nIGl0
IHdoZW4gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi0vLyBUaGUgdGVt
cGxhdGUgYXJndW1lbnQgVW5zaWduZWRDaGFyIGlzIHRoZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENo
YXIsCi0vLyB3aGljaCBpcyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2ln
bmVkQ2hhciwgdHlwZW5hbWUgQ2hhcj4KKy8vIFByaW50cyBjIChvZiB0eXBlIGNoYXIsIGNoYXI4
X3QsIGNoYXIxNl90LCBjaGFyMzJfdCwgb3Igd2NoYXJfdCkgYXMgYQorLy8gY2hhcmFjdGVyIGxp
dGVyYWwgd2l0aG91dCB0aGUgcXVvdGVzLCBlc2NhcGluZyBpdCB3aGVuIG5lY2Vzc2FyeTsgcmV0
dXJucyBob3cKKy8vIGMgd2FzIGZvcm1hdHRlZC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyPgog
c3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hhciBjLCBvc3RyZWFtKiBv
cykgewotICBzd2l0Y2ggKHN0YXRpY19jYXN0PHdjaGFyX3Q+KGMpKSB7CisgIGNvbnN0IGNoYXIz
Ml90IHVfYyA9IFRvQ2hhcjMyKGMpOworICBzd2l0Y2ggKHVfYykgewogICAgIGNhc2UgTCdcMCc6
CiAgICAgICAqb3MgPDwgIlxcMCI7CiAgICAgICBicmVhazsKQEAgLTE3NiwxMyArMTg1LDEyIEBA
IHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRvKENoYXIgYywgb3N0cmVhbSog
b3MpIHsKICAgICAgICpvcyA8PCAiXFx2IjsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0g
ICAgICBpZiAoSXNQcmludGFibGVBc2NpaShjKSkgeworICAgICAgaWYgKElzUHJpbnRhYmxlQXNj
aWkodV9jKSkgewogICAgICAgICAqb3MgPDwgc3RhdGljX2Nhc3Q8Y2hhcj4oYyk7CiAgICAgICAg
IHJldHVybiBrQXNJczsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIG9zdHJlYW06OmZtdGZsYWdz
IGZsYWdzID0gb3MtPmZsYWdzKCk7Ci0gICAgICAgICpvcyA8PCAiXFx4IiA8PCBzdGQ6OmhleCA8
PCBzdGQ6OnVwcGVyY2FzZQotICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50PihzdGF0aWNf
Y2FzdDxVbnNpZ25lZENoYXI+KGMpKTsKKyAgICAgICAgKm9zIDw8ICJcXHgiIDw8IHN0ZDo6aGV4
IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0YXRpY19jYXN0PGludD4odV9jKTsKICAgICAgICAgb3Mt
PmZsYWdzKGZsYWdzKTsKICAgICAgICAgcmV0dXJuIGtIZXhFc2NhcGU7CiAgICAgICB9CkBAIC0x
OTAsOSArMTk4LDkgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hh
ciBjLCBvc3RyZWFtKiBvcykgewogICByZXR1cm4ga1NwZWNpYWxFc2NhcGU7CiB9CiAKLS8vIFBy
aW50cyBhIHdjaGFyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNj
YXBpbmcgaXQgd2hlbgorLy8gUHJpbnRzIGEgY2hhcjMyX3QgYyBhcyBpZiBpdCdzIHBhcnQgb2Yg
YSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hlbgogLy8gbmVjZXNzYXJ5OyByZXR1cm5z
IGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi1zdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0
ZXJhbFRvKHdjaGFyX3QgYywgb3N0cmVhbSogb3MpIHsKK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50
QXNTdHJpbmdMaXRlcmFsVG8oY2hhcjMyX3QgYywgb3N0cmVhbSogb3MpIHsKICAgc3dpdGNoIChj
KSB7CiAgICAgY2FzZSBMJ1wnJzoKICAgICAgICpvcyA8PCAiJyI7CkBAIC0yMDEsMjYgKzIwOSw2
OCBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywg
b3N0cmVhbSogb3MpIHsKICAgICAgICpvcyA8PCAiXFxcIiI7CiAgICAgICByZXR1cm4ga1NwZWNp
YWxFc2NhcGU7CiAgICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiBQcmludEFzQ2hhckxpdGVyYWxU
bzx3Y2hhcl90PihjLCBvcyk7CisgICAgICByZXR1cm4gUHJpbnRBc0NoYXJMaXRlcmFsVG8oYywg
b3MpOwogICB9CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hh
cikgeworICByZXR1cm4gIiI7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQ
cmVmaXgoc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciogR2V0Q2hhcldpZHRoUHJlZml4KHVuc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQor
CisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFBy
ZWZpeChjaGFyOF90KSB7CisgIHJldHVybiAidTgiOworfQorI2VuZGlmCisKK3N0YXRpYyBjb25z
dCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcjE2X3QpIHsKKyAgcmV0dXJuICJ1IjsKK30K
Kworc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZpeChjaGFyMzJfdCkgeworICBy
ZXR1cm4gIlUiOworfQorCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4KHdj
aGFyX3QpIHsKKyAgcmV0dXJuICJMIjsKK30KKwogLy8gUHJpbnRzIGEgY2hhciBjIGFzIGlmIGl0
J3MgcGFydCBvZiBhIHN0cmluZyBsaXRlcmFsLCBlc2NhcGluZyBpdCB3aGVuCiAvLyBuZWNlc3Nh
cnk7IHJldHVybnMgaG93IGMgd2FzIGZvcm1hdHRlZC4KIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50
QXNTdHJpbmdMaXRlcmFsVG8oY2hhciBjLCBvc3RyZWFtKiBvcykgewotICByZXR1cm4gUHJpbnRB
c1N0cmluZ0xpdGVyYWxUbygKLSAgICAgIHN0YXRpY19jYXN0PHdjaGFyX3Q+KHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXI+KGMpKSwgb3MpOworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxU
byhUb0NoYXIzMihjKSwgb3MpOworfQorCisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIENo
YXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyOF90IGMsIG9zdHJlYW0qIG9zKSB7
CisgIHJldHVybiBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKFRvQ2hhcjMyKGMpLCBvcyk7Cit9Cisj
ZW5kaWYKKworc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjaGFyMTZf
dCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0No
YXIzMihjKSwgb3MpOwogfQogCi0vLyBQcmludHMgYSB3aWRlIG9yIG5hcnJvdyBjaGFyYWN0ZXIg
YyBhbmQgaXRzIGNvZGUuICAnXDAnIGlzIHByaW50ZWQKLS8vIGFzICInXFwwJyIsIG90aGVyIHVu
cHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIGFsc28gcHJvcGVybHkgZXNjYXBlZAotLy8gdXNpbmcg
dGhlIHN0YW5kYXJkIEMrKyBlc2NhcGUgc2VxdWVuY2UuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQK
LS8vIFVuc2lnbmVkQ2hhciBpcyB0aGUgdW5zaWduZWQgdmVyc2lvbiBvZiBDaGFyLCB3aGljaCBp
cyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVkQ2hhciwgdHlwZW5h
bWUgQ2hhcj4KK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8od2NoYXJf
dCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0No
YXIzMihjKSwgb3MpOworfQorCisvLyBQcmludHMgYSBjaGFyYWN0ZXIgYyAob2YgdHlwZSBjaGFy
LCBjaGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QpCisvLyBhbmQgaXRzIGNv
ZGUuICdcMCcgaXMgcHJpbnRlZCBhcyAiJ1xcMCciLCBvdGhlciB1bnByaW50YWJsZSBjaGFyYWN0
ZXJzIGFyZQorLy8gYWxzbyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBDKysg
ZXNjYXBlIHNlcXVlbmNlLgordGVtcGxhdGUgPHR5cGVuYW1lIENoYXI+CiB2b2lkIFByaW50Q2hh
ckFuZENvZGVUbyhDaGFyIGMsIG9zdHJlYW0qIG9zKSB7CiAgIC8vIEZpcnN0LCBwcmludCBjIGFz
IGEgbGl0ZXJhbCBpbiB0aGUgbW9zdCByZWFkYWJsZSBmb3JtIHdlIGNhbiBmaW5kLgotICAqb3Mg
PDwgKChzaXplb2YoYykgPiAxKSA/ICJMJyIgOiAiJyIpOwotICBjb25zdCBDaGFyRm9ybWF0IGZv
cm1hdCA9IFByaW50QXNDaGFyTGl0ZXJhbFRvPFVuc2lnbmVkQ2hhcj4oYywgb3MpOworICAqb3Mg
PDwgR2V0Q2hhcldpZHRoUHJlZml4KGMpIDw8ICInIjsKKyAgY29uc3QgQ2hhckZvcm1hdCBmb3Jt
YXQgPSBQcmludEFzQ2hhckxpdGVyYWxUbyhjLCBvcyk7CiAgICpvcyA8PCAiJyI7CiAKICAgLy8g
VG8gYWlkIHVzZXIgZGVidWdnaW5nLCB3ZSBhbHNvIHByaW50IGMncyBjb2RlIGluIGRlY2ltYWws
IHVubGVzcwpAQCAtMjM2LDM2ICsyODYsMzcgQEAgdm9pZCBQcmludENoYXJBbmRDb2RlVG8oQ2hh
ciBjLCBvc3RyZWFtKiBvcykgewogICBpZiAoZm9ybWF0ID09IGtIZXhFc2NhcGUgfHwgKDEgPD0g
YyAmJiBjIDw9IDkpKSB7CiAgICAgLy8gRG8gbm90aGluZy4KICAgfSBlbHNlIHsKLSAgICAqb3Mg
PDwgIiwgMHgiIDw8IFN0cmluZzo6Rm9ybWF0SGV4SW50KHN0YXRpY19jYXN0PFVuc2lnbmVkQ2hh
cj4oYykpOworICAgICpvcyA8PCAiLCAweCIgPDwgU3RyaW5nOjpGb3JtYXRIZXhJbnQoc3RhdGlj
X2Nhc3Q8aW50PihjKSk7CiAgIH0KICAgKm9zIDw8ICIpIjsKIH0KIAotdm9pZCBQcmludFRvKHVu
c2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVU
bzx1bnNpZ25lZCBjaGFyPihjLCBvcyk7Ci19Ci12b2lkIFByaW50VG8oc2lnbmVkIGNoYXIgYywg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx1bnNpZ25lZCBjaGFy
PihjLCBvcyk7Ci19Cit2b2lkIFByaW50VG8odW5zaWduZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsgUHJpbnRDaGFyQW5kQ29kZVRvKGMsIG9zKTsgfQordm9pZCBQcmludFRvKHNpZ25l
ZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeyBQcmludENoYXJBbmRDb2RlVG8oYywgb3Mp
OyB9CiAKIC8vIFByaW50cyBhIHdjaGFyX3QgYXMgYSBzeW1ib2wgaWYgaXQgaXMgcHJpbnRhYmxl
IG9yIGFzIGl0cyBpbnRlcm5hbAogLy8gY29kZSBvdGhlcndpc2UgYW5kIGFsc28gYXMgaXRzIGNv
ZGUuICBMJ1wwJyBpcyBwcmludGVkIGFzICJMJ1xcMCciLgotdm9pZCBQcmludFRvKHdjaGFyX3Qg
d2MsIG9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx3Y2hhcl90Pih3Yywgb3Mp
Owordm9pZCBQcmludFRvKHdjaGFyX3Qgd2MsIG9zdHJlYW0qIG9zKSB7IFByaW50Q2hhckFuZENv
ZGVUbyh3Yywgb3MpOyB9CisKKy8vIFRPRE8oZGNoZW5nKTogQ29uc2lkZXIgbWFraW5nIHRoaXMg
ZGVsZWdhdGUgdG8gUHJpbnRDaGFyQW5kQ29kZVRvKCkgYXMgd2VsbC4KK3ZvaWQgUHJpbnRUbyhj
aGFyMzJfdCBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgKm9zIDw8IHN0ZDo6aGV4IDw8ICJV
KyIgPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykgPDwgc3RkOjpzZXR3KDQp
CisgICAgICA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYyk7CiB9CiAKIC8vIFByaW50cyB0aGUg
Z2l2ZW4gYXJyYXkgb2YgY2hhcmFjdGVycyB0byB0aGUgb3N0cmVhbS4gIENoYXJUeXBlIG11c3Qg
YmUgZWl0aGVyCi0vLyBjaGFyIG9yIHdjaGFyX3QuCisvLyBjaGFyLCBjaGFyOF90LCBjaGFyMTZf
dCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QuCiAvLyBUaGUgYXJyYXkgc3RhcnRzIGF0IGJlZ2luLCB0
aGUgbGVuZ3RoIGlzIGxlbiwgaXQgbWF5IGluY2x1ZGUgJ1wwJyBjaGFyYWN0ZXJzCiAvLyBhbmQg
bWF5IG5vdCBiZSBOVUwtdGVybWluYXRlZC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4K
IEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllfCiBHVEVTVF9BVFRSSUJVVEVfTk9f
U0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1Nf
CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwogc3RhdGljIENoYXJGb3JtYXQg
UHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgY29uc3QgQ2hhclR5cGUqIGJlZ2luLCBzaXplX3Qg
bGVuLCBvc3RyZWFtKiBvcykgewotICBjb25zdCBjaGFyKiBjb25zdCBrUXVvdGVCZWdpbiA9IHNp
emVvZihDaGFyVHlwZSkgPT0gMSA/ICJcIiIgOiAiTFwiIjsKLSAgKm9zIDw8IGtRdW90ZUJlZ2lu
OworICBjb25zdCBjaGFyKiBjb25zdCBxdW90ZV9wcmVmaXggPSBHZXRDaGFyV2lkdGhQcmVmaXgo
KmJlZ2luKTsKKyAgKm9zIDw8IHF1b3RlX3ByZWZpeCA8PCAiXCIiOwogICBib29sIGlzX3ByZXZp
b3VzX2hleCA9IGZhbHNlOwogICBDaGFyRm9ybWF0IHByaW50X2Zvcm1hdCA9IGtBc0lzOwogICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbGVuOyArK2luZGV4KSB7CkBAIC0yNzQsNyAr
MzI1LDcgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgICAv
LyBQcmV2aW91cyBjaGFyYWN0ZXIgaXMgb2YgJ1x4Li4nIGZvcm0gYW5kIHRoaXMgY2hhcmFjdGVy
IGNhbiBiZQogICAgICAgLy8gaW50ZXJwcmV0ZWQgYXMgYW5vdGhlciBoZXhhZGVjaW1hbCBkaWdp
dCBpbiBpdHMgbnVtYmVyLiBCcmVhayBzdHJpbmcgdG8KICAgICAgIC8vIGRpc2FtYmlndWF0ZS4K
LSAgICAgICpvcyA8PCAiXCIgIiA8PCBrUXVvdGVCZWdpbjsKKyAgICAgICpvcyA8PCAiXCIgIiA8
PCBxdW90ZV9wcmVmaXggPDwgIlwiIjsKICAgICB9CiAgICAgaXNfcHJldmlvdXNfaGV4ID0gUHJp
bnRBc1N0cmluZ0xpdGVyYWxUbyhjdXIsIG9zKSA9PSBrSGV4RXNjYXBlOwogICAgIC8vIFJlbWVt
YmVyIGlmIGFueSBjaGFyYWN0ZXJzIHJlcXVpcmVkIGhleCBlc2NhcGluZy4KQEAgLTI5MSw2ICsz
NDIsNyBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludENoYXJzQXNTdHJpbmdUbygKIHRlbXBsYXRl
IDx0eXBlbmFtZSBDaGFyVHlwZT4KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1PUllf
CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9O
T19TQU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFE
Xwogc3RhdGljIHZvaWQgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoCiAgICAgY29uc3QgQ2hhclR5
cGUqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewpAQCAtMzE5LDIyICszNzEsNTcg
QEAgdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIqIGJlZ2luLCBzaXplX3QgbGVu
LCBvc3RyZWFtKiBvcykgewogICBVbml2ZXJzYWxQcmludENoYXJBcnJheShiZWdpbiwgbGVuLCBv
cyk7CiB9CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisvLyBQcmludHMgYSAoY29uc3QpIGNoYXI4
X3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0IGFkZHJlc3MKKy8vICdiZWdp
bicuCit2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjhfdCogYmVnaW4sIHNpemVf
dCBsZW4sIG9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBs
ZW4sIG9zKTsKK30KKyNlbmRpZgorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIxNl90IGFycmF5
IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9p
ZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIxNl90KiBiZWdpbiwgc2l6ZV90IGxlbiwg
b3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3Mp
OworfQorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIzMl90IGFycmF5IG9mICdsZW4nIGVsZW1l
bnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVnaW4nLgordm9pZCBVbml2ZXJzYWxQcmlu
dEFycmF5KGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsK
KyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxlbiwgb3MpOworfQorCiAvLyBQcmlu
dHMgYSAoY29uc3QpIHdjaGFyX3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0
IGFkZHJlc3MKIC8vICdiZWdpbicuCiB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3Qgd2No
YXJfdCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0qIG9zKSB7CiAgIFVuaXZlcnNhbFByaW50
Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKIH0KIAotLy8gUHJpbnRzIHRoZSBnaXZlbiBDIHN0
cmluZyB0byB0aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFt
KiBvcykgewotICBpZiAocyA9PSBOVUxMKSB7CituYW1lc3BhY2UgeworCisvLyBQcmludHMgYSBu
dWxsLXRlcm1pbmF0ZWQgQy1zdHlsZSBzdHJpbmcgdG8gdGhlIG9zdHJlYW0uCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhcj4KK3ZvaWQgUHJpbnRDU3RyaW5nVG8oY29uc3QgQ2hhciogcywgb3N0cmVh
bSogb3MpIHsKKyAgaWYgKHMgPT0gbnVsbHB0cikgewogICAgICpvcyA8PCAiTlVMTCI7CiAgIH0g
ZWxzZSB7CiAgICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpIDw8ICIgcG9p
bnRpbmcgdG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdHJsZW4ocyksIG9zKTsK
KyAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdGQ6OmNoYXJfdHJhaXRzPENoYXI+OjpsZW5n
dGgocyksIG9zKTsKICAgfQogfQogCit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQg
UHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBv
cyk7IH0KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyOF90
KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KKyNlbmRpZgorCit2
b2lkIFByaW50VG8oY29uc3QgY2hhcjE2X3QqIHMsIG9zdHJlYW0qIG9zKSB7IFByaW50Q1N0cmlu
Z1RvKHMsIG9zKTsgfQorCit2b2lkIFByaW50VG8oY29uc3QgY2hhcjMyX3QqIHMsIG9zdHJlYW0q
IG9zKSB7IFByaW50Q1N0cmluZ1RvKHMsIG9zKTsgfQorCiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBi
ZSBjb25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25l
ZCBzaG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQg
Y2FzZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50
ZWQgYXMgd2lkZSBzdHJpbmdzLApAQCAtMzQzLDE0ICs0MzAsNyBAQCB2b2lkIFByaW50VG8oY29u
c3QgY2hhciogcywgb3N0cmVhbSogb3MpIHsKIC8vIHdjaGFyX3QgaXMgaW1wbGVtZW50ZWQgYXMg
YSBuYXRpdmUgdHlwZS4KICNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfTkFUSVZF
X1dDSEFSX1RfREVGSU5FRCkKIC8vIFByaW50cyB0aGUgZ2l2ZW4gd2lkZSBDIHN0cmluZyB0byB0
aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykg
ewotICBpZiAocyA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAg
ICAqb3MgPDwgSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lkKj4ocykgPDwgIiBwb2ludGluZyB0byAi
OwotICAgIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMsIHN0ZDo6d2NzbGVuKHMpLCBvcyk7Ci0gIH0K
LX0KK3ZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENT
dHJpbmdUbyhzLCBvcyk7IH0KICNlbmRpZiAgLy8gd2NoYXJfdCBpcyBuYXRpdmUKIAogbmFtZXNw
YWNlIHsKQEAgLTQyMCwzMSArNTAwLDI3IEBAIHZvaWQgQ29uZGl0aW9uYWxQcmludEFzVGV4dChj
b25zdCBjaGFyKiBzdHIsIHNpemVfdCBsZW5ndGgsIG9zdHJlYW0qIG9zKSB7CiAKIH0gIC8vIGFu
b255bW91cyBuYW1lc3BhY2UKIAotLy8gUHJpbnRzIGEgOjpzdHJpbmcgb2JqZWN0LgotI2lmIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdHJpbmcm
IHMsIG9zdHJlYW0qIG9zKSB7Cit2b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnN0cmlu
ZyYgcywgb3N0cmVhbSogb3MpIHsKICAgaWYgKFByaW50Q2hhcnNBc1N0cmluZ1RvKHMuZGF0YSgp
LCBzLnNpemUoKSwgb3MpID09IGtIZXhFc2NhcGUpIHsKICAgICBpZiAoR1RFU1RfRkxBRyhwcmlu
dF91dGY4KSkgewogICAgICAgQ29uZGl0aW9uYWxQcmludEFzVGV4dChzLmRhdGEoKSwgcy5zaXpl
KCksIG9zKTsKICAgICB9CiAgIH0KIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJ
TkcKIAotdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHMsIG9zdHJlYW0q
IG9zKSB7Ci0gIGlmIChQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9z
KSA9PSBrSGV4RXNjYXBlKSB7Ci0gICAgaWYgKEdURVNUX0ZMQUcocHJpbnRfdXRmOCkpIHsKLSAg
ICAgIENvbmRpdGlvbmFsUHJpbnRBc1RleHQocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7Ci0gICAg
fQotICB9CisjaWZkZWYgX19jcHBfY2hhcjhfdAordm9pZCBQcmludFU4U3RyaW5nVG8oY29uc3Qg
OjpzdGQ6OnU4c3RyaW5nJiBzLCBvc3RyZWFtKiBvcykgeworICBQcmludENoYXJzQXNTdHJpbmdU
byhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKK30KKyNlbmRpZgorCit2b2lkIFByaW50VTE2U3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKKyAgUHJpbnRD
aGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7CiB9CiAKLS8vIFByaW50cyBh
IDo6d3N0cmluZyBvYmplY3QuCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi12b2lkIFBy
aW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKK3ZvaWQg
UHJpbnRVMzJTdHJpbmdUbyhjb25zdCA6OnN0ZDo6dTMyc3RyaW5nJiBzLCBvc3RyZWFtKiBvcykg
ewogICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKIH0KLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCiAKICNpZiBHVEVTVF9IQVNfU1REX1dT
VFJJTkcKIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIG9z
dHJlYW0qIG9zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QtdGVzdC1wYXJ0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXRlc3Qt
cGFydC5jYwppbmRleCBjODg4NjBkOTIzODU2MTllYTY3NjQ4ODQ1ODM5ZDE0NTgzZjExMTQ2Li5h
OTM4NjgzY2VkZWQyZjM0Njk3ZWZkODMwNWE2NzM2ODA2NGQwMTk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10ZXN0LXBhcnQuY2MKQEAgLTMxLDYgKzMxLDggQEAK
IC8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUg
VGVzdCkKIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oIgorCisjaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogI2luY2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5h
bC1pbmwuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewpAQCAtNDEsMTggKzQzLDIzIEBAIHVzaW5n
IGludGVybmFsOjpHZXRVbml0VGVzdEltcGw7CiAvLyBpbiBpdC4KIHN0ZDo6c3RyaW5nIFRlc3RQ
YXJ0UmVzdWx0OjpFeHRyYWN0U3VtbWFyeShjb25zdCBjaGFyKiBtZXNzYWdlKSB7CiAgIGNvbnN0
IGNoYXIqIGNvbnN0IHN0YWNrX3RyYWNlID0gc3Ryc3RyKG1lc3NhZ2UsIGludGVybmFsOjprU3Rh
Y2tUcmFjZU1hcmtlcik7Ci0gIHJldHVybiBzdGFja190cmFjZSA9PSBOVUxMID8gbWVzc2FnZSA6
Ci0gICAgICBzdGQ6OnN0cmluZyhtZXNzYWdlLCBzdGFja190cmFjZSk7CisgIHJldHVybiBzdGFj
a190cmFjZSA9PSBudWxscHRyID8gbWVzc2FnZSA6IHN0ZDo6c3RyaW5nKG1lc3NhZ2UsIHN0YWNr
X3RyYWNlKTsKIH0KIAogLy8gUHJpbnRzIGEgVGVzdFBhcnRSZXN1bHQgb2JqZWN0Lgogc3RkOjpv
c3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFRlc3RQYXJ0UmVzdWx0
JiByZXN1bHQpIHsKLSAgcmV0dXJuIG9zCi0gICAgICA8PCByZXN1bHQuZmlsZV9uYW1lKCkgPDwg
IjoiIDw8IHJlc3VsdC5saW5lX251bWJlcigpIDw8ICI6ICIKLSAgICAgIDw8IChyZXN1bHQudHlw
ZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcyA/ICJTdWNjZXNzIiA6Ci0gICAgICAgICAg
cmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSA/ICJGYXRhbCBm
YWlsdXJlIiA6Ci0gICAgICAgICAgIk5vbi1mYXRhbCBmYWlsdXJlIikgPDwgIjpcbiIKLSAgICAg
IDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRsOworICByZXR1cm4gb3MgPDwgaW50ZXJu
YWw6OkZvcm1hdEZpbGVMb2NhdGlvbihyZXN1bHQuZmlsZV9uYW1lKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5saW5lX251bWJlcigpKQorICAg
ICAgICAgICAgPDwgIiAiCisgICAgICAgICAgICA8PCAocmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFy
dFJlc3VsdDo6a1N1Y2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgPyAiU3VjY2VzcyIKKyAgICAg
ICAgICAgICAgICAgICAgOiByZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU2tpcAor
ICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJTa2lwcGVkIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICA6IHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiRmF0YWwgZmFpbHVyZSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiTm9uLWZhdGFsIGZhaWx1cmUiKQorICAgICAg
ICAgICAgPDwgIjpcbiIKKyAgICAgICAgICAgIDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjpl
bmRsOwogfQogCiAvLyBBcHBlbmRzIGEgVGVzdFBhcnRSZXN1bHQgdG8gdGhlIGFycmF5LgpAQCAt
NjcsNyArNzQsNyBAQCBjb25zdCBUZXN0UGFydFJlc3VsdCYgVGVzdFBhcnRSZXN1bHRBcnJheTo6
R2V0VGVzdFBhcnRSZXN1bHQoaW50IGluZGV4KSBjb25zdCB7CiAgICAgaW50ZXJuYWw6OnBvc2l4
OjpBYm9ydCgpOwogICB9CiAKLSAgcmV0dXJuIGFycmF5X1tpbmRleF07CisgIHJldHVybiBhcnJh
eV9bc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwogfQogCiAvLyBSZXR1cm5zIHRoZSBudW1i
ZXIgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0aGUgYXJyYXkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10ZXN0LmNjCmluZGV4IDFkYzJhZDM4YmFi
OThiYzE0NmMxNjE1OGE0N2RhMWUzOTRiZjM4NWYuLmMwMmMzZGY2NTk5NTI3YWY4NzhkMjhmNGFh
MjMxMWE2MWE2NWM0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9n
dGVzdC10eXBlZC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC10eXBlZC10ZXN0LmNjCkBAIC0zNSw4ICszNSw2IEBACiBuYW1lc3BhY2UgdGVzdGluZyB7CiBu
YW1lc3BhY2UgaW50ZXJuYWwgewogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiAvLyBT
a2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgaW4gc3RyLiBSZXR1cm5zIGFuIGVtcHR5
IHN0cmluZyBpZiBzdHIKIC8vIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgog
c3RhdGljIGNvbnN0IGNoYXIqIFNraXBTcGFjZXMoY29uc3QgY2hhciogc3RyKSB7CkBAIC00OCw3
ICs0Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBTa2lwU3BhY2VzKGNvbnN0IGNoYXIqIHN0cikg
ewogc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEludG9UZXN0TmFtZXMoY29u
c3QgY2hhciogc3JjKSB7CiAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBuYW1lX3ZlYzsKICAg
c3JjID0gU2tpcFNwYWNlcyhzcmMpOwotICBmb3IgKDsgc3JjICE9IE5VTEw7IHNyYyA9IFNraXBD
b21tYShzcmMpKSB7CisgIGZvciAoOyBzcmMgIT0gbnVsbHB0cjsgc3JjID0gU2tpcENvbW1hKHNy
YykpIHsKICAgICBuYW1lX3ZlYy5wdXNoX2JhY2soU3RyaXBUcmFpbGluZ1NwYWNlcyhHZXRQcmVm
aXhVbnRpbENvbW1hKHNyYykpKTsKICAgfQogICByZXR1cm4gbmFtZV92ZWM7CkBAIC01Nyw4ICs1
NSwxMSBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IFNwbGl0SW50b1Rlc3ROYW1l
cyhjb25zdCBjaGFyKiBzcmMpIHsKIC8vIFZlcmlmaWVzIHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBt
YXRjaCB0aGUgdGVzdCBuYW1lcyBpbgogLy8gcmVnaXN0ZXJlZF90ZXN0c187IHJldHVybnMgcmVn
aXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBvcgogLy8gYWJvcnRzIHRoZSBwcm9ncmFtIG90
aGVyd2lzZS4KLWNvbnN0IGNoYXIqIFR5cGVkVGVzdENhc2VQU3RhdGU6OlZlcmlmeVJlZ2lzdGVy
ZWRUZXN0TmFtZXMoCi0gICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIq
IHJlZ2lzdGVyZWRfdGVzdHMpIHsKK2NvbnN0IGNoYXIqIFR5cGVkVGVzdFN1aXRlUFN0YXRlOjpW
ZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAorICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFt
ZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCisgICAgY29uc3QgY2hhciogcmVnaXN0ZXJl
ZF90ZXN0cykgeworICBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKHRlc3Rfc3Vp
dGVfbmFtZSwgQ29kZUxvY2F0aW9uKGZpbGUsIGxpbmUpKTsKKwogICB0eXBlZGVmIFJlZ2lzdGVy
ZWRUZXN0c01hcDo6Y29uc3RfaXRlcmF0b3IgUmVnaXN0ZXJlZFRlc3RJdGVyOwogICByZWdpc3Rl
cmVkXyA9IHRydWU7CiAKQEAgLTc1LDIxICs3NiwxMSBAQCBjb25zdCBjaGFyKiBUeXBlZFRlc3RD
YXNlUFN0YXRlOjpWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAogICAgICAgY29udGludWU7CiAg
ICAgfQogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZvciAoUmVnaXN0ZXJlZFRlc3RJ
dGVyIGl0ID0gcmVnaXN0ZXJlZF90ZXN0c18uYmVnaW4oKTsKLSAgICAgICAgIGl0ICE9IHJlZ2lz
dGVyZWRfdGVzdHNfLmVuZCgpOwotICAgICAgICAgKytpdCkgewotICAgICAgaWYgKG5hbWUgPT0g
aXQtPmZpcnN0KSB7Ci0gICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ICB9Ci0gICAgfQotCi0gICAgaWYgKGZvdW5kKSB7CisgICAgaWYgKHJlZ2lzdGVyZWRfdGVzdHNf
LmNvdW50KG5hbWUpICE9IDApIHsKICAgICAgIHRlc3RzLmluc2VydChuYW1lKTsKICAgICB9IGVs
c2UgewogICAgICAgZXJyb3JzIDw8ICJObyB0ZXN0IG5hbWVkICIgPDwgbmFtZQotICAgICAgICAg
ICAgIDw8ICIgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVzdCBjYXNlLlxuIjsKKyAgICAgICAgICAg
ICA8PCAiIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3Qgc3VpdGUuXG4iOwogICAgIH0KICAgfQog
CkBAIC0xMTIsNyArMTAzLDUgQEAgY29uc3QgY2hhciogVHlwZWRUZXN0Q2FzZVBTdGF0ZTo6VmVy
aWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKICAgcmV0dXJuIHJlZ2lzdGVyZWRfdGVzdHM7CiB9CiAK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zcmMvZ3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QuY2MKaW5kZXggOTZiMDdjNjhhYmIwNWEyZGJlMWJlMDlmMWMzNTM1YmNmNzlkMDAzMC4uOTA4
OWY1MGQ0OTJjN2M4Yzg2NWQzNjg0Njk4NDM5ZDU4MDgyOGU2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NyYy9ndGVzdC5jYwpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0
LXNwaS5oIgogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAg
LTQ0LDYgKzQzLDkgQEAKICNpbmNsdWRlIDx3Y3R5cGUuaD4KIAogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxjaHJvbm8+ICAvLyBOT0xJTlQKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNs
dWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGlvbWFuaXA+CiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPGxpc3Q+CkBAIC01NCwxMCArNTYsNiBAQAogCiAjaWYgR1RFU1RfT1NfTElOVVgKIAot
Ly8gRklYTUU6IFVzZSBhdXRvY29uZiB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IG9mCi0vLyBnZXR0
aW1lb2ZkYXkoKS4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKLQogIyBpbmNs
dWRlIDxmY250bC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPGxpbWl0cy5oPiAgLy8gTk9MSU5U
CiAjIGluY2x1ZGUgPHNjaGVkLmg+ICAvLyBOT0xJTlQKQEAgLTY4LDEyICs2Niw3IEBACiAjIGlu
Y2x1ZGUgPHVuaXN0ZC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPHN0cmluZz4KIAotI2VsaWYg
R1RFU1RfT1NfU1lNQklBTgotIyBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQotIyBp
bmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCi0KICNlbGlmIEdURVNUX09TX1pPUwotIyBk
ZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAg
Ly8gTk9MSU5UCiAKIC8vIE9uIHovT1Mgd2UgYWRkaXRpb25hbGx5IG5lZWQgc3RyaW5ncy5oIGZv
ciBzdHJjYXNlY21wLgpAQCAtODYsMzQgKzc5LDI0IEBACiAKICNlbGlmIEdURVNUX09TX1dJTkRP
V1MgIC8vIFdlIGFyZSBvbiBXaW5kb3dzIHByb3Blci4KIAorIyBpbmNsdWRlIDx3aW5kb3dzLmg+
ICAvLyBOT0xJTlQKKyMgdW5kZWYgbWluCisKKyNpZmRlZiBfTVNDX1ZFUgorIyBpbmNsdWRlIDxj
cnRkYmcuaD4gIC8vIE5PTElOVAorI2VuZGlmCisKICMgaW5jbHVkZSA8aW8uaD4gIC8vIE5PTElO
VAogIyBpbmNsdWRlIDxzeXMvdGltZWIuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPiAgLy8gTk9MSU5UCiAKICMg
aWYgR1RFU1RfT1NfV0lORE9XU19NSU5HVwotLy8gTWluR1cgaGFzIGdldHRpbWVvZmRheSgpIGJ1
dCBub3QgX2Z0aW1lNjQoKS4KLS8vIEZJWE1FOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWls
YWJpbGl0eSBvZgotLy8gICBnZXR0aW1lb2ZkYXkoKS4KLS8vIEZJWE1FOiBUaGVyZSBhcmUgb3Ro
ZXIgd2F5cyB0byBnZXQgdGhlIHRpbWUgb24KLS8vICAgV2luZG93cywgbGlrZSBHZXRUaWNrQ291
bnQoKSBvciBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpLiAgTWluR1cKLS8vICAgc3VwcG9ydHMg
dGhlc2UuICBjb25zaWRlciB1c2luZyB0aGVtIGluc3RlYWQuCi0jICBkZWZpbmUgR1RFU1RfSEFT
X0dFVFRJTUVPRkRBWV8gMQogIyAgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAogIyBl
bmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NSU5HVwogCi0vLyBjcHBsaW50IHRoaW5rcyB0aGF0
IHRoZSBoZWFkZXIgaXMgYWxyZWFkeSBpbmNsdWRlZCwgc28gd2Ugd2FudCB0bwotLy8gc2lsZW5j
ZSBpdC4KLSMgaW5jbHVkZSA8d2luZG93cy5oPiAgLy8gTk9MSU5UCi0jIHVuZGVmIG1pbgotCiAj
ZWxzZQogCi0vLyBBc3N1bWUgb3RoZXIgcGxhdGZvcm1zIGhhdmUgZ2V0dGltZW9mZGF5KCkuCi0v
LyBGSVhNRTogVXNlIGF1dG9jb25mIHRvIGRldGVjdCBhdmFpbGFiaWxpdHkgb2YKLS8vICAgZ2V0
dGltZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9GREFZXyAxCi0KIC8vIGNw
cGxpbnQgdGhpbmtzIHRoYXQgdGhlIGhlYWRlciBpcyBhbHJlYWR5IGluY2x1ZGVkLCBzbyB3ZSB3
YW50IHRvCiAvLyBzaWxlbmNlIGl0LgogIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5U
CkBAIC0xNjAsMTQgKzE0MywxNCBAQCB1c2luZyBpbnRlcm5hbDo6U2h1ZmZsZTsKIAogLy8gQ29u
c3RhbnRzLgogCi0vLyBBIHRlc3Qgd2hvc2UgdGVzdCBjYXNlIG5hbWUgb3IgdGVzdCBuYW1lIG1h
dGNoZXMgdGhpcyBmaWx0ZXIgaXMKKy8vIEEgdGVzdCB3aG9zZSB0ZXN0IHN1aXRlIG5hbWUgb3Ig
dGVzdCBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMKIC8vIGRpc2FibGVkIGFuZCBub3QgcnVu
Lgogc3RhdGljIGNvbnN0IGNoYXIga0Rpc2FibGVUZXN0RmlsdGVyW10gPSAiRElTQUJMRURfKjoq
L0RJU0FCTEVEXyoiOwogCi0vLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyBm
aWx0ZXIgaXMgY29uc2lkZXJlZCBhIGRlYXRoCi0vLyB0ZXN0IGNhc2UgYW5kIHdpbGwgYmUgcnVu
IGJlZm9yZSB0ZXN0IGNhc2VzIHdob3NlIG5hbWUgZG9lc24ndAorLy8gQSB0ZXN0IHN1aXRlIHdo
b3NlIG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRlciBpcyBjb25zaWRlcmVkIGEgZGVhdGgKKy8vIHRl
c3Qgc3VpdGUgYW5kIHdpbGwgYmUgcnVuIGJlZm9yZSB0ZXN0IHN1aXRlcyB3aG9zZSBuYW1lIGRv
ZXNuJ3QKIC8vIG1hdGNoIHRoaXMgZmlsdGVyLgotc3RhdGljIGNvbnN0IGNoYXIga0RlYXRoVGVz
dENhc2VGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7CitzdGF0aWMgY29uc3Qg
Y2hhciBrRGVhdGhUZXN0U3VpdGVGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7
CiAKIC8vIEEgdGVzdCBmaWx0ZXIgdGhhdCBtYXRjaGVzIGV2ZXJ5dGhpbmcuCiBzdGF0aWMgY29u
c3QgY2hhciBrVW5pdmVyc2FsRmlsdGVyW10gPSAiKiI7CkBAIC0xOTAsMjAgKzE3MywyMCBAQCBu
YW1lc3BhY2UgaW50ZXJuYWwgewogLy8gc3RhY2sgdHJhY2UuCiBjb25zdCBjaGFyIGtTdGFja1Ry
YWNlTWFya2VyW10gPSAiXG5TdGFjayB0cmFjZTpcbiI7CiAKLS8vIGdfaGVscF9mbGFnIGlzIHRy
dWUgaWZmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVpdmFsZW50IGZvcm0gaXMKLS8vIHNwZWNp
ZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLy8gZ19oZWxwX2ZsYWcgaXMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtCisvLyBpcyBzcGVj
aWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KIGJvb2wgZ19oZWxwX2ZsYWcgPSBmYWxzZTsKIAog
Ly8gVXRpbHR5IGZ1bmN0aW9uIHRvIE9wZW4gRmlsZSBmb3IgV3JpdGluZwogc3RhdGljIEZJTEUq
IE9wZW5GaWxlRm9yV3JpdGluZyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2ZpbGUpIHsKLSAg
RklMRSogZmlsZW91dCA9IE5VTEw7CisgIEZJTEUqIGZpbGVvdXQgPSBudWxscHRyOwogICBGaWxl
UGF0aCBvdXRwdXRfZmlsZV9wYXRoKG91dHB1dF9maWxlKTsKICAgRmlsZVBhdGggb3V0cHV0X2Rp
cihvdXRwdXRfZmlsZV9wYXRoLlJlbW92ZUZpbGVOYW1lKCkpOwogCiAgIGlmIChvdXRwdXRfZGly
LkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSkgewogICAgIGZpbGVvdXQgPSBwb3NpeDo6
Rk9wZW4ob3V0cHV0X2ZpbGUuY19zdHIoKSwgInciKTsKICAgfQotICBpZiAoZmlsZW91dCA9PSBO
VUxMKSB7CisgIGlmIChmaWxlb3V0ID09IG51bGxwdHIpIHsKICAgICBHVEVTVF9MT0dfKEZBVEFM
KSA8PCAiVW5hYmxlIHRvIG9wZW4gZmlsZSBcIiIgPDwgb3V0cHV0X2ZpbGUgPDwgIlwiIjsKICAg
fQogICByZXR1cm4gZmlsZW91dDsKQEAgLTIxNiwyNyArMTk5LDQxIEBAIHN0YXRpYyBGSUxFKiBP
cGVuRmlsZUZvcldyaXRpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9maWxlKSB7CiBzdGF0
aWMgY29uc3QgY2hhciogR2V0RGVmYXVsdEZpbHRlcigpIHsKICAgY29uc3QgY2hhciogY29uc3Qg
dGVzdGJyaWRnZV90ZXN0X29ubHkgPQogICAgICAgaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRF
U1RCUklER0VfVEVTVF9PTkxZIik7Ci0gIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBOVUxM
KSB7CisgIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJu
IHRlc3RicmlkZ2VfdGVzdF9vbmx5OwogICB9CiAgIHJldHVybiBrVW5pdmVyc2FsRmlsdGVyOwog
fQogCisvLyBCYXplbCBwYXNzZXMgaW4gdGhlIGFyZ3VtZW50IHRvICctLXRlc3RfcnVubmVyX2Zh
aWxfZmFzdCcgdmlhIHRoZQorLy8gVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QgZW52
aXJvbm1lbnQgdmFyaWFibGUuCitzdGF0aWMgYm9vbCBHZXREZWZhdWx0RmFpbEZhc3QoKSB7Cisg
IGNvbnN0IGNoYXIqIGNvbnN0IHRlc3RicmlkZ2VfdGVzdF9ydW5uZXJfZmFpbF9mYXN0ID0KKyAg
ICAgIGludGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNUQlJJREdFX1RFU1RfUlVOTkVSX0ZBSUxf
RkFTVCIpOworICBpZiAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3QgIT0gbnVsbHB0
cikgeworICAgIHJldHVybiBzdHJjbXAodGVzdGJyaWRnZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3Qs
ICIxIikgPT0gMDsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK0dURVNUX0RFRklORV9ib29s
XygKKyAgICBmYWlsX2Zhc3QsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJmYWlsX2Zhc3Qi
LCBHZXREZWZhdWx0RmFpbEZhc3QoKSksCisgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgYSB0ZXN0
IGZhaWx1cmUgc2hvdWxkIHN0b3AgZnVydGhlciB0ZXN0IGV4ZWN1dGlvbi4iKTsKKwogR1RFU1Rf
REVGSU5FX2Jvb2xfKAogICAgIGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzLAogICAgIGludGVybmFs
OjpCb29sRnJvbUdUZXN0RW52KCJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsIGZhbHNlKSwKICAg
ICAiUnVuIGRpc2FibGVkIHRlc3RzIHRvbywgaW4gYWRkaXRpb24gdG8gdGhlIHRlc3RzIG5vcm1h
bGx5IGJlaW5nIHJ1bi4iKTsKIAogR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGJyZWFrX29uX2Zh
aWx1cmUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImJyZWFrX29uX2ZhaWx1cmUi
LCBmYWxzZSksCi0gICAgIlRydWUgaWZmIGEgZmFpbGVkIGFzc2VydGlvbiBzaG91bGQgYmUgYSBk
ZWJ1Z2dlciBicmVhay1wb2ludC4iKTsKKyAgICBicmVha19vbl9mYWlsdXJlLCBpbnRlcm5hbDo6
Qm9vbEZyb21HVGVzdEVudigiYnJlYWtfb25fZmFpbHVyZSIsIGZhbHNlKSwKKyAgICAiVHJ1ZSBp
ZiBhbmQgb25seSBpZiBhIGZhaWxlZCBhc3NlcnRpb24gc2hvdWxkIGJlIGEgZGVidWdnZXIgIgor
ICAgICJicmVhay1wb2ludC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIGNhdGNoX2V4
Y2VwdGlvbnMsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoImNhdGNoX2V4Y2VwdGlv
bnMiLCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgc2hvdWxkIGNh
dGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVzdCBmYWlsdXJlcy4iKTsKK0dURVNU
X0RFRklORV9ib29sXyhjYXRjaF9leGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgIGludGVy
bmFsOjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNlcHRpb25zIiwgdHJ1ZSksCisgICAgICAg
ICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAg
ICAgICAgICAgICIgc2hvdWxkIGNhdGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVz
dCBmYWlsdXJlcy4iKTsKIAogR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgY29sb3IsCkBAIC0y
ODQsMTYgKzI4MSwxNiBAQCBHVEVTVF9ERUZJTkVfc3RyaW5nXygKICAgICAiZGlnaXRzLiIpOwog
CiBHVEVTVF9ERUZJTkVfYm9vbF8oCi0gICAgcHJpbnRfdGltZSwKLSAgICBpbnRlcm5hbDo6Qm9v
bEZyb21HVGVzdEVudigicHJpbnRfdGltZSIsIHRydWUpLAotICAgICJUcnVlIGlmZiAiIEdURVNU
X05BTUVfCi0gICAgIiBzaG91bGQgZGlzcGxheSBlbGFwc2VkIHRpbWUgaW4gdGV4dCBvdXRwdXQu
Iik7CisgICAgYnJpZWYsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJicmllZiIsIGZhbHNl
KSwKKyAgICAiVHJ1ZSBpZiBvbmx5IHRlc3QgZmFpbHVyZXMgc2hvdWxkIGJlIGRpc3BsYXllZCBp
biB0ZXh0IG91dHB1dC4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHByaW50X3V0Zjgs
Ci0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0ZjgiLCB0cnVlKSwKLSAg
ICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIgcHJpbnRzIFVURjggY2hhcmFjdGVycyBh
cyB0ZXh0LiIpOworR1RFU1RfREVGSU5FX2Jvb2xfKHByaW50X3RpbWUsIGludGVybmFsOjpCb29s
RnJvbUdUZXN0RW52KCJwcmludF90aW1lIiwgdHJ1ZSksCisgICAgICAgICAgICAgICAgICAgIlRy
dWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAgICAgICAgICAgICIgc2hv
dWxkIGRpc3BsYXkgZWxhcHNlZCB0aW1lIGluIHRleHQgb3V0cHV0LiIpOworCitHVEVTVF9ERUZJ
TkVfYm9vbF8ocHJpbnRfdXRmOCwgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3V0
ZjgiLCB0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdU
RVNUX05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBwcmludHMgVVRGOCBjaGFyYWN0ZXJzIGFz
IHRleHQuIik7CiAKIEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgcmFuZG9tX3NlZWQsCkBAIC0z
MDcsMTYgKzMwNCwxNCBAQCBHVEVTVF9ERUZJTkVfaW50MzJfKAogICAgICJIb3cgbWFueSB0aW1l
cyB0byByZXBlYXQgZWFjaCB0ZXN0LiAgU3BlY2lmeSBhIG5lZ2F0aXZlIG51bWJlciAiCiAgICAg
ImZvciByZXBlYXRpbmcgZm9yZXZlci4gIFVzZWZ1bCBmb3Igc2hha2luZyBvdXQgZmxha3kgdGVz
dHMuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAgICBzaG93X2ludGVybmFsX3N0YWNrX2Zy
YW1lcywgZmFsc2UsCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8gIiBzaG91bGQgaW5jbHVk
ZSBpbnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCi0gICAgInByaW50aW5nIHRlc3QgZmFpbHVy
ZSBzdGFjayB0cmFjZXMuIik7CitHVEVTVF9ERUZJTkVfYm9vbF8oc2hvd19pbnRlcm5hbF9zdGFj
a19mcmFtZXMsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICJUcnVlIGlmIGFuZCBvbmx5IGlm
ICIgR1RFU1RfTkFNRV8KKyAgICAgICAgICAgICAgICAgICAiIHNob3VsZCBpbmNsdWRlIGludGVy
bmFsIHN0YWNrIGZyYW1lcyB3aGVuICIKKyAgICAgICAgICAgICAgICAgICAicHJpbnRpbmcgdGVz
dCBmYWlsdXJlIHN0YWNrIHRyYWNlcy4iKTsKIAotR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHNo
dWZmbGUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInNodWZmbGUiLCBmYWxzZSks
Ci0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHNob3VsZCByYW5kb21pemUgdGVz
dHMnIG9yZGVyIG9uIGV2ZXJ5IHJ1bi4iKTsKK0dURVNUX0RFRklORV9ib29sXyhzaHVmZmxlLCBp
bnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigic2h1ZmZsZSIsIGZhbHNlKSwKKyAgICAgICAgICAg
ICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdURVNUX05BTUVfCisgICAgICAgICAgICAg
ICAgICAgIiBzaG91bGQgcmFuZG9taXplIHRlc3RzJyBvcmRlciBvbiBldmVyeSBydW4uIik7CiAK
IEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgc3RhY2tfdHJhY2VfZGVwdGgsCkBAIC0zNTAsMTAg
KzM0NSwxMCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51
bWJlciBmcm9tIFswLCByYW5nZSksIHVzaW5nIGEgTGluZWFyCiAvLyBDb25ncnVlbnRpYWwgR2Vu
ZXJhdG9yIChMQ0cpLiAgQ3Jhc2hlcyBpZiAncmFuZ2UnIGlzIDAgb3IgZ3JlYXRlcgogLy8gdGhh
biBrTWF4UmFuZ2UuCi1VSW50MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKK3Vp
bnQzMl90IFJhbmRvbTo6R2VuZXJhdGUodWludDMyX3QgcmFuZ2UpIHsKICAgLy8gVGhlc2UgY29u
c3RhbnRzIGFyZSB0aGUgc2FtZSBhcyBhcmUgdXNlZCBpbiBnbGliYydzIHJhbmQoMykuCiAgIC8v
IFVzZSB3aWRlciB0eXBlcyB0aGFuIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHVuc2lnbmVkIG92ZXJm
bG93IGRpYWdub3N0aWNzLgotICBzdGF0ZV8gPSBzdGF0aWNfY2FzdDxVSW50MzI+KDExMDM1MTUy
NDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsKKyAgc3RhdGVfID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KDExMDM1MTUyNDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsK
IAogICBHVEVTVF9DSEVDS18ocmFuZ2UgPiAwKQogICAgICAgPDwgIkNhbm5vdCBnZW5lcmF0ZSBh
IG51bWJlciBpbiB0aGUgcmFuZ2UgWzAsIDApLiI7CkBAIC0zNjcsMTYgKzM2MiwxNiBAQCBVSW50
MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2UpIHsKICAgcmV0dXJuIHN0YXRlXyAlIHJh
bmdlOwogfQogCi0vLyBHVGVzdElzSW5pdGlhbGl6ZWQoKSByZXR1cm5zIHRydWUgaWZmIHRoZSB1
c2VyIGhhcyBpbml0aWFsaXplZAorLy8gR1Rlc3RJc0luaXRpYWxpemVkKCkgcmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB1c2VyIGhhcyBpbml0aWFsaXplZAogLy8gR29vZ2xlIFRlc3Qu
ICBVc2VmdWwgZm9yIGNhdGNoaW5nIHRoZSB1c2VyIG1pc3Rha2Ugb2Ygbm90IGluaXRpYWxpemlu
ZwogLy8gR29vZ2xlIFRlc3QgYmVmb3JlIGNhbGxpbmcgUlVOX0FMTF9URVNUUygpLgogc3RhdGlj
IGJvb2wgR1Rlc3RJc0luaXRpYWxpemVkKCkgeyByZXR1cm4gR2V0QXJndnMoKS5zaXplKCkgPiAw
OyB9CiAKLS8vIEl0ZXJhdGVzIG92ZXIgYSB2ZWN0b3Igb2YgVGVzdENhc2VzLCBrZWVwaW5nIGEg
cnVubmluZyBzdW0gb2YgdGhlCisvLyBJdGVyYXRlcyBvdmVyIGEgdmVjdG9yIG9mIFRlc3RTdWl0
ZXMsIGtlZXBpbmcgYSBydW5uaW5nIHN1bSBvZiB0aGUKIC8vIHJlc3VsdHMgb2YgY2FsbGluZyBh
IGdpdmVuIGludC1yZXR1cm5pbmcgbWV0aG9kIG9uIGVhY2guCiAvLyBSZXR1cm5zIHRoZSBzdW0u
Ci1zdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENh
c2UqPiYgY2FzZV9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoVGVz
dENhc2U6OiptZXRob2QpKCkgY29uc3QpIHsKK3N0YXRpYyBpbnQgU3VtT3ZlclRlc3RTdWl0ZUxp
c3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIGNhc2VfbGlzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IChUZXN0U3VpdGU6OiptZXRob2QpKCkgY29uc3QpIHsK
ICAgaW50IHN1bSA9IDA7CiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FzZV9saXN0LnNpemUo
KTsgaSsrKSB7CiAgICAgc3VtICs9IChjYXNlX2xpc3RbaV0tPiptZXRob2QpKCk7CkBAIC0zODQs
MjAgKzM3OSwyMCBAQCBzdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2
ZWN0b3I8VGVzdENhc2UqPiYgY2FzZV9saXN0LAogICByZXR1cm4gc3VtOwogfQogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgcGFzc2VkLgotc3RhdGljIGJvb2wgVGVzdENhc2VQ
YXNzZWQoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICByZXR1cm4gdGVzdF9jYXNlLT5z
aG91bGRfcnVuKCkgJiYgdGVzdF9jYXNlLT5QYXNzZWQoKTsKKy8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCitzdGF0aWMgYm9vbCBUZXN0U3VpdGVQ
YXNzZWQoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7CisgIHJldHVybiB0ZXN0X3N1aXRl
LT5zaG91bGRfcnVuKCkgJiYgdGVzdF9zdWl0ZS0+UGFzc2VkKCk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBmYWlsZWQuCi1zdGF0aWMgYm9vbCBUZXN0Q2FzZUZhaWxl
ZChjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gIHJldHVybiB0ZXN0X2Nhc2UtPnNob3Vs
ZF9ydW4oKSAmJiB0ZXN0X2Nhc2UtPkZhaWxlZCgpOworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRoZSB0ZXN0IHN1aXRlIGZhaWxlZC4KK3N0YXRpYyBib29sIFRlc3RTdWl0ZUZhaWxl
ZChjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNo
b3VsZF9ydW4oKSAmJiB0ZXN0X3N1aXRlLT5GYWlsZWQoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiB0ZXN0X2Nhc2UgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhhdCBzaG91bGQKLS8v
IHJ1bi4KLXN0YXRpYyBib29sIFNob3VsZFJ1blRlc3RDYXNlKGNvbnN0IFRlc3RDYXNlKiB0ZXN0
X2Nhc2UpIHsKLSAgcmV0dXJuIHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpOworLy8gUmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3Rfc3VpdGUgY29udGFpbnMgYXQgbGVhc3Qgb25lIHRlc3Qg
dGhhdAorLy8gc2hvdWxkIHJ1bi4KK3N0YXRpYyBib29sIFNob3VsZFJ1blRlc3RTdWl0ZShjb25z
dCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNob3VsZF9y
dW4oKTsKIH0KIAogLy8gQXNzZXJ0SGVscGVyIGNvbnN0cnVjdG9yLgpAQCAtNDIzLDggKzQxOCwx
NjEgQEAgdm9pZCBBc3NlcnRIZWxwZXI6Om9wZXJhdG9yPShjb25zdCBNZXNzYWdlJiBtZXNzYWdl
KSBjb25zdCB7CiAgICAgICAgICAgICAgICAgICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBN
dXRleCBmb3IgbGlua2VkIHBvaW50ZXJzLgotR1RFU1RfQVBJXyBHVEVTVF9ERUZJTkVfU1RBVElD
X01VVEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOworbmFtZXNwYWNlIHsKKworLy8gV2hlbiBURVNU
X1AgaXMgZm91bmQgd2l0aG91dCBhIG1hdGNoaW5nIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUAor
Ly8gdG8gY3JlYXRlcyB0ZXN0IGNhc2VzIGZvciBpdCwgYSBzeW50ZXRpYyB0ZXN0IGNhc2UgaXMK
Ky8vIGluc2VydGVkIHRvIHJlcG9ydCBldGhlciBhbiBlcnJvciBvciBhIGxvZyBtZXNzYWdlLgor
Ly8KKy8vIFRoaXMgY29uZmlndXJhdGlvbiBiaXQgd2lsbCBsaWtlbHkgYmUgcmVtb3ZlZCBhdCBz
b21lIHBvaW50LgorY29uc3RleHByIGJvb2wga0Vycm9yT25Vbmluc3RhbnRpYXRlZFBhcmFtZXRl
cml6ZWRUZXN0ID0gdHJ1ZTsKK2NvbnN0ZXhwciBib29sIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRU
eXBlUGFyYW1ldGVyaXplZFRlc3QgPSB0cnVlOworCisvLyBBIHRlc3QgdGhhdCBmYWlscyBhdCBh
IGdpdmVuIGZpbGUvbGluZSBsb2NhdGlvbiB3aXRoIGEgZ2l2ZW4gbWVzc2FnZS4KK2NsYXNzIEZh
aWx1cmVUZXN0IDogcHVibGljIFRlc3QgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgRmFpbHVyZVRl
c3QoY29uc3QgQ29kZUxvY2F0aW9uJiBsb2MsIHN0ZDo6c3RyaW5nIGVycm9yX21lc3NhZ2UsCisg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXNfZXJyb3IpCisgICAgICA6IGxvY18obG9jKSwK
KyAgICAgICAgZXJyb3JfbWVzc2FnZV8oc3RkOjptb3ZlKGVycm9yX21lc3NhZ2UpKSwKKyAgICAg
ICAgYXNfZXJyb3JfKGFzX2Vycm9yKSB7fQorCisgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7
CisgICAgaWYgKGFzX2Vycm9yXykgeworICAgICAgQXNzZXJ0SGVscGVyKFRlc3RQYXJ0UmVzdWx0
OjprTm9uRmF0YWxGYWlsdXJlLCBsb2NfLmZpbGUuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAg
ICBsb2NfLmxpbmUsICIiKSA9IE1lc3NhZ2UoKSA8PCBlcnJvcl9tZXNzYWdlXzsKKyAgICB9IGVs
c2UgeworICAgICAgc3RkOjpjb3V0IDw8IGVycm9yX21lc3NhZ2VfIDw8IHN0ZDo6ZW5kbDsKKyAg
ICB9CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IENvZGVMb2NhdGlvbiBsb2NfOworICBjb25z
dCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlXzsKKyAgY29uc3QgYm9vbCBhc19lcnJvcl87Cit9
OworCisKK30gIC8vIG5hbWVzcGFjZQorCitzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIEdldElnbm9y
ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpIHsKKyAgcmV0dXJuIFVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpLT5pbXBsKCktPmlnbm9yZWRfcGFyYW1ldGVyaXplZF90ZXN0X3N1aXRlcygpOworfQor
CisvLyBBZGQgYSBnaXZlbiB0ZXN0X3N1aXQgdG8gdGhlIGxpc3Qgb2YgdGhlbSBhbGxvdyB0byBn
byB1bi1pbnN0YW50aWF0ZWQuCitNYXJrQXNJZ25vcmVkOjpNYXJrQXNJZ25vcmVkKGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGUpIHsKKyAgR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCkt
Pmluc2VydCh0ZXN0X3N1aXRlKTsKK30KKworLy8gSWYgdGhpcyBwYXJhbWV0ZXJpemVkIHRlc3Qg
c3VpdGUgaGFzIG5vIGluc3RhbnRpYXRpb25zIChhbmQgdGhhdAorLy8gaGFzIG5vdCBiZWVuIG1h
cmtlZCBhcyBva2F5KSwgZW1pdCBhIHRlc3QgY2FzZSByZXBvcnRpbmcgdGhhdC4KK3ZvaWQgSW5z
ZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsIENvZGVMb2NhdGlv
biBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXNfdGVzdF9w
KSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVzKCk7CisgIGlmIChpZ25vcmVkLmZpbmQobmFtZSkgIT0gaWdub3JlZC5lbmQoKSkgcmV0
dXJuOworCisgIGNvbnN0IGNoYXIga01pc3NpbmdJbnN0YW50aWF0aW9uW10gPSAgLy8KKyAgICAg
ICIgaXMgZGVmaW5lZCB2aWEgVEVTVF9QLCBidXQgbmV2ZXIgaW5zdGFudGlhdGVkLiBOb25lIG9m
IHRoZSB0ZXN0IGNhc2VzICIKKyAgICAgICJ3aWxsIHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0aGUgb25seSAiCisgICAgICAib25lcyBwcm92
aWRlZCBleHBhbmQgdG8gbm90aGluZy4iCisgICAgICAiXG5cbiIKKyAgICAgICJJZGVhbGx5LCBU
RVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9m
ICIKKyAgICAgICJiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQg
dG8sIGZvciBleGFtcGxlLCBiZWluZyAiCisgICAgICAicGxhY2VkIGluIGEgbGlicmFyeSB0aGF0
IG1heSBiZSBsaW5rZWQgaW4gdG8gZ2V0IG90aGVyIHV0aWxpdGllcy4pIjsKKworICBjb25zdCBj
aGFyIGtNaXNzaW5nVGVzdENhc2VbXSA9ICAvLworICAgICAgIiBpcyBpbnN0YW50aWF0ZWQgdmlh
IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5vIHRlc3RzIGFyZSAiCisgICAgICAiZGVm
aW5lZCB2aWEgVEVTVF9QIC4gTm8gdGVzdCBjYXNlcyB3aWxsIHJ1bi4iCisgICAgICAiXG5cbiIK
KyAgICAgICJJZGVhbGx5LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZl
ciBiZSBpbnZva2VkIGZyb20gIgorICAgICAgImNvZGUgdGhhdCBhbHdheXMgZGVwZW5kIG9uIGNv
ZGUgdGhhdCBwcm92aWRlcyBURVNUX1AuIEZhaWxpbmcgdG8gZG8gIgorICAgICAgInNvIGlzIG9m
dGVuIGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRFU1RfUCB3YXMg
IgorICAgICAgInJlbW92ZWQgYnV0IHRoZSByZXN0IGdvdCBsZWZ0IGJlaGluZC4iOworCisgIHN0
ZDo6c3RyaW5nIG1lc3NhZ2UgPQorICAgICAgIlBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSAiICsg
bmFtZSArCisgICAgICAoaGFzX3Rlc3RfcCA/IGtNaXNzaW5nSW5zdGFudGlhdGlvbiA6IGtNaXNz
aW5nVGVzdENhc2UpICsKKyAgICAgICJcblxuIgorICAgICAgIlRvIHN1cHByZXNzIHRoaXMgZXJy
b3IgZm9yIHRoaXMgdGVzdCBzdWl0ZSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgbGluZSAiCisgICAg
ICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOiIK
KyAgICAgICJcblxuIgorICAgICAgIkdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRF
UklaRURfVEVTVCgiICsgbmFtZSArICIpOyI7CisKKyAgc3RkOjpzdHJpbmcgZnVsbF9uYW1lID0g
IlVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTwiICsgbmFtZSArICI+IjsKKyAg
UmVnaXN0ZXJUZXN0KCAgLy8KKyAgICAgICJHb29nbGVUZXN0VmVyaWZpY2F0aW9uIiwgZnVsbF9u
YW1lLmNfc3RyKCksCisgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAg
ICBudWxscHRyLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgorICAgICAgbG9jYXRpb24uZmlsZS5j
X3N0cigpLCBsb2NhdGlvbi5saW5lLCBbbWVzc2FnZSwgbG9jYXRpb25dIHsKKyAgICAgICAgcmV0
dXJuIG5ldyBGYWlsdXJlVGVzdChsb2NhdGlvbiwgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrRXJyb3JPblVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3QpOwor
ICAgICAgfSk7Cit9CisKK3ZvaWQgUmVnaXN0ZXJUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZShj
b25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKKyAgR2V0VW5pdFRlc3RJ
bXBsKCktPnR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkuUmVnaXN0ZXJUZXN0U3Vp
dGUoCisgICAgICB0ZXN0X3N1aXRlX25hbWUsIGNvZGVfbG9jYXRpb24pOworfQorCit2b2lkIFJl
Z2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKGNvbnN0IGNoYXIq
IGNhc2VfbmFtZSkgeworICBHZXRVbml0VGVzdEltcGwoKQorICAgICAgLT50eXBlX3BhcmFtZXRl
cml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgICAgICAuUmVnaXN0ZXJJbnN0YW50aWF0aW9uKGNhc2Vf
bmFtZSk7Cit9CisKK3ZvaWQgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeTo6UmVn
aXN0ZXJUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbikgeworICBzdWl0ZXNfLmVtcGxhY2Uoc3RkOjpzdHJpbmcodGVz
dF9zdWl0ZV9uYW1lKSwKKyAgICAgICAgICAgICAgICAgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVJbmZvKGNvZGVfbG9jYXRpb24pKTsKK30KKwordm9pZCBUeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZVJlZ2lzdHJ5OjpSZWdpc3Rlckluc3RhbnRpYXRpb24oCisgICAgICAgIGNvbnN0IGNoYXIq
IHRlc3Rfc3VpdGVfbmFtZSkgeworICBhdXRvIGl0ID0gc3VpdGVzXy5maW5kKHN0ZDo6c3RyaW5n
KHRlc3Rfc3VpdGVfbmFtZSkpOworICBpZiAoaXQgIT0gc3VpdGVzXy5lbmQoKSkgeworICAgIGl0
LT5zZWNvbmQuaW5zdGFudGlhdGVkID0gdHJ1ZTsKKyAgfSBlbHNlIHsKKyAgICBHVEVTVF9MT0df
KEVSUk9SKSA8PCAiVW5rbm93biB0eXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ICciCisgICAg
ICAgICAgICAgICAgICAgICAgPDwgdGVzdF9zdWl0ZV9uYW1lIDw8ICInIjsKKyAgfQorfQorCit2
b2lkIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnk6OkNoZWNrRm9ySW5zdGFudGlh
dGlvbnMoKSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0SWdub3JlZFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVzKCk7CisgIGZvciAoY29uc3QgYXV0byYgdGVzdGNhc2UgOiBzdWl0ZXNfKSB7
CisgICAgaWYgKHRlc3RjYXNlLnNlY29uZC5pbnN0YW50aWF0ZWQpIGNvbnRpbnVlOworICAgIGlm
IChpZ25vcmVkLmZpbmQodGVzdGNhc2UuZmlyc3QpICE9IGlnbm9yZWQuZW5kKCkpIGNvbnRpbnVl
OworCisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZSA9CisgICAgICAgICJUeXBlIHBhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZSAiICsgdGVzdGNhc2UuZmlyc3QgKworICAgICAgICAiIGlzIGRlZmluZWQg
dmlhIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZCAi
CisgICAgICAgICJ2aWEgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QLiBOb25lIG9mIHRo
ZSB0ZXN0IGNhc2VzIHdpbGwgcnVuLiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJJZGVhbGx5
LCBUWVBFRF9URVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBh
cyAiCisgICAgICAgICJwYXJ0IG9mIGJpbmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAo
QXMgb3Bwb3NlZCB0bywgZm9yICIKKyAgICAgICAgImV4YW1wbGUsIGJlaW5nIHBsYWNlZCBpbiBh
IGxpYnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdldCBvdGhlciAiCisgICAgICAgICJ1
dGlsaXRpZXMuKSIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJUbyBzdXBwcmVzcyB0aGlzIGVy
cm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgIgorICAg
ICAgICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGlu
OiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9Q
QVJBTUVURVJJWkVEX1RFU1QoIiArCisgICAgICAgIHRlc3RjYXNlLmZpcnN0ICsgIik7IjsKKwor
ICAgIHN0ZDo6c3RyaW5nIGZ1bGxfbmFtZSA9CisgICAgICAgICJVbmluc3RhbnRpYXRlZFR5cGVQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlPCIgKyB0ZXN0Y2FzZS5maXJzdCArICI+IjsKKyAgICBSZWdp
c3RlclRlc3QoICAvLworICAgICAgICAiR29vZ2xlVGVzdFZlcmlmaWNhdGlvbiIsIGZ1bGxfbmFt
ZS5jX3N0cigpLAorICAgICAgICBudWxscHRyLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCisgICAg
ICAgIG51bGxwdHIsICAvLyBObyB2YWx1ZSBwYXJhbWV0ZXIuCisgICAgICAgIHRlc3RjYXNlLnNl
Y29uZC5jb2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwKKyAgICAgICAgdGVzdGNhc2Uuc2Vjb25k
LmNvZGVfbG9jYXRpb24ubGluZSwgW21lc3NhZ2UsIHRlc3RjYXNlXSB7CisgICAgICAgICAgcmV0
dXJuIG5ldyBGYWlsdXJlVGVzdCh0ZXN0Y2FzZS5zZWNvbmQuY29kZV9sb2NhdGlvbiwgbWVzc2Fn
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtFcnJvck9uVW5pbnN0YW50aWF0
ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3QpOworICAgICAgICB9KTsKKyAgfQorfQogCiAvLyBBIGNv
cHkgb2YgYWxsIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuICBTZXQgYnkgSW5pdEdvb2dsZVRlc3Qo
KS4KIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwpAQCAtNDQ1LDcg
KzU5Myw3IEBAIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnX2FyZ3ZzOwogRmls
ZVBhdGggR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkgewogICBGaWxlUGF0aCByZXN1bHQ7CiAK
LSNpZiBHVEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19P
UzIKICAgcmVzdWx0LlNldChGaWxlUGF0aChHZXRBcmd2cygpWzBdKS5SZW1vdmVFeHRlbnNpb24o
ImV4ZSIpKTsKICNlbHNlCiAgIHJlc3VsdC5TZXQoRmlsZVBhdGgoR2V0QXJndnMoKVswXSkpOwpA
QCAtNDYwLDkgKzYwOCwxMCBAQCBGaWxlUGF0aCBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKSB7
CiBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldE91dHB1dEZvcm1hdCgpIHsKICAgY29u
c3QgY2hhciogY29uc3QgZ3Rlc3Rfb3V0cHV0X2ZsYWcgPSBHVEVTVF9GTEFHKG91dHB1dCkuY19z
dHIoKTsKICAgY29uc3QgY2hhciogY29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2Zs
YWcsICc6Jyk7Ci0gIHJldHVybiAoY29sb24gPT0gTlVMTCkgPwotICAgICAgc3RkOjpzdHJpbmco
Z3Rlc3Rfb3V0cHV0X2ZsYWcpIDoKLSAgICAgIHN0ZDo6c3RyaW5nKGd0ZXN0X291dHB1dF9mbGFn
LCBjb2xvbiAtIGd0ZXN0X291dHB1dF9mbGFnKTsKKyAgcmV0dXJuIChjb2xvbiA9PSBudWxscHRy
KQorICAgICAgICAgICAgID8gc3RkOjpzdHJpbmcoZ3Rlc3Rfb3V0cHV0X2ZsYWcpCisgICAgICAg
ICAgICAgOiBzdGQ6OnN0cmluZyhndGVzdF9vdXRwdXRfZmxhZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oY29sb24gLSBndGVzdF9vdXRwdXRfZmxhZykp
OwogfQogCiAvLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgb3V0cHV0IGZpbGUs
IG9yIHRoZSBkZWZhdWx0IGlmIG5vbmUKQEAgLTQ3NSw3ICs2MjQsNyBAQCBzdGQ6OnN0cmluZyBV
bml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpIHsKICAgICBmb3Jt
YXQgPSBzdGQ6OnN0cmluZyhrRGVmYXVsdE91dHB1dEZvcm1hdCk7CiAKICAgY29uc3QgY2hhciog
Y29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcsICc6Jyk7Ci0gIGlmIChjb2xv
biA9PSBOVUxMKQorICBpZiAoY29sb24gPT0gbnVsbHB0cikKICAgICByZXR1cm4gaW50ZXJuYWw6
OkZpbGVQYXRoOjpNYWtlRmlsZU5hbWUoCiAgICAgICAgIGludGVybmFsOjpGaWxlUGF0aCgKICAg
ICAgICAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2Rpcigp
KSwKQEAgLTQ4NCwxMCArNjMzLDYgQEAgc3RkOjpzdHJpbmcgVW5pdFRlc3RPcHRpb25zOjpHZXRB
YnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKSB7CiAKICAgaW50ZXJuYWw6OkZpbGVQYXRoIG91dHB1
dF9uYW1lKGNvbG9uICsgMSk7CiAgIGlmICghb3V0cHV0X25hbWUuSXNBYnNvbHV0ZVBhdGgoKSkK
LSAgICAvLyBGSVhNRTogb24gV2luZG93cyBcc29tZVxwYXRoIGlzIG5vdCBhbiBhYnNvbHV0ZQot
ICAgIC8vIHBhdGggKGFzIGl0cyBtZWFuaW5nIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgZHJpdmUp
LCB5ZXQgdGhlCi0gICAgLy8gZm9sbG93aW5nIGxvZ2ljIGZvciB0dXJuaW5nIGl0IGludG8gYW4g
YWJzb2x1dGUgcGF0aCBpcyB3cm9uZy4KLSAgICAvLyBGaXggaXQuCiAgICAgb3V0cHV0X25hbWUg
PSBpbnRlcm5hbDo6RmlsZVBhdGg6OkNvbmNhdFBhdGhzKAogICAgICAgICBpbnRlcm5hbDo6Rmls
ZVBhdGgoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCkpLAog
ICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoY29sb24gKyAxKSk7CkBAIC01MDEsNTQgKzY0Niw4
OSBAQCBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0
RmlsZSgpIHsKICAgcmV0dXJuIHJlc3VsdC5zdHJpbmcoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVzIHRoZSBzdHJpbmcuICBUaGUKLS8vIGZp
cnN0ICc6JyBvciAnXDAnIGNoYXJhY3RlciBpbiBwYXR0ZXJuIG1hcmtzIHRoZSBlbmQgb2YgaXQu
CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHdpbGRjYXJkIHBhdHRlcm4gbWF0
Y2hlcyB0aGUgc3RyaW5nLiBFYWNoCisvLyBwYXR0ZXJuIGNvbnNpc3RzIG9mIHJlZ3VsYXIgY2hh
cmFjdGVycywgc2luZ2xlLWNoYXJhY3RlciB3aWxkY2FyZHMgKD8pLCBhbmQKKy8vIG11bHRpLWNo
YXJhY3RlciB3aWxkY2FyZHMgKCopLgogLy8KLS8vIFRoaXMgcmVjdXJzaXZlIGFsZ29yaXRobSBp
c24ndCB2ZXJ5IGVmZmljaWVudCwgYnV0IGlzIGNsZWFyIGFuZAotLy8gd29ya3Mgd2VsbCBlbm91
Z2ggZm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFyZSBzaG9ydC4KLWJvb2wgVW5pdFRl
c3RPcHRpb25zOjpQYXR0ZXJuTWF0Y2hlc1N0cmluZyhjb25zdCBjaGFyICpwYXR0ZXJuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0cikg
ewotICBzd2l0Y2ggKCpwYXR0ZXJuKSB7Ci0gICAgY2FzZSAnXDAnOgotICAgIGNhc2UgJzonOiAg
Ly8gRWl0aGVyICc6JyBvciAnXDAnIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4uCi0gICAg
ICByZXR1cm4gKnN0ciA9PSAnXDAnOwotICAgIGNhc2UgJz8nOiAgLy8gTWF0Y2hlcyBhbnkgc2lu
Z2xlIGNoYXJhY3Rlci4KLSAgICAgIHJldHVybiAqc3RyICE9ICdcMCcgJiYgUGF0dGVybk1hdGNo
ZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICAgIGNhc2UgJyonOiAgLy8gTWF0Y2hl
cyBhbnkgc3RyaW5nIChwb3NzaWJseSBlbXB0eSkgb2YgY2hhcmFjdGVycy4KLSAgICAgIHJldHVy
biAoKnN0ciAhPSAnXDAnICYmIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4sIHN0ciArIDEp
KSB8fAotICAgICAgICAgIFBhdHRlcm5NYXRjaGVzU3RyaW5nKHBhdHRlcm4gKyAxLCBzdHIpOwot
ICAgIGRlZmF1bHQ6ICAvLyBOb24tc3BlY2lhbCBjaGFyYWN0ZXIuICBNYXRjaGVzIGl0c2VsZi4K
LSAgICAgIHJldHVybiAqcGF0dGVybiA9PSAqc3RyICYmCi0gICAgICAgICAgUGF0dGVybk1hdGNo
ZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwotICB9Ci19Ci0KLWJvb2wgVW5pdFRlc3RP
cHRpb25zOjpNYXRjaGVzRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25z
dCBjaGFyKiBmaWx0ZXIpIHsKLSAgY29uc3QgY2hhciAqY3VyX3BhdHRlcm4gPSBmaWx0ZXI7Ci0g
IGZvciAoOzspIHsKLSAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJpbmcoY3VyX3BhdHRlcm4sIG5h
bWUuY19zdHIoKSkpIHsKLSAgICAgIHJldHVybiB0cnVlOworLy8gVGhpcyBmdW5jdGlvbiBpbXBs
ZW1lbnRzIGEgbGluZWFyLXRpbWUgc3RyaW5nIGdsb2JiaW5nIGFsZ29yaXRobSBiYXNlZCBvbgor
Ly8gaHR0cHM6Ly9yZXNlYXJjaC5zd3RjaC5jb20vZ2xvYi4KK3N0YXRpYyBib29sIFBhdHRlcm5N
YXRjaGVzU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lX3N0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBhdHRlcm4sIGNvbnN0IGNoYXIqIHBhdHRl
cm5fZW5kKSB7CisgIGNvbnN0IGNoYXIqIG5hbWUgPSBuYW1lX3N0ci5jX3N0cigpOworICBjb25z
dCBjaGFyKiBjb25zdCBuYW1lX2JlZ2luID0gbmFtZTsKKyAgY29uc3QgY2hhciogY29uc3QgbmFt
ZV9lbmQgPSBuYW1lICsgbmFtZV9zdHIuc2l6ZSgpOworCisgIGNvbnN0IGNoYXIqIHBhdHRlcm5f
bmV4dCA9IHBhdHRlcm47CisgIGNvbnN0IGNoYXIqIG5hbWVfbmV4dCA9IG5hbWU7CisKKyAgd2hp
bGUgKHBhdHRlcm4gPCBwYXR0ZXJuX2VuZCB8fCBuYW1lIDwgbmFtZV9lbmQpIHsKKyAgICBpZiAo
cGF0dGVybiA8IHBhdHRlcm5fZW5kKSB7CisgICAgICBzd2l0Y2ggKCpwYXR0ZXJuKSB7CisgICAg
ICAgIGRlZmF1bHQ6ICAvLyBNYXRjaCBhbiBvcmRpbmFyeSBjaGFyYWN0ZXIuCisgICAgICAgICAg
aWYgKG5hbWUgPCBuYW1lX2VuZCAmJiAqbmFtZSA9PSAqcGF0dGVybikgeworICAgICAgICAgICAg
KytwYXR0ZXJuOworICAgICAgICAgICAgKytuYW1lOworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICc/JzogIC8vIE1hdGNo
IGFueSBzaW5nbGUgY2hhcmFjdGVyLgorICAgICAgICAgIGlmIChuYW1lIDwgbmFtZV9lbmQpIHsK
KyAgICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICAgICsrbmFtZTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAn
Kic6CisgICAgICAgICAgLy8gTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMuIFN0YXJ0IGJ5
IHNraXBwaW5nIG92ZXIgdGhlIHdpbGRjYXJkCisgICAgICAgICAgLy8gYW5kIG1hdGNoaW5nIHpl
cm8gY2hhcmFjdGVycyBmcm9tIG5hbWUuIElmIHRoYXQgZmFpbHMsIHJlc3RhcnQgYW5kCisgICAg
ICAgICAgLy8gbWF0Y2ggb25lIG1vcmUgY2hhcmFjdGVyIHRoYW4gdGhlIGxhc3QgYXR0ZW1wdC4K
KyAgICAgICAgICBwYXR0ZXJuX25leHQgPSBwYXR0ZXJuOworICAgICAgICAgIG5hbWVfbmV4dCA9
IG5hbWUgKyAxOworICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgIH0KKyAgICB9CisgICAgLy8gRmFpbGVkIHRvIG1hdGNoIGEgY2hhcmFjdGVyLiBSZXN0YXJ0
IGlmIHBvc3NpYmxlLgorICAgIGlmIChuYW1lX2JlZ2luIDwgbmFtZV9uZXh0ICYmIG5hbWVfbmV4
dCA8PSBuYW1lX2VuZCkgeworICAgICAgcGF0dGVybiA9IHBhdHRlcm5fbmV4dDsKKyAgICAgIG5h
bWUgPSBuYW1lX25leHQ7CisgICAgICBjb250aW51ZTsKICAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIHJldHVybiB0cnVlOworfQogCi0gICAgLy8gRmluZHMgdGhlIG5leHQgcGF0dGVy
biBpbiB0aGUgZmlsdGVyLgotICAgIGN1cl9wYXR0ZXJuID0gc3RyY2hyKGN1cl9wYXR0ZXJuLCAn
OicpOworYm9vbCBVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIoY29uc3Qgc3RkOjpzdHJp
bmcmIG5hbWVfc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZmlsdGVyKSB7CisgIC8vIFRoZSBmaWx0ZXIgaXMgYSBsaXN0IG9mIHBhdHRlcm5zIHNl
cGFyYXRlZCBieSBjb2xvbnMgKDopLgorICBjb25zdCBjaGFyKiBwYXR0ZXJuID0gZmlsdGVyOwor
ICB3aGlsZSAodHJ1ZSkgeworICAgIC8vIEZpbmQgdGhlIGJvdW5kcyBvZiB0aGlzIHBhdHRlcm4u
CisgICAgY29uc3QgY2hhciogY29uc3QgbmV4dF9zZXAgPSBzdHJjaHIocGF0dGVybiwgJzonKTsK
KyAgICBjb25zdCBjaGFyKiBjb25zdCBwYXR0ZXJuX2VuZCA9CisgICAgICAgIG5leHRfc2VwICE9
IG51bGxwdHIgPyBuZXh0X3NlcCA6IHBhdHRlcm4gKyBzdHJsZW4ocGF0dGVybik7CiAKLSAgICAv
LyBSZXR1cm5zIGlmIG5vIG1vcmUgcGF0dGVybiBjYW4gYmUgZm91bmQuCi0gICAgaWYgKGN1cl9w
YXR0ZXJuID09IE5VTEwpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBDaGVjayBpZiB0
aGlzIHBhdHRlcm4gbWF0Y2hlcyBuYW1lX3N0ci4KKyAgICBpZiAoUGF0dGVybk1hdGNoZXNTdHJp
bmcobmFtZV9zdHIsIHBhdHRlcm4sIHBhdHRlcm5fZW5kKSkgeworICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgLy8gU2tpcHMgdGhlIHBhdHRlcm4gc2VwYXJhdGVyICh0aGUgJzonIGNo
YXJhY3RlcikuCi0gICAgY3VyX3BhdHRlcm4rKzsKKyAgICAvLyBHaXZlIHVwIG9uIHRoaXMgcGF0
dGVybi4gSG93ZXZlciwgaWYgd2UgZm91bmQgYSBwYXR0ZXJuIHNlcGFyYXRvciAoOiksCisgICAg
Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBwYXR0ZXJuIChza2lwcGluZyBvdmVyIHRoZSBzZXBhcmF0
b3IpIGFuZCByZXN0YXJ0LgorICAgIGlmIChuZXh0X3NlcCA9PSBudWxscHRyKSB7CisgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHBhdHRlcm4gPSBuZXh0X3NlcCArIDE7CiAgIH0KKyAg
cmV0dXJuIHRydWU7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVzZXItc3BlY2lmaWVk
IGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0IGNhc2UKLS8vIG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUu
Ci1ib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJp
bmcgJnRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X25hbWUpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcm
IGZ1bGxfbmFtZSA9IHRlc3RfY2FzZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7Cisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVzZXItc3BlY2lmaWVkIGZpbHRlciBt
YXRjaGVzIHRoZSB0ZXN0CisvLyBzdWl0ZSBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLgorYm9vbCBV
bml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0
X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSkgeworICBjb25zdCBzdGQ6OnN0cmluZyYgZnVsbF9u
YW1lID0gdGVzdF9zdWl0ZV9uYW1lICsgIi4iICsgdGVzdF9uYW1lLmNfc3RyKCk7CiAKICAgLy8g
U3BsaXQgLS1ndGVzdF9maWx0ZXIgYXQgJy0nLCBpZiB0aGVyZSBpcyBvbmUsIHRvIHNlcGFyYXRl
IGludG8KICAgLy8gcG9zaXRpdmUgZmlsdGVyIGFuZCBuZWdhdGl2ZSBmaWx0ZXIgcG9ydGlvbnMK
QEAgLTU1Niw3ICs3MzYsNyBAQCBib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rl
c3QoY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfY2FzZV9uYW1lLAogICBjb25zdCBjaGFyKiBjb25z
dCBkYXNoID0gc3RyY2hyKHAsICctJyk7CiAgIHN0ZDo6c3RyaW5nIHBvc2l0aXZlOwogICBzdGQ6
OnN0cmluZyBuZWdhdGl2ZTsKLSAgaWYgKGRhc2ggPT0gTlVMTCkgeworICBpZiAoZGFzaCA9PSBu
dWxscHRyKSB7CiAgICAgcG9zaXRpdmUgPSBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKTsgIC8v
IFdob2xlIHN0cmluZyBpcyBhIHBvc2l0aXZlIGZpbHRlcgogICAgIG5lZ2F0aXZlID0gIiI7CiAg
IH0gZWxzZSB7CkBAIC03MDEsNyArODgxLDcgQEAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBIYXNP
bmVGYWlsdXJlKGNvbnN0IGNoYXIqIC8qIHJlc3VsdHNfZXhwciAqLywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IHI7CiAgIH0KIAotICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBz
dWJzdHIuY19zdHIoKSkgPT0gTlVMTCkgeworICBpZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJz
dHIuY19zdHIoKSkgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkg
PDwgIkV4cGVjdGVkOiAiIDw8IGV4cGVjdGVkIDw8ICIgY29udGFpbmluZyBcIiIKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IHN1YnN0ciA8PCAiXCJcbiIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8ICIgIEFjdHVhbDpcbiIKQEAgLTc3MCw2MSArOTUwLDY2IEBAIHZv
aWQgVW5pdFRlc3RJbXBsOjpTZXRUZXN0UGFydFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVh
ZCgKICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXy5zZXQocmVwb3J0ZXIp
OwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IGNhc2VzLgotaW50
IFVuaXRUZXN0SW1wbDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJl
dHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBUZXN0Q2FzZVBhc3NlZCk7CisvLyBHZXRzIHRoZSBu
dW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdEltcGw6OnN1Y2Nl
c3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9z
dWl0ZXNfLCBUZXN0U3VpdGVQYXNzZWQpOwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFp
bGVkIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50
KCkgY29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywgVGVzdENhc2VGYWlsZWQp
OworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVz
dEltcGw6OmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gQ291bnRJ
Zih0ZXN0X3N1aXRlc18sIFRlc3RTdWl0ZUZhaWxlZCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJl
ciBvZiBhbGwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVzdEltcGw6OnRvdGFsX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9jYXNlc18uc2l6
ZSgpKTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRl
c3RJbXBsOjp0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pih0ZXN0X3N1aXRlc18uc2l6ZSgpKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAorLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25l
IHRlc3QKIC8vIHRoYXQgc2hvdWxkIHJ1bi4KLWludCBVbml0VGVzdEltcGw6OnRlc3RfY2FzZV90
b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBTaG91
bGRSdW5UZXN0Q2FzZSk7CitpbnQgVW5pdFRlc3RJbXBsOjp0ZXN0X3N1aXRlX3RvX3J1bl9jb3Vu
dCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVzdF9zdWl0ZXNfLCBTaG91bGRSdW5UZXN0
U3VpdGUpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KIGlu
dCBVbml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJu
IFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90
ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywg
JlRlc3RTdWl0ZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KTsKK30KKworLy8gR2V0cyB0aGUgbnVt
YmVyIG9mIHNraXBwZWQgdGVzdHMuCitpbnQgVW5pdFRlc3RJbXBsOjpza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18s
ICZUZXN0U3VpdGU6OnNraXBwZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBmYWlsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9jb3VudCgp
IGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0
Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3Qo
dGVzdF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjpmYWlsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4g
dGhlIFhNTCByZXBvcnQuCiBpbnQgVW5pdFRlc3RJbXBsOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rl
c3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2Fz
ZXNfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdENhc2U6OnJlcG9ydGFibGVf
ZGlzYWJsZWRfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0
X3N1aXRlc18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGVzdFN1aXRlOjpyZXBv
cnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
ZGlzYWJsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBsOjpkaXNhYmxlZF90ZXN0X2NvdW50KCkg
Y29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RD
YXNlOjpkaXNhYmxlZF90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0
KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8v
IEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0
LgogaW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgewotICBy
ZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpyZXBvcnRh
YmxlX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0
ZXNfLCAmVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgYWxsIHRlc3RzLgogaW50IFVuaXRUZXN0SW1wbDo6dG90YWxfdGVzdF9jb3Vu
dCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZU
ZXN0Q2FzZTo6dG90YWxfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlz
dCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnRvdGFsX3Rlc3RfY291bnQpOwogfQogCiAvLyBH
ZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgogaW50IFVuaXRUZXN0SW1w
bDo6dGVzdF90b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VM
aXN0KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KTsKKyAgcmV0dXJu
IFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6dGVzdF90b19y
dW5fY291bnQpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IE9TIHN0YWNrIHRyYWNlIGFz
IGFuIHN0ZDo6c3RyaW5nLgpAQCAtODQ2LDQ4ICsxMDMxLDMwIEBAIHN0ZDo6c3RyaW5nIFVuaXRU
ZXN0SW1wbDo6Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2VwdFRvcChpbnQgc2tpcF9jb3VudCkgewog
ICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4g
bWlsbGlzZWNvbmRzLgorLy8gQSBoZWxwZXIgY2xhc3MgZm9yIG1lYXN1cmluZyBlbGFwc2VkIHRp
bWVzLgorY2xhc3MgVGltZXIgeworIHB1YmxpYzoKKyAgVGltZXIoKSA6IHN0YXJ0XyhzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSkge30KKworICAvLyBSZXR1cm4gdGltZSBlbGFwc2Vk
IGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgdGltZXIgd2FzIGNyZWF0ZWQuCisgIFRpbWVJbk1p
bGxpcyBFbGFwc2VkKCkgeworICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpz
dGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnRfKQorICAgICAgICAuY291bnQoKTsKKyAgfQorCisg
cHJpdmF0ZToKKyAgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jaz4gc3RhcnRfOworfTsKKworLy8gUmV0dXJucyBhIHRpbWVzdGFtcCBhcyBtaWxsaXNlY29u
ZHMgc2luY2UgdGhlIGVwb2NoLiBOb3RlIHRoaXMgdGltZSBtYXkganVtcAorLy8gYXJvdW5kIHN1
YmplY3QgdG8gYWRqdXN0bWVudHMgYnkgdGhlIHN5c3RlbSwgdG8gbWVhc3VyZSBlbGFwc2VkIHRp
bWUgdXNlCisvLyBUaW1lciBpbnN0ZWFkLgogVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygp
IHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykK
LSAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIDE5NzAtMDEtMDEgYW5kIDE2MDEtMDEtMDEgaW4gbWls
bGlzZWNvbmRzLgotICAvLyBodHRwOi8vYW5hbG9nb3VzLmJsb2dzcG90LmNvbS8yMDA1LzA0L2Vw
b2NoLmh0bWwKLSAgY29uc3QgVGltZUluTWlsbGlzIGtKYXZhRXBvY2hUb1dpbkZpbGVUaW1lRGVs
dGEgPQotICAgIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxpcz4oMTE2NDQ0NzM2VUwpICogMTAwMDAw
VUw7Ci0gIGNvbnN0IERXT1JEIGtUZW50aE1pY3Jvc0luTWlsbGlTZWNvbmQgPSAxMDAwMDsKLQot
ICBTWVNURU1USU1FIG5vd19zeXN0aW1lOwotICBGSUxFVElNRSBub3dfZmlsZXRpbWU7Ci0gIFVM
QVJHRV9JTlRFR0VSIG5vd19pbnQ2NDsKLSAgLy8gRklYTUU6IFNob3VsZG4ndCB0aGlzIGp1c3Qg
dXNlCi0gIC8vICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKT8KLSAgR2V0U3lzdGVtVGltZSgm
bm93X3N5c3RpbWUpOwotICBpZiAoU3lzdGVtVGltZVRvRmlsZVRpbWUoJm5vd19zeXN0aW1lLCAm
bm93X2ZpbGV0aW1lKSkgewotICAgIG5vd19pbnQ2NC5Mb3dQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3
TG93RGF0ZVRpbWU7Ci0gICAgbm93X2ludDY0LkhpZ2hQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3SGln
aERhdGVUaW1lOwotICAgIG5vd19pbnQ2NC5RdWFkUGFydCA9IChub3dfaW50NjQuUXVhZFBhcnQg
LyBrVGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kKSAtCi0gICAgICBrSmF2YUVwb2NoVG9XaW5GaWxl
VGltZURlbHRhOwotICAgIHJldHVybiBub3dfaW50NjQuUXVhZFBhcnQ7Ci0gIH0KLSAgcmV0dXJu
IDA7Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9IQVNfR0VUVElNRU9GREFZXwot
ICBfX3RpbWViNjQgbm93OwotCi0gIC8vIE1TVkMgOCBkZXByZWNhdGVzIF9mdGltZTY0KCksIHNv
IHdlIHdhbnQgdG8gc3VwcHJlc3Mgd2FybmluZyA0OTk2Ci0gIC8vIChkZXByZWNhdGVkIGZ1bmN0
aW9uKSB0aGVyZS4KLSAgLy8gRklYTUU6IFVzZSBHZXRUaWNrQ291bnQoKT8gIE9yIHVzZQotICAv
LyAgIFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCkKLSAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRF
RF9QVVNIXygpCi0gIF9mdGltZTY0KCZub3cpOwotICBHVEVTVF9ESVNBQkxFX01TQ19ERVBSRUNB
VEVEX1BPUF8oKQotCi0gIHJldHVybiBzdGF0aWNfY2FzdDxUaW1lSW5NaWxsaXM+KG5vdy50aW1l
KSAqIDEwMDAgKyBub3cubWlsbGl0bTsKLSNlbGlmIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfCi0g
IHN0cnVjdCB0aW1ldmFsIG5vdzsKLSAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOwotICByZXR1
cm4gc3RhdGljX2Nhc3Q8VGltZUluTWlsbGlzPihub3cudHZfc2VjKSAqIDEwMDAgKyBub3cudHZf
dXNlYyAvIDEwMDA7Ci0jZWxzZQotIyBlcnJvciAiRG9uJ3Qga25vdyBob3cgdG8gZ2V0IHRoZSBj
dXJyZW50IHRpbWUgb24geW91ciBzeXN0ZW0uIgotI2VuZGlmCisgIHJldHVybiBzdGQ6OmNocm9u
bzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAgICAgICAg
ICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtCisgICAgICAgICAgICAgc3RkOjpj
aHJvbm86OnN5c3RlbV9jbG9jazo6ZnJvbV90aW1lX3QoMCkpCisgICAgICAuY291bnQoKTsKIH0K
IAogLy8gVXRpbGl0aWVzCkBAIC05MDAsMTEgKzEwNjcsMTAgQEAgVGltZUluTWlsbGlzIEdldFRp
bWVJbk1pbGxpcygpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSB3aWRl
IHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBMUENXU1RSIFN0cmlu
Zzo6QW5zaVRvVXRmMTYoY29uc3QgY2hhciogYW5zaSkgewotICBpZiAoIWFuc2kpIHJldHVybiBO
VUxMOworICBpZiAoIWFuc2kpIHJldHVybiBudWxscHRyOwogICBjb25zdCBpbnQgbGVuZ3RoID0g
c3RybGVuKGFuc2kpOwogICBjb25zdCBpbnQgdW5pY29kZV9sZW5ndGggPQotICAgICAgTXVsdGlC
eXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgMCk7CisgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwg
YW5zaSwgbGVuZ3RoLCBudWxscHRyLCAwKTsKICAgV0NIQVIqIHVuaWNvZGUgPSBuZXcgV0NIQVJb
dW5pY29kZV9sZW5ndGggKyAxXTsKICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFu
c2ksIGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCB1bmljb2RlX2xlbmd0
aCk7CkBAIC05MTcsMzMgKzEwODMsMzMgQEAgTFBDV1NUUiBTdHJpbmc6OkFuc2lUb1V0ZjE2KGNv
bnN0IGNoYXIqIGFuc2kpIHsKIC8vIHZhbHVlIHVzaW5nIGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSBB
TlNJIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0IGlzIE5VTEwuCiBjb25zdCBjaGFy
KiBTdHJpbmc6OlV0ZjE2VG9BbnNpKExQQ1dTVFIgdXRmMTZfc3RyKSAgewotICBpZiAoIXV0ZjE2
X3N0cikgcmV0dXJuIE5VTEw7Ci0gIGNvbnN0IGludCBhbnNpX2xlbmd0aCA9Ci0gICAgICBXaWRl
Q2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCwgTlVMTCk7CisgIGlmICghdXRmMTZfc3RyKSByZXR1
cm4gbnVsbHB0cjsKKyAgY29uc3QgaW50IGFuc2lfbGVuZ3RoID0gV2lkZUNoYXJUb011bHRpQnl0
ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgIGNoYXIq
IGFuc2kgPSBuZXcgY2hhclthbnNpX2xlbmd0aCArIDFdOwotICBXaWRlQ2hhclRvTXVsdGlCeXRl
KENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAgICAgICAgICAgICAgICAgICBhbnNpLCBh
bnNpX2xlbmd0aCwgTlVMTCwgTlVMTCk7CisgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAw
LCB1dGYxNl9zdHIsIC0xLCBhbnNpLCBhbnNpX2xlbmd0aCwgbnVsbHB0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICBudWxscHRyKTsKICAgYW5zaVthbnNpX2xlbmd0aF0gPSAwOwogICByZXR1cm4g
YW5zaTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogCi0vLyBDb21w
YXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUg
Y29udGVudC4KKy8vIENvbXBhcmVzIHR3byBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhleSBoYXZlIHRoZSBzYW1lCisvLyBjb250ZW50LgogLy8KIC8vIFVubGlrZSBz
dHJjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBBIE5V
TEwKIC8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBD
IHN0cmluZywKIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgogYm9vbCBTdHJpbmc6OkNT
dHJpbmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29uc3QgY2hhciAqIHJocykgewotICBpZiAo
IGxocyA9PSBOVUxMICkgcmV0dXJuIHJocyA9PSBOVUxMOworICBpZiAobGhzID09IG51bGxwdHIp
IHJldHVybiByaHMgPT0gbnVsbHB0cjsKIAotICBpZiAoIHJocyA9PSBOVUxMICkgcmV0dXJuIGZh
bHNlOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICByZXR1cm4gc3Ry
Y21wKGxocywgcmhzKSA9PSAwOwogfQogCi0jaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HIHx8IEdU
RVNUX0hBU19HTE9CQUxfV1NUUklORworI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogCiAvLyBD
b252ZXJ0cyBhbiBhcnJheSBvZiB3aWRlIGNoYXJzIHRvIGEgbmFycm93IHN0cmluZyB1c2luZyB0
aGUgVVRGLTgKIC8vIGVuY29kaW5nLCBhbmQgc3RyZWFtcyB0aGUgcmVzdWx0IHRvIHRoZSBnaXZl
biBNZXNzYWdlIG9iamVjdC4KQEAgLTk2MSw3ICsxMTI3LDcgQEAgc3RhdGljIHZvaWQgU3RyZWFt
V2lkZUNoYXJzVG9NZXNzYWdlKGNvbnN0IHdjaGFyX3QqIHdzdHIsIHNpemVfdCBsZW5ndGgsCiAg
IH0KIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcgfHwgR1RFU1RfSEFTX0dM
T0JBTF9XU1RSSU5HCisjZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwogCiB2b2lkIFNw
bGl0U3RyaW5nKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgY2hhciBkZWxpbWl0ZXIsCiAgICAg
ICAgICAgICAgICAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+KiBkZXN0KSB7CkBAIC0x
MDExLDE1ICsxMTc3LDYgQEAgTWVzc2FnZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjpz
dGQ6OndzdHJpbmcmIHdzdHIpIHsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5H
CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIENvbnZlcnRzIHRoZSBnaXZlbiB3
aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNpbmcgdGhlIFVURi04Ci0vLyBlbmNvZGlu
ZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ugb2JqZWN0LgotTWVzc2Fn
ZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjp3c3RyaW5nJiB3c3RyKSB7Ci0gIGludGVy
bmFsOjpTdHJlYW1XaWRlQ2hhcnNUb01lc3NhZ2Uod3N0ci5jX3N0cigpLCB3c3RyLmxlbmd0aCgp
LCB0aGlzKTsKLSAgcmV0dXJuICp0aGlzOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFM
X1dTVFJJTkcKLQogLy8gR2V0cyB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBzbyBm
YXIgYXMgYW4gc3RkOjpzdHJpbmcuCiAvLyBFYWNoICdcMCcgY2hhcmFjdGVyIGluIHRoZSBidWZm
ZXIgaXMgcmVwbGFjZWQgd2l0aCAiXFwwIi4KIHN0ZDo6c3RyaW5nIE1lc3NhZ2U6OkdldFN0cmlu
ZygpIGNvbnN0IHsKQEAgLTEwMzAsMTAgKzExODcsOSBAQCBzdGQ6OnN0cmluZyBNZXNzYWdlOjpH
ZXRTdHJpbmcoKSBjb25zdCB7CiAvLyBVc2VkIGluIEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2VydGlv
bl9yZXN1bHQpLgogQXNzZXJ0aW9uUmVzdWx0OjpBc3NlcnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0
aW9uUmVzdWx0JiBvdGhlcikKICAgICA6IHN1Y2Nlc3NfKG90aGVyLnN1Y2Nlc3NfKSwKLSAgICAg
IG1lc3NhZ2VfKG90aGVyLm1lc3NhZ2VfLmdldCgpICE9IE5VTEwgPwotICAgICAgICAgICAgICAg
bmV3IDo6c3RkOjpzdHJpbmcoKm90aGVyLm1lc3NhZ2VfKSA6Ci0gICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDwgOjpzdGQ6OnN0cmluZyo+KE5VTEwpKSB7Ci19CisgICAgICBtZXNzYWdlXyhvdGhl
ci5tZXNzYWdlXy5nZXQoKSAhPSBudWxscHRyCisgICAgICAgICAgICAgICAgICAgPyBuZXcgOjpz
dGQ6OnN0cmluZygqb3RoZXIubWVzc2FnZV8pCisgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNf
Y2FzdDwgOjpzdGQ6OnN0cmluZyo+KG51bGxwdHIpKSB7fQogCiAvLyBTd2FwcyB0d28gQXNzZXJ0
aW9uUmVzdWx0cy4KIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYg
b3RoZXIpIHsKQEAgLTEwNDUsOCArMTIwMSw3IEBAIHZvaWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2Fw
KEFzc2VydGlvblJlc3VsdCYgb3RoZXIpIHsKIC8vIFJldHVybnMgdGhlIGFzc2VydGlvbidzIG5l
Z2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9GQUxTRS4KIEFzc2VydGlvblJlc3VsdCBB
c3NlcnRpb25SZXN1bHQ6Om9wZXJhdG9yISgpIGNvbnN0IHsKICAgQXNzZXJ0aW9uUmVzdWx0IG5l
Z2F0aW9uKCFzdWNjZXNzXyk7Ci0gIGlmIChtZXNzYWdlXy5nZXQoKSAhPSBOVUxMKQotICAgIG5l
Z2F0aW9uIDw8ICptZXNzYWdlXzsKKyAgaWYgKG1lc3NhZ2VfLmdldCgpICE9IG51bGxwdHIpIG5l
Z2F0aW9uIDw8ICptZXNzYWdlXzsKICAgcmV0dXJuIG5lZ2F0aW9uOwogfQogCkBAIC0xMjcyLDkg
KzE0MjcsMTAgQEAgc3RkOjpzdHJpbmcgQ3JlYXRlVW5pZmllZERpZmYoY29uc3Qgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+JiBsZWZ0LAogICAgIGZvciAoOyBlZGl0X2kgPCBlZGl0cy5zaXplKCk7
ICsrZWRpdF9pKSB7CiAgICAgICBpZiAobl9zdWZmaXggPj0gY29udGV4dCkgewogICAgICAgICAv
LyBDb250aW51ZSBvbmx5IGlmIHRoZSBuZXh0IGh1bmsgaXMgdmVyeSBjbG9zZS4KLSAgICAgICAg
c3RkOjp2ZWN0b3I8RWRpdFR5cGU+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGVkaXRzLmJlZ2luKCkg
KyBlZGl0X2k7CisgICAgICAgIGF1dG8gaXQgPSBlZGl0cy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8
aW50PihlZGl0X2kpOwogICAgICAgICB3aGlsZSAoaXQgIT0gZWRpdHMuZW5kKCkgJiYgKml0ID09
IGtNYXRjaCkgKytpdDsKLSAgICAgICAgaWYgKGl0ID09IGVkaXRzLmVuZCgpIHx8IChpdCAtIGVk
aXRzLmJlZ2luKCkpIC0gZWRpdF9pID49IGNvbnRleHQpIHsKKyAgICAgICAgaWYgKGl0ID09IGVk
aXRzLmVuZCgpIHx8CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGl0IC0gZWRpdHMu
YmVnaW4oKSkgLSBlZGl0X2kgPj0gY29udGV4dCkgewogICAgICAgICAgIC8vIFRoZXJlIGlzIG5v
IG5leHQgZWRpdCBvciBpdCBpcyB0b28gZmFyIGF3YXkuCiAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KQEAgLTEzNTAsNyArMTUwNiw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxp
dEVzY2FwZWRTdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHN0cikgewogLy8gICBsaHNfdmFsdWU6
ICAgICAgIjUiCiAvLyAgIHJoc192YWx1ZTogICAgICAiNiIKIC8vCi0vLyBUaGUgaWdub3Jpbmdf
Y2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZmYgdGhlIGFzc2VydGlvbiBpcyBhCisvLyBUaGUgaWdu
b3JpbmdfY2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9u
IGlzIGEKIC8vICpfU1RSQ0FTRUVRKi4gIFdoZW4gaXQncyB0cnVlLCB0aGUgc3RyaW5nICJJZ25v
cmluZyBjYXNlIiB3aWxsCiAvLyBiZSBpbnNlcnRlZCBpbnRvIHRoZSBtZXNzYWdlLgogQXNzZXJ0
aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKQEAgLTE0MTMs
OCArMTU2OSwzMSBAQCBBc3NlcnRpb25SZXN1bHQgRG91YmxlTmVhclByZWRGb3JtYXQoY29uc3Qg
Y2hhciogZXhwcjEsCiAgIGNvbnN0IGRvdWJsZSBkaWZmID0gZmFicyh2YWwxIC0gdmFsMik7CiAg
IGlmIChkaWZmIDw9IGFic19lcnJvcikgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICAv
LyBGSVhNRTogZG8gbm90IHByaW50IHRoZSB2YWx1ZSBvZiBhbiBleHByZXNzaW9uIGlmIGl0J3MK
LSAgLy8gYWxyZWFkeSBhIGxpdGVyYWwuCisgIC8vIEZpbmQgdGhlIHZhbHVlIHdoaWNoIGlzIGNs
b3Nlc3QgdG8gemVyby4KKyAgY29uc3QgZG91YmxlIG1pbl9hYnMgPSBzdGQ6Om1pbihmYWJzKHZh
bDEpLCBmYWJzKHZhbDIpKTsKKyAgLy8gRmluZCB0aGUgZGlzdGFuY2UgdG8gdGhlIG5leHQgZG91
YmxlIGZyb20gdGhhdCB2YWx1ZS4KKyAgY29uc3QgZG91YmxlIGVwc2lsb24gPQorICAgICAgbmV4
dGFmdGVyKG1pbl9hYnMsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkg
LSBtaW5fYWJzOworICAvLyBEZXRlY3QgdGhlIGNhc2Ugd2hlcmUgYWJzX2Vycm9yIGlzIHNvIHNt
YWxsIHRoYXQgRVhQRUNUX05FQVIgaXMKKyAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgRVhQ
RUNUX0VRVUFMLCBhbmQgZ2l2ZSBhbiBpbmZvcm1hdGl2ZSBlcnJvcgorICAvLyBtZXNzYWdlIHNv
IHRoYXQgdGhlIHNpdHVhdGlvbiBjYW4gYmUgbW9yZSBlYXNpbHkgdW5kZXJzdG9vZCB3aXRob3V0
CisgIC8vIHJlcXVpcmluZyBleG90aWMgZmxvYXRpbmctcG9pbnQga25vd2xlZGdlLgorICAvLyBE
b24ndCBkbyBhbiBlcHNpbG9uIGNoZWNrIGlmIGFic19lcnJvciBpcyB6ZXJvIGJlY2F1c2UgdGhh
dCBpbXBsaWVzCisgIC8vIHRoYXQgYW4gZXF1YWxpdHkgY2hlY2sgd2FzIGFjdHVhbGx5IGludGVu
ZGVkLgorICBpZiAoIShzdGQ6OmlzbmFuKSh2YWwxKSAmJiAhKHN0ZDo6aXNuYW4pKHZhbDIpICYm
IGFic19lcnJvciA+IDAgJiYKKyAgICAgIGFic19lcnJvciA8IGVwc2lsb24pIHsKKyAgICByZXR1
cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgIDw8ICJUaGUgZGlmZmVyZW5jZSBiZXR3
ZWVuICIgPDwgZXhwcjEgPDwgIiBhbmQgIiA8PCBleHByMiA8PCAiIGlzICIKKyAgICAgICAgICAg
PDwgZGlmZiA8PCAiLCB3aGVyZVxuIgorICAgICAgICAgICA8PCBleHByMSA8PCAiIGV2YWx1YXRl
cyB0byAiIDw8IHZhbDEgPDwgIixcbiIKKyAgICAgICAgICAgPDwgZXhwcjIgPDwgIiBldmFsdWF0
ZXMgdG8gIiA8PCB2YWwyIDw8ICIuXG5UaGUgYWJzX2Vycm9yIHBhcmFtZXRlciAiCisgICAgICAg
ICAgIDw8IGFic19lcnJvcl9leHByIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgYWJzX2Vycm9yCisg
ICAgICAgICAgIDw8ICIgd2hpY2ggaXMgc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIGRpc3RhbmNl
IGJldHdlZW4gZG91YmxlcyBmb3IgIgorICAgICAgICAgICAgICAibnVtYmVycyBvZiB0aGlzIG1h
Z25pdHVkZSB3aGljaCBpcyAiCisgICAgICAgICAgIDw8IGVwc2lsb24KKyAgICAgICAgICAgPDwg
IiwgdGh1cyBtYWtpbmcgdGhpcyBFWFBFQ1RfTkVBUiBjaGVjayBlcXVpdmFsZW50IHRvICIKKyAg
ICAgICAgICAgICAgIkVYUEVDVF9FUVVBTC4gQ29uc2lkZXIgdXNpbmcgRVhQRUNUX0RPVUJMRV9F
USBpbnN0ZWFkLiI7CisgIH0KICAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQogICAgICAgPDwg
IlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gIiA8PCBleHByMSA8PCAiIGFuZCAiIDw8IGV4cHIyCiAg
ICAgICA8PCAiIGlzICIgPDwgZGlmZiA8PCAiLCB3aGljaCBleGNlZWRzICIgPDwgYWJzX2Vycm9y
X2V4cHIgPDwgIiwgd2hlcmVcbiIKQEAgLTE0NzcsNTcgKzE2NTYsNiBAQCBBc3NlcnRpb25SZXN1
bHQgRG91YmxlTEUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLAogCiBuYW1l
c3BhY2UgaW50ZXJuYWwgewogCi0vLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVY
UEVDVH1fRVEgd2l0aCBpbnQgb3IgZW51bQotLy8gYXJndW1lbnRzLgotQXNzZXJ0aW9uUmVzdWx0
IENtcEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJpZ2dlc3RJbnQgcmhzKSB7Ci0gIGlmIChsaHMgPT0gcmhzKSB7Ci0gICAgcmV0dXJuIEFzc2Vy
dGlvblN1Y2Nlc3MoKTsKLSAgfQotCi0gIHJldHVybiBFcUZhaWx1cmUobGhzX2V4cHJlc3Npb24s
Ci0gICAgICAgICAgICAgICAgICAgcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAg
Rm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKGxocywgcmhzKSwKLSAgICAgICAgICAg
ICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocmhzLCBsaHMpLAotICAg
ICAgICAgICAgICAgICAgIGZhbHNlKTsKLX0KLQotLy8gQSBtYWNybyBmb3IgaW1wbGVtZW50aW5n
IHRoZSBoZWxwZXIgZnVuY3Rpb25zIG5lZWRlZCB0byBpbXBsZW1lbnQKLS8vIEFTU0VSVF8/PyBh
bmQgRVhQRUNUXz8/IHdpdGggaW50ZWdlciBvciBlbnVtIGFyZ3VtZW50cy4gIEl0IGlzIGhlcmUK
LS8vIGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUgb2Ygc2ltaWxhciBjb2RlLgotI2RlZmlu
ZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKG9wX25hbWUsIG9wKVwKLUFzc2VydGlvblJlc3VsdCBD
bXBIZWxwZXIjI29wX25hbWUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgdmFsMSwgQmln
Z2VzdEludCB2YWwyKSB7XAotICBpZiAodmFsMSBvcCB2YWwyKSB7XAotICAgIHJldHVybiBBc3Nl
cnRpb25TdWNjZXNzKCk7XAotICB9IGVsc2Uge1wKLSAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVy
ZSgpIFwKLSAgICAgICAgPDwgIkV4cGVjdGVkOiAoIiA8PCBleHByMSA8PCAiKSAiICNvcCAiICgi
IDw8IGV4cHIyXAotICAgICAgICA8PCAiKSwgYWN0dWFsOiAiIDw8IEZvcm1hdEZvckNvbXBhcmlz
b25GYWlsdXJlTWVzc2FnZSh2YWwxLCB2YWwyKVwKLSAgICAgICAgPDwgIiB2cyAiIDw8IEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSh2YWwyLCB2YWwxKTtcCi0gIH1cCi19Ci0KLS8v
IEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X05FIHdp
dGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTkUs
ICE9KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVD
VH1fTEUgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMRSwgPD0pCi0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NF
UlR8RVhQRUNUfV9MVCB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBM
X0NNUF9IRUxQRVJfKExULCA8ICkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBm
b3Ige0FTU0VSVHxFWFBFQ1R9X0dFIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1
bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1Qgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1l
bnRzLgotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwgPiApCi0KLSN1bmRlZiBHVEVTVF9JTVBM
X0NNUF9IRUxQRVJfCi0KIC8vIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNU
fV9TVFJFUS4KIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJFUShjb25zdCBjaGFyKiBsaHNf
ZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBy
aHNfZXhwcmVzc2lvbiwKQEAgLTE1OTUsMjIgKzE3MjMsMjAgQEAgbmFtZXNwYWNlIHsKIAogLy8g
SGVscGVyIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5nIElzU3ViU3RyaW5nKCkgYW5kIElzTm90
U3Vic3RyaW5nKCkuCiAKLS8vIFRoaXMgZ3JvdXAgb2Ygb3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0
dXJuIHRydWUgaWZmIG5lZWRsZSBpcyBhCi0vLyBzdWJzdHJpbmcgb2YgaGF5c3RhY2suICBOVUxM
IGlzIGNvbnNpZGVyZWQgYSBzdWJzdHJpbmcgb2YgaXRzZWxmCi0vLyBvbmx5LgorLy8gVGhpcyBn
cm91cCBvZiBvdmVybG9hZGVkIGZ1bmN0aW9ucyByZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBu
ZWVkbGUKKy8vIGlzIGEgc3Vic3RyaW5nIG9mIGhheXN0YWNrLiAgTlVMTCBpcyBjb25zaWRlcmVk
IGEgc3Vic3RyaW5nIG9mCisvLyBpdHNlbGYgb25seS4KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQo
Y29uc3QgY2hhciogbmVlZGxlLCBjb25zdCBjaGFyKiBoYXlzdGFjaykgewotICBpZiAobmVlZGxl
ID09IE5VTEwgfHwgaGF5c3RhY2sgPT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0
YWNrOworICBpZiAobmVlZGxlID09IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0
dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsKIAotICByZXR1cm4gc3Ryc3RyKGhheXN0YWNrLCBuZWVk
bGUpICE9IE5VTEw7CisgIHJldHVybiBzdHJzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0
cjsKIH0KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29uc3Qgd2NoYXJfdCogbmVlZGxlLCBjb25z
dCB3Y2hhcl90KiBoYXlzdGFjaykgewotICBpZiAobmVlZGxlID09IE5VTEwgfHwgaGF5c3RhY2sg
PT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhheXN0YWNrOworICBpZiAobmVlZGxlID09
IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFj
azsKIAotICByZXR1cm4gd2Nzc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IE5VTEw7CisgIHJldHVy
biB3Y3NzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0cjsKIH0KIAogLy8gU3RyaW5nVHlw
ZSBoZXJlIGNhbiBiZSBlaXRoZXIgOjpzdGQ6OnN0cmluZyBvciA6OnN0ZDo6d3N0cmluZy4KQEAg
LTE3MjQsMTIgKzE4NTAsMTIgQEAgQXNzZXJ0aW9uUmVzdWx0IEhSRVNVTFRGYWlsdXJlSGVscGVy
KGNvbnN0IGNoYXIqIGV4cHIsCiAgIC8vIEdldHMgdGhlIHN5c3RlbSdzIGh1bWFuIHJlYWRhYmxl
IG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGlzIEhSRVNVTFQuCiAgIGNoYXIgZXJyb3JfdGV4dFtrQnVm
U2l6ZV0gPSB7ICdcMCcgfTsKICAgRFdPUkQgbWVzc2FnZV9sZW5ndGggPSA6OkZvcm1hdE1lc3Nh
Z2VBKGtGbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs
ICAvLyBubyBzb3VyY2UsIHdlJ3JlIGFza2luZyBzeXN0ZW0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhyLCAgLy8gdGhlIGVycm9yCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgLy8gbm8gbGluZSB3aWR0aCByZXN0cmljdGlv
bnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgLy8gbm8g
c291cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxEV09SRD4oaHIpLCAgLy8gdGhlIGVycm9yCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgIC8vIG5vIGxpbmUgd2lk
dGggcmVzdHJpY3Rpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcl90ZXh0LCAgLy8gb3V0cHV0IGJ1ZmZlcgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga0J1ZlNpemUsICAvLyBidWYgc2l6ZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7ICAvLyBubyBhcmd1bWVudHMgZm9yIGlu
c2VydHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtCdWZTaXpl
LCAgICAvLyBidWYgc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVsbHB0cik7ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2VydHMKICAgLy8gVHJpbXMgdGFp
bGluZyB3aGl0ZSBzcGFjZSAoRm9ybWF0TWVzc2FnZSBsZWF2ZXMgYSB0cmFpbGluZyBDUi1MRikK
ICAgZm9yICg7IG1lc3NhZ2VfbGVuZ3RoICYmIElzU3BhY2UoZXJyb3JfdGV4dFttZXNzYWdlX2xl
bmd0aCAtIDFdKTsKICAgICAgICAgICAtLW1lc3NhZ2VfbGVuZ3RoKSB7CkBAIC0xNzc1LDM1ICsx
OTAxLDM1IEBAIEFzc2VydGlvblJlc3VsdCBJc0hSRVNVTFRGYWlsdXJlKGNvbnN0IGNoYXIqIGV4
cHIsIGxvbmcgaHIpIHsgIC8vIE5PTElOVAogLy8gIDE3IC0gMjEgYml0cyAgICAgICAxMTExMHh4
eCAxMHh4eHh4eCAxMHh4eHh4eCAxMHh4eHh4eAogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50
IGEgb25lLWJ5dGUgVVRGLTggc2VxdWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBr
TWF4Q29kZVBvaW50MSA9IChzdGF0aWNfY2FzdDxVSW50MzI+KDEpIDw8ICA3KSAtIDE7Citjb25z
dGV4cHIgdWludDMyX3Qga01heENvZGVQb2ludDEgPSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEp
IDw8ICA3KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0d28tYnl0ZSBVVEYt
OCBzZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtNYXhDb2RlUG9pbnQyID0g
KHN0YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDUgKyA2KSkgLSAxOworY29uc3RleHByIHVpbnQz
Ml90IGtNYXhDb2RlUG9pbnQyID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoNSArIDYp
KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSB0aHJlZS1ieXRlIFVURi04IHNl
cXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENvZGVQb2ludDMgPSAoc3Rh
dGljX2Nhc3Q8VUludDMyPigxKSA8PCAoNCArIDIqNikpIC0gMTsKK2NvbnN0ZXhwciB1aW50MzJf
dCBrTWF4Q29kZVBvaW50MyA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgKDQgKyAyKjYp
KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9pbnQgYSBmb3VyLWJ5dGUgVVRGLTggc2Vx
dWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4Q29kZVBvaW50NCA9IChzdGF0
aWNfY2FzdDxVSW50MzI+KDEpIDw8ICgzICsgMyo2KSkgLSAxOworY29uc3RleHByIHVpbnQzMl90
IGtNYXhDb2RlUG9pbnQ0ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PigxKSA8PCAoMyArIDMqNikp
IC0gMTsKIAogLy8gQ2hvcHMgb2ZmIHRoZSBuIGxvd2VzdCBiaXRzIGZyb20gYSBiaXQgcGF0dGVy
bi4gIFJldHVybnMgdGhlIG4KIC8vIGxvd2VzdCBiaXRzLiAgQXMgYSBzaWRlIGVmZmVjdCwgdGhl
IG9yaWdpbmFsIGJpdCBwYXR0ZXJuIHdpbGwgYmUKIC8vIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5
IG4gYml0cy4KLWlubGluZSBVSW50MzIgQ2hvcExvd0JpdHMoVUludDMyKiBiaXRzLCBpbnQgbikg
ewotICBjb25zdCBVSW50MzIgbG93X2JpdHMgPSAqYml0cyAmICgoc3RhdGljX2Nhc3Q8VUludDMy
PigxKSA8PCBuKSAtIDEpOworaW5saW5lIHVpbnQzMl90IENob3BMb3dCaXRzKHVpbnQzMl90KiBi
aXRzLCBpbnQgbikgeworICBjb25zdCB1aW50MzJfdCBsb3dfYml0cyA9ICpiaXRzICYgKChzdGF0
aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgbikgLSAxKTsKICAgKmJpdHMgPj49IG47CiAgIHJldHVy
biBsb3dfYml0czsKIH0KIAogLy8gQ29udmVydHMgYSBVbmljb2RlIGNvZGUgcG9pbnQgdG8gYSBu
YXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgotLy8gY29kZV9wb2ludCBwYXJhbWV0ZXIg
aXMgb2YgdHlwZSBVSW50MzIgYmVjYXVzZSB3Y2hhcl90IG1heSBub3QgYmUKKy8vIGNvZGVfcG9p
bnQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgdWludDMyX3QgYmVjYXVzZSB3Y2hhcl90IG1heSBub3Qg
YmUKIC8vIHdpZGUgZW5vdWdoIHRvIGNvbnRhaW4gYSBjb2RlIHBvaW50LgogLy8gSWYgdGhlIGNv
ZGVfcG9pbnQgaXMgbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50CiAvLyAoaS5lLiBvdXRz
aWRlIG9mIFVuaWNvZGUgcmFuZ2UgVSswIHRvIFUrMTBGRkZGKSBpdCB3aWxsIGJlIGNvbnZlcnRl
ZAogLy8gdG8gIihJbnZhbGlkIFVuaWNvZGUgMHhYWFhYWFhYWCkiLgotc3RkOjpzdHJpbmcgQ29k
ZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KSB7CitzdGQ6OnN0cmluZyBDb2RlUG9pbnRU
b1V0ZjgodWludDMyX3QgY29kZV9wb2ludCkgewogICBpZiAoY29kZV9wb2ludCA+IGtNYXhDb2Rl
UG9pbnQ0KSB7Ci0gICAgcmV0dXJuICIoSW52YWxpZCBVbmljb2RlIDB4IiArIFN0cmluZzo6Rm9y
bWF0SGV4SW50KGNvZGVfcG9pbnQpICsgIikiOworICAgIHJldHVybiAiKEludmFsaWQgVW5pY29k
ZSAweCIgKyBTdHJpbmc6OkZvcm1hdEhleFVJbnQzMihjb2RlX3BvaW50KSArICIpIjsKICAgfQog
CiAgIGNoYXIgc3RyWzVdOyAgLy8gQmlnIGVub3VnaCBmb3IgdGhlIGxhcmdlc3QgdmFsaWQgY29k
ZSBwb2ludC4KQEAgLTE4MzEsNyArMTk1Nyw3IEBAIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRm
OChVSW50MzIgY29kZV9wb2ludCkgewogCiAvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMg
b25seSBtYWtlIHNlbnNlIGlmIHRoZSBzeXN0ZW0KIC8vIHVzZXMgVVRGLTE2IGZvciB3aWRlIHN0
cmluZyBlbmNvZGluZy4gQWxsIHN1cHBvcnRlZCBzeXN0ZW1zCi0vLyB3aXRoIDE2IGJpdCB3Y2hh
cl90IChXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpIGRvIHVzZSBVVEYtMTYuCisvLyB3aXRo
IDE2IGJpdCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4pIGRvIHVzZSBVVEYtMTYuCiAKIC8vIERl
dGVybWluZXMgaWYgdGhlIGFyZ3VtZW50cyBjb25zdGl0dXRlIFVURi0xNiBzdXJyb2dhdGUgcGFp
cgogLy8gYW5kIHRodXMgc2hvdWxkIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgVW5pY29kZSBj
b2RlIHBvaW50CkBAIC0xODQyLDE5ICsxOTY4LDIyIEBAIGlubGluZSBib29sIElzVXRmMTZTdXJy
b2dhdGVQYWlyKHdjaGFyX3QgZmlyc3QsIHdjaGFyX3Qgc2Vjb25kKSB7CiB9CiAKIC8vIENyZWF0
ZXMgYSBVbmljb2RlIGNvZGUgcG9pbnQgZnJvbSBVVEYxNiBzdXJyb2dhdGUgcGFpci4KLWlubGlu
ZSBVSW50MzIgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZp
cnN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdjaGFyX3Qgc2Vjb25kKSB7Ci0gIGNvbnN0IFVJbnQzMiBtYXNrID0gKDEgPDwgMTApIC0gMTsK
LSAgcmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikgPwotICAgICAgKCgoZmlyc3QgJiBtYXNr
KSA8PCAxMCkgfCAoc2Vjb25kICYgbWFzaykpICsgMHgxMDAwMCA6Ci0gICAgICAvLyBUaGlzIGZ1
bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4gdGhlIGNvbmRpdGlvbiBpcwotICAgICAg
Ly8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlz
LgotICAgICAgc3RhdGljX2Nhc3Q8VUludDMyPihmaXJzdCk7CitpbmxpbmUgdWludDMyX3QgQ3Jl
YXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2NoYXJfdCBz
ZWNvbmQpIHsKKyAgY29uc3QgYXV0byBmaXJzdF91ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZp
cnN0KTsKKyAgY29uc3QgYXV0byBzZWNvbmRfdSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZWNv
bmQpOworICBjb25zdCB1aW50MzJfdCBtYXNrID0gKDEgPDwgMTApIC0gMTsKKyAgcmV0dXJuIChz
aXplb2Yod2NoYXJfdCkgPT0gMikKKyAgICAgICAgICAgICA/ICgoKGZpcnN0X3UgJiBtYXNrKSA8
PCAxMCkgfCAoc2Vjb25kX3UgJiBtYXNrKSkgKyAweDEwMDAwCisgICAgICAgICAgICAgOgorICAg
ICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUg
Y29uZGl0aW9uIGlzCisgICAgICAgICAgICAgLy8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vu
c2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgorICAgICAgICAgICAgIGZpcnN0X3U7CiB9CiAK
IC8vIENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04IGVu
Y29kaW5nLgogLy8gVGhlIHdpZGUgc3RyaW5nIGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZm9sbG93
aW5nIGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYgc2l6ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdp
bmRvd3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKKy8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90
KSA9PSAyIChvbiBXaW5kb3dzLCBDeWd3aW4pCiAvLyAgIFVURi0zMiBpZiBzaXplb2Yod2NoYXJf
dCkgPT0gNCAob24gTGludXgpCiAvLyBQYXJhbWV0ZXIgc3RyIHBvaW50cyB0byBhIG51bGwtdGVy
bWluYXRlZCB3aWRlIHN0cmluZy4KIC8vIFBhcmFtZXRlciBudW1fY2hhcnMgbWF5IGFkZGl0aW9u
YWxseSBsaW1pdCB0aGUgbnVtYmVyCkBAIC0xODcxLDcgKzIwMDAsNyBAQCBzdGQ6OnN0cmluZyBX
aWRlU3RyaW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwgaW50IG51bV9jaGFycykgewogCiAg
IDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwogICBmb3IgKGludCBpID0gMDsgaSA8IG51bV9j
aGFyczsgKytpKSB7Ci0gICAgVUludDMyIHVuaWNvZGVfY29kZV9wb2ludDsKKyAgICB1aW50MzJf
dCB1bmljb2RlX2NvZGVfcG9pbnQ7CiAKICAgICBpZiAoc3RyW2ldID09IEwnXDAnKSB7CiAgICAg
ICBicmVhazsKQEAgLTE4ODAsNyArMjAwOSw3IEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0
ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVtX2NoYXJzKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cltpICsg
MV0pOwogICAgICAgaSsrOwogICAgIH0gZWxzZSB7Ci0gICAgICB1bmljb2RlX2NvZGVfcG9pbnQg
PSBzdGF0aWNfY2FzdDxVSW50MzI+KHN0cltpXSk7CisgICAgICB1bmljb2RlX2NvZGVfcG9pbnQg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RyW2ldKTsKICAgICB9CiAKICAgICBzdHJlYW0gPDwg
Q29kZVBvaW50VG9VdGY4KHVuaWNvZGVfY29kZV9wb2ludCk7CkBAIC0xODkxLDIxICsyMDIwLDIx
IEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQg
bnVtX2NoYXJzKSB7CiAvLyBDb252ZXJ0cyBhIHdpZGUgQyBzdHJpbmcgdG8gYW4gc3RkOjpzdHJp
bmcgdXNpbmcgdGhlIFVURi04IGVuY29kaW5nLgogLy8gTlVMTCB3aWxsIGJlIGNvbnZlcnRlZCB0
byAiKG51bGwpIi4KIHN0ZDo6c3RyaW5nIFN0cmluZzo6U2hvd1dpZGVDU3RyaW5nKGNvbnN0IHdj
aGFyX3QgKiB3aWRlX2Nfc3RyKSB7Ci0gIGlmICh3aWRlX2Nfc3RyID09IE5VTEwpICByZXR1cm4g
IihudWxsKSI7CisgIGlmICh3aWRlX2Nfc3RyID09IG51bGxwdHIpIHJldHVybiAiKG51bGwpIjsK
IAogICByZXR1cm4gaW50ZXJuYWw6OldpZGVTdHJpbmdUb1V0Zjgod2lkZV9jX3N0ciwgLTEpOwog
fQogCi0vLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRo
ZXkgaGF2ZSB0aGUgc2FtZQotLy8gY29udGVudC4KKy8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3Ry
aW5ncy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGV5IGhhdmUgdGhlCisvLyBzYW1l
IGNvbnRlbnQuCiAvLwogLy8gVW5saWtlIHdjc2NtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5k
bGUgTlVMTCBhcmd1bWVudChzKS4gIEEgTlVMTAogLy8gQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBk
aWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0
eSBzdHJpbmcuCiBib29sIFN0cmluZzo6V2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCAq
IGxocywgY29uc3Qgd2NoYXJfdCAqIHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiBy
aHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7
CiAKLSAgaWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0
cikgcmV0dXJuIGZhbHNlOwogCiAgIHJldHVybiB3Y3NjbXAobGhzLCByaHMpID09IDA7CiB9CkBA
IC0xOTQxLDM3ICsyMDcwLDM1IEBAIEFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXJTVFJORShjb25z
dCBjaGFyKiBzMV9leHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIg
dnMgIiA8PCBQcmludFRvU3RyaW5nKHMyKTsKIH0KIAotLy8gQ29tcGFyZXMgdHdvIEMgc3RyaW5n
cywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleSBoYXZlCisvLyBDb21wYXJl
cyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAgUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZXkgaGF2ZQogLy8gdGhlIHNhbWUgY29udGVudC4KIC8vCiAvLyBVbmxpa2Ugc3RyY2Fz
ZWNtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEKIC8v
IE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMg
c3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiBib29sIFN0cmluZzo6Q2Fz
ZUluc2Vuc2l0aXZlQ1N0cmluZ0VxdWFscyhjb25zdCBjaGFyICogbGhzLCBjb25zdCBjaGFyICog
cmhzKSB7Ci0gIGlmIChsaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gcmhzID09IE5VTEw7Ci0gIGlm
IChyaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7CisgIGlmIChsaHMgPT0gbnVsbHB0cikg
cmV0dXJuIHJocyA9PSBudWxscHRyOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxz
ZTsKICAgcmV0dXJuIHBvc2l4OjpTdHJDYXNlQ21wKGxocywgcmhzKSA9PSAwOwogfQogCi0gIC8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1
ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCi0gIC8vCi0gIC8vIFVubGlr
ZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMp
LgotICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5v
bi1OVUxMIHdpZGUgQyBzdHJpbmcsCi0gIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgot
ICAvLyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zIHNsaWdo
dGx5IGRpZmZlci4KLSAgLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3
aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKLSAgLy8gZW52aXJvbm1lbnQgdmFy
aWFibGUuIE9uIEdOVSBwbGF0Zm9ybSB0aGlzIG1ldGhvZCB1c2VzIHdjc2Nhc2VjbXAKLSAgLy8g
d2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZSBjdXJy
ZW50IGxvY2FsZS4KLSAgLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxz
byB1c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQotICAvLyBjdXJyZW50IGxvY2FsZS4KKy8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGV5CisvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisvLworLy8g
VW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1l
bnQocykuCisvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55
IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCisvLyBpbmNsdWRpbmcgdGhlIGVtcHR5IHN0cmluZy4K
Ky8vIE5COiBUaGUgaW1wbGVtZW50YXRpb25zIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgc2xpZ2h0
bHkgZGlmZmVyLgorLy8gT24gd2luZG93cywgdGhpcyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3aGlj
aCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUKKy8vIGVudmlyb25tZW50IHZhcmlhYmxl
LiBPbiBHTlUgcGxhdGZvcm0gdGhpcyBtZXRob2QgdXNlcyB3Y3NjYXNlY21wCisvLyB3aGljaCBj
b21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUgY2F0ZWdvcnkgb2YgdGhlIGN1cnJlbnQgbG9j
YWxlLgorLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3dsb3dlciwgd2hpY2ggYWxzbyB1c2VzIExD
X0NUWVBFIGNhdGVnb3J5IG9mIHRoZQorLy8gY3VycmVudCBsb2NhbGUuCiBib29sIFN0cmluZzo6
Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3Qq
IHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVybiByaHMgPT0gTlVMTDsKKyAgaWYgKGxo
cyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAKLSAgaWYgKHJocyA9PSBOVUxM
KSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogCiAj
aWYgR1RFU1RfT1NfV0lORE9XUwogICByZXR1cm4gX3djc2ljbXAobGhzLCByaHMpID09IDA7CkBA
IC0xOTgyLDE0ICsyMTA5LDE0IEBAIGJvb2wgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0
cmluZ0VxdWFscyhjb25zdCB3Y2hhcl90KiBsaHMsCiAgIC8vIE90aGVyIHVua25vd24gT1NlcyBt
YXkgbm90IGRlZmluZSBpdCBlaXRoZXIuCiAgIHdpbnRfdCBsZWZ0LCByaWdodDsKICAgZG8gewot
ICAgIGxlZnQgPSB0b3dsb3dlcigqbGhzKyspOwotICAgIHJpZ2h0ID0gdG93bG93ZXIoKnJocysr
KTsKKyAgICBsZWZ0ID0gdG93bG93ZXIoc3RhdGljX2Nhc3Q8d2ludF90PigqbGhzKyspKTsKKyAg
ICByaWdodCA9IHRvd2xvd2VyKHN0YXRpY19jYXN0PHdpbnRfdD4oKnJocysrKSk7CiAgIH0gd2hp
bGUgKGxlZnQgJiYgbGVmdCA9PSByaWdodCk7CiAgIHJldHVybiBsZWZ0ID09IHJpZ2h0OwogI2Vu
ZGlmICAvLyBPUyBzZWxlY3RvcgogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHN0ciBlbmRzIHdp
dGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcgY2FzZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiBzdHIgZW5kcyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsIGlnbm9yaW5nIGNhc2Uu
CiAvLyBBbnkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8gZW5kIHdpdGggYW4gZW1wdHkgc3VmZml4
LgogYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogICAgIGNvbnN0IHN0ZDo6
c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWZmaXgpIHsKQEAgLTIwMDIsMTggKzIx
MjksMjggQEAgYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vuc2l0aXZlKAogCiAvLyBGb3Jt
YXRzIGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCiBzdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdElu
dFdpZHRoMihpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEludFdpZHRoTih2YWx1ZSwgMik7
Cit9CisKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIHRvIGdpdmVuIHdpZHRoIHdpdGggbGVhZGlu
ZyB6ZXJvcy4KK3N0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0SW50V2lkdGhOKGludCB2YWx1ZSwg
aW50IHdpZHRoKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwotICBzcyA8PCBzdGQ6OnNldGZp
bGwoJzAnKSA8PCBzdGQ6OnNldHcoMikgPDwgdmFsdWU7CisgIHNzIDw8IHN0ZDo6c2V0ZmlsbCgn
MCcpIDw8IHN0ZDo6c2V0dyh3aWR0aCkgPDwgdmFsdWU7CiAgIHJldHVybiBzcy5zdHIoKTsKIH0K
IAogLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiVYIi4KLXN0ZDo6c3RyaW5nIFN0cmluZzo6
Rm9ybWF0SGV4SW50KGludCB2YWx1ZSkgeworc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRIZXhV
SW50MzIodWludDMyX3QgdmFsdWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CiAgIHNzIDw8
IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHZhbHVlOwogICByZXR1cm4gc3Muc3RyKCk7
CiB9CiAKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCitzdGQ6OnN0cmluZyBTdHJp
bmc6OkZvcm1hdEhleEludChpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZvcm1hdEhleFVJbnQzMihz
dGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpKTsKK30KKwogLy8gRm9ybWF0cyBhIGJ5dGUgYXMg
IiUwMlgiLgogc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3JtYXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFs
dWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CkBAIC0yMDMwLDcgKzIxNjcsNyBAQCBzdGQ6
OnN0cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6OnN0ZDo6c3RyaW5nc3RyZWFtKiBzcykgewog
ICBjb25zdCBjaGFyKiBjb25zdCBlbmQgPSBzdGFydCArIHN0ci5sZW5ndGgoKTsKIAogICBzdGQ6
OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNlcnZlKDIgKiAoZW5kIC0gc3RhcnQpKTsKKyAg
cmVzdWx0LnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90PigyICogKGVuZCAtIHN0YXJ0KSkpOwog
ICBmb3IgKGNvbnN0IGNoYXIqIGNoID0gc3RhcnQ7IGNoICE9IGVuZDsgKytjaCkgewogICAgIGlm
ICgqY2ggPT0gJ1wwJykgewogICAgICAgcmVzdWx0ICs9ICJcXDAiOyAgLy8gUmVwbGFjZXMgTlVM
IHdpdGggIlxcMCI7CkBAIC0yMDUwLDcgKzIxODcsOSBAQCBzdGQ6OnN0cmluZyBBcHBlbmRVc2Vy
TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgZ3Rlc3RfbXNnLAogICBpZiAodXNlcl9tc2dfc3Ry
aW5nLmVtcHR5KCkpIHsKICAgICByZXR1cm4gZ3Rlc3RfbXNnOwogICB9Ci0KKyAgaWYgKGd0ZXN0
X21zZy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIHVzZXJfbXNnX3N0cmluZzsKKyAgfQogICByZXR1
cm4gZ3Rlc3RfbXNnICsgIlxuIiArIHVzZXJfbXNnX3N0cmluZzsKIH0KIApAQCAtMjA2MCw5ICsy
MTk5LDcgQEAgc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1lc3NhZ2UoY29uc3Qgc3RkOjpzdHJpbmcm
IGd0ZXN0X21zZywKIAogLy8gQ3JlYXRlcyBhbiBlbXB0eSBUZXN0UmVzdWx0LgogVGVzdFJlc3Vs
dDo6VGVzdFJlc3VsdCgpCi0gICAgOiBkZWF0aF90ZXN0X2NvdW50XygwKSwKLSAgICAgIGVsYXBz
ZWRfdGltZV8oMCkgewotfQorICAgIDogZGVhdGhfdGVzdF9jb3VudF8oMCksIHN0YXJ0X3RpbWVz
dGFtcF8oMCksIGVsYXBzZWRfdGltZV8oMCkge30KIAogLy8gRCd0b3IuCiBUZXN0UmVzdWx0Ojp+
VGVzdFJlc3VsdCgpIHsKQEAgLTIwNzQsNyArMjIxMSw3IEBAIFRlc3RSZXN1bHQ6On5UZXN0UmVz
dWx0KCkgewogY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRlc3RSZXN1bHQ6OkdldFRlc3RQYXJ0UmVz
dWx0KGludCBpKSBjb25zdCB7CiAgIGlmIChpIDwgMCB8fCBpID49IHRvdGFsX3BhcnRfY291bnQo
KSkKICAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3BhcnRfcmVz
dWx0c18uYXQoaSk7CisgIHJldHVybiB0ZXN0X3BhcnRfcmVzdWx0c18uYXQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihpKSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBwcm9wZXJ0eS4gaSBj
YW4gcmFuZ2UgZnJvbSAwIHRvCkBAIC0yMDgzLDcgKzIyMjAsNyBAQCBjb25zdCBUZXN0UGFydFJl
c3VsdCYgVGVzdFJlc3VsdDo6R2V0VGVzdFBhcnRSZXN1bHQoaW50IGkpIGNvbnN0IHsKIGNvbnN0
IFRlc3RQcm9wZXJ0eSYgVGVzdFJlc3VsdDo6R2V0VGVzdFByb3BlcnR5KGludCBpKSBjb25zdCB7
CiAgIGlmIChpIDwgMCB8fCBpID49IHRlc3RfcHJvcGVydHlfY291bnQoKSkKICAgICBpbnRlcm5h
bDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0X3Byb3BlcnRpZXNfLmF0KGkpOworICBy
ZXR1cm4gdGVzdF9wcm9wZXJ0aWVzXy5hdChzdGF0aWNfY2FzdDxzaXplX3Q+KGkpKTsKIH0KIAog
Ly8gQ2xlYXJzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0cy4KQEAgLTIxMzEsMjAgKzIyNjgsMjEgQEAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RTdWl0ZXNBdHRyaWJ1dGVzW10g
PSB7CiAvLyBUaGUgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0
c3VpdGU+IGVsZW1lbnQgb2YgWE1MCiAvLyBvdXRwdXQuCiBzdGF0aWMgY29uc3QgY2hhciogY29u
c3Qga1Jlc2VydmVkVGVzdFN1aXRlQXR0cmlidXRlc1tdID0gewotICAiZGlzYWJsZWQiLAotICAi
ZXJyb3JzIiwKLSAgImZhaWx1cmVzIiwKLSAgIm5hbWUiLAotICAidGVzdHMiLAotICAidGltZSIK
LX07CisgICAgImRpc2FibGVkIiwgImVycm9ycyIsICJmYWlsdXJlcyIsICAibmFtZSIsCisgICAg
InRlc3RzIiwgICAgInRpbWUiLCAgICJ0aW1lc3RhbXAiLCAic2tpcHBlZCJ9OwogCiAvLyBUaGUg
bGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVu
dCBvZiBYTUwgb3V0cHV0Lgogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RD
YXNlQXR0cmlidXRlc1tdID0gewotICAgICJjbGFzc25hbWUiLCAgIm5hbWUiLCAgICAgICAgInN0
YXR1cyIsICJ0aW1lIiwKLSAgICAidHlwZV9wYXJhbSIsICJ2YWx1ZV9wYXJhbSIsICJmaWxlIiwg
ICAibGluZSJ9OworICAgICJjbGFzc25hbWUiLCAgICJuYW1lIiwgInN0YXR1cyIsICJ0aW1lIiwg
ICJ0eXBlX3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIn07CiAKLXRl
bXBsYXRlIDxpbnQga1NpemU+CisvLyBVc2UgYSBzbGlnaHRseSBkaWZmZXJlbnQgc2V0IGZvciBh
bGxvd2VkIG91dHB1dCB0byBlbnN1cmUgZXhpc3RpbmcgdGVzdHMgY2FuCisvLyBzdGlsbCBSZWNv
cmRQcm9wZXJ0eSgicmVzdWx0Iikgb3IgIlJlY29yZFByb3BlcnR5KHRpbWVzdGFtcCIpCitzdGF0
aWMgY29uc3QgY2hhciogY29uc3Qga1Jlc2VydmVkT3V0cHV0VGVzdENhc2VBdHRyaWJ1dGVzW10g
PSB7CisgICAgImNsYXNzbmFtZSIsICAgIm5hbWUiLCAic3RhdHVzIiwgInRpbWUiLCAgICJ0eXBl
X3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmlsZSIsICJsaW5lIiwgICAicmVzdWx0Iiwg
InRpbWVzdGFtcCJ9OworCit0ZW1wbGF0ZSA8c2l6ZV90IGtTaXplPgogc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IEFycmF5QXNWZWN0b3IoY29uc3QgY2hhciogY29uc3QgKCZhcnJheSlba1NpemVd
KSB7CiAgIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4oYXJyYXksIGFycmF5ICsga1Np
emUpOwogfQpAQCAtMjE2NCw2ICsyMzAyLDIyIEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudCgKICAgcmV0dXJuIHN0ZDo6dmVj
dG9yPHN0ZDo6c3RyaW5nPigpOwogfQogCisvLyBUT0RPKGpkZXNwcmV6KTogTWVyZ2UgdGhlIHR3
byBnZXRSZXNlcnZlZCBhdHRyaWJ1dGVzIG9uY2Ugc2tpcCBpcyBpbXByb3ZlZAorc3RhdGljIHN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVt
ZW50KAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxfZWxlbWVudCkgeworICBpZiAoeG1sX2Vs
ZW1lbnQgPT0gInRlc3RzdWl0ZXMiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2Vy
dmVkVGVzdFN1aXRlc0F0dHJpYnV0ZXMpOworICB9IGVsc2UgaWYgKHhtbF9lbGVtZW50ID09ICJ0
ZXN0c3VpdGUiKSB7CisgICAgcmV0dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2VydmVkVGVzdFN1aXRl
QXR0cmlidXRlcyk7CisgIH0gZWxzZSBpZiAoeG1sX2VsZW1lbnQgPT0gInRlc3RjYXNlIikgewor
ICAgIHJldHVybiBBcnJheUFzVmVjdG9yKGtSZXNlcnZlZE91dHB1dFRlc3RDYXNlQXR0cmlidXRl
cyk7CisgIH0gZWxzZSB7CisgICAgR1RFU1RfQ0hFQ0tfKGZhbHNlKSA8PCAiVW5yZWNvZ25pemVk
IHhtbF9lbGVtZW50IHByb3ZpZGVkOiAiIDw8IHhtbF9lbGVtZW50OworICB9CisgIC8vIFRoaXMg
Y29kZSBpcyB1bnJlYWNoYWJsZSBidXQgc29tZSBjb21waWxlcnMgbWF5IG5vdCByZWFsaXplcyB0
aGF0LgorICByZXR1cm4gc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KCk7Cit9CisKIHN0YXRpYyBz
dGQ6OnN0cmluZyBGb3JtYXRXb3JkTGlzdChjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4m
IHdvcmRzKSB7CiAgIE1lc3NhZ2Ugd29yZF9saXN0OwogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHdvcmRzLnNpemUoKTsgKytpKSB7CkBAIC0yMjA3LDcgKzIzNjEsMTcgQEAgdm9pZCBUZXN0UmVz
dWx0OjpDbGVhcigpIHsKICAgZWxhcHNlZF90aW1lXyA9IDA7CiB9CiAKLS8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIHRlc3QgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIG9mZiB0aGUgdGVzdCBwYXJ0
IHdhcyBza2lwcGVkLgorc3RhdGljIGJvb2wgVGVzdFBhcnRTa2lwcGVkKGNvbnN0IFRlc3RQYXJ0
UmVzdWx0JiByZXN1bHQpIHsKKyAgcmV0dXJuIHJlc3VsdC5za2lwcGVkKCk7Cit9CisKKy8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCB3YXMgc2tpcHBlZC4KK2Jvb2wgVGVz
dFJlc3VsdDo6U2tpcHBlZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFGYWlsZWQoKSAmJiBDb3VudElm
KHRlc3RfcGFydF9yZXN1bHRzXywgVGVzdFBhcnRTa2lwcGVkKSA+IDA7Cit9CisKKy8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmYWlsZWQuCiBib29sIFRlc3RSZXN1bHQ6
OkZhaWxlZCgpIGNvbnN0IHsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF9wYXJ0X2NvdW50
KCk7ICsraSkgewogICAgIGlmIChHZXRUZXN0UGFydFJlc3VsdChpKS5mYWlsZWQoKSkKQEAgLTIy
MTYsMjIgKzIzODAsMjIgQEAgYm9vbCBUZXN0UmVzdWx0OjpGYWlsZWQoKSBjb25zdCB7CiAgIHJl
dHVybiBmYWxzZTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IGZhdGFs
bHkgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHBhcnQg
ZmF0YWxseSBmYWlsZWQuCiBzdGF0aWMgYm9vbCBUZXN0UGFydEZhdGFsbHlGYWlsZWQoY29uc3Qg
VGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgewogICByZXR1cm4gcmVzdWx0LmZhdGFsbHlfZmFpbGVk
KCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiBi
b29sIFRlc3RSZXN1bHQ6Okhhc0ZhdGFsRmFpbHVyZSgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50
SWYodGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydEZhdGFsbHlGYWlsZWQpID4gMDsKIH0KIAot
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KKy8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZh
aWxlZC4KIHN0YXRpYyBib29sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZChjb25zdCBUZXN0UGFy
dFJlc3VsdCYgcmVzdWx0KSB7CiAgIHJldHVybiByZXN1bHQubm9uZmF0YWxseV9mYWlsZWQoKTsK
IH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVy
ZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0
YWwgZmFpbHVyZS4KIGJvb2wgVGVzdFJlc3VsdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgY29uc3Qg
ewogICByZXR1cm4gQ291bnRJZih0ZXN0X3BhcnRfcmVzdWx0c18sIFRlc3RQYXJ0Tm9uZmF0YWxs
eUZhaWxlZCkgPiAwOwogfQpAQCAtMjI5NCwyNSArMjQ1OCwyNSBAQCB2b2lkIFJlcG9ydEZhaWx1
cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlwZSByZXN1bHRfdHlwZSwKICAg
Ly8gQWRkVGVzdFBhcnRSZXN1bHQuCiAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5BZGRUZXN0
UGFydFJlc3VsdCgKICAgICAgIHJlc3VsdF90eXBlLAotICAgICAgTlVMTCwgIC8vIE5vIGluZm8g
YWJvdXQgdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuCi0gICAg
ICAtMSwgICAgLy8gV2UgaGF2ZSBubyBpbmZvIG9uIHdoaWNoIGxpbmUgY2F1c2VkIHRoZSBleGNl
cHRpb24uCisgICAgICBudWxscHRyLCAgLy8gTm8gaW5mbyBhYm91dCB0aGUgc291cmNlIGZpbGUg
d2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAgICAgIC0xLCAgICAgICAvLyBXZSBoYXZl
IG5vIGluZm8gb24gd2hpY2ggbGluZSBjYXVzZWQgdGhlIGV4Y2VwdGlvbi4KICAgICAgIG1lc3Nh
Z2UsCi0gICAgICAiIik7ICAgLy8gTm8gc3RhY2sgdHJhY2UsIGVpdGhlci4KKyAgICAgICIiKTsg
IC8vIE5vIHN0YWNrIHRyYWNlLCBlaXRoZXIuCiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAogCi0vLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBj
YXNlIHRvIHVzZSB0aGUgc2FtZSB0ZXN0CisvLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwgdGVz
dHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSB0byB1c2UgdGhlIHNhbWUgdGVzdAogLy8gZml4dHVy
ZSBjbGFzcy4gIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRo
ZQotLy8gc2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50
IHRlc3QgY2FzZS4gIElmCisvLyBzYW1lIGZpeHR1cmUgY2xhc3MgYXMgdGhlIGZpcnN0IHRlc3Qg
aW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4gIElmCiAvLyB5ZXMsIGl0IHJldHVybnMgdHJ1ZTsg
b3RoZXJ3aXNlIGl0IGdlbmVyYXRlcyBhIEdvb2dsZSBUZXN0IGZhaWx1cmUgYW5kCiAvLyByZXR1
cm5zIGZhbHNlLgogYm9vbCBUZXN0OjpIYXNTYW1lRml4dHVyZUNsYXNzKCkgewogICBpbnRlcm5h
bDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgp
OwotICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gaW1wbC0+Y3VycmVudF90ZXN0
X2Nhc2UoKTsKKyAgY29uc3QgVGVzdFN1aXRlKiBjb25zdCB0ZXN0X3N1aXRlID0gaW1wbC0+Y3Vy
cmVudF90ZXN0X3N1aXRlKCk7CiAKLSAgLy8gSW5mbyBhYm91dCB0aGUgZmlyc3QgdGVzdCBpbiB0
aGUgY3VycmVudCB0ZXN0IGNhc2UuCi0gIGNvbnN0IFRlc3RJbmZvKiBjb25zdCBmaXJzdF90ZXN0
X2luZm8gPSB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KClbMF07CisgIC8vIEluZm8gYWJvdXQg
dGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4KKyAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IGZpcnN0X3Rlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KClb
MF07CiAgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZmlyc3RfZml4dHVyZV9pZCA9IGZpcnN0X3Rl
c3RfaW5mby0+Zml4dHVyZV9jbGFzc19pZF87CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGZpcnN0X3Rl
c3RfbmFtZSA9IGZpcnN0X3Rlc3RfaW5mby0+bmFtZSgpOwogCkBAIC0yMzI4LDcgKzI0OTIsNyBA
QCBib29sIFRlc3Q6Okhhc1NhbWVGaXh0dXJlQ2xhc3MoKSB7CiAgICAgY29uc3QgYm9vbCB0aGlz
X2lzX1RFU1QgPSB0aGlzX2ZpeHR1cmVfaWQgPT0gaW50ZXJuYWw6OkdldFRlc3RUeXBlSWQoKTsK
IAogICAgIGlmIChmaXJzdF9pc19URVNUIHx8IHRoaXNfaXNfVEVTVCkgewotICAgICAgLy8gQm90
aCBURVNUIGFuZCBURVNUX0YgYXBwZWFyIGluIHNhbWUgdGVzdCBjYXNlLCB3aGljaCBpcyBpbmNv
cnJlY3QuCisgICAgICAvLyBCb3RoIFRFU1QgYW5kIFRFU1RfRiBhcHBlYXIgaW4gc2FtZSB0ZXN0
IHN1aXRlLCB3aGljaCBpcyBpbmNvcnJlY3QuCiAgICAgICAvLyBUZWxsIHRoZSB1c2VyIGhvdyB0
byBmaXggdGhpcy4KIAogICAgICAgLy8gR2V0cyB0aGUgbmFtZSBvZiB0aGUgVEVTVCBhbmQgdGhl
IG5hbWUgb2YgdGhlIFRFU1RfRi4gIE5vdGUKQEAgLTIzNDAsOSArMjUwNCw5IEBAIGJvb2wgVGVz
dDo6SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgICAgICAgICBmaXJzdF9pc19URVNUID8gdGhp
c190ZXN0X25hbWUgOiBmaXJzdF90ZXN0X25hbWU7CiAKICAgICAgIEFERF9GQUlMVVJFKCkKLSAg
ICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUg
c2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGluZyBURVNU
X0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGlzXG4iCi0gICAgICAgICAgPDwgImls
bGVnYWwuICBJbiB0ZXN0IGNhc2UgIiA8PCB0aGlzX3Rlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUo
KQorICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBtdXN0IHVz
ZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKKyAgICAgICAgICA8PCAiY2xhc3MsIHNvIG1peGlu
ZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpc1xuIgorICAgICAgICAg
IDw8ICJpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSAiIDw8IHRoaXNfdGVzdF9pbmZvLT50ZXN0X3N1
aXRlX25hbWUoKQogICAgICAgICAgIDw8ICIsXG4iCiAgICAgICAgICAgPDwgInRlc3QgIiA8PCBU
RVNUX0ZfbmFtZSA8PCAiIGlzIGRlZmluZWQgdXNpbmcgVEVTVF9GIGJ1dFxuIgogICAgICAgICAg
IDw8ICJ0ZXN0ICIgPDwgVEVTVF9uYW1lIDw8ICIgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91
IHByb2JhYmx5XG4iCkBAIC0yMzUyLDE1ICsyNTE2LDE1IEBAIGJvb2wgVGVzdDo6SGFzU2FtZUZp
eHR1cmVDbGFzcygpIHsKICAgICAgIC8vIFR3byBmaXh0dXJlIGNsYXNzZXMgd2l0aCB0aGUgc2Ft
ZSBuYW1lIGFwcGVhciBpbiB0d28gZGlmZmVyZW50CiAgICAgICAvLyBuYW1lc3BhY2VzLCB3aGlj
aCBpcyBub3QgYWxsb3dlZC4gVGVsbCB0aGUgdXNlciBob3cgdG8gZml4IHRoaXMuCiAgICAgICBB
RERfRkFJTFVSRSgpCi0gICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNh
c2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICAgICAgPDwgImNsYXNz
LiAgSG93ZXZlciwgaW4gdGVzdCBjYXNlICIKLSAgICAgICAgICA8PCB0aGlzX3Rlc3RfaW5mby0+
dGVzdF9jYXNlX25hbWUoKSA8PCAiLFxuIgotICAgICAgICAgIDw8ICJ5b3UgZGVmaW5lZCB0ZXN0
ICIgPDwgZmlyc3RfdGVzdF9uYW1lCi0gICAgICAgICAgPDwgIiBhbmQgdGVzdCAiIDw8IHRoaXNf
dGVzdF9uYW1lIDw8ICJcbiIKKyAgICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRl
c3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCisgICAgICAgICAgPDwg
ImNsYXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiCisgICAgICAgICAgPDwgdGhpc190ZXN0
X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpIDw8ICIsXG4iCisgICAgICAgICAgPDwgInlvdSBkZWZp
bmVkIHRlc3QgIiA8PCBmaXJzdF90ZXN0X25hbWUgPDwgIiBhbmQgdGVzdCAiCisgICAgICAgICAg
PDwgdGhpc190ZXN0X25hbWUgPDwgIlxuIgogICAgICAgICAgIDw8ICJ1c2luZyB0d28gZGlmZmVy
ZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmXG4iCiAgICAgICAg
ICAgPDwgInRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0
cmFuc2xhdGlvblxuIgogICAgICAgICAgIDw8ICJ1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1l
LiAgWW91IHNob3VsZCBwcm9iYWJseSByZW5hbWUgb25lXG4iCi0gICAgICAgICAgPDwgIm9mIHRo
ZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4iOwor
ICAgICAgICAgIDw8ICJvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVy
ZW50IHRlc3Qgc3VpdGVzLiI7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKICAgfQpAQCAtMjM5
Myw3ICsyNTU3LDcgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIHN0YXRpYyBzdGQ6OnN0cmluZyBG
b3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbG9jYXRp
b24pIHsKICAgTWVzc2FnZSBtZXNzYWdlOwotICBpZiAoZGVzY3JpcHRpb24gIT0gTlVMTCkgewor
ICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbHB0cikgewogICAgIG1lc3NhZ2UgPDwgIkMrKyBleGNl
cHRpb24gd2l0aCBkZXNjcmlwdGlvbiBcIiIgPDwgZGVzY3JpcHRpb24gPDwgIlwiIjsKICAgfSBl
bHNlIHsKICAgICBtZXNzYWdlIDw8ICJVbmtub3duIEMrKyBleGNlcHRpb24iOwpAQCAtMjQ5MSw3
ICsyNjU1LDcgQEAgUmVzdWx0IEhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAog
ICAgIH0gY2F0Y2ggKC4uLikgeyAgLy8gTk9MSU5UCiAgICAgICBpbnRlcm5hbDo6UmVwb3J0RmFp
bHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgICAgIFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxG
YWlsdXJlLAotICAgICAgICAgIEZvcm1hdEN4eEV4Y2VwdGlvbk1lc3NhZ2UoTlVMTCwgbG9jYXRp
b24pKTsKKyAgICAgICAgICBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKG51bGxwdHIsIGxvY2F0
aW9uKSk7CiAgICAgfQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXN1bHQ+KDApOwogI2Vsc2UK
QEAgLTI1MTEsOCArMjY3NSw5IEBAIHZvaWQgVGVzdDo6UnVuKCkgewogICBpbnRlcm5hbDo6VW5p
dFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBp
bXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogICBpbnRl
cm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQodGhpcywgJlRlc3Q6OlNl
dFVwLCAiU2V0VXAoKSIpOwotICAvLyBXZSB3aWxsIHJ1biB0aGUgdGVzdCBvbmx5IGlmIFNldFVw
KCkgd2FzIHN1Y2Nlc3NmdWwuCi0gIGlmICghSGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgLy8gV2Ug
d2lsbCBydW4gdGhlIHRlc3Qgb25seSBpZiBTZXRVcCgpIHdhcyBzdWNjZXNzZnVsIGFuZCBkaWRu
J3QgY2FsbAorICAvLyBHVEVTVF9TS0lQKCkuCisgIGlmICghSGFzRmF0YWxGYWlsdXJlKCkgJiYg
IUlzU2tpcHBlZCgpKSB7CiAgICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25M
ZWF2aW5nR1Rlc3QoKTsKICAgICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZT
dXBwb3J0ZWQoCiAgICAgICAgIHRoaXMsICZUZXN0OjpUZXN0Qm9keSwgInRoZSB0ZXN0IGJvZHki
KTsKQEAgLTI1MjYsMzcgKzI2OTEsNDIgQEAgdm9pZCBUZXN0OjpSdW4oKSB7CiAgICAgICB0aGlz
LCAmVGVzdDo6VGVhckRvd24sICJUZWFyRG93bigpIik7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgorLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KIGJv
b2wgVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRU
ZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPkhhc0ZhdGFsRmFpbHVyZSgpOwogfQog
Ci0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZh
aWx1cmUuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBo
YXMgYSBub24tZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVzdDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkg
ewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVz
dWx0KCktPgogICAgICAgSGFzTm9uZmF0YWxGYWlsdXJlKCk7CiB9CiAKKy8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IHdhcyBza2lwcGVkLgorYm9vbCBUZXN0
OjpJc1NraXBwZWQoKSB7CisgIHJldHVybiBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCktPmN1
cnJlbnRfdGVzdF9yZXN1bHQoKS0+U2tpcHBlZCgpOworfQorCiAvLyBjbGFzcyBUZXN0SW5mbwog
CiAvLyBDb25zdHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0LiBJdCBhc3N1bWVzIG93bmVyc2hpcCBv
ZiB0aGUgdGVzdCBmYWN0b3J5CiAvLyBvYmplY3QuCi1UZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qg
c3RkOjpzdHJpbmcmIGFfdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcmIGFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3R5
cGVfcGFyYW0sCitUZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIGFfdGVzdF9z
dWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBhX25hbWUs
IGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiBhX3ZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpDb2RlTG9jYXRp
b24gYV9jb2RlX2xvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpUeXBlSWQg
Zml4dHVyZV9jbGFzc19pZCwKICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VGVzdEZhY3Rv
cnlCYXNlKiBmYWN0b3J5KQotICAgIDogdGVzdF9jYXNlX25hbWVfKGFfdGVzdF9jYXNlX25hbWUp
LAorICAgIDogdGVzdF9zdWl0ZV9uYW1lXyhhX3Rlc3Rfc3VpdGVfbmFtZSksCiAgICAgICBuYW1l
XyhhX25hbWUpLAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3Ry
aW5nKGFfdHlwZV9wYXJhbSkgOiBOVUxMKSwKLSAgICAgIHZhbHVlX3BhcmFtXyhhX3ZhbHVlX3Bh
cmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdmFsdWVfcGFyYW0pIDogTlVMTCksCisgICAgICB0eXBl
X3BhcmFtXyhhX3R5cGVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmcoYV90eXBlX3BhcmFtKSA6IG51
bGxwdHIpLAorICAgICAgdmFsdWVfcGFyYW1fKGFfdmFsdWVfcGFyYW0gPyBuZXcgc3RkOjpzdHJp
bmcoYV92YWx1ZV9wYXJhbSkgOiBudWxscHRyKSwKICAgICAgIGxvY2F0aW9uXyhhX2NvZGVfbG9j
YXRpb24pLAogICAgICAgZml4dHVyZV9jbGFzc19pZF8oZml4dHVyZV9jbGFzc19pZCksCiAgICAg
ICBzaG91bGRfcnVuXyhmYWxzZSksCiAgICAgICBpc19kaXNhYmxlZF8oZmFsc2UpLAogICAgICAg
bWF0Y2hlc19maWx0ZXJfKGZhbHNlKSwKKyAgICAgIGlzX2luX2Fub3RoZXJfc2hhcmRfKGZhbHNl
KSwKICAgICAgIGZhY3RvcnlfKGZhY3RvcnkpLAogICAgICAgcmVzdWx0XygpIHt9CiAKQEAgLTI1
NzAsNyArMjc0MCw3IEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLwogLy8gQXJndW1lbnRzOgog
Ly8KLS8vICAgdGVzdF9jYXNlX25hbWU6ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRl
c3Rfc3VpdGVfbmFtZTogIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAg
ICAgICAgbmFtZSBvZiB0aGUgdGVzdAogLy8gICB0eXBlX3BhcmFtOiAgICAgICB0aGUgbmFtZSBv
ZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCiAvLyAgICAgICAgICAgICAg
ICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4K
QEAgLTI1NzgsNDAgKzI3NDgsMzUgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIC8vICAgICAgICAg
ICAgICAgICAgICAgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQg
dGVzdC4KIC8vICAgY29kZV9sb2NhdGlvbjogICAgY29kZSBsb2NhdGlvbiB3aGVyZSB0aGUgdGVz
dCBpcyBkZWZpbmVkCiAvLyAgIGZpeHR1cmVfY2xhc3NfaWQ6IElEIG9mIHRoZSB0ZXN0IGZpeHR1
cmUgY2xhc3MKLS8vICAgc2V0X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24g
dGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiAgICAgcG9pbnRl
ciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKKy8vICAgc2V0
X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0
ZXN0IHN1aXRlCisvLyAgIHRlYXJfZG93bl90YzogICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQogLy8gICBmYWN0b3J5OiAgICAgICAgICBw
b2ludGVyIHRvIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHRlc3Qgb2JqZWN0LgogLy8gICAg
ICAgICAgICAgICAgICAgICBUaGUgbmV3bHkgY3JlYXRlZCBUZXN0SW5mbyBpbnN0YW5jZSB3aWxs
IGFzc3VtZQogLy8gICAgICAgICAgICAgICAgICAgICBvd25lcnNoaXAgb2YgdGhlIGZhY3Rvcnkg
b2JqZWN0LgogVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAotICAgIGNvbnN0IGNo
YXIqIHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgY29uc3QgY2hh
ciogdHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKLSAgICBT
ZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVh
cl9kb3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSkgeworICAgIGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdHlwZV9w
YXJhbSwKKyAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9j
YXRpb24sCisgICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsIFNldFVwVGVzdFN1aXRlRnVuYyBz
ZXRfdXBfdGMsCisgICAgVGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywgVGVzdEZh
Y3RvcnlCYXNlKiBmYWN0b3J5KSB7CiAgIFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAg
ICAgbmV3IFRlc3RJbmZvKHRlc3RfY2FzZV9uYW1lLCBuYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9w
YXJhbSwKKyAgICAgIG5ldyBUZXN0SW5mbyh0ZXN0X3N1aXRlX25hbWUsIG5hbWUsIHR5cGVfcGFy
YW0sIHZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvZGVfbG9jYXRpb24sIGZpeHR1
cmVfY2xhc3NfaWQsIGZhY3RvcnkpOwogICBHZXRVbml0VGVzdEltcGwoKS0+QWRkVGVzdEluZm8o
c2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMsIHRlc3RfaW5mbyk7CiAgIHJldHVybiB0ZXN0X2luZm87
CiB9CiAKLXZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNlVHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nh
c2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29k
ZV9sb2NhdGlvbikgewordm9pZCBSZXBvcnRJbnZhbGlkVGVzdFN1aXRlVHlwZShjb25zdCBjaGFy
KiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVM
b2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CiAgIE1lc3NhZ2UgZXJyb3JzOwogICBlcnJvcnMKLSAg
ICAgIDw8ICJBdHRlbXB0ZWQgcmVkZWZpbml0aW9uIG9mIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2Fz
ZV9uYW1lIDw8ICIuXG4iCi0gICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgIDw8ICJjbGFzcy4gIEhv
d2V2ZXIsIGluIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2FzZV9uYW1lIDw8ICIsIHlvdSB0cmllZFxu
IgorICAgICAgPDwgIkF0dGVtcHRlZCByZWRlZmluaXRpb24gb2YgdGVzdCBzdWl0ZSAiIDw8IHRl
c3Rfc3VpdGVfbmFtZSA8PCAiLlxuIgorICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0
ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgorICAgICAgPDwgImNs
YXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiIDw8IHRlc3Rfc3VpdGVfbmFtZSA8PCAiLCB5
b3UgdHJpZWRcbiIKICAgICAgIDw8ICJ0byBkZWZpbmUgYSB0ZXN0IHVzaW5nIGEgZml4dHVyZSBj
bGFzcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lXG4iCiAgICAgICA8PCAidXNlZCBlYXJsaWVyLiBU
aGlzIGNhbiBoYXBwZW4gaWYgdGhlIHR3byBmaXh0dXJlIGNsYXNzZXMgYXJlXG4iCiAgICAgICA8
PCAiZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiBZb3Ug
c2hvdWxkXG4iCiAgICAgICA8PCAicHJvYmFibHkgcmVuYW1lIG9uZSBvZiB0aGUgY2xhc3NlcyB0
byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50XG4iCi0gICAgICA8PCAidGVzdCBjYXNlcy4i
OworICAgICAgPDwgInRlc3Qgc3VpdGVzLiI7CiAKICAgR1RFU1RfTE9HXyhFUlJPUikgPDwgRm9y
bWF0RmlsZUxvY2F0aW9uKGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbi5saW5lKQpAQCAtMjYy
NCw3ICsyNzg5LDcgQEAgbmFtZXNwYWNlIHsKIC8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRo
ZSB0ZXN0IG5hbWUgb2YgYSBUZXN0SW5mbyBhZ2FpbnN0IGEga25vd24KIC8vIHZhbHVlLgogLy8K
LS8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRlc3RDYXNlIGNsYXNz
IG9ubHkuICBXZSBwdXQKKy8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhl
IFRlc3RTdWl0ZSBjbGFzcyBvbmx5LiAgV2UgcHV0CiAvLyBpdCBpbiB0aGUgYW5vbnltb3VzIG5h
bWVzcGFjZSB0byBwcmV2ZW50IHBvbGx1dGluZyB0aGUgb3V0ZXIKIC8vIG5hbWVzcGFjZS4KIC8v
CkBAIC0yNjM3LDcgKzI4MDIsNyBAQCBjbGFzcyBUZXN0TmFtZUlzIHsKICAgZXhwbGljaXQgVGVz
dE5hbWVJcyhjb25zdCBjaGFyKiBuYW1lKQogICAgICAgOiBuYW1lXyhuYW1lKSB7fQogCi0gIC8v
IFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0ZXN0X2luZm8gbWF0Y2hlcyBuYW1l
Xy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVz
dF9pbmZvIG1hdGNoZXMgbmFtZV8uCiAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0SW5mbyAq
IHRlc3RfaW5mbykgY29uc3QgewogICAgIHJldHVybiB0ZXN0X2luZm8gJiYgdGVzdF9pbmZvLT5u
YW1lKCkgPT0gbmFtZV87CiAgIH0KQEAgLTI2NTEsMTEgKzI4MTYsMTIgQEAgY2xhc3MgVGVzdE5h
bWVJcyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBUaGlzIG1ldGhvZCBleHBhbmRzIGFs
bCBwYXJhbWV0ZXJpemVkIHRlc3RzIHJlZ2lzdGVyZWQgd2l0aCBtYWNyb3MgVEVTVF9QCi0vLyBh
bmQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaW50byByZWd1bGFyIHRlc3RzIGFuZCByZWdpc3Rl
cnMgdGhvc2UuCisvLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIGludG8gcmVndWxhciB0
ZXN0cyBhbmQgcmVnaXN0ZXJzIHRob3NlLgogLy8gVGhpcyB3aWxsIGJlIGRvbmUganVzdCBvbmNl
IGR1cmluZyB0aGUgcHJvZ3JhbSBydW50aW1lLgogdm9pZCBVbml0VGVzdEltcGw6OlJlZ2lzdGVy
UGFyYW1ldGVyaXplZFRlc3RzKCkgewogICBpZiAoIXBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0
ZXJlZF8pIHsKICAgICBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfLlJlZ2lzdGVyVGVzdHMo
KTsKKyAgICB0eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV8uQ2hlY2tGb3JJbnN0YW50
aWF0aW9ucygpOwogICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8gPSB0cnVlOwog
ICB9CiB9CkBAIC0yNjc2LDcgKzI4NDIsOCBAQCB2b2lkIFRlc3RJbmZvOjpSdW4oKSB7CiAgIC8v
IE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXJzIHRoYXQgYSB0ZXN0IGlzIGFi
b3V0IHRvIHN0YXJ0LgogICByZXBlYXRlci0+T25UZXN0U3RhcnQoKnRoaXMpOwogCi0gIGNvbnN0
IFRpbWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgcmVz
dWx0Xy5zZXRfc3RhcnRfdGltZXN0YW1wKGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKSk7Cisg
IGludGVybmFsOjpUaW1lciB0aW1lcjsKIAogICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIo
KS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogCkBAIC0yNjg1LDE1NCArMjg1MiwyMzMgQEAgdm9pZCBU
ZXN0SW5mbzo6UnVuKCkgewogICAgICAgZmFjdG9yeV8sICZpbnRlcm5hbDo6VGVzdEZhY3RvcnlC
YXNlOjpDcmVhdGVUZXN0LAogICAgICAgInRoZSB0ZXN0IGZpeHR1cmUncyBjb25zdHJ1Y3RvciIp
OwogCi0gIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0
ZSBhIGZhdGFsIGZhaWx1cmUuCisgIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9y
IGRpZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUgb3IgaW52b2tlCisgIC8vIEdURVNUX1NL
SVAoKS4KICAgLy8gTm90ZSB0aGF0IHRoZSBvYmplY3Qgd2lsbCBub3QgYmUgbnVsbAotICBpZiAo
IVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJl
KCkgJiYgIVRlc3Q6OklzU2tpcHBlZCgpKSB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IHRocm93IGFz
IGFsbCB1c2VyIGNvZGUgdGhhdCBjYW4gdGhyb3cgYXJlIHdyYXBwZWQgaW50bwogICAgIC8vIGV4
Y2VwdGlvbiBoYW5kbGluZyBjb2RlLgogICAgIHRlc3QtPlJ1bigpOwogICB9CiAKKyAgaWYgKHRl
c3QgIT0gbnVsbHB0cikgewogICAgIC8vIERlbGV0ZXMgdGhlIHRlc3Qgb2JqZWN0LgogICAgIGlt
cGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgICAgaW50
ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAogICAgICAgICB0ZXN0
LCAmVGVzdDo6RGVsZXRlU2VsZl8sICJ0aGUgdGVzdCBmaXh0dXJlJ3MgZGVzdHJ1Y3RvciIpOwor
ICB9CiAKLSAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKGludGVybmFsOjpHZXRUaW1lSW5NaWxs
aXMoKSAtIHN0YXJ0KTsKKyAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1lKHRpbWVyLkVsYXBzZWQo
KSk7CiAKICAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IGEg
dGVzdCBoYXMganVzdCBmaW5pc2hlZC4KICAgcmVwZWF0ZXItPk9uVGVzdEVuZCgqdGhpcyk7CiAK
ICAgLy8gVGVsbHMgVW5pdFRlc3QgdG8gc3RvcCBhc3NvY2lhdGluZyBhc3NlcnRpb24gcmVzdWx0
cyB0byB0aGlzCiAgIC8vIHRlc3QuCi0gIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhOVUxM
KTsKKyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9pbmZvKG51bGxwdHIpOwogfQogCi0vLyBjbGFz
cyBUZXN0Q2FzZQorLy8gU2tpcCBhbmQgcmVjb3JkcyBhIHNraXBwZWQgdGVzdCByZXN1bHQgZm9y
IHRoaXMgb2JqZWN0Lgordm9pZCBUZXN0SW5mbzo6U2tpcCgpIHsKKyAgaWYgKCFzaG91bGRfcnVu
XykgcmV0dXJuOwogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0
aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29u
c3QgeworICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6Okdl
dFVuaXRUZXN0SW1wbCgpOworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8odGhpcyk7CisK
KyAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
Pmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBl
dmVudCBsaXN0ZW5lcnMgdGhhdCBhIHRlc3QgaXMgYWJvdXQgdG8gc3RhcnQuCisgIHJlcGVhdGVy
LT5PblRlc3RTdGFydCgqdGhpcyk7CisKKyAgY29uc3QgVGVzdFBhcnRSZXN1bHQgdGVzdF9wYXJ0
X3Jlc3VsdCA9CisgICAgICBUZXN0UGFydFJlc3VsdChUZXN0UGFydFJlc3VsdDo6a1NraXAsIHRo
aXMtPmZpbGUoKSwgdGhpcy0+bGluZSgpLCAiIik7CisgIGltcGwtPkdldFRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKCktPlJlcG9ydFRlc3RQYXJ0UmVzdWx0KAorICAgICAg
dGVzdF9wYXJ0X3Jlc3VsdCk7CisKKyAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBs
aXN0ZW5lciB0aGF0IGEgdGVzdCBoYXMganVzdCBmaW5pc2hlZC4KKyAgcmVwZWF0ZXItPk9uVGVz
dEVuZCgqdGhpcyk7CisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhudWxscHRyKTsKK30K
KworLy8gY2xhc3MgVGVzdFN1aXRlCisKKy8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVs
IHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6OnN1Y2Nlc3NmdWxfdGVz
dF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBUZXN0
UGFzc2VkKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlz
IHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdCB7Cisv
LyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUu
CitpbnQgVGVzdFN1aXRlOjpza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBD
b3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFNraXBwZWQpOworfQorCisvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6
OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9f
bGlzdF8sIFRlc3RGYWlsZWQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQg
dGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RD
YXNlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1
aXRlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CiAgIHJldHVybiBD
b3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9ydGFibGVEaXNhYmxlZCk7CiB9CiAKLS8v
IEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWlu
dCBUZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKKy8vIEdldHMgdGhlIG51
bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRl
OjpkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2lu
Zm9fbGlzdF8sIFRlc3REaXNhYmxlZCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0
cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNlOjpyZXBvcnRh
YmxlX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3Rf
Y291bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJl
cG9ydGFibGUpOwogfQogCi0vLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZSB0aGF0IHNob3VsZCBydW4uCi1pbnQgVGVzdENhc2U6OnRlc3RfdG9fcnVuX2NvdW50KCkg
Y29uc3QgeworLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlIHRo
YXQgc2hvdWxkIHJ1bi4KK2ludCBUZXN0U3VpdGU6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3Qg
ewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFNob3VsZFJ1blRlc3QpOwogfQog
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzLgotaW50IFRlc3RDYXNlOjp0b3RhbF90
ZXN0X2NvdW50KCkgY29uc3QgeworaW50IFRlc3RTdWl0ZTo6dG90YWxfdGVzdF9jb3VudCgpIGNv
bnN0IHsKICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4odGVzdF9pbmZvX2xpc3RfLnNpemUoKSk7
CiB9CiAKLS8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgorLy8gQ3Jl
YXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogLy8KIC8vIEFyZ3VtZW50czoK
IC8vCi0vLyAgIG5hbWU6ICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCi0vLyAgIGFfdHlw
ZV9wYXJhbTogdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBO
VUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyAgIHNldF91cF90YzogICAgcG9pbnRlciB0byB0
aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAgdGVhcl9kb3duX3Rj
OiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQot
VGVzdENhc2U6OlRlc3RDYXNlKGNvbnN0IGNoYXIqIGFfbmFtZSwgY29uc3QgY2hhciogYV90eXBl
X3BhcmFtLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91
cF90YywKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFy
X2Rvd25fdGMpCisvLyAgIGFfbmFtZTogICAgICAgbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZQorLy8g
ICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlJ3MgdHlwZSBwYXJhbWV0
ZXIsIG9yIE5VTEwgaWYKKy8vICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9y
IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUuCisvLyAgIHNldF91cF90YzogICAgcG9p
bnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRl
YXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0
ZXN0IHN1aXRlCitUZXN0U3VpdGU6OlRlc3RTdWl0ZShjb25zdCBjaGFyKiBhX25hbWUsIGNvbnN0
IGNoYXIqIGFfdHlwZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpTZXRV
cFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6
OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpCiAgICAgOiBuYW1lXyhhX25hbWUp
LAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlw
ZV9wYXJhbSkgOiBOVUxMKSwKKyAgICAgIHR5cGVfcGFyYW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBz
dGQ6OnN0cmluZyhhX3R5cGVfcGFyYW0pIDogbnVsbHB0ciksCiAgICAgICBzZXRfdXBfdGNfKHNl
dF91cF90YyksCiAgICAgICB0ZWFyX2Rvd25fdGNfKHRlYXJfZG93bl90YyksCiAgICAgICBzaG91
bGRfcnVuXyhmYWxzZSksCi0gICAgICBlbGFwc2VkX3RpbWVfKDApIHsKLX0KKyAgICAgIHN0YXJ0
X3RpbWVzdGFtcF8oMCksCisgICAgICBlbGFwc2VkX3RpbWVfKDApIHt9CiAKLS8vIERlc3RydWN0
b3Igb2YgVGVzdENhc2UuCi1UZXN0Q2FzZTo6flRlc3RDYXNlKCkgeworLy8gRGVzdHJ1Y3RvciBv
ZiBUZXN0U3VpdGUuCitUZXN0U3VpdGU6On5UZXN0U3VpdGUoKSB7CiAgIC8vIERlbGV0ZXMgZXZl
cnkgVGVzdCBpbiB0aGUgY29sbGVjdGlvbi4KICAgRm9yRWFjaCh0ZXN0X2luZm9fbGlzdF8sIGlu
dGVybmFsOjpEZWxldGU8VGVzdEluZm8+KTsKIH0KIAogLy8gUmV0dXJucyB0aGUgaS10aCB0ZXN0
IGFtb25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwogLy8gdG90YWxfdGVz
dF9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgot
Y29uc3QgVGVzdEluZm8qIFRlc3RDYXNlOjpHZXRUZXN0SW5mbyhpbnQgaSkgY29uc3QgeworY29u
c3QgVGVzdEluZm8qIFRlc3RTdWl0ZTo6R2V0VGVzdEluZm8oaW50IGkpIGNvbnN0IHsKICAgY29u
c3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0
dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4g
aW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+
KGluZGV4KV07CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGggdGVzdCBhbW9uZyBhbGwgdGhlIHRl
c3RzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEuIElm
IGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KLVRlc3RJbmZvKiBUZXN0Q2Fz
ZTo6R2V0TXV0YWJsZVRlc3RJbmZvKGludCBpKSB7CitUZXN0SW5mbyogVGVzdFN1aXRlOjpHZXRN
dXRhYmxlVGVzdEluZm8oaW50IGkpIHsKICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9y
KHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0
X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3Rf
aW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV07CiB9CiAKLS8vIEFkZHMgYSB0
ZXN0IHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBkZWxldGUgdGhlIHRlc3QgdXBvbgotLy8gZGVz
dHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNlIG9iamVjdC4KLXZvaWQgVGVzdENhc2U6OkFkZFRlc3RJ
bmZvKFRlc3RJbmZvICogdGVzdF9pbmZvKSB7CisvLyBBZGRzIGEgdGVzdCB0byB0aGlzIHRlc3Qg
c3VpdGUuICBXaWxsIGRlbGV0ZSB0aGUgdGVzdCB1cG9uCisvLyBkZXN0cnVjdGlvbiBvZiB0aGUg
VGVzdFN1aXRlIG9iamVjdC4KK3ZvaWQgVGVzdFN1aXRlOjpBZGRUZXN0SW5mbyhUZXN0SW5mbyog
dGVzdF9pbmZvKSB7CiAgIHRlc3RfaW5mb19saXN0Xy5wdXNoX2JhY2sodGVzdF9pbmZvKTsKICAg
dGVzdF9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2luZGljZXNfLnNp
emUoKSkpOwogfQogCi0vLyBSdW5zIGV2ZXJ5IHRlc3QgaW4gdGhpcyBUZXN0Q2FzZS4KLXZvaWQg
VGVzdENhc2U6OlJ1bigpIHsKKy8vIFJ1bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4K
K3ZvaWQgVGVzdFN1aXRlOjpSdW4oKSB7CiAgIGlmICghc2hvdWxkX3J1bl8pIHJldHVybjsKIAog
ICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRU
ZXN0SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2Nhc2UodGhpcyk7CisgIGltcGwt
PnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUodGhpcyk7CiAKICAgVGVzdEV2ZW50TGlzdGVuZXIqIHJl
cGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7
CiAKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9u
VGVzdFN1aXRlU3RhcnQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQg
c3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XwogICByZXBlYXRlci0+T25UZXN0Q2FzZVN0YXJ0KCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dl
dHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgIGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25z
SW5NZXRob2RJZlN1cHBvcnRlZCgKLSAgICAgIHRoaXMsICZUZXN0Q2FzZTo6UnVuU2V0VXBUZXN0
Q2FzZSwgIlNldFVwVGVzdENhc2UoKSIpOworICAgICAgdGhpcywgJlRlc3RTdWl0ZTo6UnVuU2V0
VXBUZXN0U3VpdGUsICJTZXRVcFRlc3RTdWl0ZSgpIik7CiAKLSAgY29uc3QgaW50ZXJuYWw6OlRp
bWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgc3RhcnRf
dGltZXN0YW1wXyA9IGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKTsKKyAgaW50ZXJuYWw6OlRp
bWVyIHRpbWVyOwogICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX3Rlc3RfY291bnQoKTsgaSsr
KSB7CiAgICAgR2V0TXV0YWJsZVRlc3RJbmZvKGkpLT5SdW4oKTsKKyAgICBpZiAoR1RFU1RfRkxB
RyhmYWlsX2Zhc3QpICYmIEdldE11dGFibGVUZXN0SW5mbyhpKS0+cmVzdWx0KCktPkZhaWxlZCgp
KSB7CisgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCB0b3RhbF90ZXN0X2NvdW50KCk7IGor
KykgeworICAgICAgICBHZXRNdXRhYmxlVGVzdEluZm8oaiktPlNraXAoKTsKKyAgICAgIH0KKyAg
ICAgIGJyZWFrOworICAgIH0KICAgfQotICBlbGFwc2VkX3RpbWVfID0gaW50ZXJuYWw6OkdldFRp
bWVJbk1pbGxpcygpIC0gc3RhcnQ7CisgIGVsYXBzZWRfdGltZV8gPSB0aW1lci5FbGFwc2VkKCk7
CiAKICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsK
ICAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKAotICAgICAg
dGhpcywgJlRlc3RDYXNlOjpSdW5UZWFyRG93blRlc3RDYXNlLCAiVGVhckRvd25UZXN0Q2FzZSgp
Iik7CisgICAgICB0aGlzLCAmVGVzdFN1aXRlOjpSdW5UZWFyRG93blRlc3RTdWl0ZSwgIlRlYXJE
b3duVGVzdFN1aXRlKCkiKTsKIAorICAvLyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQ
SQorICByZXBlYXRlci0+T25UZXN0U3VpdGVFbmQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMg
ZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXwogICByZXBlYXRlci0+T25UZXN0Q2FzZUVuZCgqdGhpcyk7Ci0gIGlt
cGwtPnNldF9jdXJyZW50X3Rlc3RfY2FzZShOVUxMKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9W
RV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUo
bnVsbHB0cik7CiB9CiAKLS8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhp
cyB0ZXN0IGNhc2UuCi12b2lkIFRlc3RDYXNlOjpDbGVhclJlc3VsdCgpIHsKKy8vIFNraXBzIGFs
bCB0ZXN0cyB1bmRlciB0aGlzIFRlc3RTdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpTa2lwKCkgewor
ICBpZiAoIXNob3VsZF9ydW5fKSByZXR1cm47CisKKyAgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCog
Y29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsKKyAgaW1wbC0+c2V0X2N1
cnJlbnRfdGVzdF9zdWl0ZSh0aGlzKTsKKworICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIg
PSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVuZXJzKCkucmVwZWF0ZXIoKTsKKworICAv
LyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQSQorICByZXBlYXRlci0+T25UZXN0U3Vp
dGVTdGFydCgqdGhpcyk7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBh
dmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHJl
cGVhdGVyLT5PblRlc3RDYXNlU3RhcnQoKnRoaXMpOworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF90ZXN0
X2NvdW50KCk7IGkrKykgeworICAgIEdldE11dGFibGVUZXN0SW5mbyhpKS0+U2tpcCgpOworICB9
CisKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9u
VGVzdFN1aXRlRW5kKCp0aGlzKTsKKyAgLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBz
dGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElf
CisgIHJlcGVhdGVyLT5PblRlc3RDYXNlRW5kKCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3Vp
dGUobnVsbHB0cik7Cit9CisKKy8vIENsZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4g
dGhpcyB0ZXN0IHN1aXRlLgordm9pZCBUZXN0U3VpdGU6OkNsZWFyUmVzdWx0KCkgewogICBhZF9o
b2NfdGVzdF9yZXN1bHRfLkNsZWFyKCk7CiAgIEZvckVhY2godGVzdF9pbmZvX2xpc3RfLCBUZXN0
SW5mbzo6Q2xlYXJUZXN0UmVzdWx0KTsKIH0KIAotLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRo
aXMgdGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6U2h1ZmZsZVRlc3RzKGludGVybmFsOjpSYW5k
b20qIHJhbmRvbSkgeworLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4K
K3ZvaWQgVGVzdFN1aXRlOjpTaHVmZmxlVGVzdHMoaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tKSB7
CiAgIFNodWZmbGUocmFuZG9tLCAmdGVzdF9pbmRpY2VzXyk7CiB9CiAKIC8vIFJlc3RvcmVzIHRo
ZSB0ZXN0IG9yZGVyIHRvIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KLXZvaWQgVGVzdENhc2U6
OlVuc2h1ZmZsZVRlc3RzKCkgewordm9pZCBUZXN0U3VpdGU6OlVuc2h1ZmZsZVRlc3RzKCkgewog
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfaW5kaWNlc18uc2l6ZSgpOyBpKyspIHsKICAg
ICB0ZXN0X2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKICAgfQpAQCAtMjg1NSw5
ICszMTAxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDb3VudChpbnQgdGVzdF9j
b3VudCkgewogICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2NvdW50LCAidGVzdCIs
ICJ0ZXN0cyIpOwogfQogCi0vLyBGb3JtYXRzIHRoZSBjb3VudCBvZiB0ZXN0IGNhc2VzLgotc3Rh
dGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3RfY2FzZV9jb3VudCkg
ewotICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X2Nhc2VfY291bnQsICJ0ZXN0IGNh
c2UiLCAidGVzdCBjYXNlcyIpOworLy8gRm9ybWF0cyB0aGUgY291bnQgb2YgdGVzdCBzdWl0ZXMu
CitzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0VGVzdFN1aXRlQ291bnQoaW50IHRlc3Rfc3VpdGVf
Y291bnQpIHsKKyAgcmV0dXJuIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZV9jb3VudCwg
InRlc3Qgc3VpdGUiLCAidGVzdCBzdWl0ZXMiKTsKIH0KIAogLy8gQ29udmVydHMgYSBUZXN0UGFy
dFJlc3VsdDo6VHlwZSBlbnVtIHRvIGh1bWFuLWZyaWVuZGx5IHN0cmluZwpAQCAtMjg2Niw2ICsz
MTEyLDggQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291bnQoaW50IHRlc3Rf
Y2FzZV9jb3VudCkgewogLy8gYmV0d2VlbiB0aGUgdHdvIHdoZW4gdmlld2luZyB0aGUgdGVzdCBy
ZXN1bHQuCiBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlwZVRvU3RyaW5nKFRl
c3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBU
ZXN0UGFydFJlc3VsdDo6a1NraXA6CisgICAgICByZXR1cm4gIlNraXBwZWRcbiI7CiAgICAgY2Fz
ZSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3M6CiAgICAgICByZXR1cm4gIlN1Y2Nlc3MiOwogCkBA
IC0yODgyLDYgKzMxMzAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlw
ZVRvU3RyaW5nKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKIH0KIAogbmFtZXNwYWNlIGlu
dGVybmFsIHsKK25hbWVzcGFjZSB7CitlbnVtIGNsYXNzIEdUZXN0Q29sb3IgeyBrRGVmYXVsdCwg
a1JlZCwga0dyZWVuLCBrWWVsbG93IH07Cit9ICAvLyBuYW1lc3BhY2UKIAogLy8gUHJpbnRzIGEg
VGVzdFBhcnRSZXN1bHQgdG8gYW4gc3RkOjpzdHJpbmcuCiBzdGF0aWMgc3RkOjpzdHJpbmcgUHJp
bnRUZXN0UGFydFJlc3VsdFRvU3RyaW5nKApAQCAtMjkxMywyMyArMzE2NCwxOCBAQCBzdGF0aWMg
dm9pZCBQcmludFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRf
cmVzdWx0KSB7CiB9CiAKIC8vIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgotCi1l
bnVtIEdUZXN0Q29sb3IgewotICBDT0xPUl9ERUZBVUxULAotICBDT0xPUl9SRUQsCi0gIENPTE9S
X0dSRUVOLAotICBDT0xPUl9ZRUxMT1cKLX07Ci0KICNpZiBHVEVTVF9PU19XSU5ET1dTICYmICFH
VEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiBcCiAgICAgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUg
JiYgIUdURVNUX09TX1dJTkRPV1NfUlQgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKIAogLy8g
UmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0dHJpYnV0ZSBmb3IgdGhlIGdpdmVuIGNvbG9yLgogc3Rh
dGljIFdPUkQgR2V0Q29sb3JBdHRyaWJ1dGUoR1Rlc3RDb2xvciBjb2xvcikgewogICBzd2l0Y2gg
KGNvbG9yKSB7Ci0gICAgY2FzZSBDT0xPUl9SRUQ6ICAgIHJldHVybiBGT1JFR1JPVU5EX1JFRDsK
LSAgICBjYXNlIENPTE9SX0dSRUVOOiAgcmV0dXJuIEZPUkVHUk9VTkRfR1JFRU47Ci0gICAgY2Fz
ZSBDT0xPUl9ZRUxMT1c6IHJldHVybiBGT1JFR1JPVU5EX1JFRCB8IEZPUkVHUk9VTkRfR1JFRU47
CisgICAgY2FzZSBHVGVzdENvbG9yOjprUmVkOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfUkVE
OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a0dyZWVuOgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRf
R1JFRU47CisgICAgY2FzZSBHVGVzdENvbG9yOjprWWVsbG93OgorICAgICAgcmV0dXJuIEZPUkVH
Uk9VTkRfUkVEIHwgRk9SRUdST1VORF9HUkVFTjsKICAgICBkZWZhdWx0OiAgICAgICAgICAgcmV0
dXJuIDA7CiAgIH0KIH0KQEAgLTI5NjcsMjAgKzMyMTMsMjQgQEAgc3RhdGljIFdPUkQgR2V0TmV3
Q29sb3IoR1Rlc3RDb2xvciBjb2xvciwgV09SRCBvbGRfY29sb3JfYXR0cnMpIHsKIAogI2Vsc2UK
IAotLy8gUmV0dXJucyB0aGUgQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gY29sb3IuICBD
T0xPUl9ERUZBVUxUIGlzCisvLyBSZXR1cm5zIHRoZSBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBn
aXZlbiBjb2xvci4gR1Rlc3RDb2xvcjo6a0RlZmF1bHQgaXMKIC8vIGFuIGludmFsaWQgaW5wdXQu
CiBzdGF0aWMgY29uc3QgY2hhciogR2V0QW5zaUNvbG9yQ29kZShHVGVzdENvbG9yIGNvbG9yKSB7
CiAgIHN3aXRjaCAoY29sb3IpIHsKLSAgICBjYXNlIENPTE9SX1JFRDogICAgIHJldHVybiAiMSI7
Ci0gICAgY2FzZSBDT0xPUl9HUkVFTjogICByZXR1cm4gIjIiOwotICAgIGNhc2UgQ09MT1JfWUVM
TE9XOiAgcmV0dXJuICIzIjsKLSAgICBkZWZhdWx0OiAgICAgICAgICAgIHJldHVybiBOVUxMOwot
ICB9OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1JlZDoKKyAgICAgIHJldHVybiAiMSI7CisgICAg
Y2FzZSBHVGVzdENvbG9yOjprR3JlZW46CisgICAgICByZXR1cm4gIjIiOworICAgIGNhc2UgR1Rl
c3RDb2xvcjo6a1llbGxvdzoKKyAgICAgIHJldHVybiAiMyI7CisgICAgZGVmYXVsdDoKKyAgICAg
IHJldHVybiBudWxscHRyOworICB9CiB9CiAKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAm
JiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKIAotLy8gUmV0dXJucyB0cnVlIGlmZiBHb29nbGUg
VGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0cHV0LgorLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIEdvb2dsZSBUZXN0IHNob3VsZCB1c2UgY29sb3JzIGluIHRoZSBvdXRwdXQu
CiBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0X2lzX3R0eSkgewogICBjb25zdCBjaGFy
KiBjb25zdCBndGVzdF9jb2xvciA9IEdURVNUX0ZMQUcoY29sb3IpLmNfc3RyKCk7CiAKQEAgLTMw
MjEsMTkgKzMyNzEsMjAgQEAgYm9vbCBTaG91bGRVc2VDb2xvcihib29sIHN0ZG91dF9pc190dHkp
IHsKIC8vIGNhbm5vdCBzaW1wbHkgZW1pdCBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIGhhdmUgdGhl
IHRlcm1pbmFsIGNoYW5nZSBjb2xvcnMuCiAvLyBUaGlzIHJvdXRpbmUgbXVzdCBhY3R1YWxseSBl
bWl0IHRoZSBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHJldHVybiBhIHN0cmluZwogLy8gdGhhdCB3
b3VsZCBiZSBjb2xvcmVkIHdoZW4gcHJpbnRlZCwgYXMgY2FuIGJlIGRvbmUgb24gTGludXguCi1z
dGF0aWMgdm9pZCBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIqIGZt
dCwgLi4uKSB7CisKK0dURVNUX0FUVFJJQlVURV9QUklOVEZfKDIsIDMpCitzdGF0aWMgdm9pZCBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7CiAg
IHZhX2xpc3QgYXJnczsKICAgdmFfc3RhcnQoYXJncywgZm10KTsKIAotI2lmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfWk9TIHx8IFwKLSAg
ICBHVEVTVF9PU19JT1MgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5E
T1dTX1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfWk9TIHx8IEdU
RVNUX09TX0lPUyB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19X
SU5ET1dTX1JUIHx8IGRlZmluZWQoRVNQX1BMQVRGT1JNKQogICBjb25zdCBib29sIHVzZV9jb2xv
ciA9IEFsd2F5c0ZhbHNlKCk7CiAjZWxzZQogICBzdGF0aWMgY29uc3QgYm9vbCBpbl9jb2xvcl9t
b2RlID0KICAgICAgIFNob3VsZFVzZUNvbG9yKHBvc2l4OjpJc0FUVFkocG9zaXg6OkZpbGVObyhz
dGRvdXQpKSAhPSAwKTsKLSAgY29uc3QgYm9vbCB1c2VfY29sb3IgPSBpbl9jb2xvcl9tb2RlICYm
IChjb2xvciAhPSBDT0xPUl9ERUZBVUxUKTsKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19N
T0JJTEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBHVEVTVF9PU19aT1MKLSAgLy8gVGhlICchPSAw
JyBjb21wYXJpc29uIGlzIG5lY2Vzc2FyeSB0byBzYXRpc2Z5IE1TVkMgNy4xLgorICBjb25zdCBi
b29sIHVzZV9jb2xvciA9IGluX2NvbG9yX21vZGUgJiYgKGNvbG9yICE9IEdUZXN0Q29sb3I6OmtE
ZWZhdWx0KTsKKyNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1Nf
Wk9TCiAKICAgaWYgKCF1c2VfY29sb3IpIHsKICAgICB2cHJpbnRmKGZtdCwgYXJncyk7CkBAIC0z
MDc5LDE0ICszMzMwLDEzIEBAIHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVz
ZW50KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgY29uc3QgY2hhciogY29uc3QgdHlw
ZV9wYXJhbSA9IHRlc3RfaW5mby50eXBlX3BhcmFtKCk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHZh
bHVlX3BhcmFtID0gdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCk7CiAKLSAgaWYgKHR5cGVfcGFyYW0g
IT0gTlVMTCB8fCB2YWx1ZV9wYXJhbSAhPSBOVUxMKSB7CisgIGlmICh0eXBlX3BhcmFtICE9IG51
bGxwdHIgfHwgdmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgewogICAgIHByaW50ZigiLCB3aGVyZSAi
KTsKLSAgICBpZiAodHlwZV9wYXJhbSAhPSBOVUxMKSB7CisgICAgaWYgKHR5cGVfcGFyYW0gIT0g
bnVsbHB0cikgewogICAgICAgcHJpbnRmKCIlcyA9ICVzIiwga1R5cGVQYXJhbUxhYmVsLCB0eXBl
X3BhcmFtKTsKLSAgICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBOVUxMKQotICAgICAgICBwcmludGYo
IiBhbmQgIik7CisgICAgICBpZiAodmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgcHJpbnRmKCIgYW5k
ICIpOwogICAgIH0KLSAgICBpZiAodmFsdWVfcGFyYW0gIT0gTlVMTCkgeworICAgIGlmICh2YWx1
ZV9wYXJhbSAhPSBudWxscHRyKSB7CiAgICAgICBwcmludGYoIiVzID0gJXMiLCBrVmFsdWVQYXJh
bUxhYmVsLCB2YWx1ZV9wYXJhbSk7CiAgICAgfQogICB9CkBAIC0zMDk4LDI3ICszMzQ4LDQwIEBA
IHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50KGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8pIHsKIGNsYXNzIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1Ymxp
YyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgogICBQcmV0dHlVbml0VGVzdFJlc3VsdFBy
aW50ZXIoKSB7fQotICBzdGF0aWMgdm9pZCBQcmludFRlc3ROYW1lKGNvbnN0IGNoYXIgKiB0ZXN0
X2Nhc2UsIGNvbnN0IGNoYXIgKiB0ZXN0KSB7Ci0gICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2Fz
ZSwgdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50VGVzdE5hbWUoY29uc3QgY2hhciogdGVzdF9z
dWl0ZSwgY29uc3QgY2hhciogdGVzdCkgeworICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRl
LCB0ZXN0KTsKICAgfQogCiAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvdmVycmlkZSB3aGF0
J3MgaW4gdGhlIFRlc3RFdmVudExpc3RlbmVyIGNsYXNzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFs
IHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50
IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1Nl
dFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQg
T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpOwotICB2aXJ0dWFsIHZv
aWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbyk7Ci0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpOwotICB2aXJ0
dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFs
IHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVh
bCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90
ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25F
bmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQor
ICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykg
b3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlkZTsKKyAgdm9pZCBPbkVudmlyb25tZW50
c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQg
T25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3Zl
cnJpZGUge30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZv
aWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlOwor
I2Vsc2UKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0
ZSkgb3ZlcnJpZGU7CisjZW5kaWYgIC8vIE9uVGVzdENhc2VTdGFydAorCisgIHZvaWQgT25UZXN0
U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGU7CisKKyAgdm9pZCBPblRl
c3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOworICB2
b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZTsKKyNpZm5k
ZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZUVu
ZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSBvdmVycmlkZTsKKyNlbHNlCisgIHZvaWQgT25U
ZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSBvdmVycmlkZTsKKyNlbmRp
ZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPbkVudmly
b25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7
CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0
UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KIAog
IHByaXZhdGU6CiAgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50RmFpbGVkVGVzdFN1aXRlcyhjb25zdCBV
bml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgc3RhdGljIHZvaWQgUHJpbnRTa2lwcGVkVGVzdHMoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CiB9OwogCiAgIC8vIEZpcmVkIGJlZm9yZSBlYWNoIGl0
ZXJhdGlvbiBvZiB0ZXN0cyBzdGFydHMuCkBAIC0zMTMyLDU0ICszMzk1LDY5IEBAIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25TdGFydCgKICAgLy8gUHJp
bnRzIHRoZSBmaWx0ZXIgaWYgaXQncyBub3QgKi4gIFRoaXMgcmVtaW5kcyB0aGUgdXNlciB0aGF0
IHNvbWUKICAgLy8gdGVzdHMgbWF5IGJlIHNraXBwZWQuCiAgIGlmICghU3RyaW5nOjpDU3RyaW5n
RXF1YWxzKGZpbHRlciwga1VuaXZlcnNhbEZpbHRlcikpIHsKLSAgICBDb2xvcmVkUHJpbnRmKENP
TE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJOb3RlOiAlcyBmaWx0ZXIgPSAlc1xuIiwg
R1RFU1RfTkFNRV8sIGZpbHRlcik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprWWVs
bG93LCAiTm90ZTogJXMgZmlsdGVyID0gJXNcbiIsIEdURVNUX05BTUVfLAorICAgICAgICAgICAg
ICAgICAgZmlsdGVyKTsKICAgfQogCiAgIGlmIChpbnRlcm5hbDo6U2hvdWxkU2hhcmQoa1Rlc3RU
b3RhbFNoYXJkcywga1Rlc3RTaGFyZEluZGV4LCBmYWxzZSkpIHsKLSAgICBjb25zdCBJbnQzMiBz
aGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOwotICAg
IENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIk5vdGU6IFRo
aXMgaXMgdGVzdCBzaGFyZCAlZCBvZiAlcy5cbiIsCisgICAgY29uc3QgaW50MzJfdCBzaGFyZF9p
bmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpOworICAgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIk5vdGU6IFRoaXMgaXMgdGVzdCBzaGFyZCAl
ZCBvZiAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHNoYXJkX2lu
ZGV4KSArIDEsCiAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6cG9zaXg6OkdldEVudihrVGVz
dFRvdGFsU2hhcmRzKSk7CiAgIH0KIAogICBpZiAoR1RFU1RfRkxBRyhzaHVmZmxlKSkgewotICAg
IENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAorICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xv
cjo6a1llbGxvdywKICAgICAgICAgICAgICAgICAgICJOb3RlOiBSYW5kb21pemluZyB0ZXN0cycg
b3JkZXJzIHdpdGggYSBzZWVkIG9mICVkIC5cbiIsCiAgICAgICAgICAgICAgICAgICB1bml0X3Rl
c3QucmFuZG9tX3NlZWQoKSk7CiAgIH0KIAotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAg
Ils9PT09PT09PT09XSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJb
PT09PT09PT09PV0gIik7CiAgIHByaW50ZigiUnVubmluZyAlcyBmcm9tICVzLlxuIiwKICAgICAg
ICAgIEZvcm1hdFRlc3RDb3VudCh1bml0X3Rlc3QudGVzdF90b19ydW5fY291bnQoKSkuY19zdHIo
KSwKLSAgICAgICAgIEZvcm1hdFRlc3RDYXNlQ291bnQodW5pdF90ZXN0LnRlc3RfY2FzZV90b19y
dW5fY291bnQoKSkuY19zdHIoKSk7CisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0
X3Rlc3QudGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSkuY19zdHIoKSk7CiAgIGZmbHVzaChzdGRv
dXQpOwogfQogCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVu
dHNTZXRVcFN0YXJ0KAogICAgIGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gIENv
bG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0tLS0tLS1dICIpOworICBDb2xvcmVkUHJp
bnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKICAgcHJpbnRmKCJHbG9i
YWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuXG4iKTsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAK
KyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiB2b2lkIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0
X2Nhc2UpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KICAgICAgIEZvcm1hdENvdW50
YWJsZU5vdW4odGVzdF9jYXNlLnRlc3RfdG9fcnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7
Ci0gIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICJbLS0tLS0tLS0tLV0gIik7CisgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOwogICBwcmludGYo
IiVzIGZyb20gJXMiLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSk7Ci0gIGlmICh0
ZXN0X2Nhc2UudHlwZV9wYXJhbSgpID09IE5VTEwpIHsKKyAgaWYgKHRlc3RfY2FzZS50eXBlX3Bh
cmFtKCkgPT0gbnVsbHB0cikgewogICAgIHByaW50ZigiXG4iKTsKICAgfSBlbHNlIHsKICAgICBw
cmludGYoIiwgd2hlcmUgJXMgPSAlc1xuIiwga1R5cGVQYXJhbUxhYmVsLCB0ZXN0X2Nhc2UudHlw
ZV9wYXJhbSgpKTsKICAgfQogICBmZmx1c2goc3Rkb3V0KTsKIH0KKyNlbHNlCit2b2lkIFByZXR0
eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3VpdGVTdGFydCgKKyAgICBjb25zdCBUZXN0
U3VpdGUmIHRlc3Rfc3VpdGUpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgY291bnRzID0KKyAgICAg
IEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVz
dCIsICJ0ZXN0cyIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0t
LS0tLS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzIiwgY291bnRzLmNfc3RyKCksIHRlc3Rf
c3VpdGUubmFtZSgpKTsKKyAgaWYgKHRlc3Rfc3VpdGUudHlwZV9wYXJhbSgpID09IG51bGxwdHIp
IHsKKyAgICBwcmludGYoIlxuIik7CisgIH0gZWxzZSB7CisgICAgcHJpbnRmKCIsIHdoZXJlICVz
ID0gJXNcbiIsIGtUeXBlUGFyYW1MYWJlbCwgdGVzdF9zdWl0ZS50eXBlX3BhcmFtKCkpOworICB9
CisgIGZmbHVzaChzdGRvdXQpOworfQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KIAogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0
YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9H
UkVFTiwgICJbIFJVTiAgICAgIF0gIik7Ci0gIFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRlc3Rf
Y2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29s
b3I6OmtHcmVlbiwgIlsgUlVOICAgICAgXSAiKTsKKyAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8u
dGVzdF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwogICBwcmludGYoIlxuIik7CiAg
IGZmbHVzaChzdGRvdXQpOwogfQpAQCAtMzE4NywyMiArMzQ2NSwyNyBAQCB2b2lkIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5m
bykgewogLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlvbiBmYWlsdXJlLgogdm9pZCBQcmV0dHlV
bml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFBhcnRSZXN1bHQoCiAgICAgY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCkgewotICAvLyBJZiB0aGUgdGVzdCBwYXJ0IHN1Y2NlZWRlZCwgd2Ug
ZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZy4KLSAgaWYgKHJlc3VsdC50eXBlKCkgPT0gVGVzdFBh
cnRSZXN1bHQ6OmtTdWNjZXNzKQotICAgIHJldHVybjsKLQotICAvLyBQcmludCBmYWlsdXJlIG1l
c3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uIChlLmcuIGV4cGVjdGVkIHRoaXMgYW5kIGdvdCB0aGF0
KS4KLSAgUHJpbnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwotICBmZmx1c2goc3Rkb3V0KTsKKyAg
c3dpdGNoIChyZXN1bHQudHlwZSgpKSB7CisgICAgLy8gSWYgdGhlIHRlc3QgcGFydCBzdWNjZWVk
ZWQsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgY2FzZSBUZXN0UGFydFJlc3Vs
dDo6a1N1Y2Nlc3M6CisgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAgICAgIC8vIFByaW50
IGZhaWx1cmUgbWVzc2FnZSBmcm9tIHRoZSBhc3NlcnRpb24KKyAgICAgIC8vIChlLmcuIGV4cGVj
dGVkIHRoaXMgYW5kIGdvdCB0aGF0KS4KKyAgICAgIFByaW50VGVzdFBhcnRSZXN1bHQocmVzdWx0
KTsKKyAgICAgIGZmbHVzaChzdGRvdXQpOworICB9CiB9CiAKIHZvaWQgUHJldHR5VW5pdFRlc3RS
ZXN1bHRQcmludGVyOjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBp
ZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkgewotICAgIENvbG9yZWRQcmludGYoQ09M
T1JfR1JFRU4sICJbICAgICAgIE9LIF0gIik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9y
OjprR3JlZW4sICJbICAgICAgIE9LIF0gIik7CisgIH0gZWxzZSBpZiAodGVzdF9pbmZvLnJlc3Vs
dCgpLT5Ta2lwcGVkKCkpIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwg
IlsgIFNLSVBQRUQgXSAiKTsKICAgfSBlbHNlIHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JF
RCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQs
ICJbICBGQUlMRUQgIF0gIik7CiAgIH0KLSAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVzdF9j
YXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgIFByaW50VGVzdE5hbWUodGVzdF9pbmZv
LnRlc3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKICAgaWYgKHRlc3RfaW5mby5y
ZXN1bHQoKS0+RmFpbGVkKCkpCiAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQodGVz
dF9pbmZvKTsKIApAQCAtMzIxNSwyMSArMzQ5OCwzMyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgZmZs
dXNoKHN0ZG91dCk7CiB9CiAKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZUVuZChjb25z
dCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CiAgIGlmICghR1RFU1RfRkxBRyhwcmludF90aW1lKSkg
cmV0dXJuOwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9CiAgICAgICBGb3JtYXRDb3Vu
dGFibGVOb3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIp
OwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAiWy0tLS0tLS0tLS1dICIpOwotICBwcmlu
dGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLAotICAgICAgICAgY291bnRzLmNfc3Ry
KCksIHRlc3RfY2FzZS5uYW1lKCksCisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxu
XG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5hbWUoKSwKICAgICAgICAgIGludGVybmFs
OjpTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsK
ICAgZmZsdXNoKHN0ZG91dCk7CiB9CisjZWxzZQordm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFBy
aW50ZXI6Ok9uVGVzdFN1aXRlRW5kKGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgeworICBp
ZiAoIUdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHJldHVybjsKKworICBjb25zdCBzdGQ6OnN0cmlu
ZyBjb3VudHMgPQorICAgICAgRm9ybWF0Q291bnRhYmxlTm91bih0ZXN0X3N1aXRlLnRlc3RfdG9f
cnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xv
cjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1z
IHRvdGFsKVxuXG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9zdWl0ZS5uYW1lKCksCisgICAgICAg
ICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkp
LmNfc3RyKCkpOworICBmZmx1c2goc3Rkb3V0KTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZF
X0xFR0FDWV9URVNUX0NBU0VBUElfCiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoCiAgICAgY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbLS0tLS0tLS0tLV0g
Iik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIp
OwogICBwcmludGYoIkdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93blxuIik7CiAgIGZm
bHVzaChzdGRvdXQpOwogfQpAQCAtMzIzNywyMyArMzUzMiw3MCBAQCB2b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KAogLy8gSW50ZXJu
YWwgaGVscGVyIGZvciBwcmludGluZyB0aGUgbGlzdCBvZiBmYWlsZWQgdGVzdHMuCiB2b2lkIFBy
ZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVz
dCYgdW5pdF90ZXN0KSB7CiAgIGNvbnN0IGludCBmYWlsZWRfdGVzdF9jb3VudCA9IHVuaXRfdGVz
dC5mYWlsZWRfdGVzdF9jb3VudCgpOwotICBpZiAoZmFpbGVkX3Rlc3RfY291bnQgPT0gMCkgewor
ICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CisgIHBy
aW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChmYWlsZWRfdGVzdF9j
b3VudCkuY19zdHIoKSk7CisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3Vp
dGUgPSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKKyAgICBpZiAoIXRlc3Rfc3VpdGUuc2hv
dWxkX3J1bigpIHx8ICh0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0X2NvdW50KCkgPT0gMCkpIHsKKyAg
ICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUu
dG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2lu
Zm8gPSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsKKyAgICAgIGlmICghdGVzdF9pbmZvLnNo
b3VsZF9ydW4oKSB8fCAhdGVzdF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgICAgICBj
b250aW51ZTsKKyAgICAgIH0KKyAgICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwg
IlsgIEZBSUxFRCAgXSAiKTsKKyAgICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLm5hbWUo
KSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2Vu
dCh0ZXN0X2luZm8pOworICAgICAgcHJpbnRmKCJcbiIpOworICAgIH0KKyAgfQorICBwcmludGYo
IlxuJTJkIEZBSUxFRCAlc1xuIiwgZmFpbGVkX3Rlc3RfY291bnQsCisgICAgICAgICBmYWlsZWRf
dGVzdF9jb3VudCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7Cit9CisKKy8vIEludGVybmFsIGhl
bHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2YgdGVzdCBzdWl0ZSBmYWlsdXJlcyBub3QgY292
ZXJlZCBieQorLy8gUHJpbnRGYWlsZWRUZXN0cy4KK3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpQcmludEZhaWxlZFRlc3RTdWl0ZXMoCisgICAgY29uc3QgVW5pdFRlc3QmIHVuaXRf
dGVzdCkgeworICBpbnQgc3VpdGVfZmFpbHVyZV9jb3VudCA9IDA7CisgIGZvciAoaW50IGkgPSAw
OyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgY29u
c3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7Cisg
ICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSkgeworICAgICAgY29udGludWU7CisgICAg
fQorICAgIGlmICh0ZXN0X3N1aXRlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLkZhaWxlZCgpKSB7Cisg
ICAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7Cisg
ICAgICBwcmludGYoIiVzOiBTZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93blRlc3RTdWl0ZVxuIiwg
dGVzdF9zdWl0ZS5uYW1lKCkpOworICAgICAgKytzdWl0ZV9mYWlsdXJlX2NvdW50OworICAgIH0K
KyAgfQorICBpZiAoc3VpdGVfZmFpbHVyZV9jb3VudCA+IDApIHsKKyAgICBwcmludGYoIlxuJTJk
IEZBSUxFRCBURVNUICVzXG4iLCBzdWl0ZV9mYWlsdXJlX2NvdW50LAorICAgICAgICAgICBzdWl0
ZV9mYWlsdXJlX2NvdW50ID09IDEgPyAiU1VJVEUiIDogIlNVSVRFUyIpOworICB9Cit9CisKKy8v
IEludGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2Ygc2tpcHBlZCB0ZXN0cy4K
K3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludFNraXBwZWRUZXN0cyhjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CisgIGNvbnN0IGludCBza2lwcGVkX3Rlc3RfY291bnQg
PSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlmIChza2lwcGVkX3Rlc3RfY291
bnQgPT0gMCkgewogICAgIHJldHVybjsKICAgfQogCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5p
dF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlID0gKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICBpZiAoIXRlc3Rf
Y2FzZS5zaG91bGRfcnVuKCkgfHwgKHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpID09IDAp
KSB7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291
bnQoKTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVz
dC5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSB8fCAo
dGVzdF9zdWl0ZS5za2lwcGVkX3Rlc3RfY291bnQoKSA9PSAwKSkgewogICAgICAgY29udGludWU7
CiAgICAgfQotICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291
bnQoKTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3RfY2Fz
ZS5HZXRUZXN0SW5mbyhqKTsKLSAgICAgIGlmICghdGVzdF9pbmZvLnNob3VsZF9ydW4oKSB8fCB0
ZXN0X2luZm8ucmVzdWx0KCktPlBhc3NlZCgpKSB7CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0
ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7CisgICAgICBjb25zdCBUZXN0SW5m
byYgdGVzdF9pbmZvID0gKnRlc3Rfc3VpdGUuR2V0VGVzdEluZm8oaik7CisgICAgICBpZiAoIXRl
c3RfaW5mby5zaG91bGRfcnVuKCkgfHwgIXRlc3RfaW5mby5yZXN1bHQoKS0+U2tpcHBlZCgpKSB7
CiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9S
RUQsICJbICBGQUlMRUQgIF0gIik7Ci0gICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9jYXNlLm5h
bWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgICBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJl
c2VudCh0ZXN0X2luZm8pOworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4s
ICJbICBTS0lQUEVEIF0gIik7CisgICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9zdWl0ZS5uYW1l
KCksIHRlc3RfaW5mby5uYW1lKCkpOwogICAgICAgcHJpbnRmKCJcbiIpOwogICAgIH0KICAgfQpA
QCAtMzI2MSwzNyArMzYwMywzNyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6
UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CiAKIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9H
UkVFTiwgICJbPT09PT09PT09PV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dy
ZWVuLCAiWz09PT09PT09PT1dICIpOwogICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCiAgICAg
ICAgICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3Ry
KCksCi0gICAgICAgICBGb3JtYXRUZXN0Q2FzZUNvdW50KHVuaXRfdGVzdC50ZXN0X2Nhc2VfdG9f
cnVuX2NvdW50KCkpLmNfc3RyKCkpOworICAgICAgICAgRm9ybWF0VGVzdFN1aXRlQ291bnQodW5p
dF90ZXN0LnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOwogICBpZiAoR1RFU1Rf
RkxBRyhwcmludF90aW1lKSkgewogICAgIHByaW50ZigiICglcyBtcyB0b3RhbCkiLAogICAgICAg
ICAgICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUo
KSkuY19zdHIoKSk7CiAgIH0KICAgcHJpbnRmKCJcbiIpOwotICBDb2xvcmVkUHJpbnRmKENPTE9S
X0dSRUVOLCAgIlsgIFBBU1NFRCAgXSAiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjpr
R3JlZW4sICJbICBQQVNTRUQgIF0gIik7CiAgIHByaW50ZigiJXMuXG4iLCBGb3JtYXRUZXN0Q291
bnQodW5pdF90ZXN0LnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKS5jX3N0cigpKTsKIAotICBpbnQg
bnVtX2ZhaWx1cmVzID0gdW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7CisgIGNvbnN0IGlu
dCBza2lwcGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7Cisg
IGlmIChza2lwcGVkX3Rlc3RfY291bnQgPiAwKSB7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENv
bG9yOjprR3JlZW4sICJbICBTS0lQUEVEIF0gIik7CisgICAgcHJpbnRmKCIlcywgbGlzdGVkIGJl
bG93OlxuIiwgRm9ybWF0VGVzdENvdW50KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7Cisg
ICAgUHJpbnRTa2lwcGVkVGVzdHModW5pdF90ZXN0KTsKKyAgfQorCiAgIGlmICghdW5pdF90ZXN0
LlBhc3NlZCgpKSB7Ci0gICAgY29uc3QgaW50IGZhaWxlZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0
LmZhaWxlZF90ZXN0X2NvdW50KCk7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsICAiWyAg
RkFJTEVEICBdICIpOwotICAgIHByaW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRl
c3RDb3VudChmYWlsZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CiAgICAgUHJpbnRGYWlsZWRUZXN0
cyh1bml0X3Rlc3QpOwotICAgIHByaW50ZigiXG4lMmQgRkFJTEVEICVzXG4iLCBudW1fZmFpbHVy
ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBudW1fZmFpbHVyZXMgPT0gMSA/ICJURVNUIiA6
ICJURVNUUyIpOworICAgIFByaW50RmFpbGVkVGVzdFN1aXRlcyh1bml0X3Rlc3QpOwogICB9CiAK
ICAgaW50IG51bV9kaXNhYmxlZCA9IHVuaXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3Rf
Y291bnQoKTsKICAgaWYgKG51bV9kaXNhYmxlZCAmJiAhR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cykpIHsKLSAgICBpZiAoIW51bV9mYWlsdXJlcykgeworICAgIGlmICh1bml0X3Rl
c3QuUGFzc2VkKCkpIHsKICAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBhIHNwYWNlciBpZiBu
byBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCiAgICAgfQotICAgIENvbG9yZWRQcmludGYo
Q09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQg
JXNcblxuIiwKLSAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwKLSAgICAgICAgICAgICAg
ICAgIG51bV9kaXNhYmxlZCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7CisgICAgQ29sb3JlZFBy
aW50ZihHVGVzdENvbG9yOjprWWVsbG93LCAiICBZT1UgSEFWRSAlZCBESVNBQkxFRCAlc1xuXG4i
LAorICAgICAgICAgICAgICAgICAgbnVtX2Rpc2FibGVkLCBudW1fZGlzYWJsZWQgPT0gMSA/ICJU
RVNUIiA6ICJURVNUUyIpOwogICB9CiAgIC8vIEVuc3VyZSB0aGF0IEdvb2dsZSBUZXN0IG91dHB1
dCBpcyBwcmludGVkIGJlZm9yZSwgZS5nLiwgaGVhcGNoZWNrZXIgb3V0cHV0LgogICBmZmx1c2go
c3Rkb3V0KTsKQEAgLTMyOTksMTMgKzM2NDEsMTE3IEBAIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1
bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwK
IAogLy8gRW5kIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcgogCisvLyBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgdGhlIFRlc3RFdmVudExpc3RlbmVyIGludGVyZmFjZS4KKy8vCisvLyBDbGFzcyBC
cmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlciBpcyBjb3B5YWJsZS4KK2NsYXNzIEJyaWVmVW5pdFRl
c3RSZXN1bHRQcmludGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKKyBwdWJsaWM6Cisg
IEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVyKCkge30KKyAgc3RhdGljIHZvaWQgUHJpbnRUZXN0
TmFtZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlLCBjb25zdCBjaGFyKiB0ZXN0KSB7CisgICAgcHJp
bnRmKCIlcy4lcyIsIHRlc3Rfc3VpdGUsIHRlc3QpOworICB9CisKKyAgLy8gVGhlIGZvbGxvd2lu
ZyBtZXRob2RzIG92ZXJyaWRlIHdoYXQncyBpbiB0aGUgVGVzdEV2ZW50TGlzdGVuZXIgY2xhc3Mu
CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCov
KSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJh
dGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25z
dCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25t
ZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQor
I2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RD
YXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHt9CisjZWxz
ZQorICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUq
Lykgb3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gT25UZXN0Q2FzZVN0YXJ0CisKKyAgdm9pZCBPblRl
c3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUge30KKworICB2
b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJp
ZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRl
OworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRl
c3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2Vs
c2UKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSov
KSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3du
RW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9u
VGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9u
KSBvdmVycmlkZTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovKSBvdmVycmlkZSB7fQorfTsKKworLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlv
biBmYWlsdXJlLgordm9pZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0UGFydFJl
c3VsdCgKKyAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7CisgIHN3aXRjaCAocmVz
dWx0LnR5cGUoKSkgeworICAgIC8vIElmIHRoZSB0ZXN0IHBhcnQgc3VjY2VlZGVkLCB3ZSBkb24n
dCBuZWVkIHRvIGRvIGFueXRoaW5nLgorICAgIGNhc2UgVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNz
OgorICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAvLyBQcmludCBmYWlsdXJlIG1l
c3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uCisgICAgICAvLyAoZS5nLiBleHBlY3RlZCB0aGlzIGFu
ZCBnb3QgdGhhdCkuCisgICAgICBQcmludFRlc3RQYXJ0UmVzdWx0KHJlc3VsdCk7CisgICAgICBm
Zmx1c2goc3Rkb3V0KTsKKyAgfQorfQorCit2b2lkIEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICBpZiAodGVzdF9pbmZv
LnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1Jl
ZCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBQcmludFRlc3ROYW1lKHRlc3RfaW5mby50ZXN0X3N1
aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJ
ZlByZXNlbnQodGVzdF9pbmZvKTsKKworICAgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7
CisgICAgICBwcmludGYoIiAoJXMgbXMpXG4iLAorICAgICAgICAgICAgIGludGVybmFsOjpTdHJl
YW1hYmxlVG9TdHJpbmcodGVzdF9pbmZvLnJlc3VsdCgpLT5lbGFwc2VkX3RpbWUoKSkKKyAgICAg
ICAgICAgICAgICAgLmNfc3RyKCkpOworICAgIH0gZWxzZSB7CisgICAgICBwcmludGYoIlxuIik7
CisgICAgfQorICAgIGZmbHVzaChzdGRvdXQpOworICB9Cit9CisKK3ZvaWQgQnJpZWZVbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCAvKml0ZXJhdGlvbiovKSB7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWz09PT09PT09PT1dICIpOworICBwcmludGYoIiVzIGZyb20gJXMgcmFuLiIsCisgICAgICAg
ICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCks
CisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1bml0X3Rlc3QudGVzdF9zdWl0ZV90b19y
dW5fY291bnQoKSkuY19zdHIoKSk7CisgIGlmIChHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB7Cisg
ICAgcHJpbnRmKCIgKCVzIG1zIHRvdGFsKSIsCisgICAgICAgICAgIGludGVybmFsOjpTdHJlYW1h
YmxlVG9TdHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKS5jX3N0cigpKTsKKyAgfQorICBw
cmludGYoIlxuIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWyAgUEFT
U0VEICBdICIpOworICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC5z
dWNjZXNzZnVsX3Rlc3RfY291bnQoKSkuY19zdHIoKSk7CisKKyAgY29uc3QgaW50IHNraXBwZWRf
dGVzdF9jb3VudCA9IHVuaXRfdGVzdC5za2lwcGVkX3Rlc3RfY291bnQoKTsKKyAgaWYgKHNraXBw
ZWRfdGVzdF9jb3VudCA+IDApIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVl
biwgIlsgIFNLSVBQRUQgXSAiKTsKKyAgICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVzdENvdW50
KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CisgIH0KKworICBpbnQgbnVtX2Rpc2FibGVk
ID0gdW5pdF90ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpOworICBpZiAobnVt
X2Rpc2FibGVkICYmICFHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSkgeworICAg
IGlmICh1bml0X3Rlc3QuUGFzc2VkKCkpIHsKKyAgICAgIHByaW50ZigiXG4iKTsgIC8vIEFkZCBh
IHNwYWNlciBpZiBubyBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCisgICAgfQorICAgIENv
bG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQg
JXNcblxuIiwKKyAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwgbnVtX2Rpc2FibGVkID09
IDEgPyAiVEVTVCIgOiAiVEVTVFMiKTsKKyAgfQorICAvLyBFbnN1cmUgdGhhdCBHb29nbGUgVGVz
dCBvdXRwdXQgaXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4sIGhlYXBjaGVja2VyIG91dHB1dC4KKyAg
ZmZsdXNoKHN0ZG91dCk7Cit9CisKKy8vIEVuZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcgor
CiAvLyBjbGFzcyBUZXN0RXZlbnRSZXBlYXRlcgogLy8KIC8vIFRoaXMgY2xhc3MgZm9yd2FyZHMg
ZXZlbnRzIHRvIG90aGVyIGV2ZW50IGxpc3RlbmVycy4KIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVy
IDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6CiAgIFRlc3RFdmVudFJlcGVh
dGVyKCkgOiBmb3J3YXJkaW5nX2VuYWJsZWRfKHRydWUpIHt9Ci0gIHZpcnR1YWwgflRlc3RFdmVu
dFJlcGVhdGVyKCk7CisgIH5UZXN0RXZlbnRSZXBlYXRlcigpIG92ZXJyaWRlOwogICB2b2lkIEFw
cGVuZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIpOwogICBUZXN0RXZlbnRMaXN0ZW5lciog
UmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpOwogCkBAIC0zMzE0LDE5ICszNzYw
LDI3IEBAIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVy
IHsKICAgYm9vbCBmb3J3YXJkaW5nX2VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmb3J3YXJkaW5n
X2VuYWJsZWRfOyB9CiAgIHZvaWQgc2V0X2ZvcndhcmRpbmdfZW5hYmxlZChib29sIGVuYWJsZSkg
eyBmb3J3YXJkaW5nX2VuYWJsZWRfID0gZW5hYmxlOyB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lk
IE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVy
YXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VT
dGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0
YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFy
dFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAgdmlydHVhbCB2b2lkIE9u
VGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVu
dmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZp
cnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0
JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3Jh
bUVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRl
cmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3Zl
cnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3Qg
VW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgcGFyYW1l
dGVyKSBvdmVycmlkZTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiBwYXJhbWV0ZXIp
IG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8p
IG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHJlc3VsdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIG92ZXJyaWRlOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2
b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHBhcmFtZXRlcikgb3ZlcnJpZGU7Cisj
ZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRl
c3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIHBhcmFtZXRlcikgb3ZlcnJpZGU7CisgIHZvaWQg
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92
ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3Qm
IHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pIG92ZXJyaWRlOworICB2b2lkIE9uVGVz
dFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CiAKICBwcml2
YXRlOgogICAvLyBDb250cm9scyB3aGV0aGVyIGV2ZW50cyB3aWxsIGJlIGZvcndhcmRlZCB0byBs
aXN0ZW5lcnNfLiBTZXQgdG8gZmFsc2UKQEAgLTMzNDYsMTYgKzM4MDAsMTUgQEAgdm9pZCBUZXN0
RXZlbnRSZXBlYXRlcjo6QXBwZW5kKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikgewogICBs
aXN0ZW5lcnNfLnB1c2hfYmFjayhsaXN0ZW5lcik7CiB9CiAKLS8vIEZJWE1FOiBGYWN0b3IgdGhl
IHNlYXJjaCBmdW5jdGlvbmFsaXR5IGludG8gVmVjdG9yOjpGaW5kLgogVGVzdEV2ZW50TGlzdGVu
ZXIqIFRlc3RFdmVudFJlcGVhdGVyOjpSZWxlYXNlKFRlc3RFdmVudExpc3RlbmVyICpsaXN0ZW5l
cikgewogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc18uc2l6ZSgpOyArK2kpIHsK
ICAgICBpZiAobGlzdGVuZXJzX1tpXSA9PSBsaXN0ZW5lcikgewotICAgICAgbGlzdGVuZXJzXy5l
cmFzZShsaXN0ZW5lcnNfLmJlZ2luKCkgKyBpKTsKKyAgICAgIGxpc3RlbmVyc18uZXJhc2UobGlz
dGVuZXJzXy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50PihpKSk7CiAgICAgICByZXR1cm4gbGlz
dGVuZXI7CiAgICAgfQogICB9CiAKLSAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBudWxscHRyOwog
fQogCiAvLyBTaW5jZSBtb3N0IG1ldGhvZHMgYXJlIHZlcnkgc2ltaWxhciwgdXNlIG1hY3JvcyB0
byByZWR1Y2UgYm9pbGVycGxhdGUuCkBAIC0zMzcwLDI1ICszODIzLDMzIEBAIHZvaWQgVGVzdEV2
ZW50UmVwZWF0ZXI6Ok5hbWUoY29uc3QgVHlwZSYgcGFyYW1ldGVyKSB7IFwKIH0KIC8vIFRoaXMg
ZGVmaW5lcyBhIG1lbWJlciB0aGF0IGZvcndhcmRzIHRoZSBjYWxsIHRvIGFsbCBsaXN0ZW5lcnMg
aW4gcmV2ZXJzZQogLy8gb3JkZXIuCi0jZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVU
SE9EXyhOYW1lLCBUeXBlKSBcCi12b2lkIFRlc3RFdmVudFJlcGVhdGVyOjpOYW1lKGNvbnN0IFR5
cGUmIHBhcmFtZXRlcikgeyBcCi0gIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7IFwKLSAgICBm
b3IgKGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihsaXN0ZW5lcnNfLnNpemUoKSkgLSAxOyBpID49
IDA7IGktLSkgeyBcCi0gICAgICBsaXN0ZW5lcnNfW2ldLT5OYW1lKHBhcmFtZXRlcik7IFwKLSAg
ICB9IFwKLSAgfSBcCi19CisjZGVmaW5lIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhO
YW1lLCBUeXBlKSAgICAgIFwKKyAgdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6TmFtZShjb25zdCBU
eXBlJiBwYXJhbWV0ZXIpIHsgXAorICAgIGlmIChmb3J3YXJkaW5nX2VuYWJsZWRfKSB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICBmb3IgKHNpemVfdCBpID0gbGlzdGVuZXJzXy5z
aXplKCk7IGkgIT0gMDsgaS0tKSB7IFwKKyAgICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk5hbWUo
cGFyYW1ldGVyKTsgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQogCiBHVEVTVF9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdFByb2dyYW1TdGFydCwgVW5pdFRlc3QpCiBHVEVTVF9SRVBFQVRFUl9NRVRIT0Rf
KE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCwgVW5pdFRlc3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdENhc2UpCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNh
dGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCitHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdFN1
aXRlKQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCitHVEVT
VF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN1aXRlU3RhcnQsIFRlc3RTdWl0ZSkKIEdURVNUX1JF
UEVBVEVSX01FVEhPRF8oT25UZXN0U3RhcnQsIFRlc3RJbmZvKQogR1RFU1RfUkVQRUFURVJfTUVU
SE9EXyhPblRlc3RQYXJ0UmVzdWx0LCBUZXN0UGFydFJlc3VsdCkKIEdURVNUX1JFUEVBVEVSX01F
VEhPRF8oT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0LCBVbml0VGVzdCkKIEdURVNUX1JFVkVS
U0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1NldFVwRW5kLCBVbml0VGVzdCkKIEdU
RVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50c1RlYXJEb3duRW5kLCBV
bml0VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RFbmQsIFRlc3RJ
bmZvKQotR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RD
YXNlKQorLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9S
RVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRlc3RTdWl0ZSkKKyNlbmRpZiAgLy8gIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9N
RVRIT0RfKE9uVGVzdFN1aXRlRW5kLCBUZXN0U3VpdGUpCiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVS
X01FVEhPRF8oT25UZXN0UHJvZ3JhbUVuZCwgVW5pdFRlc3QpCiAKICN1bmRlZiBHVEVTVF9SRVBF
QVRFUl9NRVRIT0RfCkBAIC0zNDA2LDggKzM4NjcsOCBAQCB2b2lkIFRlc3RFdmVudFJlcGVhdGVy
OjpPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LAogdm9pZCBU
ZXN0RXZlbnRSZXBlYXRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0
ZXJhdGlvbikgewogICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgewotICAgIGZvciAoaW50IGkg
PSBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RlbmVyc18uc2l6ZSgpKSAtIDE7IGkgPj0gMDsgaS0tKSB7
Ci0gICAgICBsaXN0ZW5lcnNfW2ldLT5PblRlc3RJdGVyYXRpb25FbmQodW5pdF90ZXN0LCBpdGVy
YXRpb24pOworICAgIGZvciAoc2l6ZV90IGkgPSBsaXN0ZW5lcnNfLnNpemUoKTsgaSA+IDA7IGkt
LSkgeworICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk9uVGVzdEl0ZXJhdGlvbkVuZCh1bml0X3Rl
c3QsIGl0ZXJhdGlvbik7CiAgICAgfQogICB9CiB9CkBAIC0zNDE5LDEyICszODgwLDEyIEBAIGNs
YXNzIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3Rl
bmVyIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25z
dCBjaGFyKiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKLSAgdm9pZCBMaXN0
VGVzdHNNYXRjaGluZ0ZpbHRlcihjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nh
c2VzKTsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVz
dCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0
ZXIoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogICAvLyBQ
cmludHMgYW4gWE1MIHN1bW1hcnkgb2YgYWxsIHVuaXQgdGVzdHMuCiAgIHN0YXRpYyB2b2lkIFBy
aW50WG1sVGVzdHNMaXN0KHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1
aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogIHByaXZhdGU6CiAgIC8vIElzIGMgYSB3aGl0ZXNwYWNl
IGNoYXJhY3RlciB0aGF0IGlzIG5vcm1hbGl6ZWQgdG8gYSBzcGFjZSBjaGFyYWN0ZXIKQEAgLTM0
NjcsMTQgKzM5MjgsMjQgQEAgY2xhc3MgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAvLyBTdHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0
aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCiAgIHN0YXRp
YyB2b2lkIE91dHB1dFhtbENEYXRhU2VjdGlvbig6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25z
dCBjaGFyKiBkYXRhKTsKIAorICAvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNv
bnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJlczogcmVz
dWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1
bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOworCisgIC8vIFN0cmVh
bXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdFJlc3VsdCBvYmplY3QuCisgIHN0YXRp
YyB2b2lkIE91dHB1dFhtbFRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOwor
CiAgIC8vIFN0cmVhbXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0
LgogICBzdGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFt
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2Vf
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9z
dWl0ZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5m
byYgdGVzdF9pbmZvKTsKIAotICAvLyBQcmludHMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEg
VGVzdENhc2Ugb2JqZWN0Ci0gIHN0YXRpYyB2b2lkIFByaW50WG1sVGVzdENhc2UoOjpzdGQ6Om9z
dHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0
Q2FzZSYgdGVzdF9jYXNlKTsKKyAgLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBh
IFRlc3RTdWl0ZSBvYmplY3QKKyAgc3RhdGljIHZvaWQgUHJpbnRYbWxUZXN0U3VpdGUoOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMgYW4gWE1MIHN1bW1hcnkgb2Yg
dW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0aWMgdm9pZCBQcmludFhtbFVu
aXRUZXN0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCkBAIC0zNTE2LDEwICszOTg3LDEwIEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCwKIH0KIAogdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Okxp
c3RUZXN0c01hdGNoaW5nRmlsdGVyKAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj4m
IHRlc3RfY2FzZXMpIHsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9z
dWl0ZXMpIHsKICAgRklMRSogeG1sb3V0ID0gT3BlbkZpbGVGb3JXcml0aW5nKG91dHB1dF9maWxl
Xyk7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKLSAgUHJpbnRYbWxUZXN0c0xpc3QoJnN0
cmVhbSwgdGVzdF9jYXNlcyk7CisgIFByaW50WG1sVGVzdHNMaXN0KCZzdHJlYW0sIHRlc3Rfc3Vp
dGVzKTsKICAgZnByaW50Zih4bWxvdXQsICIlcyIsIFN0cmluZ1N0cmVhbVRvU3RyaW5nKCZzdHJl
YW0pLmNfc3RyKCkpOwogICBmY2xvc2UoeG1sb3V0KTsKIH0KQEAgLTM1MzQsOCArNDAwNSw2IEBA
IHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigK
IC8vIG1vZHVsZSB3aWxsIGNvbnNpc3Qgb2Ygb3JkaW5hcnkgRW5nbGlzaCB0ZXh0LgogLy8gSWYg
dGhpcyBtb2R1bGUgaXMgZXZlciBtb2RpZmllZCB0byBwcm9kdWNlIHZlcnNpb24gMS4xIFhNTCBv
dXRwdXQsCiAvLyBtb3N0IGludmFsaWQgY2hhcmFjdGVycyBjYW4gYmUgcmV0YWluZWQgdXNpbmcg
Y2hhcmFjdGVyIHJlZmVyZW5jZXMuCi0vLyBGSVhNRTogSXQgbWlnaHQgYmUgbmljZSB0byBoYXZl
IGEgbWluaW1hbGx5IGludmFzaXZlLCBodW1hbi1yZWFkYWJsZQotLy8gZXNjYXBpbmcgc2NoZW1l
IGZvciBpbnZhbGlkIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIGRyb3BwaW5nIHRoZW0uCiBzdGQ6
OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OkVzY2FwZVhtbCgKICAgICBjb25zdCBz
dGQ6OnN0cmluZyYgc3RyLCBib29sIGlzX2F0dHJpYnV0ZSkgewogICBNZXNzYWdlIG07CkBAIC0z
NjAwLDcgKzQwNjksNyBAQCBzdGQ6OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlJl
bW92ZUludmFsaWRYbWxDaGFyYWN0ZXJzKAogLy8gVGhpcyBpcyBob3cgR29vZ2xlIFRlc3QgY29u
Y2VwdHMgbWFwIHRvIHRoZSBEVEQ6CiAvLwogLy8gPHRlc3RzdWl0ZXMgbmFtZT0iQWxsVGVzdHMi
PiAgICAgICAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVW5pdFRlc3Qgb2JqZWN0Ci0vLyAgIDx0ZXN0
c3VpdGUgbmFtZT0idGVzdGNhc2UtbmFtZSI+ICA8LS0gY29ycmVzcG9uZHMgdG8gYSBUZXN0Q2Fz
ZSBvYmplY3QKKy8vICAgPHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0Y2FzZS1uYW1lIj4gIDwtLSBjb3Jy
ZXNwb25kcyB0byBhIFRlc3RTdWl0ZSBvYmplY3QKIC8vICAgICA8dGVzdGNhc2UgbmFtZT0idGVz
dC1uYW1lIj4gICAgIDwtLSBjb3JyZXNwb25kcyB0byBhIFRlc3RJbmZvIG9iamVjdAogLy8gICAg
ICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIj4uLi48L2ZhaWx1cmU+CiAvLyAgICAgICA8ZmFpbHVy
ZSBtZXNzYWdlPSIuLi4iPi4uLjwvZmFpbHVyZT4KQEAgLTM2MjQsMTIgKzQwOTMsMTEgQEAgc3Rh
dGljIGJvb2wgUG9ydGFibGVMb2NhbHRpbWUodGltZV90IHNlY29uZHMsIHN0cnVjdCB0bSogb3V0
KSB7CiAgIC8vIE1JTkdXIDx0aW1lLmg+IHByb3ZpZGVzIG5laXRoZXIgbG9jYWx0aW1lX3Igbm9y
IGxvY2FsdGltZV9zLCBidXQgdXNlcwogICAvLyBXaW5kb3dzJyBsb2NhbHRpbWUoKSwgd2hpY2gg
aGFzIGEgdGhyZWFkLWxvY2FsIHRtIGJ1ZmZlci4KICAgc3RydWN0IHRtKiB0bV9wdHIgPSBsb2Nh
bHRpbWUoJnNlY29uZHMpOyAgLy8gTk9MSU5UCi0gIGlmICh0bV9wdHIgPT0gTlVMTCkKLSAgICBy
ZXR1cm4gZmFsc2U7CisgIGlmICh0bV9wdHIgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogICAq
b3V0ID0gKnRtX3B0cjsKICAgcmV0dXJuIHRydWU7CiAjZWxzZQotICByZXR1cm4gbG9jYWx0aW1l
X3IoJnNlY29uZHMsIG91dCkgIT0gTlVMTDsKKyAgcmV0dXJuIGxvY2FsdGltZV9yKCZzZWNvbmRz
LCBvdXQpICE9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtMzYzOSwxMyArNDEwNywxNCBAQCBz
dGQ6OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxsaXMg
bXMpIHsKICAgc3RydWN0IHRtIHRpbWVfc3RydWN0OwogICBpZiAoIVBvcnRhYmxlTG9jYWx0aW1l
KHN0YXRpY19jYXN0PHRpbWVfdD4obXMgLyAxMDAwKSwgJnRpbWVfc3RydWN0KSkKICAgICByZXR1
cm4gIiI7Ci0gIC8vIFlZWVktTU0tRERUaGg6bW06c3MKKyAgLy8gWVlZWS1NTS1ERFRoaDptbTpz
cy5zc3MKICAgcmV0dXJuIFN0cmVhbWFibGVUb1N0cmluZyh0aW1lX3N0cnVjdC50bV95ZWFyICsg
MTkwMCkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3Qu
dG1fbW9uICsgMSkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9z
dHJ1Y3QudG1fbWRheSkgKyAiVCIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGlt
ZV9zdHJ1Y3QudG1faG91cikgKyAiOiIgKwogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIo
dGltZV9zdHJ1Y3QudG1fbWluKSArICI6IiArCi0gICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRo
Mih0aW1lX3N0cnVjdC50bV9zZWMpOworICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGlt
ZV9zdHJ1Y3QudG1fc2VjKSArICIuIiArCisgICAgICBTdHJpbmc6OkZvcm1hdEludFdpZHRoTihz
dGF0aWNfY2FzdDxpbnQ+KG1zICUgMTAwMCksIDMpOwogfQogCiAvLyBTdHJlYW1zIGFuIFhNTCBD
REFUQSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQu
CkBAIC0zNjU1LDcgKzQxMjQsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0
cHV0WG1sQ0RhdGFTZWN0aW9uKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgICpzdHJlYW0gPDwg
IjwhW0NEQVRBWyI7CiAgIGZvciAoOzspIHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuZXh0X3Nl
Z21lbnQgPSBzdHJzdHIoc2VnbWVudCwgIl1dPiIpOwotICAgIGlmIChuZXh0X3NlZ21lbnQgIT0g
TlVMTCkgeworICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gbnVsbHB0cikgewogICAgICAgc3RyZWFt
LT53cml0ZSgKICAgICAgICAgICBzZWdtZW50LCBzdGF0aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+
KG5leHRfc2VnbWVudCAtIHNlZ21lbnQpKTsKICAgICAgICpzdHJlYW0gPDwgIl1dPl1dJmd0Ozwh
W0NEQVRBWyI7CkBAIC0zNjc0LDcgKzQxNDMsNyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T3V0cHV0WG1sQXR0cmlidXRlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAog
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewogICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4mIGFsbG93ZWRfbmFtZXMgPQotICAgICAgR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9y
RWxlbWVudChlbGVtZW50X25hbWUpOworICAgICAgR2V0UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVz
Rm9yRWxlbWVudChlbGVtZW50X25hbWUpOwogCiAgIEdURVNUX0NIRUNLXyhzdGQ6OmZpbmQoYWxs
b3dlZF9uYW1lcy5iZWdpbigpLCBhbGxvd2VkX25hbWVzLmVuZCgpLCBuYW1lKSAhPQogICAgICAg
ICAgICAgICAgICAgIGFsbG93ZWRfbmFtZXMuZW5kKCkpCkBAIC0zNjg0LDQ3ICs0MTUzLDk3IEBA
IHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxBdHRyaWJ1dGUoCiAgICpz
dHJlYW0gPDwgIiAiIDw8IG5hbWUgPDwgIj1cIiIgPDwgRXNjYXBlWG1sQXR0cmlidXRlKHZhbHVl
KSA8PCAiXCIiOwogfQogCisvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRh
aW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0Lgordm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50
ZXI6Ok91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1bHQoCisgICAgOjpzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KSB7CisgIC8vIE91dHB1dCB0aGUgYm9p
bGVycGxhdGUgZm9yIGEgbWluaW1hbCB0ZXN0IHN1aXRlIHdpdGggb25lIHRlc3QuCisgICpzdHJl
YW0gPDwgIiAgPHRlc3RzdWl0ZSI7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0
c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWlsdXJlIik7CisgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGVzdHMiLCAiMSIpOworICBPdXRwdXRYbWxBdHRy
aWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgImZhaWx1cmVzIiwgIjEiKTsKKyAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJkaXNhYmxlZCIsICIwIik7CisgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAic2tpcHBlZCIsICIwIik7CisgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZXJyb3JzIiwgIjAiKTsKKyAg
T3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJ0aW1lIiwKKyAgICAgICAg
ICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhyZXN1bHQuZWxhcHNlZF90
aW1lKCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKAorICAgICAgc3RyZWFtLCAidGVzdHN1aXRl
IiwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShy
ZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgKnN0cmVhbSA8PCAiPiI7CisKKyAgLy8gT3V0
cHV0IHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBtaW5pbWFsIHRlc3QgY2FzZSB3aXRoIGEgc2luZ2xl
IHRlc3QuCisgICpzdHJlYW0gPDwgIiAgICA8dGVzdGNhc2UiOworICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCAidGVzdGNhc2UiLCAibmFtZSIsICIiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwgInRlc3RjYXNlIiwgInN0YXR1cyIsICJydW4iKTsKKyAgT3V0cHV0WG1sQXR0cmli
dXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJjb21wbGV0ZWQiKTsKKyAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgImNsYXNzbmFtZSIsICIiKTsKKyAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInRpbWUiLAorICAgICAgICAgICAg
ICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3VsdC5lbGFwc2VkX3RpbWUo
KSkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICBzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0
aW1lc3RhbXAiLAorICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEocmVzdWx0
LnN0YXJ0X3RpbWVzdGFtcCgpKSk7CisKKyAgLy8gT3V0cHV0IHRoZSBhY3R1YWwgdGVzdCByZXN1
bHQuCisgIE91dHB1dFhtbFRlc3RSZXN1bHQoc3RyZWFtLCByZXN1bHQpOworCisgIC8vIENvbXBs
ZXRlIHRoZSB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8ICIgIDwvdGVzdHN1aXRlPlxuIjsKK30K
KwogLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9iamVjdC4K
LS8vIEZJWE1FOiBUaGVyZSBpcyBhbHNvIHZhbHVlIGluIHByaW50aW5nIHByb3BlcnRpZXMgd2l0
aCB0aGUgcGxhaW4gcHJpbnRlci4KIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRw
dXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CiAgIGNvbnN0IFRl
c3RSZXN1bHQmIHJlc3VsdCA9ICp0ZXN0X2luZm8ucmVzdWx0KCk7Ci0gIGNvbnN0IHN0ZDo6c3Ry
aW5nIGtUZXN0Y2FzZSA9ICJ0ZXN0Y2FzZSI7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3Vp
dGUgPSAidGVzdGNhc2UiOwogCiAgIGlmICh0ZXN0X2luZm8uaXNfaW5fYW5vdGhlcl9zaGFyZCgp
KSB7CiAgICAgcmV0dXJuOwogICB9CiAKICAgKnN0cmVhbSA8PCAiICAgIDx0ZXN0Y2FzZSI7Ci0g
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgIm5hbWUiLCB0ZXN0X2luZm8u
bmFtZSgpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUi
LCB0ZXN0X2luZm8ubmFtZSgpKTsKIAotICBpZiAodGVzdF9pbmZvLnZhbHVlX3BhcmFtKCkgIT0g
TlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVl
X3BhcmFtIiwKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpICE9IG51bGxwdHIpIHsKKyAg
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidmFsdWVfcGFyYW0iLAog
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSk7CiAgIH0KLSAg
aWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0X2luZm8udHlwZV9wYXJh
bSgpKTsKKyAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gbnVsbHB0cikgeworICAgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFtIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSk7CiAgIH0KICAgaWYgKEdU
RVNUX0ZMQUcobGlzdF90ZXN0cykpIHsKLSAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBr
VGVzdGNhc2UsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSk7Ci0gICAgT3V0cHV0WG1sQXR0cmli
dXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsCisgICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwga1Rlc3RzdWl0ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpKTsKKyAgICBPdXRwdXRY
bWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAibGluZSIsCiAgICAgICAgICAgICAgICAg
ICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2luZm8ubGluZSgpKSk7CiAgICAgKnN0cmVh
bSA8PCAiIC8+XG4iOwogICAgIHJldHVybjsKICAgfQogCi0gIE91dHB1dFhtbEF0dHJpYnV0ZShz
dHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0s
IGtUZXN0c3VpdGUsICJzdGF0dXMiLAogICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnNo
b3VsZF9ydW4oKSA/ICJydW4iIDogIm5vdHJ1biIpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rl
c3RzdWl0ZSwgInJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8uc2hvdWxk
X3J1bigpCisgICAgICAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBwZWQoKSA/ICJz
a2lwcGVkIiA6ICJjb21wbGV0ZWQiKQorICAgICAgICAgICAgICAgICAgICAgICAgIDogInN1cHBy
ZXNzZWQiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWUi
LAogICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHJlc3Vs
dC5lbGFwc2VkX3RpbWUoKSkpOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNh
c2UsICJjbGFzc25hbWUiLCB0ZXN0X2Nhc2VfbmFtZSk7CisgIE91dHB1dFhtbEF0dHJpYnV0ZSgK
KyAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9j
aFRpbWVJbk1pbGxpc0FzSXNvODYwMShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImNsYXNzbmFtZSIsIHRlc3Rfc3Vp
dGVfbmFtZSk7CiAKKyAgT3V0cHV0WG1sVGVzdFJlc3VsdChzdHJlYW0sIHJlc3VsdCk7Cit9CisK
K3ZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0UmVzdWx0KDo6c3Rk
Ojpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpIHsKICAgaW50IGZhaWx1cmVz
ID0gMDsKKyAgaW50IHNraXBzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQudG90
YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcGFydCA9
IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKICAgICBpZiAocGFydC5mYWlsZWQoKSkgewot
ICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSkgeworICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSAm
JiBza2lwcyA9PSAwKSB7CiAgICAgICAgICpzdHJlYW0gPDwgIj5cbiI7CiAgICAgICB9CiAgICAg
ICBjb25zdCBzdGQ6OnN0cmluZyBsb2NhdGlvbiA9CkBAIC0zNzMyLDE4ICs0MjUxLDMxIEBAIHZv
aWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0
cmVhbSogc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CiAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CiAgICAgICAq
c3RyZWFtIDw8ICIgICAgICA8ZmFpbHVyZSBtZXNzYWdlPVwiIgotICAgICAgICAgICAgICA8PCBF
c2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKQorICAgICAgICAgICAgICA8PCBFc2Nh
cGVYbWxBdHRyaWJ1dGUoc3VtbWFyeSkKICAgICAgICAgICAgICAgPDwgIlwiIHR5cGU9XCJcIj4i
OwogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZGV0YWlsID0gbG9jYXRpb24gKyAiXG4iICsgcGFy
dC5tZXNzYWdlKCk7CiAgICAgICBPdXRwdXRYbWxDRGF0YVNlY3Rpb24oc3RyZWFtLCBSZW1vdmVJ
bnZhbGlkWG1sQ2hhcmFjdGVycyhkZXRhaWwpLmNfc3RyKCkpOwogICAgICAgKnN0cmVhbSA8PCAi
PC9mYWlsdXJlPlxuIjsKKyAgICB9IGVsc2UgaWYgKHBhcnQuc2tpcHBlZCgpKSB7CisgICAgICBp
ZiAoKytza2lwcyA9PSAxICYmIGZhaWx1cmVzID09IDApIHsKKyAgICAgICAgKnN0cmVhbSA8PCAi
PlxuIjsKKyAgICAgIH0KKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxvY2F0aW9uID0KKyAgICAg
ICAgICBpbnRlcm5hbDo6Rm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihwYXJ0
LmZpbGVfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIoKSk7CisgICAgICBjb25zdCBzdGQ6OnN0
cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5zdW1tYXJ5KCk7CisgICAgICAq
c3RyZWFtIDw8ICIgICAgICA8c2tpcHBlZCBtZXNzYWdlPVwiIgorICAgICAgICAgICAgICA8PCBF
c2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigpKSA8PCAiXCI+IjsKKyAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nIGRldGFpbCA9IGxvY2F0aW9uICsgIlxuIiArIHBhcnQubWVzc2FnZSgpOwor
ICAgICAgT3V0cHV0WG1sQ0RhdGFTZWN0aW9uKHN0cmVhbSwgUmVtb3ZlSW52YWxpZFhtbENoYXJh
Y3RlcnMoZGV0YWlsKS5jX3N0cigpKTsKKyAgICAgICpzdHJlYW0gPDwgIjwvc2tpcHBlZD5cbiI7
CiAgICAgfQogICB9CiAKLSAgaWYgKGZhaWx1cmVzID09IDAgJiYgcmVzdWx0LnRlc3RfcHJvcGVy
dHlfY291bnQoKSA9PSAwKSB7CisgIGlmIChmYWlsdXJlcyA9PSAwICYmIHNraXBzID09IDAgJiYg
cmVzdWx0LnRlc3RfcHJvcGVydHlfY291bnQoKSA9PSAwKSB7CiAgICAgKnN0cmVhbSA8PCAiIC8+
XG4iOwogICB9IGVsc2UgewotICAgIGlmIChmYWlsdXJlcyA9PSAwKSB7CisgICAgaWYgKGZhaWx1
cmVzID09IDAgJiYgc2tpcHMgPT0gMCkgewogICAgICAgKnN0cmVhbSA8PCAiPlxuIjsKICAgICB9
CiAgICAgT3V0cHV0WG1sVGVzdFByb3BlcnRpZXMoc3RyZWFtLCByZXN1bHQpOwpAQCAtMzc1MSwy
OSArNDI4MywzNiBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVz
dEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgfQogfQogCi0vLyBQcmludHMgYW4gWE1M
IHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci12b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0Q2FzZShzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RDYXNl
JiB0ZXN0X2Nhc2UpIHsKKy8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0
U3VpdGUgb2JqZWN0Cit2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0
U3VpdGUoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSB7CiAgIGNv
bnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdHN1aXRlIjsKICAgKnN0cmVhbSA8PCAi
ICA8IiA8PCBrVGVzdHN1aXRlOwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1
aXRlLCAibmFtZSIsIHRlc3RfY2FzZS5uYW1lKCkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKICAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwKLSAgICAgICAgICAgICAgICAg
ICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV90ZXN0X2NvdW50KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLnJl
cG9ydGFibGVfdGVzdF9jb3VudCgpKSk7CiAgIGlmICghR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkg
ewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJmYWlsdXJlcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UuZmFp
bGVkX3Rlc3RfY291bnQoKSkpOworICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9T
dHJpbmcodGVzdF9zdWl0ZS5mYWlsZWRfdGVzdF9jb3VudCgpKSk7CiAgICAgT3V0cHV0WG1sQXR0
cmlidXRlKAogICAgICAgICBzdHJlYW0sIGtUZXN0c3VpdGUsICJkaXNhYmxlZCIsCi0gICAgICAg
IFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2Nv
dW50KCkpKTsKKyAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rfc3VpdGUucmVwb3J0YWJs
ZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFt
LCBrVGVzdHN1aXRlLCAic2tpcHBlZCIsCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFi
bGVUb1N0cmluZyh0ZXN0X3N1aXRlLnNraXBwZWRfdGVzdF9jb3VudCgpKSk7CisKICAgICBPdXRw
dXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgIjAiKTsKKwogICAg
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3RfY2FzZS5lbGFw
c2VkX3RpbWUoKSkpOwotICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc1htbEF0dHJpYnV0
ZXModGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkp
KTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwg
InRpbWVzdGFtcCIsCisgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKHRl
c3Rfc3VpdGUuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0
aWVzQXNYbWxBdHRyaWJ1dGVzKHRlc3Rfc3VpdGUuYWRfaG9jX3Rlc3RfcmVzdWx0KCkpOwogICB9
CiAgICpzdHJlYW0gPDwgIj5cbiI7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLnRv
dGFsX3Rlc3RfY291bnQoKTsgKytpKSB7Ci0gICAgaWYgKHRlc3RfY2FzZS5HZXRUZXN0SW5mbyhp
KS0+aXNfcmVwb3J0YWJsZSgpKQotICAgICAgT3V0cHV0WG1sVGVzdEluZm8oc3RyZWFtLCB0ZXN0
X2Nhc2UubmFtZSgpLCAqdGVzdF9jYXNlLkdldFRlc3RJbmZvKGkpKTsKKyAgZm9yIChpbnQgaSA9
IDA7IGkgPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKSB7CisgICAgaWYgKHRl
c3Rfc3VpdGUuR2V0VGVzdEluZm8oaSktPmlzX3JlcG9ydGFibGUoKSkKKyAgICAgIE91dHB1dFht
bFRlc3RJbmZvKHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJ
bmZvKGkpKTsKICAgfQogICAqc3RyZWFtIDw8ICIgIDwvIiA8PCBrVGVzdHN1aXRlIDw8ICI+XG4i
OwogfQpAQCAtMzc5NCwxMSArNDMzMywxMSBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRl
cjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgICAgIHN0cmVhbSwg
a1Rlc3RzdWl0ZXMsICJkaXNhYmxlZCIsCiAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90
ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpKSk7CiAgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAiZXJyb3JzIiwgIjAiKTsKKyAgT3V0cHV0WG1sQXR0
cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0aW1lIiwKKyAgICAgICAgICAgICAgICAgICAg
IEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsK
ICAgT3V0cHV0WG1sQXR0cmlidXRlKAogICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlcywgInRpbWVz
dGFtcCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSh1bml0X3Rlc3Qu
c3RhcnRfdGltZXN0YW1wKCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3Rz
dWl0ZXMsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0Fz
U2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsKIAogICBpZiAoR1RFU1RfRkxBRyhz
aHVmZmxlKSkgewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAi
cmFuZG9tX3NlZWQiLApAQCAtMzgwOSwzMSArNDM0OCwzOCBAQCB2b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIik7
CiAgICpzdHJlYW0gPDwgIj5cbiI7CiAKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVz
dENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkKLSAgICAgIFByaW50WG1sVGVz
dENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgZm9yIChpbnQgaSA9
IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBp
ZiAodW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKS0+cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkgPiAw
KQorICAgICAgUHJpbnRYbWxUZXN0U3VpdGUoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RTdWl0
ZShpKSk7CiAgIH0KKworICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBv
ZiBvbmUgb2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVu
dCkgaW5jbHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rl
c3RfcmVzdWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRYbWxUZXN0U3VpdGVGb3JUZXN0UmVz
dWx0KHN0cmVhbSwgdW5pdF90ZXN0LmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsKKyAgfQorCiAgICpz
dHJlYW0gPDwgIjwvIiA8PCBrVGVzdHN1aXRlcyA8PCAiPlxuIjsKIH0KIAogdm9pZCBYbWxVbml0
VGVzdFJlc3VsdFByaW50ZXI6OlByaW50WG1sVGVzdHNMaXN0KAotICAgIHN0ZDo6b3N0cmVhbSog
c3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKSB7CisgICAg
c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0
X3N1aXRlcykgewogICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlcyA9ICJ0ZXN0c3VpdGVz
IjsKIAogICAqc3RyZWFtIDw8ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYt
OFwiPz5cbiI7CiAgICpzdHJlYW0gPDwgIjwiIDw8IGtUZXN0c3VpdGVzOwogCiAgIGludCB0b3Rh
bF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdF9jYXNlcy5zaXplKCk7
ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2FzZXNbaV0tPnRvdGFsX3Rlc3RfY291
bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlcykgeworICAgIHRvdGFs
X3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKTsKICAgfQogICBPdXRwdXRY
bWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgInRlc3RzIiwKICAgICAgICAgICAgICAg
ICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0b3RhbF90ZXN0cykpOwogICBPdXRwdXRYbWxBdHRy
aWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgIm5hbWUiLCAiQWxsVGVzdHMiKTsKICAgKnN0cmVh
bSA8PCAiPlxuIjsKIAotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgp
OyArK2kpIHsKLSAgICBQcmludFhtbFRlc3RDYXNlKHN0cmVhbSwgKnRlc3RfY2FzZXNbaV0pOwor
ICBmb3IgKGF1dG8gdGVzdF9zdWl0ZSA6IHRlc3Rfc3VpdGVzKSB7CisgICAgUHJpbnRYbWxUZXN0
U3VpdGUoc3RyZWFtLCAqdGVzdF9zdWl0ZSk7CiAgIH0KICAgKnN0cmVhbSA8PCAiPC8iIDw8IGtU
ZXN0c3VpdGVzIDw8ICI+XG4iOwogfQpAQCAtMzg3OCwxMSArNDQyNCwxMSBAQCBjbGFzcyBKc29u
VW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewog
IHB1YmxpYzoKICAgZXhwbGljaXQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcihjb25zdCBjaGFy
KiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKKyAgdm9pZCBPblRlc3RJdGVy
YXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgLy8gUHJpbnRzIGFuIEpTT04gc3VtbWFyeSBvZiBhbGwgdW5pdCB0ZXN0cy4KICAg
c3RhdGljIHZvaWQgUHJpbnRKc29uVGVzdExpc3QoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2Uq
PiYgdGVzdF9jYXNlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcyk7CiAKICBwcml2YXRlOgogICAvLyBS
ZXR1cm5zIGFuIEpTT04tZXNjYXBlZCBjb3B5IG9mIHRoZSBpbnB1dCBzdHJpbmcgc3RyLgpAQCAt
MzkwMywxNCArNDQ0OSwyNCBAQCBjbGFzcyBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVi
bGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBpbmRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBjb21tYSA9IHRydWUpOwogCisgIC8vIFN0cmVhbXMgYSB0ZXN0IHN1aXRlIEpTT04gc3Rh
bnphIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0LgorICAvLworICAvLyBSZXF1aXJl
czogcmVzdWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1dEpzb25UZXN0U3VpdGVGb3JU
ZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCk7CisKKyAg
Ly8gU3RyZWFtcyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0UmVzdWx0IG9iamVjdC4K
KyAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVh
bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYg
cmVzdWx0KTsKKwogICAvLyBTdHJlYW1zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJ
bmZvIG9iamVjdC4KICAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RJbmZvKDo6c3RkOjpvc3Ry
ZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiB0ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwogCi0gIC8vIFByaW50cyBhIEpTT04gcmVwcmVz
ZW50YXRpb24gb2YgYSBUZXN0Q2FzZSBvYmplY3QKLSAgc3RhdGljIHZvaWQgUHJpbnRKc29uVGVz
dENhc2UoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7CisgIC8vIFByaW50cyBhIEpTT04gcmVw
cmVzZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0CisgIHN0YXRpYyB2b2lkIFByaW50SnNv
blRlc3RTdWl0ZSg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQcmludHMg
YSBKU09OIHN1bW1hcnkgb2YgdW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0
aWMgdm9pZCBQcmludEpzb25Vbml0VGVzdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLApAQCAtNDAw
OSw3ICs0NTY1LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdEVwb2NoVGltZUluTWlsbGlz
QXNSRkMzMzM5KFRpbWVJbk1pbGxpcyBtcykgewogICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0
aDIodGltZV9zdHJ1Y3QudG1fc2VjKSArICJaIjsKIH0KIAotc3RhdGljIGlubGluZSBzdGQ6OnN0
cmluZyBJbmRlbnQoaW50IHdpZHRoKSB7CitzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIEluZGVu
dChzaXplX3Qgd2lkdGgpIHsKICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHdpZHRoLCAnICcpOwogfQog
CkBAIC00MDIxLDcgKzQ1NzcsNyBAQCB2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91
dHB1dEpzb25LZXkoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGluZGVudCwKICAgICBib29sIGNv
bW1hKSB7CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgYWxsb3dlZF9uYW1lcyA9
Ci0gICAgICBHZXRSZXNlcnZlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7Cisg
ICAgICBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7
CiAKICAgR1RFU1RfQ0hFQ0tfKHN0ZDo6ZmluZChhbGxvd2VkX25hbWVzLmJlZ2luKCksIGFsbG93
ZWRfbmFtZXMuZW5kKCksIG5hbWUpICE9CiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9uYW1l
cy5lbmQoKSkKQEAgLTQwNDEsNyArNDU5Nyw3IEBAIHZvaWQgSnNvblVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T3V0cHV0SnNvbktleSgKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgaW5kZW50LAogICAg
IGJvb2wgY29tbWEpIHsKICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBhbGxvd2Vk
X25hbWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9u
YW1lKTsKKyAgICAgIEdldFJlc2VydmVkT3V0cHV0QXR0cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVu
dF9uYW1lKTsKIAogICBHVEVTVF9DSEVDS18oc3RkOjpmaW5kKGFsbG93ZWRfbmFtZXMuYmVnaW4o
KSwgYWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0KICAgICAgICAgICAgICAgICAgICBhbGxv
d2VkX25hbWVzLmVuZCgpKQpAQCAtNDA1MywzOSArNDYwOSw5NyBAQCB2b2lkIEpzb25Vbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAgICAgKnN0cmVhbSA8PCAiLFxuIjsKIH0K
IAorLy8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgSlNPTiBzdGFuemEgY29udGFpbmluZyB0aGUgZ2l2
ZW4gdGVzdCByZXN1bHQuCit2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dEpz
b25UZXN0U3VpdGVGb3JUZXN0UmVzdWx0KAorICAgIDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNv
bnN0IFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZv
ciBhIG5ldyB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8IEluZGVudCg0KSA8PCAie1xuIjsKKyAg
T3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVG
YWlsdXJlIiwgSW5kZW50KDYpKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUi
LCAidGVzdHMiLCAxLCBJbmRlbnQoNikpOworICBpZiAoIUdURVNUX0ZMQUcobGlzdF90ZXN0cykp
IHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RzdWl0ZSIsICJmYWlsdXJlcyIsIDEs
IEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZGlz
YWJsZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1
aXRlIiwgInNraXBwZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFt
LCAidGVzdHN1aXRlIiwgImVycm9ycyIsIDAsIEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktl
eShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGltZSIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRU
aW1lSW5NaWxsaXNBc0R1cmF0aW9uKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAg
ICAgICAgICBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRl
IiwgInRpbWVzdGFtcCIsCisgICAgICAgICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxp
c0FzUkZDMzMzOShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpLAorICAgICAgICAgICAgICAgICAg
SW5kZW50KDYpKTsKKyAgfQorICAqc3RyZWFtIDw8IEluZGVudCg2KSA8PCAiXCJ0ZXN0c3VpdGVc
IjogW1xuIjsKKworICAvLyBPdXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZvciBhIG5ldyB0ZXN0IGNh
c2UuCisgICpzdHJlYW0gPDwgSW5kZW50KDgpIDw8ICJ7XG4iOworICBPdXRwdXRKc29uS2V5KHN0
cmVhbSwgInRlc3RjYXNlIiwgIm5hbWUiLCAiIiwgSW5kZW50KDEwKSk7CisgIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAic3RhdHVzIiwgIlJVTiIsIEluZGVudCgxMCkpOworICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIsICJDT01QTEVURUQiLCBJ
bmRlbnQoMTApKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1lc3Rh
bXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJl
c3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAgICAgICAgICAgSW5kZW50KDEwKSk7Cisg
IE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAidGltZSIsCisgICAgICAgICAgICAg
ICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1bHQuZWxhcHNlZF90aW1lKCkpLAor
ICAgICAgICAgICAgICAgIEluZGVudCgxMCkpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRl
c3RjYXNlIiwgImNsYXNzbmFtZSIsICIiLCBJbmRlbnQoMTApLCBmYWxzZSk7CisgICpzdHJlYW0g
PDwgVGVzdFByb3BlcnRpZXNBc0pzb24ocmVzdWx0LCBJbmRlbnQoMTApKTsKKworICAvLyBPdXRw
dXQgdGhlIGFjdHVhbCB0ZXN0IHJlc3VsdC4KKyAgT3V0cHV0SnNvblRlc3RSZXN1bHQoc3RyZWFt
LCByZXN1bHQpOworCisgIC8vIEZpbmlzaCB0aGUgdGVzdCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCAi
XG4iIDw8IEluZGVudCg2KSA8PCAiXVxuIiA8PCBJbmRlbnQoNCkgPDwgIn0iOworfQorCiAvLyBQ
cmludHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0Lgogdm9pZCBK
c29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpzdGQ6Om9zdHJl
YW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQgPSAq
dGVzdF9pbmZvLnJlc3VsdCgpOwotICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdGNhc2UgPSAidGVz
dGNhc2UiOworICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlID0gInRlc3RjYXNlIjsKICAg
Y29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVudCgxMCk7CiAKICAgKnN0cmVhbSA8PCBJ
bmRlbnQoOCkgPDwgIntcbiI7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJu
YW1lIiwgdGVzdF9pbmZvLm5hbWUoKSwga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFt
LCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfaW5mby5uYW1lKCksIGtJbmRlbnQpOwogCi0gIGlm
ICh0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSAhPSBOVUxMKSB7Ci0gICAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVlX3BhcmFtIiwKLSAgICAgICAgICAgICAgICAgIHRlc3Rf
aW5mby52YWx1ZV9wYXJhbSgpLCBrSW5kZW50KTsKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJh
bSgpICE9IG51bGxwdHIpIHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwg
InZhbHVlX3BhcmFtIiwgdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCksCisgICAgICAgICAgICAgICAg
ICBrSW5kZW50KTsKICAgfQotICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7
Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0
X2luZm8udHlwZV9wYXJhbSgpLAorICBpZiAodGVzdF9pbmZvLnR5cGVfcGFyYW0oKSAhPSBudWxs
cHRyKSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFt
IiwgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSwKICAgICAgICAgICAgICAgICAgIGtJbmRlbnQpOwog
ICB9CiAgIGlmIChHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0Y2FzZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKLSAg
ICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsIHRlc3RfaW5mby5saW5l
KCksIGtJbmRlbnQsIGZhbHNlKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0
ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5kZW50KTsKKyAgICBPdXRwdXRKc29uS2V5
KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImxpbmUiLCB0ZXN0X2luZm8ubGluZSgpLCBrSW5kZW50LCBm
YWxzZSk7CiAgICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAifSI7CiAgICAgcmV0
dXJuOwogICB9CiAKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIs
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAic3RhdHVzIiwKICAgICAgICAg
ICAgICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpID8gIlJVTiIgOiAiTk9UUlVOIiwga0luZGVu
dCk7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0
SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJyZXN1bHQiLAorICAgICAgICAgICAgICAgIHRl
c3RfaW5mby5zaG91bGRfcnVuKCkKKyAgICAgICAgICAgICAgICAgICAgPyAocmVzdWx0LlNraXBw
ZWQoKSA/ICJTS0lQUEVEIiA6ICJDT01QTEVURUQiKQorICAgICAgICAgICAgICAgICAgICA6ICJT
VVBQUkVTU0VEIiwKKyAgICAgICAgICAgICAgICBrSW5kZW50KTsKKyAgT3V0cHV0SnNvbktleShz
dHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lc3RhbXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVw
b2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAg
ICAgICAgICAgICAga0luZGVudCk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRl
LCAidGltZSIsCiAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihy
ZXN1bHQuZWxhcHNlZF90aW1lKCkpLCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0s
IGtUZXN0Y2FzZSwgImNsYXNzbmFtZSIsIHRlc3RfY2FzZV9uYW1lLCBrSW5kZW50LCBmYWxzZSk7
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiY2xhc3NuYW1lIiwgdGVzdF9z
dWl0ZV9uYW1lLCBrSW5kZW50LAorICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgKnN0cmVhbSA8
PCBUZXN0UHJvcGVydGllc0FzSnNvbihyZXN1bHQsIGtJbmRlbnQpOwogCisgIE91dHB1dEpzb25U
ZXN0UmVzdWx0KHN0cmVhbSwgcmVzdWx0KTsKK30KKwordm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpPdXRwdXRKc29uVGVzdFJlc3VsdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
ZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVu
dCgxMCk7CisKICAgaW50IGZhaWx1cmVzID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1
bHQudG90YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYg
cGFydCA9IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKQEAgLTQxMTAsNDAgKzQ3MjQsNDQg
QEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdEluZm8oOjpz
dGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg4KSA8PCAi
fSI7CiB9CiAKLS8vIFByaW50cyBhbiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ug
b2JqZWN0Ci12b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50SnNvblRlc3RDYXNl
KHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CisvLyBQcmludHMg
YW4gSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RTdWl0ZSBvYmplY3QKK3ZvaWQgSnNvblVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVGVzdFN1aXRlKAorICAgIHN0ZDo6b3N0cmVh
bSogc3RyZWFtLCBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIHsKICAgY29uc3Qgc3RkOjpz
dHJpbmcga1Rlc3RzdWl0ZSA9ICJ0ZXN0c3VpdGUiOwogICBjb25zdCBzdGQ6OnN0cmluZyBrSW5k
ZW50ID0gSW5kZW50KDYpOwogCiAgICpzdHJlYW0gPDwgSW5kZW50KDQpIDw8ICJ7XG4iOwotICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2Nhc2UubmFtZSgp
LCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIs
IHRlc3RfY2FzZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSwKKyAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0c3VpdGUsICJuYW1lIiwgdGVzdF9zdWl0ZS5uYW1lKCksIGtJbmRlbnQpOworICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRlc3RzIiwgdGVzdF9zdWl0ZS5yZXBv
cnRhYmxlX3Rlc3RfY291bnQoKSwKICAgICAgICAgICAgICAgICBrSW5kZW50KTsKICAgaWYgKCFH
VEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0
c3VpdGUsICJmYWlsdXJlcyIsIHRlc3RfY2FzZS5mYWlsZWRfdGVzdF9jb3VudCgpLAotICAgICAg
ICAgICAgICAgICAga0luZGVudCk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3Vp
dGUsICJmYWlsdXJlcyIsCisgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0
X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRl
LCAiZGlzYWJsZWQiLAotICAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLnJlcG9ydGFibGVfZGlz
YWJsZWRfdGVzdF9jb3VudCgpLCBrSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgIHRlc3Rfc3Vp
dGUucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1
dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJyb3JzIiwgMCwga0luZGVudCk7CisgICAg
T3V0cHV0SnNvbktleSgKKyAgICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZXN0YW1wIiwK
KyAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc1JGQzMzMzkodGVzdF9zdWl0ZS5zdGFy
dF90aW1lc3RhbXAoKSksCisgICAgICAgIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3Ry
ZWFtLCBrVGVzdHN1aXRlLCAidGltZSIsCi0gICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5N
aWxsaXNBc0R1cmF0aW9uKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSksCisgICAgICAgICAgICAg
ICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9uKHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1l
KCkpLAogICAgICAgICAgICAgICAgICAga0luZGVudCwgZmFsc2UpOwotICAgICpzdHJlYW0gPDwg
VGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrSW5k
ZW50KQorICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9zdWl0ZS5hZF9o
b2NfdGVzdF9yZXN1bHQoKSwga0luZGVudCkKICAgICAgICAgICAgIDw8ICIsXG4iOwogICB9CiAK
ICAgKnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZSA8PCAiXCI6IFtcbiI7
CiAKICAgYm9vbCBjb21tYSA9IGZhbHNlOwotICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2Fz
ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgIGlmICh0ZXN0X2Nhc2UuR2V0VGVzdElu
Zm8oaSktPmlzX3JlcG9ydGFibGUoKSkgeworICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3Rfc3Vp
dGUudG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKKyAgICBpZiAodGVzdF9zdWl0ZS5HZXRUZXN0
SW5mbyhpKS0+aXNfcmVwb3J0YWJsZSgpKSB7CiAgICAgICBpZiAoY29tbWEpIHsKICAgICAgICAg
KnN0cmVhbSA8PCAiLFxuIjsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbW1hID0gdHJ1ZTsK
ICAgICAgIH0KLSAgICAgIE91dHB1dEpzb25UZXN0SW5mbyhzdHJlYW0sIHRlc3RfY2FzZS5uYW1l
KCksICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSkpOworICAgICAgT3V0cHV0SnNvblRlc3RJbmZv
KHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGkpKTsK
ICAgICB9CiAgIH0KICAgKnN0cmVhbSA8PCAiXG4iIDw8IGtJbmRlbnQgPDwgIl1cbiIgPDwgSW5k
ZW50KDQpIDw8ICJ9IjsKQEAgLTQxODEsMzkgKzQ3OTksNDUgQEAgdm9pZCBKc29uVW5pdFRlc3RS
ZXN1bHRQcmludGVyOjpQcmludEpzb25Vbml0VGVzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAg
KnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rlc3RzdWl0ZXMgPDwgIlwiOiBbXG4iOwog
CiAgIGJvb2wgY29tbWEgPSBmYWxzZTsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGlmICh1bml0X3Rlc3QuR2V0VGVz
dENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgpID4gMCkgeworICBmb3IgKGludCBpID0g
MDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkgeworICAgIGlm
ICh1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDAp
IHsKICAgICAgIGlmIChjb21tYSkgewogICAgICAgICAqc3RyZWFtIDw8ICIsXG4iOwogICAgICAg
fSBlbHNlIHsKICAgICAgICAgY29tbWEgPSB0cnVlOwogICAgICAgfQotICAgICAgUHJpbnRKc29u
VGVzdENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpKTsKKyAgICAgIFByaW50
SnNvblRlc3RTdWl0ZShzdHJlYW0sICp1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpKTsKICAgICB9
CiAgIH0KIAorICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBvZiBvbmUg
b2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVudCkgaW5j
bHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVz
dWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRKc29uVGVzdFN1aXRlRm9yVGVzdFJlc3VsdChz
dHJlYW0sIHVuaXRfdGVzdC5hZF9ob2NfdGVzdF9yZXN1bHQoKSk7CisgIH0KKwogICAqc3RyZWFt
IDw8ICJcbiIgPDwga0luZGVudCA8PCAiXVxuIiA8PCAifVxuIjsKIH0KIAogdm9pZCBKc29uVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpQcmludEpzb25UZXN0TGlzdCgKLSAgICBzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNlcykgeworICAg
IHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVz
dF9zdWl0ZXMpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZXMgPSAidGVzdHN1aXRl
cyI7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQgPSBJbmRlbnQoMik7CiAgICpzdHJlYW0g
PDwgIntcbiI7CiAgIGludCB0b3RhbF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdGVzdF9jYXNlcy5zaXplKCk7ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3RfY2Fz
ZXNbaV0tPnRvdGFsX3Rlc3RfY291bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0
X3N1aXRlcykgeworICAgIHRvdGFsX3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291
bnQoKTsKICAgfQogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0ZXN0cyIs
IHRvdGFsX3Rlc3RzLCBrSW5kZW50KTsKIAogICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3Rz
dWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIiwga0luZGVudCk7CiAgICpzdHJlYW0gPDwga0luZGVu
dCA8PCAiXCIiIDw8IGtUZXN0c3VpdGVzIDw8ICJcIjogW1xuIjsKIAotICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kpIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0ZXN0X3N1aXRlcy5zaXplKCk7ICsraSkgewogICAgIGlmIChpICE9IDApIHsKICAgICAg
ICpzdHJlYW0gPDwgIixcbiI7CiAgICAgfQotICAgIFByaW50SnNvblRlc3RDYXNlKHN0cmVhbSwg
KnRlc3RfY2FzZXNbaV0pOworICAgIFByaW50SnNvblRlc3RTdWl0ZShzdHJlYW0sICp0ZXN0X3N1
aXRlc1tpXSk7CiAgIH0KIAogICAqc3RyZWFtIDw8ICJcbiIKQEAgLTQyNjksNyArNDg5Myw3IEBA
IHZvaWQgU3RyZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7
CiAgIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwogICBoaW50cy5haV9mYW1pbHkg
PSBBRl9VTlNQRUM7ICAgIC8vIFRvIGFsbG93IGJvdGggSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMu
CiAgIGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0gIGFkZHJpbmZvKiBzZXJ2aW5m
byA9IE5VTEw7CisgIGFkZHJpbmZvKiBzZXJ2aW5mbyA9IG51bGxwdHI7CiAKICAgLy8gVXNlIHRo
ZSBnZXRhZGRyaW5mbygpIHRvIGdldCBhIGxpbmtlZCBsaXN0IG9mIElQIGFkZHJlc3NlcyBmb3IK
ICAgLy8gdGhlIGdpdmVuIGhvc3QgbmFtZS4KQEAgLTQyODEsNyArNDkwNSw3IEBAIHZvaWQgU3Ry
ZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7CiAgIH0KIAog
ICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSByZXN1bHRzIGFuZCBjb25uZWN0IHRvIHRoZSBmaXJz
dCB3ZSBjYW4uCi0gIGZvciAoYWRkcmluZm8qIGN1cl9hZGRyID0gc2VydmluZm87IHNvY2tmZF8g
PT0gLTEgJiYgY3VyX2FkZHIgIT0gTlVMTDsKKyAgZm9yIChhZGRyaW5mbyogY3VyX2FkZHIgPSBz
ZXJ2aW5mbzsgc29ja2ZkXyA9PSAtMSAmJiBjdXJfYWRkciAhPSBudWxscHRyOwogICAgICAgIGN1
cl9hZGRyID0gY3VyX2FkZHItPmFpX25leHQpIHsKICAgICBzb2NrZmRfID0gc29ja2V0KAogICAg
ICAgICBjdXJfYWRkci0+YWlfZmFtaWx5LCBjdXJfYWRkci0+YWlfc29ja3R5cGUsIGN1cl9hZGRy
LT5haV9wcm90b2NvbCk7CkBAIC00MzkxLDYgKzUwMTUsNyBAQCBjbGFzcyBTY29wZWRQcmVtYXR1
cmVFeGl0RmlsZSB7CiAgIH0KIAogICB+U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUoKSB7CisjaWYg
IWRlZmluZWQgR1RFU1RfT1NfRVNQODI2NgogICAgIGlmICghcHJlbWF0dXJlX2V4aXRfZmlsZXBh
dGhfLmVtcHR5KCkpIHsKICAgICAgIGludCByZXR2YWwgPSByZW1vdmUocHJlbWF0dXJlX2V4aXRf
ZmlsZXBhdGhfLmNfc3RyKCkpOwogICAgICAgaWYgKHJldHZhbCkgewpAQCAtNDM5OSw2ICs1MDI0
LDcgQEAgY2xhc3MgU2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCByZXR2YWw7CiAgICAgICB9CiAgICAgfQorI2VuZGlmCiAgIH0KIAogIHByaXZh
dGU6CkBAIC00NDEzLDkgKzUwMzksOCBAQCBjbGFzcyBTY29wZWRQcmVtYXR1cmVFeGl0RmlsZSB7
CiAKIFRlc3RFdmVudExpc3RlbmVyczo6VGVzdEV2ZW50TGlzdGVuZXJzKCkKICAgICA6IHJlcGVh
dGVyXyhuZXcgaW50ZXJuYWw6OlRlc3RFdmVudFJlcGVhdGVyKCkpLAotICAgICAgZGVmYXVsdF9y
ZXN1bHRfcHJpbnRlcl8oTlVMTCksCi0gICAgICBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKE5VTEwp
IHsKLX0KKyAgICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfKG51bGxwdHIpLAorICAgICAgZGVm
YXVsdF94bWxfZ2VuZXJhdG9yXyhudWxscHRyKSB7fQogCiBUZXN0RXZlbnRMaXN0ZW5lcnM6On5U
ZXN0RXZlbnRMaXN0ZW5lcnMoKSB7IGRlbGV0ZSByZXBlYXRlcl87IH0KIApAQCAtNDQzMiw5ICs1
MDU3LDkgQEAgdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OkFwcGVuZChUZXN0RXZlbnRMaXN0ZW5l
ciogbGlzdGVuZXIpIHsKIC8vIE5VTEwgaWYgdGhlIGxpc3RlbmVyIGlzIG5vdCBmb3VuZCBpbiB0
aGUgbGlzdC4KIFRlc3RFdmVudExpc3RlbmVyKiBUZXN0RXZlbnRMaXN0ZW5lcnM6OlJlbGVhc2Uo
VGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7CiAgIGlmIChsaXN0ZW5lciA9PSBkZWZhdWx0
X3Jlc3VsdF9wcmludGVyXykKLSAgICBkZWZhdWx0X3Jlc3VsdF9wcmludGVyXyA9IE5VTEw7Cisg
ICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBudWxscHRyOwogICBlbHNlIGlmIChsaXN0ZW5l
ciA9PSBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKQotICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8g
PSBOVUxMOworICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBudWxscHRyOwogICByZXR1cm4g
cmVwZWF0ZXJfLT5SZWxlYXNlKGxpc3RlbmVyKTsKIH0KIApAQCAtNDQ1Myw4ICs1MDc4LDcgQEAg
dm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKFRlc3RFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2Uo
ZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8pOwogICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfID0g
bGlzdGVuZXI7Ci0gICAgaWYgKGxpc3RlbmVyICE9IE5VTEwpCi0gICAgICBBcHBlbmQobGlzdGVu
ZXIpOworICAgIGlmIChsaXN0ZW5lciAhPSBudWxscHRyKSBBcHBlbmQobGlzdGVuZXIpOwogICB9
CiB9CiAKQEAgLTQ0NjksOCArNTA5Myw3IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTZXRE
ZWZhdWx0WG1sR2VuZXJhdG9yKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8v
IGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyk7CiAgICAg
ZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyA9IGxpc3RlbmVyOwotICAgIGlmIChsaXN0ZW5lciAhPSBO
VUxMKQotICAgICAgQXBwZW5kKGxpc3RlbmVyKTsKKyAgICBpZiAobGlzdGVuZXIgIT0gbnVsbHB0
cikgQXBwZW5kKGxpc3RlbmVyKTsKICAgfQogfQogCkBAIC00NDk0LDUyICs1MTE3LDY2IEBAIHZv
aWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTdXBwcmVzc0V2ZW50Rm9yd2FyZGluZygpIHsKIC8vIGNh
bGwgdGhpcyBiZWZvcmUgbWFpbigpIHN0YXJ0cywgZnJvbSB3aGljaCBwb2ludCBvbiB0aGUgcmV0
dXJuCiAvLyB2YWx1ZSB3aWxsIG5ldmVyIGNoYW5nZS4KIFVuaXRUZXN0KiBVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKSB7Ci0gIC8vIFdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDIDcuMSBpbiBvcHRpbWl6
ZWQgbW9kZSwgZGVzdHJveWluZyB0aGUKLSAgLy8gVW5pdFRlc3Qgb2JqZWN0IHVwb24gZXhpdGlu
ZyB0aGUgcHJvZ3JhbSBtZXNzZXMgdXAgdGhlIGV4aXQgY29kZSwKLSAgLy8gY2F1c2luZyBzdWNj
ZXNzZnVsIHRlc3RzIHRvIGFwcGVhciBmYWlsZWQuICBXZSBoYXZlIHRvIHVzZSBhCi0gIC8vIGRp
ZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIGNhc2UgdG8gYnlwYXNzIHRoZSBjb21waWxl
ciBidWcuCi0gIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gbWFrZXMgdGhlIGNvbXBpbGVyIGhhcHB5
LCBhdCB0aGUgY29zdCBvZgotICAvLyBsZWFraW5nIHRoZSBVbml0VGVzdCBvYmplY3QuCi0KICAg
Ly8gQ29kZUdlYXIgQysrQnVpbGRlciBpbnNpc3RzIG9uIGEgcHVibGljIGRlc3RydWN0b3IgZm9y
IHRoZQogICAvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiAgVXNlIHRoaXMgaW1wbGVtZW50YXRp
b24gdG8ga2VlcCBnb29kIE9PCiAgIC8vIGRlc2lnbiB3aXRoIHByaXZhdGUgZGVzdHJ1Y3Rvci4K
IAotI2lmIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmluZWQo
X19CT1JMQU5EQ19fKQorI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKQogICBzdGF0aWMgVW5pdFRl
c3QqIGNvbnN0IGluc3RhbmNlID0gbmV3IFVuaXRUZXN0OwogICByZXR1cm4gaW5zdGFuY2U7CiAj
ZWxzZQogICBzdGF0aWMgVW5pdFRlc3QgaW5zdGFuY2U7CiAgIHJldHVybiAmaW5zdGFuY2U7Ci0j
ZW5kaWYgIC8vIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZpbmVkKF9ERUJVRykpIHx8IGRlZmlu
ZWQoX19CT1JMQU5EQ19fKQorI2VuZGlmICAvLyBkZWZpbmVkKF9fQk9STEFORENfXykKIH0KIAot
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVz
dDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCkt
PnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3Vj
Y2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdDo6c3VjY2Vzc2Z1bF90ZXN0X3N1aXRl
X2NvdW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgpLT5zdWNjZXNzZnVsX3Rlc3Rfc3VpdGVf
Y291bnQoKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0IGNhc2VzLgot
aW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4g
aW1wbCgpLT5mYWlsZWRfdGVzdF9jYXNlX2NvdW50KCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
ZmFpbGVkIHRlc3Qgc3VpdGVzLgoraW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9zdWl0ZV9jb3Vu
dCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKTsK
IH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0
Ojp0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBpbXBsKCktPnRvdGFs
X3Rlc3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRl
cy4KK2ludCBVbml0VGVzdDo6dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0
dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogfQogCi0vLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3QgY2FzZXMgdGhhdCBjb250YWluIGF0IGxlYXN0IG9uZSB0ZXN0Cisv
LyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29udGFpbiBhdCBsZWFz
dCBvbmUgdGVzdAogLy8gdGhhdCBzaG91bGQgcnVuLgoraW50IFVuaXRUZXN0Ojp0ZXN0X3N1aXRl
X3RvX3J1bl9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dGVzdF9zdWl0ZV90b19y
dW5fY291bnQoKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworaW50
IFVuaXRUZXN0OjpzdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJu
IGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6
OmZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPmZhaWxl
ZF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6OnRvdGFsX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
OworfQogaW50IFVuaXRUZXN0Ojp0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3QgewotICBy
ZXR1cm4gaW1wbCgpLT50ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCk7CisgIHJldHVybiBpbXBsKCkt
PnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCk7CiB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwg
dGVzdHMuCiBpbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAg
cmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCk7CiB9CiAKKy8vIEdldHMgdGhl
IG51bWJlciBvZiBza2lwcGVkIHRlc3RzLgoraW50IFVuaXRUZXN0Ojpza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnNraXBwZWRfdGVzdF9jb3VudCgpOworfQor
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogaW50IFVuaXRUZXN0OjpmYWls
ZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsgcmV0dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3RfY291bnQo
KTsgfQogCkBAIC00NTc1LDI5ICs1MjEyLDM3IEBAIGludGVybmFsOjpUaW1lSW5NaWxsaXMgVW5p
dFRlc3Q6OmVsYXBzZWRfdGltZSgpIGNvbnN0IHsKICAgcmV0dXJuIGltcGwoKS0+ZWxhcHNlZF90
aW1lKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBwYXNzZWQgKGku
ZS4gYWxsIHRlc3QgY2FzZXMgcGFzc2VkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKy8vIHBhc3NlZCku
CiBib29sIFVuaXRUZXN0OjpQYXNzZWQoKSBjb25zdCB7IHJldHVybiBpbXBsKCktPlBhc3NlZCgp
OyB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVuaXQgdGVzdCBmYWlsZWQgKGkuZS4gc29t
ZSB0ZXN0IGNhc2UgZmFpbGVkCi0vLyBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMg
ZmFpbGVkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IGZh
aWxlZCAoaS5lLiBzb21lIHRlc3Qgc3VpdGUKKy8vIGZhaWxlZCBvciBzb21ldGhpbmcgb3V0c2lk
ZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KIGJvb2wgVW5pdFRlc3Q6OkZhaWxlZCgpIGNvbnN0IHsg
cmV0dXJuIGltcGwoKS0+RmFpbGVkKCk7IH0KIAotLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2Ug
YW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLS8vIHRvdGFs
X3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJu
cyBOVUxMLgorLy8gR2V0cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBz
dWl0ZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bworLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
IC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorY29uc3QgVGVz
dFN1aXRlKiBVbml0VGVzdDo6R2V0VGVzdFN1aXRlKGludCBpKSBjb25zdCB7CisgIHJldHVybiBp
bXBsKCktPkdldFRlc3RTdWl0ZShpKTsKK30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRl
ZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwogY29uc3QgVGVzdENhc2UqIFVuaXRUZXN0OjpHZXRUZXN0Q2FzZShpbnQgaSkgY29u
c3QgewogICByZXR1cm4gaW1wbCgpLT5HZXRUZXN0Q2FzZShpKTsKIH0KKyNlbmRpZiAgLy8gIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBSZXR1cm5zIHRoZSBUZXN0UmVz
dWx0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVzdCBmYWlsdXJlcyBhbmQKLS8vIHByb3Bl
cnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IGNhc2VzLgorLy8gcHJvcGVy
dGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRlc3Qgc3VpdGVzLgogY29uc3QgVGVz
dFJlc3VsdCYgVW5pdFRlc3Q6OmFkX2hvY190ZXN0X3Jlc3VsdCgpIGNvbnN0IHsKICAgcmV0dXJu
ICppbXBsKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwogfQogCi0vLyBHZXRzIHRoZSBpLXRoIHRl
c3QgY2FzZSBhbW9uZyBhbGwgdGhlIHRlc3QgY2FzZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bwot
Ly8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdl
LCByZXR1cm5zIE5VTEwuCi1UZXN0Q2FzZSogVW5pdFRlc3Q6OkdldE11dGFibGVUZXN0Q2FzZShp
bnQgaSkgewotICByZXR1cm4gaW1wbCgpLT5HZXRNdXRhYmxlVGVzdENhc2UoaSk7CisvLyBHZXRz
IHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFu
Z2UgZnJvbSAwIHRvCisvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5v
dCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCitUZXN0U3VpdGUqIFVuaXRUZXN0OjpHZXRN
dXRhYmxlVGVzdFN1aXRlKGludCBpKSB7CisgIHJldHVybiBpbXBsKCktPkdldE11dGFibGVTdWl0
ZUNhc2UoaSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGxpc3Qgb2YgZXZlbnQgbGlzdGVuZXJzIHRo
YXQgY2FuIGJlIHVzZWQgdG8gdHJhY2sgZXZlbnRzCkBAIC00NjE3LDggKzUyNjIsOCBAQCBUZXN0
RXZlbnRMaXN0ZW5lcnMmIFVuaXRUZXN0OjpsaXN0ZW5lcnMoKSB7CiAvLyBXZSBkb24ndCBwcm90
ZWN0IHRoaXMgdW5kZXIgbXV0ZXhfLCBhcyB3ZSBvbmx5IHN1cHBvcnQgY2FsbGluZyBpdAogLy8g
ZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBFbnZpcm9ubWVudCogVW5pdFRlc3Q6OkFkZEVudmlyb25t
ZW50KEVudmlyb25tZW50KiBlbnYpIHsKLSAgaWYgKGVudiA9PSBOVUxMKSB7Ci0gICAgcmV0dXJu
IE5VTEw7CisgIGlmIChlbnYgPT0gbnVsbHB0cikgeworICAgIHJldHVybiBudWxscHRyOwogICB9
CiAKICAgaW1wbF8tPmVudmlyb25tZW50cygpLnB1c2hfYmFjayhlbnYpOwpAQCAtNDY0MiwyNSAr
NTI4NywyNCBAQCB2b2lkIFVuaXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKICAgaWYgKGltcGxf
LT5ndGVzdF90cmFjZV9zdGFjaygpLnNpemUoKSA+IDApIHsKICAgICBtc2cgPDwgIlxuIiA8PCBH
VEVTVF9OQU1FXyA8PCAiIHRyYWNlOiI7CiAKLSAgICBmb3IgKGludCBpID0gc3RhdGljX2Nhc3Q8
aW50PihpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXplKCkpOwotICAgICAgICAgaSA+IDA7
IC0taSkgeworICAgIGZvciAoc2l6ZV90IGkgPSBpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5z
aXplKCk7IGkgPiAwOyAtLWkpIHsKICAgICAgIGNvbnN0IGludGVybmFsOjpUcmFjZUluZm8mIHRy
YWNlID0gaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKClbaSAtIDFdOwogICAgICAgbXNnIDw8ICJc
biIgPDwgaW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlvbih0cmFjZS5maWxlLCB0cmFjZS5saW5l
KQogICAgICAgICAgIDw8ICIgIiA8PCB0cmFjZS5tZXNzYWdlOwogICAgIH0KICAgfQogCi0gIGlm
IChvc19zdGFja190cmFjZS5jX3N0cigpICE9IE5VTEwgJiYgIW9zX3N0YWNrX3RyYWNlLmVtcHR5
KCkpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlLmNfc3RyKCkgIT0gbnVsbHB0ciAmJiAhb3Nfc3Rh
Y2tfdHJhY2UuZW1wdHkoKSkgewogICAgIG1zZyA8PCBpbnRlcm5hbDo6a1N0YWNrVHJhY2VNYXJr
ZXIgPDwgb3Nfc3RhY2tfdHJhY2U7CiAgIH0KIAotICBjb25zdCBUZXN0UGFydFJlc3VsdCByZXN1
bHQgPQotICAgIFRlc3RQYXJ0UmVzdWx0KHJlc3VsdF90eXBlLCBmaWxlX25hbWUsIGxpbmVfbnVt
YmVyLAotICAgICAgICAgICAgICAgICAgIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgY29u
c3QgVGVzdFBhcnRSZXN1bHQgcmVzdWx0ID0gVGVzdFBhcnRSZXN1bHQoCisgICAgICByZXN1bHRf
dHlwZSwgZmlsZV9uYW1lLCBsaW5lX251bWJlciwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwog
ICBpbXBsXy0+R2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRUaHJlYWQoKS0+CiAg
ICAgICBSZXBvcnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOwogCi0gIGlmIChyZXN1bHRfdHlwZSAh
PSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpIHsKKyAgaWYgKHJlc3VsdF90eXBlICE9IFRlc3RQ
YXJ0UmVzdWx0OjprU3VjY2VzcyAmJgorICAgICAgcmVzdWx0X3R5cGUgIT0gVGVzdFBhcnRSZXN1
bHQ6OmtTa2lwKSB7CiAgICAgLy8gZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSB0YWtlcyBwcmVjZWRl
bmNlIG92ZXIKICAgICAvLyBndGVzdF90aHJvd19vbl9mYWlsdXJlLiAgVGhpcyBhbGxvd3MgYSB1
c2VyIHRvIHNldCB0aGUgbGF0dGVyCiAgICAgLy8gaW4gdGhlIGNvZGUgKHBlcmhhcHMgaW4gb3Jk
ZXIgdG8gdXNlIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMKQEAgLTQ2NzgsMTEgKzUzMjIsMTAgQEAg
dm9pZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCiAgICAgICAvLyB3aXRoIGNsYW5nL2dj
YyB3ZSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qgb24geDg2IGJ5IGludm9raW5nIGludDMK
ICAgICAgIGFzbSgiaW50MyIpOwogI2Vsc2UKLSAgICAgIC8vIERlcmVmZXJlbmNlIE5VTEwgdGhy
b3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVudCB0aGUgY29tcGlsZXIKKyAgICAgIC8v
IERlcmVmZXJlbmNlIG51bGxwdHIgdGhyb3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVu
dCB0aGUgY29tcGlsZXIKICAgICAgIC8vIGZyb20gcmVtb3ZpbmcuIFdlIHVzZSB0aGlzIHJhdGhl
ciB0aGFuIGFib3J0KCkgb3IgX19idWlsdGluX3RyYXAoKSBmb3IKLSAgICAgIC8vIHBvcnRhYmls
aXR5OiBTeW1iaWFuIGRvZXNuJ3QgaW1wbGVtZW50IGFib3J0KCkgd2VsbCwgYW5kIHNvbWUgZGVi
dWdnZXJzCi0gICAgICAvLyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgotICAgICAgKnN0
YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KE5VTEwpID0gMTsKKyAgICAgIC8vIHBvcnRhYmlsaXR5
OiBzb21lIGRlYnVnZ2VycyBkb24ndCBjb3JyZWN0bHkgdHJhcCBhYm9ydCgpLgorICAgICAgKnN0
YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KG51bGxwdHIpID0gMTsKICNlbmRpZiAgLy8gR1RFU1Rf
T1NfV0lORE9XUwogICAgIH0gZWxzZSBpZiAoR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSkg
ewogI2lmIEdURVNUX0hBU19FWENFUFRJT05TCkBAIC00Njk3LDggKzUzNDAsOCBAQCB2b2lkIFVu
aXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKIH0KIAogLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0
byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJvbQotLy8gaW5z
aWRlIGEgdGVzdCwgdG8gY3VycmVudCBUZXN0Q2FzZSdzIGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hl
biBpbnZva2VkCi0vLyBmcm9tIFNldFVwVGVzdENhc2Ugb3IgVGVhckRvd25UZXN0Q2FzZSwgb3Ig
dG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKKy8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQg
VGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKKy8vIGZyb20gU2V0
VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVy
dHkgc2V0CiAvLyB3aGVuIGludm9rZWQgZWxzZXdoZXJlLiAgSWYgdGhlIHJlc3VsdCBhbHJlYWR5
IGNvbnRhaW5zIGEgcHJvcGVydHkgd2l0aAogLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFsdWUgd2ls
bCBiZSB1cGRhdGVkLgogdm9pZCBVbml0VGVzdDo6UmVjb3JkUHJvcGVydHkoY29uc3Qgc3RkOjpz
dHJpbmcmIGtleSwKQEAgLTQ3MzcsOCArNTM4MCw5IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewog
ICAvLyB0aGF0IHVuZGVyc3RhbmRzIHRoZSBwcmVtYXR1cmUtZXhpdC1maWxlIHByb3RvY29sIHRv
IHJlcG9ydCB0aGUKICAgLy8gdGVzdCBhcyBoYXZpbmcgZmFpbGVkLgogICBjb25zdCBpbnRlcm5h
bDo6U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgcHJlbWF0dXJlX2V4aXRfZmlsZSgKLSAgICAgIGlu
X2RlYXRoX3Rlc3RfY2hpbGRfcHJvY2VzcyA/Ci0gICAgICBOVUxMIDogaW50ZXJuYWw6OnBvc2l4
OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKKyAgICAgIGluX2RlYXRoX3Rl
c3RfY2hpbGRfcHJvY2VzcworICAgICAgICAgID8gbnVsbHB0cgorICAgICAgICAgIDogaW50ZXJu
YWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklMRSIpKTsKIAogICAvLyBD
YXB0dXJlcyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKS4gIFRoaXMg
dmFsdWUgd2lsbCBiZQogICAvLyB1c2VkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHByb2dyYW0u
CkBAIC00NzYzLDIyICs1NDA3LDI2IEBAIGludCBVbml0VGVzdDo6UnVuKCkgewogICAgIF9zZXRf
ZXJyb3JfbW9kZShfT1VUX1RPX1NUREVSUik7CiAjIGVuZGlmCiAKLSMgaWYgX01TQ19WRVIgPj0g
MTQwMCAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKKyMgaWYgZGVmaW5lZChfTVNDX1ZFUikg
JiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAgICAgLy8gSW4gdGhlIGRlYnVnIHZlcnNpb24s
IFZpc3VhbCBTdHVkaW8gcG9wcyB1cCBhIHNlcGFyYXRlIGRpYWxvZwogICAgIC8vIG9mZmVyaW5n
IGEgY2hvaWNlIHRvIGRlYnVnIHRoZSBhYm9ydGVkIHByb2dyYW0uIFdlIG5lZWQgdG8gc3VwcHJl
c3MKICAgICAvLyB0aGlzIGRpYWxvZyBvciBpdCB3aWxsIHBvcCB1cCBmb3IgZXZlcnkgRVhQRUNU
L0FTU0VSVF9ERUFUSCBzdGF0ZW1lbnQKICAgICAvLyBleGVjdXRlZC4gR29vZ2xlIFRlc3Qgd2ls
bCBub3RpZnkgdGhlIHVzZXIgb2YgYW55IHVuZXhwZWN0ZWQKICAgICAvLyBmYWlsdXJlIHZpYSBz
dGRlcnIuCi0gICAgLy8KLSAgICAvLyBWQysrIGRvZXNuJ3QgZGVmaW5lIF9zZXRfYWJvcnRfYmVo
YXZpb3IoKSBwcmlvciB0byB0aGUgdmVyc2lvbiA4LjAuCi0gICAgLy8gVXNlcnMgb2YgcHJpb3Ig
VkMgdmVyc2lvbnMgc2hhbGwgc3VmZmVyIHRoZSBhZ29ueSBhbmQgcGFpbiBvZgotICAgIC8vIGNs
aWNraW5nIHRocm91Z2ggdGhlIGNvdW50bGVzcyBkZWJ1ZyBkaWFsb2dzLgotICAgIC8vIEZJWE1F
OiBmaW5kIGEgd2F5IHRvIHN1cHByZXNzIHRoZSBhYm9ydCBkaWFsb2coKSBpbiB0aGUKLSAgICAv
LyBkZWJ1ZyBtb2RlIHdoZW4gY29tcGlsZWQgd2l0aCBWQyA3LjEgb3IgbG93ZXIuCiAgICAgaWYg
KCFHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKQogICAgICAgX3NldF9hYm9ydF9iZWhhdmlv
cigKICAgICAgICAgICAweDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
Q2xlYXIgdGhlIGZvbGxvd2luZyBmbGFnczoKICAgICAgICAgICBfV1JJVEVfQUJPUlRfTVNHIHwg
X0NBTExfUkVQT1JURkFVTFQpOyAgLy8gcG9wLXVwIHdpbmRvdywgY29yZSBkdW1wLgorCisgICAg
Ly8gSW4gZGVidWcgbW9kZSwgdGhlIFdpbmRvd3MgQ1JUIGNhbiBjcmFzaCB3aXRoIGFuIGFzc2Vy
dGlvbiBvdmVyIGludmFsaWQKKyAgICAvLyBpbnB1dCAoZS5nLiBwYXNzaW5nIGFuIGludmFsaWQg
ZmlsZSBkZXNjcmlwdG9yKS4gIFRoZSBkZWZhdWx0IGhhbmRsaW5nCisgICAgLy8gZm9yIHRoZXNl
IGFzc2VydGlvbnMgaXMgdG8gcG9wIHVwIGEgZGlhbG9nIGFuZCB3YWl0IGZvciB1c2VyIGlucHV0
LgorICAgIC8vIEluc3RlYWQgYXNrIHRoZSBDUlQgdG8gZHVtcCBzdWNoIGFzc2VydGlvbnMgdG8g
c3RkZXJyIG5vbi1pbnRlcmFjdGl2ZWx5LgorICAgIGlmICghSXNEZWJ1Z2dlclByZXNlbnQoKSkg
eworICAgICAgKHZvaWQpX0NydFNldFJlcG9ydE1vZGUoX0NSVF9BU1NFUlQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfQ1JUREJHX01PREVfRklMRSB8IF9DUlREQkdfTU9ERV9ERUJV
Ryk7CisgICAgICAodm9pZClfQ3J0U2V0UmVwb3J0RmlsZShfQ1JUX0FTU0VSVCwgX0NSVERCR19G
SUxFX1NUREVSUik7CisgICAgfQogIyBlbmRpZgogICB9CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJ
TkRPV1MKQEAgLTQ3OTUsMTMgKzU0NDMsMjIgQEAgY29uc3QgY2hhciogVW5pdFRlc3Q6Om9yaWdp
bmFsX3dvcmtpbmdfZGlyKCkgY29uc3QgewogICByZXR1cm4gaW1wbF8tPm9yaWdpbmFsX3dvcmtp
bmdfZGlyXy5jX3N0cigpOwogfQogCi0vLyBSZXR1cm5zIHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9y
IHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKy8vIFJldHVybnMgdGhlIFRlc3RT
dWl0ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKIC8vIG9y
IE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgorY29uc3QgVGVzdFN1aXRlKiBVbml0VGVzdDo6
Y3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QKKyAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRl
eF8pIHsKKyAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2NrKCZtdXRleF8pOworICByZXR1cm4gaW1w
bF8tPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworfQorCisvLyBMZWdhY3kgQVBJIGlzIHN0aWxsIGF2
YWlsYWJsZSBidXQgZGVwcmVjYXRlZAorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KIGNvbnN0IFRlc3RDYXNlKiBVbml0VGVzdDo6Y3VycmVudF90ZXN0X2Nhc2UoKSBj
b25zdAogICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgewogICBpbnRlcm5hbDo6TXV0
ZXhMb2NrIGxvY2soJm11dGV4Xyk7Ci0gIHJldHVybiBpbXBsXy0+Y3VycmVudF90ZXN0X2Nhc2Uo
KTsKKyAgcmV0dXJuIGltcGxfLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKIH0KKyNlbmRpZgogCiAv
LyBSZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50
bHkgcnVubmluZywKIC8vIG9yIE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgpAQCAtNDgxNCwx
MSArNTQ3MSwxMCBAQCBjb25zdCBUZXN0SW5mbyogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9pbmZv
KCkgY29uc3QKIC8vIFJldHVybnMgdGhlIHJhbmRvbSBzZWVkIHVzZWQgYXQgdGhlIHN0YXJ0IG9m
IHRoZSBjdXJyZW50IHRlc3QgcnVuLgogaW50IFVuaXRUZXN0OjpyYW5kb21fc2VlZCgpIGNvbnN0
IHsgcmV0dXJuIGltcGxfLT5yYW5kb21fc2VlZCgpOyB9CiAKLS8vIFJldHVybnMgUGFyYW1ldGVy
aXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorLy8gUmV0
dXJucyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0
cmFjayBvZgogLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5k
IHJlZ2lzdGVyIHRoZW0uCi1pbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkm
Ci0gICAgVW5pdFRlc3Q6OnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCi0gICAgICAgIEdU
RVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgeworaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVSZWdpc3RyeSYKK1VuaXRUZXN0OjpwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSBH
VEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKICAgcmV0dXJuIGltcGxfLT5wYXJhbWV0ZXJp
emVkX3Rlc3RfcmVnaXN0cnkoKTsKIH0KIApAQCAtNDg1MiwyMyArNTUwOCwyMiBAQCBuYW1lc3Bh
Y2UgaW50ZXJuYWwgewogVW5pdFRlc3RJbXBsOjpVbml0VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVu
dCkKICAgICA6IHBhcmVudF8ocGFyZW50KSwKICAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5J
TkdTX1BVU0hfKDQzNTUgLyogdXNpbmcgdGhpcyBpbiBpbml0aWFsaXplciAqLykKLSAgICAgIGRl
ZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAorICAgICAgICAg
IGRlZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAogICAgICAg
ZGVmYXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAg
ICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0gICAgICBnbG9iYWxfdGVzdF9w
YXJ0X3Jlc3VsdF9yZXBvdGVyXygKKyAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BP
UF8oKSBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvdGVyXygKICAgICAgICAgICAmZGVmYXVs
dF9nbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRlcl8pLAogICAgICAgcGVyX3RocmVhZF90
ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXygKICAgICAgICAgICAmZGVmYXVsdF9wZXJfdGhyZWFk
X3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9y
ZWdpc3RyeV8oKSwKICAgICAgIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8oZmFsc2Up
LAotICAgICAgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfKC0xKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9j
YXNlXyhOVUxMKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhOVUxMKSwKKyAgICAgIGxhc3Rf
ZGVhdGhfdGVzdF9zdWl0ZV8oLTEpLAorICAgICAgY3VycmVudF90ZXN0X3N1aXRlXyhudWxscHRy
KSwKKyAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhudWxscHRyKSwKICAgICAgIGFkX2hvY190ZXN0
X3Jlc3VsdF8oKSwKLSAgICAgIG9zX3N0YWNrX3RyYWNlX2dldHRlcl8oTlVMTCksCisgICAgICBv
c19zdGFja190cmFjZV9nZXR0ZXJfKG51bGxwdHIpLAogICAgICAgcG9zdF9mbGFnX3BhcnNlX2lu
aXRfcGVyZm9ybWVkXyhmYWxzZSksCiAgICAgICByYW5kb21fc2VlZF8oMCksICAvLyBXaWxsIGJl
IG92ZXJyaWRkZW4gYnkgdGhlIGZsYWcgYmVmb3JlIGZpcnN0IHVzZS4KLSAgICAgIHJhbmRvbV8o
MCksICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCisgICAgICByYW5kb21f
KDApLCAgICAgICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBmaXJzdCB1c2UuCiAgICAgICBz
dGFydF90aW1lc3RhbXBfKDApLAogICAgICAgZWxhcHNlZF90aW1lXygwKSwKICNpZiBHVEVTVF9I
QVNfREVBVEhfVEVTVApAQCAtNDg4MCw4ICs1NTM1LDggQEAgVW5pdFRlc3RJbXBsOjpVbml0VGVz
dEltcGwoVW5pdFRlc3QqIHBhcmVudCkKIH0KIAogVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBs
KCkgewotICAvLyBEZWxldGVzIGV2ZXJ5IFRlc3RDYXNlLgotICBGb3JFYWNoKHRlc3RfY2FzZXNf
LCBpbnRlcm5hbDo6RGVsZXRlPFRlc3RDYXNlPik7CisgIC8vIERlbGV0ZXMgZXZlcnkgVGVzdFN1
aXRlLgorICBGb3JFYWNoKHRlc3Rfc3VpdGVzXywgaW50ZXJuYWw6OkRlbGV0ZTxUZXN0U3VpdGU+
KTsKIAogICAvLyBEZWxldGVzIGV2ZXJ5IEVudmlyb25tZW50LgogICBGb3JFYWNoKGVudmlyb25t
ZW50c18sIGludGVybmFsOjpEZWxldGU8RW52aXJvbm1lbnQ+KTsKQEAgLTQ4OTAsMjAgKzU1NDUs
MjAgQEAgVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBsKCkgewogfQogCiAvLyBBZGRzIGEgVGVz
dFByb3BlcnR5IHRvIHRoZSBjdXJyZW50IFRlc3RSZXN1bHQgb2JqZWN0IHdoZW4gaW52b2tlZCBp
biBhCi0vLyBjb250ZXh0IG9mIGEgdGVzdCwgdG8gY3VycmVudCB0ZXN0IGNhc2UncyBhZF9ob2Nf
dGVzdF9yZXN1bHQgd2hlbiBpbnZva2UKLS8vIGZyb20gU2V0VXBUZXN0Q2FzZS9UZWFyRG93blRl
c3RDYXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldAorLy8gY29udGV4dCBvZiBhIHRl
c3QsIHRvIGN1cnJlbnQgdGVzdCBzdWl0ZSdzIGFkX2hvY190ZXN0X3Jlc3VsdCB3aGVuIGludm9r
ZQorLy8gZnJvbSBTZXRVcFRlc3RTdWl0ZS9UZWFyRG93blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGds
b2JhbCBwcm9wZXJ0eSBzZXQKIC8vIG90aGVyd2lzZS4gIElmIHRoZSByZXN1bHQgYWxyZWFkeSBj
b250YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUga2V5LAogLy8gdGhlIHZhbHVlIHdpbGwg
YmUgdXBkYXRlZC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpSZWNvcmRQcm9wZXJ0eShjb25zdCBUZXN0
UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIHsKICAgc3RkOjpzdHJpbmcgeG1sX2VsZW1lbnQ7CiAg
IFRlc3RSZXN1bHQqIHRlc3RfcmVzdWx0OyAgLy8gVGVzdFJlc3VsdCBhcHByb3ByaWF0ZSBmb3Ig
cHJvcGVydHkgcmVjb3JkaW5nLgogCi0gIGlmIChjdXJyZW50X3Rlc3RfaW5mb18gIT0gTlVMTCkg
eworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxlbWVu
dCA9ICJ0ZXN0Y2FzZSI7CiAgICAgdGVzdF9yZXN1bHQgPSAmKGN1cnJlbnRfdGVzdF9pbmZvXy0+
cmVzdWx0Xyk7Ci0gIH0gZWxzZSBpZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKKyAg
fSBlbHNlIGlmIChjdXJyZW50X3Rlc3Rfc3VpdGVfICE9IG51bGxwdHIpIHsKICAgICB4bWxfZWxl
bWVudCA9ICJ0ZXN0c3VpdGUiOwotICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3RfY2Fz
ZV8tPmFkX2hvY190ZXN0X3Jlc3VsdF8pOworICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rl
c3Rfc3VpdGVfLT5hZF9ob2NfdGVzdF9yZXN1bHRfKTsKICAgfSBlbHNlIHsKICAgICB4bWxfZWxl
bWVudCA9ICJ0ZXN0c3VpdGVzIjsKICAgICB0ZXN0X3Jlc3VsdCA9ICZhZF9ob2NfdGVzdF9yZXN1
bHRfOwpAQCAtNDkxNSw3ICs1NTcwLDcgQEAgdm9pZCBVbml0VGVzdEltcGw6OlJlY29yZFByb3Bl
cnR5KGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSkgewogLy8gRGlzYWJsZXMgZXZl
bnQgZm9yd2FyZGluZyBpZiB0aGUgY29udHJvbCBpcyBjdXJyZW50bHkgaW4gYSBkZWF0aCB0ZXN0
CiAvLyBzdWJwcm9jZXNzLiBNdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIEluaXRHb29nbGVUZXN0
Lgogdm9pZCBVbml0VGVzdEltcGw6OlN1cHByZXNzVGVzdEV2ZW50c0lmSW5TdWJwcm9jZXNzKCkg
ewotICBpZiAoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ18uZ2V0KCkgIT0gTlVMTCkKKyAg
aWYgKGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IG51bGxwdHIpCiAgICAg
bGlzdGVuZXJzKCktPlN1cHByZXNzRXZlbnRGb3J3YXJkaW5nKCk7CiB9CiAjZW5kaWYgIC8vIEdU
RVNUX0hBU19ERUFUSF9URVNUCkBAIC00OTgzLDYgKzU2MzgsMTAgQEAgdm9pZCBVbml0VGVzdElt
cGw6OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7CiAgICAgLy8gdG8gc2h1dCBkb3duIHRoZSBkZWZh
dWx0IFhNTCBvdXRwdXQgYmVmb3JlIGludm9raW5nIFJVTl9BTExfVEVTVFMuCiAgICAgQ29uZmln
dXJlWG1sT3V0cHV0KCk7CiAKKyAgICBpZiAoR1RFU1RfRkxBRyhicmllZikpIHsKKyAgICAgIGxp
c3RlbmVycygpLT5TZXREZWZhdWx0UmVzdWx0UHJpbnRlcihuZXcgQnJpZWZVbml0VGVzdFJlc3Vs
dFByaW50ZXIpOworICAgIH0KKwogI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KICAgICAv
LyBDb25maWd1cmVzIGxpc3RlbmVycyBmb3Igc3RyZWFtaW5nIHRlc3QgcmVzdWx0cyB0byB0aGUg
c3BlY2lmaWVkIHNlcnZlci4KICAgICBDb25maWd1cmVTdHJlYW1pbmdPdXRwdXQoKTsKQEAgLTQ5
OTcsNzQgKzU2NTYsNzMgQEAgdm9pZCBVbml0VGVzdEltcGw6OlBvc3RGbGFnUGFyc2luZ0luaXQo
KSB7CiAgIH0KIH0KIAotLy8gQSBwcmVkaWNhdGUgdGhhdCBjaGVja3MgdGhlIG5hbWUgb2YgYSBU
ZXN0Q2FzZSBhZ2FpbnN0IGEga25vd24KKy8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSBu
YW1lIG9mIGEgVGVzdFN1aXRlIGFnYWluc3QgYSBrbm93bgogLy8gdmFsdWUuCiAvLwogLy8gVGhp
cyBpcyB1c2VkIGZvciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pdFRlc3QgY2xhc3Mgb25seS4g
IFdlIHB1dAogLy8gaXQgaW4gdGhlIGFub255bW91cyBuYW1lc3BhY2UgdG8gcHJldmVudCBwb2xs
dXRpbmcgdGhlIG91dGVyCiAvLyBuYW1lc3BhY2UuCiAvLwotLy8gVGVzdENhc2VOYW1lSXMgaXMg
Y29weWFibGUuCi1jbGFzcyBUZXN0Q2FzZU5hbWVJcyB7CisvLyBUZXN0U3VpdGVOYW1lSXMgaXMg
Y29weWFibGUuCitjbGFzcyBUZXN0U3VpdGVOYW1lSXMgewogIHB1YmxpYzoKICAgLy8gQ29uc3Ry
dWN0b3IuCi0gIGV4cGxpY2l0IFRlc3RDYXNlTmFtZUlzKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1l
KQotICAgICAgOiBuYW1lXyhuYW1lKSB7fQorICBleHBsaWNpdCBUZXN0U3VpdGVOYW1lSXMoY29u
c3Qgc3RkOjpzdHJpbmcmIG5hbWUpIDogbmFtZV8obmFtZSkge30KIAotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBuYW1lIG9mIHRlc3RfY2FzZSBtYXRjaGVzIG5hbWVfLgotICBib29sIG9wZXJh
dG9yKCkoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgY29uc3QgewotICAgIHJldHVybiB0ZXN0
X2Nhc2UgIT0gTlVMTCAmJiBzdHJjbXAodGVzdF9jYXNlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkp
ID09IDA7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgbmFtZSBvZiB0ZXN0
X3N1aXRlIG1hdGNoZXMgbmFtZV8uCisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0U3VpdGUq
IHRlc3Rfc3VpdGUpIGNvbnN0IHsKKyAgICByZXR1cm4gdGVzdF9zdWl0ZSAhPSBudWxscHRyICYm
CisgICAgICAgICAgIHN0cmNtcCh0ZXN0X3N1aXRlLT5uYW1lKCksIG5hbWVfLmNfc3RyKCkpID09
IDA7CiAgIH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3RyaW5nIG5hbWVfOwogfTsKIAotLy8gRmlu
ZHMgYW5kIHJldHVybnMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRv
ZXNuJ3QKKy8vIEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5h
bWUuICBJZiBvbmUgZG9lc24ndAogLy8gZXhpc3QsIGNyZWF0ZXMgb25lIGFuZCByZXR1cm5zIGl0
LiAgSXQncyB0aGUgQ0FMTEVSJ1MKIC8vIFJFU1BPTlNJQklMSVRZIHRvIGVuc3VyZSB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgV0hFTiBUSEUKIC8vIFRFU1RTIEFSRSBOT1QgU0hV
RkZMRUQuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6IG5hbWUg
b2YgdGhlIHRlc3QgY2FzZQotLy8gICB0eXBlX3BhcmFtOiAgICAgdGhlIG5hbWUgb2YgdGhlIHRl
c3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCi0vLyAgICAgICAgICAgICAgICAg
ICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4K
LS8vICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1
cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICBwb2ludGVyIHRvIHRoZSBmdW5j
dGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVzdENhc2UqIFVuaXRUZXN0SW1w
bDo6R2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3Vw
X3RjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6VGVhckRvd25U
ZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKSB7Ci0gIC8vIENhbiB3ZSBmaW5kIGEgVGVzdENhc2Ug
d2l0aCB0aGUgZ2l2ZW4gbmFtZT8KLSAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPjo6Y29u
c3RfcmV2ZXJzZV9pdGVyYXRvciB0ZXN0X2Nhc2UgPQotICAgICAgc3RkOjpmaW5kX2lmKHRlc3Rf
Y2FzZXNfLnJiZWdpbigpLCB0ZXN0X2Nhc2VzXy5yZW5kKCksCi0gICAgICAgICAgICAgICAgICAg
VGVzdENhc2VOYW1lSXModGVzdF9jYXNlX25hbWUpKTsKLQotICBpZiAodGVzdF9jYXNlICE9IHRl
c3RfY2FzZXNfLnJlbmQoKSkKLSAgICByZXR1cm4gKnRlc3RfY2FzZTsKKy8vICAgdGVzdF9zdWl0
ZV9uYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHR5cGVfcGFyYW06ICAgICAgdGhl
IG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgorLy8g
ICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdCBzdWl0ZS4KKy8vICAgc2V0X3VwX3RjOiAgICAgICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKy8vICAgdGVhcl9kb3duX3RjOiAg
ICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUK
K1Rlc3RTdWl0ZSogVW5pdFRlc3RJbXBsOjpHZXRUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciog
dGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgIGludGVybmFsOjpT
ZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgIGludGVybmFsOjpUZWFyRG93blRlc3RT
dWl0ZUZ1bmMgdGVhcl9kb3duX3RjKSB7CisgIC8vIENhbiB3ZSBmaW5kIGEgVGVzdFN1aXRlIHdp
dGggdGhlIGdpdmVuIG5hbWU/CisgIGNvbnN0IGF1dG8gdGVzdF9zdWl0ZSA9CisgICAgICBzdGQ6
OmZpbmRfaWYodGVzdF9zdWl0ZXNfLnJiZWdpbigpLCB0ZXN0X3N1aXRlc18ucmVuZCgpLAorICAg
ICAgICAgICAgICAgICAgIFRlc3RTdWl0ZU5hbWVJcyh0ZXN0X3N1aXRlX25hbWUpKTsKKworICBp
ZiAodGVzdF9zdWl0ZSAhPSB0ZXN0X3N1aXRlc18ucmVuZCgpKSByZXR1cm4gKnRlc3Rfc3VpdGU7
CiAKICAgLy8gTm8uICBMZXQncyBjcmVhdGUgb25lLgotICBUZXN0Q2FzZSogY29uc3QgbmV3X3Rl
c3RfY2FzZSA9Ci0gICAgICBuZXcgVGVzdENhc2UodGVzdF9jYXNlX25hbWUsIHR5cGVfcGFyYW0s
IHNldF91cF90YywgdGVhcl9kb3duX3RjKTsKLQotICAvLyBJcyB0aGlzIGEgZGVhdGggdGVzdCBj
YXNlPwotICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0
X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga0RlYXRoVGVzdENhc2VGaWx0ZXIpKSB7Ci0gICAgLy8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVz
dCBjYXNlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3QgY2FzZQotICAgIC8vIGRlZmluZWQgc28g
ZmFyLiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHRlc3QgY2FzZXMgaGF2ZW4ndAorICBhdXRv
KiBjb25zdCBuZXdfdGVzdF9zdWl0ZSA9CisgICAgICBuZXcgVGVzdFN1aXRlKHRlc3Rfc3VpdGVf
bmFtZSwgdHlwZV9wYXJhbSwgc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpOworCisgIC8vIElzIHRo
aXMgYSBkZWF0aCB0ZXN0IHN1aXRlPworICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6
TWF0Y2hlc0ZpbHRlcih0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtEZWF0aFRlc3RTdWl0ZUZpbHRlcikpIHsKKyAgICAvLyBZ
ZXMuICBJbnNlcnRzIHRoZSB0ZXN0IHN1aXRlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3Vp
dGUKKyAgICAvLyBkZWZpbmVkIHNvIGZhci4gIFRoaXMgb25seSB3b3JrcyB3aGVuIHRoZSB0ZXN0
IHN1aXRlcyBoYXZlbid0CiAgICAgLy8gYmVlbiBzaHVmZmxlZC4gIE90aGVyd2lzZSB3ZSBtYXkg
ZW5kIHVwIHJ1bm5pbmcgYSBkZWF0aCB0ZXN0CiAgICAgLy8gYWZ0ZXIgYSBub24tZGVhdGggdGVz
dC4KLSAgICArK2xhc3RfZGVhdGhfdGVzdF9jYXNlXzsKLSAgICB0ZXN0X2Nhc2VzXy5pbnNlcnQo
dGVzdF9jYXNlc18uYmVnaW4oKSArIGxhc3RfZGVhdGhfdGVzdF9jYXNlXywKLSAgICAgICAgICAg
ICAgICAgICAgICAgbmV3X3Rlc3RfY2FzZSk7CisgICAgKytsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVf
OworICAgIHRlc3Rfc3VpdGVzXy5pbnNlcnQodGVzdF9zdWl0ZXNfLmJlZ2luKCkgKyBsYXN0X2Rl
YXRoX3Rlc3Rfc3VpdGVfLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Rlc3Rfc3VpdGUp
OwogICB9IGVsc2UgewogICAgIC8vIE5vLiAgQXBwZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaXN0
LgotICAgIHRlc3RfY2FzZXNfLnB1c2hfYmFjayhuZXdfdGVzdF9jYXNlKTsKKyAgICB0ZXN0X3N1
aXRlc18ucHVzaF9iYWNrKG5ld190ZXN0X3N1aXRlKTsKICAgfQogCi0gIHRlc3RfY2FzZV9pbmRp
Y2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VfaW5kaWNlc18uc2l6ZSgp
KSk7Ci0gIHJldHVybiBuZXdfdGVzdF9jYXNlOworICB0ZXN0X3N1aXRlX2luZGljZXNfLnB1c2hf
YmFjayhzdGF0aWNfY2FzdDxpbnQ+KHRlc3Rfc3VpdGVfaW5kaWNlc18uc2l6ZSgpKSk7CisgIHJl
dHVybiBuZXdfdGVzdF9zdWl0ZTsKIH0KIAogLy8gSGVscGVycyBmb3Igc2V0dGluZyB1cCAvIHRl
YXJpbmcgZG93biB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQuICBUaGV5CkBAIC01MDgyLDcgKzU3NDAs
OCBAQCBzdGF0aWMgdm9pZCBUZWFyRG93bkVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsg
ZW52LT5UZWFyRG93bigpOyB9CiAvLyBBbGwgb3RoZXIgZnVuY3Rpb25zIGNhbGxlZCBmcm9tIFJ1
bkFsbFRlc3RzKCkgbWF5IHNhZmVseSBhc3N1bWUgdGhhdAogLy8gcGFyYW1ldGVyaXplZCB0ZXN0
cyBhcmUgcmVhZHkgdG8gYmUgY291bnRlZCBhbmQgcnVuLgogYm9vbCBVbml0VGVzdEltcGw6OlJ1
bkFsbFRlc3RzKCkgewotICAvLyBUcnVlIGlmZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBi
ZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzIGNhbGxlZC4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBp
ZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzCisg
IC8vIGNhbGxlZC4KICAgY29uc3QgYm9vbCBndGVzdF9pc19pbml0aWFsaXplZF9iZWZvcmVfcnVu
X2FsbF90ZXN0cyA9IEdUZXN0SXNJbml0aWFsaXplZCgpOwogCiAgIC8vIERvIG5vdCBydW4gYW55
IHRlc3QgaWYgdGhlIC0taGVscCBmbGFnIHdhcyBzcGVjaWZpZWQuCkBAIC01MDk4LDEyICs1NzU3
LDEzIEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgLy8gcHJvdG9jb2wu
CiAgIGludGVybmFsOjpXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKTsKIAotICAvLyBU
cnVlIGlmZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUt
c3R5bGUKKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZv
ciBydW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5bGUKICAgLy8gZGVhdGggdGVzdC4KICAgYm9vbCBp
bl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gZmFsc2U7CiAKICNpZiBHVEVTVF9IQVNfREVB
VEhfVEVTVAotICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gKGludGVybmFsX3J1bl9k
ZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwpOworICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0
aF90ZXN0ID0KKyAgICAgIChpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBu
dWxscHRyKTsKICMgaWYgZGVmaW5lZChHVEVTVF9FWFRSQV9ERUFUSF9URVNUX0NISUxEX1NFVFVQ
XykKICAgaWYgKGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QpIHsKICAgICBHVEVTVF9FWFRS
QV9ERUFUSF9URVNUX0NISUxEX1NFVFVQXygpOwpAQCAtNTEzMCw3ICs1NzkwLDcgQEAgYm9vbCBV
bml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICByYW5kb21fc2VlZF8gPSBHVEVTVF9GTEFH
KHNodWZmbGUpID8KICAgICAgIEdldFJhbmRvbVNlZWRGcm9tRmxhZyhHVEVTVF9GTEFHKHJhbmRv
bV9zZWVkKSkgOiAwOwogCi0gIC8vIFRydWUgaWZmIGF0IGxlYXN0IG9uZSB0ZXN0IGhhcyBmYWls
ZWQuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgYXQgbGVhc3Qgb25lIHRlc3QgaGFzIGZhaWxl
ZC4KICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0
ZXIgPSBsaXN0ZW5lcnMoKS0+cmVwZWF0ZXIoKTsKQEAgLTUxNDIsMTcgKzU4MDIsMTcgQEAgYm9v
bCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICAvLyB3aGVuIHdlIGFyZSBpbnNpZGUg
dGhlIHN1YnByb2Nlc3Mgb2YgYSBkZWF0aCB0ZXN0LgogICBjb25zdCBpbnQgcmVwZWF0ID0gaW5f
c3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA/IDEgOiBHVEVTVF9GTEFHKHJlcGVhdCk7CiAgIC8v
IFJlcGVhdHMgZm9yZXZlciBpZiB0aGUgcmVwZWF0IGNvdW50IGlzIG5lZ2F0aXZlLgotICBjb25z
dCBib29sIGZvcmV2ZXIgPSByZXBlYXQgPCAwOwotICBmb3IgKGludCBpID0gMDsgZm9yZXZlciB8
fCBpICE9IHJlcGVhdDsgaSsrKSB7CisgIGNvbnN0IGJvb2wgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIg
PSByZXBlYXQgPCAwOworICBmb3IgKGludCBpID0gMDsgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgfHwg
aSAhPSByZXBlYXQ7IGkrKykgewogICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VydmUgZmFpbHVyZXMg
Z2VuZXJhdGVkIGJ5IGFkLWhvYyB0ZXN0CiAgICAgLy8gYXNzZXJ0aW9ucyBleGVjdXRlZCBiZWZv
cmUgUlVOX0FMTF9URVNUUygpLgogICAgIENsZWFyTm9uQWRIb2NUZXN0UmVzdWx0KCk7CiAKLSAg
ICBjb25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBHZXRUaW1lSW5NaWxsaXMoKTsKKyAgICBUaW1l
ciB0aW1lcjsKIAotICAgIC8vIFNodWZmbGVzIHRlc3QgY2FzZXMgYW5kIHRlc3RzIGlmIHJlcXVl
c3RlZC4KKyAgICAvLyBTaHVmZmxlcyB0ZXN0IHN1aXRlcyBhbmQgdGVzdHMgaWYgcmVxdWVzdGVk
LgogICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuICYmIEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAg
ICAgIHJhbmRvbSgpLT5SZXNlZWQocmFuZG9tX3NlZWRfKTsKKyAgICAgIHJhbmRvbSgpLT5SZXNl
ZWQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJhbmRvbV9zZWVkXykpOwogICAgICAgLy8gVGhpcyBz
aG91bGQgYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBPblRlc3RJdGVyYXRpb25TdGFydCgpLAogICAg
ICAgLy8gc3VjaCB0aGF0IGEgdGVzdCBldmVudCBsaXN0ZW5lciBjYW4gc2VlIHRoZSBhY3R1YWwg
dGVzdCBvcmRlcgogICAgICAgLy8gaW4gdGhlIGV2ZW50LgpAQCAtNTE2MiwxOSArNTgyMiw0OCBA
QCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAgICAgLy8gVGVsbHMgdGhlIHVu
aXQgdGVzdCBldmVudCBsaXN0ZW5lcnMgdGhhdCB0aGUgdGVzdHMgYXJlIGFib3V0IHRvIHN0YXJ0
LgogICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25TdGFydCgqcGFyZW50XywgaSk7CiAKLSAg
ICAvLyBSdW5zIGVhY2ggdGVzdCBjYXNlIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB0ZXN0IHRv
IHJ1bi4KKyAgICAvLyBSdW5zIGVhY2ggdGVzdCBzdWl0ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBv
bmUgdGVzdCB0byBydW4uCiAgICAgaWYgKGhhc190ZXN0c190b19ydW4pIHsKICAgICAgIC8vIFNl
dHMgdXAgYWxsIGVudmlyb25tZW50cyBiZWZvcmVoYW5kLgogICAgICAgcmVwZWF0ZXItPk9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydCgqcGFyZW50Xyk7CiAgICAgICBGb3JFYWNoKGVudmlyb25tZW50
c18sIFNldFVwRW52aXJvbm1lbnQpOwogICAgICAgcmVwZWF0ZXItPk9uRW52aXJvbm1lbnRzU2V0
VXBFbmQoKnBhcmVudF8pOwogCi0gICAgICAvLyBSdW5zIHRoZSB0ZXN0cyBvbmx5IGlmIHRoZXJl
IHdhcyBubyBmYXRhbCBmYWlsdXJlIGR1cmluZyBnbG9iYWwKLSAgICAgIC8vIHNldC11cC4KLSAg
ICAgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKLSAgICAgICAgZm9yIChpbnQgdGVz
dF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsKKyAgICAg
IC8vIFJ1bnMgdGhlIHRlc3RzIG9ubHkgaWYgdGhlcmUgd2FzIG5vIGZhdGFsIGZhaWx1cmUgb3Ig
c2tpcCB0cmlnZ2VyZWQKKyAgICAgIC8vIGR1cmluZyBnbG9iYWwgc2V0LXVwLgorICAgICAgaWYg
KFRlc3Q6OklzU2tpcHBlZCgpKSB7CisgICAgICAgIC8vIEVtaXQgZGlhZ25vc3RpY3Mgd2hlbiBn
bG9iYWwgc2V0LXVwIGNhbGxzIHNraXAsIGFzIGl0IHdpbGwgbm90IGJlCisgICAgICAgIC8vIGVt
aXR0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgVGVzdFJlc3VsdCYgdGVzdF9yZXN1bHQgPQorICAg
ICAgICAgICAgKmludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3Vs
dCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RfcmVzdWx0LnRvdGFsX3BhcnRf
Y291bnQoKTsgKytqKSB7CisgICAgICAgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFy
dF9yZXN1bHQgPQorICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChq
KTsKKyAgICAgICAgICBpZiAodGVzdF9wYXJ0X3Jlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1
bHQ6OmtTa2lwKSB7CisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgcmVzdWx0ID0gdGVz
dF9wYXJ0X3Jlc3VsdC5tZXNzYWdlKCk7CisgICAgICAgICAgICBwcmludGYoIiVzXG4iLCByZXN1
bHQuY19zdHIoKSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZmbHVzaChzdGRv
dXQpOworICAgICAgfSBlbHNlIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAg
ICAgZm9yIChpbnQgdGVzdF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90ZXN0X3N1aXRl
X2NvdW50KCk7CisgICAgICAgICAgICAgdGVzdF9pbmRleCsrKSB7CisgICAgICAgICAgR2V0TXV0
YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAgICAgaWYgKEdURVNUX0ZM
QUcoZmFpbF9mYXN0KSAmJgorICAgICAgICAgICAgICBHZXRNdXRhYmxlU3VpdGVDYXNlKHRlc3Rf
aW5kZXgpLT5GYWlsZWQoKSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IHRlc3RfaW5kZXgg
KyAxOyBqIDwgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyBqKyspIHsKKyAgICAgICAgICAgICAg
R2V0TXV0YWJsZVN1aXRlQ2FzZShqKS0+U2tpcCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9IGVsc2UgaWYgKFRlc3Q6
Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIGZhdGFsIGZh
aWx1cmUgZHVyaW5nIHRoZSBnbG9iYWwgc2V0dXAgdGhlbiB3ZSBrbm93IHdlCisgICAgICAgIC8v
IGFyZW4ndCBnb2luZyB0byBydW4gYW55IHRlc3RzLiBFeHBsaWNpdGx5IG1hcmsgYWxsIG9mIHRo
ZSB0ZXN0cyBhcworICAgICAgICAvLyBza2lwcGVkIHRvIG1ha2UgdGhpcyBvYnZpb3VzIGluIHRo
ZSBvdXRwdXQuCisgICAgICAgIGZvciAoaW50IHRlc3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwg
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogICAgICAgICAgICAgIHRlc3RfaW5kZXgrKykgewot
ICAgICAgICAgIEdldE11dGFibGVUZXN0Q2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7CisgICAgICAg
ICAgR2V0TXV0YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+U2tpcCgpOwogICAgICAgICB9CiAg
ICAgICB9CiAKQEAgLTUxODUsNyArNTg3NCw3IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxU
ZXN0cygpIHsKICAgICAgIHJlcGVhdGVyLT5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kKCpwYXJl
bnRfKTsKICAgICB9CiAKLSAgICBlbGFwc2VkX3RpbWVfID0gR2V0VGltZUluTWlsbGlzKCkgLSBz
dGFydDsKKyAgICBlbGFwc2VkX3RpbWVfID0gdGltZXIuRWxhcHNlZCgpOwogCiAgICAgLy8gVGVs
bHMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IHRoZSB0ZXN0cyBoYXZlIGp1c3Qg
ZmluaXNoZWQuCiAgICAgcmVwZWF0ZXItPk9uVGVzdEl0ZXJhdGlvbkVuZCgqcGFyZW50XywgaSk7
CkBAIC01MjEzLDE0ICs1OTAyLDE0IEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygp
IHsKIAogICBpZiAoIWd0ZXN0X2lzX2luaXRpYWxpemVkX2JlZm9yZV9ydW5fYWxsX3Rlc3RzKSB7
CiAgICAgQ29sb3JlZFByaW50ZigKLSAgICAgICAgQ09MT1JfUkVELAorICAgICAgICBHVGVzdENv
bG9yOjprUmVkLAogICAgICAgICAiXG5JTVBPUlRBTlQgTk9USUNFIC0gRE8gTk9UIElHTk9SRTpc
biIKICAgICAgICAgIlRoaXMgdGVzdCBwcm9ncmFtIGRpZCBOT1QgY2FsbCAiIEdURVNUX0lOSVRf
R09PR0xFX1RFU1RfTkFNRV8KICAgICAgICAgIigpIGJlZm9yZSBjYWxsaW5nIFJVTl9BTExfVEVT
VFMoKS4gVGhpcyBpcyBJTlZBTElELiBTb29uICIgR1RFU1RfTkFNRV8KICAgICAgICAgIiB3aWxs
IHN0YXJ0IHRvIGVuZm9yY2UgdGhlIHZhbGlkIHVzYWdlLiAiCiAgICAgICAgICJQbGVhc2UgZml4
IGl0IEFTQVAsIG9yIElUIFdJTEwgU1RBUlQgVE8gRkFJTC5cbiIpOyAgLy8gTk9MSU5UCiAjaWYg
R1RFU1RfRk9SX0dPT0dMRV8KLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwKKyAgICBDb2xv
cmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsCiAgICAgICAgICAgICAgICAgICAiRm9yIG1vcmUg
ZGV0YWlscywgc2VlIGh0dHA6Ly93aWtpL01haW4vVmFsaWRHVW5pdE1haW4uXG4iKTsKICNlbmRp
ZiAgLy8gR1RFU1RfRk9SX0dPT0dMRV8KICAgfQpAQCAtNTIzNCwxMCArNTkyMywxMCBAQCBib29s
IFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAvLyBiZSBjcmVhdGVkLCBwcmludHMgYW4g
ZXJyb3IgYW5kIGV4aXRzLgogdm9pZCBXcml0ZVRvU2hhcmRTdGF0dXNGaWxlSWZOZWVkZWQoKSB7
CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHRlc3Rfc2hhcmRfZmlsZSA9IHBvc2l4OjpHZXRFbnYoa1Rl
c3RTaGFyZFN0YXR1c0ZpbGUpOwotICBpZiAodGVzdF9zaGFyZF9maWxlICE9IE5VTEwpIHsKKyAg
aWYgKHRlc3Rfc2hhcmRfZmlsZSAhPSBudWxscHRyKSB7CiAgICAgRklMRSogY29uc3QgZmlsZSA9
IHBvc2l4OjpGT3Blbih0ZXN0X3NoYXJkX2ZpbGUsICJ3Iik7Ci0gICAgaWYgKGZpbGUgPT0gTlVM
TCkgewotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsCisgICAgaWYgKGZpbGUgPT0gbnVs
bHB0cikgeworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLAogICAgICAgICAg
ICAgICAgICAgICAiQ291bGQgbm90IHdyaXRlIHRvIHRoZSB0ZXN0IHNoYXJkIHN0YXR1cyBmaWxl
IFwiJXNcIiAiCiAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQgYnkgdGhlICVzIGVudmly
b25tZW50IHZhcmlhYmxlLlxuIiwKICAgICAgICAgICAgICAgICAgICAgdGVzdF9zaGFyZF9maWxl
LCBrVGVzdFNoYXJkU3RhdHVzRmlsZSk7CkBAIC01MjYxLDggKzU5NTAsOCBAQCBib29sIFNob3Vs
ZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgcmV0dXJuIGZhbHNlOwog
ICB9CiAKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gSW50MzJGcm9tRW52T3JEaWUodG90
YWxfc2hhcmRzX2VudiwgLTEpOwotICBjb25zdCBJbnQzMiBzaGFyZF9pbmRleCA9IEludDMyRnJv
bUVudk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEpOworICBjb25zdCBpbnQzMl90IHRvdGFsX3No
YXJkcyA9IEludDMyRnJvbUVudk9yRGllKHRvdGFsX3NoYXJkc19lbnYsIC0xKTsKKyAgY29uc3Qg
aW50MzJfdCBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKHNoYXJkX2luZGV4X2Vudiwg
LTEpOwogCiAgIGlmICh0b3RhbF9zaGFyZHMgPT0gLTEgJiYgc2hhcmRfaW5kZXggPT0gLTEpIHsK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjcxLDcgKzU5NjAsNyBAQCBib29sIFNob3VsZFNoYXJk
KGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxpZCBlbnZpcm9u
bWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAi
ID0gIiA8PCBzaGFyZF9pbmRleAogICAgICAgPDwgIiwgYnV0IGhhdmUgbGVmdCAiIDw8IGtUZXN0
VG90YWxTaGFyZHMgPDwgIiB1bnNldC5cbiI7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQs
IG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6
OmtSZWQsICIlcyIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKICAgICBmZmx1c2goc3Rkb3V0
KTsKICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgIH0gZWxzZSBpZiAodG90YWxfc2hhcmRzICE9
IC0xICYmIHNoYXJkX2luZGV4ID09IC0xKSB7CkBAIC01Mjc5LDcgKzU5NjgsNyBAQCBib29sIFNo
b3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAgICAgICA8PCAiSW52YWxp
ZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAgIDw8IGtUZXN0VG90YWxT
aGFyZHMgPDwgIiA9ICIgPDwgdG90YWxfc2hhcmRzCiAgICAgICA8PCAiLCBidXQgaGF2ZSBsZWZ0
ICIgPDwga1Rlc3RTaGFyZEluZGV4IDw8ICIgdW5zZXQuXG4iOwotICAgIENvbG9yZWRQcmludGYo
Q09MT1JfUkVELCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CisgICAgQ29sb3JlZFByaW50ZihH
VGVzdENvbG9yOjprUmVkLCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CiAgICAgZmZs
dXNoKHN0ZG91dCk7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICB9IGVsc2UgaWYgKHNoYXJk
X2luZGV4IDwgMCB8fCBzaGFyZF9pbmRleCA+PSB0b3RhbF9zaGFyZHMpIHsKQEAgLTUyODgsNyAr
NTk3Nyw3IEBAIGJvb2wgU2hvdWxkU2hhcmQoY29uc3QgY2hhciogdG90YWxfc2hhcmRzX2VudiwK
ICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiIDwgIiA8PCBrVGVzdFRvdGFsU2hhcmRzCiAg
ICAgICA8PCAiLCBidXQgeW91IGhhdmUgIiA8PCBrVGVzdFNoYXJkSW5kZXggPDwgIj0iIDw8IHNo
YXJkX2luZGV4CiAgICAgICA8PCAiLCAiIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwgIj0iIDw8IHRv
dGFsX3NoYXJkcyA8PCAiLlxuIjsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwgbXNnLkdl
dFN0cmluZygpLmNfc3RyKCkpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwg
IiVzIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwogICAgIGZmbHVzaChzdGRvdXQpOwogICAg
IGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgfQpAQCAtNTI5OSwxMyArNTk4OCwxMyBAQCBib29sIFNo
b3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAvLyBQYXJzZXMgdGhlIGVu
dmlyb25tZW50IHZhcmlhYmxlIHZhciBhcyBhbiBJbnQzMi4gSWYgaXQgaXMgdW5zZXQsCiAvLyBy
ZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYW4gSW50MzIsIHByaW50cyBhbiBlcnJv
cgogLy8gYW5kIGFib3J0cy4KLUludDMyIEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIqIHZh
ciwgSW50MzIgZGVmYXVsdF92YWwpIHsKK2ludDMyX3QgSW50MzJGcm9tRW52T3JEaWUoY29uc3Qg
Y2hhciogdmFyLCBpbnQzMl90IGRlZmF1bHRfdmFsKSB7CiAgIGNvbnN0IGNoYXIqIHN0cl92YWwg
PSBwb3NpeDo6R2V0RW52KHZhcik7Ci0gIGlmIChzdHJfdmFsID09IE5VTEwpIHsKKyAgaWYgKHN0
cl92YWwgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBkZWZhdWx0X3ZhbDsKICAgfQogCi0gIElu
dDMyIHJlc3VsdDsKKyAgaW50MzJfdCByZXN1bHQ7CiAgIGlmICghUGFyc2VJbnQzMihNZXNzYWdl
KCkgPDwgIlRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZSAiIDw8IHZhciwKICAgICAg
ICAgICAgICAgICAgIHN0cl92YWwsICZyZXN1bHQpKSB7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUp
OwpAQCAtNTMxNCw4ICs2MDAzLDggQEAgSW50MzIgSW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hh
ciogdmFyLCBJbnQzMiBkZWZhdWx0X3ZhbCkgewogfQogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVt
YmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRl
c3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVn
ZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBvbiB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMg
c29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0
byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4gQXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0
b3RhbF9zaGFyZHMuCiBib29sIFNob3VsZFJ1blRlc3RPblNoYXJkKGludCB0b3RhbF9zaGFyZHMs
IGludCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpIHsKICAgcmV0dXJuICh0ZXN0X2lkICUgdG90
YWxfc2hhcmRzKSA9PSBzaGFyZF9pbmRleDsKQEAgLTUzMjMsMTUgKzYwMTIsMTUgQEAgYm9vbCBT
aG91bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hhcmRzLCBpbnQgc2hhcmRfaW5kZXgsIGlu
dCB0ZXN0X2lkKSB7CiAKIC8vIENvbXBhcmVzIHRoZSBuYW1lIG9mIGVhY2ggdGVzdCB3aXRoIHRo
ZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgdG8KIC8vIGRlY2lkZSB3aGV0aGVyIHRoZSB0ZXN0IHNo
b3VsZCBiZSBydW4sIHRoZW4gcmVjb3JkcyB0aGUgcmVzdWx0IGluCi0vLyBlYWNoIFRlc3RDYXNl
IGFuZCBUZXN0SW5mbyBvYmplY3QuCisvLyBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8gb2Jq
ZWN0LgogLy8gSWYgc2hhcmRfdGVzdHMgPT0gdHJ1ZSwgZnVydGhlciBmaWx0ZXJzIHRlc3RzIGJh
c2VkIG9uIHNoYXJkaW5nCiAvLyB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50IC0gc2VlCiAv
LyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xl
dGVzdC9kb2NzL2FkdmFuY2VkLm1kCiAvLyAuIFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0
aGF0IHNob3VsZCBydW4uCiBpbnQgVW5pdFRlc3RJbXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRv
U2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRzID0gc2hh
cmRfdGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wgPworICBjb25zdCBpbnQzMl90IHRv
dGFsX3NoYXJkcyA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KICAg
ICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0VG90YWxTaGFyZHMsIC0xKSA6IC0xOwotICBjb25z
dCBJbnQzMiBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RP
Q09MID8KKyAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3RzID09IEhPTk9S
X1NIQVJESU5HX1BST1RPQ09MID8KICAgICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hhcmRJ
bmRleCwgLTEpIDogLTE7CiAKICAgLy8gbnVtX3J1bm5hYmxlX3Rlc3RzIGFyZSB0aGUgbnVtYmVy
IG9mIHRlc3RzIHRoYXQgd2lsbApAQCAtNTM0MCwyNiArNjAyOSwyMyBAQCBpbnQgVW5pdFRlc3RJ
bXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKICAgLy8g
dGhpcyBzaGFyZC4KICAgaW50IG51bV9ydW5uYWJsZV90ZXN0cyA9IDA7CiAgIGludCBudW1fc2Vs
ZWN0ZWRfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNp
emUoKTsgaSsrKSB7Ci0gICAgVGVzdENhc2UqIGNvbnN0IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNf
W2ldOwotICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSA9IHRlc3RfY2FzZS0+
bmFtZSgpOwotICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4oZmFsc2UpOworICBmb3IgKGF1
dG8qIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlc18pIHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYg
dGVzdF9zdWl0ZV9uYW1lID0gdGVzdF9zdWl0ZS0+bmFtZSgpOworICAgIHRlc3Rfc3VpdGUtPnNl
dF9zaG91bGRfcnVuKGZhbHNlKTsKIAotICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdGVzdF9j
YXNlLT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisrKSB7Ci0gICAgICBUZXN0SW5mbyogY29u
c3QgdGVzdF9pbmZvID0gdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpW2pdOworICAgIGZvciAo
c2l6ZV90IGogPSAwOyBqIDwgdGVzdF9zdWl0ZS0+dGVzdF9pbmZvX2xpc3QoKS5zaXplKCk7IGor
KykgeworICAgICAgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3Rf
aW5mb19saXN0KClbal07CiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X25hbWUodGVzdF9p
bmZvLT5uYW1lKCkpOwotICAgICAgLy8gQSB0ZXN0IGlzIGRpc2FibGVkIGlmIHRlc3QgY2FzZSBu
YW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCisgICAgICAvLyBBIHRlc3QgaXMgZGlzYWJsZWQgaWYg
dGVzdCBzdWl0ZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCiAgICAgICAvLyBrRGlzYWJsZVRl
c3RGaWx0ZXIuCi0gICAgICBjb25zdCBib29sIGlzX2Rpc2FibGVkID0KLSAgICAgICAgICBpbnRl
cm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKHRlc3RfY2FzZV9uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rpc2FibGVU
ZXN0RmlsdGVyKSB8fAotICAgICAgICAgIGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6Ok1hdGNo
ZXNGaWx0ZXIodGVzdF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKTsKKyAgICAgIGNvbnN0IGJvb2wgaXNf
ZGlzYWJsZWQgPSBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlX25hbWUsIGtEaXNhYmxl
VGVzdEZpbHRlcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6
VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X25hbWUsIGtEaXNhYmxlVGVzdEZpbHRlcik7CiAgICAgICB0ZXN0X2lu
Zm8tPmlzX2Rpc2FibGVkXyA9IGlzX2Rpc2FibGVkOwogCi0gICAgICBjb25zdCBib29sIG1hdGNo
ZXNfZmlsdGVyID0KLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJN
YXRjaGVzVGVzdCh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUpOworICAgICAgY29uc3QgYm9vbCBt
YXRjaGVzX2ZpbHRlciA9IGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNU
ZXN0KAorICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTsKICAgICAgIHRlc3Rf
aW5mby0+bWF0Y2hlc19maWx0ZXJfID0gbWF0Y2hlc19maWx0ZXI7CiAKICAgICAgIGNvbnN0IGJv
b2wgaXNfcnVubmFibGUgPQpAQCAtNTM3Niw3ICs2MDYyLDcgQEAgaW50IFVuaXRUZXN0SW1wbDo6
RmlsdGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7CiAgICAgICBudW1f
c2VsZWN0ZWRfdGVzdHMgKz0gaXNfc2VsZWN0ZWQ7CiAKICAgICAgIHRlc3RfaW5mby0+c2hvdWxk
X3J1bl8gPSBpc19zZWxlY3RlZDsKLSAgICAgIHRlc3RfY2FzZS0+c2V0X3Nob3VsZF9ydW4odGVz
dF9jYXNlLT5zaG91bGRfcnVuKCkgfHwgaXNfc2VsZWN0ZWQpOworICAgICAgdGVzdF9zdWl0ZS0+
c2V0X3Nob3VsZF9ydW4odGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigpIHx8IGlzX3NlbGVjdGVkKTsK
ICAgICB9CiAgIH0KICAgcmV0dXJuIG51bV9zZWxlY3RlZF90ZXN0czsKQEAgLTUzODcsNyArNjA3
Myw3IEBAIGludCBVbml0VGVzdEltcGw6OkZpbHRlclRlc3RzKFJlYWN0aW9uVG9TaGFyZGluZyBz
aGFyZF90ZXN0cykgewogLy8gbWF4X2xlbmd0aCBjaGFyYWN0ZXJzLCBvbmx5IHByaW50cyB0aGUg
Zmlyc3QgbWF4X2xlbmd0aCBjaGFyYWN0ZXJzCiAvLyBhbmQgIi4uLiIuCiBzdGF0aWMgdm9pZCBQ
cmludE9uT25lTGluZShjb25zdCBjaGFyKiBzdHIsIGludCBtYXhfbGVuZ3RoKSB7Ci0gIGlmIChz
dHIgIT0gTlVMTCkgeworICBpZiAoc3RyICE9IG51bGxwdHIpIHsKICAgICBmb3IgKGludCBpID0g
MDsgKnN0ciAhPSAnXDAnOyArK3N0cikgewogICAgICAgaWYgKGkgPj0gbWF4X2xlbmd0aCkgewog
ICAgICAgICBwcmludGYoIi4uLiIpOwpAQCAtNTQwOSwyNyArNjA5NSwyNSBAQCB2b2lkIFVuaXRU
ZXN0SW1wbDo6TGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoKSB7CiAgIC8vIFByaW50IGF0IG1vc3Qg
dGhpcyBtYW55IGNoYXJhY3RlcnMgZm9yIGVhY2ggdHlwZS92YWx1ZSBwYXJhbWV0ZXIuCiAgIGNv
bnN0IGludCBrTWF4UGFyYW1MZW5ndGggPSAyNTA7CiAKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIGNvbnN0IFRlc3RDYXNlKiBjb25zdCB0
ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2VzX1tpXTsKLSAgICBib29sIHByaW50ZWRfdGVzdF9jYXNlX25h
bWUgPSBmYWxzZTsKKyAgZm9yIChhdXRvKiB0ZXN0X3N1aXRlIDogdGVzdF9zdWl0ZXNfKSB7Cisg
ICAgYm9vbCBwcmludGVkX3Rlc3Rfc3VpdGVfbmFtZSA9IGZhbHNlOwogCi0gICAgZm9yIChzaXpl
X3QgaiA9IDA7IGogPCB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsK
LSAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQotICAgICAgICAgIHRlc3Rf
Y2FzZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHRl
c3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgpOyBqKyspIHsKKyAgICAgIGNvbnN0IFRl
c3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT50ZXN0X2luZm9fbGlzdCgpW2pd
OwogICAgICAgaWYgKHRlc3RfaW5mby0+bWF0Y2hlc19maWx0ZXJfKSB7Ci0gICAgICAgIGlmICgh
cHJpbnRlZF90ZXN0X2Nhc2VfbmFtZSkgewotICAgICAgICAgIHByaW50ZWRfdGVzdF9jYXNlX25h
bWUgPSB0cnVlOwotICAgICAgICAgIHByaW50ZigiJXMuIiwgdGVzdF9jYXNlLT5uYW1lKCkpOwot
ICAgICAgICAgIGlmICh0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7CisgICAgICAg
IGlmICghcHJpbnRlZF90ZXN0X3N1aXRlX25hbWUpIHsKKyAgICAgICAgICBwcmludGVkX3Rlc3Rf
c3VpdGVfbmFtZSA9IHRydWU7CisgICAgICAgICAgcHJpbnRmKCIlcy4iLCB0ZXN0X3N1aXRlLT5u
YW1lKCkpOworICAgICAgICAgIGlmICh0ZXN0X3N1aXRlLT50eXBlX3BhcmFtKCkgIT0gbnVsbHB0
cikgewogICAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVHlwZVBhcmFtTGFiZWwpOwog
ICAgICAgICAgICAgLy8gV2UgcHJpbnQgdGhlIHR5cGUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxp
bmUgdG8gbWFrZQogICAgICAgICAgICAgLy8gdGhlIG91dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEg
cHJvZ3JhbS4KLSAgICAgICAgICAgIFByaW50T25PbmVMaW5lKHRlc3RfY2FzZS0+dHlwZV9wYXJh
bSgpLCBrTWF4UGFyYW1MZW5ndGgpOworICAgICAgICAgICAgUHJpbnRPbk9uZUxpbmUodGVzdF9z
dWl0ZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1MZW5ndGgpOwogICAgICAgICAgIH0KICAgICAg
ICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRmKCIgICVzIiwgdGVz
dF9pbmZvLT5uYW1lKCkpOwotICAgICAgICBpZiAodGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpICE9
IE5VTEwpIHsKKyAgICAgICAgaWYgKHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSAhPSBudWxscHRy
KSB7CiAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAiLCBrVmFsdWVQYXJhbUxhYmVsKTsKICAg
ICAgICAgICAvLyBXZSBwcmludCB0aGUgdmFsdWUgcGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUg
dG8gbWFrZSB0aGUKICAgICAgICAgICAvLyBvdXRwdXQgZWFzeSB0byBwYXJzZSBieSBhIHByb2dy
YW0uCkBAIC01NDQ4LDExICs2MTMyLDExIEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpMaXN0VGVzdHNN
YXRjaGluZ0ZpbHRlcigpIHsKICAgICBpZiAob3V0cHV0X2Zvcm1hdCA9PSAieG1sIikgewogICAg
ICAgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyKAogICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6
R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkuY19zdHIoKSkKLSAgICAgICAgICAuUHJpbnRY
bWxUZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9jYXNlc18pOworICAgICAgICAgIC5QcmludFhtbFRl
c3RzTGlzdCgmc3RyZWFtLCB0ZXN0X3N1aXRlc18pOwogICAgIH0gZWxzZSBpZiAob3V0cHV0X2Zv
cm1hdCA9PSAianNvbiIpIHsKICAgICAgIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXIoCiAgICAg
ICAgICAgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKS5jX3N0
cigpKQotICAgICAgICAgIC5QcmludEpzb25UZXN0TGlzdCgmc3RyZWFtLCB0ZXN0X2Nhc2VzXyk7
CisgICAgICAgICAgLlByaW50SnNvblRlc3RMaXN0KCZzdHJlYW0sIHRlc3Rfc3VpdGVzXyk7CiAg
ICAgfQogICAgIGZwcmludGYoZmlsZW91dCwgIiVzIiwgU3RyaW5nU3RyZWFtVG9TdHJpbmcoJnN0
cmVhbSkuY19zdHIoKSk7CiAgICAgZmNsb3NlKGZpbGVvdXQpOwpAQCAtNTQ3Niw3ICs2MTYwLDcg
QEAgdm9pZCBVbml0VGVzdEltcGw6OnNldF9vc19zdGFja190cmFjZV9nZXR0ZXIoCiAvLyBvdGhl
cndpc2UsIGNyZWF0ZXMgYW4gT3NTdGFja1RyYWNlR2V0dGVyLCBtYWtlcyBpdCB0aGUgY3VycmVu
dAogLy8gZ2V0dGVyLCBhbmQgcmV0dXJucyBpdC4KIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFj
ZSogVW5pdFRlc3RJbXBsOjpvc19zdGFja190cmFjZV9nZXR0ZXIoKSB7Ci0gIGlmIChvc19zdGFj
a190cmFjZV9nZXR0ZXJfID09IE5VTEwpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlX2dldHRlcl8g
PT0gbnVsbHB0cikgewogI2lmZGVmIEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl8KICAgICBv
c19zdGFja190cmFjZV9nZXR0ZXJfID0gbmV3IEdURVNUX09TX1NUQUNLX1RSQUNFX0dFVFRFUl87
CiAjZWxzZQpAQCAtNTQ4OSwzOCArNjE3MywzOCBAQCBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZh
Y2UqIFVuaXRUZXN0SW1wbDo6b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCkgewogCiAvLyBSZXR1cm5z
IHRoZSBtb3N0IHNwZWNpZmljIFRlc3RSZXN1bHQgY3VycmVudGx5IHJ1bm5pbmcuCiBUZXN0UmVz
dWx0KiBVbml0VGVzdEltcGw6OmN1cnJlbnRfdGVzdF9yZXN1bHQoKSB7Ci0gIGlmIChjdXJyZW50
X3Rlc3RfaW5mb18gIT0gTlVMTCkgeworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51bGxw
dHIpIHsKICAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9pbmZvXy0+cmVzdWx0XzsKICAgfQotICBp
ZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsKLSAgICByZXR1cm4gJmN1cnJlbnRfdGVz
dF9jYXNlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0XzsKKyAgaWYgKGN1cnJlbnRfdGVzdF9zdWl0ZV8g
IT0gbnVsbHB0cikgeworICAgIHJldHVybiAmY3VycmVudF90ZXN0X3N1aXRlXy0+YWRfaG9jX3Rl
c3RfcmVzdWx0XzsKICAgfQogICByZXR1cm4gJmFkX2hvY190ZXN0X3Jlc3VsdF87CiB9CiAKLS8v
IFNodWZmbGVzIGFsbCB0ZXN0IGNhc2VzLCBhbmQgdGhlIHRlc3RzIHdpdGhpbiBlYWNoIHRlc3Qg
Y2FzZSwKKy8vIFNodWZmbGVzIGFsbCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4g
ZWFjaCB0ZXN0IHN1aXRlLAogLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3Rp
bGwgcnVuIGZpcnN0Lgogdm9pZCBVbml0VGVzdEltcGw6OlNodWZmbGVUZXN0cygpIHsKLSAgLy8g
U2h1ZmZsZXMgdGhlIGRlYXRoIHRlc3QgY2FzZXMuCi0gIFNodWZmbGVSYW5nZShyYW5kb20oKSwg
MCwgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfICsgMSwgJnRlc3RfY2FzZV9pbmRpY2VzXyk7CisgIC8v
IFNodWZmbGVzIHRoZSBkZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgp
LCAwLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwgJnRlc3Rfc3VpdGVfaW5kaWNlc18pOwog
Ci0gIC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGggdGVzdCBjYXNlcy4KLSAgU2h1ZmZsZVJhbmdl
KHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3RfY2FzZV8gKyAxLAotICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VzXy5zaXplKCkpLCAmdGVzdF9jYXNlX2luZGljZXNfKTsK
KyAgLy8gU2h1ZmZsZXMgdGhlIG5vbi1kZWF0aCB0ZXN0IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdl
KHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwKKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGludD4odGVzdF9zdWl0ZXNfLnNpemUoKSksICZ0ZXN0X3N1aXRlX2luZGljZXNf
KTsKIAotICAvLyBTaHVmZmxlcyB0aGUgdGVzdHMgaW5zaWRlIGVhY2ggdGVzdCBjYXNlLgotICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgdGVz
dF9jYXNlc19baV0tPlNodWZmbGVUZXN0cyhyYW5kb20oKSk7CisgIC8vIFNodWZmbGVzIHRoZSB0
ZXN0cyBpbnNpZGUgZWFjaCB0ZXN0IHN1aXRlLgorICBmb3IgKGF1dG8mIHRlc3Rfc3VpdGUgOiB0
ZXN0X3N1aXRlc18pIHsKKyAgICB0ZXN0X3N1aXRlLT5TaHVmZmxlVGVzdHMocmFuZG9tKCkpOwog
ICB9CiB9CiAKLS8vIFJlc3RvcmVzIHRoZSB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyB0byB0aGVpciBv
cmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCisvLyBSZXN0b3JlcyB0aGUgdGVzdCBzdWl0
ZXMgYW5kIHRlc3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KIHZv
aWQgVW5pdFRlc3RJbXBsOjpVbnNodWZmbGVUZXN0cygpIHsKLSAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAgIC8vIFVuc2h1ZmZsZXMgdGhlIHRl
c3RzIGluIGVhY2ggdGVzdCBjYXNlLgotICAgIHRlc3RfY2FzZXNfW2ldLT5VbnNodWZmbGVUZXN0
cygpOwotICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IGNhc2UuCi0gICAgdGVz
dF9jYXNlX2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB0ZXN0X3N1aXRlc18uc2l6ZSgpOyBpKyspIHsKKyAgICAvLyBVbnNodWZmbGVz
IHRoZSB0ZXN0cyBpbiBlYWNoIHRlc3Qgc3VpdGUuCisgICAgdGVzdF9zdWl0ZXNfW2ldLT5VbnNo
dWZmbGVUZXN0cygpOworICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2YgZWFjaCB0ZXN0IHN1aXRl
LgorICAgIHRlc3Rfc3VpdGVfaW5kaWNlc19baV0gPSBzdGF0aWNfY2FzdDxpbnQ+KGkpOwogICB9
CiB9CiAKQEAgLTU1NzksMTIgKzYyNjMsMTIgQEAgYm9vbCBTa2lwUHJlZml4KGNvbnN0IGNoYXIq
IHByZWZpeCwgY29uc3QgY2hhcioqIHBzdHIpIHsKIHN0YXRpYyBjb25zdCBjaGFyKiBQYXJzZUZs
YWdWYWx1ZShjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZfb3B0aW9uYWwpIHsKICAgLy8gc3RyIGFuZCBm
bGFnIG11c3Qgbm90IGJlIE5VTEwuCi0gIGlmIChzdHIgPT0gTlVMTCB8fCBmbGFnID09IE5VTEwp
IHJldHVybiBOVUxMOworICBpZiAoc3RyID09IG51bGxwdHIgfHwgZmxhZyA9PSBudWxscHRyKSBy
ZXR1cm4gbnVsbHB0cjsKIAogICAvLyBUaGUgZmxhZyBtdXN0IHN0YXJ0IHdpdGggIi0tIiBmb2xs
b3dlZCBieSBHVEVTVF9GTEFHX1BSRUZJWF8uCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZsYWdfc3Ry
ID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBmbGFnOwogICBjb25z
dCBzaXplX3QgZmxhZ19sZW4gPSBmbGFnX3N0ci5sZW5ndGgoKTsKLSAgaWYgKHN0cm5jbXAoc3Ry
LCBmbGFnX3N0ci5jX3N0cigpLCBmbGFnX2xlbikgIT0gMCkgcmV0dXJuIE5VTEw7CisgIGlmIChz
dHJuY21wKHN0ciwgZmxhZ19zdHIuY19zdHIoKSwgZmxhZ19sZW4pICE9IDApIHJldHVybiBudWxs
cHRyOwogCiAgIC8vIFNraXBzIHRoZSBmbGFnIG5hbWUuCiAgIGNvbnN0IGNoYXIqIGZsYWdfZW5k
ID0gc3RyICsgZmxhZ19sZW47CkBAIC01NTk3LDcgKzYyODEsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogUGFyc2VGbGFnVmFsdWUoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLAogICAv
LyBJZiBkZWZfb3B0aW9uYWwgaXMgdHJ1ZSBhbmQgdGhlcmUgYXJlIG1vcmUgY2hhcmFjdGVycyBh
ZnRlciB0aGUKICAgLy8gZmxhZyBuYW1lLCBvciBpZiBkZWZfb3B0aW9uYWwgaXMgZmFsc2UsIHRo
ZXJlIG11c3QgYmUgYSAnPScgYWZ0ZXIKICAgLy8gdGhlIGZsYWcgbmFtZS4KLSAgaWYgKGZsYWdf
ZW5kWzBdICE9ICc9JykgcmV0dXJuIE5VTEw7CisgIGlmIChmbGFnX2VuZFswXSAhPSAnPScpIHJl
dHVybiBudWxscHRyOwogCiAgIC8vIFJldHVybnMgdGhlIHN0cmluZyBhZnRlciAiPSIuCiAgIHJl
dHVybiBmbGFnX2VuZCArIDE7CkBAIC01NjE4LDMyICs2MzAyLDMwIEBAIHN0YXRpYyBib29sIFBh
cnNlQm9vbEZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBib29sKiB2YWx1
ZSkgewogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIs
IGZsYWcsIHRydWUpOwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlm
ICh2YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51
bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICAvLyBDb252ZXJ0cyB0aGUgc3RyaW5nIHZhbHVlIHRv
IGEgYm9vbC4KICAgKnZhbHVlID0gISgqdmFsdWVfc3RyID09ICcwJyB8fCAqdmFsdWVfc3RyID09
ICdmJyB8fCAqdmFsdWVfc3RyID09ICdGJyk7CiAgIHJldHVybiB0cnVlOwogfQogCi0vLyBQYXJz
ZXMgYSBzdHJpbmcgZm9yIGFuIEludDMyIGZsYWcsIGluIHRoZSBmb3JtIG9mCi0vLyAiLS1mbGFn
PXZhbHVlIi4KKy8vIFBhcnNlcyBhIHN0cmluZyBmb3IgYW4gaW50MzJfdCBmbGFnLCBpbiB0aGUg
Zm9ybSBvZiAiLS1mbGFnPXZhbHVlIi4KIC8vCiAvLyBPbiBzdWNjZXNzLCBzdG9yZXMgdGhlIHZh
bHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJldHVybnMKIC8vIHRydWUuICBPbiBmYWls
dXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdpbmcgKnZhbHVlLgotYm9vbCBQYXJzZUlu
dDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIEludDMyKiB2YWx1ZSkg
eworYm9vbCBQYXJzZUludDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcs
IGludDMyX3QqIHZhbHVlKSB7CiAgIC8vIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGFzIGEg
c3RyaW5nLgogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShz
dHIsIGZsYWcsIGZhbHNlKTsKIAogICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgot
ICBpZiAodmFsdWVfc3RyID09IE5VTEwpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9
PSBudWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgLy8gU2V0cyAqdmFsdWUgdG8gdGhlIHZhbHVl
IG9mIHRoZSBmbGFnLgogICByZXR1cm4gUGFyc2VJbnQzMihNZXNzYWdlKCkgPDwgIlRoZSB2YWx1
ZSBvZiBmbGFnIC0tIiA8PCBmbGFnLAogICAgICAgICAgICAgICAgICAgICB2YWx1ZV9zdHIsIHZh
bHVlKTsKIH0KIAotLy8gUGFyc2VzIGEgc3RyaW5nIGZvciBhIHN0cmluZyBmbGFnLCBpbiB0aGUg
Zm9ybSBvZgotLy8gIi0tZmxhZz12YWx1ZSIuCisvLyBQYXJzZXMgYSBzdHJpbmcgZm9yIGEgc3Ry
aW5nIGZsYWcsIGluIHRoZSBmb3JtIG9mICItLWZsYWc9dmFsdWUiLgogLy8KIC8vIE9uIHN1Y2Nl
c3MsIHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcgaW4gKnZhbHVlLCBhbmQgcmV0dXJucwog
Ly8gdHJ1ZS4gIE9uIGZhaWx1cmUsIHJldHVybnMgZmFsc2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFs
dWUuCkBAIC01NjUzLDcgKzYzMzUsNyBAQCBzdGF0aWMgYm9vbCBQYXJzZVN0cmluZ0ZsYWcoY29u
c3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBTdHJpbmcqIHZhbHVlKSB7CiAgIGNvbnN0
IGNoYXIqIGNvbnN0IHZhbHVlX3N0ciA9IFBhcnNlRmxhZ1ZhbHVlKHN0ciwgZmxhZywgZmFsc2Up
OwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIg
PT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfc3RyID09IG51bGxwdHIpIHJldHVy
biBmYWxzZTsKIAogICAvLyBTZXRzICp2YWx1ZSB0byB0aGUgdmFsdWUgb2YgdGhlIGZsYWcuCiAg
ICp2YWx1ZSA9IHZhbHVlX3N0cjsKQEAgLTU2ODQsMTAgKzYzNjYsOCBAQCBzdGF0aWMgYm9vbCBI
YXNHb29nbGVUZXN0RmxhZ1ByZWZpeChjb25zdCBjaGFyKiBzdHIpIHsKIC8vICAgQFkgICAgY2hh
bmdlcyB0aGUgY29sb3IgdG8geWVsbG93LgogLy8gICBARCAgICBjaGFuZ2VzIHRvIHRoZSBkZWZh
dWx0IHRlcm1pbmFsIHRleHQgY29sb3IuCiAvLwotLy8gRklYTUU6IFdyaXRlIHRlc3RzIGZvciB0
aGlzIG9uY2Ugd2UgYWRkIHN0ZG91dAotLy8gY2FwdHVyaW5nIHRvIEdvb2dsZSBUZXN0Lgogc3Rh
dGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7Ci0gIEdUZXN0Q29s
b3IgY29sb3IgPSBDT0xPUl9ERUZBVUxUOyAgLy8gVGhlIGN1cnJlbnQgY29sb3IuCisgIEdUZXN0
Q29sb3IgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsgIC8vIFRoZSBjdXJyZW50IGNvbG9y
LgogCiAgIC8vIENvbmNlcHR1YWxseSwgd2Ugc3BsaXQgdGhlIHN0cmluZyBpbnRvIHNlZ21lbnRz
IGRpdmlkZWQgYnkgZXNjYXBlCiAgIC8vIHNlcXVlbmNlcy4gIFRoZW4gd2UgcHJpbnQgb25lIHNl
Z21lbnQgYXQgYSB0aW1lLiAgQXQgdGhlIGVuZCBvZgpAQCAtNTY5NSw3ICs2Mzc1LDcgQEAgc3Rh
dGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7CiAgIC8vIG5leHQg
c2VnbWVudC4KICAgZm9yICg7OykgewogICAgIGNvbnN0IGNoYXIqIHAgPSBzdHJjaHIoc3RyLCAn
QCcpOwotICAgIGlmIChwID09IE5VTEwpIHsKKyAgICBpZiAocCA9PSBudWxscHRyKSB7CiAgICAg
ICBDb2xvcmVkUHJpbnRmKGNvbG9yLCAiJXMiLCBzdHIpOwogICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTU3MDcsMTMgKzYzODcsMTMgQEAgc3RhdGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29u
c3QgY2hhciogc3RyKSB7CiAgICAgaWYgKGNoID09ICdAJykgewogICAgICAgQ29sb3JlZFByaW50
Zihjb2xvciwgIkAiKTsKICAgICB9IGVsc2UgaWYgKGNoID09ICdEJykgewotICAgICAgY29sb3Ig
PSBDT0xPUl9ERUZBVUxUOworICAgICAgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVsdDsKICAg
ICB9IGVsc2UgaWYgKGNoID09ICdSJykgewotICAgICAgY29sb3IgPSBDT0xPUl9SRUQ7CisgICAg
ICBjb2xvciA9IEdUZXN0Q29sb3I6OmtSZWQ7CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnRycpIHsK
LSAgICAgIGNvbG9yID0gQ09MT1JfR1JFRU47CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtH
cmVlbjsKICAgICB9IGVsc2UgaWYgKGNoID09ICdZJykgewotICAgICAgY29sb3IgPSBDT0xPUl9Z
RUxMT1c7CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtZZWxsb3c7CiAgICAgfSBlbHNlIHsK
ICAgICAgIC0tc3RyOwogICAgIH0KQEAgLTU3MjEsOTggKzY0MDEsMTI2IEBAIHN0YXRpYyB2b2lk
IFByaW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0cikgewogfQogCiBzdGF0aWMgY29uc3Qg
Y2hhciBrQ29sb3JFbmNvZGVkSGVscE1lc3NhZ2VbXSA9Ci0iVGhpcyBwcm9ncmFtIGNvbnRhaW5z
IHRlc3RzIHdyaXR0ZW4gdXNpbmcgIiBHVEVTVF9OQU1FXyAiLiBZb3UgY2FuIHVzZSB0aGVcbiIK
LSJmb2xsb3dpbmcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIGNvbnRyb2wgaXRzIGJlaGF2aW9yOlxu
IgotIlxuIgotIlRlc3QgU2VsZWN0aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJsaXN0X3Rlc3RzQERcbiIKLSIgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgdGVzdHMgaW5z
dGVhZCBvZiBydW5uaW5nIHRoZW0uIFRoZSBuYW1lIG9mXG4iCi0iICAgICAgVEVTVChGb28sIEJh
cikgaXMgXCJGb28uQmFyXCIuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZpbHRl
cj1AWVBPU1RJVkVfUEFUVEVSTlMiCisgICAgIlRoaXMgcHJvZ3JhbSBjb250YWlucyB0ZXN0cyB3
cml0dGVuIHVzaW5nICIgR1RFU1RfTkFNRV8KKyAgICAiLiBZb3UgY2FuIHVzZSB0aGVcbiIKKyAg
ICAiZm9sbG93aW5nIGNvbW1hbmQgbGluZSBmbGFncyB0byBjb250cm9sIGl0cyBiZWhhdmlvcjpc
biIKKyAgICAiXG4iCisgICAgIlRlc3QgU2VsZWN0aW9uOlxuIgorICAgICIgIEBHLS0iIEdURVNU
X0ZMQUdfUFJFRklYXworICAgICJsaXN0X3Rlc3RzQERcbiIKKyAgICAiICAgICAgTGlzdCB0aGUg
bmFtZXMgb2YgYWxsIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyB0aGVtLiBUaGUgbmFtZSBvZlxu
IgorICAgICIgICAgICBURVNUKEZvbywgQmFyKSBpcyBcIkZvby5CYXJcIi5cbiIKKyAgICAiICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZmlsdGVyPUBZUE9TSVRJVkVfUEFUVEVSTlMi
CiAgICAgIltARy1AWU5FR0FUSVZFX1BBVFRFUk5TXUBEXG4iCi0iICAgICAgUnVuIG9ubHkgdGhl
IHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHBvc2l0aXZlIHBhdHRlcm5zIGJ1
dFxuIgotIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0aXZlIHBhdHRlcm5zLiAnPycgbWF0Y2hlcyBh
bnkgc2luZ2xlIGNoYXJhY3RlcjsgJyonXG4iCi0iICAgICAgbWF0Y2hlcyBhbnkgc3Vic3RyaW5n
OyAnOicgc2VwYXJhdGVzIHR3byBwYXR0ZXJucy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJF
RklYXyAiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNARFxuIgotIiAgICAgIFJ1biBhbGwgZGlzYWJs
ZWQgdGVzdHMgdG9vLlxuIgotIlxuIgotIlRlc3QgRXhlY3V0aW9uOlxuIgotIiAgQEctLSIgR1RF
U1RfRkxBR19QUkVGSVhfICJyZXBlYXQ9QFlbQ09VTlRdQERcbiIKLSIgICAgICBSdW4gdGhlIHRl
c3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVhdCBmb3JldmVyLlxu
IgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJzaHVmZmxlQERcbiIKLSIgICAgICBSYW5k
b21pemUgdGVzdHMnIG9yZGVycyBvbiBldmVyeSBpdGVyYXRpb24uXG4iCi0iICBARy0tIiBHVEVT
VF9GTEFHX1BSRUZJWF8gInJhbmRvbV9zZWVkPUBZW05VTUJFUl1ARFxuIgotIiAgICAgIFJhbmRv
bSBudW1iZXIgc2VlZCB0byB1c2UgZm9yIHNodWZmbGluZyB0ZXN0IG9yZGVycyAoYmV0d2VlbiAx
IGFuZFxuIgotIiAgICAgIDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1
cnJlbnQgdGltZSkuXG4iCi0iXG4iCi0iVGVzdCBPdXRwdXQ6XG4iCi0iICBARy0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gImNvbG9yPUBZKEBHeWVzQFl8QEdub0BZfEBHYXV0b0BZKUBEXG4iCi0iICAg
ICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBHYXV0b0BE
LlxuIgotIiAgLUBHLSIgR1RFU1RfRkxBR19QUkVGSVhfICJwcmludF90aW1lPTBARFxuIgotIiAg
ICAgIERvbid0IHByaW50IHRoZSBlbGFwc2VkIHRpbWUgb2YgZWFjaCB0ZXN0LlxuIgotIiAgQEct
LSIgR1RFU1RfRkxBR19QUkVGSVhfICJvdXRwdXQ9QFkoQEdqc29uQFl8QEd4bWxAWSlbQEc6QFlE
SVJFQ1RPUllfUEFUSEBHIgotICAgIEdURVNUX1BBVEhfU0VQXyAiQFl8QEc6QFlGSUxFX1BBVEhd
QERcbiIKLSIgICAgICBHZW5lcmF0ZSBhIEpTT04gb3IgWE1MIHJlcG9ydCBpbiB0aGUgZ2l2ZW4g
ZGlyZWN0b3J5IG9yIHdpdGggdGhlIGdpdmVuXG4iCi0iICAgICAgZmlsZSBuYW1lLiBAWUZJTEVf
UEFUSEBEIGRlZmF1bHRzIHRvIEBHdGVzdF9kZXRhaWxzLnhtbEBELlxuIgorICAgICIgICAgICBS
dW4gb25seSB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIG9uZSBvZiB0aGUgcG9zaXRpdmUg
cGF0dGVybnMgIgorICAgICJidXRcbiIKKyAgICAiICAgICAgbm9uZSBvZiB0aGUgbmVnYXRpdmUg
cGF0dGVybnMuICc/JyBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyOyAiCisgICAgIicqJ1xu
IgorICAgICIgICAgICBtYXRjaGVzIGFueSBzdWJzdHJpbmc7ICc6JyBzZXBhcmF0ZXMgdHdvIHBh
dHRlcm5zLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJhbHNvX3J1
bl9kaXNhYmxlZF90ZXN0c0BEXG4iCisgICAgIiAgICAgIFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMg
dG9vLlxuIgorICAgICJcbiIKKyAgICAiVGVzdCBFeGVjdXRpb246XG4iCisgICAgIiAgQEctLSIg
R1RFU1RfRkxBR19QUkVGSVhfCisgICAgInJlcGVhdD1AWVtDT1VOVF1ARFxuIgorICAgICIgICAg
ICBSdW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVh
dCBmb3JldmVyLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzaHVm
ZmxlQERcbiIKKyAgICAiICAgICAgUmFuZG9taXplIHRlc3RzJyBvcmRlcnMgb24gZXZlcnkgaXRl
cmF0aW9uLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJyYW5kb21f
c2VlZD1AWVtOVU1CRVJdQERcbiIKKyAgICAiICAgICAgUmFuZG9tIG51bWJlciBzZWVkIHRvIHVz
ZSBmb3Igc2h1ZmZsaW5nIHRlc3Qgb3JkZXJzIChiZXR3ZWVuIDEgYW5kXG4iCisgICAgIiAgICAg
IDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSkuXG4i
CisgICAgIlxuIgorICAgICJUZXN0IE91dHB1dDpcbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8KKyAgICAiY29sb3I9QFkoQEd5ZXNAWXxAR25vQFl8QEdhdXRvQFkpQERcbiIKKyAg
ICAiICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBH
YXV0b0BELlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJicmllZj0x
QERcbiIKKyAgICAiICAgICAgT25seSBwcmludCB0ZXN0IGZhaWx1cmVzLlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJwcmludF90aW1lPTBARFxuIgorICAgICIgICAg
ICBEb24ndCBwcmludCB0aGUgZWxhcHNlZCB0aW1lIG9mIGVhY2ggdGVzdC5cbiIKKyAgICAiICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAib3V0cHV0PUBZKEBHanNvbkBZfEBHeG1sQFkp
W0BHOkBZRElSRUNUT1JZX1BBVEhARyIgR1RFU1RfUEFUSF9TRVBfCisgICAgIkBZfEBHOkBZRklM
RV9QQVRIXUBEXG4iCisgICAgIiAgICAgIEdlbmVyYXRlIGEgSlNPTiBvciBYTUwgcmVwb3J0IGlu
IHRoZSBnaXZlbiBkaXJlY3Rvcnkgb3Igd2l0aCB0aGUgIgorICAgICJnaXZlblxuIgorICAgICIg
ICAgICBmaWxlIG5hbWUuIEBZRklMRV9QQVRIQEQgZGVmYXVsdHMgdG8gQEd0ZXN0X2RldGFpbC54
bWxARC5cbiIKICMgaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotIiAgQEctLSIgR1RFU1Rf
RkxBR19QUkVGSVhfICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZUE9SVEBEXG4iCi0iICAg
ICAgU3RyZWFtIHRlc3QgcmVzdWx0cyB0byB0aGUgZ2l2ZW4gc2VydmVyLlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzdHJlYW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZ
UE9SVEBEXG4iCisgICAgIiAgICAgIFN0cmVhbSB0ZXN0IHJlc3VsdHMgdG8gdGhlIGdpdmVuIHNl
cnZlci5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSJcbiIKLSJB
c3NlcnRpb24gQmVoYXZpb3I6XG4iCisgICAgIlxuIgorICAgICJBc3NlcnRpb24gQmVoYXZpb3I6
XG4iCiAjIGlmIEdURVNUX0hBU19ERUFUSF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImRlYXRoX3Rlc3Rfc3R5bGU9QFkoQEdmYXN0QFl8QEd0
aHJlYWRzYWZlQFkpQERcbiIKLSIgICAgICBTZXQgdGhlIGRlZmF1bHQgZGVhdGggdGVzdCBzdHls
ZS5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZGVhdGhfdGVzdF9z
dHlsZT1AWShAR2Zhc3RAWXxAR3RocmVhZHNhZmVAWSlARFxuIgorICAgICIgICAgICBTZXQgdGhl
IGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0hBU19ERUFU
SF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8g
ImJyZWFrX29uX2ZhaWx1cmVARFxuIgotIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGlu
dG8gZGVidWdnZXIgYnJlYWstcG9pbnRzLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJlcyBp
bnRvIEMrKyBleGNlcHRpb25zIGZvciB1c2UgYnkgYW4gZXh0ZXJuYWxcbiIKLSIgICAgICB0ZXN0
IGZyYW1ld29yay5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiY2F0Y2hfZXhjZXB0
aW9ucz0wQERcbiIKLSIgICAgICBEbyBub3QgcmVwb3J0IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWls
dXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgotIiAgICAgIHRvIGNyYXNoIHRoZSBwcm9ncmFt
IG9yIHRocm93IGEgcG9wLXVwIChvbiBXaW5kb3dzKS5cbiIKLSJcbiIKLSJFeGNlcHQgZm9yIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXyAibGlzdF90ZXN0c0BELCB5b3UgY2FuIGFsdGVybmF0aXZl
bHkgc2V0ICIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiYnJlYWtfb25f
ZmFpbHVyZUBEXG4iCisgICAgIiAgICAgIFR1cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8gZGVi
dWdnZXIgYnJlYWstcG9pbnRzLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXwor
ICAgICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKKyAgICAiICAgICAgVHVybiBhc3NlcnRpb24gZmFp
bHVyZXMgaW50byBDKysgZXhjZXB0aW9ucyBmb3IgdXNlIGJ5IGFuIGV4dGVybmFsXG4iCisgICAg
IiAgICAgIHRlc3QgZnJhbWV3b3JrLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklY
XworICAgICJjYXRjaF9leGNlcHRpb25zPTBARFxuIgorICAgICIgICAgICBEbyBub3QgcmVwb3J0
IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgorICAg
ICIgICAgICB0byBjcmFzaCB0aGUgcHJvZ3JhbSBvciB0aHJvdyBhIHBvcC11cCAob24gV2luZG93
cykuXG4iCisgICAgIlxuIgorICAgICJFeGNlcHQgZm9yIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklY
XworICAgICJsaXN0X3Rlc3RzQEQsIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBzZXQgIgogICAgICJ0
aGUgY29ycmVzcG9uZGluZ1xuIgotImVudmlyb25tZW50IHZhcmlhYmxlIG9mIGEgZmxhZyAoYWxs
IGxldHRlcnMgaW4gdXBwZXItY2FzZSkuIEZvciBleGFtcGxlLCB0b1xuIgotImRpc2FibGUgY29s
b3JlZCB0ZXh0IG91dHB1dCwgeW91IGNhbiBlaXRoZXIgc3BlY2lmeSBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8KKyAgICAiZW52aXJvbm1lbnQgdmFyaWFibGUgb2YgYSBmbGFnIChhbGwgbGV0dGVy
cyBpbiB1cHBlci1jYXNlKS4gRm9yIGV4YW1wbGUsICIKKyAgICAidG9cbiIKKyAgICAiZGlzYWJs
ZSBjb2xvcmVkIHRleHQgb3V0cHV0LCB5b3UgY2FuIGVpdGhlciBzcGVjaWZ5ICIKKyAgICAiQEct
LSIgR1RFU1RfRkxBR19QUkVGSVhfCiAgICAgImNvbG9yPW5vQEQgb3Igc2V0XG4iCi0idGhlIEBH
IiBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUg
dG8gQEdub0BELlxuIgotIlxuIgotIkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVhZCB0
aGUgIiBHVEVTVF9OQU1FXyAiIGRvY3VtZW50YXRpb24gYXRcbiIKLSJARyIgR1RFU1RfUFJPSkVD
VF9VUkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4gIiBHVEVTVF9OQU1FXyAiXG4iCi0iKG5v
dCBvbmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyksIHBsZWFzZSByZXBvcnQgaXQgdG9cbiIK
LSJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7CisgICAgInRoZSBARyIgR1RFU1RfRkxB
R19QUkVGSVhfVVBQRVJfCisgICAgIkNPTE9SQEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gQEdu
b0BELlxuIgorICAgICJcbiIKKyAgICAiRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWFk
IHRoZSAiIEdURVNUX05BTUVfCisgICAgIiBkb2N1bWVudGF0aW9uIGF0XG4iCisgICAgIkBHIiBH
VEVTVF9QUk9KRUNUX1VSTF8gIkBELiBJZiB5b3UgZmluZCBhIGJ1ZyBpbiAiIEdURVNUX05BTUVf
CisgICAgIlxuIgorICAgICIobm90IG9uZSBpbiB5b3VyIG93biBjb2RlIG9yIHRlc3RzKSwgcGxl
YXNlIHJlcG9ydCBpdCB0b1xuIgorICAgICJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7
CiAKIHN0YXRpYyBib29sIFBhcnNlR29vZ2xlVGVzdEZsYWcoY29uc3QgY2hhciogY29uc3QgYXJn
KSB7CiAgIHJldHVybiBQYXJzZUJvb2xGbGFnKGFyZywga0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxh
ZywKICAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRf
dGVzdHMpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtCcmVha09uRmFpbHVyZUZsYWcs
Ci0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKSB8fAot
ICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtDYXRjaEV4Y2VwdGlvbnNGbGFnLAotICAgICAgICAg
ICAgICAgICAgICAmR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSkgfHwKLSAgICAgIFBhcnNl
U3RyaW5nRmxhZyhhcmcsIGtDb2xvckZsYWcsICZHVEVTVF9GTEFHKGNvbG9yKSkgfHwKLSAgICAg
IFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtEZWF0aFRlc3RTdHlsZUZsYWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgJkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkpIHx8Ci0gICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga0RlYXRoVGVzdFVzZUZvcmssCi0gICAgICAgICAgICAgICAgICAgICZHVEVT
VF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFy
Zywga0ZpbHRlckZsYWcsICZHVEVTVF9GTEFHKGZpbHRlcikpIHx8Ci0gICAgICBQYXJzZVN0cmlu
Z0ZsYWcoYXJnLCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnLAotICAgICAgICAgICAgICAgICAg
ICAgICZHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0KSkgfHwKLSAgICAgIFBhcnNl
Qm9vbEZsYWcoYXJnLCBrTGlzdFRlc3RzRmxhZywgJkdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHx8
Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0
cHV0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNU
X0ZMQUcocHJpbnRfdGltZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRG
OEZsYWcsICZHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB8fAotICAgICAgUGFyc2VJbnQzMkZsYWco
YXJnLCBrUmFuZG9tU2VlZEZsYWcsICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKLSAgICAg
IFBhcnNlSW50MzJGbGFnKGFyZywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8
Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVm
ZmxlKSkgfHwKLSAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcs
Ci0gICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8
Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAotICAgICAg
ICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAotICAgICAg
UGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsCi0gICAgICAgICAgICAgICAg
ICAgICZHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpKTsKKyAgICAgICAgIFBhcnNlQm9vbEZs
YWcoYXJnLCBrQnJlYWtPbkZhaWx1cmVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RF
U1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJn
LCBrQ2F0Y2hFeGNlcHRpb25zRmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZM
QUcoY2F0Y2hfZXhjZXB0aW9ucykpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBr
Q29sb3JGbGFnLCAmR1RFU1RfRkxBRyhjb2xvcikpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0Zs
YWcoYXJnLCBrRGVhdGhUZXN0U3R5bGVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICZH
VEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhh
cmcsIGtEZWF0aFRlc3RVc2VGb3JrLAorICAgICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxB
RyhkZWF0aF90ZXN0X3VzZV9mb3JrKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBr
RmFpbEZhc3QsICZHVEVTVF9GTEFHKGZhaWxfZmFzdCkpIHx8CisgICAgICAgICBQYXJzZVN0cmlu
Z0ZsYWcoYXJnLCBrRmlsdGVyRmxhZywgJkdURVNUX0ZMQUcoZmlsdGVyKSkgfHwKKyAgICAgICAg
IFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpKSB8
fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtMaXN0VGVzdHNGbGFnLCAmR1RFU1RfRkxB
RyhsaXN0X3Rlc3RzKSkgfHwKKyAgICAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtPdXRwdXRG
bGFnLCAmR1RFU1RfRkxBRyhvdXRwdXQpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcs
IGtCcmllZkZsYWcsICZHVEVTVF9GTEFHKGJyaWVmKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZs
YWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHx8CisgICAg
ICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRGOEZsYWcsICZHVEVTVF9GTEFHKHByaW50
X3V0ZjgpKSB8fAorICAgICAgICAgUGFyc2VJbnQzMkZsYWcoYXJnLCBrUmFuZG9tU2VlZEZsYWcs
ICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKKyAgICAgICAgIFBhcnNlSW50MzJGbGFnKGFy
Zywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8CisgICAgICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVmZmxlKSkgfHwKKyAgICAg
ICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJhY2VEZXB0aEZsYWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkpIHx8CisgICAgICAg
ICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVzdWx0VG9GbGFnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pKSB8fAorICAgICAgICAg
UGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVyZUZsYWcsICZHVEVTVF9GTEFHKHRocm93
X29uX2ZhaWx1cmUpKTsKIH0KIAogI2lmIEdURVNUX1VTRV9PV05fRkxBR0ZJTEVfRkxBR18KQEAg
LTU4OTUsNyArNjYwMyw3IEBAIHZvaWQgUGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5SW1wbChpbnQq
IGFyZ2MsIENoYXJUeXBlKiogYXJndikgewogdm9pZCBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHko
aW50KiBhcmdjLCBjaGFyKiogYXJndikgewogICBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHlJbXBs
KGFyZ2MsIGFyZ3YpOwogCi0gIC8vIEZpeCB0aGUgdmFsdWUgb2YgKl9OU0dldEFyZ2MoKSBvbiBt
YWNPUywgYnV0IGlmZgorICAvLyBGaXggdGhlIHZhbHVlIG9mICpfTlNHZXRBcmdjKCkgb24gbWFj
T1MsIGJ1dCBpZiBhbmQgb25seSBpZgogICAvLyAqX05TR2V0QXJndigpID09IGFyZ3YKICAgLy8g
T25seSBhcHBsaWNhYmxlIHRvIGNoYXIqKiB2ZXJzaW9uIG9mIGFyZ3YKICNpZiBHVEVTVF9PU19N
QUMKQEAgLTU5NjMsMjMgKzY2NzEsNTAgQEAgdm9pZCBJbml0R29vZ2xlVGVzdChpbnQqIGFyZ2Ms
IHdjaGFyX3QqKiBhcmd2KSB7CiAjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRf
R09PR0xFX1RFU1RfRlVOQ1RJT05fKQogfQogCisvLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBj
YW4gYmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBsYXRmb3JtcyB3aGVyZQorLy8gdGhlcmUg
aXMgbm8gYXJnYy9hcmd2Lgordm9pZCBJbml0R29vZ2xlVGVzdCgpIHsKKyAgLy8gU2luY2UgQXJk
dWlubyBkb2Vzbid0IGhhdmUgYSBjb21tYW5kIGxpbmUsIGZha2Ugb3V0IHRoZSBhcmdjL2FyZ3Yg
YXJndW1lbnRzCisgIGludCBhcmdjID0gMTsKKyAgY29uc3QgYXV0byBhcmcwID0gImR1bW15IjsK
KyAgY2hhciogYXJndjAgPSBjb25zdF9jYXN0PGNoYXIqPihhcmcwKTsKKyAgY2hhcioqIGFyZ3Yg
PSAmYXJndjA7CisKKyNpZiBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZV
TkNUSU9OXykKKyAgR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKCZhcmdj
LCBhcmd2KTsKKyNlbHNlICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNU
X0ZVTkNUSU9OXykKKyAgaW50ZXJuYWw6OkluaXRHb29nbGVUZXN0SW1wbCgmYXJnYywgYXJndik7
CisjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJ
T05fKQorfQorCiBzdGQ6OnN0cmluZyBUZW1wRGlyKCkgewogI2lmIGRlZmluZWQoR1RFU1RfQ1VT
VE9NX1RFTVBESVJfRlVOQ1RJT05fKQogICByZXR1cm4gR1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVO
Q1RJT05fKCk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCisjZWxpZiBH
VEVTVF9PU19XSU5ET1dTX01PQklMRQogICByZXR1cm4gIlxcdGVtcFxcIjsKICNlbGlmIEdURVNU
X09TX1dJTkRPV1MKICAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBpbnRlcm5hbDo6cG9zaXg6Okdl
dEVudigiVEVNUCIpOwotICBpZiAodGVtcF9kaXIgPT0gTlVMTCB8fCB0ZW1wX2RpclswXSA9PSAn
XDAnKQorICBpZiAodGVtcF9kaXIgPT0gbnVsbHB0ciB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKSB7
CiAgICAgcmV0dXJuICJcXHRlbXBcXCI7Ci0gIGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1w
X2RpcikgLSAxXSA9PSAnXFwnKQorICB9IGVsc2UgaWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1wX2Rp
cikgLSAxXSA9PSAnXFwnKSB7CiAgICAgcmV0dXJuIHRlbXBfZGlyOwotICBlbHNlCisgIH0gZWxz
ZSB7CiAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHRlbXBfZGlyKSArICJcXCI7CisgIH0KICNlbGlm
IEdURVNUX09TX0xJTlVYX0FORFJPSUQKLSAgcmV0dXJuICIvc2RjYXJkLyI7CisgIGNvbnN0IGNo
YXIqIHRlbXBfZGlyID0gaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfVE1QRElSIik7Cisg
IGlmICh0ZW1wX2RpciA9PSBudWxscHRyIHx8IHRlbXBfZGlyWzBdID09ICdcMCcpIHsKKyAgICBy
ZXR1cm4gIi9kYXRhL2xvY2FsL3RtcC8iOworICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2Rp
cjsKKyAgfQorI2VsaWYgR1RFU1RfT1NfTElOVVgKKyAgY29uc3QgY2hhciogdGVtcF9kaXIgPSBp
bnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVTVF9UTVBESVIiKTsKKyAgaWYgKHRlbXBfZGlyID09
IG51bGxwdHIgfHwgdGVtcF9kaXJbMF0gPT0gJ1wwJykgeworICAgIHJldHVybiAiL3RtcC8iOwor
ICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsKKyAgfQogI2Vsc2UKICAgcmV0dXJuICIv
dG1wLyI7CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFpbi5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCmluZGV4IDIxMTNmNjIxZTY1NDMwZTU1NzBkZmIy
MDE1ODg0YTJkNGY0Y2YwYjMuLjQ2YjI3YzNkN2Q1NjU0NjY4OTA2YmZmNWY1YmExYTI2Njg4MWY3
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCkBAIC0yNywx
MSArMjcsMjggQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2luY2x1ZGUg
PHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAK
KyNpZiBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09TX0VTUDMyCisjaWYgR1RFU1RfT1NfRVNQ
ODI2NgorZXh0ZXJuICJDIiB7CisjZW5kaWYKK3ZvaWQgc2V0dXAoKSB7CisgIHRlc3Rpbmc6Oklu
aXRHb29nbGVUZXN0KCk7Cit9CisKK3ZvaWQgbG9vcCgpIHsgUlVOX0FMTF9URVNUUygpOyB9CisK
KyNpZiBHVEVTVF9PU19FU1A4MjY2Cit9CisjZW5kaWYKKworI2Vsc2UKKwogR1RFU1RfQVBJXyBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgcHJpbnRmKCJSdW5uaW5nIG1haW4o
KSBmcm9tICVzXG4iLCBfX0ZJTEVfXyk7CiAgIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdj
LCBhcmd2KTsKICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKIH0KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvQlVJTEQuYmF6ZWwKaW5kZXggYTkzMGQ2NWUwNDQwMTQ0NDE2YWU4
OGFiMjc1OGZkOTM0MGEwOTM3Yi4uZTc5Yjg3NWNjN2QxZjJjYjU3OGY3OWIwMmFlZGRiZjZjM2Rh
Yjc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXpl
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L0JVSUxELmJhemVsCkBAIC0yOCwy
OCArMjgsMTYgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjCi0jIEF1dGhvcjog
bWlzdGVyZ0Bnb29nbGUuY29tIChHZW5uYWRpeSBDaXZpbCkKLSMKICMgQmF6ZWwgQlVJTEQgZm9y
IFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKIAotbGljZW5z
ZXMoWyJub3RpY2UiXSkKK2xvYWQoIkBydWxlc19jYy8vY2M6ZGVmcy5iemwiLCAiY2NfYmluYXJ5
IiwgImNjX3Rlc3QiKQorbG9hZCgiQHJ1bGVzX3B5dGhvbi8vcHl0aG9uOmRlZnMuYnpsIiwgInB5
X2xpYnJhcnkiLCAicHlfdGVzdCIpCiAKLWNvbmZpZ19zZXR0aW5nKAotICAgIG5hbWUgPSAid2lu
ZG93cyIsCi0gICAgdmFsdWVzID0geyJjcHUiOiAieDY0X3dpbmRvd3MifSwKLSkKLQotY29uZmln
X3NldHRpbmcoCi0gICAgbmFtZSA9ICJ3aW5kb3dzX21zdmMiLAotICAgIHZhbHVlcyA9IHsiY3B1
IjogIng2NF93aW5kb3dzX21zdmMifSwKLSkKK2xpY2Vuc2VzKFsibm90aWNlIl0pCiAKLWNvbmZp
Z19zZXR0aW5nKAotICAgIG5hbWUgPSAiaGFzX2Fic2wiLAotICAgIHZhbHVlcyA9IHsiZGVmaW5l
IjogImFic2w9MSJ9LAotKQorcGFja2FnZShkZWZhdWx0X3Zpc2liaWxpdHkgPSBbIi8vOl9fc3Vi
cGFja2FnZXNfXyJdKQogCi0jb24gd2luZG93cyBleGNsdWRlIGd0ZXN0LXR1cGxlLmggYW5kIGdv
b2dsZXRlc3QtdHVwbGUtdGVzdC5jYworI29uIHdpbmRvd3MgZXhjbHVkZSBndGVzdC10dXBsZS5o
CiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ3Rlc3RfYWxsX3Rlc3QiLAogICAgIHNpemUgPSAic21h
bGwiLApAQCAtNjIsNDEgKzUwLDQzIEBAIGNjX3Rlc3QoCiAgICAgICAgIF0sCiAgICAgICAgIGV4
Y2x1ZGUgPSBbCiAgICAgICAgICAgICAiZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MiLAotICAg
ICAgICAgICAgImdvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xl
dGVzdC9zcmMvZ3Rlc3QtYWxsLmNjIiwKICAgICAgICAgICAgICJndGVzdF9hbGxfdGVzdC5jYyIs
CiAgICAgICAgICAgICAiZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIiwKICAgICAgICAgICAg
ICJndGVzdC1saXN0ZW5lcl90ZXN0LmNjIiwKICAgICAgICAgICAgICJndGVzdC11bml0dGVzdC1h
cGlfdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2Mi
LAorICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYyIsCiAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIiwKICAgICAgICAgICAg
ICJnb29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWVu
di12YXItdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRl
c3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdF8uY2MiLAor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyIs
CiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyIs
Ci0gICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCi0gICAgICAgICAg
ICAgImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVz
dC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1
ZmZsZS10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10
ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNj
IiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAotICAgICAgICAg
ICAgICJnb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MiLAotICAgICAgICAgICAg
ICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYyIsCi0gICAgICAg
ICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKLQor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyIsCisgICAgICAgICAgICAi
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlz
dC10ZXN0cy11bml0dGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2h1ZmZsZS10
ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5j
YyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3RfLmNjIiwKKyAg
ICAgICAgICAgICJnb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyIsCisgICAgICAgICAg
ICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qt
dGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJh
bS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qt
cGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIiwKICAgICAgICAgXSwKICAgICApICsg
c2VsZWN0KHsKICAgICAgICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3Nf
bXN2YyI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAg
ICAiZ29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIiwKLSAgICAgICAgXSwKKyAgICAgICAgIi8vY29u
ZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSksCiAgICAgY29wdHMgPSBzZWxlY3QoewogICAg
ICAgICAiLy86d2luZG93cyI6IFsiLURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0wIl0sCi0gICAg
ICAgICIvLzp3aW5kb3dzX21zdmMiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9MCJdLAog
ICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQ
TEU9MSJdLAorICAgIH0pICsgc2VsZWN0KHsKKyAgICAgICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMg
c291cmNlIGZpbGVzIGFzIFVURi04IGVuY29kZWQuCisgICAgICAgICIvLzptc3ZjX2NvbXBpbGVy
IjogWyItdXRmLTgiXSwKKyAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAg
fSksCiAgICAgaW5jbHVkZXMgPSBbCiAgICAgICAgICJnb29nbGV0ZXN0IiwKQEAgLTEwNiwxNSAr
OTYsMTEgQEAgY2NfdGVzdCgKICAgICBdLAogICAgIGxpbmtvcHRzID0gc2VsZWN0KHsKICAgICAg
ICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8vOndpbmRvd3NfbXN2YyI6IFtdLAotICAg
ICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAiLXB0aHJlYWQiLAot
ICAgICAgICBdLAorICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi1wdGhyZWFkIl0s
CiAgICAgfSksCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAogKQogCi0KICMgVGVzdHMg
ZGVhdGggdGVzdHMuCiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0
LXRlc3QiLApAQCAtMTc1LDYgKzE2MSw3IEBAIHB5X2xpYnJhcnkoCiAgICAgbmFtZSA9ICJndGVz
dF90ZXN0X3V0aWxzIiwKICAgICB0ZXN0b25seSA9IDEsCiAgICAgc3JjcyA9IFsiZ3Rlc3RfdGVz
dF91dGlscy5weSJdLAorICAgIGltcG9ydHMgPSBbIi4iXSwKICkKIAogY2NfYmluYXJ5KApAQCAt
MTk5LDEzICsxODYsMTIgQEAgY2NfYmluYXJ5KAogICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCiAp
CiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QiLAogICAg
IHNpemUgPSAic21hbGwiLAogICAgIHNyY3MgPSBbImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHki
XSwKICAgICBhcmdzID0gc2VsZWN0KHsKLSAgICAgICAgIjpoYXNfYWJzbCI6IFtdLAorICAgICAg
ICAiLy86aGFzX2Fic2wiOiBbXSwKICAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWyIt
LW5vX3N0YWNrdHJhY2Vfc3VwcG9ydCJdLAogICAgIH0pLAogICAgIGRhdGEgPSBbCkBAIC0yNDUs
NiArMjMxLDIxIEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwK
ICkKIAorY2NfYmluYXJ5KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVz
dF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0LWZhaWxmYXN0
LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCispCisKK3B5X3Rlc3Qo
CisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0IiwKKyAgICBzaXplID0g
Im1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weSJd
LAorICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XyJdLAorICAgIGRl
cHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCispCisKIGNjX2JpbmFyeSgKICAgICBuYW1lID0g
Imdvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0XyIsCiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMjYw
LDYgKzI2MSwyMCBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0s
CiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25t
ZW50LXVuaXR0ZXN0XyIsCisgICAgdGVzdG9ubHkgPSAxLAorICAgIHNyY3MgPSBbImdvb2dsZXRl
c3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0
ZXN0Il0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZp
cm9ubWVudC11bml0dGVzdCIsCisgICAgc2l6ZSA9ICJtZWRpdW0iLAorICAgIHNyY3MgPSBbImdv
b2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsi
Omdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0XyJdLAorICAgIGRlcHMgPSBb
IjpndGVzdF90ZXN0X3V0aWxzIl0sCispCiAKIGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdvb2ds
ZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdF8iLApAQCAtMjY4LDggKzI4Myw2IEBAIGNj
X2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAogKQogCi0KLQogcHlfdGVzdCgKICAg
ICBuYW1lID0gImdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdCIsCiAgICAgc2l6
ZSA9ICJzbWFsbCIsCkBAIC0yNzgsNyArMjkxLDYgQEAgcHlfdGVzdCgKICAgICBkZXBzID0gWyI6
Z3Rlc3RfdGVzdF91dGlscyJdLAogKQogCi0KIGNjX3Rlc3QoCiAgICAgbmFtZSA9ICJndGVzdF9h
c3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QiLAogICAgIHNpemUgPSAic21hbGwiLApAQCAtMjg2LDgg
KzI5OCw2IEBAIGNjX3Rlc3QoCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3QiXSwKICkKIAotCi0KIGNj
X2JpbmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0XyIs
CiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMzAzLDcgKzMxMyw2IEBAIHB5X3Rlc3QoCiAgICAgZGVw
cyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAotCiBjY19iaW5hcnkoCiAgICAgbmFtZSA9
ICJnb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfIiwKICAgICB0ZXN0b25seSA9IDEsCkBA
IC0zMTEsNiArMzIwLDM4IEBAIGNjX2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJdLAog
KQogCitjY190ZXN0KAorICAgIG5hbWUgPSAiZ3Rlc3Rfc2tpcF90ZXN0IiwKKyAgICBzaXplID0g
InNtYWxsIiwKKyAgICBzcmNzID0gWyJndGVzdF9za2lwX3Rlc3QuY2MiXSwKKyAgICBkZXBzID0g
WyIvLzpndGVzdF9tYWluIl0sCispCisKK2NjX3Rlc3QoCisgICAgbmFtZSA9ICJndGVzdF9za2lw
X2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNy
Y3MgPSBbImd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyJdLAorICAgIGRl
cHMgPSBbIi8vOmd0ZXN0X21haW4iXSwKKykKKworcHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0
X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3Mg
PSBbImd0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWyI6Z3Rl
c3Rfc2tpcF90ZXN0Il0sCisgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKKykKKwor
cHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBfZW52aXJvbm1lbnRfY2hlY2tfb3V0cHV0
X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAgIHNyY3MgPSBbImd0ZXN0X3NraXBfZW52
aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwKKyAgICBkYXRhID0gWworICAgICAgICAi
Omd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdCIsCisgICAgXSwKKyAgICBkZXBz
ID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBweV90ZXN0KAogICAgIG5hbWUgPSAiZ29v
Z2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTM4
MSw3ICs0MjIsNyBAQCBweV90ZXN0KAogICAgICAgICAiZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHki
LAogICAgIF0sCiAgICAgYXJncyA9IHNlbGVjdCh7Ci0gICAgICAgICI6aGFzX2Fic2wiOiBbXSwK
KyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCiAgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVs
dCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKICAgICB9KSwKICAgICBkYXRhID0gWwpA
QCAtNDIxLDYgKzQ2MiwyMSBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0
aWxzIl0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3Qtc2V0dXB0ZXN0
c3VpdGUtdGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29nbGV0ZXN0
LXNldHVwdGVzdHN1aXRlLXRlc3RfLmNjIl0sCisgICAgZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJd
LAorKQorCitweV90ZXN0KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10
ZXN0IiwKKyAgICBzaXplID0gIm1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1zZXR1
cHRlc3RzdWl0ZS10ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3Qtc2V0dXB0ZXN0
c3VpdGUtdGVzdF8iXSwKKyAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBj
Y19iaW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdF8iLAog
ICAgIHRlc3Rvbmx5ID0gMSwKQEAgLTQ1Miw3ICs1MDgsNiBAQCBweV90ZXN0KAogICAgIGRlcHMg
PSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdv
b2dsZXRlc3QtanNvbi1vdXRmaWxlcy10ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTQ3
NCwxOCArNTI5LDE5IEBAIHB5X3Rlc3QoCiAgICAgICAgICJnb29nbGV0ZXN0LWpzb24tb3V0cHV0
LXVuaXR0ZXN0LnB5IiwKICAgICAgICAgImd0ZXN0X2pzb25fdGVzdF91dGlscy5weSIsCiAgICAg
XSwKKyAgICBhcmdzID0gc2VsZWN0KHsKKyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCisgICAg
ICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwK
KyAgICB9KSwKICAgICBkYXRhID0gWwogICAgICAgICAjIFdlIGludm9rZSBndGVzdF9ub190ZXN0
X3VuaXR0ZXN0IHRvIHZlcmlmeSB0aGUgSlNPTiBvdXRwdXQKICAgICAgICAgIyB3aGVuIHRoZSB0
ZXN0IHByb2dyYW0gY29udGFpbnMgbm8gdGVzdCBkZWZpbml0aW9uLgogICAgICAgICAiOmd0ZXN0
X25vX3Rlc3RfdW5pdHRlc3QiLAogICAgICAgICAiOmd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Rf
IiwKICAgICBdLAotICAgIGFyZ3MgPSBzZWxlY3QoewotICAgICAgICAiOmhhc19hYnNsIjogW10s
Ci0gICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBv
cnQiXSwKLSAgICB9KSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQorCiAj
IFZlcmlmaWVzIGludGVyYWN0aW9uIG9mIGRlYXRoIHRlc3RzIGFuZCBleGNlcHRpb25zLgogY2Nf
dGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF9jYXRjaF90ZXN0IiwK
QEAgLTUxNSw2ICs1NzEsMTAgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwKICAgICBz
cmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0LnB5Il0sCiAg
ICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfIl0s
CisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAgICAibm9f
dGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJd
LAogKQogCkBAIC01MjMsNSArNTgzLDkgQEAgcHlfdGVzdCgKICAgICBzaXplID0gInNtYWxsIiwK
ICAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0LnB5
Il0sCiAgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRl
c3RfIl0sCisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3RfbXN2YzIwMTUiLAorICAgICAg
ICAibm9fdGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91
dGlscyJdLAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkKaW5kZXggNWQ0OWMxMDIz
YzUwZWYxNjgzM2U2YjhlMmE4ZTYyMDI0ODQzMmFjMy4uOTRhNWIzM2YyMzA1MDkyNTkzNzU1YzNh
Yjg2YWE1ZjZjMzI5ZTJhMCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0LnB5CkBAIC04
OSw5ICs4OSw5IEBAIGlmIFNVUFBPUlRTX1NFSF9FWENFUFRJT05TOgogICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biAnCiAgICAgICAgICAgICAg
ICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgZGVzdHJ1Y3RvcicKICAgICAgICAgICAgICAg
ICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3
aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXBUZXN0Q2FzZSgpJworICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBTZXRVcFRlc3RTdWl0
ZSgpJwogICAgICAgICAgICAgICAgICAgIGluIHRlc3Rfb3V0cHV0KQotICAgICAgc2VsZi5hc3Nl
cnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJhIHRocm93biBpbiBUZWFyRG93blRlc3RD
YXNlKCknCisgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEg
dGhyb3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVz
dF9vdXRwdXQpCiAgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRpb24gd2l0aCBjb2RlIDB4
MmEgdGhyb3duIGluIFNldFVwKCknCiAgICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQp
CkBAIC0xMTcsMTAgKzExNywxMSBAQCBjbGFzcyBDYXRjaEN4eEV4Y2VwdGlvbnNUZXN0KGd0ZXN0
X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAiIiIKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNl
cHRpb25zSW5GaXh0dXJlQ29uc3RydWN0b3Ioc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysg
ZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJwotICAgICAgICAgICAgICAgICAnIlN0YW5kYXJk
IEMrKyBleGNlcHRpb24iIHRocm93biAnCi0gICAgICAgICAgICAgICAgICdpbiB0aGUgdGVzdCBm
aXh0dXJlXCdzIGNvbnN0cnVjdG9yJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBk
ZXNjcmlwdGlvbiAnCisgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3duICcK
KyAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgY29uc3RydWN0b3InIGluIEVYX0JJTkFS
WV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1
bmV4cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1Ro
aXMgZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAg
ICAgJyJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCIgKG5vIHF1b3RlcykgJwpAQCAtMTMw
LDg4ICsxMzEsOTAgQEAgY2xhc3MgQ2F0Y2hDeHhFeGNlcHRpb25zVGVzdChndGVzdF90ZXN0X3V0
aWxzLlRlc3RDYXNlKToKICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpOgogCiAgICAgZGVmIHRlc3RD
YXRjaGVzQ3h4RXhjZXB0aW9uc0luRml4dHVyZURlc3RydWN0b3Ioc2VsZik6Ci0gICAgICBzZWxm
LmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAnCi0gICAgICAgICAgICAg
ICAgICAgJyJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIiB0aHJvd24gJwotICAgICAgICAgICAgICAg
ICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3RydWN0b3InCi0gICAgICAgICAgICAgICAg
ICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9u
SW5EZXN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAg
ICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllf
T1VUUFVUKQorICAgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAgICdDKysgZXhjZXB0aW9u
IHdpdGggZGVzY3JpcHRpb24gJworICAgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIg
dGhyb3duICcKKyAgICAgICAgICAnaW4gdGhlIHRlc3QgZml4dHVyZVwncyBkZXN0cnVjdG9yJyBp
biBFWF9CSU5BUllfT1VUUFVULAorICAgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgICBz
ZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgJ0N4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Q6
OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBp
biBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hl
c0N4eEV4Y2VwdGlvbnNJblNldFVwVGVzdENhc2Uoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdD
KysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwot
ICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcFRlc3RDYXNlKCknCi0gICAgICAgICAg
ICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRp
b25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgpICcKLSAgICAgICAgICAgICAg
ICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9P
VVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0
IGNvbnN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0g
ICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdD
eHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAg
ICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRl
c3Q6OlNldFVwKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAg
ICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4
eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAg
ICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRl
c3QgdGVzdCBib2R5ICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0g
ICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVl
KAorICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysg
ZXhjZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4gU2V0VXBUZXN0U3VpdGUoKScgaW4gRVhf
QklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisg
ICAgICAgICdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0U3VpdGUo
KSAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBF
WF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2Vw
dGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0IGNvbnN0cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBh
cyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAg
c2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRl
c3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5B
UllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAg
ICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRl
c3RTdWl0ZVRlc3Q6OlRlYXJEb3duKCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicg
aW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRy
dWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkg
JworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhf
QklOQVJZX09VVFBVVCkKIAogICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5UZWFyRG93
blRlc3RDYXNlKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRl
c2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAgICAgICAgICAgJyB0
aHJvd24gaW4gVGVhckRvd25UZXN0Q2FzZSgpJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5B
UllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24g
d2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisgICAgICAgICcgdGhy
b3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFS
WV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luU2V0VXAoc2VsZik6
Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5k
YXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRVcCgp
JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0
XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAg
ICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9C
SU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Qg
ZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAg
ICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2Fs
bGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkK
KyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3Jp
cHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJworICAgICAgICAnIHRocm93biBpbiBTZXRV
cCgpJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RT
dWl0ZSgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQ
VVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhw
ZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93bigp
ICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVY
X0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1bmV4cGVjdGVkJyBub3QgaW4gRVhf
QklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAgJ1RoaXMgZmFpbHVyZSBiZWxvbmdzIGlu
IHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAgICAgICAgJyJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdCIgKG5vIHF1b3RlcykgJwogICAgICAgICAgICAgICAgICAnYXBwZWFycyBvbiB0aGUg
c2FtZSBsaW5lIGFzIHdvcmRzICJjYWxsZWQgdW5leHBlY3RlZGx5IicpCiAKICAgZGVmIHRlc3RD
YXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVhckRvd24oc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdD
KysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwot
ICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBUZWFyRG93bigpJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxs
ZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQot
ICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgZGVzdHJ1Y3RvciAn
Ci0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0Mr
KyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCisg
ICAgICAgICcgdGhyb3duIGluIFRlYXJEb3duKCknIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJ
TkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9u
SW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAnY2FsbGVkIGFz
IGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBz
ZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0
cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQ
VVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0lu
VGVzdEJvZHkoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVz
Y3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRo
cm93biBpbiB0aGUgdGVzdCBib2R5JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJE
b3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwot
ICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0Xygn
Q3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAg
ICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJE
b3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAg
ICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAg
ICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRp
b24iJworICAgICAgICAnIHRocm93biBpbiB0aGUgdGVzdCBib2R5JyBpbiBFWF9CSU5BUllfT1VU
UFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4
eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9k
eVRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9C
SU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAg
ICAgICAgJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93bigpICcKKyAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQ
VVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzTm9uU3RkQ3h4RXhjZXB0aW9ucyhzZWxmKToKLSAgICBz
ZWxmLmFzc2VydF8oJ1Vua25vd24gQysrIGV4Y2VwdGlvbiB0aHJvd24gaW4gdGhlIHRlc3QgYm9k
eScKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2Vy
dFRydWUoCisgICAgICAgICdVbmtub3duIEMrKyBleGNlcHRpb24gdGhyb3duIGluIHRoZSB0ZXN0
IGJvZHknIGluIEVYX0JJTkFSWV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAK
ICAgZGVmIHRlc3RVbmhhbmRsZWRDeHhFeGNlcHRpb25zQWJvcnRUaGVQcm9ncmFtKHNlbGYpOgog
ICAgICMgRmlsdGVycyBvdXQgU0VIIGV4Y2VwdGlvbiB0ZXN0cyBvbiBXaW5kb3dzLiBVbmhhbmRs
ZWQgU0VIIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKaW5kZXgg
MDlkYWU3MDAzMGEzM2FlYWJhMDYwYWFlZjk3YTk3OWE4ZjU4MDRhZS4uOGMxMjdkNDBiMTFkNGQ3
MmEzZmFhZTgwYmFmYmI3NDZkMWFhNDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVz
dF8uY2MKQEAgLTY0LDE5ICs2NCwyMCBAQCBjbGFzcyBTZWhFeGNlcHRpb25JbkRlc3RydWN0b3JU
ZXN0IDogcHVibGljIFRlc3QgewogCiBURVNUX0YoU2VoRXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVz
dCwgVGhyb3dzRXhjZXB0aW9uSW5EZXN0cnVjdG9yKSB7fQogCi1jbGFzcyBTZWhFeGNlcHRpb25J
blNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgU2VoRXhjZXB0aW9uSW5T
ZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9p
ZCBTZXRVcFRlc3RDYXNlKCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KKyAg
c3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IFJhaXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBO
VUxMKTsgfQogfTsKIAotVEVTVF9GKFNlaEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRo
cm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkge30KK1RFU1RfRihTZWhFeGNlcHRpb25JblNl
dFVwVGVzdFN1aXRlVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZSkge30KIAot
Y2xhc3MgU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsK
K2NsYXNzIFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3Qg
ewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsgUmFpc2VFeGNl
cHRpb24oNDIsIDAsIDAsIE5VTEwpOyB9CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRl
KCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVMTCk7IH0KIH07CiAKLVRFU1RfRihTZWhF
eGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3du
VGVzdENhc2UpIHt9CitURVNUX0YoU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRlc3Qs
CisgICAgICAgVGhyb3dzRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZSkge30KIAogY2xhc3Mg
U2VoRXhjZXB0aW9uSW5TZXRVcFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgpAQCAt
MTA5LDI0ICsxMTAsMjQgQEAgY2xhc3MgQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQg
QysrIGV4Y2VwdGlvbiIpKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2Uo
KSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMi
LAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVz
dENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVh
ckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsK
ICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QoKSB7
CisgIH5DeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERf
RkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdCBkZXN0cnVjdG9yICIK
ICAgICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgQURE
X0ZBSUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlNldFVwKCkgIgog
ICAgICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4cGVjdGVkbHkuIjsKICAgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICBBRERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRv
d24oKSAiCiAgICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogICB9
CkBAIC0xMzcsOTcgKzEzOCw3OCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRl
c3QsIFRocm93c0V4Y2VwdGlvbkluQ29uc3RydWN0b3IpIHsKICAgICAgICAgICAgICAgICA8PCAi
Y2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogfQogCi0vLyBFeGNlcHRpb25zIGluIGRlc3RydWN0b3Jz
IGFyZSBub3Qgc3VwcG9ydGVkIGluIEMrKzExLgotI2lmICFHVEVTVF9MQU5HX0NYWDExCi1jbGFz
cyBDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgot
ICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBDeHhFeGNlcHRpb25JblNldFVw
VGVzdFN1aXRlVGVzdCgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2Vw
dGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJD
eHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCBjb25zdHJ1Y3RvciAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCi0gcHJvdGVjdGVkOgotICB+Q3h4RXhj
ZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCgpIHsKLSAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJM
RV9DT0RFX1dBUk5JTkdfQkVMT1dfKAotICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3Io
IlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKSk7Ci0gIH0KLX07Ci0KLVRFU1RfRihDeHhFeGNlcHRp
b25JbkRlc3RydWN0b3JUZXN0LCBUaHJvd3NFeGNlcHRpb25JbkRlc3RydWN0b3IpIHt9Ci0jZW5k
aWYgIC8vIEMrKzExIG1vZGUKLQotY2xhc3MgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVz
dCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2Fz
ZVRlc3QoKSB7Ci0gICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNl
dFVwVGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICIKLSAgICAgICAgICAgImNhbGxlZCBhcyBleHBl
Y3RlZC5cbiIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3Rh
dGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9y
KCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBw
cmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6
OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVz
dFN1aXRlVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMg
ZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5TZXRV
cFRlc3RDYXNlVGVzdCgpIHsKKyAgfkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0KCkg
b3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5T
ZXRVcFRlc3RDYXNlVGVzdCBkZXN0cnVjdG9yICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0U3VpdGVUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4
cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRp
b25JblNldFVwVGVzdENhc2VUZXN0OjpTZXRVcCgpICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICIKICAgICAgICAgICAgImNhbGxlZCBhcyBl
eHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lk
IFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4
RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdDo6VGVhckRvd24oKSAiCisgICAgICAgICAgICJD
eHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogfTsKIAotVEVTVF9GKEN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkgewor
VEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0LCBUaHJvd3NFeGNlcHRpb25J
blNldFVwVGVzdFN1aXRlKSB7CiAgIHByaW50ZigiJXMiLAotICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICIKKyAgICAgICAgICJDeHhFeGNlcHRpb25J
blNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgIgogICAgICAgICAgImNhbGxlZCBhcyBleHBl
Y3RlZC5cbiIpOwogfQogCi1jbGFzcyBDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0
IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RD
YXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICB0aHJvdyBz
dGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsKICAgfQogfTsKIAot
VEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlv
bkluVGVhckRvd25UZXN0Q2FzZSkge30KK1RFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVz
dFN1aXRlVGVzdCwKKyAgICAgICBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1aXRlKSB7
fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblNldFVwVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJs
aWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRl
YXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhF
eGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0
aW9uSW5TZXRVcFRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JblNldFVwVGVzdCgpIG92ZXJyaWRl
IHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0
IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3Rh
bmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHRocm93
IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CiAKLSAgdmly
dHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAg
IHByaW50ZigiJXMiLAogICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJE
b3duKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CkBAIC0yNDEsMjAg
KzIyMywyMCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QsIFRocm93c0V4Y2VwdGlv
bkluU2V0VXApIHsKIAogY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBz
dGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAg
ICAgICAgIkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgor
ICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRl
KCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAogIHByb3Rl
Y3RlZDoKLSAgfkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0KCkgeworICB+Q3h4RXhjZXB0aW9u
SW5UZWFyRG93blRlc3QoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAg
ICJDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgImNh
bGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
eworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRocm93IHN0ZDo6cnVudGltZV9l
cnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwogICB9CiB9OwpAQCAtMjYzLDIwICsyNDUs
MjAgQEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0LCBUaHJvd3NFeGNlcHRpb25J
blRlYXJEb3duKSB7fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdCA6IHB1Ymxp
YyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7Cisg
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAg
ICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAi
CisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd25UZXN0U3Vp
dGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJv
dGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QoKSB7CisgIH5DeHhFeGNlcHRp
b25JblRlc3RCb2R5VGVzdCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAg
ICAgIkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAi
Y2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAg
ICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAg
ICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKQEAgLTI5Niw3ICsyNzgsNyBAQCBURVNUKEN4
eEV4Y2VwdGlvblRlc3QsIFRocm93c05vblN0ZEN4eEV4Y2VwdGlvbikgewogLy8gb25lcy4KIHZv
aWQgVGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFu
ZGxlZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRoZSBwcm9ncmFtLiIpOwotICBmZmx1c2go
TlVMTCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhpdCgzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRl
c3QuY2MKaW5kZXggYzBjMzAyNmZiNTg5NTY2MGFkMmM5ZDY1ZmJkOTliNWZhZjlhZDQ4Yy4uYzBi
M2QxZjIxZDA0ZDNkZTc3ODAzODM2NzA0Y2I3ZjQ3ZDJhZGZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdC10ZXN0
LmNjCkBAIC0zMSw2ICszMSw3IEBACiAvLyBUZXN0cyBmb3IgZGVhdGggdGVzdHMuCiAKICNpbmNs
dWRlICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisKICNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgiCiAKQEAgLTQwLDcg
KzQxLDkgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiAjaWYgR1RFU1Rf
SEFTX0RFQVRIX1RFU1QKIAogIyBpZiBHVEVTVF9PU19XSU5ET1dTCisjICBpbmNsdWRlIDxmY250
bC5oPiAgICAgICAgICAgLy8gRm9yIE9fQklOQVJZCiAjICBpbmNsdWRlIDxkaXJlY3QuaD4gICAg
ICAgICAgLy8gRm9yIGNoZGlyKCkuCisjICBpbmNsdWRlIDxpby5oPgogIyBlbHNlCiAjICBpbmNs
dWRlIDx1bmlzdGQuaD4KICMgIGluY2x1ZGUgPHN5cy93YWl0Lmg+ICAgICAgICAvLyBGb3Igd2Fp
dHBpZC4KQEAgLTU5LDYgKzYyLDggQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1Ry
dWU7CiAKIG5hbWVzcGFjZSBwb3NpeCA9IDo6dGVzdGluZzo6aW50ZXJuYWw6OnBvc2l4OwogCit1
c2luZyB0ZXN0aW5nOjpDb250YWluc1JlZ2V4OwordXNpbmcgdGVzdGluZzo6TWF0Y2hlcjsKIHVz
aW5nIHRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdEZhY3Rvcnk7CkBAIC05Nyw2ICsx
MDIsOCBAQCBjbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSB7CiB9ICAvLyBuYW1lc3BhY2Ug
aW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKK25hbWVzcGFjZSB7CisKIHZvaWQg
RGllV2l0aE1lc3NhZ2UoY29uc3QgOjpzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewogICBmcHJpbnRm
KHN0ZGVyciwgIiVzIiwgbWVzc2FnZS5jX3N0cigpKTsKICAgZmZsdXNoKHN0ZGVycik7ICAvLyBN
YWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhpdHMuCkBA
IC0xMjMsOSArMTMwLDcgQEAgY2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIFRlc3RGb3JEZWF0aFRlc3QoKSA6IG9yaWdpbmFsX2Rp
cl8oRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSkge30KIAotICB2aXJ0dWFsIH5UZXN0Rm9yRGVh
dGhUZXN0KCkgewotICAgIHBvc2l4OjpDaERpcihvcmlnaW5hbF9kaXJfLmNfc3RyKCkpOwotICB9
CisgIH5UZXN0Rm9yRGVhdGhUZXN0KCkgb3ZlcnJpZGUgeyBwb3NpeDo6Q2hEaXIob3JpZ2luYWxf
ZGlyXy5jX3N0cigpKTsgfQogCiAgIC8vIEEgc3RhdGljIG1lbWJlciBmdW5jdGlvbiB0aGF0J3Mg
ZXhwZWN0ZWQgdG8gZGllLgogICBzdGF0aWMgdm9pZCBTdGF0aWNNZW1iZXJGdW5jdGlvbigpIHsg
RGllSW5zaWRlKCJTdGF0aWNNZW1iZXJGdW5jdGlvbiIpOyB9CkBAIC0xMzYsNyArMTQxLDcgQEAg
Y2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICAgIERp
ZUluc2lkZSgiTWVtYmVyRnVuY3Rpb24iKTsKICAgfQogCi0gIC8vIFRydWUgaWZmIE1lbWJlckZ1
bmN0aW9uKCkgc2hvdWxkIGRpZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5j
dGlvbigpIHNob3VsZCBkaWUuCiAgIGJvb2wgc2hvdWxkX2RpZV87CiAgIGNvbnN0IEZpbGVQYXRo
IG9yaWdpbmFsX2Rpcl87CiB9OwpAQCAtMTUzLDcgKzE1OCw3IEBAIGNsYXNzIE1heURpZSB7CiAg
IH0KIAogIHByaXZhdGU6Ci0gIC8vIFRydWUgaWZmIE1lbWJlckZ1bmN0aW9uKCkgc2hvdWxkIGRp
ZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1iZXJGdW5jdGlvbigpIHNob3VsZCBkaWUu
CiAgIGJvb2wgc2hvdWxkX2RpZV87CiB9OwogCkBAIC0xOTksNiArMjA0LDI2IEBAIGludCBEaWVJ
bkRlYnVnRWxzZTEyKGludCogc2lkZWVmZmVjdCkgewogICByZXR1cm4gMTI7CiB9CiAKKyMgaWYg
R1RFU1RfT1NfV0lORE9XUworCisvLyBEZWF0aCBpbiBkYmcgZHVlIHRvIFdpbmRvd3MgQ1JUIGFz
c2VydGlvbiBmYWlsdXJlLCBub3Qgb3B0LgoraW50IERpZUluQ1JURGVidWdFbHNlMTIoaW50KiBz
aWRlZWZmZWN0KSB7CisgIGlmIChzaWRlZWZmZWN0KSAqc2lkZWVmZmVjdCA9IDEyOworCisgIC8v
IENyZWF0ZSBhbiBpbnZhbGlkIGZkIGJ5IGNsb3NpbmcgYSB2YWxpZCBvbmUKKyAgaW50IGZkcGlw
ZVsyXTsKKyAgRVhQRUNUX0VRKF9waXBlKGZkcGlwZSwgMjU2LCBPX0JJTkFSWSksIDApOworICBF
WFBFQ1RfRVEoX2Nsb3NlKGZkcGlwZVswXSksIDApOworICBFWFBFQ1RfRVEoX2Nsb3NlKGZkcGlw
ZVsxXSksIDApOworCisgIC8vIF9kdXAoKSBzaG91bGQgY3Jhc2ggaW4gZGVidWcgbW9kZQorICBF
WFBFQ1RfRVEoX2R1cChmZHBpcGVbMF0pLCAtMSk7CisKKyAgcmV0dXJuIDEyOworfQorCisjZW5k
aWYgIC8vIEdURVNUX09TX1dJTkRPV1MKKwogIyBpZiBHVEVTVF9PU19XSU5ET1dTIHx8IEdURVNU
X09TX0ZVQ0hTSUEKIAogLy8gVGVzdHMgdGhlIEV4aXRlZFdpdGhDb2RlIHByZWRpY2F0ZS4KQEAg
LTI3Myw2ICsyOTgsMTMgQEAgVEVTVChFeGl0U3RhdHVzUHJlZGljYXRlVGVzdCwgS2lsbGVkQnlT
aWduYWwpIHsKIAogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19GVUNI
U0lBCiAKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0
aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RhbmdsaW5nLWVsc2UiCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1wdHktYm9keSIKKyNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2VuZGlmCiAvLyBUZXN0cyB0aGF0IHRoZSBk
ZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBtYXkgb3IgbWF5IG5vdAogLy8g
YmUgZm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRoYXQgaW4gZWl0aGVyIGNhc2UgdGhlIGNv
bXBsZXRlIHRleHQKIC8vIGNvbXByaXNlcyBvbmx5IGEgc2luZ2xlIEMrKyBzdGF0ZW1lbnQuCkBA
IC0yOTYsNiArMzI4LDExIEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBTaW5nbGVTdGF0ZW1l
bnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9ERUFUSChfZXhpdCgxKSwgIiIpIDw8IDEgPDwgMiA8
PCAzOwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2Vu
ZGlmCisKKyMgaWYgR1RFU1RfVVNFU19QQ1JFCiAKIHZvaWQgRGllV2l0aEVtYmVkZGVkTnVsKCkg
ewogICBmcHJpbnRmKHN0ZGVyciwgIkhlbGxvJWNteSBudWxsIHdvcmxkLlxuIiwgJ1wwJyk7CkBA
IC0zMDMsOCArMzQwLDYgQEAgdm9pZCBEaWVXaXRoRW1iZWRkZWROdWwoKSB7CiAgIF9leGl0KDEp
OwogfQogCi0jIGlmIEdURVNUX1VTRVNfUENSRQotCiAvLyBUZXN0cyB0aGF0IEVYUEVDVF9ERUFU
SCBhbmQgQVNTRVJUX0RFQVRIIHdvcmsgd2hlbiB0aGUgZXJyb3IKIC8vIG1lc3NhZ2UgaGFzIGEg
TlVMIGNoYXJhY3RlciBpbiBpdC4KIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFbWJlZGRlZE51
bEluTWVzc2FnZSkgewpAQCAtMzY2LDE3ICs0MDEsMTkgQEAgdm9pZCBTaWdwcm9mQWN0aW9uKGlu
dCwgc2lnaW5mb190Kiwgdm9pZCopIHsgLyogbm8gb3AgKi8gfQogCiAvLyBTZXRzIFNJR1BST0Yg
YWN0aW9uIGFuZCBJVElNRVJfUFJPRiB0aW1lciAoaW50ZXJ2YWw6IDFtcykuCiB2b2lkIFNldFNp
Z3Byb2ZBY3Rpb25BbmRUaW1lcigpIHsKLSAgc3RydWN0IGl0aW1lcnZhbCB0aW1lcjsKLSAgdGlt
ZXIuaXRfaW50ZXJ2YWwudHZfc2VjID0gMDsKLSAgdGltZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9
IDE7Ci0gIHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgw
LCBzZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgTlVMTCkpOwogICBzdHJ1Y3Qgc2lnYWN0
aW9uIHNpZ25hbF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNp
Z25hbF9hY3Rpb24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CiAg
IHNpZ25hbF9hY3Rpb24uc2Ffc2lnYWN0aW9uID0gU2lncHJvZkFjdGlvbjsKICAgc2lnbmFsX2Fj
dGlvbi5zYV9mbGFncyA9IFNBX1JFU1RBUlQgfCBTQV9TSUdJTkZPOwotICBBU1NFUlRfRVEoMCwg
c2lnYWN0aW9uKFNJR1BST0YsICZzaWduYWxfYWN0aW9uLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgw
LCBzaWdhY3Rpb24oU0lHUFJPRiwgJnNpZ25hbF9hY3Rpb24sIG51bGxwdHIpKTsKKyAgLy8gdGlt
ZXIgY29tZXMgc2Vjb25kLCB0byBhdm9pZCBTSUdQUk9GIHByZW1hdHVyZSBkZWxpdmVyeSwgYXMg
c3VnZ2VzdGVkIGF0CisgIC8vIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51
YWwvaHRtbF9ub2RlL1NldHRpbmctYW4tQWxhcm0uaHRtbAorICBzdHJ1Y3QgaXRpbWVydmFsIHRp
bWVyOworICB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOworICB0aW1lci5pdF9pbnRlcnZh
bC50dl91c2VjID0gMTsKKyAgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKKyAg
QVNTRVJUX0VRKDAsIHNldGl0aW1lcihJVElNRVJfUFJPRiwgJnRpbWVyLCBudWxscHRyKSk7CiB9
CiAKIC8vIERpc2FibGVzIElUSU1FUl9QUk9GIHRpbWVyIGFuZCBpZ25vcmVzIFNJR1BST0Ygc2ln
bmFsLgpAQCAtMzg1LDcgKzQyMiw3IEBAIHZvaWQgRGlzYWJsZVNpZ3Byb2ZBY3Rpb25BbmRUaW1l
cihzdHJ1Y3Qgc2lnYWN0aW9uKiBvbGRfc2lnbmFsX2FjdGlvbikgewogICB0aW1lci5pdF9pbnRl
cnZhbC50dl9zZWMgPSAwOwogICB0aW1lci5pdF9pbnRlcnZhbC50dl91c2VjID0gMDsKICAgdGlt
ZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKLSAgQVNTRVJUX0VRKDAsIHNldGl0aW1l
cihJVElNRVJfUFJPRiwgJnRpbWVyLCBOVUxMKSk7CisgIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIo
SVRJTUVSX1BST0YsICZ0aW1lciwgbnVsbHB0cikpOwogICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25h
bF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rp
b24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rpb24uc2FfbWFzayk7CkBAIC00NTIsMjEg
KzQ4OSwxNyBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgTWl4ZWRTdHlsZXMpIHsKIAogIyBp
ZiBHVEVTVF9IQVNfQ0xPTkUgJiYgR1RFU1RfSEFTX1BUSFJFQUQKIAotbmFtZXNwYWNlIHsKLQog
Ym9vbCBwdGhyZWFkX2ZsYWc7CiAKIHZvaWQgU2V0UHRocmVhZEZsYWcoKSB7CiAgIHB0aHJlYWRf
ZmxhZyA9IHRydWU7CiB9CiAKLX0gIC8vIG5hbWVzcGFjZQotCiBURVNUX0YoVGVzdEZvckRlYXRo
VGVzdCwgRG9lc05vdEV4ZWN1dGVBdGZvcmtIb29rcykgewogICBpZiAoIXRlc3Rpbmc6OkdURVNU
X0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpIHsKICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwogICAgIHB0aHJlYWRfZmxhZyA9IGZhbHNl
OwotICAgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2F0Zm9yaygmU2V0UHRocmVhZEZsYWcsIE5VTEws
IE5VTEwpKTsKKyAgICBBU1NFUlRfRVEoMCwgcHRocmVhZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFn
LCBudWxscHRyLCBudWxscHRyKSk7CiAgICAgQVNTRVJUX0RFQVRIKF9leGl0KDEpLCAiIik7CiAg
ICAgQVNTRVJUX0ZBTFNFKHB0aHJlYWRfZmxhZyk7CiAgIH0KQEAgLTQ5NCwxOCArNTI3LDE1IEBA
IFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBY2NlcHRzQW55dGhpbmdDb252ZXJ0aWJsZVRvUkUp
IHsKICAgY29uc3QgdGVzdGluZzo6aW50ZXJuYWw6OlJFIHJlZ2V4KHJlZ2V4X2Nfc3RyKTsKICAg
RVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJlZ2V4KTsKIAotIyBpZiBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORwotCi0gIGNvbnN0IDo6c3RyaW5nIHJlZ2V4X3N0cihyZWdleF9jX3N0cik7
Ci0gIEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigpLCByZWdleF9zdHIpOwotCi0jIGVuZGlm
ICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAjIGlmICFHVEVTVF9VU0VTX1BDUkUKIAog
ICBjb25zdCA6OnN0ZDo6c3RyaW5nIHJlZ2V4X3N0ZF9zdHIocmVnZXhfY19zdHIpOwogICBFWFBF
Q1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgcmVnZXhfc3RkX3N0cik7CiAKKyAgLy8gVGhpcyBv
bmUgaXMgdHJpY2t5OyBhIHRlbXBvcmFyeSBwb2ludGVyIGludG8gYW5vdGhlciB0ZW1wb3Jhcnku
ICBSZWZlcmVuY2UKKyAgLy8gbGlmZXRpbWUgZXh0ZW5zaW9uIG9mIHRoZSBwb2ludGVyIGlzIG5v
dCBzdWZmaWNpZW50LgorICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgOjpzdGQ6OnN0
cmluZyhyZWdleF9jX3N0cikuY19zdHIoKSk7CisKICMgZW5kaWYgIC8vICFHVEVTVF9VU0VTX1BD
UkUKIH0KIApAQCAtNTU1LDggKzU4NSw4IEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBFcnJv
ck1lc3NhZ2VNaXNtYXRjaCkgewogICB9LCAiZGllZCBidXQgbm90IHdpdGggZXhwZWN0ZWQgZXJy
b3IiKTsKIH0KIAotLy8gT24gZXhpdCwgKmFib3J0ZWQgd2lsbCBiZSB0cnVlIGlmZiB0aGUgRVhQ
RUNUX0RFQVRIKCkgc3RhdGVtZW50Ci0vLyBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KKy8vIE9uIGV4
aXQsICphYm9ydGVkIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgRVhQRUNUX0RFQVRI
KCkKKy8vIHN0YXRlbWVudCBhYm9ydGVkIHRoZSBmdW5jdGlvbi4KIHZvaWQgRXhwZWN0RGVhdGhU
ZXN0SGVscGVyKGJvb2wqIGFib3J0ZWQpIHsKICAgKmFib3J0ZWQgPSB0cnVlOwogICBFWFBFQ1Rf
REVBVEgoRGllSWYoZmFsc2UpLCAiRGllSWYiKTsgIC8vIFRoaXMgYXNzZXJ0aW9uIHNob3VsZCBm
YWlsLgpAQCAtNjM2LDYgKzY2Niw0MCBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgVGVzdEV4
cGVjdERlYnVnRGVhdGgpIHsKICMgZW5kaWYKIH0KIAorIyBpZiBHVEVTVF9PU19XSU5ET1dTCisK
Ky8vIFRlc3RzIHRoYXQgRVhQRUNUX0RFQlVHX0RFQVRIIHdvcmtzIGFzIGV4cGVjdGVkIHdoZW4g
aW4gZGVidWcgbW9kZQorLy8gdGhlIFdpbmRvd3MgQ1JUIGNyYXNoZXMgdGhlIHByb2Nlc3Mgd2l0
aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKy8vIDEuIEFzc2VydHMgb24gZGVhdGguCisvLyAyLiBI
YXMgbm8gc2lkZSBlZmZlY3QgKGRvZXNuJ3QgcG9wIHVwIGEgd2luZG93IG9yIHdhaXQgZm9yIHVz
ZXIgaW5wdXQpLgorLy8KKy8vIEFuZCBpbiBvcHQgbW9kZSwgaXQ6CisvLyAxLiAgSGFzIHNpZGUg
ZWZmZWN0cyBidXQgZG9lcyBub3QgYXNzZXJ0LgorVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIENS
VERlYnVnRGVhdGgpIHsKKyAgaW50IHNpZGVlZmZlY3QgPSAwOworCisgIC8vIFB1dCB0aGUgcmVn
ZXggaW4gYSBsb2NhbCB2YXJpYWJsZSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuICJ1bnVz
ZWQiCisgIC8vIHdhcm5pbmcgaW4gb3B0IG1vZGUuCisgIGNvbnN0IGNoYXIqIHJlZ2V4ID0gImR1
cC4qIDogQXNzZXJ0aW9uIGZhaWxlZCI7CisKKyAgRVhQRUNUX0RFQlVHX0RFQVRIKERpZUluQ1JU
RGVidWdFbHNlMTIoJnNpZGVlZmZlY3QpLCByZWdleCkKKyAgICAgIDw8ICJNdXN0IGFjY2VwdCBh
IHN0cmVhbWVkIG1lc3NhZ2UiOworCisjIGlmZGVmIE5ERUJVRworCisgIC8vIENoZWNrcyB0aGF0
IHRoZSBhc3NpZ25tZW50IG9jY3VycyBpbiBvcHQgbW9kZSAoc2lkZWVmZmVjdCkuCisgIEVYUEVD
VF9FUSgxMiwgc2lkZWVmZmVjdCk7CisKKyMgZWxzZQorCisgIC8vIENoZWNrcyB0aGF0IHRoZSBh
c3NpZ25tZW50IGRvZXMgbm90IG9jY3VyIGluIGRiZyBtb2RlIChubyBzaWRlZWZmZWN0KS4KKyAg
RVhQRUNUX0VRKDAsIHNpZGVlZmZlY3QpOworCisjIGVuZGlmCit9CisKKyMgZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKKwogLy8gVGVzdHMgdGhhdCBBU1NFUlRfREVCVUdfREVBVEggd29ya3Mg
YXMgZXhwZWN0ZWQsIHRoYXQgaXMsIHlvdSBjYW4gc3RyZWFtIGEKIC8vIG1lc3NhZ2UgdG8gaXQs
IGFuZCBpbiBkZWJ1ZyBtb2RlIGl0OgogLy8gMS4gQXNzZXJ0cyBvbiBkZWF0aC4KQEAgLTg3Niw5
ICs5NDAsOSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRGVhdGhUZXN0TXVsdGlMaW5lTWF0
Y2hQYXNzKSB7CiBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RG
YWN0b3J5IHsKICBwdWJsaWM6CiAgIE1vY2tEZWF0aFRlc3RGYWN0b3J5KCk7Ci0gIHZpcnR1YWwg
Ym9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LAotICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFKiByZWdleCwKLSAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCk7CisgIGJv
b2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgdGVzdGluZzo6
TWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisg
ICAgICAgICAgICAgIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSBvdmVycmlkZTsKIAogICAv
LyBTZXRzIHRoZSBwYXJhbWV0ZXJzIGZvciBzdWJzZXF1ZW50IGNhbGxzIHRvIENyZWF0ZS4KICAg
dm9pZCBTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLCBEZWF0aFRlc3Q6OlRlc3RSb2xlIHJvbGUs
CkBAIC04ODgsMTAgKzk1MiwxMiBAQCBjbGFzcyBNb2NrRGVhdGhUZXN0RmFjdG9yeSA6IHB1Ymxp
YyBEZWF0aFRlc3RGYWN0b3J5IHsKICAgaW50IEFzc3VtZVJvbGVDYWxscygpIGNvbnN0IHsgcmV0
dXJuIGFzc3VtZV9yb2xlX2NhbGxzXzsgfQogICBpbnQgV2FpdENhbGxzKCkgY29uc3QgeyByZXR1
cm4gd2FpdF9jYWxsc187IH0KICAgc2l6ZV90IFBhc3NlZENhbGxzKCkgY29uc3QgeyByZXR1cm4g
cGFzc2VkX2FyZ3NfLnNpemUoKTsgfQotICBib29sIFBhc3NlZEFyZ3VtZW50KGludCBuKSBjb25z
dCB7IHJldHVybiBwYXNzZWRfYXJnc19bbl07IH0KKyAgYm9vbCBQYXNzZWRBcmd1bWVudChpbnQg
bikgY29uc3QgeworICAgIHJldHVybiBwYXNzZWRfYXJnc19bc3RhdGljX2Nhc3Q8c2l6ZV90Pihu
KV07CisgIH0KICAgc2l6ZV90IEFib3J0Q2FsbHMoKSBjb25zdCB7IHJldHVybiBhYm9ydF9hcmdz
Xy5zaXplKCk7IH0KICAgRGVhdGhUZXN0OjpBYm9ydFJlYXNvbiBBYm9ydEFyZ3VtZW50KGludCBu
KSBjb25zdCB7Ci0gICAgcmV0dXJuIGFib3J0X2FyZ3NfW25dOworICAgIHJldHVybiBhYm9ydF9h
cmdzX1tzdGF0aWNfY2FzdDxzaXplX3Q+KG4pXTsKICAgfQogICBib29sIFRlc3REZWxldGVkKCkg
Y29uc3QgeyByZXR1cm4gdGVzdF9kZWxldGVkXzsgfQogCkBAIC05MzMsMjIgKzk5OSwyMCBAQCBj
bGFzcyBNb2NrRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdCB7CiAgICAgICAgICAgICAgICAg
VGVzdFJvbGUgcm9sZSwgaW50IHN0YXR1cywgYm9vbCBwYXNzZWQpIDoKICAgICAgIHBhcmVudF8o
cGFyZW50KSwgcm9sZV8ocm9sZSksIHN0YXR1c18oc3RhdHVzKSwgcGFzc2VkXyhwYXNzZWQpIHsK
ICAgfQotICB2aXJ0dWFsIH5Nb2NrRGVhdGhUZXN0KCkgewotICAgIHBhcmVudF8tPnRlc3RfZGVs
ZXRlZF8gPSB0cnVlOwotICB9Ci0gIHZpcnR1YWwgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIHsKKyAg
fk1vY2tEZWF0aFRlc3QoKSBvdmVycmlkZSB7IHBhcmVudF8tPnRlc3RfZGVsZXRlZF8gPSB0cnVl
OyB9CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSBvdmVycmlkZSB7CiAgICAgKytwYXJlbnRfLT5h
c3N1bWVfcm9sZV9jYWxsc187CiAgICAgcmV0dXJuIHJvbGVfOwogICB9Ci0gIHZpcnR1YWwgaW50
IFdhaXQoKSB7CisgIGludCBXYWl0KCkgb3ZlcnJpZGUgewogICAgICsrcGFyZW50Xy0+d2FpdF9j
YWxsc187CiAgICAgcmV0dXJuIHN0YXR1c187CiAgIH0KLSAgdmlydHVhbCBib29sIFBhc3NlZChi
b29sIGV4aXRfc3RhdHVzX29rKSB7CisgIGJvb2wgUGFzc2VkKGJvb2wgZXhpdF9zdGF0dXNfb2sp
IG92ZXJyaWRlIHsKICAgICBwYXJlbnRfLT5wYXNzZWRfYXJnc18ucHVzaF9iYWNrKGV4aXRfc3Rh
dHVzX29rKTsKICAgICByZXR1cm4gcGFzc2VkXzsKICAgfQotICB2aXJ0dWFsIHZvaWQgQWJvcnQo
QWJvcnRSZWFzb24gcmVhc29uKSB7CisgIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSBv
dmVycmlkZSB7CiAgICAgcGFyZW50Xy0+YWJvcnRfYXJnc18ucHVzaF9iYWNrKHJlYXNvbik7CiAg
IH0KIApAQCAtOTkyLDE2ICsxMDU2LDE0IEBAIHZvaWQgTW9ja0RlYXRoVGVzdEZhY3Rvcnk6OlNl
dFBhcmFtZXRlcnMoYm9vbCBjcmVhdGUsCiAvLyBTZXRzIHRlc3QgdG8gTlVMTCAoaWYgY3JlYXRl
XyBpcyBmYWxzZSkgb3IgdG8gdGhlIGFkZHJlc3Mgb2YgYSBuZXcKIC8vIE1vY2tEZWF0aFRlc3Qg
b2JqZWN0IHdpdGggcGFyYW1ldGVycyB0YWtlbiBmcm9tIHRoZSBsYXN0IGNhbGwKIC8vIHRvIFNl
dFBhcmFtZXRlcnMgKGlmIGNyZWF0ZV8gaXMgdHJ1ZSkuICBBbHdheXMgcmV0dXJucyB0cnVlLgot
Ym9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIC8qc3RhdGVtZW50
Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6UkUqIC8qcmVnZXgqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiAvKmZpbGUqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgLypsaW5lKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhU
ZXN0KiogdGVzdCkgeworYm9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKAorICAgIGNv
bnN0IGNoYXIqIC8qc3RhdGVtZW50Ki8sIHRlc3Rpbmc6Ok1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJp
bmcmPiAvKm1hdGNoZXIqLywKKyAgICBjb25zdCBjaGFyKiAvKmZpbGUqLywgaW50IC8qbGluZSov
LCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHRlc3RfZGVsZXRlZF8gPSBmYWxzZTsKICAgaWYgKGNy
ZWF0ZV8pIHsKICAgICAqdGVzdCA9IG5ldyBNb2NrRGVhdGhUZXN0KHRoaXMsIHJvbGVfLCBzdGF0
dXNfLCBwYXNzZWRfKTsKICAgfSBlbHNlIHsKLSAgICAqdGVzdCA9IE5VTEw7CisgICAgKnRlc3Qg
PSBudWxscHRyOwogICB9CiAgIHJldHVybiB0cnVlOwogfQpAQCAtMTAxNCwxNiArMTA3NiwxNiBA
QCBjbGFzcyBNYWNyb0xvZ2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICBz
dGF0aWMgdGVzdGluZzo6aW50ZXJuYWw6OlJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KiByZXBsYWNl
cl87CiAgIHN0YXRpYyBNb2NrRGVhdGhUZXN0RmFjdG9yeSogZmFjdG9yeV87CiAKLSAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7
CiAgICAgZmFjdG9yeV8gPSBuZXcgTW9ja0RlYXRoVGVzdEZhY3Rvcnk7CiAgICAgcmVwbGFjZXJf
ID0gbmV3IHRlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeShmYWN0b3J5
Xyk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgcmVwbGFjZXJfOwotICAgIHJl
cGxhY2VyXyA9IE5VTEw7CisgICAgcmVwbGFjZXJfID0gbnVsbHB0cjsKICAgICBkZWxldGUgZmFj
dG9yeV87Ci0gICAgZmFjdG9yeV8gPSBOVUxMOworICAgIGZhY3RvcnlfID0gbnVsbHB0cjsKICAg
fQogCiAgIC8vIFJ1bnMgYSBkZWF0aCB0ZXN0IHRoYXQgYnJlYWtzIHRoZSBydWxlcyBieSByZXR1
cm5pbmcuICBTdWNoIGEgZGVhdGgKQEAgLTEwMzcsMTAgKzEwOTksOSBAQCBjbGFzcyBNYWNyb0xv
Z2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICB9CiB9OwogCi10ZXN0aW5n
OjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6
OnJlcGxhY2VyXwotICAgID0gTlVMTDsKLU1vY2tEZWF0aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2lj
RGVhdGhUZXN0OjpmYWN0b3J5XyA9IE5VTEw7Ci0KK3Rlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNl
RGVhdGhUZXN0RmFjdG9yeSogTWFjcm9Mb2dpY0RlYXRoVGVzdDo6cmVwbGFjZXJfID0KKyAgICBu
dWxscHRyOworTW9ja0RlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OmZhY3Rv
cnlfID0gbnVsbHB0cjsKIAogLy8gVGVzdCB0aGF0IG5vdGhpbmcgaGFwcGVucyB3aGVuIHRoZSBm
YWN0b3J5IGRvZXNuJ3QgcmV0dXJuIGEgRGVhdGhUZXN0OgogVEVTVF9GKE1hY3JvTG9naWNEZWF0
aFRlc3QsIE5vdGhpbmdIYXBwZW5zKSB7CkBAIC0xMjc5LDkgKzEzNDAsNiBAQCBURVNUKFBhcnNl
TmF0dXJhbE51bWJlclRlc3QsIFdvcmtzRm9yU2hvcnRlckludGVnZXJzKSB7CiAKICMgaWYgR1RF
U1RfT1NfV0lORE9XUwogVEVTVChFbnZpcm9ubWVudFRlc3QsIEhhbmRsZUZpdHNJbnRvU2l6ZVQp
IHsKLSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHRlc3QgYWZ0ZXIgdGhpcyBjb25kaXRpb24gaXMg
dmVyaWZpZWQKLSAgLy8gaW4gYSBzdGF0aWMgYXNzZXJ0aW9uIGluIGd0ZXN0LWRlYXRoLXRlc3Qu
Y2MgaW4gdGhlIGZ1bmN0aW9uCi0gIC8vIEdldFN0YXR1c0ZpbGVEZXNjcmlwdG9yLgogICBBU1NF
UlRfVFJVRShzaXplb2YoSEFORExFKSA8PSBzaXplb2Yoc2l6ZV90KSk7CiB9CiAjIGVuZGlmICAv
LyBHVEVTVF9PU19XSU5ET1dTCkBAIC0xMzE5LDggKzEzNzcsNTMgQEAgVEVTVChJbkRlYXRoVGVz
dENoaWxkRGVhdGhUZXN0LCBSZXBvcnRzRGVhdGhUZXN0Q29ycmVjdGx5SW5UaHJlYWRTYWZlU3R5
bGUpIHsKICAgfSwgIkluc2lkZSIpOwogfQogCit2b2lkIERpZVdpdGhNZXNzYWdlKGNvbnN0IGNo
YXIqIG1lc3NhZ2UpIHsKKyAgZnB1dHMobWVzc2FnZSwgc3RkZXJyKTsKKyAgZmZsdXNoKHN0ZGVy
cik7ICAvLyBNYWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZvcmUgdGhlIHByb2Nlc3Mg
ZXhpdHMuCisgIF9leGl0KDEpOworfQorCitURVNUKE1hdGNoZXJEZWF0aFRlc3QsIERvZXNOb3RC
cmVha0JhcmVSZWdleE1hdGNoaW5nKSB7CisgIC8vIGdvb2dsZXRlc3QgdGVzdHMgdGhpcywgb2Yg
Y291cnNlOyBoZXJlIHdlIGVuc3VyZSB0aGF0IGluY2x1ZGluZyBnb29nbGVtb2NrCisgIC8vIGhh
cyBub3QgYnJva2VuIGl0LgorI2lmIEdURVNUX1VTRVNfUE9TSVhfUkUKKyAgRVhQRUNUX0RFQVRI
KERpZVdpdGhNZXNzYWdlKCJPLCBJIGRpZSwgSG9yYXRpby4iKSwgIkkgZFthZWlvdV1lIik7Cisj
ZWxzZQorICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIk8sIEkgZGllLCBIb3JhdGlvLiIp
LCAiSSBkaT9lIik7CisjZW5kaWYKK30KKworVEVTVChNYXRjaGVyRGVhdGhUZXN0LCBNb25vbW9y
cGhpY01hdGNoZXJNYXRjaGVzKSB7CisgIEVYUEVDVF9ERUFUSChEaWVXaXRoTWVzc2FnZSgiQmVo
aW5kIE8sIEkgYW0gc2xhaW4hIiksCisgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiSSBhbSBzbGFpbiIpKSk7Cit9CisKK1RFU1QoTWF0Y2hl
ckRlYXRoVGVzdCwgTW9ub21vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNoKSB7CisgIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKAorICAgICAgICAgIERpZVdpdGhN
ZXNzYWdlKCJCZWhpbmQgTywgSSBhbSBzbGFpbiEiKSwKKyAgICAgICAgICBNYXRjaGVyPGNvbnN0
IHN0ZDo6c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiT3csIEkgYW0gc2xhaW4iKSkpLAorICAgICAg
IkV4cGVjdGVkOiBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gXCJPdywgSSBhbSBzbGFpblwi
Iik7Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyTWF0Y2hl
cykgeworICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2UoIlRoZSByZXN0IGlzIHNpbGVuY2Uu
IiksCisgICAgICAgICAgICAgICBDb250YWluc1JlZ2V4KCJyZXN0IGlzIHNpbGVuY2UiKSk7Cit9
CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1vcnBoaWNNYXRjaGVyRG9lc05vdE1hdGNo
KSB7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RFQVRIKERpZVdp
dGhNZXNzYWdlKCJUaGUgcmVzdCBpcyBzaWxlbmNlLiIpLAorICAgICAgICAgICAgICAgICAgIENv
bnRhaW5zUmVnZXgoInJlc3QgaXMgc2NpZW5jZSIpKSwKKyAgICAgICJFeHBlY3RlZDogY29udGFp
bnMgcmVndWxhciBleHByZXNzaW9uIFwicmVzdCBpcyBzY2llbmNlXCIiKTsKK30KKworfSAgLy8g
bmFtZXNwYWNlCisKICNlbHNlICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QgZm9sbG93cwogCitu
YW1lc3BhY2UgeworCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZGVycjsKIHVz
aW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRDYXB0dXJlZFN0ZGVycjsKIApAQCAtMTM2OSw4ICsx
NDcyLDE5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1Rlc3QsIEFzc2VydERlYXREb2Vz
Tm90UmV0dXJuaElmVW5zdXBwb3J0ZWQpIHsKICAgRVhQRUNUX0VRKDEsIG4pOwogfQogCit9ICAv
LyBuYW1lc3BhY2UKKwogI2VuZGlmICAvLyAhR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAorbmFtZXNw
YWNlIHsKKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJv
cHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIC8vIFRlc3RzIHRoYXQgdGhl
IGRlYXRoIHRlc3QgbWFjcm9zIGV4cGFuZCB0byBjb2RlIHdoaWNoIG1heSBvciBtYXkgbm90CiAv
LyBiZSBmb2xsb3dlZCBieSBvcGVyYXRvcjw8LCBhbmQgdGhhdCBpbiBlaXRoZXIgY2FzZSB0aGUg
Y29tcGxldGUgdGV4dAogLy8gY29tcHJpc2VzIG9ubHkgYSBzaW5nbGUgQysrIHN0YXRlbWVudC4K
QEAgLTEzOTYsNiArMTUxMCw5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERl
YXRoVGVzdCwgU2luZ2xlU3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICBFWFBFQ1RfREVBVEhfSUZf
U1VQUE9SVEVEKF9leGl0KDEpLCAiIikgPDwgMSA8PCAyIDw8IDM7CiB9CisjaWZkZWYgX19HTlVD
X18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCBj
b25kaXRpb25hbCBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBpbnRlcmFj
dHMKIC8vIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KQEAgLTE0MjEsMyArMTUzOCw1IEBA
IFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERlYXRoVGVzdCwgU3dpdGNoU3RhdGVt
ZW50KSB7CiBURVNUKE5vdEFEZWF0aFRlc3QsIFRlc3QpIHsKICAgU1VDQ0VFRCgpOwogfQorCit9
ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCmluZGV4IGI4Yjk0NzBmYzg4
YWQxN2FhZWI2NjRkNDdjMjcwY2ZjYWE3MzFiZWYuLjcyMTk2ODBkMDc0OTc3Nzc4NGY2NDUxNDdi
NTAzOTVkYjA5YmE5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYwpAQCAtNTksNyArNTks
NyBAQCBURVNUKEN4eEV4Y2VwdGlvbkRlYXRoVGVzdCwgRXhjZXB0aW9uSXNGYWlsdXJlKSB7CiAK
IGNsYXNzIFRlc3RFeGNlcHRpb24gOiBwdWJsaWMgc3RkOjpleGNlcHRpb24gewogIHB1YmxpYzoK
LSAgdmlydHVhbCBjb25zdCBjaGFyKiB3aGF0KCkgY29uc3QgdGhyb3coKSB7IHJldHVybiAiZXhj
ZXB0aW9uYWwgbWVzc2FnZSI7IH0KKyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0
IG92ZXJyaWRlIHsgcmV0dXJuICJleGNlcHRpb25hbCBtZXNzYWdlIjsgfQogfTsKIAogVEVTVChD
eHhFeGNlcHRpb25EZWF0aFRlc3QsIFByaW50c01lc3NhZ2VGb3JTdGRFeGNlcHRpb25zKSB7CkBA
IC02OCw3ICs2OCw3IEBAIFRFU1QoQ3h4RXhjZXB0aW9uRGVhdGhUZXN0LCBQcmludHNNZXNzYWdl
Rm9yU3RkRXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9u
YWwgbWVzc2FnZSIpOwogICAvLyBWZXJpZmllcyB0aGF0IHRoZSBsb2NhdGlvbiBpcyBtZW50aW9u
ZWQgaW4gdGhlIGZhaWx1cmUgdGV4dC4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X0RFQVRIKHRocm93IFRlc3RFeGNlcHRpb24oKSwgIiIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgX19GSUxFX18pOwogfQogIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElP
TlMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWVudi12YXItdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1lbnYtdmFyLXRlc3QucHkKaW5kZXggZTFlZmVlZTFlYWI4YzZkYWNiNWQyOTI2ZjRiNWM5MDgw
OTM4ZGIxMy4uMDJjMzY1NWMzOTgyNjg5NjVhMjg1MTYyMzUyMzE3NTIxOWJhYzU2YyAxMDA3NTUK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVz
dC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZW52LXZh
ci10ZXN0LnB5CkBAIC00NSw4ICs0NSw4IEBAIGVudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQog
CiBkZWYgQXNzZXJ0RXEoZXhwZWN0ZWQsIGFjdHVhbCk6CiAgIGlmIGV4cGVjdGVkICE9IGFjdHVh
bDoKLSAgICBwcmludCAnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3RlZCwpCi0gICAgcHJpbnQgJyAg
QWN0dWFsOiAlcycgJSAoYWN0dWFsLCkKKyAgICBwcmludCgnRXhwZWN0ZWQ6ICVzJyAlIChleHBl
Y3RlZCwpKQorICAgIHByaW50KCcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpKQogICAgIHJhaXNl
IEFzc2VydGlvbkVycm9yCiAKIApAQCAtODUsOSArODUsMTIgQEAgY2xhc3MgR1Rlc3RFbnZWYXJU
ZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogCiAgICAgVGVzdEZsYWcoJ2JyZWFrX29u
X2ZhaWx1cmUnLCAnMScsICcwJykKICAgICBUZXN0RmxhZygnY29sb3InLCAneWVzJywgJ2F1dG8n
KQorICAgIFNldEVudlZhcignVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnLCBOb25l
KSAgIyBGb3IgJ2ZhaWxfZmFzdCcgdGVzdAorICAgIFRlc3RGbGFnKCdmYWlsX2Zhc3QnLCAnMScs
ICcwJykKICAgICBUZXN0RmxhZygnZmlsdGVyJywgJ0Zvb1Rlc3QuQmFyJywgJyonKQogICAgIFNl
dEVudlZhcignWE1MX09VVFBVVF9GSUxFJywgTm9uZSkgICMgRm9yICdvdXRwdXQnIHRlc3QKICAg
ICBUZXN0RmxhZygnb3V0cHV0JywgJ3htbDp0bXAvZm9vLnhtbCcsICcnKQorICAgIFRlc3RGbGFn
KCdicmllZicsICcxJywgJzAnKQogICAgIFRlc3RGbGFnKCdwcmludF90aW1lJywgJzAnLCAnMScp
CiAgICAgVGVzdEZsYWcoJ3JlcGVhdCcsICc5OTknLCAnMScpCiAgICAgVGVzdEZsYWcoJ3Rocm93
X29uX2ZhaWx1cmUnLCAnMScsICcwJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKaW5kZXggZmQyYWE4MmY3NGZh
YTIxMjAxZTc5YWUwZTVjM2I1Njg1NTNkZjMzNy4uNTJmOTU4NjRlMWU1ZmY0YmQ4ZjFjN2U5OWUx
NTMxMDY5NDE4MTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKQEAgLTcyLDYgKzcyLDExIEBAIHZvaWQg
UHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAgICByZXR1cm47CiAgIH0KIAorICBpZiAo
c3RyY21wKGZsYWcsICJmYWlsX2Zhc3QiKSA9PSAwKSB7CisgICAgY291dCA8PCBHVEVTVF9GTEFH
KGZhaWxfZmFzdCk7CisgICAgcmV0dXJuOworICB9CisKICAgaWYgKHN0cmNtcChmbGFnLCAiZmls
dGVyIikgPT0gMCkgewogICAgIGNvdXQgPDwgR1RFU1RfRkxBRyhmaWx0ZXIpOwogICAgIHJldHVy
bjsKQEAgLTgyLDYgKzg3LDExIEBAIHZvaWQgUHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsK
ICAgICByZXR1cm47CiAgIH0KIAorICBpZiAoc3RyY21wKGZsYWcsICJicmllZiIpID09IDApIHsK
KyAgICBjb3V0IDw8IEdURVNUX0ZMQUcoYnJpZWYpOworICAgIHJldHVybjsKKyAgfQorCiAgIGlm
IChzdHJjbXAoZmxhZywgInByaW50X3RpbWUiKSA9PSAwKSB7CiAgICAgY291dCA8PCBHVEVTVF9G
TEFHKHByaW50X3RpbWUpOwogICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYWViMmRmZmVhZTQyZmMwMzM4YTFlZGE5OWNkNGQ0MzViNzlhN2IzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZhaWxm
YXN0LXVuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDEwIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4K
KyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyIiIlVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3QgZmFpbF9mYXN0
LgorCitBIHVzZXIgY2FuIHNwZWNpZnkgaWYgYSBHb29nbGUgVGVzdCBwcm9ncmFtIHNob3VsZCBj
b250aW51ZSB0ZXN0IGV4ZWN1dGlvbgorYWZ0ZXIgYSB0ZXN0IGZhaWx1cmUgdmlhIHRoZSBHVEVT
VF9GQUlMX0ZBU1QgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCistLWd0ZXN0X2ZhaWxfZmFz
dCBmbGFnLiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgZmxhZyBjYW4gYWxzbyBiZSBjaGFuZ2Vk
CitieSBCYXplbCBmYWlsIGZhc3QgZW52aXJvbm1lbnQgdmFyaWFibGUgVEVTVEJSSURHRV9URVNU
X1JVTk5FUl9GQUlMX0ZBU1QuCisKK1RoaXMgc2NyaXB0IHRlc3RzIHN1Y2ggZnVuY3Rpb25hbGl0
eSBieSBpbnZva2luZyBnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XworKGEgcHJvZ3JhbSB3
cml0dGVuIHdpdGggR29vZ2xlIFRlc3QpIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50cyBhbmQg
Y29tbWFuZAorbGluZSBmbGFncy4KKyIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCBndGVzdF90ZXN0
X3V0aWxzCisKKyMgQ29uc3RhbnRzLgorCisjIEJhemVsIHRlc3RicmlkZ2UgZW52aXJvbm1lbnQg
dmFyaWFibGUgZm9yIGZhaWwgZmFzdAorQkFaRUxfRkFJTF9GQVNUX0VOVl9WQVIgPSAnVEVTVEJS
SURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnCisKKyMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxl
IGZvciBzcGVjaWZ5aW5nIGZhaWwgZmFzdC4KK0ZBSUxfRkFTVF9FTlZfVkFSID0gJ0dURVNUX0ZB
SUxfRkFTVCcKKworIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIHNwZWNpZnlpbmcgZmFpbCBm
YXN0LgorRkFJTF9GQVNUX0ZMQUcgPSAnZ3Rlc3RfZmFpbF9mYXN0JworCisjIFRoZSBjb21tYW5k
IGxpbmUgZmxhZyB0byBydW4gZGlzYWJsZWQgdGVzdHMuCitSVU5fRElTQUJMRURfRkxBRyA9ICdn
dGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cycKKworIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcg
Zm9yIHNwZWNpZnlpbmcgYSBmaWx0ZXIuCitGSUxURVJfRkxBRyA9ICdndGVzdF9maWx0ZXInCisK
KyMgQ29tbWFuZCB0byBydW4gdGhlIGdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfIHByb2dy
YW0uCitDT01NQU5EID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoCisg
ICAgJ2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfJykKKworIyBUaGUgY29tbWFuZCBsaW5l
IGZsYWcgdG8gdGVsbCBHb29nbGUgVGVzdCB0byBvdXRwdXQgdGhlIGxpc3Qgb2YgdGVzdHMgaXQK
KyMgd2lsbCBydW4uCitMSVNUX1RFU1RTX0ZMQUcgPSAnLS1ndGVzdF9saXN0X3Rlc3RzJworCisj
IEluZGljYXRlcyB3aGV0aGVyIEdvb2dsZSBUZXN0IHN1cHBvcnRzIGRlYXRoIHRlc3RzLgorU1VQ
UE9SVFNfREVBVEhfVEVTVFMgPSAnSGFzRGVhdGhUZXN0JyBpbiBndGVzdF90ZXN0X3V0aWxzLlN1
YnByb2Nlc3MoCisgICAgW0NPTU1BTkQsIExJU1RfVEVTVFNfRkxBR10pLm91dHB1dAorCisjIFV0
aWxpdGllcy4KKworZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisKKworZGVmIFNldEVudlZh
cihlbnZfdmFyLCB2YWx1ZSk6CisgICIiIlNldHMgdGhlIGVudiB2YXJpYWJsZSB0byAndmFsdWUn
OyB1bnNldHMgaXQgd2hlbiAndmFsdWUnIGlzIE5vbmUuIiIiCisKKyAgaWYgdmFsdWUgaXMgbm90
IE5vbmU6CisgICAgZW52aXJvbltlbnZfdmFyXSA9IHZhbHVlCisgIGVsaWYgZW52X3ZhciBpbiBl
bnZpcm9uOgorICAgIGRlbCBlbnZpcm9uW2Vudl92YXJdCisKKworZGVmIFJ1bkFuZFJldHVybk91
dHB1dCh0ZXN0X3N1aXRlPU5vbmUsIGZhaWxfZmFzdD1Ob25lLCBydW5fZGlzYWJsZWQ9RmFsc2Up
OgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5kIHJldHVybnMgaXRzIG91dHB1dC4iIiIK
KworICBhcmdzID0gW10KKyAgeG1sX3BhdGggPSBvcy5wYXRoLmpvaW4oZ3Rlc3RfdGVzdF91dGls
cy5HZXRUZW1wRGlyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICcuR1Rlc3RGYWlsRmFz
dFVuaXRUZXN0LnhtbCcpCisgIGFyZ3MgKz0gWyctLWd0ZXN0X291dHB1dD14bWw6JyArIHhtbF9w
YXRoXQorICBpZiBmYWlsX2Zhc3QgaXMgbm90IE5vbmU6CisgICAgaWYgaXNpbnN0YW5jZShmYWls
X2Zhc3QsIHN0cik6CisgICAgICBhcmdzICs9IFsnLS0lcz0lcycgJSAoRkFJTF9GQVNUX0ZMQUcs
IGZhaWxfZmFzdCldCisgICAgZWxpZiBmYWlsX2Zhc3Q6CisgICAgICBhcmdzICs9IFsnLS0lcycg
JSBGQUlMX0ZBU1RfRkxBR10KKyAgICBlbHNlOgorICAgICAgYXJncyArPSBbJy0tbm8lcycgJSBG
QUlMX0ZBU1RfRkxBR10KKyAgaWYgdGVzdF9zdWl0ZToKKyAgICBhcmdzICs9IFsnLS0lcz0lcy4q
JyAlIChGSUxURVJfRkxBRywgdGVzdF9zdWl0ZSldCisgIGlmIHJ1bl9kaXNhYmxlZDoKKyAgICBh
cmdzICs9IFsnLS0lcycgJSBSVU5fRElTQUJMRURfRkxBR10KKyAgdHh0X291dCA9IGd0ZXN0X3Rl
c3RfdXRpbHMuU3VicHJvY2VzcyhbQ09NTUFORF0gKyBhcmdzLCBlbnY9ZW52aXJvbikub3V0cHV0
CisgIHdpdGggb3Blbih4bWxfcGF0aCkgYXMgeG1sX2ZpbGU6CisgICAgcmV0dXJuIHR4dF9vdXQs
IHhtbF9maWxlLnJlYWQoKQorCisKKyMgVGhlIHVuaXQgdGVzdC4KK2NsYXNzIEdUZXN0RmFpbEZh
c3RVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKKyAgIiIiVGVzdHMgdGhlIGVu
diB2YXJpYWJsZSBvciB0aGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIGZhaWxfZmFzdC4iIiIKKwor
ICBkZWYgdGVzdERlZmF1bHRCZWhhdmlvcihzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygbm90IHNwZWNpZnlpbmcgdGhlIGZhaWxfZmFzdC4iIiIKKworICAgIHR4dCwgXyA9IFJ1
bkFuZFJldHVybk91dHB1dCgpCisgICAgc2VsZi5hc3NlcnRJbignMjIgRkFJTEVEIFRFU1QnLCB0
eHQpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RmxhZyhzZWxmKToKKyAgICB0eHQsIF8gPSBSdW5B
bmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2ltcGxlVGVzdCcsIGZhaWxfZmFzdD1UcnVl
KQorICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgc2VsZi5hc3Nl
cnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisKKyAgICB0eHQsIF8gPSBSdW5BbmRS
ZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2ltcGxlVGVzdCcsIGZhaWxfZmFzdD1GYWxzZSkK
KyAgICBzZWxmLmFzc2VydEluKCc0IEZBSUxFRCBURVNUJywgdHh0KQorICAgIHNlbGYuYXNzZXJ0
Tm90SW4oJ1sgIFNLSVBQRUQgXScsIHR4dCkKKworICBkZWYgdGVzdEdvb2dsZXRlc3RFbnZWYXIo
c2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHNwZWNpZnlpbmcgZmFpbF9mYXN0
IHZpYSBHb29nbGV0ZXN0IGVudiB2YXIuIiIiCisKKyAgICB0cnk6CisgICAgICBTZXRFbnZWYXIo
RkFJTF9GQVNUX0VOVl9WQVIsICcxJykKKyAgICAgIHR4dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1
dCgnSGFzU2ltcGxlVGVzdCcpCisgICAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywg
dHh0KQorICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisK
KyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgJzAnKQorICAgICAgdHh0LCBfID0g
UnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4o
JzQgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydE5vdEluKCdbICBTS0lQUEVE
IF0nLCB0eHQpCisgICAgZmluYWxseToKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZB
UiwgTm9uZSkKKworICBkZWYgdGVzdEJhemVsRW52VmFyKHNlbGYpOgorICAgICIiIlRlc3RzIHRo
ZSBiZWhhdmlvciBvZiBzcGVjaWZ5aW5nIGZhaWxfZmFzdCB2aWEgQmF6ZWwgdGVzdGJyaWRnZS4i
IiIKKworICAgIHRyeToKKyAgICAgIFNldEVudlZhcihCQVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwg
JzEnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykK
KyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFz
c2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0cycsIHR4dCkKKworICAgICAgU2V0RW52VmFyKEJB
WkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5P
dXRwdXQoJ0hhc1NpbXBsZVRlc3QnKQorICAgICAgc2VsZi5hc3NlcnRJbignNCBGQUlMRUQgVEVT
VCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ1sgIFNLSVBQRUQgXScsIHR4dCkKKyAg
ICBmaW5hbGx5OgorICAgICAgU2V0RW52VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25l
KQorCisgIGRlZiB0ZXN0RmxhZ092ZXJyaWRlc0VudlZhcihzZWxmKToKKyAgICAiIiJUZXN0cyBw
cmVjZWRlbmNlIG9mIGZsYWcgb3ZlciBlbnYgdmFyLiIiIgorCisgICAgdHJ5OgorICAgICAgU2V0
RW52VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1
cm5PdXRwdXQoJ0hhc1NpbXBsZVRlc3QnLCBUcnVlKQorICAgICAgc2VsZi5hc3NlcnRJbignMSBG
QUlMRUQgVEVTVCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRl
c3RzJywgdHh0KQorICAgIGZpbmFsbHk6CisgICAgICBTZXRFbnZWYXIoRkFJTF9GQVNUX0VOVl9W
QVIsIE5vbmUpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RW52VmFyT3ZlcnJpZGVzQmF6ZWxFbnZW
YXIoc2VsZik6CisgICAgIiIiVGVzdHMgdGhhdCB0aGUgR29vZ2xldGVzdCBuYXRpdmUgZW52IHZh
ciBvdmVyIEJhemVsIHRlc3RicmlkZ2UuIiIiCisKKyAgICB0cnk6CisgICAgICBTZXRFbnZWYXIo
QkFaRUxfRkFJTF9GQVNUX0VOVl9WQVIsICcwJykKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1Rf
RU5WX1ZBUiwgJzEnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1w
bGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAg
ICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0cycsIHR4dCkKKyAgICBmaW5hbGx5
OgorICAgICAgU2V0RW52VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCBOb25lKQorICAgICAgU2V0RW52
VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25lKQorCisgIGRlZiB0ZXN0RXZlbnRMaXN0
ZW5lcihzZWxmKToKKyAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0n
SGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9VHJ1ZSkKKyAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxF
RCBURVNUJywgdHh0KQorICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRlc3RzJywg
dHh0KQorICAgIGZvciBleHBlY3RlZF9jb3VudCwgY2FsbGJhY2sgaW4gWygxLCAnT25UZXN0U3Vp
dGVTdGFydCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0U3RhcnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09u
VGVzdEVuZCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0UGFydFJlc3VsdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgx
LCAnT25UZXN0U3VpdGVFbmQnKV06CisgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAg
IGV4cGVjdGVkX2NvdW50LCB0eHQuY291bnQoY2FsbGJhY2spLAorICAgICAgICAgICdFeHBlY3Rl
ZCAlZCBjYWxscyB0byBjYWxsYmFjayAlcyBtYXRjaCBjb3VudCBvbiBvdXRwdXQ6ICVzICcgJQor
ICAgICAgICAgIChleHBlY3RlZF9jb3VudCwgY2FsbGJhY2ssIHR4dCkpCisKKyAgICB0eHQsIF8g
PSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9
RmFsc2UpCisgICAgc2VsZi5hc3NlcnRJbignMyBGQUlMRUQgVEVTVCcsIHR4dCkKKyAgICBzZWxm
LmFzc2VydEluKCdbICBTS0lQUEVEIF0gMSB0ZXN0JywgdHh0KQorICAgIGZvciBleHBlY3RlZF9j
b3VudCwgY2FsbGJhY2sgaW4gWygxLCAnT25UZXN0U3VpdGVTdGFydCcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25UZXN0U3RhcnQnKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09uVGVzdEVuZCcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25UZXN0UGFydFJlc3VsdCcpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxLCAnT25UZXN0U3VpdGVFbmQnKV06Cisg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgIGV4cGVjdGVkX2NvdW50LCB0eHQuY291
bnQoY2FsbGJhY2spLAorICAgICAgICAgICdFeHBlY3RlZCAlZCBjYWxscyB0byBjYWxsYmFjayAl
cyBtYXRjaCBjb3VudCBvbiBvdXRwdXQ6ICVzICcgJQorICAgICAgICAgIChleHBlY3RlZF9jb3Vu
dCwgY2FsbGJhY2ssIHR4dCkpCisKKyAgZGVmIGFzc2VydFhtbFJlc3VsdENvdW50KHNlbGYsIHJl
c3VsdCwgY291bnQsIHhtbCk6CisgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgY291bnQs
IHhtbC5jb3VudCgncmVzdWx0PSIlcyInICUgcmVzdWx0KSwKKyAgICAgICAgJ0V4cGVjdGVkIFwn
cmVzdWx0PSIlcyJcJyBtYXRjaCBjb3VudCBvZiAlczogJXMgJyAlCisgICAgICAgIChyZXN1bHQs
IGNvdW50LCB4bWwpKQorCisgIGRlZiBhc3NlcnRYbWxTdGF0dXNDb3VudChzZWxmLCBzdGF0dXMs
IGNvdW50LCB4bWwpOgorICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgIGNvdW50LCB4bWwu
Y291bnQoJ3N0YXR1cz0iJXMiJyAlIHN0YXR1cyksCisgICAgICAgICdFeHBlY3RlZCBcJ3N0YXR1
cz0iJXMiXCcgbWF0Y2ggY291bnQgb2YgJXM6ICVzICcgJQorICAgICAgICAoc3RhdHVzLCBjb3Vu
dCwgeG1sKSkKKworICBkZWYgYXNzZXJ0RmFpbEZhc3RYbWxBbmRUeHRPdXRwdXQoc2VsZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxfZmFzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2tpcHBlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1cHByZXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5fZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2VydCBYTUwgYW5kIHRleHQgb3V0cHV0IG9m
IGEgdGVzdCBleGVjdXRpb24uIiIiCisKKyAgICB0eHQsIHhtbCA9IFJ1bkFuZFJldHVybk91dHB1
dCh0ZXN0X3N1aXRlLCBmYWlsX2Zhc3QsIHJ1bl9kaXNhYmxlZCkKKyAgICBpZiBmYWlsdXJlX2Nv
dW50ID4gMDoKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzIEZBSUxFRCBURVNUJyAlIGZhaWx1cmVf
Y291bnQsIHR4dCkKKyAgICBpZiBzdXBwcmVzc2VkX2NvdW50ID4gMDoKKyAgICAgIHNlbGYuYXNz
ZXJ0SW4oJyVzIERJU0FCTEVEIFRFU1QnICUgc3VwcHJlc3NlZF9jb3VudCwgdHh0KQorICAgIGlm
IHNraXBwZWRfY291bnQgPiAwOgorICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdICVz
IHRlc3RzJyAlIHNraXBwZWRfY291bnQsIHR4dCkKKyAgICBzZWxmLmFzc2VydFhtbFN0YXR1c0Nv
dW50KCdydW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50ICsg
ZmFpbHVyZV9jb3VudCArIHNraXBwZWRfY291bnQsIHhtbCkKKyAgICBzZWxmLmFzc2VydFhtbFN0
YXR1c0NvdW50KCdub3RydW4nLCBzdXBwcmVzc2VkX2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3Nl
cnRYbWxSZXN1bHRDb3VudCgnY29tcGxldGVkJywgcGFzc2VkX2NvdW50ICsgZmFpbHVyZV9jb3Vu
dCwgeG1sKQorICAgIHNlbGYuYXNzZXJ0WG1sUmVzdWx0Q291bnQoJ3NraXBwZWQnLCBza2lwcGVk
X2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3NlcnRYbWxSZXN1bHRDb3VudCgnc3VwcHJlc3NlZCcs
IHN1cHByZXNzZWRfY291bnQsIHhtbCkKKworICBkZWYgYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcihz
ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhaWx1cmVfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBw
ZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291bnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9kaXNhYmxlZD1GYWxzZSk6CisgICAg
IiIiQXNzZXJ0IC0tZmFpbF9mYXN0IHZpYSBmbGFnLiIiIgorCisgICAgZm9yIGZhaWxfZmFzdCBp
biAoJ3RydWUnLCAnMScsICd0JywgVHJ1ZSk6CisgICAgICBzZWxmLmFzc2VydEZhaWxGYXN0WG1s
QW5kVHh0T3V0cHV0KGZhaWxfZmFzdCwgdGVzdF9zdWl0ZSwgcGFzc2VkX2NvdW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50LCBza2lwcGVk
X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVz
c2VkX2NvdW50LCBydW5fZGlzYWJsZWQpCisKKyAgZGVmIGFzc2VydE5vdEZhaWxGYXN0QmVoYXZp
b3Ioc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBza2lwcGVkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdXBwcmVzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5f
ZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2VydCAtLW5vZmFpbF9mYXN0IHZpYSBmbGFnLiIi
IgorCisgICAgZm9yIGZhaWxfZmFzdCBpbiAoJ2ZhbHNlJywgJzAnLCAnZicsIEZhbHNlKToKKyAg
ICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RYbWxBbmRUeHRPdXRwdXQoZmFpbF9mYXN0LCB0ZXN0X3N1
aXRlLCBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZhaWx1cmVfY291bnQsIHNraXBwZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291bnQsIHJ1bl9kaXNhYmxlZCkKKworICBk
ZWYgdGVzdEZsYWdfSGFzRml4dHVyZVRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2
aW9yIG9mIGZhaWxfZmFzdCBhbmQgVEVTVF9GLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RC
ZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRml4dHVyZVRlc3QnLAorICAgICAgICBw
YXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVk
X2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKyAgICBzZWxmLmFzc2VydE5v
dEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0ZpeHR1cmVUZXN0JywK
KyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAg
ICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisKKyAgZGVm
IHRlc3RGbGFnX0hhc1NpbXBsZVRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIGZhaWxfZmFzdCBhbmQgVEVTVC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZp
b3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLAorICAgICAgICBwYXNzZWRf
Y291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50
PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKyAgICBzZWxmLmFzc2VydE5vdEZhaWxG
YXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLAorICAgICAg
ICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD00LAorICAgICAgICBza2lw
cGVkX2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKworICBkZWYgdGVzdEZs
YWdfSGFzUGFyYW1ldGVyc1Rlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9m
IGZhaWxfZmFzdCBhbmQgVEVTVF9QLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlv
cigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzUGFyYW1ldGVyc1N1aXRlL0hhc1BhcmFtZXRlcnNU
ZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTAsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwK
KyAgICAgICAgc2tpcHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisg
ICAgc2VsZi5hc3NlcnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdI
YXNQYXJhbWV0ZXJzU3VpdGUvSGFzUGFyYW1ldGVyc1Rlc3QnLAorICAgICAgICBwYXNzZWRfY291
bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD00LAorICAgICAgICBza2lwcGVkX2NvdW50PTAs
CisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKworICBkZWYgdGVzdEZsYWdfSGFzRGlzYWJs
ZWRUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5k
IERpc2FibGVkIHRlc3QgY2FzZXMuIiIiCisgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNEaXNhYmxlZFRlc3QnLAorICAgICAgICBwYXNzZWRf
Y291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50
PTIsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MSwKKyAgICAgICAgcnVuX2Rpc2FibGVkPUZh
bHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9z
dWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAg
IGZhaWx1cmVfY291bnQ9MywKKyAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBw
cmVzc2VkX2NvdW50PTEsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1GYWxzZSkKKworICBkZWYgdGVz
dEZsYWdfSGFzRGlzYWJsZWRSdW5EaXNhYmxlZFRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhl
IGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgRGlzYWJsZWQgdGVzdCBjYXNlcyBlbmFibGVkLiIi
IgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0n
SGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1
cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2Vk
X2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1UcnVlKQorICAgIHNlbGYuYXNzZXJ0Tm90
RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywK
KyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAg
ICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAg
IHJ1bl9kaXNhYmxlZD1UcnVlKQorCisgIGRlZiB0ZXN0RmxhZ19IYXNEaXNhYmxlZFN1aXRlVGVz
dChzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgZmFpbF9mYXN0IGFuZCBEaXNh
YmxlZCB0ZXN0IHN1aXRlcy4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3IoCisg
ICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUnLAorICAgICAgICBw
YXNzZWRfY291bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0wLAorICAgICAgICBza2lwcGVk
X2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9NSwKKyAgICAgICAgcnVuX2Rpc2Fi
bGVkPUZhbHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAg
dGVzdF9zdWl0ZT0nRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZScsCisgICAgICAgIHBhc3NlZF9j
b3VudD0wLAorICAgICAgICBmYWlsdXJlX2NvdW50PTAsCisgICAgICAgIHNraXBwZWRfY291bnQ9
MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD01LAorICAgICAgICBydW5fZGlzYWJsZWQ9RmFs
c2UpCisKKyAgZGVmIHRlc3RGbGFnX0hhc0Rpc2FibGVkU3VpdGVSdW5EaXNhYmxlZFRlc3Qoc2Vs
Zik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgRGlzYWJsZWQg
dGVzdCBzdWl0ZXMgZW5hYmxlZC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3Io
CisgICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUnLAorICAgICAg
ICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICBza2lw
cGVkX2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCwKKyAgICAgICAgcnVuX2Rp
c2FibGVkPVRydWUpCisgICAgc2VsZi5hc3NlcnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAg
ICB0ZXN0X3N1aXRlPSdESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlJywKKyAgICAgICAgcGFzc2Vk
X2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAgc2tpcHBlZF9jb3Vu
dD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1U
cnVlKQorCisgIGlmIFNVUFBPUlRTX0RFQVRIX1RFU1RTOgorCisgICAgZGVmIHRlc3RGbGFnX0hh
c0RlYXRoVGVzdChzZWxmKToKKyAgICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zh
c3QgYW5kIGRlYXRoIHRlc3RzLiIiIgorICAgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0RlYXRoVGVzdCcsCisgICAgICAgICAgcGFzc2Vk
X2NvdW50PTEsCisgICAgICAgICAgZmFpbHVyZV9jb3VudD0xLAorICAgICAgICAgIHNraXBwZWRf
Y291bnQ9MywKKyAgICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisgICAgICBzZWxmLmFzc2Vy
dE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGVhdGhUZXN0
JywKKyAgICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgICBmYWlsdXJlX2NvdW50PTQs
CisgICAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICAgIHN1cHByZXNzZWRfY291bnQ9
MCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBndGVzdF90ZXN0X3V0aWxzLk1h
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWZhaWxmYXN0LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIyYzk1MWJjMDA4Mzk5
NGIwNjZjMmQ4NmFlOTJiZTMyMjgxYzY4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MKQEAgLTAs
MCArMSwxNjcgQEAKKy8vIENvcHlyaWdodCAyMDA1LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisvLyBVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0IHRlc3QgZmlsdGVycy4KKy8vCisvLyBB
IHVzZXIgY2FuIHNwZWNpZnkgd2hpY2ggdGVzdChzKSBpbiBhIEdvb2dsZSBUZXN0IHByb2dyYW0g
dG8gcnVuIHZpYQorLy8gZWl0aGVyIHRoZSBHVEVTVF9GSUxURVIgZW52aXJvbm1lbnQgdmFyaWFi
bGUgb3IgdGhlIC0tZ3Rlc3RfZmlsdGVyCisvLyBmbGFnLiAgVGhpcyBpcyB1c2VkIGZvciB0ZXN0
aW5nIHN1Y2ggZnVuY3Rpb25hbGl0eS4KKy8vCisvLyBUaGUgcHJvZ3JhbSB3aWxsIGJlIGludm9r
ZWQgZnJvbSBhIFB5dGhvbiB1bml0IHRlc3QuICBEb24ndCBydW4gaXQKKy8vIGRpcmVjdGx5Lgor
CisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworbmFtZXNwYWNlIHsKKworLy8gVGVzdCBIYXNG
aXh0dXJlVGVzdC4KKworY2xhc3MgSGFzRml4dHVyZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7fTsKKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0MCkge30KKworVEVTVF9GKEhhc0Zp
eHR1cmVUZXN0LCBUZXN0MSkgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitU
RVNUX0YoSGFzRml4dHVyZVRlc3QsIFRlc3QyKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZS4iOyB9CisKK1RFU1RfRihIYXNGaXh0dXJlVGVzdCwgVGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBl
Y3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0NCkgeyBGQUlM
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCisvLyBUZXN0IEhhc1NpbXBsZVRlc3QuCisK
K1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDApIHt9CisKK1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNTaW1wbGVU
ZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhh
c1NpbXBsZVRlc3QsIFRlc3QzKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisK
K1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworLy8gVGVzdCBIYXNEaXNhYmxlZFRlc3QuCisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0
LCBUZXN0MCkge30KKworVEVTVChIYXNEaXNhYmxlZFRlc3QsIERJU0FCTEVEX1Rlc3QxKSB7IEZB
SUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBU
ZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc0Rpc2Fi
bGVkVGVzdCwgVGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVT
VChIYXNEaXNhYmxlZFRlc3QsIFRlc3Q0KSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4i
OyB9CisKKy8vIFRlc3QgSGFzRGVhdGhUZXN0CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0MCkg
eyBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKGV4aXQoMSksICIuKiIpOyB9CisKK1RFU1QoSGFz
RGVhdGhUZXN0LCBUZXN0MSkgeworICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKEZBSUwoKSA8
PCAiRXhwZWN0ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30KKworVEVTVChIYXNEZWF0aFRlc3QsIFRl
c3QyKSB7CisgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoRkFJTCgpIDw8ICJFeHBlY3RlZCBm
YWlsdXJlLiIsICIuKiIpOworfQorCitURVNUKEhhc0RlYXRoVGVzdCwgVGVzdDMpIHsKKyAgRVhQ
RUNUX0RFQVRIX0lGX1NVUFBPUlRFRChGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIiwgIi4q
Iik7Cit9CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0NCkgeworICBFWFBFQ1RfREVBVEhfSUZf
U1VQUE9SVEVEKEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30KKworLy8g
VGVzdCBESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlCisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJs
ZWRTdWl0ZSwgVGVzdDApIHt9CisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChESVNBQkxFRF9I
YXNEaXNhYmxlZFN1aXRlLCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsg
fQorCitURVNUKERJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUsIFRlc3QzKSB7IEZBSUwoKSA8PCAi
RXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwg
VGVzdDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworLy8gVGVzdCBIYXNQ
YXJhbWV0ZXJzVGVzdAorCitjbGFzcyBIYXNQYXJhbWV0ZXJzVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0V2l0aFBhcmFtPGludD4ge307CisKK1RFU1RfUChIYXNQYXJhbWV0ZXJzVGVzdCwgVGVz
dDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVF9QKEhhc1BhcmFt
ZXRlcnNUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1AoSGFzUGFyYW1ldGVyc1N1aXRlLCBIYXNQYXJhbWV0ZXJz
VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoMSwgMikpOwor
CitjbGFzcyBNeVRlc3RMaXN0ZW5lciA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50
TGlzdGVuZXIgeworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0
U3VpdGUmIHRlc3Rfc3VpdGUpIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRl
c3RTdWl0ZVN0YXJ0IG9mICVzLlxuIiwgdGVzdF9zdWl0ZS5uYW1lKCkpOworICB9CisKKyAgdm9p
ZCBPblRlc3RTdGFydChjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJy
aWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRlc3RTdGFydCBvZiAlcy4lcy5cbiIsIHRl
c3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwKKyAgICAgICAgICAgdGVzdF9pbmZvLm5hbWUoKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoCisgICAgICBjb25zdCA6OnRlc3Rpbmc6
OlRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSBvdmVycmlkZSB7CisgICAgcHJpbnRm
KCJXZSBhcmUgaW4gT25UZXN0UGFydFJlc3VsdCAlczolZC5cbiIsIHRlc3RfcGFydF9yZXN1bHQu
ZmlsZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIoKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0
X2luZm8pIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRlc3RFbmQgb2YgJXMu
JXMuXG4iLCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfaW5m
by5uYW1lKCkpOworICB9CisKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCA6OnRlc3Rpbmc6
OlRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgb3ZlcnJpZGUgeworICAgIHByaW50ZigiV2UgYXJlIGlu
IE9uVGVzdFN1aXRlRW5kIG9mICVzLlxuIiwgdGVzdF9zdWl0ZS5uYW1lKCkpOworICB9Cit9Owor
CitURVNUKEhhc1NraXBUZXN0LCBUZXN0MCkgeyBTVUNDRUVEKCkgPDwgIkV4cGVjdGVkIHN1Y2Nl
c3MuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MSkgeyBHVEVTVF9TS0lQKCkgPDwgIkV4
cGVjdGVkIHNraXAuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwg
IkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MykgeyBGQUlM
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0NCkg
eyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCit9ICAvLyBuYW1lc3BhY2UKKwor
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2ds
ZVRlc3QoJmFyZ2MsIGFyZ3YpOworICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
LT5saXN0ZW5lcnMoKS5BcHBlbmQobmV3IE15VGVzdExpc3RlbmVyKCkpOworICByZXR1cm4gUlVO
X0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwppbmRleCAzN2YwMmZiNGJkNzc5N2QxNGQz
ODNhMDVmYTE5N2MzNmIzMTgyNWYyLi5hYWZhZDM2ZjNmZWY0NDlmNDZiYTc3ZGIyMGVjYzk2NmI1
NzIwYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsZXBhdGgtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwpAQCAtNTAsOCArNTAsNiBAQCBuYW1lc3BhY2UgaW50
ZXJuYWwgewogbmFtZXNwYWNlIHsKIAogI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCi0vLyBG
SVhNRTogTW92ZSB0aGVzZSB0byB0aGUgUE9TSVggYWRhcHRlciBzZWN0aW9uIGluCi0vLyBndGVz
dC1wb3J0LmguCiAKIC8vIFdpbmRvd3MgQ0UgZG9lc24ndCBoYXZlIHRoZSByZW1vdmUgQyBmdW5j
dGlvbi4KIGludCByZW1vdmUoY29uc3QgY2hhciogcGF0aCkgewpAQCAtODAsNyArNzgsNyBAQCBU
RVNUKEdldEN1cnJlbnREaXJUZXN0LCBSZXR1cm5zQ3VycmVudERpcikgewogICBjb25zdCBGaWxl
UGF0aCBjd2QgPSBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpOwogICBwb3NpeDo6Q2hEaXIob3Jp
Z2luYWxfZGlyLmNfc3RyKCkpOwogCi0jIGlmIEdURVNUX09TX1dJTkRPV1MKKyMgaWYgR1RFU1Rf
T1NfV0lORE9XUyB8fCBHVEVTVF9PU19PUzIKIAogICAvLyBTa2lwcyB0aGUgIjoiLgogICBjb25z
dCBjaGFyKiBjb25zdCBjd2Rfd2l0aG91dF9kcml2ZSA9IHN0cmNocihjd2QuY19zdHIoKSwgJzon
KTsKQEAgLTQ3OSw3ICs0NzcsNyBAQCBURVNUKEFzc2lnbm1lbnRPcGVyYXRvclRlc3QsIENvbnN0
QXNzaWduZWRUb05vbkNvbnN0KSB7CiAKIGNsYXNzIERpcmVjdG9yeUNyZWF0aW9uVGVzdCA6IHB1
YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICB0ZXN0ZGF0YV9wYXRoXy5TZXQoRmlsZVBhdGgoCiAg
ICAgICAgIFRlbXBEaXIoKSArIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLnN0cmluZygpICsK
ICAgICAgICAgIl9kaXJlY3RvcnlfY3JlYXRpb24iIEdURVNUX1BBVEhfU0VQXyAidGVzdCIgR1RF
U1RfUEFUSF9TRVBfKSk7CkBAIC00OTYsNyArNDk0LDcgQEAgY2xhc3MgRGlyZWN0b3J5Q3JlYXRp
b25UZXN0IDogcHVibGljIFRlc3QgewogICAgIHBvc2l4OjpSbURpcih0ZXN0ZGF0YV9wYXRoXy5j
X3N0cigpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICByZW1vdmUodGVzdGRhdGFfZmlsZV8uY19zdHIoKSk7CiAg
ICAgcmVtb3ZlKHVuaXF1ZV9maWxlMF8uY19zdHIoKSk7CiAgICAgcmVtb3ZlKHVuaXF1ZV9maWxl
MV8uY19zdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weQppbmRleCBkYzBiNWJkOWE1Y2ZjNWJmZThj
NjhhZjFiNjQ3ODk5ZTFmZWJkYTY3Li42YjMyZjJkMjE5OTcxODlhM2NkOWVhZjMxM2Q0NzBiZGQ4
NGZjYzExIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtZmlsdGVyLXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkKQEAgLTQyLDcgKzQyLDEwIEBAIHdlIHRlc3Qg
dGhhdCBoZXJlIGFsc28uCiAKIGltcG9ydCBvcwogaW1wb3J0IHJlCi1pbXBvcnQgc2V0cwordHJ5
OgorICBmcm9tIHNldHMgaW1wb3J0IFNldCBhcyBzZXQgICMgRm9yIFB5dGhvbiAyLjMgY29tcGF0
aWJpbGl0eQorZXhjZXB0IEltcG9ydEVycm9yOgorICBwYXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQg
Z3Rlc3RfdGVzdF91dGlscwogCkBAIC01Nyw3ICs2MCw3IEBAIENBTl9QQVNTX0VNUFRZX0VOViA9
IEZhbHNlCiBpZiBzeXMuZXhlY3V0YWJsZToKICAgb3MuZW52aXJvblsnRU1QVFlfVkFSJ10gPSAn
JwogICBjaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygKLSAgICAgIFtzeXMuZXhl
Y3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBvczsgcHJpbnQgXCdFTVBUWV9WQVJcJyBpbiBvcy5lbnZp
cm9uJ10pCisgICAgICBbc3lzLmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50KFwn
RU1QVFlfVkFSXCcgaW4gb3MuZW52aXJvbiknXSkKICAgQ0FOX1BBU1NfRU1QVFlfRU5WID0gZXZh
bChjaGlsZC5vdXRwdXQpCiAKIApAQCAtNzIsNyArNzUsNyBAQCBpZiBzeXMuZXhlY3V0YWJsZToK
ICAgb3MuZW52aXJvblsnVU5TRVRfVkFSJ10gPSAnWCcKICAgZGVsIG9zLmVudmlyb25bJ1VOU0VU
X1ZBUiddCiAgIGNoaWxkID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKAotICAgICAgW3N5
cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBwcmludCBcJ1VOU0VUX1ZBUlwnIG5vdCBp
biBvcy5lbnZpcm9uJworICAgICAgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBw
cmludChcJ1VOU0VUX1ZBUlwnIG5vdCBpbiBvcy5lbnZpcm9uKScKICAgICAgIF0pCiAgIENBTl9V
TlNFVF9FTlYgPSBldmFsKGNoaWxkLm91dHB1dCkKIApAQCAtMjQ1LDE0ICsyNDgsMTQgQEAgY2xh
c3MgR1Rlc3RGaWx0ZXJVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICBm
b3Igc2xpY2VfdmFyIGluIGxpc3Rfb2Zfc2V0czoKICAgICAgIGZ1bGxfcGFydGl0aW9uLmV4dGVu
ZChzbGljZV92YXIpCiAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2V0X3ZhciksIGxlbihmdWxs
X3BhcnRpdGlvbikpCi0gICAgc2VsZi5hc3NlcnRFcXVhbChzZXRzLlNldChzZXRfdmFyKSwgc2V0
cy5TZXQoZnVsbF9wYXJ0aXRpb24pKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHNldF92YXIp
LCBzZXQoZnVsbF9wYXJ0aXRpb24pKQogCiAgIGRlZiBBZGp1c3RGb3JQYXJhbWV0ZXJpemVkVGVz
dHMoc2VsZiwgdGVzdHNfdG9fcnVuKToKICAgICAiIiJBZGp1c3QgdGVzdHNfdG9fcnVuIGluIGNh
c2UgdmFsdWUgcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgZGlzYWJsZWQuIiIiCiAKICAgICBnbG9i
YWwgcGFyYW1fdGVzdHNfcHJlc2VudAogICAgIGlmIG5vdCBwYXJhbV90ZXN0c19wcmVzZW50Ogot
ICAgICAgcmV0dXJuIGxpc3Qoc2V0cy5TZXQodGVzdHNfdG9fcnVuKSAtIHNldHMuU2V0KFBBUkFN
X1RFU1RTKSkKKyAgICAgIHJldHVybiBsaXN0KHNldCh0ZXN0c190b19ydW4pIC0gc2V0KFBBUkFN
X1RFU1RTKSkKICAgICBlbHNlOgogICAgICAgcmV0dXJuIHRlc3RzX3RvX3J1bgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0
ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXIt
dW5pdHRlc3RfLmNjCmluZGV4IGQzMzViNjAzOTFkMWQ0NjhhNDExNjFiMzhjMTRlY2NiZjFkMTM4
MDUuLmQzMGVjOWM3OGI1NjVkOGU4MTgwMTczZDhmYzRlOGFlZmFkODhhZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3Rf
LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXIt
dW5pdHRlc3RfLmNjCkBAIC0xMjUsOCArMTI1LDggQEAgVEVTVF9QKFBhcmFtVGVzdCwgVGVzdFgp
IHsKIFRFU1RfUChQYXJhbVRlc3QsIFRlc3RZKSB7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKFNlcVAsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDEsIDIpKTsKLUlOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QKFNlcVEsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFsdWVzKDUsIDYpKTsKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXFQLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcygx
LCAyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxUSwgUGFyYW1UZXN0LCB0ZXN0aW5n
OjpWYWx1ZXMoNSwgNikpOwogCiB9ICAvLyBuYW1lc3BhY2UKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0
dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwt
ZW52aXJvbm1lbnQtdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJiYTYyODUzNWNlMzJkZDQ0ZmFm
MWQ1ZmM0N2U4YTJmYmYyNTM5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw3MiBAQAorIyBDb3B5cmlnaHQgMjAyMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3Qn
cyBnbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBiZWhhdmlvci4KKworQSB1c2VyIGNhbiBzcGVjaWZ5
IGEgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdmlhCit0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52
aXJvbm1lbnQuIEZhaWx1cmVzIGluIHRoZSBnbG9iYWwgZW52aXJvbm1lbnQgc2hvdWxkCityZXN1
bHQgaW4gYWxsIHVuaXQgdGVzdHMgYmVpbmcgc2tpcHBlZC4KKworVGhpcyBzY3JpcHQgdGVzdHMg
c3VjaCBmdW5jdGlvbmFsaXR5IGJ5IGludm9raW5nCitnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9u
bWVudC11bml0dGVzdF8gKGEgcHJvZ3JhbSB3cml0dGVuIHdpdGggR29vZ2xlIFRlc3QpLgorIiIi
CisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKworZGVmIFJ1bkFuZFJldHVybk91dHB1dCgp
OgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5kIHJldHVybnMgaXRzIG91dHB1dC4iIiIK
KworICByZXR1cm4gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFsKKyAgICAgIGd0ZXN0X3Rl
c3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKAorICAgICAgICAgICdnb29nbGV0ZXN0LWds
b2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8nKQorICBdKS5vdXRwdXQKKworCitjbGFzcyBHVGVz
dEdsb2JhbEVudmlyb25tZW50VW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6Cisg
ICIiIlRlc3RzIGdsb2JhbCB0ZXN0IGVudmlyb25tZW50IGZhaWx1cmVzLiIiIgorCisgIGRlZiB0
ZXN0RW52aXJvbm1lbnRTZXRVcEZhaWxzKHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBub3Qgc3BlY2lmeWluZyB0aGUgZmFpbF9mYXN0LiIiIgorCisgICAgIyBSdW4gdGhlIHRl
c3QuCisgICAgdHh0ID0gUnVuQW5kUmV0dXJuT3V0cHV0KCkKKworICAgICMgV2Ugc2hvdWxkIHNl
ZSB0aGUgdGV4dCBvZiB0aGUgZ2xvYmFsIGVudmlyb25tZW50IHNldHVwIGVycm9yLgorICAgIHNl
bGYuYXNzZXJ0SW4oJ0Nhbm5lZCBlbnZpcm9ubWVudCBzZXR1cCBlcnJvcicsIHR4dCkKKworICAg
ICMgT3VyIHRlc3Qgc2hvdWxkIGhhdmUgYmVlbiBza2lwcGVkIGR1ZSB0byB0aGUgZXJyb3IsIGFu
ZCBub3QgdHJlYXRlZCBhcyBhCisgICAgIyBwYXNzLgorICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNL
SVBQRUQgXSAxIHRlc3QnLCB0eHQpCisgICAgc2VsZi5hc3NlcnRJbignWyAgUEFTU0VEICBdIDAg
dGVzdHMnLCB0eHQpCisKKyAgICAjIFRoZSB0ZXN0IGNhc2Ugc2hvdWxkbid0IGhhdmUgYmVlbiBy
dW4uCisgICAgc2VsZi5hc3NlcnROb3RJbignVW5leHBlY3RlZCBjYWxsJywgdHh0KQorCisKK2lm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVu
dmlyb25tZW50LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3RfLmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MDFi
MmZhYzI1ZDE3ZGQ3ZmU1YWI3ODhiMTE3NGY2YjkyOTNjMDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50
LXVuaXR0ZXN0Xy5jYwpAQCAtMCwwICsxLDU4IEBACisvLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xl
IEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFVuaXQgdGVzdCBmb3IgR29vZ2xlIFRlc3QgZ2xvYmFs
IHRlc3QgZW52aXJvbm1lbnRzLgorLy8KKy8vIFRoZSBwcm9ncmFtIHdpbGwgYmUgaW52b2tlZCBm
cm9tIGEgUHl0aG9uIHVuaXQgdGVzdC4gIERvbid0IHJ1biBpdAorLy8gZGlyZWN0bHkuCisKKyNp
bmNsdWRlICJndGVzdC9ndGVzdC5oIgorCituYW1lc3BhY2UgeworCisvLyBBbiBlbnZpcm9ubWVu
dCB0aGF0IGFsd2F5cyBmYWlscyBpbiBpdHMgU2V0VXAgbWV0aG9kLgorY2xhc3MgRmFpbGluZ0Vu
dmlyb25tZW50IGZpbmFsIDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1Ymxp
YzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgRkFJTCgpIDw8ICJDYW5uZWQgZW52aXJvbm1l
bnQgc2V0dXAgZXJyb3IiOyB9Cit9OworCisvLyBSZWdpc3RlciB0aGUgZW52aXJvbm1lbnQuCith
dXRvKiBjb25zdCBnX2Vudmlyb25tZW50XyA9CisgICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0
RW52aXJvbm1lbnQobmV3IEZhaWxpbmdFbnZpcm9ubWVudCk7CisKKy8vIEEgdGVzdCB0aGF0IGRv
ZXNuJ3QgYWN0dWFsbHkgcnVuLgorVEVTVChTb21lVGVzdCwgRG9lc0ZvbykgeyBGQUlMKCkgPDwg
IlVuZXhwZWN0ZWQgY2FsbCI7IH0KKworfSAgLy8gbmFtZXNwYWNlCisKK2ludCBtYWluKGludCBh
cmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBh
cmd2KTsKKworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0ZmlsZXMtdGVzdC5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVzLXRl
c3QucHkKaW5kZXggYzk5YmU0OGU4YWMzNjUwOWVkMzJlYTJmYjhlNGZhMWVhN2ZjODM2NC4uOGVm
NDdiOGY5NzQ2M2MyZTNhZDQ0MjI1NDc5ZDNiYzA2MzM4NzkyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0ZmlsZXMtdGVzdC5weQor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRmaWxl
cy10ZXN0LnB5CkBAIC00MCwyNCArNDAsNDEgQEAgR1RFU1RfT1VUUFVUXzFfVEVTVCA9ICdndGVz
dF94bWxfb3V0ZmlsZTFfdGVzdF8nCiBHVEVTVF9PVVRQVVRfMl9URVNUID0gJ2d0ZXN0X3htbF9v
dXRmaWxlMl90ZXN0XycKIAogRVhQRUNURURfMSA9IHsKLSAgICB1J3Rlc3RzJzogMSwKLSAgICB1
J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0g
ICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzog
dSdBbGxUZXN0cycsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDEsCisgICAgdSdmYWlsdXJlcyc6
CisgICAgICAgIDAsCisgICAgdSdkaXNhYmxlZCc6CisgICAgICAgIDAsCisgICAgdSdlcnJvcnMn
OgorICAgICAgICAwLAorICAgIHUndGltZSc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lc3Rh
bXAnOgorICAgICAgICB1JyonLAorICAgIHUnbmFtZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAog
ICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlPbmUnLAot
ICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgIHUn
ZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAgICAgIHUndGltZSc6IHUn
KicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1Byb3BlcnR5T25lJywKKyAgICAg
ICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAg
ICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAg
dSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAg
IHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCiAgICAgICAg
IHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUnVGVzdFNvbWVQcm9wZXJ0
aWVzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAg
ICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3Bl
cnR5T25lJywKICAgICAgICAgICAgIHUnU2V0VXBQcm9wJzogdScxJywKICAgICAgICAgICAgIHUn
VGVzdFNvbWVQcm9wZXJ0eSc6IHUnMScsCkBAIC02NywyMyArODQsNDAgQEAgRVhQRUNURURfMSA9
IHsKIH0KIAogRVhQRUNURURfMiA9IHsKLSAgICB1J3Rlc3RzJzogMSwKLSAgICB1J2ZhaWx1cmVz
JzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1l
JzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzogdSdBbGxUZXN0
cycsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDEsCisgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
IDAsCisgICAgdSdkaXNhYmxlZCc6CisgICAgICAgIDAsCisgICAgdSdlcnJvcnMnOgorICAgICAg
ICAwLAorICAgIHUndGltZSc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lc3RhbXAnOgorICAg
ICAgICB1JyonLAorICAgIHUnbmFtZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAogICAgIHUndGVz
dHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlUd28nLAotICAgICAgICB1
J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgIHUnZGlzYWJsZWQn
OiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAgICAgIHUndGltZSc6IHUnKicsCisgICAg
ICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1Byb3BlcnR5VHdvJywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1
aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUnVGVzdFNvbWVQcm9wZXJ0aWVzJywKICAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NP
TVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5VHdvJywK
ICAgICAgICAgICAgIHUnU2V0VXBQcm9wJzogdScyJywKQEAgLTEzNiwxMSArMTcwLDYgQEAgY2xh
c3MgR1Rlc3RKc29uT3V0RmlsZXNUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAg
IHNlbGYuYXNzZXJ0XyhwLmV4aXRlZCkKICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBwLmV4aXRf
Y29kZSkKIAotICAgICMgRklYTUU6IGxpYnRvb2wgY2F1c2VzIHRoZSBidWlsdCB0ZXN0IGJpbmFy
eSB0byBiZQotICAgICMgICBuYW1lZCBsdC1ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdF8gaW5zdGVh
ZCBvZgotICAgICMgICBndGVzdF94bWxfb3V0ZmlsZXNfdGVzdF8uICBUbyBhY2NvdW50IGZvciB0
aGlzIHBvc3NpYmlsaXR5LCB3ZQotICAgICMgICBhbGxvdyBib3RoIG5hbWVzIGluIHRoZSBmb2xs
b3dpbmcgY29kZS4gIFdlIHNob3VsZCByZW1vdmUgdGhpcwotICAgICMgICB3aGVuIGxpYnRvb2wg
cmVwbGFjZW1lbnQgdG9vbCBpcyByZWFkeS4KICAgICBvdXRwdXRfZmlsZV9uYW1lMSA9IHRlc3Rf
bmFtZSArICcuanNvbicKICAgICBvdXRwdXRfZmlsZTEgPSBvcy5wYXRoLmpvaW4oc2VsZi5vdXRw
dXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0cHV0X2ZpbGVfbmFtZTIgPSAnbHQt
JyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5pdHRlc3QucHkKaW5kZXgg
NTdkY2Q1ZmExYzQ2MzlmMTUyZmI1NGU1MGZiOWMwNTk4YTBlNDZhMC4uNDFjODU2NTE0NDk5ODRh
N2IxNDE4ZGIyZWQ1OGI1MWZkMzZhMDU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dHB1dC11bml0dGVzdC5w
eQpAQCAtNTcsMzg0ICs1Nyw2MTQgQEAgZWxzZToKICAgU1RBQ0tfVFJBQ0VfVEVNUExBVEUgPSAn
JwogCiBFWFBFQ1RFRF9OT05fRU1QVFkgPSB7Ci0gICAgdSd0ZXN0cyc6IDIzLAotICAgIHUnZmFp
bHVyZXMnOiA0LAotICAgIHUnZGlzYWJsZWQnOiAyLAotICAgIHUnZXJyb3JzJzogMCwKLSAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1J2FkX2hvY19wcm9w
ZXJ0eSc6IHUnNDInLAotICAgIHUnbmFtZSc6IHUnQWxsVGVzdHMnLAotICAgIHUndGVzdHN1aXRl
cyc6IFsKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZXNzZnVsVGVzdCcs
Ci0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAot
ICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisg
ICAgdSd0ZXN0cyc6CisgICAgICAgIDI2LAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICA1LAor
ICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAyLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwK
KyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKicsCisgICAgdSd0aW1lJzoKKyAgICAgICAg
dScqJywKKyAgICB1J2FkX2hvY19wcm9wZXJ0eSc6CisgICAgICAgIHUnNDInLAorICAgIHUnbmFt
ZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAorICAgIHUndGVzdHN1aXRlcyc6IFt7CisgICAgICAg
IHUnbmFtZSc6CisgICAgICAgICAgICB1J1N1Y2Nlc3NmdWxUZXN0JywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMn
OgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1
aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2VlZHMnLAorICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywK
KyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUn
KicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU3VjY2Vzc2Z1bFRlc3QnCisgICAgICAg
IH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdGYWlsZWRUZXN0
JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVz
JzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwK
KyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAg
ICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKics
CisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6CisgICAgICAg
ICAgICAgICAgdSdGYWlscycsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAg
ICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09N
UExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnRmFpbGVkVGVzdCcsCisgICAgICAg
ICAgICB1J2ZhaWx1cmVzJzogW3sKKyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAg
ICAgICAgICAgIHUndHlwZSc6IHUnJworICAgICAgICAgICAgfV0KKyAgICAgICAgfV0KKyAgICB9
LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J0Rpc2FibGVkVGVzdCcsCisgICAg
ICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAg
ICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDEsCisgICAgICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAg
ICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3Rf
bm90X3J1bicsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnTk9UUlVOJywKKyAgICAgICAgICAg
IHUncmVzdWx0JzogdSdTVVBQUkVTU0VEJywKKyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisg
ICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnRGlzYWJsZWRUZXN0JworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoK
KyAgICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAg
ICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdk
aXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAg
ICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1l
c3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAg
ICAgICAgICAgdSduYW1lJzogdSdTa2lwcGVkJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J1NLSVBQRUQnLAorICAgICAgICAgICAgdSd0
aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdTa2lwcGVkVGVzdCcKKyAgICAgICAgfSwgeworICAgICAgICAgICAg
dSduYW1lJzogdSdTa2lwcGVkV2l0aE1lc3NhZ2UnLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1
J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnU0tJUFBFRCcsCisgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NraXBwZWRUZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAg
ICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnU2tpcHBlZEFmdGVyRmFpbHVyZScsCisgICAg
ICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAg
dSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUn
dGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAg
ICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7Cisg
ICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBv
ZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAg
MicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycK
KyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgor
ICAgICAgICAgICAgdSdNaXhlZFJlc3VsdFRlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAg
ICAgICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAg
dSdkaXNhYmxlZCc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0
aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbewor
ICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAorICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAg
ICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCisgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICAgICAgdSdGYWlscycsCisgICAgICAgICAg
ICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6
CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAg
ICAgIHUnTWl4ZWRSZXN1bHRUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAg
ICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6
KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2Yg
dGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAxXG4gIDIn
ICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCisg
ICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF94bWxf
b3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdF
eHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdScgIDJcbiAgMycgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAg
ICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHUnbmFtZSc6IHUnRElTQUJMRURfdGVzdCcsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUn
Tk9UUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdTVVBQUkVTU0VEJywKKyAgICAgICAg
ICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JworICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAor
ICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMnOgor
ICAgICAgICAgICAgMSwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAg
ICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAg
ICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAg
ICAgICB1J091dHB1dHNDRGF0YScsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAg
ICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUn
Q09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywK
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAg
ICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAor
ICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzog
dSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdSdGYWlsZWRcblhNTCBvdXRwdXQ6IDw/eG1sIGVuY29kaW5nPSJ1dGYtOCI+Jwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnPHRvcD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+
PC90b3A+JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBQ0tfVFJBQ0VfVEVNUExB
VEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAg
ICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnSW52YWxpZENo
YXJhY3RlcnNUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAg
ICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAg
dSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFt
ZSc6CisgICAgICAgICAgICAgICAgdSdJbnZhbGlkQ2hhcmFjdGVyc0luTWVzc2FnZScsCisgICAg
ICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAg
dSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUn
dGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAg
ICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVy
ZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRmFpbGVkXG5J
bnZhbGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdScgW1x4MDFceDAyXScgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAgICAgICAgICAg
ICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAgfSwgeworICAg
ICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAg
ICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDQsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAg
ICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAg
ICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAg
ICAgdSdTZXRVcFRlc3RTdWl0ZSc6CisgICAgICAgICAgICB1J3llcycsCisgICAgICAgIHUnVGVh
ckRvd25UZXN0U3VpdGUnOgorICAgICAgICAgICAgdSdheWUnLAorICAgICAgICB1J3Rlc3RzdWl0
ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J09uZVByb3BlcnR5JywKKyAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcs
CisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1
JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcs
CisgICAgICAgICAgICB1J2tleV8xJzogdScxJworICAgICAgICB9LCB7CisgICAgICAgICAgICB1
J25hbWUnOiB1J0ludFZhbHVlZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKLSAgICAgICAg
ICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTdWNjZXNzZnVs
VGVzdCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFpbGVkVGVzdCcsCi0gICAgICAgICAgICB1
J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdk
aXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3Rp
bWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNv
cmRpbmdUZXN0JywKKyAgICAgICAgICAgIHUna2V5X2ludCc6IHUnMScKKyAgICAgICAgfSwgewor
ICAgICAgICAgICAgdSduYW1lJzogdSdUaHJlZVByb3BlcnRpZXMnLAorICAgICAgICAgICAgdSdz
dGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAg
ICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFpbHMnLAot
ICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J0Zh
aWxlZFRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1dF91bml0
dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVk
IGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAg
ICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdEaXNhYmxlZFRlc3Qn
LAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwK
LSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAxLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAor
ICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUn
OiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV8xJzogdScxJywK
KyAgICAgICAgICAgIHUna2V5XzInOiB1JzInLAorICAgICAgICAgICAgdSdrZXlfMyc6IHUnMycK
KyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdUd29WYWx1ZXNGb3JPbmVLZXlV
c2VzTGFzdFZhbHVlJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAg
ICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3Rfbm90X3J1bicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdOT1RSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3Rp
bWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnRGlzYWJsZWRU
ZXN0JwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnLAotICAgICAgICAg
ICAgdSd0ZXN0cyc6IDMsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAgICAgICAg
IHUnZGlzYWJsZWQnOiAxLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAg
dSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5
UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV8xJzogdScyJworICAgICAgICB9XQor
ICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnTm9GaXh0dXJlVGVzdCcs
CisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMywKKyAgICAgICAgdSdmYWlsdXJlcyc6
CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAg
ICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAor
ICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J1JlY29yZFBy
b3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdy
ZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCi0gICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUn
RmFpbHMnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAg
ICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25h
bWUnOiB1J01peGVkUmVzdWx0VGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZXMn
OiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1J2ZhaWx1cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
J2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAyXG4gIDMnICsgU1RBQ0tfVFJBQ0VfVEVN
UExBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdE
SVNBQkxFRF90ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J05PVFJVTics
Ci0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1
J1htbFF1b3RpbmdUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAg
dSdmYWlsdXJlcyc6IDEsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAg
IHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAg
ICAgIHUnY2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKKyAgICAgICAgICAgIHUna2V5Jzog
dScxJworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0V4dGVybmFsVXRpbGl0
eVRoYXRDYWxsc1JlY29yZEludFZhbHVlZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J091dHB1dHNDRGF0YScs
Ci0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
WG1sUXVvdGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFp
bHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1
dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0Zh
aWxlZFxuWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9InV0Zi04Ij4nCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnPHRvcD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+PC90b3A+JyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1
J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAg
ICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAg
ICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAgICB1
J2tleV9mb3JfdXRpbGl0eV9pbnQnOiB1JzEnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUn
bmFtZSc6IHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVy
dHknLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3Vs
dCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICB1J3Rlc3RzdWl0ZSc6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHUnbmFtZSc6IHUnSW52YWxpZENoYXJhY3RlcnNJbk1lc3NhZ2UnLAotICAgICAgICAgICAgICAg
ICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScq
JywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJz
VGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzoKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRmFpbGVkXG5JbnZh
bGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnIFtceDAxXHgwMl0nICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnUHJvcGVydHlSZWNv
cmRpbmdUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiA0LAotICAgICAgICAgICAgdSdmYWls
dXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJy
b3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKKyAgICAgICAgICAgIHUna2V5X2Zvcl91dGls
aXR5X3N0cmluZyc6IHUnMScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6
CisgICAgICAgICAgICB1J1R5cGVkVGVzdC8wJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAg
ICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGlt
ZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAg
ICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAgICAgICAgICAg
IHUndHlwZV9wYXJhbSc6IHUnaW50JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAor
ICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAotICAgICAgICAgICAgdSdTZXRVcFRlc3RDYXNlJzogdSd5ZXMnLAotICAgICAgICAg
ICAgdSdUZWFyRG93blRlc3RDYXNlJzogdSdheWUnLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUn
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J09u
ZVByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAg
ICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xh
c3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2tleV8xJzogdScxJwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0ludFZhbHVlZFByb3BlcnR5JywKLSAgICAgICAg
ICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJl
Y29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV9pbnQnOiB1JzEnCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUn
bmFtZSc6IHUnVGhyZWVQcm9wZXJ0aWVzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAotICAgICAg
ICAgICAgICAgICAgICB1J2tleV8xJzogdScxJywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlf
Mic6IHUnMicsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5XzMnOiB1JzMnCi0gICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6
IHUnVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1ZScsCi0gICAgICAgICAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0
JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfMSc6IHUnMicKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFt
ZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMywKLSAgICAgICAg
ICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAg
ICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0LzAnCisgICAgICAgIH1dCisgICAgfSwg
eworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdUeXBlZFRlc3QvMScsCisgICAgICAg
IHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAg
ICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUn
ZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1
JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1
J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJp
YnV0ZScsCisgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2xvbmcnLAorICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywK
ICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnUmVjb3Jk
UHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAg
ICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFz
c25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleSc6IHUn
MScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdSduYW1lJzogdSdFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQ
cm9wZXJ0eScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAg
ICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNz
bmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5X2Zvcl91
dGlsaXR5X2ludCc6IHUnMScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHUn
RXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHknLAotICAg
ICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAg
dSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J05vRml4
dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV9mb3JfdXRpbGl0eV9zdHJpbmcn
OiB1JzEnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1R5cGVkVGVzdC8wJywKLSAgICAgICAgICAg
IHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1
J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUn
dGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdUeXBlZFRlc3Qv
MScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1
J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wJywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAg
ICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzog
dSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAg
ICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJp
YnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdUeXBlZFRl
c3QvMCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnVHlwZWRUZXN0LzEnLAotICAgICAgICAgICAg
dSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUn
ZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0
aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9UeXBl
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wJworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAg
dSduYW1lJzoKKyAgICAgICAgICAgIHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LzEnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVy
ZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgor
ICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScq
JywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdIYXNU
eXBlUGFyYW1BdHRyaWJ1dGUnLAorICAgICAgICAgICAgdSd0eXBlX3BhcmFtJzogdSdsb25nJywK
KyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1
J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0
ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlw
ZV9wYXJhbSc6IHUnbG9uZycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4n
LAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAg
ICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0LzEnCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1Np
bmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAnLAotICAgICAgICAgICAgdSd0ZXN0cyc6
IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQn
OiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAn
OiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZS8xJworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoK
KyAgICAgICAgICAgIHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICA0LAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywK
KyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0
dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKLSAg
ICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAg
IHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5n
bGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8wJwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8xJywKLSAgICAgICAgICAgIHUndGVzdHMn
OiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVk
JzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRl
c3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0
dHJpYnV0ZS8xJywKKyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKKyAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRF
RCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUn
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hh
c1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6
IHUnbG9uZycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAg
ICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNz
bmFtZSc6IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMScKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHUnbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMn
OiA0LAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVk
JzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRl
c3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0
SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKKyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1
JzMzJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAg
ICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCcsCi0gICAgICAgICAgICAgICAg
ICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCi0gICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFt
ZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywKLSAgICAgICAgICAgICAgICAgICAgdSd2
YWx1ZV9wYXJhbSc6IHUnNDInLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdB
bm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAnLAotICAgICAgICAgICAgICAg
ICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JwotICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J0Fub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMScsCi0gICAgICAg
ICAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKLSAgICAgICAgICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0g
ICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3Qn
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXQorICAg
ICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1
J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1l
JzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEnLAorICAgICAgICAg
ICAgdSd2YWx1ZV9wYXJhbSc6IHUnNDInLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTics
CisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGlt
ZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1
J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JworICAgICAgICB9XQorICAgIH1d
CiB9CiAKIEVYUEVDVEVEX0ZJTFRFUkVEID0gewotICAgIHUndGVzdHMnOiAxLAotICAgIHUnZmFp
bHVyZXMnOiAwLAotICAgIHUnZGlzYWJsZWQnOiAwLAotICAgIHUnZXJyb3JzJzogMCwKLSAgICB1
J3RpbWUnOiB1JyonLAotICAgIHUndGltZXN0YW1wJzogdScqJywKLSAgICB1J25hbWUnOiB1J0Fs
bFRlc3RzJywKLSAgICB1J2FkX2hvY19wcm9wZXJ0eSc6IHUnNDInLAorICAgIHUndGVzdHMnOgor
ICAgICAgICAxLAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQn
OgorICAgICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgor
ICAgICAgICB1JyonLAorICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25h
bWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J2FkX2hvY19wcm9wZXJ0eSc6CisgICAg
ICAgIHUnNDInLAogICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUnU3Vj
Y2Vzc2Z1bFRlc3QnLAotICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6
IDAsCi0gICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAg
ICAgIHUndGltZSc6IHUnKicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1N1Y2Nl
c3NmdWxUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1
J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAg
ICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0
aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAg
ICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6
IHUnU3VjY2VlZHMnLAogICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAg
ICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisg
ICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCiAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnU3VjY2Vzc2Z1bFRlc3QnLAogICAgICAgICB9XQogICAgIH1dLAogfQogCi1FWFBFQ1RFRF9F
TVBUWSA9IHsKLSAgICB1J3Rlc3RzJzogMCwKLSAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rp
c2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzogdSdBbGxUZXN0cycsCi0gICAgdSd0ZXN0
c3VpdGVzJzogW10sCitFWFBFQ1RFRF9OT19URVNUID0geworICAgIHUndGVzdHMnOgorICAgICAg
ICAwLAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAg
ICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAg
ICB1JyonLAorICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgor
ICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J3Rlc3RzdWl0ZXMnOiBbeworICAgICAgICB1J25h
bWUnOgorICAgICAgICAgICAgdSdOb25UZXN0U3VpdGVGYWlsdXJlJywKKyAgICAgICAgdSd0ZXN0
cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEs
CisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdza2lwcGVk
JzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisg
ICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6
CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAg
ICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzoK
KyAgICAgICAgICAgICAgICB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6CisgICAgICAg
ICAgICAgICAgdSdDT01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAg
ICAgICB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgICAgIHUn
KicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6CisgICAgICAgICAgICAgICAgdScnLAorICAg
ICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdn
dGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAg
ICAgICAgICAgIHUndHlwZSc6IHUnJywKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAg
fV0sCiB9CiAKIEdURVNUX1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4
ZWN1dGFibGVQYXRoKEdURVNUX1BST0dSQU1fTkFNRSkKQEAgLTQ1OSwxNCArNjg5LDE0IEBAIGNs
YXNzIEdUZXN0SnNvbk91dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgog
ICAgICAgIiIiCiAgICAgICBzZWxmLl9UZXN0SnNvbk91dHB1dChHVEVTVF9QUk9HUkFNX05BTUUs
IEVYUEVDVEVEX05PTl9FTVBUWSwgMSkKIAotICBkZWYgdGVzdEVtcHR5SnNvbk91dHB1dChzZWxm
KToKKyAgZGVmIHRlc3ROb1Rlc3RKc29uT3V0cHV0KHNlbGYpOgogICAgICIiIlZlcmlmaWVzIEpT
T04gb3V0cHV0IGZvciBhIEdvb2dsZSBUZXN0IGJpbmFyeSB3aXRob3V0IGFjdHVhbCB0ZXN0cy4K
IAotICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gZW1wdHkgSlNPTiBv
dXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIEpTT04gb3V0cHV0IGlzIGV4cGVjdGVkLgor
ICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gSlNPTiBvdXRwdXQgZm9y
IGEgYmluYXJ5IHdpdGggbm8KKyAgICB0ZXN0cywgYW5kIHRlc3RzIHRoYXQgdGhlIEpTT04gb3V0
cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAgc2VsZi5fVGVzdEpzb25PdXRwdXQoJ2d0
ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9FTVBUWSwgMCkKKyAgICBzZWxmLl9UZXN0
SnNvbk91dHB1dCgnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX05PX1RFU1QsIDAp
CiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToKICAgICAiIiJDaGVja3Mgd2hldGhl
ciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgSlNPTiBvdXRwdXQgaXMgdmFsaWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlua2Vk
LXB0ci10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxp
bmtlZC1wdHItdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEwMGYzNDI5
NmJkNTc5NGMxNjQ0NzlmMjJhODhkZDRmNzM2MDAxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtbGlua2VkLXB0ci10ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMTUxICswLDAgQEAK
LS8vIENvcHlyaWdodCAyMDAzLCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8g
ZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2luY2x1ZGUg
PHN0ZGxpYi5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5o
IgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLXVzaW5nIHRlc3Rp
bmc6Ok1lc3NhZ2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6bGlua2VkX3B0cjsKLQotaW50
IG51bTsKLU1lc3NhZ2UqIGhpc3RvcnkgPSBOVUxMOwotCi0vLyBDbGFzcyB3aGljaCB0cmFja3Mg
YWxsb2NhdGlvbi9kZWFsbG9jYXRpb24KLWNsYXNzIEEgewotIHB1YmxpYzoKLSAgQSgpOiBteW51
bShudW0rKykgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXludW0gPDwgIiBjdG9yXG4iOyB9Ci0gIHZp
cnR1YWwgfkEoKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBteW51bSA8PCAiIGR0b3JcbiI7IH0KLSAg
dmlydHVhbCB2b2lkIFVzZSgpIHsgKmhpc3RvcnkgPDwgIkEiIDw8IG15bnVtIDw8ICIgdXNlXG4i
OyB9Ci0gcHJvdGVjdGVkOgotICBpbnQgbXludW07Ci19OwotCi0vLyBTdWJjbGFzcwotY2xhc3Mg
QiA6IHB1YmxpYyBBIHsKLSBwdWJsaWM6Ci0gIEIoKSB7ICpoaXN0b3J5IDw8ICJCIiA8PCBteW51
bSA8PCAiIGN0b3JcbiI7IH0KLSAgfkIoKSB7ICpoaXN0b3J5IDw8ICJCIiA8PCBteW51bSA8PCAi
IGR0b3JcbiI7IH0KLSAgdmlydHVhbCB2b2lkIFVzZSgpIHsgKmhpc3RvcnkgPDwgIkIiIDw8IG15
bnVtIDw8ICIgdXNlXG4iOyB9Ci19OwotCi1jbGFzcyBMaW5rZWRQdHJUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewotIHB1YmxpYzoKLSAgTGlua2VkUHRyVGVzdCgpIHsKLSAgICBudW0gPSAw
OwotICAgIGhpc3RvcnkgPSBuZXcgTWVzc2FnZTsKLSAgfQotCi0gIHZpcnR1YWwgfkxpbmtlZFB0
clRlc3QoKSB7Ci0gICAgZGVsZXRlIGhpc3Rvcnk7Ci0gICAgaGlzdG9yeSA9IE5VTEw7Ci0gIH0K
LX07Ci0KLVRFU1RfRihMaW5rZWRQdHJUZXN0LCBHZW5lcmFsVGVzdCkgewotICB7Ci0gICAgbGlu
a2VkX3B0cjxBPiBhMCwgYTEsIGEyOwotICAgIC8vIFVzZSBleHBsaWNpdCBmdW5jdGlvbiBjYWxs
IG5vdGF0aW9uIGhlcmUgdG8gc3VwcHJlc3Mgc2VsZi1hc3NpZ24gd2FybmluZy4KLSAgICBhMC5v
cGVyYXRvcj0oYTApOwotICAgIGExID0gYTI7Ci0gICAgQVNTRVJUX0VRKGEwLmdldCgpLCBzdGF0
aWNfY2FzdDxBKj4oTlVMTCkpOwotICAgIEFTU0VSVF9FUShhMS5nZXQoKSwgc3RhdGljX2Nhc3Q8
QSo+KE5VTEwpKTsKLSAgICBBU1NFUlRfRVEoYTIuZ2V0KCksIHN0YXRpY19jYXN0PEEqPihOVUxM
KSk7Ci0gICAgQVNTRVJUX1RSVUUoYTAgPT0gTlVMTCk7Ci0gICAgQVNTRVJUX1RSVUUoYTEgPT0g
TlVMTCk7Ci0gICAgQVNTRVJUX1RSVUUoYTIgPT0gTlVMTCk7Ci0KLSAgICB7Ci0gICAgICBsaW5r
ZWRfcHRyPEE+IGEzKG5ldyBBKTsKLSAgICAgIGEwID0gYTM7Ci0gICAgICBBU1NFUlRfVFJVRShh
MCA9PSBhMyk7Ci0gICAgICBBU1NFUlRfVFJVRShhMCAhPSBOVUxMKTsKLSAgICAgIEFTU0VSVF9U
UlVFKGEwLmdldCgpID09IGEzKTsKLSAgICAgIEFTU0VSVF9UUlVFKGEwID09IGEzLmdldCgpKTsK
LSAgICAgIGxpbmtlZF9wdHI8QT4gYTQoYTApOwotICAgICAgYTEgPSBhNDsKLSAgICAgIGxpbmtl
ZF9wdHI8QT4gYTUobmV3IEEpOwotICAgICAgQVNTRVJUX1RSVUUoYTUuZ2V0KCkgIT0gYTMpOwot
ICAgICAgQVNTRVJUX1RSVUUoYTUgIT0gYTMuZ2V0KCkpOwotICAgICAgYTIgPSBhNTsKLSAgICAg
IGxpbmtlZF9wdHI8Qj4gYjAobmV3IEIpOwotICAgICAgbGlua2VkX3B0cjxBPiBhNihiMCk7Ci0g
ICAgICBBU1NFUlRfVFJVRShiMCA9PSBhNik7Ci0gICAgICBBU1NFUlRfVFJVRShhNiA9PSBiMCk7
Ci0gICAgICBBU1NFUlRfVFJVRShiMCAhPSBOVUxMKTsKLSAgICAgIGE1ID0gYjA7Ci0gICAgICBh
NSA9IGIwOwotICAgICAgYTMtPlVzZSgpOwotICAgICAgYTQtPlVzZSgpOwotICAgICAgYTUtPlVz
ZSgpOwotICAgICAgYTYtPlVzZSgpOwotICAgICAgYjAtPlVzZSgpOwotICAgICAgKCpiMCkuVXNl
KCk7Ci0gICAgICBiMC5nZXQoKS0+VXNlKCk7Ci0gICAgfQotCi0gICAgYTAtPlVzZSgpOwotICAg
IGExLT5Vc2UoKTsKLSAgICBhMi0+VXNlKCk7Ci0KLSAgICBhMSA9IGEyOwotICAgIGEyLnJlc2V0
KG5ldyBBKTsKLSAgICBhMC5yZXNldCgpOwotCi0gICAgbGlua2VkX3B0cjxBPiBhNzsKLSAgfQot
Ci0gIEFTU0VSVF9TVFJFUSgKLSAgICAiQTAgY3RvclxuIgotICAgICJBMSBjdG9yXG4iCi0gICAg
IkEyIGN0b3JcbiIKLSAgICAiQjIgY3RvclxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTAgdXNl
XG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAg
IkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgZHRvclxuIgotICAgICJBMiBkdG9y
XG4iCi0gICAgIkEwIHVzZVxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTEgdXNlXG4iCi0gICAg
IkEzIGN0b3JcbiIKLSAgICAiQTAgZHRvclxuIgotICAgICJBMyBkdG9yXG4iCi0gICAgIkExIGR0
b3JcbiIsCi0gICAgaGlzdG9yeS0+R2V0U3RyaW5nKCkuY19zdHIoKSk7Ci19Ci0KLX0gIC8vIFVu
bmFtZWQgbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MKaW5kZXggZjQ3M2M3
ZDFhNDVmMWYxOTZiMTM3NDgzYjA1M2NhNTk4MDA3ZDI4OC4uNDkzYzZmMDA0NjRhOTBkNjM1ZDhk
ZjA5NmJmZmVjNTE3M2U2ZTQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYwpAQCAt
OTksNyArOTksNyBAQCBURVNUX1AoVmFsdWVQYXJhbVRlc3QsIFRlc3RBKSB7CiBURVNUX1AoVmFs
dWVQYXJhbVRlc3QsIFRlc3RCKSB7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKAogICAgIE15SW5zdGFudGlhdGlvbiwgVmFsdWVQYXJhbVRl
c3QsCiAgICAgdGVzdGluZzo6VmFsdWVzKE15VHlwZSgib25lIGxpbmUiKSwKICAgICAgICAgICAg
ICAgICAgICAgTXlUeXBlKCJ0d29cbmxpbmVzIiksCkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3Mg
TXlBcnJheSB7CiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPFZlcnlMb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb2dOYW1lLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgIGludCosIE15QXJy
YXk8Ym9vbCwgNDI+ID4gTXlUeXBlczsKIAotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdCwgTXlU
eXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdCwgTXlUeXBlcyk7CiAKIFRZUEVEX1RF
U1QoVHlwZWRUZXN0LCBUZXN0QSkgewogfQpAQCAtMTM3LDcgKzEzNyw3IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgVHlwZVBhcmFtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
IH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbVRlc3QpOworVFlQRURfVEVTVF9TVUlU
RV9QKFR5cGVQYXJhbVRlc3QpOwogCiBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEp
IHsKIH0KQEAgLTE0NSw5ICsxNDUsOSBAQCBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVz
dEEpIHsKIFRZUEVEX1RFU1RfUChUeXBlUGFyYW1UZXN0LCBUZXN0QikgewogfQogCi1SRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1UZXN0LCBUZXN0QSwgVGVzdEIpOworUkVHSVNU
RVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbVRlc3QsIFRlc3RBLCBUZXN0Qik7CiAKLUlO
U1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBUeXBlUGFyYW1UZXN0LCBNeVR5cGVzKTsK
K0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgVHlwZVBhcmFtVGVzdCwgTXlUeXBl
cyk7CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICA6OnRlc3Rpbmc6Oklu
aXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKaW5kZXggODM1NTU5NzE1
MWQwOWQ2YzMxNTY3MWY0MmRiNjZjYzRiZDQ4NTBmZC4uMTA0NTdhZmUzOWE3ZGJkMWZhMGY3MzM5
Mjg2Nzg3MjhkY2QxYjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKQEAgLTM1LDE5ICszNSwyMCBAQAog
I2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisjaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgiCiAKIHVzaW5nIDo6dGVzdGluZzo6QWRkR2xv
YmFsVGVzdEVudmlyb25tZW50OwogdXNpbmcgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudDsKIHVzaW5n
IDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3Q7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3Q7Ci11c2lu
ZyA6OnRlc3Rpbmc6OlRlc3RDYXNlOwordXNpbmcgOjp0ZXN0aW5nOjpUZXN0U3VpdGU7CiB1c2lu
ZyA6OnRlc3Rpbmc6OlRlc3RFdmVudExpc3RlbmVyOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5m
bzsKIHVzaW5nIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ7CiB1c2luZyA6OnRlc3Rpbmc6OlVu
aXRUZXN0OwogCiAvLyBVc2VkIGJ5IHRlc3RzIHRvIHJlZ2lzdGVyIHRoZWlyIGV2ZW50cy4KLXN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiogZ19ldmVudHMgPSBOVUxMOworc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+KiBnX2V2ZW50cyA9IG51bGxwdHI7CiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5h
bWVzcGFjZSBpbnRlcm5hbCB7CkBAIC01Nyw2MyArNTgsNjYgQEAgY2xhc3MgRXZlbnRSZWNvcmRp
bmdMaXN0ZW5lciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgIGV4cGxpY2l0IEV2ZW50
UmVjb3JkaW5nTGlzdGVuZXIoY29uc3QgY2hhciogbmFtZSkgOiBuYW1lXyhuYW1lKSB7fQogCiAg
cHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3JhbVN0YXJ0IikpOwogICB9CiAKLSAgdmly
dHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikg
eworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJyaWRl
IHsKICAgICBNZXNzYWdlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFt
ZSgiT25UZXN0SXRlcmF0aW9uU3RhcnQiKQogICAgICAgICAgICAgPDwgIigiIDw8IGl0ZXJhdGlv
biA8PCAiKSI7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsK
ICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQo
Y29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+
cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwU3RhcnQiKSk7
CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwRW5kIikpOwogICB9
Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0
X2Nhc2UqLykgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAg
dm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJy
aWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RD
YXNlU3RhcnQiKSk7CiAgIH0KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRl
c3RfaW5mbyovKSB7CisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9p
bmZvKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2RO
YW1lKCJPblRlc3RTdGFydCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVz
dWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykgeworICB2b2lk
IE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3Vs
dCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFt
ZSgiT25UZXN0UGFydFJlc3VsdCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQo
Y29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3Qg
VGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9i
YWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RFbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZv
aWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgeworI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5k
KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0Q2FzZUVuZCIpKTsKICAgfQorI2Vu
ZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAotICB2aXJ0dWFsIHZv
aWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRG
dWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IikpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIpKTsKICAgfQog
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlv
bikgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUg
ewogICAgIE1lc3NhZ2UgbWVzc2FnZTsKICAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2ROYW1l
KCJPblRlc3RJdGVyYXRpb25FbmQiKQogICAgICAgICAgICAgPDwgIigiICA8PCBpdGVyYXRpb24g
PDwgIikiOwogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmcoKSk7CiAg
IH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLykgeworICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxN
ZXRob2ROYW1lKCJPblRlc3RQcm9ncmFtRW5kIikpOwogICB9CiAKQEAgLTEyNSwzNCArMTI5LDk4
IEBAIGNsYXNzIEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVu
ZXIgewogICBzdGQ6OnN0cmluZyBuYW1lXzsKIH07CiAKLWNsYXNzIEVudmlyb25tZW50SW52b2Nh
dGlvbkNhdGNoZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQgeworLy8gVGhpcyBsaXN0ZW5lciBpcyB1
c2luZyBPblRlc3RTdWl0ZVN0YXJ0LCBPblRlc3RTdWl0ZUVuZCBBUEkKK2NsYXNzIEV2ZW50UmVj
b3JkaW5nTGlzdGVuZXIyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKKyBwdWJsaWM6Cisg
IGV4cGxpY2l0IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIyKGNvbnN0IGNoYXIqIG5hbWUpIDogbmFt
ZV8obmFtZSkge30KKwogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50OjpTZXRVcCIpOworICB2b2lkIE9uVGVz
dFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewor
ICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1T
dGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJh
dGlvbikgb3ZlcnJpZGUgeworICAgIE1lc3NhZ2UgbWVzc2FnZTsKKyAgICBtZXNzYWdlIDw8IEdl
dEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25TdGFydCIpIDw8ICIoIiA8PCBpdGVyYXRp
b24KKyAgICAgICAgICAgIDw8ICIpIjsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKG1lc3NhZ2Uu
R2V0U3RyaW5nKCkpOworICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwU3RhcnQiKSk7Cisg
IH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwRW5kIikpOworICB9CisKKyAgdm9pZCBPblRlc3RT
dWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0X3N1aXRlKi8pIG92ZXJyaWRlIHsKKyAg
ICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RTdWl0ZVN0YXJ0
IikpOworICB9CisKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2lu
Zm8qLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uVGVzdFN0YXJ0IikpOworICB9CisKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0
IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykgb3ZlcnJpZGUgeworICAgIGdf
ZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFBhcnRSZXN1bHQiKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykg
b3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9u
VGVzdEVuZCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6VGVhckRvd24iKTsKKyAgdm9pZCBPblRlc3RT
dWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7CisgICAg
Z19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0U3VpdGVFbmQiKSk7
CiAgIH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVz
dCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0
RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIpKTsKKyAgfQorCisg
IHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEl0
ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUgeworICAgIE1lc3NhZ2UgbWVzc2Fn
ZTsKKyAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25FbmQi
KSA8PCAiKCIgPDwgaXRlcmF0aW9uCisgICAgICAgICAgICA8PCAiKSI7CisgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0UHJv
Z3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdf
ZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1FbmQiKSk7
CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6c3RyaW5nIEdldEZ1bGxNZXRob2ROYW1lKGNvbnN0
IGNoYXIqIG5hbWUpIHsgcmV0dXJuIG5hbWVfICsgIi4iICsgbmFtZTsgfQorCisgIHN0ZDo6c3Ry
aW5nIG5hbWVfOworfTsKKworY2xhc3MgRW52aXJvbm1lbnRJbnZvY2F0aW9uQ2F0Y2hlciA6IHB1
YmxpYyBFbnZpcm9ubWVudCB7CisgcHJvdGVjdGVkOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
eyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6U2V0VXAiKTsgfQorCisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7IGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50OjpU
ZWFyRG93biIpOyB9CiB9OwogCiBjbGFzcyBMaXN0ZW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAg
cHJvdGVjdGVkOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIGdfZXZlbnRz
LT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0Q2FzZSIpOworICBzdGF0aWMgdm9p
ZCBTZXRVcFRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRl
c3Q6OlNldFVwVGVzdFN1aXRlIik7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RD
YXNlKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6VGVhckRvd25U
ZXN0Q2FzZSIpOworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIik7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlz
dGVuZXJUZXN0OjpTZXRVcCIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IGdfZXZl
bnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXAiKTsgfQogCi0gIHZpcnR1YWwgdm9p
ZCBUZWFyRG93bigpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRl
YXJEb3duIik7Ci0gIH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgZ19ldmVudHMtPnB1
c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIpOyB9CiB9OwogCiBURVNUX0YoTGlzdGVu
ZXJUZXN0LCBEb2VzRm9vKSB7CkBAIC0xNzMsNiArMjQxLDcgQEAgVEVTVF9GKExpc3RlbmVyVGVz
dCwgRG9lc0JhcikgewogCiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpFbnZpcm9ubWVudElu
dm9jYXRpb25DYXRjaGVyOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RXZlbnRSZWNvcmRp
bmdMaXN0ZW5lcjsKK3VzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV2ZW50UmVjb3JkaW5nTGlz
dGVuZXIyOwogCiB2b2lkIFZlcmlmeVJlc3VsdHMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+JiBkYXRhLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBleHBlY3Rl
ZF9kYXRhLApAQCAtMjA3LDYgKzI3Niw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikgewogICAgICAgbmV3IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIoIjFzdCIpKTsKICAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLkFwcGVuZCgKICAgICAgIG5ldyBFdmVudFJl
Y29yZGluZ0xpc3RlbmVyKCIybmQiKSk7CisgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0
ZW5lcnMoKS5BcHBlbmQoCisgICAgICBuZXcgRXZlbnRSZWNvcmRpbmdMaXN0ZW5lcjIoIjNyZCIp
KTsKIAogICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEVudmlyb25tZW50SW52b2NhdGlv
bkNhdGNoZXIpOwogCkBAIC0yMTYsODggKzI4NywyMjQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KSB7CiAgIDo6dGVzdGluZzo6R1RFU1RfRkxBRyhyZXBlYXQpID0gMjsKICAgaW50
IHJldF92YWwgPSBSVU5fQUxMX1RFU1RTKCk7CiAKLSAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0
ZWRfZXZlbnRzW10gPSB7Ci0gICAgIjFzdC5PblRlc3RQcm9ncmFtU3RhcnQiLAotICAgICIybmQu
T25UZXN0UHJvZ3JhbVN0YXJ0IiwKLSAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwK
LSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1l
bnRzU2V0VXBTdGFydCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAg
ICJFbnZpcm9ubWVudDo6U2V0VXAiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIs
Ci0gICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VT
dGFydCIsCi0gICAgIjJuZC5PblRlc3RDYXNlU3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNl
dFVwVGVzdENhc2UiLAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3Rh
cnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRl
c3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBh
cnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVz
dEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAg
ICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlz
dGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAg
ICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwK
LSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQiLAotICAgICJMaXN0ZW5l
clRlc3Q6OlRlYXJEb3duVGVzdENhc2UiLAotICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCi0gICAg
IjFzdC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFy
dCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAotICAgICJFbnZpcm9u
bWVudDo6VGVhckRvd24iLAotICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0g
ICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJh
dGlvbkVuZCgwKSIsCi0gICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAotICAgICIxc3Qu
T25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQo
MSkiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKLSAgICAiMm5kLk9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAgIkVudmlyb25tZW50OjpTZXRVcCIsCi0gICAgIjJu
ZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBF
bmQiLAotICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwKLSAgICAiMm5kLk9uVGVzdENhc2VTdGFy
dCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0Q2FzZSIsCi0gICAgIjFzdC5PblRlc3RT
dGFydCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAi
LAotICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRS
ZXN1bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6
VGVhckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0g
ICAgIjFzdC5PblRlc3RTdGFydCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0gICAgIkxpc3Rl
bmVyVGVzdDo6U2V0VXAiLAotICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKLSAgICAi
MXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCi0gICAg
Ikxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwKLSAgICAiMXN0
Lk9uVGVzdEVuZCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0Q2FzZSIsCi0gICAg
IjJuZC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VFbmQiLAotICAgICIxc3Qu
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVh
ckRvd25TdGFydCIsCi0gICAgIkVudmlyb25tZW50OjpUZWFyRG93biIsCi0gICAgIjJuZC5PbkVu
dmlyb25tZW50c1RlYXJEb3duRW5kIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25F
bmQiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKLSAgICAiMXN0Lk9uVGVzdEl0
ZXJhdGlvbkVuZCgxKSIsCi0gICAgIjJuZC5PblRlc3RQcm9ncmFtRW5kIiwKLSAgICAiMXN0Lk9u
VGVzdFByb2dyYW1FbmQiCi0gIH07CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXworCisgIC8vIFRoZSBkZXByZWNhdGVkIE9uVGVzdFN1aXRlU3RhcnQvT25UZXN0Q2Fz
ZVN0YXJ0IGV2ZW50cyBhcmUgaW5jbHVkZWQKKyAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRf
ZXZlbnRzW10gPSB7IjFzdC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbVN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJ
dGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1Nl
dFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNT
ZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQu
T25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RDYXNl
U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVu
ZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBh
cnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6
OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3Rl
bmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRl
c3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9u
VGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0
ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJu
ZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6VGVhckRv
d24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52
aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0
ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEp
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RJ
dGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNy
ZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1Nl
dFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
bkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNlU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdENhc2VTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVz
dFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3Vs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3Qg
Qm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25U
ZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRv
d25UZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdFN1aXRlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RDYXNlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRz
VGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpUZWFyRG93biIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93
bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25F
bnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RJdGVy
YXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
MXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UHJvZ3JhbUVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UHJvZ3JhbUVuZCJ9Owor
I2Vsc2UKKyAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRfZXZlbnRzW10gPSB7IjFzdC5PblRl
c3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0
aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBT
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25F
bnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZp
cm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdFN1aXRlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6
U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVu
ZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3du
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RF
bmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25U
ZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3Vs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0U3VpdGUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlRW5kIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50
OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz
cmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQu
T25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9u
U3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmly
b25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJv
bm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1
bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJU
ZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRS
ZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9u
VGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1
aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRl
c3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRz
VGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25F
bmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52
aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25F
bmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMXN0Lk9uVGVzdFByb2dyYW1FbmQifTsKKyNlbmRpZiAgLy8gR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKICAgVmVyaWZ5UmVzdWx0cyhldmVudHMsCiAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfZXZlbnRzLAogICAgICAgICAgICAgICAgIHNpemVvZihleHBl
Y3RlZF9ldmVudHMpL3NpemVvZihleHBlY3RlZF9ldmVudHNbMF0pKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNjCmlu
ZGV4IGM2NDQ1ODUzZTQzM2QzYzE0MzQ1MjU3MzkxYTZiOTg4YTlkMzgwZWYuLjk2MmQ1MTkxMTRl
NmU0ZTNkYzNkZjE5ZmRlNzU0NTU3MWJjMDMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW1lc3NhZ2UtdGVzdC5jYwpAQCAtODUsNyAr
ODUsNyBAQCBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zUG9pbnRlcikgewogCiAvLyBUZXN0cyBz
dHJlYW1pbmcgYSBOVUxMIG5vbi1jaGFyIHBvaW50ZXIuCiBURVNUKE1lc3NhZ2VUZXN0LCBTdHJl
YW1zTnVsbFBvaW50ZXIpIHsKLSAgaW50KiBwID0gTlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsK
ICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVzc2FnZSgpIDw8IHApLkdldFN0cmluZygpKTsKIH0K
IApAQCAtOTYsNyArOTYsNyBAQCBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zQ1N0cmluZykgewog
CiAvLyBUZXN0cyBzdHJlYW1pbmcgYSBOVUxMIEMgc3RyaW5nLgogVEVTVChNZXNzYWdlVGVzdCwg
U3RyZWFtc051bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAgPSBOVUxMOworICBjaGFyKiBwID0gbnVs
bHB0cjsKICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVzc2FnZSgpIDw8IHApLkdldFN0cmluZygp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LW9wdGlvbnMtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1vcHRpb25zLXRlc3QuY2MKaW5kZXggZWRkNGViYTNiZDMxMDk1OTUwYThkOThjZjNkYWY2
ZjM0ZDY0OTY5Zi4uZjA3YjMxNmRiM2I5NDEwNTMwM2IyMjc1ZWIzZjlkYzZkMTExOTA4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW9wdGlvbnMt
dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3B0
aW9ucy10ZXN0LmNjCkBAIC0xMDIsMTAgKzEwMiwxNSBAQCBURVNUKE91dHB1dEZpbGVIZWxwZXJz
VGVzdCwgR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKSB7CiAgICAgICBfc3RyY21waSgiZ3Rlc3Qt
b3B0aW9ucy1leF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8CiAgICAgICBfc3RyY21w
aSgiZ3Rlc3RfYWxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAgfHwKICAgICAgIF9zdHJj
bXBpKCJndGVzdF9kbGxfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMDsKKyNlbGlmIEdURVNU
X09TX09TMgorICBjb25zdCBib29sIHN1Y2Nlc3MgPQorICAgICAgc3RyY2FzZWNtcCgiZ29vZ2xl
dGVzdC1vcHRpb25zLXRlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAgfHwKKyAgICAgIHN0cmNh
c2VjbXAoImd0ZXN0LW9wdGlvbnMtZXhfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAor
ICAgICAgc3RyY2FzZWNtcCgiZ3Rlc3RfYWxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAg
fHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0X2RsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9
PSAwOwogI2VsaWYgR1RFU1RfT1NfRlVDSFNJQQogICBjb25zdCBib29sIHN1Y2Nlc3MgPSBleGVf
c3RyID09ICJhcHAiOwogI2Vsc2UKLSAgLy8gRklYTUU6IHJlbW92ZSB0aGUgaGFyZC1jb2RlZCAi
bHQtIiBwcmVmaXggd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50IGlzIHJlYWR5CiAgIGNvbnN0IGJv
b2wgc3VjY2VzcyA9CiAgICAgICBleGVfc3RyID09ICJnb29nbGV0ZXN0LW9wdGlvbnMtdGVzdCIg
fHwKICAgICAgIGV4ZV9zdHIgPT0gImd0ZXN0X2FsbF90ZXN0IiB8fApAQCAtMTIwLDcgKzEyNSw3
IEBAIFRFU1QoT3V0cHV0RmlsZUhlbHBlcnNUZXN0LCBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUp
IHsKIAogY2xhc3MgWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKICAgICBvcmlnaW5hbF93b3JraW5nX2Rpcl8gPSBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigp
OwogICAgIHBvc2l4OjpDaERpcigiLi4iKTsKICAgICAvLyBUaGlzIHdpbGwgbWFrZSB0aGUgdGVz
dCBmYWlsIGlmIHJ1biBmcm9tIHRoZSByb290IGRpcmVjdG9yeS4KQEAgLTEyOCw3ICsxMzMsNyBA
QCBjbGFzcyBYbWxPdXRwdXRDaGFuZ2VEaXJUZXN0IDogcHVibGljIFRlc3QgewogICAgICAgICAg
ICAgICBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpLnN0cmluZygpKTsKICAgfQogCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBw
b3NpeDo6Q2hEaXIob3JpZ2luYWxfd29ya2luZ19kaXJfLnN0cmluZygpLmNfc3RyKCkpOwogICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1v
dXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dAppbmRleCA4NmRhODQ1YjdkMDRl
YTFmMmI1NTM0NjA0ZWU5YzBkMmI1Zjg1OTE2Li4zZmFiM2I5N2Q4ZjFhMjJiNjQxZDc1NWFiODM1
OWU1YjAzYzkyMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0CkBAIC0x
Miw3ICsxMiw3IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKICAgMwogU3Rh
Y2sgdHJhY2U6IChvbWl0dGVkKQogCi0bWzA7MzJtWz09PT09PT09PT1dIBtbbVJ1bm5pbmcgNzYg
dGVzdHMgZnJvbSAzNCB0ZXN0IGNhc2VzLgorG1swOzMybVs9PT09PT09PT09XSAbW21SdW5uaW5n
IDg4IHRlc3RzIGZyb20gNDEgdGVzdCBzdWl0ZXMuCiAbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbUds
b2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIEZvb0Vudmlyb25tZW50OjpTZXRVcCgpIGNh
bGxlZC4KIEJhckVudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC4KQEAgLTM4MCw2NiArMzgwLDc0
IEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttQWRkRmFp
bHVyZUF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxlQW5kTGluZU51bWJlcgogZm9v
LmNjOjQyOiBGYWlsdXJlCiBGYWlsZWQKLUV4cGVjdGVkIGZhaWx1cmUgaW4gZm9vLmNjCitFeHBl
Y3RlZCBub25mYXRhbCBmYWlsdXJlIGluIGZvby5jYwogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQog
CiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUFkZEZhaWx1cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5z
U3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKLRtbMDszMm1bLS0tLS0tLS0tLV0gG1ttNCB0ZXN0
cyBmcm9tIE1peGVkVXBUZXN0Q2FzZVRlc3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRV
cFRlc3RDYXNlVGVzdC5GaXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9vCi0bWzA7MzJtWyAgICAgICBP
SyBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbwotG1sw
OzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlNlY29uZFRlc3RGcm9tTmFt
ZXNwYWNlRm9vCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuU2Vj
b25kVGVzdEZyb21OYW1lc3BhY2VGb28KLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRl
c3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAorG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3Qg
ZnJvbSBHdGVzdEZhaWxBdFRlc3QKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR3Rlc3RGYWlsQXRU
ZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCitmb28uY2M6NDI6
IEZhaWx1cmUKK0ZhaWxlZAorRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSBpbiBmb28uY2MKK1N0YWNr
IHRyYWNlOiAob21pdHRlZCkKKworG1swOzMxbVsgIEZBSUxFRCAgXSAbW21HdGVzdEZhaWxBdFRl
c3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKKxtbMDszMm1bLS0t
LS0tLS0tLV0gG1ttNCB0ZXN0cyBmcm9tIE1peGVkVXBUZXN0U3VpdGVUZXN0CisbWzA7MzJtWyBS
VU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VG
b28KKxtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuRmlyc3RUZXN0
RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRl
VGVzdC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsgICAgICAgT0sgXSAbW21N
aXhlZFVwVGVzdFN1aXRlVGVzdC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsg
UlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbAogZ3Rlc3Qu
Y2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11
c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IGNh
c2UgTWl4ZWRVcFRlc3RDYXNlVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRl
IG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0
IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVUZXN0LAogeW91IGRlZmluZWQgdGVzdCBGaXJzdFRlc3RG
cm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0IFRoaXNTaG91bGRGYWlsCiB1c2luZyB0d28gZGlmZmVy
ZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCiB0aGUgdHdvIGNs
YXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KIHVuaXRz
IGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUK
LW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNl
cy4KK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBz
dWl0ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBGQUlMRUQgIF0gG1tt
TWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAotG1swOzMybVsgUlVOICAgICAgXSAb
W21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCisbWzA7MzFtWyAgRkFJTEVE
ICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsCisbWzA7MzJtWyBSVU4g
ICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsVG9vCiBndGVzdC5j
YzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVz
dCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2Fz
ZSBNaXhlZFVwVGVzdENhc2VUZXN0LAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUg
bXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qg
c3VpdGUgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsCiB5b3UgZGVmaW5lZCB0ZXN0IEZpcnN0VGVzdEZy
b21OYW1lc3BhY2VGb28gYW5kIHRlc3QgVGhpc1Nob3VsZEZhaWxUb28KIHVzaW5nIHR3byBkaWZm
ZXJlbnQgdGVzdCBmaXh0dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWYKIHRoZSB0d28g
Y2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xhdGlvbgogdW5p
dHMgYW5kIGhhdmUgdGhlIHNhbWUgbmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkgcmVuYW1lIG9u
ZQotb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNh
c2VzLgorb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0
IHN1aXRlcy4KIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRGYWlsVG9vCi0bWzA7MzJtWy0tLS0tLS0t
LS1dIBtbbTIgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdAot
G1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVz
dC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAotG1swOzMybVsgICAgICAgT0sg
XSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0
aFRoaXNOYW1lU2hvdWxkRmFpbAotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENh
c2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFp
bAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxk
RmFpbFRvbworG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RT
dWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBU
ZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hv
dWxkRmFpbAorG1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVU
ZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKKxtbMDszMm1b
IFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNl
Y29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWls
ZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVz
dCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSBNaXhlZFVwVGVzdENhc2VX
aXRoU2FtZVRlc3ROYW1lVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11
c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1
aXRlIE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCwKIHlvdSBkZWZpbmVkIHRl
c3QgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwgYW5kIHRlc3QgVGhlU2Vjb25k
VGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKIHVzaW5nIHR3byBkaWZmZXJlbnQgdGVzdCBmaXh0
dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWYKIHRoZSB0d28gY2xhc3NlcyBhcmUgZnJv
bSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xhdGlvbgogdW5pdHMgYW5kIGhhdmUgdGhl
IHNhbWUgbmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkgcmVuYW1lIG9uZQotb2YgdGhlIGNsYXNz
ZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNhc2VzLgorb2YgdGhlIGNs
YXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IHN1aXRlcy4KIFN0YWNr
IHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENh
c2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFp
bAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFt
ZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKIBtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2Fz
ZQogG1swOzMybVsgUlVOICAgICAgXSAbW21URVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0
X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9GCiAbWzA7MzJtWyAgICAgICBPSyBdIBtbbVRFU1RfRl9i
ZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUX0YKIBtbMDszMm1b
IFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLkRlZmlu
ZWRVc2luZ1RFU1RBbmRTaG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFs
bCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0
dXJlCi1jbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IGNh
c2UgaXMKLWlsbGVnYWwuICBJbiB0ZXN0IGNhc2UgVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVf
dGVzdF9jYXNlLAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhl
IHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0
aGUgc2FtZSB0ZXN0IHN1aXRlIGlzCitpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSBURVNUX0ZfYmVm
b3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UsCiB0ZXN0IERlZmluZWRVc2luZ1RFU1RfRiBpcyBk
ZWZpbmVkIHVzaW5nIFRFU1RfRiBidXQKIHRlc3QgRGVmaW5lZFVzaW5nVEVTVEFuZFNob3VsZEZh
aWwgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5CiB3YW50IHRvIGNoYW5nZSB0
aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKQEAgLTQ1Myw5ICs0
NjEsOSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbVRF
U1RfYmVmb3JlX1RFU1RfRl9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUX0ZBbmRT
aG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUg
c2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcywgc28g
bWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgaXMKLWlsbGVnYWwu
ICBJbiB0ZXN0IGNhc2UgVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNlLAorQWxs
IHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0
dXJlCitjbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IHN1
aXRlIGlzCitpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSBURVNUX2JlZm9yZV9URVNUX0ZfaW5fc2Ft
ZV90ZXN0X2Nhc2UsCiB0ZXN0IERlZmluZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZhaWwgaXMgZGVm
aW5lZCB1c2luZyBURVNUX0YgYnV0CiB0ZXN0IERlZmluZWRVc2luZ1RFU1QgaXMgZGVmaW5lZCB1
c2luZyBURVNULiAgWW91IHByb2JhYmx5CiB3YW50IHRvIGNoYW5nZSB0aGUgVEVTVCB0byBURVNU
X0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKQEAgLTg3MCw2ICs4NzgsODQgQEAgRXhwZWN0
ZWQgbm9uLWZhdGFsIGZhaWx1cmUuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKIBtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVy
Y2VwdE9ubHlDdXJyZW50VGhyZWFkCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJv
bSBEeW5hbWljRml4dHVyZQorRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1aXRlCisbWzA7MzJt
WyBSVU4gICAgICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFtaWNUZXN0UGFzcworRHluYW1pY0Zp
eHR1cmUoKQorRHluYW1pY0ZpeHR1cmU6OlNldFVwCitEeW5hbWljRml4dHVyZTo6VGVhckRvd24K
K35EeW5hbWljRml4dHVyZSgpCisbWzA7MzJtWyAgICAgICBPSyBdIBtbbUR5bmFtaWNGaXh0dXJl
LkR5bmFtaWNUZXN0UGFzcworG1swOzMybVsgUlVOICAgICAgXSAbW21EeW5hbWljRml4dHVyZS5E
eW5hbWljVGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAor
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVyZQorVmFsdWUgb2Y6IFBhc3MKKyAg
QWN0dWFsOiBmYWxzZQorRXhwZWN0ZWQ6IHRydWUKK1N0YWNrIHRyYWNlOiAob21pdHRlZCkKKwor
RHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJl
OjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBE
eW5hbWljRml4dHVyZUFub3RoZXJOYW1lCitEeW5hbWljRml4dHVyZTo6U2V0VXBUZXN0U3VpdGUK
KxtbMDszMm1bIFJVTiAgICAgIF0gG1ttRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZS5EeW5hbWlj
VGVzdFBhc3MKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1p
Y0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sg
XSAbW21EeW5hbWljRml4dHVyZUFub3RoZXJOYW1lLkR5bmFtaWNUZXN0UGFzcworRHluYW1pY0Zp
eHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMg
ZnJvbSBCYWREeW5hbWljRml4dHVyZTEKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQor
G1swOzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuRml4dHVyZUJhc2UKK0R5
bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRl
YXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21CYWREeW5h
bWljRml4dHVyZTEuRml4dHVyZUJhc2UKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1p
Y0ZpeHR1cmUxLlRlc3RCYXNlCitEeW5hbWljRml4dHVyZSgpCitndGVzdC5jYzojOiBGYWlsdXJl
CitGYWlsZWQKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBz
YW1lIHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhl
IHNhbWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgQmFkRHluYW1pY0Zp
eHR1cmUxLAordGVzdCBGaXh0dXJlQmFzZSBpcyBkZWZpbmVkIHVzaW5nIFRFU1RfRiBidXQKK3Rl
c3QgVGVzdEJhc2UgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5Cit3YW50IHRv
IGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKK2Nh
c2UuCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKK35EeW5hbWljRml4dHVyZSgpCisbWzA7MzFt
WyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMS5UZXN0QmFzZQorRHluYW1pY0ZpeHR1
cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJv
bSBCYWREeW5hbWljRml4dHVyZTIKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQorG1sw
OzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWljRml4dHVyZTIuRml4dHVyZUJhc2UKK0R5bmFt
aWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRlYXJE
b3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21CYWREeW5hbWlj
Rml4dHVyZTIuRml4dHVyZUJhc2UKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0Zp
eHR1cmUyLkRlcml2ZWQKK0R5bmFtaWNGaXh0dXJlKCkKK2d0ZXN0LmNjOiM6IEZhaWx1cmUKK0Zh
aWxlZAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUg
dGVzdCBmaXh0dXJlCitjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qgc3VpdGUgQmFkRHluYW1pY0Zp
eHR1cmUyLAoreW91IGRlZmluZWQgdGVzdCBGaXh0dXJlQmFzZSBhbmQgdGVzdCBEZXJpdmVkCit1
c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVu
IGlmCit0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJh
bnNsYXRpb24KK3VuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2Jh
Ymx5IHJlbmFtZSBvbmUKK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZm
ZXJlbnQgdGVzdCBzdWl0ZXMuCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKK35EeW5hbWljRml4
dHVyZSgpCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVk
CitEeW5hbWljRml4dHVyZTo6VGVhckRvd25UZXN0U3VpdGUKIBtbMDszMm1bLS0tLS0tLS0tLV0g
G1ttMSB0ZXN0IGZyb20gUHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QKIBtb
MDszMm1bIFJVTiAgICAgIF0gG1ttUHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRl
c3QuRmFpbHMvMAogZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVyZQpAQCAtODgw
LDYgKzk2Niw5IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKIFN0YWNrIHRy
YWNlOiAob21pdHRlZCkKIAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21QcmludGluZ0ZhaWxpbmdQ
YXJhbXMvRmFpbGluZ1BhcmFtVGVzdC5GYWlscy8wLCB3aGVyZSBHZXRQYXJhbSgpID0gMgorG1sw
OzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBFbXB0eUJhc2VuYW1lUGFyYW1JbnN0Cisb
WzA7MzJtWyBSVU4gICAgICBdIBtbbUVtcHR5QmFzZW5hbWVQYXJhbUluc3QuUGFzc2VzLzAKKxtb
MDszMm1bICAgICAgIE9LIF0gG1ttRW1wdHlCYXNlbmFtZVBhcmFtSW5zdC5QYXNzZXMvMAogG1sw
OzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20gUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVz
dAogG1swOzMybVsgUlVOICAgICAgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nl
c3MvYQogG1swOzMybVsgICAgICAgT0sgXSAbW21QcmludGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1
Y2Nlc3MvYQpAQCAtODkzLDYgKzk4Miw0MyBAQCBFeHBlY3RlZCBmYWlsdXJlCiBTdGFjayB0cmFj
ZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1Bh
cmFtVGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFtKCkgPSAiYSIKKxtbMDszMm1bLS0tLS0t
LS0tLV0gG1ttMyB0ZXN0cyBmcm9tIEdvb2dsZVRlc3RWZXJpZmljYXRpb24KKxtbMDszMm1bIFJV
TiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGU8Tm9UZXN0cz4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZh
aWx1cmUKK1BhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBOb1Rlc3RzIGlzIGluc3RhbnRpYXRlZCB2
aWEgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QLCBidXQgbm8gdGVzdHMgYXJlIGRlZmluZWQgdmlh
IFRFU1RfUCAuIE5vIHRlc3QgY2FzZXMgd2lsbCBydW4uCisKK0lkZWFsbHksIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCBzaG91bGQgb25seSBldmVyIGJlIGludm9rZWQgZnJvbSBjb2RlIHRoYXQg
YWx3YXlzIGRlcGVuZCBvbiBjb2RlIHRoYXQgcHJvdmlkZXMgVEVTVF9QLiBGYWlsaW5nIHRvIGRv
IHNvIGlzIG9mdGVuIGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRF
U1RfUCB3YXMgcmVtb3ZlZCBidXQgdGhlIHJlc3QgZ290IGxlZnQgYmVoaW5kLgorCitUbyBzdXBw
cmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5n
IGxpbmUgKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGlu
OgorCitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm9UZXN0
cyk7CitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29v
Z2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8
Tm9UZXN0cz4KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5V
bmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5zdGFudGlhdGVk
VGVzdD4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1BhcmFtZXRlcml6
ZWQgdGVzdCBzdWl0ZSBEZXRlY3ROb3RJbnN0YW50aWF0ZWRUZXN0IGlzIGRlZmluZWQgdmlhIFRF
U1RfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZC4gTm9uZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxs
IHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0
aGUgb25seSBvbmVzIHByb3ZpZGVkIGV4cGFuZCB0byBub3RoaW5nLgorCitJZGVhbGx5LCBURVNU
X1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9mIGJp
bmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAoQXMgb3Bwb3NlZCB0bywgZm9yIGV4YW1w
bGUsIGJlaW5nIHBsYWNlZCBpbiBhIGxpYnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdl
dCBvdGhlciB1dGlsaXRpZXMuKQorCitUbyBzdXBwcmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRl
c3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgKGluIGEgbm9uLWhlYWRlcikgaW4g
dGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOgorCitHVEVTVF9BTExPV19VTklOU1RBTlRJ
QVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCk7CitTdGFj
ayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZl
cmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90
SW5zdGFudGlhdGVkVGVzdD4KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlm
aWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5v
dEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZh
aWx1cmUKK1R5cGUgcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIERldGVjdE5vdEluc3RhbnRpYXRl
ZFR5cGVzVGVzdCBpcyBkZWZpbmVkIHZpYSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AsIGJ1
dCBuZXZlciBpbnN0YW50aWF0ZWQgdmlhIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUC4g
Tm9uZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxsIHJ1bi4KKworSWRlYWxseSwgVFlQRURfVEVTVF9Q
IGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVkZWQgYXMgcGFydCBvZiBiaW5h
cmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8sIGZvciBleGFtcGxl
LCBiZWluZyBwbGFjZWQgaW4gYSBsaWJyYXJ5IHRoYXQgbWF5IGJlIGxpbmtlZCBpbiB0byBnZXQg
b3RoZXIgdXRpbGl0aWVzLikKKworVG8gc3VwcHJlc3MgdGhpcyBlcnJvciBmb3IgdGhpcyB0ZXN0
IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lIChpbiBhIG5vbi1oZWFkZXIpIGluIHRo
ZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBpbjoKKworR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFU
RURfUEFSQU1FVEVSSVpFRF9URVNUKERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCk7CitT
dGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVz
dFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERl
dGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KIBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttR2xv
YmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCiBCYXJFbnZpcm9ubWVudDo6VGVhckRvd24o
KSBjYWxsZWQuCiBnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzojOiBGYWlsdXJlCkBAIC05MDYs
OSArMTAzMiw5IEBAIEZhaWxlZAogRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4KIFN0YWNrIHRyYWNl
OiAob21pdHRlZCkKIAotG1swOzMybVs9PT09PT09PT09XSAbW203NiB0ZXN0cyBmcm9tIDM0IHRl
c3QgY2FzZXMgcmFuLgotG1swOzMybVsgIFBBU1NFRCAgXSAbW20yNiB0ZXN0cy4KLRtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttNTAgdGVzdHMsIGxpc3RlZCBiZWxvdzoKKxtbMDszMm1bPT09PT09PT09
PV0gG1ttODggdGVzdHMgZnJvbSA0MSB0ZXN0IHN1aXRlcyByYW4uCisbWzA7MzJtWyAgUEFTU0VE
ICBdIBtbbTMxIHRlc3RzLgorG1swOzMxbVsgIEZBSUxFRCAgXSAbW201NyB0ZXN0cywgbGlzdGVk
IGJlbG93OgogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25mYXRhbEZhaWx1cmVUZXN0LkVzY2Fw
ZXNTdHJpbmdPcGVyYW5kcwogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25mYXRhbEZhaWx1cmVU
ZXN0LkRpZmZGb3JMb25nU3RyaW5ncwogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21GYXRhbEZhaWx1
cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQpAQCAtOTI4LDkgKzEwNTQsMTAgQEAgU3Rh
Y2sgdHJhY2U6IChvbWl0dGVkKQogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21Ob25GYXRhbEZhaWx1
cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRVcAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21GYXRh
bEZhaWx1cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRVcAogG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21BZGRGYWlsdXJlQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVt
YmVyCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3Vs
ZEZhaWwKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hv
dWxkRmFpbFRvbwotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2Ft
ZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAorG1swOzMx
bVsgIEZBSUxFRCAgXSAbW21HdGVzdEZhaWxBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVk
RmlsZUFuZExpbmVOdW1iZXIKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0
ZVRlc3QuVGhpc1Nob3VsZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RT
dWl0ZVRlc3QuVGhpc1Nob3VsZEZhaWxUb28KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRV
cFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVT
aG91bGRGYWlsCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9z
YW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAogG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21URVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVz
aW5nVEVTVF9GQW5kU2hvdWxkRmFpbAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21FeHBlY3ROb25m
YXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNOb05vbmZhdGFsRmFpbHVyZQpAQCAtOTU3
LDE0ICsxMDg0LDIwIEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdC5FeHBlY3RGYXRhbEZhaWx1cmUKIBtb
MDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVzdC5FeHBlY3RO
b25GYXRhbEZhaWx1cmUKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVyY2VwdE9ubHlDdXJyZW50VGhyZWFkCisbWzA7MzFtWyAg
RkFJTEVEICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFtaWNUZXN0RmFpbAorG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuVGVzdEJhc2UKKxtbMDszMW1bICBGQUlMRUQg
IF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkRlcml2ZWQKIBtbMDszMW1bICBGQUlMRUQgIF0gG1tt
UHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QuRmFpbHMvMCwgd2hlcmUgR2V0
UGFyYW0oKSA9IDIKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFt
VGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFtKCkgPSAiYSIKKxtbMDszMW1bICBGQUlMRUQg
IF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGU8Tm9UZXN0cz4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlm
aWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5z
dGFudGlhdGVkVGVzdD4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNh
dGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdElu
c3RhbnRpYXRlZFR5cGVzVGVzdD4KIAotNTAgRkFJTEVEIFRFU1RTCis1NyBGQUlMRUQgVEVTVFMK
IBtbMDszM20gIFlPVSBIQVZFIDEgRElTQUJMRUQgVEVTVAogCiAbW21Ob3RlOiBHb29nbGUgVGVz
dCBmaWx0ZXIgPSBGYXRhbEZhaWx1cmVUZXN0Lio6TG9nZ2luZ1Rlc3QuKgotWz09PT09PT09PT1d
IFJ1bm5pbmcgNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcy4KK1s9PT09PT09PT09XSBSdW5uaW5n
IDQgdGVzdHMgZnJvbSAyIHRlc3Qgc3VpdGVzLgogWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVu
dmlyb25tZW50IHNldC11cC4KIFstLS0tLS0tLS0tXSAzIHRlc3RzIGZyb20gRmF0YWxGYWlsdXJl
VGVzdAogWyBSVU4gICAgICBdIEZhdGFsRmFpbHVyZVRlc3QuRmF0YWxGYWlsdXJlSW5TdWJyb3V0
aW5lCkBAIC0xMDE3LDcgKzExNTAsNyBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiBbLS0tLS0t
LS0tLV0gMSB0ZXN0IGZyb20gTG9nZ2luZ1Rlc3QgKD8gbXMgdG90YWwpCiAKIFstLS0tLS0tLS0t
XSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9PT09PT09PT09XSA0IHRlc3Rz
IGZyb20gMiB0ZXN0IGNhc2VzIHJhbi4gKD8gbXMgdG90YWwpCitbPT09PT09PT09PV0gNCB0ZXN0
cyBmcm9tIDIgdGVzdCBzdWl0ZXMgcmFuLiAoPyBtcyB0b3RhbCkKIFsgIFBBU1NFRCAgXSAwIHRl
c3RzLgogWyAgRkFJTEVEICBdIDQgdGVzdHMsIGxpc3RlZCBiZWxvdzoKIFsgIEZBSUxFRCAgXSBG
YXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQpAQCAtMTAyNywyMSArMTE2
MCwyMSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKICA0IEZBSUxFRCBURVNUUwogTm90ZTog
R29vZ2xlIFRlc3QgZmlsdGVyID0gKkRJU0FCTEVEXyoKLVs9PT09PT09PT09XSBSdW5uaW5nIDEg
dGVzdCBmcm9tIDEgdGVzdCBjYXNlLgorWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20g
MSB0ZXN0IHN1aXRlLgogWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11
cC4KIFstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QKIFsg
UlVOICAgICAgXSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2Fi
bGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dhcm5pbmcKIFsgICAgICAgT0sgXSBEaXNhYmxlZFRlc3Rz
V2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2FibGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dh
cm5pbmcKIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9
PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRlc3QgY2FzZSByYW4uCitbPT09PT09PT09PV0gMSB0
ZXN0IGZyb20gMSB0ZXN0IHN1aXRlIHJhbi4KIFsgIFBBU1NFRCAgXSAxIHRlc3QuCiBOb3RlOiBH
b29nbGUgVGVzdCBmaWx0ZXIgPSBQYXNzaW5nVGVzdC4qCiBOb3RlOiBUaGlzIGlzIHRlc3Qgc2hh
cmQgMiBvZiAyLgotWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2Uu
CitbPT09PT09PT09PV0gUnVubmluZyAxIHRlc3QgZnJvbSAxIHRlc3Qgc3VpdGUuCiBbLS0tLS0t
LS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0LXVwLgogWy0tLS0tLS0tLS1dIDEgdGVz
dCBmcm9tIFBhc3NpbmdUZXN0CiBbIFJVTiAgICAgIF0gUGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3Qy
CiBbICAgICAgIE9LIF0gUGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3QyCiBbLS0tLS0tLS0tLV0gR2xv
YmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gMSB0ZXN0IGZyb20g
MSB0ZXN0IGNhc2UgcmFuLgorWz09PT09PT09PT1dIDEgdGVzdCBmcm9tIDEgdGVzdCBzdWl0ZSBy
YW4uCiBbICBQQVNTRUQgIF0gMSB0ZXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5CmluZGV4IDJkNjllMzUzYTE5ZTM2
OTQ2NTMzYmY1ZjdlMGEyYzkyNDZmN2RjZTcuLjA5MDI4ZjY2ZjkwYmYyMzgyYmI3OGM3OWJiNGUz
YzM5YWRjMzAxNzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1vdXRwdXQtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlRlc3RzIHRoZSB0ZXh0IG91dHB1dCBvZiBHb29nbGUg
QysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrLgorciIiIlRlc3RzIHRoZSB0ZXh0IG91
dHB1dCBvZiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrLgogCiBUbyB1
cGRhdGUgdGhlIGdvbGRlbiBmaWxlOgogZ29vZ2xldGVzdF9vdXRwdXRfdGVzdC5weSAtLWJ1aWxk
X2Rpcj1CVUlMRC9ESVIgLS1nZW5nb2xkZW4KQEAgLTU1LDcgKzU1LDYgQEAgTk9fU1RBQ0tUUkFD
RV9TVVBQT1JUX0ZMQUcgPSAnLS1ub19zdGFja3RyYWNlX3N1cHBvcnQnCiBJU19MSU5VWCA9IG9z
Lm5hbWUgPT0gJ3Bvc2l4JyBhbmQgb3MudW5hbWUoKVswXSA9PSAnTGludXgnCiBJU19XSU5ET1dT
ID0gb3MubmFtZSA9PSAnbnQnCiAKLSMgRklYTUU6IHJlbW92ZSB0aGUgX2xpbiBzdWZmaXguCiBH
T0xERU5fTkFNRSA9ICdnb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0JwogCiBQ
Uk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgnZ29v
Z2xldGVzdC1vdXRwdXQtdGVzdF8nKQpAQCAtMjg3LDcgKzI4Niw3IEBAIGNsYXNzIEdUZXN0T3V0
cHV0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAjIHNlcXVlbmNlcyB3aGVu
IHdlIHJlYWQgdGhlIGdvbGRlbiBmaWxlIGlycmVzcGVjdGl2ZSBvZiBhbiBvcGVyYXRpbmcKICAg
ICAjIHN5c3RlbSB1c2VkLiBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gc3RyaXAgdGhvc2UgXHIncyBm
cm9tIG5ld2xpbmVzCiAgICAgIyB1bmNvbmRpdGlvbmFsbHkuCi0gICAgZ29sZGVuID0gVG9Vbml4
TGluZUVuZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkpCisgICAgZ29sZGVuID0gVG9Vbml4TGluZUVu
ZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkuZGVjb2RlKCkpCiAgICAgZ29sZGVuX2ZpbGUuY2xvc2Uo
KQogCiAgICAgIyBXZSB3YW50IHRoZSB0ZXN0IHRvIHBhc3MgcmVnYXJkbGVzcyBvZiBjZXJ0YWlu
IGZlYXR1cmVzIGJlaW5nCkBAIC0zMzIsNyArMzMxLDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKICAgICBpZiBDQU5fR0VORVJBVEVfR09MREVOX0ZJTEU6CiAgICAgICBvdXRwdXQgPSBH
ZXRPdXRwdXRPZkFsbENvbW1hbmRzKCkKICAgICAgIGdvbGRlbl9maWxlID0gb3BlbihHT0xERU5f
UEFUSCwgJ3diJykKLSAgICAgIGdvbGRlbl9maWxlLndyaXRlKG91dHB1dCkKKyAgICAgIGdvbGRl
bl9maWxlLndyaXRlKG91dHB1dC5lbmNvZGUoKSkKICAgICAgIGdvbGRlbl9maWxlLmNsb3NlKCkK
ICAgICBlbHNlOgogICAgICAgbWVzc2FnZSA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjCmluZGV4IGY2NTI1ZWM5
NzBkZTU0MjFlMGUzM2I2ZmY2ZDJjYzZjOGQwNTE2NDguLjk3MDA5YjVmNmFhZGExNjVhNzc2MTdl
MzkzYTkzMTAyNTE1YTE5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYwpAQCAtOTIsOSArOTIsMTcgQEAgVEVT
VF9QKEZhaWxpbmdQYXJhbVRlc3QsIEZhaWxzKSB7CiAKIC8vIFRoaXMgZ2VuZXJhdGVzIGEgdGVz
dCB3aGljaCB3aWxsIGZhaWwuIEdvb2dsZSBUZXN0IGlzIGV4cGVjdGVkIHRvIHByaW50CiAvLyBp
dHMgcGFyYW1ldGVyIHdoZW4gaXQgb3V0cHV0cyB0aGUgbGlzdCBvZiBhbGwgZmFpbGVkIHRlc3Rz
LgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRpbmdGYWlsaW5nUGFyYW1zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgRmFpbGluZ1BhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rpbmc6OlZhbHVlcygyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRp
bmdGYWlsaW5nUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgIEZhaWxpbmdQYXJhbVRl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKDIpKTsKKworLy8g
VGVzdHMgdGhhdCBhbiBlbXB0eSB2YWx1ZSBmb3IgdGhlIHRlc3Qgc3VpdGUgYmFzZW5hbWUgeWll
bGRzIGp1c3QKKy8vIHRoZSB0ZXN0IG5hbWUgd2l0aG91dCBhbnkgcHJpb3IgLworY2xhc3MgRW1w
dHlCYXNlbmFtZVBhcmFtSW5zdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4g
e307CisKK1RFU1RfUChFbXB0eUJhc2VuYW1lUGFyYW1JbnN0LCBQYXNzZXMpIHsgRVhQRUNUX0VR
KDEsIEdldFBhcmFtKCkpOyB9CisKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIEVtcHR5QmFz
ZW5hbWVQYXJhbUluc3QsIHRlc3Rpbmc6OlZhbHVlcygxKSk7CiAKIHN0YXRpYyBjb25zdCBjaGFy
IGtHb2xkZW5TdHJpbmdbXSA9ICJcIkxpbmVcMCAxXCJcbkxpbmUgMiI7CiAKQEAgLTE3NCw3ICsx
ODIsNyBAQCBURVNUKFNDT1BFRF9UUkFDRVRlc3QsIEFjY2VwdGVkVmFsdWVzKSB7CiAgIFNDT1BF
RF9UUkFDRSgibGl0ZXJhbCBzdHJpbmciKTsKICAgU0NPUEVEX1RSQUNFKHN0ZDo6c3RyaW5nKCJz
dGQ6OnN0cmluZyIpKTsKICAgU0NPUEVEX1RSQUNFKDEzMzcpOyAgLy8gc3RyZWFtYWJsZSB0eXBl
Ci0gIGNvbnN0IGNoYXIqIG51bGxfdmFsdWUgPSBOVUxMOworICBjb25zdCBjaGFyKiBudWxsX3Zh
bHVlID0gbnVsbHB0cjsKICAgU0NPUEVEX1RSQUNFKG51bGxfdmFsdWUpOwogCiAgIEFERF9GQUlM
VVJFKCkgPDwgIkp1c3QgY2hlY2tpbmcgdGhhdCBhbGwgdGhlc2UgdmFsdWVzIHdvcmsgZmluZS4i
OwpAQCAtMzA2LDkgKzMxNCw4IEBAIFRFU1QoU0NPUEVEX1RSQUNFVGVzdCwgV29ya3NDb25jdXJy
ZW50bHkpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDYgZmFpbHVyZXMpXG4iKTsKIAogICBDaGVj
a1BvaW50cyBjaGVja19wb2ludHM7Ci0gIFRocmVhZFdpdGhQYXJhbTxDaGVja1BvaW50cyo+IHRo
cmVhZCgmVGhyZWFkV2l0aFNjb3BlZFRyYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJmNoZWNrX3BvaW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5VTEwpOworICBUaHJlYWRXaXRoUGFyYW08Q2hlY2tQb2ludHMqPiB0aHJlYWQo
JlRocmVhZFdpdGhTY29wZWRUcmFjZSwgJmNoZWNrX3BvaW50cywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpOwogICBjaGVja19wb2ludHMubjEuV2FpdEZv
ck5vdGlmaWNhdGlvbigpOwogCiAgIHsKQEAgLTM2NSwxNSArMzcyLDEzIEBAIGNsYXNzIE5vbkZh
dGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMxLCBpbiB0aGUgdGVz
dCBmaXh0dXJlIGMndG9yLiI7CiAgIH0KIAotICB+Tm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29u
c3RydWN0b3JUZXN0KCkgeworICB+Tm9uRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JU
ZXN0KCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUg
IzUsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBT
ZXRVcCgpIHsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiBT
ZXRVcCgpLiI7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgQUREX0ZBSUxVUkUoKSA8
PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gU2V0VXAoKS4iOyB9CiAKLSAgdmlydHVhbCB2b2lk
IFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlM
VVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzQsIGluIFRlYXJEb3duLiI7CiAgIH0KIH07CkBA
IC0zOTAsMTcgKzM5NSwxNyBAQCBjbGFzcyBGYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3Rv
clRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgSW5pdCgpOwogICB9CiAKLSAgfkZh
dGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIHsKKyAgfkZhdGFsRmFpbHVyZUlu
Rml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8
ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiB0aGUgdGVzdCBmaXh0dXJlIGQndG9yLiI7CiAgIH0K
IAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAg
ICAgQUREX0ZBSUxVUkUoKSA8PCAiVU5FWFBFQ1RFRCBmYWlsdXJlIGluIFNldFVwKCkuICAiCiAg
ICAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBhcyB0aGUgdGVz
dCBmaXh0dXJlIGMndG9yICIKICAgICAgICAgICAgICAgICAgIDw8ICJoYWQgYSBmYXRhbCBmYWls
dXJlLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRv
d24oKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVU5FWFBFQ1RFRCBmYWlsdXJl
IGluIFRlYXJEb3duKCkuICAiCiAgICAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVy
IGdldCBoZXJlLCBhcyB0aGUgdGVzdCBmaXh0dXJlIGMndG9yICIKICAgICAgICAgICAgICAgICAg
IDw8ICJoYWQgYSBmYXRhbCBmYWlsdXJlLiI7CkBAIC00MjEsMTggKzQyNiwxNSBAQCBURVNUX0Yo
RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0LCBGYWlsdXJlSW5Db25zdHJ1Y3Rv
cikgewogLy8gVGVzdHMgbm9uLWZhdGFsIGZhaWx1cmVzIGluIFNldFVwKCkuCiBjbGFzcyBOb25G
YXRhbEZhaWx1cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgfk5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgewotICAgIERlaW5p
dCgpOwotICB9CisgIH5Ob25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIG92ZXJyaWRlIHsgRGVp
bml0KCk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVy
cmlkZSB7CiAgICAgcHJpbnRmKCIoZXhwZWN0aW5nIDQgZmFpbHVyZXMpXG4iKTsKICAgICBBRERf
RkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMxLCBpbiBTZXRVcCgpLiI7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWls
dXJlICMzLCBpbiBUZWFyRG93bigpLiI7Ci0gIH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
IHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiBUZWFyRG93bigpLiI7IH0KKwog
IHByaXZhdGU6CiAgIHZvaWQgRGVpbml0KCkgewogICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjNCwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4iOwpAQCAtNDQ2LDE4ICs0NDgsMTUg
QEAgVEVTVF9GKE5vbkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewog
Ly8gVGVzdHMgZmF0YWwgZmFpbHVyZXMgaW4gU2V0VXAoKS4KIGNsYXNzIEZhdGFsRmFpbHVyZUlu
U2V0VXBUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVh
bCB+RmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSB7Ci0gICAgRGVpbml0KCk7Ci0gIH0KKyAgfkZh
dGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgb3ZlcnJpZGUgeyBEZWluaXQoKTsgfQogCi0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYo
IihleHBlY3RpbmcgMyBmYWlsdXJlcylcbiIpOwogICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjMSwgaW4gU2V0VXAoKS4iOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkg
ewotICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gVGVhckRvd24oKS4iOwot
ICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZSAjMiwgaW4gVGVhckRvd24oKS4iOyB9CisKICBwcml2YXRlOgogICB2b2lkIERlaW5pdCgp
IHsKICAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzMsIGluIHRoZSB0ZXN0IGZpeHR1
cmUgZCd0b3IuIjsKQEAgLTQ3MCwxMDkgKzQ2OSw1NSBAQCBURVNUX0YoRmF0YWxGYWlsdXJlSW5T
ZXRVcFRlc3QsIEZhaWx1cmVJblNldFVwKSB7CiB9CiAKIFRFU1QoQWRkRmFpbHVyZUF0VGVzdCwg
TWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIpIHsKLSAgQUREX0ZBSUxV
UkVfQVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSBpbiBmb28uY2MiOwotfQot
Ci0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi0vLyBBIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5
IGRpZS4KLXZvaWQgRGllSWYoYm9vbCBzaG91bGRfZGllKSB7Ci0gIEdURVNUX0NIRUNLXyghc2hv
dWxkX2RpZSkgPDwgIiAtIGRlYXRoIGluc2lkZSBEaWVJZigpLiI7CisgIEFERF9GQUlMVVJFX0FU
KCJmb28uY2MiLCA0MikgPDwgIkV4cGVjdGVkIG5vbmZhdGFsIGZhaWx1cmUgaW4gZm9vLmNjIjsK
IH0KIAotLy8gVGVzdHMgcnVubmluZyBkZWF0aCB0ZXN0cyBpbiBhIG11bHRpLXRocmVhZGVkIGNv
bnRleHQuCi0KLS8vIFVzZWQgZm9yIGNvb3JkaW5hdGlvbiBiZXR3ZWVuIHRoZSBtYWluIGFuZCB0
aGUgc3Bhd24gdGhyZWFkLgotc3RydWN0IFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyB7Ci0gIFNw
YXduVGhyZWFkTm90aWZpY2F0aW9ucygpIHt9Ci0KLSAgTm90aWZpY2F0aW9uIHNwYXduX3RocmVh
ZF9zdGFydGVkOwotICBOb3RpZmljYXRpb24gc3Bhd25fdGhyZWFkX29rX3RvX3Rlcm1pbmF0ZTsK
LQotIHByaXZhdGU6Ci0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oU3Bhd25UaHJl
YWROb3RpZmljYXRpb25zKTsKLX07Ci0KLS8vIFRoZSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBp
biB0aGUgdGhyZWFkIHNwYXduIGJ5IHRoZQotLy8gTXVsdGlwbGVUaHJlYWRzIHRlc3QgKGJlbG93
KS4KLXN0YXRpYyB2b2lkIFRocmVhZFJvdXRpbmUoU3Bhd25UaHJlYWROb3RpZmljYXRpb25zKiBu
b3RpZmljYXRpb25zKSB7Ci0gIC8vIFNpZ25hbHMgdGhlIG1haW4gdGhyZWFkIHRoYXQgdGhpcyB0
aHJlYWQgaGFzIHN0YXJ0ZWQuCi0gIG5vdGlmaWNhdGlvbnMtPnNwYXduX3RocmVhZF9zdGFydGVk
Lk5vdGlmeSgpOwotCi0gIC8vIFdhaXRzIGZvciBwZXJtaXNzaW9uIHRvIGZpbmlzaCBmcm9tIHRo
ZSBtYWluIHRocmVhZC4KLSAgbm90aWZpY2F0aW9ucy0+c3Bhd25fdGhyZWFkX29rX3RvX3Rlcm1p
bmF0ZS5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7CitURVNUKEd0ZXN0RmFpbEF0VGVzdCwgTWVzc2Fn
ZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIpIHsKKyAgR1RFU1RfRkFJTF9BVCgi
Zm9vLmNjIiwgNDIpIDw8ICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlIGluIGZvby5jYyI7CiB9CiAK
LS8vIFRoaXMgaXMgYSBkZWF0aC10ZXN0IHRlc3QsIGJ1dCBpdCdzIG5vdCBuYW1lZCB3aXRoIGEg
RGVhdGhUZXN0Ci0vLyBzdWZmaXguICBJdCBzdGFydHMgdGhyZWFkcyB3aGljaCBtaWdodCBpbnRl
cmZlcmUgd2l0aCBsYXRlcgotLy8gZGVhdGggdGVzdHMsIHNvIGl0IG11c3QgcnVuIGFmdGVyIGFs
bCBvdGhlciBkZWF0aCB0ZXN0cy4KLWNsYXNzIERlYXRoVGVzdEFuZE11bHRpVGhyZWFkc1Rlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAvLyBTdGFydHMgYSB0aHJl
YWQgYW5kIHdhaXRzIGZvciBpdCB0byBiZWdpbi4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewot
ICAgIHRocmVhZF8ucmVzZXQobmV3IFRocmVhZFdpdGhQYXJhbTxTcGF3blRocmVhZE5vdGlmaWNh
dGlvbnMqPigKLSAgICAgICAgJlRocmVhZFJvdXRpbmUsICZub3RpZmljYXRpb25zXywgTlVMTCkp
OwotICAgIG5vdGlmaWNhdGlvbnNfLnNwYXduX3RocmVhZF9zdGFydGVkLldhaXRGb3JOb3RpZmlj
YXRpb24oKTsKLSAgfQotICAvLyBUZWxscyB0aGUgdGhyZWFkIHRvIGZpbmlzaCwgYW5kIHJlYXBz
IGl0LgotICAvLyBEZXBlbmRpbmcgb24gdGhlIHZlcnNpb24gb2YgdGhlIHRocmVhZCBsaWJyYXJ5
IGluIHVzZSwKLSAgLy8gYSBtYW5hZ2VyIHRocmVhZCBtaWdodCBzdGlsbCBiZSBsZWZ0IHJ1bm5p
bmcgdGhhdCB3aWxsIGludGVyZmVyZQotICAvLyB3aXRoIGxhdGVyIGRlYXRoIHRlc3RzLiAgVGhp
cyBpcyB1bmZvcnR1bmF0ZSwgYnV0IHRoaXMgY2xhc3MKLSAgLy8gY2xlYW5zIHVwIGFmdGVyIGl0
c2VsZiBhcyBiZXN0IGl0IGNhbi4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIG5v
dGlmaWNhdGlvbnNfLnNwYXduX3RocmVhZF9va190b190ZXJtaW5hdGUuTm90aWZ5KCk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyBub3RpZmljYXRpb25zXzsK
LSAgdGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI8VGhyZWFkV2l0aFBhcmFtPFNwYXduVGhy
ZWFkTm90aWZpY2F0aW9ucyo+ID4KLSAgICAgIHRocmVhZF87Ci19OwotCi0jZW5kaWYgIC8vIEdU
RVNUX0lTX1RIUkVBRFNBRkUKLQotLy8gVGhlIE1peGVkVXBUZXN0Q2FzZVRlc3QgdGVzdCBjYXNl
IHZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3Qgd2lsbCBmYWlsIGEKKy8vIFRoZSBNaXhlZFVwVGVz
dFN1aXRlVGVzdCB0ZXN0IGNhc2UgdmVyaWZpZXMgdGhhdCBHb29nbGUgVGVzdCB3aWxsIGZhaWwg
YQogLy8gdGVzdCBpZiBpdCB1c2VzIGEgZGlmZmVyZW50IGZpeHR1cmUgY2xhc3MgdGhhbiB3aGF0
IG90aGVyIHRlc3RzIGluCiAvLyB0aGUgc2FtZSB0ZXN0IGNhc2UgdXNlLiAgSXQgZGVsaWJlcmF0
ZWx5IGNvbnRhaW5zIHR3byBmaXh0dXJlCiAvLyBjbGFzc2VzIHdpdGggdGhlIHNhbWUgbmFtZSBi
dXQgZGVmaW5lZCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KIAotLy8gVGhlIE1peGVkVXBUZXN0
Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0aGF0CisvLyBUaGUg
TWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0
aGF0CiAvLyB3aGVuIHRoZSB1c2VyIGRlZmluZXMgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgdGVz
dCBjYXNlIG5hbWUgQU5ECiAvLyBzYW1lIHRlc3QgbmFtZSAoYnV0IGluIGRpZmZlcmVudCBuYW1l
c3BhY2VzKSwgdGhlIHNlY29uZCB0ZXN0IHdpbGwKIC8vIGZhaWwuCiAKIG5hbWVzcGFjZSBmb28g
ewogCi1jbGFzcyBNaXhlZFVwVGVzdENhc2VUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewor
Y2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9Owog
Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbykg
e30KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBTZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZv
bykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFj
ZUZvbykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgU2Vjb25kVGVzdEZyb21OYW1l
c3BhY2VGb28pIHt9CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworY2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1l
VGVzdE5hbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAotVEVTVF9GKE1peGVk
VXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0LAorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVX
aXRoU2FtZVRlc3ROYW1lVGVzdCwKICAgICAgICBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hv
dWxkRmFpbCkge30KIAogfSAgLy8gbmFtZXNwYWNlIGZvbwogCiBuYW1lc3BhY2UgYmFyIHsKIAot
Y2xhc3MgTWl4ZWRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNz
IE1peGVkVXBUZXN0U3VpdGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogLy8g
VGhlIGZvbGxvd2luZyB0d28gdGVzdHMgYXJlIGV4cGVjdGVkIHRvIGZhaWwuICBXZSByZWx5IG9u
IHRoZQogLy8gZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhhdCBHb29nbGUgVGVzdCBnZW5lcmF0ZXMg
dGhlIHJpZ2h0IGVycm9yIG1lc3NhZ2UuCi1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgVGhp
c1Nob3VsZEZhaWwpIHt9Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgVGhpc1Nob3VsZEZh
aWxUb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIFRoaXNTaG91bGRGYWlsKSB7
fQorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVUZXN0LCBUaGlzU2hvdWxkRmFpbFRvbykge30KIAot
Y2xhc3MgTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CitjbGFzcyBNaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCiAvLyBFeHBlY3RlZCB0byBmYWlsLiAgV2UgcmVs
eSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhhdCBHb29nbGUgVGVzdAogLy8gZ2VuZXJh
dGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVdpdGhT
YW1lVGVzdE5hbWVUZXN0LAorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1l
VGVzdCwKICAgICAgICBUaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbCkge30KIAog
fSAgLy8gbmFtZXNwYWNlIGJhcgpAQCAtNzgzLDE5ICs3MjgsMjcgQEAgVEVTVF9QKFBhcmFtVGVz
dCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoImIiLCBHZXRQYXJhbSgpKSA8PCAiRXhwZWN0ZWQg
ZmFpbHVyZSI7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50aW5nU3RyaW5ncywK
LSAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rpbmc6OlZhbHVlcyhzdGQ6OnN0cmluZygiYSIpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFBhcmFtTmFtZUZ1bmMpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFByaW50aW5n
U3RyaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbVRlc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKHN0ZDo6c3RyaW5nKCJhIikpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFBhcmFtTmFtZUZ1bmMpOwogCi0vLyBUaGlzICNpZmRlZiBibG9j
ayB0ZXN0cyB0aGUgb3V0cHV0IG9mIHR5cGVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9U
RVNUCisvLyBUaGUgY2FzZSB3aGVyZSBhIHN1aXRlIGhhcyBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AgYnV0IG5vdCBURVNUX1AuCit1c2luZyBOb1Rlc3RzID0gUGFyYW1UZXN0OworSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QKFRoaXNJc09kZCwgTm9UZXN0cywgOjp0ZXN0aW5nOjpWYWx1ZXMoIkhl
bGxvIikpOworCisvLyBmYWlscyB1bmRlciBrRXJyb3JPblVuaW5zdGFudGlhdGVkUGFyYW1ldGVy
aXplZFRlc3Q9dHJ1ZQorY2xhc3MgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CitURVNUX1AoRGV0ZWN0Tm90SW5zdGFudGlh
dGVkVGVzdCwgVXNlZCkgeyB9CisKKy8vIFRoaXMgd291bGQgbWFrZSB0aGUgdGVzdCBmYWlsdXJl
IGZyb20gdGhlIGFib3ZlIGdvIGF3YXkuCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoRml4
LCBEZXRlY3ROb3RJbnN0YW50aWF0ZWRUZXN0LCB0ZXN0aW5nOjpWYWx1ZXMoMSkpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QsIHRlc3Rpbmc6OlR5cGVzPGludD4p
OworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QsIHRlc3Rpbmc6OlR5cGVzPGludD4pOwogCiBU
WVBFRF9URVNUKFR5cGVkVGVzdCwgU3VjY2VzcykgewogICBFWFBFQ1RfRVEoMCwgVHlwZVBhcmFt
KCkpOwpAQCAtODE0LDI5ICs3NjcsMjQgQEAgY2xhc3MgVHlwZWRUZXN0TmFtZXMgewogIHB1Ymxp
YzoKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1l
KGludCBpKSB7Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgY2hhcj46OnZh
bHVlKQorICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgY2hhcj46OnZhbHVlKQogICAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKCJjaGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7Ci0gICAg
aWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgaW50Pjo6dmFsdWUpCisgICAgaWYgKHN0
ZDo6aXNfc2FtZTxULCBpbnQ+Ojp2YWx1ZSkKICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygiaW50
IikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgIH0KIH07CiAKLVRZUEVEX1RFU1Rf
Q0FTRShUeXBlZFRlc3RXaXRoTmFtZXMsIFR5cGVzRm9yVGVzdFdpdGhOYW1lcywgVHlwZWRUZXN0
TmFtZXMpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3RXaXRoTmFtZXMsIFR5cGVzRm9yVGVz
dFdpdGhOYW1lcywgVHlwZWRUZXN0TmFtZXMpOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhO
YW1lcywgU3VjY2Vzcykge30KIAogVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFtZXMsIEZhaWx1
cmUpIHsgRkFJTCgpOyB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8g
VGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdGhlIG91dHB1dCBvZiB0eXBlLXBhcmFtZXRlcml6ZWQg
dGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KIGNsYXNzIFR5cGVkVGVzdFAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1UWVBF
RF9URVNUX0NBU0VfUChUeXBlZFRlc3RQKTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQ
KTsKIAogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAsIFN1Y2Nlc3MpIHsKICAgRVhQRUNUX0VRKDBV
LCBUeXBlUGFyYW0oKSk7CkBAIC04NDYsMjggKzc5NCw0MSBAQCBUWVBFRF9URVNUX1AoVHlwZWRU
ZXN0UCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoMVUsIFR5cGVQYXJhbSgpKSA8PCAiRXhwZWN0
ZWQgZmFpbHVyZSI7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAs
IFN1Y2Nlc3MsIEZhaWx1cmUpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVz
dFAsIFN1Y2Nlc3MsIEZhaWx1cmUpOwogCiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPHVuc2lnbmVk
IGNoYXIsIHVuc2lnbmVkIGludD4gVW5zaWduZWRUeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QKFVuc2lnbmVkLCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzKTsKK0lOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUChVbnNpZ25lZCwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBl
cyk7CiAKIGNsYXNzIFR5cGVkVGVzdFBOYW1lcyB7CiAgcHVibGljOgogICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsKLSAgICBpZiAo
dGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCB1bnNpZ25lZCBjaGFyPjo6dmFsdWUpIHsKKyAg
ICBpZiAoc3RkOjppc19zYW1lPFQsIHVuc2lnbmVkIGNoYXI+Ojp2YWx1ZSkgewogICAgICAgcmV0
dXJuIHN0ZDo6c3RyaW5nKCJ1bnNpZ25lZENoYXIiKSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmlu
ZyhpKTsKICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgdW5zaWdu
ZWQgaW50Pjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIHVuc2lnbmVkIGludD46
OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoInVuc2lnbmVkSW50IikgKyA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQogICB9CiB9OwogCi1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChVbnNpZ25lZEN1c3RvbU5hbWUsIFR5cGVkVGVzdFAsIFVuc2lnbmVk
VHlwZXMsCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVW5zaWduZWRDdXN0b21OYW1l
LCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVHlwZWRUZXN0UE5hbWVzKTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9Q
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVz
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKERldGVj
dE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCk7CitUWVBFRF9URVNUX1AoRGV0ZWN0Tm90SW5zdGFu
dGlhdGVkVHlwZXNUZXN0LCBVc2VkKSB7CisgIFR5cGVQYXJhbSBpbnN0YW50aWF0ZTsKKyAgKHZv
aWQpaW5zdGFudGlhdGU7Cit9CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRGV0ZWN0Tm90
SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBVc2VkKTsKKworLy8ga0Vycm9yT25Vbmluc3RhbnRpYXRl
ZFR5cGVQYXJhbWV0ZXJpemVkVGVzdD10cnVlIHdvdWxkIG1ha2UgdGhlIGFib3ZlIGZhaWwuCisv
LyBBZGRpbmcgdGhlIGZvbGxvd2luZyB3b3VsZCBtYWtlIHRoYXQgdGVzdCBmYWlsdXJlIGdvIGF3
YXkuCisvLworLy8gdHlwZWRlZiA6OnRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQg
aW50PiBNeVR5cGVzOworLy8gSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEFsbCwgRGV0
ZWN0Tm90SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBNeVR5cGVzKTsKIAogI2lmIEdURVNUX0hBU19E
RUFUSF9URVNUCiAKQEAgLTg3Nyw4ICs4MzgsNiBAQCBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChVbnNpZ25lZEN1c3RvbU5hbWUsIFR5cGVkVGVzdFAsIFVuc2lnbmVkVHlwZXMsCiBURVNU
KEFEZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KSB7CiB9CiAKLSMgaWYgR1RFU1RfSEFTX1RZUEVE
X1RFU1QKLQogLy8gV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gdmVyaWZ5IHRoYXQgdHlw
ZWQgdGVzdHMgd2hvc2UgdGVzdAogLy8gY2FzZSBuYW1lIGVuZHMgd2l0aCBEZWF0aFRlc3QgYXJl
IHJ1biBmaXJzdC4KIApAQCAtODg3LDE1ICs4NDYsMTEgQEAgY2xhc3MgQVR5cGVkRGVhdGhUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxp
bnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKEFUeXBlZERlYXRoVGVz
dCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoQVR5cGVkRGVhdGhUZXN0LCBOdW1l
cmljVHlwZXMpOwogCiBUWVBFRF9URVNUKEFUeXBlZERlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3Qp
IHsKIH0KIAotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotIyBpZiBHVEVTVF9I
QVNfVFlQRURfVEVTVF9QCi0KIAogLy8gV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gdmVy
aWZ5IHRoYXQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzCiAvLyB3aG9zZSB0ZXN0IGNhc2UgbmFt
ZSBlbmRzIHdpdGggRGVhdGhUZXN0IGFyZSBydW4gZmlyc3QuCkBAIC05MDQsMTYgKzg1OSwxNCBA
QCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEFUeXBlUGFyYW1EZWF0aFRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChBVHlwZVBhcmFtRGVh
dGhUZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChBVHlwZVBhcmFtRGVhdGhUZXN0KTsKIAogVFlQ
RURfVEVTVF9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KSB7CiB9CiAKLVJF
R0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZp
cnN0KTsKLQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEFUeXBlUGFyYW1EZWF0
aFRlc3QsIE51bWVyaWNUeXBlcyk7CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQVR5cGVQ
YXJhbURlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3QpOwogCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVF9QCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIEFUeXBlUGFy
YW1EZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7CiAKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRI
X1RFU1QKIApAQCAtOTY2LDcgKzkxOSw3IEBAIFRFU1RfRihFeHBlY3RGYWlsdXJlVGVzdCwgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlKSB7CiBjbGFzcyBFeHBlY3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0
IDogcHVibGljIEV4cGVjdEZhaWx1cmVUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIHN0YXRpYyB2b2lk
IEFkZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZhaWx1cmVNb2RlIGZhaWx1cmUpIHsKLSAgICBUaHJl
YWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgTlVM
TCk7CisgICAgVGhyZWFkV2l0aFBhcmFtPEZhaWx1cmVNb2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUs
IGZhaWx1cmUsIG51bGxwdHIpOwogICAgIHRocmVhZC5Kb2luKCk7CiAgIH0KIH07CkBAIC0xMDM0
LDE2ICs5ODcsNjQgQEAgVEVTVF9GKEV4cGVjdEZhaWx1cmVUZXN0LCBFeHBlY3ROb25GYXRhbEZh
aWx1cmVPbkFsbFRocmVhZHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlNvbWUgb3RoZXIgbm9uLWZhdGFsIGZhaWx1cmUuIik7CiB9CiAKK2NsYXNzIER5bmFt
aWNGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgRHluYW1p
Y0ZpeHR1cmUoKSB7IHByaW50ZigiRHluYW1pY0ZpeHR1cmUoKVxuIik7IH0KKyAgfkR5bmFtaWNG
aXh0dXJlKCkgb3ZlcnJpZGUgeyBwcmludGYoIn5EeW5hbWljRml4dHVyZSgpXG4iKTsgfQorICB2
b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBwcmludGYoIkR5bmFtaWNGaXh0dXJlOjpTZXRVcFxuIik7
IH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgcHJpbnRmKCJEeW5hbWljRml4dHVyZTo6
VGVhckRvd25cbiIpOyB9CisKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IHByaW50
ZigiRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1aXRlXG4iKTsgfQorICBzdGF0aWMgdm9pZCBU
ZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBwcmludGYoIkR5bmFtaWNGaXh0dXJlOjpUZWFyRG93
blRlc3RTdWl0ZVxuIik7CisgIH0KK307CisKK3RlbXBsYXRlIDxib29sIFBhc3M+CitjbGFzcyBE
eW5hbWljVGVzdCA6IHB1YmxpYyBEeW5hbWljRml4dHVyZSB7CisgcHVibGljOgorICB2b2lkIFRl
c3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRShQYXNzKTsgfQorfTsKKworYXV0byBkeW5h
bWljX3Rlc3QgPSAoCisgICAgLy8gUmVnaXN0ZXIgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgZml4
dHVyZSBjb3JyZWN0bHkuCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KAorICAgICAgICAiRHlu
YW1pY0ZpeHR1cmUiLCAiRHluYW1pY1Rlc3RQYXNzIiwgbnVsbHB0ciwgbnVsbHB0ciwgX19GSUxF
X18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5bmFtaWNGaXh0dXJlKiB7IHJldHVybiBu
ZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAg
ICAgICAgIkR5bmFtaWNGaXh0dXJlIiwgIkR5bmFtaWNUZXN0RmFpbCIsIG51bGxwdHIsIG51bGxw
dHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5hbWljRml4dHVyZSog
eyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PGZhbHNlPjsgfSksCisKKyAgICAvLyBSZWdpc3RlciB0
aGUgc2FtZSBmaXh0dXJlIHdpdGggYW5vdGhlciBuYW1lLiBUaGF0J3MgZmluZS4KKyAgICB0ZXN0
aW5nOjpSZWdpc3RlclRlc3QoCisgICAgICAgICJEeW5hbWljRml4dHVyZUFub3RoZXJOYW1lIiwg
IkR5bmFtaWNUZXN0UGFzcyIsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgIF9fRklMRV9fLCBf
X0xJTkVfXywKKyAgICAgICAgW10oKSAtPiBEeW5hbWljRml4dHVyZSogeyByZXR1cm4gbmV3IER5
bmFtaWNUZXN0PHRydWU+OyB9KSwKKworICAgIC8vIFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRo
ZSBzYW1lIGZpeHR1cmUgaW5jb3JyZWN0bHkuCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KAor
ICAgICAgICAiQmFkRHluYW1pY0ZpeHR1cmUxIiwgIkZpeHR1cmVCYXNlIiwgbnVsbHB0ciwgbnVs
bHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5bmFtaWNGaXh0dXJl
KiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRlc3Rpbmc6OlJlZ2lz
dGVyVGVzdCgKKyAgICAgICAgIkJhZER5bmFtaWNGaXh0dXJlMSIsICJUZXN0QmFzZSIsIG51bGxw
dHIsIG51bGxwdHIsIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgW10oKSAtPiB0ZXN0aW5n
OjpUZXN0KiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorCisgICAgLy8gUmVn
aXN0ZXIgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgZml4dHVyZSBpbmNvcnJlY3RseSBieSBvbW1p
dGluZyB0aGUKKyAgICAvLyByZXR1cm4gdHlwZS4KKyAgICB0ZXN0aW5nOjpSZWdpc3RlclRlc3Qo
CisgICAgICAgICJCYWREeW5hbWljRml4dHVyZTIiLCAiRml4dHVyZUJhc2UiLCBudWxscHRyLCBu
dWxscHRyLCBfX0ZJTEVfXywKKyAgICAgICAgX19MSU5FX18sIFtdKCkgLT4gRHluYW1pY0ZpeHR1
cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVzdDx0cnVlPjsgfSksCisgICAgdGVzdGluZzo6UmVn
aXN0ZXJUZXN0KCJCYWREeW5hbWljRml4dHVyZTIiLCAiRGVyaXZlZCIsIG51bGxwdHIsIG51bGxw
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgW10oKSB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47
IH0pKTsKIAogLy8gVHdvIHRlc3QgZW52aXJvbm1lbnRzIGZvciB0ZXN0aW5nIHRlc3Rpbmc6OkFk
ZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpLgogCiBjbGFzcyBGb29FbnZpcm9ubWVudCA6IHB1Ymxp
YyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgcHVibGljOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7Ci0gICAgcHJpbnRmKCIlcyIsICJGb29FbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuXG4i
KTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBwcmludGYoIiVzIiwgIkZvb0Vudmly
b25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIpOyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLCAiRm9v
RW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgY2FsbGVkLlxuIik7CiAgICAgRkFJTCgpIDw8ICJFeHBl
Y3RlZCBmYXRhbCBmYWlsdXJlLiI7CiAgIH0KQEAgLTEwNTEsMTEgKzEwNTIsOSBAQCBjbGFzcyBG
b29FbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAKIGNsYXNzIEJh
ckVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICBwdWJsaWM6Ci0g
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBwcmludGYoIiVzIiwgIkJhckVudmlyb25tZW50
OjpTZXRVcCgpIGNhbGxlZC5cbiIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHBy
aW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlNldFVwKCkgY2FsbGVkLlxuIik7IH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgcHJpbnRmKCIlcyIsICJCYXJFbnZpcm9ubWVudDo6VGVhckRvd24oKSBjYWxsZWQuXG4iKTsK
ICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iOwogICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFy
YW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYwppbmRleCA1
YTk1MTU1YjIzYTc4NzFkYjVkMjU0OWEwZTlmOTA1MDc1YTkzOTk0Li45NTVkNjk5OTAwZDhjZDhl
YjE5YjI1MWQzNWQ2ZDVmN2VlODJlNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWlu
dmFsaWQtbmFtZTEtdGVzdF8uY2MKQEAgLTM2LDEwICszNiwxMCBAQCBjbGFzcyBEdW1teVRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0IGNoYXIgKj4ge307CiBURVNU
X1AoRHVtbXlUZXN0LCBEdW1teSkgewogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnZh
bGlkVGVzdE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcygiSW52YWxpZFdpdGhRdW90ZXMiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFt
ZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChJbnZhbGlkVGVzdE5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6VmFsdWVzKCJJbnZhbGlkV2l0aFF1b3RlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogfSAgLy8gbmFt
ZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNj
CmluZGV4IGVmMDkzNDkwZTlkYTJmMDJlZDI4YTJkMDcxMjQ0NWUyNDE3Y2JkYTMuLjc2MzcxZGY1
NGYwYjNlMmYyNzczNjRkZDhhMjJkMDI4MjNjMmVlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVz
dF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFt
LXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0Xy5jYwpAQCAtNDEsMTAgKzQxLDEwIEBAIHN0ZDo6c3Ry
aW5nIFN0cmluZ1BhcmFtVGVzdFN1ZmZpeCgKIFRFU1RfUChEdW1teVRlc3QsIER1bW15KSB7CiB9
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKER1cGxpY2F0ZVRlc3ROYW1lcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgIER1bW15VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVz
dGluZzo6VmFsdWVzKCJhIiwgImIiLCAiYSIsICJjIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmdQYXJhbVRlc3RTdWZmaXgpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKER1cGxp
Y2F0ZVRlc3ROYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoImEiLCAiYiIsICJhIiwgImMi
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQYXJhbVRlc3RTdWZmaXgpOwogfSAg
Ly8gbmFtZXNwYWNlCiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0
LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmNjCmluZGV4IGY3ODljYWIyNzA3NDE0YzQ2NDg0OTZkN2I5ZmJhYjRmZTUzMWYw
YjcuLmM4NTIyMjBlMjdlZDIxMzAzZDFjNGEyZTg5NTU4ODA2ZmNiNzY5NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRl
c3QtdGVzdC5jYwpAQCAtMzcsNiArMzcsNyBAQAogIyBpbmNsdWRlIDxhbGdvcml0aG0+CiAjIGlu
Y2x1ZGUgPGlvc3RyZWFtPgogIyBpbmNsdWRlIDxsaXN0PgorIyBpbmNsdWRlIDxzZXQ+CiAjIGlu
Y2x1ZGUgPHNzdHJlYW0+CiAjIGluY2x1ZGUgPHN0cmluZz4KICMgaW5jbHVkZSA8dmVjdG9yPgpA
QCAtNDksMTkgKzUwLDEzIEBAIHVzaW5nIDo6c3RkOjpzb3J0OwogCiB1c2luZyA6OnRlc3Rpbmc6
OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKIHVzaW5nIDo6dGVzdGluZzo6Qm9vbDsKK3VzaW5n
IDo6dGVzdGluZzo6Q29tYmluZTsKIHVzaW5nIDo6dGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIDo6
dGVzdGluZzo6UmFuZ2U7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW07CiB1c2luZyA6
OnRlc3Rpbmc6OlZhbHVlczsKIHVzaW5nIDo6dGVzdGluZzo6VmFsdWVzSW47CiAKLSMgaWYgR1RF
U1RfSEFTX0NPTUJJTkUKLXVzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKLXVzaW5nIDo6dGVzdGlu
Zzo6Z2V0OwotdXNpbmcgOjp0ZXN0aW5nOjptYWtlX3R1cGxlOwotdXNpbmcgOjp0ZXN0aW5nOjp0
dXBsZTsKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KIHVzaW5nIDo6dGVzdGluZzo6
aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5p
dFRlc3RPcHRpb25zOwogCkBAIC03Myw0OSArNjgsOSBAQCB1c2luZyA6OnRlc3Rpbmc6OmludGVy
bmFsOjpVbml0VGVzdE9wdGlvbnM7CiAvLyBFWFBFQ1RfVEhBVCgpIGFuZCB0aGUgbWF0Y2hlcnMg
a25vdyBob3cgdG8gcHJpbnQgdHVwbGVzLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiA6OnN0ZDo6
c3RyaW5nIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVh
bSBzdHJlYW07Ci0gIHN0cmVhbSA8PCB2YWx1ZTsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKLX0K
LQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCi0vLyBUaGVzZSBvdmVybG9hZHMgYWxsb3cgcHJp
bnRpbmcgdHVwbGVzIGluIG91ciB0ZXN0cy4gIFdlIGNhbm5vdAotLy8gZGVmaW5lIGFuIG9wZXJh
dG9yPDwgZm9yIHR1cGxlcywgYXMgdGhhdCBkZWZpbml0aW9uIG5lZWRzIHRvIGJlIGluCi0vLyB0
aGUgc3RkIG5hbWVzcGFjZSBpbiBvcmRlciB0byBiZSBwaWNrZWQgdXAgYnkgR29vZ2xlIFRlc3Qg
dmlhCi0vLyBBcmd1bWVudC1EZXBlbmRlbnQgTG9va3VwLCB5ZXQgZGVmaW5pbmcgYW55dGhpbmcg
aW4gdGhlIHN0ZAotLy8gbmFtZXNwYWNlIGluIG5vbi1TVEwgY29kZSBpcyB1bmRlZmluZWQgYmVo
YXZpb3IuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci06OnN0ZDo6c3Ry
aW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQyPiYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0
cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8PCAi
LCAiIDw8IGdldDwxPih2YWx1ZSkgPDwgIikiOwotICByZXR1cm4gc3RyZWFtLnN0cigpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLTo6c3Rk
OjpzdHJpbmcgUHJpbnRWYWx1ZShjb25zdCB0dXBsZTxUMSwgVDIsIFQzPiYgdmFsdWUpIHsKLSAg
OjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZh
bHVlKSA8PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8Mj4o
dmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyAgcmV0dXJuIHRlc3Rpbmc6
OlByaW50VG9TdHJpbmcodmFsdWUpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTA+Ci06OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoCi0gICAgY29uc3QgdHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiYgdmFsdWUpIHsKLSAgOjpzdGQ6
OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8
PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8Mj4odmFsdWUp
IDw8ICIsICIgPDwgZ2V0PDM+KHZhbHVlKQotICAgICAgICAgPDwgIiwgIjw8IGdldDw0Pih2YWx1
ZSkgPDwgIiwgIiA8PCBnZXQ8NT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0PDY+KHZh
bHVlKSA8PCAiLCAiIDw8IGdldDw3Pih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8OD4o
dmFsdWUpIDw8ICIsICIgPDwgZ2V0PDk+KHZhbHVlKSA8PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0u
c3RyKCk7Ci19Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KIC8vIFZlcmlmaWVz
IHRoYXQgYSBzZXF1ZW5jZSBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRvciBhbmQgYWNjZXNzZWQK
IC8vIHZpYSB0aGUgaXRlcmF0b3Igb2JqZWN0IG1hdGNoZXMgdGhlIGV4cGVjdGVkIG9uZSB1c2lu
ZyBHb29nbGUgVGVzdAogLy8gYXNzZXJ0aW9ucy4KQEAgLTQ1MCwzMSArNDA1LDI4IEBAIFRFU1Qo
Qm9vbFRlc3QsIEJvb2xXb3JrcykgewogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92
YWx1ZXMpOwogfQogCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0KIC8vIFRlc3RzIHRoYXQgQ29t
YmluZSgpIHdpdGggdHdvIHBhcmFtZXRlcnMgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBzZXF1ZW5j
ZS4KIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoVHdvUGFyYW1ldGVycykgewogICBjb25z
dCBjaGFyKiBmb28gPSAiZm9vIjsKICAgY29uc3QgY2hhciogYmFyID0gImJhciI7Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQ+ID4gZ2VuID0KKyAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgaW50PiA+IGdlbiA9CiAgICAg
ICBDb21iaW5lKFZhbHVlcyhmb28sIGJhciksIFZhbHVlcygzLCA0KSk7CiAKLSAgdHVwbGU8Y29u
c3QgY2hhciosIGludD4gZXhwZWN0ZWRfdmFsdWVzW10gPSB7Ci0gICAgbWFrZV90dXBsZShmb28s
IDMpLCBtYWtlX3R1cGxlKGZvbywgNCksCi0gICAgbWFrZV90dXBsZShiYXIsIDMpLCBtYWtlX3R1
cGxlKGJhciwgNCl9OworICBzdGQ6OnR1cGxlPGNvbnN0IGNoYXIqLCBpbnQ+IGV4cGVjdGVkX3Zh
bHVlc1tdID0geworICAgICAgc3RkOjptYWtlX3R1cGxlKGZvbywgMyksIHN0ZDo6bWFrZV90dXBs
ZShmb28sIDQpLCBzdGQ6Om1ha2VfdHVwbGUoYmFyLCAzKSwKKyAgICAgIHN0ZDo6bWFrZV90dXBs
ZShiYXIsIDQpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0K
IAogLy8gVGVzdHMgdGhhdCBDb21iaW5lKCkgd2l0aCB0aHJlZSBwYXJhbWV0ZXJzIGdlbmVyYXRl
cyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFRo
cmVlUGFyYW1ldGVycykgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludCwg
aW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDMsIDQpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKDUsIDYpKTsKLSAgdHVwbGU8aW50LCBpbnQsIGludD4gZXhwZWN0ZWRfdmFsdWVzW10g
PSB7Ci0gICAgbWFrZV90dXBsZSgwLCAzLCA1KSwgbWFrZV90dXBsZSgwLCAzLCA2KSwKLSAgICBt
YWtlX3R1cGxlKDAsIDQsIDUpLCBtYWtlX3R1cGxlKDAsIDQsIDYpLAotICAgIG1ha2VfdHVwbGUo
MSwgMywgNSksIG1ha2VfdHVwbGUoMSwgMywgNiksCi0gICAgbWFrZV90dXBsZSgxLCA0LCA1KSwg
bWFrZV90dXBsZSgxLCA0LCA2KX07CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8
aW50LCBpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFZhbHVl
cygzLCA0KSwgVmFsdWVzKDUsIDYpKTsKKyAgc3RkOjp0dXBsZTxpbnQsIGludCwgaW50PiBleHBl
Y3RlZF92YWx1ZXNbXSA9IHsKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgwLCAzLCA1KSwgc3RkOjpt
YWtlX3R1cGxlKDAsIDMsIDYpLAorICAgICAgc3RkOjptYWtlX3R1cGxlKDAsIDQsIDUpLCBzdGQ6
Om1ha2VfdHVwbGUoMCwgNCwgNiksCisgICAgICBzdGQ6Om1ha2VfdHVwbGUoMSwgMywgNSksIHN0
ZDo6bWFrZV90dXBsZSgxLCAzLCA2KSwKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgxLCA0LCA1KSwg
c3RkOjptYWtlX3R1cGxlKDEsIDQsIDYpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0
ZWRfdmFsdWVzKTsKIH0KIApAQCAtNDgyLDEwICs0MzQsMTEgQEAgVEVTVChDb21iaW5lVGVzdCwg
Q29tYmluZVdpdGhUaHJlZVBhcmFtZXRlcnMpIHsKIC8vIHNlcXVlbmNlIGdlbmVyYXRlcyBhIHNl
cXVlbmNlIHdpdGggdGhlIG51bWJlciBvZiBlbGVtZW50cyBlcXVhbCB0byB0aGUKIC8vIG51bWJl
ciBvZiBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBzZWNvbmQgcGFy
YW1ldGVyLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhGaXJzdFBhcmFtZXRlclNpbmds
ZVZhbHVlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9
IENvbWJpbmUoVmFsdWVzKDQyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMCwgMSkpOworICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxzdGQ6OnR1cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFZhbHVlcyg0Miks
IFZhbHVlcygwLCAxKSk7CiAKLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0g
e21ha2VfdHVwbGUoNDIsIDApLCBtYWtlX3R1cGxlKDQyLCAxKX07CisgIHN0ZDo6dHVwbGU8aW50
LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZSg0MiwgMCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV90dXBsZSg0
MiwgMSl9OwogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCkBA
IC00OTMsMjYgKzQ0NiwyNyBAQCBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aEZpcnN0UGFy
YW1ldGVyU2luZ2xlVmFsdWUpIHsKIC8vIHNlcXVlbmNlIGdlbmVyYXRlcyBhIHNlcXVlbmNlIHdp
dGggdGhlIG51bWJlciBvZiBlbGVtZW50cyBlcXVhbCB0byB0aGUKIC8vIG51bWJlciBvZiBlbGVt
ZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBmaXJzdCBwYXJhbWV0ZXIuCiBU
RVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29uZFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUo
VmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyg0MikpOworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1
cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFZhbHVlcygwLCAxKSwgVmFsdWVz
KDQyKSk7CiAKLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge21ha2VfdHVw
bGUoMCwgNDIpLCBtYWtlX3R1cGxlKDEsIDQyKX07CisgIHN0ZDo6dHVwbGU8aW50LCBpbnQ+IGV4
cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZSgwLCA0MiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV90dXBsZSgxLCA0Mil9Owog
ICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCiAvLyBUZXN0cyB0
aGF0IHdoZW4gdGhlIGZpcnN0IHBhcmFtZXRlciBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwK
IC8vIENvbWJpbmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwgdG9vLgogVEVTVChDb21i
aW5lVGVzdCwgQ29tYmluZVdpdGhGaXJzdFBhcmFtZXRlckVtcHR5UmFuZ2UpIHsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBpbnQ+ID4gZ2VuID0gQ29tYmluZShSYW5nZSgwLCAw
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoMCwgMSkpOworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwg
aW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFJhbmdlKDAsIDApLCBWYWx1ZXMoMCwgMSkpOwog
ICBWZXJpZnlHZW5lcmF0b3JJc0VtcHR5KGdlbik7CiB9CiAKIC8vIFRlc3RzIHRoYXQgd2hlbiB0
aGUgc2Vjb25kIHBhcmFtZXRlciBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwKIC8vIENvbWJp
bmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwgdG9vLgogVEVTVChDb21iaW5lVGVzdCwg
Q29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJFbXB0eVJhbmdlKSB7Ci0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdl
KDEsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxpbnQsIGludD4gPiBn
ZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFJhbmdlKDEsIDEpKTsKICAgVmVyaWZ5
R2VuZXJhdG9ySXNFbXB0eShnZW4pOwogfQogCkBAIC01MjEsNDQgKzQ3NSw0MSBAQCBURVNUKENv
bWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29uZFBhcmFtZXRlckVtcHR5UmFuZ2UpIHsKIFRFU1Qo
Q29tYmluZVRlc3QsIENvbWJpbmVXaXRoTWF4TnVtYmVyT2ZQYXJhbWV0ZXJzKSB7CiAgIGNvbnN0
IGNoYXIqIGZvbyA9ICJmb28iOwogICBjb25zdCBjaGFyKiBiYXIgPSAiYmFyIjsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8dHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBpbnQ+ID4gZ2Vu
ID0gQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygxKSwgVmFsdWVzKDIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygz
KSwgVmFsdWVzKDQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyg1KSwgVmFsdWVzKDYpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg3KSwgVmFsdWVzKDgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh
bHVlcyg5KSk7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludCwgaW50LCBpbnQ+Ci0gICAgICBleHBlY3RlZF92YWx1ZXNbXSA9IHttYWtlX3R1
cGxlKGZvbywgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYWtlX3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSl9OworICBj
b25zdCBQYXJhbUdlbmVyYXRvcjwKKyAgICAgIHN0ZDo6dHVwbGU8Y29uc3QgY2hhciosIGludCwg
aW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQ+ID4KKyAgICAgIGdlbiA9Cisg
ICAgICAgICAgQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLCBWYWx1ZXMoMSksIFZhbHVlcygyKSwg
VmFsdWVzKDMpLCBWYWx1ZXMoNCksCisgICAgICAgICAgICAgICAgICBWYWx1ZXMoNSksIFZhbHVl
cyg2KSwgVmFsdWVzKDcpLCBWYWx1ZXMoOCksIFZhbHVlcyg5KSk7CisKKyAgc3RkOjp0dXBsZTxj
b25zdCBjaGFyKiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludD4K
KyAgICAgIGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBsZShmb28sIDEsIDIsIDMs
IDQsIDUsIDYsIDcsIDgsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptYWtl
X3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSl9OwogICBWZXJpZnlHZW5lcmF0
b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotCiBj
bGFzcyBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nIHsKICBwdWJsaWM6CiAgIE5vbkRl
ZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIDogc3RyXyhz
KSB7fQorICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKCkgPSBkZWxldGU7CisgIE5v
bkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29uc3QgTm9uRGVmYXVsdENvbnN0cnVjdEFz
c2lnblN0cmluZyYpID0KKyAgICAgIGRlZmF1bHQ7CisgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3Np
Z25TdHJpbmcmIG9wZXJhdG9yPSgKKyAgICAgIGNvbnN0IE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3Np
Z25TdHJpbmcmKSA9IGRlbGV0ZTsKKyAgfk5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmco
KSA9IGRlZmF1bHQ7CiAKICAgY29uc3Qgc3RkOjpzdHJpbmcmIHN0cigpIGNvbnN0IHsgcmV0dXJu
IHN0cl87IH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3RyaW5nIHN0cl87Ci0KLSAgLy8gTm90IGRl
ZmF1bHQgY29uc3RydWN0aWJsZQotICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKCk7
Ci0gIC8vIE5vdCBhc3NpZ25hYmxlCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE5vbkRlZmF1bHRD
b25zdHJ1Y3RBc3NpZ25TdHJpbmcmKTsKIH07CiAKIFRFU1QoQ29tYmluZVRlc3QsIE5vbkRlZmF1
bHRDb25zdHJ1Y3RBc3NpZ24pIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBO
b25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+IGdlbiA9CisgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPHN0ZDo6dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+
IGdlbiA9CiAgICAgICBDb21iaW5lKFZhbHVlcygwLCAxKSwgVmFsdWVzKE5vbkRlZmF1bHRDb25z
dHJ1Y3RBc3NpZ25TdHJpbmcoIkEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZygiQiIpKSk7CiAKLSAgUGFyYW1HZW5l
cmF0b3I8dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+OjppdGVy
YXRvciBpdCA9Ci0gICAgICBnZW4uYmVnaW4oKTsKKyAgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBs
ZTxpbnQsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmc+ID46Oml0ZXJhdG9yCisgICAg
ICBpdCA9IGdlbi5iZWdpbigpOwogCiAgIEVYUEVDVF9FUSgwLCBzdGQ6OmdldDwwPigqaXQpKTsK
ICAgRVhQRUNUX0VRKCJBIiwgc3RkOjpnZXQ8MT4oKml0KS5zdHIoKSk7CkBAIC01NzksOCArNTMw
LDYgQEAgVEVTVChDb21iaW5lVGVzdCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnbikgewogICBF
WFBFQ1RfVFJVRShpdCA9PSBnZW4uZW5kKCkpOwogfQogCi0jZW5kaWYgICAvLyBHVEVTVF9MQU5H
X0NYWDExCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQogCiAvLyBUZXN0cyB0aGF0IGFu
IGdlbmVyYXRvciBwcm9kdWNlcyBjb3JyZWN0IHNlcXVlbmNlIGFmdGVyIGJlaW5nCiAvLyBhc3Np
Z25lZCBmcm9tIGFub3RoZXIgZ2VuZXJhdG9yLgpAQCAtNTk1LDEyICs1NDQsMTIgQEAgVEVTVChQ
YXJhbUdlbmVyYXRvclRlc3QsIEFzc2lnbm1lbnRXb3JrcykgewogCiAvLyBUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCB0aGUgdGVzdHMgYXJlIGV4cGFuZGVkIGFuZCBydW4gYXMgc3BlY2lmaWVkOgog
Ly8gb25lIHRlc3QgcGVyIGVsZW1lbnQgZnJvbSB0aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhl
IGdlbmVyYXRvcgotLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QLiBJdCBh
bHNvIHZlcmlmaWVzIHRoYXQgdGhlIHRlc3QncworLy8gc3BlY2lmaWVkIGluIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUC4gSXQgYWxzbyB2ZXJpZmllcyB0aGF0IHRoZSB0ZXN0J3MKIC8vIGZpeHR1
cmUgY29uc3RydWN0b3IsIFNldFVwKCksIGFuZCBUZWFyRG93bigpIGhhdmUgcnVuIGFuZCBoYXZl
IGJlZW4KIC8vIHN1cHBsaWVkIHdpdGggdGhlIGNvcnJlY3QgcGFyYW1ldGVycy4KIAogLy8gVGhl
IHVzZSBvZiBlbnZpcm9ubWVudCBvYmplY3QgYWxsb3dzIGRldGVjdGlvbiBvZiB0aGUgY2FzZSB3
aGVyZSBubyB0ZXN0Ci0vLyBjYXNlIGZ1bmN0aW9uYWxpdHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhp
cyBjYXNlIFRlc3RDYXNlVGVhckRvd24gd2lsbCBub3QKKy8vIGNhc2UgZnVuY3Rpb25hbGl0eSBp
cyBydW4gYXQgYWxsLiBJbiB0aGlzIGNhc2UgVGVhckRvd25UZXN0U3VpdGUgd2lsbCBub3QKIC8v
IGJlIGFibGUgdG8gZGV0ZWN0IG1pc3NpbmcgdGVzdHMsIG5hdHVyYWxseS4KIHRlbXBsYXRlIDxp
bnQga0V4cGVjdGVkQ2FsbHM+CiBjbGFzcyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50IDogcHVi
bGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgewpAQCAtNjE1LDcgKzU2NCw3IEBAIGNsYXNzIFRl
c3RHZW5lcmF0aW9uRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7
CiAgIHZvaWQgVGVhckRvd25FeGVjdXRlZCgpIHsgdGVhcl9kb3duX2NvdW50XysrOyB9CiAgIHZv
aWQgVGVzdEJvZHlFeGVjdXRlZCgpIHsgdGVzdF9ib2R5X2NvdW50XysrOyB9CiAKLSAgdmlydHVh
bCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8v
IElmIGFsbCBNdWx0aXBsZVRlc3RHZW5lcmF0aW9uVGVzdCB0ZXN0cyBoYXZlIGJlZW4gZGUtc2Vs
ZWN0ZWQKICAgICAvLyBieSB0aGUgZmlsdGVyIGZsYWcsIHRoZSBmb2xsb3dpbmcgY2hlY2tzIG1h
a2Ugbm8gc2Vuc2UuCiAgICAgYm9vbCBwZXJmb3JtX2NoZWNrID0gZmFsc2U7CkBAIC02NzIsMTYg
KzYyMSwxNiBAQCBjbGFzcyBUZXN0R2VuZXJhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJh
bTxpbnQ+IHsKICAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Rml4dHVyZUNvbnN0cnVjdG9y
RXhlY3V0ZWQoKTsKICAgICBjdXJyZW50X3BhcmFtZXRlcl8gPSBHZXRQYXJhbSgpOwogICB9Ci0g
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBF
bnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+U2V0VXBFeGVjdXRlZCgpOwogICAgIEVYUEVDVF9FUShj
dXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFy
RG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBFbnZpcm9ubWVudDo6
SW5zdGFuY2UoKS0+VGVhckRvd25FeGVjdXRlZCgpOwogICAgIEVYUEVDVF9FUShjdXJyZW50X3Bh
cmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2Fz
ZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgYm9vbCBhbGxfdGVz
dHNfaW5fdGVzdF9jYXNlX3NlbGVjdGVkID0gdHJ1ZTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgUEFSQU1FVEVSX0NPVU5UOyArK2kpIHsKQEAgLTcwMiw3ICs2NTEsNyBAQCBjbGFzcyBUZXN0
R2VuZXJhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsKICAgICBjb2xsZWN0
ZWRfcGFyYW1ldGVyc18uY2xlYXIoKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVz
dENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHZlY3Rv
cjxpbnQ+IGV4cGVjdGVkX3ZhbHVlcyh0ZXN0X2dlbmVyYXRpb25fcGFyYW1zLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2dlbmVyYXRpb25fcGFyYW1zICsgUEFSQU1FVEVS
X0NPVU5UKTsKICAgICAvLyBUZXN0IGV4ZWN1dGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCBi
eSBHb29nbGUgVGVzdCwKQEAgLTcyOCwxNyArNjc3LDE3IEBAIFRFU1RfUChUZXN0R2VuZXJhdGlv
blRlc3QsIFRlc3RzRXhwYW5kZWRBbmRSdW4pIHsKICAgRVhQRUNUX0VRKGN1cnJlbnRfcGFyYW1l
dGVyXywgR2V0UGFyYW0oKSk7CiAgIGNvbGxlY3RlZF9wYXJhbWV0ZXJzXy5wdXNoX2JhY2soR2V0
UGFyYW0oKSk7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0RXhwYW5zaW9uTW9kdWxl
LCBUZXN0R2VuZXJhdGlvblRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNJbih0
ZXN0X2dlbmVyYXRpb25fcGFyYW1zKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVGVzdEV4
cGFuc2lvbk1vZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlc0luKHRlc3RfZ2VuZXJhdGlvbl9wYXJhbXMpKTsKIAogLy8gVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2VxdWVuY2UgKHRoaXJkIHBhcmFtZXRlciBvZgotLy8g
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1ApIGlzIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgp
IGFuZCBuZWl0aGVyIGF0Ci0vLyB0aGUgY2FsbCBzaXRlIG9mIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QIG5vciBpbiBSVU5fQUxMX1RFU1RTKCkuICBGb3IKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUCkgaXMgZXZhbHVhdGVkIGluIEluaXRHb29nbGVUZXN0KCkgYW5kIG5laXRoZXIgYXQKKy8v
IHRoZSBjYWxsIHNpdGUgb2YgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG5vciBpbiBSVU5fQUxM
X1RFU1RTKCkuICBGb3IKIC8vIHRoYXQsIHdlIGRlY2xhcmUgcGFyYW1fdmFsdWVfIHRvIGJlIGEg
c3RhdGljIG1lbWJlciBvZgogLy8gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QgYW5kIGluaXRpYWxp
emUgaXQgdG8gMC4gIFdlIHNldCBpdCB0byAxIGluCiAvLyBtYWluKCksIGp1c3QgYmVmb3JlIGlu
dm9jYXRpb24gb2YgSW5pdEdvb2dsZVRlc3QoKS4gIEFmdGVyIGNhbGxpbmcKIC8vIEluaXRHb29n
bGVUZXN0KCksIHdlIHNldCB0aGUgdmFsdWUgdG8gMi4gIElmIHRoZSBzZXF1ZW5jZSBpcyBldmFs
dWF0ZWQKLS8vIGJlZm9yZSBvciBhZnRlciBJbml0R29vZ2xlVGVzdCwgSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1Agd2lsbCBjcmVhdGUgYQorLy8gYmVmb3JlIG9yIGFmdGVyIEluaXRHb29nbGVUZXN0
LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agd2lsbCBjcmVhdGUgYQogLy8gdGVzdCB3aXRoIHBh
cmFtZXRlciBvdGhlciB0aGFuIDEsIGFuZCB0aGUgdGVzdCBib2R5IHdpbGwgZmFpbCB0aGUKIC8v
IGFzc2VydGlvbi4KIGNsYXNzIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IDogcHVibGljIFRlc3RX
aXRoUGFyYW08aW50PiB7CkBAIC03NTQsOSArNzAzLDggQEAgaW50IEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0OjpwYXJhbV92YWx1ZV8gPSAwOwogVEVTVF9QKEdlbmVyYXRvckV2YWx1YXRpb25UZXN0
LCBHZW5lcmF0b3JzRXZhbHVhdGVkSW5NYWluKSB7CiAgIEVYUEVDVF9FUSgxLCBHZXRQYXJhbSgp
KTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEdlbkV2YWxNb2R1bGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6cGFyYW1fdmFsdWUoKSkpOwor
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEdlbkV2YWxNb2R1bGUsIEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0
aW9uVGVzdDo6cGFyYW1fdmFsdWUoKSkpOwogCiAvLyBUZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVm
aW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0IGFyZQogLy8gZnVuY3Rpb25hbC4g
R2VuZXJhdG9yIGV4dGVybl9nZW4gaXMgZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3Qy
LmNjLgpAQCAtNzY3LDkgKzcxNSw4IEBAIFRFU1RfUChFeHRlcm5hbEdlbmVyYXRvclRlc3QsIEV4
dGVybmFsR2VuZXJhdG9yKSB7CiAgIC8vIHdoaWNoIHdlIHZlcmlmeSBoZXJlLgogICBFWFBFQ1Rf
RVEoR2V0UGFyYW0oKSwgMzMpOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRXh0ZXJuYWxH
ZW5lcmF0b3JNb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbEdlbmVyYXRv
clRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5fZ2VuKTsKK0lOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUChFeHRlcm5hbEdlbmVyYXRvck1vZHVsZSwgRXh0ZXJuYWxHZW5lcmF0b3JU
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybl9nZW4pOwogCiAvLyBUZXN0cyB0
aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGRlZmluZWQgaW4gb25lIHRyYW5z
bGF0aW9uCiAvLyB1bml0IGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhlci4gVGhpcyB0ZXN0IHdp
bGwgYmUgaW5zdGFudGlhdGVkIGluCkBAIC03ODQsMjAgKzczMSwxOSBAQCBURVNUX1AoRXh0ZXJu
YWxJbnN0YW50aWF0aW9uVGVzdCwgSXNNdWx0aXBsZU9mMzMpIHsKIGNsYXNzIE11bHRpcGxlSW5z
dGFudGlhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwogVEVTVF9QKE11
bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIEFsbG93c011bHRpcGxlSW5zdGFuY2VzKSB7CiB9Ci1J
TlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTEsIE11bHRpcGxlSW5zdGFudGlhdGlvblRl
c3QsIFZhbHVlcygxLCAyKSk7Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsIE11
bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFJhbmdlKDMsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChTZXF1ZW5jZTEsIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFZhbHVlcygxLCAy
KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxdWVuY2UyLCBNdWx0aXBsZUluc3RhbnRp
YXRpb25UZXN0LCBSYW5nZSgzLCA1KSk7CiAKIC8vIFRlc3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVk
IHRlc3QgY2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAvLyBpbiBtdWx0aXBsZSB0cmFuc2xhdGlv
biB1bml0cy4gVGhpcyB0ZXN0IHdpbGwgYmUgaW5zdGFudGlhdGVkCiAvLyBoZXJlIGFuZCBpbiBn
dGVzdC1wYXJhbS10ZXN0X3Rlc3QyLmNjLgogLy8gSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFu
c2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGNsYXNzCiAvLyBpcyBkZWZpbmVkIGluIGd0ZXN0LXBh
cmFtLXRlc3RfdGVzdC5oLgotVEVTVF9QKEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNsYWlv
blVuaXRzVGVzdCwgSXNNdWx0aXBsZU9mNDIpIHsKK1RFU1RfUChJbnN0YW50aWF0aW9uSW5NdWx0
aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0LCBJc011bHRpcGxlT2Y0MikgewogICBFWFBFQ1RfRVEo
MCwgR2V0UGFyYW0oKSAlIDQyKTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcXVlbmNl
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNs
YWlvblVuaXRzVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0MiwgNDIqMikp
OworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMSwgSW5zdGFudGlhdGlvbkluTXVs
dGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoNDIsIDQyICogMikpOwogCiAvLyBUZXN0cyB0aGF0IGVhY2ggaXRlcmF0aW9uIG9mIHBhcmFt
ZXRlcml6ZWQgdGVzdCBydW5zIGluIGEgc2VwYXJhdGUgdGVzdAogLy8gb2JqZWN0LgpAQCAtODA1
LDcgKzc1MSw3IEBAIGNsYXNzIFNlcGFyYXRlSW5zdGFuY2VUZXN0IDogcHVibGljIFRlc3RXaXRo
UGFyYW08aW50PiB7CiAgcHVibGljOgogICBTZXBhcmF0ZUluc3RhbmNlVGVzdCgpIDogY291bnRf
KDApIHt9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZv
aWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRVhQRUNUX0dFKGdsb2JhbF9jb3VudF8sIDIp
CiAgICAgICAgIDw8ICJJZiBzb21lIChidXQgbm90IGFsbCkgU2VwYXJhdGVJbnN0YW5jZVRlc3Qg
dGVzdHMgaGF2ZSBiZWVuICIKICAgICAgICAgPDwgImZpbHRlcmVkIG91dCB0aGlzIHRlc3Qgd2ls
bCBmYWlsLiBNYWtlIHN1cmUgdGhhdCBhbGwgIgpAQCAtODIzLDIwICs3NjksMjAgQEAgVEVTVF9Q
KFNlcGFyYXRlSW5zdGFuY2VUZXN0LCBUZXN0c1J1bkluU2VwYXJhdGVJbnN0YW5jZXMpIHsKICAg
RVhQRUNUX0VRKDAsIGNvdW50XysrKTsKICAgZ2xvYmFsX2NvdW50XysrOwogfQotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoRm91ckVsZW1TZXF1ZW5jZSwgU2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJh
bmdlKDEsIDQpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGb3VyRWxlbVNlcXVlbmNlLCBT
ZXBhcmF0ZUluc3RhbmNlVGVzdCwgUmFuZ2UoMSwgNCkpOwogCiAvLyBUZXN0cyB0aGF0IGFsbCBp
bnN0YW50aWF0aW9ucyBvZiBhIHRlc3QgaGF2ZSBuYW1lZCBhcHByb3ByaWF0ZWx5LiBUZXN0Ci0v
LyBkZWZpbmVkIHdpdGggVEVTVF9QKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpIGFuZCBpbnN0YW50
aWF0ZWQgd2l0aAotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2VOYW1lLCBUZXN0
Q2FzZU5hbWUsIGdlbmVyYXRvcikgbXVzdCBiZSBuYW1lZAotLy8gU2VxdWVuY2VOYW1lL1Rlc3RD
YXNlTmFtZS5UZXN0TmFtZS9pLCB3aGVyZSBpIGlzIHRoZSAwLWJhc2VkIGluZGV4IG9mIHRoZQot
Ly8gc2VxdWVuY2UgZWxlbWVudCB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0LgorLy8gZGVm
aW5lZCB3aXRoIFRFU1RfUChUZXN0U3VpdGVOYW1lLCBUZXN0TmFtZSkgYW5kIGluc3RhbnRpYXRl
ZCB3aXRoCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxdWVuY2VOYW1lLCBUZXN0U3Vp
dGVOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUKKy8vIG5hbWVkIFNlcXVlbmNlTmFtZS9UZXN0U3Vp
dGVOYW1lLlRlc3ROYW1lL2ksIHdoZXJlIGkgaXMgdGhlIDAtYmFzZWQgaW5kZXggb2YKKy8vIHRo
ZSBzZXF1ZW5jZSBlbGVtZW50IHVzZWQgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QuCiBjbGFzcyBO
YW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKIAogVEVTVF9QKE5hbWlu
Z1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5kUGFyYW1ldGVycykgewogICBjb25zdCA6
OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVDVF9T
VFJFUSgiWmVyb1RvRml2ZVNlcXVlbmNlL05hbWluZ1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlplcm9Ub0ZpdmVTZXF1ZW5jZS9OYW1pbmdUZXN0
IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAKICAgTWVzc2FnZSBpbmRleF9zdHJl
YW07CiAgIGluZGV4X3N0cmVhbSA8PCAiVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0
ZXJzLyIgPDwgR2V0UGFyYW0oKTsKQEAgLTg0NSw3ICs3OTEsNyBAQCBURVNUX1AoTmFtaW5nVGVz
dCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0ZXJzKSB7CiAgIEVYUEVDVF9FUSg6
OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSksIHRlc3RfaW5mby0+dmFsdWVfcGFy
YW0oKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFplcm9Ub0ZpdmVTZXF1ZW5jZSwg
TmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFplcm9U
b0ZpdmVTZXF1ZW5jZSwgTmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSkpOwogCiAvLyBUZXN0cyB0aGF0
IG1hY3JvcyBpbiB0ZXN0IG5hbWVzIGFyZSBleHBhbmRlZCBjb3JyZWN0bHkuCiBjbGFzcyBNYWNy
b05hbWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwpAQCAtODU3LDExICs4
MDMsMTEgQEAgVEVTVF9QKFBSRUZJWF9XSVRIX01BQ1JPKE5hbWluZ1Rlc3QpLCBQUkVGSVhfV0lU
SF9GT08oU29tZVRlc3ROYW1lKSkgewogICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25z
dCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5j
dXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVDVF9TVFJFUSgiRm9ydHlUd28vTWFjcm9OYW1p
bmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJG
b29Tb21lVGVzdE5hbWUiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiRm9y
dHlUd28vTWFjcm9OYW1pbmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7Cisg
IEVYUEVDVF9TVFJFUSgiRm9vU29tZVRlc3ROYW1lLzAiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEZvcnR5VHdvLCBNYWNyb05hbWluZ1Rlc3QsIFZh
bHVlcyg0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEZvcnR5VHdvLCBNYWNyb05hbWlu
Z1Rlc3QsIFZhbHVlcyg0MikpOwogCiAvLyBUZXN0cyB0aGUgc2FtZSB0aGluZyBmb3Igbm9uLXBh
cmFtZXRyaXplZCB0ZXN0cy4KIGNsYXNzIE1hY3JvTmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCA6
IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307CkBAIC04NzEsMTAgKzgxNyw0MCBAQCBURVNUX0Yo
UFJFRklYX1dJVEhfTUFDUk8oTmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCksCiAgIGNvbnN0IDo6
dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9CiAgICAgIDo6dGVzdGluZzo6VW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAKLSAgRVhQRUNUX1NU
UkVRKCJNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIk1hY3JvTmFtaW5nVGVzdE5vblBhcmFtZXRyaXpl
ZCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfU1RSRVEoIkZvb1Nv
bWVUZXN0TmFtZSIsIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIAorVEVTVChNYWNyb05hbWVpbmcs
IExvb2t1cE5hbWVzKSB7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiBrbm93X3N1aXRlX25hbWVz
LCBrbm93X3Rlc3RfbmFtZXM7CisKKyAgYXV0byBpbnMgPSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKTsKKyAgaW50IHRzID0gMDsKKyAgd2hpbGUgKGNvbnN0IHRlc3Rpbmc6OlRlc3RT
dWl0ZSogc3VpdGUgPSBpbnMtPkdldFRlc3RTdWl0ZSh0cysrKSkgeworICAgIGtub3dfc3VpdGVf
bmFtZXMuaW5zZXJ0KHN1aXRlLT5uYW1lKCkpOworCisgICAgaW50IHRpID0gMDsKKyAgICB3aGls
ZSAoY29uc3QgdGVzdGluZzo6VGVzdEluZm8qIGluZm8gPSBzdWl0ZS0+R2V0VGVzdEluZm8odGkr
KykpIHsKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5pbnNlcnQoc3RkOjpzdHJpbmcoc3VpdGUtPm5h
bWUoKSkgKyAiLiIgKyBpbmZvLT5uYW1lKCkpOworICAgIH0KKyAgfQorCisgIC8vIENoZWNrIHRo
YXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhlIHRlc3Qgc3VpdCBuYW1lIGFjdHVhbHkgZXhpc3Rz
LgorICBFWFBFQ1RfTkUoICAvLworICAgICAga25vd19zdWl0ZV9uYW1lcy5maW5kKCJGb3J0eVR3
by9NYWNyb05hbWluZ1Rlc3QiKSwKKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZW5kKCkpOworICBF
WFBFQ1RfTkUoCisgICAgICBrbm93X3N1aXRlX25hbWVzLmZpbmQoIk1hY3JvTmFtaW5nVGVzdE5v
blBhcmFtZXRyaXplZCIpLAorICAgICAga25vd19zdWl0ZV9uYW1lcy5lbmQoKSk7CisgIC8vIENo
ZWNrIHRoYXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhlIHRlc3QgbmFtZSBhY3R1YWx5IGV4aXN0
cy4KKyAgRVhQRUNUX05FKCAgLy8KKyAgICAgIGtub3dfdGVzdF9uYW1lcy5maW5kKCJGb3J0eVR3
by9NYWNyb05hbWluZ1Rlc3QuRm9vU29tZVRlc3ROYW1lLzAiKSwKKyAgICAgIGtub3dfdGVzdF9u
YW1lcy5lbmQoKSk7CisgIEVYUEVDVF9ORSgKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5maW5kKCJN
YWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQuRm9vU29tZVRlc3ROYW1lIiksCisgICAgICBr
bm93X3Rlc3RfbmFtZXMuZW5kKCkpOworfQorCiAvLyBUZXN0cyB0aGF0IHVzZXIgc3VwcGxpZWQg
Y3VzdG9tIHBhcmFtZXRlciBuYW1lcyBhcmUgd29ya2luZyBjb3JyZWN0bHkuCiAvLyBSdW5zIHRo
ZSB0ZXN0IHdpdGggYSBidWlsdGluIGhlbHBlciBtZXRob2Qgd2hpY2ggdXNlcyBQcmludFRvU3Ry
aW5nLAogLy8gYXMgd2VsbCBhcyBhIGN1c3RvbSBmdW5jdGlvbiBhbmQgY3VzdG9tIGZ1bmN0b3Ig
dG8gZW5zdXJlIGFsbCBwb3NzaWJsZQpAQCAtODg4LDE3ICs4NjQsMTQgQEAgc3RydWN0IEN1c3Rv
bVBhcmFtTmFtZUZ1bmN0b3IgewogICB9CiB9OwogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChD
dXN0b21QYXJhbU5hbWVGdW5jdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRnVu
Y3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJp
bmcoIkZ1bmN0b3JOYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1O
YW1lRnVuY3RvcigpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVG
dW5jdG9yLCBDdXN0b21GdW5jdG9yTmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1bmN0b3JOYW1lIikpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEFsbEFsbG93ZWRDaGFyYWN0ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9t
RnVuY3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIwMTIzNDU2Nzg5MF8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFt
TmFtZUZ1bmN0b3IoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQWxsQWxsb3dlZENoYXJh
Y3RlcnMsIEN1c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLCAiMDEyMzQ1Njc4OTBf
IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3RvcigpKTsK
IAogaW5saW5lIHN0ZDo6c3RyaW5nIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKAogICAgIGNvbnN0
IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZikgewpAQCAtOTA4LDQ1
ICs4ODEsNDEgQEAgaW5saW5lIHN0ZDo6c3RyaW5nIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKAog
Y2xhc3MgQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08c3Rk
OjpzdHJpbmc+IHt9OwogVEVTVF9QKEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCwgQ3VzdG9tVGVz
dE5hbWVzKSB7fQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChDdXN0b21QYXJhbU5hbWVGdW5j
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiRnVuY3Rpb25OYW1l
IikpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3Rpb24pOwor
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uLCBDdXN0b21G
dW5jdGlvbk5hbWluZ1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6
c3RyaW5nKCJGdW5jdGlvbk5hbWUiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9t
UGFyYW1OYW1lRnVuY3Rpb24pOwogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQorSU5TVEFOVElBVEVf
VEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9uUCwgQ3VzdG9tRnVuY3Rpb25OYW1p
bmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiRnVu
Y3Rpb25OYW1lUCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmQ3VzdG9tUGFyYW1OYW1l
RnVuY3Rpb24pOwogCiAvLyBUZXN0IGN1c3RvbSBuYW1pbmcgd2l0aCBhIGxhbWJkYQogCiBjbGFz
cyBDdXN0b21MYW1iZGFOYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08c3RkOjpzdHJp
bmc+IHt9OwogVEVTVF9QKEN1c3RvbUxhbWJkYU5hbWluZ1Rlc3QsIEN1c3RvbVRlc3ROYW1lcykg
e30KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3VzdG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0
b21MYW1iZGFOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6
c3RyaW5nKCJMYW1iZGFOYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3Qg
Ojp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHN0ZDo6c3RyaW5nPiYgaW5mKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBpbmYucGFyYW07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCitJTlNUQU5USUFURV9URVNUX1NV
SVRFX1AoQ3VzdG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0b21MYW1iZGFOYW1pbmdUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6OnN0cmluZygiTGFtYmRhTmFtZSIpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBbXShjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUlu
Zm88c3RkOjpzdHJpbmc+JiBpbmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBpbmYucGFyYW07CisgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAKIFRFU1QoQ3VzdG9t
TmFtaW5nVGVzdCwgQ2hlY2tOYW1lUmVnaXN0cnkpIHsKICAgOjp0ZXN0aW5nOjpVbml0VGVzdCog
dW5pdF90ZXN0ID0gOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKICAgc3RkOjpz
ZXQ8c3RkOjpzdHJpbmc+IHRlc3RfbmFtZXM7Ci0gIGZvciAoaW50IGNhc2VfbnVtID0gMDsKLSAg
ICAgICBjYXNlX251bSA8IHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jYXNlX2NvdW50KCk7Ci0gICAg
ICAgKytjYXNlX251bSkgewotICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdENhc2UqIHRlc3RfY2Fz
ZSA9IHVuaXRfdGVzdC0+R2V0VGVzdENhc2UoY2FzZV9udW0pOwotICAgIGZvciAoaW50IHRlc3Rf
bnVtID0gMDsKLSAgICAgICAgIHRlc3RfbnVtIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50
KCk7CisgIGZvciAoaW50IHN1aXRlX251bSA9IDA7IHN1aXRlX251bSA8IHVuaXRfdGVzdC0+dG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpOworICAgICAgICsrc3VpdGVfbnVtKSB7CisgICAgY29uc3Qg
Ojp0ZXN0aW5nOjpUZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSB1bml0X3Rlc3QtPkdldFRlc3RTdWl0
ZShzdWl0ZV9udW0pOworICAgIGZvciAoaW50IHRlc3RfbnVtID0gMDsgdGVzdF9udW0gPCB0ZXN0
X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7CiAgICAgICAgICArK3Rlc3RfbnVtKSB7Ci0gICAg
ICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiB0ZXN0X2luZm8gPSB0ZXN0X2Nhc2UtPkdldFRl
c3RJbmZvKHRlc3RfbnVtKTsKKyAgICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIHRlc3Rf
aW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKHRlc3RfbnVtKTsKICAgICAgIHRlc3RfbmFt
ZXMuaW5zZXJ0KHN0ZDo6c3RyaW5nKHRlc3RfaW5mby0+bmFtZSgpKSk7CiAgICAgfQogICB9CiAg
IEVYUEVDVF9FUSgxdSwgdGVzdF9uYW1lcy5jb3VudCgiQ3VzdG9tVGVzdE5hbWVzL0Z1bmN0b3JO
YW1lIikpOwogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1l
cy9GdW5jdGlvbk5hbWUiKSk7Ci0jaWYgR1RFU1RfTEFOR19DWFgxMQorICBFWFBFQ1RfRVEoMXUs
IHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9GdW5jdGlvbk5hbWVQIikpOwogICBF
WFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9MYW1iZGFOYW1l
IikpOwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCiB9CiAKIC8vIFRlc3QgYSBudW1lcmlj
IG5hbWUgdG8gZW5zdXJlIFByaW50VG9TdHJpbmdQYXJhbU5hbWUgd29ya3MgY29ycmVjdGx5LgpA
QCAtOTYxLDEwICs5MzAsOCBAQCBURVNUX1AoQ3VzdG9tSW50ZWdlck5hbWluZ1Rlc3QsIFRlc3Rz
UmVwb3J0Q29ycmVjdE5hbWVzKSB7CiAgIEVYUEVDVF9TVFJFUSh0ZXN0X25hbWVfc3RyZWFtLkdl
dFN0cmluZygpLmNfc3RyKCksIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIAotSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoUHJpbnRUb1N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3Rv
bUludGVnZXJOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UoMCwgNSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5h
bWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRUb1N0cmluZywgQ3VzdG9tSW50
ZWdlck5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogLy8gVGVzdCBhIGN1c3RvbSBz
dHJ1Y3Qgd2l0aCBQcmludFRvU3RyaW5nLgogCkBAIC05ODgsMTAgKzk1NSw5IEBAIFRFU1RfUChD
dXN0b21TdHJ1Y3ROYW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lcykgewogICBFWFBF
Q1RfU1RSRVEodGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLCB0ZXN0X2luZm8t
Pm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50VG9TdHJpbmcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21TdHJ1Y3ROYW1pbmdUZXN0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgVmFsdWVzKEN1c3RvbVN0cnVjdCgwKSwgQ3VzdG9tU3RydWN0KDEpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFt
ZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChQcmludFRvU3RyaW5nLCBDdXN0b21TdHJ1
Y3ROYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhDdXN0b21TdHJ1
Y3QoMCksIEN1c3RvbVN0cnVjdCgxKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lKCkpOwogCiAvLyBUZXN0IHRoYXQgdXNpbmcgYSBz
dGF0ZWZ1bCBwYXJhbWV0ZXIgbmFtaW5nIGZ1bmN0aW9uIHdvcmtzIGFzIGV4cGVjdGVkLgogCkBA
IC0xMDIwLDEwICs5ODYsOCBAQCBURVNUX1AoU3RhdGVmdWxOYW1pbmdUZXN0LCBUZXN0c1JlcG9y
dENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEodGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJp
bmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFN0YXRlZnVsTmFtaW5nRnVuY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0
YXRlZnVsTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdlKDAsIDUpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGVmdWxOYW1pbmdGdW5jdG9yKCkpOworSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QKFN0YXRlZnVsTmFtaW5nRnVuY3RvciwgU3RhdGVmdWxOYW1pbmdU
ZXN0LCBSYW5nZSgwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZWZ1bE5hbWlu
Z0Z1bmN0b3IoKSk7CiAKIC8vIENsYXNzIHRoYXQgY2Fubm90IGJlIHN0cmVhbWVkIGludG8gYW4g
b3N0cmVhbS4gIEl0IG5lZWRzIHRvIGJlIGNvcHlhYmxlCiAvLyAoYW5kLCBpbiBjYXNlIG9mIE1T
VkMsIGFsc28gYXNzaWduYWJsZSkgaW4gb3JkZXIgdG8gYmUgYSB0ZXN0IHBhcmFtZXRlcgpAQCAt
MTAzMiw2ICs5OTYsOCBAQCBJTlNUQU5USUFURV9URVNUX0NBU0VfUChTdGF0ZWZ1bE5hbWluZ0Z1
bmN0b3IsCiBjbGFzcyBVbnN0cmVhbWFibGUgewogIHB1YmxpYzoKICAgZXhwbGljaXQgVW5zdHJl
YW1hYmxlKGludCB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9CisgIC8vIC1XdW51c2VkLXByaXZh
dGUtZmllbGQ6IGR1bW15IGFjY2Vzc29yIGZvciBgdmFsdWVfYC4KKyAgY29uc3QgaW50JiBkdW1t
eV92YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQogCiAgcHJpdmF0ZToKICAgaW50IHZh
bHVlXzsKQEAgLTEwNDYsOSArMTAxMiw4IEBAIFRFU1RfUChDb21tZW50VGVzdCwgVGVzdHNDb3Jy
ZWN0bHlSZXBvcnRVbnN0cmVhbWFibGVQYXJhbXMpIHsKICAgRVhQRUNUX0VRKDo6dGVzdGluZzo6
UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKSwgdGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpKTsKIH0K
IAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbldpdGhDb21tZW50cywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRUZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVzKFVuc3RyZWFtYWJsZSgxKSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKElu
c3RhbnRpYXRpb25XaXRoQ29tbWVudHMsIENvbW1lbnRUZXN0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhVbnN0cmVhbWFibGUoMSkpKTsKIAogLy8gVmVyaWZ5IHRoYXQgd2UgY2Fu
IGNyZWF0ZSBhIGhpZXJhcmNoeSBvZiB0ZXN0IGZpeHR1cmVzLCB3aGVyZSB0aGUgYmFzZQogLy8g
Y2xhc3MgZml4dHVyZSBpcyBub3QgcGFyYW1ldGVyaXplZCBhbmQgdGhlIGRlcml2ZWQgY2xhc3Mg
aXMuIEluIHRoaXMgY2FzZQpAQCAtMTA4OCwxOSArMTA1Myw2NCBAQCBURVNUX0YoUGFyYW1ldGVy
aXplZERlYXRoVGVzdCwgR2V0UGFyYW1EaWVzRnJvbVRlc3RGKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi4qIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdCAuKiIpOwogfQogCi1JTlNU
QU5USUFURV9URVNUX0NBU0VfUChSYW5nZVplcm9Ub0ZpdmUsIFBhcmFtZXRlcml6ZWREZXJpdmVk
VGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFJhbmdlWmVyb1Rv
Rml2ZSwgUGFyYW1ldGVyaXplZERlcml2ZWRUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFJhbmdlKDAsIDUpKTsKKworLy8gVGVzdHMgcGFyYW0gZ2VuZXJhdG9yIHdvcmtpbmcgd2l0aCBF
bnVtcworZW51bSBNeUVudW1zIHsKKyAgRU5VTTEgPSAxLAorICBFTlVNMiA9IDMsCisgIEVOVU0z
ID0gOCwKK307CisKK2NsYXNzIE15RW51bVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQ
YXJhbTxNeUVudW1zPiB7fTsKKworVEVTVF9QKE15RW51bVRlc3QsIENoZWNrc1BhcmFtTW9yZVRo
YW5aZXJvKSB7IEVYUEVDVF9HRSgxMCwgR2V0UGFyYW0oKSk7IH0KK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChNeUVudW1UZXN0cywgTXlFbnVtVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OlZhbHVlcyhFTlVNMSwgRU5VTTIsIDApKTsKKworbmFtZXNwYWNlIHdvcmtz
X2hlcmUgeworLy8gTmV2ZXIgdXNlZCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHNob3VsZCB3b3Jr
LgorY2xhc3MgTm90VXNlZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+
IHt9OworCisvLy8vLy8vCisvLyBOZXZlciB1c2VkIG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgc2hv
dWxkIHdvcmsuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE5vdFVzZWRUeXBlVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKE5vdFVzZWRUeXBl
VGVzdCk7CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgd291bGQgZmFpbC4g
YnV0Li4uCitjbGFzcyBOb3RJbnN0YW50aWF0ZWRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08aW50PiB7fTsKKy8vIC4uLiB3ZSBtYXJrIGlzIGFzIGFsbG93ZWQuCitHVEVTVF9B
TExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm90SW5zdGFudGlhdGVkVGVz
dCk7CisKK1RFU1RfUChOb3RJbnN0YW50aWF0ZWRUZXN0LCBVc2VkKSB7IH0KKwordXNpbmcgT3Ro
ZXJOYW1lID0gTm90SW5zdGFudGlhdGVkVGVzdDsKK0dURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVE
X1BBUkFNRVRFUklaRURfVEVTVChPdGhlck5hbWUpOworVEVTVF9QKE90aGVyTmFtZSwgVXNlZCkg
eyB9CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50aWF0ZWQsIHRoaXMgd291bGQgZmFpbC4gYnV0
Li4uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE5vdEluc3RhbnRpYXRlZFR5cGVUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CitUWVBFRF9URVNUX1NVSVRFX1AoTm90SW5zdGFu
dGlhdGVkVHlwZVRlc3QpOworLy8gLi4uIHdlIG1hcmsgaXMgYXMgYWxsb3dlZC4KK0dURVNUX0FM
TE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChOb3RJbnN0YW50aWF0ZWRUeXBl
VGVzdCk7CiAKK1RZUEVEX1RFU1RfUChOb3RJbnN0YW50aWF0ZWRUeXBlVGVzdCwgVXNlZCkgeyB9
CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoTm90SW5zdGFudGlhdGVkVHlwZVRlc3QsIFVz
ZWQpOworfSAgLy8gbmFtZXNwYWNlIHdvcmtzX2hlcmUKIAogaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKiphcmd2KSB7Ci0gIC8vIFVzZWQgaW4gVGVzdEdlbmVyYXRpb25UZXN0IHRlc3QgY2FzZS4K
KyAgLy8gVXNlZCBpbiBUZXN0R2VuZXJhdGlvblRlc3QgdGVzdCBzdWl0ZS4KICAgQWRkR2xvYmFs
VGVzdEVudmlyb25tZW50KFRlc3RHZW5lcmF0aW9uVGVzdDo6RW52aXJvbm1lbnQ6Okluc3RhbmNl
KCkpOwotICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IHRlc3QgY2FzZS4gVGVz
dHMgdGhhdCB0aGUgdXBkYXRlZCB2YWx1ZQorICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRp
b25UZXN0IHRlc3Qgc3VpdGUuIFRlc3RzIHRoYXQgdGhlIHVwZGF0ZWQgdmFsdWUKICAgLy8gd2ls
bCBiZSBwaWNrZWQgdXAgZm9yIGluc3RhbnRpYXRpbmcgdGVzdHMgaW4gR2VuZXJhdG9yRXZhbHVh
dGlvblRlc3QuCiAgIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFyYW1fdmFsdWUoMSk7
CiAKICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAKLSAgLy8gVXNl
ZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IGNhc2UuIFRlc3RzIHRoYXQgdmFsdWUg
dXBkYXRlZAorICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IHRlc3Qgc3VpdGUu
IFRlc3RzIHRoYXQgdmFsdWUgdXBkYXRlZAogICAvLyBoZXJlIHdpbGwgTk9UIGJlIHVzZWQgZm9y
IGluc3RhbnRpYXRpbmcgdGVzdHMgaW4KICAgLy8gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QuCiAg
IEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFyYW1fdmFsdWUoMik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10
ZXN0LmgKaW5kZXggNjMyYTYxZjQ5MjZiYTkyMjUxNTlkYjQ2OTgxMGU0MWNhYzBkMjBjNy4uODkx
OTM3NTM4ZDAxMjZlOTRjZDNkOTQ3YWRlYzMxYTU2MTM0YWZjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
aApAQCAtMzIsOCArMzIsOCBAQAogLy8gVGhpcyBoZWFkZXIgZmlsZSBwcm92aWRlcyBjbGFzc2Vz
IGFuZCBmdW5jdGlvbnMgdXNlZCBpbnRlcm5hbGx5CiAvLyBmb3IgdGVzdGluZyBHb29nbGUgVGVz
dCBpdHNlbGYuCiAKLSNpZm5kZWYgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8K
LSNkZWZpbmUgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9URVNUX0dPT0dMRVRFU1RfUEFSQU1fVEVTVF9URVNUX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1RfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3QuaCIKIApAQCAtNDQsOCArNDQsOCBAQCBjbGFzcyBFeHRlcm5hbEluc3RhbnRpYXRp
b25UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsKIAogLy8gVGVz
dCBmaXh0dXJlIGZvciB0ZXN0aW5nIGluc3RhbnRpYXRpb24gb2YgYSB0ZXN0IGluIG11bHRpcGxl
CiAvLyB0cmFuc2xhdGlvbiB1bml0cy4KLWNsYXNzIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJh
bnNsYWlvblVuaXRzVGVzdAorY2xhc3MgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlv
blVuaXRzVGVzdAogICAgIDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsK
IH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KKyNl
bmRpZiAgLy8gR09PR0xFVEVTVF9URVNUX0dPT0dMRVRFU1RfUEFSQU1fVEVTVF9URVNUX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdDItdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1w
YXJhbS10ZXN0Mi10ZXN0LmNjCmluZGV4IDI1YmI5NDVjMmY4ZWQyOWZkOTA4NTZiMjNlMDNjMDFl
MmE4NDMwNjAuLjJhMjlmYjFkMDY4NmUyYTRlYzdjNjdjODkxMmZmNmEzOGY4OWNjZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0
Mi10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1w
YXJhbS10ZXN0Mi10ZXN0LmNjCkBAIC00NiwxNiArNDYsMTYgQEAgUGFyYW1HZW5lcmF0b3I8aW50
PiBleHRlcm5fZ2VuID0gVmFsdWVzKDMzKTsKIC8vIGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhl
ci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBpbgogLy8gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
Y2MgYW5kIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QgZml4dHVyZSBjbGFzcyBpcwogLy8gZGVm
aW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KE11bHRpcGxlc09mMzMsCi0gICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbEluc3RhbnRp
YXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOworSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKE11bHRpcGxlc09mMzMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgRXh0ZXJuYWxJbnN0YW50aWF0aW9uVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoMzMsIDY2KSk7CiAKIC8vIFRlc3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVkIHRlc3Qg
Y2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAvLyBpbiBtdWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0
cy4gQW5vdGhlciBpbnN0YW50aWF0aW9uIGlzIGRlZmluZWQKIC8vIGluIGdvb2dsZXRlc3QtcGFy
YW0tdGVzdC10ZXN0LmNjIGFuZAotLy8gSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhaW9u
VW5pdHNUZXN0IGZpeHR1cmUgaXMgZGVmaW5lZCBpbgorLy8gSW5zdGFudGlhdGlvbkluTXVsdGlw
bGVUcmFuc2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KIC8vIGd0ZXN0LXBh
cmFtLXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0
c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkp
OworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0MiozLCA0Mio0LCA0Mio1KSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3Qu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcG9ydC10ZXN0LmNj
CmluZGV4IDM5OTMxNmY5NWI2MzdhY2E5MmZiNWExNTQ0ZWM3ZmMyN2MyZWZiMjcuLjFlMGM4NjE2
MzIyYTcyN2U5MGRhYjRlZjE5NGNjYmIwMzVjMTIwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBvcnQtdGVzdC5jYwpAQCAtMzcsNiArMzcs
NyBAQAogI2VuZGlmICAvLyBHVEVTVF9PU19NQUMKIAogI2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVk
ZSA8bWVtb3J5PgogI2luY2x1ZGUgPHV0aWxpdHk+ICAvLyBGb3Igc3RkOjpwYWlyIGFuZCBzdGQ6
Om1ha2VfcGFpci4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKQEAgLTg5LDEwICs5MCwxMCBAQCBURVNU
KElzWERpZ2l0VGVzdCwgUmV0dXJuc0ZhbHNlRm9yV2lkZU5vbkFzY2lpKSB7CiAKIGNsYXNzIEJh
c2UgewogIHB1YmxpYzoKLSAgLy8gQ29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVy
YXRvciBkbyBleGFjdGx5IHdoYXQgd2UgbmVlZCwgc28gd2UKLSAgLy8gdXNlIHRoZW0uCiAgIEJh
c2UoKSA6IG1lbWJlcl8oMCkge30KICAgZXhwbGljaXQgQmFzZShpbnQgbikgOiBtZW1iZXJfKG4p
IHt9CisgIEJhc2UoY29uc3QgQmFzZSYpID0gZGVmYXVsdDsKKyAgQmFzZSYgb3BlcmF0b3I9KGNv
bnN0IEJhc2UmKSA9IGRlZmF1bHQ7CiAgIHZpcnR1YWwgfkJhc2UoKSB7fQogICBpbnQgbWVtYmVy
KCkgeyByZXR1cm4gbWVtYmVyXzsgfQogCkBAIC0yMDAsMzIgKzIwMSwxMyBAQCBURVNUKEltcGxp
Y2l0Q2FzdFRlc3QsIENhblVzZUltcGxpY2l0Q29uc3RydWN0b3IpIHsKICAgRVhQRUNUX1RSVUUo
Y29udmVydGVkKTsKIH0KIAotVEVTVChJdGVyYXRvclRyYWl0c1Rlc3QsIFdvcmtzRm9yU1RMQ29u
dGFpbmVySXRlcmF0b3JzKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsCi0gICAgICBJdGVy
YXRvclRyYWl0czwgOjpzdGQ6OnZlY3RvcjxpbnQ+Ojpjb25zdF9pdGVyYXRvcj46OnZhbHVlX3R5
cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxib29sLAotICAgICAgSXRlcmF0b3JUcmFpdHM8
IDo6c3RkOjpsaXN0PGJvb2w+OjppdGVyYXRvcj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1Qo
SXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclBvaW50ZXJUb05vbkNvbnN0KSB7Ci0gIFN0YXRp
Y0Fzc2VydFR5cGVFcTxjaGFyLCBJdGVyYXRvclRyYWl0czxjaGFyKj46OnZhbHVlX3R5cGU+KCk7
Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjb25zdCB2b2lkKiwgSXRlcmF0b3JUcmFpdHM8Y29uc3Qg
dm9pZCoqPjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotVEVTVChJdGVyYXRvclRyYWl0c1Rlc3QsIFdv
cmtzRm9yUG9pbnRlclRvQ29uc3QpIHsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGNoYXIsIEl0ZXJh
dG9yVHJhaXRzPGNvbnN0IGNoYXIqPjo6dmFsdWVfdHlwZT4oKTsKLSAgU3RhdGljQXNzZXJ0VHlw
ZUVxPGNvbnN0IHZvaWQqLAotICAgICAgSXRlcmF0b3JUcmFpdHM8Y29uc3Qgdm9pZCogY29uc3Qq
Pjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0aGUgZWxlbWVudF90eXBlIHR5
cGVkZWYgaXMgYXZhaWxhYmxlIGluIHNjb3BlZF9wdHIgYW5kIHJlZmVycwotLy8gdG8gdGhlIHBh
cmFtZXRlciB0eXBlLgotVEVTVChTY29wZWRQdHJUZXN0LCBEZWZpbmVzRWxlbWVudFR5cGUpIHsK
LSAgU3RhdGljQXNzZXJ0VHlwZUVxPGludCwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6c2NvcGVkX3B0
cjxpbnQ+OjplbGVtZW50X3R5cGU+KCk7Ci19Ci0KLS8vIEZJWE1FOiBJbXBsZW1lbnQgVEhFIFJF
U1Qgb2Ygc2NvcGVkX3B0ciB0ZXN0cy4KLQorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlv
bmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1i
b2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYK
IFRFU1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIEJlaGF2ZXNMaWtlQVNpbmdsZVN0YXRlbWVudCkg
ewogICBpZiAoQWx3YXlzRmFsc2UoKSkKICAgICBHVEVTVF9DSEVDS18oZmFsc2UpIDw8ICJUaGlz
IHNob3VsZCBuZXZlciBiZSBleGVjdXRlZDsgIgpAQCAtMjQxLDYgKzIyMyw5IEBAIFRFU1QoR3Rl
c3RDaGVja1N5bnRheFRlc3QsIEJlaGF2ZXNMaWtlQVNpbmdsZVN0YXRlbWVudCkgewogICBlbHNl
CiAgICAgR1RFU1RfQ0hFQ0tfKHRydWUpIDw8ICIiOwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAKIFRFU1QoR3Rlc3RDaGVja1N5bnRheFRl
c3QsIFdvcmtzV2l0aFN3aXRjaCkgewogICBzd2l0Y2ggKDApIHsKQEAgLTI2Miw5ICsyNDcsOSBA
QCBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNGaWxlTG9jYXRpb24pIHsKIH0K
IAogVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVW5rbm93bkZpbGUpIHsKLSAg
RVhQRUNUX1BSRURfRk9STUFUMigKLSAgICAgIElzU3Vic3RyaW5nLCAidW5rbm93biBmaWxlIiwg
Rm9ybWF0RmlsZUxvY2F0aW9uKE5VTEwsIDQyKSk7Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoSXNT
dWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVMb2NhdGlvbihOVUxMLCA0MikpOworICBFWFBFQ1Rf
UFJFRF9GT1JNQVQyKElzU3Vic3RyaW5nLCAidW5rbm93biBmaWxlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICBGb3JtYXRGaWxlTG9jYXRpb24obnVsbHB0ciwgNDIpKTsKKyAgRVhQRUNUX1BSRURf
Rk9STUFUMihJc1N1YnN0cmluZywgIjQyIiwgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQy
KSk7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkxpbmUp
IHsKQEAgLTI3Miw3ICsyNTcsNyBAQCBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1h
dHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0
c1Vrbm93bkZpbGVBbmRMaW5lKSB7Ci0gIEVYUEVDVF9FUSgidW5rbm93biBmaWxlOiIsIEZvcm1h
dEZpbGVMb2NhdGlvbihOVUxMLCAtMSkpOworICBFWFBFQ1RfRVEoInVua25vd24gZmlsZToiLCBG
b3JtYXRGaWxlTG9jYXRpb24obnVsbHB0ciwgLTEpKTsKIH0KIAogLy8gVmVyaWZpZXMgYmVoYXZp
b3Igb2YgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbi4KQEAgLTI4Miw3ICsy
NjcsNyBAQCBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb25UZXN0LCBG
b3JtYXRzRmlsZUxvY2F0aW9uKSB7CiAKIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZp
bGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25GaWxlKSB7CiAgIEVYUEVDVF9FUSgidW5rbm93
biBmaWxlOjQyIiwKLSAgICAgICAgICAgIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9j
YXRpb24oTlVMTCwgNDIpKTsKKyAgICAgICAgICAgIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRG
aWxlTG9jYXRpb24obnVsbHB0ciwgNDIpKTsKIH0KIAogVEVTVChGb3JtYXRDb21waWxlckluZGVw
ZW5kZW50RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkxpbmUpIHsKQEAgLTI5MCwxNSAr
Mjc1LDE3IEBAIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3Qs
IEZvcm1hdHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVu
dEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25GaWxlQW5kTGluZSkgewotICBFWFBFQ1Rf
RVEoInVua25vd24gZmlsZSIsIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24o
TlVMTCwgLTEpKTsKKyAgRVhQRUNUX0VRKCJ1bmtub3duIGZpbGUiLCBGb3JtYXRDb21waWxlcklu
ZGVwZW5kZW50RmlsZUxvY2F0aW9uKG51bGxwdHIsIC0xKSk7CiB9CiAKLSNpZiBHVEVTVF9PU19M
SU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfUU5YIHx8IEdURVNUX09TX0ZVQ0hTSUEK
KyNpZiBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfUU5YIHx8IEdU
RVNUX09TX0ZVQ0hTSUEgfHwgXAorICAgIEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19G
UkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBcCisgICAgR1RFU1RfT1NfTkVUQlNE
IHx8IEdURVNUX09TX09QRU5CU0QKIHZvaWQqIFRocmVhZEZ1bmModm9pZCogZGF0YSkgewogICBp
bnRlcm5hbDo6TXV0ZXgqIG11dGV4ID0gc3RhdGljX2Nhc3Q8aW50ZXJuYWw6Ok11dGV4Kj4oZGF0
YSk7CiAgIG11dGV4LT5Mb2NrKCk7CiAgIG11dGV4LT5VbmxvY2soKTsKLSAgcmV0dXJuIE5VTEw7
CisgIHJldHVybiBudWxscHRyOwogfQogCiBURVNUKEdldFRocmVhZENvdW50VGVzdCwgUmV0dXJu
c0NvcnJlY3RWYWx1ZSkgewpAQCAtMzg2LDIxICszNzMsMTQgQEAgVEVTVChSZWdleEVuZ2luZVNl
bGVjdGlvblRlc3QsIFNlbGVjdHNDb3JyZWN0UmVnZXhFbmdpbmUpIHsKIAogI2lmIEdURVNUX1VT
RVNfUE9TSVhfUkUKIAotIyBpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgU3RyPgogY2xhc3MgUkVUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsKIAog
Ly8gRGVmaW5lcyBTdHJpbmdUeXBlcyBhcyB0aGUgbGlzdCBvZiBhbGwgc3RyaW5nIHR5cGVzIHRo
YXQgY2xhc3MgUkUKIC8vIHN1cHBvcnRzLgotdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczwKLSAgICA6
OnN0ZDo6c3RyaW5nLAotIyAgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLSAgICA6OnN0cmlu
ZywKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotICAgIGNvbnN0IGNoYXIq
PiBTdHJpbmdUeXBlczsKK3R5cGVkZWYgdGVzdGluZzo6VHlwZXM8IDo6c3RkOjpzdHJpbmcsIGNv
bnN0IGNoYXIqPiBTdHJpbmdUeXBlczsKIAotVFlQRURfVEVTVF9DQVNFKFJFVGVzdCwgU3RyaW5n
VHlwZXMpOworVFlQRURfVEVTVF9TVUlURShSRVRlc3QsIFN0cmluZ1R5cGVzKTsKIAogLy8gVGVz
dHMgUkUncyBpbXBsaWNpdCBjb25zdHJ1Y3RvcnMuCiBUWVBFRF9URVNUKFJFVGVzdCwgSW1wbGlj
aXRDb25zdHJ1Y3RvcldvcmtzKSB7CkBAIC00NDgsOCArNDI4LDYgQEAgVFlQRURfVEVTVChSRVRl
c3QsIFBhcnRpYWxNYXRjaFdvcmtzKSB7CiAgIEVYUEVDVF9GQUxTRShSRTo6UGFydGlhbE1hdGNo
KFR5cGVQYXJhbSgienphIiksIHJlKSk7CiB9CiAKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19UWVBF
RF9URVNUCi0KICNlbGlmIEdURVNUX1VTRVNfU0lNUExFX1JFCiAKIFRFU1QoSXNJblNldFRlc3Qs
IE51bENoYXJJc05vdEluQW55U2V0KSB7CkBAIC05NjUsNyArOTQzLDcgQEAgVEVTVChUaHJlYWRM
b2NhbFRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvckluaXRpYWxpemVzVG9EZWZhdWx0VmFsdWVzKSB7
CiAgIEVYUEVDVF9FUSgwLCB0MS5nZXQoKSk7CiAKICAgVGhyZWFkTG9jYWw8dm9pZCo+IHQyOwot
ICBFWFBFQ1RfVFJVRSh0Mi5nZXQoKSA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUodDIuZ2V0KCkg
PT0gbnVsbHB0cik7CiB9CiAKIFRFU1QoVGhyZWFkTG9jYWxUZXN0LCBTaW5nbGVQYXJhbUNvbnN0
cnVjdG9ySW5pdGlhbGl6ZXNUb1BhcmFtKSB7CkBAIC0xMDE1LDcgKzk5Myw3IEBAIHZvaWQgQWRk
VHdvKGludCogcGFyYW0pIHsgKnBhcmFtICs9IDI7IH0KIAogVEVTVChUaHJlYWRXaXRoUGFyYW1U
ZXN0LCBDb25zdHJ1Y3RvckV4ZWN1dGVzVGhyZWFkRnVuYykgewogICBpbnQgaSA9IDQwOwotICBU
aHJlYWRXaXRoUGFyYW08aW50Kj4gdGhyZWFkKCZBZGRUd28sICZpLCBOVUxMKTsKKyAgVGhyZWFk
V2l0aFBhcmFtPGludCo+IHRocmVhZCgmQWRkVHdvLCAmaSwgbnVsbHB0cik7CiAgIHRocmVhZC5K
b2luKCk7CiAgIEVYUEVDVF9FUSg0MiwgaSk7CiB9CkBAIC0xMDU1LDEwICsxMDMzLDEwIEBAIGNs
YXNzIEF0b21pY0NvdW50ZXJXaXRoTXV0ZXggewogICAgICAgLy8gZnVuY3Rpb25hbGl0eSBhcyB3
ZSBhcmUgdGVzdGluZyB0aGVtIGhlcmUuCiAgICAgICBwdGhyZWFkX211dGV4X3QgbWVtb3J5X2Jh
cnJpZXJfbXV0ZXg7CiAgICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAg
ICBwdGhyZWFkX211dGV4X2luaXQoJm1lbW9yeV9iYXJyaWVyX211dGV4LCBOVUxMKSk7CisgICAg
ICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZtZW1vcnlfYmFycmllcl9tdXRleCwgbnVsbHB0cikp
OwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9sb2NrKCZt
ZW1vcnlfYmFycmllcl9tdXRleCkpOwogCi0gICAgICBTbGVlcE1pbGxpc2Vjb25kcyhyYW5kb21f
LkdlbmVyYXRlKDMwKSk7CisgICAgICBTbGVlcE1pbGxpc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ+
KHJhbmRvbV8uR2VuZXJhdGUoMzApKSk7CiAKICAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NF
U1NfKHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtZW1vcnlfYmFycmllcl9tdXRleCkpOwogICAgICAg
R1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9kZXN0cm95KCZtZW1vcnlf
YmFycmllcl9tdXRleCkpOwpAQCAtMTA2Niw3ICsxMDQ0LDcgQEAgY2xhc3MgQXRvbWljQ291bnRl
cldpdGhNdXRleCB7CiAgICAgICAvLyBPbiBXaW5kb3dzLCBwZXJmb3JtaW5nIGFuIGludGVybG9j
a2VkIGFjY2VzcyBwdXRzIHVwIGEgbWVtb3J5IGJhcnJpZXIuCiAgICAgICB2b2xhdGlsZSBMT05H
IGR1bW15ID0gMDsKICAgICAgIDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsKLSAgICAg
IFNsZWVwTWlsbGlzZWNvbmRzKHJhbmRvbV8uR2VuZXJhdGUoMzApKTsKKyAgICAgIFNsZWVwTWls
bGlzZWNvbmRzKHN0YXRpY19jYXN0PGludD4ocmFuZG9tXy5HZW5lcmF0ZSgzMCkpKTsKICAgICAg
IDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsKICNlbHNlCiAjIGVycm9yICJNZW1vcnkg
YmFycmllciBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCkBAIC0xMDk1LDcgKzEw
NzMsNyBAQCBURVNUKE11dGV4VGVzdCwgT25seU9uZVRocmVhZENhbkxvY2tBdEFUaW1lKSB7CiAg
IHR5cGVkZWYgVGhyZWFkV2l0aFBhcmFtPHBhaXI8QXRvbWljQ291bnRlcldpdGhNdXRleCosIGlu
dD4gPiBUaHJlYWRUeXBlOwogICBjb25zdCBpbnQga0N5Y2xlQ291bnQgPSAyMDsKICAgY29uc3Qg
aW50IGtUaHJlYWRDb3VudCA9IDc7Ci0gIHNjb3BlZF9wdHI8VGhyZWFkVHlwZT4gY291bnRpbmdf
dGhyZWFkc1trVGhyZWFkQ291bnRdOworICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkVHlwZT4gY291
bnRpbmdfdGhyZWFkc1trVGhyZWFkQ291bnRdOwogICBOb3RpZmljYXRpb24gdGhyZWFkc19jYW5f
c3RhcnQ7CiAgIC8vIENyZWF0ZXMgYW5kIHJ1bnMga1RocmVhZENvdW50IHRocmVhZHMgdGhhdCBp
bmNyZW1lbnQgbG9ja2VkX2NvdW50ZXIKICAgLy8ga0N5Y2xlQ291bnQgdGltZXMgZWFjaC4KQEAg
LTExMTgsNyArMTA5Niw3IEBAIFRFU1QoTXV0ZXhUZXN0LCBPbmx5T25lVGhyZWFkQ2FuTG9ja0F0
QVRpbWUpIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiB2b2lkIFJ1bkZyb21UaHJlYWQodm9p
ZCAoZnVuYykoVCksIFQgcGFyYW0pIHsKLSAgVGhyZWFkV2l0aFBhcmFtPFQ+IHRocmVhZChmdW5j
LCBwYXJhbSwgTlVMTCk7CisgIFRocmVhZFdpdGhQYXJhbTxUPiB0aHJlYWQoZnVuYywgcGFyYW0s
IG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQogCkBAIC0xMjA4LDggKzExODYsNiBAQCBj
bGFzcyBEZXN0cnVjdG9yVHJhY2tlciB7CiAgICAgcmV0dXJuIERlc3RydWN0b3JDYWxsOjpMaXN0
KCkuc2l6ZSgpIC0gMTsKICAgfQogICBjb25zdCBzaXplX3QgaW5kZXhfOwotCi0gIEdURVNUX0RJ
U0FMTE9XX0FTU0lHTl8oRGVzdHJ1Y3RvclRyYWNrZXIpOwogfTsKIAogdHlwZWRlZiBUaHJlYWRM
b2NhbDxEZXN0cnVjdG9yVHJhY2tlcj4qIFRocmVhZFBhcmFtOwpAQCAtMTI1MCw4ICsxMjI2LDgg
QEAgVEVTVChUaHJlYWRMb2NhbFRlc3QsIERlc3Ryb3lzTWFuYWdlZE9iamVjdEF0VGhyZWFkRXhp
dCkgewogICAgIEFTU0VSVF9FUSgwVSwgRGVzdHJ1Y3RvckNhbGw6Okxpc3QoKS5zaXplKCkpOwog
CiAgICAgLy8gVGhpcyBjcmVhdGVzIGFub3RoZXIgRGVzdHJ1Y3RvclRyYWNrZXIgb2JqZWN0IGlu
IHRoZSBuZXcgdGhyZWFkLgotICAgIFRocmVhZFdpdGhQYXJhbTxUaHJlYWRQYXJhbT4gdGhyZWFk
KAotICAgICAgICAmQ2FsbFRocmVhZExvY2FsR2V0LCAmdGhyZWFkX2xvY2FsX3RyYWNrZXIsIE5V
TEwpOworICAgIFRocmVhZFdpdGhQYXJhbTxUaHJlYWRQYXJhbT4gdGhyZWFkKCZDYWxsVGhyZWFk
TG9jYWxHZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRocmVh
ZF9sb2NhbF90cmFja2VyLCBudWxscHRyKTsKICAgICB0aHJlYWQuSm9pbigpOwogCiAgICAgLy8g
VGhlIHRocmVhZCBoYXMgZXhpdGVkLCBhbmQgd2Ugc2hvdWxkIGhhdmUgYSBEZXN0cm95ZWRUcmFj
a2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cHJpbnRlcnMtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1wcmludGVycy10ZXN0LmNjCmluZGV4IGVhODM2OWQyN2U1MDQ3MGYxZWFiZTNhZjI4MDRkMzQ1
NDkzYWRlZDkuLjA0NjM1ZTU4YWUyM2E2YzRkZTY4YTE4N2E1NmM2MzIyYzM4MTVjZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmludGVycy10
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmlu
dGVycy10ZXN0LmNjCkBAIC0zMiwzNCArMzIsMjcgQEAKIC8vCiAvLyBUaGlzIGZpbGUgdGVzdHMg
dGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLgogCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNs
dWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+
CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+CisjaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPGxpc3Q+CiAjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgogI2lu
Y2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3QtcHJpbnRlcnMuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgogCi0jaWYgR1RFU1RfSEFT
X1VOT1JERVJFRF9NQVBfCi0jIGluY2x1ZGUgPHVub3JkZXJlZF9tYXA+ICAvLyBOT0xJTlQKLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBfCi0KLSNpZiBHVEVTVF9IQVNfVU5PUkRF
UkVEX1NFVF8KLSMgaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4gIC8vIE5PTElOVAotI2VuZGlmICAv
LyBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KLQotI2lmIEdURVNUX0hBU19TVERfRk9SV0FSRF9M
SVNUXwotIyBpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+IC8vIE5PTElOVAotI2VuZGlmICAvLyBHVEVT
VF9IQVNfU1REX0ZPUldBUkRfTElTVF8KLQogLy8gU29tZSB1c2VyLWRlZmluZWQgdHlwZXMgZm9y
IHRlc3RpbmcgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLgogCiAvLyBBbiBhbm9ueW1vdXMg
ZW51bSB0eXBlLgpAQCAtOTgsNiArOTEsMTggQEAgY2xhc3MgQmlnZ2VzdEludENvbnZlcnRpYmxl
IHsKICAgb3BlcmF0b3IgOjp0ZXN0aW5nOjppbnRlcm5hbDo6QmlnZ2VzdEludCgpIGNvbnN0IHsg
cmV0dXJuIDQyOyB9CiB9OwogCisvLyBBIHBhcmVudCBjbGFzcyB3aXRoIHR3byBjaGlsZCBjbGFz
c2VzLiBUaGUgcGFyZW50IGFuZCBvbmUgb2YgdGhlIGtpZHMgaGF2ZQorLy8gc3RyZWFtIG9wZXJh
dG9ycy4KK2NsYXNzIFBhcmVudENsYXNzIHt9OworY2xhc3MgQ2hpbGRDbGFzc1dpdGhTdHJlYW1P
cGVyYXRvciA6IHB1YmxpYyBQYXJlbnRDbGFzcyB7fTsKK2NsYXNzIENoaWxkQ2xhc3NXaXRob3V0
U3RyZWFtT3BlcmF0b3IgOiBwdWJsaWMgUGFyZW50Q2xhc3Mge307CitzdGF0aWMgdm9pZCBvcGVy
YXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFBhcmVudENsYXNzJikgeworICBvcyA8PCAi
UGFyZW50Q2xhc3MiOworfQorc3RhdGljIHZvaWQgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9z
LCBjb25zdCBDaGlsZENsYXNzV2l0aFN0cmVhbU9wZXJhdG9yJikgeworICBvcyA8PCAiQ2hpbGRD
bGFzc1dpdGhTdHJlYW1PcGVyYXRvciI7Cit9CisKIC8vIEEgdXNlci1kZWZpbmVkIHVucHJpbnRh
YmxlIGNsYXNzIHRlbXBsYXRlIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBjbGFzcyBVbnByaW50YWJsZVRlbXBsYXRlSW5HbG9iYWwgewpAQCAtMTg1LDYg
KzE5MCwxNyBAQCBpbmxpbmUgOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJl
YW0mIG9zLAogICByZXR1cm4gb3MgPDwgIlN0cmVhbWFibGVUZW1wbGF0ZUluRm9vOiAiIDw8IHgu
dmFsdWUoKTsKIH0KIAorLy8gQSB1c2VyLWRlZmluZWQgc3RyZWFtYWJsZSB0eXBlIGluIGEgdXNl
ciBuYW1lc3BhY2Ugd2hvc2Ugb3BlcmF0b3I8PCBpcworLy8gdGVtcGxhdGVkIG9uIHRoZSB0eXBl
IG9mIHRoZSBvdXRwdXQgc3RyZWFtLgorc3RydWN0IFRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbyB7
fTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIE91dHB1dFN0cmVhbT4KK091dHB1dFN0cmVhbSYgb3Bl
cmF0b3I8PChPdXRwdXRTdHJlYW0mIG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbyYgLyp0cyovKSB7CisgIG9zIDw8ICJUZW1wbGF0ZWRT
dHJlYW1hYmxlSW5Gb28iOworICByZXR1cm4gb3M7Cit9CisKIC8vIEEgdXNlci1kZWZpbmVkIHN0
cmVhbWFibGUgYnV0IHJlY3Vyc2l2bHktZGVmaW5lZCBjb250YWluZXIgdHlwZSBpbgogLy8gYSB1
c2VyIG5hbWVzcGFjZSwgaXQgbWltaWNzIHRoZXJlZm9yZSBzdGQ6OmZpbGVzeXN0ZW06OnBhdGgg
b3IKIC8vIGJvb3N0OjpmaWxlc3lzdGVtOjpwYXRoLgpAQCAtMTkyLDggKzIwOCwxNCBAQCBjbGFz
cyBQYXRoTGlrZSB7CiAgcHVibGljOgogICBzdHJ1Y3QgaXRlcmF0b3IgewogICAgIHR5cGVkZWYg
UGF0aExpa2UgdmFsdWVfdHlwZTsKKworICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7CisgICAg
UGF0aExpa2UmIG9wZXJhdG9yKigpOwogICB9OwogCisgIHVzaW5nIHZhbHVlX3R5cGUgPSBjaGFy
OworICB1c2luZyBjb25zdF9pdGVyYXRvciA9IGl0ZXJhdG9yOworCiAgIFBhdGhMaWtlKCkge30K
IAogICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCk7IH0KQEAgLTIw
Nyw2ICsyMjksMzMgQEAgY2xhc3MgUGF0aExpa2UgewogfSAgLy8gbmFtZXNwYWNlIGZvbwogCiBu
YW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citj
bGFzcyBXcmFwcGVyIHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFdyYXBwZXIoVCYmIHZhbHVlKSA6
IHZhbHVlXyhzdGQ6OmZvcndhcmQ8VD4odmFsdWUpKSB7fQorCisgIGNvbnN0IFQmIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gdmFsdWVfOyB9CisKKyBwcml2YXRlOgorICBUIHZhbHVlXzsKK307CisK
K30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2UgaW50ZXJuYWwgewordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFdyYXBwZXI8VD4+IHsKKyBwdWJsaWM6Cisg
IHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IFdyYXBwZXI8VD4mIHcsIDo6c3RkOjpvc3RyZWFtKiBv
cykgeworICAgICpvcyA8PCAiV3JhcHBlcigiOworICAgIFVuaXZlcnNhbFByaW50KHcudmFsdWUo
KSwgb3MpOworICAgICpvcyA8PCAnKSc7CisgIH0KK307Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJu
YWwKKworCiBuYW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNfdGVzdCB7CiAKIHVzaW5nIDo6c3RkOjpk
ZXF1ZTsKQEAgLTIyMiwxNSArMjcxLDEyIEBAIHVzaW5nIDo6dGVzdGluZzo6UHJpbnRUb1N0cmlu
ZzsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJl
TWVzc2FnZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkltcGxpY2l0Q2FzdF87CiB1c2lu
ZyA6OnRlc3Rpbmc6OmludGVybmFsOjpOYXRpdmVBcnJheTsKLXVzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWw6OlJFOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJl
ZmVyZW5jZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZ3M7CiB1c2luZyA6OnRl
c3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxQcmludDsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlVuaXZlcnNhbFByaW50ZXI7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJz
YWxUZXJzZVByaW50OwotI2lmIEdURVNUX0hBU19UUjFfVFVQTEUgfHwgR1RFU1RfSEFTX1NURF9U
VVBMRV8KIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlVuaXZlcnNhbFRlcnNlUHJpbnRUdXBs
ZUZpZWxkc1RvU3RyaW5nczsKLSNlbmRpZgogCiAvLyBQcmludHMgYSB2YWx1ZSB0byBhIHN0cmlu
ZyB1c2luZyB0aGUgdW5pdmVyc2FsIHZhbHVlIHByaW50ZXIuICBUaGlzCiAvLyBpcyBhIGhlbHBl
ciBmb3IgdGVzdGluZyBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCgpIGZvciB2YXJpb3VzIHR5
cGVzLgpAQCAtMzE1LDYgKzM2MSwyMCBAQCBURVNUKFByaW50Q2hhclRlc3QsIFVuc2lnbmVkQ2hh
cikgewogICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oJ2InKSkp
OwogfQogCitURVNUKFByaW50Q2hhclRlc3QsIENoYXIxNikgeworICBFWFBFQ1RfRVEoIlUrMDA0
MSIsIFByaW50KHUnQScpKTsKK30KKworVEVTVChQcmludENoYXJUZXN0LCBDaGFyMzIpIHsKKyAg
RVhQRUNUX0VRKCJVKzAwNDEiLCBQcmludChVJ0EnKSk7Cit9CisKKyNpZmRlZiBfX2NwcF9jaGFy
OF90CitURVNUKFByaW50Q2hhclRlc3QsIENoYXI4KSB7CisgIEVYUEVDVF9FUSgiVSswMDQxIiwg
UHJpbnQodTgnQScpKTsKK30KKyNlbmRpZgorCiAvLyBUZXN0cyBwcmludGluZyBvdGhlciBzaW1w
bGUsIGJ1aWx0LWluIHR5cGVzLgogCiAvLyBib29sLgpAQCAtMzQ1LDIzICs0MDUsMzkgQEAgVEVT
VChQcmludEJ1aWx0SW5UeXBlVGVzdCwgV2NoYXJfdCkgewogICBFWFBFQ1RfRVEoIkwnXFx4Qzc0
RCcgKDUxMDIxKSIsIFByaW50KHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4Qzc0RCkpKTsKIH0KIAot
Ly8gVGVzdCB0aGF0IEludDY0IHByb3ZpZGVzIG1vcmUgc3RvcmFnZSB0aGFuIHdjaGFyX3QuCisv
LyBUZXN0IHRoYXQgaW50NjRfdCBwcm92aWRlcyBtb3JlIHN0b3JhZ2UgdGhhbiB3Y2hhcl90Lgog
VEVTVChQcmludFR5cGVTaXplVGVzdCwgV2NoYXJfdCkgewotICBFWFBFQ1RfTFQoc2l6ZW9mKHdj
aGFyX3QpLCBzaXplb2YodGVzdGluZzo6aW50ZXJuYWw6OkludDY0KSk7CisgIEVYUEVDVF9MVChz
aXplb2Yod2NoYXJfdCksIHNpemVvZihpbnQ2NF90KSk7CiB9CiAKIC8vIFZhcmlvdXMgaW50ZWdl
ciB0eXBlcy4KIFRFU1QoUHJpbnRCdWlsdEluVHlwZVRlc3QsIEludGVnZXIpIHsKICAgRVhQRUNU
X0VRKCInXFx4RkYnICgyNTUpIiwgUHJpbnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oMjU1
KSkpOyAgLy8gdWludDgKICAgRVhQRUNUX0VRKCInXFx4ODAnICgtMTI4KSIsIFByaW50KHN0YXRp
Y19jYXN0PHNpZ25lZCBjaGFyPigtMTI4KSkpOyAgLy8gaW50OAotICBFWFBFQ1RfRVEoIjY1NTM1
IiwgUHJpbnQoVVNIUlRfTUFYKSk7ICAvLyB1aW50MTYKLSAgRVhQRUNUX0VRKCItMzI3NjgiLCBQ
cmludChTSFJUX01JTikpOyAgLy8gaW50MTYKLSAgRVhQRUNUX0VRKCI0Mjk0OTY3Mjk1IiwgUHJp
bnQoVUlOVF9NQVgpKTsgIC8vIHVpbnQzMgotICBFWFBFQ1RfRVEoIi0yMTQ3NDgzNjQ4IiwgUHJp
bnQoSU5UX01JTikpOyAgLy8gaW50MzIKKyAgRVhQRUNUX0VRKCI2NTUzNSIsIFByaW50KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSkpOyAgLy8gdWludDE2CisgIEVYUEVDVF9F
USgiLTMyNzY4IiwgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWluKCkpKTsg
IC8vIGludDE2CisgIEVYUEVDVF9FUSgiNDI5NDk2NzI5NSIsCisgICAgICAgICAgICBQcmludChz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpKTsgIC8vIHVpbnQzMgorICBFWFBF
Q1RfRVEoIi0yMTQ3NDgzNjQ4IiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpKSk7ICAvLyBpbnQzMgogICBFWFBFQ1RfRVEoIjE4NDQ2NzQ0MDcz
NzA5NTUxNjE1IiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHRlc3Rpbmc6OmludGVy
bmFsOjpVSW50NjQ+KC0xKSkpOyAgLy8gdWludDY0CisgICAgICAgICAgICBQcmludChzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpKTsgIC8vIHVpbnQ2NAogICBFWFBFQ1RfRVEo
Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IiwKLSAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHRl
c3Rpbmc6OmludGVybmFsOjpJbnQ2ND4oMSkgPDwgNjMpKTsgIC8vIGludDY0CisgICAgICAgICAg
ICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSkpOyAgLy8gaW50NjQK
KyNpZmRlZiBfX2NwcF9jaGFyOF90CisgIEVYUEVDVF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAg
IFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjhfdD46Om1pbigpKSk7ICAvLyBjaGFyOF90
CisgIEVYUEVDVF9FUSgiVSswMEZGIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19s
aW1pdHM8Y2hhcjhfdD46Om1heCgpKSk7ICAvLyBjaGFyOF90CisjZW5kaWYKKyAgRVhQRUNUX0VR
KCJVKzAwMDAiLAorICAgICAgICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxjaGFyMTZf
dD46Om1pbigpKSk7ICAvLyBjaGFyMTZfdAorICBFWFBFQ1RfRVEoIlUrRkZGRiIsCisgICAgICAg
ICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXIxNl90Pjo6bWF4KCkpKTsgIC8vIGNo
YXIxNl90CisgIEVYUEVDVF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVt
ZXJpY19saW1pdHM8Y2hhcjMyX3Q+OjptaW4oKSkpOyAgLy8gY2hhcjMyX3QKKyAgRVhQRUNUX0VR
KCJVK0ZGRkZGRkZGIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hh
cjMyX3Q+OjptYXgoKSkpOyAgLy8gY2hhcjMyX3QKIH0KIAogLy8gU2l6ZSB0eXBlcy4KQEAgLTQw
NSw3ICs0ODEsNyBAQCBURVNUKFByaW50Q1N0cmluZ1Rlc3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5V
TEwgQyBzdHJpbmcuCiBURVNUKFByaW50Q1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3QgY2hh
ciogcCA9IE5VTEw7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5V
TEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQxNyw2ICs0OTMsOTIgQEAgVEVTVChQcmludENTdHJp
bmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKICAgICAgICAgICAgIFByaW50KHApKTsKIH0KIAor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIGNvbnN0IGNoYXI4X3QqLgorVEVTVChQcmludFU4U3Ry
aW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hhcjhfdCogcCA9IHU4IueVjCI7CisgIEVYUEVD
VF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHU4XCJcXHhFN1xceDk1XFx4OENc
IiIsIFByaW50KHApKTsKK30KKworLy8gY2hhcjhfdCouCitURVNUKFByaW50VThTdHJpbmdUZXN0
LCBOb25Db25zdCkgeworICBjaGFyOF90IHBbXSA9IHU4IuS4liI7CisgIEVYUEVDVF9FUShQcmlu
dFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHU4XCJcXHhFNFxceEI4XFx4OTZcIiIsCisgICAg
ICAgICAgICBQcmludChzdGF0aWNfY2FzdDxjaGFyOF90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1
OCBzdHJpbmcuCitURVNUKFByaW50VThTdHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXI4
X3QqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8v
IFRlc3RzIHRoYXQgdTggc3RyaW5ncyBhcmUgZXNjYXBlZCBwcm9wZXJseS4KK1RFU1QoUHJpbnRV
OFN0cmluZ1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgeworICBjb25zdCBjaGFyOF90KiBwID0gdTgi
J1wiP1xcXGFcYlxmXG5cclx0XHZceDdGXHhGRiBoZWxsbyDkuJbnlYwiOworICBFWFBFQ1RfRVEo
UHJpbnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAgICAiIHBvaW50aW5nIHRvIHU4XCInXFxc
Ij9cXFxcXFxhXFxiXFxmXFxuXFxyXFx0XFx2XFx4N0ZcXHhGRiAiCisgICAgICAgICAgICAgICAg
ImhlbGxvIFxceEU0XFx4QjhcXHg5NlxceEU3XFx4OTVcXHg4Q1wiIiwKKyAgICAgICAgICAgIFBy
aW50KHApKTsKK30KKyNlbmRpZgorCisvLyBjb25zdCBjaGFyMTZfdCouCitURVNUKFByaW50VTE2
U3RyaW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hhcjE2X3QqIHAgPSB1IueVjCI7CisgIEVY
UEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHVcIlxceDc1NENcIiIsIFBy
aW50KHApKTsKK30KKworLy8gY2hhcjE2X3QqLgorVEVTVChQcmludFUxNlN0cmluZ1Rlc3QsIE5v
bkNvbnN0KSB7CisgIGNoYXIxNl90IHBbXSA9IHUi5LiWIjsKKyAgRVhQRUNUX0VRKFByaW50UG9p
bnRlcihwKSArICIgcG9pbnRpbmcgdG8gdVwiXFx4NEUxNlwiIiwKKyAgICAgICAgICAgIFByaW50
KHN0YXRpY19jYXN0PGNoYXIxNl90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1MTYgc3RyaW5nLgor
VEVTVChQcmludFUxNlN0cmluZ1Rlc3QsIE51bGwpIHsKKyAgY29uc3QgY2hhcjE2X3QqIHAgPSBu
dWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRlc3RzIHRo
YXQgdTE2IHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFByaW50VTE2U3RyaW5n
VGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CisgIGNvbnN0IGNoYXIxNl90KiBwID0gdSInXCI/XFxc
YVxiXGZcblxyXHRcdlx4N0ZceEZGIGhlbGxvIOS4lueVjCI7CisgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIocCkgKworICAgICAgICAgICAgICAgICIgcG9pbnRpbmcgdG8gdVwiJ1xcXCI/XFxcXFxc
YVxcYlxcZlxcblxcclxcdFxcdlxceDdGXFx4RkYgIgorICAgICAgICAgICAgICAgICJoZWxsbyBc
XHg0RTE2XFx4NzU0Q1wiIiwKKyAgICAgICAgICAgIFByaW50KHApKTsKK30KKworLy8gY29uc3Qg
Y2hhcjMyX3QqLgorVEVTVChQcmludFUzMlN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNo
YXIzMl90KiBwID0gVSLwn5e677iPIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArICIg
cG9pbnRpbmcgdG8gVVwiXFx4MUY1RkFcXHhGRTBGXCIiLCBQcmludChwKSk7Cit9CisKKy8vIGNo
YXIzMl90Ki4KK1RFU1QoUHJpbnRVMzJTdHJpbmdUZXN0LCBOb25Db25zdCkgeworICBjaGFyMzJf
dCBwW10gPSBVIvCfjIwiOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGlu
ZyB0byBVXCJcXHgxRjMwQ1wiIiwKKyAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PGNoYXIz
Ml90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1MzIgc3RyaW5nLgorVEVTVChQcmludFUzMlN0cmlu
Z1Rlc3QsIE51bGwpIHsKKyAgY29uc3QgY2hhcjMyX3QqIHAgPSBudWxscHRyOworICBFWFBFQ1Rf
RVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgdTMyIHN0cmluZ3MgYXJl
IGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFByaW50VTMyU3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Bl
cmx5KSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gVSInXCI/XFxcYVxiXGZcblxyXHRcdlx4N0Zc
eEZGIGhlbGxvIPCfl7rvuI8iOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsKKyAgICAg
ICAgICAgICAgICAiIHBvaW50aW5nIHRvIFVcIidcXFwiP1xcXFxcXGFcXGJcXGZcXG5cXHJcXHRc
XHZcXHg3RlxceEZGICIKKyAgICAgICAgICAgICAgICAiaGVsbG8gXFx4MUY1RkFcXHhGRTBGXCIi
LAorICAgICAgICAgICAgUHJpbnQocCkpOworfQorCiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBj
b25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25lZCBz
aG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNvbnN0IHdjaGFyX3QqIGluIHRoYXQgY2Fz
ZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5zaWduZWQgc2hvcnRzIGJlIHByaW50ZWQg
YXMgd2lkZSBzdHJpbmdzLApAQCAtNDQwLDcgKzYwMiw3IEBAIFRFU1QoUHJpbnRXaWRlQ1N0cmlu
Z1Rlc3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5VTEwgd2lkZSBDIHN0cmluZy4KIFRFU1QoUHJpbnRX
aWRlQ1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3Qgd2NoYXJfdCogcCA9IE5VTEw7CisgIGNv
bnN0IHdjaGFyX3QqIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7
CiB9CiAKQEAgLTQ2MCw3ICs2MjIsNyBAQCBURVNUKFByaW50V2lkZUNTdHJpbmdUZXN0LCBFc2Nh
cGVzUHJvcGVybHkpIHsKIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIFNpZ25lZENoYXIpIHsK
ICAgc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHNpZ25lZCBjaGFyKj4oMHgxMjM0
KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsK
KyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAt
NDY4LDcgKzYzMCw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIFNpZ25lZENoYXIpIHsK
IFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0U2lnbmVkQ2hhcikgewogICBzaWduZWQg
Y2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2lnbmVkIGNoYXIqPigweDEyMzQpOwogICBFWFBF
Q1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVs
bHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00NzYsNyArNjM4
LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgQ29uc3RTaWduZWRDaGFyKSB7CiBURVNU
KFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNpZ25lZENoYXIpIHsKICAgdW5zaWduZWQgY2hhciog
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KDB4MTIzNCk7CiAgIEVYUEVDVF9F
UShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7CisgIHAgPSBudWxscHRy
OwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQ4NCw3ICs2NDYsNyBA
QCBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNpZ25lZENoYXIpIHsKIFRFU1QoUHJpbnRD
aGFyUG9pbnRlclRlc3QsIENvbnN0VW5zaWduZWRDaGFyKSB7CiAgIGNvbnN0IHVuc2lnbmVkIGNo
YXIqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigweDEyMzQpOwog
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00OTQs
NyArNjU2LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgQ29uc3RVbnNpZ25lZENoYXIp
IHsKIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRlc3QsIEJvb2wpIHsKICAgYm9vbCog
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KDB4QUJDRCk7CiAgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7CisgIHAgPSBudWxscHRyOwogICBFWFBF
Q1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTUwMiw3ICs2NjQsNyBAQCBURVNUKFBy
aW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29sKSB7CiBURVNUKFByaW50UG9pbnRlclRv
QnVpbHRJblR5cGVUZXN0LCBWb2lkKSB7CiAgIHZvaWQqIHAgPSByZWludGVycHJldF9jYXN0PHZv
aWQqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0g
IHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkp
OwogfQogCkBAIC01MTAsNyArNjcyLDcgQEAgVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBl
VGVzdCwgVm9pZCkgewogVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgQ29uc3RW
b2lkKSB7CiAgIGNvbnN0IHZvaWQqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigw
eEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBO
VUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQog
CkBAIC01MTgsNyArNjgwLDcgQEAgVEVTVChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwg
Q29uc3RWb2lkKSB7CiBURVNUKFByaW50UG9pbnRlclRvUG9pbnRlclRlc3QsIEludFBvaW50ZXJQ
b2ludGVyKSB7CiAgIGludCoqIHAgPSByZWludGVycHJldF9jYXN0PGludCoqPigweEFCQ0QpOwog
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBw
ID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC02Mjcs
MjEgKzc4OSw2NiBAQCBURVNUKFByaW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoTm9UZXJtaW5h
dGluZ051bCkgewogICBFWFBFQ1RfRVEoIlwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcgTlVMKSIs
IFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQogCi0vLyBjb25zdCBjaGFyIGFycmF5IHdpdGggdGVy
bWluYXRpbmcgTlVMLgotVEVTVChQcmludEFycmF5VGVzdCwgQ29uc3RDaGFyQXJyYXlXaXRoVGVy
bWluYXRpbmdOdWwpIHsKKy8vIGNoYXIgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitURVNU
KFByaW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsKICAgY29uc3Qg
Y2hhciBhW10gPSAiXDBIaSI7CiAgIEVYUEVDVF9FUSgiXCJcXDBIaVwiIiwgUHJpbnRBcnJheUhl
bHBlcihhKSk7CiB9CiAKLS8vIGNvbnN0IHdjaGFyX3QgYXJyYXkgd2l0aG91dCB0ZXJtaW5hdGlu
ZyBOVUwuCisjaWZkZWYgX19jcHBfY2hhcjhfdAorLy8gY2hhcl90IGFycmF5IHdpdGhvdXQgdGVy
bWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjhBcnJheVdpdGhOb1Rlcm1p
bmF0aW5nTnVsKSB7CisgIC8vIEFycmF5IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFu
ZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCisgIGNvbnN0IGNoYXI4X3QgYVtdID0ge3U4J0gnLCB1
OCdcMCcsIHU4J2knfTsKKyAgRVhQRUNUX0VRKCJ1OFwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcg
TlVMKSIsIFByaW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyBjaGFyOF90IGFycmF5IHdpdGgg
dGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjhBcnJheVdpdGhUZXJt
aW5hdGluZ051bCkgeworICBjb25zdCBjaGFyOF90IGFbXSA9IHU4Ilww5LiW55WMIjsKKyAgRVhQ
RUNUX0VRKAorICAgICAgInU4XCJcXDBcXHhFNFxceEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIs
CisgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKyNlbmRpZgorCisvLyBjb25zdCBjaGFy
MTZfdCBhcnJheSB3aXRob3V0IHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3Qs
IENoYXIxNkFycmF5V2l0aE5vVGVybWluYXRpbmdOdWwpIHsKKyAgLy8gQXJyYXkgYSBjb250YWlu
cyAnXDAnIGluIHRoZSBtaWRkbGUgYW5kIGRvZXNuJ3QgZW5kIHdpdGggJ1wwJy4KKyAgY29uc3Qg
Y2hhcjE2X3QgYVtdID0ge3Un44GTJywgdSdcMCcsIHUn44KTJywgdSfjgasnLCB1J+OBoScsIHUn
44GvJ307CisgIEVYUEVDVF9FUSgidVwiXFx4MzA1M1xcMFxceDMwOTNcXHgzMDZCXFx4MzA2MVxc
eDMwNkZcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsCisgICAgICAgICAgICBQcmludEFycmF5SGVs
cGVyKGEpKTsKK30KKworLy8gY2hhcjE2X3QgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitU
RVNUKFByaW50QXJyYXlUZXN0LCBDaGFyMTZBcnJheVdpdGhUZXJtaW5hdGluZ051bCkgeworICBj
b25zdCBjaGFyMTZfdCBhW10gPSB1Ilww44GT44KT44Gr44Gh44GvIjsKKyAgRVhQRUNUX0VRKCJ1
XCJcXDBcXHgzMDUzXFx4MzA5M1xceDMwNkJcXHgzMDYxXFx4MzA2RlwiIiwgUHJpbnRBcnJheUhl
bHBlcihhKSk7Cit9CisKKy8vIGNoYXIzMl90IGFycmF5IHdpdGhvdXQgdGVybWluYXRpbmcgTlVM
LgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjMyQXJyYXlXaXRoTm9UZXJtaW5hdGluZ051bCkg
eworICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhlIG1pZGRsZSBhbmQgZG9lc24ndCBl
bmQgd2l0aCAnXDAnLgorICBjb25zdCBjaGFyMzJfdCBhW10gPSB7VSfwn5GLJywgVSdcMCcsIFUn
8J+MjCd9OworICBFWFBFQ1RfRVEoIlVcIlxceDFGNDRCXFwwXFx4MUYzMENcIiAobm8gdGVybWlu
YXRpbmcgTlVMKSIsCisgICAgICAgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8g
Y2hhcjMyX3QgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50QXJyYXlUZXN0
LCBDaGFyMzJBcnJheVdpdGhUZXJtaW5hdGluZ051bCkgeworICBjb25zdCBjaGFyMzJfdCBhW10g
PSBVIlww8J+Ri/CfjIwiOworICBFWFBFQ1RfRVEoIlVcIlxcMFxceDFGNDRCXFx4MUYzMENcIiIs
IFByaW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyB3Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVy
bWluYXRpbmcgTlVMLgogVEVTVChQcmludEFycmF5VGVzdCwgV0NoYXJBcnJheVdpdGhOb1Rlcm1p
bmF0aW5nTnVsKSB7CiAgIC8vIEFycmF5IGEgY29udGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFu
ZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCi0gIGNvbnN0IHdjaGFyX3QgYVtdID0geyBMJ0gnLCBM
J1wwJywgTCdpJyB9OworICBjb25zdCB3Y2hhcl90IGFbXSA9IHtMJ0gnLCBMJ1wwJywgTCdpJ307
CiAgIEVYUEVDVF9FUSgiTFwiSFxcMGlcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsIFByaW50QXJy
YXlIZWxwZXIoYSkpOwogfQogCiAvLyB3Y2hhcl90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVM
LgotVEVTVChQcmludEFycmF5VGVzdCwgV0NvbnN0Q2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVs
KSB7CitURVNUKFByaW50QXJyYXlUZXN0LCBXQ2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7
CiAgIGNvbnN0IHdjaGFyX3QgYVtdID0gTCJcMEhpIjsKICAgRVhQRUNUX0VRKCJMXCJcXDBIaVwi
IiwgUHJpbnRBcnJheUhlbHBlcihhKSk7CiB9CkBAIC02NjEsMTYgKzg2OCw2IEBAIFRFU1QoUHJp
bnRBcnJheVRlc3QsIEJpZ0FycmF5KSB7CiAKIC8vIFRlc3RzIHByaW50aW5nIDo6c3RyaW5nIGFu
ZCA6OnN0ZDo6c3RyaW5nLgogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLS8vIDo6c3Ry
aW5nLgotVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmluZ0luR2xvYmFsTmFtZXNwYWNlKSB7Ci0g
IGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxuXDBcclx0XHZceDdGXHhGRiBhIjsKLSAg
Y29uc3QgOjpzdHJpbmcgc3RyKHMsIHNpemVvZihzKSk7Ci0gIEVYUEVDVF9FUSgiXCInXFxcIj9c
XFxcXFxhXFxiXFxmXFxuXFwwXFxyXFx0XFx2XFx4N0ZcXHhGRiBhXFwwXCIiLAotICAgICAgICAg
ICAgUHJpbnQoc3RyKSk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0K
IC8vIDo6c3RkOjpzdHJpbmcuCiBURVNUKFByaW50U3RyaW5nVGVzdCwgU3RyaW5nSW5TdGROYW1l
c3BhY2UpIHsKICAgY29uc3QgY2hhciBzW10gPSAiJ1wiP1xcXGFcYlxmXG5cMFxyXHRcdlx4N0Zc
eEZGIGEiOwpAQCAtNjkzLDE5ICs4OTAsNyBAQCBURVNUKFByaW50U3RyaW5nVGVzdCwgU3RyaW5n
QW1iaWd1b3VzSGV4KSB7CiAgIEVYUEVDVF9FUSgiXCIhXFx4NS0hXCIiLCBQcmludCg6OnN0ZDo6
c3RyaW5nKCIhXHg1LSEiKSkpOwogfQogCi0vLyBUZXN0cyBwcmludGluZyA6OndzdHJpbmcgYW5k
IDo6c3RkOjp3c3RyaW5nLgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0vLyA6Ondz
dHJpbmcuCi1URVNUKFByaW50V2lkZVN0cmluZ1Rlc3QsIFN0cmluZ0luR2xvYmFsTmFtZXNwYWNl
KSB7Ci0gIGNvbnN0IHdjaGFyX3Qgc1tdID0gTCInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHhEM1x4
NTc2XHg4RDNceEM3NEQgYSI7Ci0gIGNvbnN0IDo6d3N0cmluZyBzdHIocywgc2l6ZW9mKHMpL3Np
emVvZih3Y2hhcl90KSk7Ci0gIEVYUEVDVF9FUSgiTFwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxc
MFxcclxcdFxcdiIKLSAgICAgICAgICAgICJcXHhEM1xceDU3NlxceDhEM1xceEM3NEQgYVxcMFwi
IiwKLSAgICAgICAgICAgIFByaW50KHN0cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xP
QkFMX1dTVFJJTkcKLQorLy8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OndzdHJpbmcuCiAjaWYgR1RF
U1RfSEFTX1NURF9XU1RSSU5HCiAvLyA6OnN0ZDo6d3N0cmluZy4KIFRFU1QoUHJpbnRXaWRlU3Ry
aW5nVGVzdCwgU3RyaW5nSW5TdGROYW1lc3BhY2UpIHsKQEAgLTcyNyw2ICs5MTIsMjYgQEAgVEVT
VChQcmludFdpZGVTdHJpbmdUZXN0LCBTdHJpbmdBbWJpZ3VvdXNIZXgpIHsKIH0KICNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CitURVNUKFBy
aW50U3RyaW5nVGVzdCwgVThTdHJpbmcpIHsKKyAgc3RkOjp1OHN0cmluZyBzdHIgPSB1OCJIZWxs
bywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEg
Y29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisgIEVYUEVDVF9FUSgidThcIkhlbGxvLCBcXHhFNFxc
eEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsIFByaW50KHN0cikpOworfQorI2VuZGlmCisKK1RF
U1QoUHJpbnRTdHJpbmdUZXN0LCBVMTZTdHJpbmcpIHsKKyAgc3RkOjp1MTZzdHJpbmcgc3RyID0g
dSJIZWxsbywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBF
Q1RfRVEgY29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisgIEVYUEVDVF9FUSgidVwiSGVsbG8sIFxc
eDRFMTZcXHg3NTRDXCIiLCBQcmludChzdHIpKTsKK30KKworVEVTVChQcmludFN0cmluZ1Rlc3Qs
IFUzMlN0cmluZykgeworICBzdGQ6OnUzMnN0cmluZyBzdHIgPSBVIkhlbGxvLCDwn5e677iPIjsK
KyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEgY29tcGlsZXMgd2l0
aCB0aGlzIHR5cGUKKyAgRVhQRUNUX0VRKCJVXCJIZWxsbywgXFx4MUY1RkFcXHhGRTBGXCIiLCBQ
cmludChzdHIpKTsKK30KKwogLy8gVGVzdHMgcHJpbnRpbmcgdHlwZXMgdGhhdCBzdXBwb3J0IGdl
bmVyaWMgc3RyZWFtaW5nIChpLmUuIHN0cmVhbWluZwogLy8gdG8gc3RkOjpiYXNpY19vc3RyZWFt
PENoYXIsIENoYXJUcmFpdHM+IGZvciBhbnkgdmFsaWQgQ2hhciBhbmQKIC8vIENoYXJUcmFpdHMg
dHlwZXMpLgpAQCAtNzg1LDIyICs5OTAsMjIgQEAgVEVTVChQcmludFR5cGVXaXRoR2VuZXJpY1N0
cmVhbWluZ1Rlc3QsIFR5cGVJbXBsaWNpdGx5Q29udmVydGlibGUpIHsKICAgRVhQRUNUX0VRKCJB
bGxvd3NHZW5lcmljU3RyZWFtaW5nQW5kSW1wbGljaXRDb252ZXJzaW9uVGVtcGxhdGUiLCBQcmlu
dChhKSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0lOVEVSTkFMX0hBU19T
VFJJTkdfVklFVwogCi0vLyBUZXN0cyBwcmludGluZyA6OmFic2w6OnN0cmluZ192aWV3LgorLy8g
VGVzdHMgcHJpbnRpbmcgaW50ZXJuYWw6OlN0cmluZ1ZpZXcuCiAKIFRFU1QoUHJpbnRTdHJpbmdW
aWV3VGVzdCwgU2ltcGxlU3RyaW5nVmlldykgewotICBjb25zdCA6OmFic2w6OnN0cmluZ192aWV3
IHNwID0gIkhlbGxvIjsKKyAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3AgPSAiSGVsbG8i
OwogICBFWFBFQ1RfRVEoIlwiSGVsbG9cIiIsIFByaW50KHNwKSk7CiB9CiAKIFRFU1QoUHJpbnRT
dHJpbmdWaWV3VGVzdCwgVW5wcmludGFibGVDaGFyYWN0ZXJzKSB7CiAgIGNvbnN0IGNoYXIgc3Ry
W10gPSAiTlVMIChcMCkgYW5kIFxyXHQiOwotICBjb25zdCA6OmFic2w6OnN0cmluZ192aWV3IHNw
KHN0ciwgc2l6ZW9mKHN0cikgLSAxKTsKKyAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3Ao
c3RyLCBzaXplb2Yoc3RyKSAtIDEpOwogICBFWFBFQ1RfRVEoIlwiTlVMIChcXDApIGFuZCBcXHJc
XHRcIiIsIFByaW50KHNwKSk7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNlbmRp
ZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCiAKIC8vIFRlc3RzIHByaW50aW5n
IFNUTCBjb250YWluZXJzLgogCkBAIC04MTYsNyArMTAyMSw2IEBAIFRFU1QoUHJpbnRTdGxDb250
YWluZXJUZXN0LCBOb25FbXB0eURlcXVlKSB7CiAgIEVYUEVDVF9FUSgieyAxLCAzIH0iLCBQcmlu
dChub25fZW1wdHkpKTsKIH0KIAotI2lmIEdURVNUX0hBU19VTk9SREVSRURfTUFQXwogCiBURVNU
KFByaW50U3RsQ29udGFpbmVyVGVzdCwgT25lRWxlbWVudEhhc2hNYXApIHsKICAgOjpzdGQ6OnVu
b3JkZXJlZF9tYXA8aW50LCBjaGFyPiBtYXAxOwpAQCAtODM2LDkgKzEwNDAsNyBAQCBURVNUKFBy
aW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpTWFwKSB7CiAgICAgICAgICAgICAgICAgICA8
PCAiIHdoZXJlIFByaW50KG1hcDEpIHJldHVybnMgXCIiIDw8IHJlc3VsdCA8PCAiXCIuIjsKIH0K
IAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8KIAotI2lmIEdURVNUX0hBU19V
Tk9SREVSRURfU0VUXwogCiBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaFNldCkgewog
ICA6OnN0ZDo6dW5vcmRlcmVkX3NldDxpbnQ+IHNldDE7CkBAIC04NzUsNyArMTA3Nyw2IEBAIFRF
U1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBIYXNoTXVsdGlTZXQpIHsKICAgRVhQRUNUX1RSVUUo
c3RkOjplcXVhbChhLCBhICsga1NpemUsIG51bWJlcnMuYmVnaW4oKSkpOwogfQogCi0jZW5kaWYg
IC8vICBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KIAogVEVTVChQcmludFN0bENvbnRhaW5lclRl
c3QsIExpc3QpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgYVtdID0geyJoZWxsbyIsICJ3b3JsZCJ9
OwpAQCAtOTE3LDE0ICsxMTE4LDEyIEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBNdWx0
aVNldCkgewogICBFWFBFQ1RfRVEoInsgMSwgMSwgMSwgMiwgNSB9IiwgUHJpbnQoc2V0MSkpOwog
fQogCi0jaWYgR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCiAKIFRFU1QoUHJpbnRTdGxDb250
YWluZXJUZXN0LCBTaW5nbHlMaW5rZWRMaXN0KSB7CiAgIGludCBhW10gPSB7IDksIDIsIDggfTsK
ICAgY29uc3Qgc3RkOjpmb3J3YXJkX2xpc3Q8aW50PiBpbnRzKGEsIGEgKyAzKTsKICAgRVhQRUNU
X0VRKCJ7IDksIDIsIDggfSIsIFByaW50KGludHMpKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X1NURF9GT1JXQVJEX0xJU1RfCiAKIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBQYWlyKSB7
CiAgIHBhaXI8Y29uc3QgYm9vbCwgaW50PiBwKHRydWUsIDUpOwpAQCAtOTkxLDY3ICsxMTkwLDYg
QEAgVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIENvbnN0SXRlcmF0b3IpIHsKICAgRVhQRUNU
X0VRKCIxLWJ5dGUgb2JqZWN0IDwwMD4iLCBQcmludChpdCkpOwogfQogCi0jaWYgR1RFU1RfSEFT
X1RSMV9UVVBMRQotLy8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OnRyMTo6dHVwbGVzLgotCi0vLyBU
dXBsZXMgb2YgdmFyaW91cyBhcml0aWVzLgotVEVTVChQcmludFRyMVR1cGxlVGVzdCwgVmFyaW91
c1NpemVzKSB7Ci0gIDo6c3RkOjp0cjE6OnR1cGxlPD4gdDA7Ci0gIEVYUEVDVF9FUSgiKCkiLCBQ
cmludCh0MCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGludD4gdDEoNSk7Ci0gIEVYUEVDVF9F
USgiKDUpIiwgUHJpbnQodDEpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxjaGFyLCBib29sPiB0
MignYScsIHRydWUpOwotICBFWFBFQ1RfRVEoIignYScgKDk3LCAweDYxKSwgdHJ1ZSkiLCBQcmlu
dCh0MikpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50PiB0MyhmYWxzZSwg
MiwgMyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzKSIsIFByaW50KHQzKSk7Ci0KLSAgOjpz
dGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludD4gdDQoZmFsc2UsIDIsIDMsIDQpOwot
ICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCkiLCBQcmludCh0NCkpOwotCi0gIDo6c3RkOjp0
cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2w+IHQ1KGZhbHNlLCAyLCAzLCA0LCB0
cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUpIiwgUHJpbnQodDUpKTsK
LQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQ+IHQ2
KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQs
IGludCwgaW50LCBib29sLCBpbnQsIGludD4gdDcoCi0gICAgICBmYWxzZSwgMiwgMywgNCwgdHJ1
ZSwgNiwgNyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3KSIsIFBy
aW50KHQ3KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9v
bCwgaW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcs
IHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSki
LCBQcmludCh0OCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQs
IGJvb2wsIGludCwgaW50LCBib29sLCBpbnQ+IHQ5KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRy
dWUsIDYsIDcsIHRydWUsIDkpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwg
NiwgNywgdHJ1ZSwgOSkiLCBQcmludCh0OSkpOwotCi0gIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9
ICI4IjsKLSAgLy8gVkMrKyAyMDEwJ3MgaW1wbGVtZW50YXRpb24gb2YgdHVwbGUgb2YgQysrMHgg
aXMgZGVmaWNpZW50LCByZXF1aXJpbmcKLSAgLy8gYW4gZXhwbGljaXQgdHlwZSBjYXN0IG9mIE5V
TEwgdG8gYmUgdXNlZC4KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgY2hhciwgc2hvcnQsIHRl
c3Rpbmc6OmludGVybmFsOjpJbnQzMiwgIC8vIE5PTElOVAotICAgICAgICAgICAgICAgICAgICB0
ZXN0aW5nOjppbnRlcm5hbDo6SW50NjQsIGZsb2F0LCBkb3VibGUsIGNvbnN0IGNoYXIqLCB2b2lk
KiwKLSAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc+Ci0gICAgICB0MTAoZmFsc2UsICdh
Jywgc3RhdGljX2Nhc3Q8c2hvcnQ+KDMpLCA0LCA1LCAxLjVGLCAtMi41LCBzdHIsICAvLyBOT0xJ
TlQKLSAgICAgICAgICBJbXBsaWNpdENhc3RfPHZvaWQqPihOVUxMKSwgIjEwIik7Ci0gIEVYUEVD
VF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywgNCwgNSwgMS41LCAtMi41LCAiICsgUHJp
bnRQb2ludGVyKHN0cikgKwotICAgICAgICAgICAgIiBwb2ludGluZyB0byBcIjhcIiwgTlVMTCwg
XCIxMFwiKSIsCi0gICAgICAgICAgICBQcmludCh0MTApKTsKLX0KLQotLy8gTmVzdGVkIHR1cGxl
cy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIE5lc3RlZFR1cGxlKSB7Ci0gIDo6c3RkOjp0cjE6
OnR1cGxlPCA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQsIGJvb2w+LCBjaGFyPiBuZXN0ZWQoCi0gICAg
ICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDUsIHRydWUpLCAnYScpOwotICBFWFBFQ1RfRVEoIigo
NSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50KG5lc3RlZCkpOwotfQotCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCiAvLyBU
ZXN0cyBwcmludGluZyA6OnN0ZDo6dHVwbGVzLgogCiAvLyBUdXBsZXMgb2YgdmFyaW91cyBhcml0
aWVzLgpAQCAtMTA3MSwzMiArMTIwOSwxMSBAQCBURVNUKFByaW50U3RkVHVwbGVUZXN0LCBWYXJp
b3VzU2l6ZXMpIHsKICAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQ+IHQ0KGZhbHNl
LCAyLCAzLCA0KTsKICAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQpIiwgUHJpbnQodDQpKTsK
IAotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbD4gdDUoZmFsc2UsIDIs
IDMsIDQsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSkiLCBQcmlu
dCh0NSkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQ+
IHQ2KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMs
IDQsIHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBp
bnQsIGludCwgYm9vbCwgaW50LCBpbnQ+IHQ3KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUs
IDYsIDcpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNykiLCBQcmlu
dCh0NykpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQs
IGludCwgYm9vbD4gdDgoCi0gICAgICBmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSk7
Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3LCB0cnVlKSIsIFByaW50
KHQ4KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwg
aW50LCBib29sLCBpbnQ+IHQ5KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRy
dWUsIDkpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSwg
OSkiLCBQcmludCh0OSkpOwotCiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9ICI4IjsKLSAgLy8g
VkMrKyAyMDEwJ3MgaW1wbGVtZW50YXRpb24gb2YgdHVwbGUgb2YgQysrMHggaXMgZGVmaWNpZW50
LCByZXF1aXJpbmcKLSAgLy8gYW4gZXhwbGljaXQgdHlwZSBjYXN0IG9mIE5VTEwgdG8gYmUgdXNl
ZC4KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGNoYXIsIHNob3J0LCB0ZXN0aW5nOjppbnRlcm5hbDo6
SW50MzIsICAvLyBOT0xJTlQKLSAgICAgICAgICAgICAgIHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2
NCwgZmxvYXQsIGRvdWJsZSwgY29uc3QgY2hhciosIHZvaWQqLAotICAgICAgICAgICAgICAgc3Rk
OjpzdHJpbmc+CisgIDo6c3RkOjp0dXBsZTxib29sLCBjaGFyLCBzaG9ydCwgaW50MzJfdCwgaW50
NjRfdCwgZmxvYXQsIGRvdWJsZSwgIC8vIE5PTElOVAorICAgICAgICAgICAgICAgY29uc3QgY2hh
ciosIHZvaWQqLCBzdGQ6OnN0cmluZz4KICAgICAgIHQxMChmYWxzZSwgJ2EnLCBzdGF0aWNfY2Fz
dDxzaG9ydD4oMyksIDQsIDUsIDEuNUYsIC0yLjUsIHN0ciwgIC8vIE5PTElOVAotICAgICAgICAg
IEltcGxpY2l0Q2FzdF88dm9pZCo+KE5VTEwpLCAiMTAiKTsKKyAgICAgICAgICBudWxscHRyLCAi
MTAiKTsKICAgRVhQRUNUX0VRKCIoZmFsc2UsICdhJyAoOTcsIDB4NjEpLCAzLCA0LCA1LCAxLjUs
IC0yLjUsICIgKyBQcmludFBvaW50ZXIoc3RyKSArCiAgICAgICAgICAgICAiIHBvaW50aW5nIHRv
IFwiOFwiLCBOVUxMLCBcIjEwXCIpIiwKICAgICAgICAgICAgIFByaW50KHQxMCkpOwpAQCAtMTEw
OSwxMyArMTIyNiwyNyBAQCBURVNUKFByaW50U3RkVHVwbGVUZXN0LCBOZXN0ZWRUdXBsZSkgewog
ICBFWFBFQ1RfRVEoIigoNSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50KG5lc3RlZCkp
OwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKLQotI2lmIEdURVNUX0xBTkdfQ1hY
MTEKIFRFU1QoUHJpbnROdWxscHRyVCwgQmFzaWMpIHsKICAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludChudWxscHRyKSk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKKworVEVT
VChQcmludFJlZmVyZW5jZVdyYXBwZXIsIFByaW50YWJsZSkgeworICBpbnQgeCA9IDU7CisgIEVY
UEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJngpICsgIiA1IiwgUHJpbnQoc3RkOjpyZWYoeCkp
KTsKKyAgRVhQRUNUX0VRKCJAIiArIFByaW50UG9pbnRlcigmeCkgKyAiIDUiLCBQcmludChzdGQ6
OmNyZWYoeCkpKTsKK30KKworVEVTVChQcmludFJlZmVyZW5jZVdyYXBwZXIsIFVucHJpbnRhYmxl
KSB7CisgIDo6Zm9vOjpVbnByaW50YWJsZUluRm9vIHVwOworICBFWFBFQ1RfRVEoCisgICAgICAi
QCIgKyBQcmludFBvaW50ZXIoJnVwKSArCisgICAgICAgICAgIiAxNi1ieXRlIG9iamVjdCA8RUYt
MTIgMDAtMDAgMzQtQUIgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDA+IiwKKyAgICAgIFBy
aW50KHN0ZDo6cmVmKHVwKSkpOworICBFWFBFQ1RfRVEoCisgICAgICAiQCIgKyBQcmludFBvaW50
ZXIoJnVwKSArCisgICAgICAgICAgIiAxNi1ieXRlIG9iamVjdCA8RUYtMTIgMDAtMDAgMzQtQUIg
MDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDA+IiwKKyAgICAgIFByaW50KHN0ZDo6Y3JlZih1
cCkpKTsKK30KIAogLy8gVGVzdHMgcHJpbnRpbmcgdXNlci1kZWZpbmVkIHVucHJpbnRhYmxlIHR5
cGVzLgogCkBAIC0xMTY0LDYgKzEyOTUsMjAgQEAgVEVTVChQcmludFN0cmVhbWFibGVUeXBlVGVz
dCwgVGVtcGxhdGVUeXBlSW5Vc2VyTmFtZXNwYWNlKSB7CiAgICAgICAgICAgICBQcmludCg6OmZv
bzo6U3RyZWFtYWJsZVRlbXBsYXRlSW5Gb288aW50PigpKSk7CiB9CiAKK1RFU1QoUHJpbnRTdHJl
YW1hYmxlVHlwZVRlc3QsIFR5cGVJblVzZXJOYW1lc3BhY2VXaXRoVGVtcGxhdGVkU3RyZWFtT3Bl
cmF0b3IpIHsKKyAgRVhQRUNUX0VRKCJUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28iLAorICAgICAg
ICAgICAgUHJpbnQoOjpmb286OlRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbygpKSk7Cit9CisKK1RF
U1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3QsIFN1YmNsYXNzVXNlc1N1cGVyY2xhc3NTdHJlYW1P
cGVyYXRvcikgeworICBQYXJlbnRDbGFzcyBwYXJlbnQ7CisgIENoaWxkQ2xhc3NXaXRoU3RyZWFt
T3BlcmF0b3IgY2hpbGRfc3RyZWFtOworICBDaGlsZENsYXNzV2l0aG91dFN0cmVhbU9wZXJhdG9y
IGNoaWxkX25vX3N0cmVhbTsKKyAgRVhQRUNUX0VRKCJQYXJlbnRDbGFzcyIsIFByaW50KHBhcmVu
dCkpOworICBFWFBFQ1RfRVEoIkNoaWxkQ2xhc3NXaXRoU3RyZWFtT3BlcmF0b3IiLCBQcmludChj
aGlsZF9zdHJlYW0pKTsKKyAgRVhQRUNUX0VRKCJQYXJlbnRDbGFzcyIsIFByaW50KGNoaWxkX25v
X3N0cmVhbSkpOworfQorCiAvLyBUZXN0cyBwcmludGluZyBhIHVzZXItZGVmaW5lZCByZWN1cnNp
dmUgY29udGFpbmVyIHR5cGUgdGhhdCBoYXMgYSA8PAogLy8gb3BlcmF0b3IuCiBURVNUKFByaW50
U3RyZWFtYWJsZVR5cGVUZXN0LCBQYXRoTGlrZUluVXNlck5hbWVzcGFjZSkgewpAQCAtMTMyMSwy
MSArMTQ2Niw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwg
V29ya3NGb3JXQ2hhclBvaW50ZXJWc1BvaW50ZXIpIHsKIC8vIFRlc3RzIGZvcm1hdHRpbmcgYSBj
aGFyIHBvaW50ZXIgd2hlbiBpdCdzIGNvbXBhcmVkIHRvIGEgc3RyaW5nIG9iamVjdC4KIC8vIElu
IHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IHRoZSBjaGFyIHBvaW50ZXIgYXMgYSBDIHN0cmlu
Zy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBjaGFyIHBvaW50ZXIgdnMgOjpz
dHJpbmcKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NG
b3JDaGFyUG9pbnRlclZzU3RyaW5nKSB7Ci0gIGNvbnN0IGNoYXIqIHMgPSAiaGVsbG8gXCJ3b3Js
ZCI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoZWxsbyBcXFwid29ybGRcIiIsICAvLyBUaGUgc3RyaW5n
IGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjpzdHJpbmcoKSkuY19zdHIoKSk7Ci0KLSAgLy8gY2hh
cioKLSAgY2hhciBzdHJbXSA9ICJoaVwxIjsKLSAgY2hhciogcCA9IHN0cjsKLSAgRVhQRUNUX1NU
UkVRKCJcImhpXFx4MVwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBl
ZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6
OnN0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCiAvLyBjaGFyIHBvaW50ZXIgdnMgc3Rk
OjpzdHJpbmcKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29y
a3NGb3JDaGFyUG9pbnRlclZzU3RkU3RyaW5nKSB7CiAgIGNvbnN0IGNoYXIqIHMgPSAiaGVsbG8g
XCJ3b3JsZCI7CkBAIC0xMzQ5LDIxICsxNDc5LDYgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29u
RmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJQb2ludGVyVnNTdGRTdHJpbmcpIHsKICAg
ICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OnN0ZDo6
c3RyaW5nKCkpLmNfc3RyKCkpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0v
LyB3Y2hhcl90IHBvaW50ZXIgdnMgOjp3c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNXU3RyaW5nKSB7Ci0gIGNv
bnN0IHdjaGFyX3QqIHMgPSBMImhpIFwid29ybGQiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxc
XCJ3b3JsZFwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAg
ICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzLCA6OndzdHJp
bmcoKSkuY19zdHIoKSk7Ci0KLSAgLy8gd2NoYXJfdCoKLSAgd2NoYXJfdCBzdHJbXSA9IEwiaGlc
MSI7Ci0gIHdjaGFyX3QqIHAgPSBzdHI7Ci0gIEVYUEVDVF9TVFJFUSgiTFwiaGlcXHgxXCIiLCAg
Ly8gVGhlIHN0cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAg
Rm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHAsIDo6d3N0cmluZygpKS5jX3N0cigp
KTsKLX0KLSNlbmRpZgotCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyB3Y2hhcl90IHBv
aW50ZXIgdnMgc3RkOjp3c3RyaW5nCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVz
c2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNTdGRXU3RyaW5nKSB7CkBAIC0xMzg2LDcg
KzE1MDEsNyBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdv
cmtzRm9yV0NoYXJQb2ludGVyVnNTdGRXU3RyaW5nKSB7CiAvLyBjaGFyIGFycmF5IHZzIHBvaW50
ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JD
aGFyQXJyYXlWc1BvaW50ZXIpIHsKICAgY2hhciBzdHJbXSA9ICJoaSBcIndvcmxkXCIiOwotICBj
aGFyKiBwID0gTlVMTDsKKyAgY2hhciogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIoc3RyKSwKICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2Fn
ZShzdHIsIHApLmNfc3RyKCkpOwogfQpAQCAtMTQwMSw3ICsxNTE2LDcgQEAgVEVTVChGb3JtYXRG
b3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVZzQ2hhckFy
cmF5KSB7CiAvLyB3Y2hhcl90IGFycmF5IHZzIHBvaW50ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNQb2ludGVyKSB7CiAg
IHdjaGFyX3Qgc3RyW10gPSBMImhpIFwid29ybGRcIiI7Ci0gIHdjaGFyX3QqIHAgPSBOVUxMOwor
ICB3Y2hhcl90KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihzdHIpLAog
ICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgcCkuY19z
dHIoKSk7CiB9CkBAIC0xNDE2LDE2ICsxNTMxLDYgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29u
RmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyQXJyYXlWc1dDaGFyQXJyYXkpIHsKIC8v
IFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIGFycmF5IHdoZW4gaXQncyBjb21wYXJlZCB3aXRoIGEg
c3RyaW5nIG9iamVjdC4KIC8vIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IHRoZSBhcnJh
eSBhcyBhIEMgc3RyaW5nLgogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLS8vIGNoYXIg
YXJyYXkgdnMgc3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRl
c3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdHJpbmcpIHsKLSAgY29uc3QgY2hhciBzdHJbXSA9ICJo
aSBcIndcMHJsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJcImhpIFxcXCJ3XCIiLCAgLy8gVGhlIGNv
bnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEVtYmVkZGVkIE5VTCB0ZXJtaW5hdGVzIHRoZSBzdHJpbmcuCi0gICAgICAgICAgICAgICBG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uoc3RyLCA6OnN0cmluZygpKS5jX3N0cigp
KTsKLX0KLSNlbmRpZgotCiAvLyBjaGFyIGFycmF5IHZzIHN0ZDo6c3RyaW5nCiBURVNUKEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdGRT
dHJpbmcpIHsKICAgY29uc3QgY2hhciBzdHJbXSA9ICJoaSBcIndvcmxkXCIiOwpAQCAtMTQzMywx
NSArMTUzOCw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwg
V29ya3NGb3JDaGFyQXJyYXlWc1N0ZFN0cmluZykgewogICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpzdGQ6OnN0cmluZygpKS5jX3N0cigpKTsK
IH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotLy8gd2NoYXJfdCBhcnJheSB2cyB3
c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtz
Rm9yV0NoYXJBcnJheVZzV1N0cmluZykgewotICBjb25zdCB3Y2hhcl90IHN0cltdID0gTCJoaSBc
IndvcmxkXCIiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxcXCJ3b3JsZFxcXCJcIiIsICAvLyBU
aGUgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6d3N0cmluZygpKS5jX3N0cigpKTsKLX0KLSNl
bmRpZgotCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyB3Y2hhcl90IGFycmF5IHZzIHN0
ZDo6d3N0cmluZwogVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBX
b3Jrc0ZvcldDaGFyQXJyYXlWc1N0ZFdTdHJpbmcpIHsKQEAgLTE1MTYsNiArMTYxMiw2MSBAQCBU
RVNUKFByaW50VG9TdHJpbmdUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVdpdGhFbWJlZGRlZE51bCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4gICAgQXMgVGV4dDogXCJGcm9tIMOkIOKA
lCDhupFcIiIpOwogfQogCisjaWYgR1RFU1RfSEFTX1JUVEkKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PgorY2xhc3MgUHJpbnRUb1N0cmluZ1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CisgcHVi
bGljOgorICB1c2luZyBUZXN0VHlwZSA9IFQ7Cit9OworCitzdHJ1Y3QgUHJpbnRCYXNlIHsKKyAg
dmlydHVhbCB+UHJpbnRCYXNlKCkgPSBkZWZhdWx0OworfTsKK3N0cnVjdCBQcmludERlcml2ZWQg
OiBQcmludEJhc2Uge307CisKK3VzaW5nIFByaW50VG9TdHJpbmdUZXN0VHlwZXMgPQorICAgIHRl
c3Rpbmc6OlR5cGVzPHZvaWQsIGludCwgY29uc3Qgdm9sYXRpbGUgaW50KiwgUHJpbnRCYXNlLCBQ
cmludERlcml2ZWQ+OworVFlQRURfVEVTVF9TVUlURShQcmludFRvU3RyaW5nVGVzdCwgUHJpbnRU
b1N0cmluZ1Rlc3RUeXBlcyk7CisKKy8vIFJldHVybnMgYHRydWVgIGlmIGBoYXlzdGFja2AgY29u
dGFpbnMgYG5lZWRsZWAuCisvLworLy8gRklYTUU6IFJlcGxhY2Ugd2l0aCBgRVhQRUNUX1RIQVQo
aGF5c3RhY2ssIEhhc1N1YnN0cihuZWVkbGUpKWAgb25jZQorLy8gR29vZ2xlVGVzdCBzdGFydHMg
ZGVwZW5kaW5nIG9uIEdvb2dsZU1vY2suCitib29sIENvbnRhaW5zU3Vic3RyKGNvbnN0IHN0ZDo6
c3RyaW5nJiBoYXlzdGFjaywgY29uc3Qgc3RkOjpzdHJpbmcmIG5lZWRsZSkgeworICByZXR1cm4g
aGF5c3RhY2suZmluZChuZWVkbGUpICE9IHN0ZDo6c3RyaW5nOjpucG9zOworfQorCitUWVBFRF9U
RVNUKFByaW50VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05hbWVXaXRoVHlwZUluZm9BbmRUeXBlSW5k
ZXgpIHsKKyAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgaW5mbyA9IHR5cGVpZCh0eXBlbmFtZSBU
ZXN0Rml4dHVyZTo6VGVzdFR5cGUpOworICBTQ09QRURfVFJBQ0UoaW5mby5uYW1lKCkpOworICBF
WFBFQ1RfVFJVRShDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGluZm8pLCBpbmZvLm5hbWUo
KSkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIENvbnRhaW5zU3Vic3RyKFByaW50VG9TdHJpbmco
OjpzdGQ6OnR5cGVfaW5kZXh7aW5mb30pLCBpbmZvLm5hbWUoKSkpOworfQorCitURVNUKFByaW50
VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05hbWVXaXRoVHlwZUluZm9BbmRUeXBlSW5kZXhWaWFCYXNl
UmVmKSB7CisgIFByaW50RGVyaXZlZCBkZXJpdmVkOworICBQcmludEJhc2UmIGJhc2UgPSBkZXJp
dmVkOworCisgIHsKKyAgICBjb25zdCA6OnN0ZDo6dHlwZV9pbmZvJiBkZXJpdmVkX2luZm8gPSB0
eXBlaWQoZGVyaXZlZCk7CisgICAgU0NPUEVEX1RSQUNFKGRlcml2ZWRfaW5mby5uYW1lKCkpOwor
ICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGRl
cml2ZWRfaW5mbyksIGRlcml2ZWRfaW5mby5uYW1lKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShDb250
YWluc1N1YnN0cihQcmludFRvU3RyaW5nKDo6c3RkOjp0eXBlX2luZGV4e2Rlcml2ZWRfaW5mb30p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2ZWRfaW5mby5uYW1lKCkpKTsK
KyAgfQorICB7CisgICAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgYmFzZV9yZWZfaW5mbyA9IHR5
cGVpZChiYXNlKTsKKyAgICBTQ09QRURfVFJBQ0UoYmFzZV9yZWZfaW5mby5uYW1lKCkpOworICAg
IEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKGJhc2Vf
cmVmX2luZm8pLCBiYXNlX3JlZl9pbmZvLm5hbWUoKSkpOworICAgIEVYUEVDVF9UUlVFKENvbnRh
aW5zU3Vic3RyKFByaW50VG9TdHJpbmcoOjpzdGQ6OnR5cGVfaW5kZXh7YmFzZV9yZWZfaW5mb30p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfcmVmX2luZm8ubmFtZSgpKSk7
CisgIH0KK30KKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKKwogVEVTVChJc1ZhbGlkVVRGOFRl
c3QsIElsbEZvcm1lZFVURjgpIHsKICAgLy8gVGhlIGZvbGxvd2luZyB0ZXN0IHN0cmluZ3MgYXJl
IGlsbC1mb3JtZWQgVVRGLTggYW5kIGFyZSBwcmludGVkCiAgIC8vIGFzIGhleCBvbmx5IChvciBB
U0NJSSwgaW4gY2FzZSBvZiBBU0NJSSBieXRlcykgYmVjYXVzZSBJc1ZhbGlkVVRGOCgpIGlzCkBA
IC0xNjAyLDcgKzE3NTMsNyBAQCBURVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUZXN0LCBXb3Jrc0Zv
ckNTdHJpbmcpIHsKICAgVW5pdmVyc2FsVGVyc2VQcmludChzMiwgJnNzMik7CiAgIEVYUEVDVF9F
USgiXCJhYmNcIiIsIHNzMi5zdHIoKSk7CiAKLSAgY29uc3QgY2hhciogczMgPSBOVUxMOworICBj
b25zdCBjaGFyKiBzMyA9IG51bGxwdHI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3MzOwogICBV
bml2ZXJzYWxUZXJzZVByaW50KHMzLCAmc3MzKTsKICAgRVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0
cigpKTsKQEAgLTE2MjEsNiArMTc3MiwxMyBAQCBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29y
a3NGb3JSZWZlcmVuY2UpIHsKICAgRVhQRUNUX0VRKCIxMjMiLCBzcy5zdHIoKSk7CiB9CiAKK1RF
U1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvclBhaXJXaXRoQ29uc3QpIHsKKyAgc3RkOjpw
YWlyPGNvbnN0IFdyYXBwZXI8c3RkOjpzdHJpbmc+LCBpbnQ+IHAoV3JhcHBlcjxzdGQ6OnN0cmlu
Zz4oImFiYyIpLCAxKTsKKyAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgVW5pdmVyc2FsUHJp
bnQocCwgJnNzKTsKKyAgRVhQRUNUX0VRKCIoV3JhcHBlcihcImFiY1wiKSwgMSkiLCBzcy5zdHIo
KSk7Cit9CisKIFRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNTdHJpbmcpIHsKICAg
Y29uc3QgY2hhciogczEgPSAiYWJjIjsKICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczE7CkBAIC0x
NjMyLDcgKzE3OTAsNyBAQCBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JDU3RyaW5n
KSB7CiAgIFVuaXZlcnNhbFByaW50KHMyLCAmc3MyKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRl
cihzMikgKyAiIHBvaW50aW5nIHRvIFwiYWJjXCIiLCBzdGQ6OnN0cmluZyhzczIuc3RyKCkpKTsK
IAotICBjb25zdCBjaGFyKiBzMyA9IE5VTEw7CisgIGNvbnN0IGNoYXIqIHMzID0gbnVsbHB0cjsK
ICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczM7CiAgIFVuaXZlcnNhbFByaW50KHMzLCAmc3MzKTsK
ICAgRVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0cigpKTsKQEAgLTE2NTAsNDIgKzE4MDgsNjMgQEAg
VEVTVChVbml2ZXJzYWxQcmludFRlc3QsIFdvcmtzRm9yQ2hhckFycmF5KSB7CiAgIEVYUEVDVF9F
USgiXCJcXFwiTGluZVxcMCAxXFxcIlxcbkxpbmUgMlwiIiwgc3MyLnN0cigpKTsKIH0KIAotI2lm
IEdURVNUX0hBU19UUjFfVFVQTEUKLQotVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVs
ZHNUb1N0cmluZ3NUZXN0V2l0aFRyMSwgUHJpbnRzRW1wdHlUdXBsZSkgewotICBTdHJpbmdzIHJl
c3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6
c3RkOjp0cjE6Om1ha2VfdHVwbGUoKSk7Ci0gIEVYUEVDVF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7
Ci19Ci0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdp
dGhUcjEsIFByaW50c09uZVR1cGxlKSB7Ci0gIFN0cmluZ3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVy
c2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzKAotICAgICAgOjpzdGQ6OnRyMTo6bWFrZV90dXBs
ZSgxKSk7Ci0gIEFTU0VSVF9FUSgxdSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIs
IHJlc3VsdFswXSk7Ci19CitURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgSW5jb21wbGV0ZVR5cGUp
IHsKKyAgc3RydWN0IEluY29tcGxldGU7CisgIGNoYXIgc29tZV9vYmplY3QgPSAwOworICBFWFBF
Q1RfRVEoIihpbmNvbXBsZXRlIHR5cGUpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxJbmNvbXBsZXRlJj4oc29tZV9vYmplY3QpKSk7Cit9CisKK1RFU1QoVW5p
dmVyc2FsUHJpbnRUZXN0LCBTbWFydFBvaW50ZXJzKSB7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIp
IiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8aW50PigpKSk7CisgIHN0ZDo6dW5pcXVl
X3B0cjxpbnQ+IHAobmV3IGludCgxNykpOworICBFWFBFQ1RfRVEoIihwdHIgPSAiICsgUHJpbnRQ
b2ludGVyKHAuZ2V0KCkpICsgIiwgdmFsdWUgPSAxNykiLAorICAgICAgICAgICAgUHJpbnRUb1N0
cmluZyhwKSk7CisgIHN0ZDo6dW5pcXVlX3B0cjxpbnRbXT4gcDIobmV3IGludFsyXSk7CisgIEVY
UEVDVF9FUSgiKCIgKyBQcmludFBvaW50ZXIocDIuZ2V0KCkpICsgIikiLCBQcmludFRvU3RyaW5n
KHAyKSk7CisKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjxpbnQ+KCkpKTsKKyAgc3RkOjpzaGFyZWRfcHRyPGludD4gcDMobmV3IGludCgxOTc5
KSk7CisgIEVYUEVDVF9FUSgiKHB0ciA9ICIgKyBQcmludFBvaW50ZXIocDMuZ2V0KCkpICsgIiwg
dmFsdWUgPSAxOTc5KSIsCisgICAgICAgICAgICBQcmludFRvU3RyaW5nKHAzKSk7CisjaWYgX19j
cHBfbGliX3NoYXJlZF9wdHJfYXJyYXlzID49IDIwMTYxMUwKKyAgc3RkOjpzaGFyZWRfcHRyPGlu
dFtdPiBwNChuZXcgaW50WzJdKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9pbnRlcihwNC5n
ZXQoKSkgKyAiKSIsIFByaW50VG9TdHJpbmcocDQpKTsKKyNlbmRpZgogCi1URVNUKFVuaXZlcnNh
bFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUd29UdXBs
ZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1Rv
U3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2VfdHVwbGUoMSwgJ2EnKSk7Ci0gIEFTU0VS
VF9FUSgydSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0g
IEVYUEVDVF9FUSgiJ2EnICg5NywgMHg2MSkiLCByZXN1bHRbMV0pOwotfQorICAvLyBtb2RpZmll
cnMKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjxpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjxjb25zdCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2xhdGlsZSBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VR
KCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2xhdGlsZSBjb25z
dCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjxpbnRbXT4oKSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9T
dHJpbmcoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51
bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgaW50W10+KCkp
KTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhz
dGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgY29uc3QgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIo
bnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxpbnQ+KCkpKTsKKyAgRVhQ
RUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxjb25zdCBp
bnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjx2b2xhdGlsZSBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBjb25zdCBpbnQ+KCkpKTsKKyNpZiBf
X2NwcF9saWJfc2hhcmVkX3B0cl9hcnJheXMgPj0gMjAxNjExTAorICBFWFBFQ1RfRVEoIihudWxs
cHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRfcHRyPGludFtdPigpKSk7CisgIEVYUEVD
VF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8Y29uc3QgaW50
W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjx2b2xhdGlsZSBpbnRbXT4oKSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsCisg
ICAgICAgICAgICBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBjb25zdCBp
bnRbXT4oKSkpOworI2VuZGlmCiAKLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRz
VG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c1RlcnNlbHkpIHsKLSAgY29uc3QgaW50IG4gPSAx
OwotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3Ry
aW5ncygKLSAgICAgIDo6c3RkOjp0cjE6OnR1cGxlPGNvbnN0IGludCYsIGNvbnN0IGNoYXIqPihu
LCAiYSIpKTsKLSAgQVNTRVJUX0VRKDJ1LCByZXN1bHQuc2l6ZSgpKTsKLSAgRVhQRUNUX0VRKCIx
IiwgcmVzdWx0WzBdKTsKLSAgRVhQRUNUX0VRKCJcImFcIiIsIHJlc3VsdFsxXSk7CisgIC8vIHZv
aWQKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjx2b2lkLCB2b2lkICgqKSh2b2lkKik+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dWxscHRyLCBudWxscHRyKSkpOworICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAuZ2V0
KCkpICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZygKKyAgICAgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8dm9pZCwgdm9pZCAoKikodm9pZCopPihwLmdldCgpLCBbXSh2b2lkKikg
e30pKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJl
ZF9wdHI8dm9pZD4oKSkpOworICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAuZ2V0KCkp
ICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9pZD4o
cC5nZXQoKSwgW10odm9pZCopIHt9KSkpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFf
VFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCi0KIFRFU1QoVW5pdmVyc2FsVGVyc2VQ
cmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhTdGQsIFByaW50c0VtcHR5VHVwbGUpIHsK
ICAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmlu
Z3MoOjpzdGQ6Om1ha2VfdHVwbGUoKSk7CiAgIEVYUEVDVF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7
CkBAIC0xNzE1LDM0ICsxODk0LDEyNCBAQCBURVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZp
ZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQcmludHNUZXJzZWx5KSB7CiAgIEVYUEVDVF9FUSgi
XCJhXCIiLCByZXN1bHRbMV0pOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19TVERfVFVQTEVf
CisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorY2xhc3MgUHJpbnRBbnlUZXN0IDogcHVibGlj
IDo6dGVzdGluZzo6VGVzdCB7CisgcHJvdGVjdGVkOgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
KyAgc3RhdGljIHN0ZDo6c3RyaW5nIEV4cGVjdGVkVHlwZU5hbWUoKSB7CisjaWYgR1RFU1RfSEFT
X1JUVEkKKyAgICByZXR1cm4gaW50ZXJuYWw6OkdldFR5cGVOYW1lPFQ+KCk7CisjZWxzZQorICAg
IHJldHVybiAiPHVua25vd25fdHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorICB9
Cit9OworCitURVNUX0YoUHJpbnRBbnlUZXN0LCBFbXB0eSkgeworICBpbnRlcm5hbDo6QW55IGFu
eTsKKyAgRVhQRUNUX0VRKCJubyB2YWx1ZSIsIFByaW50VG9TdHJpbmcoYW55KSk7Cit9CisKK1RF
U1RfRihQcmludEFueVRlc3QsIE5vbkVtcHR5KSB7CisgIGludGVybmFsOjpBbnkgYW55OworICBj
b25zdGV4cHIgaW50IHZhbDEgPSAxMDsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgdmFsMiA9ICJjb250
ZW50IjsKKworICBhbnkgPSB2YWwxOworICBFWFBFQ1RfRVEoInZhbHVlIG9mIHR5cGUgIiArIEV4
cGVjdGVkVHlwZU5hbWU8aW50PigpLCBQcmludFRvU3RyaW5nKGFueSkpOwogCi0jaWYgR1RFU1Rf
SEFTX0FCU0wKKyAgYW55ID0gdmFsMjsKKyAgRVhQRUNUX0VRKCJ2YWx1ZSBvZiB0eXBlICIgKyBF
eHBlY3RlZFR5cGVOYW1lPHN0ZDo6c3RyaW5nPigpLAorICAgICAgICAgICAgUHJpbnRUb1N0cmlu
ZyhhbnkpKTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX0FOWQogCisjaWYgR1RF
U1RfSU5URVJOQUxfSEFTX09QVElPTkFMCiBURVNUKFByaW50T3B0aW9uYWxUZXN0LCBCYXNpYykg
ewotICBhYnNsOjpvcHRpb25hbDxpbnQ+IHZhbHVlOworICBpbnRlcm5hbDo6T3B0aW9uYWw8aW50
PiB2YWx1ZTsKICAgRVhQRUNUX0VRKCIobnVsbG9wdCkiLCBQcmludFRvU3RyaW5nKHZhbHVlKSk7
CiAgIHZhbHVlID0gezd9OwogICBFWFBFQ1RfRVEoIig3KSIsIFByaW50VG9TdHJpbmcodmFsdWUp
KTsKLSAgRVhQRUNUX0VRKCIoMS4xKSIsIFByaW50VG9TdHJpbmcoYWJzbDo6b3B0aW9uYWw8ZG91
YmxlPnsxLjF9KSk7Ci0gIEVYUEVDVF9FUSgiKFwiQVwiKSIsIFByaW50VG9TdHJpbmcoYWJzbDo6
b3B0aW9uYWw8c3RkOjpzdHJpbmc+eyJBIn0pKTsKKyAgRVhQRUNUX0VRKCIoMS4xKSIsIFByaW50
VG9TdHJpbmcoaW50ZXJuYWw6Ok9wdGlvbmFsPGRvdWJsZT57MS4xfSkpOworICBFWFBFQ1RfRVEo
IihcIkFcIikiLCBQcmludFRvU3RyaW5nKGludGVybmFsOjpPcHRpb25hbDxzdGQ6OnN0cmluZz57
IkEifSkpOwogfQorI2VuZGlmICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwKIAorI2lm
IEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UCiBzdHJ1Y3QgTm9uUHJpbnRhYmxlIHsKICAgdW5z
aWduZWQgY2hhciBjb250ZW50cyA9IDE3OwogfTsKIAogVEVTVChQcmludE9uZW9mVGVzdCwgQmFz
aWMpIHsKLSAgdXNpbmcgVHlwZSA9IGFic2w6OnZhcmlhbnQ8aW50LCBTdHJlYW1hYmxlSW5HbG9i
YWwsIE5vblByaW50YWJsZT47Ci0gIEVYUEVDVF9FUSgiKCdpbnQnIHdpdGggdmFsdWUgNykiLCBQ
cmludFRvU3RyaW5nKFR5cGUoNykpKTsKLSAgRVhQRUNUX0VRKCIoJ1N0cmVhbWFibGVJbkdsb2Jh
bCcgd2l0aCB2YWx1ZSBTdHJlYW1hYmxlSW5HbG9iYWwpIiwKKyAgdXNpbmcgVHlwZSA9IGludGVy
bmFsOjpWYXJpYW50PGludCwgU3RyZWFtYWJsZUluR2xvYmFsLCBOb25QcmludGFibGU+OworICBF
WFBFQ1RfRVEoIignaW50KGluZGV4ID0gMCknIHdpdGggdmFsdWUgNykiLCBQcmludFRvU3RyaW5n
KFR5cGUoNykpKTsKKyAgRVhQRUNUX0VRKCIoJ1N0cmVhbWFibGVJbkdsb2JhbChpbmRleCA9IDEp
JyB3aXRoIHZhbHVlIFN0cmVhbWFibGVJbkdsb2JhbCkiLAogICAgICAgICAgICAgUHJpbnRUb1N0
cmluZyhUeXBlKFN0cmVhbWFibGVJbkdsb2JhbHt9KSkpOwogICBFWFBFQ1RfRVEoCi0gICAgICAi
KCd0ZXN0aW5nOjpndGVzdF9wcmludGVyc190ZXN0OjpOb25QcmludGFibGUnIHdpdGggdmFsdWUg
MS1ieXRlIG9iamVjdCAiCi0gICAgICAiPDExPikiLAorICAgICAgIigndGVzdGluZzo6Z3Rlc3Rf
cHJpbnRlcnNfdGVzdDo6Tm9uUHJpbnRhYmxlKGluZGV4ID0gMiknIHdpdGggdmFsdWUgIgorICAg
ICAgIjEtYnl0ZSBvYmplY3QgPDExPikiLAogICAgICAgUHJpbnRUb1N0cmluZyhUeXBlKE5vblBy
aW50YWJsZXt9KSkpOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2VuZGlmICAvLyBH
VEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAorbmFtZXNwYWNlIHsKK2NsYXNzIHN0cmluZ19yZWY7
CisKKy8qKgorICogVGhpcyBpcyBhIHN5bnRoZXRpYyBwb2ludGVyIHRvIGEgZml4ZWQgc2l6ZSBz
dHJpbmcuCisgKi8KK2NsYXNzIHN0cmluZ19wdHIgeworIHB1YmxpYzoKKyAgc3RyaW5nX3B0cihj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkgOiBkYXRhXyhkYXRhKSwgc2l6ZV8oc2l6ZSkg
e30KKworICBzdHJpbmdfcHRyJiBvcGVyYXRvcisrKCkgbm9leGNlcHQgeworICAgIGRhdGFfICs9
IHNpemVfOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHN0cmluZ19yZWYgb3BlcmF0b3Iq
KCkgY29uc3Qgbm9leGNlcHQ7CisKKyBwcml2YXRlOgorICBjb25zdCBjaGFyKiBkYXRhXzsKKyAg
c2l6ZV90IHNpemVfOworfTsKKworLyoqCisgKiBUaGlzIGlzIGEgc3ludGhldGljIHJlZmVyZW5j
ZSBvZiBhIGZpeGVkIHNpemUgc3RyaW5nLgorICovCitjbGFzcyBzdHJpbmdfcmVmIHsKKyBwdWJs
aWM6CisgIHN0cmluZ19yZWYoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIDogZGF0YV8o
ZGF0YSksIHNpemVfKHNpemUpIHt9CisKKyAgc3RyaW5nX3B0ciBvcGVyYXRvciYoKSBjb25zdCBu
b2V4Y2VwdCB7IHJldHVybiB7ZGF0YV8sIHNpemVffTsgfSAgLy8gTk9MSU5UCisKKyAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IGNoYXIqIHMpIGNvbnN0IG5vZXhjZXB0IHsKKyAgICBpZiAoc2l6ZV8g
PiAwICYmIGRhdGFfW3NpemVfIC0gMV0gIT0gMCkgeworICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5n
KGRhdGFfLCBzaXplXykgPT0gc3RkOjpzdHJpbmcocyk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZyhkYXRhXykgPT0gc3RkOjpzdHJpbmcocyk7CisgICAgfQorICB9CisK
KyBwcml2YXRlOgorICBjb25zdCBjaGFyKiBkYXRhXzsKKyAgc2l6ZV90IHNpemVfOworfTsKKwor
c3RyaW5nX3JlZiBzdHJpbmdfcHRyOjpvcGVyYXRvciooKSBjb25zdCBub2V4Y2VwdCB7IHJldHVy
biB7ZGF0YV8sIHNpemVffTsgfQorCitURVNUKHN0cmluZ19yZWYsIGNvbXBhcmUpIHsKKyAgY29u
c3QgY2hhciogcyA9ICJhbGV4XDBkYXZpZGpvaG5cMCI7CisgIHN0cmluZ19wdHIgcHRyKHMsIDUp
OworICBFWFBFQ1RfRVEoKnB0ciwgImFsZXgiKTsKKyAgRVhQRUNUX1RSVUUoKnB0ciA9PSAiYWxl
eCIpOworICArK3B0cjsKKyAgRVhQRUNUX0VRKCpwdHIsICJkYXZpZCIpOworICBFWFBFQ1RfVFJV
RSgqcHRyID09ICJkYXZpZCIpOworICArK3B0cjsKKyAgRVhQRUNUX0VRKCpwdHIsICJqb2huIik7
Cit9CisKK30gIC8vIG5hbWVzcGFjZQogCiB9ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNf
dGVzdAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0LnB5IGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzgyMTYyZmM5OWY4YmJlY2Y0YThjYWYyY2UwYTI5YmY2NGIzYzI0YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1z
ZXR1cHRlc3RzdWl0ZS10ZXN0LnB5CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5
dGhvbgorIworIyBDb3B5cmlnaHQgMjAxOSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlZlcmlmaWVzIHRoYXQgU2V0VXBUZXN0U3Vp
dGUgYW5kIFRlYXJEb3duVGVzdFN1aXRlIGVycm9ycyBhcmUgbm90aWNlZC4iIiIKKworaW1wb3J0
IGd0ZXN0X3Rlc3RfdXRpbHMKKworQ09NTUFORCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4
ZWN1dGFibGVQYXRoKAorICAgICdnb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3RfJykKKwor
CitjbGFzcyBHVGVzdFNldFVwVGVzdFN1aXRlVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKKworICBkZWYgdGVzdFNldHVwRXJyb3JBbmRUZWFyRG93bkVycm9yKHNlbGYpOgorICAgIHAg
PSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoQ09NTUFORCkKKyAgICBzZWxmLmFzc2VydE5v
dEVxdWFsKHAuZXhpdF9jb2RlLCAwLCBtc2c9cC5vdXRwdXQpCisKKyAgICBzZWxmLmFzc2VydElu
KAorICAgICAgICAnWyAgRkFJTEVEICBdIFNldHVwRmFpbFRlc3Q6IFNldFVwVGVzdFN1aXRlIG9y
IFRlYXJEb3duVGVzdFN1aXRlXG4nCisgICAgICAgICdbICBGQUlMRUQgIF0gVGVhckRvd25GYWls
VGVzdDogU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGVcbicKKyAgICAgICAgJ1xu
JworICAgICAgICAnIDIgRkFJTEVEIFRFU1QgU1VJVEVTXG4nLAorICAgICAgICBwLm91dHB1dCkK
KworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1
cHRlc3RzdWl0ZS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGJjNGVmNDQxZDliZTQ4
MDJlMmMwMTBkZjhmMWMzZDk2ZGZhZjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3RfLmNjCkBAIC0w
LDAgKzEsNDkgQEAKKy8vIENvcHlyaWdodCAyMDA4LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworY2xhc3MgU2V0dXBGYWlsVGVzdCA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgU2V0VXBU
ZXN0U3VpdGUoKSB7CisgICAgQVNTRVJUX0VRKCIiLCAiU0VUX1VQX0ZBSUwiKTsKKyAgfQorfTsK
KworVEVTVF9GKFNldHVwRmFpbFRlc3QsIE5vb3BQYXNzaW5nVGVzdCkge30KKworY2xhc3MgVGVh
ckRvd25GYWlsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAg
c3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgQVNTRVJUX0VRKCIiLCAiVEVB
Ul9ET1dOX0ZBSUwiKTsKKyAgfQorfTsKKworVEVTVF9GKFRlYXJEb3duRmFpbFRlc3QsIE5vb3BQ
YXNzaW5nVGVzdCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKaW5kZXggMWZlNWY2YWJhMmE1ZTBmZmNhYjkx
NWU0NjM4ZDIzZjU4Y2Y0OGZmMC4uNDUwNTY2M2FlNDMzYzRmZDUzMjA1YzE2MGZiYzJhYjNlOGU2
NmVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXNodWZmbGUtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKQEAgLTQxLDcgKzQxLDYgQEAgdXNpbmcgOjp0ZXN0aW5n
OjpUZXN0OwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lcnM7CiB1c2luZyA6OnRl
c3Rpbmc6OlRlc3RJbmZvOwogdXNpbmcgOjp0ZXN0aW5nOjpVbml0VGVzdDsKLXVzaW5nIDo6dGVz
dGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI7CiAKIC8vIFRoZSB0ZXN0IG1ldGhvZHMgYXJlIGVt
cHR5LCBhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHRoaXMgcHJvZ3JhbSBpcwogLy8gdG8gcHJpbnQg
dGhlIHRlc3QgbmFtZXMgYmVmb3JlL2FmdGVyIHNodWZmbGluZy4KQEAgLTc3LDEzICs3NiwxMyBA
QCBURVNUKERJU0FCTEVEX0QsIERJU0FCTEVEX0IpIHt9CiAvLyBpdGVyYXRpb24gd2l0aCBhICIt
LS0tIiBtYXJrZXIuCiBjbGFzcyBUZXN0TmFtZVByaW50ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZl
bnRMaXN0ZW5lciB7CiAgcHVibGljOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uU3Rh
cnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24gKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVy
YXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24gKi8pIG92ZXJyaWRlIHsKICAgICBwcmlu
dGYoIi0tLS1cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRl
c3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgICBwcmludGYoIiVzLiVzXG4iLCB0ZXN0X2luZm8udGVz
dF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgIHZvaWQgT25UZXN0U3RhcnQoY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGUgeworICAgIHByaW50ZigiJXMuJXNcbiIs
IHRlc3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CiAgIH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10
ZXN0LXBhcnQtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC10ZXN0LXBhcnQtdGVzdC5jYwppbmRleCBjZDJkNmY5ZTg1OGY1Mjc5YmE1YTE2YTVkMWE2ZTM3
YWZmZTkxMGFkLi40NGNmN2NhMDQ0Yjg1MGRhZGMwZGY4OTYyODIyNWMwN2RlYTI3YzkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0
LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRl
c3QtcGFydC10ZXN0LmNjCkBAIC00Niw5ICs0NiwxMCBAQCBjbGFzcyBUZXN0UGFydFJlc3VsdFRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgIFRlc3RQYXJ0UmVzdWx0VGVzdCgpCiAgICAgICA6IHIxXyhU
ZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MsICJmb28vYmFyLmNjIiwgMTAsICJTdWNjZXNzISIpLAog
ICAgICAgICByMl8oVGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUsICJmb28vYmFyLmNj
IiwgLTEsICJGYWlsdXJlISIpLAotICAgICAgICByM18oVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZh
aWx1cmUsIE5VTEwsIC0xLCAiRmFpbHVyZSEiKSB7fQorICAgICAgICByM18oVGVzdFBhcnRSZXN1
bHQ6OmtGYXRhbEZhaWx1cmUsIG51bGxwdHIsIC0xLCAiRmFpbHVyZSEiKSwKKyAgICAgICAgcjRf
KFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgImZvby9iYXIuY2MiLCAyLCAiU2tpcHBlZCEiKSB7fQog
Ci0gIFRlc3RQYXJ0UmVzdWx0IHIxXywgcjJfLCByM187CisgIFRlc3RQYXJ0UmVzdWx0IHIxXywg
cjJfLCByM18sIHI0XzsKIH07CiAKIApAQCAtNzksNiArODAsNyBAQCBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNz
LmZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Mubm9uZmF0YWxseV9mYWlsZWQoKSk7
CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNzLmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFM
U0Uoc3VjY2Vzcy5za2lwcGVkKCkpOwogCiAgIGNvbnN0IFRlc3RQYXJ0UmVzdWx0IG5vbmZhdGFs
X2ZhaWx1cmUoVGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRhbEZhaWx1cmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUuY2MiLApAQCAtODgsNiArOTAsNyBAQCBU
RVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVD
VF9UUlVFKG5vbmZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkpOwogICBFWFBFQ1RfVFJVRShub25mYXRh
bF9mYWlsdXJlLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0Uobm9uZmF0YWxf
ZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKG5vbmZhdGFsX2ZhaWx1
cmUuc2tpcHBlZCgpKTsKIAogICBjb25zdCBUZXN0UGFydFJlc3VsdCBmYXRhbF9mYWlsdXJlKFRl
c3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJmaWxlLmNjIiwKQEAgLTk3LDYgKzEwMCwxNCBAQCBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVDVF9UUlVFKGZhdGFsX2Zh
aWx1cmUuZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0UoZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5
X2ZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUoZmF0YWxfZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgp
KTsKKyAgRVhQRUNUX0ZBTFNFKGZhdGFsX2ZhaWx1cmUuc2tpcHBlZCgpKTsKKworICBjb25zdCBU
ZXN0UGFydFJlc3VsdCBza2lwKFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgImZpbGUuY2MiLCA0Miwg
Im1lc3NhZ2UiKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAucGFzc2VkKCkpOworICBFWFBFQ1RfRkFM
U0Uoc2tpcC5mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShza2lwLm5vbmZhdGFsbHlfZmFpbGVk
KCkpOworICBFWFBFQ1RfRkFMU0Uoc2tpcC5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX1RS
VUUoc2tpcC5za2lwcGVkKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6dHlwZSgp
LgpAQCAtMTA0LDIzICsxMTUsMjcgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgdHlwZSkg
ewogICBFWFBFQ1RfRVEoVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzLCByMV8udHlwZSgpKTsKICAg
RVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLCByMl8udHlwZSgpKTsK
ICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLCByM18udHlwZSgpKTsK
KyAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgcjRfLnR5cGUoKSk7CiB9CiAKIC8v
IFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmaWxlX25hbWUoKS4KIFRFU1RfRihUZXN0UGFydFJlc3Vs
dFRlc3QsIGZpbGVfbmFtZSkgewogICBFWFBFQ1RfU1RSRVEoImZvby9iYXIuY2MiLCByMV8uZmls
ZV9uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcjNfLmZpbGVfbmFtZSgpKTsKKyAgRVhQ
RUNUX1NUUkVRKG51bGxwdHIsIHIzXy5maWxlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiZm9v
L2Jhci5jYyIsIHI0Xy5maWxlX25hbWUoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0
OjpsaW5lX251bWJlcigpLgogVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgbGluZV9udW1iZXIp
IHsKICAgRVhQRUNUX0VRKDEwLCByMV8ubGluZV9udW1iZXIoKSk7CiAgIEVYUEVDVF9FUSgtMSwg
cjJfLmxpbmVfbnVtYmVyKCkpOworICBFWFBFQ1RfRVEoMiwgcjRfLmxpbmVfbnVtYmVyKCkpOwog
fQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bWVzc2FnZSgpLgogVEVTVF9GKFRlc3RQYXJ0
UmVzdWx0VGVzdCwgbWVzc2FnZSkgewogICBFWFBFQ1RfU1RSRVEoIlN1Y2Nlc3MhIiwgcjFfLm1l
c3NhZ2UoKSk7CisgIEVYUEVDVF9TVFJFUSgiU2tpcHBlZCEiLCByNF8ubWVzc2FnZSgpKTsKIH0K
IAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OnBhc3NlZCgpLgpAQCAtMTI4LDYgKzE0Myw3IEBA
IFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIFBhc3NlZCkgewogICBFWFBFQ1RfVFJVRShyMV8u
cGFzc2VkKCkpOwogICBFWFBFQ1RfRkFMU0UocjJfLnBhc3NlZCgpKTsKICAgRVhQRUNUX0ZBTFNF
KHIzXy5wYXNzZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyNF8ucGFzc2VkKCkpOwogfQogCiAvLyBU
ZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmFpbGVkKCkuCkBAIC0xMzUsNiArMTUxLDE1IEBAIFRFU1Rf
RihUZXN0UGFydFJlc3VsdFRlc3QsIEZhaWxlZCkgewogICBFWFBFQ1RfRkFMU0UocjFfLmZhaWxl
ZCgpKTsKICAgRVhQRUNUX1RSVUUocjJfLmZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUocjNfLmZh
aWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5mYWlsZWQoKSk7Cit9CisKKy8vIFRlc3RzIFRl
c3RQYXJ0UmVzdWx0OjpmYWlsZWQoKS4KK1RFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIFNraXBw
ZWQpIHsKKyAgRVhQRUNUX0ZBTFNFKHIxXy5za2lwcGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjJf
LnNraXBwZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyM18uc2tpcHBlZCgpKTsKKyAgRVhQRUNUX1RS
VUUocjRfLnNraXBwZWQoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmYXRhbGx5
X2ZhaWxlZCgpLgpAQCAtMTQyLDYgKzE2Nyw3IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3Qs
IEZhdGFsbHlGYWlsZWQpIHsKICAgRVhQRUNUX0ZBTFNFKHIxXy5mYXRhbGx5X2ZhaWxlZCgpKTsK
ICAgRVhQRUNUX0ZBTFNFKHIyXy5mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUocjNf
LmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjRfLmZhdGFsbHlfZmFpbGVkKCkp
OwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bm9uZmF0YWxseV9mYWlsZWQoKS4KQEAg
LTE0OSw2ICsxNzUsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBOb25mYXRhbGx5RmFp
bGVkKSB7CiAgIEVYUEVDVF9GQUxTRShyMV8ubm9uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVD
VF9UUlVFKHIyXy5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIzXy5ub25m
YXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5ub25mYXRhbGx5X2ZhaWxlZCgp
KTsKIH0KIAogLy8gVGVzdHMgdGhlIFRlc3RQYXJ0UmVzdWx0QXJyYXkgY2xhc3MuCkBAIC0yMDAs
NiArMjI3LDQgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0QXJyYXlEZWF0aFRlc3QsIERpZXNXaGVu
SW5kZXhJc091dE9mQm91bmQpIHsKICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChyZXN1bHRz
LkdldFRlc3RQYXJ0UmVzdWx0KDEpLCAiIik7CiB9CiAKLS8vIEZJWE1FOiBBZGQgYSB0ZXN0IGZv
ciB0aGUgY2xhc3MgSGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyLgotCiB9ICAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0
Ml90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRlc3Qy
X3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyZjk4ZGM3ZDFjM2U5MDk3
NThiYTYwNzcyZTk3NzQ5OGNlODFmZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRl
c3QyX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vLyBDb3B5cmlnaHQg
MjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xl
IFRlc3QgaXRzZWxmLiAgVGhpcyB2ZXJpZmllcyB0aGF0IHRoZSBiYXNpYyBjb25zdHJ1Y3RzIG9m
Ci0vLyBHb29nbGUgVGVzdCB3b3JrLgotCi0jaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLSNpbmNs
dWRlICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5oIgotCi11c2luZyA6OnRlc3Rpbmc6OlZh
bHVlczsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwotCi0vLyBU
ZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVmaW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1
bml0Ci0vLyBhcmUgZnVuY3Rpb25hbC4gVGhlIHRlc3QgdXNpbmcgZXh0ZXJuX2dlbl8yIGlzIGRl
ZmluZWQKLS8vIGluIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjLgotUGFyYW1HZW5lcmF0
b3I8aW50PiBleHRlcm5fZ2VuXzIgPSBWYWx1ZXMoMzMpOwotCi0vLyBUZXN0cyB0aGF0IGEgcGFy
YW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGRlZmluZWQgaW4gb25lIHRyYW5zbGF0aW9uIHVu
aXQKLS8vIGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhlci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBp
bgotLy8gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYW5kIEV4dGVybmFsSW5zdGFudGlh
dGlvblRlc3QgZml4dHVyZSBjbGFzcyBpcwotLy8gZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0
X3Rlc3QuaC4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE11bHRpcGxlc09mMzMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOwotCi0vLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVy
aXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAotLy8gaW4gbXVsdGlwbGUgdHJhbnNs
YXRpb24gdW5pdHMuIEFub3RoZXIgaW5zdGFudGlhdGlvbiBpcyBkZWZpbmVkCi0vLyBpbiBnb29n
bGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBhbmQKLS8vIEluc3RhbnRpYXRpb25Jbk11bHRpcGxl
VHJhbnNsYWlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KLS8vIGd0ZXN0LXBhcmFt
LXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkpOwot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhy
b3ctb24tZmFpbHVyZS10ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weQppbmRleCA0NmNiOWY2ZGEzMWRlYWRmZDdl
ZWZkMjM1ZTliMzdkZjI5ZmIzYmFmLi5lYTYyN2M0NzlkNWIxOTgyNGNhNjdiOTgwODljZjQwMGMz
M2MyNzlhIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3QucHkKQEAgLTY4LDEzICs2OCwx
MiBAQCBkZWYgU2V0RW52VmFyKGVudl92YXIsIHZhbHVlKToKIGRlZiBSdW4oY29tbWFuZCk6CiAg
ICIiIlJ1bnMgYSBjb21tYW5kOyByZXR1cm5zIFRydWUvRmFsc2UgaWYgaXRzIGV4aXQgY29kZSBp
cy9pc24ndCAwLiIiIgogCi0gIHByaW50ICdSdW5uaW5nICIlcyIuIC4gLicgJSAnICcuam9pbihj
b21tYW5kKQorICBwcmludCgnUnVubmluZyAiJXMiLiAuIC4nICUgJyAnLmpvaW4oY29tbWFuZCkp
CiAgIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoY29tbWFuZCkKICAgcmV0dXJuIHAu
ZXhpdGVkIGFuZCBwLmV4aXRfY29kZSA9PSAwCiAKIAotIyBUaGUgdGVzdHMuICBGSVhNRTogcmVm
YWN0b3IgdGhlIGNsYXNzIHRvIHNoYXJlIGNvbW1vbgotIyBsb2dpYyB3aXRoIGNvZGUgaW4gZ29v
Z2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0LnB5LgorIyBUaGUgdGVzdHMuCiBjbGFz
cyBUaHJvd09uRmFpbHVyZVRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICIiIlRl
c3RzIHRoZSB0aHJvdy1vbi1mYWlsdXJlIG1vZGUuIiIiCiAKQEAgLTg3LDcgKzg2LDcgQEAgY2xh
c3MgVGhyb3dPbkZhaWx1cmVUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyaWFibGU7IE5vbmUgaWYgdGhlIHZhcmlhYmxlIHNob3VsZCBi
ZSB1bnNldC4KICAgICAgIGZsYWdfdmFsdWU6ICAgICAgIHZhbHVlIG9mIHRoZSAtLWd0ZXN0X2Jy
ZWFrX29uX2ZhaWx1cmUgZmxhZzsKICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgaWYgdGhl
IGZsYWcgc2hvdWxkIG5vdCBiZSBwcmVzZW50LgotICAgICAgc2hvdWxkX2ZhaWw6ICAgICAgVHJ1
ZSBpZmYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8gZmFpbC4KKyAgICAgIHNob3VsZF9mYWls
OiAgICAgIFRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8gZmFp
bC4KICAgICAiIiIKIAogICAgIFNldEVudlZhcihUSFJPV19PTl9GQUlMVVJFLCBlbnZfdmFyX3Zh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYwppbmRleCBmOWEyYzY0NDhhMjlj
YTI5NjQ5YTEyNDgwNTlhOTg1YTUxYWY4NjM2Li44M2JiOTE0YzdlNDc0YTgxMmQ1NzQ1YTNlYzUw
Yjk1YjM4YTY1OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYwpAQCAtNDUs
NyArNDUsNyBAQAogLy8gb25lcy4KIHZvaWQgVGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50
ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxlZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRo
ZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVMTCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhp
dCgxKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXR1cGxlLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtdHVwbGUtdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ4MmMx
NjBmMTc3ZDZmM2JhZGQ3NzA2NGFiOGM3ZTk4YmQyOTc2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtdHVwbGUtdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDMxOSArMCwwIEBACi0v
LyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0v
LwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRp
c3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotI2luY2x1ZGUg
Imd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiCi0jaW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNs
dWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgewotCi11c2luZyA6OnN0ZDo6dHIxOjpn
ZXQ7Ci11c2luZyA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlOwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVw
bGU7Ci11c2luZyA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVtZW50OwotdXNpbmcgOjpzdGQ6OnRyMTo6
dHVwbGVfc2l6ZTsKLXVzaW5nIDo6dGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxOwotCi0vLyBU
ZXN0cyB0aGF0IHR1cGxlX2VsZW1lbnQ8SywgdHVwbGU8VDAsIFQxLCAuLi4sIFROPiA+Ojp0eXBl
IHJldHVybnMgVEsuCi1URVNUKHR1cGxlX2VsZW1lbnRfVGVzdCwgUmV0dXJuc0VsZW1lbnRUeXBl
KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIHR1cGxlX2VsZW1lbnQ8MCwgdHVwbGU8aW50
LCBjaGFyPiA+Ojp0eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50JiwgdHVwbGVfZWxl
bWVudDwxLCB0dXBsZTxkb3VibGUsIGludCY+ID46OnR5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5
cGVFcTxib29sLCB0dXBsZV9lbGVtZW50PDIsIHR1cGxlPGRvdWJsZSwgaW50LCBib29sPiA+Ojp0
eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IHR1cGxlX3NpemU8VD46OnZhbHVlIGdpdmVzIHRo
ZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlCi0vLyB0eXBlIFQuCi1URVNUKHR1cGxlX3NpemVf
VGVzdCwgUmV0dXJuc051bWJlck9mRmllbGRzKSB7Ci0gIEVYUEVDVF9FUSgwLCArdHVwbGVfc2l6
ZTx0dXBsZTw+ID46OnZhbHVlKTsKLSAgRVhQRUNUX0VRKDEsICt0dXBsZV9zaXplPHR1cGxlPHZv
aWQqPiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArdHVwbGVfc2l6ZTx0dXBsZTxjaGFyPiA+
Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArKHR1cGxlX3NpemU8dHVwbGU8dHVwbGU8aW50LCBk
b3VibGU+ID4gPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0VRKDIsICsodHVwbGVfc2l6ZTx0dXBsZTxp
bnQmLCBjb25zdCBjaGFyPiA+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfRVEoMywgKyh0dXBsZV9zaXpl
PHR1cGxlPGNoYXIqLCB2b2lkLCBjb25zdCBib29sJj4gPjo6dmFsdWUpKTsKLX0KLQotLy8gVGVz
dHMgY29tcGFyaW5nIGEgdHVwbGUgd2l0aCBpdHNlbGYuCi1URVNUKENvbXBhcmlzb25UZXN0LCBD
b21wYXJlc1dpdGhTZWxmKSB7Ci0gIGNvbnN0IHR1cGxlPGludCwgY2hhciwgYm9vbD4gYSg1LCAn
YScsIGZhbHNlKTsKLQotICBFWFBFQ1RfVFJVRShhID09IGEpOwotICBFWFBFQ1RfRkFMU0UoYSAh
PSBhKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHR3byB0dXBsZXMgd2l0aCB0aGUgc2FtZSB2
YWx1ZS4KLVRFU1QoQ29tcGFyaXNvblRlc3QsIENvbXBhcmVzRXF1YWxUdXBsZXMpIHsKLSAgY29u
c3QgdHVwbGU8aW50LCBib29sPiBhKDUsIHRydWUpLCBiKDUsIHRydWUpOwotCi0gIEVYUEVDVF9U
UlVFKGEgPT0gYik7Ci0gIEVYUEVDVF9GQUxTRShhICE9IGIpOwotfQotCi0vLyBUZXN0cyBjb21w
YXJpbmcgdHdvIGRpZmZlcmVudCB0dXBsZXMgdGhhdCBoYXZlIG5vIHJlZmVyZW5jZSBmaWVsZHMu
Ci1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc1VuZXF1YWxUdXBsZXNXaXRob3V0UmVmZXJl
bmNlRmllbGRzKSB7Ci0gIHR5cGVkZWYgdHVwbGU8Y29uc3QgaW50LCBjaGFyPiBGb29UdXBsZTsK
LQotICBjb25zdCBGb29UdXBsZSBhKDAsICd4Jyk7Ci0gIGNvbnN0IEZvb1R1cGxlIGIoMSwgJ2En
KTsKLQotICBFWFBFQ1RfVFJVRShhICE9IGIpOwotICBFWFBFQ1RfRkFMU0UoYSA9PSBiKTsKLQot
ICBjb25zdCBGb29UdXBsZSBjKDEsICdiJyk7Ci0KLSAgRVhQRUNUX1RSVUUoYiAhPSBjKTsKLSAg
RVhQRUNUX0ZBTFNFKGIgPT0gYyk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB0d28gZGlmZmVy
ZW50IHR1cGxlcyB0aGF0IGhhdmUgcmVmZXJlbmNlIGZpZWxkcy4KLVRFU1QoQ29tcGFyaXNvblRl
c3QsIENvbXBhcmVzVW5lcXVhbFR1cGxlc1dpdGhSZWZlcmVuY2VGaWVsZHMpIHsKLSAgdHlwZWRl
ZiB0dXBsZTxpbnQmLCBjb25zdCBjaGFyJj4gRm9vVHVwbGU7Ci0KLSAgaW50IGkgPSA1OwotICBj
b25zdCBjaGFyIGNoID0gJ2EnOwotICBjb25zdCBGb29UdXBsZSBhKGksIGNoKTsKLQotICBpbnQg
aiA9IDY7Ci0gIGNvbnN0IEZvb1R1cGxlIGIoaiwgY2gpOwotCi0gIEVYUEVDVF9UUlVFKGEgIT0g
Yik7Ci0gIEVYUEVDVF9GQUxTRShhID09IGIpOwotCi0gIGogPSA1OwotICBjb25zdCBjaGFyIGNo
MiA9ICdiJzsKLSAgY29uc3QgRm9vVHVwbGUgYyhqLCBjaDIpOwotCi0gIEVYUEVDVF9UUlVFKGIg
IT0gYyk7Ci0gIEVYUEVDVF9GQUxTRShiID09IGMpOwotfQotCi0vLyBUZXN0cyB0aGF0IGEgdHVw
bGUgZmllbGQgd2l0aCBhIHJlZmVyZW5jZSB0eXBlIGlzIGFuIGFsaWFzIG9mIHRoZQotLy8gdmFy
aWFibGUgaXQncyBzdXBwb3NlZCB0byByZWZlcmVuY2UuCi1URVNUKFJlZmVyZW5jZUZpZWxkVGVz
dCwgSXNBbGlhc09mUmVmZXJlbmNlZFZhcmlhYmxlKSB7Ci0gIGludCBuID0gMDsKLSAgdHVwbGU8
Ym9vbCwgaW50Jj4gdCh0cnVlLCBuKTsKLQotICBuID0gMTsKLSAgRVhQRUNUX0VRKG4sIGdldDwx
Pih0KSkKLSAgICAgIDw8ICJDaGFuZ2luZyBhIHVuZGVybHlpbmcgdmFyaWFibGUgc2hvdWxkIHVw
ZGF0ZSB0aGUgcmVmZXJlbmNlIGZpZWxkLiI7Ci0KLSAgLy8gTWFrZXMgc3VyZSB0aGF0IHRoZSBp
bXBsZW1lbnRhdGlvbiBkb2Vzbid0IGRvIGFueXRoaW5nIGZ1bm55IHdpdGgKLSAgLy8gdGhlICYg
b3BlcmF0b3IgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBnZXQ8PigpLgotICBFWFBFQ1RfRVEoJm4s
ICYoZ2V0PDE+KHQpKSkKLSAgICAgIDw8ICJUaGUgYWRkcmVzcyBvZiBhIHJlZmVyZW5jZSBmaWVs
ZCBzaG91bGQgZXF1YWwgdGhlIGFkZHJlc3Mgb2YgIgotICAgICAgPDwgInRoZSB1bmRlcmx5aW5n
IHZhcmlhYmxlLiI7Ci0KLSAgZ2V0PDE+KHQpID0gMjsKLSAgRVhQRUNUX0VRKDIsIG4pCi0gICAg
ICA8PCAiQ2hhbmdpbmcgYSByZWZlcmVuY2UgZmllbGQgc2hvdWxkIHVwZGF0ZSB0aGUgdW5kZXJs
eWluZyB2YXJpYWJsZS4iOwotfQotCi0vLyBUZXN0cyB0aGF0IHR1cGxlJ3MgZGVmYXVsdCBjb25z
dHJ1Y3RvciBkZWZhdWx0IGluaXRpYWxpemVzIGVhY2ggZmllbGQuCi0vLyBUaGlzIHRlc3QgbmVl
ZHMgdG8gY29tcGlsZSB3aXRob3V0IGdlbmVyYXRpbmcgd2FybmluZ3MuCi1URVNUKFR1cGxlQ29u
c3RydWN0b3JUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3JEZWZhdWx0SW5pdGlhbGl6ZXNFYWNoRmll
bGQpIHsKLSAgLy8gVGhlIFRSMSByZXBvcnQgcmVxdWlyZXMgdGhhdCB0dXBsZSdzIGRlZmF1bHQg
Y29uc3RydWN0b3IgZGVmYXVsdAotICAvLyBpbml0aWFsaXplcyBlYWNoIGZpZWxkLCBldmVuIGlm
IGl0J3MgYSBwcmltaXRpdmUgdHlwZS4gIElmIHRoZQotICAvLyBpbXBsZW1lbnRhdGlvbiBmb3Jn
ZXRzIHRvIGRvIHRoaXMsIHRoaXMgdGVzdCB3aWxsIGNhdGNoIGl0IGJ5Ci0gIC8vIGdlbmVyYXRp
bmcgd2FybmluZ3MgYWJvdXQgdXNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgKGFzc3VtaW5n
Ci0gIC8vIGEgZGVjZW50IGNvbXBpbGVyKS4KLQotICB0dXBsZTw+IGVtcHR5OwotCi0gIHR1cGxl
PGludD4gYTEsIGIxOwotICBiMSA9IGExOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDA+KGIxKSk7Ci0K
LSAgdHVwbGU8aW50LCBkb3VibGU+IGEyLCBiMjsKLSAgYjIgPSBhMjsKLSAgRVhQRUNUX0VRKDAs
IGdldDwwPihiMikpOwotICBFWFBFQ1RfRVEoMC4wLCBnZXQ8MT4oYjIpKTsKLQotICB0dXBsZTxk
b3VibGUsIGNoYXIsIGJvb2wqPiBhMywgYjM7Ci0gIGIzID0gYTM7Ci0gIEVYUEVDVF9FUSgwLjAs
IGdldDwwPihiMykpOwotICBFWFBFQ1RfRVEoJ1wwJywgZ2V0PDE+KGIzKSk7Ci0gIEVYUEVDVF9U
UlVFKGdldDwyPihiMykgPT0gTlVMTCk7Ci0KLSAgdHVwbGU8aW50LCBpbnQsIGludCwgaW50LCBp
bnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PiBhMTAsIGIxMDsKLSAgYjEwID0gYTEwOwotICBF
WFBFQ1RfRVEoMCwgZ2V0PDA+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDE+KGIxMCkpOwot
ICBFWFBFQ1RfRVEoMCwgZ2V0PDI+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDM+KGIxMCkp
OwotICBFWFBFQ1RfRVEoMCwgZ2V0PDQ+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDU+KGIx
MCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDY+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDc+
KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDg+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0
PDk+KGIxMCkpOwotfQotCi0vLyBUZXN0cyBjb25zdHJ1Y3RpbmcgYSB0dXBsZSBmcm9tIGl0cyBm
aWVsZHMuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb25zdHJ1Y3RzRnJvbUZpZWxkcykg
ewotICBpbnQgbiA9IDE7Ci0gIC8vIFJlZmVyZW5jZSBmaWVsZC4KLSAgdHVwbGU8aW50Jj4gYShu
KTsKLSAgRVhQRUNUX0VRKCZuLCAmKGdldDwwPihhKSkpOwotCi0gIC8vIE5vbi1yZWZlcmVuY2Ug
ZmllbGRzLgotICB0dXBsZTxpbnQsIGNoYXI+IGIoNSwgJ2EnKTsKLSAgRVhQRUNUX0VRKDUsIGdl
dDwwPihiKSk7Ci0gIEVYUEVDVF9FUSgnYScsIGdldDwxPihiKSk7Ci0KLSAgLy8gQ29uc3QgcmVm
ZXJlbmNlIGZpZWxkLgotICBjb25zdCBpbnQgbSA9IDI7Ci0gIHR1cGxlPGJvb2wsIGNvbnN0IGlu
dCY+IGModHJ1ZSwgbSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwwPihjKSk7Ci0gIEVYUEVDVF9FUSgm
bSwgJihnZXQ8MT4oYykpKTsKLX0KLQotLy8gVGVzdHMgdHVwbGUncyBjb3B5IGNvbnN0cnVjdG9y
LgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgQ29weUNvbnN0cnVjdG9yKSB7Ci0gIHR1cGxl
PGRvdWJsZSwgYm9vbD4gYSgwLjAsIHRydWUpOwotICB0dXBsZTxkb3VibGUsIGJvb2w+IGIoYSk7
Ci0KLSAgRVhQRUNUX0RPVUJMRV9FUSgwLjAsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdl
dDwxPihiKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBhIHR1cGxlIGZyb20gYW5vdGhl
ciB0dXBsZSB0aGF0IGhhcyBhIGNvbXBhdGlibGUKLS8vIGJ1dCBkaWZmZXJlbnQgdHlwZS4KLVRF
U1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVjdHNGcm9tRGlmZmVyZW50VHVwbGVUeXBl
KSB7Ci0gIHR1cGxlPGludCwgaW50LCBjaGFyPiBhKDAsIDEsICdhJyk7Ci0gIHR1cGxlPGRvdWJs
ZSwgbG9uZywgaW50PiBiKGEpOwotCi0gIEVYUEVDVF9ET1VCTEVfRVEoMC4wLCBnZXQ8MD4oYikp
OwotICBFWFBFQ1RfRVEoMSwgZ2V0PDE+KGIpKTsKLSAgRVhQRUNUX0VRKCdhJywgZ2V0PDI+KGIp
KTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEgMi10dXBsZSBmcm9tIGFuIHN0ZDo6cGFp
ci4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVjdHNGcm9tUGFpcikgewotICA6
OnN0ZDo6cGFpcjxpbnQsIGNoYXI+IGEoMSwgJ2EnKTsKLSAgdHVwbGU8aW50LCBjaGFyPiBiKGEp
OwotICB0dXBsZTxpbnQsIGNvbnN0IGNoYXImPiBjKGEpOwotfQotCi0vLyBUZXN0cyBhc3NpZ25p
bmcgYSB0dXBsZSB0byBhbm90aGVyIHR1cGxlIHdpdGggdGhlIHNhbWUgdHlwZS4KLVRFU1QoVHVw
bGVBc3NpZ25tZW50VGVzdCwgQXNzaWduc1RvU2FtZVR1cGxlVHlwZSkgewotICBjb25zdCB0dXBs
ZTxpbnQsIGxvbmc+IGEoNSwgN0wpOwotICB0dXBsZTxpbnQsIGxvbmc+IGI7Ci0gIGIgPSBhOwot
ICBFWFBFQ1RfRVEoNSwgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VRKDdMLCBnZXQ8MT4oYikpOwot
fQotCi0vLyBUZXN0cyBhc3NpZ25pbmcgYSB0dXBsZSB0byBhbm90aGVyIHR1cGxlIHdpdGggYSBk
aWZmZXJlbnQgYnV0Ci0vLyBjb21wYXRpYmxlIHR5cGUuCi1URVNUKFR1cGxlQXNzaWdubWVudFRl
c3QsIEFzc2lnbnNUb0RpZmZlcmVudFR1cGxlVHlwZSkgewotICBjb25zdCB0dXBsZTxpbnQsIGxv
bmcsIGJvb2w+IGEoMSwgN0wsIHRydWUpOwotICB0dXBsZTxsb25nLCBpbnQsIGJvb2w+IGI7Ci0g
IGIgPSBhOwotICBFWFBFQ1RfRVEoMUwsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9FUSg3LCBnZXQ8
MT4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8Mj4oYikpOwotfQotCi0vLyBUZXN0cyBhc3NpZ25p
bmcgYW4gc3RkOjpwYWlyIHRvIGEgMi10dXBsZS4KLVRFU1QoVHVwbGVBc3NpZ25tZW50VGVzdCwg
QXNzaWduc0Zyb21QYWlyKSB7Ci0gIGNvbnN0IDo6c3RkOjpwYWlyPGludCwgYm9vbD4gYSg1LCB0
cnVlKTsKLSAgdHVwbGU8aW50LCBib29sPiBiOwotICBiID0gYTsKLSAgRVhQRUNUX0VRKDUsIGdl
dDwwPihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwxPihiKSk7Ci0KLSAgdHVwbGU8bG9uZywgYm9v
bD4gYzsKLSAgYyA9IGE7Ci0gIEVYUEVDVF9FUSg1TCwgZ2V0PDA+KGMpKTsKLSAgRVhQRUNUX1RS
VUUoZ2V0PDE+KGMpKTsKLX0KLQotLy8gQSBmaXh0dXJlIGZvciB0ZXN0aW5nIGJpZyB0dXBsZXMu
Ci1jbGFzcyBCaWdUdXBsZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVk
OgotICB0eXBlZGVmIHR1cGxlPGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQsIGludD4gQmlnVHVwbGU7Ci0KLSAgQmlnVHVwbGVUZXN0KCkgOgotICAgICAgYV8oMSwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMiksCi0gICAgICBiXygxLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAzKSB7fQotCi0gIEJpZ1R1cGxlIGFfLCBiXzsKLX07Ci0KLS8vIFRlc3RzIGNvbnN0
cnVjdGluZyBiaWcgdHVwbGVzLgotVEVTVF9GKEJpZ1R1cGxlVGVzdCwgQ29uc3RydWN0aW9uKSB7
Ci0gIEJpZ1R1cGxlIGE7Ci0gIEJpZ1R1cGxlIGIoYl8pOwotfQotCi0vLyBUZXN0cyB0aGF0IGdl
dDxOPih0KSByZXR1cm5zIHRoZSBOLXRoICgwLWJhc2VkKSBmaWVsZCBvZiB0dXBsZSB0LgotVEVT
VF9GKEJpZ1R1cGxlVGVzdCwgZ2V0KSB7Ci0gIEVYUEVDVF9FUSgxLCBnZXQ8MD4oYV8pKTsKLSAg
RVhQRUNUX0VRKDIsIGdldDw5PihhXykpOwotCi0gIC8vIFRlc3RzIHRoYXQgZ2V0KCkgd29ya3Mg
b24gYSBjb25zdCB0dXBsZSB0b28uCi0gIGNvbnN0IEJpZ1R1cGxlIGEoYV8pOwotICBFWFBFQ1Rf
RVEoMSwgZ2V0PDA+KGEpKTsKLSAgRVhQRUNUX0VRKDIsIGdldDw5PihhKSk7Ci19Ci0KLS8vIFRl
c3RzIGNvbXBhcmluZyBiaWcgdHVwbGVzLgotVEVTVF9GKEJpZ1R1cGxlVGVzdCwgQ29tcGFyaXNv
bnMpIHsKLSAgRVhQRUNUX1RSVUUoYV8gPT0gYV8pOwotICBFWFBFQ1RfRkFMU0UoYV8gIT0gYV8p
OwotCi0gIEVYUEVDVF9UUlVFKGFfICE9IGJfKTsKLSAgRVhQRUNUX0ZBTFNFKGFfID09IGJfKTsK
LX0KLQotVEVTVChNYWtlVHVwbGVUZXN0LCBXb3Jrc0ZvclNjYWxhclR5cGVzKSB7Ci0gIHR1cGxl
PGJvb2wsIGludD4gYTsKLSAgYSA9IG1ha2VfdHVwbGUodHJ1ZSwgNSk7Ci0gIEVYUEVDVF9UUlVF
KGdldDwwPihhKSk7Ci0gIEVYUEVDVF9FUSg1LCBnZXQ8MT4oYSkpOwotCi0gIHR1cGxlPGNoYXIs
IGludCwgbG9uZz4gYjsKLSAgYiA9IG1ha2VfdHVwbGUoJ2EnLCAnYicsIDUpOwotICBFWFBFQ1Rf
RVEoJ2EnLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoJ2InLCBnZXQ8MT4oYikpOwotICBFWFBF
Q1RfRVEoNSwgZ2V0PDI+KGIpKTsKLX0KLQotVEVTVChNYWtlVHVwbGVUZXN0LCBXb3Jrc0ZvclBv
aW50ZXJzKSB7Ci0gIGludCBhW10gPSB7IDEsIDIsIDMsIDQgfTsKLSAgY29uc3QgY2hhciogY29u
c3Qgc3RyID0gImhpIjsKLSAgaW50KiBjb25zdCBwID0gYTsKLQotICB0dXBsZTxjb25zdCBjaGFy
KiwgaW50Kj4gdDsKLSAgdCA9IG1ha2VfdHVwbGUoc3RyLCBwKTsKLSAgRVhQRUNUX0VRKHN0ciwg
Z2V0PDA+KHQpKTsKLSAgRVhQRUNUX0VRKHAsIGdldDwxPih0KSk7Ci19Ci0KLX0gIC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXVuaW5pdGlhbGl6ZWQtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkKaW5kZXggNWI3ZDFlNzRmNjdmY2IwMGNiODQ4
NTU3OTY3ZGVmNGY2YTU2Y2M4Zi4uNjk1OTVhMGRkZWRlODA3YWUzNzExZTllZjVmN2IwYWU5MjIw
NzU2MyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXVuaW5pdGlhbGl6ZWQtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5CkBAIC00Myw4ICs0Myw4IEBAIGRlZiBB
c3NlcnQoY29uZGl0aW9uKToKIAogZGVmIEFzc2VydEVxKGV4cGVjdGVkLCBhY3R1YWwpOgogICBp
ZiBleHBlY3RlZCAhPSBhY3R1YWw6Ci0gICAgcHJpbnQgJ0V4cGVjdGVkOiAlcycgJSAoZXhwZWN0
ZWQsKQotICAgIHByaW50ICcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpCisgICAgcHJpbnQoJ0V4
cGVjdGVkOiAlcycgJSAoZXhwZWN0ZWQsKSkKKyAgICBwcmludCgnICBBY3R1YWw6ICVzJyAlIChh
Y3R1YWwsKSkKICAgICByYWlzZSBBc3NlcnRpb25FcnJvcgogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYwppbmRleCBl
ZDk2NDIxYzY3Y2E4YTJmYjM4ZjNkODg5NjAyMzFlZjIyYmVhNmZjLi5lODNjYTJlMTFiMWI2MjZm
MzIzYjkyODUzYTAxODIxYjhhMzUzMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjCkBAIC0zMywxMiArMzMsOCBA
QAogI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmgiCiAjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gVGVzdHMgdGhh
dCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQogLy8gaW5zdGFu
dGlhdGVkIGluIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCiAv
LyAoQ29udGFpbmVyVGVzdCBpcyBhbHNvIGluc3RhbnRpYXRlZCBpbiBndGVzdC10eXBlZC10ZXN0
X3Rlc3QuY2MuKQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoVmVjdG9yLCBDb250YWlu
ZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VHlwZXM8c3Rk
Ojp2ZWN0b3I8aW50PiA+KTsKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitJ
TlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVmVjdG9yLCBDb250YWluZXJUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlR5cGVzPHN0ZDo6dmVjdG9yPGlu
dD4gPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5
cGVkLXRlc3RfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlw
ZWQtdGVzdF90ZXN0LmNjCmluZGV4IDRlMzk4Njk3ZDZkODA5YjEyZThjOTVlNjc0MjBjMmM1Njhk
ZGE2ZTguLjVmYzY3OGNiMGQ1ZDFkMDI1ZDY5MzU2YzJiMWI2ZDEwZTQ1ZWQ2NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0
LmNjCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rl
c3QuaCIKIAogI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgpAQCAtNDEsMjEgKzQyLDIxIEBA
IEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQxMjcgLyogY29uZGl0aW9uYWwgZXhw
cmVzc2lvbiBpcyBjb25zdGFudCAqLykKIAogdXNpbmcgdGVzdGluZzo6VGVzdDsKIAotLy8gVXNl
ZCBmb3IgdGVzdGluZyB0aGF0IFNldFVwVGVzdENhc2UoKS9UZWFyRG93blRlc3RDYXNlKCksIGZp
eHR1cmUKKy8vIFVzZWQgZm9yIHRlc3RpbmcgdGhhdCBTZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3du
VGVzdFN1aXRlKCksIGZpeHR1cmUKIC8vIGN0b3IvZHRvciwgYW5kIFNldFVwKCkvVGVhckRvd24o
KSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlZCB0ZXN0cyBhbmQKIC8vIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0LgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb21tb25UZXN0IDogcHVibGlj
IFRlc3QgewotICAvLyBGb3Igc29tZSB0ZWNobmljYWwgcmVhc29uLCBTZXRVcFRlc3RDYXNlKCkg
YW5kIFRlYXJEb3duVGVzdENhc2UoKQorICAvLyBGb3Igc29tZSB0ZWNobmljYWwgcmVhc29uLCBT
ZXRVcFRlc3RTdWl0ZSgpIGFuZCBUZWFyRG93blRlc3RTdWl0ZSgpCiAgIC8vIG11c3QgYmUgcHVi
bGljLgogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgc2hhcmVkXyA9IG5ldyBUKDUpOwogICB9CiAK
LSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRv
d25UZXN0U3VpdGUoKSB7CiAgICAgZGVsZXRlIHNoYXJlZF87Ci0gICAgc2hhcmVkXyA9IE5VTEw7
CisgICAgc2hhcmVkXyA9IG51bGxwdHI7CiAgIH0KIAogICAvLyBUaGlzICdwcm90ZWN0ZWQ6JyBp
cyBvcHRpb25hbC4gIFRoZXJlJ3Mgbm8gaGFybSBpbiBtYWtpbmcgYWxsCkBAIC02OCwxNCArNjks
MTQgQEAgY2xhc3MgQ29tbW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogICBDb21tb25UZXN0KCkg
OiB2YWx1ZV8oMSkge30KIAotICB2aXJ0dWFsIH5Db21tb25UZXN0KCkgeyBFWFBFQ1RfRVEoMywg
dmFsdWVfKTsgfQorICB+Q29tbW9uVGVzdCgpIG92ZXJyaWRlIHsgRVhQRUNUX0VRKDMsIHZhbHVl
Xyk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlk
ZSB7CiAgICAgRVhQRUNUX0VRKDEsIHZhbHVlXyk7CiAgICAgdmFsdWVfKys7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgRVhQRUNUX0VRKDIsIHZhbHVlXyk7CiAgICAgdmFsdWVfKys7CiAgIH0KQEAgLTg1LDE4ICs4
NiwxNSBAQCBjbGFzcyBDb21tb25UZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1UKiBDb21tb25UZXN0PFQ+OjpzaGFyZWRfID0gTlVMTDsKLQotLy8gVGhp
cyAjaWZkZWYgYmxvY2sgdGVzdHMgdHlwZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RF
U1QKK1QqIENvbW1vblRlc3Q8VD46OnNoYXJlZF8gPSBudWxscHRyOwogCiB1c2luZyB0ZXN0aW5n
OjpUeXBlczsKIAotLy8gVGVzdHMgdGhhdCBTZXRVcFRlc3RDYXNlKCkvVGVhckRvd25UZXN0Q2Fz
ZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKKy8vIFRlc3RzIHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9U
ZWFyRG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKIC8vIGFuZCBTZXRVcCgpL1Rl
YXJEb3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlwZWQgdGVzdHMKIAogdHlwZWRlZiBUeXBlczxj
aGFyLCBpbnQ+IFR3b1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKENvbW1vblRlc3QsIFR3b1R5cGVz
KTsKK1RZUEVEX1RFU1RfU1VJVEUoQ29tbW9uVGVzdCwgVHdvVHlwZXMpOwogCiBUWVBFRF9URVNU
KENvbW1vblRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2Yg
dGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGJlIHZpc2l0ZWQgdmlhCkBAIC0xMjEsMzIg
KzExOSwzMiBAQCBUWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKIFRZ
UEVEX1RFU1QoQ29tbW9uVGVzdCwgVmFsdWVzQXJlU3RpbGxDb3JyZWN0KSB7CiAgIC8vIFN0YXRp
YyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBhbHNvIGJlIHZpc2l0
ZWQKICAgLy8gdmlhICd0aGlzJy4KLSAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBOVUxM
KTsKKyAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VR
KDUsICp0aGlzLT5zaGFyZWRfKTsKIAogICAvLyBUeXBlUGFyYW0gY2FuIGJlIHVzZWQgdG8gcmVm
ZXIgdG8gdGhlIHR5cGUgcGFyYW1ldGVyLgogICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8VHlwZVBh
cmFtPigyKSwgdGhpcy0+dmFsdWVfKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBtdWx0aXBsZSBUWVBF
RF9URVNUX0NBU0UncyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgc2FtZQorLy8gVGVzdHMgdGhhdCBt
dWx0aXBsZSBUWVBFRF9URVNUX1NVSVRFJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKIC8v
IHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRU
ZXN0MSA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLS8vIFZlcmlmaWVzIHRoYXQgdGhlIHNlY29uZCBh
cmd1bWVudCBvZiBUWVBFRF9URVNUX0NBU0UgY2FuIGJlIGEKKy8vIFZlcmlmaWVzIHRoYXQgdGhl
IHNlY29uZCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX1NVSVRFIGNhbiBiZSBhCiAvLyBzaW5nbGUg
dHlwZS4KLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QxLCBpbnQpOworVFlQRURfVEVTVF9TVUlU
RShUeXBlZFRlc3QxLCBpbnQpOwogVFlQRURfVEVTVChUeXBlZFRlc3QxLCBBKSB7fQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdDIgOiBwdWJsaWMgVGVzdCB7CiB9Owog
Ci0vLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9DQVNF
IGNhbiBiZSBhCisvLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURf
VEVTVF9TVUlURSBjYW4gYmUgYQogLy8gVHlwZXM8Li4uPiB0eXBlIGxpc3QuCi1UWVBFRF9URVNU
X0NBU0UoVHlwZWRUZXN0MiwgVHlwZXM8aW50Pik7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVz
dDIsIFR5cGVzPGludD4pOwogCiAvLyBUaGlzIGFsc28gdmVyaWZpZXMgdGhhdCB0ZXN0cyBmcm9t
IGRpZmZlcmVudCB0eXBlZCB0ZXN0IGNhc2VzIGNhbgogLy8gc2hhcmUgdGhlIHNhbWUgbmFtZS4K
QEAgLTE2MSw3ICsxNTksNyBAQCBjbGFzcyBOdW1lcmljVGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07
CiAKIHR5cGVkZWYgVHlwZXM8aW50LCBsb25nPiBOdW1lcmljVHlwZXM7Ci1UWVBFRF9URVNUX0NB
U0UoTnVtZXJpY1Rlc3QsIE51bWVyaWNUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKE51bWVyaWNU
ZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKE51bWVyaWNUZXN0LCBEZWZhdWx0SXNa
ZXJvKSB7CiAgIEVYUEVDVF9FUSgwLCBUeXBlUGFyYW0oKSk7CkBAIC0xNzcsMTA1ICsxNzUsMTAw
IEBAIGNsYXNzIFR5cGVkVGVzdE5hbWVzIHsKICBwdWJsaWM6CiAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0TmFtZShpbnQgaSkgewotICAgIGlmICh0ZXN0
aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGNoYXI+Ojp2YWx1ZSkgeworICAgIGlmIChzdGQ6Omlz
X3NhbWU8VCwgY2hhcj46OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoImNoYXIi
KSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6
OmludGVybmFsOjpJc1NhbWU8VCwgaW50Pjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1l
PFQsIGludD46OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoImludCIpICsgOjp0
ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0KICAgfQogfTsKIAotVFlQRURfVEVTVF9D
QVNFKFR5cGVkVGVzdFdpdGhOYW1lcywgVHdvVHlwZXMsIFR5cGVkVGVzdE5hbWVzKTsKK1RZUEVE
X1RFU1RfU1VJVEUoVHlwZWRUZXN0V2l0aE5hbWVzLCBUd29UeXBlcywgVHlwZWRUZXN0TmFtZXMp
OwogCi1UWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgVGVzdENhc2VOYW1lKSB7Ci0gIGlm
ICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVlKSB7CitU
WVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgVGVzdFN1aXRlTmFtZSkgeworICBpZiAoc3Rk
Ojppc19zYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6
dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+
Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFt
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAg
ICAgICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9jaGFyMCIpOwogICB9Ci0gIGlmICh0ZXN0aW5n
OjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgaW50Pjo6dmFsdWUpIHsKKyAgaWYgKHN0ZDo6
aXNfc2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVz
dGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+Y3Vy
cmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgp
LAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAg
ICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9pbnQxIik7CiAgIH0KIH0KIAotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVAotCi0vLyBUaGlzICNpZmRlZiBibG9jayB0ZXN0cyB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB1c2luZyB0
ZXN0aW5nOjpUeXBlczsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlUFN0
YXRlOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdFN1aXRlUFN0YXRlOwogCi0v
LyBUZXN0cyBUeXBlZFRlc3RDYXNlUFN0YXRlLgorLy8gVGVzdHMgVHlwZWRUZXN0U3VpdGVQU3Rh
dGUuCiAKLWNsYXNzIFR5cGVkVGVzdENhc2VQU3RhdGVUZXN0IDogcHVibGljIFRlc3QgeworY2xh
c3MgVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHN0YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQSIpOwogICAgIHN0
YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQiIpOwogICAgIHN0YXRl
Xy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rlc3QiLCAiQyIpOwogICB9CiAKLSAgVHlw
ZWRUZXN0Q2FzZVBTdGF0ZSBzdGF0ZV87CisgIFR5cGVkVGVzdFN1aXRlUFN0YXRlIHN0YXRlXzsK
IH07CiAKLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgU3VjY2VlZHNGb3JNYXRjaGlu
Z0xpc3QpIHsKK1RFU1RfRihUeXBlZFRlc3RTdWl0ZVBTdGF0ZVRlc3QsIFN1Y2NlZWRzRm9yTWF0
Y2hpbmdMaXN0KSB7CiAgIGNvbnN0IGNoYXIqIHRlc3RzID0gIkEsIEIsIEMiOwogICBFWFBFQ1Rf
RVEodGVzdHMsCi0gICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygi
Zm9vLmNjIiwgMSwgdGVzdHMpKTsKKyAgICAgICAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVk
VGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCB0ZXN0cykpOwogfQogCiAvLyBNYWtlcyBz
dXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSB0ZXN0cyBhbmQgc3BhY2VzIGFyb3VuZCB0aGUgbmFt
ZXMKIC8vIGRvbid0IG1hdHRlci4KLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCwgSWdu
b3Jlc09yZGVyQW5kU3BhY2VzKSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0LCBJ
Z25vcmVzT3JkZXJBbmRTcGFjZXMpIHsKICAgY29uc3QgY2hhciogdGVzdHMgPSAiQSxDLCAgIEIi
OwogICBFWFBFQ1RfRVEodGVzdHMsCi0gICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJl
ZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgdGVzdHMpKTsKKyAgICAgICAgICAgIHN0YXRlXy5WZXJp
ZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCB0ZXN0cykpOwogfQog
Ci10eXBlZGVmIFR5cGVkVGVzdENhc2VQU3RhdGVUZXN0IFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0
aFRlc3Q7Cit1c2luZyBUeXBlZFRlc3RTdWl0ZVBTdGF0ZURlYXRoVGVzdCA9IFR5cGVkVGVzdFN1
aXRlUFN0YXRlVGVzdDsKIAotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERl
dGVjdHNEdXBsaWNhdGVzKSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3Qs
IERldGVjdHNEdXBsaWNhdGVzKSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAg
ICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgIkEsIEIsIEEs
IEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJm
b28uY2MiLCAxLCAiQSwgQiwgQSwgQyIpLAogICAgICAgImZvb1xcLmNjLjEuPzogVGVzdCBBIGlz
IGxpc3RlZCBtb3JlIHRoYW4gb25jZVxcLiIpOwogfQogCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBT
dGF0ZURlYXRoVGVzdCwgRGV0ZWN0c0V4dHJhVGVzdCkgeworVEVTVF9GKFR5cGVkVGVzdFN1aXRl
UFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzRXh0cmFUZXN0KSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9T
VVBQT1JURUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNj
IiwgMSwgIkEsIEIsIEMsIEQiKSwKLSAgICAgICJmb29cXC5jYy4xLj86IE5vIHRlc3QgbmFtZWQg
RCBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IGNhc2VcXC4iKTsKKyAgICAgIHN0YXRlXy5WZXJp
ZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQiwgQywgRCIp
LAorICAgICAgImZvb1xcLmNjLjEuPzogTm8gdGVzdCBuYW1lZCBEIGNhbiBiZSBmb3VuZCBpbiB0
aGlzIHRlc3Qgc3VpdGVcXC4iKTsKIH0KIAotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0
aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVE
ZWF0aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JU
RUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwg
IkEsIEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIs
ICJmb28uY2MiLCAxLCAiQSwgQyIpLAogICAgICAgImZvb1xcLmNjLjEuPzogWW91IGZvcmdvdCB0
byBsaXN0IHRlc3QgQlxcLiIpOwogfQogCiAvLyBUZXN0cyB0aGF0IGRlZmluaW5nIGEgdGVzdCBm
b3IgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBnZW5lcmF0ZXMKIC8vIGEgcnVuLXRpbWUgZXJy
b3IgaWYgdGhlIHRlc3QgY2FzZSBoYXMgYmVlbiByZWdpc3RlcmVkLgotVEVTVF9GKFR5cGVkVGVz
dENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNUZXN0QWZ0ZXJSZWdpc3RyYXRpb24pIHsKLSAg
c3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBCLCBDIik7
CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNUZXN0QWZ0ZXJS
ZWdpc3RyYXRpb24pIHsKKyAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoIlN1aXRl
IiwgImZvby5jYyIsIDEsICJBLCBCLCBDIik7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQo
CiAgICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDIsICJGb29UZXN0IiwgIkQiKSwK
LSAgICAgICJmb29cXC5jYy4yLj86IFRlc3QgRCBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIFJFR0lT
VEVSX1RZUEVEX1RFU1RfQ0FTRV9QIgorICAgICAgImZvb1xcLmNjLjIuPzogVGVzdCBEIG11c3Qg
YmUgZGVmaW5lZCBiZWZvcmUgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QIgogICAgICAgIlxc
KEZvb1Rlc3QsIFxcLlxcLlxcLlxcKVxcLiIpOwogfQogCi0vLyBUZXN0cyB0aGF0IFNldFVwVGVz
dENhc2UoKS9UZWFyRG93blRlc3RDYXNlKCksIGZpeHR1cmUgY3Rvci9kdG9yLAorLy8gVGVzdHMg
dGhhdCBTZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3duVGVzdFN1aXRlKCksIGZpeHR1cmUgY3Rvci9k
dG9yLAogLy8gYW5kIFNldFVwKCkvVGVhckRvd24oKSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlLXBh
cmFtZXRlcml6ZWQgdGVzdHMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgRGVyaXZl
ZFRlc3QgOiBwdWJsaWMgQ29tbW9uVGVzdDxUPiB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChE
ZXJpdmVkVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoRGVyaXZlZFRlc3QpOwogCiBUWVBFRF9U
RVNUX1AoRGVyaXZlZFRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsKICAgLy8gU3RhdGljIG1lbWJl
cnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGJlIHZpc2l0ZWQgdmlhCkBAIC0y
OTIsMTEwICsyODUsMTEwIEBAIFRZUEVEX1RFU1RfUChEZXJpdmVkVGVzdCwgVmFsdWVzQXJlQ29y
cmVjdCkgewogVFlQRURfVEVTVF9QKERlcml2ZWRUZXN0LCBWYWx1ZXNBcmVTdGlsbENvcnJlY3Qp
IHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2Fu
IGFsc28gYmUgdmlzaXRlZAogICAvLyB2aWEgJ3RoaXMnLgotICBBU1NFUlRfVFJVRSh0aGlzLT5z
aGFyZWRfICE9IE5VTEwpOworICBBU1NFUlRfVFJVRSh0aGlzLT5zaGFyZWRfICE9IG51bGxwdHIp
OwogICBFWFBFQ1RfRVEoNSwgKnRoaXMtPnNoYXJlZF8pOwogICBFWFBFQ1RfRVEoMiwgdGhpcy0+
dmFsdWVfKTsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRGVyaXZlZFRlc3QsCitS
RUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRGVyaXZlZFRlc3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXNBcmVDb3JyZWN0LCBWYWx1ZXNBcmVTdGlsbENvcnJlY3QpOwogCiB0
eXBlZGVmIFR5cGVzPHNob3J0LCBsb25nPiBNeVR3b1R5cGVzOwotSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9DQVNFX1AoTXksIERlcml2ZWRUZXN0LCBNeVR3b1R5cGVzKTsKK0lOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChNeSwgRGVyaXZlZFRlc3QsIE15VHdvVHlwZXMpOwogCiAvLyBUZXN0
cyB0aGF0IGN1c3RvbSBuYW1lcyB3b3JrIHdpdGggdHlwZSBwYXJhbWV0cml6ZWQgdGVzdHMuIFdl
IHJldXNlIHRoZQogLy8gVHdvVHlwZXMgZnJvbSBhYm92ZSBoZXJlLgogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBjbGFzcyBUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcyA6IHB1YmxpYyBUZXN0
IHt9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcyk7
CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMpOwogCi1U
WVBFRF9URVNUX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMsIFRlc3RDYXNlTmFtZSkg
ewotICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1
ZSkgeworVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3Vp
dGVOYW1lKSB7CisgIGlmIChzdGQ6OmlzX3NhbWU8VHlwZVBhcmFtLCBjaGFyPjo6dmFsdWUpIHsK
ICAgICBFWFBFQ1RfU1RSRVEoOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKQogICAg
ICAgICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3RfaW5mbygpCi0gICAgICAgICAgICAgICAg
ICAgICAtPnRlc3RfY2FzZV9uYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAtPnRlc3Rfc3Vp
dGVfbmFtZSgpLAogICAgICAgICAgICAgICAgICAiQ3VzdG9tTmFtZS9UeXBlUGFyYW1ldHJpemVk
VGVzdFdpdGhOYW1lcy9wYXJDaGFyMCIpOwogICB9Ci0gIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6
SXNTYW1lPFR5cGVQYXJhbSwgaW50Pjo6dmFsdWUpIHsKKyAgaWYgKHN0ZDo6aXNfc2FtZTxUeXBl
UGFyYW0sIGludD46OnZhbHVlKSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5pdFRl
c3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2lu
Zm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAg
ICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIkN1c3Rv
bU5hbWUvVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMvcGFySW50MSIpOwogICB9CiB9CiAK
LVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVz
LCBUZXN0Q2FzZU5hbWUpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0
cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3VpdGVOYW1lKTsKIAogY2xhc3MgVHlwZVBhcmFtZXRy
aXplZFRlc3ROYW1lcyB7CiAgcHVibGljOgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3Rh
dGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsKLSAgICBpZiAodGVzdGluZzo6aW50ZXJu
YWw6OklzU2FtZTxULCBjaGFyPjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGNo
YXI+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJwYXJDaGFyIikgKyA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5h
bDo6SXNTYW1lPFQsIGludD46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCBpbnQ+
Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJwYXJJbnQiKSArIDo6dGVzdGlu
Zzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9CiAgIH0KIH07CiAKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKEN1c3RvbU5hbWUsIFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLAor
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEN1c3RvbU5hbWUsIFR5cGVQYXJhbWV0cml6
ZWRUZXN0V2l0aE5hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvVHlwZXMs
IFR5cGVQYXJhbWV0cml6ZWRUZXN0TmFtZXMpOwogCi0vLyBUZXN0cyB0aGF0IG11bHRpcGxlIFRZ
UEVEX1RFU1RfQ0FTRV9QJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKKy8vIFRlc3RzIHRo
YXQgbXVsdGlwbGUgVFlQRURfVEVTVF9TVUlURV9QJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNh
bWUKIC8vIHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3Mg
VHlwZWRUZXN0UDEgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBl
ZFRlc3RQMSk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UDEpOwogCi0vLyBGb3IgdGVz
dGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4gVFlQRURfVEVTVF9DQVNFX1AoKSBhbmQKKy8vIEZv
ciB0ZXN0aW5nIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX1NVSVRFX1AoKSBhbmQK
IC8vIFRZUEVEX1RFU1RfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVk
ZWYgaW50IEludEFmdGVyVHlwZWRUZXN0Q2FzZVA7Cit1c2luZyBJbnRBZnRlclR5cGVkVGVzdFN1
aXRlUCA9IGludDsKIAogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAxLCBBKSB7fQogVFlQRURfVEVT
VF9QKFR5cGVkVGVzdFAxLCBCKSB7fQogCiAvLyBGb3IgdGVzdGluZyB0aGF0IHRoZSBjb2RlIGJl
dHdlZW4gVFlQRURfVEVTVF9QKCkgYW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCgp
IGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVkZWYgaW50IEludEJlZm9yZVJl
Z2lzdGVyVHlwZWRUZXN0Q2FzZVA7CisvLyBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoKSBp
cyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCit1c2luZyBJbnRCZWZvcmVSZWdpc3RlclR5
cGVkVGVzdFN1aXRlUCA9IGludDsKIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRU
ZXN0UDEsIEEsIEIpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAxLCBB
LCBCKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQMiA6IHB1Ymxp
YyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAyKTsKK1RZUEVEX1RF
U1RfU1VJVEVfUChUeXBlZFRlc3RQMik7CiAKIC8vIFRoaXMgYWxzbyB2ZXJpZmllcyB0aGF0IHRl
c3RzIGZyb20gZGlmZmVyZW50IHR5cGUtcGFyYW1ldGVyaXplZAogLy8gdGVzdCBjYXNlcyBjYW4g
c2hhcmUgdGhlIHNhbWUgbmFtZS4KIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQMiwgQSkge30KIAot
UkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UDIsIEEpOworUkVHSVNURVJfVFlQ
RURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAyLCBBKTsKIAotLy8gVmVyaWZpZXMgdGhhdCB0aGUg
Y29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfQ0FTRV9QKCkgYW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9U
RVNUX0NBU0VfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KLUludEFmdGVyVHlw
ZWRUZXN0Q2FzZVAgYWZ0ZXIgPSAwOwotSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RDYXNlUCBi
ZWZvcmUgPSAwOworLy8gVmVyaWZpZXMgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVEX1RFU1Rf
U1VJVEVfUCgpIGFuZAorLy8gUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKCkgaXMgbm90IGVu
Y2xvc2VkIGluIGEgbmFtZXNwYWNlLgorSW50QWZ0ZXJUeXBlZFRlc3RTdWl0ZVAgYWZ0ZXIgPSAw
OworSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RTdWl0ZVAgYmVmb3JlID0gMDsKIAotLy8gVmVy
aWZpZXMgdGhhdCB0aGUgbGFzdCBhcmd1bWVudCBvZiBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUCgpCisvLyBWZXJpZmllcyB0aGF0IHRoZSBsYXN0IGFyZ3VtZW50IG9mIElOU1RBTlRJQVRF
X1RZUEVEX1RFU1RfU1VJVEVfUCgpCiAvLyBjYW4gYmUgZWl0aGVyIGEgc2luZ2xlIHR5cGUgb3Ig
YSBUeXBlczwuLi4+IHR5cGUgbGlzdC4KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKElu
dCwgVHlwZWRUZXN0UDEsIGludCk7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChJbnQs
IFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVf
UChJbnQsIFR5cGVkVGVzdFAxLCBpbnQpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9Q
KEludCwgVHlwZWRUZXN0UDIsIFR5cGVzPGludD4pOwogCiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1l
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlCiAvLyBpbnN0YW50aWF0ZWQgbW9y
ZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgdHJhbnNsYXRpb24gdW5pdC4KLUlOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfQ0FTRV9QKERvdWJsZSwgVHlwZWRUZXN0UDIsIFR5cGVzPGRvdWJsZT4pOworSU5T
VEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKERvdWJsZSwgVHlwZWRUZXN0UDIsIFR5cGVzPGRv
dWJsZT4pOwogCiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1lIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0
IGNhc2UgY2FuIGJlCiAvLyBpbnN0YW50aWF0ZWQgaW4gZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVu
aXRzIGxpbmtlZCB0b2dldGhlci4KIC8vIChDb250YWluZXJUZXN0IGlzIGFsc28gaW5zdGFudGlh
dGVkIGluIGd0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYy4pCiB0eXBlZGVmIFR5cGVzPHN0ZDo6dmVj
dG9yPGRvdWJsZT4sIHN0ZDo6c2V0PGNoYXI+ID4gTXlDb250YWluZXJzOwotSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9DQVNFX1AoTXksIENvbnRhaW5lclRlc3QsIE15Q29udGFpbmVycyk7CitJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENvbnRhaW5lclRlc3QsIE15Q29udGFpbmVy
cyk7CiAKIC8vIFRlc3RzIHRoYXQgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBi
ZSBkZWZpbmVkIGFuZAogLy8gaW5zdGFudGlhdGVkIGluIGEgbmFtZXNwYWNlLgpAQCAtNDA2LDcg
KzM5OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgTnVtZXJpY1Rlc3QgOiBwdWJs
aWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChOdW1lcmljVGVzdCk7CitUWVBFRF9U
RVNUX1NVSVRFX1AoTnVtZXJpY1Rlc3QpOwogCiBUWVBFRF9URVNUX1AoTnVtZXJpY1Rlc3QsIERl
ZmF1bHRJc1plcm8pIHsKICAgRVhQRUNUX0VRKDAsIFR5cGVQYXJhbSgpKTsKQEAgLTQxNiw0NiAr
NDA5LDI5IEBAIFRZUEVEX1RFU1RfUChOdW1lcmljVGVzdCwgWmVyb0lzTGVzc1RoYW5PbmUpIHsK
ICAgRVhQRUNUX0xUKFR5cGVQYXJhbSgwKSwgVHlwZVBhcmFtKDEpKTsKIH0KIAotUkVHSVNURVJf
VFlQRURfVEVTVF9DQVNFX1AoTnVtZXJpY1Rlc3QsCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRF
X1AoTnVtZXJpY1Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0SXNaZXJv
LCBaZXJvSXNMZXNzVGhhbk9uZSk7CiB0eXBlZGVmIFR5cGVzPGludCwgZG91YmxlPiBOdW1lcmlj
VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgTnVtZXJpY1Rlc3QsIE51
bWVyaWNUeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIE51bWVyaWNU
ZXN0LCBOdW1lcmljVHlwZXMpOwogCiBzdGF0aWMgY29uc3QgY2hhciogR2V0VGVzdE5hbWUoKSB7
CiAgIHJldHVybiB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0
X2luZm8oKS0+bmFtZSgpOwogfQogLy8gVGVzdCB0aGUgc3RyaXBwaW5nIG9mIHNwYWNlIGZyb20g
dGVzdCBuYW1lcwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRyaW1tZWRUZXN0IDogcHVi
bGljIFRlc3QgeyB9OwotVFlQRURfVEVTVF9DQVNFX1AoVHJpbW1lZFRlc3QpOworVFlQRURfVEVT
VF9TVUlURV9QKFRyaW1tZWRUZXN0KTsKIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVzdDEp
IHsgRVhQRUNUX1NUUkVRKCJUZXN0MSIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9URVNUX1Ao
VHJpbW1lZFRlc3QsIFRlc3QyKSB7IEVYUEVDVF9TVFJFUSgiVGVzdDIiLCBHZXRUZXN0TmFtZSgp
KTsgfQogVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBUZXN0MykgeyBFWFBFQ1RfU1RSRVEoIlRl
c3QzIiwgR2V0VGVzdE5hbWUoKSk7IH0KIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVzdDQp
IHsgRVhQRUNUX1NUUkVRKCJUZXN0NCIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9URVNUX1Ao
VHJpbW1lZFRlc3QsIFRlc3Q1KSB7IEVYUEVDVF9TVFJFUSgiVGVzdDUiLCBHZXRUZXN0TmFtZSgp
KTsgfQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoCitSRUdJU1RFUl9UWVBFRF9URVNUX1NV
SVRFX1AoCiAgICAgVHJpbW1lZFRlc3QsCiAgICAgVGVzdDEsIFRlc3QyLFRlc3QzICwgVGVzdDQg
LFRlc3Q1ICk7ICAvLyBOT0xJTlQKIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+
IHN0cnVjdCBNeVBhaXIge307CiAvLyBCZSBzdXJlIHRvIHRyeSBhIHR5cGUgd2l0aCBhIGNvbW1h
IGluIGl0cyBuYW1lIGp1c3QgaW4gY2FzZSBpdCBtYXR0ZXJzLgogdHlwZWRlZiBUeXBlczxpbnQs
IGRvdWJsZSwgTXlQYWlyPGludCwgaW50PiA+IFRyaW1UeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE15LCBUcmltbWVkVGVzdCwgVHJpbVR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfU1VJVEVfUChNeSwgVHJpbW1lZFRlc3QsIFRyaW1UeXBlcyk7CiAKIH0gIC8vIG5h
bWVzcGFjZSBsaWJyYXJ5MgogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQot
I2lmICFkZWZpbmVkKEdURVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChHVEVTVF9IQVNf
VFlQRURfVEVTVF9QKQotCi0vLyBHb29nbGUgVGVzdCBtYXkgbm90IHN1cHBvcnQgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIHdpdGggc29tZQotLy8gY29tcGlsZXJzLiBJZiB3ZSB1c2UgY29uZGl0
aW9uYWwgY29tcGlsYXRpb24gdG8gY29tcGlsZSBvdXQgYWxsCi0vLyBjb2RlIHJlZmVycmluZyB0
byB0aGUgZ3Rlc3RfbWFpbiBsaWJyYXJ5LCBNU1ZDIGxpbmtlciB3aWxsIG5vdCBsaW5rCi0vLyB0
aGF0IGxpYnJhcnkgYXQgYWxsIGFuZCBjb25zZXF1ZW50bHkgY29tcGxhaW4gYWJvdXQgbWlzc2lu
ZyBlbnRyeQotLy8gcG9pbnQgZGVmaW5lZCBpbiB0aGF0IGxpYnJhcnkgKGZhdGFsIGVycm9yIExO
SzE1NjE6IGVudHJ5IHBvaW50Ci0vLyBtdXN0IGJlIGRlZmluZWQpLiBUaGlzIGR1bW15IHRlc3Qg
a2VlcHMgZ3Rlc3RfbWFpbiBsaW5rZWQgaW4uCi1URVNUKER1bW15VGVzdCwgVHlwZWRUZXN0c0Fy
ZU5vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7fQotCi0jaWYgX01TQ19WRVIKLUdURVNUX0RJ
U0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQxMjcKLSNlbmRpZiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gIF9NU0NfVkVSCi0KLSNlbmRpZiAgLy8gI2lmICFkZWZpbmVkKEdU
RVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVF9QKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0
X3Rlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90
ZXN0LmgKaW5kZXggMmNjZTY3YzgyNWE2Y2FiZGI5YTU0YjkxOTI5YzAwYzk5MmEwZDQ3Yy4uOGNl
NTU5Yzk5ZjczNDFjZWI4YTBiMmI4OWM0YjFhOTcwMjZmYTVhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5oCkBAIC0yNywx
NCArMjcsMTEgQEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotCi0jaWZuZGVm
IEdURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX1RFU1Rf
R1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfVEVTVF9HVEVTVF9U
WVBFRF9URVNUX1RFU1RfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9URVNUX0dURVNUX1RZUEVEX1RF
U1RfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNUX0hBU19U
WVBFRF9URVNUX1AKLQogdXNpbmcgdGVzdGluZzo6VGVzdDsKIAogLy8gRm9yIHRlc3RpbmcgdGhh
dCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQpAQCAtNDYsNyAr
NDMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIENvbnRhaW5lclRlc3QgOiBwdWJs
aWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChDb250YWluZXJUZXN0KTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChDb250YWluZXJUZXN0KTsKIAogVFlQRURfVEVTVF9QKENvbnRhaW5lclRl
c3QsIENhbkJlRGVmYXVsdENvbnN0cnVjdGVkKSB7CiAgIFR5cGVQYXJhbSBjb250YWluZXI7CkBA
IC01Nyw5ICs1NCw3IEBAIFRZUEVEX1RFU1RfUChDb250YWluZXJUZXN0LCBJbml0aWFsU2l6ZUlz
WmVybykgewogICBFWFBFQ1RfRVEoMFUsIGNvbnRhaW5lci5zaXplKCkpOwogfQogCi1SRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChDb250YWluZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ2FuQmVEZWZhdWx0Q29uc3RydWN0ZWQsIEluaXRpYWxTaXplSXNaZXJvKTsKLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRF
X1AoQ29udGFpbmVyVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5CZURlZmF1
bHRDb25zdHJ1Y3RlZCwgSW5pdGlhbFNpemVJc1plcm8pOwogCi0jZW5kaWYgIC8vIEdURVNUX1RF
U1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfVEVTVF9H
VEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjCmluZGV4IGYzZWEwM2E1OTZkMGY5
OWEzOTEyNTI2MzBkY2ExMDYyMjkzMTEyZmMuLjhlZjUwNTgzOGM3MGRmYzZlMzM1NGU4NTE4OWZj
M2ZhZjBiMGFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYwpAQCAtNTEsNjEgKzUxLDU2IEBAIHN0cnVjdCBM
ZXNzQnlOYW1lIHsKIAogY2xhc3MgVW5pdFRlc3RIZWxwZXIgewogIHB1YmxpYzoKLSAgLy8gUmV0
dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3QgY2FzZXMgc29ydGVkIGJ5IHRo
ZSB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRl
c3Qgc3VpdGVzIHNvcnRlZCBieSB0aGUgdGVzdCBzdWl0ZQogICAvLyBuYW1lLiAgVGhlIGNhbGxl
ciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIGFycmF5LgotICBzdGF0aWMgVGVzdENh
c2UgY29uc3QqKiBHZXRTb3J0ZWRUZXN0Q2FzZXMoKSB7CisgIHN0YXRpYyBUZXN0U3VpdGUgY29u
c3QqKiBHZXRTb3J0ZWRUZXN0U3VpdGVzKCkgewogICAgIFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAq
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7Ci0gICAgVGVzdENhc2UgY29uc3QqKiBjb25zdCB0ZXN0
X2Nhc2VzID0KLSAgICAgICAgbmV3IGNvbnN0IFRlc3RDYXNlKlt1bml0X3Rlc3QudG90YWxfdGVz
dF9jYXNlX2NvdW50KCldOworICAgIGF1dG8gY29uc3QqKiBjb25zdCB0ZXN0X3N1aXRlcyA9IG5l
dyBjb25zdCBUZXN0U3VpdGUqW3N0YXRpY19jYXN0PHNpemVfdD4oCisgICAgICB1bml0X3Rlc3Qu
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpKV07CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHVu
aXRfdGVzdC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsgKytpKQotICAgICAgdGVzdF9jYXNlc1tp
XSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHVu
aXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkKKyAgICAgIHRlc3Rfc3VpdGVz
W2ldID0gdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKIAotICAgIHN0ZDo6c29ydCh0ZXN0X2Nh
c2VzLAotICAgICAgICAgICAgICB0ZXN0X2Nhc2VzICsgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2Fz
ZV9jb3VudCgpLAotICAgICAgICAgICAgICBMZXNzQnlOYW1lPFRlc3RDYXNlPigpKTsKLSAgICBy
ZXR1cm4gdGVzdF9jYXNlczsKKyAgICBzdGQ6OnNvcnQodGVzdF9zdWl0ZXMsCisgICAgICAgICAg
ICAgIHRlc3Rfc3VpdGVzICsgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSwKKyAg
ICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0U3VpdGU+KCkpOworICAgIHJldHVybiB0ZXN0X3N1
aXRlczsKICAgfQogCi0gIC8vIFJldHVybnMgdGhlIHRlc3QgY2FzZSBieSBpdHMgbmFtZS4gIFRo
ZSBjYWxsZXIgZG9lc24ndCBvd24gdGhlIHJldHVybmVkCisgIC8vIFJldHVybnMgdGhlIHRlc3Qg
c3VpdGUgYnkgaXRzIG5hbWUuICBUaGUgY2FsbGVyIGRvZXNuJ3Qgb3duIHRoZSByZXR1cm5lZAog
ICAvLyBwb2ludGVyLgotICBzdGF0aWMgY29uc3QgVGVzdENhc2UqIEZpbmRUZXN0Q2FzZShjb25z
dCBjaGFyKiBuYW1lKSB7CisgIHN0YXRpYyBjb25zdCBUZXN0U3VpdGUqIEZpbmRUZXN0U3VpdGUo
Y29uc3QgY2hhciogbmFtZSkgewogICAgIFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAqVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgICAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2Fz
ZSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICAgIGlmICgwID09IHN0cmNtcCh0ZXN0
X2Nhc2UtPm5hbWUoKSwgbmFtZSkpCi0gICAgICAgIHJldHVybiB0ZXN0X2Nhc2U7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kp
IHsKKyAgICAgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IHVuaXRfdGVzdC5HZXRUZXN0
U3VpdGUoaSk7CisgICAgICBpZiAoMCA9PSBzdHJjbXAodGVzdF9zdWl0ZS0+bmFtZSgpLCBuYW1l
KSkKKyAgICAgICAgcmV0dXJuIHRlc3Rfc3VpdGU7CiAgICAgfQotICAgIHJldHVybiBOVUxMOwor
ICAgIHJldHVybiBudWxscHRyOwogICB9CiAKLSAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9p
bnRlcnMgdG8gYWxsIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJu
cyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0
IHN1aXRlCiAgIC8vIHNvcnRlZCBieSB0aGUgdGVzdCBuYW1lLiAgVGhlIGNhbGxlciBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlCiAgIC8vIGFycmF5LgotICBzdGF0aWMgVGVzdEluZm8g
Y29uc3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAg
VGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9Ci0gICAgICAgIG5ldyBjb25zdCBUZXN0SW5m
bypbdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCldOworICBzdGF0aWMgVGVzdEluZm8gY29u
c3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgICBU
ZXN0SW5mbyBjb25zdCoqIGNvbnN0IHRlc3RzID0gbmV3IGNvbnN0IFRlc3RJbmZvKltzdGF0aWNf
Y2FzdDxzaXplX3Q+KAorICAgICAgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpKV07CiAK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpOyAr
K2kpCi0gICAgICB0ZXN0c1tpXSA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkKKyAg
ICAgIHRlc3RzW2ldID0gdGVzdF9zdWl0ZS0+R2V0VGVzdEluZm8oaSk7CiAKLSAgICBzdGQ6OnNv
cnQodGVzdHMsIHRlc3RzICsgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCksCisgICAgc3Rk
Ojpzb3J0KHRlc3RzLCB0ZXN0cyArIHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKSwKICAg
ICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0SW5mbz4oKSk7CiAgICAgcmV0dXJuIHRlc3RzOwog
ICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBjbGFzcyBUZXN0Q2FzZVdpdGhDb21tZW50VGVzdCA6IHB1YmxpYyBUZXN0IHt9OwotVFlQRURf
VEVTVF9DQVNFKFRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LCBUeXBlczxpbnQ+KTsKLVRZUEVEX1RF
U1QoVGVzdENhc2VXaXRoQ29tbWVudFRlc3QsIER1bW15KSB7fQordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGNsYXNzIFRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdCA6IHB1YmxpYyBUZXN0IHt9OworVFlQ
RURfVEVTVF9TVUlURShUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QsIFR5cGVzPGludD4pOworVFlQ
RURfVEVTVChUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QsIER1bW15KSB7fQogCi1jb25zdCBpbnQg
a1R5cGVkVGVzdENhc2VzID0gMTsKK2NvbnN0IGludCBrVHlwZWRUZXN0U3VpdGVzID0gMTsKIGNv
bnN0IGludCBrVHlwZWRUZXN0cyA9IDE7Ci0jZWxzZQotY29uc3QgaW50IGtUeXBlZFRlc3RDYXNl
cyA9IDA7Ci1jb25zdCBpbnQga1R5cGVkVGVzdHMgPSAwOwotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVAogCiAvLyBXZSBjYW4gb25seSB0ZXN0IHRoZSBhY2Nlc3NvcnMgdGhhdCBkbyBu
b3QgY2hhbmdlIHZhbHVlIHdoaWxlIHRlc3RzIHJ1bi4KIC8vIFNpbmNlIHRlc3RzIGNhbiBiZSBy
dW4gaW4gYW55IG9yZGVyLCB0aGUgdmFsdWVzIHRoZSBhY2Nlc3NvcnMgdGhhdCB0cmFjawpAQCAt
MTEzLDIxICsxMDgsMTkgQEAgY29uc3QgaW50IGtUeXBlZFRlc3RzID0gMDsKIFRFU1QoQXBpVGVz
dCwgVW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3JrKSB7CiAgIFVuaXRUZXN0KiB1bml0X3Rl
c3QgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKIAotICBBU1NFUlRfRVEoMiArIGtUeXBlZFRl
c3RDYXNlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X2Nhc2VfY291bnQoKSk7Ci0gIEVYUEVDVF9F
USgxICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3QtPnRlc3RfY2FzZV90b19ydW5fY291bnQo
KSk7CisgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdFN1aXRlcywgdW5pdF90ZXN0LT50b3RhbF90
ZXN0X3N1aXRlX2NvdW50KCkpOworICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RTdWl0ZXMsIHVu
aXRfdGVzdC0+dGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSk7CiAgIEVYUEVDVF9FUSgyLCB1bml0
X3Rlc3QtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CiAgIEVYUEVDVF9FUSg1ICsga1R5cGVkVGVz
dHMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jb3VudCgpKTsKICAgRVhQRUNUX0VRKDMgKyBrVHlw
ZWRUZXN0cywgdW5pdF90ZXN0LT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0
Q2FzZSoqIGNvbnN0IHRlc3RfY2FzZXMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdENh
c2VzKCk7CisgIGNvbnN0IFRlc3RTdWl0ZSoqIGNvbnN0IHRlc3Rfc3VpdGVzID0gVW5pdFRlc3RI
ZWxwZXI6OkdldFNvcnRlZFRlc3RTdWl0ZXMoKTsKIAotICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3Qi
LCB0ZXN0X2Nhc2VzWzBdLT5uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3Qi
LCB0ZXN0X2Nhc2VzWzFdLT5uYW1lKCkpOwotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gIEVY
UEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2FzZXNbMl0tPm5h
bWUoKSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCisgIEVYUEVDVF9TVFJFUSgi
QXBpVGVzdCIsIHRlc3Rfc3VpdGVzWzBdLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkRJU0FC
TEVEX1Rlc3QiLCB0ZXN0X3N1aXRlc1sxXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0
U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rfc3VpdGVzWzJdLT5uYW1lKCkpOwogCi0gIGRl
bGV0ZVtdIHRlc3RfY2FzZXM7CisgIGRlbGV0ZVtdIHRlc3Rfc3VpdGVzOwogCiAgIC8vIFRoZSBm
b2xsb3dpbmcgbGluZXMgaW5pdGlhdGUgYWN0aW9ucyB0byB2ZXJpZnkgY2VydGFpbiBtZXRob2Rz
IGluCiAgIC8vIEZpbmFsU3VjY2Vzc0NoZWNrZXI6OlRlYXJEb3duLgpAQCAtMTM3LDE2MCArMTMw
LDE1NyBAQCBURVNUKEFwaVRlc3QsIFVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29yaykgewog
fQogCiBBc3NlcnRpb25SZXN1bHQgSXNOdWxsKGNvbnN0IGNoYXIqIHN0cikgewotICBpZiAoc3Ry
ICE9IE5VTEwpIHsKKyAgaWYgKHN0ciAhPSBudWxscHRyKSB7CiAgICAgcmV0dXJuIHRlc3Rpbmc6
OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiYXJndW1lbnQgaXMgIiA8PCBzdHI7CiAgIH0KICAgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIH0KIAotVEVTVChBcGlUZXN0LCBUZXN0Q2FzZUltbXV0
YWJsZUFjY2Vzc29yc1dvcmspIHsKLSAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVuaXRU
ZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIkFwaVRlc3QiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9j
YXNlICE9IE5VTEwpOworVEVTVChBcGlUZXN0LCBUZXN0U3VpdGVJbW11dGFibGVBY2Nlc3NvcnNX
b3JrKSB7CisgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpG
aW5kVGVzdFN1aXRlKCJBcGlUZXN0Iik7CisgIEFTU0VSVF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVs
bHB0cik7CiAKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9jYXNlLT5uYW1lKCkpOwot
ICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9jYXNlLT50eXBlX3BhcmFtKCkpKTsKLSAgRVhQRUNU
X1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNl
LT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMywgdGVzdF9jYXNlLT50ZXN0
X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDQsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9j
b3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9zdWl0ZS0+bmFtZSgpKTsK
KyAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3VpdGUtPnR5cGVfcGFyYW0oKSkpOworICBFWFBF
Q1RfVFJVRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkpOworICBFWFBFQ1RfRVEoMSwgdGVzdF9z
dWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDMsIHRlc3Rfc3VpdGUt
PnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRfRVEoNCwgdGVzdF9zdWl0ZS0+dG90YWxf
dGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0SW5mbyoqIHRlc3RzID0gVW5pdFRlc3RIZWxw
ZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgIGNvbnN0IFRlc3RJbmZvKiogdGVzdHMg
PSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHModGVzdF9zdWl0ZSk7CiAKICAgRVhQRUNU
X1NUUkVRKCJESVNBQkxFRF9EdW1teTEiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NU
UkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RS
RVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJV
RShJc051bGwodGVzdHNbMF0tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxs
KHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpKTsKICAgRVhQRUNUX0ZBTFNFKHRlc3RzWzBdLT5zaG91
bGRfcnVuKCkpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dv
cmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNb
MV0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZURpc2FibGVk
QWNjZXNzb3JzV29yayIsIHRlc3RzWzFdLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkFwaVRl
c3QiLCB0ZXN0c1sxXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJVRShJc051bGwo
dGVzdHNbMV0tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFd
LT50eXBlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUodGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7
CiAKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZUltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0
c1syXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3Rf
Y2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZUltbXV0YWJsZUFjY2Vzc29y
c1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVz
dHNbMl0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJd
LT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1syXS0+dHlwZV9w
YXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKHRlc3RzWzJdLT5zaG91bGRfcnVuKCkpOwogCiAgIEVY
UEVDVF9TVFJFUSgiVW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbM10tPm5h
bWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzNdLT50ZXN0X2Nhc2VfbmFt
ZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFt
ZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzNdLT52YWx1ZV9wYXJhbSgpKSk7CiAg
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1szXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9U
UlVFKHRlc3RzWzNdLT5zaG91bGRfcnVuKCkpOwogCiAgIGRlbGV0ZVtdIHRlc3RzOwotICB0ZXN0
cyA9IE5VTEw7CisgIHRlc3RzID0gbnVsbHB0cjsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0gIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIlRlc3RDYXNlV2l0
aENvbW1lbnRUZXN0LzAiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9jYXNlICE9IE5VTEwpOworICB0
ZXN0X3N1aXRlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0U3VpdGUoIlRlc3RTdWl0ZVdpdGhD
b21tZW50VGVzdC8wIik7CisgIEFTU0VSVF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVsbHB0cik7CiAK
LSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9jYXNlLT5u
YW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3Rf
Y2FzZS0+dHlwZV9wYXJhbSgpKTsKLSAgRVhQRUNUX1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVu
KCkpOwotICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwot
ICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJU
X0VRKDEsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJU
ZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rfc3VpdGUtPm5hbWUoKSk7CisgIEVYUEVD
VF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3Rfc3VpdGUtPnR5
cGVfcGFyYW0oKSk7CisgIEVYUEVDVF9UUlVFKHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4oKSk7Cisg
IEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOworICBFWFBF
Q1RfRVEoMSwgdGVzdF9zdWl0ZS0+dGVzdF90b19ydW5fY291bnQoKSk7CisgIEFTU0VSVF9FUSgx
LCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCkpOwogCi0gIHRlc3RzID0gVW5pdFRlc3RI
ZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgIHRlc3RzID0gVW5pdFRlc3RIZWxw
ZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwogCiAgIEVYUEVDVF9TVFJFUSgiRHVtbXki
LCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50
VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRl
c3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsK
ICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gIEVYUEVD
VF9TVFJFUShHZXRUeXBlTmFtZTxpbnQ+KCkuY19zdHIoKSwgdGVzdHNbMF0tPnR5cGVfcGFyYW0o
KSk7CisgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRl
c3RzWzBdLT50eXBlX3BhcmFtKCkpOwogICBFWFBFQ1RfVFJVRSh0ZXN0c1swXS0+c2hvdWxkX3J1
bigpKTsKIAogICBkZWxldGVbXSB0ZXN0czsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1QKIH0KIAotVEVTVChBcGlUZXN0LCBUZXN0Q2FzZURpc2FibGVkQWNjZXNzb3JzV29yaykgewot
ICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2Fz
ZSgiRElTQUJMRURfVGVzdCIpOwotICBBU1NFUlRfVFJVRSh0ZXN0X2Nhc2UgIT0gTlVMTCk7CitU
RVNUKEFwaVRlc3QsIFRlc3RTdWl0ZURpc2FibGVkQWNjZXNzb3JzV29yaykgeworICBjb25zdCBU
ZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiRElT
QUJMRURfVGVzdCIpOworICBBU1NFUlRfVFJVRSh0ZXN0X3N1aXRlICE9IG51bGxwdHIpOwogCi0g
IEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3RfY2FzZS0+bmFtZSgpKTsKLSAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9GQUxT
RSh0ZXN0X2Nhc2UtPnNob3VsZF9ydW4oKSk7Ci0gIEVYUEVDVF9FUSgxLCB0ZXN0X2Nhc2UtPmRp
c2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2UtPnRlc3RfdG9f
cnVuX2NvdW50KCkpOwotICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50
KCkpOworICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X3N1aXRlLT5uYW1lKCkp
OworICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9zdWl0ZS0+dHlwZV9wYXJhbSgpKSk7CisgIEVY
UEVDVF9GQUxTRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkpOworICBFWFBFQ1RfRVEoMSwgdGVz
dF9zdWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDAsIHRlc3Rfc3Vp
dGUtPnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRfRVEoMSwgdGVzdF9zdWl0ZS0+dG90
YWxfdGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0g
dGVzdF9jYXNlLT5HZXRUZXN0SW5mbygwKTsKKyAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3Rf
aW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKDApOwogICBFWFBFQ1RfU1RSRVEoIkR1bW15
MiIsIHRlc3RfaW5mby0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0Iiwg
dGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9U
ZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVs
bCh0ZXN0X2luZm8tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rf
aW5mby0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9GQUxTRSh0ZXN0X2luZm8tPnNob3VsZF9y
dW4oKSk7CiB9CiAKIC8vIFRoZXNlIHR3byB0ZXN0cyBhcmUgaGVyZSB0byBwcm92aWRlIHN1cHBv
cnQgZm9yIHRlc3RpbmcKLS8vIHRlc3RfY2FzZV90b19ydW5fY291bnQsIGRpc2FibGVkX3Rlc3Rf
Y291bnQsIGFuZCB0ZXN0X3RvX3J1bl9jb3VudC4KKy8vIHRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50
LCBkaXNhYmxlZF90ZXN0X2NvdW50LCBhbmQgdGVzdF90b19ydW5fY291bnQuCiBURVNUKEFwaVRl
c3QsIERJU0FCTEVEX0R1bW15MSkge30KIFRFU1QoRElTQUJMRURfVGVzdCwgRHVtbXkyKSB7fQog
CiBjbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyIDogcHVibGljIEVudmlyb25tZW50IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92
ZXJyaWRlIHsKICAgICBVbml0VGVzdCogdW5pdF90ZXN0ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCk7CiAKLSAgICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT5zdWNj
ZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RT
dWl0ZXMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCkpOwogICAgIEVY
UEVDVF9FUSgzICsga1R5cGVkVGVzdHMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50
KCkpOwotICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3QtPmZhaWxlZF90ZXN0X2Nhc2VfY291bnQo
KSk7CisgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQo
KSk7CiAgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CiAg
ICAgRVhQRUNUX1RSVUUodW5pdF90ZXN0LT5QYXNzZWQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVu
aXRfdGVzdC0+RmFpbGVkKCkpOwotICAgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdENhc2VzLCB1
bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpKTsKLQotICAgIGNvbnN0IFRlc3RDYXNl
KiogY29uc3QgdGVzdF9jYXNlcyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0Q2FzZXMo
KTsKLQotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RfY2FzZXNbMF0tPm5hbWUoKSk7
Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZXNbMF0tPnR5cGVfcGFyYW0oKSkpOwot
ICAgIEVYUEVDVF9UUlVFKHRlc3RfY2FzZXNbMF0tPnNob3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNU
X0VRKDEsIHRlc3RfY2FzZXNbMF0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgQVNTRVJU
X0VRKDQsIHRlc3RfY2FzZXNbMF0tPnRvdGFsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX0VR
KDMsIHRlc3RfY2FzZXNbMF0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1Rf
RVEoMCwgdGVzdF9jYXNlc1swXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdF9jYXNlc1swXS0+UGFzc2VkKCkpOwotICAgIEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2Vz
WzBdLT5GYWlsZWQoKSk7Ci0KLSAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0
X2Nhc2VzWzFdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2VzWzFd
LT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UodGVzdF9jYXNlc1sxXS0+c2hvdWxk
X3J1bigpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlc1sxXS0+ZGlzYWJsZWRfdGVzdF9j
b3VudCgpKTsKLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlc1sxXS0+dG90YWxfdGVzdF9jb3Vu
dCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1sxXS0+c3VjY2Vzc2Z1bF90ZXN0X2Nv
dW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2VzWzFdLT5mYWlsZWRfdGVzdF9jb3Vu
dCgpKTsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gICAgRVhQRUNUX1NUUkVRKCJUZXN0
Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9jYXNlc1syXS0+bmFtZSgpKTsKLSAgICBFWFBF
Q1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3RfY2FzZXNbMl0tPnR5cGVf
cGFyYW0oKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1syXS0+c2hvdWxkX3J1bigpKTsK
LSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1syXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsK
LSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlc1syXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLSAg
ICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwot
ICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2VzWzJdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRSh0ZXN0X2Nhc2VzWzJdLT5QYXNzZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KHRlc3RfY2FzZXNbMl0tPkZhaWxlZCgpKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLQotICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6Rmlu
ZFRlc3RDYXNlKCJBcGlUZXN0Iik7Ci0gICAgY29uc3QgVGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRU
ZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICAgIEFTU0VSVF9FUSgyICsg
a1R5cGVkVGVzdFN1aXRlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkpOwor
CisgICAgY29uc3QgVGVzdFN1aXRlKiogY29uc3QgdGVzdF9zdWl0ZXMgPSBVbml0VGVzdEhlbHBl
cjo6R2V0U29ydGVkVGVzdFN1aXRlcygpOworCisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdF9zdWl0ZXNbMF0tPm5hbWUoKSk7CisgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3Vp
dGVzWzBdLT50eXBlX3BhcmFtKCkpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X3N1aXRlc1swXS0+
c2hvdWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZXNbMF0tPmRpc2FibGVk
X3Rlc3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VRKDQsIHRlc3Rfc3VpdGVzWzBdLT50b3RhbF90
ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgzLCB0ZXN0X3N1aXRlc1swXS0+c3VjY2Vzc2Z1
bF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1swXS0+ZmFpbGVk
X3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNbMF0tPlBhc3NlZCgp
KTsKKyAgICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZXNbMF0tPkZhaWxlZCgpKTsKKworICAgIEVY
UEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3Rfc3VpdGVzWzFdLT5uYW1lKCkpOworICAg
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRlc1sxXS0+dHlwZV9wYXJhbSgpKSk7CisgICAg
RVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVzWzFdLT5zaG91bGRfcnVuKCkpOworICAgIEVYUEVDVF9F
USgxLCB0ZXN0X3N1aXRlc1sxXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAgICBBU1NFUlRf
RVEoMSwgdGVzdF9zdWl0ZXNbMV0tPnRvdGFsX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX0VR
KDAsIHRlc3Rfc3VpdGVzWzFdLT5zdWNjZXNzZnVsX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNU
X0VRKDAsIHRlc3Rfc3VpdGVzWzFdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKKworICAgIEVYUEVD
VF9TVFJFUSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X3N1aXRlc1syXS0+bmFt
ZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigp
LAorICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlc1syXS0+dHlwZV9wYXJhbSgpKTsKKyAgICBF
WFBFQ1RfVFJVRSh0ZXN0X3N1aXRlc1syXS0+c2hvdWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEo
MCwgdGVzdF9zdWl0ZXNbMl0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VR
KDEsIHRlc3Rfc3VpdGVzWzJdLT50b3RhbF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgx
LCB0ZXN0X3N1aXRlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9F
USgwLCB0ZXN0X3N1aXRlc1syXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX1RS
VUUodGVzdF9zdWl0ZXNbMl0tPlBhc3NlZCgpKTsKKyAgICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0
ZXNbMl0tPkZhaWxlZCgpKTsKKworICAgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9IFVu
aXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJBcGlUZXN0Iik7CisgICAgY29uc3QgVGVzdElu
Zm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsK
ICAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX0R1bW15MSIsIHRlc3RzWzBdLT5uYW1lKCkpOwot
ICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9zdWl0ZV9uYW1lKCkp
OwogICAgIEVYUEVDVF9GQUxTRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigpKTsKIAotICAgIEVYUEVD
VF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgp
KTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+dGVzdF9jYXNlX25hbWUo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0
ZXN0c1sxXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+
dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sxXS0+dmFs
dWVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sxXS0+dHlwZV9wYXJh
bSgpKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7CiAgICAgRVhQ
RUNUX1RSVUUodGVzdHNbMV0tPnJlc3VsdCgpLT5QYXNzZWQoKSk7CiAgICAgRVhQRUNUX0VRKDAs
IHRlc3RzWzFdLT5yZXN1bHQoKS0+dGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKIAotICAgIEVYUEVD
VF9TVFJFUSgiVGVzdENhc2VJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUo
KSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3RfY2FzZV9uYW1l
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlSW1tdXRhYmxlQWNjZXNzb3JzV29yayIs
IHRlc3RzWzJdLT5uYW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJd
LT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT52
YWx1ZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT50eXBlX3Bh
cmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1syXS0+c2hvdWxkX3J1bigpKTsKQEAgLTI5
OCw3ICsyODgsNyBAQCBjbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyIDogcHVibGljIEVudmlyb25t
ZW50IHsKICAgICBFWFBFQ1RfRVEoMCwgdGVzdHNbMl0tPnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5
X2NvdW50KCkpOwogCiAgICAgRVhQRUNUX1NUUkVRKCJVbml0VGVzdEltbXV0YWJsZUFjY2Vzc29y
c1dvcmsiLCB0ZXN0c1szXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0
ZXN0c1szXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVz
dHNbM10tPnZhbHVlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10t
PnR5cGVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzNdLT5zaG91bGRfcnVuKCkp
OwpAQCAtMzEwLDIxICszMDAsMTkgQEAgY2xhc3MgRmluYWxTdWNjZXNzQ2hlY2tlciA6IHB1Ymxp
YyBFbnZpcm9ubWVudCB7CiAKICAgICBkZWxldGVbXSB0ZXN0czsKIAotI2lmIEdURVNUX0hBU19U
WVBFRF9URVNUCi0gICAgdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgi
VGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIpOwotICAgIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6
OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgICAgdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVs
cGVyOjpGaW5kVGVzdFN1aXRlKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIpOworICAgIHRl
c3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwogCiAgICAg
RVhQRUNUX1NUUkVRKCJEdW1teSIsIHRlc3RzWzBdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9TVFJF
USgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNb
MF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMF0t
PnZhbHVlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNf
c3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOworICAgIEVYUEVDVF9TVFJFUShHZXRUeXBl
TmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOwogICAg
IEVYUEVDVF9UUlVFKHRlc3RzWzBdLT5zaG91bGRfcnVuKCkpOwogICAgIEVYUEVDVF9UUlVFKHRl
c3RzWzBdLT5yZXN1bHQoKS0+UGFzc2VkKCkpOwogICAgIEVYUEVDVF9FUSgwLCB0ZXN0c1swXS0+
cmVzdWx0KCktPnRlc3RfcHJvcGVydHlfY291bnQoKSk7CiAKICAgICBkZWxldGVbXSB0ZXN0czsK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLSAgICBkZWxldGVbXSB0ZXN0X2Nhc2Vz
OworICAgIGRlbGV0ZVtdIHRlc3Rfc3VpdGVzOwogICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5jYwppbmRleCBlNjFlMzZiMWRmZThkYTAz
MDE2YWY1Nzg1NWIyYzc4MWVlN2Q5MWU2Li42MTViMjliNzA2NTE2YjE1ZmZiNmQxYWU1MTVhZTlh
NTY2MDBiODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X2FsbF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYWxs
X3Rlc3QuY2MKQEAgLTMzLDE0ICszMywxNCBAQAogLy8gU29tZXRpbWVzIGl0J3MgZGVzaXJhYmxl
IHRvIGJ1aWxkIG1vc3Qgb2YgR29vZ2xlIFRlc3QncyBvd24gdGVzdHMKIC8vIGJ5IGNvbXBpbGlu
ZyBhIHNpbmdsZSBmaWxlLiAgVGhpcyBmaWxlIHNlcnZlcyB0aGlzIHB1cnBvc2UuCiAjaW5jbHVk
ZSAidGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9nb29n
bGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRlc3QtbWVz
c2FnZS10ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1vcHRpb25zLXRlc3QuY2Mi
CiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LXBvcnQtdGVzdC5jYyIKLSNpbmNsdWRlICJ0ZXN0
L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyIKLSNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3Byb2Rf
dGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MiCi0j
aW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9n
dGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVz
dF90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIgor
I2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJvZF90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3Rf
c2tpcF90ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MiCiAjaW5jbHVk
ZSAidGVzdC9wcm9kdWN0aW9uLmNjIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYwppbmRleCAw
ZWFlODU3NWYzZmVlMzBiYWM2NDJiYTE1ODlmZjIzNGQwN2Y5NDU0Li5hZGE0Y2IzMGVmNjhjNTVk
YjgxMzU2NTI5MTg2ODM0ZTI1YzFhYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRpb25fdGVzdC5jYwpA
QCAtODAsOCArODAsNyBAQCBURVNUKFRlc3QsIFRlc3QpIHsKICAgdHJ5IHsKICAgICBBc3NlcnRG
YWxzZSgpOwogICB9IGNhdGNoKGNvbnN0IHRlc3Rpbmc6OkFzc2VydGlvbkV4Y2VwdGlvbiYgZSkg
ewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBmYWlsdXJlIikgIT0gTlVMTCkK
LSAgICAgIHRocm93OworICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBmYWlsdXJl
IikgIT0gbnVsbHB0cikgdGhyb3c7CiAKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkEg
ZmFpbGVkIGFzc2VydGlvbiBkaWQgdGhyb3cgYW4gZXhjZXB0aW9uIG9mIHRoZSByaWdodCB0eXBl
LCAiCkBAIC05Nyw3ICs5Niw2IEBAIFRFU1QoVGVzdCwgVGVzdCkgewogaW50IGtUZXN0Rm9yQ29u
dGludWluZ1Rlc3QgPSAwOwogCiBURVNUKFRlc3QsIFRlc3QyKSB7Ci0gIC8vIEZJWE1FOiBob3cg
dG8gZm9yY2UgVGVzdDIgdG8gYmUgYWZ0ZXIgVGVzdD8KICAga1Rlc3RGb3JDb250aW51aW5nVGVz
dCA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfZW52aXJvbm1lbnRfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfZW52aXJvbm1lbnRfdGVzdC5jYwppbmRleCBiYzk1MjRkNjYzNzNlNzE5NTFjYWNjZDkwNmMw
NjZlZjRhZjk0YjQ2Li4wNjRiZmM1MGI5MTg0NTFlMjkwN2JkNTg1NjY3M2RkY2QyNzAxOTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Vudmlyb25tZW50
X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9lbnZpcm9u
bWVudF90ZXN0LmNjCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIE15RW52aXJvbm1lbnQgOiBwdWJs
aWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogICAvLyBEZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9m
IGZhaWx1cmVfaW5fc2V0X3VwXywgU2V0VXAoKSB3aWxsCiAgIC8vIGdlbmVyYXRlIGEgbm9uLWZh
dGFsIGZhaWx1cmUsIGdlbmVyYXRlIGEgZmF0YWwgZmFpbHVyZSwgb3IKICAgLy8gc3VjY2VlZC4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IHNldF91cF93YXNfcnVuXyA9IHRydWU7CiAKICAgICBzd2l0Y2ggKGZhaWx1cmVfaW5fc2V0X3Vw
XykgewpAQCAtNjksNyArNjksNyBAQCBjbGFzcyBNeUVudmlyb25tZW50IDogcHVibGljIHRlc3Rp
bmc6OkVudmlyb25tZW50IHsKICAgfQogCiAgIC8vIEdlbmVyYXRlcyBhIG5vbi1mYXRhbCBmYWls
dXJlLgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7CiAgICAgdGVhcl9kb3duX3dhc19ydW5fID0gdHJ1ZTsKICAgICBBRERfRkFJTFVSRSgp
IDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZSBpbiBnbG9iYWwgdGVhci1kb3duLiI7CiAg
IH0KQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIENoZWNrKGJvb2wgY29uZGl0aW9uLCBjb25zdCBj
aGFyKiBtc2cpIHsKICAgfQogfQogCi0vLyBSdW5zIHRoZSB0ZXN0cy4gIFJldHVybiB0cnVlIGlm
ZiBzdWNjZXNzZnVsLgorLy8gUnVucyB0aGUgdGVzdHMuICBSZXR1cm4gdHJ1ZSBpZiBhbmQgb25s
eSBpZiBzdWNjZXNzZnVsLgogLy8KIC8vIFRoZSAnZmFpbHVyZScgcGFyYW1ldGVyIHNwZWNpZmll
cyB0aGUgdHlwZSBvZiBmYWlsdXJlIHRoYXQgc2hvdWxkCiAvLyBiZSBnZW5lcmF0ZWQgYnkgdGhl
IGdsb2JhbCBzZXQtdXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X2hlbHBfdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
aGVscF90ZXN0LnB5CmluZGV4IDU4MmQyNGMyZGNjZTg5NDUzOGFhNjNjY2JkNjEyMGJkZDRiMzUw
YTAuLjhkOTUzYmJkOWRjNGRiNzIzNjdhOTUwODIxMzIyNGU4ODBiZWEwYzMgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0LnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0LnB5CkBAIC00Myw2ICs0
Myw3IEBAIGltcG9ydCBndGVzdF90ZXN0X3V0aWxzCiAKIAogSVNfTElOVVggPSBvcy5uYW1lID09
ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0xpbnV4JworSVNfR05VS0ZSRUVCU0QgPSBv
cy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0dOVS9rRnJlZUJTRCcKIElT
X1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKIAogUFJPR1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91
dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoJ2d0ZXN0X2hlbHBfdGVzdF8nKQpAQCAtNjgsNiAr
NjksNyBAQCBIRUxQX1JFR0VYID0gcmUuY29tcGlsZSgKICAgICBGTEFHX1BSRUZJWCArIHInc2h1
ZmZsZS4qJyArCiAgICAgRkxBR19QUkVGSVggKyByJ3JhbmRvbV9zZWVkPS4qJyArCiAgICAgRkxB
R19QUkVGSVggKyByJ2NvbG9yPS4qJyArCisgICAgRkxBR19QUkVGSVggKyByJ2JyaWVmLionICsK
ICAgICBGTEFHX1BSRUZJWCArIHIncHJpbnRfdGltZS4qJyArCiAgICAgRkxBR19QUkVGSVggKyBy
J291dHB1dD0uKicgKwogICAgIEZMQUdfUFJFRklYICsgcidicmVha19vbl9mYWlsdXJlLionICsK
QEAgLTExMCw3ICsxMTIsNyBAQCBjbGFzcyBHVGVzdEhlbHBUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMu
VGVzdENhc2UpOgogICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIGV4aXRfY29kZSkKICAgICBzZWxm
LmFzc2VydF8oSEVMUF9SRUdFWC5zZWFyY2gob3V0cHV0KSwgb3V0cHV0KQogCi0gICAgaWYgSVNf
TElOVVg6CisgICAgaWYgSVNfTElOVVggb3IgSVNfR05VS0ZSRUVCU0Q6CiAgICAgICBzZWxmLmFz
c2VydF8oU1RSRUFNX1JFU1VMVF9UT19GTEFHIGluIG91dHB1dCwgb3V0cHV0KQogICAgIGVsc2U6
CiAgICAgICBzZWxmLmFzc2VydF8oU1RSRUFNX1JFU1VMVF9UT19GTEFHIG5vdCBpbiBvdXRwdXQs
IG91dHB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5CmluZGV4IDNiYmE3ZWEyY2ZkMzdjYWQ1NTA5ZjQw
ZjhlOGIwMDIyNzA2YmU3ODQuLmE0NDJmYzE2OWM4N2ZjMGRlYmI0MmQzNTJiMjhjNjM3MWRlZjMw
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9v
dXRwdXRfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9saXN0X291dHB1dF91bml0dGVzdC5weQpAQCAtNDYsMTYgKzQ2LDQyIEBAIEdURVNUX0xJU1Rf
VEVTVFNfRkxBRyA9ICctLWd0ZXN0X2xpc3RfdGVzdHMnCiBHVEVTVF9PVVRQVVRfRkxBRyA9ICct
LWd0ZXN0X291dHB1dCcKIAogRVhQRUNURURfWE1MID0gIiIiPFw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ilw/PgotPHRlc3RzdWl0ZXMgdGVzdHM9IjIiIG5hbWU9IkFsbFRlc3Rz
Ij4KKzx0ZXN0c3VpdGVzIHRlc3RzPSIxNiIgbmFtZT0iQWxsVGVzdHMiPgogICA8dGVzdHN1aXRl
IG5hbWU9IkZvb1Rlc3QiIHRlc3RzPSIyIj4KICAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEiIGZp
bGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0MyIgLz4KICAgICA8
dGVzdGNhc2UgbmFtZT0iVGVzdDIiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3Rf
LmNjIiBsaW5lPSI0NSIgLz4KICAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iRm9v
VGVzdEZpeHR1cmUiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDMiIGZpbGU9
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0OCIgLz4KKyAgICA8dGVz
dGNhc2UgbmFtZT0iVGVzdDQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNj
IiBsaW5lPSI0OSIgLz4KKyAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iVHlwZWRU
ZXN0LzAiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDciIHR5cGVfcGFyYW09
ImludCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYwIiAv
PgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0OCIgdHlwZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRl
PgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMiI+CisgICAgPHRlc3Rj
YXNlIG5hbWU9IlRlc3Q3IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0
cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjAiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q4
IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YyIgbGluZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlNpbmds
ZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IlRlc3Q5IiB0eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRf
dW5pdHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEwIiB0
eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBs
aW5lPSI2NyIgLz4KKyAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2UgbmFt
ZT0iVGVzdDkiIHR5cGVfcGFyYW09ImJvb2wiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDEwIiB0eXBl
X3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGlu
ZT0iNjciIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlZhbHVlUGFyYW0v
VmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDUvMCIg
dmFsdWVfcGFyYW09IjMzIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIg
bGluZT0iNTIiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q1LzEiIHZhbHVlX3BhcmFtPSI0
MiIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjUyIiAvPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0Ni8wIiB2YWx1ZV9wYXJhbT0iMzMiIGZpbGU9Ii4qZ3Rl
c3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI1MyIgLz4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iVGVzdDYvMSIgdmFsdWVfcGFyYW09IjQyIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNTMiIC8+CisgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVz
PgogIiIiCiAKIEVYUEVDVEVEX0pTT04gPSAiIiJ7Ci0gICJ0ZXN0cyI6IDIsCisgICJ0ZXN0cyI6
IDE2LAogICAibmFtZSI6ICJBbGxUZXN0cyIsCiAgICJ0ZXN0c3VpdGVzIjogXFsKICAgICB7CkBA
IC03Myw2ICs5OSwxMjQgQEAgRVhQRUNURURfSlNPTiA9ICIiInsKICAgICAgICAgICAibGluZSI6
IDQ1CiAgICAgICAgIH0KICAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJG
b29UZXN0Rml4dHVyZSIsCisgICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxb
CisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MyIsCisgICAgICAgICAgImZpbGUi
OiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjog
NDgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q0IiwKKyAg
ICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAg
ICAgICAgImxpbmUiOiA0OQorICAgICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWUiOiAiVHlwZWRUZXN0XFxcXC8wIiwKKyAgICAgICJ0ZXN0cyI6IDIsCisgICAgICAi
dGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q3IiwKKyAg
ICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDYwCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0OCIsCisgICAgICAgICAgInR5
cGVfcGFyYW0iOiAiaW50IiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2MQorICAgICAgICB9CisgICAgICBc
XQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVHlwZWRUZXN0XFxcXC8xIiwKKyAgICAg
ICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAg
ICJuYW1lIjogIlRlc3Q3IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAgICAg
ICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAg
ICAgImxpbmUiOiA2MAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAi
VGVzdDgiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxl
IjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6
IDYxCisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJT
aW5nbGVcXFxcL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlXFxcXC8wIiwKKyAgICAgICJ0ZXN0
cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1l
IjogIlRlc3Q5IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAgICAgICAgICJm
aWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGlu
ZSI6IDY2CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MTAi
LAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImludCIsCisgICAgICAgICAgImZpbGUiOiAiLipn
dGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNjcKKyAg
ICAgICAgfQorICAgICAgXF0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlNpbmdsZVxc
XFwvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVcXFxcLzEiLAorICAgICAgInRlc3RzIjogMiwK
KyAgICAgICJ0ZXN0c3VpdGUiOiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVz
dDkiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxlIjog
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY2
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0MTAiLAorICAg
ICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY3CisgICAgICAg
IH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJWYWx1ZVBhcmFtXFxc
XC9WYWx1ZVBhcmFtVGVzdCIsCisgICAgICAidGVzdHMiOiA0LAorICAgICAgInRlc3RzdWl0ZSI6
IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NVxcXFwvMCIsCisgICAgICAg
ICAgInZhbHVlX3BhcmFtIjogIjMzIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rf
b3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDVcXFxcLzEiLAorICAgICAgICAgICJ2
YWx1ZV9wYXJhbSI6ICI0MiIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1
dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNTIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q2XFxcXC8wIiwKKyAgICAgICAgICAidmFsdWVf
cGFyYW0iOiAiMzMiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDUzCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAibmFtZSI6ICJUZXN0NlxcXFwvMSIsCisgICAgICAgICAgInZhbHVlX3BhcmFt
IjogIjQyIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MworICAgICAgICB9CisgICAgICBcXQogICAgIH0K
ICAgXF0KIH0KQEAgLTExNCw4ICsyNTgsOSBAQCBjbGFzcyBHVGVzdExpc3RUZXN0c091dHB1dFVu
aXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIHAgPSBndGVzdF90ZXN0X3V0
aWxzLlN1YnByb2Nlc3MoCiAgICAgICAgIGNvbW1hbmQsIGVudj1lbnZpcm9uX2NvcHksIHdvcmtp
bmdfZGlyPWd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVtcERpcigpKQogCi0gICAgc2VsZi5hc3NlcnRf
KHAuZXhpdGVkKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIHAuZXhpdF9jb2RlKQorICAgIHNl
bGYuYXNzZXJ0VHJ1ZShwLmV4aXRlZCkKKyAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHAuZXhpdF9j
b2RlKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShmaWxlX3BhdGgpKQogICAg
IHdpdGggb3BlbihmaWxlX3BhdGgpIGFzIGY6CiAgICAgICByZXN1bHQgPSBmLnJlYWQoKQogICAg
IHJldHVybiByZXN1bHQKQEAgLTEyOCw3ICsyNzMsNyBAQCBjbGFzcyBHVGVzdExpc3RUZXN0c091
dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIGZvciBhY3R1YWxf
bGluZSBpbiBhY3R1YWxfbGluZXM6CiAgICAgICBleHBlY3RlZF9saW5lID0gZXhwZWN0ZWRfbGlu
ZXNbbGluZV9jb3VudF0KICAgICAgIGV4cGVjdGVkX2xpbmVfcmUgPSByZS5jb21waWxlKGV4cGVj
dGVkX2xpbmUuc3RyaXAoKSkKLSAgICAgIHNlbGYuYXNzZXJ0XygKKyAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgKICAgICAgICAgICBleHBlY3RlZF9saW5lX3JlLm1hdGNoKGFjdHVhbF9saW5lLnN0cmlw
KCkpLAogICAgICAgICAgICgnYWN0dWFsIG91dHB1dCBvZiAiJXMiLFxuJwogICAgICAgICAgICAn
d2hpY2ggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVnZXggb2YgIiVzIlxuJwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVz
dF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYwppbmRleCBiMWM3YjRkZTM0NjFmYzE2NDVmNDExYjcxZjllMzdmODIyNGZkOGE2
Li45MmI5ZDRmMjhlZWMwM2E1ZmVhNzUzOTY3NDJlZDY4ODQ4MjZmMGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3Vu
aXR0ZXN0Xy5jYwpAQCAtNDQsNiArNDQsMzIgQEAgVEVTVChGb29UZXN0LCBUZXN0MSkge30KIAog
VEVTVChGb29UZXN0LCBUZXN0Mikge30KIAorY2xhc3MgRm9vVGVzdEZpeHR1cmUgOiBwdWJsaWMg
Ojp0ZXN0aW5nOjpUZXN0IHt9OworVEVTVF9GKEZvb1Rlc3RGaXh0dXJlLCBUZXN0Mykge30KK1RF
U1RfRihGb29UZXN0Rml4dHVyZSwgVGVzdDQpIHt9CisKK2NsYXNzIFZhbHVlUGFyYW1UZXN0IDog
cHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworVEVTVF9QKFZhbHVlUGFy
YW1UZXN0LCBUZXN0NSkge30KK1RFU1RfUChWYWx1ZVBhcmFtVGVzdCwgVGVzdDYpIHt9CitJTlNU
QU5USUFURV9URVNUX1NVSVRFX1AoVmFsdWVQYXJhbSwgVmFsdWVQYXJhbVRlc3QsIDo6dGVzdGlu
Zzo6VmFsdWVzKDMzLCA0MikpOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFR5cGVk
VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307Cit0eXBlZGVmIHRlc3Rpbmc6OlR5cGVz
PGludCwgYm9vbD4gVHlwZWRUZXN0VHlwZXM7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdCwg
VHlwZWRUZXN0VHlwZXMpOworVFlQRURfVEVTVChUeXBlZFRlc3QsIFRlc3Q3KSB7fQorVFlQRURf
VEVTVChUeXBlZFRlc3QsIFRlc3Q4KSB7fQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNz
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlIDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsK
K1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSk7CitUWVBFRF9U
RVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUsIFRlc3Q5KSB7fQorVFlQRURfVEVTVF9Q
KFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBUZXN0MTApIHt9CitSRUdJU1RFUl9UWVBFRF9U
RVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUsIFRlc3Q5LCBUZXN0MTApOwor
dHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGJvb2w+IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChTaW5n
bGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXMpOworCiBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywg
YXJndik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
cHJlZF9pbXBsX3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MKaW5kZXggYjQ2NmMxNTBhZWRjNDNmZGIxMDM3M2I3YTgw
MmNjYmU3NzU3OTBmOC4uYmJlZjk5NDdkOTlkYTQzYTY0NTVmMzA4Y2ExN2I3YjZjYjMwMWJmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVkX2ltcGxf
dW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVk
X2ltcGxfdW5pdHRlc3QuY2MKQEAgLTI3LDcgKzI3LDcgQEAKIC8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotLy8gVGhpcyBmaWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9u
IDAxLzAyLzIwMTggYnkgY29tbWFuZAorLy8gVGhpcyBmaWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VO
RVJBVEVEIG9uIDExLzA1LzIwMTkgYnkgY29tbWFuZAogLy8gJ2dlbl9ndGVzdF9wcmVkX2ltcGwu
cHkgNScuICBETyBOT1QgRURJVCBCWSBIQU5EIQogCiAvLyBSZWdyZXNzaW9uIHRlc3QgZm9yIGd0
ZXN0X3ByZWRfaW1wbC5oCkBAIC03OCw5ICs3OCw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uMShUMSB2
MSkgewogICByZXR1cm4gdjEgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlv
bnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGlj
aCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0
aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBh
IGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRl
bXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb24x
SW50KGludCB2MSkgewogICByZXR1cm4gdjEgPiAwOwogfQpAQCAtMTIyLDEzICsxMjEsMTMgQEAg
c3RydWN0IFByZWRGb3JtYXRGdW5jdG9yMSB7CiAKIGNsYXNzIFByZWRpY2F0ZTFUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkg
eworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0
cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOwogICAgIG4xXyA9IDA7CiAgIH0KIAotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAg
Ly8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2
YWx1YXRlZAogICAgIC8vIGV4YWN0bHkgb25jZS4KICAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PApA
QCAtMTQ0LDEwICsxNDMsMTAgQEAgY2xhc3MgUHJlZGljYXRlMVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMg
Ym9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAK
ICAgc3RhdGljIGludCBuMV87CkBAIC00NjUsOSArNDY0LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24y
KFQxIHYxLCBUMiB2MikgewogICByZXR1cm4gdjEgKyB2MiA+IDA7CiB9CiAKLS8vIFRoZSBmb2xs
b3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8v
IGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0
ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJl
IG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0
IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBi
b29sIFByZWRGdW5jdGlvbjJJbnQoaW50IHYxLCBpbnQgdjIpIHsKICAgcmV0dXJuIHYxICsgdjIg
PiAwOwogfQpAQCAtNTE0LDEzICs1MTIsMTMgQEAgc3RydWN0IFByZWRGb3JtYXRGdW5jdG9yMiB7
CiAKIGNsYXNzIFByZWRpY2F0ZTJUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3Rl
Y3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
ewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNl
OwogICAgIG4xXyA9IG4yXyA9IDA7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNo
IG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAgIC8vIGV4YWN0
bHkgb25jZS4KICAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8PApAQCAtNTM5LDEwICs1MzcsMTAgQEAg
Y2xhc3MgUHJlZGljYXRlMlRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9
CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRv
IGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBl
eHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5p
c2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNo
LgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8g
ZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CkBA
IC04OTQsOSArODkyLDggQEAgYm9vbCBQcmVkRnVuY3Rpb24zKFQxIHYxLCBUMiB2MiwgVDMgdjMp
IHsKICAgcmV0dXJuIHYxICsgdjIgKyB2MyA+IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdv
IGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1
LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQot
Ly8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBi
ZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cg
d2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRG
dW5jdGlvbjNJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2MykgewogICByZXR1cm4gdjEgKyB2MiAr
IHYzID4gMDsKIH0KQEAgLTk0OCwxMyArOTQ1LDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3Rv
cjMgewogCiBjbGFzcyBQcmVkaWNhdGUzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBw
cm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJy
aWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBm
YWxzZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRl
YXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVz
IHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAg
ICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTk3NiwxMCAr
OTczLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
ICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVk
IHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVu
Y3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0
ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVu
IHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBk
aWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBp
bnQgbjFfOwpAQCAtMTM2NSw5ICsxMzYyLDggQEAgYm9vbCBQcmVkRnVuY3Rpb240KFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCA+IDA7CiB9
CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZl
bnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3
aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3
byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisv
LyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBp
bnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjRJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2
MywgaW50IHY0KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCA+IDA7CiB9CkBAIC0xNDI0
LDEzICsxNDIwLDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjQgewogCiBjbGFzcyBQcmVk
aWNhdGU0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3Rl
ZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSBu
Ml8gPSBuM18gPSBuNF8gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewor
ICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBv
ZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5
IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTE0NTUsMTAgKzE0NTEsMTAgQEAg
Y2xhc3MgUHJlZGljYXRlNFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9
CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRv
IGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBl
eHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5p
c2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNo
LgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8g
ZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CkBA
IC0xODc4LDkgKzE4NzQsOCBAQCBib29sIFByZWRGdW5jdGlvbjUoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1KSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgKyB2NCArIHY1ID4gMDsK
IH0KIAotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3Vt
dmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVt
IHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlvbi4KKy8vIFRoZSBmb2xsb3dpbmcg
dHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGJlY2F1c2UgYSBjb21waWxlciBkb2Vzbid0IGhhdmUK
Ky8vIGEgY29udGV4dCB5ZXQgdG8ga25vdyB3aGljaCB0ZW1wbGF0ZSBmdW5jdGlvbiBtdXN0IGJl
IGluc3RhbnRpYXRlZC4KIGJvb2wgUHJlZEZ1bmN0aW9uNUludChpbnQgdjEsIGludCB2MiwgaW50
IHYzLCBpbnQgdjQsIGludCB2NSkgewogICByZXR1cm4gdjEgKyB2MiArIHYzICsgdjQgKyB2NSA+
IDA7CiB9CkBAIC0xOTQyLDEzICsxOTM3LDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjUg
ewogCiBjbGFzcyBQcmVkaWNhdGU1VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90
ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxz
ZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSBuNF8gPSBuNV8gPSAwOwogICB9CiAKLSAgdmlydHVh
bCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8v
IFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFs
dWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAg
LTE5NzYsMTAgKzE5NzEsMTAgQEAgY2xhc3MgUHJlZGljYXRlNVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0
aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0aWMg
Ym9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87CiAK
ICAgc3RhdGljIGludCBuMV87CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MKaW5kZXggYzFlOTMwNTZkOGI1NjJj
NTlmZWJhODI3OGUyMGMyOWRmMTNlMTkxNS4uMWQxMTg3ZWZmMDA2Y2M4ODc1MGVmOTU3ODI5ZDU4
MGFjNjkwMzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYwpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3Bh
Y2UgewogCiBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6
Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIGZpbGUgZXhpc3RzLgorICAvLyBSZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVuIGZpbGUgZXhpc3RzLgogICBzdGF0aWMg
Ym9vbCBGaWxlRXhpc3RzKGNvbnN0IGNoYXIqIGZpbGVwYXRoKSB7CiAgICAgU3RhdFN0cnVjdCBz
dGF0OwogICAgIHJldHVybiBTdGF0KGZpbGVwYXRoLCAmc3RhdCkgPT0gMDsKQEAgLTU2LDEyICs1
NiwxMiBAQCBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBwcmVt
YXR1cmVfZXhpdF9maWxlX3BhdGhfID0gR2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUi
KTsKIAogICAgIC8vIE5vcm1hbGl6ZSBOVUxMIHRvICIiIGZvciBlYXNlIG9mIGhhbmRsaW5nLgot
ICAgIGlmIChwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfID09IE5VTEwpIHsKKyAgICBpZiAocHJl
bWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSBudWxscHRyKSB7CiAgICAgICBwcmVtYXR1cmVfZXhp
dF9maWxlX3BhdGhfID0gIiI7CiAgICAgfQogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCiAgIGJvb2wgUHJlbWF0dXJl
RXhpdEZpbGVFeGlzdHMoKSBjb25zdCB7CiAgICAgcmV0dXJuIEZpbGVFeGlzdHMocHJlbWF0dXJl
X2V4aXRfZmlsZV9wYXRoXyk7CiAgIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKICAgLy8gVGVzdCB0aGF0IHRoZSBwcmVtYXR1cmUtZXhpdCBm
aWxlIGlzIGRlbGV0ZWQgdXBvbiByZXR1cm4gZnJvbQogICAvLyBSVU5fQUxMX1RFU1RTKCkuCiAg
IGNvbnN0IGNoYXIqIGNvbnN0IGZpbGVwYXRoID0gR2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElU
X0ZJTEUiKTsKLSAgaWYgKGZpbGVwYXRoICE9IE5VTEwgJiYgKmZpbGVwYXRoICE9ICdcMCcpIHsK
KyAgaWYgKGZpbGVwYXRoICE9IG51bGxwdHIgJiYgKmZpbGVwYXRoICE9ICdcMCcpIHsKICAgICBp
ZiAoUHJlbWF0dXJlRXhpdFRlc3Q6OkZpbGVFeGlzdHMoZmlsZXBhdGgpKSB7CiAgICAgICBwcmlu
dGYoCiAgICAgICAgICAgIkZpbGUgJXMgc2hvdWxkbid0IGV4aXN0IGFmdGVyIHRoZSB0ZXN0IHBy
b2dyYW0gZmluaXNoZXMsIGJ1dCBkb2VzLiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYwppbmRleCAxZThmNDk5YmI5ZGUzZDE0YmNiM2Ji
MWE2NDFjMDZkN2ExMjUwYWQyLi43ZGE0YTE1ZWExNDE5ODlmODY0MjZhNTcyYmFjMGE1OGIzM2Y3
NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVh
dF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcmVwZWF0
X3Rlc3QuY2MKQEAgLTc0LDggKzc0LDggQEAgaW50IGdfZW52aXJvbm1lbnRfdGVhcl9kb3duX2Nv
dW50ID0gMDsKIGNsYXNzIE15RW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1l
bnQgewogIHB1YmxpYzoKICAgTXlFbnZpcm9ubWVudCgpIHt9Ci0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsgZ19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQrKzsgfQotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7IGdfZW52aXJvbm1lbnRfdGVhcl9kb3duX2NvdW50Kys7IH0KKyAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsgZ19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQrKzsgfQorICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgeyBnX2Vudmlyb25tZW50X3RlYXJfZG93bl9jb3VudCsrOyB9CiB9
OwogCiAvLyBBIHRlc3QgdGhhdCBzaG91bGQgZmFpbC4KQEAgLTExNywxMyArMTE3LDEyIEBAIGNv
bnN0IGludCBrTnVtYmVyT2ZQYXJhbVRlc3RzID0gMTA7CiBjbGFzcyBNeVBhcmFtVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CiAKIFRFU1RfUChNeVBhcmFtVGVz
dCwgU2hvdWxkUGFzcykgewotICAvLyBGSVhNRTogTWFrZSBwYXJhbWV0ZXIgdmFsdWUgY2hlY2tp
bmcgcm9idXN0IFdSVCBvcmRlciBvZiB0ZXN0cy4KICAgR1RFU1RfQ0hFQ0tfSU5UX0VRXyhnX3Bh
cmFtX3Rlc3RfY291bnQgJSBrTnVtYmVyT2ZQYXJhbVRlc3RzLCBHZXRQYXJhbSgpKTsKICAgZ19w
YXJhbV90ZXN0X2NvdW50Kys7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChNeVBhcmFtU2Vx
dWVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBNeVBhcmFtVGVzdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3Rpbmc6OlJhbmdlKDAsIGtOdW1iZXJPZlBhcmFtVGVzdHMpKTsKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNeVBhcmFtU2VxdWVuY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgTXlQYXJhbVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6
UmFuZ2UoMCwga051bWJlck9mUGFyYW1UZXN0cykpOwogCiAvLyBSZXNldHMgdGhlIGNvdW50IGZv
ciBlYWNoIHRlc3QuCiB2b2lkIFJlc2V0Q291bnRzKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0LnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0ZTYzYWI4OTdkOTYyOGM2NzFjOTM2NGIxZjMzOTE3MDMyNjg1NjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBf
Y2hlY2tfb3V0cHV0X3Rlc3QucHkKQEAgLTAsMCArMSw1OSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjCisjIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlRlc3RzIEdvb2dsZSBUZXN0J3MgZ3Rlc3Qgc2tpcCBp
biBlbnZpcm9ubWVudCBzZXR1cCAgYmVoYXZpb3IuCisKK1RoaXMgc2NyaXB0IGludm9rZXMgZ3Rl
c3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0XyBhbmQgdmVyaWZpZXMgaXRzCitvdXRw
dXQuCisiIiIKKworaW1wb3J0IHJlCisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0
aCB0byB0aGUgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0IGJpbmFyeQorRVhF
X1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgnZ3Rlc3Rfc2tp
cF90ZXN0JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFU
SF0pLm91dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNraXBFbnRpcmVFbnZpcm9ubWVudFRlc3Qo
Z3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAgZGVmIHRlc3RTa2lwRW50aXJlRW52aXJv
bm1lbnRUZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0SW4oJ1NraXBwZWRcbnNraXBwaW5nIHNp
bmdsZSB0ZXN0XG4nLCBPVVRQVVQpCisgICAgc2tpcF9maXh0dXJlID0gJ1NraXBwZWRcbnNraXBw
aW5nIGFsbCB0ZXN0cyBmb3IgdGhpcyBmaXh0dXJlXG4nCisgICAgc2VsZi5hc3NlcnRJc05vdE5v
bmUoCisgICAgICAgIHJlLnNlYXJjaChza2lwX2ZpeHR1cmUgKyAnLionICsgc2tpcF9maXh0dXJl
LCBPVVRQVVQsIGZsYWdzPXJlLkRPVEFMTCksCisgICAgICAgIHJlcHIoT1VUUFVUKSkKKyAgICBz
ZWxmLmFzc2VydE5vdEluKCdGQUlMRUQnLCBPVVRQVVQpCisKKworaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGlscy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9ubWVudF9jaGVja19vdXRwdXRf
dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9u
bWVudF9jaGVja19vdXRwdXRfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTc5MTU1NmFhNzFlNTYyM2Ez
NTdhZjgyMjcxM2I0ZGYyMTc2NDAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2Vudmlyb25tZW50X2NoZWNrX291dHB1dF90ZXN0LnB5
CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQg
MjAxOSBHb29nbGUgTExDLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisiIiJUZXN0cyBHb29nbGUgVGVzdCdzIGd0ZXN0IHNraXAgaW4gZW52aXJvbm1lbnQgc2V0dXAg
IGJlaGF2aW9yLgorCitUaGlzIHNjcmlwdCBpbnZva2VzIGd0ZXN0X3NraXBfaW5fZW52aXJvbm1l
bnRfc2V0dXBfdGVzdF8gYW5kIHZlcmlmaWVzIGl0cworb3V0cHV0LgorIiIiCisKK2ltcG9ydCBn
dGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0aCB0byB0aGUgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVu
dF9zZXR1cF90ZXN0IGJpbmFyeQorRVhFX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RF
eGVjdXRhYmxlUGF0aCgKKyAgICAnZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0
JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFUSF0pLm91
dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNraXBFbnRpcmVFbnZpcm9ubWVudFRlc3QoZ3Rlc3Rf
dGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAgZGVmIHRlc3RTa2lwRW50aXJlRW52aXJvbm1lbnRU
ZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0SW4oJ1NraXBwaW5nIHRoZSBlbnRpcmUgZW52aXJv
bm1lbnQnLCBPVVRQVVQpCisgICAgc2VsZi5hc3NlcnROb3RJbignRkFJTEVEJywgT1VUUFVUKQor
CisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfaW5f
ZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNzIz
MTA2MzgxNmUwNDdhY2RkMmZiNDE2ZGE4MGU0OTg2NDM4YmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0
dXBfdGVzdC5jYwpAQCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgMjAxOSwgR29vZ2xlIExM
Qy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIExMQy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisvLworLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgc2tpcHBpbmcg
aW4gdGhlIGVudmlyb25tZW50IHJlc3VsdHMgaW4gdGhlCisvLyB0ZXN0Y2FzZXMgYmVpbmcgc2tp
cHBlZC4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisK
K2NsYXNzIFNldHVwRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewor
IHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgR1RFU1RfU0tJUCgpIDw8ICJTa2lw
cGluZyB0aGUgZW50aXJlIGVudmlyb25tZW50IjsgfQorfTsKKworVEVTVChUZXN0LCBBbHdheXNG
YWlscykgeyBFWFBFQ1RfRVEodHJ1ZSwgZmFsc2UpOyB9CisKK2ludCBtYWluKGludCBhcmdjLCBj
aGFyICoqYXJndikgeworICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisK
KyAgdGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBTZXR1cEVudmlyb25tZW50
KCkpOworCisgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF90ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhMjMwMDRjY2Ez
NjgxNGVjM2JmN2UwYzEyNDQ0NGFkNjQ3NzBjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYwpAQCAtMCwwICsxLDU1IEBA
CisvLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgorLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8g
ZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy8vCisvLyBBdXRo
b3I6IGFyc2VueS5hcHJlbGV2QGdtYWlsLmNvbSAoQXJzZW55IEFwcmVsZXYpCisvLworCisjaW5j
bHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKwordXNpbmcgOjp0ZXN0aW5nOjpUZXN0OworCitURVNUKFNr
aXBUZXN0LCBEb2VzU2tpcCkgeworICBHVEVTVF9TS0lQKCkgPDwgInNraXBwaW5nIHNpbmdsZSB0
ZXN0IjsKKyAgRVhQRUNUX0VRKDAsIDEpOworfQorCitjbGFzcyBGaXh0dXJlIDogcHVibGljIFRl
c3QgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBHVEVTVF9T
S0lQKCkgPDwgInNraXBwaW5nIGFsbCB0ZXN0cyBmb3IgdGhpcyBmaXh0dXJlIjsKKyAgfQorfTsK
KworVEVTVF9GKEZpeHR1cmUsIFNraXBzT25lVGVzdCkgeworICBFWFBFQ1RfRVEoNSwgNyk7Cit9
CisKK1RFU1RfRihGaXh0dXJlLCBTa2lwc0Fub3RoZXJUZXN0KSB7CisgIEVYUEVDVF9FUSg5OSwg
MTAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
c3RyZXNzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3N0cmVz
c190ZXN0LmNjCmluZGV4IDk1YWRhMzljMzM3ZDBkNGVjZTZmZjViMzIzMmRlOTZjM2Q1OTg2YmQu
Ljg0MzQ4MTkxMGYwM2Y2OTg5NzczYzU4NmI4ZTExZWRkYmQ2MDM0Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNzX3Rlc3QuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9zdHJlc3NfdGVzdC5jYwpAQCAtNDUsNyAr
NDUsNiBAQCBuYW1lc3BhY2UgewogdXNpbmcgaW50ZXJuYWw6Ok5vdGlmaWNhdGlvbjsKIHVzaW5n
IGludGVybmFsOjpUZXN0UHJvcGVydHlLZXlJczsKIHVzaW5nIGludGVybmFsOjpUaHJlYWRXaXRo
UGFyYW07Ci11c2luZyBpbnRlcm5hbDo6c2NvcGVkX3B0cjsKIAogLy8gSW4gb3JkZXIgdG8gcnVu
IHRlc3RzIGluIHRoaXMgZmlsZSwgZm9yIHBsYXRmb3JtcyB3aGVyZSBHb29nbGUgVGVzdCBpcwog
Ly8gdGhyZWFkIHNhZmUsIGltcGxlbWVudCBUaHJlYWRXaXRoUGFyYW0uIFNlZSB0aGUgZGVzY3Jp
cHRpb24gb2YgaXRzIEFQSQpAQCAtMTE5LDcgKzExOCw3IEBAIHZvaWQgQ2hlY2tUZXN0RmFpbHVy
ZUNvdW50KGludCBleHBlY3RlZF9mYWlsdXJlcykgewogLy8gY29uY3VycmVudGx5LgogVEVTVChT
dHJlc3NUZXN0LCBDYW5Vc2VTY29wZWRUcmFjZUFuZEFzc2VydGlvbnNJbk1hbnlUaHJlYWRzKSB7
CiAgIHsKLSAgICBzY29wZWRfcHRyPFRocmVhZFdpdGhQYXJhbTxpbnQ+ID4gdGhyZWFkc1trVGhy
ZWFkQ291bnRdOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRXaXRoUGFyYW08aW50PiA+IHRo
cmVhZHNba1RocmVhZENvdW50XTsKICAgICBOb3RpZmljYXRpb24gdGhyZWFkc19jYW5fc3RhcnQ7
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0ga1RocmVhZENvdW50OyBpKyspCiAgICAgICB0aHJl
YWRzW2ldLnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08aW50PigmTWFueUFzc2VydHMsCkBAIC0x
NjMsNyArMTYyLDcgQEAgdm9pZCBGYWlsaW5nVGhyZWFkKGJvb2wgaXNfZmF0YWwpIHsKIH0KIAog
dm9pZCBHZW5lcmF0ZUZhdGFsRmFpbHVyZUluQW5vdGhlclRocmVhZChib29sIGlzX2ZhdGFsKSB7
Ci0gIFRocmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQoJkZhaWxpbmdUaHJlYWQsIGlzX2ZhdGFs
LCBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPGJvb2w+IHRocmVhZCgmRmFpbGluZ1RocmVhZCwg
aXNfZmF0YWwsIG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkKaW5kZXggNDNjYmE4ZjRj
ZDYxZGZmZjNhMWE1MjEwMWJlZDNlNzM0YTVlMWI1NC4uZDBjMjQ0NjZhNGI3ZTNlNjIzYjVhZjQ5
NWI4ZTI2ZWFhOGE5Yzg2NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF90ZXN0X3V0aWxzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfdGVzdF91dGlscy5weQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgc3lzCiAKIElTX1dJ
TkRPV1MgPSBvcy5uYW1lID09ICdudCcKIElTX0NZR1dJTiA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBh
bmQgJ0NZR1dJTicgaW4gb3MudW5hbWUoKVswXQorSVNfT1MyID0gb3MubmFtZSA9PSAnb3MyJwog
CiBpbXBvcnQgYXRleGl0CiBpbXBvcnQgc2h1dGlsCkBAIC0xNjQsNyArMTY1LDcgQEAgZGVmIEdl
dFRlc3RFeGVjdXRhYmxlUGF0aChleGVjdXRhYmxlX25hbWUsIGJ1aWxkX2Rpcj1Ob25lKToKIAog
ICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihidWlsZF9kaXIgb3IgR2V0QnVp
bGREaXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJs
ZV9uYW1lKSkKLSAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOKSBhbmQgbm90IHBhdGguZW5k
c3dpdGgoJy5leGUnKToKKyAgaWYgKElTX1dJTkRPV1Mgb3IgSVNfQ1lHV0lOIG9yIElTX09TMikg
YW5kIG5vdCBwYXRoLmVuZHN3aXRoKCcuZXhlJyk6CiAgICAgcGF0aCArPSAnLmV4ZScKIAogICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CkBAIC0yMTQsMTAgKzIxNSwxMCBAQCBjbGFzcyBT
dWJwcm9jZXNzOgogICAgIFJldHVybnM6CiAgICAgICBBbiBvYmplY3QgdGhhdCByZXByZXNlbnRz
IG91dGNvbWUgb2YgdGhlIGV4ZWN1dGVkIHByb2Nlc3MuIEl0IGhhcyB0aGUKICAgICAgIGZvbGxv
d2luZyBhdHRyaWJ1dGVzOgotICAgICAgICB0ZXJtaW5hdGVkX2J5X3NpZ25hbCAgIFRydWUgaWZm
IHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuIHRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBieSBhIHNpZ25hbC4KLSAgICAgICAgc2lnbmFsICAgICAgICAgICAgICAg
ICBTeWduYWwgdGhhdCB0ZXJtaW5hdGVkIHRoZSBjaGlsZCBwcm9jZXNzLgotICAgICAgICBleGl0
ZWQgICAgICAgICAgICAgICAgIFRydWUgaWZmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZCBub3Jt
YWxseS4KKyAgICAgICAgdGVybWluYXRlZF9ieV9zaWduYWwgICBUcnVlIGlmIGFuZCBvbmx5IGlm
IHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVybWluYXRlZCBieSBhIHNpZ25hbC4KKyAgICAgICAgZXhpdGVkICAgICAgICAgICAgICAg
ICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGx5LgogICAgICAgICBleGl0X2NvZGUgICAgICAg
ICAgICAgIFRoZSBjb2RlIHdpdGggd2hpY2ggdGhlIGNoaWxkIHByb2Nlc3MgZXhpdGVkLgogICAg
ICAgICBvdXRwdXQgICAgICAgICAgICAgICAgIENoaWxkIHByb2Nlc3MncyBzdGRvdXQgYW5kIHN0
ZGVyciBvdXRwdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZCBpbiBh
IHN0cmluZy4KQEAgLTI4NywxMCArMjg4LDkgQEAgY2xhc3MgU3VicHJvY2VzczoKICAgICAgIGVs
c2U6ICAjIG9zLldJRkVYSVRFRChyZXRfY29kZSkgc2hvdWxkIHJldHVybiBUcnVlIGhlcmUuCiAg
ICAgICAgIHNlbGYuX3JldHVybl9jb2RlID0gb3MuV0VYSVRTVEFUVVMocmV0X2NvZGUpCiAKLSAg
ICBpZiBzZWxmLl9yZXR1cm5fY29kZSA8IDA6CisgICAgaWYgYm9vbChzZWxmLl9yZXR1cm5fY29k
ZSAmIDB4ODAwMDAwMDApOgogICAgICAgc2VsZi50ZXJtaW5hdGVkX2J5X3NpZ25hbCA9IFRydWUK
ICAgICAgIHNlbGYuZXhpdGVkID0gRmFsc2UKLSAgICAgIHNlbGYuc2lnbmFsID0gLXNlbGYuX3Jl
dHVybl9jb2RlCiAgICAgZWxzZToKICAgICAgIHNlbGYudGVybWluYXRlZF9ieV9zaWduYWwgPSBG
YWxzZQogICAgICAgc2VsZi5leGl0ZWQgPSBUcnVlCkBAIC0zMDYsOCArMzA2LDYgQEAgZGVmIE1h
aW4oKToKICAgX1BhcnNlQW5kU3RyaXBHVGVzdEZsYWdzKHN5cy5hcmd2KQogICAjIFRoZSB0ZXN0
ZWQgYmluYXJpZXMgc2hvdWxkIG5vdCBiZSB3cml0aW5nIFhNTCBvdXRwdXQgZmlsZXMgdW5sZXNz
IHRoZQogICAjIHNjcmlwdCBleHBsaWNpdGx5IGluc3RydWN0cyB0aGVtIHRvLgotICAjIEZJWE1F
OiBNb3ZlIHRoaXMgaW50byBTdWJwcm9jZXNzIHdoZW4gd2UgaW1wbGVtZW50Ci0gICMgcGFzc2lu
ZyBlbnZpcm9ubWVudCBpbnRvIGl0IGFzIGEgcGFyYW1ldGVyLgogICBpZiBHVEVTVF9PVVRQVVRf
VkFSX05BTUUgaW4gb3MuZW52aXJvbjoKICAgICBkZWwgb3MuZW52aXJvbltHVEVTVF9PVVRQVVRf
VkFSX05BTUVdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKaW5kZXggOTNmNTlkNDljZmRi
OTQ3NGRjYTYyMmMxN2EyYzk2NGFiMGJkNThmNC4uMWQ5NWFkYmY1MzdiYTkxNzgxNjM5ODdjMGQz
ZTBjOGFhMDNhYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MKQEAgLTYzLDggKzYz
LDcgQEAgdm9pZCBUZXN0RmFpbHVyZVRocm93c1J1bnRpbWVFcnJvcigpIHsKICAgdHJ5IHsKICAg
ICBFWFBFQ1RfRVEoMiwgMykgPDwgIkV4cGVjdGVkIGZhaWx1cmUiOwogICB9IGNhdGNoKGNvbnN0
IHN0ZDo6cnVudGltZV9lcnJvciYgZSkgewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBl
Y3RlZCBmYWlsdXJlIikgIT0gTlVMTCkKLSAgICAgIHJldHVybjsKKyAgICBpZiAoc3Ryc3RyKGUu
d2hhdCgpLCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IG51bGxwdHIpIHJldHVybjsKIAogICAgIHBy
aW50ZigiJXMiLAogICAgICAgICAgICAiQSBmYWlsZWQgYXNzZXJ0aW9uIGRpZCB0aHJvdyBhbiBl
eGNlcHRpb24gb2YgdGhlIHJpZ2h0IHR5cGUsICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjCmluZGV4IGY3MjEzZmJmM2U1ZTg3MjA4OWJmYjk4NTUx
YWMzYmEzZTNhNjdiZjUuLjE3MzBlOGI4YzljOWI3NDJiNWRjZmQxZjUwNTViMmYyMzJkNDgzZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF91bml0dGVzdC5jYwpA
QCAtMzcsMjEgKzM3LDIyIEBACiAvLyBjb2RlIG9uY2UgImd0ZXN0LmgiIGhhcyBiZWVuICNpbmNs
dWRlZC4KIC8vIERvIG5vdCBtb3ZlIGl0IGFmdGVyIG90aGVyIGd0ZXN0ICNpbmNsdWRlcy4KIFRF
U1QoQ29tbWFuZExpbmVGbGFnc1Rlc3QsIENhbkJlQWNjZXNzZWRJbkNvZGVPbmNlR1Rlc3RISXNJ
bmNsdWRlZCkgewotICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFp
bHVyZSkKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykKLSAg
ICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3IpICE9ICJ1bmtub3duIgotICAgICAgfHwg
dGVzdGluZzo6R1RFU1RfRkxBRyhmaWx0ZXIpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGlu
Zzo6R1RFU1RfRkxBRyhsaXN0X3Rlc3RzKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhv
dXRwdXQpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhwcmludF90
aW1lKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCkKLSAgICAgIHx8
IHRlc3Rpbmc6OkdURVNUX0ZMQUcocmVwZWF0KSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNU
X0ZMQUcoc2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHNodWZmbGUpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0YWNrX3RyYWNl
X2RlcHRoKSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90
bykgIT0gInVua25vd24iCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHRocm93X29uX2Zh
aWx1cmUpOworICBib29sIGR1bW15ID0gdGVzdGluZzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtf
b25fZmFpbHVyZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hf
ZXhjZXB0aW9ucykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3Ip
ICE9ICJ1bmtub3duIiB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhmYWls
X2Zhc3QpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZpbHRlcikgIT0g
InVua25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVz
dHMpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKG91dHB1dCkgIT0gInVu
a25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJyaWVmKSB8fCB0
ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5n
OjpHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RF
U1RfRkxBRyhyZXBlYXQpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxB
RyhzaG93X2ludGVybmFsX3N0YWNrX2ZyYW1lcykgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6
OkdURVNUX0ZMQUcoc2h1ZmZsZSkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZM
QUcoc3RhY2tfdHJhY2VfZGVwdGgpID4gMCB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RF
U1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKSAhPSAidW5rbm93biIgfHwKKyAgICAgICAgICAgICAg
IHRlc3Rpbmc6OkdURVNUX0ZMQUcodGhyb3dfb25fZmFpbHVyZSk7CiAgIEVYUEVDVF9UUlVFKGR1
bW15IHx8ICFkdW1teSk7ICAvLyBTdXBwcmVzc2VzIHdhcm5pbmcgdGhhdCBkdW1teSBpcyB1bnVz
ZWQuCiB9CiAKQEAgLTYwLDEyICs2MSwxMyBAQCBURVNUKENvbW1hbmRMaW5lRmxhZ3NUZXN0LCBD
YW5CZUFjY2Vzc2VkSW5Db2RlT25jZUdUZXN0SElzSW5jbHVkZWQpIHsKICNpbmNsdWRlIDxzdHJp
bmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUg
PG1hcD4KLSNpbmNsdWRlIDx2ZWN0b3I+CiAjaW5jbHVkZSA8b3N0cmVhbT4KLSNpZiBHVEVTVF9M
QU5HX0NYWDExCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2lu
Y2x1ZGUgPHVub3JkZXJlZF9zZXQ+Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKKyNpbmNs
dWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1zcGkuaCIKICNpbmNsdWRlICJz
cmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgiCkBAIC04MCw3ICs4Miw3IEBAIGNsYXNzIFN0cmVhbWlu
Z0xpc3RlbmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgY2xhc3MgRmFrZVNvY2tldFdyaXRlciA6
IHB1YmxpYyBTdHJlYW1pbmdMaXN0ZW5lcjo6QWJzdHJhY3RTb2NrZXRXcml0ZXIgewogICAgcHVi
bGljOgogICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRoZSBzb2NrZXQuCi0gICAgdmlydHVhbCB2
b2lkIFNlbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsgb3V0cHV0XyArPSBtZXNzYWdl
OyB9CisgICAgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZSB7
IG91dHB1dF8gKz0gbWVzc2FnZTsgfQogCiAgICAgc3RkOjpzdHJpbmcgb3V0cHV0XzsKICAgfTsK
QEAgLTg4LDggKzkwLDggQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXJUZXN0IDogcHVibGljIFRl
c3QgewogICBTdHJlYW1pbmdMaXN0ZW5lclRlc3QoKQogICAgICAgOiBmYWtlX3NvY2tfd3JpdGVy
XyhuZXcgRmFrZVNvY2tldFdyaXRlciksCiAgICAgICAgIHN0cmVhbWVyXyhmYWtlX3NvY2tfd3Jp
dGVyXyksCi0gICAgICAgIHRlc3RfaW5mb19vYmpfKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5V
TEwsCi0gICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5F
X18pLCAwLCBOVUxMKSB7fQorICAgICAgICB0ZXN0X2luZm9fb2JqXygiRm9vVGVzdCIsICJCYXIi
LCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24o
X19GSUxFX18sIF9fTElORV9fKSwgbnVsbHB0ciwgbnVsbHB0cikge30KIAogIHByb3RlY3RlZDoK
ICAgc3RkOjpzdHJpbmcqIG91dHB1dCgpIHsgcmV0dXJuICYoZmFrZV9zb2NrX3dyaXRlcl8tPm91
dHB1dF8pOyB9CkBAIC0xMTQsMTMgKzExNiwxMyBAQCBURVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJU
ZXN0LCBPblRlc3RJdGVyYXRpb25FbmQpIHsKIAogVEVTVF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVz
dCwgT25UZXN0Q2FzZVN0YXJ0KSB7CiAgICpvdXRwdXQoKSA9ICIiOwotICBzdHJlYW1lcl8uT25U
ZXN0Q2FzZVN0YXJ0KFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAg
c3RyZWFtZXJfLk9uVGVzdENhc2VTdGFydChUZXN0Q2FzZSgiRm9vVGVzdCIsICJCYXIiLCBudWxs
cHRyLCBudWxscHRyKSk7CiAgIEVYUEVDVF9FUSgiZXZlbnQ9VGVzdENhc2VTdGFydCZuYW1lPUZv
b1Rlc3RcbiIsICpvdXRwdXQoKSk7CiB9CiAKIFRFU1RfRihTdHJlYW1pbmdMaXN0ZW5lclRlc3Qs
IE9uVGVzdENhc2VFbmQpIHsKICAgKm91dHB1dCgpID0gIiI7Ci0gIHN0cmVhbWVyXy5PblRlc3RD
YXNlRW5kKFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFt
ZXJfLk9uVGVzdENhc2VFbmQoVGVzdENhc2UoIkZvb1Rlc3QiLCAiQmFyIiwgbnVsbHB0ciwgbnVs
bHB0cikpOwogICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RDYXNlRW5kJnBhc3NlZD0xJmVsYXBzZWRf
dGltZT0wbXNcbiIsICpvdXRwdXQoKSk7CiB9CiAKQEAgLTIwMiw5ICsyMDQsMTEgQEAgdXNpbmcg
dGVzdGluZzo6R1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OkdU
RVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucyk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNv
bG9yKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yayk7Cit1
c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKGZpbHRlcik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVzdHMpOwog
dXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQpOwordXNpbmcgdGVzdGluZzo6R1RFU1Rf
RkxBRyhicmllZik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogdXNp
bmcgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHJlcGVhdCk7CkBAIC0yMTUsMjcgKzIxOSwyNiBAQCB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyh0aHJv
d19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6OklzTm90U3Vic3RyaW5nOwogdXNpbmcgdGVz
dGluZzo6SXNTdWJzdHJpbmc7Cit1c2luZyB0ZXN0aW5nOjprTWF4U3RhY2tUcmFjZURlcHRoOwog
dXNpbmcgdGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIHRlc3Rpbmc6OlNjb3BlZEZha2VUZXN0UGFy
dFJlc3VsdFJlcG9ydGVyOwogdXNpbmcgdGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxOwogdXNp
bmcgdGVzdGluZzo6VGVzdDsKLXVzaW5nIHRlc3Rpbmc6OlRlc3RDYXNlOwogdXNpbmcgdGVzdGlu
Zzo6VGVzdEV2ZW50TGlzdGVuZXJzOwogdXNpbmcgdGVzdGluZzo6VGVzdEluZm87CiB1c2luZyB0
ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDsKIHVzaW5nIHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJy
YXk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UHJvcGVydHk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UmVz
dWx0OwordXNpbmcgdGVzdGluZzo6VGVzdFN1aXRlOwogdXNpbmcgdGVzdGluZzo6VGltZUluTWls
bGlzOwogdXNpbmcgdGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
QWRkUmVmZXJlbmNlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlOwogdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6QXBwZW5kVXNlck1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlBd2Fy
ZUZpbmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXJyYXlFcTsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpDb2RlUG9pbnRUb1V0Zjg7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29t
cGlsZUFzc2VydFR5cGVzRXF1YWw7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29weUFycmF5
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvdW50SWY7CiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6RXFGYWlsdXJlOwpAQCAtMjQzLDcgKzI0Niw2IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpGbG9hdGluZ1BvaW50OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZvckVhY2g7CiB1
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDE7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzOwot
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwogdXNpbmcgdGVzdGluZzo6
aW50ZXJuYWw6OkdldEN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3A7CiB1c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6R2V0RWxlbWVudE9yOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldE5l
eHRSYW5kb21TZWVkOwpAQCAtMjUyLDIxICsyNTQsMjAgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJu
YWw6OkdldFRlc3RUeXBlSWQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0VGltZUluTWls
bGlzOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFR5cGVJZDsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW1w
bGljaXRseUNvbnZlcnRpYmxlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkludDMyOwordXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1NhdmVyOwordXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6Okhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzsKIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpJbnQzMkZyb21FbnZPckRpZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJ
c0FQcm90b2NvbE1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXI7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250YWluZXJUZXN0OwogdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OklzTm90Q29udGFpbmVyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtN
YXhSYW5kb21TZWVkOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmtUZXN0VHlwZUlkSW5Hb29n
bGVUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok5hdGl2ZUFycmF5OwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6Ok9zU3RhY2tUcmFjZUdldHRlcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6UGFyc2VJbnQzMkZsYWc7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1Nv
dXJjZUNvcHk7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVy
ZW5jZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVDb25zdDsKLXVzaW5nIHRlc3Rp
bmc6OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
U2hvdWxkUnVuVGVzdE9uU2hhcmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkU2hh
cmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkVXNlQ29sb3I7CkBAIC0yNzcsMTUg
KzI3OCwxMSBAQCB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nOwog
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjpUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3NvcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpU
ZXN0UmVzdWx0QWNjZXNzb3I7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6VUludDMyOwogdXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OlVuaXRUZXN0SW1wbDsKIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpXaWRlU3RyaW5nVG9VdGY4OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmVkaXRfZGlz
dGFuY2U6OkNhbGN1bGF0ZU9wdGltYWxFZGl0czsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpl
ZGl0X2Rpc3RhbmNlOjpDcmVhdGVVbmlmaWVkRGlmZjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjplZGl0X2Rpc3RhbmNlOjpFZGl0VHlwZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprTWF4
UmFuZG9tU2VlZDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprVGVzdFR5cGVJZEluR29vZ2xl
VGVzdDsKLXVzaW5nIHRlc3Rpbmc6OmtNYXhTdGFja1RyYWNlRGVwdGg7CiAKICNpZiBHVEVTVF9I
QVNfU1RSRUFNX1JFRElSRUNUSU9OCiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0
ZG91dDsKQEAgLTQ0MCw4ICs0MzcsOCBAQCBjbGFzcyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0Fz
SXNvODYwMVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBjb25zdCBUaW1lSW5NaWxsaXMg
a01pbGxpc1BlclNlYyA9IDEwMDA7CiAKICBwcml2YXRlOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAg
ICBzYXZlZF90el8gPSBudWxscHRyOwogCiAgICAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRF
RF9QVVNIXygvKiBnZXRlbnYsIHN0cmR1cDogZGVwcmVjYXRlZCAqLykKICAgICBpZiAoZ2V0ZW52
KCJUWiIpKQpAQCAtNDU0LDEwICs0NTEsMTAgQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxs
aXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogICAgIFNldFRpbWVab25lKCJVVEMrMDAi
KTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigp
IG92ZXJyaWRlIHsKICAgICBTZXRUaW1lWm9uZShzYXZlZF90el8pOwogICAgIGZyZWUoY29uc3Rf
Y2FzdDxjaGFyKj4oc2F2ZWRfdHpfKSk7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgICBzYXZl
ZF90el8gPSBudWxscHRyOwogICB9CiAKICAgc3RhdGljIHZvaWQgU2V0VGltZVpvbmUoY29uc3Qg
Y2hhciogdGltZV96b25lKSB7CkBAIC00ODksNjEgKzQ4NiwxMTIgQEAgY2xhc3MgRm9ybWF0RXBv
Y2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogY29uc3QgVGltZUlu
TWlsbGlzIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdDo6a01pbGxpc1BlclNl
YzsKIAogVEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRz
VHdvRGlnaXRTZWdtZW50cykgewotICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIiLAor
ICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIuMDAwIiwKICAgICAgICAgICAgIEZvcm1h
dEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMjAwODcxNjIgKiBrTWlsbGlzUGVyU2VjKSk7
CiB9CiAKLVRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIE1pbGxp
c2Vjb25kc0RvTm90QWZmZWN0UmVzdWx0KSB7CitURVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxs
aXNBc0lzbzg2MDFUZXN0LCBJbmNsdWRlc01pbGxpc2Vjb25kc0FmdGVyRG90KSB7CiAgIEVYUEVD
VF9FUSgKLSAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQyIiwKKyAgICAgICIyMDExLTEwLTMxVDE4
OjUyOjQyLjIzNCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIw
MDg3MTYyICoga01pbGxpc1BlclNlYyArIDIzNCkpOwogfQogCiBURVNUX0YoRm9ybWF0RXBvY2hU
aW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNMZWFkaW5nWmVyb2VzKSB7Ci0gIEVYUEVD
VF9FUSgiMjAxMS0wOS0wM1QwNTowNzowMiIsCisgIEVYUEVDVF9FUSgiMjAxMS0wOS0wM1QwNTow
NzowMi4wMDAiLAogICAgICAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEo
MTMxNTAyNjQyMiAqIGtNaWxsaXNQZXJTZWMpKTsKIH0KIAogVEVTVF9GKEZvcm1hdEVwb2NoVGlt
ZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRzMjRIb3VyVGltZSkgewotICBFWFBFQ1RfRVEo
IjIwMTEtMDktMjhUMTc6MDg6MjIiLAorICBFWFBFQ1RfRVEoIjIwMTEtMDktMjhUMTc6MDg6MjIu
MDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMTcy
Mjk3MDIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKIFRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzSXNvODYwMVRlc3QsIFByaW50c0Vwb2NoU3RhcnQpIHsKLSAgRVhQRUNUX0VRKCIxOTcw
LTAxLTAxVDAwOjAwOjAwIiwgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMCkpOwor
ICBFWFBFQ1RfRVEoIjE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwIiwgRm9ybWF0RXBvY2hUaW1lSW5N
aWxsaXNBc0lzbzg2MDEoMCkpOwogfQogCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAotCiAj
IGlmZGVmIF9fQk9STEFORENfXwogLy8gU2lsZW5jZXMgd2FybmluZ3M6ICJDb25kaXRpb24gaXMg
YWx3YXlzIHRydWUiLCAiVW5yZWFjaGFibGUgY29kZSIKICMgIHByYWdtYSBvcHRpb24gcHVzaCAt
dy1jY2MgLXctcmNoCiAjIGVuZGlmCiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRF
UkFMXyh4KSBpcyB0cnVlIHdoZW4geCBpcyBhIG51bGwKLS8vIHBvaW50ZXIgbGl0ZXJhbC4KLVRF
U1QoTnVsbExpdGVyYWxUZXN0LCBJc1RydWVGb3JOdWxsTGl0ZXJhbHMpIHsKLSAgRVhQRUNUX1RS
VUUoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyhOVUxMKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lT
X05VTExfTElURVJBTF8oMCkpOwotICBFWFBFQ1RfVFJVRShHVEVTVF9JU19OVUxMX0xJVEVSQUxf
KDBVKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oMEwpKTsKKy8vIFRl
c3RzIHRoYXQgdGhlIExIUyBvZiBFWFBFQ1RfRVEgb3IgQVNTRVJUX0VRIGNhbiBiZSB1c2VkIGFz
IGEgbnVsbCBsaXRlcmFsCisvLyB3aGVuIHRoZSBSSFMgaXMgYSBwb2ludGVyIHR5cGUuCitURVNU
KE51bGxMaXRlcmFsVGVzdCwgTEhTQWxsb3dzTnVsbExpdGVyYWxzKSB7CisgIEVYUEVDVF9FUSgw
LCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEFTU0VSVF9F
USgwLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgICAgLy8gTk9MSU5UCisgIEVYUEVD
VF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisgIEFT
U0VSVF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAgLy8gTk9MSU5UCisg
IEVYUEVDVF9FUShudWxscHRyLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworICBBU1NF
UlRfRVEobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKworICBjb25zdCBp
bnQqIGNvbnN0IHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoMCwgcCk7ICAgICAvLyBOT0xJTlQK
KyAgQVNTRVJUX0VRKDAsIHApOyAgICAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShOVUxMLCBwKTsg
IC8vIE5PTElOVAorICBBU1NFUlRfRVEoTlVMTCwgcCk7ICAvLyBOT0xJTlQKKyAgRVhQRUNUX0VR
KG51bGxwdHIsIHApOworICBBU1NFUlRfRVEobnVsbHB0ciwgcCk7Cit9CisKK3N0cnVjdCBDb252
ZXJ0VG9BbGwgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgVCgpIGNvbnN0
IHsgIC8vIE5PTElOVAorICAgIHJldHVybiBUKCk7CisgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0
VG9Qb2ludGVyIHsKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIG9wZXJhdG9yIFQqKCkgY29uc3Qg
eyAgLy8gTk9MSU5UCisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KK307CisKK3N0cnVjdCBDb252
ZXJ0VG9BbGxCdXROb1BvaW50ZXJzIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsCisgICAgICAg
ICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19wb2ludGVyPFQ+Ojp2YWx1ZSwg
aW50Pjo6dHlwZSA9IDA+CisgIG9wZXJhdG9yIFQoKSBjb25zdCB7ICAvLyBOT0xJTlQKKyAgICBy
ZXR1cm4gVCgpOworICB9Cit9OworCitzdHJ1Y3QgTXlUeXBlIHt9OworaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShNeVR5cGUgY29uc3QmLCBNeVR5cGUgY29uc3QmKSB7IHJldHVybiB0cnVlOyB9CisK
K1RFU1QoTnVsbExpdGVyYWxUZXN0LCBJbXBsaWNpdENvbnZlcnNpb24pIHsKKyAgRVhQRUNUX0VR
KENvbnZlcnRUb1BvaW50ZXJ7fSwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKyNpZiAh
ZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pCisgIC8vIERpc2FibGVkIGR1
ZSB0byBHQ0MgYnVnIGdjYy5nbnUub3JnL1BSODk1ODAKKyAgRVhQRUNUX0VRKENvbnZlcnRUb0Fs
bHt9LCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOworI2VuZGlmCisgIEVYUEVDVF9FUShD
b252ZXJ0VG9BbGx7fSwgTXlUeXBle30pOworICBFWFBFQ1RfRVEoQ29udmVydFRvQWxsQnV0Tm9Q
b2ludGVyc3t9LCBNeVR5cGV7fSk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9M
SVRFUkFMXyh4KSBpcyBmYWxzZSB3aGVuIHggaXMgbm90IGEgbnVsbAotLy8gcG9pbnRlciBsaXRl
cmFsLgotVEVTVChOdWxsTGl0ZXJhbFRlc3QsIElzRmFsc2VGb3JOb25OdWxsTGl0ZXJhbHMpIHsK
LSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oMSkpOwotICBFWFBFQ1RfRkFM
U0UoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXygwLjApKTsKLSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lT
X05VTExfTElURVJBTF8oJ2EnKSk7Ci0gIEVYUEVDVF9GQUxTRShHVEVTVF9JU19OVUxMX0xJVEVS
QUxfKHN0YXRpY19jYXN0PHZvaWQqPihOVUxMKSkpOworI2lmZGVmIF9fY2xhbmdfXworI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNpZiBfX2hhc193YXJuaW5nKCItV3plcm8tYXMtbnVs
bC1wb2ludGVyLWNvbnN0YW50IikKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBlcnJvciAiLVd6
ZXJvLWFzLW51bGwtcG9pbnRlci1jb25zdGFudCIKKyNlbmRpZgorI2VuZGlmCisKK1RFU1QoTnVs
bExpdGVyYWxUZXN0LCBOb0NvbnZlcnNpb25Ob1dhcm5pbmcpIHsKKyAgLy8gVGVzdCB0aGF0IGd0
ZXN0cyBkZXRlY3Rpb24gYW5kIGhhbmRsaW5nIG9mIG51bGwgcG9pbnRlciBjb25zdGFudHMKKyAg
Ly8gZG9lc24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuICcwJyBpc24ndCBhY3R1YWxseSB1c2Vk
IGFzIG51bGwuCisgIEVYUEVDVF9FUSgwLCAwKTsKKyAgQVNTRVJUX0VRKDAsIDApOwogfQogCisj
aWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKwog
IyBpZmRlZiBfX0JPUkxBTkRDX18KIC8vIFJlc3RvcmVzIHdhcm5pbmdzIGFmdGVyIHByZXZpb3Vz
ICIjcHJhZ21hIG9wdGlvbiBwdXNoIiBzdXBwcmVzc2VkIHRoZW0uCiAjICBwcmFnbWEgb3B0aW9u
IHBvcAogIyBlbmRpZgogCi0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIC8vCiAv
LyBUZXN0cyBDb2RlUG9pbnRUb1V0ZjgoKS4KIApAQCAtNTg4LDcgKzYzNiw3IEBAIFRFU1QoQ29k
ZVBvaW50VG9VdGY4VGVzdCwgQ2FuRW5jb2RlMTJUbzE2Qml0cykgewogCiAjaWYgIUdURVNUX1dJ
REVfU1RSSU5HX1VTRVNfVVRGMTZfCiAvLyBUZXN0cyBpbiB0aGlzIGdyb3VwIHJlcXVpcmUgYSB3
Y2hhcl90IHRvIGhvbGQgPiAxNiBiaXRzLCBhbmQgdGh1cwotLy8gYXJlIHNraXBwZWQgb24gV2lu
ZG93cywgQ3lnd2luLCBhbmQgU3ltYmlhbiwgd2hlcmUgYSB3Y2hhcl90IGlzCisvLyBhcmUgc2tp
cHBlZCBvbiBXaW5kb3dzLCBhbmQgQ3lnd2luLCB3aGVyZSBhIHdjaGFyX3QgaXMKIC8vIDE2LWJp
dCB3aWRlLiBUaGlzIGNvZGUgbWF5IG5vdCBjb21waWxlIG9uIHRob3NlIHN5c3RlbXMuCiAKIC8v
IFRlc3RzIHRoYXQgVW5pY29kZSBjb2RlLXBvaW50cyB0aGF0IGhhdmUgMTcgdG8gMjEgYml0cyBh
cmUgZW5jb2RlZApAQCAtNzQzLDcgKzc5MSw3IEBAIFRFU1QoUmFuZG9tRGVhdGhUZXN0LCBHZW5l
cmF0ZXNDcmFzaGVzT25JbnZhbGlkUmFuZ2UpIHsKIH0KIAogVEVTVChSYW5kb21UZXN0LCBHZW5l
cmF0ZXNOdW1iZXJzV2l0aGluUmFuZ2UpIHsKLSAgY29uc3QgVUludDMyIGtSYW5nZSA9IDEwMDAw
OworICBjb25zdGV4cHIgdWludDMyX3Qga1JhbmdlID0gMTAwMDA7CiAgIHRlc3Rpbmc6OmludGVy
bmFsOjpSYW5kb20gcmFuZG9tKDEyMzQ1KTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsr
KSB7CiAgICAgRVhQRUNUX0xUKHJhbmRvbS5HZW5lcmF0ZShrUmFuZ2UpLCBrUmFuZ2UpIDw8ICIg
Zm9yIGl0ZXJhdGlvbiAiIDw8IGk7CkBAIC03NTYsMTAgKzgwNCwxMCBAQCBURVNUKFJhbmRvbVRl
c3QsIEdlbmVyYXRlc051bWJlcnNXaXRoaW5SYW5nZSkgewogfQogCiBURVNUKFJhbmRvbVRlc3Qs
IFJlcGVhdHNXaGVuUmVzZWVkZWQpIHsKLSAgY29uc3QgaW50IGtTZWVkID0gMTIzOwotICBjb25z
dCBpbnQga0FycmF5U2l6ZSA9IDEwOwotICBjb25zdCBVSW50MzIga1JhbmdlID0gMTAwMDA7Ci0g
IFVJbnQzMiB2YWx1ZXNba0FycmF5U2l6ZV07CisgIGNvbnN0ZXhwciBpbnQga1NlZWQgPSAxMjM7
CisgIGNvbnN0ZXhwciBpbnQga0FycmF5U2l6ZSA9IDEwOworICBjb25zdGV4cHIgdWludDMyX3Qg
a1JhbmdlID0gMTAwMDA7CisgIHVpbnQzMl90IHZhbHVlc1trQXJyYXlTaXplXTsKIAogICB0ZXN0
aW5nOjppbnRlcm5hbDo6UmFuZG9tIHJhbmRvbShrU2VlZCk7CiAgIGZvciAoaW50IGkgPSAwOyBp
IDwga0FycmF5U2l6ZTsgaSsrKSB7CkBAIC04NTEsMjMgKzg5OSwyMyBAQCBURVNUKENvbnRhaW5l
clV0aWxpdHlEZWF0aFRlc3QsIFNodWZmbGVSYW5nZSkgewogCiBjbGFzcyBWZWN0b3JTaHVmZmxl
VGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyBjb25zdCBpbnQga1Zl
Y3RvclNpemUgPSAyMDsKKyAgc3RhdGljIGNvbnN0IHNpemVfdCBrVmVjdG9yU2l6ZSA9IDIwOwog
CiAgIFZlY3RvclNodWZmbGVUZXN0KCkgOiByYW5kb21fKDEpIHsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRp
Y19jYXN0PGludD4oa1ZlY3RvclNpemUpOyBpKyspIHsKICAgICAgIHZlY3Rvcl8ucHVzaF9iYWNr
KGkpOwogICAgIH0KICAgfQogCiAgIHN0YXRpYyBib29sIFZlY3RvcklzQ29ycnVwdChjb25zdCBU
ZXN0aW5nVmVjdG9yJiB2ZWN0b3IpIHsKLSAgICBpZiAoa1ZlY3RvclNpemUgIT0gc3RhdGljX2Nh
c3Q8aW50Pih2ZWN0b3Iuc2l6ZSgpKSkgeworICAgIGlmIChrVmVjdG9yU2l6ZSAhPSB2ZWN0b3Iu
c2l6ZSgpKSB7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBib29sIGZvdW5kX2lu
X3ZlY3RvcltrVmVjdG9yU2l6ZV0gPSB7IGZhbHNlIH07CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB2ZWN0b3Iuc2l6ZSgpOyBpKyspIHsKICAgICAgIGNvbnN0IGludCBlID0gdmVjdG9yW2ld
OwotICAgICAgaWYgKGUgPCAwIHx8IGUgPj0ga1ZlY3RvclNpemUgfHwgZm91bmRfaW5fdmVjdG9y
W2VdKSB7CisgICAgICBpZiAoZSA8IDAgfHwgZSA+PSBzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JT
aXplKSB8fCBmb3VuZF9pbl92ZWN0b3JbZV0pIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICB9CiAgICAgICBmb3VuZF9pbl92ZWN0b3JbZV0gPSB0cnVlOwpAQCAtODg0LDcgKzkzMiw3IEBA
IGNsYXNzIFZlY3RvclNodWZmbGVUZXN0IDogcHVibGljIFRlc3QgewogCiAgIHN0YXRpYyBib29s
IFJhbmdlSXNTaHVmZmxlZChjb25zdCBUZXN0aW5nVmVjdG9yJiB2ZWN0b3IsIGludCBiZWdpbiwg
aW50IGVuZCkgewogICAgIGZvciAoaW50IGkgPSBiZWdpbjsgaSA8IGVuZDsgaSsrKSB7Ci0gICAg
ICBpZiAoaSAhPSB2ZWN0b3JbaV0pIHsKKyAgICAgIGlmIChpICE9IHZlY3RvcltzdGF0aWNfY2Fz
dDxzaXplX3Q+KGkpXSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH0KICAgICB9CkBA
IC05MDgsNyArOTU2LDcgQEAgY2xhc3MgVmVjdG9yU2h1ZmZsZVRlc3QgOiBwdWJsaWMgVGVzdCB7
CiAgIFRlc3RpbmdWZWN0b3IgdmVjdG9yXzsKIH07ICAvLyBjbGFzcyBWZWN0b3JTaHVmZmxlVGVz
dAogCi1jb25zdCBpbnQgVmVjdG9yU2h1ZmZsZVRlc3Q6OmtWZWN0b3JTaXplOworY29uc3Qgc2l6
ZV90IFZlY3RvclNodWZmbGVUZXN0OjprVmVjdG9yU2l6ZTsKIAogVEVTVF9GKFZlY3RvclNodWZm
bGVUZXN0LCBIYW5kbGVzRW1wdHlSYW5nZSkgewogICAvLyBUZXN0cyBhbiBlbXB0eSByYW5nZSBh
dCB0aGUgYmVnaW5uaW5nLi4uCkBAIC05NjAsNyArMTAwOCw3IEBAIFRFU1RfRihWZWN0b3JTaHVm
ZmxlVGVzdCwgU2h1ZmZsZXNFbnRpcmVWZWN0b3IpIHsKICAgLy8gVGVzdHMgdGhlIGZpcnN0IGFu
ZCBsYXN0IGVsZW1lbnRzIGluIHBhcnRpY3VsYXIgdG8gZW5zdXJlIHRoYXQKICAgLy8gdGhlcmUg
YXJlIG5vIG9mZi1ieS1vbmUgcHJvYmxlbXMgaW4gb3VyIHNodWZmbGUgYWxnb3JpdGhtLgogICBF
WFBFQ1RfTkUoMCwgdmVjdG9yX1swXSk7Ci0gIEVYUEVDVF9ORShrVmVjdG9yU2l6ZSAtIDEsIHZl
Y3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CisgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDxpbnQ+KGtW
ZWN0b3JTaXplIC0gMSksIHZlY3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CiB9CiAKIFRFU1RfRihW
ZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7CkBAIC05NzAsNyArMTAx
OCw4IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7
CiAKICAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yXyk7CiAgIEVYUEVD
VF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8sIDAsIGtSYW5nZVNpemUpOwotICBFWFBF
Q1RfUFJFRDMoUmFuZ2VJc1Vuc2h1ZmZsZWQsIHZlY3Rvcl8sIGtSYW5nZVNpemUsIGtWZWN0b3JT
aXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VT
aXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkpOwogfQog
CiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZWZWN0b3IpIHsKQEAgLTk3
OSwyMyArMTAyOCwyNSBAQCBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZW
ZWN0b3IpIHsKIAogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsK
ICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXpl
KTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwg
a1ZlY3RvclNpemUpOworICBFWFBFQ1RfUFJFRDMoUmFuZ2VJc1NodWZmbGVkLCB2ZWN0b3JfLCBr
UmFuZ2VTaXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkp
OwogfQogCiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzTWlkZGxlT2ZWZWN0b3Ip
IHsKLSAgaW50IGtSYW5nZVNpemUgPSBrVmVjdG9yU2l6ZS8zOworICBjb25zdCBpbnQga1Jhbmdl
U2l6ZSA9IHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpIC8gMzsKICAgU2h1ZmZsZVJhbmdl
KCZyYW5kb21fLCBrUmFuZ2VTaXplLCAyKmtSYW5nZVNpemUsICZ2ZWN0b3JfKTsKIAogICBBU1NF
UlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKICAgRVhQRUNUX1BSRUQzKFJh
bmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKICAgRVhQRUNUX1BSRUQz
KFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwgMiprUmFuZ2VTaXplKTsKLSAg
RVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAyKmtSYW5nZVNpemUsIGtW
ZWN0b3JTaXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAy
ICoga1JhbmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNp
emUpKTsKIH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc1JlcGVhdGFibHkp
IHsKICAgVGVzdGluZ1ZlY3RvciB2ZWN0b3IyOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0
b3JTaXplOyBpKyspIHsKLSAgICB2ZWN0b3IyLnB1c2hfYmFjayhpKTsKKyAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CisgICAgdmVjdG9yMi5wdXNoX2JhY2soc3Rh
dGljX2Nhc3Q8aW50PihpKSk7CiAgIH0KIAogICByYW5kb21fLlJlc2VlZCgxMjM0KTsKQEAgLTEw
MDYsNyArMTA1Nyw3IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNSZXBlYXRh
Ymx5KSB7CiAgIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8pOwogICBB
U1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3IyKTsKIAotICBmb3IgKGludCBp
ID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBr
VmVjdG9yU2l6ZTsgaSsrKSB7CiAgICAgRVhQRUNUX0VRKHZlY3Rvcl9baV0sIHZlY3RvcjJbaV0p
IDw8ICIgd2hlcmUgaSBpcyAiIDw8IGk7CiAgIH0KIH0KQEAgLTEwMzQsMTEgKzEwODUsMTEgQEAg
VEVTVChTdHJpbmdUZXN0LCBFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSkgewogLy8gQysrQnVpbGRl
cidzIHByZXByb2Nlc3NvciBpcyBidWdneTsgaXQgZmFpbHMgdG8gZXhwYW5kIG1hY3JvcyB0aGF0
CiAvLyBhcHBlYXIgaW4gbWFjcm8gcGFyYW1ldGVycyBhZnRlciB3aWRlIGNoYXIgbGl0ZXJhbHMu
ICBQcm92aWRlIGFuIGFsaWFzCiAvLyBmb3IgTlVMTCBhcyBhIHdvcmthcm91bmQuCi1zdGF0aWMg
Y29uc3Qgd2NoYXJfdCogY29uc3Qga051bGwgPSBOVUxMOworc3RhdGljIGNvbnN0IHdjaGFyX3Qq
IGNvbnN0IGtOdWxsID0gbnVsbHB0cjsKIAogLy8gVGVzdHMgU3RyaW5nOjpDYXNlSW5zZW5zaXRp
dmVXaWRlQ1N0cmluZ0VxdWFscwogVEVTVChTdHJpbmdUZXN0LCBDYXNlSW5zZW5zaXRpdmVXaWRl
Q1N0cmluZ0VxdWFscykgewotICBFWFBFQ1RfVFJVRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdp
ZGVDU3RyaW5nRXF1YWxzKE5VTEwsIE5VTEwpKTsKKyAgRVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNl
SW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhudWxscHRyLCBudWxscHRyKSk7CiAgIEVYUEVD
VF9GQUxTRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGtOdWxsLCBM
IiIpKTsKICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdF
cXVhbHMoTCIiLCBrTnVsbCkpOwogICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRp
dmVXaWRlQ1N0cmluZ0VxdWFscyhrTnVsbCwgTCJmb29iYXIiKSk7CkBAIC0xMTU5LDcgKzEyMTAs
NyBAQCBjbGFzcyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVz
dAogICA6IHB1YmxpYyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlclRlc3QgewogIHBy
b3RlY3RlZDoKICAgc3RhdGljIHZvaWQgQWRkRmFpbHVyZUluT3RoZXJUaHJlYWQoRmFpbHVyZU1v
ZGUgZmFpbHVyZSkgewotICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZB
ZGRGYWlsdXJlLCBmYWlsdXJlLCBOVUxMKTsKKyAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1v
ZGU+IHRocmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgbnVsbHB0cik7CiAgICAgdGhyZWFkLkpv
aW4oKTsKICAgfQogfTsKQEAgLTExOTUsMTIgKzEyNDYsNiBAQCBURVNUX0YoRXhwZWN0RmF0YWxG
YWlsdXJlVGVzdCwgQ2F0Y2hlc0ZhdGFsRmFsaXVyZSkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVS
RShBZGRGYXRhbEZhaWx1cmUoKSwgIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuIik7CiB9CiAKLSNp
ZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3Qs
IEFjY2VwdHNTdHJpbmdPYmplY3QpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQWRkRmF0YWxG
YWlsdXJlKCksIDo6c3RyaW5nKCJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRp
ZgotCiBURVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgQWNjZXB0c1N0ZFN0cmluZ09iamVj
dCkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYXRhbEZhaWx1cmUoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgOjpzdGQ6OnN0cmluZygiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKSk7
CkBAIC0xMjgzLDEzICsxMzI4LDYgQEAgVEVTVF9GKEV4cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3Qs
IENhdGNoZXNOb25mYXRhbEZhaWx1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4
cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9T
VFJJTkcKLVRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBBY2NlcHRzU3RyaW5nT2Jq
ZWN0KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZE5vbmZhdGFsRmFpbHVyZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0cmluZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZh
aWx1cmUuIikpOwotfQotI2VuZGlmCi0KIFRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0
LCBBY2NlcHRzU3RkU3RyaW5nT2JqZWN0KSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEFk
ZE5vbmZhdGFsRmFpbHVyZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0ZDo6c3Ry
aW5nKCJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKSk7CkBAIC0xMzYzLDcgKzE0MDEsNyBA
QCBjbGFzcyBUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gLi4uIGFuZCAzIFRl
c3RSZXN1bHQgb2JqZWN0cy4KICAgVGVzdFJlc3VsdCAqIHIwLCAqIHIxLCAqIHIyOwogCi0gIHZp
cnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICAvLyBw
cjEgaXMgZm9yIHN1Y2Nlc3MuCiAgICAgcHIxID0gbmV3IFRlc3RQYXJ0UmVzdWx0KFRlc3RQYXJ0
UmVzdWx0OjprU3VjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby9iYXIu
Y2MiLApAQCAtMTQwMCw3ICsxNDM4LDcgQEAgY2xhc3MgVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgICAgcmVzdWx0czItPnB1c2hfYmFjaygqcHIyKTsKICAgfQogCi0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxl
dGUgcHIxOwogICAgIGRlbGV0ZSBwcjI7CiAKQEAgLTE1NTYsNyArMTU5NCw3IEBAIGNsYXNzIEdU
ZXN0RmxhZ1NhdmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgLy8gU2F2ZXMgdGhlIEdvb2dsZSBU
ZXN0IGZsYWdzIHN1Y2ggdGhhdCB3ZSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyLCBhbmQKICAgLy8g
dGhlbiBzZXRzIHRoZW0gdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuICBUaGlzIHdpbGwgYmUgY2Fs
bGVkCiAgIC8vIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcyBydW4u
Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVz
dFN1aXRlKCkgewogICAgIHNhdmVyXyA9IG5ldyBHVGVzdEZsYWdTYXZlcjsKIAogICAgIEdURVNU
X0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpID0gZmFsc2U7CkBAIC0xNTY0LDkgKzE2MDIs
MTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewogICAgIEdURVNU
X0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rl
c3RfdXNlX2ZvcmspID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7Cisg
ICAgR1RFU1RfRkxBRyhmYWlsX2Zhc3QpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIp
ID0gIiI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IGZhbHNlOwogICAgIEdURVNUX0ZM
QUcob3V0cHV0KSA9ICIiOworICAgIEdURVNUX0ZMQUcoYnJpZWYpID0gZmFsc2U7CiAgICAgR1RF
U1RfRkxBRyhwcmludF90aW1lKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkg
PSAwOwogICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7CkBAIC0xNTc4LDkgKzE2MTgsOSBAQCBj
bGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAKICAgLy8gUmVzdG9yZXMg
dGhlIEdvb2dsZSBUZXN0IGZsYWdzIHRoYXQgdGhlIHRlc3RzIGhhdmUgbW9kaWZpZWQuICBUaGlz
IHdpbGwKICAgLy8gYmUgY2FsbGVkIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNh
c2UgaXMgcnVuLgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBkZWxldGUgc2F2ZXJfOwotICAgIHNhdmVy
XyA9IE5VTEw7CisgICAgc2F2ZXJfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFZlcmlmaWVzIHRo
YXQgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIGhhdmUgdGhlaXIgZGVmYXVsdCB2YWx1ZXMsIGFuZCB0
aGVuCkBAIC0xNTkxLDkgKzE2MzEsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVi
bGljIFRlc3QgewogICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMp
KTsKICAgICBFWFBFQ1RfU1RSRVEoImF1dG8iLCBHVEVTVF9GTEFHKGNvbG9yKS5jX3N0cigpKTsK
ICAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3VzZV9mb3JrKSk7CisgICAg
RVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKCIi
LCBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZM
QUcobGlzdF90ZXN0cykpOwogICAgIEVYUEVDVF9TVFJFUSgiIiwgR1RFU1RfRkxBRyhvdXRwdXQp
LmNfc3RyKCkpOworICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQ
RUNUX1RSVUUoR1RFU1RfRkxBRyhwcmludF90aW1lKSk7CiAgICAgRVhQRUNUX0VRKDAsIEdURVNU
X0ZMQUcocmFuZG9tX3NlZWQpKTsKICAgICBFWFBFQ1RfRVEoMSwgR1RFU1RfRkxBRyhyZXBlYXQp
KTsKQEAgLTE2MDcsOSArMTY0OSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJs
aWMgVGVzdCB7CiAgICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IHRydWU7CiAgICAg
R1RFU1RfRkxBRyhjb2xvcikgPSAibm8iOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2Vf
Zm9yaykgPSB0cnVlOworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IHRydWU7CiAgICAgR1RF
U1RfRkxBRyhmaWx0ZXIpID0gImFiYyI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSA9IHRy
dWU7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gInhtbDpmb28ueG1sIjsKKyAgICBHVEVTVF9G
TEFHKGJyaWVmKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IGZhbHNlOwog
ICAgIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpID0gMTsKICAgICBHVEVTVF9GTEFHKHJlcGVhdCkg
PSAxMDA7CkBAIC0xNjI0LDcgKzE2NjgsNyBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBHVGVzdEZsYWdTYXZlciogc2F2ZXJfOwogfTsKIAotR1Rl
c3RGbGFnU2F2ZXIqIEdUZXN0RmxhZ1NhdmVyVGVzdDo6c2F2ZXJfID0gTlVMTDsKK0dUZXN0Rmxh
Z1NhdmVyKiBHVGVzdEZsYWdTYXZlclRlc3Q6OnNhdmVyXyA9IG51bGxwdHI7CiAKIC8vIEdvb2ds
ZSBUZXN0IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBvcmRlciBvZiB0ZXN0cy4gIFRoZSBmb2xsb3dp
bmcgdHdvCiAvLyB0ZXN0cyBhcmUgZGVzaWduZWQgdG8gd29yayByZWdhcmRsZXNzIG9mIHRoZWly
IG9yZGVyLgpAQCAtMTczNyw3ICsxNzgxLDcgQEAgVEVTVChJbnQzMkZyb21HVGVzdEVudlRlc3Qs
IFBhcnNlc0FuZFJldHVybnNWYWxpZFZhbHVlKSB7CiAvLyBUZXN0cyB0aGF0IFBhcnNlSW50MzJG
bGFnKCkgcmV0dXJucyBmYWxzZSBhbmQgZG9lc24ndCBjaGFuZ2UgdGhlCiAvLyBvdXRwdXQgdmFs
dWUgd2hlbiB0aGUgZmxhZyBoYXMgd3JvbmcgZm9ybWF0CiBURVNUKFBhcnNlSW50MzJGbGFnVGVz
dCwgUmV0dXJuc0ZhbHNlRm9ySW52YWxpZEZsYWcpIHsKLSAgSW50MzIgdmFsdWUgPSAxMjM7Cisg
IGludDMyX3QgdmFsdWUgPSAxMjM7CiAgIEVYUEVDVF9GQUxTRShQYXJzZUludDMyRmxhZygiLS1h
PTEwMCIsICJiIiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9FUSgxMjMsIHZhbHVlKTsKIApAQCAtMTc1
MCw3ICsxNzk0LDcgQEAgVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFJldHVybnNGYWxzZUZvcklu
dmFsaWRGbGFnKSB7CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVu
VmFsdWVPdmVyZmxvd3MpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsK
IAotICBJbnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJfdCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNU
X0ZBTFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz0xMjM0NTY3ODk4NzY1NDMyMSIsICJhYmMiLCAm
dmFsdWUpKTsKICAgRVhQRUNUX0VRKDEyMywgdmFsdWUpOwogCkBAIC0xNzY0LDcgKzE4MDgsNyBA
QCBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxv
d3MpIHsKIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlz
SW52YWxpZCkgewogICBwcmludGYoIihleHBlY3RpbmcgMiB3YXJuaW5ncylcbiIpOwogCi0gIElu
dDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZhbHVlID0gMTIzOwogICBFWFBFQ1RfRkFMU0Uo
UGFyc2VJbnQzMkZsYWcoIi0tYWJjPUExIiwgImFiYyIsICZ2YWx1ZSkpOwogICBFWFBFQ1RfRVEo
MTIzLCB2YWx1ZSk7CiAKQEAgLTE3NzYsNyArMTgyMCw3IEBAIFRFU1QoUGFyc2VJbnQzMkZsYWdU
ZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52YWxpZCkgewogLy8gcmV0dXJucyB0cnVl
IHdoZW4gdGhlIGZsYWcgcmVwcmVzZW50cyBhIHZhbGlkIGRlY2ltYWwgaW50ZWdlciBpbgogLy8g
dGhlIHJhbmdlIG9mIGFuIEludDMyLgogVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFBhcnNlc0Fu
ZFJldHVybnNWYWxpZFZhbHVlKSB7Ci0gIEludDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZh
bHVlID0gMTIzOwogICBFWFBFQ1RfVFJVRShQYXJzZUludDMyRmxhZygiLS0iIEdURVNUX0ZMQUdf
UFJFRklYXyAiYWJjPTQ1NiIsICJhYmMiLCAmdmFsdWUpKTsKICAgRVhQRUNUX0VRKDQ1NiwgdmFs
dWUpOwogCkBAIC0xNzk5LDcgKzE4NDMsNyBAQCBURVNUKEludDMyRnJvbUVudk9yRGllVGVzdCwg
UGFyc2VzQW5kUmV0dXJuc1ZhbGlkVmFsdWUpIHsKICNlbmRpZiAgLy8gIUdURVNUX09TX1dJTkRP
V1NfTU9CSUxFCiAKIC8vIFRlc3RzIHRoYXQgSW50MzJGcm9tRW52T3JEaWUoKSBhYm9ydHMgd2l0
aCBhbiBlcnJvciBtZXNzYWdlCi0vLyBpZiB0aGUgdmFyaWFibGUgaXMgbm90IGFuIEludDMyLgor
Ly8gaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCBhbiBpbnQzMl90LgogVEVTVChJbnQzMkZyb21FbnZP
ckRpZURlYXRoVGVzdCwgQWJvcnRzT25GYWlsdXJlKSB7CiAgIFNldEVudihHVEVTVF9GTEFHX1BS
RUZJWF9VUFBFUl8gIlZBUiIsICJ4eHgiKTsKICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgK
QEAgLTE4MDgsNyArMTg1Miw3IEBAIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFi
b3J0c09uRmFpbHVyZSkgewogfQogCiAvLyBUZXN0cyB0aGF0IEludDMyRnJvbUVudk9yRGllKCkg
YWJvcnRzIHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8gaWYgdGhlIHZhcmlhYmxlIGNhbm5vdCBi
ZSByZXByZXNlbnRlZCBieSBhbiBJbnQzMi4KKy8vIGlmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUg
cmVwcmVzZW50ZWQgYnkgYW4gaW50MzJfdC4KIFRFU1QoSW50MzJGcm9tRW52T3JEaWVEZWF0aFRl
c3QsIEFib3J0c09uSW50MzJPdmVyZmxvdykgewogICBTZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhf
VVBQRVJfICJWQVIiLCAiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNCIpOwogICBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVEKApAQCAtMTgyOCwxMiArMTg3MiwxMiBAQCBURVNUKFNob3VsZFJ1blRlc3RP
blNoYXJkVGVzdCwgSXNQYXJ0aXRpb25XaGVuVGhlcmVJc09uZVNoYXJkKSB7CiAKIGNsYXNzIFNo
b3VsZFNoYXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZp
cnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBpbmRl
eF92YXJfID0gR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJJTkRFWCI7CiAgICAgdG90YWxfdmFy
XyA9IEdURVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVE9UQUwiOwogICB9CiAKLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIFNldEVu
dihpbmRleF92YXJfLCAiIik7CiAgICAgU2V0RW52KHRvdGFsX3Zhcl8sICIiKTsKICAgfQpAQCAt
MTk0MiwxNCArMTk4NiwxNCBAQCBURVNUKFNob3VsZFJ1blRlc3RPblNoYXJkVGVzdCwgSXNQYXJ0
aXRpb25XaGVuVGhlcmVBcmVGaXZlU2hhcmRzKSB7CiAvLyBUZXN0IGNsYXNzLCB0aGVyZSBhcmUg
bm8gc2VwYXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgY2xhc3NlcwogLy8gKGV4Y2VwdCBm
b3Igc29tZSB0cml2aWFsIGNhc2VzKToKIC8vCi0vLyAgIFRlc3RDYXNlLCBVbml0VGVzdCwgVW5p
dFRlc3RSZXN1bHRQcmludGVyLgorLy8gICBUZXN0U3VpdGUsIFVuaXRUZXN0LCBVbml0VGVzdFJl
c3VsdFByaW50ZXIuCiAvLwogLy8gU2ltaWxhcmx5LCB0aGVyZSBhcmUgbm8gc2VwYXJhdGUgdGVz
dHMgZm9yIHRoZSBmb2xsb3dpbmcgbWFjcm9zOgogLy8KIC8vICAgVEVTVCwgVEVTVF9GLCBSVU5f
QUxMX1RFU1RTCiAKIFRFU1QoVW5pdFRlc3RUZXN0LCBDYW5HZXRPcmlnaW5hbFdvcmtpbmdEaXIp
IHsKLSAgQVNTRVJUX1RSVUUoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtp
bmdfZGlyKCkgIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
LT5vcmlnaW5hbF93b3JraW5nX2RpcigpICE9IG51bGxwdHIpOwogICBFWFBFQ1RfU1RSTkUoVW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICIiKTsKIH0KIApA
QCAtMTk3MSwyMCArMjAxNSwyMSBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0KAogICAgIGNvbnN0IGNo
YXIqIGtleSkgewogICBjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvID0gVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfaW5mbyAh
PSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9pbmZvICE9IG51bGxwdHIpOwogICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgqdGVzdF9pbmZv
LT5yZXN1bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga2V5KTsKIH0KIAotdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRp
bmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKK3ZvaWQgRXhwZWN0
Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50
VGVzdFN1aXRlKAogICAgIGNvbnN0IGNoYXIqIGtleSkgewotICBjb25zdCBUZXN0Q2FzZSogdGVz
dF9jYXNlID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9jYXNlKCk7Ci0g
IEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKKyAgY29uc3QgdGVzdGluZzo6VGVzdFN1
aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50
X3Rlc3Rfc3VpdGUoKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBudWxscHRyKTsKICAg
RXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXkoCi0g
ICAgICB0ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOworICAgICAgdGVzdF9z
dWl0ZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCksIGtleSk7CiB9CiAKLXZvaWQgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2Fz
ZSgKK3ZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2
ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgY29uc3QgY2hhcioga2V5KSB7CiAgIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogICAgICAg
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwpAQCAt
MTk5NiwyOSArMjA0MSwzMiBAQCB2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1By
b3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCiBjbGFzcyBVbml0VGVzdFJl
Y29yZFByb3BlcnR5VGVzdCA6CiAgICAgcHVibGljIHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVz
dFJlY29yZFByb3BlcnR5VGVzdEhlbHBlciB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBTZXRV
cFRlc3RDYXNlKCkgewotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RTdWl0ZSgpIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdp
dGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUoCiAgICAgICAgICJkaXNhYmxlZCIpOwot
ICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5
Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1By
b3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAgImVycm9y
cyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29y
ZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAg
ImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWls
dXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAog
ICAgICAgICAibmFtZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0
ZSgKICAgICAgICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5n
UHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCisgICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVz
dFN1aXRlKAogICAgICAgICAidGltZSIpOwogCiAgICAgVGVzdDo6UmVjb3JkUHJvcGVydHkoInRl
c3RfY2FzZV9rZXlfMSIsICIxIik7Ci0gICAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfY2FzZSgpOwotICAgIEFTU0VSVF9U
UlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKIAotICAgIEFTU0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPmFk
X2hvY190ZXN0X3Jlc3VsdCgpLnRlc3RfcHJvcGVydHlfY291bnQoKSk7CisgICAgY29uc3QgdGVz
dGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgICAgVW5pdFRlc3Q6OkdldEluc3Rh
bmNlKCktPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworCisgICAgQVNTRVJUX1RSVUUodGVzdF9zdWl0
ZSAhPSBudWxscHRyKTsKKworICAgIEFTU0VSVF9FUSgxLCB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVz
dF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwogICAgIEVYUEVDVF9TVFJFUSgidGVz
dF9jYXNlX2tleV8xIiwKLSAgICAgICAgICAgICAgICAgdGVzdF9jYXNlLT5hZF9ob2NfdGVzdF9y
ZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOworICAgICAgICAgICAgICAgICB0ZXN0
X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkpOwog
ICAgIEVYUEVDVF9TVFJFUSgiMSIsCi0gICAgICAgICAgICAgICAgIHRlc3RfY2FzZS0+YWRfaG9j
X3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLnZhbHVlKCkpOworICAgICAgICAgICAg
ICAgICB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCku
dmFsdWUoKSk7CiAgIH0KIH07CiAKQEAgLTIwNzEsNyArMjExOSw3IEBAIFRFU1RfRihVbml0VGVz
dFJlY29yZFByb3BlcnR5VGVzdCwgT3ZlcnJpZGVzVmFsdWVzRm9yRHVwbGljYXRlS2V5cykgewog
fQogCiBURVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsCi0gICAgICAgQWRkRmFpbHVy
ZUluc2lkZVRlc3RzV2hlblVzaW5nVGVzdENhc2VSZXNlcnZlZEtleXMpIHsKKyAgICAgICBBZGRG
YWlsdXJlSW5zaWRlVGVzdHNXaGVuVXNpbmdUZXN0U3VpdGVSZXNlcnZlZEtleXMpIHsKICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJy
ZW50VGVzdCgKICAgICAgICJuYW1lIik7CiAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3QoCkBAIC0yMDk2LDI4ICsyMTQ0
LDI4IEBAIFRFU1RfRihVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdCwKIAogY2xhc3MgVW5pdFRl
c3RSZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAg
cHVibGljOgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgK
KyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVS
ZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAg
ICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1
cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAg
ICAgICAgImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJv
cGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRh
bEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0
ZSgKICAgICAgICAgImRpc2FibGVkIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3Jk
aW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3RO
b25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRl
c3RTdWl0ZSgKICAgICAgICAgImVycm9ycyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJl
Y29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRl
T2ZUZXN0U3VpdGUoCiAgICAgICAgICJuYW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJl
UmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBF
eHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNp
ZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInRpbWVzdGFtcCIpOwotICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2Uo
CisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRL
ZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJ0aW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2Fz
ZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZl
ZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInJhbmRvbV9zZWVkIik7CiAgIH0KIH07
CiAKIC8vIFRoaXMgd2lsbCB0ZXN0IHByb3BlcnR5IHJlY29yZGluZyBvdXRzaWRlIG9mIGFueSB0
ZXN0IG9yIHRlc3QgY2FzZS4KLXN0YXRpYyBFbnZpcm9ubWVudCogcmVjb3JkX3Byb3BlcnR5X2Vu
diA9CitzdGF0aWMgRW52aXJvbm1lbnQqIHJlY29yZF9wcm9wZXJ0eV9lbnYgR1RFU1RfQVRUUklC
VVRFX1VOVVNFRF8gPQogICAgIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVW5pdFRlc3RS
ZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCk7CiAKIC8vIFRoaXMgZ3JvdXAgb2YgdGVzdHMg
aXMgZm9yIHByZWRpY2F0ZSBhc3NlcnRpb25zIChBU1NFUlRfUFJFRCosIGV0YykKQEAgLTIxMjgs
MTIgKzIxNzYsMTIgQEAgc3RhdGljIEVudmlyb25tZW50KiByZWNvcmRfcHJvcGVydHlfZW52ID0K
IAogLy8gRmlyc3QsIHNvbWUgcHJlZGljYXRlcyBhbmQgcHJlZGljYXRlLWZvcm1hdHRlcnMgbmVl
ZGVkIGJ5IHRoZSB0ZXN0cy4KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMg
YW4gZXZlbiBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3Vt
ZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogYm9vbCBJc0V2ZW4oaW50IG4pIHsKICAgcmV0dXJuIChu
ICUgMikgPT0gMDsKIH0KIAotLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUg
YXJndW1lbnQgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBBIGZ1bmN0b3IgdGhhdCByZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogc3RydWN0
IElzRXZlbkZ1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50IG4pIHsgcmV0dXJuIElzRXZl
bihuKTsgfQogfTsKQEAgLTIxNzcsMTMgKzIyMjUsMTMgQEAgc3RydWN0IEFzc2VydElzRXZlbkZ1
bmN0b3IgewogICB9CiB9OwogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBzdW0gb2YgdGhlIGFy
Z3VtZW50cyBpcyBhbiBldmVuIG51bWJlci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4gZXZlbiBudW1iZXIuCiBib29sIFN1bUlz
RXZlbjIoaW50IG4xLCBpbnQgbjIpIHsKICAgcmV0dXJuIElzRXZlbihuMSArIG4yKTsKIH0KIAot
Ly8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVu
dHMgaXMgYW4gZXZlbgotLy8gbnVtYmVyLgorLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50cyBpcyBhbgorLy8gZXZlbiBu
dW1iZXIuCiBzdHJ1Y3QgU3VtSXNFdmVuM0Z1bmN0b3IgewogICBib29sIG9wZXJhdG9yKCkoaW50
IG4xLCBpbnQgbjIsIGludCBuMykgewogICAgIHJldHVybiBJc0V2ZW4objEgKyBuMiArIG4zKTsK
QEAgLTIzNjIsNiArMjQxMCwxNiBAQCBURVNUKFByZWRUZXN0LCBTaW5nbGVFdmFsdWF0aW9uT25G
YWlsdXJlKSB7CiAgIEVYUEVDVF9FUSgxLCBuNCkgPDwgIkFyZ3VtZW50IDQgaXMgbm90IGV2YWx1
YXRlZCBleGFjdGx5IG9uY2UuIjsKIH0KIAorLy8gVGVzdCBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBm
b3Igc2V0cworVEVTVChQcmVkVGVzdCwgRXhwZWN0UHJlZEV2YWxGYWlsdXJlKSB7CisgIHN0ZDo6
c2V0PGludD4gc2V0X2EgPSB7MiwgMSwgMywgNCwgNX07CisgIHN0ZDo6c2V0PGludD4gc2V0X2Ig
PSB7MCwgNCwgOH07CisgIGNvbnN0IGF1dG8gY29tcGFyZV9zZXRzID0gW10gKHN0ZDo6c2V0PGlu
dD4sIHN0ZDo6c2V0PGludD4pIHsgcmV0dXJuIGZhbHNlOyB9OworICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRSgKKyAgICAgIEVYUEVDVF9QUkVEMihjb21wYXJlX3NldHMsIHNldF9hLCBzZXRfYiks
CisgICAgICAiY29tcGFyZV9zZXRzKHNldF9hLCBzZXRfYikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3
aGVyZVxuc2V0X2EgZXZhbHVhdGVzICIKKyAgICAgICJ0byB7IDEsIDIsIDMsIDQsIDUgfVxuc2V0
X2IgZXZhbHVhdGVzIHRvIHsgMCwgNCwgOCB9Iik7Cit9CiAKIC8vIFNvbWUgaGVscGVyIGZ1bmN0
aW9ucyBmb3IgdGVzdGluZyB1c2luZyBvdmVybG9hZGVkL3RlbXBsYXRlCiAvLyBmdW5jdGlvbnMg
d2l0aCBBU1NFUlRfUFJFRG4gYW5kIEVYUEVDVF9QUkVEbi4KQEAgLTI0NTYsMjQgKzI1MTQsMjIg
QEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVEpIHsKIAogLy8gVGVzdHMg
QVNTRVJUX1NUUkVRIHdpdGggTlVMTCBhcmd1bWVudHMuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRl
c3QsIEFTU0VSVF9TVFJFUV9OdWxsKSB7Ci0gIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25z
dCBjaGFyICo+KE5VTEwpLCBOVUxMKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NU
UkVRKE5VTEwsICJub24tbnVsbCIpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwi
KTsKKyAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgbnVs
bHB0cik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUShudWxscHRyLCAibm9u
LW51bGwiKSwgIm5vbi1udWxsIik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9TVFJFUSB3aXRoIE5V
TEwgYXJndW1lbnRzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSRVFfTnVs
bDIpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIE5V
TEwpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAgRVhQRUNUX0ZBVEFM
X0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsK
IH0KIAogLy8gVGVzdHMgQVNTRVJUX1NUUk5FLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBB
U1NFUlRfU1RSTkUpIHsKICAgQVNTRVJUX1NUUk5FKCJoaSIsICJIaSIpOwotICBBU1NFUlRfU1RS
TkUoIkhpIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShOVUxMLCAiSGkiKTsKLSAgQVNTRVJUX1NU
Uk5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUk5FKE5VTEwsICIiKTsKKyAgQVNTRVJUX1NUUk5F
KCJIaSIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSTkUobnVsbHB0ciwgIkhpIik7CisgIEFTU0VS
VF9TVFJORSgiIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJORShudWxscHRyLCAiIik7CiAgIEFT
U0VSVF9TVFJORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9TVFJORSgiSGkiLCAiIik7CiAgIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJORSgiSGkiLCAiSGkiKSwKQEAgLTI0ODMsNyArMjUz
OSw3IEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUk5FKSB7CiAvLyBUZXN0
cyBBU1NFUlRfU1RSQ0FTRUVRLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RS
Q0FTRUVRKSB7CiAgIEFTU0VSVF9TVFJDQVNFRVEoImhpIiwgIkhpIik7Ci0gIEFTU0VSVF9TVFJD
QVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihOVUxMKSwgTlVMTCk7CisgIEFTU0VSVF9T
VFJDQVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBudWxscHRyKTsKIAog
ICBBU1NFUlRfU1RSQ0FTRUVRKCIiLCAiIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VS
VF9TVFJDQVNFRVEoIkhpIiwgImhpMiIpLApAQCAtMjQ5MywxMCArMjU0OSwxMCBAQCBURVNUKFN0
cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFRVEpIHsKIC8vIFRlc3RzIEFTU0VSVF9T
VFJDQVNFTkUuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsK
ICAgQVNTRVJUX1NUUkNBU0VORSgiaGkxIiwgIkhpMiIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCJI
aSIsIE5VTEwpOwotICBBU1NFUlRfU1RSQ0FTRU5FKE5VTEwsICJIaSIpOwotICBBU1NFUlRfU1RS
Q0FTRU5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNBU0VORShOVUxMLCAiIik7CisgIEFTU0VS
VF9TVFJDQVNFTkUoIkhpIiwgbnVsbHB0cik7CisgIEFTU0VSVF9TVFJDQVNFTkUobnVsbHB0ciwg
IkhpIik7CisgIEFTU0VSVF9TVFJDQVNFTkUoIiIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSQ0FT
RU5FKG51bGxwdHIsICIiKTsKICAgQVNTRVJUX1NUUkNBU0VORSgiIiwgIkhpIik7CiAgIEFTU0VS
VF9TVFJDQVNFTkUoIkhpIiwgIiIpOwogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RS
Q0FTRU5FKCJIaSIsICJoaSIpLApAQCAtMjUwNiwxNCArMjU2MiwxMyBAQCBURVNUKFN0cmluZ0Fz
c2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsKIC8vIFRlc3RzICpfU1RSRVEgb24gd2lk
ZSBzdHJpbmdzLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAgIC8v
IE5VTEwgc3RyaW5ncy4KLSAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IHdjaGFyX3Qg
Kj4oTlVMTCksIE5VTEwpOworICBBU1NFUlRfU1RSRVEoc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJf
dCo+KG51bGxwdHIpLCBudWxscHRyKTsKIAogICAvLyBFbXB0eSBzdHJpbmdzLgogICBBU1NFUlRf
U1RSRVEoTCIiLCBMIiIpOwogCiAgIC8vIE5vbi1udWxsIHZzIE5VTEwuCi0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9TVFJFUShMIm5vbi1udWxsIiwgTlVMTCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJub24tbnVsbCIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShF
WFBFQ1RfU1RSRVEoTCJub24tbnVsbCIsIG51bGxwdHIpLCAibm9uLW51bGwiKTsKIAogICAvLyBF
cXVhbCBzdHJpbmdzLgogICBFWFBFQ1RfU1RSRVEoTCJIaSIsIEwiSGkiKTsKQEAgLTI1MzUsMTYg
KzI1OTAsMTggQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJFUV9XaWRlKSB7CiAvLyBU
ZXN0cyAqX1NUUk5FIG9uIHdpZGUgc3RyaW5ncy4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwg
U1RSTkVfV2lkZSkgewogICAvLyBOVUxMIHN0cmluZ3MuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9TVFJORShzdGF0aWNfY2FzdDxjb25zdCB3Y2hh
cl90ICo+KE5VTEwpLCBOVUxMKTsKLSAgfSwgIiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RSgKKyAgICAgIHsgIC8vIE5PTElOVAorICAgICAgICBFWFBFQ1RfU1RSTkUoc3RhdGljX2Nhc3Q8
Y29uc3Qgd2NoYXJfdCo+KG51bGxwdHIpLCBudWxscHRyKTsKKyAgICAgIH0sCisgICAgICAiIik7
CiAKICAgLy8gRW1wdHkgc3RyaW5ncy4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X1NUUk5FKEwiIiwgTCIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcIlwiIik7CiAK
ICAgLy8gTm9uLW51bGwgdnMgTlVMTC4KLSAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBOVUxM
KTsKKyAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBudWxscHRyKTsKIAogICAvLyBFcXVhbCBz
dHJpbmdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSTkUoTCJIaSIsIEwi
SGkiKSwKQEAgLTI1NjYsMTEgKzI2MjMsMTEgQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBT
VFJORV9XaWRlKSB7CiAvLyBUZXN0cyB0aGF0IElzU3Vic3RyaW5nKCkgcmV0dXJucyB0aGUgY29y
cmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKIC8vIGFyZ3VtZW50IHR5cGUgaXMgY29uc3QgY2hh
ciouCiBURVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJuc0NvcnJlY3RSZXN1bHRGb3JDU3RyaW5n
KSB7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIE5VTEwsICJhIikpOwotICBF
WFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAiYiIsIE5VTEwpKTsKKyAgRVhQRUNUX0ZB
TFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgbnVsbHB0ciwgImEiKSk7CisgIEVYUEVDVF9GQUxTRShJ
c1N1YnN0cmluZygiIiwgIiIsICJiIiwgbnVsbHB0cikpOwogICBFWFBFQ1RfRkFMU0UoSXNTdWJz
dHJpbmcoIiIsICIiLCAibmVlZGxlIiwgImhheXN0YWNrIikpOwogCi0gIEVYUEVDVF9UUlVFKElz
U3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KE5VTEwpLCBOVUxMKSk7
CisgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG51bGxwdHIpLCBudWxscHRyKSk7CiAgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAi
IiwgIm5lZWRsZSIsICJ0d28gbmVlZGxlcyIpKTsKIH0KIApAQCAtMjU4MSw3ICsyNjM4LDggQEAg
VEVTVChJc1N1YnN0cmluZ1Rlc3QsIFJldHVybnNDb3JyZWN0UmVzdWx0Rm9yV2lkZUNTdHJpbmcp
IHsKICAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJiIiwga051bGwpKTsKICAg
RVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJuZWVkbGUiLCBMImhheXN0YWNrIikp
OwogCi0gIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3Qg
d2NoYXJfdCo+KE5VTEwpLCBOVUxMKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSXNTdWJzdHJp
bmcoIiIsICIiLCBzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90Kj4obnVsbHB0ciksIG51bGxwdHIp
KTsKICAgRVhQRUNUX1RSVUUoSXNTdWJzdHJpbmcoIiIsICIiLCBMIm5lZWRsZSIsIEwidHdvIG5l
ZWRsZXMiKSk7CiB9CiAKQEAgLTI3MDksOCArMjc2Nyw4IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnRU
ZXN0IDogcHVibGljIFRlc3QgewogICB0eXBlZGVmIHR5cGVuYW1lIHRlc3Rpbmc6OmludGVybmFs
OjpGbG9hdGluZ1BvaW50PFJhd1R5cGU+IEZsb2F0aW5nOwogICB0eXBlZGVmIHR5cGVuYW1lIEZs
b2F0aW5nOjpCaXRzIEJpdHM7CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGNvbnN0
IHNpemVfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxwczsKKyAgdm9pZCBTZXRVcCgpIG92
ZXJyaWRlIHsKKyAgICBjb25zdCB1aW50MzJfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4VWxw
czsKIAogICAgIC8vIFRoZSBiaXRzIHRoYXQgcmVwcmVzZW50IDAuMC4KICAgICBjb25zdCBCaXRz
IHplcm9fYml0cyA9IEZsb2F0aW5nKDApLmJpdHMoKTsKQEAgLTI4MjQsOCArMjg4Miw2IEBAIFRF
U1RfRihGbG9hdFRlc3QsIExhcmdlRGlmZikgewogVEVTVF9GKEZsb2F0VGVzdCwgSW5maW5pdHkp
IHsKICAgRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHksIHZhbHVlc18uY2xvc2VfdG9f
aW5maW5pdHkpOwogICBFWFBFQ1RfRkxPQVRfRVEoLXZhbHVlc18uaW5maW5pdHksIC12YWx1ZXNf
LmNsb3NlX3RvX2luZmluaXR5KTsKLSNpZiAhR1RFU1RfT1NfU1lNQklBTgotICAvLyBOb2tpYSdz
IFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0cHV0IGluZmluaXR5IG9yIE5hTi4KICAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5maW5pdHks
IC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIi12YWx1ZXNf
LmluZmluaXR5Iik7CiAKQEAgLTI4MzMsMTQgKzI4ODksMTAgQEAgVEVTVF9GKEZsb2F0VGVzdCwg
SW5maW5pdHkpIHsKICAgLy8gYXJlIG9ubHkgMSBETFAgYXBhcnQuCiAgIEVYUEVDVF9OT05GQVRB
TF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLm5hbjEp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzXy5uYW4xIik7Ci0jZW5kaWYgIC8v
ICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgY29tcGFyaW5nIHdpdGggTkFO
IGFsd2F5cyByZXR1cm5zIGZhbHNlLgogVEVTVF9GKEZsb2F0VGVzdCwgTmFOKSB7Ci0jaWYgIUdU
RVNUX09TX1NZTUJJQU4KLS8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBv
dXRwdXQgaW5maW5pdHkgb3IgTmFOLgotCiAgIC8vIEluIEMrK0J1aWxkZXIsIG5hbWVzIHdpdGhp
biBsb2NhbCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkKICAgLy8gRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUpIGNhbm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZQogICAv
LyBzY29waW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxvY2FsIGFsaWFzIGFzIGEgd29ya2Fyb3Vu
ZC4KQEAgLTI4NTgsNyArMjkxMCw2IEBAIFRFU1RfRihGbG9hdFRlc3QsIE5hTikgewogCiAgIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9GTE9BVF9FUSh2Lm5hbjEsIHYuaW5maW5pdHkpLAog
ICAgICAgICAgICAgICAgICAgICAgICAidi5pbmZpbml0eSIpOwotI2VuZGlmICAvLyAhR1RFU1Rf
T1NfU1lNQklBTgogfQogCiAvLyBUZXN0cyB0aGF0ICpfRkxPQVRfRVEgYXJlIHJlZmxleGl2ZS4K
QEAgLTI4ODIsMjIgKzI5MzMsMTggQEAgVEVTVF9GKEZsb2F0VGVzdCwgQ29tbXV0YXRpdmUpIHsK
IFRFU1RfRihGbG9hdFRlc3QsIEVYUEVDVF9ORUFSKSB7CiAgIEVYUEVDVF9ORUFSKC0xLjBmLCAt
MS4xZiwgMC4yZik7CiAgIEVYUEVDVF9ORUFSKDIuMGYsIDMuMGYsIDEuMGYpOwotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLDEuNWYsIDAuMjVmKSwgIC8vIE5PTElO
VAorICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBmLCAxLjVmLCAwLjI1
ZiksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNl
IGJldHdlZW4gMS4wZiBhbmQgMS41ZiBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndoaWNoIGV4Y2VlZHMgMC4yNWYiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4g
Z2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0
aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIGxpbmUuCiB9CiAKIC8vIFRlc3RzIEFTU0VS
VF9ORUFSLgogVEVTVF9GKEZsb2F0VGVzdCwgQVNTRVJUX05FQVIpIHsKICAgQVNTRVJUX05FQVIo
LTEuMGYsIC0xLjFmLCAwLjJmKTsKICAgQVNTRVJUX05FQVIoMi4wZiwgMy4wZiwgMS4wZik7Ci0g
IEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsMS41ZiwgMC4yNWYpLCAgLy8g
Tk9MSU5UCisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMGYsIDEuNWYsIDAu
MjVmKSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiAxLjBmIGFuZCAxLjVmIGlzIDAuNSwgIgogICAgICAgICAgICAgICAgICAgICAgICAi
d2hpY2ggZXhjZWVkcyAwLjI1ZiIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2Mg
Mi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBm
aXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgbGluZS4KIH0KIAogLy8gVGVzdHMgdGhlIGNhc2Vz
IHdoZXJlIEZsb2F0TEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTI5MjAsMTAgKzI5NjcsNiBAQCBU
RVNUX0YoRmxvYXRUZXN0LCBGbG9hdExFRmFpbHMpIHsKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQy
KEZsb2F0TEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wZik7CiAgIH0sICIodmFsdWVz
Xy5mdXJ0aGVyX2Zyb21fb25lKSA8PSAoMS4wZikiKTsKIAotI2lmICFHVEVTVF9PU19TWU1CSUFO
ICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMg
aWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCi0gIC8vIEMrK0J1aWxkZXIgZ2l2
ZXMgYmFkIHJlc3VsdHMgZm9yIG9yZGVyZWQgY29tcGFyaXNvbnMgaW52b2x2aW5nIE5hTnMKLSAg
Ly8gZHVlIHRvIGNvbXBpbGVyIGJ1Z3MuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8v
IE5PTElOVAogICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2
YWx1ZXNfLmluZmluaXR5KTsKICAgfSwgIih2YWx1ZXNfLm5hbjEpIDw9ICh2YWx1ZXNfLmluZmlu
aXR5KSIpOwpAQCAtMjkzMyw3ICsyOTc2LDYgQEAgVEVTVF9GKEZsb2F0VGVzdCwgRmxvYXRMRUZh
aWxzKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAogICAgIEFTU0VSVF9Q
UkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2YWx1ZXNfLm5hbjEpOwogICB9LCAi
KHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09T
X1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQogfQogCiAvLyBJbnN0YW50aWF0ZXMg
RmxvYXRpbmdQb2ludFRlc3QgZm9yIHRlc3RpbmcgKl9ET1VCTEVfRVEuCkBAIC0yOTk3LDggKzMw
MzksNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgTGFyZ2VEaWZmKSB7CiBURVNUX0YoRG91YmxlVGVz
dCwgSW5maW5pdHkpIHsKICAgRVhQRUNUX0RPVUJMRV9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1
ZXNfLmNsb3NlX3RvX2luZmluaXR5KTsKICAgRVhQRUNUX0RPVUJMRV9FUSgtdmFsdWVzXy5pbmZp
bml0eSwgLXZhbHVlc18uY2xvc2VfdG9faW5maW5pdHkpOwotI2lmICFHVEVTVF9PU19TWU1CSUFO
Ci0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5p
dHkgb3IgTmFOLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZh
bHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi12YWx1ZXNfLmluZmluaXR5Iik7CiAKQEAgLTMwMDYsMTggKzMwNDYsMTAgQEAgVEVT
VF9GKERvdWJsZVRlc3QsIEluZmluaXR5KSB7CiAgIC8vIGFyZSBvbmx5IDEgRExQIGFwYXJ0Lgog
ICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18uaW5maW5p
dHksIHZhbHVlc18ubmFuMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZXNfLm5h
bjEiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCBj
b21wYXJpbmcgd2l0aCBOQU4gYWx3YXlzIHJldHVybnMgZmFsc2UuCiBURVNUX0YoRG91YmxlVGVz
dCwgTmFOKSB7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gSW4gQysrQnVpbGRlciwgbmFt
ZXMgd2l0aGluIGxvY2FsIGNsYXNzZXMgKHN1Y2ggYXMgdXNlZCBieQotICAvLyBFWFBFQ1RfRkFU
QUxfRkFJTFVSRSkgY2Fubm90IGJlIHJlc29sdmVkIGFnYWluc3Qgc3RhdGljIG1lbWJlcnMgb2Yg
dGhlCi0gIC8vIHNjb3BpbmcgY2xhc3MuICBVc2UgYSBzdGF0aWMgbG9jYWwgYWxpYXMgYXMgYSB3
b3JrYXJvdW5kLgotICAvLyBXZSB1c2UgdGhlIGFzc2lnbm1lbnQgc3ludGF4IHNpbmNlIHNvbWUg
Y29tcGlsZXJzLCBsaWtlIFN1biBTdHVkaW8sCi0gIC8vIGRvbid0IGFsbG93IGluaXRpYWxpemlu
ZyByZWZlcmVuY2VzIHVzaW5nIGNvbnN0cnVjdGlvbiBzeW50YXgKLSAgLy8gKHBhcmVudGhlc2Vz
KS4KICAgc3RhdGljIGNvbnN0IERvdWJsZVRlc3Q6OlRlc3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1
ZXNfOwogCiAgIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQg
aW5maW5pdHkgb3IgTmFOLgpAQCAtMzAyNywxNyArMzA1OSwxMyBAQCBURVNUX0YoRG91YmxlVGVz
dCwgTmFOKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ET1VCTEVfRVEoMS4w
LCB2Lm5hbjEpLCAidi5uYW4xIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ET1VC
TEVfRVEodi5uYW4xLCB2LmluZmluaXR5KSwKICAgICAgICAgICAgICAgICAgICAgICAgInYuaW5m
aW5pdHkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhh
dCAqX0RPVUJMRV9FUSBhcmUgcmVmbGV4aXZlLgogVEVTVF9GKERvdWJsZVRlc3QsIFJlZmxleGl2
ZSkgewogICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgMC4wKTsKICAgRVhQRUNUX0RPVUJMRV9FUSgx
LjAsIDEuMCk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gTm9raWEncyBTVExwb3J0IGNy
YXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4uCiAgIEFTU0VSVF9ET1VC
TEVfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5pbmZpbml0eSk7Ci0jZW5kaWYgIC8vICFH
VEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRoYXQgKl9ET1VCTEVfRVEgYXJlIGNvbW11
dGF0aXZlLgpAQCAtMzA1Nyw4ICszMDg1LDEzIEBAIFRFU1RfRihEb3VibGVUZXN0LCBFWFBFQ1Rf
TkVBUikgewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjAsIDEuNSwg
MC4yNSksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAiCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4g
Z2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0
aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4KKyAgLy8gQXQgdGhpcyBt
YWduaXR1ZGUgYWRqYWNlbnQgZG91YmxlcyBhcmUgNTEyLjAgYXBhcnQsIHNvIHRoaXMgdHJpZ2dl
cnMgYQorICAvLyBzbGlnaHRseSBkaWZmZXJlbnQgZmFpbHVyZSByZXBvcnRpbmcgcGF0aC4KKyAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCisgICAgICBFWFBFQ1RfTkVBUig0LjI5MzQzMTE0MTYy
MzQxMTJlKzE4LCA0LjI5MzQzMTE0MTYyMzQxMDdlKzE4LCAxLjApLAorICAgICAgIlRoZSBhYnNf
ZXJyb3IgcGFyYW1ldGVyIDEuMCBldmFsdWF0ZXMgdG8gMSB3aGljaCBpcyBzbWFsbGVyIHRoYW4g
dGhlICIKKyAgICAgICJtaW5pbXVtIGRpc3RhbmNlIGJldHdlZW4gZG91YmxlcyBmb3IgbnVtYmVy
cyBvZiB0aGlzIG1hZ25pdHVkZSB3aGljaCBpcyAiCisgICAgICAiNTEyIik7CiB9CiAKIC8vIFRl
c3RzIEFTU0VSVF9ORUFSLgpAQCAtMzA2OCw4ICszMTAxLDYgQEAgVEVTVF9GKERvdWJsZVRlc3Qs
IEFTU0VSVF9ORUFSKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEuMCwg
MS41LCAwLjI1KSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiAxLjAgYW5kIDEuNSBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAg
ICAgIndoaWNoIGV4Y2VlZHMgMC4yNSIpOwotICAvLyBUbyB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBn
Y2MgMi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRo
ZSBmaXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgc3RhdGVtZW50LgogfQogCiAvLyBUZXN0cyB0
aGUgY2FzZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQgc3VjY2VlZC4KQEAgLTMwOTIsMTAgKzMx
MjMsNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgRG91YmxlTEVGYWlscykgewogICAgIEVYUEVDVF9Q
UkVEX0ZPUk1BVDIoRG91YmxlTEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29uZSwgMS4wKTsKICAg
fSwgIih2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpIDw9ICgxLjApIik7CiAKLSNpZiAhR1RFU1Rf
T1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIE5va2lhJ3MgU1RMcG9y
dCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICAvLyBDKytC
dWlsZGVyIGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRlcmVkIGNvbXBhcmlzb25zIGludm9sdmlu
ZyBOYU5zCi0gIC8vIGR1ZSB0byBjb21waWxlciBidWdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRSh7ICAvLyBOT0xJTlQKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1
ZXNfLm5hbjEsIHZhbHVlc18uaW5maW5pdHkpOwogICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZh
bHVlc18uaW5maW5pdHkpIik7CkBAIC0zMTA1LDcgKzMxMzIsNiBAQCBURVNUX0YoRG91YmxlVGVz
dCwgRG91YmxlTEVGYWlscykgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQK
ICAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18u
bmFuMSk7CiAgIH0sICIodmFsdWVzXy5uYW4xKSA8PSAodmFsdWVzXy5uYW4xKSIpOwotI2VuZGlm
ICAvLyAhR1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCiB9CiAKIApA
QCAtMzEyNiwyOCArMzE1MiwyOCBAQCBURVNUKERpc2FibGVkVGVzdCwgTm90RElTQUJMRURfVGVz
dFNob3VsZFJ1bikgewogCiAvLyBBIHRlc3QgY2FzZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIERJ
U0FCTEVEXy4KIC8vIFNob3VsZCBub3QgcnVuLgotVEVTVChESVNBQkxFRF9UZXN0Q2FzZSwgVGVz
dFNob3VsZE5vdFJ1bikgeworVEVTVChESVNBQkxFRF9UZXN0U3VpdGUsIFRlc3RTaG91bGROb3RS
dW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IFRlc3QgaW4gZGlzYWJsZWQg
dGVzdCBjYXNlIHNob3VsZCBub3QgYmUgcnVuLiI7CiB9CiAKIC8vIEEgdGVzdCBjYXNlIGFuZCB0
ZXN0IHdob3NlIG5hbWVzIHN0YXJ0IHdpdGggRElTQUJMRURfLgogLy8gU2hvdWxkIG5vdCBydW4u
Ci1URVNUKERJU0FCTEVEX1Rlc3RDYXNlLCBESVNBQkxFRF9UZXN0U2hvdWxkTm90UnVuKSB7CitU
RVNUKERJU0FCTEVEX1Rlc3RTdWl0ZSwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bikgewogICBG
QUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogVGVzdCBpbiBkaXNhYmxlZCB0ZXN0IGNhc2Ug
c2hvdWxkIG5vdCBiZSBydW4uIjsKIH0KIAotLy8gQ2hlY2sgdGhhdCB3aGVuIGFsbCB0ZXN0cyBp
biBhIHRlc3QgY2FzZSBhcmUgZGlzYWJsZWQsIFNldFVwVGVzdENhc2UoKSBhbmQKLS8vIFRlYXJE
b3duVGVzdENhc2UoKSBhcmUgbm90IGNhbGxlZC4KKy8vIENoZWNrIHRoYXQgd2hlbiBhbGwgdGVz
dHMgaW4gYSB0ZXN0IGNhc2UgYXJlIGRpc2FibGVkLCBTZXRVcFRlc3RTdWl0ZSgpIGFuZAorLy8g
VGVhckRvd25UZXN0U3VpdGUoKSBhcmUgbm90IGNhbGxlZC4KIGNsYXNzIERpc2FibGVkVGVzdHNU
ZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0
Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8
ICJVbmV4cGVjdGVkIGZhaWx1cmU6IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIK
LSAgICAgICAgICAgICAgIlNldFVwVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwor
ICAgICAgICAgICAgICAiU2V0VXBUZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwog
ICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQg
VGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6
IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIKLSAgICAgICAgICAgICAgIlRlYXJE
b3duVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOworICAgICAgICAgICAgICAiVGVh
ckRvd25UZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNhbGxlZC4iOwogICB9CiB9OwogCkBAIC0z
MTYxLDE0ICszMTg3LDEyIEBAIFRFU1RfRihEaXNhYmxlZFRlc3RzVGVzdCwgRElTQUJMRURfVGVz
dFNob3VsZE5vdFJ1bl8yKSB7CiAKIC8vIFRlc3RzIHRoYXQgZGlzYWJsZWQgdHlwZWQgdGVzdHMg
YXJlbid0IHJ1bi4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogdHlwZWRlZiB0
ZXN0aW5nOjpUeXBlczxpbnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVTVF9DQVNF
KFR5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBO
dW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgRElTQUJMRURfU2hvdWxkTm90
UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0
ZXN0IHNob3VsZCBub3QgcnVuLiI7CkBAIC0zMTc4LDQ5ICszMjAyLDQzIEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgRElTQUJMRURfVHlwZWRUZXN0IDogcHVibGljIFRlc3QgewogfTsK
IAotVFlQRURfVEVTVF9DQVNFKERJU0FCTEVEX1R5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZ
UEVEX1RFU1RfU1VJVEUoRElTQUJMRURfVHlwZWRUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBF
RF9URVNUKERJU0FCTEVEX1R5cGVkVGVzdCwgU2hvdWxkTm90UnVuKSB7CiAgIEZBSUwoKSA8PCAi
VW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7
CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogLy8gVGVzdHMgdGhhdCBk
aXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlbid0IHJ1bi4KIAotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUX1AKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRl
c3RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7
CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRl
c3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZh
aWx1cmU6ICIKICAgICAgICAgIDw8ICJEaXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBz
aG91bGQgbm90IHJ1bi4iOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRl
c3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9Q
KFR5cGVkVGVzdFAsIERJU0FCTEVEX1Nob3VsZE5vdFJ1bik7CiAKLUlOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9TVUlURV9QKE15LCBUeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIERJU0FCTEVEX1R5cGVkVGVzdFAgOiBwdWJsaWMgVGVz
dCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChESVNBQkxFRF9UeXBlZFRlc3RQKTsKIAogVFlQRURfVEVTVF9QKERJU0FC
TEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQg
ZmFpbHVyZTogIgogICAgICAgICAgPDwgIkRpc2FibGVkIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0
IHNob3VsZCBub3QgcnVuLiI7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKERJU0FC
TEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1Rf
Q0FTRV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOworUkVHSVNURVJf
VFlQRURfVEVTVF9TVUlURV9QKERJU0FCTEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7CiAK
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9TVUlURV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBOdW1lcmljVHlwZXMpOwogCiAvLyBU
ZXN0cyB0aGF0IGFzc2VydGlvbiBtYWNyb3MgZXZhbHVhdGUgdGhlaXIgYXJndW1lbnRzIGV4YWN0
bHkgb25jZS4KIApAQCAtMzMyNyw5ICszMzQ1LDI2IEBAIFRFU1RfRihTaW5nbGVFdmFsdWF0aW9u
VGVzdCwgT3RoZXJDYXNlcykgewogCiAjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAorI2lmIEdU
RVNUX0hBU19SVFRJCisKKyNpZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBFUlJPUl9ERVNDICJjbGFz
cyBzdGQ6OnJ1bnRpbWVfZXJyb3IiCisjZWxzZQorI2RlZmluZSBFUlJPUl9ERVNDICJzdGQ6OnJ1
bnRpbWVfZXJyb3IiCisjZW5kaWYKKworI2Vsc2UgIC8vIEdURVNUX0hBU19SVFRJCisKKyNkZWZp
bmUgRVJST1JfREVTQyAiYW4gc3RkOjpleGNlcHRpb24tZGVyaXZlZCBlcnJvciIKKworI2VuZGlm
ICAvLyBHVEVTVF9IQVNfUlRUSQorCiB2b2lkIFRocm93QW5JbnRlZ2VyKCkgewogICB0aHJvdyAx
OwogfQordm9pZCBUaHJvd1J1bnRpbWVFcnJvcihjb25zdCBjaGFyKiB3aGF0KSB7CisgIHRocm93
IHN0ZDo6cnVudGltZV9lcnJvcih3aGF0KTsKK30KIAogLy8gVGVzdHMgdGhhdCBhc3NlcnRpb24g
YXJndW1lbnRzIGFyZSBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgogVEVTVF9GKFNpbmdsZUV2YWx1
YXRpb25UZXN0LCBFeGNlcHRpb25UZXN0cykgewpAQCAtMzM0NywzMSArMzM4MiwzOCBAQCBURVNU
X0YoU2luZ2xlRXZhbHVhdGlvblRlc3QsIEV4Y2VwdGlvblRlc3RzKSB7CiAgIH0sIGJvb2wpLCAi
dGhyb3dzIGEgZGlmZmVyZW50IHR5cGUiKTsKICAgRVhQRUNUX0VRKDIsIGFfKTsKIAorICAvLyBm
YWlsZWQgRVhQRUNUX1RIUk9XLCB0aHJvd3MgcnVudGltZSBlcnJvcgorICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShFWFBFQ1RfVEhST1coeyAgLy8gTk9MSU5UCisgICAgYV8rKzsKKyAgICBUaHJv
d1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpOworICB9LCBib29sKSwgInRocm93cyAiIEVS
Uk9SX0RFU0MgIiB3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiIik7CisgIEVYUEVD
VF9FUSgzLCBhXyk7CisKICAgLy8gZmFpbGVkIEVYUEVDVF9USFJPVywgdGhyb3dzIG5vdGhpbmcK
ICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKGFfKyssIGJvb2wpLCAidGhy
b3dzIG5vdGhpbmciKTsKLSAgRVhQRUNUX0VRKDMsIGFfKTsKKyAgRVhQRUNUX0VRKDQsIGFfKTsK
IAogICAvLyBzdWNjZXNzZnVsIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9fVEhST1coYV8r
Kyk7Ci0gIEVYUEVDVF9FUSg0LCBhXyk7CisgIEVYUEVDVF9FUSg1LCBhXyk7CiAKICAgLy8gZmFp
bGVkIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTk9f
VEhST1coeyAgLy8gTk9MSU5UCiAgICAgYV8rKzsKICAgICBUaHJvd0FuSW50ZWdlcigpOwogICB9
KSwgIml0IHRocm93cyIpOwotICBFWFBFQ1RfRVEoNSwgYV8pOworICBFWFBFQ1RfRVEoNiwgYV8p
OwogCiAgIC8vIHN1Y2Nlc3NmdWwgRVhQRUNUX0FOWV9USFJPVwogICBFWFBFQ1RfQU5ZX1RIUk9X
KHsgIC8vIE5PTElOVAogICAgIGFfKys7CiAgICAgVGhyb3dBbkludGVnZXIoKTsKICAgfSk7Ci0g
IEVYUEVDVF9FUSg2LCBhXyk7CisgIEVYUEVDVF9FUSg3LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVY
UEVDVF9BTllfVEhST1cKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJP
VyhhXysrKSwgIml0IGRvZXNuJ3QiKTsKLSAgRVhQRUNUX0VRKDcsIGFfKTsKKyAgRVhQRUNUX0VR
KDgsIGFfKTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtMzQ4MSw3
ICszNTIzLDcgQEAgc3RkOjpzdHJpbmcgRWRpdHNUb1N0cmluZyhjb25zdCBzdGQ6OnZlY3RvcjxF
ZGl0VHlwZT4mIGVkaXRzKSB7CiBzdGQ6OnZlY3RvcjxzaXplX3Q+IENoYXJzVG9JbmRpY2VzKGNv
bnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKICAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBvdXQ7CiAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyLnNpemUoKTsgKytpKSB7Ci0gICAgb3V0LnB1c2hfYmFj
ayhzdHJbaV0pOworICAgIG91dC5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8c2l6ZV90PihzdHJbaV0p
KTsKICAgfQogICByZXR1cm4gb3V0OwogfQpAQCAtMzQ5NCw3ICszNTM2LDcgQEAgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+IENoYXJzVG9MaW5lcyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyKSB7CiAg
IHJldHVybiBvdXQ7CiB9CiAKLVRFU1QoRWRpdERpc3RhbmNlLCBUZXN0Q2FzZXMpIHsKK1RFU1Qo
RWRpdERpc3RhbmNlLCBUZXN0U3VpdGVzKSB7CiAgIHN0cnVjdCBDYXNlIHsKICAgICBpbnQgbGlu
ZTsKICAgICBjb25zdCBjaGFyKiBsZWZ0OwpAQCAtMzcxMywyMiArMzc1NSwxNSBAQCBURVNUKEFz
c2VydGlvblRlc3QsIEFTU0VSVF9FUSkgewogfQogCiAvLyBUZXN0cyBBU1NFUlRfRVEoTlVMTCwg
cG9pbnRlcikuCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTAogVEVTVChBc3NlcnRpb25UZXN0
LCBBU1NFUlRfRVFfTlVMTCkgewogICAvLyBBIHN1Y2Nlc3MuCi0gIGNvbnN0IGNoYXIqIHAgPSBO
VUxMOwotICAvLyBTb21lIG9sZGVyIEdDQyB2ZXJzaW9ucyBtYXkgaXNzdWUgYSBzcHVyaW91cyB3
YXJuaW5nIGluIHRoaXMgb3IgdGhlIG5leHQKLSAgLy8gYXNzZXJ0aW9uIHN0YXRlbWVudC4gVGhp
cyB3YXJuaW5nIHNob3VsZCBub3QgYmUgc3VwcHJlc3NlZCB3aXRoCi0gIC8vIHN0YXRpY19jYXN0
IHNpbmNlIHRoZSB0ZXN0IHZlcmlmaWVzIHRoZSBhYmlsaXR5IHRvIHVzZSBiYXJlIE5VTEwgYXMg
dGhlCi0gIC8vIGV4cGVjdGVkIHBhcmFtZXRlciB0byB0aGUgbWFjcm8uCi0gIEFTU0VSVF9FUShO
VUxMLCBwKTsKKyAgY29uc3QgY2hhciogcCA9IG51bGxwdHI7CisgIEFTU0VSVF9FUShudWxscHRy
LCBwKTsKIAogICAvLyBBIGZhaWx1cmUuCiAgIHN0YXRpYyBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKEFTU0VSVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9F
UShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdU
RVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgQVNTRVJUX0VRKDAsIG5vbl9wb2ludGVy
KS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2lu
dGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTM3OTgsNiArMzgz
MywxMiBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9USFJPVykgewogICAgICAgQVNTRVJU
X1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAgICAgIkV4cGVjdGVkOiBUaHJvd0Fu
SW50ZWdlcigpIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgogICAgICAgIiAg
QWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlwZS4iKTsKKyAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoCisgICAgICBBU1NFUlRfVEhST1coVGhyb3dSdW50aW1lRXJyb3IoIkEgZGVzY3JpcHRp
b24iKSwgc3RkOjpsb2dpY19lcnJvciksCisgICAgICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVy
cm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAidGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0
eXBlIHN0ZDo6bG9naWNfZXJyb3IuXG4gICIKKyAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVS
Uk9SX0RFU0MgIiAiCisgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRpb25cIi4i
KTsKICMgZW5kaWYKIAogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSgKQEAgLTM4MTIsNiArMzg1Mywx
MSBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9OT19USFJPVykgewogICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShBU1NFUlRfTk9fVEhST1coVGhyb3dBbkludGVnZXIoKSksCiAgICAgICAgICAg
ICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dBbkludGVnZXIoKSBkb2Vzbid0IHRocm93IGFu
IGV4Y2VwdGlvbi4iCiAgICAgICAgICAgICAgICAgICAgICAgICJcbiAgQWN0dWFsOiBpdCB0aHJv
d3MuIik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9OT19USFJPVyhUaHJvd1J1bnRp
bWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVj
dGVkOiBUaHJvd1J1bnRpbWVFcnJvcihcIkEgZGVzY3JpcHRpb25cIikgIgorICAgICAgICAgICAg
ICAgICAgICAgICAiZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4gICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIkFjdHVhbDogaXQgdGhyb3dzICIgRVJST1JfREVTQyAiICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgIndpdGggZGVzY3JpcHRpb24gXCJBIGRlc2NyaXB0aW9uXCIuIik7CiB9
CiAKIC8vIFRlc3RzIEFTU0VSVF9BTllfVEhST1cuCkBAIC0zOTE5LDExICszOTY1LDggQEAgVEVT
VChBc3NlcnRpb25UZXN0LCBOYW1lZEVudW0pIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
RVhQRUNUX0VRKGtFMSwga0UyKSwgIldoaWNoIGlzOiAxIik7CiB9CiAKLS8vIFRoZSB2ZXJzaW9u
IG9mIGdjYyB1c2VkIGluIFhDb2RlIDIuMiBoYXMgYSBidWcgYW5kIGRvZXNuJ3QgYWxsb3cKLS8v
IGFub255bW91cyBlbnVtcyBpbiBhc3NlcnRpb25zLiAgVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcg
dGVzdCBpcyBub3QKLS8vIGRvbmUgb24gTWFjLgotLy8gU3VuIFN0dWRpbyBhbmQgSFAgYUNDIGFs
c28gcmVqZWN0IHRoaXMgY29kZS4KLSNpZiAhR1RFU1RfT1NfTUFDICYmICFkZWZpbmVkKF9fU1VO
UFJPX0NDKSAmJiAhZGVmaW5lZChfX0hQX2FDQykKKy8vIFN1biBTdHVkaW8gYW5kIEhQIGFDQzJy
ZWplY3QgdGhpcyBjb2RlLgorI2lmICFkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAhZGVmaW5lZChf
X0hQX2FDQykKIAogLy8gVGVzdHMgdXNpbmcgYXNzZXJ0aW9ucyB3aXRoIGFub255bW91cyBlbnVt
cy4KIGVudW0gewpAQCAtNDA4NCwxMSArNDEyNywxMyBAQCBURVNUKEhSRVNVTFRBc3NlcnRpb25U
ZXN0LCBTdHJlYW1pbmcpIHsKIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCiAKLSNpZmRl
ZiBfX0JPUkxBTkRDX18KLS8vIFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5
cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUiCi0jIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2Mg
LXctcmNoCisvLyBUaGUgZm9sbG93aW5nIGNvZGUgaW50ZW50aW9uYWxseSB0ZXN0cyBhIHN1Ym9w
dGltYWwgc3ludGF4LgorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkYW5nbGluZy1lbHNlIgorI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VtcHR5LWJvZHkiCisjcHJhZ21hIEdDQyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XcHJhZ21hcyIKICNlbmRpZgotCiAvLyBUZXN0cyB0aGF0IHRo
ZSBhc3NlcnRpb24gbWFjcm9zIGJlaGF2ZSBsaWtlIHNpbmdsZSBzdGF0ZW1lbnRzLgogVEVTVChB
c3NlcnRpb25TeW50YXhUZXN0LCBCYXNpY0Fzc2VydGlvbnNCZWhhdmVzTGlrZVNpbmdsZVN0YXRl
bWVudCkgewogICBpZiAoQWx3YXlzRmFsc2UoKSkKQEAgLTQxMDgsNiArNDE1Myw5IEBAIFRFU1Qo
QXNzZXJ0aW9uU3ludGF4VGVzdCwgQmFzaWNBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0
ZW1lbnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9HVCgzLCAyKSA8PCAiIjsKIH0KKyNpZmRlZiBf
X0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogCiAjaWYgR1RFU1Rf
SEFTX0VYQ0VQVElPTlMKIC8vIFRlc3RzIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwgbm90IGNvbXBs
YWluIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgaW4gdGhlCkBAIC00MTI0LDYgKzQxNzIsMTcgQEAg
VEVTVChFeHBlY3RUaHJvd1Rlc3QsIERvZXNOb3RHZW5lcmF0ZVVucmVhY2hhYmxlQ29kZVdhcm5p
bmcpIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhuKyspLCAi
Iik7CiB9CiAKK1RFU1QoRXhwZWN0VGhyb3dUZXN0LCBEb2VzTm90R2VuZXJhdGVEdXBsaWNhdGVD
YXRjaENsYXVzZVdhcm5pbmcpIHsKKyAgRVhQRUNUX1RIUk9XKHRocm93IHN0ZDo6ZXhjZXB0aW9u
KCksIHN0ZDo6ZXhjZXB0aW9uKTsKK30KKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlv
bmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1i
b2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYK
IFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgRXhjZXB0aW9uQXNzZXJ0aW9uc0JlaGF2ZXNMaWtl
U2luZ2xlU3RhdGVtZW50KSB7CiAgIGlmIChBbHdheXNGYWxzZSgpKQogICAgIEVYUEVDVF9USFJP
VyhUaHJvd05vdGhpbmcoKSwgYm9vbCk7CkBAIC00MTQ5LDggKzQyMDgsMTkgQEAgVEVTVChBc3Nl
cnRpb25TeW50YXhUZXN0LCBFeGNlcHRpb25Bc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0
ZW1lbnQpIHsKICAgZWxzZQogICAgIDsgIC8vIE5PTElOVAogfQorI2lmZGVmIF9fR05VQ19fCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCisKICNlbmRpZiAgLy8gR1RFU1RfSEFT
X0VYQ0VQVElPTlMKIAorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMg
YSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxz
ZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1QoQXNzZXJ0
aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVT
dGF0ZW1lbnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCiAgICAgRVhQRUNUX05PX0ZBVEFMX0ZB
SUxVUkUoRkFJTCgpKSA8PCAiVGhpcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0ZWQuICIKQEAgLTQx
NzMsNiArNDI0Myw5IEBAIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVB
c3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIEFTU0VS
VF9OT19GQVRBTF9GQUlMVVJFKFNVQ0NFRUQoKSk7CiB9CisjaWZkZWYgX19HTlVDX18KKyNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogLy8gVGVzdHMgdGhhdCB0aGUgYXNzZXJ0
aW9uIG1hY3JvcyB3b3JrIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50cy4KIFRFU1QoQXNzZXJ0
aW9uU3ludGF4VGVzdCwgV29ya3NXaXRoU3dpdGNoKSB7CkBAIC00MzAyLDEwICs0Mzc1LDggQEAg
VEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFTU0VSVF9TVFIpIHsKIFRFU1QoQXNzZXJ0
aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfRkxPQVRJTkcpIHsKICAgQVNTRVJUX0ZMT0FUX0VR
KDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9ET1VCTEVfRVEoMSwg
MSkgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNT
RVJUX05FQVIoMSwxLjIsIDAuMSkgPDwgIkV4cGVjdCBmYWlsdXJlLiIsICAvLyBOT0xJTlQKKyAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05FQVIoMSwgMS4yLCAwLjEpIDw8ICJFeHBlY3Qg
ZmFpbHVyZS4iLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3QgZmFp
bHVyZS4iKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUg
aXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4g
dGhlIHByZXZpb3VzIHN0YXRlbWVudC4KIH0KIAogLy8gVGVzdHMgdXNpbmcgQVNTRVJUX0ZBTFNF
IHdpdGggYSBzdHJlYW1lZCBtZXNzYWdlLgpAQCAtNDMzMiwxMCArNDQwMywxMiBAQCBURVNUKEFz
c2VydGlvbldpdGhNZXNzYWdlVGVzdCwgU1VDQ0VFRCkgewogVEVTVChBc3NlcnRpb25XaXRoTWVz
c2FnZVRlc3QsIEFTU0VSVF9UUlVFKSB7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8ICJUaGlzIHNo
b3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9UUlVFKHRydWUpIDw8IHRydWU7Ci0gIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFTU0VSVF9UUlVFKGZhbHNlKSA8PCBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyICo+KE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgIDw8IHN0
YXRpY19jYXN0PGNoYXIgKj4oTlVMTCk7Ci0gIH0sICIobnVsbCkobnVsbCkiKTsKKyAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoCisgICAgICB7ICAvLyBOT0xJTlQKKyAgICAgICAgQVNTRVJUX1RSVUUo
ZmFsc2UpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpOworICAgICAgfSwK
KyAgICAgICIobnVsbCkobnVsbCkiKTsKIH0KIAogI2lmIEdURVNUX09TX1dJTkRPV1MKQEAgLTQ0
NDAsMjMgKzQ1MTMsMTYgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfRVFfRG91YmxlKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI1LjEiKTsKIH0KIAotI2lmIEdURVNUX0NBTl9DT01Q
QVJFX05VTEwKIC8vIFRlc3RzIEVYUEVDVF9FUShOVUxMLCBwb2ludGVyKS4KIFRFU1QoRXhwZWN0
VGVzdCwgRVhQRUNUX0VRX05VTEwpIHsKICAgLy8gQSBzdWNjZXNzLgotICBjb25zdCBjaGFyKiBw
ID0gTlVMTDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVyc2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlv
dXMgd2FybmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0gIC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQu
IFRoaXMgd2FybmluZyBzaG91bGQgbm90IGJlIHN1cHByZXNzZWQgd2l0aAotICAvLyBzdGF0aWNf
Y2FzdCBzaW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUgYWJpbGl0eSB0byB1c2UgYmFyZSBOVUxM
IGFzIHRoZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIgdG8gdGhlIG1hY3JvLgotICBFWFBFQ1Rf
RVEoTlVMTCwgcCk7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEobnVs
bHB0ciwgcCk7CiAKICAgLy8gQSBmYWlsdXJlLgogICBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9FUShOVUxMLCAmbiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9FUShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYg
IC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMgRVhQRUNUX0VRKDAsIG5vbl9w
b2ludGVyKS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVs
bCBwb2ludGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBtYWtlIHN1cmUKQEAgLTQ0ODIs
NyArNDU0OCw3IEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05FKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhY3R1YWw6ICdhJyAoOTcsIDB4NjEpIHZzICdhJyAoOTcsIDB4NjEpIik7
CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORSgyLCAyKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjIiKTsKLSAgY2hhciogY29uc3QgcDAgPSBOVUxMOworICBjaGFyKiBj
b25zdCBwMCA9IG51bGxwdHI7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9ORShw
MCwgcDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicDAiKTsKICAgLy8gT25seSB3YXkg
dG8gZ2V0IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CkBAIC00NTQxLDYg
KzQ2MDcsMTIgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBFQ1RfVEhST1cpIHsKICAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93QW5JbnRlZ2VyKCkgdGhyb3dz
IGFuIGV4Y2VwdGlvbiBvZiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIGJvb2wu
XG4gIEFjdHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50IHR5cGUuIik7CisgIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlv
biIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsb2dpY19l
cnJvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dSdW50aW1l
RXJyb3IoXCJBIGRlc2NyaXB0aW9uXCIpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRo
cm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBzdGQ6OmxvZ2ljX2Vycm9yLlxuICAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RFU0MgIiAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlv
blwiLiIpOwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKICAgICAgIEVYUEVDVF9USFJPVyhU
aHJvd05vdGhpbmcoKSwgYm9vbCksCiAgICAgICAiRXhwZWN0ZWQ6IFRocm93Tm90aGluZygpIHRo
cm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxuIgpAQCAtNDU1Myw2ICs0NjI1LDExIEBA
IFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05PX1RIUk9XKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKEVYUEVDVF9OT19USFJPVyhUaHJvd0FuSW50ZWdlcigpKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIGRvZXNuJ3QgdGhyb3cgYW4g
IgogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uLlxuICBBY3R1YWw6IGl0IHRo
cm93cy4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05PX1RIUk9XKFRocm93
UnVudGltZUVycm9yKCJBIGRlc2NyaXB0aW9uIikpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5cbiAgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsOiBpdCB0aHJvd3MgIiBFUlJPUl9ERVND
ICIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVz
Y3JpcHRpb25cIi4iKTsKIH0KIAogLy8gVGVzdHMgRVhQRUNUX0FOWV9USFJPVy4KQEAgLTQ1OTAs
NyArNDY2Nyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgUG9pbnRlcikgewogCiAv
LyBUZXN0cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgbm9uLWNoYXIgcG9p
bnRlci4KIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgTnVsbFBvaW50ZXIpIHsKLSAgaW50
KiBwID0gTlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCki
LCBTdHJlYW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2MDEsNyArNDY3OCw3
IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwgQ1N0cmluZykgewogCiAvLyBUZXN0cyB1
c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5VTEwgQyBzdHJpbmcuCiBURVNUKFN0cmVh
bWFibGVUb1N0cmluZ1Rlc3QsIE51bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAgPSBOVUxMOworICBj
aGFyKiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLCBTdHJlYW1hYmxlVG9T
dHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2NDYsOCArNDcyMyw3IEBAIFRFU1QoU3RyZWFt
YWJsZVRlc3QsIGludCkgewogLy8gaW1wbGVtZW50ZWQgYSB3b3JrYXJvdW5kIChzdWJzdGl0dXRp
bmcgIihudWxsKSIgZm9yIE5VTEwpLiAgVGhpcwogLy8gdGVzdHMgd2hldGhlciB0aGUgd29ya2Fy
b3VuZCB3b3Jrcy4KIFRFU1QoU3RyZWFtYWJsZVRlc3QsIE51bGxDaGFyUHRyKSB7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEZBSUwoKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oTlVMTCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICIobnVsbCkiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxV
UkUoRkFJTCgpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgIihudWxsKSIp
OwogfQogCiAvLyBUZXN0cyB0aGF0IGJhc2ljIElPIG1hbmlwdWxhdG9ycyAoZW5kbCwgZW5kcywg
YW5kIGZsdXNoKSBjYW4gYmUKQEAgLTQ2OTgsNiArNDc3NCwxOSBAQCBURVNUKE1hY3JvVGVzdCwg
RkFJTCkgewogICAgICAgICAgICAgICAgICAgICAgICAiSW50ZW50aW9uYWwgZmFpbHVyZS4iKTsK
IH0KIAorLy8gVGVzdHMgR1RFU1RfRkFJTF9BVC4KK1RFU1QoTWFjcm9UZXN0LCBHVEVTVF9GQUlM
X0FUKSB7CisgIC8vIFZlcmlmaWVzIHRoYXQgR1RFU1RfRkFJTF9BVCBkb2VzIGdlbmVyYXRlIGEg
ZmF0YWwgZmFpbHVyZSBhbmQKKyAgLy8gdGhlIGZhaWx1cmUgbWVzc2FnZSBjb250YWlucyB0aGUg
dXNlci1zdHJlYW1lZCBwYXJ0LgorICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShHVEVTVF9GQUlMX0FU
KCJmb28uY2MiLCA0MikgPDwgIldyb25nISIsICJXcm9uZyEiKTsKKworICAvLyBWZXJpZmllcyB0
aGF0IHRoZSB1c2VyLXN0cmVhbWVkIHBhcnQgaXMgb3B0aW9uYWwuCisgIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEdURVNUX0ZBSUxfQVQoImZvby5jYyIsIDQyKSwgIkZhaWxlZCIpOworCisgIC8vIFNl
ZSB0aGUgQUREX0ZBSUxfQVQgdGVzdCBhYm92ZSB0byBzZWUgaG93IHdlIHRlc3QgdGhhdCB0aGUg
ZmFpbHVyZSBtZXNzYWdlCisgIC8vIGNvbnRhaW5zIHRoZSByaWdodCBmaWxlbmFtZSBhbmQgbGlu
ZSBudW1iZXIgLS0gdGhlIHNhbWUgYXBwbGllcyBoZXJlLgorfQorCiAvLyBUZXN0cyBTVUNDRUVE
CiBURVNUKE1hY3JvVGVzdCwgU1VDQ0VFRCkgewogICBTVUNDRUVEKCk7CkBAIC00ODMyLDc1ICs0
OTIxLDkgQEAgVEVTVChFcUFzc2VydGlvblRlc3QsIFN0ZFdpZGVTdHJpbmcpIHsKIAogI2VuZGlm
ICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5H
Ci0vLyBUZXN0cyB1c2luZyA6OnN0cmluZyB2YWx1ZXMgaW4ge0VYUEVDVHxBU1NFUlR9X0VRLgot
VEVTVChFcUFzc2VydGlvblRlc3QsIEdsb2JhbFN0cmluZykgewotICAvLyBDb21wYXJlcyBhIGNv
bnN0IGNoYXIqIHRvIGEgOjpzdHJpbmcgdGhhdCBoYXMgaWRlbnRpY2FsIGNvbnRlbnQuCi0gIEVY
UEVDVF9FUSgiVGVzdCIsIDo6c3RyaW5nKCJUZXN0IikpOwotCi0gIC8vIENvbXBhcmVzIHR3byBp
ZGVudGljYWwgOjpzdHJpbmdzLgotICBjb25zdCA6OnN0cmluZyBzdHIxKCJBICogaW4gdGhlIG1p
ZGRsZSIpOwotICBjb25zdCA6OnN0cmluZyBzdHIyKHN0cjEpOwotICBBU1NFUlRfRVEoc3RyMSwg
c3RyMik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmluZyB0byBhIGNvbnN0IGNoYXIqIHRoYXQg
aGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
RVEoOjpzdHJpbmcoIlRlc3QiKSwgInRlc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
InRlc3QiKTsKLQotICAvLyBDb21wYXJlcyB0d28gOjpzdHJpbmdzIHRoYXQgaGF2ZSBkaWZmZXJl
bnQgY29udGVudHMsIG9uZSBvZiB3aGljaAotICAvLyBoYXZpbmcgYSBOVUwgY2hhcmFjdGVyIGlu
IHRoZSBtaWRkbGUuCi0gIDo6c3RyaW5nIHN0cjMoc3RyMSk7Ci0gIHN0cjMuYXQoMikgPSAnXDAn
OwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoc3RyMSwgc3RyMyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdHIzIik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmlu
ZyB0byBhIGNoYXIqIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1RfRkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfRVEoOjpzdHJpbmcoImJhciIpLCBjb25z
dF9jYXN0PGNoYXIqPigiZm9vIikpOwotICB9LCAiIik7Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1Rf
SEFTX0dMT0JBTF9TVFJJTkcKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotCi0vLyBU
ZXN0cyB1c2luZyA6OndzdHJpbmcgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1Qo
RXFBc3NlcnRpb25UZXN0LCBHbG9iYWxXaWRlU3RyaW5nKSB7Ci0gIC8vIENvbXBhcmVzIHR3byBp
ZGVudGljYWwgOjp3c3RyaW5ncy4KLSAgc3RhdGljIGNvbnN0IDo6d3N0cmluZyB3c3RyMShMIkEg
KiBpbiB0aGUgbWlkZGxlIik7Ci0gIHN0YXRpYyBjb25zdCA6OndzdHJpbmcgd3N0cjIod3N0cjEp
OwotICBFWFBFQ1RfRVEod3N0cjEsIHdzdHIyKTsKLQotICAvLyBDb21wYXJlcyBhIGNvbnN0IHdj
aGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGlkZW50aWNhbCBjb250ZW50LgotICBjb25z
dCB3Y2hhcl90IGtUZXN0WDgxMTlbXSA9IHsgJ1QnLCAnZScsICdzJywgJ3QnLCAweDgxMTksICdc
MCcgfTsKLSAgQVNTRVJUX0VRKGtUZXN0WDgxMTksIDo6d3N0cmluZyhrVGVzdFg4MTE5KSk7Ci0K
LSAgLy8gQ29tcGFyZXMgYSBjb25zdCB3Y2hhcl90KiB0byBhIDo6d3N0cmluZyB0aGF0IGhhcyBk
aWZmZXJlbnQKLSAgLy8gY29udGVudC4KLSAgY29uc3Qgd2NoYXJfdCBrVGVzdFg4MTIwW10gPSB7
ICdUJywgJ2UnLCAncycsICd0JywgMHg4MTIwLCAnXDAnIH07Ci0gIEVYUEVDVF9OT05GQVRBTF9G
QUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9FUShrVGVzdFg4MTIwLCA6OndzdHJpbmco
a1Rlc3RYODExOSkpOwotICB9LCAiVGVzdFxceDgxMTkiKTsKLQotICAvLyBDb21wYXJlcyBhIHdj
aGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICB3Y2hh
cl90KiBjb25zdCBwMSA9IGNvbnN0X2Nhc3Q8d2NoYXJfdCo+KEwiZm9vIik7Ci0gIEVYUEVDVF9O
T05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShwMSwgOjp3c3RyaW5nKEwiYmFyIikpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYmFyIik7Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIDo6d3N0cmlu
Z3MgdGhhdCBoYXZlIGRpZmZlcmVudCBjb250ZW50cywgb25lIG9mIHdoaWNoCi0gIC8vIGhhdmlu
ZyBhIE5VTCBjaGFyYWN0ZXIgaW4gdGhlIG1pZGRsZS4KLSAgc3RhdGljIDo6d3N0cmluZyB3c3Ry
MzsKLSAgd3N0cjMgPSB3c3RyMTsKLSAgd3N0cjMuYXQoMikgPSBMJ1wwJzsKLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoQVNTRVJUX0VRKHdzdHIxLCB3c3RyMyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICJ3c3RyMyIpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwot
CiAvLyBUZXN0cyB1c2luZyBjaGFyIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRF
U1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewotICBjaGFyKiBjb25zdCBwMCA9IE5V
TEw7CisgIGNoYXIqIGNvbnN0IHAwID0gbnVsbHB0cjsKICAgLy8gT25seSB3YXkgdG8gZ2V0IHRo
ZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBjYXN0CiAgIC8vIGlzIHRvIGhhdmUgYSBz
ZXBhcmF0ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0dGluZwogICAvLyB0aGUgdHdvIGNhc3Rz
IG9uIHRoZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBuZWl0aGVyIGRvZXMKQEAgLTQ5MjIsNyAr
NDk0NSw3IEBAIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikgewogCiAvLyBUZXN0
cyB1c2luZyB3Y2hhcl90IHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFB
c3NlcnRpb25UZXN0LCBXaWRlQ2hhclBvaW50ZXIpIHsKLSAgd2NoYXJfdCogY29uc3QgcDAgPSBO
VUxMOworICB3Y2hhcl90KiBjb25zdCBwMCA9IG51bGxwdHI7CiAgIC8vIE9ubHkgd2F5IHRvIGdl
dCB0aGUgTm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0aGUgY2FzdAogICAvLyBpcyB0byBoYXZl
IGEgc2VwYXJhdGUgdm9pZCogdmFyaWFibGUgZmlyc3QuIFB1dHRpbmcKICAgLy8gdGhlIHR3byBj
YXN0cyBvbiB0aGUgc2FtZSBsaW5lIGRvZXNuJ3Qgd29yaywgbmVpdGhlciBkb2VzCkBAIC00OTQ3
LDkgKzQ5NzAsOCBAQCBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgV2lkZUNoYXJQb2ludGVyKSB7CiAK
IC8vIFRlc3RzIHVzaW5nIG90aGVyIHR5cGVzIG9mIHBvaW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJU
fV9FUS4KIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBPdGhlclBvaW50ZXIpIHsKLSAgQVNTRVJUX0VR
KHN0YXRpY19jYXN0PGNvbnN0IGludCo+KE5VTEwpLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
Y29uc3QgaW50Kj4oTlVMTCkpOwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3Rh
dGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCksCisgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxjb25z
dCBpbnQqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVsbHB0cikpOworICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVs
bHB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0
PGNvbnN0IGludCo+KDB4MTIzNCkpLAogICAgICAgICAgICAgICAgICAgICAgICAiMHgxMjM0Iik7
CiB9CkBAIC01MDY1LDcgKzUwODcsNyBAQCBjbGFzcyBUZXN0TGlmZUN5Y2xlVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKIAogICAvLyBEZXN0cnVjdG9yLiAgRGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRl
c3Qgb2JqZWN0cyB0aGF0IHVzZXMgdGhpcwogICAvLyBmaXh0dXJlLgotICB+VGVzdExpZmVDeWNs
ZVRlc3QoKSB7IGNvdW50Xy0tOyB9CisgIH5UZXN0TGlmZUN5Y2xlVGVzdCgpIG92ZXJyaWRlIHsg
Y291bnRfLS07IH0KIAogICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGl2ZSB0ZXN0IG9iamVj
dHMgdGhhdCB1c2VzIHRoaXMgZml4dHVyZS4KICAgaW50IGNvdW50KCkgY29uc3QgeyByZXR1cm4g
Y291bnRfOyB9CkBAIC01MTU2LDggKzUxNzgsNyBAQCBURVNUKEFzc2VydGlvblJlc3VsdFRlc3Qs
IENhblN0cmVhbU9zdHJlYW1NYW5pcHVsYXRvcnMpIHsKICAgRVhQRUNUX1NUUkVRKCJEYXRhXG5c
XDBXaWxsIGJlIHZpc2libGUiLCByLm1lc3NhZ2UoKSk7CiB9CiAKLS8vIFRoZSBuZXh0IHRlc3Qg
dXNlcyBleHBsaWNpdCBjb252ZXJzaW9uIG9wZXJhdG9ycyAtLSBhIEMrKzExIGZlYXR1cmUuCi0j
aWYgR1RFU1RfTEFOR19DWFgxMQorLy8gVGhlIG5leHQgdGVzdCB1c2VzIGV4cGxpY2l0IGNvbnZl
cnNpb24gb3BlcmF0b3JzCiAKIFRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVzdCwgQ29uc3RydWN0aWJs
ZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewogICBzdHJ1Y3QgRXhwbGljaXRs
eUNvbnZlcnRpYmxlVG9Cb29sIHsKQEAgLTUxNzAsOCArNTE5MSw2IEBAIFRFU1QoQXNzZXJ0aW9u
UmVzdWx0VGVzdCwgQ29uc3RydWN0aWJsZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9v
bCkgewogICBFWFBFQ1RfVFJVRSh2Mik7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgx
MQotCiBzdHJ1Y3QgQ29udmVydGlibGVUb0Fzc2VydGlvblJlc3VsdCB7CiAgIG9wZXJhdG9yIEFz
c2VydGlvblJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIEFzc2VydGlvblJlc3VsdCh0cnVlKTsgfQog
fTsKQEAgLTUyODUsMTIgKzUzMDQsMTIgQEAgVEVTVChNZXNzYWdlVGVzdCwgQ2FuU3RyZWFtVXNl
clR5cGVJblVzZXJOYW1lU3BhY2VXaXRoU3RyZWFtT3BlcmF0b3JJbkdsb2JhbCkgewogLy8gVGVz
dHMgc3RyZWFtaW5nIE5VTEwgcG9pbnRlcnMgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1QoTWVz
c2FnZVRlc3QsIE51bGxQb2ludGVycykgewogICBNZXNzYWdlIG1zZzsKLSAgY2hhciogY29uc3Qg
cDEgPSBOVUxMOwotICB1bnNpZ25lZCBjaGFyKiBjb25zdCBwMiA9IE5VTEw7Ci0gIGludCogcDMg
PSBOVUxMOwotICBkb3VibGUqIHA0ID0gTlVMTDsKLSAgYm9vbCogcDUgPSBOVUxMOwotICBNZXNz
YWdlKiBwNiA9IE5VTEw7CisgIGNoYXIqIGNvbnN0IHAxID0gbnVsbHB0cjsKKyAgdW5zaWduZWQg
Y2hhciogY29uc3QgcDIgPSBudWxscHRyOworICBpbnQqIHAzID0gbnVsbHB0cjsKKyAgZG91Ymxl
KiBwNCA9IG51bGxwdHI7CisgIGJvb2wqIHA1ID0gbnVsbHB0cjsKKyAgTWVzc2FnZSogcDYgPSBu
dWxscHRyOwogCiAgIG1zZyA8PCBwMSA8PCBwMiA8PCBwMyA8PCBwNCA8PCBwNSA8PCBwNjsKICAg
QVNTRVJUX1NUUkVRKCIobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkobnVsbCkiLApAQCAt
NTMwMCwxMiArNTMxOSwxMiBAQCBURVNUKE1lc3NhZ2VUZXN0LCBOdWxsUG9pbnRlcnMpIHsKIC8v
IFRlc3RzIHN0cmVhbWluZyB3aWRlIHN0cmluZ3MgdG8gdGVzdGluZzo6TWVzc2FnZS4KIFRFU1Qo
TWVzc2FnZVRlc3QsIFdpZGVTdHJpbmdzKSB7CiAgIC8vIFN0cmVhbXMgYSBOVUxMIG9mIHR5cGUg
Y29uc3Qgd2NoYXJfdCouCi0gIGNvbnN0IHdjaGFyX3QqIGNvbnN0X3dzdHIgPSBOVUxMOworICBj
b25zdCB3Y2hhcl90KiBjb25zdF93c3RyID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVRKCIobnVs
bCkiLAogICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8PCBjb25zdF93c3RyKS5HZXRTdHJpbmco
KS5jX3N0cigpKTsKIAogICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0eXBlIHdjaGFyX3QqLgotICB3
Y2hhcl90KiB3c3RyID0gTlVMTDsKKyAgd2NoYXJfdCogd3N0ciA9IG51bGxwdHI7CiAgIEVYUEVD
VF9TVFJFUSgiKG51bGwpIiwKICAgICAgICAgICAgICAgIChNZXNzYWdlKCkgPDwgd3N0cikuR2V0
U3RyaW5nKCkuY19zdHIoKSk7CiAKQEAgLTUzMjksMTUgKzUzNDgsMTUgQEAgbmFtZXNwYWNlIHRl
c3RpbmcgewogY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
ICAgc3RhdGljIGNvbnN0IFRlc3RJbmZvKiBHZXRUZXN0SW5mbyhjb25zdCBjaGFyKiB0ZXN0X25h
bWUpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9jYXNlID0gR2V0VW5pdFRlc3RJ
bXBsKCktPgotICAgICAgICBHZXRUZXN0Q2FzZSgiVGVzdEluZm9UZXN0IiwgIiIsIE5VTEwsIE5V
TEwpOworICAgIGNvbnN0IFRlc3RTdWl0ZSogY29uc3QgdGVzdF9zdWl0ZSA9CisgICAgICAgIEdl
dFVuaXRUZXN0SW1wbCgpLT5HZXRUZXN0U3VpdGUoIlRlc3RJbmZvVGVzdCIsICIiLCBudWxscHRy
LCBudWxscHRyKTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9jYXNlLT50b3RhbF90
ZXN0X2NvdW50KCk7ICsraSkgewotICAgICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5m
byA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0
ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgeworICAgICAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKGkpOwogICAgICAg
aWYgKHN0cmNtcCh0ZXN0X25hbWUsIHRlc3RfaW5mby0+bmFtZSgpKSA9PSAwKQogICAgICAgICBy
ZXR1cm4gdGVzdF9pbmZvOwogICAgIH0KLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gbnVs
bHB0cjsKICAgfQogCiAgIHN0YXRpYyBjb25zdCBUZXN0UmVzdWx0KiBHZXRUZXN0UmVzdWx0KApA
QCAtNTM1MCw3ICs1MzY5LDcgQEAgY2xhc3MgVGVzdEluZm9UZXN0IDogcHVibGljIFRlc3Qgewog
VEVTVF9GKFRlc3RJbmZvVGVzdCwgTmFtZXMpIHsKICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRl
c3RfaW5mbyA9IEdldFRlc3RJbmZvKCJOYW1lcyIpOwogCi0gIEFTU0VSVF9TVFJFUSgiVGVzdElu
Zm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgQVNTRVJUX1NUUkVRKCJU
ZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgQVNTRVJUX1NU
UkVRKCJOYW1lcyIsIHRlc3RfaW5mby0+bmFtZSgpKTsKIH0KIApAQCAtNTM5MCwxMyArNTQwOSwx
MyBAQCBURVNUX1AoQ29kZUxvY2F0aW9uRm9yVEVTVFAsIFZlcmlmeSkgewogICBWRVJJRllfQ09E
RV9MT0NBVElPTjsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoLCBDb2RlTG9jYXRpb25G
b3JURVNUUCwgVmFsdWVzKDApKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIENvZGVMb2Nh
dGlvbkZvclRFU1RQLCBWYWx1ZXMoMCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNz
IENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RF
U1RfQ0FTRShDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIGludCk7CitUWVBFRF9URVNUX1NVSVRF
KENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCwgaW50KTsKIAogVFlQRURfVEVTVChDb2RlTG9jYXRp
b25Gb3JUWVBFRFRFU1QsIFZlcmlmeSkgewogICBWRVJJRllfQ09ERV9MT0NBVElPTjsKQEAgLTU0
MDYsMjAgKzU0MjUsMjEgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb2RlTG9jYXRp
b25Gb3JUWVBFRFRFU1RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1Ao
Q29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0
aW9uRm9yVFlQRURURVNUUCk7CiAKIFRZUEVEX1RFU1RfUChDb2RlTG9jYXRpb25Gb3JUWVBFRFRF
U1RQLCBWZXJpZnkpIHsKICAgVkVSSUZZX0NPREVfTE9DQVRJT047CiB9CiAKLVJFR0lTVEVSX1RZ
UEVEX1RFU1RfQ0FTRV9QKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIFZlcmlmeSk7CitSRUdJ
U1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCwgVmVyaWZ5
KTsKIAotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIENvZGVMb2NhdGlvbkZvclRZ
UEVEVEVTVFAsIGludCk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENvZGVM
b2NhdGlvbkZvclRZUEVEVEVTVFAsIGludCk7CiAKICN1bmRlZiBWRVJJRllfQ09ERV9MT0NBVElP
TgogCiAvLyBUZXN0cyBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYSB0ZXN0IGNhc2UuCi0K
Ky8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVm
IEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogY2xhc3MgU2V0VXBUZXN0Q2FzZVRl
c3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgogICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVk
IG9uY2UgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlCkBAIC01NDUxLDEx
ICs1NDcxLDExIEBAIGNsYXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogICAg
IEVYUEVDVF9FUSgwLCBjb3VudGVyXyk7CiAKICAgICAvLyBDbGVhbnMgdXAgdGhlIHNoYXJlZCBy
ZXNvdXJjZS4KLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKKyAgICBzaGFyZWRfcmVzb3Vy
Y2VfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVh
Y2ggdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2
b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIFNldFVwVGVzdENhc2UoKSBzaG91bGQgYmUg
Y2FsbGVkIG9ubHkgb25jZSwgc28gY291bnRlcl8gc2hvdWxkCiAgICAgLy8gYWx3YXlzIGJlIDEu
CiAgICAgRVhQRUNUX0VRKDEsIGNvdW50ZXJfKTsKQEAgLTU0NjksMzggKzU0ODksMTAxIEBAIGNs
YXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgewogfTsKIAogaW50IFNldFVwVGVz
dENhc2VUZXN0Ojpjb3VudGVyXyA9IDA7Ci1jb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6
c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6
c2hhcmVkX3Jlc291cmNlXyA9IG51bGxwdHI7CiAKIC8vIEEgdGVzdCB0aGF0IHVzZXMgdGhlIHNo
YXJlZCByZXNvdXJjZS4KLVRFU1RfRihTZXRVcFRlc3RDYXNlVGVzdCwgVGVzdDEpIHsKLSAgRVhQ
RUNUX1NUUk5FKE5VTEwsIHNoYXJlZF9yZXNvdXJjZV8pOwotfQorVEVTVF9GKFNldFVwVGVzdENh
c2VUZXN0LCBUZXN0MSkgeyBFWFBFQ1RfU1RSTkUobnVsbHB0ciwgc2hhcmVkX3Jlc291cmNlXyk7
IH0KIAogLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgogVEVT
VF9GKFNldFVwVGVzdENhc2VUZXN0LCBUZXN0MikgewogICBFWFBFQ1RfU1RSRVEoIjEyMyIsIHNo
YXJlZF9yZXNvdXJjZV8pOwogfQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCiAKKy8vIFRlc3RzIFNldHVwVGVzdFN1aXRlL1RlYXJEb3duIFRlc3RTdWl0ZQor
Y2xhc3MgU2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3QgeworIHByb3RlY3RlZDoKKyAg
Ly8gVGhpcyB3aWxsIGJlIGNhbGxlZCBvbmNlIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlz
IHRlc3QgY2FzZQorICAvLyBpcyBydW4uCisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkg
eworICAgIHByaW50ZigiU2V0dGluZyB1cCB0aGUgdGVzdCBzdWl0ZSAuIC4gLlxuIik7CisKKyAg
ICAvLyBJbml0aWFsaXplcyBzb21lIHNoYXJlZCByZXNvdXJjZS4gIEluIHRoaXMgc2ltcGxlIGV4
YW1wbGUsIHdlCisgICAgLy8ganVzdCBjcmVhdGUgYSBDIHN0cmluZy4gIE1vcmUgY29tcGxleCBz
dHVmZiBjYW4gYmUgZG9uZSBpZgorICAgIC8vIGRlc2lyZWQuCisgICAgc2hhcmVkX3Jlc291cmNl
XyA9ICIxMjMiOworCisgICAgLy8gSW5jcmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMg
dGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICAgIGNvdW50ZXJfKys7CisKKyAgICAvLyBTZXRVcFRl
c3RTdWl0ZSgpIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLgorICAgIEVYUEVDVF9FUSgxLCBj
b3VudGVyXyk7CisgIH0KKworICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhl
IGxhc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcworICAvLyBydW4uCisgIHN0YXRpYyB2b2lk
IFRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIHByaW50ZigiVGVhcmluZyBkb3duIHRoZSB0ZXN0
IHN1aXRlIC4gLiAuXG4iKTsKKworICAgIC8vIERlY3JlbWVudHMgdGhlIG51bWJlciBvZiB0ZXN0
IHN1aXRlcyB0aGF0IGhhdmUgYmVlbiBzZXQgdXAuCisgICAgY291bnRlcl8tLTsKKworICAgIC8v
IFRlYXJEb3duVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgRVhQ
RUNUX0VRKDAsIGNvdW50ZXJfKTsKKworICAgIC8vIENsZWFucyB1cCB0aGUgc2hhcmVkIHJlc291
cmNlLgorICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworICB9CisKKyAgLy8gVGhpcyB3
aWxsIGJlIGNhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlLgorICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIFNldFVwVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNh
bGxlZCBvbmx5IG9uY2UsIHNvIGNvdW50ZXJfIHNob3VsZAorICAgIC8vIGFsd2F5cyBiZSAxLgor
ICAgIEVYUEVDVF9FUSgxLCBjb3VudGVyXyk7CisgIH0KKworICAvLyBOdW1iZXIgb2YgdGVzdCBz
dWl0ZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICBzdGF0aWMgaW50IGNvdW50ZXJfOworCisg
IC8vIFNvbWUgcmVzb3VyY2UgdG8gYmUgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3Qg
Y2FzZS4KKyAgc3RhdGljIGNvbnN0IGNoYXIqIHNoYXJlZF9yZXNvdXJjZV87Cit9OworCitpbnQg
U2V0VXBUZXN0U3VpdGVUZXN0Ojpjb3VudGVyXyA9IDA7Citjb25zdCBjaGFyKiBTZXRVcFRlc3RT
dWl0ZVRlc3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOworCisvLyBBIHRlc3QgdGhhdCB1
c2VzIHRoZSBzaGFyZWQgcmVzb3VyY2UuCitURVNUX0YoU2V0VXBUZXN0U3VpdGVUZXN0LCBUZXN0
U2V0dXBUZXN0U3VpdGUxKSB7CisgIEVYUEVDVF9TVFJORShudWxscHRyLCBzaGFyZWRfcmVzb3Vy
Y2VfKTsKK30KKworLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNl
LgorVEVTVF9GKFNldFVwVGVzdFN1aXRlVGVzdCwgVGVzdFNldHVwVGVzdFN1aXRlMikgeworICBF
WFBFQ1RfU1RSRVEoIjEyMyIsIHNoYXJlZF9yZXNvdXJjZV8pOworfQogCiAvLyBUaGUgUGFyc2VG
bGFnc1Rlc3QgdGVzdCBjYXNlIHRlc3RzIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seS4KIAogLy8g
VGhlIEZsYWdzIHN0cnVjdCBzdG9yZXMgYSBjb3B5IG9mIGFsbCBHb29nbGUgVGVzdCBmbGFncy4K
IHN0cnVjdCBGbGFncyB7CiAgIC8vIENvbnN0cnVjdHMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgZWFj
aCBmbGFnIGhhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KLSAgRmxhZ3MoKSA6IGFsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIGJyZWFrX29uX2ZhaWx1cmUoZmFsc2UpLAot
ICAgICAgICAgICAgY2F0Y2hfZXhjZXB0aW9ucyhmYWxzZSksCi0gICAgICAgICAgICBkZWF0aF90
ZXN0X3VzZV9mb3JrKGZhbHNlKSwKLSAgICAgICAgICAgIGZpbHRlcigiIiksCi0gICAgICAgICAg
ICBsaXN0X3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIG91dHB1dCgiIiksCi0gICAgICAgICAg
ICBwcmludF90aW1lKHRydWUpLAotICAgICAgICAgICAgcmFuZG9tX3NlZWQoMCksCi0gICAgICAg
ICAgICByZXBlYXQoMSksCi0gICAgICAgICAgICBzaHVmZmxlKGZhbHNlKSwKLSAgICAgICAgICAg
IHN0YWNrX3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAotICAgICAgICAgICAgc3Ry
ZWFtX3Jlc3VsdF90bygiIiksCi0gICAgICAgICAgICB0aHJvd19vbl9mYWlsdXJlKGZhbHNlKSB7
fQorICBGbGFncygpCisgICAgICA6IGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKGZhbHNlKSwKKyAg
ICAgICAgYnJlYWtfb25fZmFpbHVyZShmYWxzZSksCisgICAgICAgIGNhdGNoX2V4Y2VwdGlvbnMo
ZmFsc2UpLAorICAgICAgICBkZWF0aF90ZXN0X3VzZV9mb3JrKGZhbHNlKSwKKyAgICAgICAgZmFp
bF9mYXN0KGZhbHNlKSwKKyAgICAgICAgZmlsdGVyKCIiKSwKKyAgICAgICAgbGlzdF90ZXN0cyhm
YWxzZSksCisgICAgICAgIG91dHB1dCgiIiksCisgICAgICAgIGJyaWVmKGZhbHNlKSwKKyAgICAg
ICAgcHJpbnRfdGltZSh0cnVlKSwKKyAgICAgICAgcmFuZG9tX3NlZWQoMCksCisgICAgICAgIHJl
cGVhdCgxKSwKKyAgICAgICAgc2h1ZmZsZShmYWxzZSksCisgICAgICAgIHN0YWNrX3RyYWNlX2Rl
cHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAorICAgICAgICBzdHJlYW1fcmVzdWx0X3RvKCIiKSwK
KyAgICAgICAgdGhyb3dfb25fZmFpbHVyZShmYWxzZSkge30KIAogICAvLyBGYWN0b3J5IG1ldGhv
ZHMuCiAKQEAgLTU1MzYsNiArNTYxOSwxNCBAQCBzdHJ1Y3QgRmxhZ3MgewogICAgIHJldHVybiBm
bGFnczsKICAgfQogCisgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0
X2ZhaWxfZmFzdCBmbGFnIGhhcworICAvLyB0aGUgZ2l2ZW4gdmFsdWUuCisgIHN0YXRpYyBGbGFn
cyBGYWlsRmFzdChib29sIGZhaWxfZmFzdCkgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdz
LmZhaWxfZmFzdCA9IGZhaWxfZmFzdDsKKyAgICByZXR1cm4gZmxhZ3M7CisgIH0KKwogICAvLyBD
cmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9maWx0ZXIgZmxhZyBoYXMgdGhl
IGdpdmVuCiAgIC8vIHZhbHVlLgogICBzdGF0aWMgRmxhZ3MgRmlsdGVyKGNvbnN0IGNoYXIqIGZp
bHRlcikgewpAQCAtNTU2MCw2ICs1NjUxLDE0IEBAIHN0cnVjdCBGbGFncyB7CiAgICAgcmV0dXJu
IGZsYWdzOwogICB9CiAKKyAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rl
c3RfYnJpZWYgZmxhZyBoYXMgdGhlIGdpdmVuCisgIC8vIHZhbHVlLgorICBzdGF0aWMgRmxhZ3Mg
QnJpZWYoYm9vbCBicmllZikgeworICAgIEZsYWdzIGZsYWdzOworICAgIGZsYWdzLmJyaWVmID0g
YnJpZWY7CisgICAgcmV0dXJuIGZsYWdzOworICB9CisKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0
cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIGhhcyB0aGUgZ2l2ZW4KICAgLy8g
dmFsdWUuCiAgIHN0YXRpYyBGbGFncyBQcmludFRpbWUoYm9vbCBwcmludF90aW1lKSB7CkBAIC01
NTcwLDcgKzU2NjksNyBAQCBzdHJ1Y3QgRmxhZ3MgewogCiAgIC8vIENyZWF0ZXMgYSBGbGFncyBz
dHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcgaGFzIHRoZSBnaXZlbgogICAv
LyB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoSW50MzIgcmFuZG9tX3NlZWQpIHsK
KyAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoaW50MzJfdCByYW5kb21fc2VlZCkgewogICAgIEZs
YWdzIGZsYWdzOwogICAgIGZsYWdzLnJhbmRvbV9zZWVkID0gcmFuZG9tX3NlZWQ7CiAgICAgcmV0
dXJuIGZsYWdzOwpAQCAtNTU3OCw3ICs1Njc3LDcgQEAgc3RydWN0IEZsYWdzIHsKIAogICAvLyBD
cmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9yZXBlYXQgZmxhZyBoYXMgdGhl
IGdpdmVuCiAgIC8vIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgUmVwZWF0KEludDMyIHJlcGVhdCkg
eworICBzdGF0aWMgRmxhZ3MgUmVwZWF0KGludDMyX3QgcmVwZWF0KSB7CiAgICAgRmxhZ3MgZmxh
Z3M7CiAgICAgZmxhZ3MucmVwZWF0ID0gcmVwZWF0OwogICAgIHJldHVybiBmbGFnczsKQEAgLTU1
OTQsNyArNTY5Myw3IEBAIHN0cnVjdCBGbGFncyB7CiAKICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0
cnVjdCB3aGVyZSB0aGUgR1RFU1RfRkxBRyhzdGFja190cmFjZV9kZXB0aCkgZmxhZyBoYXMKICAg
Ly8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxhZ3MgU3RhY2tUcmFjZURlcHRoKEludDMy
IHN0YWNrX3RyYWNlX2RlcHRoKSB7CisgIHN0YXRpYyBGbGFncyBTdGFja1RyYWNlRGVwdGgoaW50
MzJfdCBzdGFja190cmFjZV9kZXB0aCkgewogICAgIEZsYWdzIGZsYWdzOwogICAgIGZsYWdzLnN0
YWNrX3RyYWNlX2RlcHRoID0gc3RhY2tfdHJhY2VfZGVwdGg7CiAgICAgcmV0dXJuIGZsYWdzOwpA
QCAtNTYyMSwxNCArNTcyMCwxNiBAQCBzdHJ1Y3QgRmxhZ3MgewogICBib29sIGJyZWFrX29uX2Zh
aWx1cmU7CiAgIGJvb2wgY2F0Y2hfZXhjZXB0aW9uczsKICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9m
b3JrOworICBib29sIGZhaWxfZmFzdDsKICAgY29uc3QgY2hhciogZmlsdGVyOwogICBib29sIGxp
c3RfdGVzdHM7CiAgIGNvbnN0IGNoYXIqIG91dHB1dDsKKyAgYm9vbCBicmllZjsKICAgYm9vbCBw
cmludF90aW1lOwotICBJbnQzMiByYW5kb21fc2VlZDsKLSAgSW50MzIgcmVwZWF0OworICBpbnQz
Ml90IHJhbmRvbV9zZWVkOworICBpbnQzMl90IHJlcGVhdDsKICAgYm9vbCBzaHVmZmxlOwotICBJ
bnQzMiBzdGFja190cmFjZV9kZXB0aDsKKyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aDsKICAg
Y29uc3QgY2hhciogc3RyZWFtX3Jlc3VsdF90bzsKICAgYm9vbCB0aHJvd19vbl9mYWlsdXJlOwog
fTsKQEAgLTU2MzcsMTQgKzU3MzgsMTYgQEAgc3RydWN0IEZsYWdzIHsKIGNsYXNzIFBhcnNlRmxh
Z3NUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgLy8gQ2xlYXJzIHRoZSBmbGFn
cyBiZWZvcmUgZWFjaCB0ZXN0LgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7CiAgICAgR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykg
PSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpID0gZmFsc2U7CiAgICAg
R1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcoZGVh
dGhfdGVzdF91c2VfZm9yaykgPSBmYWxzZTsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFzdCkgPSBm
YWxzZTsKICAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAiIjsKICAgICBHVEVTVF9GTEFHKGxpc3Rf
dGVzdHMpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gIiI7CisgICAgR1RFU1Rf
RkxBRyhicmllZikgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKHByaW50X3RpbWUpID0gdHJ1ZTsK
ICAgICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IDA7CiAgICAgR1RFU1RfRkxBRyhyZXBlYXQp
ID0gMTsKQEAgLTU2NTYsMTEgKzU3NTksMTEgQEAgY2xhc3MgUGFyc2VGbGFnc1Rlc3QgOiBwdWJs
aWMgVGVzdCB7CiAKICAgLy8gQXNzZXJ0cyB0aGF0IHR3byBuYXJyb3cgb3Igd2lkZSBzdHJpbmcg
YXJyYXlzIGFyZSBlcXVhbC4KICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICBzdGF0
aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKHNpemVfdCBzaXplMSwgQ2hhclR5cGUqKiBhcnJh
eTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUyLCBDaGFy
VHlwZSoqIGFycmF5MikgeworICBzdGF0aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKGludCBz
aXplMSwgQ2hhclR5cGUqKiBhcnJheTEsIGludCBzaXplMiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDaGFyVHlwZSoqIGFycmF5MikgewogICAgIEFTU0VSVF9FUShzaXplMSwg
c2l6ZTIpIDw8ICIgQXJyYXkgc2l6ZXMgZGlmZmVyZW50LiI7CiAKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSAhPSBzaXplMTsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gc2l6ZTE7
IGkrKykgewogICAgICAgQVNTRVJUX1NUUkVRKGFycmF5MVtpXSwgYXJyYXkyW2ldKSA8PCAiIHdo
ZXJlIGkgPT0gIiA8PCBpOwogICAgIH0KICAgfQpAQCAtNTY3Miw5ICs1Nzc1LDExIEBAIGNsYXNz
IFBhcnNlRmxhZ3NUZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVDVF9FUShleHBlY3RlZC5i
cmVha19vbl9mYWlsdXJlLCBHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKTsKICAgICBFWFBF
Q1RfRVEoZXhwZWN0ZWQuY2F0Y2hfZXhjZXB0aW9ucywgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRp
b25zKSk7CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmRlYXRoX3Rlc3RfdXNlX2ZvcmssIEdURVNU
X0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpOworICAgIEVYUEVDVF9FUShleHBlY3RlZC5mYWls
X2Zhc3QsIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAgICAgRVhQRUNUX1NUUkVRKGV4cGVjdGVk
LmZpbHRlciwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCkpOwogICAgIEVYUEVDVF9FUShleHBl
Y3RlZC5saXN0X3Rlc3RzLCBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKTsKICAgICBFWFBFQ1RfU1RS
RVEoZXhwZWN0ZWQub3V0cHV0LCBHVEVTVF9GTEFHKG91dHB1dCkuY19zdHIoKSk7CisgICAgRVhQ
RUNUX0VRKGV4cGVjdGVkLmJyaWVmLCBHVEVTVF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQRUNUX0VR
KGV4cGVjdGVkLnByaW50X3RpbWUsIEdURVNUX0ZMQUcocHJpbnRfdGltZSkpOwogICAgIEVYUEVD
VF9FUShleHBlY3RlZC5yYW5kb21fc2VlZCwgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpOwogICAg
IEVYUEVDVF9FUShleHBlY3RlZC5yZXBlYXQsIEdURVNUX0ZMQUcocmVwZWF0KSk7CkBAIC01NzQy
LDE0MSArNTg0Nyw5MCBAQCBjbGFzcyBQYXJzZUZsYWdzVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAog
Ly8gVGVzdHMgcGFyc2luZyBhbiBlbXB0eSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFn
c1Rlc3QsIEVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHtudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHtudWxscHRy
fTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFncygpLCBm
YWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYSBjb21tYW5kIGxpbmUgdGhhdCBoYXMgbm8g
ZmxhZy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTm9GbGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7CiB9CiAKKy8vIFRlc3RzIHBhcnNpbmcgLS1ndGVz
dF9mYWlsX2Zhc3QuCitURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZhaWxGYXN0KSB7CisgIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2ZhaWxfZmFzdCIsIG51bGxwdHJ9
OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmFpbEZhc3QodHJ1
ZSksIGZhbHNlKTsKK30KKwogLy8gVGVzdHMgcGFyc2luZyBhIGJhZCAtLWd0ZXN0X2ZpbHRlciBm
bGFnLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGaWx0ZXJCYWQpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXIiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmls
dGVyIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXIiLCBudWxscHRyfTsKIAogICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCIiKSwg
dHJ1ZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgLS1ndGVzdF9maWx0ZXIgZmxh
Zy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgRmlsdGVyRW1wdHkpIHsKLSAgY29uc3QgY2hhciog
YXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXI9IiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2Zp
bHRlcj0iLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28u
ZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUi
LCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBG
bGFnczo6RmlsdGVyKCIiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgbm9uLWVt
cHR5IC0tZ3Rlc3RfZmlsdGVyIGZsYWcuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZpbHRlck5v
bkVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3RfZmlsdGVyPWFiYyIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXI9YWJjIiwgbnVsbHB0cn07CiAKLSAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBj
b25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigiYWJjIiksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUuCiBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIEJyZWFrT25GYWlsdXJlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZSh0cnVlKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlXzApIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFs
c2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX2YpIHsKLSAgY29uc3Qg
Y2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9m
YWlsdXJlPWYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28u
ZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1mIiwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwg
ZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1G
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX0YpIHsKLSAgY29u
c3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19v
bl9mYWlsdXJlPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJm
b28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1GIiwgbnVsbHB0cn07CiAKLSAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBj
b25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKGZhbHNl
KSwgZmFsc2UpOwogfQpAQCAtNTg4NCw0OCArNTkzOCwyNyBAQCBURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIEJyZWFrT25GYWlsdXJlRmFsc2VfRikgewogLy8gVGVzdHMgcGFyc2luZyBhIC0tZ3Rlc3Rf
YnJlYWtfb25fZmFpbHVyZSBmbGFnIHRoYXQgaGFzIGEgInRydWUiCiAvLyBkZWZpbml0aW9uLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZVRydWUpIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyZWFrT25GYWlsdXJlKHRydWUpLCBmYWxz
ZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBDYXRjaEV4Y2VwdGlvbnMpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zIiwK
LSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X2NhdGNoX2V4Y2VwdGlvbnMiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6Q2F0Y2hFeGNlcHRpb25zKHRydWUpLCBmYWxzZSk7CiB9CiAK
IC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9kZWF0aF90ZXN0X3VzZV9mb3JrLgogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RVc2VGb3JrKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZGVhdGhfdGVzdF91c2VfZm9yayIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9kZWF0aF90ZXN0X3VzZV9mb3JrIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkRlYXRoVGVzdFVzZUZvcmsodHJ1ZSksIGZhbHNlKTsKIH0K
QEAgLTU5MzMsMzYgKzU5NjYsMjEgQEAgVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RV
c2VGb3JrKSB7CiAvLyBUZXN0cyBoYXZpbmcgdGhlIHNhbWUgZmxhZyB0d2ljZSB3aXRoIGRpZmZl
cmVudCB2YWx1ZXMuICBUaGUKIC8vIGV4cGVjdGVkIGJlaGF2aW9yIGlzIHRoYXQgdGhlIG9uZSBj
b21pbmcgbGFzdCB0YWtlcyBwcmVjZWRlbmNlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEdXBs
aWNhdGVkRmxhZ3MpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiLS1ndGVzdF9maWx0ZXI9YSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmls
dGVyPWEiLCAiLS1ndGVzdF9maWx0ZXI9YiIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsK
IAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVy
KCJiIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGFuIHVucmVjb2duaXplZCBmbGFn
IG9uIHRoZSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFVucmVjb2duaXpl
ZEZsYWcpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
LS1ndGVzdF9icmVha19vbl9mYWlsdXJlIiwKLSAgICAiYmFyIiwgIC8vIFVucmVjb2duaXplZCBi
eSBHb29nbGUgVGVzdC4KLSAgICAiLS1ndGVzdF9maWx0ZXI9YiIsCi0gICAgTlVMTAotICB9Owor
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9icmVha19vbl9mYWls
dXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYXIiLCAgLy8gVW5yZWNvZ25pemVkIGJ5
IEdvb2dsZSBUZXN0LgorICAgICAgICAgICAgICAgICAgICAgICAgIi0tZ3Rlc3RfZmlsdGVyPWIi
LCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiYmFyIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZv
by5leGUiLCAiYmFyIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZmxhZ3M7CiAgIGZsYWdzLmJyZWFr
X29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNTk3MiwzODggKzU5OTAsMjUwIEBAIFRFU1RfRihQYXJz
ZUZsYWdzVGVzdCwgVW5yZWNvZ25pemVkRmxhZykgewogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0
ZXN0X2xpc3RfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGbGFn
KSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAg
Ii0tZ3Rlc3RfbGlzdF90ZXN0cyIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlzdF90ZXN0cyIsIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRl
c3RzKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5n
IGEgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNUcnVlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0g
ewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0xIiwKLSAgICAg
IE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9saXN0X3Rlc3RzPTEiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVT
VF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRydWUp
LCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFn
IHdpdGggYSAiZmFsc2UiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIExpc3RUZXN0c0Zh
bHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAg
ICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0wIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBj
aGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPTAiLCBudWxscHRy
fTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAg
ICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxw
dHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVz
dHMgcGFyc2luZyAtLWd0ZXN0X2xpc3RfdGVzdHM9Zi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
TGlzdFRlc3RzRmFsc2VfZikgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5l
eGUiLAotICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9ZiIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPWYiLCBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsK
IAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRl
c3RzKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfbGlzdF90
ZXN0cz1GLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNGYWxzZV9GKSB7Ci0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfbGlzdF90
ZXN0cz1GIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsICItLWd0ZXN0X2xpc3RfdGVzdHM9RiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHMoZmFsc2UpLCBmYWxzZSk7CiB9CiAK
IC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9vdXRwdXQgKGludmFsaWQpLgogVEVTVF9GKFBhcnNl
RmxhZ3NUZXN0LCBPdXRwdXRFbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgICItLWd0ZXN0X291dHB1dCIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9vdXRwdXQiLCBudWxscHRyfTsK
IAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9vdXRwdXQiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsICItLWd0ZXN0X291dHB1dCIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzKCksIHRydWUpOwogfQogCiAvLyBUZXN0cyBwYXJz
aW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbAogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBPdXRwdXRYbWwp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9vdXRwdXQ9eG1sIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsi
Zm9vLmV4ZSIsICItLWd0ZXN0X291dHB1dD14bWwiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFy
KiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6T3V0cHV0KCJ4bWwiKSwgZmFsc2UpOwogfQog
CiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxlCiBURVNUX0YoUGFyc2VG
bGFnc1Rlc3QsIE91dHB1dFhtbEZpbGUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQ9eG1sOmZpbGUiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0PXht
bDpmaWxlIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9v
LmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhl
IiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2Miwg
RmxhZ3M6Ok91dHB1dCgieG1sOmZpbGUiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5n
IC0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8KIFRFU1RfRihQYXJzZUZsYWdzVGVz
dCwgT3V0cHV0WG1sRGlyZWN0b3J5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAotICAg
IE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rf
b3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAorICAgICAgICAgICAgICAgICAgICAgICAgbnVs
bHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07
CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGbGFnczo6T3V0cHV0KCJ4bWw6ZGlyZWN0b3J5L3BhdGgvIiksIGZh
bHNlKTsKIH0KIAorLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnCitURVNUX0Yo
UGFyc2VGbGFnc1Rlc3QsIEJyaWVmRmxhZykgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9icmllZiIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYodHJ1ZSksIGZhbHNlKTsKK30KKworLy8gVGVzdHMg
aGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnIHdpdGggYSAidHJ1ZSIgdmFsdWUKK1RFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnVHJ1ZSkgeworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
ImZvby5leGUiLCAiLS1ndGVzdF9icmllZj0xIiwgbnVsbHB0cn07CisKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OworCisgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmllZih0cnVlKSwgZmFsc2UpOworfQorCisvLyBU
ZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2JyaWVmIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKK1RF
U1RfRihQYXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnRmFsc2UpIHsKKyAgY29uc3QgY2hhciogYXJn
dltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWY9MCIsIG51bGxwdHJ9OworCisgIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BB
UlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYoZmFsc2UpLCBmYWxzZSk7Cit9
CisKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnCiBURVNUX0YoUGFy
c2VGbGFnc1Rlc3QsIFByaW50VGltZUZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lIiwKLSAgICAgIE5V
TEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9w
cmludF90aW1lIiwgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZSh0cnVlKSwgZmFs
c2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X3ByaW50X3RpbWUgZmxhZyB3aXRo
IGEgInRydWUiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZVRydWUpIHsK
LSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1n
dGVzdF9wcmludF90aW1lPTEiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9MSIsIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRU
aW1lKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5n
IGEgLS1ndGVzdF9wcmludF90aW1lIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgUHJpbnRUaW1lRmFsc2UpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lPTAiLAotICAg
ICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X3ByaW50X3RpbWU9MCIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdf
RkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwgZmFsc2UpOworICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZh
bHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfcHJpbnRfdGltZT1m
LgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBQcmludFRpbWVGYWxzZV9mKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1m
IiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICIt
LWd0ZXN0X3ByaW50X3RpbWU9ZiIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRl
c3RzIHBhcnNpbmcgLS1ndGVzdF9wcmludF90aW1lPUYuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3Qs
IFByaW50VGltZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28u
ZXhlIiwKLSAgICAiLS1ndGVzdF9wcmludF90aW1lPUYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcHJpbnRfdGltZT1GIiwgbnVs
bHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07
CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50
VGltZShmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JhbmRv
bV9zZWVkPW51bWJlcgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBSYW5kb21TZWVkKSB7Ci0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmFuZG9t
X3NlZWQ9MTAwMCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9yYW5kb21fc2VlZD0xMDAwIiwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlJhbmRvbVNlZWQoMTAwMCksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3JlcGVhdD1udW1iZXIKIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgUmVwZWF0KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfcmVwZWF0PTEwMDAiLCBu
dWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRy
fTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UmVw
ZWF0KDEwMDApLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19y
dW5fZGlzYWJsZWRfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlz
YWJsZWRUZXN0c0ZsYWcpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9v
LmV4ZSIsCi0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyIsCi0gICAgICBO
VUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rf
YWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNU
X1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QWxzb1J1bkRpc2FibGVkVGVzdHMo
dHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogfQogCiAvLyBUZXN0
cyBoYXZpbmcgYSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcgd2l0aCBhICJ0
cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRUZXN0c1Ry
dWUpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAg
ICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0xIiwKLSAgICAgIE5VTEwKLSAgICB9
OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9hbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cz0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKHRydWUpLCBmYWxz
ZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpBbHNv
UnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVz
dHMgZmxhZyB3aXRoIGEgImZhbHNlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNv
UnVuRGlzYWJsZWRUZXN0c0ZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIs
Ci0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9v
LmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBh
cmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJs
ZWRUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2
LCBhcmd2MiwgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRlc3RzKGZhbHNlKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9z
aHVmZmxlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBTaHVmZmxlV2l0aG91dFZhbHVlKSB7Ci0g
IGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1
ZmZsZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3Rfc2h1ZmZsZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJn
diwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBh
cnNpbmcgLS1ndGVzdF9zaHVmZmxlPTAuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFNodWZmbGVG
YWxzZV8wKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3Rfc2h1ZmZsZT0wIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3NodWZmbGU9MCIsIG51bGxwdHJ9OwogCi0gIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKGZhbHNlKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF9zaHVmZmxlIGZsYWcgdGhhdCBoYXMg
YSAidHJ1ZSIgZGVmaW5pdGlvbi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU2h1ZmZsZVRydWUp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF9zaHVmZmxlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJm
b28uZXhlIiwgIi0tZ3Rlc3Rfc2h1ZmZsZT0xIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlNodWZmbGUodHJ1ZSksIGZhbHNlKTsKIH0KIAog
Ly8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3N0YWNrX3RyYWNlX2RlcHRoPW51bWJlci4KIFRFU1Rf
RihQYXJzZUZsYWdzVGVzdCwgU3RhY2tUcmFjZURlcHRoKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGg9NSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1n
dGVzdF9zdGFja190cmFjZV9kZXB0aD01IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0YWNrVHJhY2VEZXB0aCg1KSwgZmFsc2UpOwogfQog
CiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFN0cmVhbVJlc3VsdFRvKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90
bz1sb2NhbGhvc3Q6MTIzNCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF9zdHJlYW1fcmVzdWx0X3RvPWxvY2FsaG9zdDoxMjM0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oCiAgICAgICBhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0cmVhbVJlc3VsdFRvKCJsb2NhbGhvc3Q6
MTIzNCIpLCBmYWxzZSk7CkBAIC02MzYxLDMyICs2MjQxLDE4IEBAIFRFU1RfRihQYXJzZUZsYWdz
VGVzdCwgU3RyZWFtUmVzdWx0VG8pIHsKIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3Rocm93
X29uX2ZhaWx1cmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlV2l0aG91
dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsIG51bGxwdHJ9
OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwK
LSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAg
IEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpUaHJvd09uRmFp
bHVyZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfdGhyb3df
b25fZmFpbHVyZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBUaHJvd09uRmFpbHVyZUZhbHNl
XzApIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1n
dGVzdF90aHJvd19vbl9mYWlsdXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0wIiwgbnVsbHB0
cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
ICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25G
YWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQpAQCAtNjM5NCwxNiArNjI2MCw5IEBAIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgVGhyb3dPbkZhaWx1cmVGYWxzZV8wKSB7CiAvLyBUZXN0cyBwYXJzaW5n
IGEgLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlIGZsYWcgdGhhdCBoYXMgYSAidHJ1ZSIKIC8vIGRl
ZmluaXRpb24uCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlVHJ1ZSkgewot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3Ro
cm93X29uX2ZhaWx1cmU9MSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlPTEiLCBudWxscHRyfTsKIAot
ICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVT
VF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6VGhyb3dPbkZhaWx1cmUo
dHJ1ZSksIGZhbHNlKTsKIH0KQEAgLTY0MzgsNyArNjI5Nyw3IEBAIFRFU1RfRihQYXJzZUZsYWdz
VGVzdCwgV2lkZVN0cmluZ3MpIHsKICNpZiBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdfCiBj
bGFzcyBGbGFnZmlsZVRlc3QgOiBwdWJsaWMgUGFyc2VGbGFnc1Rlc3QgewogIHB1YmxpYzoKLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIFBh
cnNlRmxhZ3NUZXN0OjpTZXRVcCgpOwogCiAgICAgdGVzdGRhdGFfcGF0aF8uU2V0KGludGVybmFs
OjpGaWxlUGF0aCgKQEAgLTY0NDgsNyArNjMwNyw3IEBAIGNsYXNzIEZsYWdmaWxlVGVzdCA6IHB1
YmxpYyBQYXJzZUZsYWdzVGVzdCB7CiAgICAgRVhQRUNUX1RSVUUodGVzdGRhdGFfcGF0aF8uQ3Jl
YXRlRm9sZGVyKCkpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lk
IFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeDo6Um1E
aXIodGVzdGRhdGFfcGF0aF8uY19zdHIoKSk7CiAgICAgUGFyc2VGbGFnc1Rlc3Q6OlRlYXJEb3du
KCk7CiAgIH0KQEAgLTY0NzIsMTYgKzYzMzEsOSBAQCBURVNUX0YoRmxhZ2ZpbGVUZXN0LCBFbXB0
eSkgewogICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCIt
LSIgR1RFU1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIo
KTsKIAotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdm
aWxlX2ZsYWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3MoKSwgZmFsc2UpOwogfQpAQCAtNjQ5Mywx
NiArNjM0NSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIEZpbHRlck5vbkVtcHR5KSB7CiAgIHN0
ZDo6c3RyaW5nIGZsYWdmaWxlX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gImZsYWdmaWxlPSIpICsgZmxhZ2ZpbGVfcGF0aC5jX3N0cigpOwogCi0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgZmxhZ2ZpbGVfZmxhZy5j
X3N0cigpLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhl
IiwgZmxhZ2ZpbGVfZmxhZy5jX3N0cigpLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJhYmMiKSwgZmFsc2UpOwogfQpAQCAtNjUx
NiwxNiArNjM2MSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3QsIFNldmVyYWxGbGFncykgewogICBz
dGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RFU1Rf
RkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAotICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2ZsYWcu
Y19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgRmxhZ3MgZXhwZWN0ZWRfZmxhZ3M7
CiAgIGV4cGVjdGVkX2ZsYWdzLmJyZWFrX29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNjU0MSwzNCAr
NjM3OSwzNCBAQCBjbGFzcyBDdXJyZW50VGVzdEluZm9UZXN0IDogcHVibGljIFRlc3QgewogIHBy
b3RlY3RlZDoKICAgLy8gVGVzdHMgdGhhdCBjdXJyZW50X3Rlc3RfaW5mbygpIHJldHVybnMgTlVM
TCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4KICAgLy8gdGhlIHRlc3QgY2FzZSBpcyBydW4uCi0g
IHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1
aXRlKCkgewogICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMg
cG9pbnQuCiAgICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgICBVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0
X2luZm8gPT0gTlVMTCkKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gbnVsbHB0cikKICAg
ICAgICAgPDwgIlRoZXJlIHNob3VsZCBiZSBubyB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQu
IjsKICAgfQogCiAgIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5zIE5V
TEwgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbgogICAvLyB0aGUgdGVzdCBjYXNlIGhhcyBydW4uCi0g
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3du
VGVzdFN1aXRlKCkgewogICAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgICAgVW5p
dFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdF9pbmZvID09IE5VTEwpCisgICAgRVhQRUNUX1RSVUUodGVzdF9pbmZvID09IG51bGxw
dHIpCiAgICAgICAgIDw8ICJUaGVyZSBzaG91bGQgYmUgbm8gdGVzdHMgcnVubmluZyBhdCB0aGlz
IHBvaW50LiI7CiAgIH0KIH07CiAKIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSBy
ZXR1cm5zIFRlc3RJbmZvIGZvciBjdXJyZW50bHkgcnVubmluZwogLy8gdGVzdCBieSBjaGVja2lu
ZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuCi1URVNUX0Yo
Q3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgeworVEVT
VF9GKEN1cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlKSB7
CiAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRfVFJVRShOVUxMICE9IHRlc3RfaW5m
bykKKyAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSB0ZXN0X2luZm8pCiAgICAgICA8PCAiVGhlcmUg
aXMgYSB0ZXN0IHJ1bm5pbmcgc28gd2Ugc2hvdWxkIGhhdmUgYSB2YWxpZCBUZXN0SW5mby4iOwot
ICBFWFBFQ1RfU1RSRVEoIkN1cnJlbnRUZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3RfY2Fz
ZV9uYW1lKCkpCi0gICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBy
dW5uaW5nIHRlc3QgY2FzZS4iOwotICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5B
VGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVz
dEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBl
Y3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBF
WFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdFN1aXRlIiwgdGVzdF9pbmZvLT5u
YW1lKCkpCiAgICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5u
aW5nIHRlc3QuIjsKIH0KIApAQCAtNjU3NiwxNCArNjQxNCwxNCBAQCBURVNUX0YoQ3VycmVudFRl
c3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFUZXN0Q2FzZSkgewogLy8gdGVzdCBieSBj
aGVja2luZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3QgdGhlIGFjdHVhbCBvbmUuICBX
ZQogLy8gdXNlIHRoaXMgdGVzdCB0byBzZWUgdGhhdCB0aGUgVGVzdEluZm8gb2JqZWN0IGFjdHVh
bGx5IGNoYW5nZWQgZnJvbQogLy8gdGhlIHByZXZpb3VzIGludm9jYXRpb24uCi1URVNUX0YoQ3Vy
cmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENhc2UpIHsKK1RFU1Rf
RihDdXJyZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvclNlY29uZFRlc3RJbkFUZXN0U3VpdGUpIHsK
ICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNl
KCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VSVF9UUlVFKE5VTEwgIT0gdGVzdF9pbmZv
KQorICBBU1NFUlRfVFJVRShudWxscHRyICE9IHRlc3RfaW5mbykKICAgICAgIDw8ICJUaGVyZSBp
cyBhIHRlc3QgcnVubmluZyBzbyB3ZSBzaG91bGQgaGF2ZSBhIHZhbGlkIFRlc3RJbmZvLiI7Ci0g
IEVYUEVDVF9TVFJFUSgiQ3VycmVudFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNl
X25hbWUoKSkKLSAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1
bm5pbmcgdGVzdCBjYXNlLiI7Ci0gIEVYUEVDVF9TVFJFUSgiV29ya3NGb3JTZWNvbmRUZXN0SW5B
VGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVz
dEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSkKKyAgICAgIDw8ICJFeHBl
Y3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBzdWl0ZS4iOworICBF
WFBFQ1RfU1RSRVEoIldvcmtzRm9yU2Vjb25kVGVzdEluQVRlc3RTdWl0ZSIsIHRlc3RfaW5mby0+
bmFtZSgpKQogICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgcnVu
bmluZyB0ZXN0LiI7CiB9CiAKQEAgLTY2MjgsMTIgKzY0NjYsOCBAQCBURVNUKE5lc3RlZFRlc3Rp
bmdOYW1lc3BhY2VUZXN0LCBGYWlsdXJlKSB7CiAvLyBzdWNjZXNzZnVsbHkuCiBjbGFzcyBQcm90
ZWN0ZWRGaXh0dXJlTWV0aG9kc1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgVGVzdDo6U2V0VXAoKTsKLSAgfQotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7Ci0gICAgVGVzdDo6VGVhckRvd24oKTsKLSAgfQorICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgeyBUZXN0OjpTZXRVcCgpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7IFRlc3Q6OlRlYXJEb3duKCk7IH0KIH07CiAKIC8vIFN0cmVhbWluZ0Fzc2VydGlvbnNU
ZXN0IHRlc3RzIHRoZSBzdHJlYW1pbmcgdmVyc2lvbnMgb2YgYSByZXByZXNlbnRhdGl2ZQpAQCAt
NjgzMSw3ICs2NjY1LDcgQEAgVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5T
dGRvdXRJc1R0eSkgewogVEVTVChDb2xvcmVkT3V0cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5UZXJt
U3VwcG9ydHNDb2xvcnMpIHsKICAgR1RFU1RfRkxBRyhjb2xvcikgPSAiYXV0byI7CiAKLSNpZiBH
VEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9X
U19NSU5HVwogICAvLyBPbiBXaW5kb3dzLCB3ZSBpZ25vcmUgdGhlIFRFUk0gdmFyaWFibGUgYXMg
aXQncyB1c3VhbGx5IG5vdCBzZXQuCiAKICAgU2V0RW52KCJURVJNIiwgImR1bWIiKTsKQEAgLTcw
MDYsMjAgKzY4NDAsMTkgQEAgVEVTVChIYXNGYWlsdXJlVGVzdCwgV29ya3NPdXRzaWRlT2ZUZXN0
Qm9keTIpIHsKIAogY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlz
dGVuZXIgewogIHB1YmxpYzoKLSAgVGVzdExpc3RlbmVyKCkgOiBvbl9zdGFydF9jb3VudGVyXyhO
VUxMKSwgaXNfZGVzdHJveWVkXyhOVUxMKSB7fQorICBUZXN0TGlzdGVuZXIoKSA6IG9uX3N0YXJ0
X2NvdW50ZXJfKG51bGxwdHIpLCBpc19kZXN0cm95ZWRfKG51bGxwdHIpIHt9CiAgIFRlc3RMaXN0
ZW5lcihpbnQqIG9uX3N0YXJ0X2NvdW50ZXIsIGJvb2wqIGlzX2Rlc3Ryb3llZCkKICAgICAgIDog
b25fc3RhcnRfY291bnRlcl8ob25fc3RhcnRfY291bnRlciksCiAgICAgICAgIGlzX2Rlc3Ryb3ll
ZF8oaXNfZGVzdHJveWVkKSB7fQogCi0gIHZpcnR1YWwgflRlc3RMaXN0ZW5lcigpIHsKKyAgflRl
c3RMaXN0ZW5lcigpIG92ZXJyaWRlIHsKICAgICBpZiAoaXNfZGVzdHJveWVkXykKICAgICAgICpp
c19kZXN0cm95ZWRfID0gdHJ1ZTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQg
T25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAg
aWYgKG9uX3N0YXJ0X2NvdW50ZXJfICE9IE5VTEwpCi0gICAgICAoKm9uX3N0YXJ0X2NvdW50ZXJf
KSsrOworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUgeworICAgIGlmIChvbl9zdGFydF9jb3VudGVyXyAhPSBudWxscHRyKSAo
Km9uX3N0YXJ0X2NvdW50ZXJfKSsrOwogICB9CiAKICBwcml2YXRlOgpAQCAtNzAzMSw5ICs2ODY0
LDkgQEAgY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIg
ewogVEVTVChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0LCBDb25zdHJ1Y3Rpb25Xb3JrcykgewogICBU
ZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogCi0gIEVYUEVDVF9UUlVFKFRlc3RFdmVudExp
c3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlzdGVuZXJzKSAhPSBOVUxMKTsKLSAgRVhQ
RUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKLSAg
RVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1sX2dlbmVyYXRvcigpID09IE5VTEwpOwor
ICBFWFBFQ1RfVFJVRShUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxp
c3RlbmVycykgIT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jl
c3VsdF9wcmludGVyKCkgPT0gbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZh
dWx0X3htbF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKIH0KIAogLy8gVGVzdHMgdGhhdCB0aGUg
VGVzdEV2ZW50TGlzdGVuZXJzIGRlc3RydWN0b3IgZGVsZXRlcyBhbGwgdGhlIGxpc3RlbmVycyBp
dApAQCAtNzA0MiwxMiArNjg3NSwxMiBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIERl
c3RydWN0aW9uV29ya3MpIHsKICAgYm9vbCBkZWZhdWx0X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ry
b3llZCA9IGZhbHNlOwogICBib29sIGRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkID0g
ZmFsc2U7CiAgIGJvb2wgZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRl
c3RMaXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRlciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0g
ICAgICBOVUxMLCAmZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl9pc19kZXN0cm95ZWQpOwotICBUZXN0
TGlzdGVuZXIqIGRlZmF1bHRfeG1sX3ByaW50ZXIgPSBuZXcgVGVzdExpc3RlbmVyKAotICAgICAg
TlVMTCwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAgVGVzdExpc3RlbmVy
KiBleHRyYV9saXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBOVUxMLCAmZXh0cmFf
bGlzdGVuZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3Jlc3VsdF9w
cmludGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfcmVzdWx0
X3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBkZWZhdWx0X3htbF9wcmlu
dGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVsbHB0ciwgJmRlZmF1bHRfeG1sX3ByaW50
ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVyKiBleHRyYV9saXN0ZW5lciA9CisgICAg
ICBuZXcgVGVzdExpc3RlbmVyKG51bGxwdHIsICZleHRyYV9saXN0ZW5lcl9pc19kZXN0cm95ZWQp
OwogCiAgIHsKICAgICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwpAQCAtNzA4NywyMSAr
NjkyMCwyMSBAQCBjbGFzcyBTZXF1ZW5jZVRlc3RpbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRl
c3RFdmVudExpc3RlbmVyIHsKICAgICAgIDogdmVjdG9yXyh2ZWN0b3IpLCBpZF8oaWQpIHt9CiAK
ICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3Qg
VW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2Jh
Y2soR2V0RXZlbnREZXNjcmlwdGlvbigiT25UZXN0UHJvZ3JhbVN0YXJ0IikpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRp
b24oIk9uVGVzdFByb2dyYW1FbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRl
cmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVz
dEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7CiAgICAgdmVj
dG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdEl0ZXJhdGlvblN0YXJ0
IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qaXRl
cmF0aW9uKi8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNj
cmlwdGlvbigiT25UZXN0SXRlcmF0aW9uRW5kIikpOwogICB9CiAKQEAgLTcxNzIsNyArNzAwNSw3
IEBAIFRFU1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwgUmVsZWFzZSkgewogICAgIEVYUEVDVF9F
UShsaXN0ZW5lciwgbGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpKTsKICAgICBUZXN0RXZlbnRM
aXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycyktPk9uVGVzdFByb2dyYW1T
dGFydCgKICAgICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpKTsKLSAgICBFWFBFQ1RfVFJV
RShsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikgPT0gTlVMTCk7CisgICAgRVhQRUNUX1RSVUUo
bGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpID09IG51bGxwdHIpOwogICB9CiAgIEVYUEVDVF9F
USgwLCBvbl9zdGFydF9jb3VudGVyKTsKICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CkBA
IC03MTgyLDcgKzcwMTUsNyBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIFJlbGVhc2Up
IHsKIC8vIFRlc3RzIHRoYXQgbm8gZXZlbnRzIGFyZSBmb3J3YXJkZWQgd2hlbiBldmVudCBmb3J3
YXJkaW5nIGlzIGRpc2FibGVkLgogVEVTVChFdmVudExpc3RlbmVyVGVzdCwgU3VwcHJlc3NFdmVu
dEZvcndhcmRpbmcpIHsKICAgaW50IG9uX3N0YXJ0X2NvdW50ZXIgPSAwOwotICBUZXN0TGlzdGVu
ZXIqIGxpc3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3RhcnRfY291bnRlciwgTlVMTCk7
CisgIFRlc3RMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKCZvbl9zdGFydF9j
b3VudGVyLCBudWxscHRyKTsKIAogICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogICBs
aXN0ZW5lcnMuQXBwZW5kKGxpc3RlbmVyKTsKQEAgLTcyMjMsOSArNzA1Niw5IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIpIHsKIAogICAvLyBSZXBsYWNp
bmcgZGVmYXVsdF9yZXN1bHRfcHJpbnRlciB3aXRoIHNvbWV0aGluZyBlbHNlIHNob3VsZCByZW1v
dmUgaXQKICAgLy8gZnJvbSB0aGUgbGlzdCBhbmQgZGVzdHJveSBpdC4KLSAgVGVzdEV2ZW50TGlz
dGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRSZXN1bHRQcmludGVyKCZsaXN0ZW5lcnMsIE5VTEwp
OworICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIo
Jmxpc3RlbmVycywgbnVsbHB0cik7CiAKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRf
cmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1
bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJv
eWVkKTsKIAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMg
c3RpbGwgdGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTcyNDksNyArNzA4Miw3IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFJlc3VsdFByaW50ZXJXb3JrcykgewogICAg
IFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0UmVzdWx0UHJpbnRlcigmbGlz
dGVuZXJzLCBsaXN0ZW5lcik7CiAKICAgICBFWFBFQ1RfRVEobGlzdGVuZXIsIGxpc3RlbmVycy5S
ZWxlYXNlKGxpc3RlbmVyKSk7Ci0gICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVz
dWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVs
dF9yZXN1bHRfcHJpbnRlcigpID09IG51bGxwdHIpOwogICAgIEVYUEVDVF9GQUxTRShpc19kZXN0
cm95ZWQpOwogCiAgICAgLy8gQnJvYWRjYXN0aW5nIGV2ZW50cyBub3cgc2hvdWxkIG5vdCBhZmZl
Y3QgZGVmYXVsdF9yZXN1bHRfcHJpbnRlci4KQEAgLTcyODIsOSArNzExNSw5IEBAIFRFU1QoRXZl
bnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfeG1sX2dlbmVyYXRvcikgewogCiAgIC8vIFJlcGxhY2lu
ZyBkZWZhdWx0X3htbF9nZW5lcmF0b3Igd2l0aCBzb21ldGhpbmcgZWxzZSBzaG91bGQgcmVtb3Zl
IGl0CiAgIC8vIGZyb20gdGhlIGxpc3QgYW5kIGRlc3Ryb3kgaXQuCi0gIFRlc3RFdmVudExpc3Rl
bmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJhdG9yKCZsaXN0ZW5lcnMsIE5VTEwpOwor
ICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlz
dGVuZXJzLCBudWxscHRyKTsKIAotICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxf
Z2VuZXJhdG9yKCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3ht
bF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJveWVkKTsK
IAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwg
dGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTczMDgsNyArNzE0MSw3IEBAIFRFU1QoRXZlbnRMaXN0
ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFhtbEdlbmVyYXRvcldvcmtzKSB7CiAgICAgVGVzdEV2
ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3IoJmxpc3RlbmVycywg
bGlzdGVuZXIpOwogCiAgICAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5lcnMuUmVsZWFzZShs
aXN0ZW5lcikpOwotICAgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0
b3IoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2Vu
ZXJhdG9yKCkgPT0gbnVsbHB0cik7CiAgICAgRVhQRUNUX0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CiAK
ICAgICAvLyBCcm9hZGNhc3RpbmcgZXZlbnRzIG5vdyBzaG91bGQgbm90IGFmZmVjdCBkZWZhdWx0
X3htbF9nZW5lcmF0b3IuCkBAIC03MzcxLDk1ICs3MjA0LDgzIEBAIEdURVNUX1RFU1QoQWx0ZXJu
YXRpdmVOYW1lVGVzdCwgV29ya3MpIHsgIC8vIEdURVNUX1RFU1QgaXMgdGhlIHNhbWUgYXMgVEVT
VC4KIAogLy8gVGVzdHMgZm9yIGludGVybmFsIHV0aWxpdGllcyBuZWNlc3NhcnkgZm9yIGltcGxl
bWVudGF0aW9uIG9mIHRoZSB1bml2ZXJzYWwKIC8vIHByaW50aW5nLgotLy8gRklYTUU6IEZpbmQg
YSBiZXR0ZXIgaG9tZSBmb3IgdGhlbS4KIAogY2xhc3MgQ29udmVyc2lvbkhlbHBlckJhc2Uge307
CiBjbGFzcyBDb252ZXJzaW9uSGVscGVyRGVyaXZlZCA6IHB1YmxpYyBDb252ZXJzaW9uSGVscGVy
QmFzZSB7fTsKIAotLy8gVGVzdHMgdGhhdCBJc0FQcm90b2NvbE1lc3NhZ2U8VD46OnZhbHVlIGlz
IGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBW
YWx1ZUlzQ29tcGlsZVRpbWVDb25zdGFudCkgewotICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oSXNB
UHJvdG9jb2xNZXNzYWdlPFByb3RvY29sTWVzc2FnZT46OnZhbHVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RfdHJ1ZSk7Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXyghSXNBUHJvdG9j
b2xNZXNzYWdlPGludD46OnZhbHVlLCBjb25zdF9mYWxzZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQg
SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBpcwotLy8gcHJvdG8y
OjpNZXNzYWdlIG9yIGEgc3ViLWNsYXNzIG9mIGl0LgotVEVTVChJc0FQcm90b2NvbE1lc3NhZ2VU
ZXN0LCBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSXNBUHJvdG9jb2xNZXNzYWdlKSB7Ci0gIEVYUEVDVF9U
UlVFKElzQVByb3RvY29sTWVzc2FnZTwgOjpwcm90bzI6Ok1lc3NhZ2U+Ojp2YWx1ZSk7Ci0gIEVY
UEVDVF9UUlVFKElzQVByb3RvY29sTWVzc2FnZTxQcm90b2NvbE1lc3NhZ2U+Ojp2YWx1ZSk7Ci19
Ci0KLS8vIFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyBmYWxzZSB3
aGVuIFQgaXMgbmVpdGhlcgotLy8gUHJvdG9jb2xNZXNzYWdlIG5vciBhIHN1Yi1jbGFzcyBvZiBp
dC4KLVRFU1QoSXNBUHJvdG9jb2xNZXNzYWdlVGVzdCwgVmFsdWVJc0ZhbHNlV2hlblR5cGVJc05v
dEFQcm90b2NvbE1lc3NhZ2UpIHsKLSAgRVhQRUNUX0ZBTFNFKElzQVByb3RvY29sTWVzc2FnZTxp
bnQ+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FQcm90b2NvbE1lc3NhZ2U8Y29uc3QgQ29u
dmVyc2lvbkhlbHBlckJhc2U+Ojp2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgQ29tcGlsZUFz
c2VydFR5cGVzRXF1YWwgY29tcGlsZXMgd2hlbiB0aGUgdHlwZSBhcmd1bWVudHMgYXJlCi0vLyBl
cXVhbC4KLVRFU1QoQ29tcGlsZUFzc2VydFR5cGVzRXF1YWwsIENvbXBpbGVzV2hlblR5cGVzQXJl
RXF1YWwpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8dm9pZCwgdm9pZD4oKTsKLSAgQ29t
cGlsZUFzc2VydFR5cGVzRXF1YWw8aW50KiwgaW50Kj4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBS
ZW1vdmVSZWZlcmVuY2UgZG9lcyBub3QgYWZmZWN0IG5vbi1yZWZlcmVuY2UgdHlwZXMuCi1URVNU
KFJlbW92ZVJlZmVyZW5jZVRlc3QsIERvZXNOb3RBZmZlY3ROb25SZWZlcmVuY2VUeXBlKSB7Ci0g
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlUmVmZXJlbmNlPGludD46OnR5cGU+
KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5j
ZTxjb25zdCBjaGFyPjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVSZWZlcmVu
Y2UgcmVtb3ZlcyByZWZlcmVuY2UgZnJvbSByZWZlcmVuY2UgdHlwZXMuCi1URVNUKFJlbW92ZVJl
ZmVyZW5jZVRlc3QsIFJlbW92ZXNSZWZlcmVuY2UpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8aW50LCBSZW1vdmVSZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRU
eXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5jZTxjb25zdCBjaGFyJj46OnR5cGU+
KCk7Ci19CitzdHJ1Y3QgSGFzRGVidWdTdHJpbmdNZXRob2RzIHsKKyAgc3RkOjpzdHJpbmcgRGVi
dWdTdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBzdGQ6OnN0cmluZyBTaG9ydERlYnVn
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3RzIEdURVNUX1JFTU9W
RV9SRUZFUkVOQ0VfLgorc3RydWN0IEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzIDogcHVibGlj
IEhhc0RlYnVnU3RyaW5nTWV0aG9kcyB7fTsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlKCkgewotICBDb21waWxlQXNz
ZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV8oVDIpPigpOwotfQorc3Ry
dWN0IFdyb25nVHlwZURlYnVnU3RyaW5nTWV0aG9kIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJp
bmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBpbnQgU2hvcnREZWJ1Z1N0cmluZygpIGNvbnN0
IHsgcmV0dXJuIDE7IH0KK307CiAKLVRFU1QoUmVtb3ZlUmVmZXJlbmNlVGVzdCwgTWFjcm9WZXJz
aW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZTxpbnQsIGludD4oKTsKLSAgVGVzdEdU
ZXN0UmVtb3ZlUmVmZXJlbmNlPGNvbnN0IGNoYXIsIGNvbnN0IGNoYXImPigpOwotfQorc3RydWN0
IE5vdENvbnN0RGVidWdTdHJpbmdNZXRob2QgeworICBzdGQ6OnN0cmluZyBEZWJ1Z1N0cmluZygp
IHsgcmV0dXJuICIiOyB9CisgIHN0ZDo6c3RyaW5nIFNob3J0RGVidWdTdHJpbmcoKSBjb25zdCB7
IHJldHVybiAiIjsgfQorfTsKIAorc3RydWN0IE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZCB7Cisg
IHN0ZDo6c3RyaW5nIERlYnVnU3RyaW5nKCkgeyByZXR1cm4gIiI7IH0KK307CiAKLS8vIFRlc3Rz
IHRoYXQgUmVtb3ZlQ29uc3QgZG9lcyBub3QgYWZmZWN0IG5vbi1jb25zdCB0eXBlcy4KLVRFU1Qo
UmVtb3ZlQ29uc3RUZXN0LCBEb2VzTm90QWZmZWN0Tm9uQ29uc3RUeXBlKSB7Ci0gIENvbXBpbGVB
c3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlQ29uc3Q8aW50Pjo6dHlwZT4oKTsKLSAgQ29tcGls
ZUFzc2VydFR5cGVzRXF1YWw8Y2hhciYsIFJlbW92ZUNvbnN0PGNoYXImPjo6dHlwZT4oKTsKK3N0
cnVjdCBJbmNvbXBsZXRlVHlwZTsKKworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1Z1N0cmluZ0FuZFNo
b3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lCisvLyBjb25zdGFudC4K
K1RFU1QoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nVGVzdCwgVmFsdWVJc0NvbXBp
bGVUaW1lQ29uc3RhbnQpIHsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKAorICAgICAgSGFzRGVi
dWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPEhhc0RlYnVnU3RyaW5nTWV0aG9kcz46OnZhbHVl
LAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXygKKyAgICAgIEhh
c0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxJbmhlcml0c0RlYnVnU3RyaW5nTWV0aG9k
cz46OnZhbHVlLAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhI
YXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSW5oZXJpdHNEZWJ1Z1N0cmluZ01ldGhvZHM+Ojp2YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X3RydWUpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisg
ICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFdyb25nVHlwZURlYnVnU3Ry
aW5nTWV0aG9kPjo6dmFsdWUsCisgICAgICBjb25zdF9mYWxzZSk7CisgIEdURVNUX0NPTVBJTEVf
QVNTRVJUXygKKyAgICAgICFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8Tm90Q29u
c3REZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBHVEVT
VF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2Up
OworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9y
dERlYnVnU3RyaW5nPEluY29tcGxldGVUeXBlPjo6dmFsdWUsIGNvbnN0X2ZhbHNlKTsKKyAgR1RF
U1RfQ09NUElMRV9BU1NFUlRfKCFIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8aW50
Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9mYWxzZSk7CiB9CiAKLS8v
IFRlc3RzIHRoYXQgUmVtb3ZlQ29uc3QgcmVtb3ZlcyBjb25zdCBmcm9tIGNvbnN0IHR5cGVzLgot
VEVTVChSZW1vdmVDb25zdFRlc3QsIFJlbW92ZXNDb25zdCkgewotICBDb21waWxlQXNzZXJ0VHlw
ZXNFcXVhbDxpbnQsIFJlbW92ZUNvbnN0PGNvbnN0IGludD46OnR5cGU+KCk7Ci0gIENvbXBpbGVB
c3NlcnRUeXBlc0VxdWFsPGNoYXJbMl0sIFJlbW92ZUNvbnN0PGNvbnN0IGNoYXJbMl0+Ojp0eXBl
PigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyWzJdWzNdLCBSZW1vdmVDb25zdDxj
b25zdCBjaGFyWzJdWzNdPjo6dHlwZT4oKTsKKy8vIFRlc3RzIHRoYXQgSGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVCBoYXMKKy8vIG5lZWRl
ZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmdUZXN0LAor
ICAgICBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5n
KSB7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzPjo6dmFsdWUpOwogfQogCi0vLyBUZXN0cyBH
VEVTVF9SRU1PVkVfQ09OU1RfLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
Pgotdm9pZCBUZXN0R1Rlc3RSZW1vdmVDb25zdCgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8VDEsIEdURVNUX1JFTU9WRV9DT05TVF8oVDIpPigpOwotfQotCi1URVNUKFJlbW92ZUNvbnN0
VGVzdCwgTWFjcm9WZXJzaW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZUNvbnN0PGludCwgaW50Pigp
OwotICBUZXN0R1Rlc3RSZW1vdmVDb25zdDxkb3VibGUmLCBkb3VibGUmPigpOwotICBUZXN0R1Rl
c3RSZW1vdmVDb25zdDxjaGFyLCBjb25zdCBjaGFyPigpOworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1
Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVAorLy8g
ZG9lc24ndCBoYXZlIG5lZWRlZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0
RGVidWdTdHJpbmdUZXN0LAorICAgICBWYWx1ZUlzRmFsc2VXaGVuVHlwZUlzTm90QVByb3RvY29s
TWVzc2FnZSkgeworICBFWFBFQ1RfRkFMU0UoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3Ry
aW5nPGludD46OnZhbHVlKTsKKyAgRVhQRUNUX0ZBTFNFKAorICAgICAgSGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPGNvbnN0IENvbnZlcnNpb25IZWxwZXJCYXNlPjo6dmFsdWUpOwog
fQogCiAvLyBUZXN0cyBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8uCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiB2b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVy
ZW5jZUFuZENvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVN
T1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfKFQyKT4oKTsKKyAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3NhbWU8VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUMik+Ojp2YWx1ZSwK
KyAgICAgICAgICAgICAgICAiR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfIGZhaWxl
ZC4iKTsKIH0KIAogVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKQEAg
LTc0NzAsMzUgKzcyOTEsMTIgQEAgVEVTVChSZW1vdmVSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29y
a3MpIHsKICAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlQW5kQ29uc3Q8Y29uc3QgY2hhciosIGNv
bnN0IGNoYXIqPigpOwogfQogCi0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBkb2VzIG5vdCBh
ZmZlY3QgcmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBEb2VzTm90QWZm
ZWN0UmVmZXJlbmNlVHlwZSkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQmLCBBZGRS
ZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0
IGNoYXImLCBBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciY+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0
cyB0aGF0IEFkZFJlZmVyZW5jZSBhZGRzIHJlZmVyZW5jZSB0byBub24tcmVmZXJlbmNlIHR5cGVz
LgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBBZGRzUmVmZXJlbmNlKSB7Ci0gIENvbXBpbGVBc3Nl
cnRUeXBlc0VxdWFsPGludCYsIEFkZFJlZmVyZW5jZTxpbnQ+Ojp0eXBlPigpOwotICBDb21waWxl
QXNzZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyJiwgQWRkUmVmZXJlbmNlPGNvbnN0IGNoYXI+Ojp0
eXBlPigpOwotfQotCi0vLyBUZXN0cyBHVEVTVF9BRERfUkVGRVJFTkNFXy4KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0QWRkUmVmZXJlbmNlKCkg
ewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfQUREX1JFRkVSRU5DRV8oVDIp
PigpOwotfQotCi1URVNUKEFkZFJlZmVyZW5jZVRlc3QsIE1hY3JvVmVyc2lvbikgewotICBUZXN0
R1Rlc3RBZGRSZWZlcmVuY2U8aW50JiwgaW50PigpOwotICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8
Y29uc3QgY2hhciYsIGNvbnN0IGNoYXImPigpOwotfQotCiAvLyBUZXN0cyBHVEVTVF9SRUZFUkVO
Q0VfVE9fQ09OU1RfLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgogdm9p
ZCBUZXN0R1Rlc3RSZWZlcmVuY2VUb0NvbnN0KCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVh
bDxUMSwgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUMik+KCk7CisgIHN0YXRpY19hc3NlcnQo
c3RkOjppc19zYW1lPFQxLCBHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfKFQyKT46OnZhbHVlLAor
ICAgICAgICAgICAgICAgICJHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfIGZhaWxlZC4iKTsKIH0K
IAogVEVTVChHVGVzdFJlZmVyZW5jZVRvQ29uc3RUZXN0LCBXb3JrcykgewpAQCAtNzUwOCwzNSAr
NzMwNiw2IEBAIFRFU1QoR1Rlc3RSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKICAgVGVz
dEdUZXN0UmVmZXJlbmNlVG9Db25zdDxjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHN0ZDo6c3Ry
aW5nJj4oKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBJbXBsaWNpdGx5Q29udmVydGlibGU8VDEsIFQy
Pjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuCi1URVNUKEltcGxpY2l0bHlDb252
ZXJ0aWJsZVRlc3QsIFZhbHVlSXNDb21waWxlVGltZUNvbnN0YW50KSB7Ci0gIEdURVNUX0NPTVBJ
TEVfQVNTRVJUXygoSW1wbGljaXRseUNvbnZlcnRpYmxlPGludCwgaW50Pjo6dmFsdWUpLCBjb25z
dF90cnVlKTsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKCghSW1wbGljaXRseUNvbnZlcnRpYmxl
PHZvaWQqLCBpbnQqPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfZmFs
c2UpOwotfQotCi0vLyBUZXN0cyB0aGF0IEltcGxpY2l0bHlDb252ZXJ0aWJsZTxUMSwgVDI+Ojp2
YWx1ZSBpcyB0cnVlIHdoZW4gVDEgY2FuCi0vLyBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBU
Mi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJc1RydWVXaGVuQ29udmVy
dGlibGUpIHsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQsIGRvdWJs
ZT46OnZhbHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8ZG91Ymxl
LCBpbnQ+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGlu
dCosIHZvaWQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJs
ZTxpbnQqLCBjb25zdCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlD
b252ZXJ0aWJsZTxDb252ZXJzaW9uSGVscGVyRGVyaXZlZCYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQ29udmVyc2lvbkhlbHBlckJhc2UmPjo6dmFsdWUpKTsK
LSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBDb252ZXJzaW9uSGVs
cGVyQmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9u
SGVscGVyQmFzZT46OnZhbHVlKSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSW1wbGljaXRseUNvbnZl
cnRpYmxlPFQxLCBUMj46OnZhbHVlIGlzIGZhbHNlIHdoZW4gVDEKLS8vIGNhbm5vdCBiZSBpbXBs
aWNpdGx5IGNvbnZlcnRlZCB0byBUMi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVzdCwg
VmFsdWVJc0ZhbHNlV2hlbk5vdENvbnZlcnRpYmxlKSB7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGlj
aXRseUNvbnZlcnRpYmxlPGRvdWJsZSwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9GQUxTRSgo
SW1wbGljaXRseUNvbnZlcnRpYmxlPHZvaWQqLCBpbnQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZB
TFNFKChJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgaW50KiwgaW50Kj46OnZhbHVlKSk7Ci0g
IEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPENvbnZlcnNpb25IZWxwZXJCYXNl
JiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVyc2lvbkhlbHBl
ckRlcml2ZWQmPjo6dmFsdWUpKTsKLX0KIAogLy8gVGVzdHMgSXNDb250YWluZXJUZXN0LgogCkBA
IC03NTU1LDcgKzczMjQsNiBAQCBURVNUKElzQ29udGFpbmVyVGVzdFRlc3QsIFdvcmtzRm9yQ29u
dGFpbmVyKSB7CiAgICAgICAgICAgICBzaXplb2YoSXNDb250YWluZXJUZXN0PHN0ZDo6bWFwPGlu
dCwgZG91YmxlPiA+KDApKSk7CiB9CiAKLSNpZiBHVEVTVF9MQU5HX0NYWDExCiBzdHJ1Y3QgQ29u
c3RPbmx5Q29udGFpbmVyV2l0aFBvaW50ZXJJdGVyYXRvciB7CiAgIHVzaW5nIGNvbnN0X2l0ZXJh
dG9yID0gaW50KjsKICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKQEAgLTc1NzcsNyAr
NzM0NSw2IEBAIFRFU1QoSXNDb250YWluZXJUZXN0VGVzdCwgQ29uc3RPbmx5Q29udGFpbmVyKSB7
CiAgIEVYUEVDVF9FUShzaXplb2YoSXNDb250YWluZXIpLAogICAgICAgICAgICAgc2l6ZW9mKElz
Q29udGFpbmVyVGVzdDxDb25zdE9ubHlDb250YWluZXJXaXRoQ2xhc3NJdGVyYXRvcj4oMCkpKTsK
IH0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQogCiAvLyBUZXN0cyBJc0hhc2hUYWJsZS4K
IHN0cnVjdCBBSGFzaFRhYmxlIHsKQEAgLTc1OTAsMTMgKzczNTcsOCBAQCBzdHJ1Y3QgTm90UmVh
bGx5QUhhc2hUYWJsZSB7CiBURVNUKElzSGFzaFRhYmxlLCBCYXNpYykgewogICBFWFBFQ1RfVFJV
RSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8QUhhc2hUYWJsZT46OnZhbHVlKTsKICAg
RVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxOb3RSZWFsbHlBSGFz
aFRhYmxlPjo6dmFsdWUpOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKICAgRVhQRUNUX0ZBTFNFKHRl
c3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxzdGQ6OnZlY3RvcjxpbnQ+Pjo6dmFsdWUpOwog
ICBFWFBFQ1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8c3RkOjp1bm9yZGVy
ZWRfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKLSNpZiBH
VEVTVF9IQVNfSEFTSF9TRVRfCi0gIEVYUEVDVF9UUlVFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hh
c2hUYWJsZTxfX2dudV9jeHg6Omhhc2hfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdU
RVNUX0hBU19IQVNIX1NFVF8KIH0KIAogLy8gVGVzdHMgQXJyYXlFcSgpLgpAQCAtNzc0Niw2ICs3
NTA4LDIyMSBAQCBURVNUKE5hdGl2ZUFycmF5VGVzdCwgV29ya3NGb3JUd29EaW1lbnNpb25hbEFy
cmF5KSB7CiAgIEVYUEVDVF9FUShhLCBuYS5iZWdpbigpKTsKIH0KIAorLy8gSW5kZXhTZXF1ZW5j
ZQorVEVTVChJbmRleFNlcXVlbmNlLCBNYWtlSW5kZXhTZXF1ZW5jZSkgeworICB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6SW5kZXhTZXF1ZW5jZTsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
Ok1ha2VJbmRleFNlcXVlbmNlOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8
SW5kZXhTZXF1ZW5jZTw+LCBNYWtlSW5kZXhTZXF1ZW5jZTwwPjo6dHlwZT46OnZhbHVlKSk7Cisg
IEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDA+LCBNYWtl
SW5kZXhTZXF1ZW5jZTwxPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAg
KHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDAsIDE+LCBNYWtlSW5kZXhTZXF1ZW5jZTwyPjo6
dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKCgKKyAgICAgIHN0ZDo6aXNfc2FtZTxJbmRl
eFNlcXVlbmNlPDAsIDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPjo6dHlwZT46OnZhbHVlKSk7
CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfYmFzZV9vZjxJbmRleFNlcXVlbmNlPDAs
IDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPj46OnZhbHVlKSk7Cit9CisKKy8vIEVsZW1Gcm9t
TGlzdAorVEVTVChFbGVtRnJvbUxpc3QsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpFbGVtRnJvbUxpc3Q7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxp
bnQsIEVsZW1Gcm9tTGlzdDwwLCBpbnQsIGRvdWJsZSwgY2hhcj46OnR5cGU+Ojp2YWx1ZSkpOwor
ICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8ZG91YmxlLCBFbGVtRnJvbUxpc3Q8
MSwgaW50LCBkb3VibGUsIGNoYXI+Ojp0eXBlPjo6dmFsdWUpKTsKKyAgRVhQRUNUX1RSVUUoCisg
ICAgICAoc3RkOjppc19zYW1lPGNoYXIsIEVsZW1Gcm9tTGlzdDwyLCBpbnQsIGRvdWJsZSwgY2hh
cj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgoCisgICAgICBzdGQ6OmlzX3NhbWU8
Y2hhciwgRWxlbUZyb21MaXN0PDcsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciwgaW50LCBpbnQsIGlu
dCwgaW50Pjo6dHlwZT46OnZhbHVlKSk7Cit9CisKKy8vIEZsYXRUdXBsZQorVEVTVChGbGF0VHVw
bGUsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAg
RmxhdFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4gdHVwbGUgPSB7fTsKKyAgRVhQRUNU
X0VRKDAsIHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDAuMCwgdHVwbGUuR2V0PDE+KCkp
OworICBFWFBFQ1RfRVEobnVsbHB0ciwgdHVwbGUuR2V0PDI+KCkpOworCisgIHR1cGxlID0gRmxh
dFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4oCisgICAgICB0ZXN0aW5nOjppbnRlcm5h
bDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIDcsIDMuMiwgIkZvbyIpOworICBFWFBFQ1RfRVEo
NywgdHVwbGUuR2V0PDA+KCkpOworICBFWFBFQ1RfRVEoMy4yLCB0dXBsZS5HZXQ8MT4oKSk7Cisg
IEVYUEVDVF9FUShzdGQ6OnN0cmluZygiRm9vIiksIHR1cGxlLkdldDwyPigpKTsKKworICB0dXBs
ZS5HZXQ8MT4oKSA9IDUuMTsKKyAgRVhQRUNUX0VRKDUuMSwgdHVwbGUuR2V0PDE+KCkpOworfQor
CituYW1lc3BhY2Ugeworc3RkOjpzdHJpbmcgQWRkSW50VG9TdHJpbmcoaW50IGksIGNvbnN0IHN0
ZDo6c3RyaW5nJiBzKSB7CisgIHJldHVybiBzICsgc3RkOjp0b19zdHJpbmcoaSk7Cit9Cit9ICAv
LyBuYW1lc3BhY2UKKworVEVTVChGbGF0VHVwbGUsIEFwcGx5KSB7CisgIHVzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1cGxlPGludCwgc3RkOjpzdHJpbmc+IHR1
cGxle3Rlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RUYWd7fSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsICJIZWxsbyJ9OworCisgIC8vIExhbWJkYS4K
KyAgRVhQRUNUX1RSVUUodHVwbGUuQXBwbHkoW10oaW50IGksIGNvbnN0IHN0ZDo6c3RyaW5nJiBz
KSAtPiBib29sIHsKKyAgICByZXR1cm4gaSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHMuc2l6ZSgpKTsK
KyAgfSkpOworCisgIC8vIEZ1bmN0aW9uLgorICBFWFBFQ1RfRVEodHVwbGUuQXBwbHkoQWRkSW50
VG9TdHJpbmcpLCAiSGVsbG81Iik7CisKKyAgLy8gTXV0YXRpbmcgb3BlcmF0aW9ucy4KKyAgdHVw
bGUuQXBwbHkoW10oaW50JiBpLCBzdGQ6OnN0cmluZyYgcykgeworICAgICsraTsKKyAgICBzICs9
IHM7CisgIH0pOworICBFWFBFQ1RfRVEodHVwbGUuR2V0PDA+KCksIDYpOworICBFWFBFQ1RfRVEo
dHVwbGUuR2V0PDE+KCksICJIZWxsb0hlbGxvIik7Cit9CisKK3N0cnVjdCBDb25zdHJ1Y3Rpb25D
b3VudGluZyB7CisgIENvbnN0cnVjdGlvbkNvdW50aW5nKCkgeyArK2RlZmF1bHRfY3Rvcl9jYWxs
czsgfQorICB+Q29uc3RydWN0aW9uQ291bnRpbmcoKSB7ICsrZHRvcl9jYWxsczsgfQorICBDb25z
dHJ1Y3Rpb25Db3VudGluZyhjb25zdCBDb25zdHJ1Y3Rpb25Db3VudGluZyYpIHsgKytjb3B5X2N0
b3JfY2FsbHM7IH0KKyAgQ29uc3RydWN0aW9uQ291bnRpbmcoQ29uc3RydWN0aW9uQ291bnRpbmcm
Jikgbm9leGNlcHQgeyArK21vdmVfY3Rvcl9jYWxsczsgfQorICBDb25zdHJ1Y3Rpb25Db3VudGlu
ZyYgb3BlcmF0b3I9KGNvbnN0IENvbnN0cnVjdGlvbkNvdW50aW5nJikgeworICAgICsrY29weV9h
c3NpZ25tZW50X2NhbGxzOworICAgIHJldHVybiAqdGhpczsKKyAgfQorICBDb25zdHJ1Y3Rpb25D
b3VudGluZyYgb3BlcmF0b3I9KENvbnN0cnVjdGlvbkNvdW50aW5nJiYpIG5vZXhjZXB0IHsKKyAg
ICArK21vdmVfYXNzaWdubWVudF9jYWxsczsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBz
dGF0aWMgdm9pZCBSZXNldCgpIHsKKyAgICBkZWZhdWx0X2N0b3JfY2FsbHMgPSAwOworICAgIGR0
b3JfY2FsbHMgPSAwOworICAgIGNvcHlfY3Rvcl9jYWxscyA9IDA7CisgICAgbW92ZV9jdG9yX2Nh
bGxzID0gMDsKKyAgICBjb3B5X2Fzc2lnbm1lbnRfY2FsbHMgPSAwOworICAgIG1vdmVfYXNzaWdu
bWVudF9jYWxscyA9IDA7CisgIH0KKworICBzdGF0aWMgaW50IGRlZmF1bHRfY3Rvcl9jYWxsczsK
KyAgc3RhdGljIGludCBkdG9yX2NhbGxzOworICBzdGF0aWMgaW50IGNvcHlfY3Rvcl9jYWxsczsK
KyAgc3RhdGljIGludCBtb3ZlX2N0b3JfY2FsbHM7CisgIHN0YXRpYyBpbnQgY29weV9hc3NpZ25t
ZW50X2NhbGxzOworICBzdGF0aWMgaW50IG1vdmVfYXNzaWdubWVudF9jYWxsczsKK307CisKK2lu
dCBDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzID0gMDsKK2ludCBDb25z
dHJ1Y3Rpb25Db3VudGluZzo6ZHRvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRp
bmc6OmNvcHlfY3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVf
Y3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfYXNzaWdubWVu
dF9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9j
YWxscyA9IDA7CisKK1RFU1QoRmxhdFR1cGxlLCBDb25zdHJ1Y3RvckNhbGxzKSB7CisgIHVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgLy8gRGVmYXVsdCBjb25zdHJ1Y3Rp
b24uCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7IEZsYXRUdXBsZTxDb25z
dHJ1Y3Rpb25Db3VudGluZz4gdHVwbGU7IH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50
aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291
bnRpbmc6OmR0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6
OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6
bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpj
b3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRp
bmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBjb25zdHJ1Y3Rpb24u
CisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7CisgICAgQ29uc3RydWN0aW9u
Q291bnRpbmcgZWxlbTsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291bnRpbmc+IHR1cGxl
eworICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIGVs
ZW19OworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9y
X2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxz
LCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMs
IDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywg
MCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2Nh
bGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1l
bnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgY29uc3RydWN0aW9uLgorICBDb25zdHJ1Y3Rpb25D
b3VudGluZzo6UmVzZXQoKTsKKyAgeworICAgIEZsYXRUdXBsZTxDb25zdHJ1Y3Rpb25Db3VudGlu
Zz4gdHVwbGV7CisgICAgICAgIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RU
YWd7fSwgQ29uc3RydWN0aW9uQ291bnRpbmd7fX07CisgIH0KKyAgRVhQRUNUX0VRKENvbnN0cnVj
dGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3Ry
dWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9u
Q291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25D
b3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNv
dW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0
aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisKKyAgLy8gQ29weSBhc3Np
Z25tZW50LgorICAvLyBUT0RPKG9mYXRzKTogaXQgc2hvdWxkIGJlIHRlc3RpbmcgYXNzaWdubWVu
dCBvcGVyYXRvciBvZiBGbGF0VHVwbGUsIG5vdCBpdHMKKyAgLy8gZWxlbWVudHMKKyAgQ29uc3Ry
dWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7CisgIHsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9u
Q291bnRpbmc+IHR1cGxlOworICAgIENvbnN0cnVjdGlvbkNvdW50aW5nIGVsZW07CisgICAgdHVw
bGUuR2V0PDA+KCkgPSBlbGVtOworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50
aW5nOjpkdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpj
b3B5X2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1v
dmVfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29w
eV9hc3NpZ25tZW50X2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5n
Ojptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgYXNzaWdubWVudC4KKyAg
Ly8gVE9ETyhvZmF0cyk6IGl0IHNob3VsZCBiZSB0ZXN0aW5nIGFzc2lnbm1lbnQgb3BlcmF0b3Ig
b2YgRmxhdFR1cGxlLCBub3QgaXRzCisgIC8vIGVsZW1lbnRzCisgIENvbnN0cnVjdGlvbkNvdW50
aW5nOjpSZXNldCgpOworICB7CisgICAgRmxhdFR1cGxlPENvbnN0cnVjdGlvbkNvdW50aW5nPiB0
dXBsZTsKKyAgICB0dXBsZS5HZXQ8MD4oKSA9IENvbnN0cnVjdGlvbkNvdW50aW5ne307CisgIH0K
KyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDIp
OworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOworICBF
WFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVY
UEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQ
RUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOwor
ICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywg
MSk7CisKKyAgQ29uc3RydWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7Cit9CisKK1RFU1QoRmxhdFR1
cGxlLCBNYW55VHlwZXMpIHsKKyAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZsYXRUdXBsZTsK
KworICAvLyBJbnN0YW50aWF0ZSBGbGF0VHVwbGUgd2l0aCAyNTcgaW50cy4KKyAgLy8gVGVzdHMg
c2hvdyB0aGF0IHdlIGNhbiBkbyBpdCB3aXRoIHRob3VzYW5kcyBvZiBlbGVtZW50cywgYnV0IHZl
cnkgbG9uZworICAvLyBjb21waWxlIHRpbWVzIG1ha2VzIGl0IHVudXN1aXRhYmxlIGZvciB0aGlz
IHRlc3QuCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UOCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQsIGludCwKKyNkZWZpbmUgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVT
VF9GTEFUX1RVUExFX0lOVDggR1RFU1RfRkxBVF9UVVBMRV9JTlQ4CisjZGVmaW5lIEdURVNUX0ZM
QVRfVFVQTEVfSU5UMzIgR1RFU1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVTVF9GTEFUX1RVUExFX0lO
VDE2CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQz
MiBHVEVTVF9GTEFUX1RVUExFX0lOVDMyCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UMTI4
IEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQ2NAorI2RlZmluZSBH
VEVTVF9GTEFUX1RVUExFX0lOVDI1NiBHVEVTVF9GTEFUX1RVUExFX0lOVDEyOCBHVEVTVF9GTEFU
X1RVUExFX0lOVDEyOAorCisgIC8vIExldCdzIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBoYXZlIGEg
dmVyeSBsb25nIGxpc3Qgb2YgdHlwZXMgd2l0aG91dCBibG93aW5nCisgIC8vIHVwIHRoZSB0ZW1w
bGF0ZSBpbnN0YW50aWF0aW9uIGRlcHRoLgorICBGbGF0VHVwbGU8R1RFU1RfRkxBVF9UVVBMRV9J
TlQyNTYgaW50PiB0dXBsZTsKKworICB0dXBsZS5HZXQ8MD4oKSA9IDc7CisgIHR1cGxlLkdldDw5
OT4oKSA9IDE3OworICB0dXBsZS5HZXQ8MjU2PigpID0gMTAwMDsKKyAgRVhQRUNUX0VRKDcsIHR1
cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDE3LCB0dXBsZS5HZXQ8OTk+KCkpOworICBFWFBF
Q1RfRVEoMTAwMCwgdHVwbGUuR2V0PDI1Nj4oKSk7Cit9CisKIC8vIFRlc3RzIFNraXBQcmVmaXgo
KS4KIAogVEVTVChTa2lwUHJlZml4VGVzdCwgU2tpcHNXaGVuUHJlZml4TWF0Y2hlcykgewpAQCAt
Nzc3MywyMyArNzc1MCwzNSBAQCBURVNUKFNraXBQcmVmaXhUZXN0LCBEb2VzTm90U2tpcFdoZW5Q
cmVmaXhEb2VzTm90TWF0Y2gpIHsKIH0KIAogLy8gVGVzdHMgYWRfaG9jX3Rlc3RfcmVzdWx0KCku
CitURVNUKEFkSG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclVuaXRUZXN0RG9l
c05vdFNob3dGYWlsdXJlKSB7CisgIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVz
dWx0ID0KKyAgICAgIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVz
dF9yZXN1bHQoKTsKKyAgRVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKK30KIAot
Y2xhc3MgQWRIb2NUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90
ZWN0ZWQ6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Ci0gICAgRkFJTCgpIDw8ICJB
IGZhaWx1cmUgaGFwcGVuZWQgaW5zaWRlIFNldFVwVGVzdENhc2UoKS4iOwotICB9CitjbGFzcyBE
eW5hbWljVW5pdFRlc3RGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CisKK2NsYXNz
IER5bmFtaWNUZXN0IDogcHVibGljIER5bmFtaWNVbml0VGVzdEZpeHR1cmUgeworICB2b2lkIFRl
c3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRSh0cnVlKTsgfQogfTsKIAotVEVTVF9GKEFk
SG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdEZvclRlc3RDYXNlU2hvd3NGYWlsdXJl
KSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0gdGVzdGluZzo6
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3RfY2FzZSgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+YWRfaG9jX3Rlc3RfcmVzdWx0KCk7Ci0gIEVY
UEVDVF9UUlVFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKLX0KK2F1dG8qIGR5bmFtaWNfdGVzdCA9
IHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAiRHluYW1pY1VuaXRUZXN0Rml4dHVyZSIsICJE
eW5hbWljVGVzdCIsICJUWVBFIiwgIlZBTFVFIiwgX19GSUxFX18sCisgICAgX19MSU5FX18sIFtd
KCkgLT4gRHluYW1pY1VuaXRUZXN0Rml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0OyB9
KTsKKworVEVTVChSZWdpc3RlclRlc3QsIFdhc1JlZ2lzdGVyZWQpIHsKKyAgYXV0byogdW5pdHRl
c3QgPSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKKyAgZm9yIChpbnQgaSA9IDA7
IGkgPCB1bml0dGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBhdXRv
KiB0ZXN0cyA9IHVuaXR0ZXN0LT5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKHRlc3RzLT5uYW1l
KCkgIT0gc3RkOjpzdHJpbmcoIkR5bmFtaWNVbml0VGVzdEZpeHR1cmUiKSkgY29udGludWU7Cisg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0cy0+dG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsK
KyAgICAgIGlmICh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPm5hbWUoKSAhPSBzdGQ6OnN0cmluZygi
RHluYW1pY1Rlc3QiKSkgY29udGludWU7CisgICAgICAvLyBGb3VuZCBpdC4KKyAgICAgIEVYUEVD
VF9TVFJFUSh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPnZhbHVlX3BhcmFtKCksICJWQUxVRSIpOwor
ICAgICAgRVhQRUNUX1NUUkVRKHRlc3RzLT5HZXRUZXN0SW5mbyhqKS0+dHlwZV9wYXJhbSgpLCAi
VFlQRSIpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQogCi1URVNUX0YoQWRIb2NUZXN0UmVz
dWx0VGVzdCwgQWRIb2NUZXN0UmVzdWx0VGVzdEZvclVuaXRUZXN0RG9lc05vdFNob3dGYWlsdXJl
KSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0KLSAgICAgIHRl
c3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKTsKLSAg
RVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsKKyAgRkFJTCgpIDw8ICJEaWRuJ3Qg
ZmluZCB0aGUgdGVzdCEiOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwppbmRleCBhMzhlYmFjODM5ZjdiNGZj
ZjcxMDkzNTFjNGQzZmVjZGUyNzE1YjBhLi4xOWFhMjUyYTMwMTBmZDU2ZWFiZTM3NjgzMDhhODBk
MmRjNmRiZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRmaWxlMV90ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwpAQCAtMzQsMTIgKzM0LDggQEAKIAogY2xhc3Mg
UHJvcGVydHlPbmUgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlNldFVwUHJvcCIsIDEpOwot
ICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBSZWNvcmRQcm9wZXJ0eSgiVGVh
ckRvd25Qcm9wIiwgMSk7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgUmVjb3JkUHJv
cGVydHkoIlNldFVwUHJvcCIsIDEpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IFJl
Y29yZFByb3BlcnR5KCJUZWFyRG93blByb3AiLCAxKTsgfQogfTsKIAogVEVTVF9GKFByb3BlcnR5
T25lLCBUZXN0U29tZVByb3BlcnRpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKaW5kZXggYWZhZjE1YTVk
YzMyMzE1ZDUxYWM3YTBhNTU1ZjgzY2FiNDFlZjc0Zi4uZjlhMmE2ZTk4NDZkZGNkOTVkYmRiODhk
OGM3NGQwN2M0YmM5ZGZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKQEAgLTM0LDEyICszNCw4IEBACiAK
IGNsYXNzIFByb3BlcnR5VHdvIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3Ai
LCAyKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgUmVjb3JkUHJvcGVy
dHkoIlRlYXJEb3duUHJvcCIsIDIpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IFJl
Y29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAyKTsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJp
ZGUgeyBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9wIiwgMik7IH0KIH07CiAKIFRFU1RfRihQ
cm9wZXJ0eVR3bywgVGVzdFNvbWVQcm9wZXJ0aWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weQppbmRleCAyYzAz
MWZmOGRiYTUxMmMyZTA0ZTI3MDUzNGUyOWZjZWJlODg2Y2Y5Li5hYzY2ZmViNjY3MTllNjJjZmEx
NmM3OWExN2Y2M2RlOTkwZjI3N2MxIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkKQEAgLTQyLDggKzQyLDggQEAg
R1RFU1RfT1VUUFVUXzJfVEVTVCA9ICJndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8iCiAKIEVYUEVD
VEVEX1hNTF8xID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0
ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFt
ZT0iUHJvcGVydHlPbmUiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9y
cz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIg
c3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgorICA8dGVzdHN1
aXRlIG5hbWU9IlByb3BlcnR5T25lIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAi
IGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29t
cGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlPbmUiPgog
ICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZh
bHVlPSIxIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1
ZT0iMSIvPgpAQCAtNTYsOCArNTYsOCBAQCBFWFBFQ1RFRF9YTUxfMSA9ICIiIjw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiAKIEVYUEVDVEVEX1hNTF8yID0gIiIiPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBm
YWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlUd28iIHRlc3Rz
PSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHRpbWU9Iioi
IGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5VHdv
IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21l
UHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgogICAgICAgPHByb3BlcnRpZXM+CiAg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxw
cm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2YWx1ZT0iMiIvPgpAQCAtMTExLDExICsx
MTEsNiBAQCBjbGFzcyBHVGVzdFhNTE91dEZpbGVzVGVzdChndGVzdF94bWxfdGVzdF91dGlscy5H
VGVzdFhNTFRlc3RDYXNlKToKICAgICBzZWxmLmFzc2VydF8ocC5leGl0ZWQpCiAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMCwgcC5leGl0X2NvZGUpCiAKLSAgICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNl
cyB0aGUgYnVpbHQgdGVzdCBiaW5hcnkgdG8gYmUKLSAgICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1s
X291dGZpbGVzX3Rlc3RfIGluc3RlYWQgb2YKLSAgICAjICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rl
c3RfLiAgVG8gYWNjb3VudCBmb3IgdGhpcyBwb3NzaWJpbGl0eSwgd2UKLSAgICAjICAgYWxsb3cg
Ym90aCBuYW1lcyBpbiB0aGUgZm9sbG93aW5nIGNvZGUuICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMK
LSAgICAjICAgd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0
cHV0X2ZpbGVfbmFtZTEgPSB0ZXN0X25hbWUgKyAiLnhtbCIKICAgICBvdXRwdXRfZmlsZTEgPSBv
cy5wYXRoLmpvaW4oc2VsZi5vdXRwdXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0
cHV0X2ZpbGVfbmFtZTIgPSAnbHQtJyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Qu
cHkKaW5kZXggZmFlZGQ0ZTZjZTcyZGFiZWY3ODZhMzEyZWY0YWVjYTVjNWQyOWJmYS4uZWFkZTdh
YWM4OGY1OWU2YmI2ZjViYTM0MTgyOGJhZTQ2ZmNkMDA2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdC5weQpA
QCAtNjUsMjEgKzY1LDIxIEBAIGVsc2U6CiAgIHN5cy5hcmd2LnJlbW92ZShOT19TVEFDS1RSQUNF
X1NVUFBPUlRfRkxBRykKIAogRVhQRUNURURfTk9OX0VNUFRZX1hNTCA9ICIiIjw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08dGVzdHN1aXRlcyB0ZXN0cz0iMjMiIGZhaWx1
cmVzPSI0IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5h
bWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJT
dWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVu
IiB0aW1lPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+Cis8dGVzdHN1aXRlcyB0ZXN0
cz0iMjYiIGZhaWx1cmVzPSI1IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KKyAgPHRlc3Rz
dWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxl
ZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAg
IDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVk
IiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAg
PC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iRmFpbGVkVGVzdCIgdGVzdHM9IjEiIGZh
aWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRl
c3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IkZhaWxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0i
MSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNv
bXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgog
ICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIi
IHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgogRXhwZWN0
ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCiAgIDIlKHN0YWNrKXNdXT48L2ZhaWx1
cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
TWl4ZWRSZXN1bHRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIxIiBlcnJv
cnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJy
dW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+Ci0gICAgPHRlc3RjYXNl
IG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3Vs
dFRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9Ik1peGVkUmVzdWx0VGVzdCIgdGVzdHM9IjMiIGZh
aWx1cmVzPSIxIiBkaXNhYmxlZD0iMSIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0
aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4i
IHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iTWl4
ZWRSZXN1bHRUZXN0Ii8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIg
cmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJNaXhl
ZFJlc3VsdFRlc3QiPgogICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KiYjeDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczomI3gw
QTsgIDEmI3gwQTsgIDIiIHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KgogRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAxCkBAIC04OSwx
MTYgKzg5LDE0NyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6CiAgIDIKICAg
MyUoc3RhY2spc11dPjwvZmFpbHVyZT4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBu
YW1lPSJESVNBQkxFRF90ZXN0IiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJN
aXhlZFJlc3VsdFRlc3QiLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdCIgc3Rh
dHVzPSJub3RydW4iIHJlc3VsdD0ic3VwcHJlc3NlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBj
bGFzc25hbWU9Ik1peGVkUmVzdWx0VGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0
ZSBuYW1lPSJYbWxRdW90aW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRh
IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVzdCI+CisgIDx0
ZXN0c3VpdGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRhIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJj
b21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJYbWxRdW90aW5nVGVz
dCI+CiAgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5j
YzoqJiN4MEE7RmFpbGVkJiN4MEE7WE1MIG91dHB1dDogJmx0Oz94bWwgZW5jb2Rpbmc9JnF1b3Q7
dXRmLTgmcXVvdDsmZ3Q7Jmx0O3RvcCZndDsmbHQ7IVtDREFUQVtjZGF0YSB0ZXh0XV0mZ3Q7Jmx0
Oy90b3AmZ3Q7IiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNj
OioKIEZhaWxlZAogWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9InV0Zi04Ij48dG9wPjwhW0NE
QVRBW2NkYXRhIHRleHRdXT5dXSZndDs8IVtDREFUQVs8L3RvcD4lKHN0YWNrKXNdXT48L2ZhaWx1
cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
SW52YWxpZENoYXJhY3RlcnNUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnZhbGlkQ2hhcmFj
dGVyc0luTWVzc2FnZSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iSW52YWxpZENo
YXJhY3RlcnNUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc1Rlc3Qi
IHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0i
MCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSW52YWxpZENo
YXJhY3RlcnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0i
KiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCI+CiAgICAg
ICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7
RmFpbGVkJiN4MEE7SW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdIiB0eXBlPSIiPjwh
W0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEZhaWxlZAogSW52YWxpZCBj
aGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdJShzdGFjaylzXV0+PC9mYWlsdXJlPgogICAgIDwvdGVz
dGNhc2U+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkRpc2FibGVkVGVzdCIg
dGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMSIgZXJyb3JzPSIwIiB0aW1lPSIqIj4K
LSAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJEaXNhYmxlZFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1l
PSJEaXNhYmxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjEiIHNraXBw
ZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgcmVzdWx0PSJzdXBw
cmVzc2VkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iRGlzYWJsZWRUZXN0Ii8+
CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVz
dCIgdGVzdHM9IjQiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIq
IiBTZXRVcFRlc3RDYXNlPSJ5ZXMiIFRlYXJEb3duVGVzdENhc2U9ImF5ZSI+Ci0gICAgPHRlc3Rj
YXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQ
cm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IlNraXBwZWRUZXN0IiB0
ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIyIiBlcnJvcnM9IjAi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWQiIHN0
YXR1cz0icnVuIiByZXN1bHQ9InNraXBwZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTa2lwcGVkVGVzdCI+CisgICAgICA8c2tpcHBlZCBtZXNzYWdlPSJndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7Ij48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0
ZXN0Xy5jYzoqCislKHN0YWNrKXNdXT48L3NraXBwZWQ+CisgICAgPC90ZXN0Y2FzZT4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iU2tpcHBlZFdpdGhNZXNzYWdlIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJz
a2lwcGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU2tpcHBlZFRlc3QiPgor
ICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFb
Q0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGlj
ZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShzdGFjaylzXV0+PC9za2lwcGVkPgorICAg
IDwvdGVzdGNhc2U+CisgICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWRBZnRlckZhaWx1cmUiIHN0
YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFz
c25hbWU9IlNraXBwZWRUZXN0Ij4KKyAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9v
dXRwdXRfdW5pdHRlc3RfLmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1
ZXM6JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRf
dW5pdHRlc3RfLmNjOioKK0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKKyAgMQor
ICAyJShzdGFjaylzXV0+PC9mYWlsdXJlPgorICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVs
bCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3Qu
JShzdGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVzdGNhc2U+CisKKyAgPC90ZXN0c3VpdGU+
CisgIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0IiB0ZXN0cz0iNCIgZmFp
bHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRp
bWVzdGFtcD0iKiIgU2V0VXBUZXN0U3VpdGU9InllcyIgVGVhckRvd25UZXN0U3VpdGU9ImF5ZSI+
CisgICAgPHRlc3RjYXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJj
b21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29y
ZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJr
ZXlfMSIgdmFsdWU9IjEiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgot
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9
IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgICA8dGVzdGNhc2UgbmFt
ZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGlt
ZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAg
ICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV9pbnQiIHZhbHVl
PSIxIi8+CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iVGhyZWVQcm9wZXJ0aWVzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1l
PSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUaHJlZVByb3Bl
cnRpZXMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAgICAgICA8cHJvcGVydGll
cz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV8xIiB2YWx1ZT0iMSIvPgogICAgICAgICA8
cHJvcGVydHkgbmFtZT0ia2V5XzIiIHZhbHVlPSIyIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1l
PSJrZXlfMyIgdmFsdWU9IjMiLz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNl
PgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBz
dGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgor
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAg
IDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjIiLz4KICAgICAgIDwvcHJvcGVydGllcz4K
ICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJOb0Zp
eHR1cmVUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAi
IHRpbWU9IioiPgotICAgICA8dGVzdGNhc2UgbmFtZT0iUmVjb3JkUHJvcGVydHkiIHN0YXR1cz0i
cnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICA8dGVzdHN1aXRlIG5h
bWU9Ik5vRml4dHVyZVRlc3QiIHRlc3RzPSIzIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNr
aXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICAgPHRlc3Rj
YXNlIG5hbWU9IlJlY29yZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAg
ICA8cHJvcGVydGllcz4KICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZhbHVlPSIxIi8+
CiAgICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2Ug
bmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVydHkiIHN0
YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVz
dGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFsdWVkUHJvcGVy
dHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9pbnQiIHZhbHVlPSIxIi8+CiAgICAg
ICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgotICAgICA8dGVzdGNhc2UgbmFtZT0i
RXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1
cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgorICAgICA8dGVzdGNh
c2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVy
dHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0eV9zdHJpbmciIHZhbHVlPSIxIi8+CiAg
ICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAg
PHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0IiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5h
bWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBz
dGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+
Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0
c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAi
IGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVf
cGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3Rj
YXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3Ro
ZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkFub3Ro
ZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0
dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3Nu
YW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1
aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9
IlR5cGVkVGVzdC8wIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0i
MSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJp
YnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1l
PSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzAiIC8+CiAgIDwvdGVzdHN1
aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlR5cGVkVGVzdC8xIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVk
VGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBl
cnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhh
c1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0i
Y29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlwZWRUZXN0LzEi
IC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1l
dGVyaXplZFRlc3RDYXNlLzAiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVy
cm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJp
YnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2lu
Z2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCIgLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFy
YW09IioiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1w
PSIqIiBjbGFzc25hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiAvPgog
ICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6
ZWRUZXN0Q2FzZS8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUi
IHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlNpbmdsZS9U
eXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzEiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xl
L1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIq
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIg
Y2xhc3NuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMSIgLz4KICAgPC90
ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0ZXM+IiIiICUgeydzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBM
QVRFfQorPC90ZXN0c3VpdGVzPiIiIiAlIHsKKyAgICAnc3RhY2snOiBTVEFDS19UUkFDRV9URU1Q
TEFURQorfQogCiBFWFBFQ1RFRF9GSUxURVJFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMSIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiCiAgICAgICAgICAgICB0aW1lc3Rh
bXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0
ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MCIKLSAgICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRl
c3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1
cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIKKyAgICAgICAgICAgICBlcnJvcnM9IjAi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlN1Y2NlZWRzIiBz
dGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xh
c3NuYW1lPSJTdWNjZXNzZnVsVGVzdCIvPgogICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4i
IiIKIAogRVhQRUNURURfU0hBUkRFRF9URVNUX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRp
c2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVz
dHMiIGFkX2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVzdHN1aXRlIG5hbWU9IlN1Y2Nlc3NmdWxU
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9Iioi
IGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNz
ZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIg
ZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJT
dWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3Rh
bXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0
ZXN0c3VpdGUgbmFtZT0iTm9GaXh0dXJlVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICAgPHRlc3RjYXNlIG5hbWU9IlJlY29y
ZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0
Ij4KLSAgICAgICA8cHJvcGVydGllcz4KLSAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZh
bHVlPSIxIi8+Ci0gICAgICAgPC9wcm9wZXJ0aWVzPgotICAgICA8L3Rlc3RjYXNlPgorICA8dGVz
dHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiIFNldFVwVGVzdFN1aXRlPSJ5ZXMiIFRlYXJEb3duVGVzdFN1aXRlPSJheWUiPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29t
cGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRp
bmdUZXN0Ij4KKyAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5
X2ludCIgdmFsdWU9IjEiLz4KKyAgICAgIDwvcHJvcGVydGllcz4KKyAgICA8L3Rlc3RjYXNlPgog
ICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3Qi
IHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+
Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVl
UGFyYW1UZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9
Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIg
cmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5n
bGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVzPiIiIgog
Ci1FWFBFQ1RFRF9FTVBUWV9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorRVhQRUNURURfTk9fVEVTVF9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVzdHM9IjAiIGZhaWx1cmVzPSIwIiBkaXNh
YmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIgogICAgICAgICAgICAgdGltZXN0YW1wPSIqIiBu
YW1lPSJBbGxUZXN0cyI+Ci08L3Rlc3RzdWl0ZXM+IiIiCisgIDx0ZXN0c3VpdGUgbmFtZT0iTm9u
VGVzdFN1aXRlRmFpbHVyZSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgc2tp
cHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2Fz
ZSBuYW1lPSIiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0
YW1wPSIqIiBjbGFzc25hbWU9IiI+CisgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF9ub190
ZXN0X3VuaXR0ZXN0LmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X25vX3Rlc3RfdW5pdHRl
c3QuY2M6KgorRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgorICAxCisgIDIlKHN0
YWNrKXNdXT48L2ZhaWx1cmU+CisgICAgPC90ZXN0Y2FzZT4KKyAgPC90ZXN0c3VpdGU+Cis8L3Rl
c3RzdWl0ZXM+IiIiICUgeworICAgICdzdGFjayc6IFNUQUNLX1RSQUNFX1RFTVBMQVRFCit9CiAK
IEdURVNUX1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQ
YXRoKEdURVNUX1BST0dSQU1fTkFNRSkKIApAQCAtMjIxLDE0ICsyNTIsMTQgQEAgY2xhc3MgR1Rl
c3RYTUxPdXRwdXRVbml0VGVzdChndGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhNTFRlc3RDYXNl
KToKICAgICAgICIiIgogICAgICAgc2VsZi5fVGVzdFhtbE91dHB1dChHVEVTVF9QUk9HUkFNX05B
TUUsIEVYUEVDVEVEX05PTl9FTVBUWV9YTUwsIDEpCiAKLSAgZGVmIHRlc3RFbXB0eVhtbE91dHB1
dChzZWxmKToKKyAgZGVmIHRlc3ROb1Rlc3RYbWxPdXRwdXQoc2VsZik6CiAgICAgIiIiVmVyaWZp
ZXMgWE1MIG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBiaW5hcnkgd2l0aG91dCBhY3R1YWwgdGVz
dHMuCiAKLSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIGVtcHR5IFhN
TCBvdXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIFhNTCBvdXRwdXQgaXMgZXhwZWN0ZWQu
CisgICAgUnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGdlbmVyYXRlcyBhbiBYTUwgb3V0cHV0IGZv
ciBhIGJpbmFyeSB3aXRob3V0IHRlc3RzLAorICAgIGFuZCB0ZXN0cyB0aGF0IHRoZSBYTUwgb3V0
cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAgc2VsZi5fVGVzdFhtbE91dHB1dCgnZ3Rl
c3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX0VNUFRZX1hNTCwgMCkKKyAgICBzZWxmLl9U
ZXN0WG1sT3V0cHV0KCdndGVzdF9ub190ZXN0X3VuaXR0ZXN0JywgRVhQRUNURURfTk9fVEVTVF9Y
TUwsIDApCiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxmKToKICAgICAiIiJDaGVja3Mg
d2hldGhlciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUgWE1MIG91dHB1dCBpcyB2YWxp
ZC4KQEAgLTI2Niw3ICsyOTcsOCBAQCBjbGFzcyBHVGVzdFhNTE91dHB1dFVuaXRUZXN0KGd0ZXN0
X3htbF90ZXN0X3V0aWxzLkdUZXN0WE1MVGVzdENhc2UpOgogICAgICAgICAnZ3Rlc3Rfbm9fdGVz
dF91bml0dGVzdCcpCiAgICAgdHJ5OgogICAgICAgb3MucmVtb3ZlKG91dHB1dF9maWxlKQotICAg
IGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgZSA9IHN5cy5l
eGNfaW5mbygpWzFdCiAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVOT0VOVDoKICAgICAgICAg
cmFpc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfeG1sX291dHB1dF91bml0dGVzdF8uY2MKaW5kZXggMmVlODgzODAwNWVlZWMyMzU3MWJhZTM4
OWM3OTI2OThjMzBjNGQ1MC4uYzAwMzZhYWVmOWRmMjc2NTRhZTZhNmNlMWRlZDA3NjQyY2EyZDM5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjCkBAIC02Nyw2ICs2NywyMiBAQCBURVNUX0YoRGlzYWJs
ZWRUZXN0LCBESVNBQkxFRF90ZXN0X25vdF9ydW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVk
IGZhaWx1cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5vdCBiZSBydW4iOwogfQogCitjbGFzcyBT
a2lwcGVkVGVzdCA6IHB1YmxpYyBUZXN0IHsKK307CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tp
cHBlZCkgeworICBHVEVTVF9TS0lQKCk7Cit9CisKK1RFU1RfRihTa2lwcGVkVGVzdCwgU2tpcHBl
ZFdpdGhNZXNzYWdlKSB7CisgIEdURVNUX1NLSVAoKSA8PCAiSXQgaXMgZ29vZCBwcmFjdGljZSB0
byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuIjsKK30KKworVEVTVF9GKFNraXBwZWRUZXN0LCBT
a2lwcGVkQWZ0ZXJGYWlsdXJlKSB7CisgIEVYUEVDVF9FUSgxLCAyKTsKKyAgR1RFU1RfU0tJUCgp
IDw8ICJJdCBpcyBnb29kIHByYWN0aWNlIHRvIHRlbGwgd2h5IHlvdSBza2lwIGEgdGVzdC4iOwor
fQorCiBURVNUKE1peGVkUmVzdWx0VGVzdCwgU3VjY2VlZHMpIHsKICAgRVhQRUNUX0VRKDEsIDEp
OwogICBBU1NFUlRfRVEoMSwgMSk7CkBAIC05NCw4ICsxMTAsMTAgQEAgVEVTVChJbnZhbGlkQ2hh
cmFjdGVyc1Rlc3QsIEludmFsaWRDaGFyYWN0ZXJzSW5NZXNzYWdlKSB7CiAKIGNsYXNzIFByb3Bl
cnR5UmVjb3JkaW5nVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lk
IFNldFVwVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJTZXRVcFRlc3RDYXNlIiwgInllcyIp
OyB9Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5KCJU
ZWFyRG93blRlc3RDYXNlIiwgImF5ZSIpOyB9CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRl
KCkgeyBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBUZXN0U3VpdGUiLCAieWVzIik7IH0KKyAgc3RhdGlj
IHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3du
VGVzdFN1aXRlIiwgImF5ZSIpOworICB9CiB9OwogCiBURVNUX0YoUHJvcGVydHlSZWNvcmRpbmdU
ZXN0LCBPbmVQcm9wZXJ0eSkgewpAQCAtMTQzLDI5ICsxNjEsMjUgQEAgVEVTVChOb0ZpeHR1cmVU
ZXN0LCBFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNvcmRTdHJpbmdWYWx1ZWRQcm9wZXJ0eSkg
ewogY2xhc3MgVmFsdWVQYXJhbVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHt9Owog
VEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7fQogVEVTVF9Q
KFZhbHVlUGFyYW1UZXN0LCBBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7
fQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2luZ2xlLCBWYWx1ZVBhcmFtVGVzdCwgVmFsdWVz
KDMzLCA0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNpbmdsZSwgVmFsdWVQYXJhbVRl
c3QsIFZhbHVlcygzMywgNDIpKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCiAvLyBWZXJp
ZmllcyB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVf
cGFyYW0nCiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlZCB0ZXN0cy4KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgVGVzdCB7fTsKIHR5cGVkZWYgdGVzdGlu
Zzo6VHlwZXM8aW50LCBsb25nPiBUeXBlZFRlc3RUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShUeXBl
ZFRlc3QsIFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBUeXBl
ZFRlc3RUeXBlcyk7CiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgSGFzVHlwZVBhcmFtQXR0cmlidXRl
KSB7fQotI2VuZGlmCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCiAvLyBWZXJpZmllcyB0
aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0n
CiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSA6IHB1YmxpYyBU
ZXN0IHt9OwotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSk7Ci1U
WVBFRF9URVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmli
dXRlKSB7fQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKTsKLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50
LCBsb25nPiBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChTaW5nbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBl
UGFyYW1ldGVyaXplZFRlc3RDYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZVR5cGVzKTsKLSNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSA6IHB1YmxpYyBUZXN0IHt9Owor
VFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlKTsKK1RZUEVEX1RF
U1RfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7
fQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LCBIYXNUeXBlUGFyYW1BdHRyaWJ1dGUpOwordHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGxv
bmc+IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUChTaW5nbGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlVHlwZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgSW5pdEdv
b2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF94bWxfdGVzdF91dGlscy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKaW5kZXggMWUwMzU4NTkyZmIwMDg0ZjBhODlj
MzQzNmZmNzUxNzQ4NjgyN2FjZC4uNWRkMGViOTI0NDNhZDczMTU5ZmMzODQ1YzU3OWYzOTllOGYz
YmY4NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxf
dGVzdF91dGlscy5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ht
bF90ZXN0X3V0aWxzLnB5CkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIEdUZXN0WE1MVGVzdENhc2Uo
Z3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAg
ICAgIGxlbihleHBlY3RlZF9jaGlsZHJlbiksIGxlbihhY3R1YWxfY2hpbGRyZW4pLAogICAgICAg
ICAnbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzIGRpZmZlciBpbiBlbGVtZW50ICcgKyBhY3R1YWxf
bm9kZS50YWdOYW1lKQotICAgIGZvciBjaGlsZF9pZCwgY2hpbGQgaW4gZXhwZWN0ZWRfY2hpbGRy
ZW4uaXRlcml0ZW1zKCk6CisgICAgZm9yIGNoaWxkX2lkLCBjaGlsZCBpbiBleHBlY3RlZF9jaGls
ZHJlbi5pdGVtcygpOgogICAgICAgc2VsZi5hc3NlcnRfKGNoaWxkX2lkIGluIGFjdHVhbF9jaGls
ZHJlbiwKICAgICAgICAgICAgICAgICAgICAnPCVzPiBpcyBub3QgaW4gPCVzPiAoaW4gZWxlbWVu
dCAlcyknICUKICAgICAgICAgICAgICAgICAgICAoY2hpbGRfaWQsIGFjdHVhbF9jaGlsZHJlbiwg
YWN0dWFsX25vZGUudGFnTmFtZSkpCkBAIC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgR1Rlc3RYTUxU
ZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAgICd0ZXN0c3VpdGUnOiAn
bmFtZScsCiAgICAgICAndGVzdGNhc2UnOiAnbmFtZScsCiAgICAgICAnZmFpbHVyZSc6ICdtZXNz
YWdlJywKKyAgICAgICdza2lwcGVkJzogJ21lc3NhZ2UnLAogICAgICAgJ3Byb3BlcnR5JzogJ25h
bWUnLAogICB9CiAKQEAgLTE2OSw5ICsxNzAsOSBAQCBjbGFzcyBHVGVzdFhNTFRlc3RDYXNlKGd0
ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICogIFRoZSBzdGFjayB0cmFjZXMgYXJlIHJl
bW92ZWQuCiAgICAgIiIiCiAKLSAgICBpZiBlbGVtZW50LnRhZ05hbWUgPT0gJ3Rlc3RzdWl0ZXMn
OgorICAgIGlmIGVsZW1lbnQudGFnTmFtZSBpbiAoJ3Rlc3RzdWl0ZXMnLCAndGVzdHN1aXRlJywg
J3Rlc3RjYXNlJyk6CiAgICAgICB0aW1lc3RhbXAgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUo
J3RpbWVzdGFtcCcpCi0gICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIocideXGR7NH0tXGRc
ZC1cZFxkVFxkXGQ6XGRcZDpcZFxkJCcsCisgICAgICB0aW1lc3RhbXAudmFsdWUgPSByZS5zdWIo
cideXGR7NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkXC5cZFxkXGQkJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnKicsIHRpbWVzdGFtcC52YWx1ZSkKICAgICBpZiBlbGVtZW50
LnRhZ05hbWUgaW4gKCd0ZXN0c3VpdGVzJywgJ3Rlc3RzdWl0ZScsICd0ZXN0Y2FzZScpOgogICAg
ICAgdGltZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZSgndGltZScpCkBAIC0xNzksNyArMTgw
LDcgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToK
ICAgICAgIHR5cGVfcGFyYW0gPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3R5cGVfcGFyYW0n
KQogICAgICAgaWYgdHlwZV9wYXJhbSBhbmQgdHlwZV9wYXJhbS52YWx1ZToKICAgICAgICAgdHlw
ZV9wYXJhbS52YWx1ZSA9ICcqJwotICAgIGVsaWYgZWxlbWVudC50YWdOYW1lID09ICdmYWlsdXJl
JzoKKyAgICBlbGlmIGVsZW1lbnQudGFnTmFtZSA9PSAnZmFpbHVyZScgb3IgZWxlbWVudC50YWdO
YW1lID09ICdza2lwcGVkJzoKICAgICAgIHNvdXJjZV9saW5lX3BhdCA9IHInXi4qWy9cXF0oLio6
KVxkK1xuJwogICAgICAgIyBSZXBsYWNlcyB0aGUgc291cmNlIGxpbmUgaW5mb3JtYXRpb24gd2l0
aCBhIG5vcm1hbGl6ZWQgZm9ybS4KICAgICAgIG1lc3NhZ2UgPSBlbGVtZW50LmdldEF0dHJpYnV0
ZU5vZGUoJ21lc3NhZ2UnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9wcm9kdWN0aW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24u
aAppbmRleCA1NDI3MjNiNzA4NzM4N2Q0ZmI1MjlmYzA3YTY4OGJjMWM4ZDc4YjFlLi40MWE1NDcy
MjU0MjNkODMzMWE2NDlkYTk1ZjI4ZTFmZDNjNWFlNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L3Byb2R1Y3Rpb24uaApAQCAtMzAsOCArMzAsOCBAQAogLy8KIC8vIFRoaXMgaXMg
cGFydCBvZiB0aGUgdW5pdCB0ZXN0IGZvciBndGVzdF9wcm9kLmguCiAKLSNpZm5kZWYgR1RFU1Rf
VEVTVF9QUk9EVUNUSU9OX0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2lm
bmRlZiBHT09HTEVURVNUX1RFU1RfUFJPRFVDVElPTl9IXworI2RlZmluZSBHT09HTEVURVNUX1RF
U1RfUFJPRFVDVElPTl9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3RfcHJvZC5oIgogCkBAIC01
MSw0ICs1MSw0IEBAIGNsYXNzIFByaXZhdGVDb2RlIHsKICAgaW50IHhfOwogfTsKIAotI2VuZGlm
ICAvLyBHVEVTVF9URVNUX1BST0RVQ1RJT05fSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9URVNU
X1BST0RVQ1RJT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2Rl
L2d0ZXN0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC94Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNGJmZGM0MjQy
YTNlNWVlYjZjMDcwMTYyMWJjY2QxODlhN2M1ODMuLjE1MGI4ODAyMWFiODVhOTIzOWNhZGIxMmRl
YzE0M2IwZmRkNGE5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2Rl
L2d0ZXN0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QveGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsMTEgKzUy
LDggQEAKIAkJNDA0ODg0QTIwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggaW4g
Q29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwNDg4M0U0MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1pbnRlcm5hbC5oICovOyB9OwogCQk0
MDQ4ODRBMzBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oIGluIENvcHkgSGVhZGVycyBJ
bnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODNFNTBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovOyB9OwogCQk0MDQ4ODRBNDBFMkY3QkU2MDBD
Rjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4M0U2MEUyRjc5OUIwMENGNzY1OCAvKiBn
dGVzdC1zdHJpbmcuaCAqLzsgfTsKLQkJNDA0ODg0QUMwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5H
RVMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4
NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBDSEFOR0VTICovOyB9OwotCQk0MDQ4ODRBRDBFMkY3Q0Q5
MDBDRjc2NTggLyogQ09OVFJJQlVUT1JTIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODRBQTBFMkY3Q0Q5MDBDRjc2NTggLyogQ09OVFJJQlVUT1JT
ICovOyB9OwogCQk0MDQ4ODRBRTBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODg0QUIwRTJGN0NEOTAw
Q0Y3NjU4IC8qIExJQ0VOU0UgKi87IH07CiAJCTQwODk5RjNBMEZGQTcwRDQwMDBCMjlBRSAvKiBn
dGVzdC1hbGwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMjRBMTJBMTBFOUVBREE3MDBCRDE3RkQgLyogZ3Rlc3QtYWxsLmNjICovOyB9OwotCQk0MDg5
OUY1MDBGRkE3MjgxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCBpbiBDb3B5IEhlYWRlcnMgSW50
ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA4OTlGNEQwRkZBNzI3
MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggKi87IH07CiAJCTQwODk5RjUzMEZGQTcyQTAwMDBC
MjlBRSAvKiBndGVzdF91bml0dGVzdC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNCMjM4QzEyMEU3RkUxM0MwMDg0NkUxMSAvKiBndGVzdF91bml0dGVz
dC5jYyAqLzsgfTsKIAkJNDA4OUEwNDQwRkZBRDFCRTAwMEIyOUFFIC8qIHNhbXBsZTEuY2MgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyQzBGRkFD
RjdGMDAwQjI5QUUgLyogc2FtcGxlMS5jYyAqLzsgfTsKIAkJNDA4OUEwNDYwRkZBRDFCRTAwMEIy
OUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyRTBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMV91bml0
dGVzdC5jYyAqLzsgfTsKQEAgLTc1LDEwICs3Miw5IEBACiAJCTQwQzg0OUEyMTAxQTM3MDUwMDgz
NjQyQSAvKiBndGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3
b3JrICovOyB9OwogCQk0MEM4NDlBNDEwMUEzNzE1MDA4MzY0MkEgLyogZ3Rlc3QuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM4
RkYwRUMyN0Y2NDAwQTcwRjRDIC8qIGd0ZXN0LmZyYW1ld29yayAqLzsgfTsKIAkJNDUzOUM5MzQw
RUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS10ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OwotCQk0NTM5QzkzODBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5o
IGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTM5QzkzNTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5oICovOyB9
OwotCQk0NTM5QzkzOTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0
ZWQuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDUzOUM5MzYwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2Vu
ZXJhdGVkLmggKi87IH07CiAJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJh
bS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ1MzlDOTM3MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS11dGls
LmggKi87IH07CiAJCTQ1NjdDODE4MTI2NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDU2N0M4MTcx
MjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQlBM0MxMEJFMDI2MDk1MkM2MDAyMzE1NUQgLyog
Z3Rlc3QtbWF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQzEwQkRGMjYwOTUyQzUwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRjY3RDRGM0UxQzdG
NUQ4QjAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQtYXJjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oICovOyB9OwogCQlGNjdENEYzRjFDN0Y1REE3MDAxN0M3MjkgLyogZ3Rlc3Qt
cG9ydC1hcmNoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFy
Y2guaCAqLzsgfTsKIAkJRjY3RDRGNDQxQzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjQxMUM3
RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wb3J0LmggKi87IH07CkBAIC0xOTIsMTMgKzE4OCwxMCBA
QAogCQkJCTQwNDg4NEEwMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LWludGVy
bmFsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQwNDg4NEExMEUyRjdCRTYw
MENGNzY1OCAvKiBndGVzdC1maWxlcGF0aC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywK
IAkJCQk0MDQ4ODRBMjBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtaW50ZXJuYWwuaCBpbiBDb3B5
IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUzOUM5MzgwRUMyODBFMjAwQTcwRjRDIC8qIGd0
ZXN0LWxpbmtlZF9wdHIuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDUzOUM5
MzkwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggaW4gQ29w
eSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCUY2N0Q0
RjNGMUM3RjVEQTcwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCBpbiBDb3B5IEhlYWRlcnMg
SW50ZXJuYWwgKi8sCiAJCQkJNDA0ODg0QTMwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LXBvcnQu
aCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkJNDA0ODg0QTQwRTJGN0JFNjAwQ0Y3
NjU4IC8qIGd0ZXN0LXN0cmluZy5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKLQkJCQk0
MDg5OUY1MDBGRkE3MjgxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCBpbiBDb3B5IEhlYWRlcnMg
SW50ZXJuYWwgKi8sCiAJCQkJM0JGNkYyQTAwRTc5QjVBRDAwMEYyRUVFIC8qIGd0ZXN0LXR5cGUt
dXRpbC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNv
cHkgSGVhZGVycyBJbnRlcm5hbCI7CkBAIC0yMzksMTEgKzIzMiw4IEBACiAJCTQwNDg4M0U2MEUy
Rjc5OUIwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gImd0ZXN0LXN0cmluZy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDA0ODgzRjYwRTJGNzk5QjAwQ0Y3NjU4IC8qIFJFQURNRS5tZCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBSRUFETUUubWQ7IHBhdGggPSAuLi9SRUFETUUubWQ7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKIAkJNDA0ODg0MEQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0X21haW4uY2MgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBndGVzdF9tYWluLmNjOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MDQ4ODRBOTBFMkY3Q0Q5MDBDRjc2NTggLyogQ0hBTkdF
UyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDSEFOR0VTOyBwYXRoID0gLi4vQ0hBTkdFUzsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk0MDQ4ODRBQTBFMkY3Q0Q5MDBDRjc2NTggLyog
Q09OVFJJQlVUT1JTICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IENPTlRSSUJVVE9SUzsgcGF0aCA9
IC4uL0NPTlRSSUJVVE9SUzsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MDQ4ODRB
QjBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBMSUNF
TlNFOyBwYXRoID0gLi4vTElDRU5TRTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0
MDg5OUY0MzBGRkE3MTg0MDAwQjI5QUUgLyogZ3Rlc3RfdW5pdHRlc3QtZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAiZ3Rlc3RfdW5pdHRl
c3QtZnJhbWV3b3JrIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNDA4
OTlGNEQwRkZBNzI3MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9ICJndGVzdC10dXBsZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDA4OTlGQjMwRkZBNzU2NzAwMEIyOUFFIC8qIFN0YXRpY0xpYnJhcnlUYXJnZXQueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU3RhdGljTGlicmFyeVRhcmdl
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDA4OUEwMTMwRkZBQ0VG
QzAwMEIyOUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFi
bGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSAic2FtcGxlMV91bml0dGVzdC1mcmFtZXdv
cmsiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MDg5QTAyQzBGRkFD
RjdGMDAwQjI5QUUgLyogc2FtcGxlMS5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IHNhbXBsZTEuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjEsMTAg
KzI1MSw5IEBACiAJCTQ0QzQ4REZGMTRBNDA5OEYwMEEyRDlDNyAvKiBQcm9kdWN0aW9uUHJvamVj
dC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBQcm9kdWN0aW9uUHJv
amVjdC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUzOUM4RkYwRUMy
N0Y2NDAwQTcwRjRDIC8qIGd0ZXN0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IGd0ZXN0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNDUzOUM5MzMwRUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBhcmFtLXRlc3QuaCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ1MzlDOTM1MEVDMjgwRTIwMEE3MEY0QyAv
KiBndGVzdC1saW5rZWRfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJn
dGVzdC1saW5rZWRfcHRyLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NTM5Qzkz
NjBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTM5QzkzNzBFQzI4MEUyMDBBNzBGNEMg
LyogZ3Rlc3QtcGFyYW0tdXRpbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAi
Z3Rlc3QtcGFyYW0tdXRpbC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDU2N0M4
MTcxMjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wcmludGVycy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTNDMTBCREYyNjA5NTJDNTAwMjMxNTVEIC8qIGd0ZXN0LW1hdGNoZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1tYXRjaGVycy5oIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtcG9y
dC1hcmNoLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjdENEY0MTFDN0Y1REQw
MDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSAiZ3Rlc3QtcG9ydC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3RDRGNDIx
QzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXByaW50ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9ICJndGVzdC1wcmludGVycy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM0MCw4ICszMjksNiBAQAogCQkwOEZCNzdBQ0ZFODQxNzA3QzAyQUFDMDcgLyogU291
cmNlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MDQ4
ODRBOTBFMkY3Q0Q5MDBDRjc2NTggLyogQ0hBTkdFUyAqLywKLQkJCQk0MDQ4ODRBQTBFMkY3Q0Q5
MDBDRjc2NTggLyogQ09OVFJJQlVUT1JTICovLAogCQkJCTQwNDg4M0Q5MEUyRjc5OUIwMENGNzY1
OCAvKiBpbmNsdWRlICovLAogCQkJCTQwNDg4NEFCMEUyRjdDRDkwMENGNzY1OCAvKiBMSUNFTlNF
ICovLAogCQkJCTQwODlBMDJGMEZGQUNGODQwMDBCMjlBRSAvKiBzYW1wbGVzICovLApAQCAtMzg0
LDYgKzM3MSw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MDQ4ODNFMTBFMkY3OTlCMDBDRjc2
NTggLyogaW50ZXJuYWwgKi8sCiAJCQkJNDA0ODgzREIwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0
LWRlYXRoLXRlc3QuaCAqLywKKwkJCQlBM0MxMEJERjI2MDk1MkM1MDAyMzE1NUQgLyogZ3Rlc3Qt
bWF0Y2hlcnMuaCAqLywKIAkJCQk0MDQ4ODNEQzBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtbWVz
c2FnZS5oICovLAogCQkJCTQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS10
ZXN0LmggKi8sCiAJCQkJNDU2N0M4MTcxMjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJz
LmggKi8sCkBAIC00MDQsMTMgKzM5MiwxMCBAQAogCQkJCTQwNDg4M0UyMEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmggKi8sCiAJCQkJNDA0ODgzRTMwRTJGNzk5
QjAwQ0Y3NjU4IC8qIGd0ZXN0LWZpbGVwYXRoLmggKi8sCiAJCQkJNDA0ODgzRTQwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggKi8sCi0JCQkJNDUzOUM5MzUwRUMyODBFMjAwQTcw
RjRDIC8qIGd0ZXN0LWxpbmtlZF9wdHIuaCAqLywKLQkJCQk0NTM5QzkzNjBFQzI4MEUyMDBBNzBG
NEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLywKIAkJCQk0NTM5QzkzNzBFQzI4
MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC5oICovLAogCQkJCUY2N0Q0RjNEMUM3RjVE
OEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCAqLywKIAkJCQk0MDQ4ODNFNTBFMkY3OTlC
MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovLAogCQkJCTQwNDg4M0U2MEUyRjc5OUIwMENGNzY1
OCAvKiBndGVzdC1zdHJpbmcuaCAqLywKLQkJCQk0MDg5OUY0RDBGRkE3MjcxMDAwQjI5QUUgLyog
Z3Rlc3QtdHVwbGUuaCAqLywKIAkJCQkzQkY2RjI5RjBFNzlCNUFEMDAwRjJFRUUgLyogZ3Rlc3Qt
dHlwZS11dGlsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGludGVybmFsOwpAQCAtNDc2LDYgKzQ2
MSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJ
CQkJNDA0ODg0MzgwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUEzQzEwQkUwMjYwOTUyQzYwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDA0ODg0MzkwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LW1l
c3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MzlDOTM0MEVDMjgwQUUwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS10ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjdENEYzRTFDN0Y1RDhCMDAx
N0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4gSGVhZGVycyAqLywKQEAgLTY1OCw4ICs2NDQs
NiBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk0MDQ4ODRBQzBFMkY3Q0Q5MDBDRjc2
NTggLyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNDA0ODg0QUQwRTJGN0NEOTAwQ0Y3
NjU4IC8qIENPTlRSSUJVVE9SUyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDBDODQ5NzgxMDFBMzY1
NDAwODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDA0ODg0
QUUwRTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgaW4gUmVzb3VyY2VzICovLAogCQkJCTQwNDg4
NDUwMEUyRjc5OUIwMENGNzY1OCAvKiBSRUFETUUubWQgaW4gUmVzb3VyY2VzICovLAo=
</data>
<flag name="commit-queue"
          id="443480"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423961</attachid>
            <date>2021-03-22 16:48:42 -0700</date>
            <delta_ts>2021-03-22 17:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223607-20210322164839.patch</filename>
            <type>text/plain</type>
            <size>2277885</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYTFjYTlkYWNh
YzdmNjQzODM5NjY0MTg5YWUyYTZkMmFhYWQ3N2RiYS4uN2RmZjc3NjA5OWFmMjkzZjcyYzJkZTU1
MjI2NTNmZWEyODJhMDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIx
LTAzLTIyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBVcGRhdGUgZ29vZ2xldGVzdCB0byAxYThlY2YxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ZXN0LzoKKyAgICAgICAgVXBkYXRlIGdvb2dsZXRl
c3QsIGJ1dC4uLgorCisgICAgICAgICogZ3Rlc3QvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIEtl
ZXAgb3VyIG93biBidWlsZCBmaWxlcywganVzdCBhZGQgdGhlIG5ldyBmaWxlLgorCisgICAgICAg
ICogZ3Rlc3QveGNvZGUvOgorICAgICAgICBLZWVwIG91ciBvd24gYnVpbGQgZmlsZXMsIGJ1dCB0
aGVyZSdzIG5vIHZlcnNpb24gbnVtYmVyIGFueW1vcmUsIHNvIGRpdGNoIFNjcmlwdHMvdmVyc2lv
bmdlbmVyYXRlLnB5LgorCisgICAgICAgICogZ3Rlc3QvUkVBRE1FLldlYktpdDogUmVtb3ZlZC4K
KyAgICAgICAgKiBndGVzdC9jaGFuZ2VzLmRpZmY6IFJlbW92ZWQuCisgICAgICAgIEl0IGFwcGVh
cnMgdGhhdCBvdXIgZml4IGZvciBGcmVlQlNEIGhhcyBiZWVuIHVwc3RyZWFtZWQuCisKIDIwMjEt
MDItMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGxpbmtlciB3YXJuaW5ncyBidWlsZGluZyBndGVzdCBmb3IgbWFjQ2F0YWx5c3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NIQU5HRVMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9DSEFOR0VTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTUyMTMyNDIx
MmM5MTI4N2Q5MjQ0ZDQ0YmFiMzA2ZGI2NjRiYWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NIQU5HRVMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotQ2hhbmdlcyBmb3IgMS43LjA6Ci0KLSogTmV3
IGZlYXR1cmU6IGRlYXRoIHRlc3RzIGFyZSBzdXBwb3J0ZWQgb24gT3BlbkJTRCBhbmQgaW4gaU9T
Ci0gIHNpbXVsYXRvciBub3cuCi0qIE5ldyBmZWF0dXJlOiBHb29nbGUgVGVzdCBub3cgaW1wbGVt
ZW50cyBhIHByb3RvY29sIHRvIGFsbG93Ci0gIGEgdGVzdCBydW5uZXIgdG8gZGV0ZWN0IHRoYXQg
YSB0ZXN0IHByb2dyYW0gaGFzIGV4aXRlZAotICBwcmVtYXR1cmVseSBhbmQgcmVwb3J0IGl0IGFz
IGEgZmFpbHVyZSAoYmVmb3JlIGl0IHdvdWxkIGJlCi0gIGZhbHNlbHkgcmVwb3J0ZWQgYXMgYSBz
dWNjZXNzIGlmIHRoZSBleGl0IGNvZGUgaXMgMCkuCi0qIE5ldyBmZWF0dXJlOiBUZXN0OjpSZWNv
cmRQcm9wZXJ0eSgpIGNhbiBub3cgYmUgdXNlZCBvdXRzaWRlIG9mIHRoZQotICBsaWZlc3BhbiBv
ZiBhIHRlc3QgbWV0aG9kLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgYXR0cmlidXRlZCB0bwot
ICB0aGUgY3VycmVudCB0ZXN0IGNhc2Ugb3IgdGhlIHRlc3QgcHJvZ3JhbSBpbiB0aGUgWE1MIHJl
cG9ydC4KLSogTmV3IGZlYXR1cmUgKHBvdGVudGlhbGx5IGJyZWFraW5nKTogLS1ndGVzdF9saXN0
X3Rlc3RzIG5vdyBwcmludHMKLSAgdGhlIHR5cGUgcGFyYW1ldGVycyBhbmQgdmFsdWUgcGFyYW1l
dGVycyBmb3IgZWFjaCB0ZXN0LgotKiBJbXByb3ZlbWVudDogY2hhciBwb2ludGVycyBhbmQgY2hh
ciBhcnJheXMgYXJlIG5vdyBlc2NhcGVkIHByb3Blcmx5Ci0gIGluIGZhaWx1cmUgbWVzc2FnZXMu
Ci0qIEltcHJvdmVtZW50OiBmYWlsdXJlIHN1bW1hcnkgaW4gWE1MIHJlcG9ydHMgbm93IGluY2x1
ZGVzIGZpbGUgYW5kCi0gIGxpbmUgaW5mb3JtYXRpb24uCi0qIEltcHJvdmVtZW50OiB0aGUgPHRl
c3RzdWl0ZXM+IFhNTCBlbGVtZW50IG5vdyBoYXMgYSB0aW1lc3RhbXAgYXR0cmlidXRlLgotKiBJ
bXByb3ZlbWVudDogV2hlbiAtLWd0ZXN0X2ZpbHRlciBpcyBzcGVjaWZpZWQsIFhNTCByZXBvcnQg
bm93IGRvZXNuJ3QKLSAgY29udGFpbiBpbmZvcm1hdGlvbiBhYm91dCB0ZXN0cyB0aGF0IGFyZSBm
aWx0ZXJlZCBvdXQuCi0qIEZpeGVkIHRoZSBidWcgd2hlcmUgbG9uZyAtLWd0ZXN0X2ZpbHRlciBm
bGFnIHZhbHVlcyBhcmUgdHJ1bmNhdGVkIGluCi0gIGRlYXRoIHRlc3RzLgotKiBQb3RlbnRpYWxs
eSBicmVha2luZyBjaGFuZ2U6IFJVTl9BTExfVEVTVFMoKSBpcyBub3cgaW1wbGVtZW50ZWQgYXMg
YQotICBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgbWFjcm8gaW4gb3JkZXIgdG8gd29yayBiZXR0ZXIg
d2l0aCBDbGFuZy4KLSogQ29tcGF0aWJpbGl0eSBmaXhlcyB3aXRoIEMrKyAxMSBhbmQgdmFyaW91
cyBwbGF0Zm9ybXMuCi0qIEJ1Zy93YXJuaW5nIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjYuMDoK
LQotKiBOZXcgZmVhdHVyZTogQUREX0ZBSUxVUkVfQVQoKSBmb3IgcmVwb3J0aW5nIGEgdGVzdCBm
YWlsdXJlIGF0IHRoZQotICBnaXZlbiBzb3VyY2UgbG9jYXRpb24gLS0gdXNlZnVsIGZvciB3cml0
aW5nIHRlc3RpbmcgdXRpbGl0aWVzLgotKiBOZXcgZmVhdHVyZTogdGhlIHVuaXZlcnNhbCB2YWx1
ZSBwcmludGVyIGlzIG1vdmVkIGZyb20gR29vZ2xlIE1vY2sKLSAgdG8gR29vZ2xlIFRlc3QuCi0q
IE5ldyBmZWF0dXJlOiB0eXBlIHBhcmFtZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgYXJlIHJl
cG9ydGVkIGluCi0gIHRoZSBYTUwgcmVwb3J0IG5vdy4KLSogQSBndGVzdF9kaXNhYmxlX3B0aHJl
YWRzIENNYWtlIG9wdGlvbi4KLSogQ29sb3JlZCBvdXRwdXQgd29ya3MgaW4gR05VIFNjcmVlbiBz
ZXNzaW9ucyBub3cuCi0qIFBhcmFtZXRlcnMgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBh
cmUgbm93IHByaW50ZWQgaW4gdGhlCi0gIHRleHR1YWwgb3V0cHV0LgotKiBGYWlsdXJlcyBmcm9t
IGFkIGhvYyB0ZXN0IGFzc2VydGlvbnMgcnVuIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgYXJlCi0g
IG5vdyBjb3JyZWN0bHkgcmVwb3J0ZWQuCi0qIEFyZ3VtZW50cyBvZiBBU1NFUlRfWFkgYW5kIEVY
UEVDVF9YWSBubyBsb25nZXIgbmVlZCB0byBzdXBwb3J0IDw8IHRvCi0gIG9zdHJlYW0uCi0qIE1v
cmUgY29tcGxldGUgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucy4KLSogR1RFU1RfQVNTRVJUX1hZIGNh
biBiZSB1c2VkIGluc3RlYWQgb2YgQVNTRVJUX1hZIGluIGNhc2UgdGhlIGxhdHRlcgotICBuYW1l
IGlzIGFscmVhZHkgdXNlZCBieSBhbm90aGVyIGxpYnJhcnkuCi0qIC0tZ3Rlc3RfY2F0Y2hfZXhj
ZXB0aW9ucyBpcyBub3cgdHJ1ZSBieSBkZWZhdWx0LCBhbGxvd2luZyBhIHRlc3QKLSAgcHJvZ3Jh
bSB0byBjb250aW51ZSBhZnRlciBhbiBleGNlcHRpb24gaXMgdGhyb3duLgotKiBWYWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3QgZml4dHVyZXMgY2FuIG5vdyBkZXJpdmUgZnJvbSBUZXN0IGFuZAotICBX
aXRoUGFyYW1JbnRlcmZhY2U8VD4gc2VwYXJhdGVseSwgZWFzaW5nIGNvbnZlcnNpb24gb2YgbGVn
YWN5IHRlc3RzLgotKiBEZWF0aCB0ZXN0IG1lc3NhZ2VzIGFyZSBjbGVhcmx5IG1hcmtlZCB0byBt
YWtlIHRoZW0gbW9yZQotICBkaXN0aW5ndWlzaGFibGUgZnJvbSBvdGhlciBtZXNzYWdlcy4KLSog
Q29tcGF0aWJpbGl0eSBmaXhlcyBmb3IgQW5kcm9pZCwgR29vZ2xlIE5hdGl2ZSBDbGllbnQsIE1p
bkdXLCBIUCBVWCwKLSAgUG93ZXJQQywgTHVjaWQgYXV0b3Rvb2xzLCBsaWJDU3RkLCBTdW4gQysr
LCBCb3JsYW5kIEMrKyBCdWlsZGVyIChDb2RlIEdlYXIpLAotICBJQk0gWEwgQysrIChWaXN1YWwg
QWdlIEMrKyksIGFuZCBDKysweC4KLSogQnVnIGZpeGVzIGFuZCBpbXBsZW1lbnRhdGlvbiBjbGVh
bi11cHMuCi0qIFBvdGVudGlhbGx5IGluY29tcGF0aWJsZSBjaGFuZ2VzOiBkaXNhYmxlcyB0aGUg
aGFybWZ1bCAnbWFrZSBpbnN0YWxsJwotICBjb21tYW5kIGluIGF1dG90b29scy4KLQotQ2hhbmdl
cyBmb3IgMS41LjA6Ci0KLSAqIE5ldyBmZWF0dXJlOiBhc3NlcnRpb25zIGNhbiBiZSBzYWZlbHkg
Y2FsbGVkIGluIG11bHRpcGxlIHRocmVhZHMKLSAgIHdoZXJlIHRoZSBwdGhyZWFkcyBsaWJyYXJ5
IGlzIGF2YWlsYWJsZS4KLSAqIE5ldyBmZWF0dXJlOiBwcmVkaWNhdGVzIHVzZWQgaW5zaWRlIEVY
UEVDVF9UUlVFKCkgYW5kIGZyaWVuZHMKLSAgIGNhbiBub3cgZ2VuZXJhdGUgY3VzdG9tIGZhaWx1
cmUgbWVzc2FnZXMuCi0gKiBOZXcgZmVhdHVyZTogR29vZ2xlIFRlc3QgY2FuIG5vdyBiZSBjb21w
aWxlZCBhcyBhIERMTC4KLSAqIE5ldyBmZWF0dXJlOiBmdXNlZCBzb3VyY2UgZmlsZXMgYXJlIGlu
Y2x1ZGVkLgotICogTmV3IGZlYXR1cmU6IHByaW50cyBoZWxwIHdoZW4gZW5jb3VudGVyaW5nIHVu
cmVjb2duaXplZCBHb29nbGUgVGVzdCBmbGFncy4KLSAqIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBD
TWFrZSBidWlsZCBzY3JpcHQgKHJlcXVpcmVzIENNYWtlIDIuNi40KykuCi0gKiBFeHBlcmltZW50
YWwgZmVhdHVyZTogdGhlIFB1bXAgc2NyaXB0IGZvciBtZXRhIHByb2dyYW1taW5nLgotICogZG91
YmxlIHZhbHVlcyBzdHJlYW1lZCB0byBhbiBhc3NlcnRpb24gYXJlIHByaW50ZWQgd2l0aCBlbm91
Z2ggcHJlY2lzaW9uCi0gICB0byBkaWZmZXJlbnRpYXRlIGFueSB0d28gZGlmZmVyZW50IHZhbHVl
cy4KLSAqIEdvb2dsZSBUZXN0IG5vdyB3b3JrcyBvbiBTb2xhcmlzIGFuZCBBSVguCi0gKiBCdWls
ZCBhbmQgdGVzdCBzY3JpcHQgaW1wcm92ZW1lbnRzLgotICogQnVnIGZpeGVzIGFuZCBpbXBsZW1l
bnRhdGlvbiBjbGVhbi11cHMuCi0KLSBQb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzOgotCi0g
KiBTdG9wcGVkIHN1cHBvcnRpbmcgVkMrKyA3LjEgd2l0aCBleGNlcHRpb25zIGRpc2FibGVkLgot
ICogRHJvcHBlZCBzdXBwb3J0IGZvciAnbWFrZSBpbnN0YWxsJy4KLQotQ2hhbmdlcyBmb3IgMS40
LjA6Ci0KLSAqIE5ldyBmZWF0dXJlOiB0aGUgZXZlbnQgbGlzdGVuZXIgQVBJCi0gKiBOZXcgZmVh
dHVyZTogdGVzdCBzaHVmZmxpbmcKLSAqIE5ldyBmZWF0dXJlOiB0aGUgWE1MIHJlcG9ydCBmb3Jt
YXQgaXMgY2xvc2VyIHRvIGp1bml0cmVwb3J0IGFuZCBjYW4KLSAgIGJlIHBhcnNlZCBieSBIdWRz
b24gbm93LgotICogTmV3IGZlYXR1cmU6IHdoZW4gYSB0ZXN0IHJ1bnMgdW5kZXIgVmlzdWFsIFN0
dWRpbywgaXRzIGZhaWx1cmVzIGFyZQotICAgaW50ZWdyYXRlZCBpbiB0aGUgSURFLgotICogTmV3
IGZlYXR1cmU6IC9NRChkKSB2ZXJzaW9ucyBvZiBWQysrIHByb2plY3RzLgotICogTmV3IGZlYXR1
cmU6IGVsYXBzZWQgdGltZSBmb3IgdGhlIHRlc3RzIGlzIHByaW50ZWQgYnkgZGVmYXVsdC4KLSAq
IE5ldyBmZWF0dXJlOiBjb21lcyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVudGF0aW9uIHN1Y2gg
dGhhdCBCb29zdAotICAgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgQ29tYmluZSgpLgotICogTmV3
IGZlYXR1cmU6IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQgbWFjcm8gYW5kIGZyaWVuZHMuCi0g
KiBOZXcgZmVhdHVyZTogdGhlIFhjb2RlIHByb2plY3QgY2FuIG5vdyBwcm9kdWNlIHN0YXRpYyBn
dGVzdAotICAgbGlicmFyaWVzIGluIGFkZGl0aW9uIHRvIGEgZnJhbWV3b3JrLgotICogQ29tcGF0
aWJpbGl0eSBmaXhlcyBmb3IgU29sYXJpcywgQ3lnd2luLCBtaW5HVywgV2luZG93cyBNb2JpbGUs
Ci0gICBTeW1iaWFuLCBnY2MsIGFuZCBDKytCdWlsZGVyLgotICogQnVnIGZpeGVzIGFuZCBpbXBs
ZW1lbnRhdGlvbiBjbGVhbi11cHMuCi0KLUNoYW5nZXMgZm9yIDEuMy4wOgotCi0gKiBOZXcgZmVh
dHVyZTogZGVhdGggdGVzdHMgb24gV2luZG93cywgQ3lnd2luLCBhbmQgTWFjLgotICogTmV3IGZl
YXR1cmU6IGFiaWxpdHkgdG8gdXNlIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMgaW4gb3RoZXIgdGVz
dGluZwotICAgZnJhbWV3b3Jrcy4KLSAqIE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHJ1biBkaXNh
YmxlZCB0ZXN0IHZpYQotICAgLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cy4KLSAqIE5l
dyBmZWF0dXJlOiB0aGUgLS1oZWxwIGZsYWcgZm9yIHByaW50aW5nIHRoZSB1c2FnZS4KLSAqIE5l
dyBmZWF0dXJlOiBhY2Nlc3MgdG8gR29vZ2xlIFRlc3QgZmxhZyB2YWx1ZXMgaW4gdXNlciBjb2Rl
LgotICogTmV3IGZlYXR1cmU6IGEgc2NyaXB0IHRoYXQgcGFja3MgR29vZ2xlIFRlc3QgaW50byBv
bmUgLmggYW5kIG9uZQotICAgLmNjIGZpbGUgZm9yIGVhc3kgZGVwbG95bWVudC4KLSAqIE5ldyBm
ZWF0dXJlOiBzdXBwb3J0IGZvciBkaXN0cmlidXRpbmcgdGVzdCBmdW5jdGlvbnMgdG8gbXVsdGlw
bGUKLSAgIG1hY2hpbmVzIChyZXF1aXJlcyBzdXBwb3J0IGZyb20gdGhlIHRlc3QgcnVubmVyKS4K
LSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBzLgotCi1DaGFuZ2VzIGZv
ciAxLjIuMToKLQotICogQ29tcGF0aWJpbGl0eSBmaXhlcyBmb3IgTGludXggSUEtNjQgYW5kIElC
TSB6L09TLgotICogQWRkZWQgc3VwcG9ydCBmb3IgdXNpbmcgQm9vc3QgYW5kIG90aGVyIFRSMSBp
bXBsZW1lbnRhdGlvbnMuCi0gKiBDaGFuZ2VzIHRvIHRoZSBidWlsZCBzY3JpcHRzIHRvIHN1cHBv
cnQgdXBjb21pbmcgcmVsZWFzZSBvZiBHb29nbGUgQysrCi0gICBNb2NraW5nIEZyYW1ld29yay4K
LSAqIEFkZGVkIE1ha2VmaWxlIHRvIHRoZSBkaXN0cmlidXRpb24gcGFja2FnZS4KLSAqIEltcHJv
dmVkIGJ1aWxkIGluc3RydWN0aW9ucyBpbiBSRUFETUUuCi0KLUNoYW5nZXMgZm9yIDEuMi4wOgot
Ci0gKiBOZXcgZmVhdHVyZTogdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSAqIE5ldyBmZWF0
dXJlOiB0aGUgQVNTRVJUL0VYUEVDVF8oTk9OKUZBVEFMX0ZBSUxVUkUoX09OX0FMTF9USFJFQURT
KQotICAgbWFjcm9zLgotICogQ2hhbmdlZCB0aGUgWE1MIHJlcG9ydCBmb3JtYXQgdG8gbWF0Y2gg
SlVuaXQvQW50J3MuCi0gKiBBZGRlZCB0ZXN0cyB0byB0aGUgWGNvZGUgcHJvamVjdC4KLSAqIEFk
ZGVkIHNjb25zL1NDb25zY3JpcHQgZm9yIGJ1aWxkaW5nIHdpdGggU0NvbnMuCi0gKiBBZGRlZCBz
cmMvZ3Rlc3QtYWxsLmNjIGZvciBidWlsZGluZyBHb29nbGUgVGVzdCBmcm9tIGEgc2luZ2xlIGZp
bGUuCi0gKiBGaXhlZCBjb21wYXRpYmlsaXR5IHdpdGggU29sYXJpcyBhbmQgei9PUy4KLSAqIEVu
YWJsZWQgcnVubmluZyBQeXRob24gdGVzdHMgb24gc3lzdGVtcyB3aXRoIHB5dGhvbiAyLjMgaW5z
dGFsbGVkLAotICAgZS5nLiBNYWMgT1MgWCAxMC40LgotICogQnVnIGZpeGVzLgotCi1DaGFuZ2Vz
IGZvciAxLjEuMDoKLQotICogTmV3IGZlYXR1cmU6IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cy4K
LSAqIE5ldyBmZWF0dXJlOiBleGNlcHRpb24gYXNzZXJ0aW9ucy4KLSAqIE5ldyBmZWF0dXJlOiBw
cmludGluZyBlbGFwc2VkIHRpbWUgb2YgdGVzdHMuCi0gKiBJbXByb3ZlZCB0aGUgcm9idXN0bmVz
cyBvZiBkZWF0aCB0ZXN0cy4KLSAqIEFkZGVkIGFuIFhjb2RlIHByb2plY3QgYW5kIHNhbXBsZXMu
Ci0gKiBBZGp1c3RlZCB0aGUgb3V0cHV0IGZvcm1hdCBvbiBXaW5kb3dzIHRvIGJlIHVuZGVyc3Rh
bmRhYmxlIGJ5IFZpc3VhbCBTdHVkaW8uCi0gKiBNaW5vciBidWcgZml4ZXMuCi0KLUNoYW5nZXMg
Zm9yIDEuMC4xOgotCi0gKiBBZGRlZCBwcm9qZWN0IGZpbGVzIGZvciBWaXN1YWwgU3R1ZGlvIDcu
MS4KLSAqIEZpeGVkIGlzc3VlcyB3aXRoIGNvbXBpbGluZyBvbiBNYWMgT1MgWC4KLSAqIEZpeGVk
IGlzc3VlcyB3aXRoIGNvbXBpbGluZyBvbiBDeWd3aW4uCi0KLUNoYW5nZXMgZm9yIDEuMC4wOgot
Ci0gKiBJbml0aWFsIE9wZW4gU291cmNlIHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKaW5kZXggNTEwNDNlMjY2OTI5Y2Y3N2JkZDY1MTg1
OWExODg5MzJmNGVmZjZmOS4uNjc0NzdmNDdjZTM5MzkwNWVjNzQ0NTQ0M2M1MDg2M2IwNmNmNDI3
MCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ01ha2VMaXN0cy50eHQKQEAgLTE0LDYgKzE0LDcg
QEAgc2V0KEdURVNUX1NPVVJDRVMKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWRlYXRoLXRl
c3QuY2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWZpbGVwYXRoLmNjCiAgICAgJHtHVEVT
VF9ESVJ9L3NyYy9ndGVzdF9tYWluLmNjCisgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdC1tYXRj
aGVycy5jYwogICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtcG9ydC5jYwogICAgICR7R1RFU1Rf
RElSfS9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LXRl
c3QtcGFydC5jYwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ09OVFJJQlVU
T1JTIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ09OVFJJQlVUT1JTCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZWFlMmZjMDQ0MTBkYzMwOGU0NjRhYTI1NmZlMWYyZDMxZWRjOTg4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L0NPTlRSSUJVVE9SUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAg
QEAKLSMgVGhpcyBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBwZW9wbGUgd2hvJ3ZlIG1hZGUgbm9u
LXRyaXZpYWwKLSMgY29udHJpYnV0aW9uIHRvIHRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3
b3JrIHByb2plY3QuICBQZW9wbGUKLSMgd2hvIGNvbW1pdCBjb2RlIHRvIHRoZSBwcm9qZWN0IGFy
ZSBlbmNvdXJhZ2VkIHRvIGFkZCB0aGVpciBuYW1lcwotIyBoZXJlLiAgUGxlYXNlIGtlZXAgdGhl
IGxpc3Qgc29ydGVkIGJ5IGZpcnN0IG5hbWVzLgotCi1BamF5IEpvc2hpIDxqYWpAZ29vZ2xlLmNv
bT4KLUJhbMOhenMgRMOhbiA8YmFsYXpzLmRhbkBnbWFpbC5jb20+Ci1CaGFyYXQgTWVkaXJhdHRh
IDxiaGFyYXRAbWVuYWx0by5jb20+Ci1DaGFuZGxlciBDYXJydXRoIDxjaGFuZGxlcmNAZ29vZ2xl
LmNvbT4KLUNocmlzIFByaW5jZSA8Y3ByaW5jZUBnb29nbGUuY29tPgotQ2hyaXMgVGF5bG9yIDx0
YXlsb3JjQGdvb2dsZS5jb20+Ci1EYW4gRWdub3IgPGVnbm9yQGdvb2dsZS5jb20+Ci1FcmljIFJv
bWFuIDxlcm9tYW5AY2hyb21pdW0ub3JnPgotSGFkeSBaYWxlayA8aGFkeS56YWxla0BnbWFpbC5j
b20+Ci1KZWZmcmV5IFlhc3NraW4gPGp5YXNza2luQGdvb2dsZS5jb20+Ci1Kw7NpIFNpZ3Vyw7Bz
c29uIDxqb2lAZ29vZ2xlLmNvbT4KLUtlaXIgTWllcmxlIDxtaWVybGVAZ21haWwuY29tPgotS2Vp
dGggUmF5IDxrZWl0aC5yYXlAZ21haWwuY29tPgotS2VudG9uIFZhcmRhIDxrZW50b25AZ29vZ2xl
LmNvbT4KLU1hbnVlbCBLbGltZWsgPGtsaW1la0Bnb29nbGUuY29tPgotTWFya3VzIEhldWxlIDxt
YXJrdXMuaGV1bGVAZ21haWwuY29tPgotTWlrYSBSYWVudG8gPG1pa2llQGlraS5maT4KLU1pa2zD
s3MgRmF6ZWthcyA8bWZhemVrYXNAc3plbWFmb3IuY29tPgotUGFzaSBWYWxtaW5lbiA8cGFzaS52
YWxtaW5lbkBnbWFpbC5jb20+Ci1QYXRyaWNrIEhhbm5hIDxwaGFubmFAZ29vZ2xlLmNvbT4KLVBh
dHJpY2sgUmlsZXkgPHBmckBnb29nbGUuY29tPgotUGV0ZXIgS2FtaW5za2kgPHBpb3Rya0Bnb29n
bGUuY29tPgotUHJlc3RvbiBKYWNrc29uIDxwcmVzdG9uLmEuamFja3NvbkBnbWFpbC5jb20+Ci1S
YWluZXIgS2xhZmZlbmJvZWNrIDxyYWluZXIua2xhZmZlbmJvZWNrQGR5bmF0cmFjZS5jb20+Ci1S
dXNzIENveCA8cnNjQGdvb2dsZS5jb20+Ci1SdXNzIFJ1ZmVyIDxydXNzQHBlbnRhZC5jb20+Ci1T
ZWFuIE1jYWZlZSA8ZWVmYWNtQGdtYWlsLmNvbT4KLVNpZ3Vyw7B1ciDDgXNnZWlyc3NvbiA8c2ln
Z2lAZ29vZ2xlLmNvbT4KLVRyYWN5IEJpYWxpayA8dHJhY3lAcGVudGFkLmNvbT4KLVZhZGltIEJl
cm1hbiA8dmFkaW1iQGdvb2dsZS5jb20+Ci1WbGFkIExvc2V2IDx2bGFkbEBnb29nbGUuY29tPgot
WmhhbnlvbmcgV2FuIDx3YW5AZ29vZ2xlLmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L01ha2VmaWxlLmFtIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvTWFrZWZpbGUu
YW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NGM4NDE2YmEwODBjMmYwMTZmMTY2
YjE4YjQyYzBmNzNlY2U3YmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvTWFrZWZpbGUuYW0KKysrIC9kZXYvbnVs
bApAQCAtMSwzMzkgKzAsMCBAQAotIyBBdXRvbWFrZSBmaWxlCi0KLUFDTE9DQUxfQU1GTEFHUyA9
IC1JIG00Ci0KLSMgTm9uc3RhbmRhcmQgcGFja2FnZSBmaWxlcyBmb3IgZGlzdHJpYnV0aW9uCi1F
WFRSQV9ESVNUID0gXAotICBDSEFOR0VTIFwKLSAgQ09OVFJJQlVUT1JTIFwKLSAgTElDRU5TRSBc
Ci0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAgXAotICBpbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcCBcCi0gIGluY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9p
bnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wIFwKLSAgbWFrZS9NYWtlZmlsZSBcCi0gIHNj
cmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weSBcCi0gIHNjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1w
bC5weSBcCi0gIHNjcmlwdHMvcHVtcC5weSBcCi0gIHNjcmlwdHMvdGVzdC9NYWtlZmlsZQotCi0j
IGd0ZXN0IHNvdXJjZSBmaWxlcyB0aGF0IHdlIGRvbid0IGNvbXBpbGUgZGlyZWN0bHkuICBUaGV5
IGFyZQotIyAjaW5jbHVkZWQgYnkgZ3Rlc3QtYWxsLmNjLgotR1RFU1RfU1JDID0gXAotICBzcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYyBcCi0gIHNyYy9ndGVzdC1maWxlcGF0aC5jYyBcCi0gIHNyYy9n
dGVzdC1pbnRlcm5hbC1pbmwuaCBcCi0gIHNyYy9ndGVzdC1wb3J0LmNjIFwKLSAgc3JjL2d0ZXN0
LXByaW50ZXJzLmNjIFwKLSAgc3JjL2d0ZXN0LXRlc3QtcGFydC5jYyBcCi0gIHNyYy9ndGVzdC10
eXBlZC10ZXN0LmNjIFwKLSAgc3JjL2d0ZXN0LmNjCi0KLUVYVFJBX0RJU1QgKz0gJChHVEVTVF9T
UkMpCi0KLSMgU2FtcGxlIGZpbGVzIHRoYXQgd2UgZG9uJ3QgY29tcGlsZS4KLUVYVFJBX0RJU1Qg
Kz0gXAotICBzYW1wbGVzL3ByaW1lX3RhYmxlcy5oIFwKLSAgc2FtcGxlcy9zYW1wbGUxX3VuaXR0
ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1w
bGUzX3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIFwKLSAgc2Ft
cGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNj
IFwKLSAgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU4X3Vu
aXR0ZXN0LmNjIFwKLSAgc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCi0KLSMgQysrIHRlc3Qg
ZmlsZXMgdGhhdCB3ZSBkb24ndCBjb21waWxlIGRpcmVjdGx5LgotRVhUUkFfRElTVCArPSBcCi0g
IHRlc3QvZ3Rlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1kZWF0aC10
ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LWZpbGVwYXRoX3Rlc3QuY2MgXAotICB0ZXN0L2d0
ZXN0LWxpbmtlZF9wdHJfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYyBc
Ci0gIHRlc3QvZ3Rlc3QtbWVzc2FnZV90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1vcHRpb25zX3Rl
c3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYyBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXBhcmFt
LXRlc3QtdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgXAot
ICB0ZXN0L2d0ZXN0LXBhcmFtLXRlc3RfdGVzdC5oIFwKLSAgdGVzdC9ndGVzdC1wb3J0X3Rlc3Qu
Y2MgXAotICB0ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0
LXByaW50ZXJzX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXRlc3QtcGFydF90ZXN0LmNjIFwKLSAg
dGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3Qy
X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rl
c3QtdHlwZWQtdGVzdF90ZXN0LmggXAotICB0ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNj
IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWJyZWFrLW9uLWZhaWx1cmUtdW5pdHRlc3RfLmNjIFwKLSAg
dGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MgXAotICB0ZXN0L2dvb2ds
ZXRlc3QtY29sb3ItdGVzdF8uY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10ZXN0Xy5j
YyBcCi0gIHRlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVz
dC1maWx0ZXItdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3RfLmNjIFwKLSAg
dGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9t
YWluX3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjIFwKLSAg
dGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfcHJlZF9pbXBs
X3VuaXR0ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9wcm9kX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0
X3JlcGVhdF90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MgXAot
ICB0ZXN0L2d0ZXN0X3NvbGVfaGVhZGVyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3N0cmVzc190
ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MgXAotICB0
ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xl
dGVzdC11bmluaXRpYWxpemVkLXRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF91bml0dGVzdC5jYyBc
Ci0gIHRlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90
ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjIFwKLSAgdGVzdC9n
dGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYyBcCi0gIHRlc3QvcHJvZHVjdGlvbi5jYyBcCi0g
IHRlc3QvcHJvZHVjdGlvbi5oCi0KLSMgUHl0aG9uIHRlc3RzIHRoYXQgd2UgZG9uJ3QgcnVuLgot
RVhUUkFfRElTVCArPSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0
ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBcCi0g
IHRlc3QvZ29vZ2xldGVzdC1jb2xvci10ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWVudi12
YXItdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkgXAotICB0
ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVu
aXR0ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5IFwKLSAgdGVzdC9n
b29nbGV0ZXN0LW91dHB1dC10ZXN0X2dvbGRlbl9saW4udHh0IFwKLSAgdGVzdC9nb29nbGV0ZXN0
LXNodWZmbGUtdGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3RfdGVzdF91dGlscy5weSBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3QucHkgXAotICB0ZXN0L2dvb2dsZXRlc3Qt
dW5pbml0aWFsaXplZC10ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5w
eSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdC5weSBcCi0gIHRlc3QvZ3Rlc3Rf
eG1sX3Rlc3RfdXRpbHMucHkKLQotIyBDTWFrZSBzY3JpcHQKLUVYVFJBX0RJU1QgKz0gXAotICBD
TWFrZUxpc3RzLnR4dCBcCi0gIGNtYWtlL2ludGVybmFsX3V0aWxzLmNtYWtlCi0KLSMgTVNWQyBw
cm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LW1kLnNsbiBc
Ci0gIG1zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0LnNsbiBc
Ci0gIG1zdmMvMjAxMC9ndGVzdC52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X21haW4tbWQu
dmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2ogXAotICBtc3ZjLzIwMTAv
Z3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0
LnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvaiBcCi0gIG1z
dmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qCi0KLSMgeGNvZGUgcHJvamVjdCBmaWxlcwot
RVhUUkFfRElTVCArPSBcCi0gIHhjb2RlL0NvbmZpZy9EZWJ1Z1Byb2plY3QueGNjb25maWcgXAot
ICB4Y29kZS9Db25maWcvRnJhbWV3b3JrVGFyZ2V0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmln
L0dlbmVyYWwueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvUmVsZWFzZVByb2plY3QueGNjb25m
aWcgXAotICB4Y29kZS9Db25maWcvU3RhdGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyBcCi0gIHhj
b2RlL0NvbmZpZy9UZXN0VGFyZ2V0LnhjY29uZmlnIFwKLSAgeGNvZGUvUmVzb3VyY2VzL0luZm8u
cGxpc3QgXAotICB4Y29kZS9TY3JpcHRzL3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2NyaXB0cy92
ZXJzaW9uZ2VuZXJhdGUucHkgXAotICB4Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCi0KLSMgeGNvZGUgc2FtcGxlIGZpbGVzCi1FWFRSQV9ESVNUICs9IFwKLSAgeGNvZGUvU2Ft
cGxlcy9GcmFtZXdvcmtTYW1wbGUvSW5mby5wbGlzdCBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3
b3JrU2FtcGxlL1dpZGdldEZyYW1ld29yay54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIFwKLSAg
eGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvcnVudGVzdHMuc2ggXAotICB4Y29kZS9TYW1w
bGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXQuY2MgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29y
a1NhbXBsZS93aWRnZXQuaCBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxlL3dpZGdl
dF90ZXN0LmNjCi0KLSMgQysrQnVpbGRlciBwcm9qZWN0IGZpbGVzCi1FWFRSQV9ESVNUICs9IFwK
LSAgY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3QuZ3JvdXBwcm9qIFwK
LSAgY29kZWdlYXIvZ3Rlc3RfYWxsLmNjIFwKLSAgY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBcCi0g
IGNvZGVnZWFyL2d0ZXN0X21haW4uY2Jwcm9qIFwKLSAgY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3Qu
Y2Jwcm9qCi0KLSMgRGlzdHJpYnV0ZSBhbmQgaW5zdGFsbCBNNCBtYWNybwotbTRkYXRhZGlyID0g
JChkYXRhZGlyKS9hY2xvY2FsCi1tNGRhdGFfREFUQSA9IG00L2d0ZXN0Lm00Ci1FWFRSQV9ESVNU
ICs9ICQobTRkYXRhX0RBVEEpCi0KLSMgV2UgZGVmaW5lIHRoZSBnbG9iYWwgQU1fQ1BQRkxBR1Mg
YXMgZXZlcnl0aGluZyB3ZSBjb21waWxlIGluY2x1ZGVzIGZyb20gdGhlc2UKLSMgZGlyZWN0b3Jp
ZXMuCi1BTV9DUFBGTEFHUyA9IC1JJChzcmNkaXIpIC1JJChzcmNkaXIpL2luY2x1ZGUKLQotIyBN
b2RpZmllcyBjb21waWxlciBhbmQgbGlua2VyIGZsYWdzIGZvciBwdGhyZWFkcyBjb21wYXRpYmls
aXR5LgotaWYgSEFWRV9QVEhSRUFEUwotICBBTV9DWFhGTEFHUyA9IEBQVEhSRUFEX0NGTEFHU0Ag
LURHVEVTVF9IQVNfUFRIUkVBRD0xCi0gIEFNX0xJQlMgPSBAUFRIUkVBRF9MSUJTQAotZWxzZQot
ICBBTV9DWFhGTEFHUyA9IC1ER1RFU1RfSEFTX1BUSFJFQUQ9MAotZW5kaWYKLQotIyBCdWlsZCBy
dWxlcyBmb3IgbGlicmFyaWVzLgotbGliX0xUTElCUkFSSUVTID0gbGliL2xpYmd0ZXN0LmxhIGxp
Yi9saWJndGVzdF9tYWluLmxhCi0KLWxpYl9saWJndGVzdF9sYV9TT1VSQ0VTID0gc3JjL2d0ZXN0
LWFsbC5jYwotCi1wa2dpbmNsdWRlX0hFQURFUlMgPSBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
ZGVhdGgtdGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC1tZXNzYWdlLmggXAotICBpbmNs
dWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJp
bnRlcnMuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmggXAotICBpbmNsdWRlL2d0ZXN0
L2d0ZXN0LXRlc3QtcGFydC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC10eXBlZC10ZXN0Lmgg
XAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRf
aW1wbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9kLmgKLQotcGtnaW5jbHVkZV9pbnRl
cm5hbGRpciA9ICQocGtnaW5jbHVkZWRpcikvaW50ZXJuYWwKLXBrZ2luY2x1ZGVfaW50ZXJuYWxf
SEVBREVSUyA9IFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1kZWF0aC10ZXN0LWlu
dGVybmFsLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggXAot
ICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmggXAotICBpbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1w
b3J0LmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oIFwKLSAg
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCBcCi0gIGluY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHlwZS11dGlsLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIFwK
LSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oIFwKLSAgaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaAotCi1saWJfbGliZ3Rlc3Rf
bWFpbl9sYV9TT1VSQ0VTID0gc3JjL2d0ZXN0X21haW4uY2MKLWxpYl9saWJndGVzdF9tYWluX2xh
X0xJQkFERCA9IGxpYi9saWJndGVzdC5sYQotCi0jIEJ1aWxkIHJ1bGVzIGZvciBzYW1wbGVzIGFu
ZCB0ZXN0cy4gQXV0b21ha2UncyBuYW1pbmcgZm9yIHNvbWUgb2YKLSMgdGhlc2UgdmFyaWFibGVz
IGlzbid0IHRlcnJpYmx5IG9idmlvdXMsIHNvIHRoaXMgaXMgYSBicmllZgotIyByZWZlcmVuY2U6
Ci0jCi0jIFRFU1RTIC0tIFByb2dyYW1zIHJ1biBhdXRvbWF0aWNhbGx5IGJ5ICJtYWtlIGNoZWNr
IgotIyBjaGVja19QUk9HUkFNUyAtLSBQcm9ncmFtcyBidWlsdCBieSAibWFrZSBjaGVjayIgYnV0
IG5vdCBuZWNlc3NhcmlseSBydW4KLQotVEVTVFM9Ci1URVNUU19FTlZJUk9OTUVOVCA9IEdURVNU
X1NPVVJDRV9ESVI9IiQoc3JjZGlyKS90ZXN0IiBcCi0gICAgICAgICAgICAgICAgICAgIEdURVNU
X0JVSUxEX0RJUj0iJCh0b3BfYnVpbGRkaXIpL3Rlc3QiCi1jaGVja19QUk9HUkFNUz0KLQotIyBB
IHNpbXBsZSBzYW1wbGUgb24gdXNpbmcgZ3Rlc3QuCi1URVNUUyArPSBzYW1wbGVzL3NhbXBsZTFf
dW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlMl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9z
YW1wbGUzX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QgXAotICAgIHNh
bXBsZXMvc2FtcGxlNV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwK
LSAgICBzYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOF91bml0
dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBs
ZTEwX3VuaXR0ZXN0Ci1jaGVja19QUk9HUkFNUyArPSBzYW1wbGVzL3NhbXBsZTFfdW5pdHRlc3Qg
XAotICAgIHNhbXBsZXMvc2FtcGxlMl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUzX3Vu
aXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2Ft
cGxlNV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0IFwKLSAgICBzYW1w
bGVzL3NhbXBsZTdfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdCBcCi0g
ICAgc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTEwX3VuaXR0
ZXN0Ci0KLXNhbXBsZXNfc2FtcGxlMV91bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUx
X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2FtcGxlMS5jYwotc2FtcGxlc19zYW1wbGUxX3VuaXR0ZXN0
X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTJfdW5pdHRlc3RfU09VUkNF
UyA9IHNhbXBsZXMvc2FtcGxlMl91bml0dGVzdC5jYyBzYW1wbGVzL3NhbXBsZTIuY2MKLXNhbXBs
ZXNfc2FtcGxlMl91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1w
bGUzX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKLXNhbXBs
ZXNfc2FtcGxlM191bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdF9tYWluLmxhIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotc2FtcGxlc19zYW1w
bGU0X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTRfdW5pdHRlc3QuY2Mgc2FtcGxl
cy9zYW1wbGU0LmNjCi1zYW1wbGVzX3NhbXBsZTRfdW5pdHRlc3RfTERBREQgPSBsaWIvbGliZ3Rl
c3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGliZ3Rl
c3QubGEKLXNhbXBsZXNfc2FtcGxlNV91bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGU1
X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2FtcGxlMS5jYwotc2FtcGxlc19zYW1wbGU1X3VuaXR0ZXN0
X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTZfdW5pdHRlc3RfU09VUkNF
UyA9IHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwotc2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0
X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTdfdW5pdHRlc3RfU09VUkNF
UyA9IHNhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYwotc2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0
X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZThfdW5pdHRlc3RfU09VUkNF
UyA9IHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYwotc2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0
X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi0KLSMgQWxzbyB2ZXJpZnkgdGhhdCBsaWJndGVzdCB3
b3JrcyBieSBpdHNlbGYuCi1zYW1wbGVzX3NhbXBsZTlfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBs
ZXMvc2FtcGxlOV91bml0dGVzdC5jYwotc2FtcGxlc19zYW1wbGU5X3VuaXR0ZXN0X0xEQUREID0g
bGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBsZTEwX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1w
bGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjCi1zYW1wbGVzX3NhbXBsZTEwX3VuaXR0ZXN0X0xEQURE
ID0gbGliL2xpYmd0ZXN0LmxhCi0KLSMgVGhpcyB0ZXN0cyBtb3N0IGNvbnN0cnVjdHMgb2YgZ3Rl
c3QgYW5kIHZlcmlmaWVzIHRoYXQgbGliZ3Rlc3RfbWFpbgotIyBhbmQgbGliZ3Rlc3Qgd29yay4K
LVRFU1RTICs9IHRlc3QvZ3Rlc3RfYWxsX3Rlc3QKLWNoZWNrX1BST0dSQU1TICs9IHRlc3QvZ3Rl
c3RfYWxsX3Rlc3QKLXRlc3RfZ3Rlc3RfYWxsX3Rlc3RfU09VUkNFUyA9IHRlc3QvZ3Rlc3RfYWxs
X3Rlc3QuY2MKLXRlc3RfZ3Rlc3RfYWxsX3Rlc3RfTERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5s
YSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi0KLSMgVGVz
dHMgdGhhdCBmdXNlZCBndGVzdCBmaWxlcyBjb21waWxlIGFuZCB3b3JrLgotRlVTRURfR1RFU1Rf
U1JDID0gXAotICBmdXNlZC1zcmMvZ3Rlc3QvZ3Rlc3QtYWxsLmNjIFwKLSAgZnVzZWQtc3JjL2d0
ZXN0L2d0ZXN0LmggXAotICBmdXNlZC1zcmMvZ3Rlc3QvZ3Rlc3RfbWFpbi5jYwotCi1pZiBIQVZF
X1BZVEhPTgotVEVTVFMgKz0gdGVzdC9mdXNlZF9ndGVzdF90ZXN0Ci1jaGVja19QUk9HUkFNUyAr
PSB0ZXN0L2Z1c2VkX2d0ZXN0X3Rlc3QKLXRlc3RfZnVzZWRfZ3Rlc3RfdGVzdF9TT1VSQ0VTID0g
JChGVVNFRF9HVEVTVF9TUkMpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Ft
cGxlcy9zYW1wbGUxLmNjIHNhbXBsZXMvc2FtcGxlMV91bml0dGVzdC5jYwotdGVzdF9mdXNlZF9n
dGVzdF90ZXN0X0NQUEZMQUdTID0gLUkiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLQotIyBCdWlsZCBy
dWxlcyBmb3IgcHV0dGluZyBmdXNlZCBHb29nbGUgVGVzdCBmaWxlcyBpbnRvIHRoZSBkaXN0cmli
dXRpb24KLSMgcGFja2FnZS4gVGhlIHVzZXIgY2FuIGFsc28gY3JlYXRlIHRob3NlIGZpbGVzIGJ5
IG1hbnVhbGx5IHJ1bm5pbmcKLSMgc2NyaXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5LgotJCh0ZXN0
X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNFUyk6IGZ1c2VkLWd0ZXN0Ci0KLWZ1c2VkLWd0ZXN0OiAk
KHBrZ2luY2x1ZGVfSEVBREVSUykgJChwa2dpbmNsdWRlX2ludGVybmFsX0hFQURFUlMpIFwKLSAg
ICAgICAgICAgICAkKEdURVNUX1NSQykgc3JjL2d0ZXN0LWFsbC5jYyBzcmMvZ3Rlc3RfbWFpbi5j
YyBcCi0gICAgICAgICAgICAgc2NyaXB0cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5Ci0JbWtkaXIgLXAg
IiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0JY2htb2QgLVIgdSt3ICIkKHNyY2RpcikvZnVzZWQtc3Jj
IgotCXJtIC1mICIkKHNyY2RpcikvZnVzZWQtc3JjL2d0ZXN0L2d0ZXN0LWFsbC5jYyIKLQlybSAt
ZiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9ndGVzdC9ndGVzdC5oIgotCSIkKHNyY2Rpcikvc2NyaXB0
cy9mdXNlX2d0ZXN0X2ZpbGVzLnB5IiAiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLQljcCAtZiAiJChz
cmNkaXIpL3NyYy9ndGVzdF9tYWluLmNjIiAiJChzcmNkaXIpL2Z1c2VkLXNyYy9ndGVzdC8iCi0K
LW1haW50YWluZXItY2xlYW4tbG9jYWw6Ci0Jcm0gLXJmICIkKHNyY2RpcikvZnVzZWQtc3JjIgot
ZW5kaWYKLQotIyBEZWF0aCB0ZXN0cyBtYXkgcHJvZHVjZSBjb3JlIGR1bXBzIGluIHRoZSBidWls
ZCBkaXJlY3RvcnkuIEluIGNhc2UKLSMgdGhpcyBoYXBwZW5zLCBjbGVhbiB0aGVtIHRvIGtlZXAg
ZGlzdGNsZWFuY2hlY2sgaGFwcHkuCi1DTEVBTkZJTEVTID0gY29yZQotCi0jIERpc2FibGVzICdt
YWtlIGluc3RhbGwnIGFzIGluc3RhbGxpbmcgYSBjb21waWxlZCB2ZXJzaW9uIG9mIEdvb2dsZQot
IyBUZXN0IGNhbiBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBkdWUgdG8gdmlvbGF0aW9uIG9m
IHRoZQotIyBPbmUtRGVmaW5pdGlvbiBSdWxlLgotCi1pbnN0YWxsLWV4ZWMtbG9jYWw6Ci0JZWNo
byAiJ21ha2UgaW5zdGFsbCcgaXMgZGFuZ2Vyb3VzIGFuZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFk
LCBzZWUgUkVBRE1FIGZvciBob3cgdG8gaW50ZWdyYXRlIEdvb2dsZSBUZXN0IGludG8geW91ciBi
dWlsZCBzeXN0ZW0uIgotCWZhbHNlCi0KLWluc3RhbGwtZGF0YS1sb2NhbDoKLQllY2hvICInbWFr
ZSBpbnN0YWxsJyBpcyBkYW5nZXJvdXMgYW5kIG5vdCBzdXBwb3J0ZWQuIEluc3RlYWQsIHNlZSBS
RUFETUUgZm9yIGhvdyB0byBpbnRlZ3JhdGUgR29vZ2xlIFRlc3QgaW50byB5b3VyIGJ1aWxkIHN5
c3RlbS4iCi0JZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURN
RS5XZWJLaXQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFETUUuV2ViS2l0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmUzYmJmZjg5MWMxYjcwMTc1ZmJmNDYxY2FkOTJiYmQy
YTMxYzhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5XZWJLaXQKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLUdUZXN0IHYuMS44LjEKLQotaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29n
bGV0ZXN0L3JlbGVhc2VzL3RhZy9yZWxlYXNlLTEuOC4xLwotCi0yMDE2LTAxLTAyIFRpbmctV2Vp
IExhbiAobGFudHc0NEBnbWFpbC5jb20pCi0gICAgICBSZW1vdmUgdXNhZ2Ugb2YgZW52aXJvbiBn
bG9iYWwgdmFyaWFibGUgdG8gZml4IHRoZSBidWlsZCBvbiBGcmVlQlNELgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvUkVBRE1FLm1kCmluZGV4IGUzMGZlODA0NzEyN2JlZTE2ZDJjNzFmMTRiNTA5ZjM3NTcxYWRk
NDEuLjcxN2M4ODY3OTBiYWJiZjdjZWI0MmJlZGNlNDIwOWE2ODFhNTA0NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5tZAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9SRUFETUUubWQKQEAgLTIsODAgKzIsNTEgQEAKIAogIyMjIyBTZXR1cAogCi1UbyBi
dWlsZCBHb29nbGUgVGVzdCBhbmQgeW91ciB0ZXN0cyB0aGF0IHVzZSBpdCwgeW91IG5lZWQgdG8g
dGVsbCB5b3VyIGJ1aWxkCitUbyBidWlsZCBHb29nbGVUZXN0IGFuZCB5b3VyIHRlc3RzIHRoYXQg
dXNlIGl0LCB5b3UgbmVlZCB0byB0ZWxsIHlvdXIgYnVpbGQKIHN5c3RlbSB3aGVyZSB0byBmaW5k
IGl0cyBoZWFkZXJzIGFuZCBzb3VyY2UgZmlsZXMuIFRoZSBleGFjdCB3YXkgdG8gZG8gaXQKIGRl
cGVuZHMgb24gd2hpY2ggYnVpbGQgc3lzdGVtIHlvdSB1c2UsIGFuZCBpcyB1c3VhbGx5IHN0cmFp
Z2h0Zm9yd2FyZC4KIAotIyMjIyBCdWlsZAorIyMjIEJ1aWxkIHdpdGggQ01ha2UKIAotU3VwcG9z
ZSB5b3UgcHV0IEdvb2dsZSBUZXN0IGluIGRpcmVjdG9yeSBgJHtHVEVTVF9ESVJ9YC4gVG8gYnVp
bGQgaXQsIGNyZWF0ZSBhCi1saWJyYXJ5IGJ1aWxkIHRhcmdldCAob3IgYSBwcm9qZWN0IGFzIGNh
bGxlZCBieSBWaXN1YWwgU3R1ZGlvIGFuZCBYY29kZSkgdG8KLWNvbXBpbGUKLQotICAgICR7R1RF
U1RfRElSfS9zcmMvZ3Rlc3QtYWxsLmNjCi0KLXdpdGggYCR7R1RFU1RfRElSfS9pbmNsdWRlYCBp
biB0aGUgc3lzdGVtIGhlYWRlciBzZWFyY2ggcGF0aCBhbmQgYCR7R1RFU1RfRElSfWAKLWluIHRo
ZSBub3JtYWwgaGVhZGVyIHNlYXJjaCBwYXRoLiBBc3N1bWluZyBhIExpbnV4LWxpa2Ugc3lzdGVt
IGFuZCBnY2MsCi1zb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHdpbGwgZG86Ci0KLSAgICBn
KysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9L2luY2x1ZGUgLUkke0dURVNUX0RJUn0gXAotICAgICAg
ICAtcHRocmVhZCAtYyAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWFsbC5jYwotICAgIGFyIC1ydiBs
aWJndGVzdC5hIGd0ZXN0LWFsbC5vCi0KLShXZSBuZWVkIGAtcHRocmVhZGAgYXMgR29vZ2xlIFRl
c3QgdXNlcyB0aHJlYWRzLikKLQotTmV4dCwgeW91IHNob3VsZCBjb21waWxlIHlvdXIgdGVzdCBz
b3VyY2UgZmlsZSB3aXRoIGAke0dURVNUX0RJUn0vaW5jbHVkZWAgaW4KLXRoZSBzeXN0ZW0gaGVh
ZGVyIHNlYXJjaCBwYXRoLCBhbmQgbGluayBpdCB3aXRoIGd0ZXN0IGFuZCBhbnkgb3RoZXIgbmVj
ZXNzYXJ5Ci1saWJyYXJpZXM6Ci0KLSAgICBnKysgLWlzeXN0ZW0gJHtHVEVTVF9ESVJ9L2luY2x1
ZGUgLXB0aHJlYWQgcGF0aC90by95b3VyX3Rlc3QuY2MgbGliZ3Rlc3QuYSBcCi0gICAgICAgIC1v
IHlvdXJfdGVzdAotCi1BcyBhbiBleGFtcGxlLCB0aGUgbWFrZS8gZGlyZWN0b3J5IGNvbnRhaW5z
IGEgTWFrZWZpbGUgdGhhdCB5b3UgY2FuIHVzZSB0byBidWlsZAotR29vZ2xlIFRlc3Qgb24gc3lz
dGVtcyB3aGVyZSBHTlUgbWFrZSBpcyBhdmFpbGFibGUgKGUuZy4gTGludXgsIE1hYyBPUyBYLCBh
bmQKLUN5Z3dpbikuIEl0IGRvZXNuJ3QgdHJ5IHRvIGJ1aWxkIEdvb2dsZSBUZXN0J3Mgb3duIHRl
c3RzLiBJbnN0ZWFkLCBpdCBqdXN0Ci1idWlsZHMgdGhlIEdvb2dsZSBUZXN0IGxpYnJhcnkgYW5k
IGEgc2FtcGxlIHRlc3QuIFlvdSBjYW4gdXNlIGl0IGFzIGEgc3RhcnRpbmcKLXBvaW50IGZvciB5
b3VyIG93biBidWlsZCBzY3JpcHQuCi0KLUlmIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFyZSBjb3Jy
ZWN0IGZvciB5b3VyIGVudmlyb25tZW50LCB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCi1zaG91bGQg
c3VjY2VlZDoKLQotICAgIGNkICR7R1RFU1RfRElSfS9tYWtlCi0gICAgbWFrZQotICAgIC4vc2Ft
cGxlMV91bml0dGVzdAotCi1JZiB5b3Ugc2VlIGVycm9ycywgdHJ5IHRvIHR3ZWFrIHRoZSBjb250
ZW50cyBvZiBgbWFrZS9NYWtlZmlsZWAgdG8gbWFrZSB0aGVtIGdvCi1hd2F5LiBUaGVyZSBhcmUg
aW5zdHJ1Y3Rpb25zIGluIGBtYWtlL01ha2VmaWxlYCBvbiBob3cgdG8gZG8gaXQuCi0KLSMjIyBV
c2luZyBDTWFrZQotCi1Hb29nbGUgVGVzdCBjb21lcyB3aXRoIGEgQ01ha2UgYnVpbGQgc2NyaXB0
ICgKLVtDTWFrZUxpc3RzLnR4dF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0
L2Jsb2IvbWFzdGVyL0NNYWtlTGlzdHMudHh0KSkKK0dvb2dsZVRlc3QgY29tZXMgd2l0aCBhIENN
YWtlIGJ1aWxkIHNjcmlwdAorKFtDTWFrZUxpc3RzLnR4dF0oaHR0cHM6Ly9naXRodWIuY29tL2dv
b2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVyL0NNYWtlTGlzdHMudHh0KSkKIHRoYXQgY2FuIGJl
IHVzZWQgb24gYSB3aWRlIHJhbmdlIG9mIHBsYXRmb3JtcyAoIkMiIHN0YW5kcyBmb3IgY3Jvc3Mt
cGxhdGZvcm0uKS4KIElmIHlvdSBkb24ndCBoYXZlIENNYWtlIGluc3RhbGxlZCBhbHJlYWR5LCB5
b3UgY2FuIGRvd25sb2FkIGl0IGZvciBmcmVlIGZyb20KIDxodHRwOi8vd3d3LmNtYWtlLm9yZy8+
LgogCiBDTWFrZSB3b3JrcyBieSBnZW5lcmF0aW5nIG5hdGl2ZSBtYWtlZmlsZXMgb3IgYnVpbGQg
cHJvamVjdHMgdGhhdCBjYW4gYmUgdXNlZCBpbgotdGhlIGNvbXBpbGVyIGVudmlyb25tZW50IG9m
IHlvdXIgY2hvaWNlLiBZb3UgY2FuIGVpdGhlciBidWlsZCBHb29nbGUgVGVzdCBhcyBhCit0aGUg
Y29tcGlsZXIgZW52aXJvbm1lbnQgb2YgeW91ciBjaG9pY2UuIFlvdSBjYW4gZWl0aGVyIGJ1aWxk
IEdvb2dsZVRlc3QgYXMgYQogc3RhbmRhbG9uZSBwcm9qZWN0IG9yIGl0IGNhbiBiZSBpbmNvcnBv
cmF0ZWQgaW50byBhbiBleGlzdGluZyBDTWFrZSBidWlsZCBmb3IKIGFub3RoZXIgcHJvamVjdC4K
IAogIyMjIyBTdGFuZGFsb25lIENNYWtlIFByb2plY3QKIAotV2hlbiBidWlsZGluZyBHb29nbGUg
VGVzdCBhcyBhIHN0YW5kYWxvbmUgcHJvamVjdCwgdGhlIHR5cGljYWwgd29ya2Zsb3cgc3RhcnRz
Ci13aXRoOgorV2hlbiBidWlsZGluZyBHb29nbGVUZXN0IGFzIGEgc3RhbmRhbG9uZSBwcm9qZWN0
LCB0aGUgdHlwaWNhbCB3b3JrZmxvdyBzdGFydHMKK3dpdGgKIAotICAgIG1rZGlyIG15YnVpbGQg
ICAgICAgIyBDcmVhdGUgYSBkaXJlY3RvcnkgdG8gaG9sZCB0aGUgYnVpbGQgb3V0cHV0LgotICAg
IGNkIG15YnVpbGQKLSAgICBjbWFrZSAke0dURVNUX0RJUn0gICMgR2VuZXJhdGUgbmF0aXZlIGJ1
aWxkIHNjcmlwdHMuCitgYGAKK2dpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dv
b2dsZXRlc3QuZ2l0IC1iIHJlbGVhc2UtMS4xMC4wCitjZCBnb29nbGV0ZXN0ICAgICAgICAjIE1h
aW4gZGlyZWN0b3J5IG9mIHRoZSBjbG9uZWQgcmVwb3NpdG9yeS4KK21rZGlyIGJ1aWxkICAgICAg
ICAgICMgQ3JlYXRlIGEgZGlyZWN0b3J5IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KK2NkIGJ1
aWxkCitjbWFrZSAuLiAgICAgICAgICAgICAjIEdlbmVyYXRlIG5hdGl2ZSBidWlsZCBzY3JpcHRz
IGZvciBHb29nbGVUZXN0LgorYGBgCiAKLUlmIHlvdSB3YW50IHRvIGJ1aWxkIEdvb2dsZSBUZXN0
J3Mgc2FtcGxlcywgeW91IHNob3VsZCByZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQKLXdpdGgKK1Ro
ZSBhYm92ZSBjb21tYW5kIGFsc28gaW5jbHVkZXMgR29vZ2xlTW9jayBieSBkZWZhdWx0LiBBbmQg
c28sIGlmIHlvdSB3YW50IHRvCitidWlsZCBvbmx5IEdvb2dsZVRlc3QsIHlvdSBzaG91bGQgcmVw
bGFjZSB0aGUgbGFzdCBjb21tYW5kIHdpdGgKIAotICAgIGNtYWtlIC1EZ3Rlc3RfYnVpbGRfc2Ft
cGxlcz1PTiAke0dURVNUX0RJUn0KK2BgYAorY21ha2UgLi4gLURCVUlMRF9HTU9DSz1PRkYKK2Bg
YAogCiBJZiB5b3UgYXJlIG9uIGEgXCpuaXggc3lzdGVtLCB5b3Ugc2hvdWxkIG5vdyBzZWUgYSBN
YWtlZmlsZSBpbiB0aGUgY3VycmVudAotZGlyZWN0b3J5LiBKdXN0IHR5cGUgJ21ha2UnIHRvIGJ1
aWxkIGd0ZXN0LgorZGlyZWN0b3J5LiBKdXN0IHR5cGUgYG1ha2VgIHRvIGJ1aWxkIEdvb2dsZVRl
c3QuIEFuZCB0aGVuIHlvdSBjYW4gc2ltcGx5IGluc3RhbGwKK0dvb2dsZVRlc3QgaWYgeW91IGFy
ZSBhIHN5c3RlbSBhZG1pbmlzdHJhdG9yLgorCitgYGAKK21ha2UKK3N1ZG8gbWFrZSBpbnN0YWxs
ICAgICMgSW5zdGFsbCBpbiAvdXNyL2xvY2FsLyBieSBkZWZhdWx0CitgYGAKIAogSWYgeW91IHVz
ZSBXaW5kb3dzIGFuZCBoYXZlIFZpc3VhbCBTdHVkaW8gaW5zdGFsbGVkLCBhIGBndGVzdC5zbG5g
IGZpbGUgYW5kCiBzZXZlcmFsIGAudmNwcm9qYCBmaWxlcyB3aWxsIGJlIGNyZWF0ZWQuIFlvdSBj
YW4gdGhlbiBidWlsZCB0aGVtIHVzaW5nIFZpc3VhbApAQCAtODUsMTMgKzU2LDE5IEBAIE9uIE1h
YyBPUyBYIHdpdGggWGNvZGUgaW5zdGFsbGVkLCBhIGAueGNvZGVwcm9qYCBmaWxlIHdpbGwgYmUg
Z2VuZXJhdGVkLgogCiAjIyMjIEluY29ycG9yYXRpbmcgSW50byBBbiBFeGlzdGluZyBDTWFrZSBQ
cm9qZWN0CiAKLUlmIHlvdSB3YW50IHRvIHVzZSBndGVzdCBpbiBhIHByb2plY3Qgd2hpY2ggYWxy
ZWFkeSB1c2VzIENNYWtlLCB0aGVuIGEgbW9yZQotcm9idXN0IGFuZCBmbGV4aWJsZSBhcHByb2Fj
aCBpcyB0byBidWlsZCBndGVzdCBhcyBwYXJ0IG9mIHRoYXQgcHJvamVjdCBkaXJlY3RseS4KLVRo
aXMgaXMgZG9uZSBieSBtYWtpbmcgdGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgYXZhaWxhYmxl
IHRvIHRoZSBtYWluIGJ1aWxkCi1hbmQgYWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MgYGFkZF9zdWJk
aXJlY3RvcnkoKWAgY29tbWFuZC4gVGhpcyBoYXMgdGhlCi1zaWduaWZpY2FudCBhZHZhbnRhZ2Ug
dGhhdCB0aGUgc2FtZSBjb21waWxlciBhbmQgbGlua2VyIHNldHRpbmdzIGFyZSB1c2VkCi1iZXR3
ZWVuIGd0ZXN0IGFuZCB0aGUgcmVzdCBvZiB5b3VyIHByb2plY3QsIHNvIGlzc3VlcyBhc3NvY2lh
dGVkIHdpdGggdXNpbmcKLWluY29tcGF0aWJsZSBsaWJyYXJpZXMgKGVnIGRlYnVnL3JlbGVhc2Up
LCBldGMuIGFyZSBhdm9pZGVkLiBUaGlzIGlzCitJZiB5b3Ugd2FudCB0byB1c2UgR29vZ2xlVGVz
dCBpbiBhIHByb2plY3Qgd2hpY2ggYWxyZWFkeSB1c2VzIENNYWtlLCB0aGUgZWFzaWVzdAord2F5
IGlzIHRvIGdldCBpbnN0YWxsZWQgbGlicmFyaWVzIGFuZCBoZWFkZXJzLgorCisqICAgSW1wb3J0
IEdvb2dsZVRlc3QgYnkgdXNpbmcgYGZpbmRfcGFja2FnZWAgKG9yIGBwa2dfY2hlY2tfbW9kdWxl
c2ApLiBGb3IKKyAgICBleGFtcGxlLCBpZiBgZmluZF9wYWNrYWdlKEdUZXN0IENPTkZJRyBSRVFV
SVJFRClgIGlzIHN1Y2NlZWQsIHlvdSBjYW4gdXNlCisgICAgdGhlIGxpYnJhcmllcyBhcyBgR1Rl
c3Q6Omd0ZXN0YCwgYEdUZXN0OjpnbW9ja2AuCisKK0FuZCBhIG1vcmUgcm9idXN0IGFuZCBmbGV4
aWJsZSBhcHByb2FjaCBpcyB0byBidWlsZCBHb29nbGVUZXN0IGFzIHBhcnQgb2YgdGhhdAorcHJv
amVjdCBkaXJlY3RseS4gVGhpcyBpcyBkb25lIGJ5IG1ha2luZyB0aGUgR29vZ2xlVGVzdCBzb3Vy
Y2UgY29kZSBhdmFpbGFibGUgdG8KK3RoZSBtYWluIGJ1aWxkIGFuZCBhZGRpbmcgaXQgdXNpbmcg
Q01ha2UncyBgYWRkX3N1YmRpcmVjdG9yeSgpYCBjb21tYW5kLiBUaGlzCitoYXMgdGhlIHNpZ25p
ZmljYW50IGFkdmFudGFnZSB0aGF0IHRoZSBzYW1lIGNvbXBpbGVyIGFuZCBsaW5rZXIgc2V0dGlu
Z3MgYXJlCit1c2VkIGJldHdlZW4gR29vZ2xlVGVzdCBhbmQgdGhlIHJlc3Qgb2YgeW91ciBwcm9q
ZWN0LCBzbyBpc3N1ZXMgYXNzb2NpYXRlZCB3aXRoCit1c2luZyBpbmNvbXBhdGlibGUgbGlicmFy
aWVzIChlZyBkZWJ1Zy9yZWxlYXNlKSwgZXRjLiBhcmUgYXZvaWRlZC4gVGhpcyBpcwogcGFydGlj
dWxhcmx5IHVzZWZ1bCBvbiBXaW5kb3dzLiBNYWtpbmcgR29vZ2xlVGVzdCdzIHNvdXJjZSBjb2Rl
IGF2YWlsYWJsZSB0byB0aGUKIG1haW4gYnVpbGQgY2FuIGJlIGRvbmUgYSBmZXcgZGlmZmVyZW50
IHdheXM6CiAKQEAgLTExNSw2MCArOTIsNTcgQEAgcHVsbGVkIGludG8gdGhlIG1haW4gYnVpbGQg
d2l0aCBgYWRkX3N1YmRpcmVjdG9yeSgpYC4gRm9yIGV4YW1wbGU6CiAKIE5ldyBmaWxlIGBDTWFr
ZUxpc3RzLnR4dC5pbmA6CiAKLSAgICBjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44
LjIpCitgYGBjbWFrZQorY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOC4xMikKIAot
ICAgIHByb2plY3QoZ29vZ2xldGVzdC1kb3dubG9hZCBOT05FKQorcHJvamVjdChnb29nbGV0ZXN0
LWRvd25sb2FkIE5PTkUpCiAKLSAgICBpbmNsdWRlKEV4dGVybmFsUHJvamVjdCkKLSAgICBFeHRl
cm5hbFByb2plY3RfQWRkKGdvb2dsZXRlc3QKLSAgICAgIEdJVF9SRVBPU0lUT1JZICAgIGh0dHBz
Oi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC5naXQKLSAgICAgIEdJVF9UQUcgICAgICAg
ICAgIG1hc3RlcgotICAgICAgU09VUkNFX0RJUiAgICAgICAgIiR7Q01BS0VfQklOQVJZX0RJUn0v
Z29vZ2xldGVzdC1zcmMiCi0gICAgICBCSU5BUllfRElSICAgICAgICAiJHtDTUFLRV9CSU5BUllf
RElSfS9nb29nbGV0ZXN0LWJ1aWxkIgotICAgICAgQ09ORklHVVJFX0NPTU1BTkQgIiIKLSAgICAg
IEJVSUxEX0NPTU1BTkQgICAgICIiCi0gICAgICBJTlNUQUxMX0NPTU1BTkQgICAiIgotICAgICAg
VEVTVF9DT01NQU5EICAgICAgIiIKLSAgICApCitpbmNsdWRlKEV4dGVybmFsUHJvamVjdCkKK0V4
dGVybmFsUHJvamVjdF9BZGQoZ29vZ2xldGVzdAorICBHSVRfUkVQT1NJVE9SWSAgICBodHRwczov
L2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QuZ2l0CisgIEdJVF9UQUcgICAgICAgICAgIG1h
c3RlcgorICBTT1VSQ0VfRElSICAgICAgICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dv
b2dsZXRlc3Qtc3JjIgorICBCSU5BUllfRElSICAgICAgICAiJHtDTUFLRV9DVVJSRU5UX0JJTkFS
WV9ESVJ9L2dvb2dsZXRlc3QtYnVpbGQiCisgIENPTkZJR1VSRV9DT01NQU5EICIiCisgIEJVSUxE
X0NPTU1BTkQgICAgICIiCisgIElOU1RBTExfQ09NTUFORCAgICIiCisgIFRFU1RfQ09NTUFORCAg
ICAgICIiCispCitgYGAKIAogRXhpc3RpbmcgYnVpbGQncyBgQ01ha2VMaXN0cy50eHRgOgogCi0g
ICAgIyBEb3dubG9hZCBhbmQgdW5wYWNrIGdvb2dsZXRlc3QgYXQgY29uZmlndXJlIHRpbWUKLSAg
ICBjb25maWd1cmVfZmlsZShDTWFrZUxpc3RzLnR4dC5pbiBnb29nbGV0ZXN0LWRvd25sb2FkL0NN
YWtlTGlzdHMudHh0KQotICAgIGV4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFO
RH0gLUcgIiR7Q01BS0VfR0VORVJBVE9SfSIgLgotICAgICAgUkVTVUxUX1ZBUklBQkxFIHJlc3Vs
dAotICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0
LWRvd25sb2FkICkKLSAgICBpZihyZXN1bHQpCi0gICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJD
TWFrZSBzdGVwIGZvciBnb29nbGV0ZXN0IGZhaWxlZDogJHtyZXN1bHR9IikKLSAgICBlbmRpZigp
Ci0gICAgZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtLWJ1aWxkIC4K
LSAgICAgIFJFU1VMVF9WQVJJQUJMRSByZXN1bHQKLSAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7
Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1kb3dubG9hZCApCi0gICAgaWYocmVzdWx0KQot
ICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQnVpbGQgc3RlcCBmb3IgZ29vZ2xldGVzdCBmYWls
ZWQ6ICR7cmVzdWx0fSIpCi0gICAgZW5kaWYoKQotCi0gICAgIyBQcmV2ZW50IG92ZXJyaWRpbmcg
dGhlIHBhcmVudCBwcm9qZWN0J3MgY29tcGlsZXIvbGlua2VyCi0gICAgIyBzZXR0aW5ncyBvbiBX
aW5kb3dzCi0gICAgc2V0KGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQgT04gQ0FDSEUgQk9PTCAiIiBG
T1JDRSkKLQotICAgICMgQWRkIGdvb2dsZXRlc3QgZGlyZWN0bHkgdG8gb3VyIGJ1aWxkLiBUaGlz
IGRlZmluZXMKLSAgICAjIHRoZSBndGVzdCBhbmQgZ3Rlc3RfbWFpbiB0YXJnZXRzLgotICAgIGFk
ZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LXNyYwotICAgICAg
ICAgICAgICAgICAgICAgJHtDTUFLRV9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkCi0gICAg
ICAgICAgICAgICAgICAgICBFWENMVURFX0ZST01fQUxMKQotCi0gICAgIyBUaGUgZ3Rlc3QvZ3Rl
c3RfbWFpbiB0YXJnZXRzIGNhcnJ5IGhlYWRlciBzZWFyY2ggcGF0aAotICAgICMgZGVwZW5kZW5j
aWVzIGF1dG9tYXRpY2FsbHkgd2hlbiB1c2luZyBDTWFrZSAyLjguMTEgb3IKLSAgICAjIGxhdGVy
LiBPdGhlcndpc2Ugd2UgaGF2ZSB0byBhZGQgdGhlbSBoZXJlIG91cnNlbHZlcy4KLSAgICBpZiAo
Q01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMi44LjExKQotICAgICAgaW5jbHVkZV9kaXJlY3Rv
cmllcygiJHtndGVzdF9TT1VSQ0VfRElSfS9pbmNsdWRlIikKLSAgICBlbmRpZigpCi0KLSAgICAj
IE5vdyBzaW1wbHkgbGluayBhZ2FpbnN0IGd0ZXN0IG9yIGd0ZXN0X21haW4gYXMgbmVlZGVkLiBF
ZwotICAgIGFkZF9leGVjdXRhYmxlKGV4YW1wbGUgZXhhbXBsZS5jcHApCi0gICAgdGFyZ2V0X2xp
bmtfbGlicmFyaWVzKGV4YW1wbGUgZ3Rlc3RfbWFpbikKLSAgICBhZGRfdGVzdChOQU1FIGV4YW1w
bGVfdGVzdCBDT01NQU5EIGV4YW1wbGUpCitgYGBjbWFrZQorIyBEb3dubG9hZCBhbmQgdW5wYWNr
IGdvb2dsZXRlc3QgYXQgY29uZmlndXJlIHRpbWUKK2NvbmZpZ3VyZV9maWxlKENNYWtlTGlzdHMu
dHh0LmluIGdvb2dsZXRlc3QtZG93bmxvYWQvQ01ha2VMaXN0cy50eHQpCitleGVjdXRlX3Byb2Nl
c3MoQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1HICIke0NNQUtFX0dFTkVSQVRPUn0iIC4KKyAg
UkVTVUxUX1ZBUklBQkxFIHJlc3VsdAorICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1kb3dubG9hZCApCitpZihyZXN1bHQpCisgIG1lc3Nh
Z2UoRkFUQUxfRVJST1IgIkNNYWtlIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3Vs
dH0iKQorZW5kaWYoKQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAt
LWJ1aWxkIC4KKyAgUkVTVUxUX1ZBUklBQkxFIHJlc3VsdAorICBXT1JLSU5HX0RJUkVDVE9SWSAk
e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1kb3dubG9hZCApCitpZihyZXN1
bHQpCisgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkJ1aWxkIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFp
bGVkOiAke3Jlc3VsdH0iKQorZW5kaWYoKQorCisjIFByZXZlbnQgb3ZlcnJpZGluZyB0aGUgcGFy
ZW50IHByb2plY3QncyBjb21waWxlci9saW5rZXIKKyMgc2V0dGluZ3Mgb24gV2luZG93cworc2V0
KGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQgT04gQ0FDSEUgQk9PTCAiIiBGT1JDRSkKKworIyBBZGQg
Z29vZ2xldGVzdCBkaXJlY3RseSB0byBvdXIgYnVpbGQuIFRoaXMgZGVmaW5lcworIyB0aGUgZ3Rl
c3QgYW5kIGd0ZXN0X21haW4gdGFyZ2V0cy4KK2FkZF9zdWJkaXJlY3RvcnkoJHtDTUFLRV9DVVJS
RU5UX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qtc3JjCisgICAgICAgICAgICAgICAgICR7Q01BS0Vf
Q1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1aWxkCisgICAgICAgICAgICAgICAgIEVY
Q0xVREVfRlJPTV9BTEwpCisKKyMgTm93IHNpbXBseSBsaW5rIGFnYWluc3QgZ3Rlc3Qgb3IgZ3Rl
c3RfbWFpbiBhcyBuZWVkZWQuIEVnCithZGRfZXhlY3V0YWJsZShleGFtcGxlIGV4YW1wbGUuY3Bw
KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4YW1wbGUgZ3Rlc3RfbWFpbikKK2FkZF90ZXN0KE5B
TUUgZXhhbXBsZV90ZXN0IENPTU1BTkQgZXhhbXBsZSkKK2BgYAogCiBOb3RlIHRoYXQgdGhpcyBh
cHByb2FjaCByZXF1aXJlcyBDTWFrZSAyLjguMiBvciBsYXRlciBkdWUgdG8gaXRzIHVzZSBvZiB0
aGUKIGBFeHRlcm5hbFByb2plY3RfQWRkKClgIGNvbW1hbmQuIFRoZSBhYm92ZSB0ZWNobmlxdWUg
aXMgZGlzY3Vzc2VkIGluIG1vcmUgZGV0YWlsCkBAIC0xNzgsMTA0ICsxNTIsNDQgQEAgYWxzbyBj
b250YWlucyBhIGxpbmsgdG8gYSBmdWxseSBnZW5lcmFsaXplZCBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgdGVjaG5pcXVlLgogIyMjIyMgVmlzdWFsIFN0dWRpbyBEeW5hbWljIHZzIFN0YXRpYyBSdW50
aW1lcwogCiBCeSBkZWZhdWx0LCBuZXcgVmlzdWFsIFN0dWRpbyBwcm9qZWN0cyBsaW5rIHRoZSBD
IHJ1bnRpbWVzIGR5bmFtaWNhbGx5IGJ1dAotR29vZ2xlIFRlc3QgbGlua3MgdGhlbSBzdGF0aWNh
bGx5LiBUaGlzIHdpbGwgZ2VuZXJhdGUgYW4gZXJyb3IgdGhhdCBsb29rcworR29vZ2xlVGVzdCBs
aW5rcyB0aGVtIHN0YXRpY2FsbHkuIFRoaXMgd2lsbCBnZW5lcmF0ZSBhbiBlcnJvciB0aGF0IGxv
b2tzCiBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOiBndGVzdC5saWIoZ3Rlc3QtYWxsLm9i
aikgOiBlcnJvciBMTksyMDM4OiBtaXNtYXRjaAogZGV0ZWN0ZWQgZm9yICdSdW50aW1lTGlicmFy
eSc6IHZhbHVlICdNVGRfU3RhdGljRGVidWcnIGRvZXNuJ3QgbWF0Y2ggdmFsdWUKICdNRGRfRHlu
YW1pY0RlYnVnJyBpbiBtYWluLm9iagogCi1Hb29nbGUgVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtl
IG9wdGlvbiBmb3IgdGhpczogYGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnRgCitHb29nbGVUZXN0IGFs
cmVhZHkgaGFzIGEgQ01ha2Ugb3B0aW9uIGZvciB0aGlzOiBgZ3Rlc3RfZm9yY2Vfc2hhcmVkX2Ny
dGAKIAogRW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBtYWtlIGd0ZXN0IGxpbmsgdGhlIHJ1bnRp
bWVzIGR5bmFtaWNhbGx5IHRvbywgYW5kCiBtYXRjaCB0aGUgcHJvamVjdCBpbiB3aGljaCBpdCBp
cyBpbmNsdWRlZC4KIAotIyMjIExlZ2FjeSBCdWlsZCBTY3JpcHRzCisjIyMjIEMrKyBTdGFuZGFy
ZCBWZXJzaW9uCiAKLUJlZm9yZSBzZXR0bGluZyBvbiBDTWFrZSwgd2UgaGF2ZSBiZWVuIHByb3Zp
ZGluZyBoYW5kLW1haW50YWluZWQgYnVpbGQKLXByb2plY3RzL3NjcmlwdHMgZm9yIFZpc3VhbCBT
dHVkaW8sIFhjb2RlLCBhbmQgQXV0b3Rvb2xzLiBXaGlsZSB3ZSBjb250aW51ZSB0bwotcHJvdmlk
ZSB0aGVtIGZvciBjb252ZW5pZW5jZSwgdGhleSBhcmUgbm90IGFjdGl2ZWx5IG1haW50YWluZWQg
YW55IG1vcmUuIFdlCi1oaWdobHkgcmVjb21tZW5kIHRoYXQgeW91IGZvbGxvdyB0aGUgaW5zdHJ1
Y3Rpb25zIGluIHRoZSBhYm92ZSBzZWN0aW9ucyB0bwotaW50ZWdyYXRlIEdvb2dsZSBUZXN0IHdp
dGggeW91ciBleGlzdGluZyBidWlsZCBzeXN0ZW0uCitBbiBlbnZpcm9ubWVudCB0aGF0IHN1cHBv
cnRzIEMrKzExIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIHN1Y2Nlc3NmdWxseSBidWlsZAorR29v
Z2xlVGVzdC4gT25lIHdheSB0byBlbnN1cmUgdGhpcyBpcyB0byBzcGVjaWZ5IHRoZSBzdGFuZGFy
ZCBpbiB0aGUgdG9wLWxldmVsCitwcm9qZWN0LCBmb3IgZXhhbXBsZSBieSB1c2luZyB0aGUgYHNl
dChDTUFLRV9DWFhfU1RBTkRBUkQgMTEpYCBjb21tYW5kLiBJZiB0aGlzCitpcyBub3QgZmVhc2li
bGUsIGZvciBleGFtcGxlIGluIGEgQyBwcm9qZWN0IHVzaW5nIEdvb2dsZVRlc3QgZm9yIHZhbGlk
YXRpb24sCit0aGVuIGl0IGNhbiBiZSBzcGVjaWZpZWQgYnkgYWRkaW5nIGl0IHRvIHRoZSBvcHRp
b25zIGZvciBjbWFrZSB2aWEgdGhlCitgRENNQUtFX0NYWF9GTEFHU2Agb3B0aW9uLgogCi1JZiB5
b3Ugc3RpbGwgbmVlZCB0byB1c2UgdGhlIGxlZ2FjeSBidWlsZCBzY3JpcHRzLCBoZXJlJ3MgaG93
OgorIyMjIFR3ZWFraW5nIEdvb2dsZVRlc3QKIAotVGhlIG1zdmNcIGZvbGRlciBjb250YWlucyB0
d28gc29sdXRpb25zIHdpdGggVmlzdWFsIEMrKyBwcm9qZWN0cy4gT3BlbiB0aGUKLWBndGVzdC5z
bG5gIG9yIGBndGVzdC1tZC5zbG5gIGZpbGUgdXNpbmcgVmlzdWFsIFN0dWRpbywgYW5kIHlvdSBh
cmUgcmVhZHkgdG8KLWJ1aWxkIEdvb2dsZSBUZXN0IHRoZSBzYW1lIHdheSB5b3UgYnVpbGQgYW55
IFZpc3VhbCBTdHVkaW8gcHJvamVjdC4gRmlsZXMgdGhhdAotaGF2ZSBuYW1lcyBlbmRpbmcgd2l0
aCAtbWQgdXNlIERMTCB2ZXJzaW9ucyBvZiBNaWNyb3NvZnQgcnVudGltZSBsaWJyYXJpZXMgKHRo
ZQotL01EIG9yIHRoZSAvTURkIGNvbXBpbGVyIG9wdGlvbikuIEZpbGVzIHdpdGhvdXQgdGhhdCBz
dWZmaXggdXNlIHN0YXRpYyB2ZXJzaW9ucwotb2YgdGhlIHJ1bnRpbWUgbGlicmFyaWVzICh0aGUg
L01UIG9yIHRoZSAvTVRkIG9wdGlvbikuIFBsZWFzZSBub3RlIHRoYXQgb25lIG11c3QKLXVzZSB0
aGUgc2FtZSBvcHRpb24gdG8gY29tcGlsZSBib3RoIGd0ZXN0IGFuZCB0aGUgdGVzdCBjb2RlLiBJ
ZiB5b3UgdXNlIFZpc3VhbAotU3R1ZGlvIDIwMDUgb3IgYWJvdmUsIHdlIHJlY29tbWVuZCB0aGUg
LW1kIHZlcnNpb24gYXMgL01EIGlzIHRoZSBkZWZhdWx0IGZvciBuZXcKLXByb2plY3RzIGluIHRo
ZXNlIHZlcnNpb25zIG9mIFZpc3VhbCBTdHVkaW8uCi0KLU9uIE1hYyBPUyBYLCBvcGVuIHRoZSBg
Z3Rlc3QueGNvZGVwcm9qYCBpbiB0aGUgYHhjb2RlL2AgZm9sZGVyIHVzaW5nIFhjb2RlLgotQnVp
bGQgdGhlICJndGVzdCIgdGFyZ2V0LiBUaGUgdW5pdmVyc2FsIGJpbmFyeSBmcmFtZXdvcmsgd2ls
bCBlbmQgdXAgaW4geW91cgotc2VsZWN0ZWQgYnVpbGQgZGlyZWN0b3J5IChzZWxlY3RlZCBpbiB0
aGUgWGNvZGUgIlByZWZlcmVuY2VzLi4uIiAtPiAiQnVpbGRpbmciCi1wYW5lIGFuZCBkZWZhdWx0
cyB0byB4Y29kZS9idWlsZCkuIEFsdGVybmF0aXZlbHksIGF0IHRoZSBjb21tYW5kIGxpbmUsIGVu
dGVyOgotCi0gICAgeGNvZGVidWlsZAotCi1UaGlzIHdpbGwgYnVpbGQgdGhlICJSZWxlYXNlIiBj
b25maWd1cmF0aW9uIG9mIGd0ZXN0LmZyYW1ld29yayBpbiB5b3VyIGRlZmF1bHQKLWJ1aWxkIGxv
Y2F0aW9uLiBTZWUgdGhlICJ4Y29kZWJ1aWxkIiBtYW4gcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlv
biBhYm91dAotYnVpbGRpbmcgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zIGFuZCBidWlsZGluZyBp
biBkaWZmZXJlbnQgbG9jYXRpb25zLgotCi1JZiB5b3Ugd2lzaCB0byB1c2UgdGhlIEdvb2dsZSBU
ZXN0IFhjb2RlIHByb2plY3Qgd2l0aCBYY29kZSA0LnggYW5kIGFib3ZlLCB5b3UKLW5lZWQgdG8g
ZWl0aGVyOgotCi0qICAgdXBkYXRlIHRoZSBTREsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHhj
b2RlL0NvbmZpZy9HZW5lcmFsLnhjb25maWcuCi0gICAgQ29tbWVudCBvcHRpb25zIGBTREtST09U
YCwgYE1BQ09TX0RFUExPWU1FTlRfVEFSR0VUYCwgYW5kIGBHQ0NfVkVSU0lPTmAuIElmCi0gICAg
eW91IGNob29zZSB0aGlzIHJvdXRlIHlvdSBsb3NlIHRoZSBhYmlsaXR5IHRvIHRhcmdldCBlYXJs
aWVyIHZlcnNpb25zIG9mCi0gICAgTWFjT1MgWC4KLSogICBJbnN0YWxsIGFuIFNESyBmb3IgYW4g
ZWFybGllciB2ZXJzaW9uLiBUaGlzIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHN1cHBvcnRlZAotICAg
IGJ5IEFwcGxlLCBidXQgaGFzIGJlZW4gcmVwb3J0ZWQgdG8gd29yawotICAgIChodHRwOi8vc3Rh
Y2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUzNzg1MTgpLgotCi0jIyMgVHdlYWtpbmcgR29vZ2xl
IFRlc3QKLQotR29vZ2xlIFRlc3QgY2FuIGJlIHVzZWQgaW4gZGl2ZXJzZSBlbnZpcm9ubWVudHMu
IFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gbWF5CitHb29nbGVUZXN0IGNhbiBiZSB1c2VkIGlu
IGRpdmVyc2UgZW52aXJvbm1lbnRzLiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG1heQogbm90
IHdvcmsgKG9yIG1heSBub3Qgd29yayB3ZWxsKSBvdXQgb2YgdGhlIGJveCBpbiBzb21lIGVudmly
b25tZW50cy4gSG93ZXZlciwKLXlvdSBjYW4gZWFzaWx5IHR3ZWFrIEdvb2dsZSBUZXN0IGJ5IGRl
ZmluaW5nIGNvbnRyb2wgbWFjcm9zIG9uIHRoZSBjb21waWxlcgoreW91IGNhbiBlYXNpbHkgdHdl
YWsgR29vZ2xlVGVzdCBieSBkZWZpbmluZyBjb250cm9sIG1hY3JvcyBvbiB0aGUgY29tcGlsZXIK
IGNvbW1hbmQgbGluZS4gR2VuZXJhbGx5LCB0aGVzZSBtYWNyb3MgYXJlIG5hbWVkIGxpa2UgYEdU
RVNUX1hZWmAgYW5kIHlvdSBkZWZpbmUKIHRoZW0gdG8gZWl0aGVyIDEgb3IgMCB0byBlbmFibGUg
b3IgZGlzYWJsZSBhIGNlcnRhaW4gZmVhdHVyZS4KIAogV2UgbGlzdCB0aGUgbW9zdCBmcmVxdWVu
dGx5IHVzZWQgbWFjcm9zIGJlbG93LiBGb3IgYSBjb21wbGV0ZSBsaXN0LCBzZWUgZmlsZQotW2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20vZ29v
Z2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1w
b3J0LmgpLgotCi0jIyMgQ2hvb3NpbmcgYSBUUjEgVHVwbGUgTGlicmFyeQotCi1Tb21lIEdvb2ds
ZSBUZXN0IGZlYXR1cmVzIHJlcXVpcmUgdGhlIEMrKyBUZWNobmljYWwgUmVwb3J0IDEgKFRSMSkg
dHVwbGUKLWxpYnJhcnksIHdoaWNoIGlzIG5vdCB5ZXQgYXZhaWxhYmxlIHdpdGggYWxsIGNvbXBp
bGVycy4gVGhlIGdvb2QgbmV3cyBpcyB0aGF0Ci1Hb29nbGUgVGVzdCBpbXBsZW1lbnRzIGEgc3Vi
c2V0IG9mIFRSMSB0dXBsZSB0aGF0J3MgZW5vdWdoIGZvciBpdHMgb3duIG5lZWQsIGFuZAotd2ls
bCBhdXRvbWF0aWNhbGx5IHVzZSB0aGlzIHdoZW4gdGhlIGNvbXBpbGVyIGRvZXNuJ3QgcHJvdmlk
ZSBUUjEgdHVwbGUuCi0KLVVzdWFsbHkgeW91IGRvbid0IG5lZWQgdG8gY2FyZSBhYm91dCB3aGlj
aCB0dXBsZSBsaWJyYXJ5IEdvb2dsZSBUZXN0IHVzZXMuCi1Ib3dldmVyLCBpZiB5b3VyIHByb2pl
Y3QgYWxyZWFkeSB1c2VzIFRSMSB0dXBsZSwgeW91IG5lZWQgdG8gdGVsbCBHb29nbGUgVGVzdCB0
bwotdXNlIHRoZSBzYW1lIFRSMSB0dXBsZSBsaWJyYXJ5IHRoZSByZXN0IG9mIHlvdXIgcHJvamVj
dCB1c2VzLCBvciB0aGUgdHdvIHR1cGxlCi1pbXBsZW1lbnRhdGlvbnMgd2lsbCBjbGFzaC4gVG8g
ZG8gdGhhdCwgYWRkCi0KLSAgICAtREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTAKLQotdG8gdGhl
IGNvbXBpbGVyIGZsYWdzIHdoaWxlIGNvbXBpbGluZyBHb29nbGUgVGVzdCBhbmQgeW91ciB0ZXN0
cy4gSWYgeW91IHdhbnQgdG8KLWZvcmNlIEdvb2dsZSBUZXN0IHRvIHVzZSBpdHMgb3duIHR1cGxl
IGxpYnJhcnksIGp1c3QgYWRkCi0KLSAgICAtREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTEKLQot
dG8gdGhlIGNvbXBpbGVyIGZsYWdzIGluc3RlYWQuCi0KLUlmIHlvdSBkb24ndCB3YW50IEdvb2ds
ZSBUZXN0IHRvIHVzZSB0dXBsZSBhdCBhbGwsIGFkZAotCi0gICAgLURHVEVTVF9IQVNfVFIxX1RV
UExFPTAKLQotYW5kIGFsbCBmZWF0dXJlcyB1c2luZyB0dXBsZSB3aWxsIGJlIGRpc2FibGVkLgor
W2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oXShodHRwczovL2dpdGh1Yi5jb20v
Z29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2lu
dGVybmFsL2d0ZXN0LXBvcnQuaCkuCiAKICMjIyBNdWx0aS10aHJlYWRlZCBUZXN0cwogCi1Hb29n
bGUgVGVzdCBpcyB0aHJlYWQtc2FmZSB3aGVyZSB0aGUgcHRocmVhZCBsaWJyYXJ5IGlzIGF2YWls
YWJsZS4gQWZ0ZXIKLWAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCJgLCB5b3UgY2FuIGNoZWNrIHRo
ZSBgR1RFU1RfSVNfVEhSRUFEU0FGRWAgbWFjcm8gdG8gc2VlCi13aGV0aGVyIHRoaXMgaXMgdGhl
IGNhc2UgKHllcyBpZiB0aGUgbWFjcm8gaXMgYCNkZWZpbmVkYCB0byAxLCBubyBpZiBpdCdzCi11
bmRlZmluZWQuKS4KK0dvb2dsZVRlc3QgaXMgdGhyZWFkLXNhZmUgd2hlcmUgdGhlIHB0aHJlYWQg
bGlicmFyeSBpcyBhdmFpbGFibGUuIEFmdGVyCitgI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiYCwg
eW91IGNhbiBjaGVjayB0aGUKK2BHVEVTVF9JU19USFJFQURTQUZFYCBtYWNybyB0byBzZWUgd2hl
dGhlciB0aGlzIGlzIHRoZSBjYXNlICh5ZXMgaWYgdGhlIG1hY3JvIGlzCitgI2RlZmluZWRgIHRv
IDEsIG5vIGlmIGl0J3MgdW5kZWZpbmVkLikuCiAKLUlmIEdvb2dsZSBUZXN0IGRvZXNuJ3QgY29y
cmVjdGx5IGRldGVjdCB3aGV0aGVyIHB0aHJlYWQgaXMgYXZhaWxhYmxlIGluIHlvdXIKK0lmIEdv
b2dsZVRlc3QgZG9lc24ndCBjb3JyZWN0bHkgZGV0ZWN0IHdoZXRoZXIgcHRocmVhZCBpcyBhdmFp
bGFibGUgaW4geW91cgogZW52aXJvbm1lbnQsIHlvdSBjYW4gZm9yY2UgaXQgd2l0aAogCiAgICAg
LURHVEVTVF9IQVNfUFRIUkVBRD0xCkBAIC0yODQsMTYgKzE5OCwxNiBAQCBvcgogCiAgICAgLURH
VEVTVF9IQVNfUFRIUkVBRD0wCiAKLVdoZW4gR29vZ2xlIFRlc3QgdXNlcyBwdGhyZWFkLCB5b3Ug
bWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRvIHlvdXIgY29tcGlsZXIgYW5kL29yCitXaGVuIEdvb2ds
ZVRlc3QgdXNlcyBwdGhyZWFkLCB5b3UgbWF5IG5lZWQgdG8gYWRkIGZsYWdzIHRvIHlvdXIgY29t
cGlsZXIgYW5kL29yCiBsaW5rZXIgdG8gc2VsZWN0IHRoZSBwdGhyZWFkIGxpYnJhcnksIG9yIHlv
dSdsbCBnZXQgbGluayBlcnJvcnMuIElmIHlvdSB1c2UgdGhlCi1DTWFrZSBzY3JpcHQgb3IgdGhl
IGRlcHJlY2F0ZWQgQXV0b3Rvb2xzIHNjcmlwdCwgdGhpcyBpcyB0YWtlbiBjYXJlIG9mIGZvciB5
b3UuCi1JZiB5b3UgdXNlIHlvdXIgb3duIGJ1aWxkIHNjcmlwdCwgeW91J2xsIG5lZWQgdG8gcmVh
ZCB5b3VyIGNvbXBpbGVyIGFuZCBsaW5rZXIncwotbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBm
bGFncyB0byBhZGQuCitDTWFrZSBzY3JpcHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91
LiBJZiB5b3UgdXNlIHlvdXIgb3duIGJ1aWxkIHNjcmlwdCwKK3lvdSdsbCBuZWVkIHRvIHJlYWQg
eW91ciBjb21waWxlciBhbmQgbGlua2VyJ3MgbWFudWFsIHRvIGZpZ3VyZSBvdXQgd2hhdCBmbGFn
cwordG8gYWRkLgogCiAjIyMgQXMgYSBTaGFyZWQgTGlicmFyeSAoRExMKQogCi1Hb29nbGUgVGVz
dCBpcyBjb21wYWN0LCBzbyBtb3N0IHVzZXJzIGNhbiBidWlsZCBhbmQgbGluayBpdCBhcyBhIHN0
YXRpYyBsaWJyYXJ5Ci1mb3IgdGhlIHNpbXBsaWNpdHkuIFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBH
b29nbGUgVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5IChrbm93bgorR29vZ2xlVGVzdCBpcyBjb21w
YWN0LCBzbyBtb3N0IHVzZXJzIGNhbiBidWlsZCBhbmQgbGluayBpdCBhcyBhIHN0YXRpYyBsaWJy
YXJ5Citmb3IgdGhlIHNpbXBsaWNpdHkuIFlvdSBjYW4gY2hvb3NlIHRvIHVzZSBHb29nbGVUZXN0
IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duCiBhcyBhIERMTCBvbiBXaW5kb3dzKSBpZiB5b3Ug
cHJlZmVyLgogCiBUbyBjb21waWxlICpndGVzdCogYXMgYSBzaGFyZWQgbGlicmFyeSwgYWRkCkBA
IC0zMTMsMjIgKzIyNywyMiBAQCBOb3RlOiB3aGlsZSB0aGUgYWJvdmUgc3RlcHMgYXJlbid0IHRl
Y2huaWNhbGx5IG5lY2Vzc2FyeSB0b2RheSB3aGVuIHVzaW5nIHNvbWUKIGNvbXBpbGVycyAoZS5n
LiBHQ0MpLCB0aGV5IG1heSBiZWNvbWUgbmVjZXNzYXJ5IGluIHRoZSBmdXR1cmUsIGlmIHdlIGRl
Y2lkZSB0bwogaW1wcm92ZSB0aGUgc3BlZWQgb2YgbG9hZGluZyB0aGUgbGlicmFyeSAoc2VlCiA8
aHR0cDovL2djYy5nbnUub3JnL3dpa2kvVmlzaWJpbGl0eT4gZm9yIGRldGFpbHMpLiBUaGVyZWZv
cmUgeW91IGFyZSByZWNvbW1lbmRlZAotdG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUgZmxhZ3Mgd2hl
biB1c2luZyBHb29nbGUgVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5LgotT3RoZXJ3aXNlIGEgZnV0
dXJlIHJlbGVhc2Ugb2YgR29vZ2xlIFRlc3QgbWF5IGJyZWFrIHlvdXIgYnVpbGQgc2NyaXB0Lgor
dG8gYWx3YXlzIGFkZCB0aGUgYWJvdmUgZmxhZ3Mgd2hlbiB1c2luZyBHb29nbGVUZXN0IGFzIGEg
c2hhcmVkIGxpYnJhcnkuCitPdGhlcndpc2UgYSBmdXR1cmUgcmVsZWFzZSBvZiBHb29nbGVUZXN0
IG1heSBicmVhayB5b3VyIGJ1aWxkIHNjcmlwdC4KIAogIyMjIEF2b2lkaW5nIE1hY3JvIE5hbWUg
Q2xhc2hlcwogCiBJbiBDKyssIG1hY3JvcyBkb24ndCBvYmV5IG5hbWVzcGFjZXMuIFRoZXJlZm9y
ZSB0d28gbGlicmFyaWVzIHRoYXQgYm90aCBkZWZpbmUgYQogbWFjcm8gb2YgdGhlIHNhbWUgbmFt
ZSB3aWxsIGNsYXNoIGlmIHlvdSBgI2luY2x1ZGVgIGJvdGggZGVmaW5pdGlvbnMuIEluIGNhc2Ug
YQotR29vZ2xlIFRlc3QgbWFjcm8gY2xhc2hlcyB3aXRoIGFub3RoZXIgbGlicmFyeSwgeW91IGNh
biBmb3JjZSBHb29nbGUgVGVzdCB0bworR29vZ2xlVGVzdCBtYWNybyBjbGFzaGVzIHdpdGggYW5v
dGhlciBsaWJyYXJ5LCB5b3UgY2FuIGZvcmNlIEdvb2dsZVRlc3QgdG8KIHJlbmFtZSBpdHMgbWFj
cm8gdG8gYXZvaWQgdGhlIGNvbmZsaWN0LgogCi1TcGVjaWZpY2FsbHksIGlmIGJvdGggR29vZ2xl
IFRlc3QgYW5kIHNvbWUgb3RoZXIgY29kZSBkZWZpbmUgbWFjcm8gRk9PLCB5b3UgY2FuCitTcGVj
aWZpY2FsbHksIGlmIGJvdGggR29vZ2xlVGVzdCBhbmQgc29tZSBvdGhlciBjb2RlIGRlZmluZSBt
YWNybyBGT08sIHlvdSBjYW4KIGFkZAogCiAgICAgLURHVEVTVF9ET05UX0RFRklORV9GT089MQog
Ci10byB0aGUgY29tcGlsZXIgZmxhZ3MgdG8gdGVsbCBHb29nbGUgVGVzdCB0byBjaGFuZ2UgdGhl
IG1hY3JvJ3MgbmFtZSBmcm9tIGBGT09gCit0byB0aGUgY29tcGlsZXIgZmxhZ3MgdG8gdGVsbCBH
b29nbGVUZXN0IHRvIGNoYW5nZSB0aGUgbWFjcm8ncyBuYW1lIGZyb20gYEZPT2AKIHRvIGBHVEVT
VF9GT09gLiBDdXJyZW50bHkgYEZPT2AgY2FuIGJlIGBGQUlMYCwgYFNVQ0NFRURgLCBvciBgVEVT
VGAuIEZvcgogZXhhbXBsZSwgd2l0aCBgLURHVEVTVF9ET05UX0RFRklORV9URVNUPTFgLCB5b3Un
bGwgbmVlZCB0byB3cml0ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9j
aGFuZ2VzLmRpZmYgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jaGFuZ2VzLmRpZmYKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5OWQ3OTVlNzAwNTNhZWQ4MzhmZTBlMDE1ZTk2NTAz
YWZjMjU4OTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY2hhbmdlcy5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEs
MzkgKzAsMCBAQAotZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1kZWF0aC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRo
LXRlc3QuY2MKLWluZGV4IDA5MDgzNTUxNjEyLi5hYzg2NjAzNTRjYSAxMDA2NDQKLS0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjCi0rKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwotQEAgLTExNTIsMjAg
KzExNTIsNiBAQCBzdHJ1Y3QgRXhlY0RlYXRoVGVzdEFyZ3MgewotICAgaW50IGNsb3NlX2ZkOyAg
ICAgICAvLyBGaWxlIGRlc2NyaXB0b3IgdG8gY2xvc2U7IHRoZSByZWFkIGVuZCBvZiBhIHBpcGUK
LSB9OwotIAotLSMgIGlmIEdURVNUX09TX01BQwotLWlubGluZSBjaGFyKiogR2V0RW52aXJvbigp
IHsKLS0gIC8vIFdoZW4gR29vZ2xlIFRlc3QgaXMgYnVpbHQgYXMgYSBmcmFtZXdvcmsgb24gTWFj
T1MgWCwgdGhlIGVudmlyb24gdmFyaWFibGUKLS0gIC8vIGlzIHVuYXZhaWxhYmxlLiBBcHBsZSdz
IGRvY3VtZW50YXRpb24gKG1hbiBlbnZpcm9uKSByZWNvbW1lbmRzIHVzaW5nCi0tICAvLyBfTlNH
ZXRFbnZpcm9uKCkgaW5zdGVhZC4KLS0gIHJldHVybiAqX05TR2V0RW52aXJvbigpOwotLX0KLS0j
ICBlbHNlCi0tLy8gU29tZSBQT1NJWCBwbGF0Zm9ybXMgZXhwZWN0IHlvdSB0byBkZWNsYXJlIGVu
dmlyb24uIGV4dGVybiAiQyIgbWFrZXMKLS0vLyBpdCByZXNpZGUgaW4gdGhlIGdsb2JhbCBuYW1l
c3BhY2UuCi0tZXh0ZXJuICJDIiBjaGFyKiogZW52aXJvbjsKLS1pbmxpbmUgY2hhcioqIEdldEVu
dmlyb24oKSB7IHJldHVybiBlbnZpcm9uOyB9Ci0tIyAgZW5kaWYgIC8vIEdURVNUX09TX01BQwot
LQotICMgIGlmICFHVEVTVF9PU19RTlgKLSAvLyBUaGUgbWFpbiBmdW5jdGlvbiBmb3IgYSB0aHJl
YWRzYWZlLXN0eWxlIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcy4KLSAvLyBUaGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBpbiBhIGNsb25lKCktZWQgcHJvY2VzcyBhbmQgdGh1cyBtdXN0IGF2b2lkCi1A
QCAtMTE5MSw4ICsxMTc3LDExIEBAIHN0YXRpYyBpbnQgRXhlY0RlYXRoVGVzdENoaWxkTWFpbih2
b2lkKiBjaGlsZF9hcmcpIHsKLSAgIC8vIHVuc2FmZS4gIFNpbmNlIGV4ZWN2ZSgpIGRvZXNuJ3Qg
c2VhcmNoIHRoZSBQQVRILCB0aGUgdXNlciBtdXN0Ci0gICAvLyBpbnZva2UgdGhlIHRlc3QgcHJv
Z3JhbSB2aWEgYSB2YWxpZCBwYXRoIHRoYXQgY29udGFpbnMgYXQgbGVhc3QKLSAgIC8vIG9uZSBw
YXRoIHNlcGFyYXRvci4KLS0gIGV4ZWN2ZShhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2LCBHZXRF
bnZpcm9uKCkpOwotLSAgRGVhdGhUZXN0QWJvcnQoc3RkOjpzdHJpbmcoImV4ZWN2ZSgiKSArIGFy
Z3MtPmFyZ3ZbMF0gKyAiLCAuLi4pIGluICIgKwotKyAgLy8gV2UgaGF2ZSByZXBsYWNlZCBleGVj
dmUoKSB3aXRoIGV4ZWN2KCkgZm9yIFdlYktpdCB0byBhdm9pZCB1c2luZwotKyAgLy8gZW52aXJv
bi4gSXQgc2hvdWxkIGJlIHNhZmUgYmVjYXVzZSBleGVjdigpIGlzIGp1c3QgYSBzaW1wbGUgd3Jh
cHBlcgotKyAgLy8gb2YgZXhlY3ZlKCkuCi0rICBleGVjdihhcmdzLT5hcmd2WzBdLCBhcmdzLT5h
cmd2KTsKLSsgIERlYXRoVGVzdEFib3J0KHN0ZDo6c3RyaW5nKCJleGVjdigiKSArIGFyZ3MtPmFy
Z3ZbMF0gKyAiLCAuLi4pIGluICIgKwotICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsg
IiBmYWlsZWQ6ICIgKwotICAgICAgICAgICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24o
KSk7Ci0gICByZXR1cm4gRVhJVF9GQUlMVVJFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvY21ha2UvZ3Rlc3QucGMuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFr
ZS9ndGVzdC5wYy5pbgppbmRleCBlNzk2N2FkNTZmZjJjMzJlZDRiYTA2NzAzYWVhNTI1ZGNhZDJj
ZTdiLi5iNDE0OGZhZTQyYjFjZDc4MmRjMWI2YTVkMWQ3ZTFlM2E4ZTRlNjY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdC5wYy5pbgorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdC5wYy5pbgpAQCAtNiw0ICs2LDQgQEAgRGVzY3Jp
cHRpb246IEdvb2dsZVRlc3QgKHdpdGhvdXQgbWFpbigpIGZ1bmN0aW9uKQogVmVyc2lvbjogQFBS
T0pFQ1RfVkVSU0lPTkAKIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0
CiBMaWJzOiAtTCR7bGliZGlyfSAtbGd0ZXN0IEBDTUFLRV9USFJFQURfTElCU19JTklUQAotQ2Zs
YWdzOiAtSSR7aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01BQ1JPQCBAQ01BS0VfVEhS
RUFEX0xJQlNfSU5JVEAKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9IEBHVEVTVF9IQVNfUFRIUkVB
RF9NQUNST0AKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0
X21haW4ucGMuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdF9tYWluLnBj
LmluCmluZGV4IGZlMjVkOWM3M2M2ODNiNjQxN2I5OWJiNzAzYzEzYWUxNmJhOGE5NTIuLjM4Yzg4
YzU0ZDUzODZkOTYwZWM0OGQ5Zjc2NjY0ZWI5Nzk4YjRlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0X21haW4ucGMuaW4KKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3RfbWFpbi5wYy5pbgpAQCAtNSw2ICs1LDYgQEAgTmFtZTog
Z3Rlc3RfbWFpbgogRGVzY3JpcHRpb246IEdvb2dsZVRlc3QgKHdpdGggbWFpbigpIGZ1bmN0aW9u
KQogVmVyc2lvbjogQFBST0pFQ1RfVkVSU0lPTkAKIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2dv
b2dsZS9nb29nbGV0ZXN0Ci1SZXF1aXJlczogZ3Rlc3QKK1JlcXVpcmVzOiBndGVzdCA9IEBQUk9K
RUNUX1ZFUlNJT05ACiBMaWJzOiAtTCR7bGliZGlyfSAtbGd0ZXN0X21haW4gQENNQUtFX1RIUkVB
RF9MSUJTX0lOSVRACi1DZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURf
TUFDUk9AIEBDTUFLRV9USFJFQURfTElCU19JTklUQAorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0g
QEdURVNUX0hBU19QVEhSRUFEX01BQ1JPQApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jbWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQppbmRleCA4YzFmOWJhOTljZjUwNTc0ZjY2OWRk
N2RlYmEzMjRkY2U0MDU5NWYzLi5kYzJiNjg1YzNhOGYwOTk1MzhhMTM1N2ViZGUyOTY4NmM2NGIw
NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91
dGlscy5jbWFrZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9pbnRlcm5hbF91
dGlscy5jbWFrZQpAQCAtMTIsNiArMTIsMTAgQEAKICMgICBUZXN0IGFuZCBHb29nbGUgTW9jaydz
IG9wdGlvbigpIGRlZmluaXRpb25zLCBhbmQgdGh1cyBtdXN0IGJlCiAjICAgY2FsbGVkICphZnRl
ciogdGhlIG9wdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQuCiAKK2lmIChQT0xJQ1kgQ01QMDA1NCkK
KyAgY21ha2VfcG9saWN5KFNFVCBDTVAwMDU0IE5FVykKK2VuZGlmIChQT0xJQ1kgQ01QMDA1NCkK
KwogIyBUd2Vha3MgQ01ha2UncyBkZWZhdWx0IGNvbXBpbGVyL2xpbmtlciBzZXR0aW5ncyB0byBz
dWl0IEdvb2dsZSBUZXN0J3MgbmVlZHMuCiAjCiAjIFRoaXMgbXVzdCBiZSBhIG1hY3JvKCksIGFz
IGluc2lkZSBhIGZ1bmN0aW9uIHN0cmluZygpIGNhbiBvbmx5CkBAIC0yMiw2ICsyNiw4IEBAIG1h
Y3JvKGZpeF9kZWZhdWx0X2NvbXBpbGVyX3NldHRpbmdzXykKICAgICAjIFRoaXMgcmVwbGFjZW1l
bnQgY29kZSBpcyB0YWtlbiBmcm9tIHNhbXBsZSBpbiB0aGUgQ01ha2UgV2lraSBhdAogICAgICMg
aHR0cHM6Ly9naXRsYWIua2l0d2FyZS5jb20vY21ha2UvY29tbXVuaXR5L3dpa2lzL0ZBUSNkeW5h
bWljLXJlcGxhY2UuCiAgICAgZm9yZWFjaCAoZmxhZ192YXIKKyAgICAgICAgICAgICBDTUFLRV9D
X0ZMQUdTIENNQUtFX0NfRkxBR1NfREVCVUcgQ01BS0VfQ19GTEFHU19SRUxFQVNFCisgICAgICAg
ICAgICAgQ01BS0VfQ19GTEFHU19NSU5TSVpFUkVMIENNQUtFX0NfRkxBR1NfUkVMV0lUSERFQklO
Rk8KICAgICAgICAgICAgICBDTUFLRV9DWFhfRkxBR1MgQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHIENN
QUtFX0NYWF9GTEFHU19SRUxFQVNFCiAgICAgICAgICAgICAgQ01BS0VfQ1hYX0ZMQUdTX01JTlNJ
WkVSRUwgQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZPKQogICAgICAgaWYgKE5PVCBCVUlM
RF9TSEFSRURfTElCUyBBTkQgTk9UIGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQpCkBAIC01Niw3ICs2
Miw2IEBAIG1hY3JvKGNvbmZpZ19jb21waWxlcl9hbmRfbGlua2VyKQogICB1bnNldChHVEVTVF9I
QVNfUFRIUkVBRCkKICAgaWYgKE5PVCBndGVzdF9kaXNhYmxlX3B0aHJlYWRzIEFORCBOT1QgTUlO
R1cpCiAgICAgIyBEZWZpbmVzIENNQUtFX1VTRV9QVEhSRUFEU19JTklUIGFuZCBDTUFLRV9USFJF
QURfTElCU19JTklULgotICAgIHNldChUSFJFQURTX1BSRUZFUl9QVEhSRUFEX0ZMQUcgT04pCiAg
ICAgZmluZF9wYWNrYWdlKFRocmVhZHMpCiAgICAgaWYgKENNQUtFX1VTRV9QVEhSRUFEU19JTklU
KQogICAgICAgc2V0KEdURVNUX0hBU19QVEhSRUFEIE9OKQpAQCAtNjcsMzcgKzcyLDIzIEBAIG1h
Y3JvKGNvbmZpZ19jb21waWxlcl9hbmRfbGlua2VyKQogICBpZiAoTVNWQykKICAgICAjIE5ld2xp
bmVzIGluc2lkZSBmbGFncyB2YXJpYWJsZXMgYnJlYWsgQ01ha2UncyBOTWFrZSBnZW5lcmF0b3Iu
CiAgICAgIyBUT0RPKHZsYWRsQGdvb2dsZS5jb20pOiBBZGQgLVJUQ3MgYW5kIC1SVEN1IHRvIGRl
YnVnIGJ1aWxkcy4KLSAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIi1HUyAtVzQgLVdYIC13ZDQyNTEg
LXdkNDI3NSAtbm9sb2dvIC1KIC1aaSIpCi0gICAgaWYgKE1TVkNfVkVSU0lPTiBMRVNTIDE0MDAp
ICAjIDE0MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDA1Ci0gICAgICAjIFN1cHByZXNzIHNwdXJpb3Vz
IHdhcm5pbmdzIE1TVkMgNy4xIHNvbWV0aW1lcyBpc3N1ZXMuCi0gICAgICAjIEZvcmNpbmcgdmFs
dWUgdG8gYm9vbC4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30g
LXdkNDgwMCIpCi0gICAgICAjIENvcHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0
b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZC4KLSAgICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtj
eHhfYmFzZV9mbGFnc30gLXdkNDUxMSAtd2Q0NTEyIikKLSAgICAgICMgQ29tcGF0aWJpbGl0eSB3
YXJuaW5ncyBub3QgYXBwbGljYWJsZSB0byBHb29nbGUgVGVzdC4KLSAgICAgICMgUmVzb2x2ZWQg
b3ZlcmxvYWQgd2FzIGZvdW5kIGJ5IGFyZ3VtZW50LWRlcGVuZGVudCBsb29rdXAuCi0gICAgICBz
ZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ2NzUiKQotICAgIGVuZGlm
KCkKLSAgICBpZiAoTVNWQ19WRVJTSU9OIExFU1MgMTUwMCkgICMgMTUwMCBpcyBWaXN1YWwgU3R1
ZGlvIDIwMDgKLSAgICAgICMgQ29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudC4KLSAg
ICAgICMgV2hlbiBjb21waWxpbmcgd2l0aCAvVzQsIHdlIGdldCBzZXZlcmFsIGluc3RhbmNlcyBv
ZiBDNDEyNwotICAgICAgIyAoQ29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCkuIElu
IG91ciBjb2RlLCB3ZSBkaXNhYmxlIHRoYXQKLSAgICAgICMgd2FybmluZyBvbiBhIGNhc2UtYnkt
Y2FzZSBiYXNpcy4gSG93ZXZlciwgb24gVmlzdWFsIFN0dWRpbyAyMDA1LAotICAgICAgIyB0aGUg
d2FybmluZyBmaXJlcyBvbiBzdGQ6Omxpc3QuIFRoZXJlZm9yZSBvbiB0aGF0IGNvbXBpbGVyIGFu
ZCBlYXJsaWVyLAotICAgICAgIyB3ZSBkaXNhYmxlIHRoZSB3YXJuaW5nIHByb2plY3Qtd2lkZS4K
LSAgICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30gLXdkNDEyNyIpCi0g
ICAgZW5kaWYoKQotICAgIGlmIChOT1QgKE1TVkNfVkVSU0lPTiBMRVNTIDE3MDApKSAgIyAxNzAw
IGlzIFZpc3VhbCBTdHVkaW8gMjAxMi4KLSAgICAgICMgU3VwcHJlc3MgInVucmVhY2hhYmxlIGNv
ZGUiIHdhcm5pbmcgb24gVlMgMjAxMiBhbmQgbGF0ZXIuCi0gICAgICAjIGh0dHA6Ly9zdGFja292
ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzIzMjY2OSBleHBsYWlucyB0aGUgaXNzdWUuCi0gICAgICBz
ZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ3MDIiKQotICAgIGVuZGlm
KCkKLQorICAgIHNldChjeHhfYmFzZV9mbGFncyAiLUdTIC1XNCAtV1ggLXdkNDI1MSAtd2Q0Mjc1
IC1ub2xvZ28gLUoiKQogICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9mbGFnc30g
LURfVU5JQ09ERSAtRFVOSUNPREUgLURXSU4zMiAtRF9XSU4zMiIpCiAgICAgc2V0KGN4eF9iYXNl
X2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAtRFNUUklDVCAtRFdJTjMyX0xFQU5fQU5EX01FQU4i
KQogICAgIHNldChjeHhfZXhjZXB0aW9uX2ZsYWdzICItRUhzYyAtRF9IQVNfRVhDRVBUSU9OUz0x
IikKICAgICBzZXQoY3h4X25vX2V4Y2VwdGlvbl9mbGFncyAiLUVIcy1jLSAtRF9IQVNfRVhDRVBU
SU9OUz0wIikKICAgICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIi1HUi0iKQorICAgICMgU3VwcHJl
c3MgInVucmVhY2hhYmxlIGNvZGUiIHdhcm5pbmcKKyAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93
LmNvbS9xdWVzdGlvbnMvMzIzMjY2OSBleHBsYWlucyB0aGUgaXNzdWUuCisgICAgc2V0KGN4eF9i
YXNlX2ZsYWdzICIke2N4eF9iYXNlX2ZsYWdzfSAtd2Q0NzAyIikKKyAgICAjIEVuc3VyZSBNU1ZD
IHRyZWF0cyBzb3VyY2UgZmlsZXMgYXMgVVRGLTggZW5jb2RlZC4KKyAgICBzZXQoY3h4X2Jhc2Vf
ZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC11dGYtOCIpCisgIGVsc2VpZiAoQ01BS0VfQ1hYX0NP
TVBJTEVSX0lEIFNUUkVRVUFMICJDbGFuZyIpCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICItV2Fs
bCAtV3NoYWRvdyAtV2Vycm9yIC1XY29udmVyc2lvbiIpCisgICAgc2V0KGN4eF9leGNlcHRpb25f
ZmxhZ3MgIi1mZXhjZXB0aW9ucyIpCisgICAgc2V0KGN4eF9ub19leGNlcHRpb25fZmxhZ3MgIi1m
bm8tZXhjZXB0aW9ucyIpCisgICAgc2V0KGN4eF9zdHJpY3RfZmxhZ3MgIi1XIC1XcG9pbnRlci1h
cml0aCAtV3JldHVybi10eXBlIC1XY2FzdC1xdWFsIC1Xd3JpdGUtc3RyaW5ncyAtV3N3aXRjaCAt
V3VudXNlZC1wYXJhbWV0ZXIgLVdjYXN0LWFsaWduIC1XY2hhci1zdWJzY3JpcHRzIC1XaW5saW5l
IC1XcmVkdW5kYW50LWRlY2xzIikKKyAgICBzZXQoY3h4X25vX3J0dGlfZmxhZ3MgIi1mbm8tcnR0
aSIpCiAgIGVsc2VpZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYKQogICAgIHNldChjeHhfYmFz
ZV9mbGFncyAiLVdhbGwgLVdzaGFkb3cgLVdlcnJvciIpCiAgICAgaWYoTk9UIENNQUtFX0NYWF9D
T01QSUxFUl9WRVJTSU9OIFZFUlNJT05fTEVTUyA3LjAuMCkKQEAgLTE0OCw3ICsxMzksNiBAQCBt
YWNybyhjb25maWdfY29tcGlsZXJfYW5kX2xpbmtlcikKICAgICAiJHtDTUFLRV9DWFhfRkxBR1N9
ICR7Y3h4X2Jhc2VfZmxhZ3N9ICR7Y3h4X25vX2V4Y2VwdGlvbl9mbGFnc30iKQogICBzZXQoY3h4
X2RlZmF1bHQgIiR7Y3h4X2V4Y2VwdGlvbn0iKQogICBzZXQoY3h4X25vX3J0dGkgIiR7Y3h4X2Rl
ZmF1bHR9ICR7Y3h4X25vX3J0dGlfZmxhZ3N9IikKLSAgc2V0KGN4eF91c2Vfb3duX3R1cGxlICIk
e2N4eF9kZWZhdWx0fSAtREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTEiKQogCiAgICMgRm9yIGJ1
aWxkaW5nIHRoZSBndGVzdCBsaWJyYXJpZXMuCiAgIHNldChjeHhfc3RyaWN0ICIke2N4eF9kZWZh
dWx0fSAke2N4eF9zdHJpY3RfZmxhZ3N9IikKQEAgLTE2Nyw2ICsxNTcsMjIgQEAgZnVuY3Rpb24o
Y3h4X2xpYnJhcnlfd2l0aF90eXBlIG5hbWUgdHlwZSBjeHhfZmxhZ3MpCiAgIHNldF90YXJnZXRf
cHJvcGVydGllcygke25hbWV9CiAgICAgUFJPUEVSVElFUwogICAgIERFQlVHX1BPU1RGSVggImQi
KQorICAjIFNldCB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgYnVpbGQgYXJ0aWZhY3RzCisgIHNl
dF90YXJnZXRfcHJvcGVydGllcygke25hbWV9CisgICAgUFJPUEVSVElFUworICAgIFJVTlRJTUVf
T1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfS9iaW4iCisgICAgTElCUkFSWV9P
VVRQVVRfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9L2xpYiIKKyAgICBBUkNISVZFX09V
VFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0vbGliIgorICAgIFBEQl9PVVRQVVRf
RElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9L2JpbiIpCisgICMgbWFrZSBQREJzIG1hdGNo
IGxpYnJhcnkgbmFtZQorICBnZXRfdGFyZ2V0X3Byb3BlcnR5KHBkYl9kZWJ1Z19wb3N0Zml4ICR7
bmFtZX0gREVCVUdfUE9TVEZJWCkKKyAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7bmFtZX0KKyAg
ICBQUk9QRVJUSUVTCisgICAgUERCX05BTUUgIiR7bmFtZX0iCisgICAgUERCX05BTUVfREVCVUcg
IiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0Zml4fSIKKyAgICBDT01QSUxFX1BEQl9OQU1FICIke25h
bWV9IgorICAgIENPTVBJTEVfUERCX05BTUVfREVCVUcgIiR7bmFtZX0ke3BkYl9kZWJ1Z19wb3N0
Zml4fSIpCisKICAgaWYgKEJVSUxEX1NIQVJFRF9MSUJTIE9SIHR5cGUgU1RSRVFVQUwgIlNIQVJF
RCIpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7bmFtZX0KICAgICAgIFBST1BFUlRJRVMK
QEAgLTE4NCw2ICsxOTAsMTAgQEAgZnVuY3Rpb24oY3h4X2xpYnJhcnlfd2l0aF90eXBlIG5hbWUg
dHlwZSBjeHhfZmxhZ3MpCiAgICAgZW5kaWYoKQogICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygk
e25hbWV9IFBVQkxJQyAke3RocmVhZHNfc3BlY30pCiAgIGVuZGlmKCkKKworICBpZiAoTk9UICIk
e0NNQUtFX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIjMuOCIpCisgICAgdGFyZ2V0X2NvbXBpbGVf
ZmVhdHVyZXMoJHtuYW1lfSBQVUJMSUMgY3h4X3N0ZF8xMSkKKyAgZW5kaWYoKQogZW5kZnVuY3Rp
b24oKQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTIwNCw3ICsyMTQsNyBAQCBlbmRmdW5jdGlvbigp
CiAjIGlzIGJ1aWx0IGZyb20gdGhlIGdpdmVuIHNvdXJjZSBmaWxlcyB3aXRoIHRoZSBnaXZlbiBj
b21waWxlciBmbGFncy4KIGZ1bmN0aW9uKGN4eF9leGVjdXRhYmxlX3dpdGhfZmxhZ3MgbmFtZSBj
eHhfZmxhZ3MgbGlicykKICAgYWRkX2V4ZWN1dGFibGUoJHtuYW1lfSAke0FSR059KQotICBpZiAo
TVNWQyBBTkQgKE5PVCAoTVNWQ19WRVJTSU9OIExFU1MgMTcwMCkpKSAgIyAxNzAwIGlzIFZpc3Vh
bCBTdHVkaW8gMjAxMi4KKyAgaWYgKE1TVkMpCiAgICAgIyBCaWdPYmogcmVxdWlyZWQgZm9yIHRl
c3RzLgogICAgIHNldChjeHhfZmxhZ3MgIiR7Y3h4X2ZsYWdzfSAtYmlnb2JqIikKICAgZW5kaWYo
KQpAQCAtMjM2LDcgKzI0NiwxMyBAQCBmdW5jdGlvbihjeHhfZXhlY3V0YWJsZSBuYW1lIGRpciBs
aWJzKQogZW5kZnVuY3Rpb24oKQogCiAjIFNldHMgUFlUSE9OSU5URVJQX0ZPVU5EIGFuZCBQWVRI
T05fRVhFQ1VUQUJMRS4KLWZpbmRfcGFja2FnZShQeXRob25JbnRlcnApCitpZiAoIiR7Q01BS0Vf
VkVSU0lPTn0iIFZFUlNJT05fTEVTUyAiMy4xMi4wIikKKyAgZmluZF9wYWNrYWdlKFB5dGhvbklu
dGVycCkKK2Vsc2UoKQorICBmaW5kX3BhY2thZ2UoUHl0aG9uIENPTVBPTkVOVFMgSW50ZXJwcmV0
ZXIpCisgIHNldChQWVRIT05JTlRFUlBfRk9VTkQgJHtQeXRob25fSW50ZXJwcmV0ZXJfRk9VTkR9
KQorICBzZXQoUFlUSE9OX0VYRUNVVEFCTEUgJHtQeXRob25fRVhFQ1VUQUJMRX0pCitlbmRpZigp
CiAKICMgY3h4X3Rlc3Rfd2l0aF9mbGFncyhuYW1lIGN4eF9mbGFncyBsaWJzIHNyY3MuLi4pCiAj
CkBAIC0yNDQsNyArMjYwLDcgQEAgZmluZF9wYWNrYWdlKFB5dGhvbkludGVycCkKICMgZnJvbSB0
aGUgZ2l2ZW4gc291cmNlIGZpbGVzIHdpdGggdGhlIGdpdmVuIGNvbXBpbGVyIGZsYWdzLgogZnVu
Y3Rpb24oY3h4X3Rlc3Rfd2l0aF9mbGFncyBuYW1lIGN4eF9mbGFncyBsaWJzKQogICBjeHhfZXhl
Y3V0YWJsZV93aXRoX2ZsYWdzKCR7bmFtZX0gIiR7Y3h4X2ZsYWdzfSIgIiR7bGlic30iICR7QVJH
Tn0pCi0gIGFkZF90ZXN0KE5BTUUgJHtuYW1lfSBDT01NQU5EICR7bmFtZX0pCisgICAgYWRkX3Rl
c3QoTkFNRSAke25hbWV9IENPTU1BTkQgIiQ8VEFSR0VUX0ZJTEU6JHtuYW1lfT4iKQogZW5kZnVu
Y3Rpb24oKQogCiAjIGN4eF90ZXN0KG5hbWUgbGlicyBzcmNzLi4uKQpAQCAtMjYzLDMzICsyNzks
MzAgQEAgZW5kZnVuY3Rpb24oKQogIyB0ZXN0L25hbWUucHkuICBJdCBkb2VzIG5vdGhpbmcgaWYg
UHl0aG9uIGlzIG5vdCBpbnN0YWxsZWQuCiBmdW5jdGlvbihweV90ZXN0IG5hbWUpCiAgIGlmIChQ
WVRIT05JTlRFUlBfRk9VTkQpCi0gICAgaWYgKCR7Q01BS0VfTUFKT1JfVkVSU0lPTn0uJHtDTUFL
RV9NSU5PUl9WRVJTSU9OfSBHUkVBVEVSIDMuMSkKKyAgICBpZiAoIiR7Q01BS0VfTUFKT1JfVkVS
U0lPTn0uJHtDTUFLRV9NSU5PUl9WRVJTSU9OfSIgVkVSU0lPTl9HUkVBVEVSIDMuMSkKICAgICAg
IGlmIChDTUFLRV9DT05GSUdVUkFUSU9OX1RZUEVTKQotCSMgTXVsdGktY29uZmlndXJhdGlvbiBi
dWlsZCBnZW5lcmF0b3JzIGFzIGZvciBWaXN1YWwgU3R1ZGlvIHNhdmUKLQkjIG91dHB1dCBpbiBh
IHN1YmRpcmVjdG9yeSBvZiBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIgKERlYnVnLAotCSMgUmVs
ZWFzZSBldGMuKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGl0IGhlcmUuCi0gICAgICAgIGFkZF90
ZXN0KAotICAgICAgICAgIE5BTUUgJHtuYW1lfQorICAgICAgICAjIE11bHRpLWNvbmZpZ3VyYXRp
b24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBmb3IgVmlzdWFsIFN0dWRpbyBzYXZlCisgICAgICAgICMg
b3V0cHV0IGluIGEgc3ViZGlyZWN0b3J5IG9mIENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUiAoRGVi
dWcsCisgICAgICAgICMgUmVsZWFzZSBldGMuKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGl0IGhl
cmUuCisgICAgICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfQogICAgICAgICAgIENPTU1BTkQgJHtQ
WVRIT05fRVhFQ1VUQUJMRX0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1l
fS5weQogICAgICAgICAgICAgICAtLWJ1aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJ
Un0vJDxDT05GSUc+ICR7QVJHTn0pCiAgICAgICBlbHNlIChDTUFLRV9DT05GSUdVUkFUSU9OX1RZ
UEVTKQotCSMgU2luZ2xlLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBsaWtlIE1ha2Vm
aWxlIGdlbmVyYXRvcnMKLQkjIGRvbid0IGhhdmUgc3ViZGlycyBiZWxvdyBDTUFLRV9DVVJSRU5U
X0JJTkFSWV9ESVIuCi0gICAgICAgIGFkZF90ZXN0KAotICAgICAgICAgIE5BTUUgJHtuYW1lfQor
ICAgICAgICAjIFNpbmdsZS1jb25maWd1cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMgbGlrZSBNYWtl
ZmlsZSBnZW5lcmF0b3JzCisgICAgICAgICMgZG9uJ3QgaGF2ZSBzdWJkaXJzIGJlbG93IENNQUtF
X0NVUlJFTlRfQklOQVJZX0RJUi4KKyAgICAgICAgYWRkX3Rlc3QoTkFNRSAke25hbWV9CiAgICAg
ICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vdGVzdC8ke25hbWV9LnB5Ci0gICAgICAgICAgICAgIC0tYnVpbGRfZGlyPSR7Q01BS0Vf
Q1VSUkVOVF9CSU5BUllfRElSfSAke0FSR059KQorICAgICAgICAgICAgLS1idWlsZF9kaXI9JHtD
TUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9ICR7QVJHTn0pCiAgICAgICBlbmRpZiAoQ01BS0VfQ09O
RklHVVJBVElPTl9UWVBFUykKLSAgICBlbHNlICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01B
S0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRFUiAzLjEpCisgICAgZWxzZSgpCiAgICAgICAjICR7Q01B
S0VfQ1VSUkVOVF9CSU5BUllfRElSfSBpcyBrbm93biBhdCBjb25maWd1cmF0aW9uIHRpbWUsIHNv
IHdlIGNhbgogICAgICAgIyBkaXJlY3RseSBiaW5kIGl0IGZyb20gY21ha2UuICR7Q1RFU1RfQ09O
RklHVVJBVElPTl9UWVBFfSBpcyBrbm93bgogICAgICAgIyBvbmx5IGF0IGN0ZXN0IHJ1bnRpbWUg
KGJ5IGNhbGxpbmcgY3Rlc3QgLWMgPENvbmZpZ3VyYXRpb24+KSwgc28KICAgICAgICMgd2UgaGF2
ZSB0byBlc2NhcGUgJCB0byBkZWxheSB2YXJpYWJsZSBzdWJzdGl0dXRpb24gaGVyZS4KLSAgICAg
IGFkZF90ZXN0KAotICAgICAgICAke25hbWV9Ci0gICAgICAgICR7UFlUSE9OX0VYRUNVVEFCTEV9
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXN0LyR7bmFtZX0ucHkKKyAgICAgIGFkZF90
ZXN0KE5BTUUgJHtuYW1lfQorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXN0LyR7bmFtZX0ucHkKICAgICAgICAgICAtLWJ1
aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vXCR7Q1RFU1RfQ09ORklHVVJBVElP
Tl9UWVBFfSAke0FSR059KQotICAgIGVuZGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01B
S0VfTUlOT1JfVkVSU0lPTn0gR1JFQVRFUiAzLjEpCisgICAgZW5kaWYoKQogICBlbmRpZihQWVRI
T05JTlRFUlBfRk9VTkQpCiBlbmRmdW5jdGlvbigpCiAKQEAgLTMwNiw2ICszMTksMTggQEAgZnVu
Y3Rpb24oaW5zdGFsbF9wcm9qZWN0KQogICAgICAgUlVOVElNRSBERVNUSU5BVElPTiAiJHtDTUFL
RV9JTlNUQUxMX0JJTkRJUn0iCiAgICAgICBBUkNISVZFIERFU1RJTkFUSU9OICIke0NNQUtFX0lO
U1RBTExfTElCRElSfSIKICAgICAgIExJQlJBUlkgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFM
TF9MSUJESVJ9IikKKyAgICBpZihDTUFLRV9DWFhfQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIp
CisgICAgICAjIEluc3RhbGwgUERCcworICAgICAgZm9yZWFjaCh0ICR7QVJHTn0pCisgICAgICAg
IGdldF90YXJnZXRfcHJvcGVydHkodF9wZGJfbmFtZSAke3R9IENPTVBJTEVfUERCX05BTUUpCisg
ICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkodF9wZGJfbmFtZV9kZWJ1ZyAke3R9IENPTVBJTEVf
UERCX05BTUVfREVCVUcpCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkodF9wZGJfb3V0cHV0
X2RpcmVjdG9yeSAke3R9IFBEQl9PVVRQVVRfRElSRUNUT1JZKQorICAgICAgICBpbnN0YWxsKEZJ
TEVTCisgICAgICAgICAgIiR7dF9wZGJfb3V0cHV0X2RpcmVjdG9yeX0vXCR7Q01BS0VfSU5TVEFM
TF9DT05GSUdfTkFNRX0vJDwkPENPTkZJRzpEZWJ1Zz46JHt0X3BkYl9uYW1lX2RlYnVnfT4kPCQ8
Tk9UOiQ8Q09ORklHOkRlYnVnPj46JHt0X3BkYl9uYW1lfT4ucGRiIgorICAgICAgICAgIERFU1RJ
TkFUSU9OICR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9CisgICAgICAgICAgT1BUSU9OQUwpCisgICAg
ICBlbmRmb3JlYWNoKCkKKyAgICBlbmRpZigpCiAgICAgIyBDb25maWd1cmUgYW5kIGluc3RhbGwg
cGtnY29uZmlnIGZpbGVzLgogICAgIGZvcmVhY2godCAke0FSR059KQogICAgICAgc2V0KGNvbmZp
Z3VyZWRfcGMgIiR7Z2VuZXJhdGVkX2Rpcn0vJHt0fS5wYyIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9saWJndGVzdC5sYS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2NtYWtlL2xpYmd0ZXN0LmxhLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0MGM4Mzg4NWY5ODlhMDJh
MGFiMzA3M2E3NGU2NWJjMDRkZGYzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9jbWFrZS9saWJndGVzdC5sYS5pbgpAQCAtMCwwICsxLDIxIEBACisjIGxpYmd0
ZXN0LmxhIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmlsZQorIyBHZW5lcmF0ZWQgYnkgbGlidG9vbCAo
R05VIGxpYnRvb2wpIDIuNC42CisKKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQor
IyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisKKyMgTmFtZXMgb2Yg
dGhpcyBsaWJyYXJ5LgorbGlicmFyeV9uYW1lcz0nbGliZ3Rlc3Quc28nCisKKyMgSXMgdGhpcyBh
biBhbHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PworaW5zdGFsbGVkPXllcworCisjIFNob3VsZCB3
ZSB3YXJuIGFib3V0IHBvcnRhYmlsaXR5IHdoZW4gbGlua2luZyBhZ2FpbnN0IC1tb2R1bGVzPwor
c2hvdWxkbm90bGluaz1ubworCisjIEZpbGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KK2Rsb3Blbj0n
JworZGxwcmVvcGVuPScnCisKKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRv
IGJlIGluc3RhbGxlZCBpbjoKK2xpYmRpcj0nQENNQUtFX0lOU1RBTExfRlVMTF9MSUJESVJAJwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9q
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3QuY2Jwcm9qCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWMzMDU0Yjg1MWRhYjRkOGZlNjhjNTYzZDk1NTI2Njgz
MTgyNGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0LmNicHJvagorKysgL2Rldi9udWxs
CkBAIC0xLDEzOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVs
b3Blci9tc2J1aWxkLzIwMDMiPg0KLSAgPFByb3BlcnR5R3JvdXA+DQotICAgIDxQcm9qZWN0R3Vp
ZD57YmNhMzdhNzItNWIwNy00NmNmLWI0NGUtODlmOGUwNjQ1MWEyfTwvUHJvamVjdEd1aWQ+DQot
ICAgIDxDb25maWcgQ29uZGl0aW9uPSInJChDb25maWcpJz09JyciPlJlbGVhc2U8L0NvbmZpZz4N
Ci0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlnKSc9PSdCYXNlJyBvciAnJChCYXNlKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4N
Ci0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2ZnXzEpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNl
Pg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2ZnXzE+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFy
ZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWcpJz09J1JlbGVhc2UnIG9yICckKENmZ18yKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1
ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRydWU8L0NmZ18yPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8
L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQmFzZSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD50cnVlPC9C
Q0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPE91dHB1dEV4dD5saWI8L091dHB1dEV4dD4NCi0g
ICAgPERDQ19DQnVpbGRlck91dHB1dD5KUEhORTwvRENDX0NCdWlsZGVyT3V0cHV0Pg0KLSAgICA8
RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAgIDxEeW5hbWljUlRMPnRydWU8L0R5bmFt
aWNSVEw+DQotICAgIDxVc2VQYWNrYWdlcz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAgPFByb2pl
Y3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L1Byb2plY3RUeXBlPg0KLSAgICA8QkNDX0NQUENvbXBp
bGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdlSW1wb3J0
cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxy
dGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3ZjbGRieC5i
cGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5i
cGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vic25hcC5i
cGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhw
cmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVk
Yi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBpO0ludHJh
d2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAuYnBpO2RjbFppcEZvcmdlZDExLmJwaTt2
Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9CRFMyMDA2LmJwaTtHUjMyX0RTR05fQkRTMjAwNi5icGk7
SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29yZUQxMVIuYnBpO0p2U3lzdGVtRDExUi5icGk7SnZTdGRD
dHJsc0QxMVIuYnBpO0p2QXBwRnJtRDExUi5icGk7SnZCYW5kc0QxMVIuYnBpO0p2REJEMTFSLmJw
aTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQxMVIuYnBpO0p2Q21wRDExUi5icGk7SnZDcnlwdEQxMVIu
YnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1c3RvbUQxMVIuYnBpO0p2RG9ja2luZ0QxMVIuYnBpO0p2
RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVESUQxMVIuYnBpO0p2R2xvYnVzRDExUi5icGk7SnZITUlE
MTFSLmJwaTtKdkludGVycHJldGVyRDExUi5icGk7SnZKYW5zRDExUi5icGk7SnZNYW5hZ2VkVGhy
ZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJwaTtKdk5ldEQxMVIuYnBpO0p2UGFnZUNvbXBzRDExUi5i
cGk7SnZQbHVnaW5EMTFSLmJwaTtKdlByaW50UHJldmlld0QxMVIuYnBpO0p2UnVudGltZURlc2ln
bkQxMVIuYnBpO0p2VGltZUZyYW1ld29ya0QxMVIuYnBpO0p2VmFsaWRhdG9yc0QxMVIuYnBpO0p2
V2l6YXJkRDExUi5icGk7SnZYUEN0cmxzRDExUi5icGk7VmNsU21wLmJwaTtDRXhjZXB0aW9uRXhw
ZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0cz4NCi0gICAgPEJDQ193cGFyPmZhbHNlPC9CQ0Nfd3Bh
cj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1
bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9JbmNsdWRlUGF0
aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJzPnJ0bC5saWI7dmNsLmxpYjwvQWxsUGFja2FnZUxpYnM+
DQotICAgIDxUTElCX1BhZ2VTaXplPjMyPC9UTElCX1BhZ2VTaXplPg0KLSAgICA8SUxJTktfTGli
cmFyeVBhdGg+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs8L0lMSU5L
X0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29u
ZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVlZD5mYWxz
ZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19P
cHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5F
eGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJ
TktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8QkNDX0lu
bGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+
DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5LX0Rpc2Fi
bGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9u
ZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJVRzwvREND
X0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVO
dW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVP
dXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNNX0Rpc3Bs
YXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFt
ZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRp
bWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1ZzskKElM
SU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2lu
Zz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVl
PC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScnIj4NCi0gICAgPERlZmluZXM+TkRFQlVH
OyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+UmVsZWFz
ZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMp
XGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0g
ICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdy
b3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5D
UGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8
Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJyYXJ5PC9Cb3JsYW5kLlByb2plY3RUeXBl
Pg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1BsdXNCdWls
ZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5jbHVkZVZl
ckluZm8iPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0luY0J1aWxk
Ij5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0i
QnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1Zl
cnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVyc2lvbklu
Zm8+PFZlcnNpb25JbmZvIE5hbWU9IlNwZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lv
bkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1l
PSJETEwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxlIj4xMDMz
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25J
bmZvPjwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9
IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZp
bGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJG
aWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFt
ZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9
IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9
IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1l
PSJPcmlnaW5hbEZpbGVuYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5h
bWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9
IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5
cyBOYW1lPSJDb21tZW50cyI+PC9WZXJzaW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tleXM+PERl
YnVnZ2luZz48RGVidWdnaW5nIE5hbWU9IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9E
ZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVy
cyBOYW1lPSJVc2VMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
RGVidWdDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGljYXRpb24i
PjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+
PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxh
dW5jaGVyIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIi
PkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0
ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVycz48UGFy
YW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1ib2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRl
cnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVkU3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJh
bWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICANCi0gICAgICANCi0gICAgICA8RXhj
bHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVH
ZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNr
YWdlcz4NCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZp
Y2V4cDEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2Fn
ZTwvRXhjbHVkZWRfUGFja2FnZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48
TGlua2VyIE5hbWU9IkxpYlByZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgi
PjwvTGlua2VyPjxMaW5rZXIgTmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFBy
b2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZh
bHNlPC9Qcm9qZWN0UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0
aHMiPlRydWU8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJp
ZnlQYWNrYWdlcyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48
SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5h
bWU9IkNvdW50Ij4zPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hs
SW5jbHVkZVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRp
bmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5
TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRl
bTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1
ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48
SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTIiPiQoQkRTKVxpbmNsdWRlOyQo
QkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxzcmM7
Li5caW5jbHVkZTwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJ
bmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0
c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElO
S19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRl
bTAiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrPC9IaXN0b3J5TGlz
dHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRo
PjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNv
dW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5h
bWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlz
dHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNf
aGxUTElCX1BhZ2VTaXplIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VT
aXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0wIj4zMjwvSGlzdG9y
eUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1l
PSJJdGVtMSI+MTY8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9IaXN0b3J5TGlzdHNf
aGxUTElCX1BhZ2VTaXplPjwvQ1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQ
cm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPElt
cG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0K
LSAgPEl0ZW1Hcm91cD4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVz
dC1kZWF0aC10ZXN0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjM8L0J1aWxkT3JkZXI+DQotICAg
IDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1tZXNz
YWdlLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjQ8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4N
Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1wYXJhbS10ZXN0Lmgi
Pg0KLSAgICAgIDxCdWlsZE9yZGVyPjU8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAg
PE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdC1zcGkuaCI+DQotICAgICAgPEJ1
aWxkT3JkZXI+NjwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LXRlc3QtcGFydC5oIj4NCi0gICAgICA8QnVpbGRPcmRl
cj43PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGlu
Y2x1ZGVcZ3Rlc3RcZ3Rlc3QtdHlwZWQtdGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj44PC9C
dWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVc
Z3Rlc3RcZ3Rlc3QuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAg
PC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0X3ByZWRf
aW1wbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3RfcHJvZC5oIj4NCi0g
ICAgICA8QnVpbGRPcmRlcj4yPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtZGVhdGgtdGVzdC1pbnRl
cm5hbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj45PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+
DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtZmls
ZXBhdGguaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTA8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9u
ZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1p
bnRlcm5hbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xMTwvQnVpbGRPcmRlcj4NCi0gICAgPC9O
b25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0
LWxpbmtlZF9wdHIuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTI8L0J1aWxkT3JkZXI+DQotICAg
IDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxn
dGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNDwvQnVp
bGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0
ZXN0XGludGVybmFsXGd0ZXN0LXBhcmFtLXV0aWwuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTM8
L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVk
ZVxndGVzdFxpbnRlcm5hbFxndGVzdC1wb3J0LmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE1PC9C
dWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVc
Z3Rlc3RcaW50ZXJuYWxcZ3Rlc3Qtc3RyaW5nLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE2PC9C
dWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVc
Z3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtdHlwZS11dGlsLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjE3
PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxDcHBDb21waWxlIEluY2x1ZGU9Imd0
ZXN0X2FsbC5jYyI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTg8L0J1aWxkT3JkZXI+DQotICAgIDwv
Q3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQot
ICAgICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAg
PEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18y
PC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Q
cm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvaiBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmFmMzFjYWI2NDBiYjQ1NDA4MTJmODhmNmZhMGZhY2M2ZjAxMGRiMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdC5ncm91cHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1NCAr
MCwwIEBACi3vu788UHJvamVjdCB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9k
ZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4NCi0gIDxQcm9wZXJ0eUdyb3VwPg0KLSAgICA8UHJvamVj
dEd1aWQ+e2MxZDkyM2UwLTZjYmEtNDMzMi05YjZmLTM0MjBhY2JmNTA5MX08L1Byb2plY3RHdWlk
Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPEl0ZW1Hcm91cCAvPg0KLSAgPEl0ZW1Hcm91cD4N
Ci0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0LmNicHJvaiIgLz4NCi0gICAgPFByb2plY3Rz
IEluY2x1ZGU9Imd0ZXN0X21haW4uY2Jwcm9qIiAvPg0KLSAgICA8UHJvamVjdHMgSW5jbHVkZT0i
Z3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiAvPg0KLSAgPC9JdGVtR3JvdXA+DQotICA8UHJvamVjdEV4
dGVuc2lvbnM+DQotICAgIDxCb3JsYW5kLlBlcnNvbmFsaXR5PkRlZmF1bHQuUGVyc29uYWxpdHk8
L0JvcmxhbmQuUGVyc29uYWxpdHk+DQotICAgIDxCb3JsYW5kLlByb2plY3RUeXBlIC8+DQotICAg
IDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3QgeG1sbnM9IiI+PERlZmF1bHQuUGVy
c29uYWxpdHk+PC9EZWZhdWx0LlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5k
UHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0
Ij4NCi0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0K
LSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0OkNsZWFuIj4NCi0gICAgPE1TQnVp
bGQgUHJvamVjdHM9Imd0ZXN0LmNicHJvaiIgVGFyZ2V0cz0iQ2xlYW4iIC8+DQotICA8L1Rhcmdl
dD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3Q6TWFrZSI+DQotICAgIDxNU0J1aWxkIFByb2plY3Rz
PSJndGVzdC5jYnByb2oiIFRhcmdldHM9Ik1ha2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJn
ZXQgTmFtZT0iZ3Rlc3RfbWFpbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWlu
LmNicHJvaiIgVGFyZ2V0cz0iIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0
ZXN0X21haW46Q2xlYW4iPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnBy
b2oiIFRhcmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0
ZXN0X21haW46TWFrZSI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF9tYWluLmNicHJv
aiIgVGFyZ2V0cz0iTWFrZSIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVz
dF91bml0dGVzdCI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5jYnBy
b2oiIFRhcmdldHM9IiIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91
bml0dGVzdDpDbGVhbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdF91bml0dGVzdC5j
YnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9
Imd0ZXN0X3VuaXR0ZXN0Ok1ha2UiPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfdW5p
dHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJNYWtlIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0
IE5hbWU9IkJ1aWxkIj4NCi0gICAgPENhbGxUYXJnZXQgVGFyZ2V0cz0iZ3Rlc3Q7Z3Rlc3RfbWFp
bjtndGVzdF91bml0dGVzdCIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJDbGVh
biI+DQotICAgIDxDYWxsVGFyZ2V0IFRhcmdldHM9Imd0ZXN0OkNsZWFuO2d0ZXN0X21haW46Q2xl
YW47Z3Rlc3RfdW5pdHRlc3Q6Q2xlYW4iIC8+DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFt
ZT0iTWFrZSI+DQotICAgIDxDYWxsVGFyZ2V0IFRhcmdldHM9Imd0ZXN0Ok1ha2U7Z3Rlc3RfbWFp
bjpNYWtlO2d0ZXN0X3VuaXR0ZXN0Ok1ha2UiIC8+DQotICA8L1RhcmdldD4NCi0gIDxJbXBvcnQg
Q29uZGl0aW9uPSJFeGlzdHMoJyQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQuR3JvdXAuVGFyZ2V0
cycpIiBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkdyb3VwLlRhcmdldHMiIC8+
DQotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2FsbC5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2FsbC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmE3YWQ2OGFkMWNhYTVmYjIwODM4YzcwMDg5NmE0MTgyYmE1OWQ5Zi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9hbGwuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi0vLyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8g
QXV0aG9yOiBKb3NoIEtlbGxleSAoam9zaGtlbEBnbWFpbC5jb20pCi0vLwotLy8gR29vZ2xlIEMr
KyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3QpCi0vLwotLy8gQysrQnVpbGRlcidzIElE
RSBjYW5ub3QgYnVpbGQgYSBzdGF0aWMgbGlicmFyeSBmcm9tIGZpbGVzIHdpdGggaHlwaGVucwot
Ly8gaW4gdGhlaXIgbmFtZS4gIFNlZSBodHRwOi8vcWMuY29kZWdlYXIuY29tL3djL3FjbWFpbi5h
c3B4P2Q9NzA5NzcgLgotLy8gVGhpcyBmaWxlIHNlcnZlcyBhcyBhIHdvcmthcm91bmQuCi0KLSNp
bmNsdWRlICJzcmMvZ3Rlc3QtYWxsLmNjIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Nv
ZGVnZWFyL2d0ZXN0X2xpbmsuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NTVl
YmYyZjkxMTBlNjM1M2M2ODdjYzM5NDIzNDhkYTc5N2NiNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdl
YXIvZ3Rlc3RfbGluay5jYworKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8vIENvcHly
aWdodCAyMDA5LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
Ly8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0
aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBdXRob3I6IEpvc2gg
S2VsbGV5IChqb3Noa2VsQGdtYWlsLmNvbSkKLS8vCi0vLyBHb29nbGUgQysrIFRlc3RpbmcgRnJh
bWV3b3JrIChHb29nbGUgVGVzdCkKLS8vCi0vLyBMaW5rcyBndGVzdC5saWIgYW5kIGd0ZXN0X21h
aW4ubGliIGludG8gdGhlIGN1cnJlbnQgcHJvamVjdCBpbiBDKytCdWlsZGVyLgotLy8gVGhpcyBt
ZWFucyB0aGF0IHRoZXNlIGxpYnJhcmllcyBjYW4ndCBiZSByZW5hbWVkLCBidXQgaXQncyB0aGUg
b25seSB3YXkgdG8KLS8vIGVuc3VyZSB0aGF0IERlYnVnIHZlcnN1cyBSZWxlYXNlIHRlc3QgYnVp
bGRzIGFyZSBsaW5rZWQgYWdhaW5zdCB0aGUKLS8vIGFwcHJvcHJpYXRlIERlYnVnIG9yIFJlbGVh
c2UgYnVpbGQgb2YgdGhlIGxpYnJhcmllcy4KLQotI3ByYWdtYSBsaW5rICJndGVzdC5saWIiCi0j
cHJhZ21hIGxpbmsgImd0ZXN0X21haW4ubGliIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbWFpbi5jYnByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDc2Y2UxMzk4ZmYzOTMzMzMzNzcyNWY0NDY2ZGE1NjNlOTgzMzU4MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9jb2RlZ2Vhci9ndGVzdF9tYWluLmNicHJvagorKysgL2Rldi9udWxsCkBAIC0xLDgyICsw
LDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQotPFByb2pl
Y3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+DQotICA8UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlkPntiY2EzN2E3Mi01
YjA3LTQ2Y2YtYjQ0ZS04OWY4ZTA2NDUxYTJ9PC9Qcm9qZWN0R3VpZD4NCi0gICAgPENvbmZpZyBD
b25kaXRpb249IickKENvbmZpZyknPT0nJyI+UmVsZWFzZTwvQ29uZmlnPg0KLSAgPC9Qcm9wZXJ0
eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0Jhc2Un
IG9yICckKEJhc2UpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgPC9Qcm9wZXJ0
eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J0RlYnVn
JyBvciAnJChDZmdfMSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdf
MT50cnVlPC9DZmdfMT4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1By
b3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0n
UmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAg
ICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0K
LSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChCYXNl
KSchPScnIj4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPnRydWU8L0JDQ19PcHRpbWl6ZUZv
clNwZWVkPg0KLSAgICA8T3V0cHV0RXh0PmxpYjwvT3V0cHV0RXh0Pg0KLSAgICA8RENDX0NCdWls
ZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1aWxkZXJPdXRwdXQ+DQotICAgIDxEZWZpbmVzPk5PX1NU
UklDVDwvRGVmaW5lcz4NCi0gICAgPER5bmFtaWNSVEw+dHJ1ZTwvRHluYW1pY1JUTD4NCi0gICAg
PFVzZVBhY2thZ2VzPnRydWU8L1VzZVBhY2thZ2VzPg0KLSAgICA8UHJvamVjdFR5cGU+Q3BwU3Rh
dGljTGlicmFyeTwvUHJvamVjdFR5cGU+DQotICAgIDxCQ0NfQ1BQQ29tcGlsZUFsd2F5cz50cnVl
PC9CQ0NfQ1BQQ29tcGlsZUFsd2F5cz4NCi0gICAgPFBhY2thZ2VJbXBvcnRzPnJ0bC5icGk7dmNs
LmJwaTtiY2JpZS5icGk7dmNseC5icGk7dmNsYWN0bmJhbmQuYnBpO3htbHJ0bC5icGk7YmNic21w
LmJwaTtkYnJ0bC5icGk7dmNsZGIuYnBpO2JkZXJ0bC5icGk7dmNsZGJ4LmJwaTtkc25hcC5icGk7
ZHNuYXBjb24uYnBpO3ZjbGliLmJwaTtpYnhwcmVzcy5icGk7YWRvcnRsLmJwaTtkYnhjZHMuYnBp
O2RiZXhwcmVzcy5icGk7RGJ4Q29tbW9uRHJpdmVyLmJwaTt3ZWJzbmFwLmJwaTt2Y2xpZS5icGk7
d2ViZHNuYXAuYnBpO2luZXQuYnBpO2luZXRkYmJkZS5icGk7aW5ldGRieHByZXNzLmJwaTtzb2Fw
cnRsLmJwaTtSYXZlNzVWQ0wuYnBpO3RlZVVJLmJwaTt0ZWUuYnBpO3RlZWRiLmJwaTtJbmR5Q29y
ZS5icGk7SW5keVN5c3RlbS5icGk7SW5keVByb3RvY29scy5icGk7SW50cmF3ZWJEQl85MF8xMDAu
YnBpO0ludHJhd2ViXzkwXzEwMC5icGk7ZGNsWmlwRm9yZ2VkMTEuYnBpO3ZjbFppcEZvcmdlZDEx
LmJwaTtHUjMyX0JEUzIwMDYuYnBpO0dSMzJfRFNHTl9CRFMyMDA2LmJwaTtKY2wuYnBpO0pjbFZj
bC5icGk7SnZDb3JlRDExUi5icGk7SnZTeXN0ZW1EMTFSLmJwaTtKdlN0ZEN0cmxzRDExUi5icGk7
SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRzRDExUi5icGk7SnZEQkQxMVIuYnBpO0p2RGxnc0QxMVIu
YnBpO0p2QkRFRDExUi5icGk7SnZDbXBEMTFSLmJwaTtKdkNyeXB0RDExUi5icGk7SnZDdHJsc0Qx
MVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7SnZEb2NraW5nRDExUi5icGk7SnZEb3ROZXRDdHJsc0Qx
MVIuYnBpO0p2RURJRDExUi5icGk7SnZHbG9idXNEMTFSLmJwaTtKdkhNSUQxMVIuYnBpO0p2SW50
ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNEMTFSLmJwaTtKdk1hbmFnZWRUaHJlYWRzRDExUi5icGk7
SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5icGk7SnZQYWdlQ29tcHNEMTFSLmJwaTtKdlBsdWdpbkQx
MVIuYnBpO0p2UHJpbnRQcmV2aWV3RDExUi5icGk7SnZSdW50aW1lRGVzaWduRDExUi5icGk7SnZU
aW1lRnJhbWV3b3JrRDExUi5icGk7SnZWYWxpZGF0b3JzRDExUi5icGk7SnZXaXphcmREMTFSLmJw
aTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xTbXAuYnBpO0NFeGNlcHRpb25FeHBlcnQxMS5icGk8L1Bh
Y2thZ2VJbXBvcnRzPg0KLSAgICA8QkNDX3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAgICA8SW5j
bHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylc
aW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0luY2x1ZGVQYXRoPg0KLSAgICA8QWxs
UGFja2FnZUxpYnM+cnRsLmxpYjt2Y2wubGliPC9BbGxQYWNrYWdlTGlicz4NCi0gICAgPFRMSUJf
UGFnZVNpemU+MzI8L1RMSUJfUGFnZVNpemU+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJE
UylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazwvSUxJTktfTGlicmFyeVBhdGg+
DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENm
Z18xKSchPScnIj4NCi0gICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPmZhbHNlPC9CQ0NfT3B0aW1p
emVGb3JTcGVlZD4NCi0gICAgPERDQ19PcHRpbWl6ZT5mYWxzZTwvRENDX09wdGltaXplPg0KLSAg
ICA8RENDX0RlYnVnSW5mb0luRXhlPnRydWU8L0RDQ19EZWJ1Z0luZm9JbkV4ZT4NCi0gICAgPERl
ZmluZXM+X0RFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJTElOS19GdWxsRGVidWdJ
bmZvPnRydWU8L0lMSU5LX0Z1bGxEZWJ1Z0luZm8+DQotICAgIDxCQ0NfSW5saW5lRnVuY3Rpb25F
eHBhbnNpb24+ZmFsc2U8L0JDQ19JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4NCi0gICAgPElMSU5L
X0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+dHJ1ZTwvSUxJTktfRGlzYWJsZUluY3JlbWVudGFs
TGlua2luZz4NCi0gICAgPEJDQ19Vc2VSZWdpc3RlclZhcmlhYmxlcz5Ob25lPC9CQ0NfVXNlUmVn
aXN0ZXJWYXJpYWJsZXM+DQotICAgIDxEQ0NfRGVmaW5lPkRFQlVHPC9EQ0NfRGVmaW5lPg0KLSAg
ICA8QkNDX0RlYnVnTGluZU51bWJlcnM+dHJ1ZTwvQkNDX0RlYnVnTGluZU51bWJlcnM+DQotICAg
IDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+RGVidWc8L0ludGVybWVkaWF0ZU91dHB1dERpcj4NCi0g
ICAgPFRBU01fRGlzcGxheVNvdXJjZUxpbmVzPnRydWU8L1RBU01fRGlzcGxheVNvdXJjZUxpbmVz
Pg0KLSAgICA8QkNDX1N0YWNrRnJhbWVzPnRydWU8L0JDQ19TdGFja0ZyYW1lcz4NCi0gICAgPEJD
Q19EaXNhYmxlT3B0aW1pemF0aW9ucz50cnVlPC9CQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+DQot
ICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylcbGliXGRlYnVnOyQoSUxJTktfTGlicmFyeVBh
dGgpPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPkZ1bGw8L1RBU01f
RGVidWdnaW5nPg0KLSAgICA8QkNDX1NvdXJjZURlYnVnZ2luZ09uPnRydWU8L0JDQ19Tb3VyY2VE
ZWJ1Z2dpbmdPbj4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8RGVmaW5lcz5OREVCVUc7JChEZWZpbmVzKTwv
RGVmaW5lcz4NCi0gICAgPEludGVybWVkaWF0ZU91dHB1dERpcj5SZWxlYXNlPC9JbnRlcm1lZGlh
dGVPdXRwdXREaXI+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0aD4kKEJEUylcbGliXHJlbGVhc2U7
JChJTElOS19MaWJyYXJ5UGF0aCk8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1
Z2dpbmc+Tm9uZTwvVEFTTV9EZWJ1Z2dpbmc+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJv
amVjdEV4dGVuc2lvbnM+DQotICAgIDxCb3JsYW5kLlBlcnNvbmFsaXR5PkNQbHVzUGx1c0J1aWxk
ZXIuUGVyc29uYWxpdHk8L0JvcmxhbmQuUGVyc29uYWxpdHk+DQotICAgIDxCb3JsYW5kLlByb2pl
Y3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L0JvcmxhbmQuUHJvamVjdFR5cGU+DQotICAgIDxCb3Js
YW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3Q+PENQbHVzUGx1c0J1aWxkZXIuUGVyc29uYWxp
dHk+PFZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJBdXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJz
aW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWFqb3JWZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJz
aW9uSW5mbyBOYW1lPSJNaW5vclZlciI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9
IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRlYnVnIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZl
cnNpb25JbmZvIE5hbWU9IlByZVJlbGVhc2UiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQ
cml2YXRlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJMb2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJDb2RlUGFnZSI+MTI1MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tcGFueU5hbWUi
PjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iRmlsZURlc2NyaXB0aW9u
Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4x
LjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxDb3B5cmln
aHQiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iTGVnYWxUcmFkZW1h
cmtzIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmls
ZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdE5h
bWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iUHJvZHVjdFZlcnNp
b24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbW1l
bnRzIj48L1ZlcnNpb25JbmZvS2V5cz48L1ZlcnNpb25JbmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1
Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VEaXJzIj48L0RlYnVnZ2luZz48L0RlYnVnZ2luZz48UGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSdW5QYXJhbXMiPjwvUGFyYW1ldGVycz48UGFyYW1l
dGVycyBOYW1lPSJMYXVuY2hlciI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxh
dW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9Ikhvc3RBcHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUhvc3QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJSZW1vdGVQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFy
YW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VSZW1vdGVMYXVuY2hlciI+RmFsc2U8L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlQ1dEIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRl
cnMgTmFtZT0iUmVtb3RlRGVidWciPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9
IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBhdGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2Fk
VW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxzZTwvUGFyYW1ldGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1
ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmlu
XGJjYm9mZmljZTJrMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgMjAwMCBTZXJ2
ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdl
cyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZXhwMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRl
ciBPZmZpY2UgWFAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgPC9F
eGNsdWRlZF9QYWNrYWdlcz48TGlua2VyPjxMaW5rZXIgTmFtZT0iTGliUHJlZml4Ij48L0xpbmtl
cj48TGlua2VyIE5hbWU9IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJWZXJz
aW9uIj48L0xpbmtlcj48L0xpbmtlcj48UHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0
aWVzIE5hbWU9IkF1dG9TaG93RGVwcyI+RmFsc2U8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0
UHJvcGVydGllcyBOYW1lPSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PFBy
b2plY3RQcm9wZXJ0aWVzIE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5UcnVlPC9Qcm9qZWN0UHJvcGVy
dGllcz48L1Byb2plY3RQcm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlz
dG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iQ291bnQiPjM8L0hpc3RvcnlMaXN0c19obElu
Y2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMCI+JChCRFMp
XGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5c
c3JjOy4uXGluY2x1ZGU7Li48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMSI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1
ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5cc3JjOy4uXGluY2x1ZGU7Li48L0hp
c3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1l
PSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylc
aW5jbHVkZVx2Y2w7Li5cc3JjOy4uXHNyYzsuLlxpbmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJbmNs
dWRlUGF0aD48L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElO
S19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iQ291
bnQiPjE8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJ
TElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGxpYjskKEJEUylcbGliXG9iajsk
KEJEUylcbGliXHBzZGs8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjwvSGlzdG9y
eUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3Rv
cnlMaXN0c19obERlZmluZXMgTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obERlZmluZXM+
PEhpc3RvcnlMaXN0c19obERlZmluZXMgTmFtZT0iSXRlbTAiPk5PX1NUUklDVDwvSGlzdG9yeUxp
c3RzX2hsRGVmaW5lcz48L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obFRM
SUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemUgTmFtZT0iQ291bnQiPjE8
L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNp
emUgTmFtZT0iSXRlbTAiPjMyPC9IaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5
TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0xIj4xNjwvSGlzdG9yeUxpc3RzX2hsVExJ
Ql9QYWdlU2l6ZT48L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9DUGx1c1BsdXNCdWls
ZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFuZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwv
UHJvamVjdEV4dGVuc2lvbnM+DQotICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgp
XEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+DQotICA8SXRlbUdyb3VwPg0KLSAgICA8Q3BwQ29tcGls
ZSBJbmNsdWRlPSIuLlxzcmNcZ3Rlc3RfbWFpbi5jYyI+DQotICAgICAgPEJ1aWxkT3JkZXI+MDwv
QnVpbGRPcmRlcj4NCi0gICAgPC9DcHBDb21waWxlPg0KLSAgICA8QnVpbGRDb25maWd1cmF0aW9u
IEluY2x1ZGU9IkRlYnVnIj4NCi0gICAgICA8S2V5PkNmZ18xPC9LZXk+DQotICAgIDwvQnVpbGRD
b25maWd1cmF0aW9uPg0KLSAgICA8QnVpbGRDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2Ui
Pg0KLSAgICAgIDxLZXk+Q2ZnXzI8L0tleT4NCi0gICAgPC9CdWlsZENvbmZpZ3VyYXRpb24+DQot
ICA8L0l0ZW1Hcm91cD4NCi08L1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYzVkYjhlNGRhNTk0NTdmYzhlZmFhMmQ2Y2NlYTg3YzZiODRkYmQ1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0LmNicHJvagorKysgL2Rldi9udWxs
CkBAIC0xLDg4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+DQotPFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxv
cGVyL21zYnVpbGQvMjAwMyI+DQotICA8UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlk
PntlZWE2MzM5My01YWM1LTRiOWMtODkwOS1kNzVmZWYyZGFhNDF9PC9Qcm9qZWN0R3VpZD4NCi0g
ICAgPENvbmZpZyBDb25kaXRpb249IickKENvbmZpZyknPT0nJyI+UmVsZWFzZTwvQ29uZmlnPg0K
LSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWcpJz09J0Jhc2UnIG9yICckKEJhc2UpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0K
LSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWcpJz09J0RlYnVnJyBvciAnJChDZmdfMSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+
DQotICAgIDxDZmdfMT50cnVlPC9DZmdfMT4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJl
bnQ+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZyknPT0nUmVsZWFzZScgb3IgJyQoQ2ZnXzIpJyE9JyciPg0KLSAgICA8QmFzZT50cnVl
PC9CYXNlPg0KLSAgICA8Q2ZnXzI+dHJ1ZTwvQ2ZnXzI+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwv
Q2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChCYXNlKSchPScnIj4NCi0gICAgPE91dHB1dEV4dD5leGU8L091dHB1dEV4dD4NCi0g
ICAgPEJDQ19PcHRpbWl6ZUZvclNwZWVkPnRydWU8L0JDQ19PcHRpbWl6ZUZvclNwZWVkPg0KLSAg
ICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAgIDxEQ0NfQ0J1aWxkZXJPdXRwdXQ+
SlBITkU8L0RDQ19DQnVpbGRlck91dHB1dD4NCi0gICAgPER5bmFtaWNSVEw+dHJ1ZTwvRHluYW1p
Y1JUTD4NCi0gICAgPElMSU5LX09iamVjdFNlYXJjaFBhdGg+Li5cdGVzdDwvSUxJTktfT2JqZWN0
U2VhcmNoUGF0aD4NCi0gICAgPFVzZVBhY2thZ2VzPnRydWU8L1VzZVBhY2thZ2VzPg0KLSAgICA8
UHJvamVjdFR5cGU+Q3BwQ29uc29sZUFwcGxpY2F0aW9uPC9Qcm9qZWN0VHlwZT4NCi0gICAgPE5v
VkNMPnRydWU8L05vVkNMPg0KLSAgICA8QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQ
UENvbXBpbGVBbHdheXM+DQotICAgIDxQYWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNi
aWUuYnBpO3ZjbHguYnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJy
dGwuYnBpO3ZjbGRiLmJwaTtiZGVydGwuYnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29u
LmJwaTt2Y2xpYi5icGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJl
c3MuYnBpO0RieENvbW1vbkRyaXZlci5icGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFw
LmJwaTtpbmV0LmJwaTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7
UmF2ZTc1VkNMLmJwaTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0lu
ZHlTeXN0ZW0uYnBpO0luZHlQcm90b2NvbHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRy
YXdlYl85MF8xMDAuYnBpO0pjbC5icGk7SmNsVmNsLmJwaTtKdkNvcmVEMTFSLmJwaTtKdlN5c3Rl
bUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFSLmJwaTtKdkFwcEZybUQxMVIuYnBpO0p2QmFuZHNEMTFS
LmJwaTtKdkRCRDExUi5icGk7SnZEbGdzRDExUi5icGk7SnZCREVEMTFSLmJwaTtKdkNtcEQxMVIu
YnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0cmxzRDExUi5icGk7SnZDdXN0b21EMTFSLmJwaTtKdkRv
Y2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0cmxzRDExUi5icGk7SnZFRElEMTFSLmJwaTtKdkdsb2J1
c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7SnZJbnRlcnByZXRlckQxMVIuYnBpO0p2SmFuc0QxMVIu
YnBpO0p2TWFuYWdlZFRocmVhZHNEMTFSLmJwaTtKdk1NRDExUi5icGk7SnZOZXREMTFSLmJwaTtK
dlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1Z2luRDExUi5icGk7SnZQcmludFByZXZpZXdEMTFSLmJw
aTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJwaTtKdlRpbWVGcmFtZXdvcmtEMTFSLmJwaTtKdlZhbGlk
YXRvcnNEMTFSLmJwaTtKdldpemFyZEQxMVIuYnBpO0p2WFBDdHJsc0QxMVIuYnBpO1ZjbFNtcC5i
cGk8L1BhY2thZ2VJbXBvcnRzPg0KLSAgICA8QkNDX3dwYXI+ZmFsc2U8L0JDQ193cGFyPg0KLSAg
ICA8SW5jbHVkZVBhdGg+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1ZGVcZGlua3Vtd2FyZTsk
KEJEUylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTsuLlx0ZXN0Oy4uPC9JbmNsdWRlUGF0aD4NCi0g
ICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxp
Ylxwc2RrOy4uXHRlc3Q8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8TXVsdGl0aHJlYWRlZD50
cnVlPC9NdWx0aXRocmVhZGVkPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JTcGVl
ZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxEQ0NfT3B0aW1pemU+ZmFsc2U8
L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4ZT50cnVlPC9EQ0NfRGVidWdJ
bmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmluZXMpPC9EZWZpbmVzPg0KLSAg
ICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxsRGVidWdJbmZvPg0KLSAgICA8
QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0NfSW5saW5lRnVuY3Rpb25FeHBh
bnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5nPnRydWU8L0lMSU5L
X0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0NfVXNlUmVnaXN0ZXJWYXJpYWJs
ZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAgICA8RENDX0RlZmluZT5ERUJV
RzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1iZXJzPnRydWU8L0JDQ19EZWJ1
Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPkRlYnVnPC9JbnRlcm1l
ZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz50cnVlPC9UQVNN
X0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0ZyYW1lcz50cnVlPC9CQ0NfU3Rh
Y2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlvbnM+dHJ1ZTwvQkNDX0Rpc2Fi
bGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxkZWJ1
ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0Rl
YnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJDQ19Tb3VyY2VEZWJ1Z2dpbmdP
bj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1Byb3BlcnR5R3JvdXA+DQotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScnIj4NCi0gICAgPERlZmluZXM+
TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRlcm1lZGlhdGVPdXRwdXREaXI+
UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+
JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgpPC9JTElOS19MaWJyYXJ5UGF0
aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVidWdnaW5nPg0KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9ybGFuZC5QZXJzb25h
bGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5Pg0K
LSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBDb25zb2xlQXBwbGljYXRpb248L0JvcmxhbmQu
UHJvamVjdFR5cGU+DQotICAgIDxCb3JsYW5kUHJvamVjdD4NCi08Qm9ybGFuZFByb2plY3Q+PENQ
bHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk+PFZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1l
PSJJbmNsdWRlVmVySW5mbyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJB
dXRvSW5jQnVpbGQiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWFqb3JW
ZXIiPjE8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJNaW5vclZlciI+MDwvVmVyc2lv
bkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlJlbGVhc2UiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9u
SW5mbyBOYW1lPSJCdWlsZCI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkRlYnVn
Ij5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByZVJlbGVhc2UiPkZhbHNl
PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iU3BlY2lhbCI+RmFsc2U8L1ZlcnNpb25J
bmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcml2YXRlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvIE5hbWU9IkRMTCI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJM
b2NhbGUiPjEwMzM8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJDb2RlUGFnZSI+MTI1
MjwvVmVyc2lvbkluZm8+PC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5m
b0tleXMgTmFtZT0iQ29tcGFueU5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tl
eXMgTmFtZT0iRmlsZURlc2NyaXB0aW9uIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9L
ZXlzIE5hbWU9IkZpbGVWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25J
bmZvS2V5cyBOYW1lPSJJbnRlcm5hbE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5m
b0tleXMgTmFtZT0iTGVnYWxDb3B5cmlnaHQiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5m
b0tleXMgTmFtZT0iTGVnYWxUcmFkZW1hcmtzIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbklu
Zm9LZXlzIE5hbWU9Ik9yaWdpbmFsRmlsZW5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9u
SW5mb0tleXMgTmFtZT0iUHJvZHVjdE5hbWUiPjwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5m
b0tleXMgTmFtZT0iUHJvZHVjdFZlcnNpb24iPjEuMC4wLjA8L1ZlcnNpb25JbmZvS2V5cz48VmVy
c2lvbkluZm9LZXlzIE5hbWU9IkNvbW1lbnRzIj48L1ZlcnNpb25JbmZvS2V5cz48L1ZlcnNpb25J
bmZvS2V5cz48RGVidWdnaW5nPjxEZWJ1Z2dpbmcgTmFtZT0iRGVidWdTb3VyY2VEaXJzIj48L0Rl
YnVnZ2luZz48L0RlYnVnZ2luZz48UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSdW5QYXJh
bXMiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMYXVuY2hlciI+PC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlVzZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1l
dGVycyBOYW1lPSJEZWJ1Z0NXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9Ikhvc3RB
cHBsaWNhdGlvbiI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUhvc3QiPjwv
UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXRoIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iUmVtb3RlUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFt
ZT0iUmVtb3RlTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VSZW1v
dGVMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlQ1dE
Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlRGVidWciPkZhbHNlPC9QYXJh
bWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnIFN5bWJvbHMgU2VhcmNoIFBhdGgiPjwvUGFy
YW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJMb2FkQWxsU3ltYm9scyI+VHJ1ZTwvUGFyYW1ldGVy
cz48UGFyYW1ldGVycyBOYW1lPSJMb2FkVW5zcGVjaWZpZWRTeW1ib2xzIj5GYWxzZTwvUGFyYW1l
dGVycz48L1BhcmFtZXRlcnM+PEV4Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIA0KLSAgICAgIA0K
LSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylcYmluXGJjYm9mZmljZTJrMTAw
LmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgMjAwMCBTZXJ2ZXJzIFBhY2thZ2U8L0V4
Y2x1ZGVkX1BhY2thZ2VzPg0KLSAgICAgIDxFeGNsdWRlZF9QYWNrYWdlcyBOYW1lPSIkKEJEUylc
YmluXGJjYm9mZmljZXhwMTAwLmJwbCI+Q29kZUdlYXIgQysrQnVpbGRlciBPZmZpY2UgWFAgU2Vy
dmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgPC9FeGNsdWRlZF9QYWNrYWdl
cz48TGlua2VyPjxMaW5rZXIgTmFtZT0iTGliUHJlZml4Ij48L0xpbmtlcj48TGlua2VyIE5hbWU9
IkxpYlN1ZmZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJWZXJzaW9uIj48L0xpbmtlcj48
L0xpbmtlcj48UHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9IkF1dG9T
aG93RGVwcyI+RmFsc2U8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1l
PSJNYW5hZ2VQYXRocyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PFByb2plY3RQcm9wZXJ0aWVz
IE5hbWU9IlZlcmlmeVBhY2thZ2VzIj5UcnVlPC9Qcm9qZWN0UHJvcGVydGllcz48L1Byb2plY3RQ
cm9wZXJ0aWVzPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5j
bHVkZVBhdGggTmFtZT0iQ291bnQiPjM8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0
b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMCI+JChCRFMpXGluY2x1ZGU7JChCRFMp
XGluY2x1ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTsuLlx0ZXN0
Oy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGggTmFtZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7
JChCRFMpXGluY2x1ZGVcdmNsOy4uXGluY2x1ZGU7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSW5j
bHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0yIj4kKEJEUylc
aW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxp
bmNsdWRlPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48L0hpc3RvcnlMaXN0c19obEluY2x1
ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hs
SUxJTktfTGlicmFyeVBhdGggTmFtZT0iQ291bnQiPjE8L0hpc3RvcnlMaXN0c19obElMSU5LX0xp
YnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMCI+
JChCRFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs7Li5cdGVzdDwvSGlzdG9y
eUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQ
YXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNk
azsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3Rz
X2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTIiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxv
Ymo7JChCRFMpXGxpYlxwc2RrOyQoT1VUUFVURElSKTsuLlx0ZXN0PC9IaXN0b3J5TGlzdHNfaGxJ
TElOS19MaWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0
b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9IkNvdW50Ij4y
PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0
ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PEhpc3RvcnlMaXN0c19obERl
ZmluZXMgTmFtZT0iSXRlbTEiPlNUUklDVDwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48L0hpc3Rv
cnlMaXN0c19obERlZmluZXM+PC9DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjwvQm9ybGFu
ZFByb2plY3Q+PC9Cb3JsYW5kUHJvamVjdD4NCi0gIDwvUHJvamVjdEV4dGVuc2lvbnM+DQotICA8
SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXEJvcmxhbmQuQ3BwLlRhcmdldHMiIC8+
DQotICA8SXRlbUdyb3VwPg0KLSAgICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSIuLlx0ZXN0XGd0ZXN0
X3VuaXR0ZXN0LmNjIj4NCi0gICAgICA8QnVpbGRPcmRlcj4wPC9CdWlsZE9yZGVyPg0KLSAgICA8
L0NwcENvbXBpbGU+DQotICAgIDxDcHBDb21waWxlIEluY2x1ZGU9Imd0ZXN0X2xpbmsuY2MiPg0K
LSAgICAgIDxCdWlsZE9yZGVyPjE8L0J1aWxkT3JkZXI+DQotICAgIDwvQ3BwQ29tcGlsZT4NCi0g
ICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQotICAgICAgPEtleT5DZmdf
MTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAgPEJ1aWxkQ29uZmlndXJh
dGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18yPC9LZXk+DQotICAgIDwv
QnVpbGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Qcm9qZWN0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2NvbmZpZ3VyZS5hYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvbmZpZ3VyZS5hYwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU0YzhjNGIzMTg4NWQyNTcxZmEyMzAwYjYzMWU4
YmY5ZDk1YWUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb25maWd1cmUuYWMKKysrIC9kZXYvbnVsbApAQCAt
MSw2OCArMCwwIEBACi1tNF9pbmNsdWRlKG00L2FjeF9wdGhyZWFkLm00KQotCi0jIEF0IHRoaXMg
cG9pbnQsIHRoZSBYY29kZSBwcm9qZWN0IGFzc3VtZXMgdGhlIHZlcnNpb24gc3RyaW5nIHdpbGwg
YmUgdGhyZWUKLSMgaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMgYW5kIHN1cnJvdW5kZWQg
Ynkgc3F1YXJlIGJyYWNrZXRzIChlLmcuCi0jICJbMS4wLjFdIikuIEl0IGFsc28gYXN1bWVzIHRo
YXQgdGhlcmUgd29uJ3QgYmUgYW55IGNsb3NpbmcgcGFyZW50aGVzaXMKLSMgYmV0d2VlbiAiQUNf
SU5JVCgiIGFuZCB0aGUgY2xvc2luZyAiKSIgaW5jbHVkaW5nIGNvbW1lbnRzIGFuZCBzdHJpbmdz
LgotQUNfSU5JVChbR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29ya10sCi0gICAgICAgIFsxLjgu
MF0sCi0gICAgICAgIFtnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdyb3Vwcy5jb21dLAotICAg
ICAgICBbZ3Rlc3RdKQotCi0jIFByb3ZpZGUgdmFyaW91cyBvcHRpb25zIHRvIGluaXRpYWxpemUg
dGhlIEF1dG9jb25mIGFuZCBjb25maWd1cmUgcHJvY2Vzc2VzLgotQUNfUFJFUkVRKFsyLjU5XSkK
LUFDX0NPTkZJR19TUkNESVIoWy4vTElDRU5TRV0pCi1BQ19DT05GSUdfTUFDUk9fRElSKFttNF0p
Ci1BQ19DT05GSUdfQVVYX0RJUihbYnVpbGQtYXV4XSkKLUFDX0NPTkZJR19IRUFERVJTKFtidWls
ZC1hdXgvY29uZmlnLmhdKQotQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZV0pCi1BQ19DT05GSUdf
RklMRVMoW3NjcmlwdHMvZ3Rlc3QtY29uZmlnXSwgW2NobW9kICt4IHNjcmlwdHMvZ3Rlc3QtY29u
ZmlnXSkKLQotIyBJbml0aWFsaXplIEF1dG9tYWtlIHdpdGggdmFyaW91cyBvcHRpb25zLiBXZSBy
ZXF1aXJlIGF0IGxlYXN0IHYxLjksIHByZXZlbnQKLSMgcGVkYW50aWMgY29tcGxhaW50cyBhYm91
dCBwYWNrYWdlIGZpbGVzLCBhbmQgZW5hYmxlIHZhcmlvdXMgZGlzdHJpYnV0aW9uCi0jIHRhcmdl
dHMuCi1BTV9JTklUX0FVVE9NQUtFKFsxLjkgZGlzdC1iemlwMiBkaXN0LXppcCBmb3JlaWduIHN1
YmRpci1vYmplY3RzXSkKLQotIyBDaGVjayBmb3IgcHJvZ3JhbXMgdXNlZCBpbiBidWlsZGluZyBH
b29nbGUgVGVzdC4KLUFDX1BST0dfQ0MKLUFDX1BST0dfQ1hYCi1BQ19MQU5HKFtDKytdKQotQUNf
UFJPR19MSUJUT09MCi0KLSMgVE9ETyhjaGFuZGxlcmNAZ29vZ2xlLmNvbSk6IEN1cnJlbnRseSB3
ZSBhcmVuJ3QgcnVubmluZyB0aGUgUHl0aG9uIHRlc3RzCi0jIGFnYWluc3QgdGhlIGludGVycHJl
dGVyIGRldGVjdGVkIGJ5IEFNX1BBVEhfUFlUSE9OLCBhbmQgc28gd2UgY29uZGl0aW9uCi0jIEhB
VkVfUFlUSE9OIGJ5IHJlcXVpcmluZyAicHl0aG9uIiB0byBiZSBpbiB0aGUgUEFUSCwgYW5kIHRo
YXQgaW50ZXJwcmV0ZXIncwotIyB2ZXJzaW9uIHRvIGJlID49IDIuMy4gVGhpcyB3aWxsIGFsbG93
IHRoZSBzY3JpcHRzIHRvIHVzZSBhICIvdXNyL2Jpbi9lbnYiCi0jIGhhc2hiYW5nLgotUFlUSE9O
PSAgIyBXZSAqZG8gbm90KiBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IGEgcHl0aG9uIGludGVy
cHJldGVyCi1BQ19QQVRIX1BST0coW1BZVEhPTl0sW3B5dGhvbl0sWzpdKQotQVNfSUYoW3Rlc3Qg
IiRQWVRIT04iICE9ICI6Il0sCi0gICAgICBbQU1fUFlUSE9OX0NIRUNLX1ZFUlNJT04oWyRQWVRI
T05dLFsyLjNdLFs6XSxbUFlUSE9OPSI6Il0pXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX1BZVEhP
Tl0sW3Rlc3QgIiRQWVRIT04iICE9ICI6Il0pCi0KLSMgQ29uZmlndXJlIHB0aHJlYWRzLgotQUNf
QVJHX1dJVEgoW3B0aHJlYWRzXSwKLSAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRo
LXB0aHJlYWRzXSwKLSAgICAgICAgICAgICAgIFt1c2UgcHRocmVhZHMgKGRlZmF1bHQgaXMgeWVz
KV0pXSwKLSAgICAgICAgICAgIFt3aXRoX3B0aHJlYWRzPSR3aXRodmFsXSwKLSAgICAgICAgICAg
IFt3aXRoX3B0aHJlYWRzPWNoZWNrXSkKLQotaGF2ZV9wdGhyZWFkcz1ubwotQVNfSUYoW3Rlc3Qg
Ingkd2l0aF9wdGhyZWFkcyIgIT0gInhubyJdLAotICAgICAgW0FDWF9QVEhSRUFEKAotICAgICAg
ICBbXSwKLSAgICAgICAgW0FTX0lGKFt0ZXN0ICJ4JHdpdGhfcHRocmVhZHMiICE9ICJ4Y2hlY2si
XSwKLSAgICAgICAgICAgICAgIFtBQ19NU0dfRkFJTFVSRSgKLSAgICAgICAgICAgICAgICAgWy0t
d2l0aC1wdGhyZWFkcyB3YXMgc3BlY2lmaWVkLCBidXQgdW5hYmxlIHRvIGJlIHVzZWRdKV0pXSkK
LSAgICAgICBoYXZlX3B0aHJlYWRzPSIkYWN4X3B0aHJlYWRfb2siXSkKLUFNX0NPTkRJVElPTkFM
KFtIQVZFX1BUSFJFQURTXSxbdGVzdCAieCRoYXZlX3B0aHJlYWRzIiA9ICJ4eWVzIl0pCi1BQ19T
VUJTVChQVEhSRUFEX0NGTEFHUykKLUFDX1NVQlNUKFBUSFJFQURfTElCUykKLQotIyBUT0RPKGNo
YW5kbGVyY0Bnb29nbGUuY29tKSBDaGVjayBmb3IgdGhlIG5lY2Vzc2FyeSBzeXN0ZW0gaGVhZGVy
cy4KLQotIyBUT0RPKGNoYW5kbGVyY0Bnb29nbGUuY29tKSBDaGVjayB0aGUgdHlwZXMsIHN0cnVj
dHVyZXMsIGFuZCBvdGhlciBjb21waWxlcgotIyBhbmQgYXJjaGl0ZWN0dXJlIGNoYXJhY3Rlcmlz
dGljcy4KLQotIyBPdXRwdXQgdGhlIGdlbmVyYXRlZCBmaWxlcy4gTm8gZnVydGhlciBhdXRvY29u
ZiBtYWNyb3MgbWF5IGJlIHVzZWQuCi1BQ19PVVRQVVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29uZmlnLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
ZG9jcy9Qa2djb25maWcubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NjEyODk0
ZDJhM2M4ZWFkYjQ0MmM1NTg3ODA0ZmI3Nzg1ZWFhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9Qa2dj
b25maWcubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotIyMgVXNpbmcgR29vZ2xl
VGVzdCBmcm9tIHZhcmlvdXMgYnVpbGQgc3lzdGVtcyAjIwotCi1Hb29nbGVUZXN0IGNvbWVzIHdp
dGggcGtnLWNvbmZpZyBmaWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBhbGwKLW5l
Y2Vzc2FyeSBmbGFncyBmb3IgY29tcGlsaW5nIGFuZCBsaW5raW5nIHRvIEdvb2dsZVRlc3QgKGFu
ZCBHb29nbGVNb2NrKS4KLVBrZy1jb25maWcgaXMgYSBzdGFuZGFyZGlzZWQgcGxhaW4tdGV4dCBm
b3JtYXQgY29udGFpbmluZwotCi0gICogdGhlIGluY2x1ZGVkaXIgKC1JKSBwYXRoCi0gICogbmVj
ZXNzYXJ5IG1hY3JvICgtRCkgZGVmaW5pdGlvbnMKLSAgKiBmdXJ0aGVyIHJlcXVpcmVkIGZsYWdz
ICgtcHRocmVhZCkKLSAgKiB0aGUgbGlicmFyeSAoLUwpIHBhdGgKLSAgKiB0aGUgbGlicmFyeSAo
LWwpIHRvIGxpbmsgdG8KLQotQWxsIGN1cnJlbnQgYnVpbGQgc3lzdGVtcyBzdXBwb3J0IHBrZy1j
b25maWcgaW4gb25lIHdheSBvciBhbm90aGVyLiBGb3IKLWFsbCBleGFtcGxlcyBoZXJlIHdlIGFz
c3VtZSB5b3Ugd2FudCB0byBjb21waWxlIHRoZSBzYW1wbGUKLWBzYW1wbGVzL3NhbXBsZTNfdW5p
dHRlc3QuY2NgLgotCi0KLSMjIyBDTWFrZSAjIyMKLQotVXNpbmcgYHBrZy1jb25maWdgIGluIENN
YWtlIGlzIGZhaXJseSBlYXN5OgotCi1gYGAKLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lP
TiAzLjApCi0KLWNtYWtlX3BvbGljeShTRVQgQ01QMDA0OCBORVcpCi1wcm9qZWN0KG15X2d0ZXN0
X3BrZ2NvbmZpZyBWRVJTSU9OIDAuMC4xIExBTkdVQUdFUyBDWFgpCi0KLWZpbmRfcGFja2FnZShQ
a2dDb25maWcpCi1wa2dfc2VhcmNoX21vZHVsZShHVEVTVCBSRVFVSVJFRCBndGVzdF9tYWluKQot
Ci1hZGRfZXhlY3V0YWJsZSh0ZXN0YXBwIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYykKLXRh
cmdldF9saW5rX2xpYnJhcmllcyh0ZXN0YXBwICR7R1RFU1RfTERGTEFHU30pCi10YXJnZXRfY29t
cGlsZV9vcHRpb25zKHRlc3RhcHAgUFVCTElDICR7R1RFU1RfQ0ZMQUdTfSkKLQotaW5jbHVkZShD
VGVzdCkKLWFkZF90ZXN0KGZpcnN0X2FuZF9vbmx5X3Rlc3QgdGVzdGFwcCkKLWBgYAotCi1JdCBp
cyBnZW5lcmFsbHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGB0YXJnZXRfY29tcGlsZV9vcHRp
b25zYCArIGBfQ0ZMQUdTYAotb3ZlciBgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXNgICsgYF9J
TkNMVURFX0RJUlNgIGFzIHRoZSBmb3JtZXIgaW5jbHVkZXMgbm90Ci1qdXN0IC1JIGZsYWdzIChH
b29nbGVUZXN0IG1pZ2h0IHJlcXVpcmUgYSBtYWNybyBpbmRpY2F0aW5nIHRvIGludGVybmFsIGhl
YWRlcnMKLXRoYXQgYWxsIGxpYnJhcmllcyBoYXZlIGJlZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRp
bmcgZW5hYmxlZC4gSW4gYWRkaXRpb24sCi1Hb29nbGVUZXN0IG1pZ2h0IGFsc28gcmVxdWlyZSBg
LXB0aHJlYWRgIGluIHRoZSBjb21waWxpbmcgc3RlcCwgYW5kIGFzIHN1Y2gKLXNwbGl0dGluZyB0
aGUgcGtnLWNvbmZpZyBgQ2ZsYWdzYCB2YXJpYWJsZSBpbnRvIGluY2x1ZGUgZGlycyBhbmQgbWFj
cm9zIGZvcgotYHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKClgIG1pZ2h0IHN0aWxsIG1pc3Mg
dGhpcykuIFRoZSBzYW1lIHJlY29tbWVuZGF0aW9uCi1nb2VzIGZvciB1c2luZyBgX0xERkxBR1Ng
IG92ZXIgdGhlIG1vcmUgY29tbW9ucGxhY2UgYF9MSUJSQVJJRVNgLCB3aGljaAotaGFwcGVucyB0
byBkaXNjYXJkIGAtTGAgZmxhZ3MgYW5kIGAtcHRocmVhZGAuCi0KLQotIyMjIEF1dG90b29scyAj
IyMKLQotRmluZGluZyBHb29nbGVUZXN0IGluIEF1dG9jb25mIGFuZCB1c2luZyBpdCBmcm9tIEF1
dG9tYWtlIGlzIGFsc28gZmFpcmx5IGVhc3k6Ci0KLUluIHlvdXIgYGNvbmZpZ3VyZS5hY2A6Ci0K
LWBgYAotQUNfUFJFUkVRKFsyLjY5XSkKLUFDX0lOSVQoW215X2d0ZXN0X3BrZ2NvbmZpZ10sIFsw
LjAuMV0pCi1BQ19DT05GSUdfU1JDRElSKFtzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2NdKQot
QUNfUFJPR19DWFgKLQotUEtHX0NIRUNLX01PRFVMRVMoW0dURVNUXSwgW2d0ZXN0X21haW5dKQot
Ci1BTV9JTklUX0FVVE9NQUtFKFtmb3JlaWduIHN1YmRpci1vYmplY3RzXSkKLUFDX0NPTkZJR19G
SUxFUyhbTWFrZWZpbGVdKQotQUNfT1VUUFVUCi1gYGAKLQotYW5kIGluIHlvdXIgYE1ha2VmaWxl
LmFtYDoKLQotYGBgCi1jaGVja19QUk9HUkFNUyA9IHRlc3RhcHAKLVRFU1RTID0gJChjaGVja19Q
Uk9HUkFNUykKLQotdGVzdGFwcF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNj
Ci10ZXN0YXBwX0NYWEZMQUdTID0gJChHVEVTVF9DRkxBR1MpCi10ZXN0YXBwX0xEQUREID0gJChH
VEVTVF9MSUJTKQotYGBgCi0KLQotIyMjIE1lc29uICMjIwotCi1NZXNvbiBuYXRpdmVseSB1c2Vz
IHBrZ2NvbmZpZyB0byBxdWVyeSBkZXBlbmRlbmNpZXM6Ci0KLWBgYAotcHJvamVjdCgnbXlfZ3Rl
c3RfcGtnY29uZmlnJywgJ2NwcCcsIHZlcnNpb24gOiAnMC4wLjEnKQotCi1ndGVzdF9kZXAgPSBk
ZXBlbmRlbmN5KCdndGVzdF9tYWluJykKLQotdGVzdGFwcCA9IGV4ZWN1dGFibGUoCi0gICd0ZXN0
YXBwJywKLSAgZmlsZXMoWydzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MnXSksCi0gIGRlcGVu
ZGVuY2llcyA6IGd0ZXN0X2RlcCwKLSAgaW5zdGFsbCA6IGZhbHNlKQotCi10ZXN0KCdmaXJzdF9h
bmRfb25seV90ZXN0JywgdGVzdGFwcCkKLWBgYAotCi0KLSMjIyBQbGFpbiBNYWtlZmlsZXMgIyMj
Ci0KLVNpbmNlIGBwa2ctY29uZmlnYCBpcyBhIHNtYWxsIFVuaXggY29tbWFuZC1saW5lIHV0aWxp
dHksIGl0IGNhbiBiZSB1c2VkCi1pbiBoYW5kd3JpdHRlbiBgTWFrZWZpbGVgcyB0b286Ci0KLWBg
YAotR1RFU1RfQ0ZMQUdTID0gYHBrZy1jb25maWcgLS1jZmxhZ3MgZ3Rlc3RfbWFpbmAKLUdURVNU
X0xJQlMgPSBgcGtnLWNvbmZpZyAtLWxpYnMgZ3Rlc3RfbWFpbmAKLQotLlBIT05ZOiB0ZXN0cyBh
bGwKLQotdGVzdHM6IGFsbAotCS4vdGVzdGFwcAotCi1hbGw6IHRlc3RhcHAKLQotdGVzdGFwcDog
dGVzdGFwcC5vCi0JJChDWFgpICQoQ1hYRkxBR1MpICQoTERGTEFHUykgJDwgLW8gJEAgJChHVEVT
VF9MSUJTKQotCi10ZXN0YXBwLm86IHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwotCSQoQ1hY
KSAkKENQUEZMQUdTKSAkKENYWEZMQUdTKSAkPCAtYyAtbyAkQCAkKEdURVNUX0NGTEFHUykKLWBg
YAotCi0KLSMjIyBIZWxwISBwa2ctY29uZmlnIGNhbid0IGZpbmQgR29vZ2xlVGVzdCEgIyMjCi0K
LUxldCdzIHNheSB5b3UgaGF2ZSBhIGBDTWFrZUxpc3RzLnR4dGAgYWxvbmcgdGhlIGxpbmVzIG9m
IHRoZSBvbmUgaW4gdGhpcwotdHV0b3JpYWwgYW5kIHlvdSB0cnkgdG8gcnVuIGBjbWFrZWAuIEl0
IGlzIHZlcnkgcG9zc2libGUgdGhhdCB5b3UgZ2V0IGEKLWZhaWx1cmUgYWxvbmcgdGhlIGxpbmVz
IG9mOgotCi1gYGAKLS0tIENoZWNraW5nIGZvciBvbmUgb2YgdGhlIG1vZHVsZXMgJ2d0ZXN0X21h
aW4nCi1DTWFrZSBFcnJvciBhdCAvdXNyL3NoYXJlL2NtYWtlL01vZHVsZXMvRmluZFBrZ0NvbmZp
Zy5jbWFrZTo2NDAgKG1lc3NhZ2UpOgotICBOb25lIG9mIHRoZSByZXF1aXJlZCAnZ3Rlc3RfbWFp
bicgZm91bmQKLWBgYAotCi1UaGVzZSBmYWlsdXJlcyBhcmUgY29tbW9uIGlmIHlvdSBpbnN0YWxs
ZWQgR29vZ2xlVGVzdCB5b3Vyc2VsZiBhbmQgaGF2ZSBub3QKLXNvdXJjZWQgaXQgZnJvbSBhIGRp
c3RybyBvciBvdGhlciBwYWNrYWdlIG1hbmFnZXIuIElmIHNvLCB5b3UgbmVlZCB0byB0ZWxsCi1w
a2ctY29uZmlnIHdoZXJlIGl0IGNhbiBmaW5kIHRoZSBgLnBjYCBmaWxlcyBjb250YWluaW5nIHRo
ZSBpbmZvcm1hdGlvbi4KLVNheSB5b3UgaW5zdGFsbGVkIEdvb2dsZVRlc3QgdG8gYC91c3IvbG9j
YWxgLCB0aGVuIGl0IG1pZ2h0IGJlIHRoYXQgdGhlCi1gLnBjYCBmaWxlcyBhcmUgaW5zdGFsbGVk
IHVuZGVyIGAvdXNyL2xvY2FsL2xpYjY0L3BrZ2NvbmZpZ2AuIElmIHlvdSBzZXQKLQotYGBgCi1l
eHBvcnQgUEtHX0NPTkZJR19QQVRIPS91c3IvbG9jYWwvbGliNjQvcGtnY29uZmlnCi1gYGAKLQot
cGtnLWNvbmZpZyB3aWxsIGFsc28gdHJ5IHRvIGxvb2sgaW4gYFBLR19DT05GSUdfUEFUSGAgdG8g
ZmluZCBgZ3Rlc3RfbWFpbi5wY2AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9kb2NzL1B1bXBNYW51YWwubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1B1bXBN
YW51YWwubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyN2JiMjRiMDQyZGM1NDNh
ZjRjNDA5YWQwM2UxNDdlYTU5NDliN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9QdW1wTWFudWFsLm1k
CisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLQotCi08Yj5QPC9iPnVtcCBpcyA8Yj5V
PC9iPnNlZnVsIGZvciA8Yj5NPC9iPmV0YSA8Yj5QPC9iPnJvZ3JhbW1pbmcuCi0KLSMgVGhlIFBy
b2JsZW0gIwotCi1UZW1wbGF0ZSBhbmQgbWFjcm8gbGlicmFyaWVzIG9mdGVuIG5lZWQgdG8gZGVm
aW5lIG1hbnkgY2xhc3NlcywKLWZ1bmN0aW9ucywgb3IgbWFjcm9zIHRoYXQgdmFyeSBvbmx5IChv
ciBhbG1vc3Qgb25seSkgaW4gdGhlIG51bWJlciBvZgotYXJndW1lbnRzIHRoZXkgdGFrZS4gSXQn
cyBhIGxvdCBvZiByZXBldGl0aXZlLCBtZWNoYW5pY2FsLCBhbmQKLWVycm9yLXByb25lIHdvcmsu
Ci0KLVZhcmlhZGljIHRlbXBsYXRlcyBhbmQgdmFyaWFkaWMgbWFjcm9zIGNhbiBhbGxldmlhdGUg
dGhlIHByb2JsZW0uCi1Ib3dldmVyLCB3aGlsZSBib3RoIGFyZSBiZWluZyBjb25zaWRlcmVkIGJ5
IHRoZSBDKysgY29tbWl0dGVlLCBuZWl0aGVyCi1pcyBpbiB0aGUgc3RhbmRhcmQgeWV0IG9yIHdp
ZGVseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXJzLiAgVGh1cyB0aGV5Ci1hcmUgb2Z0ZW4gbm90IGEg
Z29vZCBjaG9pY2UsIGVzcGVjaWFsbHkgd2hlbiB5b3VyIGNvZGUgbmVlZHMgdG8gYmUKLXBvcnRh
YmxlLiBBbmQgdGhlaXIgY2FwYWJpbGl0aWVzIGFyZSBzdGlsbCBsaW1pdGVkLgotCi1BcyBhIHJl
c3VsdCwgYXV0aG9ycyBvZiBzdWNoIGxpYnJhcmllcyBvZnRlbiBoYXZlIHRvIHdyaXRlIHNjcmlw
dHMgdG8KLWdlbmVyYXRlIHRoZWlyIGltcGxlbWVudGF0aW9uLiBIb3dldmVyLCBvdXIgZXhwZXJp
ZW5jZSBpcyB0aGF0IGl0J3MKLXRlZGlvdXMgdG8gd3JpdGUgc3VjaCBzY3JpcHRzLCB3aGljaCB0
ZW5kIHRvIHJlZmxlY3QgdGhlIHN0cnVjdHVyZSBvZgotdGhlIGdlbmVyYXRlZCBjb2RlIHBvb3Js
eSBhbmQgYXJlIG9mdGVuIGhhcmQgdG8gcmVhZCBhbmQgZWRpdC4gRm9yCi1leGFtcGxlLCBhIHNt
YWxsIGNoYW5nZSBuZWVkZWQgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIG1heSByZXF1aXJlIHNvbWUK
LW5vbi1pbnR1aXRpdmUsIG5vbi10cml2aWFsIGNoYW5nZXMgaW4gdGhlIHNjcmlwdC4gVGhpcyBp
cyBlc3BlY2lhbGx5Ci1wYWluZnVsIHdoZW4gZXhwZXJpbWVudGluZyB3aXRoIHRoZSBjb2RlLgot
Ci0jIE91ciBTb2x1dGlvbiAjCi0KLVB1bXAgKGZvciBQdW1wIGlzIFVzZWZ1bCBmb3IgTWV0YSBQ
cm9ncmFtbWluZywgUHJldHR5IFVzZWZ1bCBmb3IgTWV0YQotUHJvZ3JhbW1pbmcsIG9yIFByYWN0
aWNhbCBVdGlsaXR5IGZvciBNZXRhIFByb2dyYW1taW5nLCB3aGljaGV2ZXIgeW91Ci1wcmVmZXIp
IGlzIGEgc2ltcGxlIG1ldGEtcHJvZ3JhbW1pbmcgdG9vbCBmb3IgQysrLiBUaGUgaWRlYSBpcyB0
aGF0IGEKLXByb2dyYW1tZXIgd3JpdGVzIGEgYGZvby5wdW1wYCBmaWxlIHdoaWNoIGNvbnRhaW5z
IEMrKyBjb2RlIHBsdXMgbWV0YQotY29kZSB0aGF0IG1hbmlwdWxhdGVzIHRoZSBDKysgY29kZS4g
VGhlIG1ldGEgY29kZSBjYW4gaGFuZGxlCi1pdGVyYXRpb25zIG92ZXIgYSByYW5nZSwgbmVzdGVk
IGl0ZXJhdGlvbnMsIGxvY2FsIG1ldGEgdmFyaWFibGUKLWRlZmluaXRpb25zLCBzaW1wbGUgYXJp
dGhtZXRpYywgYW5kIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zLiBZb3UgY2FuCi12aWV3IGl0IGFz
IGEgc21hbGwgRG9tYWluLVNwZWNpZmljIExhbmd1YWdlLiBUaGUgbWV0YSBsYW5ndWFnZSBpcwot
ZGVzaWduZWQgdG8gYmUgbm9uLWludHJ1c2l2ZSAocy50LiBpdCB3b24ndCBjb25mdXNlIEVtYWNz
JyBDKysgbW9kZSwKLWZvciBleGFtcGxlKSBhbmQgY29uY2lzZSwgbWFraW5nIFB1bXAgY29kZSBp
bnR1aXRpdmUgYW5kIGVhc3kgdG8KLW1haW50YWluLgotCi0jIyBIaWdobGlnaHRzICMjCi0KLSAg
KiBUaGUgaW1wbGVtZW50YXRpb24gaXMgaW4gYSBzaW5nbGUgUHl0aG9uIHNjcmlwdCBhbmQgdGh1
cyB1bHRyYSBwb3J0YWJsZTogbm8gYnVpbGQgb3IgaW5zdGFsbGF0aW9uIGlzIG5lZWRlZCBhbmQg
aXQgd29ya3MgY3Jvc3MgcGxhdGZvcm1zLgotICAqIFB1bXAgdHJpZXMgdG8gYmUgc21hcnQgd2l0
aCByZXNwZWN0IHRvIFtHb29nbGUncyBzdHlsZSBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2dv
b2dsZS9zdHlsZWd1aWRlKTogaXQgYnJlYWtzIGxvbmcgbGluZXMgKGVhc3kgdG8gaGF2ZSB3aGVu
IHRoZXkgYXJlIGdlbmVyYXRlZCkgYXQgYWNjZXB0YWJsZSBwbGFjZXMgdG8gZml0IHdpdGhpbiA4
MCBjb2x1bW5zIGFuZCBpbmRlbnQgdGhlIGNvbnRpbnVhdGlvbiBsaW5lcyBjb3JyZWN0bHkuCi0g
ICogVGhlIGZvcm1hdCBpcyBodW1hbi1yZWFkYWJsZSBhbmQgbW9yZSBjb25jaXNlIHRoYW4gWE1M
LgotICAqIFRoZSBmb3JtYXQgd29ya3MgcmVsYXRpdmVseSB3ZWxsIHdpdGggRW1hY3MnIEMrKyBt
b2RlLgotCi0jIyBFeGFtcGxlcyAjIwotCi1UaGUgZm9sbG93aW5nIFB1bXAgY29kZSAod2hlcmUg
bWV0YSBrZXl3b3JkcyBzdGFydCB3aXRoIGAkYCwgYFtbYCBhbmQgYF1dYCBhcmUgbWV0YSBicmFj
a2V0cywgYW5kIGAkJGAgc3RhcnRzIGEgbWV0YSBjb21tZW50IHRoYXQgZW5kcyB3aXRoIHRoZSBs
aW5lKToKLQotYGBgCi0kdmFyIG4gPSAzICAgICAkJCBEZWZpbmVzIGEgbWV0YSB2YXJpYWJsZSBu
LgotJHJhbmdlIGkgMC4ubiAgJCQgRGVjbGFyZXMgdGhlIHJhbmdlIG9mIG1ldGEgaXRlcmF0b3Ig
aSAoaW5jbHVzaXZlKS4KLSRmb3IgaSBbWwotICAgICAgICAgICAgICAgJCQgTWV0YSBsb29wLgot
Ly8gRm9vJGkgZG9lcyBibGFoIGZvciAkaS1hcnkgcHJlZGljYXRlcy4KLSRyYW5nZSBqIDEuLmkK
LXRlbXBsYXRlIDxzaXplX3QgTiAkZm9yIGogW1ssIHR5cGVuYW1lIEEkal1dPgotY2xhc3MgRm9v
JGkgewotJGlmIGkgPT0gMCBbWwotICBibGFoIGE7Ci1dXSAkZWxpZiBpIDw9IDIgW1sKLSAgYmxh
aCBiOwotXV0gJGVsc2UgW1sKLSAgYmxhaCBjOwotXV0KLX07Ci0KLV1dCi1gYGAKLQotd2lsbCBi
ZSB0cmFuc2xhdGVkIGJ5IHRoZSBQdW1wIGNvbXBpbGVyIHRvOgotCi1gYGAKLS8vIEZvbzAgZG9l
cyBibGFoIGZvciAwLWFyeSBwcmVkaWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBOPgotY2xhc3Mg
Rm9vMCB7Ci0gIGJsYWggYTsKLX07Ci0KLS8vIEZvbzEgZG9lcyBibGFoIGZvciAxLWFyeSBwcmVk
aWNhdGVzLgotdGVtcGxhdGUgPHNpemVfdCBOLCB0eXBlbmFtZSBBMT4KLWNsYXNzIEZvbzEgewot
ICBibGFoIGI7Ci19OwotCi0vLyBGb28yIGRvZXMgYmxhaCBmb3IgMi1hcnkgcHJlZGljYXRlcy4K
LXRlbXBsYXRlIDxzaXplX3QgTiwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEyPgotY2xhc3MgRm9v
MiB7Ci0gIGJsYWggYjsKLX07Ci0KLS8vIEZvbzMgZG9lcyBibGFoIGZvciAzLWFyeSBwcmVkaWNh
dGVzLgotdGVtcGxhdGUgPHNpemVfdCBOLCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTIsIHR5cGVu
YW1lIEEzPgotY2xhc3MgRm9vMyB7Ci0gIGJsYWggYzsKLX07Ci1gYGAKLQotSW4gYW5vdGhlciBl
eGFtcGxlLAotCi1gYGAKLSRyYW5nZSBpIDEuLm4KLUZ1bmMoJGZvciBpICsgW1thJGldXSk7Ci0k
JCBUaGUgdGV4dCBiZXR3ZWVuIGkgYW5kIFtbIGlzIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiBpdGVy
YXRpb25zLgotYGBgCi0KLXdpbGwgZ2VuZXJhdGUgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGluZXMg
KHdpdGhvdXQgdGhlIGNvbW1lbnRzKSwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBgbmA6Ci0K
LWBgYAotRnVuYygpOyAgICAgICAgICAgICAgLy8gSWYgbiBpcyAwLgotRnVuYyhhMSk7ICAgICAg
ICAgICAgLy8gSWYgbiBpcyAxLgotRnVuYyhhMSArIGEyKTsgICAgICAgLy8gSWYgbiBpcyAyLgot
RnVuYyhhMSArIGEyICsgYTMpOyAgLy8gSWYgbiBpcyAzLgotLy8gQW5kIHNvIG9uLi4uCi1gYGAK
LQotIyMgQ29uc3RydWN0cyAjIwotCi1XZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgbWV0YSBwcm9n
cmFtbWluZyBjb25zdHJ1Y3RzOgotCi18IGAkdmFyIGlkID0gZXhwYCB8IERlZmluZXMgYSBuYW1l
ZCBjb25zdGFudCB2YWx1ZS4gYCRpZGAgaXMgdmFsaWQgdXRpbCB0aGUgZW5kIG9mIHRoZSBjdXJy
ZW50IG1ldGEgbGV4aWNhbCBibG9jay4gfAotfDotLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLXwgYCRyYW5nZSBpZCBleHAuLmV4cGAgfCBT
ZXRzIHRoZSByYW5nZSBvZiBhbiBpdGVyYXRpb24gdmFyaWFibGUsIHdoaWNoIGNhbiBiZSByZXVz
ZWQgaW4gbXVsdGlwbGUgbG9vcHMgbGF0ZXIuICAgICAgICAgIHwKLXwgYCRmb3IgaWQgc2VwIFtb
IGNvZGUgXV1gIHwgSXRlcmF0aW9uLiBUaGUgcmFuZ2Ugb2YgYGlkYCBtdXN0IGhhdmUgYmVlbiBk
ZWZpbmVkIGVhcmxpZXIuIGAkaWRgIGlzIHZhbGlkIGluIGBjb2RlYC4gICAgICAgICB8Ci18IGAk
KCQpYCAgICAgICAgICB8IEdlbmVyYXRlcyBhIHNpbmdsZSBgJGAgY2hhcmFjdGVyLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
fCBgJGlkYCAgICAgICAgICAgfCBWYWx1ZSBvZiB0aGUgbmFtZWQgY29uc3RhbnQgb3IgaXRlcmF0
aW9uIHZhcmlhYmxlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwKLXwgYCQoZXhwKWAgICAgICAgIHwgVmFsdWUgb2YgdGhlIGV4cHJlc3Npb24uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8Ci18IGAkaWYgZXhwIFtbIGNvZGUgXV0gZWxzZV9icmFuY2hgIHwgQ29uZGl0aW9uYWwu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGBbWyBjb2RlIF1dYCAgICB8IE1ldGEgbGV4
aWNhbCBibG9jay4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgY3BwX2NvZGVgICAgICAgfCBSYXcg
QysrIGNvZGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCQkIGNvbW1lbnRgICAgIHwg
TWV0YSBjb21tZW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0KLSoqTm90ZToqKiBUbyBn
aXZlIHRoZSB1c2VyIHNvbWUgZnJlZWRvbSBpbiBmb3JtYXR0aW5nIHRoZSBQdW1wIHNvdXJjZQot
Y29kZSwgUHVtcCBpZ25vcmVzIGEgbmV3LWxpbmUgY2hhcmFjdGVyIGlmIGl0J3MgcmlnaHQgYWZ0
ZXIgYCRmb3IgZm9vYAotb3IgbmV4dCB0byBgW1tgIG9yIGBdXWAuIFdpdGhvdXQgdGhpcyBydWxl
IHlvdSdsbCBvZnRlbiBiZSBmb3JjZWQgdG8gd3JpdGUKLXZlcnkgbG9uZyBsaW5lcyB0byBnZXQg
dGhlIGRlc2lyZWQgb3V0cHV0LiBUaGVyZWZvcmUgc29tZXRpbWVzIHlvdSBtYXkKLW5lZWQgdG8g
aW5zZXJ0IGFuIGV4dHJhIG5ldy1saW5lIGluIHN1Y2ggcGxhY2VzIGZvciBhIG5ldy1saW5lIHRv
IHNob3cKLXVwIGluIHlvdXIgb3V0cHV0LgotCi0jIyBHcmFtbWFyICMjCi0KLWBgYAotY29kZSA6
Oj0gYXRvbWljX2NvZGUqCi1hdG9taWNfY29kZSA6Oj0gJHZhciBpZCA9IGV4cAotICAgIHwgJHZh
ciBpZCA9IFtbIGNvZGUgXV0KLSAgICB8ICRyYW5nZSBpZCBleHAuLmV4cAotICAgIHwgJGZvciBp
ZCBzZXAgW1sgY29kZSBdXQotICAgIHwgJCgkKQotICAgIHwgJGlkCi0gICAgfCAkKGV4cCkKLSAg
ICB8ICRpZiBleHAgW1sgY29kZSBdXSBlbHNlX2JyYW5jaAotICAgIHwgW1sgY29kZSBdXQotICAg
IHwgY3BwX2NvZGUKLXNlcCA6Oj0gY3BwX2NvZGUgfCBlbXB0eV9zdHJpbmcKLWVsc2VfYnJhbmNo
IDo6PSAkZWxzZSBbWyBjb2RlIF1dCi0gICAgfCAkZWxpZiBleHAgW1sgY29kZSBdXSBlbHNlX2Jy
YW5jaAotICAgIHwgZW1wdHlfc3RyaW5nCi1leHAgOjo9IHNpbXBsZV9leHByZXNzaW9uX2luX1B5
dGhvbl9zeW50YXgKLWBgYAotCi0jIyBDb2RlICMjCi0KLVlvdSBjYW4gZmluZCB0aGUgc291cmNl
IGNvZGUgb2YgUHVtcCBpbiBbc2NyaXB0cy9wdW1wLnB5XSguLi9zY3JpcHRzL3B1bXAucHkpLiBJ
dCBpcyBzdGlsbAotdmVyeSB1bnBvbGlzaGVkIGFuZCBsYWNrcyBhdXRvbWF0ZWQgdGVzdHMsIGFs
dGhvdWdoIGl0IGhhcyBiZWVuCi1zdWNjZXNzZnVsbHkgdXNlZCBtYW55IHRpbWVzLiBJZiB5b3Ug
ZmluZCBhIGNoYW5jZSB0byB1c2UgaXQgaW4geW91cgotcHJvamVjdCwgcGxlYXNlIGxldCB1cyBr
bm93IHdoYXQgeW91IHRoaW5rISAgV2UgYWxzbyB3ZWxjb21lIGhlbHAgb24KLWltcHJvdmluZyBQ
dW1wLgotCi0jIyBSZWFsIEV4YW1wbGVzICMjCi0KLVlvdSBjYW4gZmluZCByZWFsLXdvcmxkIGFw
cGxpY2F0aW9ucyBvZiBQdW1wIGluIFtHb29nbGUgVGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL2dv
b2dsZS9nb29nbGV0ZXN0L3RyZWUvbWFzdGVyL2dvb2dsZXRlc3QpIGFuZCBbR29vZ2xlIE1vY2td
KGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC90cmVlL21hc3Rlci9nb29nbGVt
b2NrKS4gVGhlIHNvdXJjZSBmaWxlIGBmb28uaC5wdW1wYCBnZW5lcmF0ZXMgYGZvby5oYC4KLQot
IyMgVGlwcyAjIwotCi0gICogSWYgYSBtZXRhIHZhcmlhYmxlIGlzIGZvbGxvd2VkIGJ5IGEgbGV0
dGVyIG9yIGRpZ2l0LCB5b3UgY2FuIHNlcGFyYXRlIHRoZW0gdXNpbmcgYFtbXV1gLCB3aGljaCBp
bnNlcnRzIGFuIGVtcHR5IHN0cmluZy4gRm9yIGV4YW1wbGUgYEZvbyRqW1tdXUhlbHBlcmAgZ2Vu
ZXJhdGUgYEZvbzFIZWxwZXJgIHdoZW4gYGpgIGlzIDEuCi0gICogVG8gYXZvaWQgZXh0cmEtbG9u
ZyBQdW1wIHNvdXJjZSBsaW5lcywgeW91IGNhbiBicmVhayBhIGxpbmUgYW55d2hlcmUgeW91IHdh
bnQgYnkgaW5zZXJ0aW5nIGBbW11dYCBmb2xsb3dlZCBieSBhIG5ldyBsaW5lLiBTaW5jZSBhbnkg
bmV3LWxpbmUgY2hhcmFjdGVyIG5leHQgdG8gYFtbYCBvciBgXV1gIGlzIGlnbm9yZWQsIHRoZSBn
ZW5lcmF0ZWQgY29kZSB3b24ndCBjb250YWluIHRoaXMgbmV3IGxpbmUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2RvY3MvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYzU3Yjc5OWNjZTkzM2MwMzRjMzE4
NTk1OTRjYTFiODc2ODlhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9kb2NzL1JFQURNRS5tZApAQCAtMCwwICsxLDQgQEAKKyMgQ29udGVudCBNb3ZlZAorCitX
ZSBhcmUgd29ya2luZyBvbiB1cGRhdGVzIHRvIHRoZSBHb29nbGVUZXN0IGRvY3VtZW50YXRpb24s
IHdoaWNoIGhhcyBtb3ZlZCB0bwordGhlIHRvcC1sZXZlbCBbZG9jc10oLi4vLi4vZG9jcykgZGly
ZWN0b3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9YY29kZUd1
aWRlLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9YY29kZUd1aWRlLm1kCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzYwYTMzZGFkNDNiYWY5ODM4MWY3YzlmMjBmNjli
NTU4YjJhYWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvWGNvZGVHdWlkZS5tZAorKysgL2Rldi9udWxs
CkBAIC0xLDkzICswLDAgQEAKLQotCi1UaGlzIGd1aWRlIHdpbGwgZXhwbGFpbiBob3cgdG8gdXNl
IHRoZSBHb29nbGUgVGVzdGluZyBGcmFtZXdvcmsgaW4geW91ciBYY29kZSBwcm9qZWN0cyBvbiBN
YWMgT1MgWC4gVGhpcyB0dXRvcmlhbCBiZWdpbnMgYnkgcXVpY2tseSBleHBsYWluaW5nIHdoYXQg
dG8gZG8gZm9yIGV4cGVyaWVuY2VkIHVzZXJzLiBBZnRlciB0aGUgcXVpY2sgc3RhcnQsIHRoZSBn
dWlkZSBnb2VzIHByb3ZpZGVzIGFkZGl0aW9uYWwgZXhwbGFuYXRpb24gYWJvdXQgZWFjaCBzdGVw
LgotCi0jIFF1aWNrIFN0YXJ0ICMKLQotSGVyZSBpcyB0aGUgcXVpY2sgZ3VpZGUgZm9yIHVzaW5n
IEdvb2dsZSBUZXN0IGluIHlvdXIgWGNvZGUgcHJvamVjdC4KLQotICAxLiBEb3dubG9hZCB0aGUg
c291cmNlIGZyb20gdGhlIFt3ZWJzaXRlXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2ds
ZXRlc3QpIHVzaW5nIHRoaXMgY29tbWFuZDogYHN2biBjaGVja291dCBodHRwOi8vZ29vZ2xldGVz
dC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmsvIGdvb2dsZXRlc3QtcmVhZC1vbmx5YC4KLSAgMS4g
T3BlbiB1cCB0aGUgYGd0ZXN0Lnhjb2RlcHJvamAgaW4gdGhlIGBnb29nbGV0ZXN0LXJlYWQtb25s
eS94Y29kZS9gIGRpcmVjdG9yeSBhbmQgYnVpbGQgdGhlIGd0ZXN0LmZyYW1ld29yay4KLSAgMS4g
Q3JlYXRlIGEgbmV3ICJTaGVsbCBUb29sIiB0YXJnZXQgaW4geW91ciBYY29kZSBwcm9qZWN0IGNh
bGxlZCBzb21ldGhpbmcgbGlrZSAiVW5pdFRlc3RzIi4KLSAgMS4gQWRkIHRoZSBndGVzdC5mcmFt
ZXdvcmsgdG8geW91ciBwcm9qZWN0IGFuZCBhZGQgaXQgdG8gdGhlICJMaW5rIEJpbmFyeSB3aXRo
IExpYnJhcmllcyIgYnVpbGQgcGhhc2Ugb2YgIlVuaXRUZXN0cyIuCi0gIDEuIEFkZCB5b3VyIHVu
aXQgdGVzdCBzb3VyY2UgY29kZSB0byB0aGUgIkNvbXBpbGUgU291cmNlcyIgYnVpbGQgcGhhc2Ug
b2YgIlVuaXRUZXN0cyIuCi0gIDEuIEVkaXQgdGhlICJVbml0VGVzdHMiIGV4ZWN1dGFibGUgYW5k
IGFkZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lZCAiRFlMRFxfRlJBTUVXT1JLXF9QQVRI
IiB3aXRoIGEgdmFsdWUgZXF1YWwgdG8gdGhlIHBhdGggdG8gdGhlIGZyYW1ld29yayBjb250YWlu
aW5nIHRoZSBndGVzdC5mcmFtZXdvcmsgcmVsYXRpdmUgdG8gdGhlIGNvbXBpbGVkIGV4ZWN1dGFi
bGUuCi0gIDEuIEJ1aWxkIGFuZCBHby4KLQotVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBmdXJ0aGVy
IGV4cGxhaW4gZWFjaCBvZiB0aGUgc3RlcHMgbGlzdGVkIGFib3ZlIGluIGRlcHRoLCBkZXNjcmli
aW5nIGluIG1vcmUgZGV0YWlsIGhvdyB0byBjb21wbGV0ZSBpdCBpbmNsdWRpbmcgc29tZSB2YXJp
YXRpb25zLgotCi0jIEdldCB0aGUgU291cmNlICMKLQotQ3VycmVudGx5LCB0aGUgZ3Rlc3QuZnJh
bWV3b3JrIGRpc2N1c3NlZCBoZXJlIGlzbid0IGF2YWlsYWJsZSBpbiBhIHRhZ2dlZCByZWxlYXNl
IG9mIEdvb2dsZSBUZXN0LCBpdCBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgdHJ1bmsuIEFzIGV4
cGxhaW5lZCBhdCB0aGUgR29vZ2xlIFRlc3QgW3NpdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29n
bGUvZ29vZ2xldGVzdCksIHlvdSBjYW4gZ2V0IHRoZSBjb2RlIGZyb20gYW5vbnltb3VzIFNWTiB3
aXRoIHRoaXMgY29tbWFuZDoKLQotYGBgCi1zdm4gY2hlY2tvdXQgaHR0cDovL2dvb2dsZXRlc3Qu
Z29vZ2xlY29kZS5jb20vc3ZuL3RydW5rLyBnb29nbGV0ZXN0LXJlYWQtb25seQotYGBgCi0KLUFs
dGVybmF0aXZlbHksIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIFN1YnZlcnNpb24gaW4geW91ciBv
d24gY29kZSBiYXNlLCB5b3UgY2FuIGFkZCBHb29nbGUgVGVzdCBhcyBhbiBleHRlcm5hbCBkZXBl
bmRlbmN5IHRvIHlvdXIgb3duIFN1YnZlcnNpb24gcmVwb3NpdG9yeS4gQnkgZm9sbG93aW5nIHRo
aXMgYXBwcm9hY2gsIGV2ZXJ5b25lIHRoYXQgY2hlY2tzIG91dCB5b3VyIHN2biByZXBvc2l0b3J5
IHdpbGwgYWxzbyByZWNlaXZlIGEgY29weSBvZiBHb29nbGUgVGVzdCAoYSBzcGVjaWZpYyB2ZXJz
aW9uLCBpZiB5b3Ugd2lzaCkgd2l0aG91dCBoYXZpbmcgdG8gY2hlY2sgaXQgb3V0IGV4cGxpY2l0
bHkuIFRoaXMgbWFrZXMgdGhlIHNldCB1cCBvZiB5b3VyIHByb2plY3Qgc2ltcGxlciBhbmQgcmVk
dWNlcyB0aGUgY29waWVkIGNvZGUgaW4gdGhlIHJlcG9zaXRvcnkuCi0KLVRvIHVzZSBgc3ZuOmV4
dGVybmFsc2AsIGRlY2lkZSB3aGVyZSB5b3Ugd291bGQgbGlrZSB0byBoYXZlIHRoZSBleHRlcm5h
bCBzb3VyY2UgcmVzaWRlLiBZb3UgbWlnaHQgY2hvb3NlIHRvIHB1dCB0aGUgZXh0ZXJuYWwgc291
cmNlIGluc2lkZSB0aGUgdHJ1bmssIGJlY2F1c2UgeW91IHdhbnQgaXQgdG8gYmUgcGFydCBvZiB0
aGUgYnJhbmNoIHdoZW4geW91IG1ha2UgYSByZWxlYXNlLiBIb3dldmVyLCBrZWVwaW5nIGl0IG91
dHNpZGUgdGhlIHRydW5rIGluIGEgdmVyc2lvbi10YWdnZWQgZGlyZWN0b3J5IGNhbGxlZCBzb21l
dGhpbmcgbGlrZSBgdGhpcmQtcGFydHkvZ29vZ2xldGVzdC8xLjAuMWAsIGlzIGFub3RoZXIgb3B0
aW9uLiBPbmNlIHRoZSBsb2NhdGlvbiBpcyBlc3RhYmxpc2hlZCwgdXNlIGBzdm4gcHJvcGVkaXQg
c3ZuOmV4dGVybmFscyBfZGlyZWN0b3J5X2AgdG8gc2V0IHRoZSBzdm46ZXh0ZXJuYWxzIHByb3Bl
cnR5IG9uIGEgZGlyZWN0b3J5IGluIHlvdXIgcmVwb3NpdG9yeS4gVGhpcyBkaXJlY3Rvcnkgd29u
J3QgY29udGFpbiB0aGUgY29kZSwgYnV0IGJlIGl0cyB2ZXJzaW9uZWQgcGFyZW50IGRpcmVjdG9y
eS4KLQotVGhlIGNvbW1hbmQgYHN2biBwcm9wZWRpdGAgd2lsbCBicmluZyB1cCB5b3VyIFN1YnZl
cnNpb24gZWRpdG9yLCBtYWtpbmcgZWRpdGluZyB0aGUgbG9uZywgKHBvdGVudGlhbGx5IG11bHRp
LWxpbmUpIHByb3BlcnR5IHNpbXBsZXIuIFRoaXMgc2FtZSBtZXRob2QgY2FuIGJlIHVzZWQgdG8g
Y2hlY2sgb3V0IGEgdGFnZ2VkIGJyYW5jaCwgYnkgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIFVSTCAo
ZS5nLiBgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L3JlbGVhc2VzL3RhZy9y
ZWxlYXNlLTEuMC4xYCkuIEFkZGl0aW9uYWxseSwgdGhlIHN2bjpleHRlcm5hbHMgcHJvcGVydHkg
YWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgcGFydGljdWxhciByZXZpc2lvbiBvZiB0aGUg
dHJ1bmsgd2l0aCB0aGUgYC1yXyMjX2Agb3B0aW9uIChlLmcuIGBleHRlcm5hbHMvc3JjL2dvb2ds
ZXRlc3QgLXI2MCBodHRwOi8vZ29vZ2xldGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmtgKS4K
LQotSGVyZSBpcyBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnRp
ZXMgb24gYSB0cnVuayAocmVhZCB2aWEgYHN2biBwcm9wZ2V0YCkgb2YgYSBwcm9qZWN0LiBUaGlz
IHZhbHVlIGNoZWNrcyBvdXQgYSBjb3B5IG9mIEdvb2dsZSBUZXN0IGludG8gdGhlIGB0cnVuay9l
eHRlcm5hbHMvc3JjL2dvb2dsZXRlc3QvYCBkaXJlY3RvcnkuCi0KLWBgYAotW0NvbXB1dGVyOnN2
bl0gdXNlciQgc3ZuIHByb3BnZXQgc3ZuOmV4dGVybmFscyB0cnVuawotZXh0ZXJuYWxzL3NyYy9n
b29nbGV0ZXN0IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuawotYGBg
Ci0KLSMgQWRkIHRoZSBGcmFtZXdvcmsgdG8gWW91ciBQcm9qZWN0ICMKLQotVGhlIG5leHQgc3Rl
cCBpcyB0byBidWlsZCBhbmQgYWRkIHRoZSBndGVzdC5mcmFtZXdvcmsgdG8geW91ciBvd24gcHJv
amVjdC4gVGhpcyBndWlkZSBkZXNjcmliZXMgdHdvIGNvbW1vbiB3YXlzIGJlbG93LgotCi0gICog
KipPcHRpb24gMSoqIC0tLSBUaGUgc2ltcGxlc3Qgd2F5IHRvIGFkZCBHb29nbGUgVGVzdCB0byB5
b3VyIG93biBwcm9qZWN0LCBpcyB0byBvcGVuIGd0ZXN0Lnhjb2RlcHJvaiAoZm91bmQgaW4gdGhl
IHhjb2RlLyBkaXJlY3Rvcnkgb2YgdGhlIEdvb2dsZSBUZXN0IHRydW5rKSBhbmQgYnVpbGQgdGhl
IGZyYW1ld29yayBtYW51YWxseS4gVGhlbiwgYWRkIHRoZSBidWlsdCBmcmFtZXdvcmsgaW50byB5
b3VyIHByb2plY3QgdXNpbmcgdGhlICJBZGQtPkV4aXN0aW5nIEZyYW1ld29yay4uLiIgZnJvbSB0
aGUgY29udGV4dCBtZW51IG9yICJQcm9qZWN0LT5BZGQuLi4iIGZyb20gdGhlIG1haW4gbWVudS4g
VGhlIGd0ZXN0LmZyYW1ld29yayBpcyByZWxvY2F0YWJsZSBhbmQgY29udGFpbnMgdGhlIGhlYWRl
cnMgYW5kIG9iamVjdCBjb2RlIHRoYXQgeW91J2xsIG5lZWQgdG8gbWFrZSB0ZXN0cy4gVGhpcyBt
ZXRob2QgcmVxdWlyZXMgcmVidWlsZGluZyBldmVyeSB0aW1lIHlvdSB1cGdyYWRlIEdvb2dsZSBU
ZXN0IGluIHlvdXIgcHJvamVjdC4KLSAgKiAqKk9wdGlvbiAyKiogLS0tIElmIHlvdSBhcmUgZ29p
bmcgdG8gYmUgbGl2aW5nIG9mZiB0aGUgdHJ1bmsgb2YgR29vZ2xlIFRlc3QsIGluY29ycG9yYXRp
bmcgaXRzIGxhdGVzdCBmZWF0dXJlcyBpbnRvIHlvdXIgdW5pdCB0ZXN0cyAob3IgYXJlIGEgR29v
Z2xlIFRlc3QgZGV2ZWxvcGVyIHlvdXJzZWxmKS4gWW91J2xsIHdhbnQgdG8gcmVidWlsZCB0aGUg
ZnJhbWV3b3JrIGV2ZXJ5IHRpbWUgdGhlIHNvdXJjZSB1cGRhdGVzLiB0byBkbyB0aGlzLCB5b3Un
bGwgbmVlZCB0byBhZGQgdGhlIGd0ZXN0Lnhjb2RlcHJvaiBmaWxlLCBub3QgdGhlIGZyYW1ld29y
ayBpdHNlbGYsIHRvIHlvdXIgb3duIFhjb2RlIHByb2plY3QuIFRoZW4sIGZyb20gdGhlIGJ1aWxk
IHByb2R1Y3RzIHRoYXQgYXJlIHJldmVhbGVkIGJ5IHRoZSBwcm9qZWN0J3MgZGlzY2xvc3VyZSB0
cmlhbmdsZSwgeW91IGNhbiBmaW5kIHRoZSBndGVzdC5mcmFtZXdvcmssIHdoaWNoIGNhbiBiZSBh
ZGRlZCB0byB5b3VyIHRhcmdldHMgKGRpc2N1c3NlZCBiZWxvdykuCi0KLSMgTWFrZSBhIFRlc3Qg
VGFyZ2V0ICMKLQotVG8gc3RhcnQgd3JpdGluZyB0ZXN0cywgbWFrZSBhIG5ldyAiU2hlbGwgVG9v
bCIgdGFyZ2V0LiBUaGlzIHRhcmdldCB0ZW1wbGF0ZSBpcyBhdmFpbGFibGUgdW5kZXIgQlNELCBD
b2NvYSwgb3IgQ2FyYm9uLiBBZGQgeW91ciB1bml0IHRlc3Qgc291cmNlIGNvZGUgdG8gdGhlICJD
b21waWxlIFNvdXJjZXMiIGJ1aWxkIHBoYXNlIG9mIHRoZSB0YXJnZXQuCi0KLU5leHQsIHlvdSds
bCB3YW50IHRvIGFkZCBndGVzdC5mcmFtZXdvcmsgaW4gdHdvIGRpZmZlcmVudCB3YXlzLCBkZXBl
bmRpbmcgdXBvbiB3aGljaCBvcHRpb24geW91IGNob3NlIGFib3ZlLgotCi0gICogKipPcHRpb24g
MSoqIC0tLSBEdXJpbmcgY29tcGlsYXRpb24sIFhjb2RlIHdpbGwgbmVlZCB0byBrbm93IHRoYXQg
eW91IGFyZSBsaW5raW5nIGFnYWluc3QgdGhlIGd0ZXN0LmZyYW1ld29yay4gQWRkIHRoZSBndGVz
dC5mcmFtZXdvcmsgdG8gdGhlICJMaW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQgcGhh
c2Ugb2YgeW91ciB0ZXN0IHRhcmdldC4gVGhpcyB3aWxsIGluY2x1ZGUgdGhlIEdvb2dsZSBUZXN0
IGhlYWRlcnMgaW4geW91ciBoZWFkZXIgc2VhcmNoIHBhdGgsIGFuZCB3aWxsIHRlbGwgdGhlIGxp
bmtlciB3aGVyZSB0byBmaW5kIHRoZSBsaWJyYXJ5LgotICAqICoqT3B0aW9uIDIqKiAtLS0gSWYg
eW91ciB3b3JraW5nIG91dCBvZiB0aGUgdHJ1bmssIHlvdSdsbCBhbHNvIHdhbnQgdG8gYWRkIGd0
ZXN0LmZyYW1ld29yayB0byB5b3VyICJMaW5rIEJpbmFyeSB3aXRoIExpYnJhcmllcyIgYnVpbGQg
cGhhc2Ugb2YgeW91ciB0ZXN0IHRhcmdldC4gSW4gYWRkaXRpb24sIHlvdSdsbCAgd2FudCB0byBh
ZGQgdGhlIGd0ZXN0LmZyYW1ld29yayBhcyBhIGRlcGVuZGVuY3kgdG8geW91ciB1bml0IHRlc3Qg
dGFyZ2V0LiBUaGlzIHdheSwgWGNvZGUgd2lsbCBtYWtlIHN1cmUgdGhhdCBndGVzdC5mcmFtZXdv
cmsgaXMgdXAgdG8gZGF0ZSwgZXZlcnkgdGltZSB5b3VyIGJ1aWxkIHlvdXIgdGFyZ2V0LiBGaW5h
bGx5LCBpZiB5b3UgZG9uJ3Qgc2hhcmUgYnVpbGQgZGlyZWN0b3JpZXMgd2l0aCBHb29nbGUgVGVz
dCwgeW91J2xsIGhhdmUgdG8gY29weSB0aGUgZ3Rlc3QuZnJhbWV3b3JrIGludG8geW91ciBvd24g
YnVpbGQgcHJvZHVjdHMgZGlyZWN0b3J5IHVzaW5nIGEgIlJ1biBTY3JpcHQiIGJ1aWxkIHBoYXNl
LgotCi0jIFNldCBVcCB0aGUgRXhlY3V0YWJsZSBSdW4gRW52aXJvbm1lbnQgIwotCi1TaW5jZSB0
aGUgdW5pdCB0ZXN0IGV4ZWN1dGFibGUgaXMgYSBzaGVsbCB0b29sLCBpdCBkb2Vzbid0IGhhdmUg
YSBidW5kbGUgd2l0aCBhIGBDb250ZW50cy9GcmFtZXdvcmtzYCBkaXJlY3RvcnksIGluIHdoaWNo
IHRvIHBsYWNlIGd0ZXN0LmZyYW1ld29yay4gSW5zdGVhZCwgdGhlIGR5bmFtaWMgbGlua2VyIG11
c3QgYmUgdG9sZCBhdCBydW50aW1lIHRvIHNlYXJjaCBmb3IgdGhlIGZyYW1ld29yayBpbiBhbm90
aGVyIGxvY2F0aW9uLiBUaGlzIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgc2V0dGluZyB0aGUgIkRZ
TERcX0ZSQU1FV09SS1xfUEFUSCIgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4gdGhlICJFZGl0IEFj
dGl2ZSBFeGVjdXRhYmxlIC4uLiIgQXJndW1lbnRzIHRhYiwgdW5kZXIgIlZhcmlhYmxlcyB0byBi
ZSBzZXQgaW4gdGhlIGVudmlyb25tZW50OiIuIFRoZSBwYXRoIGZvciB0aGlzIHZhbHVlIGlzIHRo
ZSBwYXRoIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSkgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5n
IHRoZSBndGVzdC5mcmFtZXdvcmsuCi0KLUlmIHlvdSBoYXZlbid0IHNldCB1cCB0aGUgRFlMRFxf
RlJBTUVXT1JLXF9QQVRILCBjb3JyZWN0bHksIHlvdSBtaWdodCBnZXQgYSBtZXNzYWdlIGxpa2Ug
dGhpczoKLQotYGBgCi1bU2Vzc2lvbiBzdGFydGVkIGF0IDIwMDgtMDgtMTUgMDY6MjM6NTcgLTA2
MDAuXQotICBkeWxkOiBMaWJyYXJ5IG5vdCBsb2FkZWQ6IEBsb2FkZXJfcGF0aC8uLi9GcmFtZXdv
cmtzL2d0ZXN0LmZyYW1ld29yay9WZXJzaW9ucy9BL2d0ZXN0Ci0gICAgUmVmZXJlbmNlZCBmcm9t
OiAvVXNlcnMvdXNlcm5hbWUvRG9jdW1lbnRzL1NhbmRib3gvZ3Rlc3RTYW1wbGUvYnVpbGQvRGVi
dWcvV2lkZ2V0RnJhbWV3b3JrVGVzdAotICAgIFJlYXNvbjogaW1hZ2Ugbm90IGZvdW5kCi1gYGAK
LQotVG8gY29ycmVjdCB0aGlzIHByb2JsZW0sIGdvIHRvIHRvIHRoZSBkaXJlY3RvcnkgY29udGFp
bmluZyB0aGUgZXhlY3V0YWJsZSBuYW1lZCBpbiAiUmVmZXJlbmNlZCBmcm9tOiIgdmFsdWUgaW4g
dGhlIGVycm9yIG1lc3NhZ2UgYWJvdmUuIFRoZW4sIHdpdGggdGhlIHRlcm1pbmFsIGluIHRoaXMg
bG9jYXRpb24sIGZpbmQgdGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWlu
aW5nIHRoZSBndGVzdC5mcmFtZXdvcmsuIFRoYXQgaXMgdGhlIHZhbHVlIHlvdSdsbCBuZWVkIHRv
IHNldCBhcyB0aGUgRFlMRFxfRlJBTUVXT1JLXF9QQVRILgotCi0jIEJ1aWxkIGFuZCBHbyAjCi0K
LU5vdywgd2hlbiB5b3UgY2xpY2sgIkJ1aWxkIGFuZCBHbyIsIHRoZSB0ZXN0IHdpbGwgYmUgZXhl
Y3V0ZWQuIER1bXBpbmcgb3V0IHNvbWV0aGluZyBsaWtlIHRoaXM6Ci0KLWBgYAotW1Nlc3Npb24g
c3RhcnRlZCBhdCAyMDA4LTA4LTA2IDA2OjM2OjEzIC0wNjAwLl0KLVs9PT09PT09PT09XSBSdW5u
aW5nIDIgdGVzdHMgZnJvbSAxIHRlc3QgY2FzZS4KLVstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBl
bnZpcm9ubWVudCBzZXQtdXAuCi1bLS0tLS0tLS0tLV0gMiB0ZXN0cyBmcm9tIFdpZGdldEluaXRp
YWxpemVyVGVzdAotWyBSVU4gICAgICBdIFdpZGdldEluaXRpYWxpemVyVGVzdC5UZXN0Q29uc3Ry
dWN0b3IKLVsgICAgICAgT0sgXSBXaWRnZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnN0cnVjdG9y
Ci1bIFJVTiAgICAgIF0gV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bICAg
ICAgIE9LIF0gV2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LlRlc3RDb252ZXJzaW9uCi1bLS0tLS0tLS0t
LV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gMiB0ZXN0
cyBmcm9tIDEgdGVzdCBjYXNlIHJhbi4KLVsgIFBBU1NFRCAgXSAyIHRlc3RzLgotCi1UaGUgRGVi
dWdnZXIgaGFzIGV4aXRlZCB3aXRoIHN0YXR1cyAwLiAgCi1gYGAKLQotIyBTdW1tYXJ5ICMKLQot
VW5pdCB0ZXN0aW5nIGlzIGEgdmFsdWFibGUgd2F5IHRvIGVuc3VyZSB5b3VyIGRhdGEgbW9kZWwg
c3RheXMgdmFsaWQgZXZlbiBkdXJpbmcgcmFwaWQgZGV2ZWxvcG1lbnQgb3IgcmVmYWN0b3Jpbmcu
IFRoZSBHb29nbGUgVGVzdGluZyBGcmFtZXdvcmsgaXMgYSBncmVhdCB1bml0IHRlc3RpbmcgZnJh
bWV3b3JrIGZvciBDIGFuZCBDKysgd2hpY2ggaW50ZWdyYXRlcyB3ZWxsIHdpdGggYW4gWGNvZGUg
ZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9kb2NzL2FkdmFuY2VkLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9hZHZh
bmNlZC5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA2NWQxOTYyMWE4YjM3ZmI3
OGNiNWUwZWQxYjg2MThmZTc2MjVkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2FkdmFuY2VkLm1kCisr
KyAvZGV2L251bGwKQEAgLTEsMjUyMCArMCwwIEBACi0jIEFkdmFuY2VkIGdvb2dsZXRlc3QgVG9w
aWNzCi0KLQotIyMgSW50cm9kdWN0aW9uCi0KLU5vdyB0aGF0IHlvdSBoYXZlIHJlYWQgdGhlIFtn
b29nbGV0ZXN0IFByaW1lcl0ocHJpbWVyLm1kKSBhbmQgbGVhcm5lZCBob3cgdG8gd3JpdGUKLXRl
c3RzIHVzaW5nIGdvb2dsZXRlc3QsIGl0J3MgdGltZSB0byBsZWFybiBzb21lIG5ldyB0cmlja3Mu
IFRoaXMgZG9jdW1lbnQgd2lsbAotc2hvdyB5b3UgbW9yZSBhc3NlcnRpb25zIGFzIHdlbGwgYXMg
aG93IHRvIGNvbnN0cnVjdCBjb21wbGV4IGZhaWx1cmUgbWVzc2FnZXMsCi1wcm9wYWdhdGUgZmF0
YWwgZmFpbHVyZXMsIHJldXNlIGFuZCBzcGVlZCB1cCB5b3VyIHRlc3QgZml4dHVyZXMsIGFuZCB1
c2UgdmFyaW91cwotZmxhZ3Mgd2l0aCB5b3VyIHRlc3RzLgotCi0jIyBNb3JlIEFzc2VydGlvbnMK
LQotVGhpcyBzZWN0aW9uIGNvdmVycyBzb21lIGxlc3MgZnJlcXVlbnRseSB1c2VkLCBidXQgc3Rp
bGwgc2lnbmlmaWNhbnQsCi1hc3NlcnRpb25zLgotCi0jIyMgRXhwbGljaXQgU3VjY2VzcyBhbmQg
RmFpbHVyZQotCi1UaGVzZSB0aHJlZSBhc3NlcnRpb25zIGRvIG5vdCBhY3R1YWxseSB0ZXN0IGEg
dmFsdWUgb3IgZXhwcmVzc2lvbi4gSW5zdGVhZCwgdGhleQotZ2VuZXJhdGUgYSBzdWNjZXNzIG9y
IGZhaWx1cmUgZGlyZWN0bHkuIExpa2UgdGhlIG1hY3JvcyB0aGF0IGFjdHVhbGx5IHBlcmZvcm0g
YQotdGVzdCwgeW91IG1heSBzdHJlYW0gYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIGludG8gdGhl
bS4KLQotYGBgYysrCi1TVUNDRUVEKCk7Ci1gYGAKLQotR2VuZXJhdGVzIGEgc3VjY2Vzcy4gVGhp
cyBkb2VzICoqTk9UKiogbWFrZSB0aGUgb3ZlcmFsbCB0ZXN0IHN1Y2NlZWQuIEEgdGVzdCBpcwot
Y29uc2lkZXJlZCBzdWNjZXNzZnVsIG9ubHkgaWYgbm9uZSBvZiBpdHMgYXNzZXJ0aW9ucyBmYWls
IGR1cmluZyBpdHMgZXhlY3V0aW9uLgotCi1OT1RFOiBgU1VDQ0VFRCgpYCBpcyBwdXJlbHkgZG9j
dW1lbnRhcnkgYW5kIGN1cnJlbnRseSBkb2Vzbid0IGdlbmVyYXRlIGFueQotdXNlci12aXNpYmxl
IG91dHB1dC4gSG93ZXZlciwgd2UgbWF5IGFkZCBgU1VDQ0VFRCgpYCBtZXNzYWdlcyB0byBnb29n
bGV0ZXN0J3MKLW91dHB1dCBpbiB0aGUgZnV0dXJlLgotCi1gYGBjKysKLUZBSUwoKTsKLUFERF9G
QUlMVVJFKCk7Ci1BRERfRkFJTFVSRV9BVCgiZmlsZV9wYXRoIiwgbGluZV9udW1iZXIpOwotYGBg
Ci0KLWBGQUlMKClgIGdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUsIHdoaWxlIGBBRERfRkFJTFVS
RSgpYCBhbmQgYEFERF9GQUlMVVJFX0FUKClgCi1nZW5lcmF0ZSBhIG5vbmZhdGFsIGZhaWx1cmUu
IFRoZXNlIGFyZSB1c2VmdWwgd2hlbiBjb250cm9sIGZsb3csIHJhdGhlciB0aGFuIGEKLUJvb2xl
YW4gZXhwcmVzc2lvbiwgZGV0ZXJtaW5lcyB0aGUgdGVzdCdzIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4g
Rm9yIGV4YW1wbGUsIHlvdQotbWlnaHQgd2FudCB0byB3cml0ZSBzb21ldGhpbmcgbGlrZToKLQot
YGBgYysrCi1zd2l0Y2goZXhwcmVzc2lvbikgewotICBjYXNlIDE6Ci0gICAgIC4uLiBzb21lIGNo
ZWNrcyAuLi4KLSAgY2FzZSAyOgotICAgICAuLi4gc29tZSBvdGhlciBjaGVja3MgLi4uCi0gIGRl
ZmF1bHQ6Ci0gICAgIEZBSUwoKSA8PCAiV2Ugc2hvdWxkbid0IGdldCBoZXJlLiI7Ci19Ci1gYGAK
LQotTk9URTogeW91IGNhbiBvbmx5IHVzZSBgRkFJTCgpYCBpbiBmdW5jdGlvbnMgdGhhdCByZXR1
cm4gYHZvaWRgLiBTZWUgdGhlCi1bQXNzZXJ0aW9uIFBsYWNlbWVudCBzZWN0aW9uXSgjYXNzZXJ0
aW9uLXBsYWNlbWVudCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0KLSoqQXZhaWxhYmlsaXR5Kio6
IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBFeGNlcHRpb24gQXNzZXJ0aW9ucwotCi1UaGVz
ZSBhcmUgZm9yIHZlcmlmeWluZyB0aGF0IGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgKG9yIGRvZXMg
bm90IHRocm93KSBhbgotZXhjZXB0aW9uIG9mIHRoZSBnaXZlbiB0eXBlOgotCi1GYXRhbCBhc3Nl
cnRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAg
ICAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NFUlRfVEhST1coc3RhdGVtZW50LCBleGNlcHRpb25fdHlw
ZSk7YCB8IGBFWFBFQ1RfVEhST1coc3RhdGVtZW50LCBleGNlcHRpb25fdHlwZSk7YCB8IGBzdGF0
ZW1lbnRgIHRocm93cyBhbiBleGNlcHRpb24gb2YgdGhlIGdpdmVuIHR5cGUKLWBBU1NFUlRfQU5Z
X1RIUk9XKHN0YXRlbWVudCk7YCAgICAgICAgICAgICB8IGBFWFBFQ1RfQU5ZX1RIUk9XKHN0YXRl
bWVudCk7YCAgICAgICAgICAgICB8IGBzdGF0ZW1lbnRgIHRocm93cyBhbiBleGNlcHRpb24gb2Yg
YW55IHR5cGUKLWBBU1NFUlRfTk9fVEhST1coc3RhdGVtZW50KTtgICAgICAgICAgICAgICB8IGBF
WFBFQ1RfTk9fVEhST1coc3RhdGVtZW50KTtgICAgICAgICAgICAgICB8IGBzdGF0ZW1lbnRgIGRv
ZXNuJ3QgdGhyb3cgYW55IGV4Y2VwdGlvbgotCi1FeGFtcGxlczoKLQotYGBgYysrCi1BU1NFUlRf
VEhST1coRm9vKDUpLCBiYXJfZXhjZXB0aW9uKTsKLQotRVhQRUNUX05PX1RIUk9XKHsKLSAgaW50
IG4gPSA1OwotICBCYXIoJm4pOwotfSk7Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgs
IFdpbmRvd3MsIE1hYzsgcmVxdWlyZXMgZXhjZXB0aW9ucyB0byBiZSBlbmFibGVkIGluIHRoZQot
YnVpbGQgZW52aXJvbm1lbnQgKG5vdGUgdGhhdCBgZ29vZ2xlM2AgKipkaXNhYmxlcyoqIGV4Y2Vw
dGlvbnMpLgotCi0jIyMgUHJlZGljYXRlIEFzc2VydGlvbnMgZm9yIEJldHRlciBFcnJvciBNZXNz
YWdlcwotCi1FdmVuIHRob3VnaCBnb29nbGV0ZXN0IGhhcyBhIHJpY2ggc2V0IG9mIGFzc2VydGlv
bnMsIHRoZXkgY2FuIG5ldmVyIGJlIGNvbXBsZXRlLAotYXMgaXQncyBpbXBvc3NpYmxlIChub3Ig
YSBnb29kIGlkZWEpIHRvIGFudGljaXBhdGUgYWxsIHNjZW5hcmlvcyBhIHVzZXIgbWlnaHQKLXJ1
biBpbnRvLiBUaGVyZWZvcmUsIHNvbWV0aW1lcyBhIHVzZXIgaGFzIHRvIHVzZSBgRVhQRUNUX1RS
VUUoKWAgdG8gY2hlY2sgYQotY29tcGxleCBleHByZXNzaW9uLCBmb3IgbGFjayBvZiBhIGJldHRl
ciBtYWNyby4gVGhpcyBoYXMgdGhlIHByb2JsZW0gb2Ygbm90Ci1zaG93aW5nIHlvdSB0aGUgdmFs
dWVzIG9mIHRoZSBwYXJ0cyBvZiB0aGUgZXhwcmVzc2lvbiwgbWFraW5nIGl0IGhhcmQgdG8KLXVu
ZGVyc3RhbmQgd2hhdCB3ZW50IHdyb25nLiBBcyBhIHdvcmthcm91bmQsIHNvbWUgdXNlcnMgY2hv
b3NlIHRvIGNvbnN0cnVjdCB0aGUKLWZhaWx1cmUgbWVzc2FnZSBieSB0aGVtc2VsdmVzLCBzdHJl
YW1pbmcgaXQgaW50byBgRVhQRUNUX1RSVUUoKWAuIEhvd2V2ZXIsIHRoaXMKLWlzIGF3a3dhcmQg
ZXNwZWNpYWxseSB3aGVuIHRoZSBleHByZXNzaW9uIGhhcyBzaWRlLWVmZmVjdHMgb3IgaXMgZXhw
ZW5zaXZlIHRvCi1ldmFsdWF0ZS4KLQotZ29vZ2xldGVzdCBnaXZlcyB5b3UgdGhyZWUgZGlmZmVy
ZW50IG9wdGlvbnMgdG8gc29sdmUgdGhpcyBwcm9ibGVtOgotCi0jIyMjIFVzaW5nIGFuIEV4aXN0
aW5nIEJvb2xlYW4gRnVuY3Rpb24KLQotSWYgeW91IGFscmVhZHkgaGF2ZSBhIGZ1bmN0aW9uIG9y
IGZ1bmN0b3IgdGhhdCByZXR1cm5zIGBib29sYCAob3IgYSB0eXBlIHRoYXQKLWNhbiBiZSBpbXBs
aWNpdGx5IGNvbnZlcnRlZCB0byBgYm9vbGApLCB5b3UgY2FuIHVzZSBpdCBpbiBhICpwcmVkaWNh
dGUKLWFzc2VydGlvbiogdG8gZ2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMgcHJpbnRlZCBmb3Ig
ZnJlZToKLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwg
YXNzZXJ0aW9uICAgICAgICAgICAgICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgICB8
Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFT
U0VSVF9QUkVEMShwcmVkMSwgdmFsMSk7YCAgICAgICB8IGBFWFBFQ1RfUFJFRDEocHJlZDEsIHZh
bDEpO2AgICAgICAgfCBgcHJlZDEodmFsMSlgIGlzIHRydWUgICAgICAgfAotfCBgQVNTRVJUX1BS
RUQyKHByZWQyLCB2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9QUkVEMihwcmVkMiwgdmFsMSwgdmFs
Mik7YCB8IGBwcmVkMih2YWwxLCB2YWwyKWAgaXMgdHJ1ZSB8Ci18IGAuLi5gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCBgLi4uYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
Li4uICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQotSW4gdGhlIGFib3ZlLCBgcHJlZG5gIGlz
IGFuIGBuYC1hcnkgcHJlZGljYXRlIGZ1bmN0aW9uIG9yIGZ1bmN0b3IsIHdoZXJlIGB2YWwxYCwK
LWB2YWwyYCwgLi4uLCBhbmQgYHZhbG5gIGFyZSBpdHMgYXJndW1lbnRzLiBUaGUgYXNzZXJ0aW9u
IHN1Y2NlZWRzIGlmIHRoZQotcHJlZGljYXRlIHJldHVybnMgYHRydWVgIHdoZW4gYXBwbGllZCB0
byB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBhbmQgZmFpbHMKLW90aGVyd2lzZS4gV2hlbiB0aGUgYXNz
ZXJ0aW9uIGZhaWxzLCBpdCBwcmludHMgdGhlIHZhbHVlIG9mIGVhY2ggYXJndW1lbnQuIEluCi1l
aXRoZXIgY2FzZSwgdGhlIGFyZ3VtZW50cyBhcmUgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4KLQot
SGVyZSdzIGFuIGV4YW1wbGUuIEdpdmVuCi0KLWBgYGMrKwotLy8gUmV0dXJucyB0cnVlIGlmIG0g
YW5kIG4gaGF2ZSBubyBjb21tb24gZGl2aXNvcnMgZXhjZXB0IDEuCi1ib29sIE11dHVhbGx5UHJp
bWUoaW50IG0sIGludCBuKSB7IC4uLiB9Ci0KLWNvbnN0IGludCBhID0gMzsKLWNvbnN0IGludCBi
ID0gNDsKLWNvbnN0IGludCBjID0gMTA7Ci1gYGAKLQotdGhlIGFzc2VydGlvbgotCi1gYGBjKysK
LSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5UHJpbWUsIGEsIGIpOwotYGBgCi0KLXdpbGwgc3VjY2Vl
ZCwgd2hpbGUgdGhlIGFzc2VydGlvbgotCi1gYGBjKysKLSAgRVhQRUNUX1BSRUQyKE11dHVhbGx5
UHJpbWUsIGIsIGMpOwotYGBgCi0KLXdpbGwgZmFpbCB3aXRoIHRoZSBtZXNzYWdlCi0KLWBgYG5v
bmUKLU11dHVhbGx5UHJpbWUoYiwgYykgaXMgZmFsc2UsIHdoZXJlCi1iIGlzIDQKLWMgaXMgMTAK
LWBgYAotCi0+IE5PVEU6Ci0+Ci0+IDEuICBJZiB5b3Ugc2VlIGEgY29tcGlsZXIgZXJyb3IgIm5v
IG1hdGNoaW5nIGZ1bmN0aW9uIHRvIGNhbGwiIHdoZW4gdXNpbmcKLT4gICAgIGBBU1NFUlRfUFJF
RCpgIG9yIGBFWFBFQ1RfUFJFRCpgLCBwbGVhc2Ugc2VlCi0+ICAgICBbdGhpc10oZmFxLm1kI092
ZXJsb2FkZWRQcmVkaWNhdGUpIGZvciBob3cgdG8gcmVzb2x2ZSBpdC4KLT4gMS4gIEN1cnJlbnRs
eSB3ZSBvbmx5IHByb3ZpZGUgcHJlZGljYXRlIGFzc2VydGlvbnMgb2YgYXJpdHkgPD0gNS4gSWYg
eW91IG5lZWQKLT4gICAgIGEgaGlnaGVyLWFyaXR5IGFzc2VydGlvbiwgbGV0IFt1c10oaHR0cHM6
Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2lzc3Vlcykga25vdy4KLQotKipBdmFpbGFi
aWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBVc2luZyBhIEZ1bmN0aW9uIFRo
YXQgUmV0dXJucyBhbiBBc3NlcnRpb25SZXN1bHQKLQotV2hpbGUgYEVYUEVDVF9QUkVEKigpYCBh
bmQgZnJpZW5kcyBhcmUgaGFuZHkgZm9yIGEgcXVpY2sgam9iLCB0aGUgc3ludGF4IGlzIG5vdAot
c2F0aXNmYWN0b3J5OiB5b3UgaGF2ZSB0byB1c2UgZGlmZmVyZW50IG1hY3JvcyBmb3IgZGlmZmVy
ZW50IGFyaXRpZXMsIGFuZCBpdAotZmVlbHMgbW9yZSBsaWtlIExpc3AgdGhhbiBDKysuIFRoZSBg
Ojp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHRgIGNsYXNzIHNvbHZlcwotdGhpcyBwcm9ibGVtLgot
Ci1BbiBgQXNzZXJ0aW9uUmVzdWx0YCBvYmplY3QgcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIGFu
IGFzc2VydGlvbiAod2hldGhlciBpdCdzCi1hIHN1Y2Nlc3Mgb3IgYSBmYWlsdXJlLCBhbmQgYW4g
YXNzb2NpYXRlZCBtZXNzYWdlKS4gWW91IGNhbiBjcmVhdGUgYW4KLWBBc3NlcnRpb25SZXN1bHRg
IHVzaW5nIG9uZSBvZiB0aGVzZSBmYWN0b3J5IGZ1bmN0aW9uczoKLQotYGBgYysrCi1uYW1lc3Bh
Y2UgdGVzdGluZyB7Ci0KLS8vIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IG9iamVjdCB0byBp
bmRpY2F0ZSB0aGF0IGFuIGFzc2VydGlvbiBoYXMKLS8vIHN1Y2NlZWRlZC4KLUFzc2VydGlvblJl
c3VsdCBBc3NlcnRpb25TdWNjZXNzKCk7Ci0KLS8vIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0
IG9iamVjdCB0byBpbmRpY2F0ZSB0aGF0IGFuIGFzc2VydGlvbiBoYXMKLS8vIGZhaWxlZC4KLUFz
c2VydGlvblJlc3VsdCBBc3NlcnRpb25GYWlsdXJlKCk7Ci0KLX0KLWBgYAotCi1Zb3UgY2FuIHRo
ZW4gdXNlIHRoZSBgPDxgIG9wZXJhdG9yIHRvIHN0cmVhbSBtZXNzYWdlcyB0byB0aGUgYEFzc2Vy
dGlvblJlc3VsdGAKLW9iamVjdC4KLQotVG8gcHJvdmlkZSBtb3JlIHJlYWRhYmxlIG1lc3NhZ2Vz
IGluIEJvb2xlYW4gYXNzZXJ0aW9ucyAoZS5nLiBgRVhQRUNUX1RSVUUoKWApLAotd3JpdGUgYSBw
cmVkaWNhdGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGBBc3NlcnRpb25SZXN1bHRgIGluc3RlYWQg
b2YgYGJvb2xgLiBGb3IKLWV4YW1wbGUsIGlmIHlvdSBkZWZpbmUgYElzRXZlbigpYCBhczoKLQot
YGBgYysrCi06OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBJc0V2ZW4oaW50IG4pIHsKLSAgaWYg
KChuICUgMikgPT0gMCkKLSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2Vzcygp
OwotICBlbHNlCi0gICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCBu
IDw8ICIgaXMgb2RkIjsKLX0KLWBgYAotCi1pbnN0ZWFkIG9mOgotCi1gYGBjKysKLWJvb2wgSXNF
dmVuKGludCBuKSB7Ci0gIHJldHVybiAobiAlIDIpID09IDA7Ci19Ci1gYGAKLQotdGhlIGZhaWxl
ZCBhc3NlcnRpb24gYEVYUEVDVF9UUlVFKElzRXZlbihGaWIoNCkpKWAgd2lsbCBwcmludDoKLQot
YGBgbm9uZQotVmFsdWUgb2Y6IElzRXZlbihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UgKDMgaXMg
b2RkKQotRXhwZWN0ZWQ6IHRydWUKLWBgYAotCi1pbnN0ZWFkIG9mIGEgbW9yZSBvcGFxdWUKLQot
YGBgbm9uZQotVmFsdWUgb2Y6IElzRXZlbihGaWIoNCkpCi0gIEFjdHVhbDogZmFsc2UKLUV4cGVj
dGVkOiB0cnVlCi1gYGAKLQotSWYgeW91IHdhbnQgaW5mb3JtYXRpdmUgbWVzc2FnZXMgaW4gYEVY
UEVDVF9GQUxTRWAgYW5kIGBBU1NFUlRfRkFMU0VgIGFzIHdlbGwKLShvbmUgdGhpcmQgb2YgQm9v
bGVhbiBhc3NlcnRpb25zIGluIHRoZSBHb29nbGUgY29kZSBiYXNlIGFyZSBuZWdhdGl2ZSBvbmVz
KSwgYW5kCi1hcmUgZmluZSB3aXRoIG1ha2luZyB0aGUgcHJlZGljYXRlIHNsb3dlciBpbiB0aGUg
c3VjY2VzcyBjYXNlLCB5b3UgY2FuIHN1cHBseSBhCi1zdWNjZXNzIG1lc3NhZ2U6Ci0KLWBgYGMr
KwotOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgSXNFdmVuKGludCBuKSB7Ci0gIGlmICgobiAl
IDIpID09IDApCi0gICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKSA8PCBu
IDw8ICIgaXMgZXZlbiI7Ci0gIGVsc2UKLSAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9u
RmFpbHVyZSgpIDw8IG4gPDwgIiBpcyBvZGQiOwotfQotYGBgCi0KLVRoZW4gdGhlIHN0YXRlbWVu
dCBgRVhQRUNUX0ZBTFNFKElzRXZlbihGaWIoNikpKWAgd2lsbCBwcmludAotCi1gYGBub25lCi0g
IFZhbHVlIG9mOiBJc0V2ZW4oRmliKDYpKQotICAgICBBY3R1YWw6IHRydWUgKDggaXMgZXZlbikK
LSAgRXhwZWN0ZWQ6IGZhbHNlCi1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MsIE1hYy4KLQotIyMjIyBVc2luZyBhIFByZWRpY2F0ZS1Gb3JtYXR0ZXIKLQotSWYgeW91IGZp
bmQgdGhlIGRlZmF1bHQgbWVzc2FnZSBnZW5lcmF0ZWQgYnkgYChBU1NFUlR8RVhQRUNUKV9QUkVE
KmAgYW5kCi1gKEFTU0VSVHxFWFBFQ1QpXyhUUlVFfEZBTFNFKWAgdW5zYXRpc2ZhY3RvcnksIG9y
IHNvbWUgYXJndW1lbnRzIHRvIHlvdXIKLXByZWRpY2F0ZSBkbyBub3Qgc3VwcG9ydCBzdHJlYW1p
bmcgdG8gYG9zdHJlYW1gLCB5b3UgY2FuIGluc3RlYWQgdXNlIHRoZQotZm9sbG93aW5nICpwcmVk
aWNhdGUtZm9ybWF0dGVyIGFzc2VydGlvbnMqIHRvICpmdWxseSogY3VzdG9taXplIGhvdyB0aGUg
bWVzc2FnZQotaXMgZm9ybWF0dGVkOgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NFUlRfUFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwg
dmFsMSk7YCAgICAgICB8IGBFWFBFQ1RfUFJFRF9GT1JNQVQxKHByZWRfZm9ybWF0MSwgdmFsMSk7
YCAgICAgICB8IGBwcmVkX2Zvcm1hdDEodmFsMSlgIGlzIHN1Y2Nlc3NmdWwKLWBBU1NFUlRfUFJF
RF9GT1JNQVQyKHByZWRfZm9ybWF0MiwgdmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfUFJFRF9GT1JN
QVQyKHByZWRfZm9ybWF0MiwgdmFsMSwgdmFsMik7YCB8IGBwcmVkX2Zvcm1hdDIodmFsMSwgdmFs
MilgIGlzIHN1Y2Nlc3NmdWwKLWAuLi5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IGAuLi5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IC4uLgotCi1UaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIHRoZSBwcmV2aW91
cyBncm91cCBvZiBtYWNyb3MgaXMgdGhhdCBpbnN0ZWFkIG9mCi1hIHByZWRpY2F0ZSwgYChBU1NF
UlR8RVhQRUNUKV9QUkVEX0ZPUk1BVCpgIHRha2UgYSAqcHJlZGljYXRlLWZvcm1hdHRlcioKLShg
cHJlZF9mb3JtYXRuYCksIHdoaWNoIGlzIGEgZnVuY3Rpb24gb3IgZnVuY3RvciB3aXRoIHRoZSBz
aWduYXR1cmU6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgUHJlZGljYXRl
Rm9ybWF0dGVybihjb25zdCBjaGFyKiBleHByMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXhwcjIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHBybiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVDEgdmFsMSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVDIgdmFsMiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRuIHZhbG4pOwotYGBgCi0KLXdoZXJlIGB2
YWwxYCwgYHZhbDJgLCAuLi4sIGFuZCBgdmFsbmAgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIHByZWRp
Y2F0ZSBhcmd1bWVudHMsCi1hbmQgYGV4cHIxYCwgYGV4cHIyYCwgLi4uLCBhbmQgYGV4cHJuYCBh
cmUgdGhlIGNvcnJlc3BvbmRpbmcgZXhwcmVzc2lvbnMgYXMgdGhleQotYXBwZWFyIGluIHRoZSBz
b3VyY2UgY29kZS4gVGhlIHR5cGVzIGBUMWAsIGBUMmAsIC4uLiwgYW5kIGBUbmAgY2FuIGJlIGVp
dGhlcgotdmFsdWUgdHlwZXMgb3IgcmVmZXJlbmNlIHR5cGVzLiBGb3IgZXhhbXBsZSwgaWYgYW4g
YXJndW1lbnQgaGFzIHR5cGUgYEZvb2AsIHlvdQotY2FuIGRlY2xhcmUgaXQgYXMgZWl0aGVyIGBG
b29gIG9yIGBjb25zdCBGb28mYCwgd2hpY2hldmVyIGlzIGFwcHJvcHJpYXRlLgotCi1BcyBhbiBl
eGFtcGxlLCBsZXQncyBpbXByb3ZlIHRoZSBmYWlsdXJlIG1lc3NhZ2UgaW4gYE11dHVhbGx5UHJp
bWUoKWAsIHdoaWNoIHdhcwotdXNlZCB3aXRoIGBFWFBFQ1RfUFJFRDIoKWA6Ci0KLWBgYGMrKwot
Ly8gUmV0dXJucyB0aGUgc21hbGxlc3QgcHJpbWUgY29tbW9uIGRpdmlzb3Igb2YgbSBhbmQgbiwK
LS8vIG9yIDEgd2hlbiBtIGFuZCBuIGFyZSBtdXR1YWxseSBwcmltZS4KLWludCBTbWFsbGVzdFBy
aW1lQ29tbW9uRGl2aXNvcihpbnQgbSwgaW50IG4pIHsgLi4uIH0KLQotLy8gQSBwcmVkaWNhdGUt
Zm9ybWF0dGVyIGZvciBhc3NlcnRpbmcgdGhhdCB0d28gaW50ZWdlcnMgYXJlIG11dHVhbGx5IHBy
aW1lLgotOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgQXNzZXJ0TXV0dWFsbHlQcmltZShjb25z
dCBjaGFyKiBtX2V4cHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIG5fZXhwciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IG0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBuKSB7Ci0gIGlmIChNdXR1YWxseVByaW1lKG0sIG4pKSByZXR1
cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25TdWNjZXNzKCk7Ci0KLSAgcmV0dXJuIDo6dGVzdGluZzo6
QXNzZXJ0aW9uRmFpbHVyZSgpIDw8IG1fZXhwciA8PCAiIGFuZCAiIDw8IG5fZXhwcgotICAgICAg
PDwgIiAoIiA8PCBtIDw8ICIgYW5kICIgPDwgbiA8PCAiKSBhcmUgbm90IG11dHVhbGx5IHByaW1l
LCAiCi0gICAgICA8PCAiYXMgdGhleSBoYXZlIGEgY29tbW9uIGRpdmlzb3IgIiA8PCBTbWFsbGVz
dFByaW1lQ29tbW9uRGl2aXNvcihtLCBuKTsKLX0KLWBgYAotCi1XaXRoIHRoaXMgcHJlZGljYXRl
LWZvcm1hdHRlciwgd2UgY2FuIHVzZQotCi1gYGBjKysKLSAgRVhQRUNUX1BSRURfRk9STUFUMihB
c3NlcnRNdXR1YWxseVByaW1lLCBiLCBjKTsKLWBgYAotCi10byBnZW5lcmF0ZSB0aGUgbWVzc2Fn
ZQotCi1gYGBub25lCi1iIGFuZCBjICg0IGFuZCAxMCkgYXJlIG5vdCBtdXR1YWxseSBwcmltZSwg
YXMgdGhleSBoYXZlIGEgY29tbW9uIGRpdmlzb3IgMi4KLWBgYAotCi1BcyB5b3UgbWF5IGhhdmUg
cmVhbGl6ZWQsIG1hbnkgb2YgdGhlIGJ1aWx0LWluIGFzc2VydGlvbnMgd2UgaW50cm9kdWNlZCBl
YXJsaWVyCi1hcmUgc3BlY2lhbCBjYXNlcyBvZiBgKEVYUEVDVHxBU1NFUlQpX1BSRURfRk9STUFU
KmAuIEluIGZhY3QsIG1vc3Qgb2YgdGhlbSBhcmUKLWluZGVlZCBkZWZpbmVkIHVzaW5nIGAoRVhQ
RUNUfEFTU0VSVClfUFJFRF9GT1JNQVQqYC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIEZsb2F0aW5nLVBvaW50IENvbXBhcmlzb24KLQotQ29tcGFyaW5n
IGZsb2F0aW5nLXBvaW50IG51bWJlcnMgaXMgdHJpY2t5LiBEdWUgdG8gcm91bmQtb2ZmIGVycm9y
cywgaXQgaXMgdmVyeQotdW5saWtlbHkgdGhhdCB0d28gZmxvYXRpbmctcG9pbnRzIHdpbGwgbWF0
Y2ggZXhhY3RseS4gVGhlcmVmb3JlLCBgQVNTRVJUX0VRYCAncwotbmFpdmUgY29tcGFyaXNvbiB1
c3VhbGx5IGRvZXNuJ3Qgd29yay4gQW5kIHNpbmNlIGZsb2F0aW5nLXBvaW50cyBjYW4gaGF2ZSBh
IHdpZGUKLXZhbHVlIHJhbmdlLCBubyBzaW5nbGUgZml4ZWQgZXJyb3IgYm91bmQgd29ya3MuIEl0
J3MgYmV0dGVyIHRvIGNvbXBhcmUgYnkgYQotZml4ZWQgcmVsYXRpdmUgZXJyb3IgYm91bmQsIGV4
Y2VwdCBmb3IgdmFsdWVzIGNsb3NlIHRvIDAgZHVlIHRvIHRoZSBsb3NzIG9mCi1wcmVjaXNpb24g
dGhlcmUuCi0KLUluIGdlbmVyYWwsIGZvciBmbG9hdGluZy1wb2ludCBjb21wYXJpc29uIHRvIG1h
a2Ugc2Vuc2UsIHRoZSB1c2VyIG5lZWRzIHRvCi1jYXJlZnVsbHkgY2hvb3NlIHRoZSBlcnJvciBi
b3VuZC4gSWYgdGhleSBkb24ndCB3YW50IG9yIGNhcmUgdG8sIGNvbXBhcmluZyBpbgotdGVybXMg
b2YgVW5pdHMgaW4gdGhlIExhc3QgUGxhY2UgKFVMUHMpIGlzIGEgZ29vZCBkZWZhdWx0LCBhbmQg
Z29vZ2xldGVzdAotcHJvdmlkZXMgYXNzZXJ0aW9ucyB0byBkbyB0aGlzLiBGdWxsIGRldGFpbHMg
YWJvdXQgVUxQcyBhcmUgcXVpdGUgbG9uZzsgaWYgeW91Ci13YW50IHRvIGxlYXJuIG1vcmUsIHNl
ZQotW2hlcmVdKGh0dHBzOi8vcmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAyLzI1L2Nv
bXBhcmluZy1mbG9hdGluZy1wb2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8pLgotCi0jIyMjIEZs
b2F0aW5nLVBvaW50IE1hY3JvcwotCi18IEZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAg
fCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX0ZMT0FUX0VRKHZhbDEsIHZhbDIpO2AgIHwg
YEVYUEVDVF9GTE9BVF9FUSh2YWwxLHZhbDIpO2AgIHwgdGhlIHR3byBgZmxvYXRgIHZhbHVlcyBh
cmUgYWxtb3N0IGVxdWFsICB8Ci18IGBBU1NFUlRfRE9VQkxFX0VRKHZhbDEsIHZhbDIpO2AgfCBg
RVhQRUNUX0RPVUJMRV9FUSh2YWwxLCB2YWwyKTtgfCB0aGUgdHdvIGBkb3VibGVgIHZhbHVlcyBh
cmUgYWxtb3N0IGVxdWFsIHwKLQotQnkgImFsbW9zdCBlcXVhbCIgd2UgbWVhbiB0aGUgdmFsdWVz
IGFyZSB3aXRoaW4gNCBVTFAncyBmcm9tIGVhY2ggb3RoZXIuCi0KLU5PVEU6IGBDSEVDS19ET1VC
TEVfRVEoKWAgaW4gYGJhc2UvbG9nZ2luZy5oYCB1c2VzIGEgZml4ZWQgYWJzb2x1dGUgZXJyb3Ig
Ym91bmQsCi1zbyBpdHMgcmVzdWx0IG1heSBkaWZmZXIgZnJvbSB0aGF0IG9mIHRoZSBnb29nbGV0
ZXN0IG1hY3Jvcy4gVGhhdCBtYWNybyBpcwotdW5zYWZlIGFuZCBoYXMgYmVlbiBkZXByZWNhdGVk
LiBQbGVhc2UgZG9uJ3QgdXNlIGl0IGFueSBtb3JlLgotCi1UaGUgZm9sbG93aW5nIGFzc2VydGlv
bnMgYWxsb3cgeW91IHRvIGNob29zZSB0aGUgYWNjZXB0YWJsZSBlcnJvciBib3VuZDoKLQotfCBG
YXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9u
ICAgICAgICAgICAgICAgICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAgfAotfCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJU
X05FQVIodmFsMSwgdmFsMiwgYWJzX2Vycm9yKTtgIHwgYEVYUEVDVF9ORUFSKHZhbDEsIHZhbDIs
IGFic19lcnJvcik7YCB8IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYHZhbDFgIGFuZCBgdmFsMmAg
ZG9lc24ndCBleGNlZWQgdGhlIGdpdmVuIGFic29sdXRlIGVycm9yIHwKLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBGbG9hdGluZy1Qb2ludCBQcmVkaWNh
dGUtRm9ybWF0IEZ1bmN0aW9ucwotCi1Tb21lIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgYXJl
IHVzZWZ1bCwgYnV0IG5vdCB0aGF0IG9mdGVuIHVzZWQuIEluIG9yZGVyIHRvCi1hdm9pZCBhbiBl
eHBsb3Npb24gb2YgbmV3IG1hY3Jvcywgd2UgcHJvdmlkZSB0aGVtIGFzIHByZWRpY2F0ZS1mb3Jt
YXQgZnVuY3Rpb25zCi10aGF0IGNhbiBiZSB1c2VkIGluIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFj
cm9zIChlLmcuIGBFWFBFQ1RfUFJFRF9GT1JNQVQyYCwKLWV0YykuCi0KLWBgYGMrKwotRVhQRUNU
X1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OkZsb2F0TEUsIHZhbDEsIHZhbDIpOwotRVhQRUNUX1BS
RURfRk9STUFUMig6OnRlc3Rpbmc6OkRvdWJsZUxFLCB2YWwxLCB2YWwyKTsKLWBgYAotCi1WZXJp
ZmllcyB0aGF0IGB2YWwxYCBpcyBsZXNzIHRoYW4sIG9yIGFsbW9zdCBlcXVhbCB0bywgYHZhbDJg
LiBZb3UgY2FuIHJlcGxhY2UKLWBFWFBFQ1RfUFJFRF9GT1JNQVQyYCBpbiB0aGUgYWJvdmUgdGFi
bGUgd2l0aCBgQVNTRVJUX1BSRURfRk9STUFUMmAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBBc3NlcnRpbmcgVXNpbmcgZ01vY2sgTWF0Y2hlcnMKLQot
R29vZ2xlLWRldmVsb3BlZCBDKysgbW9ja2luZyBmcmFtZXdvcmsgW2dNb2NrXSguLi8uLi9nb29n
bGVtb2NrKSBjb21lcyB3aXRoIGEKLWxpYnJhcnkgb2YgbWF0Y2hlcnMgZm9yIHZhbGlkYXRpbmcg
YXJndW1lbnRzIHBhc3NlZCB0byBtb2NrIG9iamVjdHMuIEEgZ01vY2sKLSptYXRjaGVyKiBpcyBi
YXNpY2FsbHkgYSBwcmVkaWNhdGUgdGhhdCBrbm93cyBob3cgdG8gZGVzY3JpYmUgaXRzZWxmLiBJ
dCBjYW4gYmUKLXVzZWQgaW4gdGhlc2UgYXNzZXJ0aW9uIG1hY3JvczoKLQotfCBGYXRhbCBhc3Nl
cnRpb24gICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgfCBW
ZXJpZmllcyAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
fCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0g
fAotfCBgQVNTRVJUX1RIQVQodmFsdWUsIG1hdGNoZXIpO2AgfCBgRVhQRUNUX1RIQVQodmFsdWUs
IG1hdGNoZXIpO2AgfCB2YWx1ZSBtYXRjaGVzIG1hdGNoZXIgfAotCi1Gb3IgZXhhbXBsZSwgYFN0
YXJ0c1dpdGgocHJlZml4KWAgaXMgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0cmluZyBzdGFy
dGluZwotd2l0aCBgcHJlZml4YCwgYW5kIHlvdSBjYW4gd3JpdGU6Ci0KLWBgYGMrKwotdXNpbmcg
Ojp0ZXN0aW5nOjpTdGFydHNXaXRoOwotLi4uCi0gICAgLy8gVmVyaWZpZXMgdGhhdCBGb28oKSBy
ZXR1cm5zIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGggIkhlbGxvIi4KLSAgICBFWFBFQ1RfVEhBVChG
b28oKSwgU3RhcnRzV2l0aCgiSGVsbG8iKSk7Ci1gYGAKLQotUmVhZCB0aGlzIFtyZWNpcGVdKC4u
Ly4uL2dvb2dsZW1vY2svZG9jcy9Db29rQm9vay5tZCN1c2luZy1tYXRjaGVycy1pbi1nb29nbGUt
dGVzdC1hc3NlcnRpb25zKSBpbgotdGhlIGdNb2NrIENvb2tib29rIGZvciBtb3JlIGRldGFpbHMu
Ci0KLWdNb2NrIGhhcyBhIHJpY2ggc2V0IG9mIG1hdGNoZXJzLiBZb3UgY2FuIGRvIG1hbnkgdGhp
bmdzIGdvb2dsZXRlc3QgY2Fubm90IGRvCi1hbG9uZSB3aXRoIHRoZW0uIEZvciBhIGxpc3Qgb2Yg
bWF0Y2hlcnMgZ01vY2sgcHJvdmlkZXMsIHJlYWQKLVt0aGlzXSguLi8uLi9nb29nbGVtb2NrL2Rv
Y3MvQ29va0Jvb2subWQjdXNpbmctbWF0Y2hlcnMpLiBFc3BlY2lhbGx5IHVzZWZ1bCBhbW9uZyB0
aGVtIGFyZQotc29tZSBbcHJvdG9jb2wgYnVmZmVyIG1hdGNoZXJzXShodHRwczovL2dpdGh1Yi5j
b20vZ29vZ2xlL251Y2xldXMvYmxvYi9tYXN0ZXIvbnVjbGV1cy90ZXN0aW5nL3Byb3RvY29sLWJ1
ZmZlci1tYXRjaGVycy5oKS4gSXQncyBlYXN5IHRvIHdyaXRlCi15b3VyIFtvd24gbWF0Y2hlcnNd
KC4uLy4uL2dvb2dsZW1vY2svZG9jcy9Db29rQm9vay5tZCN3cml0aW5nLW5ldy1tYXRjaGVycy1x
dWlja2x5KSB0b28uCi0KLUZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSBnTW9jaydzCi1bRXF1YWxz
UHJvdG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbnVjbGV1cy9ibG9iL21hc3Rlci9udWNs
ZXVzL3Rlc3RpbmcvcHJvdG9jb2wtYnVmZmVyLW1hdGNoZXJzLmgpCi10byBjb21wYXJlIHByb3Rv
cyBpbiB5b3VyIHRlc3RzOgotCi1gYGBjKysKLSNpbmNsdWRlICJ0ZXN0aW5nL2Jhc2UvcHVibGlj
L2dtb2NrLmgiCi11c2luZyA6OnRlc3Rpbmc6OkVxdWFsc1Byb3RvOwotLi4uCi0gICAgRVhQRUNU
X1RIQVQoYWN0dWFsX3Byb3RvLCBFcXVhbHNQcm90bygiZm9vOiAxMjMgYmFyOiAneHl6JyIpKTsK
LSAgICBFWFBFQ1RfVEhBVCgqYWN0dWFsX3Byb3RvX3B0ciwgRXF1YWxzUHJvdG8oZXhwZWN0ZWRf
cHJvdG8pKTsKLWBgYAotCi1nTW9jayBpcyBidW5kbGVkIHdpdGggZ29vZ2xldGVzdCwgc28geW91
IGRvbid0IG5lZWQgdG8gYWRkIGFueSBidWlsZCBkZXBlbmRlbmN5Ci1pbiBvcmRlciB0byB0YWtl
IGFkdmFudGFnZSBvZiB0aGlzLiBKdXN0IGluY2x1ZGUgYCJ0ZXN0aW5nL2Jhc2UvcHVibGljL2dt
b2NrLmgiYAotYW5kIHlvdSdyZSByZWFkeSB0byBnby4KLQotKipBdmFpbGFiaWxpdHkqKjogTGlu
dXgsIFdpbmRvd3MsIGFuZCBNYWMuCi0KLSMjIyBNb3JlIFN0cmluZyBBc3NlcnRpb25zCi0KLShQ
bGVhc2UgcmVhZCB0aGUgW3ByZXZpb3VzXSgjQXNzZXJ0VGhhdCkgc2VjdGlvbiBmaXJzdCBpZiB5
b3UgaGF2ZW4ndC4pCi0KLVlvdSBjYW4gdXNlIHRoZSBnTW9jayBbc3RyaW5nIG1hdGNoZXJzXSgu
Li8uLi9nb29nbGVtb2NrL2RvY3MvQ2hlYXRTaGVldC5tZCNzdHJpbmctbWF0Y2hlcnMpCi13aXRo
IGBFWFBFQ1RfVEhBVCgpYCBvciBgQVNTRVJUX1RIQVQoKWAgdG8gZG8gbW9yZSBzdHJpbmcgY29t
cGFyaXNvbiB0cmlja3MKLShzdWItc3RyaW5nLCBwcmVmaXgsIHN1ZmZpeCwgcmVndWxhciBleHBy
ZXNzaW9uLCBhbmQgZXRjKS4gRm9yIGV4YW1wbGUsCi0KLWBgYGMrKwotdXNpbmcgOjp0ZXN0aW5n
OjpIYXNTdWJzdHI7Ci11c2luZyA6OnRlc3Rpbmc6Ok1hdGNoZXNSZWdleDsKLS4uLgotICBBU1NF
UlRfVEhBVChmb29fc3RyaW5nLCBIYXNTdWJzdHIoIm5lZWRsZSIpKTsKLSAgRVhQRUNUX1RIQVQo
YmFyX3N0cmluZywgTWF0Y2hlc1JlZ2V4KCJcXHcqXFxkKyIpKTsKLWBgYAotCi0qKkF2YWlsYWJp
bGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi1JZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGEg
d2VsbC1mb3JtZWQgSFRNTCBvciBYTUwgZG9jdW1lbnQsIHlvdSBjYW4gY2hlY2sgd2hldGhlcgot
aXRzIERPTSB0cmVlIG1hdGNoZXMgYW4gW1hQYXRoCi1leHByZXNzaW9uXShodHRwOi8vd3d3Lncz
Lm9yZy9UUi94cGF0aC8jY29udGVudHMpOgotCi1gYGBjKysKLS8vIEN1cnJlbnRseSBzdGlsbCBp
biAvL3RlbXBsYXRlL3Byb3RvdGVtcGxhdGUvdGVzdGluZzp4cGF0aF9tYXRjaGVyCi0jaW5jbHVk
ZSAidGVtcGxhdGUvcHJvdG90ZW1wbGF0ZS90ZXN0aW5nL3hwYXRoX21hdGNoZXIuaCIKLXVzaW5n
IHByb3RvdGVtcGxhdGU6OnRlc3Rpbmc6Ok1hdGNoZXNYUGF0aDsKLUVYUEVDVF9USEFUKGh0bWxf
c3RyaW5nLCBNYXRjaGVzWFBhdGgoIi8vYVt0ZXh0KCk9J2NsaWNrIGhlcmUnXSIpKTsKLWBgYAot
Ci0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eC4KLQotIyMjIFdpbmRvd3MgSFJFU1VMVCBhc3NlcnRp
b25zCi0KLVRoZXNlIGFzc2VydGlvbnMgdGVzdCBmb3IgYEhSRVNVTFRgIHN1Y2Nlc3Mgb3IgZmFp
bHVyZS4KLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfCBOb25mYXRh
bCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICB8IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoZXhwcmVzc2lv
bilgIHwgYEVYUEVDVF9IUkVTVUxUX1NVQ0NFRURFRChleHByZXNzaW9uKWAgfCBgZXhwcmVzc2lv
bmAgaXMgYSBzdWNjZXNzIGBIUkVTVUxUYAotYEFTU0VSVF9IUkVTVUxUX0ZBSUxFRChleHByZXNz
aW9uKWAgICAgfCBgRVhQRUNUX0hSRVNVTFRfRkFJTEVEKGV4cHJlc3Npb24pYCAgICB8IGBleHBy
ZXNzaW9uYCBpcyBhIGZhaWx1cmUgYEhSRVNVTFRgCi0KLVRoZSBnZW5lcmF0ZWQgb3V0cHV0IGNv
bnRhaW5zIHRoZSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aAot
dGhlIGBIUkVTVUxUYCBjb2RlIHJldHVybmVkIGJ5IGBleHByZXNzaW9uYC4KLQotWW91IG1pZ2h0
IHVzZSB0aGVtIGxpa2UgdGhpczoKLQotYGBgYysrCi1DQ29tUHRyPElTaGVsbERpc3BhdGNoMj4g
c2hlbGw7Ci1BU1NFUlRfSFJFU1VMVF9TVUNDRUVERUQoc2hlbGwuQ29DcmVhdGVJbnN0YW5jZShM
IlNoZWxsLkFwcGxpY2F0aW9uIikpOwotQ0NvbVZhcmlhbnQgZW1wdHk7Ci1BU1NFUlRfSFJFU1VM
VF9TVUNDRUVERUQoc2hlbGwtPlNoZWxsRXhlY3V0ZShDQ29tQlNUUih1cmwpLCBlbXB0eSwgZW1w
dHksIGVtcHR5LCBlbXB0eSkpOwotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IFdpbmRvd3MuCi0K
LSMjIyBUeXBlIEFzc2VydGlvbnMKLQotWW91IGNhbiBjYWxsIHRoZSBmdW5jdGlvbgotCi1gYGBj
KysKLTo6dGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxPFQxLCBUMj4oKTsKLWBgYAotCi10byBh
c3NlcnQgdGhhdCB0eXBlcyBgVDFgIGFuZCBgVDJgIGFyZSB0aGUgc2FtZS4gVGhlIGZ1bmN0aW9u
IGRvZXMgbm90aGluZyBpZgotdGhlIGFzc2VydGlvbiBpcyBzYXRpc2ZpZWQuIElmIHRoZSB0eXBl
cyBhcmUgZGlmZmVyZW50LCB0aGUgZnVuY3Rpb24gY2FsbCB3aWxsCi1mYWlsIHRvIGNvbXBpbGUs
IGFuZCB0aGUgY29tcGlsZXIgZXJyb3IgbWVzc2FnZSB3aWxsIGxpa2VseSAoZGVwZW5kaW5nIG9u
IHRoZQotY29tcGlsZXIpIHNob3cgeW91IHRoZSBhY3R1YWwgdmFsdWVzIG9mIGBUMWAgYW5kIGBU
MmAuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bAotaW5zaWRlIHRlbXBsYXRlIGNvZGUuCi0KLSoqQ2F2
ZWF0Kio6IFdoZW4gdXNlZCBpbnNpZGUgYSBtZW1iZXIgZnVuY3Rpb24gb2YgYSBjbGFzcyB0ZW1w
bGF0ZSBvciBhIGZ1bmN0aW9uCi10ZW1wbGF0ZSwgYFN0YXRpY0Fzc2VydFR5cGVFcTxUMSwgVDI+
KClgIGlzIGVmZmVjdGl2ZSBvbmx5IGlmIHRoZSBmdW5jdGlvbiBpcwotaW5zdGFudGlhdGVkLiBG
b3IgZXhhbXBsZSwgZ2l2ZW46Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNz
IEZvbyB7Ci0gcHVibGljOgotICB2b2lkIEJhcigpIHsgOjp0ZXN0aW5nOjpTdGF0aWNBc3NlcnRU
eXBlRXE8aW50LCBUPigpOyB9Ci19OwotYGBgCi0KLXRoZSBjb2RlOgotCi1gYGBjKysKLXZvaWQg
VGVzdDEoKSB7IEZvbzxib29sPiBmb287IH0KLWBgYAotCi13aWxsIG5vdCBnZW5lcmF0ZSBhIGNv
bXBpbGVyIGVycm9yLCBhcyBgRm9vPGJvb2w+OjpCYXIoKWAgaXMgbmV2ZXIgYWN0dWFsbHkKLWlu
c3RhbnRpYXRlZC4gSW5zdGVhZCwgeW91IG5lZWQ6Ci0KLWBgYGMrKwotdm9pZCBUZXN0MigpIHsg
Rm9vPGJvb2w+IGZvbzsgZm9vLkJhcigpOyB9Ci1gYGAKLQotdG8gY2F1c2UgYSBjb21waWxlciBl
cnJvci4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEFz
c2VydGlvbiBQbGFjZW1lbnQKLQotWW91IGNhbiB1c2UgYXNzZXJ0aW9ucyBpbiBhbnkgQysrIGZ1
bmN0aW9uLiBJbiBwYXJ0aWN1bGFyLCBpdCBkb2Vzbid0IGhhdmUgdG8gYmUKLWEgbWV0aG9kIG9m
IHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuIFRoZSBvbmUgY29uc3RyYWludCBpcyB0aGF0IGFzc2Vy
dGlvbnMgdGhhdAotZ2VuZXJhdGUgYSBmYXRhbCBmYWlsdXJlIChgRkFJTCpgIGFuZCBgQVNTRVJU
XypgKSBjYW4gb25seSBiZSB1c2VkIGluCi12b2lkLXJldHVybmluZyBmdW5jdGlvbnMuIFRoaXMg
aXMgYSBjb25zZXF1ZW5jZSBvZiBHb29nbGUncyBub3QgdXNpbmcKLWV4Y2VwdGlvbnMuIEJ5IHBs
YWNpbmcgaXQgaW4gYSBub24tdm9pZCBmdW5jdGlvbiB5b3UnbGwgZ2V0IGEgY29uZnVzaW5nIGNv
bXBpbGUKLWVycm9yIGxpa2UgYCJlcnJvcjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBv
dWdodCB0byBiZSJgIG9yIGAiY2Fubm90Ci1pbml0aWFsaXplIHJldHVybiBvYmplY3Qgb2YgdHlw
ZSAnYm9vbCcgd2l0aCBhbiBydmFsdWUgb2YgdHlwZSAndm9pZCciYCBvcgotYCJlcnJvcjogbm8g
dmlhYmxlIGNvbnZlcnNpb24gZnJvbSAndm9pZCcgdG8gJ3N0cmluZyciYC4KLQotSWYgeW91IG5l
ZWQgdG8gdXNlIGZhdGFsIGFzc2VydGlvbnMgaW4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgbm9u
LXZvaWQsIG9uZQotb3B0aW9uIGlzIHRvIG1ha2UgdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFs
dWUgaW4gYW4gb3V0IHBhcmFtZXRlciBpbnN0ZWFkLiBGb3IKLWV4YW1wbGUsIHlvdSBjYW4gcmV3
cml0ZSBgVDIgRm9vKFQxIHgpYCB0byBgdm9pZCBGb28oVDEgeCwgVDIqIHJlc3VsdClgLiBZb3UK
LW5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYCpyZXN1bHRgIGNvbnRhaW5zIHNvbWUgc2Vuc2libGUg
dmFsdWUgZXZlbiB3aGVuIHRoZQotZnVuY3Rpb24gcmV0dXJucyBwcmVtYXR1cmVseS4gQXMgdGhl
IGZ1bmN0aW9uIG5vdyByZXR1cm5zIGB2b2lkYCwgeW91IGNhbiB1c2UKLWFueSBhc3NlcnRpb24g
aW5zaWRlIG9mIGl0LgotCi1JZiBjaGFuZ2luZyB0aGUgZnVuY3Rpb24ncyB0eXBlIGlzIG5vdCBh
biBvcHRpb24sIHlvdSBzaG91bGQganVzdCB1c2UgYXNzZXJ0aW9ucwotdGhhdCBnZW5lcmF0ZSBu
b24tZmF0YWwgZmFpbHVyZXMsIHN1Y2ggYXMgYEFERF9GQUlMVVJFKmAgYW5kIGBFWFBFQ1RfKmAu
Ci0KLU5PVEU6IENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgYXJlIG5vdCBjb25zaWRlcmVk
IHZvaWQtcmV0dXJuaW5nIGZ1bmN0aW9ucywKLWFjY29yZGluZyB0byB0aGUgQysrIGxhbmd1YWdl
IHNwZWNpZmljYXRpb24sIGFuZCBzbyB5b3UgbWF5IG5vdCB1c2UgZmF0YWwKLWFzc2VydGlvbnMg
aW4gdGhlbS4gWW91J2xsIGdldCBhIGNvbXBpbGF0aW9uIGVycm9yIGlmIHlvdSB0cnkuIEEgc2lt
cGxlCi13b3JrYXJvdW5kIGlzIHRvIHRyYW5zZmVyIHRoZSBlbnRpcmUgYm9keSBvZiB0aGUgY29u
c3RydWN0b3Igb3IgZGVzdHJ1Y3RvciB0byBhCi1wcml2YXRlIHZvaWQtcmV0dXJuaW5nIG1ldGhv
ZC4gSG93ZXZlciwgeW91IHNob3VsZCBiZSBhd2FyZSB0aGF0IGEgZmF0YWwKLWFzc2VydGlvbiBm
YWlsdXJlIGluIGEgY29uc3RydWN0b3IgZG9lcyBub3QgdGVybWluYXRlIHRoZSBjdXJyZW50IHRl
c3QsIGFzIHlvdXIKLWludHVpdGlvbiBtaWdodCBzdWdnZXN0OyBpdCBtZXJlbHkgcmV0dXJucyBm
cm9tIHRoZSBjb25zdHJ1Y3RvciBlYXJseSwgcG9zc2libHkKLWxlYXZpbmcgeW91ciBvYmplY3Qg
aW4gYSBwYXJ0aWFsbHktY29uc3RydWN0ZWQgc3RhdGUuIExpa2V3aXNlLCBhIGZhdGFsCi1hc3Nl
cnRpb24gZmFpbHVyZSBpbiBhIGRlc3RydWN0b3IgbWF5IGxlYXZlIHlvdXIgb2JqZWN0IGluIGEK
LXBhcnRpYWxseS1kZXN0cnVjdGVkIHN0YXRlLiBVc2UgYXNzZXJ0aW9ucyBjYXJlZnVsbHkgaW4g
dGhlc2Ugc2l0dWF0aW9ucyEKLQotIyMgVGVhY2hpbmcgZ29vZ2xldGVzdCBIb3cgdG8gUHJpbnQg
WW91ciBWYWx1ZXMKLQotV2hlbiBhIHRlc3QgYXNzZXJ0aW9uIHN1Y2ggYXMgYEVYUEVDVF9FUWAg
ZmFpbHMsIGdvb2dsZXRlc3QgcHJpbnRzIHRoZSBhcmd1bWVudAotdmFsdWVzIHRvIGhlbHAgeW91
IGRlYnVnLiBJdCBkb2VzIHRoaXMgdXNpbmcgYSB1c2VyLWV4dGVuc2libGUgdmFsdWUgcHJpbnRl
ci4KLQotVGhpcyBwcmludGVyIGtub3dzIGhvdyB0byBwcmludCBidWlsdC1pbiBDKysgdHlwZXMs
IG5hdGl2ZSBhcnJheXMsIFNUTAotY29udGFpbmVycywgYW5kIGFueSB0eXBlIHRoYXQgc3VwcG9y
dHMgdGhlIGA8PGAgb3BlcmF0b3IuIEZvciBvdGhlciB0eXBlcywgaXQKLXByaW50cyB0aGUgcmF3
IGJ5dGVzIGluIHRoZSB2YWx1ZSBhbmQgaG9wZXMgdGhhdCB5b3UgdGhlIHVzZXIgY2FuIGZpZ3Vy
ZSBpdCBvdXQuCi0KLUFzIG1lbnRpb25lZCBlYXJsaWVyLCB0aGUgcHJpbnRlciBpcyAqZXh0ZW5z
aWJsZSouIFRoYXQgbWVhbnMgeW91IGNhbiB0ZWFjaCBpdAotdG8gZG8gYSBiZXR0ZXIgam9iIGF0
IHByaW50aW5nIHlvdXIgcGFydGljdWxhciB0eXBlIHRoYW4gdG8gZHVtcCB0aGUgYnl0ZXMuIFRv
Ci1kbyB0aGF0LCBkZWZpbmUgYDw8YCBmb3IgeW91ciB0eXBlOgotCi1gYGBjKysKLS8vIFN0cmVh
bXMgYXJlIGFsbG93ZWQgb25seSBmb3IgbG9nZ2luZy4gIERvbid0IGluY2x1ZGUgdGhpcyBmb3IK
LS8vIGFueSBvdGhlciBwdXJwb3NlLgotI2luY2x1ZGUgPG9zdHJlYW0+Ci0KLW5hbWVzcGFjZSBm
b28gewotCi1jbGFzcyBCYXIgeyAgLy8gV2Ugd2FudCBnb29nbGV0ZXN0IHRvIGJlIGFibGUgdG8g
cHJpbnQgaW5zdGFuY2VzIG9mIHRoaXMuCi0uLi4KLSAgLy8gQ3JlYXRlIGEgZnJlZSBpbmxpbmUg
ZnJpZW5kIGZ1bmN0aW9uLgotICBmcmllbmQgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6
b3N0cmVhbSYgb3MsIGNvbnN0IEJhciYgYmFyKSB7Ci0gICAgcmV0dXJuIG9zIDw8IGJhci5EZWJ1
Z1N0cmluZygpOyAgLy8gd2hhdGV2ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotICB9Ci19
OwotCi0vLyBJZiB5b3UgY2FuJ3QgZGVjbGFyZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGNsYXNzIGl0
J3MgaW1wb3J0YW50IHRoYXQgdGhlCi0vLyA8PCBvcGVyYXRvciBpcyBkZWZpbmVkIGluIHRoZSBT
QU1FIG5hbWVzcGFjZSB0aGF0IGRlZmluZXMgQmFyLiAgQysrJ3MgbG9vay11cAotLy8gcnVsZXMg
cmVseSBvbiB0aGF0Lgotc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3Ms
IGNvbnN0IEJhciYgYmFyKSB7Ci0gIHJldHVybiBvcyA8PCBiYXIuRGVidWdTdHJpbmcoKTsgIC8v
IHdoYXRldmVyIG5lZWRlZCB0byBwcmludCBiYXIgdG8gb3MKLX0KLQotfSAgLy8gbmFtZXNwYWNl
IGZvbwotYGBgCi0KLVNvbWV0aW1lcywgdGhpcyBtaWdodCBub3QgYmUgYW4gb3B0aW9uOiB5b3Vy
IHRlYW0gbWF5IGNvbnNpZGVyIGl0IGJhZCBzdHlsZSB0bwotaGF2ZSBhIGA8PGAgb3BlcmF0b3Ig
Zm9yIGBCYXJgLCBvciBgQmFyYCBtYXkgYWxyZWFkeSBoYXZlIGEgYDw8YCBvcGVyYXRvciB0aGF0
Ci1kb2Vzbid0IGRvIHdoYXQgeW91IHdhbnQgKGFuZCB5b3UgY2Fubm90IGNoYW5nZSBpdCkuIElm
IHNvLCB5b3UgY2FuIGluc3RlYWQKLWRlZmluZSBhIGBQcmludFRvKClgIGZ1bmN0aW9uIGxpa2Ug
dGhpczoKLQotYGBgYysrCi0vLyBTdHJlYW1zIGFyZSBhbGxvd2VkIG9ubHkgZm9yIGxvZ2dpbmcu
ICBEb24ndCBpbmNsdWRlIHRoaXMgZm9yCi0vLyBhbnkgb3RoZXIgcHVycG9zZS4KLSNpbmNsdWRl
IDxvc3RyZWFtPgotCi1uYW1lc3BhY2UgZm9vIHsKLQotY2xhc3MgQmFyIHsKLSAgLi4uCi0gIGZy
aWVuZCB2b2lkIFByaW50VG8oY29uc3QgQmFyJiBiYXIsIHN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
ICAqb3MgPDwgYmFyLkRlYnVnU3RyaW5nKCk7ICAvLyB3aGF0ZXZlciBuZWVkZWQgdG8gcHJpbnQg
YmFyIHRvIG9zCi0gIH0KLX07Ci0KLS8vIElmIHlvdSBjYW4ndCBkZWNsYXJlIHRoZSBmdW5jdGlv
biBpbiB0aGUgY2xhc3MgaXQncyBpbXBvcnRhbnQgdGhhdCBQcmludFRvKCkKLS8vIGlzIGRlZmlu
ZWQgaW4gdGhlIFNBTUUgbmFtZXNwYWNlIHRoYXQgZGVmaW5lcyBCYXIuICBDKysncyBsb29rLXVw
IHJ1bGVzIHJlbHkKLS8vIG9uIHRoYXQuCi12b2lkIFByaW50VG8oY29uc3QgQmFyJiBiYXIsIHN0
ZDo6b3N0cmVhbSogb3MpIHsKLSAgKm9zIDw8IGJhci5EZWJ1Z1N0cmluZygpOyAgLy8gd2hhdGV2
ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotfQotCi19ICAvLyBuYW1lc3BhY2UgZm9vCi1g
YGAKLQotSWYgeW91IGhhdmUgZGVmaW5lZCBib3RoIGA8PGAgYW5kIGBQcmludFRvKClgLCB0aGUg
bGF0dGVyIHdpbGwgYmUgdXNlZCB3aGVuCi1nb29nbGV0ZXN0IGlzIGNvbmNlcm5lZC4gVGhpcyBh
bGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBob3cgdGhlIHZhbHVlIGFwcGVhcnMgaW4KLWdvb2dsZXRl
c3QncyBvdXRwdXQgd2l0aG91dCBhZmZlY3RpbmcgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgYmVo
YXZpb3Igb2YgaXRzCi1gPDxgIG9wZXJhdG9yLgotCi1JZiB5b3Ugd2FudCB0byBwcmludCBhIHZh
bHVlIGB4YCB1c2luZyBnb29nbGV0ZXN0J3MgdmFsdWUgcHJpbnRlciB5b3Vyc2VsZiwganVzdAot
Y2FsbCBgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHgpYCwgd2hpY2ggcmV0dXJucyBhbiBgc3Rk
OjpzdHJpbmdgOgotCi1gYGBjKysKLXZlY3RvcjxwYWlyPEJhciwgaW50PiA+IGJhcl9pbnRzID0g
R2V0QmFySW50VmVjdG9yKCk7Ci0KLUVYUEVDVF9UUlVFKElzQ29ycmVjdEJhckludFZlY3Rvcihi
YXJfaW50cykpCi0gICAgPDwgImJhcl9pbnRzID0gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJp
bmcoYmFyX2ludHMpOwotYGBgCi0KLSMjIERlYXRoIFRlc3RzCi0KLUluIG1hbnkgYXBwbGljYXRp
b25zLCB0aGVyZSBhcmUgYXNzZXJ0aW9ucyB0aGF0IGNhbiBjYXVzZSBhcHBsaWNhdGlvbiBmYWls
dXJlIGlmCi1hIGNvbmRpdGlvbiBpcyBub3QgbWV0LiBUaGVzZSBzYW5pdHkgY2hlY2tzLCB3aGlj
aCBlbnN1cmUgdGhhdCB0aGUgcHJvZ3JhbSBpcyBpbgotYSBrbm93biBnb29kIHN0YXRlLCBhcmUg
dGhlcmUgdG8gZmFpbCBhdCB0aGUgZWFybGllc3QgcG9zc2libGUgdGltZSBhZnRlciBzb21lCi1w
cm9ncmFtIHN0YXRlIGlzIGNvcnJ1cHRlZC4gSWYgdGhlIGFzc2VydGlvbiBjaGVja3MgdGhlIHdy
b25nIGNvbmRpdGlvbiwgdGhlbgotdGhlIHByb2dyYW0gbWF5IHByb2NlZWQgaW4gYW4gZXJyb25l
b3VzIHN0YXRlLCB3aGljaCBjb3VsZCBsZWFkIHRvIG1lbW9yeQotY29ycnVwdGlvbiwgc2VjdXJp
dHkgaG9sZXMsIG9yIHdvcnNlLiBIZW5jZSBpdCBpcyB2aXRhbGx5IGltcG9ydGFudCB0byB0ZXN0
IHRoYXQKLXN1Y2ggYXNzZXJ0aW9uIHN0YXRlbWVudHMgd29yayBhcyBleHBlY3RlZC4KLQotU2lu
Y2UgdGhlc2UgcHJlY29uZGl0aW9uIGNoZWNrcyBjYXVzZSB0aGUgcHJvY2Vzc2VzIHRvIGRpZSwg
d2UgY2FsbCBzdWNoIHRlc3RzCi1fZGVhdGggdGVzdHNfLiBNb3JlIGdlbmVyYWxseSwgYW55IHRl
c3QgdGhhdCBjaGVja3MgdGhhdCBhIHByb2dyYW0gdGVybWluYXRlcwotKGV4Y2VwdCBieSB0aHJv
d2luZyBhbiBleGNlcHRpb24pIGluIGFuIGV4cGVjdGVkIGZhc2hpb24gaXMgYWxzbyBhIGRlYXRo
IHRlc3QuCi0KLQotTm90ZSB0aGF0IGlmIGEgcGllY2Ugb2YgY29kZSB0aHJvd3MgYW4gZXhjZXB0
aW9uLCB3ZSBkb24ndCBjb25zaWRlciBpdCAiZGVhdGgiCi1mb3IgdGhlIHB1cnBvc2Ugb2YgZGVh
dGggdGVzdHMsIGFzIHRoZSBjYWxsZXIgb2YgdGhlIGNvZGUgY291bGQgY2F0Y2ggdGhlCi1leGNl
cHRpb24gYW5kIGF2b2lkIHRoZSBjcmFzaC4gSWYgeW91IHdhbnQgdG8gdmVyaWZ5IGV4Y2VwdGlv
bnMgdGhyb3duIGJ5IHlvdXIKLWNvZGUsIHNlZSBbRXhjZXB0aW9uIEFzc2VydGlvbnNdKCNleGNl
cHRpb24tYXNzZXJ0aW9ucykuCi0KLUlmIHlvdSB3YW50IHRvIHRlc3QgYEVYUEVDVF8qKCkvQVNT
RVJUXyooKWAgZmFpbHVyZXMgaW4geW91ciB0ZXN0IGNvZGUsIHNlZQotQ2F0Y2hpbmcgRmFpbHVy
ZXMKLQotIyMjIEhvdyB0byBXcml0ZSBhIERlYXRoIFRlc3QKLQotZ29vZ2xldGVzdCBoYXMgdGhl
IGZvbGxvd2luZyBtYWNyb3MgdG8gc3VwcG9ydCBkZWF0aCB0ZXN0czoKLQotRmF0YWwgYXNzZXJ0
aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLQotYEFTU0VSVF9ERUFUSChzdGF0ZW1lbnQs
IHJlZ2V4KTtgICAgICAgICAgICAgICB8IGBFWFBFQ1RfREVBVEgoc3RhdGVtZW50LCByZWdleCk7
YCAgICAgICAgICAgICAgfCBgc3RhdGVtZW50YCBjcmFzaGVzIHdpdGggdGhlIGdpdmVuIGVycm9y
Ci1gQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRChzdGF0ZW1lbnQsIHJlZ2V4KTtgIHwgYEVYUEVD
VF9ERUFUSF9JRl9TVVBQT1JURUQoc3RhdGVtZW50LCByZWdleCk7YCB8IGlmIGRlYXRoIHRlc3Rz
IGFyZSBzdXBwb3J0ZWQsIHZlcmlmaWVzIHRoYXQgYHN0YXRlbWVudGAgY3Jhc2hlcyB3aXRoIHRo
ZSBnaXZlbiBlcnJvcjsgb3RoZXJ3aXNlIHZlcmlmaWVzIG5vdGhpbmcKLWBBU1NFUlRfRVhJVChz
dGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXgpO2AgICAgfCBgRVhQRUNUX0VYSVQoc3RhdGVtZW50
LCBwcmVkaWNhdGUsIHJlZ2V4KTtgICAgIHwgYHN0YXRlbWVudGAgZXhpdHMgd2l0aCB0aGUgZ2l2
ZW4gZXJyb3IsIGFuZCBpdHMgZXhpdCBjb2RlIG1hdGNoZXMgYHByZWRpY2F0ZWAKLQotd2hlcmUg
YHN0YXRlbWVudGAgaXMgYSBzdGF0ZW1lbnQgdGhhdCBpcyBleHBlY3RlZCB0byBjYXVzZSB0aGUg
cHJvY2VzcyB0byBkaWUsCi1gcHJlZGljYXRlYCBpcyBhIGZ1bmN0aW9uIG9yIGZ1bmN0aW9uIG9i
amVjdCB0aGF0IGV2YWx1YXRlcyBhbiBpbnRlZ2VyIGV4aXQKLXN0YXR1cywgYW5kIGByZWdleGAg
aXMgYSAoUGVybCkgcmVndWxhciBleHByZXNzaW9uIHRoYXQgdGhlIHN0ZGVyciBvdXRwdXQgb2YK
LWBzdGF0ZW1lbnRgIGlzIGV4cGVjdGVkIHRvIG1hdGNoLiBOb3RlIHRoYXQgYHN0YXRlbWVudGAg
Y2FuIGJlICphbnkgdmFsaWQKLXN0YXRlbWVudCogKGluY2x1ZGluZyAqY29tcG91bmQgc3RhdGVt
ZW50KikgYW5kIGRvZXNuJ3QgaGF2ZSB0byBiZSBhbgotZXhwcmVzc2lvbi4KLQotCi1BcyB1c3Vh
bCwgdGhlIGBBU1NFUlRgIHZhcmlhbnRzIGFib3J0IHRoZSBjdXJyZW50IHRlc3QgZnVuY3Rpb24s
IHdoaWxlIHRoZQotYEVYUEVDVGAgdmFyaWFudHMgZG8gbm90LgotCi0+IE5PVEU6IFdlIHVzZSB0
aGUgd29yZCAiY3Jhc2giIGhlcmUgdG8gbWVhbiB0aGF0IHRoZSBwcm9jZXNzIHRlcm1pbmF0ZXMg
d2l0aCBhCi0+ICpub24temVybyogZXhpdCBzdGF0dXMgY29kZS4gVGhlcmUgYXJlIHR3byBwb3Nz
aWJpbGl0aWVzOiBlaXRoZXIgdGhlIHByb2Nlc3MKLT4gaGFzIGNhbGxlZCBgZXhpdCgpYCBvciBg
X2V4aXQoKWAgd2l0aCBhIG5vbi16ZXJvIHZhbHVlLCBvciBpdCBtYXkgYmUga2lsbGVkIGJ5Ci0+
IGEgc2lnbmFsLgotPgotPiBUaGlzIG1lYW5zIHRoYXQgaWYgYCpzdGF0ZW1lbnQqYCB0ZXJtaW5h
dGVzIHRoZSBwcm9jZXNzIHdpdGggYSAwIGV4aXQgY29kZSwgaXQKLT4gaXMgKm5vdCogY29uc2lk
ZXJlZCBhIGNyYXNoIGJ5IGBFWFBFQ1RfREVBVEhgLiBVc2UgYEVYUEVDVF9FWElUYCBpbnN0ZWFk
IGlmCi0+IHRoaXMgaXMgdGhlIGNhc2UsIG9yIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IHRoZSBl
eGl0IGNvZGUgbW9yZSBwcmVjaXNlbHkuCi0KLUEgcHJlZGljYXRlIGhlcmUgbXVzdCBhY2NlcHQg
YW4gYGludGAgYW5kIHJldHVybiBhIGBib29sYC4gVGhlIGRlYXRoIHRlc3QKLXN1Y2NlZWRzIG9u
bHkgaWYgdGhlIHByZWRpY2F0ZSByZXR1cm5zIGB0cnVlYC4gZ29vZ2xldGVzdCBkZWZpbmVzIGEg
ZmV3Ci1wcmVkaWNhdGVzIHRoYXQgaGFuZGxlIHRoZSBtb3N0IGNvbW1vbiBjYXNlczoKLQotYGBg
YysrCi06OnRlc3Rpbmc6OkV4aXRlZFdpdGhDb2RlKGV4aXRfY29kZSkKLWBgYAotCi1UaGlzIGV4
cHJlc3Npb24gaXMgYHRydWVgIGlmIHRoZSBwcm9ncmFtIGV4aXRlZCBub3JtYWxseSB3aXRoIHRo
ZSBnaXZlbiBleGl0Ci1jb2RlLgotCi1gYGBjKysKLTo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwo
c2lnbmFsX251bWJlcikgIC8vIE5vdCBhdmFpbGFibGUgb24gV2luZG93cy4KLWBgYAotCi1UaGlz
IGV4cHJlc3Npb24gaXMgYHRydWVgIGlmIHRoZSBwcm9ncmFtIHdhcyBraWxsZWQgYnkgdGhlIGdp
dmVuIHNpZ25hbC4KLQotVGhlIGAqX0RFQVRIYCBtYWNyb3MgYXJlIGNvbnZlbmllbnQgd3JhcHBl
cnMgZm9yIGAqX0VYSVRgIHRoYXQgdXNlIGEgcHJlZGljYXRlCi10aGF0IHZlcmlmaWVzIHRoZSBw
cm9jZXNzJyBleGl0IGNvZGUgaXMgbm9uLXplcm8uCi0KLU5vdGUgdGhhdCBhIGRlYXRoIHRlc3Qg
b25seSBjYXJlcyBhYm91dCB0aHJlZSB0aGluZ3M6Ci0KLTEuICBkb2VzIGBzdGF0ZW1lbnRgIGFi
b3J0IG9yIGV4aXQgdGhlIHByb2Nlc3M/Ci0yLiAgKGluIHRoZSBjYXNlIG9mIGBBU1NFUlRfRVhJ
VGAgYW5kIGBFWFBFQ1RfRVhJVGApIGRvZXMgdGhlIGV4aXQgc3RhdHVzCi0gICAgc2F0aXNmeSBg
cHJlZGljYXRlYD8gT3IgKGluIHRoZSBjYXNlIG9mIGBBU1NFUlRfREVBVEhgIGFuZCBgRVhQRUNU
X0RFQVRIYCkKLSAgICBpcyB0aGUgZXhpdCBzdGF0dXMgbm9uLXplcm8/IEFuZAotMy4gIGRvZXMg
dGhlIHN0ZGVyciBvdXRwdXQgbWF0Y2ggYHJlZ2V4YD8KLQotSW4gcGFydGljdWxhciwgaWYgYHN0
YXRlbWVudGAgZ2VuZXJhdGVzIGFuIGBBU1NFUlRfKmAgb3IgYEVYUEVDVF8qYCBmYWlsdXJlLCBp
dAotd2lsbCAqKm5vdCoqIGNhdXNlIHRoZSBkZWF0aCB0ZXN0IHRvIGZhaWwsIGFzIGdvb2dsZXRl
c3QgYXNzZXJ0aW9ucyBkb24ndCBhYm9ydAotdGhlIHByb2Nlc3MuCi0KLVRvIHdyaXRlIGEgZGVh
dGggdGVzdCwgc2ltcGx5IHVzZSBvbmUgb2YgdGhlIGFib3ZlIG1hY3JvcyBpbnNpZGUgeW91ciB0
ZXN0Ci1mdW5jdGlvbi4gRm9yIGV4YW1wbGUsCi0KLWBgYGMrKwotVEVTVChNeURlYXRoVGVzdCwg
Rm9vKSB7Ci0gIC8vIFRoaXMgZGVhdGggdGVzdCB1c2VzIGEgY29tcG91bmQgc3RhdGVtZW50Lgot
ICBBU1NFUlRfREVBVEgoewotICAgIGludCBuID0gNTsKLSAgICBGb28oJm4pOwotICB9LCAiRXJy
b3Igb24gbGluZSAuKiBvZiBGb28oKSIpOwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBOb3JtYWxF
eGl0KSB7Ci0gIEVYUEVDVF9FWElUKE5vcm1hbEV4aXQoKSwgOjp0ZXN0aW5nOjpFeGl0ZWRXaXRo
Q29kZSgwKSwgIlN1Y2Nlc3MiKTsKLX0KLQotVEVTVChNeURlYXRoVGVzdCwgS2lsbE15c2VsZikg
ewotICBFWFBFQ1RfRVhJVChLaWxsTXlzZWxmKCksIDo6dGVzdGluZzo6S2lsbGVkQnlTaWduYWwo
U0lHS0lMTCksCi0gICAgICAgICAgICAgICJTZW5kaW5nIG15c2VsZiB1bmJsb2NrYWJsZSBzaWdu
YWwiKTsKLX0KLWBgYAotCi12ZXJpZmllcyB0aGF0OgotCi0qICAgY2FsbGluZyBgRm9vKDUpYCBj
YXVzZXMgdGhlIHByb2Nlc3MgdG8gZGllIHdpdGggdGhlIGdpdmVuIGVycm9yIG1lc3NhZ2UsCi0q
ICAgY2FsbGluZyBgTm9ybWFsRXhpdCgpYCBjYXVzZXMgdGhlIHByb2Nlc3MgdG8gcHJpbnQgYCJT
dWNjZXNzImAgdG8gc3RkZXJyIGFuZAotICAgIGV4aXQgd2l0aCBleGl0IGNvZGUgMCwgYW5kCi0q
ICAgY2FsbGluZyBgS2lsbE15c2VsZigpYCBraWxscyB0aGUgcHJvY2VzcyB3aXRoIHNpZ25hbCBg
U0lHS0lMTGAuCi0KLVRoZSB0ZXN0IGZ1bmN0aW9uIGJvZHkgbWF5IGNvbnRhaW4gb3RoZXIgYXNz
ZXJ0aW9ucyBhbmQgc3RhdGVtZW50cyBhcyB3ZWxsLCBpZgotbmVjZXNzYXJ5LgotCi0jIyMgRGVh
dGggVGVzdCBOYW1pbmcKLQotSU1QT1JUQU5UOiBXZSBzdHJvbmdseSByZWNvbW1lbmQgeW91IHRv
IGZvbGxvdyB0aGUgY29udmVudGlvbiBvZiBuYW1pbmcgeW91cgotKip0ZXN0IGNhc2UqKiAobm90
IHRlc3QpIGAqRGVhdGhUZXN0YCB3aGVuIGl0IGNvbnRhaW5zIGEgZGVhdGggdGVzdCwgYXMKLWRl
bW9uc3RyYXRlZCBpbiB0aGUgYWJvdmUgZXhhbXBsZS4gVGhlIFtEZWF0aCBUZXN0cyBBbmQKLVRo
cmVhZHNdKCNkZWF0aC10ZXN0cy1hbmQtdGhyZWFkcykgc2VjdGlvbiBiZWxvdyBleHBsYWlucyB3
aHkuCi0KLUlmIGEgdGVzdCBmaXh0dXJlIGNsYXNzIGlzIHNoYXJlZCBieSBub3JtYWwgdGVzdHMg
YW5kIGRlYXRoIHRlc3RzLCB5b3UgY2FuIHVzZQotYHVzaW5nYCBvciBgdHlwZWRlZmAgdG8gaW50
cm9kdWNlIGFuIGFsaWFzIGZvciB0aGUgZml4dHVyZSBjbGFzcyBhbmQgYXZvaWQKLWR1cGxpY2F0
aW5nIGl0cyBjb2RlOgotCi1gYGBjKysKLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5n
OjpUZXN0IHsgLi4uIH07Ci0KLXVzaW5nIEZvb0RlYXRoVGVzdCA9IEZvb1Rlc3Q7Ci0KLVRFU1Rf
RihGb29UZXN0LCBEb2VzVGhpcykgewotICAvLyBub3JtYWwgdGVzdAotfQotCi1URVNUX0YoRm9v
RGVhdGhUZXN0LCBEb2VzVGhhdCkgewotICAvLyBkZWF0aCB0ZXN0Ci19Ci1gYGAKLQotKipBdmFp
bGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1TVkMgOC4wIG9yIGFib3ZlKSwg
Q3lnd2luLCBhbmQgTWFjCi0KLSMjIyBSZWd1bGFyIEV4cHJlc3Npb24gU3ludGF4Ci0KLQotT24g
UE9TSVggc3lzdGVtcyAoZS5nLiBMaW51eCwgQ3lnd2luLCBhbmQgTWFjKSwgZ29vZ2xldGVzdCB1
c2VzIHRoZQotW1BPU0lYIGV4dGVuZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbl0oaHR0cDovL3d3dy5v
cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Jhc2VkZWZzL3hiZF9jaGFwMDkuaHRt
bCN0YWdfMDlfMDQpCi1zeW50YXguIFRvIGxlYXJuIGFib3V0IHRoaXMgc3ludGF4LCB5b3UgbWF5
IHdhbnQgdG8gcmVhZCB0aGlzCi1bV2lraXBlZGlhIGVudHJ5XShodHRwOi8vZW4ud2lraXBlZGlh
Lm9yZy93aWtpL1JlZ3VsYXJfZXhwcmVzc2lvbiNQT1NJWF9FeHRlbmRlZF9SZWd1bGFyX0V4cHJl
c3Npb25zKS4KLQotT24gV2luZG93cywgZ29vZ2xldGVzdCB1c2VzIGl0cyBvd24gc2ltcGxlIHJl
Z3VsYXIgZXhwcmVzc2lvbiBpbXBsZW1lbnRhdGlvbi4gSXQKLWxhY2tzIG1hbnkgZmVhdHVyZXMu
IEZvciBleGFtcGxlLCB3ZSBkb24ndCBzdXBwb3J0IHVuaW9uIChgInh8eSJgKSwgZ3JvdXBpbmcK
LShgIih4eSkiYCksIGJyYWNrZXRzIChgIlt4eV0iYCksIGFuZCByZXBldGl0aW9uIGNvdW50IChg
Inh7NSw3fSJgKSwgYW1vbmcKLW90aGVycy4gQmVsb3cgaXMgd2hhdCB3ZSBkbyBzdXBwb3J0IChg
QWAgZGVub3RlcyBhIGxpdGVyYWwgY2hhcmFjdGVyLCBwZXJpb2QKLShgLmApLCBvciBhIHNpbmds
ZSBgXFwgYCBlc2NhcGUgc2VxdWVuY2U7IGB4YCBhbmQgYHlgIGRlbm90ZSByZWd1bGFyCi1leHBy
ZXNzaW9ucy4pOgotCi1FeHByZXNzaW9uIHwgTWVhbmluZwotLS0tLS0tLS0tLSB8IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1g
Y2AgICAgICAgIHwgbWF0Y2hlcyBhbnkgbGl0ZXJhbCBjaGFyYWN0ZXIgYGNgCi1gXFxkYCAgICAg
IHwgbWF0Y2hlcyBhbnkgZGVjaW1hbCBkaWdpdAotYFxcRGAgICAgICB8IG1hdGNoZXMgYW55IGNo
YXJhY3RlciB0aGF0J3Mgbm90IGEgZGVjaW1hbCBkaWdpdAotYFxcZmAgICAgICB8IG1hdGNoZXMg
YFxmYAotYFxcbmAgICAgICB8IG1hdGNoZXMgYFxuYAotYFxccmAgICAgICB8IG1hdGNoZXMgYFxy
YAotYFxcc2AgICAgICB8IG1hdGNoZXMgYW55IEFTQ0lJIHdoaXRlc3BhY2UsIGluY2x1ZGluZyBg
XG5gCi1gXFxTYCAgICAgIHwgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHRoYXQncyBub3QgYSB3aGl0
ZXNwYWNlCi1gXFx0YCAgICAgIHwgbWF0Y2hlcyBgXHRgCi1gXFx2YCAgICAgIHwgbWF0Y2hlcyBg
XHZgCi1gXFx3YCAgICAgIHwgbWF0Y2hlcyBhbnkgbGV0dGVyLCBgX2AsIG9yIGRlY2ltYWwgZGln
aXQKLWBcXFdgICAgICAgfCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgdGhhdCBgXFx3YCBkb2Vzbid0
IG1hdGNoCi1gXFxjYCAgICAgIHwgbWF0Y2hlcyBhbnkgbGl0ZXJhbCBjaGFyYWN0ZXIgYGNgLCB3
aGljaCBtdXN0IGJlIGEgcHVuY3R1YXRpb24KLWAuYCAgICAgICAgfCBtYXRjaGVzIGFueSBzaW5n
bGUgY2hhcmFjdGVyIGV4Y2VwdCBgXG5gCi1gQT9gICAgICAgIHwgbWF0Y2hlcyAwIG9yIDEgb2Nj
dXJyZW5jZXMgb2YgYEFgCi1gQSpgICAgICAgIHwgbWF0Y2hlcyAwIG9yIG1hbnkgb2NjdXJyZW5j
ZXMgb2YgYEFgCi1gQStgICAgICAgIHwgbWF0Y2hlcyAxIG9yIG1hbnkgb2NjdXJyZW5jZXMgb2Yg
YEFgCi1gXmAgICAgICAgIHwgbWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9mIGEgc3RyaW5nIChub3Qg
dGhhdCBvZiBlYWNoIGxpbmUpCi1gJGAgICAgICAgIHwgbWF0Y2hlcyB0aGUgZW5kIG9mIGEgc3Ry
aW5nIChub3QgdGhhdCBvZiBlYWNoIGxpbmUpCi1geHlgICAgICAgIHwgbWF0Y2hlcyBgeGAgZm9s
bG93ZWQgYnkgYHlgCi0KLVRvIGhlbHAgeW91IGRldGVybWluZSB3aGljaCBjYXBhYmlsaXR5IGlz
IGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbSwgZ29vZ2xldGVzdAotZGVmaW5lcyBtYWNyb3MgdG8g
Z292ZXJuIHdoaWNoIHJlZ3VsYXIgZXhwcmVzc2lvbiBpdCBpcyB1c2luZy4gVGhlIG1hY3JvcyBh
cmU6Ci08IS0tYWJzbDpnb29nbGUzLWJlZ2luKGdvb2dsZTMtb25seSktLT5gR1RFU1RfVVNFU19Q
Q1JFPTFgLCBvcgotPCEtLWFic2w6Z29vZ2xlMy1lbmQtLT4gYEdURVNUX1VTRVNfU0lNUExFX1JF
PTFgIG9yIGBHVEVTVF9VU0VTX1BPU0lYX1JFPTFgLiBJZgoteW91IHdhbnQgeW91ciBkZWF0aCB0
ZXN0cyB0byB3b3JrIGluIGFsbCBjYXNlcywgeW91IGNhbiBlaXRoZXIgYCNpZmAgb24gdGhlc2UK
LW1hY3JvcyBvciB1c2UgdGhlIG1vcmUgbGltaXRlZCBzeW50YXggb25seS4KLQotIyMjIEhvdyBJ
dCBXb3JrcwotCi1VbmRlciB0aGUgaG9vZCwgYEFTU0VSVF9FWElUKClgIHNwYXducyBhIG5ldyBw
cm9jZXNzIGFuZCBleGVjdXRlcyB0aGUgZGVhdGggdGVzdAotc3RhdGVtZW50IGluIHRoYXQgcHJv
Y2Vzcy4gVGhlIGRldGFpbHMgb2YgaG93IHByZWNpc2VseSB0aGF0IGhhcHBlbnMgZGVwZW5kIG9u
Ci10aGUgcGxhdGZvcm0gYW5kIHRoZSB2YXJpYWJsZSA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVh
dGhfdGVzdF9zdHlsZSkgKHdoaWNoIGlzCi1pbml0aWFsaXplZCBmcm9tIHRoZSBjb21tYW5kLWxp
bmUgZmxhZyBgLS1ndGVzdF9kZWF0aF90ZXN0X3N0eWxlYCkuCi0KLSogICBPbiBQT1NJWCBzeXN0
ZW1zLCBgZm9yaygpYCAob3IgYGNsb25lKClgIG9uIExpbnV4KSBpcyB1c2VkIHRvIHNwYXduIHRo
ZQotICAgIGNoaWxkLCBhZnRlciB3aGljaDoKLSAgICAqICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFs
dWUgaXMgYCJmYXN0ImAsIHRoZSBkZWF0aCB0ZXN0IHN0YXRlbWVudCBpcwotICAgICAgICBpbW1l
ZGlhdGVseSBleGVjdXRlZC4KLSAgICAqICAgSWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgaXMgYCJ0
aHJlYWRzYWZlImAsIHRoZSBjaGlsZCBwcm9jZXNzIHJlLWV4ZWN1dGVzCi0gICAgICAgIHRoZSB1
bml0IHRlc3QgYmluYXJ5IGp1c3QgYXMgaXQgd2FzIG9yaWdpbmFsbHkgaW52b2tlZCwgYnV0IHdp
dGggc29tZQotICAgICAgICBleHRyYSBmbGFncyB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVh
dGggdGVzdCB1bmRlciBjb25zaWRlcmF0aW9uIHRvCi0gICAgICAgIGJlIHJ1bi4KLSogICBPbiBX
aW5kb3dzLCB0aGUgY2hpbGQgaXMgc3Bhd25lZCB1c2luZyB0aGUgYENyZWF0ZVByb2Nlc3MoKWAg
QVBJLCBhbmQKLSAgICByZS1leGVjdXRlcyB0aGUgYmluYXJ5IHRvIGNhdXNlIGp1c3QgdGhlIHNp
bmdsZSBkZWF0aCB0ZXN0IHVuZGVyCi0gICAgY29uc2lkZXJhdGlvbiB0byBiZSBydW4gLSBtdWNo
IGxpa2UgdGhlIGB0aHJlYWRzYWZlYCBtb2RlIG9uIFBPU0lYLgotCi1PdGhlciB2YWx1ZXMgZm9y
IHRoZSB2YXJpYWJsZSBhcmUgaWxsZWdhbCBhbmQgd2lsbCBjYXVzZSB0aGUgZGVhdGggdGVzdCB0
byBmYWlsLgotQ3VycmVudGx5LCB0aGUgZmxhZydzIGRlZmF1bHQgdmFsdWUgaXMKLSJmYXN0Ii4g
SG93ZXZlciwgd2UgcmVzZXJ2ZQotdGhlIHJpZ2h0IHRvIGNoYW5nZSBpdCBpbiB0aGUgZnV0dXJl
LiBUaGVyZWZvcmUsIHlvdXIgdGVzdHMgc2hvdWxkIG5vdCBkZXBlbmQgb24KLXRoaXMuIEluIGVp
dGhlciBjYXNlLCB0aGUgcGFyZW50IHByb2Nlc3Mgd2FpdHMgZm9yIHRoZSBjaGlsZCBwcm9jZXNz
IHRvCi1jb21wbGV0ZSwgYW5kIGNoZWNrcyB0aGF0Ci0KLTEuICB0aGUgY2hpbGQncyBleGl0IHN0
YXR1cyBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSwgYW5kCi0yLiAgdGhlIGNoaWxkJ3Mgc3RkZXJy
IG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4KLQotSWYgdGhlIGRlYXRoIHRlc3Qgc3Rh
dGVtZW50IHJ1bnMgdG8gY29tcGxldGlvbiB3aXRob3V0IGR5aW5nLCB0aGUgY2hpbGQgcHJvY2Vz
cwotd2lsbCBub25ldGhlbGVzcyB0ZXJtaW5hdGUsIGFuZCB0aGUgYXNzZXJ0aW9uIGZhaWxzLgot
Ci0jIyMgRGVhdGggVGVzdHMgQW5kIFRocmVhZHMKLQotVGhlIHJlYXNvbiBmb3IgdGhlIHR3byBk
ZWF0aCB0ZXN0IHN0eWxlcyBoYXMgdG8gZG8gd2l0aCB0aHJlYWQgc2FmZXR5LiBEdWUgdG8KLXdl
bGwta25vd24gcHJvYmxlbXMgd2l0aCBmb3JraW5nIGluIHRoZSBwcmVzZW5jZSBvZiB0aHJlYWRz
LCBkZWF0aCB0ZXN0cyBzaG91bGQKLWJlIHJ1biBpbiBhIHNpbmdsZS10aHJlYWRlZCBjb250ZXh0
LiBTb21ldGltZXMsIGhvd2V2ZXIsIGl0IGlzbid0IGZlYXNpYmxlIHRvCi1hcnJhbmdlIHRoYXQg
a2luZCBvZiBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIHN0YXRpY2FsbHktaW5pdGlhbGl6ZWQg
bW9kdWxlcwotbWF5IHN0YXJ0IHRocmVhZHMgYmVmb3JlIG1haW4gaXMgZXZlciByZWFjaGVkLiBP
bmNlIHRocmVhZHMgaGF2ZSBiZWVuIGNyZWF0ZWQsCi1pdCBtYXkgYmUgZGlmZmljdWx0IG9yIGlt
cG9zc2libGUgdG8gY2xlYW4gdGhlbSB1cC4KLQotZ29vZ2xldGVzdCBoYXMgdGhyZWUgZmVhdHVy
ZXMgaW50ZW5kZWQgdG8gcmFpc2UgYXdhcmVuZXNzIG9mIHRocmVhZGluZyBpc3N1ZXMuCi0KLTEu
ICBBIHdhcm5pbmcgaXMgZW1pdHRlZCBpZiBtdWx0aXBsZSB0aHJlYWRzIGFyZSBydW5uaW5nIHdo
ZW4gYSBkZWF0aCB0ZXN0IGlzCi0gICAgZW5jb3VudGVyZWQuCi0yLiAgVGVzdCBjYXNlcyB3aXRo
IGEgbmFtZSBlbmRpbmcgaW4gIkRlYXRoVGVzdCIgYXJlIHJ1biBiZWZvcmUgYWxsIG90aGVyIHRl
c3RzLgotMy4gIEl0IHVzZXMgYGNsb25lKClgIGluc3RlYWQgb2YgYGZvcmsoKWAgdG8gc3Bhd24g
dGhlIGNoaWxkIHByb2Nlc3Mgb24gTGludXgKLSAgICAoYGNsb25lKClgIGlzIG5vdCBhdmFpbGFi
bGUgb24gQ3lnd2luIGFuZCBNYWMpLCBhcyBgZm9yaygpYCBpcyBtb3JlIGxpa2VseQotICAgIHRv
IGNhdXNlIHRoZSBjaGlsZCB0byBoYW5nIHdoZW4gdGhlIHBhcmVudCBwcm9jZXNzIGhhcyBtdWx0
aXBsZSB0aHJlYWRzLgotCi1JdCdzIHBlcmZlY3RseSBmaW5lIHRvIGNyZWF0ZSB0aHJlYWRzIGlu
c2lkZSBhIGRlYXRoIHRlc3Qgc3RhdGVtZW50OyB0aGV5IGFyZQotZXhlY3V0ZWQgaW4gYSBzZXBh
cmF0ZSBwcm9jZXNzIGFuZCBjYW5ub3QgYWZmZWN0IHRoZSBwYXJlbnQuCi0KLSMjIyBEZWF0aCBU
ZXN0IFN0eWxlcwotCi0KLVRoZSAidGhyZWFkc2FmZSIgZGVhdGggdGVzdCBzdHlsZSB3YXMgaW50
cm9kdWNlZCBpbiBvcmRlciB0byBoZWxwIG1pdGlnYXRlIHRoZQotcmlza3Mgb2YgdGVzdGluZyBp
biBhIHBvc3NpYmx5IG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnQuIEl0IHRyYWRlcyBpbmNyZWFz
ZWQKLXRlc3QgZXhlY3V0aW9uIHRpbWUgKHBvdGVudGlhbGx5IGRyYW1hdGljYWxseSBzbykgZm9y
IGltcHJvdmVkIHRocmVhZCBzYWZldHkuCi0KLVRoZSBhdXRvbWF0ZWQgdGVzdGluZyBmcmFtZXdv
cmsgZG9lcyBub3Qgc2V0IHRoZSBzdHlsZSBmbGFnLiBZb3UgY2FuIGNob29zZSBhCi1wYXJ0aWN1
bGFyIHN0eWxlIG9mIGRlYXRoIHRlc3RzIGJ5IHNldHRpbmcgdGhlIGZsYWcgcHJvZ3JhbW1hdGlj
YWxseToKLQotYGBgYysrCi10ZXN0aW5nOjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlPSJ0
aHJlYWRzYWZlIgotYGBgCi0KLVlvdSBjYW4gZG8gdGhpcyBpbiBgbWFpbigpYCB0byBzZXQgdGhl
IHN0eWxlIGZvciBhbGwgZGVhdGggdGVzdHMgaW4gdGhlIGJpbmFyeSwKLW9yIGluIGluZGl2aWR1
YWwgdGVzdHMuIFJlY2FsbCB0aGF0IGZsYWdzIGFyZSBzYXZlZCBiZWZvcmUgcnVubmluZyBlYWNo
IHRlc3QgYW5kCi1yZXN0b3JlZCBhZnRlcndhcmRzLCBzbyB5b3UgbmVlZCBub3QgZG8gdGhhdCB5
b3Vyc2VsZi4gRm9yIGV4YW1wbGU6Ci0KLWBgYGMrKwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KSB7Ci0gIEluaXRHb29nbGUoYXJndlswXSwgJmFyZ2MsICZhcmd2LCB0cnVlKTsKLSAg
Ojp0ZXN0aW5nOjpGTEFHU19ndGVzdF9kZWF0aF90ZXN0X3N0eWxlID0gImZhc3QiOwotICByZXR1
cm4gUlVOX0FMTF9URVNUUygpOwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBUZXN0T25lKSB7Ci0g
IDo6dGVzdGluZzo6RkxBR1NfZ3Rlc3RfZGVhdGhfdGVzdF9zdHlsZSA9ICJ0aHJlYWRzYWZlIjsK
LSAgLy8gVGhpcyB0ZXN0IGlzIHJ1biBpbiB0aGUgInRocmVhZHNhZmUiIHN0eWxlOgotICBBU1NF
UlRfREVBVEgoVGhpc1Nob3VsZERpZSgpLCAiIik7Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIFRl
c3RUd28pIHsKLSAgLy8gVGhpcyB0ZXN0IGlzIHJ1biBpbiB0aGUgImZhc3QiIHN0eWxlOgotICBB
U1NFUlRfREVBVEgoVGhpc1Nob3VsZERpZSgpLCAiIik7Ci19Ci1gYGAKLQotCi0jIyMgQ2F2ZWF0
cwotCi1UaGUgYHN0YXRlbWVudGAgYXJndW1lbnQgb2YgYEFTU0VSVF9FWElUKClgIGNhbiBiZSBh
bnkgdmFsaWQgQysrIHN0YXRlbWVudC4gSWYKLWl0IGxlYXZlcyB0aGUgY3VycmVudCBmdW5jdGlv
biB2aWEgYSBgcmV0dXJuYCBzdGF0ZW1lbnQgb3IgYnkgdGhyb3dpbmcgYW4KLWV4Y2VwdGlvbiwg
dGhlIGRlYXRoIHRlc3QgaXMgY29uc2lkZXJlZCB0byBoYXZlIGZhaWxlZC4gU29tZSBnb29nbGV0
ZXN0IG1hY3JvcwotbWF5IHJldHVybiBmcm9tIHRoZSBjdXJyZW50IGZ1bmN0aW9uIChlLmcuIGBB
U1NFUlRfVFJVRSgpYCksIHNvIGJlIHN1cmUgdG8gYXZvaWQKLXRoZW0gaW4gYHN0YXRlbWVudGAu
Ci0KLVNpbmNlIGBzdGF0ZW1lbnRgIHJ1bnMgaW4gdGhlIGNoaWxkIHByb2Nlc3MsIGFueSBpbi1t
ZW1vcnkgc2lkZSBlZmZlY3QgKGUuZy4KLW1vZGlmeWluZyBhIHZhcmlhYmxlLCByZWxlYXNpbmcg
bWVtb3J5LCBldGMpIGl0IGNhdXNlcyB3aWxsICpub3QqIGJlIG9ic2VydmFibGUKLWluIHRoZSBw
YXJlbnQgcHJvY2Vzcy4gSW4gcGFydGljdWxhciwgaWYgeW91IHJlbGVhc2UgbWVtb3J5IGluIGEg
ZGVhdGggdGVzdCwKLXlvdXIgcHJvZ3JhbSB3aWxsIGZhaWwgdGhlIGhlYXAgY2hlY2sgYXMgdGhl
IHBhcmVudCBwcm9jZXNzIHdpbGwgbmV2ZXIgc2VlIHRoZQotbWVtb3J5IHJlY2xhaW1lZC4gVG8g
c29sdmUgdGhpcyBwcm9ibGVtLCB5b3UgY2FuCi0KLTEuICB0cnkgbm90IHRvIGZyZWUgbWVtb3J5
IGluIGEgZGVhdGggdGVzdDsKLTIuICBmcmVlIHRoZSBtZW1vcnkgYWdhaW4gaW4gdGhlIHBhcmVu
dCBwcm9jZXNzOyBvcgotMy4gIGRvIG5vdCB1c2UgdGhlIGhlYXAgY2hlY2tlciBpbiB5b3VyIHBy
b2dyYW0uCi0KLUR1ZSB0byBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHlvdSBjYW5ub3QgcGxh
Y2UgbXVsdGlwbGUgZGVhdGggdGVzdCBhc3NlcnRpb25zCi1vbiB0aGUgc2FtZSBsaW5lOyBvdGhl
cndpc2UsIGNvbXBpbGF0aW9uIHdpbGwgZmFpbCB3aXRoIGFuIHVub2J2aW91cyBlcnJvcgotbWVz
c2FnZS4KLQotRGVzcGl0ZSB0aGUgaW1wcm92ZWQgdGhyZWFkIHNhZmV0eSBhZmZvcmRlZCBieSB0
aGUgInRocmVhZHNhZmUiIHN0eWxlIG9mIGRlYXRoCi10ZXN0LCB0aHJlYWQgcHJvYmxlbXMgc3Vj
aCBhcyBkZWFkbG9jayBhcmUgc3RpbGwgcG9zc2libGUgaW4gdGhlIHByZXNlbmNlIG9mCi1oYW5k
bGVycyByZWdpc3RlcmVkIHdpdGggYHB0aHJlYWRfYXRmb3JrKDMpYC4KLQotCi0jIyBVc2luZyBB
c3NlcnRpb25zIGluIFN1Yi1yb3V0aW5lcwotCi0jIyMgQWRkaW5nIFRyYWNlcyB0byBBc3NlcnRp
b25zCi0KLUlmIGEgdGVzdCBzdWItcm91dGluZSBpcyBjYWxsZWQgZnJvbSBzZXZlcmFsIHBsYWNl
cywgd2hlbiBhbiBhc3NlcnRpb24gaW5zaWRlIGl0Ci1mYWlscywgaXQgY2FuIGJlIGhhcmQgdG8g
dGVsbCB3aGljaCBpbnZvY2F0aW9uIG9mIHRoZSBzdWItcm91dGluZSB0aGUgZmFpbHVyZSBpcwot
ZnJvbS4gCi1Zb3UgY2FuIGFsbGV2aWF0ZSB0aGlzIHByb2JsZW0gdXNpbmcgZXh0cmEgbG9nZ2lu
ZyBvciBjdXN0b20gZmFpbHVyZSBtZXNzYWdlcywKLWJ1dCB0aGF0IHVzdWFsbHkgY2x1dHRlcnMg
dXAgeW91ciB0ZXN0cy4gQSBiZXR0ZXIgc29sdXRpb24gaXMgdG8gdXNlIHRoZQotYFNDT1BFRF9U
UkFDRWAgbWFjcm8gb3IgdGhlIGBTY29wZWRUcmFjZWAgdXRpbGl0eToKLQotYGBgYysrCi1TQ09Q
RURfVFJBQ0UobWVzc2FnZSk7Ci1TY29wZWRUcmFjZSB0cmFjZSgiZmlsZV9wYXRoIiwgbGluZV9u
dW1iZXIsIG1lc3NhZ2UpOwotYGBgCi0KLXdoZXJlIGBtZXNzYWdlYCBjYW4gYmUgYW55dGhpbmcg
c3RyZWFtYWJsZSB0byBgc3RkOjpvc3RyZWFtYC4gYFNDT1BFRF9UUkFDRWAKLW1hY3JvIHdpbGwg
Y2F1c2UgdGhlIGN1cnJlbnQgZmlsZSBuYW1lLCBsaW5lIG51bWJlciwgYW5kIHRoZSBnaXZlbiBt
ZXNzYWdlIHRvIGJlCi1hZGRlZCBpbiBldmVyeSBmYWlsdXJlIG1lc3NhZ2UuIGBTY29wZWRUcmFj
ZWAgYWNjZXB0cyBleHBsaWNpdCBmaWxlIG5hbWUgYW5kCi1saW5lIG51bWJlciBpbiBhcmd1bWVu
dHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3Igd3JpdGluZyB0ZXN0IGhlbHBlcnMuIFRoZSBlZmZlY3QK
LXdpbGwgYmUgdW5kb25lIHdoZW4gdGhlIGNvbnRyb2wgbGVhdmVzIHRoZSBjdXJyZW50IGxleGlj
YWwgc2NvcGUuCi0KLUZvciBleGFtcGxlLAotCi1gYGBjKysKLTEwOiB2b2lkIFN1YjEoaW50IG4p
IHsKLTExOiAgIEVYUEVDVF9FUSgxLCBCYXIobikpOwotMTI6ICAgRVhQRUNUX0VRKDIsIEJhcihu
ICsgMSkpOwotMTM6IH0KLTE0OgotMTU6IFRFU1QoRm9vVGVzdCwgQmFyKSB7Ci0xNjogICB7Ci0x
NzogICAgIFNDT1BFRF9UUkFDRSgiQSIpOyAgLy8gVGhpcyB0cmFjZSBwb2ludCB3aWxsIGJlIGlu
Y2x1ZGVkIGluCi0xODogICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlcnkgZmFpbHVyZSBp
biB0aGlzIHNjb3BlLgotMTk6ICAgICBTdWIxKDEpOwotMjA6ICAgfQotMjE6ICAgLy8gTm93IGl0
IHdvbid0LgotMjI6ICAgU3ViMSg5KTsKLTIzOiB9Ci1gYGAKLQotY291bGQgcmVzdWx0IGluIG1l
c3NhZ2VzIGxpa2UgdGhlc2U6Ci0KLWBgYG5vbmUKLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTE6IEZh
aWx1cmUKLVZhbHVlIG9mOiBCYXIobikKLUV4cGVjdGVkOiAxCi0gIEFjdHVhbDogMgotICAgVHJh
Y2U6Ci1wYXRoL3RvL2Zvb190ZXN0LmNjOjE3OiBBCi0KLXBhdGgvdG8vZm9vX3Rlc3QuY2M6MTI6
IEZhaWx1cmUKLVZhbHVlIG9mOiBCYXIobiArIDEpCi1FeHBlY3RlZDogMgotICBBY3R1YWw6IDMK
LWBgYAotCi1XaXRob3V0IHRoZSB0cmFjZSwgaXQgd291bGQndmUgYmVlbiBkaWZmaWN1bHQgdG8g
a25vdyB3aGljaCBpbnZvY2F0aW9uIG9mCi1gU3ViMSgpYCB0aGUgdHdvIGZhaWx1cmVzIGNvbWUg
ZnJvbSByZXNwZWN0aXZlbHkuIChZb3UgY291bGQgYWRkCi0KLWFuIGV4dHJhIG1lc3NhZ2UgdG8g
ZWFjaCBhc3NlcnRpb24gaW4gYFN1YjEoKWAgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIGBuYCwg
YnV0Ci10aGF0J3MgdGVkaW91cy4pCi0KLVNvbWUgdGlwcyBvbiB1c2luZyBgU0NPUEVEX1RSQUNF
YDoKLQotMS4gIFdpdGggYSBzdWl0YWJsZSBtZXNzYWdlLCBpdCdzIG9mdGVuIGVub3VnaCB0byB1
c2UgYFNDT1BFRF9UUkFDRWAgYXQgdGhlCi0gICAgYmVnaW5uaW5nIG9mIGEgc3ViLXJvdXRpbmUs
IGluc3RlYWQgb2YgYXQgZWFjaCBjYWxsIHNpdGUuCi0yLiAgV2hlbiBjYWxsaW5nIHN1Yi1yb3V0
aW5lcyBpbnNpZGUgYSBsb29wLCBtYWtlIHRoZSBsb29wIGl0ZXJhdG9yIHBhcnQgb2YgdGhlCi0g
ICAgbWVzc2FnZSBpbiBgU0NPUEVEX1RSQUNFYCBzdWNoIHRoYXQgeW91IGNhbiBrbm93IHdoaWNo
IGl0ZXJhdGlvbiB0aGUgZmFpbHVyZQotICAgIGlzIGZyb20uCi0zLiAgU29tZXRpbWVzIHRoZSBs
aW5lIG51bWJlciBvZiB0aGUgdHJhY2UgcG9pbnQgaXMgZW5vdWdoIGZvciBpZGVudGlmeWluZyB0
aGUKLSAgICBwYXJ0aWN1bGFyIGludm9jYXRpb24gb2YgYSBzdWItcm91dGluZS4gSW4gdGhpcyBj
YXNlLCB5b3UgZG9uJ3QgaGF2ZSB0bwotICAgIGNob29zZSBhIHVuaXF1ZSBtZXNzYWdlIGZvciBg
U0NPUEVEX1RSQUNFYC4gWW91IGNhbiBzaW1wbHkgdXNlIGAiImAuCi00LiAgWW91IGNhbiB1c2Ug
YFNDT1BFRF9UUkFDRWAgaW4gYW4gaW5uZXIgc2NvcGUgd2hlbiB0aGVyZSBpcyBvbmUgaW4gdGhl
IG91dGVyCi0gICAgc2NvcGUuIEluIHRoaXMgY2FzZSwgYWxsIGFjdGl2ZSB0cmFjZSBwb2ludHMg
d2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZmFpbHVyZQotICAgIG1lc3NhZ2VzLCBpbiByZXZlcnNl
IG9yZGVyIHRoZXkgYXJlIGVuY291bnRlcmVkLgotNS4gIFRoZSB0cmFjZSBkdW1wIGlzIGNsaWNr
YWJsZSBpbiBFbWFjcyAtIGhpdCBgcmV0dXJuYCBvbiBhIGxpbmUgbnVtYmVyIGFuZAotICAgIHlv
dSdsbCBiZSB0YWtlbiB0byB0aGF0IGxpbmUgaW4gdGhlIHNvdXJjZSBmaWxlIQotCi0qKkF2YWls
YWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgUHJvcGFnYXRpbmcgRmF0YWwg
RmFpbHVyZXMKLQotQSBjb21tb24gcGl0ZmFsbCB3aGVuIHVzaW5nIGBBU1NFUlRfKmAgYW5kIGBG
QUlMKmAgaXMgbm90IHVuZGVyc3RhbmRpbmcgdGhhdAotd2hlbiB0aGV5IGZhaWwgdGhleSBvbmx5
IGFib3J0IHRoZSBfY3VycmVudCBmdW5jdGlvbl8sIG5vdCB0aGUgZW50aXJlIHRlc3QuIEZvcgot
ZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0ZXN0IHdpbGwgc2VnZmF1bHQ6Ci0KLWBgYGMrKwotdm9p
ZCBTdWJyb3V0aW5lKCkgewotICAvLyBHZW5lcmF0ZXMgYSBmYXRhbCBmYWlsdXJlIGFuZCBhYm9y
dHMgdGhlIGN1cnJlbnQgZnVuY3Rpb24uCi0gIEFTU0VSVF9FUSgxLCAyKTsKLQotICAvLyBUaGUg
Zm9sbG93aW5nIHdvbid0IGJlIGV4ZWN1dGVkLgotICAuLi4KLX0KLQotVEVTVChGb29UZXN0LCBC
YXIpIHsKLSAgU3Vicm91dGluZSgpOyAgLy8gVGhlIGludGVuZGVkIGJlaGF2aW9yIGlzIGZvciB0
aGUgZmF0YWwgZmFpbHVyZQotICAgICAgICAgICAgICAgICAvLyBpbiBTdWJyb3V0aW5lKCkgdG8g
YWJvcnQgdGhlIGVudGlyZSB0ZXN0LgotCi0gIC8vIFRoZSBhY3R1YWwgYmVoYXZpb3I6IHRoZSBm
dW5jdGlvbiBnb2VzIG9uIGFmdGVyIFN1YnJvdXRpbmUoKSByZXR1cm5zLgotICBpbnQqIHAgPSBO
VUxMOwotICAqcCA9IDM7ICAvLyBTZWdmYXVsdCEKLX0KLWBgYAotCi1UbyBhbGxldmlhdGUgdGhp
cywgZ29vZ2xldGVzdCBwcm92aWRlcyB0aHJlZSBkaWZmZXJlbnQgc29sdXRpb25zLiBZb3UgY291
bGQgdXNlCi1laXRoZXIgZXhjZXB0aW9ucywgdGhlIGAoQVNTRVJUfEVYUEVDVClfTk9fRkFUQUxf
RkFJTFVSRWAgYXNzZXJ0aW9ucyBvciB0aGUKLWBIYXNGYXRhbEZhaWx1cmUoKWAgZnVuY3Rpb24u
IFRoZXkgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZm9sbG93aW5nIHR3bwotc3Vic2VjdGlvbnMuCi0K
LSMjIyMgQXNzZXJ0aW5nIG9uIFN1YnJvdXRpbmVzIHdpdGggYW4gZXhjZXB0aW9uCi0KLVRoZSBm
b2xsb3dpbmcgY29kZSBjYW4gdHVybiBBU1NFUlQtZmFpbHVyZSBpbnRvIGFuIGV4Y2VwdGlvbjoK
LQotYGBgYysrCi1jbGFzcyBUaHJvd0xpc3RlbmVyIDogcHVibGljIHRlc3Rpbmc6OkVtcHR5VGVz
dEV2ZW50TGlzdGVuZXIgewotICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgdGVzdGluZzo6
VGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGUgewotICAgIGlmIChyZXN1bHQudHlwZSgp
ID09IHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlKSB7Ci0gICAgICB0aHJv
dyB0ZXN0aW5nOjpBc3NlcnRpb25FeGNlcHRpb24ocmVzdWx0KTsKLSAgICB9Ci0gIH0KLX07Ci1p
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLSAgLi4uCi0gIHRlc3Rpbmc6OlVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5BcHBlbmQobmV3IFRocm93TGlzdGVuZXIp
OwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotfQotYGBgCi0KLVRoaXMgbGlzdGVuZXIgc2hv
dWxkIGJlIGFkZGVkIGFmdGVyIG90aGVyIGxpc3RlbmVycyBpZiB5b3UgaGF2ZSBhbnksIG90aGVy
d2lzZQotdGhleSB3b24ndCBzZWUgZmFpbGVkIGBPblRlc3RQYXJ0UmVzdWx0YC4KLQotIyMjIyBB
c3NlcnRpbmcgb24gU3Vicm91dGluZXMKLQotQXMgc2hvd24gYWJvdmUsIGlmIHlvdXIgdGVzdCBj
YWxscyBhIHN1YnJvdXRpbmUgdGhhdCBoYXMgYW4gYEFTU0VSVF8qYCBmYWlsdXJlCi1pbiBpdCwg
dGhlIHRlc3Qgd2lsbCBjb250aW51ZSBhZnRlciB0aGUgc3Vicm91dGluZSByZXR1cm5zLiBUaGlz
IG1heSBub3QgYmUgd2hhdAoteW91IHdhbnQuCi0KLU9mdGVuIHBlb3BsZSB3YW50IGZhdGFsIGZh
aWx1cmVzIHRvIHByb3BhZ2F0ZSBsaWtlIGV4Y2VwdGlvbnMuIEZvciB0aGF0Ci1nb29nbGV0ZXN0
IG9mZmVycyB0aGUgZm9sbG93aW5nIG1hY3JvczoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAg
ICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgfCBW
ZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLQotYEFTU0VSVF9OT19GQVRB
TF9GQUlMVVJFKHN0YXRlbWVudCk7YCB8IGBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShzdGF0ZW1l
bnQpO2AgfCBgc3RhdGVtZW50YCBkb2Vzbid0IGdlbmVyYXRlIGFueSBuZXcgZmF0YWwgZmFpbHVy
ZXMgaW4gdGhlIGN1cnJlbnQgdGhyZWFkLgotCi1Pbmx5IGZhaWx1cmVzIGluIHRoZSB0aHJlYWQg
dGhhdCBleGVjdXRlcyB0aGUgYXNzZXJ0aW9uIGFyZSBjaGVja2VkIHRvIGRldGVybWluZQotdGhl
IHJlc3VsdCBvZiB0aGlzIHR5cGUgb2YgYXNzZXJ0aW9ucy4gSWYgYHN0YXRlbWVudGAgY3JlYXRl
cyBuZXcgdGhyZWFkcywKLWZhaWx1cmVzIGluIHRoZXNlIHRocmVhZHMgYXJlIGlnbm9yZWQuCi0K
LUV4YW1wbGVzOgotCi1gYGBjKysKLUFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKEZvbygpKTsKLQot
aW50IGk7Ci1FWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRSh7Ci0gIGkgPSBCYXIoKTsKLX0pOwotYGBg
Ci0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuIEFzc2VydGlvbnMgZnJv
bSBtdWx0aXBsZSB0aHJlYWRzIGFyZQotY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93
cy4KLQotIyMjIyBDaGVja2luZyBmb3IgRmFpbHVyZXMgaW4gdGhlIEN1cnJlbnQgVGVzdAotCi1g
SGFzRmF0YWxGYWlsdXJlKClgIGluIHRoZSBgOjp0ZXN0aW5nOjpUZXN0YCBjbGFzcyByZXR1cm5z
IGB0cnVlYCBpZiBhbgotYXNzZXJ0aW9uIGluIHRoZSBjdXJyZW50IHRlc3QgaGFzIHN1ZmZlcmVk
IGEgZmF0YWwgZmFpbHVyZS4gVGhpcyBhbGxvd3MKLWZ1bmN0aW9ucyB0byBjYXRjaCBmYXRhbCBm
YWlsdXJlcyBpbiBhIHN1Yi1yb3V0aW5lIGFuZCByZXR1cm4gZWFybHkuCi0KLWBgYGMrKwotY2xh
c3MgVGVzdCB7Ci0gcHVibGljOgotICAuLi4KLSAgc3RhdGljIGJvb2wgSGFzRmF0YWxGYWlsdXJl
KCk7Ci19OwotYGBgCi0KLVRoZSB0eXBpY2FsIHVzYWdlLCB3aGljaCBiYXNpY2FsbHkgc2ltdWxh
dGVzIHRoZSBiZWhhdmlvciBvZiBhIHRocm93biBleGNlcHRpb24sCi1pczoKLQotYGBgYysrCi1U
RVNUKEZvb1Rlc3QsIEJhcikgewotICBTdWJyb3V0aW5lKCk7Ci0gIC8vIEFib3J0cyBpZiBTdWJy
b3V0aW5lKCkgaGFkIGEgZmF0YWwgZmFpbHVyZS4KLSAgaWYgKEhhc0ZhdGFsRmFpbHVyZSgpKSBy
ZXR1cm47Ci0KLSAgLy8gVGhlIGZvbGxvd2luZyB3b24ndCBiZSBleGVjdXRlZC4KLSAgLi4uCi19
Ci1gYGAKLQotSWYgYEhhc0ZhdGFsRmFpbHVyZSgpYCBpcyB1c2VkIG91dHNpZGUgb2YgYFRFU1Qo
KWAgLCBgVEVTVF9GKClgICwgb3IgYSB0ZXN0Ci1maXh0dXJlLCB5b3UgbXVzdCBhZGQgdGhlIGA6
OnRlc3Rpbmc6OlRlc3Q6OmAgcHJlZml4LCBhcyBpbjoKLQotYGBgYysrCi1pZiAoOjp0ZXN0aW5n
OjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgcmV0dXJuOwotYGBgCi0KLVNpbWlsYXJseSwgYEhh
c05vbmZhdGFsRmFpbHVyZSgpYCByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB0ZXN0IGhh
cyBhdAotbGVhc3Qgb25lIG5vbi1mYXRhbCBmYWlsdXJlLCBhbmQgYEhhc0ZhaWx1cmUoKWAgcmV0
dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQKLXRlc3QgaGFzIGF0IGxlYXN0IG9uZSBmYWlsdXJl
IG9mIGVpdGhlciBraW5kLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyBMb2dnaW5nIEFkZGl0aW9uYWwgSW5mb3JtYXRpb24KLQotSW4geW91ciB0ZXN0IGNv
ZGUsIHlvdSBjYW4gY2FsbCBgUmVjb3JkUHJvcGVydHkoImtleSIsIHZhbHVlKWAgdG8gbG9nIGFk
ZGl0aW9uYWwKLWluZm9ybWF0aW9uLCB3aGVyZSBgdmFsdWVgIGNhbiBiZSBlaXRoZXIgYSBzdHJp
bmcgb3IgYW4gYGludGAuIFRoZSAqbGFzdCogdmFsdWUKLXJlY29yZGVkIGZvciBhIGtleSB3aWxs
IGJlIGVtaXR0ZWQgdG8gdGhlIFtYTUwgb3V0cHV0XSgjZ2VuZXJhdGluZy1hbi14bWwtcmVwb3J0
KSBpZiB5b3UKLXNwZWNpZnkgb25lLiBGb3IgZXhhbXBsZSwgdGhlIHRlc3QKLQotYGBgYysrCi1U
RVNUX0YoV2lkZ2V0VXNhZ2VUZXN0LCBNaW5BbmRNYXhXaWRnZXRzKSB7Ci0gIFJlY29yZFByb3Bl
cnR5KCJNYXhpbXVtV2lkZ2V0cyIsIENvbXB1dGVNYXhVc2FnZSgpKTsKLSAgUmVjb3JkUHJvcGVy
dHkoIk1pbmltdW1XaWRnZXRzIiwgQ29tcHV0ZU1pblVzYWdlKCkpOwotfQotYGBgCi0KLXdpbGwg
b3V0cHV0IFhNTCBsaWtlIHRoaXM6Ci0KLWBgYHhtbAotICAuLi4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iTWluQW5kTWF4V2lkZ2V0cyIgc3RhdHVzPSJydW4iIHRpbWU9IjAuMDA2IiBjbGFzc25hbWU9
IldpZGdldFVzYWdlVGVzdCIgTWF4aW11bVdpZGdldHM9IjEyIiBNaW5pbXVtV2lkZ2V0cz0iOSIg
Lz4KLSAgLi4uCi1gYGAKLQotPiBOT1RFOgotPgotPiAqICAgYFJlY29yZFByb3BlcnR5KClgIGlz
IGEgc3RhdGljIG1lbWJlciBvZiB0aGUgYFRlc3RgIGNsYXNzLiBUaGVyZWZvcmUgaXQKLT4gICAg
IG5lZWRzIHRvIGJlIHByZWZpeGVkIHdpdGggYDo6dGVzdGluZzo6VGVzdDo6YCBpZiB1c2VkIG91
dHNpZGUgb2YgdGhlCi0+ICAgICBgVEVTVGAgYm9keSBhbmQgdGhlIHRlc3QgZml4dHVyZSBjbGFz
cy4KLT4gKiAgIGAqa2V5KmAgbXVzdCBiZSBhIHZhbGlkIFhNTCBhdHRyaWJ1dGUgbmFtZSwgYW5k
IGNhbm5vdCBjb25mbGljdCB3aXRoIHRoZQotPiAgICAgb25lcyBhbHJlYWR5IHVzZWQgYnkgZ29v
Z2xldGVzdCAoYG5hbWVgLCBgc3RhdHVzYCwgYHRpbWVgLCBgY2xhc3NuYW1lYCwKLT4gICAgIGB0
eXBlX3BhcmFtYCwgYW5kIGB2YWx1ZV9wYXJhbWApLgotPiAqICAgQ2FsbGluZyBgUmVjb3JkUHJv
cGVydHkoKWAgb3V0c2lkZSBvZiB0aGUgbGlmZXNwYW4gb2YgYSB0ZXN0IGlzIGFsbG93ZWQuCi0+
ICAgICBJZiBpdCdzIGNhbGxlZCBvdXRzaWRlIG9mIGEgdGVzdCBidXQgYmV0d2VlbiBhIHRlc3Qg
Y2FzZSdzCi0+ICAgICBgU2V0VXBUZXN0Q2FzZSgpYCBhbmQgYFRlYXJEb3duVGVzdENhc2UoKWAg
bWV0aG9kcywgaXQgd2lsbCBiZSBhdHRyaWJ1dGVkCi0+ICAgICB0byB0aGUgWE1MIGVsZW1lbnQg
Zm9yIHRoZSB0ZXN0IGNhc2UuIElmIGl0J3MgY2FsbGVkIG91dHNpZGUgb2YgYWxsIHRlc3QKLT4g
ICAgIGNhc2VzIChlLmcuIGluIGEgdGVzdCBlbnZpcm9ubWVudCksIGl0IHdpbGwgYmUgYXR0cmli
dXRlZCB0byB0aGUgdG9wLWxldmVsCi0+ICAgICBYTUwgZWxlbWVudC4KLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgU2hhcmluZyBSZXNvdXJjZXMgQmV0d2Vl
biBUZXN0cyBpbiB0aGUgU2FtZSBUZXN0IENhc2UKLQotZ29vZ2xldGVzdCBjcmVhdGVzIGEgbmV3
IHRlc3QgZml4dHVyZSBvYmplY3QgZm9yIGVhY2ggdGVzdCBpbiBvcmRlciB0byBtYWtlCi10ZXN0
cyBpbmRlcGVuZGVudCBhbmQgZWFzaWVyIHRvIGRlYnVnLiBIb3dldmVyLCBzb21ldGltZXMgdGVz
dHMgdXNlIHJlc291cmNlcwotdGhhdCBhcmUgZXhwZW5zaXZlIHRvIHNldCB1cCwgbWFraW5nIHRo
ZSBvbmUtY29weS1wZXItdGVzdCBtb2RlbCBwcm9oaWJpdGl2ZWx5Ci1leHBlbnNpdmUuCi0KLUlm
IHRoZSB0ZXN0cyBkb24ndCBjaGFuZ2UgdGhlIHJlc291cmNlLCB0aGVyZSdzIG5vIGhhcm0gaW4g
dGhlaXIgc2hhcmluZyBhCi1zaW5nbGUgcmVzb3VyY2UgY29weS4gU28sIGluIGFkZGl0aW9uIHRv
IHBlci10ZXN0IHNldC11cC90ZWFyLWRvd24sIGdvb2dsZXRlc3QKLWFsc28gc3VwcG9ydHMgcGVy
LXRlc3QtY2FzZSBzZXQtdXAvdGVhci1kb3duLiBUbyB1c2UgaXQ6Ci0KLTEuICBJbiB5b3VyIHRl
c3QgZml4dHVyZSBjbGFzcyAoc2F5IGBGb29UZXN0YCApLCBkZWNsYXJlIGFzIGBzdGF0aWNgIHNv
bWUgbWVtYmVyCi0gICAgdmFyaWFibGVzIHRvIGhvbGQgdGhlIHNoYXJlZCByZXNvdXJjZXMuCi0x
LiAgT3V0c2lkZSB5b3VyIHRlc3QgZml4dHVyZSBjbGFzcyAodHlwaWNhbGx5IGp1c3QgYmVsb3cg
aXQpLCBkZWZpbmUgdGhvc2UKLSAgICBtZW1iZXIgdmFyaWFibGVzLCBvcHRpb25hbGx5IGdpdmlu
ZyB0aGVtIGluaXRpYWwgdmFsdWVzLgotMS4gIEluIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBjbGFz
cywgZGVmaW5lIGEgYHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKWAKLSAgICBmdW5jdGlvbiAo
cmVtZW1iZXIgbm90IHRvIHNwZWxsIGl0IGFzICoqYFNldHVwVGVzdENhc2VgKiogd2l0aCBhIHNt
YWxsIGB1YCEpCi0gICAgdG8gc2V0IHVwIHRoZSBzaGFyZWQgcmVzb3VyY2VzIGFuZCBhIGBzdGF0
aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKClgCi0gICAgZnVuY3Rpb24gdG8gdGVhciB0aGVtIGRv
d24uCi0KLVRoYXQncyBpdCEgZ29vZ2xldGVzdCBhdXRvbWF0aWNhbGx5IGNhbGxzIGBTZXRVcFRl
c3RDYXNlKClgIGJlZm9yZSBydW5uaW5nIHRoZQotKmZpcnN0IHRlc3QqIGluIHRoZSBgRm9vVGVz
dGAgdGVzdCBjYXNlIChpLmUuIGJlZm9yZSBjcmVhdGluZyB0aGUgZmlyc3QKLWBGb29UZXN0YCBv
YmplY3QpLCBhbmQgY2FsbHMgYFRlYXJEb3duVGVzdENhc2UoKWAgYWZ0ZXIgcnVubmluZyB0aGUg
Kmxhc3QgdGVzdCoKLWluIGl0IChpLmUuIGFmdGVyIGRlbGV0aW5nIHRoZSBsYXN0IGBGb29UZXN0
YCBvYmplY3QpLiBJbiBiZXR3ZWVuLCB0aGUgdGVzdHMgY2FuCi11c2UgdGhlIHNoYXJlZCByZXNv
dXJjZXMuCi0KLVJlbWVtYmVyIHRoYXQgdGhlIHRlc3Qgb3JkZXIgaXMgdW5kZWZpbmVkLCBzbyB5
b3VyIGNvZGUgY2FuJ3QgZGVwZW5kIG9uIGEgdGVzdAotcHJlY2VkaW5nIG9yIGZvbGxvd2luZyBh
bm90aGVyLiBBbHNvLCB0aGUgdGVzdHMgbXVzdCBlaXRoZXIgbm90IG1vZGlmeSB0aGUgc3RhdGUK
LW9mIGFueSBzaGFyZWQgcmVzb3VyY2UsIG9yLCBpZiB0aGV5IGRvIG1vZGlmeSB0aGUgc3RhdGUs
IHRoZXkgbXVzdCByZXN0b3JlIHRoZQotc3RhdGUgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIGJlZm9y
ZSBwYXNzaW5nIGNvbnRyb2wgdG8gdGhlIG5leHQgdGVzdC4KLQotSGVyZSdzIGFuIGV4YW1wbGUg
b2YgcGVyLXRlc3QtY2FzZSBzZXQtdXAgYW5kIHRlYXItZG93bjoKLQotYGBgYysrCi1jbGFzcyBG
b29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICAvLyBQZXIt
dGVzdC1jYXNlIHNldC11cC4KLSAgLy8gQ2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0
aGlzIHRlc3QgY2FzZS4KLSAgLy8gQ2FuIGJlIG9taXR0ZWQgaWYgbm90IG5lZWRlZC4KLSAgc3Rh
dGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gbmV3IC4u
LjsKLSAgfQotCi0gIC8vIFBlci10ZXN0LWNhc2UgdGVhci1kb3duLgotICAvLyBDYWxsZWQgYWZ0
ZXIgdGhlIGxhc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgLy8gQ2FuIGJlIG9taXR0ZWQg
aWYgbm90IG5lZWRlZC4KLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKLSAgICBk
ZWxldGUgc2hhcmVkX3Jlc291cmNlXzsKLSAgICBzaGFyZWRfcmVzb3VyY2VfID0gTlVMTDsKLSAg
fQotCi0gIC8vIFlvdSBjYW4gZGVmaW5lIHBlci10ZXN0IHNldC11cCBsb2dpYyBhcyB1c3VhbC4K
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeyAuLi4gfQotCi0gIC8vIFlvdSBjYW4gZGVmaW5lIHBl
ci10ZXN0IHRlYXItZG93biBsb2dpYyBhcyB1c3VhbC4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkgeyAuLi4gfQotCi0gIC8vIFNvbWUgZXhwZW5zaXZlIHJlc291cmNlIHNoYXJlZCBieSBhbGwg
dGVzdHMuCi0gIHN0YXRpYyBUKiBzaGFyZWRfcmVzb3VyY2VfOwotfTsKLQotVCogRm9vVGVzdDo6
c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Ci0KLVRFU1RfRihGb29UZXN0LCBUZXN0MSkgewotICAu
Li4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3VyY2VfIGhlcmUgLi4uCi19Ci0KLVRFU1Rf
RihGb29UZXN0LCBUZXN0MikgewotICAuLi4geW91IGNhbiByZWZlciB0byBzaGFyZWRfcmVzb3Vy
Y2VfIGhlcmUgLi4uCi19Ci1gYGAKLQotTk9URTogVGhvdWdoIHRoZSBhYm92ZSBjb2RlIGRlY2xh
cmVzIGBTZXRVcFRlc3RDYXNlKClgIHByb3RlY3RlZCwgaXQgbWF5Ci1zb21ldGltZXMgYmUgbmVj
ZXNzYXJ5IHRvIGRlY2xhcmUgaXQgcHVibGljLCBzdWNoIGFzIHdoZW4gdXNpbmcgaXQgd2l0aAot
YFRFU1RfUGAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMj
IEdsb2JhbCBTZXQtVXAgYW5kIFRlYXItRG93bgotCi1KdXN0IGFzIHlvdSBjYW4gZG8gc2V0LXVw
IGFuZCB0ZWFyLWRvd24gYXQgdGhlIHRlc3QgbGV2ZWwgYW5kIHRoZSB0ZXN0IGNhc2UKLWxldmVs
LCB5b3UgY2FuIGFsc28gZG8gaXQgYXQgdGhlIHRlc3QgcHJvZ3JhbSBsZXZlbC4gSGVyZSdzIGhv
dy4KLQotRmlyc3QsIHlvdSBzdWJjbGFzcyB0aGUgYDo6dGVzdGluZzo6RW52aXJvbm1lbnRgIGNs
YXNzIHRvIGRlZmluZSBhIHRlc3QKLWVudmlyb25tZW50LCB3aGljaCBrbm93cyBob3cgdG8gc2V0
LXVwIGFuZCB0ZWFyLWRvd246Ci0KLWBgYGMrKwotY2xhc3MgRW52aXJvbm1lbnQgewotIHB1Ymxp
YzoKLSAgdmlydHVhbCB+RW52aXJvbm1lbnQoKSB7fQotCi0gIC8vIE92ZXJyaWRlIHRoaXMgdG8g
ZGVmaW5lIGhvdyB0byBzZXQgdXAgdGhlIGVudmlyb25tZW50LgotICB2aXJ0dWFsIHZvaWQgU2V0
VXAoKSB7fQotCi0gIC8vIE92ZXJyaWRlIHRoaXMgdG8gZGVmaW5lIGhvdyB0byB0ZWFyIGRvd24g
dGhlIGVudmlyb25tZW50LgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQotfTsKLWBgYAot
Ci1UaGVuLCB5b3UgcmVnaXN0ZXIgYW4gaW5zdGFuY2Ugb2YgeW91ciBlbnZpcm9ubWVudCBjbGFz
cyB3aXRoIGdvb2dsZXRlc3QgYnkKLWNhbGxpbmcgdGhlIGA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRl
c3RFbnZpcm9ubWVudCgpYCBmdW5jdGlvbjoKLQotYGBgYysrCi1FbnZpcm9ubWVudCogQWRkR2xv
YmFsVGVzdEVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpOwotYGBgCi0KLU5vdywgd2hlbiBg
UlVOX0FMTF9URVNUUygpYCBpcyBjYWxsZWQsIGl0IGZpcnN0IGNhbGxzIHRoZSBgU2V0VXAoKWAg
bWV0aG9kIG9mCi10aGUgZW52aXJvbm1lbnQgb2JqZWN0LCB0aGVuIHJ1bnMgdGhlIHRlc3RzIGlm
IHRoZXJlIHdhcyBubyBmYXRhbCBmYWlsdXJlcywgYW5kCi1maW5hbGx5IGNhbGxzIGBUZWFyRG93
bigpYCBvZiB0aGUgZW52aXJvbm1lbnQgb2JqZWN0LgotCi1JdCdzIE9LIHRvIHJlZ2lzdGVyIG11
bHRpcGxlIGVudmlyb25tZW50IG9iamVjdHMuIEluIHRoaXMgY2FzZSwgdGhlaXIgYFNldFVwKClg
Ci13aWxsIGJlIGNhbGxlZCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgcmVnaXN0ZXJlZCwgYW5kIHRo
ZWlyIGBUZWFyRG93bigpYCB3aWxsIGJlCi1jYWxsZWQgaW4gdGhlIHJldmVyc2Ugb3JkZXIuCi0K
LU5vdGUgdGhhdCBnb29nbGV0ZXN0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgcmVnaXN0ZXJlZCBl
bnZpcm9ubWVudCBvYmplY3RzLgotVGhlcmVmb3JlICoqZG8gbm90IGRlbGV0ZSB0aGVtKiogYnkg
eW91cnNlbGYuCi0KLVlvdSBzaG91bGQgY2FsbCBgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KClg
IGJlZm9yZSBgUlVOX0FMTF9URVNUUygpYCBpcyBjYWxsZWQsCi1wcm9iYWJseSBpbiBgbWFpbigp
YC4gSWYgeW91IHVzZSBgZ3Rlc3RfbWFpbmAsIHlvdSBuZWVkIHRvIGNhbGwgdGhpcyBiZWZvcmUK
LWBtYWluKClgIHN0YXJ0cyBmb3IgaXQgdG8gdGFrZSBlZmZlY3QuIE9uZSB3YXkgdG8gZG8gdGhp
cyBpcyB0byBkZWZpbmUgYSBnbG9iYWwKLXZhcmlhYmxlIGxpa2UgdGhpczoKLQotYGBgYysrCi06
OnRlc3Rpbmc6OkVudmlyb25tZW50KiBjb25zdCBmb29fZW52ID0KLSAgICA6OnRlc3Rpbmc6OkFk
ZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgRm9vRW52aXJvbm1lbnQpOwotYGBgCi0KLUhvd2V2
ZXIsIHdlIHN0cm9uZ2x5IHJlY29tbWVuZCB5b3UgdG8gd3JpdGUgeW91ciBvd24gYG1haW4oKWAg
YW5kIGNhbGwKLWBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKWAgdGhlcmUsIGFzIHJlbHlpbmcg
b24gaW5pdGlhbGl6YXRpb24gb2YgZ2xvYmFsCi12YXJpYWJsZXMgbWFrZXMgdGhlIGNvZGUgaGFy
ZGVyIHRvIHJlYWQgYW5kIG1heSBjYXVzZSBwcm9ibGVtcyB3aGVuIHlvdSByZWdpc3RlcgotbXVs
dGlwbGUgZW52aXJvbm1lbnRzIGZyb20gZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGFuZCB0
aGUgZW52aXJvbm1lbnRzIGhhdmUKLWRlcGVuZGVuY2llcyBhbW9uZyB0aGVtIChyZW1lbWJlciB0
aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IGd1YXJhbnRlZSB0aGUgb3JkZXIKLWluIHdoaWNoIGds
b2JhbCB2YXJpYWJsZXMgZnJvbSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdHMgYXJlIGluaXRp
YWxpemVkKS4KLQotIyMgVmFsdWUtUGFyYW1ldGVyaXplZCBUZXN0cwotCi0qVmFsdWUtcGFyYW1l
dGVyaXplZCB0ZXN0cyogYWxsb3cgeW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50
Ci1wYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUg
dGVzdC4gVGhpcyBpcyB1c2VmdWwgaW4gYQotbnVtYmVyIG9mIHNpdHVhdGlvbnMsIGZvciBleGFt
cGxlOgotCi0qICAgWW91IGhhdmUgYSBwaWVjZSBvZiBjb2RlIHdob3NlIGJlaGF2aW9yIGlzIGFm
ZmVjdGVkIGJ5IG9uZSBvciBtb3JlCi0gICAgY29tbWFuZC1saW5lIGZsYWdzLiBZb3Ugd2FudCB0
byBtYWtlIHN1cmUgeW91ciBjb2RlIHBlcmZvcm1zIGNvcnJlY3RseSBmb3IKLSAgICB2YXJpb3Vz
IHZhbHVlcyBvZiB0aG9zZSBmbGFncy4KLSogICBZb3Ugd2FudCB0byB0ZXN0IGRpZmZlcmVudCBp
bXBsZW1lbnRhdGlvbnMgb2YgYW4gT08gaW50ZXJmYWNlLgotKiAgIFlvdSB3YW50IHRvIHRlc3Qg
eW91ciBjb2RlIG92ZXIgdmFyaW91cyBpbnB1dHMgKGEuay5hLiBkYXRhLWRyaXZlbiB0ZXN0aW5n
KS4KLSAgICBUaGlzIGZlYXR1cmUgaXMgZWFzeSB0byBhYnVzZSwgc28gcGxlYXNlIGV4ZXJjaXNl
IHlvdXIgZ29vZCBzZW5zZSB3aGVuIGRvaW5nCi0gICAgaXQhCi0KLSMjIyBIb3cgdG8gV3JpdGUg
VmFsdWUtUGFyYW1ldGVyaXplZCBUZXN0cwotCi1UbyB3cml0ZSB2YWx1ZS1wYXJhbWV0ZXJpemVk
IHRlc3RzLCBmaXJzdCB5b3Ugc2hvdWxkIGRlZmluZSBhIGZpeHR1cmUgY2xhc3MuIEl0Ci1tdXN0
IGJlIGRlcml2ZWQgZnJvbSBib3RoIGA6OnRlc3Rpbmc6OlRlc3RgIGFuZAotYDo6dGVzdGluZzo6
V2l0aFBhcmFtSW50ZXJmYWNlPFQ+YCAodGhlIGxhdHRlciBpcyBhIHB1cmUgaW50ZXJmYWNlKSwg
d2hlcmUgYFRgCi1pcyB0aGUgdHlwZSBvZiB5b3VyIHBhcmFtZXRlciB2YWx1ZXMuIEZvciBjb252
ZW5pZW5jZSwgeW91IGNhbiBqdXN0IGRlcml2ZSB0aGUKLWZpeHR1cmUgY2xhc3MgZnJvbSBgOjp0
ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFQ+YCwgd2hpY2ggaXRzZWxmIGlzIGRlcml2ZWQgZnJvbQot
Ym90aCBgOjp0ZXN0aW5nOjpUZXN0YCBhbmQgYDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNl
PFQ+YC4gYFRgIGNhbiBiZSBhbnkKLWNvcHlhYmxlIHR5cGUuIElmIGl0J3MgYSByYXcgcG9pbnRl
ciwgeW91IGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlCi1saWZlc3BhbiBvZiB0aGUg
cG9pbnRlZCB2YWx1ZXMuCi0KLU5PVEU6IElmIHlvdXIgdGVzdCBmaXh0dXJlIGRlZmluZXMgYFNl
dFVwVGVzdENhc2UoKWAgb3IgYFRlYXJEb3duVGVzdENhc2UoKWAKLXRoZXkgbXVzdCBiZSBkZWNs
YXJlZCAqKnB1YmxpYyoqIHJhdGhlciB0aGFuICoqcHJvdGVjdGVkKiogaW4gb3JkZXIgdG8gdXNl
Ci1gVEVTVF9QYC4KLQotYGBgYysrCi1jbGFzcyBGb29UZXN0IDoKLSAgICBwdWJsaWMgOjp0ZXN0
aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0IGNoYXIqPiB7Ci0gIC8vIFlvdSBjYW4gaW1wbGVtZW50
IGFsbCB0aGUgdXN1YWwgZml4dHVyZSBjbGFzcyBtZW1iZXJzIGhlcmUuCi0gIC8vIFRvIGFjY2Vz
cyB0aGUgdGVzdCBwYXJhbWV0ZXIsIGNhbGwgR2V0UGFyYW0oKSBmcm9tIGNsYXNzCi0gIC8vIFRl
c3RXaXRoUGFyYW08VD4uCi19OwotCi0vLyBPciwgd2hlbiB5b3Ugd2FudCB0byBhZGQgcGFyYW1l
dGVycyB0byBhIHByZS1leGlzdGluZyBmaXh0dXJlIGNsYXNzOgotY2xhc3MgQmFzZVRlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgLi4uCi19OwotY2xhc3MgQmFyVGVzdCA6IHB1Ymxp
YyBCYXNlVGVzdCwKLSAgICAgICAgICAgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1J
bnRlcmZhY2U8Y29uc3QgY2hhcio+IHsKLSAgLi4uCi19OwotYGBgCi0KLVRoZW4sIHVzZSB0aGUg
YFRFU1RfUGAgbWFjcm8gdG8gZGVmaW5lIGFzIG1hbnkgdGVzdCBwYXR0ZXJucyB1c2luZyB0aGlz
IGZpeHR1cmUKLWFzIHlvdSB3YW50LiBUaGUgYF9QYCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJp
emVkIiBvciAicGF0dGVybiIsIHdoaWNoZXZlciB5b3UKLXByZWZlciB0byB0aGluay4KLQotYGBg
YysrCi1URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgYWNj
ZXNzIHRoZSB0ZXN0IHBhcmFtZXRlciB3aXRoIHRoZSBHZXRQYXJhbSgpIG1ldGhvZAotICAvLyBv
ZiB0aGUgVGVzdFdpdGhQYXJhbTxUPiBjbGFzczoKLSAgRVhQRUNUX1RSVUUoZm9vLkJsYWgoR2V0
UGFyYW0oKSkpOwotICAuLi4KLX0KLQotVEVTVF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFoKSB7Ci0g
IC4uLgotfQotYGBgCi0KLUZpbmFsbHksIHlvdSBjYW4gdXNlIGBJTlNUQU5USUFURV9URVNUX0NB
U0VfUGAgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QgY2FzZSB3aXRoCi1hbnkgc2V0IG9mIHBhcmFt
ZXRlcnMgeW91IHdhbnQuIGdvb2dsZXRlc3QgZGVmaW5lcyBhIG51bWJlciBvZiBmdW5jdGlvbnMg
Zm9yCi1nZW5lcmF0aW5nIHRlc3QgcGFyYW1ldGVycy4gVGhleSByZXR1cm4gd2hhdCB3ZSBjYWxs
IChzdXJwcmlzZSEpICpwYXJhbWV0ZXIKLWdlbmVyYXRvcnMqLiBIZXJlIGlzIGEgc3VtbWFyeSBv
ZiB0aGVtLCB3aGljaCBhcmUgYWxsIGluIHRoZSBgdGVzdGluZ2AKLW5hbWVzcGFjZToKLQotfCBQ
YXJhbWV0ZXIgR2VuZXJhdG9yICAgICAgICAgIHwgQmVoYXZpb3IgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYFJhbmdlKGJlZ2lu
LCBlbmQgWywgc3RlcF0pYCB8IFlpZWxkcyB2YWx1ZXMgYHtiZWdpbiwgYmVnaW4rc3RlcCwgYmVn
aW4rc3RlcCtzdGVwLCAuLi59YC4gVGhlIHZhbHVlcyBkbyBub3QgaW5jbHVkZSBgZW5kYC4gYHN0
ZXBgIGRlZmF1bHRzIHRvIDEuICAgICAgfAotfCBgVmFsdWVzKHYxLCB2MiwgLi4uLCB2TilgICAg
IHwgWWllbGRzIHZhbHVlcyBge3YxLCB2MiwgLi4uLCB2Tn1gLiAgICAgICAgICB8Ci18IGBWYWx1
ZXNJbihjb250YWluZXIpYCBhbmQgYFZhbHVlc0luKGJlZ2luLGVuZClgICAgfCBZaWVsZHMgdmFs
dWVzIGZyb20gYSBDLXN0eWxlIGFycmF5LCBhbiBTVEwtc3R5bGUgY29udGFpbmVyLCBvciBhbiBp
dGVyYXRvciByYW5nZSAgYFtiZWdpbiwgZW5kKWAuIHwKLXwgYEJvb2woKWAgICAgICAgICAgICAg
ICAgICAgICB8IFlpZWxkcyBzZXF1ZW5jZSBge2ZhbHNlLCB0cnVlfWAuICAgICAgICAgICAgfAot
fCBgQ29tYmluZShnMSwgZzIsIC4uLiwgZ04pYCAgIHwgWWllbGRzIGFsbCBjb21iaW5hdGlvbnMg
KENhcnRlc2lhbiBwcm9kdWN0KSBhcyBzdGRcOlw6dHVwbGVzIG9mIHRoZSB2YWx1ZXMgZ2VuZXJh
dGVkIGJ5IHRoZSBgTmAgZ2VuZXJhdG9ycy4gICAgICAgICAgICB8Ci0KLUZvciBtb3JlIGRldGFp
bHMsIHNlZSB0aGUgY29tbWVudHMgYXQgdGhlIGRlZmluaXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9u
cy4KLQotVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9t
IHRoZSBgRm9vVGVzdGAgdGVzdCBjYXNlIGVhY2gKLXdpdGggcGFyYW1ldGVyIHZhbHVlcyBgIm1l
ZW55ImAsIGAibWlueSJgLCBhbmQgYCJtb2UiYC4KLQotYGBgYysrCi1JTlNUQU5USUFURV9URVNU
X0NBU0VfUChJbnN0YW50aWF0aW9uTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcygibWVlbnkiLCAi
bWlueSIsICJtb2UiKSk7Ci1gYGAKLQotTk9URTogVGhlIGNvZGUgYWJvdmUgbXVzdCBiZSBwbGFj
ZWQgYXQgZ2xvYmFsIG9yIG5hbWVzcGFjZSBzY29wZSwgbm90IGF0Ci1mdW5jdGlvbiBzY29wZS4K
LQotTk9URTogRG9uJ3QgZm9yZ2V0IHRoaXMgc3RlcCEgSWYgeW91IGRvIHlvdXIgdGVzdCB3aWxs
IHNpbGVudGx5IHBhc3MsIGJ1dCBub25lCi1vZiBpdHMgY2FzZXMgd2lsbCBldmVyIHJ1biEKLQot
VG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0dGVybiAoeWVzLCB5
b3UgY2FuIGluc3RhbnRpYXRlIGl0Ci1tb3JlIHRoYW4gb25jZSksIHRoZSBmaXJzdCBhcmd1bWVu
dCB0byBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1BgIGlzIGEgcHJlZml4Ci10aGF0IHdpbGwgYmUg
YWRkZWQgdG8gdGhlIGFjdHVhbCB0ZXN0IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlx
dWUKLXByZWZpeGVzIGZvciBkaWZmZXJlbnQgaW5zdGFudGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9t
IHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlCi13aWxsIGhhdmUgdGhlc2UgbmFtZXM6Ci0KLSogICBg
SW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0qICAg
YEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMWAgZm9yIGAibWlueSJgCi0qICAg
YEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9lc0JsYWgvMmAgZm9yIGAibW9lImAKLSogICBg
SW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJtZWVueSJgCi0q
ICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMWAgZm9yIGAibWlueSJg
Ci0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMmAgZm9yIGAibW9l
ImAKLQotWW91IGNhbiB1c2UgdGhlc2UgbmFtZXMgaW4gW2AtLWd0ZXN0X2ZpbHRlcmBdKCNydW5u
aW5nLWEtc3Vic2V0LW9mLXRoZS10ZXN0cykuCi0KLVRoaXMgc3RhdGVtZW50IHdpbGwgaW5zdGFu
dGlhdGUgYWxsIHRlc3RzIGZyb20gYEZvb1Rlc3RgIGFnYWluLCBlYWNoIHdpdGgKLXBhcmFtZXRl
ciB2YWx1ZXMgYCJjYXQiYCBhbmQgYCJkb2ciYDoKLQotYGBgYysrCi1jb25zdCBjaGFyKiBwZXRz
W10gPSB7ImNhdCIsICJkb2cifTsKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0
YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGlu
Zzo6VmFsdWVzSW4ocGV0cykpOwotYGBgCi0KLVRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0
aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLQotKiAgIGBBbm90aGVySW5zdGFudGlh
dGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8wYCBmb3IgYCJjYXQiYAotKiAgIGBBbm90aGVySW5z
dGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8xYCBmb3IgYCJkb2ciYAotKiAgIGBBbm90
aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wYCBmb3IgYCJjYXQiYAot
KiAgIGBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xYCBmb3Ig
YCJkb2ciYAotCi1QbGVhc2Ugbm90ZSB0aGF0IGBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgd2ls
bCBpbnN0YW50aWF0ZSAqYWxsKiB0ZXN0cyBpbiB0aGUKLWdpdmVuIHRlc3QgY2FzZSwgd2hldGhl
ciB0aGVpciBkZWZpbml0aW9ucyBjb21lIGJlZm9yZSBvciAqYWZ0ZXIqIHRoZQotYElOU1RBTlRJ
QVRFX1RFU1RfQ0FTRV9QYCBzdGF0ZW1lbnQuCi0KLVlvdSBjYW4gc2VlIHNhbXBsZTdfdW5pdHRl
c3QuY2MgYW5kIHNhbXBsZThfdW5pdHRlc3QuY2MgZm9yIG1vcmUgZXhhbXBsZXMuCi0KLSoqQXZh
aWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSks
IE1hYwotCi0jIyMgQ3JlYXRpbmcgVmFsdWUtUGFyYW1ldGVyaXplZCBBYnN0cmFjdCBUZXN0cwot
Ci1JbiB0aGUgYWJvdmUsIHdlIGRlZmluZSBhbmQgaW5zdGFudGlhdGUgYEZvb1Rlc3RgIGluIHRo
ZSAqc2FtZSogc291cmNlIGZpbGUuCi1Tb21ldGltZXMgeW91IG1heSB3YW50IHRvIGRlZmluZSB2
YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGluIGEgbGlicmFyeSBhbmQgbGV0Ci1vdGhlciBwZW9w
bGUgaW5zdGFudGlhdGUgdGhlbSBsYXRlci4gVGhpcyBwYXR0ZXJuIGlzIGtub3duIGFzICphYnN0
cmFjdCB0ZXN0cyouCi1BcyBhbiBleGFtcGxlIG9mIGl0cyBhcHBsaWNhdGlvbiwgd2hlbiB5b3Ug
YXJlIGRlc2lnbmluZyBhbiBpbnRlcmZhY2UgeW91IGNhbgotd3JpdGUgYSBzdGFuZGFyZCBzdWl0
ZSBvZiBhYnN0cmFjdCB0ZXN0cyAocGVyaGFwcyB1c2luZyBhIGZhY3RvcnkgZnVuY3Rpb24gYXMK
LXRoZSB0ZXN0IHBhcmFtZXRlcikgdGhhdCBhbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBpbnRl
cmZhY2UgYXJlIGV4cGVjdGVkIHRvCi1wYXNzLiBXaGVuIHNvbWVvbmUgaW1wbGVtZW50cyB0aGUg
aW50ZXJmYWNlLCB0aGV5IGNhbiBpbnN0YW50aWF0ZSB5b3VyIHN1aXRlIHRvCi1nZXQgYWxsIHRo
ZSBpbnRlcmZhY2UtY29uZm9ybWFuY2UgdGVzdHMgZm9yIGZyZWUuCi0KLVRvIGRlZmluZSBhYnN0
cmFjdCB0ZXN0cywgeW91IHNob3VsZCBvcmdhbml6ZSB5b3VyIGNvZGUgbGlrZSB0aGlzOgotCi0x
LiAgUHV0IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBwYXJhbWV0ZXJpemVkIHRlc3QgZml4dHVyZSBj
bGFzcyAoZS5nLiBgRm9vVGVzdGApCi0gICAgaW4gYSBoZWFkZXIgZmlsZSwgc2F5IGBmb29fcGFy
YW1fdGVzdC5oYC4gVGhpbmsgb2YgdGhpcyBhcyAqZGVjbGFyaW5nKiB5b3VyCi0gICAgYWJzdHJh
Y3QgdGVzdHMuCi0xLiAgUHV0IHRoZSBgVEVTVF9QYCBkZWZpbml0aW9ucyBpbiBgZm9vX3BhcmFt
X3Rlc3QuY2NgLCB3aGljaCBpbmNsdWRlcwotICAgIGBmb29fcGFyYW1fdGVzdC5oYC4gVGhpbmsg
b2YgdGhpcyBhcyAqaW1wbGVtZW50aW5nKiB5b3VyIGFic3RyYWN0IHRlc3RzLgotCi1PbmNlIHRo
ZXkgYXJlIGRlZmluZWQsIHlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbSBieSBpbmNsdWRpbmcgYGZv
b19wYXJhbV90ZXN0LmhgLAotaW52b2tpbmcgYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKClgLCBh
bmQgZGVwZW5kaW5nIG9uIHRoZSBsaWJyYXJ5IHRhcmdldCB0aGF0Ci1jb250YWlucyBgZm9vX3Bh
cmFtX3Rlc3QuY2NgLiBZb3UgY2FuIGluc3RhbnRpYXRlIHRoZSBzYW1lIGFic3RyYWN0IHRlc3Qg
Y2FzZQotbXVsdGlwbGUgdGltZXMsIHBvc3NpYmx5IGluIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMu
Ci0KLSMjIyBTcGVjaWZ5aW5nIE5hbWVzIGZvciBWYWx1ZS1QYXJhbWV0ZXJpemVkIFRlc3QgUGFy
YW1ldGVycwotCi1UaGUgb3B0aW9uYWwgbGFzdCBhcmd1bWVudCB0byBgSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoKWAgYWxsb3dzIHRoZSB1c2VyIHRvCi1zcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVu
Y3RvciB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzIGJhc2VkIG9uCi10
aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1l
bnQgb2YgdHlwZQotYHRlc3Rpbmc6OlRlc3RQYXJhbUluZm88Y2xhc3MgUGFyYW1UeXBlPmAsIGFu
ZCByZXR1cm4gYHN0ZDo6c3RyaW5nYC4KLQotYHRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5h
bWVgIGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAotcmV0dXJucyB0aGUg
dmFsdWUgb2YgYHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSlgLiBJdCBkb2VzIG5v
dCB3b3JrIGZvcgotYHN0ZDo6c3RyaW5nYCBvciBDIHN0cmluZ3MuCi0KLU5PVEU6IHRlc3QgbmFt
ZXMgbXVzdCBiZSBub24tZW1wdHksIHVuaXF1ZSwgYW5kIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkK
LWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBJbiBwYXJ0aWN1bGFyLCB0aGV5IFtzaG91bGQgbm90
IGNvbnRhaW4KLXVuZGVyc2NvcmVzXShodHRwczovL2czZG9jLmNvcnAuZ29vZ2xlLmNvbS90aGly
ZF9wYXJ0eS9nb29nbGV0ZXN0L2dvb2dsZXRlc3QvZzNkb2MvZmFxLm1kI25vLXVuZGVyc2NvcmVz
KS4KLQotYGBgYysrCi1jbGFzcyBNeVRlc3RDYXNlIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRo
UGFyYW08aW50PiB7fTsKLQotVEVTVF9QKE15VGVzdENhc2UsIE15VGVzdCkKLXsKLSAgc3RkOjpj
b3V0IDw8ICJFeGFtcGxlIFRlc3QgUGFyYW06ICIgPDwgR2V0UGFyYW0oKSA8PCBzdGQ6OmVuZGw7
Ci19Ci0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE15R3JvdXAsIE15VGVzdENhc2UsIHRlc3Rp
bmc6OlJhbmdlKDAsIDEwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50
VG9TdHJpbmdQYXJhbU5hbWUoKSk7Ci1gYGAKLQotIyMgVHlwZWQgVGVzdHM8L2lkPgotCi1TdXBw
b3NlIHlvdSBoYXZlIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgc2FtZSBpbnRlcmZh
Y2UgYW5kIHdhbnQgdG8gbWFrZQotc3VyZSB0aGF0IGFsbCBvZiB0aGVtIHNhdGlzZnkgc29tZSBj
b21tb24gcmVxdWlyZW1lbnRzLiBPciwgeW91IG1heSBoYXZlIGRlZmluZWQKLXNldmVyYWwgdHlw
ZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gY29uZm9ybSB0byB0aGUgc2FtZSAiY29uY2VwdCIgYW5k
IHlvdSB3YW50IHRvCi12ZXJpZnkgaXQuIEluIGJvdGggY2FzZXMsIHlvdSB3YW50IHRoZSBzYW1l
IHRlc3QgbG9naWMgcmVwZWF0ZWQgZm9yIGRpZmZlcmVudAotdHlwZXMuCi0KLVdoaWxlIHlvdSBj
YW4gd3JpdGUgb25lIGBURVNUYCBvciBgVEVTVF9GYCBmb3IgZWFjaCB0eXBlIHlvdSB3YW50IHRv
IHRlc3QgKGFuZAoteW91IG1heSBldmVuIGZhY3RvciB0aGUgdGVzdCBsb2dpYyBpbnRvIGEgZnVu
Y3Rpb24gdGVtcGxhdGUgdGhhdCB5b3UgaW52b2tlIGZyb20KLXRoZSBgVEVTVGApLCBpdCdzIHRl
ZGlvdXMgYW5kIGRvZXNuJ3Qgc2NhbGU6IGlmIHlvdSB3YW50IGBtYCB0ZXN0cyBvdmVyIGBuYAot
dHlwZXMsIHlvdSdsbCBlbmQgdXAgd3JpdGluZyBgbSpuYCBgVEVTVGBzLgotCi0qVHlwZWQgdGVz
dHMqIGFsbG93IHlvdSB0byByZXBlYXQgdGhlIHNhbWUgdGVzdCBsb2dpYyBvdmVyIGEgbGlzdCBv
ZiB0eXBlcy4gWW91Ci1vbmx5IG5lZWQgdG8gd3JpdGUgdGhlIHRlc3QgbG9naWMgb25jZSwgYWx0
aG91Z2ggeW91IG11c3Qga25vdyB0aGUgdHlwZSBsaXN0Ci13aGVuIHdyaXRpbmcgdHlwZWQgdGVz
dHMuIEhlcmUncyBob3cgeW91IGRvIGl0OgotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFz
cyB0ZW1wbGF0ZS4gSXQgc2hvdWxkIGJlIHBhcmFtZXRlcml6ZWQgYnkgYSB0eXBlLgotUmVtZW1i
ZXIgdG8gZGVyaXZlIGl0IGZyb20gYDo6dGVzdGluZzo6VGVzdGA6Ci0KLWBgYGMrKwotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7
Ci0gcHVibGljOgotICAuLi4KLSAgdHlwZWRlZiBzdGQ6Omxpc3Q8VD4gTGlzdDsKLSAgc3RhdGlj
IFQgc2hhcmVkXzsKLSAgVCB2YWx1ZV87Ci19OwotYGBgCi0KLU5leHQsIGFzc29jaWF0ZSBhIGxp
c3Qgb2YgdHlwZXMgd2l0aCB0aGUgdGVzdCBjYXNlLCB3aGljaCB3aWxsIGJlIHJlcGVhdGVkIGZv
cgotZWFjaCB0eXBlIGluIHRoZSBsaXN0OgotCi1gYGBjKysKLXVzaW5nIE15VHlwZXMgPSA6OnRl
c3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PjsKLVRZUEVEX1RFU1RfQ0FTRShG
b29UZXN0LCBNeVR5cGVzKTsKLWBgYAotCi1UaGUgdHlwZSBhbGlhcyAoYHVzaW5nYCBvciBgdHlw
ZWRlZmApIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGBUWVBFRF9URVNUX0NBU0VgCi1tYWNybyB0byBw
YXJzZSBjb3JyZWN0bHkuIE90aGVyd2lzZSB0aGUgY29tcGlsZXIgd2lsbCB0aGluayB0aGF0IGVh
Y2ggY29tbWEgaW4KLXRoZSB0eXBlIGxpc3QgaW50cm9kdWNlcyBhIG5ldyBtYWNybyBhcmd1bWVu
dC4KLQotVGhlbiwgdXNlIGBUWVBFRF9URVNUKClgIGluc3RlYWQgb2YgYFRFU1RfRigpYCB0byBk
ZWZpbmUgYSB0eXBlZCB0ZXN0IGZvciB0aGlzCi10ZXN0IGNhc2UuIFlvdSBjYW4gcmVwZWF0IHRo
aXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ugd2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUKEZvb1Rl
c3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIHJlZmVyIHRvIHRoZSBzcGVjaWFs
IG5hbWUgVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZQotICAvLyBwYXJhbWV0ZXIuICBTaW5jZSB3
ZSBhcmUgaW5zaWRlIGEgZGVyaXZlZCBjbGFzcyB0ZW1wbGF0ZSwgQysrIHJlcXVpcmVzCi0gIC8v
IHVzIHRvIHZpc2l0IHRoZSBtZW1iZXJzIG9mIEZvb1Rlc3QgdmlhICd0aGlzJy4KLSAgVHlwZVBh
cmFtIG4gPSB0aGlzLT52YWx1ZV87Ci0KLSAgLy8gVG8gdmlzaXQgc3RhdGljIG1lbWJlcnMgb2Yg
dGhlIGZpeHR1cmUsIGFkZCB0aGUgJ1Rlc3RGaXh0dXJlOjonCi0gIC8vIHByZWZpeC4KLSAgbiAr
PSBUZXN0Rml4dHVyZTo6c2hhcmVkXzsKLQotICAvLyBUbyByZWZlciB0byB0eXBlZGVmcyBpbiB0
aGUgZml4dHVyZSwgYWRkIHRoZSAndHlwZW5hbWUgVGVzdEZpeHR1cmU6OicKLSAgLy8gcHJlZml4
LiAgVGhlICd0eXBlbmFtZScgaXMgcmVxdWlyZWQgdG8gc2F0aXNmeSB0aGUgY29tcGlsZXIuCi0g
IHR5cGVuYW1lIFRlc3RGaXh0dXJlOjpMaXN0IHZhbHVlczsKLQotICB2YWx1ZXMucHVzaF9iYWNr
KG4pOwotICAuLi4KLX0KLQotVFlQRURfVEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4u
IH0KLWBgYAotCi1Zb3UgY2FuIHNlZSBzYW1wbGU2X3VuaXR0ZXN0LmNjCi0KLSoqQXZhaWxhYmls
aXR5Kio6IExpbnV4LCBXaW5kb3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1hYwot
Ci0jIyBUeXBlLVBhcmFtZXRlcml6ZWQgVGVzdHMKLQotKlR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0
cyogYXJlIGxpa2UgdHlwZWQgdGVzdHMsIGV4Y2VwdCB0aGF0IHRoZXkgZG9uJ3QgcmVxdWlyZQot
eW91IHRvIGtub3cgdGhlIGxpc3Qgb2YgdHlwZXMgYWhlYWQgb2YgdGltZS4gSW5zdGVhZCwgeW91
IGNhbiBkZWZpbmUgdGhlIHRlc3QKLWxvZ2ljIGZpcnN0IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRo
IGRpZmZlcmVudCB0eXBlIGxpc3RzIGxhdGVyLiBZb3UgY2FuIGV2ZW4KLWluc3RhbnRpYXRlIGl0
IG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHByb2dyYW0uCi0KLUlmIHlvdSBhcmUgZGVzaWdu
aW5nIGFuIGludGVyZmFjZSBvciBjb25jZXB0LCB5b3UgY2FuIGRlZmluZSBhIHN1aXRlIG9mCi10
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgdG8gdmVyaWZ5IHByb3BlcnRpZXMgdGhhdCBhbnkgdmFs
aWQgaW1wbGVtZW50YXRpb24gb2YKLXRoZSBpbnRlcmZhY2UvY29uY2VwdCBzaG91bGQgaGF2ZS4g
VGhlbiwgdGhlIGF1dGhvciBvZiBlYWNoIGltcGxlbWVudGF0aW9uIGNhbgotanVzdCBpbnN0YW50
aWF0ZSB0aGUgdGVzdCBzdWl0ZSB3aXRoIHRoZWlyIHR5cGUgdG8gdmVyaWZ5IHRoYXQgaXQgY29u
Zm9ybXMgdG8KLXRoZSByZXF1aXJlbWVudHMsIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIHNpbWls
YXIgdGVzdHMgcmVwZWF0ZWRseS4gSGVyZSdzIGFuCi1leGFtcGxlOgotCi1GaXJzdCwgZGVmaW5l
IGEgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZSwgYXMgd2UgZGlkIHdpdGggdHlwZWQgdGVzdHM6Ci0K
LWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6
dGVzdGluZzo6VGVzdCB7Ci0gIC4uLgotfTsKLWBgYAotCi1OZXh0LCBkZWNsYXJlIHRoYXQgeW91
IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZToKLQotYGBgYysrCi1U
WVBFRF9URVNUX0NBU0VfUChGb29UZXN0KTsKLWBgYAotCi1UaGVuLCB1c2UgYFRZUEVEX1RFU1Rf
UCgpYCB0byBkZWZpbmUgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4gWW91IGNhbiByZXBlYXQK
LXRoaXMgYXMgbWFueSB0aW1lcyBhcyB5b3Ugd2FudDoKLQotYGBgYysrCi1UWVBFRF9URVNUX1Ao
Rm9vVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBh
cmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIuCi0gIFR5cGVQYXJhbSBuID0gMDsKLSAgLi4u
Ci19Ci0KLVRZUEVEX1RFU1RfUChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KLWBgYAot
Ci1Ob3cgdGhlIHRyaWNreSBwYXJ0OiB5b3UgbmVlZCB0byByZWdpc3RlciBhbGwgdGVzdCBwYXR0
ZXJucyB1c2luZyB0aGUKLWBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUGAgbWFjcm8gYmVmb3Jl
IHlvdSBjYW4gaW5zdGFudGlhdGUgdGhlbS4gVGhlIGZpcnN0Ci1hcmd1bWVudCBvZiB0aGUgbWFj
cm8gaXMgdGhlIHRlc3QgY2FzZSBuYW1lOyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0
ZXN0cwotaW4gdGhpcyB0ZXN0IGNhc2U6Ci0KLWBgYGMrKwotUkVHSVNURVJfVFlQRURfVEVTVF9D
QVNFX1AoRm9vVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIERvZXNCbGFoLCBIYXNQ
cm9wZXJ0eUEpOwotYGBgCi0KLUZpbmFsbHksIHlvdSBhcmUgZnJlZSB0byBpbnN0YW50aWF0ZSB0
aGUgcGF0dGVybiB3aXRoIHRoZSB0eXBlcyB5b3Ugd2FudC4gSWYgeW91Ci1wdXQgdGhlIGFib3Zl
IGNvZGUgaW4gYSBoZWFkZXIgZmlsZSwgeW91IGNhbiBgI2luY2x1ZGVgIGl0IGluIG11bHRpcGxl
IEMrKwotc291cmNlIGZpbGVzIGFuZCBpbnN0YW50aWF0ZSBpdCBtdWx0aXBsZSB0aW1lcy4KLQot
YGBgYysrCi10eXBlZGVmIDo6dGVzdGluZzo6VHlwZXM8Y2hhciwgaW50LCB1bnNpZ25lZCBpbnQ+
IE15VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlU
eXBlcyk7Ci1gYGAKLQotVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUg
cGF0dGVybiwgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZQotYElOU1RBTlRJQVRFX1RZUEVEX1RF
U1RfQ0FTRV9QYCBtYWNybyBpcyBhIHByZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi1h
Y3R1YWwgdGVzdCBjYXNlIG5hbWUuIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZv
ciBkaWZmZXJlbnQgaW5zdGFuY2VzLgotCi1JbiB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSB0
eXBlIGxpc3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZQotdGhhdCB0eXBl
IGRpcmVjdGx5IHdpdGhvdXQgYDo6dGVzdGluZzo6VHlwZXM8Li4uPmAsIGxpa2UgdGhpczoKLQot
YGBgYysrCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgaW50KTsK
LWBgYAotCi1Zb3UgY2FuIHNlZSBgc2FtcGxlNl91bml0dGVzdC5jY2AgZm9yIGEgY29tcGxldGUg
ZXhhbXBsZS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MgKHJlcXVpcmVzIE1T
VkMgOC4wIG9yIGFib3ZlKSwgTWFjCi0KLSMjIFRlc3RpbmcgUHJpdmF0ZSBDb2RlCi0KLUlmIHlv
dSBjaGFuZ2UgeW91ciBzb2Z0d2FyZSdzIGludGVybmFsIGltcGxlbWVudGF0aW9uLCB5b3VyIHRl
c3RzIHNob3VsZCBub3QKLWJyZWFrIGFzIGxvbmcgYXMgdGhlIGNoYW5nZSBpcyBub3Qgb2JzZXJ2
YWJsZSBieSB1c2Vycy4gVGhlcmVmb3JlLCAqKnBlciB0aGUKLWJsYWNrLWJveCB0ZXN0aW5nIHBy
aW5jaXBsZSwgbW9zdCBvZiB0aGUgdGltZSB5b3Ugc2hvdWxkIHRlc3QgeW91ciBjb2RlIHRocm91
Z2gKLWl0cyBwdWJsaWMgaW50ZXJmYWNlcy4qKgotCi0qKklmIHlvdSBzdGlsbCBmaW5kIHlvdXJz
ZWxmIG5lZWRpbmcgdG8gdGVzdCBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBjb2RlLAotY29uc2lk
ZXIgaWYgdGhlcmUncyBhIGJldHRlciBkZXNpZ24uKiogVGhlIGRlc2lyZSB0byB0ZXN0IGludGVy
bmFsCi1pbXBsZW1lbnRhdGlvbiBpcyBvZnRlbiBhIHNpZ24gdGhhdCB0aGUgY2xhc3MgaXMgZG9p
bmcgdG9vIG11Y2guIENvbnNpZGVyCi1leHRyYWN0aW5nIGFuIGltcGxlbWVudGF0aW9uIGNsYXNz
LCBhbmQgdGVzdGluZyBpdC4gVGhlbiB1c2UgdGhhdCBpbXBsZW1lbnRhdGlvbgotY2xhc3MgaW4g
dGhlIG9yaWdpbmFsIGNsYXNzLgotCi1JZiB5b3UgYWJzb2x1dGVseSBoYXZlIHRvIHRlc3Qgbm9u
LXB1YmxpYyBpbnRlcmZhY2UgY29kZSB0aG91Z2gsIHlvdSBjYW4uIFRoZXJlCi1hcmUgdHdvIGNh
c2VzIHRvIGNvbnNpZGVyOgotCi0qICAgU3RhdGljIGZ1bmN0aW9ucyAoICpub3QqIHRoZSBzYW1l
IGFzIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zISkgb3IgdW5uYW1lZAotICAgIG5hbWVzcGFjZXMs
IGFuZAotKiAgIFByaXZhdGUgb3IgcHJvdGVjdGVkIGNsYXNzIG1lbWJlcnMKLQotVG8gdGVzdCB0
aGVtLCB3ZSB1c2UgdGhlIGZvbGxvd2luZyBzcGVjaWFsIHRlY2huaXF1ZXM6Ci0KLSogICBCb3Ro
IHN0YXRpYyBmdW5jdGlvbnMgYW5kIGRlZmluaXRpb25zL2RlY2xhcmF0aW9ucyBpbiBhbiB1bm5h
bWVkIG5hbWVzcGFjZQotICAgIGFyZSBvbmx5IHZpc2libGUgd2l0aGluIHRoZSBzYW1lIHRyYW5z
bGF0aW9uIHVuaXQuIFRvIHRlc3QgdGhlbSwgeW91IGNhbgotICAgIGAjaW5jbHVkZWAgdGhlIGVu
dGlyZSBgLmNjYCBmaWxlIGJlaW5nIHRlc3RlZCBpbiB5b3VyIGAqX3Rlc3QuY2NgIGZpbGUuCi0g
ICAgKGluY2x1ZGluZyBgLmNjYCBmaWxlcyBpcyBub3QgYSBnb29kIHdheSB0byByZXVzZSBjb2Rl
IC0geW91IHNob3VsZCBub3QgZG8KLSAgICB0aGlzIGluIHByb2R1Y3Rpb24gY29kZSEpCi0KLSAg
ICBIb3dldmVyLCBhIGJldHRlciBhcHByb2FjaCBpcyB0byBtb3ZlIHRoZSBwcml2YXRlIGNvZGUg
aW50byB0aGUKLSAgICBgZm9vOjppbnRlcm5hbGAgbmFtZXNwYWNlLCB3aGVyZSBgZm9vYCBpcyB0
aGUgbmFtZXNwYWNlIHlvdXIgcHJvamVjdAotICAgIG5vcm1hbGx5IHVzZXMsIGFuZCBwdXQgdGhl
IHByaXZhdGUgZGVjbGFyYXRpb25zIGluIGEgYCotaW50ZXJuYWwuaGAgZmlsZS4KLSAgICBZb3Vy
IHByb2R1Y3Rpb24gYC5jY2AgZmlsZXMgYW5kIHlvdXIgdGVzdHMgYXJlIGFsbG93ZWQgdG8gaW5j
bHVkZSB0aGlzCi0gICAgaW50ZXJuYWwgaGVhZGVyLCBidXQgeW91ciBjbGllbnRzIGFyZSBub3Qu
IFRoaXMgd2F5LCB5b3UgY2FuIGZ1bGx5IHRlc3QgeW91cgotICAgIGludGVybmFsIGltcGxlbWVu
dGF0aW9uIHdpdGhvdXQgbGVha2luZyBpdCB0byB5b3VyIGNsaWVudHMuCi0KLSogICBQcml2YXRl
IGNsYXNzIG1lbWJlcnMgYXJlIG9ubHkgYWNjZXNzaWJsZSBmcm9tIHdpdGhpbiB0aGUgY2xhc3Mg
b3IgYnkKLSAgICBmcmllbmRzLiBUbyBhY2Nlc3MgYSBjbGFzcycgcHJpdmF0ZSBtZW1iZXJzLCB5
b3UgY2FuIGRlY2xhcmUgeW91ciB0ZXN0Ci0gICAgZml4dHVyZSBhcyBhIGZyaWVuZCB0byB0aGUg
Y2xhc3MgYW5kIGRlZmluZSBhY2Nlc3NvcnMgaW4geW91ciBmaXh0dXJlLiBUZXN0cwotICAgIHVz
aW5nIHRoZSBmaXh0dXJlIGNhbiB0aGVuIGFjY2VzcyB0aGUgcHJpdmF0ZSBtZW1iZXJzIG9mIHlv
dXIgcHJvZHVjdGlvbgotICAgIGNsYXNzIHZpYSB0aGUgYWNjZXNzb3JzIGluIHRoZSBmaXh0dXJl
LiBOb3RlIHRoYXQgZXZlbiB0aG91Z2ggeW91ciBmaXh0dXJlCi0gICAgaXMgYSBmcmllbmQgdG8g
eW91ciBwcm9kdWN0aW9uIGNsYXNzLCB5b3VyIHRlc3RzIGFyZSBub3QgYXV0b21hdGljYWxseQot
ICAgIGZyaWVuZHMgdG8gaXQsIGFzIHRoZXkgYXJlIHRlY2huaWNhbGx5IGRlZmluZWQgaW4gc3Vi
LWNsYXNzZXMgb2YgdGhlCi0gICAgZml4dHVyZS4KLQotICAgIEFub3RoZXIgd2F5IHRvIHRlc3Qg
cHJpdmF0ZSBtZW1iZXJzIGlzIHRvIHJlZmFjdG9yIHRoZW0gaW50byBhbgotICAgIGltcGxlbWVu
dGF0aW9uIGNsYXNzLCB3aGljaCBpcyB0aGVuIGRlY2xhcmVkIGluIGEgYCotaW50ZXJuYWwuaGAg
ZmlsZS4gWW91cgotICAgIGNsaWVudHMgYXJlbid0IGFsbG93ZWQgdG8gaW5jbHVkZSB0aGlzIGhl
YWRlciBidXQgeW91ciB0ZXN0cyBjYW4uIFN1Y2ggaXMKLSAgICBjYWxsZWQgdGhlCi0gICAgW1Bp
bXBsXShodHRwczovL3d3dy5nYW1lZGV2Lm5ldC9hcnRpY2xlcy9wcm9ncmFtbWluZy9nZW5lcmFs
LWFuZC1nYW1lcGxheS1wcm9ncmFtbWluZy90aGUtYy1waW1wbC1yMTc5NC8pCi0gICAgKFByaXZh
dGUgSW1wbGVtZW50YXRpb24pIGlkaW9tLgotCi0gICAgT3IsIHlvdSBjYW4gZGVjbGFyZSBhbiBp
bmRpdmlkdWFsIHRlc3QgYXMgYSBmcmllbmQgb2YgeW91ciBjbGFzcyBieSBhZGRpbmcKLSAgICB0
aGlzIGxpbmUgaW4gdGhlIGNsYXNzIGJvZHk6Ci0KLSAgICBgYGBjKysKLSAgICAgICAgRlJJRU5E
X1RFU1QoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSk7Ci0gICAgYGBgCi0KLSAgICBGb3IgZXhhbXBs
ZSwKLQotICAgIGBgYGMrKwotICAgIC8vIGZvby5oCi0KLSAgICAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3RfcHJvZC5oIgotCi0gICAgY2xhc3MgRm9vIHsKLSAgICAgIC4uLgotICAgIHByaXZhdGU6Ci0g
ICAgICBGUklFTkRfVEVTVChGb29UZXN0LCBCYXJSZXR1cm5zWmVyb09uTnVsbCk7Ci0KLSAgICAg
IGludCBCYXIodm9pZCogeCk7Ci0gICAgfTsKLQotICAgIC8vIGZvb190ZXN0LmNjCi0gICAgLi4u
Ci0gICAgVEVTVChGb29UZXN0LCBCYXJSZXR1cm5zWmVyb09uTnVsbCkgewotICAgICAgRm9vIGZv
bzsKLSAgICAgIEVYUEVDVF9FUSgwLCBmb28uQmFyKE5VTEwpKTsgIC8vIFVzZXMgRm9vJ3MgcHJp
dmF0ZSBtZW1iZXIgQmFyKCkuCi0gICAgfQotICAgIGBgYAotCi0gICAgUGF5IHNwZWNpYWwgYXR0
ZW50aW9uIHdoZW4geW91ciBjbGFzcyBpcyBkZWZpbmVkIGluIGEgbmFtZXNwYWNlLCBhcyB5b3UK
LSAgICBzaG91bGQgZGVmaW5lIHlvdXIgdGVzdCBmaXh0dXJlcyBhbmQgdGVzdHMgaW4gdGhlIHNh
bWUgbmFtZXNwYWNlIGlmIHlvdSB3YW50Ci0gICAgdGhlbSB0byBiZSBmcmllbmRzIG9mIHlvdXIg
Y2xhc3MuIEZvciBleGFtcGxlLCBpZiB0aGUgY29kZSB0byBiZSB0ZXN0ZWQKLSAgICBsb29rcyBs
aWtlOgotCi0gICAgYGBgYysrCi0gICAgbmFtZXNwYWNlIG15X25hbWVzcGFjZSB7Ci0KLSAgICBj
bGFzcyBGb28gewotICAgICAgZnJpZW5kIGNsYXNzIEZvb1Rlc3Q7Ci0gICAgICBGUklFTkRfVEVT
VChGb29UZXN0LCBCYXIpOwotICAgICAgRlJJRU5EX1RFU1QoRm9vVGVzdCwgQmF6KTsKLSAgICAg
IC4uLiBkZWZpbml0aW9uIG9mIHRoZSBjbGFzcyBGb28gLi4uCi0gICAgfTsKLQotICAgIH0gIC8v
IG5hbWVzcGFjZSBteV9uYW1lc3BhY2UKLSAgICBgYGAKLQotICAgIFlvdXIgdGVzdCBjb2RlIHNo
b3VsZCBiZSBzb21ldGhpbmcgbGlrZToKLQotICAgIGBgYGMrKwotICAgIG5hbWVzcGFjZSBteV9u
YW1lc3BhY2UgewotCi0gICAgY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qg
ewotICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAuLi4KLSAgICB9OwotCi0gICAgVEVTVF9GKEZvb1Rl
c3QsIEJhcikgeyAuLi4gfQotICAgIFRFU1RfRihGb29UZXN0LCBCYXopIHsgLi4uIH0KLQotICAg
IH0gIC8vIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UKLSAgICBgYGAKLQotCi0jIyAiQ2F0Y2hpbmci
IEZhaWx1cmVzCi0KLUlmIHlvdSBhcmUgYnVpbGRpbmcgYSB0ZXN0aW5nIHV0aWxpdHkgb24gdG9w
IG9mIGdvb2dsZXRlc3QsIHlvdSdsbCB3YW50IHRvIHRlc3QKLXlvdXIgdXRpbGl0eS4gV2hhdCBm
cmFtZXdvcmsgd291bGQgeW91IHVzZSB0byB0ZXN0IGl0PyBnb29nbGV0ZXN0LCBvZiBjb3Vyc2Uu
Ci0KLVRoZSBjaGFsbGVuZ2UgaXMgdG8gdmVyaWZ5IHRoYXQgeW91ciB0ZXN0aW5nIHV0aWxpdHkg
cmVwb3J0cyBmYWlsdXJlcyBjb3JyZWN0bHkuCi1JbiBmcmFtZXdvcmtzIHRoYXQgcmVwb3J0IGEg
ZmFpbHVyZSBieSB0aHJvd2luZyBhbiBleGNlcHRpb24sIHlvdSBjb3VsZCBjYXRjaAotdGhlIGV4
Y2VwdGlvbiBhbmQgYXNzZXJ0IG9uIGl0LiBCdXQgZ29vZ2xldGVzdCBkb2Vzbid0IHVzZSBleGNl
cHRpb25zLCBzbyBob3cgZG8KLXdlIHRlc3QgdGhhdCBhIHBpZWNlIG9mIGNvZGUgZ2VuZXJhdGVz
IGFuIGV4cGVjdGVkIGZhaWx1cmU/Ci0KLWd1bml0LXNwaS5oIGNvbnRhaW5zIHNvbWUgY29uc3Ry
dWN0cyB0byBkbyB0aGlzLiBBZnRlciAjaW5jbHVkaW5nIHRoaXMgaGVhZGVyLAoteW91IGNhbiB1
c2UKLQotYGBgYysrCi0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHN0YXRlbWVudCwgc3Vic3RyaW5n
KTsKLWBgYAotCi10byBhc3NlcnQgdGhhdCBgc3RhdGVtZW50YCBnZW5lcmF0ZXMgYSBmYXRhbCAo
ZS5nLiBgQVNTRVJUXypgKSBmYWlsdXJlIGluIHRoZQotY3VycmVudCB0aHJlYWQgd2hvc2UgbWVz
c2FnZSBjb250YWlucyB0aGUgZ2l2ZW4gYHN1YnN0cmluZ2AsIG9yIHVzZQotCi1gYGBjKysKLSAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50LCBzdWJzdHJpbmcpOwotYGBgCi0KLWlm
IHlvdSBhcmUgZXhwZWN0aW5nIGEgbm9uLWZhdGFsIChlLmcuIGBFWFBFQ1RfKmApIGZhaWx1cmUu
Ci0KLU9ubHkgZmFpbHVyZXMgaW4gdGhlIGN1cnJlbnQgdGhyZWFkIGFyZSBjaGVja2VkIHRvIGRl
dGVybWluZSB0aGUgcmVzdWx0IG9mIHRoaXMKLXR5cGUgb2YgZXhwZWN0YXRpb25zLiBJZiBgc3Rh
dGVtZW50YCBjcmVhdGVzIG5ldyB0aHJlYWRzLCBmYWlsdXJlcyBpbiB0aGVzZQotdGhyZWFkcyBh
cmUgYWxzbyBpZ25vcmVkLiBJZiB5b3Ugd2FudCB0byBjYXRjaCBmYWlsdXJlcyBpbiBvdGhlciB0
aHJlYWRzIGFzCi13ZWxsLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgbWFjcm9zIGluc3RlYWQ6
Ci0KLWBgYGMrKwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhzdGF0ZW1l
bnQsIHN1YnN0cmluZyk7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFX09OX0FMTF9USFJFQURT
KHN0YXRlbWVudCwgc3Vic3RyaW5nKTsKLWBgYAotCi1OT1RFOiBBc3NlcnRpb25zIGZyb20gbXVs
dGlwbGUgdGhyZWFkcyBhcmUgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cy4KLQot
Rm9yIHRlY2huaWNhbCByZWFzb25zLCB0aGVyZSBhcmUgc29tZSBjYXZlYXRzOgotCi0xLiAgWW91
IGNhbm5vdCBzdHJlYW0gYSBmYWlsdXJlIG1lc3NhZ2UgdG8gZWl0aGVyIG1hY3JvLgotCi0xLiAg
YHN0YXRlbWVudGAgaW4gYEVYUEVDVF9GQVRBTF9GQUlMVVJFe19PTl9BTExfVEhSRUFEU30oKWAg
Y2Fubm90IHJlZmVyZW5jZQotICAgIGxvY2FsIG5vbi1zdGF0aWMgdmFyaWFibGVzIG9yIG5vbi1z
dGF0aWMgbWVtYmVycyBvZiBgdGhpc2Agb2JqZWN0LgotCi0xLiAgYHN0YXRlbWVudGAgaW4gYEVY
UEVDVF9GQVRBTF9GQUlMVVJFe19PTl9BTExfVEhSRUFEU30oKSgpYCBjYW5ub3QgcmV0dXJuIGEK
LSAgICB2YWx1ZS4KLQotCi0jIyBHZXR0aW5nIHRoZSBDdXJyZW50IFRlc3QncyBOYW1lCi0KLVNv
bWV0aW1lcyBhIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGtub3cgdGhlIG5hbWUgb2YgdGhlIGN1cnJl
bnRseSBydW5uaW5nIHRlc3QuCi1Gb3IgZXhhbXBsZSwgeW91IG1heSBiZSB1c2luZyB0aGUgYFNl
dFVwKClgIG1ldGhvZCBvZiB5b3VyIHRlc3QgZml4dHVyZSB0byBzZXQKLXRoZSBnb2xkZW4gZmls
ZSBuYW1lIGJhc2VkIG9uIHdoaWNoIHRlc3QgaXMgcnVubmluZy4gVGhlIGA6OnRlc3Rpbmc6OlRl
c3RJbmZvYAotY2xhc3MgaGFzIHRoaXMgaW5mb3JtYXRpb246Ci0KLWBgYGMrKwotbmFtZXNwYWNl
IHRlc3RpbmcgewotCi1jbGFzcyBUZXN0SW5mbyB7Ci0gcHVibGljOgotICAvLyBSZXR1cm5zIHRo
ZSB0ZXN0IGNhc2UgbmFtZSBhbmQgdGhlIHRlc3QgbmFtZSwgcmVzcGVjdGl2ZWx5LgotICAvLwot
ICAvLyBEbyBOT1QgZGVsZXRlIG9yIGZyZWUgdGhlIHJldHVybiB2YWx1ZSAtIGl0J3MgbWFuYWdl
ZCBieSB0aGUKLSAgLy8gVGVzdEluZm8gY2xhc3MuCi0gIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9u
YW1lKCkgY29uc3Q7Ci0gIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdDsKLX07Ci0KLX0KLWBgYAot
Ci1UbyBvYnRhaW4gYSBgVGVzdEluZm9gIG9iamVjdCBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5n
IHRlc3QsIGNhbGwKLWBjdXJyZW50X3Rlc3RfaW5mbygpYCBvbiB0aGUgYFVuaXRUZXN0YCBzaW5n
bGV0b24gb2JqZWN0OgotCi1gYGBjKysKLSAgLy8gR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg
Y3VycmVudGx5IHJ1bm5pbmcgdGVzdC4KLSAgLy8gRG8gTk9UIGRlbGV0ZSB0aGUgcmV0dXJuZWQg
b2JqZWN0IC0gaXQncyBtYW5hZ2VkIGJ5IHRoZSBVbml0VGVzdCBjbGFzcy4KLSAgY29uc3QgOjp0
ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KLSAgICA6OnRlc3Rpbmc6OlVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotCi0KLQotICBwcmludGYo
IldlIGFyZSBpbiB0ZXN0ICVzIG9mIHRlc3QgY2FzZSAlcy5cbiIsCi0gICAgICAgICB0ZXN0X2lu
Zm8tPm5hbWUoKSwKLSAgICAgICAgIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci1gYGAK
LQotYGN1cnJlbnRfdGVzdF9pbmZvKClgIHJldHVybnMgYSBudWxsIHBvaW50ZXIgaWYgbm8gdGVz
dCBpcyBydW5uaW5nLiBJbgotcGFydGljdWxhciwgeW91IGNhbm5vdCBmaW5kIHRoZSB0ZXN0IGNh
c2UgbmFtZSBpbiBgVGVzdENhc2VTZXRVcCgpYCwKLWBUZXN0Q2FzZVRlYXJEb3duKClgICh3aGVy
ZSB5b3Uga25vdyB0aGUgdGVzdCBjYXNlIG5hbWUgaW1wbGljaXRseSksIG9yCi1mdW5jdGlvbnMg
Y2FsbGVkIGZyb20gdGhlbS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1h
Yy4KLQotIyMgRXh0ZW5kaW5nIGdvb2dsZXRlc3QgYnkgSGFuZGxpbmcgVGVzdCBFdmVudHMKLQot
Z29vZ2xldGVzdCBwcm92aWRlcyBhbiAqKmV2ZW50IGxpc3RlbmVyIEFQSSoqIHRvIGxldCB5b3Ug
cmVjZWl2ZSBub3RpZmljYXRpb25zCi1hYm91dCB0aGUgcHJvZ3Jlc3Mgb2YgYSB0ZXN0IHByb2dy
YW0gYW5kIHRlc3QgZmFpbHVyZXMuIFRoZSBldmVudHMgeW91IGNhbgotbGlzdGVuIHRvIGluY2x1
ZGUgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHRlc3QgcHJvZ3JhbSwgYSB0ZXN0IGNhc2UsIG9y
IGEgdGVzdAotbWV0aG9kLCBhbW9uZyBvdGhlcnMuIFlvdSBtYXkgdXNlIHRoaXMgQVBJIHRvIGF1
Z21lbnQgb3IgcmVwbGFjZSB0aGUgc3RhbmRhcmQKLWNvbnNvbGUgb3V0cHV0LCByZXBsYWNlIHRo
ZSBYTUwgb3V0cHV0LCBvciBwcm92aWRlIGEgY29tcGxldGVseSBkaWZmZXJlbnQgZm9ybQotb2Yg
b3V0cHV0LCBzdWNoIGFzIGEgR1VJIG9yIGEgZGF0YWJhc2UuIFlvdSBjYW4gYWxzbyB1c2UgdGVz
dCBldmVudHMgYXMKLWNoZWNrcG9pbnRzIHRvIGltcGxlbWVudCBhIHJlc291cmNlIGxlYWsgY2hl
Y2tlciwgZm9yIGV4YW1wbGUuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBN
YWMuCi0KLSMjIyBEZWZpbmluZyBFdmVudCBMaXN0ZW5lcnMKLQotVG8gZGVmaW5lIGEgZXZlbnQg
bGlzdGVuZXIsIHlvdSBzdWJjbGFzcyBlaXRoZXIgdGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXIg
b3IKLXRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgVGhlIGZvcm1lciBpcyBhbiAoYWJz
dHJhY3QpIGludGVyZmFjZSwgd2hlcmUKLSplYWNoIHB1cmUgdmlydHVhbCBtZXRob2QgY2FuIGJl
IG92ZXJyaWRkZW4gdG8gaGFuZGxlIGEgdGVzdCBldmVudCogKEZvcgotZXhhbXBsZSwgd2hlbiBh
IHRlc3Qgc3RhcnRzLCB0aGUgYE9uVGVzdFN0YXJ0KClgIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4p
LiBUaGUKLWxhdHRlciBwcm92aWRlcyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBhbGwgbWV0
aG9kcyBpbiB0aGUgaW50ZXJmYWNlLCBzdWNoCi10aGF0IGEgc3ViY2xhc3Mgb25seSBuZWVkcyB0
byBvdmVycmlkZSB0aGUgbWV0aG9kcyBpdCBjYXJlcyBhYm91dC4KLQotV2hlbiBhbiBldmVudCBp
cyBmaXJlZCwgaXRzIGNvbnRleHQgaXMgcGFzc2VkIHRvIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIGFz
IGFuCi1hcmd1bWVudC4gVGhlIGZvbGxvd2luZyBhcmd1bWVudCB0eXBlcyBhcmUgdXNlZDoKLQot
KiAgIFVuaXRUZXN0IHJlZmxlY3RzIHRoZSBzdGF0ZSBvZiB0aGUgZW50aXJlIHRlc3QgcHJvZ3Jh
bSwKLSogICBUZXN0Q2FzZSBoYXMgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IGNhc2UsIHdoaWNo
IGNhbiBjb250YWluIG9uZSBvciBtb3JlCi0gICAgdGVzdHMsCi0qICAgVGVzdEluZm8gY29udGFp
bnMgdGhlIHN0YXRlIG9mIGEgdGVzdCwgYW5kCi0qICAgVGVzdFBhcnRSZXN1bHQgcmVwcmVzZW50
cyB0aGUgcmVzdWx0IG9mIGEgdGVzdCBhc3NlcnRpb24uCi0KLUFuIGV2ZW50IGhhbmRsZXIgZnVu
Y3Rpb24gY2FuIGV4YW1pbmUgdGhlIGFyZ3VtZW50IGl0IHJlY2VpdmVzIHRvIGZpbmQgb3V0Ci1p
bnRlcmVzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnQgYW5kIHRoZSB0ZXN0IHByb2dy
YW0ncyBzdGF0ZS4KLQotSGVyZSdzIGFuIGV4YW1wbGU6Ci0KLWBgYGMrKwotICBjbGFzcyBNaW5p
bWFsaXN0UHJpbnRlciA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIg
ewotICAgIC8vIENhbGxlZCBiZWZvcmUgYSB0ZXN0IHN0YXJ0cy4KLSAgICB2aXJ0dWFsIHZvaWQg
T25UZXN0U3RhcnQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAg
ICBwcmludGYoIioqKiBUZXN0ICVzLiVzIHN0YXJ0aW5nLlxuIiwKLSAgICAgICAgICAgICB0ZXN0
X2luZm8udGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgfQotCi0gICAg
Ly8gQ2FsbGVkIGFmdGVyIGEgZmFpbGVkIGFzc2VydGlvbiBvciBhIFNVQ0NFU1MoKS4KLSAgICB2
aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVz
dWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSB7Ci0gICAgICBwcmludGYoIiVzIGluICVzOiVkXG4lc1xu
IiwKLSAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZhaWxlZCgpID8gIioqKiBGYWlsdXJl
IiA6ICJTdWNjZXNzIiwKLSAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmZpbGVfbmFtZSgp
LAotICAgICAgICAgICAgIHRlc3RfcGFydF9yZXN1bHQubGluZV9udW1iZXIoKSwKLSAgICAgICAg
ICAgICB0ZXN0X3BhcnRfcmVzdWx0LnN1bW1hcnkoKSk7Ci0gICAgfQotCi0gICAgLy8gQ2FsbGVk
IGFmdGVyIGEgdGVzdCBlbmRzLgotICAgIHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgOjp0
ZXN0aW5nOjpUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgICBwcmludGYoIioqKiBUZXN0ICVz
LiVzIGVuZGluZy5cbiIsCi0gICAgICAgICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCks
IHRlc3RfaW5mby5uYW1lKCkpOwotICAgIH0KLSAgfTsKLWBgYAotCi0jIyMgVXNpbmcgRXZlbnQg
TGlzdGVuZXJzCi0KLVRvIHVzZSB0aGUgZXZlbnQgbGlzdGVuZXIgeW91IGhhdmUgZGVmaW5lZCwg
YWRkIGFuIGluc3RhbmNlIG9mIGl0IHRvIHRoZQotZ29vZ2xldGVzdCBldmVudCBsaXN0ZW5lciBs
aXN0IChyZXByZXNlbnRlZCBieSBjbGFzcyBUZXN0RXZlbnRMaXN0ZW5lcnMgLSBub3RlCi10aGUg
InMiIGF0IHRoZSBlbmQgb2YgdGhlIG5hbWUpIGluIHlvdXIgYG1haW4oKWAgZnVuY3Rpb24sIGJl
Zm9yZSBjYWxsaW5nCi1gUlVOX0FMTF9URVNUUygpYDoKLQotYGBgYysrCi1pbnQgbWFpbihpbnQg
YXJnYywgY2hhcioqIGFyZ3YpIHsKLSAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywg
YXJndik7Ci0gIC8vIEdldHMgaG9sZCBvZiB0aGUgZXZlbnQgbGlzdGVuZXIgbGlzdC4KLSAgOjp0
ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lcnMmIGxpc3RlbmVycyA9Ci0gICAgICAgIDo6dGVzdGlu
Zzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpOwotICAvLyBBZGRzIGEgbGlz
dGVuZXIgdG8gdGhlIGVuZC4gIGdvb2dsZXRlc3QgdGFrZXMgdGhlIG93bmVyc2hpcC4KLSAgbGlz
dGVuZXJzLkFwcGVuZChuZXcgTWluaW1hbGlzdFByaW50ZXIpOwotICByZXR1cm4gUlVOX0FMTF9U
RVNUUygpOwotfQotYGBgCi0KLVRoZXJlJ3Mgb25seSBvbmUgcHJvYmxlbTogdGhlIGRlZmF1bHQg
dGVzdCByZXN1bHQgcHJpbnRlciBpcyBzdGlsbCBpbiBlZmZlY3QsIHNvCi1pdHMgb3V0cHV0IHdp
bGwgbWluZ2xlIHdpdGggdGhlIG91dHB1dCBmcm9tIHlvdXIgbWluaW1hbGlzdCBwcmludGVyLiBU
byBzdXBwcmVzcwotdGhlIGRlZmF1bHQgcHJpbnRlciwganVzdCByZWxlYXNlIGl0IGZyb20gdGhl
IGV2ZW50IGxpc3RlbmVyIGxpc3QgYW5kIGRlbGV0ZSBpdC4KLVlvdSBjYW4gZG8gc28gYnkgYWRk
aW5nIG9uZSBsaW5lOgotCi1gYGBjKysKLSAgLi4uCi0gIGRlbGV0ZSBsaXN0ZW5lcnMuUmVsZWFz
ZShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1bHRfcHJpbnRlcigpKTsKLSAgbGlzdGVuZXJzLkFwcGVu
ZChuZXcgTWluaW1hbGlzdFByaW50ZXIpOwotICByZXR1cm4gUlVOX0FMTF9URVNUUygpOwotYGBg
Ci0KLU5vdywgc2l0IGJhY2sgYW5kIGVuam95IGEgY29tcGxldGVseSBkaWZmZXJlbnQgb3V0cHV0
IGZyb20geW91ciB0ZXN0cy4gRm9yIG1vcmUKLWRldGFpbHMsIHlvdSBjYW4gcmVhZCB0aGlzIHNh
bXBsZTlfdW5pdHRlc3QuY2MKLQotWW91IG1heSBhcHBlbmQgbW9yZSB0aGFuIG9uZSBsaXN0ZW5l
ciB0byB0aGUgbGlzdC4gV2hlbiBhbiBgT24qU3RhcnQoKWAgb3IKLWBPblRlc3RQYXJ0UmVzdWx0
KClgIGV2ZW50IGlzIGZpcmVkLCB0aGUgbGlzdGVuZXJzIHdpbGwgcmVjZWl2ZSBpdCBpbiB0aGUg
b3JkZXIKLXRoZXkgYXBwZWFyIGluIHRoZSBsaXN0IChzaW5jZSBuZXcgbGlzdGVuZXJzIGFyZSBh
ZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LAotdGhlIGRlZmF1bHQgdGV4dCBwcmludGVyIGFu
ZCB0aGUgZGVmYXVsdCBYTUwgZ2VuZXJhdG9yIHdpbGwgcmVjZWl2ZSB0aGUgZXZlbnQKLWZpcnN0
KS4gQW4gYE9uKkVuZCgpYCBldmVudCB3aWxsIGJlIHJlY2VpdmVkIGJ5IHRoZSBsaXN0ZW5lcnMg
aW4gdGhlICpyZXZlcnNlKgotb3JkZXIuIFRoaXMgYWxsb3dzIG91dHB1dCBieSBsaXN0ZW5lcnMg
YWRkZWQgbGF0ZXIgdG8gYmUgZnJhbWVkIGJ5IG91dHB1dCBmcm9tCi1saXN0ZW5lcnMgYWRkZWQg
ZWFybGllci4KLQotIyMjIEdlbmVyYXRpbmcgRmFpbHVyZXMgaW4gTGlzdGVuZXJzCi0KLVlvdSBt
YXkgdXNlIGZhaWx1cmUtcmFpc2luZyBtYWNyb3MgKGBFWFBFQ1RfKigpYCwgYEFTU0VSVF8qKClg
LCBgRkFJTCgpYCwgZXRjKQotd2hlbiBwcm9jZXNzaW5nIGFuIGV2ZW50LiBUaGVyZSBhcmUgc29t
ZSByZXN0cmljdGlvbnM6Ci0KLTEuICBZb3UgY2Fubm90IGdlbmVyYXRlIGFueSBmYWlsdXJlIGlu
IGBPblRlc3RQYXJ0UmVzdWx0KClgIChvdGhlcndpc2UgaXQgd2lsbAotICAgIGNhdXNlIGBPblRl
c3RQYXJ0UmVzdWx0KClgIHRvIGJlIGNhbGxlZCByZWN1cnNpdmVseSkuCi0xLiAgQSBsaXN0ZW5l
ciB0aGF0IGhhbmRsZXMgYE9uVGVzdFBhcnRSZXN1bHQoKWAgaXMgbm90IGFsbG93ZWQgdG8gZ2Vu
ZXJhdGUgYW55Ci0gICAgZmFpbHVyZS4KLQotV2hlbiB5b3UgYWRkIGxpc3RlbmVycyB0byB0aGUg
bGlzdGVuZXIgbGlzdCwgeW91IHNob3VsZCBwdXQgbGlzdGVuZXJzIHRoYXQKLWhhbmRsZSBgT25U
ZXN0UGFydFJlc3VsdCgpYCAqYmVmb3JlKiBsaXN0ZW5lcnMgdGhhdCBjYW4gZ2VuZXJhdGUgZmFp
bHVyZXMuIFRoaXMKLWVuc3VyZXMgdGhhdCBmYWlsdXJlcyBnZW5lcmF0ZWQgYnkgdGhlIGxhdHRl
ciBhcmUgYXR0cmlidXRlZCB0byB0aGUgcmlnaHQgdGVzdAotYnkgdGhlIGZvcm1lci4KLQotV2Ug
aGF2ZSBhIHNhbXBsZSBvZiBmYWlsdXJlLXJhaXNpbmcgbGlzdGVuZXIgc2FtcGxlMTBfdW5pdHRl
c3QuY2MKLQotIyMgUnVubmluZyBUZXN0IFByb2dyYW1zOiBBZHZhbmNlZCBPcHRpb25zCi0KLWdv
b2dsZXRlc3QgdGVzdCBwcm9ncmFtcyBhcmUgb3JkaW5hcnkgZXhlY3V0YWJsZXMuIE9uY2UgYnVp
bHQsIHlvdSBjYW4gcnVuIHRoZW0KLWRpcmVjdGx5IGFuZCBhZmZlY3QgdGhlaXIgYmVoYXZpb3Ig
dmlhIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzCi1hbmQvb3IgY29tbWFuZCBs
aW5lIGZsYWdzLiBGb3IgdGhlIGZsYWdzIHRvIHdvcmssIHlvdXIgcHJvZ3JhbXMgbXVzdCBjYWxs
Ci1gOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgpYCBiZWZvcmUgY2FsbGluZyBgUlVOX0FMTF9U
RVNUUygpYC4KLQotVG8gc2VlIGEgbGlzdCBvZiBzdXBwb3J0ZWQgZmxhZ3MgYW5kIHRoZWlyIHVz
YWdlLCBwbGVhc2UgcnVuIHlvdXIgdGVzdCBwcm9ncmFtCi13aXRoIHRoZSBgLS1oZWxwYCBmbGFn
LiBZb3UgY2FuIGFsc28gdXNlIGAtaGAsIGAtP2AsIG9yIGAvP2AgZm9yIHNob3J0LgotCi1JZiBh
biBvcHRpb24gaXMgc3BlY2lmaWVkIGJvdGggYnkgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYW5k
IGJ5IGEgZmxhZywgdGhlCi1sYXR0ZXIgdGFrZXMgcHJlY2VkZW5jZS4KLQotIyMjIFNlbGVjdGlu
ZyBUZXN0cwotCi0jIyMjIExpc3RpbmcgVGVzdCBOYW1lcwotCi1Tb21ldGltZXMgaXQgaXMgbmVj
ZXNzYXJ5IHRvIGxpc3QgdGhlIGF2YWlsYWJsZSB0ZXN0cyBpbiBhIHByb2dyYW0gYmVmb3JlCi1y
dW5uaW5nIHRoZW0gc28gdGhhdCBhIGZpbHRlciBtYXkgYmUgYXBwbGllZCBpZiBuZWVkZWQuIElu
Y2x1ZGluZyB0aGUgZmxhZwotYC0tZ3Rlc3RfbGlzdF90ZXN0c2Agb3ZlcnJpZGVzIGFsbCBvdGhl
ciBmbGFncyBhbmQgbGlzdHMgdGVzdHMgaW4gdGhlIGZvbGxvd2luZwotZm9ybWF0OgotCi1gYGBu
b25lCi1UZXN0Q2FzZTEuCi0gIFRlc3ROYW1lMQotICBUZXN0TmFtZTIKLVRlc3RDYXNlMi4KLSAg
VGVzdE5hbWUKLWBgYAotCi1Ob25lIG9mIHRoZSB0ZXN0cyBsaXN0ZWQgYXJlIGFjdHVhbGx5IHJ1
biBpZiB0aGUgZmxhZyBpcyBwcm92aWRlZC4gVGhlcmUgaXMgbm8KLWNvcnJlc3BvbmRpbmcgZW52
aXJvbm1lbnQgdmFyaWFibGUgZm9yIHRoaXMgZmxhZy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGlu
dXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBSdW5uaW5nIGEgU3Vic2V0IG9mIHRoZSBUZXN0cwot
Ci1CeSBkZWZhdWx0LCBhIGdvb2dsZXRlc3QgcHJvZ3JhbSBydW5zIGFsbCB0ZXN0cyB0aGUgdXNl
ciBoYXMgZGVmaW5lZC4gU29tZXRpbWVzLAoteW91IHdhbnQgdG8gcnVuIG9ubHkgYSBzdWJzZXQg
b2YgdGhlIHRlc3RzIChlLmcuIGZvciBkZWJ1Z2dpbmcgb3IgcXVpY2tseQotdmVyaWZ5aW5nIGEg
Y2hhbmdlKS4gSWYgeW91IHNldCB0aGUgYEdURVNUX0ZJTFRFUmAgZW52aXJvbm1lbnQgdmFyaWFi
bGUgb3IgdGhlCi1gLS1ndGVzdF9maWx0ZXJgIGZsYWcgdG8gYSBmaWx0ZXIgc3RyaW5nLCBnb29n
bGV0ZXN0IHdpbGwgb25seSBydW4gdGhlIHRlc3RzCi13aG9zZSBmdWxsIG5hbWVzIChpbiB0aGUg
Zm9ybSBvZiBgVGVzdENhc2VOYW1lLlRlc3ROYW1lYCkgbWF0Y2ggdGhlIGZpbHRlci4KLQotVGhl
IGZvcm1hdCBvZiBhIGZpbHRlciBpcyBhICdgOmAnLXNlcGFyYXRlZCBsaXN0IG9mIHdpbGRjYXJk
IHBhdHRlcm5zIChjYWxsZWQKLXRoZSAqcG9zaXRpdmUgcGF0dGVybnMqKSBvcHRpb25hbGx5IGZv
bGxvd2VkIGJ5IGEgJ2AtYCcgYW5kIGFub3RoZXIKLSdgOmAnLXNlcGFyYXRlZCBwYXR0ZXJuIGxp
c3QgKGNhbGxlZCB0aGUgKm5lZ2F0aXZlIHBhdHRlcm5zKikuIEEgdGVzdCBtYXRjaGVzCi10aGUg
ZmlsdGVyIGlmIGFuZCBvbmx5IGlmIGl0IG1hdGNoZXMgYW55IG9mIHRoZSBwb3NpdGl2ZSBwYXR0
ZXJucyBidXQgZG9lcyBub3QKLW1hdGNoIGFueSBvZiB0aGUgbmVnYXRpdmUgcGF0dGVybnMuCi0K
LUEgcGF0dGVybiBtYXkgY29udGFpbiBgJyonYCAobWF0Y2hlcyBhbnkgc3RyaW5nKSBvciBgJz8n
YCAobWF0Y2hlcyBhbnkgc2luZ2xlCi1jaGFyYWN0ZXIpLiBGb3IgY29udmVuaWVuY2UsIHRoZSBm
aWx0ZXIKLQotYCcqLU5lZ2F0aXZlUGF0dGVybnMnYCBjYW4gYmUgYWxzbyB3cml0dGVuIGFzIGAn
LU5lZ2F0aXZlUGF0dGVybnMnYC4KLQotRm9yIGV4YW1wbGU6Ci0KLSogICBgLi9mb29fdGVzdGAg
SGFzIG5vIGZsYWcsIGFuZCB0aHVzIHJ1bnMgYWxsIGl0cyB0ZXN0cy4KLSogICBgLi9mb29fdGVz
dCAtLWd0ZXN0X2ZpbHRlcj0qYCBBbHNvIHJ1bnMgZXZlcnl0aGluZywgZHVlIHRvIHRoZSBzaW5n
bGUKLSAgICBtYXRjaC1ldmVyeXRoaW5nIGAqYCB2YWx1ZS4KLSogICBgLi9mb29fdGVzdCAtLWd0
ZXN0X2ZpbHRlcj1Gb29UZXN0LipgIFJ1bnMgZXZlcnl0aGluZyBpbiB0ZXN0IGNhc2UgYEZvb1Rl
c3RgCi0gICAgLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3RfZmlsdGVyPSpOdWxsKjoqQ29uc3Ry
dWN0b3IqYCBSdW5zIGFueSB0ZXN0IHdob3NlIGZ1bGwKLSAgICBuYW1lIGNvbnRhaW5zIGVpdGhl
ciBgIk51bGwiYCBvciBgIkNvbnN0cnVjdG9yImAgLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rlc3Rf
ZmlsdGVyPS0qRGVhdGhUZXN0LipgIFJ1bnMgYWxsIG5vbi1kZWF0aCB0ZXN0cy4KLSogICBgLi9m
b29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj1Gb29UZXN0LiotRm9vVGVzdC5CYXJgIFJ1bnMgZXZlcnl0
aGluZyBpbiB0ZXN0Ci0gICAgY2FzZSBgRm9vVGVzdGAgZXhjZXB0IGBGb29UZXN0LkJhcmAuCi0q
ICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0ZXI9Rm9vVGVzdC4qOkJhclRlc3QuKi1Gb29UZXN0
LkJhcjpCYXJUZXN0LkZvb2AgUnVucwotICAgIGV2ZXJ5dGhpbmcgaW4gdGVzdCBjYXNlIGBGb29U
ZXN0YCBleGNlcHQgYEZvb1Rlc3QuQmFyYCBhbmQgZXZlcnl0aGluZyBpbgotICAgIHRlc3QgY2Fz
ZSBgQmFyVGVzdGAgZXhjZXB0IGBCYXJUZXN0LkZvb2AuCi0gICAgCi0jIyMjIFRlbXBvcmFyaWx5
IERpc2FibGluZyBUZXN0cwotCi1JZiB5b3UgaGF2ZSBhIGJyb2tlbiB0ZXN0IHRoYXQgeW91IGNh
bm5vdCBmaXggcmlnaHQgYXdheSwgeW91IGNhbiBhZGQgdGhlCi1gRElTQUJMRURfYCBwcmVmaXgg
dG8gaXRzIG5hbWUuIFRoaXMgd2lsbCBleGNsdWRlIGl0IGZyb20gZXhlY3V0aW9uLiBUaGlzIGlz
Ci1iZXR0ZXIgdGhhbiBjb21tZW50aW5nIG91dCB0aGUgY29kZSBvciB1c2luZyBgI2lmIDBgLCBh
cyBkaXNhYmxlZCB0ZXN0cyBhcmUKLXN0aWxsIGNvbXBpbGVkIChhbmQgdGh1cyB3b24ndCByb3Qp
LgotCi1JZiB5b3UgbmVlZCB0byBkaXNhYmxlIGFsbCB0ZXN0cyBpbiBhIHRlc3QgY2FzZSwgeW91
IGNhbiBlaXRoZXIgYWRkIGBESVNBQkxFRF9gCi10byB0aGUgZnJvbnQgb2YgdGhlIG5hbWUgb2Yg
ZWFjaCB0ZXN0LCBvciBhbHRlcm5hdGl2ZWx5IGFkZCBpdCB0byB0aGUgZnJvbnQgb2YKLXRoZSB0
ZXN0IGNhc2UgbmFtZS4KLQotRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgdGVzdHMgd29uJ3Qg
YmUgcnVuIGJ5IGdvb2dsZXRlc3QsIGV2ZW4gdGhvdWdoIHRoZXkKLXdpbGwgc3RpbGwgYmUgY29t
cGlsZWQ6Ci0KLWBgYGMrKwotLy8gVGVzdHMgdGhhdCBGb28gZG9lcyBBYmMuCi1URVNUKEZvb1Rl
c3QsIERJU0FCTEVEX0RvZXNBYmMpIHsgLi4uIH0KLQotY2xhc3MgRElTQUJMRURfQmFyVGVzdCA6
IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeyAuLi4gfTsKLQotLy8gVGVzdHMgdGhhdCBCYXIgZG9l
cyBYeXouCi1URVNUX0YoRElTQUJMRURfQmFyVGVzdCwgRG9lc1h5eikgeyAuLi4gfQotYGBgCi0K
LU5PVEU6IFRoaXMgZmVhdHVyZSBzaG91bGQgb25seSBiZSB1c2VkIGZvciB0ZW1wb3JhcnkgcGFp
bi1yZWxpZWYuIFlvdSBzdGlsbCBoYXZlCi10byBmaXggdGhlIGRpc2FibGVkIHRlc3RzIGF0IGEg
bGF0ZXIgZGF0ZS4gQXMgYSByZW1pbmRlciwgZ29vZ2xldGVzdCB3aWxsIHByaW50Ci1hIGJhbm5l
ciB3YXJuaW5nIHlvdSBpZiBhIHRlc3QgcHJvZ3JhbSBjb250YWlucyBhbnkgZGlzYWJsZWQgdGVz
dHMuCi0KLVRJUDogWW91IGNhbiBlYXNpbHkgY291bnQgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0
ZXN0cyB5b3UgaGF2ZSB1c2luZyBgZ3NlYXJjaGAKLWFuZC9vciBgZ3JlcGAuIFRoaXMgbnVtYmVy
IGNhbiBiZSB1c2VkIGFzIGEgbWV0cmljIGZvciBpbXByb3ZpbmcgeW91ciB0ZXN0Ci1xdWFsaXR5
LgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFRlbXBv
cmFyaWx5IEVuYWJsaW5nIERpc2FibGVkIFRlc3RzCi0KLVRvIGluY2x1ZGUgZGlzYWJsZWQgdGVz
dHMgaW4gdGVzdCBleGVjdXRpb24sIGp1c3QgaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gd2l0aAot
dGhlIGAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzYCBmbGFnIG9yIHNldCB0aGUKLWBH
VEVTVF9BTFNPX1JVTl9ESVNBQkxFRF9URVNUU2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSB2
YWx1ZSBvdGhlciB0aGFuIGAwYC4KLVlvdSBjYW4gY29tYmluZSB0aGlzIHdpdGggdGhlIGAtLWd0
ZXN0X2ZpbHRlcmAgZmxhZyB0byBmdXJ0aGVyIHNlbGVjdCB3aGljaAotZGlzYWJsZWQgdGVzdHMg
dG8gcnVuLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMg
UmVwZWF0aW5nIHRoZSBUZXN0cwotCi1PbmNlIGluIGEgd2hpbGUgeW91J2xsIHJ1biBpbnRvIGEg
dGVzdCB3aG9zZSByZXN1bHQgaXMgaGl0LW9yLW1pc3MuIFBlcmhhcHMgaXQKLXdpbGwgZmFpbCBv
bmx5IDElIG9mIHRoZSB0aW1lLCBtYWtpbmcgaXQgcmF0aGVyIGhhcmQgdG8gcmVwcm9kdWNlIHRo
ZSBidWcgdW5kZXIKLWEgZGVidWdnZXIuIFRoaXMgY2FuIGJlIGEgbWFqb3Igc291cmNlIG9mIGZy
dXN0cmF0aW9uLgotCi1UaGUgYC0tZ3Rlc3RfcmVwZWF0YCBmbGFnIGFsbG93cyB5b3UgdG8gcmVw
ZWF0IGFsbCAob3Igc2VsZWN0ZWQpIHRlc3QgbWV0aG9kcyBpbgotYSBwcm9ncmFtIG1hbnkgdGlt
ZXMuIEhvcGVmdWxseSwgYSBmbGFreSB0ZXN0IHdpbGwgZXZlbnR1YWxseSBmYWlsIGFuZCBnaXZl
IHlvdQotYSBjaGFuY2UgdG8gZGVidWcuIEhlcmUncyBob3cgdG8gdXNlIGl0OgotCi1gYGBub25l
Ci0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDAKLVJlcGVhdCBmb29fdGVzdCAxMDAwIHRp
bWVzIGFuZCBkb24ndCBzdG9wIGF0IGZhaWx1cmVzLgotCi0kIGZvb190ZXN0IC0tZ3Rlc3RfcmVw
ZWF0PS0xCi1BIG5lZ2F0aXZlIGNvdW50IG1lYW5zIHJlcGVhdGluZyBmb3JldmVyLgotCi0kIGZv
b190ZXN0IC0tZ3Rlc3RfcmVwZWF0PTEwMDAgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlCi1SZXBl
YXQgZm9vX3Rlc3QgMTAwMCB0aW1lcywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZhaWx1cmUuICBU
aGlzCi1pcyBlc3BlY2lhbGx5IHVzZWZ1bCB3aGVuIHJ1bm5pbmcgdW5kZXIgYSBkZWJ1Z2dlcjog
d2hlbiB0aGUgdGVzdAotZmFpbHMsIGl0IHdpbGwgZHJvcCBpbnRvIHRoZSBkZWJ1Z2dlciBhbmQg
eW91IGNhbiB0aGVuIGluc3BlY3QKLXZhcmlhYmxlcyBhbmQgc3RhY2tzLgotCi0kIGZvb190ZXN0
IC0tZ3Rlc3RfcmVwZWF0PTEwMDAgLS1ndGVzdF9maWx0ZXI9Rm9vQmFyLioKLVJlcGVhdCB0aGUg
dGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIHRoZSBmaWx0ZXIgMTAwMCB0aW1lcy4KLWBgYAotCi1J
ZiB5b3VyIHRlc3QgcHJvZ3JhbSBjb250YWlucyBbZ2xvYmFsIHNldC11cC90ZWFyLWRvd25dKCNn
bG9iYWwtc2V0LXVwLWFuZC10ZWFyLWRvd24pIGNvZGUsIGl0Ci13aWxsIGJlIHJlcGVhdGVkIGlu
IGVhY2ggaXRlcmF0aW9uIGFzIHdlbGwsIGFzIHRoZSBmbGFraW5lc3MgbWF5IGJlIGluIGl0LiBZ
b3UKLWNhbiBhbHNvIHNwZWNpZnkgdGhlIHJlcGVhdCBjb3VudCBieSBzZXR0aW5nIHRoZSBgR1RF
U1RfUkVQRUFUYCBlbnZpcm9ubWVudAotdmFyaWFibGUuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExp
bnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBTaHVmZmxpbmcgdGhlIFRlc3RzCi0KLVlvdSBjYW4g
c3BlY2lmeSB0aGUgYC0tZ3Rlc3Rfc2h1ZmZsZWAgZmxhZyAob3Igc2V0IHRoZSBgR1RFU1RfU0hV
RkZMRWAKLWVudmlyb25tZW50IHZhcmlhYmxlIHRvIGAxYCkgdG8gcnVuIHRoZSB0ZXN0cyBpbiBh
IHByb2dyYW0gaW4gYSByYW5kb20gb3JkZXIuCi1UaGlzIGhlbHBzIHRvIHJldmVhbCBiYWQgZGVw
ZW5kZW5jaWVzIGJldHdlZW4gdGVzdHMuCi0KLUJ5IGRlZmF1bHQsIGdvb2dsZXRlc3QgdXNlcyBh
IHJhbmRvbSBzZWVkIGNhbGN1bGF0ZWQgZnJvbSB0aGUgY3VycmVudCB0aW1lLgotVGhlcmVmb3Jl
IHlvdSdsbCBnZXQgYSBkaWZmZXJlbnQgb3JkZXIgZXZlcnkgdGltZS4gVGhlIGNvbnNvbGUgb3V0
cHV0IGluY2x1ZGVzCi10aGUgcmFuZG9tIHNlZWQgdmFsdWUsIHN1Y2ggdGhhdCB5b3UgY2FuIHJl
cHJvZHVjZSBhbiBvcmRlci1yZWxhdGVkIHRlc3QgZmFpbHVyZQotbGF0ZXIuIFRvIHNwZWNpZnkg
dGhlIHJhbmRvbSBzZWVkIGV4cGxpY2l0bHksIHVzZSB0aGUgYC0tZ3Rlc3RfcmFuZG9tX3NlZWQ9
U0VFRGAKLWZsYWcgKG9yIHNldCB0aGUgYEdURVNUX1JBTkRPTV9TRUVEYCBlbnZpcm9ubWVudCB2
YXJpYWJsZSksIHdoZXJlIGBTRUVEYCBpcyBhbgotaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzAsIDk5
OTk5XS4gVGhlIHNlZWQgdmFsdWUgMCBpcyBzcGVjaWFsOiBpdCB0ZWxscwotZ29vZ2xldGVzdCB0
byBkbyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBjYWxjdWxhdGluZyB0aGUgc2VlZCBmcm9tIHRo
ZSBjdXJyZW50Ci10aW1lLgotCi1JZiB5b3UgY29tYmluZSB0aGlzIHdpdGggYC0tZ3Rlc3RfcmVw
ZWF0PU5gLCBnb29nbGV0ZXN0IHdpbGwgcGljayBhIGRpZmZlcmVudAotcmFuZG9tIHNlZWQgYW5k
IHJlLXNodWZmbGUgdGhlIHRlc3RzIGluIGVhY2ggaXRlcmF0aW9uLgotCi0qKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgQ29udHJvbGxpbmcgVGVzdCBPdXRwdXQK
LQotIyMjIyBDb2xvcmVkIFRlcm1pbmFsIE91dHB1dAotCi1nb29nbGV0ZXN0IGNhbiB1c2UgY29s
b3JzIGluIGl0cyB0ZXJtaW5hbCBvdXRwdXQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCB0aGUK
LWltcG9ydGFudCBpbmZvcm1hdGlvbjoKLQotLi4uPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpn
cmVlbiI+Wy0tLS0tLS0tLS1dPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gMSB0ZXN0IGZyb20g
Rm9vVGVzdDxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlsgUlVOICAgICAgXTxzcGFu
IHN0eWxlPSJjb2xvcjpibGFjayI+IEZvb1Rlc3QuRG9lc0FiYzxici8+Ci08c3BhbiBzdHlsZT0i
Y29sb3I6Z3JlZW4iPlsgICAgICAgT0sgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEZvb1Rl
c3QuRG9lc0FiYzxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlstLS0tLS0tLS0tXTxz
cGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IDIgdGVzdHMgZnJvbSBCYXJUZXN0PGJyLz4KLTxzcGFu
IHN0eWxlPSJjb2xvcjpncmVlbiI+WyBSVU4gICAgICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNr
Ij4gQmFyVGVzdC5IYXNYeXpQcm9wZXJ0eTxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4i
PlsgICAgICAgT0sgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEJhclRlc3QuSGFzWHl6UHJv
cGVydHk8YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bIFJVTiAgICAgIF08c3BhbiBz
dHlsZT0iY29sb3I6YmxhY2siPiBCYXJUZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLS4u
LiBzb21lIGVycm9yIG1lc3NhZ2VzIC4uLjxici8+Ci08c3BhbiAgIHN0eWxlPSJjb2xvcjpyZWQi
PlsgIEZBSUxFRCAgXSA8c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkJhclRlc3QuUmV0dXJuc1Ry
dWVPblN1Y2Nlc3M8YnIvPgotLi4uPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+Wz09
PT09PT09PT1dPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gMzAgdGVzdHMgZnJvbSAxNCB0ZXN0
IGNhc2VzIHJhbi48YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bICBQQVNTRUQgIF08
c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiAyOCB0ZXN0cy48YnIvPgotPHNwYW4gc3R5bGU9ImNv
bG9yOnJlZCI+WyAgRkFJTEVEICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4gMiB0ZXN0cywg
bGlzdGVkIGJlbG93Ojxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6cmVkIj5bICBGQUlMRUQgIF08
c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBCYXJUZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJy
Lz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpyZWQiPlsgIEZBSUxFRCAgXTxzcGFuIHN0eWxlPSJjb2xv
cjpibGFjayI+IEFub3RoZXJUZXN0LkRvZXNYeXo8YnIvPgotICAyIEZBSUxFRCBURVNUUwotCi1Z
b3UgY2FuIHNldCB0aGUgYEdURVNUX0NPTE9SYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUg
YC0tZ3Rlc3RfY29sb3JgCi1jb21tYW5kIGxpbmUgZmxhZyB0byBgeWVzYCwgYG5vYCwgb3IgYGF1
dG9gICh0aGUgZGVmYXVsdCkgdG8gZW5hYmxlIGNvbG9ycywKLWRpc2FibGUgY29sb3JzLCBvciBs
ZXQgZ29vZ2xldGVzdCBkZWNpZGUuIFdoZW4gdGhlIHZhbHVlIGlzIGBhdXRvYCwgZ29vZ2xldGVz
dAotd2lsbCB1c2UgY29sb3JzIGlmIGFuZCBvbmx5IGlmIHRoZSBvdXRwdXQgZ29lcyB0byBhIHRl
cm1pbmFsIGFuZCAob24gbm9uLVdpbmRvd3MKLXBsYXRmb3JtcykgdGhlIGBURVJNYCBlbnZpcm9u
bWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gYHh0ZXJtYCBvciBgeHRlcm0tY29sb3JgLgotCi0gKipB
dmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBTdXBwcmVzc2luZyB0
aGUgRWxhcHNlZCBUaW1lCi0KLUJ5IGRlZmF1bHQsIGdvb2dsZXRlc3QgcHJpbnRzIHRoZSB0aW1l
IGl0IHRha2VzIHRvIHJ1biBlYWNoIHRlc3QuIFRvIGRpc2FibGUKLXRoYXQsIHJ1biB0aGUgdGVz
dCBwcm9ncmFtIHdpdGggdGhlIGAtLWd0ZXN0X3ByaW50X3RpbWU9MGAgY29tbWFuZCBsaW5lIGZs
YWcsIG9yCi1zZXQgdGhlIEdURVNUX1BSSU5UX1RJTUUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
YDBgLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIFN1
cHByZXNzaW5nIFVURi04IFRleHQgT3V0cHV0Ci0KLUluIGNhc2Ugb2YgYXNzZXJ0aW9uIGZhaWx1
cmVzLCBnb29nbGV0ZXN0IHByaW50cyBleHBlY3RlZCBhbmQgYWN0dWFsIHZhbHVlcyBvZgotdHlw
ZSBgc3RyaW5nYCBib3RoIGFzIGhleC1lbmNvZGVkIHN0cmluZ3MgYXMgd2VsbCBhcyBpbiByZWFk
YWJsZSBVVEYtOCB0ZXh0IGlmCi10aGV5IGNvbnRhaW4gdmFsaWQgbm9uLUFTQ0lJIFVURi04IGNo
YXJhY3RlcnMuIElmIHlvdSB3YW50IHRvIHN1cHByZXNzIHRoZSBVVEYtOAotdGV4dCBiZWNhdXNl
LCBmb3IgZXhhbXBsZSwgeW91IGRvbid0IGhhdmUgYW4gVVRGLTggY29tcGF0aWJsZSBvdXRwdXQg
bWVkaXVtLCBydW4KLXRoZSB0ZXN0IHByb2dyYW0gd2l0aCBgLS1ndGVzdF9wcmludF91dGY4PTBg
IG9yIHNldCB0aGUgYEdURVNUX1BSSU5UX1VURjhgCi1lbnZpcm9ubWVudCB2YXJpYWJsZSB0byBg
MGAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLQotIyMjIyBH
ZW5lcmF0aW5nIGFuIFhNTCBSZXBvcnQKLQotZ29vZ2xldGVzdCBjYW4gZW1pdCBhIGRldGFpbGVk
IFhNTCByZXBvcnQgdG8gYSBmaWxlIGluIGFkZGl0aW9uIHRvIGl0cyBub3JtYWwKLXRleHR1YWwg
b3V0cHV0LiBUaGUgcmVwb3J0IGNvbnRhaW5zIHRoZSBkdXJhdGlvbiBvZiBlYWNoIHRlc3QsIGFu
ZCB0aHVzIGNhbiBoZWxwCi15b3UgaWRlbnRpZnkgc2xvdyB0ZXN0cy4gVGhlIHJlcG9ydCBpcyBh
bHNvIHVzZWQgYnkgdGhlIGh0dHA6Ly91bml0dGVzdAotZGFzaGJvYXJkIHRvIHNob3cgcGVyLXRl
c3QtbWV0aG9kIGVycm9yIG1lc3NhZ2VzLgotCi1UbyBnZW5lcmF0ZSB0aGUgWE1MIHJlcG9ydCwg
c2V0IHRoZSBgR1RFU1RfT1VUUFVUYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAtLWd0
ZXN0X291dHB1dGAgZmxhZyB0byB0aGUgc3RyaW5nIGAieG1sOnBhdGhfdG9fb3V0cHV0X2ZpbGUi
YCwgd2hpY2ggd2lsbAotY3JlYXRlIHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi4gWW91
IGNhbiBhbHNvIGp1c3QgdXNlIHRoZSBzdHJpbmcgYCJ4bWwiYCwKLWluIHdoaWNoIGNhc2UgdGhl
IG91dHB1dCBjYW4gYmUgZm91bmQgaW4gdGhlIGB0ZXN0X2RldGFpbC54bWxgIGZpbGUgaW4gdGhl
Ci1jdXJyZW50IGRpcmVjdG9yeS4KLQotSWYgeW91IHNwZWNpZnkgYSBkaXJlY3RvcnkgKGZvciBl
eGFtcGxlLCBgInhtbDpvdXRwdXQvZGlyZWN0b3J5LyJgIG9uIExpbnV4IG9yCi1gInhtbDpvdXRw
dXRcZGlyZWN0b3J5XCJgIG9uIFdpbmRvd3MpLCBnb29nbGV0ZXN0IHdpbGwgY3JlYXRlIHRoZSBY
TUwgZmlsZSBpbgotdGhhdCBkaXJlY3RvcnksIG5hbWVkIGFmdGVyIHRoZSB0ZXN0IGV4ZWN1dGFi
bGUgKGUuZy4gYGZvb190ZXN0LnhtbGAgZm9yIHRlc3QKLXByb2dyYW0gYGZvb190ZXN0YCBvciBg
Zm9vX3Rlc3QuZXhlYCkuIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIChwZXJoYXBzIGxlZnQK
LW92ZXIgZnJvbSBhIHByZXZpb3VzIHJ1biksIGdvb2dsZXRlc3Qgd2lsbCBwaWNrIGEgZGlmZmVy
ZW50IG5hbWUgKGUuZy4KLWBmb29fdGVzdF8xLnhtbGApIHRvIGF2b2lkIG92ZXJ3cml0aW5nIGl0
LgotCi0KLVRoZSByZXBvcnQgaXMgYmFzZWQgb24gdGhlIGBqdW5pdHJlcG9ydGAgQW50IHRhc2su
IFNpbmNlIHRoYXQgZm9ybWF0IHdhcwotb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgSmF2YSwgYSBs
aXR0bGUgaW50ZXJwcmV0YXRpb24gaXMgcmVxdWlyZWQgdG8gbWFrZSBpdAotYXBwbHkgdG8gZ29v
Z2xldGVzdCB0ZXN0cywgYXMgc2hvd24gaGVyZToKLQotYGBgeG1sCi08dGVzdHN1aXRlcyBuYW1l
PSJBbGxUZXN0cyIgLi4uPgotICA8dGVzdHN1aXRlIG5hbWU9InRlc3RfY2FzZV9uYW1lIiAuLi4+
Ci0gICAgPHRlc3RjYXNlICAgIG5hbWU9InRlc3RfbmFtZSIgLi4uPgotICAgICAgPGZhaWx1cmUg
bWVzc2FnZT0iLi4uIi8+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdlPSIuLi4iLz4KLSAgICAgIDxm
YWlsdXJlIG1lc3NhZ2U9Ii4uLiIvPgotICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgot
PC90ZXN0c3VpdGVzPgotYGBgCi0KLSogICBUaGUgcm9vdCBgPHRlc3RzdWl0ZXM+YCBlbGVtZW50
IGNvcnJlc3BvbmRzIHRvIHRoZSBlbnRpcmUgdGVzdCBwcm9ncmFtLgotKiAgIGA8dGVzdHN1aXRl
PmAgZWxlbWVudHMgY29ycmVzcG9uZCB0byBnb29nbGV0ZXN0IHRlc3QgY2FzZXMuCi0qICAgYDx0
ZXN0Y2FzZT5gIGVsZW1lbnRzIGNvcnJlc3BvbmQgdG8gZ29vZ2xldGVzdCB0ZXN0IGZ1bmN0aW9u
cy4KLQotRm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIHByb2dyYW0KLQotYGBgYysrCi1URVNU
KE1hdGhUZXN0LCBBZGRpdGlvbikgeyAuLi4gfQotVEVTVChNYXRoVGVzdCwgU3VidHJhY3Rpb24p
IHsgLi4uIH0KLVRFU1QoTG9naWNUZXN0LCBOb25Db250cmFkaWN0aW9uKSB7IC4uLiB9Ci1gYGAK
LQotY291bGQgZ2VuZXJhdGUgdGhpcyByZXBvcnQ6Ci0KLWBgYHhtbAotPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTx0ZXN0c3VpdGVzIHRlc3RzPSIzIiBmYWlsdXJlcz0i
MSIgZXJyb3JzPSIwIiB0aW1lPSIwLjAzNSIgdGltZXN0YW1wPSIyMDExLTEwLTMxVDE4OjUyOjQy
IiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTWF0aFRlc3QiIHRlc3RzPSIy
IiBmYWlsdXJlcz0iMSIgZXJyb3JzPSIwIiB0aW1lPSIwLjAxNSI+Ci0gICAgPHRlc3RjYXNlIG5h
bWU9IkFkZGl0aW9uIiBzdGF0dXM9InJ1biIgdGltZT0iMC4wMDciIGNsYXNzbmFtZT0iIj4KLSAg
ICAgIDxmYWlsdXJlIG1lc3NhZ2U9IlZhbHVlIG9mOiBhZGQoMSwgMSkmI3gwQTsgIEFjdHVhbDog
MyYjeDBBO0V4cGVjdGVkOiAyIiB0eXBlPSIiPi4uLjwvZmFpbHVyZT4KLSAgICAgIDxmYWlsdXJl
IG1lc3NhZ2U9IlZhbHVlIG9mOiBhZGQoMSwgLTEpJiN4MEE7ICBBY3R1YWw6IDEmI3gwQTtFeHBl
Y3RlZDogMCIgdHlwZT0iIj4uLi48L2ZhaWx1cmU+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVz
dGNhc2UgbmFtZT0iU3VidHJhY3Rpb24iIHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNSIgY2xhc3Nu
YW1lPSIiPgotICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5h
bWU9IkxvZ2ljVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBlcnJvcnM9IjAiIHRpbWU9IjAu
MDA1Ij4KLSAgICA8dGVzdGNhc2UgbmFtZT0iTm9uQ29udHJhZGljdGlvbiIgc3RhdHVzPSJydW4i
IHRpbWU9IjAuMDA1IiBjbGFzc25hbWU9IiI+Ci0gICAgPC90ZXN0Y2FzZT4KLSAgPC90ZXN0c3Vp
dGU+Ci08L3Rlc3RzdWl0ZXM+Ci1gYGAKLQotVGhpbmdzIHRvIG5vdGU6Ci0KLSogICBUaGUgYHRl
c3RzYCBhdHRyaWJ1dGUgb2YgYSBgPHRlc3RzdWl0ZXM+YCBvciBgPHRlc3RzdWl0ZT5gIGVsZW1l
bnQgdGVsbHMgaG93Ci0gICAgbWFueSB0ZXN0IGZ1bmN0aW9ucyB0aGUgZ29vZ2xldGVzdCBwcm9n
cmFtIG9yIHRlc3QgY2FzZSBjb250YWlucywgd2hpbGUgdGhlCi0gICAgYGZhaWx1cmVzYCBhdHRy
aWJ1dGUgdGVsbHMgaG93IG1hbnkgb2YgdGhlbSBmYWlsZWQuCi0KLSogICBUaGUgYHRpbWVgIGF0
dHJpYnV0ZSBleHByZXNzZXMgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0LCB0ZXN0IGNhc2UsIG9y
Ci0gICAgZW50aXJlIHRlc3QgcHJvZ3JhbSBpbiBzZWNvbmRzLgotCi0qICAgVGhlIGB0aW1lc3Rh
bXBgIGF0dHJpYnV0ZSByZWNvcmRzIHRoZSBsb2NhbCBkYXRlIGFuZCB0aW1lIG9mIHRoZSB0ZXN0
Ci0gICAgZXhlY3V0aW9uLgotCi0qICAgRWFjaCBgPGZhaWx1cmU+YCBlbGVtZW50IGNvcnJlc3Bv
bmRzIHRvIGEgc2luZ2xlIGZhaWxlZCBnb29nbGV0ZXN0Ci0gICAgYXNzZXJ0aW9uLgotCi0qKkF2
YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMjIEdlbmVyYXRpbmcgYW4g
SlNPTiBSZXBvcnQKLQotZ29vZ2xldGVzdCBjYW4gYWxzbyBlbWl0IGEgSlNPTiByZXBvcnQgYXMg
YW4gYWx0ZXJuYXRpdmUgZm9ybWF0IHRvIFhNTC4gVG8KLWdlbmVyYXRlIHRoZSBKU09OIHJlcG9y
dCwgc2V0IHRoZSBgR1RFU1RfT1VUUFVUYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKLWAt
LWd0ZXN0X291dHB1dGAgZmxhZyB0byB0aGUgc3RyaW5nIGAianNvbjpwYXRoX3RvX291dHB1dF9m
aWxlImAsIHdoaWNoIHdpbGwKLWNyZWF0ZSB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24u
IFlvdSBjYW4gYWxzbyBqdXN0IHVzZSB0aGUgc3RyaW5nCi1gImpzb24iYCwgaW4gd2hpY2ggY2Fz
ZSB0aGUgb3V0cHV0IGNhbiBiZSBmb3VuZCBpbiB0aGUgYHRlc3RfZGV0YWlsLmpzb25gIGZpbGUK
LWluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLQotVGhlIHJlcG9ydCBmb3JtYXQgY29uZm9ybXMg
dG8gdGhlIGZvbGxvd2luZyBKU09OIFNjaGVtYToKLQotYGBganNvbgotewotICAiJHNjaGVtYSI6
ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL3NjaGVtYSMiLAotICAidHlwZSI6ICJvYmplY3QiLAot
ICAiZGVmaW5pdGlvbnMiOiB7Ci0gICAgIlRlc3RDYXNlIjogewotICAgICAgInR5cGUiOiAib2Jq
ZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVzIjogewotICAgICAgICAibmFtZSI6IHsgInR5cGUiOiAi
c3RyaW5nIiB9LAotICAgICAgICAidGVzdHMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAg
ICAgICJmYWlsdXJlcyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgImRpc2FibGVk
IjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAidGltZSI6IHsgInR5cGUiOiAic3Ry
aW5nIiB9LAotICAgICAgICAidGVzdHN1aXRlIjogewotICAgICAgICAgICJ0eXBlIjogImFycmF5
IiwKLSAgICAgICAgICAiaXRlbXMiOiB7Ci0gICAgICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRp
b25zL1Rlc3RJbmZvIgotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0g
ICAgIlRlc3RJbmZvIjogewotICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0
aWVzIjogewotICAgICAgICAibmFtZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAi
c3RhdHVzIjogewotICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgImVudW0i
OiBbIlJVTiIsICJOT1RSVU4iXQotICAgICAgICB9LAotICAgICAgICAidGltZSI6IHsgInR5cGUi
OiAic3RyaW5nIiB9LAotICAgICAgICAiY2xhc3NuYW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0s
Ci0gICAgICAgICJmYWlsdXJlcyI6IHsKLSAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAg
ICAgICAgIml0ZW1zIjogewotICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9GYWls
dXJlIgotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0gICAgIkZhaWx1
cmUiOiB7Ci0gICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgInByb3BlcnRpZXMiOiB7Ci0g
ICAgICAgICJmYWlsdXJlcyI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAidHlwZSI6
IHsgInR5cGUiOiAic3RyaW5nIiB9Ci0gICAgICB9Ci0gICAgfQotICB9LAotICAicHJvcGVydGll
cyI6IHsKLSAgICAidGVzdHMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgImZhaWx1cmVz
IjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICJkaXNhYmxlZCI6IHsgInR5cGUiOiAiaW50
ZWdlciIgfSwKLSAgICAiZXJyb3JzIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICJ0aW1l
c3RhbXAiOiB7Ci0gICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgImZvcm1hdCI6ICJkYXRl
LXRpbWUiCi0gICAgfSwKLSAgICAidGltZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICJu
YW1lIjogeyAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgInRlc3RzdWl0ZXMiOiB7Ci0gICAgICAi
dHlwZSI6ICJhcnJheSIsCi0gICAgICAiaXRlbXMiOiB7Ci0gICAgICAgICIkcmVmIjogIiMvZGVm
aW5pdGlvbnMvVGVzdENhc2UiCi0gICAgICB9Ci0gICAgfQotICB9Ci19Ci1gYGAKLQotVGhlIHJl
cG9ydCB1c2VzIHRoZSBmb3JtYXQgdGhhdCBjb25mb3JtcyB0byB0aGUgZm9sbG93aW5nIFByb3Rv
MyB1c2luZyB0aGUgW0pTT04KLWVuY29kaW5nXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNv
bS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb24pOgotCi1gYGBwcm90bwotc3ludGF4
ID0gInByb3RvMyI7Ci0KLXBhY2thZ2UgZ29vZ2xldGVzdDsKLQotaW1wb3J0ICJnb29nbGUvcHJv
dG9idWYvdGltZXN0YW1wLnByb3RvIjsKLWltcG9ydCAiZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9u
LnByb3RvIjsKLQotbWVzc2FnZSBVbml0VGVzdCB7Ci0gIGludDMyIHRlc3RzID0gMTsKLSAgaW50
MzIgZmFpbHVyZXMgPSAyOwotICBpbnQzMiBkaXNhYmxlZCA9IDM7Ci0gIGludDMyIGVycm9ycyA9
IDQ7Ci0gIGdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAgdGltZXN0YW1wID0gNTsKLSAgZ29vZ2xl
LnByb3RvYnVmLkR1cmF0aW9uIHRpbWUgPSA2OwotICBzdHJpbmcgbmFtZSA9IDc7Ci0gIHJlcGVh
dGVkIFRlc3RDYXNlIHRlc3RzdWl0ZXMgPSA4OwotfQotCi1tZXNzYWdlIFRlc3RDYXNlIHsKLSAg
c3RyaW5nIG5hbWUgPSAxOwotICBpbnQzMiB0ZXN0cyA9IDI7Ci0gIGludDMyIGZhaWx1cmVzID0g
MzsKLSAgaW50MzIgZGlzYWJsZWQgPSA0OwotICBpbnQzMiBlcnJvcnMgPSA1OwotICBnb29nbGUu
cHJvdG9idWYuRHVyYXRpb24gdGltZSA9IDY7Ci0gIHJlcGVhdGVkIFRlc3RJbmZvIHRlc3RzdWl0
ZSA9IDc7Ci19Ci0KLW1lc3NhZ2UgVGVzdEluZm8gewotICBzdHJpbmcgbmFtZSA9IDE7Ci0gIGVu
dW0gU3RhdHVzIHsKLSAgICBSVU4gPSAwOwotICAgIE5PVFJVTiA9IDE7Ci0gIH0KLSAgU3RhdHVz
IHN0YXR1cyA9IDI7Ci0gIGdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiB0aW1lID0gMzsKLSAgc3Ry
aW5nIGNsYXNzbmFtZSA9IDQ7Ci0gIG1lc3NhZ2UgRmFpbHVyZSB7Ci0gICAgc3RyaW5nIGZhaWx1
cmVzID0gMTsKLSAgICBzdHJpbmcgdHlwZSA9IDI7Ci0gIH0KLSAgcmVwZWF0ZWQgRmFpbHVyZSBm
YWlsdXJlcyA9IDU7Ci19Ci1gYGAKLQotRm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIHByb2dy
YW0KLQotYGBgYysrCi1URVNUKE1hdGhUZXN0LCBBZGRpdGlvbikgeyAuLi4gfQotVEVTVChNYXRo
VGVzdCwgU3VidHJhY3Rpb24pIHsgLi4uIH0KLVRFU1QoTG9naWNUZXN0LCBOb25Db250cmFkaWN0
aW9uKSB7IC4uLiB9Ci1gYGAKLQotY291bGQgZ2VuZXJhdGUgdGhpcyByZXBvcnQ6Ci0KLWBgYGpz
b24KLXsKLSAgInRlc3RzIjogMywKLSAgImZhaWx1cmVzIjogMSwKLSAgImVycm9ycyI6IDAsCi0g
ICJ0aW1lIjogIjAuMDM1cyIsCi0gICJ0aW1lc3RhbXAiOiAiMjAxMS0xMC0zMVQxODo1Mjo0Mloi
Ci0gICJuYW1lIjogIkFsbFRlc3RzIiwKLSAgInRlc3RzdWl0ZXMiOiBbCi0gICAgewotICAgICAg
Im5hbWUiOiAiTWF0aFRlc3QiLAotICAgICAgInRlc3RzIjogMiwKLSAgICAgICJmYWlsdXJlcyI6
IDEsCi0gICAgICAiZXJyb3JzIjogMCwKLSAgICAgICJ0aW1lIjogIjAuMDE1cyIsCi0gICAgICAi
dGVzdHN1aXRlIjogWwotICAgICAgICB7Ci0gICAgICAgICAgIm5hbWUiOiAiQWRkaXRpb24iLAot
ICAgICAgICAgICJzdGF0dXMiOiAiUlVOIiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwN3MiLAot
ICAgICAgICAgICJjbGFzc25hbWUiOiAiIiwKLSAgICAgICAgICAiZmFpbHVyZXMiOiBbCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICJtZXNzYWdlIjogIlZhbHVlIG9mOiBhZGQoMSwgMSlc
eDBBICBBY3R1YWw6IDNceDBBRXhwZWN0ZWQ6IDIiLAotICAgICAgICAgICAgICAidHlwZSI6ICIi
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJWYWx1ZSBvZjogYWRkKDEsIC0xKVx4MEEgIEFjdHVhbDogMVx4MEFFeHBlY3RlZDogMCIsCi0g
ICAgICAgICAgICAgICJ0eXBlIjogIiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAibmFtZSI6ICJTdWJ0cmFjdGlvbiIsCi0gICAg
ICAgICAgInN0YXR1cyI6ICJSVU4iLAotICAgICAgICAgICJ0aW1lIjogIjAuMDA1cyIsCi0gICAg
ICAgICAgImNsYXNzbmFtZSI6ICIiCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9Ci0gICAgewot
ICAgICAgIm5hbWUiOiAiTG9naWNUZXN0IiwKLSAgICAgICJ0ZXN0cyI6IDEsCi0gICAgICAiZmFp
bHVyZXMiOiAwLAotICAgICAgImVycm9ycyI6IDAsCi0gICAgICAidGltZSI6ICIwLjAwNXMiLAot
ICAgICAgInRlc3RzdWl0ZSI6IFsKLSAgICAgICAgewotICAgICAgICAgICJuYW1lIjogIk5vbkNv
bnRyYWRpY3Rpb24iLAotICAgICAgICAgICJzdGF0dXMiOiAiUlVOIiwKLSAgICAgICAgICAidGlt
ZSI6ICIwLjAwNXMiLAotICAgICAgICAgICJjbGFzc25hbWUiOiAiIgotICAgICAgICB9Ci0gICAg
ICBdCi0gICAgfQotICBdCi19Ci1gYGAKLQotSU1QT1JUQU5UOiBUaGUgZXhhY3QgZm9ybWF0IG9m
IHRoZSBKU09OIGRvY3VtZW50IGlzIHN1YmplY3QgdG8gY2hhbmdlLgotCi0qKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgQ29udHJvbGxpbmcgSG93IEZhaWx1cmVz
IEFyZSBSZXBvcnRlZAotCi0jIyMjIFR1cm5pbmcgQXNzZXJ0aW9uIEZhaWx1cmVzIGludG8gQnJl
YWstUG9pbnRzCi0KLVdoZW4gcnVubmluZyB0ZXN0IHByb2dyYW1zIHVuZGVyIGEgZGVidWdnZXIs
IGl0J3MgdmVyeSBjb252ZW5pZW50IGlmIHRoZQotZGVidWdnZXIgY2FuIGNhdGNoIGFuIGFzc2Vy
dGlvbiBmYWlsdXJlIGFuZCBhdXRvbWF0aWNhbGx5IGRyb3AgaW50byBpbnRlcmFjdGl2ZQotbW9k
ZS4gZ29vZ2xldGVzdCdzICpicmVhay1vbi1mYWlsdXJlKiBtb2RlIHN1cHBvcnRzIHRoaXMgYmVo
YXZpb3IuCi0KLVRvIGVuYWJsZSBpdCwgc2V0IHRoZSBgR1RFU1RfQlJFQUtfT05fRkFJTFVSRWAg
ZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSB2YWx1ZQotb3RoZXIgdGhhbiBgMGAgLiBBbHRlcm5h
dGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUgYC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZWAKLWNvbW1h
bmQgbGluZSBmbGFnLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgot
Ci0jIyMjIERpc2FibGluZyBDYXRjaGluZyBUZXN0LVRocm93biBFeGNlcHRpb25zCi0KLWdvb2ds
ZXRlc3QgY2FuIGJlIHVzZWQgZWl0aGVyIHdpdGggb3Igd2l0aG91dCBleGNlcHRpb25zIGVuYWJs
ZWQuIElmIGEgdGVzdAotdGhyb3dzIGEgQysrIGV4Y2VwdGlvbiBvciAob24gV2luZG93cykgYSBz
dHJ1Y3R1cmVkIGV4Y2VwdGlvbiAoU0VIKSwgYnkgZGVmYXVsdAotZ29vZ2xldGVzdCBjYXRjaGVz
IGl0LCByZXBvcnRzIGl0IGFzIGEgdGVzdCBmYWlsdXJlLCBhbmQgY29udGludWVzIHdpdGggdGhl
IG5leHQKLXRlc3QgbWV0aG9kLiBUaGlzIG1heGltaXplcyB0aGUgY292ZXJhZ2Ugb2YgYSB0ZXN0
IHJ1bi4gQWxzbywgb24gV2luZG93cyBhbgotdW5jYXVnaHQgZXhjZXB0aW9uIHdpbGwgY2F1c2Ug
YSBwb3AtdXAgd2luZG93LCBzbyBjYXRjaGluZyB0aGUgZXhjZXB0aW9ucyBhbGxvd3MKLXlvdSB0
byBydW4gdGhlIHRlc3RzIGF1dG9tYXRpY2FsbHkuCi0KLVdoZW4gZGVidWdnaW5nIHRoZSB0ZXN0
IGZhaWx1cmVzLCBob3dldmVyLCB5b3UgbWF5IGluc3RlYWQgd2FudCB0aGUgZXhjZXB0aW9ucwot
dG8gYmUgaGFuZGxlZCBieSB0aGUgZGVidWdnZXIsIHN1Y2ggdGhhdCB5b3UgY2FuIGV4YW1pbmUg
dGhlIGNhbGwgc3RhY2sgd2hlbiBhbgotZXhjZXB0aW9uIGlzIHRocm93bi4gVG8gYWNoaWV2ZSB0
aGF0LCBzZXQgdGhlIGBHVEVTVF9DQVRDSF9FWENFUFRJT05TYAotZW52aXJvbm1lbnQgdmFyaWFi
bGUgdG8gYDBgLCBvciB1c2UgdGhlIGAtLWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnM9MGAgZmxhZyB3
aGVuCi1ydW5uaW5nIHRoZSB0ZXN0cy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MsIE1hYy4KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9mYXEu
bWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL2ZhcS5tZApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2Q0MmZmN2RiYWE4ZmFiZDBjYzY1MmZkNzA1Mjc5ODE4NGU5NWM0OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9kb2NzL2ZhcS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDc3MCArMCwwIEBA
Ci0jIEdvb2dsZXRlc3QgRkFRCi0KLQotIyMgV2h5IHNob3VsZCB0ZXN0IGNhc2UgbmFtZXMgYW5k
IHRlc3QgbmFtZXMgbm90IGNvbnRhaW4gdW5kZXJzY29yZT8KLQotVW5kZXJzY29yZSAoYF9gKSBp
cyBzcGVjaWFsLCBhcyBDKysgcmVzZXJ2ZXMgdGhlIGZvbGxvd2luZyB0byBiZSB1c2VkIGJ5IHRo
ZQotY29tcGlsZXIgYW5kIHRoZSBzdGFuZGFyZCBsaWJyYXJ5OgotCi0xLiAgYW55IGlkZW50aWZp
ZXIgdGhhdCBzdGFydHMgd2l0aCBhbiBgX2AgZm9sbG93ZWQgYnkgYW4gdXBwZXItY2FzZSBsZXR0
ZXIsIGFuZAotMS4gIGFueSBpZGVudGlmaWVyIHRoYXQgY29udGFpbnMgdHdvIGNvbnNlY3V0aXZl
IHVuZGVyc2NvcmVzIChpLmUuIGBfX2ApCi0gICAgKmFueXdoZXJlKiBpbiBpdHMgbmFtZS4KLQot
VXNlciBjb2RlIGlzICpwcm9oaWJpdGVkKiBmcm9tIHVzaW5nIHN1Y2ggaWRlbnRpZmllcnMuCi0K
LU5vdyBsZXQncyBsb29rIGF0IHdoYXQgdGhpcyBtZWFucyBmb3IgYFRFU1RgIGFuZCBgVEVTVF9G
YC4KLQotQ3VycmVudGx5IGBURVNUKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpYCBnZW5lcmF0ZXMg
YSBjbGFzcyBuYW1lZAotYFRlc3RDYXNlTmFtZV9UZXN0TmFtZV9UZXN0YC4gV2hhdCBoYXBwZW5z
IGlmIGBUZXN0Q2FzZU5hbWVgIG9yIGBUZXN0TmFtZWAKLWNvbnRhaW5zIGBfYD8KLQotMS4gIElm
IGBUZXN0Q2FzZU5hbWVgIHN0YXJ0cyB3aXRoIGFuIGBfYCBmb2xsb3dlZCBieSBhbiB1cHBlci1j
YXNlIGxldHRlciAoc2F5LAotICAgIGBfRm9vYCksIHdlIGVuZCB1cCB3aXRoIGBfRm9vX1Rlc3RO
YW1lX1Rlc3RgLCB3aGljaCBpcyByZXNlcnZlZCBhbmQgdGh1cwotICAgIGludmFsaWQuCi0xLiAg
SWYgYFRlc3RDYXNlTmFtZWAgZW5kcyB3aXRoIGFuIGBfYCAoc2F5LCBgRm9vX2ApLCB3ZSBnZXQK
LSAgICBgRm9vX19UZXN0TmFtZV9UZXN0YCwgd2hpY2ggaXMgaW52YWxpZC4KLTEuICBJZiBgVGVz
dE5hbWVgIHN0YXJ0cyB3aXRoIGFuIGBfYCAoc2F5LCBgX0JhcmApLCB3ZSBnZXQKLSAgICBgVGVz
dENhc2VOYW1lX19CYXJfVGVzdGAsIHdoaWNoIGlzIGludmFsaWQuCi0xLiAgSWYgYFRlc3ROYW1l
YCBlbmRzIHdpdGggYW4gYF9gIChzYXksIGBCYXJfYCksIHdlIGdldAotICAgIGBUZXN0Q2FzZU5h
bWVfQmFyX19UZXN0YCwgd2hpY2ggaXMgaW52YWxpZC4KLQotU28gY2xlYXJseSBgVGVzdENhc2VO
YW1lYCBhbmQgYFRlc3ROYW1lYCBjYW5ub3Qgc3RhcnQgb3IgZW5kIHdpdGggYF9gIChBY3R1YWxs
eSwKLWBUZXN0Q2FzZU5hbWVgIGNhbiBzdGFydCB3aXRoIGBfYCAtLSBhcyBsb25nIGFzIHRoZSBg
X2AgaXNuJ3QgZm9sbG93ZWQgYnkgYW4KLXVwcGVyLWNhc2UgbGV0dGVyLiBCdXQgdGhhdCdzIGdl
dHRpbmcgY29tcGxpY2F0ZWQuIFNvIGZvciBzaW1wbGljaXR5IHdlIGp1c3Qgc2F5Ci10aGF0IGl0
IGNhbm5vdCBzdGFydCB3aXRoIGBfYC4pLgotCi1JdCBtYXkgc2VlbSBmaW5lIGZvciBgVGVzdENh
c2VOYW1lYCBhbmQgYFRlc3ROYW1lYCB0byBjb250YWluIGBfYCBpbiB0aGUgbWlkZGxlLgotSG93
ZXZlciwgY29uc2lkZXIgdGhpczoKLQotYGBgYysrCi1URVNUKFRpbWUsIEZsaWVzX0xpa2VfQW5f
QXJyb3cpIHsgLi4uIH0KLVRFU1QoVGltZV9GbGllcywgTGlrZV9Bbl9BcnJvdykgeyAuLi4gfQot
YGBgCi0KLU5vdywgdGhlIHR3byBgVEVTVGBzIHdpbGwgYm90aCBnZW5lcmF0ZSB0aGUgc2FtZSBj
bGFzcwotKGBUaW1lX0ZsaWVzX0xpa2VfQW5fQXJyb3dfVGVzdGApLiBUaGF0J3Mgbm90IGdvb2Qu
Ci0KLVNvIGZvciBzaW1wbGljaXR5LCB3ZSBqdXN0IGFzayB0aGUgdXNlcnMgdG8gYXZvaWQgYF9g
IGluIGBUZXN0Q2FzZU5hbWVgIGFuZAotYFRlc3ROYW1lYC4gVGhlIHJ1bGUgaXMgbW9yZSBjb25z
dHJhaW5pbmcgdGhhbiBuZWNlc3NhcnksIGJ1dCBpdCdzIHNpbXBsZSBhbmQKLWVhc3kgdG8gcmVt
ZW1iZXIuIEl0IGFsc28gZ2l2ZXMgZ29vZ2xldGVzdCBzb21lIHdpZ2dsZSByb29tIGluIGNhc2Ug
aXRzCi1pbXBsZW1lbnRhdGlvbiBuZWVkcyB0byBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KLQotSWYg
eW91IHZpb2xhdGUgdGhlIHJ1bGUsIHRoZXJlIG1heSBub3QgYmUgaW1tZWRpYXRlIGNvbnNlcXVl
bmNlcywgYnV0IHlvdXIgdGVzdAotbWF5IChqdXN0IG1heSkgYnJlYWsgd2l0aCBhIG5ldyBjb21w
aWxlciAob3IgYSBuZXcgdmVyc2lvbiBvZiB0aGUgY29tcGlsZXIgeW91Ci1hcmUgdXNpbmcpIG9y
IHdpdGggYSBuZXcgdmVyc2lvbiBvZiBnb29nbGV0ZXN0LiBUaGVyZWZvcmUgaXQncyBiZXN0IHRv
IGZvbGxvdwotdGhlIHJ1bGUuCi0KLSMjIFdoeSBkb2VzIGdvb2dsZXRlc3Qgc3VwcG9ydCBgRVhQ
RUNUX0VRKE5VTEwsIHB0cilgIGFuZCBgQVNTRVJUX0VRKE5VTEwsIHB0cilgIGJ1dCBub3QgYEVY
UEVDVF9ORShOVUxMLCBwdHIpYCBhbmQgYEFTU0VSVF9ORShOVUxMLCBwdHIpYD8KLQotRmlyc3Qg
b2YgYWxsIHlvdSBjYW4gdXNlIGBFWFBFQ1RfTkUobnVsbHB0ciwgcHRyKWAgYW5kIGBBU1NFUlRf
TkUobnVsbHB0ciwKLXB0cilgLiBUaGlzIGlzIHRoZSBwcmVmZXJyZWQgc3ludGF4IGluIHRoZSBz
dHlsZSBndWlkZSBiZWNhdXNlIG51bGxwdHIgZG9lcyBub3QKLWhhdmUgdGhlIHR5cGUgcHJvYmxl
bXMgdGhhdCBOVUxMIGRvZXMuIFdoaWNoIGlzIHdoeSBOVUxMIGRvZXMgbm90IHdvcmsuCi0KLUR1
ZSB0byBzb21lIHBlY3VsaWFyaXR5IG9mIEMrKywgaXQgcmVxdWlyZXMgc29tZSBub24tdHJpdmlh
bCB0ZW1wbGF0ZSBtZXRhCi1wcm9ncmFtbWluZyB0cmlja3MgdG8gc3VwcG9ydCB1c2luZyBgTlVM
TGAgYXMgYW4gYXJndW1lbnQgb2YgdGhlIGBFWFBFQ1RfWFgoKWAKLWFuZCBgQVNTRVJUX1hYKClg
IG1hY3Jvcy4gVGhlcmVmb3JlIHdlIG9ubHkgZG8gaXQgd2hlcmUgaXQncyBtb3N0IG5lZWRlZAot
KG90aGVyd2lzZSB3ZSBtYWtlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBnb29nbGV0ZXN0IGhhcmRl
ciB0byBtYWludGFpbiBhbmQgbW9yZQotZXJyb3ItcHJvbmUgdGhhbiBuZWNlc3NhcnkpLgotCi1U
aGUgYEVYUEVDVF9FUSgpYCBtYWNybyB0YWtlcyB0aGUgKmV4cGVjdGVkKiB2YWx1ZSBhcyBpdHMg
Zmlyc3QgYXJndW1lbnQgYW5kIHRoZQotKmFjdHVhbCogdmFsdWUgYXMgdGhlIHNlY29uZC4gSXQn
cyByZWFzb25hYmxlIHRoYXQgc29tZW9uZSB3YW50cyB0byB3cml0ZQotYEVYUEVDVF9FUShOVUxM
LCBzb21lX2V4cHJlc3Npb24pYCwgYW5kIHRoaXMgaW5kZWVkIHdhcyByZXF1ZXN0ZWQgc2V2ZXJh
bCB0aW1lcy4KLVRoZXJlZm9yZSB3ZSBpbXBsZW1lbnRlZCBpdC4KLQotVGhlIG5lZWQgZm9yIGBF
WFBFQ1RfTkUoTlVMTCwgcHRyKWAgaXNuJ3QgbmVhcmx5IGFzIHN0cm9uZy4gV2hlbiB0aGUgYXNz
ZXJ0aW9uCi1mYWlscywgeW91IGFscmVhZHkga25vdyB0aGF0IGBwdHJgIG11c3QgYmUgYE5VTExg
LCBzbyBpdCBkb2Vzbid0IGFkZCBhbnkKLWluZm9ybWF0aW9uIHRvIHByaW50IGBwdHJgIGluIHRo
aXMgY2FzZS4gVGhhdCBtZWFucyBgRVhQRUNUX1RSVUUocHRyICE9IE5VTEwpYAotd29ya3MganVz
dCBhcyB3ZWxsLgotCi1JZiB3ZSB3ZXJlIHRvIHN1cHBvcnQgYEVYUEVDVF9ORShOVUxMLCBwdHIp
YCwgZm9yIGNvbnNpc3RlbmN5IHdlJ2xsIGhhdmUgdG8KLXN1cHBvcnQgYEVYUEVDVF9ORShwdHIs
IE5VTEwpYCBhcyB3ZWxsLCBhcyB1bmxpa2UgYEVYUEVDVF9FUWAsIHdlIGRvbid0IGhhdmUgYQot
Y29udmVudGlvbiBvbiB0aGUgb3JkZXIgb2YgdGhlIHR3byBhcmd1bWVudHMgZm9yIGBFWFBFQ1Rf
TkVgLiBUaGlzIG1lYW5zIHVzaW5nCi10aGUgdGVtcGxhdGUgbWV0YSBwcm9ncmFtbWluZyB0cmlj
a3MgdHdpY2UgaW4gdGhlIGltcGxlbWVudGF0aW9uLCBtYWtpbmcgaXQgZXZlbgotaGFyZGVyIHRv
IHVuZGVyc3RhbmQgYW5kIG1haW50YWluLiBXZSBiZWxpZXZlIHRoZSBiZW5lZml0IGRvZXNuJ3Qg
anVzdGlmeSB0aGUKLWNvc3QuCi0KLUZpbmFsbHksIHdpdGggdGhlIGdyb3d0aCBvZiB0aGUgZ01v
Y2sgbWF0Y2hlciBsaWJyYXJ5LCB3ZSBhcmUgZW5jb3VyYWdpbmcgcGVvcGxlCi10byB1c2UgdGhl
IHVuaWZpZWQgYEVYUEVDVF9USEFUKHZhbHVlLCBtYXRjaGVyKWAgc3ludGF4IG1vcmUgb2Z0ZW4g
aW4gdGVzdHMuIE9uZQotc2lnbmlmaWNhbnQgYWR2YW50YWdlIG9mIHRoZSBtYXRjaGVyIGFwcHJv
YWNoIGlzIHRoYXQgbWF0Y2hlcnMgY2FuIGJlIGVhc2lseQotY29tYmluZWQgdG8gZm9ybSBuZXcg
bWF0Y2hlcnMsIHdoaWxlIHRoZSBgRVhQRUNUX05FYCwgZXRjLCBtYWNyb3MgY2Fubm90IGJlCi1l
YXNpbHkgY29tYmluZWQuIFRoZXJlZm9yZSB3ZSB3YW50IHRvIGludmVzdCBtb3JlIGluIHRoZSBt
YXRjaGVycyB0aGFuIGluIHRoZQotYEVYUEVDVF9YWCgpYCBtYWNyb3MuCi0KLSMjIEkgbmVlZCB0
byB0ZXN0IHRoYXQgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBvZiBhbiBpbnRlcmZhY2Ugc2F0
aXNmeSBzb21lIGNvbW1vbiByZXF1aXJlbWVudHMuIFNob3VsZCBJIHVzZSB0eXBlZCB0ZXN0cyBv
ciB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzPwotCi1Gb3IgdGVzdGluZyB2YXJpb3VzIGltcGxl
bWVudGF0aW9ucyBvZiB0aGUgc2FtZSBpbnRlcmZhY2UsIGVpdGhlciB0eXBlZCB0ZXN0cyBvcgot
dmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBjYW4gZ2V0IGl0IGRvbmUuIEl0J3MgcmVhbGx5IHVw
IHRvIHlvdSB0aGUgdXNlciB0bwotZGVjaWRlIHdoaWNoIGlzIG1vcmUgY29udmVuaWVudCBmb3Ig
eW91LCBkZXBlbmRpbmcgb24geW91ciBwYXJ0aWN1bGFyIGNhc2UuIFNvbWUKLXJvdWdoIGd1aWRl
bGluZXM6Ci0KLSogICBUeXBlZCB0ZXN0cyBjYW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlmIGluc3Rh
bmNlcyBvZiB0aGUgZGlmZmVyZW50Ci0gICAgaW1wbGVtZW50YXRpb25zIGNhbiBiZSBjcmVhdGVk
IHRoZSBzYW1lIHdheSwgbW9kdWxvIHRoZSB0eXBlLiBGb3IgZXhhbXBsZSwKLSAgICBpZiBhbGwg
dGhlc2UgaW1wbGVtZW50YXRpb25zIGhhdmUgYSBwdWJsaWMgZGVmYXVsdCBjb25zdHJ1Y3RvciAo
c3VjaCB0aGF0Ci0gICAgeW91IGNhbiB3cml0ZSBgbmV3IFR5cGVQYXJhbWApLCBvciBpZiB0aGVp
ciBmYWN0b3J5IGZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lCi0gICAgZm9ybSAoZS5nLiBgQ3JlYXRl
SW5zdGFuY2U8VHlwZVBhcmFtPigpYCkuCi0qICAgVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cyBj
YW4gYmUgZWFzaWVyIHRvIHdyaXRlIGlmIHlvdSBuZWVkIGRpZmZlcmVudCBjb2RlCi0gICAgcGF0
dGVybnMgdG8gY3JlYXRlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMnIGluc3RhbmNlcywgZS5n
LiBgbmV3IEZvb2AgdnMKLSAgICBgbmV3IEJhcig1KWAuIFRvIGFjY29tbW9kYXRlIGZvciB0aGUg
ZGlmZmVyZW5jZXMsIHlvdSBjYW4gd3JpdGUgZmFjdG9yeQotICAgIGZ1bmN0aW9uIHdyYXBwZXJz
IGFuZCBwYXNzIHRoZXNlIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSB0ZXN0cyBhcyB0aGVpcgot
ICAgIHBhcmFtZXRlcnMuCi0qICAgV2hlbiBhIHR5cGVkIHRlc3QgZmFpbHMsIHRoZSBvdXRwdXQg
aW5jbHVkZXMgdGhlIG5hbWUgb2YgdGhlIHR5cGUsIHdoaWNoIGNhbgotICAgIGhlbHAgeW91IHF1
aWNrbHkgaWRlbnRpZnkgd2hpY2ggaW1wbGVtZW50YXRpb24gaXMgd3JvbmcuIFZhbHVlLXBhcmFt
ZXRlcml6ZWQKLSAgICB0ZXN0cyBjYW5ub3QgZG8gdGhpcywgc28gdGhlcmUgeW91J2xsIGhhdmUg
dG8gbG9vayBhdCB0aGUgaXRlcmF0aW9uIG51bWJlcgotICAgIHRvIGtub3cgd2hpY2ggaW1wbGVt
ZW50YXRpb24gdGhlIGZhaWx1cmUgaXMgZnJvbSwgd2hpY2ggaXMgbGVzcyBkaXJlY3QuCi0qICAg
SWYgeW91IG1ha2UgYSBtaXN0YWtlIHdyaXRpbmcgYSB0eXBlZCB0ZXN0LCB0aGUgY29tcGlsZXIg
ZXJyb3JzIGNhbiBiZQotICAgIGhhcmRlciB0byBkaWdlc3QsIGFzIHRoZSBjb2RlIGlzIHRlbXBs
YXRpemVkLgotKiAgIFdoZW4gdXNpbmcgdHlwZWQgdGVzdHMsIHlvdSBuZWVkIHRvIG1ha2Ugc3Vy
ZSB5b3UgYXJlIHRlc3RpbmcgYWdhaW5zdCB0aGUKLSAgICBpbnRlcmZhY2UgdHlwZSwgbm90IHRo
ZSBjb25jcmV0ZSB0eXBlcyAoaW4gb3RoZXIgd29yZHMsIHlvdSB3YW50IHRvIG1ha2UKLSAgICBz
dXJlIGBpbXBsaWNpdF9jYXN0PE15SW50ZXJmYWNlKj4obXlfY29uY3JldGVfaW1wbClgIHdvcmtz
LCBub3QganVzdCB0aGF0Ci0gICAgYG15X2NvbmNyZXRlX2ltcGxgIHdvcmtzKS4gSXQncyBsZXNz
IGxpa2VseSB0byBtYWtlIG1pc3Rha2VzIGluIHRoaXMgYXJlYQotICAgIHdoZW4gdXNpbmcgdmFs
dWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLQotSSBob3BlIEkgZGlkbid0IGNvbmZ1c2UgeW91IG1v
cmUuIDotKSBJZiB5b3UgZG9uJ3QgbWluZCwgSSdkIHN1Z2dlc3QgeW91IHRvIGdpdmUKLWJvdGgg
YXBwcm9hY2hlcyBhIHRyeS4gUHJhY3RpY2UgaXMgYSBtdWNoIGJldHRlciB3YXkgdG8gZ3Jhc3Ag
dGhlIHN1YnRsZQotZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIHRvb2xzLiBPbmNlIHlvdSBo
YXZlIHNvbWUgY29uY3JldGUgZXhwZXJpZW5jZSwgeW91Ci1jYW4gbXVjaCBtb3JlIGVhc2lseSBk
ZWNpZGUgd2hpY2ggb25lIHRvIHVzZSB0aGUgbmV4dCB0aW1lLgotCi0jIyBNeSBkZWF0aCB0ZXN0
cyBiZWNhbWUgdmVyeSBzbG93IC0gd2hhdCBoYXBwZW5lZD8KLQotSW4gQXVndXN0IDIwMDggd2Ug
aGFkIHRvIHN3aXRjaCB0aGUgZGVmYXVsdCBkZWF0aCB0ZXN0IHN0eWxlIGZyb20gYGZhc3RgIHRv
Ci1gdGhyZWFkc2FmZWAsIGFzIHRoZSBmb3JtZXIgaXMgbm8gbG9uZ2VyIHNhZmUgbm93IHRoYXQg
dGhyZWFkZWQgbG9nZ2luZyBpcyB0aGUKLWRlZmF1bHQuIFRoaXMgY2F1c2VkIG1hbnkgZGVhdGgg
dGVzdHMgdG8gc2xvdyBkb3duLiBVbmZvcnR1bmF0ZWx5IHRoaXMgY2hhbmdlCi13YXMgbmVjZXNz
YXJ5LgotCi1QbGVhc2UgcmVhZCBbRml4aW5nIEZhaWxpbmcgRGVhdGggVGVzdHNdKGRlYXRoX3Rl
c3Rfc3R5bGVzLm1kKSBmb3Igd2hhdCB5b3UgY2FuCi1kby4KLQotIyMgSSBnb3Qgc29tZSBydW4t
dGltZSBlcnJvcnMgYWJvdXQgaW52YWxpZCBwcm90byBkZXNjcmlwdG9ycyB3aGVuIHVzaW5nIGBQ
cm90b2NvbE1lc3NhZ2VFcXVhbHNgLiBIZWxwIQotCi0qKk5vdGU6KiogYFByb3RvY29sTWVzc2Fn
ZUVxdWFsc2AgYW5kIGBQcm90b2NvbE1lc3NhZ2VFcXVpdmAgYXJlICpkZXByZWNhdGVkKgotbm93
LiBQbGVhc2UgdXNlIGBFcXVhbHNQcm90b2AsIGV0YyBpbnN0ZWFkLgotCi1gUHJvdG9jb2xNZXNz
YWdlRXF1YWxzYCBhbmQgYFByb3RvY29sTWVzc2FnZUVxdWl2YCB3ZXJlIHJlZGVmaW5lZCByZWNl
bnRseSBhbmQKLWFyZSBub3cgbGVzcyB0b2xlcmFudCBvbiBpbnZhbGlkIHByb3RvY29sIGJ1ZmZl
ciBkZWZpbml0aW9ucy4gSW4gcGFydGljdWxhciwgaWYKLXlvdSBoYXZlIGEgYGZvby5wcm90b2Ag
dGhhdCBkb2Vzbid0IGZ1bGx5IHF1YWxpZnkgdGhlIHR5cGUgb2YgYSBwcm90b2NvbCBtZXNzYWdl
Ci1pdCByZWZlcmVuY2VzIChlLmcuIGBtZXNzYWdlPEJhcj5gIHdoZXJlIGl0IHNob3VsZCBiZSBg
bWVzc2FnZTxibGFoLkJhcj5gKSwgeW91Ci13aWxsIG5vdyBnZXQgcnVuLXRpbWUgZXJyb3JzIGxp
a2U6Ci0KLWBgYAotLi4uIGRlc2NyaXB0b3IuY2M6Li4uXSBJbnZhbGlkIHByb3RvIGRlc2NyaXB0
b3IgZm9yIGZpbGUgInBhdGgvdG8vZm9vLnByb3RvIjoKLS4uLiBkZXNjcmlwdG9yLmNjOi4uLl0g
IGJsYWguTXlNZXNzYWdlLm15X2ZpZWxkOiAiLkJhciIgaXMgbm90IGRlZmluZWQuCi1gYGAKLQot
SWYgeW91IHNlZSB0aGlzLCB5b3VyIGAucHJvdG9gIGZpbGUgaXMgYnJva2VuIGFuZCBuZWVkcyB0
byBiZSBmaXhlZCBieSBtYWtpbmcKLXRoZSB0eXBlcyBmdWxseSBxdWFsaWZpZWQuIFRoZSBuZXcg
ZGVmaW5pdGlvbiBvZiBgUHJvdG9jb2xNZXNzYWdlRXF1YWxzYCBhbmQKLWBQcm90b2NvbE1lc3Nh
Z2VFcXVpdmAganVzdCBoYXBwZW4gdG8gcmV2ZWFsIHlvdXIgYnVnLgotCi0jIyBNeSBkZWF0aCB0
ZXN0IG1vZGlmaWVzIHNvbWUgc3RhdGUsIGJ1dCB0aGUgY2hhbmdlIHNlZW1zIGxvc3QgYWZ0ZXIg
dGhlIGRlYXRoIHRlc3QgZmluaXNoZXMuIFdoeT8KLQotRGVhdGggdGVzdHMgKGBFWFBFQ1RfREVB
VEhgLCBldGMpIGFyZSBleGVjdXRlZCBpbiBhIHN1Yi1wcm9jZXNzIHMudC4gdGhlCi1leHBlY3Rl
ZCBjcmFzaCB3b24ndCBraWxsIHRoZSB0ZXN0IHByb2dyYW0gKGkuZS4gdGhlIHBhcmVudCBwcm9j
ZXNzKS4gQXMgYQotcmVzdWx0LCBhbnkgaW4tbWVtb3J5IHNpZGUgZWZmZWN0cyB0aGV5IGluY3Vy
IGFyZSBvYnNlcnZhYmxlIGluIHRoZWlyIHJlc3BlY3RpdmUKLXN1Yi1wcm9jZXNzZXMsIGJ1dCBu
b3QgaW4gdGhlIHBhcmVudCBwcm9jZXNzLiBZb3UgY2FuIHRoaW5rIG9mIHRoZW0gYXMgcnVubmlu
ZwotaW4gYSBwYXJhbGxlbCB1bml2ZXJzZSwgbW9yZSBvciBsZXNzLgotCi1JbiBwYXJ0aWN1bGFy
LCBpZiB5b3UgdXNlIFtnTW9ja10oLi4vLi4vZ29vZ2xlbW9jaykgYW5kIHRoZSBkZWF0aCB0ZXN0
IHN0YXRlbWVudAotaW52b2tlcyBzb21lIG1vY2sgbWV0aG9kcywgdGhlIHBhcmVudCBwcm9jZXNz
IHdpbGwgdGhpbmsgdGhlIGNhbGxzIGhhdmUgbmV2ZXIKLW9jY3VycmVkLiBUaGVyZWZvcmUsIHlv
dSBtYXkgd2FudCB0byBtb3ZlIHlvdXIgYEVYUEVDVF9DQUxMYCBzdGF0ZW1lbnRzIGluc2lkZQot
dGhlIGBFWFBFQ1RfREVBVEhgIG1hY3JvLgotCi0jIyBFWFBFQ1RfRVEoaHRvbmwoYmxhaCksIGJs
YWhfYmxhaCkgZ2VuZXJhdGVzIHdlaXJkIGNvbXBpbGVyIGVycm9ycyBpbiBvcHQgbW9kZS4gSXMg
dGhpcyBhIGdvb2dsZXRlc3QgYnVnPwotCi1BY3R1YWxseSwgdGhlIGJ1ZyBpcyBpbiBgaHRvbmwo
KWAuCi0KLUFjY29yZGluZyB0byBgJ21hbiBodG9ubCdgLCBgaHRvbmwoKWAgaXMgYSAqZnVuY3Rp
b24qLCB3aGljaCBtZWFucyBpdCdzIHZhbGlkIHRvCi11c2UgYGh0b25sYCBhcyBhIGZ1bmN0aW9u
IHBvaW50ZXIuIEhvd2V2ZXIsIGluIG9wdCBtb2RlIGBodG9ubCgpYCBpcyBkZWZpbmVkIGFzCi1h
ICptYWNybyosIHdoaWNoIGJyZWFrcyB0aGlzIHVzYWdlLgotCi1Xb3JzZSwgdGhlIG1hY3JvIGRl
ZmluaXRpb24gb2YgYGh0b25sKClgIHVzZXMgYSBgZ2NjYCBleHRlbnNpb24gYW5kIGlzICpub3Qq
Ci1zdGFuZGFyZCBDKysuIFRoYXQgaGFja3kgaW1wbGVtZW50YXRpb24gaGFzIHNvbWUgYWQgaG9j
IGxpbWl0YXRpb25zLiBJbgotcGFydGljdWxhciwgaXQgcHJldmVudHMgeW91IGZyb20gd3JpdGlu
ZyBgRm9vPHNpemVvZihodG9ubCh4KSk+KClgLCB3aGVyZSBgRm9vYAotaXMgYSB0ZW1wbGF0ZSB0
aGF0IGhhcyBhbiBpbnRlZ3JhbCBhcmd1bWVudC4KLQotVGhlIGltcGxlbWVudGF0aW9uIG9mIGBF
WFBFQ1RfRVEoYSwgYilgIHVzZXMgYHNpemVvZiguLi4gYSAuLi4pYCBpbnNpZGUgYQotdGVtcGxh
dGUgYXJndW1lbnQsIGFuZCB0aHVzIGRvZXNuJ3QgY29tcGlsZSBpbiBvcHQgbW9kZSB3aGVuIGBh
YCBjb250YWlucyBhIGNhbGwKLXRvIGBodG9ubCgpYC4gSXQgaXMgZGlmZmljdWx0IHRvIG1ha2Ug
YEVYUEVDVF9FUWAgYnlwYXNzIHRoZSBgaHRvbmwoKWAgYnVnLCBhcwotdGhlIHNvbHV0aW9uIG11
c3Qgd29yayB3aXRoIGRpZmZlcmVudCBjb21waWxlcnMgb24gdmFyaW91cyBwbGF0Zm9ybXMuCi0K
LWBodG9ubCgpYCBoYXMgc29tZSBvdGhlciBwcm9ibGVtcyBhcyBkZXNjcmliZWQgaW4gYC8vdXRp
bC9lbmRpYW4vZW5kaWFuLmhgLAotd2hpY2ggZGVmaW5lcyBgZ2h0b25sKClgIHRvIHJlcGxhY2Ug
aXQuIGBnaHRvbmwoKWAgZG9lcyB0aGUgc2FtZSB0aGluZyBgaHRvbmwoKWAKLWRvZXMsIG9ubHkg
d2l0aG91dCBpdHMgcHJvYmxlbXMuIFdlIHN1Z2dlc3QgeW91IHRvIHVzZSBgZ2h0b25sKClgIGlu
c3RlYWQgb2YKLWBodG9ubCgpYCwgYm90aCBpbiB5b3VyIHRlc3RzIGFuZCBwcm9kdWN0aW9uIGNv
ZGUuCi0KLWAvL3V0aWwvZW5kaWFuL2VuZGlhbi5oYCBhbHNvIGRlZmluZXMgYGdodG9ucygpYCwg
d2hpY2ggc29sdmVzIHNpbWlsYXIgcHJvYmxlbXMKLWluIGBodG9ucygpYC4KLQotRG9uJ3QgZm9y
Z2V0IHRvIGFkZCBgLy91dGlsL2VuZGlhbmAgdG8gdGhlIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIGlu
IHRoZSBgQlVJTERgCi1maWxlIHdoZXJldmVyIGBnaHRvbmwoKWAgYW5kIGBnaHRvbnMoKWAgYXJl
IHVzZWQuIFRoZSBsaWJyYXJ5IGNvbnNpc3RzIG9mIGEKLXNpbmdsZSBoZWFkZXIgZmlsZSBhbmQg
d2lsbCBub3QgYmxvYXQgeW91ciBiaW5hcnkuCi0KLSMjIFRoZSBjb21waWxlciBjb21wbGFpbnMg
YWJvdXQgInVuZGVmaW5lZCByZWZlcmVuY2VzIiB0byBzb21lIHN0YXRpYyBjb25zdCBtZW1iZXIg
dmFyaWFibGVzLCBidXQgSSBkaWQgZGVmaW5lIHRoZW0gaW4gdGhlIGNsYXNzIGJvZHkuIFdoYXQn
cyB3cm9uZz8KLQotSWYgeW91ciBjbGFzcyBoYXMgYSBzdGF0aWMgZGF0YSBtZW1iZXI6Ci0KLWBg
YGMrKwotLy8gZm9vLmgKLWNsYXNzIEZvbyB7Ci0gIC4uLgotICBzdGF0aWMgY29uc3QgaW50IGtC
YXIgPSAxMDA7Ci19OwotYGBgCi0KLVlvdSBhbHNvIG5lZWQgdG8gZGVmaW5lIGl0ICpvdXRzaWRl
KiBvZiB0aGUgY2xhc3MgYm9keSBpbiBgZm9vLmNjYDoKLQotYGBgYysrCi1jb25zdCBpbnQgRm9v
OjprQmFyOyAgLy8gTm8gaW5pdGlhbGl6ZXIgaGVyZS4KLWBgYAotCi1PdGhlcndpc2UgeW91ciBj
b2RlIGlzICoqaW52YWxpZCBDKysqKiwgYW5kIG1heSBicmVhayBpbiB1bmV4cGVjdGVkIHdheXMu
IEluCi1wYXJ0aWN1bGFyLCB1c2luZyBpdCBpbiBnb29nbGV0ZXN0IGNvbXBhcmlzb24gYXNzZXJ0
aW9ucyAoYEVYUEVDVF9FUWAsIGV0Yykgd2lsbAotZ2VuZXJhdGUgYW4gInVuZGVmaW5lZCByZWZl
cmVuY2UiIGxpbmtlciBlcnJvci4gVGhlIGZhY3QgdGhhdCAiaXQgdXNlZCB0byB3b3JrIgotZG9l
c24ndCBtZWFuIGl0J3MgdmFsaWQuIEl0IGp1c3QgbWVhbnMgdGhhdCB5b3Ugd2VyZSBsdWNreS4g
Oi0pCi0KLSMjIENhbiBJIGRlcml2ZSBhIHRlc3QgZml4dHVyZSBmcm9tIGFub3RoZXI/Ci0KLVll
cy4KLQotRWFjaCB0ZXN0IGZpeHR1cmUgaGFzIGEgY29ycmVzcG9uZGluZyBhbmQgc2FtZSBuYW1l
ZCB0ZXN0IGNhc2UuIFRoaXMgbWVhbnMgb25seQotb25lIHRlc3QgY2FzZSBjYW4gdXNlIGEgcGFy
dGljdWxhciBmaXh0dXJlLiBTb21ldGltZXMsIGhvd2V2ZXIsIG11bHRpcGxlIHRlc3QKLWNhc2Vz
IG1heSB3YW50IHRvIHVzZSB0aGUgc2FtZSBvciBzbGlnaHRseSBkaWZmZXJlbnQgZml4dHVyZXMu
IEZvciBleGFtcGxlLCB5b3UKLW1heSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCBvZiBhIEdV
SSBsaWJyYXJ5J3MgdGVzdCBjYXNlcyBkb24ndCBsZWFrCi1pbXBvcnRhbnQgc3lzdGVtIHJlc291
cmNlcyBsaWtlIGZvbnRzIGFuZCBicnVzaGVzLgotCi1JbiBnb29nbGV0ZXN0LCB5b3Ugc2hhcmUg
YSBmaXh0dXJlIGFtb25nIHRlc3QgY2FzZXMgYnkgcHV0dGluZyB0aGUgc2hhcmVkIGxvZ2ljCi1p
biBhIGJhc2UgdGVzdCBmaXh0dXJlLCB0aGVuIGRlcml2aW5nIGZyb20gdGhhdCBiYXNlIGEgc2Vw
YXJhdGUgZml4dHVyZSBmb3IgZWFjaAotdGVzdCBjYXNlIHRoYXQgd2FudHMgdG8gdXNlIHRoaXMg
Y29tbW9uIGxvZ2ljLiBZb3UgdGhlbiB1c2UgYFRFU1RfRigpYCB0byB3cml0ZQotdGVzdHMgdXNp
bmcgZWFjaCBkZXJpdmVkIGZpeHR1cmUuCi0KLVR5cGljYWxseSwgeW91ciBjb2RlIGxvb2tzIGxp
a2UgdGhpczoKLQotYGBgYysrCi0vLyBEZWZpbmVzIGEgYmFzZSB0ZXN0IGZpeHR1cmUuCi1jbGFz
cyBCYXNlVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLi4u
Ci19OwotCi0vLyBEZXJpdmVzIGEgZml4dHVyZSBGb29UZXN0IGZyb20gQmFzZVRlc3QuCi1jbGFz
cyBGb29UZXN0IDogcHVibGljIEJhc2VUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7Ci0gICAgQmFzZVRlc3Q6OlNldFVwKCk7ICAvLyBTZXRzIHVwIHRoZSBiYXNl
IGZpeHR1cmUgZmlyc3QuCi0gICAgLi4uIGFkZGl0aW9uYWwgc2V0LXVwIHdvcmsgLi4uCi0gIH0K
LQotICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewotICAgIC4uLiBjbGVhbi11cCB3b3JrIGZv
ciBGb29UZXN0IC4uLgotICAgIEJhc2VUZXN0OjpUZWFyRG93bigpOyAgLy8gUmVtZW1iZXIgdG8g
dGVhciBkb3duIHRoZSBiYXNlIGZpeHR1cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IGFmdGVyIGNsZWFuaW5nIHVwIEZvb1Rlc3QhCi0gIH0KLQotICAuLi4gZnVuY3Rpb25zIGFuZCB2
YXJpYWJsZXMgZm9yIEZvb1Rlc3QgLi4uCi19OwotCi0vLyBUZXN0cyB0aGF0IHVzZSB0aGUgZml4
dHVyZSBGb29UZXN0LgotVEVTVF9GKEZvb1Rlc3QsIEJhcikgeyAuLi4gfQotVEVTVF9GKEZvb1Rl
c3QsIEJheikgeyAuLi4gfQotCi0uLi4gYWRkaXRpb25hbCBmaXh0dXJlcyBkZXJpdmVkIGZyb20g
QmFzZVRlc3QgLi4uCi1gYGAKLQotSWYgbmVjZXNzYXJ5LCB5b3UgY2FuIGNvbnRpbnVlIHRvIGRl
cml2ZSB0ZXN0IGZpeHR1cmVzIGZyb20gYSBkZXJpdmVkIGZpeHR1cmUuCi1nb29nbGV0ZXN0IGhh
cyBubyBsaW1pdCBvbiBob3cgZGVlcCB0aGUgaGllcmFyY2h5IGNhbiBiZS4KLQotRm9yIGEgY29t
cGxldGUgZXhhbXBsZSB1c2luZyBkZXJpdmVkIHRlc3QgZml4dHVyZXMsIHNlZSBbZ29vZ2xldGVz
dAotc2FtcGxlXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0
ZXIvZ29vZ2xldGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MpCi0KLSMjIE15IGNvbXBp
bGVyIGNvbXBsYWlucyAidm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZS4i
IFdoYXQgZG9lcyB0aGlzIG1lYW4/Ci0KLVlvdSdyZSBwcm9iYWJseSB1c2luZyBhbiBgQVNTRVJU
XyooKWAgaW4gYSBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgcmV0dXJuIGB2b2lkYC4KLWBBU1NFUlRf
KigpYCBjYW4gb25seSBiZSB1c2VkIGluIGB2b2lkYCBmdW5jdGlvbnMsIGR1ZSB0byBleGNlcHRp
b25zIGJlaW5nCi1kaXNhYmxlZCBieSBvdXIgYnVpbGQgc3lzdGVtLiBQbGVhc2Ugc2VlIG1vcmUg
ZGV0YWlscwotW2hlcmVdKGFkdmFuY2VkLm1kI2Fzc2VydGlvbi1wbGFjZW1lbnQpLgotCi0jIyBN
eSBkZWF0aCB0ZXN0IGhhbmdzIChvciBzZWctZmF1bHRzKS4gSG93IGRvIEkgZml4IGl0PwotCi1J
biBnb29nbGV0ZXN0LCBkZWF0aCB0ZXN0cyBhcmUgcnVuIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQg
dGhlIHdheSB0aGV5IHdvcmsgaXMKLWRlbGljYXRlLiBUbyB3cml0ZSBkZWF0aCB0ZXN0cyB5b3Ug
cmVhbGx5IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhleSB3b3JrLgotUGxlYXNlIG1ha2Ugc3Vy
ZSB5b3UgaGF2ZSByZWFkIFt0aGlzXShhZHZhbmNlZC5tZCNob3ctaXQtd29ya3MpLgotCi1JbiBw
YXJ0aWN1bGFyLCBkZWF0aCB0ZXN0cyBkb24ndCBsaWtlIGhhdmluZyBtdWx0aXBsZSB0aHJlYWRz
IGluIHRoZSBwYXJlbnQKLXByb2Nlc3MuIFNvIHRoZSBmaXJzdCB0aGluZyB5b3UgY2FuIHRyeSBp
cyB0byBlbGltaW5hdGUgY3JlYXRpbmcgdGhyZWFkcyBvdXRzaWRlCi1vZiBgRVhQRUNUX0RFQVRI
KClgLiBGb3IgZXhhbXBsZSwgeW91IG1heSB3YW50IHRvIHVzZSBbbW9ja3NdKC4uLy4uL2dvb2ds
ZW1vY2spCi1vciBmYWtlIG9iamVjdHMgaW5zdGVhZCBvZiByZWFsIG9uZXMgaW4geW91ciB0ZXN0
cy4KLQotU29tZXRpbWVzIHRoaXMgaXMgaW1wb3NzaWJsZSBhcyBzb21lIGxpYnJhcnkgeW91IG11
c3QgdXNlIG1heSBiZSBjcmVhdGluZwotdGhyZWFkcyBiZWZvcmUgYG1haW4oKWAgaXMgZXZlbiBy
ZWFjaGVkLiBJbiB0aGlzIGNhc2UsIHlvdSBjYW4gdHJ5IHRvIG1pbmltaXplCi10aGUgY2hhbmNl
IG9mIGNvbmZsaWN0cyBieSBlaXRoZXIgbW92aW5nIGFzIG1hbnkgYWN0aXZpdGllcyBhcyBwb3Nz
aWJsZSBpbnNpZGUKLWBFWFBFQ1RfREVBVEgoKWAgKGluIHRoZSBleHRyZW1lIGNhc2UsIHlvdSB3
YW50IHRvIG1vdmUgZXZlcnl0aGluZyBpbnNpZGUpLCBvcgotbGVhdmluZyBhcyBmZXcgdGhpbmdz
IGFzIHBvc3NpYmxlIGluIGl0LiBBbHNvLCB5b3UgY2FuIHRyeSB0byBzZXQgdGhlIGRlYXRoIHRl
c3QKLXN0eWxlIHRvIGAidGhyZWFkc2FmZSJgLCB3aGljaCBpcyBzYWZlciBidXQgc2xvd2VyLCBh
bmQgc2VlIGlmIGl0IGhlbHBzLgotCi1JZiB5b3UgZ28gd2l0aCB0aHJlYWQtc2FmZSBkZWF0aCB0
ZXN0cywgcmVtZW1iZXIgdGhhdCB0aGV5IHJlcnVuIHRoZSB0ZXN0Ci1wcm9ncmFtIGZyb20gdGhl
IGJlZ2lubmluZyBpbiB0aGUgY2hpbGQgcHJvY2Vzcy4gVGhlcmVmb3JlIG1ha2Ugc3VyZSB5b3Vy
Ci1wcm9ncmFtIGNhbiBydW4gc2lkZS1ieS1zaWRlIHdpdGggaXRzZWxmIGFuZCBpcyBkZXRlcm1p
bmlzdGljLgotCi1JbiB0aGUgZW5kLCB0aGlzIGJvaWxzIGRvd24gdG8gZ29vZCBjb25jdXJyZW50
IHByb2dyYW1taW5nLiBZb3UgaGF2ZSB0byBtYWtlCi1zdXJlIHRoYXQgdGhlcmUgaXMgbm8gcmFj
ZSBjb25kaXRpb25zIG9yIGRlYWQgbG9ja3MgaW4geW91ciBwcm9ncmFtLiBObyBzaWx2ZXIKLWJ1
bGxldCAtIHNvcnJ5IQotCi0jIyBTaG91bGQgSSB1c2UgdGhlIGNvbnN0cnVjdG9yL2Rlc3RydWN0
b3Igb2YgdGhlIHRlc3QgZml4dHVyZSBvciBTZXRVcCgpL1RlYXJEb3duKCk/Ci0KLVRoZSBmaXJz
dCB0aGluZyB0byByZW1lbWJlciBpcyB0aGF0IGdvb2dsZXRlc3QgZG9lcyAqKm5vdCoqIHJldXNl
IHRoZSBzYW1lIHRlc3QKLWZpeHR1cmUgb2JqZWN0IGFjcm9zcyBtdWx0aXBsZSB0ZXN0cy4gRm9y
IGVhY2ggYFRFU1RfRmAsIGdvb2dsZXRlc3Qgd2lsbCBjcmVhdGUKLWEgKipmcmVzaCoqIHRlc3Qg
Zml4dHVyZSBvYmplY3QsIGltbWVkaWF0ZWx5IGNhbGwgYFNldFVwKClgLCBydW4gdGhlIHRlc3Qg
Ym9keSwKLWNhbGwgYFRlYXJEb3duKClgLCBhbmQgdGhlbiBkZWxldGUgdGhlIHRlc3QgZml4dHVy
ZSBvYmplY3QuCi0KLVdoZW4geW91IG5lZWQgdG8gd3JpdGUgcGVyLXRlc3Qgc2V0LXVwIGFuZCB0
ZWFyLWRvd24gbG9naWMsIHlvdSBoYXZlIHRoZSBjaG9pY2UKLWJldHdlZW4gdXNpbmcgdGhlIHRl
c3QgZml4dHVyZSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIG9yIGBTZXRVcCgpL1RlYXJEb3duKClg
LgotVGhlIGZvcm1lciBpcyB1c3VhbGx5IHByZWZlcnJlZCwgYXMgaXQgaGFzIHRoZSBmb2xsb3dp
bmcgYmVuZWZpdHM6Ci0KLSogICBCeSBpbml0aWFsaXppbmcgYSBtZW1iZXIgdmFyaWFibGUgaW4g
dGhlIGNvbnN0cnVjdG9yLCB3ZSBoYXZlIHRoZSBvcHRpb24gdG8KLSAgICBtYWtlIGl0IGBjb25z
dGAsIHdoaWNoIGhlbHBzIHByZXZlbnQgYWNjaWRlbnRhbCBjaGFuZ2VzIHRvIGl0cyB2YWx1ZSBh
bmQKLSAgICBtYWtlcyB0aGUgdGVzdHMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSogICBJbiBj
YXNlIHdlIG5lZWQgdG8gc3ViY2xhc3MgdGhlIHRlc3QgZml4dHVyZSBjbGFzcywgdGhlIHN1YmNs
YXNzJwotICAgIGNvbnN0cnVjdG9yIGlzIGd1YXJhbnRlZWQgdG8gY2FsbCB0aGUgYmFzZSBjbGFz
cycgY29uc3RydWN0b3IgKmZpcnN0KiwgYW5kCi0gICAgdGhlIHN1YmNsYXNzJyBkZXN0cnVjdG9y
IGlzIGd1YXJhbnRlZWQgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcycgZGVzdHJ1Y3RvcgotICAgICph
ZnRlcndhcmQqLiBXaXRoIGBTZXRVcCgpL1RlYXJEb3duKClgLCBhIHN1YmNsYXNzIG1heSBtYWtl
IHRoZSBtaXN0YWtlIG9mCi0gICAgZm9yZ2V0dGluZyB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJyBg
U2V0VXAoKS9UZWFyRG93bigpYCBvciBjYWxsIHRoZW0gYXQgdGhlCi0gICAgd3JvbmcgdGltZS4K
LQotWW91IG1heSBzdGlsbCB3YW50IHRvIHVzZSBgU2V0VXAoKS9UZWFyRG93bigpYCBpbiB0aGUg
Zm9sbG93aW5nIHJhcmUgY2FzZXM6Ci0KLSogICBJbiB0aGUgYm9keSBvZiBhIGNvbnN0cnVjdG9y
IChvciBkZXN0cnVjdG9yKSwgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIHRoZQotICAgIGBBU1NF
UlRfeHhgIG1hY3Jvcy4gVGhlcmVmb3JlLCBpZiB0aGUgc2V0LXVwIG9wZXJhdGlvbiBjb3VsZCBj
YXVzZSBhIGZhdGFsCi0gICAgdGVzdCBmYWlsdXJlIHRoYXQgc2hvdWxkIHByZXZlbnQgdGhlIHRl
c3QgZnJvbSBydW5uaW5nLCBpdCdzIG5lY2Vzc2FyeSB0bwotICAgIHVzZSBhIGBDSEVDS2AgbWFj
cm8gb3IgdG8gdXNlIGBTZXRVcCgpYCBpbnN0ZWFkIG9mIGEgY29uc3RydWN0b3IuCi0qICAgSWYg
dGhlIHRlYXItZG93biBvcGVyYXRpb24gY291bGQgdGhyb3cgYW4gZXhjZXB0aW9uLCB5b3UgbXVz
dCB1c2UKLSAgICBgVGVhckRvd24oKWAgYXMgb3Bwb3NlZCB0byB0aGUgZGVzdHJ1Y3RvciwgYXMg
dGhyb3dpbmcgaW4gYSBkZXN0cnVjdG9yIGxlYWRzCi0gICAgdG8gdW5kZWZpbmVkIGJlaGF2aW9y
IGFuZCB1c3VhbGx5IHdpbGwga2lsbCB5b3VyIHByb2dyYW0gcmlnaHQgYXdheS4gTm90ZQotICAg
IHRoYXQgbWFueSBzdGFuZGFyZCBsaWJyYXJpZXMgKGxpa2UgU1RMKSBtYXkgdGhyb3cgd2hlbiBl
eGNlcHRpb25zIGFyZQotICAgIGVuYWJsZWQgaW4gdGhlIGNvbXBpbGVyLiBUaGVyZWZvcmUgeW91
IHNob3VsZCBwcmVmZXIgYFRlYXJEb3duKClgIGlmIHlvdQotICAgIHdhbnQgdG8gd3JpdGUgcG9y
dGFibGUgdGVzdHMgdGhhdCB3b3JrIHdpdGggb3Igd2l0aG91dCBleGNlcHRpb25zLgotKiAgIFRo
ZSBnb29nbGV0ZXN0IHRlYW0gaXMgY29uc2lkZXJpbmcgbWFraW5nIHRoZSBhc3NlcnRpb24gbWFj
cm9zIHRocm93IG9uCi0gICAgcGxhdGZvcm1zIHdoZXJlIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQg
KGUuZy4gV2luZG93cywgTWFjIE9TLCBhbmQgTGludXgKLSAgICBjbGllbnQtc2lkZSksIHdoaWNo
IHdpbGwgZWxpbWluYXRlIHRoZSBuZWVkIGZvciB0aGUgdXNlciB0byBwcm9wYWdhdGUKLSAgICBm
YWlsdXJlcyBmcm9tIGEgc3Vicm91dGluZSB0byBpdHMgY2FsbGVyLiBUaGVyZWZvcmUsIHlvdSBz
aG91bGRuJ3QgdXNlCi0gICAgZ29vZ2xldGVzdCBhc3NlcnRpb25zIGluIGEgZGVzdHJ1Y3RvciBp
ZiB5b3VyIGNvZGUgY291bGQgcnVuIG9uIHN1Y2ggYQotICAgIHBsYXRmb3JtLgotKiAgIEluIGEg
Y29uc3RydWN0b3Igb3IgZGVzdHJ1Y3RvciwgeW91IGNhbm5vdCBtYWtlIGEgdmlydHVhbCBmdW5j
dGlvbiBjYWxsIG9uCi0gICAgdGhpcyBvYmplY3QuIChZb3UgY2FuIGNhbGwgYSBtZXRob2QgZGVj
bGFyZWQgYXMgdmlydHVhbCwgYnV0IGl0IHdpbGwgYmUKLSAgICBzdGF0aWNhbGx5IGJvdW5kLikg
VGhlcmVmb3JlLCBpZiB5b3UgbmVlZCB0byBjYWxsIGEgbWV0aG9kIHRoYXQgd2lsbCBiZQotICAg
IG92ZXJyaWRkZW4gaW4gYSBkZXJpdmVkIGNsYXNzLCB5b3UgaGF2ZSB0byB1c2UgYFNldFVwKCkv
VGVhckRvd24oKWAuCi0KLQotIyMgVGhlIGNvbXBpbGVyIGNvbXBsYWlucyAibm8gbWF0Y2hpbmcg
ZnVuY3Rpb24gdG8gY2FsbCIgd2hlbiBJIHVzZSBBU1NFUlRfUFJFRCouIEhvdyBkbyBJIGZpeCBp
dD8KLQotSWYgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiB5b3UgdXNlIGluIGBBU1NFUlRfUFJFRCpg
IG9yIGBFWFBFQ1RfUFJFRCpgIGlzCi1vdmVybG9hZGVkIG9yIGEgdGVtcGxhdGUsIHRoZSBjb21w
aWxlciB3aWxsIGhhdmUgdHJvdWJsZSBmaWd1cmluZyBvdXQgd2hpY2gKLW92ZXJsb2FkZWQgdmVy
c2lvbiBpdCBzaG91bGQgdXNlLiBgQVNTRVJUX1BSRURfRk9STUFUKmAgYW5kCi1gRVhQRUNUX1BS
RURfRk9STUFUKmAgZG9uJ3QgaGF2ZSB0aGlzIHByb2JsZW0uCi0KLUlmIHlvdSBzZWUgdGhpcyBl
cnJvciwgeW91IG1pZ2h0IHdhbnQgdG8gc3dpdGNoIHRvCi1gKEFTU0VSVHxFWFBFQ1QpX1BSRURf
Rk9STUFUKmAsIHdoaWNoIHdpbGwgYWxzbyBnaXZlIHlvdSBhIGJldHRlciBmYWlsdXJlCi1tZXNz
YWdlLiBJZiwgaG93ZXZlciwgdGhhdCBpcyBub3QgYW4gb3B0aW9uLCB5b3UgY2FuIHJlc29sdmUg
dGhlIHByb2JsZW0gYnkKLWV4cGxpY2l0bHkgdGVsbGluZyB0aGUgY29tcGlsZXIgd2hpY2ggdmVy
c2lvbiB0byBwaWNrLgotCi1Gb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgaGF2ZQotCi1gYGBjKysK
LWJvb2wgSXNQb3NpdGl2ZShpbnQgbikgewotICByZXR1cm4gbiA+IDA7Ci19Ci0KLWJvb2wgSXNQ
b3NpdGl2ZShkb3VibGUgeCkgewotICByZXR1cm4geCA+IDA7Ci19Ci1gYGAKLQoteW91IHdpbGwg
Z2V0IGEgY29tcGlsZXIgZXJyb3IgaWYgeW91IHdyaXRlCi0KLWBgYGMrKwotRVhQRUNUX1BSRUQx
KElzUG9zaXRpdmUsIDUpOwotYGBgCi0KLUhvd2V2ZXIsIHRoaXMgd2lsbCB3b3JrOgotCi1gYGBj
KysKLUVYUEVDVF9QUkVEMShzdGF0aWNfY2FzdDxib29sICgqKShpbnQpPihJc1Bvc2l0aXZlKSwg
NSk7Ci1gYGAKLQotKFRoZSBzdHVmZiBpbnNpZGUgdGhlIGFuZ2xlZCBicmFja2V0cyBmb3IgdGhl
IGBzdGF0aWNfY2FzdGAgb3BlcmF0b3IgaXMgdGhlIHR5cGUKLW9mIHRoZSBmdW5jdGlvbiBwb2lu
dGVyIGZvciB0aGUgYGludGAtdmVyc2lvbiBvZiBgSXNQb3NpdGl2ZSgpYC4pCi0KLUFzIGFub3Ro
ZXIgZXhhbXBsZSwgd2hlbiB5b3UgaGF2ZSBhIHRlbXBsYXRlIGZ1bmN0aW9uCi0KLWBgYGMrKwot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1ib29sIElzTmVnYXRpdmUoVCB4KSB7Ci0gIHJldHVybiB4
IDwgMDsKLX0KLWBgYAotCi15b3UgY2FuIHVzZSBpdCBpbiBhIHByZWRpY2F0ZSBhc3NlcnRpb24g
bGlrZSB0aGlzOgotCi1gYGBjKysKLUFTU0VSVF9QUkVEMShJc05lZ2F0aXZlPGludD4sIC01KTsK
LWBgYAotCi1UaGluZ3MgYXJlIG1vcmUgaW50ZXJlc3RpbmcgaWYgeW91ciB0ZW1wbGF0ZSBoYXMg
bW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXJzLiBUaGUKLWZvbGxvd2luZyB3b24ndCBjb21waWxlOgot
Ci1gYGBjKysKLUFTU0VSVF9QUkVEMihHcmVhdGVyVGhhbjxpbnQsIGludD4sIDUsIDApOwotYGBg
Ci0KLWFzIHRoZSBDKysgcHJlLXByb2Nlc3NvciB0aGlua3MgeW91IGFyZSBnaXZpbmcgYEFTU0VS
VF9QUkVEMmAgNCBhcmd1bWVudHMsIHdoaWNoCi1pcyBvbmUgbW9yZSB0aGFuIGV4cGVjdGVkLiBU
aGUgd29ya2Fyb3VuZCBpcyB0byB3cmFwIHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gaW4KLXBhcmVu
dGhlc2VzOgotCi1gYGBjKysKLUFTU0VSVF9QUkVEMigoR3JlYXRlclRoYW48aW50LCBpbnQ+KSwg
NSwgMCk7Ci1gYGAKLQotCi0jIyBNeSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgImlnbm9yaW5n
IHJldHVybiB2YWx1ZSIgd2hlbiBJIGNhbGwgUlVOX0FMTF9URVNUUygpLiBXaHk/Ci0KLVNvbWUg
cGVvcGxlIGhhZCBiZWVuIGlnbm9yaW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVT
VFMoKWAuIFRoYXQgaXMsCi1pbnN0ZWFkIG9mCi0KLWBgYGMrKwotICByZXR1cm4gUlVOX0FMTF9U
RVNUUygpOwotYGBgCi0KLXRoZXkgd3JpdGUKLQotYGBgYysrCi0gIFJVTl9BTExfVEVTVFMoKTsK
LWBgYAotCi1UaGlzIGlzICoqd3JvbmcgYW5kIGRhbmdlcm91cyoqLiBUaGUgdGVzdGluZyBzZXJ2
aWNlcyBuZWVkcyB0byBzZWUgdGhlIHJldHVybgotdmFsdWUgb2YgYFJVTl9BTExfVEVTVFMoKWAg
aW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIGEgdGVzdCBoYXMgcGFzc2VkLiBJZiB5b3VyCi1gbWFp
bigpYCBmdW5jdGlvbiBpZ25vcmVzIGl0LCB5b3VyIHRlc3Qgd2lsbCBiZSBjb25zaWRlcmVkIHN1
Y2Nlc3NmdWwgZXZlbiBpZiBpdAotaGFzIGEgZ29vZ2xldGVzdCBhc3NlcnRpb24gZmFpbHVyZS4g
VmVyeSBiYWQuCi0KLVdlIGhhdmUgZGVjaWRlZCB0byBmaXggdGhpcyAodGhhbmtzIHRvIE1pY2hh
ZWwgQ2hhc3RhaW4gZm9yIHRoZSBpZGVhKS4gTm93LCB5b3VyCi1jb2RlIHdpbGwgbm8gbG9uZ2Vy
IGJlIGFibGUgdG8gaWdub3JlIGBSVU5fQUxMX1RFU1RTKClgIHdoZW4gY29tcGlsZWQgd2l0aAot
YGdjY2AuIElmIHlvdSBkbyBzbywgeW91J2xsIGdldCBhIGNvbXBpbGVyIGVycm9yLgotCi1JZiB5
b3Ugc2VlIHRoZSBjb21waWxlciBjb21wbGFpbmluZyBhYm91dCB5b3UgaWdub3JpbmcgdGhlIHJl
dHVybiB2YWx1ZSBvZgotYFJVTl9BTExfVEVTVFMoKWAsIHRoZSBmaXggaXMgc2ltcGxlOiBqdXN0
IG1ha2Ugc3VyZSBpdHMgdmFsdWUgaXMgdXNlZCBhcyB0aGUKLXJldHVybiB2YWx1ZSBvZiBgbWFp
bigpYC4KLQotQnV0IGhvdyBjb3VsZCB3ZSBpbnRyb2R1Y2UgYSBjaGFuZ2UgdGhhdCBicmVha3Mg
ZXhpc3RpbmcgdGVzdHM/IFdlbGwsIGluIHRoaXMKLWNhc2UsIHRoZSBjb2RlIHdhcyBhbHJlYWR5
IGJyb2tlbiBpbiB0aGUgZmlyc3QgcGxhY2UsIHNvIHdlIGRpZG4ndCBicmVhayBpdC4gOi0pCi0K
LSMjIE15IGNvbXBpbGVyIGNvbXBsYWlucyB0aGF0IGEgY29uc3RydWN0b3IgKG9yIGRlc3RydWN0
b3IpIGNhbm5vdCByZXR1cm4gYSB2YWx1ZS4gV2hhdCdzIGdvaW5nIG9uPwotCi1EdWUgdG8gYSBw
ZWN1bGlhcml0eSBvZiBDKyssIGluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIHN5bnRheCBmb3Igc3Ry
ZWFtaW5nCi1tZXNzYWdlcyB0byBhbiBgQVNTRVJUXypgLCBlLmcuCi0KLWBgYGMrKwotICBBU1NF
UlRfRVEoMSwgRm9vKCkpIDw8ICJibGFoIGJsYWgiIDw8IGZvbzsKLWBgYAotCi13ZSBoYWQgdG8g
Z2l2ZSB1cCB1c2luZyBgQVNTRVJUKmAgYW5kIGBGQUlMKmAgKGJ1dCBub3QgYEVYUEVDVCpgIGFu
ZAotYEFERF9GQUlMVVJFKmApIGluIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuIFRoZSB3
b3JrYXJvdW5kIGlzIHRvIG1vdmUgdGhlCi1jb250ZW50IG9mIHlvdXIgY29uc3RydWN0b3IvZGVz
dHJ1Y3RvciB0byBhIHByaXZhdGUgdm9pZCBtZW1iZXIgZnVuY3Rpb24sIG9yCi1zd2l0Y2ggdG8g
YEVYUEVDVF8qKClgIGlmIHRoYXQgd29ya3MuIFRoaXMKLVtzZWN0aW9uXShhZHZhbmNlZC5tZCNh
c3NlcnRpb24tcGxhY2VtZW50KSBpbiB0aGUgdXNlcidzIGd1aWRlIGV4cGxhaW5zIGl0LgotCi0j
IyBNeSBTZXRVcCgpIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQuIFdoeT8KLQotQysrIGlzIGNhc2Ut
c2Vuc2l0aXZlLiBEaWQgeW91IHNwZWxsIGl0IGFzIGBTZXR1cCgpYD8KLQotU2ltaWxhcmx5LCBz
b21ldGltZXMgcGVvcGxlIHNwZWxsIGBTZXRVcFRlc3RDYXNlKClgIGFzIGBTZXR1cFRlc3RDYXNl
KClgIGFuZAotd29uZGVyIHdoeSBpdCdzIG5ldmVyIGNhbGxlZC4KLQotIyMgSG93IGRvIEkganVt
cCB0byB0aGUgbGluZSBvZiBhIGZhaWx1cmUgaW4gRW1hY3MgZGlyZWN0bHk/Ci0KLWdvb2dsZXRl
c3QncyBmYWlsdXJlIG1lc3NhZ2UgZm9ybWF0IGlzIHVuZGVyc3Rvb2QgYnkgRW1hY3MgYW5kIG1h
bnkgb3RoZXIgSURFcywKLWxpa2UgYWNtZSBhbmQgWENvZGUuIElmIGEgZ29vZ2xldGVzdCBtZXNz
YWdlIGlzIGluIGEgY29tcGlsYXRpb24gYnVmZmVyIGluCi1FbWFjcywgdGhlbiBpdCdzIGNsaWNr
YWJsZS4KLQotCi0jIyBJIGhhdmUgc2V2ZXJhbCB0ZXN0IGNhc2VzIHdoaWNoIHNoYXJlIHRoZSBz
YW1lIHRlc3QgZml4dHVyZSBsb2dpYywgZG8gSSBoYXZlIHRvIGRlZmluZSBhIG5ldyB0ZXN0IGZp
eHR1cmUgY2xhc3MgZm9yIGVhY2ggb2YgdGhlbT8gVGhpcyBzZWVtcyBwcmV0dHkgdGVkaW91cy4K
LQotWW91IGRvbid0IGhhdmUgdG8uIEluc3RlYWQgb2YKLQotYGBgYysrCi1jbGFzcyBGb29UZXN0
IDogcHVibGljIEJhc2VUZXN0IHt9OwotCi1URVNUX0YoRm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1U
RVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLWNsYXNzIEJhclRlc3QgOiBwdWJsaWMgQmFz
ZVRlc3Qge307Ci0KLVRFU1RfRihCYXJUZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0
LCBEZWYpIHsgLi4uIH0KLWBgYAotCi15b3UgY2FuIHNpbXBseSBgdHlwZWRlZmAgdGhlIHRlc3Qg
Zml4dHVyZXM6Ci0KLWBgYGMrKwotdHlwZWRlZiBCYXNlVGVzdCBGb29UZXN0OwotCi1URVNUX0Yo
Rm9vVGVzdCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoRm9vVGVzdCwgRGVmKSB7IC4uLiB9Ci0KLXR5
cGVkZWYgQmFzZVRlc3QgQmFyVGVzdDsKLQotVEVTVF9GKEJhclRlc3QsIEFiYykgeyAuLi4gfQot
VEVTVF9GKEJhclRlc3QsIERlZikgeyAuLi4gfQotYGBgCi0KLSMjIGdvb2dsZXRlc3Qgb3V0cHV0
IGlzIGJ1cmllZCBpbiBhIHdob2xlIGJ1bmNoIG9mIExPRyBtZXNzYWdlcy4gV2hhdCBkbyBJIGRv
PwotCi1UaGUgZ29vZ2xldGVzdCBvdXRwdXQgaXMgbWVhbnQgdG8gYmUgYSBjb25jaXNlIGFuZCBo
dW1hbi1mcmllbmRseSByZXBvcnQuIElmCi15b3VyIHRlc3QgZ2VuZXJhdGVzIHRleHR1YWwgb3V0
cHV0IGl0c2VsZiwgaXQgd2lsbCBtaXggd2l0aCB0aGUgZ29vZ2xldGVzdAotb3V0cHV0LCBtYWtp
bmcgaXQgaGFyZCB0byByZWFkLiBIb3dldmVyLCB0aGVyZSBpcyBhbiBlYXN5IHNvbHV0aW9uIHRv
IHRoaXMKLXByb2JsZW0uCi0KLVNpbmNlIGBMT0dgIG1lc3NhZ2VzIGdvIHRvIHN0ZGVyciwgd2Ug
ZGVjaWRlZCB0byBsZXQgZ29vZ2xldGVzdCBvdXRwdXQgZ28gdG8KLXN0ZG91dC4gVGhpcyB3YXks
IHlvdSBjYW4gZWFzaWx5IHNlcGFyYXRlIHRoZSB0d28gdXNpbmcgcmVkaXJlY3Rpb24uIEZvcgot
ZXhhbXBsZToKLQotYGBgc2hlbGwKLSQgLi9teV90ZXN0ID4gZ3Rlc3Rfb3V0cHV0LnR4dAotYGBg
Ci0KLQotIyMgV2h5IHNob3VsZCBJIHByZWZlciB0ZXN0IGZpeHR1cmVzIG92ZXIgZ2xvYmFsIHZh
cmlhYmxlcz8KLQotVGhlcmUgYXJlIHNldmVyYWwgZ29vZCByZWFzb25zOgotCi0xLiAgSXQncyBs
aWtlbHkgeW91ciB0ZXN0IG5lZWRzIHRvIGNoYW5nZSB0aGUgc3RhdGVzIG9mIGl0cyBnbG9iYWwg
dmFyaWFibGVzLgotICAgIFRoaXMgbWFrZXMgaXQgZGlmZmljdWx0IHRvIGtlZXAgc2lkZSBlZmZl
Y3RzIGZyb20gZXNjYXBpbmcgb25lIHRlc3QgYW5kCi0gICAgY29udGFtaW5hdGluZyBvdGhlcnMs
IG1ha2luZyBkZWJ1Z2dpbmcgZGlmZmljdWx0LiBCeSB1c2luZyBmaXh0dXJlcywgZWFjaAotICAg
IHRlc3QgaGFzIGEgZnJlc2ggc2V0IG9mIHZhcmlhYmxlcyB0aGF0J3MgZGlmZmVyZW50IChidXQg
d2l0aCB0aGUgc2FtZQotICAgIG5hbWVzKS4gVGh1cywgdGVzdHMgYXJlIGtlcHQgaW5kZXBlbmRl
bnQgb2YgZWFjaCBvdGhlci4KLTEuICBHbG9iYWwgdmFyaWFibGVzIHBvbGx1dGUgdGhlIGdsb2Jh
bCBuYW1lc3BhY2UuCi0xLiAgVGVzdCBmaXh0dXJlcyBjYW4gYmUgcmV1c2VkIHZpYSBzdWJjbGFz
c2luZywgd2hpY2ggY2Fubm90IGJlIGRvbmUgZWFzaWx5Ci0gICAgd2l0aCBnbG9iYWwgdmFyaWFi
bGVzLiBUaGlzIGlzIHVzZWZ1bCBpZiBtYW55IHRlc3QgY2FzZXMgaGF2ZSBzb21ldGhpbmcgaW4K
LSAgICBjb21tb24uCi0KLQotICAgICMjIFdoYXQgY2FuIHRoZSBzdGF0ZW1lbnQgYXJndW1lbnQg
aW4gQVNTRVJUX0RFQVRIKCkgYmU/Ci0KLWBBU1NFUlRfREVBVEgoKnN0YXRlbWVudCosICpyZWdl
eCopYCAob3IgYW55IGRlYXRoIGFzc2VydGlvbiBtYWNybykgY2FuIGJlIHVzZWQKLXdoZXJldmVy
IGAqc3RhdGVtZW50KmAgaXMgdmFsaWQuIFNvIGJhc2ljYWxseSBgKnN0YXRlbWVudCpgIGNhbiBi
ZSBhbnkgQysrCi1zdGF0ZW1lbnQgdGhhdCBtYWtlcyBzZW5zZSBpbiB0aGUgY3VycmVudCBjb250
ZXh0LiBJbiBwYXJ0aWN1bGFyLCBpdCBjYW4KLXJlZmVyZW5jZSBnbG9iYWwgYW5kL29yIGxvY2Fs
IHZhcmlhYmxlcywgYW5kIGNhbiBiZToKLQotKiAgIGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwgKG9m
dGVuIHRoZSBjYXNlKSwKLSogICBhIGNvbXBsZXggZXhwcmVzc2lvbiwgb3IKLSogICBhIGNvbXBv
dW5kIHN0YXRlbWVudC4KLQotU29tZSBleGFtcGxlcyBhcmUgc2hvd24gaGVyZToKLQotYGBgYysr
Ci0vLyBBIGRlYXRoIHRlc3QgY2FuIGJlIGEgc2ltcGxlIGZ1bmN0aW9uIGNhbGwuCi1URVNUKE15
RGVhdGhUZXN0LCBGdW5jdGlvbkNhbGwpIHsKLSAgQVNTRVJUX0RFQVRIKFh5eig1KSwgIlh5eiBm
YWlsZWQiKTsKLX0KLQotLy8gT3IgYSBjb21wbGV4IGV4cHJlc3Npb24gdGhhdCByZWZlcmVuY2Vz
IHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zLgotVEVTVChNeURlYXRoVGVzdCwgQ29tcGxleEV4cHJl
c3Npb24pIHsKLSAgY29uc3QgYm9vbCBjID0gQ29uZGl0aW9uKCk7Ci0gIEFTU0VSVF9ERUFUSCgo
YyA/IEZ1bmMxKDApIDogb2JqZWN0Mi5NZXRob2QoInRlc3QiKSksCi0gICAgICAgICAgICAgICAi
KEZ1bmMxfE1ldGhvZCkgZmFpbGVkIik7Ci19Ci0KLS8vIERlYXRoIGFzc2VydGlvbnMgY2FuIGJl
IHVzZWQgYW55IHdoZXJlIGluIGEgZnVuY3Rpb24uICBJbgotLy8gcGFydGljdWxhciwgdGhleSBj
YW4gYmUgaW5zaWRlIGEgbG9vcC4KLVRFU1QoTXlEZWF0aFRlc3QsIEluc2lkZUxvb3ApIHsKLSAg
Ly8gVmVyaWZpZXMgdGhhdCBGb28oMCksIEZvbygxKSwgLi4uLCBhbmQgRm9vKDQpIGFsbCBkaWUu
Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgRVhQRUNUX0RFQVRIX00oRm9v
KGkpLCAiRm9vIGhhcyBcXGQrIGVycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5n
OjpNZXNzYWdlKCkgPDwgIndoZXJlIGkgaXMgIiA8PCBpKTsKLSAgfQotfQotCi0vLyBBIGRlYXRo
IGFzc2VydGlvbiBjYW4gY29udGFpbiBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLVRFU1QoTXlEZWF0
aFRlc3QsIENvbXBvdW5kU3RhdGVtZW50KSB7Ci0gIC8vIFZlcmlmaWVzIHRoYXQgYXQgbGVhc2Ug
b25lIG9mIEJhcigwKSwgQmFyKDEpLCAuLi4sIGFuZAotICAvLyBCYXIoNCkgZGllcy4KLSAgQVNT
RVJUX0RFQVRIKHsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7IGkrKykgewotICAgICAgQmFy
KGkpOwotICAgIH0KLSAgfSwKLSAgIkJhciBoYXMgXFxkKyBlcnJvcnMiKTsKLX0KLWBgYAotCi1n
dGVzdC1kZWF0aC10ZXN0X3Rlc3QuY2MgY29udGFpbnMgbW9yZSBleGFtcGxlcyBpZiB5b3UgYXJl
IGludGVyZXN0ZWQuCi0KLSMjIEkgaGF2ZSBhIGZpeHR1cmUgY2xhc3MgYEZvb1Rlc3RgLCBidXQg
YFRFU1RfRihGb29UZXN0LCBCYXIpYCBnaXZlcyBtZSBlcnJvciBgYCJubyBtYXRjaGluZyBmdW5j
dGlvbiBmb3IgY2FsbCB0byBgRm9vVGVzdDo6Rm9vVGVzdCgpJyJgYC4gV2h5PwotCi1Hb29nbGV0
ZXN0IG5lZWRzIHRvIGJlIGFibGUgdG8gY3JlYXRlIG9iamVjdHMgb2YgeW91ciB0ZXN0IGZpeHR1
cmUgY2xhc3MsIHNvIGl0Ci1tdXN0IGhhdmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBOb3JtYWxs
eSB0aGUgY29tcGlsZXIgd2lsbCBkZWZpbmUgb25lIGZvciB5b3UuCi1Ib3dldmVyLCB0aGVyZSBh
cmUgY2FzZXMgd2hlcmUgeW91IGhhdmUgdG8gZGVmaW5lIHlvdXIgb3duOgotCi0qICAgSWYgeW91
IGV4cGxpY2l0bHkgZGVjbGFyZSBhIG5vbi1kZWZhdWx0IGNvbnN0cnVjdG9yIGZvciBjbGFzcyBg
Rm9vVGVzdGAKLSAgICAoYERJU0FMTE9XX0VWSUxfQ09OU1RSVUNUT1JTKClgIGRvZXMgdGhpcyks
IHRoZW4geW91IG5lZWQgdG8gZGVmaW5lIGEKLSAgICBkZWZhdWx0IGNvbnN0cnVjdG9yLCBldmVu
IGlmIGl0IHdvdWxkIGJlIGVtcHR5LgotKiAgIElmIGBGb29UZXN0YCBoYXMgYSBjb25zdCBub24t
c3RhdGljIGRhdGEgbWVtYmVyLCB0aGVuIHlvdSBoYXZlIHRvIGRlZmluZSB0aGUKLSAgICBkZWZh
dWx0IGNvbnN0cnVjdG9yICphbmQqIGluaXRpYWxpemUgdGhlIGNvbnN0IG1lbWJlciBpbiB0aGUg
aW5pdGlhbGl6ZXIKLSAgICBsaXN0IG9mIHRoZSBjb25zdHJ1Y3Rvci4gKEVhcmx5IHZlcnNpb25z
IG9mIGBnY2NgIGRvZXNuJ3QgZm9yY2UgeW91IHRvCi0gICAgaW5pdGlhbGl6ZSB0aGUgY29uc3Qg
bWVtYmVyLiBJdCdzIGEgYnVnIHRoYXQgaGFzIGJlZW4gZml4ZWQgaW4gYGdjYyA0YC4pCi0KLSMj
IFdoeSBkb2VzIEFTU0VSVF9ERUFUSCBjb21wbGFpbiBhYm91dCBwcmV2aW91cyB0aHJlYWRzIHRo
YXQgd2VyZSBhbHJlYWR5IGpvaW5lZD8KLQotV2l0aCB0aGUgTGludXggcHRocmVhZCBsaWJyYXJ5
LCB0aGVyZSBpcyBubyB0dXJuaW5nIGJhY2sgb25jZSB5b3UgY3Jvc3MgdGhlIGxpbmUKLWZyb20g
c2luZ2xlIHRocmVhZCB0byBtdWx0aXBsZSB0aHJlYWRzLiBUaGUgZmlyc3QgdGltZSB5b3UgY3Jl
YXRlIGEgdGhyZWFkLCBhCi1tYW5hZ2VyIHRocmVhZCBpcyBjcmVhdGVkIGluIGFkZGl0aW9uLCBz
byB5b3UgZ2V0IDMsIG5vdCAyLCB0aHJlYWRzLiBMYXRlciB3aGVuCi10aGUgdGhyZWFkIHlvdSBj
cmVhdGUgam9pbnMgdGhlIG1haW4gdGhyZWFkLCB0aGUgdGhyZWFkIGNvdW50IGRlY3JlbWVudHMg
YnkgMSwKLWJ1dCB0aGUgbWFuYWdlciB0aHJlYWQgd2lsbCBuZXZlciBiZSBraWxsZWQsIHNvIHlv
dSBzdGlsbCBoYXZlIDIgdGhyZWFkcywgd2hpY2gKLW1lYW5zIHlvdSBjYW5ub3Qgc2FmZWx5IHJ1
biBhIGRlYXRoIHRlc3QuCi0KLVRoZSBuZXcgTlBUTCB0aHJlYWQgbGlicmFyeSBkb2Vzbid0IHN1
ZmZlciBmcm9tIHRoaXMgcHJvYmxlbSwgYXMgaXQgZG9lc24ndAotY3JlYXRlIGEgbWFuYWdlciB0
aHJlYWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBjb250cm9sIHdoaWNoIG1hY2hpbmUgeW91ciB0
ZXN0Ci1ydW5zIG9uLCB5b3Ugc2hvdWxkbid0IGRlcGVuZCBvbiB0aGlzLgotCi0jIyBXaHkgZG9l
cyBnb29nbGV0ZXN0IHJlcXVpcmUgdGhlIGVudGlyZSB0ZXN0IGNhc2UsIGluc3RlYWQgb2YgaW5k
aXZpZHVhbCB0ZXN0cywgdG8gYmUgbmFtZWQgKkRlYXRoVGVzdCB3aGVuIGl0IHVzZXMgQVNTRVJU
X0RFQVRIPwotCi1nb29nbGV0ZXN0IGRvZXMgbm90IGludGVybGVhdmUgdGVzdHMgZnJvbSBkaWZm
ZXJlbnQgdGVzdCBjYXNlcy4gVGhhdCBpcywgaXQgcnVucwotYWxsIHRlc3RzIGluIG9uZSB0ZXN0
IGNhc2UgZmlyc3QsIGFuZCB0aGVuIHJ1bnMgYWxsIHRlc3RzIGluIHRoZSBuZXh0IHRlc3QgY2Fz
ZSwKLWFuZCBzbyBvbi4gZ29vZ2xldGVzdCBkb2VzIHRoaXMgYmVjYXVzZSBpdCBuZWVkcyB0byBz
ZXQgdXAgYSB0ZXN0IGNhc2UgYmVmb3JlCi10aGUgZmlyc3QgdGVzdCBpbiBpdCBpcyBydW4sIGFu
ZCB0ZWFyIGl0IGRvd24gYWZ0ZXJ3b3Jkcy4gU3BsaXR0aW5nIHVwIHRoZSB0ZXN0Ci1jYXNlIHdv
dWxkIHJlcXVpcmUgbXVsdGlwbGUgc2V0LXVwIGFuZCB0ZWFyLWRvd24gcHJvY2Vzc2VzLCB3aGlj
aCBpcyBpbmVmZmljaWVudAotYW5kIG1ha2VzIHRoZSBzZW1hbnRpY3MgdW5jbGVhbi4KLQotSWYg
d2Ugd2VyZSB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIG9mIHRlc3RzIGJhc2VkIG9uIHRlc3QgbmFt
ZSBpbnN0ZWFkIG9mIHRlc3QKLWNhc2UgbmFtZSwgdGhlbiB3ZSB3b3VsZCBoYXZlIGEgcHJvYmxl
bSB3aXRoIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgotCi1gYGBjKysKLVRFU1RfRihGb29UZXN0
LCBBYmNEZWF0aFRlc3QpIHsgLi4uIH0KLVRFU1RfRihGb29UZXN0LCBVdncpIHsgLi4uIH0KLQot
VEVTVF9GKEJhclRlc3QsIERlZkRlYXRoVGVzdCkgeyAuLi4gfQotVEVTVF9GKEJhclRlc3QsIFh5
eikgeyAuLi4gfQotYGBgCi0KLVNpbmNlIGBGb29UZXN0LkFiY0RlYXRoVGVzdGAgbmVlZHMgdG8g
cnVuIGJlZm9yZSBgQmFyVGVzdC5YeXpgLCBhbmQgd2UgZG9uJ3QKLWludGVybGVhdmUgdGVzdHMg
ZnJvbSBkaWZmZXJlbnQgdGVzdCBjYXNlcywgd2UgbmVlZCB0byBydW4gYWxsIHRlc3RzIGluIHRo
ZQotYEZvb1Rlc3RgIGNhc2UgYmVmb3JlIHJ1bm5pbmcgYW55IHRlc3QgaW4gdGhlIGBCYXJUZXN0
YCBjYXNlLiBUaGlzIGNvbnRyYWRpY3RzCi13aXRoIHRoZSByZXF1aXJlbWVudCB0byBydW4gYEJh
clRlc3QuRGVmRGVhdGhUZXN0YCBiZWZvcmUgYEZvb1Rlc3QuVXZ3YC4KLQotIyMgQnV0IEkgZG9u
J3QgbGlrZSBjYWxsaW5nIG15IGVudGlyZSB0ZXN0IGNhc2UgXCpEZWF0aFRlc3Qgd2hlbiBpdCBj
b250YWlucyBib3RoIGRlYXRoIHRlc3RzIGFuZCBub24tZGVhdGggdGVzdHMuIFdoYXQgZG8gSSBk
bz8KLQotWW91IGRvbid0IGhhdmUgdG8sIGJ1dCBpZiB5b3UgbGlrZSwgeW91IG1heSBzcGxpdCB1
cCB0aGUgdGVzdCBjYXNlIGludG8KLWBGb29UZXN0YCBhbmQgYEZvb0RlYXRoVGVzdGAsIHdoZXJl
IHRoZSBuYW1lcyBtYWtlIGl0IGNsZWFyIHRoYXQgdGhleSBhcmUKLXJlbGF0ZWQ6Ci0KLWBgYGMr
KwotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeyAuLi4gfTsKLQotVEVT
VF9GKEZvb1Rlc3QsIEFiYykgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIERlZikgeyAuLi4gfQot
Ci11c2luZyBGb29EZWF0aFRlc3QgPSBGb29UZXN0OwotCi1URVNUX0YoRm9vRGVhdGhUZXN0LCBV
dncpIHsgLi4uIEVYUEVDVF9ERUFUSCguLi4pIC4uLiB9Ci1URVNUX0YoRm9vRGVhdGhUZXN0LCBY
eXopIHsgLi4uIEFTU0VSVF9ERUFUSCguLi4pIC4uLiB9Ci1gYGAKLQotIyMgZ29vZ2xldGVzdCBw
cmludHMgdGhlIExPRyBtZXNzYWdlcyBpbiBhIGRlYXRoIHRlc3QncyBjaGlsZCBwcm9jZXNzIG9u
bHkgd2hlbiB0aGUgdGVzdCBmYWlscy4gSG93IGNhbiBJIHNlZSB0aGUgTE9HIG1lc3NhZ2VzIHdo
ZW4gdGhlIGRlYXRoIHRlc3Qgc3VjY2VlZHM/Ci0KLVByaW50aW5nIHRoZSBMT0cgbWVzc2FnZXMg
Z2VuZXJhdGVkIGJ5IHRoZSBzdGF0ZW1lbnQgaW5zaWRlIGBFWFBFQ1RfREVBVEgoKWAKLW1ha2Vz
IGl0IGhhcmRlciB0byBzZWFyY2ggZm9yIHJlYWwgcHJvYmxlbXMgaW4gdGhlIHBhcmVudCdzIGxv
Zy4gVGhlcmVmb3JlLAotZ29vZ2xldGVzdCBvbmx5IHByaW50cyB0aGVtIHdoZW4gdGhlIGRlYXRo
IHRlc3QgaGFzIGZhaWxlZC4KLQotSWYgeW91IHJlYWxseSBuZWVkIHRvIHNlZSBzdWNoIExPRyBt
ZXNzYWdlcywgYSB3b3JrYXJvdW5kIGlzIHRvIHRlbXBvcmFyaWx5Ci1icmVhayB0aGUgZGVhdGgg
dGVzdCAoZS5nLiBieSBjaGFuZ2luZyB0aGUgcmVnZXggcGF0dGVybiBpdCBpcyBleHBlY3RlZCB0
bwotbWF0Y2gpLiBBZG1pdHRlZGx5LCB0aGlzIGlzIGEgaGFjay4gV2UnbGwgY29uc2lkZXIgYSBt
b3JlIHBlcm1hbmVudCBzb2x1dGlvbgotYWZ0ZXIgdGhlIGZvcmstYW5kLWV4ZWMtc3R5bGUgZGVh
dGggdGVzdHMgYXJlIGltcGxlbWVudGVkLgotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zIGFi
b3V0ICJubyBtYXRjaCBmb3IgJ29wZXJhdG9yPDwnIiB3aGVuIEkgdXNlIGFuIGFzc2VydGlvbi4g
V2hhdCBnaXZlcz8KLQotSWYgeW91IHVzZSBhIHVzZXItZGVmaW5lZCB0eXBlIGBGb29UeXBlYCBp
biBhbiBhc3NlcnRpb24sIHlvdSBtdXN0IG1ha2Ugc3VyZQotdGhlcmUgaXMgYW4gYHN0ZDo6b3N0
cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mLCBjb25zdCBGb29UeXBlJilgIGZ1bmN0aW9u
Ci1kZWZpbmVkIHN1Y2ggdGhhdCB3ZSBjYW4gcHJpbnQgYSB2YWx1ZSBvZiBgRm9vVHlwZWAuCi0K
LUluIGFkZGl0aW9uLCBpZiBgRm9vVHlwZWAgaXMgZGVjbGFyZWQgaW4gYSBuYW1lIHNwYWNlLCB0
aGUgYDw8YCBvcGVyYXRvciBhbHNvCi1uZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSAqc2FtZSog
bmFtZSBzcGFjZS4gU2VlIGdvL3RvdHcvNDkgZm9yIGRldGFpbHMuCi0KLSMjIEhvdyBkbyBJIHN1
cHByZXNzIHRoZSBtZW1vcnkgbGVhayBtZXNzYWdlcyBvbiBXaW5kb3dzPwotCi1TaW5jZSB0aGUg
c3RhdGljYWxseSBpbml0aWFsaXplZCBnb29nbGV0ZXN0IHNpbmdsZXRvbiByZXF1aXJlcyBhbGxv
Y2F0aW9ucyBvbgotdGhlIGhlYXAsIHRoZSBWaXN1YWwgQysrIG1lbW9yeSBsZWFrIGRldGVjdG9y
IHdpbGwgcmVwb3J0IG1lbW9yeSBsZWFrcyBhdCB0aGUKLWVuZCBvZiB0aGUgcHJvZ3JhbSBydW4u
IFRoZSBlYXNpZXN0IHdheSB0byBhdm9pZCB0aGlzIGlzIHRvIHVzZSB0aGUKLWBfQ3J0TWVtQ2hl
Y2twb2ludGAgYW5kIGBfQ3J0TWVtRHVtcEFsbE9iamVjdHNTaW5jZWAgY2FsbHMgdG8gbm90IHJl
cG9ydCBhbnkKLXN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQgaGVhcCBvYmplY3RzLiBTZWUgTVNETiBm
b3IgbW9yZSBkZXRhaWxzIGFuZCBhZGRpdGlvbmFsCi1oZWFwIGNoZWNrL2RlYnVnIHJvdXRpbmVz
LgotCi0KLSMjIEhvdyBjYW4gbXkgY29kZSBkZXRlY3QgaWYgaXQgaXMgcnVubmluZyBpbiBhIHRl
c3Q/Ci0KLUlmIHlvdSB3cml0ZSBjb2RlIHRoYXQgc25pZmZzIHdoZXRoZXIgaXQncyBydW5uaW5n
IGluIGEgdGVzdCBhbmQgZG9lcyBkaWZmZXJlbnQKLXRoaW5ncyBhY2NvcmRpbmdseSwgeW91IGFy
ZSBsZWFraW5nIHRlc3Qtb25seSBsb2dpYyBpbnRvIHByb2R1Y3Rpb24gY29kZSBhbmQKLXRoZXJl
IGlzIG5vIGVhc3kgd2F5IHRvIGVuc3VyZSB0aGF0IHRoZSB0ZXN0LW9ubHkgY29kZSBwYXRocyBh
cmVuJ3QgcnVuIGJ5Ci1taXN0YWtlIGluIHByb2R1Y3Rpb24uIFN1Y2ggY2xldmVybmVzcyBhbHNv
IGxlYWRzIHRvCi1bSGVpc2VuYnVnc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSGVp
c2VuYnVnKS4gVGhlcmVmb3JlIHdlIHN0cm9uZ2x5Ci1hZHZpc2UgYWdhaW5zdCB0aGUgcHJhY3Rp
Y2UsIGFuZCBnb29nbGV0ZXN0IGRvZXNuJ3QgcHJvdmlkZSBhIHdheSB0byBkbyBpdC4KLQotSW4g
Z2VuZXJhbCwgdGhlIHJlY29tbWVuZGVkIHdheSB0byBjYXVzZSB0aGUgY29kZSB0byBiZWhhdmUg
ZGlmZmVyZW50bHkgdW5kZXIKLXRlc3QgaXMgW0RlcGVuZGVuY3kgSW5qZWN0aW9uXShodHRwczov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9EZXBlbmRlbmN5X2luamVjdGlvbikuIFlvdSBjYW4gaW5q
ZWN0Ci1kaWZmZXJlbnQgZnVuY3Rpb25hbGl0eSBmcm9tIHRoZSB0ZXN0IGFuZCBmcm9tIHRoZSBw
cm9kdWN0aW9uIGNvZGUuIFNpbmNlIHlvdXIKLXByb2R1Y3Rpb24gY29kZSBkb2Vzbid0IGxpbmsg
aW4gdGhlIGZvci10ZXN0IGxvZ2ljIGF0IGFsbCAodGhlCi1bYHRlc3Rvbmx5YF0oaHR0cHM6Ly9k
b2NzLmJhemVsLmJ1aWxkL3ZlcnNpb25zL21hc3Rlci9iZS9jb21tb24tZGVmaW5pdGlvbnMuaHRt
bCNjb21tb24udGVzdG9ubHkpCi1hdHRyaWJ1dGUgZm9yIEJVSUxEIHRhcmdldHMgaGVscHMgdG8g
ZW5zdXJlIHRoYXQpLCB0aGVyZSBpcyBubyBkYW5nZXIgaW4KLWFjY2lkZW50YWxseSBydW5uaW5n
IGl0LgotCi1Ib3dldmVyLCBpZiB5b3UgKnJlYWxseSosICpyZWFsbHkqLCAqcmVhbGx5KiBoYXZl
IG5vIGNob2ljZSwgYW5kIGlmIHlvdSBmb2xsb3cKLXRoZSBydWxlIG9mIGVuZGluZyB5b3VyIHRl
c3QgcHJvZ3JhbSBuYW1lcyB3aXRoIGBfdGVzdGAsIHlvdSBjYW4gdXNlIHRoZQotKmhvcnJpYmxl
KiBoYWNrIG9mIHNuaWZmaW5nIHlvdXIgZXhlY3V0YWJsZSBuYW1lIChgYXJndlswXWAgaW4gYG1h
aW4oKWApIHRvIGtub3cKLXdoZXRoZXIgdGhlIGNvZGUgaXMgdW5kZXIgdGVzdC4KLQotCi0jIyBI
b3cgZG8gSSB0ZW1wb3JhcmlseSBkaXNhYmxlIGEgdGVzdD8KLQotSWYgeW91IGhhdmUgYSBicm9r
ZW4gdGVzdCB0aGF0IHlvdSBjYW5ub3QgZml4IHJpZ2h0IGF3YXksIHlvdSBjYW4gYWRkIHRoZQot
RElTQUJMRURfIHByZWZpeCB0byBpdHMgbmFtZS4gVGhpcyB3aWxsIGV4Y2x1ZGUgaXQgZnJvbSBl
eGVjdXRpb24uIFRoaXMgaXMKLWJldHRlciB0aGFuIGNvbW1lbnRpbmcgb3V0IHRoZSBjb2RlIG9y
IHVzaW5nICNpZiAwLCBhcyBkaXNhYmxlZCB0ZXN0cyBhcmUgc3RpbGwKLWNvbXBpbGVkIChhbmQg
dGh1cyB3b24ndCByb3QpLgotCi1UbyBpbmNsdWRlIGRpc2FibGVkIHRlc3RzIGluIHRlc3QgZXhl
Y3V0aW9uLCBqdXN0IGludm9rZSB0aGUgdGVzdCBwcm9ncmFtIHdpdGgKLXRoZSAtLWd0ZXN0X2Fs
c29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcuCi0KLSMjIElzIGl0IE9LIGlmIEkgaGF2ZSB0d28g
c2VwYXJhdGUgYFRFU1QoRm9vLCBCYXIpYCB0ZXN0IG1ldGhvZHMgZGVmaW5lZCBpbiBkaWZmZXJl
bnQgbmFtZXNwYWNlcz8KLQotWWVzLgotCi1UaGUgcnVsZSBpcyAqKmFsbCB0ZXN0IG1ldGhvZHMg
aW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIGZpeHR1cmUKLWNsYXNzLioq
IFRoaXMgbWVhbnMgdGhhdCB0aGUgZm9sbG93aW5nIGlzICoqYWxsb3dlZCoqIGJlY2F1c2UgYm90
aCB0ZXN0cyB1c2UgdGhlCi1zYW1lIGZpeHR1cmUgY2xhc3MgKGA6OnRlc3Rpbmc6OlRlc3RgKS4K
LQotYGBgYysrCi1uYW1lc3BhY2UgZm9vIHsKLVRFU1QoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7
Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJhciB7
Ci1URVNUKENvb2xUZXN0LCBEb1NvbWV0aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19ICAvLyBu
YW1lc3BhY2UgYmFyCi1gYGAKLQotSG93ZXZlciwgdGhlIGZvbGxvd2luZyBjb2RlIGlzICoqbm90
IGFsbG93ZWQqKiBhbmQgd2lsbCBwcm9kdWNlIGEgcnVudGltZSBlcnJvcgotZnJvbSBnb29nbGV0
ZXN0IGJlY2F1c2UgdGhlIHRlc3QgbWV0aG9kcyBhcmUgdXNpbmcgZGlmZmVyZW50IHRlc3QgZml4
dHVyZQotY2xhc3NlcyB3aXRoIHRoZSBzYW1lIHRlc3QgY2FzZSBuYW1lLgotCi1gYGBjKysKLW5h
bWVzcGFjZSBmb28gewotY2xhc3MgQ29vbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9
OyAgLy8gRml4dHVyZSBmb286OkNvb2xUZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29tZXRoaW5n
KSB7Ci0gIFNVQ0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLQotbmFtZXNwYWNlIGJh
ciB7Ci1jbGFzcyBDb29sVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307ICAvLyBGaXh0
dXJlOiBiYXI6OkNvb2xUZXN0Ci1URVNUX0YoQ29vbFRlc3QsIERvU29tZXRoaW5nKSB7Ci0gIFNV
Q0NFRUQoKTsKLX0KLX0gIC8vIG5hbWVzcGFjZSBiYXIKLWBgYApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9wcmltZXIubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9kb2NzL3ByaW1lci5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZWE4ZDcx
N2I4MzViY2JkMjNmODRjOWVhMDVmMTZhODc4YTVkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL3ByaW1l
ci5tZAorKysgL2Rldi9udWxsCkBAIC0xLDU2OSArMCwwIEBACi0jIEdvb2dsZXRlc3QgUHJpbWVy
Ci0KLQotIyMgSW50cm9kdWN0aW9uOiBXaHkgZ29vZ2xldGVzdD8KLQotKmdvb2dsZXRlc3QqIGhl
bHBzIHlvdSB3cml0ZSBiZXR0ZXIgQysrIHRlc3RzLgotCi1nb29nbGV0ZXN0IGlzIGEgdGVzdGlu
ZyBmcmFtZXdvcmsgZGV2ZWxvcGVkIGJ5IHRoZSBUZXN0aW5nCi1UZWNobm9sb2d5IHRlYW0gd2l0
aCBHb29nbGUncyBzcGVjaWZpYwotcmVxdWlyZW1lbnRzIGFuZCBjb25zdHJhaW50cyBpbiBtaW5k
LiBObyBtYXR0ZXIgd2hldGhlciB5b3Ugd29yayBvbiBMaW51eCwKLVdpbmRvd3MsIG9yIGEgTWFj
LCBpZiB5b3Ugd3JpdGUgQysrIGNvZGUsIGdvb2dsZXRlc3QgY2FuIGhlbHAgeW91LiBBbmQgaXQK
LXN1cHBvcnRzICphbnkqIGtpbmQgb2YgdGVzdHMsIG5vdCBqdXN0IHVuaXQgdGVzdHMuCi0KLVNv
IHdoYXQgbWFrZXMgYSBnb29kIHRlc3QsIGFuZCBob3cgZG9lcyBnb29nbGV0ZXN0IGZpdCBpbj8g
V2UgYmVsaWV2ZToKLQotMS4gIFRlc3RzIHNob3VsZCBiZSAqaW5kZXBlbmRlbnQqIGFuZCAqcmVw
ZWF0YWJsZSouIEl0J3MgYSBwYWluIHRvIGRlYnVnIGEgdGVzdAotICAgIHRoYXQgc3VjY2VlZHMg
b3IgZmFpbHMgYXMgYSByZXN1bHQgb2Ygb3RoZXIgdGVzdHMuIGdvb2dsZXRlc3QgaXNvbGF0ZXMg
dGhlCi0gICAgdGVzdHMgYnkgcnVubmluZyBlYWNoIG9mIHRoZW0gb24gYSBkaWZmZXJlbnQgb2Jq
ZWN0LiBXaGVuIGEgdGVzdCBmYWlscywKLSAgICBnb29nbGV0ZXN0IGFsbG93cyB5b3UgdG8gcnVu
IGl0IGluIGlzb2xhdGlvbiBmb3IgcXVpY2sgZGVidWdnaW5nLgotMS4gIFRlc3RzIHNob3VsZCBi
ZSB3ZWxsICpvcmdhbml6ZWQqIGFuZCByZWZsZWN0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHRlc3Rl
ZAotICAgIGNvZGUuIGdvb2dsZXRlc3QgZ3JvdXBzIHJlbGF0ZWQgdGVzdHMgaW50byB0ZXN0IGNh
c2VzIHRoYXQgY2FuIHNoYXJlIGRhdGEKLSAgICBhbmQgc3Vicm91dGluZXMuIFRoaXMgY29tbW9u
IHBhdHRlcm4gaXMgZWFzeSB0byByZWNvZ25pemUgYW5kIG1ha2VzIHRlc3RzCi0gICAgZWFzeSB0
byBtYWludGFpbi4gU3VjaCBjb25zaXN0ZW5jeSBpcyBlc3BlY2lhbGx5IGhlbHBmdWwgd2hlbiBw
ZW9wbGUgc3dpdGNoCi0gICAgcHJvamVjdHMgYW5kIHN0YXJ0IHRvIHdvcmsgb24gYSBuZXcgY29k
ZSBiYXNlLgotMS4gIFRlc3RzIHNob3VsZCBiZSAqcG9ydGFibGUqIGFuZCAqcmV1c2FibGUqLiBH
b29nbGUgaGFzIGEgbG90IG9mIGNvZGUgdGhhdCBpcwotICAgIHBsYXRmb3JtLW5ldXRyYWwsIGl0
cyB0ZXN0cyBzaG91bGQgYWxzbyBiZSBwbGF0Zm9ybS1uZXV0cmFsLiBnb29nbGV0ZXN0Ci0gICAg
d29ya3Mgb24gZGlmZmVyZW50IE9TZXMsIHdpdGggZGlmZmVyZW50IGNvbXBpbGVycyAoZ2NjLCBp
Y2MsIGFuZCBNU1ZDKSwgd2l0aAotICAgIG9yIHdpdGhvdXQgZXhjZXB0aW9ucywgc28gZ29vZ2xl
dGVzdCB0ZXN0cyBjYW4gZWFzaWx5IHdvcmsgd2l0aCBhIHZhcmlldHkgb2YKLSAgICBjb25maWd1
cmF0aW9ucy4KLTEuICBXaGVuIHRlc3RzIGZhaWwsIHRoZXkgc2hvdWxkIHByb3ZpZGUgYXMgbXVj
aCAqaW5mb3JtYXRpb24qIGFib3V0IHRoZSBwcm9ibGVtCi0gICAgYXMgcG9zc2libGUuIGdvb2ds
ZXRlc3QgZG9lc24ndCBzdG9wIGF0IHRoZSBmaXJzdCB0ZXN0IGZhaWx1cmUuIEluc3RlYWQsIGl0
Ci0gICAgb25seSBzdG9wcyB0aGUgY3VycmVudCB0ZXN0IGFuZCBjb250aW51ZXMgd2l0aCB0aGUg
bmV4dC4gWW91IGNhbiBhbHNvIHNldCB1cAotICAgIHRlc3RzIHRoYXQgcmVwb3J0IG5vbi1mYXRh
bCBmYWlsdXJlcyBhZnRlciB3aGljaCB0aGUgY3VycmVudCB0ZXN0IGNvbnRpbnVlcy4KLSAgICBU
aHVzLCB5b3UgY2FuIGRldGVjdCBhbmQgZml4IG11bHRpcGxlIGJ1Z3MgaW4gYSBzaW5nbGUgcnVu
LWVkaXQtY29tcGlsZQotICAgIGN5Y2xlLgotMS4gIFRoZSB0ZXN0aW5nIGZyYW1ld29yayBzaG91
bGQgbGliZXJhdGUgdGVzdCB3cml0ZXJzIGZyb20gaG91c2VrZWVwaW5nIGNob3JlcwotICAgIGFu
ZCBsZXQgdGhlbSBmb2N1cyBvbiB0aGUgdGVzdCAqY29udGVudCouIGdvb2dsZXRlc3QgYXV0b21h
dGljYWxseSBrZWVwcwotICAgIHRyYWNrIG9mIGFsbCB0ZXN0cyBkZWZpbmVkLCBhbmQgZG9lc24n
dCByZXF1aXJlIHRoZSB1c2VyIHRvIGVudW1lcmF0ZSB0aGVtCi0gICAgaW4gb3JkZXIgdG8gcnVu
IHRoZW0uCi0xLiAgVGVzdHMgc2hvdWxkIGJlICpmYXN0Ki4gV2l0aCBnb29nbGV0ZXN0LCB5b3Ug
Y2FuIHJldXNlIHNoYXJlZCByZXNvdXJjZXMKLSAgICBhY3Jvc3MgdGVzdHMgYW5kIHBheSBmb3Ig
dGhlIHNldC11cC90ZWFyLWRvd24gb25seSBvbmNlLCB3aXRob3V0IG1ha2luZwotICAgIHRlc3Rz
IGRlcGVuZCBvbiBlYWNoIG90aGVyLgotCi1TaW5jZSBnb29nbGV0ZXN0IGlzIGJhc2VkIG9uIHRo
ZSBwb3B1bGFyIHhVbml0IGFyY2hpdGVjdHVyZSwgeW91J2xsIGZlZWwgcmlnaHQKLWF0IGhvbWUg
aWYgeW91J3ZlIHVzZWQgSlVuaXQgb3IgUHlVbml0IGJlZm9yZS4gSWYgbm90LCBpdCB3aWxsIHRh
a2UgeW91IGFib3V0IDEwCi1taW51dGVzIHRvIGxlYXJuIHRoZSBiYXNpY3MgYW5kIGdldCBzdGFy
dGVkLiBTbyBsZXQncyBnbyEKLQotIyMgQmV3YXJlIG9mIHRoZSBub21lbmNsYXR1cmUKLQotX05v
dGU6XyBUaGVyZSBtaWdodCBiZSBzb21lIGNvbmZ1c2lvbiBvZiBpZGVhIGR1ZSB0byBkaWZmZXJl
bnQKLWRlZmluaXRpb25zIG9mIHRoZSB0ZXJtcyBfVGVzdF8sIF9UZXN0IENhc2VfIGFuZCBfVGVz
dCBTdWl0ZV8sIHNvIGJld2FyZQotb2YgbWlzdW5kZXJzdGFuZGluZyB0aGVzZS4KLQotSGlzdG9y
aWNhbGx5LCBnb29nbGV0ZXN0IHN0YXJ0ZWQgdG8gdXNlIHRoZSB0ZXJtIF9UZXN0IENhc2VfIGZv
ciBncm91cGluZwotcmVsYXRlZCB0ZXN0cywgd2hlcmVhcyBjdXJyZW50IHB1YmxpY2F0aW9ucyBp
bmNsdWRpbmcgdGhlIEludGVybmF0aW9uYWwgU29mdHdhcmUKLVRlc3RpbmcgUXVhbGlmaWNhdGlv
bnMgQm9hcmQgKFtJU1RRQl0oaHR0cDovL3d3dy5pc3RxYi5vcmcvKSkgYW5kIHZhcmlvdXMKLXRl
eHRib29rcyBvbiBTb2Z0d2FyZSBRdWFsaXR5IHVzZSB0aGUgdGVybSBfW1Rlc3QKLVN1aXRlXSho
dHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwc3VpdGUpXyBmb3IgdGhpcy4K
LQotVGhlIHJlbGF0ZWQgdGVybSBfVGVzdF8sIGFzIGl0IGlzIHVzZWQgaW4gdGhlIGdvb2dsZXRl
c3QsIGlzIGNvcnJlc3BvbmRpbmcgdG8KLXRoZSB0ZXJtIF9bVGVzdCBDYXNlXShodHRwOi8vZ2xv
c3NhcnkuaXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwY2FzZSlfIG9mIElTVFFCCi1hbmQgb3RoZXJz
LgotCi1UaGUgdGVybSBfVGVzdF8gaXMgY29tbW9ubHkgb2YgYnJvYWQgZW5vdWdoIHNlbnNlLCBp
bmNsdWRpbmcgSVNUUUIncwotZGVmaW5pdGlvbiBvZiBfVGVzdCBDYXNlXywgc28gaXQncyBub3Qg
bXVjaCBvZiBhIHByb2JsZW0gaGVyZS4gQnV0IHRoZQotdGVybSBfVGVzdCBDYXNlXyBhcyB1c2Vk
IGluIEdvb2dsZSBUZXN0IGlzIG9mIGNvbnRyYWRpY3Rvcnkgc2Vuc2UgYW5kIHRodXMgY29uZnVz
aW5nLgotCi1VbmZvcnR1bmF0ZWx5IHJlcGxhY2luZyB0aGUgdGVybSBfVGVzdCBDYXNlXyBieSBf
VGVzdCBTdWl0ZV8gdGhyb3VnaG91dCB0aGUKLWdvb2dsZXRlc3QgaXMgbm90IGVhc3kgd2l0aG91
dCBicmVha2luZyBkZXBlbmRlbnQgcHJvamVjdHMsIGFzIGBUZXN0Q2FzZWAgaXMKLXBhcnQgb2Yg
dGhlIHB1YmxpYyBBUEkgYXQgdmFyaW91cyBwbGFjZXMuCi0KLVNvIGZvciB0aGUgdGltZSBiZWlu
ZywgcGxlYXNlIGJlIGF3YXJlIG9mIHRoZSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2YKLXRoZSB0
ZXJtczoKLQotTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ29vZ2xldGVzdCBUZXJtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtJU1RRQl0oaHR0cDovL3d3dy5pc3Rx
Yi5vcmcvKSBUZXJtCi06LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUV4ZXJjaXNlIGEgcGFydGljdWxhciBwcm9ncmFtIHBhdGggd2l0
aCBzcGVjaWZpYyBpbnB1dCB2YWx1ZXMgYW5kIHZlcmlmeSB0aGUgcmVzdWx0cyB8IFtURVNUKCld
KCNzaW1wbGUtdGVzdHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbVGVzdCBDYXNlXSho
dHRwOi8vZ2xvc3NhcnkuaXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwY2FzZSkKLUEgc2V0IG9mIHNl
dmVyYWwgdGVzdHMgcmVsYXRlZCB0byBvbmUgY29tcG9uZW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IFtUZXN0Q2FzZV0oI2Jhc2ljLWNvbmNlcHRzKSB8IFtUZXN0U3Vp
dGVdKGh0dHA6Ly9nbG9zc2FyeS5pc3RxYi5vcmcvc2VhcmNoL3Rlc3QlMjBzdWl0ZSkKLQotIyMg
QmFzaWMgQ29uY2VwdHMKLQotV2hlbiB1c2luZyBnb29nbGV0ZXN0LCB5b3Ugc3RhcnQgYnkgd3Jp
dGluZyAqYXNzZXJ0aW9ucyosIHdoaWNoIGFyZSBzdGF0ZW1lbnRzCi10aGF0IGNoZWNrIHdoZXRo
ZXIgYSBjb25kaXRpb24gaXMgdHJ1ZS4gQW4gYXNzZXJ0aW9uJ3MgcmVzdWx0IGNhbiBiZSAqc3Vj
Y2VzcyosCi0qbm9uZmF0YWwgZmFpbHVyZSosIG9yICpmYXRhbCBmYWlsdXJlKi4gSWYgYSBmYXRh
bCBmYWlsdXJlIG9jY3VycywgaXQgYWJvcnRzIHRoZQotY3VycmVudCBmdW5jdGlvbjsgb3RoZXJ3
aXNlIHRoZSBwcm9ncmFtIGNvbnRpbnVlcyBub3JtYWxseS4KLQotKlRlc3RzKiB1c2UgYXNzZXJ0
aW9ucyB0byB2ZXJpZnkgdGhlIHRlc3RlZCBjb2RlJ3MgYmVoYXZpb3IuIElmIGEgdGVzdCBjcmFz
aGVzCi1vciBoYXMgYSBmYWlsZWQgYXNzZXJ0aW9uLCB0aGVuIGl0ICpmYWlscyo7IG90aGVyd2lz
ZSBpdCAqc3VjY2VlZHMqLgotCi1BICp0ZXN0IGNhc2UqIGNvbnRhaW5zIG9uZSBvciBtYW55IHRl
c3RzLiBZb3Ugc2hvdWxkIGdyb3VwIHlvdXIgdGVzdHMgaW50byB0ZXN0Ci1jYXNlcyB0aGF0IHJl
ZmxlY3QgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdGVzdGVkIGNvZGUuIFdoZW4gbXVsdGlwbGUgdGVz
dHMgaW4gYQotdGVzdCBjYXNlIG5lZWQgdG8gc2hhcmUgY29tbW9uIG9iamVjdHMgYW5kIHN1YnJv
dXRpbmVzLCB5b3UgY2FuIHB1dCB0aGVtIGludG8gYQotKnRlc3QgZml4dHVyZSogY2xhc3MuCi0K
LUEgKnRlc3QgcHJvZ3JhbSogY2FuIGNvbnRhaW4gbXVsdGlwbGUgdGVzdCBjYXNlcy4KLQotV2Un
bGwgbm93IGV4cGxhaW4gaG93IHRvIHdyaXRlIGEgdGVzdCBwcm9ncmFtLCBzdGFydGluZyBhdCB0
aGUgaW5kaXZpZHVhbAotYXNzZXJ0aW9uIGxldmVsIGFuZCBidWlsZGluZyB1cCB0byB0ZXN0cyBh
bmQgdGVzdCBjYXNlcy4KLQotIyMgQXNzZXJ0aW9ucwotCi1nb29nbGV0ZXN0IGFzc2VydGlvbnMg
YXJlIG1hY3JvcyB0aGF0IHJlc2VtYmxlIGZ1bmN0aW9uIGNhbGxzLiBZb3UgdGVzdCBhIGNsYXNz
Ci1vciBmdW5jdGlvbiBieSBtYWtpbmcgYXNzZXJ0aW9ucyBhYm91dCBpdHMgYmVoYXZpb3IuIFdo
ZW4gYW4gYXNzZXJ0aW9uIGZhaWxzLAotZ29vZ2xldGVzdCBwcmludHMgdGhlIGFzc2VydGlvbidz
IHNvdXJjZSBmaWxlIGFuZCBsaW5lIG51bWJlciBsb2NhdGlvbiwgYWxvbmcKLXdpdGggYSBmYWls
dXJlIG1lc3NhZ2UuIFlvdSBtYXkgYWxzbyBzdXBwbHkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdl
IHdoaWNoIHdpbGwKLWJlIGFwcGVuZGVkIHRvIGdvb2dsZXRlc3QncyBtZXNzYWdlLgotCi1UaGUg
YXNzZXJ0aW9ucyBjb21lIGluIHBhaXJzIHRoYXQgdGVzdCB0aGUgc2FtZSB0aGluZyBidXQgaGF2
ZSBkaWZmZXJlbnQgZWZmZWN0cwotb24gdGhlIGN1cnJlbnQgZnVuY3Rpb24uIGBBU1NFUlRfKmAg
dmVyc2lvbnMgZ2VuZXJhdGUgZmF0YWwgZmFpbHVyZXMgd2hlbiB0aGV5Ci1mYWlsLCBhbmQgKiph
Ym9ydCB0aGUgY3VycmVudCBmdW5jdGlvbioqLiBgRVhQRUNUXypgIHZlcnNpb25zIGdlbmVyYXRl
IG5vbmZhdGFsCi1mYWlsdXJlcywgd2hpY2ggZG9uJ3QgYWJvcnQgdGhlIGN1cnJlbnQgZnVuY3Rp
b24uIFVzdWFsbHkgYEVYUEVDVF8qYCBhcmUKLXByZWZlcnJlZCwgYXMgdGhleSBhbGxvdyBtb3Jl
IHRoYW4gb25lIGZhaWx1cmUgdG8gYmUgcmVwb3J0ZWQgaW4gYSB0ZXN0LgotSG93ZXZlciwgeW91
IHNob3VsZCB1c2UgYEFTU0VSVF8qYCBpZiBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gY29udGlu
dWUgd2hlbiB0aGUKLWFzc2VydGlvbiBpbiBxdWVzdGlvbiBmYWlscy4KLQotU2luY2UgYSBmYWls
ZWQgYEFTU0VSVF8qYCByZXR1cm5zIGZyb20gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaW1tZWRpYXRl
bHksCi1wb3NzaWJseSBza2lwcGluZyBjbGVhbi11cCBjb2RlIHRoYXQgY29tZXMgYWZ0ZXIgaXQs
IGl0IG1heSBjYXVzZSBhIHNwYWNlIGxlYWsuCi1EZXBlbmRpbmcgb24gdGhlIG5hdHVyZSBvZiB0
aGUgbGVhaywgaXQgbWF5IG9yIG1heSBub3QgYmUgd29ydGggZml4aW5nIC0gc28ga2VlcAotdGhp
cyBpbiBtaW5kIGlmIHlvdSBnZXQgYSBoZWFwIGNoZWNrZXIgZXJyb3IgaW4gYWRkaXRpb24gdG8g
YXNzZXJ0aW9uIGVycm9ycy4KLQotVG8gcHJvdmlkZSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2Us
IHNpbXBseSBzdHJlYW0gaXQgaW50byB0aGUgbWFjcm8gdXNpbmcgdGhlCi1gPDxgIG9wZXJhdG9y
LCBvciBhIHNlcXVlbmNlIG9mIHN1Y2ggb3BlcmF0b3JzLiBBbiBleGFtcGxlOgotCi1gYGBjKysK
LUFTU0VSVF9FUSh4LnNpemUoKSwgeS5zaXplKCkpIDw8ICJWZWN0b3JzIHggYW5kIHkgYXJlIG9m
IHVuZXF1YWwgbGVuZ3RoIjsKLQotZm9yIChpbnQgaSA9IDA7IGkgPCB4LnNpemUoKTsgKytpKSB7
Ci0gIEVYUEVDVF9FUSh4W2ldLCB5W2ldKSA8PCAiVmVjdG9ycyB4IGFuZCB5IGRpZmZlciBhdCBp
bmRleCAiIDw8IGk7Ci19Ci1gYGAKLQotQW55dGhpbmcgdGhhdCBjYW4gYmUgc3RyZWFtZWQgdG8g
YW4gYG9zdHJlYW1gIGNhbiBiZSBzdHJlYW1lZCB0byBhbiBhc3NlcnRpb24KLW1hY3JvLS1pbiBw
YXJ0aWN1bGFyLCBDIHN0cmluZ3MgYW5kIGBzdHJpbmdgIG9iamVjdHMuIElmIGEgd2lkZSBzdHJp
bmcKLShgd2NoYXJfdCpgLCBgVENIQVIqYCBpbiBgVU5JQ09ERWAgbW9kZSBvbiBXaW5kb3dzLCBv
ciBgc3RkOjp3c3RyaW5nYCkgaXMKLXN0cmVhbWVkIHRvIGFuIGFzc2VydGlvbiwgaXQgd2lsbCBi
ZSB0cmFuc2xhdGVkIHRvIFVURi04IHdoZW4gcHJpbnRlZC4KLQotIyMjIEJhc2ljIEFzc2VydGlv
bnMKLQotVGhlc2UgYXNzZXJ0aW9ucyBkbyBiYXNpYyB0cnVlL2ZhbHNlIGNvbmRpdGlvbiB0ZXN0
aW5nLgotCi1GYXRhbCBhc3NlcnRpb24gICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAg
ICAgICAgIHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLQotYEFTU0VSVF9UUlVFKGNv
bmRpdGlvbik7YCAgfCBgRVhQRUNUX1RSVUUoY29uZGl0aW9uKTtgICB8IGBjb25kaXRpb25gIGlz
IHRydWUKLWBBU1NFUlRfRkFMU0UoY29uZGl0aW9uKTtgIHwgYEVYUEVDVF9GQUxTRShjb25kaXRp
b24pO2AgfCBgY29uZGl0aW9uYCBpcyBmYWxzZQotCi1SZW1lbWJlciwgd2hlbiB0aGV5IGZhaWws
IGBBU1NFUlRfKmAgeWllbGRzIGEgZmF0YWwgZmFpbHVyZSBhbmQgcmV0dXJucyBmcm9tIHRoZQot
Y3VycmVudCBmdW5jdGlvbiwgd2hpbGUgYEVYUEVDVF8qYCB5aWVsZHMgYSBub25mYXRhbCBmYWls
dXJlLCBhbGxvd2luZyB0aGUKLWZ1bmN0aW9uIHRvIGNvbnRpbnVlIHJ1bm5pbmcuIEluIGVpdGhl
ciBjYXNlLCBhbiBhc3NlcnRpb24gZmFpbHVyZSBtZWFucyBpdHMKLWNvbnRhaW5pbmcgdGVzdCBm
YWlscy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIEJp
bmFyeSBDb21wYXJpc29uCi0KLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgYXNzZXJ0aW9ucyB0aGF0
IGNvbXBhcmUgdHdvIHZhbHVlcy4KLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgIHwgTm9uZmF0
YWwgYXNzZXJ0aW9uICAgICAgIHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tCi1gQVNTRVJUX0VRKHZh
bDEsIHZhbDIpO2AgfCBgRVhQRUNUX0VRKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA9PSB2YWwyYAot
YEFTU0VSVF9ORSh2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9ORSh2YWwxLCB2YWwyKTtgIHwgYHZh
bDEgIT0gdmFsMmAKLWBBU1NFUlRfTFQodmFsMSwgdmFsMik7YCB8IGBFWFBFQ1RfTFQodmFsMSwg
dmFsMik7YCB8IGB2YWwxIDwgdmFsMmAKLWBBU1NFUlRfTEUodmFsMSwgdmFsMik7YCB8IGBFWFBF
Q1RfTEUodmFsMSwgdmFsMik7YCB8IGB2YWwxIDw9IHZhbDJgCi1gQVNTRVJUX0dUKHZhbDEsIHZh
bDIpO2AgfCBgRVhQRUNUX0dUKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA+IHZhbDJgCi1gQVNTRVJU
X0dFKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0dFKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA+PSB2
YWwyYAotCi1WYWx1ZSBhcmd1bWVudHMgbXVzdCBiZSBjb21wYXJhYmxlIGJ5IHRoZSBhc3NlcnRp
b24ncyBjb21wYXJpc29uIG9wZXJhdG9yIG9yCi15b3UnbGwgZ2V0IGEgY29tcGlsZXIgZXJyb3Iu
IFdlIHVzZWQgdG8gcmVxdWlyZSB0aGUgYXJndW1lbnRzIHRvIHN1cHBvcnQgdGhlCi1gPDxgIG9w
ZXJhdG9yIGZvciBzdHJlYW1pbmcgdG8gYW4gYG9zdHJlYW1gLCBidXQgaXQncyBubyBsb25nZXIg
bmVjZXNzYXJ5LiBJZgotYDw8YCBpcyBzdXBwb3J0ZWQsIGl0IHdpbGwgYmUgY2FsbGVkIHRvIHBy
aW50IHRoZSBhcmd1bWVudHMgd2hlbiB0aGUgYXNzZXJ0aW9uCi1mYWlsczsgb3RoZXJ3aXNlIGdv
b2dsZXRlc3Qgd2lsbCBhdHRlbXB0IHRvIHByaW50IHRoZW0gaW4gdGhlIGJlc3Qgd2F5IGl0IGNh
bi4KLUZvciBtb3JlIGRldGFpbHMgYW5kIGhvdyB0byBjdXN0b21pemUgdGhlIHByaW50aW5nIG9m
IHRoZSBhcmd1bWVudHMsIHNlZQotZ01vY2sgW3JlY2lwZV0oLi4vLi4vZ29vZ2xlbW9jay9kb2Nz
L0Nvb2tCb29rLm1kI3RlYWNoaW5nLWdvb2dsZS1tb2NrLWhvdy10by1wcmludC15b3VyLXZhbHVl
cykuKS4KLQotVGhlc2UgYXNzZXJ0aW9ucyBjYW4gd29yayB3aXRoIGEgdXNlci1kZWZpbmVkIHR5
cGUsIGJ1dCBvbmx5IGlmIHlvdSBkZWZpbmUgdGhlCi1jb3JyZXNwb25kaW5nIGNvbXBhcmlzb24g
b3BlcmF0b3IgKGUuZy4gYD09YCwgYDxgLCBldGMpLiBTaW5jZSB0aGlzIGlzCi1kaXNjb3VyYWdl
ZCBieSB0aGUgR29vZ2xlIFtDKysgU3R5bGUKLUd1aWRlXShodHRwczovL2dvb2dsZS5naXRodWIu
aW8vc3R5bGVndWlkZS9jcHBndWlkZS5odG1sI09wZXJhdG9yX092ZXJsb2FkaW5nKSwKLXlvdSBt
YXkgbmVlZCB0byB1c2UgYEFTU0VSVF9UUlVFKClgIG9yIGBFWFBFQ1RfVFJVRSgpYCB0byBhc3Nl
cnQgdGhlIGVxdWFsaXR5IG9mCi10d28gb2JqZWN0cyBvZiBhIHVzZXItZGVmaW5lZCB0eXBlLgot
Ci1Ib3dldmVyLCB3aGVuIHBvc3NpYmxlLCBgQVNTRVJUX0VRKGFjdHVhbCwgZXhwZWN0ZWQpYCBp
cyBwcmVmZXJyZWQgdG8KLWBBU1NFUlRfVFJVRShhY3R1YWwgPT0gZXhwZWN0ZWQpYCwgc2luY2Ug
aXQgdGVsbHMgeW91IGBhY3R1YWxgIGFuZCBgZXhwZWN0ZWRgJ3MKLXZhbHVlcyBvbiBmYWlsdXJl
LgotCi1Bcmd1bWVudHMgYXJlIGFsd2F5cyBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLiBUaGVyZWZv
cmUsIGl0J3MgT0sgZm9yIHRoZQotYXJndW1lbnRzIHRvIGhhdmUgc2lkZSBlZmZlY3RzLiBIb3dl
dmVyLCBhcyB3aXRoIGFueSBvcmRpbmFyeSBDL0MrKyBmdW5jdGlvbiwKLXRoZSBhcmd1bWVudHMn
IGV2YWx1YXRpb24gb3JkZXIgaXMgdW5kZWZpbmVkIChpLmUuIHRoZSBjb21waWxlciBpcyBmcmVl
IHRvCi1jaG9vc2UgYW55IG9yZGVyKSBhbmQgeW91ciBjb2RlIHNob3VsZCBub3QgZGVwZW5kIG9u
IGFueSBwYXJ0aWN1bGFyIGFyZ3VtZW50Ci1ldmFsdWF0aW9uIG9yZGVyLgotCi1gQVNTRVJUX0VR
KClgIGRvZXMgcG9pbnRlciBlcXVhbGl0eSBvbiBwb2ludGVycy4gSWYgdXNlZCBvbiB0d28gQyBz
dHJpbmdzLCBpdAotdGVzdHMgaWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9u
LCBub3QgaWYgdGhleSBoYXZlIHRoZSBzYW1lIHZhbHVlLgotVGhlcmVmb3JlLCBpZiB5b3Ugd2Fu
dCB0byBjb21wYXJlIEMgc3RyaW5ncyAoZS5nLiBgY29uc3QgY2hhcipgKSBieSB2YWx1ZSwgdXNl
Ci1gQVNTRVJUX1NUUkVRKClgLCB3aGljaCB3aWxsIGJlIGRlc2NyaWJlZCBsYXRlciBvbi4gSW4g
cGFydGljdWxhciwgdG8gYXNzZXJ0Ci10aGF0IGEgQyBzdHJpbmcgaXMgYE5VTExgLCB1c2UgYEFT
U0VSVF9TVFJFUShjX3N0cmluZywgTlVMTClgLiBDb25zaWRlciB1c2UKLWBBU1NFUlRfRVEoY19z
dHJpbmcsIG51bGxwdHIpYCBpZiBjKysxMSBpcyBzdXBwb3J0ZWQuIFRvIGNvbXBhcmUgdHdvIGBz
dHJpbmdgCi1vYmplY3RzLCB5b3Ugc2hvdWxkIHVzZSBgQVNTRVJUX0VRYC4KLQotV2hlbiBkb2lu
ZyBwb2ludGVyIGNvbXBhcmlzb25zIHVzZSBgKl9FUShwdHIsIG51bGxwdHIpYCBhbmQgYCpfTkUo
cHRyLCBudWxscHRyKWAKLWluc3RlYWQgb2YgYCpfRVEocHRyLCBOVUxMKWAgYW5kIGAqX05FKHB0
ciwgTlVMTClgLiBUaGlzIGlzIGJlY2F1c2UgYG51bGxwdHJgIGlzCi10eXBlZCB3aGlsZSBgTlVM
TGAgaXMgbm90LiBTZWUgW0ZBUV0oZmFxLm1kI3doeS1kb2VzLWdvb2dsZS10ZXN0LXN1cHBvcnQt
ZXhwZWN0X2VxbnVsbC1wdHItYW5kLWFzc2VydF9lcW51bGwtcHRyLWJ1dC1ub3QtZXhwZWN0X25l
bnVsbC1wdHItYW5kLWFzc2VydF9uZW51bGwtcHRyKQotZm9yIG1vcmUgZGV0YWlscy4KLQotSWYg
eW91J3JlIHdvcmtpbmcgd2l0aCBmbG9hdGluZyBwb2ludCBudW1iZXJzLCB5b3UgbWF5IHdhbnQg
dG8gdXNlIHRoZSBmbG9hdGluZwotcG9pbnQgdmFyaWF0aW9ucyBvZiBzb21lIG9mIHRoZXNlIG1h
Y3JvcyBpbiBvcmRlciB0byBhdm9pZCBwcm9ibGVtcyBjYXVzZWQgYnkKLXJvdW5kaW5nLiBTZWUg
W0FkdmFuY2VkIGdvb2dsZXRlc3QgVG9waWNzXShhZHZhbmNlZC5tZCkgZm9yIGRldGFpbHMuCi0K
LU1hY3JvcyBpbiB0aGlzIHNlY3Rpb24gd29yayB3aXRoIGJvdGggbmFycm93IGFuZCB3aWRlIHN0
cmluZyBvYmplY3RzIChgc3RyaW5nYAotYW5kIGB3c3RyaW5nYCkuCi0KLSoqQXZhaWxhYmlsaXR5
Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSoqSGlzdG9yaWNhbCBub3RlKio6IEJlZm9yZSBG
ZWJydWFyeSAyMDE2IGAqX0VRYCBoYWQgYSBjb252ZW50aW9uIG9mIGNhbGxpbmcgaXQKLWFzIGBB
U1NFUlRfRVEoZXhwZWN0ZWQsIGFjdHVhbClgLCBzbyBsb3RzIG9mIGV4aXN0aW5nIGNvZGUgdXNl
cyB0aGlzIG9yZGVyLiBOb3cKLWAqX0VRYCB0cmVhdHMgYm90aCBwYXJhbWV0ZXJzIGluIHRoZSBz
YW1lIHdheS4KLQotIyMjIFN0cmluZyBDb21wYXJpc29uCi0KLVRoZSBhc3NlcnRpb25zIGluIHRo
aXMgZ3JvdXAgY29tcGFyZSB0d28gKipDIHN0cmluZ3MqKi4gSWYgeW91IHdhbnQgdG8gY29tcGFy
ZQotdHdvIGBzdHJpbmdgIG9iamVjdHMsIHVzZSBgRVhQRUNUX0VRYCwgYEVYUEVDVF9ORWAsIGFu
ZCBldGMgaW5zdGVhZC4KLQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgIHwgTm9u
ZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICB8IFZlcmlmaWVzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NF
UlRfU1RSRVEoc3RyMSwgc3RyMik7YCAgICAgfCBgRVhQRUNUX1NUUkVRKHN0cjEsIHN0cjIpO2Ag
ICAgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50ICAgICAgICAgICAg
ICAgICAgfAotfCBgQVNTRVJUX1NUUk5FKHN0cjEsIHN0cjIpO2AgICAgIHwgYEVYUEVDVF9TVFJO
RShzdHIxLCBzdHIyKTtgICAgICB8IHRoZSB0d28gQyBzdHJpbmdzIGhhdmUgZGlmZmVyZW50IGNv
bnRlbnRzICAgICAgICAgICAgICAgIHwKLXwgYEFTU0VSVF9TVFJDQVNFRVEoc3RyMSwgc3RyMik7
YCB8IGBFWFBFQ1RfU1RSQ0FTRUVRKHN0cjEsIHN0cjIpO2AgfCB0aGUgdHdvIEMgc3RyaW5ncyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnQsIGlnbm9yaW5nIGNhc2UgICB8Ci18IGBBU1NFUlRfU1RSQ0FT
RU5FKHN0cjEsIHN0cjIpO2AgfCBgRVhQRUNUX1NUUkNBU0VORShzdHIxLCBzdHIyKTtgIHwgdGhl
IHR3byBDIHN0cmluZ3MgaGF2ZSBkaWZmZXJlbnQgY29udGVudHMsIGlnbm9yaW5nIGNhc2UgfAot
Ci1Ob3RlIHRoYXQgIkNBU0UiIGluIGFuIGFzc2VydGlvbiBuYW1lIG1lYW5zIHRoYXQgY2FzZSBp
cyBpZ25vcmVkLiBBIGBOVUxMYAotcG9pbnRlciBhbmQgYW4gZW1wdHkgc3RyaW5nIGFyZSBjb25z
aWRlcmVkICpkaWZmZXJlbnQqLgotCi1gKlNUUkVRKmAgYW5kIGAqU1RSTkUqYCBhbHNvIGFjY2Vw
dCB3aWRlIEMgc3RyaW5ncyAoYHdjaGFyX3QqYCkuIElmIGEgY29tcGFyaXNvbgotb2YgdHdvIHdp
ZGUgc3RyaW5ncyBmYWlscywgdGhlaXIgdmFsdWVzIHdpbGwgYmUgcHJpbnRlZCBhcyBVVEYtOCBu
YXJyb3cgc3RyaW5ncy4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4K
LQotKipTZWUgYWxzbyoqOiBGb3IgbW9yZSBzdHJpbmcgY29tcGFyaXNvbiB0cmlja3MgKHN1YnN0
cmluZywgcHJlZml4LCBzdWZmaXgsIGFuZAotcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nLCBm
b3IgZXhhbXBsZSksIHNlZQotW3RoaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xl
dGVzdC9ibG9iL21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvYWR2YW5jZWQubWQpCi1pbiB0aGUgQWR2
YW5jZWQgZ29vZ2xldGVzdCBHdWlkZS4KLQotIyMgU2ltcGxlIFRlc3RzCi0KLVRvIGNyZWF0ZSBh
IHRlc3Q6Ci0KLTEuICBVc2UgdGhlIGBURVNUKClgIG1hY3JvIHRvIGRlZmluZSBhbmQgbmFtZSBh
IHRlc3QgZnVuY3Rpb24sIFRoZXNlIGFyZQotICAgIG9yZGluYXJ5IEMrKyBmdW5jdGlvbnMgdGhh
dCBkb24ndCByZXR1cm4gYSB2YWx1ZS4KLTEuICBJbiB0aGlzIGZ1bmN0aW9uLCBhbG9uZyB3aXRo
IGFueSB2YWxpZCBDKysgc3RhdGVtZW50cyB5b3Ugd2FudCB0byBpbmNsdWRlLAotICAgIHVzZSB0
aGUgdmFyaW91cyBnb29nbGV0ZXN0IGFzc2VydGlvbnMgdG8gY2hlY2sgdmFsdWVzLgotMS4gIFRo
ZSB0ZXN0J3MgcmVzdWx0IGlzIGRldGVybWluZWQgYnkgdGhlIGFzc2VydGlvbnM7IGlmIGFueSBh
c3NlcnRpb24gaW4gdGhlCi0gICAgdGVzdCBmYWlscyAoZWl0aGVyIGZhdGFsbHkgb3Igbm9uLWZh
dGFsbHkpLCBvciBpZiB0aGUgdGVzdCBjcmFzaGVzLCB0aGUKLSAgICBlbnRpcmUgdGVzdCBmYWls
cy4gT3RoZXJ3aXNlLCBpdCBzdWNjZWVkcy4KLQotYGBgYysrCi1URVNUKFRlc3RDYXNlTmFtZSwg
VGVzdE5hbWUpIHsKLSAgLi4uIHRlc3QgYm9keSAuLi4KLX0KLWBgYAotCi1gVEVTVCgpYCBhcmd1
bWVudHMgZ28gZnJvbSBnZW5lcmFsIHRvIHNwZWNpZmljLiBUaGUgKmZpcnN0KiBhcmd1bWVudCBp
cyB0aGUgbmFtZQotb2YgdGhlIHRlc3QgY2FzZSwgYW5kIHRoZSAqc2Vjb25kKiBhcmd1bWVudCBp
cyB0aGUgdGVzdCdzIG5hbWUgd2l0aGluIHRoZSB0ZXN0Ci1jYXNlLiBCb3RoIG5hbWVzIG11c3Qg
YmUgdmFsaWQgQysrIGlkZW50aWZpZXJzLCBhbmQgdGhleSBzaG91bGQgbm90IGNvbnRhaW4KLXVu
ZGVyc2NvcmUgKGBfYCkuIEEgdGVzdCdzICpmdWxsIG5hbWUqIGNvbnNpc3RzIG9mIGl0cyBjb250
YWluaW5nIHRlc3QgY2FzZSBhbmQKLWl0cyBpbmRpdmlkdWFsIG5hbWUuIFRlc3RzIGZyb20gZGlm
ZmVyZW50IHRlc3QgY2FzZXMgY2FuIGhhdmUgdGhlIHNhbWUKLWluZGl2aWR1YWwgbmFtZS4KLQot
Rm9yIGV4YW1wbGUsIGxldCdzIHRha2UgYSBzaW1wbGUgaW50ZWdlciBmdW5jdGlvbjoKLQotYGBg
YysrCi1pbnQgRmFjdG9yaWFsKGludCBuKTsgIC8vIFJldHVybnMgdGhlIGZhY3RvcmlhbCBvZiBu
Ci1gYGAKLQotQSB0ZXN0IGNhc2UgZm9yIHRoaXMgZnVuY3Rpb24gbWlnaHQgbG9vayBsaWtlOgot
Ci1gYGBjKysKLS8vIFRlc3RzIGZhY3RvcmlhbCBvZiAwLgotVEVTVChGYWN0b3JpYWxUZXN0LCBI
YW5kbGVzWmVyb0lucHV0KSB7Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwoMCksIDEpOwotfQotCi0v
LyBUZXN0cyBmYWN0b3JpYWwgb2YgcG9zaXRpdmUgbnVtYmVycy4KLVRFU1QoRmFjdG9yaWFsVGVz
dCwgSGFuZGxlc1Bvc2l0aXZlSW5wdXQpIHsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCgxKSwgMSk7
Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwoMiksIDIpOwotICBFWFBFQ1RfRVEoRmFjdG9yaWFsKDMp
LCA2KTsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCg4KSwgNDAzMjApOwotfQotYGBgCi0KLWdvb2ds
ZXRlc3QgZ3JvdXBzIHRoZSB0ZXN0IHJlc3VsdHMgYnkgdGVzdCBjYXNlcywgc28gbG9naWNhbGx5
LXJlbGF0ZWQgdGVzdHMKLXNob3VsZCBiZSBpbiB0aGUgc2FtZSB0ZXN0IGNhc2U7IGluIG90aGVy
IHdvcmRzLCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlaXIKLWBURVNUKClgIHNob3VsZCBiZSB0
aGUgc2FtZS4gSW4gdGhlIGFib3ZlIGV4YW1wbGUsIHdlIGhhdmUgdHdvIHRlc3RzLAotYEhhbmRs
ZXNaZXJvSW5wdXRgIGFuZCBgSGFuZGxlc1Bvc2l0aXZlSW5wdXRgLCB0aGF0IGJlbG9uZyB0byB0
aGUgc2FtZSB0ZXN0IGNhc2UKLWBGYWN0b3JpYWxUZXN0YC4KLQotV2hlbiBuYW1pbmcgeW91ciB0
ZXN0IGNhc2VzIGFuZCB0ZXN0cywgeW91IHNob3VsZCBmb2xsb3cgdGhlIHNhbWUgY29udmVudGlv
biBhcwotZm9yIFtuYW1pbmcgZnVuY3Rpb25zIGFuZAotY2xhc3Nlc10oaHR0cHM6Ly9nb29nbGUu
Z2l0aHViLmlvL3N0eWxlZ3VpZGUvY3BwZ3VpZGUuaHRtbCNGdW5jdGlvbl9OYW1lcykuCi0KLSoq
QXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIFRlc3QgRml4dHVyZXM6
IFVzaW5nIHRoZSBTYW1lIERhdGEgQ29uZmlndXJhdGlvbiBmb3IgTXVsdGlwbGUgVGVzdHMKLQot
SWYgeW91IGZpbmQgeW91cnNlbGYgd3JpdGluZyB0d28gb3IgbW9yZSB0ZXN0cyB0aGF0IG9wZXJh
dGUgb24gc2ltaWxhciBkYXRhLCB5b3UKLWNhbiB1c2UgYSAqdGVzdCBmaXh0dXJlKi4gSXQgYWxs
b3dzIHlvdSB0byByZXVzZSB0aGUgc2FtZSBjb25maWd1cmF0aW9uIG9mCi1vYmplY3RzIGZvciBz
ZXZlcmFsIGRpZmZlcmVudCB0ZXN0cy4KLQotVG8gY3JlYXRlIGEgZml4dHVyZToKLQotMS4gIERl
cml2ZSBhIGNsYXNzIGZyb20gYDo6dGVzdGluZzo6VGVzdGAgLiBTdGFydCBpdHMgYm9keSB3aXRo
IGBwcm90ZWN0ZWQ6YCBhcwotICAgIHdlJ2xsIHdhbnQgdG8gYWNjZXNzIGZpeHR1cmUgbWVtYmVy
cyBmcm9tIHN1Yi1jbGFzc2VzLgotMS4gIEluc2lkZSB0aGUgY2xhc3MsIGRlY2xhcmUgYW55IG9i
amVjdHMgeW91IHBsYW4gdG8gdXNlLgotMS4gIElmIG5lY2Vzc2FyeSwgd3JpdGUgYSBkZWZhdWx0
IGNvbnN0cnVjdG9yIG9yIGBTZXRVcCgpYCBmdW5jdGlvbiB0byBwcmVwYXJlCi0gICAgdGhlIG9i
amVjdHMgZm9yIGVhY2ggdGVzdC4gQSBjb21tb24gbWlzdGFrZSBpcyB0byBzcGVsbCBgU2V0VXAo
KWAgYXMKLSAgICAqKmBTZXR1cCgpYCoqIHdpdGggYSBzbWFsbCBgdWAgLSBVc2UgYG92ZXJyaWRl
YCBpbiBDKysxMSB0byBtYWtlIHN1cmUgeW91Ci0gICAgc3BlbGxlZCBpdCBjb3JyZWN0bHkKLTEu
ICBJZiBuZWNlc3NhcnksIHdyaXRlIGEgZGVzdHJ1Y3RvciBvciBgVGVhckRvd24oKWAgZnVuY3Rp
b24gdG8gcmVsZWFzZSBhbnkKLSAgICByZXNvdXJjZXMgeW91IGFsbG9jYXRlZCBpbiBgU2V0VXAo
KWAgLiBUbyBsZWFybiB3aGVuIHlvdSBzaG91bGQgdXNlIHRoZQotICAgIGNvbnN0cnVjdG9yL2Rl
c3RydWN0b3IgYW5kIHdoZW4geW91IHNob3VsZCB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAsIHJl
YWQKLSAgICB0aGlzIFtGQVFdKGZhcS5tZCNzaG91bGQtaS11c2UtdGhlLWNvbnN0cnVjdG9yZGVz
dHJ1Y3Rvci1vZi10aGUtdGVzdC1maXh0dXJlLW9yLXNldHVwdGVhcmRvd24pIGVudHJ5LgotMS4g
IElmIG5lZWRlZCwgZGVmaW5lIHN1YnJvdXRpbmVzIGZvciB5b3VyIHRlc3RzIHRvIHNoYXJlLgot
Ci1XaGVuIHVzaW5nIGEgZml4dHVyZSwgdXNlIGBURVNUX0YoKWAgaW5zdGVhZCBvZiBgVEVTVCgp
YCBhcyBpdCBhbGxvd3MgeW91IHRvCi1hY2Nlc3Mgb2JqZWN0cyBhbmQgc3Vicm91dGluZXMgaW4g
dGhlIHRlc3QgZml4dHVyZToKLQotYGBgYysrCi1URVNUX0YoVGVzdENhc2VOYW1lLCBUZXN0TmFt
ZSkgewotICAuLi4gdGVzdCBib2R5IC4uLgotfQotYGBgCi0KLUxpa2UgYFRFU1QoKWAsIHRoZSBm
aXJzdCBhcmd1bWVudCBpcyB0aGUgdGVzdCBjYXNlIG5hbWUsIGJ1dCBmb3IgYFRFU1RfRigpYCB0
aGlzCi1tdXN0IGJlIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuIFlvdSd2ZSBw
cm9iYWJseSBndWVzc2VkOiBgX0ZgIGlzIGZvcgotZml4dHVyZS4KLQotVW5mb3J0dW5hdGVseSwg
dGhlIEMrKyBtYWNybyBzeXN0ZW0gZG9lcyBub3QgYWxsb3cgdXMgdG8gY3JlYXRlIGEgc2luZ2xl
IG1hY3JvCi10aGF0IGNhbiBoYW5kbGUgYm90aCB0eXBlcyBvZiB0ZXN0cy4gVXNpbmcgdGhlIHdy
b25nIG1hY3JvIGNhdXNlcyBhIGNvbXBpbGVyCi1lcnJvci4KLQotQWxzbywgeW91IG11c3QgZmly
c3QgZGVmaW5lIGEgdGVzdCBmaXh0dXJlIGNsYXNzIGJlZm9yZSB1c2luZyBpdCBpbiBhCi1gVEVT
VF9GKClgLCBvciB5b3UnbGwgZ2V0IHRoZSBjb21waWxlciBlcnJvciAiYHZpcnR1YWwgb3V0c2lk
ZSBjbGFzcwotZGVjbGFyYXRpb25gIi4KLQotRm9yIGVhY2ggdGVzdCBkZWZpbmVkIHdpdGggYFRF
U1RfRigpYCAsIGdvb2dsZXRlc3Qgd2lsbCBjcmVhdGUgYSAqZnJlc2gqIHRlc3QKLWZpeHR1cmUg
YXQgcnVudGltZSwgaW1tZWRpYXRlbHkgaW5pdGlhbGl6ZSBpdCB2aWEgYFNldFVwKClgICwgcnVu
IHRoZSB0ZXN0LAotY2xlYW4gdXAgYnkgY2FsbGluZyBgVGVhckRvd24oKWAgLCBhbmQgdGhlbiBk
ZWxldGUgdGhlIHRlc3QgZml4dHVyZS4gTm90ZSB0aGF0Ci1kaWZmZXJlbnQgdGVzdHMgaW4gdGhl
IHNhbWUgdGVzdCBjYXNlIGhhdmUgZGlmZmVyZW50IHRlc3QgZml4dHVyZSBvYmplY3RzLCBhbmQK
LWdvb2dsZXRlc3QgYWx3YXlzIGRlbGV0ZXMgYSB0ZXN0IGZpeHR1cmUgYmVmb3JlIGl0IGNyZWF0
ZXMgdGhlIG5leHQgb25lLgotZ29vZ2xldGVzdCBkb2VzICoqbm90KiogcmV1c2UgdGhlIHNhbWUg
dGVzdCBmaXh0dXJlIGZvciBtdWx0aXBsZSB0ZXN0cy4gQW55Ci1jaGFuZ2VzIG9uZSB0ZXN0IG1h
a2VzIHRvIHRoZSBmaXh0dXJlIGRvIG5vdCBhZmZlY3Qgb3RoZXIgdGVzdHMuCi0KLUFzIGFuIGV4
YW1wbGUsIGxldCdzIHdyaXRlIHRlc3RzIGZvciBhIEZJRk8gcXVldWUgY2xhc3MgbmFtZWQgYFF1
ZXVlYCwgd2hpY2ggaGFzCi10aGUgZm9sbG93aW5nIGludGVyZmFjZToKLQotYGBgYysrCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgRT4gIC8vIEUgaXMgdGhlIGVsZW1lbnQgdHlwZS4KLWNsYXNzIFF1ZXVl
IHsKLSBwdWJsaWM6Ci0gIFF1ZXVlKCk7Ci0gIHZvaWQgRW5xdWV1ZShjb25zdCBFJiBlbGVtZW50
KTsKLSAgRSogRGVxdWV1ZSgpOyAgLy8gUmV0dXJucyBOVUxMIGlmIHRoZSBxdWV1ZSBpcyBlbXB0
eS4KLSAgc2l6ZV90IHNpemUoKSBjb25zdDsKLSAgLi4uCi19OwotYGBgCi0KLUZpcnN0LCBkZWZp
bmUgYSBmaXh0dXJlIGNsYXNzLiBCeSBjb252ZW50aW9uLCB5b3Ugc2hvdWxkIGdpdmUgaXQgdGhl
IG5hbWUKLWBGb29UZXN0YCB3aGVyZSBgRm9vYCBpcyB0aGUgY2xhc3MgYmVpbmcgdGVzdGVkLgot
Ci1gYGBjKysKLWNsYXNzIFF1ZXVlVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHBy
b3RlY3RlZDoKLSAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKLSAgICAgcTFfLkVucXVldWUoMSk7
Ci0gICAgIHEyXy5FbnF1ZXVlKDIpOwotICAgICBxMl8uRW5xdWV1ZSgzKTsKLSAgfQotCi0gIC8v
IHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQotCi0gIFF1ZXVlPGludD4gcTBfOwotICBRdWV1
ZTxpbnQ+IHExXzsKLSAgUXVldWU8aW50PiBxMl87Ci19OwotYGBgCi0KLUluIHRoaXMgY2FzZSwg
YFRlYXJEb3duKClgIGlzIG5vdCBuZWVkZWQgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0byBjbGVhbiB1
cCBhZnRlcgotZWFjaCB0ZXN0LCBvdGhlciB0aGFuIHdoYXQncyBhbHJlYWR5IGRvbmUgYnkgdGhl
IGRlc3RydWN0b3IuCi0KLU5vdyB3ZSdsbCB3cml0ZSB0ZXN0cyB1c2luZyBgVEVTVF9GKClgIGFu
ZCB0aGlzIGZpeHR1cmUuCi0KLWBgYGMrKwotVEVTVF9GKFF1ZXVlVGVzdCwgSXNFbXB0eUluaXRp
YWxseSkgewotICBFWFBFQ1RfRVEocTBfLnNpemUoKSwgMCk7Ci19Ci0KLVRFU1RfRihRdWV1ZVRl
c3QsIERlcXVldWVXb3JrcykgewotICBpbnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwotICBFWFBFQ1Rf
RVEobiwgbnVsbHB0cik7Ci0KLSAgbiA9IHExXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9ORShuLCBu
dWxscHRyKTsKLSAgRVhQRUNUX0VRKCpuLCAxKTsKLSAgRVhQRUNUX0VRKHExXy5zaXplKCksIDAp
OwotICBkZWxldGUgbjsKLQotICBuID0gcTJfLkRlcXVldWUoKTsKLSAgQVNTRVJUX05FKG4sIG51
bGxwdHIpOwotICBFWFBFQ1RfRVEoKm4sIDIpOwotICBFWFBFQ1RfRVEocTJfLnNpemUoKSwgMSk7
Ci0gIGRlbGV0ZSBuOwotfQotYGBgCi0KLVRoZSBhYm92ZSB1c2VzIGJvdGggYEFTU0VSVF8qYCBh
bmQgYEVYUEVDVF8qYCBhc3NlcnRpb25zLiBUaGUgcnVsZSBvZiB0aHVtYiBpcwotdG8gdXNlIGBF
WFBFQ1RfKmAgd2hlbiB5b3Ugd2FudCB0aGUgdGVzdCB0byBjb250aW51ZSB0byByZXZlYWwgbW9y
ZSBlcnJvcnMgYWZ0ZXIKLXRoZSBhc3NlcnRpb24gZmFpbHVyZSwgYW5kIHVzZSBgQVNTRVJUXypg
IHdoZW4gY29udGludWluZyBhZnRlciBmYWlsdXJlIGRvZXNuJ3QKLW1ha2Ugc2Vuc2UuIEZvciBl
eGFtcGxlLCB0aGUgc2Vjb25kIGFzc2VydGlvbiBpbiB0aGUgYERlcXVldWVgIHRlc3QgaXMKLT1B
U1NFUlRfTkUobnVsbHB0ciwgbik9LCBhcyB3ZSBuZWVkIHRvIGRlcmVmZXJlbmNlIHRoZSBwb2lu
dGVyIGBuYCBsYXRlciwgd2hpY2gKLXdvdWxkIGxlYWQgdG8gYSBzZWdmYXVsdCB3aGVuIGBuYCBp
cyBgTlVMTGAuCi0KLVdoZW4gdGhlc2UgdGVzdHMgcnVuLCB0aGUgZm9sbG93aW5nIGhhcHBlbnM6
Ci0KLTEuICBnb29nbGV0ZXN0IGNvbnN0cnVjdHMgYSBgUXVldWVUZXN0YCBvYmplY3QgKGxldCdz
IGNhbGwgaXQgYHQxYCApLgotMS4gIGB0MS5TZXRVcCgpYCBpbml0aWFsaXplcyBgdDFgIC4KLTEu
ICBUaGUgZmlyc3QgdGVzdCAoIGBJc0VtcHR5SW5pdGlhbGx5YCApIHJ1bnMgb24gYHQxYCAuCi0x
LiAgYHQxLlRlYXJEb3duKClgIGNsZWFucyB1cCBhZnRlciB0aGUgdGVzdCBmaW5pc2hlcy4KLTEu
ICBgdDFgIGlzIGRlc3RydWN0ZWQuCi0xLiAgVGhlIGFib3ZlIHN0ZXBzIGFyZSByZXBlYXRlZCBv
biBhbm90aGVyIGBRdWV1ZVRlc3RgIG9iamVjdCwgdGhpcyB0aW1lCi0gICAgcnVubmluZyB0aGUg
YERlcXVldWVXb3Jrc2AgdGVzdC4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotCi0jIyBJbnZva2luZyB0aGUgVGVzdHMKLQotYFRFU1QoKWAgYW5kIGBURVNUX0Yo
KWAgaW1wbGljaXRseSByZWdpc3RlciB0aGVpciB0ZXN0cyB3aXRoIGdvb2dsZXRlc3QuIFNvLAot
dW5saWtlIHdpdGggbWFueSBvdGhlciBDKysgdGVzdGluZyBmcmFtZXdvcmtzLCB5b3UgZG9uJ3Qg
aGF2ZSB0byByZS1saXN0IGFsbAoteW91ciBkZWZpbmVkIHRlc3RzIGluIG9yZGVyIHRvIHJ1biB0
aGVtLgotCi1BZnRlciBkZWZpbmluZyB5b3VyIHRlc3RzLCB5b3UgY2FuIHJ1biB0aGVtIHdpdGgg
YFJVTl9BTExfVEVTVFMoKWAgLCB3aGljaAotcmV0dXJucyBgMGAgaWYgYWxsIHRoZSB0ZXN0cyBh
cmUgc3VjY2Vzc2Z1bCwgb3IgYDFgIG90aGVyd2lzZS4gTm90ZSB0aGF0Ci1gUlVOX0FMTF9URVNU
UygpYCBydW5zICphbGwgdGVzdHMqIGluIHlvdXIgbGluayB1bml0IC0tIHRoZXkgY2FuIGJlIGZy
b20KLWRpZmZlcmVudCB0ZXN0IGNhc2VzLCBvciBldmVuIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMu
Ci0KLVdoZW4gaW52b2tlZCwgdGhlIGBSVU5fQUxMX1RFU1RTKClgIG1hY3JvOgotCi0xLiBTYXZl
cyB0aGUgc3RhdGUgb2YgYWxsIGdvb2dsZXRlc3QgZmxhZ3MKLQotKiAgIENyZWF0ZXMgYSB0ZXN0
IGZpeHR1cmUgb2JqZWN0IGZvciB0aGUgZmlyc3QgdGVzdC4KLQotKiAgIEluaXRpYWxpemVzIGl0
IHZpYSBgU2V0VXAoKWAuCi0KLSogICBSdW5zIHRoZSB0ZXN0IG9uIHRoZSBmaXh0dXJlIG9iamVj
dC4KLQotKiAgIENsZWFucyB1cCB0aGUgZml4dHVyZSB2aWEgYFRlYXJEb3duKClgLgotCi0qICAg
RGVsZXRlcyB0aGUgZml4dHVyZS4KLQotKiBSZXN0b3JlcyB0aGUgc3RhdGUgb2YgYWxsIGdvb2ds
ZXRlc3QgZmxhZ3MKLQotKiAgIFJlcGVhdHMgdGhlIGFib3ZlIHN0ZXBzIGZvciB0aGUgbmV4dCB0
ZXN0LCB1bnRpbCBhbGwgdGVzdHMgaGF2ZSBydW4uCi0KLUlmIGEgZmF0YWwgZmFpbHVyZSBoYXBw
ZW5zIHRoZSBzdWJzZXF1ZW50IHN0ZXBzIHdpbGwgYmUgc2tpcHBlZC4KLQotPiBJTVBPUlRBTlQ6
IFlvdSBtdXN0ICoqbm90KiogaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgYFJVTl9BTExfVEVT
VFMoKWAsIG9yCi0+IHlvdSB3aWxsIGdldCBhIGNvbXBpbGVyIGVycm9yLiBUaGUgcmF0aW9uYWxl
IGZvciB0aGlzIGRlc2lnbiBpcyB0aGF0IHRoZQotPiBhdXRvbWF0ZWQgdGVzdGluZyBzZXJ2aWNl
IGRldGVybWluZXMgd2hldGhlciBhIHRlc3QgaGFzIHBhc3NlZCBiYXNlZCBvbiBpdHMKLT4gZXhp
dCBjb2RlLCBub3Qgb24gaXRzIHN0ZG91dC9zdGRlcnIgb3V0cHV0OyB0aHVzIHlvdXIgYG1haW4o
KWAgZnVuY3Rpb24gbXVzdAotPiByZXR1cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClg
LgotPgotPiBBbHNvLCB5b3Ugc2hvdWxkIGNhbGwgYFJVTl9BTExfVEVTVFMoKWAgb25seSAqKm9u
Y2UqKi4gQ2FsbGluZyBpdCBtb3JlIHRoYW4KLT4gb25jZSBjb25mbGljdHMgd2l0aCBzb21lIGFk
dmFuY2VkIGdvb2dsZXRlc3QgZmVhdHVyZXMgKGUuZy4gdGhyZWFkLXNhZmUgW2RlYXRoCi0+IHRl
c3RzXShhZHZhbmNlZCNkZWF0aC10ZXN0cykpIGFuZCB0aHVzIGlzIG5vdCBzdXBwb3J0ZWQuCi0K
LSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIFdyaXRpbmcgdGhl
IG1haW4oKSBGdW5jdGlvbgotCi1JbiBgZ29vZ2xlM2AsIHRoZSBzaW1wbGVzdCBhcHByb2FjaCBp
cyB0byB1c2UgdGhlIGRlZmF1bHQgbWFpbigpIGZ1bmN0aW9uCi1wcm92aWRlZCBieSBsaW5raW5n
IGluIGAiLy90ZXN0aW5nL2Jhc2UvcHVibGljOmd0ZXN0X21haW4iYC4gSWYgdGhhdCBkb2Vzbid0
Ci1jb3ZlciB3aGF0IHlvdSBuZWVkLCB5b3Ugc2hvdWxkIHdyaXRlIHlvdXIgb3duIG1haW4oKSBm
dW5jdGlvbiwgd2hpY2ggc2hvdWxkCi1yZXR1cm4gdGhlIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RT
KClgLiBMaW5rIHRvIGAiLy90ZXN0aW5nL2Jhc2UvcHVibGljOmd1bml0ImAuCi1Zb3UgY2FuIHN0
YXJ0IGZyb20gdGhpcyBib2lsZXJwbGF0ZToKLQotYGBgYysrCi0jaW5jbHVkZSAidGhpcy9wYWNr
YWdlL2Zvby5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5hbWVzcGFjZSB7Ci0KLS8v
IFRoZSBmaXh0dXJlIGZvciB0ZXN0aW5nIGNsYXNzIEZvby4KLWNsYXNzIEZvb1Rlc3QgOiBwdWJs
aWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIC8vIFlvdSBjYW4gcmVtb3ZlIGFu
eSBvciBhbGwgb2YgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgaWYgaXRzIGJvZHkKLSAgLy8gaXMg
ZW1wdHkuCi0KLSAgRm9vVGVzdCgpIHsKLSAgICAgLy8gWW91IGNhbiBkbyBzZXQtdXAgd29yayBm
b3IgZWFjaCB0ZXN0IGhlcmUuCi0gIH0KLQotICB+Rm9vVGVzdCgpIG92ZXJyaWRlIHsKLSAgICAg
Ly8gWW91IGNhbiBkbyBjbGVhbi11cCB3b3JrIHRoYXQgZG9lc24ndCB0aHJvdyBleGNlcHRpb25z
IGhlcmUuCi0gIH0KLQotICAvLyBJZiB0aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgYXJl
IG5vdCBlbm91Z2ggZm9yIHNldHRpbmcgdXAKLSAgLy8gYW5kIGNsZWFuaW5nIHVwIGVhY2ggdGVz
dCwgeW91IGNhbiBkZWZpbmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgotCi0gIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7Ci0gICAgIC8vIENvZGUgaGVyZSB3aWxsIGJlIGNhbGxlZCBpbW1lZGlhdGVs
eSBhZnRlciB0aGUgY29uc3RydWN0b3IgKHJpZ2h0Ci0gICAgIC8vIGJlZm9yZSBlYWNoIHRlc3Qp
LgotICB9Ci0KLSAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKLSAgICAgLy8gQ29kZSBoZXJl
IHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGVhY2ggdGVzdCAocmlnaHQKLSAgICAg
Ly8gYmVmb3JlIHRoZSBkZXN0cnVjdG9yKS4KLSAgfQotCi0gIC8vIE9iamVjdHMgZGVjbGFyZWQg
aGVyZSBjYW4gYmUgdXNlZCBieSBhbGwgdGVzdHMgaW4gdGhlIHRlc3QgY2FzZSBmb3IgRm9vLgot
fTsKLQotLy8gVGVzdHMgdGhhdCB0aGUgRm9vOjpCYXIoKSBtZXRob2QgZG9lcyBBYmMuCi1URVNU
X0YoRm9vVGVzdCwgTWV0aG9kQmFyRG9lc0FiYykgewotICBjb25zdCBzdGQ6OnN0cmluZyBpbnB1
dF9maWxlcGF0aCA9ICJ0aGlzL3BhY2thZ2UvdGVzdGRhdGEvbXlpbnB1dGZpbGUuZGF0IjsKLSAg
Y29uc3Qgc3RkOjpzdHJpbmcgb3V0cHV0X2ZpbGVwYXRoID0gInRoaXMvcGFja2FnZS90ZXN0ZGF0
YS9teW91dHB1dGZpbGUuZGF0IjsKLSAgRm9vIGY7Ci0gIEVYUEVDVF9FUShmLkJhcihpbnB1dF9m
aWxlcGF0aCwgb3V0cHV0X2ZpbGVwYXRoKSwgMCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgRm9vIGRv
ZXMgWHl6LgotVEVTVF9GKEZvb1Rlc3QsIERvZXNYeXopIHsKLSAgLy8gRXhlcmNpc2VzIHRoZSBY
eXogZmVhdHVyZSBvZiBGb28uCi19Ci0KLX0gIC8vIG5hbWVzcGFjZQotCi1pbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywg
YXJndik7Ci0gIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7Ci19Ci1gYGAKLQotCi1UaGUgYDo6dGVz
dGluZzo6SW5pdEdvb2dsZVRlc3QoKWAgZnVuY3Rpb24gcGFyc2VzIHRoZSBjb21tYW5kIGxpbmUg
Zm9yCi1nb29nbGV0ZXN0IGZsYWdzLCBhbmQgcmVtb3ZlcyBhbGwgcmVjb2duaXplZCBmbGFncy4g
VGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8KLWNvbnRyb2wgYSB0ZXN0IHByb2dyYW0ncyBiZWhhdmlv
ciB2aWEgdmFyaW91cyBmbGFncywgd2hpY2ggd2UnbGwgY292ZXIgaW4KLVtBZHZhbmNlZEd1aWRl
XShhZHZhbmNlZC5tZCkuIFlvdSAqKm11c3QqKiBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGNh
bGxpbmcKLWBSVU5fQUxMX1RFU1RTKClgLCBvciB0aGUgZmxhZ3Mgd29uJ3QgYmUgcHJvcGVybHkg
aW5pdGlhbGl6ZWQuCi0KLU9uIFdpbmRvd3MsIGBJbml0R29vZ2xlVGVzdCgpYCBhbHNvIHdvcmtz
IHdpdGggd2lkZSBzdHJpbmdzLCBzbyBpdCBjYW4gYmUgdXNlZAotaW4gcHJvZ3JhbXMgY29tcGls
ZWQgaW4gYFVOSUNPREVgIG1vZGUgYXMgd2VsbC4KLQotQnV0IG1heWJlIHlvdSB0aGluayB0aGF0
IHdyaXRpbmcgYWxsIHRob3NlIG1haW4oKSBmdW5jdGlvbnMgaXMgdG9vIG11Y2ggd29yaz8gV2UK
LWFncmVlIHdpdGggeW91IGNvbXBsZXRlbHkgYW5kIHRoYXQncyB3aHkgR29vZ2xlIFRlc3QgcHJv
dmlkZXMgYSBiYXNpYwotaW1wbGVtZW50YXRpb24gb2YgbWFpbigpLiBJZiBpdCBmaXRzIHlvdXIg
bmVlZHMsIHRoZW4ganVzdCBsaW5rIHlvdXIgdGVzdCB3aXRoCi1ndGVzdFxfbWFpbiBsaWJyYXJ5
IGFuZCB5b3UgYXJlIGdvb2QgdG8gZ28uCi0KLU5PVEU6IGBQYXJzZUdVbml0RmxhZ3MoKWAgaXMg
ZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgSW5pdEdvb2dsZVRlc3QoKWAuCi0KLQotIyMgS25vd24g
TGltaXRhdGlvbnMKLQotKiAgIEdvb2dsZSBUZXN0IGlzIGRlc2lnbmVkIHRvIGJlIHRocmVhZC1z
YWZlLiBUaGUgaW1wbGVtZW50YXRpb24gaXMgdGhyZWFkLXNhZmUKLSAgICBvbiBzeXN0ZW1zIHdo
ZXJlIHRoZSBgcHRocmVhZHNgIGxpYnJhcnkgaXMgYXZhaWxhYmxlLiBJdCBpcyBjdXJyZW50bHkK
LSAgICBfdW5zYWZlXyB0byB1c2UgR29vZ2xlIFRlc3QgYXNzZXJ0aW9ucyBmcm9tIHR3byB0aHJl
YWRzIGNvbmN1cnJlbnRseSBvbgotICAgIG90aGVyIHN5c3RlbXMgKGUuZy4gV2luZG93cykuIElu
IG1vc3QgdGVzdHMgdGhpcyBpcyBub3QgYW4gaXNzdWUgYXMgdXN1YWxseQotICAgIHRoZSBhc3Nl
cnRpb25zIGFyZSBkb25lIGluIHRoZSBtYWluIHRocmVhZC4gSWYgeW91IHdhbnQgdG8gaGVscCwg
eW91IGNhbgotICAgIHZvbHVudGVlciB0byBpbXBsZW1lbnQgdGhlIG5lY2Vzc2FyeSBzeW5jaHJv
bml6YXRpb24gcHJpbWl0aXZlcyBpbgotICAgIGBndGVzdC1wb3J0LmhgIGZvciB5b3VyIHBsYXRm
b3JtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9zYW1wbGVzLm1k
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9zYW1wbGVzLm1kCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxOGRjY2EzODE0OTFlMTk4MjMzMmM2ZDQ0NzJjYTgyZDBkMDIxNzAy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2RvY3Mvc2FtcGxlcy5tZAorKysgL2Rldi9udWxsCkBAIC0xLDIyICsw
LDAgQEAKLSMgR29vZ2xldGVzdCBTYW1wbGVzIHsjc2FtcGxlc30KLQotSWYgeW91J3JlIGxpa2Ug
dXMsIHlvdSdkIGxpa2UgdG8gbG9vayBhdCBbZ29vZ2xldGVzdAotc2FtcGxlcy5dKGh0dHBzOi8v
Z2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC90cmVlL21hc3Rlci9nb29nbGV0ZXN0L3NhbXBs
ZXMpCi1UaGUgc2FtcGxlIGRpcmVjdG9yeSBoYXMgYSBudW1iZXIgb2Ygd2VsbC1jb21tZW50ZWQg
c2FtcGxlcyBzaG93aW5nIGhvdyB0byB1c2UgYQotdmFyaWV0eSBvZiBnb29nbGV0ZXN0IGZlYXR1
cmVzLgotCi0qICAgU2FtcGxlICMxIHNob3dzIHRoZSBiYXNpYyBzdGVwcyBvZiB1c2luZyBnb29n
bGV0ZXN0IHRvIHRlc3QgQysrIGZ1bmN0aW9ucy4KLSogICBTYW1wbGUgIzIgc2hvd3MgYSBtb3Jl
IGNvbXBsZXggdW5pdCB0ZXN0IGZvciBhIGNsYXNzIHdpdGggbXVsdGlwbGUgbWVtYmVyCi0gICAg
ZnVuY3Rpb25zLgotKiAgIFNhbXBsZSAjMyB1c2VzIGEgdGVzdCBmaXh0dXJlLgotKiAgIFNhbXBs
ZSAjNCB0ZWFjaGVzIHlvdSBob3cgdG8gdXNlIGdvb2dsZXRlc3QgYW5kIGBnb29nbGV0ZXN0Lmhg
IHRvZ2V0aGVyIHRvCi0gICAgZ2V0IHRoZSBiZXN0IG9mIGJvdGggbGlicmFyaWVzLgotKiAgIFNh
bXBsZSAjNSBwdXRzIHNoYXJlZCB0ZXN0aW5nIGxvZ2ljIGluIGEgYmFzZSB0ZXN0IGZpeHR1cmUs
IGFuZCByZXVzZXMgaXQgaW4KLSAgICBkZXJpdmVkIGZpeHR1cmVzLgotKiAgIFNhbXBsZSAjNiBk
ZW1vbnN0cmF0ZXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotKiAgIFNhbXBsZSAjNyB0ZWFj
aGVzIHRoZSBiYXNpY3Mgb2YgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUg
Izggc2hvd3MgdXNpbmcgYENvbWJpbmUoKWAgaW4gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cy4K
LSogICBTYW1wbGUgIzkgc2hvd3MgdXNlIG9mIHRoZSBsaXN0ZW5lciBBUEkgdG8gbW9kaWZ5IEdv
b2dsZSBUZXN0J3MgY29uc29sZQotICAgIG91dHB1dCBhbmQgdGhlIHVzZSBvZiBpdHMgcmVmbGVj
dGlvbiBBUEkgdG8gaW5zcGVjdCB0ZXN0IHJlc3VsdHMuCi0qICAgU2FtcGxlICMxMCBzaG93cyB1
c2Ugb2YgdGhlIGxpc3RlbmVyIEFQSSB0byBpbXBsZW1lbnQgYSBwcmltaXRpdmUgbWVtb3J5Ci0g
ICAgbGVhayBjaGVja2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaAppbmRleCAyMGM1NGQ4Njk1MTlmNjkzMGU3
ZWJmZDJjMDgwNWJhY2E0MjIxNmJhLi5hZGZiMTkyMTExZjI4NjBmZTM3MDEyMzI5ZGM0YTk1Mzc5
MjRiMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2d0ZXN0LWRlYXRoLXRlc3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaApAQCAtMzUsOCArMzUsOCBAQAogLy8gZGlyZWN0bHku
CiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9ERUFUSF9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RF
U1RfR1RFU1RfREVBVEhfVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfREVBVEhfVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfREVBVEhfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgt
dGVzdC1pbnRlcm5hbC5oIgogCkBAIC0xNjEsNyArMTYxLDYgQEAgR1RFU1RfQVBJXyBib29sIElu
RGVhdGhUZXN0Q2hpbGQoKTsKIC8vICAgaXMgcmFyZWx5IGEgcHJvYmxlbSBhcyBwZW9wbGUgdXN1
YWxseSBkb24ndCBwdXQgdGhlIHRlc3QgYmluYXJ5CiAvLyAgIGRpcmVjdG9yeSBpbiBQQVRILgog
Ly8KLS8vIEZJWE1FOiBtYWtlIHRocmVhZC1zYWZlIGRlYXRoIHRlc3RzIHNlYXJjaCB0aGUgUEFU
SC4KIAogLy8gQXNzZXJ0cyB0aGF0IGEgZ2l2ZW4gc3RhdGVtZW50IGNhdXNlcyB0aGUgcHJvZ3Jh
bSB0byBleGl0LCB3aXRoIGFuCiAvLyBpbnRlZ2VyIGV4aXQgc3RhdHVzIHRoYXQgc2F0aXNmaWVz
IHByZWRpY2F0ZSwgYW5kIGVtaXR0aW5nIGVycm9yIG91dHB1dApAQCAtMTcwLDcgKzE2OSw3IEBA
IEdURVNUX0FQSV8gYm9vbCBJbkRlYXRoVGVzdENoaWxkKCk7CiAgICAgR1RFU1RfREVBVEhfVEVT
VF8oc3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4LCBHVEVTVF9GQVRBTF9GQUlMVVJFXykKIAog
Ly8gTGlrZSBBU1NFUlRfRVhJVCwgYnV0IGNvbnRpbnVlcyBvbiB0byBzdWNjZXNzaXZlIHRlc3Rz
IGluIHRoZQotLy8gdGVzdCBjYXNlLCBpZiBhbnk6CisvLyB0ZXN0IHN1aXRlLCBpZiBhbnk6CiAj
IGRlZmluZSBFWFBFQ1RfRVhJVChzdGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXgpIFwKICAgICBH
VEVTVF9ERUFUSF9URVNUXyhzdGF0ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXgsIEdURVNUX05PTkZB
VEFMX0ZBSUxVUkVfKQogCkBAIC0xODEsNyArMTgwLDcgQEAgR1RFU1RfQVBJXyBib29sIEluRGVh
dGhUZXN0Q2hpbGQoKTsKICAgICBBU1NFUlRfRVhJVChzdGF0ZW1lbnQsIDo6dGVzdGluZzo6aW50
ZXJuYWw6OkV4aXRlZFVuc3VjY2Vzc2Z1bGx5LCByZWdleCkKIAogLy8gTGlrZSBBU1NFUlRfREVB
VEgsIGJ1dCBjb250aW51ZXMgb24gdG8gc3VjY2Vzc2l2ZSB0ZXN0cyBpbiB0aGUKLS8vIHRlc3Qg
Y2FzZSwgaWYgYW55OgorLy8gdGVzdCBzdWl0ZSwgaWYgYW55OgogIyBkZWZpbmUgRVhQRUNUX0RF
QVRIKHN0YXRlbWVudCwgcmVnZXgpIFwKICAgICBFWFBFQ1RfRVhJVChzdGF0ZW1lbnQsIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkV4aXRlZFVuc3VjY2Vzc2Z1bGx5LCByZWdleCkKIApAQCAtMTkxLDEx
ICsxOTAsMTAgQEAgR1RFU1RfQVBJXyBib29sIEluRGVhdGhUZXN0Q2hpbGQoKTsKIGNsYXNzIEdU
RVNUX0FQSV8gRXhpdGVkV2l0aENvZGUgewogIHB1YmxpYzoKICAgZXhwbGljaXQgRXhpdGVkV2l0
aENvZGUoaW50IGV4aXRfY29kZSk7CisgIEV4aXRlZFdpdGhDb2RlKGNvbnN0IEV4aXRlZFdpdGhD
b2RlJikgPSBkZWZhdWx0OworICB2b2lkIG9wZXJhdG9yPShjb25zdCBFeGl0ZWRXaXRoQ29kZSYg
b3RoZXIpID0gZGVsZXRlOwogICBib29sIG9wZXJhdG9yKCkoaW50IGV4aXRfc3RhdHVzKSBjb25z
dDsKICBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEV4aXRlZFdpdGhDb2RlJiBvdGhlcik7
Ci0KICAgY29uc3QgaW50IGV4aXRfY29kZV87CiB9OwogCkBAIC0yMjgsNyArMjI2LDcgQEAgY2xh
c3MgR1RFU1RfQVBJXyBLaWxsZWRCeVNpZ25hbCB7CiAvLyAgIHJldHVybiAxMjsKIC8vIH0KIC8v
Ci0vLyBURVNUKFRlc3RDYXNlLCBUZXN0RGllT3IxMldvcmtzSW5EZ2JBbmRPcHQpIHsKKy8vIFRF
U1QoVGVzdFN1aXRlLCBUZXN0RGllT3IxMldvcmtzSW5EZ2JBbmRPcHQpIHsKIC8vICAgaW50IHNp
ZGVlZmZlY3QgPSAwOwogLy8gICAvLyBPbmx5IGFzc2VydHMgaW4gZGJnLgogLy8gICBFWFBFQ1Rf
REVCVUdfREVBVEgoRGllSW5EZWJ1Z09yMTIoJnNpZGVlZmZlY3QpLCAiZGVhdGgiKTsKQEAgLTI3
NywyMCArMjc1LDIwIEBAIGNsYXNzIEdURVNUX0FQSV8gS2lsbGVkQnlTaWduYWwgewogLy8gVGhp
cyBtYWNybyBpcyB1c2VkIGZvciBpbXBsZW1lbnRpbmcgbWFjcm9zIHN1Y2ggYXMKIC8vIEVYUEVD
VF9ERUFUSF9JRl9TVVBQT1JURUQgYW5kIEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQgb24gc3lz
dGVtcyB3aGVyZQogLy8gZGVhdGggdGVzdHMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRob3NlIG1hY3Jv
cyBtdXN0IGNvbXBpbGUgb24gc3VjaCBzeXN0ZW1zCi0vLyBpZmYgRVhQRUNUX0RFQVRIIGFuZCBB
U1NFUlRfREVBVEggY29tcGlsZSB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgb24KLS8vIHN5c3Rl
bXMgdGhhdCBzdXBwb3J0IGRlYXRoIHRlc3RzLiBUaGlzIGFsbG93cyBvbmUgdG8gd3JpdGUgc3Vj
aCBhIG1hY3JvCi0vLyBvbiBhIHN5c3RlbSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgZGVhdGggdGVz
dHMgYW5kIGJlIHN1cmUgdGhhdCBpdCB3aWxsCi0vLyBjb21waWxlIG9uIGEgZGVhdGgtdGVzdCBz
dXBwb3J0aW5nIHN5c3RlbS4gSXQgaXMgZXhwb3NlZCBwdWJsaWNseSBzbyB0aGF0Ci0vLyBzeXN0
ZW1zIHRoYXQgaGF2ZSBkZWF0aC10ZXN0cyB3aXRoIHN0cmljdGVyIHJlcXVpcmVtZW50cyB0aGFu
Ci0vLyBHVEVTVF9IQVNfREVBVEhfVEVTVCBjYW4gd3JpdGUgdGhlaXIgb3duIGVxdWl2YWxlbnQg
b2YKLS8vIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQgYW5kIEFTU0VSVF9ERUFUSF9JRl9TVVBQ
T1JURUQuCisvLyBpZiBhbmQgb25seSBpZiBFWFBFQ1RfREVBVEggYW5kIEFTU0VSVF9ERUFUSCBj
b21waWxlIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycworLy8gb24gc3lzdGVtcyB0aGF0IHN1cHBv
cnQgZGVhdGggdGVzdHMuIFRoaXMgYWxsb3dzIG9uZSB0byB3cml0ZSBzdWNoIGEgbWFjcm8gb24K
Ky8vIGEgc3lzdGVtIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBhbmQgYmUgc3Vy
ZSB0aGF0IGl0IHdpbGwgY29tcGlsZQorLy8gb24gYSBkZWF0aC10ZXN0IHN1cHBvcnRpbmcgc3lz
dGVtLiBJdCBpcyBleHBvc2VkIHB1YmxpY2x5IHNvIHRoYXQgc3lzdGVtcworLy8gdGhhdCBoYXZl
IGRlYXRoLXRlc3RzIHdpdGggc3RyaWN0ZXIgcmVxdWlyZW1lbnRzIHRoYW4gR1RFU1RfSEFTX0RF
QVRIX1RFU1QKKy8vIGNhbiB3cml0ZSB0aGVpciBvd24gZXF1aXZhbGVudCBvZiBFWFBFQ1RfREVB
VEhfSUZfU1VQUE9SVEVEIGFuZAorLy8gQVNTRVJUX0RFQVRIX0lGX1NVUFBPUlRFRC4KIC8vCiAv
LyBQYXJhbWV0ZXJzOgogLy8gICBzdGF0ZW1lbnQgLSAgQSBzdGF0ZW1lbnQgdGhhdCBhIG1hY3Jv
IHN1Y2ggYXMgRVhQRUNUX0RFQVRIIHdvdWxkIHRlc3QKIC8vICAgICAgICAgICAgICAgIGZvciBw
cm9ncmFtIHRlcm1pbmF0aW9uLiBUaGlzIG1hY3JvIGhhcyB0byBtYWtlIHN1cmUgdGhpcwogLy8g
ICAgICAgICAgICAgICAgc3RhdGVtZW50IGlzIGNvbXBpbGVkIGJ1dCBub3QgZXhlY3V0ZWQsIHRv
IGVuc3VyZSB0aGF0CiAvLyAgICAgICAgICAgICAgICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVE
IGNvbXBpbGVzIHdpdGggYSBjZXJ0YWluCi0vLyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWZm
IEVYUEVDVF9ERUFUSCBjb21waWxlcyB3aXRoIGl0LgorLy8gICAgICAgICAgICAgICAgcGFyYW1l
dGVyIGlmIGFuZCBvbmx5IGlmIEVYUEVDVF9ERUFUSCBjb21waWxlcyB3aXRoIGl0LgogLy8gICBy
ZWdleCAgICAgLSAgQSByZWdleCB0aGF0IGEgbWFjcm8gc3VjaCBhcyBFWFBFQ1RfREVBVEggd291
bGQgdXNlIHRvIHRlc3QKIC8vICAgICAgICAgICAgICAgIHRoZSBvdXRwdXQgb2Ygc3RhdGVtZW50
LiAgVGhpcyBwYXJhbWV0ZXIgaGFzIHRvIGJlCiAvLyAgICAgICAgICAgICAgICBjb21waWxlZCBi
dXQgbm90IGV2YWx1YXRlZCBieSB0aGlzIG1hY3JvLCB0byBlbnN1cmUgdGhhdApAQCAtMzQxLDQg
KzMzOSw0IEBAIGNsYXNzIEdURVNUX0FQSV8gS2lsbGVkQnlTaWduYWwgewogCiB9ICAvLyBuYW1l
c3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVB
VEhfVEVTVF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVB
VEhfVEVTVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9ndGVzdC1tYXRjaGVycy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9ndGVzdC1tYXRjaGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZDNkY2Y2MTRhNDVkYjhiYjBkMTA4
ZTE2NWI5M2ZlNjk5ODBlYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1hdGNoZXJzLmgKQEAgLTAsMCArMSw5MzAgQEAKKy8v
IENvcHlyaWdodCAyMDA3LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
CisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworLy8gVGhlIEdvb2ds
ZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQorLy8KKy8v
IFRoaXMgZmlsZSBpbXBsZW1lbnRzIGp1c3QgZW5vdWdoIG9mIHRoZSBtYXRjaGVyIGludGVyZmFj
ZSB0byBhbGxvdworLy8gRVhQRUNUX0RFQVRIIGFuZCBmcmllbmRzIHRvIGFjY2VwdCBhIG1hdGNo
ZXIgYXJndW1lbnQuCisKKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01B
VENIRVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9NQVRDSEVS
U19IXworCisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxv
c3RyZWFtPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmgi
CisKKy8vIE1TVkMgd2FybmluZyBDNTA0NiBpcyBuZXcgYXMgb2YgVlMyMDE3IHZlcnNpb24gMTUu
OC4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxOTE1CisjZGVmaW5lIEdU
RVNUX01BWUJFXzUwNDZfIDUwNDYKKyNlbHNlCisjZGVmaW5lIEdURVNUX01BWUJFXzUwNDZfCisj
ZW5kaWYKKworR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUFVTSF8oCisgICAgNDI1MSBHVEVT
VF9NQVlCRV81MDQ2XyAvKiBjbGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0byBi
ZSB1c2VkIGJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRzIG9mIGNsYXNz
IEIgKi8KKyAgICAvKiBTeW1ib2wgaW52b2x2aW5nIHR5cGUgd2l0aCBpbnRlcm5hbCBsaW5rYWdl
IG5vdCBkZWZpbmVkICovKQorCituYW1lc3BhY2UgdGVzdGluZyB7CisKKy8vIFRvIGltcGxlbWVu
dCBhIG1hdGNoZXIgRm9vIGZvciB0eXBlIFQsIGRlZmluZToKKy8vICAgMS4gYSBjbGFzcyBGb29N
YXRjaGVyTWF0Y2hlciB0aGF0IGltcGxlbWVudHMgdGhlIG1hdGNoZXIgaW50ZXJmYWNlOgorLy8g
ICAgIHVzaW5nIGlzX2d0ZXN0X21hdGNoZXIgPSB2b2lkOworLy8gICAgIGJvb2wgTWF0Y2hBbmRF
eHBsYWluKGNvbnN0IFQmLCBzdGQ6Om9zdHJlYW0qKTsKKy8vICAgICAgIChNYXRjaFJlc3VsdExp
c3RlbmVyKiBjYW4gYWxzbyBiZSB1c2VkIGluc3RlYWQgb2Ygc3RkOjpvc3RyZWFtKikKKy8vICAg
ICB2b2lkIERlc2NyaWJlVG8oc3RkOjpvc3RyZWFtKik7CisvLyAgICAgdm9pZCBEZXNjcmliZU5l
Z2F0aW9uVG8oc3RkOjpvc3RyZWFtKik7CisvLworLy8gICAyLiBhIGZhY3RvcnkgZnVuY3Rpb24g
dGhhdCBjcmVhdGVzIGEgTWF0Y2hlcjxUPiBvYmplY3QgZnJvbSBhCisvLyAgICAgIEZvb01hdGNo
ZXJNYXRjaGVyLgorCitjbGFzcyBNYXRjaFJlc3VsdExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIC8v
IENyZWF0ZXMgYSBsaXN0ZW5lciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdW5kZXJseWluZyBvc3Ry
ZWFtLiAgVGhlCisgIC8vIGxpc3RlbmVyIGRvZXMgbm90IG93biB0aGUgb3N0cmVhbSwgYW5kIGRv
ZXMgbm90IGRlcmVmZXJlbmNlIGl0CisgIC8vIGluIHRoZSBjb25zdHJ1Y3RvciBvciBkZXN0cnVj
dG9yLgorICBleHBsaWNpdCBNYXRjaFJlc3VsdExpc3RlbmVyKDo6c3RkOjpvc3RyZWFtKiBvcykg
OiBzdHJlYW1fKG9zKSB7fQorICB2aXJ0dWFsIH5NYXRjaFJlc3VsdExpc3RlbmVyKCkgPSAwOyAg
Ly8gTWFrZXMgdGhpcyBjbGFzcyBhYnN0cmFjdC4KKworICAvLyBTdHJlYW1zIHggdG8gdGhlIHVu
ZGVybHlpbmcgb3N0cmVhbTsgZG9lcyBub3RoaW5nIGlmIHRoZSBvc3RyZWFtCisgIC8vIGlzIE5V
TEwuCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBNYXRjaFJlc3VsdExpc3RlbmVyJiBvcGVy
YXRvcjw8KGNvbnN0IFQmIHgpIHsKKyAgICBpZiAoc3RyZWFtXyAhPSBudWxscHRyKSAqc3RyZWFt
XyA8PCB4OworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIC8vIFJldHVybnMgdGhlIHVuZGVy
bHlpbmcgb3N0cmVhbS4KKyAgOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSgpIHsgcmV0dXJuIHN0cmVh
bV87IH0KKworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIGlz
IGludGVyZXN0ZWQgaW4gYW4gZXhwbGFuYXRpb24KKyAgLy8gb2YgdGhlIG1hdGNoIHJlc3VsdC4g
IEEgbWF0Y2hlcidzIE1hdGNoQW5kRXhwbGFpbigpIG1ldGhvZCBjYW4gdXNlCisgIC8vIHRoaXMg
aW5mb3JtYXRpb24gdG8gYXZvaWQgZ2VuZXJhdGluZyB0aGUgZXhwbGFuYXRpb24gd2hlbiBubyBv
bmUKKyAgLy8gaW50ZW5kcyB0byBoZWFyIGl0LgorICBib29sIElzSW50ZXJlc3RlZCgpIGNvbnN0
IHsgcmV0dXJuIHN0cmVhbV8gIT0gbnVsbHB0cjsgfQorCisgcHJpdmF0ZToKKyAgOjpzdGQ6Om9z
dHJlYW0qIGNvbnN0IHN0cmVhbV87CisKKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhNYXRjaFJlc3VsdExpc3RlbmVyKTsKK307CisKK2lubGluZSBNYXRjaFJlc3VsdExpc3RlbmVy
Ojp+TWF0Y2hSZXN1bHRMaXN0ZW5lcigpIHsKK30KKworLy8gQW4gaW5zdGFuY2Ugb2YgYSBzdWJj
bGFzcyBvZiB0aGlzIGtub3dzIGhvdyB0byBkZXNjcmliZSBpdHNlbGYgYXMgYQorLy8gbWF0Y2hl
ci4KK2NsYXNzIE1hdGNoZXJEZXNjcmliZXJJbnRlcmZhY2UgeworIHB1YmxpYzoKKyAgdmlydHVh
bCB+TWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSgpIHt9CisKKyAgLy8gRGVzY3JpYmVzIHRoaXMg
bWF0Y2hlciB0byBhbiBvc3RyZWFtLiAgVGhlIGZ1bmN0aW9uIHNob3VsZCBwcmludAorICAvLyBh
IHZlcmIgcGhyYXNlIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9wZXJ0eSBhIHZhbHVlIG1hdGNoaW5n
IHRoaXMKKyAgLy8gbWF0Y2hlciBzaG91bGQgaGF2ZS4gIFRoZSBzdWJqZWN0IG9mIHRoZSB2ZXJi
IHBocmFzZSBpcyB0aGUgdmFsdWUKKyAgLy8gYmVpbmcgbWF0Y2hlZC4gIEZvciBleGFtcGxlLCB0
aGUgRGVzY3JpYmVUbygpIG1ldGhvZCBvZiB0aGUgR3QoNykKKyAgLy8gbWF0Y2hlciBwcmludHMg
ImlzIGdyZWF0ZXIgdGhhbiA3Ii4KKyAgdmlydHVhbCB2b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9z
dHJlYW0qIG9zKSBjb25zdCA9IDA7CisKKyAgLy8gRGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBvZiB0
aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4gIEZvcgorICAvLyBleGFtcGxlLCBpZiB0aGUgZGVz
Y3JpcHRpb24gb2YgdGhpcyBtYXRjaGVyIGlzICJpcyBncmVhdGVyIHRoYW4KKyAgLy8gNyIsIHRo
ZSBuZWdhdGVkIGRlc2NyaXB0aW9uIGNvdWxkIGJlICJpcyBub3QgZ3JlYXRlciB0aGFuIDciLgor
ICAvLyBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBvdmVycmlkZSB0aGlzIHdoZW4gaW1wbGVtZW50
aW5nCisgIC8vIE1hdGNoZXJJbnRlcmZhY2UsIGJ1dCBpdCBpcyBoaWdobHkgYWR2aXNlZCBzbyB0
aGF0IHlvdXIgbWF0Y2hlcgorICAvLyBjYW4gcHJvZHVjZSBnb29kIGVycm9yIG1lc3NhZ2VzLgor
ICB2aXJ0dWFsIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29u
c3QgeworICAgICpvcyA8PCAibm90ICgiOworICAgIERlc2NyaWJlVG8ob3MpOworICAgICpvcyA8
PCAiKSI7CisgIH0KK307CisKKy8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hdGNoZXIuCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE1hdGNoZXJJbnRlcmZhY2UgOiBwdWJsaWMgTWF0
Y2hlckRlc2NyaWJlckludGVyZmFjZSB7CisgcHVibGljOgorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIG1hdGNoZXIgbWF0Y2hlcyB4OyBhbHNvIGV4cGxhaW5zIHRoZQorICAv
LyBtYXRjaCByZXN1bHQgdG8gJ2xpc3RlbmVyJyBpZiBuZWNlc3NhcnkgKHNlZSB0aGUgbmV4dCBw
YXJhZ3JhcGgpLCBpbgorICAvLyB0aGUgZm9ybSBvZiBhIG5vbi1yZXN0cmljdGl2ZSByZWxhdGl2
ZSBjbGF1c2UgKCJ3aGljaCAuLi4iLAorICAvLyAid2hvc2UgLi4uIiwgZXRjKSB0aGF0IGRlc2Ny
aWJlcyB4LiAgRm9yIGV4YW1wbGUsIHRoZQorICAvLyBNYXRjaEFuZEV4cGxhaW4oKSBtZXRob2Qg
b2YgdGhlIFBvaW50ZWUoLi4uKSBtYXRjaGVyIHNob3VsZAorICAvLyBnZW5lcmF0ZSBhbiBleHBs
YW5hdGlvbiBsaWtlICJ3aGljaCBwb2ludHMgdG8gLi4uIi4KKyAgLy8KKyAgLy8gSW1wbGVtZW50
YXRpb25zIG9mIE1hdGNoQW5kRXhwbGFpbigpIHNob3VsZCBhZGQgYW4gZXhwbGFuYXRpb24gb2YK
KyAgLy8gdGhlIG1hdGNoIHJlc3VsdCAqaWYgYW5kIG9ubHkgaWYqIHRoZXkgY2FuIHByb3ZpZGUg
YWRkaXRpb25hbAorICAvLyBpbmZvcm1hdGlvbiB0aGF0J3Mgbm90IGFscmVhZHkgcHJlc2VudCAo
b3Igbm90IG9idmlvdXMpIGluIHRoZQorICAvLyBwcmludC1vdXQgb2YgeCBhbmQgdGhlIG1hdGNo
ZXIncyBkZXNjcmlwdGlvbi4gIFdoZXRoZXIgdGhlIG1hdGNoCisgIC8vIHN1Y2NlZWRzIGlzIG5v
dCBhIGZhY3RvciBpbiBkZWNpZGluZyB3aGV0aGVyIGFuIGV4cGxhbmF0aW9uIGlzCisgIC8vIG5l
ZWRlZCwgYXMgc29tZXRpbWVzIHRoZSBjYWxsZXIgbmVlZHMgdG8gcHJpbnQgYSBmYWlsdXJlIG1l
c3NhZ2UKKyAgLy8gd2hlbiB0aGUgbWF0Y2ggc3VjY2VlZHMgKGUuZy4gd2hlbiB0aGUgbWF0Y2hl
ciBpcyB1c2VkIGluc2lkZQorICAvLyBOb3QoKSkuCisgIC8vCisgIC8vIEZvciBleGFtcGxlLCBh
ICJoYXMgYXQgbGVhc3QgMTAgZWxlbWVudHMiIG1hdGNoZXIgc2hvdWxkIGV4cGxhaW4KKyAgLy8g
d2hhdCB0aGUgYWN0dWFsIGVsZW1lbnQgY291bnQgaXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIG1hdGNo
IHJlc3VsdCwKKyAgLy8gYXMgaXQgaXMgdXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZSByZWFkZXI7
IG9uIHRoZSBvdGhlciBoYW5kLCBhbgorICAvLyAiaXMgZW1wdHkiIG1hdGNoZXIgcHJvYmFibHkg
b25seSBuZWVkcyB0byBleHBsYWluIHdoYXQgdGhlIGFjdHVhbAorICAvLyBzaXplIGlzIHdoZW4g
dGhlIG1hdGNoIGZhaWxzLCBhcyBpdCdzIHJlZHVuZGFudCB0byBzYXkgdGhhdCB0aGUKKyAgLy8g
c2l6ZSBpcyAwIHdoZW4gdGhlIHZhbHVlIGlzIGFscmVhZHkga25vd24gdG8gYmUgZW1wdHkuCisg
IC8vCisgIC8vIFlvdSBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2Qgd2hlbiBkZWZpbmluZyBh
IG5ldyBtYXRjaGVyLgorICAvLworICAvLyBJdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUg
Y2FsbGVyIChHb29nbGUgVGVzdCkgdG8gZ3VhcmFudGVlCisgIC8vIHRoYXQgJ2xpc3RlbmVyJyBp
cyBub3QgTlVMTC4gIFRoaXMgaGVscHMgdG8gc2ltcGxpZnkgYSBtYXRjaGVyJ3MKKyAgLy8gaW1w
bGVtZW50YXRpb24gd2hlbiBpdCBkb2Vzbid0IGNhcmUgYWJvdXQgdGhlIHBlcmZvcm1hbmNlLCBh
cyBpdAorICAvLyBjYW4gdGFsayB0byAnbGlzdGVuZXInIHdpdGhvdXQgY2hlY2tpbmcgaXRzIHZh
bGlkaXR5IGZpcnN0LgorICAvLyBIb3dldmVyLCBpbiBvcmRlciB0byBpbXBsZW1lbnQgZHVtbXkg
bGlzdGVuZXJzIGVmZmljaWVudGx5LAorICAvLyBsaXN0ZW5lci0+c3RyZWFtKCkgbWF5IGJlIE5V
TEwuCisgIHZpcnR1YWwgYm9vbCBNYXRjaEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJlc3VsdExpc3Rl
bmVyKiBsaXN0ZW5lcikgY29uc3QgPSAwOworCisgIC8vIEluaGVyaXRzIHRoZXNlIG1ldGhvZHMg
ZnJvbSBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlOgorICAvLyAgIHZpcnR1YWwgdm9pZCBEZXNj
cmliZVRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgPSAwOworICAvLyAgIHZpcnR1YWwgdm9p
ZCBEZXNjcmliZU5lZ2F0aW9uVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdDsKK307CisKK25h
bWVzcGFjZSBpbnRlcm5hbCB7CisKK3N0cnVjdCBBbnlFcSB7CisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBBLCB0eXBlbmFtZSBCPgorICBib29sIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYg
YikgY29uc3QgeyByZXR1cm4gYSA9PSBiOyB9Cit9Oworc3RydWN0IEFueU5lIHsKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBh
LCBjb25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhICE9IGI7IH0KK307CitzdHJ1Y3QgQW55THQg
eworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQj4KKyAgYm9vbCBvcGVyYXRvcigp
KGNvbnN0IEEmIGEsIGNvbnN0IEImIGIpIGNvbnN0IHsgcmV0dXJuIGEgPCBiOyB9Cit9Oworc3Ry
dWN0IEFueUd0IHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wg
b3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7IHJldHVybiBhID4gYjsg
fQorfTsKK3N0cnVjdCBBbnlMZSB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBC
PgorICBib29sIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1
cm4gYSA8PSBiOyB9Cit9Oworc3RydWN0IEFueUdlIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEEs
IHR5cGVuYW1lIEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBj
b25zdCB7IHJldHVybiBhID49IGI7IH0KK307CisKKy8vIEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVy
IHRoYXQgaWdub3JlcyB0aGUgZXhwbGFuYXRpb24uCitjbGFzcyBEdW1teU1hdGNoUmVzdWx0TGlz
dGVuZXIgOiBwdWJsaWMgTWF0Y2hSZXN1bHRMaXN0ZW5lciB7CisgcHVibGljOgorICBEdW1teU1h
dGNoUmVzdWx0TGlzdGVuZXIoKSA6IE1hdGNoUmVzdWx0TGlzdGVuZXIobnVsbHB0cikge30KKwor
IHByaXZhdGU6CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oRHVtbXlNYXRjaFJl
c3VsdExpc3RlbmVyKTsKK307CisKKy8vIEEgbWF0Y2ggcmVzdWx0IGxpc3RlbmVyIHRoYXQgZm9y
d2FyZHMgdGhlIGV4cGxhbmF0aW9uIHRvIGEgZ2l2ZW4KKy8vIG9zdHJlYW0uICBUaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIE1hdGNoUmVzdWx0TGlzdGVuZXIgaXMKKy8vIHRoYXQgdGhl
IGZvcm1lciBpcyBjb25jcmV0ZS4KK2NsYXNzIFN0cmVhbU1hdGNoUmVzdWx0TGlzdGVuZXIgOiBw
dWJsaWMgTWF0Y2hSZXN1bHRMaXN0ZW5lciB7CisgcHVibGljOgorICBleHBsaWNpdCBTdHJlYW1N
YXRjaFJlc3VsdExpc3RlbmVyKDo6c3RkOjpvc3RyZWFtKiBvcykKKyAgICAgIDogTWF0Y2hSZXN1
bHRMaXN0ZW5lcihvcykge30KKworIHByaXZhdGU6CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5E
X0FTU0lHTl8oU3RyZWFtTWF0Y2hSZXN1bHRMaXN0ZW5lcik7Cit9OworCitzdHJ1Y3QgU2hhcmVk
UGF5bG9hZEJhc2UgeworICBzdGQ6OmF0b21pYzxpbnQ+IHJlZnsxfTsKKyAgdm9pZCBSZWYoKSB7
IHJlZi5mZXRjaF9hZGQoMSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7IH0KKyAgYm9vbCBV
bnJlZigpIHsgcmV0dXJuIHJlZi5mZXRjaF9zdWIoMSwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3Jl
bCkgPT0gMTsgfQorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgU2hhcmVkUGF5
bG9hZCA6IFNoYXJlZFBheWxvYWRCYXNlIHsKKyAgZXhwbGljaXQgU2hhcmVkUGF5bG9hZChjb25z
dCBUJiB2KSA6IHZhbHVlKHYpIHt9CisgIGV4cGxpY2l0IFNoYXJlZFBheWxvYWQoVCYmIHYpIDog
dmFsdWUoc3RkOjptb3ZlKHYpKSB7fQorCisgIHN0YXRpYyB2b2lkIERlc3Ryb3koU2hhcmVkUGF5
bG9hZEJhc2UqIHNoYXJlZCkgeworICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxTaGFyZWRQYXlsb2Fk
Kj4oc2hhcmVkKTsKKyAgfQorCisgIFQgdmFsdWU7Cit9OworCisvLyBBbiBpbnRlcm5hbCBjbGFz
cyBmb3IgaW1wbGVtZW50aW5nIE1hdGNoZXI8VD4sIHdoaWNoIHdpbGwgZGVyaXZlCisvLyBmcm9t
IGl0LiAgV2UgcHV0IGZ1bmN0aW9uYWxpdGllcyBjb21tb24gdG8gYWxsIE1hdGNoZXI8VD4KKy8v
IHNwZWNpYWxpemF0aW9ucyBoZXJlIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIE1hdGNoZXJCYXNlIDogcHJpdmF0ZSBNYXRjaGVyRGVzY3Jp
YmVySW50ZXJmYWNlIHsKKyBwdWJsaWM6CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgbWF0Y2hlciBtYXRjaGVzIHg7IGFsc28gZXhwbGFpbnMgdGhlCisgIC8vIG1hdGNoIHJl
c3VsdCB0byAnbGlzdGVuZXInLgorICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBUJiB4LCBN
YXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3QgeworICAgIEdURVNUX0NIRUNLXyh2
dGFibGVfICE9IG51bGxwdHIpOworICAgIHJldHVybiB2dGFibGVfLT5tYXRjaF9hbmRfZXhwbGFp
bigqdGhpcywgeCwgbGlzdGVuZXIpOworICB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRoaXMgbWF0Y2hlciBtYXRjaGVzIHguCisgIGJvb2wgTWF0Y2hlcyhjb25zdCBUJiB4
KSBjb25zdCB7CisgICAgRHVtbXlNYXRjaFJlc3VsdExpc3RlbmVyIGR1bW15OworICAgIHJldHVy
biBNYXRjaEFuZEV4cGxhaW4oeCwgJmR1bW15KTsKKyAgfQorCisgIC8vIERlc2NyaWJlcyB0aGlz
IG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4KKyAgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFt
KiBvcykgY29uc3QgZmluYWwgeworICAgIEdURVNUX0NIRUNLXyh2dGFibGVfICE9IG51bGxwdHIp
OworICAgIHZ0YWJsZV8tPmRlc2NyaWJlKCp0aGlzLCBvcywgZmFsc2UpOworICB9CisKKyAgLy8g
RGVzY3JpYmVzIHRoZSBuZWdhdGlvbiBvZiB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVhbS4KKyAg
dm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCBmaW5hbCB7
CisgICAgR1RFU1RfQ0hFQ0tfKHZ0YWJsZV8gIT0gbnVsbHB0cik7CisgICAgdnRhYmxlXy0+ZGVz
Y3JpYmUoKnRoaXMsIG9zLCB0cnVlKTsKKyAgfQorCisgIC8vIEV4cGxhaW5zIHdoeSB4IG1hdGNo
ZXMsIG9yIGRvZXNuJ3QgbWF0Y2gsIHRoZSBtYXRjaGVyLgorICB2b2lkIEV4cGxhaW5NYXRjaFJl
c3VsdFRvKGNvbnN0IFQmIHgsIDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAgIFN0cmVh
bU1hdGNoUmVzdWx0TGlzdGVuZXIgbGlzdGVuZXIob3MpOworICAgIE1hdGNoQW5kRXhwbGFpbih4
LCAmbGlzdGVuZXIpOworICB9CisKKyAgLy8gUmV0dXJucyB0aGUgZGVzY3JpYmVyIGZvciB0aGlz
IG1hdGNoZXIgb2JqZWN0OyByZXRhaW5zIG93bmVyc2hpcAorICAvLyBvZiB0aGUgZGVzY3JpYmVy
LCB3aGljaCBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgYWxpdmUgd2hlbgorICAvLyB0aGlzIG1h
dGNoZXIgb2JqZWN0IGlzIGFsaXZlLgorICBjb25zdCBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNl
KiBHZXREZXNjcmliZXIoKSBjb25zdCB7CisgICAgaWYgKHZ0YWJsZV8gPT0gbnVsbHB0cikgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHZ0YWJsZV8tPmdldF9kZXNjcmliZXIoKnRoaXMpOwor
ICB9CisKKyBwcm90ZWN0ZWQ6CisgIE1hdGNoZXJCYXNlKCkgOiB2dGFibGVfKG51bGxwdHIpIHt9
CisKKyAgLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50YXRpb24uCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBVPgorICBleHBsaWNpdCBNYXRjaGVyQmFzZShjb25zdCBNYXRj
aGVySW50ZXJmYWNlPFU+KiBpbXBsKSB7CisgICAgSW5pdChpbXBsKTsKKyAgfQorCisgIHRlbXBs
YXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5j
ZTwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0Y2hl
cj4KKyAgTWF0Y2hlckJhc2UoTSYmIG0pIHsgIC8vIE5PTElOVAorICAgIEluaXQoc3RkOjpmb3J3
YXJkPE0+KG0pKTsKKyAgfQorCisgIE1hdGNoZXJCYXNlKGNvbnN0IE1hdGNoZXJCYXNlJiBvdGhl
cikKKyAgICAgIDogdnRhYmxlXyhvdGhlci52dGFibGVfKSwgYnVmZmVyXyhvdGhlci5idWZmZXJf
KSB7CisgICAgaWYgKElzU2hhcmVkKCkpIGJ1ZmZlcl8uc2hhcmVkLT5SZWYoKTsKKyAgfQorCisg
IE1hdGNoZXJCYXNlJiBvcGVyYXRvcj0oY29uc3QgTWF0Y2hlckJhc2UmIG90aGVyKSB7CisgICAg
aWYgKHRoaXMgPT0gJm90aGVyKSByZXR1cm4gKnRoaXM7CisgICAgRGVzdHJveSgpOworICAgIHZ0
YWJsZV8gPSBvdGhlci52dGFibGVfOworICAgIGJ1ZmZlcl8gPSBvdGhlci5idWZmZXJfOworICAg
IGlmIChJc1NoYXJlZCgpKSBidWZmZXJfLnNoYXJlZC0+UmVmKCk7CisgICAgcmV0dXJuICp0aGlz
OworICB9CisKKyAgTWF0Y2hlckJhc2UoTWF0Y2hlckJhc2UmJiBvdGhlcikKKyAgICAgIDogdnRh
YmxlXyhvdGhlci52dGFibGVfKSwgYnVmZmVyXyhvdGhlci5idWZmZXJfKSB7CisgICAgb3RoZXIu
dnRhYmxlXyA9IG51bGxwdHI7CisgIH0KKworICBNYXRjaGVyQmFzZSYgb3BlcmF0b3I9KE1hdGNo
ZXJCYXNlJiYgb3RoZXIpIHsKKyAgICBpZiAodGhpcyA9PSAmb3RoZXIpIHJldHVybiAqdGhpczsK
KyAgICBEZXN0cm95KCk7CisgICAgdnRhYmxlXyA9IG90aGVyLnZ0YWJsZV87CisgICAgYnVmZmVy
XyA9IG90aGVyLmJ1ZmZlcl87CisgICAgb3RoZXIudnRhYmxlXyA9IG51bGxwdHI7CisgICAgcmV0
dXJuICp0aGlzOworICB9CisKKyAgfk1hdGNoZXJCYXNlKCkgb3ZlcnJpZGUgeyBEZXN0cm95KCk7
IH0KKworIHByaXZhdGU6CisgIHN0cnVjdCBWVGFibGUgeworICAgIGJvb2wgKCptYXRjaF9hbmRf
ZXhwbGFpbikoY29uc3QgTWF0Y2hlckJhc2UmLCBjb25zdCBUJiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIqKTsKKyAgICB2b2lkICgqZGVzY3JpYmUp
KGNvbnN0IE1hdGNoZXJCYXNlJiwgc3RkOjpvc3RyZWFtKiwgYm9vbCBuZWdhdGlvbik7CisgICAg
Ly8gUmV0dXJucyB0aGUgY2FwdHVyZWQgb2JqZWN0IGlmIGl0IGltcGxlbWVudHMgdGhlIGludGVy
ZmFjZSwgb3RoZXJ3aXNlCisgICAgLy8gcmV0dXJucyB0aGUgTWF0Y2hlckJhc2UgaXRzZWxmLgor
ICAgIGNvbnN0IE1hdGNoZXJEZXNjcmliZXJJbnRlcmZhY2UqICgqZ2V0X2Rlc2NyaWJlcikoY29u
c3QgTWF0Y2hlckJhc2UmKTsKKyAgICAvLyBDYWxsZWQgb24gc2hhcmVkIGluc3RhbmNlcyB3aGVu
IHRoZSByZWZlcmVuY2UgY291bnQgcmVhY2hlcyAwLgorICAgIHZvaWQgKCpzaGFyZWRfZGVzdHJv
eSkoU2hhcmVkUGF5bG9hZEJhc2UqKTsKKyAgfTsKKworICBib29sIElzU2hhcmVkKCkgY29uc3Qg
eworICAgIHJldHVybiB2dGFibGVfICE9IG51bGxwdHIgJiYgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ry
b3kgIT0gbnVsbHB0cjsKKyAgfQorCisgIC8vIElmIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIGEg
bGlzdGVuZXIsIGNhbGwgdGhhdC4KKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFA+CisgIHN0YXRpYyBh
dXRvIE1hdGNoQW5kRXhwbGFpbkltcGwoY29uc3QgTWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQmIHZh
bHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVu
ZXIqIGxpc3RlbmVyKQorICAgICAgLT4gZGVjbHR5cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhwbGFp
bih2YWx1ZSwgbGlzdGVuZXItPnN0cmVhbSgpKSkgeworICAgIHJldHVybiBQOjpHZXQobSkuTWF0
Y2hBbmRFeHBsYWluKHZhbHVlLCBsaXN0ZW5lci0+c3RyZWFtKCkpOworICB9CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIFA+CisgIHN0YXRpYyBhdXRvIE1hdGNoQW5kRXhwbGFpbkltcGwoY29uc3Qg
TWF0Y2hlckJhc2UmIG0sIGNvbnN0IFQmIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIqIGxpc3RlbmVyKQorICAgICAgLT4gZGVjbHR5
cGUoUDo6R2V0KG0pLk1hdGNoQW5kRXhwbGFpbih2YWx1ZSwgbGlzdGVuZXIpKSB7CisgICAgcmV0
dXJuIFA6OkdldChtKS5NYXRjaEFuZEV4cGxhaW4odmFsdWUsIGxpc3RlbmVyKTsKKyAgfQorCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBQPgorICBzdGF0aWMgdm9pZCBEZXNjcmliZUltcGwoY29uc3Qg
TWF0Y2hlckJhc2UmIG0sIHN0ZDo6b3N0cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIG5lZ2F0aW9uKSB7CisgICAgaWYgKG5lZ2F0aW9uKSB7CisgICAgICBQOjpHZXQo
bSkuRGVzY3JpYmVOZWdhdGlvblRvKG9zKTsKKyAgICB9IGVsc2UgeworICAgICAgUDo6R2V0KG0p
LkRlc2NyaWJlVG8ob3MpOworICAgIH0KKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgor
ICBzdGF0aWMgY29uc3QgTWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSogR2V0RGVzY3JpYmVySW1w
bCgKKyAgICAgIGNvbnN0IE1hdGNoZXJCYXNlJiBtKSB7CisgICAgLy8gSWYgdGhlIGltcGwgaXMg
YSBNYXRjaGVyRGVzY3JpYmVySW50ZXJmYWNlLCB0aGVuIHJldHVybiBpdC4KKyAgICAvLyBPdGhl
cndpc2UgdXNlIE1hdGNoZXJCYXNlIGl0c2VsZi4KKyAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBp
bXBsZW1lbnQgdGhlIEdldERlc2NyaWJlcigpIGZ1bmN0aW9uIHdpdGhvdXQgc3VwcG9ydAorICAg
IC8vIGZyb20gdGhlIGltcGwsIGJ1dCBzb21lIHVzZXJzIHJlYWxseSB3YW50IHRvIGdldCB0aGVp
ciBpbXBsIGJhY2sgd2hlbgorICAgIC8vIHRoZXkgY2FsbCBHZXREZXNjcmliZXIoKS4KKyAgICAv
LyBXZSB1c2Ugc3RkOjpnZXQgb24gYSB0dXBsZSBhcyBhIHdvcmthcm91bmQgb2Ygbm90IGhhdmlu
ZyBgaWYgY29uc3RleHByYC4KKyAgICByZXR1cm4gc3RkOjpnZXQ8KAorICAgICAgICBzdGQ6Omlz
X2NvbnZlcnRpYmxlPGRlY2x0eXBlKCZQOjpHZXQobSkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IE1hdGNoZXJEZXNjcmliZXJJbnRlcmZhY2UqPjo6dmFsdWUKKyAgICAgICAg
ICAgID8gMQorICAgICAgICAgICAgOiAwKT4oc3RkOjptYWtlX3R1cGxlKCZtLCAmUDo6R2V0KG0p
KSk7CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUD4KKyAgY29uc3QgVlRhYmxlKiBHZXRW
VGFibGUoKSB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBWVGFibGUga1ZUYWJsZSA9IHsmTWF0Y2hB
bmRFeHBsYWluSW1wbDxQPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZEZXNjcmliZUltcGw8UD4sICZHZXREZXNjcmliZXJJbXBsPFA+LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUDo6c2hhcmVkX2Rlc3Ryb3l9OworICAgIHJldHVybiAm
a1ZUYWJsZTsKKyAgfQorCisgIHVuaW9uIEJ1ZmZlciB7CisgICAgLy8gQWRkIHNvbWUgdHlwZXMg
dG8gZ2l2ZSBCdWZmZXIgc29tZSBjb21tb24gYWxpZ25tZW50L3NpemUgdXNlIGNhc2VzLgorICAg
IHZvaWQqIHB0cjsKKyAgICBkb3VibGUgZDsKKyAgICBpbnQ2NF90IGk7CisgICAgLy8gQW5kIGFk
ZCBvbmUgZm9yIHRoZSBvdXQtb2YtbGluZSBjYXNlcy4KKyAgICBTaGFyZWRQYXlsb2FkQmFzZSog
c2hhcmVkOworICB9OworCisgIHZvaWQgRGVzdHJveSgpIHsKKyAgICBpZiAoSXNTaGFyZWQoKSAm
JiBidWZmZXJfLnNoYXJlZC0+VW5yZWYoKSkgeworICAgICAgdnRhYmxlXy0+c2hhcmVkX2Rlc3Ry
b3koYnVmZmVyXy5zaGFyZWQpOworICAgIH0KKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBN
PgorICBzdGF0aWMgY29uc3RleHByIGJvb2wgSXNJbmxpbmVkKCkgeworICAgIHJldHVybiBzaXpl
b2YoTSkgPD0gc2l6ZW9mKEJ1ZmZlcikgJiYgYWxpZ25vZihNKSA8PSBhbGlnbm9mKEJ1ZmZlcikg
JiYKKyAgICAgICAgICAgc3RkOjppc190cml2aWFsbHlfY29weV9jb25zdHJ1Y3RpYmxlPE0+Ojp2
YWx1ZSAmJgorICAgICAgICAgICBzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8TT46OnZh
bHVlOworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0sIGJvb2wgPSBNYXRjaGVyQmFzZTo6
SXNJbmxpbmVkPE0+KCk+CisgIHN0cnVjdCBWYWx1ZVBvbGljeSB7CisgICAgc3RhdGljIGNvbnN0
IE0mIEdldChjb25zdCBNYXRjaGVyQmFzZSYgbSkgeworICAgICAgLy8gV2hlbiBpbmxpbmVkIGFs
b25nIHdpdGggSW5pdCwgbmVlZCB0byBiZSBleHBsaWNpdCB0byBhdm9pZCB2aW9sYXRpbmcKKyAg
ICAgIC8vIHN0cmljdCBhbGlhc2luZyBydWxlcy4KKyAgICAgIGNvbnN0IE0gKnB0ciA9IHN0YXRp
Y19jYXN0PGNvbnN0IE0qPigKKyAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oJm0u
YnVmZmVyXykpOworICAgICAgcmV0dXJuICpwdHI7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIElu
aXQoTWF0Y2hlckJhc2UmIG0sIE0gaW1wbCkgeworICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZv
aWQqPigmbS5idWZmZXJfKSkgTShpbXBsKTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHNoYXJlZF9kZXN0cm95ID0gbnVsbHB0cjsKKyAgfTsKKworICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgTT4KKyAgc3RydWN0IFZhbHVlUG9saWN5PE0sIGZhbHNlPiB7CisgICAgdXNpbmcgU2hhcmVk
ID0gU2hhcmVkUGF5bG9hZDxNPjsKKyAgICBzdGF0aWMgY29uc3QgTSYgR2V0KGNvbnN0IE1hdGNo
ZXJCYXNlJiBtKSB7CisgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkKj4obS5idWZmZXJf
LnNoYXJlZCktPnZhbHVlOworICAgIH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnPgorICAg
IHN0YXRpYyB2b2lkIEluaXQoTWF0Y2hlckJhc2UmIG0sIEFyZyYmIGFyZykgeworICAgICAgbS5i
dWZmZXJfLnNoYXJlZCA9IG5ldyBTaGFyZWQoc3RkOjpmb3J3YXJkPEFyZz4oYXJnKSk7CisgICAg
fQorICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzaGFyZWRfZGVzdHJveSA9ICZTaGFyZWQ6OkRl
c3Ryb3k7CisgIH07CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIGJvb2wgQj4KKyAgc3RydWN0
IFZhbHVlUG9saWN5PGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8VT4qLCBCPiB7CisgICAgdXNpbmcg
TSA9IGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8VT47CisgICAgdXNpbmcgU2hhcmVkID0gU2hhcmVk
UGF5bG9hZDxzdGQ6OnVuaXF1ZV9wdHI8TT4+OworICAgIHN0YXRpYyBjb25zdCBNJiBHZXQoY29u
c3QgTWF0Y2hlckJhc2UmIG0pIHsKKyAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8U2hhcmVkKj4o
bS5idWZmZXJfLnNoYXJlZCktPnZhbHVlOworICAgIH0KKyAgICBzdGF0aWMgdm9pZCBJbml0KE1h
dGNoZXJCYXNlJiBtLCBNKiBpbXBsKSB7CisgICAgICBtLmJ1ZmZlcl8uc2hhcmVkID0gbmV3IFNo
YXJlZChzdGQ6OnVuaXF1ZV9wdHI8TT4oaW1wbCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb25z
dGV4cHIgYXV0byBzaGFyZWRfZGVzdHJveSA9ICZTaGFyZWQ6OkRlc3Ryb3k7CisgIH07CisKKyAg
dGVtcGxhdGUgPHR5cGVuYW1lIE0+CisgIHZvaWQgSW5pdChNJiYgbSkgeworICAgIHVzaW5nIE1N
ID0gdHlwZW5hbWUgc3RkOjpkZWNheTxNPjo6dHlwZTsKKyAgICB1c2luZyBQb2xpY3kgPSBWYWx1
ZVBvbGljeTxNTT47CisgICAgdnRhYmxlXyA9IEdldFZUYWJsZTxQb2xpY3k+KCk7CisgICAgUG9s
aWN5OjpJbml0KCp0aGlzLCBzdGQ6OmZvcndhcmQ8TT4obSkpOworICB9CisKKyAgY29uc3QgVlRh
YmxlKiB2dGFibGVfOworICBCdWZmZXIgYnVmZmVyXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAorCisvLyBBIE1hdGNoZXI8VD4gaXMgYSBjb3B5YWJsZSBhbmQgSU1NVVRBQkxFIChl
eGNlcHQgYnkgYXNzaWdubWVudCkKKy8vIG9iamVjdCB0aGF0IGNhbiBjaGVjayB3aGV0aGVyIGEg
dmFsdWUgb2YgdHlwZSBUIG1hdGNoZXMuICBUaGUKKy8vIGltcGxlbWVudGF0aW9uIG9mIE1hdGNo
ZXI8VD4gaXMganVzdCBhIHN0ZDo6c2hhcmVkX3B0ciB0byBjb25zdAorLy8gTWF0Y2hlckludGVy
ZmFjZTxUPi4gIERvbid0IGluaGVyaXQgZnJvbSBNYXRjaGVyIQordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CitjbGFzcyBNYXRjaGVyIDogcHVibGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxUPiB7Cisg
cHVibGljOgorICAvLyBDb25zdHJ1Y3RzIGEgbnVsbCBtYXRjaGVyLiAgTmVlZGVkIGZvciBzdG9y
aW5nIE1hdGNoZXIgb2JqZWN0cyBpbiBTVEwKKyAgLy8gY29udGFpbmVycy4gIEEgZGVmYXVsdC1j
b25zdHJ1Y3RlZCBtYXRjaGVyIGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3UKKyAgLy8gY2Fu
bm90IHVzZSBpdCB1bnRpbCBhIHZhbGlkIHZhbHVlIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGl0Lgor
ICBleHBsaWNpdCBNYXRjaGVyKCkge30gIC8vIE5PTElOVAorCisgIC8vIENvbnN0cnVjdHMgYSBt
YXRjaGVyIGZyb20gaXRzIGltcGxlbWVudGF0aW9uLgorICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0
IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3QgVCY+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8VD4oaW1wbCkge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KKyAgZXhwbGlj
aXQgTWF0Y2hlcigKKyAgICAgIGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8VT4qIGltcGwsCisgICAg
ICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19zYW1lPFUsIGNvbnN0IFUmPjo6dmFs
dWU+Ojp0eXBlKiA9CisgICAgICAgICAgbnVsbHB0cikKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNo
ZXJCYXNlPFQ+KGltcGwpIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0g
dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSA6IGludGVy
bmFsOjpNYXRjaGVyQmFzZTxUPihzdGQ6OmZvcndhcmQ8TT4obSkpIHt9ICAvLyBOT0xJTlQKKwor
ICAvLyBJbXBsaWNpdCBjb25zdHJ1Y3RvciBoZXJlIGFsbG93cyBwZW9wbGUgdG8gd3JpdGUKKyAg
Ly8gRVhQRUNUX0NBTEwoZm9vLCBCYXIoNSkpIGluc3RlYWQgb2YgRVhQRUNUX0NBTEwoZm9vLCBC
YXIoRXEoNSkpKSBzb21ldGltZXMKKyAgTWF0Y2hlcihUIHZhbHVlKTsgIC8vIE5PTElOVAorfTsK
KworLy8gVGhlIGZvbGxvd2luZyB0d28gc3BlY2lhbGl6YXRpb25zIGFsbG93IHRoZSB1c2VyIHRv
IHdyaXRlIHN0cgorLy8gaW5zdGVhZCBvZiBFcShzdHIpIGFuZCAiZm9vIiBpbnN0ZWFkIG9mIEVx
KCJmb28iKSB3aGVuIGEgc3RkOjpzdHJpbmcKKy8vIG1hdGNoZXIgaXMgZXhwZWN0ZWQuCit0ZW1w
bGF0ZSA8PgorY2xhc3MgR1RFU1RfQVBJXyBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4KKyAg
ICA6IHB1YmxpYyBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiB7Cisg
cHVibGljOgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNo
ZXJJbnRlcmZhY2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6
Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6c3RyaW5nJj4oaW1wbCkge30KKworICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgTSwgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTT46OnR5cGU6OmlzX2d0ZXN0X21hdGNoZXI+Cisg
IE1hdGNoZXIoTSYmIG0pICAvLyBOT0xJTlQKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNl
PGNvbnN0IHN0ZDo6c3RyaW5nJj4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93
cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hl
cmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0
ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0
ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3Qg
Y2hhciogcyk7ICAvLyBOT0xJTlQKK307CisKK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElf
IE1hdGNoZXI8c3RkOjpzdHJpbmc+CisgICAgOiBwdWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJCYXNl
PHN0ZDo6c3RyaW5nPiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBN
YXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3Qgc3RkOjpzdHJpbmcmPiogaW1wbCkK
KyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPHN0ZDo6c3RyaW5nPihpbXBsKSB7fQorICBl
eHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8c3RkOjpzdHJpbmc+KiBpbXBs
KQorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8c3RkOjpzdHJpbmc+KGltcGwpIHt9CisK
KyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVf
cmVmZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+Ojp0eXBlOjppc19ndGVz
dF9tYXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSAgLy8gTk9MSU5UCisgICAgICA6IGludGVybmFs
OjpNYXRjaGVyQmFzZTxzdGQ6OnN0cmluZz4oc3RkOjpmb3J3YXJkPE0+KG0pKSB7fQorCisgIC8v
IEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1l
cywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hlcihjb25zdCBz
dGQ6OnN0cmluZyYgcyk7ICAvLyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3Jp
dGUgImZvbyIgaW5zdGVhZCBvZiBFcSgiZm9vIikgc29tZXRpbWVzLgorICBNYXRjaGVyKGNvbnN0
IGNoYXIqIHMpOyAgLy8gTk9MSU5UCit9OworCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklO
R19WSUVXCisvLyBUaGUgZm9sbG93aW5nIHR3byBzcGVjaWFsaXphdGlvbnMgYWxsb3cgdGhlIHVz
ZXIgdG8gd3JpdGUgc3RyCisvLyBpbnN0ZWFkIG9mIEVxKHN0cikgYW5kICJmb28iIGluc3RlYWQg
b2YgRXEoImZvbyIpIHdoZW4gYSBhYnNsOjpzdHJpbmdfdmlldworLy8gbWF0Y2hlciBpcyBleHBl
Y3RlZC4KK3RlbXBsYXRlIDw+CitjbGFzcyBHVEVTVF9BUElfIE1hdGNoZXI8Y29uc3QgaW50ZXJu
YWw6OlN0cmluZ1ZpZXcmPgorICAgIDogcHVibGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxjb25z
dCBpbnRlcm5hbDo6U3RyaW5nVmlldyY+IHsKKyBwdWJsaWM6CisgIE1hdGNoZXIoKSB7fQorCisg
IGV4cGxpY2l0IE1hdGNoZXIoY29uc3QgTWF0Y2hlckludGVyZmFjZTxjb25zdCBpbnRlcm5hbDo6
U3RyaW5nVmlldyY+KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3Qg
aW50ZXJuYWw6OlN0cmluZ1ZpZXcmPihpbXBsKSB7fQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBN
LCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hlcihN
JiYgbSkgIC8vIE5PTElOVAorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50
ZXJuYWw6OlN0cmluZ1ZpZXcmPihzdGQ6OmZvcndhcmQ8TT4obSkpIHsKKyAgfQorCisgIC8vIEFs
bG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5zdGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywg
d2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpzdHJpbmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0
IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElOVAorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3
cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29u
c3QgY2hhciogcyk7ICAvLyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFzcyBh
YnNsOjpzdHJpbmdfdmlld3Mgb3Igc3RkOjpzdHJpbmdfdmlld3MgZGlyZWN0bHkuCisgIE1hdGNo
ZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgcyk7ICAvLyBOT0xJTlQKK307CisKK3RlbXBsYXRlIDw+
CitjbGFzcyBHVEVTVF9BUElfIE1hdGNoZXI8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+CisgICAgOiBw
dWJsaWMgaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGludGVybmFsOjpTdHJpbmdWaWV3PiB7CisgcHVi
bGljOgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJ
bnRlcmZhY2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPiogaW1wbCkKKyAgICAgIDogaW50
ZXJuYWw6Ok1hdGNoZXJCYXNlPGludGVybmFsOjpTdHJpbmdWaWV3PihpbXBsKSB7fQorICBleHBs
aWNpdCBNYXRjaGVyKGNvbnN0IE1hdGNoZXJJbnRlcmZhY2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+
KiBpbXBsKQorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8aW50ZXJuYWw6OlN0cmluZ1Zp
ZXc+KGltcGwpIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lID0gdHlwZW5h
bWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0+
Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSAgLy8gTk9MSU5UCisg
ICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxpbnRlcm5hbDo6U3RyaW5nVmlldz4oc3RkOjpm
b3J3YXJkPE0+KG0pKSB7fQorCisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSBzdHIgaW5z
dGVhZCBvZiBFcShzdHIpIHNvbWV0aW1lcywgd2hlcmUKKyAgLy8gc3RyIGlzIGEgc3RkOjpzdHJp
bmcgb2JqZWN0LgorICBNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKTsgIC8vIE5PTElOVAor
CisgIC8vIEFsbG93cyB0aGUgdXNlciB0byB3cml0ZSAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28i
KSBzb21ldGltZXMuCisgIE1hdGNoZXIoY29uc3QgY2hhciogcyk7ICAvLyBOT0xJTlQKKworICAv
LyBBbGxvd3MgdGhlIHVzZXIgdG8gcGFzcyBhYnNsOjpzdHJpbmdfdmlld3Mgb3Igc3RkOjpzdHJp
bmdfdmlld3MgZGlyZWN0bHkuCisgIE1hdGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgcyk7ICAv
LyBOT0xJTlQKK307CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwor
CisvLyBQcmludHMgYSBtYXRjaGVyIGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LgordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBv
cywgY29uc3QgTWF0Y2hlcjxUPiYgbWF0Y2hlcikgeworICBtYXRjaGVyLkRlc2NyaWJlVG8oJm9z
KTsKKyAgcmV0dXJuIG9zOworfQorCisvLyBUaGUgUG9seW1vcnBoaWNNYXRjaGVyIGNsYXNzIHRl
bXBsYXRlIG1ha2VzIGl0IGVhc3kgdG8gaW1wbGVtZW50IGEKKy8vIHBvbHltb3JwaGljIG1hdGNo
ZXIgKGkuZS4gYSBtYXRjaGVyIHRoYXQgY2FuIG1hdGNoIHZhbHVlcyBvZiBtb3JlCisvLyB0aGFu
IG9uZSB0eXBlLCBlLmcuIEVxKG4pIGFuZCBOb3ROdWxsKCkpLgorLy8KKy8vIFRvIGRlZmluZSBh
IHBvbHltb3JwaGljIG1hdGNoZXIsIGEgdXNlciBzaG91bGQgcHJvdmlkZSBhbiBJbXBsCisvLyBj
bGFzcyB0aGF0IGhhcyBhIERlc2NyaWJlVG8oKSBtZXRob2QgYW5kIGEgRGVzY3JpYmVOZWdhdGlv
blRvKCkKKy8vIG1ldGhvZCwgYW5kIGRlZmluZSBhIG1lbWJlciBmdW5jdGlvbiAob3IgbWVtYmVy
IGZ1bmN0aW9uIHRlbXBsYXRlKQorLy8KKy8vICAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3Qg
VmFsdWUmIHZhbHVlLAorLy8gICAgICAgICAgICAgICAgICAgICAgICBNYXRjaFJlc3VsdExpc3Rl
bmVyKiBsaXN0ZW5lcikgY29uc3Q7CisvLworLy8gU2VlIHRoZSBkZWZpbml0aW9uIG9mIE5vdE51
bGwoKSBmb3IgYSBjb21wbGV0ZSBleGFtcGxlLgordGVtcGxhdGUgPGNsYXNzIEltcGw+CitjbGFz
cyBQb2x5bW9ycGhpY01hdGNoZXIgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgUG9seW1vcnBoaWNN
YXRjaGVyKGNvbnN0IEltcGwmIGFuX2ltcGwpIDogaW1wbF8oYW5faW1wbCkge30KKworICAvLyBS
ZXR1cm5zIGEgbXV0YWJsZSByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgbWF0Y2hlcgorICAv
LyBpbXBsZW1lbnRhdGlvbiBvYmplY3QuCisgIEltcGwmIG11dGFibGVfaW1wbCgpIHsgcmV0dXJu
IGltcGxfOyB9CisKKyAgLy8gUmV0dXJucyBhbiBpbW11dGFibGUgcmVmZXJlbmNlIHRvIHRoZSB1
bmRlcmx5aW5nIG1hdGNoZXIKKyAgLy8gaW1wbGVtZW50YXRpb24gb2JqZWN0LgorICBjb25zdCBJ
bXBsJiBpbXBsKCkgY29uc3QgeyByZXR1cm4gaW1wbF87IH0KKworICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgb3BlcmF0b3IgTWF0Y2hlcjxUPigpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hl
cjxUPihuZXcgTW9ub21vcnBoaWNJbXBsPGNvbnN0IFQmPihpbXBsXykpOworICB9CisKKyBwcml2
YXRlOgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgY2xhc3MgTW9ub21vcnBoaWNJbXBsIDog
cHVibGljIE1hdGNoZXJJbnRlcmZhY2U8VD4geworICAgcHVibGljOgorICAgIGV4cGxpY2l0IE1v
bm9tb3JwaGljSW1wbChjb25zdCBJbXBsJiBpbXBsKSA6IGltcGxfKGltcGwpIHt9CisKKyAgICB2
b2lkIERlc2NyaWJlVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCBvdmVycmlkZSB7IGltcGxf
LkRlc2NyaWJlVG8ob3MpOyB9CisKKyAgICB2b2lkIERlc2NyaWJlTmVnYXRpb25Ubyg6OnN0ZDo6
b3N0cmVhbSogb3MpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIGltcGxfLkRlc2NyaWJlTmVnYXRp
b25Ubyhvcyk7CisgICAgfQorCisgICAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oVCB4LCBNYXRjaFJl
c3VsdExpc3RlbmVyKiBsaXN0ZW5lcikgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIGlt
cGxfLk1hdGNoQW5kRXhwbGFpbih4LCBsaXN0ZW5lcik7CisgICAgfQorCisgICBwcml2YXRlOgor
ICAgIGNvbnN0IEltcGwgaW1wbF87CisgIH07CisKKyAgSW1wbCBpbXBsXzsKK307CisKKy8vIENy
ZWF0ZXMgYSBtYXRjaGVyIGZyb20gaXRzIGltcGxlbWVudGF0aW9uLgorLy8gREVQUkVDQVRFRDog
RXNwZWNpYWxseSBpbiB0aGUgZ2VuZXJpYyBjb2RlLCBwcmVmZXI6CisvLyAgIE1hdGNoZXI8VD4o
bmV3IE15TWF0Y2hlckltcGw8Y29uc3QgVCY+KC4uLikpOworLy8KKy8vIE1ha2VNYXRjaGVyIG1h
eSBjcmVhdGUgYSBNYXRjaGVyIHRoYXQgYWNjZXB0cyBpdHMgYXJndW1lbnQgYnkgdmFsdWUsIHdo
aWNoCisvLyBsZWFkcyB0byB1bm5lY2Vzc2FyeSBjb3BpZXMgJiBsYWNrIG9mIHN1cHBvcnQgZm9y
IG5vbi1jb3B5YWJsZSB0eXBlcy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIE1hdGNo
ZXI8VD4gTWFrZU1hdGNoZXIoY29uc3QgTWF0Y2hlckludGVyZmFjZTxUPiogaW1wbCkgeworICBy
ZXR1cm4gTWF0Y2hlcjxUPihpbXBsKTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1h
dGNoZXIgZnJvbSBpdHMgaW1wbGVtZW50YXRpb24uICBUaGlzIGlzCisvLyBlYXNpZXIgdG8gdXNl
IHRoYW4gdGhlIFBvbHltb3JwaGljTWF0Y2hlcjxJbXBsPiBjb25zdHJ1Y3RvciBhcyBpdAorLy8g
ZG9lc24ndCByZXF1aXJlIHlvdSB0byBleHBsaWNpdGx5IHdyaXRlIHRoZSB0ZW1wbGF0ZSBhcmd1
bWVudCwgZS5nLgorLy8KKy8vICAgTWFrZVBvbHltb3JwaGljTWF0Y2hlcihmb28pOworLy8gdnMK
Ky8vICAgUG9seW1vcnBoaWNNYXRjaGVyPFR5cGVPZkZvbz4oZm9vKTsKK3RlbXBsYXRlIDxjbGFz
cyBJbXBsPgoraW5saW5lIFBvbHltb3JwaGljTWF0Y2hlcjxJbXBsPiBNYWtlUG9seW1vcnBoaWNN
YXRjaGVyKGNvbnN0IEltcGwmIGltcGwpIHsKKyAgcmV0dXJuIFBvbHltb3JwaGljTWF0Y2hlcjxJ
bXBsPihpbXBsKTsKK30KKworbmFtZXNwYWNlIGludGVybmFsIHsKKy8vIEltcGxlbWVudHMgYSBt
YXRjaGVyIHRoYXQgY29tcGFyZXMgYSBnaXZlbiB2YWx1ZSB3aXRoIGEKKy8vIHByZS1zdXBwbGll
ZCB2YWx1ZSB1c2luZyBvbmUgb2YgdGhlID09LCA8PSwgPCwgZXRjLCBvcGVyYXRvcnMuICBUaGUK
Ky8vIHR3byB2YWx1ZXMgYmVpbmcgY29tcGFyZWQgZG9uJ3QgaGF2ZSB0byBoYXZlIHRoZSBzYW1l
IHR5cGUuCisvLworLy8gVGhlIG1hdGNoZXIgZGVmaW5lZCBoZXJlIGlzIHBvbHltb3JwaGljIChm
b3IgZXhhbXBsZSwgRXEoNSkgY2FuIGJlCisvLyB1c2VkIHRvIG1hdGNoIGFuIGludCwgYSBzaG9y
dCwgYSBkb3VibGUsIGV0YykuICBUaGVyZWZvcmUgd2UgdXNlCisvLyBhIHRlbXBsYXRlIHR5cGUg
Y29udmVyc2lvbiBvcGVyYXRvciBpbiB0aGUgaW1wbGVtZW50YXRpb24uCisvLworLy8gVGhlIGZv
bGxvd2luZyB0ZW1wbGF0ZSBkZWZpbml0aW9uIGFzc3VtZXMgdGhhdCB0aGUgUmhzIHBhcmFtZXRl
ciBpcworLy8gYSAiYmFyZSIgdHlwZSAoaS5lLiBuZWl0aGVyICdjb25zdCBUJyBub3IgJ1QmJyku
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgRCwgdHlwZW5hbWUgUmhzLCB0eXBlbmFtZSBPcD4KK2NsYXNz
IENvbXBhcmlzb25CYXNlIHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IENvbXBhcmlzb25CYXNlKGNv
bnN0IFJocyYgcmhzKSA6IHJoc18ocmhzKSB7fQorCisgIHVzaW5nIGlzX2d0ZXN0X21hdGNoZXIg
PSB2b2lkOworCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBMaHM+CisgIGJvb2wgTWF0Y2hBbmRFeHBs
YWluKGNvbnN0IExocyYgbGhzLCBzdGQ6Om9zdHJlYW0qKSBjb25zdCB7CisgICAgcmV0dXJuIE9w
KCkobGhzLCBVbndyYXAocmhzXykpOworICB9CisgIHZvaWQgRGVzY3JpYmVUbyhzdGQ6Om9zdHJl
YW0qIG9zKSBjb25zdCB7CisgICAgKm9zIDw8IEQ6OkRlc2MoKSA8PCAiICI7CisgICAgVW5pdmVy
c2FsUHJpbnQoVW53cmFwKHJoc18pLCBvcyk7CisgIH0KKyAgdm9pZCBEZXNjcmliZU5lZ2F0aW9u
VG8oc3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAgICpvcyA8PCBEOjpOZWdhdGVkRGVzYygp
IDw8ICIgIjsKKyAgICBVbml2ZXJzYWxQcmludChVbndyYXAocmhzXyksIG9zKTsKKyAgfQorCisg
cHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgIHN0YXRpYyBjb25zdCBUJiBVbndy
YXAoY29uc3QgVCYgdikgeworICAgIHJldHVybiB2OworICB9CisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgorICBzdGF0aWMgY29uc3QgVCYgVW53cmFwKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4g
dikgeworICAgIHJldHVybiB2OworICB9CisKKyAgUmhzIHJoc187Cit9OworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgUmhzPgorY2xhc3MgRXFNYXRjaGVyIDogcHVibGljIENvbXBhcmlzb25CYXNlPEVx
TWF0Y2hlcjxSaHM+LCBSaHMsIEFueUVxPiB7CisgcHVibGljOgorICBleHBsaWNpdCBFcU1hdGNo
ZXIoY29uc3QgUmhzJiByaHMpCisgICAgICA6IENvbXBhcmlzb25CYXNlPEVxTWF0Y2hlcjxSaHM+
LCBSaHMsIEFueUVxPihyaHMpIHsgfQorICBzdGF0aWMgY29uc3QgY2hhciogRGVzYygpIHsgcmV0
dXJuICJpcyBlcXVhbCB0byI7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkg
eyByZXR1cm4gImlzbid0IGVxdWFsIHRvIjsgfQorfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+
CitjbGFzcyBOZU1hdGNoZXIgOiBwdWJsaWMgQ29tcGFyaXNvbkJhc2U8TmVNYXRjaGVyPFJocz4s
IFJocywgQW55TmU+IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IE5lTWF0Y2hlcihjb25zdCBSaHMm
IHJocykKKyAgICAgIDogQ29tcGFyaXNvbkJhc2U8TmVNYXRjaGVyPFJocz4sIFJocywgQW55TmU+
KHJocykgeyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBEZXNjKCkgeyByZXR1cm4gImlzbid0IGVx
dWFsIHRvIjsgfQorICBzdGF0aWMgY29uc3QgY2hhciogTmVnYXRlZERlc2MoKSB7IHJldHVybiAi
aXMgZXF1YWwgdG8iOyB9Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIEx0TWF0
Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxMdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMdD4g
eworIHB1YmxpYzoKKyAgZXhwbGljaXQgTHRNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAg
OiBDb21wYXJpc29uQmFzZTxMdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMdD4ocmhzKSB7IH0KKyAg
c3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgPCI7IH0KKyAgc3RhdGljIGNv
bnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzbid0IDwiOyB9Cit9OwordGVtcGxh
dGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIEd0TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFz
ZTxHdE1hdGNoZXI8UmhzPiwgUmhzLCBBbnlHdD4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgR3RN
YXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxHdE1hdGNoZXI8
UmhzPiwgUmhzLCBBbnlHdD4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7
IHJldHVybiAiaXMgPiI7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyBy
ZXR1cm4gImlzbid0ID4iOyB9Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNzIExl
TWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxMZU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlM
ZT4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgTGVNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQorICAg
ICAgOiBDb21wYXJpc29uQmFzZTxMZU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlMZT4ocmhzKSB7IH0K
KyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgPD0iOyB9CisgIHN0YXRp
YyBjb25zdCBjaGFyKiBOZWdhdGVkRGVzYygpIHsgcmV0dXJuICJpc24ndCA8PSI7IH0KK307Cit0
ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgorY2xhc3MgR2VNYXRjaGVyIDogcHVibGljIENvbXBhcmlz
b25CYXNlPEdlTWF0Y2hlcjxSaHM+LCBSaHMsIEFueUdlPiB7CisgcHVibGljOgorICBleHBsaWNp
dCBHZU1hdGNoZXIoY29uc3QgUmhzJiByaHMpCisgICAgICA6IENvbXBhcmlzb25CYXNlPEdlTWF0
Y2hlcjxSaHM+LCBSaHMsIEFueUdlPihyaHMpIHsgfQorICBzdGF0aWMgY29uc3QgY2hhciogRGVz
YygpIHsgcmV0dXJuICJpcyA+PSI7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNj
KCkgeyByZXR1cm4gImlzbid0ID49IjsgfQorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5
cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0ZDo6aXNfY29uc3RydWN0aWJsZTxzdGQ6OnN0cmluZywgVD46OnZhbHVlPjo6dHlwZT4K
K3VzaW5nIFN0cmluZ0xpa2UgPSBUOworCisvLyBJbXBsZW1lbnRzIHBvbHltb3JwaGljIG1hdGNo
ZXJzIE1hdGNoZXNSZWdleChyZWdleCkgYW5kCisvLyBDb250YWluc1JlZ2V4KHJlZ2V4KSwgd2hp
Y2ggY2FuIGJlIHVzZWQgYXMgYSBNYXRjaGVyPFQ+IGFzIGxvbmcgYXMKKy8vIFQgY2FuIGJlIGNv
bnZlcnRlZCB0byBhIHN0cmluZy4KK2NsYXNzIE1hdGNoZXNSZWdleE1hdGNoZXIgeworIHB1Ymxp
YzoKKyAgTWF0Y2hlc1JlZ2V4TWF0Y2hlcihjb25zdCBSRSogcmVnZXgsIGJvb2wgZnVsbF9tYXRj
aCkKKyAgICAgIDogcmVnZXhfKHJlZ2V4KSwgZnVsbF9tYXRjaF8oZnVsbF9tYXRjaCkge30KKwor
I2lmIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworICBib29sIE1hdGNoQW5kRXhwbGFp
bihjb25zdCBpbnRlcm5hbDo6U3RyaW5nVmlldyYgcywKKyAgICAgICAgICAgICAgICAgICAgICAg
TWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gTWF0Y2hB
bmRFeHBsYWluKHN0ZDo6c3RyaW5nKHMpLCBsaXN0ZW5lcik7CisgIH0KKyNlbmRpZiAgLy8gR1RF
U1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisKKyAgLy8gQWNjZXB0cyBwb2ludGVyIHR5cGVz
LCBwYXJ0aWN1bGFybHk6CisgIC8vICAgY29uc3QgY2hhcioKKyAgLy8gICBjaGFyKgorICAvLyAg
IGNvbnN0IHdjaGFyX3QqCisgIC8vICAgd2NoYXJfdCoKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgorICBib29sIE1hdGNoQW5kRXhwbGFpbihDaGFyVHlwZSogcywgTWF0Y2hSZXN1bHRM
aXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gcyAhPSBudWxscHRyICYmIE1h
dGNoQW5kRXhwbGFpbihzdGQ6OnN0cmluZyhzKSwgbGlzdGVuZXIpOworICB9CisKKyAgLy8gTWF0
Y2hlcyBhbnl0aGluZyB0aGF0IGNhbiBjb252ZXJ0IHRvIHN0ZDo6c3RyaW5nLgorICAvLworICAv
LyBUaGlzIGlzIGEgdGVtcGxhdGUsIG5vdCBqdXN0IGEgcGxhaW4gZnVuY3Rpb24gd2l0aCBjb25z
dCBzdGQ6OnN0cmluZyYsCisgIC8vIGJlY2F1c2UgYWJzbDo6c3RyaW5nX3ZpZXcgaGFzIHNvbWUg
aW50ZXJmZXJpbmcgbm9uLWV4cGxpY2l0IGNvbnN0cnVjdG9ycy4KKyAgdGVtcGxhdGUgPGNsYXNz
IE1hdGNoZWVTdHJpbmdUeXBlPgorICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBNYXRjaGVl
U3RyaW5nVHlwZSYgcywKKyAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5l
ciogLyogbGlzdGVuZXIgKi8pIGNvbnN0IHsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgczIocyk7
CisgICAgcmV0dXJuIGZ1bGxfbWF0Y2hfID8gUkU6OkZ1bGxNYXRjaChzMiwgKnJlZ2V4XykKKyAg
ICAgICAgICAgICAgICAgICAgICAgOiBSRTo6UGFydGlhbE1hdGNoKHMyLCAqcmVnZXhfKTsKKyAg
fQorCisgIHZvaWQgRGVzY3JpYmVUbyg6OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKyAgICAq
b3MgPDwgKGZ1bGxfbWF0Y2hfID8gIm1hdGNoZXMiIDogImNvbnRhaW5zIikgPDwgIiByZWd1bGFy
IGV4cHJlc3Npb24gIjsKKyAgICBVbml2ZXJzYWxQcmludGVyPHN0ZDo6c3RyaW5nPjo6UHJpbnQo
cmVnZXhfLT5wYXR0ZXJuKCksIG9zKTsKKyAgfQorCisgIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRv
KDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAgICpvcyA8PCAiZG9lc24ndCAiIDw8IChm
dWxsX21hdGNoXyA/ICJtYXRjaCIgOiAiY29udGFpbiIpCisgICAgICAgIDw8ICIgcmVndWxhciBl
eHByZXNzaW9uICI7CisgICAgVW5pdmVyc2FsUHJpbnRlcjxzdGQ6OnN0cmluZz46OlByaW50KHJl
Z2V4Xy0+cGF0dGVybigpLCBvcyk7CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IHN0ZDo6c2hh
cmVkX3B0cjxjb25zdCBSRT4gcmVnZXhfOworICBjb25zdCBib29sIGZ1bGxfbWF0Y2hfOworfTsK
K30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgZnVs
bHkgbWF0Y2hlcyByZWd1bGFyIGV4cHJlc3Npb24gJ3JlZ2V4Jy4KKy8vIFRoZSBtYXRjaGVyIHRh
a2VzIG93bmVyc2hpcCBvZiAncmVnZXgnLgoraW5saW5lIFBvbHltb3JwaGljTWF0Y2hlcjxpbnRl
cm5hbDo6TWF0Y2hlc1JlZ2V4TWF0Y2hlcj4gTWF0Y2hlc1JlZ2V4KAorICAgIGNvbnN0IGludGVy
bmFsOjpSRSogcmVnZXgpIHsKKyAgcmV0dXJuIE1ha2VQb2x5bW9ycGhpY01hdGNoZXIoaW50ZXJu
YWw6Ok1hdGNoZXNSZWdleE1hdGNoZXIocmVnZXgsIHRydWUpKTsKK30KK3RlbXBsYXRlIDx0eXBl
bmFtZSBUID0gc3RkOjpzdHJpbmc+CitQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNo
ZXNSZWdleE1hdGNoZXI+IE1hdGNoZXNSZWdleCgKKyAgICBjb25zdCBpbnRlcm5hbDo6U3RyaW5n
TGlrZTxUPiYgcmVnZXgpIHsKKyAgcmV0dXJuIE1hdGNoZXNSZWdleChuZXcgaW50ZXJuYWw6OlJF
KHN0ZDo6c3RyaW5nKHJlZ2V4KSkpOworfQorCisvLyBNYXRjaGVzIGEgc3RyaW5nIHRoYXQgY29u
dGFpbnMgcmVndWxhciBleHByZXNzaW9uICdyZWdleCcuCisvLyBUaGUgbWF0Y2hlciB0YWtlcyBv
d25lcnNoaXAgb2YgJ3JlZ2V4Jy4KK2lubGluZSBQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6
Ok1hdGNoZXNSZWdleE1hdGNoZXI+IENvbnRhaW5zUmVnZXgoCisgICAgY29uc3QgaW50ZXJuYWw6
OlJFKiByZWdleCkgeworICByZXR1cm4gTWFrZVBvbHltb3JwaGljTWF0Y2hlcihpbnRlcm5hbDo6
TWF0Y2hlc1JlZ2V4TWF0Y2hlcihyZWdleCwgZmFsc2UpKTsKK30KK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUID0gc3RkOjpzdHJpbmc+CitQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNS
ZWdleE1hdGNoZXI+IENvbnRhaW5zUmVnZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ0xp
a2U8VD4mIHJlZ2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4KG5ldyBpbnRlcm5hbDo6UkUo
c3RkOjpzdHJpbmcocmVnZXgpKSk7Cit9CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRj
aGVyIHRoYXQgbWF0Y2hlcyBhbnl0aGluZyBlcXVhbCB0byB4LgorLy8gTm90ZTogaWYgdGhlIHBh
cmFtZXRlciBvZiBFcSgpIHdlcmUgZGVjbGFyZWQgYXMgY29uc3QgVCYsIEVxKCJmb28iKQorLy8g
d291bGRuJ3QgY29tcGlsZS4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIGludGVybmFs
OjpFcU1hdGNoZXI8VD4gRXEoVCB4KSB7IHJldHVybiBpbnRlcm5hbDo6RXFNYXRjaGVyPFQ+KHgp
OyB9CisKKy8vIENvbnN0cnVjdHMgYSBNYXRjaGVyPFQ+IGZyb20gYSAndmFsdWUnIG9mIHR5cGUg
VC4gIFRoZSBjb25zdHJ1Y3RlZAorLy8gbWF0Y2hlciBtYXRjaGVzIGFueSB2YWx1ZSB0aGF0J3Mg
ZXF1YWwgdG8gJ3ZhbHVlJy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorTWF0Y2hlcjxUPjo6TWF0
Y2hlcihUIHZhbHVlKSB7ICp0aGlzID0gRXEodmFsdWUpOyB9CisKKy8vIENyZWF0ZXMgYSBtb25v
bW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhbnl0aGluZyB3aXRoIHR5cGUgTGhzCisvLyBh
bmQgZXF1YWwgdG8gcmhzLiAgQSB1c2VyIG1heSBuZWVkIHRvIHVzZSB0aGlzIGluc3RlYWQgb2Yg
RXEoLi4uKQorLy8gaW4gb3JkZXIgdG8gcmVzb2x2ZSBhbiBvdmVybG9hZGluZyBhbWJpZ3VpdHku
CisvLworLy8gVHlwZWRFcTxUPih4KSBpcyBqdXN0IGEgY29udmVuaWVudCBzaG9ydC1oYW5kIGZv
ciBNYXRjaGVyPFQ+KEVxKHgpKQorLy8gb3IgTWF0Y2hlcjxUPih4KSwgYnV0IG1vcmUgcmVhZGFi
bGUgdGhhbiB0aGUgbGF0dGVyLgorLy8KKy8vIFdlIGNvdWxkIGRlZmluZSBzaW1pbGFyIG1vbm9t
b3JwaGljIG1hdGNoZXJzIGZvciBvdGhlciBjb21wYXJpc29uCisvLyBvcGVyYXRpb25zIChlLmcu
IFR5cGVkTHQsIFR5cGVkR2UsIGFuZCBldGMpLCBidXQgZGVjaWRlZCBub3QgdG8gZG8KKy8vIGl0
IHlldCBhcyB0aG9zZSBhcmUgdXNlZCBtdWNoIGxlc3MgdGhhbiBFcSgpIGluIHByYWN0aWNlLiAg
QSB1c2VyCisvLyBjYW4gYWx3YXlzIHdyaXRlIE1hdGNoZXI8VD4oTHQoNSkpIHRvIGJlIGV4cGxp
Y2l0IGFib3V0IHRoZSB0eXBlLAorLy8gZm9yIGV4YW1wbGUuCit0ZW1wbGF0ZSA8dHlwZW5hbWUg
TGhzLCB0eXBlbmFtZSBSaHM+CitpbmxpbmUgTWF0Y2hlcjxMaHM+IFR5cGVkRXEoY29uc3QgUmhz
JiByaHMpIHsgcmV0dXJuIEVxKHJocyk7IH0KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1h
dGNoZXIgdGhhdCBtYXRjaGVzIGFueXRoaW5nID49IHguCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhz
PgoraW5saW5lIGludGVybmFsOjpHZU1hdGNoZXI8UmhzPiBHZShSaHMgeCkgeworICByZXR1cm4g
aW50ZXJuYWw6OkdlTWF0Y2hlcjxSaHM+KHgpOworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBo
aWMgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYW55dGhpbmcgPiB4LgordGVtcGxhdGUgPHR5cGVuYW1l
IFJocz4KK2lubGluZSBpbnRlcm5hbDo6R3RNYXRjaGVyPFJocz4gR3QoUmhzIHgpIHsKKyAgcmV0
dXJuIGludGVybmFsOjpHdE1hdGNoZXI8UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHlt
b3JwaGljIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGFueXRoaW5nIDw9IHguCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgUmhzPgoraW5saW5lIGludGVybmFsOjpMZU1hdGNoZXI8UmhzPiBMZShSaHMgeCkgewor
ICByZXR1cm4gaW50ZXJuYWw6OkxlTWF0Y2hlcjxSaHM+KHgpOworfQorCisvLyBDcmVhdGVzIGEg
cG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYW55dGhpbmcgPCB4LgordGVtcGxhdGUg
PHR5cGVuYW1lIFJocz4KK2lubGluZSBpbnRlcm5hbDo6THRNYXRjaGVyPFJocz4gTHQoUmhzIHgp
IHsKKyAgcmV0dXJuIGludGVybmFsOjpMdE1hdGNoZXI8UmhzPih4KTsKK30KKworLy8gQ3JlYXRl
cyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGFueXRoaW5nICE9IHguCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgUmhzPgoraW5saW5lIGludGVybmFsOjpOZU1hdGNoZXI8UmhzPiBOZShS
aHMgeCkgeworICByZXR1cm4gaW50ZXJuYWw6Ok5lTWF0Y2hlcjxSaHM+KHgpOworfQorfSAgLy8g
bmFtZXNwYWNlIHRlc3RpbmcKKworR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAv
LyAgNDI1MSA1MDQ2CisKKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X01BVENIRVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2d0ZXN0LW1lc3NhZ2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCmluZGV4IDVjYTA0MTYxNGNiMzU1OTIyZjM1NWI4OTNmOWM4
NGEzYjdmNTJjNmYuLmJlY2ZkNDlmY2JhOWM1YWI5ODZlNGI0Mzk2YmM4MTQzYTNjNTg3YTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVz
c2FnZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qt
bWVzc2FnZS5oCkBAIC00NCwxMCArNDQsMTIgQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8g
Tk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfTUVTU0FHRV9I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNpZm5kZWYg
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNkZWZpbmUgR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KIAogI2luY2x1ZGUgPGxpbWl0cz4K
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3N0cmVhbT4KIAogI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKIApAQCAtMTA2LDE0ICsxMDgsNiBAQCBjbGFzcyBHVEVT
VF9BUElfIE1lc3NhZ2UgewogICAgICpzc18gPDwgc3RyOwogICB9CiAKLSNpZiBHVEVTVF9PU19T
WU1CSUFOCi0gIC8vIFN0cmVhbXMgYSB2YWx1ZSAoZWl0aGVyIGEgcG9pbnRlciBvciBub3QpIHRv
IHRoaXMgb2JqZWN0LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5lIE1lc3NhZ2Um
IG9wZXJhdG9yIDw8KGNvbnN0IFQmIHZhbHVlKSB7Ci0gICAgU3RyZWFtSGVscGVyKHR5cGVuYW1l
IGludGVybmFsOjppc19wb2ludGVyPFQ+Ojp0eXBlKCksIHZhbHVlKTsKLSAgICByZXR1cm4gKnRo
aXM7Ci0gIH0KLSNlbHNlCiAgIC8vIFN0cmVhbXMgYSBub24tcG9pbnRlciB2YWx1ZSB0byB0aGlz
IG9iamVjdC4KICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIGlubGluZSBNZXNzYWdlJiBvcGVy
YXRvciA8PChjb25zdCBUJiB2YWwpIHsKQEAgLTE1MSwxNCArMTQ1LDEzIEBAIGNsYXNzIEdURVNU
X0FQSV8gTWVzc2FnZSB7CiAgIC8vIGFzICIobnVsbCkiLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KICAgaW5saW5lIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KFQqIGNvbnN0JiBwb2ludGVyKSB7ICAv
LyBOT0xJTlQKLSAgICBpZiAocG9pbnRlciA9PSBOVUxMKSB7CisgICAgaWYgKHBvaW50ZXIgPT0g
bnVsbHB0cikgewogICAgICAgKnNzXyA8PCAiKG51bGwpIjsKICAgICB9IGVsc2UgewogICAgICAg
KnNzXyA8PCBwb2ludGVyOwogICAgIH0KICAgICByZXR1cm4gKnRoaXM7CiAgIH0KLSNlbmRpZiAg
Ly8gR1RFU1RfT1NfU1lNQklBTgogCiAgIC8vIFNpbmNlIHRoZSBiYXNpYyBJTyBtYW5pcHVsYXRv
cnMgYXJlIG92ZXJsb2FkZWQgZm9yIGJvdGggbmFycm93CiAgIC8vIGFuZCB3aWRlIHN0cmVhbXMs
IHdlIGhhdmUgdG8gcHJvdmlkZSB0aGlzIHNwZWNpYWxpemVkIGRlZmluaXRpb24KQEAgLTE4Nywx
MiArMTgwLDYgQEAgY2xhc3MgR1RFU1RfQVBJXyBNZXNzYWdlIHsKICAgTWVzc2FnZSYgb3BlcmF0
b3IgPDwoY29uc3QgOjpzdGQ6OndzdHJpbmcmIHdzdHIpOwogI2VuZGlmICAvLyBHVEVTVF9IQVNf
U1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotICAvLyBDb252ZXJ0
cyB0aGUgZ2l2ZW4gd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYt
OAotICAvLyBlbmNvZGluZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlzIE1lc3NhZ2Ug
b2JqZWN0LgotICBNZXNzYWdlJiBvcGVyYXRvciA8PChjb25zdCA6OndzdHJpbmcmIHdzdHIpOwot
I2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQogICAvLyBHZXRzIHRoZSB0ZXh0
IHN0cmVhbWVkIHRvIHRoaXMgb2JqZWN0IHNvIGZhciBhcyBhbiBzdGQ6OnN0cmluZy4KICAgLy8g
RWFjaCAnXDAnIGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIu
CiAgIC8vCkBAIC0yMDAsMzEgKzE4Nyw4IEBAIGNsYXNzIEdURVNUX0FQSV8gTWVzc2FnZSB7CiAg
IHN0ZDo6c3RyaW5nIEdldFN0cmluZygpIGNvbnN0OwogCiAgcHJpdmF0ZToKLSNpZiBHVEVTVF9P
U19TWU1CSUFOCi0gIC8vIFRoZXNlIGFyZSBuZWVkZWQgYXMgdGhlIE5va2lhIFN5bWJpYW4gQ29t
cGlsZXIgY2Fubm90IGRlY2lkZSBiZXR3ZWVuCi0gIC8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBp
biBhIGZ1bmN0aW9uIHRlbXBsYXRlLiBUaGUgTm9raWEgY29tcGlsZXIgX2Nhbl8KLSAgLy8gZGVj
aWRlIGJldHdlZW4gY2xhc3MgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zIGZvciBUIGFuZCBUKiwg
c28gYQotICAvLyB0cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNfcG9pbnRlciB3b3JrcywgYW5kIHdl
IGNhbiBvdmVybG9hZCBvbiB0aGF0LgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgaW5saW5l
IHZvaWQgU3RyZWFtSGVscGVyKGludGVybmFsOjp0cnVlX3R5cGUgLyppc19wb2ludGVyKi8sIFQq
IHBvaW50ZXIpIHsKLSAgICBpZiAocG9pbnRlciA9PSBOVUxMKSB7Ci0gICAgICAqc3NfIDw8ICIo
bnVsbCkiOwotICAgIH0gZWxzZSB7Ci0gICAgICAqc3NfIDw8IHBvaW50ZXI7Ci0gICAgfQotICB9
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBpbmxpbmUgdm9pZCBTdHJlYW1IZWxwZXIoaW50
ZXJuYWw6OmZhbHNlX3R5cGUgLyppc19wb2ludGVyKi8sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBUJiB2YWx1ZSkgewotICAgIC8vIFNlZSB0aGUgY29tbWVudHMgaW4gTWVzc2Fn
ZSYgb3BlcmF0b3IgPDwoY29uc3QgVCYpIGFib3ZlIGZvciB3aHkKLSAgICAvLyB3ZSBuZWVkIHRo
aXMgdXNpbmcgc3RhdGVtZW50LgotICAgIHVzaW5nIDo6b3BlcmF0b3IgPDw7Ci0gICAgKnNzXyA8
PCB2YWx1ZTsKLSAgfQotI2VuZGlmICAvLyBHVEVTVF9PU19TWU1CSUFOCi0KICAgLy8gV2UnbGwg
aG9sZCB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9iamVjdCBoZXJlLgotICBjb25zdCBpbnRl
cm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0cmluZ3N0cmVhbT4gc3NfOworICBjb25zdCBzdGQ6
OnVuaXF1ZV9wdHI8IDo6c3RkOjpzdHJpbmdzdHJlYW0+IHNzXzsKIAogICAvLyBXZSBkZWNsYXJl
IChidXQgZG9uJ3QgaW1wbGVtZW50KSB0aGlzIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyCiAgIC8v
IGZyb20gaW1wbGVtZW50aW5nIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yLgpAQCAtMjUyLDQgKzIx
Niw0IEBAIHN0ZDo6c3RyaW5nIFN0cmVhbWFibGVUb1N0cmluZyhjb25zdCBUJiBzdHJlYW1hYmxl
KSB7CiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2Vu
ZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KKyNlbmRpZiAgLy8g
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgK
aW5kZXggM2U5NWU0MzkwZTAwZTExNjMxMGE0MjM4M2QyZTMwYjU4ZWRhNWYwZC4uODA0ZTcwMjgx
N2IwM2I5MGEzZTc3ZmQ4YmRjOGEwMzdlNzJmNWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgKQEAgLTEs
NyArMSwzIEBACi0vLyBUaGlzIGZpbGUgd2FzIEdFTkVSQVRFRCBieSBjb21tYW5kOgotLy8gICAg
IHB1bXAucHkgZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQh
ISEKLQogLy8gQ29weXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogLy8KQEAgLTM0LDEyICszMCw5IEBACiAvLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBmb3Ig
aW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMKIC8vIGluIEdvb2dsZSBDKysgVGVzdGlu
ZyBhbmQgTW9ja2luZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQogLy8KLS8vIFRoaXMgZmlsZSBp
cyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KIC8vIEdP
T0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVT
VF9HVEVTVF9QQVJBTV9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1Rf
UEFSQU1fVEVTVF9IXwotCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9Q
QVJBTV9URVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJB
TV9URVNUX0hfCiAKIC8vIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cgeW91IHRvIHRl
c3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50CiAvLyBwYXJhbWV0ZXJzIHdpdGhvdXQgd3JpdGlu
ZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KQEAgLTc1LDcgKzY4LDcgQEAgVEVT
VF9QKEZvb1Rlc3QsIEhhc0JsYWhCbGFoKSB7CiAgIC4uLgogfQogCi0vLyBGaW5hbGx5LCB5b3Ug
Y2FuIHVzZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdAor
Ly8gRmluYWxseSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHRvIGluc3Rh
bnRpYXRlIHRoZSB0ZXN0CiAvLyBjYXNlIHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3
YW50LiBHb29nbGUgVGVzdCBkZWZpbmVzIGEgbnVtYmVyCiAvLyBvZiBmdW5jdGlvbnMgZm9yIGdl
bmVyYXRpbmcgdGVzdCBwYXJhbWV0ZXJzLiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKIC8vIChz
dXJwcmlzZSEpIHBhcmFtZXRlciBnZW5lcmF0b3JzLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVt
LCB3aGljaApAQCAtOTYsMTcgKzg5LDE3IEBAIFRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkg
ewogLy8gRm9yIG1vcmUgZGV0YWlscywgc2VlIGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBv
ZiB0aGVzZSBmdW5jdGlvbnMgYmVsb3cKIC8vIGluIHRoaXMgZmlsZS4KIC8vCi0vLyBUaGUgZm9s
bG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3Qg
dGVzdCBjYXNlCisvLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIHRl
c3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBzdWl0ZQogLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2
YWx1ZXMgIm1lZW55IiwgIm1pbnkiLCBhbmQgIm1vZSIuCiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEluc3RhbnRpYXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7
CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoSW5zdGFudGlhdGlvbk5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgRm9vVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMo
Im1lZW55IiwgIm1pbnkiLCAibW9lIikpOwogCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQg
aW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJuLCAoeWVzLCB5b3UKLS8vIGNhbiBpbnN0YW50aWF0ZSBp
dCBtb3JlIHRoZW4gb25jZSkgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZQotLy8gSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AgbWFjcm8gaXMgYSBwcmVmaXggdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRo
ZQotLy8gYWN0dWFsIHRlc3QgY2FzZSBuYW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVm
aXhlcyBmb3IgZGlmZmVyZW50CisvLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGFuIG9uY2Up
IHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBt
YWNybyBpcyBhIHByZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCisvLyBhY3R1YWwgdGVz
dCBzdWl0ZSBuYW1lLiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVy
ZW50CiAvLyBpbnN0YW50aWF0aW9ucy4gVGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24g
YWJvdmUgd2lsbCBoYXZlCiAvLyB0aGVzZSBuYW1lczoKIC8vCkBAIC0xMjMsNyArMTE2LDcgQEAg
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbk5hbWUsCiAvLyB3aXRoIHBhcmFt
ZXRlciB2YWx1ZXMgImNhdCIgYW5kICJkb2ciOgogCiBjb25zdCBjaGFyKiBwZXRzW10gPSB7ImNh
dCIsICJkb2cifTsKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFub3RoZXJJbnN0YW50aWF0aW9u
TmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9Q
KEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogCiAv
LyBUaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUgdGhlc2Ug
bmFtZXM6CiAvLwpAQCAtMTMyLDkgKzEyNSw5IEBAIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFu
b3RoZXJJbnN0YW50aWF0aW9uTmFtZSwgRm9vVGVzdCwgVmFsdWVzSW4ocGV0cykpOwogLy8gICAg
KiBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8wIGZvciAiY2F0
IgogLy8gICAgKiBBbm90aGVySW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8x
IGZvciAiZG9nIgogLy8KLS8vIFBsZWFzZSBub3RlIHRoYXQgSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1Agd2lsbCBpbnN0YW50aWF0ZSBhbGwgdGVzdHMKLS8vIGluIHRoZSBnaXZlbiB0ZXN0IGNhc2Us
IHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMgY29tZSBiZWZvcmUgb3IKLS8vIEFGVEVSIHRoZSBJ
TlNUQU5USUFURV9URVNUX0NBU0VfUCBzdGF0ZW1lbnQuCisvLyBQbGVhc2Ugbm90ZSB0aGF0IElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cworLy8gaW4g
dGhlIGdpdmVuIHRlc3Qgc3VpdGUsIHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMgY29tZSBiZWZv
cmUgb3IKKy8vIEFGVEVSIHRoZSBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agc3RhdGVtZW50Lgog
Ly8KIC8vIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgKGluY2x1
ZGluZyBwYXJhbWV0ZXJzIHRvIHRoZQogLy8gZ2VuZXJhdG9ycykgYXJlIGV2YWx1YXRlZCBpbiBJ
bml0R29vZ2xlVGVzdCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCkBAIC0xNzgsMjYgKzE3
MSwyMyBAQCBURVNUX1AoRGVyaXZlZFRlc3QsIERvZXNCbGFoKSB7CiAKICNlbmRpZiAgLy8gMAog
Ci0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi0jaWYgIUdURVNUX09T
X1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRpbGl0eT4KLSNlbmRpZgorI2luY2x1ZGUgPGl0ZXJhdG9y
PgorI2luY2x1ZGUgPHV0aWxpdHk+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1p
bnRlcm5hbC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCIK
LSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIgor
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKIAogbmFtZXNwYWNlIHRlc3Rp
bmcgewogCiAvLyBGdW5jdGlvbnMgcHJvZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgogLy8K
IC8vIEdvb2dsZSBUZXN0IHVzZXMgdGhlc2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRl
cnMgZm9yIHZhbHVlLQotLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6
ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRpYXRlZAorLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hl
biBhIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBpcyBpbnN0YW50aWF0ZWQKIC8vIHdpdGggYSBw
YXJ0aWN1bGFyIGdlbmVyYXRvciwgR29vZ2xlIFRlc3QgY3JlYXRlcyBhbmQgcnVucyB0ZXN0cwog
Ly8gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgc2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhlIGdlbmVy
YXRvci4KIC8vCi0vLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwgdGVzdHMgZnJvbSB0ZXN0IGNh
c2UgRm9vVGVzdCBhcmUgaW5zdGFudGlhdGVkCisvLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBsZSwg
dGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEZvb1Rlc3QgYXJlIGluc3RhbnRpYXRlZAogLy8gZWFjaCB0
aHJlZSB0aW1lcyB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgMywgNSwgYW5kIDg6CiAvLwogLy8gY2xh
c3MgRm9vVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4geyAuLi4gfTsKQEAgLTIwNiw3
ICsxOTYsNyBAQCBuYW1lc3BhY2UgdGVzdGluZyB7CiAvLyB9CiAvLyBURVNUX1AoRm9vVGVzdCwg
VGVzdFRoYXQpIHsKIC8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFRlc3RTZXF1ZW5j
ZSwgRm9vVGVzdCwgVmFsdWVzKDMsIDUsIDgpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVf
UChUZXN0U2VxdWVuY2UsIEZvb1Rlc3QsIFZhbHVlcygzLCA1LCA4KSk7CiAvLwogCiAvLyBSYW5n
ZSgpIHJldHVybnMgZ2VuZXJhdG9ycyBwcm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBh
IHJhbmdlLgpAQCAtMjYzLDEzICsyNTMsMTMgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+
IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7CiAvLwogLy8gRXhhbXBsZXM6CiAvLwotLy8gVGhpcyBp
bnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgU3RyaW5nVGVzdAorLy8gVGhpcyBpbnN0
YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIFN0cmluZ1Rlc3QKIC8vIGVhY2ggd2l0aCBD
LXN0cmluZyB2YWx1ZXMgb2YgImZvbyIsICJiYXIiLCBhbmQgImJheiI6CiAvLwogLy8gY29uc3Qg
Y2hhciogc3RyaW5nc1tdID0geyJmb28iLCAiYmFyIiwgImJheiJ9OwotLy8gSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3Mp
KTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTdHJpbmdTZXF1ZW5jZSwgU3RyaW5nVGVz
dCwgVmFsdWVzSW4oc3RyaW5ncykpOwogLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZy
b20gdGVzdCBjYXNlIFN0bFN0cmluZ1Rlc3QKKy8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZy
b20gdGVzdCBzdWl0ZSBTdGxTdHJpbmdUZXN0CiAvLyBlYWNoIHdpdGggU1RMIHN0cmluZ3Mgd2l0
aCB2YWx1ZXMgImEiIGFuZCAiYiI6CiAvLwogLy8gOjpzdGQ6OnZlY3RvcjwgOjpzdGQ6OnN0cmlu
Zz4gR2V0UGFyYW1ldGVyU3RyaW5ncygpIHsKQEAgLTI3OSw5ICsyNjksOSBAQCBpbnRlcm5hbDo6
UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIHY7
CiAvLyB9CiAvLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ2hhclNlcXVlbmNlLAotLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0cmluZ3MoKSkpOworLy8gSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QKENoYXJTZXF1ZW5jZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdGxTdHJpbmdUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdl
dFBhcmFtZXRlclN0cmluZ3MoKSkpOwogLy8KIC8vCiAvLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50
aWF0ZSB0ZXN0cyBmcm9tIENoYXJUZXN0CkBAIC0yOTQsMTYgKzI4NCwxNSBAQCBpbnRlcm5hbDo6
UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQpIHsKIC8vICAgcmV0dXJuIGxp
c3Q7CiAvLyB9CiAvLyA6OnN0ZDo6bGlzdDxjaGFyPiBsID0gR2V0UGFyYW1ldGVyQ2hhcnMoKTsK
LS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICBDaGFyVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
c0luKGwuYmVnaW4oKSwgbC5lbmQoKSkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKENo
YXJTZXF1ZW5jZTIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCisvLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzSW4obC5iZWdpbigpLCBsLmVuZCgpKSk7CiAv
LwogdGVtcGxhdGUgPHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvcj4KIGludGVybmFsOjpQYXJhbUdl
bmVyYXRvcjwKLSAgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8
Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVfdHlwZT4KKyAgICB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9y
X3RyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgogVmFsdWVzSW4oRm9yd2FyZEl0
ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAg
ICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJh
dG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlIFBhcmFtVHlwZTsKICAgcmV0
dXJuIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KAogICAgICAgbmV3IGludGVy
bmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I8UGFyYW1UeXBlPihiZWdpbiwgZW5k
KSk7CiB9CkBAIC0zMjYsODY5ICszMTUsMjIgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5
cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCiAvLyBWYWx1ZXMoVCB2MSwg
VCB2MiwgLi4uLCBUIHZOKQogLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNl
cXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYxLCB2MiwgLi4uLCB2Ti4KIC8vCi0vLyBGb3IgZXhhbXBs
ZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVzdCBlYWNoCisv
LyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEJh
clRlc3QgZWFjaAogLy8gd2l0aCB2YWx1ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKIC8v
Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVz
KCJvbmUiLCAidHdvIiwgInRocmVlIikpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE51
bVNlcXVlbmNlLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIEJhclRlc3QsCisvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJvbmUiLCAidHdvIiwgInRocmVlIikpOwogLy8K
LS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3
aXRoIHZhbHVlcyAxLCAyLCAzLjUuCisvLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRl
c3Qgc3VpdGUgQmF6VGVzdCBlYWNoIHdpdGggdmFsdWVzIDEsIDIsIDMuNS4KIC8vIFRoZSBleGFj
dCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIgaW4g
QmF6VGVzdC4KIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChGbG9hdGluZ051bWJlcnMs
IEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVf
UChGbG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsKIC8vCi0vLyBD
dXJyZW50bHksIFZhbHVlcygpIHN1cHBvcnRzIGZyb20gMSB0byA1MCBwYXJhbWV0ZXJzLgogLy8K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MTxUMT4gVmFsdWVz
KFQxIHYxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTE8VDE+KHYxKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLWludGVybmFsOjpWYWx1ZUFycmF5
MjxUMSwgVDI+IFZhbHVlcyhUMSB2MSwgVDIgdjIpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MjxUMSwgVDI+KHYxLCB2Mik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBUMiwgVDM+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTM8VDEsIFQyLCBUMz4odjEsIHYyLCB2Myk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWludGVybmFsOjpWYWx1
ZUFycmF5NDxUMSwgVDIsIFQzLCBUND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ8VDEsIFQyLCBUMywgVDQ+KHYxLCB2
MiwgdjMsIHY0KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLWludGVybmFsOjpWYWx1ZUFycmF5
NTxUMSwgVDIsIFQzLCBUNCwgVDU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwK
LSAgICBUNSB2NSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1PFQxLCBUMiwgVDMs
IFQ0LCBUNT4odjEsIHYyLCB2MywgdjQsIHY1KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNj4KLWludGVybmFsOjpWYWx1ZUFycmF5NjxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
Nj4odjEsIHYyLCB2MywgdjQsIHY1LCB2Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk3PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywKLSAgICBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk3
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3Pih2MSwgdjIsIHYzLCB2NCwgdjUsCi0gICAgICB2
NiwgdjcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTg8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFy
cmF5ODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KHYxLCB2MiwgdjMsIHY0LAotICAg
ICAgdjUsIHY2LCB2NywgdjgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXk5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5OTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5Pih2MSwgdjIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4
LCB2OSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLWludGVybmFsOjpW
YWx1ZUFycmF5MTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBWYWx1
ZXMoVDEgdjEsCi0gICAgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LCBUMTAgdjEwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEw
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4odjEsCi0gICAgICB2Miwg
djMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTEx
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwKLSAgICBUMTE+IFZhbHVl
cyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2MTEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MTE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLAotICAgICAg
VDExPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSk7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MTI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgVDEyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEw
LCBUMTEgdjExLCBUMTIgdjEyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTEyPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyPih2
MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgVDEzPiBWYWx1ZXMo
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzKSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3
LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQ+IFZhbHVlcyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5
IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQpIHsK
LSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0Pih2MSwgdjIsIHYzLCB2
NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQpOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTU+Ci1p
bnRlcm5hbDo6VmFsdWVBcnJheTE1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNT4gVmFsdWVzKFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICBUOSB2OSwgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNT4odjEsIHYyLCB2Mywg
djQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2
MTUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxNjxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBU
MTUsIFQxNj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2KSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6VmFsdWVBcnJheTE2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTY+KHYxLCB2MiwgdjMsIHY0LCB2NSwg
djYsIHY3LCB2OCwgdjksIHYxMCwgdjExLAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE3
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywK
LSAgICBUMTQsIFQxNSwgVDE2LCBUMTc+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3
IHYxNykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwg
VDE2LCBUMTc+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAg
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTg+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LAotICAgIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYx
NywgVDE4IHYxOCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxODxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwK
LSAgICAgIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXkxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwKLSAgICBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwKLSAgICBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5KSB7
Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTk+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2
MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTkpOwotfQotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjA+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXky
MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQx
MiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjA+KHYxLCB2MiwgdjMsIHY0
LCB2NSwgdjYsIHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1
LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAg
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywKLSAgICBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LAotICAgICAgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSk7Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWludGVybmFsOjpWYWx1
ZUFycmF5MjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYx
MywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTIyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjI+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwg
djEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwg
djIyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjM+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0g
ICAgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTIzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMs
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMz4odjEsIHYy
LCB2MywKLSAgICAgIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMyk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI0PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyND4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAot
ICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5MjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQ+KHYxLCB2MiwKLSAgICAgIHYzLCB2NCwgdjUsIHY2LCB2Nywg
djgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LAotICAg
ICAgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNT4KLWludGVybmFsOjpWYWx1ZUFycmF5MjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IFZhbHVlcyhUMSB2MSwK
LSAgICBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksIFQxMCB2MTAsIFQxMSB2MTEsCi0gICAgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1
IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwKLSAgICBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1KSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywK
LSAgICAgIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1KTsKLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNj4KLWludGVybmFsOjpW
YWx1ZUFycmF5MjY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsCi0gICAgVDI2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNikgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXkyNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2Pih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LAotICAgICAgdjE2
LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYpOwotfQot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgVDI3PiBWYWx1
ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2
MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2
IHYyNiwgVDI3IHYyNykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyNzxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LAotICAgICAgVDI2LCBUMjc+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYx
MCwgdjExLCB2MTIsIHYxMywgdjE0LAotICAgICAgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYy
MCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3KTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICBUMjg+
IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAg
ICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4Pih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsCi0gICAgICB2MTQsIHYxNSwgdjE2
LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywK
LSAgICAgIHYyOCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOT4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2
MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5Mjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOT4odjEsIHYyLCB2Mywg
djQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwKLSAgICAgIHYxMywgdjE0LCB2
MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2
LAotICAgICAgdjI3LCB2MjgsIHYyOSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBU
MjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQy
NSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFt
ZSBUMjksIHR5cGVuYW1lIFQzMD4KLWludGVybmFsOjpWYWx1ZUFycmF5MzA8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzA+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2
MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsCi0gICAgVDE3
IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYy
MywgVDI0IHYyNCwKLSAgICBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LCBUMzAgdjMwKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
Ci0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMD4odjEsIHYyLCB2MywgdjQsIHY1LCB2Niwg
djcsIHY4LCB2OSwgdjEwLCB2MTEsCi0gICAgICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3
LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3
LCB2MjgsIHYyOSwgdjMwKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLWludGVybmFsOjpWYWx1ZUFycmF5MzE8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMT4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LAotICAgIFQ4IHY4LCBUOSB2
OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwK
LSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEpIHsKLSAgcmV0dXJuIGludGVy
bmFsOjpWYWx1ZUFycmF5MzE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LCBUMzE+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYx
MSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs
IHYyMywgdjI0LAotICAgICAgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxKTsKLX0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzMjxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzI+IFZhbHVlcyhUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjks
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0g
ICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLCBUMzEsIFQzMj4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2
OSwKLSAgICAgIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYx
OSwgdjIwLCB2MjEsIHYyMiwgdjIzLAotICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYy
OSwgdjMwLCB2MzEsIHYzMik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsCi0gICAgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcg
djE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIz
LAotICAgIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2
MjksIFQzMCB2MzAsIFQzMSB2MzEsCi0gICAgVDMyIHYzMiwgVDMzIHYzMykgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXkzMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzM+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAg
ICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTks
IHYyMCwgdjIxLCB2MjIsIHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2Mjks
IHYzMCwgdjMxLCB2MzIsIHYzMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5h
bWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAg
VDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIx
IHYyMSwgVDIyIHYyMiwKLSAgICBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBU
MjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLAotICAgIFQzMSB2MzEsIFQzMiB2MzIs
IFQzMyB2MzMsIFQzNCB2MzQpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MzQ8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+
KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAg
ICB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywg
djM0KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzNTxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IFZhbHVlcyhU
MSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwg
VDIxIHYyMSwKLSAgICBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2
LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LAotICAgIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwg
djksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIw
LCB2MjEsCi0gICAgICB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMw
LCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0g
ICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAg
ICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNj4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwgdjYsIHY3LCB2
OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwK
LSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwg
djMwLCB2MzEsIHYzMiwgdjMzLAotICAgICAgdjM0LCB2MzUsIHYzNik7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNz4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzc8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQy
NCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwg
VDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2
IHYzNiwKLSAgICBUMzcgdjM3KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3Pih2MSwgdjIsIHYzLAotICAgICAgdjQsIHY1LCB2NiwgdjcsIHY4LCB2
OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LAotICAg
ICAgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAs
IHYzMSwgdjMyLCB2MzMsCi0gICAgICB2MzQsIHYzNSwgdjM2LCB2MzcpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLWludGVybmFs
OjpWYWx1ZUFycmF5Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAot
ICAgIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAg
djEwLCBUMTEgdjExLCBUMTIgdjEyLAotICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4
IHYyOCwKLSAgICBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LAotICAgIFQzNyB2MzcsIFQzOCB2MzgpIHsKLSAgcmV0
dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4odjEsIHYy
LAotICAgICAgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywg
djE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsCi0gICAgICB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywg
djI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwKLSAgICAgIHYzMywg
djM0LCB2MzUsIHYzNiwgdjM3LCB2MzgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwK
LSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEs
IFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQy
OCB2MjgsCi0gICAgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywg
VDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwKLSAgICBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYs
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOT4odjEsCi0gICAgICB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwg
djExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LAotICAgICAgdjE4LCB2MTksIHYyMCwg
djIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsCi0g
ICAgICB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQz
NSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFt
ZSBUMzksIHR5cGVuYW1lIFQ0MD4KLWludGVybmFsOjpWYWx1ZUFycmF5NDA8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MD4gVmFsdWVzKFQxIHYxLAotICAgIFQyIHYyLCBUMyB2MywgVDQgdjQs
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwKLSAg
ICBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBU
MTggdjE4LCBUMTkgdjE5LAotICAgIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsCi0gICAgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwK
LSAgICBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwKSB7Ci0gIHJl
dHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwK
LSAgICAgIFQ0MD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEs
IHYxMiwgdjEzLCB2MTQsIHYxNSwKLSAgICAgIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEs
IHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LAotICAgICAgdjMwLCB2MzEs
IHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDApOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxPgotaW50ZXJuYWw6OlZhbHVl
QXJyYXk0MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgIFQ0MT4gVmFsdWVzKFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1
IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBU
MjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYs
IFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQz
MyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwg
VDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXk0MTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MT4odjEsIHYy
LCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsCi0g
ICAgICB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYy
NSwgdjI2LCB2MjcsIHYyOCwKLSAgICAgIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYz
NSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsIHY0MSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLWludGVybmFsOjpWYWx1
ZUFycmF5NDI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgIFQ0Mj4gVmFs
dWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQy
NiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsCi0gICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4
IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQyKSB7Ci0gIHJldHVy
biBpbnRlcm5hbDo6VmFsdWVBcnJheTQyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAg
ICAgIFQ0MCwgVDQxLCBUNDI+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYx
MCwgdjExLCB2MTIsIHYxMywKLSAgICAgIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYy
MCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LAotICAgICAgdjI4LCB2MjksIHYz
MCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEs
Ci0gICAgICB2NDIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLWludGVybmFsOjpWYWx1ZUFycmF5
NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgVDQzPiBWYWx1
ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2
MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2
IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywKLSAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzgg
djM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIHsK
LSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2
NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLAotICAgICAgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcs
IHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsCi0gICAgICB2Mjcs
IHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2
MzksIHY0MCwKLSAgICAgIHY0MSwgdjQyLCB2NDMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlw
ZW5hbWUgVDQ0PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIFQ0ND4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0
IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0
MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0KSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTQ0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAg
IFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywgdjgs
IHY5LCB2MTAsIHYxMSwKLSAgICAgIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwg
djE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LAotICAgICAgdjI2LCB2MjcsIHYyOCwg
djI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksCi0g
ICAgICB2NDAsIHY0MSwgdjQyLCB2NDMsIHY0NCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBl
bmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4KLWludGVybmFsOjpWYWx1ZUFycmF5NDU8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NT4gVmFsdWVz
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwK
LSAgICBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwg
VDE1IHYxNSwgVDE2IHYxNiwKLSAgICBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LAotICAgIFQyNSB2MjUsIFQyNiB2
MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIs
Ci0gICAgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYz
OCwgVDM5IHYzOSwgVDQwIHY0MCwKLSAgICBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQg
djQ0LCBUNDUgdjQ1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
Ci0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDU+
KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwKLSAgICAgIHYxMSwgdjEy
LCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywg
djI0LAotICAgICAgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywg
djM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsCi0gICAgICB2MzksIHY0MCwgdjQxLCB2NDIsIHY0Mywg
djQ0LCB2NDUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBU
NDUsCi0gICAgdHlwZW5hbWUgVDQ2PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0NjxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDY+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAg
ICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIw
IHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBU
MjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAg
IFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQz
OCB2MzgsIFQzOSB2MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0Mywg
VDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXk0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBU
NDMsIFQ0NCwgVDQ1LCBUNDY+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0g
ICAgICB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYy
MCwgdjIxLCB2MjIsIHYyMywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYz
MCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0
MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUsIHY0Nik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBl
bmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVu
YW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0
eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0
Nz4KLWludGVybmFsOjpWYWx1ZUFycmF5NDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDc+IFZhbHVlcyhUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjks
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0g
ICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3
LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQzMyB2
MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2Mzks
Ci0gICAgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0
NSwgVDQ2IHY0NiwgVDQ3IHY0NykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwg
VDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0
NCwgVDQ1LCBUNDYsIFQ0Nz4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LAotICAgICAg
djksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIw
LCB2MjEsIHYyMiwgdjIzLAotICAgICAgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMw
LCB2MzEsIHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsCi0gICAgICB2MzgsIHYzOSwgdjQw
LCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0
MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFt
ZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLWludGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcs
IFQ0OD4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsCi0g
ICAgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYx
MywgVDE0IHYxNCwgVDE1IHYxNSwKLSAgICBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLAotICAgIFQyNCB2MjQsIFQy
NSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2
MzEsCi0gICAgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3
IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwKLSAgICBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBU
NDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LAotICAgIFQ0OCB2NDgp
IHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwg
VDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0
OD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsCi0gICAgICB2OCwgdjksIHYxMCwgdjExLCB2
MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwKLSAg
ICAgIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMz
LCB2MzQsIHYzNSwgdjM2LAotICAgICAgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQz
LCB2NDQsIHY0NSwgdjQ2LCB2NDcsIHY0OCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0
MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFt
ZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlw
ZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0Niwg
VDQ3LCBUNDgsIFQ0OT4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwK
LSAgICBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwgVDEzIHYxMywgVDE0IHYxNCwKLSAgICBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLAotICAgIFQyMyB2MjMsIFQy
NCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2
MzAsCi0gICAgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2
IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwKLSAgICBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBU
NDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LAotICAgIFQ0NyB2NDcs
IFQ0OCB2NDgsIFQ0OSB2NDkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDk8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQs
IFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LAotICAgICAg
djcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwg
djE5LCB2MjAsIHYyMSwKLSAgICAgIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwg
djI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LAotICAgICAgdjM2LCB2MzcsIHYzOCwg
djM5LCB2NDAsIHY0MSwgdjQyLCB2NDMsIHY0NCwgdjQ1LCB2NDYsIHY0NywgdjQ4LCB2NDkpOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQz
OCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFt
ZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlw
ZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBl
bmFtZSBUNTA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwg
VDUwPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0gICAgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1
IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwKLSAgICBUMzAgdjMwLCBU
MzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcg
djM3LAotICAgIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0
MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsCi0gICAgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwg
VDQ5IHY0OSwgVDUwIHY1MCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4odjEsIHYyLCB2MywgdjQsCi0gICAgICB2NSwg
djYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2
MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2
MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLAotICAgICAgdjM0LCB2MzUsIHYzNiwgdjM3LCB2
MzgsIHYzOSwgdjQwLCB2NDEsIHY0MiwgdjQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsCi0gICAgICB2
NDgsIHY0OSwgdjUwKTsKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgoraW50ZXJuYWw6OlZhbHVl
QXJyYXk8VC4uLj4gVmFsdWVzKFQuLi4gdikgeworICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXk8VC4uLj4oc3RkOjptb3ZlKHYpLi4uKTsKIH0KIAogLy8gQm9vbCgpIGFsbG93cyBnZW5lcmF0
aW5nIHRlc3RzIHdpdGggcGFyYW1ldGVycyBpbiBhIHNldCBvZiAoZmFsc2UsIHRydWUpLgpAQCAt
MTIwMSw3ICszNDMsNyBAQCBpbnRlcm5hbDo6VmFsdWVBcnJheTUwPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKIC8vIG9mIG11bHRpcGxlIGZs
YWdzIGNhbiBiZSB0ZXN0ZWQgd2hlbiBzZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2lu
ZwogLy8gQ29tYmluZSgpIGZ1bmN0aW9uLgogLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBs
ZSBhbGwgdGVzdHMgaW4gdGhlIHRlc3QgY2FzZSBGbGFnRGVwZW5kZW50VGVzdAorLy8gSW4gdGhl
IGZvbGxvd2luZyBleGFtcGxlIGFsbCB0ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZSBGbGFnRGVwZW5k
ZW50VGVzdAogLy8gd2lsbCBiZSBpbnN0YW50aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZh
bHNlIGFuZCB0cnVlLgogLy8KIC8vIGNsYXNzIEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3RXaXRoUGFyYW08Ym9vbD4gewpAQCAtMTIwOSwxMyArMzUxLDEyIEBAIGludGVy
bmFsOjpWYWx1ZUFycmF5NTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAogLy8gICAgIGV4dGVybmFsX2ZsYWcgPSBHZXRQYXJhbSgpOwogLy8g
ICB9CiAvLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChCb29sU2VxdWVuY2UsIEZsYWdE
ZXBlbmRlbnRUZXN0LCBCb29sKCkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEJvb2xT
ZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRlc3QsIEJvb2woKSk7CiAvLwogaW5saW5lIGludGVybmFs
OjpQYXJhbUdlbmVyYXRvcjxib29sPiBCb29sKCkgewogICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0
cnVlKTsKIH0KIAotIyBpZiBHVEVTVF9IQVNfQ09NQklORQogLy8gQ29tYmluZSgpIGFsbG93cyB0
aGUgdXNlciB0byBjb21iaW5lIHR3byBvciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCiAvLyB2
YWx1ZXMgb2YgYSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRz
LgogLy8KQEAgLTEyMjQsMTg0ICszNjUsODIgQEAgaW5saW5lIGludGVybmFsOjpQYXJhbUdlbmVy
YXRvcjxib29sPiBCb29sKCkgewogLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5n
IHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGNvbWluZyBmcm9tCiAvLyAgICAgdGhlIENhcnRlc2lh
biBwcm9kdWN0IG9mIGVsZW1lbnRzIGZyb20gdGhlIHNlcXVlbmNlcyBnZW5lcmF0ZWQgYnkKIC8v
ICAgICBnZW4xLCBnZW4yLCAuLi4sIGdlbk4uIFRoZSBzZXF1ZW5jZSBlbGVtZW50cyB3aWxsIGhh
dmUgYSB0eXBlIG9mCi0vLyAgICAgdHVwbGU8VDEsIFQyLCAuLi4sIFROPiB3aGVyZSBUMSwgVDIs
IC4uLiwgVE4gYXJlIHRoZSB0eXBlcworLy8gICAgIHN0ZDo6dHVwbGU8VDEsIFQyLCAuLi4sIFRO
PiB3aGVyZSBUMSwgVDIsIC4uLiwgVE4gYXJlIHRoZSB0eXBlcwogLy8gICAgIG9mIGVsZW1lbnRz
IGZyb20gc2VxdWVuY2VzIHByb2R1Y2VzIGJ5IGdlbjEsIGdlbjIsIC4uLiwgZ2VuTi4KIC8vCi0v
LyBDb21iaW5lIGNhbiBoYXZlIHVwIHRvIDEwIGFyZ3VtZW50cy4gVGhpcyBudW1iZXIgaXMgY3Vy
cmVudGx5IGxpbWl0ZWQKLS8vIGJ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0
aGUgdHVwbGUgaW1wbGVtZW50YXRpb24gdXNlZCBieSBHb29nbGUKLS8vIFRlc3QuCi0vLwogLy8g
RXhhbXBsZToKIC8vCi0vLyBUaGlzIHdpbGwgaW5zdGFudGlhdGUgdGVzdHMgaW4gdGVzdCBjYXNl
IEFuaW1hbFRlc3QgZWFjaCBvbmUgd2l0aAorLy8gVGhpcyB3aWxsIGluc3RhbnRpYXRlIHRlc3Rz
IGluIHRlc3Qgc3VpdGUgQW5pbWFsVGVzdCBlYWNoIG9uZSB3aXRoCiAvLyB0aGUgcGFyYW1ldGVy
IHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxBQ0spLCB0dXBsZSgiY2F0IiwgV0hJVEUpLAogLy8gdHVw
bGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1cGxlKCJkb2ciLCBXSElURSk6CiAvLwogLy8gZW51bSBD
b2xvciB7IEJMQUNLLCBHUkFZLCBXSElURSB9OwogLy8gY2xhc3MgQW5pbWFsVGVzdAotLy8gICAg
IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Y29uc3QgY2hhciosIENvbG9y
PiA+IHsuLi59OworLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjp0
dXBsZTxjb25zdCBjaGFyKiwgQ29sb3I+ID4gey4uLn07CiAvLwogLy8gVEVTVF9QKEFuaW1hbFRl
c3QsIEFuaW1hbExvb2tzTmljZSkgey4uLn0KIC8vCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0Vf
UChBbmltYWxWYXJpYXRpb25zLCBBbmltYWxUZXN0LAotLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgQ29tYmluZShWYWx1ZXMoImNhdCIsICJkb2ciKSwKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKEJMQUNLLCBXSElURSkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChBbmltYWxWYXJpYXRpb25zLCBBbmltYWxUZXN0LAorLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbWJpbmUoVmFsdWVzKCJjYXQiLCAiZG9nIiksCisvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoQkxBQ0ssIFdISVRFKSkpOwogLy8KIC8vIFRoaXMg
d2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiBGbGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJp
YXRpb25zIG9mIHR3bwogLy8gQm9vbGVhbiBmbGFnczoKIC8vCiAvLyBjbGFzcyBGbGFnRGVwZW5k
ZW50VGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9v
bCwgYm9vbD4gPiB7CisvLyAgICAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxzdGQ6
OnR1cGxlPGJvb2wsIGJvb2w+ID4gewogLy8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CiAvLyAg
ICAgLy8gQXNzaWducyBleHRlcm5hbF9mbGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiB2YWx1ZXMg
ZnJvbSB0aGUgdHVwbGUuCi0vLyAgICAgdGllKGV4dGVybmFsX2ZsYWdfMSwgZXh0ZXJuYWxfZmxh
Z18yKSA9IEdldFBhcmFtKCk7CisvLyAgICAgc3RkOjp0aWUoZXh0ZXJuYWxfZmxhZ18xLCBleHRl
cm5hbF9mbGFnXzIpID0gR2V0UGFyYW0oKTsKIC8vICAgfQogLy8gfTsKIC8vCiAvLyBURVNUX1Ao
RmxhZ0RlcGVuZGVudFRlc3QsIFRlc3RGZWF0dXJlMSkgewogLy8gICAvLyBUZXN0IHlvdXIgY29k
ZSB1c2luZyBleHRlcm5hbF9mbGFnXzEgYW5kIGV4dGVybmFsX2ZsYWdfMiBoZXJlLgogLy8gfQot
Ly8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoVHdvQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50
VGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoQm9vbCgpLCBCb29sKCkp
KTsKLS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9y
Mj4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMjxHZW5lcmF0b3IxLCBHZW5lcmF0
b3IyPiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3Iy
JiBnMikgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIyPEdlbmVy
YXRvcjEsIEdlbmVyYXRvcjI+KAotICAgICAgZzEsIGcyKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjM+
Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9y
MiwgR2VuZXJhdG9yMz4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3Qg
R2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczKSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjM8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJh
dG9yMz4oCi0gICAgICBnMSwgZzIsIGczKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVy
YXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlw
ZW5hbWUgR2VuZXJhdG9yND4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5l
cmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQ+IENvbWJpbmUo
Ci0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBH
ZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQpIHsKLSAgcmV0dXJu
IGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNDxHZW5lcmF0b3IxLCBHZW5lcmF0b3Iy
LCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yND4oCi0gICAgICBnMSwgZzIsIGczLCBnNCk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3Iy
LCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1l
IEdlbmVyYXRvcjU+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjU8R2VuZXJhdG9y
MSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1PiBD
b21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwg
Y29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25z
dCBHZW5lcmF0b3I1JiBnNSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RI
b2xkZXI1PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0
b3I0LCBHZW5lcmF0b3I1PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSk7Ci19Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBH
ZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUs
IHR5cGVuYW1lIEdlbmVyYXRvcjY+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjY8
R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5l
cmF0b3I1LCBHZW5lcmF0b3I2PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBj
b25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0
IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYg
ZzYpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNjxHZW5lcmF0
b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9y
NSwgR2VuZXJhdG9yNj4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2KTsKLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1l
IEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9y
NSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3PgotaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI3PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVy
YXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9y
Nz4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYg
ZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwg
Y29uc3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAgICBjb25z
dCBHZW5lcmF0b3I3JiBnNykgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RI
b2xkZXI3PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0
b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3PigKLSAgICAgIGcxLCBnMiwg
ZzMsIGc0LCBnNSwgZzYsIGc3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEs
IHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUg
R2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAg
ICB0eXBlbmFtZSBHZW5lcmF0b3I3LCB0eXBlbmFtZSBHZW5lcmF0b3I4PgotaW50ZXJuYWw6OkNh
cnRlc2lhblByb2R1Y3RIb2xkZXI4PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMs
Ci0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2Vu
ZXJhdG9yOD4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJh
dG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0
JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2LAotICAgICAg
ICBjb25zdCBHZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgpIHsKLSAgcmV0dXJu
IGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyODxHZW5lcmF0b3IxLCBHZW5lcmF0b3Iy
LCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwg
R2VuZXJhdG9yNywgR2VuZXJhdG9yOD4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBn
NywgZzgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2Vu
ZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0
eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVuYW1lIEdl
bmVyYXRvcjcsIHR5cGVuYW1lIEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjk+Ci1pbnRl
cm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjk8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2Vu
ZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0
b3I3LCBHZW5lcmF0b3I4LAotICAgIEdlbmVyYXRvcjk+IENvbWJpbmUoCi0gICAgY29uc3QgR2Vu
ZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywK
LSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LCBjb25z
dCBHZW5lcmF0b3I2JiBnNiwKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdl
bmVyYXRvcjgmIGc4LCBjb25zdCBHZW5lcmF0b3I5JiBnOSkgewotICByZXR1cm4gaW50ZXJuYWw6
OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI5PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRv
cjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3
LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5PigKLSAgICAgIGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYs
IGc3LCBnOCwgZzkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5h
bWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBlbmFtZSBHZW5lcmF0
b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2LAotICAgIHR5cGVu
YW1lIEdlbmVyYXRvcjcsIHR5cGVuYW1lIEdlbmVyYXRvcjgsIHR5cGVuYW1lIEdlbmVyYXRvcjks
Ci0gICAgdHlwZW5hbWUgR2VuZXJhdG9yMTA+Ci1pbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhv
bGRlcjEwPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9y
NCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwgR2VuZXJh
dG9yOSwKLSAgICBHZW5lcmF0b3IxMD4gQ29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBn
MSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBj
b25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRv
cjYmIGc2LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I3JiBnNywgY29uc3QgR2VuZXJhdG9yOCYg
ZzgsIGNvbnN0IEdlbmVyYXRvcjkmIGc5LAotICAgICAgICBjb25zdCBHZW5lcmF0b3IxMCYgZzEw
KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwPEdlbmVyYXRv
cjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgICBHZW5lcmF0b3I0LCBHZW5lcmF0b3I1
LCBHZW5lcmF0b3I2LCBHZW5lcmF0b3I3LCBHZW5lcmF0b3I4LCBHZW5lcmF0b3I5LAotICAgICAg
R2VuZXJhdG9yMTA+KAotICAgICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4LCBnOSwg
ZzEwKTsKLX0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLSMgZGVmaW5lIFRFU1Rf
UCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBcCi0gIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1Nf
TkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICAgICAgOiBwdWJsaWMgdGVzdF9j
YXNlX25hbWUgeyBcCi0gICBwdWJsaWM6IFwKLSAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRl
c3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpKCkge30gXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9k
eSgpOyBcCi0gICBwcml2YXRlOiBcCi0gICAgc3RhdGljIGludCBBZGRUb1JlZ2lzdHJ5KCkgeyBc
Ci0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVk
X3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0
ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwKLSAgICAg
ICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAgICAgICAg
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0UGF0dGVybihcCi0gICAgICAgICAg
ICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X2Nhc2VfbmFtZSksIFwKLSAgICAgICAg
ICAgICAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSksIFwKLSAgICAgICAgICAg
ICAgICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdE1ldGFGYWN0b3J5PCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oXAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk+KCkpOyBc
Ci0gICAgICByZXR1cm4gMDsgXAotICAgIH0gXAotICAgIHN0YXRpYyBpbnQgZ3Rlc3RfcmVnaXN0
ZXJpbmdfZHVtbXlfIEdURVNUX0FUVFJJQlVURV9VTlVTRURfOyBcCi0gICAgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyhcCi0gICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVz
dF9jYXNlX25hbWUsIHRlc3RfbmFtZSkpOyBcCi0gIH07IFwKLSAgaW50IEdURVNUX1RFU1RfQ0xB
U1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9uYW1lKTo6Z3Rlc3RfcmVnaXN0ZXJpbmdfZHVtbXlfID0gXAotICAgICAgR1RFU1RfVEVT
VF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6QWRkVG9SZWdpc3RyeSgp
OyBcCi0gIHZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9u
YW1lKTo6VGVzdEJvZHkoKQotCi0vLyBUaGUgb3B0aW9uYWwgbGFzdCBhcmd1bWVudCB0byBJTlNU
QU5USUFURV9URVNUX0NBU0VfUCBhbGxvd3MgdGhlIHVzZXIKLS8vIHRvIHNwZWNpZnkgYSBmdW5j
dGlvbiBvciBmdW5jdG9yIHRoYXQgZ2VuZXJhdGVzIGN1c3RvbSB0ZXN0IG5hbWUgc3VmZml4ZXMK
LS8vIGJhc2VkIG9uIHRoZSB0ZXN0IHBhcmFtZXRlcnMuIFRoZSBmdW5jdGlvbiBzaG91bGQgYWNj
ZXB0IG9uZSBhcmd1bWVudCBvZgotLy8gdHlwZSB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPGNsYXNz
IFBhcmFtVHlwZT4sIGFuZCByZXR1cm4gc3RkOjpzdHJpbmcuCisvLyBJTlNUQU5USUFURV9URVNU
X1NVSVRFX1AoVHdvQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKKy8vICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb21iaW5lKEJvb2woKSwgQm9vbCgpKSk7CisvLwordGVtcGxhdGUg
PHR5cGVuYW1lLi4uIEdlbmVyYXRvcj4KK2ludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
PEdlbmVyYXRvci4uLj4gQ29tYmluZShjb25zdCBHZW5lcmF0b3ImLi4uIGcpIHsKKyAgcmV0dXJu
IGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyPEdlbmVyYXRvci4uLj4oZy4uLik7Cit9
CisKKyNkZWZpbmUgVEVTVF9QKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGNsYXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFN
RV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgOiBwdWJsaWMgdGVzdF9zdWl0ZV9uYW1lIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgIHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1Rf
VEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSB7fSAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHZvaWQgVGVzdEJvZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICBwcml2YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdp
c3RyeSgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgLT5wYXJhbWV0ZXJpemVkX3Rlc3Rf
cmVnaXN0cnkoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
ICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyPHRlc3Rfc3VpdGVfbmFtZT4oICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1
aXRlX25hbWUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg
IDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pKSAg
ICAgICAgICAgXAorICAgICAgICAgIC0+QWRkVGVzdFBhdHRlcm4oICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgR1RFU1Rf
U1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25hbWUpLCBHVEVTVF9TVFJJTkdJRllfKHRlc3RfbmFtZSks
ICBcCisgICAgICAgICAgICAgIG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rv
cnk8R1RFU1RfVEVTVF9DTEFTU19OQU1FXyggXAorICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0
ZV9uYW1lLCB0ZXN0X25hbWUpPigpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBf
X0xJTkVfXykpOyAgICAgICAgICBcCisgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBH
VEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfRElTQUxM
T1dfQ09QWV9BTkRfQVNTSUdOXyhHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFt
ZSwgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X25hbWUpKTsgICAgICAgIFwKKyAgfTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgIGludCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X25hbWUpOjpndGVzdF9yZWdpc3RlcmluZ19kdW1teV8gPSAgICAgICAgICAgIFwKKyAgICAg
IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRU
b1JlZ2lzdHJ5KCk7ICAgICBcCisgIHZvaWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1
aXRlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5KCkKKworLy8gVGhlIGxhc3QgYXJndW1lbnQg
dG8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5Cisv
LyBnZW5lcmF0b3IgYW5kIGFuIG9wdGlvbmFsIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5l
cmF0ZXMgY3VzdG9tIHRlc3QgbmFtZQorLy8gc3VmZml4ZXMgYmFzZWQgb24gdGhlIHRlc3QgcGFy
YW1ldGVycy4gU3VjaCBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3Igc2hvdWxkCisvLyBhY2NlcHQgb25l
IGFyZ3VtZW50IG9mIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+
LCBhbmQKKy8vIHJldHVybiBzdGQ6OnN0cmluZy4KIC8vCiAvLyB0ZXN0aW5nOjpQcmludFRvU3Ry
aW5nUGFyYW1OYW1lIGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAogLy8g
cmV0dXJucyB0aGUgdmFsdWUgb2YgdGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKS4K
QEAgLTE0MTAsMjUgKzQ0OSw1OSBAQCBpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjEw
PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCiAvLyBhbHBoYW51bWVyaWMgY2hh
cmFjdGVycyBvciB1bmRlcnNjb3JlLiBCZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMK
IC8vIHRvIHN0ZDo6c3RyaW5nIGFuZCBDIHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNl
IHR5cGVzLgogCi0jIGRlZmluZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3Rf
Y2FzZV9uYW1lLCBnZW5lcmF0b3IsIC4uLikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6UGFyYW1HZW5lcmF0b3I8dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rl
c3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBn
ZW5lcmF0b3I7IH0gXAotICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVz
dF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5n
OjpUZXN0UGFyYW1JbmZvPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAg
ICByZXR1cm4gOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9u
YW1lOjpQYXJhbVR5cGU+IFwKLSAgICAgICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwK
LSAgc3RhdGljIGludCBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RF
U1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJ
bnN0YW5jZSgpLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdl
dFRlc3RDYXNlUGF0dGVybkhvbGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAj
dGVzdF9jYXNlX25hbWUsIFwKLSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29k
ZUxvY2F0aW9uKFwKLSAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRU
ZXN0Q2FzZUluc3RhbnRpYXRpb24oXAotICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwK
LSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNf
RXZhbEdlbmVyYXRvcl8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAg
ICAgICBfX0ZJTEVfXywgX19MSU5FX18pCisjZGVmaW5lIEdURVNUX0VYUEFORF8oYXJnKSBhcmcK
KyNkZWZpbmUgR1RFU1RfR0VUX0ZJUlNUXyhmaXJzdCwgLi4uKSBmaXJzdAorI2RlZmluZSBHVEVT
VF9HRVRfU0VDT05EXyhmaXJzdCwgc2Vjb25kLCAuLi4pIHNlY29uZAorCisjZGVmaW5lIElOU1RB
TlRJQVRFX1RFU1RfU1VJVEVfUChwcmVmaXgsIHRlc3Rfc3VpdGVfbmFtZSwgLi4uKSAgICAgICAg
ICAgICAgICBcCisgIHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0
ZXN0X3N1aXRlX25hbWU6OlBhcmFtVHlwZT4gICAgICBcCisgICAgICBndGVzdF8jI3ByZWZpeCMj
dGVzdF9zdWl0ZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7ICAgICAgICAgICAgICAgICAgICBc
CisgICAgcmV0dXJuIEdURVNUX0VYUEFORF8oR1RFU1RfR0VUX0ZJUlNUXyhfX1ZBX0FSR1NfXywg
RFVNTVlfUEFSQU1fKSk7ICAgICAgICBcCisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRp
YyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X3N1aXRlX25hbWUjI19FdmFsR2Vu
ZXJhdGVOYW1lXyggICBcCisgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88dGVz
dF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7ICAgICBcCisgICAgaWYgKDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkFsd2F5c0ZhbHNlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0Tm90RW1wdHkoR1RFU1RfRVhQ
QU5EXyhHVEVTVF9HRVRfU0VDT05EXyggICAgICBcCisgICAgICAgICAgX19WQV9BUkdTX18sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVmYXVsdFBhcmFtTmFtZTx0ZXN0X3N1aXRl
X25hbWU6OlBhcmFtVHlwZT4sICBcCisgICAgICAgICAgRFVNTVlfUEFSQU1fKSkpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBhdXRv
IHQgPSBzdGQ6Om1ha2VfdHVwbGUoX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6dHVwbGVfc2l6ZTxkZWNsdHlw
ZSh0KT46OnZhbHVlIDw9IDIsICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg
ICJUb28gTWFueSBBcmdzISIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuICgoR1RFU1RfRVhQQU5EXyhH
VEVTVF9HRVRfU0VDT05EXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIF9fVkFfQVJHU19fLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlZmF1bHRQ
YXJhbU5hbWU8dGVzdF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+LCAgICBcCisgICAgICAgIERVTU1Z
X1BBUkFNXykpKSkoaW5mbyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBpbnQgZ3Rlc3RfIyNw
cmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX2R1bW15XyAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
ICAgICAgIC0+cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIC5HZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVy
PHRlc3Rfc3VpdGVfbmFtZT4oICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICBHVEVTVF9TVFJJTkdJRllfKHRlc3Rfc3VpdGVfbmFtZSksICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRp
b24oX19GSUxFX18sIF9fTElORV9fKSkgICAgICBcCisgICAgICAgICAgICAgIC0+QWRkVGVzdFN1
aXRlSW5zdGFudGlhdGlvbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKHByZWZpeCksICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgj
I3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxHZW5lcmF0b3JfLCAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX0V2YWxHZW5lcmF0ZU5h
bWVfLCAgICAgICBcCisgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pCisKKwor
Ly8gQWxsb3cgTWFya2luZyBhIFBhcmFtZXRlcml6ZWQgdGVzdCBjbGFzcyBhcyBub3QgbmVlZGlu
ZyB0byBiZSBpbnN0YW50aWF0ZWQuCisjZGVmaW5lIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVE
X1BBUkFNRVRFUklaRURfVEVTVChUKSAgICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBn
dGVzdF9kb19ub3RfdXNlX291dHNpZGVfbmFtZXNwYWNlX3Njb3BlIHt9ICAgICAgICAgICAgICAg
ICAgIFwKKyAgc3RhdGljIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1hcmtBc0lnbm9yZWQg
Z3Rlc3RfYWxsb3dfaWdub3JlXyMjVCggXAorICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUKSkKKwor
Ly8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
IHN0YXRpY19hc3NlcnQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW5zdGFudGlhdGVUZXN0Q2FzZV9Q
X0lzRGVwcmVjYXRlZCgpLCBcCisgICAgICAgICAgICAgICAgIiIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIElOU1RBTlRJQVRFX1RF
U1RfU1VJVEVfUAorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
IAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1bXAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzRmMmIzYjU2OTMzMDAxMmU4NWVlM2NmNGZkNTdlYjBi
NTQyMWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLnB1
bXAKKysrIC9kZXYvbnVsbApAQCAtMSw1MDAgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSot
Ci0kdmFyIG4gPSA1MCAgJCQgTWF4aW11bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3
YW50IHRvIHN1cHBvcnQuCi0kdmFyIG1heHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9m
IENvbWJpbmUgYXJndW1lbnRzIHdlIHdhbnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4
LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBNYWNyb3MgYW5kIGZ1bmN0aW9ucyBm
b3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMKLS8vIGluIEdvb2dsZSBDKysgVGVz
dGluZyBhbmQgTW9ja2luZyBGcmFtZXdvcmsgKEdvb2dsZSBUZXN0KQotLy8KLS8vIFRoaXMgZmls
ZSBpcyBnZW5lcmF0ZWQgYnkgYSBTQ1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KLS8v
IEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfUEFSQU1fVEVTVF9IXwotCi0KLS8vIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYWxsb3cg
eW91IHRvIHRlc3QgeW91ciBjb2RlIHdpdGggZGlmZmVyZW50Ci0vLyBwYXJhbWV0ZXJzIHdpdGhv
dXQgd3JpdGluZyBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgdGVzdC4KLS8vCi0vLyBIZXJl
IGlzIGhvdyB5b3UgdXNlIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHM6Ci0KLSNpZiAwCi0KLS8v
IFRvIHdyaXRlIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMsIGZpcnN0IHlvdSBzaG91bGQgZGVm
aW5lIGEgZml4dHVyZQotLy8gY2xhc3MuIEl0IGlzIHVzdWFsbHkgZGVyaXZlZCBmcm9tIHRlc3Rp
bmc6OlRlc3RXaXRoUGFyYW08VD4gKHNlZSBiZWxvdyBmb3IKLS8vIGFub3RoZXIgaW5oZXJpdGFu
Y2Ugc2NoZW1lIHRoYXQncyBzb21ldGltZXMgdXNlZnVsIGluIG1vcmUgY29tcGxpY2F0ZWQKLS8v
IGNsYXNzIGhpZXJhcmNoaWVzKSwgd2hlcmUgdGhlIHR5cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFs
dWVzLgotLy8gVGVzdFdpdGhQYXJhbTxUPiBpcyBpdHNlbGYgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6
OlRlc3QuIFQgY2FuIGJlIGFueQotLy8gY29weWFibGUgdHlwZS4gSWYgaXQncyBhIHJhdyBwb2lu
dGVyLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUKLS8vIGxpZmVzcGFuIG9m
IHRoZSBwb2ludGVkIHZhbHVlcy4KLQotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6
OlRlc3RXaXRoUGFyYW08Y29uc3QgY2hhcio+IHsKLSAgLy8gWW91IGNhbiBpbXBsZW1lbnQgYWxs
IHRoZSB1c3VhbCBjbGFzcyBmaXh0dXJlIG1lbWJlcnMgaGVyZS4KLX07Ci0KLS8vIFRoZW4sIHVz
ZSB0aGUgVEVTVF9QIG1hY3JvIHRvIGRlZmluZSBhcyBtYW55IHBhcmFtZXRlcml6ZWQgdGVzdHMK
LS8vIGZvciB0aGlzIGZpeHR1cmUgYXMgeW91IHdhbnQuIFRoZSBfUCBzdWZmaXggaXMgZm9yICJw
YXJhbWV0ZXJpemVkIgotLy8gb3IgInBhdHRlcm4iLCB3aGljaGV2ZXIgeW91IHByZWZlciB0byB0
aGluay4KLQotVEVTVF9QKEZvb1Rlc3QsIERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3Qs
IGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAg
Ly8gb2YgdGhlIFRlc3RXaXRoUGFyYW08VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFo
KEdldFBhcmFtKCkpKTsKLSAgLi4uCi19Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkg
ewotICAuLi4KLX0KLQotLy8gRmluYWxseSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QKLS8vIGNhc2Ugd2l0aCBhbnkgc2V0IG9mIHBh
cmFtZXRlcnMgeW91IHdhbnQuIEdvb2dsZSBUZXN0IGRlZmluZXMgYSBudW1iZXIKLS8vIG9mIGZ1
bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyB0ZXN0IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQg
d2UgY2FsbAotLy8gKHN1cnByaXNlISkgcGFyYW1ldGVyIGdlbmVyYXRvcnMuIEhlcmUgaXMgYSBz
dW1tYXJ5IG9mIHRoZW0sIHdoaWNoCi0vLyBhcmUgYWxsIGluIHRoZSB0ZXN0aW5nIG5hbWVzcGFj
ZToKLS8vCi0vLwotLy8gIFJhbmdlKGJlZ2luLCBlbmQgWywgc3RlcF0pIC0gWWllbGRzIHZhbHVl
cyB7YmVnaW4sIGJlZ2luK3N0ZXAsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
ZWdpbitzdGVwK3N0ZXAsIC4uLn0uIFRoZSB2YWx1ZXMgZG8gbm90Ci0vLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbmNsdWRlIGVuZC4gc3RlcCBkZWZhdWx0cyB0byAxLgotLy8gIFZh
bHVlcyh2MSwgdjIsIC4uLiwgdk4pICAgIC0gWWllbGRzIHZhbHVlcyB7djEsIHYyLCAuLi4sIHZO
fS4KLS8vICBWYWx1ZXNJbihjb250YWluZXIpICAgICAgICAtIFlpZWxkcyB2YWx1ZXMgZnJvbSBh
IEMtc3R5bGUgYXJyYXksIGFuIFNUTAotLy8gIFZhbHVlc0luKGJlZ2luLGVuZCkgICAgICAgICAg
Y29udGFpbmVyLCBvciBhbiBpdGVyYXRvciByYW5nZSBbYmVnaW4sIGVuZCkuCi0vLyAgQm9vbCgp
ICAgICAgICAgICAgICAgICAgICAgLSBZaWVsZHMgc2VxdWVuY2Uge2ZhbHNlLCB0cnVlfS4KLS8v
ICBDb21iaW5lKGcxLCBnMiwgLi4uLCBnTikgICAtIFlpZWxkcyBhbGwgY29tYmluYXRpb25zICh0
aGUgQ2FydGVzaWFuIHByb2R1Y3QKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciB0aGUgbWF0aCBzYXZ2eSkgb2YgdGhlIHZhbHVlcyBnZW5lcmF0ZWQKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBOIGdlbmVyYXRvcnMuCi0vLwotLy8gRm9yIG1vcmUg
ZGV0YWlscywgc2VlIGNvbW1lbnRzIGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlv
bnMgYmVsb3cKLS8vIGluIHRoaXMgZmlsZS4KLS8vCi0vLyBUaGUgZm9sbG93aW5nIHN0YXRlbWVu
dCB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGZyb20gdGhlIEZvb1Rlc3QgdGVzdCBjYXNlCi0vLyBl
YWNoIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAibWVlbnkiLCAibWlueSIsIGFuZCAibW9lIi4KLQot
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFudGlhdGlvbk5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBGb29UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJtZWVu
eSIsICJtaW55IiwgIm1vZSIpKTsKLQotLy8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3Rh
bmNlcyBvZiB0aGUgcGF0dGVybiwgKHllcywgeW91Ci0vLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9y
ZSB0aGVuIG9uY2UpIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUKLS8vIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIG1hY3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLS8v
IGFjdHVhbCB0ZXN0IGNhc2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMg
Zm9yIGRpZmZlcmVudAotLy8gaW5zdGFudGlhdGlvbnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0
YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZQotLy8gdGhlc2UgbmFtZXM6Ci0vLwotLy8gICAgKiBJ
bnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzAgZm9yICJtZWVueSIKLS8vICAgICog
SW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8xIGZvciAibWlueSIKLS8vICAgICog
SW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5Eb2VzQmxhaC8yIGZvciAibW9lIgotLy8gICAgKiBJ
bnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzAgZm9yICJtZWVueSIKLS8vICAg
ICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8xIGZvciAibWlueSIKLS8v
ICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9vVGVzdC5IYXNCbGFoQmxhaC8yIGZvciAibW9lIgot
Ly8KLS8vIFlvdSBjYW4gdXNlIHRoZXNlIG5hbWVzIGluIC0tZ3Rlc3RfZmlsdGVyLgotLy8KLS8v
IFRoaXMgc3RhdGVtZW50IHdpbGwgaW5zdGFudGlhdGUgYWxsIHRlc3RzIGZyb20gRm9vVGVzdCBh
Z2FpbiwgZWFjaAotLy8gd2l0aCBwYXJhbWV0ZXIgdmFsdWVzICJjYXQiIGFuZCAiZG9nIjoKLQot
Y29uc3QgY2hhciogcGV0c1tdID0geyJjYXQiLCAiZG9nIn07Ci1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChBbm90aGVySW5zdGFudGlhdGlvbk5hbWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsK
LQotLy8gVGhlIHRlc3RzIGZyb20gdGhlIGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlIHRo
ZXNlIG5hbWVzOgotLy8KLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3Qu
RG9lc0JsYWgvMCBmb3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMSBmb3IgImRvZyIKLS8vICAgICogQW5vdGhlckluc3RhbnRpYXRpb25O
YW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMCBmb3IgImNhdCIKLS8vICAgICogQW5vdGhlckluc3Rh
bnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMSBmb3IgImRvZyIKLS8vCi0vLyBQbGVh
c2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHdpbGwgaW5zdGFudGlhdGUgYWxs
IHRlc3RzCi0vLyBpbiB0aGUgZ2l2ZW4gdGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRlZmluaXRp
b25zIGNvbWUgYmVmb3JlIG9yCi0vLyBBRlRFUiB0aGUgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ag
c3RhdGVtZW50LgotLy8KLS8vIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCBnZW5lcmF0b3IgZXhwcmVz
c2lvbnMgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIHRvIHRoZQotLy8gZ2VuZXJhdG9ycykgYXJlIGV2
YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpLCBhZnRlciBtYWluKCkgaGFzIHN0YXJ0ZWQuCi0v
LyBUaGlzIGFsbG93cyB0aGUgdXNlciBvbiBvbmUgaGFuZCwgdG8gYWRqdXN0IGdlbmVyYXRvciBw
YXJhbWV0ZXJzIGluIG9yZGVyCi0vLyB0byBkeW5hbWljYWxseSBkZXRlcm1pbmUgYSBzZXQgb2Yg
dGVzdHMgdG8gcnVuIGFuZCBvbiB0aGUgb3RoZXIgaGFuZCwKLS8vIGdpdmUgdGhlIHVzZXIgYSBj
aGFuY2UgdG8gaW5zcGVjdCB0aGUgZ2VuZXJhdGVkIHRlc3RzIHdpdGggR29vZ2xlIFRlc3QKLS8v
IHJlZmxlY3Rpb24gQVBJIGJlZm9yZSBSVU5fQUxMX1RFU1RTKCkgaXMgZXhlY3V0ZWQuCi0vLwot
Ly8gWW91IGNhbiBzZWUgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0LmNjIGFuZCBzYW1wbGVzL3Nh
bXBsZThfdW5pdHRlc3QuY2MKLS8vIGZvciBtb3JlIGV4YW1wbGVzLgotLy8KLS8vIEluIHRoZSBm
dXR1cmUsIHdlIHBsYW4gdG8gcHVibGlzaCB0aGUgQVBJIGZvciBkZWZpbmluZyBuZXcgcGFyYW1l
dGVyCi0vLyBnZW5lcmF0b3JzLiBCdXQgZm9yIG5vdyB0aGlzIGludGVyZmFjZSByZW1haW5zIHBh
cnQgb2YgdGhlIGludGVybmFsCi0vLyBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgc3ViamVjdCB0byBj
aGFuZ2UuCi0vLwotLy8KLS8vIEEgcGFyYW1ldGVyaXplZCB0ZXN0IGZpeHR1cmUgbXVzdCBiZSBk
ZXJpdmVkIGZyb20gdGVzdGluZzo6VGVzdCBhbmQgZnJvbQotLy8gdGVzdGluZzo6V2l0aFBhcmFt
SW50ZXJmYWNlPFQ+LCB3aGVyZSBUIGlzIHRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIKLS8vIHZh
bHVlcy4gSW5oZXJpdGluZyBmcm9tIFRlc3RXaXRoUGFyYW08VD4gc2F0aXNmaWVzIHRoYXQgcmVx
dWlyZW1lbnQgYmVjYXVzZQotLy8gVGVzdFdpdGhQYXJhbTxUPiBpbmhlcml0cyBmcm9tIGJvdGgg
VGVzdCBhbmQgV2l0aFBhcmFtSW50ZXJmYWNlLiBJbiBtb3JlCi0vLyBjb21wbGljYXRlZCBoaWVy
YXJjaGllcywgaG93ZXZlciwgaXQgaXMgb2NjYXNpb25hbGx5IHVzZWZ1bCB0byBpbmhlcml0Ci0v
LyBzZXBhcmF0ZWx5IGZyb20gVGVzdCBhbmQgV2l0aFBhcmFtSW50ZXJmYWNlLiBGb3IgZXhhbXBs
ZToKLQotY2xhc3MgQmFzZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgLy8gWW91
IGNhbiBpbmhlcml0IGFsbCB0aGUgdXN1YWwgbWVtYmVycyBmb3IgYSBub24tcGFyYW1ldGVyaXpl
ZCB0ZXN0Ci0gIC8vIGZpeHR1cmUgaGVyZS4KLX07Ci0KLWNsYXNzIERlcml2ZWRUZXN0IDogcHVi
bGljIEJhc2VUZXN0LCBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8aW50PiB7
Ci0gIC8vIFRoZSB1c3VhbCB0ZXN0IGZpeHR1cmUgbWVtYmVycyBnbyBoZXJlIHRvby4KLX07Ci0K
LVRFU1RfRihCYXNlVGVzdCwgSGFzRm9vKSB7Ci0gIC8vIFRoaXMgaXMgYW4gb3JkaW5hcnkgbm9u
LXBhcmFtZXRlcml6ZWQgdGVzdC4KLX0KLQotVEVTVF9QKERlcml2ZWRUZXN0LCBEb2VzQmxhaCkg
ewotICAvLyBHZXRQYXJhbSB3b3JrcyBqdXN0IHRoZSBzYW1lIGhlcmUgYXMgaWYgeW91IGluaGVy
aXQgZnJvbSBUZXN0V2l0aFBhcmFtLgotICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgp
KSk7Ci19Ci0KLSNlbmRpZiAgLy8gMAotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIgotCi0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSMgaW5jbHVkZSA8dXRpbGl0eT4KLSNl
bmRpZgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKLSNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCIKLQotbmFtZXNwYWNlIHRlc3Rp
bmcgewotCi0vLyBGdW5jdGlvbnMgcHJvZHVjaW5nIHBhcmFtZXRlciBnZW5lcmF0b3JzLgotLy8K
LS8vIEdvb2dsZSBUZXN0IHVzZXMgdGhlc2UgZ2VuZXJhdG9ycyB0byBwcm9kdWNlIHBhcmFtZXRl
cnMgZm9yIHZhbHVlLQotLy8gcGFyYW1ldGVyaXplZCB0ZXN0cy4gV2hlbiBhIHBhcmFtZXRlcml6
ZWQgdGVzdCBjYXNlIGlzIGluc3RhbnRpYXRlZAotLy8gd2l0aCBhIHBhcnRpY3VsYXIgZ2VuZXJh
dG9yLCBHb29nbGUgVGVzdCBjcmVhdGVzIGFuZCBydW5zIHRlc3RzCi0vLyBmb3IgZWFjaCBlbGVt
ZW50IGluIHRoZSBzZXF1ZW5jZSBwcm9kdWNlZCBieSB0aGUgZ2VuZXJhdG9yLgotLy8KLS8vIElu
IHRoZSBmb2xsb3dpbmcgc2FtcGxlLCB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBGb29UZXN0IGFyZSBp
bnN0YW50aWF0ZWQKLS8vIGVhY2ggdGhyZWUgdGltZXMgd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIDMs
IDUsIGFuZCA4OgotLy8KLS8vIGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxp
bnQ+IHsgLi4uIH07Ci0vLwotLy8gVEVTVF9QKEZvb1Rlc3QsIFRlc3RUaGlzKSB7Ci0vLyB9Ci0v
LyBURVNUX1AoRm9vVGVzdCwgVGVzdFRoYXQpIHsKLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFRlc3RTZXF1ZW5jZSwgRm9vVGVzdCwgVmFsdWVzKDMsIDUsIDgpKTsKLS8vCi0KLS8v
IFJhbmdlKCkgcmV0dXJucyBnZW5lcmF0b3JzIHByb3ZpZGluZyBzZXF1ZW5jZXMgb2YgdmFsdWVz
IGluIGEgcmFuZ2UuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBSYW5nZShzdGFydCwgZW5kKQotLy8g
ICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHtz
dGFydCwgc3RhcnQrMSwKLS8vICAgICBzdGFydCsyLCAuLi4sIH0uCi0vLyBSYW5nZShzdGFydCwg
ZW5kLCBzdGVwKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIGEgc2VxdWVu
Y2Ugb2YgdmFsdWVzIHtzdGFydCwgc3RhcnQrc3RlcCwKLS8vICAgICBzdGFydCtzdGVwK3N0ZXAs
IC4uLiwgfS4KLS8vIE5vdGVzOgotLy8gICAqIFRoZSBnZW5lcmF0ZWQgc2VxdWVuY2VzIG5ldmVy
IGluY2x1ZGUgZW5kLiBGb3IgZXhhbXBsZSwgUmFuZ2UoMSwgNSkKLS8vICAgICByZXR1cm5zIGEg
Z2VuZXJhdG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIHsxLCAyLCAzLCA0fS4gUmFuZ2UoMSwgOSwg
MikKLS8vICAgICByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyB7MSwgMywgNSwgN30uCi0v
LyAgICogc3RhcnQgYW5kIGVuZCBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZS4gVGhhdCB0eXBlIG1h
eSBiZSBhbnkgaW50ZWdyYWwgb3IKLS8vICAgICBmbG9hdGluZy1wb2ludCB0eXBlIG9yIGEgdXNl
ciBkZWZpbmVkIHR5cGUgc2F0aXNmeWluZyB0aGVzZSBjb25kaXRpb25zOgotLy8gICAgICogSXQg
bXVzdCBiZSBhc3NpZ25hYmxlIChoYXZlIG9wZXJhdG9yPSgpIGRlZmluZWQpLgotLy8gICAgICog
SXQgbXVzdCBoYXZlIG9wZXJhdG9yKygpIChvcGVyYXRvcisoaW50LWNvbXBhdGlibGUgdHlwZSkg
Zm9yCi0vLyAgICAgICB0d28tb3BlcmFuZCB2ZXJzaW9uKS4KLS8vICAgICAqIEl0IG11c3QgaGF2
ZSBvcGVyYXRvcjwoKSBkZWZpbmVkLgotLy8gICAgIEVsZW1lbnRzIGluIHRoZSByZXN1bHRpbmcg
c2VxdWVuY2VzIHdpbGwgYWxzbyBoYXZlIHRoYXQgdHlwZS4KLS8vICAgKiBDb25kaXRpb24gc3Rh
cnQgPCBlbmQgbXVzdCBiZSBzYXRpc2ZpZWQgaW4gb3JkZXIgZm9yIHJlc3VsdGluZyBzZXF1ZW5j
ZXMKLS8vICAgICB0byBjb250YWluIGFueSBlbGVtZW50cy4KLS8vCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgSW5jcmVtZW50VD4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBS
YW5nZShUIHN0YXJ0LCBUIGVuZCwgSW5jcmVtZW50VCBzdGVwKSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6UGFyYW1HZW5lcmF0b3I8VD4oCi0gICAgICBuZXcgaW50ZXJuYWw6OlJhbmdlR2VuZXJhdG9y
PFQsIEluY3JlbWVudFQ+KHN0YXJ0LCBlbmQsIHN0ZXApKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQp
IHsKLSAgcmV0dXJuIFJhbmdlKHN0YXJ0LCBlbmQsIDEpOwotfQotCi0vLyBWYWx1ZXNJbigpIGZ1
bmN0aW9uIGFsbG93cyBnZW5lcmF0aW9uIG9mIHRlc3RzIHdpdGggcGFyYW1ldGVycyBjb21pbmcg
ZnJvbQotLy8gYSBjb250YWluZXIuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1ZXNJbihjb25z
dCBUICgmYXJyYXkpW05dKQotLy8gICAtIHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNl
cXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZyb20KLS8vICAgICBhIEMtc3R5bGUgYXJyYXkuCi0vLyBW
YWx1ZXNJbihjb25zdCBDb250YWluZXImIGNvbnRhaW5lcikKLS8vICAgLSByZXR1cm5zIGEgZ2Vu
ZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBmcm9tCi0vLyAgICAgYW4g
U1RMLXN0eWxlIGNvbnRhaW5lci4KLS8vIFZhbHVlc0luKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRv
ciBlbmQpCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdp
dGggZWxlbWVudHMgZnJvbQotLy8gICAgIGEgcmFuZ2UgW2JlZ2luLCBlbmQpIGRlZmluZWQgYnkg
YSBwYWlyIG9mIFNUTC1zdHlsZSBpdGVyYXRvcnMuIFRoZXNlCi0vLyAgICAgaXRlcmF0b3JzIGNh
biBhbHNvIGJlIHBsYWluIEMgcG9pbnRlcnMuCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBWYWx1
ZXNJbiBjb3BpZXMgdGhlIHZhbHVlcyBmcm9tIHRoZSBjb250YWluZXJzCi0vLyBwYXNzZWQgaW4g
YW5kIGtlZXBzIHRoZW0gdG8gZ2VuZXJhdGUgdGVzdHMgaW4gUlVOX0FMTF9URVNUUygpLgotLy8K
LS8vIEV4YW1wbGVzOgotLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBj
YXNlIFN0cmluZ1Rlc3QKLS8vIGVhY2ggd2l0aCBDLXN0cmluZyB2YWx1ZXMgb2YgImZvbyIsICJi
YXIiLCBhbmQgImJheiI6Ci0vLwotLy8gY29uc3QgY2hhciogc3RyaW5nc1tdID0geyJmb28iLCAi
YmFyIiwgImJheiJ9OwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RyaW5nU2VxdWVuY2Us
IFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3MpKTsKLS8vCi0vLyBUaGlzIGluc3RhbnRpYXRl
cyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBTdGxTdHJpbmdUZXN0Ci0vLyBlYWNoIHdpdGggU1RMIHN0
cmluZ3Mgd2l0aCB2YWx1ZXMgImEiIGFuZCAiYiI6Ci0vLwotLy8gOjpzdGQ6OnZlY3RvcjwgOjpz
dGQ6OnN0cmluZz4gR2V0UGFyYW1ldGVyU3RyaW5ncygpIHsKLS8vICAgOjpzdGQ6OnZlY3Rvcjwg
OjpzdGQ6OnN0cmluZz4gdjsKLS8vICAgdi5wdXNoX2JhY2soImEiKTsKLS8vICAgdi5wdXNoX2Jh
Y2soImIiKTsKLS8vICAgcmV0dXJuIHY7Ci0vLyB9Ci0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoQ2hhclNlcXVlbmNlLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5n
VGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKEdldFBhcmFtZXRlclN0
cmluZ3MoKSkpOwotLy8KLS8vCi0vLyBUaGlzIHdpbGwgYWxzbyBpbnN0YW50aWF0ZSB0ZXN0cyBm
cm9tIENoYXJUZXN0Ci0vLyBlYWNoIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAnYScgYW5kICdiJzoK
LS8vCi0vLyA6OnN0ZDo6bGlzdDxjaGFyPiBHZXRQYXJhbWV0ZXJDaGFycygpIHsKLS8vICAgOjpz
dGQ6Omxpc3Q8Y2hhcj4gbGlzdDsKLS8vICAgbGlzdC5wdXNoX2JhY2soJ2EnKTsKLS8vICAgbGlz
dC5wdXNoX2JhY2soJ2InKTsKLS8vICAgcmV0dXJuIGxpc3Q7Ci0vLyB9Ci0vLyA6OnN0ZDo6bGlz
dDxjaGFyPiBsID0gR2V0UGFyYW1ldGVyQ2hhcnMoKTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKENoYXJTZXF1ZW5jZTIsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyVGVzdCwK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkp
OwotLy8KLXRlbXBsYXRlIDx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFy
YW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJh
aXRzPEZvcndhcmRJdGVyYXRvcj46OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0
b3IgYmVnaW4sIEZvcndhcmRJdGVyYXRvciBlbmQpIHsKLSAgdHlwZWRlZiB0eXBlbmFtZSA6OnRl
c3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ci0gICAgICA6
OnZhbHVlX3R5cGUgUGFyYW1UeXBlOwotICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9y
PFBhcmFtVHlwZT4oCi0gICAgICBuZXcgaW50ZXJuYWw6OlZhbHVlc0luSXRlcmF0b3JSYW5nZUdl
bmVyYXRvcjxQYXJhbVR5cGU+KGJlZ2luLCBlbmQpKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQsIHNpemVfdCBOPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0
IFQgKCZhcnJheSlbTl0pIHsKLSAgcmV0dXJuIFZhbHVlc0luKGFycmF5LCBhcnJheSArIE4pOwot
fQotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9y
PHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29u
dGFpbmVyJiBjb250YWluZXIpIHsKLSAgcmV0dXJuIFZhbHVlc0luKGNvbnRhaW5lci5iZWdpbigp
LCBjb250YWluZXIuZW5kKCkpOwotfQotCi0vLyBWYWx1ZXMoKSBhbGxvd3MgZ2VuZXJhdGluZyB0
ZXN0cyBmcm9tIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGxpc3Qgb2YKLS8vIHBhcmFtZXRlcnMuCi0v
LwotLy8gU3lub3BzaXM6Ci0vLyBWYWx1ZXMoVCB2MSwgVCB2MiwgLi4uLCBUIHZOKQotLy8gICAt
IHJldHVybnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHYx
LCB2MiwgLi4uLCB2Ti4KLS8vCi0vLyBGb3IgZXhhbXBsZSwgdGhpcyBpbnN0YW50aWF0ZXMgdGVz
dHMgZnJvbSB0ZXN0IGNhc2UgQmFyVGVzdCBlYWNoCi0vLyB3aXRoIHZhbHVlcyAib25lIiwgInR3
byIsIGFuZCAidGhyZWUiOgotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE51bVNlcXVl
bmNlLCBCYXJUZXN0LCBWYWx1ZXMoIm9uZSIsICJ0d28iLCAidGhyZWUiKSk7Ci0vLwotLy8gVGhp
cyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgQmF6VGVzdCBlYWNoIHdpdGggdmFs
dWVzIDEsIDIsIDMuNS4KLS8vIFRoZSBleGFjdCB0eXBlIG9mIHZhbHVlcyB3aWxsIGRlcGVuZCBv
biB0aGUgdHlwZSBvZiBwYXJhbWV0ZXIgaW4gQmF6VGVzdC4KLS8vCi0vLyBJTlNUQU5USUFURV9U
RVNUX0NBU0VfUChGbG9hdGluZ051bWJlcnMsIEJhelRlc3QsIFZhbHVlcygxLCAyLCAzLjUpKTsK
LS8vCi0vLyBDdXJyZW50bHksIFZhbHVlcygpIHN1cHBvcnRzIGZyb20gMSB0byAkbiBwYXJhbWV0
ZXJzLgotLy8KLSRyYW5nZSBpIDEuLm4KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1w
bGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkkaTwk
Zm9yIGosIFtbVCRqXV0+IFZhbHVlcygkZm9yIGosIFtbVCRqIHYkal1dKSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheSRpPCRmb3IgaiwgW1tUJGpdXT4oJGZvciBqLCBbW3Ykal1dKTsK
LX0KLQotXV0KLQotLy8gQm9vbCgpIGFsbG93cyBnZW5lcmF0aW5nIHRlc3RzIHdpdGggcGFyYW1l
dGVycyBpbiBhIHNldCBvZiAoZmFsc2UsIHRydWUpLgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQm9v
bCgpCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGgg
ZWxlbWVudHMge2ZhbHNlLCB0cnVlfS4KLS8vCi0vLyBJdCBpcyB1c2VmdWwgd2hlbiB0ZXN0aW5n
IGNvZGUgdGhhdCBkZXBlbmRzIG9uIEJvb2xlYW4gZmxhZ3MuIENvbWJpbmF0aW9ucwotLy8gb2Yg
bXVsdGlwbGUgZmxhZ3MgY2FuIGJlIHRlc3RlZCB3aGVuIHNldmVyYWwgQm9vbCgpJ3MgYXJlIGNv
bWJpbmVkIHVzaW5nCi0vLyBDb21iaW5lKCkgZnVuY3Rpb24uCi0vLwotLy8gSW4gdGhlIGZvbGxv
d2luZyBleGFtcGxlIGFsbCB0ZXN0cyBpbiB0aGUgdGVzdCBjYXNlIEZsYWdEZXBlbmRlbnRUZXN0
Ci0vLyB3aWxsIGJlIGluc3RhbnRpYXRlZCB0d2ljZSB3aXRoIHBhcmFtZXRlcnMgZmFsc2UgYW5k
IHRydWUuCi0vLwotLy8gY2xhc3MgRmxhZ0RlcGVuZGVudFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdFdpdGhQYXJhbTxib29sPiB7Ci0vLyAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLS8vICAg
ICBleHRlcm5hbF9mbGFnID0gR2V0UGFyYW0oKTsKLS8vICAgfQotLy8gfQotLy8gSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwgQm9vbCgpKTsK
LS8vCi1pbmxpbmUgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPGJvb2w+IEJvb2woKSB7Ci0gIHJl
dHVybiBWYWx1ZXMoZmFsc2UsIHRydWUpOwotfQotCi0jIGlmIEdURVNUX0hBU19DT01CSU5FCi0v
LyBDb21iaW5lKCkgYWxsb3dzIHRoZSB1c2VyIHRvIGNvbWJpbmUgdHdvIG9yIG1vcmUgc2VxdWVu
Y2VzIHRvIHByb2R1Y2UKLS8vIHZhbHVlcyBvZiBhIENhcnRlc2lhbiBwcm9kdWN0IG9mIHRob3Nl
IHNlcXVlbmNlcycgZWxlbWVudHMuCi0vLwotLy8gU3lub3BzaXM6Ci0vLyBDb21iaW5lKGdlbjEs
IGdlbjIsIC4uLiwgZ2VuTikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBz
ZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyBjb21pbmcgZnJvbQotLy8gICAgIHRoZSBDYXJ0ZXNpYW4g
cHJvZHVjdCBvZiBlbGVtZW50cyBmcm9tIHRoZSBzZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5Ci0vLyAg
ICAgZ2VuMSwgZ2VuMiwgLi4uLCBnZW5OLiBUaGUgc2VxdWVuY2UgZWxlbWVudHMgd2lsbCBoYXZl
IGEgdHlwZSBvZgotLy8gICAgIHR1cGxlPFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAu
Li4sIFROIGFyZSB0aGUgdHlwZXMKLS8vICAgICBvZiBlbGVtZW50cyBmcm9tIHNlcXVlbmNlcyBw
cm9kdWNlcyBieSBnZW4xLCBnZW4yLCAuLi4sIGdlbk4uCi0vLwotLy8gQ29tYmluZSBjYW4gaGF2
ZSB1cCB0byAkbWF4dHVwbGUgYXJndW1lbnRzLiBUaGlzIG51bWJlciBpcyBjdXJyZW50bHkgbGlt
aXRlZAotLy8gYnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0dXBsZSBp
bXBsZW1lbnRhdGlvbiB1c2VkIGJ5IEdvb2dsZQotLy8gVGVzdC4KLS8vCi0vLyBFeGFtcGxlOgot
Ly8KLS8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiB0ZXN0IGNhc2UgQW5pbWFsVGVz
dCBlYWNoIG9uZSB3aXRoCi0vLyB0aGUgcGFyYW1ldGVyIHZhbHVlcyB0dXBsZSgiY2F0IiwgQkxB
Q0spLCB0dXBsZSgiY2F0IiwgV0hJVEUpLAotLy8gdHVwbGUoImRvZyIsIEJMQUNLKSwgYW5kIHR1
cGxlKCJkb2ciLCBXSElURSk6Ci0vLwotLy8gZW51bSBDb2xvciB7IEJMQUNLLCBHUkFZLCBXSElU
RSB9OwotLy8gY2xhc3MgQW5pbWFsVGVzdAotLy8gICAgIDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08dHVwbGU8Y29uc3QgY2hhciosIENvbG9yPiA+IHsuLi59OwotLy8KLS8vIFRFU1Rf
UChBbmltYWxUZXN0LCBBbmltYWxMb29rc05pY2UpIHsuLi59Ci0vLwotLy8gSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AoQW5pbWFsVmFyaWF0aW9ucywgQW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAg
ICAgICAgICAgICAgIENvbWJpbmUoVmFsdWVzKCJjYXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhCTEFDSywgV0hJVEUpKSk7Ci0vLwotLy8gVGhp
cyB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGluIEZsYWdEZXBlbmRlbnRUZXN0IHdpdGggYWxsIHZh
cmlhdGlvbnMgb2YgdHdvCi0vLyBCb29sZWFuIGZsYWdzOgotLy8KLS8vIGNsYXNzIEZsYWdEZXBl
bmRlbnRUZXN0Ci0vLyAgICAgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTx0dXBsZTxi
b29sLCBib29sPiA+IHsKLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotLy8gICAgIC8vIEFz
c2lnbnMgZXh0ZXJuYWxfZmxhZ18xIGFuZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhl
IHR1cGxlLgotLy8gICAgIHRpZShleHRlcm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBH
ZXRQYXJhbSgpOwotLy8gICB9Ci0vLyB9OwotLy8KLS8vIFRFU1RfUChGbGFnRGVwZW5kZW50VGVz
dCwgVGVzdEZlYXR1cmUxKSB7Ci0vLyAgIC8vIFRlc3QgeW91ciBjb2RlIHVzaW5nIGV4dGVybmFs
X2ZsYWdfMSBhbmQgZXh0ZXJuYWxfZmxhZ18yIGhlcmUuCi0vLyB9Ci0vLyBJTlNUQU5USUFURV9U
RVNUX0NBU0VfUChUd29Cb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRlbnRUZXN0LAotLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgQ29tYmluZShCb29sKCksIEJvb2woKSkpOwotLy8KLSRyYW5nZSBp
IDIuLm1heHR1cGxlCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3Ig
aiwgW1t0eXBlbmFtZSBHZW5lcmF0b3Ikal1dPgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RI
b2xkZXIkaTwkZm9yIGosIFtbR2VuZXJhdG9yJGpdXT4gQ29tYmluZSgKLSAgICAkZm9yIGosIFtb
Y29uc3QgR2VuZXJhdG9yJGomIGckal1dKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFu
UHJvZHVjdEhvbGRlciRpPCRmb3IgaiwgW1tHZW5lcmF0b3Ikal1dPigKLSAgICAgICRmb3Igaiwg
W1tnJGpdXSk7Ci19Ci0KLV1dCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCi0jIGRl
ZmluZSBURVNUX1AodGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgXAotICBjbGFzcyBHVEVTVF9U
RVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgICAgIDogcHVi
bGljIHRlc3RfY2FzZV9uYW1lIHsgXAotICAgcHVibGljOiBcCi0gICAgR1RFU1RfVEVTVF9DTEFT
U19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSgpIHt9IFwKLSAgICB2aXJ0dWFsIHZv
aWQgVGVzdEJvZHkoKTsgXAotICAgcHJpdmF0ZTogXAotICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdp
c3RyeSgpIHsgXAotICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFy
YW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkuIFwKLSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRl
cm5Ib2xkZXI8dGVzdF9jYXNlX25hbWU+KFwKLSAgICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1l
LCBcCi0gICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0g
ICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pKS0+QWRkVGVzdFBhdHRlcm4oXAot
ICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8odGVzdF9jYXNlX25hbWUpLCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgbmV3IDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlc3RNZXRhRmFj
dG9yeTwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVf
KFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25h
bWUpPigpKTsgXAotICAgICAgcmV0dXJuIDA7IFwKLSAgICB9IFwKLSAgICBzdGF0aWMgaW50IGd0
ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgXAotICAgIEdU
RVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oXAotICAgICAgICBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpKTsgXAotICB9OyBcCi0gIGludCBHVEVT
VF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RfbmFtZSk6Omd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyA9IFwKLSAgICAg
IEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OkFkZFRv
UmVnaXN0cnkoKTsgXAotICB2b2lkIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25h
bWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5KCkKLQotLy8gVGhlIG9wdGlvbmFsIGxhc3QgYXJndW1l
bnQgdG8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgYWxsb3dzIHRoZSB1c2VyCi0vLyB0byBzcGVj
aWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1l
IHN1ZmZpeGVzCi0vLyBiYXNlZCBvbiB0aGUgdGVzdCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24g
c2hvdWxkIGFjY2VwdCBvbmUgYXJndW1lbnQgb2YKLS8vIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFt
SW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBhbmQgcmV0dXJuIHN0ZDo6c3RyaW5nLgotLy8KLS8vIHRl
c3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUgaXMgYSBidWlsdGluIHRlc3Qgc3VmZml4IGdl
bmVyYXRvciB0aGF0Ci0vLyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0ZXN0aW5nOjpQcmludFRvU3Ry
aW5nKEdldFBhcmFtKCkpLgotLy8KLS8vIE5vdGU6IHRlc3QgbmFtZXMgbXVzdCBiZSBub24tZW1w
dHksIHVuaXF1ZSwgYW5kIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkKLS8vIGFscGhhbnVtZXJpYyBj
aGFyYWN0ZXJzIG9yIHVuZGVyc2NvcmUuIEJlY2F1c2UgUHJpbnRUb1N0cmluZyBhZGRzIHF1b3Rl
cwotLy8gdG8gc3RkOjpzdHJpbmcgYW5kIEMgc3RyaW5ncywgaXQgd29uJ3Qgd29yayBmb3IgdGhl
c2UgdHlwZXMuCi0KLSMgZGVmaW5lIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKHByZWZpeCwgdGVz
dF9jYXNlX25hbWUsIGdlbmVyYXRvciwgLi4uKSBcCi0gIHN0YXRpYyA6OnRlc3Rpbmc6OmludGVy
bmFsOjpQYXJhbUdlbmVyYXRvcjx0ZXN0X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiBcCi0gICAgICBn
dGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdG9yXygpIHsgcmV0dXJu
IGdlbmVyYXRvcjsgfSBcCi0gIHN0YXRpYyA6OnN0ZDo6c3RyaW5nIGd0ZXN0XyMjcHJlZml4IyN0
ZXN0X2Nhc2VfbmFtZSMjX0V2YWxHZW5lcmF0ZU5hbWVfKCBcCi0gICAgICBjb25zdCA6OnRlc3Rp
bmc6OlRlc3RQYXJhbUluZm88dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4mIGluZm8pIHsgXAot
ICAgIHJldHVybiA6OnRlc3Rpbmc6OmludGVybmFsOjpHZXRQYXJhbU5hbWVHZW48dGVzdF9jYXNl
X25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgICAoX19WQV9BUkdTX18pKGluZm8pOyBcCi0gIH0g
XAotICBzdGF0aWMgaW50IGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX2R1bW15XyBH
VEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9IFwKLSAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6Okdl
dEluc3RhbmNlKCktPnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpLiBcCi0gICAgICAgICAg
R2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyPHRlc3RfY2FzZV9uYW1lPihcCi0gICAgICAgICAgICAg
ICN0ZXN0X2Nhc2VfbmFtZSwgXAotICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpD
b2RlTG9jYXRpb24oXAotICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKSktPkFk
ZFRlc3RDYXNlSW5zdGFudGlhdGlvbihcCi0gICAgICAgICAgICAgICAgICAgICAgI3ByZWZpeCwg
XAotICAgICAgICAgICAgICAgICAgICAgICZndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUj
I19FdmFsR2VuZXJhdG9yXywgXAotICAgICAgICAgICAgICAgICAgICAgICZndGVzdF8jI3ByZWZp
eCMjdGVzdF9jYXNlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXywgXAotICAgICAgICAgICAgICAg
ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykKLQotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRl
cnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRl
cnMuaAppbmRleCA1MTg2NWY4NGU2ZjZmYTNlMGZjZTE5ODcwMGI1YTVkZmU1ZjY1NTBlLi40NmZl
ODk1MGZlODhkZGQ4ZDdiYzliZmMxZDcwOGMwYzkyOGEzMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1wcmludGVycy5oCkBAIC05
Nyw3NSArOTcsMTQxIEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSSU5URVJTX0hfCi0jZGVmaW5lIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJJTlRFUlNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9QUklOVEVSU19IXwogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8b3N0cmVhbT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPHNz
dHJlYW0+CiAjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5
cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgotI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKKwogI2luY2x1ZGUgImd0ZXN0L2ludGVy
bmFsL2d0ZXN0LWludGVybmFsLmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9y
dC5oIgogCi0jaWYgR1RFU1RfSEFTX1NURF9UVVBMRV8KLSMgaW5jbHVkZSA8dHVwbGU+Ci0jZW5k
aWYKLQotI2lmIEdURVNUX0hBU19BQlNMCi0jaW5jbHVkZSAiYWJzbC9zdHJpbmdzL3N0cmluZ192
aWV3LmgiCi0jaW5jbHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgotI2luY2x1ZGUgImFic2wv
dHlwZXMvdmFyaWFudC5oIgotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorI2lmIEdURVNUX0hB
U19SVFRJCisjaW5jbHVkZSA8dHlwZWluZGV4PgorI2luY2x1ZGUgPHR5cGVpbmZvPgorI2VuZGlm
ICAvLyBHVEVTVF9IQVNfUlRUSQogCiBuYW1lc3BhY2UgdGVzdGluZyB7CiAKLS8vIERlZmluaXRp
b25zIGluIHRoZSAnaW50ZXJuYWwnIGFuZCAnaW50ZXJuYWwyJyBuYW1lIHNwYWNlcyBhcmUKLS8v
IHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLiAgRE8gTk9UIFVTRSBUSEVNIElOIFVT
RVIgQ09ERSEKLW5hbWVzcGFjZSBpbnRlcm5hbDIgeworLy8gRGVmaW5pdGlvbnMgaW4gdGhlIGlu
dGVybmFsKiBuYW1lc3BhY2VzIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4K
Ky8vIERPIE5PVCBVU0UgVEhFTSBJTiBVU0VSIENPREUhCituYW1lc3BhY2UgaW50ZXJuYWwgewog
Ci0vLyBQcmludHMgdGhlIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0
IHRvIHRoZSBnaXZlbgotLy8gb3N0cmVhbS4KLUdURVNUX0FQSV8gdm9pZCBQcmludEJ5dGVzSW5P
YmplY3RUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBvYmpfYnl0ZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KK3ZvaWQgVW5pdmVyc2FsUHJpbnQoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBv
cyk7CiAKLS8vIEZvciBzZWxlY3Rpbmcgd2hpY2ggcHJpbnRlciB0byB1c2Ugd2hlbiBhIGdpdmVu
IHR5cGUgaGFzIG5laXRoZXIgPDwKLS8vIG5vciBQcmludFRvKCkuCi1lbnVtIFR5cGVLaW5kIHsK
LSAga1Byb3RvYnVmLCAgICAgICAgICAgICAgLy8gYSBwcm90b2J1ZiB0eXBlCi0gIGtDb252ZXJ0
aWJsZVRvSW50ZWdlciwgIC8vIGEgdHlwZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dl
c3RJbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gYSBuYW1lZCBvciB1bm5h
bWVkIGVudW0gdHlwZSkKLSNpZiBHVEVTVF9IQVNfQUJTTAotICBrQ29udmVydGlibGVUb1N0cmlu
Z1ZpZXcsICAvLyBhIHR5cGUgaW1wbGljaXRseSBjb252ZXJ0aWJsZSB0bwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBhYnNsOjpzdHJpbmdfdmlldwotI2VuZGlmCi0gIGtPdGhlclR5
cGUgIC8vIGFueXRoaW5nIGVsc2UKKy8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0eWxlIGNvbnRh
aW5lciB3aGVuIHRoZSB1c2VyIGRvZXNuJ3QgZGVmaW5lCisvLyBhIFByaW50VG8oKSBmb3IgaXQu
CitzdHJ1Y3QgQ29udGFpbmVyUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAg
ICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAg
ICAgICAoc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxUPigwKSkgPT0gc2l6ZW9mKElzQ29udGFpbmVy
KSkgJiYKKyAgICAgICAgICAgICAgICAhSXNSZWN1cnNpdmVDb250YWluZXI8VD46OnZhbHVlPjo6
dHlwZT4KKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiBjb250YWluZXIsIHN0ZDo6
b3N0cmVhbSogb3MpIHsKKyAgICBjb25zdCBzaXplX3Qga01heENvdW50ID0gMzI7ICAvLyBUaGUg
bWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcHJpbnQuCisgICAgKm9zIDw8ICd7JzsKKyAg
ICBzaXplX3QgY291bnQgPSAwOworICAgIGZvciAoYXV0byYmIGVsZW0gOiBjb250YWluZXIpIHsK
KyAgICAgIGlmIChjb3VudCA+IDApIHsKKyAgICAgICAgKm9zIDw8ICcsJzsKKyAgICAgICAgaWYg
KGNvdW50ID09IGtNYXhDb3VudCkgeyAgLy8gRW5vdWdoIGhhcyBiZWVuIHByaW50ZWQuCisgICAg
ICAgICAgKm9zIDw8ICIgLi4uIjsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
fQorICAgICAgKm9zIDw8ICcgJzsKKyAgICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8oZWxl
bSwgb3MpIGhlcmUgYXMgUHJpbnRUbygpIGRvZXNuJ3QKKyAgICAgIC8vIGhhbmRsZSBgZWxlbWAg
YmVpbmcgYSBuYXRpdmUgYXJyYXkuCisgICAgICBpbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQoZWxl
bSwgb3MpOworICAgICAgKytjb3VudDsKKyAgICB9CisKKyAgICBpZiAoY291bnQgPiAwKSB7Cisg
ICAgICAqb3MgPDwgJyAnOworICAgIH0KKyAgICAqb3MgPDwgJ30nOworICB9CiB9OwogCi0vLyBU
eXBlV2l0aG91dEZvcm1hdHRlcjxULCBrVHlwZUtpbmQ+OjpQcmludFZhbHVlKHZhbHVlLCBvcykg
aXMgY2FsbGVkCi0vLyBieSB0aGUgdW5pdmVyc2FsIHByaW50ZXIgdG8gcHJpbnQgYSB2YWx1ZSBv
ZiB0eXBlIFQgd2hlbiBuZWl0aGVyCi0vLyBvcGVyYXRvcjw8IG5vciBQcmludFRvKCkgaXMgZGVm
aW5lZCBmb3IgVCwgd2hlcmUga1R5cGVLaW5kIGlzIHRoZQotLy8gImtpbmQiIG9mIFQgYXMgZGVm
aW5lZCBieSBlbnVtIFR5cGVLaW5kLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIFR5cGVLaW5kIGtU
eXBlS2luZD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyIHsKLSBwdWJsaWM6Ci0gIC8vIFRo
aXMgZGVmYXVsdCB2ZXJzaW9uIGlzIGNhbGxlZCB3aGVuIGtUeXBlS2luZCBpcyBrT3RoZXJUeXBl
LgorLy8gVXNlZCB0byBwcmludCBhIHBvaW50ZXIgdGhhdCBpcyBuZWl0aGVyIGEgY2hhciBwb2lu
dGVyIG5vciBhIG1lbWJlcgorLy8gcG9pbnRlciwgd2hlbiB0aGUgdXNlciBkb2Vzbid0IGRlZmlu
ZSBQcmludFRvKCkgZm9yIGl0LiAgKEEgbWVtYmVyCisvLyB2YXJpYWJsZSBwb2ludGVyIG9yIG1l
bWJlciBmdW5jdGlvbiBwb2ludGVyIGRvZXNuJ3QgcmVhbGx5IHBvaW50IHRvCisvLyBhIGxvY2F0
aW9uIGluIHRoZSBhZGRyZXNzIHNwYWNlLiAgVGhlaXIgcmVwcmVzZW50YXRpb24gaXMKKy8vIGlt
cGxlbWVudGF0aW9uLWRlZmluZWQuICBUaGVyZWZvcmUgdGhleSB3aWxsIGJlIHByaW50ZWQgYXMg
cmF3CisvLyBieXRlcy4pCitzdHJ1Y3QgRnVuY3Rpb25Qb2ludGVyUHJpbnRlciB7CisgIHRlbXBs
YXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aXNfZnVuY3Rpb248VD46OnZhbHVlPjo6dHlw
ZT4KKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
KyAgICBpZiAocCA9PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxz
ZSB7CisgICAgICAvLyBUIGlzIGEgZnVuY3Rpb24gdHlwZSwgc28gJypvcyA8PCBwJyBkb2Vzbid0
IGRvIHdoYXQgd2Ugd2FudAorICAgICAgLy8gKGl0IGp1c3QgcHJpbnRzIHAgYXMgYm9vbCkuICBX
ZSB3YW50IHRvIHByaW50IHAgYXMgYSBjb25zdAorICAgICAgLy8gdm9pZCouCisgICAgICAqb3Mg
PDwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4ocCk7CisgICAgfQorICB9Cit9OworCitz
dHJ1Y3QgUG9pbnRlclByaW50ZXIgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGlj
IHZvaWQgUHJpbnRWYWx1ZShUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAocCA9
PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICAv
LyBUIGlzIG5vdCBhIGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwgPDwgdG8gcHJpbnQgcCwK
KyAgICAgIC8vIHJlbHlpbmcgb24gQURMIHRvIHBpY2sgdXAgdXNlci1kZWZpbmVkIDw8IGZvciB0
aGVpciBwb2ludGVyCisgICAgICAvLyB0eXBlcywgaWYgYW55LgorICAgICAgKm9zIDw8IHA7Cisg
ICAgfQorICB9Cit9OworCituYW1lc3BhY2UgaW50ZXJuYWxfc3RyZWFtX29wZXJhdG9yX3dpdGhv
dXRfbGV4aWNhbF9uYW1lX2xvb2t1cCB7CisKKy8vIFRoZSBwcmVzZW5jZSBvZiBhbiBvcGVyYXRv
cjw8IGhlcmUgd2lsbCB0ZXJtaW5hdGUgbGV4aWNhbCBzY29wZSBsb29rdXAKKy8vIHN0cmFpZ2h0
IGF3YXkgKGV2ZW4gdGhvdWdoIGl0IGNhbm5vdCBiZSBhIG1hdGNoIGJlY2F1c2Ugb2YgaXRzIGFy
Z3VtZW50CisvLyB0eXBlcykuIFRodXMsIHRoZSB0d28gb3BlcmF0b3I8PCBjYWxscyBpbiBTdHJl
YW1QcmludGVyIHdpbGwgZmluZCBvbmx5IEFETAorLy8gY2FuZGlkYXRlcy4KK3N0cnVjdCBMb29r
dXBCbG9ja2VyIHt9Owordm9pZCBvcGVyYXRvcjw8KExvb2t1cEJsb2NrZXIsIExvb2t1cEJsb2Nr
ZXIpOworCitzdHJ1Y3QgU3RyZWFtUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAor
ICAgICAgICAgICAgLy8gRG9uJ3QgYWNjZXB0IG1lbWJlciBwb2ludGVycyBoZXJlLiBXZSdkIHBy
aW50IHRoZW0gdmlhIGltcGxpY2l0CisgICAgICAgICAgICAvLyBjb252ZXJzaW9uIHRvIGJvb2ws
IHdoaWNoIGlzbid0IHVzZWZ1bC4KKyAgICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3Rk
OjplbmFibGVfaWY8CisgICAgICAgICAgICAgICAgIXN0ZDo6aXNfbWVtYmVyX3BvaW50ZXI8VD46
OnZhbHVlPjo6dHlwZSwKKyAgICAgICAgICAgIC8vIE9ubHkgYWNjZXB0IHR5cGVzIGZvciB3aGlj
aCB3ZSBjYW4gZmluZCBhIHN0cmVhbWluZyBvcGVyYXRvciB2aWEKKyAgICAgICAgICAgIC8vIEFE
TCAocG9zc2libHkgaW52b2x2aW5nIGltcGxpY2l0IGNvbnZlcnNpb25zKS4KKyAgICAgICAgICAg
IHR5cGVuYW1lID0gZGVjbHR5cGUoc3RkOjpkZWNsdmFsPHN0ZDo6b3N0cmVhbSY+KCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RkOjpkZWNsdmFsPGNvbnN0IFQmPigpKT4K
ICAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7Ci0gICAgUHJpbnRCeXRlc0luT2JqZWN0VG8oc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWdu
ZWQgY2hhcio+KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0
PGNvbnN0IHZvaWQqPigmdmFsdWUpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo
dmFsdWUpLCBvcyk7CisgICAgLy8gQ2FsbCBzdHJlYW1pbmcgb3BlcmF0b3IgZm91bmQgYnkgQURM
LCBwb3NzaWJseSB3aXRoIGltcGxpY2l0IGNvbnZlcnNpb25zCisgICAgLy8gb2YgdGhlIGFyZ3Vt
ZW50cy4KKyAgICAqb3MgPDwgdmFsdWU7CiAgIH0KIH07CiAKLS8vIFdlIHByaW50IGEgcHJvdG9i
dWYgdXNpbmcgaXRzIFNob3J0RGVidWdTdHJpbmcoKSB3aGVuIHRoZSBzdHJpbmcKLS8vIGRvZXNu
J3QgZXhjZWVkIHRoaXMgbWFueSBjaGFyYWN0ZXJzOyBvdGhlcndpc2Ugd2UgcHJpbnQgaXQgdXNp
bmcKLS8vIERlYnVnU3RyaW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KLWNvbnN0IHNpemVf
dCBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCA9IDUwOworfSAgLy8gbmFtZXNwYWNlIGludGVy
bmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9sb29rdXAKIAotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBrUHJvdG9idWY+
IHsKLSBwdWJsaWM6CitzdHJ1Y3QgUHJvdG9idWZQcmludGVyIHsKKyAgLy8gV2UgcHJpbnQgYSBw
cm90b2J1ZiB1c2luZyBpdHMgU2hvcnREZWJ1Z1N0cmluZygpIHdoZW4gdGhlIHN0cmluZworICAv
LyBkb2Vzbid0IGV4Y2VlZCB0aGlzIG1hbnkgY2hhcmFjdGVyczsgb3RoZXJ3aXNlIHdlIHByaW50
IGl0IHVzaW5nCisgIC8vIERlYnVnU3RyaW5nKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KKyAg
c3RhdGljIGNvbnN0IHNpemVfdCBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCA9IDUwOworCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAgICAgICBpbnRlcm5hbDo6SGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZT46OnR5cGU+CiAgIHN0YXRpYyB2b2lkIFByaW50
VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICAgIHN0ZDo6c3Ry
aW5nIHByZXR0eV9zdHIgPSB2YWx1ZS5TaG9ydERlYnVnU3RyaW5nKCk7CiAgICAgaWYgKHByZXR0
eV9zdHIubGVuZ3RoKCkgPiBrUHJvdG9idWZPbmVMaW5lck1heExlbmd0aCkgewpAQCAtMTc1LDkg
KzI0MSw3IEBAIGNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtQcm90b2J1Zj4gewogICB9
CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVy
PFQsIGtDb252ZXJ0aWJsZVRvSW50ZWdlcj4gewotIHB1YmxpYzoKK3N0cnVjdCBDb252ZXJ0aWJs
ZVRvSW50ZWdlclByaW50ZXIgewogICAvLyBTaW5jZSBUIGhhcyBubyA8PCBvcGVyYXRvciBvciBQ
cmludFRvKCkgYnV0IGNhbiBiZSBpbXBsaWNpdGx5CiAgIC8vIGNvbnZlcnRlZCB0byBCaWdnZXN0
SW50LCB3ZSBwcmludCBpdCBhcyBhIEJpZ2dlc3RJbnQuCiAgIC8vCkBAIC0xODUsMTEyICsyNDks
NzMgQEAgY2xhc3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9JbnRlZ2Vy
PiB7CiAgIC8vIGNhc2UgcHJpbnRpbmcgaXQgYXMgYW4gaW50ZWdlciBpcyB0aGUgZGVzaXJlZCBi
ZWhhdmlvci4gIEluIGNhc2UKICAgLy8gVCBpcyBub3QgYW4gZW51bSwgcHJpbnRpbmcgaXQgYXMg
YW4gaW50ZWdlciBpcyB0aGUgYmVzdCB3ZSBjYW4gZG8KICAgLy8gZ2l2ZW4gdGhhdCBpdCBoYXMg
bm8gdXNlci1kZWZpbmVkIHByaW50ZXIuCi0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3Qg
VCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIGNvbnN0IGludGVybmFsOjpCaWdn
ZXN0SW50IGtCaWdJbnQgPSB2YWx1ZTsKLSAgICAqb3MgPDwga0JpZ0ludDsKKyAgc3RhdGljIHZv
aWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6QmlnZ2VzdEludCB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7CisgICAgKm9zIDw8IHZhbHVlOwogICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX0FCU0wK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0Nv
bnZlcnRpYmxlVG9TdHJpbmdWaWV3PiB7Ci0gcHVibGljOgotICAvLyBTaW5jZSBUIGhhcyBuZWl0
aGVyIG9wZXJhdG9yPDwgbm9yIFByaW50VG8oKSBidXQgY2FuIGJlIGltcGxpY2l0bHkKLSAgLy8g
Y29udmVydGVkIHRvIGFic2w6OnN0cmluZ192aWV3LCB3ZSBwcmludCBpdCBhcyBhIGFic2w6OnN0
cmluZ192aWV3LgotICAvLwotICAvLyBOb3RlOiB0aGUgaW1wbGVtZW50YXRpb24gaXMgZnVydGhl
ciBiZWxvdywgYXMgaXQgZGVwZW5kcyBvbgotICAvLyBpbnRlcm5hbDo6UHJpbnRUbyBzeW1ib2wg
d2hpY2ggaXMgZGVmaW5lZCBsYXRlciBpbiB0aGUgZmlsZS4KLSAgc3RhdGljIHZvaWQgUHJpbnRW
YWx1ZShjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLX07Ci0jZW5kaWYKLQot
Ly8gUHJpbnRzIHRoZSBnaXZlbiB2YWx1ZSB0byB0aGUgZ2l2ZW4gb3N0cmVhbS4gIElmIHRoZSB2
YWx1ZSBpcyBhCi0vLyBwcm90b2NvbCBtZXNzYWdlLCBpdHMgZGVidWcgc3RyaW5nIGlzIHByaW50
ZWQ7IGlmIGl0J3MgYW4gZW51bSBvcgotLy8gb2YgYSB0eXBlIGltcGxpY2l0bHkgY29udmVydGli
bGUgdG8gQmlnZ2VzdEludCwgaXQncyBwcmludGVkIGFzIGFuCi0vLyBpbnRlZ2VyOyBvdGhlcndp
c2UgdGhlIGJ5dGVzIGluIHRoZSB2YWx1ZSBhcmUgcHJpbnRlZC4gIFRoaXMgaXMKLS8vIHdoYXQg
VW5pdmVyc2FsUHJpbnRlcjxUPjo6UHJpbnQoKSBkb2VzIHdoZW4gaXQga25vd3Mgbm90aGluZyBh
Ym91dAotLy8gdHlwZSBUIGFuZCBUIGhhcyBuZWl0aGVyIDw8IG9wZXJhdG9yIG5vciBQcmludFRv
KCkuCi0vLwotLy8gQSB1c2VyIGNhbiBvdmVycmlkZSB0aGlzIGJlaGF2aW9yIGZvciBhIGNsYXNz
IHR5cGUgRm9vIGJ5IGRlZmluaW5nCi0vLyBhIDw8IG9wZXJhdG9yIGluIHRoZSBuYW1lc3BhY2Ug
d2hlcmUgRm9vIGlzIGRlZmluZWQuCi0vLwotLy8gV2UgcHV0IHRoaXMgb3BlcmF0b3IgaW4gbmFt
ZXNwYWNlICdpbnRlcm5hbDInIGluc3RlYWQgb2YgJ2ludGVybmFsJwotLy8gdG8gc2ltcGxpZnkg
dGhlIGltcGxlbWVudGF0aW9uLCBhcyBtdWNoIGNvZGUgaW4gJ2ludGVybmFsJyBuZWVkcyB0bwot
Ly8gdXNlIDw8IGluIFNUTCwgd2hpY2ggd291bGQgY29uZmxpY3Qgd2l0aCBvdXIgb3duIDw8IHdl
cmUgaXQgZGVmaW5lZAotLy8gaW4gJ2ludGVybmFsJy4KLS8vCi0vLyBOb3RlIHRoYXQgdGhpcyBv
cGVyYXRvcjw8IHRha2VzIGEgZ2VuZXJpYyBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhciwKLS8vIENo
YXJUcmFpdHM+IHR5cGUgaW5zdGVhZCBvZiB0aGUgbW9yZSByZXN0cmljdGVkIHN0ZDo6b3N0cmVh
bS4gIElmCi0vLyB3ZSBkZWZpbmUgaXQgdG8gdGFrZSBhbiBzdGQ6Om9zdHJlYW0gaW5zdGVhZCwg
d2UnbGwgZ2V0IGFuCi0vLyAiYW1iaWd1b3VzIG92ZXJsb2FkcyIgY29tcGlsZXIgZXJyb3Igd2hl
biB0cnlpbmcgdG8gcHJpbnQgYSB0eXBlCi0vLyBGb28gdGhhdCBzdXBwb3J0cyBzdHJlYW1pbmcg
dG8gc3RkOjpiYXNpY19vc3RyZWFtPENoYXIsCi0vLyBDaGFyVHJhaXRzPiwgYXMgdGhlIGNvbXBp
bGVyIGNhbm5vdCB0ZWxsIHdoZXRoZXIKLS8vIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29u
c3QgVCYpIG9yCi0vLyBvcGVyYXRvcjw8KHN0ZDo6YmFzaWNfc3RyZWFtPENoYXIsIENoYXJUcmFp
dHM+LCBjb25zdCBGb28mKSBpcyBtb3JlCi0vLyBzcGVjaWZpYy4KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyLCB0eXBlbmFtZSBDaGFyVHJhaXRzLCB0eXBlbmFtZSBUPgotOjpzdGQ6OmJhc2ljX29z
dHJlYW08Q2hhciwgQ2hhclRyYWl0cz4mIG9wZXJhdG9yPDwoCi0gICAgOjpzdGQ6OmJhc2ljX29z
dHJlYW08Q2hhciwgQ2hhclRyYWl0cz4mIG9zLCBjb25zdCBUJiB4KSB7Ci0gIFR5cGVXaXRob3V0
Rm9ybWF0dGVyPFQsIChpbnRlcm5hbDo6SXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ga1Byb3RvYnVmCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiBpbnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQmLCBpbnRlcm5hbDo6QmlnZ2Vz
dEludD46OnZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBrQ29u
dmVydGlibGVUb0ludGVnZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
Ci0jaWYgR1RFU1RfSEFTX0FCU0wKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBUJiwgYWJzbDo6c3RyaW5nX3ZpZXc+Ojp2YWx1ZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGtDb252ZXJ0aWJsZVRv
U3RyaW5nVmlldwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Citz
dHJ1Y3QgQ29udmVydGlibGVUb1N0cmluZ1ZpZXdQcmludGVyIHsKKyNpZiBHVEVTVF9JTlRFUk5B
TF9IQVNfU1RSSU5HX1ZJRVcKKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShpbnRlcm5hbDo6U3Ry
aW5nVmlldyB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaW50ZXJuYWw6OlVuaXZl
cnNhbFByaW50KHZhbHVlLCBvcyk7CisgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrT3RoZXJUeXBlKT46OlByaW50VmFsdWUoeCwgJm9zKTsKLSAg
cmV0dXJuIG9zOwotfQorfTsKIAotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsMgotfSAgLy8gbmFt
ZXNwYWNlIHRlc3RpbmcKIAotLy8gVGhpcyBuYW1lc3BhY2UgTVVTVCBOT1QgQkUgTkVTVEVEIElO
IDo6dGVzdGluZywgb3IgdGhlIG5hbWUgbG9vay11cAotLy8gbWFnaWMgbmVlZGVkIGZvciBpbXBs
ZW1lbnRpbmcgVW5pdmVyc2FsUHJpbnRlciB3b24ndCB3b3JrLgotbmFtZXNwYWNlIHRlc3Rpbmdf
aW50ZXJuYWwgeworLy8gUHJpbnRzIHRoZSBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGdp
dmVuIG9iamVjdCB0byB0aGUgZ2l2ZW4KKy8vIG9zdHJlYW0uCitHVEVTVF9BUElfIHZvaWQgUHJp
bnRCeXRlc0luT2JqZWN0VG8oY29uc3QgdW5zaWduZWQgY2hhciogb2JqX2J5dGVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjb3VudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpOworc3RydWN0IFJh
d0J5dGVzUHJpbnRlciB7CisgIC8vIFNGSU5BRSBvbiBgc2l6ZW9mYCB0byBtYWtlIHN1cmUgd2Ug
aGF2ZSBhIGNvbXBsZXRlIHR5cGUuCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgPSBz
aXplb2YoVCk+CisgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgeworICAgIFByaW50Qnl0ZXNJbk9iamVjdFRvKAorICAgICAgICBzdGF0
aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oCisgICAgICAgICAgICAvLyBMb2FkIGJlYXJp
bmcgY2FzdCB0byB2b2lkKiB0byBzdXBwb3J0IGlPUworICAgICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB2b2lkKj4oc3RkOjphZGRyZXNzb2YodmFsdWUpKSksCisgICAgICAgIHNpemVv
Zih2YWx1ZSksIG9zKTsKKyAgfQorfTsKIAotLy8gVXNlZCB0byBwcmludCBhIHZhbHVlIHRoYXQg
aXMgbm90IGFuIFNUTC1zdHlsZSBjb250YWluZXIgd2hlbiB0aGUKLS8vIHVzZXIgZG9lc24ndCBk
ZWZpbmUgUHJpbnRUbygpIGZvciBpdC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZh
dWx0UHJpbnROb25Db250YWluZXJUbyhjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7Ci0gIC8vIFdpdGggdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQsIGR1cmluZyB1bnF1YWxpZmll
ZCBuYW1lIGxvb2t1cCwKLSAgLy8gdGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGFwcGVh
cnMgYXMgaWYgaXQgd2FzIGRlY2xhcmVkIGluCi0gIC8vIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBu
YW1lc3BhY2UgdGhhdCBjb250YWlucyBib3RoCi0gIC8vIDo6dGVzdGluZ19pbnRlcm5hbCBhbmQg
Ojp0ZXN0aW5nOjppbnRlcm5hbDIsIGkuZS4gdGhlIGdsb2JhbAotICAvLyBuYW1lc3BhY2UuICBG
b3IgbW9yZSBkZXRhaWxzLCByZWZlciB0byB0aGUgQysrIFN0YW5kYXJkIHNlY3Rpb24KLSAgLy8g
Ny4zLjQtMSBbbmFtZXNwYWNlLnVkaXJdLiAgVGhpcyBhbGxvd3MgdXMgdG8gZmFsbCBiYWNrIG9u
dG8KLSAgLy8gdGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8IGluIGNhc2UgVCBkb2Vzbid0
IGNvbWUgd2l0aCBhIDw8Ci0gIC8vIG9wZXJhdG9yLgotICAvLwotICAvLyBXZSBjYW5ub3Qgd3Jp
dGUgJ3VzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRvcjw8OycsIHdoaWNoCi0gIC8v
IGdjYyAzLjMgZmFpbHMgdG8gY29tcGlsZSBkdWUgdG8gYSBjb21waWxlciBidWcuCi0gIHVzaW5n
IG5hbWVzcGFjZSA6OnRlc3Rpbmc6OmludGVybmFsMjsgIC8vIE5PTElOVAorc3RydWN0IEZhbGxi
YWNrUHJpbnRlciB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBzdGF0aWMgdm9pZCBQcmlu
dFZhbHVlKGNvbnN0IFQmLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgIihpbmNv
bXBsZXRlIHR5cGUpIjsKKyAgfQorfTsKIAotICAvLyBBc3N1bWluZyBUIGlzIGRlZmluZWQgaW4g
bmFtZXNwYWNlIGZvbywgaW4gdGhlIG5leHQgc3RhdGVtZW50LAotICAvLyB0aGUgY29tcGlsZXIg
d2lsbCBjb25zaWRlciBhbGwgb2Y6Ci0gIC8vCi0gIC8vICAgMS4gZm9vOjpvcGVyYXRvcjw8ICh0
aGFua3MgdG8gS29lbmlnIGxvb2stdXApLAotICAvLyAgIDIuIDo6b3BlcmF0b3I8PCAoYXMgdGhl
IGN1cnJlbnQgbmFtZXNwYWNlIGlzIGVuY2xvc2VkIGluIDo6KSwKLSAgLy8gICAzLiB0ZXN0aW5n
OjppbnRlcm5hbDI6Om9wZXJhdG9yPDwgKHRoYW5rcyB0byB0aGUgdXNpbmcgc3RhdGVtZW50IGFi
b3ZlKS4KLSAgLy8KLSAgLy8gVGhlIG9wZXJhdG9yPDwgd2hvc2UgdHlwZSBtYXRjaGVzIFQgYmVz
dCB3aWxsIGJlIHBpY2tlZC4KLSAgLy8KLSAgLy8gV2UgZGVsaWJlcmF0ZWx5IGFsbG93ICMyIHRv
IGJlIGEgY2FuZGlkYXRlLCBhcyBzb21ldGltZXMgaXQncwotICAvLyBpbXBvc3NpYmxlIHRvIGRl
ZmluZSAjMSAoZS5nLiB3aGVuIGZvbyBpcyA6OnN0ZCwgZGVmaW5pbmcKLSAgLy8gYW55dGhpbmcg
aW4gaXQgaXMgdW5kZWZpbmVkIGJlaGF2aW9yIHVubGVzcyB5b3UgYXJlIGEgY29tcGlsZXIKLSAg
Ly8gdmVuZG9yLikuCi0gICpvcyA8PCB2YWx1ZTsKLX0KKy8vIFRyeSBldmVyeSBwcmludGVyIGlu
IG9yZGVyIGFuZCByZXR1cm4gdGhlIGZpcnN0IG9uZSB0aGF0IHdvcmtzLgordGVtcGxhdGUgPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIEUsIHR5cGVuYW1lIFByaW50ZXIsIHR5cGVuYW1lLi4uIFByaW50
ZXJzPgorc3RydWN0IEZpbmRGaXJzdFByaW50ZXIgOiBGaW5kRmlyc3RQcmludGVyPFQsIEUsIFBy
aW50ZXJzLi4uPiB7fTsKIAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmdfaW50ZXJuYWwKK3RlbXBs
YXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBQcmludGVyLCB0eXBlbmFtZS4uLiBQcmludGVycz4K
K3N0cnVjdCBGaW5kRmlyc3RQcmludGVyPAorICAgIFQsIGRlY2x0eXBlKFByaW50ZXI6OlByaW50
VmFsdWUoc3RkOjpkZWNsdmFsPGNvbnN0IFQmPigpLCBudWxscHRyKSksCisgICAgUHJpbnRlciwg
UHJpbnRlcnMuLi4+IHsKKyAgdXNpbmcgdHlwZSA9IFByaW50ZXI7Cit9OwogCi1uYW1lc3BhY2Ug
dGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50ZXJuYWwgeworLy8gU2VsZWN0IHRoZSBiZXN0IHByaW50
ZXIgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjoKKy8vICAtIFByaW50IGNvbnRhaW5lcnMgKHRoZXkg
aGF2ZSBiZWdpbi9lbmQvZXRjKS4KKy8vICAtIFByaW50IGZ1bmN0aW9uIHBvaW50ZXJzLgorLy8g
IC0gUHJpbnQgb2JqZWN0IHBvaW50ZXJzLgorLy8gIC0gVXNlIHRoZSBzdHJlYW0gb3BlcmF0b3Is
IGlmIGF2YWlsYWJsZS4KKy8vICAtIFByaW50IHByb3RvY29sIGJ1ZmZlcnMuCisvLyAgLSBQcmlu
dCB0eXBlcyBjb252ZXJ0aWJsZSB0byBCaWdnZXN0SW50LgorLy8gIC0gUHJpbnQgdHlwZXMgY29u
dmVydGlibGUgdG8gU3RyaW5nVmlldywgaWYgYXZhaWxhYmxlLgorLy8gIC0gRmFsbGJhY2sgdG8g
cHJpbnRpbmcgdGhlIHJhdyBieXRlcyBvZiB0aGUgb2JqZWN0LgordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Cit2b2lkIFByaW50V2l0aEZhbGxiYWNrKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgdXNpbmcgUHJpbnRlciA9IHR5cGVuYW1lIEZpbmRGaXJzdFByaW50ZXI8Cisg
ICAgICBULCB2b2lkLCBDb250YWluZXJQcmludGVyLCBGdW5jdGlvblBvaW50ZXJQcmludGVyLCBQ
b2ludGVyUHJpbnRlciwKKyAgICAgIGludGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xl
eGljYWxfbmFtZV9sb29rdXA6OlN0cmVhbVByaW50ZXIsCisgICAgICBQcm90b2J1ZlByaW50ZXIs
IENvbnZlcnRpYmxlVG9JbnRlZ2VyUHJpbnRlciwKKyAgICAgIENvbnZlcnRpYmxlVG9TdHJpbmdW
aWV3UHJpbnRlciwgUmF3Qnl0ZXNQcmludGVyLCBGYWxsYmFja1ByaW50ZXI+Ojp0eXBlOworICBQ
cmludGVyOjpQcmludFZhbHVlKHZhbHVlLCBvcyk7Cit9CiAKIC8vIEZvcm1hdEZvckNvbXBhcmlz
b248VG9QcmludCwgT3RoZXJPcGVyYW5kPjo6Rm9ybWF0KHZhbHVlKSBmb3JtYXRzIGEKIC8vIHZh
bHVlIG9mIHR5cGUgVG9QcmludCB0aGF0IGlzIGFuIG9wZXJhbmQgb2YgYSBjb21wYXJpc29uIGFz
c2VydGlvbgpAQCAtMzQwLDYgKzM2NSwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19B
U19QT0lOVEVSXyhjaGFyKTsKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJf
KGNvbnN0IGNoYXIpOwogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8od2No
YXJfdCk7CiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCB3Y2hh
cl90KTsKKyNpZmRlZiBfX2NwcF9jaGFyOF90CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19B
U19QT0lOVEVSXyhjaGFyOF90KTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5U
RVJfKGNvbnN0IGNoYXI4X3QpOworI2VuZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19B
U19QT0lOVEVSXyhjaGFyMTZfdCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lO
VEVSXyhjb25zdCBjaGFyMTZfdCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lO
VEVSXyhjaGFyMzJfdCk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhj
b25zdCBjaGFyMzJfdCk7CiAKICN1bmRlZiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19Q
T0lOVEVSXwogCkBAIC0zNTcsMTYgKzM5MCwxNCBAQCBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklO
R19BU19QT0lOVEVSXyhjb25zdCB3Y2hhcl90KTsKIAogR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJ
TkdfQVNfU1RSSU5HXyhjaGFyLCA6OnN0ZDo6c3RyaW5nKTsKIEdURVNUX0lNUExfRk9STUFUX0Nf
U1RSSU5HX0FTX1NUUklOR18oY29uc3QgY2hhciwgOjpzdGQ6OnN0cmluZyk7Ci0KLSNpZiBHVEVT
VF9IQVNfR0xPQkFMX1NUUklORwotR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5H
XyhjaGFyLCA6OnN0cmluZyk7Ci1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdf
KGNvbnN0IGNoYXIsIDo6c3RyaW5nKTsKLSNlbmRpZgotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9X
U1RSSU5HCi1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKHdjaGFyX3QsIDo6
d3N0cmluZyk7Ci1HVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IHdj
aGFyX3QsIDo6d3N0cmluZyk7CisjaWZkZWYgX19jcHBfY2hhcjhfdAorR1RFU1RfSU1QTF9GT1JN
QVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyOF90LCA6OnN0ZDo6dThzdHJpbmcpOworR1RFU1Rf
SU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjb25zdCBjaGFyOF90LCA6OnN0ZDo6dThz
dHJpbmcpOwogI2VuZGlmCitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNo
YXIxNl90LCA6OnN0ZDo6dTE2c3RyaW5nKTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FT
X1NUUklOR18oY29uc3QgY2hhcjE2X3QsIDo6c3RkOjp1MTZzdHJpbmcpOworR1RFU1RfSU1QTF9G
T1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyMzJfdCwgOjpzdGQ6OnUzMnN0cmluZyk7CitH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIzMl90LCA6OnN0
ZDo6dTMyc3RyaW5nKTsKIAogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogR1RFU1RfSU1QTF9G
T1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyh3Y2hhcl90LCA6OnN0ZDo6d3N0cmluZyk7CkBAIC0z
OTksODUgKzQzMCw2IEBAIHN0ZDo6c3RyaW5nIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVz
c2FnZSgKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjsKIAot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0IFQmIHZhbHVl
LCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotCi1lbnVtIERlZmF1bHRQcmludGVyVHlwZSB7Ci0gIGtQ
cmludENvbnRhaW5lciwKLSAga1ByaW50UG9pbnRlciwKLSAga1ByaW50RnVuY3Rpb25Qb2ludGVy
LAotICBrUHJpbnRPdGhlciwKLX07Ci10ZW1wbGF0ZSA8RGVmYXVsdFByaW50ZXJUeXBlIHR5cGU+
IHN0cnVjdCBXcmFwUHJpbnRlclR5cGUge307Ci0KLS8vIFVzZWQgdG8gcHJpbnQgYW4gU1RMLXN0
eWxlIGNvbnRhaW5lciB3aGVuIHRoZSB1c2VyIGRvZXNuJ3QgZGVmaW5lCi0vLyBhIFByaW50VG8o
KSBmb3IgaXQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3Jh
cFByaW50ZXJUeXBlPGtQcmludENvbnRhaW5lcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEMmIGNvbnRhaW5lciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGNvbnN0
IHNpemVfdCBrTWF4Q291bnQgPSAzMjsgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50
cyB0byBwcmludC4KLSAgKm9zIDw8ICd7JzsKLSAgc2l6ZV90IGNvdW50ID0gMDsKLSAgZm9yICh0
eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciBpdCA9IGNvbnRhaW5lci5iZWdpbigpOwotICAgICAg
IGl0ICE9IGNvbnRhaW5lci5lbmQoKTsgKytpdCwgKytjb3VudCkgewotICAgIGlmIChjb3VudCA+
IDApIHsKLSAgICAgICpvcyA8PCAnLCc7Ci0gICAgICBpZiAoY291bnQgPT0ga01heENvdW50KSB7
ICAvLyBFbm91Z2ggaGFzIGJlZW4gcHJpbnRlZC4KLSAgICAgICAgKm9zIDw8ICIgLi4uIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICAgICpvcyA8PCAnICc7Ci0gICAgLy8gV2Ug
Y2Fubm90IGNhbGwgUHJpbnRUbygqaXQsIG9zKSBoZXJlIGFzIFByaW50VG8oKSBkb2Vzbid0Ci0g
ICAgLy8gaGFuZGxlICppdCBiZWluZyBhIG5hdGl2ZSBhcnJheS4KLSAgICBpbnRlcm5hbDo6VW5p
dmVyc2FsUHJpbnQoKml0LCBvcyk7Ci0gIH0KLQotICBpZiAoY291bnQgPiAwKSB7Ci0gICAgKm9z
IDw8ICcgJzsKLSAgfQotICAqb3MgPDwgJ30nOwotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgcG9p
bnRlciB0aGF0IGlzIG5laXRoZXIgYSBjaGFyIHBvaW50ZXIgbm9yIGEgbWVtYmVyCi0vLyBwb2lu
dGVyLCB3aGVuIHRoZSB1c2VyIGRvZXNuJ3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuICAoQSBt
ZW1iZXIKLS8vIHZhcmlhYmxlIHBvaW50ZXIgb3IgbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXIgZG9l
c24ndCByZWFsbHkgcG9pbnQgdG8KLS8vIGEgbG9jYXRpb24gaW4gdGhlIGFkZHJlc3Mgc3BhY2Uu
ICBUaGVpciByZXByZXNlbnRhdGlvbiBpcwotLy8gaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gIFRo
ZXJlZm9yZSB0aGV5IHdpbGwgYmUgcHJpbnRlZCBhcyByYXcKLS8vIGJ5dGVzLikKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFwUHJpbnRlclR5cGU8a1ByaW50
UG9pbnRlcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIFQqIHAsIDo6c3RkOjpv
c3RyZWFtKiBvcykgewotICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8ICJOVUxMIjsKLSAg
fSBlbHNlIHsKLSAgICAvLyBUIGlzIG5vdCBhIGZ1bmN0aW9uIHR5cGUuICBXZSBqdXN0IGNhbGwg
PDwgdG8gcHJpbnQgcCwKLSAgICAvLyByZWx5aW5nIG9uIEFETCB0byBwaWNrIHVwIHVzZXItZGVm
aW5lZCA8PCBmb3IgdGhlaXIgcG9pbnRlcgotICAgIC8vIHR5cGVzLCBpZiBhbnkuCi0gICAgKm9z
IDw8IHA7Ci0gIH0KLX0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRU
byhXcmFwUHJpbnRlclR5cGU8a1ByaW50RnVuY3Rpb25Qb2ludGVyPiAvKiBkdW1teSAqLywKLSAg
ICAgICAgICAgICAgICAgICAgVCogcCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGlmIChwID09
IE5VTEwpIHsKLSAgICAqb3MgPDwgIk5VTEwiOwotICB9IGVsc2UgewotICAgIC8vIFQgaXMgYSBm
dW5jdGlvbiB0eXBlLCBzbyAnKm9zIDw8IHAnIGRvZXNuJ3QgZG8gd2hhdCB3ZSB3YW50Ci0gICAg
Ly8gKGl0IGp1c3QgcHJpbnRzIHAgYXMgYm9vbCkuICBXZSB3YW50IHRvIHByaW50IHAgYXMgYSBj
b25zdAotICAgIC8vIHZvaWQqLgotICAgICpvcyA8PCByZWludGVycHJldF9jYXN0PGNvbnN0IHZv
aWQqPihwKTsKLSAgfQotfQotCi0vLyBVc2VkIHRvIHByaW50IGEgbm9uLWNvbnRhaW5lciwgbm9u
LXBvaW50ZXIgdmFsdWUgd2hlbiB0aGUgdXNlcgotLy8gZG9lc24ndCBkZWZpbmUgUHJpbnRUbygp
IGZvciBpdC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBEZWZhdWx0UHJpbnRUbyhXcmFw
UHJpbnRlclR5cGU8a1ByaW50T3RoZXI+IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAg
ICBjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIDo6dGVzdGluZ19pbnRl
cm5hbDo6RGVmYXVsdFByaW50Tm9uQ29udGFpbmVyVG8odmFsdWUsIG9zKTsKLX0KLQogLy8gUHJp
bnRzIHRoZSBnaXZlbiB2YWx1ZSB1c2luZyB0aGUgPDwgb3BlcmF0b3IgaWYgaXQgaGFzIG9uZTsK
IC8vIG90aGVyd2lzZSBwcmludHMgdGhlIGJ5dGVzIGluIGl0LiAgVGhpcyBpcyB3aGF0CiAvLyBV
bml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCgpIGRvZXMgd2hlbiBQcmludFRvKCkgaXMgbm90IHNw
ZWNpYWxpemVkCkBAIC00OTEsNDAgKzQ0Myw3IEBAIHZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFBy
aW50ZXJUeXBlPGtQcmludE90aGVyPiAvKiBkdW1teSAqLywKIC8vIHdhbnRzKS4KIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogdm9pZCBQcmludFRvKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgLy8gRGVmYXVsdFByaW50VG8oKSBpcyBvdmVybG9hZGVkLiAgVGhlIHR5cGUg
b2YgaXRzIGZpcnN0IGFyZ3VtZW50Ci0gIC8vIGRldGVybWluZXMgd2hpY2ggdmVyc2lvbiB3aWxs
IGJlIHBpY2tlZC4KLSAgLy8KLSAgLy8gTm90ZSB0aGF0IHdlIGNoZWNrIGZvciBjb250YWluZXIg
dHlwZXMgaGVyZSwgcHJpb3IgdG8gd2UgY2hlY2sKLSAgLy8gZm9yIHByb3RvY29sIG1lc3NhZ2Ug
dHlwZXMgaW4gb3VyIG9wZXJhdG9yPDwuICBUaGUgcmF0aW9uYWxlIGlzOgotICAvLwotICAvLyBG
b3IgcHJvdG9jb2wgbWVzc2FnZXMsIHdlIHdhbnQgdG8gZ2l2ZSBwZW9wbGUgYSBjaGFuY2UgdG8K
LSAgLy8gb3ZlcnJpZGUgR29vZ2xlIE1vY2sncyBmb3JtYXQgYnkgZGVmaW5pbmcgYSBQcmludFRv
KCkgb3IKLSAgLy8gb3BlcmF0b3I8PC4gIEZvciBTVEwgY29udGFpbmVycywgb3RoZXIgZm9ybWF0
cyBjYW4gYmUKLSAgLy8gaW5jb21wYXRpYmxlIHdpdGggR29vZ2xlIE1vY2sncyBmb3JtYXQgZm9y
IHRoZSBjb250YWluZXIKLSAgLy8gZWxlbWVudHM7IHRoZXJlZm9yZSB3ZSBjaGVjayBmb3IgY29u
dGFpbmVyIHR5cGVzIGhlcmUgdG8gZW5zdXJlCi0gIC8vIHRoYXQgb3VyIGZvcm1hdCBpcyB1c2Vk
LgotICAvLwotICAvLyBOb3RlIHRoYXQgTVNWQyBhbmQgY2xhbmctY2wgZG8gYWxsb3cgYW4gaW1w
bGljaXQgY29udmVyc2lvbiBmcm9tCi0gIC8vIHBvaW50ZXItdG8tZnVuY3Rpb24gdG8gcG9pbnRl
ci10by1vYmplY3QsIGJ1dCBjbGFuZy1jbCB3YXJucyBvbiBpdC4KLSAgLy8gU28gZG9uJ3QgdXNl
IEltcGxpY2l0bHlDb252ZXJ0aWJsZSBpZiBpdCBjYW4gYmUgaGVscGVkIHNpbmNlIGl0IHdpbGwK
LSAgLy8gY2F1c2UgdGhpcyB3YXJuaW5nLCBhbmQgdXNlIGEgc2VwYXJhdGUgb3ZlcmxvYWQgb2Yg
RGVmYXVsdFByaW50VG8gZm9yCi0gIC8vIGZ1bmN0aW9uIHBvaW50ZXJzIHNvIHRoYXQgdGhlIGAq
b3MgPDwgcGAgaW4gdGhlIG9iamVjdCBwb2ludGVyIG92ZXJsb2FkCi0gIC8vIGRvZXNuJ3QgY2F1
c2UgdGhhdCB3YXJuaW5nIGVpdGhlci4KLSAgRGVmYXVsdFByaW50VG8oCi0gICAgICBXcmFwUHJp
bnRlclR5cGUgPAotICAgICAgICAgICAgICAgICAgKHNpemVvZihJc0NvbnRhaW5lclRlc3Q8VD4o
MCkpID09IHNpemVvZihJc0NvbnRhaW5lcikpICYmCi0gICAgICAgICAgICAgICFJc1JlY3Vyc2l2
ZUNvbnRhaW5lcjxUPjo6dmFsdWUKLSAgICAgICAgICA/IGtQcmludENvbnRhaW5lcgotICAgICAg
ICAgIDogIWlzX3BvaW50ZXI8VD46OnZhbHVlCi0gICAgICAgICAgICAgICAgPyBrUHJpbnRPdGhl
cgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSAgICAgICAgICAgICAgICA6IHN0ZDo6aXNfZnVuY3Rp
b248dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxUPjo6dHlwZT46OnZhbHVlCi0jZWxzZQot
ICAgICAgICAgICAgICAgIDogIWludGVybmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgY29u
c3Qgdm9pZCo+Ojp2YWx1ZQotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgPyBrUHJpbnRG
dW5jdGlvblBvaW50ZXIKLSAgICAgICAgICAgICAgICAgICAgICA6IGtQcmludFBvaW50ZXIgPiAo
KSwKLSAgICAgIHZhbHVlLCBvcyk7CisgIGludGVybmFsOjpQcmludFdpdGhGYWxsYmFjayh2YWx1
ZSwgb3MpOwogfQogCiAvLyBUaGUgZm9sbG93aW5nIGxpc3Qgb2YgUHJpbnRUbygpIG92ZXJsb2Fk
cyB0ZWxscwpAQCAtNTU1LDYgKzQ3NCwxNiBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGJvb2wgeCwg
OjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAvLyBpcyBpbXBsZW1lbnRlZCBhcyBhbiB1bnNpZ25lZCB0
eXBlLgogR1RFU1RfQVBJXyB2b2lkIFByaW50VG8od2NoYXJfdCB3YywgOjpzdGQ6Om9zdHJlYW0q
IG9zKTsKIAorR1RFU1RfQVBJXyB2b2lkIFByaW50VG8oY2hhcjMyX3QgYywgOjpzdGQ6Om9zdHJl
YW0qIG9zKTsKK2lubGluZSB2b2lkIFByaW50VG8oY2hhcjE2X3QgYywgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9zKTsKK30KKyNp
ZmRlZiBfX2NwcF9jaGFyOF90CitpbmxpbmUgdm9pZCBQcmludFRvKGNoYXI4X3QgYywgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0XzxjaGFyMzJfdD4oYyksIG9z
KTsKK30KKyNlbmRpZgorCiAvLyBPdmVybG9hZHMgZm9yIEMgc3RyaW5ncy4KIEdURVNUX0FQSV8g
dm9pZCBQcmludFRvKGNvbnN0IGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUg
dm9pZCBQcmludFRvKGNoYXIqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewpAQCAtNTc1LDYgKzUw
NCwyMyBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIHMsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgewogaW5saW5lIHZvaWQgUHJpbnRUbyh1bnNpZ25lZCBjaGFyKiBzLCA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQq
PihzKSwgb3MpOwogfQorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIE92ZXJsb2FkcyBmb3IgdTgg
c3RyaW5ncy4KK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSog
b3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyOF90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3Mp
IHsKKyAgUHJpbnRUbyhJbXBsaWNpdENhc3RfPGNvbnN0IGNoYXI4X3QqPihzKSwgb3MpOworfQor
I2VuZGlmCisvLyBPdmVybG9hZHMgZm9yIHUxNiBzdHJpbmdzLgordm9pZCBQcmludFRvKGNvbnN0
IGNoYXIxNl90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhj
aGFyMTZfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGljaXRDYXN0
Xzxjb25zdCBjaGFyMTZfdCo+KHMpLCBvcyk7Cit9CisvLyBPdmVybG9hZHMgZm9yIHUzMiBzdHJp
bmdzLgordm9pZCBQcmludFRvKGNvbnN0IGNoYXIzMl90KiBzLCA6OnN0ZDo6b3N0cmVhbSogb3Mp
OworaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyMzJfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
CisgIFByaW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCBjaGFyMzJfdCo+KHMpLCBvcyk7Cit9CiAK
IC8vIE1TVkMgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZGVmaW5lIHdjaGFyX3QgYXMgYSB0eXBlZGVm
IG9mIHVuc2lnbmVkCiAvLyBzaG9ydC4gIEl0IGRlZmluZXMgX05BVElWRV9XQ0hBUl9UX0RFRklO
RUQgd2hlbiB3Y2hhcl90IGlzIGEgbmF0aXZlCkBAIC02MDMsMjcgKzU0OSwzMyBAQCB2b2lkIFBy
aW50UmF3QXJyYXlUbyhjb25zdCBUIGFbXSwgc2l6ZV90IGNvdW50LCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsKICAgfQogfQogCi0vLyBPdmVybG9hZHMgZm9yIDo6c3RyaW5nIGFuZCA6OnN0ZDo6c3Ry
aW5nLgotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRT
dHJpbmdUbyhjb25zdCA6OnN0cmluZyZzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZv
aWQgUHJpbnRUbyhjb25zdCA6OnN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFBy
aW50U3RyaW5nVG8ocywgb3MpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklO
RwotCisvLyBPdmVybG9hZHMgZm9yIDo6c3RkOjpzdHJpbmcuCiBHVEVTVF9BUElfIHZvaWQgUHJp
bnRTdHJpbmdUbyhjb25zdCA6OnN0ZDo6c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBp
bmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFt
KiBvcykgewogICBQcmludFN0cmluZ1RvKHMsIG9zKTsKIH0KIAotLy8gT3ZlcmxvYWRzIGZvciA6
OndzdHJpbmcgYW5kIDo6c3RkOjp3c3RyaW5nLgotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklO
RwotR1RFU1RfQVBJXyB2b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyZzLCA6
OnN0ZDo6b3N0cmVhbSogb3MpOwotaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OndzdHJpbmcm
IHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFdpZGVTdHJpbmdUbyhzLCBvcyk7Cisv
LyBPdmVybG9hZHMgZm9yIDo6c3RkOjp1OHN0cmluZworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK0dU
RVNUX0FQSV8gdm9pZCBQcmludFU4U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCA6
OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dThz
dHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFU4U3RyaW5nVG8ocywgb3Mp
OworfQorI2VuZGlmCisKKy8vIE92ZXJsb2FkcyBmb3IgOjpzdGQ6OnUxNnN0cmluZworR1RFU1Rf
QVBJXyB2b2lkIFByaW50VTE2U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywgOjpz
dGQ6Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnUxNnN0
cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VTE2U3RyaW5nVG8ocywgb3Mp
OworfQorCisvLyBPdmVybG9hZHMgZm9yIDo6c3RkOjp1MzJzdHJpbmcKK0dURVNUX0FQSV8gdm9p
ZCBQcmludFUzMlN0cmluZ1RvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMsIDo6c3RkOjpvc3Ry
ZWFtKiBvcyk7CitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp1MzJzdHJpbmcmIHMs
IDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFUzMlN0cmluZ1RvKHMsIG9zKTsKIH0KLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCiAKKy8vIE92ZXJsb2FkcyBmb3IgOjpz
dGQ6OndzdHJpbmcuCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiBHVEVTVF9BUElfIHZvaWQg
UHJpbnRXaWRlU3RyaW5nVG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0q
IG9zKTsKIGlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgewpAQCAtNjMxLDEwNiArNTgzLDgyIEBAIGlubGluZSB2b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OndzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogfQogI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmIEdURVNUX0hBU19BQlNMCi0vLyBP
dmVybG9hZCBmb3IgYWJzbDo6c3RyaW5nX3ZpZXcuCi1pbmxpbmUgdm9pZCBQcmludFRvKGFic2w6
OnN0cmluZ192aWV3IHNwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyNpZiBHVEVTVF9JTlRFUk5B
TF9IQVNfU1RSSU5HX1ZJRVcKKy8vIE92ZXJsb2FkIGZvciBpbnRlcm5hbDo6U3RyaW5nVmlldy4K
K2lubGluZSB2b2lkIFByaW50VG8oaW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3AsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgewogICBQcmludFRvKDo6c3RkOjpzdHJpbmcoc3ApLCBvcyk7CiB9Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19BQlNMCisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdf
VklFVwogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQogaW5saW5lIHZvaWQgUHJpbnRUbyhzdGQ6Om51
bGxwdHJfdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7ICpvcyA8PCAiKG51bGxwdHIpIjsgfQotI2Vu
ZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCiAKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdU
RVNUX0hBU19TVERfVFVQTEVfCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEgdHVw
bGUuICBUIG11c3QgYmUgaW5zdGFudGlhdGVkIHdpdGgKLS8vIGEgdHVwbGUgdHlwZS4KIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotdm9pZCBQcmludFR1cGxlVG8oY29uc3QgVCYgdCwgOjpzdGQ6Om9z
dHJlYW0qIG9zKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNf
U1REX1RVUExFXwotCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotLy8gT3ZlcmxvYWQgZm9yIDo6
c3RkOjp0cjE6OnR1cGxlLiAgTmVlZGVkIGZvciBwcmludGluZyBmdW5jdGlvbiBhcmd1bWVudHMs
Ci0vLyB3aGljaCBhcmUgcGFja2VkIGFzIHR1cGxlcy4KLQotLy8gT3ZlcmxvYWRlZCBQcmludFRv
KCkgZm9yIHR1cGxlcyBvZiB2YXJpb3VzIGFyaXRpZXMuICBXZSBzdXBwb3J0Ci0vLyB0dXBsZXMg
b2YgdXAtdG8gMTAgZmllbGRzLiAgVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRhdGlvbiB3b3Jrcwot
Ly8gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRyMTo6dHVwbGUgaXMgaW1wbGVtZW50ZWQgdXNpbmcg
dGhlCi0vLyBub24tc3RhbmRhcmQgdmFyaWFkaWMgdGVtcGxhdGUgZmVhdHVyZSBvciBub3QuCi0K
LWlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8PiYgdCwgOjpzdGQ6
Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMT4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMT4mIHQs
IDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3Rk
Ojp0cjE6OnR1cGxlPFQxLCBUMj4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1
cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMz4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIs
IFQzPiYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUND4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQz
LCBUND4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwor
dm9pZCBQcmludFRvKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gcmVmLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRlcjxUJj46OlByaW50KHJlZi5nZXQoKSwgb3MpOwog
fQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1
cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0q
IG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7CitpbmxpbmUgY29uc3Qgdm9pZCogVm9pZGlm
eVBvaW50ZXIoY29uc3Qgdm9pZCogcCkgeyByZXR1cm4gcDsgfQoraW5saW5lIGNvbnN0IHZvaWQq
IFZvaWRpZnlQb2ludGVyKHZvbGF0aWxlIGNvbnN0IHZvaWQqIHApIHsKKyAgcmV0dXJuIGNvbnN0
X2Nhc3Q8Y29uc3Qgdm9pZCo+KHApOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAg
IHR5cGVuYW1lIFQ2Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDY+JiB0LAotICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewotICBQcmludFR1cGxlVG8odCwgb3MpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFB0cj4KK3ZvaWQgUHJpbnRTbWFydFBvaW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVh
bSogb3MsIGNoYXIpIHsKKyAgaWYgKHB0ciA9PSBudWxscHRyKSB7CisgICAgKm9zIDw8ICIobnVs
bHB0cikiOworICB9IGVsc2UgeworICAgIC8vIFdlIGNhbid0IHByaW50IHRoZSB2YWx1ZS4gSnVz
dCBwcmludCB0aGUgcG9pbnRlci4uCisgICAgKm9zIDw8ICIoIiA8PCAoVm9pZGlmeVBvaW50ZXIp
KHB0ci5nZXQoKSkgPDwgIikiOworICB9CiB9Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAg
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3Pgotdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0
cjE6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiYgdCwKLSAgICAgICAgICAgICA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBQdHIsCisgICAgICAgICAgdHlwZW5hbWUgPSB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjwhc3RkOjppc192b2lkPFQ+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0ZDo6aXNfYXJyYXk8VD46OnZhbHVlPjo6
dHlwZT4KK3ZvaWQgUHJpbnRTbWFydFBvaW50ZXIoY29uc3QgUHRyJiBwdHIsIHN0ZDo6b3N0cmVh
bSogb3MsIGludCkgeworICBpZiAocHRyID09IG51bGxwdHIpIHsKKyAgICAqb3MgPDwgIihudWxs
cHRyKSI7CisgIH0gZWxzZSB7CisgICAgKm9zIDw8ICIocHRyID0gIiA8PCAoVm9pZGlmeVBvaW50
ZXIpKHB0ci5nZXQoKSkgPDwgIiwgdmFsdWUgPSAiOworICAgIFVuaXZlcnNhbFByaW50ZXI8VD46
OlByaW50KCpwdHIsIG9zKTsKKyAgICAqb3MgPDwgIikiOworICB9CiB9CiAKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4K
LXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDg+JiB0LAotICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQ
cmludFR1cGxlVG8odCwgb3MpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+Cit2
b2lkIFByaW50VG8oY29uc3Qgc3RkOjp1bmlxdWVfcHRyPFQsIEQ+JiBwdHIsIHN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgKFByaW50U21hcnRQb2ludGVyPFQ+KShwdHIsIG9zLCAwKTsKIH0KIAotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICAgICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOT4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBs
ZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiYgdCwKLSAgICAgICAgICAgICA6
OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgordm9pZCBQcmludFRvKGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxUPiYgcHRyLCBz
dGQ6Om9zdHJlYW0qIG9zKSB7CisgIChQcmludFNtYXJ0UG9pbnRlcjxUPikocHRyLCBvcywgMCk7
CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMD4KLXZvaWQgUHJpbnRU
bygKLSAgICBjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTA+JiB0LAotICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1
cGxlVG8odCwgb3MpOworLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLiAg
VCBtdXN0IGJlIGluc3RhbnRpYXRlZCB3aXRoCisvLyBhIHR1cGxlIHR5cGUuCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KK3ZvaWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmLCBzdGQ6OmludGVncmFsX2Nv
bnN0YW50PHNpemVfdCwgMD4sCisgICAgICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSopIHt9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgST4KK3ZvaWQgUHJpbnRUdXBsZVRvKGNv
bnN0IFQmIHQsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBJPiwKKyAgICAgICAgICAg
ICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFR1cGxlVG8odCwgc3RkOjppbnRl
Z3JhbF9jb25zdGFudDxzaXplX3QsIEkgLSAxPigpLCBvcyk7CisgIEdURVNUX0lOVEVOVElPTkFM
X0NPTlNUX0NPTkRfUFVTSF8oKQorICBpZiAoSSA+IDEpIHsKKyAgICBHVEVTVF9JTlRFTlRJT05B
TF9DT05TVF9DT05EX1BPUF8oKQorICAgICpvcyA8PCAiLCAiOworICB9CisgIFVuaXZlcnNhbFBy
aW50ZXI8dHlwZW5hbWUgc3RkOjp0dXBsZV9lbGVtZW50PEkgLSAxLCBUPjo6dHlwZT46OlByaW50
KAorICAgICAgc3RkOjpnZXQ8SSAtIDE+KHQpLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hB
U19UUjFfVFVQTEUKIAotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUuLi4gVHlwZXM+CiB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiYg
dCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7CisgICpvcyA8
PCAiKCI7CisgIFByaW50VHVwbGVUbyh0LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwg
c2l6ZW9mLi4uKFR5cGVzKT4oKSwgb3MpOworICAqb3MgPDwgIikiOwogfQotI2VuZGlmICAvLyBH
VEVTVF9IQVNfU1REX1RVUExFXwogCiAvLyBPdmVybG9hZCBmb3Igc3RkOjpwYWlyLgogdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KQEAgLTc0NCw2ICs2NzIsMTggQEAgdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjpwYWlyPFQxLCBUMj4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsKICAgKm9zIDw8ICcpJzsKIH0KIAorI2lmIEdURVNUX0hBU19SVFRJCitpbmxpbmUgdm9p
ZCBQcmludFRvKGNvbnN0IDo6c3RkOjp0eXBlX2luZm8mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsKKyAgaW50ZXJuYWw6OlByaW50VG88OjpzdGQ6OnR5cGVfaW5mbz4odmFsdWUsIG9zKTsK
KyAgKm9zIDw8ICIgKFwiIiA8PCB2YWx1ZS5uYW1lKCkgPDwgIlwiKSI7Cit9CisKK2lubGluZSB2
b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnR5cGVfaW5kZXgmIHZhbHVlLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgaW50ZXJuYWw6OlByaW50VG88OjpzdGQ6OnR5cGVfaW5kZXg+KHZhbHVlLCBv
cyk7CisgICpvcyA8PCAiIChcIiIgPDwgdmFsdWUubmFtZSgpIDw8ICJcIikiOworfQorI2VuZGlm
ICAvLyBHVEVTVF9IQVNfUlRUSQorCiAvLyBJbXBsZW1lbnRzIHByaW50aW5nIGEgbm9uLXJlZmVy
ZW5jZSB0eXBlIFQgYnkgbGV0dGluZyB0aGUgY29tcGlsZXIKIC8vIHBpY2sgdGhlIHJpZ2h0IG92
ZXJsb2FkIG9mIFByaW50VG8oKSBmb3IgVC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtNzcx
LDE0ICs3MTEsNDYgQEAgY2xhc3MgVW5pdmVyc2FsUHJpbnRlciB7CiAgIEdURVNUX0RJU0FCTEVf
TVNDX1dBUk5JTkdTX1BPUF8oKQogfTsKIAotI2lmIEdURVNUX0hBU19BQlNMCisvLyBSZW1vdmUg
YW55IGNvbnN0LXF1YWxpZmllcnMgYmVmb3JlIHBhc3NpbmcgYSB0eXBlIHRvIFVuaXZlcnNhbFBy
aW50ZXIuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFVuaXZlcnNhbFByaW50ZXI8Y29u
c3QgVD4gOiBwdWJsaWMgVW5pdmVyc2FsUHJpbnRlcjxUPiB7fTsKIAotLy8gUHJpbnRlciBmb3Ig
YWJzbDo6b3B0aW9uYWwKKyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfQU5ZCisKKy8vIFByaW50ZXIg
Zm9yIHN0ZDo6YW55IC8gYWJzbDo6YW55CisKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxQ
cmludGVyPEFueT4geworIHB1YmxpYzoKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgQW55JiB2
YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHZhbHVlLmhhc192YWx1ZSgpKSB7
CisgICAgICAqb3MgPDwgInZhbHVlIG9mIHR5cGUgIiA8PCBHZXRUeXBlTmFtZSh2YWx1ZSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICpvcyA8PCAibm8gdmFsdWUiOworICAgIH0KKyAgfQorCisgcHJp
dmF0ZToKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldFR5cGVOYW1lKGNvbnN0IEFueSYgdmFsdWUp
IHsKKyNpZiBHVEVTVF9IQVNfUlRUSQorICAgIHJldHVybiBpbnRlcm5hbDo6R2V0VHlwZU5hbWUo
dmFsdWUudHlwZSgpKTsKKyNlbHNlCisgICAgc3RhdGljX2Nhc3Q8dm9pZD4odmFsdWUpOyAgLy8g
cG9zc2libHkgdW51c2VkCisgICAgcmV0dXJuICI8dW5rbm93bl90eXBlPiI7CisjZW5kaWYgIC8v
IEdURVNUX0hBU19SVFRJCisgIH0KK307CisKKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFT
X0FOWQorCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMCisKKy8vIFByaW50ZXIgZm9y
IHN0ZDo6b3B0aW9uYWwgLyBhYnNsOjpvcHRpb25hbAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
LWNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjpvcHRpb25hbDxUPj4geworY2xhc3MgVW5p
dmVyc2FsUHJpbnRlcjxPcHRpb25hbDxUPj4gewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgUHJp
bnQoY29uc3QgOjphYnNsOjpvcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykg
eworICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBPcHRpb25hbDxUPiYgdmFsdWUsIDo6c3RkOjpv
c3RyZWFtKiBvcykgewogICAgICpvcyA8PCAnKCc7CiAgICAgaWYgKCF2YWx1ZSkgewogICAgICAg
Km9zIDw8ICJudWxsb3B0IjsKQEAgLTc4OSwxNCArNzYxLDIyIEBAIGNsYXNzIFVuaXZlcnNhbFBy
aW50ZXI8OjphYnNsOjpvcHRpb25hbDxUPj4gewogICB9CiB9OwogCi0vLyBQcmludGVyIGZvciBh
YnNsOjp2YXJpYW50CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAorCisj
aWYgR1RFU1RfSU5URVJOQUxfSEFTX1ZBUklBTlQKKworLy8gUHJpbnRlciBmb3Igc3RkOjp2YXJp
YW50IC8gYWJzbDo6dmFyaWFudAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIFVu
aXZlcnNhbFByaW50ZXI8OjphYnNsOjp2YXJpYW50PFQuLi4+PiB7CitjbGFzcyBVbml2ZXJzYWxQ
cmludGVyPFZhcmlhbnQ8VC4uLj4+IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNv
bnN0IDo6YWJzbDo6dmFyaWFudDxULi4uPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewor
ICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBWYXJpYW50PFQuLi4+JiB2YWx1ZSwgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7CiAgICAgKm9zIDw8ICcoJzsKLSAgICBhYnNsOjp2aXNpdChWaXNpdG9ye29z
fSwgdmFsdWUpOworI2lmIEdURVNUX0hBU19BQlNMCisgICAgYWJzbDo6dmlzaXQoVmlzaXRvcntv
cywgdmFsdWUuaW5kZXgoKX0sIHZhbHVlKTsKKyNlbHNlCisgICAgc3RkOjp2aXNpdChWaXNpdG9y
e29zLCB2YWx1ZS5pbmRleCgpfSwgdmFsdWUpOworI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAog
ICAgICpvcyA8PCAnKSc7CiAgIH0KIApAQCAtODA0LDE0ICs3ODQsMTYgQEAgY2xhc3MgVW5pdmVy
c2FsUHJpbnRlcjw6OmFic2w6OnZhcmlhbnQ8VC4uLj4+IHsKICAgc3RydWN0IFZpc2l0b3Igewog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgogICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCBVJiB1
KSBjb25zdCB7Ci0gICAgICAqb3MgPDwgIiciIDw8IEdldFR5cGVOYW1lPFU+KCkgPDwgIicgd2l0
aCB2YWx1ZSAiOworICAgICAgKm9zIDw8ICInIiA8PCBHZXRUeXBlTmFtZTxVPigpIDw8ICIoaW5k
ZXggPSAiIDw8IGluZGV4CisgICAgICAgICAgPDwgIiknIHdpdGggdmFsdWUgIjsKICAgICAgIFVu
aXZlcnNhbFByaW50KHUsIG9zKTsKICAgICB9CiAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zOworICAg
IHN0ZDo6c2l6ZV90IGluZGV4OwogICB9OwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJT
TAorI2VuZGlmICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAogCiAvLyBVbml2ZXJzYWxQ
cmludEFycmF5KGJlZ2luLCBsZW4sIG9zKSBwcmludHMgYW4gYXJyYXkgb2YgJ2xlbicKIC8vIGVs
ZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzICdiZWdpbicuCkBAIC04MjYsNyArODA4LDYgQEAg
dm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IFQqIGJlZ2luLCBzaXplX3QgbGVuLCA6OnN0
ZDo6b3N0cmVhbSogb3MpIHsKICAgICAvLyBJZiB0aGUgYXJyYXkgaGFzIG1vcmUgdGhhbiBrVGhy
ZXNob2xkIGVsZW1lbnRzLCB3ZSdsbCBoYXZlIHRvCiAgICAgLy8gb21pdCBzb21lIGRldGFpbHMg
YnkgcHJpbnRpbmcgb25seSB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0CiAgICAgLy8ga0NodW5rU2l6
ZSBlbGVtZW50cy4KLSAgICAvLyBGSVhNRTogbGV0IHRoZSB1c2VyIGNvbnRyb2wgdGhlIHRocmVz
aG9sZCB1c2luZyBhIGZsYWcuCiAgICAgaWYgKGxlbiA8PSBrVGhyZXNob2xkKSB7CiAgICAgICBQ
cmludFJhd0FycmF5VG8oYmVnaW4sIGxlbiwgb3MpOwogICAgIH0gZWxzZSB7CkBAIC04NDEsNiAr
ODIyLDIwIEBAIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25zdCBUKiBiZWdpbiwgc2l6ZV90
IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiBHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJp
bnRBcnJheSgKICAgICBjb25zdCBjaGFyKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJl
YW0qIG9zKTsKIAorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRz
IGEgKGNvbnN0KSBjaGFyOF90IGFycmF5IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2
ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXI4X3QqIGJlZ2luLCBzaXplX3QgbGVuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKKyNlbmRp
ZgorCisvLyBUaGlzIG92ZXJsb2FkIHByaW50cyBhIChjb25zdCkgY2hhcjE2X3QgYXJyYXkgY29t
cGFjdGx5LgorR1RFU1RfQVBJXyB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29uc3QgY2hhcjE2
X3QqIGJlZ2luLCBzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKKworLy8gVGhpcyBvdmVybG9hZCBwcmludHMgYSAoY29u
c3QpIGNoYXIzMl90IGFycmF5IGNvbXBhY3RseS4KK0dURVNUX0FQSV8gdm9pZCBVbml2ZXJzYWxQ
cmludEFycmF5KGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7CisKIC8vIFRoaXMg
b3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0KSB3Y2hhcl90IGFycmF5IGNvbXBhY3RseS4KIEdURVNU
X0FQSV8gdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KAogICAgIGNvbnN0IHdjaGFyX3QqIGJlZ2lu
LCBzaXplX3QgbGVuLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwpAQCAtOTA1LDcgKzkwMCw3IEBAIHRl
bXBsYXRlIDw+CiBjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICBw
dWJsaWM6CiAgIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IGNoYXIqIHN0ciwgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRy
KSB7CiAgICAgICAqb3MgPDwgIk5VTEwiOwogICAgIH0gZWxzZSB7CiAgICAgICBVbml2ZXJzYWxQ
cmludChzdGQ6OnN0cmluZyhzdHIpLCBvcyk7CkBAIC05MTMsMTkgKzkwOCw2MiBAQCBjbGFzcyBV
bml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+IHsKICAgfQogfTsKIHRlbXBsYXRlIDw+
Ci1jbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcio+IHsKK2NsYXNzIFVuaXZlcnNhbFRl
cnNlUHJpbnRlcjxjaGFyKj4gOiBwdWJsaWMgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNo
YXIqPiB7Cit9OworCisjaWZkZWYgX19jcHBfY2hhcjhfdAordGVtcGxhdGUgPD4KK2NsYXNzIFVu
aXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCBjaGFyOF90Kj4gewogIHB1YmxpYzoKLSAgc3RhdGlj
IHZvaWQgUHJpbnQoY2hhciogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgICBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcio+OjpQcmludChzdHIsIG9zKTsKKyAgc3RhdGljIHZv
aWQgUHJpbnQoY29uc3QgY2hhcjhfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBp
ZiAoc3RyID09IG51bGxwdHIpIHsKKyAgICAgICpvcyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsK
KyAgICAgIFVuaXZlcnNhbFByaW50KDo6c3RkOjp1OHN0cmluZyhzdHIpLCBvcyk7CisgICAgfQor
ICB9Cit9OwordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyOF90
Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29uc3QgY2hhcjhfdCo+IHt9
OworI2VuZGlmCisKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y29u
c3QgY2hhcjE2X3QqPiB7CisgcHVibGljOgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBjaGFy
MTZfdCogc3RyLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICBpZiAoc3RyID09IG51bGxwdHIp
IHsKKyAgICAgICpvcyA8PCAiTlVMTCI7CisgICAgfSBlbHNlIHsKKyAgICAgIFVuaXZlcnNhbFBy
aW50KDo6c3RkOjp1MTZzdHJpbmcoc3RyKSwgb3MpOworICAgIH0KKyAgfQorfTsKK3RlbXBsYXRl
IDw+CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcjE2X3QqPgorICAgIDogcHVibGlj
IFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCBjaGFyMTZfdCo+IHt9OworCit0ZW1wbGF0ZSA8
PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIzMl90Kj4geworIHB1Ymxp
YzoKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgY2hhcjMyX3QqIHN0ciwgOjpzdGQ6Om9zdHJl
YW0qIG9zKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5VTEwi
OworICAgIH0gZWxzZSB7CisgICAgICBVbml2ZXJzYWxQcmludCg6OnN0ZDo6dTMyc3RyaW5nKHN0
ciksIG9zKTsKKyAgICB9CiAgIH0KIH07Cit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVy
c2VQcmludGVyPGNoYXIzMl90Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8
Y29uc3QgY2hhcjMyX3QqPiB7fTsKIAogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogdGVtcGxh
dGUgPD4KIGNsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCB3Y2hhcl90Kj4gewogIHB1
YmxpYzoKICAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3Qgd2NoYXJfdCogc3RyLCA6OnN0ZDo6b3N0
cmVhbSogb3MpIHsKLSAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICBpZiAoc3RyID09IG51bGxw
dHIpIHsKICAgICAgICpvcyA8PCAiTlVMTCI7CiAgICAgfSBlbHNlIHsKICAgICAgIFVuaXZlcnNh
bFByaW50KDo6c3RkOjp3c3RyaW5nKHN0ciksIG9zKTsKQEAgLTk2MSwxMDkgKzk5OSwyMCBAQCB2
b2lkIFVuaXZlcnNhbFByaW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
IAogdHlwZWRlZiA6OnN0ZDo6dmVjdG9yPCA6OnN0ZDo6c3RyaW5nPiBTdHJpbmdzOwogCi0vLyBU
dXBsZVBvbGljeTxUdXBsZVQ+IG11c3QgcHJvdmlkZToKLS8vIC0gdHVwbGVfc2l6ZQotLy8gICAg
IHNpemUgb2YgdHVwbGUgVHVwbGVULgotLy8gLSBnZXQ8c2l6ZV90IEk+KGNvbnN0IFR1cGxlVCYg
dCkKLS8vICAgICBzdGF0aWMgZnVuY3Rpb24gZXh0cmFjdGluZyBlbGVtZW50IEkgb2YgdHVwbGUg
VHVwbGVULgotLy8gLSB0dXBsZV9lbGVtZW50PHNpemVfdCBJPjo6dHlwZQotLy8gICAgIHR5cGUg
b2YgZWxlbWVudCBJIG9mIHR1cGxlIFR1cGxlVC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZVQ+
Ci1zdHJ1Y3QgVHVwbGVQb2xpY3k7Ci0KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVHVwbGVUPgotc3RydWN0IFR1cGxlUG9saWN5IHsKLSAgdHlwZWRlZiBUdXBs
ZVQgVHVwbGU7Ci0gIHN0YXRpYyBjb25zdCBzaXplX3QgdHVwbGVfc2l6ZSA9IDo6c3RkOjp0cjE6
OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0
cnVjdCB0dXBsZV9lbGVtZW50IDogOjpzdGQ6OnRyMTo6dHVwbGVfZWxlbWVudDxzdGF0aWNfY2Fz
dDxpbnQ+KEkpLCBUdXBsZT4gewotICB9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4KLSAgc3Rh
dGljIHR5cGVuYW1lIEFkZFJlZmVyZW5jZTxjb25zdCB0eXBlbmFtZSA6OnN0ZDo6dHIxOjp0dXBs
ZV9lbGVtZW50PAotICAgICAgc3RhdGljX2Nhc3Q8aW50PihJKSwgVHVwbGU+Ojp0eXBlPjo6dHlw
ZQotICBnZXQoY29uc3QgVHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3RkOjp0cjE6Omdl
dDxJPih0dXBsZSk7Ci0gIH0KLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotY29uc3Qg
c2l6ZV90IFR1cGxlUG9saWN5PFR1cGxlVD46OnR1cGxlX3NpemU7Ci0jZW5kaWYgIC8vIEdURVNU
X0hBU19UUjFfVFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVfCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUuLi4gVHlwZXM+Ci1zdHJ1Y3QgVHVwbGVQb2xpY3k8IDo6c3RkOjp0dXBsZTxUeXBlcy4u
Lj4gPiB7Ci0gIHR5cGVkZWYgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiBUdXBsZTsKLSAgc3RhdGlj
IGNvbnN0IHNpemVfdCB0dXBsZV9zaXplID0gOjpzdGQ6OnR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1
ZTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0cnVjdCB0dXBsZV9lbGVtZW50IDogOjpz
dGQ6OnR1cGxlX2VsZW1lbnQ8SSwgVHVwbGU+IHt9OwotCi0gIHRlbXBsYXRlIDxzaXplX3QgST4K
LSAgc3RhdGljIGNvbnN0IHR5cGVuYW1lIDo6c3RkOjp0dXBsZV9lbGVtZW50PEksIFR1cGxlPjo6
dHlwZSYgZ2V0KAotICAgICAgY29uc3QgVHVwbGUmIHR1cGxlKSB7Ci0gICAgcmV0dXJuIDo6c3Rk
OjpnZXQ8ST4odHVwbGUpOwotICB9Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgot
Y29uc3Qgc2l6ZV90IFR1cGxlUG9saWN5PCA6OnN0ZDo6dHVwbGU8VHlwZXMuLi4+ID46OnR1cGxl
X3NpemU7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19TVERfVFVQTEVfCi0KLSNpZiBHVEVTVF9IQVNf
VFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERfVFVQTEVfCi0vLyBUaGlzIGhlbHBlciB0ZW1wbGF0
ZSBhbGxvd3MgUHJpbnRUbygpIGZvciB0dXBsZXMgYW5kCi0vLyBVbml2ZXJzYWxUZXJzZVByaW50
VHVwbGVGaWVsZHNUb1N0cmluZ3MoKSB0byBiZSBkZWZpbmVkIGJ5Ci0vLyBpbmR1Y3Rpb24gb24g
dGhlIG51bWJlciBvZiB0dXBsZSBmaWVsZHMuICBUaGUgaWRlYSBpcyB0aGF0Ci0vLyBUdXBsZVBy
ZWZpeFByaW50ZXI8Tj46OlByaW50UHJlZml4VG8odCwgb3MpIHByaW50cyB0aGUgZmlyc3QgTgot
Ly8gZmllbGRzIGluIHR1cGxlIHQsIGFuZCBjYW4gYmUgZGVmaW5lZCBpbiB0ZXJtcyBvZgotLy8g
VHVwbGVQcmVmaXhQcmludGVyPE4gLSAxPi4KLS8vCi0vLyBUaGUgaW5kdWN0aXZlIGNhc2UuCi10
ZW1wbGF0ZSA8c2l6ZV90IE4+Ci1zdHJ1Y3QgVHVwbGVQcmVmaXhQcmludGVyIHsKLSAgLy8gUHJp
bnRzIHRoZSBmaXJzdCBOIGZpZWxkcyBvZiBhIHR1cGxlLgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFByaW50UHJlZml4VG8oY29uc3QgVHVwbGUmIHQsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgewotICAgIFR1cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlByaW50UHJl
Zml4VG8odCwgb3MpOwotICAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUFVTSF8oKQot
ICAgIGlmIChOID4gMSkgewotICAgIEdURVNUX0lOVEVOVElPTkFMX0NPTlNUX0NPTkRfUE9QXygp
Ci0gICAgICAqb3MgPDwgIiwgIjsKLSAgICB9Ci0gICAgVW5pdmVyc2FsUHJpbnRlcjwKLSAgICAg
ICAgdHlwZW5hbWUgVHVwbGVQb2xpY3k8VHVwbGU+Ojp0ZW1wbGF0ZSB0dXBsZV9lbGVtZW50PE4g
LSAxPjo6dHlwZT4KLSAgICAgICAgOjpQcmludChUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBsYXRl
IGdldDxOIC0gMT4odCksIG9zKTsKLSAgfQotCiAgIC8vIFRlcnNlbHkgcHJpbnRzIHRoZSBmaXJz
dCBOIGZpZWxkcyBvZiBhIHR1cGxlIHRvIGEgc3RyaW5nIHZlY3RvciwKICAgLy8gb25lIGVsZW1l
bnQgZm9yIGVhY2ggZmllbGQuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGlj
IHZvaWQgVGVyc2VQcmludFByZWZpeFRvU3RyaW5ncyhjb25zdCBUdXBsZSYgdCwgU3RyaW5ncyog
c3RyaW5ncykgewotICAgIFR1cGxlUHJlZml4UHJpbnRlcjxOIC0gMT46OlRlcnNlUHJpbnRQcmVm
aXhUb1N0cmluZ3ModCwgc3RyaW5ncyk7Ci0gICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAg
ICBVbml2ZXJzYWxUZXJzZVByaW50KFR1cGxlUG9saWN5PFR1cGxlPjo6dGVtcGxhdGUgZ2V0PE4g
LSAxPih0KSwgJnNzKTsKLSAgICBzdHJpbmdzLT5wdXNoX2JhY2soc3Muc3RyKCkpOwotICB9Ci19
OwotCi0vLyBCYXNlIGNhc2UuCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFR1cGxlUHJlZml4UHJpbnRl
cjwwPiB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4KLSAgc3RhdGljIHZvaWQgUHJpbnRQ
cmVmaXhUbyhjb25zdCBUdXBsZSYsIDo6c3RkOjpvc3RyZWFtKikge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3Mo
Y29uc3QgVHVwbGUmLCBTdHJpbmdzKikge30KLX07Ci0KLS8vIEhlbHBlciBmdW5jdGlvbiBmb3Ig
cHJpbnRpbmcgYSB0dXBsZS4KLS8vIFR1cGxlIG11c3QgYmUgZWl0aGVyIHN0ZDo6dHIxOjp0dXBs
ZSBvciBzdGQ6OnR1cGxlIHR5cGUuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci12b2lkIFBy
aW50VHVwbGVUbyhjb25zdCBUdXBsZSYgdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICpvcyA8
PCAiKCI7Ci0gIFR1cGxlUHJlZml4UHJpbnRlcjxUdXBsZVBvbGljeTxUdXBsZT46OnR1cGxlX3Np
emU+OjpQcmludFByZWZpeFRvKHQsIG9zKTsKLSAgKm9zIDw8ICIpIjsKK3ZvaWQgVGVyc2VQcmlu
dFByZWZpeFRvU3RyaW5ncyhjb25zdCBUdXBsZSYsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6
ZV90LCAwPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdzKikge30KK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUdXBsZSwgc2l6ZV90IEk+Cit2b2lkIFRlcnNlUHJpbnRQcmVmaXhU
b1N0cmluZ3MoY29uc3QgVHVwbGUmIHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIEk+LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFN0cmluZ3MqIHN0cmluZ3MpIHsKKyAgVGVyc2VQcmludFByZWZpeFRvU3RyaW5n
cyh0LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgSSAtIDE+KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyaW5ncyk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7Cisg
IFVuaXZlcnNhbFRlcnNlUHJpbnQoc3RkOjpnZXQ8SSAtIDE+KHQpLCAmc3MpOworICBzdHJpbmdz
LT5wdXNoX2JhY2soc3Muc3RyKCkpOwogfQogCiAvLyBQcmludHMgdGhlIGZpZWxkcyBvZiBhIHR1
cGxlIHRlcnNlbHkgdG8gYSBzdHJpbmcgdmVjdG9yLCBvbmUKQEAgLTEwNzIsMjQgKzEwMjEsMTQg
QEAgdm9pZCBQcmludFR1cGxlVG8oY29uc3QgVHVwbGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewogdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgogU3RyaW5ncyBVbml2ZXJzYWxUZXJzZVByaW50
VHVwbGVGaWVsZHNUb1N0cmluZ3MoY29uc3QgVHVwbGUmIHZhbHVlKSB7CiAgIFN0cmluZ3MgcmVz
dWx0OwotICBUdXBsZVByZWZpeFByaW50ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0dXBsZV9zaXpl
Pjo6Ci0gICAgICBUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKHZhbHVlLCAmcmVzdWx0KTsKKyAg
VGVyc2VQcmludFByZWZpeFRvU3RyaW5ncygKKyAgICAgIHZhbHVlLCBzdGQ6OmludGVncmFsX2Nv
bnN0YW50PHNpemVfdCwgc3RkOjp0dXBsZV9zaXplPFR1cGxlPjo6dmFsdWU+KCksCisgICAgICAm
cmVzdWx0KTsKICAgcmV0dXJuIHJlc3VsdDsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9U
VVBMRSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwK
IAotI2lmIEdURVNUX0hBU19BQlNMCi1uYW1lc3BhY2UgaW50ZXJuYWwyIHsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotdm9pZCBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBrQ29udmVydGlibGVUb1N0
cmluZ1ZpZXc+OjpQcmludFZhbHVlKAotICAgIGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKLSAgaW50ZXJuYWw6OlByaW50VG8oYWJzbDo6c3RyaW5nX3ZpZXcodmFsdWUpLCBv
cyk7Ci19Ci19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwyCi0jZW5kaWYKLQogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiA6OnN0ZDo6c3RyaW5nIFByaW50VG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpIHsK
ICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczsKQEAgLTExMDQsNCArMTA0Myw0IEBAIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogLy8gZGVjbGFyYXRpb25zIGZyb20gdGhpcyBmaWxlLgogI2luY2x1ZGUg
Imd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oIgogCi0jZW5kaWYgIC8vIEdU
RVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJJTlRFUlNfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVT
VF9JTkNMVURFX0dURVNUX0dURVNUX1BSSU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1zcGkuaAppbmRleCAxZTg5ODM5MzhlYTI3OTJj
NTI2OTBlYWQyOWIwMGFiNThjZGFhZTljLi5lYWNlZjQ0NjY5ZTgxMDRhM2QyOGRhYTA1NGVkYWRj
ZGViMjNjNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LXNwaS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvZ3Rlc3Qtc3BpLmgKQEAgLTMzLDggKzMzLDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDQg
RE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hf
Ci0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCisjaWZuZGVmIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9TUElfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNM
VURFX0dURVNUX0dURVNUX1NQSV9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIApAQCAt
NzIsMTQgKzcyLDE1IEBAIGNsYXNzIEdURVNUX0FQSV8gU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0
UmVwb3J0ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFBhcnRSZXN1
bHRBcnJheSogcmVzdWx0KTsKIAogICAvLyBUaGUgZCd0b3IgcmVzdG9yZXMgdGhlIHByZXZpb3Vz
IHRlc3QgcGFydCByZXN1bHQgcmVwb3J0ZXIuCi0gIHZpcnR1YWwgflNjb3BlZEZha2VUZXN0UGFy
dFJlc3VsdFJlcG9ydGVyKCk7CisgIH5TY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigp
IG92ZXJyaWRlOwogCiAgIC8vIEFwcGVuZHMgdGhlIFRlc3RQYXJ0UmVzdWx0IG9iamVjdCB0byB0
aGUgVGVzdFBhcnRSZXN1bHRBcnJheQogICAvLyByZWNlaXZlZCBpbiB0aGUgY29uc3RydWN0b3Iu
CiAgIC8vCiAgIC8vIFRoaXMgbWV0aG9kIGlzIGZyb20gdGhlIFRlc3RQYXJ0UmVzdWx0UmVwb3J0
ZXJJbnRlcmZhY2UKICAgLy8gaW50ZXJmYWNlLgotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBh
cnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVz
dFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisKICBw
cml2YXRlOgogICB2b2lkIEluaXQoKTsKIApAQCAtMjM0LDQgKzIzNSw0IEBAIEdURVNUX0RJU0FC
TEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKICAgICB9XAogICB9IHdoaWxlICg6OnRl
c3Rpbmc6OmludGVybmFsOjpBbHdheXNGYWxzZSgpKQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xV
REVfR1RFU1RfR1RFU1RfU1BJX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVT
VF9HVEVTVF9TUElfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oCmluZGV4IDFjN2I4OWUwODc5NmQ5NzMwZjlmOGVl
YWU0MDYyMjcxNzdkYmE1MTkuLjIwM2ZkZjk4YzY5ZmNkZjk2NDc0MzdjZGM4ZTZjYzcwYWUxOGU2
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rl
c3QtdGVzdC1wYXJ0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9ndGVzdC10ZXN0LXBhcnQuaApAQCAtMjksOCArMjksOCBAQAogLy8KIC8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1RFU1RfUEFSVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFS
VF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hf
CisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KIAog
I2luY2x1ZGUgPGlvc2Z3ZD4KICNpbmNsdWRlIDx2ZWN0b3I+CkBAIC01MywyMiArNTMsMjAgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFydFJlc3VsdCB7CiAgIGVudW0gVHlwZSB7CiAgICAga1N1
Y2Nlc3MsICAgICAgICAgIC8vIFN1Y2NlZWRlZC4KICAgICBrTm9uRmF0YWxGYWlsdXJlLCAgLy8g
RmFpbGVkIGJ1dCB0aGUgdGVzdCBjYW4gY29udGludWUuCi0gICAga0ZhdGFsRmFpbHVyZSAgICAg
IC8vIEZhaWxlZCBhbmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQuCisgICAga0ZhdGFs
RmFpbHVyZSwgICAgIC8vIEZhaWxlZCBhbmQgdGhlIHRlc3Qgc2hvdWxkIGJlIHRlcm1pbmF0ZWQu
CisgICAga1NraXAgICAgICAgICAgICAgIC8vIFNraXBwZWQuCiAgIH07CiAKICAgLy8gQyd0b3Iu
ICBUZXN0UGFydFJlc3VsdCBkb2VzIE5PVCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAg
Ly8gQWx3YXlzIHVzZSB0aGlzIGNvbnN0cnVjdG9yICh3aXRoIHBhcmFtZXRlcnMpIHRvIGNyZWF0
ZSBhCiAgIC8vIFRlc3RQYXJ0UmVzdWx0IG9iamVjdC4KLSAgVGVzdFBhcnRSZXN1bHQoVHlwZSBh
X3R5cGUsCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLAotICAgICAg
ICAgICAgICAgICBpbnQgYV9saW5lX251bWJlciwKKyAgVGVzdFBhcnRSZXN1bHQoVHlwZSBhX3R5
cGUsIGNvbnN0IGNoYXIqIGFfZmlsZV9uYW1lLCBpbnQgYV9saW5lX251bWJlciwKICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogYV9tZXNzYWdlKQogICAgICAgOiB0eXBlXyhhX3R5cGUpLAot
ICAgICAgICBmaWxlX25hbWVfKGFfZmlsZV9uYW1lID09IE5VTEwgPyAiIiA6IGFfZmlsZV9uYW1l
KSwKKyAgICAgICAgZmlsZV9uYW1lXyhhX2ZpbGVfbmFtZSA9PSBudWxscHRyID8gIiIgOiBhX2Zp
bGVfbmFtZSksCiAgICAgICAgIGxpbmVfbnVtYmVyXyhhX2xpbmVfbnVtYmVyKSwKICAgICAgICAg
c3VtbWFyeV8oRXh0cmFjdFN1bW1hcnkoYV9tZXNzYWdlKSksCi0gICAgICAgIG1lc3NhZ2VfKGFf
bWVzc2FnZSkgewotICB9CisgICAgICAgIG1lc3NhZ2VfKGFfbWVzc2FnZSkge30KIAogICAvLyBH
ZXRzIHRoZSBvdXRjb21lIG9mIHRoZSB0ZXN0IHBhcnQuCiAgIFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIHR5cGVfOyB9CkBAIC03Niw3ICs3NCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFBh
cnRSZXN1bHQgewogICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0
aGUgdGVzdCBwYXJ0IHRvb2sgcGxhY2UsIG9yCiAgIC8vIE5VTEwgaWYgaXQncyB1bmtub3duLgog
ICBjb25zdCBjaGFyKiBmaWxlX25hbWUoKSBjb25zdCB7Ci0gICAgcmV0dXJuIGZpbGVfbmFtZV8u
ZW1wdHkoKSA/IE5VTEwgOiBmaWxlX25hbWVfLmNfc3RyKCk7CisgICAgcmV0dXJuIGZpbGVfbmFt
ZV8uZW1wdHkoKSA/IG51bGxwdHIgOiBmaWxlX25hbWVfLmNfc3RyKCk7CiAgIH0KIAogICAvLyBH
ZXRzIHRoZSBsaW5lIGluIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgdGVzdCBwYXJ0IHRvb2sg
cGxhY2UsCkBAIC04OSwxOCArODcsMjEgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UGFydFJlc3Vs
dCB7CiAgIC8vIEdldHMgdGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXN0IHBhcnQu
CiAgIGNvbnN0IGNoYXIqIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNzYWdlXy5jX3N0cigp
OyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0IHBhc3NlZC4KLSAgYm9v
bCBwYXNzZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBrU3VjY2VzczsgfQorICAvLyBSZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFydCB3YXMgc2tpcHBlZC4KKyAgYm9v
bCBza2lwcGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga1NraXA7IH0KIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgZmFpbGVkLgotICBib29sIGZhaWxlZCgpIGNvbnN0
IHsgcmV0dXJuIHR5cGVfICE9IGtTdWNjZXNzOyB9CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdGVzdCBwYXJ0IHBhc3NlZC4KKyAgYm9vbCBwYXNzZWQoKSBjb25zdCB7IHJl
dHVybiB0eXBlXyA9PSBrU3VjY2VzczsgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRl
c3QgcGFydCBub24tZmF0YWxseSBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgdGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KICAgYm9vbCBub25mYXRhbGx5
X2ZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGtOb25GYXRhbEZhaWx1cmU7IH0KIAot
ICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgZmF0YWxseSBmYWlsZWQuCisgIC8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVk
LgogICBib29sIGZhdGFsbHlfZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga0ZhdGFs
RmFpbHVyZTsgfQogCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBw
YXJ0IGZhaWxlZC4KKyAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBmYXRhbGx5X2ZhaWxl
ZCgpIHx8IG5vbmZhdGFsbHlfZmFpbGVkKCk7IH0KKwogIHByaXZhdGU6CiAgIFR5cGUgdHlwZV87
CiAKQEAgLTE2NCw4ICsxNjUsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEhhc05ld0ZhdGFsRmFpbHVy
ZUhlbHBlcgogICAgIDogcHVibGljIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2Ugewog
IHB1YmxpYzoKICAgSGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyKCk7Ci0gIHZpcnR1YWwgfkhhc05l
d0ZhdGFsRmFpbHVyZUhlbHBlcigpOwotICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1
bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCk7CisgIH5IYXNOZXdGYXRhbEZhaWx1cmVI
ZWxwZXIoKSBvdmVycmlkZTsKKyAgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0
UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVycmlkZTsKICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2ZhaWx1
cmUoKSBjb25zdCB7IHJldHVybiBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmVfOyB9CiAgcHJpdmF0ZToK
ICAgYm9vbCBoYXNfbmV3X2ZhdGFsX2ZhaWx1cmVfOwpAQCAtMTgwLDQgKzE4MSw0IEBAIGNsYXNz
IEdURVNUX0FQSV8gSGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyCiAKIEdURVNUX0RJU0FCTEVfTVND
X1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1RFU1RfUEFSVF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfR1RFU1RfVEVTVF9QQVJUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXR5cGVkLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oCmluZGV4IDc0YmNlNDZiZGM1MGY0
YzhjZGUyYzZkNzI2NDkxMWZmNGQ5OWNmMTkuLjlmZGM2YmUxMGRjMjZiODAzM2UxYWE1YTBmNWFm
MDVmODI1NDc5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oCkBAIC0yNywxMSArMjcsMTAgQEAKIC8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBO
T1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNU
X0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2lm
bmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXworI2RlZmlu
ZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXwogCiAvLyBUaGlz
IGhlYWRlciBpbXBsZW1lbnRzIHR5cGVkIHRlc3RzIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dHMuCiAKQEAgLTUyLDIyICs1MSwyMiBAQCBjbGFzcyBGb29UZXN0IDogcHVibGljIHRlc3Rpbmc6
OlRlc3QgewogICBUIHZhbHVlXzsKIH07CiAKLS8vIE5leHQsIGFzc29jaWF0ZSBhIGxpc3Qgb2Yg
dHlwZXMgd2l0aCB0aGUgdGVzdCBjYXNlLCB3aGljaCB3aWxsIGJlCisvLyBOZXh0LCBhc3NvY2lh
dGUgYSBsaXN0IG9mIHR5cGVzIHdpdGggdGhlIHRlc3Qgc3VpdGUsIHdoaWNoIHdpbGwgYmUKIC8v
IHJlcGVhdGVkIGZvciBlYWNoIHR5cGUgaW4gdGhlIGxpc3QuICBUaGUgdHlwZWRlZiBpcyBuZWNl
c3NhcnkgZm9yCiAvLyB0aGUgbWFjcm8gdG8gcGFyc2UgY29ycmVjdGx5LgogdHlwZWRlZiB0ZXN0
aW5nOjpUeXBlczxjaGFyLCBpbnQsIHVuc2lnbmVkIGludD4gTXlUeXBlczsKLVRZUEVEX1RFU1Rf
Q0FTRShGb29UZXN0LCBNeVR5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwgTXlUeXBl
cyk7CiAKIC8vIElmIHRoZSB0eXBlIGxpc3QgY29udGFpbnMgb25seSBvbmUgdHlwZSwgeW91IGNh
biB3cml0ZSB0aGF0IHR5cGUKIC8vIGRpcmVjdGx5IHdpdGhvdXQgVHlwZXM8Li4uPjoKLS8vICAg
VFlQRURfVEVTVF9DQVNFKEZvb1Rlc3QsIGludCk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9v
VGVzdCwgaW50KTsKIAogLy8gVGhlbiwgdXNlIFRZUEVEX1RFU1QoKSBpbnN0ZWFkIG9mIFRFU1Rf
RigpIHRvIGRlZmluZSBhcyBtYW55IHR5cGVkCi0vLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IGNhc2Ug
YXMgeW91IHdhbnQuCisvLyB0ZXN0cyBmb3IgdGhpcyB0ZXN0IHN1aXRlIGFzIHlvdSB3YW50Lgog
VFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCByZWZl
ciB0byBUeXBlUGFyYW0gdG8gZ2V0IHRoZSB0eXBlIHBhcmFtZXRlci4KLSAgLy8gU2luY2Ugd2Ug
YXJlIGluc2lkZSBhIGRlcml2ZWQgY2xhc3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcyB1c2UgdG8K
LSAgLy8gdmlzaXQgdGhlIG1lbWJlcnMgb2YgRm9vVGVzdCB2aWEgJ3RoaXMnLgorICAvLyBJbnNp
ZGUgYSB0ZXN0LCByZWZlciB0byB0aGUgc3BlY2lhbCBuYW1lIFR5cGVQYXJhbSB0byBnZXQgdGhl
IHR5cGUKKyAgLy8gcGFyYW1ldGVyLiAgU2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2ZWQgY2xh
c3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcworICAvLyB1cyB0byB2aXNpdCB0aGUgbWVtYmVycyBv
ZiBGb29UZXN0IHZpYSAndGhpcycuCiAgIFR5cGVQYXJhbSBuID0gdGhpcy0+dmFsdWVfOwogCiAg
IC8vIFRvIHZpc2l0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlLCBhZGQgdGhlIFRlc3RG
aXh0dXJlOjoKQEAgLTgzLDcgKzgyLDcgQEAgVFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkg
ewogCiBUWVBFRF9URVNUKEZvb1Rlc3QsIEhhc1Byb3BlcnR5QSkgeyAuLi4gfQogCi0vLyBUWVBF
RF9URVNUX0NBU0UgdGFrZXMgYW4gb3B0aW9uYWwgdGhpcmQgYXJndW1lbnQgd2hpY2ggYWxsb3dz
IHRvIHNwZWNpZnkgYQorLy8gVFlQRURfVEVTVF9TVUlURSB0YWtlcyBhbiBvcHRpb25hbCB0aGly
ZCBhcmd1bWVudCB3aGljaCBhbGxvd3MgdG8gc3BlY2lmeSBhCiAvLyBjbGFzcyB0aGF0IGdlbmVy
YXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzIGJhc2VkIG9uIHRoZSB0eXBlLiBUaGlzIHNo
b3VsZAogLy8gYmUgYSBjbGFzcyB3aGljaCBoYXMgYSBzdGF0aWMgdGVtcGxhdGUgZnVuY3Rpb24g
R2V0TmFtZShpbnQgaW5kZXgpIHJldHVybmluZwogLy8gYSBzdHJpbmcgZm9yIGVhY2ggdHlwZS4g
VGhlIHByb3ZpZGVkIGludGVnZXIgaW5kZXggZXF1YWxzIHRoZSBpbmRleCBvZiB0aGUKQEAgLTk5
LDcgKzk4LDcgQEAgVFlQRURfVEVTVChGb29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIC8v
ICAgICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgdW5zaWduZWQgaW50PigpKSByZXR1cm4gInVuc2ln
bmVkSW50IjsKIC8vICAgICB9CiAvLyAgIH07Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29UZXN0
LCBNeVR5cGVzLCBNeVR5cGVOYW1lcyk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoRm9vVGVzdCwg
TXlUeXBlcywgTXlUeXBlTmFtZXMpOwogCiAjZW5kaWYgIC8vIDAKIApAQCAtMTI2LDEzICsxMjUs
MTMgQEAgY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLi4uCiB9Owog
Ci0vLyBOZXh0LCBkZWNsYXJlIHRoYXQgeW91IHdpbGwgZGVmaW5lIGEgdHlwZS1wYXJhbWV0ZXJp
emVkIHRlc3QgY2FzZQorLy8gTmV4dCwgZGVjbGFyZSB0aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5
cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlCiAvLyAodGhlIF9QIHN1ZmZpeCBpcyBmb3IgInBh
cmFtZXRlcml6ZWQiIG9yICJwYXR0ZXJuIiwgd2hpY2hldmVyIHlvdQogLy8gcHJlZmVyKToKLVRZ
UEVEX1RFU1RfQ0FTRV9QKEZvb1Rlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKEZvb1Rlc3QpOwog
CiAvLyBUaGVuLCB1c2UgVFlQRURfVEVTVF9QKCkgdG8gZGVmaW5lIGFzIG1hbnkgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3RzCi0vLyBmb3IgdGhpcyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNl
IGFzIHlvdSB3YW50LgorLy8gZm9yIHRoaXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUg
YXMgeW91IHdhbnQuCiBUWVBFRF9URVNUX1AoRm9vVGVzdCwgRG9lc0JsYWgpIHsKICAgLy8gSW5z
aWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdldCB0aGUgdHlwZSBwYXJhbWV0ZXIu
CiAgIFR5cGVQYXJhbSBuID0gMDsKQEAgLTE0MywxMCArMTQyLDEwIEBAIFRZUEVEX1RFU1RfUChG
b29UZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIAogLy8gTm93IHRoZSB0cmlja3kgcGFydDog
eW91IG5lZWQgdG8gcmVnaXN0ZXIgYWxsIHRlc3QgcGF0dGVybnMgYmVmb3JlCiAvLyB5b3UgY2Fu
IGluc3RhbnRpYXRlIHRoZW0uICBUaGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIG1hY3JvIGlzIHRo
ZQotLy8gdGVzdCBjYXNlIG5hbWU7IHRoZSByZXN0IGFyZSB0aGUgbmFtZXMgb2YgdGhlIHRlc3Rz
IGluIHRoaXMgdGVzdAorLy8gdGVzdCBzdWl0ZSBuYW1lOyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVz
IG9mIHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QKIC8vIGNhc2UuCi1SRUdJU1RFUl9UWVBFRF9URVNU
X0NBU0VfUChGb29UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9lc0JsYWgsIEhh
c1Byb3BlcnR5QSk7CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRm9vVGVzdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEb2VzQmxhaCwgSGFzUHJvcGVydHlBKTsKIAogLy8gRmlu
YWxseSwgeW91IGFyZSBmcmVlIHRvIGluc3RhbnRpYXRlIHRoZSBwYXR0ZXJuIHdpdGggdGhlIHR5
cGVzIHlvdQogLy8gd2FudC4gIElmIHlvdSBwdXQgdGhlIGFib3ZlIGNvZGUgaW4gYSBoZWFkZXIg
ZmlsZSwgeW91IGNhbiAjaW5jbHVkZQpAQCAtMTU0LDYxICsxNTMsNTggQEAgUkVHSVNURVJfVFlQ
RURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKIC8vCiAvLyBUbyBkaXN0aW5ndWlzaCBkaWZmZXJlbnQg
aW5zdGFuY2VzIG9mIHRoZSBwYXR0ZXJuLCB0aGUgZmlyc3QKIC8vIGFyZ3VtZW50IHRvIHRoZSBJ
TlNUQU5USUFURV8qIG1hY3JvIGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZAotLy8gdG8g
dGhlIGFjdHVhbCB0ZXN0IGNhc2UgbmFtZS4gIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZp
eGVzIGZvcgorLy8gdG8gdGhlIGFjdHVhbCB0ZXN0IHN1aXRlIG5hbWUuICBSZW1lbWJlciB0byBw
aWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IKIC8vIGRpZmZlcmVudCBpbnN0YW5jZXMuCiB0eXBlZGVm
IHRlc3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFO
VElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMpOworSU5TVEFOVElB
VEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKIAogLy8gSWYgdGhl
IHR5cGUgbGlzdCBjb250YWlucyBvbmx5IG9uZSB0eXBlLCB5b3UgY2FuIHdyaXRlIHRoYXQgdHlw
ZQogLy8gZGlyZWN0bHkgd2l0aG91dCBUeXBlczwuLi4+OgotLy8gICBJTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgaW50KTsKKy8vICAgSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9TVUlURV9QKE15LCBGb29UZXN0LCBpbnQpOwogLy8KLS8vIFNpbWlsYXIgdG8gdGhlIG9w
dGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1RfQ0FTRSBhYm92ZSwKLS8vIElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QIHRha2VzIGFuIG9wdGlvbmFsIGZvdXJ0aCBhcmd1bWVudCB3aGljaCBhbGxv
d3MgdG8KKy8vIFNpbWlsYXIgdG8gdGhlIG9wdGlvbmFsIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1Rf
U1VJVEUgYWJvdmUsCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgdGFrZXMgYW4gb3B0aW9u
YWwgZm91cnRoIGFyZ3VtZW50IHdoaWNoIGFsbG93cyB0bwogLy8gZ2VuZXJhdGUgY3VzdG9tIG5h
bWVzLgotLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlU
eXBlcywgTXlUeXBlTmFtZXMpOworLy8gICBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1Ao
TXksIEZvb1Rlc3QsIE15VHlwZXMsIE15VHlwZU5hbWVzKTsKIAogI2VuZGlmICAvLyAwCiAKKyNp
bmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgogI2luY2x1ZGUgImd0ZXN0
L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10
eXBlLXV0aWwuaCIKIAogLy8gSW1wbGVtZW50cyB0eXBlZCB0ZXN0cy4KIAotI2lmIEdURVNUX0hB
U19UWVBFRF9URVNUCi0KIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJ
TiBVU0VSIENPREUuCiAvLwogLy8gRXhwYW5kcyB0byB0aGUgbmFtZSBvZiB0aGUgdHlwZWRlZiBm
b3IgdGhlIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUKLS8vIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVm
aW5lIEdURVNUX1RZUEVfUEFSQU1TXyhUZXN0Q2FzZU5hbWUpIGd0ZXN0X3R5cGVfcGFyYW1zXyMj
VGVzdENhc2VOYW1lIyNfCisvLyBnaXZlbiB0ZXN0IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBF
X1BBUkFNU18oVGVzdFN1aXRlTmFtZSkgZ3Rlc3RfdHlwZV9wYXJhbXNfIyNUZXN0U3VpdGVOYW1l
IyNfCiAKIC8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHR5cGVkZWYgZm9yIHRoZSBOYW1l
R2VuZXJhdG9yLCByZXNwb25zaWJsZSBmb3IKIC8vIGNyZWF0aW5nIHRoZSBzdWZmaXhlcyBvZiB0
aGUgbmFtZS4KLSNkZWZpbmUgR1RFU1RfTkFNRV9HRU5FUkFUT1JfKFRlc3RDYXNlTmFtZSkgXAot
ICBndGVzdF90eXBlX3BhcmFtc18jI1Rlc3RDYXNlTmFtZSMjX05hbWVHZW5lcmF0b3IKLQotLy8g
VGhlICdUeXBlcycgdGVtcGxhdGUgYXJndW1lbnQgYmVsb3cgbXVzdCBoYXZlIHNwYWNlcyBhcm91
bmQgaXQKLS8vIHNpbmNlIHNvbWUgY29tcGlsZXJzIG1heSBjaG9rZSBvbiAnPj4nIHdoZW4gcGFz
c2luZyBhIHRlbXBsYXRlCi0vLyBpbnN0YW5jZSAoZS5nLiBUeXBlczxpbnQ+KQotIyBkZWZpbmUg
VFlQRURfVEVTVF9DQVNFKENhc2VOYW1lLCBUeXBlcywgLi4uKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICB0eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBl
cyA+Ojp0eXBlIEdURVNUX1RZUEVfUEFSQU1TXyggXAotICAgICAgQ2FzZU5hbWUpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB0
eXBlZGVmIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok5hbWVHZW5lcmF0b3JTZWxlY3RvcjxfX1ZBX0FS
R1NfXz46OnR5cGUgICAgXAorI2RlZmluZSBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oVGVzdFN1aXRl
TmFtZSkgXAorICBndGVzdF90eXBlX3BhcmFtc18jI1Rlc3RTdWl0ZU5hbWUjI19OYW1lR2VuZXJh
dG9yCisKKyNkZWZpbmUgVFlQRURfVEVTVF9TVUlURShDYXNlTmFtZSwgVHlwZXMsIC4uLikgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpH
ZW5lcmF0ZVR5cGVMaXN0PFR5cGVzPjo6dHlwZSAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RZ
UEVfUEFSQU1TXyhDYXNlTmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8
X19WQV9BUkdTX18+Ojp0eXBlIFwKICAgICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFt
ZSkKIAotIyBkZWZpbmUgVFlQRURfVEVTVChDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBUWVBFRF9URVNUKENhc2VOYW1l
LCBUZXN0TmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFRlc3ROYW1lKSkgPiAxLCAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICJ0ZXN0LW5hbWUgbXVzdCBub3Qg
YmUgZW1wdHkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgZ3Rlc3RfVHlwZVBhcmFtXz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKENhc2VOYW1lLCBUZXN0
TmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgOiBwdWJsaWMgQ2FzZU5h
bWU8Z3Rlc3RfVHlwZVBhcmFtXz4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgcHJpdmF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlw
ZVBhcmFtXz4gVGVzdEZpeHR1cmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHR5
cGVkZWYgZ3Rlc3RfVHlwZVBhcmFtXyBUeXBlUGFyYW07ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQgVGVzdEJv
ZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBzdGF0aWMgYm9vbCBndGVzdF8jI0Nh
c2VOYW1lIyNfIyNUZXN0TmFtZSMjX3JlZ2lzdGVyZWRfICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBh
cmFtZXRlcml6ZWRUZXN0PCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RF
U1RfQVRUUklCVVRFX1VOVVNFRF8gPSA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlUGFyYW1ldGVy
aXplZFRlc3Q8ICAgXAogICAgICAgICAgIENhc2VOYW1lLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OlRlbXBsYXRlU2VsPEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oQ2FzZU5hbWUs
ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVGVzdE5hbWUpPiwgXApAQCAtMjE2LDcgKzIxMiw4IEBAIElOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKICAgICAgICAgICAg
ICAgQ2FzZU5hbWUpPjo6UmVnaXN0ZXIoIiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyksICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI0Nhc2VOYW1lLCAjVGVzdE5h
bWUsIDAsICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR1RFU1RfU1RSSU5HSUZZXyhDYXNlTmFtZSksICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSks
IDAsICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVOYW1lczwgICAgICAgIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX05BTUVfR0VORVJBVE9SXyhDYXNlTmFtZSks
ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1RZ
UEVfUEFSQU1TXyhDYXNlTmFtZSk+KCkpOyAgICAgIFwKQEAgLTIyNCw4MyArMjIxLDEwOSBAQCBJ
TlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAgIHZv
aWQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyhDYXNlTmFtZSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXN0TmFt
ZSk8Z3Rlc3RfVHlwZVBhcmFtXz46OlRlc3RCb2R5KCkKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVAorLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFi
bGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIFRZ
UEVEX1RFU1RfQ0FTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgc3RhdGljX2Fzc2VydCg6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNl
SXNEZXByZWNhdGVkKCksICIiKTsgXAorICBUWVBFRF9URVNUX1NVSVRFCisjZW5kaWYgIC8vIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJbXBsZW1lbnRzIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0cy4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogLy8gSU5U
RVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBF
eHBhbmRzIHRvIHRoZSBuYW1lc3BhY2UgbmFtZSB0aGF0IHRoZSB0eXBlLXBhcmFtZXRlcml6ZWQg
dGVzdHMgZm9yCi0vLyB0aGUgZ2l2ZW4gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcmUg
ZGVmaW5lZCBpbi4gIFRoZSBleGFjdAorLy8gdGhlIGdpdmVuIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0IHN1aXRlIGFyZSBkZWZpbmVkIGluLiAgVGhlIGV4YWN0CiAvLyBuYW1lIG9mIHRoZSBuYW1l
c3BhY2UgaXMgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCi0jIGRlZmluZSBHVEVT
VF9DQVNFX05BTUVTUEFDRV8oVGVzdENhc2VOYW1lKSBcCi0gIGd0ZXN0X2Nhc2VfIyNUZXN0Q2Fz
ZU5hbWUjI18KKyNkZWZpbmUgR1RFU1RfU1VJVEVfTkFNRVNQQUNFXyhUZXN0U3VpdGVOYW1lKSBn
dGVzdF9zdWl0ZV8jI1Rlc3RTdWl0ZU5hbWUjI18KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJ
T04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1l
IG9mIHRoZSB2YXJpYWJsZSB1c2VkIHRvIHJlbWVtYmVyIHRoZSBuYW1lcyBvZgotLy8gdGhlIGRl
ZmluZWQgdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1RZUEVE
X1RFU1RfQ0FTRV9QX1NUQVRFXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfdHlwZWRfdGVzdF9j
YXNlX3Bfc3RhdGVfIyNUZXN0Q2FzZU5hbWUjI18KKy8vIHRoZSBkZWZpbmVkIHRlc3RzIGluIHRo
ZSBnaXZlbiB0ZXN0IHN1aXRlLgorI2RlZmluZSBHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RB
VEVfKFRlc3RTdWl0ZU5hbWUpIFwKKyAgZ3Rlc3RfdHlwZWRfdGVzdF9zdWl0ZV9wX3N0YXRlXyMj
VGVzdFN1aXRlTmFtZSMjXwogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBV
U0UgSU4gVVNFUiBDT0RFIERJUkVDVExZLgogLy8KIC8vIEV4cGFuZHMgdG8gdGhlIG5hbWUgb2Yg
dGhlIHZhcmlhYmxlIHVzZWQgdG8gcmVtZW1iZXIgdGhlIG5hbWVzIG9mCi0vLyB0aGUgcmVnaXN0
ZXJlZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgotIyBkZWZpbmUgR1RFU1RfUkVHSVNU
RVJFRF9URVNUX05BTUVTXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfcmVnaXN0ZXJlZF90ZXN0
X25hbWVzXyMjVGVzdENhc2VOYW1lIyNfCisvLyB0aGUgcmVnaXN0ZXJlZCB0ZXN0cyBpbiB0aGUg
Z2l2ZW4gdGVzdCBzdWl0ZS4KKyNkZWZpbmUgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhU
ZXN0U3VpdGVOYW1lKSBcCisgIGd0ZXN0X3JlZ2lzdGVyZWRfdGVzdF9uYW1lc18jI1Rlc3RTdWl0
ZU5hbWUjI18KIAogLy8gVGhlIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdCBtYWNyb3MgYXJlCiAvLyBzdGF0aWMgYXMgdHlwaWNhbGx5IHRoZXNlIG1hY3Jv
cyBhcmUgdXNlZCBpbiBhIC5oIGZpbGUgdGhhdCBjYW4gYmUKIC8vICNpbmNsdWRlZCBpbiBtdWx0
aXBsZSB0cmFuc2xhdGlvbiB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCi0jIGRlZmluZSBUWVBFRF9U
RVNUX0NBU0VfUChDYXNlTmFtZSkgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlw
ZWRUZXN0Q2FzZVBTdGF0ZSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8o
Q2FzZU5hbWUpCi0KLSMgZGVmaW5lIFRZUEVEX1RFU1RfUChDYXNlTmFtZSwgVGVzdE5hbWUpIFwK
LSAgbmFtZXNwYWNlIEdURVNUX0NBU0VfTkFNRVNQQUNFXyhDYXNlTmFtZSkgeyBcCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiBcCi0gIGNsYXNzIFRlc3ROYW1lIDogcHVi
bGljIENhc2VOYW1lPGd0ZXN0X1R5cGVQYXJhbV8+IHsgXAotICAgcHJpdmF0ZTogXAotICAgIHR5
cGVkZWYgQ2FzZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7IFwKLSAgICB0eXBl
ZGVmIGd0ZXN0X1R5cGVQYXJhbV8gVHlwZVBhcmFtOyBcCi0gICAgdmlydHVhbCB2b2lkIFRlc3RC
b2R5KCk7IFwKLSAgfTsgXAotICBzdGF0aWMgYm9vbCBndGVzdF8jI1Rlc3ROYW1lIyNfZGVmaW5l
ZF8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPSBcCi0gICAgICBHVEVTVF9UWVBFRF9URVNUX0NB
U0VfUF9TVEFURV8oQ2FzZU5hbWUpLkFkZFRlc3ROYW1lKFwKLSAgICAgICAgICBfX0ZJTEVfXywg
X19MSU5FX18sICNDYXNlTmFtZSwgI1Rlc3ROYW1lKTsgXAotICB9IFwKLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+IFwKLSAgdm9pZCBHVEVTVF9DQVNFX05BTUVTUEFDRV8o
Q2FzZU5hbWUpOjpUZXN0TmFtZTxndGVzdF9UeXBlUGFyYW1fPjo6VGVzdEJvZHkoKQotCi0jIGRl
ZmluZSBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChDYXNlTmFtZSwgLi4uKSBcCi0gIG5hbWVz
cGFjZSBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpIHsgXAotICB0eXBlZGVmIDo6dGVz
dGluZzo6aW50ZXJuYWw6OlRlbXBsYXRlczxfX1ZBX0FSR1NfXz46OnR5cGUgZ3Rlc3RfQWxsVGVz
dHNfOyBcCi0gIH0gXAotICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgR1RFU1RfUkVHSVNURVJF
RF9URVNUX05BTUVTXyhDYXNlTmFtZSkgXAotICAgICAgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8g
PSBcCi0gICAgICAgICAgR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKS5W
ZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCBcCi0gICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJ
TkVfXywgI19fVkFfQVJHU19fKQotCi0vLyBUaGUgJ1R5cGVzJyB0ZW1wbGF0ZSBhcmd1bWVudCBi
ZWxvdyBtdXN0IGhhdmUgc3BhY2VzIGFyb3VuZCBpdAotLy8gc2luY2Ugc29tZSBjb21waWxlcnMg
bWF5IGNob2tlIG9uICc+Picgd2hlbiBwYXNzaW5nIGEgdGVtcGxhdGUKLS8vIGluc3RhbmNlIChl
LmcuIFR5cGVzPGludD4pCi0jIGRlZmluZSBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChQ
cmVmaXgsIENhc2VOYW1lLCBUeXBlcywgLi4uKSAgICAgIFwKLSAgc3RhdGljIGJvb2wgZ3Rlc3Rf
IyNQcmVmaXgjI18jI0Nhc2VOYW1lIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgXAot
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTwgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgQ2FzZU5hbWUsIEdURVNUX0NBU0VfTkFNRVNQ
QUNFXyhDYXNlTmFtZSk6Omd0ZXN0X0FsbFRlc3RzXywgICAgIFwKLSAgICAgICAgICA6OnRlc3Rp
bmc6OmludGVybmFsOjpUeXBlTGlzdDwgVHlwZXMgPjo6dHlwZT46OiAgICAgICAgICAgICAgICAg
XAotICAgICAgICAgIFJlZ2lzdGVyKCNQcmVmaXgsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgICAgICAg
ICAgICAmR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKSwgI0Nhc2VOYW1l
LCAgXAotICAgICAgICAgICAgICAgICAgIEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2Fz
ZU5hbWUpLCAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6R2VuZXJhdGVOYW1lczwgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPCAg
ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WQV9BUkdTX18+Ojp0eXBlLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OlR5cGVMaXN0PCBUeXBlcyA+Ojp0eXBlPigpKQotCi0jZW5kaWYgIC8v
IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX1RZUEVEX1RFU1RfSF8KKyNkZWZpbmUgVFlQRURfVEVTVF9TVUlURV9QKFN1aXRlTmFt
ZSkgICAgICAgICAgICAgIFwKKyAgc3RhdGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVz
dFN1aXRlUFN0YXRlIFwKKyAgICAgIEdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3Vp
dGVOYW1lKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgVFlQ
RURfVEVTVF9DQVNFX1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdENh
c2VfUF9Jc0RlcHJlY2F0ZWQoKSwgIiIpOyBcCisgIFRZUEVEX1RFU1RfU1VJVEVfUAorI2VuZGlm
ICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworI2RlZmluZSBUWVBFRF9U
RVNUX1AoU3VpdGVOYW1lLCBUZXN0TmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgbmFtZXNwYWNlIEdURVNUX1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQYXJhbV8+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNsYXNzIFRlc3ROYW1lIDogcHVi
bGljIFN1aXRlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiB7ICAgICAgICAgICAgIFwKKyAgICAgcHJp
dmF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICB0eXBlZGVmIFN1aXRlTmFtZTxndGVzdF9UeXBlUGFyYW1fPiBUZXN0Rml4
dHVyZTsgICAgICAgICAgICAgICAgXAorICAgICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1fIFR5
cGVQYXJhbTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHZvaWQgVGVzdEJv
ZHkoKSBvdmVycmlkZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHN0YXRpYyBib29sIGd0ZXN0XyMjVGVzdE5hbWUjI19kZWZpbmVk
XyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9IFwKKyAgICAgICAgR1RFU1RfVFlQRURfVEVTVF9T
VUlURV9QX1NUQVRFXyhTdWl0ZU5hbWUpLkFkZFRlc3ROYW1lKCAgICAgICBcCisgICAgICAgICAg
ICBfX0ZJTEVfXywgX19MSU5FX18sIEdURVNUX1NUUklOR0lGWV8oU3VpdGVOYW1lKSwgICAgICAg
ICAgXAorICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSkpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBndGVzdF9UeXBlUGFyYW1fPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB2
b2lkIEdURVNUX1NVSVRFX05BTUVTUEFDRV8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgIFN1aXRlTmFtZSk6OlRlc3ROYW1lPGd0ZXN0X1R5cGVQYXJhbV8+
OjpUZXN0Qm9keSgpCisKKy8vIE5vdGU6IHRoaXMgd29uJ3Qgd29yayBjb3JyZWN0bHkgaWYgdGhl
IHRyYWlsaW5nIGFyZ3VtZW50cyBhcmUgbWFjcm9zLgorI2RlZmluZSBSRUdJU1RFUl9UWVBFRF9U
RVNUX1NVSVRFX1AoU3VpdGVOYW1lLCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
bmFtZXNwYWNlIEdURVNUX1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1w
bGF0ZXM8X19WQV9BUkdTX18+IGd0ZXN0X0FsbFRlc3RzXzsgICAgXAorICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEdURVNUX1JFR0lTVEVSRURfVEVTVF9O
QU1FU18oICAgICAgICAgICAgICAgICAgICBcCisgICAgICBTdWl0ZU5hbWUpIEdURVNUX0FUVFJJ
QlVURV9VTlVTRURfID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
R1RFU1RfVFlQRURfVEVTVF9TVUlURV9QX1NUQVRFXyhTdWl0ZU5hbWUpLlZlcmlmeVJlZ2lzdGVy
ZWRUZXN0TmFtZXMoIFwKKyAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKFN1aXRlTmFtZSksIF9f
RklMRV9fLCBfX0xJTkVfXywgI19fVkFfQVJHU19fKQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyNkZWZpbmUgUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVz
dGluZzo6aW50ZXJuYWw6OlJlZ2lzdGVyVHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCBc
CisgICAgICAgICAgICAgICAgIiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QCisj
ZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisjZGVmaW5lIElO
U1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChQcmVmaXgsIFN1aXRlTmFtZSwgVHlwZXMsIC4u
LikgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KHNpemVvZihHVEVTVF9TVFJJTkdJRllfKFByZWZp
eCkpID4gMSwgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAidGVzdC1z
dWl0LXByZWZpeCBtdXN0IG5vdCBiZSBlbXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICBcCisg
IHN0YXRpYyBib29sIGd0ZXN0XyMjUHJlZml4IyNfIyNTdWl0ZU5hbWUgR1RFU1RfQVRUUklCVVRF
X1VOVVNFRF8gPSAgICAgICAgXAorICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGU8ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBTdWl0
ZU5hbWUsIEdURVNUX1NVSVRFX05BTUVTUEFDRV8oU3VpdGVOYW1lKTo6Z3Rlc3RfQWxsVGVzdHNf
LCAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVUeXBlTGlzdDxU
eXBlcz46OnR5cGU+OjogICAgICAgICAgICAgXAorICAgICAgICAgIFJlZ2lzdGVyKEdURVNUX1NU
UklOR0lGWV8oUHJlZml4KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18s
IF9fTElORV9fKSwgICBcCisgICAgICAgICAgICAgICAgICAgJkdURVNUX1RZUEVEX1RFU1RfU1VJ
VEVfUF9TVEFURV8oU3VpdGVOYW1lKSwgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg
IEdURVNUX1NUUklOR0lGWV8oU3VpdGVOYW1lKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICBHVEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKFN1aXRl
TmFtZSksICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6R2VuZXJhdGVOYW1lczwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
ICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkFfQVJHU19fPjo6dHlw
ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAg
IDo6dGVzdGluZzo6aW50ZXJuYWw6OkdlbmVyYXRlVHlwZUxpc3Q8VHlwZXM+Ojp0eXBlPigpKQor
CisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyNkZWZpbmUgSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9DQVNFX1AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgc3RhdGljX2Fzc2VydCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okluc3RhbnRp
YXRlVHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpLCAiIik7IFwKKyAgSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9TVUlURV9QCisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXworCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBF
RF9URVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0
LmgKaW5kZXggNWRmNGIwYTNhNzEyNzY5MDQ1NWE5NDVjYjE1MjhiNmJkNzQ0OWI2Ni4uMTA4OGUx
MTBiY2YwNmFlYmE1NzAxNzU2NDI4NmIzYjRkZWZmNGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaApAQCAtNDksMTYgKzQ5LDIwIEBACiAKIC8v
IEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KKyNp
Zm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCisjZGVmaW5lIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXwogCisjaW5jbHVkZSA8Y3N0ZGRlZj4KICNpbmNsdWRl
IDxsaW1pdHM+CisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVk
ZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1z
dHJpbmcuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisjaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC1tZXNzYWdlLmgi
CiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0
ZXN0LXByaW50ZXJzLmgiCkBAIC02OSwyMSArNzMsNiBAQAogR1RFU1RfRElTQUJMRV9NU0NfV0FS
TklOR1NfUFVTSF8oNDI1MSBcCiAvKiBjbGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFj
ZSB0byBiZSB1c2VkIGJ5IGNsaWVudHMgb2YgY2xhc3MgQiAqLykKIAotLy8gRGVwZW5kaW5nIG9u
IHRoZSBwbGF0Zm9ybSwgZGlmZmVyZW50IHN0cmluZyBjbGFzc2VzIGFyZSBhdmFpbGFibGUuCi0v
LyBPbiBMaW51eCwgaW4gYWRkaXRpb24gdG8gOjpzdGQ6OnN0cmluZywgR29vZ2xlIGFsc28gbWFr
ZXMgdXNlIG9mCi0vLyBjbGFzcyA6OnN0cmluZywgd2hpY2ggaGFzIHRoZSBzYW1lIGludGVyZmFj
ZSBhcyA6OnN0ZDo6c3RyaW5nLCBidXQKLS8vIGhhcyBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlv
bi4KLS8vCi0vLyBZb3UgY2FuIGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyB0byAxIHRv
IGluZGljYXRlIHRoYXQKLS8vIDo6c3RyaW5nIGlzIGF2YWlsYWJsZSBBTkQgaXMgYSBkaXN0aW5j
dCB0eXBlIHRvIDo6c3RkOjpzdHJpbmcsIG9yCi0vLyBkZWZpbmUgaXQgdG8gMCB0byBpbmRpY2F0
ZSBvdGhlcndpc2UuCi0vLwotLy8gSWYgOjpzdGQ6OnN0cmluZyBhbmQgOjpzdHJpbmcgYXJlIHRo
ZSBzYW1lIGNsYXNzIG9uIHlvdXIgcGxhdGZvcm0KLS8vIGR1ZSB0byBhbGlhc2luZywgeW91IHNo
b3VsZCBkZWZpbmUgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgdG8gMC4KLS8vCi0vLyBJZiB5b3Ug
ZG8gbm90IGRlZmluZSBHVEVTVF9IQVNfR0xPQkFMX1NUUklORywgaXQgaXMgZGVmaW5lZAotLy8g
aGV1cmlzdGljYWxseS4KLQogbmFtZXNwYWNlIHRlc3RpbmcgewogCiAvLyBTaWxlbmNlIEM0MTAw
ICh1bnJlZmVyZW5jZWQgZm9ybWFsIHBhcmFtZXRlcikgYW5kIDQ4MDUKQEAgLTExMiw2ICsxMDEs
MTAgQEAgR1RFU1RfREVDTEFSRV9ib29sXyhjYXRjaF9leGNlcHRpb25zKTsKIC8vIHRvIGxldCBH
b29nbGUgVGVzdCBkZWNpZGUuCiBHVEVTVF9ERUNMQVJFX3N0cmluZ18oY29sb3IpOwogCisvLyBU
aGlzIGZsYWcgY29udHJvbHMgd2hldGhlciB0aGUgdGVzdCBydW5uZXIgc2hvdWxkIGNvbnRpbnVl
IGV4ZWN1dGlvbiBwYXN0CisvLyBmaXJzdCBmYWlsdXJlLgorR1RFU1RfREVDTEFSRV9ib29sXyhm
YWlsX2Zhc3QpOworCiAvLyBUaGlzIGZsYWcgc2V0cyB1cCB0aGUgZmlsdGVyIHRvIHNlbGVjdCBi
eSBuYW1lIHVzaW5nIGEgZ2xvYiBwYXR0ZXJuCiAvLyB0aGUgdGVzdHMgdG8gcnVuLiBJZiB0aGUg
ZmlsdGVyIGlzIG5vdCBnaXZlbiBhbGwgdGVzdHMgYXJlIGV4ZWN1dGVkLgogR1RFU1RfREVDTEFS
RV9zdHJpbmdfKGZpbHRlcik7CkBAIC0xMjgsNiArMTIxLDkgQEAgR1RFU1RfREVDTEFSRV9ib29s
XyhsaXN0X3Rlc3RzKTsKIC8vIGluIGFkZGl0aW9uIHRvIGl0cyBub3JtYWwgdGV4dHVhbCBvdXRw
dXQuCiBHVEVTVF9ERUNMQVJFX3N0cmluZ18ob3V0cHV0KTsKIAorLy8gVGhpcyBmbGFncyBjb250
cm9sIHdoZXRoZXIgR29vZ2xlIFRlc3QgcHJpbnRzIG9ubHkgdGVzdCBmYWlsdXJlcy4KK0dURVNU
X0RFQ0xBUkVfYm9vbF8oYnJpZWYpOworCiAvLyBUaGlzIGZsYWdzIGNvbnRyb2wgd2hldGhlciBH
b29nbGUgVGVzdCBwcmludHMgdGhlIGVsYXBzZWQgdGltZSBmb3IgZWFjaAogLy8gdGVzdC4KIEdU
RVNUX0RFQ0xBUkVfYm9vbF8ocHJpbnRfdGltZSk7CkBAIC0xODgsNiArMTg0LDcgQEAgY2xhc3Mg
RnVjaHNpYURlYXRoVGVzdDsKIGNsYXNzIFVuaXRUZXN0SW1wbCogR2V0VW5pdFRlc3RJbXBsKCk7
CiB2b2lkIFJlcG9ydEZhaWx1cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlw
ZSByZXN1bHRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKTsKK3N0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogR2V0SWdub3Jl
ZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAog
CkBAIC0xOTUsNyArMTkyLDEyIEBAIHZvaWQgUmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9u
KFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHJlc3VsdF90eXBlLAogLy8gSWYgd2UgZG9uJ3QgZm9yd2Fy
ZCBkZWNsYXJlIHRoZW0gdGhlIGNvbXBpbGVyIG1pZ2h0IGNvbmZ1c2UgdGhlIGNsYXNzZXMKIC8v
IGluIGZyaWVuZHNoaXAgY2xhdXNlcyB3aXRoIHNhbWUgbmFtZWQgY2xhc3NlcyBvbiB0aGUgc2Nv
cGUuCiBjbGFzcyBUZXN0OwotY2xhc3MgVGVzdENhc2U7CitjbGFzcyBUZXN0U3VpdGU7CisKKy8v
IE9sZCBBUEkgaXMgc3RpbGwgYXZhaWxhYmxlIGJ1dCBkZXByZWNhdGVkCisjaWZuZGVmIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwordXNpbmcgVGVzdENhc2UgPSBUZXN0U3VpdGU7
CisjZW5kaWYKIGNsYXNzIFRlc3RJbmZvOwogY2xhc3MgVW5pdFRlc3Q7CiAKQEAgLTI4NCw3ICsy
ODYsMTEgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBVc2VkIGlu
IEVYUEVDVF9UUlVFL0ZBTFNFKGFzc2VydGlvbl9yZXN1bHQpLgogICBBc3NlcnRpb25SZXN1bHQo
Y29uc3QgQXNzZXJ0aW9uUmVzdWx0JiBvdGhlcik7CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAm
JiBfTVNDX1ZFUiA8IDE5MTAKKy8vIEM0ODAwIGlzIGEgbGV2ZWwgMyB3YXJuaW5nIGluIFZpc3Vh
bCBTdHVkaW8gMjAxNSBhbmQgZWFybGllci4KKy8vIFRoaXMgd2FybmluZyBpcyBub3QgZW1pdHRl
ZCBpbiBWaXN1YWwgU3R1ZGlvIDIwMTcuCisvLyBUaGlzIHdhcm5pbmcgaXMgb2ZmIGJ5IGRlZmF1
bHQgc3RhcnRpbmcgaW4gVmlzdWFsIFN0dWRpbyAyMDE5IGJ1dCBjYW4gYmUKKy8vIGVuYWJsZWQg
d2l0aCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01T
Q19WRVIgPCAxOTEwIHx8IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FCTEVfTVNDX1dB
Uk5JTkdTX1BVU0hfKDQ4MDAgLyogZm9yY2luZyB2YWx1ZSB0byBib29sICovKQogI2VuZGlmCiAK
QEAgLTI5OCwxMiArMzA0LDEzIEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsK
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIGV4cGxpY2l0IEFzc2VydGlvblJlc3VsdCgKICAg
ICAgIGNvbnN0IFQmIHN1Y2Nlc3MsCi0gICAgICB0eXBlbmFtZSBpbnRlcm5hbDo6RW5hYmxlSWY8
Ci0gICAgICAgICAgIWludGVybmFsOjpJbXBsaWNpdGx5Q29udmVydGlibGU8VCwgQXNzZXJ0aW9u
UmVzdWx0Pjo6dmFsdWU+Ojp0eXBlKgotICAgICAgICAgIC8qZW5hYmxlciovID0gTlVMTCkKKyAg
ICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICFzdGQ6OmlzX2NvbnZlcnRp
YmxlPFQsIEFzc2VydGlvblJlc3VsdD46OnZhbHVlPjo6dHlwZSoKKyAgICAgIC8qZW5hYmxlciov
CisgICAgICA9IG51bGxwdHIpCiAgICAgICA6IHN1Y2Nlc3NfKHN1Y2Nlc3MpIHt9CiAKLSNpZiBk
ZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE5MTAKKyNpZiBkZWZpbmVkKF9NU0NfVkVS
KSAmJiAoX01TQ19WRVIgPCAxOTEwIHx8IF9NU0NfVkVSID49IDE5MjApCiAgIEdURVNUX0RJU0FC
TEVfTVNDX1dBUk5JTkdTX1BPUF8oKQogI2VuZGlmCiAKQEAgLTMxMyw3ICszMjAsNyBAQCBjbGFz
cyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAK
LSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KKyAgLy8gUmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBhc3NlcnRpb24gc3VjY2VlZGVkLgogICBvcGVy
YXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc187IH0gIC8vIE5PTElOVAogCiAgIC8v
IFJldHVybnMgdGhlIGFzc2VydGlvbidzIG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VS
VF9GQUxTRS4KQEAgLTMyNCw5ICszMzEsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCB7CiAgIC8vIGFzc2VydGlvbidzIGV4cGVjdGF0aW9uKS4gV2hlbiBub3RoaW5nIGhhcyBi
ZWVuIHN0cmVhbWVkIGludG8gdGhlCiAgIC8vIG9iamVjdCwgcmV0dXJucyBhbiBlbXB0eSBzdHJp
bmcuCiAgIGNvbnN0IGNoYXIqIG1lc3NhZ2UoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG1lc3NhZ2Vf
LmdldCgpICE9IE5VTEwgPyAgbWVzc2FnZV8tPmNfc3RyKCkgOiAiIjsKKyAgICByZXR1cm4gbWVz
c2FnZV8uZ2V0KCkgIT0gbnVsbHB0ciA/IG1lc3NhZ2VfLT5jX3N0cigpIDogIiI7CiAgIH0KLSAg
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIGFmdGVyIG1ha2luZyBzdXJlIG5vIGNsaWVudHMgdXNlIGl0
LgogICAvLyBEZXByZWNhdGVkOyBwbGVhc2UgdXNlIG1lc3NhZ2UoKSBpbnN0ZWFkLgogICBjb25z
dCBjaGFyKiBmYWlsdXJlX21lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNzYWdlKCk7IH0KIApA
QCAtMzQ3LDggKzM1Myw3IEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICBw
cml2YXRlOgogICAvLyBBcHBlbmRzIHRoZSBjb250ZW50cyBvZiBtZXNzYWdlIHRvIG1lc3NhZ2Vf
LgogICB2b2lkIEFwcGVuZE1lc3NhZ2UoY29uc3QgTWVzc2FnZSYgYV9tZXNzYWdlKSB7Ci0gICAg
aWYgKG1lc3NhZ2VfLmdldCgpID09IE5VTEwpCi0gICAgICBtZXNzYWdlXy5yZXNldChuZXcgOjpz
dGQ6OnN0cmluZyk7CisgICAgaWYgKG1lc3NhZ2VfLmdldCgpID09IG51bGxwdHIpIG1lc3NhZ2Vf
LnJlc2V0KG5ldyA6OnN0ZDo6c3RyaW5nKTsKICAgICBtZXNzYWdlXy0+YXBwZW5kKGFfbWVzc2Fn
ZS5HZXRTdHJpbmcoKS5jX3N0cigpKTsKICAgfQogCkBAIC0zNjEsNyArMzY2LDcgQEAgY2xhc3Mg
R1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBjb25zdHJ1Y3QgaXMgbm90IHNhdGlz
ZmllZCB3aXRoIHRoZSBwcmVkaWNhdGUncyBvdXRjb21lLgogICAvLyBSZWZlcmVuY2VkIHZpYSBh
IHBvaW50ZXIgdG8gYXZvaWQgdGFraW5nIHRvbyBtdWNoIHN0YWNrIGZyYW1lIHNwYWNlCiAgIC8v
IHdpdGggdGVzdCBhc3NlcnRpb25zLgotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjpzdGQ6OnN0
cmluZz4gbWVzc2FnZV87CisgIHN0ZDo6dW5pcXVlX3B0cjwgOjpzdGQ6OnN0cmluZz4gbWVzc2Fn
ZV87CiB9OwogCiAvLyBNYWtlcyBhIHN1Y2Nlc3NmdWwgYXNzZXJ0aW9uIHJlc3VsdC4KQEAgLTM4
NSw4ICszOTAsOCBAQCBuYW1lc3BhY2UgdGVzdGluZyB7CiAKIC8vIFRoZSBhYnN0cmFjdCBjbGFz
cyB0aGF0IGFsbCB0ZXN0cyBpbmhlcml0IGZyb20uCiAvLwotLy8gSW4gR29vZ2xlIFRlc3QsIGEg
dW5pdCB0ZXN0IHByb2dyYW0gY29udGFpbnMgb25lIG9yIG1hbnkgVGVzdENhc2VzLCBhbmQKLS8v
IGVhY2ggVGVzdENhc2UgY29udGFpbnMgb25lIG9yIG1hbnkgVGVzdHMuCisvLyBJbiBHb29nbGUg
VGVzdCwgYSB1bml0IHRlc3QgcHJvZ3JhbSBjb250YWlucyBvbmUgb3IgbWFueSBUZXN0U3VpdGVz
LCBhbmQKKy8vIGVhY2ggVGVzdFN1aXRlIGNvbnRhaW5zIG9uZSBvciBtYW55IFRlc3RzLgogLy8K
IC8vIFdoZW4geW91IGRlZmluZSBhIHRlc3QgdXNpbmcgdGhlIFRFU1QgbWFjcm8sIHlvdSBkb24n
dCBuZWVkIHRvCiAvLyBleHBsaWNpdGx5IGRlcml2ZSBmcm9tIFRlc3QgLSB0aGUgVEVTVCBtYWNy
byBhdXRvbWF0aWNhbGx5IGRvZXMKQEAgLTQxMCw0OSArNDE1LDU0IEBAIGNsYXNzIEdURVNUX0FQ
SV8gVGVzdCB7CiAgcHVibGljOgogICBmcmllbmQgY2xhc3MgVGVzdEluZm87CiAKLSAgLy8gRGVm
aW5lcyB0eXBlcyBmb3IgcG9pbnRlcnMgdG8gZnVuY3Rpb25zIHRoYXQgc2V0IHVwIGFuZCB0ZWFy
IGRvd24KLSAgLy8gYSB0ZXN0IGNhc2UuCi0gIHR5cGVkZWYgaW50ZXJuYWw6OlNldFVwVGVzdENh
c2VGdW5jIFNldFVwVGVzdENhc2VGdW5jOwotICB0eXBlZGVmIGludGVybmFsOjpUZWFyRG93blRl
c3RDYXNlRnVuYyBUZWFyRG93blRlc3RDYXNlRnVuYzsKLQogICAvLyBUaGUgZCd0b3IgaXMgdmly
dHVhbCBhcyB3ZSBpbnRlbmQgdG8gaW5oZXJpdCBmcm9tIFRlc3QuCiAgIHZpcnR1YWwgflRlc3Qo
KTsKIAotICAvLyBTZXRzIHVwIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMg
dGVzdCBjYXNlLgorICAvLyBTZXRzIHVwIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGlu
IHRoaXMgdGVzdCBzdWl0ZS4KICAgLy8KLSAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6
U2V0VXBUZXN0Q2FzZSgpIGJlZm9yZSBydW5uaW5nIHRoZSBmaXJzdAotICAvLyB0ZXN0IGluIHRl
c3QgY2FzZSBGb28uICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KLSAgLy8g
U2V0VXBUZXN0Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVkIGluIHRoZSBz
dXBlcgorICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9vOjpTZXRVcFRlc3RTdWl0ZSgpIGJl
Zm9yZSBydW5uaW5nIHRoZSBmaXJzdAorICAvLyB0ZXN0IGluIHRlc3Qgc3VpdGUgRm9vLiAgSGVu
Y2UgYSBzdWItY2xhc3MgY2FuIGRlZmluZSBpdHMgb3duCisgIC8vIFNldFVwVGVzdFN1aXRlKCkg
bWV0aG9kIHRvIHNoYWRvdyB0aGUgb25lIGRlZmluZWQgaW4gdGhlIHN1cGVyCiAgIC8vIGNsYXNz
LgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBU
ZXN0U3VpdGUoKSB7fQogCi0gIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJlZCBieSBhbGwg
dGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIFRlYXJzIGRvd24gdGhlIHN0dWZmIHNoYXJl
ZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICAvLwotICAvLyBHb29nbGUgVGVz
dCB3aWxsIGNhbGwgRm9vOjpUZWFyRG93blRlc3RDYXNlKCkgYWZ0ZXIgcnVubmluZyB0aGUgbGFz
dAotICAvLyB0ZXN0IGluIHRlc3QgY2FzZSBGb28uICBIZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVm
aW5lIGl0cyBvd24KLSAgLy8gVGVhckRvd25UZXN0Q2FzZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhl
IG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgorICAvLyBHb29nbGUgVGVzdCB3aWxsIGNhbGwgRm9v
OjpUZWFyRG93blRlc3RTdWl0ZSgpIGFmdGVyIHJ1bm5pbmcgdGhlIGxhc3QKKyAgLy8gdGVzdCBp
biB0ZXN0IHN1aXRlIEZvby4gIEhlbmNlIGEgc3ViLWNsYXNzIGNhbiBkZWZpbmUgaXRzIG93bgor
ICAvLyBUZWFyRG93blRlc3RTdWl0ZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhlIG9uZSBkZWZpbmVk
IGluIHRoZSBzdXBlcgogICAvLyBjbGFzcy4KKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3Vp
dGUoKSB7fQorCisgIC8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxh
YmxlLiBVc2UgU2V0VXBUZXN0U3VpdGUgYW5kCisgIC8vIFRlYXJEb3duVGVzdFN1aXRlIGluc3Rl
YWQuCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RDYXNlKCkge30KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgp
IHt9CisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCi0gIC8v
IFJldHVybnMgdHJ1ZSBpZmYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBmYWlsdXJlLgor
ICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBm
YXRhbCBmYWlsdXJlLgogICBzdGF0aWMgYm9vbCBIYXNGYXRhbEZhaWx1cmUoKTsKIAotICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUu
CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBh
IG5vbi1mYXRhbCBmYWlsdXJlLgogICBzdGF0aWMgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmUoKTsK
IAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBm
YXRhbCBvcgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVz
dCB3YXMgc2tpcHBlZC4KKyAgc3RhdGljIGJvb2wgSXNTa2lwcGVkKCk7CisKKyAgLy8gUmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgKGVpdGhlciBmYXRh
bCBvcgogICAvLyBub24tZmF0YWwpIGZhaWx1cmUuCiAgIHN0YXRpYyBib29sIEhhc0ZhaWx1cmUo
KSB7IHJldHVybiBIYXNGYXRhbEZhaWx1cmUoKSB8fCBIYXNOb25mYXRhbEZhaWx1cmUoKTsgfQog
Ci0gIC8vIExvZ3MgYSBwcm9wZXJ0eSBmb3IgdGhlIGN1cnJlbnQgdGVzdCwgdGVzdCBjYXNlLCBv
ciBmb3IgdGhlIGVudGlyZQorICAvLyBMb2dzIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHRl
c3QsIHRlc3Qgc3VpdGUsIG9yIGZvciB0aGUgZW50aXJlCiAgIC8vIGludm9jYXRpb24gb2YgdGhl
IHRlc3QgcHJvZ3JhbSB3aGVuIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhCi0gIC8v
IHRlc3QgY2FzZS4gIE9ubHkgdGhlIGxhc3QgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IGlzIHJlbWVt
YmVyZWQuICBUaGVzZQorICAvLyB0ZXN0IHN1aXRlLiAgT25seSB0aGUgbGFzdCB2YWx1ZSBmb3Ig
YSBnaXZlbiBrZXkgaXMgcmVtZW1iZXJlZC4gIFRoZXNlCiAgIC8vIGFyZSBwdWJsaWMgc3RhdGlj
IHNvIHRoZXkgY2FuIGJlIGNhbGxlZCBmcm9tIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgYXJlCiAg
IC8vIG5vdCBtZW1iZXJzIG9mIHRoZSB0ZXN0IGZpeHR1cmUuICBDYWxscyB0byBSZWNvcmRQcm9w
ZXJ0eSBtYWRlIGR1cmluZwogICAvLyBsaWZlc3BhbiBvZiB0aGUgdGVzdCAoZnJvbSB0aGUgbW9t
ZW50IGl0cyBjb25zdHJ1Y3RvciBzdGFydHMgdG8gdGhlCiAgIC8vIG1vbWVudCBpdHMgZGVzdHJ1
Y3RvciBmaW5pc2hlcykgd2lsbCBiZSBvdXRwdXQgaW4gWE1MIGFzIGF0dHJpYnV0ZXMgb2YKICAg
Ly8gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVudC4gIFByb3BlcnRpZXMgcmVjb3JkZWQgZnJvbSBmaXh0
dXJlJ3MKLSAgLy8gU2V0VXBUZXN0Q2FzZSBvciBUZWFyRG93blRlc3RDYXNlIGFyZSBsb2dnZWQg
YXMgYXR0cmlidXRlcyBvZiB0aGUKKyAgLy8gU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0
U3VpdGUgYXJlIGxvZ2dlZCBhcyBhdHRyaWJ1dGVzIG9mIHRoZQogICAvLyBjb3JyZXNwb25kaW5n
IDx0ZXN0c3VpdGU+IGVsZW1lbnQuICBDYWxscyB0byBSZWNvcmRQcm9wZXJ0eSBtYWRlIGluIHRo
ZQogICAvLyBnbG9iYWwgY29udGV4dCAoYmVmb3JlIG9yIGFmdGVyIGludm9jYXRpb24gb2YgUlVO
X0FMTF9URVNUUyBhbmQgZnJvbQogICAvLyBTZXRVcC9UZWFyRG93biBtZXRob2Qgb2YgRW52aXJv
bm1lbnQgb2JqZWN0cyByZWdpc3RlcmVkIHdpdGggR29vZ2xlCkBAIC00NzEsOCArNDgxLDggQEAg
Y2xhc3MgR1RFU1RfQVBJXyBUZXN0IHsKICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CiAKICBw
cml2YXRlOgotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZSBz
YW1lIGZpeHR1cmUgY2xhc3MgYXMKLSAgLy8gdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQg
dGVzdCBjYXNlLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQg
dGVzdCBoYXMgdGhlIHNhbWUgZml4dHVyZSBjbGFzcworICAvLyBhcyB0aGUgZmlyc3QgdGVzdCBp
biB0aGUgY3VycmVudCB0ZXN0IHN1aXRlLgogICBzdGF0aWMgYm9vbCBIYXNTYW1lRml4dHVyZUNs
YXNzKCk7CiAKICAgLy8gUnVucyB0aGUgdGVzdCBhZnRlciB0aGUgdGVzdCBmaXh0dXJlIGhhcyBi
ZWVuIHNldCB1cC4KQEAgLTQ5MCw3ICs1MDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3Qgewog
ICAvLyBpbnRlcm5hbCBtZXRob2QgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBuYW1lcyB1c2VkIGlu
IHVzZXIgVEVTVHMuCiAgIHZvaWQgRGVsZXRlU2VsZl8oKSB7IGRlbGV0ZSB0aGlzOyB9CiAKLSAg
Y29uc3QgaW50ZXJuYWw6OnNjb3BlZF9wdHI8IEdURVNUX0ZMQUdfU0FWRVJfID4gZ3Rlc3RfZmxh
Z19zYXZlcl87CisgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxHVEVTVF9GTEFHX1NBVkVSXz4gZ3Rl
c3RfZmxhZ19zYXZlcl87CiAKICAgLy8gT2Z0ZW4gYSB1c2VyIG1pc3NwZWxscyBTZXRVcCgpIGFz
IFNldHVwKCkgYW5kIHNwZW5kcyBhIGxvbmcgdGltZQogICAvLyB3b25kZXJpbmcgd2h5IGl0IGlz
IG5ldmVyIGNhbGxlZCBieSBHb29nbGUgVGVzdC4gIFRoZSBkZWNsYXJhdGlvbiBvZgpAQCAtNTA5
LDcgKzUxOSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdCB7CiAgIC8vIElmIHlvdSBzZWUgYW4g
ZXJyb3IgYWJvdXQgb3ZlcnJpZGluZyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG9yCiAgIC8vIGFi
b3V0IGl0IGJlaW5nIHByaXZhdGUsIHlvdSBoYXZlIG1pcy1zcGVsbGVkIFNldFVwKCkgYXMgU2V0
dXAoKS4KICAgc3RydWN0IFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwIHt9OwotICB2aXJ0
dWFsIFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIE5VTEw7
IH0KKyAgdmlydHVhbCBTZXR1cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJl
dHVybiBudWxscHRyOyB9CiAKICAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0cy4KICAgR1RF
U1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0KTsKQEAgLTU3MywyMSArNTgzLDI4IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdFJlc3VsdCB7CiAgIC8vIFJldHVybnMgdGhlIG51bWJlciBv
ZiB0aGUgdGVzdCBwcm9wZXJ0aWVzLgogICBpbnQgdGVzdF9wcm9wZXJ0eV9jb3VudCgpIGNvbnN0
OwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFzc2VkIChpLmUuIG5vIHRlc3Qg
cGFydCBmYWlsZWQpLgotICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFGYWlsZWQoKTsg
fQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFzc2VkIChpLmUu
IG5vIHRlc3QgcGFydCBmYWlsZWQpLgorICBib29sIFBhc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFT
a2lwcGVkKCkgJiYgIUZhaWxlZCgpOyB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IHdhcyBza2lwcGVkLgorICBib29sIFNraXBwZWQoKSBjb25zdDsKIAotICAv
LyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZhaWxlZC4KICAgYm9vbCBGYWlsZWQoKSBjb25zdDsKIAot
ICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGZhdGFsbHkgZmFpbGVkLgorICAvLyBSZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZmF0YWxseSBmYWlsZWQuCiAgIGJvb2wg
SGFzRmF0YWxGYWlsdXJlKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgogICBib29sIEhhc05vbmZhdGFs
RmFpbHVyZSgpIGNvbnN0OwogCiAgIC8vIFJldHVybnMgdGhlIGVsYXBzZWQgdGltZSwgaW4gbWls
bGlzZWNvbmRzLgogICBUaW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lKCkgY29uc3QgeyByZXR1cm4g
ZWxhcHNlZF90aW1lXzsgfQogCisgIC8vIEdldHMgdGhlIHRpbWUgb2YgdGhlIHRlc3QgY2FzZSBz
dGFydCwgaW4gbXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlCisgIC8vIFVOSVggZXBvY2guCisgIFRp
bWVJbk1pbGxpcyBzdGFydF90aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBzdGFydF90aW1lc3Rh
bXBfOyB9CisKICAgLy8gUmV0dXJucyB0aGUgaS10aCB0ZXN0IHBhcnQgcmVzdWx0IGFtb25nIGFs
bCB0aGUgcmVzdWx0cy4gaSBjYW4gcmFuZ2UgZnJvbSAwCiAgIC8vIHRvIHRvdGFsX3BhcnRfY291
bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIGFib3J0cyB0aGUgcHJvZ3JhbS4K
ICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIEdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdDsK
QEAgLTU5OSw3ICs2MTYsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogCiAgcHJp
dmF0ZToKICAgZnJpZW5kIGNsYXNzIFRlc3RJbmZvOwotICBmcmllbmQgY2xhc3MgVGVzdENhc2U7
CisgIGZyaWVuZCBjbGFzcyBUZXN0U3VpdGU7CiAgIGZyaWVuZCBjbGFzcyBVbml0VGVzdDsKICAg
ZnJpZW5kIGNsYXNzIGludGVybmFsOjpEZWZhdWx0R2xvYmFsVGVzdFBhcnRSZXN1bHRSZXBvcnRl
cjsKICAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpFeGVjRGVhdGhUZXN0OwpAQCAtNjE4LDYgKzYz
NSw5IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFJlc3VsdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJv
cGVydGllc187CiAgIH0KIAorICAvLyBTZXRzIHRoZSBzdGFydCB0aW1lLgorICB2b2lkIHNldF9z
dGFydF90aW1lc3RhbXAoVGltZUluTWlsbGlzIHN0YXJ0KSB7IHN0YXJ0X3RpbWVzdGFtcF8gPSBz
dGFydDsgfQorCiAgIC8vIFNldHMgdGhlIGVsYXBzZWQgdGltZS4KICAgdm9pZCBzZXRfZWxhcHNl
ZF90aW1lKFRpbWVJbk1pbGxpcyBlbGFwc2VkKSB7IGVsYXBzZWRfdGltZV8gPSBlbGFwc2VkOyB9
CiAKQEAgLTYzMSw3ICs2NTEsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7CiAK
ICAgLy8gQWRkcyBhIGZhaWx1cmUgaWYgdGhlIGtleSBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBv
ZiBHb29nbGUgVGVzdAotICAvLyB0ZXN0Y2FzZSB0YWdzLiAgUmV0dXJucyB0cnVlIGlmIHRoZSBw
cm9wZXJ0eSBpcyB2YWxpZC4KKyAgLy8gdGVzdHN1aXRlIHRhZ3MuICBSZXR1cm5zIHRydWUgaWYg
dGhlIHByb3BlcnR5IGlzIHZhbGlkLgogICAvLyBGSVhNRTogVmFsaWRhdGUgYXR0cmlidXRlIG5h
bWVzIGFyZSBsZWdhbCBhbmQgaHVtYW4gcmVhZGFibGUuCiAgIHN0YXRpYyBib29sIFZhbGlkYXRl
VGVzdFByb3BlcnR5KGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxfZWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5
KTsKQEAgLTY2MSw2ICs2ODEsOCBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RSZXN1bHQgewogICBz
dGQ6OnZlY3RvcjxUZXN0UHJvcGVydHk+IHRlc3RfcHJvcGVydGllc187CiAgIC8vIFJ1bm5pbmcg
Y291bnQgb2YgZGVhdGggdGVzdHMuCiAgIGludCBkZWF0aF90ZXN0X2NvdW50XzsKKyAgLy8gVGhl
IHN0YXJ0IHRpbWUsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBVTklYIEVwb2NoLgorICBUaW1lSW5N
aWxsaXMgc3RhcnRfdGltZXN0YW1wXzsKICAgLy8gVGhlIGVsYXBzZWQgdGltZSwgaW4gbWlsbGlz
ZWNvbmRzLgogICBUaW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lXzsKIApAQCAtNjcwLDcgKzY5Miw3
IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFJlc3VsdCB7CiAKIC8vIEEgVGVzdEluZm8gb2JqZWN0
IHN0b3JlcyB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdDoKIC8vCi0vLyAg
IFRlc3QgY2FzZSBuYW1lCisvLyAgIFRlc3Qgc3VpdGUgbmFtZQogLy8gICBUZXN0IG5hbWUKIC8v
ICAgV2hldGhlciB0aGUgdGVzdCBzaG91bGQgYmUgcnVuCiAvLyAgIEEgZnVuY3Rpb24gcG9pbnRl
ciB0aGF0IGNyZWF0ZXMgdGhlIHRlc3Qgb2JqZWN0IHdoZW4gaW52b2tlZApAQCAtNjg1LDggKzcw
NywxMyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAgLy8gZG9uJ3QgaW5oZXJpdCBm
cm9tIFRlc3RJbmZvLgogICB+VGVzdEluZm8oKTsKIAotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNh
c2UgbmFtZS4KLSAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0
ZXN0X2Nhc2VfbmFtZV8uY19zdHIoKTsgfQorICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHN1aXRlIG5h
bWUuCisgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3Rf
c3VpdGVfbmFtZV8uY19zdHIoKTsgfQorCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0
IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KKyAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X3N1
aXRlX25hbWUoKTsgfQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KIAogICAvLyBSZXR1cm5zIHRoZSB0ZXN0IG5hbWUuCiAgIGNvbnN0IGNoYXIqIG5hbWUoKSBj
b25zdCB7IHJldHVybiBuYW1lXy5jX3N0cigpOyB9CkBAIC02OTQsMTcgKzcyMSwxNSBAQCBjbGFz
cyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAgLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFy
YW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYSB0eXBlZAogICAvLyBvciBhIHR5
cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgogICBjb25zdCBjaGFyKiB0eXBlX3BhcmFtKCkgY29uc3Qg
ewotICAgIGlmICh0eXBlX3BhcmFtXy5nZXQoKSAhPSBOVUxMKQotICAgICAgcmV0dXJuIHR5cGVf
cGFyYW1fLT5jX3N0cigpOwotICAgIHJldHVybiBOVUxMOworICAgIGlmICh0eXBlX3BhcmFtXy5n
ZXQoKSAhPSBudWxscHRyKSByZXR1cm4gdHlwZV9wYXJhbV8tPmNfc3RyKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiAgIH0KIAogICAvLyBSZXR1cm5zIHRoZSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9m
IHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYgdGhpcwogICAvLyBpcyBub3QgYSB2YWx1
ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCiAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtKCkgY29uc3Qg
ewotICAgIGlmICh2YWx1ZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB2YWx1
ZV9wYXJhbV8tPmNfc3RyKCk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHZhbHVlX3BhcmFt
Xy5nZXQoKSAhPSBudWxscHRyKSByZXR1cm4gdmFsdWVfcGFyYW1fLT5jX3N0cigpOworICAgIHJl
dHVybiBudWxscHRyOwogICB9CiAKICAgLy8gUmV0dXJucyB0aGUgZmlsZSBuYW1lIHdoZXJlIHRo
aXMgdGVzdCBpcyBkZWZpbmVkLgpAQCAtNzIxLDcgKzc0Niw3IEBAIGNsYXNzIEdURVNUX0FQSV8g
VGVzdEluZm8gewogICAvLyBiZWVuIHNwZWNpZmllZCkgYW5kIGl0cyBmdWxsIG5hbWUgbWF0Y2hl
cyB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVyLgogICAvLwogICAvLyBHb29nbGUgVGVzdCBhbGxv
d3MgdGhlIHVzZXIgdG8gZmlsdGVyIHRoZSB0ZXN0cyBieSB0aGVpciBmdWxsIG5hbWVzLgotICAv
LyBUaGUgZnVsbCBuYW1lIG9mIGEgdGVzdCBCYXIgaW4gdGVzdCBjYXNlIEZvbyBpcyBkZWZpbmVk
IGFzCisgIC8vIFRoZSBmdWxsIG5hbWUgb2YgYSB0ZXN0IEJhciBpbiB0ZXN0IHN1aXRlIEZvbyBp
cyBkZWZpbmVkIGFzCiAgIC8vICJGb28uQmFyIi4gIE9ubHkgdGhlIHRlc3RzIHRoYXQgbWF0Y2gg
dGhlIGZpbHRlciB3aWxsIHJ1bi4KICAgLy8KICAgLy8gQSBmaWx0ZXIgaXMgYSBjb2xvbi1zZXBh
cmF0ZWQgbGlzdCBvZiBnbG9iIChub3QgcmVnZXgpIHBhdHRlcm5zLApAQCAtNzM0LDcgKzc1OSw3
IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAvLyBjb250YWlucyB0aGUgY2hhcmFj
dGVyICdBJyBvciBzdGFydHMgd2l0aCAiRm9vLiIuCiAgIGJvb2wgc2hvdWxkX3J1bigpIGNvbnN0
IHsgcmV0dXJuIHNob3VsZF9ydW5fOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGlzIHRl
c3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGlzIHRlc3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQuCiAgIGJv
b2wgaXNfcmVwb3J0YWJsZSgpIGNvbnN0IHsKICAgICAvLyBUaGUgWE1MIHJlcG9ydCBpbmNsdWRl
cyB0ZXN0cyBtYXRjaGluZyB0aGUgZmlsdGVyLCBleGNsdWRpbmcgdGhvc2UKICAgICAvLyBydW4g
aW4gb3RoZXIgc2hhcmRzLgpAQCAtNzQ5LDI0ICs3NzQsMTkgQEAgY2xhc3MgR1RFU1RfQVBJXyBU
ZXN0SW5mbyB7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6RGVmYXVsdERlYXRoVGVzdEZhY3Rv
cnk7CiAjZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUCiAgIGZyaWVuZCBjbGFzcyBUZXN0
OwotICBmcmllbmQgY2xhc3MgVGVzdENhc2U7CisgIGZyaWVuZCBjbGFzcyBUZXN0U3VpdGU7CiAg
IGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsOwogICBmcmllbmQgY2xhc3MgaW50
ZXJuYWw6OlN0cmVhbWluZ0xpc3RlbmVyVGVzdDsKICAgZnJpZW5kIFRlc3RJbmZvKiBpbnRlcm5h
bDo6TWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oCi0gICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2Vf
bmFtZSwKLSAgICAgIGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICBjb25zdCBjaGFyKiB0eXBlX3Bh
cmFtLAotICAgICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0sCi0gICAgICBpbnRlcm5hbDo6Q29k
ZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCi0gICAgICBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVf
Y2xhc3NfaWQsCi0gICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAg
ICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMsCisgICAgICBjb25zdCBj
aGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHR5cGVf
cGFyYW0sCisgICAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgaW50ZXJuYWw6OkNvZGVMb2Nh
dGlvbiBjb2RlX2xvY2F0aW9uLAorICAgICAgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNz
X2lkLCBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgIGludGVy
bmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjLAogICAgICAgaW50ZXJuYWw6
OlRlc3RGYWN0b3J5QmFzZSogZmFjdG9yeSk7CiAKICAgLy8gQ29uc3RydWN0cyBhIFRlc3RJbmZv
IG9iamVjdC4gVGhlIG5ld2x5IGNvbnN0cnVjdGVkIGluc3RhbmNlIGFzc3VtZXMKICAgLy8gb3du
ZXJzaGlwIG9mIHRoZSBmYWN0b3J5IG9iamVjdC4KLSAgVGVzdEluZm8oY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwK
KyAgVGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3Qgc3Rk
OjpzdHJpbmcmIG5hbWUsCiAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwgICAv
LyBOVUxMIGlmIG5vdCBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0CiAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGFfdmFsdWVfcGFyYW0sICAvLyBOVUxMIGlmIG5vdCBhIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdAogICAgICAgICAgICBpbnRlcm5hbDo6Q29kZUxvY2F0aW9uIGFfY29kZV9sb2NhdGlv
biwKQEAgLTc4MywyNiArODAzLDI5IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICAv
LyBkZWxldGVzIGl0LgogICB2b2lkIFJ1bigpOwogCisgIC8vIFNraXAgYW5kIHJlY29yZHMgdGhl
IHRlc3QgcmVzdWx0IGZvciB0aGlzIG9iamVjdC4KKyAgdm9pZCBTa2lwKCk7CisKICAgc3RhdGlj
IHZvaWQgQ2xlYXJUZXN0UmVzdWx0KFRlc3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICB0ZXN0X2lu
Zm8tPnJlc3VsdF8uQ2xlYXIoKTsKICAgfQogCiAgIC8vIFRoZXNlIGZpZWxkcyBhcmUgaW1tdXRh
YmxlIHByb3BlcnRpZXMgb2YgdGhlIHRlc3QuCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3RfY2Fz
ZV9uYW1lXzsgICAgIC8vIFRlc3QgY2FzZSBuYW1lCisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rf
c3VpdGVfbmFtZV87ICAgIC8vIHRlc3Qgc3VpdGUgbmFtZQogICBjb25zdCBzdGQ6OnN0cmluZyBu
YW1lXzsgICAgICAgICAgICAgICAvLyBUZXN0IG5hbWUKICAgLy8gTmFtZSBvZiB0aGUgcGFyYW1l
dGVyIHR5cGUsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhCiAgIC8vIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0LgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6
OnN0ZDo6c3RyaW5nPiB0eXBlX3BhcmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0
IDo6c3RkOjpzdHJpbmc+IHR5cGVfcGFyYW1fOwogICAvLyBUZXh0IHJlcHJlc2VudGF0aW9uIG9m
IHRoZSB2YWx1ZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYQogICAvLyB2YWx1
ZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0
IDo6c3RkOjpzdHJpbmc+IHZhbHVlX3BhcmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNv
bnN0IDo6c3RkOjpzdHJpbmc+IHZhbHVlX3BhcmFtXzsKICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlv
biBsb2NhdGlvbl87Ci0gIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZF87
ICAgLy8gSUQgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcwotICBib29sIHNob3VsZF9ydW5fOyAg
ICAgICAgICAgICAgICAgLy8gVHJ1ZSBpZmYgdGhpcyB0ZXN0IHNob3VsZCBydW4KLSAgYm9vbCBp
c19kaXNhYmxlZF87ICAgICAgICAgICAgICAgIC8vIFRydWUgaWZmIHRoaXMgdGVzdCBpcyBkaXNh
YmxlZAotICBib29sIG1hdGNoZXNfZmlsdGVyXzsgICAgICAgICAgICAgLy8gVHJ1ZSBpZiB0aGlz
IHRlc3QgbWF0Y2hlcyB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHVzZXItc3BlY2lmaWVkIGZpbHRlci4KLSAgYm9vbCBpc19pbl9hbm90aGVyX3NoYXJkXzsgICAg
ICAgIC8vIFdpbGwgYmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCisgIGNvbnN0IGludGVybmFsOjpU
eXBlSWQgZml4dHVyZV9jbGFzc19pZF87ICAvLyBJRCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNz
CisgIGJvb2wgc2hvdWxkX3J1bl87ICAgICAgICAgICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIHRo
aXMgdGVzdCBzaG91bGQgcnVuCisgIGJvb2wgaXNfZGlzYWJsZWRfOyAgICAgICAgICAvLyBUcnVl
IGlmIGFuZCBvbmx5IGlmIHRoaXMgdGVzdCBpcyBkaXNhYmxlZAorICBib29sIG1hdGNoZXNfZmls
dGVyXzsgICAgICAgLy8gVHJ1ZSBpZiB0aGlzIHRlc3QgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHVzZXItc3BlY2lmaWVkIGZpbHRlci4KKyAgYm9vbCBpc19p
bl9hbm90aGVyX3NoYXJkXzsgIC8vIFdpbGwgYmUgcnVuIGluIGFub3RoZXIgc2hhcmQuCiAgIGlu
dGVybmFsOjpUZXN0RmFjdG9yeUJhc2UqIGNvbnN0IGZhY3RvcnlfOyAgLy8gVGhlIGZhY3Rvcnkg
dGhhdCBjcmVhdGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gdGhlIHRlc3Qgb2JqZWN0CiAKQEAgLTgxMyw5MCArODM2LDk4IEBAIGNsYXNzIEdURVNU
X0FQSV8gVGVzdEluZm8gewogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RJ
bmZvKTsKIH07CiAKLS8vIEEgdGVzdCBjYXNlLCB3aGljaCBjb25zaXN0cyBvZiBhIHZlY3RvciBv
ZiBUZXN0SW5mb3MuCisvLyBBIHRlc3Qgc3VpdGUsIHdoaWNoIGNvbnNpc3RzIG9mIGEgdmVjdG9y
IG9mIFRlc3RJbmZvcy4KIC8vCi0vLyBUZXN0Q2FzZSBpcyBub3QgY29weWFibGUuCi1jbGFzcyBH
VEVTVF9BUElfIFRlc3RDYXNlIHsKKy8vIFRlc3RTdWl0ZSBpcyBub3QgY29weWFibGUuCitjbGFz
cyBHVEVTVF9BUElfIFRlc3RTdWl0ZSB7CiAgcHVibGljOgotICAvLyBDcmVhdGVzIGEgVGVzdENh
c2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKyAgLy8gQ3JlYXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRo
ZSBnaXZlbiBuYW1lLgogICAvLwotICAvLyBUZXN0Q2FzZSBkb2VzIE5PVCBoYXZlIGEgZGVmYXVs
dCBjb25zdHJ1Y3Rvci4gIEFsd2F5cyB1c2UgdGhpcwotICAvLyBjb25zdHJ1Y3RvciB0byBjcmVh
dGUgYSBUZXN0Q2FzZSBvYmplY3QuCisgIC8vIFRlc3RTdWl0ZSBkb2VzIE5PVCBoYXZlIGEgZGVm
YXVsdCBjb25zdHJ1Y3Rvci4gIEFsd2F5cyB1c2UgdGhpcworICAvLyBjb25zdHJ1Y3RvciB0byBj
cmVhdGUgYSBUZXN0U3VpdGUgb2JqZWN0LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0g
IC8vICAgbmFtZTogICAgICAgICBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UKKyAgLy8gICBuYW1lOiAg
ICAgICAgIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKICAgLy8gICBhX3R5cGVfcGFyYW06IHRoZSBu
YW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKICAgLy8gICAgICAg
ICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QuCi0gIC8vICAg
c2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRl
c3QgY2FzZQotICAvLyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhh
dCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKLSAgVGVzdENhc2UoY29uc3QgY2hhciogbmFtZSwg
Y29uc3QgY2hhciogYV90eXBlX3BhcmFtLAotICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNl
RnVuYyBzZXRfdXBfdGMsCi0gICAgICAgICAgIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRl
YXJfZG93bl90Yyk7CisgIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlv
biB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50
ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQorICBUZXN0
U3VpdGUoY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFtLAorICAgICAg
ICAgICAgaW50ZXJuYWw6OlNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAg
ICBpbnRlcm5hbDo6VGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90Yyk7CiAKLSAgLy8g
RGVzdHJ1Y3RvciBvZiBUZXN0Q2FzZS4KLSAgdmlydHVhbCB+VGVzdENhc2UoKTsKKyAgLy8gRGVz
dHJ1Y3RvciBvZiBUZXN0U3VpdGUuCisgIHZpcnR1YWwgflRlc3RTdWl0ZSgpOwogCi0gIC8vIEdl
dHMgdGhlIG5hbWUgb2YgdGhlIFRlc3RDYXNlLgorICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBU
ZXN0U3VpdGUuCiAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBuYW1lXy5jX3N0
cigpOyB9CiAKICAgLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9y
IE5VTEwgaWYgdGhpcyBpcyBub3QgYQotICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNl
LgorICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZS4KICAgY29uc3QgY2hhciogdHlw
ZV9wYXJhbSgpIGNvbnN0IHsKLSAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gTlVMTCkKLSAg
ICAgIHJldHVybiB0eXBlX3BhcmFtXy0+Y19zdHIoKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBp
ZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gbnVsbHB0cikgcmV0dXJuIHR5cGVfcGFyYW1fLT5jX3N0
cigpOworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmIGFu
eSB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlIHNob3VsZCBydW4uCisgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3Qgc3VpdGUgc2hvdWxkIHJ1bi4KICAgYm9vbCBzaG91bGRf
cnVuKCkgY29uc3QgeyByZXR1cm4gc2hvdWxkX3J1bl87IH0KIAotICAvLyBHZXRzIHRoZSBudW1i
ZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUg
bnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgc3Vj
Y2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZh
aWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNr
aXBwZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50
KCkgY29uc3Q7CisKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlz
IHRlc3Qgc3VpdGUuCiAgIGludCBmYWlsZWRfdGVzdF9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4g
dGhlIFhNTCByZXBvcnQuCiAgIGludCByZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBj
b25zdDsKIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlz
IHRlc3Qgc3VpdGUuCiAgIGludCBkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKICAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIHRlc3RzIHRvIGJlIHByaW50ZWQgaW4gdGhlIFhNTCByZXBvcnQu
CiAgIGludCByZXBvcnRhYmxlX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXQgdGhlIG51
bWJlciBvZiB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZSB0aGF0IHNob3VsZCBydW4uCisgIC8vIEdl
dCB0aGUgbnVtYmVyIG9mIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZSB0aGF0IHNob3VsZCBydW4u
CiAgIGludCB0ZXN0X3RvX3J1bl9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJl
ciBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQgdG90YWxfdGVzdF9jb3VudCgp
IGNvbnN0OwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBwYXNzZWQuCisg
IC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQuCiAg
IGJvb2wgUGFzc2VkKCkgY29uc3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0dXJu
cyB0cnVlIGlmZiB0aGUgdGVzdCBjYXNlIGZhaWxlZC4KLSAgYm9vbCBGYWlsZWQoKSBjb25zdCB7
IHJldHVybiBmYWlsZWRfdGVzdF9jb3VudCgpID4gMDsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3Qgc3VpdGUgZmFpbGVkLgorICBib29sIEZhaWxlZCgpIGNvbnN0
IHsKKyAgICByZXR1cm4gZmFpbGVkX3Rlc3RfY291bnQoKSA+IDAgfHwgYWRfaG9jX3Rlc3RfcmVz
dWx0KCkuRmFpbGVkKCk7CisgIH0KIAogICAvLyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGlu
IG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0
dXJuIGVsYXBzZWRfdGltZV87IH0KIAorICAvLyBHZXRzIHRoZSB0aW1lIG9mIHRoZSB0ZXN0IHN1
aXRlIHN0YXJ0LCBpbiBtcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKKyAgLy8gVU5JWCBlcG9jaC4K
KyAgVGltZUluTWlsbGlzIHN0YXJ0X3RpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0X3Rp
bWVzdGFtcF87IH0KKwogICAvLyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRoZSB0
ZXN0cy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCiAgIC8vIHRvdGFsX3Rlc3RfY291bnQoKSAtIDEu
IElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KICAgY29uc3QgVGVzdElu
Zm8qIEdldFRlc3RJbmZvKGludCBpKSBjb25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBUZXN0UmVz
dWx0IHRoYXQgaG9sZHMgdGVzdCBwcm9wZXJ0aWVzIHJlY29yZGVkIGR1cmluZwotICAvLyBleGVj
dXRpb24gb2YgU2V0VXBUZXN0Q2FzZSBhbmQgVGVhckRvd25UZXN0Q2FzZS4KKyAgLy8gZXhlY3V0
aW9uIG9mIFNldFVwVGVzdFN1aXRlIGFuZCBUZWFyRG93blRlc3RTdWl0ZS4KICAgY29uc3QgVGVz
dFJlc3VsdCYgYWRfaG9jX3Rlc3RfcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gYWRfaG9jX3Rlc3Rf
cmVzdWx0XzsgfQogCiAgcHJpdmF0ZToKICAgZnJpZW5kIGNsYXNzIFRlc3Q7CiAgIGZyaWVuZCBj
bGFzcyBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsOwogCi0gIC8vIEdldHMgdGhlIChtdXRhYmxlKSB2
ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoaXMgVGVzdENhc2UuCisgIC8vIEdldHMgdGhlIChtdXRh
YmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoaXMgVGVzdFN1aXRlLgogICBzdGQ6OnZlY3Rv
cjxUZXN0SW5mbyo+JiB0ZXN0X2luZm9fbGlzdCgpIHsgcmV0dXJuIHRlc3RfaW5mb19saXN0Xzsg
fQogCi0gIC8vIEdldHMgdGhlIChpbW11dGFibGUpIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhp
cyBUZXN0Q2FzZS4KKyAgLy8gR2V0cyB0aGUgKGltbXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZv
cyBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiYgdGVz
dF9pbmZvX2xpc3QoKSBjb25zdCB7CiAgICAgcmV0dXJuIHRlc3RfaW5mb19saXN0XzsKICAgfQpA
QCAtOTA4LDUxICs5MzksNjcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIFNl
dHMgdGhlIHNob3VsZF9ydW4gbWVtYmVyLgogICB2b2lkIHNldF9zaG91bGRfcnVuKGJvb2wgc2hv
dWxkKSB7IHNob3VsZF9ydW5fID0gc2hvdWxkOyB9CiAKLSAgLy8gQWRkcyBhIFRlc3RJbmZvIHRv
IHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBkZWxldGUgdGhlIFRlc3RJbmZvIHVwb24KLSAgLy8gZGVz
dHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNlIG9iamVjdC4KKyAgLy8gQWRkcyBhIFRlc3RJbmZvIHRv
IHRoaXMgdGVzdCBzdWl0ZS4gIFdpbGwgZGVsZXRlIHRoZSBUZXN0SW5mbyB1cG9uCisgIC8vIGRl
c3RydWN0aW9uIG9mIHRoZSBUZXN0U3VpdGUgb2JqZWN0LgogICB2b2lkIEFkZFRlc3RJbmZvKFRl
c3RJbmZvICogdGVzdF9pbmZvKTsKIAotICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRl
c3RzIGluIHRoaXMgdGVzdCBjYXNlLgorICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRl
c3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgdm9pZCBDbGVhclJlc3VsdCgpOwogCi0gIC8vIENs
ZWFycyB0aGUgcmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3QgY2FzZS4KLSAg
c3RhdGljIHZvaWQgQ2xlYXJUZXN0Q2FzZVJlc3VsdChUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0g
ICAgdGVzdF9jYXNlLT5DbGVhclJlc3VsdCgpOworICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2Yg
YWxsIHRlc3RzIGluIHRoZSBnaXZlbiB0ZXN0IHN1aXRlLgorICBzdGF0aWMgdm9pZCBDbGVhclRl
c3RTdWl0ZVJlc3VsdChUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgICB0ZXN0X3N1aXRlLT5D
bGVhclJlc3VsdCgpOwogICB9CiAKLSAgLy8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENh
c2UuCisgIC8vIFJ1bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgdm9pZCBSdW4o
KTsKIAotICAvLyBSdW5zIFNldFVwVGVzdENhc2UoKSBmb3IgdGhpcyBUZXN0Q2FzZS4gIFRoaXMg
d3JhcHBlciBpcyBuZWVkZWQKLSAgLy8gZm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGZy
b20gU2V0VXBUZXN0Q2FzZSgpLgotICB2b2lkIFJ1blNldFVwVGVzdENhc2UoKSB7ICgqc2V0X3Vw
X3RjXykoKTsgfQorICAvLyBTa2lwcyB0aGUgZXhlY3V0aW9uIG9mIHRlc3RzIHVuZGVyIHRoaXMg
VGVzdFN1aXRlCisgIHZvaWQgU2tpcCgpOwogCi0gIC8vIFJ1bnMgVGVhckRvd25UZXN0Q2FzZSgp
IGZvciB0aGlzIFRlc3RDYXNlLiAgVGhpcyB3cmFwcGVyIGlzCi0gIC8vIG5lZWRlZCBmb3IgY2F0
Y2hpbmcgZXhjZXB0aW9ucyB0aHJvd24gZnJvbSBUZWFyRG93blRlc3RDYXNlKCkuCi0gIHZvaWQg
UnVuVGVhckRvd25UZXN0Q2FzZSgpIHsgKCp0ZWFyX2Rvd25fdGNfKSgpOyB9CisgIC8vIFJ1bnMg
U2V0VXBUZXN0U3VpdGUoKSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBwZXIgaXMgbmVl
ZGVkCisgIC8vIGZvciBjYXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdFN1
aXRlKCkuCisgIHZvaWQgUnVuU2V0VXBUZXN0U3VpdGUoKSB7CisgICAgaWYgKHNldF91cF90Y18g
IT0gbnVsbHB0cikgeworICAgICAgKCpzZXRfdXBfdGNfKSgpOworICAgIH0KKyAgfQorCisgIC8v
IFJ1bnMgVGVhckRvd25UZXN0U3VpdGUoKSBmb3IgdGhpcyBUZXN0U3VpdGUuICBUaGlzIHdyYXBw
ZXIgaXMKKyAgLy8gbmVlZGVkIGZvciBjYXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFRl
YXJEb3duVGVzdFN1aXRlKCkuCisgIHZvaWQgUnVuVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAg
aWYgKHRlYXJfZG93bl90Y18gIT0gbnVsbHB0cikgeworICAgICAgKCp0ZWFyX2Rvd25fdGNfKSgp
OworICAgIH0KKyAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGVzdCBwYXNzZWQuCisgIC8v
IFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0ZXN0IHBhc3NlZC4KICAgc3RhdGljIGJvb2wg
VGVzdFBhc3NlZChjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3Rf
aW5mby0+c2hvdWxkX3J1bigpICYmIHRlc3RfaW5mby0+cmVzdWx0KCktPlBhc3NlZCgpOwogICB9
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0ZXN0IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRlc3Qgc2tpcHBlZC4KKyAgc3RhdGljIGJvb2wgVGVzdFNraXBwZWQo
Y29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbykgeworICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3Vs
ZF9ydW4oKSAmJiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5Ta2lwcGVkKCk7CisgIH0KKworICAvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGVzdCBmYWlsZWQuCiAgIHN0YXRpYyBib29sIFRl
c3RGYWlsZWQoY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2lu
Zm8tPnNob3VsZF9ydW4oKSAmJiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5GYWlsZWQoKTsKICAgfQog
Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgaXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUg
cmVwb3J0ZWQgaW4gdGhlIFhNTAotICAvLyByZXBvcnQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdGVzdCBpcyBkaXNhYmxlZCBhbmQgd2lsbCBiZSByZXBvcnRlZCBpbgor
ICAvLyB0aGUgWE1MIHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVzdFJlcG9ydGFibGVEaXNhYmxl
ZChjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+aXNf
cmVwb3J0YWJsZSgpICYmIHRlc3RfaW5mby0+aXNfZGlzYWJsZWRfOwogICB9CiAKLSAgLy8gUmV0
dXJucyB0cnVlIGlmZiB0ZXN0IGlzIGRpc2FibGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGVzdCBpcyBkaXNhYmxlZC4KICAgc3RhdGljIGJvb2wgVGVzdERpc2FibGVkKGNv
bnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19kaXNh
YmxlZF87CiAgIH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoaXMgdGVzdCB3aWxsIGFwcGVh
ciBpbiB0aGUgWE1MIHJlcG9ydC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRo
aXMgdGVzdCB3aWxsIGFwcGVhciBpbiB0aGUgWE1MIHJlcG9ydC4KICAgc3RhdGljIGJvb2wgVGVz
dFJlcG9ydGFibGUoY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0
X2luZm8tPmlzX3JlcG9ydGFibGUoKTsKICAgfQpAQCAtOTYyLDE3ICsxMDA5LDE3IEBAIGNsYXNz
IEdURVNUX0FQSV8gVGVzdENhc2UgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4o
KTsKICAgfQogCi0gIC8vIFNodWZmbGVzIHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAg
Ly8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgdm9pZCBTaHVmZmxl
VGVzdHMoaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tKTsKIAogICAvLyBSZXN0b3JlcyB0aGUgdGVz
dCBvcmRlciB0byBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVz
dHMoKTsKIAotICAvLyBOYW1lIG9mIHRoZSB0ZXN0IGNhc2UuCisgIC8vIE5hbWUgb2YgdGhlIHRl
c3Qgc3VpdGUuCiAgIHN0ZDo6c3RyaW5nIG5hbWVfOwogICAvLyBOYW1lIG9mIHRoZSBwYXJhbWV0
ZXIgdHlwZSwgb3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEKICAgLy8gdHlwZS1w
YXJhbWV0ZXJpemVkIHRlc3QuCi0gIGNvbnN0IGludGVybmFsOjpzY29wZWRfcHRyPGNvbnN0IDo6
c3RkOjpzdHJpbmc+IHR5cGVfcGFyYW1fOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3Qg
OjpzdGQ6OnN0cmluZz4gdHlwZV9wYXJhbV87CiAgIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdEluZm9z
IGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKICAgLy8gZWxlbWVudHMgaW4g
dGhlIHZlY3Rvci4KICAgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiB0ZXN0X2luZm9fbGlzdF87CkBA
IC05ODAsMjAgKzEwMjcsMjIgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7CiAgIC8vIHNo
dWZmbGluZyBhbmQgcmVzdG9yaW5nIHRoZSB0ZXN0IG9yZGVyLiAgVGhlIGktdGggZWxlbWVudCBp
biB0aGlzCiAgIC8vIHZlY3RvciBpcyB0aGUgaW5kZXggb2YgdGhlIGktdGggdGVzdCBpbiB0aGUg
c2h1ZmZsZWQgdGVzdCBsaXN0LgogICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3RfaW5kaWNlc187Ci0g
IC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlLgot
ICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGNfOwotICAvLyBQb2ludGVyIHRvIHRo
ZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6VGVhckRv
d25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjXzsKLSAgLy8gVHJ1ZSBpZmYgYW55IHRlc3QgaW4g
dGhpcyB0ZXN0IGNhc2Ugc2hvdWxkIHJ1bi4KKyAgLy8gUG9pbnRlciB0byB0aGUgZnVuY3Rpb24g
dGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlLgorICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVG
dW5jIHNldF91cF90Y187CisgIC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMg
ZG93biB0aGUgdGVzdCBzdWl0ZS4KKyAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0
ZWFyX2Rvd25fdGNfOworICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIGFueSB0ZXN0IGluIHRoaXMg
dGVzdCBzdWl0ZSBzaG91bGQgcnVuLgogICBib29sIHNob3VsZF9ydW5fOworICAvLyBUaGUgc3Rh
cnQgdGltZSwgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIFVOSVggRXBvY2guCisgIFRpbWVJbk1pbGxp
cyBzdGFydF90aW1lc3RhbXBfOwogICAvLyBFbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4K
ICAgVGltZUluTWlsbGlzIGVsYXBzZWRfdGltZV87Ci0gIC8vIEhvbGRzIHRlc3QgcHJvcGVydGll
cyByZWNvcmRlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIFNldFVwVGVzdENhc2UgYW5kCi0gIC8vIFRl
YXJEb3duVGVzdENhc2UuCisgIC8vIEhvbGRzIHRlc3QgcHJvcGVydGllcyByZWNvcmRlZCBkdXJp
bmcgZXhlY3V0aW9uIG9mIFNldFVwVGVzdFN1aXRlIGFuZAorICAvLyBUZWFyRG93blRlc3RTdWl0
ZS4KICAgVGVzdFJlc3VsdCBhZF9ob2NfdGVzdF9yZXN1bHRfOwogCi0gIC8vIFdlIGRpc2FsbG93
IGNvcHlpbmcgVGVzdENhc2VzLgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRl
c3RDYXNlKTsKKyAgLy8gV2UgZGlzYWxsb3cgY29weWluZyBUZXN0U3VpdGVzLgorICBHVEVTVF9E
SVNBTExPV19DT1BZX0FORF9BU1NJR05fKFRlc3RTdWl0ZSk7CiB9OwogCiAvLyBBbiBFbnZpcm9u
bWVudCBvYmplY3QgaXMgY2FwYWJsZSBvZiBzZXR0aW5nIHVwIGFuZCB0ZWFyaW5nIGRvd24gYW4K
QEAgLTEwMjQsNyArMTA3Myw3IEBAIGNsYXNzIEVudmlyb25tZW50IHsKICAgLy8gSWYgeW91IHNl
ZSBhbiBlcnJvciBhYm91dCBvdmVycmlkaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gb3IKICAg
Ly8gYWJvdXQgaXQgYmVpbmcgcHJpdmF0ZSwgeW91IGhhdmUgbWlzLXNwZWxsZWQgU2V0VXAoKSBh
cyBTZXR1cCgpLgogICBzdHJ1Y3QgU2V0dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAge307Ci0g
IHZpcnR1YWwgU2V0dXBfc2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4g
TlVMTDsgfQorICB2aXJ0dWFsIFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgp
IHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKICNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAt
MTA2MCw4ICsxMTA5LDEzIEBAIGNsYXNzIFRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gRmlyZWQg
YWZ0ZXIgZW52aXJvbm1lbnQgc2V0LXVwIGZvciBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBlbmRz
LgogICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0KSA9IDA7CiAKLSAgLy8gRmlyZWQgYmVmb3JlIHRoZSB0ZXN0IGNhc2Ugc3RhcnRz
LgotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nh
c2UpID0gMDsKKyAgLy8gRmlyZWQgYmVmb3JlIHRoZSB0ZXN0IHN1aXRlIHN0YXJ0cy4KKyAgdmly
dHVhbCB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUq
Lykge30KKworICAvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFi
bGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZpcnR1YWwg
dm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHt9Cisj
ZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBGaXJl
ZCBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29u
c3QgVGVzdEluZm8mIHRlc3RfaW5mbykgPSAwOwpAQCAtMTA3NCw4ICsxMTI4LDEzIEBAIGNsYXNz
IFRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgZW5kcy4KICAg
dmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSA9IDA7CiAK
LSAgLy8gRmlyZWQgYWZ0ZXIgdGhlIHRlc3QgY2FzZSBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25U
ZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSA9IDA7CisgIC8vIEZpcmVkIGFm
dGVyIHRoZSB0ZXN0IHN1aXRlIGVuZHMuCisgIHZpcnR1YWwgdm9pZCBPblRlc3RTdWl0ZUVuZChj
b25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSB7fQorCisvLyAgTGVnYWN5IEFQSSBpcyBk
ZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCisgIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RD
YXNlJiAvKnRlc3RfY2FzZSovKSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9U
RVNUX0NBU0VBUElfCiAKICAgLy8gRmlyZWQgYmVmb3JlIGVudmlyb25tZW50IHRlYXItZG93biBm
b3IgZWFjaCBpdGVyYXRpb24gb2YgdGVzdHMgc3RhcnRzLgogICB2aXJ0dWFsIHZvaWQgT25FbnZp
cm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpID0gMDsKQEAg
LTEwOTgsMjEgKzExNTcsMzAgQEAgY2xhc3MgVGVzdEV2ZW50TGlzdGVuZXIgewogLy8gYWJvdmUu
CiBjbGFzcyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVy
IHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25T
dGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25F
bnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQot
ICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0
Q2FzZSYgLyp0ZXN0X2Nhc2UqLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0
IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJl
c3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIHt9Ci0gIHZp
cnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHt9Ci0g
IHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSov
KSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNU
ZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2
b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykge30KLSAg
dmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIHt9CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRf
dGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAv
Kml0ZXJhdGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFy
dChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVu
dmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlk
ZSB7fQorICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3Vp
dGUqLykgb3ZlcnJpZGUge30KKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxs
IGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAg
dm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJy
aWRlIHt9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKwor
ICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlk
ZSB7fQorICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIC8qdGVz
dF9wYXJ0X3Jlc3VsdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0
SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChj
b25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7fQorI2lmbmRlZiBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0
IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyAgR1RFU1Rf
UkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJE
b3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZv
aWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3Qq
Lykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlv
biovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CiB9OwogCiAvLyBUZXN0RXZlbnRMaXN0ZW5lcnMg
bGV0cyB1c2VycyBhZGQgbGlzdGVuZXJzIHRvIHRyYWNrIGV2ZW50cyBpbiBHb29nbGUgVGVzdC4K
QEAgLTExNTIsNyArMTIyMCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEV2ZW50TGlzdGVuZXJz
IHsKICAgfQogCiAgcHJpdmF0ZToKLSAgZnJpZW5kIGNsYXNzIFRlc3RDYXNlOworICBmcmllbmQg
Y2xhc3MgVGVzdFN1aXRlOwogICBmcmllbmQgY2xhc3MgVGVzdEluZm87CiAgIGZyaWVuZCBjbGFz
cyBpbnRlcm5hbDo6RGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI7CiAgIGZyaWVu
ZCBjbGFzcyBpbnRlcm5hbDo6Tm9FeGVjRGVhdGhUZXN0OwpAQCAtMTE5Myw3ICsxMjYxLDcgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBUZXN0RXZlbnRMaXN0ZW5lcnMgewogICBHVEVTVF9ESVNBTExPV19D
T1BZX0FORF9BU1NJR05fKFRlc3RFdmVudExpc3RlbmVycyk7CiB9OwogCi0vLyBBIFVuaXRUZXN0
IGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRlc3RDYXNlcy4KKy8vIEEgVW5pdFRlc3QgY29uc2lz
dHMgb2YgYSB2ZWN0b3Igb2YgVGVzdFN1aXRlcy4KIC8vCiAvLyBUaGlzIGlzIGEgc2luZ2xldG9u
IGNsYXNzLiAgVGhlIG9ubHkgaW5zdGFuY2Ugb2YgVW5pdFRlc3QgaXMKIC8vIGNyZWF0ZWQgd2hl
biBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSBpcyBmaXJzdCBjYWxsZWQuICBUaGlzCkBAIC0xMjIy
LDEwICsxMjkwLDE0IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyB3YXMgZXhl
Y3V0ZWQuICBUaGUgVW5pdFRlc3Qgb2JqZWN0IG93bnMgdGhlIHN0cmluZy4KICAgY29uc3QgY2hh
ciogb3JpZ2luYWxfd29ya2luZ19kaXIoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRoZSBUZXN0
Q2FzZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKKyAgLy8g
UmV0dXJucyB0aGUgVGVzdFN1aXRlIG9iamVjdCBmb3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRs
eSBydW5uaW5nLAogICAvLyBvciBOVUxMIGlmIG5vIHRlc3QgaXMgcnVubmluZy4KLSAgY29uc3Qg
VGVzdENhc2UqIGN1cnJlbnRfdGVzdF9jYXNlKCkgY29uc3QKLSAgICAgIEdURVNUX0xPQ0tfRVhD
TFVERURfKG11dGV4Xyk7CisgIGNvbnN0IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkg
Y29uc3QgR1RFU1RfTE9DS19FWENMVURFRF8obXV0ZXhfKTsKKworLy8gTGVnYWN5IEFQSSBpcyBz
dGlsbCBhdmFpbGFibGUgYnV0IGRlcHJlY2F0ZWQKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCisgIGNvbnN0IFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2FzZSgpIGNv
bnN0IEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4Xyk7CisjZW5kaWYKIAogICAvLyBSZXR1cm5z
IHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmlu
ZywKICAgLy8gb3IgTlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcuCkBAIC0xMjM1LDI5ICsxMzA3
LDQwIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3QgewogICAvLyBSZXR1cm5zIHRoZSByYW5k
b20gc2VlZCB1c2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCB0ZXN0IHJ1bi4KICAgaW50
IHJhbmRvbV9zZWVkKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0aGUgUGFyYW1ldGVyaXplZFRl
c3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5z
IHRoZSBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0
cmFjayBvZgogICAvLyB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBh
bmQgcmVnaXN0ZXIgdGhlbS4KICAgLy8KICAgLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBE
TyBOT1QgVVNFIElOIEEgVVNFUiBQUk9HUkFNLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRl
c3RDYXNlUmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgIGludGVybmFs
OjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkmIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeSgpCiAgICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pOwogCi0gIC8vIEdldHMg
dGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVsX3Rl
c3RfY2FzZV9jb3VudCgpIGNvbnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1
bCB0ZXN0IHN1aXRlcy4KKyAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0
OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50IGZh
aWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZh
aWxlZCB0ZXN0IHN1aXRlcy4KKyAgaW50IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7
CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90YWxf
dGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVz
dCBzdWl0ZXMuCisgIGludCB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAgLy8g
R2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBv
bmUgdGVzdAorICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQgY29u
dGFpbiBhdCBsZWFzdCBvbmUgdGVzdAogICAvLyB0aGF0IHNob3VsZCBydW4uCisgIGludCB0ZXN0
X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNvbnN0OworCisgIC8vICBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7Cisg
IGludCBmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIGludCB0b3RhbF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdDsKICAgaW50IHRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdDsK
KyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzLgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMu
CisgIGludCBza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdDsKKwogICAvLyBHZXRzIHRoZSBudW1i
ZXIgb2YgZmFpbGVkIHRlc3RzLgogICBpbnQgZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIApA
QCAtMTI4MywxOSArMTM2NiwyNSBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgLy8g
R2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1pbGxpcyBl
bGFwc2VkX3RpbWUoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRl
c3QgcGFzc2VkIChpLmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0
ZXMKKyAgLy8gcGFzc2VkKS4KICAgYm9vbCBQYXNzZWQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5z
IHRydWUgaWZmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBjYXNlIGZhaWxl
ZAotICAvLyBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKyAgLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNv
bWUgdGVzdCBzdWl0ZQorICAvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRl
c3RzIGZhaWxlZCkuCiAgIGJvb2wgRmFpbGVkKCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0aGUgaS10
aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAg
dG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0
IHJhbmdlLCByZXR1cm5zIE5VTEwuCisgIC8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9u
ZyBhbGwgdGhlIHRlc3Qgc3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKyAgLy8gdG90YWxf
dGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJu
cyBOVUxMLgorICBjb25zdCBUZXN0U3VpdGUqIEdldFRlc3RTdWl0ZShpbnQgaSkgY29uc3Q7CisK
Ky8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRl
ZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KICAgY29uc3QgVGVzdENhc2UqIEdl
dFRlc3RDYXNlKGludCBpKSBjb25zdDsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXwogCiAgIC8vIFJldHVybnMgdGhlIFRlc3RSZXN1bHQgY29udGFpbmluZyBp
bmZvcm1hdGlvbiBvbiB0ZXN0IGZhaWx1cmVzIGFuZAotICAvLyBwcm9wZXJ0aWVzIGxvZ2dlZCBv
dXRzaWRlIG9mIGluZGl2aWR1YWwgdGVzdCBjYXNlcy4KKyAgLy8gcHJvcGVydGllcyBsb2dnZWQg
b3V0c2lkZSBvZiBpbmRpdmlkdWFsIHRlc3Qgc3VpdGVzLgogICBjb25zdCBUZXN0UmVzdWx0JiBh
ZF9ob2NfdGVzdF9yZXN1bHQoKSBjb25zdDsKIAogICAvLyBSZXR1cm5zIHRoZSBsaXN0IG9mIGV2
ZW50IGxpc3RlbmVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyYWNrIGV2ZW50cwpAQCAtMTMyNiwx
NSArMTQxNSwxNSBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgICAgIEdURVNUX0xP
Q0tfRVhDTFVERURfKG11dGV4Xyk7CiAKICAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUg
Y3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgZnJvbQotICAvLyBpbnNpZGUg
YSB0ZXN0LCB0byBjdXJyZW50IFRlc3RDYXNlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGlu
dm9rZWQKLSAgLy8gZnJvbSBTZXRVcFRlc3RDYXNlIG9yIFRlYXJEb3duVGVzdENhc2UsIG9yIHRv
IHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0CisgIC8vIGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQg
VGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3aGVuIGludm9rZWQKKyAgLy8gZnJvbSBT
ZXRVcFRlc3RTdWl0ZSBvciBUZWFyRG93blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9w
ZXJ0eSBzZXQKICAgLy8gd2hlbiBpbnZva2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxy
ZWFkeSBjb250YWlucyBhIHByb3BlcnR5IHdpdGgKICAgLy8gdGhlIHNhbWUga2V5LCB0aGUgdmFs
dWUgd2lsbCBiZSB1cGRhdGVkLgogICB2b2lkIFJlY29yZFByb3BlcnR5KGNvbnN0IHN0ZDo6c3Ry
aW5nJiBrZXksIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CiAKLSAgLy8gR2V0cyB0aGUgaS10
aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAg
dG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0
IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIFRlc3RDYXNlKiBHZXRNdXRhYmxlVGVzdENhc2UoaW50
IGkpOworICAvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1
aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQo
KSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgVGVzdFN1
aXRlKiBHZXRNdXRhYmxlVGVzdFN1aXRlKGludCBpKTsKIAogICAvLyBBY2Nlc3NvcnMgZm9yIHRo
ZSBpbXBsZW1lbnRhdGlvbiBvYmplY3QuCiAgIGludGVybmFsOjpVbml0VGVzdEltcGwqIGltcGwo
KSB7IHJldHVybiBpbXBsXzsgfQpAQCAtMTM0OCw2ICsxNDM3LDcgQEAgY2xhc3MgR1RFU1RfQVBJ
XyBVbml0VGVzdCB7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5hbDo6U3RyZWFtaW5nTGlzdGVuZXJU
ZXN0OwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0
SGVscGVyOwogICBmcmllbmQgRW52aXJvbm1lbnQqIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChF
bnZpcm9ubWVudCogZW52KTsKKyAgZnJpZW5kIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogaW50ZXJu
YWw6OkdldElnbm9yZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpOwogICBmcmllbmQgaW50ZXJu
YWw6OlVuaXRUZXN0SW1wbCogaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwogICBmcmllbmQg
dm9pZCBpbnRlcm5hbDo6UmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgVGVz
dFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0X3R5cGUsCkBAIC0xNDE5LDYgKzE1MDksMTAgQEAgR1RF
U1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywgY2hhcioqIGFyZ3YpOwogLy8g
VU5JQ09ERSBtb2RlLgogR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KGludCogYXJnYywg
d2NoYXJfdCoqIGFyZ3YpOwogCisvLyBUaGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNl
ZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBsYXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMgbm8gYXJn
Yy9hcmd2LgorR1RFU1RfQVBJXyB2b2lkIEluaXRHb29nbGVUZXN0KCk7CisKIG5hbWVzcGFjZSBp
bnRlcm5hbCB7CiAKIC8vIFNlcGFyYXRlIHRoZSBlcnJvciBnZW5lcmF0aW5nIGNvZGUgZnJvbSB0
aGUgY29kZSBwYXRoIHRvIHJlZHVjZSB0aGUgc3RhY2sKQEAgLTE0MzUsNiArMTUyOSwxMyBAQCBB
c3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVFGYWlsdXJlKGNvbnN0IGNoYXIqIGxoc19leHByZXNz
aW9uLAogICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKIH0KIAorLy8gVGhpcyBibG9jayBvZiBj
b2RlIGRlZmluZXMgb3BlcmF0b3I9PS8hPQorLy8gdG8gYmxvY2sgbGV4aWNhbCBzY29wZSBsb29r
dXAuCisvLyBJdCBwcmV2ZW50cyB1c2luZyBpbnZhbGlkIG9wZXJhdG9yPT0vIT0gZGVmaW5lZCBh
dCBuYW1lc3BhY2Ugc2NvcGUuCitzdHJ1Y3QgZmFrZXR5cGUge307CitpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGZha2V0eXBlLCBmYWtldHlwZSkgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wg
b3BlcmF0b3IhPShmYWtldHlwZSwgZmFrZXR5cGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKIC8vIFRo
ZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9FUS4KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+CiBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29uc3Qg
Y2hhciogbGhzX2V4cHJlc3Npb24sCkBAIC0xNDQ4LDI2ICsxNTQ5LDE3IEBAIEFzc2VydGlvblJl
c3VsdCBDbXBIZWxwZXJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgcmV0dXJuIENt
cEhlbHBlckVRRmFpbHVyZShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhz
KTsKIH0KIAotLy8gV2l0aCB0aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiwgd2UgYWxsb3cgYW5vbnlt
b3VzIGVudW1zIHRvIGJlIHVzZWQKLS8vIGluIHtBU1NFUlR8RVhQRUNUfV9FUSB3aGVuIGNvbXBp
bGVkIHdpdGggZ2NjIDQsIGFzIGFub255bW91cyBlbnVtcwotLy8gY2FuIGJlIGltcGxpY2l0bHkg
Y2FzdCB0byBCaWdnZXN0SW50LgotR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVy
RVEoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQmlnZ2VzdEludCByaHMpOwotCi0vLyBUaGUgaGVscGVy
IGNsYXNzIGZvciB7QVNTRVJUfEVYUEVDVH1fRVEuICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8v
IGxoc19pc19udWxsX2xpdGVyYWwgaXMgdHJ1ZSBpZmYgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIEFT
U0VSVF9FUSgpCi0vLyBpcyBhIG51bGwgcG9pbnRlciBsaXRlcmFsLiAgVGhlIGZvbGxvd2luZyBk
ZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzCi0vLyBmb3IgbGhzX2lzX251bGxfbGl0ZXJhbCBiZWlu
ZyBmYWxzZS4KLXRlbXBsYXRlIDxib29sIGxoc19pc19udWxsX2xpdGVyYWw+CiBjbGFzcyBFcUhl
bHBlciB7CiAgcHVibGljOgogICAvLyBUaGlzIHRlbXBsYXRpemVkIHZlcnNpb24gaXMgZm9yIHRo
ZSBnZW5lcmFsIGNhc2UuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Cisg
IHRlbXBsYXRlIDwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwKKyAgICAgIC8vIERp
c2FibGUgdGhpcyBvdmVybG9hZCBmb3IgY2FzZXMgd2hlcmUgb25lIGFyZ3VtZW50IGlzIGEgcG9p
bnRlcgorICAgICAgLy8gYW5kIHRoZSBvdGhlciBpcyB0aGUgbnVsbCBwb2ludGVyIGNvbnN0YW50
LgorICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfaW50ZWdyYWw8VDE+Ojp2
YWx1ZSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0ZDo6aXNfcG9pbnRlcjxU
Mj46OnZhbHVlPjo6dHlwZSogPSBudWxscHRyPgogICBzdGF0aWMgQXNzZXJ0aW9uUmVzdWx0IENv
bXBhcmUoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFQxJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwgY29uc3QgVDEmIGxocywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiByaHMpIHsKICAgICByZXR1cm4g
Q21wSGVscGVyRVEobGhzX2V4cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAg
IH0KQEAgLTE0ODQsNDkgKzE1NzYsMTUgQEAgY2xhc3MgRXFIZWxwZXIgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQmlnZ2VzdEludCByaHMpIHsKICAgICByZXR1cm4gQ21wSGVs
cGVyRVEobGhzX2V4cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiAgIH0KLX07
Ci0KLS8vIFRoaXMgc3BlY2lhbGl6YXRpb24gaXMgdXNlZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVu
dCB0byBBU1NFUlRfRVEoKQotLy8gaXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbCwgbGlrZSBOVUxM
LCBmYWxzZSwgb3IgMC4KLXRlbXBsYXRlIDw+Ci1jbGFzcyBFcUhlbHBlcjx0cnVlPiB7Ci0gcHVi
bGljOgotICAvLyBXZSBkZWZpbmUgdHdvIG92ZXJsb2FkZWQgdmVyc2lvbnMgb2YgQ29tcGFyZSgp
LiAgVGhlIGZpcnN0Ci0gIC8vIHZlcnNpb24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25k
IGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgpIGlzCi0gIC8vIE5PVCBhIHBvaW50ZXIsIGUuZy4gQVNT
RVJUX0VRKDAsIEFuSW50RnVuY3Rpb24oKSkgb3IKLSAgLy8gRVhQRUNUX0VRKGZhbHNlLCBhX2Jv
b2wpLgotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICBzdGF0aWMgQXNz
ZXJ0aW9uUmVzdWx0IENvbXBhcmUoCi0gICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwK
LSAgICAgIGNvbnN0IGNoYXIqIHJoc19leHByZXNzaW9uLAotICAgICAgY29uc3QgVDEmIGxocywK
LSAgICAgIGNvbnN0IFQyJiByaHMsCi0gICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgcHJldmVu
dHMgdGhpcyBvdmVybG9hZCBmcm9tIGJlaW5nIGNvbnNpZGVyZWQgaWYgVDIKLSAgICAgIC8vIGlz
IG5vdCBhIHBvaW50ZXIgdHlwZS4gIFdlIG5lZWQgdGhpcyBiZWNhdXNlIEFTU0VSVF9FUShOVUxM
LCBteV9wdHIpCi0gICAgICAvLyBleHBhbmRzIHRvIENvbXBhcmUoIiIsICIiLCBOVUxMLCBteV9w
dHIpLCB3aGljaCByZXF1aXJlcyBhIGNvbnZlcnNpb24KLSAgICAgIC8vIHRvIG1hdGNoIHRoZSBT
ZWNyZXQqIGluIHRoZSBvdGhlciBvdmVybG9hZCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIG1ha2UK
LSAgICAgIC8vIHRoaXMgdGVtcGxhdGUgbWF0Y2ggYmV0dGVyLgotICAgICAgdHlwZW5hbWUgRW5h
YmxlSWY8IWlzX3BvaW50ZXI8VDI+Ojp2YWx1ZT46OnR5cGUqID0gMCkgewotICAgIHJldHVybiBD
bXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24sIGxocywgcmhzKTsKLSAg
fQogCi0gIC8vIFRoaXMgdmVyc2lvbiB3aWxsIGJlIHBpY2tlZCB3aGVuIHRoZSBzZWNvbmQgYXJn
dW1lbnQgdG8gQVNTRVJUX0VRKCkgaXMgYQotICAvLyBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUShO
VUxMLCBhX3BvaW50ZXIpLgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIEFzc2Vy
dGlvblJlc3VsdCBDb21wYXJlKAotICAgICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0g
ICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgIC8vIFdlIHVzZWQgdG8gaGF2
ZSBhIHNlY29uZCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBTZWNyZXQqLiAgVGhhdAot
ICAgICAgLy8gdGVtcGxhdGUgcGFyYW1ldGVyIHdvdWxkIGRlZHVjZSB0byAnbG9uZycsIG1ha2lu
ZyB0aGlzIGEgYmV0dGVyIG1hdGNoCi0gICAgICAvLyB0aGFuIHRoZSBmaXJzdCBvdmVybG9hZCBl
dmVuIHdpdGhvdXQgdGhlIGZpcnN0IG92ZXJsb2FkJ3MgRW5hYmxlSWYuCi0gICAgICAvLyBVbmZv
cnR1bmF0ZWx5LCBnY2Mgd2l0aCAtV2NvbnZlcnNpb24tbnVsbCB3YXJucyB3aGVuICJwYXNzaW5n
IE5VTEwgdG8KLSAgICAgIC8vIG5vbi1wb2ludGVyIGFyZ3VtZW50IiAoZXZlbiBhIGRlZHVjZWQg
aW50ZWdyYWwgYXJndW1lbnQpLCBzbyB0aGUgb2xkCi0gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBj
YXVzZWQgd2FybmluZ3MgaW4gdXNlciBjb2RlLgotICAgICAgU2VjcmV0KiAvKiBsaHMgKE5VTEwp
ICovLAotICAgICAgVCogcmhzKSB7CisgICAgICBjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwg
Y29uc3QgY2hhciogcmhzX2V4cHJlc3Npb24sCisgICAgICAvLyBIYW5kbGUgY2FzZXMgd2hlcmUg
JzAnIGlzIHVzZWQgYXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbC4KKyAgICAgIHN0ZDo6bnVsbHB0
cl90IC8qIGxocyAqLywgVCogcmhzKSB7CiAgICAgLy8gV2UgYWxyZWFkeSBrbm93IHRoYXQgJ2xo
cycgaXMgYSBudWxsIHBvaW50ZXIuCi0gICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNz
aW9uLCByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
VCo+KE5VTEwpLCByaHMpOworICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwg
cmhzX2V4cHJlc3Npb24sIHN0YXRpY19jYXN0PFQqPihudWxscHRyKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgcmhzKTsKICAgfQogfTsKIApAQCAtMTU0NywxMSArMTYwNSw2IEBAIEFzc2VydGlv
blJlc3VsdCBDbXBIZWxwZXJPcEZhaWx1cmUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIq
IGV4cHIyLAogLy8gQVNTRVJUXz8/IGFuZCBFWFBFQ1RfPz8uICBJdCBpcyBoZXJlIGp1c3QgdG8g
YXZvaWQgY29weS1hbmQtcGFzdGUKIC8vIG9mIHNpbWlsYXIgY29kZS4KIC8vCi0vLyBGb3IgZWFj
aCB0ZW1wbGF0aXplZCBoZWxwZXIgZnVuY3Rpb24sIHdlIGFsc28gZGVmaW5lIGFuIG92ZXJsb2Fk
ZWQKLS8vIHZlcnNpb24gZm9yIEJpZ2dlc3RJbnQgaW4gb3JkZXIgdG8gcmVkdWNlIGNvZGUgYmxv
YXQgYW5kIGFsbG93Ci0vLyBhbm9ueW1vdXMgZW51bXMgdG8gYmUgdXNlZCB3aXRoIHtBU1NFUlR8
RVhQRUNUfV8/PyB3aGVuIGNvbXBpbGVkCi0vLyB3aXRoIGdjYyA0LgotLy8KIC8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KIAogI2RlZmlu
ZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKG9wX25hbWUsIG9wKVwKQEAgLTE1NjMsMjIgKzE2MTYs
MjAgQEAgQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlciMjb3BfbmFtZShjb25zdCBjaGFyKiBleHBy
MSwgY29uc3QgY2hhciogZXhwcjIsIFwKICAgfSBlbHNlIHtcCiAgICAgcmV0dXJuIENtcEhlbHBl
ck9wRmFpbHVyZShleHByMSwgZXhwcjIsIHZhbDEsIHZhbDIsICNvcCk7XAogICB9XAotfVwKLUdU
RVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlciMjb3BfbmFtZShcCi0gICAgY29uc3Qg
Y2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIyLCBCaWdnZXN0SW50IHZhbDEsIEJpZ2dlc3RJ
bnQgdmFsMikKK30KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElO
IEEgVVNFUiBQUk9HUkFNLgogCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9y
IHtBU1NFUlR8RVhQRUNUfV9ORQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhORSwgIT0pOworR1RF
U1RfSU1QTF9DTVBfSEVMUEVSXyhORSwgIT0pCiAvLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVu
Y3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9MRQotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwg
PD0pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pCiAvLyBJbXBsZW1lbnRzIHRoZSBo
ZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9MVAotR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhMVCwgPCk7CitHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKExULCA8KQogLy8gSW1wbGVtZW50
cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR0UKLUdURVNUX0lNUExf
Q01QX0hFTFBFUl8oR0UsID49KTsKK0dURVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQogLy8g
SW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1QKLUdU
RVNUX0lNUExfQ01QX0hFTFBFUl8oR1QsID4pOworR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwg
PikKIAogI3VuZGVmIEdURVNUX0lNUExfQ01QX0hFTFBFUl8KIApAQCAtMTc3NCwxMyArMTgyNSwx
MyBAQCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydEhlbHBlciB7CiAvLyAgIEZvb1Rlc3QoKSB7CiAv
LyAgICAgLy8gQ2FuIHVzZSBHZXRQYXJhbSgpIGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB+
Rm9vVGVzdCgpIHsKKy8vICAgfkZvb1Rlc3QoKSBvdmVycmlkZSB7CiAvLyAgICAgLy8gQ2FuIHVz
ZSBHZXRQYXJhbSgpIGhlcmUuCiAvLyAgIH0KLS8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewor
Ly8gICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0o
KSBoZXJlLgogLy8gICB9Ci0vLyAgIHZpcnR1YWwgdm9pZCBUZWFyRG93biB7CisvLyAgIHZvaWQg
VGVhckRvd24gb3ZlcnJpZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgog
Ly8gICB9CiAvLyB9OwpAQCAtMTc4OSw3ICsxODQwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3Nl
cnRIZWxwZXIgewogLy8gICBGb28gZm9vOwogLy8gICBBU1NFUlRfVFJVRShmb28uRG9lc0JhcihH
ZXRQYXJhbSgpKSk7CiAvLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChPbmVUb1RlblJh
bmdlLCBGb29UZXN0LCA6OnRlc3Rpbmc6OlJhbmdlKDEsIDEwKSk7CisvLyBJTlNUQU5USUFURV9U
RVNUX1NVSVRFX1AoT25lVG9UZW5SYW5nZSwgRm9vVGVzdCwgOjp0ZXN0aW5nOjpSYW5nZSgxLCAx
MCkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFdpdGhQYXJhbUludGVyZmFjZSB7
CkBAIC0xNzk4LDEyICsxODQ5LDkgQEAgY2xhc3MgV2l0aFBhcmFtSW50ZXJmYWNlIHsKICAgdmly
dHVhbCB+V2l0aFBhcmFtSW50ZXJmYWNlKCkge30KIAogICAvLyBUaGUgY3VycmVudCBwYXJhbWV0
ZXIgdmFsdWUuIElzIGFsc28gYXZhaWxhYmxlIGluIHRoZSB0ZXN0IGZpeHR1cmUncwotICAvLyBj
b25zdHJ1Y3Rvci4gVGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgbm9uLXN0YXRpYywgZXZlbiB0aG91
Z2ggaXQgb25seQotICAvLyByZWZlcmVuY2VzIHN0YXRpYyBkYXRhLCB0byByZWR1Y2UgdGhlIG9w
cG9ydHVuaXR5IGZvciBpbmNvcnJlY3QgdXNlcwotICAvLyBsaWtlIHdyaXRpbmcgJ1dpdGhQYXJh
bUludGVyZmFjZTxib29sPjo6R2V0UGFyYW0oKScgZm9yIGEgdGVzdCB0aGF0Ci0gIC8vIHVzZXMg
YSBmaXh0dXJlIHdob3NlIHBhcmFtZXRlciB0eXBlIGlzIGludC4KLSAgY29uc3QgUGFyYW1UeXBl
JiBHZXRQYXJhbSgpIGNvbnN0IHsKLSAgICBHVEVTVF9DSEVDS18ocGFyYW1ldGVyXyAhPSBOVUxM
KQorICAvLyBjb25zdHJ1Y3Rvci4KKyAgc3RhdGljIGNvbnN0IFBhcmFtVHlwZSYgR2V0UGFyYW0o
KSB7CisgICAgR1RFU1RfQ0hFQ0tfKHBhcmFtZXRlcl8gIT0gbnVsbHB0cikKICAgICAgICAgPDwg
IkdldFBhcmFtKCkgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBhIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdCAiCiAgICAgICAgIDw8ICItLSBkaWQgeW91IGludGVuZCB0byB3cml0ZSBURVNUX1Ag
aW5zdGVhZCBvZiBURVNUX0Y/IjsKICAgICByZXR1cm4gKnBhcmFtZXRlcl87CkBAIC0xODI0LDcg
KzE4NzIsNyBAQCBjbGFzcyBXaXRoUGFyYW1JbnRlcmZhY2UgewogfTsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1jb25zdCBUKiBXaXRoUGFyYW1JbnRlcmZhY2U8VD46OnBhcmFtZXRlcl8gPSBO
VUxMOworY29uc3QgVCogV2l0aFBhcmFtSW50ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gbnVsbHB0
cjsKIAogLy8gTW9zdCB2YWx1ZS1wYXJhbWV0ZXJpemVkIGNsYXNzZXMgY2FuIGlnbm9yZSB0aGUg
ZXhpc3RlbmNlIG9mCiAvLyBXaXRoUGFyYW1JbnRlcmZhY2UsIGFuZCBjYW4ganVzdCBpbmhlcml0
IGZyb20gOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtLgpAQCAtMTgzNSw2ICsxODgzLDExIEBAIGNs
YXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFj
ZTxUPiB7CiAKIC8vIE1hY3JvcyBmb3IgaW5kaWNhdGluZyBzdWNjZXNzL2ZhaWx1cmUgaW4gdGVz
dCBjb2RlLgogCisvLyBTa2lwcyB0ZXN0IGluIHJ1bnRpbWUuCisvLyBTa2lwcGluZyB0ZXN0IGFi
b3J0cyBjdXJyZW50IGZ1bmN0aW9uLgorLy8gU2tpcHBlZCB0ZXN0cyBhcmUgbmVpdGhlciBzdWNj
ZXNzZnVsIG5vciBmYWlsZWQuCisjZGVmaW5lIEdURVNUX1NLSVAoKSBHVEVTVF9TS0lQXygiIikK
KwogLy8gQUREX0ZBSUxVUkUgdW5jb25kaXRpb25hbGx5IGFkZHMgYSBmYWlsdXJlIHRvIHRoZSBj
dXJyZW50IHRlc3QuCiAvLyBTVUNDRUVEIGdlbmVyYXRlcyBhIHN1Y2Nlc3MgLSBpdCBkb2Vzbid0
IGF1dG9tYXRpY2FsbHkgbWFrZSB0aGUKIC8vIGN1cnJlbnQgdGVzdCBzdWNjZXNzZnVsLCBhcyBh
IHRlc3QgaXMgb25seSBzdWNjZXNzZnVsIHdoZW4gaXQgaGFzCkBAIC0xODY0LDYgKzE5MTcsMTEg
QEAgY2xhc3MgVGVzdFdpdGhQYXJhbSA6IHB1YmxpYyBUZXN0LCBwdWJsaWMgV2l0aFBhcmFtSW50
ZXJmYWNlPFQ+IHsKIC8vIEdlbmVyYXRlcyBhIGZhdGFsIGZhaWx1cmUgd2l0aCBhIGdlbmVyaWMg
bWVzc2FnZS4KICNkZWZpbmUgR1RFU1RfRkFJTCgpIEdURVNUX0ZBVEFMX0ZBSUxVUkVfKCJGYWls
ZWQiKQogCisvLyBMaWtlIEdURVNUX0ZBSUwoKSwgYnV0IGF0IHRoZSBnaXZlbiBzb3VyY2UgZmls
ZSBsb2NhdGlvbi4KKyNkZWZpbmUgR1RFU1RfRkFJTF9BVChmaWxlLCBsaW5lKSAgICAgICAgIFwK
KyAgR1RFU1RfTUVTU0FHRV9BVF8oZmlsZSwgbGluZSwgIkZhaWxlZCIsIFwKKyAgICAgICAgICAg
ICAgICAgICAgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkKKwogLy8g
RGVmaW5lIHRoaXMgbWFjcm8gdG8gMSB0byBvbWl0IHRoZSBkZWZpbml0aW9uIG9mIEZBSUwoKSwg
d2hpY2ggaXMgYQogLy8gZ2VuZXJpYyBuYW1lIGFuZCBjbGFzaGVzIHdpdGggc29tZSBvdGhlciBs
aWJyYXJpZXMuCiAjaWYgIUdURVNUX0RPTlRfREVGSU5FX0ZBSUwKQEAgLTE5NjQsOSArMjAyMiw3
IEBAIGNsYXNzIFRlc3RXaXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUlu
dGVyZmFjZTxUPiB7CiAvLyAgIEFTU0VSVF9HVChyZWNvcmRzLnNpemUoKSwgMCkgPDwgIlRoZXJl
IGlzIG5vIHJlY29yZCBsZWZ0LiI7CiAKICNkZWZpbmUgRVhQRUNUX0VRKHZhbDEsIHZhbDIpIFwK
LSAgRVhQRUNUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAg
ICAgICAgICAgICAgIEVxSGVscGVyPEdURVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21w
YXJlLCBcCi0gICAgICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKKyAgRVhQRUNUX1BSRURf
Rk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFs
MikKICNkZWZpbmUgRVhQRUNUX05FKHZhbDEsIHZhbDIpIFwKICAgRVhQRUNUX1BSRURfRk9STUFU
Mig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUg
RVhQRUNUX0xFKHZhbDEsIHZhbDIpIFwKQEAgLTE5NzksOSArMjAzNSw3IEBAIGNsYXNzIFRlc3RX
aXRoUGFyYW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAg
IEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q21wSGVscGVyR1QsIHZh
bDEsIHZhbDIpCiAKICNkZWZpbmUgR1RFU1RfQVNTRVJUX0VRKHZhbDEsIHZhbDIpIFwKLSAgQVNT
RVJUX1BSRURfRk9STUFUMig6OnRlc3Rpbmc6OmludGVybmFsOjogXAotICAgICAgICAgICAgICAg
ICAgICAgIEVxSGVscGVyPEdURVNUX0lTX05VTExfTElURVJBTF8odmFsMSk+OjpDb21wYXJlLCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgdmFsMSwgdmFsMikKKyAgQVNTRVJUX1BSRURfRk9STUFU
Mig6OnRlc3Rpbmc6OmludGVybmFsOjpFcUhlbHBlcjo6Q29tcGFyZSwgdmFsMSwgdmFsMikKICNk
ZWZpbmUgR1RFU1RfQVNTRVJUX05FKHZhbDEsIHZhbDIpIFwKICAgQVNTRVJUX1BSRURfRk9STUFU
Mig6OnRlc3Rpbmc6OmludGVybmFsOjpDbXBIZWxwZXJORSwgdmFsMSwgdmFsMikKICNkZWZpbmUg
R1RFU1RfQVNTRVJUX0xFKHZhbDEsIHZhbDIpIFwKQEAgLTIxNzIsMTIgKzIyMjYsNiBAQCBjbGFz
cyBHVEVTVF9BUElfIFNjb3BlZFRyYWNlIHsKICAgICBQdXNoVHJhY2UoZmlsZSwgbGluZSwgbWVz
c2FnZSA/IG1lc3NhZ2UgOiAiKG51bGwpIik7CiAgIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxf
U1RSSU5HCi0gIFNjb3BlZFRyYWNlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCA6
OnN0cmluZyYgbWVzc2FnZSkgewotICAgIFB1c2hUcmFjZShmaWxlLCBsaW5lLCBtZXNzYWdlKTsK
LSAgfQotI2VuZGlmCi0KICAgU2NvcGVkVHJhY2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CiAgICAgUHVzaFRyYWNlKGZpbGUsIGxpbmUs
IG1lc3NhZ2UpOwogICB9CkBAIC0yMjE1LDEwICsyMjYzLDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBT
Y29wZWRUcmFjZSB7CiAgIDo6dGVzdGluZzo6U2NvcGVkVHJhY2UgR1RFU1RfQ09OQ0FUX1RPS0VO
XyhndGVzdF90cmFjZV8sIF9fTElORV9fKShcCiAgICAgX19GSUxFX18sIF9fTElORV9fLCAobWVz
c2FnZSkpCiAKLQogLy8gQ29tcGlsZS10aW1lIGFzc2VydGlvbiBmb3IgdHlwZSBlcXVhbGl0eS4K
LS8vIFN0YXRpY0Fzc2VydFR5cGVFcTx0eXBlMSwgdHlwZTI+KCkgY29tcGlsZXMgaWZmIHR5cGUx
IGFuZCB0eXBlMiBhcmUKLS8vIHRoZSBzYW1lIHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0dXJucyBp
cyBub3QgaW50ZXJlc3RpbmcuCisvLyBTdGF0aWNBc3NlcnRUeXBlRXE8dHlwZTEsIHR5cGUyPigp
IGNvbXBpbGVzIGlmIGFuZCBvbmx5IGlmIHR5cGUxIGFuZCB0eXBlMgorLy8gYXJlIHRoZSBzYW1l
IHR5cGUuICBUaGUgdmFsdWUgaXQgcmV0dXJucyBpcyBub3QgaW50ZXJlc3RpbmcuCiAvLwogLy8g
SW5zdGVhZCBvZiBtYWtpbmcgU3RhdGljQXNzZXJ0VHlwZUVxIGEgY2xhc3MgdGVtcGxhdGUsIHdl
IG1ha2UgaXQgYQogLy8gZnVuY3Rpb24gdGVtcGxhdGUgdGhhdCBpbnZva2VzIGEgaGVscGVyIGNs
YXNzIHRlbXBsYXRlLiAgVGhpcwpAQCAtMjI0NywxOCArMjI5NCwxOCBAQCBjbGFzcyBHVEVTVF9B
UElfIFNjb3BlZFRyYWNlIHsKIC8vCiAvLyB0byBjYXVzZSBhIGNvbXBpbGVyIGVycm9yLgogdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLWJvb2wgU3RhdGljQXNzZXJ0VHlwZUVx
KCkgewotICAodm9pZClpbnRlcm5hbDo6U3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPFQxLCBUMj4o
KTsKK2NvbnN0ZXhwciBib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIG5vZXhjZXB0IHsKKyAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8VDEsIFQyPjo6dmFsdWUsICJUMSBhbmQgVDIgYXJlIG5v
dCB0aGUgc2FtZSB0eXBlIik7CiAgIHJldHVybiB0cnVlOwogfQogCiAvLyBEZWZpbmVzIGEgdGVz
dC4KIC8vCi0vLyBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNh
c2UsIGFuZCB0aGUgc2Vjb25kCi0vLyBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Qg
d2l0aGluIHRoZSB0ZXN0IGNhc2UuCisvLyBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1l
IG9mIHRoZSB0ZXN0IHN1aXRlLCBhbmQgdGhlIHNlY29uZAorLy8gcGFyYW1ldGVyIGlzIHRoZSBu
YW1lIG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgdGVzdCBzdWl0ZS4KIC8vCi0vLyBUaGUgY29udmVu
dGlvbiBpcyB0byBlbmQgdGhlIHRlc3QgY2FzZSBuYW1lIHdpdGggIlRlc3QiLiAgRm9yCi0vLyBl
eGFtcGxlLCBhIHRlc3QgY2FzZSBmb3IgdGhlIEZvbyBjbGFzcyBjYW4gYmUgbmFtZWQgRm9vVGVz
dC4KKy8vIFRoZSBjb252ZW50aW9uIGlzIHRvIGVuZCB0aGUgdGVzdCBzdWl0ZSBuYW1lIHdpdGgg
IlRlc3QiLiAgRm9yCisvLyBleGFtcGxlLCBhIHRlc3Qgc3VpdGUgZm9yIHRoZSBGb28gY2xhc3Mg
Y2FuIGJlIG5hbWVkIEZvb1Rlc3QuCiAvLwogLy8gVGVzdCBjb2RlIHNob3VsZCBhcHBlYXIgYmV0
d2VlbiBicmFjZXMgYWZ0ZXIgYW4gaW52b2NhdGlvbiBvZgogLy8gdGhpcyBtYWNyby4gIEV4YW1w
bGU6CkBAIC0yMjc3LDI4ICsyMzI0LDI4IEBAIGJvb2wgU3RhdGljQXNzZXJ0VHlwZUVxKCkgewog
Ly8gY29kZS4gIEdldFRlc3RUeXBlSWQoKSBpcyBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4g
dGhlIHNhbWUKIC8vIHZhbHVlLCBhcyBpdCBhbHdheXMgY2FsbHMgR2V0VHlwZUlkPD4oKSBmcm9t
IHRoZSBHb29nbGUgVGVzdAogLy8gZnJhbWV3b3JrLgotI2RlZmluZSBHVEVTVF9URVNUKHRlc3Rf
Y2FzZV9uYW1lLCB0ZXN0X25hbWUpXAotICBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFtZSwgdGVz
dF9uYW1lLCBcCi0gICAgICAgICAgICAgIDo6dGVzdGluZzo6VGVzdCwgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6R2V0VGVzdFR5cGVJZCgpKQorI2RlZmluZSBHVEVTVF9URVNUKHRlc3Rfc3VpdGVfbmFt
ZSwgdGVzdF9uYW1lKSAgICAgICAgICAgICBcCisgIEdURVNUX1RFU1RfKHRlc3Rfc3VpdGVfbmFt
ZSwgdGVzdF9uYW1lLCA6OnRlc3Rpbmc6OlRlc3QsIFwKKyAgICAgICAgICAgICAgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6R2V0VGVzdFR5cGVJZCgpKQogCiAvLyBEZWZpbmUgdGhpcyBtYWNybyB0byAx
IHRvIG9taXQgdGhlIGRlZmluaXRpb24gb2YgVEVTVCgpLCB3aGljaAogLy8gaXMgYSBnZW5lcmlj
IG5hbWUgYW5kIGNsYXNoZXMgd2l0aCBzb21lIG90aGVyIGxpYnJhcmllcy4KICNpZiAhR1RFU1Rf
RE9OVF9ERUZJTkVfVEVTVAotIyBkZWZpbmUgVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
KSBHVEVTVF9URVNUKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpCisjZGVmaW5lIFRFU1QodGVz
dF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpIEdURVNUX1RFU1QodGVzdF9zdWl0ZV9uYW1lLCB0ZXN0
X25hbWUpCiAjZW5kaWYKIAogLy8gRGVmaW5lcyBhIHRlc3QgdGhhdCB1c2VzIGEgdGVzdCBmaXh0
dXJlLgogLy8KIC8vIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlc3Qg
Zml4dHVyZSBjbGFzcywgd2hpY2gKLS8vIGFsc28gZG91YmxlcyBhcyB0aGUgdGVzdCBjYXNlIG5h
bWUuICBUaGUgc2Vjb25kIHBhcmFtZXRlciBpcyB0aGUKLS8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0
aGluIHRoZSB0ZXN0IGNhc2UuCisvLyBhbHNvIGRvdWJsZXMgYXMgdGhlIHRlc3Qgc3VpdGUgbmFt
ZS4gIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIHRoZQorLy8gbmFtZSBvZiB0aGUgdGVzdCB3aXRo
aW4gdGhlIHRlc3Qgc3VpdGUuCiAvLwogLy8gQSB0ZXN0IGZpeHR1cmUgY2xhc3MgbXVzdCBiZSBk
ZWNsYXJlZCBlYXJsaWVyLiAgVGhlIHVzZXIgc2hvdWxkIHB1dAogLy8gdGhlIHRlc3QgY29kZSBi
ZXR3ZWVuIGJyYWNlcyBhZnRlciB1c2luZyB0aGlzIG1hY3JvLiAgRXhhbXBsZToKIC8vCiAvLyAg
IGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAvLyAgICBwcm90ZWN0ZWQ6
Ci0vLyAgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgeyBiXy5BZGRFbGVtZW50KDMpOyB9CisvLyAg
ICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgYl8uQWRkRWxlbWVudCgzKTsgfQogLy8KIC8vICAg
ICBGb28gYV87CiAvLyAgICAgRm9vIGJfOwpAQCAtMjMxMiwxMCArMjM1OSwxMyBAQCBib29sIFN0
YXRpY0Fzc2VydFR5cGVFcSgpIHsKIC8vICAgICBFWFBFQ1RfRVEoYV8uc2l6ZSgpLCAwKTsKIC8v
ICAgICBFWFBFQ1RfRVEoYl8uc2l6ZSgpLCAxKTsKIC8vICAgfQotCisvLworLy8gR09PR0xFVEVT
VF9DTTAwMTEgRE8gTk9UIERFTEVURQorI2lmICFHVEVTVF9ET05UX0RFRklORV9URVNUCiAjZGVm
aW5lIFRFU1RfRih0ZXN0X2ZpeHR1cmUsIHRlc3RfbmFtZSlcCiAgIEdURVNUX1RFU1RfKHRlc3Rf
Zml4dHVyZSwgdGVzdF9uYW1lLCB0ZXN0X2ZpeHR1cmUsIFwKICAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6R2V0VHlwZUlkPHRlc3RfZml4dHVyZT4oKSkKKyNlbmRpZiAgLy8gIUdU
RVNUX0RPTlRfREVGSU5FX1RFU1QKIAogLy8gUmV0dXJucyBhIHBhdGggdG8gdGVtcG9yYXJ5IGRp
cmVjdG9yeS4KIC8vIFRyaWVzIHRvIGRldGVybWluZSBhbiBhcHByb3ByaWF0ZSBkaXJlY3Rvcnkg
Zm9yIHRoZSBwbGF0Zm9ybS4KQEAgLTIzMjUsNiArMjM3NSw4NiBAQCBHVEVTVF9BUElfIHN0ZDo6
c3RyaW5nIFRlbXBEaXIoKTsKICMgIHByYWdtYSB3YXJuaW5nKHBvcCkKICNlbmRpZgogCisvLyBE
eW5hbWljYWxseSByZWdpc3RlcnMgYSB0ZXN0IHdpdGggdGhlIGZyYW1ld29yay4KKy8vCisvLyBU
aGlzIGlzIGFuIGFkdmFuY2VkIEFQSSBvbmx5IHRvIGJlIHVzZWQgd2hlbiB0aGUgYFRFU1RgIG1h
Y3JvcyBhcmUKKy8vIGluc3VmZmljaWVudC4gVGhlIG1hY3JvcyBzaG91bGQgYmUgcHJlZmVycmVk
IHdoZW4gcG9zc2libGUsIGFzIHRoZXkgYXZvaWQKKy8vIG1vc3Qgb2YgdGhlIGNvbXBsZXhpdHkg
b2YgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorLy8KKy8vIFRoZSBgZmFjdG9yeWAgYXJndW1lbnQg
aXMgYSBmYWN0b3J5IGNhbGxhYmxlIChtb3ZlLWNvbnN0cnVjdGlibGUpIG9iamVjdCBvcgorLy8g
ZnVuY3Rpb24gcG9pbnRlciB0aGF0IGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRlc3Qg
b2JqZWN0LiBJdAorLy8gaGFuZGxlcyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlci4gVGhlIHNpZ25h
dHVyZSBvZiB0aGUgY2FsbGFibGUgaXMKKy8vIGBGaXh0dXJlKigpYCwgd2hlcmUgYEZpeHR1cmVg
IGlzIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MgZm9yIHRoZSB0ZXN0LiBBbGwKKy8vIHRlc3RzIHJl
Z2lzdGVyZWQgd2l0aCB0aGUgc2FtZSBgdGVzdF9zdWl0ZV9uYW1lYCBtdXN0IHJldHVybiB0aGUg
c2FtZQorLy8gZml4dHVyZSB0eXBlLiBUaGlzIGlzIGNoZWNrZWQgYXQgcnVudGltZS4KKy8vCisv
LyBUaGUgZnJhbWV3b3JrIHdpbGwgaW5mZXIgdGhlIGZpeHR1cmUgY2xhc3MgZnJvbSB0aGUgZmFj
dG9yeSBhbmQgd2lsbCBjYWxsCisvLyB0aGUgYFNldFVwVGVzdFN1aXRlYCBhbmQgYFRlYXJEb3du
VGVzdFN1aXRlYCBmb3IgaXQuCisvLworLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGBSVU5fQUxM
X1RFU1RTKClgIGlzIGludm9rZWQsIG90aGVyd2lzZSBiZWhhdmlvciBpcworLy8gdW5kZWZpbmVk
LgorLy8KKy8vIFVzZSBjYXNlIGV4YW1wbGU6CisvLworLy8gY2xhc3MgTXlGaXh0dXJlIDogcHVi
bGljIDo6dGVzdGluZzo6VGVzdCB7CisvLyAgcHVibGljOgorLy8gICAvLyBBbGwgb2YgdGhlc2Ug
b3B0aW9uYWwsIGp1c3QgbGlrZSBpbiByZWd1bGFyIG1hY3JvIHVzYWdlLgorLy8gICBzdGF0aWMg
dm9pZCBTZXRVcFRlc3RTdWl0ZSgpIHsgLi4uIH0KKy8vICAgc3RhdGljIHZvaWQgVGVhckRvd25U
ZXN0U3VpdGUoKSB7IC4uLiB9CisvLyAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IC4uLiB9Cisv
LyAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IC4uLiB9CisvLyB9OworLy8KKy8vIGNsYXNz
IE15VGVzdCA6IHB1YmxpYyBNeUZpeHR1cmUgeworLy8gIHB1YmxpYzoKKy8vICAgZXhwbGljaXQg
TXlUZXN0KGludCBkYXRhKSA6IGRhdGFfKGRhdGEpIHt9CisvLyAgIHZvaWQgVGVzdEJvZHkoKSBv
dmVycmlkZSB7IC4uLiB9CisvLworLy8gIHByaXZhdGU6CisvLyAgIGludCBkYXRhXzsKKy8vIH07
CisvLworLy8gdm9pZCBSZWdpc3Rlck15VGVzdHMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgdmFs
dWVzKSB7CisvLyAgIGZvciAoaW50IHYgOiB2YWx1ZXMpIHsKKy8vICAgICA6OnRlc3Rpbmc6OlJl
Z2lzdGVyVGVzdCgKKy8vICAgICAgICAgIk15Rml4dHVyZSIsICgiVGVzdCIgKyBzdGQ6OnRvX3N0
cmluZyh2KSkuY19zdHIoKSwgbnVsbHB0ciwKKy8vICAgICAgICAgc3RkOjp0b19zdHJpbmcodiku
Y19zdHIoKSwKKy8vICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLAorLy8gICAgICAgICAvLyBJ
bXBvcnRhbnQgdG8gdXNlIHRoZSBmaXh0dXJlIHR5cGUgYXMgdGhlIHJldHVybiB0eXBlIGhlcmUu
CisvLyAgICAgICAgIFs9XSgpIC0+IE15Rml4dHVyZSogeyByZXR1cm4gbmV3IE15VGVzdCh2KTsg
fSk7CisvLyAgIH0KKy8vIH0KKy8vIC4uLgorLy8gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KSB7CisvLyAgIHN0ZDo6dmVjdG9yPGludD4gdmFsdWVzX3RvX3Rlc3QgPSBMb2FkVmFsdWVz
RnJvbUNvbmZpZygpOworLy8gICBSZWdpc3Rlck15VGVzdHModmFsdWVzX3RvX3Rlc3QpOworLy8g
ICAuLi4KKy8vICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKKy8vIH0KKy8vCit0ZW1wbGF0ZSA8
aW50Ji4uLiBFeHBsaWNpdFBhcmFtZXRlckJhcnJpZXIsIHR5cGVuYW1lIEZhY3Rvcnk+CitUZXN0
SW5mbyogUmVnaXN0ZXJUZXN0KGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hh
ciogdGVzdF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX3Bh
cmFtLCBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZmlsZSwgaW50IGxpbmUsIEZhY3RvcnkgZmFjdG9yeSkgeworICB1c2luZyBUZXN0
VCA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZGVjbHR5cGUoZmFjdG9yeSgpKT46OnR5
cGU7CisKKyAgY2xhc3MgRmFjdG9yeUltcGwgOiBwdWJsaWMgaW50ZXJuYWw6OlRlc3RGYWN0b3J5
QmFzZSB7CisgICBwdWJsaWM6CisgICAgZXhwbGljaXQgRmFjdG9yeUltcGwoRmFjdG9yeSBmKSA6
IGZhY3RvcnlfKHN0ZDo6bW92ZShmKSkge30KKyAgICBUZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFjdG9yeV8oKTsgfQorCisgICBwcml2YXRlOgorICAgIEZhY3RvcnkgZmFj
dG9yeV87CisgIH07CisKKyAgcmV0dXJuIGludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5m
bygKKyAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9w
YXJhbSwKKyAgICAgIGludGVybmFsOjpDb2RlTG9jYXRpb24oZmlsZSwgbGluZSksIGludGVybmFs
OjpHZXRUeXBlSWQ8VGVzdFQ+KCksCisgICAgICBpbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZlcjxU
ZXN0VD46OkdldFNldFVwQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICBpbnRlcm5hbDo6
U3VpdGVBcGlSZXNvbHZlcjxUZXN0VD46OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoZmlsZSwgbGlu
ZSksCisgICAgICBuZXcgRmFjdG9yeUltcGx7c3RkOjptb3ZlKGZhY3RvcnkpfSk7Cit9CisKIH0g
IC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKIC8vIFVzZSB0aGlzIGZ1bmN0aW9uIGluIG1haW4oKSB0
byBydW4gYWxsIHRlc3RzLiAgSXQgcmV0dXJucyAwIGlmIGFsbApAQCAtMjM0Myw0ICsyNDczLDQg
QEAgaW5saW5lIGludCBSVU5fQUxMX1RFU1RTKCkgewogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJO
SU5HU19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9H
VEVTVF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJl
ZF9pbXBsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3By
ZWRfaW1wbC5oCmluZGV4IDBjMTEwNWNiOGViMmVmN2MyNjE2ZTY3ZmY1NTU2YWFiMjlmZjJkMWQu
LjUwMjlhOWJiMDJhZGE3NDBmOWVlM2VlZTZhNTI4MWQ2ZTk1OTNhZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwu
aApAQCAtMjcsMTUgKzI3LDE0IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
LS8vIFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8wMi8yMDE4IGJ5
IGNvbW1hbmQKKy8vIFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBvbiAwMS8w
Mi8yMDE5IGJ5IGNvbW1hbmQKIC8vICdnZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5IDUnLiAgRE8gTk9U
IEVESVQgQlkgSEFORCEKIC8vCiAvLyBJbXBsZW1lbnRzIGEgZmFtaWx5IG9mIGdlbmVyaWMgcHJl
ZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCi0KIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBE
RUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwot
I2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXworI2lmbmRlZiBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KIAogI2luY2x1ZGUgImd0ZXN0
L2d0ZXN0LmgiCiAKQEAgLTY3LDYgKzY2LDggQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogLy8gV2Ug
YWxzbyBkZWZpbmUgdGhlIEVYUEVDVF8qIHZhcmlhdGlvbnMuCiAvLwogLy8gRm9yIG5vdyB3ZSBv
bmx5IHN1cHBvcnQgcHJlZGljYXRlcyB3aG9zZSBhcml0eSBpcyBhdCBtb3N0IDUuCisvLyBQbGVh
c2UgZW1haWwgZ29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVk
CisvLyBzdXBwb3J0IGZvciBoaWdoZXIgYXJpdGllcy4KIAogLy8gR1RFU1RfQVNTRVJUXyBpcyB0
aGUgYmFzaWMgc3RhdGVtZW50IHRvIHdoaWNoIGFsbCBvZiB0aGUgYXNzZXJ0aW9ucwogLy8gaW4g
dGhpcyBmaWxlIHJlZHVjZS4gIERvbid0IHVzZSB0aGlzIGluIHlvdXIgY29kZS4KQEAgLTg5LDkg
KzkwLDEwIEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkMUhlbHBlcihjb25zdCBjaGFyKiBw
cmVkX3RleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVDEmIHYx
KSB7CiAgIGlmIChwcmVkKHYxKSkgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1
cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCBlMSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8g
IiA8PCB2MTsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90
ZXh0IDw8ICIoIiA8PCBlMSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAg
ICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rp
bmc6OlByaW50VG9TdHJpbmcodjEpOwogfQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVt
ZW50aW5nIHtFWFBFQ1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDEuCkBAIC0xMzMsMTEgKzEzNSwxMiBA
QCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0UHJlZDJIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQyJiB2MikgewogICBp
ZiAocHJlZCh2MSwgdjIpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBB
c3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBl
MiA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2
MjsKKyAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8
ICIoIiA8PCBlMSA8PCAiLCAiIDw8IGUyCisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFs
c2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0
ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAg
IDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYy
KTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VS
VH1fUFJFRF9GT1JNQVQyLgpAQCAtMTg0LDEzICsxODcsMTMgQEAgQXNzZXJ0aW9uUmVzdWx0IEFz
c2VydFByZWQzSGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUMyYgdjMpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2Mykp
IHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7CiAKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUo
KSA8PCBwcmVkX3RleHQgPDwgIigiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEg
PDwgIiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUyIDw8ICIsICIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8PCBlMyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdo
ZXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8ICJcbiIgPDwgZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MzsKKyAgcmV0dXJuIEFzc2Vy
dGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAi
IDw8IGUyIDw8ICIsICIgPDwgZTMKKyAgICAgICAgIDw8ICIpIGV2YWx1YXRlcyB0byBmYWxzZSwg
d2hlcmUiCisgICAgICAgICA8PCAiXG4iCisgICAgICAgICA8PCBlMSA8PCAiIGV2YWx1YXRlcyB0
byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MSkgPDwgIlxuIgorICAgICAgICAgPDwg
ZTIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjIpIDw8
ICJcbiIKKyAgICAgICAgIDw8IGUzIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQ
cmludFRvU3RyaW5nKHYzKTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGlu
ZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQzLgpAQCAtMjQyLDE1ICsyNDUsMTQgQEAgQXNz
ZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQ0SGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUNCYgdjQpIHsKICAgaWYgKHBy
ZWQodjEsIHYyLCB2MywgdjQpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVy
biBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBlMiA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGU0IDw8ICIpIGV2YWx1YXRlcyB0byBmYWxz
ZSwgd2hlcmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlMSA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHYxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlxu
IiA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYyCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPDwgIlxuIiA8PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHYzCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgIlxuIiA8PCBlNCA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHY0
OworICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICA8PCBwcmVkX3RleHQgPDwg
IigiIDw8IGUxIDw8ICIsICIgPDwgZTIgPDwgIiwgIiA8PCBlMyA8PCAiLCAiIDw8IGU0CisgICAg
ICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwgIlxuIgor
ICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwg
Ojp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBlMyA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2MykgPDwgIlxuIgor
ICAgICAgICAgPDwgZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmcodjQpOwogfQogCiAvLyBJbnRlcm5hbCBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHtFWFBF
Q1R8QVNTRVJUfV9QUkVEX0ZPUk1BVDQuCkBAIC0zMDcsMTcgKzMwOSwxNSBAQCBBc3NlcnRpb25S
ZXN1bHQgQXNzZXJ0UHJlZDVIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQ1JiB2NSkgewogICBpZiAocHJlZCh2MSwg
djIsIHYzLCB2NCwgdjUpKSByZXR1cm4gQXNzZXJ0aW9uU3VjY2VzcygpOwogCi0gIHJldHVybiBB
c3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIoIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBl
MiA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTMgPDwgIiwgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGU0IDw8ICIsICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCBlNSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8
PCB2MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwg
ZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw8ICJcbiIgPDwgZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTUgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NTsKKyAg
cmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8
PCBlMSA8PCAiLCAiIDw8IGUyIDw8ICIsICIgPDwgZTMgPDwgIiwgIiA8PCBlNAorICAgICAgICAg
PDwgIiwgIiA8PCBlNSA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAg
PDwgIlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6
OlByaW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVz
IHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8
PCBlMyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2Mykg
PDwgIlxuIgorICAgICAgICAgPDwgZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6
OlByaW50VG9TdHJpbmcodjQpIDw8ICJcbiIKKyAgICAgICAgIDw8IGU1IDw8ICIgZXZhbHVhdGVz
IHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHY1KTsKIH0KIAogLy8gSW50ZXJuYWwg
bWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JNQVQ1LgpAQCAt
MzU2LDQgKzM1Niw0IEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkNUhlbHBlcihjb25zdCBj
aGFyKiBwcmVkX3RleHQsCiAKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8g
R1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KKyNlbmRpZiAgLy8gR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BSRURfSU1QTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9kLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAppbmRleCBlNjUxNjcxZWJk
ZTg1OWZjNzMxYjU0NTliZGMwNjYxYWYwNzU3Y2I2Li4zOGI5ZDg1YTUxZWZiNzQ3ZmViOTY5YTVj
ZGNhZGIxYzI3YjJmODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaApAQCAtMzEsOCArMzEsOCBAQAogLy8gR29vZ2xlIEMrKyBU
ZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yayBkZWZpbml0aW9ucyB1c2VmdWwgaW4gcHJvZHVj
dGlvbiBjb2RlLgogLy8gR09PR0xFVEVTVF9DTTAwMDMgRE8gTk9UIERFTEVURQogCi0jaWZuZGVm
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJPRF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX1BST0RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dU
RVNUX1BST0RfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0Rf
SF8KIAogLy8gV2hlbiB5b3UgbmVlZCB0byB0ZXN0IHRoZSBwcml2YXRlIG9yIHByb3RlY3RlZCBt
ZW1iZXJzIG9mIGEgY2xhc3MsCiAvLyB1c2UgdGhlIEZSSUVORF9URVNUIG1hY3JvIHRvIGRlY2xh
cmUgeW91ciB0ZXN0cyBhcyBmcmllbmRzIG9mIHRoZQpAQCAtNTgsNCArNTgsNCBAQAogI2RlZmlu
ZSBGUklFTkRfVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKVwKIGZyaWVuZCBjbGFzcyB0
ZXN0X2Nhc2VfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAogCi0jZW5kaWYgIC8vIEdURVNUX0lO
Q0xVREVfR1RFU1RfR1RFU1RfUFJPRF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVf
R1RFU1RfR1RFU1RfUFJPRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCmlu
ZGV4IGNkODVkOTU2ZDJkYzE3YmQ1MzdmMjE0MjM0MGJkZjU4ZjQ3MzcxMTguLmRiMDI4ODFjMGM4
OTlhNzRmMDc5ODU5ODBhZmEyZTZlOThjNjg4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9n
dGVzdC1wb3J0LmgKQEAgLTMxLDcgKzMxLDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50
YXRpb24gc3RhcnRzIGhlcmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVS
TkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfQ1VTVE9NX0dURVNUX1BPUlRfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUE9SVF9IXwogCi0jZW5kaWYgIC8vIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BPUlRfSF8KKyNlbmRpZiAg
Ly8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaAppbmRleCBlYjQ0Njdh
YmNhYmVhN2ZmNzZmOWQyZDUyNzM4N2M5ZGE4MTAxNDhiLi5iOTQ5NWQ4Mzc4M2JjZGUwNTBmNWZk
YzE3NzAzNmFhNDg4MGIzZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBy
aW50ZXJzLmgKQEAgLTM2LDcgKzM2LDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRp
b24gc3RhcnRzIGhlcmUgKioKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX1BSSU5URVJTX0hfCisjZGVmaW5lIEdPT0dM
RVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KIAot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklO
VEVSU19IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VT
VE9NX0dURVNUX1BSSU5URVJTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaAppbmRleCA0Yzhl
MDdiZTIzZjFmZDYxNTlhZmVmMmVlZmQ3NDQ0MDM0ZGQwNjA0Li5hZmFhZjE3YmEyOGUzYmViNzkw
YTEyNjM4Y2ZmZWM4ZGJhNTY5OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgKQEAgLTMx
LDcgKzMxLDcgQEAKIC8vCiAvLyAqKiBDdXN0b20gaW1wbGVtZW50YXRpb24gc3RhcnRzIGhlcmUg
KioKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXwor
I2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hf
CisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1Rf
SF8KIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVT
VF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9N
X0dURVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5h
bC5oCmluZGV4IDBhOWI0MmM4YTU3MmE4NzE5NGM2NTEwOTAzZTIxZWEyMjYwZmFjNWMuLjQ5MDI5
NmRmYWQyZDAwYzQ4MTFlYjQ5MTI2YWIyNjU2OTYxYzc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1p
bnRlcm5hbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTQgQEAKIC8v
IGRlYXRoIHRlc3RzLiAgVGhleSBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2Uu
CiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5l
IEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9I
XworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhf
VEVTVF9JTlRFUk5BTF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXwogCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qt
bWF0Y2hlcnMuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgog
CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSB0ZXN0
aW5nIHsKIG5hbWVzcGFjZSBpbnRlcm5hbCB7CkBAIC03OCw3ICs4MCw3IEBAIGNsYXNzIEdURVNU
X0FQSV8gRGVhdGhUZXN0IHsKICAgLy8gYXJndW1lbnQgaXMgc2V0LiAgSWYgdGhlIGRlYXRoIHRl
c3Qgc2hvdWxkIGJlIHNraXBwZWQsIHRoZSBwb2ludGVyCiAgIC8vIGlzIHNldCB0byBOVUxMOyBv
dGhlcndpc2UsIGl0IGlzIHNldCB0byB0aGUgYWRkcmVzcyBvZiBhIG5ldyBjb25jcmV0ZQogICAv
LyBEZWF0aFRlc3Qgb2JqZWN0IHRoYXQgY29udHJvbHMgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY3Vy
cmVudCB0ZXN0LgotICBzdGF0aWMgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBj
b25zdCBSRSogcmVnZXgsCisgIHN0YXRpYyBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1l
bnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLAogICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwogICBE
ZWF0aFRlc3QoKTsKICAgdmlydHVhbCB+RGVhdGhUZXN0KCkgeyB9CkBAIC0xNDQsMjEgKzE0Niw0
NCBAQCBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiBjbGFzcyBE
ZWF0aFRlc3RGYWN0b3J5IHsKICBwdWJsaWM6CiAgIHZpcnR1YWwgfkRlYXRoVGVzdEZhY3Rvcnko
KSB7IH0KLSAgdmlydHVhbCBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0
IFJFKiByZWdleCwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQg
bGluZSwgRGVhdGhUZXN0KiogdGVzdCkgPSAwOworICB2aXJ0dWFsIGJvb2wgQ3JlYXRlKGNvbnN0
IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0
ZDo6c3RyaW5nJj4gbWF0Y2hlciwgY29uc3QgY2hhciogZmlsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkgPSAwOwogfTsKIAogLy8gQSBjb25jcmV0
ZSBEZWF0aFRlc3RGYWN0b3J5IGltcGxlbWVudGF0aW9uIGZvciBub3JtYWwgdXNlLgogY2xhc3Mg
RGVmYXVsdERlYXRoVGVzdEZhY3RvcnkgOiBwdWJsaWMgRGVhdGhUZXN0RmFjdG9yeSB7CiAgcHVi
bGljOgotICB2aXJ0dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3Qg
UkUqIHJlZ2V4LAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBs
aW5lLCBEZWF0aFRlc3QqKiB0ZXN0KTsKKyAgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVt
ZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAg
Y29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpIG92ZXJyaWRlOwog
fTsKIAogLy8gUmV0dXJucyB0cnVlIGlmIGV4aXRfc3RhdHVzIGRlc2NyaWJlcyBhIHByb2Nlc3Mg
dGhhdCB3YXMgdGVybWluYXRlZAogLy8gYnkgYSBzaWduYWwsIG9yIGV4aXRlZCBub3JtYWxseSB3
aXRoIGEgbm9uemVybyBleGl0IGNvZGUuCiBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNjZXNz
ZnVsbHkoaW50IGV4aXRfc3RhdHVzKTsKIAorLy8gQSBzdHJpbmcgcGFzc2VkIHRvIEVYUEVDVF9E
RUFUSCAoZXRjLikgaXMgY2F1Z2h0IGJ5IG9uZSBvZiB0aGVzZSBvdmVybG9hZHMKKy8vIGFuZCBp
bnRlcnByZXRlZCBhcyBhIHJlZ2V4IChyYXRoZXIgdGhhbiBhbiBFcSBtYXRjaGVyKSBmb3IgbGVn
YWN5CisvLyBjb21wYXRpYmlsaXR5LgoraW5saW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6OnN0cmlu
ZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKAorICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFIHJl
Z2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4KHJlZ2V4LnBhdHRlcm4oKSk7Cit9Citpbmxp
bmUgTWF0Y2hlcjxjb25zdCA6OnN0ZDo6c3RyaW5nJj4gTWFrZURlYXRoVGVzdE1hdGNoZXIoY29u
c3QgY2hhciogcmVnZXgpIHsKKyAgcmV0dXJuIENvbnRhaW5zUmVnZXgocmVnZXgpOworfQoraW5s
aW5lIE1hdGNoZXI8Y29uc3QgOjpzdGQ6OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKAor
ICAgIGNvbnN0IDo6c3RkOjpzdHJpbmcmIHJlZ2V4KSB7CisgIHJldHVybiBDb250YWluc1JlZ2V4
KHJlZ2V4KTsKK30KKworLy8gSWYgYSBNYXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBpcyBw
YXNzZWQgdG8gRVhQRUNUX0RFQVRIIChldGMuKSwgaXQncworLy8gdXNlZCBkaXJlY3RseS4KK2lu
bGluZSBNYXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0Y2hlcigK
KyAgICBNYXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBtYXRjaGVyKSB7CisgIHJldHVybiBt
YXRjaGVyOworfQorCiAvLyBUcmFwcyBDKysgZXhjZXB0aW9ucyBlc2NhcGluZyBzdGF0ZW1lbnQg
YW5kIHJlcG9ydHMgdGhlbSBhcyB0ZXN0CiAvLyBmYWlsdXJlcy4gTm90ZSB0aGF0IHRyYXBwaW5n
IFNFSCBleGNlcHRpb25zIGlzIG5vdCBpbXBsZW1lbnRlZCBoZXJlLgogIyBpZiBHVEVTVF9IQVNf
RVhDRVBUSU9OUwpAQCAtMTg2LDM4ICsyMTEsMzggQEAgR1RFU1RfQVBJXyBib29sIEV4aXRlZFVu
c3VjY2Vzc2Z1bGx5KGludCBleGl0X3N0YXR1cyk7CiAKIC8vIFRoaXMgbWFjcm8gaXMgZm9yIGlt
cGxlbWVudGluZyBBU1NFUlRfREVBVEgqLCBFWFBFQ1RfREVBVEgqLAogLy8gQVNTRVJUX0VYSVQq
LCBhbmQgRVhQRUNUX0VYSVQqLgotIyBkZWZpbmUgR1RFU1RfREVBVEhfVEVTVF8oc3RhdGVtZW50
LCBwcmVkaWNhdGUsIHJlZ2V4LCBmYWlsKSBcCi0gIEdURVNUX0FNQklHVU9VU19FTFNFX0JMT0NL
RVJfIFwKLSAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyBcCi0gICAg
Y29uc3QgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UkUmIGd0ZXN0X3JlZ2V4ID0gKHJlZ2V4KTsgXAot
ICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdCogZ3Rlc3RfZHQ7IFwKLSAgICBpZiAo
ITo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6Q3JlYXRlKCNzdGF0ZW1lbnQsICZndGVz
dF9yZWdleCwgXAotICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICZndGVzdF9kdCkpIHsgXAot
ICAgICAgZ290byBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsXywgX19MSU5FX18pOyBc
Ci0gICAgfSBcCi0gICAgaWYgKGd0ZXN0X2R0ICE9IE5VTEwpIHsgXAotICAgICAgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6c2NvcGVkX3B0cjwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0PiBc
Ci0gICAgICAgICAgZ3Rlc3RfZHRfcHRyKGd0ZXN0X2R0KTsgXAotICAgICAgc3dpdGNoIChndGVz
dF9kdC0+QXNzdW1lUm9sZSgpKSB7IFwKLSAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFs
OjpEZWF0aFRlc3Q6Ok9WRVJTRUVfVEVTVDogXAotICAgICAgICAgIGlmICghZ3Rlc3RfZHQtPlBh
c3NlZChwcmVkaWNhdGUoZ3Rlc3RfZHQtPldhaXQoKSkpKSB7IFwKLSAgICAgICAgICAgIGdvdG8g
R1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTsgXAotICAgICAgICAg
IH0gXAotICAgICAgICAgIGJyZWFrOyBcCi0gICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6RGVhdGhUZXN0OjpFWEVDVVRFX1RFU1Q6IHsgXAotICAgICAgICAgIDo6dGVzdGluZzo6aW50
ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJuU2VudGluZWwgXAotICAgICAgICAgICAgICBndGVzdF9z
ZW50aW5lbChndGVzdF9kdCk7IFwKLSAgICAgICAgICBHVEVTVF9FWEVDVVRFX0RFQVRIX1RFU1Rf
U1RBVEVNRU5UXyhzdGF0ZW1lbnQsIGd0ZXN0X2R0KTsgXAotICAgICAgICAgIGd0ZXN0X2R0LT5B
Ym9ydCg6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyBc
Ci0gICAgICAgICAgYnJlYWs7IFwKLSAgICAgICAgfSBcCi0gICAgICAgIGRlZmF1bHQ6IFwKLSAg
ICAgICAgICBicmVhazsgXAotICAgICAgfSBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RF
U1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTogXAotICAgICAgZmFpbCg6
OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6Okxhc3RNZXNzYWdlKCkpCisjZGVmaW5lIEdU
RVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleF9vcl9tYXRjaGVyLCBm
YWlsKSAgICAgICAgXAorICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0KiBndGVzdF9kdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RGVhdGhUZXN0OjpDcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICNzdGF0ZW1lbnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpNYWtlRGVhdGhUZXN0TWF0Y2hlcihyZWdleF9vcl9tYXRjaGVyKSwgICAgICAgXAorICAgICAg
ICAgICAgX19GSUxFX18sIF9fTElORV9fLCAmZ3Rlc3RfZHQpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9s
YWJlbF8sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIGlmIChndGVzdF9kdCAhPSBudWxscHRyKSB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0ZDo6dW5pcXVlX3B0
cjwgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0PiBndGVzdF9kdF9wdHIoZ3Rlc3RfZHQp
OyBcCisgICAgICBzd2l0Y2ggKGd0ZXN0X2R0LT5Bc3N1bWVSb2xlKCkpIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50
ZXJuYWw6OkRlYXRoVGVzdDo6T1ZFUlNFRV9URVNUOiAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICBpZiAoIWd0ZXN0X2R0LT5QYXNzZWQocHJlZGljYXRlKGd0ZXN0X2R0LT5XYWl0KCkp
KSkgeyAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tF
Tl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVfXyk7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNhc2UgOjp0
ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpFWEVDVVRFX1RFU1Q6IHsgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6UmV0dXJu
U2VudGluZWwgZ3Rlc3Rfc2VudGluZWwoICAgICAgIFwKKyAgICAgICAgICAgICAgZ3Rlc3RfZHQp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgICAgR1RFU1RfRVhFQ1VURV9ERUFUSF9URVNUX1NUQVRFTUVOVF8oc3RhdGVtZW50
LCBndGVzdF9kdCk7ICAgICAgICAgICAgXAorICAgICAgICAgIGd0ZXN0X2R0LT5BYm9ydCg6OnRl
c3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6OlRFU1RfRElEX05PVF9ESUUpOyAgIFwKKyAgICAg
ICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkZWZh
dWx0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfSBlbHNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA6IGZhaWwoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6RGVhdGhUZXN0OjpMYXN0TWVzc2FnZSgpKQogLy8gVGhlIHN5bWJvbCAiZmFpbCIgaGVyZSBl
eHBhbmRzIHRvIHNvbWV0aGluZyBpbnRvIHdoaWNoIGEgbWVzc2FnZQogLy8gY2FuIGJlIHN0cmVh
bWVkLgogCkBAIC0yMjYsMTQgKzI1MSwxMyBAQCBHVEVTVF9BUElfIGJvb2wgRXhpdGVkVW5zdWNj
ZXNzZnVsbHkoaW50IGV4aXRfc3RhdHVzKTsKIC8vIG11c3QgYWNjZXB0IGEgc3RyZWFtZWQgbWVz
c2FnZSBldmVuIHRob3VnaCB0aGUgbWVzc2FnZSBpcyBuZXZlciBwcmludGVkLgogLy8gVGhlIHJl
Z2V4IG9iamVjdCBpcyBub3QgZXZhbHVhdGVkLCBidXQgaXQgaXMgdXNlZCB0byBwcmV2ZW50ICJ1
bnVzZWQiCiAvLyB3YXJuaW5ncyBhbmQgdG8gYXZvaWQgYW4gZXhwcmVzc2lvbiB0aGF0IGRvZXNu
J3QgY29tcGlsZSBpbiBkZWJ1ZyBtb2RlLgotI2RlZmluZSBHVEVTVF9FWEVDVVRFX1NUQVRFTUVO
VF8oc3RhdGVtZW50LCByZWdleCkgICAgICAgICAgICAgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxT
RV9CTE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICBpZiAoOjp0ZXN0
aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgXAotICAg
IEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50
KTsgXAotICB9IGVsc2UgaWYgKCE6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsg
ICAgICAgICAgICAgXAotICAgIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFJiBndGVzdF9y
ZWdleCA9IChyZWdleCk7ICAgICAgXAotICAgIHN0YXRpY19jYXN0PHZvaWQ+KGd0ZXN0X3JlZ2V4
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICB9IGVsc2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBHVEVTVF9F
WEVDVVRFX1NUQVRFTUVOVF8oc3RhdGVtZW50LCByZWdleF9vcl9tYXRjaGVyKSAgICBcCisgIEdU
RVNUX0FNQklHVU9VU19FTFNFX0JMT0NLRVJfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FS
TklOR19CRUxPV18oc3RhdGVtZW50KTsgICBcCisgIH0gZWxzZSBpZiAoITo6dGVzdGluZzo6aW50
ZXJuYWw6OkFsd2F5c1RydWUoKSkgeyAgICAgICAgICAgICAgIFwKKyAgICA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpNYWtlRGVhdGhUZXN0TWF0Y2hlcihyZWdleF9vcl9tYXRjaGVyKTsgXAorICB9IGVs
c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgOjp0ZXN0aW5nOjpNZXNzYWdlKCkKIAogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcg
dGhlIHBhcnNlZCBjb250ZW50cyBvZiB0aGUKQEAgLTI3Nyw0ICszMDEsNCBAQCBJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKCk7CiB9ICAvLyBu
YW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8g
R1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFUSF9URVNUX0lOVEVSTkFMX0hf
CisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9ERUFU
SF9URVNUX0lOVEVSTkFMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgKaW5kZXggYWUz
OGQ5NWJmODQ0ZmE5ZGMyMTczOWNmODIxMjc2ZDViMzQxN2UzYS4uNGI1YWEzYjQ0MmRmMzFkNzY2
MmM5Njk2Nzc5YTFlMTg2YWE0Mjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaApA
QCAtMzcsOCArMzcsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAK
LSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXwot
I2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCisj
aWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9I
XworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBB
VEhfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oIgogCkBAIC0x
MTAsNyArMTEwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBGaWxlUGF0aCB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZpbGVQYXRoJiBiYXNlX25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGV4dGVu
c2lvbik7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgcGF0aCBpcyAiIi4KKyAgLy8gUmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBwYXRoIGlzICIiLgogICBib29sIElzRW1wdHko
KSBjb25zdCB7IHJldHVybiBwYXRobmFtZV8uZW1wdHkoKTsgfQogCiAgIC8vIElmIGlucHV0IG5h
bWUgaGFzIGEgdHJhaWxpbmcgc2VwYXJhdG9yIGNoYXJhY3RlciwgcmVtb3ZlcyBpdCBhbmQgcmV0
dXJucwpAQCAtMjA4LDQgKzIwOCw0IEBAIGNsYXNzIEdURVNUX0FQSV8gRmlsZVBhdGggewogCiBH
VEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8g
R1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2VuZGlmICAv
LyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtaW50ZXJuYWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaAppbmRleCBiNzYyZjYxZmM1M2MzZGI5Y2ZiNzUzOTQw
ZDkxYjVkNTRhYjM2MzU3Li5mZjU1N2Q1YTM3YjNhNzEyYWUzOWU0OGY3NGUyNDIzNzU4N2RlNjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LWludGVybmFsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oCkBAIC0zNCw4ICszNCw4IEBACiAKIC8v
IEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0dURVNUX0lOVEVSTkFMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfSU5URVJOQUxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNM
VURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0lOVEVSTkFMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9JTlRFUk5BTF9IXwogCiAjaW5jbHVkZSAiZ3Rl
c3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCkBAIC01MywxMSArNTMsMTMgQEAKICNpbmNsdWRl
IDxjdHlwZS5oPgogI2luY2x1ZGUgPGZsb2F0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5j
bHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxpb21hbmlwPgogI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRl
IDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVz
dC1tZXNzYWdlLmgiCkBAIC03NywxMCArNzksMjAgQEAKICNkZWZpbmUgR1RFU1RfQ09OQ0FUX1RP
S0VOX0lNUExfKGZvbywgYmFyKSBmb28gIyMgYmFyCiAKIC8vIFN0cmluZ2lmaWVzIGl0cyBhcmd1
bWVudC4KLSNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8gV29yayBhcm91
bmQgYSBidWcgaW4gdmlzdWFsIHN0dWRpbyB3aGljaCBkb2Vzbid0IGFjY2VwdCBjb2RlIGxpa2Ug
dGhpczoKKy8vCisvLyAgICNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZXyhuYW1lKSAjbmFtZQorLy8g
ICAjZGVmaW5lIE1BQ1JPKGEsIGIsIGMpIC4uLiBHVEVTVF9TVFJJTkdJRllfKGEpIC4uLgorLy8g
ICBNQUNSTygsIHgsIHkpCisvLworLy8gQ29tcGxhaW5pbmcgYWJvdXQgdGhlIGFyZ3VtZW50IHRv
IEdURVNUX1NUUklOR0lGWV8gYmVpbmcgZW1wdHkuCisvLyBUaGlzIGlzIGFsbG93ZWQgYnkgdGhl
IHNwZWMuCisjZGVmaW5lIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKG5hbWUsIC4uLikgI25hbWUK
KyNkZWZpbmUgR1RFU1RfU1RSSU5HSUZZXyguLi4pIEdURVNUX1NUUklOR0lGWV9IRUxQRVJfKF9f
VkFfQVJHU19fLCApCiAKLWNsYXNzIFByb3RvY29sTWVzc2FnZTsKLW5hbWVzcGFjZSBwcm90bzIg
eyBjbGFzcyBNZXNzYWdlOyB9CituYW1lc3BhY2UgcHJvdG8yIHsKK2NsYXNzIE1lc3NhZ2VMaXRl
OworfQogCiBuYW1lc3BhY2UgdGVzdGluZyB7CiAKQEAgLTkxLDcgKzEwMyw3IEBAIGNsYXNzIE1l
c3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudHMgYSBmYWlsdXJlIG1l
c3NhZ2UuCiBjbGFzcyBUZXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNl
bnRzIGEgdGVzdC4KIGNsYXNzIFRlc3RJbmZvOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElu
Zm9ybWF0aW9uIGFib3V0IGEgdGVzdC4KIGNsYXNzIFRlc3RQYXJ0UmVzdWx0OyAgICAgICAgICAg
ICAgICAgIC8vIFJlc3VsdCBvZiBhIHRlc3QgcGFydC4KLWNsYXNzIFVuaXRUZXN0OyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEEgY29sbGVjdGlvbiBvZiB0ZXN0IGNhc2VzLgorY2xhc3MgVW5p
dFRlc3Q7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBjb2xsZWN0aW9uIG9mIHRlc3Qgc3Vp
dGVzLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIDo6c3RkOjpzdHJpbmcgUHJpbnRUb1N0cmlu
Zyhjb25zdCBUJiB2YWx1ZSk7CkBAIC0xMDYsMzQgKzExOCwyMiBAQCBjbGFzcyBVbml0VGVzdElt
cGw7ICAgICAgICAgICAgICAgICAgICAvLyBPcGFxdWUgaW1wbGVtZW50YXRpb24gb2YgVW5pdFRl
c3QKIC8vIHN0YWNrIHRyYWNlLgogR1RFU1RfQVBJXyBleHRlcm4gY29uc3QgY2hhciBrU3RhY2tU
cmFjZU1hcmtlcltdOwogCi0vLyBUd28gb3ZlcmxvYWRlZCBoZWxwZXJzIGZvciBjaGVja2luZyBh
dCBjb21waWxlIHRpbWUgd2hldGhlciBhbgotLy8gZXhwcmVzc2lvbiBpcyBhIG51bGwgcG9pbnRl
ciBsaXRlcmFsIChpLmUuIE5VTEwgb3IgYW55IDAtdmFsdWVkCi0vLyBjb21waWxlLXRpbWUgaW50
ZWdyYWwgY29uc3RhbnQpLiAgVGhlaXIgcmV0dXJuIHZhbHVlcyBoYXZlCi0vLyBkaWZmZXJlbnQg
c2l6ZXMsIHNvIHdlIGNhbiB1c2Ugc2l6ZW9mKCkgdG8gdGVzdCB3aGljaCB2ZXJzaW9uIGlzCi0v
LyBwaWNrZWQgYnkgdGhlIGNvbXBpbGVyLiAgVGhlc2UgaGVscGVycyBoYXZlIG5vIGltcGxlbWVu
dGF0aW9ucywgYXMKLS8vIHdlIG9ubHkgbmVlZCB0aGVpciBzaWduYXR1cmVzLgotLy8KLS8vIEdp
dmVuIElzTnVsbExpdGVyYWxIZWxwZXIoeCksIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlIGZp
cnN0Ci0vLyB2ZXJzaW9uIGlmIHggY2FuIGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvIFNlY3Jl
dCosIGFuZCBwaWNrIHRoZQotLy8gc2Vjb25kIHZlcnNpb24gb3RoZXJ3aXNlLiAgU2luY2UgU2Vj
cmV0IGlzIGEgc2VjcmV0IGFuZCBpbmNvbXBsZXRlCi0vLyB0eXBlLCB0aGUgb25seSBleHByZXNz
aW9uIGEgdXNlciBjYW4gd3JpdGUgdGhhdCBoYXMgdHlwZSBTZWNyZXQqIGlzCi0vLyBhIG51bGwg
cG9pbnRlciBsaXRlcmFsLiAgVGhlcmVmb3JlLCB3ZSBrbm93IHRoYXQgeCBpcyBhIG51bGwKLS8v
IHBvaW50ZXIgbGl0ZXJhbCBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgdmVyc2lvbiBpcyBwaWNr
ZWQgYnkgdGhlCi0vLyBjb21waWxlci4KLWNoYXIgSXNOdWxsTGl0ZXJhbEhlbHBlcihTZWNyZXQq
IHApOwotY2hhciAoJklzTnVsbExpdGVyYWxIZWxwZXIoLi4uKSlbMl07ICAvLyBOT0xJTlQKLQot
Ly8gQSBjb21waWxlLXRpbWUgYm9vbCBjb25zdGFudCB0aGF0IGlzIHRydWUgaWYgYW5kIG9ubHkg
aWYgeCBpcyBhCi0vLyBudWxsIHBvaW50ZXIgbGl0ZXJhbCAoaS5lLiBOVUxMIG9yIGFueSAwLXZh
bHVlZCBjb21waWxlLXRpbWUKLS8vIGludGVncmFsIGNvbnN0YW50KS4KLSNpZmRlZiBHVEVTVF9F
TExJUFNJU19ORUVEU19QT0RfCi0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0ZWN0aW9u
IHdoZXJlIHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBPRCBjbGFz
c2VzIHRocm91Z2ggZWxsaXBzaXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9JU19OVUxMX0xJVEVS
QUxfKHgpIGZhbHNlCi0jZWxzZQotIyBkZWZpbmUgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBc
Ci0gICAgKHNpemVvZig6OnRlc3Rpbmc6OmludGVybmFsOjpJc051bGxMaXRlcmFsSGVscGVyKHgp
KSA9PSAxKQotI2VuZGlmICAvLyBHVEVTVF9FTExJUFNJU19ORUVEU19QT0RfCisvLyBBbiBJZ25v
cmVkVmFsdWUgb2JqZWN0IGNhbiBiZSBpbXBsaWNpdGx5IGNvbnN0cnVjdGVkIGZyb20gQU5ZIHZh
bHVlLgorY2xhc3MgSWdub3JlZFZhbHVlIHsKKyAgc3RydWN0IFNpbmsge307CisgcHVibGljOgor
ICAvLyBUaGlzIGNvbnN0cnVjdG9yIHRlbXBsYXRlIGFsbG93cyBhbnkgdmFsdWUgdG8gYmUgaW1w
bGljaXRseQorICAvLyBjb252ZXJ0ZWQgdG8gSWdub3JlZFZhbHVlLiAgVGhlIG9iamVjdCBoYXMg
bm8gZGF0YSBtZW1iZXIgYW5kCisgIC8vIGRvZXNuJ3QgdHJ5IHRvIHJlbWVtYmVyIGFueXRoaW5n
IGFib3V0IHRoZSBhcmd1bWVudC4gIFdlCisgIC8vIGRlbGliZXJhdGVseSBvbWl0IHRoZSAnZXhw
bGljaXQnIGtleXdvcmQgaW4gb3JkZXIgdG8gYWxsb3cgdGhlCisgIC8vIGNvbnZlcnNpb24gdG8g
YmUgaW1wbGljaXQuCisgIC8vIERpc2FibGUgdGhlIGNvbnZlcnNpb24gaWYgVCBhbHJlYWR5IGhh
cyBhIG1hZ2ljYWwgY29udmVyc2lvbiBvcGVyYXRvci4KKyAgLy8gT3RoZXJ3aXNlIHdlIGdldCBh
bWJpZ3VpdHkuCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAgICAgICAgICAgdHlwZW5hbWUg
c3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfY29udmVydGlibGU8VCwgU2luaz46OnZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Pjo6dHlwZSA9IDA+CisgIElnbm9y
ZWRWYWx1ZShjb25zdCBUJiAvKiBpZ25vcmVkICovKSB7fSAgLy8gTk9MSU5UKHJ1bnRpbWUvZXhw
bGljaXQpCit9OwogCiAvLyBBcHBlbmRzIHRoZSB1c2VyLXN1cHBsaWVkIG1lc3NhZ2UgdG8gdGhl
IEdvb2dsZS1UZXN0LWdlbmVyYXRlZCBtZXNzYWdlLgogR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBB
cHBlbmRVc2VyTWVzc2FnZSgKQEAgLTIwMSw3ICsyMDEsNyBAQCBHVEVTVF9BUElfIHN0ZDo6c3Ry
aW5nIERpZmZTdHJpbmdzKGNvbnN0IHN0ZDo6c3RyaW5nJiBsZWZ0LAogLy8gICBleHBlY3RlZF92
YWx1ZTogICAgICAiNSIKIC8vICAgYWN0dWFsX3ZhbHVlOiAgICAgICAgIjYiCiAvLwotLy8gVGhl
IGlnbm9yaW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQor
Ly8gVGhlIGlnbm9yaW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IGFzc2VydGlvbiBpcyBhCiAvLyAqX1NUUkNBU0VFUSouICBXaGVuIGl0J3MgdHJ1ZSwgdGhlIHN0
cmluZyAiIChpZ25vcmluZyBjYXNlKSIgd2lsbAogLy8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVz
c2FnZS4KIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBl
eHBlY3RlZF9leHByZXNzaW9uLApAQCAtMjg3LDcgKzI4Nyw3IEBAIGNsYXNzIEZsb2F0aW5nUG9p
bnQgewogICAvLwogICAvLyBTZWUgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZvciBtb3JlIGRldGFp
bHMgb24gVUxQOgogICAvLyBodHRwOi8vcmFuZG9tYXNjaWkud29yZHByZXNzLmNvbS8yMDEyLzAy
LzI1L2NvbXBhcmluZy1mbG9hdGluZy1wb2ludC1udW1iZXJzLTIwMTItZWRpdGlvbi8KLSAgc3Rh
dGljIGNvbnN0IHNpemVfdCBrTWF4VWxwcyA9IDQ7CisgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBr
TWF4VWxwcyA9IDQ7CiAKICAgLy8gQ29uc3RydWN0cyBhIEZsb2F0aW5nUG9pbnQgZnJvbSBhIHJh
dyBmbG9hdGluZy1wb2ludCBudW1iZXIuCiAgIC8vCkBAIC0zMzAsMTUgKzMzMCwxNSBAQCBjbGFz
cyBGbG9hdGluZ1BvaW50IHsKICAgLy8gUmV0dXJucyB0aGUgc2lnbiBiaXQgb2YgdGhpcyBudW1i
ZXIuCiAgIEJpdHMgc2lnbl9iaXQoKSBjb25zdCB7IHJldHVybiBrU2lnbkJpdE1hc2sgJiB1Xy5i
aXRzXzsgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhpcyBpcyBOQU4gKG5vdCBhIG51bWJl
cikuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIGlzIE5BTiAobm90IGEg
bnVtYmVyKS4KICAgYm9vbCBpc19uYW4oKSBjb25zdCB7CiAgICAgLy8gSXQncyBhIE5BTiBpZiB0
aGUgZXhwb25lbnQgYml0cyBhcmUgYWxsIG9uZXMgYW5kIHRoZSBmcmFjdGlvbgogICAgIC8vIGJp
dHMgYXJlIG5vdCBlbnRpcmVseSB6ZXJvcy4KICAgICByZXR1cm4gKGV4cG9uZW50X2JpdHMoKSA9
PSBrRXhwb25lbnRCaXRNYXNrKSAmJiAoZnJhY3Rpb25fYml0cygpICE9IDApOwogICB9CiAKLSAg
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGlzIG51bWJlciBpcyBhdCBtb3N0IGtNYXhVbHBzIFVMUCdz
IGF3YXkgZnJvbQotICAvLyByaHMuICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGZ1bmN0aW9uOgorICAv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhpcyBudW1iZXIgaXMgYXQgbW9zdCBrTWF4
VWxwcyBVTFAncyBhd2F5CisgIC8vIGZyb20gcmhzLiAgSW4gcGFydGljdWxhciwgdGhpcyBmdW5j
dGlvbjoKICAgLy8KICAgLy8gICAtIHJldHVybnMgZmFsc2UgaWYgZWl0aGVyIG51bWJlciBpcyAo
b3IgYm90aCBhcmUpIE5BTi4KICAgLy8gICAtIHRyZWF0cyByZWFsbHkgbGFyZ2UgbnVtYmVycyBh
cyBhbG1vc3QgZXF1YWwgdG8gaW5maW5pdHkuCkBAIC00MDksNyArNDA5LDcgQEAgdHlwZWRlZiBG
bG9hdGluZ1BvaW50PGZsb2F0PiBGbG9hdDsKIHR5cGVkZWYgRmxvYXRpbmdQb2ludDxkb3VibGU+
IERvdWJsZTsKIAogLy8gSW4gb3JkZXIgdG8gY2F0Y2ggdGhlIG1pc3Rha2Ugb2YgcHV0dGluZyB0
ZXN0cyB0aGF0IHVzZSBkaWZmZXJlbnQKLS8vIHRlc3QgZml4dHVyZSBjbGFzc2VzIGluIHRoZSBz
YW1lIHRlc3QgY2FzZSwgd2UgbmVlZCB0byBhc3NpZ24KKy8vIHRlc3QgZml4dHVyZSBjbGFzc2Vz
IGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUsIHdlIG5lZWQgdG8gYXNzaWduCiAvLyB1bmlxdWUgSURz
IHRvIGZpeHR1cmUgY2xhc3NlcyBhbmQgY29tcGFyZSB0aGVtLiAgVGhlIFR5cGVJZCB0eXBlIGlz
CiAvLyB1c2VkIHRvIGhvbGQgc3VjaCBJRHMuICBUaGUgdXNlciBzaG91bGQgdHJlYXQgVHlwZUlk
IGFzIGFuIG9wYXF1ZQogLy8gdHlwZTogdGhlIG9ubHkgb3BlcmF0aW9uIGFsbG93ZWQgb24gVHlw
ZUlkIHZhbHVlcyBpcyB0byBjb21wYXJlCkBAIC00NjksNyArNDY5LDcgQEAgY2xhc3MgVGVzdEZh
Y3RvcnlCYXNlIHsKIHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2xhc3M+CiBjbGFzcyBUZXN0RmFjdG9y
eUltcGwgOiBwdWJsaWMgVGVzdEZhY3RvcnlCYXNlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgVGVz
dCogQ3JlYXRlVGVzdCgpIHsgcmV0dXJuIG5ldyBUZXN0Q2xhc3M7IH0KKyAgVGVzdCogQ3JlYXRl
VGVzdCgpIG92ZXJyaWRlIHsgcmV0dXJuIG5ldyBUZXN0Q2xhc3M7IH0KIH07CiAKICNpZiBHVEVT
VF9PU19XSU5ET1dTCkBAIC00ODUsOSArNDg1LDkgQEAgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1
bHQgSXNIUkVTVUxURmFpbHVyZShjb25zdCBjaGFyKiBleHByLAogCiAjZW5kaWYgIC8vIEdURVNU
X09TX1dJTkRPV1MKIAotLy8gVHlwZXMgb2YgU2V0VXBUZXN0Q2FzZSgpIGFuZCBUZWFyRG93blRl
c3RDYXNlKCkgZnVuY3Rpb25zLgotdHlwZWRlZiB2b2lkICgqU2V0VXBUZXN0Q2FzZUZ1bmMpKCk7
Ci10eXBlZGVmIHZvaWQgKCpUZWFyRG93blRlc3RDYXNlRnVuYykoKTsKKy8vIFR5cGVzIG9mIFNl
dFVwVGVzdFN1aXRlKCkgYW5kIFRlYXJEb3duVGVzdFN1aXRlKCkgZnVuY3Rpb25zLgordXNpbmcg
U2V0VXBUZXN0U3VpdGVGdW5jID0gdm9pZCAoKikoKTsKK3VzaW5nIFRlYXJEb3duVGVzdFN1aXRl
RnVuYyA9IHZvaWQgKCopKCk7CiAKIHN0cnVjdCBDb2RlTG9jYXRpb24gewogICBDb2RlTG9jYXRp
b24oY29uc3Qgc3RkOjpzdHJpbmcmIGFfZmlsZSwgaW50IGFfbGluZSkKQEAgLTQ5Nyw1OCArNDk3
LDExNiBAQCBzdHJ1Y3QgQ29kZUxvY2F0aW9uIHsKICAgaW50IGxpbmU7CiB9OwogCisvLyAgSGVs
cGVyIHRvIGlkZW50aWZ5IHdoaWNoIHNldHVwIGZ1bmN0aW9uIGZvciBUZXN0Q2FzZSAvIFRlc3RT
dWl0ZSB0byBjYWxsLgorLy8gIE9ubHkgb25lIGZ1bmN0aW9uIGlzIGFsbG93ZWQsIGVpdGhlciBU
ZXN0Q2FzZSBvciBUZXN0U3V0ZSBidXQgbm90IGJvdGguCisKKy8vIFV0aWxpdHkgZnVuY3Rpb25z
IHRvIGhlbHAgU3VpdGVBcGlSZXNvbHZlcgordXNpbmcgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5
cGUgPSB2b2lkICgqKSgpOworCitpbmxpbmUgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0
Tm90RGVmYXVsdE9yTnVsbCgKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSBhLCBTZXRV
cFRlYXJEb3duU3VpdGVGdW5jVHlwZSBkZWYpIHsKKyAgcmV0dXJuIGEgPT0gZGVmID8gbnVsbHB0
ciA6IGE7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorLy8gIE5vdGUgdGhhdCBTdWl0ZUFw
aVJlc29sdmVyIGluaGVyaXRzIGZyb20gVCBiZWNhdXNlCisvLyAgU2V0VXBUZXN0U3VpdGUoKS9U
ZWFyRG93blRlc3RTdWl0ZSgpIGNvdWxkIGJlIHByb3RlY3RlZC4gVGhzIHdheQorLy8gIFN1aXRl
QXBpUmVzb2x2ZXIgY2FuIGFjY2VzcyB0aGVtLgorc3RydWN0IFN1aXRlQXBpUmVzb2x2ZXIgOiBU
IHsKKyAgLy8gdGVzdGluZzo6VGVzdCBpcyBvbmx5IGZvcndhcmQgZGVjbGFyZWQgYXQgdGhpcyBw
b2ludC4gU28gd2UgbWFrZSBpdCBhCisgIC8vIGRlcGVuZGVuZCBjbGFzcyBmb3IgdGhlIGNvbXBp
bGVyIHRvIGJlIE9LIHdpdGggaXQuCisgIHVzaW5nIFRlc3QgPQorICAgICAgdHlwZW5hbWUgc3Rk
Ojpjb25kaXRpb25hbDxzaXplb2YoVCkgIT0gMCwgOjp0ZXN0aW5nOjpUZXN0LCB2b2lkPjo6dHlw
ZTsKKworICBzdGF0aWMgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0U2V0VXBDYXNlT3JT
dWl0ZShjb25zdCBjaGFyKiBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNU
eXBlIHRlc3RfY2FzZV9mcCA9CisgICAgICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlNldFVw
VGVzdENhc2UsICZUZXN0OjpTZXRVcFRlc3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVG
dW5jVHlwZSB0ZXN0X3N1aXRlX2ZwID0KKyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6
U2V0VXBUZXN0U3VpdGUsICZUZXN0OjpTZXRVcFRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVD
S18oIXRlc3RfY2FzZV9mcCB8fCAhdGVzdF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2Fu
IG5vdCBwcm92aWRlIGJvdGggU2V0VXBUZXN0U3VpdGUgYW5kIFNldFVwVGVzdENhc2UsIHBsZWFz
ZSAiCisgICAgICAgICAgICJtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBhdCAi
CisgICAgICAgIDw8IGZpbGVuYW1lIDw8ICI6IiA8PCBsaW5lX251bTsKKworICAgIHJldHVybiB0
ZXN0X2Nhc2VfZnAgIT0gbnVsbHB0ciA/IHRlc3RfY2FzZV9mcCA6IHRlc3Rfc3VpdGVfZnA7Cisj
ZWxzZQorICAgICh2b2lkKShmaWxlbmFtZSk7CisgICAgKHZvaWQpKGxpbmVfbnVtKTsKKyAgICBy
ZXR1cm4gJlQ6OlNldFVwVGVzdFN1aXRlOworI2VuZGlmCisgIH0KKworICBzdGF0aWMgU2V0VXBU
ZWFyRG93blN1aXRlRnVuY1R5cGUgR2V0VGVhckRvd25DYXNlT3JTdWl0ZShjb25zdCBjaGFyKiBm
aWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGxpbmVfbnVtKSB7CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXworICAgIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIHRlc3RfY2FzZV9m
cCA9CisgICAgICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlRlYXJEb3duVGVzdENhc2UsICZU
ZXN0OjpUZWFyRG93blRlc3RDYXNlKTsKKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0
ZXN0X3N1aXRlX2ZwID0KKyAgICAgICAgR2V0Tm90RGVmYXVsdE9yTnVsbCgmVDo6VGVhckRvd25U
ZXN0U3VpdGUsICZUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSk7CisKKyAgICBHVEVTVF9DSEVDS18o
IXRlc3RfY2FzZV9mcCB8fCAhdGVzdF9zdWl0ZV9mcCkKKyAgICAgICAgPDwgIlRlc3QgY2FuIG5v
dCBwcm92aWRlIGJvdGggVGVhckRvd25UZXN0U3VpdGUgYW5kIFRlYXJEb3duVGVzdENhc2UsIgor
ICAgICAgICAgICAiIHBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBvbmUgcHJlc2VudCBh
dCIKKyAgICAgICAgPDwgZmlsZW5hbWUgPDwgIjoiIDw8IGxpbmVfbnVtOworCisgICAgcmV0dXJu
IHRlc3RfY2FzZV9mcCAhPSBudWxscHRyID8gdGVzdF9jYXNlX2ZwIDogdGVzdF9zdWl0ZV9mcDsK
KyNlbHNlCisgICAgKHZvaWQpKGZpbGVuYW1lKTsKKyAgICAodm9pZCkobGluZV9udW0pOworICAg
IHJldHVybiAmVDo6VGVhckRvd25UZXN0U3VpdGU7CisjZW5kaWYKKyAgfQorfTsKKwogLy8gQ3Jl
YXRlcyBhIG5ldyBUZXN0SW5mbyBvYmplY3QgYW5kIHJlZ2lzdGVycyBpdCB3aXRoIEdvb2dsZSBU
ZXN0OwogLy8gcmV0dXJucyB0aGUgY3JlYXRlZCBvYmplY3QuCiAvLwogLy8gQXJndW1lbnRzOgog
Ly8KLS8vICAgdGVzdF9jYXNlX25hbWU6ICAgbmFtZSBvZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRl
c3Rfc3VpdGVfbmFtZTogIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUKIC8vICAgbmFtZTogICAgICAg
ICAgICAgbmFtZSBvZiB0aGUgdGVzdAotLy8gICB0eXBlX3BhcmFtICAgICAgICB0aGUgbmFtZSBv
ZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCisvLyAgIHR5cGVfcGFyYW06
ICAgICAgIHRoZSBuYW1lIG9mIHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYK
IC8vICAgICAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0LgotLy8gICB2YWx1ZV9wYXJhbSAgICAgICB0ZXh0IHJlcHJlc2VudGF0
aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAorLy8gICB2YWx1ZV9wYXJhbTogICAg
ICB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0ZXN0J3MgdmFsdWUgcGFyYW1ldGVyLAogLy8g
ICAgICAgICAgICAgICAgICAgICBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEgdHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3QuCiAvLyAgIGNvZGVfbG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUg
dGhlIHRlc3QgaXMgZGVmaW5lZAogLy8gICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVz
dCBmaXh0dXJlIGNsYXNzCi0vLyAgIHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1
bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAg
IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCisv
LyAgIHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1
cCB0aGUgdGVzdCBzdWl0ZQorLy8gICB0ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKIC8vICAgZmFjdG9yeTogICAg
ICAgICAgcG9pbnRlciB0byB0aGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9iamVjdC4K
IC8vICAgICAgICAgICAgICAgICAgICAgVGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8gaW5zdGFu
Y2Ugd2lsbCBhc3N1bWUKIC8vICAgICAgICAgICAgICAgICAgICAgb3duZXJzaGlwIG9mIHRoZSBm
YWN0b3J5IG9iamVjdC4KIEdURVNUX0FQSV8gVGVzdEluZm8qIE1ha2VBbmRSZWdpc3RlclRlc3RJ
bmZvKAotICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNoYXIqIG5h
bWUsCi0gICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2YWx1ZV9w
YXJhbSwKLSAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQgZml4dHVy
ZV9jbGFzc19pZCwKLSAgICBTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgVGVhckRv
d25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSogZmFjdG9y
eSk7CisgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBj
b25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgIGNvbnN0IGNoYXIqIHZhbHVlX3BhcmFtLCBDb2Rl
TG9jYXRpb24gY29kZV9sb2NhdGlvbiwKKyAgICBUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwgU2V0
VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICBUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVh
cl9kb3duX3RjLCBUZXN0RmFjdG9yeUJhc2UqIGZhY3RvcnkpOwogCiAvLyBJZiAqcHN0ciBzdGFy
dHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LCBtb2RpZmllcyAqcHN0ciB0byBiZSByaWdodAogLy8g
cGFzdCB0aGUgcHJlZml4IGFuZCByZXR1cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2ZXMgKnBzdHIg
dW5jaGFuZ2VkCiAvLyBhbmQgcmV0dXJucyBmYWxzZS4gIE5vbmUgb2YgcHN0ciwgKnBzdHIsIGFu
ZCBwcmVmaXggY2FuIGJlIE5VTEwuCiBHVEVTVF9BUElfIGJvb2wgU2tpcFByZWZpeChjb25zdCBj
aGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIqKiBwc3RyKTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9U
RVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklO
R1NfUFVTSF8oNDI1MSBcCiAvKiBjbGFzcyBBIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0
byBiZSB1c2VkIGJ5IGNsaWVudHMgb2YgY2xhc3MgQiAqLykKIAotLy8gU3RhdGUgb2YgdGhlIGRl
ZmluaXRpb24gb2YgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgotY2xhc3MgR1RFU1Rf
QVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsKKy8vIFN0YXRlIG9mIHRoZSBkZWZpbml0aW9uIG9m
IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUuCitjbGFzcyBHVEVTVF9BUElfIFR5cGVk
VGVzdFN1aXRlUFN0YXRlIHsKICBwdWJsaWM6Ci0gIFR5cGVkVGVzdENhc2VQU3RhdGUoKSA6IHJl
Z2lzdGVyZWRfKGZhbHNlKSB7fQorICBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSgpIDogcmVnaXN0ZXJl
ZF8oZmFsc2UpIHt9CiAKICAgLy8gQWRkcyB0aGUgZ2l2ZW4gdGVzdCBuYW1lIHRvIGRlZmluZWRf
dGVzdF9uYW1lc18gYW5kIHJldHVybiB0cnVlCi0gIC8vIGlmIHRoZSB0ZXN0IGNhc2UgaGFzbid0
IGJlZW4gcmVnaXN0ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKKyAgLy8gaWYgdGhlIHRlc3Qg
c3VpdGUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZDsgb3RoZXJ3aXNlIGFib3J0cyB0aGUKICAgLy8g
cHJvZ3JhbS4KICAgYm9vbCBBZGRUZXN0TmFtZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwg
Y29uc3QgY2hhciogY2FzZV9uYW1lLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRl
c3RfbmFtZSkgewogICAgIGlmIChyZWdpc3RlcmVkXykgewotICAgICAgZnByaW50ZihzdGRlcnIs
ICIlcyBUZXN0ICVzIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgotICAgICAgICAgICAgICAiUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AoJXMsIC4uLikuXG4iLAorICAgICAgZnByaW50ZihzdGRl
cnIsCisgICAgICAgICAgICAgICIlcyBUZXN0ICVzIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgIgor
ICAgICAgICAgICAgICAiUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKCVzLCAuLi4pLlxuIiwK
ICAgICAgICAgICAgICAgRm9ybWF0RmlsZUxvY2F0aW9uKGZpbGUsIGxpbmUpLmNfc3RyKCksIHRl
c3RfbmFtZSwgY2FzZV9uYW1lKTsKICAgICAgIGZmbHVzaChzdGRlcnIpOwogICAgICAgcG9zaXg6
OkFib3J0KCk7CkBAIC01NzEsOCArNjI5LDkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RD
YXNlUFN0YXRlIHsKICAgLy8gVmVyaWZpZXMgdGhhdCByZWdpc3RlcmVkX3Rlc3RzIG1hdGNoIHRo
ZSB0ZXN0IG5hbWVzIGluCiAgIC8vIGRlZmluZWRfdGVzdF9uYW1lc187IHJldHVybnMgcmVnaXN0
ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBvcgogICAvLyBhYm9ydHMgdGhlIHByb2dyYW0gb3Ro
ZXJ3aXNlLgotICBjb25zdCBjaGFyKiBWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAotICAgICAg
Y29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMp
OworICBjb25zdCBjaGFyKiBWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKGNvbnN0IGNoYXIqIHRl
c3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiByZWdpc3RlcmVkX3Rlc3RzKTsKIAogIHByaXZhdGU6CiAg
IHR5cGVkZWYgOjpzdGQ6Om1hcDxzdGQ6OnN0cmluZywgQ29kZUxvY2F0aW9uPiBSZWdpc3RlcmVk
VGVzdHNNYXA7CkBAIC01ODEsMTQgKzY0MCwxOSBAQCBjbGFzcyBHVEVTVF9BUElfIFR5cGVkVGVz
dENhc2VQU3RhdGUgewogICBSZWdpc3RlcmVkVGVzdHNNYXAgcmVnaXN0ZXJlZF90ZXN0c187CiB9
OwogCisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNp
Zm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCit1c2luZyBUeXBlZFRlc3RD
YXNlUFN0YXRlID0gVHlwZWRUZXN0U3VpdGVQU3RhdGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKwogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9Q
XygpICAvLyAgNDI1MQogCiAvLyBTa2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIgYWZ0
ZXIgdGhlIGZpcnN0IGNvbW1hIGluICdzdHInOwogLy8gcmV0dXJucyBOVUxMIGlmIG5vIGNvbW1h
IGlzIGZvdW5kIGluICdzdHInLgogaW5saW5lIGNvbnN0IGNoYXIqIFNraXBDb21tYShjb25zdCBj
aGFyKiBzdHIpIHsKICAgY29uc3QgY2hhciogY29tbWEgPSBzdHJjaHIoc3RyLCAnLCcpOwotICBp
ZiAoY29tbWEgPT0gTlVMTCkgewotICAgIHJldHVybiBOVUxMOworICBpZiAoY29tbWEgPT0gbnVs
bHB0cikgeworICAgIHJldHVybiBudWxscHRyOwogICB9CiAgIHdoaWxlIChJc1NwYWNlKCooKytj
b21tYSkpKSB7fQogICByZXR1cm4gY29tbWE7CkBAIC01OTgsNyArNjYyLDcgQEAgaW5saW5lIGNv
bnN0IGNoYXIqIFNraXBDb21tYShjb25zdCBjaGFyKiBzdHIpIHsKIC8vIHRoZSBlbnRpcmUgc3Ry
aW5nIGlmIGl0IGNvbnRhaW5zIG5vIGNvbW1hLgogaW5saW5lIHN0ZDo6c3RyaW5nIEdldFByZWZp
eFVudGlsQ29tbWEoY29uc3QgY2hhciogc3RyKSB7CiAgIGNvbnN0IGNoYXIqIGNvbW1hID0gc3Ry
Y2hyKHN0ciwgJywnKTsKLSAgcmV0dXJuIGNvbW1hID09IE5VTEwgPyBzdHIgOiBzdGQ6OnN0cmlu
ZyhzdHIsIGNvbW1hKTsKKyAgcmV0dXJuIGNvbW1hID09IG51bGxwdHIgPyBzdHIgOiBzdGQ6OnN0
cmluZyhzdHIsIGNvbW1hKTsKIH0KIAogLy8gU3BsaXRzIGEgZ2l2ZW4gc3RyaW5nIG9uIGEgZ2l2
ZW4gZGVsaW1pdGVyLCBwb3B1bGF0aW5nIGEgZ2l2ZW4KQEAgLTYyMSw3ICs2ODUsNyBAQCBzdHJ1
Y3QgTmFtZUdlbmVyYXRvclNlbGVjdG9yIHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBOYW1l
R2VuZXJhdG9yPgotdm9pZCBHZW5lcmF0ZU5hbWVzUmVjdXJzaXZlbHkoVHlwZXMwLCBzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4qLCBpbnQpIHt9Cit2b2lkIEdlbmVyYXRlTmFtZXNSZWN1cnNpdmVs
eShpbnRlcm5hbDo6Tm9uZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiwgaW50KSB7fQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgTmFtZUdlbmVyYXRvciwgdHlwZW5hbWUgVHlwZXM+CiB2b2lkIEdl
bmVyYXRlTmFtZXNSZWN1cnNpdmVseShUeXBlcywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiBy
ZXN1bHQsIGludCBpKSB7CkBAIC02NDgsNyArNzEyLDcgQEAgdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBGaXh0dXJlLCBjbGFzcyBUZXN0U2VsLCB0eXBlbmFtZSBUeXBlcz4KIGNsYXNzIFR5cGVQ
YXJhbWV0ZXJpemVkVGVzdCB7CiAgcHVibGljOgogICAvLyAnaW5kZXgnIGlzIHRoZSBpbmRleCBv
ZiB0aGUgdGVzdCBpbiB0aGUgdHlwZSBsaXN0ICdUeXBlcycKLSAgLy8gc3BlY2lmaWVkIGluIElO
U1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKFByZWZpeCwgVGVzdENhc2UsCisgIC8vIHNwZWNp
ZmllZCBpbiBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoUHJlZml4LCBUZXN0U3VpdGUs
CiAgIC8vIFR5cGVzKS4gIFZhbGlkIHZhbHVlcyBmb3IgJ2luZGV4JyBhcmUgWzAsIE4gLSAxXSB3
aGVyZSBOIGlzIHRoZQogICAvLyBsZW5ndGggb2YgVHlwZXMuCiAgIHN0YXRpYyBib29sIFJlZ2lz
dGVyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgQ29kZUxvY2F0aW9uJiBjb2RlX2xvY2F0aW9u
LApAQCAtNjYzLDEzICs3MjcsMTcgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0IHsKICAg
ICAvLyBsaXN0LgogICAgIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvKAogICAgICAgICAoc3RkOjpz
dHJpbmcocHJlZml4KSArIChwcmVmaXhbMF0gPT0gJ1wwJyA/ICIiIDogIi8iKSArIGNhc2VfbmFt
ZSArCi0gICAgICAgICAiLyIgKyB0eXBlX25hbWVzW2luZGV4XSkKKyAgICAgICAgICIvIiArIHR5
cGVfbmFtZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldKQogICAgICAgICAgICAgLmNfc3Ry
KCksCiAgICAgICAgIFN0cmlwVHJhaWxpbmdTcGFjZXMoR2V0UHJlZml4VW50aWxDb21tYSh0ZXN0
X25hbWVzKSkuY19zdHIoKSwKICAgICAgICAgR2V0VHlwZU5hbWU8VHlwZT4oKS5jX3N0cigpLAot
ICAgICAgICBOVUxMLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgotICAgICAgICBjb2RlX2xvY2F0
aW9uLCBHZXRUeXBlSWQ8Rml4dHVyZUNsYXNzPigpLCBUZXN0Q2xhc3M6OlNldFVwVGVzdENhc2Us
Ci0gICAgICAgIFRlc3RDbGFzczo6VGVhckRvd25UZXN0Q2FzZSwgbmV3IFRlc3RGYWN0b3J5SW1w
bDxUZXN0Q2xhc3M+KTsKKyAgICAgICAgbnVsbHB0ciwgIC8vIE5vIHZhbHVlIHBhcmFtZXRlci4K
KyAgICAgICAgY29kZV9sb2NhdGlvbiwgR2V0VHlwZUlkPEZpeHR1cmVDbGFzcz4oKSwKKyAgICAg
ICAgU3VpdGVBcGlSZXNvbHZlcjxUZXN0Q2xhc3M+OjpHZXRTZXRVcENhc2VPclN1aXRlKAorICAg
ICAgICAgICAgY29kZV9sb2NhdGlvbi5maWxlLmNfc3RyKCksIGNvZGVfbG9jYXRpb24ubGluZSks
CisgICAgICAgIFN1aXRlQXBpUmVzb2x2ZXI8VGVzdENsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JT
dWl0ZSgKKyAgICAgICAgICAgIGNvZGVfbG9jYXRpb24uZmlsZS5jX3N0cigpLCBjb2RlX2xvY2F0
aW9uLmxpbmUpLAorICAgICAgICBuZXcgVGVzdEZhY3RvcnlJbXBsPFRlc3RDbGFzcz4pOwogCiAg
ICAgLy8gTmV4dCwgcmVjdXJzZXMgKGF0IGNvbXBpbGUgdGltZSkgd2l0aCB0aGUgdGFpbCBvZiB0
aGUgdHlwZSBsaXN0LgogICAgIHJldHVybiBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwg
VGVzdFNlbCwKQEAgLTY4NCw3ICs3NTIsNyBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3Qg
ewogCiAvLyBUaGUgYmFzZSBjYXNlIGZvciB0aGUgY29tcGlsZSB0aW1lIHJlY3Vyc2lvbi4KIHRl
bXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVyZSwgY2xhc3MgVGVzdFNlbD4KLWNsYXNzIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0dXJlLCBUZXN0U2VsLCBUeXBlczA+IHsKK2NsYXNzIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdDxGaXh0dXJlLCBUZXN0U2VsLCBpbnRlcm5hbDo6Tm9uZT4gewog
IHB1YmxpYzoKICAgc3RhdGljIGJvb2wgUmVnaXN0ZXIoY29uc3QgY2hhciogLypwcmVmaXgqLywg
Y29uc3QgQ29kZUxvY2F0aW9uJiwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
LypjYXNlX25hbWUqLywgY29uc3QgY2hhciogLyp0ZXN0X25hbWVzKi8sCkBAIC02OTUsMTggKzc2
MywyNCBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8Rml4dHVyZSwgVGVzdFNlbCwgVHlw
ZXMwPiB7CiAgIH0KIH07CiAKLS8vIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwg
VGVzdHMsIFR5cGVzPjo6UmVnaXN0ZXIoKQorR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBh
cmFtZXRlcml6ZWRUZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9u
IGNvZGVfbG9jYXRpb24pOworR1RFU1RfQVBJXyB2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKAorICAgIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSk7CisK
Ky8vIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPEZpeHR1cmUsIFRlc3RzLCBUeXBlcz46OlJl
Z2lzdGVyKCkKIC8vIHJlZ2lzdGVycyAqYWxsIGNvbWJpbmF0aW9ucyogb2YgJ1Rlc3RzJyBhbmQg
J1R5cGVzJyB3aXRoIEdvb2dsZQogLy8gVGVzdC4gIFRoZSByZXR1cm4gdmFsdWUgaXMgaW5zaWdu
aWZpY2FudCAtIHdlIGp1c3QgbmVlZCB0byByZXR1cm4KIC8vIHNvbWV0aGluZyBzdWNoIHRoYXQg
d2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiBpbiBhIG5hbWVzcGFjZSBzY29wZS4KIHRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gRml4dHVyZSwgdHlwZW5hbWUgVGVzdHMsIHR5cGVuYW1lIFR5cGVz
PgotY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSB7CitjbGFzcyBUeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZSB7CiAgcHVibGljOgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBj
aGFyKiBwcmVmaXgsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUeXBlZFRlc3RDYXNlUFN0YXRlKiBzdGF0ZSwgY29uc3QgY2hhciogY2Fz
ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRlc3RTdWl0ZVBTdGF0
ZSogc3RhdGUsIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogdGVzdF9uYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+JiB0eXBlX25hbWVzID0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdlbmVyYXRlTmFtZXM8RGVmYXVsdE5hbWVHZW5lcmF0b3IsIFR5cGVzPigpKSB7Cisg
ICAgUmVnaXN0ZXJUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oY2FzZV9u
YW1lKTsKICAgICBzdGQ6OnN0cmluZyB0ZXN0X25hbWUgPSBTdHJpcFRyYWlsaW5nU3BhY2VzKAog
ICAgICAgICBHZXRQcmVmaXhVbnRpbENvbW1hKHRlc3RfbmFtZXMpKTsKICAgICBpZiAoIXN0YXRl
LT5UZXN0RXhpc3RzKHRlc3RfbmFtZSkpIHsKQEAgLTcyNiwyMCArODAwLDIwIEBAIGNsYXNzIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UgewogICAgICAgICBwcmVmaXgsIHRlc3RfbG9jYXRpb24s
IGNhc2VfbmFtZSwgdGVzdF9uYW1lcywgMCwgdHlwZV9uYW1lcyk7CiAKICAgICAvLyBOZXh0LCBy
ZWN1cnNlcyAoYXQgY29tcGlsZSB0aW1lKSB3aXRoIHRoZSB0YWlsIG9mIHRoZSB0ZXN0IGxpc3Qu
Ci0gICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8Rml4dHVyZSwgdHlwZW5hbWUg
VGVzdHM6OlRhaWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZXM+
OjpSZWdpc3RlcihwcmVmaXgsIGNvZGVfbG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgY2FzZV9uYW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcENvbW1h
KHRlc3RfbmFtZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZV9uYW1lcyk7CisgICAgcmV0dXJuIFR5cGVQYXJhbWV0ZXJpemVkVGVz
dFN1aXRlPEZpeHR1cmUsIHR5cGVuYW1lIFRlc3RzOjpUYWlsLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUeXBlcz46OlJlZ2lzdGVyKHByZWZpeCwgY29kZV9sb2NhdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZSwgY2FzZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNraXBDb21tYSh0ZXN0X25hbWVzKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX25hbWVzKTsKICAg
fQogfTsKIAogLy8gVGhlIGJhc2UgY2FzZSBmb3IgdGhlIGNvbXBpbGUgdGltZSByZWN1cnNpb24u
CiB0ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIEZpeHR1cmUsIHR5cGVuYW1lIFR5cGVzPgotY2xh
c3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4g
eworY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8Rml4dHVyZSwgaW50ZXJuYWw6Ok5v
bmUsIFR5cGVzPiB7CiAgcHVibGljOgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFy
KiAvKnByZWZpeCovLCBjb25zdCBDb2RlTG9jYXRpb24mLAotICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBUeXBlZFRlc3RDYXNlUFN0YXRlKiAvKnN0YXRlKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFR5cGVkVGVzdFN1aXRlUFN0YXRlKiAvKnN0YXRlKi8sCiAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIC8qY2FzZV9uYW1lKi8sIGNvbnN0IGNoYXIqIC8qdGVz
dF9uYW1lcyovLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4mID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPigpIC8qdHlwZV9uYW1lcyovKSB7CkBAIC03NDcsOCArODIxLDYgQEAgY2xhc3MgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZTxGaXh0dXJlLCBUZW1wbGF0ZXMwLCBUeXBlcz4gewogICB9
CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBF
RF9URVNUX1AKLQogLy8gUmV0dXJucyB0aGUgY3VycmVudCBPUyBzdGFjayB0cmFjZSBhcyBhbiBz
dGQ6OnN0cmluZy4KIC8vCiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgZnJhbWVzIHRv
IGJlIGluY2x1ZGVkIGlzIHNwZWNpZmllZCBieQpAQCAtNzgwLDYgKzg1MiwxNiBAQCBzdHJ1Y3Qg
R1RFU1RfQVBJXyBDb25zdENoYXJQdHIgewogICBjb25zdCBjaGFyKiB2YWx1ZTsKIH07CiAKKy8v
IEhlbHBlciBmb3IgZGVjbGFyaW5nIHN0ZDo6c3RyaW5nIHdpdGhpbiAnaWYnIHN0YXRlbWVudAor
Ly8gaW4gcHJlIEMrKzE3IGJ1aWxkIGVudmlyb25tZW50Lgorc3RydWN0IFRydWVXaXRoU3RyaW5n
IHsKKyAgVHJ1ZVdpdGhTdHJpbmcoKSA9IGRlZmF1bHQ7CisgIGV4cGxpY2l0IFRydWVXaXRoU3Ry
aW5nKGNvbnN0IGNoYXIqIHN0cikgOiB2YWx1ZShzdHIpIHt9CisgIGV4cGxpY2l0IFRydWVXaXRo
U3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIDogdmFsdWUoc3RyKSB7fQorICBleHBsaWNp
dCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICBzdGQ6OnN0cmluZyB2
YWx1ZTsKK307CisKIC8vIEEgc2ltcGxlIExpbmVhciBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIGZv
ciBnZW5lcmF0aW5nIHJhbmRvbQogLy8gbnVtYmVycyB3aXRoIGEgdW5pZm9ybSBkaXN0cmlidXRp
b24uICBVbmxpa2UgcmFuZCgpIGFuZCBzcmFuZCgpLCBpdAogLy8gZG9lc24ndCB1c2UgZ2xvYmFs
IHN0YXRlIChhbmQgdGhlcmVmb3JlIGNhbid0IGludGVyZmVyZSB3aXRoIHVzZXIKQEAgLTc4Nywx
MzUgKzg2OSw1MyBAQCBzdHJ1Y3QgR1RFU1RfQVBJXyBDb25zdENoYXJQdHIgewogLy8gYnV0IGl0
J3MgZ29vZCBlbm91Z2ggZm9yIG91ciBwdXJwb3Nlcy4KIGNsYXNzIEdURVNUX0FQSV8gUmFuZG9t
IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyBjb25zdCBVSW50MzIga01heFJhbmdlID0gMXUgPDwgMzE7
CisgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrTWF4UmFuZ2UgPSAxdSA8PCAzMTsKIAotICBleHBs
aWNpdCBSYW5kb20oVUludDMyIHNlZWQpIDogc3RhdGVfKHNlZWQpIHt9CisgIGV4cGxpY2l0IFJh
bmRvbSh1aW50MzJfdCBzZWVkKSA6IHN0YXRlXyhzZWVkKSB7fQogCi0gIHZvaWQgUmVzZWVkKFVJ
bnQzMiBzZWVkKSB7IHN0YXRlXyA9IHNlZWQ7IH0KKyAgdm9pZCBSZXNlZWQodWludDMyX3Qgc2Vl
ZCkgeyBzdGF0ZV8gPSBzZWVkOyB9CiAKICAgLy8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBm
cm9tIFswLCByYW5nZSkuICBDcmFzaGVzIGlmICdyYW5nZScgaXMKICAgLy8gMCBvciBncmVhdGVy
IHRoYW4ga01heFJhbmdlLgotICBVSW50MzIgR2VuZXJhdGUoVUludDMyIHJhbmdlKTsKKyAgdWlu
dDMyX3QgR2VuZXJhdGUodWludDMyX3QgcmFuZ2UpOwogCiAgcHJpdmF0ZToKLSAgVUludDMyIHN0
YXRlXzsKKyAgdWludDMyX3Qgc3RhdGVfOwogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJ
R05fKFJhbmRvbSk7CiB9OwogCi0vLyBEZWZpbmluZyBhIHZhcmlhYmxlIG9mIHR5cGUgQ29tcGls
ZUFzc2VydFR5cGVzRXF1YWw8VDEsIFQyPiB3aWxsIGNhdXNlIGEKLS8vIGNvbXBpbGVyIGVycm9y
IGlmZiBUMSBhbmQgVDIgYXJlIGRpZmZlcmVudCB0eXBlcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw7Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQsIFQ+IHsK
LX07Ci0KLS8vIFJlbW92ZXMgdGhlIHJlZmVyZW5jZSBmcm9tIGEgdHlwZSBpZiBpdCBpcyBhIHJl
ZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlz
IHRoZSBzYW1lIGFzCi0vLyB0cjE6OnJlbW92ZV9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRl
bHkgYXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZVJl
ZmVyZW5jZSB7IHR5cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBSZW1vdmVSZWZlcmVuY2U8VCY+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAv
LyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVyIGFyb3VuZCBSZW1vdmVSZWZlcmVuY2UgdGhh
dCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFt
ZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFt
ZSA6OnRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U8VD46OnR5cGUKKy8vIFR1cm5z
IGNvbnN0IFUmLCBVJiwgY29uc3QgVSwgYW5kIFUgYWxsIGludG8gVS4KKyNkZWZpbmUgR1RFU1Rf
UkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfKFQpIFwKKyAgdHlwZW5hbWUgc3RkOjpyZW1vdmVf
Y29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlPjo6dHlwZQogCi0v
LyBSZW1vdmVzIGNvbnN0IGZyb20gYSB0eXBlIGlmIGl0IGlzIGEgY29uc3QgdHlwZSwgb3RoZXJ3
aXNlIGxlYXZlcwotLy8gaXQgdW5jaGFuZ2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0cjE6OnJl
bW92ZV9jb25zdCwgd2hpY2ggaXMgbm90Ci0vLyB3aWRlbHkgYXZhaWxhYmxlIHlldC4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZUNvbnN0IHsgdHlwZWRlZiBUIHR5cGU7IH07
ICAvLyBOT0xJTlQKKy8vIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxUPjo6dmFs
dWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbCBjb25zdGFudAorLy8gdGhhdCdzIHRydWUgaWYgYW5k
IG9ubHkgaWYgVCBoYXMgbWV0aG9kcyBEZWJ1Z1N0cmluZygpIGFuZCBTaG9ydERlYnVnU3RyaW5n
KCkKKy8vIHRoYXQgcmV0dXJuIHN0ZDo6c3RyaW5nLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1z
dHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVD4geyB0eXBlZGVmIFQgdHlwZTsgfTsgIC8vIE5PTElO
VAotCi0vLyBNU1ZDIDguMCwgU3VuIEMrKywgYW5kIElCTSBYTCBDKysgaGF2ZSBhIGJ1ZyB3aGlj
aCBjYXVzZXMgdGhlIGFib3ZlCi0vLyBkZWZpbml0aW9uIHRvIGZhaWwgdG8gcmVtb3ZlIHRoZSBj
b25zdCBpbiAnY29uc3QgaW50WzNdJyBhbmQgJ2NvbnN0Ci0vLyBjaGFyWzNdWzRdJy4gIFRoZSBm
b2xsb3dpbmcgc3BlY2lhbGl6YXRpb24gd29ya3MgYXJvdW5kIHRoZSBidWcuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1zdHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVFtOXT4gewot
ICB0eXBlZGVmIHR5cGVuYW1lIFJlbW92ZUNvbnN0PFQ+Ojp0eXBlIHR5cGVbTl07Ci19OwotCi0j
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxNDAwCi0vLyBUaGlzIGlzIHRoZSBv
bmx5IHNwZWNpYWxpemF0aW9uIHRoYXQgYWxsb3dzIFZDKysgNy4xIHRvIHJlbW92ZSBjb25zdCBp
bgotLy8gJ2NvbnN0IGludFszXSBhbmQgJ2NvbnN0IGludFszXVs0XScuICBIb3dldmVyLCBpdCBj
YXVzZXMgdHJvdWJsZSB3aXRoIEdDQwotLy8gYW5kIHRodXMgbmVlZHMgdG8gYmUgY29uZGl0aW9u
YWxseSBjb21waWxlZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLXN0cnVjdCBS
ZW1vdmVDb25zdDxUW05dPiB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ29uc3Q8VD46OnR5
cGUgdHlwZVtOXTsKLX07Ci0jZW5kaWYKK2NsYXNzIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1
Z1N0cmluZyB7CisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEM+CisgIHN0YXRpYyBh
dXRvIENoZWNrRGVidWdTdHJpbmcoQyopIC0+IHR5cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAg
IHN0ZDo6c3RyaW5nLCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8Y29uc3QgQz4oKS5EZWJ1Z1N0cmlu
ZygpKT46OnR5cGU7CisgIHRlbXBsYXRlIDx0eXBlbmFtZT4KKyAgc3RhdGljIHN0ZDo6ZmFsc2Vf
dHlwZSBDaGVja0RlYnVnU3RyaW5nKC4uLik7CiAKLS8vIEEgaGFuZHkgd3JhcHBlciBhcm91bmQg
UmVtb3ZlQ29uc3QgdGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVudAotLy8gVCBkZXBlbmRzIG9u
IHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9DT05TVF8oVCkgXAot
ICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlbW92ZUNvbnN0PFQ+Ojp0eXBlCisg
IHRlbXBsYXRlIDx0eXBlbmFtZSBDPgorICBzdGF0aWMgYXV0byBDaGVja1Nob3J0RGVidWdTdHJp
bmcoQyopIC0+IHR5cGVuYW1lIHN0ZDo6aXNfc2FtZTwKKyAgICAgIHN0ZDo6c3RyaW5nLCBkZWNs
dHlwZShzdGQ6OmRlY2x2YWw8Y29uc3QgQz4oKS5TaG9ydERlYnVnU3RyaW5nKCkpPjo6dHlwZTsK
KyAgdGVtcGxhdGUgPHR5cGVuYW1lPgorICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIENoZWNrU2hv
cnREZWJ1Z1N0cmluZyguLi4pOwogCi0vLyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0IFUsIGFu
ZCBVIGFsbCBpbnRvIFUuCi0jZGVmaW5lIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNU
XyhUKSBcCi0gICAgR1RFU1RfUkVNT1ZFX0NPTlNUXyhHVEVTVF9SRU1PVkVfUkVGRVJFTkNFXyhU
KSkKKyAgdXNpbmcgSGFzRGVidWdTdHJpbmdUeXBlID0gZGVjbHR5cGUoQ2hlY2tEZWJ1Z1N0cmlu
ZzxUPihudWxscHRyKSk7CisgIHVzaW5nIEhhc1Nob3J0RGVidWdTdHJpbmdUeXBlID0gZGVjbHR5
cGUoQ2hlY2tTaG9ydERlYnVnU3RyaW5nPFQ+KG51bGxwdHIpKTsKIAotLy8gSW1wbGljaXRseUNv
bnZlcnRpYmxlPEZyb20sIFRvPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbAotLy8gY29u
c3RhbnQgdGhhdCdzIHRydWUgaWZmIHR5cGUgRnJvbSBjYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0
ZWQgdG8KLS8vIHR5cGUgVG8uCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+
Ci1jbGFzcyBJbXBsaWNpdGx5Q29udmVydGlibGUgewotIHByaXZhdGU6Ci0gIC8vIFdlIG5lZWQg
dGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIG9ubHkgZm9yIHRoZWlyIHR5cGVzLgotICAv
LyBUaGV5IGhhdmUgbm8gaW1wbGVtZW50YXRpb25zLgotCi0gIC8vIE1ha2VGcm9tKCkgaXMgYW4g
ZXhwcmVzc2lvbiB3aG9zZSB0eXBlIGlzIEZyb20uICBXZSBjYW5ub3Qgc2ltcGx5Ci0gIC8vIHVz
ZSBGcm9tKCksIGFzIHRoZSB0eXBlIEZyb20gbWF5IG5vdCBoYXZlIGEgcHVibGljIGRlZmF1bHQK
LSAgLy8gY29uc3RydWN0b3IuCi0gIHN0YXRpYyB0eXBlbmFtZSBBZGRSZWZlcmVuY2U8RnJvbT46
OnR5cGUgTWFrZUZyb20oKTsKLQotICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVybG9h
ZGVkLiAgR2l2ZW4gYW4gZXhwcmVzc2lvbgotICAvLyBIZWxwZXIoeCksIHRoZSBjb21waWxlciB3
aWxsIHBpY2sgdGhlIGZpcnN0IHZlcnNpb24gaWYgeCBjYW4gYmUKLSAgLy8gaW1wbGljaXRseSBj
b252ZXJ0ZWQgdG8gdHlwZSBUbzsgb3RoZXJ3aXNlIGl0IHdpbGwgcGljayB0aGUKLSAgLy8gc2Vj
b25kIHZlcnNpb24uCi0gIC8vCi0gIC8vIFRoZSBmaXJzdCB2ZXJzaW9uIHJldHVybnMgYSB2YWx1
ZSBvZiBzaXplIDEsIGFuZCB0aGUgc2Vjb25kCi0gIC8vIHZlcnNpb24gcmV0dXJucyBhIHZhbHVl
IG9mIHNpemUgMi4gIFRoZXJlZm9yZSwgYnkgY2hlY2tpbmcgdGhlCi0gIC8vIHNpemUgb2YgSGVs
cGVyKHgpLCB3aGljaCBjYW4gYmUgZG9uZSBhdCBjb21waWxlIHRpbWUsIHdlIGNhbiB0ZWxsCi0g
IC8vIHdoaWNoIHZlcnNpb24gb2YgSGVscGVyKCkgaXMgdXNlZCwgYW5kIGhlbmNlIHdoZXRoZXIg
eCBjYW4gYmUKLSAgLy8gaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gdHlwZSBUby4KLSAgc3RhdGlj
IGNoYXIgSGVscGVyKFRvKTsKLSAgc3RhdGljIGNoYXIgKCZIZWxwZXIoLi4uKSlbMl07ICAvLyBO
T0xJTlQKLQotICAvLyBXZSBoYXZlIHRvIHB1dCB0aGUgJ3B1YmxpYycgc2VjdGlvbiBhZnRlciB0
aGUgJ3ByaXZhdGUnIHNlY3Rpb24sCi0gIC8vIG9yIE1TVkMgcmVmdXNlcyB0byBjb21waWxlIHRo
ZSBjb2RlLgogIHB1YmxpYzoKLSNpZiBkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gQysrQnVp
bGRlciBjYW5ub3QgdXNlIG1lbWJlciBvdmVybG9hZCByZXNvbHV0aW9uIGR1cmluZyB0ZW1wbGF0
ZQotICAvLyBpbnN0YW50aWF0aW9uLiAgVGhlIHNpbXBsZXN0IHdvcmthcm91bmQgaXMgdG8gdXNl
IGl0cyBDKysweCB0eXBlIHRyYWl0cwotICAvLyBmdW5jdGlvbnMgKEMrK0J1aWxkZXIgMjAwOSBh
bmQgYWJvdmUgb25seSkuCi0gIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gX19pc19jb252ZXJ0
aWJsZShGcm9tLCBUbyk7Ci0jZWxzZQotICAvLyBNU1ZDIHdhcm5zIGFib3V0IGltcGxpY2l0bHkg
Y29udmVydGluZyBmcm9tIGRvdWJsZSB0byBpbnQgZm9yCi0gIC8vIHBvc3NpYmxlIGxvc3Mgb2Yg
ZGF0YSwgc28gd2UgbmVlZCB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHRoZQotICAvLyB3YXJuaW5n
LgotICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0MjQ0KQotICBzdGF0aWMgY29u
c3QgYm9vbCB2YWx1ZSA9Ci0gICAgICBzaXplb2YoSGVscGVyKEltcGxpY2l0bHlDb252ZXJ0aWJs
ZTo6TWFrZUZyb20oKSkpID09IDE7Ci0gIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8o
KQotI2VuZGlmICAvLyBfX0JPUkxBTkRDX18KKyAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVl
ID0KKyAgICAgIEhhc0RlYnVnU3RyaW5nVHlwZTo6dmFsdWUgJiYgSGFzU2hvcnREZWJ1Z1N0cmlu
Z1R5cGU6OnZhbHVlOwogfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4K
LWNvbnN0IGJvb2wgSW1wbGljaXRseUNvbnZlcnRpYmxlPEZyb20sIFRvPjo6dmFsdWU7CiAKLS8v
IElzQVByb3RvY29sTWVzc2FnZTxUPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgYm9vbCBjb25z
dGFudCB0aGF0J3MKLS8vIHRydWUgaWZmIFQgaXMgdHlwZSBQcm90b2NvbE1lc3NhZ2UsIHByb3Rv
Mjo6TWVzc2FnZSwgb3IgYSBzdWJjbGFzcwotLy8gb2YgdGhvc2UuCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBJc0FQcm90b2NvbE1lc3NhZ2UKLSAgICA6IHB1YmxpYyBib29sX2NvbnN0
YW50PAotICBJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgVCosIGNvbnN0IDo6UHJvdG9jb2xN
ZXNzYWdlKj46OnZhbHVlIHx8Ci0gIEltcGxpY2l0bHlDb252ZXJ0aWJsZTxjb25zdCBUKiwgY29u
c3QgOjpwcm90bzI6Ok1lc3NhZ2UqPjo6dmFsdWU+IHsKLX07Citjb25zdGV4cHIgYm9vbCBIYXNE
ZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlOwogCiAvLyBXaGVuIHRoZSBj
b21waWxlciBzZWVzIGV4cHJlc3Npb24gSXNDb250YWluZXJUZXN0PEM+KDApLCBpZiBDIGlzIGFu
CiAvLyBTVEwtc3R5bGUgY29udGFpbmVyIGNsYXNzLCB0aGUgZmlyc3Qgb3ZlcmxvYWQgb2YgSXND
b250YWluZXJUZXN0CkBAIC05NDIsNyArOTQyLDYgQEAgc3RydWN0IElzQVByb3RvY29sTWVzc2Fn
ZQogLy8gSXNDb250YWluZXJUZXN0KHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yKikgYW5kCiAv
LyBJc0NvbnRhaW5lclRlc3QoLi4uKSBkb2Vzbid0IHdvcmsgd2l0aCBWaXN1YWwgQWdlIEMrKyBh
bmQgU3VuIEMrKy4KIHR5cGVkZWYgaW50IElzQ29udGFpbmVyOwotI2lmIEdURVNUX0xBTkdfQ1hY
MTEKIHRlbXBsYXRlIDxjbGFzcyBDLAogICAgICAgICAgIGNsYXNzIEl0ZXJhdG9yID0gZGVjbHR5
cGUoOjpzdGQ6OmRlY2x2YWw8Y29uc3QgQyY+KCkuYmVnaW4oKSksCiAgICAgICAgICAgY2xhc3Mg
PSBkZWNsdHlwZSg6OnN0ZDo6ZGVjbHZhbDxjb25zdCBDJj4oKS5lbmQoKSksCkBAIC05NTIsMTQg
Kzk1MSw2IEBAIHRlbXBsYXRlIDxjbGFzcyBDLAogSXNDb250YWluZXIgSXNDb250YWluZXJUZXN0
KGludCAvKiBkdW1teSAqLykgewogICByZXR1cm4gMDsKIH0KLSNlbHNlCi10ZW1wbGF0ZSA8Y2xh
c3MgQz4KLUlzQ29udGFpbmVyIElzQ29udGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgQzo6aXRlcmF0b3IqIC8qIGl0ICovID0g
TlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDOjpjb25zdF9pdGVy
YXRvciogLyogY29uc3RfaXQgKi8gPSBOVUxMKSB7Ci0gIHJldHVybiAwOwotfQotI2VuZGlmICAv
LyBHVEVTVF9MQU5HX0NYWDExCiAKIHR5cGVkZWYgY2hhciBJc05vdENvbnRhaW5lcjsKIHRlbXBs
YXRlIDxjbGFzcyBDPgpAQCAtOTgwLDQ3ICs5NzEsMzAgQEAgc3RydWN0IElzSGFzaFRhYmxlIHsK
ICAgc3RhdGljIGNoYXIgdGVzdCguLi4pOwogCiAgcHVibGljOgotICBzdGF0aWMgY29uc3QgYm9v
bCB2YWx1ZSA9IHNpemVvZih0ZXN0PFQ+KDAsIDApKSA9PSBzaXplb2YoaW50KTsKKyAgc3RhdGlj
IGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YodGVzdDxUPihudWxscHRyLCBudWxscHRyKSkgPT0g
c2l6ZW9mKGludCk7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNvbnN0IGJvb2wgSXNI
YXNoVGFibGU8VD46OnZhbHVlOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IFZvaWRU
IHsKLSAgICB0eXBlZGVmIHZvaWQgdmFsdWVfdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSA9IHZvaWQ+Ci1zdHJ1Y3QgSGFzVmFsdWVUeXBlIDogZmFsc2VfdHlwZSB7
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEhhc1ZhbHVlVHlwZTxULCBWb2lkVDx0
eXBlbmFtZSBUOjp2YWx1ZV90eXBlPiA+IDogdHJ1ZV90eXBlIHsKLX07Ci0KIHRlbXBsYXRlIDx0
eXBlbmFtZSBDLAotICAgICAgICAgIGJvb2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDAp
KSA9PSBzaXplb2YoSXNDb250YWluZXIpLAotICAgICAgICAgIGJvb2wgPSBIYXNWYWx1ZVR5cGU8
Qz46OnZhbHVlPgorICAgICAgICAgIGJvb2wgPSBzaXplb2YoSXNDb250YWluZXJUZXN0PEM+KDAp
KSA9PSBzaXplb2YoSXNDb250YWluZXIpPgogc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1w
bDsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIEMsIGJvb2wgSFY+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVD
b250YWluZXJJbXBsPEMsIGZhbHNlLCBIVj4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKK3RlbXBs
YXRlIDx0eXBlbmFtZSBDPgorc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCBmYWxz
ZT4gOiBwdWJsaWMgc3RkOjpmYWxzZV90eXBlIHt9OwogCiAvLyBTaW5jZSB0aGUgSXNSZWN1cnNp
dmVDb250YWluZXJJbXBsIGRlcGVuZHMgb24gdGhlIElzQ29udGFpbmVyVGVzdCB3ZSBuZWVkIHRv
CiAvLyBvYmV5IHRoZSBzYW1lIGluY29uc2lzdGVuY2llcyBhcyB0aGUgSXNDb250YWluZXJUZXN0
LCBuYW1lbHkgY2hlY2sgaWYKIC8vIHNvbWV0aGluZyBpcyBhIGNvbnRhaW5lciBpcyByZWx5aW5n
IG9uIG9ubHkgY29uc3RfaXRlcmF0b3IgaW4gQysrMTEgYW5kCiAvLyBpcyByZWx5aW5nIG9uIGJv
dGggY29uc3RfaXRlcmF0b3IgYW5kIGl0ZXJhdG9yIG90aGVyd2lzZQogdGVtcGxhdGUgPHR5cGVu
YW1lIEM+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWUsIGZhbHNlPiA6
IHB1YmxpYyBmYWxzZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KLXN0cnVjdCBJ
c1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8QywgdHJ1ZSwgdHJ1ZT4gewotICAjaWYgR1RFU1RfTEFO
R19DWFgxMQotICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yVHJhaXRzPHR5cGVuYW1lIEM6OmNv
bnN0X2l0ZXJhdG9yPjo6dmFsdWVfdHlwZQotICAgICAgdmFsdWVfdHlwZTsKLSNlbHNlCi0gIHR5
cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JUcmFpdHM8dHlwZW5hbWUgQzo6aXRlcmF0b3I+Ojp2YWx1
ZV90eXBlIHZhbHVlX3R5cGU7Ci0jZW5kaWYKLSAgdHlwZWRlZiBpc19zYW1lPHZhbHVlX3R5cGUs
IEM+IHR5cGU7CitzdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJbXBsPEMsIHRydWU+IHsKKyAg
dXNpbmcgdmFsdWVfdHlwZSA9IGRlY2x0eXBlKCpzdGQ6OmRlY2x2YWw8dHlwZW5hbWUgQzo6Y29u
c3RfaXRlcmF0b3I+KCkpOworICB1c2luZyB0eXBlID0KKyAgICAgIHN0ZDo6aXNfc2FtZTx0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUg
c3RkOjpyZW1vdmVfcmVmZXJlbmNlPHZhbHVlX3R5cGU+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAg
ICAgICAgICAgICBDPjsKIH07CiAKIC8vIElzUmVjdXJzaXZlQ29udGFpbmVyPFR5cGU+IGlzIGEg
dW5hcnkgY29tcGlsZS10aW1lIHByZWRpY2F0ZSB0aGF0CkBAIC0xMDMyLDEzICsxMDA2LDYgQEAg
c3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCB0cnVlLCB0cnVlPiB7CiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQz4KIHN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lciA6IHB1YmxpYyBJc1Jl
Y3Vyc2l2ZUNvbnRhaW5lckltcGw8Qz46OnR5cGUge307CiAKLS8vIEVuYWJsZUlmPGNvbmRpdGlv
bj46OnR5cGUgaXMgdm9pZCB3aGVuICdDb25kJyBpcyB0cnVlLCBhbmQKLS8vIHVuZGVmaW5lZCB3
aGVuICdDb25kJyBpcyBmYWxzZS4gIFRvIHVzZSBTRklOQUUgdG8gbWFrZSBhIGZ1bmN0aW9uCi0v
LyBvdmVybG9hZCBvbmx5IGFwcGx5IHdoZW4gYSBwYXJ0aWN1bGFyIGV4cHJlc3Npb24gaXMgdHJ1
ZSwgYWRkCi0vLyAidHlwZW5hbWUgRW5hYmxlSWY8ZXhwcmVzc2lvbj46OnR5cGUqID0gMCIgYXMg
dGhlIGxhc3QgcGFyYW1ldGVyLgotdGVtcGxhdGU8Ym9vbD4gc3RydWN0IEVuYWJsZUlmOwotdGVt
cGxhdGU8PiBzdHJ1Y3QgRW5hYmxlSWY8dHJ1ZT4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsgIC8v
IE5PTElOVAotCiAvLyBVdGlsaXRpZXMgZm9yIG5hdGl2ZSBhcnJheXMuCiAKIC8vIEFycmF5RXEo
KSBjb21wYXJlcyB0d28gay1kaW1lbnNpb25hbCBuYXRpdmUgYXJyYXlzIHVzaW5nIHRoZQpAQCAt
MTE2MSwxMCArMTEyOCw5IEBAIGNsYXNzIE5hdGl2ZUFycmF5IHsKICAgfQogCiAgcHJpdmF0ZToK
LSAgZW51bSB7Ci0gICAga0NoZWNrVHlwZUlzTm90Q29uc3RPckFSZWZlcmVuY2UgPSBTdGF0aWNB
c3NlcnRUeXBlRXFIZWxwZXI8Ci0gICAgICAgIEVsZW1lbnQsIEdURVNUX1JFTU9WRV9SRUZFUkVO
Q0VfQU5EX0NPTlNUXyhFbGVtZW50KT46OnZhbHVlCi0gIH07CisgIHN0YXRpY19hc3NlcnQoIXN0
ZDo6aXNfY29uc3Q8RWxlbWVudD46OnZhbHVlLCAiVHlwZSBtdXN0IG5vdCBiZSBjb25zdCIpOwor
ICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3JlZmVyZW5jZTxFbGVtZW50Pjo6dmFsdWUsCisgICAg
ICAgICAgICAgICAgIlR5cGUgbXVzdCBub3QgYmUgYSByZWZlcmVuY2UiKTsKIAogICAvLyBJbml0
aWFsaXplcyB0aGlzIG9iamVjdCB3aXRoIGEgY29weSBvZiB0aGUgaW5wdXQuCiAgIHZvaWQgSW5p
dENvcHkoY29uc3QgRWxlbWVudCogYXJyYXksIHNpemVfdCBhX3NpemUpIHsKQEAgLTExODUsMTMg
KzExNTEsMTkwIEBAIGNsYXNzIE5hdGl2ZUFycmF5IHsKICAgY29uc3QgRWxlbWVudCogYXJyYXlf
OwogICBzaXplX3Qgc2l6ZV87CiAgIHZvaWQgKE5hdGl2ZUFycmF5OjoqY2xvbmVfKShjb25zdCBF
bGVtZW50Kiwgc2l6ZV90KTsKK307CisKKy8vIEJhY2twb3J0IG9mIHN0ZDo6aW5kZXhfc2VxdWVu
Y2UuCit0ZW1wbGF0ZSA8c2l6ZV90Li4uIElzPgorc3RydWN0IEluZGV4U2VxdWVuY2UgeworICB1
c2luZyB0eXBlID0gSW5kZXhTZXF1ZW5jZTsKK307CisKKy8vIERvdWJsZSB0aGUgSW5kZXhTZXF1
ZW5jZSwgYW5kIG9uZSBpZiBwbHVzX29uZSBpcyB0cnVlLgordGVtcGxhdGUgPGJvb2wgcGx1c19v
bmUsIHR5cGVuYW1lIFQsIHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNlcXVlbmNlOwor
dGVtcGxhdGUgPHNpemVfdC4uLiBJLCBzaXplX3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1
ZW5jZTx0cnVlLCBJbmRleFNlcXVlbmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5cGUg
PSBJbmRleFNlcXVlbmNlPEkuLi4sIChzaXplb2ZUICsgSSkuLi4sIDIgKiBzaXplb2ZUPjsKK307
Cit0ZW1wbGF0ZSA8c2l6ZV90Li4uIEksIHNpemVfdCBzaXplb2ZUPgorc3RydWN0IERvdWJsZVNl
cXVlbmNlPGZhbHNlLCBJbmRleFNlcXVlbmNlPEkuLi4+LCBzaXplb2ZUPiB7CisgIHVzaW5nIHR5
cGUgPSBJbmRleFNlcXVlbmNlPEkuLi4sIChzaXplb2ZUICsgSSkuLi4+OworfTsKKworLy8gQmFj
a3BvcnQgb2Ygc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlLgorLy8gSXQgdXNlcyBPKGxuKE4pKSBp
bnN0YW50aWF0aW9uIGRlcHRoLgordGVtcGxhdGUgPHNpemVfdCBOPgorc3RydWN0IE1ha2VJbmRl
eFNlcXVlbmNlSW1wbAorICAgIDogRG91YmxlU2VxdWVuY2U8TiAlIDIgPT0gMSwgdHlwZW5hbWUg
TWFrZUluZGV4U2VxdWVuY2VJbXBsPE4gLyAyPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAg
IE4gLyAyPjo6dHlwZSB7fTsKIAotICBHVEVTVF9ESVNBTExPV19BU1NJR05fKE5hdGl2ZUFycmF5
KTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTWFrZUluZGV4U2VxdWVuY2VJbXBsPDA+IDogSW5kZXhT
ZXF1ZW5jZTw+IHt9OworCit0ZW1wbGF0ZSA8c2l6ZV90IE4+Cit1c2luZyBNYWtlSW5kZXhTZXF1
ZW5jZSA9IHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlSW1wbDxOPjo6dHlwZTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lLi4uIFQ+Cit1c2luZyBJbmRleFNlcXVlbmNlRm9yID0gdHlwZW5hbWUgTWFr
ZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZTsKKwordGVtcGxhdGUgPHNpemVfdD4K
K3N0cnVjdCBJZ25vcmUgeworICBJZ25vcmUoLi4uKTsgIC8vIE5PTElOVAorfTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lPgorc3RydWN0IEVsZW1Gcm9tTGlzdEltcGw7Cit0ZW1wbGF0ZSA8c2l6ZV90
Li4uIEk+CitzdHJ1Y3QgRWxlbUZyb21MaXN0SW1wbDxJbmRleFNlcXVlbmNlPEkuLi4+PiB7Cisg
IC8vIFdlIG1ha2UgSWdub3JlIGEgdGVtcGxhdGUgdG8gc29sdmUgYSBwcm9ibGVtIHdpdGggTVNW
Qy4KKyAgLy8gQSBub24tdGVtcGxhdGUgSWdub3JlIHdvdWxkIHdvcmsgZmluZSB3aXRoIGBkZWNs
dHlwZShJZ25vcmUoSSkpLi4uYCwgYnV0CisgIC8vIE1TVkMgZG9lc24ndCB1bmRlcnN0YW5kIGhv
dyB0byBkZWFsIHdpdGggdGhhdCBwYWNrIGV4cGFuc2lvbi4KKyAgLy8gVXNlIGAwICogSWAgdG8g
aGF2ZSBhIHNpbmdsZSBpbnN0YW50aWF0aW9uIG9mIElnbm9yZS4KKyAgdGVtcGxhdGUgPHR5cGVu
YW1lIFI+CisgIHN0YXRpYyBSIEFwcGx5KElnbm9yZTwwICogST4uLi4sIFIgKCopKCksIC4uLik7
Cit9OworCit0ZW1wbGF0ZSA8c2l6ZV90IE4sIHR5cGVuYW1lLi4uIFQ+CitzdHJ1Y3QgRWxlbUZy
b21MaXN0IHsKKyAgdXNpbmcgdHlwZSA9CisgICAgICBkZWNsdHlwZShFbGVtRnJvbUxpc3RJbXBs
PHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlPE4+Ojp0eXBlPjo6QXBwbHkoCisgICAgICAgICAg
c3RhdGljX2Nhc3Q8VCAoKikoKT4obnVsbHB0cikuLi4pKTsKIH07CiAKK3N0cnVjdCBGbGF0VHVw
bGVDb25zdHJ1Y3RUYWcge307CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgRmxh
dFR1cGxlOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVyaXZlZCwgc2l6ZV90IEk+CitzdHJ1Y3Qg
RmxhdFR1cGxlRWxlbUJhc2U7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBULCBzaXplX3QgST4K
K3N0cnVjdCBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIEk+IHsKKyAgdXNpbmcg
dmFsdWVfdHlwZSA9IHR5cGVuYW1lIEVsZW1Gcm9tTGlzdDxJLCBULi4uPjo6dHlwZTsKKyAgRmxh
dFR1cGxlRWxlbUJhc2UoKSA9IGRlZmF1bHQ7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmc+Cisg
IGV4cGxpY2l0IEZsYXRUdXBsZUVsZW1CYXNlKEZsYXRUdXBsZUNvbnN0cnVjdFRhZywgQXJnJiYg
dCkKKyAgICAgIDogdmFsdWUoc3RkOjpmb3J3YXJkPEFyZz4odCkpIHt9CisgIHZhbHVlX3R5cGUg
dmFsdWU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgSWR4Pgor
c3RydWN0IEZsYXRUdXBsZUJhc2U7CisKK3RlbXBsYXRlIDxzaXplX3QuLi4gSWR4LCB0eXBlbmFt
ZS4uLiBUPgorc3RydWN0IEZsYXRUdXBsZUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJbmRleFNlcXVl
bmNlPElkeC4uLj4+CisgICAgOiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElk
eD4uLi4geworICB1c2luZyBJbmRpY2VzID0gSW5kZXhTZXF1ZW5jZTxJZHguLi4+OworICBGbGF0
VHVwbGVCYXNlKCkgPSBkZWZhdWx0OworICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KKyAg
ZXhwbGljaXQgRmxhdFR1cGxlQmFzZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcsIEFyZ3MmJi4uLiBh
cmdzKQorICAgICAgOiBGbGF0VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIElkeD4oRmxh
dFR1cGxlQ29uc3RydWN0VGFne30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykpLi4uIHt9CisKKyAgdGVtcGxh
dGUgPHNpemVfdCBJPgorICBjb25zdCB0eXBlbmFtZSBFbGVtRnJvbUxpc3Q8SSwgVC4uLj46OnR5
cGUmIEdldCgpIGNvbnN0IHsKKyAgICByZXR1cm4gRmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1cGxl
PFQuLi4+LCBJPjo6dmFsdWU7CisgIH0KKworICB0ZW1wbGF0ZSA8c2l6ZV90IEk+CisgIHR5cGVu
YW1lIEVsZW1Gcm9tTGlzdDxJLCBULi4uPjo6dHlwZSYgR2V0KCkgeworICAgIHJldHVybiBGbGF0
VHVwbGVFbGVtQmFzZTxGbGF0VHVwbGU8VC4uLj4sIEk+Ojp2YWx1ZTsKKyAgfQorCisgIHRlbXBs
YXRlIDx0eXBlbmFtZSBGPgorICBhdXRvIEFwcGx5KEYmJiBmKSAtPiBkZWNsdHlwZShzdGQ6OmZv
cndhcmQ8Rj4oZikodGhpcy0+R2V0PElkeD4oKS4uLikpIHsKKyAgICByZXR1cm4gc3RkOjpmb3J3
YXJkPEY+KGYpKEdldDxJZHg+KCkuLi4pOworICB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEY+
CisgIGF1dG8gQXBwbHkoRiYmIGYpIGNvbnN0IC0+IGRlY2x0eXBlKHN0ZDo6Zm9yd2FyZDxGPihm
KSh0aGlzLT5HZXQ8SWR4PigpLi4uKSkgeworICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8Rj4oZiko
R2V0PElkeD4oKS4uLik7CisgIH0KK307CisKKy8vIEFuYWxvZyB0byBzdGQ6OnR1cGxlIGJ1dCB3
aXRoIGRpZmZlcmVudCB0cmFkZW9mZnMuCisvLyBUaGlzIGNsYXNzIG1pbmltaXplcyB0aGUgdGVt
cGxhdGUgaW5zdGFudGlhdGlvbiBkZXB0aCwgdGh1cyBhbGxvd2luZyBtb3JlCisvLyBlbGVtZW50
cyB0aGFuIHN0ZDo6dHVwbGUgd291bGQuIHN0ZDo6dHVwbGUgaGFzIGJlZW4gc2VlbiB0byByZXF1
aXJlIGFuCisvLyBpbnN0YW50aWF0aW9uIGRlcHRoIG9mIG1vcmUgdGhhbiAxMHggdGhlIG51bWJl
ciBvZiBlbGVtZW50cyBpbiBzb21lCisvLyBpbXBsZW1lbnRhdGlvbnMuCisvLyBGbGF0VHVwbGUg
YW5kIEVsZW1Gcm9tTGlzdCBhcmUgbm90IHJlY3Vyc2l2ZSBhbmQgaGF2ZSBhIGZpeGVkIGRlcHRo
CisvLyByZWdhcmRsZXNzIG9mIFQuLi4KKy8vIE1ha2VJbmRleFNlcXVlbmNlLCBvbiB0aGUgb3Ro
ZXIgaGFuZCwgaXQgaXMgcmVjdXJzaXZlIGJ1dCB3aXRoIGFuCisvLyBpbnN0YW50aWF0aW9uIGRl
cHRoIG9mIE8obG4oTikpLgordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+CitjbGFzcyBGbGF0VHVw
bGUKKyAgICA6IHByaXZhdGUgRmxhdFR1cGxlQmFzZTxGbGF0VHVwbGU8VC4uLj4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4u
KFQpPjo6dHlwZT4geworICB1c2luZyBJbmRpY2VzID0gdHlwZW5hbWUgRmxhdFR1cGxlQmFzZTwK
KyAgICAgIEZsYXRUdXBsZTxULi4uPiwgdHlwZW5hbWUgTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9m
Li4uKFQpPjo6dHlwZT46OkluZGljZXM7CisKKyBwdWJsaWM6CisgIEZsYXRUdXBsZSgpID0gZGVm
YXVsdDsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3M+CisgIGV4cGxpY2l0IEZsYXRUdXBs
ZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcgdGFnLCBBcmdzJiYuLi4gYXJncykKKyAgICAgIDogRmxh
dFR1cGxlOjpGbGF0VHVwbGVCYXNlKHRhZywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSB7
fQorCisgIHVzaW5nIEZsYXRUdXBsZTo6RmxhdFR1cGxlQmFzZTo6QXBwbHk7CisgIHVzaW5nIEZs
YXRUdXBsZTo6RmxhdFR1cGxlQmFzZTo6R2V0OworfTsKKworLy8gVXRpbGl0eSBmdW5jdGlvbnMg
dG8gYmUgY2FsbGVkIHdpdGggc3RhdGljX2Fzc2VydCB0byBpbmR1Y2UgZGVwcmVjYXRpb24KKy8v
IHdhcm5pbmdzLgorR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCIpCitjb25zdGV4cHIgYm9vbCBJbnN0YW50aWF0ZVRlc3RDYXNlX1BfSXNE
ZXByZWNhdGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVE
KAorICAgICJUWVBFRF9URVNUX0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAg
ICAiVFlQRURfVEVTVF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFR5cGVkVGVzdENhc2VfUF9J
c0RlcHJlY2F0ZWQoKSB7IHJldHVybiB0cnVlOyB9CisKK0dURVNUX0lOVEVSTkFMX0RFUFJFQ0FU
RUQoCisgICAgIlRZUEVEX1RFU1RfQ0FTRSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlICIKKyAg
ICAiVFlQRURfVEVTVF9TVUlURSIpCitjb25zdGV4cHIgYm9vbCBUeXBlZFRlc3RDYXNlSXNEZXBy
ZWNhdGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAor
ICAgICJSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNl
ICIKKyAgICAiUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QIikKK2NvbnN0ZXhwciBib29sIFJl
Z2lzdGVyVHlwZWRUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpIHsgcmV0dXJuIHRydWU7IH0KKwor
R1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRCgKKyAgICAiSU5TVEFOVElBVEVfVFlQRURfVEVTVF9D
QVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIklOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfU1VJVEVfUCIpCitjb25zdGV4cHIgYm9vbCBJbnN0YW50aWF0ZVR5cGVkVGVzdENhc2Vf
UF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVybiB0cnVlOyB9CisKIH0gIC8vIG5hbWVzcGFjZSBpbnRl
cm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAorbmFtZXNwYWNlIHN0ZCB7CisvLyBTb21l
IHN0YW5kYXJkIGxpYnJhcnkgaW1wbGVtZW50YXRpb25zIHVzZSBgc3RydWN0IHR1cGxlX3NpemVg
IGFuZCBzb21lIHVzZQorLy8gYGNsYXNzIHR1cGxlX3NpemVgLiBDbGFuZyB3YXJucyBhYm91dCB0
aGUgbWlzbWF0Y2guCisvLyBodHRwczovL3Jldmlld3MubGx2bS5vcmcvRDU1NDY2CisjaWZkZWYg
X19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzbWF0Y2hlZC10YWdzIgorI2VuZGlmCit0ZW1wbGF0ZSA8
dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3QgdHVwbGVfc2l6ZTx0ZXN0aW5nOjppbnRlcm5hbDo6Rmxh
dFR1cGxlPFRzLi4uPj4KKyAgICA6IHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90LCBzaXpl
b2YuLi4oVHMpPiB7fTsKKyNpZmRlZiBfX2NsYW5nX18KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyNlbmRpZgorfSAgLy8gbmFtZXNwYWNlIHN0ZAorCiAjZGVmaW5lIEdURVNUX01FU1NB
R0VfQVRfKGZpbGUsIGxpbmUsIG1lc3NhZ2UsIHJlc3VsdF90eXBlKSBcCiAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFzc2VydEhlbHBlcihyZXN1bHRfdHlwZSwgZmlsZSwgbGluZSwgbWVzc2FnZSkg
XAogICAgID0gOjp0ZXN0aW5nOjpNZXNzYWdlKCkKQEAgLTEyMDgsNTEgKzEzNTEsMTI4IEBAIGNs
YXNzIE5hdGl2ZUFycmF5IHsKICNkZWZpbmUgR1RFU1RfU1VDQ0VTU18obWVzc2FnZSkgXAogICBH
VEVTVF9NRVNTQUdFXyhtZXNzYWdlLCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OjprU3VjY2Vz
cykKIAotLy8gU3VwcHJlc3MgTVNWQyB3YXJuaW5nIDQ3MDIgKHVucmVhY2hhYmxlIGNvZGUpIGZv
ciB0aGUgY29kZSBmb2xsb3dpbmcKKyNkZWZpbmUgR1RFU1RfU0tJUF8obWVzc2FnZSkgXAorICBy
ZXR1cm4gR1RFU1RfTUVTU0FHRV8obWVzc2FnZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6
a1NraXApCisKKy8vIFN1cHByZXNzIE1TVkMgd2FybmluZyA0MDcyICh1bnJlYWNoYWJsZSBjb2Rl
KSBmb3IgdGhlIGNvZGUgZm9sbG93aW5nCiAvLyBzdGF0ZW1lbnQgaWYgaXQgcmV0dXJucyBvciB0
aHJvd3MgKG9yIGRvZXNuJ3QgcmV0dXJuIG9yIHRocm93IGluIHNvbWUKIC8vIHNpdHVhdGlvbnMp
LgorLy8gTk9URTogVGhlICJlbHNlIiBpcyBpbXBvcnRhbnQgdG8ga2VlcCB0aGlzIGV4cGFuc2lv
biB0byBwcmV2ZW50IGEgdG9wLWxldmVsCisvLyAiZWxzZSIgZnJvbSBhdHRhY2hpbmcgdG8gb3Vy
ICJpZiIuCiAjZGVmaW5lIEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19C
RUxPV18oc3RhdGVtZW50KSBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVl
KCkpIHsgc3RhdGVtZW50OyB9CisgIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVl
KCkpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGVtZW50OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0gZWxzZSAgICAg
ICAgICAgICAgICAgICAgIC8qIE5PTElOVCAqLyAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgc3RhdGljX2Fzc2VydCh0cnVlLCAiIikgIC8vIFVzZXIgbXVzdCBoYXZlIGEgc2VtaWNvbG9u
IGFmdGVyIGV4cGFuc2lvbi4KIAotI2RlZmluZSBHVEVTVF9URVNUX1RIUk9XXyhzdGF0ZW1lbnQs
IGV4cGVjdGVkX2V4Y2VwdGlvbiwgZmFpbCkgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9D
S0VSXyBcCi0gIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpDb25zdENoYXJQdHIgZ3Rlc3RfbXNn
ID0gIiIpIHsgXAotICAgIGJvb2wgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gZmFsc2U7IFwKLSAg
ICB0cnkgeyBcCi0gICAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdf
QkVMT1dfKHN0YXRlbWVudCk7IFwKLSAgICB9IFwKLSAgICBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0
aW9uIGNvbnN0JikgeyBcCi0gICAgICBndGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSB0cnVlOyBcCi0g
ICAgfSBcCi0gICAgY2F0Y2ggKC4uLikgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBcCi0g
ICAgICAgICAgIkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9m
IHR5cGUgIiBcCi0gICAgICAgICAgI2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6IGl0
IHRocm93cyBhIGRpZmZlcmVudCB0eXBlLiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RP
S0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgICBp
ZiAoIWd0ZXN0X2NhdWdodF9leHBlY3RlZCkgeyBcCi0gICAgICBndGVzdF9tc2cudmFsdWUgPSBc
Ci0gICAgICAgICAgIkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiB0aHJvd3MgYW4gZXhjZXB0aW9u
IG9mIHR5cGUgIiBcCi0gICAgICAgICAgI2V4cGVjdGVkX2V4Y2VwdGlvbiAiLlxuICBBY3R1YWw6
IGl0IHRocm93cyBub3RoaW5nLiI7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhn
dGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7IFwKLSAgICB9IFwKLSAgfSBlbHNlIFwK
LSAgICBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9f
KTogXAotICAgICAgZmFpbChndGVzdF9tc2cudmFsdWUpCisjaWYgR1RFU1RfSEFTX0VYQ0VQVElP
TlMKKworbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKKworY2xhc3Mg
TmV2ZXJUaHJvd24geworIHB1YmxpYzoKKyAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhj
ZXB0IHsKKyAgICByZXR1cm4gInRoaXMgZXhjZXB0aW9uIHNob3VsZCBuZXZlciBiZSB0aHJvd24i
OworICB9Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0
ZXN0aW5nCisKKyNpZiBHVEVTVF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9U
WVBFXyhlKSA6OnRlc3Rpbmc6OmludGVybmFsOjpHZXRUeXBlTmFtZSh0eXBlaWQoZSkpCisKKyNl
bHNlICAvLyBHVEVTVF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX0VYQ0VQVElPTl9UWVBFXyhl
KSBcCisgIHN0ZDo6c3RyaW5nIHsgImFuIHN0ZDo6ZXhjZXB0aW9uLWRlcml2ZWQgZXJyb3IiIH0K
KworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1df
Q0FUQ0hfU1REX0VYQ0VQVElPTl8oc3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pICAgXAor
ICBjYXRjaCAodHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ICBcCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4Y2VwdGlvbj46OnR5cGU+Ojp0eXBlLCAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZXhjZXB0aW9uPjo6
dmFsdWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGNvbnN0
IDo6dGVzdGluZzo6aW50ZXJuYWw6Ok5ldmVyVGhyb3duJiwgY29uc3Qgc3RkOjpleGNlcHRpb24m
Pjo6dHlwZSBcCisgICAgICAgICAgICAgZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSA9
ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAi
ICNleHBlY3RlZF9leGNlcHRpb24gICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgIi5cbiAg
QWN0dWFsOiBpdCB0aHJvd3MgIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGd0ZXN0X21zZy52YWx1ZSArPSBHVEVTVF9FWENFUFRJT05fVFlQRV8oZSk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2Ny
aXB0aW9uIFwiIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3Rf
bXNnLnZhbHVlICs9IGUud2hhdCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSArPSAiXCIuIjsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3RvIEdURVNUX0NP
TkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdHRocm93XywgX19MSU5FX18pOyAgICAgICAgICAg
ICAgICBcCisgIH0KKworI2Vsc2UgIC8vIEdURVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUg
R1RFU1RfVEVTVF9USFJPV19DQVRDSF9TVERfRVhDRVBUSU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVk
X2V4Y2VwdGlvbikKKworI2VuZGlmICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUworCisjZGVmaW5l
IEdURVNUX1RFU1RfVEhST1dfKHN0YXRlbWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBmYWlsKSAg
ICAgICAgICAgICAgXAorICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKDo6dGVzdGluZzo6aW50
ZXJuYWw6OlRydWVXaXRoU3RyaW5nIGd0ZXN0X21zZ3t9KSB7ICAgICAgICAgICAgICAgICAgICBc
CisgICAgYm9vbCBndGVzdF9jYXVnaHRfZXhwZWN0ZWQgPSBmYWxzZTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNU
X1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50KTsgICAg
ICAgICAgICBcCisgICAgfSBjYXRjaCAoZXhwZWN0ZWRfZXhjZXB0aW9uIGNvbnN0JikgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZ3Rlc3RfY2F1Z2h0X2V4cGVj
dGVkID0gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfVEVTVF9USFJPV19DQVRDSF9TVERfRVhDRVBU
SU9OXyhzdGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbikgICAgXAorICAgIGNhdGNoICguLi4p
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3RlZDogIiAjc3RhdGVtZW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAiIHRo
cm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9leGNlcHRpb24gXAorICAgICAg
ICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlw
ZS4iOyAgICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJl
bF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIGlmICghZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkKSB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGd0ZXN0X21zZy52YWx1ZSA9ICJFeHBlY3Rl
ZDogIiAjc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAiIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSAiICNleHBlY3RlZF9l
eGNlcHRpb24gXAorICAgICAgICAgICAgICAgICAgICAgICAgIi5cbiAgQWN0dWFsOiBpdCB0aHJv
d3Mgbm90aGluZy4iOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGdvdG8gR1RFU1RfQ09OQ0FU
X1RPS0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk7ICAgICAgICAgICBcCisg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICB9IGVsc2UgLypOT0xJTlQqLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9DT05D
QVRfVE9LRU5fKGd0ZXN0X2xhYmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKSAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIDogZmFpbChndGVzdF9tc2cudmFsdWUuY19zdHIoKSkKKworI2lmIEdU
RVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9OT19USFJPV19DQVRDSF9T
VERfRVhDRVBUSU9OXygpICAgICAgICAgICAgICAgIFwKKyAgY2F0Y2ggKHN0ZDo6ZXhjZXB0aW9u
IGNvbnN0JiBlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9t
c2cudmFsdWUgPSAiaXQgdGhyb3dzICI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBndGVzdF9tc2cudmFsdWUgKz0gR1RFU1RfRVhDRVBUSU9OX1RZUEVfKGUpOyAgICAgICAg
ICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gIiB3aXRoIGRlc2NyaXB0aW9uIFwi
IjsgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0gZS53aGF0KCk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUg
Kz0gIlwiLiI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBnb3Rv
IEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk7
IFwKKyAgfQorCisjZWxzZSAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworI2RlZmluZSBHVEVT
VF9URVNUX05PX1RIUk9XX0NBVENIX1NURF9FWENFUFRJT05fKCkKKworI2VuZGlmICAvLyBHVEVT
VF9IQVNfRVhDRVBUSU9OUwogCiAjZGVmaW5lIEdURVNUX1RFU1RfTk9fVEhST1dfKHN0YXRlbWVu
dCwgZmFpbCkgXAogICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRl
c3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgXAorICBpZiAoOjp0ZXN0aW5nOjppbnRl
cm5hbDo6VHJ1ZVdpdGhTdHJpbmcgZ3Rlc3RfbXNne30pIHsgXAogICAgIHRyeSB7IFwKICAgICAg
IEdURVNUX1NVUFBSRVNTX1VOUkVBQ0hBQkxFX0NPREVfV0FSTklOR19CRUxPV18oc3RhdGVtZW50
KTsgXAogICAgIH0gXAorICAgIEdURVNUX1RFU1RfTk9fVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElP
Tl8oKSBcCiAgICAgY2F0Y2ggKC4uLikgeyBcCisgICAgICBndGVzdF9tc2cudmFsdWUgPSAiaXQg
dGhyb3dzLiI7IFwKICAgICAgIGdvdG8gR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJlbF90
ZXN0bm90aHJvd18sIF9fTElORV9fKTsgXAogICAgIH0gXAogICB9IGVsc2UgXAogICAgIEdURVNU
X0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAg
ICAgIGZhaWwoIkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2Vw
dGlvbi5cbiIgXAotICAgICAgICAgICAiICBBY3R1YWw6IGl0IHRocm93cy4iKQorICAgICAgZmFp
bCgoIkV4cGVjdGVkOiAiICNzdGF0ZW1lbnQgIiBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi5c
biIgXAorICAgICAgICAgICAgIiAgQWN0dWFsOiAiICsgZ3Rlc3RfbXNnLnZhbHVlKS5jX3N0cigp
KQogCiAjZGVmaW5lIEdURVNUX1RFU1RfQU5ZX1RIUk9XXyhzdGF0ZW1lbnQsIGZhaWwpIFwKICAg
R1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXApAQCAtMTMwMCwzMSArMTUyMCw0MSBAQCBj
bGFzcyBOYXRpdmVBcnJheSB7CiAgICAgICAgICAgICIgIEFjdHVhbDogaXQgZG9lcy4iKQogCiAv
LyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIGdp
dmVuIHRlc3QuCi0jZGVmaW5lIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUs
IHRlc3RfbmFtZSkgXAotICB0ZXN0X2Nhc2VfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAorI2Rl
ZmluZSBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSBc
CisgIHRlc3Rfc3VpdGVfbmFtZSMjXyMjdGVzdF9uYW1lIyNfVGVzdAogCiAvLyBIZWxwZXIgbWFj
cm8gZm9yIGRlZmluaW5nIHRlc3RzLgotI2RlZmluZSBHVEVTVF9URVNUXyh0ZXN0X2Nhc2VfbmFt
ZSwgdGVzdF9uYW1lLCBwYXJlbnRfY2xhc3MsIHBhcmVudF9pZClcCi1jbGFzcyBHVEVTVF9URVNU
X0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpIDogcHVibGljIHBhcmVudF9j
bGFzcyB7XAotIHB1YmxpYzpcCi0gIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25h
bWUsIHRlc3RfbmFtZSkoKSB7fVwKLSBwcml2YXRlOlwKLSAgdmlydHVhbCB2b2lkIFRlc3RCb2R5
KCk7XAotICBzdGF0aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvXyBHVEVT
VF9BVFRSSUJVVEVfVU5VU0VEXztcCi0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
XAotICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
KSk7XAotfTtcCi1cCi06OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCBHVEVTVF9URVNUX0NMQVNT
X05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpXAotICA6OnRlc3RfaW5mb18gPVwKLSAg
ICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbyhcCi0gICAgICAg
ICN0ZXN0X2Nhc2VfbmFtZSwgI3Rlc3RfbmFtZSwgTlVMTCwgTlVMTCwgXAotICAgICAgICA6OnRl
c3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgXAotICAg
ICAgICAocGFyZW50X2lkKSwgXAotICAgICAgICBwYXJlbnRfY2xhc3M6OlNldFVwVGVzdENhc2Us
IFwKLSAgICAgICAgcGFyZW50X2NsYXNzOjpUZWFyRG93blRlc3RDYXNlLCBcCi0gICAgICAgIG5l
dyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0RmFjdG9yeUltcGw8XAotICAgICAgICAgICAgR1RF
U1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4pO1wKLXZvaWQg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKTo6VGVzdEJv
ZHkoKQotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfSU5U
RVJOQUxfSF8KKyNkZWZpbmUgR1RFU1RfVEVTVF8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUs
IHBhcmVudF9jbGFzcywgcGFyZW50X2lkKSAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2Yo
R1RFU1RfU1RSSU5HSUZZXyh0ZXN0X3N1aXRlX25hbWUpKSA+IDEsICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAidGVzdF9zdWl0ZV9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoR1RFU1RfU1RS
SU5HSUZZXyh0ZXN0X25hbWUpKSA+IDEsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgICAgICAidGVzdF9uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgY2xhc3MgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRl
X25hbWUsIHRlc3RfbmFtZSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDogcHVibGljIHBh
cmVudF9jbGFzcyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgIHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVf
KHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKSgpID0gZGVmYXVsdDsgICAgICAgICAgIFwKKyAg
ICB+R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkoKSBv
dmVycmlkZSA9IGRlZmF1bHQ7IFwKKyAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05f
KEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1l
KSk7ICAgICAgIFwKKyAgICBHVEVTVF9ESVNBTExPV19NT1ZFX0FORF9BU1NJR05fKEdURVNUX1RF
U1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCAgIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKSk7ICAgICAg
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHByaXZhdGU6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2
b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3Qg
dGVzdF9pbmZvXyBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsgICAgIFwKKyAgfTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgOjp0ZXN0aW5nOjpUZXN0SW5mbyog
Y29uc3QgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X25hbWUpOjp0ZXN0X2luZm9fID0gIFwKKyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VB
bmRSZWdpc3RlclRlc3RJbmZvKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAjdGVzdF9zdWl0ZV9uYW1lLCAjdGVzdF9uYW1lLCBudWxscHRyLCBudWxscHRyLCAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRp
b24oX19GSUxFX18sIF9fTElORV9fKSwgKHBhcmVudF9pZCksIFwKKyAgICAgICAgICA6OnRlc3Rp
bmc6OmludGVybmFsOjpTdWl0ZUFwaVJlc29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgICAgcGFyZW50X2NsYXNzPjo6R2V0U2V0VXBDYXNlT3JTdWl0ZShf
X0ZJTEVfXywgX19MSU5FX18pLCAgICAgICAgIFwKKyAgICAgICAgICA6OnRlc3Rpbmc6OmludGVy
bmFsOjpTdWl0ZUFwaVJlc29sdmVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgcGFyZW50X2NsYXNzPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShfX0ZJTEVf
XywgX19MSU5FX18pLCAgICAgIFwKKyAgICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6
VGVzdEZhY3RvcnlJbXBsPEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8oICAgIFwKKyAgICAgICAgICAg
ICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpPik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgdm9pZCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFt
ZSwgdGVzdF9uYW1lKTo6VGVzdEJvZHkoKQorCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9JTlRFUk5BTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWxp
bmtlZF9wdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgyYjg3Mjg5YWUxN2M4
YWE3Yjk2ZDhlOGM5MmI5NmUwMThjNzY4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2lu
dGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBA
Ci0vLyBDb3B5cmlnaHQgMjAwMyBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8g
ZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS8vCi0vLyBBICJz
bWFydCIgcG9pbnRlciB0eXBlIHdpdGggcmVmZXJlbmNlIHRyYWNraW5nLiAgRXZlcnkgcG9pbnRl
ciB0byBhCi0vLyBwYXJ0aWN1bGFyIG9iamVjdCBpcyBrZXB0IG9uIGEgY2lyY3VsYXIgbGlua2Vk
IGxpc3QuICBXaGVuIHRoZSBsYXN0IHBvaW50ZXIKLS8vIHRvIGFuIG9iamVjdCBpcyBkZXN0cm95
ZWQgb3IgcmVhc3NpZ25lZCwgdGhlIG9iamVjdCBpcyBkZWxldGVkLgotLy8KLS8vIFVzZWQgcHJv
cGVybHksIHRoaXMgZGVsZXRlcyB0aGUgb2JqZWN0IHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGdv
ZXMgYXdheS4KLS8vIFRoZXJlIGFyZSBzZXZlcmFsIGNhdmVhdHM6Ci0vLyAtIExpa2UgYWxsIHJl
ZmVyZW5jZSBjb3VudGluZyBzY2hlbWVzLCBjeWNsZXMgbGVhZCB0byBsZWFrcy4KLS8vIC0gRWFj
aCBzbWFydCBwb2ludGVyIGlzIGFjdHVhbGx5IHR3byBwb2ludGVycyAoOCBieXRlcyBpbnN0ZWFk
IG9mIDQpLgotLy8gLSBFdmVyeSB0aW1lIGEgcG9pbnRlciBpcyBhc3NpZ25lZCwgdGhlIGVudGly
ZSBsaXN0IG9mIHBvaW50ZXJzIHRvIHRoYXQKLS8vICAgb2JqZWN0IGlzIHRyYXZlcnNlZC4gIFRo
aXMgY2xhc3MgaXMgdGhlcmVmb3JlIE5PVCBTVUlUQUJMRSB3aGVuIHRoZXJlCi0vLyAgIHdpbGwg
b2Z0ZW4gYmUgbW9yZSB0aGFuIHR3byBvciB0aHJlZSBwb2ludGVycyB0byBhIHBhcnRpY3VsYXIg
b2JqZWN0LgotLy8gLSBSZWZlcmVuY2VzIGFyZSBvbmx5IHRyYWNrZWQgYXMgbG9uZyBhcyBsaW5r
ZWRfcHRyPD4gb2JqZWN0cyBhcmUgY29waWVkLgotLy8gICBJZiBhIGxpbmtlZF9wdHI8PiBpcyBj
b252ZXJ0ZWQgdG8gYSByYXcgcG9pbnRlciBhbmQgYmFjaywgQkFEIFRISU5HUwotLy8gICB3aWxs
IGhhcHBlbiAoZG91YmxlIGRlbGV0aW9uKS4KLS8vCi0vLyBBIGdvb2QgdXNlIG9mIHRoaXMgY2xh
c3MgaXMgc3RvcmluZyBvYmplY3QgcmVmZXJlbmNlcyBpbiBTVEwgY29udGFpbmVycy4KLS8vIFlv
dSBjYW4gc2FmZWx5IHB1dCBsaW5rZWRfcHRyPD4gaW4gYSB2ZWN0b3I8Pi4KLS8vIE90aGVyIHVz
ZXMgbWF5IG5vdCBiZSBhcyBnb29kLgotLy8KLS8vIE5vdGU6IElmIHlvdSB1c2UgYW4gaW5jb21w
bGV0ZSB0eXBlIHdpdGggbGlua2VkX3B0cjw+LCB0aGUgY2xhc3MKLS8vICpjb250YWluaW5nKiBs
aW5rZWRfcHRyPD4gbXVzdCBoYXZlIGEgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKGV2ZW4K
LS8vIGlmIHRoZXkgZG8gbm90aGluZyEpLgotLy8KLS8vIEJpbGwgR2liYm9ucyBzdWdnZXN0ZWQg
d2UgdXNlIHNvbWV0aGluZyBsaWtlIHRoaXMuCi0vLwotLy8gVGhyZWFkIFNhZmV0eToKLS8vICAg
VW5saWtlIG90aGVyIGxpbmtlZF9wdHIgaW1wbGVtZW50YXRpb25zLCBpbiB0aGlzIGltcGxlbWVu
dGF0aW9uCi0vLyAgIGEgbGlua2VkX3B0ciBvYmplY3QgaXMgdGhyZWFkLXNhZmUgaW4gdGhlIHNl
bnNlIHRoYXQ6Ci0vLyAgICAgLSBpdCdzIHNhZmUgdG8gY29weSBsaW5rZWRfcHRyIG9iamVjdHMg
Y29uY3VycmVudGx5LAotLy8gICAgIC0gaXQncyBzYWZlIHRvIGNvcHkgKmZyb20qIGEgbGlua2Vk
X3B0ciBhbmQgcmVhZCBpdHMgdW5kZXJseWluZwotLy8gICAgICAgcmF3IHBvaW50ZXIgKGUuZy4g
dmlhIGdldCgpKSBjb25jdXJyZW50bHksIGFuZAotLy8gICAgIC0gaXQncyBzYWZlIHRvIHdyaXRl
IHRvIHR3byBsaW5rZWRfcHRycyB0aGF0IHBvaW50IHRvIHRoZSBzYW1lCi0vLyAgICAgICBzaGFy
ZWQgb2JqZWN0IGNvbmN1cnJlbnRseS4KLS8vIEZJWE1FOiByZW5hbWUgdGhpcyB0byBzYWZlX2xp
bmtlZF9wdHIgdG8gYXZvaWQKLS8vIGNvbmZ1c2lvbiB3aXRoIG5vcm1hbCBsaW5rZWRfcHRyLgot
Ci0vLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9MSU5LRURfUFRSX0hfCi0jZGVmaW5lIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfTElOS0VEX1BUUl9IXwotCi0jaW5jbHVkZSA8c3Rk
bGliLmg+Ci0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1wb3J0LmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7
Ci0KLS8vIFByb3RlY3RzIGNvcHlpbmcgb2YgYWxsIGxpbmtlZF9wdHIgb2JqZWN0cy4KLUdURVNU
X0FQSV8gR1RFU1RfREVDTEFSRV9TVEFUSUNfTVVURVhfKGdfbGlua2VkX3B0cl9tdXRleCk7Ci0K
LS8vIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IGFsbCBpbnN0YW5jZXMgb2YgbGlua2VkX3B0
cjw+LiAgSXQgbmVlZHMgdG8gYmUKLS8vIGEgbm9uLXRlbXBsYXRlIGNsYXNzIGJlY2F1c2UgZGlm
ZmVyZW50IHR5cGVzIG9mIGxpbmtlZF9wdHI8PiBjYW4gcmVmZXIgdG8KLS8vIHRoZSBzYW1lIG9i
amVjdCAobGlua2VkX3B0cjxTdXBlcmNsYXNzPihvYmopIHZzIGxpbmtlZF9wdHI8U3ViY2xhc3M+
KG9iaikpLgotLy8gU28sIGl0IG5lZWRzIHRvIGJlIHBvc3NpYmxlIGZvciBkaWZmZXJlbnQgdHlw
ZXMgb2YgbGlua2VkX3B0ciB0byBwYXJ0aWNpcGF0ZQotLy8gaW4gdGhlIHNhbWUgY2lyY3VsYXIg
bGlua2VkIGxpc3QsIHNvIHdlIG5lZWQgYSBzaW5nbGUgY2xhc3MgdHlwZSBoZXJlLgotLy8KLS8v
IERPIE5PVCBVU0UgVEhJUyBDTEFTUyBESVJFQ1RMWSBZT1VSU0VMRi4gIFVzZSBsaW5rZWRfcHRy
PFQ+LgotY2xhc3MgbGlua2VkX3B0cl9pbnRlcm5hbCB7Ci0gcHVibGljOgotICAvLyBDcmVhdGUg
YSBuZXcgY2lyY2xlIHRoYXQgaW5jbHVkZXMgb25seSB0aGlzIGluc3RhbmNlLgotICB2b2lkIGpv
aW5fbmV3KCkgewotICAgIG5leHRfID0gdGhpczsKLSAgfQotCi0gIC8vIE1hbnkgbGlua2VkX3B0
ciBvcGVyYXRpb25zIG1heSBjaGFuZ2UgcC5saW5rXyBmb3Igc29tZSBsaW5rZWRfcHRyCi0gIC8v
IHZhcmlhYmxlIHAgaW4gdGhlIHNhbWUgY2lyY2xlIGFzIHRoaXMgb2JqZWN0LiAgVGhlcmVmb3Jl
IHdlIG5lZWQKLSAgLy8gdG8gcHJldmVudCB0d28gc3VjaCBvcGVyYXRpb25zIGZyb20gb2NjdXJy
aW5nIGNvbmN1cnJlbnRseS4KLSAgLy8KLSAgLy8gTm90ZSB0aGF0IGRpZmZlcmVudCB0eXBlcyBv
ZiBsaW5rZWRfcHRyIG9iamVjdHMgY2FuIGNvZXhpc3QgaW4gYQotICAvLyBjaXJjbGUgKGUuZy4g
bGlua2VkX3B0cjxCYXNlPiwgbGlua2VkX3B0cjxEZXJpdmVkMT4sIGFuZAotICAvLyBsaW5rZWRf
cHRyPERlcml2ZWQyPikuICBUaGVyZWZvcmUgd2UgbXVzdCB1c2UgYSBzaW5nbGUgbXV0ZXggdG8K
LSAgLy8gcHJvdGVjdCBhbGwgbGlua2VkX3B0ciBvYmplY3RzLiAgVGhpcyBjYW4gY3JlYXRlIHNl
cmlvdXMKLSAgLy8gY29udGVudGlvbiBpbiBwcm9kdWN0aW9uIGNvZGUsIGJ1dCBpcyBhY2NlcHRh
YmxlIGluIGEgdGVzdGluZwotICAvLyBmcmFtZXdvcmsuCi0KLSAgLy8gSm9pbiBhbiBleGlzdGlu
ZyBjaXJjbGUuCi0gIHZvaWQgam9pbihsaW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwdHIpCi0g
ICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRl
eExvY2sgbG9jaygmZ19saW5rZWRfcHRyX211dGV4KTsKLQotICAgIGxpbmtlZF9wdHJfaW50ZXJu
YWwgY29uc3QqIHAgPSBwdHI7Ci0gICAgd2hpbGUgKHAtPm5leHRfICE9IHB0cikgewotICAgICAg
YXNzZXJ0KHAtPm5leHRfICE9IHRoaXMgJiYKLSAgICAgICAgICAgICAiVHJ5aW5nIHRvIGpvaW4o
KSBhIGxpbmtlZCByaW5nIHdlIGFyZSBhbHJlYWR5IGluLiAiCi0gICAgICAgICAgICAgIklzIEdN
b2NrIHRocmVhZCBzYWZldHkgZW5hYmxlZD8iKTsKLSAgICAgIHAgPSBwLT5uZXh0XzsKLSAgICB9
Ci0gICAgcC0+bmV4dF8gPSB0aGlzOwotICAgIG5leHRfID0gcHRyOwotICB9Ci0KLSAgLy8gTGVh
dmUgd2hhdGV2ZXIgY2lyY2xlIHdlJ3JlIHBhcnQgb2YuICBSZXR1cm5zIHRydWUgaWYgd2Ugd2Vy
ZSB0aGUKLSAgLy8gbGFzdCBtZW1iZXIgb2YgdGhlIGNpcmNsZS4gIE9uY2UgdGhpcyBpcyBkb25l
LCB5b3UgY2FuIGpvaW4oKSBhbm90aGVyLgotICBib29sIGRlcGFydCgpCi0gICAgICBHVEVTVF9M
T0NLX0VYQ0xVREVEXyhnX2xpbmtlZF9wdHJfbXV0ZXgpIHsKLSAgICBNdXRleExvY2sgbG9jaygm
Z19saW5rZWRfcHRyX211dGV4KTsKLQotICAgIGlmIChuZXh0XyA9PSB0aGlzKSByZXR1cm4gdHJ1
ZTsKLSAgICBsaW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwID0gbmV4dF87Ci0gICAgd2hpbGUg
KHAtPm5leHRfICE9IHRoaXMpIHsKLSAgICAgIGFzc2VydChwLT5uZXh0XyAhPSBuZXh0XyAmJgot
ICAgICAgICAgICAgICJUcnlpbmcgdG8gZGVwYXJ0KCkgYSBsaW5rZWQgcmluZyB3ZSBhcmUgbm90
IGluLiAiCi0gICAgICAgICAgICAgIklzIEdNb2NrIHRocmVhZCBzYWZldHkgZW5hYmxlZD8iKTsK
LSAgICAgIHAgPSBwLT5uZXh0XzsKLSAgICB9Ci0gICAgcC0+bmV4dF8gPSBuZXh0XzsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIG11dGFibGUgbGlua2VkX3B0cl9pbnRl
cm5hbCBjb25zdCogbmV4dF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIGxp
bmtlZF9wdHIgewotIHB1YmxpYzoKLSAgdHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKLQotICAvLyBU
YWtlIG92ZXIgb3duZXJzaGlwIG9mIGEgcmF3IHBvaW50ZXIuICBUaGlzIHNob3VsZCBoYXBwZW4g
YXMgc29vbiBhcwotICAvLyBwb3NzaWJsZSBhZnRlciB0aGUgb2JqZWN0IGlzIGNyZWF0ZWQuCi0g
IGV4cGxpY2l0IGxpbmtlZF9wdHIoVCogcHRyID0gTlVMTCkgeyBjYXB0dXJlKHB0cik7IH0KLSAg
fmxpbmtlZF9wdHIoKSB7IGRlcGFydCgpOyB9Ci0KLSAgLy8gQ29weSBhbiBleGlzdGluZyBsaW5r
ZWRfcHRyPD4sIGFkZGluZyBvdXJzZWx2ZXMgdG8gdGhlIGxpc3Qgb2YgcmVmZXJlbmNlcy4KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFU+IGxpbmtlZF9wdHIobGlua2VkX3B0cjxVPiBjb25zdCYgcHRy
KSB7IGNvcHkoJnB0cik7IH0KLSAgbGlua2VkX3B0cihsaW5rZWRfcHRyIGNvbnN0JiBwdHIpIHsg
IC8vIE5PTElOVAotICAgIGFzc2VydCgmcHRyICE9IHRoaXMpOwotICAgIGNvcHkoJnB0cik7Ci0g
IH0KLQotICAvLyBBc3NpZ25tZW50IHJlbGVhc2VzIHRoZSBvbGQgdmFsdWUgYW5kIGFjcXVpcmVz
IHRoZSBuZXcuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBsaW5rZWRfcHRyJiBvcGVyYXRvcj0o
bGlua2VkX3B0cjxVPiBjb25zdCYgcHRyKSB7Ci0gICAgZGVwYXJ0KCk7Ci0gICAgY29weSgmcHRy
KTsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBsaW5rZWRfcHRyJiBvcGVyYXRvcj0obGlu
a2VkX3B0ciBjb25zdCYgcHRyKSB7Ci0gICAgaWYgKCZwdHIgIT0gdGhpcykgewotICAgICAgZGVw
YXJ0KCk7Ci0gICAgICBjb3B5KCZwdHIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0K
LQotICAvLyBTbWFydCBwb2ludGVyIG1lbWJlcnMuCi0gIHZvaWQgcmVzZXQoVCogcHRyID0gTlVM
TCkgewotICAgIGRlcGFydCgpOwotICAgIGNhcHR1cmUocHRyKTsKLSAgfQotICBUKiBnZXQoKSBj
b25zdCB7IHJldHVybiB2YWx1ZV87IH0KLSAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJu
IHZhbHVlXzsgfQotICBUJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiAqdmFsdWVfOyB9Ci0K
LSAgYm9vbCBvcGVyYXRvcj09KFQqIHApIGNvbnN0IHsgcmV0dXJuIHZhbHVlXyA9PSBwOyB9Ci0g
IGJvb2wgb3BlcmF0b3IhPShUKiBwKSBjb25zdCB7IHJldHVybiB2YWx1ZV8gIT0gcDsgfQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KLSAgYm9vbCBvcGVyYXRvcj09KGxpbmtlZF9wdHI8VT4gY29u
c3QmIHB0cikgY29uc3QgewotICAgIHJldHVybiB2YWx1ZV8gPT0gcHRyLmdldCgpOwotICB9Ci0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBVPgotICBib29sIG9wZXJhdG9yIT0obGlua2VkX3B0cjxVPiBj
b25zdCYgcHRyKSBjb25zdCB7Ci0gICAgcmV0dXJuIHZhbHVlXyAhPSBwdHIuZ2V0KCk7Ci0gIH0K
LQotIHByaXZhdGU6Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgotICBmcmllbmQgY2xhc3MgbGlu
a2VkX3B0cjsKLQotICBUKiB2YWx1ZV87Ci0gIGxpbmtlZF9wdHJfaW50ZXJuYWwgbGlua187Ci0K
LSAgdm9pZCBkZXBhcnQoKSB7Ci0gICAgaWYgKGxpbmtfLmRlcGFydCgpKSBkZWxldGUgdmFsdWVf
OwotICB9Ci0KLSAgdm9pZCBjYXB0dXJlKFQqIHB0cikgewotICAgIHZhbHVlXyA9IHB0cjsKLSAg
ICBsaW5rXy5qb2luX25ldygpOwotICB9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IHZvaWQg
Y29weShsaW5rZWRfcHRyPFU+IGNvbnN0KiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHItPmdldCgp
OwotICAgIGlmICh2YWx1ZV8pCi0gICAgICBsaW5rXy5qb2luKCZwdHItPmxpbmtfKTsKLSAgICBl
bHNlCi0gICAgICBsaW5rXy5qb2luX25ldygpOwotICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUKLWJvb2wgb3BlcmF0b3I9PShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4m
IHgpIHsKLSAgcmV0dXJuIHB0ciA9PSB4LmdldCgpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBpbmxpbmUKLWJvb2wgb3BlcmF0b3IhPShUKiBwdHIsIGNvbnN0IGxpbmtlZF9wdHI8VD4mIHgp
IHsKLSAgcmV0dXJuIHB0ciAhPSB4LmdldCgpOwotfQotCi0vLyBBIGZ1bmN0aW9uIHRvIGNvbnZl
cnQgVCogaW50byBsaW5rZWRfcHRyPFQ+Ci0vLyBEb2luZyBlLmcuIG1ha2VfbGlua2VkX3B0cihu
ZXcgRm9vQmFyQmF6PHR5cGU+KGFyZykpIGlzIGEgc2hvcnRlciBub3RhdGlvbgotLy8gZm9yIGxp
bmtlZF9wdHI8Rm9vQmFyQmF6PHR5cGU+ID4obmV3IEZvb0JhckJhejx0eXBlPihhcmcpKQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci1saW5rZWRfcHRyPFQ+IG1ha2VfbGlua2VkX3B0cihUKiBwdHIp
IHsKLSAgcmV0dXJuIGxpbmtlZF9wdHI8VD4ocHRyKTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGlu
dGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGluZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfTElOS0VEX1BUUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGls
LWdlbmVyYXRlZC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZmFjOGMwMjcwM2Q1OTFlYjJmMjJlZjE0ODQxYjQyNTU2YzUwNDA4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDU1NTIgKzAsMCBAQAotLy8gVGhpcyBmaWxlIHdhcyBHRU5F
UkFURUQgYnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJh
dGVkLmgucHVtcAotLy8gRE8gTk9UIEVESVQgQlkgSEFORCEhIQotCi0vLyBDb3B5cmlnaHQgMjAw
OCBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGls
aXRpZXMgZm9yIGltcGxlbWVudGluZyBwYXJhbWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxl
IGlzIGdlbmVyYXRlZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8g
Q3VycmVudGx5IEdvb2dsZSBUZXN0IHN1cHBvcnRzIGF0IG1vc3QgNTAgYXJndW1lbnRzIGluIFZh
bHVlcywKLS8vIGFuZCBhdCBtb3N0IDEwIGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29u
dGFjdAotLy8gZ29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVk
IG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENv
bWJpbmUgaXMgbGltaXRlZAotLy8gYnkgdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVu
dGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlzCi0vLyBjdXJyZW50bHkgc2V0IGF0IDEwLgotCi0vLyBH
T09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCi0KLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotI2RlZmluZSBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCi0K
LSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAi
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi1uYW1lc3BhY2UgdGVzdGluZyB7Ci0KLS8v
IEZvcndhcmQgZGVjbGFyYXRpb25zIG9mIFZhbHVlc0luKCksIHdoaWNoIGlzIGltcGxlbWVudGVk
IGluCi0vLyBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC4KLXRlbXBsYXRlIDx0eXBl
bmFtZSBGb3J3YXJkSXRlcmF0b3I+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVu
YW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46
OnZhbHVlX3R5cGU+Ci1WYWx1ZXNJbihGb3J3YXJkSXRlcmF0b3IgYmVnaW4sIEZvcndhcmRJdGVy
YXRvciBlbmQpOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1pbnRlcm5hbDo6
UGFyYW1HZW5lcmF0b3I8VD4gVmFsdWVzSW4oY29uc3QgVCAoJmFycmF5KVtOXSk7Ci0KLXRlbXBs
YXRlIDxjbGFzcyBDb250YWluZXI+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dHlwZW5hbWUg
Q29udGFpbmVyOjp2YWx1ZV90eXBlPiBWYWx1ZXNJbigKLSAgICBjb25zdCBDb250YWluZXImIGNv
bnRhaW5lcik7Ci0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIFVzZWQgaW4gdGhlIFZhbHVl
cygpIGZ1bmN0aW9uIHRvIHByb3ZpZGUgcG9seW1vcnBoaWMgY2FwYWJpbGl0aWVzLgotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxPgotY2xhc3MgVmFsdWVBcnJheTEgewotIHB1YmxpYzoKLSAgZXhwbGlj
aXQgVmFsdWVBcnJheTEoVDEgdjEpIDogdjFfKHYxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxKGNvbnN0IFZhbHVlQXJyYXkxJiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDI+Ci1jbGFzcyBWYWx1ZUFycmF5MiB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MihUMSB2MSwgVDIgdjIpIDogdjFfKHYxKSwgdjJfKHYyKSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXky
KGNvbnN0IFZhbHVlQXJyYXkyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYy
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTImIG90aGVy
KTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotY2xhc3MgVmFsdWVBcnJheTMg
ewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTMoVDEgdjEsIFQyIHYyLCBUMyB2MykgOiB2MV8odjEp
LCB2Ml8odjIpLCB2M18odjMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFs
dWVBcnJheTMoY29uc3QgVmFsdWVBcnJheTMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8o
b3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIFZhbHVlQXJy
YXk0IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpIHt9Ci0KLSAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qg
ewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2Fz
dDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2
NF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQo
Y29uc3QgVmFsdWVBcnJheTQmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJf
KSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYx
XzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1jbGFzcyBWYWx1ZUFycmF5NSB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5NShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUpIDogdjFfKHYxKSwg
djJfKHYyKSwgdjNfKHYzKSwKLSAgICAgIHY0Xyh2NCksIHY1Xyh2NSkge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5NShjb25zdCBWYWx1ZUFycmF5NSYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5NSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBj
b25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNj4KLWNsYXNzIFZhbHVlQXJyYXk2IHsKLSBw
dWJsaWM6Ci0gIFZhbHVlQXJyYXk2KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2
NSksIHY2Xyh2Nikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFy
YW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19j
YXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHY2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5Nihjb25zdCBWYWx1ZUFycmF5NiYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNv
bnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1
IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci1jbGFzcyBWYWx1ZUFycmF5NyB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5NyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2
NykgOiB2MV8odjEpLAotICAgICAgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwg
djZfKHY2KSwgdjdfKHY3KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk3KGNvbnN0IFZhbHVlQXJy
YXk3JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18o
b3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZf
KSwKLSAgICAgIHY3XyhvdGhlci52N18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXk3JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2
Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0g
IGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PgotY2xhc3MgVmFsdWVB
cnJheTggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgICBUOCB2OCkgOiB2MV8odjEpLCB2Ml8odjIp
LCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhf
KHY4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVy
YXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4o
djFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwg
c3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKX07
Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk4KGNvbnN0
IFZhbHVlQXJyYXk4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0g
ICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8o
b3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5OCYgb3RoZXIpOwotCi0gIGNv
bnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0
IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsK
LSAgY29uc3QgVDggdjhfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIFZhbHVlQXJy
YXk5IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0
LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwKLSAgICAgIFQ5IHY5KSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAg
ICB2OF8odjgpLCB2OV8odjkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTkoY29uc3QgVmFsdWVBcnJheTkm
IG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhl
ci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAot
ICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSB7fQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5OSYgb3RoZXIpOwotCi0g
IGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0
IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3
XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTA+Ci1jbGFzcyBWYWx1ZUFycmF5MTAgewotIHB1YmxpYzoKLSAgVmFs
dWVBcnJheTEwKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2
MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2
OV8odjkpLCB2MTBfKHYxMCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJh
eTEwKGNvbnN0IFZhbHVlQXJyYXkxMCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhl
ci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIu
djVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4
XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pIHt9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMT4KLWNsYXNzIFZhbHVlQXJy
YXkxMSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTEoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQx
MSB2MTEpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZf
KHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2
MTEpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJh
dG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2
MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBz
dGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjExXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MTEoY29uc3QgVmFsdWVBcnJheTExJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXkxMSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2
Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0g
IGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLWNsYXNz
IFZhbHVlQXJyYXkxMiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTIoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRf
KHY0KSwgdjVfKHY1KSwKLSAgICAgIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSks
IHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQot
ICBWYWx1ZUFycmF5MTIoY29uc3QgVmFsdWVBcnJheTEyJiBvdGhlcikgOiB2MV8ob3RoZXIudjFf
KSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0Xyks
IHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2
OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2
MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxMiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLWNsYXNzIFZh
bHVlQXJyYXkxMyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTMoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwKLSAgICAgIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMykg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJh
eTEzKGNvbnN0IFZhbHVlQXJyYXkxMyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhl
ci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIu
djVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4
XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52
MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTMmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQ+Ci1jbGFzcyBWYWx1ZUFycmF5MTQgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTE0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAg
ICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYx
NCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0
b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYx
XyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0
YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0
PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxNChjb25zdCBWYWx1ZUFycmF5MTQmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgVmFsdWVBcnJheTE0JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBU
MiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87
Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNv
bnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25z
dCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotY2xhc3Mg
VmFsdWVBcnJheTE1IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxNShUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEw
IHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSkgOiB2MV8o
djEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwg
djdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2
MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSkge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRp
Y19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNf
Y2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1Xyl9OwotICAgIHJldHVy
biBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTUoY29uc3QgVmFsdWVBcnJh
eTE1JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18o
b3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZf
KSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5Xyks
IHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYx
Ml8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhl
ci52MTVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTUm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
ICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25z
dCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25z
dCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNj4KLWNsYXNzIFZhbHVlQXJyYXkxNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5
MTYoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4
LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2
MTQsIFQxNSB2MTUsIFQxNiB2MTYpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2Myks
IHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0g
ICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0
KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQg
YXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2Fz
dDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2
N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBz
dGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKX07
Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxNihjb25z
dCBWYWx1ZUFycmF5MTYmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2
XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8o
b3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYx
Ml8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAg
ICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pIHt9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjEx
XzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0
XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3PgotY2xhc3MgVmFsdWVBcnJheTE3IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXkxNyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwKLSAgICAgIFQxNyB2MTcpIDogdjFfKHYxKSwgdjJf
KHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAg
IHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0
PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4o
djEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVf
KSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTE3KGNvbnN0IFZhbHVlQXJy
YXkxNyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNf
KG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2
XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8p
LCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52
MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3Ro
ZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3Xykge30KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTE3JiBvdGhlcik7Ci0KLSAgY29uc3Qg
VDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRf
OwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBj
b25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0
IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0
IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0
IFQxNyB2MTdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTg+
Ci1jbGFzcyBWYWx1ZUFycmF5MTggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE4KFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1
LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4
KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2
MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYx
OCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0
b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYx
XyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0
YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNf
Y2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0
PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjE4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0g
IH0KLQotICBWYWx1ZUFycmF5MTgoY29uc3QgVmFsdWVBcnJheTE4JiBvdGhlcikgOiB2MV8ob3Ro
ZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVy
LnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52
N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0g
ICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18p
LCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52
MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSB7fQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2
MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0g
IGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0
IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDEx
IHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0
IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3
IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLWNsYXNzIFZhbHVlQXJyYXkxOSB7Ci0gcHVi
bGljOgotICBWYWx1ZUFycmF5MTkoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBU
MTggdjE4LCBUMTkgdjE5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1
Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYx
MCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYx
NV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2Fz
dDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4o
djExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNf
KSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBz
dGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKX07Ci0gICAgcmV0dXJuIFZhbHVl
c0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxOShjb25zdCBWYWx1ZUFycmF5MTkmIG90
aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52
M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAg
ICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhv
dGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYx
M18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8p
LCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAot
ICAgICAgdjE5XyhvdGhlci52MTlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MTkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLWNsYXNzIFZhbHVl
QXJyYXkyMCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjAoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwKSA6IHYxXyh2MSksIHYyXyh2
MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksCi0gICAgICB2Nl8odjYpLCB2N18odjcpLCB2
OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLAotICAgICAg
djEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYx
OF8odjE4KSwKLSAgICAgIHYxOV8odjE5KSwgdjIwXyh2MjApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyl9OwotICAgIHJldHVy
biBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjAoY29uc3QgVmFsdWVBcnJh
eTIwJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18o
b3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZf
KSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5Xyks
IHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYx
Ml8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhl
ci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52
MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIwJiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLWNsYXNz
IFZhbHVlQXJyYXkyMSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjEoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxKSA6
IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8o
djYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAg
ICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYp
LCB2MTdfKHYxNyksCi0gICAgICB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFf
KHYyMSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5l
cmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+
KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyks
IHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0
aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19j
YXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyl9OwotICAgIHJldHVy
biBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjEoY29uc3QgVmFsdWVBcnJh
eTIxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18o
b3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZf
KSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5Xyks
IHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYx
Ml8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhl
ci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52
MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3Ro
ZXIudjIxXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIx
JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQz
IHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsK
LSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29u
c3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29u
c3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29u
c3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29u
c3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLWNsYXNzIFZhbHVl
QXJyYXkyMiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjIoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFf
KHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2
MTYpLAotICAgICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2
MjFfKHYyMSksIHYyMl8odjIyKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0g
IH0KLQotICBWYWx1ZUFycmF5MjIoY29uc3QgVmFsdWVBcnJheTIyJiBvdGhlcikgOiB2MV8ob3Ro
ZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVy
LnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52
N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0g
ICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18p
LCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52
MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3Ro
ZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIu
djIyXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVu
dCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTIyJiBv
dGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYz
XzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAg
Y29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3Qg
VDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3Qg
VDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3Qg
VDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3Qg
VDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3Qg
VDIyIHYyMl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMz4KLWNsYXNzIFZhbHVlQXJyYXkyMyB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MjMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzKSA6IHYxXyh2MSksIHYyXyh2
MiksCi0gICAgICB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2
OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwg
djEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2
MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIy
KSwKLSAgICAgIHYyM18odjIzKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7
c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGlj
X2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8
VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0
PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4o
djE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pfTsKLSAgICByZXR1
cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTIzKGNvbnN0IFZhbHVlQXJy
YXkyMyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNf
KG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2
XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8p
LCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52
MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3Ro
ZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIu
djE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90
aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSB7fQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MjMmIG90aGVyKTsKLQot
ICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25z
dCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2
N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsK
LSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsK
LSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsK
LSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsK
LSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsK
LSAgY29uc3QgVDIzIHYyM187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0PgotY2xhc3MgVmFsdWVBcnJh
eTI0IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkyNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2
NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDEx
IHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYx
NywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQy
MyB2MjMsIFQyNCB2MjQpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1
Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5l
cmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+
KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyks
IHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0
aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19j
YXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNf
Y2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0
PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djI0Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
MjQoY29uc3QgVmFsdWVBcnJheTI0JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8p
LAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52
MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3Ro
ZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNf
KG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBp
bXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IFZhbHVlQXJyYXkyNCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29u
c3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUg
djVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwot
ICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAg
Y29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAg
Y29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAg
Y29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAg
Y29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAg
Y29uc3QgVDI0IHYyNF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1jbGFz
cyBWYWx1ZUFycmF5MjUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI1KFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwg
VDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwKLSAgICAgIFQyNSB2MjUpIDogdjFfKHYxKSwgdjJf
KHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAg
IHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2
MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8
VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2
MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8p
LCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4o
djIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVf
KX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyNShj
b25zdCBWYWx1ZUFycmF5MjUmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJf
KSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1Xyks
IHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2
OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyks
IHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0g
ICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18p
LCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52
MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3Ro
ZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1Xykge30KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTI1JiBvdGhlcik7Ci0KLSAgY29uc3Qg
VDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRf
OwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBj
b25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0
IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0
IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0
IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0
IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0
IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2PgotY2xhc3MgVmFs
dWVBcnJheTI2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkyNihUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2KSA6IHYxXyh2MSks
IHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0g
ICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2
MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYx
NyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYy
Ml8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpIHt9Ci0K
LSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkg
Y29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0
aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2Fz
dDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4o
djExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNf
KSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBz
dGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIw
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwg
c3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0
aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjYoY29uc3QgVmFsdWVBcnJheTI2JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pIHt9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyNiYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBU
MjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBU
MjYgdjI2XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNz4KLWNsYXNzIFZhbHVlQXJyYXkyNyB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjcoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMp
LCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLAotICAgICAgdjdfKHY3KSwgdjhfKHY4KSwgdjlf
KHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLAotICAgICAg
djE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYx
OV8odjE5KSwKLSAgICAgIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIz
KSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksCi0gICAgICB2MjZfKHYyNiksIHYyN18odjI3KSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZh
bHVlQXJyYXkyNyhjb25zdCBWYWx1ZUFycmF5MjcmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2
Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVf
KG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4Xyhv
dGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8o
b3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3Ro
ZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdf
KG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwg
djIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAg
ICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1Xyks
IHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pIHt9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBU
MjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBU
MjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOD4KLWNs
YXNzIFZhbHVlQXJyYXkyOCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MjgoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3
IHYyNywgVDI4IHYyOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8o
djUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTAp
LCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVf
KHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSks
IHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAot
ICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyOChjb25zdCBWYWx1ZUFycmF5MjgmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAg
djE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIy
XyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0Xyks
IHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYy
N18pLCB2MjhfKG90aGVyLnYyOF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IFZhbHVlQXJyYXkyOCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJf
OwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBj
b25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBU
OSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEy
IHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1
IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4
IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIx
IHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0
IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3
IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOT4KLWNsYXNzIFZhbHVlQXJyYXkyOSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5Mjko
VDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBU
OSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
IFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAg
djIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAg
VDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4
KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYy
M18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3
KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAg
b3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtd
ID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0
YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19j
YXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0
PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2Fz
dDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+
KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5
KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkyOShjb25zdCBWYWx1ZUFycmF5MjkmIG90aGVyKSA6IHYx
XyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8o
b3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90
aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBf
KSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIu
djEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90
aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5
XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhv
dGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYy
NV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18p
LCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pIHt9Ci0KLSBwcml2YXRlOgotICAv
LyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyOSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsK
LSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29u
c3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDgg
djhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjEx
XzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0
XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3
XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIw
XzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIz
XzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2
XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4K
LWNsYXNzIFZhbHVlQXJyYXkzMCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzAoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAg
ICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEg
djIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwg
VDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpLAotICAgICAgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4
KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0g
ICAgICB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3
KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCkge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRp
Y19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNf
Y2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0
PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+
KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3
XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjMwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5MzAoY29uc3QgVmFsdWVBcnJheTMwJiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAg
ICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2
MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZf
KSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIu
djE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIy
XyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVy
LnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4Xyhv
dGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzAmIG90aGVyKTsKLQotICBjb25z
dCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2
NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0g
IGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29u
c3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29u
c3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29u
c3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29u
c3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29u
c3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29u
c3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29u
c3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMT4KLWNsYXNzIFZh
bHVlQXJyYXkzMSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzEoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIg
djIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSkgOiB2MV8odjEpLCB2Ml8odjIpLAot
ICAgICAgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4
KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0g
ICAgICB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3
KSwgdjI4Xyh2MjgpLAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyl9Owot
ICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzEoY29uc3Qg
VmFsdWVBcnJheTMxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0g
ICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8o
b3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90
aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJf
KG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAg
djE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4
XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyks
IHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYy
M18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8p
LAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52
MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMxJiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzI+Ci1jbGFzcyBWYWx1ZUFycmF5MzIgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTMyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwg
VDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2
MzAsIFQzMSB2MzEsIFQzMiB2MzIpIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2Myks
IHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0g
ICAgICB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0
KSwgdjE1Xyh2MTUpLAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5
Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMp
LCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2Mjhf
KHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSB7fQotCi0g
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNv
bnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8
VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZf
KSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYx
MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyks
IHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0
YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAg
VmFsdWVBcnJheTMyKGNvbnN0IFZhbHVlQXJyYXkzMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyks
IHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2
NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhf
KG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjEx
XyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0Xyhv
dGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYx
N18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8p
LCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAot
ICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVf
KSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIu
djI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90
aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXkzMiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29u
c3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29u
c3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29u
c3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29u
c3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29u
c3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29u
c3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29u
c3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotY2xhc3MgVmFsdWVBcnJheTMz
IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzMyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywK
LSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2
MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBU
MjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLAotICAgICAgVDMzIHYzMykgOiB2MV8o
djEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcp
LAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEy
KSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3
Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEp
LCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwK
LSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2
MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2
MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8p
LCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0
YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBz
dGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJh
eSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzMoY29uc3QgVmFsdWVBcnJheTMzJiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEw
XyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVy
LnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2Xyhv
dGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYx
OV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8o
b3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2
MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52Mjdf
KSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwK
LSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMz
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTMzJiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2
IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5
IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIy
IHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1
IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4
IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMx
IHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLX07Ci0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBU
MzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1jbGFzcyBWYWx1
ZUFycmF5MzQgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM0KFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEw
LCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBU
MTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQy
OCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAg
ICBUMzQgdjM0KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSks
IHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYx
MV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAgICAgIHYxNV8odjE1
KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCks
Ci0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8o
djI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwg
djMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18odjMzKSwgdjM0Xyh2
MzQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJh
dG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2
MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBz
dGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nh
c3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
NF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8
VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2
MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18p
LCBzdGF0aWNfY2FzdDxUPih2MzRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXkzNChjb25zdCBWYWx1ZUFycmF5MzQmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MzQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29u
c3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYg
djZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwot
ICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwot
ICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwot
ICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwot
ICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwot
ICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwot
ICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwot
ICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwot
ICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwot
ICBjb25zdCBUMzQgdjM0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLWNsYXNzIFZhbHVlQXJyYXkzNSB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5MzUoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQz
NSB2MzUpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZf
KHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2
MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2
MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYy
MCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUp
LAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBf
KHYzMCksIHYzMV8odjMxKSwKLSAgICAgIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCks
IHYzNV8odjM1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTM1KGNvbnN0IFZh
bHVlQXJyYXkzNSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhv
dGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYx
NV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8o
b3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2
MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNf
KSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwK
LSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5
XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVy
LnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1Xyhv
dGhlci52MzVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5
MzUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3Qg
VDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZf
OwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBj
b25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBj
b25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBj
b25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBj
b25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBj
b25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBj
b25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBj
b25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBj
b25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBj
b25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2PgotY2xhc3MgVmFsdWVBcnJheTM2IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkz
NihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQy
MCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAg
ICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBU
MzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNikgOiB2MV8o
djEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwg
djdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEy
KSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3
Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEp
LCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZf
KHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAg
IHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2
MzZfKHYzNikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1H
ZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0
PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
XyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBz
dGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRp
Y19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0
aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19j
YXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0
PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjM2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0g
IH0KLQotICBWYWx1ZUFycmF5MzYoY29uc3QgVmFsdWVBcnJheTM2JiBvdGhlcikgOiB2MV8ob3Ro
ZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVy
LnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52
N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0g
ICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18p
LCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52
MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3Ro
ZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIu
djIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90
aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4
XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAg
IHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYz
NF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8p
IHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNiYgb3RoZXIp
OwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0g
IGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0
IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2
MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2
MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2
MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2
MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2
MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2
MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2
MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2
MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2
MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzc+Ci1jbGFzcyBWYWx1ZUFycmF5Mzcgewot
IHB1YmxpYzoKLSAgVmFsdWVBcnJheTM3KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAg
ICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywg
VDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2
MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBU
MzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0
Xyh2NCksCi0gICAgICB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkp
LCB2MTBfKHYxMCksIHYxMV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRf
KHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksCi0gICAgICB2MThfKHYxOCks
IHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLAot
ICAgICAgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYy
OCksIHYyOV8odjI5KSwKLSAgICAgIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYz
M18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksCi0gICAgICB2MzZfKHYzNiksIHYzN18odjM3
KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRv
cjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFf
KSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19j
YXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8
VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0
PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+
KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMx
XyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwg
c3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzcoY29uc3QgVmFsdWVBcnJheTM3JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3Xyhv
dGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhl
ci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18o
b3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2
MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBO
byBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAg
Y29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3Qg
VDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhf
OwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsK
LSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsK
LSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsK
LSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsK
LSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsK
LSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsK
LSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsK
LSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsK
LSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsK
LSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1jbGFzcyBWYWx1ZUFy
cmF5MzggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTM4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0
IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcg
djE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4KSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcp
LCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEy
KSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3
Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8o
djIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwg
djI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2
MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2
MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQg
YXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2Fz
dDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2
N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBz
dGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwg
c3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0
aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNf
Y2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2Fz
dDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihh
cnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzgoY29uc3QgVmFsdWVBcnJheTM4JiBvdGhlcikg
OiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwg
djRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3
XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIu
djEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90
aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2
XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAg
IHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYy
Ml8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8p
LCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52
MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBf
KSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIu
djMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90
aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzOCYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25z
dCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25z
dCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25z
dCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25z
dCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25z
dCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25z
dCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25z
dCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25z
dCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25z
dCBUMzggdjM4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVu
YW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0
eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQz
NywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzk+Ci1jbGFzcyBWYWx1ZUFycmF5MzkgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTM5KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0
IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUg
djM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5KSA6IHYxXyh2MSksIHYyXyh2
MiksCi0gICAgICB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2
OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwg
djEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2
MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIy
KSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3
Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEp
LCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZf
KHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSkge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxU
Pih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYy
NV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3Xyks
IHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2
MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8p
LCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0
YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjM5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBW
YWx1ZUFycmF5MzkoY29uc3QgVmFsdWVBcnJheTM5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwg
djJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1
XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8o
b3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFf
KG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90
aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3
XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5Xyks
IHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0g
ICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8p
LCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52
MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3Ro
ZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIu
djM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90
aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSB7fQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzkmIG90aGVyKTsKLQot
ICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25z
dCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2
N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsK
LSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsK
LSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsK
LSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsK
LSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsK
LSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsK
LSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsK
LSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsK
LSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsK
LSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsK
LSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwg
dHlwZW5hbWUgVDQwPgotY2xhc3MgVmFsdWVBcnJheTQwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXk0MChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3
IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCkgOiB2MV8odjEpLAotICAgICAgdjJfKHYy
KSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwg
djlfKHY5KSwKLSAgICAgIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEz
KSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksCi0gICAgICB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4
Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLAotICAgICAgdjIyXyh2MjIp
LCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwK
LSAgICAgIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2
MzIpLCB2MzNfKHYzMyksCi0gICAgICB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2
MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLAotICAgICAgdjQwXyh2NDApIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
LCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjEx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwg
c3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0
aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNf
Y2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2Fz
dDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0MChjb25zdCBWYWx1ZUFy
cmF5NDAmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAg
ICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2
MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJf
KSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIu
djM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4
XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0MCYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25z
dCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25z
dCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25z
dCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25z
dCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25z
dCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25z
dCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25z
dCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25z
dCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25z
dCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MT4KLWNsYXNzIFZhbHVl
QXJyYXk0MSB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDEoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4
IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAg
IFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0
MCB2NDAsCi0gICAgICBUNDEgdjQxKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCks
IHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18o
djMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYz
OCksCi0gICAgICB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpIHt9Ci0KLSAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qgewot
ICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxU
Pih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8p
LCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0
aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nh
c3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxU
Pih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
N18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8
VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2
MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8p
LCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4o
djQxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
NDEoY29uc3QgVmFsdWVBcnJheTQxJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8p
LAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52
MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3Ro
ZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNf
KG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90
aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5
XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyks
IHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0g
ICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18p
LCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52
NDBfKSwgdjQxXyhvdGhlci52NDFfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5NDEmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQz
MCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQz
MyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQz
NiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQz
OSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1j
bGFzcyBWYWx1ZUFycmF5NDIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQyKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQy
NyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2
MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBU
MzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MikgOiB2MV8odjEpLCB2Ml8o
djIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAg
djhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2
MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2
MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYy
MiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAgICAgIHYy
N18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2MzJf
KHYzMiksCi0gICAgICB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiks
IHYzN18odjM3KSwgdjM4Xyh2MzgpLAotICAgICAgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8o
djQxKSwgdjQyXyh2NDIpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9y
IFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0
aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2Fz
dDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2
MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8p
LCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4o
djE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlf
KSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBz
dGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwg
c3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0
aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNf
Y2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY0Ml8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVB
cnJheTQyKGNvbnN0IFZhbHVlQXJyYXk0MiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhv
dGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3Ro
ZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVy
LnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhl
ci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52
MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3Ro
ZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBf
KG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAg
djIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2
XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4Xyks
IHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYz
MV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8p
LAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52
MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3Ro
ZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXykge30KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQyJiBvdGhlcik7Ci0KLSAgY29uc3Qg
VDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRf
OwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBj
b25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0
IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0
IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0
IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0
IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0
IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0
IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0
IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0
IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0
IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0
IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0
IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzPgotY2xh
c3MgVmFsdWVBcnJheTQzIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAg
VDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2
IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEs
IFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcg
djI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMz
LAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5
IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMpIDogdjFfKHYx
KSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwKLSAgICAgIHY3
Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiks
IHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18o
djE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBfKHYyMCksIHYyMV8odjIxKSwg
djIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLAotICAgICAgdjI2Xyh2
MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMx
KSwKLSAgICAgIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2
Xyh2MzYpLCB2MzdfKHYzNyksCi0gICAgICB2MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDAp
LCB2NDFfKHY0MSksIHY0Ml8odjQyKSwgdjQzXyh2NDMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0
IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNf
Y2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxU
Pih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8p
LCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4o
djE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZf
KSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBz
dGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIz
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwg
c3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0
aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNf
Y2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKX07Ci0gICAg
cmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0Myhjb25zdCBWYWx1
ZUFycmF5NDMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAg
IHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhl
ci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIu
djlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3Ro
ZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVf
KG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90
aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIx
XyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyks
IHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0g
ICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8p
LCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52
MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3Ro
ZXIudjM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIu
djM4XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90
aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSB7fQot
Ci0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3Vw
cG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDMmIG90aGVyKTsKLQot
ICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25z
dCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2
N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsK
LSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsK
LSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsK
LSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsK
LSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsK
LSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsK
LSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsK
LSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsK
LSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsK
LSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsK
LSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsK
LSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVu
YW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NDQg
ewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ0KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjEx
LCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAot
ICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYy
MywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0
LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBU
NDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCkgOiB2MV8odjEpLCB2Ml8o
djIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwg
djhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAg
IHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2
MThfKHYxOCksCi0gICAgICB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYy
MiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLAotICAgICAgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYy
N18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwKLSAgICAgIHYzMV8odjMx
KSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiks
Ci0gICAgICB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8o
djQxKSwgdjQyXyh2NDIpLAotICAgICAgdjQzXyh2NDMpLCB2NDRfKHY0NCkge30KLQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7
Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0
PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0
XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0
YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0
aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19j
YXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNf
Y2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0
PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2Fz
dDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+
KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2
XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxU
Pih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0
M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXk0NChjb25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5Xyhv
dGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhl
ci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8o
b3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2
MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAg
ICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwg
djM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2
XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVy
LnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0
Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSB7fQotCi0gcHJp
dmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDQmIG90aGVyKTsKLQotICBjb25z
dCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2
NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0g
IGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29u
c3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29u
c3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29u
c3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29u
c3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29u
c3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29u
c3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29u
c3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29u
c3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29u
c3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29u
c3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29u
c3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29u
c3QgVDQ0IHY0NF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDU+Ci1jbGFzcyBWYWx1ZUFycmF5NDUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ1KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBU
MTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQy
NiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0
MywgVDQ0IHY0NCwgVDQ1IHY0NSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQp
LAotICAgICAgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEw
Xyh2MTApLCB2MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQp
LCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlf
KHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAg
IHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2
MjlfKHYyOSksCi0gICAgICB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYz
MyksIHYzNF8odjM0KSwgdjM1Xyh2MzUpLAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYz
OF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksIHY0MV8odjQxKSwKLSAgICAgIHY0Ml8odjQy
KSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksIHY0NV8odjQ1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25z
dCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8
VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlf
KSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+
KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2
XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwg
c3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYy
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0
YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0NShjb25zdCBWYWx1ZUFy
cmF5NDUmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAg
ICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2
MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJf
KSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIu
djM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4
XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVy
LnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0Xyhv
dGhlci52NDRfKSwgdjQ1XyhvdGhlci52NDVfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9y
PShjb25zdCBWYWx1ZUFycmF5NDUmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAg
Y29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNv
bnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNv
bnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNv
bnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNv
bnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNv
bnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNv
bnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNv
bnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNv
bnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNv
bnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNv
bnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNv
bnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNv
bnN0IFQ0NSB2NDVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVu
YW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5h
bWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0Nj4KLWNsYXNzIFZhbHVlQXJyYXk0NiB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5NDYoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0
LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMw
IHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUs
IFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0g
ICAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2KSA6IHYxXyh2
MSksIHYyXyh2MiksIHYzXyh2MyksCi0gICAgICB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2
N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYx
Ml8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAg
ICAgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSks
IHYyMl8odjIyKSwKLSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8o
djI2KSwgdjI3Xyh2MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwg
djMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2
MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQw
KSwKLSAgICAgIHY0MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1
Xyh2NDUpLCB2NDZfKHY0Nikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0
b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0
YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19j
YXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+
KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEy
XyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxU
Pih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYx
OV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyks
IHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2
MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8p
LCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0
YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBz
dGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRp
Y19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQ2KGNvbnN0IFZh
bHVlQXJyYXk0NiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhv
dGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYx
NV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8o
b3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2
MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNf
KSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwK
LSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5
XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVy
LnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1Xyhv
dGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhl
ci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8o
b3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2
NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pIHt9Ci0K
LSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0NiYgb3RoZXIpOwotCi0g
IGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0
IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3
XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwot
ICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwot
ICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwot
ICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwot
ICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwot
ICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwot
ICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwot
ICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwot
ICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwot
ICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwot
ICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwot
ICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwot
ICBjb25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAg
IHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwg
dHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBU
MzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5h
bWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5
cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3PgotY2xhc3MgVmFsdWVBcnJheTQ3IHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXk0NyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQs
IFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwg
VDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAg
ICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcp
IDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2
Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwKLSAgICAgIHYxMV8o
djExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYx
NiksCi0gICAgICB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYy
MV8odjIxKSwgdjIyXyh2MjIpLAotICAgICAgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1
KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwKLSAgICAgIHYyOV8odjI5KSwgdjMw
Xyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksCi0gICAg
ICB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwg
djQwXyh2NDApLAotICAgICAgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2
NDQpLCB2NDVfKHY0NSksIHY0Nl8odjQ2KSwKLSAgICAgIHY0N18odjQ3KSB7fQotCi0gIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsK
LSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8
VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRf
KSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3Rh
dGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRp
Y19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nh
c3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19j
YXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0
PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4o
djM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZf
KSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+
KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQz
XyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwg
c3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQ3KGNvbnN0IFZhbHVlQXJyYXk0
NyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90
aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xyks
Ci0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2
MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJf
KSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIu
djE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4
XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVy
LnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0Xyhv
dGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYy
N18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8o
b3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2
MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVf
KSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwK
LSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQx
XyksIHY0Ml8ob3RoZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVy
LnY0NF8pLCB2NDVfKG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3Xyhv
dGhlci52NDdfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5
NDcmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3Qg
VDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZf
OwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBj
b25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBj
b25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBj
b25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBj
b25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBj
b25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBj
b25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBj
b25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBj
b25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBj
b25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBj
b25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBj
b25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBj
b25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBj
b25zdCBUNDYgdjQ2XzsKLSAgY29uc3QgVDQ3IHY0N187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBl
bmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mywg
dHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBU
NDcsIHR5cGVuYW1lIFQ0OD4KLWNsYXNzIFZhbHVlQXJyYXk0OCB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5NDgoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1
LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMx
IHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYs
IFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIg
djQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LCBUNDggdjQ4
KSA6IHYxXyh2MSksCi0gICAgICB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFf
KHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAg
IHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2
MjFfKHYyMSksCi0gICAgICB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYy
NSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLAotICAgICAgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYz
MF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksIHYzM18odjMzKSwKLSAgICAgIHYzNF8odjM0
KSwgdjM1Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSks
Ci0gICAgICB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8o
djQ0KSwgdjQ1Xyh2NDUpLAotICAgICAgdjQ2Xyh2NDYpLCB2NDdfKHY0NyksIHY0OF8odjQ4KSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0
PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4o
djEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVf
KSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+
KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIy
XyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYy
OV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyks
IHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0
YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5
KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0OChjb25zdCBWYWx1ZUFycmF5NDgmIG90aGVyKSA6IHYx
XyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8o
b3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90
aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBf
KSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIu
djEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90
aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5
XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhv
dGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYy
NV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18p
LCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAot
ICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNf
KSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIu
djM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90
aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVy
LnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1Xyhv
dGhlci52NDVfKSwgdjQ2XyhvdGhlci52NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3XyksIHY0
OF8ob3RoZXIudjQ4Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVB
cnJheTQ4JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNv
bnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2
IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsK
LSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsK
LSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsK
LSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsK
LSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsK
LSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsK
LSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsK
LSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsK
LSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsK
LSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsK
LSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsK
LSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsK
LSAgY29uc3QgVDQzIHY0M187Ci0gIGNvbnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsK
LSAgY29uc3QgVDQ2IHY0Nl87Ci0gIGNvbnN0IFQ0NyB2NDdfOwotICBjb25zdCBUNDggdjQ4XzsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVu
YW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0
eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDk+Ci1j
bGFzcyBWYWx1ZUFycmF5NDkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ5KFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQy
NyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2
MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBU
MzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0
NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCwKLSAgICAgIFQ0OSB2NDkpIDog
djFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdf
KHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJf
KHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiks
IHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8o
djIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYy
NiksCi0gICAgICB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYz
MV8odjMxKSwgdjMyXyh2MzIpLAotICAgICAgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1
KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwKLSAgICAgIHYzOV8odjM5KSwgdjQw
Xyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksCi0gICAg
ICB2NDVfKHY0NSksIHY0Nl8odjQ2KSwgdjQ3Xyh2NDcpLCB2NDhfKHY0OCksIHY0OV8odjQ5KSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0
PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4o
djEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVf
KSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+
KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIy
XyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYy
OV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyks
IHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0
YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjQzXyksIHN0YXRpY19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2NDVfKSwgc3RhdGljX2Nhc3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDhfKSwgc3RhdGljX2Nhc3Q8VD4odjQ5Xyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDkoY29uc3QgVmFs
dWVBcnJheTQ5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1
XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4Xyhv
dGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYy
MV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18p
LCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAot
ICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52Mjlf
KSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIu
djMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90
aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVy
LnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhv
dGhlci52NDFfKSwgdjQyXyhvdGhlci52NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXyksIHY0
NF8ob3RoZXIudjQ0XyksIHY0NV8ob3RoZXIudjQ1XyksIHY0Nl8ob3RoZXIudjQ2XyksCi0gICAg
ICB2NDdfKG90aGVyLnY0N18pLCB2NDhfKG90aGVyLnY0OF8pLCB2NDlfKG90aGVyLnY0OV8pIHt9
Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5z
dXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpOwot
Ci0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNv
bnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3
IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBf
OwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNf
OwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZf
OwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlf
OwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJf
OwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVf
OwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2Mjhf
OwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFf
OwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRf
OwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2Mzdf
OwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBf
OwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNf
OwotICBjb25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZf
OwotICBjb25zdCBUNDcgdjQ3XzsKLSAgY29uc3QgVDQ4IHY0OF87Ci0gIGNvbnN0IFQ0OSB2NDlf
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQz
NCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFt
ZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlw
ZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAg
IHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwg
dHlwZW5hbWUgVDUwPgotY2xhc3MgVmFsdWVBcnJheTUwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXk1MChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3
IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIs
IFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0
OSB2NDksCi0gICAgICBUNTAgdjUwKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2MjcpLCB2MjhfKHYyOCks
IHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwKLSAgICAgIHYzM18o
djMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYz
OCksCi0gICAgICB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0MiksIHY0
M18odjQzKSwgdjQ0Xyh2NDQpLAotICAgICAgdjQ1Xyh2NDUpLCB2NDZfKHY0NiksIHY0N18odjQ3
KSwgdjQ4Xyh2NDgpLCB2NDlfKHY0OSksIHY1MF8odjUwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25z
dCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGlj
X2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8
VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlf
KSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+
KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2
XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwg
c3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYy
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyks
IHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0
YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDVfKSwgc3RhdGljX2Nh
c3Q8VD4odjQ2XyksIHN0YXRpY19jYXN0PFQ+KHY0N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2NDhfKSwgc3RhdGljX2Nhc3Q8VD4odjQ5XyksIHN0YXRpY19jYXN0PFQ+KHY1MF8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTUwKGNvbnN0IFZh
bHVlQXJyYXk1MCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhv
dGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYx
NV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8o
b3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2
MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNf
KSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwK
LSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5
XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVy
LnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1Xyhv
dGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhl
ci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8o
b3RoZXIudjQxXyksIHY0Ml8ob3RoZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2
NDRfKG90aGVyLnY0NF8pLCB2NDVfKG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAg
ICAgdjQ3XyhvdGhlci52NDdfKSwgdjQ4XyhvdGhlci52NDhfKSwgdjQ5XyhvdGhlci52NDlfKSwg
djUwXyhvdGhlci52NTBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5NTAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFf
OwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRf
OwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2Mjdf
OwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBf
OwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNf
OwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZf
OwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0IFQzOSB2Mzlf
OwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0gIGNvbnN0IFQ0MiB2NDJf
OwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0gIGNvbnN0IFQ0NSB2NDVf
OwotICBjb25zdCBUNDYgdjQ2XzsKLSAgY29uc3QgVDQ3IHY0N187Ci0gIGNvbnN0IFQ0OCB2NDhf
OwotICBjb25zdCBUNDkgdjQ5XzsKLSAgY29uc3QgVDUwIHY1MF87Ci19OwotCi0jIGlmIEdURVNU
X0hBU19DT01CSU5FCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4g
VVNFUiBDT0RFLgotLy8KLS8vIEdlbmVyYXRlcyB2YWx1ZXMgZnJvbSB0aGUgQ2FydGVzaWFuIHBy
b2R1Y3Qgb2YgdmFsdWVzIHByb2R1Y2VkCi0vLyBieSB0aGUgYXJndW1lbnQgZ2VuZXJhdG9ycy4K
LS8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjIKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwg
Ojp0ZXN0aW5nOjp0dXBsZTxUMSwgVDI+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rp
bmc6OnR1cGxlPFQxLCBUMj4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3IyKGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMj4mIGcyKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpIHt9Ci0gIHZpcnR1YWwgfkNh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpKTsKLSAgfQotICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qgewot
ICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVu
ZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihj
b25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRl
cmF0b3ImIGN1cnJlbnQyKQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2lu
MV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAg
ICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhj
dXJyZW50MikgICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2
aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1
cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24g
YmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRv
cnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lk
IEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50Ml87
Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJl
Z2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJl
bnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlz
KTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7
IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMo
Y29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3Qgewot
ICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0
aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNh
biBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIu
QmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8g
Y29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0
b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0K
LSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZv
dGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBi
b3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQg
Y2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZl
IHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhl
ci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDJfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRl
cmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVn
aW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAg
ICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdp
bjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3Ro
ZXIuY3VycmVudDJfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0g
ICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAg
ICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJy
ZW50Ml8pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11
c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIg
b2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQg
b2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFf
IHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVuZDJfOwotICAgIH0KLQotICAgIC8vIE5vIGlt
cGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJh
dG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBl
bmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAg
ICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgbGlua2Vk
X3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjI6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yMiYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQx
PiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci19OyAgLy8gY2xhc3MgQ2Fy
dGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMz4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzCi0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMz4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMz4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcy
LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczKQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIp
LCBnM18oZzMpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzKCkge30K
LQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBj
b25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBn
Ml8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpKTsKLSAgfQotICB2aXJ0
dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAg
IHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgp
LCBnM18sIGczXy5lbmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDog
cHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0g
ICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFz
ZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQzPiYgZzMsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJh
dG9yJiBjdXJyZW50MykKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFf
KGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAg
ICAgICAgYmVnaW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3Vy
cmVudDIpLAotICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwg
Y3VycmVudDNfKGN1cnJlbnQzKSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFy
YW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsK
LSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJl
IGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9u
ZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2
aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICAr
K2N1cnJlbnQzXzsKLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3Vy
cmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBp
ZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0g
ICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
Q2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBj
dXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8g
SGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIK
LSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2Fz
dC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVy
YXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBp
dGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwg
c3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAg
ICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0g
ICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50
IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBl
biBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1
bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQo
KSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1
cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJf
ICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18pOwotICAg
IH0KLQotICAgcHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0g
ICAgICAgIDogYmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2lu
MV8pLAotICAgICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhl
ci5jdXJyZW50MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBl
bmQyXyhvdGhlci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAot
ICAgICAgICBiZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQz
XyksCi0gICAgICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pIHsKLSAgICAgIENvbXB1dGVD
dXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7
Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQ
YXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1cnJlbnQyXywgKmN1cnJlbnQzXykpOwotICAgIH0KLSAg
ICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3Ig
cGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNv
bXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAg
ICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJy
ZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM187Ci0gICAgfQot
Ci0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgot
ICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQ
YXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBi
ZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3Ig
dHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBp
dGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9y
IGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRv
ciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJl
bnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJl
Z2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBl
bmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQy
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2lu
M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQz
XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsK
LSAgICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFz
cyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMzo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzJiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yMwotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUND4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0Ci0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQ+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0PiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjQo
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUND4mIGc0KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBn
NF8oZzQpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0KCkge30KLQot
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25z
dCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8s
IGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigp
KTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5k
KCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCks
IGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCkp
OwotICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0
IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDE+OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxU
Mj4mIGcyLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRv
ciYgY3VycmVudDIsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0g
ICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciYgY3VycmVudDQpCi0gICAgICAgIDogYmFzZV8o
YmFzZSksCi0gICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkpLCBj
dXJyZW50MV8oY3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVuZDJf
KGcyLmVuZCgpKSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGczLmJl
Z2luKCkpLCBlbmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAgICAg
YmVnaW40XyhnNC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVudDQp
ICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+
SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2Vf
OwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1v
Zi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3Qg
YmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNl
KCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDRfOwotICAgICAg
aWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwot
ICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5k
M18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJl
bnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJh
dG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQo
KSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9v
bCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikg
Y29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRl
ZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUg
YW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkg
PT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRl
bXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVu
dCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVk
X290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRl
cmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwg
aWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5n
ZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBz
byB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0
eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVy
LT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJl
bnQ0Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9y
JiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8o
b3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3Vy
cmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyks
Ci0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1
cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNf
KG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAg
ICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwK
LSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XykgewotICAgICAgQ29tcHV0ZUN1cnJl
bnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAg
ICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFt
VHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1
cnJlbnQ0XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2Ug
bXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhl
ciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVu
ZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5k
MV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50
M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF87Ci0gICAgfQotCi0g
ICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAg
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJh
bUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdp
bltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJh
dmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVy
YXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJl
Z2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBl
bmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQx
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2lu
Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQy
XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsK
LSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAg
ICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBs
aW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNDo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLX07
ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNAotCi0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDU+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNQotICAgIDogcHVibGljIFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4g
PiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQs
IFQ1PiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUoY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIs
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUND4mIGc0LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1KQotICAgICAgOiBnMV8oZzEp
LCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpIHt9Ci0gIHZpcnR1YWwgfkNhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I1KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRv
cih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAg
IGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpKTsKLSAgfQot
ICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3Qg
ewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJf
LmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVf
LmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRv
cihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6
aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJl
bnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAot
ICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFf
KGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQo
KSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwg
ZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8o
ZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAg
ICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJy
ZW50NSkgICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0
dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4g
YmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5
b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMg
bXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFk
dmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50NV87Ci0g
ICAgICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2lu
NV87Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9
PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJl
bnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAg
Y3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87
Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1
ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVy
biBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3Qg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAg
Ly8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3Ro
ZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3du
Y2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdl
bmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFy
ZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIg
PDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAg
ICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7
Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBv
aW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhh
cHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNv
bnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRF
bmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXIt
PmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVu
dDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYK
LSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAg
ICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfKTsKLSAgICB9Ci0KLSAgIHBy
aXZhdGU6Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJh
c2VfKG90aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAg
ICAgZW5kMV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFf
KSwKLSAgICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIu
ZW5kMl8pLAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVn
aW4zXyhvdGhlci5iZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAg
ICBjdXJyZW50M18ob3RoZXIuY3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdp
bjRfKSwKLSAgICAgICAgZW5kNF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3Ro
ZXIuY3VycmVudDRfKSwKLSAgICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAg
ZW5kNV8ob3RoZXIuZW5kNV8pLAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSB7
Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRl
Q3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3Zh
bHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpjdXJyZW50
M18sCi0gICAgICAgICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfKSk7Ci0gICAgfQotICAgIGJv
b2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0
IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9u
ZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJl
dHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQy
XyA9PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAg
IGN1cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XzsKLSAg
ICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0
ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNv
bnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAg
IC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVy
YXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJz
aW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRl
cmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0
ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3Ig
Y3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0
b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJh
dG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3Vy
cmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3Ig
YmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9y
IGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVu
dDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVn
aW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVu
ZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVf
OwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwot
ICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNz
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjUmIG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4gZzRf
OwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3I1Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
Nj4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I2Ci0gICAgOiBwdWJsaWMgUGFyYW1H
ZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LAot
ICAgICAgICBUNj4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNj4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3I2KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYpCi0gICAgICA6IGcxXyhnMSksIGcy
XyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNikge30KLSAgdmlydHVhbCB+
Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjYoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0
ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2luKCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAg
ICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRfLmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2
XywgZzZfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBn
MV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBn
NF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgpKTsKLSAgfQotCi0g
cHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFj
ZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRl
cmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQy
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0
b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2KQot
ICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVu
ZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcy
LmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAg
ICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVu
dDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3Vy
cmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1Xyhn
NS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdp
bigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpICAgIHsKLSAgICAgIENv
bXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQot
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
YXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAv
LyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRv
cnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBv
ZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNz
ZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDZfOwotICAgICAgaWYgKGN1cnJlbnQ2XyA9
PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1cnJl
bnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAg
Y3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87
Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBl
bmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQy
XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3Vy
cmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRl
cmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVu
dCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBi
b29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVy
KSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFu
dGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlw
ZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3Io
KSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0
dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVy
ZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlw
ZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJ
dGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVh
bCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJh
bmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8v
IHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYm
IHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJlbnQx
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09IHR5
cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8g
JiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2Xyk7Ci0gICAg
fQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAg
ICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4x
XyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVy
LmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVu
ZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0g
ICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNf
KSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8o
b3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3Vy
cmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41Xyks
Ci0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1
cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZf
KG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XykgewotICAg
ICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJl
bnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8u
cmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAot
ICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XykpOwotICAgIH0K
LSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0
b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8v
IGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0g
ICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBj
dXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAg
ICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5k
NV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl87Ci0gICAgfQotCi0gICAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRv
ckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5k
IGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgot
ICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAg
ICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGN1cnJlbnQ2XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFt
VHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNjo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I2JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+IGc1XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLX07ICAvLyBj
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNgotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjcKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwgOjp0ZXN0aW5nOjp0
dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNz4gPiB7Ci0gcHVibGljOgot
ICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFBh
cmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNyhjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYg
ZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3KQotICAgICAgOiBnMV8o
ZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcp
IHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3KCkge30KLQotICB2aXJ0
dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0g
ICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5i
ZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8s
IGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigp
KTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5k
KCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCks
IGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCks
IGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCkpOwotICB9Ci0K
LSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+Ojpp
dGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLAot
ICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYgY3VycmVu
dDIsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDQ+OjppdGVyYXRvciYgY3VycmVudDQsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNT4mIGc1LAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVy
YXRvciYgY3VycmVudDUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LAotICAg
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciYgY3VycmVudDYs
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciYgY3VycmVudDcpCi0gICAgICAgIDogYmFz
ZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8oZzEuZW5kKCkp
LCBjdXJyZW50MV8oY3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVnaW4oKSksIGVu
ZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBiZWdpbjNfKGcz
LmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50MyksCi0gICAgICAg
ICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJyZW50NF8oY3VycmVu
dDQpLAotICAgICAgICAgIGJlZ2luNV8oZzUuYmVnaW4oKSksIGVuZDVfKGc1LmVuZCgpKSwgY3Vy
cmVudDVfKGN1cnJlbnQ1KSwKLSAgICAgICAgICBiZWdpbjZfKGc2LmJlZ2luKCkpLCBlbmQ2Xyhn
Ni5lbmQoKSksIGN1cnJlbnQ2XyhjdXJyZW50NiksCi0gICAgICAgICAgYmVnaW43XyhnNy5iZWdp
bigpKSwgZW5kN18oZzcuZW5kKCkpLCBjdXJyZW50N18oY3VycmVudDcpICAgIHsKLSAgICAgIENv
bXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQot
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
YXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAv
LyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRv
cnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBv
ZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNz
ZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDdfOwotICAgICAgaWYgKGN1cnJlbnQ3XyA9
PSBlbmQ3XykgewotICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdfOwotICAgICAgICArK2N1cnJl
bnQ2XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAg
Y3VycmVudDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87
Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBl
bmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQz
XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3Vy
cmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBp
ZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0g
ICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
Q2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBj
dXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8g
SGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIK
LSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2Fz
dC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVy
YXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBp
dGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwg
c3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAg
ICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0g
ICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50
IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBl
biBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1
bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQo
KSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1
cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJf
ICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAg
ICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAg
IGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVu
dDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAgICAgICBjdXJyZW50N18gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQ3Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJh
dG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyks
Ci0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVu
ZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2lu
Ml8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAg
Y3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4z
XyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVy
LmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVu
ZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0g
ICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVf
KSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8o
b3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3Vy
cmVudDZfKG90aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43Xyks
Ci0gICAgICAgIGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1
cnJlbnQ3XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZv
aWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAg
Y3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJf
LCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJl
bnQ2XywgKmN1cnJlbnQ3XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAg
ICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3
aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNo
ZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50
MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAg
ICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwK
LSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0g
ZW5kNl8gfHwKLSAgICAgICAgICBjdXJyZW50N18gPT0gZW5kN187Ci0gICAgfQotCi0gICAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQg
b3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVy
YXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8g
YW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2Vz
LgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4K
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsK
LSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAg
ICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGJlZ2luNl87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBlbmQ2XzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGN1cnJlbnQ2XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGJlZ2luN187Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBlbmQ3XzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGN1cnJlbnQ3XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFt
VHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNzo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I3JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+IGc1XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNwotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOD4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0gICAg
OiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4PiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVk
ZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFBhcmFt
VHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOChjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQs
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDg+JiBnOCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwg
ZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwKLSAgICAgICAgICBnOF8oZzgpIHt9
Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4KCkge30KLQotICB2aXJ0dWFs
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAg
cmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdp
bigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1
Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBn
OF8sIGc4Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywg
ZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAg
ZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18u
ZW5kKCksIGc4XywKLSAgICAgICAgZzhfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xh
c3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsK
LSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQx
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0
b3ImIGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+
JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3Im
IGN1cnJlbnQ4KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEu
YmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAg
ICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50
MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJy
ZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0
LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2lu
KCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVn
aW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAot
ICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdf
KGN1cnJlbnQ3KSwKLSAgICAgICAgICBiZWdpbjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQo
KSksIGN1cnJlbnQ4XyhjdXJyZW50OCkgICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0
IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25z
dCB7Ci0gICAgICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5v
dCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNv
bXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0g
ICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAg
ICAgKytjdXJyZW50OF87Ci0gICAgICBpZiAoY3VycmVudDhfID09IGVuZDhfKSB7Ci0gICAgICAg
IGN1cnJlbnQ4XyA9IGJlZ2luOF87Ci0gICAgICAgICsrY3VycmVudDdfOwotICAgICAgfQotICAg
ICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3XykgewotICAgICAgICBjdXJyZW50N18gPSBiZWdpbjdf
OwotICAgICAgICArK2N1cnJlbnQ2XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50Nl8gPT0g
ZW5kNl8pIHsKLSAgICAgICAgY3VycmVudDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50
NV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1
cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwot
ICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5k
M18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJl
bnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29t
cHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJh
dG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQo
KSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9v
bCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikg
Y29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRl
ZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUg
YW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkg
PT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRl
bXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVu
dCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVk
X290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRl
cmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwg
aWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5n
ZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBz
byB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0
eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8g
PT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBl
ZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVy
LT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJl
bnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYm
Ci0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50Nl8gJiYKLSAgICAg
ICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3XyAmJgotICAgICAgICAgIGN1
cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDhfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6
Ci0gICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90
aGVyLmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5k
MV8ob3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAg
ICAgICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8p
LAotICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhv
dGhlci5iZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJy
ZW50M18ob3RoZXIuY3VycmVudDNfKSwKLSAgICAgICAgYmVnaW40XyhvdGhlci5iZWdpbjRfKSwK
LSAgICAgICAgZW5kNF8ob3RoZXIuZW5kNF8pLAotICAgICAgICBjdXJyZW50NF8ob3RoZXIuY3Vy
cmVudDRfKSwKLSAgICAgICAgYmVnaW41XyhvdGhlci5iZWdpbjVfKSwKLSAgICAgICAgZW5kNV8o
b3RoZXIuZW5kNV8pLAotICAgICAgICBjdXJyZW50NV8ob3RoZXIuY3VycmVudDVfKSwKLSAgICAg
ICAgYmVnaW42XyhvdGhlci5iZWdpbjZfKSwKLSAgICAgICAgZW5kNl8ob3RoZXIuZW5kNl8pLAot
ICAgICAgICBjdXJyZW50Nl8ob3RoZXIuY3VycmVudDZfKSwKLSAgICAgICAgYmVnaW43XyhvdGhl
ci5iZWdpbjdfKSwKLSAgICAgICAgZW5kN18ob3RoZXIuZW5kN18pLAotICAgICAgICBjdXJyZW50
N18ob3RoZXIuY3VycmVudDdfKSwKLSAgICAgICAgYmVnaW44XyhvdGhlci5iZWdpbjhfKSwKLSAg
ICAgICAgZW5kOF8ob3RoZXIuZW5kOF8pLAotICAgICAgICBjdXJyZW50OF8ob3RoZXIuY3VycmVu
dDhfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBD
b21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJy
ZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8sICpjdXJyZW50Ml8sICpj
dXJyZW50M18sCi0gICAgICAgICAgICAqY3VycmVudDRfLCAqY3VycmVudDVfLCAqY3VycmVudDZf
LCAqY3VycmVudDdfLCAqY3VycmVudDhfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25z
dCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhl
IHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBo
YXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAgICAgICAg
IGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQyXyB8fAot
ICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0XyA9PSBl
bmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAgIGN1cnJl
bnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAotICAgICAg
ICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlv
biAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
SXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBh
cmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZp
bmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVu
dFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ2Pjo6aXRlcmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNj46Oml0ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2
Pjo6aXRlcmF0b3IgY3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ3Pjo6aXRlcmF0b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUNz46Oml0ZXJhdG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6
aXRlcmF0b3IgY3VycmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4
Pjo6aXRlcmF0b3IgYmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
OD46Oml0ZXJhdG9yIGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRl
cmF0b3IgY3VycmVudDhfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVl
XzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4OjpJdGVyYXRvcgot
Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjgmIG90aGVyKTsK
LQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMj4gZzJfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUND4gZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUNj4gZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4g
ZzdfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4gZzhfOwotfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I4Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWNsYXNzIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I5Ci0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZh
Y2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcs
IFQ4LCBUOT4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4gUGFyYW1UeXBlOwotCi0gIENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I5KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDU+JiBnNSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOD4mIGc4LCBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUOT4mIGc5KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBn
M18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLCBnOF8oZzgpLAotICAg
ICAgICAgIGc5XyhnOSkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjko
KSB7fQotCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdp
bigpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmJlZ2lu
KCksIGcyXywgZzJfLmJlZ2luKCksIGczXywKLSAgICAgICAgZzNfLmJlZ2luKCksIGc0XywgZzRf
LmJlZ2luKCksIGc1XywgZzVfLmJlZ2luKCksIGc2XywgZzZfLmJlZ2luKCksIGc3XywKLSAgICAg
ICAgZzdfLmJlZ2luKCksIGc4XywgZzhfLmJlZ2luKCksIGc5XywgZzlfLmJlZ2luKCkpOwotICB9
Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBjb25z
dCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5lbmQoKSwgZzJfLCBn
Ml8uZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBnNF8sIGc0Xy5lbmQoKSwgZzVfLCBn
NV8uZW5kKCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5lbmQoKSwgZzhfLAotICAgICAgICBn
OF8uZW5kKCksIGc5XywgZzlfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRl
cmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1
YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQz
Pjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBn
NCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1
cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJl
bnQ4LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5KQotICAgICAgICA6
IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVu
ZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkp
LCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4z
XyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAg
ICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1
cnJlbnQ0KSwKLSAgICAgICAgICBiZWdpbjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSks
IGN1cnJlbnQ1XyhjdXJyZW50NSksCi0gICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5k
Nl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8oY3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcu
YmVnaW4oKSksIGVuZDdfKGc3LmVuZCgpKSwgY3VycmVudDdfKGN1cnJlbnQ3KSwKLSAgICAgICAg
ICBiZWdpbjhfKGc4LmJlZ2luKCkpLCBlbmQ4XyhnOC5lbmQoKSksIGN1cnJlbnQ4XyhjdXJyZW50
OCksCi0gICAgICAgICAgYmVnaW45XyhnOS5iZWdpbigpKSwgZW5kOV8oZzkuZW5kKCkpLCBjdXJy
ZW50OV8oY3VycmVudDkpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9
Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdl
bmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAg
ICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2Fs
bGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQg
aXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1
YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3Vy
cmVudDlfOwotICAgICAgaWYgKGN1cnJlbnQ5XyA9PSBlbmQ5XykgewotICAgICAgICBjdXJyZW50
OV8gPSBiZWdpbjlfOwotICAgICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIH0KLSAgICAgIGlmIChj
dXJyZW50OF8gPT0gZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVnaW44XzsKLSAgICAg
ICAgKytjdXJyZW50N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdfID09IGVuZDdfKSB7
Ci0gICAgICAgIGN1cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3VycmVudDZfOwotICAg
ICAgfQotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAgICBjdXJyZW50Nl8g
PSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJy
ZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41XzsKLSAgICAgICAg
KytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09IGVuZDRfKSB7Ci0g
ICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVudDNfOwotICAgICAg
fQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBjdXJyZW50M18gPSBi
ZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50
Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsKLSAgICAgICAgKytj
dXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNv
bnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0
dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFs
dWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhl
IHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8g
aXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAg
R1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0g
ICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAi
Ci0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7
Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAgICAgIENoZWNrZWRE
b3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdl
IG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRo
ZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFy
aWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgp
LgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAg
ICAgICAgKAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDFfICYm
Ci0gICAgICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50Ml8gJiYKLSAgICAg
ICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgotICAgICAgICAgIGN1
cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAgICAgY3VycmVudDVf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gdHlw
ZWRfb3RoZXItPmN1cnJlbnQ2XyAmJgotICAgICAgICAgIGN1cnJlbnQ3XyA9PSB0eXBlZF9vdGhl
ci0+Y3VycmVudDdfICYmCi0gICAgICAgICAgY3VycmVudDhfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50OF8gJiYKLSAgICAgICAgICBjdXJyZW50OV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ5Xyk7
Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhl
cikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIu
YmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFf
KG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAg
ICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQy
XyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVy
LmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJl
Z2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAg
ICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVn
aW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90
aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAg
IGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90aGVyLmN1cnJlbnQ2Xyks
Ci0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVu
ZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3XyksCi0gICAgICAgIGJlZ2lu
OF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVuZDhfKSwKLSAgICAgICAg
Y3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XyksCi0gICAgICAgIGJlZ2luOV8ob3RoZXIuYmVnaW45
XyksCi0gICAgICAgIGVuZDlfKG90aGVyLmVuZDlfKSwKLSAgICAgICAgY3VycmVudDlfKG90aGVy
LmN1cnJlbnQ5XykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAg
IHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAg
ICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVu
dDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1
cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAgICAgICAgICpjdXJyZW50OV8p
KTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVw
b3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhl
Ci0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRz
IHJhbmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0g
ICAgICAgICAgY3VycmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVu
ZDNfIHx8Ci0gICAgICAgICAgY3VycmVudDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVu
dDVfID09IGVuZDVfIHx8Ci0gICAgICAgICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAg
ICAgY3VycmVudDdfID09IGVuZDdfIHx8Ci0gICAgICAgICAgY3VycmVudDhfID09IGVuZDhfIHx8
Ci0gICAgICAgICAgY3VycmVudDlfID09IGVuZDlfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9y
PShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRl
cmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRb
aV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAv
LyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDU+OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDY+OjppdGVyYXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDc+OjppdGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDc+OjppdGVyYXRvciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDg+OjppdGVyYXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDg+OjppdGVyYXRvciBjdXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDk+OjppdGVyYXRvciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ5Pjo6aXRlcmF0b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDk+
OjppdGVyYXRvciBjdXJyZW50OV87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRf
dmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjk6Okl0ZXJh
dG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVk
LgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOSYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ3PiBnN187Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiBnOF87Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ5PiBnOV87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjkKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1jbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yMTAKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwg
Ojp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LAotICAgICAgICBUNywgVDgs
IFQ5LCBUMTA+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gUGFyYW1UeXBlOwotCi0gIENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3IxMChjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+
JiBnOCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQxMD4mIGcxMCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRf
KGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8o
ZzkpLCBnMTBfKGcxMCkge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEw
KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVn
aW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdp
bigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0
Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAg
ICAgIGc3Xy5iZWdpbigpLCBnOF8sIGc4Xy5iZWdpbigpLCBnOV8sIGc5Xy5iZWdpbigpLCBnMTBf
LCBnMTBfLmJlZ2luKCkpOwotICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQ
YXJhbVR5cGU+KiBFbmQoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBn
MV8sIGcxXy5lbmQoKSwgZzJfLCBnMl8uZW5kKCksIGczXywgZzNfLmVuZCgpLAotICAgICAgICBn
NF8sIGc0Xy5lbmQoKSwgZzVfLCBnNV8uZW5kKCksIGc2XywgZzZfLmVuZCgpLCBnN18sIGc3Xy5l
bmQoKSwgZzhfLAotICAgICAgICBnOF8uZW5kKCksIGc5XywgZzlfLmVuZCgpLCBnMTBfLCBnMTBf
LmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRv
cihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6
aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywK
LSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJl
bnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3ImIGN1cnJlbnQ0LAotICAgICAgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+JiBnNywKLSAg
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwKLSAgICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3ImIGN1cnJlbnQ4LAotICAgICAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDk+JiBnOSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ5Pjo6aXRlcmF0b3ImIGN1cnJlbnQ5LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDEwPiYgZzEwLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDEwPjo6aXRl
cmF0b3ImIGN1cnJlbnQxMCkKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdp
bjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0g
ICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8o
Y3VycmVudDIpLAotICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgp
KSwgY3VycmVudDNfKGN1cnJlbnQzKSwKLSAgICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBl
bmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0XyhjdXJyZW50NCksCi0gICAgICAgICAgYmVnaW41Xyhn
NS5iZWdpbigpKSwgZW5kNV8oZzUuZW5kKCkpLCBjdXJyZW50NV8oY3VycmVudDUpLAotICAgICAg
ICAgIGJlZ2luNl8oZzYuYmVnaW4oKSksIGVuZDZfKGc2LmVuZCgpKSwgY3VycmVudDZfKGN1cnJl
bnQ2KSwKLSAgICAgICAgICBiZWdpbjdfKGc3LmJlZ2luKCkpLCBlbmQ3XyhnNy5lbmQoKSksIGN1
cnJlbnQ3XyhjdXJyZW50NyksCi0gICAgICAgICAgYmVnaW44XyhnOC5iZWdpbigpKSwgZW5kOF8o
ZzguZW5kKCkpLCBjdXJyZW50OF8oY3VycmVudDgpLAotICAgICAgICAgIGJlZ2luOV8oZzkuYmVn
aW4oKSksIGVuZDlfKGc5LmVuZCgpKSwgY3VycmVudDlfKGN1cnJlbnQ5KSwKLSAgICAgICAgICBi
ZWdpbjEwXyhnMTAuYmVnaW4oKSksIGVuZDEwXyhnMTAuZW5kKCkpLCBjdXJyZW50MTBfKGN1cnJl
bnQxMCkgICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0
dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4g
YmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5
b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMg
bXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFk
dmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50MTBfOwot
ICAgICAgaWYgKGN1cnJlbnQxMF8gPT0gZW5kMTBfKSB7Ci0gICAgICAgIGN1cnJlbnQxMF8gPSBi
ZWdpbjEwXzsKLSAgICAgICAgKytjdXJyZW50OV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVu
dDlfID09IGVuZDlfKSB7Ci0gICAgICAgIGN1cnJlbnQ5XyA9IGJlZ2luOV87Ci0gICAgICAgICsr
Y3VycmVudDhfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ4XyA9PSBlbmQ4XykgewotICAg
ICAgICBjdXJyZW50OF8gPSBiZWdpbjhfOwotICAgICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIH0K
LSAgICAgIGlmIChjdXJyZW50N18gPT0gZW5kN18pIHsKLSAgICAgICAgY3VycmVudDdfID0gYmVn
aW43XzsKLSAgICAgICAgKytjdXJyZW50Nl87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDZf
ID09IGVuZDZfKSB7Ci0gICAgICAgIGN1cnJlbnQ2XyA9IGJlZ2luNl87Ci0gICAgICAgICsrY3Vy
cmVudDVfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ1XyA9PSBlbmQ1XykgewotICAgICAg
ICBjdXJyZW50NV8gPSBiZWdpbjVfOwotICAgICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAg
ICAgIGlmIChjdXJyZW50NF8gPT0gZW5kNF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40
XzsKLSAgICAgICAgKytjdXJyZW50M187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09
IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVu
dDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBj
dXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAg
IENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJ
dGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJy
ZW50KCkgY29uc3QgeyByZXR1cm4gY3VycmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3Ro
ZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFy
YW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0
eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRv
cigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0g
YXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZm
ZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0
eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0
IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVx
dWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUg
cmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAg
Ly8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkg
JiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVu
dDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9v
dGhlci0+Y3VycmVudDNfICYmCi0gICAgICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5j
dXJyZW50NF8gJiYKLSAgICAgICAgICBjdXJyZW50NV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ1
XyAmJgotICAgICAgICAgIGN1cnJlbnQ2XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDZfICYmCi0g
ICAgICAgICAgY3VycmVudDdfID09IHR5cGVkX290aGVyLT5jdXJyZW50N18gJiYKLSAgICAgICAg
ICBjdXJyZW50OF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ4XyAmJgotICAgICAgICAgIGN1cnJl
bnQ5XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDlfICYmCi0gICAgICAgICAgY3VycmVudDEwXyA9
PSB0eXBlZF9vdGhlci0+Y3VycmVudDEwXyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0
ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNl
XyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVy
LmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJl
Z2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAg
ICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVn
aW4zXyksCi0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90
aGVyLmN1cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAg
IGVuZDRfKG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0Xyks
Ci0gICAgICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVu
ZDVfKSwKLSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2lu
Nl8ob3RoZXIuYmVnaW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAg
Y3VycmVudDZfKG90aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43
XyksCi0gICAgICAgIGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVy
LmN1cnJlbnQ3XyksCi0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVu
ZDhfKG90aGVyLmVuZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XyksCi0g
ICAgICAgIGJlZ2luOV8ob3RoZXIuYmVnaW45XyksCi0gICAgICAgIGVuZDlfKG90aGVyLmVuZDlf
KSwKLSAgICAgICAgY3VycmVudDlfKG90aGVyLmN1cnJlbnQ5XyksCi0gICAgICAgIGJlZ2luMTBf
KG90aGVyLmJlZ2luMTBfKSwKLSAgICAgICAgZW5kMTBfKG90aGVyLmVuZDEwXyksCi0gICAgICAg
IGN1cnJlbnQxMF8ob3RoZXIuY3VycmVudDEwXykgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1
ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlm
ICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgq
Y3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1cnJlbnQ0
XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJlbnQ4XywKLSAgICAg
ICAgICAgICpjdXJyZW50OV8sICpjdXJyZW50MTBfKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQo
KSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQg
b2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJh
dG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotICAg
ICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9PSBlbmQy
XyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1cnJlbnQ0
XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAgICAgICAg
IGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3XyB8fAot
ICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5XyA9PSBl
bmQ5XyB8fAotICAgICAgICAgIGN1cnJlbnQxMF8gPT0gZW5kMTBfOwotICAgIH0KLQotICAgIC8v
IE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lk
IG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1f
IGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNl
cy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3Iu
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFf
OwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87
Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0g
ICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwot
ICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0g
ICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBjdXJyZW50N187Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBiZWdpbjhfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgZW5kOF87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDg+OjppdGVyYXRvciBjdXJyZW50OF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDk+OjppdGVyYXRvciBiZWdpbjlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgZW5kOV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDk+OjppdGVyYXRvciBjdXJyZW50OV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3IgYmVnaW4xMF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDEwPjo6aXRlcmF0b3IgZW5kMTBfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxMD46Oml0ZXJhdG9yIGN1cnJlbnQxMF87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5
cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcjEwOjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvcjEwJiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+IGc1XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+IGc2XzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+IGc4XzsK
LSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDk+IGc5XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDEwPiBnMTBfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMAotCi0K
LS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0v
LwotLy8gSGVscGVyIGNsYXNzZXMgcHJvdmlkaW5nIENvbWJpbmUoKSB3aXRoIHBvbHltb3JwaGlj
IGZlYXR1cmVzLiBUaGV5IGFsbG93Ci0vLyBjYXN0aW5nIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3JOPFQ+IHRvIFBhcmFtR2VuZXJhdG9yPFU+IGlmIFQgaXMKLS8vIGNvbnZlcnRpYmxlIHRvIFUu
Ci0vLwotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjI+Ci1jbGFz
cyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMiB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjIoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyKQotICAgICAg
OiBnMV8oZzEpLCBnMl8oZzIpIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDI+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4g
PigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8
VDEsIFQyPiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjI8VDEsIFQy
PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSkpOwotICB9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXIyJiBvdGhlcik7
Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotfTsg
IC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIyCi0KLXRlbXBsYXRlIDxjbGFzcyBHZW5l
cmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzPgotY2xhc3MgQ2FydGVz
aWFuUHJvZHVjdEhvbGRlcjMgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIzKGNv
bnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5l
cmF0b3IzJiBnMykKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSB7fQotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4gPigpIGNvbnN0IHsK
LSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMz4g
PigKLSAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IzPFQxLCBUMiwgVDM+KAot
ICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjMmIG90aGVyKTsKLQotICBjb25zdCBH
ZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRv
cjMgZzNfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIzCi0KLXRlbXBsYXRl
IDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAot
ICAgIGNsYXNzIEdlbmVyYXRvcjQ+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNCB7Ci0g
cHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjQoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNv
bnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5l
cmF0b3I0JiBnNCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSB7
fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0PiA+KCkgY29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0
ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I0PFQxLCBUMiwgVDMsIFQ0PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0
b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4o
ZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSkpOwot
ICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMg
dW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xk
ZXI0JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRv
cjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87
Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjQKLQotdGVtcGxhdGUgPGNsYXNz
IEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xh
c3MgR2VuZXJhdG9yNCwgY2xhc3MgR2VuZXJhdG9yNT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RI
b2xkZXI1IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNShjb25zdCBHZW5lcmF0
b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMs
IGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSkKLSAgICAgIDogZzFf
KGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSB7fQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwg
VDIsIFQzLCBUNCwgVDU+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6
OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gPigKLSAgICAgICAgbmV3IENhcnRl
c2lhblByb2R1Y3RHZW5lcmF0b3I1PFQxLCBUMiwgVDMsIFQ0LCBUNT4oCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBh
cmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJh
dG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+
KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XykpKTsK
LSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyNSYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0
b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRf
OwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0
SG9sZGVyNQotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwg
Y2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1
LCBjbGFzcyBHZW5lcmF0b3I2PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYgewotIHB1
YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXI2KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25z
dCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJh
dG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2
KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBn
Nl8oZzYpIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNj4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNj4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6
dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gPigKLSAgICAgICAgbmV3IENhcnRlc2lhblBy
b2R1Y3RHZW5lcmF0b3I2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KAotICAgICAgICBzdGF0aWNf
Y2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMz4gPihnM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihn
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNj4gPihnNl8pKSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjYmIG90aGVy
KTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0g
IGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3Qg
R2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0IEdlbmVyYXRvcjYgZzZfOwotfTsgIC8vIGNsYXNzIENh
cnRlc2lhblByb2R1Y3RIb2xkZXI2Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFz
cyBHZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNs
YXNzIEdlbmVyYXRvcjUsIGNsYXNzIEdlbmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjc+Ci1jbGFz
cyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNyB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjcoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNv
bnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9y
NSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3KQot
ICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8o
ZzYpLCBnN18oZzcpIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDc+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxl
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsCi0gICAgICBUNz4gPigpIGNvbnN0IHsKLSAgICByZXR1
cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDc+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNzxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNz4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9y
PFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBh
cmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJh
dG9yPFQ3PiA+KGc3XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRp
b24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBD
YXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNyYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFf
OwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNv
bnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2Vu
ZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RIb2xkZXI3Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBH
ZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNz
IEdlbmVyYXRvcjUsIGNsYXNzIEdlbmVyYXRvcjYsIGNsYXNzIEdlbmVyYXRvcjcsCi0gICAgY2xh
c3MgR2VuZXJhdG9yOD4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI4IHsKLSBwdWJsaWM6
Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOChjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2Vu
ZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQm
IGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNiwgY29u
c3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4KQotICAgICAgOiBnMV8oZzEp
LCBnMl8oZzIpLCBnM18oZzMpLCBnNF8oZzQpLCBnNV8oZzUpLCBnNl8oZzYpLCBnN18oZzcpLAot
ICAgICAgICAgIGc4XyhnOCkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9y
PCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LAotICAgICAgVDg+
ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxl
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gPigKLSAgICAgICAgbmV3IENhcnRlc2lh
blByb2R1Y3RHZW5lcmF0b3I4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4oCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBh
cmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJh
dG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+
KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ4PiA+KGc4XykpKTsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOCYgb3RoZXIpOwotCi0g
IGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3Qg
R2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0
b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdf
OwotICBjb25zdCBHZW5lcmF0b3I4IGc4XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0
SG9sZGVyOAotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwg
Y2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1
LCBjbGFzcyBHZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRv
cjgsIGNsYXNzIEdlbmVyYXRvcjk+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOSB7Ci0g
cHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjkoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNv
bnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5l
cmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYg
ZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25z
dCBHZW5lcmF0b3I5JiBnOSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRf
KGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8o
ZzkpIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LAotICAgICAg
VDk+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1
cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwKLSAgICAgICAgVDk+ID4oCi0gICAg
ICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDE+ID4o
ZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDc+
ID4oZzdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDg+ID4oZzhfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDk+ID4oZzlfKSkpOwotICB9Ci0K
LSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI5JiBv
dGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJf
OwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNv
bnN0IEdlbmVyYXRvcjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2XzsKLSAgY29uc3QgR2Vu
ZXJhdG9yNyBnN187Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBjb25zdCBHZW5lcmF0b3I5
IGc5XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOQotCi10ZW1wbGF0ZSA8
Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAg
ICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBHZW5lcmF0b3I2LCBj
bGFzcyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjgsIGNsYXNzIEdlbmVyYXRvcjks
IGNsYXNzIEdlbmVyYXRvcjEwPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjEwIHsKLSBw
dWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMTAoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNv
bnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5l
cmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYg
ZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwKLSAgICBjb25z
dCBHZW5lcmF0b3I5JiBnOSwgY29uc3QgR2VuZXJhdG9yMTAmIGcxMCkKLSAgICAgIDogZzFfKGcx
KSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwg
ZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpLCBnMTBfKGcxMCkge30KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rp
bmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICBUMTA+
ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxl
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksCi0gICAgICAgIFQxMD4gPigKLSAg
ICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LAotICAgICAgICAgICAgVDEwPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+
ID4oZzNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDY+ID4oZzZfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UGFyYW1HZW5lcmF0b3I8VDc+ID4oZzdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1H
ZW5lcmF0b3I8VDg+ID4oZzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDk+ID4oZzlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDEwPiA+KGcx
MF8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjEwJiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNvbnN0
IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLSAgY29uc3QgR2VuZXJh
dG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBjb25zdCBHZW5lcmF0b3I2IGc2
XzsKLSAgY29uc3QgR2VuZXJhdG9yNyBnN187Ci0gIGNvbnN0IEdlbmVyYXRvcjggZzhfOwotICBj
b25zdCBHZW5lcmF0b3I5IGc5XzsKLSAgY29uc3QgR2VuZXJhdG9yMTAgZzEwXzsKLX07ICAvLyBj
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMTAKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NP
TUJJTkUKLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGlu
ZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1f
VVRJTF9HRU5FUkFURURfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5wdW1wIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJh
bS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMw
ZGZmZTQzYzNjNjc4NTY4NTI0NmRiNWYzMWQxOTQ3YzhhMjJjMjUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKKysr
IC9kZXYvbnVsbApAQCAtMSwyODIgKzAsMCBAQAotJCQgLSotIG1vZGU6IGMrKzsgLSotCi0kdmFy
IG4gPSA1MCAgJCQgTWF4aW11bSBsZW5ndGggb2YgVmFsdWVzIGFyZ3VtZW50cyB3ZSB3YW50IHRv
IHN1cHBvcnQuCi0kdmFyIG1heHR1cGxlID0gMTAgICQkIE1heGltdW0gbnVtYmVyIG9mIENvbWJp
bmUgYXJndW1lbnRzIHdlIHdhbnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2ds
ZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLS8vIFR5cGUgYW5kIGZ1bmN0aW9uIHV0aWxpdGllcyBm
b3IgaW1wbGVtZW50aW5nIHBhcmFtZXRlcml6ZWQgdGVzdHMuCi0vLyBUaGlzIGZpbGUgaXMgZ2Vu
ZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50
bHkgR29vZ2xlIFRlc3Qgc3VwcG9ydHMgYXQgbW9zdCAkbiBhcmd1bWVudHMgaW4gVmFsdWVzLAot
Ly8gYW5kIGF0IG1vc3QgJG1heHR1cGxlIGFyZ3VtZW50cyBpbiBDb21iaW5lLiBQbGVhc2UgY29u
dGFjdAotLy8gZ29vZ2xldGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tIGlmIHlvdSBuZWVk
IG1vcmUuCi0vLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIENv
bWJpbmUgaXMgbGltaXRlZAotLy8gYnkgdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGltcGxlbWVu
dGF0aW9uIG9mIHR1cGxlIHdoaWNoIGlzCi0vLyBjdXJyZW50bHkgc2V0IGF0ICRtYXh0dXBsZS4K
LQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNkZWZp
bmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRF
RF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgotI2lu
Y2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3Rpbmcg
ewotCi0vLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBs
ZW1lbnRlZCBpbgotLy8gaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAot
ICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRl
cmF0b3I+Ojp2YWx1ZV90eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3
YXJkSXRlcmF0b3IgZW5kKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50
ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFZhbHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pOwot
Ci10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5
cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFp
bmVyJiBjb250YWluZXIpOwotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGluIHRo
ZSBWYWx1ZXMoKSBmdW5jdGlvbiB0byBwcm92aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGllcy4K
LSRyYW5nZSBpIDEuLm4KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotCi10ZW1wbGF0ZSA8JGZv
ciBqLCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgVmFsdWVBcnJheSRpIHsKLSBwdWJsaWM6Ci0g
ICRpZiBpPT0xIFtbZXhwbGljaXQgXV1WYWx1ZUFycmF5JGkoJGZvciBqLCBbW1QkaiB2JGpdXSkg
OiAkZm9yIGosIFtbdiQoailfKHYkaildXSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
ICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5
W10gPSB7JGZvciBqLCBbW3N0YXRpY19jYXN0PFQ+KHYkKGopXyldXX07Ci0gICAgcmV0dXJuIFZh
bHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkkaShjb25zdCBWYWx1ZUFycmF5JGkm
IG90aGVyKSA6ICRmb3IgaiwgW1t2JChqKV8ob3RoZXIudiQoailfKV1dIHt9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkkaSYgb3RoZXIpOwotCi0kZm9yIGogW1sK
LQotICBjb25zdCBUJGogdiQoailfOwotXV0KLQotfTsKLQotXV0KLQotIyBpZiBHVEVTVF9IQVNf
Q09NQklORQotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIg
Q09ERS4KLS8vCi0vLyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0
IG9mIHZhbHVlcyBwcm9kdWNlZAotLy8gYnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwot
JHJhbmdlIGkgMi4ubWF4dHVwbGUKLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsg
Mi4uaQotCi10ZW1wbGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgotY2xhc3MgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvciRpCi0gICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZh
Y2U8IDo6dGVzdGluZzo6dHVwbGU8JGZvciBqLCBbW1Qkal1dPiA+IHsKLSBwdWJsaWM6Ci0gIHR5
cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTwkZm9yIGosIFtbVCRqXV0+IFBhcmFtVHlwZTsKLQotICBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkoJGZvciBqLCBbW2NvbnN0IFBhcmFtR2VuZXJhdG9y
PFQkaj4mIGckal1dKQotICAgICAgOiAkZm9yIGosIFtbZyQoailfKGckaildXSB7fQotICB2aXJ0
dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkoKSB7fQotCi0gIHZpcnR1YWwgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBCZWdpbigpIGNvbnN0IHsKLSAgICByZXR1cm4g
bmV3IEl0ZXJhdG9yKHRoaXMsICRmb3IgaiwgW1tnJChqKV8sIGckKGopXy5iZWdpbigpXV0pOwot
ICB9Ci0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBFbmQoKSBj
b25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCAkZm9yIGosIFtbZyQoailfLCBn
JChqKV8uZW5kKCldXSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVi
bGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAg
SXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwg
JGZvciBqLCBbWwotCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGosCi0gICAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUJGo+OjppdGVyYXRvciYgY3VycmVudCQo
aildXSkKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSRmb3IgaiwgW1sKLQotICAgICAgICAgIGJl
Z2luJChqKV8oZyRqLmJlZ2luKCkpLCBlbmQkKGopXyhnJGouZW5kKCkpLCBjdXJyZW50JChqKV8o
Y3VycmVudCRqKQotXV0gICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0K
LSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAg
ICByZXR1cm4gYmFzZV87Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxs
ZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBp
dGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVh
bCB2b2lkIEFkdmFuY2UoKSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJy
ZW50JChpKV87Ci0KLSRmb3IgayBbWwotICAgICAgaWYgKGN1cnJlbnQkKGkrMi1rKV8gPT0gZW5k
JChpKzItaylfKSB7Ci0gICAgICAgIGN1cnJlbnQkKGkrMi1rKV8gPSBiZWdpbiQoaSsyLWspXzsK
LSAgICAgICAgKytjdXJyZW50JChpKzItay0xKV87Ci0gICAgICB9Ci0KLV1dCi0gICAgICBDb21w
dXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0
b3IoKnRoaXMpOwotICAgIH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgp
IGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29s
IEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBj
b25zdCB7Ci0gICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVl
cyB0aGF0IHRoZSBvdGhlcgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBh
bmQgd2UgY2FuIGRvd25jYXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9
PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVt
cHRlZCB0byBjb21wYXJlIGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50
IGdlbmVyYXRvcnMuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRf
b3RoZXIgPQotICAgICAgICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVy
YXRvcj4oJm90aGVyKTsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBp
ZiB0aGV5IGJvdGggcG9pbnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdl
cy4gVGhhdCBjYW4gaGFwcGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNv
IHdlIGhhdmUgdG8gY29uc3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5
cGVkX290aGVyLT5BdEVuZCgpKSB8fAotICAgICAgICAgKCRmb3IgaiAgJiYgW1sKLQotICAgICAg
ICAgIGN1cnJlbnQkKGopXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudCQoailfCi1dXSk7Ci0gICAg
fQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAg
ICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksICRmb3IgaiwgW1sKLQotICAgICAgICBiZWdpbiQo
ailfKG90aGVyLmJlZ2luJChqKV8pLAotICAgICAgICBlbmQkKGopXyhvdGhlci5lbmQkKGopXyks
Ci0gICAgICAgIGN1cnJlbnQkKGopXyhvdGhlci5jdXJyZW50JChqKV8pCi1dXSB7Ci0gICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZh
bHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgpKQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNl
dChuZXcgUGFyYW1UeXBlKCRmb3IgaiwgW1sqY3VycmVudCQoailfXV0pKTsKLSAgICB9Ci0gICAg
Ym9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBh
c3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21w
b25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAg
cmV0dXJuCi0kZm9yIGogIHx8IFtbCi0KLSAgICAgICAgICBjdXJyZW50JChqKV8gPT0gZW5kJChq
KV8KLV1dOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRvciYgb3RoZXIp
OwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3Qg
YmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUgaS10aCByYW5n
ZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBpcyB0aGUgYWN0
dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0kZm9yIGogW1sKLQotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQkaj46Oml0ZXJhdG9yIGJlZ2luJChqKV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VCRqPjo6aXRlcmF0b3IgZW5kJChqKV87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VCRqPjo6aXRlcmF0b3IgY3VycmVudCQoailfOwotXV0KLQotICAg
IGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENh
cnRlc2lhblByb2R1Y3RHZW5lcmF0b3IkaTo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+IGckKGopXzsKLQotXV0KLX07ICAvLyBjbGFzcyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGkKLQotCi1dXQotCi0vLyBJTlRFUk5BTCBJTVBMRU1FTlRB
VElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIEhlbHBlciBjbGFzc2VzIHBy
b3ZpZGluZyBDb21iaW5lKCkgd2l0aCBwb2x5bW9ycGhpYyBmZWF0dXJlcy4gVGhleSBhbGxvdwot
Ly8gY2FzdGluZyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yTjxUPiB0byBQYXJhbUdlbmVyYXRv
cjxVPiBpZiBUIGlzCi0vLyBjb252ZXJ0aWJsZSB0byBVLgotLy8KLSRyYW5nZSBpIDIuLm1heHR1
cGxlCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1tjbGFz
cyBHZW5lcmF0b3Ikal1dPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRpIHsKLSBwdWJs
aWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyJGkoJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRq
JiBnJGpdXSkKLSAgICAgIDogJGZvciBqLCBbW2ckKGopXyhnJGopXV0ge30KLSAgdGVtcGxhdGUg
PCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpdXT4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8IDo6
dGVzdGluZzo6dHVwbGU8JGZvciBqLCBbW1Qkal1dPiA+KCkgY29uc3QgewotICAgIHJldHVybiBQ
YXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTwkZm9yIGosIFtbVCRqXV0+ID4oCi0gICAg
ICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yJGk8JGZvciBqLCBbW1Qkal1dPigKLSRm
b3IgaixbWwotCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQkaj4gPihnJChq
KV8pCi1dXSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lh
blByb2R1Y3RIb2xkZXIkaSYgb3RoZXIpOwotCi0KLSRmb3IgaiBbWwotICBjb25zdCBHZW5lcmF0
b3IkaiBnJChqKV87Ci0KLV1dCi19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciRp
Ci0KLV1dCi0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLX0gIC8vIG5hbWVzcGFj
ZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LXBhcmFtLXV0aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oCmluZGV4IGQ2NGY2MjBjNGM2NzQzNDY3M2MwYTYx
ZTIzOTYwYjYxNWMzNGU3ODQuLjNlNDlhNmJhYWM3MjRkNmJkZWNmYzUxMDYwY2FkNzA4Njc4MzNm
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oCkBAIC0zMiwyMyArMzIsMjYg
QEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwotI2RlZmluZSBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KKyNkZWZp
bmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfSF8K
IAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKKyNpbmNsdWRlIDxjYXNzZXJ0PgogI2luY2x1ZGUgPGl0
ZXJhdG9yPgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dHVw
bGU+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5oIgot
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9wdHIuaCIKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcHJpbnRl
cnMuaCIKKyNpbmNsdWRlICJndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCIKIAogbmFtZXNwYWNlIHRl
c3RpbmcgewotCiAvLyBJbnB1dCB0byBhIHBhcmFtZXRlcml6ZWQgdGVzdCBuYW1lIGdlbmVyYXRv
ciwgZGVzY3JpYmluZyBhIHRlc3QgcGFyYW1ldGVyLgogLy8gQ29uc2lzdHMgb2YgdGhlIHBhcmFt
ZXRlciB2YWx1ZSBhbmQgdGhlIGludGVnZXIgcGFyYW1ldGVyIGluZGV4LgogdGVtcGxhdGUgPGNs
YXNzIFBhcmFtVHlwZT4KQEAgLTcyLDEzICs3NSwxNCBAQCBzdHJ1Y3QgUHJpbnRUb1N0cmluZ1Bh
cmFtTmFtZSB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRB
VElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KKy8vIFV0aWxpdHkgRnVuY3Rpb25z
CisKIC8vIE91dHB1dHMgYSBtZXNzYWdlIGV4cGxhaW5pbmcgaW52YWxpZCByZWdpc3RyYXRpb24g
b2YgZGlmZmVyZW50Ci0vLyBmaXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IGNhc2UuIFRo
aXMgbWF5IGhhcHBlbiB3aGVuCisvLyBmaXh0dXJlIGNsYXNzIGZvciB0aGUgc2FtZSB0ZXN0IHN1
aXRlLiBUaGlzIG1heSBoYXBwZW4gd2hlbgogLy8gVEVTVF9QIG1hY3JvIGlzIHVzZWQgdG8gZGVm
aW5lIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1lIG5hbWUKIC8vIGJ1dCBpbiBkaWZmZXJlbnQgbmFt
ZXNwYWNlcy4KLUdURVNUX0FQSV8gdm9pZCBSZXBvcnRJbnZhbGlkVGVzdENhc2VUeXBlKGNvbnN0
IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pOworR1RFU1RfQVBJXyB2b2lkIFJl
cG9ydEludmFsaWRUZXN0U3VpdGVUeXBlKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29k
ZV9sb2NhdGlvbik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U7CiB0ZW1wbGF0ZSA8dHlwZW5hbWU+IGNsYXNzIFBhcmFtR2VuZXJhdG9yOwpAQCAt
MTUzLDcgKzE1Nyw3IEBAIGNsYXNzIFBhcmFtSXRlcmF0b3IgewogIHByaXZhdGU6CiAgIGZyaWVu
ZCBjbGFzcyBQYXJhbUdlbmVyYXRvcjxUPjsKICAgZXhwbGljaXQgUGFyYW1JdGVyYXRvcihQYXJh
bUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBpbXBsKSA6IGltcGxfKGltcGwpIHt9Ci0gIHNjb3BlZF9w
dHI8UGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiA+IGltcGxfOworICBzdGQ6OnVuaXF1ZV9wdHI8
UGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiA+IGltcGxfOwogfTsKIAogLy8gUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8VD4gaXMgdGhlIGJpbmFyeSBpbnRlcmZhY2UgdG8gYWNjZXNzIGdlbmVyYXRv
cnMKQEAgLTE5Miw3ICsxOTYsNyBAQCBjbGFzcyBQYXJhbUdlbmVyYXRvciB7CiAgIGl0ZXJhdG9y
IGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKGltcGxfLT5FbmQoKSk7IH0KIAogIHByaXZh
dGU6Ci0gIGxpbmtlZF9wdHI8Y29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gPiBpbXBs
XzsKKyAgc3RkOjpzaGFyZWRfcHRyPGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+ID4g
aW1wbF87CiB9OwogCiAvLyBHZW5lcmF0ZXMgdmFsdWVzIGZyb20gYSByYW5nZSBvZiB0d28gY29t
cGFyYWJsZSB2YWx1ZXMuIENhbiBiZSB1c2VkIHRvCkBAIC0yMDUsMTIgKzIwOSwxMiBAQCBjbGFz
cyBSYW5nZUdlbmVyYXRvciA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7CiAg
IFJhbmdlR2VuZXJhdG9yKFQgYmVnaW4sIFQgZW5kLCBJbmNyZW1lbnRUIHN0ZXApCiAgICAgICA6
IGJlZ2luXyhiZWdpbiksIGVuZF8oZW5kKSwKICAgICAgICAgc3RlcF8oc3RlcCksIGVuZF9pbmRl
eF8oQ2FsY3VsYXRlRW5kSW5kZXgoYmVnaW4sIGVuZCwgc3RlcCkpIHt9Ci0gIHZpcnR1YWwgflJh
bmdlR2VuZXJhdG9yKCkge30KKyAgflJhbmdlR2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICB2
aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3QgeworICBQYXJh
bUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBCZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICByZXR1
cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGJlZ2luXywgMCwgc3RlcF8pOwogICB9Ci0gIHZpcnR1YWwg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogRW5kKCkgY29uc3QgeworICBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFQ+KiBFbmQoKSBjb25zdCBvdmVycmlkZSB7CiAgICAgcmV0dXJuIG5ldyBJdGVy
YXRvcih0aGlzLCBlbmRfLCBlbmRfaW5kZXhfLCBzdGVwXyk7CiAgIH0KIApAQCAtMjIwLDIwICsy
MjQsMjAgQEAgY2xhc3MgUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRl
cmZhY2U8VD4gewogICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+
KiBiYXNlLCBUIHZhbHVlLCBpbnQgaW5kZXgsCiAgICAgICAgICAgICAgSW5jcmVtZW50VCBzdGVw
KQogICAgICAgICA6IGJhc2VfKGJhc2UpLCB2YWx1ZV8odmFsdWUpLCBpbmRleF8oaW5kZXgpLCBz
dGVwXyhzdGVwKSB7fQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0b3Io
KSBvdmVycmlkZSB7fQogCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFj
ZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKKyAgICBjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVy
biBiYXNlXzsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2UoKSB7CisgICAgdm9pZCBB
ZHZhbmNlKCkgb3ZlcnJpZGUgewogICAgICAgdmFsdWVfID0gc3RhdGljX2Nhc3Q8VD4odmFsdWVf
ICsgc3RlcF8pOwogICAgICAgaW5kZXhfKys7CiAgICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVy
YXRvckludGVyZmFjZTxUPiogQ2xvbmUoKSBjb25zdCB7CisgICAgUGFyYW1JdGVyYXRvckludGVy
ZmFjZTxUPiogQ2xvbmUoKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IEl0ZXJh
dG9yKCp0aGlzKTsKICAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qg
eyByZXR1cm4gJnZhbHVlXzsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxUPiYgb3RoZXIpIGNvbnN0IHsKKyAgICBjb25zdCBUKiBDdXJyZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gJnZhbHVlXzsgfQorICAgIGJvb2wgRXF1YWxzKGNv
bnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90aGVyKSBjb25zdCBvdmVycmlkZSB7CiAg
ICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRo
ZSBvdGhlcgogICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2Fu
IGRvd25jYXN0LgogICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5C
YXNlR2VuZXJhdG9yKCkpCkBAIC0yOTAsMTIgKzI5NCwxMiBAQCBjbGFzcyBWYWx1ZXNJbkl0ZXJh
dG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewog
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgogICBWYWx1ZXNJbkl0ZXJhdG9y
UmFuZ2VHZW5lcmF0b3IoRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5k
KQogICAgICAgOiBjb250YWluZXJfKGJlZ2luLCBlbmQpIHt9Ci0gIHZpcnR1YWwgflZhbHVlc0lu
SXRlcmF0b3JSYW5nZUdlbmVyYXRvcigpIHt9CisgIH5WYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5l
cmF0b3IoKSBvdmVycmlkZSB7fQogCi0gIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogQmVnaW4oKSBjb25zdCB7CisgIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkg
Y29uc3Qgb3ZlcnJpZGUgewogICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVy
Xy5iZWdpbigpKTsKICAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEVu
ZCgpIGNvbnN0IHsKKyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogRW5kKCkgY29uc3Qgb3Zl
cnJpZGUgewogICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgY29udGFpbmVyXy5lbmQoKSk7
CiAgIH0KIApAQCAtMzA3LDE2ICszMTEsMTYgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdl
R2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICBJdGVy
YXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogYmFzZSwKICAgICAgICAgICAg
ICB0eXBlbmFtZSBDb250YWluZXJUeXBlOjpjb25zdF9pdGVyYXRvciBpdGVyYXRvcikKICAgICAg
ICAgOiBiYXNlXyhiYXNlKSwgaXRlcmF0b3JfKGl0ZXJhdG9yKSB7fQotICAgIHZpcnR1YWwgfkl0
ZXJhdG9yKCkge30KKyAgICB+SXRlcmF0b3IoKSBvdmVycmlkZSB7fQogCi0gICAgdmlydHVhbCBj
b25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsK
KyAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogQmFzZUdlbmVyYXRvcigpIGNv
bnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBiYXNlXzsKICAgICB9Ci0gICAgdmlydHVhbCB2
b2lkIEFkdmFuY2UoKSB7CisgICAgdm9pZCBBZHZhbmNlKCkgb3ZlcnJpZGUgewogICAgICAgKytp
dGVyYXRvcl87CiAgICAgICB2YWx1ZV8ucmVzZXQoKTsKICAgICB9Ci0gICAgdmlydHVhbCBQYXJh
bUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBDbG9uZSgpIGNvbnN0IHsKKyAgICBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFQ+KiBDbG9uZSgpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcg
SXRlcmF0b3IoKnRoaXMpOwogICAgIH0KICAgICAvLyBXZSBuZWVkIHRvIHVzZSBjYWNoZWQgdmFs
dWUgcmVmZXJlbmNlZCBieSBpdGVyYXRvcl8gYmVjYXVzZSAqaXRlcmF0b3JfCkBAIC0zMjYsMTIg
KzMzMCwxMSBAQCBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3IgOiBwdWJsaWMg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICAgIC8vIGNhbiBhZHZhbmNlIGl0ZXJhdG9y
XyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UsIGFuZCB3ZSBjYW5ub3QKICAgICAvLyBkZXRl
Y3QgdGhhdCBmYWN0LiBUaGUgY2xpZW50IGNvZGUsIG9uIHRoZSBvdGhlciBoYW5kLCBpcwogICAg
IC8vIHJlc3BvbnNpYmxlIGZvciBub3QgY2FsbGluZyBDdXJyZW50KCkgb24gYW4gb3V0LW9mLXJh
bmdlIGl0ZXJhdG9yLgotICAgIHZpcnR1YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IHsKLSAg
ICAgIGlmICh2YWx1ZV8uZ2V0KCkgPT0gTlVMTCkKLSAgICAgICAgdmFsdWVfLnJlc2V0KG5ldyBU
KCppdGVyYXRvcl8pKTsKKyAgICBjb25zdCBUKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgewor
ICAgICAgaWYgKHZhbHVlXy5nZXQoKSA9PSBudWxscHRyKSB2YWx1ZV8ucmVzZXQobmV3IFQoKml0
ZXJhdG9yXykpOwogICAgICAgcmV0dXJuIHZhbHVlXy5nZXQoKTsKICAgICB9Ci0gICAgdmlydHVh
bCBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+JiBvdGhlcikgY29u
c3QgeworICAgIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4mIG90
aGVyKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICAvLyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5l
cmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhlcgogICAgICAgLy8gaXRlcmF0b3IgaXMgb2Yg
dGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25jYXN0LgogICAgICAgR1RFU1RfQ0hFQ0tfKEJh
c2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2VuZXJhdG9yKCkpCkBAIC0zNTQsOSArMzU3LDkg
QEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICAvLyBBIGNhY2hlZCB2YWx1ZSBvZiAqaXRlcmF0b3Jf
LiBXZSBrZWVwIGl0IGhlcmUgdG8gYWxsb3cgYWNjZXNzIGJ5CiAgICAgLy8gcG9pbnRlciBpbiB0
aGUgd3JhcHBpbmcgaXRlcmF0b3IncyBvcGVyYXRvci0+KCkuCiAgICAgLy8gdmFsdWVfIG5lZWRz
IHRvIGJlIG11dGFibGUgdG8gYmUgYWNjZXNzZWQgaW4gQ3VycmVudCgpLgotICAgIC8vIFVzZSBv
ZiBzY29wZWRfcHRyIGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZldGltZSwKKyAgICAv
LyBVc2Ugb2Ygc3RkOjp1bmlxdWVfcHRyIGhlbHBzIG1hbmFnZSBjYWNoZWQgdmFsdWUncyBsaWZl
dGltZSwKICAgICAvLyB3aGljaCBpcyBib3VuZCBieSB0aGUgbGlmZXNwYW4gb2YgdGhlIGl0ZXJh
dG9yIGl0c2VsZi4KLSAgICBtdXRhYmxlIHNjb3BlZF9wdHI8Y29uc3QgVD4gdmFsdWVfOworICAg
IG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFQ+IHZhbHVlXzsKICAgfTsgIC8vIGNsYXNz
IFZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvcjo6SXRlcmF0b3IKIAogICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCkBAIC0zNzYsMjUgKzM3OSwx
MiBAQCBzdGQ6OnN0cmluZyBEZWZhdWx0UGFyYW1OYW1lKGNvbnN0IFRlc3RQYXJhbUluZm88UGFy
YW1UeXBlPiYgaW5mbykgewogICByZXR1cm4gbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCk7CiB9CiAK
LS8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0v
LwotLy8gUGFyYW1ldGVyaXplZCB0ZXN0IG5hbWUgb3ZlcmxvYWQgaGVscGVycywgd2hpY2ggaGVs
cCB0aGUKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIGNob29zZSBiZXR3ZWVuIHRo
ZSBkZWZhdWx0IHBhcmFtZXRlcml6ZWQKLS8vIHRlc3QgbmFtZSBnZW5lcmF0b3IgYW5kIHVzZXIg
cGFyYW0gbmFtZSBnZW5lcmF0b3IuCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlLCBjbGFzcyBQ
YXJhbU5hbWVHZW5GdW5jdG9yPgotUGFyYW1OYW1lR2VuRnVuY3RvciBHZXRQYXJhbU5hbWVHZW4o
UGFyYW1OYW1lR2VuRnVuY3RvciBmdW5jKSB7Ci0gIHJldHVybiBmdW5jOwotfQotCi10ZW1wbGF0
ZSA8Y2xhc3MgUGFyYW1UeXBlPgotc3RydWN0IFBhcmFtTmFtZUdlbkZ1bmMgewotICB0eXBlZGVm
IHN0ZDo6c3RyaW5nIFR5cGUoY29uc3QgVGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+Jik7Ci19Owot
Ci10ZW1wbGF0ZSA8Y2xhc3MgUGFyYW1UeXBlPgotdHlwZW5hbWUgUGFyYW1OYW1lR2VuRnVuYzxQ
YXJhbVR5cGU+OjpUeXBlICpHZXRQYXJhbU5hbWVHZW4oKSB7Ci0gIHJldHVybiBEZWZhdWx0UGFy
YW1OYW1lOwordGVtcGxhdGUgPHR5cGVuYW1lIFQgPSBpbnQ+Cit2b2lkIFRlc3ROb3RFbXB0eSgp
IHsKKyAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPT0gMCwgIkVtcHR5IGFyZ3VtZW50cyBhcmUg
bm90IGFsbG93ZWQuIik7CiB9Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCA9IGludD4KK3ZvaWQgVGVz
dE5vdEVtcHR5KGNvbnN0IFQmKSB7fQogCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERP
IE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KQEAgLTQwNiw3ICszOTYsNyBAQCBjbGFzcyBQYXJh
bWV0ZXJpemVkVGVzdEZhY3RvcnkgOiBwdWJsaWMgVGVzdEZhY3RvcnlCYXNlIHsKICAgdHlwZWRl
ZiB0eXBlbmFtZSBUZXN0Q2xhc3M6OlBhcmFtVHlwZSBQYXJhbVR5cGU7CiAgIGV4cGxpY2l0IFBh
cmFtZXRlcml6ZWRUZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1ldGVyKSA6CiAgICAgICBwYXJh
bWV0ZXJfKHBhcmFtZXRlcikge30KLSAgdmlydHVhbCBUZXN0KiBDcmVhdGVUZXN0KCkgeworICBU
ZXN0KiBDcmVhdGVUZXN0KCkgb3ZlcnJpZGUgewogICAgIFRlc3RDbGFzczo6U2V0UGFyYW0oJnBh
cmFtZXRlcl8pOwogICAgIHJldHVybiBuZXcgVGVzdENsYXNzKCk7CiAgIH0KQEAgLTQzNCwxOSAr
NDI0LDE5IEBAIGNsYXNzIFRlc3RNZXRhRmFjdG9yeUJhc2UgewogLy8gVGVzdE1ldGFGYWN0b3J5
IGNyZWF0ZXMgdGVzdCBmYWN0b3JpZXMgZm9yIHBhc3NpbmcgaW50bwogLy8gTWFrZUFuZFJlZ2lz
dGVyVGVzdEluZm8gZnVuY3Rpb24uIFNpbmNlIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIHJlY2Vp
dmVzCiAvLyBvd25lcnNoaXAgb2YgdGVzdCBmYWN0b3J5IHBvaW50ZXIsIHNhbWUgZmFjdG9yeSBv
YmplY3QgY2Fubm90IGJlIHBhc3NlZAotLy8gaW50byB0aGF0IG1ldGhvZCB0d2ljZS4gQnV0IFBh
cmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gaXMgZ29pbmcgdG8gY2FsbAorLy8gaW50byB0aGF0IG1l
dGhvZCB0d2ljZS4gQnV0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGlzIGdvaW5nIHRvIGNh
bGwKIC8vIGl0IGZvciBlYWNoIFRlc3QvUGFyYW1ldGVyIHZhbHVlIGNvbWJpbmF0aW9uLiBUaHVz
IGl0IG5lZWRzIG1ldGEgZmFjdG9yeQogLy8gY3JlYXRvciBjbGFzcy4KLXRlbXBsYXRlIDxjbGFz
cyBUZXN0Q2FzZT4KK3RlbXBsYXRlIDxjbGFzcyBUZXN0U3VpdGU+CiBjbGFzcyBUZXN0TWV0YUZh
Y3RvcnkKLSAgICA6IHB1YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1lIFRlc3RDYXNl
OjpQYXJhbVR5cGU+IHsKKyAgICA6IHB1YmxpYyBUZXN0TWV0YUZhY3RvcnlCYXNlPHR5cGVuYW1l
IFRlc3RTdWl0ZTo6UGFyYW1UeXBlPiB7CiAgcHVibGljOgotICB0eXBlZGVmIHR5cGVuYW1lIFRl
c3RDYXNlOjpQYXJhbVR5cGUgUGFyYW1UeXBlOworICB1c2luZyBQYXJhbVR5cGUgPSB0eXBlbmFt
ZSBUZXN0U3VpdGU6OlBhcmFtVHlwZTsKIAogICBUZXN0TWV0YUZhY3RvcnkoKSB7fQogCi0gIHZp
cnR1YWwgVGVzdEZhY3RvcnlCYXNlKiBDcmVhdGVUZXN0RmFjdG9yeShQYXJhbVR5cGUgcGFyYW1l
dGVyKSB7Ci0gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJpemVkVGVzdEZhY3Rvcnk8VGVzdENhc2U+
KHBhcmFtZXRlcik7CisgIFRlc3RGYWN0b3J5QmFzZSogQ3JlYXRlVGVzdEZhY3RvcnkoUGFyYW1U
eXBlIHBhcmFtZXRlcikgb3ZlcnJpZGUgeworICAgIHJldHVybiBuZXcgUGFyYW1ldGVyaXplZFRl
c3RGYWN0b3J5PFRlc3RTdWl0ZT4ocGFyYW1ldGVyKTsKICAgfQogCiAgcHJpdmF0ZToKQEAgLTQ1
NSw5MyArNDQ1LDEwNyBAQCBjbGFzcyBUZXN0TWV0YUZhY3RvcnkKIAogLy8gSU5URVJOQUwgSU1Q
TEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCi0vLyBQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvQmFzZSBpcyBhIGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBQYXJhbWV0
ZXJpemVkVGVzdENhc2VJbmZvIGNsYXNzZXMuIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNl
CisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgaXMgYSBnZW5lcmljIGludGVyZmFj
ZQorLy8gdG8gUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8gY2xhc3Nlcy4gUGFyYW1ldGVyaXpl
ZFRlc3RTdWl0ZUluZm9CYXNlCiAvLyBhY2N1bXVsYXRlcyB0ZXN0IGluZm9ybWF0aW9uIHByb3Zp
ZGVkIGJ5IFRFU1RfUCBtYWNybyBpbnZvY2F0aW9ucwotLy8gYW5kIGdlbmVyYXRvcnMgcHJvdmlk
ZWQgYnkgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgbWFjcm8gaW52b2NhdGlvbnMKKy8vIGFuZCBn
ZW5lcmF0b3JzIHByb3ZpZGVkIGJ5IElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpbnZv
Y2F0aW9ucwogLy8gYW5kIHVzZXMgdGhhdCBpbmZvcm1hdGlvbiB0byByZWdpc3RlciBhbGwgcmVz
dWx0aW5nIHRlc3QgaW5zdGFuY2VzCi0vLyBpbiBSZWdpc3RlclRlc3RzIG1ldGhvZC4gVGhlIFBh
cmFtZXRlcml6ZVRlc3RDYXNlUmVnaXN0cnkgY2xhc3MgaG9sZHMKLS8vIGEgY29sbGVjdGlvbiBv
ZiBwb2ludGVycyB0byB0aGUgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyBvYmplY3RzCisvLyBp
biBSZWdpc3RlclRlc3RzIG1ldGhvZC4gVGhlIFBhcmFtZXRlcml6ZVRlc3RTdWl0ZVJlZ2lzdHJ5
IGNsYXNzIGhvbGRzCisvLyBhIGNvbGxlY3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGVJbmZvIG9iamVjdHMKIC8vIGFuZCBjYWxscyBSZWdpc3RlclRlc3RzKCkg
b24gZWFjaCBvZiB0aGVtIHdoZW4gYXNrZWQuCi1jbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvQmFzZSB7CitjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgewogIHB1Ymxp
YzoKLSAgdmlydHVhbCB+UGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICB2aXJ0
dWFsIH5QYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UoKSB7fQogCi0gIC8vIEJhc2UgcGFy
dCBvZiB0ZXN0IGNhc2UgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KLSAgdmlydHVhbCBjb25z
dCBzdGQ6OnN0cmluZyYgR2V0VGVzdENhc2VOYW1lKCkgY29uc3QgPSAwOwotICAvLyBUZXN0IGNh
c2UgaWQgdG8gdmVyaWZ5IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRUZXN0Q2FzZVR5
cGVJZCgpIGNvbnN0ID0gMDsKKyAgLy8gQmFzZSBwYXJ0IG9mIHRlc3Qgc3VpdGUgbmFtZSBmb3Ig
ZGlzcGxheSBwdXJwb3Nlcy4KKyAgdmlydHVhbCBjb25zdCBzdGQ6OnN0cmluZyYgR2V0VGVzdFN1
aXRlTmFtZSgpIGNvbnN0ID0gMDsKKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkgaWRlbnRp
dHkuCisgIHZpcnR1YWwgVHlwZUlkIEdldFRlc3RTdWl0ZVR5cGVJZCgpIGNvbnN0ID0gMDsKICAg
Ly8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byByZWdpc3RlciB0ZXN0cyBp
biB0aGlzCi0gIC8vIHRlc3QgY2FzZSByaWdodCBiZWZvcmUgcnVubmluZyB0aGVtIGluIFJVTl9B
TExfVEVTVFMgbWFjcm8uCi0gIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIG1v
cmUgdGhlbiBvbmNlIG9uIGFueSBzaW5nbGUKLSAgLy8gaW5zdGFuY2Ugb2YgYSBQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvQmFzZSBkZXJpdmVkIGNsYXNzLgorICAvLyB0ZXN0IHN1aXRlIHJpZ2h0
IGJlZm9yZSBydW5uaW5nIHRoZW0gaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBt
ZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQor
ICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVk
IGNsYXNzLgogICB2aXJ0dWFsIHZvaWQgUmVnaXN0ZXJUZXN0cygpID0gMDsKIAogIHByb3RlY3Rl
ZDoKLSAgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UoKSB7fQorICBQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlSW5mb0Jhc2UoKSB7fQogCiAgcHJpdmF0ZToKLSAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSk7CisgIEdURVNUX0RJ
U0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKTsK
IH07CiAKIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENP
REUuCiAvLwotLy8gUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyBhY2N1bXVsYXRlcyB0ZXN0cyBv
YnRhaW5lZCBmcm9tIFRFU1RfUAotLy8gbWFjcm8gaW52b2NhdGlvbnMgZm9yIGEgcGFydGljdWxh
ciB0ZXN0IGNhc2UgYW5kIGdlbmVyYXRvcnMKLS8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AgbWFjcm8gaW52b2NhdGlvbnMgZm9yIHRoYXQKLS8vIHRlc3QgY2FzZS4gSXQg
cmVnaXN0ZXJzIHRlc3RzIHdpdGggYWxsIHZhbHVlcyBnZW5lcmF0ZWQgYnkgYWxsCisvLyBSZXBv
cnQgYSB0aGUgbmFtZSBvZiBhIHRlc3Rfc3VpdCBhcyBzYWZlIHRvIGlnbm9yZQorLy8gYXMgdGhl
IHNpZGUgZWZmZWN0IG9mIGNvbnN0cnVjdGlvbiBvZiB0aGlzIHR5cGUuCitzdHJ1Y3QgTWFya0Fz
SWdub3JlZCB7CisgIGV4cGxpY2l0IE1hcmtBc0lnbm9yZWQoY29uc3QgY2hhciogdGVzdF9zdWl0
ZSk7Cit9OworCitHVEVTVF9BUElfIHZvaWQgSW5zZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qg
c3RkOjpzdHJpbmcmIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ29kZUxvY2F0aW9uIGxvY2F0aW9uLCBib29sIGhhc190ZXN0X3ApOworCisvLyBJTlRFUk5B
TCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgorLy8KKy8vIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvIGFjY3VtdWxhdGVzIHRlc3RzIG9idGFpbmVkIGZyb20gVEVT
VF9QCisvLyBtYWNybyBpbnZvY2F0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIHRlc3Qgc3VpdGUgYW5k
IGdlbmVyYXRvcnMKKy8vIG9idGFpbmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1h
Y3JvIGludm9jYXRpb25zIGZvciB0aGF0CisvLyB0ZXN0IHN1aXRlLiBJdCByZWdpc3RlcnMgdGVz
dHMgd2l0aCBhbGwgdmFsdWVzIGdlbmVyYXRlZCBieSBhbGwKIC8vIGdlbmVyYXRvcnMgd2hlbiBh
c2tlZC4KLXRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewordGVtcGxh
dGUgPGNsYXNzIFRlc3RTdWl0ZT4KK2NsYXNzIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvIDog
cHVibGljIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSB7CiAgcHVibGljOgogICAvLyBQ
YXJhbVR5cGUgYW5kIEdlbmVyYXRvckNyZWF0aW9uRnVuYyBhcmUgcHJpdmF0ZSB0eXBlcyBidXQg
YXJlIHJlcXVpcmVkCiAgIC8vIGZvciBkZWNsYXJhdGlvbnMgb2YgcHVibGljIG1ldGhvZHMgQWRk
VGVzdFBhdHRlcm4oKSBhbmQKLSAgLy8gQWRkVGVzdENhc2VJbnN0YW50aWF0aW9uKCkuCi0gIHR5
cGVkZWYgdHlwZW5hbWUgVGVzdENhc2U6OlBhcmFtVHlwZSBQYXJhbVR5cGU7CisgIC8vIEFkZFRl
c3RTdWl0ZUluc3RhbnRpYXRpb24oKS4KKyAgdXNpbmcgUGFyYW1UeXBlID0gdHlwZW5hbWUgVGVz
dFN1aXRlOjpQYXJhbVR5cGU7CiAgIC8vIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGluc3Rh
bmNlIG9mIGFwcHJvcHJpYXRlIGdlbmVyYXRvciB0eXBlLgogICB0eXBlZGVmIFBhcmFtR2VuZXJh
dG9yPFBhcmFtVHlwZT4oR2VuZXJhdG9yQ3JlYXRpb25GdW5jKSgpOwotICB0eXBlZGVmIHR5cGVu
YW1lIFBhcmFtTmFtZUdlbkZ1bmM8UGFyYW1UeXBlPjo6VHlwZSBQYXJhbU5hbWVHZW5lcmF0b3JG
dW5jOworICB1c2luZyBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jID0gc3RkOjpzdHJpbmcoY29uc3Qg
VGVzdFBhcmFtSW5mbzxQYXJhbVR5cGU+Jik7CiAKLSAgZXhwbGljaXQgUGFyYW1ldGVyaXplZFRl
c3RDYXNlSW5mbygKLSAgICAgIGNvbnN0IGNoYXIqIG5hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xv
Y2F0aW9uKQotICAgICAgOiB0ZXN0X2Nhc2VfbmFtZV8obmFtZSksIGNvZGVfbG9jYXRpb25fKGNv
ZGVfbG9jYXRpb24pIHt9CisgIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKGNv
bnN0IGNoYXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv
ZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKQorICAgICAgOiB0ZXN0X3N1aXRlX25hbWVfKG5hbWUp
LCBjb2RlX2xvY2F0aW9uXyhjb2RlX2xvY2F0aW9uKSB7fQogCi0gIC8vIFRlc3QgY2FzZSBiYXNl
IG5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMuCi0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcm
IEdldFRlc3RDYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRlc3RfY2FzZV9uYW1lXzsgfQotICAv
LyBUZXN0IGNhc2UgaWQgdG8gdmVyaWZ5IGlkZW50aXR5LgotICB2aXJ0dWFsIFR5cGVJZCBHZXRU
ZXN0Q2FzZVR5cGVJZCgpIGNvbnN0IHsgcmV0dXJuIEdldFR5cGVJZDxUZXN0Q2FzZT4oKTsgfQor
ICAvLyBUZXN0IHN1aXRlIGJhc2UgbmFtZSBmb3IgZGlzcGxheSBwdXJwb3Nlcy4KKyAgY29uc3Qg
c3RkOjpzdHJpbmcmIEdldFRlc3RTdWl0ZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgcmV0
dXJuIHRlc3Rfc3VpdGVfbmFtZV87CisgIH0KKyAgLy8gVGVzdCBzdWl0ZSBpZCB0byB2ZXJpZnkg
aWRlbnRpdHkuCisgIFR5cGVJZCBHZXRUZXN0U3VpdGVUeXBlSWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBHZXRUeXBlSWQ8VGVzdFN1aXRlPigpOyB9CiAgIC8vIFRFU1RfUCBtYWNybyB1c2Vz
IEFkZFRlc3RQYXR0ZXJuKCkgdG8gcmVjb3JkIGluZm9ybWF0aW9uCiAgIC8vIGFib3V0IGEgc2lu
Z2xlIHRlc3QgaW4gYSBMb2NhbFRlc3RJbmZvIHN0cnVjdHVyZS4KLSAgLy8gdGVzdF9jYXNlX25h
bWUgaXMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgdGVzdCBjYXNlICh3aXRob3V0IGludm9jYXRpb24K
KyAgLy8gdGVzdF9zdWl0ZV9uYW1lIGlzIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUg
KHdpdGhvdXQgaW52b2NhdGlvbgogICAvLyBwcmVmaXgpLiB0ZXN0X2Jhc2VfbmFtZSBpcyB0aGUg
bmFtZSBvZiBhbiBpbmRpdmlkdWFsIHRlc3Qgd2l0aG91dAogICAvLyBwYXJhbWV0ZXIgaW5kZXgu
IEZvciB0aGUgdGVzdCBTZXF1ZW5jZUEvRm9vVGVzdC5Eb0Jhci8xIEZvb1Rlc3QgaXMKLSAgLy8g
dGVzdCBjYXNlIGJhc2UgbmFtZSBhbmQgRG9CYXIgaXMgdGVzdCBiYXNlIG5hbWUuCi0gIHZvaWQg
QWRkVGVzdFBhdHRlcm4oY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogdGVzdF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgVGVzdE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBtZXRhX2ZhY3RvcnkpIHsKLSAgICB0
ZXN0c18ucHVzaF9iYWNrKGxpbmtlZF9wdHI8VGVzdEluZm8+KG5ldyBUZXN0SW5mbyh0ZXN0X2Nh
c2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2Jhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXRhX2ZhY3RvcnkpKSk7CisgIC8vIHRlc3Qgc3VpdGUg
YmFzZSBuYW1lIGFuZCBEb0JhciBpcyB0ZXN0IGJhc2UgbmFtZS4KKyAgdm9pZCBBZGRUZXN0UGF0
dGVybihjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IGNoYXIqIHRlc3RfYmFzZV9u
YW1lLAorICAgICAgICAgICAgICAgICAgICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBl
PiogbWV0YV9mYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2Rl
X2xvY2F0aW9uKSB7CisgICAgdGVzdHNfLnB1c2hfYmFjayhzdGQ6OnNoYXJlZF9wdHI8VGVzdElu
Zm8+KG5ldyBUZXN0SW5mbygKKyAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X2Jhc2VfbmFt
ZSwgbWV0YV9mYWN0b3J5LCBjb2RlX2xvY2F0aW9uKSkpOwogICB9Ci0gIC8vIElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QIG1hY3JvIHVzZXMgQWRkR2VuZXJhdG9yKCkgdG8gcmVjb3JkIGluZm9ybWF0
aW9uCisgIC8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyB1c2VzIEFkZEdlbmVyYXRv
cigpIHRvIHJlY29yZCBpbmZvcm1hdGlvbgogICAvLyBhYm91dCBhIGdlbmVyYXRvci4KLSAgaW50
IEFkZFRlc3RDYXNlSW5zdGFudGlhdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgaW5zdGFudGlhdGlv
bl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRvckNyZWF0aW9u
RnVuYyogZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVHZW5l
cmF0b3JGdW5jKiBuYW1lX2Z1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsKKyAgaW50IEFkZFRlc3RTdWl0ZUluc3RhbnRpYXRp
b24oY29uc3Qgc3RkOjpzdHJpbmcmIGluc3RhbnRpYXRpb25fbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR2VuZXJhdG9yQ3JlYXRpb25GdW5jKiBmdW5jLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVHZW5lcmF0b3JGdW5jKiBuYW1lX2Z1bmMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBs
aW5lKSB7CiAgICAgaW5zdGFudGlhdGlvbnNfLnB1c2hfYmFjaygKICAgICAgICAgSW5zdGFudGlh
dGlvbkluZm8oaW5zdGFudGlhdGlvbl9uYW1lLCBmdW5jLCBuYW1lX2Z1bmMsIGZpbGUsIGxpbmUp
KTsKICAgICByZXR1cm4gMDsgIC8vIFJldHVybiB2YWx1ZSB1c2VkIG9ubHkgdG8gcnVuIHRoaXMg
bWV0aG9kIGluIG5hbWVzcGFjZSBzY29wZS4KICAgfQotICAvLyBVbml0VGVzdCBjbGFzcyBpbnZv
a2VzIHRoaXMgbWV0aG9kIHRvIHJlZ2lzdGVyIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlCi0gIC8v
IHRlc3QgY2FzZXMgcmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBt
YWNyby4KLSAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGVuIG9u
Y2Ugb24gYW55IHNpbmdsZQotICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0Q2Fz
ZUluZm9CYXNlIGRlcml2ZWQgY2xhc3MuCi0gIC8vIFVuaXRUZXN0IGhhcyBhIGd1YXJkIHRvIHBy
ZXZlbnQgZnJvbSBjYWxsaW5nIHRoaXMgbWV0aG9kIG1vcmUgdGhlbiBvbmNlLgotICB2aXJ0dWFs
IHZvaWQgUmVnaXN0ZXJUZXN0cygpIHsKKyAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlz
IG1ldGhvZCB0byByZWdpc3RlciB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUKKyAgLy8gcmlnaHQg
YmVmb3JlIHJ1bm5pbmcgdGVzdHMgaW4gUlVOX0FMTF9URVNUUyBtYWNyby4KKyAgLy8gVGhpcyBt
ZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2Ugb24gYW55IHNpbmdsZQor
ICAvLyBpbnN0YW5jZSBvZiBhIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSBkZXJpdmVk
IGNsYXNzLgorICAvLyBVbml0VGVzdCBoYXMgYSBndWFyZCB0byBwcmV2ZW50IGZyb20gY2FsbGlu
ZyB0aGlzIG1ldGhvZCBtb3JlIHRoYW4gb25jZS4KKyAgdm9pZCBSZWdpc3RlclRlc3RzKCkgb3Zl
cnJpZGUgeworICAgIGJvb2wgZ2VuZXJhdGVkX2luc3RhbnRpYXRpb25zID0gZmFsc2U7CisKICAg
ICBmb3IgKHR5cGVuYW1lIFRlc3RJbmZvQ29udGFpbmVyOjppdGVyYXRvciB0ZXN0X2l0ID0gdGVz
dHNfLmJlZ2luKCk7CiAgICAgICAgICB0ZXN0X2l0ICE9IHRlc3RzXy5lbmQoKTsgKyt0ZXN0X2l0
KSB7Ci0gICAgICBsaW5rZWRfcHRyPFRlc3RJbmZvPiB0ZXN0X2luZm8gPSAqdGVzdF9pdDsKKyAg
ICAgIHN0ZDo6c2hhcmVkX3B0cjxUZXN0SW5mbz4gdGVzdF9pbmZvID0gKnRlc3RfaXQ7CiAgICAg
ICBmb3IgKHR5cGVuYW1lIEluc3RhbnRpYXRpb25Db250YWluZXI6Oml0ZXJhdG9yIGdlbl9pdCA9
CiAgICAgICAgICAgICAgICBpbnN0YW50aWF0aW9uc18uYmVnaW4oKTsgZ2VuX2l0ICE9IGluc3Rh
bnRpYXRpb25zXy5lbmQoKTsKICAgICAgICAgICAgICAgICsrZ2VuX2l0KSB7CkBAIC01NTEsMTYg
KzU1NSwxOCBAQCBjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIDogcHVibGljIFBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIHsKICAgICAgICAgY29uc3QgY2hhciogZmlsZSA9IGdl
bl9pdC0+ZmlsZTsKICAgICAgICAgaW50IGxpbmUgPSBnZW5faXQtPmxpbmU7CiAKLSAgICAgICAg
c3RkOjpzdHJpbmcgdGVzdF9jYXNlX25hbWU7CisgICAgICAgIHN0ZDo6c3RyaW5nIHRlc3Rfc3Vp
dGVfbmFtZTsKICAgICAgICAgaWYgKCAhaW5zdGFudGlhdGlvbl9uYW1lLmVtcHR5KCkgKQotICAg
ICAgICAgIHRlc3RfY2FzZV9uYW1lID0gaW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOwotICAgICAg
ICB0ZXN0X2Nhc2VfbmFtZSArPSB0ZXN0X2luZm8tPnRlc3RfY2FzZV9iYXNlX25hbWU7CisgICAg
ICAgICAgdGVzdF9zdWl0ZV9uYW1lID0gaW5zdGFudGlhdGlvbl9uYW1lICsgIi8iOworICAgICAg
ICB0ZXN0X3N1aXRlX25hbWUgKz0gdGVzdF9pbmZvLT50ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKIAog
ICAgICAgICBzaXplX3QgaSA9IDA7CiAgICAgICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0
X3BhcmFtX25hbWVzOwogICAgICAgICBmb3IgKHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFBhcmFt
VHlwZT46Oml0ZXJhdG9yIHBhcmFtX2l0ID0KICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmJl
Z2luKCk7CiAgICAgICAgICAgICAgcGFyYW1faXQgIT0gZ2VuZXJhdG9yLmVuZCgpOyArK3BhcmFt
X2l0LCArK2kpIHsKKyAgICAgICAgICBnZW5lcmF0ZWRfaW5zdGFudGlhdGlvbnMgPSB0cnVlOwor
CiAgICAgICAgICAgTWVzc2FnZSB0ZXN0X25hbWVfc3RyZWFtOwogCiAgICAgICAgICAgc3RkOjpz
dHJpbmcgcGFyYW1fbmFtZSA9IG5hbWVfZnVuYygKQEAgLTU3NywzOSArNTgzLDQ4IEBAIGNsYXNz
IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNl
SW5mb0Jhc2UgewogCiAgICAgICAgICAgdGVzdF9wYXJhbV9uYW1lcy5pbnNlcnQocGFyYW1fbmFt
ZSk7CiAKLSAgICAgICAgICB0ZXN0X25hbWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNl
X25hbWUgPDwgIi8iIDw8IHBhcmFtX25hbWU7CisgICAgICAgICAgaWYgKCF0ZXN0X2luZm8tPnRl
c3RfYmFzZV9uYW1lLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIHRlc3RfbmFtZV9zdHJlYW0gPDwg
dGVzdF9pbmZvLT50ZXN0X2Jhc2VfbmFtZSA8PCAiLyI7CisgICAgICAgICAgfQorICAgICAgICAg
IHRlc3RfbmFtZV9zdHJlYW0gPDwgcGFyYW1fbmFtZTsKICAgICAgICAgICBNYWtlQW5kUmVnaXN0
ZXJUZXN0SW5mbygKLSAgICAgICAgICAgICAgdGVzdF9jYXNlX25hbWUuY19zdHIoKSwKLSAgICAg
ICAgICAgICAgdGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLAotICAgICAgICAg
ICAgICBOVUxMLCAgLy8gTm8gdHlwZSBwYXJhbWV0ZXIuCi0gICAgICAgICAgICAgIFByaW50VG9T
dHJpbmcoKnBhcmFtX2l0KS5jX3N0cigpLAotICAgICAgICAgICAgICBjb2RlX2xvY2F0aW9uXywK
LSAgICAgICAgICAgICAgR2V0VGVzdENhc2VUeXBlSWQoKSwKLSAgICAgICAgICAgICAgVGVzdENh
c2U6OlNldFVwVGVzdENhc2UsCi0gICAgICAgICAgICAgIFRlc3RDYXNlOjpUZWFyRG93blRlc3RD
YXNlLAorICAgICAgICAgICAgICB0ZXN0X3N1aXRlX25hbWUuY19zdHIoKSwgdGVzdF9uYW1lX3N0
cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLAorICAgICAgICAgICAgICBudWxscHRyLCAgLy8gTm8g
dHlwZSBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgIFByaW50VG9TdHJpbmcoKnBhcmFtX2l0KS5j
X3N0cigpLCB0ZXN0X2luZm8tPmNvZGVfbG9jYXRpb24sCisgICAgICAgICAgICAgIEdldFRlc3RT
dWl0ZVR5cGVJZCgpLAorICAgICAgICAgICAgICBTdWl0ZUFwaVJlc29sdmVyPFRlc3RTdWl0ZT46
OkdldFNldFVwQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCisgICAgICAgICAgICAgIFN1aXRlQXBp
UmVzb2x2ZXI8VGVzdFN1aXRlPjo6R2V0VGVhckRvd25DYXNlT3JTdWl0ZShmaWxlLCBsaW5lKSwK
ICAgICAgICAgICAgICAgdGVzdF9pbmZvLT50ZXN0X21ldGFfZmFjdG9yeS0+Q3JlYXRlVGVzdEZh
Y3RvcnkoKnBhcmFtX2l0KSk7CiAgICAgICAgIH0gIC8vIGZvciBwYXJhbV9pdAogICAgICAgfSAg
Ly8gZm9yIGdlbl9pdAogICAgIH0gIC8vIGZvciB0ZXN0X2l0Ci0gIH0gIC8vIFJlZ2lzdGVyVGVz
dHMKKworICAgIGlmICghZ2VuZXJhdGVkX2luc3RhbnRpYXRpb25zKSB7CisgICAgICAvLyBUaGVy
ZSBhcmUgbm8gZ2VuZXJhb3Rycywgb3IgdGhleSBhbGwgZ2VuZXJhdGUgbm90aGluZyAuLi4KKyAg
ICAgIEluc2VydFN5bnRoZXRpY1Rlc3RDYXNlKEdldFRlc3RTdWl0ZU5hbWUoKSwgY29kZV9sb2Nh
dGlvbl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGVzdHNfLmVtcHR5KCkpOwor
ICAgIH0KKyAgfSAgICAvLyBSZWdpc3RlclRlc3RzCiAKICBwcml2YXRlOgogICAvLyBMb2NhbFRl
c3RJbmZvIHN0cnVjdHVyZSBrZWVwcyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSB0ZXN0IHJl
Z2lzdGVyZWQKICAgLy8gd2l0aCBURVNUX1AgbWFjcm8uCiAgIHN0cnVjdCBUZXN0SW5mbyB7Ci0g
ICAgVGVzdEluZm8oY29uc3QgY2hhciogYV90ZXN0X2Nhc2VfYmFzZV9uYW1lLAotICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGFfdGVzdF9iYXNlX25hbWUsCi0gICAgICAgICAgICAgVGVzdE1ldGFG
YWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBhX3Rlc3RfbWV0YV9mYWN0b3J5KSA6Ci0gICAgICAgIHRl
c3RfY2FzZV9iYXNlX25hbWUoYV90ZXN0X2Nhc2VfYmFzZV9uYW1lKSwKLSAgICAgICAgdGVzdF9i
YXNlX25hbWUoYV90ZXN0X2Jhc2VfbmFtZSksCi0gICAgICAgIHRlc3RfbWV0YV9mYWN0b3J5KGFf
dGVzdF9tZXRhX2ZhY3RvcnkpIHt9Ci0KLSAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2Vf
YmFzZV9uYW1lOworICAgIFRlc3RJbmZvKGNvbnN0IGNoYXIqIGFfdGVzdF9zdWl0ZV9iYXNlX25h
bWUsIGNvbnN0IGNoYXIqIGFfdGVzdF9iYXNlX25hbWUsCisgICAgICAgICAgICAgVGVzdE1ldGFG
YWN0b3J5QmFzZTxQYXJhbVR5cGU+KiBhX3Rlc3RfbWV0YV9mYWN0b3J5LAorICAgICAgICAgICAg
IENvZGVMb2NhdGlvbiBhX2NvZGVfbG9jYXRpb24pCisgICAgICAgIDogdGVzdF9zdWl0ZV9iYXNl
X25hbWUoYV90ZXN0X3N1aXRlX2Jhc2VfbmFtZSksCisgICAgICAgICAgdGVzdF9iYXNlX25hbWUo
YV90ZXN0X2Jhc2VfbmFtZSksCisgICAgICAgICAgdGVzdF9tZXRhX2ZhY3RvcnkoYV90ZXN0X21l
dGFfZmFjdG9yeSksCisgICAgICAgICAgY29kZV9sb2NhdGlvbihhX2NvZGVfbG9jYXRpb24pIHt9
CisKKyAgICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X3N1aXRlX2Jhc2VfbmFtZTsKICAgICBjb25z
dCBzdGQ6OnN0cmluZyB0ZXN0X2Jhc2VfbmFtZTsKLSAgICBjb25zdCBzY29wZWRfcHRyPFRlc3RN
ZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBlPiA+IHRlc3RfbWV0YV9mYWN0b3J5OworICAgIGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxUZXN0TWV0YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4gPiB0ZXN0X21l
dGFfZmFjdG9yeTsKKyAgICBjb25zdCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbjsKICAgfTsK
LSAgdHlwZWRlZiA6OnN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGVzdEluZm8+ID4gVGVzdEluZm9D
b250YWluZXI7Ci0gIC8vIFJlY29yZHMgZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIG1hY3JvczoKKyAgdXNpbmcgVGVzdEluZm9Db250YWluZXIgPSA6OnN0ZDo6dmVj
dG9yPHN0ZDo6c2hhcmVkX3B0cjxUZXN0SW5mbz4gPjsKKyAgLy8gUmVjb3JkcyBkYXRhIHJlY2Vp
dmVkIGZyb20gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvczoKICAgLy8gIDxJbnN0YW50
aWF0aW9uIG5hbWUsIFNlcXVlbmNlIGdlbmVyYXRvciBjcmVhdGlvbiBmdW5jdGlvbiwKICAgLy8g
ICAgIE5hbWUgZ2VuZXJhdG9yIGZ1bmN0aW9uLCBTb3VyY2UgZmlsZSwgU291cmNlIGxpbmU+CiAg
IHN0cnVjdCBJbnN0YW50aWF0aW9uSW5mbyB7CkBAIC02NDYsNzkgKzY2MSwyODcgQEAgY2xhc3Mg
UGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyA6IHB1YmxpYyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvQmFzZSB7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnN0cmluZyB0
ZXN0X2Nhc2VfbmFtZV87CisgIGNvbnN0IHN0ZDo6c3RyaW5nIHRlc3Rfc3VpdGVfbmFtZV87CiAg
IENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uXzsKICAgVGVzdEluZm9Db250YWluZXIgdGVzdHNf
OwogICBJbnN0YW50aWF0aW9uQ29udGFpbmVyIGluc3RhbnRpYXRpb25zXzsKIAotICBHVEVTVF9E
SVNBTExPV19DT1BZX0FORF9BU1NJR05fKFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8pOwotfTsg
IC8vIGNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8KKyAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyk7Cit9OyAgLy8gY2xhc3Mg
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRl
ZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwordGVtcGxhdGUgPGNsYXNzIFRlc3RDYXNlPgordXNpbmcgUGFyYW1ldGVyaXplZFRl
c3RDYXNlSW5mbyA9IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvPFRlc3RDYXNlPjsKKyNlbmRp
ZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAvLyBJTlRFUk5BTCBJ
TVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KLS8vIFBhcmFtZXRl
cml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IGNvbnRhaW5zIGEgbWFwIG9mIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm9CYXNlCi0vLyBjbGFzc2VzIGFjY2Vzc2VkIGJ5IHRlc3QgY2FzZSBuYW1lcy4gVEVT
VF9QIGFuZCBJTlNUQU5USUFURV9URVNUX0NBU0VfUAotLy8gbWFjcm9zIHVzZSBpdCB0byBsb2Nh
dGUgdGhlaXIgY29ycmVzcG9uZGluZyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvCi0vLyBkZXNj
cmlwdG9ycy4KLWNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IHsKKy8vIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBjb250YWlucyBhIG1hcCBvZgorLy8gUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZUluZm9CYXNlIGNsYXNzZXMgYWNjZXNzZWQgYnkgdGVzdCBzdWl0ZSBuYW1l
cy4gVEVTVF9QCisvLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIG1hY3JvcyB1c2UgaXQg
dG8gbG9jYXRlIHRoZWlyIGNvcnJlc3BvbmRpbmcKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJ
bmZvIGRlc2NyaXB0b3JzLgorY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IHsK
ICBwdWJsaWM6Ci0gIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkge30KLSAgflBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5KCkgewotICAgIGZvciAoVGVzdENhc2VJbmZvQ29udGFp
bmVyOjppdGVyYXRvciBpdCA9IHRlc3RfY2FzZV9pbmZvc18uYmVnaW4oKTsKLSAgICAgICAgIGl0
ICE9IHRlc3RfY2FzZV9pbmZvc18uZW5kKCk7ICsraXQpIHsKLSAgICAgIGRlbGV0ZSAqaXQ7Cisg
IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSgpIHt9CisgIH5QYXJhbWV0ZXJpemVkVGVz
dFN1aXRlUmVnaXN0cnkoKSB7CisgICAgZm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0
X3N1aXRlX2luZm9zXykgeworICAgICAgZGVsZXRlIHRlc3Rfc3VpdGVfaW5mbzsKICAgICB9CiAg
IH0KIAogICAvLyBMb29rcyB1cCBvciBjcmVhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0dXJlIGNv
bnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQKLSAgLy8gdGVzdHMgYW5kIGluc3RhbnRpYXRpb25z
IG9mIGEgcGFydGljdWxhciB0ZXN0IGNhc2UuCi0gIHRlbXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4K
LSAgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4qIEdldFRlc3RDYXNlUGF0dGVy
bkhvbGRlcigKLSAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgQ29kZUxv
Y2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKLSAgICBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvPFRl
c3RDYXNlPiogdHlwZWRfdGVzdF9pbmZvID0gTlVMTDsKLSAgICBmb3IgKFRlc3RDYXNlSW5mb0Nv
bnRhaW5lcjo6aXRlcmF0b3IgaXQgPSB0ZXN0X2Nhc2VfaW5mb3NfLmJlZ2luKCk7Ci0gICAgICAg
ICBpdCAhPSB0ZXN0X2Nhc2VfaW5mb3NfLmVuZCgpOyArK2l0KSB7Ci0gICAgICBpZiAoKCppdCkt
PkdldFRlc3RDYXNlTmFtZSgpID09IHRlc3RfY2FzZV9uYW1lKSB7Ci0gICAgICAgIGlmICgoKml0
KS0+R2V0VGVzdENhc2VUeXBlSWQoKSAhPSBHZXRUeXBlSWQ8VGVzdENhc2U+KCkpIHsKKyAgLy8g
dGVzdHMgYW5kIGluc3RhbnRpYXRpb25zIG9mIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlLgorICB0
ZW1wbGF0ZSA8Y2xhc3MgVGVzdFN1aXRlPgorICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxU
ZXN0U3VpdGU+KiBHZXRUZXN0U3VpdGVQYXR0ZXJuSG9sZGVyKAorICAgICAgY29uc3QgY2hhciog
dGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIFBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbmZvPFRlc3RTdWl0ZT4qIHR5cGVkX3Rlc3RfaW5mbyA9IG51bGxw
dHI7CisgICAgZm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0ZXN0X3N1aXRlX2luZm9zXykg
eworICAgICAgaWYgKHRlc3Rfc3VpdGVfaW5mby0+R2V0VGVzdFN1aXRlTmFtZSgpID09IHRlc3Rf
c3VpdGVfbmFtZSkgeworICAgICAgICBpZiAodGVzdF9zdWl0ZV9pbmZvLT5HZXRUZXN0U3VpdGVU
eXBlSWQoKSAhPSBHZXRUeXBlSWQ8VGVzdFN1aXRlPigpKSB7CiAgICAgICAgICAgLy8gQ29tcGxh
aW4gYWJvdXQgaW5jb3JyZWN0IHVzYWdlIG9mIEdvb2dsZSBUZXN0IGZhY2lsaXRpZXMKICAgICAg
ICAgICAvLyBhbmQgdGVybWluYXRlIHRoZSBwcm9ncmFtIHNpbmNlIHdlIGNhbm5vdCBndWFyYW50
eSBjb3JyZWN0Ci0gICAgICAgICAgLy8gdGVzdCBjYXNlIHNldHVwIGFuZCB0ZWFyLWRvd24gaW4g
dGhpcyBjYXNlLgotICAgICAgICAgIFJlcG9ydEludmFsaWRUZXN0Q2FzZVR5cGUodGVzdF9jYXNl
X25hbWUsIGNvZGVfbG9jYXRpb24pOworICAgICAgICAgIC8vIHRlc3Qgc3VpdGUgc2V0dXAgYW5k
IHRlYXItZG93biBpbiB0aGlzIGNhc2UuCisgICAgICAgICAgUmVwb3J0SW52YWxpZFRlc3RTdWl0
ZVR5cGUodGVzdF9zdWl0ZV9uYW1lLCBjb2RlX2xvY2F0aW9uKTsKICAgICAgICAgICBwb3NpeDo6
QWJvcnQoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdl
IGFyZSBzdXJlIHRoYXQgdGhlIG9iamVjdCB3ZSBmb3VuZCBpcyBvZiB0aGUgc2FtZQogICAgICAg
ICAgIC8vIHR5cGUgd2UgYXJlIGxvb2tpbmcgZm9yLCBzbyB3ZSBkb3duY2FzdCBpdCB0byB0aGF0
IHR5cGUKICAgICAgICAgICAvLyB3aXRob3V0IGZ1cnRoZXIgY2hlY2tzLgogICAgICAgICAgIHR5
cGVkX3Rlc3RfaW5mbyA9IENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTwKLSAgICAgICAgICAg
ICAgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4gPigqaXQpOworICAgICAgICAg
ICAgICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0U3VpdGU+ID4odGVzdF9zdWl0ZV9p
bmZvKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgIH0KICAgICB9Ci0gICAgaWYg
KHR5cGVkX3Rlc3RfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICB0eXBlZF90ZXN0X2luZm8gPSBuZXcg
UGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4oCi0gICAgICAgICAgdGVzdF9jYXNl
X25hbWUsIGNvZGVfbG9jYXRpb24pOwotICAgICAgdGVzdF9jYXNlX2luZm9zXy5wdXNoX2JhY2so
dHlwZWRfdGVzdF9pbmZvKTsKKyAgICBpZiAodHlwZWRfdGVzdF9pbmZvID09IG51bGxwdHIpIHsK
KyAgICAgIHR5cGVkX3Rlc3RfaW5mbyA9IG5ldyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbzxU
ZXN0U3VpdGU+KAorICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgY29kZV9sb2NhdGlvbik7Cisg
ICAgICB0ZXN0X3N1aXRlX2luZm9zXy5wdXNoX2JhY2sodHlwZWRfdGVzdF9pbmZvKTsKICAgICB9
CiAgICAgcmV0dXJuIHR5cGVkX3Rlc3RfaW5mbzsKICAgfQogICB2b2lkIFJlZ2lzdGVyVGVzdHMo
KSB7Ci0gICAgZm9yIChUZXN0Q2FzZUluZm9Db250YWluZXI6Oml0ZXJhdG9yIGl0ID0gdGVzdF9j
YXNlX2luZm9zXy5iZWdpbigpOwotICAgICAgICAgaXQgIT0gdGVzdF9jYXNlX2luZm9zXy5lbmQo
KTsgKytpdCkgewotICAgICAgKCppdCktPlJlZ2lzdGVyVGVzdHMoKTsKKyAgICBmb3IgKGF1dG8m
IHRlc3Rfc3VpdGVfaW5mbyA6IHRlc3Rfc3VpdGVfaW5mb3NfKSB7CisgICAgICB0ZXN0X3N1aXRl
X2luZm8tPlJlZ2lzdGVyVGVzdHMoKTsKICAgICB9CiAgIH0KKy8vICBMZWdhY3kgQVBJIGlzIGRl
cHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZ
X1RFU1RfQ0FTRUFQSV8KKyAgdGVtcGxhdGUgPGNsYXNzIFRlc3RDYXNlPgorICBQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvPFRlc3RDYXNlPiogR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyKAorICAg
ICAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9u
KSB7CisgICAgcmV0dXJuIEdldFRlc3RTdWl0ZVBhdHRlcm5Ib2xkZXI8VGVzdENhc2U+KHRlc3Rf
Y2FzZV9uYW1lLCBjb2RlX2xvY2F0aW9uKTsKKyAgfQorCisjZW5kaWYgIC8vICBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogIHByaXZhdGU6Ci0gIHR5cGVkZWYgOjpzdGQ6OnZl
Y3RvcjxQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSo+IFRlc3RDYXNlSW5mb0NvbnRhaW5l
cjsKKyAgdXNpbmcgVGVzdFN1aXRlSW5mb0NvbnRhaW5lciA9IDo6c3RkOjp2ZWN0b3I8UGFyYW1l
dGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKj47CiAKLSAgVGVzdENhc2VJbmZvQ29udGFpbmVyIHRl
c3RfY2FzZV9pbmZvc187CisgIFRlc3RTdWl0ZUluZm9Db250YWluZXIgdGVzdF9zdWl0ZV9pbmZv
c187CiAKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhQYXJhbWV0ZXJpemVkVGVz
dENhc2VSZWdpc3RyeSk7CisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1l
dGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5KTsKK307CisKKy8vIEtlZXAgdHJhY2sgb2Ygd2hhdCB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBhcmUgZGVmaW5lZCBhbmQKKy8vIHdoZXJlIGFz
IHdlbGwgYXMgd2hpY2ggYXJlIGludGF0aWF0ZWQuIFRoaXMgYWxsb3dzIHN1c2VxdWVudGx5Cisv
LyBpZGVudGlmeWluZyBzdWl0cyB0aGF0IGFyZSBkZWZpbmVkIGJ1dCBuZXZlciB1c2VkLgorY2xh
c3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSB7CisgcHVibGljOgorICAvLyBB
ZGQgYSBzdWl0ZSBkZWZpbml0aW9uCisgIHZvaWQgUmVnaXN0ZXJUZXN0U3VpdGUoY29uc3QgY2hh
ciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlv
biBjb2RlX2xvY2F0aW9uKTsKKworICAvLyBBZGQgYW4gaW5zdGFudGlhdGlvbiBvZiBhIHN1aXQu
CisgIHZvaWQgUmVnaXN0ZXJJbnN0YW50aWF0aW9uKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFt
ZSk7CisKKyAgLy8gRm9yIGVhY2ggc3VpdCByZXBvcmVkIGFzIGRlZmluZWQgYnV0IG5vdCByZXBv
cnRlZCBhcyBpbnN0YW50aWF0aW9uLAorICAvLyBlbWl0IGEgdGVzdCB0aGF0IHJlcG9ydHMgdGhh
dCBmYWN0IChjb25maWd1cmFibHksIGFzIGFuIGVycm9yKS4KKyAgdm9pZCBDaGVja0Zvckluc3Rh
bnRpYXRpb25zKCk7CisKKyBwcml2YXRlOgorICBzdHJ1Y3QgVHlwZVBhcmFtZXRlcml6ZWRUZXN0
U3VpdGVJbmZvIHsKKyAgICBleHBsaWNpdCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8o
Q29kZUxvY2F0aW9uIGMpCisgICAgICAgIDogY29kZV9sb2NhdGlvbihjKSwgaW5zdGFudGlhdGVk
KGZhbHNlKSB7fQorCisgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb247CisgICAgYm9vbCBp
bnN0YW50aWF0ZWQ7CisgIH07CisKKyAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mbz4gc3VpdGVzXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbnRl
cm5hbAorCisvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBp
bXBsZW1lbnRlZCBpbgorLy8gaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJhbS10ZXN0LmguCit0ZW1w
bGF0ZSA8Y2xhc3MgQ29udGFpbmVyPgoraW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1l
IENvbnRhaW5lcjo6dmFsdWVfdHlwZT4gVmFsdWVzSW4oCisgICAgY29uc3QgQ29udGFpbmVyJiBj
b250YWluZXIpOworCituYW1lc3BhY2UgaW50ZXJuYWwgeworLy8gVXNlZCBpbiB0aGUgVmFsdWVz
KCkgZnVuY3Rpb24gdG8gcHJvdmlkZSBwb2x5bW9ycGhpYyBjYXBhYmlsaXRpZXMuCisKKyNpZmRl
ZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJs
ZSA6IDQxMDApCisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorY2xhc3MgVmFs
dWVBcnJheSB7CisgcHVibGljOgorICBleHBsaWNpdCBWYWx1ZUFycmF5KFRzLi4uIHYpIDogdl8o
RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIHN0ZDo6bW92ZSh2KS4uLikge30KKworICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7ICAv
LyBOT0xJTlQKKyAgICByZXR1cm4gVmFsdWVzSW4oTWFrZVZlY3RvcjxUPihNYWtlSW5kZXhTZXF1
ZW5jZTxzaXplb2YuLi4oVHMpPigpKSk7CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRlIDx0
eXBlbmFtZSBULCBzaXplX3QuLi4gST4KKyAgc3RkOjp2ZWN0b3I8VD4gTWFrZVZlY3RvcihJbmRl
eFNlcXVlbmNlPEkuLi4+KSBjb25zdCB7CisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPFQ+e3N0YXRp
Y19jYXN0PFQ+KHZfLnRlbXBsYXRlIEdldDxJPigpKS4uLn07CisgIH0KKworICBGbGF0VHVwbGU8
VHMuLi4+IHZfOworfTsKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQor
I2VuZGlmCisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgQ2FydGVzaWFuUHJvZHVj
dEdlbmVyYXRvcgorICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPDo6c3RkOjp0
dXBsZTxULi4uPj4geworIHB1YmxpYzoKKyAgdHlwZWRlZiA6OnN0ZDo6dHVwbGU8VC4uLj4gUGFy
YW1UeXBlOworCisgIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IoY29uc3Qgc3RkOjp0dXBsZTxQ
YXJhbUdlbmVyYXRvcjxUPi4uLj4mIGcpCisgICAgICA6IGdlbmVyYXRvcnNfKGcpIHt9CisgIH5D
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yKCkgb3ZlcnJpZGUge30KKworICBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIHJldHVy
biBuZXcgSXRlcmF0b3IodGhpcywgZ2VuZXJhdG9yc18sIGZhbHNlKTsKKyAgfQorICBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICBy
ZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGdlbmVyYXRvcnNfLCB0cnVlKTsKKyAgfQorCisgcHJp
dmF0ZToKKyAgdGVtcGxhdGUgPGNsYXNzIEk+CisgIGNsYXNzIEl0ZXJhdG9ySW1wbDsKKyAgdGVt
cGxhdGUgPHNpemVfdC4uLiBJPgorICBjbGFzcyBJdGVyYXRvckltcGw8SW5kZXhTZXF1ZW5jZTxJ
Li4uPj4KKyAgICAgIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7
CisgICBwdWJsaWM6CisgICAgSXRlcmF0b3JJbXBsKGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIGJhc2UsCisgICAgICAgICAgICAgY29uc3Qgc3RkOjp0dXBsZTxQYXJh
bUdlbmVyYXRvcjxUPi4uLj4mIGdlbmVyYXRvcnMsIGJvb2wgaXNfZW5kKQorICAgICAgICA6IGJh
c2VfKGJhc2UpLAorICAgICAgICAgIGJlZ2luXyhzdGQ6OmdldDxJPihnZW5lcmF0b3JzKS5iZWdp
bigpLi4uKSwKKyAgICAgICAgICBlbmRfKHN0ZDo6Z2V0PEk+KGdlbmVyYXRvcnMpLmVuZCgpLi4u
KSwKKyAgICAgICAgICBjdXJyZW50Xyhpc19lbmQgPyBlbmRfIDogYmVnaW5fKSB7CisgICAgICBD
b21wdXRlQ3VycmVudFZhbHVlKCk7CisgICAgfQorICAgIH5JdGVyYXRvckltcGwoKSBvdmVycmlk
ZSB7fQorCisgICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFz
ZUdlbmVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBiYXNlXzsKKyAgICB9
CisgICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2Ug
aXRlcmF0b3JzCisgICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9u
ZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KKyAgICB2b2lkIEFkdmFuY2UoKSBvdmVycmlkZSB7Cisg
ICAgICBhc3NlcnQoIUF0RW5kKCkpOworICAgICAgLy8gQWR2YW5jZSB0aGUgbGFzdCBpdGVyYXRv
ci4KKyAgICAgICsrc3RkOjpnZXQ8c2l6ZW9mLi4uKFQpIC0gMT4oY3VycmVudF8pOworICAgICAg
Ly8gaWYgdGhhdCByZWFjaGVzIGVuZCwgcHJvcGFnYXRlIHRoYXQgdXAuCisgICAgICBBZHZhbmNl
SWZFbmQ8c2l6ZW9mLi4uKFQpIC0gMT4oKTsKKyAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsK
KyAgICB9CisgICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBDbG9uZSgpIGNv
bnN0IG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBuZXcgSXRlcmF0b3JJbXBsKCp0aGlzKTsKKyAg
ICB9CisKKyAgICBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQorCisgICAgYm9vbCBFcXVhbHMoY29uc3QgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUgewor
ICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0
aGUgb3RoZXIKKyAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNh
biBkb3duY2FzdC4KKyAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIu
QmFzZUdlbmVyYXRvcigpKQorICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8g
Y29tcGFyZSBpdGVyYXRvcnMgIgorICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0
b3JzLiIgPDwgc3RkOjplbmRsOworICAgICAgY29uc3QgSXRlcmF0b3JJbXBsKiB0eXBlZF9vdGhl
ciA9CisgICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9y
SW1wbD4oJm90aGVyKTsKKworICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFs
IGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKKyAgICAgIC8vIHJlc3BlY3RpdmUgcmFu
Z2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAorICAgICAgLy8g
c28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCisgICAgICBpZiAoQXRFbmQoKSAmJiB0eXBl
ZF9vdGhlci0+QXRFbmQoKSkgcmV0dXJuIHRydWU7CisKKyAgICAgIGJvb2wgc2FtZSA9IHRydWU7
CisgICAgICBib29sIGR1bW15W10gPSB7CisgICAgICAgICAgKHNhbWUgPSBzYW1lICYmIHN0ZDo6
Z2V0PEk+KGN1cnJlbnRfKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpn
ZXQ8ST4odHlwZWRfb3RoZXItPmN1cnJlbnRfKSkuLi59OworICAgICAgKHZvaWQpZHVtbXk7Cisg
ICAgICByZXR1cm4gc2FtZTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgdGVtcGxhdGUgPHNp
emVfdCBUaGlzST4KKyAgICB2b2lkIEFkdmFuY2VJZkVuZCgpIHsKKyAgICAgIGlmIChzdGQ6Omdl
dDxUaGlzST4oY3VycmVudF8pICE9IHN0ZDo6Z2V0PFRoaXNJPihlbmRfKSkgcmV0dXJuOworCisg
ICAgICBib29sIGxhc3QgPSBUaGlzSSA9PSAwOworICAgICAgaWYgKGxhc3QpIHsKKyAgICAgICAg
Ly8gV2UgYXJlIGRvbmUuIE5vdGhpbmcgZWxzZSB0byBwcm9wYWdhdGUuCisgICAgICAgIHJldHVy
bjsKKyAgICAgIH0KKworICAgICAgY29uc3RleHByIHNpemVfdCBOZXh0SSA9IFRoaXNJIC0gKFRo
aXNJICE9IDApOworICAgICAgc3RkOjpnZXQ8VGhpc0k+KGN1cnJlbnRfKSA9IHN0ZDo6Z2V0PFRo
aXNJPihiZWdpbl8pOworICAgICAgKytzdGQ6OmdldDxOZXh0ST4oY3VycmVudF8pOworICAgICAg
QWR2YW5jZUlmRW5kPE5leHRJPigpOworICAgIH0KKworICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRW
YWx1ZSgpIHsKKyAgICAgIGlmICghQXRFbmQoKSkKKyAgICAgICAgY3VycmVudF92YWx1ZV8gPSBz
dGQ6Om1ha2Vfc2hhcmVkPFBhcmFtVHlwZT4oKnN0ZDo6Z2V0PEk+KGN1cnJlbnRfKS4uLik7Cisg
ICAgfQorICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7CisgICAgICBib29sIGF0X2VuZCA9IGZhbHNl
OworICAgICAgYm9vbCBkdW1teVtdID0geworICAgICAgICAgIChhdF9lbmQgPSBhdF9lbmQgfHwg
c3RkOjpnZXQ8ST4oY3VycmVudF8pID09IHN0ZDo6Z2V0PEk+KGVuZF8pKS4uLn07CisgICAgICAo
dm9pZClkdW1teTsKKyAgICAgIHJldHVybiBhdF9lbmQ7CisgICAgfQorCisgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87CisgICAgc3RkOjp0
dXBsZTx0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUPjo6aXRlcmF0b3IuLi4+IGJlZ2luXzsKKyAg
ICBzdGQ6OnR1cGxlPHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4uLj4gZW5k
XzsKKyAgICBzdGQ6OnR1cGxlPHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ+OjppdGVyYXRvci4u
Lj4gY3VycmVudF87CisgICAgc3RkOjpzaGFyZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1
ZV87CisgIH07CisKKyAgdXNpbmcgSXRlcmF0b3IgPSBJdGVyYXRvckltcGw8dHlwZW5hbWUgTWFr
ZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFQpPjo6dHlwZT47CisKKyAgc3RkOjp0dXBsZTxQYXJh
bUdlbmVyYXRvcjxUPi4uLj4gZ2VuZXJhdG9yc187Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MuLi4g
R2VuPgorY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlciB7CisgcHVibGljOgorICBDYXJ0ZXNp
YW5Qcm9kdWN0SG9sZGVyKGNvbnN0IEdlbiYuLi4gZykgOiBnZW5lcmF0b3JzXyhnLi4uKSB7fQor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KKyAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8Ojpz
dGQ6OnR1cGxlPFQuLi4+PigpIGNvbnN0IHsKKyAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8Ojpz
dGQ6OnR1cGxlPFQuLi4+PigKKyAgICAgICAgbmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I8
VC4uLj4oZ2VuZXJhdG9yc18pKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjp0dXBsZTxHZW4u
Li4+IGdlbmVyYXRvcnNfOwogfTsKIAogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9ICAvLyBu
YW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfUEFSQU1fVVRJTF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1h
cmNoLmgKaW5kZXggZjgzNzAwZTA2ZDk4YzM2ZjY0ODcyOTFjM2Y5MzE4MDdhZjM1M2Y3NC4uZmZl
NjMwMDNkMDdjOTVhZmNjMWY0N2NlMTQyOGQ0NWQ1NmQ4ZjZhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2gu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQtYXJjaC5oCkBAIC0zMiwyMCArMzIsMTkgQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUg
ZGVmaW5lcyB0aGUgR1RFU1RfT1NfKiBtYWNyby4KIC8vIEl0IGlzIHNlcGFyYXRlIGZyb20gZ3Rl
c3QtcG9ydC5oIHNvIHRoYXQgY3VzdG9tL2d0ZXN0LXBvcnQuaCBjYW4gaW5jbHVkZSBpdC4KIAot
I2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwot
I2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwor
I2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNI
X0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JU
X0FSQ0hfSF8KIAogLy8gRGV0ZXJtaW5lcyB0aGUgcGxhdGZvcm0gb24gd2hpY2ggR29vZ2xlIFRl
c3QgaXMgY29tcGlsZWQuCiAjaWZkZWYgX19DWUdXSU5fXwogIyBkZWZpbmUgR1RFU1RfT1NfQ1lH
V0lOIDEKLSNlbGlmIGRlZmluZWQgX19TWU1CSUFOMzJfXwotIyBkZWZpbmUgR1RFU1RfT1NfU1lN
QklBTiAxCisjIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18p
IHx8IGRlZmluZWQoX19NSU5HVzY0X18pCisjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5H
VyAxCisjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XUyAxCiAjZWxpZiBkZWZpbmVkIF9XSU4zMgog
IyBkZWZpbmUgR1RFU1RfT1NfV0lORE9XUyAxCiAjIGlmZGVmIF9XSU4zMl9XQ0UKICMgIGRlZmlu
ZSBHVEVTVF9PU19XSU5ET1dTX01PQklMRSAxCi0jIGVsaWYgZGVmaW5lZChfX01JTkdXX18pIHx8
IGRlZmluZWQoX19NSU5HVzMyX18pCi0jICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19NSU5HVyAx
CiAjIGVsaWYgZGVmaW5lZChXSU5BUElfRkFNSUxZKQogIyAgaW5jbHVkZSA8d2luYXBpZmFtaWx5
Lmg+CiAjICBpZiBXSU5BUElfRkFNSUxZX1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0RFU0tU
T1ApCkBAIC02NSwxNSArNjQsMjIgQEAKICMgZWxzZQogIyAgZGVmaW5lIEdURVNUX09TX1dJTkRP
V1NfREVTS1RPUCAxCiAjIGVuZGlmICAvLyBfV0lOMzJfV0NFCisjZWxpZiBkZWZpbmVkIF9fT1My
X18KKyMgZGVmaW5lIEdURVNUX09TX09TMiAxCiAjZWxpZiBkZWZpbmVkIF9fQVBQTEVfXwogIyBk
ZWZpbmUgR1RFU1RfT1NfTUFDIDEKKyMgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAj
IGlmIFRBUkdFVF9PU19JUEhPTkUKICMgIGRlZmluZSBHVEVTVF9PU19JT1MgMQogIyBlbmRpZgor
I2VsaWYgZGVmaW5lZCBfX0RyYWdvbkZseV9fCisjIGRlZmluZSBHVEVTVF9PU19EUkFHT05GTFkg
MQogI2VsaWYgZGVmaW5lZCBfX0ZyZWVCU0RfXwogIyBkZWZpbmUgR1RFU1RfT1NfRlJFRUJTRCAx
CiAjZWxpZiBkZWZpbmVkIF9fRnVjaHNpYV9fCiAjIGRlZmluZSBHVEVTVF9PU19GVUNIU0lBIDEK
KyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK
KyMgZGVmaW5lIEdURVNUX09TX0dOVV9LRlJFRUJTRCAxCiAjZWxpZiBkZWZpbmVkIF9fbGludXhf
XwogIyBkZWZpbmUgR1RFU1RfT1NfTElOVVggMQogIyBpZiBkZWZpbmVkIF9fQU5EUk9JRF9fCkBA
IC05NSw2ICsxMDEsMTIgQEAKICMgZGVmaW5lIEdURVNUX09TX09QRU5CU0QgMQogI2VsaWYgZGVm
aW5lZCBfX1FOWF9fCiAjIGRlZmluZSBHVEVTVF9PU19RTlggMQorI2VsaWYgZGVmaW5lZChfX0hB
SUtVX18pCisjZGVmaW5lIEdURVNUX09TX0hBSUtVIDEKKyNlbGlmIGRlZmluZWQgRVNQODI2Ngor
I2RlZmluZSBHVEVTVF9PU19FU1A4MjY2IDEKKyNlbGlmIGRlZmluZWQgRVNQMzIKKyNkZWZpbmUg
R1RFU1RfT1NfRVNQMzIgMQogI2VuZGlmICAvLyBfX0NZR1dJTl9fCiAKLSNlbmRpZiAgLy8gR1RF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KKyNlbmRpZiAgLy8g
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC1wb3J0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBvcnQuaAppbmRleCA3ODY0OTdkODU0Yzk3ZjFiNmFiOTM3MmEyNDFjMWZhMTU1
YTMwYTU0Li4xYzBkZWRkZDcwMGE1Y2VmZWY2YTJiZjUzZGE5YjNjZDA4NDk5NWJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXBvcnQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBvcnQuaApAQCAtNDAsOCArNDAsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAw
MSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9QT1JUX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
UE9SVF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
UE9SVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
UE9SVF9IXwogCiAvLyBFbnZpcm9ubWVudC1kZXNjcmliaW5nIG1hY3JvcwogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTcyLDEwICs3Miw2IEBACiAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlzL2lzbid0IGF2YWlsYWJsZS4KIC8vICAgR1RFU1RfSEFTX0VYQ0VQ
VElPTlMgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IGV4Y2VwdGlvbnMK
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIGVuYWJsZWQuCi0vLyAgIEdURVNU
X0hBU19HTE9CQUxfU1RSSU5HICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA6
OnN0cmluZwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9pc24ndCBhdmFpbGFi
bGUKLS8vICAgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBp
bmRpY2F0ZSB0aGF0IDo6d3N0cmluZwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
cy9pc24ndCBhdmFpbGFibGUKIC8vICAgR1RFU1RfSEFTX1BPU0lYX1JFICAgICAgIC0gRGVmaW5l
IGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0IFBPU0lYIHJlZ3VsYXIKIC8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMgYXJlL2FyZW4ndCBhdmFpbGFibGUuCiAvLyAg
IEdURVNUX0hBU19QVEhSRUFEICAgICAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUg
dGhhdCA8cHRocmVhZC5oPgpAQCAtODUsOCArODEsNiBAQAogLy8gICBHVEVTVF9IQVNfU1REX1dT
VFJJTkcgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQKIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RkOjp3c3RyaW5nIGRvZXMvZG9lc24ndCB3b3JrIChHb29n
bGUgVGVzdCBjYW4KIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB3aGVy
ZSBzdGQ6OndzdHJpbmcgaXMgdW5hdmFpbGFibGUpLgotLy8gICBHVEVTVF9IQVNfVFIxX1RVUExF
ICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRyMTo6dHVwbGUKLS8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXMvaXNuJ3QgYXZhaWxhYmxlLgogLy8gICBHVEVTVF9I
QVNfU0VIICAgICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIg
dGhlCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVyIHN1cHBvcnRzIE1p
Y3Jvc29mdCdzICJTdHJ1Y3R1cmVkCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4
Y2VwdGlvbiBIYW5kbGluZyIuCkBAIC05NCwxMiArODgsNiBAQAogLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCiAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIHN1cHBvcnRzIEkvTyBzdHJl
YW0gcmVkaXJlY3Rpb24gdXNpbmcKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVw
KCkgYW5kIGR1cDIoKS4KLS8vICAgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgIC0gRGVmaW5lIGl0
IHRvIDEvMCB0byBpbmRpY2F0ZSB3aGV0aGVyIEdvb2dsZQotLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUZXN0J3Mgb3duIHRyMSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZC4gIFVudXNlZCB3aGVuIHRoZSB1
c2VyIHNldHMKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RFU1RfSEFTX1RSMV9U
VVBMRSB0byAwLgotLy8gICBHVEVTVF9MQU5HX0NYWDExICAgICAgICAgLSBEZWZpbmUgaXQgdG8g
MS8wIHRvIGluZGljYXRlIHRoYXQgR29vZ2xlIFRlc3QKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXMgYnVpbGRpbmcgaW4gQysrMTEvQysrOTggbW9kZS4KIC8vICAgR1RFU1RfTElO
S0VEX0FTX1NIQVJFRF9MSUJSQVJZCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIERl
ZmluZSB0byAxIHdoZW4gY29tcGlsaW5nIHRlc3RzIHRoYXQgdXNlCiAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdvb2dsZSBUZXN0IGFzIGEgc2hhcmVkIGxpYnJhcnkgKGtub3duIGFz
CkBAIC0xMjUsOCArMTEzLDExIEBACiAvLwogLy8gICBHVEVTVF9PU19BSVggICAgICAtIElCTSBB
SVgKIC8vICAgR1RFU1RfT1NfQ1lHV0lOICAgLSBDeWd3aW4KKy8vICAgR1RFU1RfT1NfRFJBR09O
RkxZIC0gRHJhZ29uRmx5QlNECiAvLyAgIEdURVNUX09TX0ZSRUVCU0QgIC0gRnJlZUJTRAogLy8g
ICBHVEVTVF9PU19GVUNIU0lBICAtIEZ1Y2hzaWEKKy8vICAgR1RFU1RfT1NfR05VX0tGUkVFQlNE
IC0gR05VL2tGcmVlQlNECisvLyAgIEdURVNUX09TX0hBSUtVICAgIC0gSGFpa3UKIC8vICAgR1RF
U1RfT1NfSFBVWCAgICAgLSBIUC1VWAogLy8gICBHVEVTVF9PU19MSU5VWCAgICAtIExpbnV4CiAv
LyAgICAgR1RFU1RfT1NfTElOVVhfQU5EUk9JRCAtIEdvb2dsZSBBbmRyb2lkCkBAIC0xMzUsOSAr
MTI2LDkgQEAKIC8vICAgR1RFU1RfT1NfTkFDTCAgICAgLSBHb29nbGUgTmF0aXZlIENsaWVudCAo
TmFDbCkKIC8vICAgR1RFU1RfT1NfTkVUQlNEICAgLSBOZXRCU0QKIC8vICAgR1RFU1RfT1NfT1BF
TkJTRCAgLSBPcGVuQlNECisvLyAgIEdURVNUX09TX09TMiAgICAgIC0gT1MvMgogLy8gICBHVEVT
VF9PU19RTlggICAgICAtIFFOWAogLy8gICBHVEVTVF9PU19TT0xBUklTICAtIFN1biBTb2xhcmlz
Ci0vLyAgIEdURVNUX09TX1NZTUJJQU4gIC0gU3ltYmlhbgogLy8gICBHVEVTVF9PU19XSU5ET1dT
ICAtIFdpbmRvd3MgKERlc2t0b3AsIE1pbkdXLCBvciBNb2JpbGUpCiAvLyAgICAgR1RFU1RfT1Nf
V0lORE9XU19ERVNLVE9QICAtIFdpbmRvd3MgRGVza3RvcAogLy8gICAgIEdURVNUX09TX1dJTkRP
V1NfTUlOR1cgICAgLSBNaW5HVwpAQCAtMTQ2LDcgKzEzNyw3IEBACiAvLyAgICAgR1RFU1RfT1Nf
V0lORE9XU19SVCAgICAgICAtIFdpbmRvd3MgU3RvcmUgQXBwL1dpblJUCiAvLyAgIEdURVNUX09T
X1pPUyAgICAgIC0gei9PUwogLy8KLS8vIEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwgTGlu
dXgsIE1heCBPUyBYLCBhbmQgV2luZG93cyBoYXZlIHRoZQorLy8gQW1vbmcgdGhlIHBsYXRmb3Jt
cywgQ3lnd2luLCBMaW51eCwgTWFjIE9TIFgsIGFuZCBXaW5kb3dzIGhhdmUgdGhlCiAvLyBtb3N0
IHN0YWJsZSBzdXBwb3J0LiAgU2luY2UgY29yZSBtZW1iZXJzIG9mIHRoZSBHb29nbGUgVGVzdCBw
cm9qZWN0CiAvLyBkb24ndCBoYXZlIGFjY2VzcyB0byBvdGhlciBwbGF0Zm9ybXMsIHN1cHBvcnQg
Zm9yIHRoZW0gbWF5IGJlIGxlc3MKIC8vIHN0YWJsZS4gIElmIHlvdSBub3RpY2UgYW55IHByb2Js
ZW1zIG9uIHlvdXIgcGxhdGZvcm0sIHBsZWFzZSBub3RpZnkKQEAgLTE3Miw4ICsxNjMsNiBAQAog
Ly8gICBFWFBFQ1RfREVBVEgoRG9Tb21ldGhpbmdEZWFkbHkoKSk7CiAvLyAjZW5kaWYKIC8vCi0v
LyAgIEdURVNUX0hBU19DT01CSU5FICAgICAgLSB0aGUgQ29tYmluZSgpIGZ1bmN0aW9uIChmb3Ig
dmFsdWUtcGFyYW1ldGVyaXplZAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHMp
CiAvLyAgIEdURVNUX0hBU19ERUFUSF9URVNUICAgLSBkZWF0aCB0ZXN0cwogLy8gICBHVEVTVF9I
QVNfVFlQRURfVEVTVCAgIC0gdHlwZWQgdGVzdHMKIC8vICAgR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UCAtIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cwpAQCAtMTg0LDcgKzE3Myw2IEBACiAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgdGhlbXNlbHZlcy4KIC8vICAgR1RFU1RfVVNF
U19TSU1QTEVfUkUgICAtIG91ciBvd24gc2ltcGxlIHJlZ2V4IGlzIHVzZWQ7CiAvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgUkVcYihzKSBhcmUgbXV0dWFsbHkgZXhjbHVz
aXZlLgotLy8gICBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMIC0gYWNjZXB0cyB1bnR5cGVkIE5VTEwg
aW4gRVhQRUNUX0VRKCkuCiAKIC8vIE1pc2MgcHVibGljIG1hY3JvcwogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0yMDIsMzEgKzE5MCwzMiBAQAogLy8gICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9C
TE9DS0VSXyAtIGZvciBkaXNhYmxpbmcgYSBnY2Mgd2FybmluZy4KIC8vICAgR1RFU1RfQVRUUklC
VVRFX1VOVVNFRF8gIC0gZGVjbGFyZXMgdGhhdCBhIGNsYXNzJyBpbnN0YW5jZXMgb3IgYQogLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZSBkb24ndCBoYXZlIHRvIGJlIHVz
ZWQuCi0vLyAgIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8gICAtIGRpc2FibGVzIG9wZXJhdG9yPS4K
Ky8vICAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyAgIC0gZGlzYWJsZXMgY29weSBvcGVyYXRvcj0u
CiAvLyAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8gLSBkaXNhYmxlcyBjb3B5IGN0
b3IgYW5kIG9wZXJhdG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BU1NJR05fICAgLSBk
aXNhYmxlcyBtb3ZlIG9wZXJhdG9yPS4KKy8vICAgR1RFU1RfRElTQUxMT1dfTU9WRV9BTkRfQVNT
SUdOXyAtIGRpc2FibGVzIG1vdmUgY3RvciBhbmQgb3BlcmF0b3I9LgogLy8gICBHVEVTVF9NVVNU
X1VTRV9SRVNVTFRfICAgLSBkZWNsYXJlcyB0aGF0IGEgZnVuY3Rpb24ncyByZXN1bHQgbXVzdCBi
ZSB1c2VkLgogLy8gICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfIC0gc3RhcnQg
Y29kZSBzZWN0aW9uIHdoZXJlIE1TVkMgQzQxMjcgaXMKIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWQgKGNvbnN0YW50IGNvbmRpdGlvbmFsKS4KIC8v
ICAgR1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QT1BfICAtIGZpbmlzaCBjb2RlIHNlY3Rp
b24gd2hlcmUgTVNWQyBDNDEyNwogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXMgc3VwcHJlc3NlZC4KLS8vCi0vLyBDKysxMSBmZWF0dXJlIHdyYXBwZXJzOgotLy8K
LS8vICAgdGVzdGluZzo6aW50ZXJuYWw6OmZvcndhcmQgLSBwb3J0YWJpbGl0eSB3cmFwcGVyIGZv
ciBzdGQ6OmZvcndhcmQuCi0vLyAgIHRlc3Rpbmc6OmludGVybmFsOjptb3ZlICAtIHBvcnRhYmls
aXR5IHdyYXBwZXIgZm9yIHN0ZDo6bW92ZS4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX0FOWSAt
IGZvciBlbmFibGluZyBVbml2ZXJzYWxQcmludGVyPHN0ZDo6YW55PiBvcgorLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pdmVyc2FsUHJpbnRlcjxhYnNsOjphbnk+IHNwZWNpYWxpemF0
aW9ucy4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMIC0gZm9yIGVuYWJsaW5nIFVu
aXZlcnNhbFByaW50ZXI8c3RkOjpvcHRpb25hbD4KKy8vICAgb3IKKy8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pdmVyc2FsUHJpbnRlcjxhYnNsOjpvcHRpb25hbD4KKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbGl6YXRpb25zLgorLy8gICBHVEVT
VF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcgLSBmb3IgZW5hYmxpbmcgTWF0Y2hlcjxzdGQ6OnN0
cmluZ192aWV3PiBvcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRj
aGVyPGFic2w6OnN0cmluZ192aWV3PgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzcGVjaWFsaXphdGlvbnMuCisvLyAgIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIC0g
Zm9yIGVuYWJsaW5nIFVuaXZlcnNhbFByaW50ZXI8c3RkOjp2YXJpYW50PiBvcgorLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNhbFByaW50ZXI8YWJzbDo6dmFyaWFudD4K
Ky8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsaXphdGlvbnMuCiAvLwog
Ly8gU3luY2hyb25pemF0aW9uOgogLy8gICBNdXRleCwgTXV0ZXhMb2NrLCBUaHJlYWRMb2NhbCwg
R2V0VGhyZWFkQ291bnQoKQogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzeW5jaHJv
bml6YXRpb24gcHJpbWl0aXZlcy4KIC8vCi0vLyBUZW1wbGF0ZSBtZXRhIHByb2dyYW1taW5nOgot
Ly8gICBpc19wb2ludGVyICAgICAtIGFzIGluIFRSMTsgbmVlZGVkIG9uIFN5bWJpYW4gYW5kIElC
TSBYTCBDL0MrKyBvbmx5LgotLy8gICBJdGVyYXRvclRyYWl0cyAtIHBhcnRpYWwgaW1wbGVtZW50
YXRpb24gb2Ygc3RkOjppdGVyYXRvcl90cmFpdHMsIHdoaWNoCi0vLyAgICAgICAgICAgICAgICAg
ICAgaXMgbm90IGF2YWlsYWJsZSBpbiBsaWJDc3RkIHdoZW4gY29tcGlsZWQgd2l0aCBTdW4gQysr
LgotLy8KLS8vIFNtYXJ0IHBvaW50ZXJzOgotLy8gICBzY29wZWRfcHRyICAgICAtIGFzIGluIFRS
Mi4KLS8vCiAvLyBSZWd1bGFyIGV4cHJlc3Npb25zOgogLy8gICBSRSAgICAgICAgICAgICAtIGEg
c2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjbGFzcyB1c2luZyB0aGUgUE9TSVgKIC8vICAgICAg
ICAgICAgICAgICAgICBFeHRlbmRlZCBSZWd1bGFyIEV4cHJlc3Npb24gc3ludGF4IG9uIFVOSVgt
bGlrZSBwbGF0Zm9ybXMKQEAgLTI0OCw4ICsyMzcsNyBAQAogLy8KIC8vIEludGVnZXIgdHlwZXM6
CiAvLyAgIFR5cGVXaXRoU2l6ZSAgIC0gbWFwcyBhbiBpbnRlZ2VyIHRvIGEgaW50IHR5cGUuCi0v
LyAgIEludDMyLCBVSW50MzIsIEludDY0LCBVSW50NjQsIFRpbWVJbk1pbGxpcwotLy8gICAgICAg
ICAgICAgICAgICAtIGludGVnZXJzIG9mIGtub3duIHNpemVzLgorLy8gICBUaW1lSW5NaWxsaXMg
ICAtIGludGVnZXJzIG9mIGtub3duIHNpemVzLgogLy8gICBCaWdnZXN0SW50ICAgICAtIHRoZSBi
aWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUuCiAvLwogLy8gQ29tbWFuZC1saW5lIHV0aWxpdGll
czoKQEAgLTI2MCwxNCArMjQ4LDI1IEBACiAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSB1dGlsaXRp
ZXM6CiAvLyAgIEdldEVudigpICAgICAgICAgICAgIC0gZ2V0cyB0aGUgdmFsdWUgb2YgYW4gZW52
aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAgIEJvb2xGcm9tR1Rlc3RFbnYoKSAgIC0gcGFyc2VzIGEg
Ym9vbCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLS8vICAgSW50MzJGcm9tR1Rlc3RFbnYoKSAgLSBw
YXJzZXMgYW4gSW50MzIgZW52aXJvbm1lbnQgdmFyaWFibGUuCisvLyAgIEludDMyRnJvbUdUZXN0
RW52KCkgIC0gcGFyc2VzIGFuIGludDMyX3QgZW52aXJvbm1lbnQgdmFyaWFibGUuCiAvLyAgIFN0
cmluZ0Zyb21HVGVzdEVudigpIC0gcGFyc2VzIGEgc3RyaW5nIGVudmlyb25tZW50IHZhcmlhYmxl
LgorLy8KKy8vIERlcHJlY2F0aW9uIHdhcm5pbmdzOgorLy8gICBHVEVTVF9JTlRFUk5BTF9ERVBS
RUNBVEVEKG1lc3NhZ2UpIC0gYXR0cmlidXRlIG1hcmtpbmcgYSBmdW5jdGlvbiBhcworLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZDsgY2FsbGluZyBh
IG1hcmtlZCBmdW5jdGlvbgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkIGdlbmVyYXRlIGEgY29tcGlsZXIgd2FybmluZwogCiAjaW5jbHVkZSA8Y3R5cGUu
aD4gICAvLyBmb3IgaXNzcGFjZSwgZXRjCiAjaW5jbHVkZSA8c3RkZGVmLmg+ICAvLyBmb3IgcHRy
ZGlmZl90Ci0jaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRl
IDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGNlcnJubz4KKyNp
bmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KKwogI2lmbmRlZiBfV0lOMzJfV0NFCiAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgogIyBpbmNs
dWRlIDxzeXMvc3RhdC5oPgpAQCAtMjc4LDE3ICsyNzcsMTUgQEAKICMgaW5jbHVkZSA8VGFyZ2V0
Q29uZGl0aW9uYWxzLmg+CiAjZW5kaWYKIAotLy8gQnJpbmdzIGluIHRoZSBkZWZpbml0aW9uIG9m
IEhBU19HTE9CQUxfU1RSSU5HLiAgVGhpcyBtdXN0IGJlIGRvbmUKLS8vIEJFRk9SRSB3ZSB0ZXN0
IEhBU19HTE9CQUxfU1RSSU5HLgotI2luY2x1ZGUgPHN0cmluZz4gIC8vIE5PTElOVAotI2luY2x1
ZGUgPGFsZ29yaXRobT4gIC8vIE5PTElOVAogI2luY2x1ZGUgPGlvc3RyZWFtPiAgLy8gTk9MSU5U
Ci0jaW5jbHVkZSA8c3N0cmVhbT4gIC8vIE5PTElOVAotI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5j
bHVkZSA8bG9jYWxlPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+ICAvLyBO
T0xJTlQKKyNpbmNsdWRlIDx0dXBsZT4KICNpbmNsdWRlIDx2ZWN0b3I+ICAvLyBOT0xJTlQKIAot
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oIgogI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcG9ydC1hcmNoLmgiCiAKICNpZiAhZGVmaW5lZChHVEVTVF9ERVZfRU1BSUxfKQog
IyBkZWZpbmUgR1RFU1RfREVWX0VNQUlMXyAiZ29vZ2xldGVzdGZyYW1ld29ya0BAZ29vZ2xlZ3Jv
dXBzLmNvbSIKQEAgLTMxNSwxNCArMzEyLDE0IEBACiAvLyAgIEdURVNUX0RJU0FCTEVfTVNDX1dB
Uk5JTkdTX1BVU0hfKDQ4MDAgNDM4NSkKIC8vICAgLyogY29kZSB0aGF0IHRyaWdnZXJzIHdhcm5p
bmdzIEM0ODAwIGFuZCBDNDM4NSAqLwogLy8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19Q
T1BfKCkKLSNpZiBfTVNDX1ZFUiA+PSAxNDAwCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKICMgZGVm
aW5lIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKHdhcm5pbmdzKSBcCiAgICAgX19w
cmFnbWEod2FybmluZyhwdXNoKSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX19wcmFn
bWEod2FybmluZyhkaXNhYmxlOiB3YXJuaW5ncykpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01T
Q19XQVJOSU5HU19QT1BfKCkgICAgICAgICAgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcocG9wKSkK
ICNlbHNlCi0vLyBPbGRlciB2ZXJzaW9ucyBvZiBNU1ZDIGRvbid0IGhhdmUgX19wcmFnbWEuCisv
LyBOb3QgYWxsIGNvbXBpbGVycyBhcmUgTVNWQwogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0Nf
V0FSTklOR1NfUFVTSF8od2FybmluZ3MpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01TQ19XQVJO
SU5HU19QT1BfKCkKICNlbmRpZgpAQCAtMzQzLDgwICszNDAsNiBAQAogICAgIEdURVNUX0RJU0FC
TEVfTVNDX1dBUk5JTkdTX1BPUF8oKQogI2VuZGlmCiAKLSNpZm5kZWYgR1RFU1RfTEFOR19DWFgx
MQotLy8gZ2NjIGFuZCBjbGFuZyBkZWZpbmUgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gd2hl
bgotLy8gLXN0ZD17YyxnbnV9Kyt7MHgsMTF9IGlzIHBhc3NlZC4gIFRoZSBDKysxMSBzdGFuZGFy
ZCBzcGVjaWZpZXMgYQotLy8gdmFsdWUgZm9yIF9fY3BsdXNwbHVzLCBhbmQgcmVjZW50IHZlcnNp
b25zIG9mIGNsYW5nLCBnY2MsIGFuZAotLy8gcHJvYmFibHkgb3RoZXIgY29tcGlsZXJzIHNldCB0
aGF0IHRvbyBpbiBDKysxMSBtb2RlLgotIyBpZiBfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXyB8
fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IF9NU0NfVkVSID49IDE5MDAKLS8vIENvbXBpbGlu
ZyBpbiBhdCBsZWFzdCBDKysxMSBtb2RlLgotIyAgZGVmaW5lIEdURVNUX0xBTkdfQ1hYMTEgMQot
IyBlbHNlCi0jICBkZWZpbmUgR1RFU1RfTEFOR19DWFgxMSAwCi0jIGVuZGlmCi0jZW5kaWYKLQot
Ly8gRGlzdGluY3QgZnJvbSBDKysxMSBsYW5ndWFnZSBzdXBwb3J0LCBzb21lIGVudmlyb25tZW50
cyBkb24ndCBwcm92aWRlCi0vLyBwcm9wZXIgQysrMTEgbGlicmFyeSBzdXBwb3J0LiBOb3RhYmx5
LCBpdCdzIHBvc3NpYmxlIHRvIGJ1aWxkIGluCi0vLyBDKysxMSBtb2RlIHdoZW4gdGFyZ2V0aW5n
IE1hYyBPUyBYIDEwLjYsIHdoaWNoIGhhcyBhbiBvbGQgbGlic3RkYysrCi0vLyB3aXRoIG5vIEMr
KzExIHN1cHBvcnQuCi0vLwotLy8gbGlic3RkYysrIGhhcyBzdWZmaWNpZW50IEMrKzExIHN1cHBv
cnQgYXMgb2YgR0NDIDQuNi4wLCBfX0dMSUJDWFhfXwotLy8gMjAxMTAzMjUsIGJ1dCBtYWludGVu
YW5jZSByZWxlYXNlcyBpbiB0aGUgNC40IGFuZCA0LjUgc2VyaWVzIGZvbGxvd2VkCi0vLyB0aGlz
IGRhdGUsIHNvIGNoZWNrIGZvciB0aG9zZSB2ZXJzaW9ucyBieSB0aGVpciBkYXRlIHN0YW1wcy4K
LS8vIGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2FiaS5o
dG1sI2FiaS52ZXJzaW9uaW5nCi0jaWYgR1RFU1RfTEFOR19DWFgxMSAmJiBcCi0gICAgKCFkZWZp
bmVkKF9fR0xJQkNYWF9fKSB8fCAoIFwKLSAgICAgICAgX19HTElCQ1hYX18gPj0gMjAxMTAzMjV1
bCAmJiAgLyogR0NDID49IDQuNi4wICovIFwKLSAgICAgICAgLyogQmxhY2tsaXN0IG9mIHBhdGNo
IHJlbGVhc2VzIG9mIG9sZGVyIGJyYW5jaGVzOiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9
IDIwMTEwNDE2dWwgJiYgIC8qIEdDQyA0LjQuNiAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9
IDIwMTIwMzEzdWwgJiYgIC8qIEdDQyA0LjQuNyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9
IDIwMTEwNDI4dWwgJiYgIC8qIEdDQyA0LjUuMyAqLyBcCi0gICAgICAgIF9fR0xJQkNYWF9fICE9
IDIwMTIwNzAydWwpKSAgIC8qIEdDQyA0LjUuNCAqLwotIyBkZWZpbmUgR1RFU1RfU1RETElCX0NY
WDExIDEKLSNlbmRpZgotCi0vLyBPbmx5IHVzZSBDKysxMSBsaWJyYXJ5IGZlYXR1cmVzIGlmIHRo
ZSBsaWJyYXJ5IHByb3ZpZGVzIHRoZW0uCi0jaWYgR1RFU1RfU1RETElCX0NYWDExCi0jIGRlZmlu
ZSBHVEVTVF9IQVNfU1REX0JFR0lOX0FORF9FTkRfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERf
Rk9SV0FSRF9MSVNUXyAxCi0jIGlmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19GVUxMX1ZF
UiA+PSAxOTAwMjM4MjQpCi0vLyB3b3JrcyBvbmx5IHdpdGggVlMyMDE1VTIgYW5kIGJldHRlcgot
IyAgIGRlZmluZSBHVEVTVF9IQVNfU1REX0ZVTkNUSU9OXyAxCi0jIGVuZGlmCi0jIGRlZmluZSBH
VEVTVF9IQVNfU1REX0lOSVRJQUxJWkVSX0xJU1RfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERf
TU9WRV8gMQotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9VTklRVUVfUFRSXyAxCi0jIGRlZmluZSBH
VEVTVF9IQVNfU1REX1NIQVJFRF9QVFJfIDEKLSMgZGVmaW5lIEdURVNUX0hBU19VTk9SREVSRURf
TUFQXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8gMQotI2VuZGlmCi0KLS8v
IEMrKzExIHNwZWNpZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4KLS8vIFNv
bWUgcGxhdGZvcm1zIHN0aWxsIG1pZ2h0IG5vdCBoYXZlIGl0LCBob3dldmVyLgotI2lmIEdURVNU
X0xBTkdfQ1hYMTEKLSMgZGVmaW5lIEdURVNUX0hBU19TVERfVFVQTEVfIDEKLSMgaWYgZGVmaW5l
ZChfX2NsYW5nX18pCi0vLyBJbnNwaXJlZCBieQotLy8gaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9k
b2NzL0xhbmd1YWdlRXh0ZW5zaW9ucy5odG1sI2luY2x1ZGUtZmlsZS1jaGVja2luZy1tYWNyb3MK
LSMgIGlmIGRlZmluZWQoX19oYXNfaW5jbHVkZSkgJiYgIV9faGFzX2luY2x1ZGUoPHR1cGxlPikK
LSMgICB1bmRlZiBHVEVTVF9IQVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVk
KF9NU0NfVkVSKQotLy8gSW5zcGlyZWQgYnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJl
LmhwcAotIyAgaWYgZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPCA1MjAKLSMg
ICB1bmRlZiBHVEVTVF9IQVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZWxpZiBkZWZpbmVkKF9f
R0xJQkNYWF9fKQotLy8gSW5zcGlyZWQgYnkgYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAz
LmhwcCwKLS8vIGh0dHA6Ly9nY2MuZ251Lm9yZy9nY2MtNC4yL2NoYW5nZXMuaHRtbCBhbmQKLS8v
IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE0MDIyNzA0NDQyOS9nY2MuZ251Lm9yZy9v
bmxpbmVkb2NzL2xpYnN0ZGMrKy9tYW51YWwvYmswMXB0MDFjaDAxLmh0bWwjbWFudWFsLmludHJv
LnN0YXR1cy5zdGFuZGFyZC4yMDB4Ci0jICBpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09
IDQgJiYgX19HTlVDX01JTk9SX18gPCAyKQotIyAgIHVuZGVmIEdURVNUX0hBU19TVERfVFVQTEVf
Ci0jICBlbmRpZgotIyBlbmRpZgotI2VuZGlmCi0KIC8vIEJyaW5ncyBpbiBkZWZpbml0aW9ucyBm
b3IgZnVuY3Rpb25zIHVzZWQgaW4gdGhlIHRlc3Rpbmc6OmludGVybmFsOjpwb3NpeAogLy8gbmFt
ZXNwYWNlIChyZWFkLCB3cml0ZSwgY2xvc2UsIGNoZGlyLCBpc2F0dHksIHN0YXQpLiBXZSBkbyBu
b3QgY3VycmVudGx5CiAvLyB1c2UgdGhlbSBvbiBXaW5kb3dzIE1vYmlsZS4KQEAgLTQ0OSw3ICsz
NzIsOCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElD
QUxfU0VDVElPTjsKICMgIGluY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+ICAvLyBOT0xJTlQK
ICNlbmRpZgogCi0vLyBEZWZpbmVzIHRoaXMgdG8gdHJ1ZSBpZmYgR29vZ2xlIFRlc3QgY2FuIHVz
ZSBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zLgorLy8gRGVmaW5lcyB0aGlzIHRvIHRydWUgaWYg
YW5kIG9ubHkgaWYgR29vZ2xlIFRlc3QgY2FuIHVzZSBQT1NJWCByZWd1bGFyCisvLyBleHByZXNz
aW9ucy4KICNpZm5kZWYgR1RFU1RfSEFTX1BPU0lYX1JFCiAjIGlmIEdURVNUX09TX0xJTlVYX0FO
RFJPSUQKIC8vIE9uIEFuZHJvaWQsIDxyZWdleC5oPiBpcyBvbmx5IGF2YWlsYWJsZSBzdGFydGlu
ZyB3aXRoIEdpbmdlcmJyZWFkLgpAQCAtNDkwLDcgKzQxNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9S
VExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8gVGhlIHVzZXIg
ZGlkbid0IHRlbGwgdXMgd2hldGhlciBleGNlcHRpb25zIGFyZSBlbmFibGVkLCBzbyB3ZSBuZWVk
CiAvLyB0byBmaWd1cmUgaXQgb3V0LgogIyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVk
KF9DUFBVTldJTkQpCi0vLyBNU1ZDIGRlZmluZXMgX0NQUFVOV0lORCB0byAxIGlmZiBleGNlcHRp
b25zIGFyZSBlbmFibGVkLgorLy8gTVNWQyBkZWZpbmVzIF9DUFBVTldJTkQgdG8gMSBpZiBhbmQg
b25seSBpZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgogIyAgZGVmaW5lIEdURVNUX0hBU19FWENF
UFRJT05TIDEKICMgZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKIC8vIEMrK0J1aWxkZXIncyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgU1RMIHVzZXMgdGhlIF9IQVNfRVhDRVBUSU9OUwpAQCAtNTAx
LDE2ICs0MjUsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNU
X0NSSVRJQ0FMX1NFQ1RJT047CiAjICBlbmRpZiAgLy8gX0hBU19FWENFUFRJT05TCiAjICBkZWZp
bmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgX0hBU19FWENFUFRJT05TCiAjIGVsaWYgZGVmaW5lZChf
X2NsYW5nX18pCi0vLyBjbGFuZyBkZWZpbmVzIF9fRVhDRVBUSU9OUyBpZmYgZXhjZXB0aW9ucyBh
cmUgZW5hYmxlZCBiZWZvcmUgY2xhbmcgMjIwNzE0LAotLy8gYnV0IGlmZiBjbGVhbnVwcyBhcmUg
ZW5hYmxlZCBhZnRlciB0aGF0LiBJbiBPYmotQysrIGZpbGVzLCB0aGVyZSBjYW4gYmUKLS8vIGNs
ZWFudXBzIGZvciBPYmpDIGV4Y2VwdGlvbnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVu
IGlmIEMrKyBleGNlcHRpb25zCi0vLyBhcmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0
dXJlKGN4eF9leGNlcHRpb25zKSB3aGljaCBjaGVja3MgZm9yIEMrKwotLy8gZXhjZXB0aW9ucyBz
dGFydGluZyBhdCBjbGFuZyByMjA2MzUyLCBidXQgd2hpY2ggY2hlY2tlZCBmb3IgY2xlYW51cHMg
cHJpb3IgdG8KLS8vIHRoYXQuIFRvIHJlbGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2
YWlsYWJpbGl0eSB3aXRoIGNsYW5nLCBjaGVjayBmb3IKKy8vIGNsYW5nIGRlZmluZXMgX19FWENF
UFRJT05TIGlmIGFuZCBvbmx5IGlmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYmVmb3JlIGNsYW5n
CisvLyAyMjA3MTQsIGJ1dCBpZiBhbmQgb25seSBpZiBjbGVhbnVwcyBhcmUgZW5hYmxlZCBhZnRl
ciB0aGF0LiBJbiBPYmotQysrIGZpbGVzLAorLy8gdGhlcmUgY2FuIGJlIGNsZWFudXBzIGZvciBP
YmpDIGV4Y2VwdGlvbnMgd2hpY2ggYWxzbyBuZWVkIGNsZWFudXBzLCBldmVuIGlmCisvLyBDKysg
ZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQuIGNsYW5nIGhhcyBfX2hhc19mZWF0dXJlKGN4eF9leGNl
cHRpb25zKSB3aGljaAorLy8gY2hlY2tzIGZvciBDKysgZXhjZXB0aW9ucyBzdGFydGluZyBhdCBj
bGFuZyByMjA2MzUyLCBidXQgd2hpY2ggY2hlY2tlZCBmb3IKKy8vIGNsZWFudXBzIHByaW9yIHRv
IHRoYXQuIFRvIHJlbGlhYmx5IGNoZWNrIGZvciBDKysgZXhjZXB0aW9uIGF2YWlsYWJpbGl0eSB3
aXRoCisvLyBjbGFuZywgY2hlY2sgZm9yCiAvLyBfX0VYQ0VQVElPTlMgJiYgX19oYXNfZmVhdHVy
ZShjeHhfZXhjZXB0aW9ucykuCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgKF9fRVhD
RVBUSU9OUyAmJiBfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSkKICMgZWxpZiBkZWZpbmVk
KF9fR05VQ19fKSAmJiBfX0VYQ0VQVElPTlMKLS8vIGdjYyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0
byAxIGlmZiBleGNlcHRpb25zIGFyZSBlbmFibGVkLgorLy8gZ2NjIGRlZmluZXMgX19FWENFUFRJ
T05TIHRvIDEgaWYgYW5kIG9ubHkgaWYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KICMgIGRlZmlu
ZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX1NVTlBST19DQykKIC8v
IFN1biBQcm8gQ0Mgc3VwcG9ydHMgZXhjZXB0aW9ucy4gIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNv
bXBpbGUtdGltZSB3YXkgb2YKQEAgLTUxOCw3ICs0NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIC8vIHRoZXkgYXJlIGVu
YWJsZWQgdW5sZXNzIHRoZSB1c2VyIHRlbGxzIHVzIG90aGVyd2lzZS4KICMgIGRlZmluZSBHVEVT
VF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVmaW5lZChfX0lCTUNQUF9fKSAmJiBfX0VYQ0VQ
VElPTlMKLS8vIHhsQyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmZiBleGNlcHRpb25zIGFy
ZSBlbmFibGVkLgorLy8geGxDIGRlZmluZXMgX19FWENFUFRJT05TIHRvIDEgaWYgYW5kIG9ubHkg
aWYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9O
UyAxCiAjIGVsaWYgZGVmaW5lZChfX0hQX2FDQykKIC8vIEV4Y2VwdGlvbiBoYW5kbGluZyBpcyBp
biBlZmZlY3QgYnkgZGVmYXVsdCBpbiBIUCBhQ0MgY29tcGlsZXIuIEl0IGhhcyB0bwpAQCAtNTMx
LDQwICs0NTYsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNU
X0NSSVRJQ0FMX1NFQ1RJT047CiAjIGVuZGlmICAvLyBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZp
bmVkKF9fQk9STEFORENfXykKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAotI2lm
ICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5HKQotLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3Qg
dXNlIHRoaXMgbWFjcm8gYW55IGxvbmdlciwgd2Uga2VlcCBpdCBpbiBjYXNlCi0vLyBzb21lIGNs
aWVudHMgc3RpbGwgZGVwZW5kIG9uIGl0LgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9TVFJJTkcg
MQotI2VsaWYgIUdURVNUX0hBU19TVERfU1RSSU5HCi0vLyBUaGUgdXNlciB0b2xkIHVzIHRoYXQg
OjpzdGQ6OnN0cmluZyBpc24ndCBhdmFpbGFibGUuCi0jIGVycm9yICI6OnN0ZDo6c3RyaW5nIGlz
bid0IGF2YWlsYWJsZS4iCi0jZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0hBU19TVERfU1RSSU5H
KQotCi0jaWZuZGVmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0jIGRlZmluZSBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORyAwCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KICNp
Zm5kZWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3
aGV0aGVyIDo6c3RkOjp3c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAogLy8gdG8gZmln
dXJlIGl0IG91dC4KLS8vIEZJWE1FOiB1c2VzIGF1dG9jb25mIHRvIGRldGVjdCB3aGV0aGVyIDo6
c3RkOjp3c3RyaW5nCi0vLyAgIGlzIGF2YWlsYWJsZS4KLQogLy8gQ3lnd2luIDEuNyBhbmQgYmVs
b3cgZG9lc24ndCBzdXBwb3J0IDo6c3RkOjp3c3RyaW5nLgogLy8gU29sYXJpcycgbGliYysrIGRv
ZXNuJ3Qgc3VwcG9ydCBpdCBlaXRoZXIuICBBbmRyb2lkIGhhcwogLy8gbm8gc3VwcG9ydCBmb3Ig
aXQgYXQgbGVhc3QgYXMgcmVjZW50IGFzIEZyb3lvICgyLjIpLgotIyBkZWZpbmUgR1RFU1RfSEFT
X1NURF9XU1RSSU5HIFwKLSAgICAoIShHVEVTVF9PU19MSU5VWF9BTkRST0lEIHx8IEdURVNUX09T
X0NZR1dJTiB8fCBHVEVTVF9PU19TT0xBUklTKSkKKyNkZWZpbmUgR1RFU1RfSEFTX1NURF9XU1RS
SU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICghKEdURVNU
X09TX0xJTlVYX0FORFJPSUQgfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMg
fHwgXAorICAgICBHVEVTVF9PU19IQUlLVSB8fCBHVEVTVF9PU19FU1AzMiB8fCBHVEVTVF9PU19F
U1A4MjY2KSkKIAogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lmbmRlZiBH
VEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRo
ZXIgOjp3c3RyaW5nIGlzIGF2YWlsYWJsZSwgc28gd2UgbmVlZAotLy8gdG8gZmlndXJlIGl0IG91
dC4KLSMgZGVmaW5lIEdURVNUX0hBU19HTE9CQUxfV1NUUklORyBcCi0gICAgKEdURVNUX0hBU19T
VERfV1NUUklORyAmJiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORykKLSNlbmRpZiAgLy8gR1RFU1Rf
SEFTX0dMT0JBTF9XU1RSSU5HCi0KIC8vIERldGVybWluZXMgd2hldGhlciBSVFRJIGlzIGF2YWls
YWJsZS4KICNpZm5kZWYgR1RFU1RfSEFTX1JUVEkKIC8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVz
IHdoZXRoZXIgUlRUSSBpcyBlbmFibGVkLCBzbyB3ZSBuZWVkIHRvCkBAIC01NzIsMTQgKzQ3NSwx
NSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxf
U0VDVElPTjsKIAogIyBpZmRlZiBfTVNDX1ZFUgogCi0jICBpZmRlZiBfQ1BQUlRUSSAgLy8gTVNW
QyBkZWZpbmVzIHRoaXMgbWFjcm8gaWZmIFJUVEkgaXMgZW5hYmxlZC4KKyNpZmRlZiBfQ1BQUlRU
SSAgLy8gTVNWQyBkZWZpbmVzIHRoaXMgbWFjcm8gaWYgYW5kIG9ubHkgaWYgUlRUSSBpcyBlbmFi
bGVkLgogIyAgIGRlZmluZSBHVEVTVF9IQVNfUlRUSSAxCiAjICBlbHNlCiAjICAgZGVmaW5lIEdU
RVNUX0hBU19SVFRJIDAKICMgIGVuZGlmCiAKLS8vIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiA0LjMu
MiwgZ2NjIGRlZmluZXMgX19HWFhfUlRUSSBpZmYgUlRUSSBpcyBlbmFibGVkLgotIyBlbGlmIGRl
ZmluZWQoX19HTlVDX18pICYmIChHVEVTVF9HQ0NfVkVSXyA+PSA0MDMwMikKKy8vIFN0YXJ0aW5n
IHdpdGggdmVyc2lvbiA0LjMuMiwgZ2NjIGRlZmluZXMgX19HWFhfUlRUSSBpZiBhbmQgb25seSBp
ZiBSVFRJIGlzCisvLyBlbmFibGVkLgorIyBlbGlmIGRlZmluZWQoX19HTlVDX18pCiAKICMgIGlm
ZGVmIF9fR1hYX1JUVEkKIC8vIFdoZW4gYnVpbGRpbmcgYWdhaW5zdCBTVExwb3J0IHdpdGggdGhl
IEFuZHJvaWQgTkRLIGFuZCB3aXRoCkBAIC02MzUsOSArNTM5LDExIEBAIHR5cGVkZWYgc3RydWN0
IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogLy8KIC8vIFRv
IGRpc2FibGUgdGhyZWFkaW5nIHN1cHBvcnQgaW4gR29vZ2xlIFRlc3QsIGFkZCAtREdURVNUX0hB
U19QVEhSRUFEPTAKIC8vIHRvIHlvdXIgY29tcGlsZXIgZmxhZ3MuCi0jZGVmaW5lIEdURVNUX0hB
U19QVEhSRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAoR1RFU1RfT1NfTElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX0hQVVggfHwgR1RF
U1RfT1NfUU5YIHx8IFwKLSAgIEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkFDTCB8fCBH
VEVTVF9PU19ORVRCU0QgfHwgR1RFU1RfT1NfRlVDSFNJQSkKKyNkZWZpbmUgR1RFU1RfSEFTX1BU
SFJFQUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIChHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1NfSFBVWCB8
fCBHVEVTVF9PU19RTlggfHwgICAgICAgICAgXAorICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVT
VF9PU19OQUNMIHx8IEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAg
IEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1Nf
T1BFTkJTRCB8fCAgICAgICAgICBcCisgICBHVEVTVF9PU19IQUlLVSkKICNlbmRpZiAgLy8gR1RF
U1RfSEFTX1BUSFJFQUQKIAogI2lmIEdURVNUX0hBU19QVEhSRUFECkBAIC02NDksMTM2ICs1NTUs
NiBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxf
U0VDVElPTjsKICMgaW5jbHVkZSA8dGltZS5oPiAgLy8gTk9MSU5UCiAjZW5kaWYKIAotLy8gRGV0
ZXJtaW5lcyBpZiBoYXNoX21hcC9oYXNoX3NldCBhcmUgYXZhaWxhYmxlLgotLy8gT25seSB1c2Vk
IGZvciB0ZXN0aW5nIGFnYWluc3QgdGhvc2UgY29udGFpbmVycy4KLSNpZiAhZGVmaW5lZChHVEVT
VF9IQVNfSEFTSF9NQVBfKQotIyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAx
OTAwKQotIyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX01BUF8gMSAgLy8gSW5kaWNhdGVzIHRoYXQg
aGFzaF9tYXAgaXMgYXZhaWxhYmxlLgotIyAgZGVmaW5lIEdURVNUX0hBU19IQVNIX1NFVF8gMSAg
Ly8gSW5kaWNhdGVzIHRoYXQgaGFzaF9zZXQgaXMgYXZhaWxhYmxlLgotIyBlbmRpZiAgLy8gX01T
Q19WRVIKLSNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfSEFTX0hBU0hfTUFQXykKLQotLy8gRGV0
ZXJtaW5lcyB3aGV0aGVyIEdvb2dsZSBUZXN0IGNhbiB1c2UgdHIxL3R1cGxlLiAgWW91IGNhbiBk
ZWZpbmUKLS8vIHRoaXMgbWFjcm8gdG8gMCB0byBwcmV2ZW50IEdvb2dsZSBUZXN0IGZyb20gdXNp
bmcgdHVwbGUgKGFueQotLy8gZmVhdHVyZSBkZXBlbmRpbmcgb24gdHVwbGUgd2l0aCBiZSBkaXNh
YmxlZCBpbiB0aGlzIG1vZGUpLgotI2lmbmRlZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmIEdU
RVNUX09TX0xJTlVYX0FORFJPSUQgJiYgZGVmaW5lZChfU1RMUE9SVF9NQUpPUikKLS8vIFNUTHBv
cnQsIHByb3ZpZGVkIHdpdGggdGhlIEFuZHJvaWQgTkRLLCBoYXMgbmVpdGhlciA8dHIxL3R1cGxl
PiBvciA8dHVwbGU+LgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbGlmIGRl
ZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxOTEwKQotLy8gUHJldmVudCBgd2Fybmlu
ZyBDNDk5NjogJ3N0ZDo6dHIxJzogd2FybmluZyBTVEw0MDAyOgotLy8gVGhlIG5vbi1TdGFuZGFy
ZCBzdGQ6OnRyMSBuYW1lc3BhY2UgYW5kIFRSMS1vbmx5IG1hY2hpbmVyeQotLy8gYXJlIGRlcHJl
Y2F0ZWQgYW5kIHdpbGwgYmUgUkVNT1ZFRC5gCi0jICBkZWZpbmUgR1RFU1RfSEFTX1RSMV9UVVBM
RSAwCi0jIGVsaWYgR1RFU1RfTEFOR19DWFgxMSAmJiBkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikK
LS8vIGxpYmMrKyBkb2Vzbid0IHN1cHBvcnQgVFIxLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFf
VFVQTEUgMAotIyBlbHNlCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyBub3QgdG8gZG8gaXQs
IHNvIHdlIGFzc3VtZSBpdCdzIE9LLgotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMQot
IyBlbmRpZgotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLS8vIERldGVybWluZXMg
d2hldGhlciBHb29nbGUgVGVzdCdzIG93biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24KLS8vIHNo
b3VsZCBiZSB1c2VkLgotI2lmbmRlZiBHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotLy8gV2UgdXNl
IG91ciBvd24gdHVwbGUgaW1wbGVtZW50YXRpb24gb24gU3ltYmlhbi4KLSMgaWYgR1RFU1RfT1Nf
U1lNQklBTgotIyAgZGVmaW5lIEdURVNUX1VTRV9PV05fVFIxX1RVUExFIDEKLSMgZWxzZQotLy8g
VGhlIHVzZXIgZGlkbid0IHRlbGwgdXMsIHNvIHdlIG5lZWQgdG8gZmlndXJlIGl0IG91dC4KLQot
Ly8gV2UgdXNlIG91ciBvd24gVFIxIHR1cGxlIGlmIHdlIGFyZW4ndCBzdXJlIHRoZSB1c2VyIGhh
cyBhbgotLy8gaW1wbGVtZW50YXRpb24gb2YgaXQgYWxyZWFkeS4gIEF0IHRoaXMgdGltZSwgbGli
c3RkYysrIDQuMC4wKyBhbmQKLS8vIE1TVkMgMjAxMCBhcmUgdGhlIG9ubHkgbWFpbnN0cmVhbSBz
dGFuZGFyZCBsaWJyYXJpZXMgdGhhdCBjb21lCi0vLyB3aXRoIGEgVFIxIHR1cGxlIGltcGxlbWVu
dGF0aW9uLiAgTlZJRElBJ3MgQ1VEQSBOVkNDIGNvbXBpbGVyCi0vLyBwcmV0ZW5kcyB0byBiZSBH
Q0MgYnkgZGVmaW5pbmcgX19HTlVDX18gYW5kIGZyaWVuZHMsIGJ1dCBjYW5ub3QKLS8vIGNvbXBp
bGUgR0NDJ3MgdHVwbGUgaW1wbGVtZW50YXRpb24uICBNU1ZDIDIwMDggKDkuMCkgcHJvdmlkZXMg
VFIxCi0vLyB0dXBsZSBpbiBhIDMyMyBNQiBGZWF0dXJlIFBhY2sgZG93bmxvYWQsIHdoaWNoIHdl
IGNhbm5vdCBhc3N1bWUgdGhlCi0vLyB1c2VyIGhhcy4gIFFOWCdzIFFDQyBjb21waWxlciBpcyBh
IG1vZGlmaWVkIEdDQyBidXQgaXQgZG9lc24ndAotLy8gc3VwcG9ydCBUUjEgdHVwbGUuICBsaWJj
Kysgb25seSBwcm92aWRlcyBzdGQ6OnR1cGxlLCBpbiBDKysxMSBtb2RlLAotLy8gYW5kIGl0IGNh
biBiZSB1c2VkIHdpdGggc29tZSBjb21waWxlcnMgdGhhdCBkZWZpbmUgX19HTlVDX18uCi0jIGlm
IChkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX0NVREFDQ19fKSAmJiAoR1RFU1RfR0ND
X1ZFUl8gPj0gNDAwMDApIFwKLSAgICAgICYmICFHVEVTVF9PU19RTlggJiYgIWRlZmluZWQoX0xJ
QkNQUF9WRVJTSU9OKSkgXAotICAgICAgfHwgKF9NU0NfVkVSID49IDE2MDAgJiYgX01TQ19WRVIg
PCAxOTAwKQotIyAgZGVmaW5lIEdURVNUX0VOVl9IQVNfVFIxX1RVUExFXyAxCi0jIGVuZGlmCi0K
LS8vIEMrKzExIHNwZWNpZmllcyB0aGF0IDx0dXBsZT4gcHJvdmlkZXMgc3RkOjp0dXBsZS4gVXNl
IHRoYXQgaWYgZ3Rlc3QgaXMgdXNlZAotLy8gaW4gQysrMTEgbW9kZSBhbmQgbGlic3RkYysrIGlz
bid0IHZlcnkgb2xkIChiaW5hcmllcyB0YXJnZXRpbmcgT1MgWCAxMC42Ci0vLyBjYW4gYnVpbGQg
d2l0aCBjbGFuZyBidXQgbmVlZCB0byB1c2UgZ2NjNC4yJ3MgbGlic3RkYysrKS4KLSMgaWYgR1RF
U1RfTEFOR19DWFgxMSAmJiAoIWRlZmluZWQoX19HTElCQ1hYX18pIHx8IF9fR0xJQkNYWF9fID4g
MjAxMTAzMjUpCi0jICBkZWZpbmUgR1RFU1RfRU5WX0hBU19TVERfVFVQTEVfIDEKLSMgZW5kaWYK
LQotIyBpZiBHVEVTVF9FTlZfSEFTX1RSMV9UVVBMRV8gfHwgR1RFU1RfRU5WX0hBU19TVERfVFVQ
TEVfCi0jICBkZWZpbmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgMAotIyBlbHNlCi0jICBkZWZp
bmUgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUgMQotIyBlbmRpZgotIyBlbmRpZiAgLy8gR1RFU1Rf
T1NfU1lNQklBTgotI2VuZGlmICAvLyBHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotCi0vLyBUbyBh
dm9pZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiB3ZSBtYWtlIGl0IGd0ZXN0LXBvcnQuaCdzIHJl
c3BvbnNpYmlsaXR5Ci0vLyB0byAjaW5jbHVkZSB0aGUgaGVhZGVyIGltcGxlbWVudGluZyB0dXBs
ZS4KLSNpZiBHVEVTVF9IQVNfU1REX1RVUExFXwotIyBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUg
cHJhZ21hOiBleHBvcnQKLSMgZGVmaW5lIEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQKLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX1NURF9UVVBMRV8KLQotLy8gV2UgaW5jbHVkZSB0cjE6OnR1cGxl
IGV2ZW4gaWYgc3RkOjp0dXBsZSBpcyBhdmFpbGFibGUgdG8gZGVmaW5lIHByaW50ZXJzIGZvcgot
Ly8gdGhlbS4KLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0jIGlmbmRlZiBHVEVTVF9UVVBMRV9O
QU1FU1BBQ0VfCi0jICBkZWZpbmUgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXyA6OnN0ZDo6dHIxCi0j
IGVuZGlmICAvLyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfCi0KLSMgaWYgR1RFU1RfVVNFX09XTl9U
UjFfVFVQTEUKLSMgIGluY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiICAvLyBJ
V1lVIHByYWdtYTogZXhwb3J0ICAvLyBOT0xJTlQKLSMgZWxpZiBHVEVTVF9PU19TWU1CSUFOCi0K
LS8vIE9uIFN5bWJpYW4sIEJPT1NUX0hBU19UUjFfVFVQTEUgY2F1c2VzIEJvb3N0J3MgVFIxIHR1
cGxlIGxpYnJhcnkgdG8KLS8vIHVzZSBTVExwb3J0J3MgdHVwbGUgaW1wbGVtZW50YXRpb24sIHdo
aWNoIHVuZm9ydHVuYXRlbHkgZG9lc24ndAotLy8gd29yayBhcyB0aGUgY29weSBvZiBTVExwb3J0
IGRpc3RyaWJ1dGVkIHdpdGggU3ltYmlhbiBpcyBpbmNvbXBsZXRlLgotLy8gQnkgbWFraW5nIHN1
cmUgQk9PU1RfSEFTX1RSMV9UVVBMRSBpcyB1bmRlZmluZWQsIHdlIGZvcmNlIEJvb3N0IHRvCi0v
LyB1c2UgaXRzIG93biB0dXBsZSBpbXBsZW1lbnRhdGlvbi4KLSMgIGlmZGVmIEJPT1NUX0hBU19U
UjFfVFVQTEUKLSMgICB1bmRlZiBCT09TVF9IQVNfVFIxX1RVUExFCi0jICBlbmRpZiAgLy8gQk9P
U1RfSEFTX1RSMV9UVVBMRQotCi0vLyBUaGlzIHByZXZlbnRzIDxib29zdC90cjEvZGV0YWlsL2Nv
bmZpZy5ocHA+LCB3aGljaCBkZWZpbmVzCi0vLyBCT09TVF9IQVNfVFIxX1RVUExFLCBmcm9tIGJl
aW5nICNpbmNsdWRlZCBieSBCb29zdCdzIDx0dXBsZT4uCi0jICBkZWZpbmUgQk9PU1RfVFIxX0RF
VEFJTF9DT05GSUdfSFBQX0lOQ0xVREVECi0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJh
Z21hOiBleHBvcnQgIC8vIE5PTElOVAotCi0jIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKEdU
RVNUX0dDQ19WRVJfID49IDQwMDAwKQotLy8gR0NDIDQuMCsgaW1wbGVtZW50cyB0cjEvdHVwbGUg
aW4gdGhlIDx0cjEvdHVwbGU+IGhlYWRlci4gIFRoaXMgZG9lcwotLy8gbm90IGNvbmZvcm0gdG8g
dGhlIFRSMSBzcGVjLCB3aGljaCByZXF1aXJlcyB0aGUgaGVhZGVyIHRvIGJlIDx0dXBsZT4uCi0K
LSMgIGlmICFHVEVTVF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQwMzAyCi0vLyBVbnRp
bCB2ZXJzaW9uIDQuMy4yLCBnY2MgaGFzIGEgYnVnIHRoYXQgY2F1c2VzIDx0cjEvZnVuY3Rpb25h
bD4sCi0vLyB3aGljaCBpcyAjaW5jbHVkZWQgYnkgPHRyMS90dXBsZT4sIHRvIG5vdCBjb21waWxl
IHdoZW4gUlRUSSBpcwotLy8gZGlzYWJsZWQuICBfVFIxX0ZVTkNUSU9OQUwgaXMgdGhlIGhlYWRl
ciBndWFyZCBmb3IKLS8vIDx0cjEvZnVuY3Rpb25hbD4uICBIZW5jZSB0aGUgZm9sbG93aW5nICNk
ZWZpbmUgaXMgdXNlZCB0byBwcmV2ZW50Ci0vLyA8dHIxL2Z1bmN0aW9uYWw+IGZyb20gYmVpbmcg
aW5jbHVkZWQuCi0jICAgZGVmaW5lIF9UUjFfRlVOQ1RJT05BTCAxCi0jICAgaW5jbHVkZSA8dHIx
L3R1cGxlPgotIyAgIHVuZGVmIF9UUjFfRlVOQ1RJT05BTCAgLy8gQWxsb3dzIHRoZSB1c2VyIHRv
ICNpbmNsdWRlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyA8dHIxL2Z1bmN0aW9uYWw+IGlm
IHRoZXkgY2hvb3NlIHRvLgotIyAgZWxzZQotIyAgIGluY2x1ZGUgPHRyMS90dXBsZT4gIC8vIE5P
TElOVAotIyAgZW5kaWYgIC8vICFHVEVTVF9IQVNfUlRUSSAmJiBHVEVTVF9HQ0NfVkVSXyA8IDQw
MzAyCi0KLS8vIFZTIDIwMTAgbm93IGhhcyB0cjEgc3VwcG9ydC4KLSMgZWxpZiBfTVNDX1ZFUiA+
PSAxNjAwCi0jICBpbmNsdWRlIDx0dXBsZT4gIC8vIElXWVUgcHJhZ21hOiBleHBvcnQgIC8vIE5P
TElOVAotCi0jIGVsc2UgIC8vIEdURVNUX1VTRV9PV05fVFIxX1RVUExFCi0jICBpbmNsdWRlIDx0
cjEvdHVwbGU+ICAvLyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBOT0xJTlQKLSMgZW5kaWYgIC8v
IEdURVNUX1VTRV9PV05fVFIxX1RVUExFCi0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RSMV9UVVBM
RQotCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgY2xvbmUoMikgaXMgc3VwcG9ydGVkLgogLy8gVXN1
YWxseSBpdCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIG9uIExpbnV4LCBleGNsdWRpbmcKIC8vIExp
bnV4IG9uIHRoZSBJdGFuaXVtIGFyY2hpdGVjdHVyZS4KQEAgLTgxMiwyNCArNTg4LDIyIEBAIHR5
cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9O
OwogI2lmbmRlZiBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCiAvLyBCeSBkZWZhdWx0LCB3
ZSBhc3N1bWUgdGhhdCBzdHJlYW0gcmVkaXJlY3Rpb24gaXMgc3VwcG9ydGVkIG9uIGFsbAogLy8g
cGxhdGZvcm1zIGV4Y2VwdCBrbm93biBtb2JpbGUgb25lcy4KLSMgaWYgR1RFU1RfT1NfV0lORE9X
U19NT0JJTEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBcCi0gICAgR1RFU1RfT1NfV0lORE9XU19Q
SE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUg
fHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19SVCB8
fCBHVEVTVF9PU19FU1A4MjY2CiAjICBkZWZpbmUgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElP
TiAwCiAjIGVsc2UKICMgIGRlZmluZSBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OIDEKLSMg
ZW5kaWYgIC8vICFHVEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiAhR1RFU1RfT1NfU1lNQklBTgor
IyBlbmRpZiAgLy8gIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAjZW5kaWYgIC8vIEdURVNUX0hB
U19TVFJFQU1fUkVESVJFQ1RJT04KIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHN1cHBvcnQg
ZGVhdGggdGVzdHMuCi0vLyBHb29nbGUgVGVzdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3Rz
IGZvciBWQyA3LjEgYW5kIGVhcmxpZXIgYXMKLS8vIGFib3J0KCkgaW4gYSBWQyA3LjEgYXBwbGlj
YXRpb24gY29tcGlsZWQgYXMgR1VJIGluIGRlYnVnIGNvbmZpZwogLy8gcG9wcyB1cCBhIGRpYWxv
ZyB3aW5kb3cgdGhhdCBjYW5ub3QgYmUgc3VwcHJlc3NlZCBwcm9ncmFtbWF0aWNhbGx5LgotI2lm
IChHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfU09MQVJJUyB8
fCAgIFwKLSAgICAgKEdURVNUX09TX01BQyAmJiAhR1RFU1RfT1NfSU9TKSB8fCAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgIChHVEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgJiYgX01TQ19W
RVIgPj0gMTQwMCkgfHwgICAgICAgICAgXAotICAgICBHVEVTVF9PU19XSU5ET1dTX01JTkdXIHx8
IEdURVNUX09TX0FJWCB8fCBHVEVTVF9PU19IUFVYIHx8IFwKLSAgICAgR1RFU1RfT1NfT1BFTkJT
RCB8fCBHVEVTVF9PU19RTlggfHwgR1RFU1RfT1NfRlJFRUJTRCB8fCBcCi0gICAgIEdURVNUX09T
X05FVEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBKQorI2lmIChHVEVTVF9PU19MSU5VWCB8fCBHVEVT
VF9PU19DWUdXSU4gfHwgR1RFU1RfT1NfU09MQVJJUyB8fCAgICAgICAgICAgICBcCisgICAgIChH
VEVTVF9PU19NQUMgJiYgIUdURVNUX09TX0lPUykgfHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgKEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAmJiBfTVNDX1ZFUikg
fHwgR1RFU1RfT1NfV0lORE9XU19NSU5HVyB8fCAgXAorICAgICBHVEVTVF9PU19BSVggfHwgR1RF
U1RfT1NfSFBVWCB8fCBHVEVTVF9PU19PUEVOQlNEIHx8IEdURVNUX09TX1FOWCB8fCBcCisgICAg
IEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkVUQlNEIHx8IEdURVNUX09TX0ZVQ0hTSUEg
fHwgICAgICAgICAgIFwKKyAgICAgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNUX09TX0dOVV9L
RlJFRUJTRCB8fCBHVEVTVF9PU19IQUlLVSkKICMgZGVmaW5lIEdURVNUX0hBU19ERUFUSF9URVNU
IDEKICNlbmRpZgogCkBAIC04MzcsMjYgKzYxMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NS
SVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIAogLy8gVHlwZWQgdGVzdHMg
bmVlZCA8dHlwZWluZm8+IGFuZCB2YXJpYWRpYyBtYWNyb3MsIHdoaWNoIEdDQywgVkMrKyA4LjAs
CiAvLyBTdW4gUHJvIENDLCBJQk0gVmlzdWFsIEFnZSwgYW5kIEhQIGFDQyBzdXBwb3J0LgotI2lm
IGRlZmluZWQoX19HTlVDX18pIHx8IChfTVNDX1ZFUiA+PSAxNDAwKSB8fCBkZWZpbmVkKF9fU1VO
UFJPX0NDKSB8fCBcCisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfTVNDX1ZFUikg
fHwgZGVmaW5lZChfX1NVTlBST19DQykgfHwgXAogICAgIGRlZmluZWQoX19JQk1DUFBfXykgfHwg
ZGVmaW5lZChfX0hQX2FDQykKICMgZGVmaW5lIEdURVNUX0hBU19UWVBFRF9URVNUIDEKICMgZGVm
aW5lIEdURVNUX0hBU19UWVBFRF9URVNUX1AgMQogI2VuZGlmCiAKLS8vIERldGVybWluZXMgd2hl
dGhlciB0byBzdXBwb3J0IENvbWJpbmUoKS4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4KLS8v
IHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIGVuYWJsZWQuICBUaGUgaW1wbGVtZW50YXRp
b24gZG9lc24ndAotLy8gd29yayBvbiBTdW4gU3R1ZGlvIHNpbmNlIGl0IGRvZXNuJ3QgdW5kZXJz
dGFuZCB0ZW1wbGF0ZWQgY29udmVyc2lvbgotLy8gb3BlcmF0b3JzLgotI2lmIChHVEVTVF9IQVNf
VFIxX1RVUExFIHx8IEdURVNUX0hBU19TVERfVFVQTEVfKSAmJiAhZGVmaW5lZChfX1NVTlBST19D
QykKLSMgZGVmaW5lIEdURVNUX0hBU19DT01CSU5FIDEKLSNlbmRpZgotCiAvLyBEZXRlcm1pbmVz
IHdoZXRoZXIgdGhlIHN5c3RlbSBjb21waWxlciB1c2VzIFVURi0xNiBmb3IgZW5jb2Rpbmcgd2lk
ZSBzdHJpbmdzLgogI2RlZmluZSBHVEVTVF9XSURFX1NUUklOR19VU0VTX1VURjE2XyBcCi0gICAg
KEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NZTUJJQU4g
fHwgR1RFU1RfT1NfQUlYKQorICAoR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19DWUdXSU4g
fHwgR1RFU1RfT1NfQUlYIHx8IEdURVNUX09TX09TMikKIAogLy8gRGV0ZXJtaW5lcyB3aGV0aGVy
IHRlc3QgcmVzdWx0cyBjYW4gYmUgc3RyZWFtZWQgdG8gYSBzb2NrZXQuCi0jaWYgR1RFU1RfT1Nf
TElOVVgKKyNpZiBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RF
U1RfT1NfRFJBR09ORkxZIHx8IFwKKyAgICBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05F
VEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECiAjIGRlZmluZSBHVEVTVF9DQU5fU1RSRUFNX1JFU1VM
VFNfIDEKICNlbmRpZgogCkBAIC04OTgsMTIgKzY2NSw2IEBAIHR5cGVkZWYgc3RydWN0IF9SVExf
Q1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwogIyBkZWZpbmUgR1RFU1Rf
QVRUUklCVVRFX1VOVVNFRF8KICNlbmRpZgogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQotIyBkZWZp
bmUgR1RFU1RfQ1hYMTFfRVFVQUxTX0RFTEVURV8gPSBkZWxldGUKLSNlbHNlICAvLyBHVEVTVF9M
QU5HX0NYWDExCi0jIGRlZmluZSBHVEVTVF9DWFgxMV9FUVVBTFNfREVMRVRFXwotI2VuZGlmICAv
LyBHVEVTVF9MQU5HX0NYWDExCi0KIC8vIFVzZSB0aGlzIGFubm90YXRpb24gYmVmb3JlIGEgZnVu
Y3Rpb24gdGhhdCB0YWtlcyBhIHByaW50ZiBmb3JtYXQgc3RyaW5nLgogI2lmIChkZWZpbmVkKF9f
R05VQ19fKSB8fCBkZWZpbmVkKF9fY2xhbmdfXykpICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykK
ICMgaWYgZGVmaW5lZChfX01JTkdXX1BSSU5URl9GT1JNQVQpCkBAIC05MjIsMjcgKzY4MywzOCBA
QCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VD
VElPTjsKICNlbmRpZgogCiAKLS8vIEEgbWFjcm8gdG8gZGlzYWxsb3cgb3BlcmF0b3I9CisvLyBB
IG1hY3JvIHRvIGRpc2FsbG93IGNvcHkgb3BlcmF0b3I9CiAvLyBUaGlzIHNob3VsZCBiZSB1c2Vk
IGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9yIGEgY2xhc3MuCiAjZGVmaW5lIEdURVNU
X0RJU0FMTE9XX0FTU0lHTl8odHlwZSkgXAotICB2b2lkIG9wZXJhdG9yPSh0eXBlIGNvbnN0ICYp
IEdURVNUX0NYWDExX0VRVUFMU19ERUxFVEVfCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlIGNvbnN0
ICYpID0gZGVsZXRlCiAKIC8vIEEgbWFjcm8gdG8gZGlzYWxsb3cgY29weSBjb25zdHJ1Y3RvciBh
bmQgb3BlcmF0b3I9CiAvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNs
YXJhdGlvbnMgZm9yIGEgY2xhc3MuCiAjZGVmaW5lIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8odHlwZSkgXAotICB0eXBlKHR5cGUgY29uc3QgJikgR1RFU1RfQ1hYMTFfRVFVQUxTX0RF
TEVURV87IFwKLSAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyh0eXBlKQorICB0eXBlKHR5cGUgY29u
c3QmKSA9IGRlbGV0ZTsgICAgICAgICAgICAgICAgIFwKKyAgdHlwZSYgb3BlcmF0b3I9KHR5cGUg
Y29uc3QmKSA9IGRlbGV0ZQorCisvLyBBIG1hY3JvIHRvIGRpc2FsbG93IG1vdmUgb3BlcmF0b3I9
CisvLyBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBwcml2YXRlOiBkZWNsYXJhdGlvbnMgZm9y
IGEgY2xhc3MuCisjZGVmaW5lIEdURVNUX0RJU0FMTE9XX01PVkVfQVNTSUdOXyh0eXBlKSBcCisg
IHR5cGUmIG9wZXJhdG9yPSh0eXBlICYmKSBub2V4Y2VwdCA9IGRlbGV0ZQorCisvLyBBIG1hY3Jv
IHRvIGRpc2FsbG93IG1vdmUgY29uc3RydWN0b3IgYW5kIG9wZXJhdG9yPQorLy8gVGhpcyBzaG91
bGQgYmUgdXNlZCBpbiB0aGUgcHJpdmF0ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNzLgorI2Rl
ZmluZSBHVEVTVF9ESVNBTExPV19NT1ZFX0FORF9BU1NJR05fKHR5cGUpIFwKKyAgdHlwZSh0eXBl
JiYpIG5vZXhjZXB0ID0gZGVsZXRlOyAgICAgICAgICAgICBcCisgIHR5cGUmIG9wZXJhdG9yPSh0
eXBlJiYpIG5vZXhjZXB0ID0gZGVsZXRlCiAKIC8vIFRlbGwgdGhlIGNvbXBpbGVyIHRvIHdhcm4g
YWJvdXQgdW51c2VkIHJldHVybiB2YWx1ZXMgZm9yIGZ1bmN0aW9ucyBkZWNsYXJlZAogLy8gd2l0
aCB0aGlzIG1hY3JvLiAgVGhlIG1hY3JvIHNob3VsZCBiZSB1c2VkIG9uIGZ1bmN0aW9uIGRlY2xh
cmF0aW9ucwogLy8gZm9sbG93aW5nIHRoZSBhcmd1bWVudCBsaXN0OgogLy8KIC8vICAgU3Byb2Nr
ZXQqIEFsbG9jYXRlU3Byb2NrZXQoKSBHVEVTVF9NVVNUX1VTRV9SRVNVTFRfOwotI2lmIGRlZmlu
ZWQoX19HTlVDX18pICYmIChHVEVTVF9HQ0NfVkVSXyA+PSAzMDQwMCkgJiYgIWRlZmluZWQoQ09N
UElMRVJfSUNDKQorI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKENPTVBJTEVSX0lD
QykKICMgZGVmaW5lIEdURVNUX01VU1RfVVNFX1JFU1VMVF8gX19hdHRyaWJ1dGVfXyAoKHdhcm5f
dW51c2VkX3Jlc3VsdCkpCiAjZWxzZQogIyBkZWZpbmUgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXwot
I2VuZGlmICAvLyBfX0dOVUNfXyAmJiAoR1RFU1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFDT01Q
SUxFUl9JQ0MKKyNlbmRpZiAgLy8gX19HTlVDX18gJiYgIUNPTVBJTEVSX0lDQwogCiAvLyBNUyBD
KysgY29tcGlsZXIgZW1pdHMgd2FybmluZyB3aGVuIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBp
cyBjb21waWxlIHRpbWUKIC8vIGNvbnN0YW50LiBJbiBzb21lIGNvbnRleHRzIHRoaXMgd2Fybmlu
ZyBpcyBmYWxzZSBwb3NpdGl2ZSBhbmQgbmVlZHMgdG8gYmUKQEAgLTk3MSwxMyArNzQzLDE3IEBA
IHR5cGVkZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNU
SU9OOwogIyAgZGVmaW5lIEdURVNUX0hBU19TRUggMAogIyBlbmRpZgogCi0jZGVmaW5lIEdURVNU
X0lTX1RIUkVBRFNBRkUgXAotICAgIChHVEVTVF9IQVNfTVVURVhfQU5EX1RIUkVBRF9MT0NBTF8g
XAotICAgICB8fCAoR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19QSE9ORSAm
JiAhR1RFU1RfT1NfV0lORE9XU19SVCkgXAotICAgICB8fCBHVEVTVF9IQVNfUFRIUkVBRCkKLQog
I2VuZGlmICAvLyBHVEVTVF9IQVNfU0VICiAKKyNpZm5kZWYgR1RFU1RfSVNfVEhSRUFEU0FGRQor
CisjZGVmaW5lIEdURVNUX0lTX1RIUkVBRFNBRkUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAoR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9D
QUxfIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIChHVEVTVF9P
U19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX1BIT05FICYmICFHVEVTVF9PU19XSU5ET1dT
X1JUKSB8fCBcCisgICBHVEVTVF9IQVNfUFRIUkVBRCkKKworI2VuZGlmICAvLyBHVEVTVF9JU19U
SFJFQURTQUZFCisKIC8vIEdURVNUX0FQSV8gcXVhbGlmaWVzIGFsbCBzeW1ib2xzIHRoYXQgbXVz
dCBiZSBleHBvcnRlZC4gVGhlIGRlZmluaXRpb25zIGJlbG93CiAvLyBhcmUgZ3VhcmRlZCBieSAj
aWZuZGVmIHRvIGdpdmUgZW1iZWRkZXJzIGEgY2hhbmNlIHRvIGRlZmluZSBHVEVTVF9BUElfIGlu
CiAvLyBndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCkBAIC0xMDQ0LDYgKzgyMCwx
OCBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxf
U0VDVElPTjsKICMgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXwog
I2VuZGlmICAvLyBfX2NsYW5nX18KIAorLy8gQSBmdW5jdGlvbiBsZXZlbCBhdHRyaWJ1dGUgdG8g
ZGlzYWJsZSBIV0FkZHJlc3NTYW5pdGl6ZXIgaW5zdHJ1bWVudGF0aW9uLgorI2lmIGRlZmluZWQo
X19jbGFuZ19fKQorIyBpZiBfX2hhc19mZWF0dXJlKGh3YWRkcmVzc19zYW5pdGl6ZXIpCisjICBk
ZWZpbmUgR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18gXAorICAgICAgIF9f
YXR0cmlidXRlX18oKG5vX3Nhbml0aXplKCJod2FkZHJlc3MiKSkpCisjIGVsc2UKKyMgIGRlZmlu
ZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdBRERSRVNTXworIyBlbmRpZiAgLy8gX19o
YXNfZmVhdHVyZShod2FkZHJlc3Nfc2FuaXRpemVyKQorI2Vsc2UKKyMgZGVmaW5lIEdURVNUX0FU
VFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCisjZW5kaWYgIC8vIF9fY2xhbmdfXworCiAv
LyBBIGZ1bmN0aW9uIGxldmVsIGF0dHJpYnV0ZSB0byBkaXNhYmxlIFRocmVhZFNhbml0aXplciBp
bnN0cnVtZW50YXRpb24uCiAjaWYgZGVmaW5lZChfX2NsYW5nX18pCiAjIGlmIF9faGFzX2ZlYXR1
cmUodGhyZWFkX3Nhbml0aXplcikKQEAgLTEwNjAsMTYgKzg0OCwxMyBAQCBuYW1lc3BhY2UgdGVz
dGluZyB7CiAKIGNsYXNzIE1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKEdURVNUX1RVUExFX05BTUVT
UEFDRV8pCi0vLyBJbXBvcnQgdHVwbGUgYW5kIGZyaWVuZHMgaW50byB0aGUgOjp0ZXN0aW5nIG5h
bWVzcGFjZS4KLS8vIEl0IGlzIHBhcnQgb2Ygb3VyIGludGVyZmFjZSwgaGF2aW5nIHRoZW0gaW4g
Ojp0ZXN0aW5nIGFsbG93cyB1cyB0byBjaGFuZ2UKLS8vIHRoZWlyIHR5cGVzIGFzIG5lZWRlZC4K
LXVzaW5nIEdURVNUX1RVUExFX05BTUVTUEFDRV86OmdldDsKLXVzaW5nIEdURVNUX1RVUExFX05B
TUVTUEFDRV86Om1ha2VfdHVwbGU7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBs
ZTsKLXVzaW5nIEdURVNUX1RVUExFX05BTUVTUEFDRV86OnR1cGxlX3NpemU7Ci11c2luZyBHVEVT
VF9UVVBMRV9OQU1FU1BBQ0VfOjp0dXBsZV9lbGVtZW50OwotI2VuZGlmICAvLyBkZWZpbmVkKEdU
RVNUX1RVUExFX05BTUVTUEFDRV8pCisvLyBMZWdhY3kgaW1wb3J0cyBmb3IgYmFja3dhcmRzIGNv
bXBhdGliaWxpdHkuCisvLyBOZXcgY29kZSBzaG91bGQgdXNlIHN0ZDo6IG5hbWVzIGRpcmVjdGx5
LgordXNpbmcgc3RkOjpnZXQ7Cit1c2luZyBzdGQ6Om1ha2VfdHVwbGU7Cit1c2luZyBzdGQ6OnR1
cGxlOwordXNpbmcgc3RkOjp0dXBsZV9lbGVtZW50OwordXNpbmcgc3RkOjp0dXBsZV9zaXplOwog
CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCkBAIC0xMDc4LDE1OCArODYzLDIxIEBAIG5hbWVzcGFj
ZSBpbnRlcm5hbCB7CiAvLyBTZWNyZXQgb2JqZWN0LCB3aGljaCBpcyB3aGF0IHdlIHdhbnQuCiBj
bGFzcyBTZWNyZXQ7CiAKLS8vIFRoZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gbWFjcm8gY2FuIGJl
IHVzZWQgdG8gdmVyaWZ5IHRoYXQgYSBjb21waWxlIHRpbWUKLS8vIGV4cHJlc3Npb24gaXMgdHJ1
ZS4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCB1c2UgaXQgdG8gdmVyaWZ5IHRoZQotLy8gc2l6ZSBv
ZiBhIHN0YXRpYyBhcnJheToKKy8vIFRoZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gaXMgYSBsZWdh
Y3kgbWFjcm8gdXNlZCB0byB2ZXJpZnkgdGhhdCBhIGNvbXBpbGUKKy8vIHRpbWUgZXhwcmVzc2lv
biBpcyB0cnVlIChpbiBuZXcgY29kZSwgdXNlIHN0YXRpY19hc3NlcnQgaW5zdGVhZCkuIEZvcgor
Ly8gZXhhbXBsZSwgeW91IGNvdWxkIHVzZSBpdCB0byB2ZXJpZnkgdGhlIHNpemUgb2YgYSBzdGF0
aWMgYXJyYXk6CiAvLwogLy8gICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oR1RFU1RfQVJSQVlfU0la
RV8obmFtZXMpID09IE5VTV9OQU1FUywKIC8vICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVz
X2luY29ycmVjdF9zaXplKTsKIC8vCi0vLyBvciB0byBtYWtlIHN1cmUgYSBzdHJ1Y3QgaXMgc21h
bGxlciB0aGFuIGEgY2VydGFpbiBzaXplOgotLy8KLS8vICAgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KHNpemVvZihmb28pIDwgMTI4LCBmb29fdG9vX2xhcmdlKTsKLS8vCi0vLyBUaGUgc2Vjb25kIGFy
Z3VtZW50IHRvIHRoZSBtYWNybyBpcyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUuIElmCi0vLyB0
aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSwgbW9zdCBjb21waWxlcnMgd2lsbCBpc3N1ZSBhIHdhcm5p
bmcvZXJyb3IKLS8vIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLgotCi0jaWYg
R1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1z
Zykgc3RhdGljX2Fzc2VydChleHByLCAjbXNnKQotI2Vsc2UgIC8vICFHVEVTVF9MQU5HX0NYWDEx
Ci10ZW1wbGF0ZSA8Ym9vbD4KLSAgc3RydWN0IENvbXBpbGVBc3NlcnQgewotfTsKLQotIyBkZWZp
bmUgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGV4cHIsIG1zZykgXAotICB0eXBlZGVmIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkNvbXBpbGVBc3NlcnQ8KHN0YXRpY19jYXN0PGJvb2w+KGV4cHIpKT4gXAot
ICAgICAgbXNnW3N0YXRpY19jYXN0PGJvb2w+KGV4cHIpID8gMSA6IC0xXSBHVEVTVF9BVFRSSUJV
VEVfVU5VU0VEXwotI2VuZGlmICAvLyAhR1RFU1RfTEFOR19DWFgxMQotCi0vLyBJbXBsZW1lbnRh
dGlvbiBkZXRhaWxzIG9mIEdURVNUX0NPTVBJTEVfQVNTRVJUXzoKLS8vCi0vLyAoSW4gQysrMTEs
IHdlIHNpbXBseSB1c2Ugc3RhdGljX2Fzc2VydCBpbnN0ZWFkIG9mIHRoZSBmb2xsb3dpbmcpCi0v
LwotLy8gLSBHVEVTVF9DT01QSUxFX0FTU0VSVF8gd29ya3MgYnkgZGVmaW5pbmcgYW4gYXJyYXkg
dHlwZSB0aGF0IGhhcyAtMQotLy8gICBlbGVtZW50cyAoYW5kIHRodXMgaXMgaW52YWxpZCkgd2hl
biB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4KLS8vCi0vLyAtIFRoZSBzaW1wbGVyIGRlZmluaXRp
b24KLS8vCi0vLyAgICAjZGVmaW5lIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHR5
cGVkZWYgY2hhciBtc2dbKGV4cHIpID8gMSA6IC0xXQotLy8KLS8vICAgZG9lcyBub3Qgd29yaywg
YXMgZ2NjIHN1cHBvcnRzIHZhcmlhYmxlLWxlbmd0aCBhcnJheXMgd2hvc2Ugc2l6ZXMKLS8vICAg
YXJlIGRldGVybWluZWQgYXQgcnVuLXRpbWUgKHRoaXMgaXMgZ2NjJ3MgZXh0ZW5zaW9uIGFuZCBu
b3QgcGFydAotLy8gICBvZiB0aGUgQysrIHN0YW5kYXJkKS4gIEFzIGEgcmVzdWx0LCBnY2MgZmFp
bHMgdG8gcmVqZWN0IHRoZQotLy8gICBmb2xsb3dpbmcgY29kZSB3aXRoIHRoZSBzaW1wbGUgZGVm
aW5pdGlvbjoKLS8vCi0vLyAgICAgaW50IGZvbzsKLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VS
VF8oZm9vLCBtc2cpOyAvLyBub3Qgc3VwcG9zZWQgdG8gY29tcGlsZSBhcyBmb28gaXMKLS8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgYSBjb21waWxlLXRpbWUg
Y29uc3RhbnQuCi0vLwotLy8gLSBCeSB1c2luZyB0aGUgdHlwZSBDb21waWxlQXNzZXJ0PChib29s
KGV4cHIpKT4sIHdlIGVuc3VyZXMgdGhhdAotLy8gICBleHByIGlzIGEgY29tcGlsZS10aW1lIGNv
bnN0YW50LiAgKFRlbXBsYXRlIGFyZ3VtZW50cyBtdXN0IGJlCi0vLyAgIGRldGVybWluZWQgYXQg
Y29tcGlsZS10aW1lLikKLS8vCi0vLyAtIFRoZSBvdXR0ZXIgcGFyZW50aGVzZXMgaW4gQ29tcGls
ZUFzc2VydDwoYm9vbChleHByKSk+IGFyZSBuZWNlc3NhcnkKLS8vICAgdG8gd29yayBhcm91bmQg
YSBidWcgaW4gZ2NjIDMuNC40IGFuZCA0LjAuMS4gIElmIHdlIGhhZCB3cml0dGVuCi0vLwotLy8g
ICAgIENvbXBpbGVBc3NlcnQ8Ym9vbChleHByKT4KLS8vCi0vLyAgIGluc3RlYWQsIHRoZXNlIGNv
bXBpbGVycyB3aWxsIHJlZnVzZSB0byBjb21waWxlCi0vLwotLy8gICAgIEdURVNUX0NPTVBJTEVf
QVNTRVJUXyg1ID4gMCwgc29tZV9tZXNzYWdlKTsKLS8vCi0vLyAgIChUaGV5IHNlZW0gdG8gdGhp
bmsgdGhlICI+IiBpbiAiNSA+IDAiIG1hcmtzIHRoZSBlbmQgb2YgdGhlCi0vLyAgIHRlbXBsYXRl
IGFyZ3VtZW50IGxpc3QuKQotLy8KLS8vIC0gVGhlIGFycmF5IHNpemUgaXMgKGJvb2woZXhwcikg
PyAxIDogLTEpLCBpbnN0ZWFkIG9mIHNpbXBseQotLy8KLS8vICAgICAoKGV4cHIpID8gMSA6IC0x
KS4KLS8vCi0vLyAgIFRoaXMgaXMgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgYnVnIGluIE1TIFZD
IDcuMSwgd2hpY2gKLS8vICAgY2F1c2VzICgoMC4wKSA/IDEgOiAtMSkgdG8gaW5jb3JyZWN0bHkg
ZXZhbHVhdGUgdG8gMS4KLQotLy8gU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyIGlzIHVzZWQgYnkg
U3RhdGljQXNzZXJ0VHlwZUVxIGRlZmluZWQgaW4gZ3Rlc3QuaC4KLS8vCi0vLyBUaGlzIHRlbXBs
YXRlIGlzIGRlY2xhcmVkLCBidXQgaW50ZW50aW9uYWxseSB1bmRlZmluZWQuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBl
cjsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgU3RhdGljQXNzZXJ0VHlwZUVxSGVs
cGVyPFQsIFQ+IHsKLSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OwotfTsKLQotLy8gU2FtZSBhcyBz
dGQ6OmlzX3NhbWU8Pi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotc3RydWN0
IElzU2FtZSB7Ci0gIGVudW0geyB2YWx1ZSA9IGZhbHNlIH07Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdHJ1Y3QgSXNTYW1lPFQsIFQ+IHsKLSAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9Owot
fTsKLQotLy8gRXZhbHVhdGVzIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gJ2FycmF5Jy4K
LSNkZWZpbmUgR1RFU1RfQVJSQVlfU0laRV8oYXJyYXkpIChzaXplb2YoYXJyYXkpIC8gc2l6ZW9m
KGFycmF5WzBdKSkKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi10eXBlZGVmIDo6c3Ry
aW5nIHN0cmluZzsKLSNlbHNlCi10eXBlZGVmIDo6c3RkOjpzdHJpbmcgc3RyaW5nOwotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RS
SU5HCi10eXBlZGVmIDo6d3N0cmluZyB3c3RyaW5nOwotI2VsaWYgR1RFU1RfSEFTX1NURF9XU1RS
SU5HCi10eXBlZGVmIDo6c3RkOjp3c3RyaW5nIHdzdHJpbmc7Ci0jZW5kaWYgIC8vIEdURVNUX0hB
U19HTE9CQUxfV1NUUklORworLy8gVGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgbWFjcm8gbXVz
dCBiZSBhIHZhbGlkIEMrKyBpZGVudGlmaWVyLiBJZiB0aGUKKy8vIGV4cHJlc3Npb24gaXMgZmFs
c2UsIGNvbXBpbGVyIHdpbGwgaXNzdWUgYW4gZXJyb3IgY29udGFpbmluZyB0aGlzIGlkZW50aWZp
ZXIuCisjZGVmaW5lIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHN0YXRpY19hc3Nl
cnQoZXhwciwgI21zZykKIAogLy8gQSBoZWxwZXIgZm9yIHN1cHByZXNzaW5nIHdhcm5pbmdzIG9u
IGNvbnN0YW50IGNvbmRpdGlvbi4gIEl0IGp1c3QKIC8vIHJldHVybnMgJ2NvbmRpdGlvbicuCiBH
VEVTVF9BUElfIGJvb2wgSXNUcnVlKGJvb2wgY29uZGl0aW9uKTsKIAotLy8gRGVmaW5lcyBzY29w
ZWRfcHRyLgotCi0vLyBUaGlzIGltcGxlbWVudGF0aW9uIG9mIHNjb3BlZF9wdHIgaXMgUEFSVElB
TCAtIGl0IG9ubHkgY29udGFpbnMKLS8vIGVub3VnaCBzdHVmZiB0byBzYXRpc2Z5IEdvb2dsZSBU
ZXN0J3MgbmVlZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3Mgc2NvcGVkX3B0ciB7Ci0g
cHVibGljOgotICB0eXBlZGVmIFQgZWxlbWVudF90eXBlOwotCi0gIGV4cGxpY2l0IHNjb3BlZF9w
dHIoVCogcCA9IE5VTEwpIDogcHRyXyhwKSB7fQotICB+c2NvcGVkX3B0cigpIHsgcmVzZXQoKTsg
fQotCi0gIFQmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuICpwdHJfOyB9Ci0gIFQqIG9wZXJh
dG9yLT4oKSBjb25zdCB7IHJldHVybiBwdHJfOyB9Ci0gIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IHB0cl87IH0KLQotICBUKiByZWxlYXNlKCkgewotICAgIFQqIGNvbnN0IHB0ciA9IHB0cl87Ci0g
ICAgcHRyXyA9IE5VTEw7Ci0gICAgcmV0dXJuIHB0cjsKLSAgfQotCi0gIHZvaWQgcmVzZXQoVCog
cCA9IE5VTEwpIHsKLSAgICBpZiAocCAhPSBwdHJfKSB7Ci0gICAgICBpZiAoSXNUcnVlKHNpemVv
ZihUKSA+IDApKSB7ICAvLyBNYWtlcyBzdXJlIFQgaXMgYSBjb21wbGV0ZSB0eXBlLgotICAgICAg
ICBkZWxldGUgcHRyXzsKLSAgICAgIH0KLSAgICAgIHB0cl8gPSBwOwotICAgIH0KLSAgfQotCi0g
IGZyaWVuZCB2b2lkIHN3YXAoc2NvcGVkX3B0ciYgYSwgc2NvcGVkX3B0ciYgYikgewotICAgIHVz
aW5nIHN0ZDo6c3dhcDsKLSAgICBzd2FwKGEucHRyXywgYi5wdHJfKTsKLSAgfQotCi0gcHJpdmF0
ZToKLSAgVCogcHRyXzsKLQotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKHNjb3Bl
ZF9wdHIpOwotfTsKLQogLy8gRGVmaW5lcyBSRS4KIAogI2lmIEdURVNUX1VTRVNfUENSRQpAQCAt
MTI0NywyNSArODk1LDE2IEBAIGNsYXNzIEdURVNUX0FQSV8gUkUgewogICAvLyBDb25zdHJ1Y3Rz
IGFuIFJFIGZyb20gYSBzdHJpbmcuCiAgIFJFKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHJlZ2V4KSB7
IEluaXQocmVnZXguY19zdHIoKSk7IH0gIC8vIE5PTElOVAogCi0jIGlmIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi0KLSAgUkUoY29uc3QgOjpzdHJpbmcmIHJlZ2V4KSB7IEluaXQocmVnZXguY19z
dHIoKSk7IH0gIC8vIE5PTElOVAotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklO
RwotCiAgIFJFKGNvbnN0IGNoYXIqIHJlZ2V4KSB7IEluaXQocmVnZXgpOyB9ICAvLyBOT0xJTlQK
ICAgflJFKCk7CiAKICAgLy8gUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRo
ZSByZWdleC4KICAgY29uc3QgY2hhciogcGF0dGVybigpIGNvbnN0IHsgcmV0dXJuIHBhdHRlcm5f
OyB9CiAKLSAgLy8gRnVsbE1hdGNoKHN0ciwgcmUpIHJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBl
eHByZXNzaW9uIHJlIG1hdGNoZXMKLSAgLy8gdGhlIGVudGlyZSBzdHIuCi0gIC8vIFBhcnRpYWxN
YXRjaChzdHIsIHJlKSByZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZQorICAv
LyBGdWxsTWF0Y2goc3RyLCByZSkgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIg
ZXhwcmVzc2lvbiByZQorICAvLyBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgorICAvLyBQYXJ0aWFs
TWF0Y2goc3RyLCByZSkgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVz
c2lvbiByZQogICAvLyBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mIHN0ciAoaW5jbHVkaW5nIHN0ciBp
dHNlbGYpLgotICAvLwotICAvLyBGSVhNRTogbWFrZSBGdWxsTWF0Y2goKSBhbmQgUGFydGlhbE1h
dGNoKCkgd29yawotICAvLyB3aGVuIHN0ciBjb250YWlucyBOVUwgY2hhcmFjdGVycy4KICAgc3Rh
dGljIGJvb2wgRnVsbE1hdGNoKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJl
KSB7CiAgICAgcmV0dXJuIEZ1bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwogICB9CkBAIC0xMjcz
LDI2ICs5MTIsMTEgQEAgY2xhc3MgR1RFU1RfQVBJXyBSRSB7CiAgICAgcmV0dXJuIFBhcnRpYWxN
YXRjaChzdHIuY19zdHIoKSwgcmUpOwogICB9CiAKLSMgaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJ
TkcKLQotICBzdGF0aWMgYm9vbCBGdWxsTWF0Y2goY29uc3QgOjpzdHJpbmcmIHN0ciwgY29uc3Qg
UkUmIHJlKSB7Ci0gICAgcmV0dXJuIEZ1bGxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwotICB9Ci0g
IHN0YXRpYyBib29sIFBhcnRpYWxNYXRjaChjb25zdCA6OnN0cmluZyYgc3RyLCBjb25zdCBSRSYg
cmUpIHsKLSAgICByZXR1cm4gUGFydGlhbE1hdGNoKHN0ci5jX3N0cigpLCByZSk7Ci0gIH0KLQot
IyBlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQogICBzdGF0aWMgYm9vbCBGdWxs
TWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpOwogICBzdGF0aWMgYm9vbCBQYXJ0
aWFsTWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpOwogCiAgcHJpdmF0ZToKICAg
dm9pZCBJbml0KGNvbnN0IGNoYXIqIHJlZ2V4KTsKLQotICAvLyBXZSB1c2UgYSBjb25zdCBjaGFy
KiBpbnN0ZWFkIG9mIGFuIHN0ZDo6c3RyaW5nLCBhcyBHb29nbGUgVGVzdCB1c2VkIHRvIGJlCi0g
IC8vIHVzZWQgd2hlcmUgc3RkOjpzdHJpbmcgaXMgbm90IGF2YWlsYWJsZS4gIEZJWE1FOiBjaGFu
Z2UgdG8KLSAgLy8gc3RkOjpzdHJpbmcuCiAgIGNvbnN0IGNoYXIqIHBhdHRlcm5fOwogICBib29s
IGlzX3ZhbGlkXzsKIApAQCAtMTMwNiw4ICs5MzAsNiBAQCBjbGFzcyBHVEVTVF9BUElfIFJFIHsK
ICAgY29uc3QgY2hhciogZnVsbF9wYXR0ZXJuXzsgIC8vIEZvciBGdWxsTWF0Y2goKTsKIAogIyBl
bmRpZgotCi0gIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8oUkUpOwogfTsKIAogI2VuZGlmICAvLyBH
VEVTVF9VU0VTX1BDUkUKQEAgLTEzNjAsNyArOTgyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBHVGVz
dExvZyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElO
RV9fKS5HZXRTdHJlYW0oKQogCiBpbmxpbmUgdm9pZCBMb2dUb1N0ZGVycigpIHt9Ci1pbmxpbmUg
dm9pZCBGbHVzaEluZm9Mb2coKSB7IGZmbHVzaChOVUxMKTsgfQoraW5saW5lIHZvaWQgRmx1c2hJ
bmZvTG9nKCkgeyBmZmx1c2gobnVsbHB0cik7IH0KIAogI2VuZGlmICAvLyAhZGVmaW5lZChHVEVT
VF9MT0dfKQogCkBAIC0xMzk3LDE5ICsxMDE5LDYgQEAgaW5saW5lIHZvaWQgRmx1c2hJbmZvTG9n
KCkgeyBmZmx1c2goTlVMTCk7IH0KICAgICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAjcG9zaXhfY2Fs
bCA8PCAiZmFpbGVkIHdpdGggZXJyb3IgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgPDwgZ3Rl
c3RfZXJyb3IKIAotLy8gQWRkcyByZWZlcmVuY2UgdG8gYSB0eXBlIGlmIGl0IGlzIG5vdCBhIHJl
ZmVyZW5jZSB0eXBlLAotLy8gb3RoZXJ3aXNlIGxlYXZlcyBpdCB1bmNoYW5nZWQuICBUaGlzIGlz
IHRoZSBzYW1lIGFzCi0vLyB0cjE6OmFkZF9yZWZlcmVuY2UsIHdoaWNoIGlzIG5vdCB3aWRlbHkg
YXZhaWxhYmxlIHlldC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5j
ZSB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdHJ1Y3QgQWRkUmVmZXJlbmNlPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElO
VAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgYXJvdW5kIEFkZFJlZmVyZW5jZSB0aGF0IHdvcmtzIHdo
ZW4gdGhlIGFyZ3VtZW50IFQKLS8vIGRlcGVuZHMgb24gdGVtcGxhdGUgcGFyYW1ldGVycy4KLSNk
ZWZpbmUgR1RFU1RfQUREX1JFRkVSRU5DRV8oVCkgXAotICAgIHR5cGVuYW1lIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkFkZFJlZmVyZW5jZTxUPjo6dHlwZQotCiAvLyBUcmFuc2Zvcm1zICJUIiBpbnRv
ICJjb25zdCBUJiIgYWNjb3JkaW5nIHRvIHN0YW5kYXJkIHJlZmVyZW5jZSBjb2xsYXBzaW5nCiAv
LyBydWxlcyAodGhpcyBpcyBvbmx5IG5lZWRlZCBhcyBhIGJhY2twb3J0IGZvciBDKys5OCBjb21w
aWxlcnMgdGhhdCBkbyBub3QKIC8vIHN1cHBvcnQgcmVmZXJlbmNlIGNvbGxhcHNpbmcpLiBTcGVj
aWZpY2FsbHksIGl0IHRyYW5zZm9ybXM6CkBAIC0xNDMwLDI4ICsxMDM5LDYgQEAgc3RydWN0IENv
bnN0UmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsKICNkZWZpbmUgR1RFU1RfUkVGRVJFTkNF
X1RPX0NPTlNUXyhUKSBcCiAgIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvbnN0UmVm
PFQ+Ojp0eXBlCiAKLSNpZiBHVEVTVF9IQVNfU1REX01PVkVfCi11c2luZyBzdGQ6OmZvcndhcmQ7
Ci11c2luZyBzdGQ6Om1vdmU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJ2YWx1
ZVJlZiB7Ci0gIHR5cGVkZWYgVCYmIHR5cGU7Ci19OwotI2Vsc2UgIC8vIEdURVNUX0hBU19TVERf
TU9WRV8KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY29uc3QgVCYgbW92ZShjb25zdCBUJiB0KSB7
Ci0gIHJldHVybiB0OwotfQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1HVEVTVF9BRERfUkVGRVJF
TkNFXyhUKSBmb3J3YXJkKEdURVNUX0FERF9SRUZFUkVOQ0VfKFQpIHQpIHsgcmV0dXJuIHQ7IH0K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUnZhbHVlUmVmIHsKLSAgdHlwZWRlZiBj
b25zdCBUJiB0eXBlOwotfTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9NT1ZFXwotCiAvLyBJ
TlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KIC8v
IFVzZSBJbXBsaWNpdENhc3RfIGFzIGEgc2FmZSB2ZXJzaW9uIG9mIHN0YXRpY19jYXN0IGZvciB1
cGNhc3RpbmcgaW4KQEAgLTE1MDUsMTMgKzEwOTIsMTMgQEAgaW5saW5lIFRvIERvd25DYXN0XyhG
cm9tKiBmKSB7ICAvLyBzbyB3ZSBvbmx5IGFjY2VwdCBwb2ludGVycwogICBHVEVTVF9JTlRFTlRJ
T05BTF9DT05TVF9DT05EX1BVU0hfKCkKICAgaWYgKGZhbHNlKSB7CiAgIEdURVNUX0lOVEVOVElP
TkFMX0NPTlNUX0NPTkRfUE9QXygpCi0gICAgY29uc3QgVG8gdG8gPSBOVUxMOwotICAgIDo6dGVz
dGluZzo6aW50ZXJuYWw6OkltcGxpY2l0Q2FzdF88RnJvbSo+KHRvKTsKKyAgY29uc3QgVG8gdG8g
PSBudWxscHRyOworICA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfPEZyb20qPih0
byk7CiAgIH0KIAogI2lmIEdURVNUX0hBU19SVFRJCiAgIC8vIFJUVEk6IGRlYnVnIG1vZGUgb25s
eSEKLSAgR1RFU1RfQ0hFQ0tfKGYgPT0gTlVMTCB8fCBkeW5hbWljX2Nhc3Q8VG8+KGYpICE9IE5V
TEwpOworICBHVEVTVF9DSEVDS18oZiA9PSBudWxscHRyIHx8IGR5bmFtaWNfY2FzdDxUbz4oZikg
IT0gbnVsbHB0cik7CiAjZW5kaWYKICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvPihmKTsKIH0KQEAg
LTE1NjUsOSArMTE1Miw2IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRJbmplY3RhYmxl
QXJndnMoKTsKIC8vIERlcHJlY2F0ZWQ6IHBhc3MgdGhlIGFyZ3MgdmVjdG9yIGJ5IHZhbHVlIGlu
c3RlYWQuCiB2b2lkIFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4qIG5ld19hcmd2cyk7CiB2b2lkIFNldEluamVjdGFibGVBcmd2cyhjb25zdCBzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4mIG5ld19hcmd2cyk7Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJ
TkcKLXZvaWQgU2V0SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0ZDo6dmVjdG9yPCA6OnN0cmluZz4m
IG5ld19hcmd2cyk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCiB2b2lkIENs
ZWFySW5qZWN0YWJsZUFyZ3ZzKCk7CiAKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QK
QEAgLTE1ODMsNyArMTE2Nyw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNvbmRzKGludCBu
KSB7CiAgICAgMCwgICAgICAgICAgICAgICAgICAvLyAwIHNlY29uZHMuCiAgICAgbiAqIDEwMDBM
ICogMTAwMEwsICAvLyBBbmQgbiBtcy4KICAgfTsKLSAgbmFub3NsZWVwKCZ0aW1lLCBOVUxMKTsK
KyAgbmFub3NsZWVwKCZ0aW1lLCBudWxscHRyKTsKIH0KICMgZW5kaWYgIC8vIEdURVNUX0hBU19Q
VEhSRUFECiAKQEAgLTE2MDEsNyArMTE4NSw3IEBAIGlubGluZSB2b2lkIFNsZWVwTWlsbGlzZWNv
bmRzKGludCBuKSB7CiBjbGFzcyBOb3RpZmljYXRpb24gewogIHB1YmxpYzoKICAgTm90aWZpY2F0
aW9uKCkgOiBub3RpZmllZF8oZmFsc2UpIHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNT
XyhwdGhyZWFkX211dGV4X2luaXQoJm11dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BP
U0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgIH0K
ICAgfk5vdGlmaWNhdGlvbigpIHsKICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dGV4Xyk7
CkBAIC0xNjU5LDcgKzEyNDMsOCBAQCBjbGFzcyBHVEVTVF9BUElfIEF1dG9IYW5kbGUgewogICB2
b2lkIFJlc2V0KEhhbmRsZSBoYW5kbGUpOwogCiAgcHJpdmF0ZToKLSAgLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgaGFuZGxlIGlzIGEgdmFsaWQgaGFuZGxlIG9iamVjdCB0aGF0IGNhbiBiZSBjbG9z
ZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgaGFuZGxlIGlzIGEgdmFs
aWQgaGFuZGxlIG9iamVjdCB0aGF0IGNhbiBiZQorICAvLyBjbG9zZWQuCiAgIGJvb2wgSXNDbG9z
ZWFibGUoKSBjb25zdDsKIAogICBIYW5kbGUgaGFuZGxlXzsKQEAgLTE3MTAsNyArMTI5NSw3IEBA
IGNsYXNzIFRocmVhZFdpdGhQYXJhbUJhc2UgewogLy8gcGFzcyBpbnRvIHB0aHJlYWRfY3JlYXRl
KCkuCiBleHRlcm4gIkMiIGlubGluZSB2b2lkKiBUaHJlYWRGdW5jV2l0aENMaW5rYWdlKHZvaWQq
IHRocmVhZCkgewogICBzdGF0aWNfY2FzdDxUaHJlYWRXaXRoUGFyYW1CYXNlKj4odGhyZWFkKS0+
UnVuKCk7Ci0gIHJldHVybiBOVUxMOworICByZXR1cm4gbnVsbHB0cjsKIH0KIAogLy8gSGVscGVy
IGNsYXNzIGZvciB0ZXN0aW5nIEdvb2dsZSBUZXN0J3MgbXVsdGktdGhyZWFkaW5nIGNvbnN0cnVj
dHMuCkBAIC0xNzM5LDIwICsxMzI0LDE5IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbSA6IHB1Ymxp
YyBUaHJlYWRXaXRoUGFyYW1CYXNlIHsKICAgICAvLyBUaGUgdGhyZWFkIGNhbiBiZSBjcmVhdGVk
IG9ubHkgYWZ0ZXIgYWxsIGZpZWxkcyBleGNlcHQgdGhyZWFkXwogICAgIC8vIGhhdmUgYmVlbiBp
bml0aWFsaXplZC4KICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXygKLSAgICAgICAgcHRo
cmVhZF9jcmVhdGUoJnRocmVhZF8sIDAsICZUaHJlYWRGdW5jV2l0aENMaW5rYWdlLCBiYXNlKSk7
CisgICAgICAgIHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRfLCBudWxscHRyLCAmVGhyZWFkRnVuY1dp
dGhDTGlua2FnZSwgYmFzZSkpOwogICB9Ci0gIH5UaHJlYWRXaXRoUGFyYW0oKSB7IEpvaW4oKTsg
fQorICB+VGhyZWFkV2l0aFBhcmFtKCkgb3ZlcnJpZGUgeyBKb2luKCk7IH0KIAogICB2b2lkIEpv
aW4oKSB7CiAgICAgaWYgKCFmaW5pc2hlZF8pIHsKLSAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NV
Q0NFU1NfKHB0aHJlYWRfam9pbih0aHJlYWRfLCAwKSk7CisgICAgICBHVEVTVF9DSEVDS19QT1NJ
WF9TVUNDRVNTXyhwdGhyZWFkX2pvaW4odGhyZWFkXywgbnVsbHB0cikpOwogICAgICAgZmluaXNo
ZWRfID0gdHJ1ZTsKICAgICB9CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgUnVuKCkgewotICAgIGlm
ICh0aHJlYWRfY2FuX3N0YXJ0XyAhPSBOVUxMKQotICAgICAgdGhyZWFkX2Nhbl9zdGFydF8tPldh
aXRGb3JOb3RpZmljYXRpb24oKTsKKyAgdm9pZCBSdW4oKSBvdmVycmlkZSB7CisgICAgaWYgKHRo
cmVhZF9jYW5fc3RhcnRfICE9IG51bGxwdHIpIHRocmVhZF9jYW5fc3RhcnRfLT5XYWl0Rm9yTm90
aWZpY2F0aW9uKCk7CiAgICAgZnVuY18ocGFyYW1fKTsKICAgfQogCkBAIC0xNzYyLDcgKzEzNDYs
OCBAQCBjbGFzcyBUaHJlYWRXaXRoUGFyYW0gOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7
CiAgIC8vIFdoZW4gbm9uLU5VTEwsIHVzZWQgdG8gYmxvY2sgZXhlY3V0aW9uIHVudGlsIHRoZSBj
b250cm9sbGVyIHRocmVhZAogICAvLyBub3RpZmllcy4KICAgTm90aWZpY2F0aW9uKiBjb25zdCB0
aHJlYWRfY2FuX3N0YXJ0XzsKLSAgYm9vbCBmaW5pc2hlZF87ICAvLyB0cnVlIGlmZiB3ZSBrbm93
IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlvbiBoYXMgZmluaXNoZWQuCisgIGJvb2wgZmluaXNoZWRf
OyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB3ZSBrbm93IHRoYXQgdGhlIHRocmVhZCBmdW5jdGlv
biBoYXMKKyAgICAgICAgICAgICAgICAgICAvLyBmaW5pc2hlZC4KICAgcHRocmVhZF90IHRocmVh
ZF87ICAvLyBUaGUgbmF0aXZlIHRocmVhZCBvYmplY3QuCiAKICAgR1RFU1RfRElTQUxMT1dfQ09Q
WV9BTkRfQVNTSUdOXyhUaHJlYWRXaXRoUGFyYW0pOwpAQCAtMjAyNyw3ICsxNjEyLDcgQEAgY2xh
c3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNlIHsKICAgY2xhc3MgRGVmYXVs
dFZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3RvcnkgewogICAgcHVi
bGljOgogICAgIERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkoKSB7fQotICAgIHZpcnR1YWwgVmFs
dWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIoKSBjb25zdCB7IHJldHVybiBuZXcgVmFsdWVIb2xkZXIo
KTsgfQorICAgIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7IH0KIAogICAgcHJpdmF0ZToKICAgICBHVEVTVF9ESVNB
TExPV19DT1BZX0FORF9BU1NJR05fKERlZmF1bHRWYWx1ZUhvbGRlckZhY3RvcnkpOwpAQCAtMjAz
Niw3ICsxNjIxLDcgQEAgY2xhc3MgVGhyZWFkTG9jYWwgOiBwdWJsaWMgVGhyZWFkTG9jYWxCYXNl
IHsKICAgY2xhc3MgSW5zdGFuY2VWYWx1ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xk
ZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBleHBsaWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVy
RmFjdG9yeShjb25zdCBUJiB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUpIHt9Ci0gICAgdmlydHVhbCBW
YWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IHsKKyAgICBWYWx1ZUhvbGRlciogTWFr
ZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsKICAgICAgIHJldHVybiBuZXcgVmFsdWVIb2xk
ZXIodmFsdWVfKTsKICAgICB9CiAKQEAgLTIwNDYsNyArMTYzMSw3IEBAIGNsYXNzIFRocmVhZExv
Y2FsIDogcHVibGljIFRocmVhZExvY2FsQmFzZSB7CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9B
TkRfQVNTSUdOXyhJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSk7CiAgIH07CiAKLSAgc2NvcGVk
X3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+IGRlZmF1bHRfZmFjdG9yeV87CisgIHN0ZDo6dW5pcXVl
X3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+IGRlZmF1bHRfZmFjdG9yeV87CiAKICAgR1RFU1RfRElT
QUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRMb2NhbCk7CiB9OwpAQCAtMjExNSw3ICsxNzAw
LDcgQEAgY2xhc3MgTXV0ZXhCYXNlIHsKIGNsYXNzIE11dGV4IDogcHVibGljIE11dGV4QmFzZSB7
CiAgcHVibGljOgogICBNdXRleCgpIHsKLSAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhw
dGhyZWFkX211dGV4X2luaXQoJm11dGV4XywgTlVMTCkpOworICAgIEdURVNUX0NIRUNLX1BPU0lY
X1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCBudWxscHRyKSk7CiAgICAgaGFz
X293bmVyXyA9IGZhbHNlOwogICB9CiAgIH5NdXRleCgpIHsKQEAgLTIyMTMsNyArMTc5OCw3IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBUKiBHZXRPckNyZWF0ZVZhbHVlKCkg
Y29uc3QgewogICAgIFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlKiBjb25zdCBob2xkZXIgPQog
ICAgICAgICBzdGF0aWNfY2FzdDxUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSo+KHB0aHJlYWRf
Z2V0c3BlY2lmaWMoa2V5XykpOwotICAgIGlmIChob2xkZXIgIT0gTlVMTCkgeworICAgIGlmICho
b2xkZXIgIT0gbnVsbHB0cikgewogICAgICAgcmV0dXJuIENoZWNrZWREb3duY2FzdFRvQWN0dWFs
VHlwZTxWYWx1ZUhvbGRlcj4oaG9sZGVyKS0+cG9pbnRlcigpOwogICAgIH0KIApAQCAtMjIzNiw3
ICsxODIxLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2NhbCB7CiAgIGNsYXNzIERlZmF1
bHRWYWx1ZUhvbGRlckZhY3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1
YmxpYzoKICAgICBEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KCkge30KLSAgICB2aXJ0dWFsIFZh
bHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkgY29uc3QgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVy
KCk7IH0KKyAgICBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG5ldyBWYWx1ZUhvbGRlcigpOyB9CiAKICAgIHByaXZhdGU6CiAgICAgR1RFU1RfRElT
QUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KTsKQEAgLTIy
NDUsNyArMTgzMCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBjbGFzcyBJ
bnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeSA6IHB1YmxpYyBWYWx1ZUhvbGRlckZhY3Rvcnkgewog
ICAgcHVibGljOgogICAgIGV4cGxpY2l0IEluc3RhbmNlVmFsdWVIb2xkZXJGYWN0b3J5KGNvbnN0
IFQmIHZhbHVlKSA6IHZhbHVlXyh2YWx1ZSkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBN
YWtlTmV3SG9sZGVyKCkgY29uc3QgeworICAgIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9sZGVyKCkg
Y29uc3Qgb3ZlcnJpZGUgewogICAgICAgcmV0dXJuIG5ldyBWYWx1ZUhvbGRlcih2YWx1ZV8pOwog
ICAgIH0KIApAQCAtMjI1Nyw3ICsxODQyLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUaHJlYWRMb2Nh
bCB7CiAKICAgLy8gQSBrZXkgcHRocmVhZHMgdXNlcyBmb3IgbG9va2luZyB1cCBwZXItdGhyZWFk
IHZhbHVlcy4KICAgY29uc3QgcHRocmVhZF9rZXlfdCBrZXlfOwotICBzY29wZWRfcHRyPFZhbHVl
SG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9mYWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVfcHRyPFZhbHVl
SG9sZGVyRmFjdG9yeT4gZGVmYXVsdF9mYWN0b3J5XzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZ
X0FORF9BU1NJR05fKFRocmVhZExvY2FsKTsKIH07CkBAIC0yMzE1LDc3ICsxOTAwLDEyIEBAIGNs
YXNzIEdURVNUX0FQSV8gVGhyZWFkTG9jYWwgewogLy8gd2UgY2Fubm90IGRldGVjdCBpdC4KIEdU
RVNUX0FQSV8gc2l6ZV90IEdldFRocmVhZENvdW50KCk7CiAKLS8vIFBhc3Npbmcgbm9uLVBPRCBj
bGFzc2VzIHRocm91Z2ggZWxsaXBzaXMgKC4uLikgY3Jhc2hlcyB0aGUgQVJNCi0vLyBjb21waWxl
ciBhbmQgZ2VuZXJhdGVzIGEgd2FybmluZyBpbiBTdW4gU3R1ZGlvIGJlZm9yZSAxMnU0LiBUaGUg
Tm9raWEgU3ltYmlhbgotLy8gYW5kIHRoZSBJQk0gWEwgQy9DKysgY29tcGlsZXIgdHJ5IHRvIGlu
c3RhbnRpYXRlIGEgY29weSBjb25zdHJ1Y3RvcgotLy8gZm9yIG9iamVjdHMgcGFzc2VkIHRocm91
Z2ggZWxsaXBzaXMgKC4uLiksIGZhaWxpbmcgZm9yIHVuY29weWFibGUKLS8vIG9iamVjdHMuICBX
ZSBkZWZpbmUgdGhpcyB0byBlbnN1cmUgdGhhdCBvbmx5IFBPRCBpcyBwYXNzZWQgdGhyb3VnaAot
Ly8gZWxsaXBzaXMgb24gdGhlc2Ugc3lzdGVtcy4KLSNpZiBkZWZpbmVkKF9fU1lNQklBTjMyX18p
IHx8IGRlZmluZWQoX19JQk1DUFBfXykgfHwgXAotICAgICAoZGVmaW5lZChfX1NVTlBST19DQykg
JiYgX19TVU5QUk9fQ0MgPCAweDUxMzApCi0vLyBXZSBsb3NlIHN1cHBvcnQgZm9yIE5VTEwgZGV0
ZWN0aW9uIHdoZXJlIHRoZSBjb21waWxlciBkb2Vzbid0IGxpa2UKLS8vIHBhc3Npbmcgbm9uLVBP
RCBjbGFzc2VzIHRocm91Z2ggZWxsaXBzaXMgKC4uLikuCi0jIGRlZmluZSBHVEVTVF9FTExJUFNJ
U19ORUVEU19QT0RfIDEKLSNlbHNlCi0jIGRlZmluZSBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMIDEK
LSNlbmRpZgotCi0vLyBUaGUgTm9raWEgU3ltYmlhbiBhbmQgSUJNIFhMIEMvQysrIGNvbXBpbGVy
cyBjYW5ub3QgZGVjaWRlIGJldHdlZW4KLS8vIGNvbnN0IFQmIGFuZCBjb25zdCBUKiBpbiBhIGZ1
bmN0aW9uIHRlbXBsYXRlLiAgVGhlc2UgY29tcGlsZXJzCi0vLyBfY2FuXyBkZWNpZGUgYmV0d2Vl
biBjbGFzcyB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgZm9yIFQgYW5kIFQqLAotLy8gc28gYSB0
cjE6OnR5cGVfdHJhaXRzLWxpa2UgaXNfcG9pbnRlciB3b3Jrcy4KLSNpZiBkZWZpbmVkKF9fU1lN
QklBTjMyX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykKLSMgZGVmaW5lIEdURVNUX05FRURTX0lT
X1BPSU5URVJfIDEKLSNlbmRpZgotCi10ZW1wbGF0ZSA8Ym9vbCBib29sX3ZhbHVlPgotc3RydWN0
IGJvb2xfY29uc3RhbnQgewotICB0eXBlZGVmIGJvb2xfY29uc3RhbnQ8Ym9vbF92YWx1ZT4gdHlw
ZTsKLSAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBib29sX3ZhbHVlOwotfTsKLXRlbXBsYXRl
IDxib29sIGJvb2xfdmFsdWU+IGNvbnN0IGJvb2wgYm9vbF9jb25zdGFudDxib29sX3ZhbHVlPjo6
dmFsdWU7Ci0KLXR5cGVkZWYgYm9vbF9jb25zdGFudDxmYWxzZT4gZmFsc2VfdHlwZTsKLXR5cGVk
ZWYgYm9vbF9jb25zdGFudDx0cnVlPiB0cnVlX3R5cGU7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgotc3RydWN0IGlzX3NhbWUgOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfc2FtZTxULCBUPiA6IHB1YmxpYyB0cnVl
X3R5cGUge307Ci0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRlciA6
IHB1YmxpYyBmYWxzZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBp
c19wb2ludGVyPFQqPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBJdGVyYXRvcj4KLXN0cnVjdCBJdGVyYXRvclRyYWl0cyB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUg
SXRlcmF0b3I6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKLX07Ci0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdHJ1Y3QgSXRlcmF0b3JUcmFpdHM8VCo+IHsKLSAgdHlwZWRlZiBUIHZhbHVlX3R5
cGU7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBJdGVyYXRvclRyYWl0czxj
b25zdCBUKj4gewotICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKLX07Ci0KICNpZiBHVEVTVF9PU19X
SU5ET1dTCiAjIGRlZmluZSBHVEVTVF9QQVRIX1NFUF8gIlxcIgogIyBkZWZpbmUgR1RFU1RfSEFT
X0FMVF9QQVRIX1NFUF8gMQotLy8gVGhlIGJpZ2dlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSB0aGUg
Y29tcGlsZXIgc3VwcG9ydHMuCi10eXBlZGVmIF9faW50NjQgQmlnZ2VzdEludDsKICNlbHNlCiAj
IGRlZmluZSBHVEVTVF9QQVRIX1NFUF8gIi8iCiAjIGRlZmluZSBHVEVTVF9IQVNfQUxUX1BBVEhf
U0VQXyAwCi10eXBlZGVmIGxvbmcgbG9uZyBCaWdnZXN0SW50OyAgLy8gTk9MSU5UCiAjZW5kaWYg
IC8vIEdURVNUX09TX1dJTkRPV1MKIAogLy8gVXRpbGl0aWVzIGZvciBjaGFyLgpAQCAtMjQxNiw2
ICsxOTM2LDE5IEBAIGlubGluZSBib29sIElzVXBwZXIoY2hhciBjaCkgewogaW5saW5lIGJvb2wg
SXNYRGlnaXQoY2hhciBjaCkgewogICByZXR1cm4gaXN4ZGlnaXQoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgY2hhcj4oY2gpKSAhPSAwOwogfQorI2lmZGVmIF9fY3BwX2NoYXI4X3QKK2lubGluZSBib29s
IElzWERpZ2l0KGNoYXI4X3QgY2gpIHsKKyAgcmV0dXJuIGlzeGRpZ2l0KHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsKK30KKyNlbmRpZgoraW5saW5lIGJvb2wgSXNYRGlnaXQo
Y2hhcjE2X3QgY2gpIHsKKyAgY29uc3QgdW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsKKyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRp
Z2l0KGxvd19ieXRlKSAhPSAwOworfQoraW5saW5lIGJvb2wgSXNYRGlnaXQoY2hhcjMyX3QgY2gp
IHsKKyAgY29uc3QgdW5zaWduZWQgY2hhciBsb3dfYnl0ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KGNoKTsKKyAgcmV0dXJuIGNoID09IGxvd19ieXRlICYmIGlzeGRpZ2l0KGxvd19ieXRl
KSAhPSAwOworfQogaW5saW5lIGJvb2wgSXNYRGlnaXQod2NoYXJfdCBjaCkgewogICBjb25zdCB1
bnNpZ25lZCBjaGFyIGxvd19ieXRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOwog
ICByZXR1cm4gY2ggPT0gbG93X2J5dGUgJiYgaXN4ZGlnaXQobG93X2J5dGUpICE9IDA7CkBAIC0y
NDUwLDE2ICsxOTgzLDE2IEBAIG5hbWVzcGFjZSBwb3NpeCB7CiB0eXBlZGVmIHN0cnVjdCBfc3Rh
dCBTdGF0U3RydWN0OwogCiAjIGlmZGVmIF9fQk9STEFORENfXwotaW5saW5lIGludCBJc0FUVFko
aW50IGZkKSB7IHJldHVybiBpc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCBm
ZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsgfQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNo
YXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyaWNtcChzMSwgczIpOwogfQog
aW5saW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFyKiBzcmMpIHsgcmV0dXJuIHN0cmR1cChzcmMp
OyB9CiAjIGVsc2UgIC8vICFfX0JPUkxBTkRDX18KICMgIGlmIEdURVNUX09TX1dJTkRPV1NfTU9C
SUxFCi1pbmxpbmUgaW50IElzQVRUWShpbnQgLyogZmQgKi8pIHsgcmV0dXJuIDA7IH0KK2lubGlu
ZSBpbnQgRG9Jc0FUVFkoaW50IC8qIGZkICovKSB7IHJldHVybiAwOyB9CiAjICBlbHNlCi1pbmxp
bmUgaW50IElzQVRUWShpbnQgZmQpIHsgcmV0dXJuIF9pc2F0dHkoZmQpOyB9CitpbmxpbmUgaW50
IERvSXNBVFRZKGludCBmZCkgeyByZXR1cm4gX2lzYXR0eShmZCk7IH0KICMgIGVuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTX01PQklMRQogaW5saW5lIGludCBTdHJDYXNlQ21wKGNvbnN0IGNoYXIq
IHMxLCBjb25zdCBjaGFyKiBzMikgewogICByZXR1cm4gX3N0cmljbXAoczEsIHMyKTsKQEAgLTI0
ODAsMTIgKzIwMTMsMjggQEAgaW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3Qp
IHsKIH0KICMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKKyNlbGlmIEdURVNU
X09TX0VTUDgyNjYKK3R5cGVkZWYgc3RydWN0IHN0YXQgU3RhdFN0cnVjdDsKKworaW5saW5lIGlu
dCBGaWxlTm8oRklMRSogZmlsZSkgeyByZXR1cm4gZmlsZW5vKGZpbGUpOyB9CitpbmxpbmUgaW50
IERvSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBTdGF0
KGNvbnN0IGNoYXIqIHBhdGgsIFN0YXRTdHJ1Y3QqIGJ1ZikgeworICAvLyBzdGF0IGZ1bmN0aW9u
IG5vdCBpbXBsZW1lbnRlZCBvbiBFU1A4MjY2CisgIHJldHVybiAwOworfQoraW5saW5lIGludCBT
dHJDYXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgeworICByZXR1cm4gc3Ry
Y2FzZWNtcChzMSwgczIpOworfQoraW5saW5lIGNoYXIqIFN0ckR1cChjb25zdCBjaGFyKiBzcmMp
IHsgcmV0dXJuIHN0cmR1cChzcmMpOyB9CitpbmxpbmUgaW50IFJtRGlyKGNvbnN0IGNoYXIqIGRp
cikgeyByZXR1cm4gcm1kaXIoZGlyKTsgfQoraW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0
cnVjdCYgc3QpIHsgcmV0dXJuIFNfSVNESVIoc3Quc3RfbW9kZSk7IH0KKwogI2Vsc2UKIAogdHlw
ZWRlZiBzdHJ1Y3Qgc3RhdCBTdGF0U3RydWN0OwogCiBpbmxpbmUgaW50IEZpbGVObyhGSUxFKiBm
aWxlKSB7IHJldHVybiBmaWxlbm8oZmlsZSk7IH0KLWlubGluZSBpbnQgSXNBVFRZKGludCBmZCkg
eyByZXR1cm4gaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsgcmV0
dXJuIGlzYXR0eShmZCk7IH0KIGlubGluZSBpbnQgU3RhdChjb25zdCBjaGFyKiBwYXRoLCBTdGF0
U3RydWN0KiBidWYpIHsgcmV0dXJuIHN0YXQocGF0aCwgYnVmKTsgfQogaW5saW5lIGludCBTdHJD
YXNlQ21wKGNvbnN0IGNoYXIqIHMxLCBjb25zdCBjaGFyKiBzMikgewogICByZXR1cm4gc3RyY2Fz
ZWNtcChzMSwgczIpOwpAQCAtMjQ5NiwxNCArMjA0NSwyMSBAQCBpbmxpbmUgYm9vbCBJc0Rpcihj
b25zdCBTdGF0U3RydWN0JiBzdCkgeyByZXR1cm4gU19JU0RJUihzdC5zdF9tb2RlKTsgfQogCiAj
ZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKIAoraW5saW5lIGludCBJc0FUVFkoaW50IGZkKSB7
CisgIC8vIERvSXNBVFRZIG1pZ2h0IGNoYW5nZSBlcnJubyAoZm9yIGV4YW1wbGUgRU5PVFRZIGlu
IGNhc2UgeW91IHJlZGlyZWN0IHN0ZG91dAorICAvLyB0byBhIGZpbGUgb24gTGludXgpLCB3aGlj
aCBpcyB1bmV4cGVjdGVkLCBzbyBzYXZlIHRoZSBwcmV2aW91cyB2YWx1ZSwgYW5kCisgIC8vIHJl
c3RvcmUgaXQgYWZ0ZXIgdGhlIGNhbGwuCisgIGludCBzYXZlZEVycm5vID0gZXJybm87CisgIGlu
dCBpc0F0dHlWYWx1ZSA9IERvSXNBVFRZKGZkKTsKKyAgZXJybm8gPSBzYXZlZEVycm5vOworCisg
IHJldHVybiBpc0F0dHlWYWx1ZTsKK30KKwogLy8gRnVuY3Rpb25zIGRlcHJlY2F0ZWQgYnkgTVNW
QyA4LjAuCiAKIEdURVNUX0RJU0FCTEVfTVNDX0RFUFJFQ0FURURfUFVTSF8oKQogCi1pbmxpbmUg
Y29uc3QgY2hhciogU3RyTkNweShjaGFyKiBkZXN0LCBjb25zdCBjaGFyKiBzcmMsIHNpemVfdCBu
KSB7Ci0gIHJldHVybiBzdHJuY3B5KGRlc3QsIHNyYywgbik7Ci19Ci0KIC8vIENoRGlyKCksIEZS
ZW9wZW4oKSwgRkRPcGVuKCksIFJlYWQoKSwgV3JpdGUoKSwgQ2xvc2UoKSwgYW5kCiAvLyBTdHJF
cnJvcigpIGFyZW4ndCBuZWVkZWQgb24gV2luZG93cyBDRSBhdCB0aGlzIHRpbWUgYW5kIHRodXMg
bm90CiAvLyBkZWZpbmVkIHRoZXJlLgpAQCAtMjUxMiw3ICsyMDY4LDE1IEBAIGlubGluZSBjb25z
dCBjaGFyKiBTdHJOQ3B5KGNoYXIqIGRlc3QsIGNvbnN0IGNoYXIqIHNyYywgc2l6ZV90IG4pIHsK
IGlubGluZSBpbnQgQ2hEaXIoY29uc3QgY2hhciogZGlyKSB7IHJldHVybiBjaGRpcihkaXIpOyB9
CiAjZW5kaWYKIGlubGluZSBGSUxFKiBGT3Blbihjb25zdCBjaGFyKiBwYXRoLCBjb25zdCBjaGFy
KiBtb2RlKSB7CisjaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5H
VworICBzdHJ1Y3Qgd2NoYXJfY29kZWN2dCA6IHB1YmxpYyBzdGQ6OmNvZGVjdnQ8d2NoYXJfdCwg
Y2hhciwgc3RkOjptYnN0YXRlX3Q+IHt9OworICBzdGQ6OndzdHJpbmdfY29udmVydDx3Y2hhcl9j
b2RlY3Z0PiBjb252ZXJ0ZXI7CisgIHN0ZDo6d3N0cmluZyB3aWRlX3BhdGggPSBjb252ZXJ0ZXIu
ZnJvbV9ieXRlcyhwYXRoKTsKKyAgc3RkOjp3c3RyaW5nIHdpZGVfbW9kZSA9IGNvbnZlcnRlci5m
cm9tX2J5dGVzKG1vZGUpOworICByZXR1cm4gX3dmb3Blbih3aWRlX3BhdGguY19zdHIoKSwgd2lk
ZV9tb2RlLmNfc3RyKCkpOworI2Vsc2UgIC8vIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09T
X1dJTkRPV1NfTUlOR1cKICAgcmV0dXJuIGZvcGVuKHBhdGgsIG1vZGUpOworI2VuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01JTkdXCiB9CiAjaWYgIUdURVNU
X09TX1dJTkRPV1NfTU9CSUxFCiBpbmxpbmUgRklMRSAqRlJlb3Blbihjb25zdCBjaGFyKiBwYXRo
LCBjb25zdCBjaGFyKiBtb2RlLCBGSUxFKiBzdHJlYW0pIHsKQEAgLTI1MzIsMTUgKzIwOTYsMTYg
QEAgaW5saW5lIGludCBDbG9zZShpbnQgZmQpIHsgcmV0dXJuIGNsb3NlKGZkKTsgfQogaW5saW5l
IGNvbnN0IGNoYXIqIFN0ckVycm9yKGludCBlcnJudW0pIHsgcmV0dXJuIHN0cmVycm9yKGVycm51
bSk7IH0KICNlbmRpZgogaW5saW5lIGNvbnN0IGNoYXIqIEdldEVudihjb25zdCBjaGFyKiBuYW1l
KSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0gIC8vIFdlIGFyZSBvbiBXaW5kb3dzIENFLCB3aGlj
aCBoYXMgbm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLgorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9C
SUxFIHx8IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1Nf
UlQgfHwgR1RFU1RfT1NfRVNQODI2NgorICAvLyBXZSBhcmUgb24gYW4gZW1iZWRkZWQgcGxhdGZv
cm0sIHdoaWNoIGhhcyBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAgIHN0YXRpY19jYXN0PHZv
aWQ+KG5hbWUpOyAgLy8gVG8gcHJldmVudCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5nLgotICBy
ZXR1cm4gTlVMTDsKKyAgcmV0dXJuIG51bGxwdHI7CiAjZWxpZiBkZWZpbmVkKF9fQk9STEFORENf
XykgfHwgZGVmaW5lZChfX1N1bk9TXzVfOCkgfHwgZGVmaW5lZChfX1N1bk9TXzVfOSkKICAgLy8g
RW52aXJvbm1lbnQgdmFyaWFibGVzIHdoaWNoIHdlIHByb2dyYW1tYXRpY2FsbHkgY2xlYXIgd2ls
bCBiZSBzZXQgdG8gdGhlCiAgIC8vIGVtcHR5IHN0cmluZyByYXRoZXIgdGhhbiB1bnNldCAoTlVM
TCkuICBIYW5kbGUgdGhhdCBjYXNlLgogICBjb25zdCBjaGFyKiBjb25zdCBlbnYgPSBnZXRlbnYo
bmFtZSk7Ci0gIHJldHVybiAoZW52ICE9IE5VTEwgJiYgZW52WzBdICE9ICdcMCcpID8gZW52IDog
TlVMTDsKKyAgcmV0dXJuIChlbnYgIT0gbnVsbHB0ciAmJiBlbnZbMF0gIT0gJ1wwJykgPyBlbnYg
OiBudWxscHRyOwogI2Vsc2UKICAgcmV0dXJuIGdldGVudihuYW1lKTsKICNlbmRpZgpAQCAtMjU1
Miw5ICsyMTE3LDkgQEAgR1RFU1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9QT1BfKCkKIC8vIFdp
bmRvd3MgQ0UgaGFzIG5vIEMgbGlicmFyeS4gVGhlIGFib3J0KCkgZnVuY3Rpb24gaXMgdXNlZCBp
bgogLy8gc2V2ZXJhbCBwbGFjZXMgaW4gR29vZ2xlIFRlc3QuIFRoaXMgaW1wbGVtZW50YXRpb24g
cHJvdmlkZXMgYSByZWFzb25hYmxlCiAvLyBpbWl0YXRpb24gb2Ygc3RhbmRhcmQgYmVoYXZpb3Vy
Lgotdm9pZCBBYm9ydCgpOworW1tub3JldHVybl1dIHZvaWQgQWJvcnQoKTsKICNlbHNlCi1pbmxp
bmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQoKTsgfQorW1tub3JldHVybl1dIGlubGluZSB2b2lkIEFi
b3J0KCkgeyBhYm9ydCgpOyB9CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAK
IH0gIC8vIG5hbWVzcGFjZSBwb3NpeApAQCAtMjU2NCwyNyArMjEyOSwyNCBAQCBpbmxpbmUgdm9p
ZCBBYm9ydCgpIHsgYWJvcnQoKTsgfQogLy8gTVNWQy1iYXNlZCBwbGF0Zm9ybXMuICBXZSBtYXAg
dGhlIEdURVNUX1NOUFJJTlRGXyBtYWNybyB0byB0aGUgYXBwcm9wcmlhdGUKIC8vIGZ1bmN0aW9u
IGluIG9yZGVyIHRvIGFjaGlldmUgdGhhdC4gIFdlIHVzZSBtYWNybyBkZWZpbml0aW9uIGhlcmUg
YmVjYXVzZQogLy8gc25wcmludGYgaXMgYSB2YXJpYWRpYyBmdW5jdGlvbi4KLSNpZiBfTVNDX1ZF
UiA+PSAxNDAwICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQorI2lmIF9NU0NfVkVSICYmICFH
VEVTVF9PU19XSU5ET1dTX01PQklMRQogLy8gTVNWQyAyMDA1IGFuZCBhYm92ZSBzdXBwb3J0IHZh
cmlhZGljIG1hY3Jvcy4KICMgZGVmaW5lIEdURVNUX1NOUFJJTlRGXyhidWZmZXIsIHNpemUsIGZv
cm1hdCwgLi4uKSBcCiAgICAgIF9zbnByaW50Zl9zKGJ1ZmZlciwgc2l6ZSwgc2l6ZSwgZm9ybWF0
LCBfX1ZBX0FSR1NfXykKICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCi0vLyBXaW5kb3dzIENFIGRv
ZXMgbm90IGRlZmluZSBfc25wcmludGZfcyBhbmQgTVNWQyBwcmlvciB0byAyMDA1IGRvZXNuJ3QK
LS8vIGNvbXBsYWluIGFib3V0IF9zbnByaW50Zi4KKy8vIFdpbmRvd3MgQ0UgZG9lcyBub3QgZGVm
aW5lIF9zbnByaW50Zl9zCiAjIGRlZmluZSBHVEVTVF9TTlBSSU5URl8gX3NucHJpbnRmCiAjZWxz
ZQogIyBkZWZpbmUgR1RFU1RfU05QUklOVEZfIHNucHJpbnRmCiAjZW5kaWYKIAotLy8gVGhlIG1h
eGltdW0gbnVtYmVyIGEgQmlnZ2VzdEludCBjYW4gcmVwcmVzZW50LiAgVGhpcyBkZWZpbml0aW9u
Ci0vLyB3b3JrcyBubyBtYXR0ZXIgQmlnZ2VzdEludCBpcyByZXByZXNlbnRlZCBpbiBvbmUncyBj
b21wbGVtZW50IG9yCi0vLyB0d28ncyBjb21wbGVtZW50LgorLy8gVGhlIGJpZ2dlc3Qgc2lnbmVk
IGludGVnZXIgdHlwZSB0aGUgY29tcGlsZXIgc3VwcG9ydHMuCiAvLwotLy8gV2UgY2Fubm90IHJl
bHkgb24gbnVtZXJpY19saW1pdHMgaW4gU1RMLCBhcyBfX2ludDY0IGFuZCBsb25nIGxvbmcKLS8v
IGFyZSBub3QgcGFydCBvZiBzdGFuZGFyZCBDKysgYW5kIG51bWVyaWNfbGltaXRzIGRvZXNuJ3Qg
bmVlZCB0byBiZQotLy8gZGVmaW5lZCBmb3IgdGhlbS4KLWNvbnN0IEJpZ2dlc3RJbnQga01heEJp
Z2dlc3RJbnQgPQotICAgIH4oc3RhdGljX2Nhc3Q8QmlnZ2VzdEludD4oMSkgPDwgKDgqc2l6ZW9m
KEJpZ2dlc3RJbnQpIC0gMSkpOworLy8gbG9uZyBsb25nIGlzIGd1YXJhbnRlZWQgdG8gYmUgYXQg
bGVhc3QgNjQtYml0cyBpbiBDKysxMS4KK3VzaW5nIEJpZ2dlc3RJbnQgPSBsb25nIGxvbmc7ICAv
LyBOT0xJTlQKKworLy8gVGhlIG1heGltdW0gbnVtYmVyIGEgQmlnZ2VzdEludCBjYW4gcmVwcmVz
ZW50LgorY29uc3RleHByIEJpZ2dlc3RJbnQga01heEJpZ2dlc3RJbnQgPSAoc3RkOjpudW1lcmlj
X2xpbWl0czxCaWdnZXN0SW50Pjo6bWF4KSgpOwogCiAvLyBUaGlzIHRlbXBsYXRlIGNsYXNzIHNl
cnZlcyBhcyBhIGNvbXBpbGUtdGltZSBmdW5jdGlvbiBmcm9tIHNpemUgdG8KIC8vIHR5cGUuICBJ
dCBtYXBzIGEgc2l6ZSBpbiBieXRlcyB0byBhIHByaW1pdGl2ZSB0eXBlIHdpdGggdGhhdApAQCAt
MjYwOSw0MCArMjE3MSwyNyBAQCBjbGFzcyBUeXBlV2l0aFNpemUgewogIHB1YmxpYzoKICAgLy8g
VGhpcyBwcmV2ZW50cyB0aGUgdXNlciBmcm9tIHVzaW5nIFR5cGVXaXRoU2l6ZTxOPiB3aXRoIGlu
Y29ycmVjdAogICAvLyB2YWx1ZXMgb2YgTi4KLSAgdHlwZWRlZiB2b2lkIFVJbnQ7CisgIHVzaW5n
IFVJbnQgPSB2b2lkOwogfTsKIAogLy8gVGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDQuCiB0
ZW1wbGF0ZSA8PgogY2xhc3MgVHlwZVdpdGhTaXplPDQ+IHsKICBwdWJsaWM6Ci0gIC8vIHVuc2ln
bmVkIGludCBoYXMgc2l6ZSA0IGluIGJvdGggZ2NjIGFuZCBNU1ZDLgotICAvLwotICAvLyBBcyBi
YXNlL2Jhc2ljdHlwZXMuaCBkb2Vzbid0IGNvbXBpbGUgb24gV2luZG93cywgd2UgY2Fubm90IHVz
ZQotICAvLyB1aW50MzIsIHVpbnQ2NCwgYW5kIGV0YyBoZXJlLgotICB0eXBlZGVmIGludCBJbnQ7
Ci0gIHR5cGVkZWYgdW5zaWduZWQgaW50IFVJbnQ7CisgIHVzaW5nIEludCA9IHN0ZDo6aW50MzJf
dDsKKyAgdXNpbmcgVUludCA9IHN0ZDo6dWludDMyX3Q7CiB9OwogCiAvLyBUaGUgc3BlY2lhbGl6
YXRpb24gZm9yIHNpemUgOC4KIHRlbXBsYXRlIDw+CiBjbGFzcyBUeXBlV2l0aFNpemU8OD4gewog
IHB1YmxpYzoKLSNpZiBHVEVTVF9PU19XSU5ET1dTCi0gIHR5cGVkZWYgX19pbnQ2NCBJbnQ7Ci0g
IHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50OwotI2Vsc2UKLSAgdHlwZWRlZiBsb25nIGxv
bmcgSW50OyAgLy8gTk9MSU5UCi0gIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVJbnQ7ICAv
LyBOT0xJTlQKLSNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUworICB1c2luZyBJbnQgPSBzdGQ6
OmludDY0X3Q7CisgIHVzaW5nIFVJbnQgPSBzdGQ6OnVpbnQ2NF90OwogfTsKIAogLy8gSW50ZWdl
ciB0eXBlcyBvZiBrbm93biBzaXplcy4KLXR5cGVkZWYgVHlwZVdpdGhTaXplPDQ+OjpJbnQgSW50
MzI7Ci10eXBlZGVmIFR5cGVXaXRoU2l6ZTw0Pjo6VUludCBVSW50MzI7Ci10eXBlZGVmIFR5cGVX
aXRoU2l6ZTw4Pjo6SW50IEludDY0OwotdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OlVJbnQgVUlu
dDY0OwotdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXBy
ZXNlbnRzIHRpbWUgaW4gbWlsbGlzZWNvbmRzLgordXNpbmcgVGltZUluTWlsbGlzID0gaW50NjRf
dDsgIC8vIFJlcHJlc2VudHMgdGltZSBpbiBtaWxsaXNlY29uZHMuCiAKIC8vIFV0aWxpdGllcyBm
b3IgY29tbWFuZCBsaW5lIGZsYWdzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiAKQEAgLTI2
NjEsNyArMjIxMCw3IEBAIHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlz
OyAgLy8gUmVwcmVzZW50cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KIC8vIE1hY3JvcyBmb3IgZGVj
bGFyaW5nIGZsYWdzLgogIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9ib29sXyhuYW1lKSBHVEVTVF9B
UElfIGV4dGVybiBib29sIEdURVNUX0ZMQUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVf
aW50MzJfKG5hbWUpIFwKLSAgICBHVEVTVF9BUElfIGV4dGVybiA6OnRlc3Rpbmc6OmludGVybmFs
OjpJbnQzMiBHVEVTVF9GTEFHKG5hbWUpCisgICAgR1RFU1RfQVBJXyBleHRlcm4gc3RkOjppbnQz
Ml90IEdURVNUX0ZMQUcobmFtZSkKICMgZGVmaW5lIEdURVNUX0RFQ0xBUkVfc3RyaW5nXyhuYW1l
KSBcCiAgICAgR1RFU1RfQVBJXyBleHRlcm4gOjpzdGQ6OnN0cmluZyBHVEVTVF9GTEFHKG5hbWUp
CiAKQEAgLTI2NjksNyArMjIxOCw3IEBAIHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGlt
ZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KICMgZGVmaW5l
IEdURVNUX0RFRklORV9ib29sXyhuYW1lLCBkZWZhdWx0X3ZhbCwgZG9jKSBcCiAgICAgR1RFU1Rf
QVBJXyBib29sIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCiAjIGRlZmluZSBHVEVT
VF9ERUZJTkVfaW50MzJfKG5hbWUsIGRlZmF1bHRfdmFsLCBkb2MpIFwKLSAgICBHVEVTVF9BUElf
IDo6dGVzdGluZzo6aW50ZXJuYWw6OkludDMyIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92
YWwpCisgICAgR1RFU1RfQVBJXyBzdGQ6OmludDMyX3QgR1RFU1RfRkxBRyhuYW1lKSA9IChkZWZh
dWx0X3ZhbCkKICMgZGVmaW5lIEdURVNUX0RFRklORV9zdHJpbmdfKG5hbWUsIGRlZmF1bHRfdmFs
LCBkb2MpIFwKICAgICBHVEVTVF9BUElfIDo6c3RkOjpzdHJpbmcgR1RFU1RfRkxBRyhuYW1lKSA9
IChkZWZhdWx0X3ZhbCkKIApAQCAtMjY4NCwxOSArMjIzMywxNTIgQEAgdHlwZWRlZiBUeXBlV2l0
aFNpemU8OD46OkludCBUaW1lSW5NaWxsaXM7ICAvLyBSZXByZXNlbnRzIHRpbWUgaW4gbWlsbGlz
ZWNvbmRzLgogLy8gUGFyc2VzICdzdHInIGZvciBhIDMyLWJpdCBzaWduZWQgaW50ZWdlci4gIElm
IHN1Y2Nlc3NmdWwsIHdyaXRlcyB0aGUgcmVzdWx0CiAvLyB0byAqdmFsdWUgYW5kIHJldHVybnMg
dHJ1ZTsgb3RoZXJ3aXNlIGxlYXZlcyAqdmFsdWUgdW5jaGFuZ2VkIGFuZCByZXR1cm5zCiAvLyBm
YWxzZS4KLS8vIEZJWE1FOiBGaW5kIGEgYmV0dGVyIHdheSB0byByZWZhY3RvciBmbGFnIGFuZCBl
bnZpcm9ubWVudCBwYXJzaW5nCi0vLyBvdXQgb2YgYm90aCBndGVzdC1wb3J0LmNjIGFuZCBndGVz
dC5jYyB0byBhdm9pZCBleHBvcnRpbmcgdGhpcyB1dGlsaXR5Ci0vLyBmdW5jdGlvbi4KLWJvb2wg
UGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQz
MiogdmFsdWUpOworR1RFU1RfQVBJXyBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3Jj
X3RleHQsIGNvbnN0IGNoYXIqIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMy
X3QqIHZhbHVlKTsKIAotLy8gUGFyc2VzIGEgYm9vbC9JbnQzMi9zdHJpbmcgZnJvbSB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGUKKy8vIFBhcnNlcyBhIGJvb2wvaW50MzJfdC9zdHJpbmcgZnJvbSB0
aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKIC8vIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIEdv
b2dsZSBUZXN0IGZsYWcuCiBib29sIEJvb2xGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywg
Ym9vbCBkZWZhdWx0X3ZhbCk7Ci1HVEVTVF9BUElfIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNv
bnN0IGNoYXIqIGZsYWcsIEludDMyIGRlZmF1bHRfdmFsKTsKK0dURVNUX0FQSV8gaW50MzJfdCBJ
bnQzMkZyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBpbnQzMl90IGRlZmF1bHRfdmFsKTsK
IHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdBbHNvQ2hlY2tFbnZWYXIoKTsKIGNvbnN0IGNoYXIqIFN0
cmluZ0Zyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZhdWx0X3Zh
bCk7CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcK
IAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8K
KyNpZiAhZGVmaW5lZChHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKQorCisvLyBJbnRlcm5hbCBN
YWNybyB0byBtYXJrIGFuIEFQSSBkZXByZWNhdGVkLCBmb3IgZ29vZ2xldGVzdCB1c2FnZSBvbmx5
CisvLyBVc2FnZTogY2xhc3MgR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSBNeUNs
YXNzIG9yCisvLyBHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpIDxyZXR1cm5fdHlw
ZT4gbXlGdW5jdGlvbigpOyBFdmVyeSB1c2FnZSBvZgorLy8gYSBkZXByZWNhdGVkIGVudGl0eSB3
aWxsIHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4gY29tcGlsZWQgd2l0aAorLy8gYC1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnNgIG9wdGlvbiAoY2xhbmcsIGdjYywgYW55IF9fR05VQ19fIGNvbXBpbGVy
KS4KKy8vIEZvciBtc3ZjIC9XMyBvcHRpb24gd2lsbCBuZWVkIHRvIGJlIHVzZWQKKy8vIE5vdGUg
dGhhdCBmb3IgJ290aGVyJyBjb21waWxlcnMgdGhpcyBtYWNybyBldmFsdWF0ZXMgdG8gbm90aGlu
ZyB0byBwcmV2ZW50CisvLyBjb21waWxhdGlvbnMgZXJyb3JzLgorI2lmIGRlZmluZWQoX01TQ19W
RVIpCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3Bl
YyhkZXByZWNhdGVkKG1lc3NhZ2UpKQorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUg
R1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNh
dGVkKG1lc3NhZ2UpKSkKKyNlbHNlCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQo
bWVzc2FnZSkKKyNlbmRpZgorCisjZW5kaWYgIC8vICFkZWZpbmVkKEdURVNUX0lOVEVSTkFMX0RF
UFJFQ0FURUQpCisKKyNpZiBHVEVTVF9IQVNfQUJTTAorLy8gQWx3YXlzIHVzZSBhYnNsOjphbnkg
Zm9yIFVuaXZlcnNhbFByaW50ZXI8PiBzcGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8g
aXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBvcnQuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19B
TlkgMQorI2luY2x1ZGUgImFic2wvdHlwZXMvYW55LmgiCituYW1lc3BhY2UgdGVzdGluZyB7Citu
YW1lc3BhY2UgaW50ZXJuYWwgewordXNpbmcgQW55ID0gOjphYnNsOjphbnk7Cit9ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisjZWxzZQorI2lmZGVmIF9f
aGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+PSAy
MDE3MDNMCisvLyBPdGhlcndpc2UgZm9yIEMrKzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6YW55IGZv
ciBVbml2ZXJzYWxQcmludGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1Rf
SU5URVJOQUxfSEFTX0FOWSAxCisjaW5jbHVkZSA8YW55PgorbmFtZXNwYWNlIHRlc3Rpbmcgewor
bmFtZXNwYWNlIGludGVybmFsIHsKK3VzaW5nIEFueSA9IDo6c3RkOjphbnk7Cit9ICAvLyBuYW1l
c3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisvLyBUaGUgY2FzZSB3aGVy
ZSBhYnNsIGlzIGNvbmZpZ3VyZWQgTk9UIHRvIGFsaWFzIHN0ZDo6YW55IGlzIG5vdAorLy8gc3Vw
cG9ydGVkLgorI2VuZGlmICAvLyBfX2hhc19pbmNsdWRlKDxhbnk+KSAmJiBfX2NwbHVzcGx1cyA+
PSAyMDE3MDNMCisjZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8gR1RFU1RfSEFT
X0FCU0wKKworI2lmIEdURVNUX0hBU19BQlNMCisvLyBBbHdheXMgdXNlIGFic2w6Om9wdGlvbmFs
IGZvciBVbml2ZXJzYWxQcmludGVyPD4gc3BlY2lhbGl6YXRpb25zIGlmCisvLyBnb29nbGV0ZXN0
IGlzIGJ1aWx0IHdpdGggYWJzbCBzdXBwb3J0LgorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNf
T1BUSU9OQUwgMQorI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKK25hbWVzcGFjZSB0
ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vz
aW5nIE9wdGlvbmFsID0gOjphYnNsOjpvcHRpb25hbDxUPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRl
cm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKyNlbHNlCisjaWZkZWYgX19oYXNfaW5jbHVk
ZQorI2lmIF9faGFzX2luY2x1ZGUoPG9wdGlvbmFsPikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAz
TAorLy8gT3RoZXJ3aXNlIGZvciBDKysxNyBhbmQgaGlnaGVyIHVzZSBzdGQ6Om9wdGlvbmFsIGZv
ciBVbml2ZXJzYWxQcmludGVyPD4KKy8vIHNwZWNpYWxpemF0aW9ucy4KKyNkZWZpbmUgR1RFU1Rf
SU5URVJOQUxfSEFTX09QVElPTkFMIDEKKyNpbmNsdWRlIDxvcHRpb25hbD4KK25hbWVzcGFjZSB0
ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3Vz
aW5nIE9wdGlvbmFsID0gOjpzdGQ6Om9wdGlvbmFsPFQ+OworfSAgLy8gbmFtZXNwYWNlIGludGVy
bmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBj
b25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6Om9wdGlvbmFsIGlzIG5vdAorLy8gc3VwcG9ydGVk
LgorI2VuZGlmICAvLyBfX2hhc19pbmNsdWRlKDxvcHRpb25hbD4pICYmIF9fY3BsdXNwbHVzID49
IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNf
QUJTTAorCisjaWYgR1RFU1RfSEFTX0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6c3RyaW5nX3Zp
ZXcgZm9yIE1hdGNoZXI8PiBzcGVjaWFsaXphdGlvbnMgaWYgZ29vZ2xldGVzdAorLy8gaXMgYnVp
bHQgd2l0aCBhYnNsIHN1cHBvcnQuCisjIGRlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5H
X1ZJRVcgMQorI2luY2x1ZGUgImFic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oIgorbmFtZXNwYWNl
IHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsKK3VzaW5nIFN0cmluZ1ZpZXcgPSA6OmFi
c2w6OnN0cmluZ192aWV3OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3Bh
Y2UgdGVzdGluZworI2Vsc2UKKyMgaWZkZWYgX19oYXNfaW5jbHVkZQorIyAgIGlmIF9faGFzX2lu
Y2x1ZGUoPHN0cmluZ192aWV3PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3
aXNlIGZvciBDKysxNyBhbmQgaGlnaGVyIHVzZSBzdGQ6OnN0cmluZ192aWV3IGZvciBNYXRjaGVy
PD4KKy8vIHNwZWNpYWxpemF0aW9ucy4KKyMgICBkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1NU
UklOR19WSUVXIDEKKyNpbmNsdWRlIDxzdHJpbmdfdmlldz4KK25hbWVzcGFjZSB0ZXN0aW5nIHsK
K25hbWVzcGFjZSBpbnRlcm5hbCB7Cit1c2luZyBTdHJpbmdWaWV3ID0gOjpzdGQ6OnN0cmluZ192
aWV3OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwor
Ly8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlhcyBzdGQ6OnN0
cmluZ192aWV3IGlzIG5vdAorLy8gc3VwcG9ydGVkLgorIyAgZW5kaWYgIC8vIF9faGFzX2luY2x1
ZGUoPHN0cmluZ192aWV3PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorIyBlbmRpZiAgLy8g
X19oYXNfaW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjaWYgR1RFU1RfSEFT
X0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+
IHNwZWNpYWxpemF0aW9ucyBpZiBnb29nbGV0ZXN0CisvLyBpcyBidWlsdCB3aXRoIGFic2wgc3Vw
cG9ydC4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1ZBUklBTlQgMQorI2luY2x1ZGUgImFi
c2wvdHlwZXMvdmFyaWFudC5oIgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVy
bmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6YWJzbDo6
dmFyaWFudDxULi4uPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNl
IHRlc3RpbmcKKyNlbHNlCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUo
PHZhcmlhbnQ+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisvLyBPdGhlcndpc2UgZm9yIEMr
KzE3IGFuZCBoaWdoZXIgdXNlIHN0ZDo6dmFyaWFudCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+Cisv
LyBzcGVjaWFsaXphdGlvbnMuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UIDEK
KyNpbmNsdWRlIDx2YXJpYW50PgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVy
bmFsIHsKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgordXNpbmcgVmFyaWFudCA9IDo6c3RkOjp2
YXJpYW50PFQuLi4+OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2Ug
dGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVkIE5PVCB0byBhbGlh
cyBzdGQ6OnZhcmlhbnQgaXMgbm90IHN1cHBvcnRlZC4KKyNlbmRpZiAgLy8gX19oYXNfaW5jbHVk
ZSg8dmFyaWFudD4pICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyNlbmRpZiAgLy8gX19oYXNf
aW5jbHVkZQorI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAorCisjZW5kaWYgIC8vIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5o
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1z
dHJpbmcuaAppbmRleCA0YzliNjI2MmMzYzEwMzcyNmFhM2NhYjRjMTk5OTViYWVmOTU4Yjk4Li4x
MGY3NzRmOTY2MDZlNWI5Yjg3YmEzNGVjN2M1MmJhNDc1YWQ4NWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3Qtc3RyaW5nLmgKQEAgLTM4LDggKzM4LDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8g
Tk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
U1RSSU5HX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RS
SU5HX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9T
VFJJTkdfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X1NUUklOR19IXwogCiAjaWZkZWYgX19CT1JMQU5EQ19fCiAvLyBzdHJpbmcuaCBpcyBub3QgZ3Vh
cmFudGVlZCB0byBwcm92aWRlIHN0cmNweSBvbiBDKysgQnVpbGRlci4KQEAgLTQ3LDYgKzQ3LDcg
QEAKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3N0ZGludD4KICNp
bmNsdWRlIDxzdHJpbmc+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmgi
CkBAIC05NCw3ICs5NSw4IEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAgc3RhdGljIGNv
bnN0IGNoYXIqIFV0ZjE2VG9BbnNpKExQQ1dTVFIgdXRmMTZfc3RyKTsKICNlbmRpZgogCi0gIC8v
IENvbXBhcmVzIHR3byBDIHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUg
c2FtZSBjb250ZW50LgorICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZXkgaGF2ZSB0aGUgc2FtZQorICAvLyBjb250ZW50LgogICAvLwog
ICAvLyBVbmxpa2Ugc3RyY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3Vt
ZW50KHMpLiAgQQogICAvLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRv
IGFueSBub24tTlVMTCBDIHN0cmluZywKQEAgLTEwNywxNiArMTA5LDE2IEBAIGNsYXNzIEdURVNU
X0FQSV8gU3RyaW5nIHsKICAgLy8gcmV0dXJuZWQuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBTaG93
V2lkZUNTdHJpbmcoY29uc3Qgd2NoYXJfdCogd2lkZV9jX3N0cik7CiAKLSAgLy8gQ29tcGFyZXMg
dHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUK
LSAgLy8gY29udGVudC4KKyAgLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZXkgaGF2ZSB0aGUKKyAgLy8gc2FtZSBjb250ZW50Lgog
ICAvLwogICAvLyBVbmxpa2Ugd2NzY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxM
IGFyZ3VtZW50KHMpLiAgQQogICAvLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVy
ZW50IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywKICAgLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBz
dHJpbmcuCiAgIHN0YXRpYyBib29sIFdpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxo
cywgY29uc3Qgd2NoYXJfdCogcmhzKTsKIAotICAvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBp
Z25vcmluZyBjYXNlLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5Ci0gIC8vIGhhdmUgdGhlIHNhbWUg
Y29udGVudC4KKyAgLy8gQ29tcGFyZXMgdHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZgorICAvLyB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVu
dC4KICAgLy8KICAgLy8gVW5saWtlIHN0cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFu
ZGxlIE5VTEwgYXJndW1lbnQocykuCiAgIC8vIEEgTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVk
IGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgQyBzdHJpbmcsCkBAIC0xMjQsOCArMTI2LDggQEAg
Y2xhc3MgR1RFU1RfQVBJXyBTdHJpbmcgewogICBzdGF0aWMgYm9vbCBDYXNlSW5zZW5zaXRpdmVD
U3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIqIGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHMpOwogCi0gIC8vIENvbXBhcmVzIHR3byB3
aWRlIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAv
LyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5n
cywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZgorICAvLyB0aGV5
IGhhdmUgdGhlIHNhbWUgY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHdjc2Nhc2VjbXAoKSwg
dGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCiAgIC8vIEEgTlVMTCBD
IHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgd2lkZSBDIHN0
cmluZywKQEAgLTEzOSwxNyArMTQxLDIzIEBAIGNsYXNzIEdURVNUX0FQSV8gU3RyaW5nIHsKICAg
c3RhdGljIGJvb2wgQ2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJf
dCogbGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCB3Y2hhcl90KiByaHMpOwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIHN0
cmluZyBlbmRzIHdpdGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcKLSAgLy8gY2FzZS4gQW55
IHN0cmluZyBpcyBjb25zaWRlcmVkIHRvIGVuZCB3aXRoIGFuIGVtcHR5IHN1ZmZpeC4KKyAgLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZlbiBzdHJpbmcgZW5kcyB3aXRoIHRo
ZSBnaXZlbiBzdWZmaXgsCisgIC8vIGlnbm9yaW5nIGNhc2UuIEFueSBzdHJpbmcgaXMgY29uc2lk
ZXJlZCB0byBlbmQgd2l0aCBhbiBlbXB0eSBzdWZmaXguCiAgIHN0YXRpYyBib29sIEVuZHNXaXRo
Q2FzZUluc2Vuc2l0aXZlKAogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHN0ciwgY29uc3Qgc3Rk
OjpzdHJpbmcmIHN1ZmZpeCk7CiAKICAgLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiUwMmQi
LgogICBzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0SW50V2lkdGgyKGludCB2YWx1ZSk7ICAvLyAi
JTAyZCIgZm9yIHdpZHRoID09IDIKIAorICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSB0byBnaXZl
biB3aWR0aCB3aXRoIGxlYWRpbmcgemVyb3MuCisgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRJ
bnRXaWR0aE4oaW50IHZhbHVlLCBpbnQgd2lkdGgpOworCiAgIC8vIEZvcm1hdHMgYW4gaW50IHZh
bHVlIGFzICIlWCIuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRIZXhJbnQoaW50IHZhbHVl
KTsKIAorICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJVgiLgorICBzdGF0aWMgc3RkOjpz
dHJpbmcgRm9ybWF0SGV4VUludDMyKHVpbnQzMl90IHZhbHVlKTsKKwogICAvLyBGb3JtYXRzIGEg
Ynl0ZSBhcyAiJTAyWCIuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRCeXRlKHVuc2lnbmVk
IGNoYXIgdmFsdWUpOwogCkBAIC0xNjQsNCArMTcyLDQgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmlu
ZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6OnN0ZDo6c3RyaW5nc3RyZWFtKiBzdHJlYW0pOwogfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYg
IC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjZW5kaWYg
IC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtdHVwbGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtdHVwbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhhM2E2
YTAxZmFjNzU1MTdlYWI4MzEzMTI0MjdlMTVkNWU0ZWJiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIxICsw
LDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVt
cC5weSBndGVzdC10dXBsZS5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQotLy8g
Q29weXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwot
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3Ry
aWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8v
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50
cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgbmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUg
TW9jay4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0
eT4gIC8vIEZvciA6OnN0ZDo6cGFpci4KLQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlh
biBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxl
IHRlbXBsYXRlIGFzIGEgZnJpZW5kIChpdCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmlu
ZWQpLiAgVGhpcwotLy8gYnlwYXNzZXMgdGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMg
dGhhdCBzaG91bGQgb3RoZXJ3aXNlIGJlCi0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBT
dHVkaW8gdmVyc2lvbnMgPCAxMiBhbHNvIGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVk
KF9fU1lNQklBTjMyX18pIHx8IChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8
IDB4NTkwKQotIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoK
LSNlbHNlCi0jIGRlZmluZSBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRl
bXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFUpPiBmcmllbmQgY2xhc3MgdHVwbGU7IFwKLSAg
IHByaXZhdGU6Ci0jZW5kaWYKLQotLy8gVmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAx
MyBkZWZpbmUgc3ltYm9scyBpbiBzdGQ6OnRyMSB0aGF0IGNvbmZsaWN0Ci0vLyB3aXRoIG91ciBv
d24gZGVmaW5pdGlvbnMuIFRoZXJlZm9yZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90IHdv
cmsgb24KLS8vIHRob3NlIGNvbXBpbGVycy4KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVND
X1ZFUiA+PSAxNjAwICAvKiAxNjAwIGlzIFZpc3VhbCBTdHVkaW8gMjAxMCAqLwotIyBlcnJvciAi
Z3Rlc3QncyB0dXBsZSBkb2Vzbid0IGNvbXBpbGUgb24gVmlzdWFsIFN0dWRpbyAyMDEwIG9yIGxh
dGVyLiBcCi1HVEVTVF9VU0VfT1dOX1RSMV9UVVBMRSBtdXN0IGJlIHNldCB0byAwIG9uIHRob3Nl
IGNvbXBpbGVycy4iCi0jZW5kaWYKLQotLy8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUg
b2YgYW4gbi10dXBsZS4KLSNkZWZpbmUgR1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotI2RlZmlu
ZSBHVEVTVF8xX1RVUExFXyhUKSB0dXBsZTxUIyMwLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkLCB2
b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfMl9UVVBM
RV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAot
ICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzNfVFVQTEVfKFQpIHR1cGxlPFQj
IzAsIFQjIzEsIFQjIzIsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lk
LCB2b2lkPgotI2RlZmluZSBHVEVTVF80X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMy
LCBUIyMzLCB2b2lkLCB2b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZp
bmUgR1RFU1RfNV9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwg
dm9pZCwgdm9pZCwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzZfVFVQ
TEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIHZvaWQsIFwK
LSAgICB2b2lkLCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF83X1RVUExFXyhUKSB0dXBsZTxU
IyMwLCBUIyMxLCBUIyMyLCBUIyMzLCBUIyM0LCBUIyM1LCBUIyM2LCBcCi0gICAgdm9pZCwgdm9p
ZCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfOF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMj
MiwgVCMjMywgVCMjNCwgVCMjNSwgVCMjNiwgXAotICAgIFQjIzcsIHZvaWQsIHZvaWQ+Ci0jZGVm
aW5lIEdURVNUXzlfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQs
IFQjIzUsIFQjIzYsIFwKLSAgICBUIyM3LCBUIyM4LCB2b2lkPgotI2RlZmluZSBHVEVTVF8xMF9U
VVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgVCMjNCwgVCMjNSwgVCMjNiwg
XAotICAgIFQjIzcsIFQjIzgsIFQjIzk+Ci0KLS8vIEdURVNUX25fVFlQRU5BTUVTXyhUKSBkZWNs
YXJlcyBhIGxpc3Qgb2YgbiB0eXBlbmFtZXMuCi0jZGVmaW5lIEdURVNUXzBfVFlQRU5BTUVTXyhU
KQotI2RlZmluZSBHVEVTVF8xX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMAotI2RlZmluZSBH
VEVTVF8yX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMQotI2RlZmlu
ZSBHVEVTVF8zX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlw
ZW5hbWUgVCMjMgotI2RlZmluZSBHVEVTVF80X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwg
dHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMKLSNkZWZp
bmUgR1RFU1RfNV9UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5
cGVuYW1lIFQjIzIsIFwKLSAgICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0Ci0jZGVmaW5l
IEdURVNUXzZfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBl
bmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUg
VCMjNQotI2RlZmluZSBHVEVTVF83X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5h
bWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQj
IzQsIHR5cGVuYW1lIFQjIzUsIHR5cGVuYW1lIFQjIzYKLSNkZWZpbmUgR1RFU1RfOF9UWVBFTkFN
RVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIsIFwKLSAg
ICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0eXBlbmFtZSBU
IyM2LCB0eXBlbmFtZSBUIyM3Ci0jZGVmaW5lIEdURVNUXzlfVFlQRU5BTUVTXyhUKSB0eXBlbmFt
ZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMj
MywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgXAotICAgIHR5
cGVuYW1lIFQjIzcsIHR5cGVuYW1lIFQjIzgKLSNkZWZpbmUgR1RFU1RfMTBfVFlQRU5BTUVTXyhU
KSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlw
ZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwg
XAotICAgIHR5cGVuYW1lIFQjIzcsIHR5cGVuYW1lIFQjIzgsIHR5cGVuYW1lIFQjIzkKLQotLy8g
SW4gdGhlb3J5LCBkZWZpbmluZyBzdHVmZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVm
aW5lZAotLy8gYmVoYXZpb3IuICBXZSBjYW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUg
cm9sZSBvZiBhIHN0YW5kYXJkCi0vLyBsaWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewot
bmFtZXNwYWNlIHRyMSB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMCA9IHZvaWQsIHR5cGVuYW1l
IFQxID0gdm9pZCwgdHlwZW5hbWUgVDIgPSB2b2lkLAotICAgIHR5cGVuYW1lIFQzID0gdm9pZCwg
dHlwZW5hbWUgVDQgPSB2b2lkLCB0eXBlbmFtZSBUNSA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDYg
PSB2b2lkLCB0eXBlbmFtZSBUNyA9IHZvaWQsIHR5cGVuYW1lIFQ4ID0gdm9pZCwKLSAgICB0eXBl
bmFtZSBUOSA9IHZvaWQ+Ci1jbGFzcyB0dXBsZTsKLQotLy8gQW55dGhpbmcgaW4gbmFtZXNwYWNl
IGd0ZXN0X2ludGVybmFsIGlzIEdvb2dsZSBUZXN0J3MgSU5URVJOQUwKLS8vIElNUExFTUVOVEFU
SU9OIERFVEFJTCBhbmQgTVVTVCBOT1QgQkUgVVNFRCBESVJFQ1RMWSBpbiB1c2VyIGNvZGUuCi1u
YW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwgewotCi0vLyBCeVJlZjxUPjo6dHlwZSBpcyBUIGlmIFQg
aXMgYSByZWZlcmVuY2U7IG90aGVyd2lzZSBpdCdzIGNvbnN0IFQmLgotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdHJ1Y3QgQnlSZWYgeyB0eXBlZGVmIGNvbnN0IFQmIHR5cGU7IH07ICAvLyBOT0xJ
TlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVmPFQmPiB7IHR5cGVkZWYgVCYg
dHlwZTsgfTsgIC8vIE5PTElOVAotCi0vLyBBIGhhbmR5IHdyYXBwZXIgZm9yIEJ5UmVmLgotI2Rl
ZmluZSBHVEVTVF9CWV9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0cjE6Omd0ZXN0X2ludGVybmFs
OjpCeVJlZjxUPjo6dHlwZQotCi0vLyBBZGRSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVm
ZXJlbmNlOyBvdGhlcndpc2UgaXQncyBUJi4gIFRoaXMKLS8vIGlzIHRoZSBzYW1lIGFzIHRyMTo6
YWRkX3JlZmVyZW5jZTxUPjo6dHlwZS4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFk
ZFJlZiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1zdHJ1Y3QgQWRkUmVmPFQmPiB7IHR5cGVkZWYgVCYgdHlwZTsgfTsgIC8vIE5PTElOVAot
Ci0vLyBBIGhhbmR5IHdyYXBwZXIgZm9yIEFkZFJlZi4KLSNkZWZpbmUgR1RFU1RfQUREX1JFRl8o
VCkgdHlwZW5hbWUgOjpzdGQ6OnRyMTo6Z3Rlc3RfaW50ZXJuYWw6OkFkZFJlZjxUPjo6dHlwZQot
Ci0vLyBBIGhlbHBlciBmb3IgaW1wbGVtZW50aW5nIGdldDxrPigpLgotdGVtcGxhdGUgPGludCBr
PiBjbGFzcyBHZXQ7Ci0KLS8vIEEgaGVscGVyIGZvciBpbXBsZW1lbnRpbmcgdHVwbGVfZWxlbWVu
dDxrLCBUPi4gIGtJbmRleFZhbGlkIGlzIHRydWUKLS8vIGlmZiBrIDwgdGhlIG51bWJlciBvZiBm
aWVsZHMgaW4gdHVwbGUgdHlwZSBULgotdGVtcGxhdGUgPGJvb2wga0luZGV4VmFsaWQsIGludCBr
SW5kZXgsIGNsYXNzIFR1cGxlPgotc3RydWN0IFR1cGxlRWxlbWVudDsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDAsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUMCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDEsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUMSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDIsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUMiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDMsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUMyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDQsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUNCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDUsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUNSB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDYsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUNiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDcsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUNyB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDgsIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUOCB0eXBlOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50PHRydWUsIDksIEdURVNU
XzEwX1RVUExFXyhUKSA+IHsKLSAgdHlwZWRlZiBUOSB0eXBlOwotfTsKLQotfSAgLy8gbmFtZXNw
YWNlIGd0ZXN0X2ludGVybmFsCi0KLXRlbXBsYXRlIDw+Ci1jbGFzcyB0dXBsZTw+IHsKLSBwdWJs
aWM6Ci0gIHR1cGxlKCkge30KLSAgdHVwbGUoY29uc3QgdHVwbGUmIC8qIHQgKi8pICB7fQotICB0
dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiAvKiB0ICovKSB7IHJldHVybiAqdGhpczsgfQot
fTsKLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzFfVFVQ
TEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0
X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpIHt9Ci0KLSAgZXhwbGljaXQgdHVw
bGUoR1RFU1RfQllfUkVGXyhUMCkgZjApIDogZjBfKGYwKSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1
cGxlJiB0KSA6IGYwXyh0LmYwXykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNf
KFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8xX1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pIHt9
Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20o
dCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3Bl
cmF0b3I9KGNvbnN0IEdURVNUXzFfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9t
KHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxh
dGUgPEdURVNUXzFfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNU
XzFfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgcmV0dXJuICp0aGlzOwot
ICB9Ci0KLSAgVDAgZjBfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4K
LWNsYXNzIEdURVNUXzJfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4g
ZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBm
MV8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9C
WV9SRUZfKFQxKSBmMSkgOiBmMF8oZjApLAotICAgICAgZjFfKGYxKSB7fQotCi0gIHR1cGxlKGNv
bnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXykge30KLQotICB0ZW1wbGF0ZSA8
R1RFU1RfMl9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYg
dCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVMCwg
dHlwZW5hbWUgVTE+Ci0gIHR1cGxlKGNvbnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIDogZjBf
KHAuZmlyc3QpLCBmMV8ocC5zZWNvbmQpIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0
dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMl9U
WVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzJfVFVQTEVfKFUp
JiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpzdGQ6OnBhaXI8
VTAsIFUxPiYgcCkgewotICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5zZWNvbmQ7Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRf
Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9t
KGNvbnN0IEdURVNUXzJfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFf
ID0gdC5mMV87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfM19U
VVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rl
c3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSB7fQot
Ci0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQx
KSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyKSA6IGYwXyhmMCksIGYxXyhmMSksIGYy
XyhmMikge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5m
MV8pLCBmMl8odC5mMl8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVTXyhVKT4K
LSAgdHVwbGUoY29uc3QgR1RFU1RfM19UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQu
ZjFfKSwgZjJfKHQuZjJfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQp
IHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5BTUVT
XyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewot
ICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNf
RlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBD
b3B5RnJvbShjb25zdCBHVEVTVF8zX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwot
ICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIHJldHVybiAqdGhpczsKLSAg
fQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfNF9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNF9UVVBMRV8oVCkgewotIHB1YmxpYzoK
LSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQot
ICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCkge30KLQotICBleHBsaWNpdCB0
dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBH
VEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMpIDogZjBfKGYwKSwgZjFf
KGYxKSwgZjJfKGYyKSwKLSAgICAgIGYzXyhmMykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYg
dCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pIHt9Ci0K
LSAgdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1Rf
NF9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAg
ICAgIGYzXyh0LmYzXykge30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7
IHJldHVybiBDb3B5RnJvbSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1FU18o
VSk+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAg
ICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZS
SUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29w
eUZyb20oY29uc3QgR1RFU1RfNF9UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAg
ICBmMV8gPSB0LmYxXzsKLSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBy
ZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBU
MyBmM187Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RF
U1RfNV9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xh
c3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8o
KSwgZjNfKCksIGY0XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkg
ZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdU
RVNUX0JZX1JFRl8oVDMpIGYzLAotICAgICAgR1RFU1RfQllfUkVGXyhUNCkgZjQpIDogZjBfKGYw
KSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSB7fQotCi0gIHR1cGxlKGNvbnN0
IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYz
XyksCi0gICAgICBmNF8odC5mNF8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVT
XyhVKT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwg
ZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0Xykge30K
LQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0
KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVy
YXRvcj0oY29uc3QgR1RFU1RfNV9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20o
dCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0
ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1Rf
NV9UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAg
ICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAgICBy
ZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBU
MyBmM187Ci0gIFQ0IGY0XzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVCk+
Ci1jbGFzcyBHVEVTVF82X1RVUExFXyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+
IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwg
ZjFfKCksIGYyXygpLCBmM18oKSwgZjRfKCksIGY1XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUo
R1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1Rf
QllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBm
NCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhm
MiksIGYzXyhmMyksIGY0XyhmNCksCi0gICAgICBmNV8oZjUpIHt9Ci0KLSAgdHVwbGUoY29uc3Qg
dHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNf
KSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1Rf
Nl9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgOiBm
MF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRf
KHQuZjRfKSwgZjVfKHQuZjVfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUm
IHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkg
ewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxl
JiBDb3B5RnJvbShjb25zdCBHVEVTVF82X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBf
OwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwot
ICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIHJldHVybiAqdGhpczsKLSAg
fQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRf
OwotICBUNSBmNV87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFQpPgotY2xh
c3MgR1RFU1RfN19UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmll
bmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygp
LCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCkge30KLQotICBleHBsaWNpdCB0dXBs
ZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVT
VF9CWV9SRUZfKFQyKSBmMiwgR1RFU1RfQllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQp
IGY0LAotICAgICAgR1RFU1RfQllfUkVGXyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2KSA6
IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksCi0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8o
ZjUpLCBmNl8oZjYpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwg
ZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1
Xyh0LmY1XyksIGY2Xyh0LmY2Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNf
KFUpPgotICB0dXBsZShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgOiBmMF8odC5mMF8pLCBm
MV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQuZjRfKSwgZjVf
KHQuZjVfKSwgZjZfKHQuZjZfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUm
IHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5B
TUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkg
ewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxl
JiBDb3B5RnJvbShjb25zdCBHVEVTVF83X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBf
OwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwot
ICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAg
IHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0g
IFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF84X1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF84X1RVUExFXyhUKSB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0
OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCksIGYyXygpLCBmM18oKSwgZjRfKCksIGY1Xygp
LCBmNl8oKSwgZjdfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBm
MCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RF
U1RfQllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllf
UkVGXyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2LAotICAgICAgR1RFU1RfQllfUkVGXyhU
NykgZjcpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAg
ICAgIGY1XyhmNSksIGY2XyhmNiksIGY3XyhmNykge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYg
dCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAg
ICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0g
IHRlbXBsYXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzhf
VFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAg
ICBmM18odC5mM18pLCBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBmN18odC5m
N18pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29w
eUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFUpPgotICB0dXBs
ZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzhfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENv
cHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAg
dGVtcGxhdGUgPEdURVNUXzhfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0
IEdURVNUXzhfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5m
MV87Ci0gICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87
Ci0gICAgZjVfID0gdC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0gICAgZjdfID0gdC5mN187Ci0g
ICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsK
LSAgVDMgZjNfOwotICBUNCBmNF87Ci0gIFQ1IGY1XzsKLSAgVDYgZjZfOwotICBUNyBmN187Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfOV9UVVBM
RV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3Rf
aW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCks
IGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpLCBmOF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxl
KEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNU
X0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkg
ZjQsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQ1KSBmNSwgR1RFU1RfQllfUkVGXyhUNikgZjYsIEdU
RVNUX0JZX1JFRl8oVDcpIGY3LAotICAgICAgR1RFU1RfQllfUkVGXyhUOCkgZjgpIDogZjBfKGYw
KSwgZjFfKGYxKSwgZjJfKGYyKSwgZjNfKGYzKSwgZjRfKGY0KSwKLSAgICAgIGY1XyhmNSksIGY2
XyhmNiksIGY3XyhmNyksIGY4XyhmOCkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBm
MF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRf
KHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSB7
fQotCi0gIHRlbXBsYXRlIDxHVEVTVF85X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdU
RVNUXzlfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyks
Ci0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8pLCBm
N18odC5mN18pLCBmOF8odC5mOF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBs
ZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOV9UWVBF
TkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0
KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBM
RV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVw
bGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzlfVFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5m
MF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187
Ci0gICAgZjRfID0gdC5mNF87Ci0gICAgZjVfID0gdC5mNV87Ci0gICAgZjZfID0gdC5mNl87Ci0g
ICAgZjdfID0gdC5mN187Ci0gICAgZjhfID0gdC5mOF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9
Ci0KLSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87
Ci0gIFQ1IGY1XzsKLSAgVDYgZjZfOwotICBUNyBmN187Ci0gIFQ4IGY4XzsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotY2xhc3MgdHVwbGUgewotIHB1YmxpYzoKLSAg
dGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0
dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCks
IGY3XygpLCBmOF8oKSwKLSAgICAgIGY5XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1Rf
QllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVG
XyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAg
ICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNiwgR1RFU1RfQllf
UkVGXyhUNykgZjcsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQ4KSBmOCwgR1RFU1RfQllfUkVGXyhU
OSkgZjkpIDogZjBfKGYwKSwgZjFfKGYxKSwgZjJfKGYyKSwKLSAgICAgIGYzXyhmMyksIGY0Xyhm
NCksIGY1XyhmNSksIGY2XyhmNiksIGY3XyhmNyksIGY4XyhmOCksIGY5XyhmOSkge30KLQotICB0
dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8p
LCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwg
ZjdfKHQuZjdfKSwgZjhfKHQuZjhfKSwgZjlfKHQuZjlfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVT
VF8xMF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQp
IDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyks
IGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4
XyksCi0gICAgICBmOV8odC5mOV8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBs
ZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQ
RU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVSkm
IHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RV
UExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLSAg
dHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzEwX1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9
IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQu
ZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZf
OwotICAgIGY3XyA9IHQuZjdfOwotICAgIGY4XyA9IHQuZjhfOwotICAgIGY5XyA9IHQuZjlfOwot
ICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87
Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwot
ICBUOCBmOF87Ci0gIFQ5IGY5XzsKLX07Ci0KLS8vIDYuMS4zLjIgVHVwbGUgY3JlYXRpb24gZnVu
Y3Rpb25zLgotCi0vLyBLbm93biBsaW1pdGF0aW9uczogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5n
IGFuCi0vLyBzdGQ6OnRyMTo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gdG8gbWFrZV90dXBsZSgpLiAg
QW5kIHdlIGRvbid0Ci0vLyBpbXBsZW1lbnQgdGllKCkuCi0KLWlubGluZSB0dXBsZTw+IG1ha2Vf
dHVwbGUoKSB7IHJldHVybiB0dXBsZTw+KCk7IH0KLQotdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5B
TUVTXyhUKT4KLWlubGluZSBHVEVTVF8xX1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBm
MCkgewotICByZXR1cm4gR1RFU1RfMV9UVVBMRV8oVCkoZjApOwotfQotCi10ZW1wbGF0ZSA8R1RF
U1RfMl9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzJfVFVQTEVfKFQpIG1ha2VfdHVwbGUo
Y29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEpIHsKLSAgcmV0dXJuIEdURVNUXzJfVFVQTEVfKFQp
KGYwLCBmMSk7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUg
R1RFU1RfM19UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwg
Y29uc3QgVDImIGYyKSB7Ci0gIHJldHVybiBHVEVTVF8zX1RVUExFXyhUKShmMCwgZjEsIGYyKTsK
LX0KLQotdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF80X1RV
UExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYg
ZjIsCi0gICAgY29uc3QgVDMmIGYzKSB7Ci0gIHJldHVybiBHVEVTVF80X1RVUExFXyhUKShmMCwg
ZjEsIGYyLCBmMyk7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVCk+Ci1pbmxp
bmUgR1RFU1RfNV9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBm
MSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0KSB7Ci0gIHJl
dHVybiBHVEVTVF81X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQpOwotfQotCi10ZW1wbGF0
ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzZfVFVQTEVfKFQpIG1ha2Vf
dHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25z
dCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1KSB7Ci0gIHJldHVybiBHVEVTVF82
X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1KTsKLX0KLQotdGVtcGxhdGUgPEdURVNU
XzdfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF83X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNv
bnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYz
LCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1JiBmNSwgY29uc3QgVDYmIGY2KSB7Ci0gIHJldHVybiBH
VEVTVF83X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNik7Ci19Ci0KLXRlbXBs
YXRlIDxHVEVTVF84X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfOF9UVVBMRV8oVCkgbWFr
ZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNv
bnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBUNSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29u
c3QgVDcmIGY3KSB7Ci0gIHJldHVybiBHVEVTVF84X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywg
ZjQsIGY1LCBmNiwgZjcpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfOV9UWVBFTkFNRVNfKFQpPgot
aW5saW5lIEdURVNUXzlfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBU
MSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29u
c3QgVDUmIGY1LCBjb25zdCBUNiYgZjYsIGNvbnN0IFQ3JiBmNywKLSAgICBjb25zdCBUOCYgZjgp
IHsKLSAgcmV0dXJuIEdURVNUXzlfVFVQTEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2
LCBmNywgZjgpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhUKT4KLWlubGlu
ZSBHVEVTVF8xMF9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQxJiBm
MSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25zdCBU
NSYgZjUsIGNvbnN0IFQ2JiBmNiwgY29uc3QgVDcmIGY3LAotICAgIGNvbnN0IFQ4JiBmOCwgY29u
c3QgVDkmIGY5KSB7Ci0gIHJldHVybiBHVEVTVF8xMF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMs
IGY0LCBmNSwgZjYsIGY3LCBmOCwgZjkpOwotfQotCi0vLyA2LjEuMy4zIFR1cGxlIGhlbHBlciBj
bGFzc2VzLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+IHN0cnVjdCB0dXBsZV9zaXplOwot
Ci10ZW1wbGF0ZSA8R1RFU1RfMF9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RF
U1RfMF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAwOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNU
XzFfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMTsKLX07Ci0KLXRl
bXBsYXRlIDxHVEVTVF8yX1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8y
X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDI7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfM19U
VVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAzOwotfTsKLQotdGVtcGxh
dGUgPEdURVNUXzRfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzRfVFVQ
TEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF81X1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF81X1RVUExF
XyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDU7Ci19OwotCi10ZW1wbGF0ZSA8
R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfNl9UVVBMRV8o
VCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSA2OwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzdfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzdfVFVQTEVfKFQp
ID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVT
VF84X1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF84X1RVUExFXyhUKSA+
IHsKLSAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDg7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
OV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfOV9UVVBMRV8oVCkgPiB7
Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSA5OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzEw
X1RZUEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVCkgPiB7
Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAxMDsKLX07Ci0KLXRlbXBsYXRlIDxpbnQgaywg
Y2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgdHVwbGVfZWxlbWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUg
Z3Rlc3RfaW50ZXJuYWw6OlR1cGxlRWxlbWVudDwKLSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBs
ZT46OnZhbHVlKSwgaywgVHVwbGU+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RV
UExFX0VMRU1FTlRfKGssIFR1cGxlKSB0eXBlbmFtZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46
OnR5cGUKLQotLy8gNi4xLjMuNCBFbGVtZW50IGFjY2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2lu
dGVybmFsIHsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDwwPiB7Ci0gcHVibGljOgotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9F
TEVNRU5UXygwLCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYwXzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygwLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3Qg
VHVwbGUmIHQpIHsgcmV0dXJuIHQuZjBfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0
PDE+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUm
IHQpIHsgcmV0dXJuIHQuZjFfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVw
bGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDEsIFR1cGxl
KSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mMV87IH0KLX07Ci0K
LXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8Mj4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMiwg
VHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mMl87IH0gIC8vIE5PTElOVAot
Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1Rf
VFVQTEVfRUxFTUVOVF8oMiwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7
IHJldHVybiB0LmYyXzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDwzPiB7Ci0gcHVi
bGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhH
VEVTVF9UVVBMRV9FTEVNRU5UXygzLCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVy
biB0LmYzXzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0
aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygzLCBUdXBsZSkpCi0gIENvbnN0
RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjNfOyB9Ci19OwotCi10ZW1wbGF0ZSA8
PgotY2xhc3MgR2V0PDQ+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAg
c3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDQsIFR1cGxlKSkKLSAg
RmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjRfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0
ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1F
TlRfKDQsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5m
NF87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8NT4gewotIHB1YmxpYzoKLSAgdGVt
cGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVf
RUxFTUVOVF8oNSwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNV87IH0g
IC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZ
X1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0
IFR1cGxlJiB0KSB7IHJldHVybiB0LmY1XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdl
dDw2PiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVT
VF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxl
JiB0KSB7IHJldHVybiB0LmY2XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1
cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg2LCBUdXBs
ZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjZfOyB9Ci19Owot
Ci10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDc+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFz
cyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDcs
IFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjdfOyB9ICAvLyBOT0xJTlQK
LQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNU
X1RVUExFX0VMRU1FTlRfKDcsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkg
eyByZXR1cm4gdC5mN187IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OD4gewotIHB1
YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8o
R1RFU1RfVFVQTEVfRUxFTUVOVF8oOCwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1
cm4gdC5mOF87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3Rh
dGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOCwgVHVwbGUpKQotICBDb25z
dEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmY4XzsgfQotfTsKLQotdGVtcGxhdGUg
PD4KLWNsYXNzIEdldDw5PiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0g
IHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg5LCBUdXBsZSkpCi0g
IEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmY5XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxh
dGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVN
RU5UXyg5LCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQu
ZjlfOyB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUg
PGludCBrLCBHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQ
TEVfRUxFTUVOVF8oaywgR1RFU1RfMTBfVFVQTEVfKFQpKSkKLWdldChHVEVTVF8xMF9UVVBMRV8o
VCkmIHQpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkZpZWxkKHQpOwotfQot
Ci10ZW1wbGF0ZSA8aW50IGssIEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZf
KEdURVNUX1RVUExFX0VMRU1FTlRfKGssICBHVEVTVF8xMF9UVVBMRV8oVCkpKQotZ2V0KGNvbnN0
IEdURVNUXzEwX1RVUExFXyhUKSYgdCkgewotICByZXR1cm4gZ3Rlc3RfaW50ZXJuYWw6OkdldDxr
Pjo6Q29uc3RGaWVsZCh0KTsKLX0KLQotLy8gNi4xLjMuNSBSZWxhdGlvbmFsIG9wZXJhdG9ycwot
Ci0vLyBXZSBvbmx5IGltcGxlbWVudCA9PSBhbmQgIT0sIGFzIHdlIGRvbid0IGhhdmUgYSBuZWVk
IGZvciB0aGUgcmVzdCB5ZXQuCi0KLW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLS8vIFNh
bWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPGssIGs+OjpFcSh0MSwgdDIpIHJldHVybnMgdHJ1
ZSBpZiB0aGUKLS8vIGZpcnN0IGsgZmllbGRzIG9mIHQxIGVxdWFscyB0aGUgZmlyc3QgayBmaWVs
ZHMgb2YgdDIuCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcihrMSwgazIpIHdvdWxk
IGJlIGEgY29tcGlsZXIgZXJyb3IgaWYKLS8vIGsxICE9IGsyLgotdGVtcGxhdGUgPGludCBrU2l6
ZTEsIGludCBrU2l6ZTI+Ci1zdHJ1Y3QgU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I7Ci0K
LXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8MCwgMD4g
ewotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGUxLCBjbGFzcyBUdXBsZTI+Ci0gIHN0YXRpYyBib29s
IEVxKGNvbnN0IFR1cGxlMSYgLyogdDEgKi8sIGNvbnN0IFR1cGxlMiYgLyogdDIgKi8pIHsKLSAg
ICByZXR1cm4gdHJ1ZTsKLSAgfQotfTsKLQotdGVtcGxhdGUgPGludCBrPgotc3RydWN0IFNhbWVT
aXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPGssIGs+IHsKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxl
MSwgY2xhc3MgVHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIHQxLCBjb25z
dCBUdXBsZTImIHQyKSB7Ci0gICAgcmV0dXJuIFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9y
PGsgLSAxLCBrIC0gMT46OkVxKHQxLCB0MikgJiYKLSAgICAgICAgOjpzdGQ6OnRyMTo6Z2V0PGsg
LSAxPih0MSkgPT0gOjpzdGQ6OnRyMTo6Z2V0PGsgLSAxPih0Mik7Ci0gIH0KLX07Ci0KLX0gIC8v
IG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbAotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVT
XyhUKSwgR1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29u
c3QgR1RFU1RfMTBfVFVQTEVfKFQpJiB0LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBH
VEVTVF8xMF9UVVBMRV8oVSkmIHUpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6
ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjwKLSAgICAgIHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVf
KFQpID46OnZhbHVlLAotICAgICAgdHVwbGVfc2l6ZTxHVEVTVF8xMF9UVVBMRV8oVSkgPjo6dmFs
dWU+OjpFcSh0LCB1KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdU
RVNUXzEwX1RZUEVOQU1FU18oVSk+Ci1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdURVNU
XzEwX1RVUExFXyhUKSYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBf
VFVQTEVfKFUpJiB1KSB7IHJldHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFpcnMuCi0v
LyBVbmltcGxlbWVudGVkLgotCi19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1lc3BhY2Ug
c3RkCi0KLSN1bmRlZiBHVEVTVF8wX1RVUExFXwotI3VuZGVmIEdURVNUXzFfVFVQTEVfCi0jdW5k
ZWYgR1RFU1RfMl9UVVBMRV8KLSN1bmRlZiBHVEVTVF8zX1RVUExFXwotI3VuZGVmIEdURVNUXzRf
VFVQTEVfCi0jdW5kZWYgR1RFU1RfNV9UVVBMRV8KLSN1bmRlZiBHVEVTVF82X1RVUExFXwotI3Vu
ZGVmIEdURVNUXzdfVFVQTEVfCi0jdW5kZWYgR1RFU1RfOF9UVVBMRV8KLSN1bmRlZiBHVEVTVF85
X1RVUExFXwotI3VuZGVmIEdURVNUXzEwX1RVUExFXwotCi0jdW5kZWYgR1RFU1RfMF9UWVBFTkFN
RVNfCi0jdW5kZWYgR1RFU1RfMV9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfMl9UWVBFTkFNRVNf
Ci0jdW5kZWYgR1RFU1RfM19UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNF9UWVBFTkFNRVNfCi0j
dW5kZWYgR1RFU1RfNV9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfNl9UWVBFTkFNRVNfCi0jdW5k
ZWYgR1RFU1RfN19UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfOF9UWVBFTkFNRVNfCi0jdW5kZWYg
R1RFU1RfOV9UWVBFTkFNRVNfCi0jdW5kZWYgR1RFU1RfMTBfVFlQRU5BTUVTXwotCi0jdW5kZWYg
R1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0jdW5kZWYgR1RFU1RfQllfUkVGXwotI3Vu
ZGVmIEdURVNUX0FERF9SRUZfCi0jdW5kZWYgR1RFU1RfVFVQTEVfRUxFTUVOVF8KLQotI2VuZGlm
ICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RVUExFX0hfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR1cGxlLmgucHVtcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
YjYyNmUwNDlmMDg3ODBmZmNlOTZkNDg1MmNiOGVkNWQzZWY1ZjExLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHVwbGUuaC5wdW1wCisrKyAvZGV2L251bGwKQEAg
LTEsMzQ4ICswLDAgQEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gMTAgICQkIE1h
eGltdW0gbnVtYmVyIG9mIHR1cGxlIGZpZWxkcyB3ZSB3YW50IHRvIHN1cHBvcnQuCi0kJCBUaGlz
IG1ldGEgY29tbWVudCBmaXhlcyBhdXRvLWluZGVudGF0aW9uIGluIEVtYWNzLiB9fQotLy8gQ29w
eXJpZ2h0IDIwMDkgR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8g
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1
dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gSW1wbGVtZW50cyBh
IHN1YnNldCBvZiBUUjEgdHVwbGUgbmVlZGVkIGJ5IEdvb2dsZSBUZXN0IGFuZCBHb29nbGUgTW9j
ay4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFVQTEVfSF8KLSNkZWZpbmUgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwotCi0jaW5jbHVkZSA8dXRpbGl0eT4g
IC8vIEZvciA6OnN0ZDo6cGFpci4KLQotLy8gVGhlIGNvbXBpbGVyIHVzZWQgaW4gU3ltYmlhbiBo
YXMgYSBidWcgdGhhdCBwcmV2ZW50cyB1cyBmcm9tIGRlY2xhcmluZyB0aGUKLS8vIHR1cGxlIHRl
bXBsYXRlIGFzIGEgZnJpZW5kIChpdCBjb21wbGFpbnMgdGhhdCB0dXBsZSBpcyByZWRlZmluZWQp
LiAgVGhpcwotLy8gYnlwYXNzZXMgdGhlIGJ1ZyBieSBkZWNsYXJpbmcgdGhlIG1lbWJlcnMgdGhh
dCBzaG91bGQgb3RoZXJ3aXNlIGJlCi0vLyBwcml2YXRlIGFzIHB1YmxpYy4KLS8vIFN1biBTdHVk
aW8gdmVyc2lvbnMgPCAxMiBhbHNvIGhhdmUgdGhlIGFib3ZlIGJ1Zy4KLSNpZiBkZWZpbmVkKF9f
U1lNQklBTjMyX18pIHx8IChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA8IDB4
NTkwKQotIyBkZWZpbmUgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIHB1YmxpYzoKLSNl
bHNlCi0jIGRlZmluZSBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8gXAotICAgIHRlbXBs
YXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVSk+IGZyaWVuZCBjbGFzcyB0dXBsZTsgXAotICAg
cHJpdmF0ZToKLSNlbmRpZgotCi0vLyBWaXN1YWwgU3R1ZGlvIDIwMTAsIDIwMTIsIGFuZCAyMDEz
IGRlZmluZSBzeW1ib2xzIGluIHN0ZDo6dHIxIHRoYXQgY29uZmxpY3QKLS8vIHdpdGggb3VyIG93
biBkZWZpbml0aW9ucy4gVGhlcmVmb3JlIHVzaW5nIG91ciBvd24gdHVwbGUgZG9lcyBub3Qgd29y
ayBvbgotLy8gdGhvc2UgY29tcGlsZXJzLgotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0Nf
VkVSID49IDE2MDAgIC8qIDE2MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDEwICovCi0jIGVycm9yICJn
dGVzdCdzIHR1cGxlIGRvZXNuJ3QgY29tcGlsZSBvbiBWaXN1YWwgU3R1ZGlvIDIwMTAgb3IgbGF0
ZXIuIFwKLUdURVNUX1VTRV9PV05fVFIxX1RVUExFIG11c3QgYmUgc2V0IHRvIDAgb24gdGhvc2Ug
Y29tcGlsZXJzLiIKLSNlbmRpZgotCi0KLSRyYW5nZSBpIDAuLm4tMQotJHJhbmdlIGogMC4ubgot
JHJhbmdlIGsgMS4ubgotLy8gR1RFU1Rfbl9UVVBMRV8oVCkgaXMgdGhlIHR5cGUgb2YgYW4gbi10
dXBsZS4KLSNkZWZpbmUgR1RFU1RfMF9UVVBMRV8oVCkgdHVwbGU8PgotCi0kZm9yIGsgW1sKLSRy
YW5nZSBtIDAuLmstMQotJHJhbmdlIG0yIGsuLm4tMQotI2RlZmluZSBHVEVTVF8kKGspX1RVUExF
XyhUKSB0dXBsZTwkZm9yIG0sIFtbVCMjJG1dXSRmb3IgbTIgW1ssIHZvaWRdXT4KLQotXV0KLQot
Ly8gR1RFU1Rfbl9UWVBFTkFNRVNfKFQpIGRlY2xhcmVzIGEgbGlzdCBvZiBuIHR5cGVuYW1lcy4K
LQotJGZvciBqIFtbCi0kcmFuZ2UgbSAwLi5qLTEKLSNkZWZpbmUgR1RFU1RfJChqKV9UWVBFTkFN
RVNfKFQpICRmb3IgbSwgW1t0eXBlbmFtZSBUIyMkbV1dCi0KLQotXV0KLQotLy8gSW4gdGhlb3J5
LCBkZWZpbmluZyBzdHVmZiBpbiB0aGUgOjpzdGQgbmFtZXNwYWNlIGlzIHVuZGVmaW5lZAotLy8g
YmVoYXZpb3IuICBXZSBjYW4gZG8gdGhpcyBhcyB3ZSBhcmUgcGxheWluZyB0aGUgcm9sZSBvZiBh
IHN0YW5kYXJkCi0vLyBsaWJyYXJ5IHZlbmRvci4KLW5hbWVzcGFjZSBzdGQgewotbmFtZXNwYWNl
IHRyMSB7Ci0KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlwZW5hbWUgVCRpID0gdm9pZF1dPgotY2xh
c3MgdHVwbGU7Ci0KLS8vIEFueXRoaW5nIGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBH
b29nbGUgVGVzdCdzIElOVEVSTkFMCi0vLyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1Qg
Tk9UIEJFIFVTRUQgRElSRUNUTFkgaW4gdXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVy
bmFsIHsKLQotLy8gQnlSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhl
cndpc2UgaXQncyBjb25zdCBUJi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVm
IHsgdHlwZWRlZiBjb25zdCBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBCeVJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQK
LQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhU
KSB0eXBlbmFtZSA6OnN0ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQot
Ly8gQWRkUmVmPFQ+Ojp0eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0
J3MgVCYuICBUaGlzCi0vLyBpcyB0aGUgc2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5
cGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5
cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxU
Jj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVy
IGZvciBBZGRSZWYuCi0jZGVmaW5lIEdURVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0
cjE6Omd0ZXN0X2ludGVybmFsOjpBZGRSZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGlt
cGxlbWVudGluZyBnZXQ8az4oKS4KLXRlbXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBB
IGhlbHBlciBmb3IgaW1wbGVtZW50aW5nIHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxp
ZCBpcyB0cnVlCi0vLyBpZmYgayA8IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUg
VC4KLXRlbXBsYXRlIDxib29sIGtJbmRleFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4K
LXN0cnVjdCBUdXBsZUVsZW1lbnQ7Ci0KLQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChu
KV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAkaSwgR1RFU1RfJChu
KV9UVVBMRV8oVCkgPiB7Ci0gIHR5cGVkZWYgVCRpIHR5cGU7Ci19OwotCi0KLV1dCi19ICAvLyBu
YW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPD4KLWNsYXNzIHR1cGxlPD4gewot
IHB1YmxpYzoKLSAgdHVwbGUoKSB7fQotICB0dXBsZShjb25zdCB0dXBsZSYgLyogdCAqLykgIHt9
Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIC8qIHQgKi8pIHsgcmV0dXJuICp0aGlz
OyB9Ci19OwotCi0KLSRmb3IgayBbWwotJHJhbmdlIG0gMC4uay0xCi10ZW1wbGF0ZSA8R1RFU1Rf
JChrKV9UWVBFTkFNRVNfKFQpPgotY2xhc3MgJGlmIGsgPCBuIFtbR1RFU1RfJChrKV9UVVBMRV8o
VCldXSAkZWxzZSBbW3R1cGxlXV0gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmll
bmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogJGZvciBtLCBbW2Yk
KG0pXygpXV0ge30KLQotICBleHBsaWNpdCB0dXBsZSgkZm9yIG0sIFtbR1RFU1RfQllfUkVGXyhU
JG0pIGYkbV1dKSA6IFtbXV0KLSRmb3IgbSwgW1tmJChtKV8oZiRtKV1dIHt9Ci0KLSAgdHVwbGUo
Y29uc3QgdHVwbGUmIHQpIDogJGZvciBtLCBbW2YkKG0pXyh0LmYkKG0pXyldXSB7fQotCi0gIHRl
bXBsYXRlIDxHVEVTVF8kKGspX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXyQo
aylfVFVQTEVfKFUpJiB0KSA6ICRmb3IgbSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotJGlm
IGsgPT0gMiBbWwotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBs
ZShjb25zdCA6OnN0ZDo6cGFpcjxVMCwgVTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vj
b25kKSB7fQotCi1dXQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0
dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhV
KT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewot
ICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0kaWYgayA9PSAyIFtbCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBVMCwgdHlwZW5hbWUgVTE+Ci0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgOjpz
dGQ6OnBhaXI8VTAsIFUxPiYgcCkgewotICAgIGYwXyA9IHAuZmlyc3Q7Ci0gICAgZjFfID0gcC5z
ZWNvbmQ7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLV1dCi0KLSAgR1RFU1RfREVDTEFSRV9U
VVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhVKT4K
LSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXyQoaylfVFVQTEVfKFUpJiB0KSB7Ci0KLSRm
b3IgbSBbWwotICAgIGYkKG0pXyA9IHQuZiQobSlfOwotCi1dXQotICAgIHJldHVybiAqdGhpczsK
LSAgfQotCi0KLSRmb3IgbSBbWwotICBUJG0gZiQobSlfOwotCi1dXQotfTsKLQotCi1dXQotLy8g
Ni4xLjMuMiBUdXBsZSBjcmVhdGlvbiBmdW5jdGlvbnMuCi0KLS8vIEtub3duIGxpbWl0YXRpb25z
OiB3ZSBkb24ndCBzdXBwb3J0IHBhc3NpbmcgYW4KLS8vIHN0ZDo6dHIxOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxUPiB0byBtYWtlX3R1cGxlKCkuICBBbmQgd2UgZG9uJ3QKLS8vIGltcGxlbWVudCB0aWUo
KS4KLQotaW5saW5lIHR1cGxlPD4gbWFrZV90dXBsZSgpIHsgcmV0dXJuIHR1cGxlPD4oKTsgfQot
Ci0kZm9yIGsgW1sKLSRyYW5nZSBtIDAuLmstMQotCi10ZW1wbGF0ZSA8R1RFU1RfJChrKV9UWVBF
TkFNRVNfKFQpPgotaW5saW5lIEdURVNUXyQoaylfVFVQTEVfKFQpIG1ha2VfdHVwbGUoJGZvciBt
LCBbW2NvbnN0IFQkbSYgZiRtXV0pIHsKLSAgcmV0dXJuIEdURVNUXyQoaylfVFVQTEVfKFQpKCRm
b3IgbSwgW1tmJG1dXSk7Ci19Ci0KLV1dCi0KLS8vIDYuMS4zLjMgVHVwbGUgaGVscGVyIGNsYXNz
ZXMuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUdXBsZT4gc3RydWN0IHR1cGxlX3NpemU7Ci0KLQot
JGZvciBqIFtbCi10ZW1wbGF0ZSA8R1RFU1RfJChqKV9UWVBFTkFNRVNfKFQpPgotc3RydWN0IHR1
cGxlX3NpemU8R1RFU1RfJChqKV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBpbnQgdmFs
dWUgPSAkajsKLX07Ci0KLQotXV0KLXRlbXBsYXRlIDxpbnQgaywgY2xhc3MgVHVwbGU+Ci1zdHJ1
Y3QgdHVwbGVfZWxlbWVudCB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgZ3Rlc3RfaW50ZXJuYWw6OlR1
cGxlRWxlbWVudDwKLSAgICAgIGsgPCAodHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlKSwgaywgVHVw
bGU+Ojp0eXBlIHR5cGU7Ci19OwotCi0jZGVmaW5lIEdURVNUX1RVUExFX0VMRU1FTlRfKGssIFR1
cGxlKSB0eXBlbmFtZSB0dXBsZV9lbGVtZW50PGssIFR1cGxlID46OnR5cGUKLQotLy8gNi4xLjMu
NCBFbGVtZW50IGFjY2Vzcy4KLQotbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsIHsKLQotCi0kZm9y
IGkgW1sKLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8JGk+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRl
IDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1F
TlRfKCRpLCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfSAg
Ly8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllf
UkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygkaSwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0
IFR1cGxlJiB0KSB7IHJldHVybiB0LmYkKGkpXzsgfQotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNw
YWNlIGd0ZXN0X2ludGVybmFsCi0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFN
RVNfKFQpPgotR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oaywgR1RFU1RfJChu
KV9UVVBMRV8oVCkpKQotZ2V0KEdURVNUXyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBn
dGVzdF9pbnRlcm5hbDo6R2V0PGs+OjpGaWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBH
VEVTVF8kKG4pX1RZUEVOQU1FU18oVCk+Ci1HVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1F
TlRfKGssICBHVEVTVF8kKG4pX1RVUExFXyhUKSkpCi1nZXQoY29uc3QgR1RFU1RfJChuKV9UVVBM
RV8oVCkmIHQpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQo
dCk7Ci19Ci0KLS8vIDYuMS4zLjUgUmVsYXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBp
bXBsZW1lbnQgPT0gYW5kICE9LCBhcyB3ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3Qg
eWV0LgotCi1uYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJl
Zml4Q29tcGFyYXRvcjxrLCBrPjo6RXEodDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBm
aXJzdCBrIGZpZWxkcyBvZiB0MSBlcXVhbHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8g
U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVy
IGVycm9yIGlmCi0vLyBrMSAhPSBrMi4KLXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUy
Pgotc3RydWN0IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgot
c3RydWN0IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUg
PGNsYXNzIFR1cGxlMSwgY2xhc3MgVHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBs
ZTEmIC8qIHQxICovLCBjb25zdCBUdXBsZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7
Ci0gIH0KLX07Ci0KLXRlbXBsYXRlIDxpbnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4
Q29tcGFyYXRvcjxrLCBrPiB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxl
Mj4KLSAgc3RhdGljIGJvb2wgRXEoY29uc3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0Mikg
ewotICAgIHJldHVybiBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+
OjpFcSh0MSwgdDIpICYmCi0gICAgICAgIDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6
c3RkOjp0cjE6OmdldDxrIC0gMT4odDIpOwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rl
c3RfaW50ZXJuYWwKLQotdGVtcGxhdGUgPEdURVNUXyQobilfVFlQRU5BTUVTXyhUKSwgR1RFU1Rf
JChuKV9UWVBFTkFNRVNfKFUpPgotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHVEVTVF8k
KG4pX1RVUExFXyhUKSYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfJChu
KV9UVVBMRV8oVSkmIHUpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpTYW1lU2l6ZVR1cGxl
UHJlZml4Q29tcGFyYXRvcjwKLSAgICAgIHR1cGxlX3NpemU8R1RFU1RfJChuKV9UVVBMRV8oVCkg
Pjo6dmFsdWUsCi0gICAgICB0dXBsZV9zaXplPEdURVNUXyQobilfVFVQTEVfKFUpID46OnZhbHVl
Pjo6RXEodCwgdSk7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdU
RVNUXyQobilfVFlQRU5BTUVTXyhVKT4KLWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR1RF
U1RfJChuKV9UVVBMRV8oVCkmIHQsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNU
XyQobilfVFVQTEVfKFUpJiB1KSB7IHJldHVybiAhKHQgPT0gdSk7IH0KLQotLy8gNi4xLjQgUGFp
cnMuCi0vLyBVbmltcGxlbWVudGVkLgotCi19ICAvLyBuYW1lc3BhY2UgdHIxCi19ICAvLyBuYW1l
c3BhY2Ugc3RkCi0KLQotJGZvciBqIFtbCi0jdW5kZWYgR1RFU1RfJChqKV9UVVBMRV8KLQotXV0K
LQotCi0kZm9yIGogW1sKLSN1bmRlZiBHVEVTVF8kKGopX1RZUEVOQU1FU18KLQotXV0KLQotI3Vu
ZGVmIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8K
LSN1bmRlZiBHVEVTVF9BRERfUkVGXwotI3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNl
bmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC10eXBlLXV0aWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv
aW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmgKaW5kZXggMjhlNDExMjQ1MzYxYzA4ZjI4NzA3ZTky
NDhlNmQwMzMyMGU2ODYxOC4uYjg3YTJlMmNhY2UzM2I4Y2YxZDQyYTJiM2JkYjQ0Y2JiOTBkYzI2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC10eXBlLXV0aWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oCkBAIC0xLDcgKzEsMyBAQAotLy8g
VGhpcyBmaWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0
LXR5cGUtdXRpbC5oLnB1bXAKLS8vIERPIE5PVCBFRElUIEJZIEhBTkQhISEKLQogLy8gQ29weXJp
Z2h0IDIwMDggR29vZ2xlIEluYy4KIC8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAvLwpAQCAtMzEs
MTkgKzI3LDEzIEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQogLy8gVHlw
ZSB1dGlsaXRpZXMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1l
dGVyaXplZAotLy8gdGVzdHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAg
RE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0
IDUwIHR5cGVzIGluIGEgbGlzdCwgYW5kIGF0IG1vc3QgNTAKLS8vIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0cyBpbiBvbmUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBj
b250YWN0IGdvb2dsZXRlc3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAot
Ly8gbW9yZS4KKy8vIHRlc3RzLgogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRF
CiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxf
SF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVf
VVRJTF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
VFlQRV9VVElMX0hfCiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAK
QEAgLTc0LDE1NjggKzY0LDQzIEBAIGlubGluZSBzdGQ6OnN0cmluZyBDYW5vbmljYWxpemVGb3JT
dGRMaWJWZXJzaW9uaW5nKHN0ZDo6c3RyaW5nIHMpIHsKICAgcmV0dXJuIHM7CiB9CiAKLS8vIEdl
dFR5cGVOYW1lPFQ+KCkgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdHlwZSBULgot
Ly8gTkI6IFRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1c2VkIGluIEdvb2dsZSBNb2NrLCBzbyBkb24n
dCBtb3ZlIGl0IGluc2lkZSBvZgotLy8gdGhlIHR5cGVkLXRlc3Qtb25seSBzZWN0aW9uIGJlbG93
LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsKLSMg
aWYgR1RFU1RfSEFTX1JUVEkKLQotICBjb25zdCBjaGFyKiBjb25zdCBuYW1lID0gdHlwZWlkKFQp
Lm5hbWUoKTsKLSMgIGlmIEdURVNUX0hBU19DWFhBQklfSF8gfHwgZGVmaW5lZChfX0hQX2FDQykK
KyNpZiBHVEVTVF9IQVNfUlRUSQorLy8gR2V0VHlwZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8m
KSByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0eXBlIFQuCitpbmxpbmUgc3RkOjpz
dHJpbmcgR2V0VHlwZU5hbWUoY29uc3Qgc3RkOjp0eXBlX2luZm8mIHR5cGUpIHsKKyAgY29uc3Qg
Y2hhciogY29uc3QgbmFtZSA9IHR5cGUubmFtZSgpOworI2lmIEdURVNUX0hBU19DWFhBQklfSF8g
fHwgZGVmaW5lZChfX0hQX2FDQykKICAgaW50IHN0YXR1cyA9IDA7CiAgIC8vIGdjYydzIGltcGxl
bWVudGF0aW9uIG9mIHR5cGVpZChUKS5uYW1lKCkgbWFuZ2xlcyB0aGUgdHlwZSBuYW1lLAogICAv
LyBzbyB3ZSBoYXZlIHRvIGRlbWFuZ2xlIGl0LgotIyAgIGlmIEdURVNUX0hBU19DWFhBQklfSF8K
KyNpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCiAgIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7Ci0j
ICAgZW5kaWYgIC8vIEdURVNUX0hBU19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFibGVf
bmFtZSA9IF9fY3hhX2RlbWFuZ2xlKG5hbWUsIDAsIDAsICZzdGF0dXMpOworI2VuZGlmICAvLyBH
VEVTVF9IQVNfQ1hYQUJJX0hfCisgIGNoYXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9k
ZW1hbmdsZShuYW1lLCBudWxscHRyLCBudWxscHRyLCAmc3RhdHVzKTsKICAgY29uc3Qgc3RkOjpz
dHJpbmcgbmFtZV9zdHIoc3RhdHVzID09IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7CiAgIGZy
ZWUocmVhZGFibGVfbmFtZSk7CiAgIHJldHVybiBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9u
aW5nKG5hbWVfc3RyKTsKLSMgIGVsc2UKKyNlbHNlCiAgIHJldHVybiBuYW1lOwotIyAgZW5kaWYg
IC8vIEdURVNUX0hBU19DWFhBQklfSF8gfHwgX19IUF9hQ0MKLQotIyBlbHNlCi0KLSAgcmV0dXJu
ICI8dHlwZT4iOwotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorI2VuZGlmICAvLyBHVEVT
VF9IQVNfQ1hYQUJJX0hfIHx8IF9fSFBfYUNDCiB9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJ
CiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0K
LS8vIEFzc2VydHlUeXBlRXE8VDEsIFQyPjo6dHlwZSBpcyBkZWZpbmVkIGlmZiBUMSBhbmQgVDIg
YXJlIHRoZSBzYW1lCi0vLyB0eXBlLiAgVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBpbGUtdGlt
ZSBhc3NlcnRpb24gdG8gZW5zdXJlIHRoYXQKLS8vIHR3byB0eXBlcyBhcmUgZXF1YWwuCi0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgQXNzZXJ0VHlwZUVxOwot
CisvLyBHZXRUeXBlTmFtZTxUPigpIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5
cGUgVCBpZiBhbmQgb25seSBpZgorLy8gUlRUSSBpcyBlbmFibGVkLCBvdGhlcndpc2UgaXQgcmV0
dXJucyBhIGR1bW15IHR5cGUgbmFtZS4KKy8vIE5COiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNl
ZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YKKy8vIHRoZSB0eXBl
ZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0
IEFzc2VydFR5cGVFcTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBlOwotfTsKK3N0ZDo6c3Ry
aW5nIEdldFR5cGVOYW1lKCkgeworI2lmIEdURVNUX0hBU19SVFRJCisgIHJldHVybiBHZXRUeXBl
TmFtZSh0eXBlaWQoVCkpOworI2Vsc2UKKyAgcmV0dXJuICI8dHlwZT4iOworI2VuZGlmICAvLyBH
VEVTVF9IQVNfUlRUSQorfQogCi0vLyBBIHVuaXF1ZSB0eXBlIHVzZWQgYXMgdGhlIGRlZmF1bHQg
dmFsdWUgZm9yIHRoZSBhcmd1bWVudHMgb2YgY2xhc3MKLS8vIHRlbXBsYXRlIFR5cGVzLiAgVGhp
cyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUgdmFyaWFkaWMgdGVtcGxhdGVzCi0vLyAoZS5nLiBUeXBl
czxpbnQ+LCBUeXBlPGludCwgZG91YmxlPiwgYW5kIGV0YyksIHdoaWNoIEMrKyBkb2Vzbid0Ci0v
LyBzdXBwb3J0IGRpcmVjdGx5LgorLy8gQSB1bmlxdWUgdHlwZSBpbmRpY2F0aW5nIGFuIGVtcHR5
IG5vZGUKIHN0cnVjdCBOb25lIHt9OwogCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBzdHJ1
Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBlIGxp
c3RzLiAgSW4gcGFydGljdWxhciwgVHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJlc2Vu
dHMgYSB0eXBlIGxpc3Qgd2l0aCBOIHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBpdC4K
LS8vIEV4Y2VwdCBmb3IgVHlwZXMwLCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdv
IG1lbWJlciB0eXBlczoKLS8vIEhlYWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0LCBh
bmQgVGFpbCBmb3IgdGhlIHJlc3Qgb2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdHlw
ZSBsaXN0Lgotc3RydWN0IFR5cGVzMCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGggMSwg
MiwgMywgYW5kIHNvIG9uLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXMx
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgVHlwZXMyIHsKLSAgdHlwZWRl
ZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTxUMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotc3RydWN0IFR5cGVzMyB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI8VDIsIFQzPiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0Pgotc3RydWN0IFR5cGVzNCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBl
czM8VDIsIFQzLCBUND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+Ci1zdHJ1Y3QgVHlw
ZXM1IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDxUMiwgVDMsIFQ0LCBU
NT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1
Y3QgVHlwZXM2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNTxUMiwgVDMs
IFQ0LCBUNSwgVDY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNz4KLXN0cnVjdCBUeXBlczcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXM2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+
Ci1zdHJ1Y3QgVHlwZXM4IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNzxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+
Ci1zdHJ1Y3QgVHlwZXM5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzODxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTA+Ci1zdHJ1Y3QgVHlwZXMxMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsK
LSAgdHlwZWRlZiBUeXBlczk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExPgotc3RydWN0IFR5cGVzMTEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMxMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyPgotc3RydWN0IFR5cGVzMTIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXMxMTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMz4KLXN0cnVjdCBUeXBlczEzIHsKLSAg
dHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0Pgotc3RydWN0IFR5cGVzMTQgewotICB0eXBlZGVmIFQxIEhl
YWQ7Ci0gIHR5cGVkZWYgVHlwZXMxMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1Pgotc3RydWN0IFR5cGVzMTUgewotICB0eXBlZGVm
IFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1PiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNj4KLXN0cnVjdCBUeXBlczE2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVm
IFR5cGVzMTU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgICAgVDE2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3Pgotc3RydWN0IFR5cGVzMTcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXMxNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4Pgotc3RydWN0IFR5cGVzMTggewotICB0eXBlZGVmIFQx
IEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMxNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4PiBUYWls
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOT4KLXN0cnVjdCBUeXBlczE5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMTg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwPgotc3RydWN0IFR5cGVzMjAgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMxOTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMD4gVGFpbDsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1zdHJ1Y3QgVHlwZXMyMSB7Ci0gIHR5cGVkZWYg
VDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjI+Ci1zdHJ1Y3QgVHlwZXMyMiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlw
ZWRlZiBUeXBlczIxPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
Mj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzPgotc3RydWN0IFR5cGVzMjMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXMyNCB7
Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczIzPFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1zdHJ1Y3QgVHlwZXMyNSB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlczI0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjY+Ci1zdHJ1Y3QgVHlwZXMyNiB7Ci0gIHR5
cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2PiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3Pgotc3RydWN0IFR5cGVzMjcgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMyNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1
Y3QgVHlwZXMyOCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczI3PFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
Mjk+Ci1zdHJ1Y3QgVHlwZXMyOSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBl
czI4PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMD4KLXN0cnVjdCBUeXBlczMwIHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMjk8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVzMzEg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMDxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUg
VDMyPgotc3RydWN0IFR5cGVzMzIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMzMTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzI+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMz4KLXN0cnVjdCBUeXBl
czMzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzI8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzM+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0Pgotc3RydWN0IFR5
cGVzMzQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzMzxUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
ICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlw
ZW5hbWUgVDM1Pgotc3RydWN0IFR5cGVzMzUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXMzNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgot
c3RydWN0IFR5cGVzMzYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNTxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBU
MTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1l
IFQzNz4KLXN0cnVjdCBUeXBlczM3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMzY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4Pgotc3RydWN0IFR5cGVzMzggewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1l
IFQzOCwgdHlwZW5hbWUgVDM5Pgotc3RydWN0IFR5cGVzMzkgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXMzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gVGFpbDsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0
eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MD4KLXN0cnVjdCBUeXBlczQwIHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MD4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQz
MCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFt
ZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlw
ZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+
Ci1zdHJ1Y3QgVHlwZXM0MSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQw
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
IFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwK
LSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBU
MzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0Mj4KLXN0cnVj
dCBUeXBlczQyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDE8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVu
YW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0
eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0g
ICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5
LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1l
IFQ0Mz4KLXN0cnVjdCBUeXBlczQzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzNDI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDM+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0Pgotc3RydWN0IFR5cGVz
NDQgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0MzxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0PiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
LCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVz
NDUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0NDxUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDU+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQz
OCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFt
ZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlw
ZW5hbWUgVDQ2Pgotc3RydWN0IFR5cGVzNDYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVk
ZWYgVHlwZXM0NTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAot
ICAgICAgVDQ0LCBUNDUsIFQ0Nj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0
MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFt
ZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4KLXN0
cnVjdCBUeXBlczQ3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDY8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1
LCBUNDYsIFQ0Nz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0
eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5
cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4
Pgotc3RydWN0IFR5cGVzNDggewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0
NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0
LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIs
IHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUg
VDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBU
NDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5h
bWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5
cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5Pgotc3RydWN0IFR5cGVzNDkgewotICB0eXBlZGVmIFQx
IEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICAg
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBU
NDEsIFQ0MiwgVDQzLAotICAgICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwK
LSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBU
MTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5h
bWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5
cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAg
ICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQs
IHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUg
VDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVu
YW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0
eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDksIHR5
cGVuYW1lIFQ1MD4KLXN0cnVjdCBUeXBlczUwIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzNDk8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywK
LSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVGFpbDsKLX07Ci0KLQot
fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0KLS8vIFdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0
aGUgdXNlcnMgdG8gd3JpdGUgVHlwZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxk
IHJlcXVpcmUgdGhlbSB0byBjb3VudCB0aGUgbGVuZ3RoLiAgVHlwZXM8Li4uPiBpcyBtdWNoCi0v
LyBlYXNpZXIgdG8gd3JpdGUsIGJ1dCBnZW5lcmF0ZXMgaG9ycmlibGUgbWVzc2FnZXMgd2hlbiB0
aGVyZSBpcyBhCi0vLyBjb21waWxlciBlcnJvciwgYXMgZ2NjIGluc2lzdHMgb24gcHJpbnRpbmcg
b3V0IGVhY2ggdGVtcGxhdGUKLS8vIGFyZ3VtZW50LCBldmVuIGlmIGl0IGhhcyB0aGUgZGVmYXVs
dCB2YWx1ZSAodGhpcyBtZWFucyBUeXBlczxpbnQ+Ci0vLyB3aWxsIGFwcGVhciBhcyBUeXBlczxp
bnQsIE5vbmUsIE5vbmUsIC4uLiwgTm9uZT4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgot
Ly8KLS8vIE91ciBzb2x1dGlvbiBpcyB0byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3
byBhcHByb2FjaGVzOiBhCi0vLyB1c2VyIHdvdWxkIHdyaXRlIFR5cGVzPFQxLCAuLi4sIFROPiwg
YW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFR5cGVzTjxUMSwgLi4u
LCBUTj4gaW50ZXJuYWxseSB0byBtYWtlIGVycm9yIG1lc3NhZ2VzCi0vLyByZWFkYWJsZS4gIFRo
ZSB0cmFuc2xhdGlvbiBpcyBkb25lIGJ5IHRoZSAndHlwZScgbWVtYmVyIG9mIHRoZQotLy8gVHlw
ZXMgdGVtcGxhdGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlw
ZW5hbWUgVDIgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMyA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUNCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ1ID0gaW50
ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUg
VDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0
eXBlbmFtZSBUOSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMTAgPSBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICB0eXBlbmFtZSBUMTEgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDEyID0gaW50
ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDEzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1l
IFQxNCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQxNSA9IGludGVybmFsOjpOb25l
LCB0eXBlbmFtZSBUMTYgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMTcgPSBpbnRl
cm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDE4ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUg
VDE5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyMCA9IGludGVybmFsOjpOb25lLAotICAg
IHR5cGVuYW1lIFQyMSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjIgPSBpbnRlcm5hbDo6
Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjMgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI0ID0g
aW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDI1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVu
YW1lIFQyNiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQyNyA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUMjggPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjkgPSBp
bnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDMwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5h
bWUgVDMxID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzMiA9IGludGVybmFsOjpOb25lLAot
ICAgIHR5cGVuYW1lIFQzMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMzQgPSBpbnRlcm5h
bDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMzUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM2
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDM3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5
cGVuYW1lIFQzOCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzOSA9IGludGVybmFs
OjpOb25lLCB0eXBlbmFtZSBUNDAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDEg
PSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlw
ZW5hbWUgVDQzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ0NCA9IGludGVybmFsOjpOb25l
LAotICAgIHR5cGVuYW1lIFQ0NSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNDYgPSBpbnRl
cm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUg
VDQ4ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQ5ID0gaW50ZXJuYWw6Ok5vbmUs
IHR5cGVuYW1lIFQ1MCA9IGludGVybmFsOjpOb25lPgotc3RydWN0IFR5cGVzIHsKLSAgdHlwZWRl
ZiBpbnRlcm5hbDo6VHlwZXM1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAg
ICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVHlwZXM8aW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50
ZXJuYWw6OlR5cGVzMCB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLXN0cnVjdCBU
eXBlczxUMSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsK
LSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxPFQxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjxUMSwgVDI+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczM8VDEsIFQyLCBUMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQy
LCBUMywgVDQsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNjxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+
IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVm
IGludGVybmFsOjpUeXBlczg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczEwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExPgot
c3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTI+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMjxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMj4gdHlwZTsKLX07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMxNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAot
ICAgICAgVDEzLCBUMTQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE1PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMs
IFQxNCwgVDE1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICBUMTYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE2PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBU
MTMsIFQxNCwgVDE1LCBUMTY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3Pgot
c3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzMTc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
VDE2LCBUMTcsIFQxOCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTks
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxOTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMT4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzMjE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyPgotc3Ry
dWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MjI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMz4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlw
ZXMyMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAot
ICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyND4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50
ZXJuYWw6OlR5cGVzMjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
NiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIw
LAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1l
IFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNj4KLXN0cnVjdCBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjY8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMyNzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAg
ICBUMjc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQx
NSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBU
Mjg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOT4KLXN0cnVjdCBU
eXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBU
MjgsIFQyOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzA+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3
LCBUMjgsIFQyOSwgVDMwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBU
MjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQx
NSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMxPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBU
MzAsCi0gICAgVDMxLCBUMzIsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczMyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwg
VDMyLCBUMzMsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQ+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBU
MzMsIFQzNCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4g
ewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLXN0
cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBp
bnRlcm5hbDo6VHlwZXMzNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAg
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGlu
dGVybmFsOjpUeXBlczM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1l
IFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBl
bmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAg
dHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0
eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQy
OCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFt
ZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlw
ZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzc+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlw
ZWRlZiBpbnRlcm5hbDo6VHlwZXMzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOD4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzODxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAg
ICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDA+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMw
LAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBU
MjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksCi0gICAgICBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAot
ICAgIHR5cGVuYW1lIFQ0MT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
Ci0gICAgICBUNDE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBU
MzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5h
bWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5
cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVk
ZWYgaW50ZXJuYWw6OlR5cGVzNDI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0g
ICAgICBUNDEsIFQ0Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBl
bmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAg
dHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLXN0cnVjdCBUeXBlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAg
dHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0
MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5
cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMy
LCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1l
IFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUg
VDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVu
YW1lIFQ0ND4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0g
ICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLCBUNDQsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAg
ICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1Pgotc3RydWN0IFR5cGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
NDU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQz
LCBUNDQsIFQ0NT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0
eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQz
MywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFt
ZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlw
ZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBl
bmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+
IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0NjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcs
IFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDY+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
LCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1l
IFQ0NiwgdHlwZW5hbWUgVDQ3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzNDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEs
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQy
OSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsCi0gICAgVDQ2LCBUNDcsIFQ0OCwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDg8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBU
NDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFt
ZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlw
ZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIs
IHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUg
VDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBU
NDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5h
bWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5
cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgs
IFQ0OSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM0OTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IHR5cGU7Ci19OwotCi1uYW1lc3BhY2UgaW50ZXJuYWwg
ewotCiAjIGRlZmluZSBHVEVTVF9URU1QTEFURV8gdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNz
CiAKIC8vIFRoZSB0ZW1wbGF0ZSAic2VsZWN0b3IiIHN0cnVjdCBUZW1wbGF0ZVNlbDxUbXBsPiBp
cyB1c2VkIHRvCkBAIC0xNjU3LDE2OTIgKzEyMiw2MiBAQCBzdHJ1Y3QgVGVtcGxhdGVTZWwgewog
IyBkZWZpbmUgR1RFU1RfQklORF8oVG1wbFNlbCwgVCkgXAogICBUbXBsU2VsOjp0ZW1wbGF0ZSBC
aW5kPFQ+Ojp0eXBlCiAKLS8vIEEgdW5pcXVlIHN0cnVjdCB0ZW1wbGF0ZSB1c2VkIGFzIHRoZSBk
ZWZhdWx0IHZhbHVlIGZvciB0aGUKLS8vIGFyZ3VtZW50cyBvZiBjbGFzcyB0ZW1wbGF0ZSBUZW1w
bGF0ZXMuICBUaGlzIGFsbG93cyB1cyB0byBzaW11bGF0ZQotLy8gdmFyaWFkaWMgdGVtcGxhdGVz
IChlLmcuIFRlbXBsYXRlczxpbnQ+LCBUZW1wbGF0ZXM8aW50LCBkb3VibGU+LAotLy8gYW5kIGV0
YyksIHdoaWNoIEMrKyBkb2Vzbid0IHN1cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBOb25lVCB7fTsKLQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3Ry
dWN0IGFuZCBzdHJ1Y3QgdGVtcGxhdGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdGVtcGxh
dGUgbGlzdHMuICBJbiBwYXJ0aWN1bGFyLCBUZW1wbGF0ZXNOPFQxLCBUMiwgLi4uLAotLy8gVE4+
IHJlcHJlc2VudHMgYSBsaXN0IG9mIE4gdGVtcGxhdGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKS4g
IEV4Y2VwdAotLy8gZm9yIFRlbXBsYXRlczAsIGV2ZXJ5IHN0cnVjdCBpbiB0aGUgZmFtaWx5IGhh
cyB0d28gbWVtYmVyIHR5cGVzOgotLy8gSGVhZCBmb3IgdGhlIHNlbGVjdG9yIG9mIHRoZSBmaXJz
dCB0ZW1wbGF0ZSBpbiB0aGUgbGlzdCwgYW5kIFRhaWwKLS8vIGZvciB0aGUgcmVzdCBvZiB0aGUg
bGlzdC4KLQotLy8gVGhlIGVtcHR5IHRlbXBsYXRlIGxpc3QuCi1zdHJ1Y3QgVGVtcGxhdGVzMCB7
fTsKLQotLy8gVGVtcGxhdGUgbGlzdHMgb2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXMxIHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIFRhaWw7Ci19
OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3Ry
dWN0IFRlbXBsYXRlczIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczE8VDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVjdCBUZW1w
bGF0ZXMzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMyPFQyLCBUMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUND4KLXN0cnVjdCBUZW1wbGF0ZXM0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzPFQyLCBUMywgVDQ+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNT4KLXN0
cnVjdCBUZW1wbGF0ZXM1IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM0PFQyLCBUMywgVDQsIFQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNj4KLXN0cnVjdCBUZW1wbGF0ZXM2IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM1PFQyLCBUMywgVDQsIFQ1LCBUNj4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0
IFRlbXBsYXRlczcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVm
IFRlbXBsYXRlczY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDg+
Ci1zdHJ1Y3QgVGVtcGxhdGVzOCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM5IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM4PFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RF
TVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwPgotc3RydWN0IFRlbXBsYXRlczEw
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM5
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTEgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczEwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMj4KLXN0cnVjdCBUZW1wbGF0ZXMxMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0cnVjdCBU
ZW1wbGF0ZXMxMyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMTI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQx
MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0
IFRlbXBsYXRlczE0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZXMxMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTUgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE0PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBU
MTU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTY+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTYg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE1
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNz4KLXN0cnVjdCBUZW1wbGF0ZXMxNyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTY8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTc+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdU
RVNUX1RFTVBMQVRFXyBUMTg+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTggewotICB0eXBlZGVmIFRlbXBs
YXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE3PFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwg
VDE3LCBUMTg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVT
VF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVf
IFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVT
VF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRF
XyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOT4KLXN0
cnVjdCBUZW1wbGF0ZXMxOSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzMTg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+
Ci1zdHJ1Y3QgVGVtcGxhdGVzMjAgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwot
ICB0eXBlZGVmIFRlbXBsYXRlczE5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExB
VEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVT
VF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExB
VEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBH
VEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBM
QVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjEgewotICB0
eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIwPFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
ICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyPgotc3RydWN0IFRlbXBsYXRlczIyIHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMTxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzPgotc3RydWN0IFRlbXBsYXRlczIzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBI
ZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczIzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjUg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI0
PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQs
Ci0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RF
TVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQx
NywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9U
RU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXMyNiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVT
VF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVf
IFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVT
VF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRF
XyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RF
U1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBU
Mjc+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFk
OwotICB0eXBlZGVmIFRlbXBsYXRlczI2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjc+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVf
IFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1Rf
VEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVN
UExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIz
LCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RF
TVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
OD4KLXN0cnVjdCBUZW1wbGF0ZXMyOCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOD4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5Pgotc3RydWN0IFRlbXBsYXRlczI5IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMD4KLXN0cnVjdCBUZW1wbGF0ZXMzMCB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjk8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzA+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxPgotc3RydWN0IFRlbXBsYXRlczMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAg
ICBUMjksIFQzMCwgVDMxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1Q
TEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjks
IEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVN
UExBVEVfIFQzMj4KLXN0cnVjdCBUZW1wbGF0ZXMzMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
ICAgVDI5LCBUMzAsIFQzMSwgVDMyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RF
U1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMz4KLXN0cnVjdCBUZW1wbGF0ZXMz
MyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MzI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RF
TVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywg
R1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8g
VDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNU
X1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVf
IFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVT
VF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQz
MCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9U
RU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+Ci1zdHJ1Y3QgVGVtcGxhdGVz
MzQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czMzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExB
VEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBH
VEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBM
QVRFXyBUMzU+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzUgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQx
PiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczM0PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAg
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1Q
TEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMs
IEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFU
RV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdU
RVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExB
VEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBH
VEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVf
IFQzNj4KLXN0cnVjdCBUZW1wbGF0ZXMzNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhl
YWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRF
XyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1Rf
VEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4
LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVN
UExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEz
LCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExB
VEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBH
VEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBM
QVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwg
R1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRF
XyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNz4KLXN0cnVjdCBUZW1wbGF0ZXMzNyB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzY8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAg
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4Pgotc3RydWN0IFRlbXBsYXRlczM4IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQz
NiwgVDM3LCBUMzg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOT4KLXN0cnVj
dCBUZW1wbGF0ZXMzOSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVzMzg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBM
QVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RF
U1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVf
IFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1Rf
VEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVN
UExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIz
LCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RF
TVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
OCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBM
QVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwg
R1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwPgotc3RydWN0IFRl
bXBsYXRlczQwIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMzOTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwPiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RF
TVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQy
MywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9U
RU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1Q
TEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgs
IEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVN
UExBVEVfIFQ0MT4KLXN0cnVjdCBUZW1wbGF0ZXM0MSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgVDQxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVf
IFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVT
VF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0
Mj4KLXN0cnVjdCBUZW1wbGF0ZXM0MiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LAotICAgICAgVDQyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwg
R1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBM
QVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwg
R1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1Q
TEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTks
IEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFU
RV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdU
RVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExB
VEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBH
VEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVf
IFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzPgotc3RydWN0IFRlbXBsYXRlczQzIHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0Mz4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRF
XyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RF
U1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFU
RV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdU
RVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0ND4KLXN0cnVjdCBUZW1wbGF0ZXM0NCB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDM8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAg
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0ND4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBM
QVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwg
R1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1Q
TEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAs
IEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NT4KLXN0
cnVjdCBUZW1wbGF0ZXM0NSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzNDQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIs
Ci0gICAgICBUNDMsIFQ0NCwgVDQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RF
U1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBU
MzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1Rf
VEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8g
VDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDY+Ci1zdHJ1
Y3QgVGVtcGxhdGVzNDYgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczQ1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAot
ICAgICAgVDQzLCBUNDQsIFQ0NSwgVDQ2PiBUYWlsOwordGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBIZWFkXywgR1RFU1RfVEVNUExBVEVfLi4uIFRhaWxfPgorc3RydWN0IFRlbXBsYXRlcyB7Cisg
IHVzaW5nIEhlYWQgPSBUZW1wbGF0ZVNlbDxIZWFkXz47CisgIHVzaW5nIFRhaWwgPSBUZW1wbGF0
ZXM8VGFpbF8uLi4+OwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RF
TVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQz
MiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9U
RU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1Q
TEFURV8gVDQ1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDc+
Ci1zdHJ1Y3QgVGVtcGxhdGVzNDcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwot
ICB0eXBlZGVmIFRlbXBsYXRlczQ2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwg
VDQyLAotICAgICAgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDc+IFRhaWw7Cit0ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIEhlYWRfPgorc3RydWN0IFRlbXBsYXRlczxIZWFkXz4geworICB1c2luZyBI
ZWFkID0gVGVtcGxhdGVTZWw8SGVhZF8+OworICB1c2luZyBUYWlsID0gTm9uZTsKIH07CiAKLXRl
bXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVN
UExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBH
VEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFU
RV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVT
VF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQx
OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9U
RU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBU
MjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1Rf
VEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVN
UExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4
LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RF
TVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4Pgot
c3RydWN0IFRlbXBsYXRlczQ4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXM0NzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFRhaWw7CisvLyBUdXBsZS1s
aWtlIHR5cGUgbGlzdHMKK3RlbXBsYXRlIDx0eXBlbmFtZSBIZWFkXywgdHlwZW5hbWUuLi4gVGFp
bF8+CitzdHJ1Y3QgVHlwZXMgeworICB1c2luZyBIZWFkID0gSGVhZF87CisgIHVzaW5nIFRhaWwg
PSBUeXBlczxUYWlsXy4uLj47CiB9OwogCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RF
U1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFU
RV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdU
RVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8g
VDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNU
X1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVf
IFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ5Pgotc3Ry
dWN0IFRlbXBsYXRlczQ5IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM0ODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwK
LSAgICAgIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OT4gVGFpbDsKK3RlbXBsYXRl
IDx0eXBlbmFtZSBIZWFkXz4KK3N0cnVjdCBUeXBlczxIZWFkXz4geworICB1c2luZyBIZWFkID0g
SGVhZF87CisgIHVzaW5nIFRhaWwgPSBOb25lOwogfTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVT
VF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRF
XyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RF
U1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBU
MzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1Rf
VEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8g
VDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNU
X1RFTVBMQVRFXyBUNDcsIEdURVNUX1RFTVBMQVRFXyBUNDgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0OSwgR1RFU1RfVEVNUExBVEVfIFQ1MD4KLXN0cnVjdCBUZW1wbGF0ZXM1MCB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1LCBUNDYs
IFQ0NywgVDQ4LCBUNDksIFQ1MD4gVGFpbDsKKy8vIEhlbHBlciBtZXRhZnVuY3Rpb25zIHRvIHRl
bGwgYXBhcnQgYSBzaW5nbGUgdHlwZSBmcm9tIHR5cGVzCisvLyBnZW5lcmF0ZWQgYnkgOjp0ZXN0
aW5nOjpUeXBlcwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorc3RydWN0IFByb3h5VHlwZUxp
c3QgeworICB1c2luZyB0eXBlID0gVHlwZXM8VHMuLi4+OwogfTsKIAordGVtcGxhdGUgPHR5cGVu
YW1lPgorc3RydWN0IGlzX3Byb3h5X3R5cGVfbGlzdCA6IHN0ZDo6ZmFsc2VfdHlwZSB7fTsKIAot
Ly8gV2UgZG9uJ3Qgd2FudCB0byByZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0ZXNO
PC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3VudCB0
aGUgbGVuZ3RoLiAgVGVtcGxhdGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBi
dXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGls
ZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0v
LyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMg
VGVtcGxhdGVzPGxpc3Q+Ci0vLyB3aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9uZVQs
IE5vbmVULCAuLi4sIE5vbmVUPiBpbiB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwotLy8g
T3VyIHNvbHV0aW9uIGlzIHRvIGNvbWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFwcHJv
YWNoZXM6IGEKLS8vIHVzZXIgd291bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwgYW5k
IEdvb2dsZSBUZXN0IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEsIC4u
LiwgVE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBU
aGUgdHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFRl
bXBsYXRlcyB0ZW1wbGF0ZS4KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEgPSBOb25lVCwg
R1RFU1RfVEVNUExBVEVfIFQyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUNCA9IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUNSA9
IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDcgPSBOb25lVCwgR1RFU1RfVEVNUExBVEVfIFQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTAgPSBOb25lVCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDExID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTIgPSBOb25lVCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTQgPSBOb25lVCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMTYgPSBO
b25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBU
MTggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5ID0gTm9uZVQsIEdURVNUX1RFTVBM
QVRFXyBUMjAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIxID0gTm9uZVQsIEdURVNU
X1RFTVBMQVRFXyBUMjIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIzID0gTm9uZVQs
IEdURVNUX1RFTVBMQVRFXyBUMjQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1ID0g
Tm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDI3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMjggPSBOb25lVCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzAgPSBOb25lVCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDMxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzIgPSBOb25lVCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMzID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzQgPSBOb25l
VCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM1ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMzYg
PSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRF
XyBUMzggPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM5ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUNDAgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQxID0gTm9uZVQsIEdU
RVNUX1RFTVBMQVRFXyBUNDIgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzID0gTm9u
ZVQsIEdURVNUX1RFTVBMQVRFXyBUNDQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ1
ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDYgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQ3ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNDggPSBOb25lVCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQ5ID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUNTAgPSBOb25lVD4KLXN0cnVj
dCBUZW1wbGF0ZXMgewotICB0eXBlZGVmIFRlbXBsYXRlczUwPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAot
ICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBU
NDgsIFQ0OSwgVDUwPiB0eXBlOwotfTsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBUZW1wbGF0ZXM8
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczAg
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRl
czxUMSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTxU
MT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDI+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMyPFQxLCBUMj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMz4KLXN0cnVj
dCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzPFQx
LCBUMiwgVDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czQ8VDEsIFQyLCBUMywgVDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDc+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBl
ZGVmIFRlbXBsYXRlczg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTA+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEwPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczExPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBs
YXRlczEyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTI+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0Pgotc3RydWN0IFRl
bXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxH
VEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQz
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1Q
TEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdU
RVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFU
RV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdU
RVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTU+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVzMTU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBH
VEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBU
MTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNz4KLXN0cnVj
dCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczE3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTg+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTk+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBl
ZGVmIFRlbXBsYXRlczE5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjA+
Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjE+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjE8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAg
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RF
TVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMj4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjI8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
PiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBM
QVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBH
VEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBM
QVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwg
R1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRF
XyBUMjQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMjQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBM
QVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExB
VEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdU
RVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExB
VEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBH
VEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVf
IFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAg
ICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyNTxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNU
X1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBU
NSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVN
UExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwg
R1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRF
XyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RF
U1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFU
RV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdU
RVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjc+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjc8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0
LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LAotICAgICAgVDI3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyODxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywKLSAgICAgIFQyOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBM
QVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwg
R1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRF
XyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOT4KLXN0
cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI5
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywK
LSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjk+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RF
U1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFU
RV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdU
RVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzA+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAot
ICAgICAgVDI4LCBUMjksIFQzMD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8g
VDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNU
X1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RF
TVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQy
OSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxPgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzE8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RF
U1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRF
XyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RF
U1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBU
MjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1Rf
VEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8g
VDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNU
X1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMzMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBU
MzAsIFQzMSwgVDMyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0
eXBlZGVmIFRlbXBsYXRlczMzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwg
R1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1Q
TEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQ+
Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNDxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzU+Ci1z
dHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNT4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwg
R1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1Q
TEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQs
IEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQzNz4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwK
LSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM3PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAg
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBU
MjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdU
RVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBM
QVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RF
U1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRF
XyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RF
U1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBU
MjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1Rf
VEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8g
VDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNU
X1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RF
TVBMQVRFXyBUMzk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
Ci0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczM5PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8g
VDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNU
X1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RF
TVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQy
OSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9U
RU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQwPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
NDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDA+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RF
U1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFU
RV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdU
RVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8g
VDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNU
X1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVf
IFQ0MT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywK
LSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywg
VDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVf
IFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVT
VF9URU1QTEFURV8gVDQyPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0MjxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyPiB0eXBlOwotfTsKLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMs
IEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVN
UExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4
LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExB
VEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBH
VEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBM
QVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Mz4K
LXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQz
MSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIs
IFQ0MywKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwg
VDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0Mz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVf
IFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVT
VF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRF
XyBUNDQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0
MSwgVDQyLCBUNDMsIFQ0NCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAg
ICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQ+IHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RF
U1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFU
RV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdU
RVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8g
VDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNU
X1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVf
IFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVT
VF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBU
MzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXM0NTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBU
NDMsIFQ0NCwgVDQ1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBU
NDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1Rf
VEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2Pgotc3RydWN0IFRlbXBsYXRl
czxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAg
VDQ1LCBUNDYsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVzNDY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwg
VDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0Miwg
VDQzLCBUNDQsIFQ0NSwgVDQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9U
RU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBU
MTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1Rf
VEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVN
UExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5
LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RF
TVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
NCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBM
QVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwg
R1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1Q
TEFURV8gVDQ3Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAot
ICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQw
LCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgTm9uZVQsIE5vbmVULCBO
b25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAg
VDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3PiB0eXBlOwot
fTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRF
XyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RF
U1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFU
RV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdU
RVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8g
VDQ4Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXM0ODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4PiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNU
X1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVTVF9URU1QTEFURV8gVDQ4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwKLSAgICBUNDUsIFQ0NiwgVDQ3
LCBUNDgsIFQ0OSwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0OTxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYs
IFQ0NywgVDQ4LCBUNDk+IHR5cGU7Ci19OwotCi0vLyBUaGUgVHlwZUxpc3QgdGVtcGxhdGUgbWFr
ZXMgaXQgcG9zc2libGUgdG8gdXNlIGVpdGhlciBhIHNpbmdsZSB0eXBlCi0vLyBvciBhIFR5cGVz
PC4uLj4gbGlzdCBpbiBUWVBFRF9URVNUX0NBU0UoKSBhbmQKLS8vIElOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfQ0FTRV9QKCkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+CitzdHJ1Y3QgaXNfcHJv
eHlfdHlwZV9saXN0PFByb3h5VHlwZUxpc3Q8VHMuLi4+PiA6IHN0ZDo6dHJ1ZV90eXBlIHt9Owog
CisvLyBHZW5lcmF0b3Igd2hpY2ggY29uZGl0aW9uYWxseSBjcmVhdGVzIHR5cGUgbGlzdHMuCisv
LyBJdCByZWNvZ25pemVzIGlmIGEgcmVxdWVzdGVkIHR5cGUgbGlzdCBzaG91bGQgYmUgY3JlYXRl
ZAorLy8gYW5kIHByZXZlbnRzIGNyZWF0aW5nIGEgbmV3IHR5cGUgbGlzdCBuZXN0ZWQgd2l0aGlu
IGFub3RoZXIgb25lLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgVHlwZUxpc3Qgewot
ICB0eXBlZGVmIFR5cGVzMTxUPiB0eXBlOwotfTsKK3N0cnVjdCBHZW5lcmF0ZVR5cGVMaXN0IHsK
KyBwcml2YXRlOgorICB1c2luZyBwcm94eSA9IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8aXNf
cHJveHlfdHlwZV9saXN0PFQ+Ojp2YWx1ZSwgVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFByb3h5VHlwZUxpc3Q8VD4+Ojp0eXBlOwogCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0
MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFt
ZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3Qg
VHlwZUxpc3Q8VHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0
MywKLSAgICBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+ID4gewotICB0eXBlZGVm
IHR5cGVuYW1lIFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAg
VDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPjo6dHlwZSB0
eXBlOworIHB1YmxpYzoKKyAgdXNpbmcgdHlwZSA9IHR5cGVuYW1lIHByb3h5Ojp0eXBlOwogfTsK
IAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVT
VF9QCi0KIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4g
VHM+Cit1c2luZyBUeXBlcyA9IGludGVybmFsOjpQcm94eVR5cGVMaXN0PFRzLi4uPjsKKwogfSAg
Ly8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oLnB1
bXAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0
LXR5cGUtdXRpbC5oLnB1bXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDFhNWQz
OWRmYTZkMjRjN2M0MWExNmExNWYyZTJhNWNlOTQ5ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEs
MzE0ICswLDAgQEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGlt
dW0gbGVuZ3RoIG9mIHR5cGUgbGlzdHMgd2Ugd2FudCB0byBzdXBwb3J0LgotLy8gQ29weXJpZ2h0
IDIwMDggR29vZ2xlIEluYy4KLS8vIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4K
LS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gVHlwZSB1dGlsaXRpZXMgbmVl
ZGVkIGZvciBpbXBsZW1lbnRpbmcgdHlwZWQgYW5kIHR5cGUtcGFyYW1ldGVyaXplZAotLy8gdGVz
dHMuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NSSVBULiAgRE8gTk9UIEVESVQgQlkg
SEFORCEKLS8vCi0vLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBhdCBtb3N0ICRuIHR5cGVzIGluIGEg
bGlzdCwgYW5kIGF0IG1vc3QgJG4KLS8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBpbiBvbmUg
dHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vIFBsZWFzZSBjb250YWN0IGdvb2dsZXRl
c3RmcmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAotLy8gbW9yZS4KLQotLy8g
R09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVf
R1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCi0KLSNpbmNsdWRlICJndGVzdC9pbnRl
cm5hbC9ndGVzdC1wb3J0LmgiCi0KLS8vICNpZmRlZiBfX0dOVUNfXyBpcyB0b28gZ2VuZXJhbCBo
ZXJlLiAgSXQgaXMgcG9zc2libGUgdG8gdXNlIGdjYyB3aXRob3V0IHVzaW5nCi0vLyBsaWJzdGRj
KysgKHdoaWNoIGlzIHdoZXJlIGN4eGFiaS5oIGNvbWVzIGZyb20pLgotIyBpZiBHVEVTVF9IQVNf
Q1hYQUJJX0hfCi0jICBpbmNsdWRlIDxjeHhhYmkuaD4KLSMgZWxpZiBkZWZpbmVkKF9fSFBfYUND
KQotIyAgaW5jbHVkZSA8YWN4eF9kZW1hbmdsZS5oPgotIyBlbmRpZiAgLy8gR1RFU1RfSEFTSF9D
WFhBQklfSF8KLQotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNlIGludGVybmFsIHsKLQot
Ly8gQ2Fub25pY2FsaXplcyBhIGdpdmVuIG5hbWUgd2l0aCByZXNwZWN0IHRvIHRoZSBTdGFuZGFy
ZCBDKysgTGlicmFyeS4KLS8vIFRoaXMgaGFuZGxlcyByZW1vdmluZyB0aGUgaW5saW5lIG5hbWVz
cGFjZSB3aXRoaW4gYHN0ZGAgdGhhdCBpcwotLy8gdXNlZCBieSB2YXJpb3VzIHN0YW5kYXJkIGxp
YnJhcmllcyAoZS5nLiwgYHN0ZDo6X18xYCkuICBOYW1lcyBvdXRzaWRlCi0vLyBvZiBuYW1lc3Bh
Y2Ugc3RkIGFyZSByZXR1cm5lZCB1bm1vZGlmaWVkLgotaW5saW5lIHN0ZDo6c3RyaW5nIENhbm9u
aWNhbGl6ZUZvclN0ZExpYlZlcnNpb25pbmcoc3RkOjpzdHJpbmcgcykgewotICBzdGF0aWMgY29u
c3QgY2hhciBwcmVmaXhbXSA9ICJzdGQ6Ol9fIjsKLSAgaWYgKHMuY29tcGFyZSgwLCBzdHJsZW4o
cHJlZml4KSwgcHJlZml4KSA9PSAwKSB7Ci0gICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBlbmQg
PSBzLmZpbmQoIjo6Iiwgc3RybGVuKHByZWZpeCkpOwotICAgIGlmIChlbmQgIT0gcy5ucG9zKSB7
Ci0gICAgICAvLyBFcmFzZSBldmVyeXRoaW5nIGJldHdlZW4gdGhlIGluaXRpYWwgYHN0ZGAgYW5k
IHRoZSBzZWNvbmQgYDo6YC4KLSAgICAgIHMuZXJhc2Uoc3RybGVuKCJzdGQiKSwgZW5kIC0gc3Ry
bGVuKCJzdGQiKSk7Ci0gICAgfQotICB9Ci0gIHJldHVybiBzOwotfQotCi0vLyBHZXRUeXBlTmFt
ZTxUPigpIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVC4KLS8vIE5COiBU
aGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBp
dCBpbnNpZGUgb2YKLS8vIHRoZSB0eXBlZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RkOjpzdHJpbmcgR2V0VHlwZU5hbWUoKSB7Ci0jIGlmIEdURVNU
X0hBU19SVFRJCi0KLSAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHR5cGVpZChUKS5uYW1lKCk7
Ci0jICBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8IGRlZmluZWQoX19IUF9hQ0MpCi0gIGludCBz
dGF0dXMgPSAwOwotICAvLyBnY2MncyBpbXBsZW1lbnRhdGlvbiBvZiB0eXBlaWQoVCkubmFtZSgp
IG1hbmdsZXMgdGhlIHR5cGUgbmFtZSwKLSAgLy8gc28gd2UgaGF2ZSB0byBkZW1hbmdsZSBpdC4K
LSMgICBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCi0gIHVzaW5nIGFiaTo6X19jeGFfZGVtYW5nbGU7
Ci0jICAgZW5kaWYgIC8vIEdURVNUX0hBU19DWFhBQklfSF8KLSAgY2hhciogY29uc3QgcmVhZGFi
bGVfbmFtZSA9IF9fY3hhX2RlbWFuZ2xlKG5hbWUsIDAsIDAsICZzdGF0dXMpOwotICBjb25zdCBz
dGQ6OnN0cmluZyBuYW1lX3N0cihzdGF0dXMgPT0gMCA/IHJlYWRhYmxlX25hbWUgOiBuYW1lKTsK
LSAgZnJlZShyZWFkYWJsZV9uYW1lKTsKLSAgcmV0dXJuIENhbm9uaWNhbGl6ZUZvclN0ZExpYlZl
cnNpb25pbmcobmFtZV9zdHIpOwotIyAgZWxzZQotICByZXR1cm4gbmFtZTsKLSMgIGVuZGlmICAv
LyBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8IF9fSFBfYUNDCi0KLSMgZWxzZQotCi0gIHJldHVybiAi
PHR5cGU+IjsKLQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKLX0KLQotI2lmIEdURVNUX0hB
U19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQotLy8gQXNzZXJ0eVR5cGVF
cTxUMSwgVDI+Ojp0eXBlIGlzIGRlZmluZWQgaWZmIFQxIGFuZCBUMiBhcmUgdGhlIHNhbWUKLS8v
IHR5cGUuICBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgY29tcGlsZS10aW1lIGFzc2VydGlvbiB0byBl
bnN1cmUgdGhhdAotLy8gdHdvIHR5cGVzIGFyZSBlcXVhbC4KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMj4KLXN0cnVjdCBBc3NlcnRUeXBlRXE7Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotc3RydWN0IEFzc2VydFR5cGVFcTxULCBUPiB7Ci0gIHR5cGVkZWYgYm9vbCB0eXBl
OwotfTsKLQotLy8gQSB1bmlxdWUgdHlwZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0
aGUgYXJndW1lbnRzIG9mIGNsYXNzCi0vLyB0ZW1wbGF0ZSBUeXBlcy4gIFRoaXMgYWxsb3dzIHVz
IHRvIHNpbXVsYXRlIHZhcmlhZGljIHRlbXBsYXRlcwotLy8gKGUuZy4gVHlwZXM8aW50PiwgVHlw
ZTxpbnQsIGRvdWJsZT4sIGFuZCBldGMpLCB3aGljaCBDKysgZG9lc24ndAotLy8gc3VwcG9ydCBk
aXJlY3RseS4KLXN0cnVjdCBOb25lIHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBvZiBz
dHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0eXBl
IGxpc3RzLiAgSW4gcGFydGljdWxhciwgVHlwZXNOPFQxLCBUMiwgLi4uLCBUTj4KLS8vIHJlcHJl
c2VudHMgYSB0eXBlIGxpc3Qgd2l0aCBOIHR5cGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKSBpbiBp
dC4KLS8vIEV4Y2VwdCBmb3IgVHlwZXMwLCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMg
dHdvIG1lbWJlciB0eXBlczoKLS8vIEhlYWQgZm9yIHRoZSBmaXJzdCB0eXBlIGluIHRoZSBsaXN0
LCBhbmQgVGFpbCBmb3IgdGhlIHJlc3Qgb2YgdGhlCi0vLyBsaXN0LgotCi0vLyBUaGUgZW1wdHkg
dHlwZSBsaXN0Lgotc3RydWN0IFR5cGVzMCB7fTsKLQotLy8gVHlwZSBsaXN0cyBvZiBsZW5ndGgg
MSwgMiwgMywgYW5kIHNvIG9uLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlw
ZXMxIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMCBUYWlsOwotfTsKLQot
JHJhbmdlIGkgMi4ubgotCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkK
LXRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgVCRqXV0+Ci1zdHJ1Y3QgVHlwZXMkaSB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlcyQoaS0xKTwkZm9yIGssIFtbVCRrXV0+
IFRhaWw7Ci19OwotCi0KLV1dCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotCi0vLyBXZSBk
b24ndCB3YW50IHRvIHJlcXVpcmUgdGhlIHVzZXJzIHRvIHdyaXRlIFR5cGVzTjwuLi4+IGRpcmVj
dGx5LAotLy8gYXMgdGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4g
IFR5cGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBidXQgZ2VuZXJhdGVzIGhv
cnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGlsZXIgZXJyb3IsIGFzIGdj
YyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0vLyBhcmd1bWVudCwgZXZl
biBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMgVHlwZXM8aW50PgotLy8g
d2lsbCBhcHBlYXIgYXMgVHlwZXM8aW50LCBOb25lLCBOb25lLCAuLi4sIE5vbmU+IGluIHRoZSBj
b21waWxlcgotLy8gZXJyb3JzKS4KLS8vCi0vLyBPdXIgc29sdXRpb24gaXMgdG8gY29tYmluZSB0
aGUgYmVzdCBwYXJ0IG9mIHRoZSB0d28gYXBwcm9hY2hlczogYQotLy8gdXNlciB3b3VsZCB3cml0
ZSBUeXBlczxUMSwgLi4uLCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxsIHRyYW5zbGF0ZQotLy8g
dGhhdCB0byBUeXBlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNz
YWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUn
IG1lbWJlciBvZiB0aGUKLS8vIFR5cGVzIHRlbXBsYXRlLgotCi0kcmFuZ2UgaSAxLi5uCi10ZW1w
bGF0ZSA8JGZvciBpLCBbW3R5cGVuYW1lIFQkaSA9IGludGVybmFsOjpOb25lXV0+Ci1zdHJ1Y3Qg
VHlwZXMgewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlw
ZTsKLX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVHlwZXM8JGZvciBpLCBbW2ludGVybmFsOjpO
b25lXV0+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMwIHR5cGU7Ci19OwotCi0kcmFuZ2Ug
aSAxLi5uLTEKLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgaSsxLi5uCi10ZW1w
bGF0ZSA8JGZvciBqLCBbW3R5cGVuYW1lIFQkal1dPgotc3RydWN0IFR5cGVzPCRmb3IgaiwgW1tU
JGpdXSRmb3Iga1tbLCBpbnRlcm5hbDo6Tm9uZV1dPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0eXBlOwotfTsKLQotXV0KLQotbmFtZXNwYWNlIGludGVy
bmFsIHsKLQotIyBkZWZpbmUgR1RFU1RfVEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBj
bGFzcwotCi0vLyBUaGUgdGVtcGxhdGUgInNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8VG1w
bD4gaXMgdXNlZCB0bwotLy8gcmVwcmVzZW50IFRtcGwsIHdoaWNoIG11c3QgYmUgYSBjbGFzcyB0
ZW1wbGF0ZSB3aXRoIG9uZSB0eXBlCi0vLyBwYXJhbWV0ZXIsIGFzIGEgdHlwZS4gIFRlbXBsYXRl
U2VsPFRtcGw+OjpCaW5kPFQ+Ojp0eXBlIGlzIGRlZmluZWQKLS8vIGFzIHRoZSB0eXBlIFRtcGw8
VD4uICBUaGlzIGFsbG93cyB1cyB0byBhY3R1YWxseSBpbnN0YW50aWF0ZSB0aGUKLS8vIHRlbXBs
YXRlICJzZWxlY3RlZCIgYnkgVGVtcGxhdGVTZWw8VG1wbD4uCi0vLwotLy8gVGhpcyB0cmljayBp
cyBuZWNlc3NhcnkgZm9yIHNpbXVsYXRpbmcgdHlwZWRlZiBmb3IgY2xhc3MgdGVtcGxhdGVzLAot
Ly8gd2hpY2ggQysrIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVG1wbD4KLXN0cnVjdCBUZW1wbGF0ZVNlbCB7Ci0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBzdHJ1Y3QgQmluZCB7Ci0gICAgdHlwZWRlZiBUbXBsPFQ+IHR5cGU7Ci0gIH07Ci19
OwotCi0jIGRlZmluZSBHVEVTVF9CSU5EXyhUbXBsU2VsLCBUKSBcCi0gIFRtcGxTZWw6OnRlbXBs
YXRlIEJpbmQ8VD46OnR5cGUKLQotLy8gQSB1bmlxdWUgc3RydWN0IHRlbXBsYXRlIHVzZWQgYXMg
dGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZQotLy8gYXJndW1lbnRzIG9mIGNsYXNzIHRlbXBsYXRl
IFRlbXBsYXRlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlCi0vLyB2YXJpYWRpYyB0ZW1w
bGF0ZXMgKGUuZy4gVGVtcGxhdGVzPGludD4sIFRlbXBsYXRlczxpbnQsIGRvdWJsZT4sCi0vLyBh
bmQgZXRjKSwgd2hpY2ggQysrIGRvZXNuJ3Qgc3VwcG9ydCBkaXJlY3RseS4KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotc3RydWN0IE5vbmVUIHt9OwotCi0vLyBUaGUgZm9sbG93aW5nIGZhbWlseSBv
ZiBzdHJ1Y3QgYW5kIHN0cnVjdCB0ZW1wbGF0ZXMgYXJlIHVzZWQgdG8KLS8vIHJlcHJlc2VudCB0
ZW1wbGF0ZSBsaXN0cy4gIEluIHBhcnRpY3VsYXIsIFRlbXBsYXRlc048VDEsIFQyLCAuLi4sCi0v
LyBUTj4gcmVwcmVzZW50cyBhIGxpc3Qgb2YgTiB0ZW1wbGF0ZXMgKFQxLCBUMiwgLi4uLCBhbmQg
VE4pLiAgRXhjZXB0Ci0vLyBmb3IgVGVtcGxhdGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1p
bHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6Ci0vLyBIZWFkIGZvciB0aGUgc2VsZWN0b3Igb2YgdGhl
IGZpcnN0IHRlbXBsYXRlIGluIHRoZSBsaXN0LCBhbmQgVGFpbAotLy8gZm9yIHRoZSByZXN0IG9m
IHRoZSBsaXN0LgotCi0vLyBUaGUgZW1wdHkgdGVtcGxhdGUgbGlzdC4KLXN0cnVjdCBUZW1wbGF0
ZXMwIHt9OwotCi0vLyBUZW1wbGF0ZSBsaXN0cyBvZiBsZW5ndGggMSwgMiwgMywgYW5kIHNvIG9u
LgotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxPgotc3RydWN0IFRlbXBsYXRlczEgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczAgVGFp
bDsKLX07Ci0KLSRyYW5nZSBpIDIuLm4KLQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFu
Z2UgayAyLi5pCi10ZW1wbGF0ZSA8JGZvciBqLCBbW0dURVNUX1RFTVBMQVRFXyBUJGpdXT4KLXN0
cnVjdCBUZW1wbGF0ZXMkaSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzJChpLTEpPCRmb3IgaywgW1tUJGtdXT4gVGFpbDsKLX07Ci0KLQotXV0K
LQotLy8gV2UgZG9uJ3Qgd2FudCB0byByZXF1aXJlIHRoZSB1c2VycyB0byB3cml0ZSBUZW1wbGF0
ZXNOPC4uLj4gZGlyZWN0bHksCi0vLyBhcyB0aGF0IHdvdWxkIHJlcXVpcmUgdGhlbSB0byBjb3Vu
dCB0aGUgbGVuZ3RoLiAgVGVtcGxhdGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRl
LCBidXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29t
cGlsZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRl
Ci0vLyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVh
bnMgVGVtcGxhdGVzPGxpc3Q+Ci0vLyB3aWxsIGFwcGVhciBhcyBUZW1wbGF0ZXM8bGlzdCwgTm9u
ZVQsIE5vbmVULCAuLi4sIE5vbmVUPiBpbiB0aGUgY29tcGlsZXIKLS8vIGVycm9ycykuCi0vLwot
Ly8gT3VyIHNvbHV0aW9uIGlzIHRvIGNvbWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUgdHdvIGFw
cHJvYWNoZXM6IGEKLS8vIHVzZXIgd291bGQgd3JpdGUgVGVtcGxhdGVzPFQxLCAuLi4sIFROPiwg
YW5kIEdvb2dsZSBUZXN0IHdpbGwgdHJhbnNsYXRlCi0vLyB0aGF0IHRvIFRlbXBsYXRlc048VDEs
IC4uLiwgVE4+IGludGVybmFsbHkgdG8gbWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUu
ICBUaGUgdHJhbnNsYXRpb24gaXMgZG9uZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8v
IFRlbXBsYXRlcyB0ZW1wbGF0ZS4KLQotJHJhbmdlIGkgMS4ubgotdGVtcGxhdGUgPCRmb3IgaSwg
W1tHVEVTVF9URU1QTEFURV8gVCRpID0gTm9uZVRdXT4KLXN0cnVjdCBUZW1wbGF0ZXMgewotICB0
eXBlZGVmIFRlbXBsYXRlcyRuPCRmb3IgaSwgW1tUJGldXT4gdHlwZTsKLX07Ci0KLXRlbXBsYXRl
IDw+Ci1zdHJ1Y3QgVGVtcGxhdGVzPCRmb3IgaSwgW1tOb25lVF1dPiB7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMCB0eXBlOwotfTsKLQotJHJhbmdlIGkgMS4ubi0xCi0kZm9yIGkgW1sKLSRyYW5nZSBq
IDEuLmkKLSRyYW5nZSBrIGkrMS4ubgotdGVtcGxhdGUgPCRmb3IgaiwgW1tHVEVTVF9URU1QTEFU
RV8gVCRqXV0+Ci1zdHJ1Y3QgVGVtcGxhdGVzPCRmb3IgaiwgW1tUJGpdXSRmb3Iga1tbLCBOb25l
VF1dPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzJGk8JGZvciBqLCBbW1Qkal1dPiB0eXBlOwotfTsK
LQotXV0KLQotLy8gVGhlIFR5cGVMaXN0IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVz
ZSBlaXRoZXIgYSBzaW5nbGUgdHlwZQotLy8gb3IgYSBUeXBlczwuLi4+IGxpc3QgaW4gVFlQRURf
VEVTVF9DQVNFKCkgYW5kCi0vLyBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpLgotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBUeXBlTGlzdCB7Ci0gIHR5cGVkZWYgVHlwZXMx
PFQ+IHR5cGU7Ci19OwotCi0KLSRyYW5nZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbdHlw
ZW5hbWUgVCRpXV0+Ci1zdHJ1Y3QgVHlwZUxpc3Q8VHlwZXM8JGZvciBpLCBbW1QkaV1dPiA+IHsK
LSAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlczwkZm9yIGksIFtbVCRpXV0+Ojp0eXBlIHR5cGU7Ci19
OwotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUIHx8IEdURVNUX0hBU19UWVBFRF9U
RVNUX1AKLQotfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi19ICAvLyBuYW1lc3BhY2UgdGVzdGlu
ZwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9V
VElMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tNC9hY3hfcHRocmVh
ZC5tNCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2YyMGRlMTQ0YTExYmUyYWE2MDNiMDRlYTUxMTI0NDE5
MTAzN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200L2FjeF9wdGhyZWFkLm00CisrKyAvZGV2L251bGwKQEAg
LTEsMzYzICswLDAgQEAKLSMgVGhpcyB3YXMgcmV0cmlldmVkIGZyb20KLSMgICAgaHR0cDovL3N2
bi4wcG9pbnRlci5kZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhyZWFkLm00P3JldmlzaW9u
PTEyNzcmcm9vdD1hdmFoaQotIyBTZWUgYWxzbyAocGVyaGFwcyBmb3IgbmV3IHZlcnNpb25zPykK
LSMgICAgaHR0cDovL3N2bi4wcG9pbnRlci5kZS92aWV3dmMvdHJ1bmsvY29tbW9uL2FjeF9wdGhy
ZWFkLm00P3Jvb3Q9YXZhaGkKLSMKLSMgV2UndmUgcmV3cml0dGVuIHRoZSBpbmNvbnNpc3RlbmN5
IGNoZWNrIGNvZGUgKGZyb20gYXZhaGkpLCB0byB3b3JrCi0jIG1vcmUgYnJvYWRseS4gIEluIHBh
cnRpY3VsYXIsIGl0IG5vIGxvbmdlciBhc3N1bWVzIGxkIGFjY2VwdHMgLXpkZWZzLgotIyBUaGlz
IGNhdXNlZCBhIHJlc3RydWN0aW5nIG9mIHRoZSBjb2RlLCBidXQgdGhlIGZ1bmN0aW9uYWxpdHkg
aGFzIG9ubHkKLSMgY2hhbmdlZCBhIGxpdHRsZS4KLQotZG5sIEBzeW5vcHNpcyBBQ1hfUFRIUkVB
RChbQUNUSU9OLUlGLUZPVU5EWywgQUNUSU9OLUlGLU5PVC1GT1VORF1dKQotZG5sCi1kbmwgQHN1
bW1hcnkgZmlndXJlIG91dCBob3cgdG8gYnVpbGQgQyBwcm9ncmFtcyB1c2luZyBQT1NJWCB0aHJl
YWRzCi1kbmwKLWRubCBUaGlzIG1hY3JvIGZpZ3VyZXMgb3V0IGhvdyB0byBidWlsZCBDIHByb2dy
YW1zIHVzaW5nIFBPU0lYIHRocmVhZHMuCi1kbmwgSXQgc2V0cyB0aGUgUFRIUkVBRF9MSUJTIG91
dHB1dCB2YXJpYWJsZSB0byB0aGUgdGhyZWFkcyBsaWJyYXJ5IGFuZAotZG5sIGxpbmtlciBmbGFn
cywgYW5kIHRoZSBQVEhSRUFEX0NGTEFHUyBvdXRwdXQgdmFyaWFibGUgdG8gYW55IHNwZWNpYWwK
LWRubCBDIGNvbXBpbGVyIGZsYWdzIHRoYXQgYXJlIG5lZWRlZC4gKFRoZSB1c2VyIGNhbiBhbHNv
IGZvcmNlIGNlcnRhaW4KLWRubCBjb21waWxlciBmbGFncy9saWJzIHRvIGJlIHRlc3RlZCBieSBz
ZXR0aW5nIHRoZXNlIGVudmlyb25tZW50Ci1kbmwgdmFyaWFibGVzLikKLWRubAotZG5sIEFsc28g
c2V0cyBQVEhSRUFEX0NDIHRvIGFueSBzcGVjaWFsIEMgY29tcGlsZXIgdGhhdCBpcyBuZWVkZWQg
Zm9yCi1kbmwgbXVsdGktdGhyZWFkZWQgcHJvZ3JhbXMgKGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBv
ZiBDQyBvdGhlcndpc2UpLgotZG5sIChUaGlzIGlzIG5lY2Vzc2FyeSBvbiBBSVggdG8gdXNlIHRo
ZSBzcGVjaWFsIGNjX3IgY29tcGlsZXIgYWxpYXMuKQotZG5sCi1kbmwgTk9URTogWW91IGFyZSBh
c3N1bWVkIHRvIG5vdCBvbmx5IGNvbXBpbGUgeW91ciBwcm9ncmFtIHdpdGggdGhlc2UKLWRubCBm
bGFncywgYnV0IGFsc28gbGluayBpdCB3aXRoIHRoZW0gYXMgd2VsbC4gZS5nLiB5b3Ugc2hvdWxk
IGxpbmsKLWRubCB3aXRoICRQVEhSRUFEX0NDICRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTICRMREZM
QUdTIC4uLiAkUFRIUkVBRF9MSUJTCi1kbmwgJExJQlMKLWRubAotZG5sIElmIHlvdSBhcmUgb25s
eSBidWlsZGluZyB0aHJlYWRzIHByb2dyYW1zLCB5b3UgbWF5IHdpc2ggdG8gdXNlCi1kbmwgdGhl
c2UgdmFyaWFibGVzIGluIHlvdXIgZGVmYXVsdCBMSUJTLCBDRkxBR1MsIGFuZCBDQzoKLWRubAot
ZG5sICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotZG5sICAgICAgICBDRkxBR1M9
IiRDRkxBR1MgJFBUSFJFQURfQ0ZMQUdTIgotZG5sICAgICAgICBDQz0iJFBUSFJFQURfQ0MiCi1k
bmwKLWRubCBJbiBhZGRpdGlvbiwgaWYgdGhlIFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIHRocmVh
ZC1hdHRyaWJ1dGUKLWRubCBjb25zdGFudCBoYXMgYSBub25zdGFuZGFyZCBuYW1lLCBkZWZpbmVz
IFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIHRvCi1kbmwgdGhhdCBuYW1lIChlLmcuIFBUSFJFQURf
Q1JFQVRFX1VOREVUQUNIRUQgb24gQUlYKS4KLWRubAotZG5sIEFDVElPTi1JRi1GT1VORCBpcyBh
IGxpc3Qgb2Ygc2hlbGwgY29tbWFuZHMgdG8gcnVuIGlmIGEgdGhyZWFkcwotZG5sIGxpYnJhcnkg
aXMgZm91bmQsIGFuZCBBQ1RJT04tSUYtTk9ULUZPVU5EIGlzIGEgbGlzdCBvZiBjb21tYW5kcyB0
bwotZG5sIHJ1biBpdCBpZiBpdCBpcyBub3QgZm91bmQuIElmIEFDVElPTi1JRi1GT1VORCBpcyBu
b3Qgc3BlY2lmaWVkLCB0aGUKLWRubCBkZWZhdWx0IGFjdGlvbiB3aWxsIGRlZmluZSBIQVZFX1BU
SFJFQUQuCi1kbmwKLWRubCBQbGVhc2UgbGV0IHRoZSBhdXRob3JzIGtub3cgaWYgdGhpcyBtYWNy
byBmYWlscyBvbiBhbnkgcGxhdGZvcm0sIG9yCi1kbmwgaWYgeW91IGhhdmUgYW55IG90aGVyIHN1
Z2dlc3Rpb25zIG9yIGNvbW1lbnRzLiBUaGlzIG1hY3JvIHdhcyBiYXNlZAotZG5sIG9uIHdvcmsg
YnkgU0dKIG9uIGF1dG9jb25mIHNjcmlwdHMgZm9yIEZGVFcgKHd3dy5mZnR3Lm9yZykgKHdpdGgK
LWRubCBoZWxwIGZyb20gTS4gRnJpZ28pLCBhcyB3ZWxsIGFzIGFjX3B0aHJlYWQgYW5kIGhiX3B0
aHJlYWQgbWFjcm9zCi1kbmwgcG9zdGVkIGJ5IEFsZWphbmRybyBGb3Jlcm8gQ3VlcnZvIHRvIHRo
ZSBhdXRvY29uZiBtYWNybyByZXBvc2l0b3J5LgotZG5sIFdlIGFyZSBhbHNvIGdyYXRlZnVsIGZv
ciB0aGUgaGVscGZ1bCBmZWVkYmFjayBvZiBudW1lcm91cyB1c2Vycy4KLWRubAotZG5sIEBjYXRl
Z29yeSBJbnN0YWxsZWRQYWNrYWdlcwotZG5sIEBhdXRob3IgU3RldmVuIEcuIEpvaG5zb24gPHN0
ZXZlbmpAYWx1bS5taXQuZWR1PgotZG5sIEB2ZXJzaW9uIDIwMDYtMDUtMjkKLWRubCBAbGljZW5z
ZSBHUExXaXRoQUNFeGNlcHRpb24KLWRubCAKLWRubCBDaGVja3MgZm9yIEdDQyBzaGFyZWQvcHRo
cmVhZCBpbmNvbnNpc3RlbmN5IGJhc2VkIG9uIHdvcmsgYnkKLWRubCBNYXJjaW4gT3dzaWFueSA8
bWFyY2luQG93c2lhbnkucGw+Ci0KLQotQUNfREVGVU4oW0FDWF9QVEhSRUFEXSwgWwotQUNfUkVR
VUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKQotQUNfTEFOR19TQVZFCi1BQ19MQU5HX0MKLWFjeF9w
dGhyZWFkX29rPW5vCi0KLSMgV2UgdXNlZCB0byBjaGVjayBmb3IgcHRocmVhZC5oIGZpcnN0LCBi
dXQgdGhpcyBmYWlscyBpZiBwdGhyZWFkLmgKLSMgcmVxdWlyZXMgc3BlY2lhbCBjb21waWxlciBm
bGFncyAoZS5nLiBvbiBUcnVlNjQgb3IgU2VxdWVudCkuCi0jIEl0IGdldHMgY2hlY2tlZCBmb3Ig
aW4gdGhlIGxpbmsgdGVzdCBhbnl3YXkuCi0KLSMgRmlyc3Qgb2YgYWxsLCBjaGVjayBpZiB0aGUg
dXNlciBoYXMgc2V0IGFueSBvZiB0aGUgUFRIUkVBRF9MSUJTLAotIyBldGNldGVyYSBlbnZpcm9u
bWVudCB2YXJpYWJsZXMsIGFuZCBpZiB0aHJlYWRzIGxpbmtpbmcgd29ya3MgdXNpbmcKLSMgdGhl
bToKLWlmIHRlc3QgeCIkUFRIUkVBRF9MSUJTJFBUSFJFQURfQ0ZMQUdTIiAhPSB4OyB0aGVuCi0g
ICAgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJFBU
SFJFQURfQ0ZMQUdTIgotICAgICAgICBzYXZlX0xJQlM9IiRMSUJTIgotICAgICAgICBMSUJTPSIk
UFRIUkVBRF9MSUJTICRMSUJTIgotICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBwdGhyZWFk
X2pvaW4gaW4gTElCUz0kUFRIUkVBRF9MSUJTIHdpdGggQ0ZMQUdTPSRQVEhSRUFEX0NGTEFHU10p
Ci0gICAgICAgIEFDX1RSWV9MSU5LX0ZVTkMocHRocmVhZF9qb2luLCBhY3hfcHRocmVhZF9vaz15
ZXMpCi0gICAgICAgIEFDX01TR19SRVNVTFQoJGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0
ZXN0IHgiJGFjeF9wdGhyZWFkX29rIiA9IHhubzsgdGhlbgotICAgICAgICAgICAgICAgIFBUSFJF
QURfTElCUz0iIgotICAgICAgICAgICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIiCi0gICAgICAgIGZp
Ci0gICAgICAgIExJQlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdT
IgotZmkKLQotIyBXZSBtdXN0IGNoZWNrIGZvciB0aGUgdGhyZWFkcyBsaWJyYXJ5IHVuZGVyIGEg
bnVtYmVyIG9mIGRpZmZlcmVudAotIyBuYW1lczsgdGhlIG9yZGVyaW5nIGlzIHZlcnkgaW1wb3J0
YW50IGJlY2F1c2Ugc29tZSBzeXN0ZW1zCi0jIChlLmcuIERFQykgaGF2ZSBib3RoIC1scHRocmVh
ZCBhbmQgLWxwdGhyZWFkcywgd2hlcmUgb25lIG9mIHRoZQotIyBsaWJyYXJpZXMgaXMgYnJva2Vu
IChub24tUE9TSVgpLgotCi0jIENyZWF0ZSBhIGxpc3Qgb2YgdGhyZWFkIGZsYWdzIHRvIHRyeS4g
IEl0ZW1zIHN0YXJ0aW5nIHdpdGggYSAiLSIgYXJlCi0jIEMgY29tcGlsZXIgZmxhZ3MsIGFuZCBv
dGhlciBpdGVtcyBhcmUgbGlicmFyeSBuYW1lcywgZXhjZXB0IGZvciAibm9uZSIKLSMgd2hpY2gg
aW5kaWNhdGVzIHRoYXQgd2UgdHJ5IHdpdGhvdXQgYW55IGZsYWdzIGF0IGFsbCwgYW5kICJwdGhy
ZWFkLWNvbmZpZyIKLSMgd2hpY2ggaXMgYSBwcm9ncmFtIHJldHVybmluZyB0aGUgZmxhZ3MgZm9y
IHRoZSBQdGggZW11bGF0aW9uIGxpYnJhcnkuCi0KLWFjeF9wdGhyZWFkX2ZsYWdzPSJwdGhyZWFk
cyBub25lIC1LdGhyZWFkIC1rdGhyZWFkIGx0aHJlYWQgLXB0aHJlYWQgLXB0aHJlYWRzIC1tdGhy
ZWFkcyBwdGhyZWFkIC0tdGhyZWFkLXNhZmUgLW10IHB0aHJlYWQtY29uZmlnIgotCi0jIFRoZSBv
cmRlcmluZyAqaXMqIChzb21ldGltZXMpIGltcG9ydGFudC4gIFNvbWUgbm90ZXMgb24gdGhlCi0j
IGluZGl2aWR1YWwgaXRlbXMgZm9sbG93OgotCi0jIHB0aHJlYWRzOiBBSVggKG11c3QgY2hlY2sg
dGhpcyBiZWZvcmUgLWxwdGhyZWFkKQotIyBub25lOiBpbiBjYXNlIHRocmVhZHMgYXJlIGluIGxp
YmM7IHNob3VsZCBiZSB0cmllZCBiZWZvcmUgLUt0aHJlYWQgYW5kCi0jICAgICAgIG90aGVyIGNv
bXBpbGVyIGZsYWdzIHRvIHByZXZlbnQgY29udGludWFsIGNvbXBpbGVyIHdhcm5pbmdzCi0jIC1L
dGhyZWFkOiBTZXF1ZW50ICh0aHJlYWRzIGluIGxpYmMsIGJ1dCAtS3RocmVhZCBuZWVkZWQgZm9y
IHB0aHJlYWQuaCkKLSMgLWt0aHJlYWQ6IEZyZWVCU0Qga2VybmVsIHRocmVhZHMgKHByZWZlcnJl
ZCB0byAtcHRocmVhZCBzaW5jZSBTTVAtYWJsZSkKLSMgbHRocmVhZDogTGludXhUaHJlYWRzIHBv
cnQgb24gRnJlZUJTRCAoYWxzbyBwcmVmZXJyZWQgdG8gLXB0aHJlYWQpCi0jIC1wdGhyZWFkOiBM
aW51eC9nY2MgKGtlcm5lbCB0aHJlYWRzKSwgQlNEL2djYyAodXNlcmxhbmQgdGhyZWFkcykKLSMg
LXB0aHJlYWRzOiBTb2xhcmlzL2djYwotIyAtbXRocmVhZHM6IE1pbmd3MzIvZ2NjLCBMeW54L2dj
YwotIyAtbXQ6IFN1biBXb3Jrc2hvcCBDIChtYXkgb25seSBsaW5rIFN1bk9TIHRocmVhZHMgWy1s
dGhyZWFkXSwgYnV0IGl0Ci0jICAgICAgZG9lc24ndCBodXJ0IHRvIGNoZWNrIHNpbmNlIHRoaXMg
c29tZXRpbWVzIGRlZmluZXMgcHRocmVhZHMgdG9vOwotIyAgICAgIGFsc28gZGVmaW5lcyAtRF9S
RUVOVFJBTlQpCi0jICAgICAgLi4uIC1tdCBpcyBhbHNvIHRoZSBwdGhyZWFkcyBmbGFnIGZvciBI
UC9hQ0MKLSMgcHRocmVhZDogTGludXgsIGV0Y2V0ZXJhCi0jIC0tdGhyZWFkLXNhZmU6IEtBSSBD
KysKLSMgcHRocmVhZC1jb25maWc6IHVzZSBwdGhyZWFkLWNvbmZpZyBwcm9ncmFtIChmb3IgR05V
IFB0aCBsaWJyYXJ5KQotCi1jYXNlICIke2hvc3RfY3B1fS0ke2hvc3Rfb3N9IiBpbgotICAgICAg
ICAqc29sYXJpcyopCi0KLSAgICAgICAgIyBPbiBTb2xhcmlzIChhdCBsZWFzdCwgZm9yIHNvbWUg
dmVyc2lvbnMpLCBsaWJjIGNvbnRhaW5zIHN0dWJiZWQKLSAgICAgICAgIyAobm9uLWZ1bmN0aW9u
YWwpIHZlcnNpb25zIG9mIHRoZSBwdGhyZWFkcyByb3V0aW5lcywgc28gbGluay1iYXNlZAotICAg
ICAgICAjIHRlc3RzIHdpbGwgZXJyb25lb3VzbHkgc3VjY2VlZC4gIChXZSBuZWVkIHRvIGxpbmsg
d2l0aCAtcHRocmVhZHMvLW10LwotICAgICAgICAjIC1scHRocmVhZC4pICAoVGhlIHN0dWJzIGFy
ZSBtaXNzaW5nIHB0aHJlYWRfY2xlYW51cF9wdXNoLCBvciByYXRoZXIKLSAgICAgICAgIyBhIGZ1
bmN0aW9uIGNhbGxlZCBieSB0aGlzIG1hY3JvLCBzbyB3ZSBjb3VsZCBjaGVjayBmb3IgdGhhdCwg
YnV0Ci0gICAgICAgICMgd2hvIGtub3dzIHdoZXRoZXIgdGhleSdsbCBzdHViIHRoYXQgdG9vIGlu
IGEgZnV0dXJlIGxpYmMuKSAgU28sCi0gICAgICAgICMgd2UnbGwganVzdCBsb29rIGZvciAtcHRo
cmVhZHMgYW5kIC1scHRocmVhZCBmaXJzdDoKLQotICAgICAgICBhY3hfcHRocmVhZF9mbGFncz0i
LXB0aHJlYWRzIHB0aHJlYWQgLW10IC1wdGhyZWFkICRhY3hfcHRocmVhZF9mbGFncyIKLSAgICAg
ICAgOzsKLWVzYWMKLQotaWYgdGVzdCB4IiRhY3hfcHRocmVhZF9vayIgPSB4bm87IHRoZW4KLWZv
ciBmbGFnIGluICRhY3hfcHRocmVhZF9mbGFnczsgZG8KLQotICAgICAgICBjYXNlICRmbGFnIGlu
Ci0gICAgICAgICAgICAgICAgbm9uZSkKLSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkco
W3doZXRoZXIgcHRocmVhZHMgd29yayB3aXRob3V0IGFueSBmbGFnc10pCi0gICAgICAgICAgICAg
ICAgOzsKLQotICAgICAgICAgICAgICAgIC0qKQotICAgICAgICAgICAgICAgIEFDX01TR19DSEVD
S0lORyhbd2hldGhlciBwdGhyZWFkcyB3b3JrIHdpdGggJGZsYWddKQotICAgICAgICAgICAgICAg
IFBUSFJFQURfQ0ZMQUdTPSIkZmxhZyIKLSAgICAgICAgICAgICAgICA7OwotCi0JCXB0aHJlYWQt
Y29uZmlnKQotCQlBQ19DSEVDS19QUk9HKGFjeF9wdGhyZWFkX2NvbmZpZywgcHRocmVhZC1jb25m
aWcsIHllcywgbm8pCi0JCWlmIHRlc3QgeCIkYWN4X3B0aHJlYWRfY29uZmlnIiA9IHhubzsgdGhl
biBjb250aW51ZTsgZmkKLQkJUFRIUkVBRF9DRkxBR1M9ImBwdGhyZWFkLWNvbmZpZyAtLWNmbGFn
c2AiCi0JCVBUSFJFQURfTElCUz0iYHB0aHJlYWQtY29uZmlnIC0tbGRmbGFnc2AgYHB0aHJlYWQt
Y29uZmlnIC0tbGlic2AiCi0JCTs7Ci0KLSAgICAgICAgICAgICAgICAqKQotICAgICAgICAgICAg
ICAgIEFDX01TR19DSEVDS0lORyhbZm9yIHRoZSBwdGhyZWFkcyBsaWJyYXJ5IC1sJGZsYWddKQot
ICAgICAgICAgICAgICAgIFBUSFJFQURfTElCUz0iLWwkZmxhZyIKLSAgICAgICAgICAgICAgICA7
OwotICAgICAgICBlc2FjCi0KLSAgICAgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgc2F2
ZV9DRkxBR1M9IiRDRkxBR1MiCi0gICAgICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0g
ICAgICAgIENGTEFHUz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBDaGVj
ayBmb3IgdmFyaW91cyBmdW5jdGlvbnMuICBXZSBtdXN0IGluY2x1ZGUgcHRocmVhZC5oLAotICAg
ICAgICAjIHNpbmNlIHNvbWUgZnVuY3Rpb25zIG1heSBiZSBtYWNyb3MuICAoT24gdGhlIFNlcXVl
bnQsIHdlCi0gICAgICAgICMgbmVlZCBhIHNwZWNpYWwgZmxhZyAtS3RocmVhZCB0byBtYWtlIHRo
aXMgaGVhZGVyIGNvbXBpbGUuKQotICAgICAgICAjIFdlIGNoZWNrIGZvciBwdGhyZWFkX2pvaW4g
YmVjYXVzZSBpdCBpcyBpbiAtbHB0aHJlYWQgb24gSVJJWAotICAgICAgICAjIHdoaWxlIHB0aHJl
YWRfY3JlYXRlIGlzIGluIGxpYmMuICBXZSBjaGVjayBmb3IgcHRocmVhZF9hdHRyX2luaXQKLSAg
ICAgICAgIyBkdWUgdG8gREVDIGNyYXppbmVzcyB3aXRoIC1scHRocmVhZHMuICBXZSBjaGVjayBm
b3IKLSAgICAgICAgIyBwdGhyZWFkX2NsZWFudXBfcHVzaCBiZWNhdXNlIGl0IGlzIG9uZSBvZiB0
aGUgZmV3IHB0aHJlYWQKLSAgICAgICAgIyBmdW5jdGlvbnMgb24gU29sYXJpcyB0aGF0IGRvZXNu
J3QgaGF2ZSBhIG5vbi1mdW5jdGlvbmFsIGxpYmMgc3R1Yi4KLSAgICAgICAgIyBXZSB0cnkgcHRo
cmVhZF9jcmVhdGUgb24gZ2VuZXJhbCBwcmluY2lwbGVzLgotICAgICAgICBBQ19UUllfTElOSyhb
I2luY2x1ZGUgPHB0aHJlYWQuaD5dLAotICAgICAgICAgICAgICAgICAgICBbcHRocmVhZF90IHRo
OyBwdGhyZWFkX2pvaW4odGgsIDApOwotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9hdHRy
X2luaXQoMCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotICAgICAgICAgICAgICAgICAg
ICAgcHRocmVhZF9jcmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0sCi0g
ICAgICAgICAgICAgICAgICAgIFthY3hfcHRocmVhZF9vaz15ZXNdKQotCi0gICAgICAgIExJQlM9
IiRzYXZlX0xJQlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotCi0gICAgICAgIEFD
X01TR19SRVNVTFQoJGFjeF9wdGhyZWFkX29rKQotICAgICAgICBpZiB0ZXN0ICJ4JGFjeF9wdGhy
ZWFkX29rIiA9IHh5ZXM7IHRoZW4KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZmkK
LQotICAgICAgICBQVEhSRUFEX0xJQlM9IiIKLSAgICAgICAgUFRIUkVBRF9DRkxBR1M9IiIKLWRv
bmUKLWZpCi0KLSMgVmFyaW91cyBvdGhlciBjaGVja3M6Ci1pZiB0ZXN0ICJ4JGFjeF9wdGhyZWFk
X29rIiA9IHh5ZXM7IHRoZW4KLSAgICAgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgTElC
Uz0iJFBUSFJFQURfTElCUyAkTElCUyIKLSAgICAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0g
ICAgICAgIENGTEFHUz0iJENGTEFHUyAkUFRIUkVBRF9DRkxBR1MiCi0KLSAgICAgICAgIyBEZXRl
Y3QgQUlYIGxvc3NhZ2U6IEpPSU5BQkxFIGF0dHJpYnV0ZSBpcyBjYWxsZWQgVU5ERVRBQ0hFRC4K
LQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBqb2luYWJsZSBwdGhyZWFkIGF0dHJpYnV0ZV0pCi0JYXR0
cl9uYW1lPXVua25vd24KLQlmb3IgYXR0ciBpbiBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBQVEhS
RUFEX0NSRUFURV9VTkRFVEFDSEVEOyBkbwotCSAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0
aHJlYWQuaD5dLCBbaW50IGF0dHI9JGF0dHI7IHJldHVybiBhdHRyO10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICBbYXR0cl9uYW1lPSRhdHRyOyBicmVha10pCi0JZG9uZQotICAgICAgICBBQ19N
U0dfUkVTVUxUKCRhdHRyX25hbWUpCi0gICAgICAgIGlmIHRlc3QgIiRhdHRyX25hbWUiICE9IFBU
SFJFQURfQ1JFQVRFX0pPSU5BQkxFOyB0aGVuCi0gICAgICAgICAgICBBQ19ERUZJTkVfVU5RVU9U
RUQoUFRIUkVBRF9DUkVBVEVfSk9JTkFCTEUsICRhdHRyX25hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW0RlZmluZSB0byBuZWNlc3Nhcnkgc3ltYm9sIGlmIHRoaXMgY29uc3Rh
bnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBhIG5vbi1zdGFuZGFyZCBu
YW1lIG9uIHlvdXIgc3lzdGVtLl0pCi0gICAgICAgIGZpCi0KLSAgICAgICAgQUNfTVNHX0NIRUNL
SU5HKFtpZiBtb3JlIHNwZWNpYWwgZmxhZ3MgYXJlIHJlcXVpcmVkIGZvciBwdGhyZWFkc10pCi0g
ICAgICAgIGZsYWc9bm8KLSAgICAgICAgY2FzZSAiJHtob3N0X2NwdX0tJHtob3N0X29zfSIgaW4K
LSAgICAgICAgICAgICotYWl4KiB8ICotZnJlZWJzZCogfCAqLWRhcndpbiopIGZsYWc9Ii1EX1RI
UkVBRF9TQUZFIjs7Ci0gICAgICAgICAgICAqc29sYXJpcyogfCAqLW9zZiogfCAqLWhwdXgqKSBm
bGFnPSItRF9SRUVOVFJBTlQiOzsKLSAgICAgICAgZXNhYwotICAgICAgICBBQ19NU0dfUkVTVUxU
KCR7ZmxhZ30pCi0gICAgICAgIGlmIHRlc3QgIngkZmxhZyIgIT0geG5vOyB0aGVuCi0gICAgICAg
ICAgICBQVEhSRUFEX0NGTEFHUz0iJGZsYWcgJFBUSFJFQURfQ0ZMQUdTIgotICAgICAgICBmaQot
Ci0gICAgICAgIExJQlM9IiRzYXZlX0xJQlMiCi0gICAgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdT
IgotICAgICAgICAjIE1vcmUgQUlYIGxvc3NhZ2U6IG11c3QgY29tcGlsZSB3aXRoIHhsY19yIG9y
IGNjX3IKLQlpZiB0ZXN0IHgiJEdDQyIgIT0geHllczsgdGhlbgotICAgICAgICAgIEFDX0NIRUNL
X1BST0dTKFBUSFJFQURfQ0MsIHhsY19yIGNjX3IsICR7Q0N9KQotICAgICAgICBlbHNlCi0gICAg
ICAgICAgUFRIUkVBRF9DQz0kQ0MKLQlmaQotCi0JIyBUaGUgbmV4dCBwYXJ0IHRyaWVzIHRvIGRl
dGVjdCBHQ0MgaW5jb25zaXN0ZW5jeSB3aXRoIC1zaGFyZWQgb24gc29tZQotCSMgYXJjaGl0ZWN0
dXJlcyBhbmQgc3lzdGVtcy4gVGhlIHByb2JsZW0gaXMgdGhhdCBpbiBjZXJ0YWluCi0JIyBjb25m
aWd1cmF0aW9ucywgd2hlbiAtc2hhcmVkIGlzIHNwZWNpZmllZCwgR0NDICJmb3JnZXRzIiB0bwot
CSMgaW50ZXJuYWxseSB1c2UgdmFyaW91cyBmbGFncyB3aGljaCBhcmUgc3RpbGwgbmVjZXNzYXJ5
LgotCQotCSMKLQkjIFByZXBhcmUgdGhlIGZsYWdzCi0JIwotCXNhdmVfQ0ZMQUdTPSIkQ0ZMQUdT
IgotCXNhdmVfTElCUz0iJExJQlMiCi0Jc2F2ZV9DQz0iJENDIgotCQotCSMgVHJ5IHdpdGggdGhl
IGZsYWdzIGRldGVybWluZWQgYnkgdGhlIGVhcmxpZXIgY2hlY2tzLgotCSMKLQkjIC1XbCwteixk
ZWZzIGZvcmNlcyBsaW5rLXRpbWUgc3ltYm9sIHJlc29sdXRpb24sIHNvIHRoYXQgdGhlCi0JIyBs
aW5raW5nIGNoZWNrcyB3aXRoIC1zaGFyZWQgYWN0dWFsbHkgaGF2ZSBhbnkgdmFsdWUKLQkjCi0J
IyBGSVhNRTogLWZQSUMgaXMgcmVxdWlyZWQgZm9yIC1zaGFyZWQgb24gbWFueSBhcmNoaXRlY3R1
cmVzLAotCSMgc28gd2Ugc3BlY2lmeSBpdCBoZXJlLCBidXQgdGhlIHJpZ2h0IHdheSB3b3VsZCBw
cm9iYWJseSBiZSB0bwotCSMgcHJvcGVybHkgZGV0ZWN0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkg
cmVxdWlyZWQuCi0JQ0ZMQUdTPSItc2hhcmVkIC1mUElDIC1XbCwteixkZWZzICRDRkxBR1MgJFBU
SFJFQURfQ0ZMQUdTIgotCUxJQlM9IiRQVEhSRUFEX0xJQlMgJExJQlMiCi0JQ0M9IiRQVEhSRUFE
X0NDIgotCQotCSMgSW4gb3JkZXIgbm90IHRvIGNyZWF0ZSBzZXZlcmFsIGxldmVscyBvZiBpbmRl
bnRhdGlvbiwgd2UgdGVzdAotCSMgdGhlIHZhbHVlIG9mICIkZG9uZSIgdW50aWwgd2UgZmluZCB0
aGUgY3VyZSBvciBydW4gb3V0IG9mIGlkZWFzLgotCWRvbmU9Im5vIgotCQotCSMgRmlyc3QsIG1h
a2Ugc3VyZSB0aGUgQ0ZMQUdTIHdlIGFkZGVkIGFyZSBhY3R1YWxseSBhY2NlcHRlZCBieSBvdXIK
LQkjIGNvbXBpbGVyLiAgSWYgbm90IChhbmQgT1MgWCdzIGxkLCBmb3IgaW5zdGFuY2UsIGRvZXMg
bm90IGFjY2VwdCAteiksCi0JIyB0aGVuIHdlIGNhbid0IGRvIHRoaXMgdGVzdC4KLQlpZiB0ZXN0
IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGNo
ZWNrIGZvciBHQ0MgcHRocmVhZC9zaGFyZWQgaW5jb25zaXN0ZW5jaWVzXSkKLQkgICBBQ19UUllf
TElOSygsLCAsIFtkb25lPXllc10pCi0JCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXMgOyB0
aGVuCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0df
UkVTVUxUKFt5ZXNdKQotCSAgIGZpCi0JZmkKLQkKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0
aGVuCi0JICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1wdGhyZWFkIGlzIHN1ZmZpY2llbnQg
d2l0aCAtc2hhcmVkXSkKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAot
CSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVh
ZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJl
YWRfY3JlYXRlKDAsMCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtk
b25lPXllc10pCi0JICAgCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAg
ICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgIGVsc2UKLQkgICAgICBBQ19NU0dfUkVTVUxUKFtu
b10pCi0JICAgZmkKLQlmaQotCQotCSMKLQkjIExpbnV4IGdjYyBvbiBzb21lIGFyY2hpdGVjdHVy
ZXMgc3VjaCBhcyBtaXBzL21pcHNlbCBmb3JnZXRzCi0JIyBhYm91dCAtbHB0aHJlYWQKLQkjCi0J
aWYgdGVzdCB4IiRkb25lIiA9IHhubzsgdGhlbgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhl
ciAtbHB0aHJlYWQgZml4ZXMgdGhhdF0pCi0JICAgTElCUz0iLWxwdGhyZWFkICRQVEhSRUFEX0xJ
QlMgJHNhdmVfTElCUyIKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQuaD5dLAot
CSAgICAgIFtwdGhyZWFkX3QgdGg7IHB0aHJlYWRfam9pbih0aCwgMCk7Ci0JICAgICAgcHRocmVh
ZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAgICAgIHB0aHJl
YWRfY3JlYXRlKDAsMCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgIFtk
b25lPXllc10pCi0JCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRoZW4KLQkgICAgICBB
Q19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxwdGhyZWFkICRQVEhS
RUFEX0xJQlMiCi0JICAgZWxzZQotCSAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQot
CWZpCi0JIwotCSMgRnJlZUJTRCA0LjEwIGdjYyBmb3JnZXRzIHRvIHVzZSAtbGNfciBpbnN0ZWFk
IG9mIC1sYwotCSMKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgQUNfTVNHX0NI
RUNLSU5HKFt3aGV0aGVyIC1sY19yIGZpeGVzIHRoYXRdKQotCSAgIExJQlM9Ii1sY19yICRQVEhS
RUFEX0xJQlMgJHNhdmVfTElCUyIKLQkgICBBQ19UUllfTElOSyhbI2luY2x1ZGUgPHB0aHJlYWQu
aD5dLAotCSAgICAgICBbcHRocmVhZF90IHRoOyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAg
ICAgcHRocmVhZF9hdHRyX2luaXQoMCk7IHB0aHJlYWRfY2xlYW51cF9wdXNoKDAsIDApOwotCSAg
ICAgICAgcHRocmVhZF9jcmVhdGUoMCwwLDAsMCk7IHB0aHJlYWRfY2xlYW51cF9wb3AoMCk7IF0s
Ci0JICAgICAgIFtkb25lPXllc10pCi0JCi0JICAgaWYgdGVzdCAieCRkb25lIiA9IHh5ZXM7IHRo
ZW4KLQkgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotCSAgICAgIFBUSFJFQURfTElCUz0iLWxj
X3IgJFBUSFJFQURfTElCUyIKLQkgICBlbHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQot
CSAgIGZpCi0JZmkKLQlpZiB0ZXN0IHgiJGRvbmUiID0geG5vOyB0aGVuCi0JICAgIyBPSywgd2Ug
aGF2ZSBydW4gb3V0IG9mIGlkZWFzCi0JICAgQUNfTVNHX1dBUk4oW0ltcG9zc2libGUgdG8gZGV0
ZXJtaW5lIGhvdyB0byB1c2UgcHRocmVhZHMgd2l0aCBzaGFyZWQgbGlicmFyaWVzXSkKLQkKLQkg
ICAjIHNvIGl0J3Mgbm90IHNhZmUgdG8gYXNzdW1lIHRoYXQgd2UgbWF5IHVzZSBwdGhyZWFkcwot
CSAgIGFjeF9wdGhyZWFkX29rPW5vCi0JZmkKLQkKLQlDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLQlM
SUJTPSIkc2F2ZV9MSUJTIgotCUNDPSIkc2F2ZV9DQyIKLWVsc2UKLSAgICAgICAgUFRIUkVBRF9D
Qz0iJENDIgotZmkKLQotQUNfU1VCU1QoUFRIUkVBRF9MSUJTKQotQUNfU1VCU1QoUFRIUkVBRF9D
RkxBR1MpCi1BQ19TVUJTVChQVEhSRUFEX0NDKQotCi0jIEZpbmFsbHksIGV4ZWN1dGUgQUNUSU9O
LUlGLUZPVU5EL0FDVElPTi1JRi1OT1QtRk9VTkQ6Ci1pZiB0ZXN0IHgiJGFjeF9wdGhyZWFkX29r
IiA9IHh5ZXM7IHRoZW4KLSAgICAgICAgaWZlbHNlKFskMV0sLEFDX0RFRklORShIQVZFX1BUSFJF
QUQsMSxbRGVmaW5lIGlmIHlvdSBoYXZlIFBPU0lYIHRocmVhZHMgbGlicmFyaWVzIGFuZCBoZWFk
ZXIgZmlsZXMuXSksWyQxXSkKLSAgICAgICAgOgotZWxzZQotICAgICAgICBhY3hfcHRocmVhZF9v
az1ubwotICAgICAgICAkMgotZmkKLUFDX0xBTkdfUkVTVE9SRQotXSlkbmwgQUNYX1BUSFJFQUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200L2d0ZXN0Lm00IGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbTQvZ3Rlc3QubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY1OThiYTc1YTRkN2YyYzQ4NjYzMmM2ZGRkYzBkZTUxNzhkMjkwZWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvbTQvZ3Rlc3QubTQKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi1kbmwgR1RFU1Rf
TElCX0NIRUNLKFttaW5pbXVtIHZlcnNpb24gWywKLWRubCAgICAgICAgICAgICAgICAgIGFjdGlv
biBpZiBmb3VuZCBbLGFjdGlvbiBpZiBub3QgZm91bmRdXV0pCi1kbmwKLWRubCBDaGVjayBmb3Ig
dGhlIHByZXNlbmNlIG9mIHRoZSBHb29nbGUgVGVzdCBsaWJyYXJ5LCBvcHRpb25hbGx5IGF0IGEg
bWluaW11bQotZG5sIHZlcnNpb24sIGFuZCBpbmRpY2F0ZSBhIHZpYWJsZSB2ZXJzaW9uIHdpdGgg
dGhlIEhBVkVfR1RFU1QgZmxhZy4gSXQgZGVmaW5lcwotZG5sIHN0YW5kYXJkIHZhcmlhYmxlcyBm
b3Igc3Vic3RpdHV0aW9uIGluY2x1ZGluZyBHVEVTVF9DUFBGTEFHUywKLWRubCBHVEVTVF9DWFhG
TEFHUywgR1RFU1RfTERGTEFHUywgYW5kIEdURVNUX0xJQlMuIEl0IGFsc28gZGVmaW5lcwotZG5s
IEdURVNUX1ZFUlNJT04gYXMgdGhlIHZlcnNpb24gb2YgR29vZ2xlIFRlc3QgZm91bmQuIEZpbmFs
bHksIGl0IHByb3ZpZGVzCi1kbmwgb3B0aW9uYWwgY3VzdG9tIGFjdGlvbiBzbG90cyBpbiB0aGUg
ZXZlbnQgR1RFU1QgaXMgZm91bmQgb3Igbm90LgotQUNfREVGVU4oW0dURVNUX0xJQl9DSEVDS10s
Ci1bCi1kbmwgUHJvdmlkZSBhIGZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgR29vZ2xlIFRlc3Qg
dXNhZ2UuCi1BQ19BUkdfRU5BQkxFKFtndGVzdF0sCi0gIFtBU19IRUxQX1NUUklORyhbLS1lbmFi
bGUtZ3Rlc3RdLAotICAgICAgICAgICAgICAgICAgW0VuYWJsZSB0ZXN0cyB1c2luZyB0aGUgR29v
Z2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yay4KLSAgICAgICAgICAgICAgICAgIChEZWZhdWx0IGlz
IGVuYWJsZWQuKV0pXSwKLSAgW10sCi0gIFtlbmFibGVfZ3Rlc3Q9XSkKLUFDX0FSR19WQVIoW0dU
RVNUX0NPTkZJR10sCi0gICAgICAgICAgIFtUaGUgZXhhY3QgcGF0aCBvZiBHb29nbGUgVGVzdCdz
ICdndGVzdC1jb25maWcnIHNjcmlwdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfQ1BQRkxBR1NdLAot
ICAgICAgICAgICBbQy1saWtlIHByZXByb2Nlc3NvciBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkK
LUFDX0FSR19WQVIoW0dURVNUX0NYWEZMQUdTXSwKLSAgICAgICAgICAgW0MrKyBjb21waWxlIGZs
YWdzIGZvciBHb29nbGUgVGVzdC5dKQotQUNfQVJHX1ZBUihbR1RFU1RfTERGTEFHU10sCi0gICAg
ICAgICAgIFtMaW5rZXIgcGF0aCBhbmQgb3B0aW9uIGZsYWdzIGZvciBHb29nbGUgVGVzdC5dKQot
QUNfQVJHX1ZBUihbR1RFU1RfTElCU10sCi0gICAgICAgICAgIFtMaWJyYXJ5IGxpbmtpbmcgZmxh
Z3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1BQ19BUkdfVkFSKFtHVEVTVF9WRVJTSU9OXSwKLSAgICAg
ICAgICAgW1RoZSB2ZXJzaW9uIG9mIEdvb2dsZSBUZXN0IGF2YWlsYWJsZS5dKQotSEFWRV9HVEVT
VD0ibm8iCi1BU19JRihbdGVzdCAieCR7ZW5hYmxlX2d0ZXN0fSIgIT0gInhubyJdLAotICBbQUNf
TVNHX0NIRUNLSU5HKFtmb3IgJ2d0ZXN0LWNvbmZpZyddKQotICAgQVNfSUYoW3Rlc3QgIngke2Vu
YWJsZV9ndGVzdH0iICE9ICJ4eWVzIl0sCi0gICAgIFtBU19JRihbdGVzdCAteCAiJHtlbmFibGVf
Z3Rlc3R9L3NjcmlwdHMvZ3Rlc3QtY29uZmlnIl0sCi0gICAgICAgIFtHVEVTVF9DT05GSUc9IiR7
ZW5hYmxlX2d0ZXN0fS9zY3JpcHRzL2d0ZXN0LWNvbmZpZyJdLAotICAgICAgICBbR1RFU1RfQ09O
RklHPSIke2VuYWJsZV9ndGVzdH0vYmluL2d0ZXN0LWNvbmZpZyJdKQotICAgICAgQVNfSUYoW3Rl
c3QgLXggIiR7R1RFU1RfQ09ORklHfSJdLCBbXSwKLSAgICAgICAgW0FDX01TR19SRVNVTFQoW25v
XSkKLSAgICAgICAgIEFDX01TR19FUlJPUihbZG5sCi1VbmFibGUgdG8gbG9jYXRlIGVpdGhlciBh
IGJ1aWx0IG9yIGluc3RhbGxlZCBHb29nbGUgVGVzdC4KLVRoZSBzcGVjaWZpYyBsb2NhdGlvbiAn
JHtlbmFibGVfZ3Rlc3R9JyB3YXMgcHJvdmlkZWQgZm9yIGEgYnVpbHQgb3IgaW5zdGFsbGVkCi1H
b29nbGUgVGVzdCwgYnV0IG5vICdndGVzdC1jb25maWcnIHNjcmlwdCBjb3VsZCBiZSBmb3VuZCBh
dCB0aGlzIGxvY2F0aW9uLl0pCi0gICAgICAgICBdKV0sCi0gICAgIFtBQ19QQVRIX1BST0coW0dU
RVNUX0NPTkZJR10sIFtndGVzdC1jb25maWddKV0pCi0gICBBU19JRihbdGVzdCAteCAiJHtHVEVT
VF9DT05GSUd9Il0sCi0gICAgIFtBQ19NU0dfUkVTVUxUKFske0dURVNUX0NPTkZJR31dKQotICAg
ICAgbTRfaWZ2YWwoWyQxXSwKLSAgICAgICAgW19ndGVzdF9taW5fdmVyc2lvbj0iLS1taW4tdmVy
c2lvbj0kMSIKLSAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0IGF0IGxl
YXN0IHZlcnNpb24gPj0gJDFdKV0sCi0gICAgICAgIFtfZ3Rlc3RfbWluX3ZlcnNpb249Ii0tbWlu
LXZlcnNpb249MCIKLSAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIEdvb2dsZSBUZXN0XSld
KQotICAgICAgQVNfSUYoWyR7R1RFU1RfQ09ORklHfSAke19ndGVzdF9taW5fdmVyc2lvbn1dLAot
ICAgICAgICBbQUNfTVNHX1JFU1VMVChbeWVzXSkKLSAgICAgICAgIEhBVkVfR1RFU1Q9J3llcydd
LAotICAgICAgICBbQUNfTVNHX1JFU1VMVChbbm9dKV0pXSwKLSAgICAgW0FDX01TR19SRVNVTFQo
W25vXSldKQotICAgQVNfSUYoW3Rlc3QgIngke0hBVkVfR1RFU1R9IiA9ICJ4eWVzIl0sCi0gICAg
IFtHVEVTVF9DUFBGTEFHUz1gJHtHVEVTVF9DT05GSUd9IC0tY3BwZmxhZ3NgCi0gICAgICBHVEVT
VF9DWFhGTEFHUz1gJHtHVEVTVF9DT05GSUd9IC0tY3h4ZmxhZ3NgCi0gICAgICBHVEVTVF9MREZM
QUdTPWAke0dURVNUX0NPTkZJR30gLS1sZGZsYWdzYAotICAgICAgR1RFU1RfTElCUz1gJHtHVEVT
VF9DT05GSUd9IC0tbGlic2AKLSAgICAgIEdURVNUX1ZFUlNJT049YCR7R1RFU1RfQ09ORklHfSAt
LXZlcnNpb25gCi0gICAgICBBQ19ERUZJTkUoW0hBVkVfR1RFU1RdLFsxXSxbRGVmaW5lZCB3aGVu
IEdvb2dsZSBUZXN0IGlzIGF2YWlsYWJsZS5dKV0sCi0gICAgIFtBU19JRihbdGVzdCAieCR7ZW5h
YmxlX2d0ZXN0fSIgPSAieHllcyJdLAotICAgICAgICBbQUNfTVNHX0VSUk9SKFtkbmwKLUdvb2ds
ZSBUZXN0IHdhcyBlbmFibGVkLCBidXQgbm8gdmlhYmxlIHZlcnNpb24gY291bGQgYmUgZm91bmQu
XSkKLSAgICAgICAgIF0pXSldKQotQUNfU1VCU1QoW0hBVkVfR1RFU1RdKQotQU1fQ09ORElUSU9O
QUwoW0hBVkVfR1RFU1RdLFt0ZXN0ICJ4JEhBVkVfR1RFU1QiID0gInh5ZXMiXSkKLUFTX0lGKFt0
ZXN0ICJ4JEhBVkVfR1RFU1QiID0gInh5ZXMiXSwKLSAgW200X2lmdmFsKFskMl0sIFskMl0pXSwK
LSAgW200X2lmdmFsKFskM10sIFskM10pXSkKLV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxlIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9N
YWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFjNzQ0OTNiYTU1MjQ2NTk3
ZTkwYjg5OGZhZTg0N2FlMzU4ZWFiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tYWtlL01ha2VmaWxlCisrKyAv
ZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotIyBBIHNhbXBsZSBNYWtlZmlsZSBmb3IgYnVpbGRp
bmcgR29vZ2xlIFRlc3QgYW5kIHVzaW5nIGl0IGluIHVzZXIKLSMgdGVzdHMuICBQbGVhc2UgdHdl
YWsgaXQgdG8gc3VpdCB5b3VyIGVudmlyb25tZW50IGFuZCBwcm9qZWN0LiAgWW91Ci0jIG1heSB3
YW50IHRvIG1vdmUgaXQgdG8geW91ciBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuCi0jCi0jIFNZ
Tk9QU0lTOgotIwotIyAgIG1ha2UgW2FsbF0gIC0gbWFrZXMgZXZlcnl0aGluZy4KLSMgICBtYWtl
IFRBUkdFVCAtIG1ha2VzIHRoZSBnaXZlbiB0YXJnZXQuCi0jICAgbWFrZSBjbGVhbiAgLSByZW1v
dmVzIGFsbCBmaWxlcyBnZW5lcmF0ZWQgYnkgbWFrZS4KLQotIyBQbGVhc2UgdHdlYWsgdGhlIGZv
bGxvd2luZyB2YXJpYWJsZSBkZWZpbml0aW9ucyBhcyBuZWVkZWQgYnkgeW91cgotIyBwcm9qZWN0
LCBleGNlcHQgR1RFU1RfSEVBREVSUywgd2hpY2ggeW91IGNhbiB1c2UgaW4geW91ciBvd24gdGFy
Z2V0cwotIyBidXQgc2hvdWxkbid0IG1vZGlmeS4KLQotIyBQb2ludHMgdG8gdGhlIHJvb3Qgb2Yg
R29vZ2xlIFRlc3QsIHJlbGF0aXZlIHRvIHdoZXJlIHRoaXMgZmlsZSBpcy4KLSMgUmVtZW1iZXIg
dG8gdHdlYWsgdGhpcyBpZiB5b3UgbW92ZSB0aGlzIGZpbGUuCi1HVEVTVF9ESVIgPSAuLgotCi0j
IFdoZXJlIHRvIGZpbmQgdXNlciBjb2RlLgotVVNFUl9ESVIgPSAuLi9zYW1wbGVzCi0KLSMgRmxh
Z3MgcGFzc2VkIHRvIHRoZSBwcmVwcm9jZXNzb3IuCi0jIFNldCBHb29nbGUgVGVzdCdzIGhlYWRl
ciBkaXJlY3RvcnkgYXMgYSBzeXN0ZW0gZGlyZWN0b3J5LCBzdWNoIHRoYXQKLSMgdGhlIGNvbXBp
bGVyIGRvZXNuJ3QgZ2VuZXJhdGUgd2FybmluZ3MgaW4gR29vZ2xlIFRlc3QgaGVhZGVycy4KLUNQ
UEZMQUdTICs9IC1pc3lzdGVtICQoR1RFU1RfRElSKS9pbmNsdWRlCi0KLSMgRmxhZ3MgcGFzc2Vk
IHRvIHRoZSBDKysgY29tcGlsZXIuCi1DWFhGTEFHUyArPSAtZyAtV2FsbCAtV2V4dHJhIC1wdGhy
ZWFkCi0KLSMgQWxsIHRlc3RzIHByb2R1Y2VkIGJ5IHRoaXMgTWFrZWZpbGUuICBSZW1lbWJlciB0
byBhZGQgbmV3IHRlc3RzIHlvdQotIyBjcmVhdGVkIHRvIHRoZSBsaXN0LgotVEVTVFMgPSBzYW1w
bGUxX3VuaXR0ZXN0Ci0KLSMgQWxsIEdvb2dsZSBUZXN0IGhlYWRlcnMuICBVc3VhbGx5IHlvdSBz
aG91bGRuJ3QgY2hhbmdlIHRoaXMKLSMgZGVmaW5pdGlvbi4KLUdURVNUX0hFQURFUlMgPSAkKEdU
RVNUX0RJUikvaW5jbHVkZS9ndGVzdC8qLmggXAotICAgICAgICAgICAgICAgICQoR1RFU1RfRElS
KS9pbmNsdWRlL2d0ZXN0L2ludGVybmFsLyouaAotCi0jIEhvdXNlLWtlZXBpbmcgYnVpbGQgdGFy
Z2V0cy4KLQotYWxsIDogJChURVNUUykKLQotY2xlYW4gOgotCXJtIC1mICQoVEVTVFMpIGd0ZXN0
LmEgZ3Rlc3RfbWFpbi5hICoubwotCi0jIEJ1aWxkcyBndGVzdC5hIGFuZCBndGVzdF9tYWluLmEu
Ci0KLSMgVXN1YWxseSB5b3Ugc2hvdWxkbid0IHR3ZWFrIHN1Y2ggaW50ZXJuYWwgdmFyaWFibGVz
LCBpbmRpY2F0ZWQgYnkgYQotIyB0cmFpbGluZyBfLgotR1RFU1RfU1JDU18gPSAkKEdURVNUX0RJ
Uikvc3JjLyouY2MgJChHVEVTVF9ESVIpL3NyYy8qLmggJChHVEVTVF9IRUFERVJTKQotCi0jIEZv
ciBzaW1wbGljaXR5IGFuZCB0byBhdm9pZCBkZXBlbmRpbmcgb24gR29vZ2xlIFRlc3QncwotIyBp
bXBsZW1lbnRhdGlvbiBkZXRhaWxzLCB0aGUgZGVwZW5kZW5jaWVzIHNwZWNpZmllZCBiZWxvdyBh
cmUKLSMgY29uc2VydmF0aXZlIGFuZCBub3Qgb3B0aW1pemVkLiAgVGhpcyBpcyBmaW5lIGFzIEdv
b2dsZSBUZXN0Ci0jIGNvbXBpbGVzIGZhc3QgYW5kIGZvciBvcmRpbmFyeSB1c2VycyBpdHMgc291
cmNlIHJhcmVseSBjaGFuZ2VzLgotZ3Rlc3QtYWxsLm8gOiAkKEdURVNUX1NSQ1NfKQotCSQoQ1hY
KSAkKENQUEZMQUdTKSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAtYyBcCi0gICAgICAgICAg
ICAkKEdURVNUX0RJUikvc3JjL2d0ZXN0LWFsbC5jYwotCi1ndGVzdF9tYWluLm8gOiAkKEdURVNU
X1NSQ1NfKQotCSQoQ1hYKSAkKENQUEZMQUdTKSAtSSQoR1RFU1RfRElSKSAkKENYWEZMQUdTKSAt
YyBcCi0gICAgICAgICAgICAkKEdURVNUX0RJUikvc3JjL2d0ZXN0X21haW4uY2MKLQotZ3Rlc3Qu
YSA6IGd0ZXN0LWFsbC5vCi0JJChBUikgJChBUkZMQUdTKSAkQCAkXgotCi1ndGVzdF9tYWluLmEg
OiBndGVzdC1hbGwubyBndGVzdF9tYWluLm8KLQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLSMg
QnVpbGRzIGEgc2FtcGxlIHRlc3QuICBBIHRlc3Qgc2hvdWxkIGxpbmsgd2l0aCBlaXRoZXIgZ3Rl
c3QuYSBvcgotIyBndGVzdF9tYWluLmEsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGRlZmluZXMg
aXRzIG93biBtYWluKCkKLSMgZnVuY3Rpb24uCi0KLXNhbXBsZTEubyA6ICQoVVNFUl9ESVIpL3Nh
bXBsZTEuY2MgJChVU0VSX0RJUikvc2FtcGxlMS5oICQoR1RFU1RfSEVBREVSUykKLQkkKENYWCkg
JChDUFBGTEFHUykgJChDWFhGTEFHUykgLWMgJChVU0VSX0RJUikvc2FtcGxlMS5jYwotCi1zYW1w
bGUxX3VuaXR0ZXN0Lm8gOiAkKFVTRVJfRElSKS9zYW1wbGUxX3VuaXR0ZXN0LmNjIFwKLSAgICAg
ICAgICAgICAgICAgICAgICQoVVNFUl9ESVIpL3NhbXBsZTEuaCAkKEdURVNUX0hFQURFUlMpCi0J
JChDWFgpICQoQ1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1jICQoVVNFUl9ESVIpL3NhbXBsZTFfdW5p
dHRlc3QuY2MKLQotc2FtcGxlMV91bml0dGVzdCA6IHNhbXBsZTEubyBzYW1wbGUxX3VuaXR0ZXN0
Lm8gZ3Rlc3RfbWFpbi5hCi0JJChDWFgpICQoQ1BQRkxBR1MpICQoQ1hYRkxBR1MpIC1scHRocmVh
ZCAkXiAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0LW1kLnNsbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1t
ZC5zbG4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNmIzM2I2MjE1YzM3NGFmYzEx
NmI1MjA4NGIxNmY0MTQ4ODA0N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnNs
bgorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlv
IFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDExLjAwCi0jIFZpc3VhbCBDKysgRXhwcmVz
cyAyMDEwCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gImd0ZXN0LW1kIiwgImd0ZXN0LW1kLnZjeHByb2oiLCAie0M4RjZDMTcyLTU2RjItNEU3Ni1C
NUZBLUMzQjQyM0IzMUJFOH0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0x
MUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X21haW4tbWQiLCAiZ3Rlc3RfbWFpbi1t
ZC52Y3hwcm9qIiwgInszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzN9IgotRW5k
UHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJndGVzdF9wcm9kX3Rlc3QtbWQiLCAiZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oiLCAi
ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0iCi1FbmRQcm9qZWN0Ci1Qcm9q
ZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X3Vu
aXR0ZXN0LW1kIiwgImd0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2oiLCAiezREOUZERkI1LTk4NkEt
NDEzOS04MjNDLUY0RUUwRUQ0ODFBMn0iCi1FbmRQcm9qZWN0Ci1HbG9iYWwKLQlHbG9iYWxTZWN0
aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgotCQlEZWJ1
Z3xXaW4zMiA9IERlYnVnfFdpbjMyCi0JCURlYnVnfHg2NCA9IERlYnVnfHg2NAotCQlSZWxlYXNl
fFdpbjMyID0gUmVsZWFzZXxXaW4zMgotCQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Ci0JRW5k
R2xvYmFsU2VjdGlvbgotCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9y
bXMpID0gcG9zdFNvbHV0aW9uCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFC
RTh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYy
LTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
MgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3x4NjQuQWN0
aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFC
RTh9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXtDOEY2QzE3Mi01NkYyLTRFNzYt
QjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0
MjNCMzFCRTh9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXtDOEY2QzE3
Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxl
YXNlfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3xX
aW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDct
RjY4RUQ5ODYyMDMzfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezNBRjU0
QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERl
YnVnfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5EZWJ1Z3x4
NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5
ODYyMDMzfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0
QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
UmVsZWFzZXxXaW4zMgotCQl7M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfS5S
ZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7M0FGNTRDOEEtMTBCRi00MzMy
LTkxNDctRjY4RUQ5ODYyMDMzfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJ
ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWd8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VD
Qn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3
RTgtOUE5RC1FQTRENDlCQzNFQ0J9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJ
ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uRGVidWd8eDY0LkJ1aWxkLjAg
PSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVs
ZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3
RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2lu
MzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQn0uUmVsZWFzZXx4NjQu
QWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0
OUJDM0VDQn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05
ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVn
fFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRF
RTBFRDQ4MUEyfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05
ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0
Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8V2luMzIu
QWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRF
RTBFRDQ4MUEyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXs0RDlG
REZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9
IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTJ9LlJl
bGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9i
YWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbgotCQlIaWRlU29sdXRp
b25Ob2RlID0gRkFMU0UKLQlFbmRHbG9iYWxTZWN0aW9uCi1FbmRHbG9iYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2YTZmZjEyZjdiNTc5MDE1YWJiMTQxNTgwZTJmMmQ0ZmRh
NmY5YzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYv
bnVsbApAQCAtMSwxNDkgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0
LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29u
ZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0i
UmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0
aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25m
aWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2
NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAg
PFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJv
amVjdEd1aWQ+e0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH08L1Byb2plY3RH
dWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3Vw
PgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZh
dWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+
Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBl
PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRm
b3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlv
blR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNl
dD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1Bs
YXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFi
ZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5
PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFj
dGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8
L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgot
ICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgot
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91
cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxh
dGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBs
YXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9w
ZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3Nv
ZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJS
b290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9Ikxv
Y2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBM
YWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERp
cilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0
cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJyki
IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAg
IDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4K
LSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0k
KENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVj
dE5hbWUpXDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9u
TmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGly
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25O
YW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+
JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3Rk
PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAg
ICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29u
ZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1l
KVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9U
YXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAg
IDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJ
dGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRy
dWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0
Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlU
aHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVs
MzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENv
bnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgot
ICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25H
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRp
bWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElD
X01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVj
a3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVh
ZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9X
YXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJh
c2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAg
PExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlU
aHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dh
cm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFz
ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8
TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJl
YWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5p
bmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwv
RGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGli
IC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9u
VGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMv
MjAxMC9ndGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY5ZWRlZmYyMzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4NTYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvbXN2Yy8yMDEwL2d0ZXN0LW1kLnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08
UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
dC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRl
ciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzcz
N0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAg
ICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0
ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxl
cyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1
RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4
eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rl
c3QtYWxsLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9n
dGVzdC5zbG4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWNkNWMwY2U2YjkzMjg2YmE1MjcwZjgzMTFm
N2Q2NDkyMWUwMmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC5zbG4KKysrIC9kZXYv
bnVsbApAQCAtMSw1NSArMCwwIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBG
aWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4wMAotIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAotUHJv
amVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdCIs
ICJndGVzdC52Y3hwcm9qIiwgIntDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9
IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFC
Qzk0Mn0iKSA9ICJndGVzdF9tYWluIiwgImd0ZXN0X21haW4udmN4cHJvaiIsICJ7M0FGNTRDOEEt
MTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMyfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5
Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3RfdW5pdHRlc3QiLCAi
Z3Rlc3RfdW5pdHRlc3QudmN4cHJvaiIsICJ7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBF
RDQ4MUExfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0w
MEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3RfcHJvZF90ZXN0IiwgImd0ZXN0X3Byb2RfdGVzdC52Y3hw
cm9qIiwgInsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9IgotRW5kUHJvamVj
dAotR2xvYmFsCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMp
ID0gcHJlU29sdXRpb24KLQkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMgotCQlEZWJ1Z3x4NjQg
PSBEZWJ1Z3x4NjQKLQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKLQkJUmVsZWFzZXx4
NjQgPSBSZWxlYXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9iYWxTZWN0aW9uKFByb2pl
Y3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbgotCQl7QzhGNkMxNzItNTZG
Mi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQy
M0IzMUJFN30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZG
Mi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAot
CQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQy
M0IzMUJFN30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7QzhGNkMx
NzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBS
ZWxlYXNlfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fS5SZWxl
YXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3
LUY2OEVEOTg2MjAzMn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJezNB
RjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9
IERlYnVnfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRl
YnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3
LUY2OEVEOTg2MjAzMn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhB
LTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBS
ZWxlYXNlfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LlJl
bGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMz
Mi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQK
LQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn0uUmVsZWFzZXx4NjQuQnVp
bGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXs0RDlGREZCNS05ODZB
LTQxMzktODIzQy1GNEVFMEVENDgxQTF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3x4NjQuQWN0
aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXs0RDlGREZCNS05ODZBLTQxMzkt
ODIzQy1GNEVFMEVENDgxQTF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4z
MgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXs0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVF
MEVENDgxQTF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXs0RDlGREZC
NS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxl
YXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3xX
aW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQt
RUE0RDQ5QkMzRUNBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezI0ODQ4
NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERl
YnVnfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5EZWJ1Z3x4
NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5
QkMzRUNBfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezI0ODQ4
NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
UmVsZWFzZXxXaW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfS5S
ZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4
LTlBOUQtRUE0RDQ5QkMzRUNBfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQlF
bmRHbG9iYWxTZWN0aW9uCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJl
U29sdXRpb24KLQkJSGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFCi0JRW5kR2xvYmFsU2VjdGlvbgot
RW5kR2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAv
Z3Rlc3QudmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52
Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDZmNWM3YWYyNDUzOGQzOThj
MzYyNmM4ZWNjZTkxNDhjOTZmMDFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hw
cm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRv
b2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZl
bG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3Vy
YXRpb25zIj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIi
PgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxh
dGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAg
PFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmln
dXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRm
b3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0
aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFz
ZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAg
PC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVk
ZT0iUmVsZWFzZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFs
cyI+Ci0gICAgPFByb2plY3RHdWlkPntDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFC
RTd9PC9Qcm9qZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jv
c29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNv
bmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAg
PENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+
U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0
aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3Jt
VG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25m
aWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmln
dXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4K
LSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
IiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9v
dERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4
aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
JykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAg
PEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9
IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29u
ZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVy
dHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0
RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlc
JChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE91
dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1
dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091
dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnRE
aXI+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQo
U29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilc
PC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdy
b3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0
TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RkPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0PC9UYXJn
ZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAg
ICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9u
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGli
cmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsu
LlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFz
aWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5Pgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZv
cm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0g
ICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3Jv
dXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJ
QjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0g
ICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4K
LSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0xJQjslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0
ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdC1hbGwuY2Mi
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVj
dD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRH
cm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2pl
Y3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDY5ZWRlZmYyMzA2ZTFmYWM5M2U3N2M1NTNmMDU2YjcwZmQyYTY4
NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hl
bWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50
aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50
aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDth
c207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9
IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00
YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNp
b25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4K
LSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0
ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzZDc3Mzg5NWI3MDIzZGU4NDc0MGQ2MmJiYTYzZWM5MDBmNzRjOTI3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAt
MSwxNTQgKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K
LTxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5z
PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgot
ICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlv
bj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+
Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29u
ZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxX
aW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAg
ICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+
ezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM308L1Byb2plY3RHdWlkPgotICAg
IDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1w
b3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3Bz
IiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENv
bmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxD
aGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNl
dD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3Rh
dGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5
dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9v
bHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZp
Z3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1
cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pgot
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25m
aWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPElt
cG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0
cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0
YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVj
dEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0
RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3Vy
YXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwv
SW50RGlyPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQ
bGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0
RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBs
YXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIp
JChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbmQ8L1Rh
cmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxP
dXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwv
SW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21h
aW5kPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW48L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8
T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1h
bFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tz
PkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5n
TGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1h
dD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVt
RGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlz
YWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4z
MjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5h
YmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5
Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZl
bD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlBy
b2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZp
bml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVs
PkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJv
Z3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21w
aWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFy
eT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3Jh
bURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxl
PgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAg
PEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2pl
Y3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rlc3QtbWQudmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57
YzhmNmMxNzItNTZmMi00ZTc2LWI1ZmEtYzNiNDIzYjMxYmU4fTwvUHJvamVjdD4KLSAgICA8L1By
b2plY3RSZWZlcmVuY2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNU
YXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFi
ZWw9IkV4dGVuc2lvblRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ouZmlsdGVycwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2Yzc3M2NjYjE3NzZhNThkNmY0ZmQ2NWExNmNi
NTBmNDIyZDE1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9q
LmZpbHRlcnMKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHht
bG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMi
PgotICA8SXRlbUdyb3VwPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAg
ICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEy
RkZ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtv
ZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAg
PEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+
ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+
Ci0gICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+
Ci0gICAgPC9GaWx0ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGd0ZXN0X21haW4uY2MiPgotICAgICAgPEZpbHRlcj5T
b3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08
L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvaiBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2oKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhmYjI1ODk3YzhiMWMyZGJiM2NmNmMxM2U5YjQxOTNmYzlhZTA1
MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvagorKysgL2Rldi9u
dWxsCkBAIC0xLDE2MiArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/PgotPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAg
PFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25m
aWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9Q
bGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmln
dXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8
L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1By
b2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJS
ZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8
L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9q
ZWN0R3VpZD57M0FGNTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMyfTwvUHJvamVjdEd1
aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+
Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1
bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4K
LSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+
Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9u
VHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxh
dGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJl
bD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8
L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0
ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0g
ICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgot
ICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3Jt
VG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPElt
cG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0g
IDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3Vw
PgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0g
IDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4K
LSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxh
dGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3Bl
cnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9j
YWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExh
YmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3Rz
KCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIg
TGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAg
PF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgot
ICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQo
Q29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFBy
b2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1
dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPElu
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQo
U29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAg
IDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFy
Z2V0TmFtZT5ndGVzdF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1l
KVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChP
dXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVz
dF9tYWluPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWlu
PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1p
emF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19N
QVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxk
PgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRp
bWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAg
ICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5j
bHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0
cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKWQubGliPC9PdXRwdXRGaWxlPgotICAgIDwv
TGliPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0g
ICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlv
bj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEw
O19ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFz
aWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1
ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJ
bmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4u
XC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAg
ICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSlkLmxpYjwvT3V0cHV0RmlsZT4K
LSAgICA8L0xpYj4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25H
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9X
YXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJh
c2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAg
PExpYj4KLSAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpLmxpYjwvT3V0
cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURl
ZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3Jh
bURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxl
PgotICAgIDxMaWI+Ci0gICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5s
aWI8L091dHB1dEZpbGU+Ci0gICAgPC9MaWI+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWlu
LmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRl
OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNs
dWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3Vw
PgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imd0ZXN0LnZjeHByb2oiPgotICAgICAg
PFByb2plY3Q+e2M4ZjZjMTcyLTU2ZjItNGU3Ni1iNWZhLWMzYjQyM2IzMWJlN308L1Byb2plY3Q+
Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJv
amVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qLmZpbHRlcnMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNmM3NzNjY2IxNzc2YTU4ZDZmNGZkNjVh
MTZjYjUwZjQyMmQxNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJv
ai5maWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4
bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAz
Ij4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0g
ICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJB
MkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7
b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAg
IDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVy
Pns5Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVy
PgotICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25z
PgotICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxGaWx0ZXI+
U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgot
PC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4cHJvaiBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4
cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMwZTVkY2U0MTA2MjNjMTViNjhm
ZWE3MThlZDk0YzQ1N2YwNzBmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90
ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9q
ZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJE
ZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4K
LSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0
Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlE
LUVBNEQ0OUJDM0VDQn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5
d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRz
UGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0
aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRp
b25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxh
dGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9
IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNl
dD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0
LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+
Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249
ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4K
LSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJv
cGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9q
ZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFt
ZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4k
KE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNy
ZW1lbnRhbD4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQo
UGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91
dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmZh
bHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJ
bmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxP
dXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1
cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwv
SW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3Byb2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAg
PC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0
aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0
RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAg
PFRhcmdldE5hbWU+Z3Rlc3RfcHJvZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3Jv
dXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9wcm9kX3Rlc3Q8
L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0g
ICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJvZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAg
PE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxN
aW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVD
aGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRp
bWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5n
TGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1h
dD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRy
dWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxl
PiQoT3V0RGlyKWd0ZXN0X3Byb2RfdGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAg
ICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1h
Y2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxP
cHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFz
aWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3Jt
YXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZv
cm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURh
dGFiYXNlRmlsZT4kKE91dERpcilndGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VG
aWxlPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgPC9MaW5rPgot
ICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklB
RElDX01BWD0xMDtOREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1By
ZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFk
ZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVs
PgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5c
Li5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAg
ICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRp
b24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6
ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURB
VEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICAgIDxUYXJnZXRNYWNoaW5l
Pk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAg
ICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVH
O19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGli
cmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0lu
Zm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5
c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8
L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0Vu
YWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+
Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0
X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsu
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4u
XGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsu
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgICA8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICAgIDwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4K
LSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAg
ICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0Fk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1H
cm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHRlc3Rc
cHJvZHVjdGlvbi5oIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJv
amVjdFJlZmVyZW5jZSBJbmNsdWRlPSJndGVzdF9tYWluLW1kLnZjeHByb2oiPgotICAgICAgPFBy
b2plY3Q+ezNhZjU0YzhhLTEwYmYtNDMzMi05MTQ3LWY2OGVkOTg2MjAzM308L1Byb2plY3Q+Ci0g
ICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVj
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9wcm9kX3Rlc3QtbWQudmN4
cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzM2NzMxMGFlZTYy
NmY0ZWM5YzFkZmZkYTczM2E1MGYyYTVjNWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVz
dF9wcm9kX3Rlc3QtbWQudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAs
MCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0
IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9k
ZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1
ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdB
NS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRl
bnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25z
PgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAg
ICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVC
RkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lu
bDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfcHJv
ZF90ZXN0LmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24u
Y2MiPgotICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uaCI+Ci0gICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ0MmUxMzUxMWRmMjhhNTMyMjI0MjA1N2U3NTQxZjk2NTY3MGRkYTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qCisrKyAvZGV2
L251bGwKQEAgLTEsMTkxICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0i
NC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWls
ZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAg
ICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENv
bmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8
L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1
ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwv
UHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9
IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJh
dGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29u
ZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4
NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAg
IDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
IDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFBy
b2plY3RHdWlkPnsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0F9PC9Qcm9qZWN0
R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVm
YXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24i
PgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+
Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9u
VHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRm
b3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9
IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNl
dD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8
Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxD
aGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNl
dD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQ
cm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBv
cnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i
IC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hl
ZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBE
YXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQ
cm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVz
ZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9
IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9q
ZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxP
dXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmln
dXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3RO
YW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50
YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0
RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmln
dXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJvamVj
dE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNy
ZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0
aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0
RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNv
bHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwv
T3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERp
cj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENs
Q29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAg
ICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJV
RztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0gICAg
ICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNr
cz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5m
b3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0Pgot
ICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJvZ3Jh
bURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF9wcm9kX3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJh
c2VGaWxlPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFy
Z2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9J
dGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBp
bGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NP
TlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRp
bWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxE
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZv
cm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAg
PFByb2dyYW1EYXRhYmFzZUZpbGU+JChPdXREaXIpZ3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3Jh
bURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAg
IDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJ
TjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5N
dWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5V
c2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5p
bmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwv
RGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGlu
az4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8
T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFi
bGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0
TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVt
RGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGls
ZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEw
O05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGlt
ZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxT
dWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50
cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVl
PC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdy
b3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxn
dGVzdF9wcm9kX3Rlc3QuY2MiPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4u
LjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAg
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1
ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9J
dGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0
ZXN0XHByb2R1Y3Rpb24uaCIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAg
PFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rlc3RfbWFpbi52Y3hwcm9qIj4KLSAgICAgIDxQ
cm9qZWN0PnszYWY1NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhlZDk4NjIwMzJ9PC9Qcm9qZWN0Pgot
ICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVj
dD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRH
cm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2pl
Y3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LnZjeHByb2ou
ZmlsdGVycwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMzNjczMTBhZWU2MjZmNGVj
OWMxZGZmZGE3MzNhNTBmMmE1YzVlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJv
ZF90ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLe+7
vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1Zl
cnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVy
L21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3Vy
Y2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1B
MDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5j
cHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8
L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5p
cXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5p
cXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hz
ZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3Jv
dXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5j
YyI+Ci0gICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAg
ICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwv
SXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
dGVzdFxwcm9kdWN0aW9uLmgiPgotICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2
Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTNiMGRjNGUxYTRlMDNhZThkNjNlZmYzNmM2N2JmZTgyMzY1ZjE4OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvagorKysgL2Rldi9u
dWxsCkBAIC0xLDE4OCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/PgotPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQu
MCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAg
PFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25m
aWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9Q
bGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmln
dXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8
L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1By
b2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJS
ZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8
L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9q
ZWN0R3VpZD57NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfTwvUHJvamVjdEd1
aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+
Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1
bHQucHJvcHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4K
LSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgot
ICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3Jt
VG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFBy
b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5
cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVs
dGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9y
bVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJD
b25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZp
Z3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+
Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENv
bmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+
djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0
R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPElt
cG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0
cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0
YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9z
b2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJM
b2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVj
dEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0
RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3Vy
YXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwv
SW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAg
ICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxPdXREaXIgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9u
KVw8L091dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAg
ICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29s
dXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJ
bnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+
Z3Rlc3RfdW5pdHRlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQ
bGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGly
KSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3VuaXR0ZXN0
PC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAg
ICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdy
b3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVz
dDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGlt
aXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNf
TUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJl
YnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2lj
UnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdE
TEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgot
ICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAg
PEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8
L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3Rl
bT4KLSAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAg
PC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3Vw
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXph
dGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFY
PTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVj
a3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVh
ZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVz
ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5r
PgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0
dGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8
L1N1YlN5c3RlbT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0
ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8
UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5n
TGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1h
dD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRy
dWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwv
U3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVy
ZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xk
aW5nPgotICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAg
ICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fy
bmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNl
PC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxM
aW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAg
IDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVu
YWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfdW5pdHRlc3QuY2MiPgotICAgICAgPE9wdGltaXph
dGlvbiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+TWluU3BhY2U8L09wdGltaXphdGlvbj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5NaW5TcGFj
ZTwvT3B0aW1pemF0aW9uPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4u
Oy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+RGVmYXVsdDwvQmFz
aWNSdW50aW1lQ2hlY2tzPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkRlZmF1bHQ8L0Jhc2lj
UnVudGltZUNoZWNrcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPlByb2dyYW1EYXRhYmFz
ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJl
Y29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29t
cGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVu
Y2UgSW5jbHVkZT0iZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1
NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhlZDk4NjIwMzN9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVj
dFJlZmVyZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0i
RXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
bXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0N2RhZTUxM2U4NjAxNTNhNWNlYzJmNDVi
NDhjZGJjNzVmOWI2Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LW1k
LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249
IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVp
bGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmls
ZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJB
MzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7Yztj
eHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRl
cj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRl
bnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRl
bnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0
ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAg
ICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwv
SXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52
Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0
LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNmFiZGU3ZGExN2UyOWVk
MjQ3NmY3MGM2OTQxNWFlOTY4ZjIxZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Vu
aXR0ZXN0LnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxODAgKzAsMCBAQAot77u/PD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwIExhYmVsPSJQcm9q
ZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJE
ZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4K
LSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJh
dGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVj
dENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0
Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNl
PC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Q
cm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExh
YmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezREOUZERkI1LTk4NkEtNDEzOS04MjND
LUY0RUUwRUQ0ODFBMX08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5
d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRz
UGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
IiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0
aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0Pgot
ICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRp
b25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxh
dGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9
IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNl
dD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0
LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+
Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVl
dHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249
ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4K
LSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJv
cGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9q
ZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFt
ZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4k
KE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50
YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvTGlu
a0luY3JlbWVudGFsPgotICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFt
ZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1l
bnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPmZh
bHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0p
LSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1wXCQo
UHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZv
cm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcil0ZW1w
XCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVm
aW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNh
YmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVl
PC9NaW5pbWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENo
ZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhy
ZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNl
PC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5n
TGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0Rl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0Fk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+
Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZv
cm1hdGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0X3VuaXR0
ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwv
U3ViU3lzdGVtPgotICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGlu
ZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0
aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwv
T3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJ
QURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxl
RmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9X
YXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJh
c2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAg
PExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPiQoT3V0RGlyKWd0ZXN0
X3VuaXR0ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0ZW0+Q29u
c29sZTwvU3ViU3lzdGVtPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgot
ICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19DT05TT0xF
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAg
IDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+
dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xl
PC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVm
ZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZv
bGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgot
ICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25H
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5X
SU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+
VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJu
aW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8
L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8
L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExp
bms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAg
PE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5h
YmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgIDwvTGluaz4K
LSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF91bml0dGVzdC5jYyI+Ci0gICAgICA8T3B0aW1pemF0
aW9uIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj5NaW5TcGFjZTwvT3B0aW1pemF0aW9uPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPk1pblNwYWNl
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47
Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsu
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5EZWZhdWx0PC9CYXNp
Y1J1bnRpbWVDaGVja3M+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+RGVmYXVsdDwvQmFzaWNS
dW50aW1lQ2hlY2tzPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+UHJvZ3JhbURhdGFiYXNl
PC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5Q
cm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25h
bEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVj
b21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgIDwvQ2xDb21w
aWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVyZW5j
ZSBJbmNsdWRlPSJndGVzdF9tYWluLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+ezNhZjU0Yzhh
LTEwYmYtNDMzMi05MTQ3LWY2OGVkOTg2MjAzMn08L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVm
ZXJlbmNlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1Bh
dGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRl
bnNpb25UYXJnZXRzIj4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2ouZmlsdGVycwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ3ZGFlNTEzZTg2MDE1M2E1Y2VjMmY0NWI0OGNkYmM3NWY5
YjZjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvai5maWx0
ZXJzCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAg
PEl0ZW1Hcm91cD4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8
VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwv
VW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lk
bDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0
ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5
NTM4MC04OUJELTRiMDQtODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAg
ICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAg
IDwvRmlsdGVyPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfdW5pdHRlc3QuY2MiPgotICAgICAgPEZpbHRlcj5T
b3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci08
L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3NhbXBsZXMvcHJpbWVfdGFibGVzLmgKaW5kZXggNTIzYzUwYjlhZmIxYTA5MTkx
NjgwOTRkNzFmZGYzNzZiNjRhZjZiMi4uM2ExMDM1MmJhYWU1YmE3MWFjYjYwN2U2NzFkOWJmMTVk
MTZlNzlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmlt
ZV90YWJsZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3ByaW1lX3Rh
Ymxlcy5oCkBAIC0zMyw4ICszMyw4IEBACiAvLyBwcmltZSBhbmQgZGV0ZXJtaW5lcyBhIG5leHQg
cHJpbWUgbnVtYmVyLiBUaGlzIGludGVyZmFjZSBpcyB1c2VkCiAvLyBpbiBHb29nbGUgVGVzdCBz
YW1wbGVzIGRlbW9uc3RyYXRpbmcgdXNlIG9mIHBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKLSNpZm5k
ZWYgR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19Q
UklNRV9UQUJMRVNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19I
XworI2RlZmluZSBHT09HTEVURVNUX1NBTVBMRVNfUFJJTUVfVEFCTEVTX0hfCiAKICNpbmNsdWRl
IDxhbGdvcml0aG0+CiAKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUHJpbWVUYWJsZSB7CiAgcHVi
bGljOgogICB2aXJ0dWFsIH5QcmltZVRhYmxlKCkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZm
IG4gaXMgYSBwcmltZSBudW1iZXIuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBu
IGlzIGEgcHJpbWUgbnVtYmVyLgogICB2aXJ0dWFsIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qg
PSAwOwogCiAgIC8vIFJldHVybnMgdGhlIHNtYWxsZXN0IHByaW1lIG51bWJlciBncmVhdGVyIHRo
YW4gcDsgb3IgcmV0dXJucyAtMQpAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBQcmltZVRhYmxlIHsK
IC8vIEltcGxlbWVudGF0aW9uICMxIGNhbGN1bGF0ZXMgdGhlIHByaW1lcyBvbi10aGUtZmx5Lgog
Y2xhc3MgT25UaGVGbHlQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogIHB1YmxpYzoK
LSAgdmlydHVhbCBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0IHsKKyAgYm9vbCBJc1ByaW1lKGlu
dCBuKSBjb25zdCBvdmVycmlkZSB7CiAgICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogCiAg
ICAgZm9yIChpbnQgaSA9IDI7IGkqaSA8PSBuOyBpKyspIHsKQEAgLTY1LDEyICs2NSwxMiBAQCBj
bGFzcyBPblRoZUZseVByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7CiAgICAgcmV0dXJu
IHRydWU7CiAgIH0KIAotICB2aXJ0dWFsIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsK
LSAgICBmb3IgKGludCBuID0gcCArIDE7IG4gPiAwOyBuKyspIHsKKyAgaW50IEdldE5leHRQcmlt
ZShpbnQgcCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIGlmIChwIDwgMCkgcmV0dXJuIC0xOworCisg
ICAgZm9yIChpbnQgbiA9IHAgKyAxOzsgbisrKSB7CiAgICAgICBpZiAoSXNQcmltZShuKSkgcmV0
dXJuIG47CiAgICAgfQotCi0gICAgcmV0dXJuIC0xOwogICB9CiB9OwogCkBAIC04MywxMyArODMs
MTMgQEAgY2xhc3MgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVUYWJsZSB7
CiAgICAgICA6IGlzX3ByaW1lX3NpemVfKG1heCArIDEpLCBpc19wcmltZV8obmV3IGJvb2xbbWF4
ICsgMV0pIHsKICAgICBDYWxjdWxhdGVQcmltZXNVcFRvKG1heCk7CiAgIH0KLSAgdmlydHVhbCB+
UHJlQ2FsY3VsYXRlZFByaW1lVGFibGUoKSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQorICB+UHJl
Q2FsY3VsYXRlZFByaW1lVGFibGUoKSBvdmVycmlkZSB7IGRlbGV0ZVtdIGlzX3ByaW1lXzsgfQog
Ci0gIHZpcnR1YWwgYm9vbCBJc1ByaW1lKGludCBuKSBjb25zdCB7CisgIGJvb2wgSXNQcmltZShp
bnQgbikgY29uc3Qgb3ZlcnJpZGUgewogICAgIHJldHVybiAwIDw9IG4gJiYgbiA8IGlzX3ByaW1l
X3NpemVfICYmIGlzX3ByaW1lX1tuXTsKICAgfQogCi0gIHZpcnR1YWwgaW50IEdldE5leHRQcmlt
ZShpbnQgcCkgY29uc3QgeworICBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCBvdmVycmlk
ZSB7CiAgICAgZm9yIChpbnQgbiA9IHAgKyAxOyBuIDwgaXNfcHJpbWVfc2l6ZV87IG4rKykgewog
ICAgICAgaWYgKGlzX3ByaW1lX1tuXSkgcmV0dXJuIG47CiAgICAgfQpAQCAtMTIzLDQgKzEyMyw0
IEBAIGNsYXNzIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewog
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZSYgcmhzKTsKIH07
CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KKyNlbmRpZiAgLy8g
R09PR0xFVEVTVF9TQU1QTEVTX1BSSU1FX1RBQkxFU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2FtcGxlcy9zYW1wbGUxLmNjCmluZGV4IDEzY2VjMWQwZmJmYWJkYWFmMWM2YzQxYjFhODZi
YzFkMDkwODk4M2QuLjFkNDI3NTk3OWZmNjExMDFiZjFhZTljMzIwNWY0MWY0MDgzMGMzMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuY2MKQEAgLTQxLDcgKzQx
LDcgQEAgaW50IEZhY3RvcmlhbChpbnQgbikgewogICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBS
ZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4KIGJvb2wgSXNQcmltZShpbnQgbikgewog
ICAvLyBUcml2aWFsIGNhc2UgMTogc21hbGwgbnVtYmVycwogICBpZiAobiA8PSAxKSByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCmluZGV4IDJj
M2U5ZjA1ZjFhMTBhNDQyNWY3N2IyODcxNmU4MDU5NjgyMTk2MWYuLmJhMzkyY2ZiZDI2NjhiNmFi
ZWIwOWIxOTQ3NWM1OWEwN2UwNzg5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NhbXBsZXMvc2FtcGxlMS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMS5oCkBAIC0yOSwxMyArMjksMTMgQEAKIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBk
ZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsuCiAKLSNpZm5k
ZWYgR1RFU1RfU0FNUExFU19TQU1QTEUxX0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExF
MV9IXworI2lmbmRlZiBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2RlZmluZSBHT09H
TEVURVNUX1NBTVBMRVNfU0FNUExFMV9IXwogCiAvLyBSZXR1cm5zIG4hICh0aGUgZmFjdG9yaWFs
IG9mIG4pLiAgRm9yIG5lZ2F0aXZlIG4sIG4hIGlzIGRlZmluZWQgdG8gYmUgMS4KIGludCBGYWN0
b3JpYWwoaW50IG4pOwogCi0vLyBSZXR1cm5zIHRydWUgaWZmIG4gaXMgYSBwcmltZSBudW1iZXIu
CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4KIGJv
b2wgSXNQcmltZShpbnQgbik7CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExFU19TQU1QTEUxX0hf
CisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUxX0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYwppbmRleCA3
Y2U5NTUwZjg4M2FhMzQyZDI1YjA0ODU5M2ZhYTk2Y2FiZDhlMWZhLi4zNmNkYWMyMjc5YWVlYTcw
MmUwZDM1MjBjNzcyNThlOTI3MzcyNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zYW1wbGVzL3NhbXBsZTEwX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMTBfdW5pdHRlc3QuY2MKQEAgLTc0LDEyICs3NCwxMiBAQCBp
bnQgV2F0ZXI6OmFsbG9jYXRlZF8gPSAwOwogY2xhc3MgTGVha0NoZWNrZXIgOiBwdWJsaWMgRW1w
dHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHJpdmF0ZToKICAgLy8gQ2FsbGVkIGJlZm9yZSBhIHRl
c3Qgc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8q
IHRlc3RfaW5mbyAqLykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKiB0
ZXN0X2luZm8gKi8pIG92ZXJyaWRlIHsKICAgICBpbml0aWFsbHlfYWxsb2NhdGVkXyA9IFdhdGVy
OjphbGxvY2F0ZWQoKTsKICAgfQogCiAgIC8vIENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4KLSAg
dmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSB7
CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIG92ZXJy
aWRlIHsKICAgICBpbnQgZGlmZmVyZW5jZSA9IFdhdGVyOjphbGxvY2F0ZWQoKSAtIGluaXRpYWxs
eV9hbGxvY2F0ZWRfOwogCiAgICAgLy8gWW91IGNhbiBnZW5lcmF0ZSBhIGZhaWx1cmUgaW4gYW55
IGV2ZW50IGhhbmRsZXIgZXhjZXB0CkBAIC0xMDAsNyArMTAwLDcgQEAgVEVTVChMaXN0ZW5lcnNU
ZXN0LCBEb2VzTm90TGVhaykgewogLy8gc3BlY2lmaWVkLgogVEVTVChMaXN0ZW5lcnNUZXN0LCBM
ZWFrc1dhdGVyKSB7CiAgIFdhdGVyKiB3YXRlciA9IG5ldyBXYXRlcjsKLSAgRVhQRUNUX1RSVUUo
d2F0ZXIgIT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKHdhdGVyICE9IG51bGxwdHIpOwogfQogfSAg
Ly8gbmFtZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMi5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5j
YwppbmRleCBmM2I3MjJmY2FjZmVlZTdkODkwYjJkMWYxOWJjOTc0MTVlY2E0OWY2Li5kOGU4NzIz
OTY1YTFkYzAxZWE3ZjY1NjYxOWI3MWZiNTA2OTg0OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc2FtcGxlcy9zYW1wbGUyLmNjCkBAIC0zNSw3ICszNSw3IEBACiAKIC8vIENsb25lcyBh
IDAtdGVybWluYXRlZCBDIHN0cmluZywgYWxsb2NhdGluZyBtZW1vcnkgdXNpbmcgbmV3LgogY29u
c3QgY2hhciogTXlTdHJpbmc6OkNsb25lQ1N0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSB7
Ci0gIGlmIChhX2Nfc3RyaW5nID09IE5VTEwpIHJldHVybiBOVUxMOworICBpZiAoYV9jX3N0cmlu
ZyA9PSBudWxscHRyKSByZXR1cm4gbnVsbHB0cjsKIAogICBjb25zdCBzaXplX3QgbGVuID0gc3Ry
bGVuKGFfY19zdHJpbmcpOwogICBjaGFyKiBjb25zdCBjbG9uZSA9IG5ldyBjaGFyWyBsZW4gKyAx
IF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMi5oCmluZGV4IDU4ZjM2
MGY0NWM3NjU4YzAxOTdlM2ZmYzY1ZWM4YjM3NWZiMzM2YjAuLjBmOTg2ODk1OWQyMTU3NjBmNDU2
N2ZlNjE2NWUwNzc3Mzk5NDc0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NhbXBsZXMvc2FtcGxlMi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlMi5oCkBAIC0yOSw4ICsyOSw4IEBACiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25z
dHJhdGluZyB1c2luZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgogCi0jaWZuZGVmIEdU
RVNUX1NBTVBMRVNfU0FNUExFMl9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8K
KyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9TQU1QTEVTX1NBTVBMRTJfSF8KIAogI2luY2x1ZGUgPHN0cmluZy5oPgogCkBAIC01MCwxNSAr
NTAsMTUgQEAgY2xhc3MgTXlTdHJpbmcgewogICAvLyBDJ3RvcnMKIAogICAvLyBUaGUgZGVmYXVs
dCBjJ3RvciBjb25zdHJ1Y3RzIGEgTlVMTCBzdHJpbmcuCi0gIE15U3RyaW5nKCkgOiBjX3N0cmlu
Z18oTlVMTCkge30KKyAgTXlTdHJpbmcoKSA6IGNfc3RyaW5nXyhudWxscHRyKSB7fQogCiAgIC8v
IENvbnN0cnVjdHMgYSBNeVN0cmluZyBieSBjbG9uaW5nIGEgMC10ZXJtaW5hdGVkIEMgc3RyaW5n
LgotICBleHBsaWNpdCBNeVN0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSA6IGNfc3RyaW5n
XyhOVUxMKSB7CisgIGV4cGxpY2l0IE15U3RyaW5nKGNvbnN0IGNoYXIqIGFfY19zdHJpbmcpIDog
Y19zdHJpbmdfKG51bGxwdHIpIHsKICAgICBTZXQoYV9jX3N0cmluZyk7CiAgIH0KIAogICAvLyBD
b3B5IGMndG9yCi0gIE15U3RyaW5nKGNvbnN0IE15U3RyaW5nJiBzdHJpbmcpIDogY19zdHJpbmdf
KE5VTEwpIHsKKyAgTXlTdHJpbmcoY29uc3QgTXlTdHJpbmcmIHN0cmluZykgOiBjX3N0cmluZ18o
bnVsbHB0cikgewogICAgIFNldChzdHJpbmcuY19zdHJpbmdfKTsKICAgfQogCkBAIC03MSwxMyAr
NzEsMTAgQEAgY2xhc3MgTXlTdHJpbmcgewogICAvLyBHZXRzIHRoZSAwLXRlcm1pbmF0ZWQgQyBz
dHJpbmcgdGhpcyBNeVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgY29uc3QgY2hhciogY19z
dHJpbmcoKSBjb25zdCB7IHJldHVybiBjX3N0cmluZ187IH0KIAotICBzaXplX3QgTGVuZ3RoKCkg
Y29uc3QgewotICAgIHJldHVybiBjX3N0cmluZ18gPT0gTlVMTCA/IDAgOiBzdHJsZW4oY19zdHJp
bmdfKTsKLSAgfQorICBzaXplX3QgTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gY19zdHJpbmdfID09
IG51bGxwdHIgPyAwIDogc3RybGVuKGNfc3RyaW5nXyk7IH0KIAogICAvLyBTZXRzIHRoZSAwLXRl
cm1pbmF0ZWQgQyBzdHJpbmcgdGhpcyBNeVN0cmluZyBvYmplY3QgcmVwcmVzZW50cy4KICAgdm9p
ZCBTZXQoY29uc3QgY2hhciogY19zdHJpbmcpOwogfTsKIAotCi0jZW5kaWYgIC8vIEdURVNUX1NB
TVBMRVNfU0FNUExFMl9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFMl9I
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3Vu
aXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyX3VuaXR0
ZXN0LmNjCmluZGV4IDA4NDg4MjYxOTJjYzY2ZmNiNzkwNmVmMmMwYWFlZjY2YWY4NDNmOTIuLjQx
ZTMxYzE3NjdkZWU1NWNjNWQ1YzBiZWEyZGYyNjdjNWQ4MTE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMl91bml0dGVzdC5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QuY2MKQEAgLTY2LDcg
KzY2LDcgQEAgVEVTVChNeVN0cmluZywgRGVmYXVsdENvbnN0cnVjdG9yKSB7CiAgIC8vIHdlIGhh
dmUgdG8gbGl2ZSB3aXRoIHRoaXMgZmFjdC4KICAgLy8KICAgLy8gPC9UZWNobmljYWxEZXRhaWxz
PgotICBFWFBFQ1RfU1RSRVEoTlVMTCwgcy5jX3N0cmluZygpKTsKKyAgRVhQRUNUX1NUUkVRKG51
bGxwdHIsIHMuY19zdHJpbmcoKSk7CiAKICAgRVhQRUNUX0VRKDB1LCBzLkxlbmd0aCgpKTsKIH0K
QEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKE15U3RyaW5nLCBTZXQpIHsKICAgRVhQRUNUX0VRKDAs
IHN0cmNtcChzLmNfc3RyaW5nKCksIGtIZWxsb1N0cmluZykpOwogCiAgIC8vIENhbiB3ZSBzZXQg
dGhlIE15U3RyaW5nIHRvIE5VTEw/Ci0gIHMuU2V0KE5VTEwpOwotICBFWFBFQ1RfU1RSRVEoTlVM
TCwgcy5jX3N0cmluZygpKTsKKyAgcy5TZXQobnVsbHB0cik7CisgIEVYUEVDVF9TVFJFUShudWxs
cHRyLCBzLmNfc3RyaW5nKCkpOwogfQogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTMtaW5sLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTMtaW5sLmgKaW5kZXggMWEyOWNlOTI5NmE2NGRmZTk3
YTlmN2ZkYzZkYTg2Mzg3ZGMwYjc1Yi4uNjU5ZTBmMGJiNWRmNjI5MDViYjM1ZjlhYjAzOGYyYzM4
ZDNjMGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1w
bGUzLWlubC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMy1p
bmwuaApAQCAtMjksOCArMjksOCBAQAogCiAvLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRp
bmcgdXNpbmcgR29vZ2xlIEMrKyB0ZXN0aW5nIGZyYW1ld29yay4KIAotI2lmbmRlZiBHVEVTVF9T
QU1QTEVTX1NBTVBMRTNfSU5MX0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfU0FNUExFM19JTkxf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfU0FNUExFU19TQU1QTEUzX0lOTF9IXwogCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAK
QEAgLTU4LDcgKzU4LDggQEAgY2xhc3MgUXVldWVOb2RlIHsKICBwcml2YXRlOgogICAvLyBDcmVh
dGVzIGEgbm9kZSB3aXRoIGEgZ2l2ZW4gZWxlbWVudCB2YWx1ZS4gIFRoZSBuZXh0IHBvaW50ZXIg
aXMKICAgLy8gc2V0IHRvIE5VTEwuCi0gIGV4cGxpY2l0IFF1ZXVlTm9kZShjb25zdCBFJiBhbl9l
bGVtZW50KSA6IGVsZW1lbnRfKGFuX2VsZW1lbnQpLCBuZXh0XyhOVUxMKSB7fQorICBleHBsaWNp
dCBRdWV1ZU5vZGUoY29uc3QgRSYgYW5fZWxlbWVudCkKKyAgICAgIDogZWxlbWVudF8oYW5fZWxl
bWVudCksIG5leHRfKG51bGxwdHIpIHt9CiAKICAgLy8gV2UgZGlzYWJsZSB0aGUgZGVmYXVsdCBh
c3NpZ25tZW50IG9wZXJhdG9yIGFuZCBjb3B5IGMndG9yLgogICBjb25zdCBRdWV1ZU5vZGUmIG9w
ZXJhdG9yID0gKGNvbnN0IFF1ZXVlTm9kZSYpOwpAQCAtNzIsNyArNzMsNyBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgRT4gIC8vIEUgaXMgdGhlIGVsZW1lbnQgdHlwZS4KIGNsYXNzIFF1ZXVlIHsKICBw
dWJsaWM6CiAgIC8vIENyZWF0ZXMgYW4gZW1wdHkgcXVldWUuCi0gIFF1ZXVlKCkgOiBoZWFkXyhO
VUxMKSwgbGFzdF8oTlVMTCksIHNpemVfKDApIHt9CisgIFF1ZXVlKCkgOiBoZWFkXyhudWxscHRy
KSwgbGFzdF8obnVsbHB0ciksIHNpemVfKDApIHt9CiAKICAgLy8gRCd0b3IuICBDbGVhcnMgdGhl
IHF1ZXVlLgogICB+UXVldWUoKSB7IENsZWFyKCk7IH0KQEAgLTg2LDEyICs4NywxMiBAQCBjbGFz
cyBRdWV1ZSB7CiAgICAgICBmb3IgKDsgOykgewogICAgICAgICBkZWxldGUgbm9kZTsKICAgICAg
ICAgbm9kZSA9IG5leHQ7Ci0gICAgICAgIGlmIChub2RlID09IE5VTEwpIGJyZWFrOworICAgICAg
ICBpZiAobm9kZSA9PSBudWxscHRyKSBicmVhazsKICAgICAgICAgbmV4dCA9IG5vZGUtPm5leHQo
KTsKICAgICAgIH0KIAogICAgICAgLy8gMi4gUmVzZXRzIHRoZSBtZW1iZXIgdmFyaWFibGVzLgot
ICAgICAgaGVhZF8gPSBsYXN0XyA9IE5VTEw7CisgICAgICBoZWFkXyA9IGxhc3RfID0gbnVsbHB0
cjsKICAgICAgIHNpemVfID0gMDsKICAgICB9CiAgIH0KQEAgLTEyOCwxNCArMTI5LDE0IEBAIGNs
YXNzIFF1ZXVlIHsKICAgLy8gdGhlIHF1ZXVlIGlzIGVtcHR5LgogICBFKiBEZXF1ZXVlKCkgewog
ICAgIGlmIChzaXplXyA9PSAwKSB7Ci0gICAgICByZXR1cm4gTlVMTDsKKyAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAogICAgIGNvbnN0IFF1ZXVlTm9kZTxFPiogY29uc3Qgb2xkX2hlYWQg
PSBoZWFkXzsKICAgICBoZWFkXyA9IGhlYWRfLT5uZXh0XzsKICAgICBzaXplXy0tOwogICAgIGlm
IChzaXplXyA9PSAwKSB7Ci0gICAgICBsYXN0XyA9IE5VTEw7CisgICAgICBsYXN0XyA9IG51bGxw
dHI7CiAgICAgfQogCiAgICAgRSogZWxlbWVudCA9IG5ldyBFKG9sZF9oZWFkLT5lbGVtZW50KCkp
OwpAQCAtMTUwLDcgKzE1MSw4IEBAIGNsYXNzIFF1ZXVlIHsKICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEY+CiAgIFF1ZXVlKiBNYXAoRiBmdW5jdGlvbikgY29uc3QgewogICAgIFF1ZXVlKiBuZXdfcXVl
dWUgPSBuZXcgUXVldWUoKTsKLSAgICBmb3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9IGhl
YWRfOyBub2RlICE9IE5VTEw7IG5vZGUgPSBub2RlLT5uZXh0XykgeworICAgIGZvciAoY29uc3Qg
UXVldWVOb2RlPEU+KiBub2RlID0gaGVhZF87IG5vZGUgIT0gbnVsbHB0cjsKKyAgICAgICAgIG5v
ZGUgPSBub2RlLT5uZXh0XykgewogICAgICAgbmV3X3F1ZXVlLT5FbnF1ZXVlKGZ1bmN0aW9uKG5v
ZGUtPmVsZW1lbnQoKSkpOwogICAgIH0KIApAQCAtMTY3LDQgKzE2OSw0IEBAIGNsYXNzIFF1ZXVl
IHsKICAgY29uc3QgUXVldWUmIG9wZXJhdG9yID0gKGNvbnN0IFF1ZXVlJik7CiB9OwogCi0jZW5k
aWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFM19JTkxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVT
VF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKaW5kZXggZTA5M2MyNTg4NTczZjk2MjcwYTVl
ZDQxMjQ1YWM3ZTg5ZjQ4NTExOC4uYjE5NDE2ZDUzYzk1ZjA4NGVmZTUxYmY4ZWYyM2NjNjkzZjNj
NWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUz
X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxl
M191bml0dGVzdC5jYwpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBRdWV1ZVRlc3RTbXBsMyA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgLy8gdmlydHVhbCB2b2lkIFNldFVwKCkgd2lsbCBiZSBj
YWxsZWQgYmVmb3JlIGVhY2ggdGVzdCBpcyBydW4uICBZb3UKICAgLy8gc2hvdWxkIGRlZmluZSBp
dCBpZiB5b3UgbmVlZCB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJsZXMuCiAgIC8vIE90aGVyd2lz
ZSwgdGhpcyBjYW4gYmUgc2tpcHBlZC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgewogICAgIHExXy5FbnF1ZXVlKDEpOwogICAgIHEyXy5FbnF1ZXVl
KDIpOwogICAgIHEyXy5FbnF1ZXVlKDMpOwpAQCAtOTksOCArOTksOCBAQCBjbGFzcyBRdWV1ZVRl
c3RTbXBsMyA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICBBU1NFUlRfRVEocS0+U2l6ZSgp
LCBuZXdfcS0+U2l6ZSgpKTsKIAogICAgIC8vIFZlcmlmaWVzIHRoZSByZWxhdGlvbnNoaXAgYmV0
d2VlbiB0aGUgZWxlbWVudHMgb2YgdGhlIHR3byBxdWV1ZXMuCi0gICAgZm9yICggY29uc3QgUXVl
dWVOb2RlPGludD4gKiBuMSA9IHEtPkhlYWQoKSwgKiBuMiA9IG5ld19xLT5IZWFkKCk7Ci0gICAg
ICAgICAgbjEgIT0gTlVMTDsgbjEgPSBuMS0+bmV4dCgpLCBuMiA9IG4yLT5uZXh0KCkgKSB7Cisg
ICAgZm9yIChjb25zdCBRdWV1ZU5vZGU8aW50PipuMSA9IHEtPkhlYWQoKSwgKm4yID0gbmV3X3Et
PkhlYWQoKTsKKyAgICAgICAgIG4xICE9IG51bGxwdHI7IG4xID0gbjEtPm5leHQoKSwgbjIgPSBu
Mi0+bmV4dCgpKSB7CiAgICAgICBFWFBFQ1RfRVEoMiAqIG4xLT5lbGVtZW50KCksIG4yLT5lbGVt
ZW50KCkpOwogICAgIH0KIApAQCAtMTI1LDE2ICsxMjUsMTYgQEAgVEVTVF9GKFF1ZXVlVGVzdFNt
cGwzLCBEZWZhdWx0Q29uc3RydWN0b3IpIHsKIC8vIFRlc3RzIERlcXVldWUoKS4KIFRFU1RfRihR
dWV1ZVRlc3RTbXBsMywgRGVxdWV1ZSkgewogICBpbnQgKiBuID0gcTBfLkRlcXVldWUoKTsKLSAg
RVhQRUNUX1RSVUUobiA9PSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobiA9PSBudWxscHRyKTsKIAog
ICBuID0gcTFfLkRlcXVldWUoKTsKLSAgQVNTRVJUX1RSVUUobiAhPSBOVUxMKTsKKyAgQVNTRVJU
X1RSVUUobiAhPSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDEsICpuKTsKICAgRVhQRUNUX0VRKDB1
LCBxMV8uU2l6ZSgpKTsKICAgZGVsZXRlIG47CiAKICAgbiA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEFT
U0VSVF9UUlVFKG4gIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKG4gIT0gbnVsbHB0cik7CiAgIEVY
UEVDVF9FUSgyLCAqbik7CiAgIEVYUEVDVF9FUSgxdSwgcTJfLlNpemUoKSk7CiAgIGRlbGV0ZSBu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTQuaAppbmRleCBlMjU2ZjQw
NjRmZTkxYTdmMDFhOTQ1NTBkMzJjM2JiMTFiMGE0ZmZmLi4wYzRlZDkyZTczOGJhNjFlZDZiNWYy
OGZkM2IwY2I0Y2EyYzI2NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3Nh
bXBsZTQuaApAQCAtMjgsOCArMjgsOCBAQAogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogLy8gQSBzYW1wbGUg
cHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysgdGVzdGluZyBmcmFtZXdvcmsu
Ci0jaWZuZGVmIEdURVNUX1NBTVBMRVNfU0FNUExFNF9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVT
X1NBTVBMRTRfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KKyNkZWZp
bmUgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTRfSF8KIAogLy8gQSBzaW1wbGUgbW9ub3Rvbmlj
IGNvdW50ZXIuCiBjbGFzcyBDb3VudGVyIHsKQEAgLTUwLDQgKzUwLDQgQEAgY2xhc3MgQ291bnRl
ciB7CiAgIHZvaWQgUHJpbnQoKSBjb25zdDsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfU0FNUExF
U19TQU1QTEU0X0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEU0X0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRl
c3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3Qu
Y2MKaW5kZXggZDhhODc4OGM2ZDBmZGEyMzg2NDZmZWEyOTBlMDk3Y2M3NjI3Nzg1NS4uMGEyMWRk
MjE1NzcwN2ZiMzJjNDU5MjQ4YjBjNTM0MTYwOWVjMDYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYwpAQCAtNjMsMTUgKzYz
LDEzIEBAIGNsYXNzIFF1aWNrVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0
ZWQ6CiAgIC8vIFJlbWVtYmVyIHRoYXQgU2V0VXAoKSBpcyBydW4gaW1tZWRpYXRlbHkgYmVmb3Jl
IGEgdGVzdCBzdGFydHMuCiAgIC8vIFRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHJlY29yZCB0aGUg
c3RhcnQgdGltZS4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHN0YXJ0X3RpbWVfID0g
dGltZShOVUxMKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBzdGFydF90aW1lXyA9
IHRpbWUobnVsbHB0cik7IH0KIAogICAvLyBUZWFyRG93bigpIGlzIGludm9rZWQgaW1tZWRpYXRl
bHkgYWZ0ZXIgYSB0ZXN0IGZpbmlzaGVzLiAgSGVyZSB3ZQogICAvLyBjaGVjayBpZiB0aGUgdGVz
dCB3YXMgdG9vIHNsb3cuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICAvLyBHZXRzIHRoZSB0aW1lIHdoZW4gdGhlIHRlc3QgZmlu
aXNoZXMKLSAgICBjb25zdCB0aW1lX3QgZW5kX3RpbWUgPSB0aW1lKE5VTEwpOworICAgIGNvbnN0
IHRpbWVfdCBlbmRfdGltZSA9IHRpbWUobnVsbHB0cik7CiAKICAgICAvLyBBc3NlcnRzIHRoYXQg
dGhlIHRlc3QgdG9vayBubyBtb3JlIHRoYW4gfjUgc2Vjb25kcy4gIERpZCB5b3UKICAgICAvLyBr
bm93IHRoYXQgeW91IGNhbiB1c2UgYXNzZXJ0aW9ucyBpbiBTZXRVcCgpIGFuZCBUZWFyRG93bigp
IGFzCkBAIC0xNDIsNyArMTQwLDcgQEAgVEVTVF9GKEludGVnZXJGdW5jdGlvblRlc3QsIElzUHJp
bWUpIHsKIC8vIHN0dWZmIGluc2lkZSB0aGUgYm9keSBvZiB0aGUgdGVzdCBmaXh0dXJlLCBhcyB1
c3VhbC4KIGNsYXNzIFF1ZXVlVGVzdCA6IHB1YmxpYyBRdWlja1Rlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IC8vIEZpcnN0LCB3ZSBuZWVkIHRvIHNldCB1cCB0aGUgc3VwZXIgZml4dHVyZSAoUXVpY2tUZXN0
KS4KICAgICBRdWlja1Rlc3Q6OlNldFVwKCk7CiAKQEAgLTE3NiwxNiArMTc0LDE2IEBAIFRFU1Rf
RihRdWV1ZVRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikgewogLy8gVGVzdHMgRGVxdWV1ZSgpLgog
VEVTVF9GKFF1ZXVlVGVzdCwgRGVxdWV1ZSkgewogICBpbnQqIG4gPSBxMF8uRGVxdWV1ZSgpOwot
ICBFWFBFQ1RfVFJVRShuID09IE5VTEwpOworICBFWFBFQ1RfVFJVRShuID09IG51bGxwdHIpOwog
CiAgIG4gPSBxMV8uRGVxdWV1ZSgpOwotICBFWFBFQ1RfVFJVRShuICE9IE5VTEwpOworICBFWFBF
Q1RfVFJVRShuICE9IG51bGxwdHIpOwogICBFWFBFQ1RfRVEoMSwgKm4pOwogICBFWFBFQ1RfRVEo
MHUsIHExXy5TaXplKCkpOwogICBkZWxldGUgbjsKIAogICBuID0gcTJfLkRlcXVldWUoKTsKLSAg
RVhQRUNUX1RSVUUobiAhPSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobiAhPSBudWxscHRyKTsKICAg
RVhQRUNUX0VRKDIsICpuKTsKICAgRVhQRUNUX0VRKDF1LCBxMl8uU2l6ZSgpKTsKICAgZGVsZXRl
IG47CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZf
dW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTZfdW5p
dHRlc3QuY2MKaW5kZXggZGRmMmYxYzEzYmJlMDM0ODEzNDQ5MzZiMGE3MmRiYjJhMGIyODQyNC4u
ZGEzMTdlZWQ1YTBkMjU4NjA1Yzg5ZTBkODhmYzQzYzE3YzFlYjI5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYwpAQCAtNjEs
NyArNjEsNyBAQCBjbGFzcyBQcmltZVRhYmxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
ICAgLy8gaW1wbGVtZW50ZWQgYnkgVC4KICAgUHJpbWVUYWJsZVRlc3QoKSA6IHRhYmxlXyhDcmVh
dGVQcmltZVRhYmxlPFQ+KCkpIHt9CiAKLSAgdmlydHVhbCB+UHJpbWVUYWJsZVRlc3QoKSB7IGRl
bGV0ZSB0YWJsZV87IH0KKyAgflByaW1lVGFibGVUZXN0KCkgb3ZlcnJpZGUgeyBkZWxldGUgdGFi
bGVfOyB9CiAKICAgLy8gTm90ZSB0aGF0IHdlIHRlc3QgYW4gaW1wbGVtZW50YXRpb24gdmlhIHRo
ZSBiYXNlIGludGVyZmFjZQogICAvLyBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRp
b24gY2xhc3MuICBUaGlzIGlzIGltcG9ydGFudApAQCAtNzMsOCArNzMsNiBAQCBjbGFzcyBQcmlt
ZVRhYmxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgUHJpbWVUYWJsZSogY29uc3Qg
dGFibGVfOwogfTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIHVzaW5nIHRlc3Rpbmc6
OlR5cGVzOwogCiAvLyBHb29nbGUgVGVzdCBvZmZlcnMgdHdvIHdheXMgZm9yIHJldXNpbmcgdGVz
dHMgZm9yIGRpZmZlcmVudCB0eXBlcy4KQEAgLTg0LDcgKzgyLDcgQEAgdXNpbmcgdGVzdGluZzo6
VHlwZXM7CiAKIC8vIFRvIHdyaXRlIGEgdHlwZWQgdGVzdCBjYXNlLCBmaXJzdCB1c2UKIC8vCi0v
LyAgIFRZUEVEX1RFU1RfQ0FTRShUZXN0Q2FzZU5hbWUsIFR5cGVMaXN0KTsKKy8vICAgVFlQRURf
VEVTVF9TVUlURShUZXN0Q2FzZU5hbWUsIFR5cGVMaXN0KTsKIC8vCiAvLyB0byBkZWNsYXJlIGl0
IGFuZCBzcGVjaWZ5IHRoZSB0eXBlIHBhcmFtZXRlcnMuICBBcyB3aXRoIFRFU1RfRiwKIC8vIFRl
c3RDYXNlTmFtZSBtdXN0IG1hdGNoIHRoZSB0ZXN0IGZpeHR1cmUgbmFtZS4KQEAgLTkyLDcgKzkw
LDcgQEAgdXNpbmcgdGVzdGluZzo6VHlwZXM7CiAvLyBUaGUgbGlzdCBvZiB0eXBlcyB3ZSB3YW50
IHRvIHRlc3QuCiB0eXBlZGVmIFR5cGVzPE9uVGhlRmx5UHJpbWVUYWJsZSwgUHJlQ2FsY3VsYXRl
ZFByaW1lVGFibGU+IEltcGxlbWVudGF0aW9uczsKIAotVFlQRURfVEVTVF9DQVNFKFByaW1lVGFi
bGVUZXN0LCBJbXBsZW1lbnRhdGlvbnMpOworVFlQRURfVEVTVF9TVUlURShQcmltZVRhYmxlVGVz
dCwgSW1wbGVtZW50YXRpb25zKTsKIAogLy8gVGhlbiB1c2UgVFlQRURfVEVTVChUZXN0Q2FzZU5h
bWUsIFRlc3ROYW1lKSB0byBkZWZpbmUgYSB0eXBlZCB0ZXN0LAogLy8gc2ltaWxhciB0byBURVNU
X0YuCkBAIC0xMzEsMTMgKzEyOSw5IEBAIFRZUEVEX1RFU1QoUHJpbWVUYWJsZVRlc3QsIENhbkdl
dE5leHRQcmltZSkgewogfQogCiAvLyBUaGF0J3MgaXQhICBHb29nbGUgVGVzdCB3aWxsIHJlcGVh
dCBlYWNoIFRZUEVEX1RFU1QgZm9yIGVhY2ggdHlwZQotLy8gaW4gdGhlIHR5cGUgbGlzdCBzcGVj
aWZpZWQgaW4gVFlQRURfVEVTVF9DQVNFLiAgU2l0IGJhY2sgYW5kIGJlCisvLyBpbiB0aGUgdHlw
ZSBsaXN0IHNwZWNpZmllZCBpbiBUWVBFRF9URVNUX1NVSVRFLiAgU2l0IGJhY2sgYW5kIGJlCiAv
LyBoYXBweSB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIGRlZmluZSB0aGVtIG11bHRpcGxlIHRpbWVz
LgogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLSNpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVF9QCi0KIHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAvLyBTb21ldGltZXMsIGhvd2V2
ZXIsIHlvdSBkb24ndCB5ZXQga25vdyBhbGwgdGhlIHR5cGVzIHRoYXQgeW91IHdhbnQKQEAgLTE2
Myw3ICsxNTcsNyBAQCBjbGFzcyBQcmltZVRhYmxlVGVzdDIgOiBwdWJsaWMgUHJpbWVUYWJsZVRl
c3Q8VD4gewogLy8gVGhlbiwgZGVjbGFyZSB0aGUgdGVzdCBjYXNlLiAgVGhlIGFyZ3VtZW50IGlz
IHRoZSBuYW1lIG9mIHRoZSB0ZXN0CiAvLyBmaXh0dXJlLCBhbmQgYWxzbyB0aGUgbmFtZSBvZiB0
aGUgdGVzdCBjYXNlIChhcyB1c3VhbCkuICBUaGUgX1AKIC8vIHN1ZmZpeCBpcyBmb3IgInBhcmFt
ZXRlcml6ZWQiIG9yICJwYXR0ZXJuIi4KLVRZUEVEX1RFU1RfQ0FTRV9QKFByaW1lVGFibGVUZXN0
Mik7CitUWVBFRF9URVNUX1NVSVRFX1AoUHJpbWVUYWJsZVRlc3QyKTsKIAogLy8gTmV4dCwgdXNl
IFRZUEVEX1RFU1RfUChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB0byBkZWZpbmUgYSB0ZXN0LAog
Ly8gc2ltaWxhciB0byB3aGF0IHlvdSBkbyB3aXRoIFRFU1RfRi4KQEAgLTE5Niw3ICsxOTAsNyBA
QCBUWVBFRF9URVNUX1AoUHJpbWVUYWJsZVRlc3QyLCBDYW5HZXROZXh0UHJpbWUpIHsKIAogLy8g
VHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGludm9sdmUgb25lIGV4dHJhIHN0ZXA6IHlvdSBoYXZl
IHRvCiAvLyBlbnVtZXJhdGUgdGhlIHRlc3RzIHlvdSBkZWZpbmVkOgotUkVHSVNURVJfVFlQRURf
VEVTVF9DQVNFX1AoCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoCiAgICAgUHJpbWVUYWJs
ZVRlc3QyLCAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSB0ZXN0IGNhc2UgbmFtZS4KICAg
ICAvLyBUaGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzIGFyZSB0aGUgdGVzdCBuYW1lcy4KICAgICBS
ZXR1cm5zRmFsc2VGb3JOb25QcmltZXMsIFJldHVybnNUcnVlRm9yUHJpbWVzLCBDYW5HZXROZXh0
UHJpbWUpOwpAQCAtMjE2LDkgKzIxMCw4IEBAIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAog
Ly8gZGVmaW5lZCBhdCB0aGUgdGltZSB3ZSB3cml0ZSB0aGUgVFlQRURfVEVTVF9QKClzLgogdHlw
ZWRlZiBUeXBlczxPblRoZUZseVByaW1lVGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPgog
ICAgIFByaW1lVGFibGVJbXBsZW1lbnRhdGlvbnM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChPblRoZUZseUFuZFByZUNhbGN1bGF0ZWQsICAgIC8vIEluc3RhbmNlIG5hbWUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVUZXN0MiwgICAgICAgICAgICAgLy8g
VGVzdCBjYXNlIG5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFibGVJ
bXBsZW1lbnRhdGlvbnMpOyAgLy8gVHlwZSBsaXN0CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NV
SVRFX1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCAgICAvLyBJbnN0YW5jZSBuYW1lCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWVUYWJsZVRlc3QyLCAgICAgICAgICAgICAv
LyBUZXN0IGNhc2UgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1lVGFi
bGVJbXBsZW1lbnRhdGlvbnMpOyAgLy8gVHlwZSBsaXN0CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X1RZUEVEX1RFU1RfUAogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MKaW5kZXggYzFhZThiZGVkYzlhZmM5
YTExZDBkOTIwMjFlZjc2NzdkMzk4YTljOS4uZTBlZmMyOWU0YTJhOTc3ZTFhNTBhNDViYjM3NTI0
M2M5Njg1NDdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU3X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlN191bml0dGVzdC5jYwpAQCAtNjUsMTEgKzY1LDExIEBAIFByaW1lVGFibGUqIENyZWF0
ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxlKCkgewogLy8gY3JlYXRlIGFuZCBzdG9yZSBhbiBpbnN0
YW5jZSBvZiBQcmltZVRhYmxlLgogY2xhc3MgUHJpbWVUYWJsZVRlc3RTbXBsNyA6IHB1YmxpYyBU
ZXN0V2l0aFBhcmFtPENyZWF0ZVByaW1lVGFibGVGdW5jKj4gewogIHB1YmxpYzoKLSAgdmlydHVh
bCB+UHJpbWVUYWJsZVRlc3RTbXBsNygpIHsgZGVsZXRlIHRhYmxlXzsgfQotICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0oKSkoKTsgfQotICB2aXJ0dWFsIHZvaWQg
VGVhckRvd24oKSB7CisgIH5QcmltZVRhYmxlVGVzdFNtcGw3KCkgb3ZlcnJpZGUgeyBkZWxldGUg
dGFibGVfOyB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IHRhYmxlXyA9ICgqR2V0UGFyYW0o
KSkoKTsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSB0YWJsZV87
Ci0gICAgdGFibGVfID0gTlVMTDsKKyAgICB0YWJsZV8gPSBudWxscHRyOwogICB9CiAKICBwcm90
ZWN0ZWQ6CkBAIC0xMTAsOCArMTEwLDggQEAgVEVTVF9QKFByaW1lVGFibGVUZXN0U21wbDcsIENh
bkdldE5leHRQcmltZSkgewogLy8KIC8vIEhlcmUsIHdlIGluc3RhbnRpYXRlIG91ciB0ZXN0cyB3
aXRoIGEgbGlzdCBvZiB0d28gUHJpbWVUYWJsZSBvYmplY3QKIC8vIGZhY3RvcnkgZnVuY3Rpb25z
OgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCBQcmlt
ZVRhYmxlVGVzdFNtcGw3LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCZDcmVhdGVP
blRoZUZseVByaW1lVGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNyZWF0
ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPDEwMDA+KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AoT25UaGVGbHlBbmRQcmVDYWxjdWxhdGVkLCBQcmltZVRhYmxlVGVzdFNtcGw3LAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFZhbHVlcygmQ3JlYXRlT25UaGVGbHlQcmltZVRhYmxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ3JlYXRlUHJlQ2FsY3VsYXRlZFByaW1lVGFi
bGU8MTAwMD4pKTsKIAogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MKaW5kZXggY2U3NWNmMDMwODcwYzM3
NmRmZWM2MDMxZGIyNDcxMTA4NzAzODNmNi4uMTA0ODhiMGVhNDUwOWE2NTkxZjA2YjA1YWM1YWUx
NDQzM2I2NTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU4X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMv
c2FtcGxlOF91bml0dGVzdC5jYwpAQCAtMzcsNyArMzcsNiBAQAogCiAjaW5jbHVkZSAiZ3Rlc3Qv
Z3Rlc3QuaCIKIG5hbWVzcGFjZSB7Ci0jaWYgR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gU3VwcG9z
ZSB3ZSB3YW50IHRvIGludHJvZHVjZSBhIG5ldywgaW1wcm92ZWQgaW1wbGVtZW50YXRpb24gb2Yg
UHJpbWVUYWJsZQogLy8gd2hpY2ggY29tYmluZXMgc3BlZWQgb2YgUHJlY2FsY1ByaW1lVGFibGUg
YW5kIHZlcnNhdGlsaXR5IG9mCkBAIC01MCwyNCArNDksMjUgQEAgY2xhc3MgSHlicmlkUHJpbWVU
YWJsZSA6IHB1YmxpYyBQcmltZVRhYmxlIHsKICBwdWJsaWM6CiAgIEh5YnJpZFByaW1lVGFibGUo
Ym9vbCBmb3JjZV9vbl90aGVfZmx5LCBpbnQgbWF4X3ByZWNhbGN1bGF0ZWQpCiAgICAgICA6IG9u
X3RoZV9mbHlfaW1wbF8obmV3IE9uVGhlRmx5UHJpbWVUYWJsZSksCi0gICAgICAgIHByZWNhbGNf
aW1wbF8oZm9yY2Vfb25fdGhlX2ZseSA/IE5VTEwgOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXcgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGUobWF4X3ByZWNhbGN1bGF0ZWQpKSwKKyAgICAg
ICAgcHJlY2FsY19pbXBsXyhmb3JjZV9vbl90aGVfZmx5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgID8gbnVsbHB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBQcmVDYWxjdWxh
dGVkUHJpbWVUYWJsZShtYXhfcHJlY2FsY3VsYXRlZCkpLAogICAgICAgICBtYXhfcHJlY2FsY3Vs
YXRlZF8obWF4X3ByZWNhbGN1bGF0ZWQpIHt9Ci0gIHZpcnR1YWwgfkh5YnJpZFByaW1lVGFibGUo
KSB7CisgIH5IeWJyaWRQcmltZVRhYmxlKCkgb3ZlcnJpZGUgewogICAgIGRlbGV0ZSBvbl90aGVf
Zmx5X2ltcGxfOwogICAgIGRlbGV0ZSBwcmVjYWxjX2ltcGxfOwogICB9CiAKLSAgdmlydHVhbCBi
b29sIElzUHJpbWUoaW50IG4pIGNvbnN0IHsKLSAgICBpZiAocHJlY2FsY19pbXBsXyAhPSBOVUxM
ICYmIG4gPCBtYXhfcHJlY2FsY3VsYXRlZF8pCisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qg
b3ZlcnJpZGUgeworICAgIGlmIChwcmVjYWxjX2ltcGxfICE9IG51bGxwdHIgJiYgbiA8IG1heF9w
cmVjYWxjdWxhdGVkXykKICAgICAgIHJldHVybiBwcmVjYWxjX2ltcGxfLT5Jc1ByaW1lKG4pOwog
ICAgIGVsc2UKICAgICAgIHJldHVybiBvbl90aGVfZmx5X2ltcGxfLT5Jc1ByaW1lKG4pOwogICB9
CiAKLSAgdmlydHVhbCBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCB7CisgIGludCBHZXRO
ZXh0UHJpbWUoaW50IHApIGNvbnN0IG92ZXJyaWRlIHsKICAgICBpbnQgbmV4dF9wcmltZSA9IC0x
OwotICAgIGlmIChwcmVjYWxjX2ltcGxfICE9IE5VTEwgJiYgcCA8IG1heF9wcmVjYWxjdWxhdGVk
XykKKyAgICBpZiAocHJlY2FsY19pbXBsXyAhPSBudWxscHRyICYmIHAgPCBtYXhfcHJlY2FsY3Vs
YXRlZF8pCiAgICAgICBuZXh0X3ByaW1lID0gcHJlY2FsY19pbXBsXy0+R2V0TmV4dFByaW1lKHAp
OwogCiAgICAgcmV0dXJuIG5leHRfcHJpbWUgIT0gLTEgPyBuZXh0X3ByaW1lIDogb25fdGhlX2Zs
eV9pbXBsXy0+R2V0TmV4dFByaW1lKHApOwpAQCAtODksMjQgKzg5LDE3IEBAIHVzaW5nIDo6dGVz
dGluZzo6Q29tYmluZTsKIC8vIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlIGRpc2FibGVkLiBXZSBk
byB0aGlzIGJ5IGRlZmluaW5nIGZpeHR1cmUgd2hpY2ggd2lsbAogLy8gYWNjZXB0IGRpZmZlcmVu
dCBjb21iaW5hdGlvbnMgb2YgcGFyYW1ldGVycyBmb3IgaW5zdGFudGlhdGluZyBhCiAvLyBIeWJy
aWRQcmltZVRhYmxlIGluc3RhbmNlLgotY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMgVGVz
dFdpdGhQYXJhbTwgOjp0ZXN0aW5nOjp0dXBsZTxib29sLCBpbnQ+ID4geworY2xhc3MgUHJpbWVU
YWJsZVRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTwgOjpzdGQ6OnR1cGxlPGJvb2wsIGludD4g
PiB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgLy8gVGhpcyBj
YW4gYmUgd3JpdHRlbiBhcwotICAgIC8vCi0gICAgLy8gYm9vbCBmb3JjZV9vbl90aGVfZmx5Owot
ICAgIC8vIGludCBtYXhfcHJlY2FsY3VsYXRlZDsKLSAgICAvLyB0aWUoZm9yY2Vfb25fdGhlX2Zs
eSwgbWF4X3ByZWNhbGN1bGF0ZWQpID0gR2V0UGFyYW0oKTsKLSAgICAvLwotICAgIC8vIG9uY2Ug
dGhlIEdvb2dsZSBDKysgU3R5bGUgR3VpZGUgYWxsb3dzIHVzZSBvZiA6OnN0ZDo6dHIxOjp0aWUu
Ci0gICAgLy8KLSAgICBib29sIGZvcmNlX29uX3RoZV9mbHkgPSA6OnRlc3Rpbmc6OmdldDwwPihH
ZXRQYXJhbSgpKTsKLSAgICBpbnQgbWF4X3ByZWNhbGN1bGF0ZWQgPSA6OnRlc3Rpbmc6OmdldDwx
PihHZXRQYXJhbSgpKTsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBib29sIGZvcmNl
X29uX3RoZV9mbHk7CisgICAgaW50IG1heF9wcmVjYWxjdWxhdGVkOworICAgIHN0ZDo6dGllKGZv
cmNlX29uX3RoZV9mbHksIG1heF9wcmVjYWxjdWxhdGVkKSA9IEdldFBhcmFtKCk7CiAgICAgdGFi
bGVfID0gbmV3IEh5YnJpZFByaW1lVGFibGUoZm9yY2Vfb25fdGhlX2ZseSwgbWF4X3ByZWNhbGN1
bGF0ZWQpOwogICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlIHsKICAgICBkZWxldGUgdGFibGVfOwotICAgIHRhYmxlXyA9IE5VTEw7Cisg
ICAgdGFibGVfID0gbnVsbHB0cjsKICAgfQogICBIeWJyaWRQcmltZVRhYmxlKiB0YWJsZV87CiB9
OwpAQCAtMTU1LDE5ICsxNDgsNyBAQCBURVNUX1AoUHJpbWVUYWJsZVRlc3QsIENhbkdldE5leHRQ
cmltZSkgewogLy8gd2lsbCBwdXQgc29tZSBvZiB0aGUgdGVzdGVkIG51bWJlcnMgYmV5b25kIHRo
ZSBjYXBhYmlsaXR5IG9mIHRoZQogLy8gUHJlY2FsY1ByaW1lVGFibGUgaW5zdGFuY2UgYW5kIHNv
bWUgaW5zaWRlIGl0ICgxMCkuIENvbWJpbmUgd2lsbCBwcm9kdWNlIGFsbAogLy8gcG9zc2libGUg
Y29tYmluYXRpb25zLgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoTWVhbmluZ2Z1bFRlc3RQYXJh
bWV0ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWVUYWJsZVRlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBDb21iaW5lKEJvb2woKSwgVmFsdWVzKDEsIDEwKSkpOworSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QKE1lYW5pbmdmdWxUZXN0UGFyYW1ldGVycywgUHJpbWVUYWJsZVRl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ29tYmluZShCb29sKCksIFZhbHVlcygxLCAx
MCkpKTsKIAotI2Vsc2UKLQotLy8gR29vZ2xlIFRlc3QgbWF5IG5vdCBzdXBwb3J0IENvbWJpbmUo
KSB3aXRoIHNvbWUgY29tcGlsZXJzLiBJZiB3ZQotLy8gdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0
aW9uIHRvIGNvbXBpbGUgb3V0IGFsbCBjb2RlIHJlZmVycmluZyB0bwotLy8gdGhlIGd0ZXN0X21h
aW4gbGlicmFyeSwgTVNWQyBsaW5rZXIgd2lsbCBub3QgbGluayB0aGF0IGxpYnJhcnkgYXQKLS8v
IGFsbCBhbmQgY29uc2VxdWVudGx5IGNvbXBsYWluIGFib3V0IG1pc3NpbmcgZW50cnkgcG9pbnQg
ZGVmaW5lZCBpbgotLy8gdGhhdCBsaWJyYXJ5IChmYXRhbCBlcnJvciBMTksxNTYxOiBlbnRyeSBw
b2ludCBtdXN0IGJlCi0vLyBkZWZpbmVkKS4gVGhpcyBkdW1teSB0ZXN0IGtlZXBzIGd0ZXN0X21h
aW4gbGlua2VkIGluLgotVEVTVChEdW1teVRlc3QsIENvbWJpbmVJc05vdFN1cHBvcnRlZE9uVGhp
c1BsYXRmb3JtKSB7fQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCiB9ICAvLyBuYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxl
OV91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOV91
bml0dGVzdC5jYwppbmRleCA1M2Y5YWY1YmExZGZjMjY5NTY2MDc4ZjIzNmY2OTU1OTlkYzUyYWRh
Li5lNTAyZDA4ZDczZTdkNzBiZWRlODZjYmQ3MTE3NTRjZDA5ZGU4NDFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCkBAIC00
OSwxNiArNDksMTYgQEAgbmFtZXNwYWNlIHsKIGNsYXNzIFRlcnNlUHJpbnRlciA6IHB1YmxpYyBF
bXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICBwcml2YXRlOgogICAvLyBDYWxsZWQgYmVmb3JlIGFu
eSB0ZXN0IGFjdGl2aXR5IHN0YXJ0cy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFy
dChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovKSB7fQorICB2b2lkIE9uVGVzdFByb2dy
YW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovKSBvdmVycmlkZSB7fQogCiAg
IC8vIENhbGxlZCBhZnRlciBhbGwgdGVzdCBhY3Rpdml0aWVzIGhhdmUgZW5kZWQuCi0gIHZpcnR1
YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRl
IHsKICAgICBmcHJpbnRmKHN0ZG91dCwgIlRFU1QgJXNcbiIsIHVuaXRfdGVzdC5QYXNzZWQoKSA/
ICJQQVNTRUQiIDogIkZBSUxFRCIpOwogICAgIGZmbHVzaChzdGRvdXQpOwogICB9CiAKICAgLy8g
Q2FsbGVkIGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQo
Y29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRl
c3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAg
ICAgICAgICIqKiogVGVzdCAlcy4lcyBzdGFydGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2lu
Zm8udGVzdF9jYXNlX25hbWUoKSwKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgVGVyc2VQcmludGVy
IDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9CiAKICAgLy8gQ2FsbGVkIGFm
dGVyIGEgZmFpbGVkIGFzc2VydGlvbiBvciBhIFNVQ0NFRUQoKSBpbnZvY2F0aW9uLgotICB2aXJ0
dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0
X3Jlc3VsdCkgeworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHRlc3RfcGFydF9yZXN1bHQpIG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAg
ICAgICAgICIlcyBpbiAlczolZFxuJXNcbiIsCiAgICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0
LmZhaWxlZCgpID8gIioqKiBGYWlsdXJlIiA6ICJTdWNjZXNzIiwKQEAgLTc4LDcgKzc4LDcgQEAg
Y2xhc3MgVGVyc2VQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICB9
CiAKICAgLy8gQ2FsbGVkIGFmdGVyIGEgdGVzdCBlbmRzLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKKyAgdm9pZCBPblRlc3RFbmQoY29uc3Qg
VGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGUgewogICAgIGZwcmludGYoc3Rkb3V0LAogICAg
ICAgICAgICAgIioqKiBUZXN0ICVzLiVzIGVuZGluZy5cbiIsCiAgICAgICAgICAgICB0ZXN0X2lu
Zm8udGVzdF9jYXNlX25hbWUoKSwKQEAgLTEzNSwxMCArMTM1LDEwIEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyICoqYXJndikgewogICAvLyBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgdGhl
IFVuaXRUZXN0IHJlZmxlY3Rpb24gQVBJIHRvIGluc3BlY3QgdGVzdAogICAvLyByZXN1bHRzLiBI
ZXJlIHdlIGRpc2NvdW50IGZhaWx1cmVzIGZyb20gdGhlIHRlc3RzIHdlIGV4cGVjdGVkIHRvIGZh
aWwuCiAgIGludCB1bmV4cGVjdGVkbHlfZmFpbGVkX3Rlc3RzID0gMDsKLSAgZm9yIChpbnQgaSA9
IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgIGNv
bnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UgPSAqdW5pdF90ZXN0LkdldFRlc3RDYXNlKGkpOwotICAg
IGZvciAoaW50IGogPSAwOyBqIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7
Ci0gICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3RfY2FzZS5HZXRUZXN0SW5m
byhqKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9j
b3VudCgpOyArK2kpIHsKKyAgICBjb25zdCB0ZXN0aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUg
PSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHRl
c3Rfc3VpdGUudG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8gPSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsKICAgICAgIC8vIENvdW50
cyBmYWlsZWQgdGVzdHMgdGhhdCB3ZXJlIG5vdCBtZWFudCB0byBmYWlsICh0aG9zZSB3aXRob3V0
CiAgICAgICAvLyAnRmFpbHMnIGluIHRoZSBuYW1lKS4KICAgICAgIGlmICh0ZXN0X2luZm8ucmVz
dWx0KCktPkZhaWxlZCgpICYmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
Y3JpcHRzL1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvUkVBRE1F
Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhMzU5ZmVkOTIzMmI1MDdjNDRlNTViNDAyYWU2ZTY1OGJmOWE2MWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURN
RS5tZApAQCAtMCwwICsxLDUgQEAKKyMgUGxlYXNlIE5vdGU6CisKK0ZpbGVzIGluIHRoaXMgZGly
ZWN0b3J5IGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIGJ5IHRoZSBtYWludGFpbmVycy4gVGhleQor
cmVwcmVzZW50IG1vc3R5IGhpc3RvcmljYWwgYXJ0aWZhY3RzIGFuZCBzdXBwb3J0ZWQgYnkgdGhl
IGNvbW11bml0eSBvbmx5LiBUaGVyZQoraXMgbm8gZ3VhcmFudGVlIHdoYXRzb2V2ZXIgdGhhdCB0
aGVzZSBzY3JpcHRzIHN0aWxsIHdvcmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkKaW5kZXggYjQzZWZkZjQxZTVjMDI3
NDBmNzJiMzU1MzJiZTVjZjA0OTc5NDgzNS4uZTA5YTZlMDE3NzhkOTc0ZWFkOTc2YTVlZGY3OWZi
NWQ0MzRhMzYzMiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9n
ZW5fZ3Rlc3RfcHJlZF9pbXBsLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Njcmlw
dHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5weQpAQCAtNzgsNyArNzgsNyBAQCBkZWYgSGVhZGVyUHJl
YW1ibGUobik6CiAgICAgfQogCiAgIHJldHVybiAoCi0iIiIvLyBDb3B5cmlnaHQgMjAwNiwgR29v
Z2xlIEluYy4KKyAgIiIiLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCiAvLyBBbGwgcmln
aHRzIHJlc2VydmVkLgogLy8KIC8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTExLDYgKzExMSw4IEBAIGRlZiBI
ZWFkZXJQcmVhbWJsZShuKToKIC8vICclKGNvbW1hbmQpcycuICBETyBOT1QgRURJVCBCWSBIQU5E
IQogLy8KIC8vIEltcGxlbWVudHMgYSBmYW1pbHkgb2YgZ2VuZXJpYyBwcmVkaWNhdGUgYXNzZXJ0
aW9uIG1hY3Jvcy4KKy8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKKwogCiAjaWZu
ZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCiAjZGVmaW5lIEdURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJFRF9JTVBMX0hfCkBAIC0yNDYsOCArMjQ4LDEwIEBAIEFz
c2VydGlvblJlc3VsdCBBc3NlcnRQcmVkJShuKXNIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0
IiIiICUgREVGUwogCiAgIGltcGwgKz0gJyA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJl
IicKIAotICBpbXBsICs9IEl0ZXIobiwgIiIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
PDwgIlxcbiIgPDwgZSVzIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdiVzIiIiKQorICBpbXBsICs9
IEl0ZXIoCisgICAgICBuLCAiIiIKKyAgICAgIDw8ICJcXG4iIDw8IGUlcyA8PCAiIGV2YWx1YXRl
cyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2JXMpIiIiCisgICkKIAogICBpbXBs
ICs9ICIiIjsKIH0KQEAgLTMzMyw3ICszMzcsNyBAQCBkZWYgVW5pdFRlc3RQcmVhbWJsZSgpOgog
ICAgIH0KIAogICByZXR1cm4gKAotIiIiLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCisg
ICIiIi8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQyNyw3ICs0MzEsNyBAQCBkZWYgVGVzdHNGb3JBcml0
eShuKToKICAgICB9CiAKICAgdGVzdHMgPSAoCi0iIiIvLyBTYW1wbGUgZnVuY3Rpb25zL2Z1bmN0
b3JzIGZvciB0ZXN0aW5nICUoYXJpdHkpcyBwcmVkaWNhdGUgYXNzZXJ0aW9ucy4KKyAgIiIiLy8g
U2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9ycyBmb3IgdGVzdGluZyAlKGFyaXR5KXMgcHJlZGljYXRl
IGFzc2VydGlvbnMuCiAKIC8vIEEgJShhcml0eSlzIHByZWRpY2F0ZSBmdW5jdGlvbi4KIHRlbXBs
YXRlIDwlKHR5cGVzKXM+CkBAIC00MzUsOSArNDM5LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24lKG4p
cyglKHR2cylzKSB7CiAgIHJldHVybiAlKHZfc3VtKXMgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93
aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBn
Y2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVt
cGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBu
ZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0
byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9v
bCBQcmVkRnVuY3Rpb24lKG4pc0ludCglKGludF92cylzKSB7CiAgIHJldHVybiAlKHZfc3VtKXMg
PiAwOwogfQpAQCAtNTEwLDcgKzUxMyw3IEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvciUobilz
IHsKIAogY2xhc3MgUHJlZGljYXRlJShuKXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
IHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3Zl
cnJpZGUgewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9
IGZhbHNlOyIiIiAlIERFRlMKIApAQCAtNTIwLDcgKzUyMyw3IEBAIGNsYXNzIFByZWRpY2F0ZSUo
bilzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICIiIgogCiAgIHRlc3RzICs9ICIiIgot
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7
CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMg
d2FzIGV2YWx1YXRlZAogICAgIC8vIGV4YWN0bHkgb25jZS4iIiIKIApAQCAtNTQwLDEwICs1NDMs
MTAgQEAgY2xhc3MgUHJlZGljYXRlJShuKXNUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
ICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVk
IHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVu
Y3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0
ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVu
IHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBk
aWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogIiIiICUgREVGUwog
CkBAIC01NzIsMTIgKzU3NSwxMiBAQCB0eXBlZGVmIFByZWRpY2F0ZSUobilzVGVzdCBBU1NFUlRf
UFJFRCUobilzVGVzdDsKICAgICAiIiJSZXR1cm5zIHRoZSB0ZXN0IGZvciBhIHByZWRpY2F0ZSBh
c3NlcnRpb24gbWFjcm8uCiAKICAgICBBcmdzOgotICAgICAgdXNlX2Zvcm1hdDogICAgIHRydWUg
aWZmIHRoZSBhc3NlcnRpb24gaXMgYSAqX1BSRURfRk9STUFUKi4KLSAgICAgIHVzZV9hc3NlcnQ6
ICAgICB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIGlzIGEgQVNTRVJUXyouCi0gICAgICBleHBlY3Rf
ZmFpbHVyZTogdHJ1ZSBpZmYgdGhlIGFzc2VydGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgotICAg
ICAgdXNlX2Z1bmN0b3I6ICAgIHRydWUgaWZmIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgYXNz
ZXJ0aW9uIGlzCisgICAgICB1c2VfZm9ybWF0OiAgICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
YXNzZXJ0aW9uIGlzIGEgKl9QUkVEX0ZPUk1BVCouCisgICAgICB1c2VfYXNzZXJ0OiAgICAgdHJ1
ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGEgQVNTRVJUXyouCisgICAgICBleHBl
Y3RfZmFpbHVyZTogdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGV4cGVjdGVk
IHRvIGZhaWwuCisgICAgICB1c2VfZnVuY3RvcjogICAgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
Zmlyc3QgYXJndW1lbnQgb2YgdGhlIGFzc2VydGlvbiBpcwogICAgICAgICAgICAgICAgICAgICAg
IGEgZnVuY3RvciAoYXMgb3Bwb3NlZCB0byBhIGZ1bmN0aW9uKQotICAgICAgdXNlX3VzZXJfdHlw
ZTogIHRydWUgaWZmIHRoZSBwcmVkaWNhdGUgZnVuY3Rvci9mdW5jdGlvbiB0YWtlcworICAgICAg
dXNlX3VzZXJfdHlwZTogIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHByZWRpY2F0ZSBmdW5jdG9y
L2Z1bmN0aW9uIHRha2VzCiAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQocykgb2YgYSB1
c2VyLWRlZmluZWQgdHlwZS4KIAogICAgIEV4YW1wbGU6CkBAIC01ODgsNyArNTkxLDcgQEAgdHlw
ZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3QgQVNTRVJUX1BSRUQlKG4pc1Rlc3Q7CiAKICAgICBpZiB1
c2VfYXNzZXJ0OgogICAgICAgYXNzcnQgPSAnQVNTRVJUJyAgIyAnYXNzZXJ0JyBpcyByZXNlcnZl
ZCwgc28gd2UgY2Fubm90IHVzZQotICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGlkZW50
aWZpZXIgaGVyZS4KKyAgICAgICMgdGhhdCBpZGVudGlmaWVyIGhlcmUuCiAgICAgZWxzZToKICAg
ICAgIGFzc3J0ID0gJ0VYUEVDVCcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2NyaXB0cy9wdW1wLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9wdW1w
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1ZWZiNjUzYzIwN2QxZjFjMmFlY2M0
ZDY5MGJmNzMyZTNjMWQ3MWFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDg1NSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0iIiJwdW1wIHYwLjIuMCAtIFByZXR0eSBVc2VmdWwgZm9yIE1ldGEgUHJv
Z3JhbW1pbmcuCi0KLUEgdG9vbCBmb3IgcHJlcHJvY2Vzc29yIG1ldGEgcHJvZ3JhbW1pbmcuICBV
c2VmdWwgZm9yIGdlbmVyYXRpbmcKLXJlcGV0aXRpdmUgYm9pbGVycGxhdGUgY29kZS4gIEVzcGVj
aWFsbHkgdXNlZnVsIGZvciB3cml0aW5nIEMrKwotY2xhc3NlcywgZnVuY3Rpb25zLCBtYWNyb3Ms
IGFuZCB0ZW1wbGF0ZXMgdGhhdCBuZWVkIHRvIHdvcmsgd2l0aAotdmFyaW91cyBudW1iZXIgb2Yg
YXJndW1lbnRzLgotCi1VU0FHRToKLSAgICAgICBwdW1wLnB5IFNPVVJDRV9GSUxFCi0KLUVYQU1Q
TEVTOgotICAgICAgIHB1bXAucHkgZm9vLmNjLnB1bXAKLSAgICAgICAgIENvbnZlcnRzIGZvby5j
Yy5wdW1wIHRvIGZvby5jYy4KLQotR1JBTU1BUjoKLSAgICAgICBDT0RFIDo6PSBBVE9NSUNfQ09E
RSoKLSAgICAgICBBVE9NSUNfQ09ERSA6Oj0gJHZhciBJRCA9IEVYUFJFU1NJT04KLSAgICAgICAg
ICAgfCAkdmFyIElEID0gW1sgQ09ERSBdXQotICAgICAgICAgICB8ICRyYW5nZSBJRCBFWFBSRVNT
SU9OLi5FWFBSRVNTSU9OCi0gICAgICAgICAgIHwgJGZvciBJRCBTRVBBUkFUT1IgW1sgQ09ERSBd
XQotICAgICAgICAgICB8ICQoJCkKLSAgICAgICAgICAgfCAkSUQKLSAgICAgICAgICAgfCAkKEVY
UFJFU1NJT04pCi0gICAgICAgICAgIHwgJGlmIEVYUFJFU1NJT04gW1sgQ09ERSBdXSBFTFNFX0JS
QU5DSAotICAgICAgICAgICB8IFtbIENPREUgXV0KLSAgICAgICAgICAgfCBSQVdfQ09ERQotICAg
ICAgIFNFUEFSQVRPUiA6Oj0gUkFXX0NPREUgfCBFTVBUWQotICAgICAgIEVMU0VfQlJBTkNIIDo6
PSAkZWxzZSBbWyBDT0RFIF1dCi0gICAgICAgICAgIHwgJGVsaWYgRVhQUkVTU0lPTiBbWyBDT0RF
IF1dIEVMU0VfQlJBTkNICi0gICAgICAgICAgIHwgRU1QVFkKLSAgICAgICBFWFBSRVNTSU9OIGhh
cyBQeXRob24gc3ludGF4LgotIiIiCi0KLV9fYXV0aG9yX18gPSAnd2FuQGdvb2dsZS5jb20gKFpo
YW55b25nIFdhbiknCi0KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLQotVE9L
RU5fVEFCTEUgPSBbCi0gICAgKHJlLmNvbXBpbGUocidcJHZhclxzKycpLCAnJHZhcicpLAotICAg
IChyZS5jb21waWxlKHInXCRlbGlmXHMrJyksICckZWxpZicpLAotICAgIChyZS5jb21waWxlKHIn
XCRlbHNlXHMrJyksICckZWxzZScpLAotICAgIChyZS5jb21waWxlKHInXCRmb3JccysnKSwgJyRm
b3InKSwKLSAgICAocmUuY29tcGlsZShyJ1wkaWZccysnKSwgJyRpZicpLAotICAgIChyZS5jb21w
aWxlKHInXCRyYW5nZVxzKycpLCAnJHJhbmdlJyksCi0gICAgKHJlLmNvbXBpbGUocidcJFtfQS1a
YS16XVx3KicpLCAnJGlkJyksCi0gICAgKHJlLmNvbXBpbGUocidcJFwoXCRcKScpLCAnJCgkKScp
LAotICAgIChyZS5jb21waWxlKHInXCQnKSwgJyQnKSwKLSAgICAocmUuY29tcGlsZShyJ1xbXFtc
bj8nKSwgJ1tbJyksCi0gICAgKHJlLmNvbXBpbGUocidcXVxdXG4/JyksICddXScpLAotICAgIF0K
LQotCi1jbGFzcyBDdXJzb3I6Ci0gICIiIlJlcHJlc2VudHMgYSBwb3NpdGlvbiAobGluZSBhbmQg
Y29sdW1uKSBpbiBhIHRleHQgZmlsZS4iIiIKLQotICBkZWYgX19pbml0X18oc2VsZiwgbGluZT0t
MSwgY29sdW1uPS0xKToKLSAgICBzZWxmLmxpbmUgPSBsaW5lCi0gICAgc2VsZi5jb2x1bW4gPSBj
b2x1bW4KLQotICBkZWYgX19lcV9fKHNlbGYsIHJocyk6Ci0gICAgcmV0dXJuIHNlbGYubGluZSA9
PSByaHMubGluZSBhbmQgc2VsZi5jb2x1bW4gPT0gcmhzLmNvbHVtbgotCi0gIGRlZiBfX25lX18o
c2VsZiwgcmhzKToKLSAgICByZXR1cm4gbm90IHNlbGYgPT0gcmhzCi0KLSAgZGVmIF9fbHRfXyhz
ZWxmLCByaHMpOgotICAgIHJldHVybiBzZWxmLmxpbmUgPCByaHMubGluZSBvciAoCi0gICAgICAg
IHNlbGYubGluZSA9PSByaHMubGluZSBhbmQgc2VsZi5jb2x1bW4gPCByaHMuY29sdW1uKQotCi0g
IGRlZiBfX2xlX18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4gc2VsZiA8IHJocyBvciBzZWxmID09
IHJocwotCi0gIGRlZiBfX2d0X18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDwgc2VsZgot
Ci0gIGRlZiBfX2dlX18oc2VsZiwgcmhzKToKLSAgICByZXR1cm4gcmhzIDw9IHNlbGYKLQotICBk
ZWYgX19zdHJfXyhzZWxmKToKLSAgICBpZiBzZWxmID09IEVvZigpOgotICAgICAgcmV0dXJuICdF
T0YnCi0gICAgZWxzZToKLSAgICAgIHJldHVybiAnJXMoJXMpJyAlIChzZWxmLmxpbmUgKyAxLCBz
ZWxmLmNvbHVtbikKLQotICBkZWYgX19hZGRfXyhzZWxmLCBvZmZzZXQpOgotICAgIHJldHVybiBD
dXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbiArIG9mZnNldCkKLQotICBkZWYgX19zdWJfXyhz
ZWxmLCBvZmZzZXQpOgotICAgIHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbiAt
IG9mZnNldCkKLQotICBkZWYgQ2xvbmUoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Yg
c2VsZi4iIiIKLQotICAgIHJldHVybiBDdXJzb3Ioc2VsZi5saW5lLCBzZWxmLmNvbHVtbikKLQot
Ci0jIFNwZWNpYWwgY3Vyc29yIHRvIGluZGljYXRlIHRoZSBlbmQtb2YtZmlsZS4KLWRlZiBFb2Yo
KToKLSAgIiIiUmV0dXJucyB0aGUgc3BlY2lhbCBjdXJzb3IgdG8gZGVub3RlIHRoZSBlbmQtb2Yt
ZmlsZS4iIiIKLSAgcmV0dXJuIEN1cnNvcigtMSwgLTEpCi0KLQotY2xhc3MgVG9rZW46Ci0gICIi
IlJlcHJlc2VudHMgYSB0b2tlbiBpbiBhIFB1bXAgc291cmNlIGZpbGUuIiIiCi0KLSAgZGVmIF9f
aW5pdF9fKHNlbGYsIHN0YXJ0PU5vbmUsIGVuZD1Ob25lLCB2YWx1ZT1Ob25lLCB0b2tlbl90eXBl
PU5vbmUpOgotICAgIGlmIHN0YXJ0IGlzIE5vbmU6Ci0gICAgICBzZWxmLnN0YXJ0ID0gRW9mKCkK
LSAgICBlbHNlOgotICAgICAgc2VsZi5zdGFydCA9IHN0YXJ0Ci0gICAgaWYgZW5kIGlzIE5vbmU6
Ci0gICAgICBzZWxmLmVuZCA9IEVvZigpCi0gICAgZWxzZToKLSAgICAgIHNlbGYuZW5kID0gZW5k
Ci0gICAgc2VsZi52YWx1ZSA9IHZhbHVlCi0gICAgc2VsZi50b2tlbl90eXBlID0gdG9rZW5fdHlw
ZQotCi0gIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgIHJldHVybiAnVG9rZW4gQCVzOiBcJyVzXCcg
dHlwZT0lcycgJSAoCi0gICAgICAgIHNlbGYuc3RhcnQsIHNlbGYudmFsdWUsIHNlbGYudG9rZW5f
dHlwZSkKLQotICBkZWYgQ2xvbmUoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGNvcHkgb2Ygc2Vs
Zi4iIiIKLQotICAgIHJldHVybiBUb2tlbihzZWxmLnN0YXJ0LkNsb25lKCksIHNlbGYuZW5kLkNs
b25lKCksIHNlbGYudmFsdWUsCi0gICAgICAgICAgICAgICAgIHNlbGYudG9rZW5fdHlwZSkKLQot
Ci1kZWYgU3RhcnRzV2l0aChsaW5lcywgcG9zLCBzdHJpbmcpOgotICAiIiJSZXR1cm5zIFRydWUg
aWZmIHRoZSBnaXZlbiBwb3NpdGlvbiBpbiBsaW5lcyBzdGFydHMgd2l0aCAnc3RyaW5nJy4iIiIK
LQotICByZXR1cm4gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XS5zdGFydHN3aXRoKHN0cmlu
ZykKLQotCi1kZWYgRmluZEZpcnN0SW5MaW5lKGxpbmUsIHRva2VuX3RhYmxlKToKLSAgYmVzdF9t
YXRjaF9zdGFydCA9IC0xCi0gIGZvciAocmVnZXgsIHRva2VuX3R5cGUpIGluIHRva2VuX3RhYmxl
OgotICAgIG0gPSByZWdleC5zZWFyY2gobGluZSkKLSAgICBpZiBtOgotICAgICAgIyBXZSBmb3Vu
ZCByZWdleCBpbiBsaW5lcwotICAgICAgaWYgYmVzdF9tYXRjaF9zdGFydCA8IDAgb3IgbS5zdGFy
dCgpIDwgYmVzdF9tYXRjaF9zdGFydDoKLSAgICAgICAgYmVzdF9tYXRjaF9zdGFydCA9IG0uc3Rh
cnQoKQotICAgICAgICBiZXN0X21hdGNoX2xlbmd0aCA9IG0uZW5kKCkgLSBtLnN0YXJ0KCkKLSAg
ICAgICAgYmVzdF9tYXRjaF90b2tlbl90eXBlID0gdG9rZW5fdHlwZQotCi0gIGlmIGJlc3RfbWF0
Y2hfc3RhcnQgPCAwOgotICAgIHJldHVybiBOb25lCi0KLSAgcmV0dXJuIChiZXN0X21hdGNoX3N0
YXJ0LCBiZXN0X21hdGNoX2xlbmd0aCwgYmVzdF9tYXRjaF90b2tlbl90eXBlKQotCi0KLWRlZiBG
aW5kRmlyc3QobGluZXMsIHRva2VuX3RhYmxlLCBjdXJzb3IpOgotICAiIiJGaW5kcyB0aGUgZmly
c3Qgb2NjdXJyZW5jZSBvZiBhbnkgc3RyaW5nIGluIHN0cmluZ3MgaW4gbGluZXMuIiIiCi0KLSAg
c3RhcnQgPSBjdXJzb3IuQ2xvbmUoKQotICBjdXJfbGluZV9udW1iZXIgPSBjdXJzb3IubGluZQot
ICBmb3IgbGluZSBpbiBsaW5lc1tzdGFydC5saW5lOl06Ci0gICAgaWYgY3VyX2xpbmVfbnVtYmVy
ID09IHN0YXJ0LmxpbmU6Ci0gICAgICBsaW5lID0gbGluZVtzdGFydC5jb2x1bW46XQotICAgIG0g
PSBGaW5kRmlyc3RJbkxpbmUobGluZSwgdG9rZW5fdGFibGUpCi0gICAgaWYgbToKLSAgICAgICMg
V2UgZm91bmQgYSByZWdleCBpbiBsaW5lLgotICAgICAgKHN0YXJ0X2NvbHVtbiwgbGVuZ3RoLCB0
b2tlbl90eXBlKSA9IG0KLSAgICAgIGlmIGN1cl9saW5lX251bWJlciA9PSBzdGFydC5saW5lOgot
ICAgICAgICBzdGFydF9jb2x1bW4gKz0gc3RhcnQuY29sdW1uCi0gICAgICBmb3VuZF9zdGFydCA9
IEN1cnNvcihjdXJfbGluZV9udW1iZXIsIHN0YXJ0X2NvbHVtbikKLSAgICAgIGZvdW5kX2VuZCA9
IGZvdW5kX3N0YXJ0ICsgbGVuZ3RoCi0gICAgICByZXR1cm4gTWFrZVRva2VuKGxpbmVzLCBmb3Vu
ZF9zdGFydCwgZm91bmRfZW5kLCB0b2tlbl90eXBlKQotICAgIGN1cl9saW5lX251bWJlciArPSAx
Ci0gICMgV2UgZmFpbGVkIHRvIGZpbmQgc3RyIGluIGxpbmVzCi0gIHJldHVybiBOb25lCi0KLQot
ZGVmIFN1YlN0cmluZyhsaW5lcywgc3RhcnQsIGVuZCk6Ci0gICIiIlJldHVybnMgYSBzdWJzdHJp
bmcgaW4gbGluZXMuIiIiCi0KLSAgaWYgZW5kID09IEVvZigpOgotICAgIGVuZCA9IEN1cnNvcihs
ZW4obGluZXMpIC0gMSwgbGVuKGxpbmVzWy0xXSkpCi0KLSAgaWYgc3RhcnQgPj0gZW5kOgotICAg
IHJldHVybiAnJwotCi0gIGlmIHN0YXJ0LmxpbmUgPT0gZW5kLmxpbmU6Ci0gICAgcmV0dXJuIGxp
bmVzW3N0YXJ0LmxpbmVdW3N0YXJ0LmNvbHVtbjplbmQuY29sdW1uXQotCi0gIHJlc3VsdF9saW5l
cyA9IChbbGluZXNbc3RhcnQubGluZV1bc3RhcnQuY29sdW1uOl1dICsKLSAgICAgICAgICAgICAg
ICAgIGxpbmVzW3N0YXJ0LmxpbmUgKyAxOmVuZC5saW5lXSArCi0gICAgICAgICAgICAgICAgICBb
bGluZXNbZW5kLmxpbmVdWzplbmQuY29sdW1uXV0pCi0gIHJldHVybiAnJy5qb2luKHJlc3VsdF9s
aW5lcykKLQotCi1kZWYgU3RyaXBNZXRhQ29tbWVudHMoc3RyKToKLSAgIiIiU3RyaXAgbWV0YSBj
b21tZW50cyBmcm9tIGVhY2ggbGluZSBpbiB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotCi0gICMgRmly
c3QsIGNvbXBsZXRlbHkgcmVtb3ZlIGxpbmVzIGNvbnRhaW5pbmcgbm90aGluZyBidXQgYSBtZXRh
Ci0gICMgY29tbWVudCwgaW5jbHVkaW5nIHRoZSB0cmFpbGluZyBcbi4KLSAgc3RyID0gcmUuc3Vi
KHInXlxzKlwkXCQuKlxuJywgJycsIHN0cikKLQotICAjIFRoZW4sIHJlbW92ZSBtZXRhIGNvbW1l
bnRzIGZyb20gY29udGVudGZ1bCBsaW5lcy4KLSAgcmV0dXJuIHJlLnN1YihyJ1xzKlwkXCQuKics
ICcnLCBzdHIpCi0KLQotZGVmIE1ha2VUb2tlbihsaW5lcywgc3RhcnQsIGVuZCwgdG9rZW5fdHlw
ZSk6Ci0gICIiIkNyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgVG9rZW4uIiIiCi0KLSAgcmV0dXJu
IFRva2VuKHN0YXJ0LCBlbmQsIFN1YlN0cmluZyhsaW5lcywgc3RhcnQsIGVuZCksIHRva2VuX3R5
cGUpCi0KLQotZGVmIFBhcnNlVG9rZW4obGluZXMsIHBvcywgcmVnZXgsIHRva2VuX3R5cGUpOgot
ICBsaW5lID0gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmVnZXguc2VhcmNo
KGxpbmUpCi0gIGlmIG0gYW5kIG5vdCBtLnN0YXJ0KCk6Ci0gICAgcmV0dXJuIE1ha2VUb2tlbihs
aW5lcywgcG9zLCBwb3MgKyBtLmVuZCgpLCB0b2tlbl90eXBlKQotICBlbHNlOgotICAgIHByaW50
ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQgJXMuJyAlICh0b2tlbl90eXBlLCBwb3MpCi0gICAgc3lz
LmV4aXQoMSkKLQotCi1JRF9SRUdFWCA9IHJlLmNvbXBpbGUocidbX0EtWmEtel1cdyonKQotRVFf
UkVHRVggPSByZS5jb21waWxlKHInPScpCi1SRVNUX09GX0xJTkVfUkVHRVggPSByZS5jb21waWxl
KHInLio/KD89JHxcJFwkKScpCi1PUFRJT05BTF9XSElURV9TUEFDRVNfUkVHRVggPSByZS5jb21w
aWxlKHInXHMqJykKLVdISVRFX1NQQUNFX1JFR0VYID0gcmUuY29tcGlsZShyJ1xzJykKLURPVF9E
T1RfUkVHRVggPSByZS5jb21waWxlKHInXC5cLicpCi0KLQotZGVmIFNraXAobGluZXMsIHBvcywg
cmVnZXgpOgotICBsaW5lID0gbGluZXNbcG9zLmxpbmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmUu
c2VhcmNoKHJlZ2V4LCBsaW5lKQotICBpZiBtIGFuZCBub3QgbS5zdGFydCgpOgotICAgIHJldHVy
biBwb3MgKyBtLmVuZCgpCi0gIGVsc2U6Ci0gICAgcmV0dXJuIHBvcwotCi0KLWRlZiBTa2lwVW50
aWwobGluZXMsIHBvcywgcmVnZXgsIHRva2VuX3R5cGUpOgotICBsaW5lID0gbGluZXNbcG9zLmxp
bmVdW3Bvcy5jb2x1bW46XQotICBtID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQotICBpZiBtOgot
ICAgIHJldHVybiBwb3MgKyBtLnN0YXJ0KCkKLSAgZWxzZToKLSAgICBwcmludCAoJ0VSUk9SOiAl
cyBleHBlY3RlZCBvbiBsaW5lICVzIGFmdGVyIGNvbHVtbiAlcy4nICUKLSAgICAgICAgICAgKHRv
a2VuX3R5cGUsIHBvcy5saW5lICsgMSwgcG9zLmNvbHVtbikpCi0gICAgc3lzLmV4aXQoMSkKLQot
Ci1kZWYgUGFyc2VFeHBUb2tlbkluUGFyZW5zKGxpbmVzLCBwb3MpOgotICBkZWYgUGFyc2VJblBh
cmVucyhwb3MpOgotICAgIHBvcyA9IFNraXAobGluZXMsIHBvcywgT1BUSU9OQUxfV0hJVEVfU1BB
Q0VTX1JFR0VYKQotICAgIHBvcyA9IFNraXAobGluZXMsIHBvcywgcidcKCcpCi0gICAgcG9zID0g
UGFyc2UocG9zKQotICAgIHBvcyA9IFNraXAobGluZXMsIHBvcywgcidcKScpCi0gICAgcmV0dXJu
IHBvcwotCi0gIGRlZiBQYXJzZShwb3MpOgotICAgIHBvcyA9IFNraXBVbnRpbChsaW5lcywgcG9z
LCByJ1wofFwpJywgJyknKQotICAgIGlmIFN1YlN0cmluZyhsaW5lcywgcG9zLCBwb3MgKyAxKSA9
PSAnKCc6Ci0gICAgICBwb3MgPSBQYXJzZShwb3MgKyAxKQotICAgICAgcG9zID0gU2tpcChsaW5l
cywgcG9zLCByJ1wpJykKLSAgICAgIHJldHVybiBQYXJzZShwb3MpCi0gICAgZWxzZToKLSAgICAg
IHJldHVybiBwb3MKLQotICBzdGFydCA9IHBvcy5DbG9uZSgpCi0gIHBvcyA9IFBhcnNlSW5QYXJl
bnMocG9zKQotICByZXR1cm4gTWFrZVRva2VuKGxpbmVzLCBzdGFydCwgcG9zLCAnZXhwJykKLQot
Ci1kZWYgUlN0cmlwTmV3TGluZUZyb21Ub2tlbih0b2tlbik6Ci0gIGlmIHRva2VuLnZhbHVlLmVu
ZHN3aXRoKCdcbicpOgotICAgIHJldHVybiBUb2tlbih0b2tlbi5zdGFydCwgdG9rZW4uZW5kLCB0
b2tlbi52YWx1ZVs6LTFdLCB0b2tlbi50b2tlbl90eXBlKQotICBlbHNlOgotICAgIHJldHVybiB0
b2tlbgotCi0KLWRlZiBUb2tlbml6ZUxpbmVzKGxpbmVzLCBwb3MpOgotICB3aGlsZSBUcnVlOgot
ICAgIGZvdW5kID0gRmluZEZpcnN0KGxpbmVzLCBUT0tFTl9UQUJMRSwgcG9zKQotICAgIGlmIG5v
dCBmb3VuZDoKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBFb2YoKSwgJ2NvZGUn
KQotICAgICAgcmV0dXJuCi0KLSAgICBpZiBmb3VuZC5zdGFydCA9PSBwb3M6Ci0gICAgICBwcmV2
X3Rva2VuID0gTm9uZQotICAgICAgcHJldl90b2tlbl9yc3RyaXBwZWQgPSBOb25lCi0gICAgZWxz
ZToKLSAgICAgIHByZXZfdG9rZW4gPSBNYWtlVG9rZW4obGluZXMsIHBvcywgZm91bmQuc3RhcnQs
ICdjb2RlJykKLSAgICAgIHByZXZfdG9rZW5fcnN0cmlwcGVkID0gUlN0cmlwTmV3TGluZUZyb21U
b2tlbihwcmV2X3Rva2VuKQotCi0gICAgaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJHZhcic6Ci0g
ICAgICBpZiBwcmV2X3Rva2VuX3JzdHJpcHBlZDoKLSAgICAgICAgeWllbGQgcHJldl90b2tlbl9y
c3RyaXBwZWQKLSAgICAgIHlpZWxkIGZvdW5kCi0gICAgICBpZF90b2tlbiA9IFBhcnNlVG9rZW4o
bGluZXMsIGZvdW5kLmVuZCwgSURfUkVHRVgsICdpZCcpCi0gICAgICB5aWVsZCBpZF90b2tlbgot
ICAgICAgcG9zID0gU2tpcChsaW5lcywgaWRfdG9rZW4uZW5kLCBPUFRJT05BTF9XSElURV9TUEFD
RVNfUkVHRVgpCi0KLSAgICAgIGVxX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgcG9zLCBFUV9S
RUdFWCwgJz0nKQotICAgICAgeWllbGQgZXFfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGluZXMs
IGVxX3Rva2VuLmVuZCwgcidccyonKQotCi0gICAgICBpZiBTdWJTdHJpbmcobGluZXMsIHBvcywg
cG9zICsgMikgIT0gJ1tbJzoKLSAgICAgICAgZXhwX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywg
cG9zLCBSRVNUX09GX0xJTkVfUkVHRVgsICdleHAnKQotICAgICAgICB5aWVsZCBleHBfdG9rZW4K
LSAgICAgICAgcG9zID0gQ3Vyc29yKGV4cF90b2tlbi5lbmQubGluZSArIDEsIDApCi0gICAgZWxp
ZiBmb3VuZC50b2tlbl90eXBlID09ICckZm9yJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlw
cGVkOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91
bmQKLSAgICAgIGlkX3Rva2VuID0gUGFyc2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdF
WCwgJ2lkJykKLSAgICAgIHlpZWxkIGlkX3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBp
ZF90b2tlbi5lbmQsIFdISVRFX1NQQUNFX1JFR0VYKQotICAgIGVsaWYgZm91bmQudG9rZW5fdHlw
ZSA9PSAnJHJhbmdlJzoKLSAgICAgIGlmIHByZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5
aWVsZCBwcmV2X3Rva2VuX3JzdHJpcHBlZAotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGlkX3Rv
a2VuID0gUGFyc2VUb2tlbihsaW5lcywgZm91bmQuZW5kLCBJRF9SRUdFWCwgJ2lkJykKLSAgICAg
IHlpZWxkIGlkX3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBpZF90b2tlbi5lbmQsIE9Q
VElPTkFMX1dISVRFX1NQQUNFU19SRUdFWCkKLQotICAgICAgZG90c19wb3MgPSBTa2lwVW50aWwo
bGluZXMsIHBvcywgRE9UX0RPVF9SRUdFWCwgJy4uJykKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihs
aW5lcywgcG9zLCBkb3RzX3BvcywgJ2V4cCcpCi0gICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMs
IGRvdHNfcG9zLCBkb3RzX3BvcyArIDIsICcuLicpCi0gICAgICBwb3MgPSBkb3RzX3BvcyArIDIK
LSAgICAgIG5ld19wb3MgPSBDdXJzb3IocG9zLmxpbmUgKyAxLCAwKQotICAgICAgeWllbGQgTWFr
ZVRva2VuKGxpbmVzLCBwb3MsIG5ld19wb3MsICdleHAnKQotICAgICAgcG9zID0gbmV3X3Bvcwot
ICAgIGVsaWYgZm91bmQudG9rZW5fdHlwZSA9PSAnJCc6Ci0gICAgICBpZiBwcmV2X3Rva2VuOgot
ICAgICAgICB5aWVsZCBwcmV2X3Rva2VuCi0gICAgICB5aWVsZCBmb3VuZAotICAgICAgZXhwX3Rv
a2VuID0gUGFyc2VFeHBUb2tlbkluUGFyZW5zKGxpbmVzLCBmb3VuZC5lbmQpCi0gICAgICB5aWVs
ZCBleHBfdG9rZW4KLSAgICAgIHBvcyA9IGV4cF90b2tlbi5lbmQKLSAgICBlbGlmIChmb3VuZC50
b2tlbl90eXBlID09ICddXScgb3IgZm91bmQudG9rZW5fdHlwZSA9PSAnJGlmJyBvcgotICAgICAg
ICAgIGZvdW5kLnRva2VuX3R5cGUgPT0gJyRlbGlmJyBvciBmb3VuZC50b2tlbl90eXBlID09ICck
ZWxzZScpOgotICAgICAgaWYgcHJldl90b2tlbl9yc3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHBy
ZXZfdG9rZW5fcnN0cmlwcGVkCi0gICAgICB5aWVsZCBmb3VuZAotICAgICAgcG9zID0gZm91bmQu
ZW5kCi0gICAgZWxzZToKLSAgICAgIGlmIHByZXZfdG9rZW46Ci0gICAgICAgIHlpZWxkIHByZXZf
dG9rZW4KLSAgICAgIHlpZWxkIGZvdW5kCi0gICAgICBwb3MgPSBmb3VuZC5lbmQKLQotCi1kZWYg
VG9rZW5pemUocyk6Ci0gICIiIkEgZ2VuZXJhdG9yIHRoYXQgeWllbGRzIHRoZSB0b2tlbnMgaW4g
dGhlIGdpdmVuIHN0cmluZy4iIiIKLSAgaWYgcyAhPSAnJzoKLSAgICBsaW5lcyA9IHMuc3BsaXRs
aW5lcyhUcnVlKQotICAgIGZvciB0b2tlbiBpbiBUb2tlbml6ZUxpbmVzKGxpbmVzLCBDdXJzb3Io
MCwgMCkpOgotICAgICAgeWllbGQgdG9rZW4KLQotCi1jbGFzcyBDb2RlTm9kZToKLSAgZGVmIF9f
aW5pdF9fKHNlbGYsIGF0b21pY19jb2RlX2xpc3Q9Tm9uZSk6Ci0gICAgc2VsZi5hdG9taWNfY29k
ZSA9IGF0b21pY19jb2RlX2xpc3QKLQotCi1jbGFzcyBWYXJOb2RlOgotICBkZWYgX19pbml0X18o
c2VsZiwgaWRlbnRpZmllcj1Ob25lLCBhdG9taWNfY29kZT1Ob25lKToKLSAgICBzZWxmLmlkZW50
aWZpZXIgPSBpZGVudGlmaWVyCi0gICAgc2VsZi5hdG9taWNfY29kZSA9IGF0b21pY19jb2RlCi0K
LQotY2xhc3MgUmFuZ2VOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllcj1Ob25l
LCBleHAxPU5vbmUsIGV4cDI9Tm9uZSk6Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmll
cgotICAgIHNlbGYuZXhwMSA9IGV4cDEKLSAgICBzZWxmLmV4cDIgPSBleHAyCi0KLQotY2xhc3Mg
Rm9yTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGlkZW50aWZpZXI9Tm9uZSwgc2VwPU5vbmUs
IGNvZGU9Tm9uZSk6Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgotICAgIHNlbGYu
c2VwID0gc2VwCi0gICAgc2VsZi5jb2RlID0gY29kZQotCi0KLWNsYXNzIEVsc2VOb2RlOgotICBk
ZWYgX19pbml0X18oc2VsZiwgZWxzZV9icmFuY2g9Tm9uZSk6Ci0gICAgc2VsZi5lbHNlX2JyYW5j
aCA9IGVsc2VfYnJhbmNoCi0KLQotY2xhc3MgSWZOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwg
ZXhwPU5vbmUsIHRoZW5fYnJhbmNoPU5vbmUsIGVsc2VfYnJhbmNoPU5vbmUpOgotICAgIHNlbGYu
ZXhwID0gZXhwCi0gICAgc2VsZi50aGVuX2JyYW5jaCA9IHRoZW5fYnJhbmNoCi0gICAgc2VsZi5l
bHNlX2JyYW5jaCA9IGVsc2VfYnJhbmNoCi0KLQotY2xhc3MgUmF3Q29kZU5vZGU6Ci0gIGRlZiBf
X2luaXRfXyhzZWxmLCB0b2tlbj1Ob25lKToKLSAgICBzZWxmLnJhd19jb2RlID0gdG9rZW4KLQot
Ci1jbGFzcyBMaXRlcmFsRG9sbGFyTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuKToK
LSAgICBzZWxmLnRva2VuID0gdG9rZW4KLQotCi1jbGFzcyBFeHBOb2RlOgotICBkZWYgX19pbml0
X18oc2VsZiwgdG9rZW4sIHB5dGhvbl9leHApOgotICAgIHNlbGYudG9rZW4gPSB0b2tlbgotICAg
IHNlbGYucHl0aG9uX2V4cCA9IHB5dGhvbl9leHAKLQotCi1kZWYgUG9wRnJvbnQoYV9saXN0KToK
LSAgaGVhZCA9IGFfbGlzdFswXQotICBhX2xpc3RbOjFdID0gW10KLSAgcmV0dXJuIGhlYWQKLQot
Ci1kZWYgUHVzaEZyb250KGFfbGlzdCwgZWxlbSk6Ci0gIGFfbGlzdFs6MF0gPSBbZWxlbV0KLQot
Ci1kZWYgUG9wVG9rZW4oYV9saXN0LCB0b2tlbl90eXBlPU5vbmUpOgotICB0b2tlbiA9IFBvcEZy
b250KGFfbGlzdCkKLSAgaWYgdG9rZW5fdHlwZSBpcyBub3QgTm9uZSBhbmQgdG9rZW4udG9rZW5f
dHlwZSAhPSB0b2tlbl90eXBlOgotICAgIHByaW50ICdFUlJPUjogJXMgZXhwZWN0ZWQgYXQgJXMn
ICUgKHRva2VuX3R5cGUsIHRva2VuLnN0YXJ0KQotICAgIHByaW50ICdFUlJPUjogJXMgZm91bmQg
aW5zdGVhZCcgJSAodG9rZW4sKQotICAgIHN5cy5leGl0KDEpCi0KLSAgcmV0dXJuIHRva2VuCi0K
LQotZGVmIFBlZWtUb2tlbihhX2xpc3QpOgotICBpZiBub3QgYV9saXN0OgotICAgIHJldHVybiBO
b25lCi0KLSAgcmV0dXJuIGFfbGlzdFswXQotCi0KLWRlZiBQYXJzZUV4cE5vZGUodG9rZW4pOgot
ICBweXRob25fZXhwID0gcmUuc3ViKHInKFtfQS1aYS16XVx3KiknLCByJ3NlbGYuR2V0VmFsdWUo
IlwxIiknLCB0b2tlbi52YWx1ZSkKLSAgcmV0dXJuIEV4cE5vZGUodG9rZW4sIHB5dGhvbl9leHAp
Ci0KLQotZGVmIFBhcnNlRWxzZU5vZGUodG9rZW5zKToKLSAgZGVmIFBvcCh0b2tlbl90eXBlPU5v
bmUpOgotICAgIHJldHVybiBQb3BUb2tlbih0b2tlbnMsIHRva2VuX3R5cGUpCi0KLSAgbmV4dCA9
IFBlZWtUb2tlbih0b2tlbnMpCi0gIGlmIG5vdCBuZXh0OgotICAgIHJldHVybiBOb25lCi0gIGlm
IG5leHQudG9rZW5fdHlwZSA9PSAnJGVsc2UnOgotICAgIFBvcCgnJGVsc2UnKQotICAgIFBvcCgn
W1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0n
KQotICAgIHJldHVybiBjb2RlX25vZGUKLSAgZWxpZiBuZXh0LnRva2VuX3R5cGUgPT0gJyRlbGlm
JzoKLSAgICBQb3AoJyRlbGlmJykKLSAgICBleHAgPSBQb3AoJ2NvZGUnKQotICAgIFBvcCgnW1sn
KQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQot
ICAgIGlubmVyX2Vsc2Vfbm9kZSA9IFBhcnNlRWxzZU5vZGUodG9rZW5zKQotICAgIHJldHVybiBD
b2RlTm9kZShbSWZOb2RlKFBhcnNlRXhwTm9kZShleHApLCBjb2RlX25vZGUsIGlubmVyX2Vsc2Vf
bm9kZSldKQotICBlbGlmIG5vdCBuZXh0LnZhbHVlLnN0cmlwKCk6Ci0gICAgUG9wKCdjb2RlJykK
LSAgICByZXR1cm4gUGFyc2VFbHNlTm9kZSh0b2tlbnMpCi0gIGVsc2U6Ci0gICAgcmV0dXJuIE5v
bmUKLQotCi1kZWYgUGFyc2VBdG9taWNDb2RlTm9kZSh0b2tlbnMpOgotICBkZWYgUG9wKHRva2Vu
X3R5cGU9Tm9uZSk6Ci0gICAgcmV0dXJuIFBvcFRva2VuKHRva2VucywgdG9rZW5fdHlwZSkKLQot
ICBoZWFkID0gUG9wRnJvbnQodG9rZW5zKQotICB0ID0gaGVhZC50b2tlbl90eXBlCi0gIGlmIHQg
PT0gJ2NvZGUnOgotICAgIHJldHVybiBSYXdDb2RlTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyR2
YXInOgotICAgIGlkX3Rva2VuID0gUG9wKCdpZCcpCi0gICAgUG9wKCc9JykKLSAgICBuZXh0ID0g
UGVla1Rva2VuKHRva2VucykKLSAgICBpZiBuZXh0LnRva2VuX3R5cGUgPT0gJ2V4cCc6Ci0gICAg
ICBleHBfdG9rZW4gPSBQb3AoKQotICAgICAgcmV0dXJuIFZhck5vZGUoaWRfdG9rZW4sIFBhcnNl
RXhwTm9kZShleHBfdG9rZW4pKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNl
Q29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIHJldHVybiBWYXJOb2RlKGlkX3Rv
a2VuLCBjb2RlX25vZGUpCi0gIGVsaWYgdCA9PSAnJGZvcic6Ci0gICAgaWRfdG9rZW4gPSBQb3Ao
J2lkJykKLSAgICBuZXh0X3Rva2VuID0gUGVla1Rva2VuKHRva2VucykKLSAgICBpZiBuZXh0X3Rv
a2VuLnRva2VuX3R5cGUgPT0gJ2NvZGUnOgotICAgICAgc2VwX3Rva2VuID0gbmV4dF90b2tlbgot
ICAgICAgUG9wKCdjb2RlJykKLSAgICBlbHNlOgotICAgICAgc2VwX3Rva2VuID0gTm9uZQotICAg
IFBvcCgnW1snKQotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBv
cCgnXV0nKQotICAgIHJldHVybiBGb3JOb2RlKGlkX3Rva2VuLCBzZXBfdG9rZW4sIGNvZGVfbm9k
ZSkKLSAgZWxpZiB0ID09ICckaWYnOgotICAgIGV4cF90b2tlbiA9IFBvcCgnY29kZScpCi0gICAg
UG9wKCdbWycpCi0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gICAgUG9w
KCddXScpCi0gICAgZWxzZV9ub2RlID0gUGFyc2VFbHNlTm9kZSh0b2tlbnMpCi0gICAgcmV0dXJu
IElmTm9kZShQYXJzZUV4cE5vZGUoZXhwX3Rva2VuKSwgY29kZV9ub2RlLCBlbHNlX25vZGUpCi0g
IGVsaWYgdCA9PSAnJHJhbmdlJzoKLSAgICBpZF90b2tlbiA9IFBvcCgnaWQnKQotICAgIGV4cDFf
dG9rZW4gPSBQb3AoJ2V4cCcpCi0gICAgUG9wKCcuLicpCi0gICAgZXhwMl90b2tlbiA9IFBvcCgn
ZXhwJykKLSAgICByZXR1cm4gUmFuZ2VOb2RlKGlkX3Rva2VuLCBQYXJzZUV4cE5vZGUoZXhwMV90
b2tlbiksCi0gICAgICAgICAgICAgICAgICAgICBQYXJzZUV4cE5vZGUoZXhwMl90b2tlbikpCi0g
IGVsaWYgdCA9PSAnJGlkJzoKLSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKFRva2VuKGhlYWQuc3Rh
cnQgKyAxLCBoZWFkLmVuZCwgaGVhZC52YWx1ZVsxOl0sICdpZCcpKQotICBlbGlmIHQgPT0gJyQo
JCknOgotICAgIHJldHVybiBMaXRlcmFsRG9sbGFyTm9kZShoZWFkKQotICBlbGlmIHQgPT0gJyQn
OgotICAgIGV4cF90b2tlbiA9IFBvcCgnZXhwJykKLSAgICByZXR1cm4gUGFyc2VFeHBOb2RlKGV4
cF90b2tlbikKLSAgZWxpZiB0ID09ICdbWyc6Ci0gICAgY29kZV9ub2RlID0gUGFyc2VDb2RlTm9k
ZSh0b2tlbnMpCi0gICAgUG9wKCddXScpCi0gICAgcmV0dXJuIGNvZGVfbm9kZQotICBlbHNlOgot
ICAgIFB1c2hGcm9udCh0b2tlbnMsIGhlYWQpCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgUGFy
c2VDb2RlTm9kZSh0b2tlbnMpOgotICBhdG9taWNfY29kZV9saXN0ID0gW10KLSAgd2hpbGUgVHJ1
ZToKLSAgICBpZiBub3QgdG9rZW5zOgotICAgICAgYnJlYWsKLSAgICBhdG9taWNfY29kZV9ub2Rl
ID0gUGFyc2VBdG9taWNDb2RlTm9kZSh0b2tlbnMpCi0gICAgaWYgYXRvbWljX2NvZGVfbm9kZToK
LSAgICAgIGF0b21pY19jb2RlX2xpc3QuYXBwZW5kKGF0b21pY19jb2RlX25vZGUpCi0gICAgZWxz
ZToKLSAgICAgIGJyZWFrCi0gIHJldHVybiBDb2RlTm9kZShhdG9taWNfY29kZV9saXN0KQotCi0K
LWRlZiBQYXJzZVRvQVNUKHB1bXBfc3JjX3RleHQpOgotICAiIiJDb252ZXJ0IHRoZSBnaXZlbiBQ
dW1wIHNvdXJjZSB0ZXh0IGludG8gYW4gQVNULiIiIgotICB0b2tlbnMgPSBsaXN0KFRva2VuaXpl
KHB1bXBfc3JjX3RleHQpKQotICBjb2RlX25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAg
cmV0dXJuIGNvZGVfbm9kZQotCi0KLWNsYXNzIEVudjoKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgIHNlbGYudmFyaWFibGVzID0gW10KLSAgICBzZWxmLnJhbmdlcyA9IFtdCi0KLSAgZGVmIENs
b25lKHNlbGYpOgotICAgIGNsb25lID0gRW52KCkKLSAgICBjbG9uZS52YXJpYWJsZXMgPSBzZWxm
LnZhcmlhYmxlc1s6XQotICAgIGNsb25lLnJhbmdlcyA9IHNlbGYucmFuZ2VzWzpdCi0gICAgcmV0
dXJuIGNsb25lCi0KLSAgZGVmIFB1c2hWYXJpYWJsZShzZWxmLCB2YXIsIHZhbHVlKToKLSAgICAj
IElmIHZhbHVlIGxvb2tzIGxpa2UgYW4gaW50LCBzdG9yZSBpdCBhcyBhbiBpbnQuCi0gICAgdHJ5
OgotICAgICAgaW50X3ZhbHVlID0gaW50KHZhbHVlKQotICAgICAgaWYgKCclcycgJSBpbnRfdmFs
dWUpID09IHZhbHVlOgotICAgICAgICB2YWx1ZSA9IGludF92YWx1ZQotICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICBwYXNzCi0gICAgc2VsZi52YXJpYWJsZXNbOjBdID0gWyh2YXIsIHZhbHVl
KV0KLQotICBkZWYgUG9wVmFyaWFibGUoc2VsZik6Ci0gICAgc2VsZi52YXJpYWJsZXNbOjFdID0g
W10KLQotICBkZWYgUHVzaFJhbmdlKHNlbGYsIHZhciwgbG93ZXIsIHVwcGVyKToKLSAgICBzZWxm
LnJhbmdlc1s6MF0gPSBbKHZhciwgbG93ZXIsIHVwcGVyKV0KLQotICBkZWYgUG9wUmFuZ2Uoc2Vs
Zik6Ci0gICAgc2VsZi5yYW5nZXNbOjFdID0gW10KLQotICBkZWYgR2V0VmFsdWUoc2VsZiwgaWRl
bnRpZmllcik6Ci0gICAgZm9yICh2YXIsIHZhbHVlKSBpbiBzZWxmLnZhcmlhYmxlczoKLSAgICAg
IGlmIGlkZW50aWZpZXIgPT0gdmFyOgotICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIHByaW50
ICdFUlJPUjogbWV0YSB2YXJpYWJsZSAlcyBpcyB1bmRlZmluZWQuJyAlIChpZGVudGlmaWVyLCkK
LSAgICBzeXMuZXhpdCgxKQotCi0gIGRlZiBFdmFsRXhwKHNlbGYsIGV4cCk6Ci0gICAgdHJ5Ogot
ICAgICAgcmVzdWx0ID0gZXZhbChleHAucHl0aG9uX2V4cCkKLSAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgotICAgICAgcHJpbnQgJ0VSUk9SOiBjYXVnaHQgZXhjZXB0aW9uICVzOiAlcycgJSAoZS5f
X2NsYXNzX18uX19uYW1lX18sIGUpCi0gICAgICBwcmludCAoJ0VSUk9SOiBmYWlsZWQgdG8gZXZh
bHVhdGUgbWV0YSBleHByZXNzaW9uICVzIGF0ICVzJyAlCi0gICAgICAgICAgICAgKGV4cC5weXRo
b25fZXhwLCBleHAudG9rZW4uc3RhcnQpKQotICAgICAgc3lzLmV4aXQoMSkKLSAgICByZXR1cm4g
cmVzdWx0Ci0KLSAgZGVmIEdldFJhbmdlKHNlbGYsIGlkZW50aWZpZXIpOgotICAgIGZvciAodmFy
LCBsb3dlciwgdXBwZXIpIGluIHNlbGYucmFuZ2VzOgotICAgICAgaWYgaWRlbnRpZmllciA9PSB2
YXI6Ci0gICAgICAgIHJldHVybiAobG93ZXIsIHVwcGVyKQotCi0gICAgcHJpbnQgJ0VSUk9SOiBy
YW5nZSAlcyBpcyB1bmRlZmluZWQuJyAlIChpZGVudGlmaWVyLCkKLSAgICBzeXMuZXhpdCgxKQot
Ci0KLWNsYXNzIE91dHB1dDoKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuc3RyaW5n
ID0gJycKLQotICBkZWYgR2V0TGFzdExpbmUoc2VsZik6Ci0gICAgaW5kZXggPSBzZWxmLnN0cmlu
Zy5yZmluZCgnXG4nKQotICAgIGlmIGluZGV4IDwgMDoKLSAgICAgIHJldHVybiAnJwotCi0gICAg
cmV0dXJuIHNlbGYuc3RyaW5nW2luZGV4ICsgMTpdCi0KLSAgZGVmIEFwcGVuZChzZWxmLCBzKToK
LSAgICBzZWxmLnN0cmluZyArPSBzCi0KLQotZGVmIFJ1bkF0b21pY0NvZGUoZW52LCBub2RlLCBv
dXRwdXQpOgotICBpZiBpc2luc3RhbmNlKG5vZGUsIFZhck5vZGUpOgotICAgIGlkZW50aWZpZXIg
PSBub2RlLmlkZW50aWZpZXIudmFsdWUuc3RyaXAoKQotICAgIHJlc3VsdCA9IE91dHB1dCgpCi0g
ICAgUnVuQXRvbWljQ29kZShlbnYuQ2xvbmUoKSwgbm9kZS5hdG9taWNfY29kZSwgcmVzdWx0KQot
ICAgIHZhbHVlID0gcmVzdWx0LnN0cmluZwotICAgIGVudi5QdXNoVmFyaWFibGUoaWRlbnRpZmll
ciwgdmFsdWUpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBSYW5nZU5vZGUpOgotICAgIGlkZW50
aWZpZXIgPSBub2RlLmlkZW50aWZpZXIudmFsdWUuc3RyaXAoKQotICAgIGxvd2VyID0gaW50KGVu
di5FdmFsRXhwKG5vZGUuZXhwMSkpCi0gICAgdXBwZXIgPSBpbnQoZW52LkV2YWxFeHAobm9kZS5l
eHAyKSkKLSAgICBlbnYuUHVzaFJhbmdlKGlkZW50aWZpZXIsIGxvd2VyLCB1cHBlcikKLSAgZWxp
ZiBpc2luc3RhbmNlKG5vZGUsIEZvck5vZGUpOgotICAgIGlkZW50aWZpZXIgPSBub2RlLmlkZW50
aWZpZXIudmFsdWUuc3RyaXAoKQotICAgIGlmIG5vZGUuc2VwIGlzIE5vbmU6Ci0gICAgICBzZXAg
PSAnJwotICAgIGVsc2U6Ci0gICAgICBzZXAgPSBub2RlLnNlcC52YWx1ZQotICAgIChsb3dlciwg
dXBwZXIpID0gZW52LkdldFJhbmdlKGlkZW50aWZpZXIpCi0gICAgZm9yIGkgaW4gcmFuZ2UobG93
ZXIsIHVwcGVyICsgMSk6Ci0gICAgICBuZXdfZW52ID0gZW52LkNsb25lKCkKLSAgICAgIG5ld19l
bnYuUHVzaFZhcmlhYmxlKGlkZW50aWZpZXIsIGkpCi0gICAgICBSdW5Db2RlKG5ld19lbnYsIG5v
ZGUuY29kZSwgb3V0cHV0KQotICAgICAgaWYgaSAhPSB1cHBlcjoKLSAgICAgICAgb3V0cHV0LkFw
cGVuZChzZXApCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBSYXdDb2RlTm9kZSk6Ci0gICAgb3V0
cHV0LkFwcGVuZChub2RlLnJhd19jb2RlLnZhbHVlKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwg
SWZOb2RlKToKLSAgICBjb25kID0gZW52LkV2YWxFeHAobm9kZS5leHApCi0gICAgaWYgY29uZDoK
LSAgICAgIFJ1bkNvZGUoZW52LkNsb25lKCksIG5vZGUudGhlbl9icmFuY2gsIG91dHB1dCkKLSAg
ICBlbGlmIG5vZGUuZWxzZV9icmFuY2ggaXMgbm90IE5vbmU6Ci0gICAgICBSdW5Db2RlKGVudi5D
bG9uZSgpLCBub2RlLmVsc2VfYnJhbmNoLCBvdXRwdXQpCi0gIGVsaWYgaXNpbnN0YW5jZShub2Rl
LCBFeHBOb2RlKToKLSAgICB2YWx1ZSA9IGVudi5FdmFsRXhwKG5vZGUpCi0gICAgb3V0cHV0LkFw
cGVuZCgnJXMnICUgKHZhbHVlLCkpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBMaXRlcmFsRG9s
bGFyTm9kZSk6Ci0gICAgb3V0cHV0LkFwcGVuZCgnJCcpCi0gIGVsaWYgaXNpbnN0YW5jZShub2Rl
LCBDb2RlTm9kZSk6Ci0gICAgUnVuQ29kZShlbnYuQ2xvbmUoKSwgbm9kZSwgb3V0cHV0KQotICBl
bHNlOgotICAgIHByaW50ICdCQUQnCi0gICAgcHJpbnQgbm9kZQotICAgIHN5cy5leGl0KDEpCi0K
LQotZGVmIFJ1bkNvZGUoZW52LCBjb2RlX25vZGUsIG91dHB1dCk6Ci0gIGZvciBhdG9taWNfY29k
ZSBpbiBjb2RlX25vZGUuYXRvbWljX2NvZGU6Ci0gICAgUnVuQXRvbWljQ29kZShlbnYsIGF0b21p
Y19jb2RlLCBvdXRwdXQpCi0KLQotZGVmIElzU2luZ2xlTGluZUNvbW1lbnQoY3VyX2xpbmUpOgot
ICByZXR1cm4gJy8vJyBpbiBjdXJfbGluZQotCi0KLWRlZiBJc0luUHJlcHJvY2Vzc29yRGlyZWN0
aXZlKHByZXZfbGluZXMsIGN1cl9saW5lKToKLSAgaWYgY3VyX2xpbmUubHN0cmlwKCkuc3RhcnRz
d2l0aCgnIycpOgotICAgIHJldHVybiBUcnVlCi0gIHJldHVybiBwcmV2X2xpbmVzIGFuZCBwcmV2
X2xpbmVzWy0xXS5lbmRzd2l0aCgnXFwnKQotCi0KLWRlZiBXcmFwQ29tbWVudChsaW5lLCBvdXRw
dXQpOgotICBsb2MgPSBsaW5lLmZpbmQoJy8vJykKLSAgYmVmb3JlX2NvbW1lbnQgPSBsaW5lWzps
b2NdLnJzdHJpcCgpCi0gIGlmIGJlZm9yZV9jb21tZW50ID09ICcnOgotICAgIGluZGVudCA9IGxv
YwotICBlbHNlOgotICAgIG91dHB1dC5hcHBlbmQoYmVmb3JlX2NvbW1lbnQpCi0gICAgaW5kZW50
ID0gbGVuKGJlZm9yZV9jb21tZW50KSAtIGxlbihiZWZvcmVfY29tbWVudC5sc3RyaXAoKSkKLSAg
cHJlZml4ID0gaW5kZW50KicgJyArICcvLyAnCi0gIG1heF9sZW4gPSA4MCAtIGxlbihwcmVmaXgp
Ci0gIGNvbW1lbnQgPSBsaW5lW2xvYyArIDI6XS5zdHJpcCgpCi0gIHNlZ3MgPSBbc2VnIGZvciBz
ZWcgaW4gcmUuc3BsaXQocicoXHcrXFcqKScsIGNvbW1lbnQpIGlmIHNlZyAhPSAnJ10KLSAgY3Vy
X2xpbmUgPSAnJwotICBmb3Igc2VnIGluIHNlZ3M6Ci0gICAgaWYgbGVuKChjdXJfbGluZSArIHNl
ZykucnN0cmlwKCkpIDwgbWF4X2xlbjoKLSAgICAgIGN1cl9saW5lICs9IHNlZwotICAgIGVsc2U6
Ci0gICAgICBpZiBjdXJfbGluZS5zdHJpcCgpICE9ICcnOgotICAgICAgICBvdXRwdXQuYXBwZW5k
KHByZWZpeCArIGN1cl9saW5lLnJzdHJpcCgpKQotICAgICAgY3VyX2xpbmUgPSBzZWcubHN0cmlw
KCkKLSAgaWYgY3VyX2xpbmUuc3RyaXAoKSAhPSAnJzoKLSAgICBvdXRwdXQuYXBwZW5kKHByZWZp
eCArIGN1cl9saW5lLnN0cmlwKCkpCi0KLQotZGVmIFdyYXBDb2RlKGxpbmUsIGxpbmVfY29uY2F0
LCBvdXRwdXQpOgotICBpbmRlbnQgPSBsZW4obGluZSkgLSBsZW4obGluZS5sc3RyaXAoKSkKLSAg
cHJlZml4ID0gaW5kZW50KicgJyAgIyBQcmVmaXggb2YgdGhlIGN1cnJlbnQgbGluZQotICBtYXhf
bGVuID0gODAgLSBpbmRlbnQgLSBsZW4obGluZV9jb25jYXQpICAjIE1heGltdW0gbGVuZ3RoIG9m
IHRoZSBjdXJyZW50IGxpbmUKLSAgbmV3X3ByZWZpeCA9IHByZWZpeCArIDQqJyAnICAjIFByZWZp
eCBvZiBhIGNvbnRpbnVhdGlvbiBsaW5lCi0gIG5ld19tYXhfbGVuID0gbWF4X2xlbiAtIDQgICMg
TWF4aW11bSBsZW5ndGggb2YgYSBjb250aW51YXRpb24gbGluZQotICAjIFByZWZlcnMgdG8gd3Jh
cCBhIGxpbmUgYWZ0ZXIgYSAnLCcgb3IgJzsnLgotICBzZWdzID0gW3NlZyBmb3Igc2VnIGluIHJl
LnNwbGl0KHInKFteLDtdK1ssO10/KScsIGxpbmUuc3RyaXAoKSkgaWYgc2VnICE9ICcnXQotICBj
dXJfbGluZSA9ICcnICAjIFRoZSBjdXJyZW50IGxpbmUgd2l0aG91dCBsZWFkaW5nIHNwYWNlcy4K
LSAgZm9yIHNlZyBpbiBzZWdzOgotICAgICMgSWYgdGhlIGxpbmUgaXMgc3RpbGwgdG9vIGxvbmcs
IHdyYXAgYXQgYSBzcGFjZS4KLSAgICB3aGlsZSBjdXJfbGluZSA9PSAnJyBhbmQgbGVuKHNlZy5z
dHJpcCgpKSA+IG1heF9sZW46Ci0gICAgICBzZWcgPSBzZWcubHN0cmlwKCkKLSAgICAgIHNwbGl0
X2F0ID0gc2VnLnJmaW5kKCcgJywgMCwgbWF4X2xlbikKLSAgICAgIG91dHB1dC5hcHBlbmQocHJl
Zml4ICsgc2VnWzpzcGxpdF9hdF0uc3RyaXAoKSArIGxpbmVfY29uY2F0KQotICAgICAgc2VnID0g
c2VnW3NwbGl0X2F0ICsgMTpdCi0gICAgICBwcmVmaXggPSBuZXdfcHJlZml4Ci0gICAgICBtYXhf
bGVuID0gbmV3X21heF9sZW4KLQotICAgIGlmIGxlbigoY3VyX2xpbmUgKyBzZWcpLnJzdHJpcCgp
KSA8IG1heF9sZW46Ci0gICAgICBjdXJfbGluZSA9IChjdXJfbGluZSArIHNlZykubHN0cmlwKCkK
LSAgICBlbHNlOgotICAgICAgb3V0cHV0LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5yc3RyaXAo
KSArIGxpbmVfY29uY2F0KQotICAgICAgcHJlZml4ID0gbmV3X3ByZWZpeAotICAgICAgbWF4X2xl
biA9IG5ld19tYXhfbGVuCi0gICAgICBjdXJfbGluZSA9IHNlZy5sc3RyaXAoKQotICBpZiBjdXJf
bGluZS5zdHJpcCgpICE9ICcnOgotICAgIG91dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUu
c3RyaXAoKSkKLQotCi1kZWYgV3JhcFByZXByb2Nlc3NvckRpcmVjdGl2ZShsaW5lLCBvdXRwdXQp
OgotICBXcmFwQ29kZShsaW5lLCAnIFxcJywgb3V0cHV0KQotCi0KLWRlZiBXcmFwUGxhaW5Db2Rl
KGxpbmUsIG91dHB1dCk6Ci0gIFdyYXBDb2RlKGxpbmUsICcnLCBvdXRwdXQpCi0KLQotZGVmIElz
TXVsdGlMaW5lSVdZVVByYWdtYShsaW5lKToKLSAgcmV0dXJuIHJlLnNlYXJjaChyJy9cKiBJV1lV
IHByYWdtYTogJywgbGluZSkKLQotCi1kZWYgSXNIZWFkZXJHdWFyZEluY2x1ZGVPck9uZUxpbmVJ
V1lVUHJhZ21hKGxpbmUpOgotICByZXR1cm4gKHJlLm1hdGNoKHInXiMoaWZuZGVmfGRlZmluZXxl
bmRpZlxzKi8vKVxzKltcd19dK1xzKiQnLCBsaW5lKSBvcgotICAgICAgICAgIHJlLm1hdGNoKHIn
XiNpbmNsdWRlXHMnLCBsaW5lKSBvcgotICAgICAgICAgICMgRG9uJ3QgYnJlYWsgSVdZVSBwcmFn
bWFzLCBlaXRoZXI7IHRoYXQgY2F1c2VzIGl3eXUucHkgcHJvYmxlbXMuCi0gICAgICAgICAgcmUu
c2VhcmNoKHInLy8gSVdZVSBwcmFnbWE6ICcsIGxpbmUpKQotCi0KLWRlZiBXcmFwTG9uZ0xpbmUo
bGluZSwgb3V0cHV0KToKLSAgbGluZSA9IGxpbmUucnN0cmlwKCkKLSAgaWYgbGVuKGxpbmUpIDw9
IDgwOgotICAgIG91dHB1dC5hcHBlbmQobGluZSkKLSAgZWxpZiBJc1NpbmdsZUxpbmVDb21tZW50
KGxpbmUpOgotICAgIGlmIElzSGVhZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShs
aW5lKToKLSAgICAgICMgVGhlIHN0eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFsbG93
IGxvbmcgaGVhZGVyIGd1YXJkIGxpbmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBwcmFn
bWFzLgotICAgICAgb3V0cHV0LmFwcGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFwQ29t
bWVudChsaW5lLCBvdXRwdXQpCi0gIGVsaWYgSXNJblByZXByb2Nlc3NvckRpcmVjdGl2ZShvdXRw
dXQsIGxpbmUpOgotICAgIGlmIElzSGVhZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdt
YShsaW5lKToKLSAgICAgICMgVGhlIHN0eWxlIGd1aWRlIG1hZGUgYW4gZXhjZXB0aW9uIHRvIGFs
bG93IGxvbmcgaGVhZGVyIGd1YXJkIGxpbmVzLAotICAgICAgIyBpbmNsdWRlcyBhbmQgSVdZVSBw
cmFnbWFzLgotICAgICAgb3V0cHV0LmFwcGVuZChsaW5lKQotICAgIGVsc2U6Ci0gICAgICBXcmFw
UHJlcHJvY2Vzc29yRGlyZWN0aXZlKGxpbmUsIG91dHB1dCkKLSAgZWxpZiBJc011bHRpTGluZUlX
WVVQcmFnbWEobGluZSk6Ci0gICAgb3V0cHV0LmFwcGVuZChsaW5lKQotICBlbHNlOgotICAgIFdy
YXBQbGFpbkNvZGUobGluZSwgb3V0cHV0KQotCi0KLWRlZiBCZWF1dGlmeUNvZGUoc3RyaW5nKToK
LSAgbGluZXMgPSBzdHJpbmcuc3BsaXRsaW5lcygpCi0gIG91dHB1dCA9IFtdCi0gIGZvciBsaW5l
IGluIGxpbmVzOgotICAgIFdyYXBMb25nTGluZShsaW5lLCBvdXRwdXQpCi0gIG91dHB1dDIgPSBb
bGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiBvdXRwdXRdCi0gIHJldHVybiAnXG4nLmpvaW4ob3V0
cHV0MikgKyAnXG4nCi0KLQotZGVmIENvbnZlcnRGcm9tUHVtcFNvdXJjZShzcmNfdGV4dCk6Ci0g
ICIiIlJldHVybiB0aGUgdGV4dCBnZW5lcmF0ZWQgZnJvbSB0aGUgZ2l2ZW4gUHVtcCBzb3VyY2Ug
dGV4dC4iIiIKLSAgYXN0ID0gUGFyc2VUb0FTVChTdHJpcE1ldGFDb21tZW50cyhzcmNfdGV4dCkp
Ci0gIG91dHB1dCA9IE91dHB1dCgpCi0gIFJ1bkNvZGUoRW52KCksIGFzdCwgb3V0cHV0KQotICBy
ZXR1cm4gQmVhdXRpZnlDb2RlKG91dHB1dC5zdHJpbmcpCi0KLQotZGVmIG1haW4oYXJndik6Ci0g
IGlmIGxlbihhcmd2KSA9PSAxOgotICAgIHByaW50IF9fZG9jX18KLSAgICBzeXMuZXhpdCgxKQot
Ci0gIGZpbGVfcGF0aCA9IGFyZ3ZbLTFdCi0gIG91dHB1dF9zdHIgPSBDb252ZXJ0RnJvbVB1bXBT
b3VyY2UoZmlsZShmaWxlX3BhdGgsICdyJykucmVhZCgpKQotICBpZiBmaWxlX3BhdGguZW5kc3dp
dGgoJy5wdW1wJyk6Ci0gICAgb3V0cHV0X2ZpbGVfcGF0aCA9IGZpbGVfcGF0aFs6LTVdCi0gIGVs
c2U6Ci0gICAgb3V0cHV0X2ZpbGVfcGF0aCA9ICctJwotICBpZiBvdXRwdXRfZmlsZV9wYXRoID09
ICctJzoKLSAgICBwcmludCBvdXRwdXRfc3RyLAotICBlbHNlOgotICAgIG91dHB1dF9maWxlID0g
ZmlsZShvdXRwdXRfZmlsZV9wYXRoLCAndycpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJy8vIFRo
aXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5IGNvbW1hbmQ6XG4nKQotICAgIG91dHB1dF9maWxlLndy
aXRlKCcvLyAgICAgJXMgJXNcbicgJQotICAgICAgICAgICAgICAgICAgICAgIChvcy5wYXRoLmJh
c2VuYW1lKF9fZmlsZV9fKSwgb3MucGF0aC5iYXNlbmFtZShmaWxlX3BhdGgpKSkKLSAgICBvdXRw
dXRfZmlsZS53cml0ZSgnLy8gRE8gTk9UIEVESVQgQlkgSEFORCEhIVxuXG4nKQotICAgIG91dHB1
dF9maWxlLndyaXRlKG91dHB1dF9zdHIpCi0gICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIG1haW4oc3lzLmFyZ3YpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL3J1bl93aXRoX3BhdGgucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL3J1bl93aXRoX3BhdGgucHkKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2
YWI0ZDM0YTQxYTRmMTU2N2U3M2Q4YjY0MzZiOWFjYjU3MzQwNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvcnVuX3dpdGhfcGF0aC5weQpAQCAtMCww
ICsxLDMyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTAgR29v
Z2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworIiIiUnVucyBwcm9ncmFtIHNwZWNpZmll
ZCBpbiB0aGUgY29tbWFuZCBsaW5lIHdpdGggdGhlIHN1YnN0aXR1dGVkIFBBVEguCisKKyAgIFRo
aXMgc2NyaXB0IGlzIG5lZWRlZCBmb3IgdG8gc3VwcG9ydCBidWlsZGluZyB1bmRlciBQdWxzZSB3
aGljaCBpcyB1bmFibGUKKyAgIHRvIG92ZXJyaWRlIHRoZSBleGlzdGluZyBQQVRIIHZhcmlhYmxl
LgorIiIiCisKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworU1VC
U1RfUEFUSF9FTlZfVkFSX05BTUUgPSAiU1VCU1RfUEFUSCIKKworZGVmIG1haW4oKToKKyAgaWYg
U1VCU1RfUEFUSF9FTlZfVkFSX05BTUUgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWyJQ
QVRIIl0gPSBvcy5lbnZpcm9uW1NVQlNUX1BBVEhfRU5WX1ZBUl9OQU1FXQorCisgIGV4aXRfY29k
ZSA9IHN1YnByb2Nlc3MuUG9wZW4oc3lzLmFyZ3ZbMTpdKS53YWl0KCkKKworICAjIGV4aXRfY29k
ZSBpcyBuZWdhdGl2ZSAoLXNpZ25hbCkgaWYgdGhlIHByb2Nlc3MgaGFzIGJlZW4gdGVybWluYXRl
ZCBieQorICAjIGEgc2lnbmFsLiBSZXR1cm5pbmcgbmVnYXRpdmUgZXhpdCBjb2RlIGlzIG5vdCBw
b3J0YWJsZSBhbmQgc28gd2UgcmV0dXJuCisgICMgMTAwIGluc3RlYWQuCisgIGlmIGV4aXRfY29k
ZSA8IDA6CisgICAgZXhpdF9jb2RlID0gMTAwCisKKyAgc3lzLmV4aXQoZXhpdF9jb2RlKQorCitp
ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICBtYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvdXBsb2FkLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2NyaXB0cy91cGxvYWQucHkKaW5kZXggYzg1MmU0YzkxZTA2ZWY3YzQ5ZTAzODY4MzUwOWZm
ZDk0OTVjODIwZi4uZWJhNTcxMTQyZjViODcxMTgzODZlYTIwMzA3YjA0MzNhY2E5ODZkZiAxMDA3
NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy91cGxvYWQucHkKQEAgLTEsMTggKzEsMzMg
QEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIwotIyBDb3B5cmlnaHQgMjAwNyBHb29nbGUgSW5j
LgorIyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
ICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBM
aWNlbnNlIGF0CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKICMKLSMgICAg
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlv
bi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVk
IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0j
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBM
aWNlbnNlLgorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
ICIiIlRvb2wgZm9yIHVwbG9hZGluZyBkaWZmcyBmcm9tIGEgdmVyc2lvbiBjb250cm9sIHN5c3Rl
bSB0byB0aGUgY29kZXJldmlldyBhcHAuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NyYy9ndGVzdC1hbGwuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rl
c3QtYWxsLmNjCmluZGV4IGIyMTdhMTgwMDZiMGM4YmRhZjRhOWY5YjZkMDZkZTRmZDhhZDllZWQu
LmFkMjkyOTA1Y2YzODFkNjllYmE5MDA4ZjUxOTZjZjY0NzdhNTZjMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1hbGwuY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWFsbC5jYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg
InNyYy9ndGVzdC5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyIKICNpbmNs
dWRlICJzcmMvZ3Rlc3QtZmlsZXBhdGguY2MiCisjaW5jbHVkZSAic3JjL2d0ZXN0LW1hdGNoZXJz
LmNjIgogI2luY2x1ZGUgInNyYy9ndGVzdC1wb3J0LmNjIgogI2luY2x1ZGUgInNyYy9ndGVzdC1w
cmludGVycy5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwppbmRleCBhYzg2NjAz
NTRjYWZhYzU4M2FkZWIyZjIxMzFiYzZhY2E3ODNjNWE3Li5jM2Q2ZGZjY2FkN2M5NjhiODNmMTk3
Mjc0NTA4ZWZkODQ1ZGU5N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtZGVhdGgtdGVzdC5jYwpAQCAtMzEsNiArMzEsMTAgQEAKIC8vIFRoaXMgZmlsZSBpbXBs
ZW1lbnRzIGRlYXRoIHRlc3RzLgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5o
IgorCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCiAjaW5jbHVk
ZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFs
L2N1c3RvbS9ndGVzdC5oIgogCkBAIC02MiwxMCArNjYsMTYgQEAKICMgZW5kaWYgIC8vIEdURVNU
X09TX1FOWAogCiAjIGlmIEdURVNUX09TX0ZVQ0hTSUEKKyMgIGluY2x1ZGUgPGxpYi9mZGlvL2Zk
Lmg+CiAjICBpbmNsdWRlIDxsaWIvZmRpby9pby5oPgogIyAgaW5jbHVkZSA8bGliL2ZkaW8vc3Bh
d24uaD4KKyMgIGluY2x1ZGUgPGxpYi96eC9jaGFubmVsLmg+CisjICBpbmNsdWRlIDxsaWIvengv
cG9ydC5oPgorIyAgaW5jbHVkZSA8bGliL3p4L3Byb2Nlc3MuaD4KKyMgIGluY2x1ZGUgPGxpYi96
eC9zb2NrZXQuaD4KICMgIGluY2x1ZGUgPHppcmNvbi9wcm9jZXNzYXJncy5oPgogIyAgaW5jbHVk
ZSA8emlyY29uL3N5c2NhbGxzLmg+CisjICBpbmNsdWRlIDx6aXJjb24vc3lzY2FsbHMvcG9saWN5
Lmg+CiAjICBpbmNsdWRlIDx6aXJjb24vc3lzY2FsbHMvcG9ydC5oPgogIyBlbmRpZiAgLy8gR1RF
U1RfT1NfRlVDSFNJQQogCkBAIC0xMTMsOCArMTIzLDggQEAgR1RFU1RfREVGSU5FX3N0cmluZ18o
CiAgICAgIkluZGljYXRlcyB0aGUgZmlsZSwgbGluZSBudW1iZXIsIHRlbXBvcmFsIGluZGV4IG9m
ICIKICAgICAidGhlIHNpbmdsZSBkZWF0aCB0ZXN0IHRvIHJ1biwgYW5kIGEgZmlsZSBkZXNjcmlw
dG9yIHRvICIKICAgICAid2hpY2ggYSBzdWNjZXNzIGNvZGUgbWF5IGJlIHNlbnQsIGFsbCBzZXBh
cmF0ZWQgYnkgIgotICAgICJ0aGUgJ3wnIGNoYXJhY3RlcnMuICBUaGlzIGZsYWcgaXMgc3BlY2lm
aWVkIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50ICIKLSAgICAicHJvY2VzcyBpcyBhIHN1Yi1w
cm9jZXNzIGxhdW5jaGVkIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUgIgorICAgICJ0aGUgJ3wn
IGNoYXJhY3RlcnMuICBUaGlzIGZsYWcgaXMgc3BlY2lmaWVkIGlmIGFuZCBvbmx5IGlmIHRoZSAi
CisgICAgImN1cnJlbnQgcHJvY2VzcyBpcyBhIHN1Yi1wcm9jZXNzIGxhdW5jaGVkIGZvciBydW5u
aW5nIGEgdGhyZWFkLXNhZmUgIgogICAgICJkZWF0aCB0ZXN0LiAgRk9SIElOVEVSTkFMIFVTRSBP
TkxZLiIpOwogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiAKQEAgLTIzOCw3ICsyNDgsNyBAQCBz
dGF0aWMgc3RkOjpzdHJpbmcgRGVhdGhUZXN0VGhyZWFkV2FybmluZyhzaXplX3QgdGhyZWFkX2Nv
dW50KSB7CiAgICAgbXNnIDw8ICJkZXRlY3RlZCAiIDw8IHRocmVhZF9jb3VudCA8PCAiIHRocmVh
ZHMuIjsKICAgfQogICBtc2cgPDwgIiBTZWUgIgotICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNv
bS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvIgorICAgICAg
ICAgImh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9kb2Nz
LyIKICAgICAgICAgICJhZHZhbmNlZC5tZCNkZWF0aC10ZXN0cy1hbmQtdGhyZWFkcyIKICAgICAg
IDw8ICIgZm9yIG1vcmUgZXhwbGFuYXRpb24gYW5kIHN1Z2dlc3RlZCBzb2x1dGlvbnMsIGVzcGVj
aWFsbHkgaWYiCiAgICAgICA8PCAiIHRoaXMgaXMgdGhlIGxhc3QgbWVzc2FnZSB5b3Ugc2VlIGJl
Zm9yZSB5b3VyIHRlc3QgdGltZXMgb3V0LiI7CkBAIC0yNjYsOCArMjc2LDYgQEAgc3RhdGljIGNv
bnN0IGludCBrRnVjaHNpYVJlYWRQaXBlRmQgPSAzOwogLy8gc3RhdGVtZW50LCB3aGljaCBpcyBu
b3QgYWxsb3dlZDsgVEhSRVcgbWVhbnMgdGhhdCB0aGUgdGVzdCBzdGF0ZW1lbnQKIC8vIHJldHVy
bmVkIGNvbnRyb2wgYnkgdGhyb3dpbmcgYW4gZXhjZXB0aW9uLiAgSU5fUFJPR1JFU1MgbWVhbnMg
dGhlIHRlc3QKIC8vIGhhcyBub3QgeWV0IGNvbmNsdWRlZC4KLS8vIEZJWE1FOiBVbmlmeSBuYW1l
cyBhbmQgcG9zc2libHkgdmFsdWVzIGZvcgotLy8gQWJvcnRSZWFzb24sIERlYXRoVGVzdE91dGNv
bWUsIGFuZCBmbGFnIGNoYXJhY3RlcnMgYWJvdmUuCiBlbnVtIERlYXRoVGVzdE91dGNvbWUgeyBJ
Tl9QUk9HUkVTUywgRElFRCwgTElWRUQsIFJFVFVSTkVELCBUSFJFVyB9OwogCiAvLyBSb3V0aW5l
IGZvciBhYm9ydGluZyB0aGUgcHJvZ3JhbSB3aGljaCBpcyBzYWZlIHRvIGNhbGwgZnJvbSBhbgpA
QCAtMjgxLDcgKzI4OSw3IEBAIHN0YXRpYyB2b2lkIERlYXRoVGVzdEFib3J0KGNvbnN0IHN0ZDo6
c3RyaW5nJiBtZXNzYWdlKSB7CiAgIC8vIHRoZSBoZWFwIGZvciBhbnkgYWRkaXRpb25hbCBub24t
bWludXNjdWxlIG1lbW9yeSByZXF1aXJlbWVudHMuCiAgIGNvbnN0IEludGVybmFsUnVuRGVhdGhU
ZXN0RmxhZyogY29uc3QgZmxhZyA9CiAgICAgICBHZXRVbml0VGVzdEltcGwoKS0+aW50ZXJuYWxf
cnVuX2RlYXRoX3Rlc3RfZmxhZygpOwotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFn
ICE9IG51bGxwdHIpIHsKICAgICBGSUxFKiBwYXJlbnQgPSBwb3NpeDo6RkRPcGVuKGZsYWctPndy
aXRlX2ZkKCksICJ3Iik7CiAgICAgZnB1dGMoa0RlYXRoVGVzdEludGVybmFsRXJyb3IsIHBhcmVu
dCk7CiAgICAgZnByaW50ZihwYXJlbnQsICIlcyIsIG1lc3NhZ2UuY19zdHIoKSk7CkBAIC0zNjEs
NyArMzY5LDcgQEAgc3RhdGljIHZvaWQgRmFpbEZyb21JbnRlcm5hbEVycm9yKGludCBmZCkgewog
Ly8gZm9yIHRoZSBjdXJyZW50IHRlc3QuCiBEZWF0aFRlc3Q6OkRlYXRoVGVzdCgpIHsKICAgVGVz
dEluZm8qIGNvbnN0IGluZm8gPSBHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X2luZm8o
KTsKLSAgaWYgKGluZm8gPT0gTlVMTCkgeworICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CiAgICAg
RGVhdGhUZXN0QWJvcnQoIkNhbm5vdCBydW4gYSBkZWF0aCB0ZXN0IG91dHNpZGUgb2YgYSBURVNU
IG9yICIKICAgICAgICAgICAgICAgICAgICAiVEVTVF9GIGNvbnN0cnVjdCIpOwogICB9CkBAIC0z
NjksMTAgKzM3NywxMSBAQCBEZWF0aFRlc3Q6OkRlYXRoVGVzdCgpIHsKIAogLy8gQ3JlYXRlcyBh
bmQgcmV0dXJucyBhIGRlYXRoIHRlc3QgYnkgZGlzcGF0Y2hpbmcgdG8gdGhlIGN1cnJlbnQKIC8v
IGRlYXRoIHRlc3QgZmFjdG9yeS4KLWJvb2wgRGVhdGhUZXN0OjpDcmVhdGUoY29uc3QgY2hhciog
c3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSB7Citib29sIERlYXRoVGVz
dDo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
TWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHJl
dHVybiBHZXRVbml0VGVzdEltcGwoKS0+ZGVhdGhfdGVzdF9mYWN0b3J5KCktPkNyZWF0ZSgKLSAg
ICAgIHN0YXRlbWVudCwgcmVnZXgsIGZpbGUsIGxpbmUsIHRlc3QpOworICAgICAgc3RhdGVtZW50
LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZpbGUsIGxpbmUsIHRlc3QpOwogfQogCiBjb25zdCBjaGFy
KiBEZWF0aFRlc3Q6Okxhc3RNZXNzYWdlKCkgewpAQCAtMzg4LDkgKzM5Nyw5IEBAIHN0ZDo6c3Ry
aW5nIERlYXRoVGVzdDo6bGFzdF9kZWF0aF90ZXN0X21lc3NhZ2VfOwogLy8gUHJvdmlkZXMgY3Jv
c3MgcGxhdGZvcm0gaW1wbGVtZW50YXRpb24gZm9yIHNvbWUgZGVhdGggZnVuY3Rpb25hbGl0eS4K
IGNsYXNzIERlYXRoVGVzdEltcGwgOiBwdWJsaWMgRGVhdGhUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0g
IERlYXRoVGVzdEltcGwoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4
KQorICBEZWF0aFRlc3RJbXBsKGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0
IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcikKICAgICAgIDogc3RhdGVtZW50XyhhX3N0YXRlbWVudCks
Ci0gICAgICAgIHJlZ2V4XyhhX3JlZ2V4KSwKKyAgICAgICAgbWF0Y2hlcl8oc3RkOjptb3ZlKG1h
dGNoZXIpKSwKICAgICAgICAgc3Bhd25lZF8oZmFsc2UpLAogICAgICAgICBzdGF0dXNfKC0xKSwK
ICAgICAgICAgb3V0Y29tZV8oSU5fUFJPR1JFU1MpLApAQCAtMzk4LDEzICs0MDcsMTIgQEAgY2xh
c3MgRGVhdGhUZXN0SW1wbCA6IHB1YmxpYyBEZWF0aFRlc3QgewogICAgICAgICB3cml0ZV9mZF8o
LTEpIHt9CiAKICAgLy8gcmVhZF9mZF8gaXMgZXhwZWN0ZWQgdG8gYmUgY2xvc2VkIGFuZCBjbGVh
cmVkIGJ5IGEgZGVyaXZlZCBjbGFzcy4KLSAgfkRlYXRoVGVzdEltcGwoKSB7IEdURVNUX0RFQVRI
X1RFU1RfQ0hFQ0tfKHJlYWRfZmRfID09IC0xKTsgfQorICB+RGVhdGhUZXN0SW1wbCgpIG92ZXJy
aWRlIHsgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocmVhZF9mZF8gPT0gLTEpOyB9CiAKLSAgdm9p
ZCBBYm9ydChBYm9ydFJlYXNvbiByZWFzb24pOwotICB2aXJ0dWFsIGJvb2wgUGFzc2VkKGJvb2wg
c3RhdHVzX29rKTsKKyAgdm9pZCBBYm9ydChBYm9ydFJlYXNvbiByZWFzb24pIG92ZXJyaWRlOwor
ICBib29sIFBhc3NlZChib29sIHN0YXR1c19vaykgb3ZlcnJpZGU7CiAKICAgY29uc3QgY2hhciog
c3RhdGVtZW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGVtZW50XzsgfQotICBjb25zdCBSRSogcmVn
ZXgoKSBjb25zdCB7IHJldHVybiByZWdleF87IH0KICAgYm9vbCBzcGF3bmVkKCkgY29uc3QgeyBy
ZXR1cm4gc3Bhd25lZF87IH0KICAgdm9pZCBzZXRfc3Bhd25lZChib29sIGlzX3NwYXduZWQpIHsg
c3Bhd25lZF8gPSBpc19zcGF3bmVkOyB9CiAgIGludCBzdGF0dXMoKSBjb25zdCB7IHJldHVybiBz
dGF0dXNfOyB9CkBAIC00MjIsMTMgKzQzMCwxNSBAQCBjbGFzcyBEZWF0aFRlc3RJbXBsIDogcHVi
bGljIERlYXRoVGVzdCB7CiAgIC8vIGNhc2Ugb2YgdW5leHBlY3RlZCBjb2Rlcy4KICAgdm9pZCBS
ZWFkQW5kSW50ZXJwcmV0U3RhdHVzQnl0ZSgpOwogCisgIC8vIFJldHVybnMgc3RkZXJyIG91dHB1
dCBmcm9tIHRoZSBjaGlsZCBwcm9jZXNzLgorICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIEdldEVycm9y
TG9ncygpOworCiAgcHJpdmF0ZToKICAgLy8gVGhlIHRleHR1YWwgY29udGVudCBvZiB0aGUgY29k
ZSB0aGlzIG9iamVjdCBpcyB0ZXN0aW5nLiAgVGhpcyBjbGFzcwogICAvLyBkb2Vzbid0IG93biB0
aGlzIHN0cmluZyBhbmQgc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KICAgY29uc3Qg
Y2hhciogY29uc3Qgc3RhdGVtZW50XzsKLSAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aGlj
aCB0ZXN0IG91dHB1dCBtdXN0IG1hdGNoLiAgRGVhdGhUZXN0SW1wbAotICAvLyBkb2Vzbid0IG93
biB0aGlzIG9iamVjdCBhbmQgc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGRlbGV0ZSBpdC4KLSAgY29u
c3QgUkUqIGNvbnN0IHJlZ2V4XzsKKyAgLy8gQSBtYXRjaGVyIHRoYXQncyBleHBlY3RlZCB0byBt
YXRjaCB0aGUgc3RkZXJyIG91dHB1dCBieSB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgTWF0Y2hlcjxj
b25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXJfOwogICAvLyBUcnVlIGlmIHRoZSBkZWF0aCB0ZXN0
IGNoaWxkIHByb2Nlc3MgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNwYXduZWQuCiAgIGJvb2wgc3Bh
d25lZF87CiAgIC8vIFRoZSBleGl0IHN0YXR1cyBvZiB0aGUgY2hpbGQgcHJvY2Vzcy4KQEAgLTQ5
MCw2ICs1MDAsMTAgQEAgdm9pZCBEZWF0aFRlc3RJbXBsOjpSZWFkQW5kSW50ZXJwcmV0U3RhdHVz
Qnl0ZSgpIHsKICAgc2V0X3JlYWRfZmQoLTEpOwogfQogCitzdGQ6OnN0cmluZyBEZWF0aFRlc3RJ
bXBsOjpHZXRFcnJvckxvZ3MoKSB7CisgIHJldHVybiBHZXRDYXB0dXJlZFN0ZGVycigpOworfQor
CiAvLyBTaWduYWxzIHRoYXQgdGhlIGRlYXRoIHRlc3QgY29kZSB3aGljaCBzaG91bGQgaGF2ZSBl
eGl0ZWQsIGRpZG4ndC4KIC8vIFNob3VsZCBiZSBjYWxsZWQgb25seSBpbiBhIGRlYXRoIHRlc3Qg
Y2hpbGQgcHJvY2Vzcy4KIC8vIFdyaXRlcyBhIHN0YXR1cyBieXRlIHRvIHRoZSBjaGlsZCdzIHN0
YXR1cyBmaWxlIGRlc2NyaXB0b3IsIHRoZW4KQEAgLTU0MywyMiArNTU3LDIxIEBAIHN0YXRpYyA6
OnN0ZDo6c3RyaW5nIEZvcm1hdERlYXRoVGVzdE91dHB1dChjb25zdCA6OnN0ZDo6c3RyaW5nJiBv
dXRwdXQpIHsKIC8vICAgICAgICAgICAgIGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHdhaXQo
MikuIE9uIFdpbmRvd3MsIHRoaXMgaXMgdGhlCiAvLyAgICAgICAgICAgICB2YWx1ZSBzdXBwbGll
ZCB0byB0aGUgRXhpdFByb2Nlc3MoKSBBUEkgb3IgYSBudW1lcmljIGNvZGUKIC8vICAgICAgICAg
ICAgIG9mIHRoZSBleGNlcHRpb24gdGhhdCB0ZXJtaW5hdGVkIHRoZSBwcm9ncmFtLgotLy8gICBy
ZWdleDogICAgQSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHRvIGJlIGFwcGxpZWQgdG8KLS8v
ICAgICAgICAgICAgIHRoZSB0ZXN0J3MgY2FwdHVyZWQgc3RhbmRhcmQgZXJyb3Igb3V0cHV0OyB0
aGUgZGVhdGggdGVzdAotLy8gICAgICAgICAgICAgZmFpbHMgaWYgaXQgZG9lcyBub3QgbWF0Y2gu
CisvLyAgIG1hdGNoZXJfOiBBIG1hdGNoZXIgdGhhdCdzIGV4cGVjdGVkIHRvIG1hdGNoIHRoZSBz
dGRlcnIgb3V0cHV0IGJ5IHRoZSBjaGlsZAorLy8gICAgICAgICAgICAgcHJvY2Vzcy4KIC8vCiAv
LyBBcmd1bWVudDoKIC8vICAgc3RhdHVzX29rOiB0cnVlIGlmIGV4aXRfc3RhdHVzIGlzIGFjY2Vw
dGFibGUgaW4gdGhlIGNvbnRleHQgb2YKIC8vICAgICAgICAgICAgICB0aGlzIHBhcnRpY3VsYXIg
ZGVhdGggdGVzdCwgd2hpY2ggZmFpbHMgaWYgaXQgaXMgZmFsc2UKIC8vCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIGFsbCBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbWV0LiAgT3RoZXJ3aXNlLCB0
aGUKLS8vIGZpcnN0IGZhaWxpbmcgY29uZGl0aW9uLCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUs
IGlzIHRoZSBvbmUgdGhhdCBpcworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIGFsbCBv
ZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbWV0LiAgT3RoZXJ3aXNlLAorLy8gdGhlIGZpcnN0
IGZhaWxpbmcgY29uZGl0aW9uLCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYWJvdmUsIGlzIHRoZSBvbmUg
dGhhdCBpcwogLy8gcmVwb3J0ZWQuIEFsc28gc2V0cyB0aGUgbGFzdCBkZWF0aCB0ZXN0IG1lc3Nh
Z2Ugc3RyaW5nLgogYm9vbCBEZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsK
ICAgaWYgKCFzcGF3bmVkKCkpCiAgICAgcmV0dXJuIGZhbHNlOwogCi0gIGNvbnN0IHN0ZDo6c3Ry
aW5nIGVycm9yX21lc3NhZ2UgPSBHZXRDYXB0dXJlZFN0ZGVycigpOworICBjb25zdCBzdGQ6OnN0
cmluZyBlcnJvcl9tZXNzYWdlID0gR2V0RXJyb3JMb2dzKCk7CiAKICAgYm9vbCBzdWNjZXNzID0g
ZmFsc2U7CiAgIE1lc3NhZ2UgYnVmZmVyOwpAQCAtNTc5LDE4ICs1OTIsMTUgQEAgYm9vbCBEZWF0
aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsKICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRElFRDoKICAgICAgIGlmIChzdGF0dXNfb2spIHsKLSMgaWYgR1RFU1RfVVNFU19QQ1JFCi0g
ICAgICAgIC8vIFBDUkUgcmVnZXhlcyBzdXBwb3J0IGVtYmVkZGVkIE5VTHMuCi0gICAgICAgIGNv
bnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQYXJ0aWFsTWF0Y2goZXJyb3JfbWVzc2FnZSwgKnJlZ2V4
KCkpOwotIyBlbHNlCi0gICAgICAgIGNvbnN0IGJvb2wgbWF0Y2hlZCA9IFJFOjpQYXJ0aWFsTWF0
Y2goZXJyb3JfbWVzc2FnZS5jX3N0cigpLCAqcmVnZXgoKSk7Ci0jIGVuZGlmICAvLyBHVEVTVF9V
U0VTX1BDUkUKLSAgICAgICAgaWYgKG1hdGNoZWQpIHsKKyAgICAgICAgaWYgKG1hdGNoZXJfLk1h
dGNoZXMoZXJyb3JfbWVzc2FnZSkpIHsKICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3RyZWFtOworICAgICAg
ICAgIG1hdGNoZXJfLkRlc2NyaWJlVG8oJnN0cmVhbSk7CiAgICAgICAgICAgYnVmZmVyIDw8ICIg
ICAgUmVzdWx0OiBkaWVkIGJ1dCBub3Qgd2l0aCBleHBlY3RlZCBlcnJvci5cbiIKLSAgICAgICAg
ICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6ICIgPDwgcmVnZXgoKS0+cGF0dGVybigpIDw8ICJcbiIK
LSAgICAgICAgICAgICAgICAgPDwgIkFjdHVhbCBtc2c6XG4iIDw8IEZvcm1hdERlYXRoVGVzdE91
dHB1dChlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgPDwgIiAgRXhwZWN0ZWQ6ICIg
PDwgc3RyZWFtLnN0cigpIDw8ICJcbiIKKyAgICAgICAgICAgICAgICAgPDwgIkFjdHVhbCBtc2c6
XG4iCisgICAgICAgICAgICAgICAgIDw8IEZvcm1hdERlYXRoVGVzdE91dHB1dChlcnJvcl9tZXNz
YWdlKTsKICAgICAgICAgfQogICAgICAgfSBlbHNlIHsKICAgICAgICAgYnVmZmVyIDw8ICIgICAg
UmVzdWx0OiBkaWVkIGJ1dCBub3Qgd2l0aCBleHBlY3RlZCBleGl0IGNvZGU6XG4iCkBAIC02Mzks
MTEgKzY0OSwxMSBAQCBib29sIERlYXRoVGVzdEltcGw6OlBhc3NlZChib29sIHN0YXR1c19vaykg
ewogLy8KIGNsYXNzIFdpbmRvd3NEZWF0aFRlc3QgOiBwdWJsaWMgRGVhdGhUZXN0SW1wbCB7CiAg
cHVibGljOgotICBXaW5kb3dzRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LAotICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFJFKiBhX3JlZ2V4LAotICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZpbGUsCi0gICAgICAgICAgICAgICAgICAgaW50IGxpbmUpCi0gICAgICA6IERl
YXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIGFfcmVnZXgpLCBmaWxlXyhmaWxlKSwgbGluZV8obGlu
ZSkge30KKyAgV2luZG93c0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hl
cjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogZmlsZSwgaW50IGxpbmUpCisgICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQs
IHN0ZDo6bW92ZShtYXRjaGVyKSksCisgICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5l
XyhsaW5lKSB7fQogCiAgIC8vIEFsbCBvZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5o
ZXJpdGVkIGZyb20gRGVhdGhUZXN0LgogICB2aXJ0dWFsIGludCBXYWl0KCk7CkBAIC03MjAsNyAr
NzMwLDcgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xl
KCkgewogICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRfdGVzdF9p
bmZvKCk7CiAgIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0KCktPmRl
YXRoX3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9
IG51bGxwdHIpIHsKICAgICAvLyBQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIGhhcyBw
ZXJmb3JtZWQgYWxsIHRoZSBuZWNlc3NhcnkKICAgICAvLyBwcm9jZXNzaW5nLgogICAgIHNldF93
cml0ZV9mZChmbGFnLT53cml0ZV9mZCgpKTsKQEAgLTcyOSw4ICs3MzksOCBAQCBEZWF0aFRlc3Q6
OlRlc3RSb2xlIFdpbmRvd3NEZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAKICAgLy8gV2luZG93
c0RlYXRoVGVzdCB1c2VzIGFuIGFub255bW91cyBwaXBlIHRvIGNvbW11bmljYXRlIHJlc3VsdHMg
b2YKICAgLy8gYSBkZWF0aCB0ZXN0LgotICBTRUNVUklUWV9BVFRSSUJVVEVTIGhhbmRsZXNfYXJl
X2luaGVyaXRhYmxlID0gewotICAgIHNpemVvZihTRUNVUklUWV9BVFRSSUJVVEVTKSwgTlVMTCwg
VFJVRSB9OworICBTRUNVUklUWV9BVFRSSUJVVEVTIGhhbmRsZXNfYXJlX2luaGVyaXRhYmxlID0g
e3NpemVvZihTRUNVUklUWV9BVFRSSUJVVEVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCBUUlVFfTsKICAgSEFORExFIHJlYWRfaGFu
ZGxlLCB3cml0ZV9oYW5kbGU7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKAogICAgICAgOjpD
cmVhdGVQaXBlKCZyZWFkX2hhbmRsZSwgJndyaXRlX2hhbmRsZSwgJmhhbmRsZXNfYXJlX2luaGVy
aXRhYmxlLApAQCAtNzQxLDEzICs3NTEsMTMgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dz
RGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICB3cml0ZV9oYW5kbGVfLlJlc2V0KHdyaXRlX2hh
bmRsZSk7CiAgIGV2ZW50X2hhbmRsZV8uUmVzZXQoOjpDcmVhdGVFdmVudCgKICAgICAgICZoYW5k
bGVzX2FyZV9pbmhlcml0YWJsZSwKLSAgICAgIFRSVUUsICAgIC8vIFRoZSBldmVudCB3aWxsIGF1
dG9tYXRpY2FsbHkgcmVzZXQgdG8gbm9uLXNpZ25hbGVkIHN0YXRlLgotICAgICAgRkFMU0UsICAg
Ly8gVGhlIGluaXRpYWwgc3RhdGUgaXMgbm9uLXNpZ25hbGxlZC4KLSAgICAgIE5VTEwpKTsgIC8v
IFRoZSBldmVuIGlzIHVubmFtZWQuCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hh
bmRsZV8uR2V0KCkgIT0gTlVMTCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0K
LSAgICAgIHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ZpbHRlckZs
YWcgKyAiPSIgKwotICAgICAgaW5mby0+dGVzdF9jYXNlX25hbWUoKSArICIuIiArIGluZm8tPm5h
bWUoKTsKKyAgICAgIFRSVUUsICAgICAgIC8vIFRoZSBldmVudCB3aWxsIGF1dG9tYXRpY2FsbHkg
cmVzZXQgdG8gbm9uLXNpZ25hbGVkIHN0YXRlLgorICAgICAgRkFMU0UsICAgICAgLy8gVGhlIGlu
aXRpYWwgc3RhdGUgaXMgbm9uLXNpZ25hbGxlZC4KKyAgICAgIG51bGxwdHIpKTsgIC8vIFRoZSBl
dmVuIGlzIHVubmFtZWQuCisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGV2ZW50X2hhbmRsZV8u
R2V0KCkgIT0gbnVsbHB0cik7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3Rk
OjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtGaWx0ZXJGbGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1l
KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUo
KTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgaW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmlu
ZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcg
KwogICAgICAgIj0iICsgZmlsZV8gKyAifCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsg
InwiICsKQEAgLTc2MCwxMCArNzcwLDkgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVh
dGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICAgICAgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKHJl
aW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihldmVudF9oYW5kbGVfLkdldCgpKSk7CiAKICAgY2hhciBl
eGVjdXRhYmxlX3BhdGhbX01BWF9QQVRIICsgMV07ICAvLyBOT0xJTlQKLSAgR1RFU1RfREVBVEhf
VEVTVF9DSEVDS18oCi0gICAgICBfTUFYX1BBVEggKyAxICE9IDo6R2V0TW9kdWxlRmlsZU5hbWVB
KE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1
dGFibGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X01BWF9QQVRIKSk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKF9NQVhfUEFUSCArIDEgIT0g
OjpHZXRNb2R1bGVGaWxlTmFtZUEobnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgX01BWF9QQVRIKSk7CiAKICAgc3RkOjpzdHJpbmcgY29tbWFuZF9saW5lID0KICAgICAg
IHN0ZDo6c3RyaW5nKDo6R2V0Q29tbWFuZExpbmVBKCkpICsgIiAiICsgZmlsdGVyX2ZsYWcgKyAi
IFwiIiArCkBAIC03ODQsMTcgKzc5MywxNiBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIFdpbmRvd3NE
ZWF0aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAgIHN0YXJ0dXBfaW5mby5oU3RkRXJyb3IgPSA6Okdl
dFN0ZEhhbmRsZShTVERfRVJST1JfSEFORExFKTsKIAogICBQUk9DRVNTX0lORk9STUFUSU9OIHBy
b2Nlc3NfaW5mbzsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oOjpDcmVhdGVQcm9jZXNzQSgK
LSAgICAgIGV4ZWN1dGFibGVfcGF0aCwKLSAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KGNvbW1hbmRf
bGluZS5jX3N0cigpKSwKLSAgICAgIE5VTEwsICAgLy8gUmV0dW5lZCBwcm9jZXNzIGhhbmRsZSBp
cyBub3QgaW5oZXJpdGFibGUuCi0gICAgICBOVUxMLCAgIC8vIFJldHVuZWQgdGhyZWFkIGhhbmRs
ZSBpcyBub3QgaW5oZXJpdGFibGUuCi0gICAgICBUUlVFLCAgIC8vIENoaWxkIGluaGVyaXRzIGFs
bCBpbmhlcml0YWJsZSBoYW5kbGVzIChmb3Igd3JpdGVfaGFuZGxlXykuCi0gICAgICAweDAsICAg
IC8vIERlZmF1bHQgY3JlYXRpb24gZmxhZ3MuCi0gICAgICBOVUxMLCAgIC8vIEluaGVyaXQgdGhl
IHBhcmVudCdzIGVudmlyb25tZW50LgotICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9y
aWdpbmFsX3dvcmtpbmdfZGlyKCksCi0gICAgICAmc3RhcnR1cF9pbmZvLAotICAgICAgJnByb2Nl
c3NfaW5mbykgIT0gRkFMU0UpOworICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKKyAgICAgIDo6
Q3JlYXRlUHJvY2Vzc0EoCisgICAgICAgICAgZXhlY3V0YWJsZV9wYXRoLCBjb25zdF9jYXN0PGNo
YXIqPihjb21tYW5kX2xpbmUuY19zdHIoKSksCisgICAgICAgICAgbnVsbHB0ciwgIC8vIFJldHVu
ZWQgcHJvY2VzcyBoYW5kbGUgaXMgbm90IGluaGVyaXRhYmxlLgorICAgICAgICAgIG51bGxwdHIs
ICAvLyBSZXR1bmVkIHRocmVhZCBoYW5kbGUgaXMgbm90IGluaGVyaXRhYmxlLgorICAgICAgICAg
IFRSVUUsICAvLyBDaGlsZCBpbmhlcml0cyBhbGwgaW5oZXJpdGFibGUgaGFuZGxlcyAoZm9yIHdy
aXRlX2hhbmRsZV8pLgorICAgICAgICAgIDB4MCwgICAvLyBEZWZhdWx0IGNyZWF0aW9uIGZsYWdz
LgorICAgICAgICAgIG51bGxwdHIsICAvLyBJbmhlcml0IHRoZSBwYXJlbnQncyBlbnZpcm9ubWVu
dC4KKyAgICAgICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19k
aXIoKSwgJnN0YXJ0dXBfaW5mbywKKyAgICAgICAgICAmcHJvY2Vzc19pbmZvKSAhPSBGQUxTRSk7
CiAgIGNoaWxkX2hhbmRsZV8uUmVzZXQocHJvY2Vzc19pbmZvLmhQcm9jZXNzKTsKICAgOjpDbG9z
ZUhhbmRsZShwcm9jZXNzX2luZm8uaFRocmVhZCk7CiAgIHNldF9zcGF3bmVkKHRydWUpOwpAQCAt
ODA1LDM4ICs4MTMsMzQgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpB
c3N1bWVSb2xlKCkgewogCiBjbGFzcyBGdWNoc2lhRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVz
dEltcGwgewogIHB1YmxpYzoKLSAgRnVjaHNpYURlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRl
bWVudCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBmaWxlLAotICAgICAgICAgICAgICAgICAgIGludCBsaW5lKQot
ICAgICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSks
IGxpbmVfKGxpbmUpIHt9Ci0gIHZpcnR1YWwgfkZ1Y2hzaWFEZWF0aFRlc3QoKSB7Ci0gICAgenhf
c3RhdHVzX3Qgc3RhdHVzID0genhfaGFuZGxlX2Nsb3NlKGNoaWxkX3Byb2Nlc3NfKTsKLSAgICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPT0gWlhfT0spOwotICAgIHN0YXR1cyA9IHp4
X2hhbmRsZV9jbG9zZShwb3J0Xyk7Ci0gICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVz
ID09IFpYX09LKTsKLSAgfQorICBGdWNoc2lhRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVt
ZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlciwKKyAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkKKyAgICAgIDogRGVhdGhUZXN0SW1wbChh
X3N0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpKSwKKyAgICAgICAgZmlsZV8oZmlsZSksCisg
ICAgICAgIGxpbmVfKGxpbmUpIHt9CiAKICAgLy8gQWxsIG9mIHRoZXNlIHZpcnR1YWwgZnVuY3Rp
b25zIGFyZSBpbmhlcml0ZWQgZnJvbSBEZWF0aFRlc3QuCi0gIHZpcnR1YWwgaW50IFdhaXQoKTsK
LSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1bWVSb2xlKCk7CisgIGludCBXYWl0KCkgb3ZlcnJpZGU7
CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSBvdmVycmlkZTsKKyAgc3RkOjpzdHJpbmcgR2V0RXJy
b3JMb2dzKCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgogICAvLyBUaGUgbmFtZSBvZiB0aGUgZmls
ZSBpbiB3aGljaCB0aGUgZGVhdGggdGVzdCBpcyBsb2NhdGVkLgogICBjb25zdCBjaGFyKiBjb25z
dCBmaWxlXzsKICAgLy8gVGhlIGxpbmUgbnVtYmVyIG9uIHdoaWNoIHRoZSBkZWF0aCB0ZXN0IGlz
IGxvY2F0ZWQuCiAgIGNvbnN0IGludCBsaW5lXzsKKyAgLy8gVGhlIHN0ZGVyciBkYXRhIGNhcHR1
cmVkIGJ5IHRoZSBjaGlsZCBwcm9jZXNzLgorICBzdGQ6OnN0cmluZyBjYXB0dXJlZF9zdGRlcnJf
OwogCi0gIHp4X2hhbmRsZV90IGNoaWxkX3Byb2Nlc3NfID0gWlhfSEFORExFX0lOVkFMSUQ7Ci0g
IHp4X2hhbmRsZV90IHBvcnRfID0gWlhfSEFORExFX0lOVkFMSUQ7CisgIHp4Ojpwcm9jZXNzIGNo
aWxkX3Byb2Nlc3NfOworICB6eDo6Y2hhbm5lbCBleGNlcHRpb25fY2hhbm5lbF87CisgIHp4Ojpz
b2NrZXQgc3RkZXJyX3NvY2tldF87CiB9OwogCiAvLyBVdGlsaXR5IGNsYXNzIGZvciBhY2N1bXVs
YXRpbmcgY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KIGNsYXNzIEFyZ3VtZW50cyB7CiAgcHVibGlj
OgotICBBcmd1bWVudHMoKSB7Ci0gICAgYXJnc18ucHVzaF9iYWNrKE5VTEwpOwotICB9CisgIEFy
Z3VtZW50cygpIHsgYXJnc18ucHVzaF9iYWNrKG51bGxwdHIpOyB9CiAKICAgfkFyZ3VtZW50cygp
IHsKICAgICBmb3IgKHN0ZDo6dmVjdG9yPGNoYXIqPjo6aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2lu
KCk7IGkgIT0gYXJnc18uZW5kKCk7CkBAIC04NzIsNTEgKzg3Niw4NiBAQCBjbGFzcyBBcmd1bWVu
dHMgewogLy8gc3RhdHVzLCBvciAwIGlmIG5vIGNoaWxkIHByb2Nlc3MgZXhpc3RzLiAgQXMgYSBz
aWRlIGVmZmVjdCwgc2V0cyB0aGUKIC8vIG91dGNvbWUgZGF0YSBtZW1iZXIuCiBpbnQgRnVjaHNp
YURlYXRoVGVzdDo6V2FpdCgpIHsKKyAgY29uc3QgaW50IGtQcm9jZXNzS2V5ID0gMDsKKyAgY29u
c3QgaW50IGtTb2NrZXRLZXkgPSAxOworICBjb25zdCBpbnQga0V4Y2VwdGlvbktleSA9IDI7CisK
ICAgaWYgKCFzcGF3bmVkKCkpCiAgICAgcmV0dXJuIDA7CiAKLSAgLy8gUmVnaXN0ZXIgdG8gd2Fp
dCBmb3IgdGhlIGNoaWxkIHByb2Nlc3MgdG8gdGVybWluYXRlLgorICAvLyBDcmVhdGUgYSBwb3J0
IHRvIHdhaXQgZm9yIHNvY2tldC90YXNrL2V4Y2VwdGlvbiBldmVudHMuCiAgIHp4X3N0YXR1c190
IHN0YXR1c196eDsKLSAgc3RhdHVzX3p4ID0genhfb2JqZWN0X3dhaXRfYXN5bmMoY2hpbGRfcHJv
Y2Vzc18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGtleSAqLywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWlhfUFJPQ0VTU19URVJNSU5BVEVELAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBaWF9XQUlUX0FTWU5DX09OQ0UpOworICB6eDo6cG9ydCBw
b3J0OworICBzdGF0dXNfenggPSB6eDo6cG9ydDo6Y3JlYXRlKDAsICZwb3J0KTsKICAgR1RFU1Rf
REVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKIAotICAvLyBXYWl0IGZvciBp
dCB0byB0ZXJtaW5hdGUsIG9yIGFuIGV4Y2VwdGlvbiB0byBiZSByZWNlaXZlZC4KLSAgenhfcG9y
dF9wYWNrZXRfdCBwYWNrZXQ7Ci0gIHN0YXR1c196eCA9IHp4X3BvcnRfd2FpdChwb3J0XywgWlhf
VElNRV9JTkZJTklURSwgJnBhY2tldCk7CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBj
aGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0ZS4KKyAgc3RhdHVzX3p4ID0gY2hpbGRfcHJvY2Vzc18u
d2FpdF9hc3luYygKKyAgICAgIHBvcnQsIGtQcm9jZXNzS2V5LCBaWF9QUk9DRVNTX1RFUk1JTkFU
RUQsIDApOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwog
Ci0gIGlmIChaWF9QS1RfSVNfRVhDRVBUSU9OKHBhY2tldC50eXBlKSkgewotICAgIC8vIFByb2Nl
c3MgZW5jb3VudGVyZWQgYW4gZXhjZXB0aW9uLiBLaWxsIGl0IGRpcmVjdGx5IHJhdGhlciB0aGFu
IGxldHRpbmcKLSAgICAvLyBvdGhlciBoYW5kbGVycyBwcm9jZXNzIHRoZSBldmVudC4KLSAgICBz
dGF0dXNfenggPSB6eF90YXNrX2tpbGwoY2hpbGRfcHJvY2Vzc18pOwotICAgIEdURVNUX0RFQVRI
X1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CisgIC8vIFJlZ2lzdGVyIHRvIHdhaXQg
Zm9yIHRoZSBzb2NrZXQgdG8gYmUgcmVhZGFibGUgb3IgY2xvc2VkLgorICBzdGF0dXNfenggPSBz
dGRlcnJfc29ja2V0Xy53YWl0X2FzeW5jKAorICAgICAgcG9ydCwga1NvY2tldEtleSwgWlhfU09D
S0VUX1JFQURBQkxFIHwgWlhfU09DS0VUX1BFRVJfQ0xPU0VELCAwKTsKKyAgR1RFU1RfREVBVEhf
VEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKKworICAvLyBSZWdpc3RlciB0byB3YWl0
IGZvciBhbiBleGNlcHRpb24uCisgIHN0YXR1c196eCA9IGV4Y2VwdGlvbl9jaGFubmVsXy53YWl0
X2FzeW5jKAorICAgICAgcG9ydCwga0V4Y2VwdGlvbktleSwgWlhfQ0hBTk5FTF9SRUFEQUJMRSwg
MCk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9PSBaWF9PSyk7CiAKLSAg
ICAvLyBOb3cgd2FpdCBmb3IgfGNoaWxkX3Byb2Nlc3NffCB0byB0ZXJtaW5hdGUuCi0gICAgenhf
c2lnbmFsc190IHNpZ25hbHMgPSAwOwotICAgIHN0YXR1c196eCA9IHp4X29iamVjdF93YWl0X29u
ZSgKLSAgICAgICAgY2hpbGRfcHJvY2Vzc18sIFpYX1BST0NFU1NfVEVSTUlOQVRFRCwgWlhfVElN
RV9JTkZJTklURSwgJnNpZ25hbHMpOworICBib29sIHByb2Nlc3NfdGVybWluYXRlZCA9IGZhbHNl
OworICBib29sIHNvY2tldF9jbG9zZWQgPSBmYWxzZTsKKyAgZG8geworICAgIHp4X3BvcnRfcGFj
a2V0X3QgcGFja2V0ID0ge307CisgICAgc3RhdHVzX3p4ID0gcG9ydC53YWl0KHp4Ojp0aW1lOjpp
bmZpbml0ZSgpLCAmcGFja2V0KTsKICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNf
enggPT0gWlhfT0spOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHNpZ25hbHMgJiBaWF9Q
Uk9DRVNTX1RFUk1JTkFURUQpOwotICB9IGVsc2UgewotICAgIC8vIFByb2Nlc3MgdGVybWluYXRl
ZC4KLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNr
ZXQudHlwZSkpOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHBhY2tldC5zaWduYWwub2Jz
ZXJ2ZWQgJiBaWF9QUk9DRVNTX1RFUk1JTkFURUQpOwotICB9CisKKyAgICBpZiAocGFja2V0Lmtl
eSA9PSBrRXhjZXB0aW9uS2V5KSB7CisgICAgICAvLyBQcm9jZXNzIGVuY291bnRlcmVkIGFuIGV4
Y2VwdGlvbi4gS2lsbCBpdCBkaXJlY3RseSByYXRoZXIgdGhhbgorICAgICAgLy8gbGV0dGluZyBv
dGhlciBoYW5kbGVycyBwcm9jZXNzIHRoZSBldmVudC4gV2Ugd2lsbCBnZXQgYSBrUHJvY2Vzc0tl
eQorICAgICAgLy8gZXZlbnQgd2hlbiB0aGUgcHJvY2VzcyBhY3R1YWxseSB0ZXJtaW5hdGVzLgor
ICAgICAgc3RhdHVzX3p4ID0gY2hpbGRfcHJvY2Vzc18ua2lsbCgpOworICAgICAgR1RFU1RfREVB
VEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKKyAgICB9IGVsc2UgaWYgKHBhY2tl
dC5rZXkgPT0ga1Byb2Nlc3NLZXkpIHsKKyAgICAgIC8vIFByb2Nlc3MgdGVybWluYXRlZC4KKyAg
ICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50
eXBlKSk7CisgICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2Vy
dmVkICYgWlhfUFJPQ0VTU19URVJNSU5BVEVEKTsKKyAgICAgIHByb2Nlc3NfdGVybWluYXRlZCA9
IHRydWU7CisgICAgfSBlbHNlIGlmIChwYWNrZXQua2V5ID09IGtTb2NrZXRLZXkpIHsKKyAgICAg
IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKFpYX1BLVF9JU19TSUdOQUxfT05FKHBhY2tldC50eXBl
KSk7CisgICAgICBpZiAocGFja2V0LnNpZ25hbC5vYnNlcnZlZCAmIFpYX1NPQ0tFVF9SRUFEQUJM
RSkgeworICAgICAgICAvLyBSZWFkIGRhdGEgZnJvbSB0aGUgc29ja2V0LgorICAgICAgICBjb25z
dGV4cHIgc2l6ZV90IGtCdWZmZXJTaXplID0gMTAyNDsKKyAgICAgICAgZG8geworICAgICAgICAg
IHNpemVfdCBvbGRfbGVuZ3RoID0gY2FwdHVyZWRfc3RkZXJyXy5sZW5ndGgoKTsKKyAgICAgICAg
ICBzaXplX3QgYnl0ZXNfcmVhZCA9IDA7CisgICAgICAgICAgY2FwdHVyZWRfc3RkZXJyXy5yZXNp
emUob2xkX2xlbmd0aCArIGtCdWZmZXJTaXplKTsKKyAgICAgICAgICBzdGF0dXNfenggPSBzdGRl
cnJfc29ja2V0Xy5yZWFkKAorICAgICAgICAgICAgICAwLCAmY2FwdHVyZWRfc3RkZXJyXy5mcm9u
dCgpICsgb2xkX2xlbmd0aCwga0J1ZmZlclNpemUsCisgICAgICAgICAgICAgICZieXRlc19yZWFk
KTsKKyAgICAgICAgICBjYXB0dXJlZF9zdGRlcnJfLnJlc2l6ZShvbGRfbGVuZ3RoICsgYnl0ZXNf
cmVhZCk7CisgICAgICAgIH0gd2hpbGUgKHN0YXR1c196eCA9PSBaWF9PSyk7CisgICAgICAgIGlm
IChzdGF0dXNfenggPT0gWlhfRVJSX1BFRVJfQ0xPU0VEKSB7CisgICAgICAgICAgc29ja2V0X2Ns
b3NlZCA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX0VSUl9TSE9VTERfV0FJVCk7CisgICAgICAgICAgc3Rh
dHVzX3p4ID0gc3RkZXJyX3NvY2tldF8ud2FpdF9hc3luYygKKyAgICAgICAgICAgICAgcG9ydCwg
a1NvY2tldEtleSwgWlhfU09DS0VUX1JFQURBQkxFIHwgWlhfU09DS0VUX1BFRVJfQ0xPU0VELCAw
KTsKKyAgICAgICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0sp
OworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBHVEVTVF9ERUFUSF9URVNUX0NI
RUNLXyhwYWNrZXQuc2lnbmFsLm9ic2VydmVkICYgWlhfU09DS0VUX1BFRVJfQ0xPU0VEKTsKKyAg
ICAgICAgc29ja2V0X2Nsb3NlZCA9IHRydWU7CisgICAgICB9CisgICAgfQorICB9IHdoaWxlICgh
cHJvY2Vzc190ZXJtaW5hdGVkICYmICFzb2NrZXRfY2xvc2VkKTsKIAogICBSZWFkQW5kSW50ZXJw
cmV0U3RhdHVzQnl0ZSgpOwogCiAgIHp4X2luZm9fcHJvY2Vzc190IGJ1ZmZlcjsKLSAgc3RhdHVz
X3p4ID0genhfb2JqZWN0X2dldF9pbmZvKAotICAgICAgY2hpbGRfcHJvY2Vzc18sCi0gICAgICBa
WF9JTkZPX1BST0NFU1MsCi0gICAgICAmYnVmZmVyLAotICAgICAgc2l6ZW9mKGJ1ZmZlciksCi0g
ICAgICBudWxscHRyLAotICAgICAgbnVsbHB0cik7CisgIHN0YXR1c196eCA9IGNoaWxkX3Byb2Nl
c3NfLmdldF9pbmZvKAorICAgICAgWlhfSU5GT19QUk9DRVNTLCAmYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1
c196eCA9PSBaWF9PSyk7CiAKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oYnVmZmVyLmV4aXRl
ZCk7CkBAIC05MzYsMjEgKzk3NSwyMCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEZ1Y2hzaWFEZWF0
aFRlc3Q6OkFzc3VtZVJvbGUoKSB7CiAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCBpbmZvID0gaW1w
bC0+Y3VycmVudF90ZXN0X2luZm8oKTsKICAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXggPSBp
bmZvLT5yZXN1bHQoKS0+ZGVhdGhfdGVzdF9jb3VudCgpOwogCi0gIGlmIChmbGFnICE9IE5VTEwp
IHsKKyAgaWYgKGZsYWcgIT0gbnVsbHB0cikgewogICAgIC8vIFBhcnNlSW50ZXJuYWxSdW5EZWF0
aFRlc3RGbGFnKCkgaGFzIHBlcmZvcm1lZCBhbGwgdGhlIG5lY2Vzc2FyeQogICAgIC8vIHByb2Nl
c3NpbmcuCiAgICAgc2V0X3dyaXRlX2ZkKGtGdWNoc2lhUmVhZFBpcGVGZCk7CiAgICAgcmV0dXJu
IEVYRUNVVEVfVEVTVDsKICAgfQogCi0gIENhcHR1cmVTdGRlcnIoKTsKICAgLy8gRmx1c2ggdGhl
IGxvZyBidWZmZXJzIHNpbmNlIHRoZSBsb2cgc3RyZWFtcyBhcmUgc2hhcmVkIHdpdGggdGhlIGNo
aWxkLgogICBGbHVzaEluZm9Mb2coKTsKIAogICAvLyBCdWlsZCB0aGUgY2hpbGQgcHJvY2VzcyBj
b21tYW5kIGxpbmUuCi0gIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0KLSAgICAgIHN0
ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsga0ZpbHRlckZsYWcgKyAiPSIK
LSAgICAgICsgaW5mby0+dGVzdF9jYXNlX25hbWUoKSArICIuIiArIGluZm8tPm5hbWUoKTsKKyAg
Y29uc3Qgc3RkOjpzdHJpbmcgZmlsdGVyX2ZsYWcgPSBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNU
X0ZMQUdfUFJFRklYXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0ZpbHRl
ckZsYWcgKyAiPSIgKyBpbmZvLT50ZXN0X3N1aXRlX25hbWUoKSArCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi4iICsgaW5mby0+bmFtZSgpOwogICBjb25zdCBzdGQ6OnN0cmlu
ZyBpbnRlcm5hbF9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19Q
UkVGSVhfICsga0ludGVybmFsUnVuRGVhdGhUZXN0RmxhZyArICI9IgogICAgICAgKyBmaWxlXyAr
ICJ8IgpAQCAtOTY0LDM1ICsxMDAyLDY4IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgRnVjaHNpYURl
YXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKICAgLy8gQnVpbGQgdGhlIHBpcGUgZm9yIGNvbW11bmlj
YXRpb24gd2l0aCB0aGUgY2hpbGQuCiAgIHp4X3N0YXR1c190IHN0YXR1czsKICAgenhfaGFuZGxl
X3QgY2hpbGRfcGlwZV9oYW5kbGU7Ci0gIHVpbnQzMl90IHR5cGU7Ci0gIHN0YXR1cyA9IGZkaW9f
cGlwZV9oYWxmKCZjaGlsZF9waXBlX2hhbmRsZSwgJnR5cGUpOwotICBHVEVTVF9ERUFUSF9URVNU
X0NIRUNLXyhzdGF0dXMgPj0gMCk7Ci0gIHNldF9yZWFkX2ZkKHN0YXR1cyk7CisgIGludCBjaGls
ZF9waXBlX2ZkOworICBzdGF0dXMgPSBmZGlvX3BpcGVfaGFsZigmY2hpbGRfcGlwZV9mZCwgJmNo
aWxkX3BpcGVfaGFuZGxlKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpY
X09LKTsKKyAgc2V0X3JlYWRfZmQoY2hpbGRfcGlwZV9mZCk7CiAKICAgLy8gU2V0IHRoZSBwaXBl
IGhhbmRsZSBmb3IgdGhlIGNoaWxkLgotICBmZGlvX3NwYXduX2FjdGlvbl90IGFkZF9oYW5kbGVf
YWN0aW9uID0ge307Ci0gIGFkZF9oYW5kbGVfYWN0aW9uLmFjdGlvbiA9IEZESU9fU1BBV05fQUNU
SU9OX0FERF9IQU5ETEU7Ci0gIGFkZF9oYW5kbGVfYWN0aW9uLmguaWQgPSBQQV9ITkQodHlwZSwg
a0Z1Y2hzaWFSZWFkUGlwZUZkKTsKLSAgYWRkX2hhbmRsZV9hY3Rpb24uaC5oYW5kbGUgPSBjaGls
ZF9waXBlX2hhbmRsZTsKKyAgZmRpb19zcGF3bl9hY3Rpb25fdCBzcGF3bl9hY3Rpb25zWzJdID0g
e307CisgIGZkaW9fc3Bhd25fYWN0aW9uX3QqIGFkZF9oYW5kbGVfYWN0aW9uID0gJnNwYXduX2Fj
dGlvbnNbMF07CisgIGFkZF9oYW5kbGVfYWN0aW9uLT5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElP
Tl9BRERfSEFORExFOworICBhZGRfaGFuZGxlX2FjdGlvbi0+aC5pZCA9IFBBX0hORChQQV9GRCwg
a0Z1Y2hzaWFSZWFkUGlwZUZkKTsKKyAgYWRkX2hhbmRsZV9hY3Rpb24tPmguaGFuZGxlID0gY2hp
bGRfcGlwZV9oYW5kbGU7CisKKyAgLy8gQ3JlYXRlIGEgc29ja2V0IHBhaXIgd2lsbCBiZSB1c2Vk
IHRvIHJlY2VpdmUgdGhlIGNoaWxkIHByb2Nlc3MnIHN0ZGVyci4KKyAgeng6OnNvY2tldCBzdGRl
cnJfcHJvZHVjZXJfc29ja2V0OworICBzdGF0dXMgPQorICAgICAgeng6OnNvY2tldDo6Y3JlYXRl
KDAsICZzdGRlcnJfcHJvZHVjZXJfc29ja2V0LCAmc3RkZXJyX3NvY2tldF8pOworICBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPj0gMCk7CisgIGludCBzdGRlcnJfcHJvZHVjZXJfZmQg
PSAtMTsKKyAgc3RhdHVzID0KKyAgICAgIGZkaW9fZmRfY3JlYXRlKHN0ZGVycl9wcm9kdWNlcl9z
b2NrZXQucmVsZWFzZSgpLCAmc3RkZXJyX3Byb2R1Y2VyX2ZkKTsKKyAgR1RFU1RfREVBVEhfVEVT
VF9DSEVDS18oc3RhdHVzID49IDApOwogCi0gIC8vIFNwYXduIHRoZSBjaGlsZCBwcm9jZXNzLgot
ICBzdGF0dXMgPSBmZGlvX3NwYXduX2V0YyhaWF9IQU5ETEVfSU5WQUxJRCwgRkRJT19TUEFXTl9D
TE9ORV9BTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuQXJndigpWzBdLCBhcmdz
LkFyZ3YoKSwgbnVsbHB0ciwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZF9oYW5k
bGVfYWN0aW9uLCAmY2hpbGRfcHJvY2Vzc18sIG51bGxwdHIpOworICAvLyBNYWtlIHRoZSBzdGRl
cnIgc29ja2V0IG5vbmJsb2NraW5nLgorICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhmY250bChz
dGRlcnJfcHJvZHVjZXJfZmQsIEZfU0VURkwsIDApID09IDApOworCisgIGZkaW9fc3Bhd25fYWN0
aW9uX3QqIGFkZF9zdGRlcnJfYWN0aW9uID0gJnNwYXduX2FjdGlvbnNbMV07CisgIGFkZF9zdGRl
cnJfYWN0aW9uLT5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElPTl9DTE9ORV9GRDsKKyAgYWRkX3N0
ZGVycl9hY3Rpb24tPmZkLmxvY2FsX2ZkID0gc3RkZXJyX3Byb2R1Y2VyX2ZkOworICBhZGRfc3Rk
ZXJyX2FjdGlvbi0+ZmQudGFyZ2V0X2ZkID0gU1RERVJSX0ZJTEVOTzsKKworICAvLyBDcmVhdGUg
YSBjaGlsZCBqb2IuCisgIHp4X2hhbmRsZV90IGNoaWxkX2pvYiA9IFpYX0hBTkRMRV9JTlZBTElE
OworICBzdGF0dXMgPSB6eF9qb2JfY3JlYXRlKHp4X2pvYl9kZWZhdWx0KCksIDAsICYgY2hpbGRf
am9iKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKKyAgenhf
cG9saWN5X2Jhc2ljX3QgcG9saWN5OworICBwb2xpY3kuY29uZGl0aW9uID0gWlhfUE9MX05FV19B
Tlk7CisgIHBvbGljeS5wb2xpY3kgPSBaWF9QT0xfQUNUSU9OX0FMTE9XOworICBzdGF0dXMgPSB6
eF9qb2Jfc2V0X3BvbGljeSgKKyAgICAgIGNoaWxkX2pvYiwgWlhfSk9CX1BPTF9SRUxBVElWRSwg
WlhfSk9CX1BPTF9CQVNJQywgJnBvbGljeSwgMSk7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tf
KHN0YXR1cyA9PSBaWF9PSyk7CiAKLSAgLy8gQ3JlYXRlIGFuIGV4Y2VwdGlvbiBwb3J0IGFuZCBh
dHRhY2ggaXQgdG8gdGhlIHxjaGlsZF9wcm9jZXNzX3wsIHRvIGFsbG93CisgIC8vIENyZWF0ZSBh
biBleGNlcHRpb24gY2hhbm5lbCBhdHRhY2hlZCB0byB0aGUgfGNoaWxkX2pvYnwsIHRvIGFsbG93
CiAgIC8vIHVzIHRvIHN1cHByZXNzIHRoZSBzeXN0ZW0gZGVmYXVsdCBleGNlcHRpb24gaGFuZGxl
ciBmcm9tIGZpcmluZy4KLSAgc3RhdHVzID0genhfcG9ydF9jcmVhdGUoMCwgJnBvcnRfKTsKKyAg
c3RhdHVzID0KKyAgICAgIHp4X3Rhc2tfY3JlYXRlX2V4Y2VwdGlvbl9jaGFubmVsKAorICAgICAg
ICAgIGNoaWxkX2pvYiwgMCwgZXhjZXB0aW9uX2NoYW5uZWxfLnJlc2V0X2FuZF9nZXRfYWRkcmVz
cygpKTsKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID09IFpYX09LKTsKLSAgc3Rh
dHVzID0genhfdGFza19iaW5kX2V4Y2VwdGlvbl9wb3J0KAotICAgICAgY2hpbGRfcHJvY2Vzc18s
IHBvcnRfLCAwIC8qIGtleSAqLywgMCAvKm9wdGlvbnMgKi8pOworCisgIC8vIFNwYXduIHRoZSBj
aGlsZCBwcm9jZXNzLgorICBzdGF0dXMgPSBmZGlvX3NwYXduX2V0YygKKyAgICAgIGNoaWxkX2pv
YiwgRkRJT19TUEFXTl9DTE9ORV9BTEwsIGFyZ3MuQXJndigpWzBdLCBhcmdzLkFyZ3YoKSwgbnVs
bHB0ciwKKyAgICAgIDIsIHNwYXduX2FjdGlvbnMsIGNoaWxkX3Byb2Nlc3NfLnJlc2V0X2FuZF9n
ZXRfYWRkcmVzcygpLCBudWxscHRyKTsKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVz
ID09IFpYX09LKTsKIAogICBzZXRfc3Bhd25lZCh0cnVlKTsKICAgcmV0dXJuIE9WRVJTRUVfVEVT
VDsKIH0KIAorc3RkOjpzdHJpbmcgRnVjaHNpYURlYXRoVGVzdDo6R2V0RXJyb3JMb2dzKCkgewor
ICByZXR1cm4gY2FwdHVyZWRfc3RkZXJyXzsKK30KKwogI2Vsc2UgIC8vIFdlIGFyZSBuZWl0aGVy
IG9uIFdpbmRvd3MsIG5vciBvbiBGdWNoc2lhLgogCiAvLyBGb3JraW5nRGVhdGhUZXN0IHByb3Zp
ZGVzIGltcGxlbWVudGF0aW9ucyBmb3IgbW9zdCBvZiB0aGUgYWJzdHJhY3QKQEAgLTEwMDAsMTAg
KzEwNzEsMTAgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBGdWNoc2lhRGVhdGhUZXN0OjpBc3N1bWVS
b2xlKCkgewogLy8gbGVmdCB1bmRlZmluZWQuCiBjbGFzcyBGb3JraW5nRGVhdGhUZXN0IDogcHVi
bGljIERlYXRoVGVzdEltcGwgewogIHB1YmxpYzoKLSAgRm9ya2luZ0RlYXRoVGVzdChjb25zdCBj
aGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCk7CisgIEZvcmtpbmdEZWF0aFRlc3QoY29u
c3QgY2hhciogc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcik7
CiAKICAgLy8gQWxsIG9mIHRoZXNlIHZpcnR1YWwgZnVuY3Rpb25zIGFyZSBpbmhlcml0ZWQgZnJv
bSBEZWF0aFRlc3QuCi0gIHZpcnR1YWwgaW50IFdhaXQoKTsKKyAgaW50IFdhaXQoKSBvdmVycmlk
ZTsKIAogIHByb3RlY3RlZDoKICAgdm9pZCBzZXRfY2hpbGRfcGlkKHBpZF90IGNoaWxkX3BpZCkg
eyBjaGlsZF9waWRfID0gY2hpbGRfcGlkOyB9CkBAIC0xMDE0LDkgKzEwODUsOSBAQCBjbGFzcyBG
b3JraW5nRGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogfTsKIAogLy8gQ29uc3Ry
dWN0cyBhIEZvcmtpbmdEZWF0aFRlc3QuCi1Gb3JraW5nRGVhdGhUZXN0OjpGb3JraW5nRGVhdGhU
ZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LCBjb25zdCBSRSogYV9yZWdleCkKLSAgICA6IERl
YXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIGFfcmVnZXgpLAotICAgICAgY2hpbGRfcGlkXygtMSkg
e30KK0ZvcmtpbmdEZWF0aFRlc3Q6OkZvcmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0
ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoZXI8Y29uc3Qg
c3RkOjpzdHJpbmcmPiBtYXRjaGVyKQorICAgIDogRGVhdGhUZXN0SW1wbChhX3N0YXRlbWVudCwg
c3RkOjptb3ZlKG1hdGNoZXIpKSwgY2hpbGRfcGlkXygtMSkge30KIAogLy8gV2FpdHMgZm9yIHRo
ZSBjaGlsZCBpbiBhIGRlYXRoIHRlc3QgdG8gZXhpdCwgcmV0dXJuaW5nIGl0cyBleGl0CiAvLyBz
dGF0dXMsIG9yIDAgaWYgbm8gY2hpbGQgcHJvY2VzcyBleGlzdHMuICBBcyBhIHNpZGUgZWZmZWN0
LCBzZXRzIHRoZQpAQCAtMTAzNyw5ICsxMTA4LDkgQEAgaW50IEZvcmtpbmdEZWF0aFRlc3Q6Oldh
aXQoKSB7CiAvLyBpbiB0aGUgY2hpbGQgcHJvY2Vzcy4KIGNsYXNzIE5vRXhlY0RlYXRoVGVzdCA6
IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0IHsKICBwdWJsaWM6Ci0gIE5vRXhlY0RlYXRoVGVzdChj
b25zdCBjaGFyKiBhX3N0YXRlbWVudCwgY29uc3QgUkUqIGFfcmVnZXgpIDoKLSAgICAgIEZvcmtp
bmdEZWF0aFRlc3QoYV9zdGF0ZW1lbnQsIGFfcmVnZXgpIHsgfQotICB2aXJ0dWFsIFRlc3RSb2xl
IEFzc3VtZVJvbGUoKTsKKyAgTm9FeGVjRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50
LCBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hlcikKKyAgICAgIDogRm9ya2luZ0Rl
YXRoVGVzdChhX3N0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpKSB7fQorICBUZXN0Um9sZSBB
c3N1bWVSb2xlKCkgb3ZlcnJpZGU7CiB9OwogCiAvLyBUaGUgQXNzdW1lUm9sZSBwcm9jZXNzIGZv
ciBhIGZvcmstYW5kLXJ1biBkZWF0aCB0ZXN0LiAgSXQgaW1wbGVtZW50cyBhCkBAIC0xMDkyLDEw
ICsxMTYzLDEzIEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgTm9FeGVjRGVhdGhUZXN0OjpBc3N1bWVS
b2xlKCkgewogLy8gb25seSB0aGlzIHNwZWNpZmljIGRlYXRoIHRlc3QgdG8gYmUgcnVuLgogY2xh
c3MgRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3JraW5nRGVhdGhUZXN0IHsKICBwdWJsaWM6Ci0g
IEV4ZWNEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsIGNvbnN0IFJFKiBhX3JlZ2V4
LAotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSA6Ci0gICAgICBG
b3JraW5nRGVhdGhUZXN0KGFfc3RhdGVtZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVf
KGxpbmUpIHsgfQotICB2aXJ0dWFsIFRlc3RSb2xlIEFzc3VtZVJvbGUoKTsKKyAgRXhlY0RlYXRo
VGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+
IG1hdGNoZXIsCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpCisg
ICAgICA6IEZvcmtpbmdEZWF0aFRlc3QoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSks
CisgICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5lXyhsaW5lKSB7fQorICBUZXN0Um9s
ZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGU7CisKICBwcml2YXRlOgogICBzdGF0aWMgOjpzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4gR2V0QXJndnNGb3JEZWF0aFRlc3RDaGlsZFByb2Nlc3MoKSB7CiAg
ICAgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gYXJncyA9IEdldEluamVjdGFibGVBcmd2cygp
OwpAQCAtMTExNSw5ICsxMTg5LDcgQEAgY2xhc3MgRXhlY0RlYXRoVGVzdCA6IHB1YmxpYyBGb3Jr
aW5nRGVhdGhUZXN0IHsKIC8vIFV0aWxpdHkgY2xhc3MgZm9yIGFjY3VtdWxhdGluZyBjb21tYW5k
LWxpbmUgYXJndW1lbnRzLgogY2xhc3MgQXJndW1lbnRzIHsKICBwdWJsaWM6Ci0gIEFyZ3VtZW50
cygpIHsKLSAgICBhcmdzXy5wdXNoX2JhY2soTlVMTCk7Ci0gIH0KKyAgQXJndW1lbnRzKCkgeyBh
cmdzXy5wdXNoX2JhY2sobnVsbHB0cik7IH0KIAogICB+QXJndW1lbnRzKCkgewogICAgIGZvciAo
c3RkOjp2ZWN0b3I8Y2hhcio+OjppdGVyYXRvciBpID0gYXJnc18uYmVnaW4oKTsgaSAhPSBhcmdz
Xy5lbmQoKTsKQEAgLTExNTIsNyArMTIyNCw5IEBAIHN0cnVjdCBFeGVjRGVhdGhUZXN0QXJncyB7
CiAgIGludCBjbG9zZV9mZDsgICAgICAgLy8gRmlsZSBkZXNjcmlwdG9yIHRvIGNsb3NlOyB0aGUg
cmVhZCBlbmQgb2YgYSBwaXBlCiB9OwogCi0jICBpZiAhR1RFU1RfT1NfUU5YCisjICBpZiBHVEVT
VF9PU19RTlgKK2V4dGVybiAiQyIgY2hhcioqIGVudmlyb247CisjICBlbHNlICAvLyBHVEVTVF9P
U19RTlgKIC8vIFRoZSBtYWluIGZ1bmN0aW9uIGZvciBhIHRocmVhZHNhZmUtc3R5bGUgZGVhdGgg
dGVzdCBjaGlsZCBwcm9jZXNzLgogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9u
ZSgpLWVkIHByb2Nlc3MgYW5kIHRodXMgbXVzdCBhdm9pZAogLy8gYW55IHBvdGVudGlhbGx5IHVu
c2FmZSBvcGVyYXRpb25zIGxpa2UgbWFsbG9jIG9yIGxpYmMgZnVuY3Rpb25zLgpAQCAtMTE3Miwy
MSArMTI0NiwxOCBAQCBzdGF0aWMgaW50IEV4ZWNEZWF0aFRlc3RDaGlsZE1haW4odm9pZCogY2hp
bGRfYXJnKSB7CiAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgfQogCi0gIC8vIFdlIGNhbiBz
YWZlbHkgY2FsbCBleGVjdmUoKSBhcyBpdCdzIGEgZGlyZWN0IHN5c3RlbSBjYWxsLiAgV2UKKyAg
Ly8gV2UgY2FuIHNhZmVseSBjYWxsIGV4ZWN2KCkgYXMgaXQncyBhbG1vc3QgYSBkaXJlY3Qgc3lz
dGVtIGNhbGwuIFdlCiAgIC8vIGNhbm5vdCB1c2UgZXhlY3ZwKCkgYXMgaXQncyBhIGxpYmMgZnVu
Y3Rpb24gYW5kIHRodXMgcG90ZW50aWFsbHkKLSAgLy8gdW5zYWZlLiAgU2luY2UgZXhlY3ZlKCkg
ZG9lc24ndCBzZWFyY2ggdGhlIFBBVEgsIHRoZSB1c2VyIG11c3QKKyAgLy8gdW5zYWZlLiAgU2lu
Y2UgZXhlY3YoKSBkb2Vzbid0IHNlYXJjaCB0aGUgUEFUSCwgdGhlIHVzZXIgbXVzdAogICAvLyBp
bnZva2UgdGhlIHRlc3QgcHJvZ3JhbSB2aWEgYSB2YWxpZCBwYXRoIHRoYXQgY29udGFpbnMgYXQg
bGVhc3QKICAgLy8gb25lIHBhdGggc2VwYXJhdG9yLgotICAvLyBXZSBoYXZlIHJlcGxhY2VkIGV4
ZWN2ZSgpIHdpdGggZXhlY3YoKSBmb3IgV2ViS2l0IHRvIGF2b2lkIHVzaW5nCi0gIC8vIGVudmly
b24uIEl0IHNob3VsZCBiZSBzYWZlIGJlY2F1c2UgZXhlY3YoKSBpcyBqdXN0IGEgc2ltcGxlIHdy
YXBwZXIKLSAgLy8gb2YgZXhlY3ZlKCkuCiAgIGV4ZWN2KGFyZ3MtPmFyZ3ZbMF0sIGFyZ3MtPmFy
Z3YpOwogICBEZWF0aFRlc3RBYm9ydChzdGQ6OnN0cmluZygiZXhlY3YoIikgKyBhcmdzLT5hcmd2
WzBdICsgIiwgLi4uKSBpbiAiICsKICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGlyICsgIiBm
YWlsZWQ6ICIgKwogICAgICAgICAgICAgICAgICBHZXRMYXN0RXJybm9EZXNjcmlwdGlvbigpKTsK
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIH0KLSMgIGVuZGlmICAvLyAhR1RFU1RfT1NfUU5YCisj
ICBlbmRpZiAgLy8gR1RFU1RfT1NfUU5YCiAKICMgIGlmIEdURVNUX0hBU19DTE9ORQogLy8gVHdv
IHV0aWxpdHkgcm91dGluZXMgdGhhdCB0b2dldGhlciBkZXRlcm1pbmUgdGhlIGRpcmVjdGlvbiB0
aGUgc3RhY2sKQEAgLTEyMDAsMTUgKzEyNzEsMjQgQEAgc3RhdGljIGludCBFeGVjRGVhdGhUZXN0
Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2FyZykgewogLy8gY29ycmVjdCBhbnN3ZXIuCiBzdGF0aWMg
dm9pZCBTdGFja0xvd2VyVGhhbkFkZHJlc3MoY29uc3Qgdm9pZCogcHRyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHJlc3VsdCkgR1RFU1RfTk9fSU5MSU5FXzsKKy8v
IE1ha2Ugc3VyZSBzYW5pdGl6ZXJzIGRvIG5vdCB0YW1wZXIgd2l0aCB0aGUgc3RhY2sgaGVyZS4K
Ky8vIElkZWFsbHksIHdlIHdhbnQgdG8gdXNlIGBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzc2AgaW5z
dGVhZCBvZiBhIGxvY2FsIHZhcmlhYmxlCisvLyBhZGRyZXNzIHdpdGggc2FuaXRpemVyIGRpc2Fi
bGVkLCBidXQgaXQgZG9lcyBub3Qgd29yayB3aGVuIHRoZQorLy8gY29tcGlsZXIgb3B0aW1pemVz
IHRoZSBzdGFjayBmcmFtZSBvdXQsIHdoaWNoIGhhcHBlbnMgb24gUG93ZXJQQyB0YXJnZXRzLgor
Ly8gSFdBZGRyZXNzU2FuaXRpemVyIGFkZCBhIHJhbmRvbSB0YWcgdG8gdGhlIE1TQiBvZiB0aGUg
bG9jYWwgdmFyaWFibGUgYWRkcmVzcywKKy8vIG1ha2luZyBjb21wYXJpc29uIHJlc3VsdCB1bnBy
ZWRpY3RhYmxlLgorR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9B
VFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdBRERSRVNTXwogc3RhdGljIHZvaWQgU3RhY2tMb3dlclRo
YW5BZGRyZXNzKGNvbnN0IHZvaWQqIHB0ciwgYm9vbCogcmVzdWx0KSB7Ci0gIGludCBkdW1teTsK
LSAgKnJlc3VsdCA9ICgmZHVtbXkgPCBwdHIpOworICBpbnQgZHVtbXkgPSAwOworICAqcmVzdWx0
ID0gc3RkOjpsZXNzPGNvbnN0IHZvaWQqPigpKCZkdW1teSwgcHRyKTsKIH0KIAogLy8gTWFrZSBz
dXJlIEFkZHJlc3NTYW5pdGl6ZXIgZG9lcyBub3QgdGFtcGVyIHdpdGggdGhlIHN0YWNrIGhlcmUu
CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVURV9O
T19TQU5JVElaRV9IV0FERFJFU1NfCiBzdGF0aWMgYm9vbCBTdGFja0dyb3dzRG93bigpIHsKLSAg
aW50IGR1bW15OworICBpbnQgZHVtbXkgPSAwOwogICBib29sIHJlc3VsdDsKICAgU3RhY2tMb3dl
clRoYW5BZGRyZXNzKCZkdW1teSwgJnJlc3VsdCk7CiAgIHJldHVybiByZXN1bHQ7CkBAIC0xMjUx
LDcgKzEzMzEsNyBAQCBzdGF0aWMgcGlkX3QgRXhlY0RlYXRoVGVzdFNwYXduQ2hpbGQoY2hhciog
Y29uc3QqIGFyZ3YsIGludCBjbG9zZV9mZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZkX2ZsYWdzIHwgRkRfQ0xPRVhFQykpOwogICBzdHJ1Y3QgaW5oZXJpdGFu
Y2UgaW5oZXJpdCA9IHswfTsKICAgLy8gc3Bhd24gaXMgYSBzeXN0ZW0gY2FsbC4KLSAgY2hpbGRf
cGlkID0gc3Bhd24oYXJncy5hcmd2WzBdLCAwLCBOVUxMLCAmaW5oZXJpdCwgYXJncy5hcmd2LCBH
ZXRFbnZpcm9uKCkpOworICBjaGlsZF9waWQgPSBzcGF3bihhcmdzLmFyZ3ZbMF0sIDAsIG51bGxw
dHIsICZpbmhlcml0LCBhcmdzLmFyZ3YsIGVudmlyb24pOwogICAvLyBSZXN0b3JlcyB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeS4KICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNoZGly
KGN3ZF9mZCkgIT0gLTEpOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKGNsb3Nl
KGN3ZF9mZCkpOwpAQCAtMTI3NSw5ICsxMzU1LDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRl
c3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKIAogICBpZiAo
IXVzZV9mb3JrKSB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgc3RhY2tfZ3Jvd3NfZG93biA9IFN0
YWNrR3Jvd3NEb3duKCk7Ci0gICAgY29uc3Qgc2l6ZV90IHN0YWNrX3NpemUgPSBnZXRwYWdlc2l6
ZSgpOworICAgIGNvbnN0IGF1dG8gc3RhY2tfc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oZ2V0
cGFnZXNpemUoKSAqIDIpOwogICAgIC8vIE1NQVBfQU5PTllNT1VTIGlzIG5vdCBkZWZpbmVkIG9u
IE1hYywgc28gd2UgdXNlIE1BUF9BTk9OIGluc3RlYWQuCi0gICAgdm9pZCogY29uc3Qgc3RhY2sg
PSBtbWFwKE5VTEwsIHN0YWNrX3NpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisgICAgdm9p
ZCogY29uc3Qgc3RhY2sgPSBtbWFwKG51bGxwdHIsIHN0YWNrX3NpemUsIFBST1RfUkVBRCB8IFBS
T1RfV1JJVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9BTk9OIHwgTUFQX1BS
SVZBVEUsIC0xLCAwKTsKICAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGFjayAhPSBNQVBf
RkFJTEVEKTsKIApAQCAtMTI5MSw4ICsxMzcxLDkgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRl
c3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKICAgICB2b2lk
KiBjb25zdCBzdGFja190b3AgPQogICAgICAgICBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2spICsK
ICAgICAgICAgICAgIChzdGFja19ncm93c19kb3duID8gc3RhY2tfc2l6ZSAtIGtNYXhTdGFja0Fs
aWdubWVudCA6IDApOwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YWNrX3NpemUgPiBr
TWF4U3RhY2tBbGlnbm1lbnQgJiYKLSAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4o
c3RhY2tfdG9wKSAlIGtNYXhTdGFja0FsaWdubWVudCA9PSAwKTsKKyAgICBHVEVTVF9ERUFUSF9U
RVNUX0NIRUNLXygKKyAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGFja19zaXplKSA+IGtN
YXhTdGFja0FsaWdubWVudCAmJgorICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
c3RhY2tfdG9wKSAlIGtNYXhTdGFja0FsaWdubWVudCA9PSAwKTsKIAogICAgIGNoaWxkX3BpZCA9
IGNsb25lKCZFeGVjRGVhdGhUZXN0Q2hpbGRNYWluLCBzdGFja190b3AsIFNJR0NITEQsICZhcmdz
KTsKIApAQCAtMTMwOSw3ICsxMzkwLDcgQEAgc3RhdGljIHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3
bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2LCBpbnQgY2xvc2VfZmQpIHsKICMgIGVuZGlmICAvLyBH
VEVTVF9PU19RTlgKICMgIGlmIEdURVNUX09TX0xJTlVYCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hF
Q0tfU1lTQ0FMTF8oCi0gICAgICBzaWdhY3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0
aW9uLCBOVUxMKSk7CisgICAgICBzaWdhY3Rpb24oU0lHUFJPRiwgJnNhdmVkX3NpZ3Byb2ZfYWN0
aW9uLCBudWxscHRyKSk7CiAjICBlbmRpZiAgLy8gR1RFU1RfT1NfTElOVVgKIAogICBHVEVTVF9E
RUFUSF9URVNUX0NIRUNLXyhjaGlsZF9waWQgIT0gLTEpOwpAQCAtMTMyNyw3ICsxNDA4LDcgQEAg
RGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICBjb25z
dCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCk7CiAgIGNv
bnN0IGludCBkZWF0aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0KCktPmRlYXRoX3Rlc3RfY291
bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51bGxwdHIpIHsK
ICAgICBzZXRfd3JpdGVfZmQoZmxhZy0+d3JpdGVfZmQoKSk7CiAgICAgcmV0dXJuIEVYRUNVVEVf
VEVTVDsKICAgfQpAQCAtMTMzOCw5ICsxNDE5LDkgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVj
RGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewogICAvLyBpdCBiZSBjbG9zZWQgd2hlbiB0aGUgY2hp
bGQgcHJvY2VzcyBkb2VzIGFuIGV4ZWM6CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZjbnRs
KHBpcGVfZmRbMV0sIEZfU0VURkQsIDApICE9IC0xKTsKIAotICBjb25zdCBzdGQ6OnN0cmluZyBm
aWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklY
XyArIGtGaWx0ZXJGbGFnICsgIj0iCi0gICAgICArIGluZm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAi
LiIgKyBpbmZvLT5uYW1lKCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbHRlcl9mbGFnID0gc3Rk
OjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtGaWx0ZXJGbGFnICsgIj0iICsgaW5mby0+dGVzdF9zdWl0ZV9uYW1l
KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGluZm8tPm5hbWUo
KTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgaW50ZXJuYWxfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmlu
ZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcg
KyAiPSIKICAgICAgICsgZmlsZV8gKyAifCIgKyBTdHJlYW1hYmxlVG9TdHJpbmcobGluZV8pICsg
InwiCkBAIC0xMzczLDcgKzE0NTQsOCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEV4ZWNEZWF0aFRl
c3Q6OkFzc3VtZVJvbGUoKSB7CiAvLyBieSB0aGUgInRlc3QiIGFyZ3VtZW50IHRvIGl0cyBhZGRy
ZXNzLiAgSWYgdGhlIHRlc3Qgc2hvdWxkIGJlCiAvLyBza2lwcGVkLCBzZXRzIHRoYXQgcG9pbnRl
ciB0byBOVUxMLiAgUmV0dXJucyB0cnVlLCB1bmxlc3MgdGhlCiAvLyBmbGFnIGlzIHNldCB0byBh
biBpbnZhbGlkIHZhbHVlLgotYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNv
bnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAorYm9vbCBEZWZhdWx0RGVhdGhU
ZXN0RmFjdG9yeTo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxl
LCBpbnQgbGluZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWF0aFRl
c3QqKiB0ZXN0KSB7CiAgIFVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IEdldFVuaXRUZXN0SW1w
bCgpOwpAQCAtMTM4Miw3ICsxNDY0LDcgQEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6
Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAogICBjb25zdCBp
bnQgZGVhdGhfdGVzdF9pbmRleCA9IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZvKCkKICAgICAgIC0+
aW5jcmVtZW50X2RlYXRoX3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7Cisg
IGlmIChmbGFnICE9IG51bGxwdHIpIHsKICAgICBpZiAoZGVhdGhfdGVzdF9pbmRleCA+IGZsYWct
PmluZGV4KCkpIHsKICAgICAgIERlYXRoVGVzdDo6c2V0X2xhc3RfZGVhdGhfdGVzdF9tZXNzYWdl
KAogICAgICAgICAgICJEZWF0aCB0ZXN0IGNvdW50ICgiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGRl
YXRoX3Rlc3RfaW5kZXgpCkBAIC0xMzkzLDcgKzE0NzUsNyBAQCBib29sIERlZmF1bHREZWF0aFRl
c3RGYWN0b3J5OjpDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgs
CiAKICAgICBpZiAoIShmbGFnLT5maWxlKCkgPT0gZmlsZSAmJiBmbGFnLT5saW5lKCkgPT0gbGlu
ZSAmJgogICAgICAgICAgIGZsYWctPmluZGV4KCkgPT0gZGVhdGhfdGVzdF9pbmRleCkpIHsKLSAg
ICAgICp0ZXN0ID0gTlVMTDsKKyAgICAgICp0ZXN0ID0gbnVsbHB0cjsKICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgfQpAQCAtMTQwMiwyMiArMTQ4NCwyMiBAQCBib29sIERlZmF1bHREZWF0
aFRlc3RGYWN0b3J5OjpDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVn
ZXgsCiAKICAgaWYgKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gInRocmVhZHNhZmUi
IHx8CiAgICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAg
ICp0ZXN0ID0gbmV3IFdpbmRvd3NEZWF0aFRlc3Qoc3RhdGVtZW50LCByZWdleCwgZmlsZSwgbGlu
ZSk7CisgICAgKnRlc3QgPSBuZXcgV2luZG93c0RlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92
ZShtYXRjaGVyKSwgZmlsZSwgbGluZSk7CiAgIH0KIAogIyBlbGlmIEdURVNUX09TX0ZVQ0hTSUEK
IAogICBpZiAoR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIgfHwK
ICAgICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7Ci0gICAgKnRl
c3QgPSBuZXcgRnVjaHNpYURlYXRoVGVzdChzdGF0ZW1lbnQsIHJlZ2V4LCBmaWxlLCBsaW5lKTsK
KyAgICAqdGVzdCA9IG5ldyBGdWNoc2lhRGVhdGhUZXN0KHN0YXRlbWVudCwgc3RkOjptb3ZlKG1h
dGNoZXIpLCBmaWxlLCBsaW5lKTsKICAgfQogCiAjIGVsc2UKIAogICBpZiAoR1RFU1RfRkxBRyhk
ZWF0aF90ZXN0X3N0eWxlKSA9PSAidGhyZWFkc2FmZSIpIHsKLSAgICAqdGVzdCA9IG5ldyBFeGVj
RGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgsIGZpbGUsIGxpbmUpOworICAgICp0ZXN0ID0gbmV3
IEV4ZWNEZWF0aFRlc3Qoc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZpbGUsIGxpbmUp
OwogICB9IGVsc2UgaWYgKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0gImZhc3QiKSB7
Ci0gICAgKnRlc3QgPSBuZXcgTm9FeGVjRGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgpOworICAg
ICp0ZXN0ID0gbmV3IE5vRXhlY0RlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVy
KSk7CiAgIH0KIAogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwpAQCAtMTQ0Nyw4ICsxNTI5
LDYgQEAgc3RhdGljIGludCBHZXRTdGF0dXNGaWxlRGVzY3JpcHRvcih1bnNpZ25lZCBpbnQgcGFy
ZW50X3Byb2Nlc3NfaWQsCiAgICAgICAgICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHBh
cmVudF9wcm9jZXNzX2lkKSk7CiAgIH0KIAotICAvLyBGSVhNRTogUmVwbGFjZSB0aGUgZm9sbG93
aW5nIGNoZWNrIHdpdGggYQotICAvLyBjb21waWxlLXRpbWUgYXNzZXJ0aW9uIHdoZW4gYXZhaWxh
YmxlLgogICBHVEVTVF9DSEVDS18oc2l6ZW9mKEhBTkRMRSkgPD0gc2l6ZW9mKHNpemVfdCkpOwog
CiAgIGNvbnN0IEhBTkRMRSB3cml0ZV9oYW5kbGUgPQpAQCAtMTUwNCw3ICsxNTg0LDcgQEAgc3Rh
dGljIGludCBHZXRTdGF0dXNGaWxlRGVzY3JpcHRvcih1bnNpZ25lZCBpbnQgcGFyZW50X3Byb2Nl
c3NfaWQsCiAvLyBpbml0aWFsaXplZCBmcm9tIHRoZSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9k
ZWF0aF90ZXN0KSBmbGFnIGlmCiAvLyB0aGUgZmxhZyBpcyBzcGVjaWZpZWQ7IG90aGVyd2lzZSBy
ZXR1cm5zIE5VTEwuCiBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIFBhcnNlSW50ZXJuYWxSdW5E
ZWF0aFRlc3RGbGFnKCkgewotICBpZiAoR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVz
dCkgPT0gIiIpIHJldHVybiBOVUxMOworICBpZiAoR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVh
dGhfdGVzdCkgPT0gIiIpIHJldHVybiBudWxscHRyOwogCiAgIC8vIEdURVNUX0hBU19ERUFUSF9U
RVNUIGltcGxpZXMgdGhhdCB3ZSBoYXZlIDo6c3RkOjpzdHJpbmcsIHNvIHdlCiAgIC8vIGNhbiB1
c2UgaXQgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1maWxlcGF0aC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1maWxlcGF0
aC5jYwppbmRleCBhN2U2NWMwODJhNzVmYzZmYjAzOGEwMjNkNWIxZDNlMDllNDc5ZjExLi5hZjI5
NzY4NDAzMWNkMjU3YjMyMWZhOTg0YmI1NzBhZjRjOWEyM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGguY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWZpbGVwYXRoLmNjCkBAIC0zOCw5ICszOCw2IEBACiAjZWxp
ZiBHVEVTVF9PU19XSU5ET1dTCiAjIGluY2x1ZGUgPGRpcmVjdC5oPgogIyBpbmNsdWRlIDxpby5o
PgotI2VsaWYgR1RFU1RfT1NfU1lNQklBTgotLy8gU3ltYmlhbiBPcGVuQyBoYXMgUEFUSF9NQVgg
aW4gc3lzL3N5c2xpbWl0cy5oCi0jIGluY2x1ZGUgPHN5cy9zeXNsaW1pdHMuaD4KICNlbHNlCiAj
IGluY2x1ZGUgPGxpbWl0cy5oPgogIyBpbmNsdWRlIDxjbGltaXRzPiAgLy8gU29tZSBMaW51eCBk
aXN0cmlidXRpb25zIGRlZmluZSBQQVRIX01BWCBoZXJlLgpAQCAtOTUsMTMgKzkyLDE0IEBAIHN0
YXRpYyBib29sIElzUGF0aFNlcGFyYXRvcihjaGFyIGMpIHsKIAogLy8gUmV0dXJucyB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeSwgb3IgIiIgaWYgdW5zdWNjZXNzZnVsLgogRmlsZVBhdGgg
RmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUg
fHwgR1RFU1RfT1NfV0lORE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCi0gIC8vIFdp
bmRvd3MgQ0UgZG9lc24ndCBoYXZlIGEgY3VycmVudCBkaXJlY3RvcnksIHNvIHdlIGp1c3QgcmV0
dXJuCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfV0lORE9XU19QSE9O
RSB8fCBcCisgICAgR1RFU1RfT1NfV0lORE9XU19SVCB8fCBHVEVTVF9PU19FU1A4MjY2IHx8IEdU
RVNUX09TX0VTUDMyCisgIC8vIFRoZXNlIHBsYXRmb3JtcyBkbyBub3QgaGF2ZSBhIGN1cnJlbnQg
ZGlyZWN0b3J5LCBzbyB3ZSBqdXN0IHJldHVybgogICAvLyBzb21ldGhpbmcgcmVhc29uYWJsZS4K
ICAgcmV0dXJuIEZpbGVQYXRoKGtDdXJyZW50RGlyZWN0b3J5U3RyaW5nKTsKICNlbGlmIEdURVNU
X09TX1dJTkRPV1MKICAgY2hhciBjd2RbR1RFU1RfUEFUSF9NQVhfICsgMV0gPSB7ICdcMCcgfTsK
LSAgcmV0dXJuIEZpbGVQYXRoKF9nZXRjd2QoY3dkLCBzaXplb2YoY3dkKSkgPT0gTlVMTCA/ICIi
IDogY3dkKTsKKyAgcmV0dXJuIEZpbGVQYXRoKF9nZXRjd2QoY3dkLCBzaXplb2YoY3dkKSkgPT0g
bnVsbHB0ciA/ICIiIDogY3dkKTsKICNlbHNlCiAgIGNoYXIgY3dkW0dURVNUX1BBVEhfTUFYXyAr
IDFdID0geyAnXDAnIH07CiAgIGNoYXIqIHJlc3VsdCA9IGdldGN3ZChjd2QsIHNpemVvZihjd2Qp
KTsKQEAgLTEwOSw5ICsxMDcsOSBAQCBGaWxlUGF0aCBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigp
IHsKICAgLy8gZ2V0Y3dkIHdpbGwgbGlrZWx5IGZhaWwgaW4gTmFDbCBkdWUgdG8gdGhlIHNhbmRi
b3gsIHNvIHJldHVybiBzb21ldGhpbmcKICAgLy8gcmVhc29uYWJsZS4gVGhlIHVzZXIgbWF5IGhh
dmUgcHJvdmlkZWQgYSBzaGltIGltcGxlbWVudGF0aW9uIGZvciBnZXRjd2QsCiAgIC8vIGhvd2V2
ZXIsIHNvIGZhbGxiYWNrIG9ubHkgd2hlbiBmYWlsdXJlIGlzIGRldGVjdGVkLgotICByZXR1cm4g
RmlsZVBhdGgocmVzdWx0ID09IE5VTEwgPyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3ZCk7
CisgIHJldHVybiBGaWxlUGF0aChyZXN1bHQgPT0gbnVsbHB0ciA/IGtDdXJyZW50RGlyZWN0b3J5
U3RyaW5nIDogY3dkKTsKICMgZW5kaWYgIC8vIEdURVNUX09TX05BQ0wKLSAgcmV0dXJuIEZpbGVQ
YXRoKHJlc3VsdCA9PSBOVUxMID8gIiIgOiBjd2QpOworICByZXR1cm4gRmlsZVBhdGgocmVzdWx0
ID09IG51bGxwdHIgPyAiIiA6IGN3ZCk7CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9C
SUxFCiB9CiAKQEAgLTEzNiw4ICsxMzQsOCBAQCBjb25zdCBjaGFyKiBGaWxlUGF0aDo6RmluZExh
c3RQYXRoU2VwYXJhdG9yKCkgY29uc3QgewogI2lmIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCiAg
IGNvbnN0IGNoYXIqIGNvbnN0IGxhc3RfYWx0X3NlcCA9IHN0cnJjaHIoY19zdHIoKSwga0FsdGVy
bmF0ZVBhdGhTZXBhcmF0b3IpOwogICAvLyBDb21wYXJpbmcgdHdvIHBvaW50ZXJzIG9mIHdoaWNo
IG9ubHkgb25lIGlzIE5VTEwgaXMgdW5kZWZpbmVkLgotICBpZiAobGFzdF9hbHRfc2VwICE9IE5V
TEwgJiYKLSAgICAgIChsYXN0X3NlcCA9PSBOVUxMIHx8IGxhc3RfYWx0X3NlcCA+IGxhc3Rfc2Vw
KSkgeworICBpZiAobGFzdF9hbHRfc2VwICE9IG51bGxwdHIgJiYKKyAgICAgIChsYXN0X3NlcCA9
PSBudWxscHRyIHx8IGxhc3RfYWx0X3NlcCA+IGxhc3Rfc2VwKSkgewogICAgIHJldHVybiBsYXN0
X2FsdF9zZXA7CiAgIH0KICNlbmRpZgpAQCAtMTY1LDcgKzE2Myw3IEBAIEZpbGVQYXRoIEZpbGVQ
YXRoOjpSZW1vdmVGaWxlTmFtZSgpIGNvbnN0IHsKICAgY29uc3QgY2hhciogY29uc3QgbGFzdF9z
ZXAgPSBGaW5kTGFzdFBhdGhTZXBhcmF0b3IoKTsKICAgc3RkOjpzdHJpbmcgZGlyOwogICBpZiAo
bGFzdF9zZXApIHsKLSAgICBkaXIgPSBzdGQ6OnN0cmluZyhjX3N0cigpLCBsYXN0X3NlcCArIDEg
LSBjX3N0cigpKTsKKyAgICBkaXIgPSBzdGQ6OnN0cmluZyhjX3N0cigpLCBzdGF0aWNfY2FzdDxz
aXplX3Q+KGxhc3Rfc2VwICsgMSAtIGNfc3RyKCkpKTsKICAgfSBlbHNlIHsKICAgICBkaXIgPSBr
Q3VycmVudERpcmVjdG9yeVN0cmluZzsKICAgfQpAQCAtMjUwLDkgKzI0OCw2IEBAIGJvb2wgRmls
ZVBhdGg6OkRpcmVjdG9yeUV4aXN0cygpIGNvbnN0IHsKIC8vIHJvb3QgZGlyZWN0b3J5IHBlciBk
aXNrIGRyaXZlLikKIGJvb2wgRmlsZVBhdGg6OklzUm9vdERpcmVjdG9yeSgpIGNvbnN0IHsKICNp
ZiBHVEVTVF9PU19XSU5ET1dTCi0gIC8vIEZJWE1FOiBvbiBXaW5kb3dzIGEgbmV0d29yayBzaGFy
ZSBsaWtlCi0gIC8vIFxcc2VydmVyXHNoYXJlIGNhbiBiZSBhIHJvb3QgZGlyZWN0b3J5LCBhbHRo
b3VnaCBpdCBjYW5ub3QgYmUgdGhlCi0gIC8vIGN1cnJlbnQgZGlyZWN0b3J5LiAgSGFuZGxlIHRo
aXMgcHJvcGVybHkuCiAgIHJldHVybiBwYXRobmFtZV8ubGVuZ3RoKCkgPT0gMyAmJiBJc0Fic29s
dXRlUGF0aCgpOwogI2Vsc2UKICAgcmV0dXJuIHBhdGhuYW1lXy5sZW5ndGgoKSA9PSAxICYmIElz
UGF0aFNlcGFyYXRvcihwYXRobmFtZV8uY19zdHIoKVswXSk7CkBAIC0zMjQsMTAgKzMxOSwxMyBA
QCBib29sIEZpbGVQYXRoOjpDcmVhdGVGb2xkZXIoKSBjb25zdCB7CiAjaWYgR1RFU1RfT1NfV0lO
RE9XU19NT0JJTEUKICAgRmlsZVBhdGggcmVtb3ZlZF9zZXAodGhpcy0+UmVtb3ZlVHJhaWxpbmdQ
YXRoU2VwYXJhdG9yKCkpOwogICBMUENXU1RSIHVuaWNvZGUgPSBTdHJpbmc6OkFuc2lUb1V0ZjE2
KHJlbW92ZWRfc2VwLmNfc3RyKCkpOwotICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVu
aWNvZGUsIE5VTEwpID8gMCA6IC0xOworICBpbnQgcmVzdWx0ID0gQ3JlYXRlRGlyZWN0b3J5KHVu
aWNvZGUsIG51bGxwdHIpID8gMCA6IC0xOwogICBkZWxldGUgW10gdW5pY29kZTsKICNlbGlmIEdU
RVNUX09TX1dJTkRPV1MKICAgaW50IHJlc3VsdCA9IF9ta2RpcihwYXRobmFtZV8uY19zdHIoKSk7
CisjZWxpZiBHVEVTVF9PU19FU1A4MjY2CisgIC8vIGRvIG5vdGhpbmcKKyAgaW50IHJlc3VsdCA9
IDA7CiAjZWxzZQogICBpbnQgcmVzdWx0ID0gbWtkaXIocGF0aG5hbWVfLmNfc3RyKCksIDA3Nzcp
OwogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQpAQCAtMzUwLDM1ICszNDgsMjAg
QEAgRmlsZVBhdGggRmlsZVBhdGg6OlJlbW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpIGNvbnN0
IHsKIC8vIFJlbW92ZXMgYW55IHJlZHVuZGFudCBzZXBhcmF0b3JzIHRoYXQgbWlnaHQgYmUgaW4g
dGhlIHBhdGhuYW1lLgogLy8gRm9yIGV4YW1wbGUsICJiYXIvLy9mb28iIGJlY29tZXMgImJhci9m
b28iLiBEb2VzIG5vdCBlbGltaW5hdGUgb3RoZXIKIC8vIHJlZHVuZGFuY2llcyB0aGF0IG1pZ2h0
IGJlIGluIGEgcGF0aG5hbWUgaW52b2x2aW5nICIuIiBvciAiLi4iLgotLy8gRklYTUU6IGhhbmRs
ZSBXaW5kb3dzIG5ldHdvcmsgc2hhcmVzIChlLmcuIFxcc2VydmVyXHNoYXJlKS4KIHZvaWQgRmls
ZVBhdGg6Ok5vcm1hbGl6ZSgpIHsKLSAgaWYgKHBhdGhuYW1lXy5jX3N0cigpID09IE5VTEwpIHsK
LSAgICBwYXRobmFtZV8gPSAiIjsKLSAgICByZXR1cm47Ci0gIH0KLSAgY29uc3QgY2hhciogc3Jj
ID0gcGF0aG5hbWVfLmNfc3RyKCk7Ci0gIGNoYXIqIGNvbnN0IGRlc3QgPSBuZXcgY2hhcltwYXRo
bmFtZV8ubGVuZ3RoKCkgKyAxXTsKLSAgY2hhciogZGVzdF9wdHIgPSBkZXN0OwotICBtZW1zZXQo
ZGVzdF9wdHIsIDAsIHBhdGhuYW1lXy5sZW5ndGgoKSArIDEpOwotCi0gIHdoaWxlICgqc3JjICE9
ICdcMCcpIHsKLSAgICAqZGVzdF9wdHIgPSAqc3JjOwotICAgIGlmICghSXNQYXRoU2VwYXJhdG9y
KCpzcmMpKSB7Ci0gICAgICBzcmMrKzsKKyAgYXV0byBvdXQgPSBwYXRobmFtZV8uYmVnaW4oKTsK
KworICBmb3IgKGNvbnN0IGNoYXIgY2hhcmFjdGVyIDogcGF0aG5hbWVfKSB7CisgICAgaWYgKCFJ
c1BhdGhTZXBhcmF0b3IoY2hhcmFjdGVyKSkgeworICAgICAgKihvdXQrKykgPSBjaGFyYWN0ZXI7
CisgICAgfSBlbHNlIGlmIChvdXQgPT0gcGF0aG5hbWVfLmJlZ2luKCkgfHwgKnN0ZDo6cHJldihv
dXQpICE9IGtQYXRoU2VwYXJhdG9yKSB7CisgICAgICAqKG91dCsrKSA9IGtQYXRoU2VwYXJhdG9y
OwogICAgIH0gZWxzZSB7Ci0jaWYgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8KLSAgICAgIGlmICgq
ZGVzdF9wdHIgPT0ga0FsdGVybmF0ZVBhdGhTZXBhcmF0b3IpIHsKLSAgICAgICAgKmRlc3RfcHRy
ID0ga1BhdGhTZXBhcmF0b3I7Ci0gICAgICB9Ci0jZW5kaWYKLSAgICAgIHdoaWxlIChJc1BhdGhT
ZXBhcmF0b3IoKnNyYykpCi0gICAgICAgIHNyYysrOworICAgICAgY29udGludWU7CiAgICAgfQot
ICAgIGRlc3RfcHRyKys7CiAgIH0KLSAgKmRlc3RfcHRyID0gJ1wwJzsKLSAgcGF0aG5hbWVfID0g
ZGVzdDsKLSAgZGVsZXRlW10gZGVzdDsKKworICBwYXRobmFtZV8uZXJhc2Uob3V0LCBwYXRobmFt
ZV8uZW5kKCkpOwogfQogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaAppbmRleCA0NzkwMDQxNDli
NDhjMjg1NjRlMjA1ZTAyMTBjNmM0MzEwNDE4YjViLi5jZmY1MzRlZTllZGUzNzI0YjkyMzU3OTc1
YTg4YWJjYTg2Mjk3ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtaW50ZXJuYWwtaW5sLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0
ZXN0LWludGVybmFsLWlubC5oCkBAIC0zMSw4ICszMSw4IEBACiAvLyBUaGlzIGZpbGUgY29udGFp
bnMgcHVyZWx5IEdvb2dsZSBUZXN0J3MgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uICBQbGVhc2UK
IC8vIERPIE5PVCAjSU5DTFVERSBJVCBJTiBBIFVTRVIgUFJPR1JBTS4KIAotI2lmbmRlZiBHVEVT
VF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCi0jZGVmaW5lIEdURVNUX1NSQ19HVEVTVF9JTlRF
Uk5BTF9JTkxfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hf
CisjZGVmaW5lIEdPT0dMRVRFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXwogCiAjaWZuZGVm
IF9XSU4zMl9XQ0UKICMgaW5jbHVkZSA8ZXJybm8uaD4KQEAgLTQyLDYgKzQyLDggQEAKICNpbmNs
dWRlIDxzdHJpbmcuaD4gIC8vIEZvciBtZW1tb3ZlLgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgor
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHN0cmluZz4K
ICNpbmNsdWRlIDx2ZWN0b3I+CiAKQEAgLTgyLDkgKzg0LDExIEBAIGNvbnN0IGNoYXIga0Fsc29S
dW5EaXNhYmxlZFRlc3RzRmxhZ1tdID0gImFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIjsKIGNvbnN0
IGNoYXIga0JyZWFrT25GYWlsdXJlRmxhZ1tdID0gImJyZWFrX29uX2ZhaWx1cmUiOwogY29uc3Qg
Y2hhciBrQ2F0Y2hFeGNlcHRpb25zRmxhZ1tdID0gImNhdGNoX2V4Y2VwdGlvbnMiOwogY29uc3Qg
Y2hhciBrQ29sb3JGbGFnW10gPSAiY29sb3IiOworY29uc3QgY2hhciBrRmFpbEZhc3RbXSA9ICJm
YWlsX2Zhc3QiOwogY29uc3QgY2hhciBrRmlsdGVyRmxhZ1tdID0gImZpbHRlciI7CiBjb25zdCBj
aGFyIGtMaXN0VGVzdHNGbGFnW10gPSAibGlzdF90ZXN0cyI7CiBjb25zdCBjaGFyIGtPdXRwdXRG
bGFnW10gPSAib3V0cHV0IjsKK2NvbnN0IGNoYXIga0JyaWVmRmxhZ1tdID0gImJyaWVmIjsKIGNv
bnN0IGNoYXIga1ByaW50VGltZUZsYWdbXSA9ICJwcmludF90aW1lIjsKIGNvbnN0IGNoYXIga1By
aW50VVRGOEZsYWdbXSA9ICJwcmludF91dGY4IjsKIGNvbnN0IGNoYXIga1JhbmRvbVNlZWRGbGFn
W10gPSAicmFuZG9tX3NlZWQiOwpAQCAtOTgsMTQgKzEwMiwxNCBAQCBjb25zdCBjaGFyIGtGbGFn
ZmlsZUZsYWdbXSA9ICJmbGFnZmlsZSI7CiAvLyBBIHZhbGlkIHJhbmRvbSBzZWVkIG11c3QgYmUg
aW4gWzEsIGtNYXhSYW5kb21TZWVkXS4KIGNvbnN0IGludCBrTWF4UmFuZG9tU2VlZCA9IDk5OTk5
OwogCi0vLyBnX2hlbHBfZmxhZyBpcyB0cnVlIGlmZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1
aXZhbGVudCBmb3JtIGlzCi0vLyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy8vIGdf
aGVscF9mbGFnIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVx
dWl2YWxlbnQgZm9ybQorLy8gaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBHVEVT
VF9BUElfIGV4dGVybiBib29sIGdfaGVscF9mbGFnOwogCiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50
IHRpbWUgaW4gbWlsbGlzZWNvbmRzLgogR1RFU1RfQVBJXyBUaW1lSW5NaWxsaXMgR2V0VGltZUlu
TWlsbGlzKCk7CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgR29vZ2xlIFRlc3Qgc2hvdWxkIHVzZSBj
b2xvcnMgaW4gdGhlIG91dHB1dC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBHb29n
bGUgVGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0cHV0LgogR1RFU1RfQVBJXyBib29s
IFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0X2lzX3R0eSk7CiAKIC8vIEZvcm1hdHMgdGhlIGdp
dmVuIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIHNlY29uZHMuCkBAIC0xMjIsMTEgKzEyNiwxMSBA
QCBHVEVTVF9BUElfIHN0ZDo6c3RyaW5nIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAx
KFRpbWVJbk1pbGxpcyBtcyk7CiAvLyBPbiBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRo
ZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJldHVybnMKIC8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1
cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdpbmcgKnZhbHVlLgogR1RFU1RfQVBJXyBib29sIFBhcnNl
SW50MzJGbGFnKAotICAgIGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgSW50MzIq
IHZhbHVlKTsKKyAgICBjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIGludDMyX3Qq
IHZhbHVlKTsKIAogLy8gUmV0dXJucyBhIHJhbmRvbSBzZWVkIGluIHJhbmdlIFsxLCBrTWF4UmFu
ZG9tU2VlZF0gYmFzZWQgb24gdGhlCiAvLyBnaXZlbiAtLWd0ZXN0X3JhbmRvbV9zZWVkIGZsYWcg
dmFsdWUuCi1pbmxpbmUgaW50IEdldFJhbmRvbVNlZWRGcm9tRmxhZyhJbnQzMiByYW5kb21fc2Vl
ZF9mbGFnKSB7CitpbmxpbmUgaW50IEdldFJhbmRvbVNlZWRGcm9tRmxhZyhpbnQzMl90IHJhbmRv
bV9zZWVkX2ZsYWcpIHsKICAgY29uc3QgdW5zaWduZWQgaW50IHJhd19zZWVkID0gKHJhbmRvbV9z
ZWVkX2ZsYWcgPT0gMCkgPwogICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihHZXRUaW1l
SW5NaWxsaXMoKSkgOgogICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihyYW5kb21fc2Vl
ZF9mbGFnKTsKQEAgLTE2MiwxMCArMTY2LDEyIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKICAg
ICBjb2xvcl8gPSBHVEVTVF9GTEFHKGNvbG9yKTsKICAgICBkZWF0aF90ZXN0X3N0eWxlXyA9IEdU
RVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSk7CiAgICAgZGVhdGhfdGVzdF91c2VfZm9ya18gPSBH
VEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspOworICAgIGZhaWxfZmFzdF8gPSBHVEVTVF9G
TEFHKGZhaWxfZmFzdCk7CiAgICAgZmlsdGVyXyA9IEdURVNUX0ZMQUcoZmlsdGVyKTsKICAgICBp
bnRlcm5hbF9ydW5fZGVhdGhfdGVzdF8gPSBHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90
ZXN0KTsKICAgICBsaXN0X3Rlc3RzXyA9IEdURVNUX0ZMQUcobGlzdF90ZXN0cyk7CiAgICAgb3V0
cHV0XyA9IEdURVNUX0ZMQUcob3V0cHV0KTsKKyAgICBicmllZl8gPSBHVEVTVF9GTEFHKGJyaWVm
KTsKICAgICBwcmludF90aW1lXyA9IEdURVNUX0ZMQUcocHJpbnRfdGltZSk7CiAgICAgcHJpbnRf
dXRmOF8gPSBHVEVTVF9GTEFHKHByaW50X3V0ZjgpOwogICAgIHJhbmRvbV9zZWVkXyA9IEdURVNU
X0ZMQUcocmFuZG9tX3NlZWQpOwpAQCAtMTg1LDkgKzE5MSwxMSBAQCBjbGFzcyBHVGVzdEZsYWdT
YXZlciB7CiAgICAgR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSA9IGRlYXRoX3Rlc3Rfc3R5
bGVfOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSBkZWF0aF90ZXN0X3Vz
ZV9mb3JrXzsKICAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSBmaWx0ZXJfOworICAgIEdURVNUX0ZM
QUcoZmFpbF9mYXN0KSA9IGZhaWxfZmFzdF87CiAgICAgR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5f
ZGVhdGhfdGVzdCkgPSBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF87CiAgICAgR1RFU1RfRkxBRyhs
aXN0X3Rlc3RzKSA9IGxpc3RfdGVzdHNfOwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9IG91dHB1
dF87CisgICAgR1RFU1RfRkxBRyhicmllZikgPSBicmllZl87CiAgICAgR1RFU1RfRkxBRyhwcmlu
dF90aW1lKSA9IHByaW50X3RpbWVfOwogICAgIEdURVNUX0ZMQUcocHJpbnRfdXRmOCkgPSBwcmlu
dF91dGY4XzsKICAgICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IHJhbmRvbV9zZWVkXzsKQEAg
LTIwNiwxNiArMjE0LDE4IEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyIHsKICAgc3RkOjpzdHJpbmcg
Y29sb3JfOwogICBzdGQ6OnN0cmluZyBkZWF0aF90ZXN0X3N0eWxlXzsKICAgYm9vbCBkZWF0aF90
ZXN0X3VzZV9mb3JrXzsKKyAgYm9vbCBmYWlsX2Zhc3RfOwogICBzdGQ6OnN0cmluZyBmaWx0ZXJf
OwogICBzdGQ6OnN0cmluZyBpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF87CiAgIGJvb2wgbGlzdF90
ZXN0c187CiAgIHN0ZDo6c3RyaW5nIG91dHB1dF87CisgIGJvb2wgYnJpZWZfOwogICBib29sIHBy
aW50X3RpbWVfOwogICBib29sIHByaW50X3V0ZjhfOwotICBpbnRlcm5hbDo6SW50MzIgcmFuZG9t
X3NlZWRfOwotICBpbnRlcm5hbDo6SW50MzIgcmVwZWF0XzsKKyAgaW50MzJfdCByYW5kb21fc2Vl
ZF87CisgIGludDMyX3QgcmVwZWF0XzsKICAgYm9vbCBzaHVmZmxlXzsKLSAgaW50ZXJuYWw6Oklu
dDMyIHN0YWNrX3RyYWNlX2RlcHRoXzsKKyAgaW50MzJfdCBzdGFja190cmFjZV9kZXB0aF87CiAg
IHN0ZDo6c3RyaW5nIHN0cmVhbV9yZXN1bHRfdG9fOwogICBib29sIHRocm93X29uX2ZhaWx1cmVf
OwogfSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXzsKQEAgLTIyNiwxMSArMjM2LDExIEBAIGNsYXNz
IEdUZXN0RmxhZ1NhdmVyIHsKIC8vIElmIHRoZSBjb2RlX3BvaW50IGlzIG5vdCBhIHZhbGlkIFVu
aWNvZGUgY29kZSBwb2ludAogLy8gKGkuZS4gb3V0c2lkZSBvZiBVbmljb2RlIHJhbmdlIFUrMCB0
byBVKzEwRkZGRikgaXQgd2lsbCBiZSBjb252ZXJ0ZWQKIC8vIHRvICIoSW52YWxpZCBVbmljb2Rl
IDB4WFhYWFhYWFgpIi4KLUdURVNUX0FQSV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KFVJ
bnQzMiBjb2RlX3BvaW50KTsKK0dURVNUX0FQSV8gc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4
KHVpbnQzMl90IGNvZGVfcG9pbnQpOwogCiAvLyBDb252ZXJ0cyBhIHdpZGUgc3RyaW5nIHRvIGEg
bmFycm93IHN0cmluZyBpbiBVVEYtOCBlbmNvZGluZy4KIC8vIFRoZSB3aWRlIHN0cmluZyBpcyBh
c3N1bWVkIHRvIGhhdmUgdGhlIGZvbGxvd2luZyBlbmNvZGluZzoKLS8vICAgVVRGLTE2IGlmIHNp
emVvZih3Y2hhcl90KSA9PSAyIChvbiBXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpCisvLyAg
IFVURi0xNiBpZiBzaXplb2Yod2NoYXJfdCkgPT0gMiAob24gV2luZG93cywgQ3lnd2luKQogLy8g
ICBVVEYtMzIgaWYgc2l6ZW9mKHdjaGFyX3QpID09IDQgKG9uIExpbnV4KQogLy8gUGFyYW1ldGVy
IHN0ciBwb2ludHMgdG8gYSBudWxsLXRlcm1pbmF0ZWQgd2lkZSBzdHJpbmcuCiAvLyBQYXJhbWV0
ZXIgbnVtX2NoYXJzIG1heSBhZGRpdGlvbmFsbHkgbGltaXQgdGhlIG51bWJlcgpAQCAtMjU5LDE0
ICsyNjksMTQgQEAgR1RFU1RfQVBJXyBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFs
X3NoYXJkc19zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc2hh
cmRfaW5kZXhfc3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaW5fc3VicHJv
Y2Vzc19mb3JfZGVhdGhfdGVzdCk7CiAKLS8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFi
bGUgdmFyIGFzIGFuIEludDMyLiBJZiBpdCBpcyB1bnNldCwKLS8vIHJldHVybnMgZGVmYXVsdF92
YWwuIElmIGl0IGlzIG5vdCBhbiBJbnQzMiwgcHJpbnRzIGFuIGVycm9yIGFuZAorLy8gUGFyc2Vz
IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YXIgYXMgYSAzMi1iaXQgaW50ZWdlci4gSWYgaXQg
aXMgdW5zZXQsCisvLyByZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYSAzMi1iaXQg
aW50ZWdlciwgcHJpbnRzIGFuIGVycm9yIGFuZAogLy8gYW5kIGFib3J0cy4KLUdURVNUX0FQSV8g
SW50MzIgSW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hhciogZW52X3ZhciwgSW50MzIgZGVmYXVs
dF92YWwpOworR1RFU1RfQVBJXyBpbnQzMl90IEludDMyRnJvbUVudk9yRGllKGNvbnN0IGNoYXIq
IGVudl92YXIsIGludDMyX3QgZGVmYXVsdF92YWwpOwogCiAvLyBHaXZlbiB0aGUgdG90YWwgbnVt
YmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBhbmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRl
c3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVn
ZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0CisvLyByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBvbiB0aGlzIHNoYXJkLiBUaGUgdGVzdCBpZAorLy8gaXMg
c29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBub24tbmVnYXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0
byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4gQXNzdW1lcyB0aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0
b3RhbF9zaGFyZHMuCiBHVEVTVF9BUElfIGJvb2wgU2hvdWxkUnVuVGVzdE9uU2hhcmQoCiAgICAg
aW50IHRvdGFsX3NoYXJkcywgaW50IHNoYXJkX2luZGV4LCBpbnQgdGVzdF9pZCk7CkBAIC0yOTcs
NyArMzA3LDggQEAgdm9pZCBGb3JFYWNoKGNvbnN0IENvbnRhaW5lciYgYywgRnVuY3RvciBmdW5j
dG9yKSB7CiAvLyBpbiByYW5nZSBbMCwgdi5zaXplKCkpLgogdGVtcGxhdGUgPHR5cGVuYW1lIEU+
CiBpbmxpbmUgRSBHZXRFbGVtZW50T3IoY29uc3Qgc3RkOjp2ZWN0b3I8RT4mIHYsIGludCBpLCBF
IGRlZmF1bHRfdmFsdWUpIHsKLSAgcmV0dXJuIChpIDwgMCB8fCBpID49IHN0YXRpY19jYXN0PGlu
dD4odi5zaXplKCkpKSA/IGRlZmF1bHRfdmFsdWUgOiB2W2ldOworICByZXR1cm4gKGkgPCAwIHx8
IGkgPj0gc3RhdGljX2Nhc3Q8aW50Pih2LnNpemUoKSkpID8gZGVmYXVsdF92YWx1ZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdltzdGF0aWNf
Y2FzdDxzaXplX3Q+KGkpXTsKIH0KIAogLy8gUGVyZm9ybXMgYW4gaW4tcGxhY2Ugc2h1ZmZsZSBv
ZiBhIHJhbmdlIG9mIHRoZSB2ZWN0b3IncyBlbGVtZW50cy4KQEAgLTMxOSw4ICszMzAsMTEgQEAg
dm9pZCBTaHVmZmxlUmFuZ2UoaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tLCBpbnQgYmVnaW4sIGlu
dCBlbmQsCiAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3No
dWZmbGUKICAgZm9yIChpbnQgcmFuZ2Vfd2lkdGggPSBlbmQgLSBiZWdpbjsgcmFuZ2Vfd2lkdGgg
Pj0gMjsgcmFuZ2Vfd2lkdGgtLSkgewogICAgIGNvbnN0IGludCBsYXN0X2luX3JhbmdlID0gYmVn
aW4gKyByYW5nZV93aWR0aCAtIDE7Ci0gICAgY29uc3QgaW50IHNlbGVjdGVkID0gYmVnaW4gKyBy
YW5kb20tPkdlbmVyYXRlKHJhbmdlX3dpZHRoKTsKLSAgICBzdGQ6OnN3YXAoKCp2KVtzZWxlY3Rl
ZF0sICgqdilbbGFzdF9pbl9yYW5nZV0pOworICAgIGNvbnN0IGludCBzZWxlY3RlZCA9CisgICAg
ICAgIGJlZ2luICsKKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihyYW5kb20tPkdlbmVyYXRlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihyYW5nZV93aWR0aCkpKTsKKyAgICBzdGQ6OnN3YXAoKCp2KVtz
dGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVjdGVkKV0sCisgICAgICAgICAgICAgICgqdilbc3RhdGlj
X2Nhc3Q8c2l6ZV90PihsYXN0X2luX3JhbmdlKV0pOwogICB9CiB9CiAKQEAgLTM0Nyw3ICszNjEs
NyBAQCBjbGFzcyBUZXN0UHJvcGVydHlLZXlJcyB7CiAgIC8vIFRlc3RQcm9wZXJ0eUtleUlzIGhh
cyBOTyBkZWZhdWx0IGNvbnN0cnVjdG9yLgogICBleHBsaWNpdCBUZXN0UHJvcGVydHlLZXlJcyhj
b25zdCBzdGQ6OnN0cmluZyYga2V5KSA6IGtleV8oa2V5KSB7fQogCi0gIC8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIHRlc3QgbmFtZSBvZiB0ZXN0IHByb3BlcnR5IG1hdGNoZXMgb24ga2V5Xy4KKyAg
Ly8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdCBwcm9w
ZXJ0eSBtYXRjaGVzIG9uIGtleV8uCiAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBUZXN0UHJvcGVy
dHkmIHRlc3RfcHJvcGVydHkpIGNvbnN0IHsKICAgICByZXR1cm4gdGVzdF9wcm9wZXJ0eS5rZXko
KSA9PSBrZXlfOwogICB9CkBAIC0zODAsMTcgKzM5NCwxMCBAQCBjbGFzcyBHVEVTVF9BUElfIFVu
aXRUZXN0T3B0aW9ucyB7CiAKICAgLy8gRnVuY3Rpb25zIGZvciBwcm9jZXNzaW5nIHRoZSBndGVz
dF9maWx0ZXIgZmxhZy4KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB3aWxkY2FyZCBwYXR0
ZXJuIG1hdGNoZXMgdGhlIHN0cmluZy4gIFRoZQotICAvLyBmaXJzdCAnOicgb3IgJ1wwJyBjaGFy
YWN0ZXIgaW4gcGF0dGVybiBtYXJrcyB0aGUgZW5kIG9mIGl0LgotICAvLwotICAvLyBUaGlzIHJl
Y3Vyc2l2ZSBhbGdvcml0aG0gaXNuJ3QgdmVyeSBlZmZpY2llbnQsIGJ1dCBpcyBjbGVhciBhbmQK
LSAgLy8gd29ya3Mgd2VsbCBlbm91Z2ggZm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNoIGFy
ZSBzaG9ydC4KLSAgc3RhdGljIGJvb2wgUGF0dGVybk1hdGNoZXNTdHJpbmcoY29uc3QgY2hhciAq
cGF0dGVybiwgY29uc3QgY2hhciAqc3RyKTsKLQotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1
c2VyLXNwZWNpZmllZCBmaWx0ZXIgbWF0Y2hlcyB0aGUgdGVzdCBjYXNlCi0gIC8vIG5hbWUgYW5k
IHRoZSB0ZXN0IG5hbWUuCi0gIHN0YXRpYyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0
ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfbmFtZSk7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHRlc3QKKyAg
Ly8gc3VpdGUgbmFtZSBhbmQgdGhlIHRlc3QgbmFtZS4KKyAgc3RhdGljIGJvb2wgRmlsdGVyTWF0
Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSk7CiAKICNp
ZiBHVEVTVF9PU19XSU5ET1dTCiAgIC8vIEZ1bmN0aW9uIGZvciBzdXBwb3J0aW5nIHRoZSBndGVz
dF9jYXRjaF9leGNlcHRpb24gZmxhZy4KQEAgLTQ0Miw4ICs0NDksOCBAQCBjbGFzcyBPc1N0YWNr
VHJhY2VHZXR0ZXIgOiBwdWJsaWMgT3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlIHsKICBwdWJs
aWM6CiAgIE9zU3RhY2tUcmFjZUdldHRlcigpIHt9CiAKLSAgdmlydHVhbCBzdGQ6OnN0cmluZyBD
dXJyZW50U3RhY2tUcmFjZShpbnQgbWF4X2RlcHRoLCBpbnQgc2tpcF9jb3VudCk7Ci0gIHZpcnR1
YWwgdm9pZCBVcG9uTGVhdmluZ0dUZXN0KCk7CisgIHN0ZDo6c3RyaW5nIEN1cnJlbnRTdGFja1Ry
YWNlKGludCBtYXhfZGVwdGgsIGludCBza2lwX2NvdW50KSBvdmVycmlkZTsKKyAgdm9pZCBVcG9u
TGVhdmluZ0dUZXN0KCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgogI2lmIEdURVNUX0hBU19BQlNM
CkBAIC00NzQsNyArNDgxLDcgQEAgY2xhc3MgRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVw
b3J0ZXIKICAgZXhwbGljaXQgRGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoVW5p
dFRlc3RJbXBsKiB1bml0X3Rlc3QpOwogICAvLyBJbXBsZW1lbnRzIHRoZSBUZXN0UGFydFJlc3Vs
dFJlcG9ydGVySW50ZXJmYWNlLiBSZXBvcnRzIHRoZSB0ZXN0IHBhcnQKICAgLy8gcmVzdWx0IGlu
IHRoZSBjdXJyZW50IHRlc3QuCi0gIHZpcnR1YWwgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3VsdChj
b25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKKyAgdm9pZCBSZXBvcnRUZXN0UGFydFJlc3Vs
dChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVycmlkZTsKIAogIHByaXZhdGU6CiAg
IFVuaXRUZXN0SW1wbCogY29uc3QgdW5pdF90ZXN0XzsKQEAgLTQ5MCw3ICs0OTcsNyBAQCBjbGFz
cyBEZWZhdWx0UGVyVGhyZWFkVGVzdFBhcnRSZXN1bHRSZXBvcnRlcgogICBleHBsaWNpdCBEZWZh
dWx0UGVyVGhyZWFkVGVzdFBhcnRSZXN1bHRSZXBvcnRlcihVbml0VGVzdEltcGwqIHVuaXRfdGVz
dCk7CiAgIC8vIEltcGxlbWVudHMgdGhlIFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJJbnRlcmZhY2Uu
IFRoZSBpbXBsZW1lbnRhdGlvbiBqdXN0CiAgIC8vIGRlbGVnYXRlcyB0byB0aGUgY3VycmVudCBn
bG9iYWwgdGVzdCBwYXJ0IHJlc3VsdCByZXBvcnRlciBvZiAqdW5pdF90ZXN0Xy4KLSAgdmlydHVh
bCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQp
OworICB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1
bHQpIG92ZXJyaWRlOwogCiAgcHJpdmF0ZToKICAgVW5pdFRlc3RJbXBsKiBjb25zdCB1bml0X3Rl
c3RfOwpAQCAtNTI4LDIyICs1MzUsMjUgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwg
ewogICB2b2lkIFNldFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKAogICAg
ICAgVGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZSogcmVwb3J0ZXIpOwogCi0gIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3QgY2FzZXMuCi0gIGludCBzdWNjZXNzZnVs
X3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vz
c2Z1bCB0ZXN0IHN1aXRlcy4KKyAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNv
bnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNlcy4KLSAgaW50
IGZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9m
IGZhaWxlZCB0ZXN0IHN1aXRlcy4KKyAgaW50IGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgY29u
c3Q7CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzLgotICBpbnQgdG90
YWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwg
dGVzdCBzdWl0ZXMuCisgIGludCB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3Q7CiAKLSAg
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFz
dCBvbmUgdGVzdAorICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzIHRoYXQg
Y29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAogICAvLyB0aGF0IHNob3VsZCBydW4uCi0gIGludCB0
ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3Q7CisgIGludCB0ZXN0X3N1aXRlX3RvX3J1bl9j
b3VudCgpIGNvbnN0OwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3Rz
LgogICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKKyAgLy8gR2V0cyB0aGUg
bnVtYmVyIG9mIHNraXBwZWQgdGVzdHMuCisgIGludCBza2lwcGVkX3Rlc3RfY291bnQoKSBjb25z
dDsKKwogICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogICBpbnQgZmFpbGVk
X3Rlc3RfY291bnQoKSBjb25zdDsKIApAQCAtNTY5LDI3ICs1NzksMzMgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBVbml0VGVzdEltcGwgewogICAvLyBHZXRzIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxp
c2Vjb25kcy4KICAgVGltZUluTWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVs
YXBzZWRfdGltZV87IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFz
c2VkIChpLmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBzdWl0ZXMKKyAg
Ly8gcGFzc2VkKS4KICAgYm9vbCBQYXNzZWQoKSBjb25zdCB7IHJldHVybiAhRmFpbGVkKCk7IH0K
IAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUuIHNvbWUg
dGVzdCBjYXNlIGZhaWxlZAotICAvLyBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMg
ZmFpbGVkKS4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1bml0IHRlc3Qg
ZmFpbGVkIChpLmUuIHNvbWUgdGVzdCBzdWl0ZQorICAvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91
dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCiAgIGJvb2wgRmFpbGVkKCkgY29uc3QgewotICAg
IHJldHVybiBmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0X3Jlc3Vs
dCgpLT5GYWlsZWQoKTsKKyAgICByZXR1cm4gZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKSA+IDAg
fHwgYWRfaG9jX3Rlc3RfcmVzdWx0KCktPkZhaWxlZCgpOwogICB9CiAKLSAgLy8gR2V0cyB0aGUg
aS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9t
IDAgdG8KLSAgLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0
aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi0gIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShp
bnQgaSkgY29uc3QgewotICAgIGNvbnN0IGludCBpbmRleCA9IEdldEVsZW1lbnRPcih0ZXN0X2Nh
c2VfaW5kaWNlc18sIGksIC0xKTsKLSAgICByZXR1cm4gaW5kZXggPCAwID8gTlVMTCA6IHRlc3Rf
Y2FzZXNfW2ldOworICAvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0
ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVf
Y291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAg
Y29uc3QgVGVzdFN1aXRlKiBHZXRUZXN0U3VpdGUoaW50IGkpIGNvbnN0IHsKKyAgICBjb25zdCBp
bnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9zdWl0ZV9pbmRpY2VzXywgaSwgLTEpOworICAg
IHJldHVybiBpbmRleCA8IDAgPyBudWxscHRyIDogdGVzdF9zdWl0ZXNfW3N0YXRpY19jYXN0PHNp
emVfdD4oaSldOwogICB9CiAKLSAgLy8gR2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxs
IHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KLSAgLy8gdG90YWxfdGVzdF9j
YXNlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwu
Ci0gIFRlc3RDYXNlKiBHZXRNdXRhYmxlVGVzdENhc2UoaW50IGkpIHsKLSAgICBjb25zdCBpbnQg
aW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9jYXNlX2luZGljZXNfLCBpLCAtMSk7Ci0gICAgcmV0
dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2Nhc2VzX1tpbmRleF07CisgIC8vICBMZWdhY3kg
QVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgY29uc3QgVGVzdENhc2UqIEdldFRlc3RDYXNlKGlu
dCBpKSBjb25zdCB7IHJldHVybiBHZXRUZXN0U3VpdGUoaSk7IH0KKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIC8vIEdldHMgdGhlIGktdGggdGVzdCBz
dWl0ZSBhbW9uZyBhbGwgdGhlIHRlc3Qgc3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKyAg
Ly8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5n
ZSwgcmV0dXJucyBOVUxMLgorICBUZXN0U3VpdGUqIEdldE11dGFibGVTdWl0ZUNhc2UoaW50IGkp
IHsKKyAgICBjb25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9zdWl0ZV9pbmRpY2Vz
XywgaSwgLTEpOworICAgIHJldHVybiBpbmRleCA8IDAgPyBudWxscHRyIDogdGVzdF9zdWl0ZXNf
W3N0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpXTsKICAgfQogCiAgIC8vIFByb3ZpZGVzIGFjY2Vz
cyB0byB0aGUgZXZlbnQgbGlzdGVuZXIgbGlzdC4KQEAgLTYyNiwzMSArNjQyLDQwIEBAIGNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgLy8gdHJhY2UgYnV0IEJhcigpIGFuZCBDdXJy
ZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wKCkgd29uJ3QuCiAgIHN0ZDo6c3RyaW5nIEN1cnJlbnRP
c1N0YWNrVHJhY2VFeGNlcHRUb3AoaW50IHNraXBfY291bnQpIEdURVNUX05PX0lOTElORV87CiAK
LSAgLy8gRmluZHMgYW5kIHJldHVybnMgYSBUZXN0Q2FzZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAg
SWYgb25lIGRvZXNuJ3QKKyAgLy8gRmluZHMgYW5kIHJldHVybnMgYSBUZXN0U3VpdGUgd2l0aCB0
aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBkb2Vzbid0CiAgIC8vIGV4aXN0LCBjcmVhdGVzIG9uZSBh
bmQgcmV0dXJucyBpdC4KICAgLy8KICAgLy8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIHRlc3Rf
Y2FzZV9uYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UKLSAgLy8gICB0eXBlX3BhcmFtOiAgICAg
dGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgotICAvLyAg
ICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJp
emVkIHRlc3QuCi0gIC8vICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u
IHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0gIC8vICAgdGVhcl9kb3duX3RjOiAgIHBvaW50
ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCi0gIFRlc3RD
YXNlKiBHZXRUZXN0Q2FzZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpOworICAvLyAg
IHRlc3Rfc3VpdGVfbmFtZTogbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHR5cGVfcGFy
YW06ICAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBp
ZgorICAvLyAgICAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0LgorICAvLyAgIHNldF91cF90YzogICAgICAgcG9pbnRlciB0byB0
aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisgIC8vICAgdGVhcl9kb3du
X3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qg
c3VpdGUKKyAgVGVzdFN1aXRlKiBHZXRUZXN0U3VpdGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9u
YW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpOwor
CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5k
ZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIFRlc3RDYXNlKiBHZXRUZXN0
Q2FzZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJhbSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpTZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0
X3VwX3RjLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1
aXRlRnVuYyB0ZWFyX2Rvd25fdGMpIHsKKyAgICByZXR1cm4gR2V0VGVzdFN1aXRlKHRlc3RfY2Fz
ZV9uYW1lLCB0eXBlX3BhcmFtLCBzZXRfdXBfdGMsIHRlYXJfZG93bl90Yyk7CisgIH0KKyNlbmRp
ZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8vIEFkZHMgYSBU
ZXN0SW5mbyB0byB0aGUgdW5pdCB0ZXN0LgogICAvLwogICAvLyBBcmd1bWVudHM6CiAgIC8vCi0g
IC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAg
dGhlIHRlc3QgY2FzZQotICAvLyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rp
b24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKKyAgLy8gICBzZXRfdXBfdGM6ICAgIHBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorICAvLyAg
IHRlYXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRo
ZSB0ZXN0IHN1aXRlCiAgIC8vICAgdGVzdF9pbmZvOiAgICB0aGUgVGVzdEluZm8gb2JqZWN0Ci0g
IHZvaWQgQWRkVGVzdEluZm8oVGVzdDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAg
ICAgICAgICAgICAgICAgIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90YywK
KyAgdm9pZCBBZGRUZXN0SW5mbyhpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90
YywKKyAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VGVhckRvd25UZXN0U3VpdGVGdW5jIHRl
YXJfZG93bl90YywKICAgICAgICAgICAgICAgICAgICBUZXN0SW5mbyogdGVzdF9pbmZvKSB7Cisj
aWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKICAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHRocmVh
ZC1zYWZlIGRlYXRoIHRlc3RzLCB3ZSBuZWVkIHRvCiAgICAgLy8gcmVtZW1iZXIgdGhlIG9yaWdp
bmFsIHdvcmtpbmcgZGlyZWN0b3J5IHdoZW4gdGhlIHRlc3QgcHJvZ3JhbQogICAgIC8vIHdhcyBm
aXJzdCBpbnZva2VkLiAgV2UgY2Fubm90IGRvIHRoaXMgaW4gUlVOX0FMTF9URVNUUygpLCBhcwpA
QCAtNjYzLDIyICs2ODgsMzMgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICAg
ICAgR1RFU1RfQ0hFQ0tfKCFvcmlnaW5hbF93b3JraW5nX2Rpcl8uSXNFbXB0eSgpKQogICAgICAg
ICAgIDw8ICJGYWlsZWQgdG8gZ2V0IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiI7CiAg
ICAgfQorI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVAogCi0gICAgR2V0VGVzdENhc2Uo
dGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpLAotICAgICAgICAgICAgICAgIHRlc3RfaW5mby0+
dHlwZV9wYXJhbSgpLAotICAgICAgICAgICAgICAgIHNldF91cF90YywKLSAgICAgICAgICAgICAg
ICB0ZWFyX2Rvd25fdGMpLT5BZGRUZXN0SW5mbyh0ZXN0X2luZm8pOworICAgIEdldFRlc3RTdWl0
ZSh0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSwK
KyAgICAgICAgICAgICAgICAgc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpCisgICAgICAgIC0+QWRk
VGVzdEluZm8odGVzdF9pbmZvKTsKICAgfQogCi0gIC8vIFJldHVybnMgUGFyYW1ldGVyaXplZFRl
c3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgorICAvLyBSZXR1cm5z
IFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBvYmplY3QgdXNlZCB0byBrZWVwIHRyYWNr
IG9mCiAgIC8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYW5kIGluc3RhbnRpYXRlIGFuZCBy
ZWdpc3RlciB0aGVtLgotICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkm
IHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpIHsKKyAgaW50ZXJuYWw6OlBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVSZWdpc3RyeSYgcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgewogICAg
IHJldHVybiBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfOwogICB9CiAKLSAgLy8gU2V0cyB0
aGUgVGVzdENhc2Ugb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcu
Ci0gIHZvaWQgc2V0X2N1cnJlbnRfdGVzdF9jYXNlKFRlc3RDYXNlKiBhX2N1cnJlbnRfdGVzdF9j
YXNlKSB7Ci0gICAgY3VycmVudF90ZXN0X2Nhc2VfID0gYV9jdXJyZW50X3Rlc3RfY2FzZTsKKyAg
c3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiBpZ25vcmVkX3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXMo
KSB7CisgICAgcmV0dXJuICZpZ25vcmVkX3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXNfOworICB9
CisKKyAgLy8gUmV0dXJucyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IG9iamVj
dCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKKyAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFu
ZCBpbnN0YW50aWF0aW9ucyBvZiB0aGVtLgorICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGVSZWdpc3RyeSYKKyAgdHlwZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSB7
CisgICAgcmV0dXJuIHR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKyAgfQorCisg
IC8vIFNldHMgdGhlIFRlc3RTdWl0ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50
bHkgcnVubmluZy4KKyAgdm9pZCBzZXRfY3VycmVudF90ZXN0X3N1aXRlKFRlc3RTdWl0ZSogYV9j
dXJyZW50X3Rlc3Rfc3VpdGUpIHsKKyAgICBjdXJyZW50X3Rlc3Rfc3VpdGVfID0gYV9jdXJyZW50
X3Rlc3Rfc3VpdGU7CiAgIH0KIAogICAvLyBTZXRzIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9yIHRo
ZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZy4gIElmCkBAIC02ODksNyArNzI1LDcgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdEltcGwgewogICB9CiAKICAgLy8gUmVnaXN0ZXJzIGFs
bCBwYXJhbWV0ZXJpemVkIHRlc3RzIGRlZmluZWQgdXNpbmcgVEVTVF9QIGFuZAotICAvLyBJTlNU
QU5USUFURV9URVNUX0NBU0VfUCwgY3JlYXRpbmcgcmVndWxhciB0ZXN0cyBmb3IgZWFjaCB0ZXN0
L3BhcmFtZXRlcgorICAvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AsIGNyZWF0aW5nIHJlZ3Vs
YXIgdGVzdHMgZm9yIGVhY2ggdGVzdC9wYXJhbWV0ZXIKICAgLy8gY29tYmluYXRpb24uIFRoaXMg
bWV0aG9kIGNhbiBiZSBjYWxsZWQgbW9yZSB0aGVuIG9uY2U7IGl0IGhhcyBndWFyZHMKICAgLy8g
cHJvdGVjdGluZyBmcm9tIHJlZ2lzdGVyaW5nIHRoZSB0ZXN0cyBtb3JlIHRoZW4gb25jZS4gIElm
CiAgIC8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIGRpc2FibGVkLCBSZWdpc3RlclBh
cmFtZXRlcml6ZWRUZXN0cyBpcwpAQCAtNzA0LDcgKzc0MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8g
VW5pdFRlc3RJbXBsIHsKIAogICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzLCBl
eGNlcHQgdGhlIGFkIGhvYyB0ZXN0cy4KICAgdm9pZCBDbGVhck5vbkFkSG9jVGVzdFJlc3VsdCgp
IHsKLSAgICBGb3JFYWNoKHRlc3RfY2FzZXNfLCBUZXN0Q2FzZTo6Q2xlYXJUZXN0Q2FzZVJlc3Vs
dCk7CisgICAgRm9yRWFjaCh0ZXN0X3N1aXRlc18sIFRlc3RTdWl0ZTo6Q2xlYXJUZXN0U3VpdGVS
ZXN1bHQpOwogICB9CiAKICAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFkLWhvYyB0ZXN0IGFz
c2VydGlvbnMuCkBAIC03MTMsNyArNzQ5LDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdElt
cGwgewogICB9CiAKICAgLy8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0
UmVzdWx0IG9iamVjdCB3aGVuIGludm9rZWQgaW4gYQotICAvLyBjb250ZXh0IG9mIGEgdGVzdCBv
ciBhIHRlc3QgY2FzZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQuIElmIHRoZQorICAv
LyBjb250ZXh0IG9mIGEgdGVzdCBvciBhIHRlc3Qgc3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJv
cGVydHkgc2V0LiBJZiB0aGUKICAgLy8gcmVzdWx0IGFscmVhZHkgY29udGFpbnMgYSBwcm9wZXJ0
eSB3aXRoIHRoZSBzYW1lIGtleSwgdGhlIHZhbHVlIHdpbGwgYmUKICAgLy8gdXBkYXRlZC4KICAg
dm9pZCBSZWNvcmRQcm9wZXJ0eShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpOwpA
QCAtNzI1LDcgKzc2MSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKIAogICAv
LyBNYXRjaGVzIHRoZSBmdWxsIG5hbWUgb2YgZWFjaCB0ZXN0IGFnYWluc3QgdGhlIHVzZXItc3Bl
Y2lmaWVkCiAgIC8vIGZpbHRlciB0byBkZWNpZGUgd2hldGhlciB0aGUgdGVzdCBzaG91bGQgcnVu
LCB0aGVuIHJlY29yZHMgdGhlCi0gIC8vIHJlc3VsdCBpbiBlYWNoIFRlc3RDYXNlIGFuZCBUZXN0
SW5mbyBvYmplY3QuCisgIC8vIHJlc3VsdCBpbiBlYWNoIFRlc3RTdWl0ZSBhbmQgVGVzdEluZm8g
b2JqZWN0LgogICAvLyBJZiBzaGFyZF90ZXN0cyA9PSBIT05PUl9TSEFSRElOR19QUk9UT0NPTCwg
ZnVydGhlciBmaWx0ZXJzIHRlc3RzCiAgIC8vIGJhc2VkIG9uIHNoYXJkaW5nIHZhcmlhYmxlcyBp
biB0aGUgZW52aXJvbm1lbnQuCiAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0
IHNob3VsZCBydW4uCkBAIC03MzQsNyArNzcwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVz
dEltcGwgewogICAvLyBQcmludHMgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cyBtYXRjaGluZyB0aGUg
dXNlci1zcGVjaWZpZWQgZmlsdGVyIGZsYWcuCiAgIHZvaWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0
ZXIoKTsKIAotICBjb25zdCBUZXN0Q2FzZSogY3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdCB7IHJl
dHVybiBjdXJyZW50X3Rlc3RfY2FzZV87IH0KKyAgY29uc3QgVGVzdFN1aXRlKiBjdXJyZW50X3Rl
c3Rfc3VpdGUoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3Rlc3Rfc3VpdGVfOyB9CiAgIFRlc3RJ
bmZvKiBjdXJyZW50X3Rlc3RfaW5mbygpIHsgcmV0dXJuIGN1cnJlbnRfdGVzdF9pbmZvXzsgfQog
ICBjb25zdCBUZXN0SW5mbyogY3VycmVudF90ZXN0X2luZm8oKSBjb25zdCB7IHJldHVybiBjdXJy
ZW50X3Rlc3RfaW5mb187IH0KIApAQCAtNzk1LDExICs4MzEsMTEgQEAgY2xhc3MgR1RFU1RfQVBJ
XyBVbml0VGVzdEltcGwgewogICAvLyBHZXRzIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4K
ICAgaW50ZXJuYWw6OlJhbmRvbSogcmFuZG9tKCkgeyByZXR1cm4gJnJhbmRvbV87IH0KIAotICAv
LyBTaHVmZmxlcyBhbGwgdGVzdCBjYXNlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0
IGNhc2UsCisgIC8vIFNodWZmbGVzIGFsbCB0ZXN0IHN1aXRlcywgYW5kIHRoZSB0ZXN0cyB3aXRo
aW4gZWFjaCB0ZXN0IHN1aXRlLAogICAvLyBtYWtpbmcgc3VyZSB0aGF0IGRlYXRoIHRlc3RzIGFy
ZSBzdGlsbCBydW4gZmlyc3QuCiAgIHZvaWQgU2h1ZmZsZVRlc3RzKCk7CiAKLSAgLy8gUmVzdG9y
ZXMgdGhlIHRlc3QgY2FzZXMgYW5kIHRlc3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9yZSB0aGUgZmly
c3Qgc2h1ZmZsZS4KKyAgLy8gUmVzdG9yZXMgdGhlIHRlc3Qgc3VpdGVzIGFuZCB0ZXN0cyB0byB0
aGVpciBvcmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCiAgIHZvaWQgVW5zaHVmZmxlVGVz
dHMoKTsKIAogICAvLyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBHVEVTVF9GTEFHKGNhdGNoX2V4Y2Vw
dGlvbnMpIGF0IHRoZSBtb21lbnQKQEAgLTgzOSwzMSArODc1LDM3IEBAIGNsYXNzIEdURVNUX0FQ
SV8gVW5pdFRlc3RJbXBsIHsKICAgLy8gYmVmb3JlL2FmdGVyIHRoZSB0ZXN0cyBhcmUgcnVuLgog
ICBzdGQ6OnZlY3RvcjxFbnZpcm9ubWVudCo+IGVudmlyb25tZW50c187CiAKLSAgLy8gVGhlIHZl
Y3RvciBvZiBUZXN0Q2FzZXMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuICBJdCBvd25zIHRoZQor
ICAvLyBUaGUgdmVjdG9yIG9mIFRlc3RTdWl0ZXMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIuICBJ
dCBvd25zIHRoZQogICAvLyBlbGVtZW50cyBpbiB0aGUgdmVjdG9yLgotICBzdGQ6OnZlY3RvcjxU
ZXN0Q2FzZSo+IHRlc3RfY2FzZXNfOworICBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiB0ZXN0X3N1
aXRlc187CiAKLSAgLy8gUHJvdmlkZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBmb3IgdGhlIHRl
c3QgY2FzZSBsaXN0IHRvIGFsbG93Ci0gIC8vIGVhc3kgc2h1ZmZsaW5nIGFuZCByZXN0b3Jpbmcg
dGhlIHRlc3QgY2FzZSBvcmRlci4gIFRoZSBpLXRoCi0gIC8vIGVsZW1lbnQgb2YgdGhpcyB2ZWN0
b3IgaXMgdGhlIGluZGV4IG9mIHRoZSBpLXRoIHRlc3QgY2FzZSBpbiB0aGUKKyAgLy8gUHJvdmlk
ZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBmb3IgdGhlIHRlc3Qgc3VpdGUgbGlzdCB0byBhbGxv
dworICAvLyBlYXN5IHNodWZmbGluZyBhbmQgcmVzdG9yaW5nIHRoZSB0ZXN0IHN1aXRlIG9yZGVy
LiAgVGhlIGktdGgKKyAgLy8gZWxlbWVudCBvZiB0aGlzIHZlY3RvciBpcyB0aGUgaW5kZXggb2Yg
dGhlIGktdGggdGVzdCBzdWl0ZSBpbiB0aGUKICAgLy8gc2h1ZmZsZWQgb3JkZXIuCi0gIHN0ZDo6
dmVjdG9yPGludD4gdGVzdF9jYXNlX2luZGljZXNfOworICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3Rf
c3VpdGVfaW5kaWNlc187CiAKICAgLy8gUGFyYW1ldGVyaXplZFRlc3RSZWdpc3RyeSBvYmplY3Qg
dXNlZCB0byByZWdpc3RlciB2YWx1ZS1wYXJhbWV0ZXJpemVkCiAgIC8vIHRlc3RzLgotICBpbnRl
cm5hbDo6UGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgcGFyYW1ldGVyaXplZF90ZXN0X3Jl
Z2lzdHJ5XzsKKyAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBwYXJh
bWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfOworICBpbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGVSZWdpc3RyeQorICAgICAgdHlwZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlf
OworCisgIC8vIFRoZSBzZXQgaG9sZGluZyB0aGUgbmFtZSBvZiBwYXJhbWV0ZXJpemVkCisgIC8v
IHRlc3Qgc3VpdGVzIHRoYXQgbWF5IGdvIHVuaW5zdGFudGlhdGVkLgorICBzdGQ6OnNldDxzdGQ6
OnN0cmluZz4gaWdub3JlZF9wYXJhbWV0ZXJpemVkX3Rlc3Rfc3VpdGVzXzsKIAogICAvLyBJbmRp
Y2F0ZXMgd2hldGhlciBSZWdpc3RlclBhcmFtZXRlcml6ZWRUZXN0cygpIGhhcyBiZWVuIGNhbGxl
ZCBhbHJlYWR5LgogICBib29sIHBhcmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF87CiAKLSAg
Ly8gSW5kZXggb2YgdGhlIGxhc3QgZGVhdGggdGVzdCBjYXNlIHJlZ2lzdGVyZWQuICBJbml0aWFs
bHkgLTEuCi0gIGludCBsYXN0X2RlYXRoX3Rlc3RfY2FzZV87CisgIC8vIEluZGV4IG9mIHRoZSBs
YXN0IGRlYXRoIHRlc3Qgc3VpdGUgcmVnaXN0ZXJlZC4gIEluaXRpYWxseSAtMS4KKyAgaW50IGxh
c3RfZGVhdGhfdGVzdF9zdWl0ZV87CiAKLSAgLy8gVGhpcyBwb2ludHMgdG8gdGhlIFRlc3RDYXNl
IGZvciB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdC4gIEl0Ci0gIC8vIGNoYW5nZXMgYXMgR29v
Z2xlIFRlc3QgZ29lcyB0aHJvdWdoIG9uZSB0ZXN0IGNhc2UgYWZ0ZXIgYW5vdGhlci4KKyAgLy8g
VGhpcyBwb2ludHMgdG8gdGhlIFRlc3RTdWl0ZSBmb3IgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRl
c3QuICBJdAorICAvLyBjaGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdvZXMgdGhyb3VnaCBvbmUgdGVz
dCBzdWl0ZSBhZnRlciBhbm90aGVyLgogICAvLyBXaGVuIG5vIHRlc3QgaXMgcnVubmluZywgdGhp
cyBpcyBzZXQgdG8gTlVMTCBhbmQgR29vZ2xlIFRlc3QKICAgLy8gc3RvcmVzIGFzc2VydGlvbiBy
ZXN1bHRzIGluIGFkX2hvY190ZXN0X3Jlc3VsdF8uICBJbml0aWFsbHkgTlVMTC4KLSAgVGVzdENh
c2UqIGN1cnJlbnRfdGVzdF9jYXNlXzsKKyAgVGVzdFN1aXRlKiBjdXJyZW50X3Rlc3Rfc3VpdGVf
OwogCiAgIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBUZXN0SW5mbyBmb3IgdGhlIGN1cnJlbnRseSBy
dW5uaW5nIHRlc3QuICBJdAogICAvLyBjaGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdvZXMgdGhyb3Vn
aCBvbmUgdGVzdCBhZnRlciBhbm90aGVyLiAgV2hlbgpAQCAtODkxLDcgKzkzMyw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgLy8gZGVzaXJlZC4KICAgT3NTdGFja1RyYWNl
R2V0dGVySW50ZXJmYWNlKiBvc19zdGFja190cmFjZV9nZXR0ZXJfOwogCi0gIC8vIFRydWUgaWZm
IFBvc3RGbGFnUGFyc2luZ0luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgIC8vIFRydWUgaWYgYW5k
IG9ubHkgaWYgUG9zdEZsYWdQYXJzaW5nSW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KICAgYm9vbCBw
b3N0X2ZsYWdfcGFyc2VfaW5pdF9wZXJmb3JtZWRfOwogCiAgIC8vIFRoZSByYW5kb20gbnVtYmVy
IHNlZWQgdXNlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXN0IHJ1bi4KQEAgLTkxMCw4ICs5
NTIsOCBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1wbCB7CiAjaWYgR1RFU1RfSEFTX0RF
QVRIX1RFU1QKICAgLy8gVGhlIGRlY29tcG9zZWQgY29tcG9uZW50cyBvZiB0aGUgZ3Rlc3RfaW50
ZXJuYWxfcnVuX2RlYXRoX3Rlc3QgZmxhZywKICAgLy8gcGFyc2VkIHdoZW4gUlVOX0FMTF9URVNU
UyBpcyBjYWxsZWQuCi0gIGludGVybmFsOjpzY29wZWRfcHRyPEludGVybmFsUnVuRGVhdGhUZXN0
RmxhZz4gaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ187Ci0gIGludGVybmFsOjpzY29wZWRf
cHRyPGludGVybmFsOjpEZWF0aFRlc3RGYWN0b3J5PiBkZWF0aF90ZXN0X2ZhY3RvcnlfOworICBz
dGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnPiBpbnRlcm5hbF9ydW5fZGVh
dGhfdGVzdF9mbGFnXzsKKyAgc3RkOjp1bmlxdWVfcHRyPGludGVybmFsOjpEZWF0aFRlc3RGYWN0
b3J5PiBkZWF0aF90ZXN0X2ZhY3RvcnlfOwogI2VuZGlmICAvLyBHVEVTVF9IQVNfREVBVEhfVEVT
VAogCiAgIC8vIEEgcGVyLXRocmVhZCBzdGFjayBvZiB0cmFjZXMgY3JlYXRlZCBieSB0aGUgU0NP
UEVEX1RSQUNFKCkgbWFjcm8uCkBAIC05NzgsMjQgKzEwMjAsMTEgQEAgYm9vbCBQYXJzZU5hdHVy
YWxOdW1iZXIoY29uc3QgOjpzdGQ6OnN0cmluZyYgc3RyLCBJbnRlZ2VyKiBudW1iZXIpIHsKICAg
Y2hhciogZW5kOwogICAvLyBCaWdnZXN0Q29udmVydGlibGUgaXMgdGhlIGxhcmdlc3QgaW50ZWdl
ciB0eXBlIHRoYXQgc3lzdGVtLXByb3ZpZGVkCiAgIC8vIHN0cmluZy10by1udW1iZXIgY29udmVy
c2lvbiByb3V0aW5lcyBjYW4gcmV0dXJuLgorICB1c2luZyBCaWdnZXN0Q29udmVydGlibGUgPSB1
bnNpZ25lZCBsb25nIGxvbmc7ICAvLyBOT0xJTlQKIAotIyBpZiBHVEVTVF9PU19XSU5ET1dTICYm
ICFkZWZpbmVkKF9fR05VQ19fKQotCi0gIC8vIE1TVkMgYW5kIEMrKyBCdWlsZGVyIGRlZmluZSBf
X2ludDY0IGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGxvbmcgbG9uZy4KLSAgdHlwZWRlZiB1bnNp
Z25lZCBfX2ludDY0IEJpZ2dlc3RDb252ZXJ0aWJsZTsKLSAgY29uc3QgQmlnZ2VzdENvbnZlcnRp
YmxlIHBhcnNlZCA9IF9zdHJ0b3VpNjQoc3RyLmNfc3RyKCksICZlbmQsIDEwKTsKLQotIyBlbHNl
Ci0KLSAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgQmlnZ2VzdENvbnZlcnRpYmxlOyAgLy8g
Tk9MSU5UCi0gIGNvbnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBzdHJ0b3VsbChzdHIu
Y19zdHIoKSwgJmVuZCwgMTApOwotCi0jIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFk
ZWZpbmVkKF9fR05VQ19fKQotCisgIGNvbnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBz
dHJ0b3VsbChzdHIuY19zdHIoKSwgJmVuZCwgMTApOyAgLy8gTk9MSU5UCiAgIGNvbnN0IGJvb2wg
cGFyc2Vfc3VjY2VzcyA9ICplbmQgPT0gJ1wwJyAmJiBlcnJubyA9PSAwOwogCi0gIC8vIEZJWE1F
OiBDb252ZXJ0IHRoaXMgdG8gY29tcGlsZSB0aW1lIGFzc2VydGlvbiB3aGVuIGl0IGlzCi0gIC8v
IGF2YWlsYWJsZS4KICAgR1RFU1RfQ0hFQ0tfKHNpemVvZihJbnRlZ2VyKSA8PSBzaXplb2YocGFy
c2VkKSk7CiAKICAgY29uc3QgSW50ZWdlciByZXN1bHQgPSBzdGF0aWNfY2FzdDxJbnRlZ2VyPihw
YXJzZWQpOwpAQCAtMTA1OSwxOCArMTA4OCwxOCBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6
IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICAgIE1ha2VDb25uZWN0aW9uKCk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB+U29ja2V0V3JpdGVyKCkgeworICAgIH5Tb2NrZXRXcml0
ZXIoKSBvdmVycmlkZSB7CiAgICAgICBpZiAoc29ja2ZkXyAhPSAtMSkKICAgICAgICAgQ2xvc2VD
b25uZWN0aW9uKCk7CiAgICAgfQogCiAgICAgLy8gU2VuZHMgYSBzdHJpbmcgdG8gdGhlIHNvY2tl
dC4KLSAgICB2aXJ0dWFsIHZvaWQgU2VuZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewor
ICAgIHZvaWQgU2VuZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGUgewogICAg
ICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8gIT0gLTEpCiAgICAgICAgICAgPDwgIlNlbmQoKSBjYW4g
YmUgY2FsbGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNvbm5lY3Rpb24uIjsKIAotICAgICAgY29u
c3QgaW50IGxlbiA9IHN0YXRpY19jYXN0PGludD4obWVzc2FnZS5sZW5ndGgoKSk7Ci0gICAgICBp
ZiAod3JpdGUoc29ja2ZkXywgbWVzc2FnZS5jX3N0cigpLCBsZW4pICE9IGxlbikgeworICAgICAg
Y29uc3QgYXV0byBsZW4gPSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1lc3NhZ2UubGVuZ3RoKCkpOwor
ICAgICAgaWYgKHdyaXRlKHNvY2tmZF8sIG1lc3NhZ2UuY19zdHIoKSwgbGVuKSAhPSBzdGF0aWNf
Y2FzdDxzc2l6ZV90PihsZW4pKSB7CiAgICAgICAgIEdURVNUX0xPR18oV0FSTklORykKICAgICAg
ICAgICAgIDw8ICJzdHJlYW1fcmVzdWx0X3RvOiBmYWlsZWQgdG8gc3RyZWFtIHRvICIKICAgICAg
ICAgICAgIDw8IGhvc3RfbmFtZV8gPDwgIjoiIDw8IHBvcnRfbnVtXzsKQEAgLTEwODIsNyArMTEx
MSw3IEBAIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlz
dGVuZXIgewogICAgIHZvaWQgTWFrZUNvbm5lY3Rpb24oKTsKIAogICAgIC8vIENsb3NlcyB0aGUg
c29ja2V0LgotICAgIHZvaWQgQ2xvc2VDb25uZWN0aW9uKCkgeworICAgIHZvaWQgQ2xvc2VDb25u
ZWN0aW9uKCkgb3ZlcnJpZGUgewogICAgICAgR1RFU1RfQ0hFQ0tfKHNvY2tmZF8gIT0gLTEpCiAg
ICAgICAgICAgPDwgIkNsb3NlQ29ubmVjdGlvbigpIGNhbiBiZSBjYWxsZWQgb25seSB3aGVuIHRo
ZXJlIGlzIGEgY29ubmVjdGlvbi4iOwogCkBAIC0xMTA4LDExICsxMTM3LDExIEBAIGNsYXNzIFN0
cmVhbWluZ0xpc3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICBleHBs
aWNpdCBTdHJlYW1pbmdMaXN0ZW5lcihBYnN0cmFjdFNvY2tldFdyaXRlciogc29ja2V0X3dyaXRl
cikKICAgICAgIDogc29ja2V0X3dyaXRlcl8oc29ja2V0X3dyaXRlcikgeyBTdGFydCgpOyB9CiAK
LSAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAq
LykgeworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90
ZXN0ICovKSBvdmVycmlkZSB7CiAgICAgU2VuZExuKCJldmVudD1UZXN0UHJvZ3JhbVN0YXJ0Iik7
CiAgIH0KIAotICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVz
dCkgeworICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkg
b3ZlcnJpZGUgewogICAgIC8vIE5vdGUgdGhhdCBHb29nbGUgVGVzdCBjdXJyZW50IG9ubHkgcmVw
b3J0IGVsYXBzZWQgdGltZSBmb3IgZWFjaAogICAgIC8vIHRlc3QgaXRlcmF0aW9uLCBub3QgZm9y
IHRoZSBlbnRpcmUgdGVzdCBwcm9ncmFtLgogICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1F
bmQmcGFzc2VkPSIgKyBGb3JtYXRCb29sKHVuaXRfdGVzdC5QYXNzZWQoKSkpOwpAQCAtMTEyMSw0
MiArMTE1MCw0NyBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RF
dmVudExpc3RlbmVyIHsKICAgICBzb2NrZXRfd3JpdGVyXy0+Q2xvc2VDb25uZWN0aW9uKCk7CiAg
IH0KIAotICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0
X3Rlc3QgKi8sIGludCBpdGVyYXRpb24pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChj
b25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBpdGVyYXRpb24pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RJdGVy
YXRpb25TdGFydCZpdGVyYXRpb249IiArCiAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhp
dGVyYXRpb24pKTsKICAgfQogCi0gIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QsIGludCAvKiBpdGVyYXRpb24gKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVy
YXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IC8qIGl0ZXJhdGlvbiAqLykgb3ZlcnJpZGUgewogICAgIFNlbmRMbigiZXZlbnQ9
VGVzdEl0ZXJhdGlvbkVuZCZwYXNzZWQ9IiArCiAgICAgICAgICAgIEZvcm1hdEJvb2wodW5pdF90
ZXN0LlBhc3NlZCgpKSArICImZWxhcHNlZF90aW1lPSIgKwogICAgICAgICAgICBTdHJlYW1hYmxl
VG9TdHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKSArICJtcyIpOwogICB9CiAKLSAgdm9p
ZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgeworICAvLyBOb3Rl
IHRoYXQgImV2ZW50PVRlc3RDYXNlU3RhcnQiIGlzIGEgd2lyZSBmb3JtYXQgYW5kIGhhcyB0byBy
ZW1haW4KKyAgLy8gImNhc2UiIGZvciBjb21wYXRpYmlsdHkKKyAgdm9pZCBPblRlc3RDYXNlU3Rh
cnQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgb3ZlcnJpZGUgewogICAgIFNlbmRMbihzdGQ6
OnN0cmluZygiZXZlbnQ9VGVzdENhc2VTdGFydCZuYW1lPSIpICsgdGVzdF9jYXNlLm5hbWUoKSk7
CiAgIH0KIAotICB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkg
ewotICAgIFNlbmRMbigiZXZlbnQ9VGVzdENhc2VFbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29sKHRl
c3RfY2FzZS5QYXNzZWQoKSkKLSAgICAgICAgICAgKyAiJmVsYXBzZWRfdGltZT0iICsgU3RyZWFt
YWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkKLSAgICAgICAgICAgKyAibXMi
KTsKKyAgLy8gTm90ZSB0aGF0ICJldmVudD1UZXN0Q2FzZUVuZCIgaXMgYSB3aXJlIGZvcm1hdCBh
bmQgaGFzIHRvIHJlbWFpbgorICAvLyAiY2FzZSIgZm9yIGNvbXBhdGliaWx0eQorICB2b2lkIE9u
VGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgb3ZlcnJpZGUgeworICAgIFNl
bmRMbigiZXZlbnQ9VGVzdENhc2VFbmQmcGFzc2VkPSIgKyBGb3JtYXRCb29sKHRlc3RfY2FzZS5Q
YXNzZWQoKSkgKworICAgICAgICAgICAiJmVsYXBzZWRfdGltZT0iICsgU3RyZWFtYWJsZVRvU3Ry
aW5nKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkgKworICAgICAgICAgICAibXMiKTsKICAgfQog
Ci0gIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lk
IE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKICAgICBT
ZW5kTG4oc3RkOjpzdHJpbmcoImV2ZW50PVRlc3RTdGFydCZuYW1lPSIpICsgdGVzdF9pbmZvLm5h
bWUoKSk7CiAgIH0KIAotICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZv
KSB7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRl
IHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RFbmQmcGFzc2VkPSIgKwogICAgICAgICAgICBGb3Jt
YXRCb29sKCh0ZXN0X2luZm8ucmVzdWx0KCkpLT5QYXNzZWQoKSkgKwogICAgICAgICAgICAiJmVs
YXBzZWRfdGltZT0iICsKICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKCh0ZXN0X2luZm8u
cmVzdWx0KCkpLT5lbGFwc2VkX3RpbWUoKSkgKyAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0
UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgeworICB2
b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1
bHQpIG92ZXJyaWRlIHsKICAgICBjb25zdCBjaGFyKiBmaWxlX25hbWUgPSB0ZXN0X3BhcnRfcmVz
dWx0LmZpbGVfbmFtZSgpOwotICAgIGlmIChmaWxlX25hbWUgPT0gTlVMTCkKLSAgICAgIGZpbGVf
bmFtZSA9ICIiOworICAgIGlmIChmaWxlX25hbWUgPT0gbnVsbHB0cikgZmlsZV9uYW1lID0gIiI7
CiAgICAgU2VuZExuKCJldmVudD1UZXN0UGFydFJlc3VsdCZmaWxlPSIgKyBVcmxFbmNvZGUoZmls
ZV9uYW1lKSArCiAgICAgICAgICAgICImbGluZT0iICsgU3RyZWFtYWJsZVRvU3RyaW5nKHRlc3Rf
cGFydF9yZXN1bHQubGluZV9udW1iZXIoKSkgKwogICAgICAgICAgICAiJm1lc3NhZ2U9IiArIFVy
bEVuY29kZSh0ZXN0X3BhcnRfcmVzdWx0Lm1lc3NhZ2UoKSkpOwpAQCAtMTE3Miw3ICsxMjA2LDcg
QEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5l
ciB7CiAKICAgc3RkOjpzdHJpbmcgRm9ybWF0Qm9vbChib29sIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA/ICIxIiA6ICIwIjsgfQogCi0gIGNvbnN0IHNjb3BlZF9wdHI8QWJzdHJhY3RTb2NrZXRXcml0
ZXI+IHNvY2tldF93cml0ZXJfOworICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTb2Nr
ZXRXcml0ZXI+IHNvY2tldF93cml0ZXJfOwogCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FT
U0lHTl8oU3RyZWFtaW5nTGlzdGVuZXIpOwogfTsgIC8vIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVy
CkBAIC0xMTg0LDQgKzEyMTgsNCBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1YmxpYyBF
bXB0eVRlc3RFdmVudExpc3RlbmVyIHsKIAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9Q
XygpICAvLyAgNDI1MQogCi0jZW5kaWYgIC8vIEdURVNUX1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxf
SF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjUxMDRlYmFiMWJhOWFmMDYzMjdmYzk0YzBhMDM4YjY4MDZkNDIwNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1tYXRjaGVycy5jYwpAQCAtMCww
ICsxLDk3IEBACisvLyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KKy8vIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6Cisv
LworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
Ky8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3JrIChHb29nbGUg
VGVzdCkKKy8vCisvLyBUaGlzIGZpbGUgaW1wbGVtZW50cyBqdXN0IGVub3VnaCBvZiB0aGUgbWF0
Y2hlciBpbnRlcmZhY2UgdG8gYWxsb3cKKy8vIEVYUEVDVF9ERUFUSCBhbmQgZnJpZW5kcyB0byBh
Y2NlcHQgYSBtYXRjaGVyIGFyZ3VtZW50LgorCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCisj
aW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMuaCIKKworI2luY2x1ZGUgPHN0cmluZz4KKwor
bmFtZXNwYWNlIHRlc3RpbmcgeworCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYgd2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitN
YXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMp
IHsgKnRoaXMgPSBFcShzKTsgfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNo
ZXMgYSBjb25zdCBzdGQ6OnN0cmluZyYgd2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitN
YXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeworICAq
dGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMpKTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIg
dGhhdCBtYXRjaGVzIGEgc3RkOjpzdHJpbmcgd2hvc2UgdmFsdWUgaXMgZXF1YWwgdG8KKy8vIHMu
CitNYXRjaGVyPHN0ZDo6c3RyaW5nPjo6TWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcykgeyAq
dGhpcyA9IEVxKHMpOyB9CisKKy8vIENvbnN0cnVjdHMgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBh
IHN0ZDo6c3RyaW5nIHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxzdGQ6
OnN0cmluZz46Ok1hdGNoZXIoY29uc3QgY2hhciogcykgeyAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5n
KHMpKTsgfQorCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisvLyBDb25zdHJ1
Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1
ZSBpcworLy8gZXF1YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcm
Pjo6TWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcykgeworICAqdGhpcyA9IEVxKHMpOworfQor
CisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBjb25zdCBTdHJpbmdWaWV3
JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01hdGNoZXI8Y29uc3QgaW50ZXJuYWw6
OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihjb25zdCBjaGFyKiBzKSB7CisgICp0aGlzID0gRXEoc3Rk
OjpzdHJpbmcocykpOworfQorCisvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMg
YSBjb25zdCBTdHJpbmdWaWV3JiB3aG9zZSB2YWx1ZSBpcworLy8gZXF1YWwgdG8gcy4KK01hdGNo
ZXI8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPjo6TWF0Y2hlcihpbnRlcm5hbDo6U3RyaW5n
VmlldyBzKSB7CisgICp0aGlzID0gRXEoc3RkOjpzdHJpbmcocykpOworfQorCisvLyBDb25zdHJ1
Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBTdHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVx
dWFsIHRvCisvLyBzLgorTWF0Y2hlcjxpbnRlcm5hbDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29u
c3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRoaXMgPSBFcShzKTsgfQorCisvLyBDb25zdHJ1Y3RzIGEg
bWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBTdHJpbmdWaWV3IHdob3NlIHZhbHVlIGlzIGVxdWFsIHRv
CisvLyBzLgorTWF0Y2hlcjxpbnRlcm5hbDo6U3RyaW5nVmlldz46Ok1hdGNoZXIoY29uc3QgY2hh
ciogcykgeworICAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMpKTsKK30KKworLy8gQ29uc3RydWN0
cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgU3RyaW5nVmlldyB3aG9zZSB2YWx1ZSBpcyBlcXVh
bCB0bworLy8gcy4KK01hdGNoZXI8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+OjpNYXRjaGVyKGludGVy
bmFsOjpTdHJpbmdWaWV3IHMpIHsKKyAgKnRoaXMgPSBFcShzdGQ6OnN0cmluZyhzKSk7Cit9Cisj
ZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworCit9ICAvLyBuYW1lc3Bh
Y2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0
LXBvcnQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYwppbmRl
eCBmZWNiNWQxMWMyMTI5NmE5MTgxYTExMjgwMjI2MDY3YjY0M2VkZDA1Li4zZjM5ZjcxYzA3NDU5
YjVjMDExMDU3NzcxMTM0ZTVjMmI5OGNlOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtcG9ydC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtcG9ydC5jYwpAQCAtMzEsMTYgKzMxLDIxIEBACiAjaW5jbHVkZSAiZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCiAjaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRl
IDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5j
bHVkZSA8bWVtb3J5PgogCiAjaWYgR1RFU1RfT1NfV0lORE9XUwogIyBpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAjIGluY2x1ZGUgPGlvLmg+CiAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjIGluY2x1ZGUg
PG1hcD4gIC8vIFVzZWQgaW4gVGhyZWFkTG9jYWwuCisjIGlmZGVmIF9NU0NfVkVSCisjICBpbmNs
dWRlIDxjcnRkYmcuaD4KKyMgZW5kaWYgIC8vIF9NU0NfVkVSCiAjZWxzZQogIyBpbmNsdWRlIDx1
bmlzdGQuaD4KICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwpAQCAtNTEsNiArNTYsMTQgQEAK
ICMgaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKKyNp
ZiBHVEVTVF9PU19EUkFHT05GTFkgfHwgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVf
S0ZSRUVCU0QgfHwgXAorICAgIEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECisj
IGluY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyMgaWYgR1RFU1RfT1NfRFJBR09ORkxZIHx8IEdURVNU
X09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfR05VX0tGUkVFQlNECisjICBpbmNsdWRlIDxzeXMvdXNl
ci5oPgorIyBlbmRpZgorI2VuZGlmCisKICNpZiBHVEVTVF9PU19RTlgKICMgaW5jbHVkZSA8ZGV2
Y3RsLmg+CiAjIGluY2x1ZGUgPGZjbnRsLmg+CkBAIC0xMDUsNyArMTE4LDcgQEAgVCBSZWFkUHJv
Y0ZpbGVGaWVsZChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZW5hbWUsIGludCBmaWVsZCkgewogc2l6
ZV90IEdldFRocmVhZENvdW50KCkgewogICBjb25zdCBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9CiAg
ICAgICAoTWVzc2FnZSgpIDw8ICIvcHJvYy8iIDw8IGdldHBpZCgpIDw8ICIvc3RhdCIpLkdldFN0
cmluZygpOwotICByZXR1cm4gUmVhZFByb2NGaWxlRmllbGQ8aW50PihmaWxlbmFtZSwgMTkpOwor
ICByZXR1cm4gUmVhZFByb2NGaWxlRmllbGQ8c2l6ZV90PihmaWxlbmFtZSwgMTkpOwogfQogCiAj
ZWxpZiBHVEVTVF9PU19NQUMKQEAgLTEyNyw2ICsxNDAsODIgQEAgc2l6ZV90IEdldFRocmVhZENv
dW50KCkgewogICB9CiB9CiAKKyNlbGlmIEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19G
UkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8fCBcCisgICAgICBHVEVTVF9PU19ORVRC
U0QKKworI2lmIEdURVNUX09TX05FVEJTRAorI3VuZGVmIEtFUk5fUFJPQworI2RlZmluZSBLRVJO
X1BST0MgS0VSTl9QUk9DMgorI2RlZmluZSBraW5mb19wcm9jIGtpbmZvX3Byb2MyCisjZW5kaWYK
KworI2lmIEdURVNUX09TX0RSQUdPTkZMWQorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua3BfbnRo
cmVhZHMpCisjZWxpZiBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRAor
I2RlZmluZSBLUF9OTFdQKGtwKSAoa3Aua2lfbnVtdGhyZWFkcykKKyNlbGlmIEdURVNUX09TX05F
VEJTRAorI2RlZmluZSBLUF9OTFdQKGtwKSAoa3AucF9ubHdwcykKKyNlbmRpZgorCisvLyBSZXR1
cm5zIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBydW5uaW5nIGluIHRoZSBwcm9jZXNzLCBvciAwIHRv
IGluZGljYXRlIHRoYXQKKy8vIHdlIGNhbm5vdCBkZXRlY3QgaXQuCitzaXplX3QgR2V0VGhyZWFk
Q291bnQoKSB7CisgIGludCBtaWJbXSA9IHsKKyAgICBDVExfS0VSTiwKKyAgICBLRVJOX1BST0Ms
CisgICAgS0VSTl9QUk9DX1BJRCwKKyAgICBnZXRwaWQoKSwKKyNpZiBHVEVTVF9PU19ORVRCU0QK
KyAgICBzaXplb2Yoc3RydWN0IGtpbmZvX3Byb2MpLAorICAgIDEsCisjZW5kaWYKKyAgfTsKKyAg
dV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikgLyBzaXplb2YobWliWzBdKTsKKyAgc3RydWN0IGtp
bmZvX3Byb2MgaW5mbzsKKyAgc2l6ZV90IHNpemUgPSBzaXplb2YoaW5mbyk7CisgIGlmIChzeXNj
dGwobWliLCBtaWJsZW4sICZpbmZvLCAmc2l6ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsK
KyAgfQorICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihLUF9OTFdQKGluZm8pKTsKK30KKyNl
bGlmIEdURVNUX09TX09QRU5CU0QKKworLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRocmVhZHMg
cnVubmluZyBpbiB0aGUgcHJvY2Vzcywgb3IgMCB0byBpbmRpY2F0ZSB0aGF0CisvLyB3ZSBjYW5u
b3QgZGV0ZWN0IGl0Lgorc2l6ZV90IEdldFRocmVhZENvdW50KCkgeworICBpbnQgbWliW10gPSB7
CisgICAgQ1RMX0tFUk4sCisgICAgS0VSTl9QUk9DLAorICAgIEtFUk5fUFJPQ19QSUQgfCBLRVJO
X1BST0NfU0hPV19USFJFQURTLAorICAgIGdldHBpZCgpLAorICAgIHNpemVvZihzdHJ1Y3Qga2lu
Zm9fcHJvYyksCisgICAgMCwKKyAgfTsKKyAgdV9pbnQgbWlibGVuID0gc2l6ZW9mKG1pYikgLyBz
aXplb2YobWliWzBdKTsKKworICAvLyBnZXQgbnVtYmVyIG9mIHN0cnVjdHMKKyAgc2l6ZV90IHNp
emU7CisgIGlmIChzeXNjdGwobWliLCBtaWJsZW4sIE5VTEwsICZzaXplLCBOVUxMLCAwKSkgewor
ICAgIHJldHVybiAwOworICB9CisKKyAgbWliWzVdID0gc3RhdGljX2Nhc3Q8aW50PihzaXplIC8g
c3RhdGljX2Nhc3Q8c2l6ZV90PihtaWJbNF0pKTsKKworICAvLyBwb3B1bGF0ZSBhcnJheSBvZiBz
dHJ1Y3RzCisgIHN0cnVjdCBraW5mb19wcm9jIGluZm9bbWliWzVdXTsKKyAgaWYgKHN5c2N0bCht
aWIsIG1pYmxlbiwgJmluZm8sICZzaXplLCBOVUxMLCAwKSkgeworICAgIHJldHVybiAwOworICB9
CisKKyAgLy8gZXhjbHVkZSBlbXB0eSBtZW1iZXJzCisgIHNpemVfdCBudGhyZWFkcyA9IDA7Cisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZSAvIHN0YXRpY19jYXN0PHNpemVfdD4obWliWzRd
KTsgaSsrKSB7CisgICAgaWYgKGluZm9baV0ucF90aWQgIT0gLTEpCisgICAgICBudGhyZWFkcysr
OworICB9CisgIHJldHVybiBudGhyZWFkczsKK30KKwogI2VsaWYgR1RFU1RfT1NfUU5YCiAKIC8v
IFJldHVybnMgdGhlIG51bWJlciBvZiB0aHJlYWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nlc3MsIG9y
IDAgdG8gaW5kaWNhdGUgdGhhdApAQCAtMTM4LDcgKzIyNyw3IEBAIHNpemVfdCBHZXRUaHJlYWRD
b3VudCgpIHsKICAgfQogICBwcm9jZnNfaW5mbyBwcm9jZXNzX2luZm87CiAgIGNvbnN0IGludCBz
dGF0dXMgPQotICAgICAgZGV2Y3RsKGZkLCBEQ01EX1BST0NfSU5GTywgJnByb2Nlc3NfaW5mbywg
c2l6ZW9mKHByb2Nlc3NfaW5mbyksIE5VTEwpOworICAgICAgZGV2Y3RsKGZkLCBEQ01EX1BST0Nf
SU5GTywgJnByb2Nlc3NfaW5mbywgc2l6ZW9mKHByb2Nlc3NfaW5mbyksIG51bGxwdHIpOwogICBj
bG9zZShmZCk7CiAgIGlmIChzdGF0dXMgPT0gRU9LKSB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHNpemVfdD4ocHJvY2Vzc19pbmZvLm51bV90aHJlYWRzKTsKQEAgLTE1Miw3ICsyNDEsNyBAQCBz
aXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAgIHN0
cnVjdCBwcm9jZW50cnk2NCBlbnRyeTsKICAgcGlkX3QgcGlkID0gZ2V0cGlkKCk7Ci0gIGludCBz
dGF0dXMgPSBnZXRwcm9jczY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgTlVMTCwgMCwgJnBpZCwg
MSk7CisgIGludCBzdGF0dXMgPSBnZXRwcm9jczY0KCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgbnVs
bHB0ciwgMCwgJnBpZCwgMSk7CiAgIGlmIChzdGF0dXMgPT0gMSkgewogICAgIHJldHVybiBlbnRy
eS5waV90aGNvdW50OwogICB9IGVsc2UgewpAQCAtMTkyLDcgKzI4MSw3IEBAIHNpemVfdCBHZXRU
aHJlYWRDb3VudCgpIHsKICNpZiBHVEVTVF9JU19USFJFQURTQUZFICYmIEdURVNUX09TX1dJTkRP
V1MKIAogdm9pZCBTbGVlcE1pbGxpc2Vjb25kcyhpbnQgbikgewotICA6OlNsZWVwKG4pOworICA6
OlNsZWVwKHN0YXRpY19jYXN0PERXT1JEPihuKSk7CiB9CiAKIEF1dG9IYW5kbGU6OkF1dG9IYW5k
bGUoKQpAQCAtMjMwLDE1ICszMTksMTUgQEAgdm9pZCBBdXRvSGFuZGxlOjpSZXNldChIQU5ETEUg
aGFuZGxlKSB7CiBib29sIEF1dG9IYW5kbGU6OklzQ2xvc2VhYmxlKCkgY29uc3QgewogICAvLyBE
aWZmZXJlbnQgV2luZG93cyBBUElzIG1heSB1c2UgZWl0aGVyIG9mIHRoZXNlIHZhbHVlcyB0byBy
ZXByZXNlbnQgYW4KICAgLy8gaW52YWxpZCBoYW5kbGUuCi0gIHJldHVybiBoYW5kbGVfICE9IE5V
TEwgJiYgaGFuZGxlXyAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyAgcmV0dXJuIGhhbmRsZV8g
IT0gbnVsbHB0ciAmJiBoYW5kbGVfICE9IElOVkFMSURfSEFORExFX1ZBTFVFOwogfQogCiBOb3Rp
ZmljYXRpb246Ok5vdGlmaWNhdGlvbigpCi0gICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChOVUxM
LCAgIC8vIERlZmF1bHQgc2VjdXJpdHkgYXR0cmlidXRlcy4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRSVUUsICAgLy8gRG8gbm90IHJlc2V0IGF1dG9tYXRpY2FsbHkuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSwgIC8vIEluaXRpYWxseSB1bnNldC4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpKSB7ICAvLyBBbm9ueW1vdXMgZXZlbnQuCi0gIEdURVNUX0NI
RUNLXyhldmVudF8uR2V0KCkgIT0gTlVMTCk7CisgICAgOiBldmVudF8oOjpDcmVhdGVFdmVudChu
dWxscHRyLCAgICAgLy8gRGVmYXVsdCBzZWN1cml0eSBhdHRyaWJ1dGVzLgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVFJVRSwgICAgICAgIC8vIERvIG5vdCByZXNldCBhdXRvbWF0aWNhbGx5
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICAgICAgIC8vIEluaXRpYWxseSB1
bnNldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpKSB7ICAvLyBBbm9ueW1v
dXMgZXZlbnQuCisgIEdURVNUX0NIRUNLXyhldmVudF8uR2V0KCkgIT0gbnVsbHB0cik7CiB9CiAK
IHZvaWQgTm90aWZpY2F0aW9uOjpOb3RpZnkoKSB7CkBAIC0yNjEsMTMgKzM1MCwxMCBAQCBNdXRl
eDo6TXV0ZXgoKQogTXV0ZXg6On5NdXRleCgpIHsKICAgLy8gU3RhdGljIG11dGV4ZXMgYXJlIGxl
YWtlZCBpbnRlbnRpb25hbGx5LiBJdCBpcyBub3QgdGhyZWFkLXNhZmUgdG8gdHJ5CiAgIC8vIHRv
IGNsZWFuIHRoZW0gdXAuCi0gIC8vIEZJWE1FOiBTd2l0Y2ggdG8gU2xpbSBSZWFkZXIvV3JpdGVy
IChTUlcpIExvY2tzLCB3aGljaCByZXF1aXJlcwotICAvLyBub3RoaW5nIHRvIGNsZWFuIGl0IHVw
IGJ1dCBpcyBhdmFpbGFibGUgb25seSBvbiBWaXN0YSBhbmQgbGF0ZXIuCi0gIC8vIGh0dHBzOi8v
ZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3dpbmRvd3MvZGVza3RvcC9TeW5jL3NsaW0tcmVhZGVy
LXdyaXRlci0tc3J3LS1sb2NrcwogICBpZiAodHlwZV8gPT0ga0R5bmFtaWMpIHsKICAgICA6OkRl
bGV0ZUNyaXRpY2FsU2VjdGlvbihjcml0aWNhbF9zZWN0aW9uXyk7CiAgICAgZGVsZXRlIGNyaXRp
Y2FsX3NlY3Rpb25fOwotICAgIGNyaXRpY2FsX3NlY3Rpb25fID0gTlVMTDsKKyAgICBjcml0aWNh
bF9zZWN0aW9uXyA9IG51bGxwdHI7CiAgIH0KIH0KIApAQCAtMjk2LDYgKzM4Miw3IEBAIHZvaWQg
TXV0ZXg6OkFzc2VydEhlbGQoKSB7CiAKIG5hbWVzcGFjZSB7CiAKKyNpZmRlZiBfTVNDX1ZFUgog
Ly8gVXNlIHRoZSBSQUlJIGlkaW9tIHRvIGZsYWcgbWVtIGFsbG9jcyB0aGF0IGFyZSBpbnRlbnRp
b25hbGx5IG5ldmVyCiAvLyBkZWFsbG9jYXRlZC4gVGhlIG1vdGl2YXRpb24gaXMgdG8gc2lsZW5j
ZSB0aGUgZmFsc2UgcG9zaXRpdmUgbWVtIGxlYWtzCiAvLyB0aGF0IGFyZSByZXBvcnRlZCBieSB0
aGUgZGVidWcgdmVyc2lvbiBvZiBNUydzIENSVCB3aGljaCBjYW4gb25seSBkZXRlY3QKQEAgLTMw
OCwxOSArMzk1LDE1IEBAIGNsYXNzIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQKIHsKICBwdWJsaWM6
CiAgIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQoKSA6IG9sZF9jcnRkYmdfZmxhZ18oMCkgewotI2lm
ZGVmIF9NU0NfVkVSCiAgICAgb2xkX2NydGRiZ19mbGFnXyA9IF9DcnRTZXREYmdGbGFnKF9DUlRE
QkdfUkVQT1JUX0ZMQUcpOwogICAgIC8vIFNldCBoZWFwIGFsbG9jYXRpb24gYmxvY2sgdHlwZSB0
byBfSUdOT1JFX0JMT0NLIHNvIHRoYXQgTVMgZGVidWcgQ1JUCiAgICAgLy8gZG9lc24ndCByZXBv
cnQgbWVtIGxlYWsgaWYgdGhlcmUncyBubyBtYXRjaGluZyBkZWFsbG9jYXRpb24uCiAgICAgX0Ny
dFNldERiZ0ZsYWcob2xkX2NydGRiZ19mbGFnXyAmIH5fQ1JUREJHX0FMTE9DX01FTV9ERik7Ci0j
ZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9CiAKICAgfk1lbW9yeUlzTm90RGVhbGxvY2F0ZWQoKSB7
Ci0jaWZkZWYgX01TQ19WRVIKICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBfQ1JUREJHX0FM
TE9DX01FTV9ERiBmbGFnCiAgICAgX0NydFNldERiZ0ZsYWcob2xkX2NydGRiZ19mbGFnXyk7Ci0j
ZW5kaWYgIC8vICBfTVNDX1ZFUgogICB9CiAKICBwcml2YXRlOgpAQCAtMzI4LDYgKzQxMSw3IEBA
IGNsYXNzIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FO
RF9BU1NJR05fKE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQpOwogfTsKKyNlbmRpZiAgLy8gX01TQ19W
RVIKIAogfSAgLy8gbmFtZXNwYWNlCiAKQEAgLTM0Myw3ICs0MjcsOSBAQCB2b2lkIE11dGV4OjpU
aHJlYWRTYWZlTGF6eUluaXQoKSB7CiAgICAgICAgIG93bmVyX3RocmVhZF9pZF8gPSAwOwogICAg
ICAgICB7CiAgICAgICAgICAgLy8gVXNlIFJBSUkgdG8gZmxhZyB0aGF0IGZvbGxvd2luZyBtZW0g
YWxsb2MgaXMgbmV2ZXIgZGVhbGxvY2F0ZWQuCisjaWZkZWYgX01TQ19WRVIKICAgICAgICAgICBN
ZW1vcnlJc05vdERlYWxsb2NhdGVkIG1lbW9yeV9pc19ub3RfZGVhbGxvY2F0ZWQ7CisjZW5kaWYg
IC8vIF9NU0NfVkVSCiAgICAgICAgICAgY3JpdGljYWxfc2VjdGlvbl8gPSBuZXcgQ1JJVElDQUxf
U0VDVElPTjsKICAgICAgICAgfQogICAgICAgICA6OkluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24o
Y3JpdGljYWxfc2VjdGlvbl8pOwpAQCAtMzg0LDE3ICs0NzAsMTYgQEAgY2xhc3MgVGhyZWFkV2l0
aFBhcmFtU3VwcG9ydCA6IHB1YmxpYyBUaHJlYWRXaXRoUGFyYW1CYXNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uKiB0aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAg
VGhyZWFkTWFpblBhcmFtKiBwYXJhbSA9IG5ldyBUaHJlYWRNYWluUGFyYW0ocnVubmFibGUsIHRo
cmVhZF9jYW5fc3RhcnQpOwogICAgIERXT1JEIHRocmVhZF9pZDsKLSAgICAvLyBGSVhNRTogQ29u
c2lkZXIgdG8gdXNlIF9iZWdpbnRocmVhZGV4IGluc3RlYWQuCiAgICAgSEFORExFIHRocmVhZF9o
YW5kbGUgPSA6OkNyZWF0ZVRocmVhZCgKLSAgICAgICAgTlVMTCwgICAgLy8gRGVmYXVsdCBzZWN1
cml0eS4KLSAgICAgICAgMCwgICAgICAgLy8gRGVmYXVsdCBzdGFjayBzaXplLgorICAgICAgICBu
dWxscHRyLCAgLy8gRGVmYXVsdCBzZWN1cml0eS4KKyAgICAgICAgMCwgICAgICAgIC8vIERlZmF1
bHQgc3RhY2sgc2l6ZS4KICAgICAgICAgJlRocmVhZFdpdGhQYXJhbVN1cHBvcnQ6OlRocmVhZE1h
aW4sCi0gICAgICAgIHBhcmFtLCAgIC8vIFBhcmFtZXRlciB0byBUaHJlYWRNYWluU3RhdGljCi0g
ICAgICAgIDB4MCwgICAgIC8vIERlZmF1bHQgY3JlYXRpb24gZmxhZ3MuCisgICAgICAgIHBhcmFt
LCAgICAgICAgLy8gUGFyYW1ldGVyIHRvIFRocmVhZE1haW5TdGF0aWMKKyAgICAgICAgMHgwLCAg
ICAgICAgICAvLyBEZWZhdWx0IGNyZWF0aW9uIGZsYWdzLgogICAgICAgICAmdGhyZWFkX2lkKTsg
IC8vIE5lZWQgYSB2YWxpZCBwb2ludGVyIGZvciB0aGUgY2FsbCB0byB3b3JrIHVuZGVyIFdpbjk4
LgotICAgIEdURVNUX0NIRUNLXyh0aHJlYWRfaGFuZGxlICE9IE5VTEwpIDw8ICJDcmVhdGVUaHJl
YWQgZmFpbGVkIHdpdGggZXJyb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IDo6R2V0TGFzdEVycm9yKCkgPDwgIi4iOwotICAgIGlmICh0aHJlYWRfaGFuZGxl
ID09IE5VTEwpIHsKKyAgICBHVEVTVF9DSEVDS18odGhyZWFkX2hhbmRsZSAhPSBudWxscHRyKQor
ICAgICAgICA8PCAiQ3JlYXRlVGhyZWFkIGZhaWxlZCB3aXRoIGVycm9yICIgPDwgOjpHZXRMYXN0
RXJyb3IoKSA8PCAiLiI7CisgICAgaWYgKHRocmVhZF9oYW5kbGUgPT0gbnVsbHB0cikgewogICAg
ICAgZGVsZXRlIHBhcmFtOwogICAgIH0KICAgICByZXR1cm4gdGhyZWFkX2hhbmRsZTsKQEAgLTQw
NiwxNSArNDkxLDE1IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJsaWMgVGhy
ZWFkV2l0aFBhcmFtQmFzZSB7CiAgICAgICAgIDogcnVubmFibGVfKHJ1bm5hYmxlKSwKICAgICAg
ICAgICB0aHJlYWRfY2FuX3N0YXJ0Xyh0aHJlYWRfY2FuX3N0YXJ0KSB7CiAgICAgfQotICAgIHNj
b3BlZF9wdHI8UnVubmFibGU+IHJ1bm5hYmxlXzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVubmFi
bGU+IHJ1bm5hYmxlXzsKICAgICAvLyBEb2VzIG5vdCBvd24uCiAgICAgTm90aWZpY2F0aW9uKiB0
aHJlYWRfY2FuX3N0YXJ0XzsKICAgfTsKIAogICBzdGF0aWMgRFdPUkQgV0lOQVBJIFRocmVhZE1h
aW4odm9pZCogcHRyKSB7CiAgICAgLy8gVHJhbnNmZXJzIG93bmVyc2hpcC4KLSAgICBzY29wZWRf
cHRyPFRocmVhZE1haW5QYXJhbT4gcGFyYW0oc3RhdGljX2Nhc3Q8VGhyZWFkTWFpblBhcmFtKj4o
cHRyKSk7Ci0gICAgaWYgKHBhcmFtLT50aHJlYWRfY2FuX3N0YXJ0XyAhPSBOVUxMKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxUaHJlYWRNYWluUGFyYW0+IHBhcmFtKHN0YXRpY19jYXN0PFRocmVhZE1h
aW5QYXJhbSo+KHB0cikpOworICAgIGlmIChwYXJhbS0+dGhyZWFkX2Nhbl9zdGFydF8gIT0gbnVs
bHB0cikKICAgICAgIHBhcmFtLT50aHJlYWRfY2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlv
bigpOwogICAgIHBhcmFtLT5ydW5uYWJsZV8tPlJ1bigpOwogICAgIHJldHVybiAwOwpAQCAtNDUz
LDYgKzUzOCw5IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsKICAgLy8gUmV0dXJu
cyBhIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRocmVhZCBmcm9tIG90
aGVyIHRocmVhZHMuCiAgIHN0YXRpYyBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZSogR2V0VmFs
dWVPbkN1cnJlbnRUaHJlYWQoCiAgICAgICBjb25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9s
b2NhbF9pbnN0YW5jZSkgeworI2lmZGVmIF9NU0NfVkVSCisgICAgTWVtb3J5SXNOb3REZWFsbG9j
YXRlZCBtZW1vcnlfaXNfbm90X2RlYWxsb2NhdGVkOworI2VuZGlmICAvLyBfTVNDX1ZFUgogICAg
IERXT1JEIGN1cnJlbnRfdGhyZWFkID0gOjpHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBNdXRl
eExvY2sgbG9jaygmbXV0ZXhfKTsKICAgICBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKiBjb25zdCB0
aHJlYWRfdG9fdGhyZWFkX2xvY2FscyA9CkBAIC00NzIsNyArNTYwLDcgQEAgY2xhc3MgVGhyZWFk
TG9jYWxSZWdpc3RyeUltcGwgewogICAgICAgICAgIHRocmVhZF9sb2NhbF92YWx1ZXMKICAgICAg
ICAgICAgICAgLmluc2VydChzdGQ6Om1ha2VfcGFpcigKICAgICAgICAgICAgICAgICAgIHRocmVh
ZF9sb2NhbF9pbnN0YW5jZSwKLSAgICAgICAgICAgICAgICAgIGxpbmtlZF9wdHI8VGhyZWFkTG9j
YWxWYWx1ZUhvbGRlckJhc2U+KAorICAgICAgICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPFRo
cmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPigKICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRf
bG9jYWxfaW5zdGFuY2UtPk5ld1ZhbHVlRm9yQ3VycmVudFRocmVhZCgpKSkpCiAgICAgICAgICAg
ICAgIC5maXJzdDsKICAgICB9CkBAIC00ODEsNyArNTY5LDcgQEAgY2xhc3MgVGhyZWFkTG9jYWxS
ZWdpc3RyeUltcGwgewogCiAgIHN0YXRpYyB2b2lkIE9uVGhyZWFkTG9jYWxEZXN0cm95ZWQoCiAg
ICAgICBjb25zdCBUaHJlYWRMb2NhbEJhc2UqIHRocmVhZF9sb2NhbF9pbnN0YW5jZSkgewotICAg
IHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFs
dWVfaG9sZGVyczsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxW
YWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0aGUgVGhy
ZWFkTG9jYWxWYWx1ZXMgZGF0YSBzdHJ1Y3R1cmUgd2hpbGUgaG9sZGluZyB0aGUgbG9jaywgYnV0
CiAgICAgLy8gZGVmZXIgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9s
ZGVyQmFzZXMuCiAgICAgewpAQCAtNTA5LDcgKzU5Nyw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVn
aXN0cnlJbXBsIHsKIAogICBzdGF0aWMgdm9pZCBPblRocmVhZEV4aXQoRFdPUkQgdGhyZWFkX2lk
KSB7CiAgICAgR1RFU1RfQ0hFQ0tfKHRocmVhZF9pZCAhPSAwKSA8PCA6OkdldExhc3RFcnJvcigp
OwotICAgIHN0ZDo6dmVjdG9yPGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2U+
ID4gdmFsdWVfaG9sZGVyczsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8VGhyZWFk
TG9jYWxWYWx1ZUhvbGRlckJhc2U+ID4gdmFsdWVfaG9sZGVyczsKICAgICAvLyBDbGVhbiB1cCB0
aGUgVGhyZWFkSWRUb1RocmVhZExvY2FscyBkYXRhIHN0cnVjdHVyZSB3aGlsZSBob2xkaW5nIHRo
ZQogICAgIC8vIGxvY2ssIGJ1dCBkZWZlciB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFRocmVhZExv
Y2FsVmFsdWVIb2xkZXJCYXNlcy4KICAgICB7CkBAIC01MzYsNyArNjI0LDggQEAgY2xhc3MgVGhy
ZWFkTG9jYWxSZWdpc3RyeUltcGwgewogIHByaXZhdGU6CiAgIC8vIEluIGEgcGFydGljdWxhciB0
aHJlYWQsIG1hcHMgYSBUaHJlYWRMb2NhbCBvYmplY3QgdG8gaXRzIHZhbHVlLgogICB0eXBlZGVm
IHN0ZDo6bWFwPGNvbnN0IFRocmVhZExvY2FsQmFzZSosCi0gICAgICAgICAgICAgICAgICAgbGlu
a2VkX3B0cjxUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZT4gPiBUaHJlYWRMb2NhbFZhbHVlczsK
KyAgICAgICAgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8VGhyZWFkTG9jYWxWYWx1ZUhvbGRl
ckJhc2U+ID4KKyAgICAgIFRocmVhZExvY2FsVmFsdWVzOwogICAvLyBTdG9yZXMgYWxsIFRocmVh
ZElkVG9UaHJlYWRMb2NhbHMgaGF2aW5nIHZhbHVlcyBpbiBhIHRocmVhZCwgaW5kZXhlZCBieQog
ICAvLyB0aHJlYWQncyBJRC4KICAgdHlwZWRlZiBzdGQ6Om1hcDxEV09SRCwgVGhyZWFkTG9jYWxW
YWx1ZXM+IFRocmVhZElkVG9UaHJlYWRMb2NhbHM7CkBAIC01NTEsMTggKzY0MCwxNyBAQCBjbGFz
cyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbCB7CiAgICAgSEFORExFIHRocmVhZCA9IDo6T3BlblRo
cmVhZChTWU5DSFJPTklaRSB8IFRIUkVBRF9RVUVSWV9JTkZPUk1BVElPTiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyZWFkX2lkKTsKLSAgICBHVEVTVF9DSEVDS18odGhyZWFkICE9IE5VTEwpOworICAg
IEdURVNUX0NIRUNLXyh0aHJlYWQgIT0gbnVsbHB0cik7CiAgICAgLy8gV2UgbmVlZCB0byBwYXNz
IGEgdmFsaWQgdGhyZWFkIElEIHBvaW50ZXIgaW50byBDcmVhdGVUaHJlYWQgZm9yIGl0CiAgICAg
Ly8gdG8gd29yayBjb3JyZWN0bHkgdW5kZXIgV2luOTguCiAgICAgRFdPUkQgd2F0Y2hlcl90aHJl
YWRfaWQ7CiAgICAgSEFORExFIHdhdGNoZXJfdGhyZWFkID0gOjpDcmVhdGVUaHJlYWQoCi0gICAg
ICAgIE5VTEwsICAgLy8gRGVmYXVsdCBzZWN1cml0eS4KLSAgICAgICAgMCwgICAgICAvLyBEZWZh
dWx0IHN0YWNrIHNpemUKKyAgICAgICAgbnVsbHB0ciwgIC8vIERlZmF1bHQgc2VjdXJpdHkuCisg
ICAgICAgIDAsICAgICAgICAvLyBEZWZhdWx0IHN0YWNrIHNpemUKICAgICAgICAgJlRocmVhZExv
Y2FsUmVnaXN0cnlJbXBsOjpXYXRjaGVyVGhyZWFkRnVuYywKICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDxMUFZPSUQ+KG5ldyBUaHJlYWRJZEFuZEhhbmRsZSh0aHJlYWRfaWQsIHRocmVhZCkpLAot
ICAgICAgICBDUkVBVEVfU1VTUEVOREVELAotICAgICAgICAmd2F0Y2hlcl90aHJlYWRfaWQpOwot
ICAgIEdURVNUX0NIRUNLXyh3YXRjaGVyX3RocmVhZCAhPSBOVUxMKTsKKyAgICAgICAgQ1JFQVRF
X1NVU1BFTkRFRCwgJndhdGNoZXJfdGhyZWFkX2lkKTsKKyAgICBHVEVTVF9DSEVDS18od2F0Y2hl
cl90aHJlYWQgIT0gbnVsbHB0cik7CiAgICAgLy8gR2l2ZSB0aGUgd2F0Y2hlciB0aHJlYWQgdGhl
IHNhbWUgcHJpb3JpdHkgYXMgb3VycyB0byBhdm9pZCBiZWluZwogICAgIC8vIGJsb2NrZWQgYnkg
aXQuCiAgICAgOjpTZXRUaHJlYWRQcmlvcml0eSh3YXRjaGVyX3RocmVhZCwKQEAgLTU4Nyw3ICs2
NzUsOSBAQCBjbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbCB7CiAgIC8vIFJldHVybnMgbWFw
IG9mIHRocmVhZCBsb2NhbCBpbnN0YW5jZXMuCiAgIHN0YXRpYyBUaHJlYWRJZFRvVGhyZWFkTG9j
YWxzKiBHZXRUaHJlYWRMb2NhbHNNYXBMb2NrZWQoKSB7CiAgICAgbXV0ZXhfLkFzc2VydEhlbGQo
KTsKKyNpZmRlZiBfTVNDX1ZFUgogICAgIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQgbWVtb3J5X2lz
X25vdF9kZWFsbG9jYXRlZDsKKyNlbmRpZiAgLy8gX01TQ19WRVIKICAgICBzdGF0aWMgVGhyZWFk
SWRUb1RocmVhZExvY2FscyogbWFwID0gbmV3IFRocmVhZElkVG9UaHJlYWRMb2NhbHMoKTsKICAg
ICByZXR1cm4gbWFwOwogICB9CkBAIC02MzAsNyArNzIwLDcgQEAgUkU6On5SRSgpIHsKICAgZnJl
ZShjb25zdF9jYXN0PGNoYXIqPihwYXR0ZXJuXykpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZm
IHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRoZSBlbnRpcmUgc3RyLgorLy8gUmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIHRoZSBl
bnRpcmUgc3RyLgogYm9vbCBSRTo6RnVsbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUm
IHJlKSB7CiAgIGlmICghcmUuaXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7CiAKQEAgLTYzOCw4ICs3
MjgsOCBAQCBib29sIFJFOjpGdWxsTWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUp
IHsKICAgcmV0dXJuIHJlZ2V4ZWMoJnJlLmZ1bGxfcmVnZXhfLCBzdHIsIDEsICZtYXRjaCwgMCkg
PT0gMDsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0
Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIKLS8vIChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCisvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMg
YSBzdWJzdHJpbmcgb2YKKy8vIHN0ciAoaW5jbHVkaW5nIHN0ciBpdHNlbGYpLgogYm9vbCBSRTo6
UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIGlmICghcmUu
aXNfdmFsaWRfKSByZXR1cm4gZmFsc2U7CiAKQEAgLTY3OSwxNCArNzY5LDE0IEBAIHZvaWQgUkU6
OkluaXQoY29uc3QgY2hhciogcmVnZXgpIHsKIAogI2VsaWYgR1RFU1RfVVNFU19TSU1QTEVfUkUK
IAotLy8gUmV0dXJucyB0cnVlIGlmZiBjaCBhcHBlYXJzIGFueXdoZXJlIGluIHN0ciAoZXhjbHVk
aW5nIHRoZQorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIGNoIGFwcGVhcnMgYW55d2hl
cmUgaW4gc3RyIChleGNsdWRpbmcgdGhlCiAvLyB0ZXJtaW5hdGluZyAnXDAnIGNoYXJhY3Rlciku
CiBib29sIElzSW5TZXQoY2hhciBjaCwgY29uc3QgY2hhciogc3RyKSB7Ci0gIHJldHVybiBjaCAh
PSAnXDAnICYmIHN0cmNocihzdHIsIGNoKSAhPSBOVUxMOworICByZXR1cm4gY2ggIT0gJ1wwJyAm
JiBzdHJjaHIoc3RyLCBjaCkgIT0gbnVsbHB0cjsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBj
aCBiZWxvbmdzIHRvIHRoZSBnaXZlbiBjbGFzc2lmaWNhdGlvbi4gIFVubGlrZQotLy8gc2ltaWxh
ciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgY2ggYmVsb25ncyB0byB0aGUgZ2l2ZW4gY2xh
c3NpZmljYXRpb24uCisvLyBVbmxpa2Ugc2ltaWxhciBmdW5jdGlvbnMgaW4gPGN0eXBlLmg+LCB0
aGVzZSBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlCiAvLyBjdXJyZW50IGxvY2FsZS4KIGJvb2wgSXNB
c2NpaURpZ2l0KGNoYXIgY2gpIHsgcmV0dXJuICcwJyA8PSBjaCAmJiBjaCA8PSAnOSc7IH0KIGJv
b2wgSXNBc2NpaVB1bmN0KGNoYXIgY2gpIHsKQEAgLTY5OSwxMyArNzg5LDEzIEBAIGJvb2wgSXNB
c2NpaVdvcmRDaGFyKGNoYXIgY2gpIHsKICAgICAgICgnMCcgPD0gY2ggJiYgY2ggPD0gJzknKSB8
fCBjaCA9PSAnXyc7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgIlxcYyIgaXMgYSBzdXBwb3J0
ZWQgZXNjYXBlIHNlcXVlbmNlLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmICJcXGMi
IGlzIGEgc3VwcG9ydGVkIGVzY2FwZSBzZXF1ZW5jZS4KIGJvb2wgSXNWYWxpZEVzY2FwZShjaGFy
IGMpIHsKICAgcmV0dXJuIChJc0FzY2lpUHVuY3QoYykgfHwgSXNJblNldChjLCAiZERmbnJzU3R2
d1ciKSk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVuIGF0b20gKHNwZWNpZmll
ZCBieSBlc2NhcGVkIGFuZCBwYXR0ZXJuKQotLy8gbWF0Y2hlcyBjaC4gIFRoZSByZXN1bHQgaXMg
dW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlzIGludmFsaWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIGdpdmVuIGF0b20gKHNwZWNpZmllZCBieSBlc2NhcGVkIGFuZAorLy8gcGF0
dGVybikgbWF0Y2hlcyBjaC4gIFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZSBhdG9tIGlz
IGludmFsaWQuCiBib29sIEF0b21NYXRjaGVzQ2hhcihib29sIGVzY2FwZWQsIGNoYXIgcGF0dGVy
bl9jaGFyLCBjaGFyIGNoKSB7CiAgIGlmIChlc2NhcGVkKSB7ICAvLyAiXFxwIiB3aGVyZSBwIGlz
IHBhdHRlcm5fY2hhci4KICAgICBzd2l0Y2ggKHBhdHRlcm5fY2hhcikgewpAQCAtNzM2LDE3ICs4
MjYsMTQgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFJlZ2V4U3ludGF4RXJyb3IoY29uc3Qg
Y2hhciogcmVnZXgsIGludCBpbmRleCkgewogLy8gR2VuZXJhdGVzIG5vbi1mYXRhbCBmYWlsdXJl
cyBhbmQgcmV0dXJucyBmYWxzZSBpZiByZWdleCBpcyBpbnZhbGlkOwogLy8gb3RoZXJ3aXNlIHJl
dHVybnMgdHJ1ZS4KIGJvb2wgVmFsaWRhdGVSZWdleChjb25zdCBjaGFyKiByZWdleCkgewotICBp
ZiAocmVnZXggPT0gTlVMTCkgewotICAgIC8vIEZJWE1FOiBmaXggdGhlIHNvdXJjZSBmaWxlIGxv
Y2F0aW9uIGluIHRoZQotICAgIC8vIGFzc2VydGlvbiBmYWlsdXJlcyB0byBtYXRjaCB3aGVyZSB0
aGUgcmVnZXggaXMgdXNlZCBpbiB1c2VyCi0gICAgLy8gY29kZS4KKyAgaWYgKHJlZ2V4ID09IG51
bGxwdHIpIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJOVUxMIGlzIG5vdCBhIHZhbGlkIHNpbXBs
ZSByZWd1bGFyIGV4cHJlc3Npb24uIjsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIAogICBib29s
IGlzX3ZhbGlkID0gdHJ1ZTsKIAotICAvLyBUcnVlIGlmZiA/LCAqLCBvciArIGNhbiBmb2xsb3cg
dGhlIHByZXZpb3VzIGF0b20uCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgPywgKiwgb3IgKyBj
YW4gZm9sbG93IHRoZSBwcmV2aW91cyBhdG9tLgogICBib29sIHByZXZfcmVwZWF0YWJsZSA9IGZh
bHNlOwogICBmb3IgKGludCBpID0gMDsgcmVnZXhbaV07IGkrKykgewogICAgIGlmIChyZWdleFtp
XSA9PSAnXFwnKSB7ICAvLyBBbiBlc2NhcGUgc2VxdWVuY2UKQEAgLTgyMiw4ICs5MDksOCBAQCBi
b29sIE1hdGNoUmVwZXRpdGlvbkFuZFJlZ2V4QXRIZWFkKAogICByZXR1cm4gZmFsc2U7CiB9CiAK
LS8vIFJldHVybnMgdHJ1ZSBpZmYgcmVnZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIuICByZWdl
eCBtdXN0IGJlIGEKLS8vIHZhbGlkIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIG5vdCBz
dGFydCB3aXRoICJeIiwgb3IgdGhlCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVn
ZXggbWF0Y2hlcyBhIHByZWZpeCBvZiBzdHIuIHJlZ2V4IG11c3QKKy8vIGJlIGEgdmFsaWQgc2lt
cGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgbm90IHN0YXJ0IHdpdGggIl4iLCBvciB0aGUKIC8v
IHJlc3VsdCBpcyB1bmRlZmluZWQuCiBib29sIE1hdGNoUmVnZXhBdEhlYWQoY29uc3QgY2hhciog
cmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewogICBpZiAoKnJlZ2V4ID09ICdcMCcpICAvLyBBbiBl
bXB0eSByZWdleCBtYXRjaGVzIGEgcHJlZml4IG9mIGFueXRoaW5nLgpAQCAtODUzLDggKzk0MCw4
IEBAIGJvb2wgTWF0Y2hSZWdleEF0SGVhZChjb25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciog
c3RyKSB7CiAgIH0KIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiByZWdleCBtYXRjaGVzIGFueSBz
dWJzdHJpbmcgb2Ygc3RyLiAgcmVnZXggbXVzdCBiZQotLy8gYSB2YWxpZCBzaW1wbGUgcmVndWxh
ciBleHByZXNzaW9uLCBvciB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KKy8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiByZWdleCBtYXRjaGVzIGFueSBzdWJzdHJpbmcgb2Ygc3RyLiAgcmVn
ZXggbXVzdAorLy8gYmUgYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uLCBvciB0aGUg
cmVzdWx0IGlzIHVuZGVmaW5lZC4KIC8vCiAvLyBUaGUgYWxnb3JpdGhtIGlzIHJlY3Vyc2l2ZSwg
YnV0IHRoZSByZWN1cnNpb24gZGVwdGggZG9lc24ndCBleGNlZWQKIC8vIHRoZSByZWdleCBsZW5n
dGgsIHNvIHdlIHdvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgcnVubmluZyBvdXQgb2YKQEAgLTg2
Miw4ICs5NDksNyBAQCBib29sIE1hdGNoUmVnZXhBdEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNv
bnN0IGNoYXIqIHN0cikgewogLy8gZXhwb25lbnRpYWwgd2l0aCByZXNwZWN0IHRvIHRoZSByZWdl
eCBsZW5ndGggKyB0aGUgc3RyaW5nIGxlbmd0aCwKIC8vIGJ1dCB1c3VhbGx5IGl0J3MgbXVzdCBm
YXN0ZXIgKG9mdGVuIGNsb3NlIHRvIGxpbmVhcikuCiBib29sIE1hdGNoUmVnZXhBbnl3aGVyZShj
b25zdCBjaGFyKiByZWdleCwgY29uc3QgY2hhciogc3RyKSB7Ci0gIGlmIChyZWdleCA9PSBOVUxM
IHx8IHN0ciA9PSBOVUxMKQotICAgIHJldHVybiBmYWxzZTsKKyAgaWYgKHJlZ2V4ID09IG51bGxw
dHIgfHwgc3RyID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICBpZiAoKnJlZ2V4ID09ICde
JykKICAgICByZXR1cm4gTWF0Y2hSZWdleEF0SGVhZChyZWdleCArIDEsIHN0cik7CkBAIC04ODMs
MjEgKzk2OSwyMSBAQCBSRTo6flJFKCkgewogICBmcmVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGZ1bGxf
cGF0dGVybl8pKTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24g
cmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KIGJvb2wgUkU6
OkZ1bGxNYXRjaChjb25zdCBjaGFyKiBzdHIsIGNvbnN0IFJFJiByZSkgewogICByZXR1cm4gcmUu
aXNfdmFsaWRfICYmIE1hdGNoUmVnZXhBbnl3aGVyZShyZS5mdWxsX3BhdHRlcm5fLCBzdHIpOwog
fQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIGEg
c3Vic3RyaW5nIG9mIHN0cgotLy8gKGluY2x1ZGluZyBzdHIgaXRzZWxmKS4KKy8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0
cmluZyBvZgorLy8gc3RyIChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCiBib29sIFJFOjpQYXJ0aWFs
TWF0Y2goY29uc3QgY2hhciogc3RyLCBjb25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlLmlzX3Zh
bGlkXyAmJiBNYXRjaFJlZ2V4QW55d2hlcmUocmUucGF0dGVybl8sIHN0cik7CiB9CiAKIC8vIElu
aXRpYWxpemVzIGFuIFJFIGZyb20gaXRzIHN0cmluZyByZXByZXNlbnRhdGlvbi4KIHZvaWQgUkU6
OkluaXQoY29uc3QgY2hhciogcmVnZXgpIHsKLSAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5fID0g
TlVMTDsKLSAgaWYgKHJlZ2V4ICE9IE5VTEwpIHsKKyAgcGF0dGVybl8gPSBmdWxsX3BhdHRlcm5f
ID0gbnVsbHB0cjsKKyAgaWYgKHJlZ2V4ICE9IG51bGxwdHIpIHsKICAgICBwYXR0ZXJuXyA9IHBv
c2l4OjpTdHJEdXAocmVnZXgpOwogICB9CiAKQEAgLTkzNSw3ICsxMDIxLDcgQEAgY29uc3QgY2hh
ciBrVW5rbm93bkZpbGVbXSA9ICJ1bmtub3duIGZpbGUiOwogLy8gRm9ybWF0cyBhIHNvdXJjZSBm
aWxlIHBhdGggYW5kIGEgbGluZSBudW1iZXIgYXMgdGhleSB3b3VsZCBhcHBlYXIKIC8vIGluIGFu
IGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgY29tcGlsZXIgdXNlZCB0byBjb21waWxlIHRoaXMgY29k
ZS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBGb3JtYXRGaWxlTG9jYXRpb24oY29uc3QgY2hh
ciogZmlsZSwgaW50IGxpbmUpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUg
PT0gTlVMTCA/IGtVbmtub3duRmlsZSA6IGZpbGUpOworICBjb25zdCBzdGQ6OnN0cmluZyBmaWxl
X25hbWUoZmlsZSA9PSBudWxscHRyID8ga1Vua25vd25GaWxlIDogZmlsZSk7CiAKICAgaWYgKGxp
bmUgPCAwKSB7CiAgICAgcmV0dXJuIGZpbGVfbmFtZSArICI6IjsKQEAgLTk1NCw3ICsxMDQwLDcg
QEAgR1RFU1RfQVBJXyA6OnN0ZDo6c3RyaW5nIEZvcm1hdEZpbGVMb2NhdGlvbihjb25zdCBjaGFy
KiBmaWxlLCBpbnQgbGluZSkgewogLy8gdG8gdGhlIGZpbGUgbG9jYXRpb24gaXQgcHJvZHVjZXMs
IHVubGlrZSBGb3JtYXRGaWxlTG9jYXRpb24oKS4KIEdURVNUX0FQSV8gOjpzdGQ6OnN0cmluZyBG
b3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0aW9uKAogICAgIGNvbnN0IGNoYXIqIGZp
bGUsIGludCBsaW5lKSB7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IE5V
TEwgPyBrVW5rbm93bkZpbGUgOiBmaWxlKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1l
KGZpbGUgPT0gbnVsbHB0ciA/IGtVbmtub3duRmlsZSA6IGZpbGUpOwogCiAgIGlmIChsaW5lIDwg
MCkKICAgICByZXR1cm4gZmlsZV9uYW1lOwpAQCAtMTAyMSwyMCArMTEwNywyMiBAQCBjbGFzcyBD
YXB0dXJlZFN0cmVhbSB7CiAgICAgLy8gY29kZSBhcyBwYXJ0IG9mIGEgcmVndWxhciBzdGFuZGFs
b25lIGV4ZWN1dGFibGUsIHdoaWNoIGRvZXNuJ3QKICAgICAvLyBydW4gaW4gYSBEYWx2aWsgcHJv
Y2VzcyAoZS5nLiB3aGVuIHJ1bm5pbmcgaXQgdGhyb3VnaCAnYWRiIHNoZWxsJykuCiAgICAgLy8K
LSAgICAvLyBUaGUgbG9jYXRpb24gL3NkY2FyZCBpcyBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20g
bmF0aXZlIGNvZGUKLSAgICAvLyBhbmQgaXMgdGhlIG9ubHkgbG9jYXRpb24gKHVub2ZmaWNpYWxs
eSkgc3VwcG9ydGVkIGJ5IHRoZSBBbmRyb2lkCi0gICAgLy8gdGVhbS4gSXQncyBnZW5lcmFsbHkg
YSBzeW1saW5rIHRvIHRoZSByZWFsIFNEIENhcmQgbW91bnQgcG9pbnQKLSAgICAvLyB3aGljaCBj
YW4gYmUgL21udC9zZGNhcmQsIC9tbnQvc2RjYXJkMCwgL3N5c3RlbS9tZWRpYS9zZGNhcmQsIG9y
Ci0gICAgLy8gb3RoZXIgT0VNLWN1c3RvbWl6ZWQgbG9jYXRpb25zLiBOZXZlciByZWx5IG9uIHRo
ZXNlLCBhbmQgYWx3YXlzCi0gICAgLy8gdXNlIC9zZGNhcmQuCi0gICAgY2hhciBuYW1lX3RlbXBs
YXRlW10gPSAiL3NkY2FyZC9ndGVzdF9jYXB0dXJlZF9zdHJlYW0uWFhYWFhYIjsKKyAgICAvLyBU
aGUgbG9jYXRpb24gL2RhdGEvbG9jYWwvdG1wIGlzIGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBu
YXRpdmUgY29kZS4KKyAgICAvLyAnL3NkY2FyZCcgYW5kIG90aGVyIHZhcmlhbnRzIGNhbm5vdCBi
ZSByZWxpZWQgb24sIGFzIHRoZXkgYXJlIG5vdAorICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgbW91
bnRlZCwgb3IgbWF5IGhhdmUgYSBkZWxheSBpbiBtb3VudGluZy4KKyAgICBjaGFyIG5hbWVfdGVt
cGxhdGVbXSA9ICIvZGF0YS9sb2NhbC90bXAvZ3Rlc3RfY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7
CiAjICBlbHNlCiAgICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL3RtcC9jYXB0dXJlZF9zdHJl
YW0uWFhYWFhYIjsKICMgIGVuZGlmICAvLyBHVEVTVF9PU19MSU5VWF9BTkRST0lECiAgICAgY29u
c3QgaW50IGNhcHR1cmVkX2ZkID0gbWtzdGVtcChuYW1lX3RlbXBsYXRlKTsKKyAgICBpZiAoY2Fw
dHVyZWRfZmQgPT0gLTEpIHsKKyAgICAgIEdURVNUX0xPR18oV0FSTklORykKKyAgICAgICAgICA8
PCAiRmFpbGVkIHRvIGNyZWF0ZSB0bXAgZmlsZSAiIDw8IG5hbWVfdGVtcGxhdGUKKyAgICAgICAg
ICA8PCAiIGZvciB0ZXN0OyBkb2VzIHRoZSB0ZXN0IGhhdmUgYWNjZXNzIHRvIHRoZSAvdG1wIGRp
cmVjdG9yeT8iOworICAgIH0KICAgICBmaWxlbmFtZV8gPSBuYW1lX3RlbXBsYXRlOwogIyBlbmRp
ZiAgLy8gR1RFU1RfT1NfV0lORE9XUwotICAgIGZmbHVzaChOVUxMKTsKKyAgICBmZmx1c2gobnVs
bHB0cik7CiAgICAgZHVwMihjYXB0dXJlZF9mZCwgZmRfKTsKICAgICBjbG9zZShjYXB0dXJlZF9m
ZCk7CiAgIH0KQEAgLTEwNDYsMTMgKzExMzQsMTcgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewog
ICBzdGQ6OnN0cmluZyBHZXRDYXB0dXJlZFN0cmluZygpIHsKICAgICBpZiAodW5jYXB0dXJlZF9m
ZF8gIT0gLTEpIHsKICAgICAgIC8vIFJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdHJlYW0uCi0gICAg
ICBmZmx1c2goTlVMTCk7CisgICAgICBmZmx1c2gobnVsbHB0cik7CiAgICAgICBkdXAyKHVuY2Fw
dHVyZWRfZmRfLCBmZF8pOwogICAgICAgY2xvc2UodW5jYXB0dXJlZF9mZF8pOwogICAgICAgdW5j
YXB0dXJlZF9mZF8gPSAtMTsKICAgICB9CiAKICAgICBGSUxFKiBjb25zdCBmaWxlID0gcG9zaXg6
OkZPcGVuKGZpbGVuYW1lXy5jX3N0cigpLCAiciIpOworICAgIGlmIChmaWxlID09IG51bGxwdHIp
IHsKKyAgICAgIEdURVNUX0xPR18oRkFUQUwpIDw8ICJGYWlsZWQgdG8gb3BlbiB0bXAgZmlsZSAi
IDw8IGZpbGVuYW1lXworICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBmb3IgY2FwdHVyaW5n
IHN0cmVhbS4iOworICAgIH0KICAgICBjb25zdCBzdGQ6OnN0cmluZyBjb250ZW50ID0gUmVhZEVu
dGlyZUZpbGUoZmlsZSk7CiAgICAgcG9zaXg6OkZDbG9zZShmaWxlKTsKICAgICByZXR1cm4gY29u
dGVudDsKQEAgLTEwNjksMTMgKzExNjEsMTMgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogCiBH
VEVTVF9ESVNBQkxFX01TQ19ERVBSRUNBVEVEX1BPUF8oKQogCi1zdGF0aWMgQ2FwdHVyZWRTdHJl
YW0qIGdfY2FwdHVyZWRfc3RkZXJyID0gTlVMTDsKLXN0YXRpYyBDYXB0dXJlZFN0cmVhbSogZ19j
YXB0dXJlZF9zdGRvdXQgPSBOVUxMOworc3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVk
X3N0ZGVyciA9IG51bGxwdHI7CitzdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rk
b3V0ID0gbnVsbHB0cjsKIAogLy8gU3RhcnRzIGNhcHR1cmluZyBhbiBvdXRwdXQgc3RyZWFtIChz
dGRvdXQvc3RkZXJyKS4KIHN0YXRpYyB2b2lkIENhcHR1cmVTdHJlYW0oaW50IGZkLCBjb25zdCBj
aGFyKiBzdHJlYW1fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZWRTdHJl
YW0qKiBzdHJlYW0pIHsKLSAgaWYgKCpzdHJlYW0gIT0gTlVMTCkgeworICBpZiAoKnN0cmVhbSAh
PSBudWxscHRyKSB7CiAgICAgR1RFU1RfTE9HXyhGQVRBTCkgPDwgIk9ubHkgb25lICIgPDwgc3Ry
ZWFtX25hbWUKICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGNhcHR1cmVyIGNhbiBleGlzdCBh
dCBhIHRpbWUuIjsKICAgfQpAQCAtMTA4Nyw3ICsxMTc5LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5n
IEdldENhcHR1cmVkU3RyZWFtKENhcHR1cmVkU3RyZWFtKiogY2FwdHVyZWRfc3RyZWFtKSB7CiAg
IGNvbnN0IHN0ZDo6c3RyaW5nIGNvbnRlbnQgPSAoKmNhcHR1cmVkX3N0cmVhbSktPkdldENhcHR1
cmVkU3RyaW5nKCk7CiAKICAgZGVsZXRlICpjYXB0dXJlZF9zdHJlYW07Ci0gICpjYXB0dXJlZF9z
dHJlYW0gPSBOVUxMOworICAqY2FwdHVyZWRfc3RyZWFtID0gbnVsbHB0cjsKIAogICByZXR1cm4g
Y29udGVudDsKIH0KQEAgLTExNDYsMTAgKzEyMzgsMTEgQEAgc3RkOjpzdHJpbmcgUmVhZEVudGly
ZUZpbGUoRklMRSogZmlsZSkgewogfQogCiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKLXN0YXRp
YyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9
IE5VTEw7ICAvLyBPd25lZC4KK3N0YXRpYyBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4q
IGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9CisgICAgbnVsbHB0cjsgIC8vIE93bmVkLgogCiBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0SW5qZWN0YWJsZUFyZ3ZzKCkgewotICBpZiAoZ19pbmpl
Y3RlZF90ZXN0X2FyZ3ZzICE9IE5VTEwpIHsKKyAgaWYgKGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyAh
PSBudWxscHRyKSB7CiAgICAgcmV0dXJuICpnX2luamVjdGVkX3Rlc3RfYXJndnM7CiAgIH0KICAg
cmV0dXJuIEdldEFyZ3ZzKCk7CkBAIC0xMTY1LDE2ICsxMjU4LDkgQEAgdm9pZCBTZXRJbmplY3Rh
YmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBuZXdfYXJndnMpIHsKICAg
ICAgIG5ldyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4obmV3X2FyZ3ZzLmJlZ2luKCksIG5ld19h
cmd2cy5lbmQoKSkpOwogfQogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLXZvaWQgU2V0
SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0ZDo6dmVjdG9yPCA6OnN0cmluZz4mIG5ld19hcmd2cykg
ewotICBTZXRJbmplY3RhYmxlQXJndnMoCi0gICAgICBuZXcgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+KG5ld19hcmd2cy5iZWdpbigpLCBuZXdfYXJndnMuZW5kKCkpKTsKLX0KLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQogdm9pZCBDbGVhckluamVjdGFibGVBcmd2cygpIHsK
ICAgZGVsZXRlIGdfaW5qZWN0ZWRfdGVzdF9hcmd2czsKLSAgZ19pbmplY3RlZF90ZXN0X2FyZ3Zz
ID0gTlVMTDsKKyAgZ19pbmplY3RlZF90ZXN0X2FyZ3ZzID0gbnVsbHB0cjsKIH0KICNlbmRpZiAg
Ly8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIApAQCAtMTIwNSw5ICsxMjkxLDkgQEAgc3RhdGljIHN0
ZDo6c3RyaW5nIEZsYWdUb0VudlZhcihjb25zdCBjaGFyKiBmbGFnKSB7CiAvLyBQYXJzZXMgJ3N0
cicgZm9yIGEgMzItYml0IHNpZ25lZCBpbnRlZ2VyLiAgSWYgc3VjY2Vzc2Z1bCwgd3JpdGVzCiAv
LyB0aGUgcmVzdWx0IHRvICp2YWx1ZSBhbmQgcmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVz
ICp2YWx1ZQogLy8gdW5jaGFuZ2VkIGFuZCByZXR1cm5zIGZhbHNlLgotYm9vbCBQYXJzZUludDMy
KGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBzdHIsIEludDMyKiB2YWx1ZSkg
eworYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBz
dHIsIGludDMyX3QqIHZhbHVlKSB7CiAgIC8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFi
bGUgYXMgYSBkZWNpbWFsIGludGVnZXIuCi0gIGNoYXIqIGVuZCA9IE5VTEw7CisgIGNoYXIqIGVu
ZCA9IG51bGxwdHI7CiAgIGNvbnN0IGxvbmcgbG9uZ192YWx1ZSA9IHN0cnRvbChzdHIsICZlbmQs
IDEwKTsgIC8vIE5PTElOVAogCiAgIC8vIEhhcyBzdHJ0b2woKSBjb25zdW1lZCBhbGwgY2hhcmFj
dGVycyBpbiB0aGUgc3RyaW5nPwpAQCAtMTIyMiwxMyArMTMwOCwxMyBAQCBib29sIFBhcnNlSW50
MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVl
KSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBp
biB0aGUgcmFuZ2Ugb2YgYW4gSW50MzI/Ci0gIGNvbnN0IEludDMyIHJlc3VsdCA9IHN0YXRpY19j
YXN0PEludDMyPihsb25nX3ZhbHVlKTsKKyAgLy8gSXMgdGhlIHBhcnNlZCB2YWx1ZSBpbiB0aGUg
cmFuZ2Ugb2YgYW4gaW50MzJfdD8KKyAgY29uc3QgYXV0byByZXN1bHQgPSBzdGF0aWNfY2FzdDxp
bnQzMl90Pihsb25nX3ZhbHVlKTsKICAgaWYgKGxvbmdfdmFsdWUgPT0gTE9OR19NQVggfHwgbG9u
Z192YWx1ZSA9PSBMT05HX01JTiB8fAogICAgICAgLy8gVGhlIHBhcnNlZCB2YWx1ZSBvdmVyZmxv
d3MgYXMgYSBsb25nLiAgKHN0cnRvbCgpIHJldHVybnMKICAgICAgIC8vIExPTkdfTUFYIG9yIExP
TkdfTUlOIHdoZW4gdGhlIGlucHV0IG92ZXJmbG93cy4pCiAgICAgICByZXN1bHQgIT0gbG9uZ192
YWx1ZQotICAgICAgLy8gVGhlIHBhcnNlZCB2YWx1ZSBvdmVyZmxvd3MgYXMgYW4gSW50MzIuCisg
ICAgICAvLyBUaGUgcGFyc2VkIHZhbHVlIG92ZXJmbG93cyBhcyBhbiBpbnQzMl90LgogICAgICAg
KSB7CiAgICAgTWVzc2FnZSBtc2c7CiAgICAgbXNnIDw8ICJXQVJOSU5HOiAiIDw8IHNyY190ZXh0
CkBAIC0xMjQ2LDMzICsxMzMyLDMzIEBAIGJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBz
cmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQzMiogdmFsdWUpIHsKIC8vIFJlYWRzIGFuZCBy
ZXR1cm5zIHRoZSBCb29sZWFuIGVudmlyb25tZW50IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8K
IC8vIHRoZSBnaXZlbiBmbGFnOyBpZiBpdCdzIG5vdCBzZXQsIHJldHVybnMgZGVmYXVsdF92YWx1
ZS4KIC8vCi0vLyBUaGUgdmFsdWUgaXMgY29uc2lkZXJlZCB0cnVlIGlmZiBpdCdzIG5vdCAiMCIu
CisvLyBUaGUgdmFsdWUgaXMgY29uc2lkZXJlZCB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0J3Mgbm90
ICIwIi4KIGJvb2wgQm9vbEZyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBib29sIGRlZmF1
bHRfdmFsdWUpIHsKICNpZiBkZWZpbmVkKEdURVNUX0dFVF9CT09MX0ZST01fRU5WXykKICAgcmV0
dXJuIEdURVNUX0dFVF9CT09MX0ZST01fRU5WXyhmbGFnLCBkZWZhdWx0X3ZhbHVlKTsKICNlbHNl
CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVudl92YXIgPSBGbGFnVG9FbnZWYXIoZmxhZyk7CiAgIGNv
bnN0IGNoYXIqIGNvbnN0IHN0cmluZ192YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0
cigpKTsKLSAgcmV0dXJuIHN0cmluZ192YWx1ZSA9PSBOVUxMID8KLSAgICAgIGRlZmF1bHRfdmFs
dWUgOiBzdHJjbXAoc3RyaW5nX3ZhbHVlLCAiMCIpICE9IDA7CisgIHJldHVybiBzdHJpbmdfdmFs
dWUgPT0gbnVsbHB0ciA/IGRlZmF1bHRfdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogc3RyY21wKHN0cmluZ192YWx1ZSwgIjAiKSAhPSAwOwogI2VuZGlmICAvLyBkZWZp
bmVkKEdURVNUX0dFVF9CT09MX0ZST01fRU5WXykKIH0KIAogLy8gUmVhZHMgYW5kIHJldHVybnMg
YSAzMi1iaXQgaW50ZWdlciBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50CiAvLyB2YXJpYWJsZSBj
b3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBmbGFnOyBpZiBpdCBpc24ndCBzZXQgb3IKIC8vIGRv
ZXNuJ3QgcmVwcmVzZW50IGEgdmFsaWQgMzItYml0IGludGVnZXIsIHJldHVybnMgZGVmYXVsdF92
YWx1ZS4KLUludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIEludDMyIGRl
ZmF1bHRfdmFsdWUpIHsKK2ludDMyX3QgSW50MzJGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxh
ZywgaW50MzJfdCBkZWZhdWx0X3ZhbHVlKSB7CiAjaWYgZGVmaW5lZChHVEVTVF9HRVRfSU5UMzJf
RlJPTV9FTlZfKQogICByZXR1cm4gR1RFU1RfR0VUX0lOVDMyX0ZST01fRU5WXyhmbGFnLCBkZWZh
dWx0X3ZhbHVlKTsKICNlbHNlCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGVudl92YXIgPSBGbGFnVG9F
bnZWYXIoZmxhZyk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0cmluZ192YWx1ZSA9IHBvc2l4OjpH
ZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAgaWYgKHN0cmluZ192YWx1ZSA9PSBOVUxMKSB7Cisg
IGlmIChzdHJpbmdfdmFsdWUgPT0gbnVsbHB0cikgewogICAgIC8vIFRoZSBlbnZpcm9ubWVudCB2
YXJpYWJsZSBpcyBub3Qgc2V0LgogICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlOwogICB9CiAKLSAg
SW50MzIgcmVzdWx0ID0gZGVmYXVsdF92YWx1ZTsKKyAgaW50MzJfdCByZXN1bHQgPSBkZWZhdWx0
X3ZhbHVlOwogICBpZiAoIVBhcnNlSW50MzIoTWVzc2FnZSgpIDw8ICJFbnZpcm9ubWVudCB2YXJp
YWJsZSAiIDw8IGVudl92YXIsCiAgICAgICAgICAgICAgICAgICBzdHJpbmdfdmFsdWUsICZyZXN1
bHQpKSB7CiAgICAgcHJpbnRmKCJUaGUgZGVmYXVsdCB2YWx1ZSAlcyBpcyB1c2VkLlxuIiwKQEAg
LTEyOTYsNyArMTM4Miw3IEBAIEludDMyIEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZs
YWcsIEludDMyIGRlZmF1bHRfdmFsdWUpIHsKIHN0ZDo6c3RyaW5nIE91dHB1dEZsYWdBbHNvQ2hl
Y2tFbnZWYXIoKXsKICAgc3RkOjpzdHJpbmcgZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWcg
PSAiIjsKICAgY29uc3QgY2hhciogeG1sX291dHB1dF9maWxlX2VudiA9IHBvc2l4OjpHZXRFbnYo
IlhNTF9PVVRQVVRfRklMRSIpOwotICBpZiAoTlVMTCAhPSB4bWxfb3V0cHV0X2ZpbGVfZW52KSB7
CisgIGlmIChudWxscHRyICE9IHhtbF9vdXRwdXRfZmlsZV9lbnYpIHsKICAgICBkZWZhdWx0X3Zh
bHVlX2Zvcl9vdXRwdXRfZmxhZyA9IHN0ZDo6c3RyaW5nKCJ4bWw6IikgKyB4bWxfb3V0cHV0X2Zp
bGVfZW52OwogICB9CiAgIHJldHVybiBkZWZhdWx0X3ZhbHVlX2Zvcl9vdXRwdXRfZmxhZzsKQEAg
LTEzMTAsNyArMTM5Niw3IEBAIGNvbnN0IGNoYXIqIFN0cmluZ0Zyb21HVGVzdEVudihjb25zdCBj
aGFyKiBmbGFnLCBjb25zdCBjaGFyKiBkZWZhdWx0X3ZhbHVlKSB7CiAjZWxzZQogICBjb25zdCBz
dGQ6OnN0cmluZyBlbnZfdmFyID0gRmxhZ1RvRW52VmFyKGZsYWcpOwogICBjb25zdCBjaGFyKiBj
b25zdCB2YWx1ZSA9IHBvc2l4OjpHZXRFbnYoZW52X3Zhci5jX3N0cigpKTsKLSAgcmV0dXJuIHZh
bHVlID09IE5VTEwgPyBkZWZhdWx0X3ZhbHVlIDogdmFsdWU7CisgIHJldHVybiB2YWx1ZSA9PSBu
dWxscHRyID8gZGVmYXVsdF92YWx1ZSA6IHZhbHVlOwogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNU
X0dFVF9TVFJJTkdfRlJPTV9FTlZfKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtcHJpbnRlcnMuY2MKaW5kZXggZGU0ZDI0NWU5ZmM4ODk3YWYyMTM3Njc5ZDkxM2Q2
NjVmZDg0MzZlMS4uMWI2OGZjYjUwMDU1MGY4ZDA4NDZiMTU4NDU1YTEyNmJiYzRiZmRmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXByaW50ZXJzLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1wcmludGVycy5jYwpAQCAtNDIs
MTEgKzQyLDE2IEBACiAvLyBkZWZpbmVzIEZvby4KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXBy
aW50ZXJzLmgiCisKICNpbmNsdWRlIDxzdGRpby5oPgorCiAjaW5jbHVkZSA8Y2N0eXBlPgorI2lu
Y2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8Y3djaGFyPgogI2luY2x1ZGUgPG9zdHJlYW0+ICAv
LyBOT0xJTlQKICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKICNp
bmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgiCiAjaW5jbHVkZSAic3JjL2d0ZXN0
LWludGVybmFsLWlubC5oIgogCkBAIC01OSw2ICs2NCw3IEBAIHVzaW5nIDo6c3RkOjpvc3RyZWFt
OwogLy8gUHJpbnRzIGEgc2VnbWVudCBvZiBieXRlcyBpbiB0aGUgZ2l2ZW4gb2JqZWN0LgogR1RF
U1RfQVRUUklCVVRFX05PX1NBTklUSVpFX01FTU9SWV8KIEdURVNUX0FUVFJJQlVURV9OT19TQU5J
VElaRV9BRERSRVNTXworR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0hXQUREUkVTU18KIEdU
RVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9USFJFQURfCiB2b2lkIFByaW50Qnl0ZVNlZ21lbnRJ
bk9iamVjdFRvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRlcywgc2l6ZV90IHN0YXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQsIG9zdHJlYW0qIG9z
KSB7CkBAIC04OSw3ICs5NSw2IEBAIHZvaWQgUHJpbnRCeXRlc0luT2JqZWN0VG9JbXBsKGNvbnN0
IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRlcywgc2l6ZV90IGNvdW50LAogICAvLyBJZiB0aGUgb2Jq
ZWN0IHNpemUgaXMgYmlnZ2VyIHRoYW4ga1RocmVzaG9sZCwgd2UnbGwgaGF2ZSB0byBvbWl0CiAg
IC8vIHNvbWUgZGV0YWlscyBieSBwcmludGluZyBvbmx5IHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qg
a0NodW5rU2l6ZQogICAvLyBieXRlcy4KLSAgLy8gRklYTUU6IGxldCB0aGUgdXNlciBjb250cm9s
IHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBmbGFnLgogICBpZiAoY291bnQgPCBrVGhyZXNob2xkKSB7
CiAgICAgUHJpbnRCeXRlU2VnbWVudEluT2JqZWN0VG8ob2JqX2J5dGVzLCAwLCBjb3VudCwgb3Mp
OwogICB9IGVsc2UgewpAQCAtMTAyLDkgKzEwNywxOSBAQCB2b2lkIFByaW50Qnl0ZXNJbk9iamVj
dFRvSW1wbChjb25zdCB1bnNpZ25lZCBjaGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAg
Km9zIDw8ICI+IjsKIH0KIAorLy8gSGVscGVycyBmb3Igd2lkZW5pbmcgYSBjaGFyYWN0ZXIgdG8g
Y2hhcjMyX3QuIFNpbmNlIHRoZSBzdGFuZGFyZCBkb2VzIG5vdAorLy8gc3BlY2lmeSBpZiBjaGFy
IC8gd2NoYXJfdCBpcyBzaWduZWQgb3IgdW5zaWduZWQsIGl0IGlzIGltcG9ydGFudCB0byBmaXJz
dAorLy8gY29udmVydCBpdCB0byB0aGUgdW5zaWduZWQgdHlwZSBvZiB0aGUgc2FtZSB3aWR0aCBi
ZWZvcmUgd2lkZW5pbmcgaXQgdG8KKy8vIGNoYXIzMl90LgordGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgorY2hhcjMyX3QgVG9DaGFyMzIoQ2hhclR5cGUgaW4pIHsKKyAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNoYXIzMl90PigKKyAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6bWFrZV91
bnNpZ25lZDxDaGFyVHlwZT46OnR5cGU+KGluKSk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZQogCi1u
YW1lc3BhY2UgaW50ZXJuYWwyIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7CiAKIC8vIERlbGVnYXRl
cyB0byBQcmludEJ5dGVzSW5PYmplY3RUb0ltcGwoKSB0byBwcmludCB0aGUgYnl0ZXMgaW4gdGhl
CiAvLyBnaXZlbiBvYmplY3QuICBUaGUgZGVsZWdhdGlvbiBzaW1wbGlmaWVzIHRoZSBpbXBsZW1l
bnRhdGlvbiwgd2hpY2gKQEAgLTExNiwxMCArMTMxLDYgQEAgdm9pZCBQcmludEJ5dGVzSW5PYmpl
Y3RUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBjb3VudCwKICAgUHJp
bnRCeXRlc0luT2JqZWN0VG9JbXBsKG9ial9ieXRlcywgY291bnQsIG9zKTsKIH0KIAotfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsMgotCi1uYW1lc3BhY2UgaW50ZXJuYWwgewotCiAvLyBEZXBlbmRp
bmcgb24gdGhlIHZhbHVlIG9mIGEgY2hhciAob3Igd2NoYXJfdCksIHdlIHByaW50IGl0IGluIG9u
ZQogLy8gb2YgdGhyZWUgZm9ybWF0czoKIC8vICAgLSBhcyBpcyBpZiBpdCdzIGEgcHJpbnRhYmxl
IEFTQ0lJIChlLmcuICdhJywgJzInLCAnICcpLApAQCAtMTM0LDE3ICsxNDUsMTUgQEAgZW51bSBD
aGFyRm9ybWF0IHsKIC8vIFJldHVybnMgdHJ1ZSBpZiBjIGlzIGEgcHJpbnRhYmxlIEFTQ0lJIGNo
YXJhY3Rlci4gIFdlIHRlc3QgdGhlCiAvLyB2YWx1ZSBvZiBjIGRpcmVjdGx5IGluc3RlYWQgb2Yg
Y2FsbGluZyBpc3ByaW50KCksIHdoaWNoIGlzIGJ1Z2d5IG9uCiAvLyBXaW5kb3dzIE1vYmlsZS4K
LWlubGluZSBib29sIElzUHJpbnRhYmxlQXNjaWkod2NoYXJfdCBjKSB7Ci0gIHJldHVybiAweDIw
IDw9IGMgJiYgYyA8PSAweDdFOwotfQoraW5saW5lIGJvb2wgSXNQcmludGFibGVBc2NpaShjaGFy
MzJfdCBjKSB7IHJldHVybiAweDIwIDw9IGMgJiYgYyA8PSAweDdFOyB9CiAKLS8vIFByaW50cyBh
IHdpZGUgb3IgbmFycm93IGNoYXIgYyBhcyBhIGNoYXJhY3RlciBsaXRlcmFsIHdpdGhvdXQgdGhl
Ci0vLyBxdW90ZXMsIGVzY2FwaW5nIGl0IHdoZW4gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdh
cyBmb3JtYXR0ZWQuCi0vLyBUaGUgdGVtcGxhdGUgYXJndW1lbnQgVW5zaWduZWRDaGFyIGlzIHRo
ZSB1bnNpZ25lZCB2ZXJzaW9uIG9mIENoYXIsCi0vLyB3aGljaCBpcyB0aGUgdHlwZSBvZiBjLgot
dGVtcGxhdGUgPHR5cGVuYW1lIFVuc2lnbmVkQ2hhciwgdHlwZW5hbWUgQ2hhcj4KKy8vIFByaW50
cyBjIChvZiB0eXBlIGNoYXIsIGNoYXI4X3QsIGNoYXIxNl90LCBjaGFyMzJfdCwgb3Igd2NoYXJf
dCkgYXMgYQorLy8gY2hhcmFjdGVyIGxpdGVyYWwgd2l0aG91dCB0aGUgcXVvdGVzLCBlc2NhcGlu
ZyBpdCB3aGVuIG5lY2Vzc2FyeTsgcmV0dXJucyBob3cKKy8vIGMgd2FzIGZvcm1hdHRlZC4KK3Rl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyPgogc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc0NoYXJMaXRl
cmFsVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykgewotICBzd2l0Y2ggKHN0YXRpY19jYXN0PHdjaGFy
X3Q+KGMpKSB7CisgIGNvbnN0IGNoYXIzMl90IHVfYyA9IFRvQ2hhcjMyKGMpOworICBzd2l0Y2gg
KHVfYykgewogICAgIGNhc2UgTCdcMCc6CiAgICAgICAqb3MgPDwgIlxcMCI7CiAgICAgICBicmVh
azsKQEAgLTE3NiwxMyArMTg1LDEyIEBAIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0
ZXJhbFRvKENoYXIgYywgb3N0cmVhbSogb3MpIHsKICAgICAgICpvcyA8PCAiXFx2IjsKICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICBpZiAoSXNQcmludGFibGVBc2NpaShjKSkgewor
ICAgICAgaWYgKElzUHJpbnRhYmxlQXNjaWkodV9jKSkgewogICAgICAgICAqb3MgPDwgc3RhdGlj
X2Nhc3Q8Y2hhcj4oYyk7CiAgICAgICAgIHJldHVybiBrQXNJczsKICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgIG9zdHJlYW06OmZtdGZsYWdzIGZsYWdzID0gb3MtPmZsYWdzKCk7Ci0gICAgICAgICpv
cyA8PCAiXFx4IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZQotICAgICAgICAgICAgPDwg
c3RhdGljX2Nhc3Q8aW50PihzdGF0aWNfY2FzdDxVbnNpZ25lZENoYXI+KGMpKTsKKyAgICAgICAg
Km9zIDw8ICJcXHgiIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0YXRpY19jYXN0
PGludD4odV9jKTsKICAgICAgICAgb3MtPmZsYWdzKGZsYWdzKTsKICAgICAgICAgcmV0dXJuIGtI
ZXhFc2NhcGU7CiAgICAgICB9CkBAIC0xOTAsOSArMTk4LDkgQEAgc3RhdGljIENoYXJGb3JtYXQg
UHJpbnRBc0NoYXJMaXRlcmFsVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykgewogICByZXR1cm4ga1Nw
ZWNpYWxFc2NhcGU7CiB9CiAKLS8vIFByaW50cyBhIHdjaGFyX3QgYyBhcyBpZiBpdCdzIHBhcnQg
b2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hlbgorLy8gUHJpbnRzIGEgY2hhcjMy
X3QgYyBhcyBpZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hl
bgogLy8gbmVjZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCi1zdGF0aWMgQ2hh
ckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywgb3N0cmVhbSogb3MpIHsK
K3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8oY2hhcjMyX3QgYywgb3N0
cmVhbSogb3MpIHsKICAgc3dpdGNoIChjKSB7CiAgICAgY2FzZSBMJ1wnJzoKICAgICAgICpvcyA8
PCAiJyI7CkBAIC0yMDEsMjYgKzIwOSw2OCBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3Ry
aW5nTGl0ZXJhbFRvKHdjaGFyX3QgYywgb3N0cmVhbSogb3MpIHsKICAgICAgICpvcyA8PCAiXFxc
IiI7CiAgICAgICByZXR1cm4ga1NwZWNpYWxFc2NhcGU7CiAgICAgZGVmYXVsdDoKLSAgICAgIHJl
dHVybiBQcmludEFzQ2hhckxpdGVyYWxUbzx3Y2hhcl90PihjLCBvcyk7CisgICAgICByZXR1cm4g
UHJpbnRBc0NoYXJMaXRlcmFsVG8oYywgb3MpOwogICB9CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFy
KiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcikgeworICByZXR1cm4gIiI7Cit9CisKK3N0YXRpYyBj
b25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoc2lnbmVkIGNoYXIpIHsKKyAgcmV0dXJuICIi
OworfQorCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4KHVuc2lnbmVkIGNo
YXIpIHsKKyAgcmV0dXJuICIiOworfQorCisjaWZkZWYgX19jcHBfY2hhcjhfdAorc3RhdGljIGNv
bnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZpeChjaGFyOF90KSB7CisgIHJldHVybiAidTgiOwor
fQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcjE2
X3QpIHsKKyAgcmV0dXJuICJ1IjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0
aFByZWZpeChjaGFyMzJfdCkgeworICByZXR1cm4gIlUiOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciogR2V0Q2hhcldpZHRoUHJlZml4KHdjaGFyX3QpIHsKKyAgcmV0dXJuICJMIjsKK30KKwogLy8g
UHJpbnRzIGEgY2hhciBjIGFzIGlmIGl0J3MgcGFydCBvZiBhIHN0cmluZyBsaXRlcmFsLCBlc2Nh
cGluZyBpdCB3aGVuCiAvLyBuZWNlc3Nhcnk7IHJldHVybnMgaG93IGMgd2FzIGZvcm1hdHRlZC4K
IHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8oY2hhciBjLCBvc3RyZWFt
KiBvcykgewotICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbygKLSAgICAgIHN0YXRpY19j
YXN0PHdjaGFyX3Q+KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGMpKSwgb3MpOworICByZXR1
cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIzMihjKSwgb3MpOworfQorCisjaWZkZWYg
X19jcHBfY2hhcjhfdAorc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhj
aGFyOF90IGMsIG9zdHJlYW0qIG9zKSB7CisgIHJldHVybiBQcmludEFzU3RyaW5nTGl0ZXJhbFRv
KFRvQ2hhcjMyKGMpLCBvcyk7Cit9CisjZW5kaWYKKworc3RhdGljIENoYXJGb3JtYXQgUHJpbnRB
c1N0cmluZ0xpdGVyYWxUbyhjaGFyMTZfdCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJp
bnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIzMihjKSwgb3MpOwogfQogCi0vLyBQcmludHMgYSB3
aWRlIG9yIG5hcnJvdyBjaGFyYWN0ZXIgYyBhbmQgaXRzIGNvZGUuICAnXDAnIGlzIHByaW50ZWQK
LS8vIGFzICInXFwwJyIsIG90aGVyIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIGFsc28gcHJv
cGVybHkgZXNjYXBlZAotLy8gdXNpbmcgdGhlIHN0YW5kYXJkIEMrKyBlc2NhcGUgc2VxdWVuY2Uu
ICBUaGUgdGVtcGxhdGUgYXJndW1lbnQKLS8vIFVuc2lnbmVkQ2hhciBpcyB0aGUgdW5zaWduZWQg
dmVyc2lvbiBvZiBDaGFyLCB3aGljaCBpcyB0aGUgdHlwZSBvZiBjLgotdGVtcGxhdGUgPHR5cGVu
YW1lIFVuc2lnbmVkQ2hhciwgdHlwZW5hbWUgQ2hhcj4KK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50
QXNTdHJpbmdMaXRlcmFsVG8od2NoYXJfdCBjLCBvc3RyZWFtKiBvcykgeworICByZXR1cm4gUHJp
bnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIzMihjKSwgb3MpOworfQorCisvLyBQcmludHMgYSBj
aGFyYWN0ZXIgYyAob2YgdHlwZSBjaGFyLCBjaGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9y
IHdjaGFyX3QpCisvLyBhbmQgaXRzIGNvZGUuICdcMCcgaXMgcHJpbnRlZCBhcyAiJ1xcMCciLCBv
dGhlciB1bnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZQorLy8gYWxzbyBwcm9wZXJseSBlc2NhcGVk
IHVzaW5nIHRoZSBzdGFuZGFyZCBDKysgZXNjYXBlIHNlcXVlbmNlLgordGVtcGxhdGUgPHR5cGVu
YW1lIENoYXI+CiB2b2lkIFByaW50Q2hhckFuZENvZGVUbyhDaGFyIGMsIG9zdHJlYW0qIG9zKSB7
CiAgIC8vIEZpcnN0LCBwcmludCBjIGFzIGEgbGl0ZXJhbCBpbiB0aGUgbW9zdCByZWFkYWJsZSBm
b3JtIHdlIGNhbiBmaW5kLgotICAqb3MgPDwgKChzaXplb2YoYykgPiAxKSA/ICJMJyIgOiAiJyIp
OwotICBjb25zdCBDaGFyRm9ybWF0IGZvcm1hdCA9IFByaW50QXNDaGFyTGl0ZXJhbFRvPFVuc2ln
bmVkQ2hhcj4oYywgb3MpOworICAqb3MgPDwgR2V0Q2hhcldpZHRoUHJlZml4KGMpIDw8ICInIjsK
KyAgY29uc3QgQ2hhckZvcm1hdCBmb3JtYXQgPSBQcmludEFzQ2hhckxpdGVyYWxUbyhjLCBvcyk7
CiAgICpvcyA8PCAiJyI7CiAKICAgLy8gVG8gYWlkIHVzZXIgZGVidWdnaW5nLCB3ZSBhbHNvIHBy
aW50IGMncyBjb2RlIGluIGRlY2ltYWwsIHVubGVzcwpAQCAtMjM2LDM2ICsyODYsMzcgQEAgdm9p
ZCBQcmludENoYXJBbmRDb2RlVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykgewogICBpZiAoZm9ybWF0
ID09IGtIZXhFc2NhcGUgfHwgKDEgPD0gYyAmJiBjIDw9IDkpKSB7CiAgICAgLy8gRG8gbm90aGlu
Zy4KICAgfSBlbHNlIHsKLSAgICAqb3MgPDwgIiwgMHgiIDw8IFN0cmluZzo6Rm9ybWF0SGV4SW50
KHN0YXRpY19jYXN0PFVuc2lnbmVkQ2hhcj4oYykpOworICAgICpvcyA8PCAiLCAweCIgPDwgU3Ry
aW5nOjpGb3JtYXRIZXhJbnQoc3RhdGljX2Nhc3Q8aW50PihjKSk7CiAgIH0KICAgKm9zIDw8ICIp
IjsKIH0KIAotdm9pZCBQcmludFRvKHVuc2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9z
KSB7Ci0gIFByaW50Q2hhckFuZENvZGVUbzx1bnNpZ25lZCBjaGFyPihjLCBvcyk7Ci19Ci12b2lk
IFByaW50VG8oc2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hh
ckFuZENvZGVUbzx1bnNpZ25lZCBjaGFyPihjLCBvcyk7Ci19Cit2b2lkIFByaW50VG8odW5zaWdu
ZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsgUHJpbnRDaGFyQW5kQ29kZVRvKGMsIG9z
KTsgfQordm9pZCBQcmludFRvKHNpZ25lZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeyBQ
cmludENoYXJBbmRDb2RlVG8oYywgb3MpOyB9CiAKIC8vIFByaW50cyBhIHdjaGFyX3QgYXMgYSBz
eW1ib2wgaWYgaXQgaXMgcHJpbnRhYmxlIG9yIGFzIGl0cyBpbnRlcm5hbAogLy8gY29kZSBvdGhl
cndpc2UgYW5kIGFsc28gYXMgaXRzIGNvZGUuICBMJ1wwJyBpcyBwcmludGVkIGFzICJMJ1xcMCci
Lgotdm9pZCBQcmludFRvKHdjaGFyX3Qgd2MsIG9zdHJlYW0qIG9zKSB7Ci0gIFByaW50Q2hhckFu
ZENvZGVUbzx3Y2hhcl90Pih3Yywgb3MpOwordm9pZCBQcmludFRvKHdjaGFyX3Qgd2MsIG9zdHJl
YW0qIG9zKSB7IFByaW50Q2hhckFuZENvZGVUbyh3Yywgb3MpOyB9CisKKy8vIFRPRE8oZGNoZW5n
KTogQ29uc2lkZXIgbWFraW5nIHRoaXMgZGVsZWdhdGUgdG8gUHJpbnRDaGFyQW5kQ29kZVRvKCkg
YXMgd2VsbC4KK3ZvaWQgUHJpbnRUbyhjaGFyMzJfdCBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsK
KyAgKm9zIDw8IHN0ZDo6aGV4IDw8ICJVKyIgPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpzZXRm
aWxsKCcwJykgPDwgc3RkOjpzZXR3KDQpCisgICAgICA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Yyk7CiB9CiAKIC8vIFByaW50cyB0aGUgZ2l2ZW4gYXJyYXkgb2YgY2hhcmFjdGVycyB0byB0aGUg
b3N0cmVhbS4gIENoYXJUeXBlIG11c3QgYmUgZWl0aGVyCi0vLyBjaGFyIG9yIHdjaGFyX3QuCisv
LyBjaGFyLCBjaGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QuCiAvLyBUaGUg
YXJyYXkgc3RhcnRzIGF0IGJlZ2luLCB0aGUgbGVuZ3RoIGlzIGxlbiwgaXQgbWF5IGluY2x1ZGUg
J1wwJyBjaGFyYWN0ZXJzCiAvLyBhbmQgbWF5IG5vdCBiZSBOVUwtdGVybWluYXRlZC4KIHRlbXBs
YXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KIEdURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9NRU1P
UllfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNUX0FUVFJJQlVU
RV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfVEhS
RUFEXwogc3RhdGljIENoYXJGb3JtYXQgUHJpbnRDaGFyc0FzU3RyaW5nVG8oCiAgICAgY29uc3Qg
Q2hhclR5cGUqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewotICBjb25zdCBjaGFy
KiBjb25zdCBrUXVvdGVCZWdpbiA9IHNpemVvZihDaGFyVHlwZSkgPT0gMSA/ICJcIiIgOiAiTFwi
IjsKLSAgKm9zIDw8IGtRdW90ZUJlZ2luOworICBjb25zdCBjaGFyKiBjb25zdCBxdW90ZV9wcmVm
aXggPSBHZXRDaGFyV2lkdGhQcmVmaXgoKmJlZ2luKTsKKyAgKm9zIDw8IHF1b3RlX3ByZWZpeCA8
PCAiXCIiOwogICBib29sIGlzX3ByZXZpb3VzX2hleCA9IGZhbHNlOwogICBDaGFyRm9ybWF0IHBy
aW50X2Zvcm1hdCA9IGtBc0lzOwogICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbGVu
OyArK2luZGV4KSB7CkBAIC0yNzQsNyArMzI1LDcgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRD
aGFyc0FzU3RyaW5nVG8oCiAgICAgICAvLyBQcmV2aW91cyBjaGFyYWN0ZXIgaXMgb2YgJ1x4Li4n
IGZvcm0gYW5kIHRoaXMgY2hhcmFjdGVyIGNhbiBiZQogICAgICAgLy8gaW50ZXJwcmV0ZWQgYXMg
YW5vdGhlciBoZXhhZGVjaW1hbCBkaWdpdCBpbiBpdHMgbnVtYmVyLiBCcmVhayBzdHJpbmcgdG8K
ICAgICAgIC8vIGRpc2FtYmlndWF0ZS4KLSAgICAgICpvcyA8PCAiXCIgIiA8PCBrUXVvdGVCZWdp
bjsKKyAgICAgICpvcyA8PCAiXCIgIiA8PCBxdW90ZV9wcmVmaXggPDwgIlwiIjsKICAgICB9CiAg
ICAgaXNfcHJldmlvdXNfaGV4ID0gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhjdXIsIG9zKSA9PSBr
SGV4RXNjYXBlOwogICAgIC8vIFJlbWVtYmVyIGlmIGFueSBjaGFyYWN0ZXJzIHJlcXVpcmVkIGhl
eCBlc2NhcGluZy4KQEAgLTI5MSw2ICszNDIsNyBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludENo
YXJzQXNTdHJpbmdUbygKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KIEdURVNUX0FUVFJJ
QlVURV9OT19TQU5JVElaRV9NRU1PUllfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQURE
UkVTU18KK0dURVNUX0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRS
SUJVVEVfTk9fU0FOSVRJWkVfVEhSRUFEXwogc3RhdGljIHZvaWQgVW5pdmVyc2FsUHJpbnRDaGFy
QXJyYXkoCiAgICAgY29uc3QgQ2hhclR5cGUqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBv
cykgewpAQCAtMzE5LDIyICszNzEsNTcgQEAgdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0
IGNoYXIqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewogICBVbml2ZXJzYWxQcmlu
dENoYXJBcnJheShiZWdpbiwgbGVuLCBvcyk7CiB9CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90Cisv
LyBQcmludHMgYSAoY29uc3QpIGNoYXI4X3QgYXJyYXkgb2YgJ2xlbicgZWxlbWVudHMsIHN0YXJ0
aW5nIGF0IGFkZHJlc3MKKy8vICdiZWdpbicuCit2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoY29u
c3QgY2hhcjhfdCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNh
bFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKK30KKyNlbmRpZgorCisvLyBQcmludHMg
YSAoY29uc3QpIGNoYXIxNl90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBh
ZGRyZXNzCisvLyAnYmVnaW4nLgordm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIx
Nl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRD
aGFyQXJyYXkoYmVnaW4sIGxlbiwgb3MpOworfQorCisvLyBQcmludHMgYSAoY29uc3QpIGNoYXIz
Ml90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAnYmVn
aW4nLgordm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgc2l6
ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKKyAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4s
IGxlbiwgb3MpOworfQorCiAvLyBQcmludHMgYSAoY29uc3QpIHdjaGFyX3QgYXJyYXkgb2YgJ2xl
bicgZWxlbWVudHMsIHN0YXJ0aW5nIGF0IGFkZHJlc3MKIC8vICdiZWdpbicuCiB2b2lkIFVuaXZl
cnNhbFByaW50QXJyYXkoY29uc3Qgd2NoYXJfdCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0q
IG9zKSB7CiAgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKIH0KIAot
Ly8gUHJpbnRzIHRoZSBnaXZlbiBDIHN0cmluZyB0byB0aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRU
byhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBvcykgewotICBpZiAocyA9PSBOVUxMKSB7CituYW1l
c3BhY2UgeworCisvLyBQcmludHMgYSBudWxsLXRlcm1pbmF0ZWQgQy1zdHlsZSBzdHJpbmcgdG8g
dGhlIG9zdHJlYW0uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcj4KK3ZvaWQgUHJpbnRDU3RyaW5n
VG8oY29uc3QgQ2hhciogcywgb3N0cmVhbSogb3MpIHsKKyAgaWYgKHMgPT0gbnVsbHB0cikgewog
ICAgICpvcyA8PCAiTlVMTCI7CiAgIH0gZWxzZSB7CiAgICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88
Y29uc3Qgdm9pZCo+KHMpIDw8ICIgcG9pbnRpbmcgdG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJp
bmdUbyhzLCBzdHJsZW4ocyksIG9zKTsKKyAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdGQ6
OmNoYXJfdHJhaXRzPENoYXI+OjpsZW5ndGgocyksIG9zKTsKICAgfQogfQogCit9ICAvLyBhbm9u
eW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyKiBzLCBvc3RyZWFtKiBv
cykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3Zv
aWQgUHJpbnRUbyhjb25zdCBjaGFyOF90KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdU
byhzLCBvcyk7IH0KKyNlbmRpZgorCit2b2lkIFByaW50VG8oY29uc3QgY2hhcjE2X3QqIHMsIG9z
dHJlYW0qIG9zKSB7IFByaW50Q1N0cmluZ1RvKHMsIG9zKTsgfQorCit2b2lkIFByaW50VG8oY29u
c3QgY2hhcjMyX3QqIHMsIG9zdHJlYW0qIG9zKSB7IFByaW50Q1N0cmluZ1RvKHMsIG9zKTsgfQor
CiAvLyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBjb25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMg
YSB0eXBlZGVmCiAvLyBvZiB1bnNpZ25lZCBzaG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9y
IGNvbnN0IHdjaGFyX3QqIGluIHRoYXQgY2FzZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8g
dW5zaWduZWQgc2hvcnRzIGJlIHByaW50ZWQgYXMgd2lkZSBzdHJpbmdzLApAQCAtMzQzLDE0ICs0
MzAsNyBAQCB2b2lkIFByaW50VG8oY29uc3QgY2hhciogcywgb3N0cmVhbSogb3MpIHsKIC8vIHdj
aGFyX3QgaXMgaW1wbGVtZW50ZWQgYXMgYSBuYXRpdmUgdHlwZS4KICNpZiAhZGVmaW5lZChfTVND
X1ZFUikgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCkKIC8vIFByaW50cyB0aGUg
Z2l2ZW4gd2lkZSBDIHN0cmluZyB0byB0aGUgb3N0cmVhbS4KLXZvaWQgUHJpbnRUbyhjb25zdCB3
Y2hhcl90KiBzLCBvc3RyZWFtKiBvcykgewotICBpZiAocyA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8
ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAqb3MgPDwgSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lk
Kj4ocykgPDwgIiBwb2ludGluZyB0byAiOwotICAgIFByaW50Q2hhcnNBc1N0cmluZ1RvKHMsIHN0
ZDo6d2NzbGVuKHMpLCBvcyk7Ci0gIH0KLX0KK3ZvaWQgUHJpbnRUbyhjb25zdCB3Y2hhcl90KiBz
LCBvc3RyZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KICNlbmRpZiAgLy8gd2No
YXJfdCBpcyBuYXRpdmUKIAogbmFtZXNwYWNlIHsKQEAgLTQyMCwzMSArNTAwLDI3IEBAIHZvaWQg
Q29uZGl0aW9uYWxQcmludEFzVGV4dChjb25zdCBjaGFyKiBzdHIsIHNpemVfdCBsZW5ndGgsIG9z
dHJlYW0qIG9zKSB7CiAKIH0gIC8vIGFub255bW91cyBuYW1lc3BhY2UKIAotLy8gUHJpbnRzIGEg
OjpzdHJpbmcgb2JqZWN0LgotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFByaW50
U3RyaW5nVG8oY29uc3QgOjpzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7Cit2b2lkIFByaW50U3Ry
aW5nVG8oY29uc3QgOjpzdGQ6OnN0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKICAgaWYgKFByaW50
Q2hhcnNBc1N0cmluZ1RvKHMuZGF0YSgpLCBzLnNpemUoKSwgb3MpID09IGtIZXhFc2NhcGUpIHsK
ICAgICBpZiAoR1RFU1RfRkxBRyhwcmludF91dGY4KSkgewogICAgICAgQ29uZGl0aW9uYWxQcmlu
dEFzVGV4dChzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKICAgICB9CiAgIH0KIH0KLSNlbmRpZiAg
Ly8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKIAotdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6
c3RkOjpzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7Ci0gIGlmIChQcmludENoYXJzQXNTdHJpbmdU
byhzLmRhdGEoKSwgcy5zaXplKCksIG9zKSA9PSBrSGV4RXNjYXBlKSB7Ci0gICAgaWYgKEdURVNU
X0ZMQUcocHJpbnRfdXRmOCkpIHsKLSAgICAgIENvbmRpdGlvbmFsUHJpbnRBc1RleHQocy5kYXRh
KCksIHMuc2l6ZSgpLCBvcyk7Ci0gICAgfQotICB9CisjaWZkZWYgX19jcHBfY2hhcjhfdAordm9p
ZCBQcmludFU4U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCBvc3RyZWFtKiBvcykg
eworICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEoKSwgcy5zaXplKCksIG9zKTsKK30KKyNl
bmRpZgorCit2b2lkIFByaW50VTE2U3RyaW5nVG8oY29uc3QgOjpzdGQ6OnUxNnN0cmluZyYgcywg
b3N0cmVhbSogb3MpIHsKKyAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgp
LCBvcyk7CiB9CiAKLS8vIFByaW50cyBhIDo6d3N0cmluZyBvYmplY3QuCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi12b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6d3N0cmluZyYg
cywgb3N0cmVhbSogb3MpIHsKK3ZvaWQgUHJpbnRVMzJTdHJpbmdUbyhjb25zdCA6OnN0ZDo6dTMy
c3RyaW5nJiBzLCBvc3RyZWFtKiBvcykgewogICBQcmludENoYXJzQXNTdHJpbmdUbyhzLmRhdGEo
KSwgcy5zaXplKCksIG9zKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5H
CiAKICNpZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIHZvaWQgUHJpbnRXaWRlU3RyaW5nVG8oY29u
c3QgOjpzdGQ6OndzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3Qvc3JjL2d0ZXN0LXRlc3QtcGFydC5jYwppbmRleCBjODg4NjBkOTIzODU2MTllYTY3
NjQ4ODQ1ODM5ZDE0NTgzZjExMTQ2Li5hOTM4NjgzY2VkZWQyZjM0Njk3ZWZkODMwNWE2NzM2ODA2
NGQwMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVz
dC1wYXJ0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10ZXN0LXBh
cnQuY2MKQEAgLTMxLDYgKzMxLDggQEAKIC8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1v
Y2tpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXRl
c3QtcGFydC5oIgorCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogI2lu
Y2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaCIKIAogbmFtZXNwYWNlIHRlc3RpbmcgewpA
QCAtNDEsMTggKzQzLDIzIEBAIHVzaW5nIGludGVybmFsOjpHZXRVbml0VGVzdEltcGw7CiAvLyBp
biBpdC4KIHN0ZDo6c3RyaW5nIFRlc3RQYXJ0UmVzdWx0OjpFeHRyYWN0U3VtbWFyeShjb25zdCBj
aGFyKiBtZXNzYWdlKSB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0YWNrX3RyYWNlID0gc3Ryc3Ry
KG1lc3NhZ2UsIGludGVybmFsOjprU3RhY2tUcmFjZU1hcmtlcik7Ci0gIHJldHVybiBzdGFja190
cmFjZSA9PSBOVUxMID8gbWVzc2FnZSA6Ci0gICAgICBzdGQ6OnN0cmluZyhtZXNzYWdlLCBzdGFj
a190cmFjZSk7CisgIHJldHVybiBzdGFja190cmFjZSA9PSBudWxscHRyID8gbWVzc2FnZSA6IHN0
ZDo6c3RyaW5nKG1lc3NhZ2UsIHN0YWNrX3RyYWNlKTsKIH0KIAogLy8gUHJpbnRzIGEgVGVzdFBh
cnRSZXN1bHQgb2JqZWN0Lgogc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYg
b3MsIGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIHsKLSAgcmV0dXJuIG9zCi0gICAgICA8
PCByZXN1bHQuZmlsZV9uYW1lKCkgPDwgIjoiIDw8IHJlc3VsdC5saW5lX251bWJlcigpIDw8ICI6
ICIKLSAgICAgIDw8IChyZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcyA/
ICJTdWNjZXNzIiA6Ci0gICAgICAgICAgcmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6
a0ZhdGFsRmFpbHVyZSA/ICJGYXRhbCBmYWlsdXJlIiA6Ci0gICAgICAgICAgIk5vbi1mYXRhbCBm
YWlsdXJlIikgPDwgIjpcbiIKLSAgICAgIDw8IHJlc3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRs
OworICByZXR1cm4gb3MgPDwgaW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlvbihyZXN1bHQuZmls
ZV9uYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdC5saW5lX251bWJlcigpKQorICAgICAgICAgICAgPDwgIiAiCisgICAgICAgICAgICA8PCAo
cmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MKKyAgICAgICAgICAgICAg
ICAgICAgPyAiU3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgOiByZXN1bHQudHlwZSgpID09
IFRlc3RQYXJ0UmVzdWx0OjprU2tpcAorICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJTa2lw
cGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3VsdC50eXBlKCkgPT0gVGVzdFBh
cnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PyAiRmF0YWwgZmFpbHVyZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiTm9u
LWZhdGFsIGZhaWx1cmUiKQorICAgICAgICAgICAgPDwgIjpcbiIKKyAgICAgICAgICAgIDw8IHJl
c3VsdC5tZXNzYWdlKCkgPDwgc3RkOjplbmRsOwogfQogCiAvLyBBcHBlbmRzIGEgVGVzdFBhcnRS
ZXN1bHQgdG8gdGhlIGFycmF5LgpAQCAtNjcsNyArNzQsNyBAQCBjb25zdCBUZXN0UGFydFJlc3Vs
dCYgVGVzdFBhcnRSZXN1bHRBcnJheTo6R2V0VGVzdFBhcnRSZXN1bHQoaW50IGluZGV4KSBjb25z
dCB7CiAgICAgaW50ZXJuYWw6OnBvc2l4OjpBYm9ydCgpOwogICB9CiAKLSAgcmV0dXJuIGFycmF5
X1tpbmRleF07CisgIHJldHVybiBhcnJheV9bc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwog
fQogCiAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgVGVzdFBhcnRSZXN1bHQgb2JqZWN0cyBpbiB0
aGUgYXJyYXkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3Qt
dHlwZWQtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10
ZXN0LmNjCmluZGV4IDFkYzJhZDM4YmFiOThiYzE0NmMxNjE1OGE0N2RhMWUzOTRiZjM4NWYuLmMw
MmMzZGY2NTk5NTI3YWY4NzhkMjhmNGFhMjMxMWE2MWE2NWM0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10ZXN0LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10eXBlZC10ZXN0LmNjCkBAIC0zNSw4ICszNSw2IEBA
CiBuYW1lc3BhY2UgdGVzdGluZyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCi0jaWYgR1RFU1Rf
SEFTX1RZUEVEX1RFU1RfUAotCiAvLyBTa2lwcyB0byB0aGUgZmlyc3Qgbm9uLXNwYWNlIGNoYXIg
aW4gc3RyLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBpZiBzdHIKIC8vIGNvbnRhaW5zIG9ubHkg
d2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgogc3RhdGljIGNvbnN0IGNoYXIqIFNraXBTcGFjZXMoY29u
c3QgY2hhciogc3RyKSB7CkBAIC00OCw3ICs0Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBTa2lw
U3BhY2VzKGNvbnN0IGNoYXIqIHN0cikgewogc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiBTcGxpdEludG9UZXN0TmFtZXMoY29uc3QgY2hhciogc3JjKSB7CiAgIHN0ZDo6dmVjdG9yPHN0
ZDo6c3RyaW5nPiBuYW1lX3ZlYzsKICAgc3JjID0gU2tpcFNwYWNlcyhzcmMpOwotICBmb3IgKDsg
c3JjICE9IE5VTEw7IHNyYyA9IFNraXBDb21tYShzcmMpKSB7CisgIGZvciAoOyBzcmMgIT0gbnVs
bHB0cjsgc3JjID0gU2tpcENvbW1hKHNyYykpIHsKICAgICBuYW1lX3ZlYy5wdXNoX2JhY2soU3Ry
aXBUcmFpbGluZ1NwYWNlcyhHZXRQcmVmaXhVbnRpbENvbW1hKHNyYykpKTsKICAgfQogICByZXR1
cm4gbmFtZV92ZWM7CkBAIC01Nyw4ICs1NSwxMSBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+IFNwbGl0SW50b1Rlc3ROYW1lcyhjb25zdCBjaGFyKiBzcmMpIHsKIC8vIFZlcmlmaWVz
IHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBtYXRjaCB0aGUgdGVzdCBuYW1lcyBpbgogLy8gcmVnaXN0
ZXJlZF90ZXN0c187IHJldHVybnMgcmVnaXN0ZXJlZF90ZXN0cyBpZiBzdWNjZXNzZnVsLCBvcgog
Ly8gYWJvcnRzIHRoZSBwcm9ncmFtIG90aGVyd2lzZS4KLWNvbnN0IGNoYXIqIFR5cGVkVGVzdENh
c2VQU3RhdGU6OlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoCi0gICAgY29uc3QgY2hhciogZmls
ZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIHJlZ2lzdGVyZWRfdGVzdHMpIHsKK2NvbnN0IGNoYXIq
IFR5cGVkVGVzdFN1aXRlUFN0YXRlOjpWZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKAorICAgIGNv
bnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCisg
ICAgY29uc3QgY2hhciogcmVnaXN0ZXJlZF90ZXN0cykgeworICBSZWdpc3RlclR5cGVQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlKHRlc3Rfc3VpdGVfbmFtZSwgQ29kZUxvY2F0aW9uKGZpbGUsIGxpbmUp
KTsKKwogICB0eXBlZGVmIFJlZ2lzdGVyZWRUZXN0c01hcDo6Y29uc3RfaXRlcmF0b3IgUmVnaXN0
ZXJlZFRlc3RJdGVyOwogICByZWdpc3RlcmVkXyA9IHRydWU7CiAKQEAgLTc1LDIxICs3NiwxMSBA
QCBjb25zdCBjaGFyKiBUeXBlZFRlc3RDYXNlUFN0YXRlOjpWZXJpZnlSZWdpc3RlcmVkVGVzdE5h
bWVzKAogICAgICAgY29udGludWU7CiAgICAgfQogCi0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwot
ICAgIGZvciAoUmVnaXN0ZXJlZFRlc3RJdGVyIGl0ID0gcmVnaXN0ZXJlZF90ZXN0c18uYmVnaW4o
KTsKLSAgICAgICAgIGl0ICE9IHJlZ2lzdGVyZWRfdGVzdHNfLmVuZCgpOwotICAgICAgICAgKytp
dCkgewotICAgICAgaWYgKG5hbWUgPT0gaXQtPmZpcnN0KSB7Ci0gICAgICAgIGZvdW5kID0gdHJ1
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGZvdW5kKSB7Cisg
ICAgaWYgKHJlZ2lzdGVyZWRfdGVzdHNfLmNvdW50KG5hbWUpICE9IDApIHsKICAgICAgIHRlc3Rz
Lmluc2VydChuYW1lKTsKICAgICB9IGVsc2UgewogICAgICAgZXJyb3JzIDw8ICJObyB0ZXN0IG5h
bWVkICIgPDwgbmFtZQotICAgICAgICAgICAgIDw8ICIgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVz
dCBjYXNlLlxuIjsKKyAgICAgICAgICAgICA8PCAiIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3Qg
c3VpdGUuXG4iOwogICAgIH0KICAgfQogCkBAIC0xMTIsNyArMTAzLDUgQEAgY29uc3QgY2hhciog
VHlwZWRUZXN0Q2FzZVBTdGF0ZTo6VmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKICAgcmV0dXJu
IHJlZ2lzdGVyZWRfdGVzdHM7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UAotCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QuY2MKaW5kZXggOTZiMDdjNjhhYmIwNWEyZGJlMWJl
MDlmMWMzNTM1YmNmNzlkMDAzMC4uOTA4OWY1MGQ0OTJjN2M4Yzg2NWQzNjg0Njk4NDM5ZDU4MDgy
OGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC5jYwpAQCAtMzUsNyArMzUsNiBA
QAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXNwaS5oIgogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNp
bmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
ICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ0LDYgKzQzLDkgQEAKICNpbmNsdWRlIDx3Y3R5cGUu
aD4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjaHJvbm8+ICAvLyBOT0xJTlQK
KyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPGlvbWFuaXA+
CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPGxpc3Q+CkBAIC01NCwxMCArNTYsNiBAQAog
CiAjaWYgR1RFU1RfT1NfTElOVVgKIAotLy8gRklYTUU6IFVzZSBhdXRvY29uZiB0byBkZXRlY3Qg
YXZhaWxhYmlsaXR5IG9mCi0vLyBnZXR0aW1lb2ZkYXkoKS4KLSMgZGVmaW5lIEdURVNUX0hBU19H
RVRUSU1FT0ZEQVlfIDEKLQogIyBpbmNsdWRlIDxmY250bC5oPiAgLy8gTk9MSU5UCiAjIGluY2x1
ZGUgPGxpbWl0cy5oPiAgLy8gTk9MSU5UCiAjIGluY2x1ZGUgPHNjaGVkLmg+ICAvLyBOT0xJTlQK
QEAgLTY4LDEyICs2Niw3IEBACiAjIGluY2x1ZGUgPHVuaXN0ZC5oPiAgLy8gTk9MSU5UCiAjIGlu
Y2x1ZGUgPHN0cmluZz4KIAotI2VsaWYgR1RFU1RfT1NfU1lNQklBTgotIyBkZWZpbmUgR1RFU1Rf
SEFTX0dFVFRJTUVPRkRBWV8gMQotIyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCi0K
ICNlbGlmIEdURVNUX09TX1pPUwotIyBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQog
IyBpbmNsdWRlIDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCiAKIC8vIE9uIHovT1Mgd2UgYWRkaXRp
b25hbGx5IG5lZWQgc3RyaW5ncy5oIGZvciBzdHJjYXNlY21wLgpAQCAtODYsMzQgKzc5LDI0IEBA
CiAKICNlbGlmIEdURVNUX09TX1dJTkRPV1MgIC8vIFdlIGFyZSBvbiBXaW5kb3dzIHByb3Blci4K
IAorIyBpbmNsdWRlIDx3aW5kb3dzLmg+ICAvLyBOT0xJTlQKKyMgdW5kZWYgbWluCisKKyNpZmRl
ZiBfTVNDX1ZFUgorIyBpbmNsdWRlIDxjcnRkYmcuaD4gIC8vIE5PTElOVAorI2VuZGlmCisKICMg
aW5jbHVkZSA8aW8uaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMvdGltZWIuaD4gIC8vIE5P
TElOVAogIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzeXMv
c3RhdC5oPiAgLy8gTk9MSU5UCiAKICMgaWYgR1RFU1RfT1NfV0lORE9XU19NSU5HVwotLy8gTWlu
R1cgaGFzIGdldHRpbWVvZmRheSgpIGJ1dCBub3QgX2Z0aW1lNjQoKS4KLS8vIEZJWE1FOiBVc2Ug
YXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWlsYWJpbGl0eSBvZgotLy8gICBnZXR0aW1lb2ZkYXkoKS4K
LS8vIEZJWE1FOiBUaGVyZSBhcmUgb3RoZXIgd2F5cyB0byBnZXQgdGhlIHRpbWUgb24KLS8vICAg
V2luZG93cywgbGlrZSBHZXRUaWNrQ291bnQoKSBvciBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgp
LiAgTWluR1cKLS8vICAgc3VwcG9ydHMgdGhlc2UuICBjb25zaWRlciB1c2luZyB0aGVtIGluc3Rl
YWQuCi0jICBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQogIyAgaW5jbHVkZSA8c3lz
L3RpbWUuaD4gIC8vIE5PTElOVAogIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NSU5HVwog
Ci0vLyBjcHBsaW50IHRoaW5rcyB0aGF0IHRoZSBoZWFkZXIgaXMgYWxyZWFkeSBpbmNsdWRlZCwg
c28gd2Ugd2FudCB0bwotLy8gc2lsZW5jZSBpdC4KLSMgaW5jbHVkZSA8d2luZG93cy5oPiAgLy8g
Tk9MSU5UCi0jIHVuZGVmIG1pbgotCiAjZWxzZQogCi0vLyBBc3N1bWUgb3RoZXIgcGxhdGZvcm1z
IGhhdmUgZ2V0dGltZW9mZGF5KCkuCi0vLyBGSVhNRTogVXNlIGF1dG9jb25mIHRvIGRldGVjdCBh
dmFpbGFiaWxpdHkgb2YKLS8vICAgZ2V0dGltZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNf
R0VUVElNRU9GREFZXyAxCi0KIC8vIGNwcGxpbnQgdGhpbmtzIHRoYXQgdGhlIGhlYWRlciBpcyBh
bHJlYWR5IGluY2x1ZGVkLCBzbyB3ZSB3YW50IHRvCiAvLyBzaWxlbmNlIGl0LgogIyBpbmNsdWRl
IDxzeXMvdGltZS5oPiAgLy8gTk9MSU5UCkBAIC0xNjAsMTQgKzE0MywxNCBAQCB1c2luZyBpbnRl
cm5hbDo6U2h1ZmZsZTsKIAogLy8gQ29uc3RhbnRzLgogCi0vLyBBIHRlc3Qgd2hvc2UgdGVzdCBj
YXNlIG5hbWUgb3IgdGVzdCBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMKKy8vIEEgdGVzdCB3
aG9zZSB0ZXN0IHN1aXRlIG5hbWUgb3IgdGVzdCBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMK
IC8vIGRpc2FibGVkIGFuZCBub3QgcnVuLgogc3RhdGljIGNvbnN0IGNoYXIga0Rpc2FibGVUZXN0
RmlsdGVyW10gPSAiRElTQUJMRURfKjoqL0RJU0FCTEVEXyoiOwogCi0vLyBBIHRlc3QgY2FzZSB3
aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMgY29uc2lkZXJlZCBhIGRlYXRoCi0vLyB0
ZXN0IGNhc2UgYW5kIHdpbGwgYmUgcnVuIGJlZm9yZSB0ZXN0IGNhc2VzIHdob3NlIG5hbWUgZG9l
c24ndAorLy8gQSB0ZXN0IHN1aXRlIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGlzIGZpbHRlciBpcyBj
b25zaWRlcmVkIGEgZGVhdGgKKy8vIHRlc3Qgc3VpdGUgYW5kIHdpbGwgYmUgcnVuIGJlZm9yZSB0
ZXN0IHN1aXRlcyB3aG9zZSBuYW1lIGRvZXNuJ3QKIC8vIG1hdGNoIHRoaXMgZmlsdGVyLgotc3Rh
dGljIGNvbnN0IGNoYXIga0RlYXRoVGVzdENhc2VGaWx0ZXJbXSA9ICIqRGVhdGhUZXN0OipEZWF0
aFRlc3QvKiI7CitzdGF0aWMgY29uc3QgY2hhciBrRGVhdGhUZXN0U3VpdGVGaWx0ZXJbXSA9ICIq
RGVhdGhUZXN0OipEZWF0aFRlc3QvKiI7CiAKIC8vIEEgdGVzdCBmaWx0ZXIgdGhhdCBtYXRjaGVz
IGV2ZXJ5dGhpbmcuCiBzdGF0aWMgY29uc3QgY2hhciBrVW5pdmVyc2FsRmlsdGVyW10gPSAiKiI7
CkBAIC0xOTAsMjAgKzE3MywyMCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8gc3RhY2sgdHJh
Y2UuCiBjb25zdCBjaGFyIGtTdGFja1RyYWNlTWFya2VyW10gPSAiXG5TdGFjayB0cmFjZTpcbiI7
CiAKLS8vIGdfaGVscF9mbGFnIGlzIHRydWUgaWZmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVp
dmFsZW50IGZvcm0gaXMKLS8vIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLy8gZ19o
ZWxwX2ZsYWcgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1
aXZhbGVudCBmb3JtCisvLyBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KIGJvb2wg
Z19oZWxwX2ZsYWcgPSBmYWxzZTsKIAogLy8gVXRpbHR5IGZ1bmN0aW9uIHRvIE9wZW4gRmlsZSBm
b3IgV3JpdGluZwogc3RhdGljIEZJTEUqIE9wZW5GaWxlRm9yV3JpdGluZyhjb25zdCBzdGQ6OnN0
cmluZyYgb3V0cHV0X2ZpbGUpIHsKLSAgRklMRSogZmlsZW91dCA9IE5VTEw7CisgIEZJTEUqIGZp
bGVvdXQgPSBudWxscHRyOwogICBGaWxlUGF0aCBvdXRwdXRfZmlsZV9wYXRoKG91dHB1dF9maWxl
KTsKICAgRmlsZVBhdGggb3V0cHV0X2RpcihvdXRwdXRfZmlsZV9wYXRoLlJlbW92ZUZpbGVOYW1l
KCkpOwogCiAgIGlmIChvdXRwdXRfZGlyLkNyZWF0ZURpcmVjdG9yaWVzUmVjdXJzaXZlbHkoKSkg
ewogICAgIGZpbGVvdXQgPSBwb3NpeDo6Rk9wZW4ob3V0cHV0X2ZpbGUuY19zdHIoKSwgInciKTsK
ICAgfQotICBpZiAoZmlsZW91dCA9PSBOVUxMKSB7CisgIGlmIChmaWxlb3V0ID09IG51bGxwdHIp
IHsKICAgICBHVEVTVF9MT0dfKEZBVEFMKSA8PCAiVW5hYmxlIHRvIG9wZW4gZmlsZSBcIiIgPDwg
b3V0cHV0X2ZpbGUgPDwgIlwiIjsKICAgfQogICByZXR1cm4gZmlsZW91dDsKQEAgLTIxNiwyNyAr
MTk5LDQxIEBAIHN0YXRpYyBGSUxFKiBPcGVuRmlsZUZvcldyaXRpbmcoY29uc3Qgc3RkOjpzdHJp
bmcmIG91dHB1dF9maWxlKSB7CiBzdGF0aWMgY29uc3QgY2hhciogR2V0RGVmYXVsdEZpbHRlcigp
IHsKICAgY29uc3QgY2hhciogY29uc3QgdGVzdGJyaWRnZV90ZXN0X29ubHkgPQogICAgICAgaW50
ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RCUklER0VfVEVTVF9PTkxZIik7Ci0gIGlmICh0ZXN0
YnJpZGdlX3Rlc3Rfb25seSAhPSBOVUxMKSB7CisgIGlmICh0ZXN0YnJpZGdlX3Rlc3Rfb25seSAh
PSBudWxscHRyKSB7CiAgICAgcmV0dXJuIHRlc3RicmlkZ2VfdGVzdF9vbmx5OwogICB9CiAgIHJl
dHVybiBrVW5pdmVyc2FsRmlsdGVyOwogfQogCisvLyBCYXplbCBwYXNzZXMgaW4gdGhlIGFyZ3Vt
ZW50IHRvICctLXRlc3RfcnVubmVyX2ZhaWxfZmFzdCcgdmlhIHRoZQorLy8gVEVTVEJSSURHRV9U
RVNUX1JVTk5FUl9GQUlMX0ZBU1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCitzdGF0aWMgYm9vbCBH
ZXREZWZhdWx0RmFpbEZhc3QoKSB7CisgIGNvbnN0IGNoYXIqIGNvbnN0IHRlc3RicmlkZ2VfdGVz
dF9ydW5uZXJfZmFpbF9mYXN0ID0KKyAgICAgIGludGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNU
QlJJREdFX1RFU1RfUlVOTkVSX0ZBSUxfRkFTVCIpOworICBpZiAodGVzdGJyaWRnZV90ZXN0X3J1
bm5lcl9mYWlsX2Zhc3QgIT0gbnVsbHB0cikgeworICAgIHJldHVybiBzdHJjbXAodGVzdGJyaWRn
ZV90ZXN0X3J1bm5lcl9mYWlsX2Zhc3QsICIxIikgPT0gMDsKKyAgfQorICByZXR1cm4gZmFsc2U7
Cit9CisKK0dURVNUX0RFRklORV9ib29sXygKKyAgICBmYWlsX2Zhc3QsIGludGVybmFsOjpCb29s
RnJvbUdUZXN0RW52KCJmYWlsX2Zhc3QiLCBHZXREZWZhdWx0RmFpbEZhc3QoKSksCisgICAgIlRy
dWUgaWYgYW5kIG9ubHkgaWYgYSB0ZXN0IGZhaWx1cmUgc2hvdWxkIHN0b3AgZnVydGhlciB0ZXN0
IGV4ZWN1dGlvbi4iKTsKKwogR1RFU1RfREVGSU5FX2Jvb2xfKAogICAgIGFsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzLAogICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJhbHNvX3J1bl9kaXNh
YmxlZF90ZXN0cyIsIGZhbHNlKSwKICAgICAiUnVuIGRpc2FibGVkIHRlc3RzIHRvbywgaW4gYWRk
aXRpb24gdG8gdGhlIHRlc3RzIG5vcm1hbGx5IGJlaW5nIHJ1bi4iKTsKIAogR1RFU1RfREVGSU5F
X2Jvb2xfKAotICAgIGJyZWFrX29uX2ZhaWx1cmUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rl
c3RFbnYoImJyZWFrX29uX2ZhaWx1cmUiLCBmYWxzZSksCi0gICAgIlRydWUgaWZmIGEgZmFpbGVk
IGFzc2VydGlvbiBzaG91bGQgYmUgYSBkZWJ1Z2dlciBicmVhay1wb2ludC4iKTsKKyAgICBicmVh
a19vbl9mYWlsdXJlLCBpbnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigiYnJlYWtfb25fZmFpbHVy
ZSIsIGZhbHNlKSwKKyAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiBhIGZhaWxlZCBhc3NlcnRpb24g
c2hvdWxkIGJlIGEgZGVidWdnZXIgIgorICAgICJicmVhay1wb2ludC4iKTsKIAotR1RFU1RfREVG
SU5FX2Jvb2xfKAotICAgIGNhdGNoX2V4Y2VwdGlvbnMsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9t
R1Rlc3RFbnYoImNhdGNoX2V4Y2VwdGlvbnMiLCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBHVEVT
VF9OQU1FXwotICAgICIgc2hvdWxkIGNhdGNoIGV4Y2VwdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMg
dGVzdCBmYWlsdXJlcy4iKTsKK0dURVNUX0RFRklORV9ib29sXyhjYXRjaF9leGNlcHRpb25zLAor
ICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNl
cHRpb25zIiwgdHJ1ZSksCisgICAgICAgICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYg
IiBHVEVTVF9OQU1FXworICAgICAgICAgICAgICAgICAgICIgc2hvdWxkIGNhdGNoIGV4Y2VwdGlv
bnMgYW5kIHRyZWF0IHRoZW0gYXMgdGVzdCBmYWlsdXJlcy4iKTsKIAogR1RFU1RfREVGSU5FX3N0
cmluZ18oCiAgICAgY29sb3IsCkBAIC0yODQsMTYgKzI4MSwxNiBAQCBHVEVTVF9ERUZJTkVfc3Ry
aW5nXygKICAgICAiZGlnaXRzLiIpOwogCiBHVEVTVF9ERUZJTkVfYm9vbF8oCi0gICAgcHJpbnRf
dGltZSwKLSAgICBpbnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigicHJpbnRfdGltZSIsIHRydWUp
LAotICAgICJUcnVlIGlmZiAiIEdURVNUX05BTUVfCi0gICAgIiBzaG91bGQgZGlzcGxheSBlbGFw
c2VkIHRpbWUgaW4gdGV4dCBvdXRwdXQuIik7CisgICAgYnJpZWYsIGludGVybmFsOjpCb29sRnJv
bUdUZXN0RW52KCJicmllZiIsIGZhbHNlKSwKKyAgICAiVHJ1ZSBpZiBvbmx5IHRlc3QgZmFpbHVy
ZXMgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0ZXh0IG91dHB1dC4iKTsKIAotR1RFU1RfREVGSU5F
X2Jvb2xfKAotICAgIHByaW50X3V0ZjgsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYo
InByaW50X3V0ZjgiLCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBHVEVTVF9OQU1FXwotICAgICIg
cHJpbnRzIFVURjggY2hhcmFjdGVycyBhcyB0ZXh0LiIpOworR1RFU1RfREVGSU5FX2Jvb2xfKHBy
aW50X3RpbWUsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJwcmludF90aW1lIiwgdHJ1ZSks
CisgICAgICAgICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXwor
ICAgICAgICAgICAgICAgICAgICIgc2hvdWxkIGRpc3BsYXkgZWxhcHNlZCB0aW1lIGluIHRleHQg
b3V0cHV0LiIpOworCitHVEVTVF9ERUZJTkVfYm9vbF8ocHJpbnRfdXRmOCwgaW50ZXJuYWw6OkJv
b2xGcm9tR1Rlc3RFbnYoInByaW50X3V0ZjgiLCB0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAi
VHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdURVNUX05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBw
cmludHMgVVRGOCBjaGFyYWN0ZXJzIGFzIHRleHQuIik7CiAKIEdURVNUX0RFRklORV9pbnQzMl8o
CiAgICAgcmFuZG9tX3NlZWQsCkBAIC0zMDcsMTYgKzMwNCwxNCBAQCBHVEVTVF9ERUZJTkVfaW50
MzJfKAogICAgICJIb3cgbWFueSB0aW1lcyB0byByZXBlYXQgZWFjaCB0ZXN0LiAgU3BlY2lmeSBh
IG5lZ2F0aXZlIG51bWJlciAiCiAgICAgImZvciByZXBlYXRpbmcgZm9yZXZlci4gIFVzZWZ1bCBm
b3Igc2hha2luZyBvdXQgZmxha3kgdGVzdHMuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAg
ICBzaG93X2ludGVybmFsX3N0YWNrX2ZyYW1lcywgZmFsc2UsCi0gICAgIlRydWUgaWZmICIgR1RF
U1RfTkFNRV8gIiBzaG91bGQgaW5jbHVkZSBpbnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCi0g
ICAgInByaW50aW5nIHRlc3QgZmFpbHVyZSBzdGFjayB0cmFjZXMuIik7CitHVEVTVF9ERUZJTkVf
Ym9vbF8oc2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMsIGZhbHNlLAorICAgICAgICAgICAgICAg
ICAgICJUcnVlIGlmIGFuZCBvbmx5IGlmICIgR1RFU1RfTkFNRV8KKyAgICAgICAgICAgICAgICAg
ICAiIHNob3VsZCBpbmNsdWRlIGludGVybmFsIHN0YWNrIGZyYW1lcyB3aGVuICIKKyAgICAgICAg
ICAgICAgICAgICAicHJpbnRpbmcgdGVzdCBmYWlsdXJlIHN0YWNrIHRyYWNlcy4iKTsKIAotR1RF
U1RfREVGSU5FX2Jvb2xfKAotICAgIHNodWZmbGUsCi0gICAgaW50ZXJuYWw6OkJvb2xGcm9tR1Rl
c3RFbnYoInNodWZmbGUiLCBmYWxzZSksCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAg
ICAiIHNob3VsZCByYW5kb21pemUgdGVzdHMnIG9yZGVyIG9uIGV2ZXJ5IHJ1bi4iKTsKK0dURVNU
X0RFRklORV9ib29sXyhzaHVmZmxlLCBpbnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigic2h1ZmZs
ZSIsIGZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAiVHJ1ZSBpZiBhbmQgb25seSBpZiAiIEdU
RVNUX05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBzaG91bGQgcmFuZG9taXplIHRlc3RzJyBv
cmRlciBvbiBldmVyeSBydW4uIik7CiAKIEdURVNUX0RFRklORV9pbnQzMl8oCiAgICAgc3RhY2tf
dHJhY2VfZGVwdGgsCkBAIC0zNTAsMTAgKzM0NSwxMCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewog
Ly8gR2VuZXJhdGVzIGEgcmFuZG9tIG51bWJlciBmcm9tIFswLCByYW5nZSksIHVzaW5nIGEgTGlu
ZWFyCiAvLyBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIChMQ0cpLiAgQ3Jhc2hlcyBpZiAncmFuZ2Un
IGlzIDAgb3IgZ3JlYXRlcgogLy8gdGhhbiBrTWF4UmFuZ2UuCi1VSW50MzIgUmFuZG9tOjpHZW5l
cmF0ZShVSW50MzIgcmFuZ2UpIHsKK3VpbnQzMl90IFJhbmRvbTo6R2VuZXJhdGUodWludDMyX3Qg
cmFuZ2UpIHsKICAgLy8gVGhlc2UgY29uc3RhbnRzIGFyZSB0aGUgc2FtZSBhcyBhcmUgdXNlZCBp
biBnbGliYydzIHJhbmQoMykuCiAgIC8vIFVzZSB3aWRlciB0eXBlcyB0aGFuIG5lY2Vzc2FyeSB0
byBwcmV2ZW50IHVuc2lnbmVkIG92ZXJmbG93IGRpYWdub3N0aWNzLgotICBzdGF0ZV8gPSBzdGF0
aWNfY2FzdDxVSW50MzI+KDExMDM1MTUyNDVVTEwqc3RhdGVfICsgMTIzNDVVKSAlIGtNYXhSYW5n
ZTsKKyAgc3RhdGVfID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDExMDM1MTUyNDVVTEwqc3RhdGVf
ICsgMTIzNDVVKSAlIGtNYXhSYW5nZTsKIAogICBHVEVTVF9DSEVDS18ocmFuZ2UgPiAwKQogICAg
ICAgPDwgIkNhbm5vdCBnZW5lcmF0ZSBhIG51bWJlciBpbiB0aGUgcmFuZ2UgWzAsIDApLiI7CkBA
IC0zNjcsMTYgKzM2MiwxNiBAQCBVSW50MzIgUmFuZG9tOjpHZW5lcmF0ZShVSW50MzIgcmFuZ2Up
IHsKICAgcmV0dXJuIHN0YXRlXyAlIHJhbmdlOwogfQogCi0vLyBHVGVzdElzSW5pdGlhbGl6ZWQo
KSByZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyIGhhcyBpbml0aWFsaXplZAorLy8gR1Rlc3RJc0lu
aXRpYWxpemVkKCkgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1c2VyIGhhcyBpbml0
aWFsaXplZAogLy8gR29vZ2xlIFRlc3QuICBVc2VmdWwgZm9yIGNhdGNoaW5nIHRoZSB1c2VyIG1p
c3Rha2Ugb2Ygbm90IGluaXRpYWxpemluZwogLy8gR29vZ2xlIFRlc3QgYmVmb3JlIGNhbGxpbmcg
UlVOX0FMTF9URVNUUygpLgogc3RhdGljIGJvb2wgR1Rlc3RJc0luaXRpYWxpemVkKCkgeyByZXR1
cm4gR2V0QXJndnMoKS5zaXplKCkgPiAwOyB9CiAKLS8vIEl0ZXJhdGVzIG92ZXIgYSB2ZWN0b3Ig
b2YgVGVzdENhc2VzLCBrZWVwaW5nIGEgcnVubmluZyBzdW0gb2YgdGhlCisvLyBJdGVyYXRlcyBv
dmVyIGEgdmVjdG9yIG9mIFRlc3RTdWl0ZXMsIGtlZXBpbmcgYSBydW5uaW5nIHN1bSBvZiB0aGUK
IC8vIHJlc3VsdHMgb2YgY2FsbGluZyBhIGdpdmVuIGludC1yZXR1cm5pbmcgbWV0aG9kIG9uIGVh
Y2guCiAvLyBSZXR1cm5zIHRoZSBzdW0uCi1zdGF0aWMgaW50IFN1bU92ZXJUZXN0Q2FzZUxpc3Qo
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgY2FzZV9saXN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAoVGVzdENhc2U6OiptZXRob2QpKCkgY29uc3QpIHsKK3N0YXRp
YyBpbnQgU3VtT3ZlclRlc3RTdWl0ZUxpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4m
IGNhc2VfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IChUZXN0U3Vp
dGU6OiptZXRob2QpKCkgY29uc3QpIHsKICAgaW50IHN1bSA9IDA7CiAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY2FzZV9saXN0LnNpemUoKTsgaSsrKSB7CiAgICAgc3VtICs9IChjYXNlX2xpc3Rb
aV0tPiptZXRob2QpKCk7CkBAIC0zODQsMjAgKzM3OSwyMCBAQCBzdGF0aWMgaW50IFN1bU92ZXJU
ZXN0Q2FzZUxpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgY2FzZV9saXN0LAogICBy
ZXR1cm4gc3VtOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgcGFzc2Vk
Lgotc3RhdGljIGJvb2wgVGVzdENhc2VQYXNzZWQoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkg
ewotICByZXR1cm4gdGVzdF9jYXNlLT5zaG91bGRfcnVuKCkgJiYgdGVzdF9jYXNlLT5QYXNzZWQo
KTsKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBwYXNzZWQu
CitzdGF0aWMgYm9vbCBUZXN0U3VpdGVQYXNzZWQoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRl
KSB7CisgIHJldHVybiB0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkgJiYgdGVzdF9zdWl0ZS0+UGFz
c2VkKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgY2FzZSBmYWlsZWQuCi1z
dGF0aWMgYm9vbCBUZXN0Q2FzZUZhaWxlZChjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlKSB7Ci0g
IHJldHVybiB0ZXN0X2Nhc2UtPnNob3VsZF9ydW4oKSAmJiB0ZXN0X2Nhc2UtPkZhaWxlZCgpOwor
Ly8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHN1aXRlIGZhaWxlZC4KK3N0
YXRpYyBib29sIFRlc3RTdWl0ZUZhaWxlZChjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsK
KyAgcmV0dXJuIHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4oKSAmJiB0ZXN0X3N1aXRlLT5GYWlsZWQo
KTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0ZXN0X2Nhc2UgY29udGFpbnMgYXQgbGVhc3Qg
b25lIHRlc3QgdGhhdCBzaG91bGQKLS8vIHJ1bi4KLXN0YXRpYyBib29sIFNob3VsZFJ1blRlc3RD
YXNlKGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UpIHsKLSAgcmV0dXJuIHRlc3RfY2FzZS0+c2hv
dWxkX3J1bigpOworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3Rfc3VpdGUgY29u
dGFpbnMgYXQgbGVhc3Qgb25lIHRlc3QgdGhhdAorLy8gc2hvdWxkIHJ1bi4KK3N0YXRpYyBib29s
IFNob3VsZFJ1blRlc3RTdWl0ZShjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIHsKKyAgcmV0
dXJuIHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4oKTsKIH0KIAogLy8gQXNzZXJ0SGVscGVyIGNvbnN0
cnVjdG9yLgpAQCAtNDIzLDggKzQxOCwxNjEgQEAgdm9pZCBBc3NlcnRIZWxwZXI6Om9wZXJhdG9y
PShjb25zdCBNZXNzYWdlJiBtZXNzYWdlKSBjb25zdCB7CiAgICAgICAgICAgICAgICAgICAgICAg
KTsgIC8vIE5PTElOVAogfQogCi0vLyBNdXRleCBmb3IgbGlua2VkIHBvaW50ZXJzLgotR1RFU1Rf
QVBJXyBHVEVTVF9ERUZJTkVfU1RBVElDX01VVEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOworbmFt
ZXNwYWNlIHsKKworLy8gV2hlbiBURVNUX1AgaXMgZm91bmQgd2l0aG91dCBhIG1hdGNoaW5nIElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUAorLy8gdG8gY3JlYXRlcyB0ZXN0IGNhc2VzIGZvciBpdCwg
YSBzeW50ZXRpYyB0ZXN0IGNhc2UgaXMKKy8vIGluc2VydGVkIHRvIHJlcG9ydCBldGhlciBhbiBl
cnJvciBvciBhIGxvZyBtZXNzYWdlLgorLy8KKy8vIFRoaXMgY29uZmlndXJhdGlvbiBiaXQgd2ls
bCBsaWtlbHkgYmUgcmVtb3ZlZCBhdCBzb21lIHBvaW50LgorY29uc3RleHByIGJvb2wga0Vycm9y
T25Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0ID0gdHJ1ZTsKK2NvbnN0ZXhwciBib29s
IGtFcnJvck9uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3QgPSB0cnVlOworCisv
LyBBIHRlc3QgdGhhdCBmYWlscyBhdCBhIGdpdmVuIGZpbGUvbGluZSBsb2NhdGlvbiB3aXRoIGEg
Z2l2ZW4gbWVzc2FnZS4KK2NsYXNzIEZhaWx1cmVUZXN0IDogcHVibGljIFRlc3QgeworIHB1Ymxp
YzoKKyAgZXhwbGljaXQgRmFpbHVyZVRlc3QoY29uc3QgQ29kZUxvY2F0aW9uJiBsb2MsIHN0ZDo6
c3RyaW5nIGVycm9yX21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXNfZXJy
b3IpCisgICAgICA6IGxvY18obG9jKSwKKyAgICAgICAgZXJyb3JfbWVzc2FnZV8oc3RkOjptb3Zl
KGVycm9yX21lc3NhZ2UpKSwKKyAgICAgICAgYXNfZXJyb3JfKGFzX2Vycm9yKSB7fQorCisgIHZv
aWQgVGVzdEJvZHkoKSBvdmVycmlkZSB7CisgICAgaWYgKGFzX2Vycm9yXykgeworICAgICAgQXNz
ZXJ0SGVscGVyKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLCBsb2NfLmZpbGUuY19z
dHIoKSwKKyAgICAgICAgICAgICAgICAgICBsb2NfLmxpbmUsICIiKSA9IE1lc3NhZ2UoKSA8PCBl
cnJvcl9tZXNzYWdlXzsKKyAgICB9IGVsc2UgeworICAgICAgc3RkOjpjb3V0IDw8IGVycm9yX21l
c3NhZ2VfIDw8IHN0ZDo6ZW5kbDsKKyAgICB9CisgIH0KKworIHByaXZhdGU6CisgIGNvbnN0IENv
ZGVMb2NhdGlvbiBsb2NfOworICBjb25zdCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlXzsKKyAg
Y29uc3QgYm9vbCBhc19lcnJvcl87Cit9OworCisKK30gIC8vIG5hbWVzcGFjZQorCitzdGQ6OnNl
dDxzdGQ6OnN0cmluZz4qIEdldElnbm9yZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlcygpIHsKKyAg
cmV0dXJuIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5pbXBsKCktPmlnbm9yZWRfcGFyYW1ldGVy
aXplZF90ZXN0X3N1aXRlcygpOworfQorCisvLyBBZGQgYSBnaXZlbiB0ZXN0X3N1aXQgdG8gdGhl
IGxpc3Qgb2YgdGhlbSBhbGxvdyB0byBnbyB1bi1pbnN0YW50aWF0ZWQuCitNYXJrQXNJZ25vcmVk
OjpNYXJrQXNJZ25vcmVkKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGUpIHsKKyAgR2V0SWdub3JlZFBh
cmFtZXRlcml6ZWRUZXN0U3VpdGVzKCktPmluc2VydCh0ZXN0X3N1aXRlKTsKK30KKworLy8gSWYg
dGhpcyBwYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgaGFzIG5vIGluc3RhbnRpYXRpb25zIChhbmQg
dGhhdAorLy8gaGFzIG5vdCBiZWVuIG1hcmtlZCBhcyBva2F5KSwgZW1pdCBhIHRlc3QgY2FzZSBy
ZXBvcnRpbmcgdGhhdC4KK3ZvaWQgSW5zZXJ0U3ludGhldGljVGVzdENhc2UoY29uc3Qgc3RkOjpz
dHJpbmcmIG5hbWUsIENvZGVMb2NhdGlvbiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBoYXNfdGVzdF9wKSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQgPSAqR2V0
SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCk7CisgIGlmIChpZ25vcmVkLmZpbmQobmFt
ZSkgIT0gaWdub3JlZC5lbmQoKSkgcmV0dXJuOworCisgIGNvbnN0IGNoYXIga01pc3NpbmdJbnN0
YW50aWF0aW9uW10gPSAgLy8KKyAgICAgICIgaXMgZGVmaW5lZCB2aWEgVEVTVF9QLCBidXQgbmV2
ZXIgaW5zdGFudGlhdGVkLiBOb25lIG9mIHRoZSB0ZXN0IGNhc2VzICIKKyAgICAgICJ3aWxsIHJ1
bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBpcyBwcm92aWRlZCBvciB0aGUg
b25seSAiCisgICAgICAib25lcyBwcm92aWRlZCBleHBhbmQgdG8gbm90aGluZy4iCisgICAgICAi
XG5cbiIKKyAgICAgICJJZGVhbGx5LCBURVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZl
ciBiZSBpbmNsdWRlZCBhcyBwYXJ0IG9mICIKKyAgICAgICJiaW5hcmllcyB0aGF0IGludGVuZCB0
byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8sIGZvciBleGFtcGxlLCBiZWluZyAiCisgICAgICAi
cGxhY2VkIGluIGEgbGlicmFyeSB0aGF0IG1heSBiZSBsaW5rZWQgaW4gdG8gZ2V0IG90aGVyIHV0
aWxpdGllcy4pIjsKKworICBjb25zdCBjaGFyIGtNaXNzaW5nVGVzdENhc2VbXSA9ICAvLworICAg
ICAgIiBpcyBpbnN0YW50aWF0ZWQgdmlhIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5v
IHRlc3RzIGFyZSAiCisgICAgICAiZGVmaW5lZCB2aWEgVEVTVF9QIC4gTm8gdGVzdCBjYXNlcyB3
aWxsIHJ1bi4iCisgICAgICAiXG5cbiIKKyAgICAgICJJZGVhbGx5LCBJTlNUQU5USUFURV9URVNU
X1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZlciBiZSBpbnZva2VkIGZyb20gIgorICAgICAgImNvZGUg
dGhhdCBhbHdheXMgZGVwZW5kIG9uIGNvZGUgdGhhdCBwcm92aWRlcyBURVNUX1AuIEZhaWxpbmcg
dG8gZG8gIgorICAgICAgInNvIGlzIG9mdGVuIGFuIGluZGljYXRpb24gb2YgZGVhZCBjb2RlLCBl
LmcuIHRoZSBsYXN0IFRFU1RfUCB3YXMgIgorICAgICAgInJlbW92ZWQgYnV0IHRoZSByZXN0IGdv
dCBsZWZ0IGJlaGluZC4iOworCisgIHN0ZDo6c3RyaW5nIG1lc3NhZ2UgPQorICAgICAgIlBhcmFt
ZXRlcml6ZWQgdGVzdCBzdWl0ZSAiICsgbmFtZSArCisgICAgICAoaGFzX3Rlc3RfcCA/IGtNaXNz
aW5nSW5zdGFudGlhdGlvbiA6IGtNaXNzaW5nVGVzdENhc2UpICsKKyAgICAgICJcblxuIgorICAg
ICAgIlRvIHN1cHByZXNzIHRoaXMgZXJyb3IgZm9yIHRoaXMgdGVzdCBzdWl0ZSwgaW5zZXJ0IHRo
ZSBmb2xsb3dpbmcgbGluZSAiCisgICAgICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVz
cGFjZSBpdCBpcyBkZWZpbmVkIGluOiIKKyAgICAgICJcblxuIgorICAgICAgIkdURVNUX0FMTE9X
X1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVCgiICsgbmFtZSArICIpOyI7CisKKyAg
c3RkOjpzdHJpbmcgZnVsbF9uYW1lID0gIlVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZTwiICsgbmFtZSArICI+IjsKKyAgUmVnaXN0ZXJUZXN0KCAgLy8KKyAgICAgICJHb29nbGVU
ZXN0VmVyaWZpY2F0aW9uIiwgZnVsbF9uYW1lLmNfc3RyKCksCisgICAgICBudWxscHRyLCAgLy8g
Tm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICBudWxscHRyLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVy
LgorICAgICAgbG9jYXRpb24uZmlsZS5jX3N0cigpLCBsb2NhdGlvbi5saW5lLCBbbWVzc2FnZSwg
bG9jYXRpb25dIHsKKyAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlVGVzdChsb2NhdGlvbiwgbWVz
c2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRXJyb3JPblVuaW5zdGFudGlh
dGVkUGFyYW1ldGVyaXplZFRlc3QpOworICAgICAgfSk7Cit9CisKK3ZvaWQgUmVnaXN0ZXJUeXBl
UGFyYW1ldGVyaXplZFRlc3RTdWl0ZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9j
YXRpb24pIHsKKyAgR2V0VW5pdFRlc3RJbXBsKCktPnR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3Jl
Z2lzdHJ5KCkuUmVnaXN0ZXJUZXN0U3VpdGUoCisgICAgICB0ZXN0X3N1aXRlX25hbWUsIGNvZGVf
bG9jYXRpb24pOworfQorCit2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJ
bnN0YW50aWF0aW9uKGNvbnN0IGNoYXIqIGNhc2VfbmFtZSkgeworICBHZXRVbml0VGVzdEltcGwo
KQorICAgICAgLT50eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpCisgICAgICAuUmVn
aXN0ZXJJbnN0YW50aWF0aW9uKGNhc2VfbmFtZSk7Cit9CisKK3ZvaWQgVHlwZVBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVSZWdpc3RyeTo6UmVnaXN0ZXJUZXN0U3VpdGUoCisgICAgY29uc3QgY2hhciog
dGVzdF9zdWl0ZV9uYW1lLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgeworICBzdWl0ZXNf
LmVtcGxhY2Uoc3RkOjpzdHJpbmcodGVzdF9zdWl0ZV9uYW1lKSwKKyAgICAgICAgICAgICAgICAg
VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKGNvZGVfbG9jYXRpb24pKTsKK30KKwordm9p
ZCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5OjpSZWdpc3Rlckluc3RhbnRpYXRp
b24oCisgICAgICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSkgeworICBhdXRvIGl0ID0g
c3VpdGVzXy5maW5kKHN0ZDo6c3RyaW5nKHRlc3Rfc3VpdGVfbmFtZSkpOworICBpZiAoaXQgIT0g
c3VpdGVzXy5lbmQoKSkgeworICAgIGl0LT5zZWNvbmQuaW5zdGFudGlhdGVkID0gdHJ1ZTsKKyAg
fSBlbHNlIHsKKyAgICBHVEVTVF9MT0dfKEVSUk9SKSA8PCAiVW5rbm93biB0eXBlIHBhcmFtZXRl
cml6ZWQgdGVzdCBzdWl0ICciCisgICAgICAgICAgICAgICAgICAgICAgPDwgdGVzdF9zdWl0ZV9u
YW1lIDw8ICInIjsKKyAgfQorfQorCit2b2lkIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVn
aXN0cnk6OkNoZWNrRm9ySW5zdGFudGlhdGlvbnMoKSB7CisgIGNvbnN0IGF1dG8mIGlnbm9yZWQg
PSAqR2V0SWdub3JlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVzKCk7CisgIGZvciAoY29uc3QgYXV0
byYgdGVzdGNhc2UgOiBzdWl0ZXNfKSB7CisgICAgaWYgKHRlc3RjYXNlLnNlY29uZC5pbnN0YW50
aWF0ZWQpIGNvbnRpbnVlOworICAgIGlmIChpZ25vcmVkLmZpbmQodGVzdGNhc2UuZmlyc3QpICE9
IGlnbm9yZWQuZW5kKCkpIGNvbnRpbnVlOworCisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZSA9Cisg
ICAgICAgICJUeXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSAiICsgdGVzdGNhc2UuZmlyc3Qg
KworICAgICAgICAiIGlzIGRlZmluZWQgdmlhIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCwg
YnV0IG5ldmVyIGluc3RhbnRpYXRlZCAiCisgICAgICAgICJ2aWEgSU5TVEFOVElBVEVfVFlQRURf
VEVTVF9TVUlURV9QLiBOb25lIG9mIHRoZSB0ZXN0IGNhc2VzIHdpbGwgcnVuLiIKKyAgICAgICAg
IlxuXG4iCisgICAgICAgICJJZGVhbGx5LCBUWVBFRF9URVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxk
IG9ubHkgZXZlciBiZSBpbmNsdWRlZCBhcyAiCisgICAgICAgICJwYXJ0IG9mIGJpbmFyaWVzIHRo
YXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAoQXMgb3Bwb3NlZCB0bywgZm9yICIKKyAgICAgICAgImV4
YW1wbGUsIGJlaW5nIHBsYWNlZCBpbiBhIGxpYnJhcnkgdGhhdCBtYXkgYmUgbGlua2VkIGluIHRv
IGdldCBvdGhlciAiCisgICAgICAgICJ1dGlsaXRpZXMuKSIKKyAgICAgICAgIlxuXG4iCisgICAg
ICAgICJUbyBzdXBwcmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0
aGUgZm9sbG93aW5nIGxpbmUgIgorICAgICAgICAiKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5h
bWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOiIKKyAgICAgICAgIlxuXG4iCisgICAgICAgICJHVEVT
VF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoIiArCisgICAgICAgIHRl
c3RjYXNlLmZpcnN0ICsgIik7IjsKKworICAgIHN0ZDo6c3RyaW5nIGZ1bGxfbmFtZSA9CisgICAg
ICAgICJVbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPCIgKyB0ZXN0Y2Fz
ZS5maXJzdCArICI+IjsKKyAgICBSZWdpc3RlclRlc3QoICAvLworICAgICAgICAiR29vZ2xlVGVz
dFZlcmlmaWNhdGlvbiIsIGZ1bGxfbmFtZS5jX3N0cigpLAorICAgICAgICBudWxscHRyLCAgLy8g
Tm8gdHlwZSBwYXJhbWV0ZXIuCisgICAgICAgIG51bGxwdHIsICAvLyBObyB2YWx1ZSBwYXJhbWV0
ZXIuCisgICAgICAgIHRlc3RjYXNlLnNlY29uZC5jb2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwK
KyAgICAgICAgdGVzdGNhc2Uuc2Vjb25kLmNvZGVfbG9jYXRpb24ubGluZSwgW21lc3NhZ2UsIHRl
c3RjYXNlXSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBGYWlsdXJlVGVzdCh0ZXN0Y2FzZS5zZWNv
bmQuY29kZV9sb2NhdGlvbiwgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3QpOworICAgICAg
ICB9KTsKKyAgfQorfQogCiAvLyBBIGNvcHkgb2YgYWxsIGNvbW1hbmQgbGluZSBhcmd1bWVudHMu
ICBTZXQgYnkgSW5pdEdvb2dsZVRlc3QoKS4KIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiBnX2FyZ3ZzOwpAQCAtNDQ1LDcgKzU5Myw3IEBAIHN0YXRpYyA6OnN0ZDo6dmVjdG9yPHN0
ZDo6c3RyaW5nPiBnX2FyZ3ZzOwogRmlsZVBhdGggR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkg
ewogICBGaWxlUGF0aCByZXN1bHQ7CiAKLSNpZiBHVEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1Rf
T1NfV0lORE9XUyB8fCBHVEVTVF9PU19PUzIKICAgcmVzdWx0LlNldChGaWxlUGF0aChHZXRBcmd2
cygpWzBdKS5SZW1vdmVFeHRlbnNpb24oImV4ZSIpKTsKICNlbHNlCiAgIHJlc3VsdC5TZXQoRmls
ZVBhdGgoR2V0QXJndnMoKVswXSkpOwpAQCAtNDYwLDkgKzYwOCwxMCBAQCBGaWxlUGF0aCBHZXRD
dXJyZW50RXhlY3V0YWJsZU5hbWUoKSB7CiBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6Okdl
dE91dHB1dEZvcm1hdCgpIHsKICAgY29uc3QgY2hhciogY29uc3QgZ3Rlc3Rfb3V0cHV0X2ZsYWcg
PSBHVEVTVF9GTEFHKG91dHB1dCkuY19zdHIoKTsKICAgY29uc3QgY2hhciogY29uc3QgY29sb24g
PSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0X2ZsYWcsICc6Jyk7Ci0gIHJldHVybiAoY29sb24gPT0gTlVM
TCkgPwotICAgICAgc3RkOjpzdHJpbmcoZ3Rlc3Rfb3V0cHV0X2ZsYWcpIDoKLSAgICAgIHN0ZDo6
c3RyaW5nKGd0ZXN0X291dHB1dF9mbGFnLCBjb2xvbiAtIGd0ZXN0X291dHB1dF9mbGFnKTsKKyAg
cmV0dXJuIChjb2xvbiA9PSBudWxscHRyKQorICAgICAgICAgICAgID8gc3RkOjpzdHJpbmcoZ3Rl
c3Rfb3V0cHV0X2ZsYWcpCisgICAgICAgICAgICAgOiBzdGQ6OnN0cmluZyhndGVzdF9vdXRwdXRf
ZmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oY29s
b24gLSBndGVzdF9vdXRwdXRfZmxhZykpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRo
ZSByZXF1ZXN0ZWQgb3V0cHV0IGZpbGUsIG9yIHRoZSBkZWZhdWx0IGlmIG5vbmUKQEAgLTQ3NSw3
ICs2MjQsNyBAQCBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6OkdldEFic29sdXRlUGF0aFRv
T3V0cHV0RmlsZSgpIHsKICAgICBmb3JtYXQgPSBzdGQ6OnN0cmluZyhrRGVmYXVsdE91dHB1dEZv
cm1hdCk7CiAKICAgY29uc3QgY2hhciogY29uc3QgY29sb24gPSBzdHJjaHIoZ3Rlc3Rfb3V0cHV0
X2ZsYWcsICc6Jyk7Ci0gIGlmIChjb2xvbiA9PSBOVUxMKQorICBpZiAoY29sb24gPT0gbnVsbHB0
cikKICAgICByZXR1cm4gaW50ZXJuYWw6OkZpbGVQYXRoOjpNYWtlRmlsZU5hbWUoCiAgICAgICAg
IGludGVybmFsOjpGaWxlUGF0aCgKICAgICAgICAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgp
LT5vcmlnaW5hbF93b3JraW5nX2RpcigpKSwKQEAgLTQ4NCwxMCArNjMzLDYgQEAgc3RkOjpzdHJp
bmcgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKSB7CiAKICAg
aW50ZXJuYWw6OkZpbGVQYXRoIG91dHB1dF9uYW1lKGNvbG9uICsgMSk7CiAgIGlmICghb3V0cHV0
X25hbWUuSXNBYnNvbHV0ZVBhdGgoKSkKLSAgICAvLyBGSVhNRTogb24gV2luZG93cyBcc29tZVxw
YXRoIGlzIG5vdCBhbiBhYnNvbHV0ZQotICAgIC8vIHBhdGggKGFzIGl0cyBtZWFuaW5nIGRlcGVu
ZHMgb24gdGhlIGN1cnJlbnQgZHJpdmUpLCB5ZXQgdGhlCi0gICAgLy8gZm9sbG93aW5nIGxvZ2lj
IGZvciB0dXJuaW5nIGl0IGludG8gYW4gYWJzb2x1dGUgcGF0aCBpcyB3cm9uZy4KLSAgICAvLyBG
aXggaXQuCiAgICAgb3V0cHV0X25hbWUgPSBpbnRlcm5hbDo6RmlsZVBhdGg6OkNvbmNhdFBhdGhz
KAogICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9y
aWdpbmFsX3dvcmtpbmdfZGlyKCkpLAogICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgoY29sb24g
KyAxKSk7CkBAIC01MDEsNTQgKzY0Niw4OSBAQCBzdGQ6OnN0cmluZyBVbml0VGVzdE9wdGlvbnM6
OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpIHsKICAgcmV0dXJuIHJlc3VsdC5zdHJpbmco
KTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVz
IHRoZSBzdHJpbmcuICBUaGUKLS8vIGZpcnN0ICc6JyBvciAnXDAnIGNoYXJhY3RlciBpbiBwYXR0
ZXJuIG1hcmtzIHRoZSBlbmQgb2YgaXQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
dGhlIHdpbGRjYXJkIHBhdHRlcm4gbWF0Y2hlcyB0aGUgc3RyaW5nLiBFYWNoCisvLyBwYXR0ZXJu
IGNvbnNpc3RzIG9mIHJlZ3VsYXIgY2hhcmFjdGVycywgc2luZ2xlLWNoYXJhY3RlciB3aWxkY2Fy
ZHMgKD8pLCBhbmQKKy8vIG11bHRpLWNoYXJhY3RlciB3aWxkY2FyZHMgKCopLgogLy8KLS8vIFRo
aXMgcmVjdXJzaXZlIGFsZ29yaXRobSBpc24ndCB2ZXJ5IGVmZmljaWVudCwgYnV0IGlzIGNsZWFy
IGFuZAotLy8gd29ya3Mgd2VsbCBlbm91Z2ggZm9yIG1hdGNoaW5nIHRlc3QgbmFtZXMsIHdoaWNo
IGFyZSBzaG9ydC4KLWJvb2wgVW5pdFRlc3RPcHRpb25zOjpQYXR0ZXJuTWF0Y2hlc1N0cmluZyhj
b25zdCBjaGFyICpwYXR0ZXJuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnN0cikgewotICBzd2l0Y2ggKCpwYXR0ZXJuKSB7Ci0gICAgY2Fz
ZSAnXDAnOgotICAgIGNhc2UgJzonOiAgLy8gRWl0aGVyICc6JyBvciAnXDAnIG1hcmtzIHRoZSBl
bmQgb2YgdGhlIHBhdHRlcm4uCi0gICAgICByZXR1cm4gKnN0ciA9PSAnXDAnOwotICAgIGNhc2Ug
Jz8nOiAgLy8gTWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3Rlci4KLSAgICAgIHJldHVybiAqc3Ry
ICE9ICdcMCcgJiYgUGF0dGVybk1hdGNoZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwot
ICAgIGNhc2UgJyonOiAgLy8gTWF0Y2hlcyBhbnkgc3RyaW5nIChwb3NzaWJseSBlbXB0eSkgb2Yg
Y2hhcmFjdGVycy4KLSAgICAgIHJldHVybiAoKnN0ciAhPSAnXDAnICYmIFBhdHRlcm5NYXRjaGVz
U3RyaW5nKHBhdHRlcm4sIHN0ciArIDEpKSB8fAotICAgICAgICAgIFBhdHRlcm5NYXRjaGVzU3Ry
aW5nKHBhdHRlcm4gKyAxLCBzdHIpOwotICAgIGRlZmF1bHQ6ICAvLyBOb24tc3BlY2lhbCBjaGFy
YWN0ZXIuICBNYXRjaGVzIGl0c2VsZi4KLSAgICAgIHJldHVybiAqcGF0dGVybiA9PSAqc3RyICYm
Ci0gICAgICAgICAgUGF0dGVybk1hdGNoZXNTdHJpbmcocGF0dGVybiArIDEsIHN0ciArIDEpOwot
ICB9Ci19Ci0KLWJvb2wgVW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAotICAgIGNvbnN0
IHN0ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBjaGFyKiBmaWx0ZXIpIHsKLSAgY29uc3QgY2hhciAq
Y3VyX3BhdHRlcm4gPSBmaWx0ZXI7Ci0gIGZvciAoOzspIHsKLSAgICBpZiAoUGF0dGVybk1hdGNo
ZXNTdHJpbmcoY3VyX3BhdHRlcm4sIG5hbWUuY19zdHIoKSkpIHsKLSAgICAgIHJldHVybiB0cnVl
OworLy8gVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGEgbGluZWFyLXRpbWUgc3RyaW5nIGdsb2Ji
aW5nIGFsZ29yaXRobSBiYXNlZCBvbgorLy8gaHR0cHM6Ly9yZXNlYXJjaC5zd3RjaC5jb20vZ2xv
Yi4KK3N0YXRpYyBib29sIFBhdHRlcm5NYXRjaGVzU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBu
YW1lX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBh
dHRlcm4sIGNvbnN0IGNoYXIqIHBhdHRlcm5fZW5kKSB7CisgIGNvbnN0IGNoYXIqIG5hbWUgPSBu
YW1lX3N0ci5jX3N0cigpOworICBjb25zdCBjaGFyKiBjb25zdCBuYW1lX2JlZ2luID0gbmFtZTsK
KyAgY29uc3QgY2hhciogY29uc3QgbmFtZV9lbmQgPSBuYW1lICsgbmFtZV9zdHIuc2l6ZSgpOwor
CisgIGNvbnN0IGNoYXIqIHBhdHRlcm5fbmV4dCA9IHBhdHRlcm47CisgIGNvbnN0IGNoYXIqIG5h
bWVfbmV4dCA9IG5hbWU7CisKKyAgd2hpbGUgKHBhdHRlcm4gPCBwYXR0ZXJuX2VuZCB8fCBuYW1l
IDwgbmFtZV9lbmQpIHsKKyAgICBpZiAocGF0dGVybiA8IHBhdHRlcm5fZW5kKSB7CisgICAgICBz
d2l0Y2ggKCpwYXR0ZXJuKSB7CisgICAgICAgIGRlZmF1bHQ6ICAvLyBNYXRjaCBhbiBvcmRpbmFy
eSBjaGFyYWN0ZXIuCisgICAgICAgICAgaWYgKG5hbWUgPCBuYW1lX2VuZCAmJiAqbmFtZSA9PSAq
cGF0dGVybikgeworICAgICAgICAgICAgKytwYXR0ZXJuOworICAgICAgICAgICAgKytuYW1lOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlICc/JzogIC8vIE1hdGNoIGFueSBzaW5nbGUgY2hhcmFjdGVyLgorICAgICAgICAg
IGlmIChuYW1lIDwgbmFtZV9lbmQpIHsKKyAgICAgICAgICAgICsrcGF0dGVybjsKKyAgICAgICAg
ICAgICsrbmFtZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAnKic6CisgICAgICAgICAgLy8gTWF0Y2ggemVybyBvciBt
b3JlIGNoYXJhY3RlcnMuIFN0YXJ0IGJ5IHNraXBwaW5nIG92ZXIgdGhlIHdpbGRjYXJkCisgICAg
ICAgICAgLy8gYW5kIG1hdGNoaW5nIHplcm8gY2hhcmFjdGVycyBmcm9tIG5hbWUuIElmIHRoYXQg
ZmFpbHMsIHJlc3RhcnQgYW5kCisgICAgICAgICAgLy8gbWF0Y2ggb25lIG1vcmUgY2hhcmFjdGVy
IHRoYW4gdGhlIGxhc3QgYXR0ZW1wdC4KKyAgICAgICAgICBwYXR0ZXJuX25leHQgPSBwYXR0ZXJu
OworICAgICAgICAgIG5hbWVfbmV4dCA9IG5hbWUgKyAxOworICAgICAgICAgICsrcGF0dGVybjsK
KyAgICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKyAgICB9CisgICAgLy8gRmFpbGVkIHRvIG1h
dGNoIGEgY2hhcmFjdGVyLiBSZXN0YXJ0IGlmIHBvc3NpYmxlLgorICAgIGlmIChuYW1lX2JlZ2lu
IDwgbmFtZV9uZXh0ICYmIG5hbWVfbmV4dCA8PSBuYW1lX2VuZCkgeworICAgICAgcGF0dGVybiA9
IHBhdHRlcm5fbmV4dDsKKyAgICAgIG5hbWUgPSBuYW1lX25leHQ7CisgICAgICBjb250aW51ZTsK
ICAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQogCi0gICAg
Ly8gRmluZHMgdGhlIG5leHQgcGF0dGVybiBpbiB0aGUgZmlsdGVyLgotICAgIGN1cl9wYXR0ZXJu
ID0gc3RyY2hyKGN1cl9wYXR0ZXJuLCAnOicpOworYm9vbCBVbml0VGVzdE9wdGlvbnM6Ok1hdGNo
ZXNGaWx0ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWVfc3RyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsdGVyKSB7CisgIC8vIFRoZSBmaWx0ZXIg
aXMgYSBsaXN0IG9mIHBhdHRlcm5zIHNlcGFyYXRlZCBieSBjb2xvbnMgKDopLgorICBjb25zdCBj
aGFyKiBwYXR0ZXJuID0gZmlsdGVyOworICB3aGlsZSAodHJ1ZSkgeworICAgIC8vIEZpbmQgdGhl
IGJvdW5kcyBvZiB0aGlzIHBhdHRlcm4uCisgICAgY29uc3QgY2hhciogY29uc3QgbmV4dF9zZXAg
PSBzdHJjaHIocGF0dGVybiwgJzonKTsKKyAgICBjb25zdCBjaGFyKiBjb25zdCBwYXR0ZXJuX2Vu
ZCA9CisgICAgICAgIG5leHRfc2VwICE9IG51bGxwdHIgPyBuZXh0X3NlcCA6IHBhdHRlcm4gKyBz
dHJsZW4ocGF0dGVybik7CiAKLSAgICAvLyBSZXR1cm5zIGlmIG5vIG1vcmUgcGF0dGVybiBjYW4g
YmUgZm91bmQuCi0gICAgaWYgKGN1cl9wYXR0ZXJuID09IE5VTEwpIHsKLSAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAvLyBDaGVjayBpZiB0aGlzIHBhdHRlcm4gbWF0Y2hlcyBuYW1lX3N0ci4KKyAg
ICBpZiAoUGF0dGVybk1hdGNoZXNTdHJpbmcobmFtZV9zdHIsIHBhdHRlcm4sIHBhdHRlcm5fZW5k
KSkgeworICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgLy8gU2tpcHMgdGhlIHBhdHRl
cm4gc2VwYXJhdGVyICh0aGUgJzonIGNoYXJhY3RlcikuCi0gICAgY3VyX3BhdHRlcm4rKzsKKyAg
ICAvLyBHaXZlIHVwIG9uIHRoaXMgcGF0dGVybi4gSG93ZXZlciwgaWYgd2UgZm91bmQgYSBwYXR0
ZXJuIHNlcGFyYXRvciAoOiksCisgICAgLy8gYWR2YW5jZSB0byB0aGUgbmV4dCBwYXR0ZXJuIChz
a2lwcGluZyBvdmVyIHRoZSBzZXBhcmF0b3IpIGFuZCByZXN0YXJ0LgorICAgIGlmIChuZXh0X3Nl
cCA9PSBudWxscHRyKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHBhdHRlcm4g
PSBuZXh0X3NlcCArIDE7CiAgIH0KKyAgcmV0dXJuIHRydWU7CiB9CiAKLS8vIFJldHVybnMgdHJ1
ZSBpZmYgdGhlIHVzZXItc3BlY2lmaWVkIGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0IGNhc2UKLS8v
IG5hbWUgYW5kIHRoZSB0ZXN0IG5hbWUuCi1ib29sIFVuaXRUZXN0T3B0aW9uczo6RmlsdGVyTWF0
Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X25hbWUp
IHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcmIGZ1bGxfbmFtZSA9IHRlc3RfY2FzZV9uYW1lICsgIi4i
ICsgdGVzdF9uYW1lLmNfc3RyKCk7CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IHVzZXItc3BlY2lmaWVkIGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0CisvLyBzdWl0ZSBuYW1lIGFu
ZCB0aGUgdGVzdCBuYW1lLgorYm9vbCBVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0
KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RfbmFtZSkgeworICBj
b25zdCBzdGQ6OnN0cmluZyYgZnVsbF9uYW1lID0gdGVzdF9zdWl0ZV9uYW1lICsgIi4iICsgdGVz
dF9uYW1lLmNfc3RyKCk7CiAKICAgLy8gU3BsaXQgLS1ndGVzdF9maWx0ZXIgYXQgJy0nLCBpZiB0
aGVyZSBpcyBvbmUsIHRvIHNlcGFyYXRlIGludG8KICAgLy8gcG9zaXRpdmUgZmlsdGVyIGFuZCBu
ZWdhdGl2ZSBmaWx0ZXIgcG9ydGlvbnMKQEAgLTU1Niw3ICs3MzYsNyBAQCBib29sIFVuaXRUZXN0
T3B0aW9uczo6RmlsdGVyTWF0Y2hlc1Rlc3QoY29uc3Qgc3RkOjpzdHJpbmcgJnRlc3RfY2FzZV9u
YW1lLAogICBjb25zdCBjaGFyKiBjb25zdCBkYXNoID0gc3RyY2hyKHAsICctJyk7CiAgIHN0ZDo6
c3RyaW5nIHBvc2l0aXZlOwogICBzdGQ6OnN0cmluZyBuZWdhdGl2ZTsKLSAgaWYgKGRhc2ggPT0g
TlVMTCkgeworICBpZiAoZGFzaCA9PSBudWxscHRyKSB7CiAgICAgcG9zaXRpdmUgPSBHVEVTVF9G
TEFHKGZpbHRlcikuY19zdHIoKTsgIC8vIFdob2xlIHN0cmluZyBpcyBhIHBvc2l0aXZlIGZpbHRl
cgogICAgIG5lZ2F0aXZlID0gIiI7CiAgIH0gZWxzZSB7CkBAIC03MDEsNyArODgxLDcgQEAgc3Rh
dGljIEFzc2VydGlvblJlc3VsdCBIYXNPbmVGYWlsdXJlKGNvbnN0IGNoYXIqIC8qIHJlc3VsdHNf
ZXhwciAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHI7CiAgIH0KIAotICBp
ZiAoc3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJzdHIuY19zdHIoKSkgPT0gTlVMTCkgeworICBpZiAo
c3Ryc3RyKHIubWVzc2FnZSgpLCBzdWJzdHIuY19zdHIoKSkgPT0gbnVsbHB0cikgewogICAgIHJl
dHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgIkV4cGVjdGVkOiAiIDw8IGV4cGVjdGVkIDw8ICIg
Y29udGFpbmluZyBcIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN1YnN0ciA8
PCAiXCJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgIEFjdHVhbDpcbiIK
QEAgLTc3MCw2MSArOTUwLDY2IEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpTZXRUZXN0UGFydFJlc3Vs
dFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCgKICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0
X3JlcG9ydGVyXy5zZXQocmVwb3J0ZXIpOwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3Vj
Y2Vzc2Z1bCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0SW1wbDo6c3VjY2Vzc2Z1bF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBDb3VudElmKHRlc3RfY2FzZXNfLCBUZXN0Q2Fz
ZVBhc3NlZCk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4K
K2ludCBVbml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsK
KyAgcmV0dXJuIENvdW50SWYodGVzdF9zdWl0ZXNfLCBUZXN0U3VpdGVQYXNzZWQpOwogfQogCi0v
LyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBs
OjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0
X2Nhc2VzXywgVGVzdENhc2VGYWlsZWQpOworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0
ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdEltcGw6OmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkg
Y29uc3QgeworICByZXR1cm4gQ291bnRJZih0ZXN0X3N1aXRlc18sIFRlc3RTdWl0ZUZhaWxlZCk7
CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLWludCBVbml0VGVz
dEltcGw6OnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4odGVzdF9jYXNlc18uc2l6ZSgpKTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwg
dGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRlc3RJbXBsOjp0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkg
Y29uc3QgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X3N1aXRlc18uc2l6ZSgpKTsK
IH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBh
dCBsZWFzdCBvbmUgdGVzdAorLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0
aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKIC8vIHRoYXQgc2hvdWxkIHJ1bi4KLWludCBV
bml0VGVzdEltcGw6OnRlc3RfY2FzZV90b19ydW5fY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBD
b3VudElmKHRlc3RfY2FzZXNfLCBTaG91bGRSdW5UZXN0Q2FzZSk7CitpbnQgVW5pdFRlc3RJbXBs
Ojp0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIENvdW50SWYodGVz
dF9zdWl0ZXNfLCBTaG91bGRSdW5UZXN0U3VpdGUpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIg
b2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KIGludCBVbml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9j
b3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18s
ICZUZXN0Q2FzZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0
U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6c3VjY2Vzc2Z1bF90ZXN0X2NvdW50
KTsKK30KKworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHNraXBwZWQgdGVzdHMuCitpbnQgVW5pdFRl
c3RJbXBsOjpza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBTdW1PdmVyVGVz
dFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnNraXBwZWRfdGVzdF9jb3VudCk7
CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJ
bXBsOjpmYWlsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2Fz
ZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6ZmFpbGVkX3Rlc3RfY291bnQpOworICByZXR1
cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjpmYWlsZWRf
dGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyB0
aGF0IHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIFhNTCByZXBvcnQuCiBpbnQgVW5pdFRlc3RJbXBs
OjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1P
dmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmVGVzdENhc2U6OnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCk7CisgIHJldHVybiBT
dW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmVGVzdFN1aXRlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQpOwogfQog
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMuCiBpbnQgVW5pdFRlc3RJbXBs
OjpkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNl
TGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjpkaXNhYmxlZF90ZXN0X2NvdW50KTsKKyAgcmV0
dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6ZGlzYWJs
ZWRfdGVzdF9jb3VudCk7CiB9CiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBw
cmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgogaW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0YWJsZV90
ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0X2Nh
c2VzXywgJlRlc3RDYXNlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3Zl
clRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3Rf
Y291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzLgogaW50IFVuaXRU
ZXN0SW1wbDo6dG90YWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0
Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6dG90YWxfdGVzdF9jb3VudCk7CisgIHJl
dHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnRvdGFs
X3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91
bGQgcnVuLgogaW50IFVuaXRUZXN0SW1wbDo6dGVzdF90b19ydW5fY291bnQoKSBjb25zdCB7Ci0g
IHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OnRlc3Rf
dG9fcnVuX2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rfc3VpdGVz
XywgJlRlc3RTdWl0ZTo6dGVzdF90b19ydW5fY291bnQpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBj
dXJyZW50IE9TIHN0YWNrIHRyYWNlIGFzIGFuIHN0ZDo6c3RyaW5nLgpAQCAtODQ2LDQ4ICsxMDMx
LDMwIEBAIHN0ZDo6c3RyaW5nIFVuaXRUZXN0SW1wbDo6Q3VycmVudE9zU3RhY2tUcmFjZUV4Y2Vw
dFRvcChpbnQgc2tpcF9jb3VudCkgewogICAgICAgKTsgIC8vIE5PTElOVAogfQogCi0vLyBSZXR1
cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzLgorLy8gQSBoZWxwZXIgY2xhc3Mg
Zm9yIG1lYXN1cmluZyBlbGFwc2VkIHRpbWVzLgorY2xhc3MgVGltZXIgeworIHB1YmxpYzoKKyAg
VGltZXIoKSA6IHN0YXJ0XyhzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSkge30KKwor
ICAvLyBSZXR1cm4gdGltZSBlbGFwc2VkIGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgdGltZXIg
d2FzIGNyZWF0ZWQuCisgIFRpbWVJbk1pbGxpcyBFbGFwc2VkKCkgeworICAgIHJldHVybiBzdGQ6
OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKyAgICAg
ICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnRfKQorICAg
ICAgICAuY291bnQoKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjpjaHJvbm86OnRpbWVfcG9p
bnQ8c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jaz4gc3RhcnRfOworfTsKKworLy8gUmV0dXJucyBh
IHRpbWVzdGFtcCBhcyBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoLiBOb3RlIHRoaXMgdGlt
ZSBtYXkganVtcAorLy8gYXJvdW5kIHN1YmplY3QgdG8gYWRqdXN0bWVudHMgYnkgdGhlIHN5c3Rl
bSwgdG8gbWVhc3VyZSBlbGFwc2VkIHRpbWUgdXNlCisvLyBUaW1lciBpbnN0ZWFkLgogVGltZUlu
TWlsbGlzIEdldFRpbWVJbk1pbGxpcygpIHsKLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRSB8
fCBkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIDE5NzAtMDEt
MDEgYW5kIDE2MDEtMDEtMDEgaW4gbWlsbGlzZWNvbmRzLgotICAvLyBodHRwOi8vYW5hbG9nb3Vz
LmJsb2dzcG90LmNvbS8yMDA1LzA0L2Vwb2NoLmh0bWwKLSAgY29uc3QgVGltZUluTWlsbGlzIGtK
YXZhRXBvY2hUb1dpbkZpbGVUaW1lRGVsdGEgPQotICAgIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxp
cz4oMTE2NDQ0NzM2VUwpICogMTAwMDAwVUw7Ci0gIGNvbnN0IERXT1JEIGtUZW50aE1pY3Jvc0lu
TWlsbGlTZWNvbmQgPSAxMDAwMDsKLQotICBTWVNURU1USU1FIG5vd19zeXN0aW1lOwotICBGSUxF
VElNRSBub3dfZmlsZXRpbWU7Ci0gIFVMQVJHRV9JTlRFR0VSIG5vd19pbnQ2NDsKLSAgLy8gRklY
TUU6IFNob3VsZG4ndCB0aGlzIGp1c3QgdXNlCi0gIC8vICAgR2V0U3lzdGVtVGltZUFzRmlsZVRp
bWUoKT8KLSAgR2V0U3lzdGVtVGltZSgmbm93X3N5c3RpbWUpOwotICBpZiAoU3lzdGVtVGltZVRv
RmlsZVRpbWUoJm5vd19zeXN0aW1lLCAmbm93X2ZpbGV0aW1lKSkgewotICAgIG5vd19pbnQ2NC5M
b3dQYXJ0ID0gbm93X2ZpbGV0aW1lLmR3TG93RGF0ZVRpbWU7Ci0gICAgbm93X2ludDY0LkhpZ2hQ
YXJ0ID0gbm93X2ZpbGV0aW1lLmR3SGlnaERhdGVUaW1lOwotICAgIG5vd19pbnQ2NC5RdWFkUGFy
dCA9IChub3dfaW50NjQuUXVhZFBhcnQgLyBrVGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kKSAtCi0g
ICAgICBrSmF2YUVwb2NoVG9XaW5GaWxlVGltZURlbHRhOwotICAgIHJldHVybiBub3dfaW50NjQu
UXVhZFBhcnQ7Ci0gIH0KLSAgcmV0dXJuIDA7Ci0jZWxpZiBHVEVTVF9PU19XSU5ET1dTICYmICFH
VEVTVF9IQVNfR0VUVElNRU9GREFZXwotICBfX3RpbWViNjQgbm93OwotCi0gIC8vIE1TVkMgOCBk
ZXByZWNhdGVzIF9mdGltZTY0KCksIHNvIHdlIHdhbnQgdG8gc3VwcHJlc3Mgd2FybmluZyA0OTk2
Ci0gIC8vIChkZXByZWNhdGVkIGZ1bmN0aW9uKSB0aGVyZS4KLSAgLy8gRklYTUU6IFVzZSBHZXRU
aWNrQ291bnQoKT8gIE9yIHVzZQotICAvLyAgIFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCkKLSAgR1RF
U1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9QVVNIXygpCi0gIF9mdGltZTY0KCZub3cpOwotICBH
VEVTVF9ESVNBQkxFX01TQ19ERVBSRUNBVEVEX1BPUF8oKQotCi0gIHJldHVybiBzdGF0aWNfY2Fz
dDxUaW1lSW5NaWxsaXM+KG5vdy50aW1lKSAqIDEwMDAgKyBub3cubWlsbGl0bTsKLSNlbGlmIEdU
RVNUX0hBU19HRVRUSU1FT0ZEQVlfCi0gIHN0cnVjdCB0aW1ldmFsIG5vdzsKLSAgZ2V0dGltZW9m
ZGF5KCZub3csIE5VTEwpOwotICByZXR1cm4gc3RhdGljX2Nhc3Q8VGltZUluTWlsbGlzPihub3cu
dHZfc2VjKSAqIDEwMDAgKyBub3cudHZfdXNlYyAvIDEwMDA7Ci0jZWxzZQotIyBlcnJvciAiRG9u
J3Qga25vdyBob3cgdG8gZ2V0IHRoZSBjdXJyZW50IHRpbWUgb24geW91ciBzeXN0ZW0uIgotI2Vu
ZGlmCisgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzPigKKyAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3co
KSAtCisgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6ZnJvbV90aW1lX3Qo
MCkpCisgICAgICAuY291bnQoKTsKIH0KIAogLy8gVXRpbGl0aWVzCkBAIC05MDAsMTEgKzEwNjcs
MTAgQEAgVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygpIHsKIC8vIHZhbHVlIHVzaW5nIGRl
bGV0ZVtdLiBSZXR1cm5zIHRoZSB3aWRlIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlucHV0
IGlzIE5VTEwuCiBMUENXU1RSIFN0cmluZzo6QW5zaVRvVXRmMTYoY29uc3QgY2hhciogYW5zaSkg
ewotICBpZiAoIWFuc2kpIHJldHVybiBOVUxMOworICBpZiAoIWFuc2kpIHJldHVybiBudWxscHRy
OwogICBjb25zdCBpbnQgbGVuZ3RoID0gc3RybGVuKGFuc2kpOwogICBjb25zdCBpbnQgdW5pY29k
ZV9sZW5ndGggPQotICAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxl
bmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7CisgICAgICBNdWx0aUJ5
dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgYW5zaSwgbGVuZ3RoLCBudWxscHRyLCAwKTsKICAgV0NI
QVIqIHVuaWNvZGUgPSBuZXcgV0NIQVJbdW5pY29kZV9sZW5ndGggKyAxXTsKICAgTXVsdGlCeXRl
VG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGFuc2ksIGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAg
ICB1bmljb2RlLCB1bmljb2RlX2xlbmd0aCk7CkBAIC05MTcsMzMgKzEwODMsMzMgQEAgTFBDV1NU
UiBTdHJpbmc6OkFuc2lUb1V0ZjE2KGNvbnN0IGNoYXIqIGFuc2kpIHsKIC8vIHZhbHVlIHVzaW5n
IGRlbGV0ZVtdLiBSZXR1cm5zIHRoZSBBTlNJIHN0cmluZywgb3IgTlVMTCBpZiB0aGUKIC8vIGlu
cHV0IGlzIE5VTEwuCiBjb25zdCBjaGFyKiBTdHJpbmc6OlV0ZjE2VG9BbnNpKExQQ1dTVFIgdXRm
MTZfc3RyKSAgewotICBpZiAoIXV0ZjE2X3N0cikgcmV0dXJuIE5VTEw7Ci0gIGNvbnN0IGludCBh
bnNpX2xlbmd0aCA9Ci0gICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdXRmMTZf
c3RyLCAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCwgTlVMTCk7
CisgIGlmICghdXRmMTZfc3RyKSByZXR1cm4gbnVsbHB0cjsKKyAgY29uc3QgaW50IGFuc2lfbGVu
Z3RoID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsIG51bGxw
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbnVs
bHB0ciwgbnVsbHB0cik7CiAgIGNoYXIqIGFuc2kgPSBuZXcgY2hhclthbnNpX2xlbmd0aCArIDFd
OwotICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdXRmMTZfc3RyLCAtMSwKLSAgICAg
ICAgICAgICAgICAgICAgICBhbnNpLCBhbnNpX2xlbmd0aCwgTlVMTCwgTlVMTCk7CisgIFdpZGVD
aGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCB1dGYxNl9zdHIsIC0xLCBhbnNpLCBhbnNpX2xlbmd0
aCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAgYW5zaVthbnNp
X2xlbmd0aF0gPSAwOwogICByZXR1cm4gYW5zaTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTX01PQklMRQogCi0vLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVl
IGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKy8vIENvbXBhcmVzIHR3byBDIHN0cmlu
Z3MuICBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhleSBoYXZlIHRoZSBzYW1lCisvLyBj
b250ZW50LgogLy8KIC8vIFVubGlrZSBzdHJjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxl
IE5VTEwgYXJndW1lbnQocykuICBBIE5VTEwKIC8vIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlm
ZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywKIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkg
c3RyaW5nLgogYm9vbCBTdHJpbmc6OkNTdHJpbmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29u
c3QgY2hhciAqIHJocykgewotICBpZiAoIGxocyA9PSBOVUxMICkgcmV0dXJuIHJocyA9PSBOVUxM
OworICBpZiAobGhzID09IG51bGxwdHIpIHJldHVybiByaHMgPT0gbnVsbHB0cjsKIAotICBpZiAo
IHJocyA9PSBOVUxMICkgcmV0dXJuIGZhbHNlOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVy
biBmYWxzZTsKIAogICByZXR1cm4gc3RyY21wKGxocywgcmhzKSA9PSAwOwogfQogCi0jaWYgR1RF
U1RfSEFTX1NURF9XU1RSSU5HIHx8IEdURVNUX0hBU19HTE9CQUxfV1NUUklORworI2lmIEdURVNU
X0hBU19TVERfV1NUUklORwogCiAvLyBDb252ZXJ0cyBhbiBhcnJheSBvZiB3aWRlIGNoYXJzIHRv
IGEgbmFycm93IHN0cmluZyB1c2luZyB0aGUgVVRGLTgKIC8vIGVuY29kaW5nLCBhbmQgc3RyZWFt
cyB0aGUgcmVzdWx0IHRvIHRoZSBnaXZlbiBNZXNzYWdlIG9iamVjdC4KQEAgLTk2MSw3ICsxMTI3
LDcgQEAgc3RhdGljIHZvaWQgU3RyZWFtV2lkZUNoYXJzVG9NZXNzYWdlKGNvbnN0IHdjaGFyX3Qq
IHdzdHIsIHNpemVfdCBsZW5ndGgsCiAgIH0KIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RE
X1dTVFJJTkcgfHwgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCisjZW5kaWYgIC8vIEdURVNUX0hB
U19TVERfV1NUUklORwogCiB2b2lkIFNwbGl0U3RyaW5nKGNvbnN0IDo6c3RkOjpzdHJpbmcmIHN0
ciwgY2hhciBkZWxpbWl0ZXIsCiAgICAgICAgICAgICAgICAgIDo6c3RkOjp2ZWN0b3I8IDo6c3Rk
OjpzdHJpbmc+KiBkZXN0KSB7CkBAIC0xMDExLDE1ICsxMTc3LDYgQEAgTWVzc2FnZSYgTWVzc2Fn
ZTo6b3BlcmF0b3IgPDwoY29uc3QgOjpzdGQ6OndzdHJpbmcmIHdzdHIpIHsKIH0KICNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcK
LS8vIENvbnZlcnRzIHRoZSBnaXZlbiB3aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgdXNp
bmcgdGhlIFVURi04Ci0vLyBlbmNvZGluZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGlz
IE1lc3NhZ2Ugb2JqZWN0LgotTWVzc2FnZSYgTWVzc2FnZTo6b3BlcmF0b3IgPDwoY29uc3QgOjp3
c3RyaW5nJiB3c3RyKSB7Ci0gIGludGVybmFsOjpTdHJlYW1XaWRlQ2hhcnNUb01lc3NhZ2Uod3N0
ci5jX3N0cigpLCB3c3RyLmxlbmd0aCgpLCB0aGlzKTsKLSAgcmV0dXJuICp0aGlzOwotfQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQogLy8gR2V0cyB0aGUgdGV4dCBzdHJl
YW1lZCB0byB0aGlzIG9iamVjdCBzbyBmYXIgYXMgYW4gc3RkOjpzdHJpbmcuCiAvLyBFYWNoICdc
MCcgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIgaXMgcmVwbGFjZWQgd2l0aCAiXFwwIi4KIHN0ZDo6
c3RyaW5nIE1lc3NhZ2U6OkdldFN0cmluZygpIGNvbnN0IHsKQEAgLTEwMzAsMTAgKzExODcsOSBA
QCBzdGQ6OnN0cmluZyBNZXNzYWdlOjpHZXRTdHJpbmcoKSBjb25zdCB7CiAvLyBVc2VkIGluIEVY
UEVDVF9UUlVFL0ZBTFNFKGFzc2VydGlvbl9yZXN1bHQpLgogQXNzZXJ0aW9uUmVzdWx0OjpBc3Nl
cnRpb25SZXN1bHQoY29uc3QgQXNzZXJ0aW9uUmVzdWx0JiBvdGhlcikKICAgICA6IHN1Y2Nlc3Nf
KG90aGVyLnN1Y2Nlc3NfKSwKLSAgICAgIG1lc3NhZ2VfKG90aGVyLm1lc3NhZ2VfLmdldCgpICE9
IE5VTEwgPwotICAgICAgICAgICAgICAgbmV3IDo6c3RkOjpzdHJpbmcoKm90aGVyLm1lc3NhZ2Vf
KSA6Ci0gICAgICAgICAgICAgICBzdGF0aWNfY2FzdDwgOjpzdGQ6OnN0cmluZyo+KE5VTEwpKSB7
Ci19CisgICAgICBtZXNzYWdlXyhvdGhlci5tZXNzYWdlXy5nZXQoKSAhPSBudWxscHRyCisgICAg
ICAgICAgICAgICAgICAgPyBuZXcgOjpzdGQ6OnN0cmluZygqb3RoZXIubWVzc2FnZV8pCisgICAg
ICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDwgOjpzdGQ6OnN0cmluZyo+KG51bGxwdHIpKSB7
fQogCiAvLyBTd2FwcyB0d28gQXNzZXJ0aW9uUmVzdWx0cy4KIHZvaWQgQXNzZXJ0aW9uUmVzdWx0
Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYgb3RoZXIpIHsKQEAgLTEwNDUsOCArMTIwMSw3IEBAIHZv
aWQgQXNzZXJ0aW9uUmVzdWx0Ojpzd2FwKEFzc2VydGlvblJlc3VsdCYgb3RoZXIpIHsKIC8vIFJl
dHVybnMgdGhlIGFzc2VydGlvbidzIG5lZ2F0aW9uLiBVc2VkIHdpdGggRVhQRUNUL0FTU0VSVF9G
QUxTRS4KIEFzc2VydGlvblJlc3VsdCBBc3NlcnRpb25SZXN1bHQ6Om9wZXJhdG9yISgpIGNvbnN0
IHsKICAgQXNzZXJ0aW9uUmVzdWx0IG5lZ2F0aW9uKCFzdWNjZXNzXyk7Ci0gIGlmIChtZXNzYWdl
Xy5nZXQoKSAhPSBOVUxMKQotICAgIG5lZ2F0aW9uIDw8ICptZXNzYWdlXzsKKyAgaWYgKG1lc3Nh
Z2VfLmdldCgpICE9IG51bGxwdHIpIG5lZ2F0aW9uIDw8ICptZXNzYWdlXzsKICAgcmV0dXJuIG5l
Z2F0aW9uOwogfQogCkBAIC0xMjcyLDkgKzE0MjcsMTAgQEAgc3RkOjpzdHJpbmcgQ3JlYXRlVW5p
ZmllZERpZmYoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBsZWZ0LAogICAgIGZvciAo
OyBlZGl0X2kgPCBlZGl0cy5zaXplKCk7ICsrZWRpdF9pKSB7CiAgICAgICBpZiAobl9zdWZmaXgg
Pj0gY29udGV4dCkgewogICAgICAgICAvLyBDb250aW51ZSBvbmx5IGlmIHRoZSBuZXh0IGh1bmsg
aXMgdmVyeSBjbG9zZS4KLSAgICAgICAgc3RkOjp2ZWN0b3I8RWRpdFR5cGU+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IGVkaXRzLmJlZ2luKCkgKyBlZGl0X2k7CisgICAgICAgIGF1dG8gaXQgPSBlZGl0
cy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50PihlZGl0X2kpOwogICAgICAgICB3aGlsZSAoaXQg
IT0gZWRpdHMuZW5kKCkgJiYgKml0ID09IGtNYXRjaCkgKytpdDsKLSAgICAgICAgaWYgKGl0ID09
IGVkaXRzLmVuZCgpIHx8IChpdCAtIGVkaXRzLmJlZ2luKCkpIC0gZWRpdF9pID49IGNvbnRleHQp
IHsKKyAgICAgICAgaWYgKGl0ID09IGVkaXRzLmVuZCgpIHx8CisgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxzaXplX3Q+KGl0IC0gZWRpdHMuYmVnaW4oKSkgLSBlZGl0X2kgPj0gY29udGV4dCkgewog
ICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5leHQgZWRpdCBvciBpdCBpcyB0b28gZmFyIGF3YXku
CiAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTEzNTAsNyArMTUwNiw3IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEVzY2FwZWRTdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcm
IHN0cikgewogLy8gICBsaHNfdmFsdWU6ICAgICAgIjUiCiAvLyAgIHJoc192YWx1ZTogICAgICAi
NiIKIC8vCi0vLyBUaGUgaWdub3JpbmdfY2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZmYgdGhlIGFz
c2VydGlvbiBpcyBhCisvLyBUaGUgaWdub3JpbmdfY2FzZSBwYXJhbWV0ZXIgaXMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgYXNzZXJ0aW9uIGlzIGEKIC8vICpfU1RSQ0FTRUVRKi4gIFdoZW4gaXQn
cyB0cnVlLCB0aGUgc3RyaW5nICJJZ25vcmluZyBjYXNlIiB3aWxsCiAvLyBiZSBpbnNlcnRlZCBp
bnRvIHRoZSBtZXNzYWdlLgogQXNzZXJ0aW9uUmVzdWx0IEVxRmFpbHVyZShjb25zdCBjaGFyKiBs
aHNfZXhwcmVzc2lvbiwKQEAgLTE0MTMsOCArMTU2OSwzMSBAQCBBc3NlcnRpb25SZXN1bHQgRG91
YmxlTmVhclByZWRGb3JtYXQoY29uc3QgY2hhciogZXhwcjEsCiAgIGNvbnN0IGRvdWJsZSBkaWZm
ID0gZmFicyh2YWwxIC0gdmFsMik7CiAgIGlmIChkaWZmIDw9IGFic19lcnJvcikgcmV0dXJuIEFz
c2VydGlvblN1Y2Nlc3MoKTsKIAotICAvLyBGSVhNRTogZG8gbm90IHByaW50IHRoZSB2YWx1ZSBv
ZiBhbiBleHByZXNzaW9uIGlmIGl0J3MKLSAgLy8gYWxyZWFkeSBhIGxpdGVyYWwuCisgIC8vIEZp
bmQgdGhlIHZhbHVlIHdoaWNoIGlzIGNsb3Nlc3QgdG8gemVyby4KKyAgY29uc3QgZG91YmxlIG1p
bl9hYnMgPSBzdGQ6Om1pbihmYWJzKHZhbDEpLCBmYWJzKHZhbDIpKTsKKyAgLy8gRmluZCB0aGUg
ZGlzdGFuY2UgdG8gdGhlIG5leHQgZG91YmxlIGZyb20gdGhhdCB2YWx1ZS4KKyAgY29uc3QgZG91
YmxlIGVwc2lsb24gPQorICAgICAgbmV4dGFmdGVyKG1pbl9hYnMsIHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSkgLSBtaW5fYWJzOworICAvLyBEZXRlY3QgdGhlIGNhc2Ug
d2hlcmUgYWJzX2Vycm9yIGlzIHNvIHNtYWxsIHRoYXQgRVhQRUNUX05FQVIgaXMKKyAgLy8gZWZm
ZWN0aXZlbHkgdGhlIHNhbWUgYXMgRVhQRUNUX0VRVUFMLCBhbmQgZ2l2ZSBhbiBpbmZvcm1hdGl2
ZSBlcnJvcgorICAvLyBtZXNzYWdlIHNvIHRoYXQgdGhlIHNpdHVhdGlvbiBjYW4gYmUgbW9yZSBl
YXNpbHkgdW5kZXJzdG9vZCB3aXRob3V0CisgIC8vIHJlcXVpcmluZyBleG90aWMgZmxvYXRpbmct
cG9pbnQga25vd2xlZGdlLgorICAvLyBEb24ndCBkbyBhbiBlcHNpbG9uIGNoZWNrIGlmIGFic19l
cnJvciBpcyB6ZXJvIGJlY2F1c2UgdGhhdCBpbXBsaWVzCisgIC8vIHRoYXQgYW4gZXF1YWxpdHkg
Y2hlY2sgd2FzIGFjdHVhbGx5IGludGVuZGVkLgorICBpZiAoIShzdGQ6OmlzbmFuKSh2YWwxKSAm
JiAhKHN0ZDo6aXNuYW4pKHZhbDIpICYmIGFic19lcnJvciA+IDAgJiYKKyAgICAgIGFic19lcnJv
ciA8IGVwc2lsb24pIHsKKyAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAg
IDw8ICJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuICIgPDwgZXhwcjEgPDwgIiBhbmQgIiA8PCBleHBy
MiA8PCAiIGlzICIKKyAgICAgICAgICAgPDwgZGlmZiA8PCAiLCB3aGVyZVxuIgorICAgICAgICAg
ICA8PCBleHByMSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IHZhbDEgPDwgIixcbiIKKyAgICAgICAg
ICAgPDwgZXhwcjIgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2YWwyIDw8ICIuXG5UaGUgYWJzX2Vy
cm9yIHBhcmFtZXRlciAiCisgICAgICAgICAgIDw8IGFic19lcnJvcl9leHByIDw8ICIgZXZhbHVh
dGVzIHRvICIgPDwgYWJzX2Vycm9yCisgICAgICAgICAgIDw8ICIgd2hpY2ggaXMgc21hbGxlciB0
aGFuIHRoZSBtaW5pbXVtIGRpc3RhbmNlIGJldHdlZW4gZG91YmxlcyBmb3IgIgorICAgICAgICAg
ICAgICAibnVtYmVycyBvZiB0aGlzIG1hZ25pdHVkZSB3aGljaCBpcyAiCisgICAgICAgICAgIDw8
IGVwc2lsb24KKyAgICAgICAgICAgPDwgIiwgdGh1cyBtYWtpbmcgdGhpcyBFWFBFQ1RfTkVBUiBj
aGVjayBlcXVpdmFsZW50IHRvICIKKyAgICAgICAgICAgICAgIkVYUEVDVF9FUVVBTC4gQ29uc2lk
ZXIgdXNpbmcgRVhQRUNUX0RPVUJMRV9FUSBpbnN0ZWFkLiI7CisgIH0KICAgcmV0dXJuIEFzc2Vy
dGlvbkZhaWx1cmUoKQogICAgICAgPDwgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gIiA8PCBleHBy
MSA8PCAiIGFuZCAiIDw8IGV4cHIyCiAgICAgICA8PCAiIGlzICIgPDwgZGlmZiA8PCAiLCB3aGlj
aCBleGNlZWRzICIgPDwgYWJzX2Vycm9yX2V4cHIgPDwgIiwgd2hlcmVcbiIKQEAgLTE0NzcsNTcg
KzE2NTYsNiBAQCBBc3NlcnRpb25SZXN1bHQgRG91YmxlTEUoY29uc3QgY2hhciogZXhwcjEsIGNv
bnN0IGNoYXIqIGV4cHIyLAogCiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCi0vLyBUaGUgaGVscGVy
IGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fRVEgd2l0aCBpbnQgb3IgZW51bQotLy8gYXJn
dW1lbnRzLgotQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHBy
ZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJoc19leHBy
ZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgbGhzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJpZ2dlc3RJbnQgcmhzKSB7Ci0gIGlmIChsaHMgPT0g
cmhzKSB7Ci0gICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKLSAgfQotCi0gIHJldHVybiBF
cUZhaWx1cmUobGhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgcmhzX2V4cHJlc3Np
b24sCi0gICAgICAgICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdl
KGxocywgcmhzKSwKLSAgICAgICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVy
ZU1lc3NhZ2UocmhzLCBsaHMpLAotICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKLX0KLQotLy8g
QSBtYWNybyBmb3IgaW1wbGVtZW50aW5nIHRoZSBoZWxwZXIgZnVuY3Rpb25zIG5lZWRlZCB0byBp
bXBsZW1lbnQKLS8vIEFTU0VSVF8/PyBhbmQgRVhQRUNUXz8/IHdpdGggaW50ZWdlciBvciBlbnVt
IGFyZ3VtZW50cy4gIEl0IGlzIGhlcmUKLS8vIGp1c3QgdG8gYXZvaWQgY29weS1hbmQtcGFzdGUg
b2Ygc2ltaWxhciBjb2RlLgotI2RlZmluZSBHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKG9wX25hbWUs
IG9wKVwKLUFzc2VydGlvblJlc3VsdCBDbXBIZWxwZXIjI29wX25hbWUoY29uc3QgY2hhciogZXhw
cjEsIGNvbnN0IGNoYXIqIGV4cHIyLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJpZ2dlc3RJbnQgdmFsMSwgQmlnZ2VzdEludCB2YWwyKSB7XAotICBpZiAodmFsMSBvcCB2
YWwyKSB7XAotICAgIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7XAotICB9IGVsc2Uge1wKLSAg
ICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIFwKLSAgICAgICAgPDwgIkV4cGVjdGVkOiAoIiA8
PCBleHByMSA8PCAiKSAiICNvcCAiICgiIDw8IGV4cHIyXAotICAgICAgICA8PCAiKSwgYWN0dWFs
OiAiIDw8IEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSh2YWwxLCB2YWwyKVwKLSAg
ICAgICAgPDwgIiB2cyAiIDw8IEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZSh2YWwy
LCB2YWwxKTtcCi0gIH1cCi19Ci0KLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBm
b3Ige0FTU0VSVHxFWFBFQ1R9X05FIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdU
RVNUX0lNUExfQ01QX0hFTFBFUl8oTkUsICE9KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1
bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fTEUgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1l
bnRzLgotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhMRSwgPD0pCi0vLyBJbXBsZW1lbnRzIHRoZSBo
ZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9MVCB3aXRoIGludCBvcgotLy8gZW51
bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBMX0NNUF9IRUxQRVJfKExULCA8ICkKLS8vIEltcGxlbWVu
dHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0dFIHdpdGggaW50IG9y
Ci0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR0UsID49KQotLy8g
SW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fR1Qgd2l0
aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhHVCwg
PiApCi0KLSN1bmRlZiBHVEVTVF9JTVBMX0NNUF9IRUxQRVJfCi0KIC8vIFRoZSBoZWxwZXIgZnVu
Y3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9TVFJFUS4KIEFzc2VydGlvblJlc3VsdCBDbXBIZWxw
ZXJTVFJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKQEAgLTE1OTUsMjIgKzE3MjMs
MjAgQEAgbmFtZXNwYWNlIHsKIAogLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgaW1wbGVtZW50aW5n
IElzU3ViU3RyaW5nKCkgYW5kIElzTm90U3Vic3RyaW5nKCkuCiAKLS8vIFRoaXMgZ3JvdXAgb2Yg
b3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0dXJuIHRydWUgaWZmIG5lZWRsZSBpcyBhCi0vLyBzdWJz
dHJpbmcgb2YgaGF5c3RhY2suICBOVUxMIGlzIGNvbnNpZGVyZWQgYSBzdWJzdHJpbmcgb2YgaXRz
ZWxmCi0vLyBvbmx5LgorLy8gVGhpcyBncm91cCBvZiBvdmVybG9hZGVkIGZ1bmN0aW9ucyByZXR1
cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBuZWVkbGUKKy8vIGlzIGEgc3Vic3RyaW5nIG9mIGhheXN0
YWNrLiAgTlVMTCBpcyBjb25zaWRlcmVkIGEgc3Vic3RyaW5nIG9mCisvLyBpdHNlbGYgb25seS4K
IAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29uc3QgY2hhciogbmVlZGxlLCBjb25zdCBjaGFyKiBo
YXlzdGFjaykgewotICBpZiAobmVlZGxlID09IE5VTEwgfHwgaGF5c3RhY2sgPT0gTlVMTCkKLSAg
ICByZXR1cm4gbmVlZGxlID09IGhheXN0YWNrOworICBpZiAobmVlZGxlID09IG51bGxwdHIgfHwg
aGF5c3RhY2sgPT0gbnVsbHB0cikgcmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsKIAotICByZXR1
cm4gc3Ryc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IE5VTEw7CisgIHJldHVybiBzdHJzdHIoaGF5
c3RhY2ssIG5lZWRsZSkgIT0gbnVsbHB0cjsKIH0KIAogYm9vbCBJc1N1YnN0cmluZ1ByZWQoY29u
c3Qgd2NoYXJfdCogbmVlZGxlLCBjb25zdCB3Y2hhcl90KiBoYXlzdGFjaykgewotICBpZiAobmVl
ZGxlID09IE5VTEwgfHwgaGF5c3RhY2sgPT0gTlVMTCkKLSAgICByZXR1cm4gbmVlZGxlID09IGhh
eXN0YWNrOworICBpZiAobmVlZGxlID09IG51bGxwdHIgfHwgaGF5c3RhY2sgPT0gbnVsbHB0cikg
cmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsKIAotICByZXR1cm4gd2Nzc3RyKGhheXN0YWNrLCBu
ZWVkbGUpICE9IE5VTEw7CisgIHJldHVybiB3Y3NzdHIoaGF5c3RhY2ssIG5lZWRsZSkgIT0gbnVs
bHB0cjsKIH0KIAogLy8gU3RyaW5nVHlwZSBoZXJlIGNhbiBiZSBlaXRoZXIgOjpzdGQ6OnN0cmlu
ZyBvciA6OnN0ZDo6d3N0cmluZy4KQEAgLTE3MjQsMTIgKzE4NTAsMTIgQEAgQXNzZXJ0aW9uUmVz
dWx0IEhSRVNVTFRGYWlsdXJlSGVscGVyKGNvbnN0IGNoYXIqIGV4cHIsCiAgIC8vIEdldHMgdGhl
IHN5c3RlbSdzIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGlzIEhSRVNVTFQu
CiAgIGNoYXIgZXJyb3JfdGV4dFtrQnVmU2l6ZV0gPSB7ICdcMCcgfTsKICAgRFdPUkQgbWVzc2Fn
ZV9sZW5ndGggPSA6OkZvcm1hdE1lc3NhZ2VBKGtGbGFncywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsICAvLyBubyBzb3VyY2UsIHdlJ3JlIGFza2luZyBzeXN0
ZW0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyLCAgLy8gdGhl
IGVycm9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgLy8g
bm8gbGluZSB3aWR0aCByZXN0cmljdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsICAgLy8gbm8gc291cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxEV09SRD4o
aHIpLCAgLy8gdGhlIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLCAgIC8vIG5vIGxpbmUgd2lkdGggcmVzdHJpY3Rpb25zCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl90ZXh0LCAgLy8gb3V0cHV0IGJ1ZmZlcgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0J1ZlNpemUsICAvLyBi
dWYgc2l6ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
ICAvLyBubyBhcmd1bWVudHMgZm9yIGluc2VydHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtCdWZTaXplLCAgICAvLyBidWYgc2l6ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0cik7ICAvLyBubyBhcmd1bWVudHMgZm9y
IGluc2VydHMKICAgLy8gVHJpbXMgdGFpbGluZyB3aGl0ZSBzcGFjZSAoRm9ybWF0TWVzc2FnZSBs
ZWF2ZXMgYSB0cmFpbGluZyBDUi1MRikKICAgZm9yICg7IG1lc3NhZ2VfbGVuZ3RoICYmIElzU3Bh
Y2UoZXJyb3JfdGV4dFttZXNzYWdlX2xlbmd0aCAtIDFdKTsKICAgICAgICAgICAtLW1lc3NhZ2Vf
bGVuZ3RoKSB7CkBAIC0xNzc1LDM1ICsxOTAxLDM1IEBAIEFzc2VydGlvblJlc3VsdCBJc0hSRVNV
TFRGYWlsdXJlKGNvbnN0IGNoYXIqIGV4cHIsIGxvbmcgaHIpIHsgIC8vIE5PTElOVAogLy8gIDE3
IC0gMjEgYml0cyAgICAgICAxMTExMHh4eCAxMHh4eHh4eCAxMHh4eHh4eCAxMHh4eHh4eAogCiAv
LyBUaGUgbWF4aW11bSBjb2RlLXBvaW50IGEgb25lLWJ5dGUgVVRGLTggc2VxdWVuY2UgY2FuIHJl
cHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4Q29kZVBvaW50MSA9IChzdGF0aWNfY2FzdDxVSW50
MzI+KDEpIDw8ICA3KSAtIDE7Citjb25zdGV4cHIgdWludDMyX3Qga01heENvZGVQb2ludDEgPSAo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEpIDw8ICA3KSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNv
ZGUtcG9pbnQgYSB0d28tYnl0ZSBVVEYtOCBzZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3Qg
VUludDMyIGtNYXhDb2RlUG9pbnQyID0gKHN0YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDUgKyA2
KSkgLSAxOworY29uc3RleHByIHVpbnQzMl90IGtNYXhDb2RlUG9pbnQyID0gKHN0YXRpY19jYXN0
PHVpbnQzMl90PigxKSA8PCAoNSArIDYpKSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9p
bnQgYSB0aHJlZS1ieXRlIFVURi04IHNlcXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50
MzIga01heENvZGVQb2ludDMgPSAoc3RhdGljX2Nhc3Q8VUludDMyPigxKSA8PCAoNCArIDIqNikp
IC0gMTsKK2NvbnN0ZXhwciB1aW50MzJfdCBrTWF4Q29kZVBvaW50MyA9IChzdGF0aWNfY2FzdDx1
aW50MzJfdD4oMSkgPDwgKDQgKyAyKjYpKSAtIDE7CiAKIC8vIFRoZSBtYXhpbXVtIGNvZGUtcG9p
bnQgYSBmb3VyLWJ5dGUgVVRGLTggc2VxdWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQz
MiBrTWF4Q29kZVBvaW50NCA9IChzdGF0aWNfY2FzdDxVSW50MzI+KDEpIDw8ICgzICsgMyo2KSkg
LSAxOworY29uc3RleHByIHVpbnQzMl90IGtNYXhDb2RlUG9pbnQ0ID0gKHN0YXRpY19jYXN0PHVp
bnQzMl90PigxKSA8PCAoMyArIDMqNikpIC0gMTsKIAogLy8gQ2hvcHMgb2ZmIHRoZSBuIGxvd2Vz
dCBiaXRzIGZyb20gYSBiaXQgcGF0dGVybi4gIFJldHVybnMgdGhlIG4KIC8vIGxvd2VzdCBiaXRz
LiAgQXMgYSBzaWRlIGVmZmVjdCwgdGhlIG9yaWdpbmFsIGJpdCBwYXR0ZXJuIHdpbGwgYmUKIC8v
IHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IG4gYml0cy4KLWlubGluZSBVSW50MzIgQ2hvcExvd0Jp
dHMoVUludDMyKiBiaXRzLCBpbnQgbikgewotICBjb25zdCBVSW50MzIgbG93X2JpdHMgPSAqYml0
cyAmICgoc3RhdGljX2Nhc3Q8VUludDMyPigxKSA8PCBuKSAtIDEpOworaW5saW5lIHVpbnQzMl90
IENob3BMb3dCaXRzKHVpbnQzMl90KiBiaXRzLCBpbnQgbikgeworICBjb25zdCB1aW50MzJfdCBs
b3dfYml0cyA9ICpiaXRzICYgKChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgbikgLSAxKTsK
ICAgKmJpdHMgPj49IG47CiAgIHJldHVybiBsb3dfYml0czsKIH0KIAogLy8gQ29udmVydHMgYSBV
bmljb2RlIGNvZGUgcG9pbnQgdG8gYSBuYXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgot
Ly8gY29kZV9wb2ludCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSBVSW50MzIgYmVjYXVzZSB3Y2hhcl90
IG1heSBub3QgYmUKKy8vIGNvZGVfcG9pbnQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgdWludDMyX3Qg
YmVjYXVzZSB3Y2hhcl90IG1heSBub3QgYmUKIC8vIHdpZGUgZW5vdWdoIHRvIGNvbnRhaW4gYSBj
b2RlIHBvaW50LgogLy8gSWYgdGhlIGNvZGVfcG9pbnQgaXMgbm90IGEgdmFsaWQgVW5pY29kZSBj
b2RlIHBvaW50CiAvLyAoaS5lLiBvdXRzaWRlIG9mIFVuaWNvZGUgcmFuZ2UgVSswIHRvIFUrMTBG
RkZGKSBpdCB3aWxsIGJlIGNvbnZlcnRlZAogLy8gdG8gIihJbnZhbGlkIFVuaWNvZGUgMHhYWFhY
WFhYWCkiLgotc3RkOjpzdHJpbmcgQ29kZVBvaW50VG9VdGY4KFVJbnQzMiBjb2RlX3BvaW50KSB7
CitzdGQ6OnN0cmluZyBDb2RlUG9pbnRUb1V0ZjgodWludDMyX3QgY29kZV9wb2ludCkgewogICBp
ZiAoY29kZV9wb2ludCA+IGtNYXhDb2RlUG9pbnQ0KSB7Ci0gICAgcmV0dXJuICIoSW52YWxpZCBV
bmljb2RlIDB4IiArIFN0cmluZzo6Rm9ybWF0SGV4SW50KGNvZGVfcG9pbnQpICsgIikiOworICAg
IHJldHVybiAiKEludmFsaWQgVW5pY29kZSAweCIgKyBTdHJpbmc6OkZvcm1hdEhleFVJbnQzMihj
b2RlX3BvaW50KSArICIpIjsKICAgfQogCiAgIGNoYXIgc3RyWzVdOyAgLy8gQmlnIGVub3VnaCBm
b3IgdGhlIGxhcmdlc3QgdmFsaWQgY29kZSBwb2ludC4KQEAgLTE4MzEsNyArMTk1Nyw3IEBAIHN0
ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOChVSW50MzIgY29kZV9wb2ludCkgewogCiAvLyBUaGUg
Zm9sbG93aW5nIHR3byBmdW5jdGlvbnMgb25seSBtYWtlIHNlbnNlIGlmIHRoZSBzeXN0ZW0KIC8v
IHVzZXMgVVRGLTE2IGZvciB3aWRlIHN0cmluZyBlbmNvZGluZy4gQWxsIHN1cHBvcnRlZCBzeXN0
ZW1zCi0vLyB3aXRoIDE2IGJpdCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1Mp
IGRvIHVzZSBVVEYtMTYuCisvLyB3aXRoIDE2IGJpdCB3Y2hhcl90IChXaW5kb3dzLCBDeWd3aW4p
IGRvIHVzZSBVVEYtMTYuCiAKIC8vIERldGVybWluZXMgaWYgdGhlIGFyZ3VtZW50cyBjb25zdGl0
dXRlIFVURi0xNiBzdXJyb2dhdGUgcGFpcgogLy8gYW5kIHRodXMgc2hvdWxkIGJlIGNvbWJpbmVk
IGludG8gYSBzaW5nbGUgVW5pY29kZSBjb2RlIHBvaW50CkBAIC0xODQyLDE5ICsxOTY4LDIyIEBA
IGlubGluZSBib29sIElzVXRmMTZTdXJyb2dhdGVQYWlyKHdjaGFyX3QgZmlyc3QsIHdjaGFyX3Qg
c2Vjb25kKSB7CiB9CiAKIC8vIENyZWF0ZXMgYSBVbmljb2RlIGNvZGUgcG9pbnQgZnJvbSBVVEYx
NiBzdXJyb2dhdGUgcGFpci4KLWlubGluZSBVSW50MzIgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2
U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdjaGFyX3Qgc2Vjb25kKSB7Ci0gIGNvbnN0IFVJbnQz
MiBtYXNrID0gKDEgPDwgMTApIC0gMTsKLSAgcmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikg
PwotICAgICAgKCgoZmlyc3QgJiBtYXNrKSA8PCAxMCkgfCAoc2Vjb25kICYgbWFzaykpICsgMHgx
MDAwMCA6Ci0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4g
dGhlIGNvbmRpdGlvbiBpcwotICAgICAgLy8gZmFsc2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2li
bGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgotICAgICAgc3RhdGljX2Nhc3Q8VUludDMyPihmaXJz
dCk7CitpbmxpbmUgdWludDMyX3QgQ3JlYXRlQ29kZVBvaW50RnJvbVV0ZjE2U3Vycm9nYXRlUGFp
cih3Y2hhcl90IGZpcnN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2NoYXJfdCBzZWNvbmQpIHsKKyAgY29uc3QgYXV0byBmaXJzdF91ID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpcnN0KTsKKyAgY29uc3QgYXV0byBzZWNvbmRfdSA9IHN0
YXRpY19jYXN0PHVpbnQzMl90PihzZWNvbmQpOworICBjb25zdCB1aW50MzJfdCBtYXNrID0gKDEg
PDwgMTApIC0gMTsKKyAgcmV0dXJuIChzaXplb2Yod2NoYXJfdCkgPT0gMikKKyAgICAgICAgICAg
ICA/ICgoKGZpcnN0X3UgJiBtYXNrKSA8PCAxMCkgfCAoc2Vjb25kX3UgJiBtYXNrKSkgKyAweDEw
MDAwCisgICAgICAgICAgICAgOgorICAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxk
IG5vdCBiZSBjYWxsZWQgd2hlbiB0aGUgY29uZGl0aW9uIGlzCisgICAgICAgICAgICAgLy8gZmFs
c2UsIGJ1dCB3ZSBwcm92aWRlIGEgc2Vuc2libGUgZGVmYXVsdCBpbiBjYXNlIGl0IGlzLgorICAg
ICAgICAgICAgIGZpcnN0X3U7CiB9CiAKIC8vIENvbnZlcnRzIGEgd2lkZSBzdHJpbmcgdG8gYSBu
YXJyb3cgc3RyaW5nIGluIFVURi04IGVuY29kaW5nLgogLy8gVGhlIHdpZGUgc3RyaW5nIGlzIGFz
c3VtZWQgdG8gaGF2ZSB0aGUgZm9sbG93aW5nIGVuY29kaW5nOgotLy8gICBVVEYtMTYgaWYgc2l6
ZW9mKHdjaGFyX3QpID09IDIgKG9uIFdpbmRvd3MsIEN5Z3dpbiwgU3ltYmlhbiBPUykKKy8vICAg
VVRGLTE2IGlmIHNpemVvZih3Y2hhcl90KSA9PSAyIChvbiBXaW5kb3dzLCBDeWd3aW4pCiAvLyAg
IFVURi0zMiBpZiBzaXplb2Yod2NoYXJfdCkgPT0gNCAob24gTGludXgpCiAvLyBQYXJhbWV0ZXIg
c3RyIHBvaW50cyB0byBhIG51bGwtdGVybWluYXRlZCB3aWRlIHN0cmluZy4KIC8vIFBhcmFtZXRl
ciBudW1fY2hhcnMgbWF5IGFkZGl0aW9uYWxseSBsaW1pdCB0aGUgbnVtYmVyCkBAIC0xODcxLDcg
KzIwMDAsNyBAQCBzdGQ6OnN0cmluZyBXaWRlU3RyaW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0
ciwgaW50IG51bV9jaGFycykgewogCiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwogICBm
b3IgKGludCBpID0gMDsgaSA8IG51bV9jaGFyczsgKytpKSB7Ci0gICAgVUludDMyIHVuaWNvZGVf
Y29kZV9wb2ludDsKKyAgICB1aW50MzJfdCB1bmljb2RlX2NvZGVfcG9pbnQ7CiAKICAgICBpZiAo
c3RyW2ldID09IEwnXDAnKSB7CiAgICAgICBicmVhazsKQEAgLTE4ODAsNyArMjAwOSw3IEBAIHN0
ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0ZjgoY29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVtX2No
YXJzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cltpICsgMV0pOwogICAgICAgaSsrOwogICAgIH0gZWxzZSB7Ci0g
ICAgICB1bmljb2RlX2NvZGVfcG9pbnQgPSBzdGF0aWNfY2FzdDxVSW50MzI+KHN0cltpXSk7Cisg
ICAgICB1bmljb2RlX2NvZGVfcG9pbnQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RyW2ldKTsK
ICAgICB9CiAKICAgICBzdHJlYW0gPDwgQ29kZVBvaW50VG9VdGY4KHVuaWNvZGVfY29kZV9wb2lu
dCk7CkBAIC0xODkxLDIxICsyMDIwLDIxIEBAIHN0ZDo6c3RyaW5nIFdpZGVTdHJpbmdUb1V0Zjgo
Y29uc3Qgd2NoYXJfdCogc3RyLCBpbnQgbnVtX2NoYXJzKSB7CiAvLyBDb252ZXJ0cyBhIHdpZGUg
QyBzdHJpbmcgdG8gYW4gc3RkOjpzdHJpbmcgdXNpbmcgdGhlIFVURi04IGVuY29kaW5nLgogLy8g
TlVMTCB3aWxsIGJlIGNvbnZlcnRlZCB0byAiKG51bGwpIi4KIHN0ZDo6c3RyaW5nIFN0cmluZzo6
U2hvd1dpZGVDU3RyaW5nKGNvbnN0IHdjaGFyX3QgKiB3aWRlX2Nfc3RyKSB7Ci0gIGlmICh3aWRl
X2Nfc3RyID09IE5VTEwpICByZXR1cm4gIihudWxsKSI7CisgIGlmICh3aWRlX2Nfc3RyID09IG51
bGxwdHIpIHJldHVybiAiKG51bGwpIjsKIAogICByZXR1cm4gaW50ZXJuYWw6OldpZGVTdHJpbmdU
b1V0Zjgod2lkZV9jX3N0ciwgLTEpOwogfQogCi0vLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmlu
Z3MuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZQotLy8gY29udGVudC4KKy8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGV5IGhhdmUgdGhlCisvLyBzYW1lIGNvbnRlbnQuCiAvLwogLy8gVW5saWtlIHdjc2NtcCgp
LCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEgTlVMTAogLy8g
QyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3RyaW5n
LAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJpbmcuCiBib29sIFN0cmluZzo6V2lkZUNTdHJp
bmdFcXVhbHMoY29uc3Qgd2NoYXJfdCAqIGxocywgY29uc3Qgd2NoYXJfdCAqIHJocykgewotICBp
ZiAobGhzID09IE5VTEwpIHJldHVybiByaHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxscHRy
KSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAKLSAgaWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFs
c2U7CisgIGlmIChyaHMgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogCiAgIHJldHVybiB3Y3Nj
bXAobGhzLCByaHMpID09IDA7CiB9CkBAIC0xOTQxLDM3ICsyMDcwLDM1IEBAIEFzc2VydGlvblJl
c3VsdCBDbXBIZWxwZXJTVFJORShjb25zdCBjaGFyKiBzMV9leHByZXNzaW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8ICIgdnMgIiA8PCBQcmludFRvU3RyaW5nKHMyKTsKIH0KIAot
Ly8gQ29tcGFyZXMgdHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBp
ZmYgdGhleSBoYXZlCisvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLCBpZ25vcmluZyBjYXNlLiAg
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZXkgaGF2ZQogLy8gdGhlIHNhbWUgY29udGVu
dC4KIC8vCiAvLyBVbmxpa2Ugc3RyY2FzZWNtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUg
TlVMTCBhcmd1bWVudChzKS4gIEEKIC8vIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZm
ZXJlbnQgdG8gYW55IG5vbi1OVUxMIEMgc3RyaW5nLAogLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBz
dHJpbmcuCiBib29sIFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlQ1N0cmluZ0VxdWFscyhjb25zdCBj
aGFyICogbGhzLCBjb25zdCBjaGFyICogcmhzKSB7Ci0gIGlmIChsaHMgPT0gTlVMTCkKLSAgICBy
ZXR1cm4gcmhzID09IE5VTEw7Ci0gIGlmIChyaHMgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7
CisgIGlmIChsaHMgPT0gbnVsbHB0cikgcmV0dXJuIHJocyA9PSBudWxscHRyOworICBpZiAocmhz
ID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKICAgcmV0dXJuIHBvc2l4OjpTdHJDYXNlQ21wKGxo
cywgcmhzKSA9PSAwOwogfQogCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdu
b3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnQuCi0gIC8vCi0gIC8vIFVubGlrZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2Fu
IGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLgotICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lk
ZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCi0gIC8vIGluY2x1
ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgotICAvLyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBk
aWZmZXJlbnQgcGxhdGZvcm1zIHNsaWdodGx5IGRpZmZlci4KLSAgLy8gT24gd2luZG93cywgdGhp
cyBtZXRob2QgdXNlcyBfd2NzaWNtcCB3aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZ
UEUKLSAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUuIE9uIEdOVSBwbGF0Zm9ybSB0aGlzIG1ldGhv
ZCB1c2VzIHdjc2Nhc2VjbXAKLSAgLy8gd2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NU
WVBFIGNhdGVnb3J5IG9mIHRoZSBjdXJyZW50IGxvY2FsZS4KLSAgLy8gT24gTWFjT1MgWCwgaXQg
dXNlcyB0b3dsb3dlciwgd2hpY2ggYWxzbyB1c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQot
ICAvLyBjdXJyZW50IGxvY2FsZS4KKy8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncywgaWdu
b3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGV5CisvLyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnQuCisvLworLy8gVW5saWtlIHdjc2Nhc2VjbXAoKSwgdGhpcyBmdW5jdGlv
biBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuCisvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29u
c2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCisvLyBpbmNs
dWRpbmcgdGhlIGVtcHR5IHN0cmluZy4KKy8vIE5COiBUaGUgaW1wbGVtZW50YXRpb25zIG9uIGRp
ZmZlcmVudCBwbGF0Zm9ybXMgc2xpZ2h0bHkgZGlmZmVyLgorLy8gT24gd2luZG93cywgdGhpcyBt
ZXRob2QgdXNlcyBfd2NzaWNtcCB3aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUK
Ky8vIGVudmlyb25tZW50IHZhcmlhYmxlLiBPbiBHTlUgcGxhdGZvcm0gdGhpcyBtZXRob2QgdXNl
cyB3Y3NjYXNlY21wCisvLyB3aGljaCBjb21wYXJlcyBhY2NvcmRpbmcgdG8gTENfQ1RZUEUgY2F0
ZWdvcnkgb2YgdGhlIGN1cnJlbnQgbG9jYWxlLgorLy8gT24gTWFjT1MgWCwgaXQgdXNlcyB0b3ds
b3dlciwgd2hpY2ggYWxzbyB1c2VzIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZQorLy8gY3VycmVu
dCBsb2NhbGUuCiBib29sIFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMo
Y29uc3Qgd2NoYXJfdCogbGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHdjaGFyX3QqIHJocykgewotICBpZiAobGhzID09IE5VTEwpIHJldHVy
biByaHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxscHRyKSByZXR1cm4gcmhzID09IG51bGxw
dHI7CiAKLSAgaWYgKHJocyA9PSBOVUxMKSByZXR1cm4gZmFsc2U7CisgIGlmIChyaHMgPT0gbnVs
bHB0cikgcmV0dXJuIGZhbHNlOwogCiAjaWYgR1RFU1RfT1NfV0lORE9XUwogICByZXR1cm4gX3dj
c2ljbXAobGhzLCByaHMpID09IDA7CkBAIC0xOTgyLDE0ICsyMTA5LDE0IEBAIGJvb2wgU3RyaW5n
OjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhjb25zdCB3Y2hhcl90KiBsaHMsCiAg
IC8vIE90aGVyIHVua25vd24gT1NlcyBtYXkgbm90IGRlZmluZSBpdCBlaXRoZXIuCiAgIHdpbnRf
dCBsZWZ0LCByaWdodDsKICAgZG8gewotICAgIGxlZnQgPSB0b3dsb3dlcigqbGhzKyspOwotICAg
IHJpZ2h0ID0gdG93bG93ZXIoKnJocysrKTsKKyAgICBsZWZ0ID0gdG93bG93ZXIoc3RhdGljX2Nh
c3Q8d2ludF90PigqbGhzKyspKTsKKyAgICByaWdodCA9IHRvd2xvd2VyKHN0YXRpY19jYXN0PHdp
bnRfdD4oKnJocysrKSk7CiAgIH0gd2hpbGUgKGxlZnQgJiYgbGVmdCA9PSByaWdodCk7CiAgIHJl
dHVybiBsZWZ0ID09IHJpZ2h0OwogI2VuZGlmICAvLyBPUyBzZWxlY3RvcgogfQogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIHN0ciBlbmRzIHdpdGggdGhlIGdpdmVuIHN1ZmZpeCwgaWdub3JpbmcgY2Fz
ZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBzdHIgZW5kcyB3aXRoIHRoZSBnaXZl
biBzdWZmaXgsIGlnbm9yaW5nIGNhc2UuCiAvLyBBbnkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8g
ZW5kIHdpdGggYW4gZW1wdHkgc3VmZml4LgogYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2FzZUluc2Vu
c2l0aXZlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBz
dWZmaXgpIHsKQEAgLTIwMDIsMTggKzIxMjksMjggQEAgYm9vbCBTdHJpbmc6OkVuZHNXaXRoQ2Fz
ZUluc2Vuc2l0aXZlKAogCiAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJTAyZCIuCiBzdGQ6
OnN0cmluZyBTdHJpbmc6OkZvcm1hdEludFdpZHRoMihpbnQgdmFsdWUpIHsKKyAgcmV0dXJuIEZv
cm1hdEludFdpZHRoTih2YWx1ZSwgMik7Cit9CisKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIHRv
IGdpdmVuIHdpZHRoIHdpdGggbGVhZGluZyB6ZXJvcy4KK3N0ZDo6c3RyaW5nIFN0cmluZzo6Rm9y
bWF0SW50V2lkdGhOKGludCB2YWx1ZSwgaW50IHdpZHRoKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFt
IHNzOwotICBzcyA8PCBzdGQ6OnNldGZpbGwoJzAnKSA8PCBzdGQ6OnNldHcoMikgPDwgdmFsdWU7
CisgIHNzIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpIDw8IHN0ZDo6c2V0dyh3aWR0aCkgPDwgdmFsdWU7
CiAgIHJldHVybiBzcy5zdHIoKTsKIH0KIAogLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiVY
Ii4KLXN0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0SGV4SW50KGludCB2YWx1ZSkgeworc3RkOjpz
dHJpbmcgU3RyaW5nOjpGb3JtYXRIZXhVSW50MzIodWludDMyX3QgdmFsdWUpIHsKICAgc3RkOjpz
dHJpbmdzdHJlYW0gc3M7CiAgIHNzIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHZh
bHVlOwogICByZXR1cm4gc3Muc3RyKCk7CiB9CiAKKy8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFz
ICIlWCIuCitzdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdEhleEludChpbnQgdmFsdWUpIHsKKyAg
cmV0dXJuIEZvcm1hdEhleFVJbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpKTsKK30K
KwogLy8gRm9ybWF0cyBhIGJ5dGUgYXMgIiUwMlgiLgogc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3Jt
YXRCeXRlKHVuc2lnbmVkIGNoYXIgdmFsdWUpIHsKICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CkBA
IC0yMDMwLDcgKzIxNjcsNyBAQCBzdGQ6OnN0cmluZyBTdHJpbmdTdHJlYW1Ub1N0cmluZyg6OnN0
ZDo6c3RyaW5nc3RyZWFtKiBzcykgewogICBjb25zdCBjaGFyKiBjb25zdCBlbmQgPSBzdGFydCAr
IHN0ci5sZW5ndGgoKTsKIAogICBzdGQ6OnN0cmluZyByZXN1bHQ7Ci0gIHJlc3VsdC5yZXNlcnZl
KDIgKiAoZW5kIC0gc3RhcnQpKTsKKyAgcmVzdWx0LnJlc2VydmUoc3RhdGljX2Nhc3Q8c2l6ZV90
PigyICogKGVuZCAtIHN0YXJ0KSkpOwogICBmb3IgKGNvbnN0IGNoYXIqIGNoID0gc3RhcnQ7IGNo
ICE9IGVuZDsgKytjaCkgewogICAgIGlmICgqY2ggPT0gJ1wwJykgewogICAgICAgcmVzdWx0ICs9
ICJcXDAiOyAgLy8gUmVwbGFjZXMgTlVMIHdpdGggIlxcMCI7CkBAIC0yMDUwLDcgKzIxODcsOSBA
QCBzdGQ6OnN0cmluZyBBcHBlbmRVc2VyTWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYgZ3Rlc3Rf
bXNnLAogICBpZiAodXNlcl9tc2dfc3RyaW5nLmVtcHR5KCkpIHsKICAgICByZXR1cm4gZ3Rlc3Rf
bXNnOwogICB9Ci0KKyAgaWYgKGd0ZXN0X21zZy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIHVzZXJf
bXNnX3N0cmluZzsKKyAgfQogICByZXR1cm4gZ3Rlc3RfbXNnICsgIlxuIiArIHVzZXJfbXNnX3N0
cmluZzsKIH0KIApAQCAtMjA2MCw5ICsyMTk5LDcgQEAgc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1l
c3NhZ2UoY29uc3Qgc3RkOjpzdHJpbmcmIGd0ZXN0X21zZywKIAogLy8gQ3JlYXRlcyBhbiBlbXB0
eSBUZXN0UmVzdWx0LgogVGVzdFJlc3VsdDo6VGVzdFJlc3VsdCgpCi0gICAgOiBkZWF0aF90ZXN0
X2NvdW50XygwKSwKLSAgICAgIGVsYXBzZWRfdGltZV8oMCkgewotfQorICAgIDogZGVhdGhfdGVz
dF9jb3VudF8oMCksIHN0YXJ0X3RpbWVzdGFtcF8oMCksIGVsYXBzZWRfdGltZV8oMCkge30KIAog
Ly8gRCd0b3IuCiBUZXN0UmVzdWx0Ojp+VGVzdFJlc3VsdCgpIHsKQEAgLTIwNzQsNyArMjIxMSw3
IEBAIFRlc3RSZXN1bHQ6On5UZXN0UmVzdWx0KCkgewogY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRl
c3RSZXN1bHQ6OkdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdCB7CiAgIGlmIChpIDwgMCB8
fCBpID49IHRvdGFsX3BhcnRfY291bnQoKSkKICAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7
Ci0gIHJldHVybiB0ZXN0X3BhcnRfcmVzdWx0c18uYXQoaSk7CisgIHJldHVybiB0ZXN0X3BhcnRf
cmVzdWx0c18uYXQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpKSk7CiB9CiAKIC8vIFJldHVybnMgdGhl
IGktdGggdGVzdCBwcm9wZXJ0eS4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCkBAIC0yMDgzLDcgKzIy
MjAsNyBAQCBjb25zdCBUZXN0UGFydFJlc3VsdCYgVGVzdFJlc3VsdDo6R2V0VGVzdFBhcnRSZXN1
bHQoaW50IGkpIGNvbnN0IHsKIGNvbnN0IFRlc3RQcm9wZXJ0eSYgVGVzdFJlc3VsdDo6R2V0VGVz
dFByb3BlcnR5KGludCBpKSBjb25zdCB7CiAgIGlmIChpIDwgMCB8fCBpID49IHRlc3RfcHJvcGVy
dHlfY291bnQoKSkKICAgICBpbnRlcm5hbDo6cG9zaXg6OkFib3J0KCk7Ci0gIHJldHVybiB0ZXN0
X3Byb3BlcnRpZXNfLmF0KGkpOworICByZXR1cm4gdGVzdF9wcm9wZXJ0aWVzXy5hdChzdGF0aWNf
Y2FzdDxzaXplX3Q+KGkpKTsKIH0KIAogLy8gQ2xlYXJzIHRoZSB0ZXN0IHBhcnQgcmVzdWx0cy4K
QEAgLTIxMzEsMjAgKzIyNjgsMjEgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZl
ZFRlc3RTdWl0ZXNBdHRyaWJ1dGVzW10gPSB7CiAvLyBUaGUgbGlzdCBvZiByZXNlcnZlZCBhdHRy
aWJ1dGVzIHVzZWQgaW4gdGhlIDx0ZXN0c3VpdGU+IGVsZW1lbnQgb2YgWE1MCiAvLyBvdXRwdXQu
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1Jlc2VydmVkVGVzdFN1aXRlQXR0cmlidXRlc1td
ID0gewotICAiZGlzYWJsZWQiLAotICAiZXJyb3JzIiwKLSAgImZhaWx1cmVzIiwKLSAgIm5hbWUi
LAotICAidGVzdHMiLAotICAidGltZSIKLX07CisgICAgImRpc2FibGVkIiwgImVycm9ycyIsICJm
YWlsdXJlcyIsICAibmFtZSIsCisgICAgInRlc3RzIiwgICAgInRpbWUiLCAgICJ0aW1lc3RhbXAi
LCAic2tpcHBlZCJ9OwogCiAvLyBUaGUgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGVzIHVzZWQg
aW4gdGhlIDx0ZXN0Y2FzZT4gZWxlbWVudCBvZiBYTUwgb3V0cHV0Lgogc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IGtSZXNlcnZlZFRlc3RDYXNlQXR0cmlidXRlc1tdID0gewotICAgICJjbGFzc25h
bWUiLCAgIm5hbWUiLCAgICAgICAgInN0YXR1cyIsICJ0aW1lIiwKLSAgICAidHlwZV9wYXJhbSIs
ICJ2YWx1ZV9wYXJhbSIsICJmaWxlIiwgICAibGluZSJ9OworICAgICJjbGFzc25hbWUiLCAgICJu
YW1lIiwgInN0YXR1cyIsICJ0aW1lIiwgICJ0eXBlX3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0i
LCAiZmlsZSIsICJsaW5lIn07CiAKLXRlbXBsYXRlIDxpbnQga1NpemU+CisvLyBVc2UgYSBzbGln
aHRseSBkaWZmZXJlbnQgc2V0IGZvciBhbGxvd2VkIG91dHB1dCB0byBlbnN1cmUgZXhpc3Rpbmcg
dGVzdHMgY2FuCisvLyBzdGlsbCBSZWNvcmRQcm9wZXJ0eSgicmVzdWx0Iikgb3IgIlJlY29yZFBy
b3BlcnR5KHRpbWVzdGFtcCIpCitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1Jlc2VydmVkT3V0
cHV0VGVzdENhc2VBdHRyaWJ1dGVzW10gPSB7CisgICAgImNsYXNzbmFtZSIsICAgIm5hbWUiLCAi
c3RhdHVzIiwgInRpbWUiLCAgICJ0eXBlX3BhcmFtIiwKKyAgICAidmFsdWVfcGFyYW0iLCAiZmls
ZSIsICJsaW5lIiwgICAicmVzdWx0IiwgInRpbWVzdGFtcCJ9OworCit0ZW1wbGF0ZSA8c2l6ZV90
IGtTaXplPgogc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IEFycmF5QXNWZWN0b3IoY29uc3QgY2hh
ciogY29uc3QgKCZhcnJheSlba1NpemVdKSB7CiAgIHJldHVybiBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4oYXJyYXksIGFycmF5ICsga1NpemUpOwogfQpAQCAtMjE2NCw2ICsyMzAyLDIyIEBAIHN0
YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxl
bWVudCgKICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPigpOwogfQogCisvLyBUT0RP
KGpkZXNwcmV6KTogTWVyZ2UgdGhlIHR3byBnZXRSZXNlcnZlZCBhdHRyaWJ1dGVzIG9uY2Ugc2tp
cCBpcyBpbXByb3ZlZAorc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBHZXRSZXNlcnZl
ZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50KAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB4bWxf
ZWxlbWVudCkgeworICBpZiAoeG1sX2VsZW1lbnQgPT0gInRlc3RzdWl0ZXMiKSB7CisgICAgcmV0
dXJuIEFycmF5QXNWZWN0b3Ioa1Jlc2VydmVkVGVzdFN1aXRlc0F0dHJpYnV0ZXMpOworICB9IGVs
c2UgaWYgKHhtbF9lbGVtZW50ID09ICJ0ZXN0c3VpdGUiKSB7CisgICAgcmV0dXJuIEFycmF5QXNW
ZWN0b3Ioa1Jlc2VydmVkVGVzdFN1aXRlQXR0cmlidXRlcyk7CisgIH0gZWxzZSBpZiAoeG1sX2Vs
ZW1lbnQgPT0gInRlc3RjYXNlIikgeworICAgIHJldHVybiBBcnJheUFzVmVjdG9yKGtSZXNlcnZl
ZE91dHB1dFRlc3RDYXNlQXR0cmlidXRlcyk7CisgIH0gZWxzZSB7CisgICAgR1RFU1RfQ0hFQ0tf
KGZhbHNlKSA8PCAiVW5yZWNvZ25pemVkIHhtbF9lbGVtZW50IHByb3ZpZGVkOiAiIDw8IHhtbF9l
bGVtZW50OworICB9CisgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBidXQgc29tZSBjb21w
aWxlcnMgbWF5IG5vdCByZWFsaXplcyB0aGF0LgorICByZXR1cm4gc3RkOjp2ZWN0b3I8c3RkOjpz
dHJpbmc+KCk7Cit9CisKIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRXb3JkTGlzdChjb25zdCBz
dGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIHdvcmRzKSB7CiAgIE1lc3NhZ2Ugd29yZF9saXN0Owog
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdvcmRzLnNpemUoKTsgKytpKSB7CkBAIC0yMjA3LDcg
KzIzNjEsMTcgQEAgdm9pZCBUZXN0UmVzdWx0OjpDbGVhcigpIHsKICAgZWxhcHNlZF90aW1lXyA9
IDA7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgZmFpbGVkLgorLy8gUmV0dXJu
cyB0cnVlIG9mZiB0aGUgdGVzdCBwYXJ0IHdhcyBza2lwcGVkLgorc3RhdGljIGJvb2wgVGVzdFBh
cnRTa2lwcGVkKGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIHsKKyAgcmV0dXJuIHJlc3Vs
dC5za2lwcGVkKCk7Cit9CisKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVz
dCB3YXMgc2tpcHBlZC4KK2Jvb2wgVGVzdFJlc3VsdDo6U2tpcHBlZCgpIGNvbnN0IHsKKyAgcmV0
dXJuICFGYWlsZWQoKSAmJiBDb3VudElmKHRlc3RfcGFydF9yZXN1bHRzXywgVGVzdFBhcnRTa2lw
cGVkKSA+IDA7Cit9CisKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBm
YWlsZWQuCiBib29sIFRlc3RSZXN1bHQ6OkZhaWxlZCgpIGNvbnN0IHsKICAgZm9yIChpbnQgaSA9
IDA7IGkgPCB0b3RhbF9wYXJ0X2NvdW50KCk7ICsraSkgewogICAgIGlmIChHZXRUZXN0UGFydFJl
c3VsdChpKS5mYWlsZWQoKSkKQEAgLTIyMTYsMjIgKzIzODAsMjIgQEAgYm9vbCBUZXN0UmVzdWx0
OjpGYWlsZWQoKSBjb25zdCB7CiAgIHJldHVybiBmYWxzZTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVkLgorLy8gUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoZSB0ZXN0IHBhcnQgZmF0YWxseSBmYWlsZWQuCiBzdGF0aWMgYm9vbCBUZXN0
UGFydEZhdGFsbHlGYWlsZWQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgewogICByZXR1
cm4gcmVzdWx0LmZhdGFsbHlfZmFpbGVkKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhl
IHRlc3QgZmF0YWxseSBmYWlsZWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IHRlc3QgZmF0YWxseSBmYWlsZWQuCiBib29sIFRlc3RSZXN1bHQ6Okhhc0ZhdGFsRmFpbHVyZSgp
IGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydEZh
dGFsbHlGYWlsZWQpID4gMDsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBwYXJ0
IG5vbi1mYXRhbGx5IGZhaWxlZC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBwYXJ0IG5vbi1mYXRhbGx5IGZhaWxlZC4KIHN0YXRpYyBib29sIFRlc3RQYXJ0Tm9uZmF0
YWxseUZhaWxlZChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSB7CiAgIHJldHVybiByZXN1
bHQubm9uZmF0YWxseV9mYWlsZWQoKTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVzdFJlc3VsdDo6SGFz
Tm9uZmF0YWxGYWlsdXJlKCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X3BhcnRfcmVz
dWx0c18sIFRlc3RQYXJ0Tm9uZmF0YWxseUZhaWxlZCkgPiAwOwogfQpAQCAtMjI5NCwyNSArMjQ1
OCwyNSBAQCB2b2lkIFJlcG9ydEZhaWx1cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3Vs
dDo6VHlwZSByZXN1bHRfdHlwZSwKICAgLy8gQWRkVGVzdFBhcnRSZXN1bHQuCiAgIFVuaXRUZXN0
OjpHZXRJbnN0YW5jZSgpLT5BZGRUZXN0UGFydFJlc3VsdCgKICAgICAgIHJlc3VsdF90eXBlLAot
ICAgICAgTlVMTCwgIC8vIE5vIGluZm8gYWJvdXQgdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBl
eGNlcHRpb24gb2NjdXJyZWQuCi0gICAgICAtMSwgICAgLy8gV2UgaGF2ZSBubyBpbmZvIG9uIHdo
aWNoIGxpbmUgY2F1c2VkIHRoZSBleGNlcHRpb24uCisgICAgICBudWxscHRyLCAgLy8gTm8gaW5m
byBhYm91dCB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAg
ICAgIC0xLCAgICAgICAvLyBXZSBoYXZlIG5vIGluZm8gb24gd2hpY2ggbGluZSBjYXVzZWQgdGhl
IGV4Y2VwdGlvbi4KICAgICAgIG1lc3NhZ2UsCi0gICAgICAiIik7ICAgLy8gTm8gc3RhY2sgdHJh
Y2UsIGVpdGhlci4KKyAgICAgICIiKTsgIC8vIE5vIHN0YWNrIHRyYWNlLCBlaXRoZXIuCiB9CiAK
IH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogCi0vLyBHb29nbGUgVGVzdCByZXF1aXJlcyBhbGwg
dGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIHRvIHVzZSB0aGUgc2FtZSB0ZXN0CisvLyBHb29n
bGUgVGVzdCByZXF1aXJlcyBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSB0byB1c2Ug
dGhlIHNhbWUgdGVzdAogLy8gZml4dHVyZSBjbGFzcy4gIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlm
IHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZQotLy8gc2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBm
aXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRlc3QgY2FzZS4gIElmCisvLyBzYW1lIGZpeHR1cmUg
Y2xhc3MgYXMgdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBzdWl0ZS4gIElmCiAv
LyB5ZXMsIGl0IHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGl0IGdlbmVyYXRlcyBhIEdvb2dsZSBU
ZXN0IGZhaWx1cmUgYW5kCiAvLyByZXR1cm5zIGZhbHNlLgogYm9vbCBUZXN0OjpIYXNTYW1lRml4
dHVyZUNsYXNzKCkgewogICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50
ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwotICBjb25zdCBUZXN0Q2FzZSogY29uc3QgdGVzdF9j
YXNlID0gaW1wbC0+Y3VycmVudF90ZXN0X2Nhc2UoKTsKKyAgY29uc3QgVGVzdFN1aXRlKiBjb25z
dCB0ZXN0X3N1aXRlID0gaW1wbC0+Y3VycmVudF90ZXN0X3N1aXRlKCk7CiAKLSAgLy8gSW5mbyBh
Ym91dCB0aGUgZmlyc3QgdGVzdCBpbiB0aGUgY3VycmVudCB0ZXN0IGNhc2UuCi0gIGNvbnN0IFRl
c3RJbmZvKiBjb25zdCBmaXJzdF90ZXN0X2luZm8gPSB0ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0
KClbMF07CisgIC8vIEluZm8gYWJvdXQgdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVz
dCBzdWl0ZS4KKyAgY29uc3QgVGVzdEluZm8qIGNvbnN0IGZpcnN0X3Rlc3RfaW5mbyA9IHRlc3Rf
c3VpdGUtPnRlc3RfaW5mb19saXN0KClbMF07CiAgIGNvbnN0IGludGVybmFsOjpUeXBlSWQgZmly
c3RfZml4dHVyZV9pZCA9IGZpcnN0X3Rlc3RfaW5mby0+Zml4dHVyZV9jbGFzc19pZF87CiAgIGNv
bnN0IGNoYXIqIGNvbnN0IGZpcnN0X3Rlc3RfbmFtZSA9IGZpcnN0X3Rlc3RfaW5mby0+bmFtZSgp
OwogCkBAIC0yMzI4LDcgKzI0OTIsNyBAQCBib29sIFRlc3Q6Okhhc1NhbWVGaXh0dXJlQ2xhc3Mo
KSB7CiAgICAgY29uc3QgYm9vbCB0aGlzX2lzX1RFU1QgPSB0aGlzX2ZpeHR1cmVfaWQgPT0gaW50
ZXJuYWw6OkdldFRlc3RUeXBlSWQoKTsKIAogICAgIGlmIChmaXJzdF9pc19URVNUIHx8IHRoaXNf
aXNfVEVTVCkgewotICAgICAgLy8gQm90aCBURVNUIGFuZCBURVNUX0YgYXBwZWFyIGluIHNhbWUg
dGVzdCBjYXNlLCB3aGljaCBpcyBpbmNvcnJlY3QuCisgICAgICAvLyBCb3RoIFRFU1QgYW5kIFRF
U1RfRiBhcHBlYXIgaW4gc2FtZSB0ZXN0IHN1aXRlLCB3aGljaCBpcyBpbmNvcnJlY3QuCiAgICAg
ICAvLyBUZWxsIHRoZSB1c2VyIGhvdyB0byBmaXggdGhpcy4KIAogICAgICAgLy8gR2V0cyB0aGUg
bmFtZSBvZiB0aGUgVEVTVCBhbmQgdGhlIG5hbWUgb2YgdGhlIFRFU1RfRi4gIE5vdGUKQEAgLTIz
NDAsOSArMjUwNCw5IEBAIGJvb2wgVGVzdDo6SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgICAg
ICAgICBmaXJzdF9pc19URVNUID8gdGhpc190ZXN0X25hbWUgOiBmaXJzdF90ZXN0X25hbWU7CiAK
ICAgICAgIEFERF9GQUlMVVJFKCkKLSAgICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1l
IHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKLSAgICAgICAgICA8
PCAiY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNl
IGlzXG4iCi0gICAgICAgICAgPDwgImlsbGVnYWwuICBJbiB0ZXN0IGNhc2UgIiA8PCB0aGlzX3Rl
c3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKQorICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhl
IHNhbWUgdGVzdCBzdWl0ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKKyAgICAg
ICAgICA8PCAiY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVz
dCBzdWl0ZSBpc1xuIgorICAgICAgICAgIDw8ICJpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSAiIDw8
IHRoaXNfdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKQogICAgICAgICAgIDw8ICIsXG4iCiAg
ICAgICAgICAgPDwgInRlc3QgIiA8PCBURVNUX0ZfbmFtZSA8PCAiIGlzIGRlZmluZWQgdXNpbmcg
VEVTVF9GIGJ1dFxuIgogICAgICAgICAgIDw8ICJ0ZXN0ICIgPDwgVEVTVF9uYW1lIDw8ICIgaXMg
ZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5XG4iCkBAIC0yMzUyLDE1ICsyNTE2LDE1
IEBAIGJvb2wgVGVzdDo6SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgICAgIC8vIFR3byBmaXh0
dXJlIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGFwcGVhciBpbiB0d28gZGlmZmVyZW50CiAg
ICAgICAvLyBuYW1lc3BhY2VzLCB3aGljaCBpcyBub3QgYWxsb3dlZC4gVGVsbCB0aGUgdXNlciBo
b3cgdG8gZml4IHRoaXMuCiAgICAgICBBRERfRkFJTFVSRSgpCi0gICAgICAgICAgPDwgIkFsbCB0
ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJl
XG4iCi0gICAgICAgICAgPDwgImNsYXNzLiAgSG93ZXZlciwgaW4gdGVzdCBjYXNlICIKLSAgICAg
ICAgICA8PCB0aGlzX3Rlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSA8PCAiLFxuIgotICAgICAg
ICAgIDw8ICJ5b3UgZGVmaW5lZCB0ZXN0ICIgPDwgZmlyc3RfdGVzdF9uYW1lCi0gICAgICAgICAg
PDwgIiBhbmQgdGVzdCAiIDw8IHRoaXNfdGVzdF9uYW1lIDw8ICJcbiIKKyAgICAgICAgICA8PCAi
QWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBm
aXh0dXJlXG4iCisgICAgICAgICAgPDwgImNsYXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAi
CisgICAgICAgICAgPDwgdGhpc190ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpIDw8ICIsXG4i
CisgICAgICAgICAgPDwgInlvdSBkZWZpbmVkIHRlc3QgIiA8PCBmaXJzdF90ZXN0X25hbWUgPDwg
IiBhbmQgdGVzdCAiCisgICAgICAgICAgPDwgdGhpc190ZXN0X25hbWUgPDwgIlxuIgogICAgICAg
ICAgIDw8ICJ1c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBj
YW4gaGFwcGVuIGlmXG4iCiAgICAgICAgICAgPDwgInRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBk
aWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xhdGlvblxuIgogICAgICAgICAgIDw8ICJ1bml0
cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNob3VsZCBwcm9iYWJseSByZW5hbWUgb25l
XG4iCi0gICAgICAgICAgPDwgIm9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBk
aWZmZXJlbnQgdGVzdCBjYXNlcy4iOworICAgICAgICAgIDw8ICJvZiB0aGUgY2xhc3NlcyB0byBw
dXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50IHRlc3Qgc3VpdGVzLiI7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKICAgfQpAQCAtMjM5Myw3ICsyNTU3LDcgQEAgbmFtZXNwYWNlIGludGVybmFs
IHsKIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKGNvbnN0IGNo
YXIqIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogbG9jYXRpb24pIHsKICAgTWVzc2FnZSBtZXNzYWdlOwotICBpZiAo
ZGVzY3JpcHRpb24gIT0gTlVMTCkgeworICBpZiAoZGVzY3JpcHRpb24gIT0gbnVsbHB0cikgewog
ICAgIG1lc3NhZ2UgPDwgIkMrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiBcIiIgPDwgZGVz
Y3JpcHRpb24gPDwgIlwiIjsKICAgfSBlbHNlIHsKICAgICBtZXNzYWdlIDw8ICJVbmtub3duIEMr
KyBleGNlcHRpb24iOwpAQCAtMjQ5MSw3ICsyNjU1LDcgQEAgUmVzdWx0IEhhbmRsZUV4Y2VwdGlv
bnNJbk1ldGhvZElmU3VwcG9ydGVkKAogICAgIH0gY2F0Y2ggKC4uLikgeyAgLy8gTk9MSU5UCiAg
ICAgICBpbnRlcm5hbDo6UmVwb3J0RmFpbHVyZUluVW5rbm93bkxvY2F0aW9uKAogICAgICAgICAg
IFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLAotICAgICAgICAgIEZvcm1hdEN4eEV4Y2Vw
dGlvbk1lc3NhZ2UoTlVMTCwgbG9jYXRpb24pKTsKKyAgICAgICAgICBGb3JtYXRDeHhFeGNlcHRp
b25NZXNzYWdlKG51bGxwdHIsIGxvY2F0aW9uKSk7CiAgICAgfQogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZXN1bHQ+KDApOwogI2Vsc2UKQEAgLTI1MTEsOCArMjY3NSw5IEBAIHZvaWQgVGVzdDo6
UnVuKCkgewogICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBpbXBsID0gaW50ZXJuYWw6
OkdldFVuaXRUZXN0SW1wbCgpOwogICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBv
bkxlYXZpbmdHVGVzdCgpOwogICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZT
dXBwb3J0ZWQodGhpcywgJlRlc3Q6OlNldFVwLCAiU2V0VXAoKSIpOwotICAvLyBXZSB3aWxsIHJ1
biB0aGUgdGVzdCBvbmx5IGlmIFNldFVwKCkgd2FzIHN1Y2Nlc3NmdWwuCi0gIGlmICghSGFzRmF0
YWxGYWlsdXJlKCkpIHsKKyAgLy8gV2Ugd2lsbCBydW4gdGhlIHRlc3Qgb25seSBpZiBTZXRVcCgp
IHdhcyBzdWNjZXNzZnVsIGFuZCBkaWRuJ3QgY2FsbAorICAvLyBHVEVTVF9TS0lQKCkuCisgIGlm
ICghSGFzRmF0YWxGYWlsdXJlKCkgJiYgIUlzU2tpcHBlZCgpKSB7CiAgICAgaW1wbC0+b3Nfc3Rh
Y2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKICAgICBpbnRlcm5hbDo6SGFu
ZGxlRXhjZXB0aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQoCiAgICAgICAgIHRoaXMsICZUZXN0OjpU
ZXN0Qm9keSwgInRoZSB0ZXN0IGJvZHkiKTsKQEAgLTI1MjYsMzcgKzI2OTEsNDIgQEAgdm9pZCBU
ZXN0OjpSdW4oKSB7CiAgICAgICB0aGlzLCAmVGVzdDo6VGVhckRvd24sICJUZWFyRG93bigpIik7
CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBmYXRhbCBm
YWlsdXJlLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3Qg
aGFzIGEgZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgewogICBy
ZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCkt
Pkhhc0ZhdGFsRmFpbHVyZSgpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBjdXJyZW50
IHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4KIGJvb2wgVGVz
dDo6SGFzTm9uZmF0YWxGYWlsdXJlKCkgewogICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0
SW1wbCgpLT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPgogICAgICAgSGFzTm9uZmF0YWxGYWlsdXJl
KCk7CiB9CiAKKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0
IHdhcyBza2lwcGVkLgorYm9vbCBUZXN0OjpJc1NraXBwZWQoKSB7CisgIHJldHVybiBpbnRlcm5h
bDo6R2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9yZXN1bHQoKS0+U2tpcHBlZCgpOwor
fQorCiAvLyBjbGFzcyBUZXN0SW5mbwogCiAvLyBDb25zdHJ1Y3RzIGEgVGVzdEluZm8gb2JqZWN0
LiBJdCBhc3N1bWVzIG93bmVyc2hpcCBvZiB0aGUgdGVzdCBmYWN0b3J5CiAvLyBvYmplY3QuCi1U
ZXN0SW5mbzo6VGVzdEluZm8oY29uc3Qgc3RkOjpzdHJpbmcmIGFfdGVzdF9jYXNlX25hbWUsCi0g
ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGFfbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBhX3R5cGVfcGFyYW0sCitUZXN0SW5mbzo6VGVzdEluZm8oY29u
c3Qgc3RkOjpzdHJpbmcmIGFfdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6c3RyaW5nJiBhX25hbWUsIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3ZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAg
ICAgIGludGVybmFsOjpDb2RlTG9jYXRpb24gYV9jb2RlX2xvY2F0aW9uLAogICAgICAgICAgICAg
ICAgICAgIGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwKICAgICAgICAgICAgICAg
ICAgICBpbnRlcm5hbDo6VGVzdEZhY3RvcnlCYXNlKiBmYWN0b3J5KQotICAgIDogdGVzdF9jYXNl
X25hbWVfKGFfdGVzdF9jYXNlX25hbWUpLAorICAgIDogdGVzdF9zdWl0ZV9uYW1lXyhhX3Rlc3Rf
c3VpdGVfbmFtZSksCiAgICAgICBuYW1lXyhhX25hbWUpLAotICAgICAgdHlwZV9wYXJhbV8oYV90
eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlwZV9wYXJhbSkgOiBOVUxMKSwKLSAgICAg
IHZhbHVlX3BhcmFtXyhhX3ZhbHVlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdmFsdWVfcGFy
YW0pIDogTlVMTCksCisgICAgICB0eXBlX3BhcmFtXyhhX3R5cGVfcGFyYW0gPyBuZXcgc3RkOjpz
dHJpbmcoYV90eXBlX3BhcmFtKSA6IG51bGxwdHIpLAorICAgICAgdmFsdWVfcGFyYW1fKGFfdmFs
dWVfcGFyYW0gPyBuZXcgc3RkOjpzdHJpbmcoYV92YWx1ZV9wYXJhbSkgOiBudWxscHRyKSwKICAg
ICAgIGxvY2F0aW9uXyhhX2NvZGVfbG9jYXRpb24pLAogICAgICAgZml4dHVyZV9jbGFzc19pZF8o
Zml4dHVyZV9jbGFzc19pZCksCiAgICAgICBzaG91bGRfcnVuXyhmYWxzZSksCiAgICAgICBpc19k
aXNhYmxlZF8oZmFsc2UpLAogICAgICAgbWF0Y2hlc19maWx0ZXJfKGZhbHNlKSwKKyAgICAgIGlz
X2luX2Fub3RoZXJfc2hhcmRfKGZhbHNlKSwKICAgICAgIGZhY3RvcnlfKGZhY3RvcnkpLAogICAg
ICAgcmVzdWx0XygpIHt9CiAKQEAgLTI1NzAsNyArMjc0MCw3IEBAIG5hbWVzcGFjZSBpbnRlcm5h
bCB7CiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8vICAgdGVzdF9jYXNlX25hbWU6ICAgbmFtZSBv
ZiB0aGUgdGVzdCBjYXNlCisvLyAgIHRlc3Rfc3VpdGVfbmFtZTogIG5hbWUgb2YgdGhlIHRlc3Qg
c3VpdGUKIC8vICAgbmFtZTogICAgICAgICAgICAgbmFtZSBvZiB0aGUgdGVzdAogLy8gICB0eXBl
X3BhcmFtOiAgICAgICB0aGUgbmFtZSBvZiB0aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBO
VUxMIGlmCiAvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KQEAgLTI1NzgsNDAgKzI3NDgsMzUgQEAgbmFtZXNwYWNl
IGludGVybmFsIHsKIC8vICAgICAgICAgICAgICAgICAgICAgb3IgTlVMTCBpZiB0aGlzIGlzIG5v
dCBhIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdC4KIC8vICAgY29kZV9sb2NhdGlvbjogICAgY29k
ZSBsb2NhdGlvbiB3aGVyZSB0aGUgdGVzdCBpcyBkZWZpbmVkCiAvLyAgIGZpeHR1cmVfY2xhc3Nf
aWQ6IElEIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MKLS8vICAgc2V0X3VwX3RjOiAgICAgICAg
cG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLS8vICAg
dGVhcl9kb3duX3RjOiAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3du
IHRoZSB0ZXN0IGNhc2UKKy8vICAgc2V0X3VwX3RjOiAgICAgICAgcG9pbnRlciB0byB0aGUgZnVu
Y3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRlYXJfZG93bl90YzogICAg
IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQog
Ly8gICBmYWN0b3J5OiAgICAgICAgICBwb2ludGVyIHRvIHRoZSBmYWN0b3J5IHRoYXQgY3JlYXRl
cyBhIHRlc3Qgb2JqZWN0LgogLy8gICAgICAgICAgICAgICAgICAgICBUaGUgbmV3bHkgY3JlYXRl
ZCBUZXN0SW5mbyBpbnN0YW5jZSB3aWxsIGFzc3VtZQogLy8gICAgICAgICAgICAgICAgICAgICBv
d25lcnNoaXAgb2YgdGhlIGZhY3Rvcnkgb2JqZWN0LgogVGVzdEluZm8qIE1ha2VBbmRSZWdpc3Rl
clRlc3RJbmZvKAotICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgIGNvbnN0IGNo
YXIqIG5hbWUsCi0gICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKLSAgICBjb25zdCBjaGFyKiB2
YWx1ZV9wYXJhbSwKLSAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICBUeXBlSWQg
Zml4dHVyZV9jbGFzc19pZCwKLSAgICBTZXRVcFRlc3RDYXNlRnVuYyBzZXRfdXBfdGMsCi0gICAg
VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjLAotICAgIFRlc3RGYWN0b3J5QmFzZSog
ZmFjdG9yeSkgeworICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciog
bmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKKyAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJh
bSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCisgICAgVHlwZUlkIGZpeHR1cmVfY2xhc3Nf
aWQsIFNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgVGVhckRvd25UZXN0U3VpdGVG
dW5jIHRlYXJfZG93bl90YywgVGVzdEZhY3RvcnlCYXNlKiBmYWN0b3J5KSB7CiAgIFRlc3RJbmZv
KiBjb25zdCB0ZXN0X2luZm8gPQotICAgICAgbmV3IFRlc3RJbmZvKHRlc3RfY2FzZV9uYW1lLCBu
YW1lLCB0eXBlX3BhcmFtLCB2YWx1ZV9wYXJhbSwKKyAgICAgIG5ldyBUZXN0SW5mbyh0ZXN0X3N1
aXRlX25hbWUsIG5hbWUsIHR5cGVfcGFyYW0sIHZhbHVlX3BhcmFtLAogICAgICAgICAgICAgICAg
ICAgIGNvZGVfbG9jYXRpb24sIGZpeHR1cmVfY2xhc3NfaWQsIGZhY3RvcnkpOwogICBHZXRVbml0
VGVzdEltcGwoKS0+QWRkVGVzdEluZm8oc2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMsIHRlc3RfaW5m
byk7CiAgIHJldHVybiB0ZXN0X2luZm87CiB9CiAKLXZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNl
VHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgewordm9pZCBSZXBvcnRJbnZhbGlk
VGVzdFN1aXRlVHlwZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CiAgIE1lc3Nh
Z2UgZXJyb3JzOwogICBlcnJvcnMKLSAgICAgIDw8ICJBdHRlbXB0ZWQgcmVkZWZpbml0aW9uIG9m
IHRlc3QgY2FzZSAiIDw8IHRlc3RfY2FzZV9uYW1lIDw8ICIuXG4iCi0gICAgICA8PCAiQWxsIHRl
c3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVc
biIKLSAgICAgIDw8ICJjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSAiIDw8IHRlc3RfY2Fz
ZV9uYW1lIDw8ICIsIHlvdSB0cmllZFxuIgorICAgICAgPDwgIkF0dGVtcHRlZCByZWRlZmluaXRp
b24gb2YgdGVzdCBzdWl0ZSAiIDw8IHRlc3Rfc3VpdGVfbmFtZSA8PCAiLlxuIgorICAgICAgPDwg
IkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3Qg
Zml4dHVyZVxuIgorICAgICAgPDwgImNsYXNzLiAgSG93ZXZlciwgaW4gdGVzdCBzdWl0ZSAiIDw8
IHRlc3Rfc3VpdGVfbmFtZSA8PCAiLCB5b3UgdHJpZWRcbiIKICAgICAgIDw8ICJ0byBkZWZpbmUg
YSB0ZXN0IHVzaW5nIGEgZml4dHVyZSBjbGFzcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lXG4iCiAg
ICAgICA8PCAidXNlZCBlYXJsaWVyLiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHR3byBmaXh0dXJl
IGNsYXNzZXMgYXJlXG4iCiAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBhbmQg
aGF2ZSB0aGUgc2FtZSBuYW1lLiBZb3Ugc2hvdWxkXG4iCiAgICAgICA8PCAicHJvYmFibHkgcmVu
YW1lIG9uZSBvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50XG4i
Ci0gICAgICA8PCAidGVzdCBjYXNlcy4iOworICAgICAgPDwgInRlc3Qgc3VpdGVzLiI7CiAKICAg
R1RFU1RfTE9HXyhFUlJPUikgPDwgRm9ybWF0RmlsZUxvY2F0aW9uKGNvZGVfbG9jYXRpb24uZmls
ZS5jX3N0cigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29k
ZV9sb2NhdGlvbi5saW5lKQpAQCAtMjYyNCw3ICsyNzg5LDcgQEAgbmFtZXNwYWNlIHsKIC8vIEEg
cHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSB0ZXN0IG5hbWUgb2YgYSBUZXN0SW5mbyBhZ2FpbnN0
IGEga25vd24KIC8vIHZhbHVlLgogLy8KLS8vIFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRp
b24gb2YgdGhlIFRlc3RDYXNlIGNsYXNzIG9ubHkuICBXZSBwdXQKKy8vIFRoaXMgaXMgdXNlZCBm
b3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRlc3RTdWl0ZSBjbGFzcyBvbmx5LiAgV2UgcHV0CiAv
LyBpdCBpbiB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZSB0byBwcmV2ZW50IHBvbGx1dGluZyB0aGUg
b3V0ZXIKIC8vIG5hbWVzcGFjZS4KIC8vCkBAIC0yNjM3LDcgKzI4MDIsNyBAQCBjbGFzcyBUZXN0
TmFtZUlzIHsKICAgZXhwbGljaXQgVGVzdE5hbWVJcyhjb25zdCBjaGFyKiBuYW1lKQogICAgICAg
OiBuYW1lXyhuYW1lKSB7fQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgbmFtZSBv
ZiB0ZXN0X2luZm8gbWF0Y2hlcyBuYW1lXy4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdF9pbmZvIG1hdGNoZXMgbmFtZV8uCiAgIGJvb2wgb3Bl
cmF0b3IoKShjb25zdCBUZXN0SW5mbyAqIHRlc3RfaW5mbykgY29uc3QgewogICAgIHJldHVybiB0
ZXN0X2luZm8gJiYgdGVzdF9pbmZvLT5uYW1lKCkgPT0gbmFtZV87CiAgIH0KQEAgLTI2NTEsMTEg
KzI4MTYsMTIgQEAgY2xhc3MgVGVzdE5hbWVJcyB7CiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAv
LyBUaGlzIG1ldGhvZCBleHBhbmRzIGFsbCBwYXJhbWV0ZXJpemVkIHRlc3RzIHJlZ2lzdGVyZWQg
d2l0aCBtYWNyb3MgVEVTVF9QCi0vLyBhbmQgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AgaW50byBy
ZWd1bGFyIHRlc3RzIGFuZCByZWdpc3RlcnMgdGhvc2UuCisvLyBhbmQgSU5TVEFOVElBVEVfVEVT
VF9TVUlURV9QIGludG8gcmVndWxhciB0ZXN0cyBhbmQgcmVnaXN0ZXJzIHRob3NlLgogLy8gVGhp
cyB3aWxsIGJlIGRvbmUganVzdCBvbmNlIGR1cmluZyB0aGUgcHJvZ3JhbSBydW50aW1lLgogdm9p
ZCBVbml0VGVzdEltcGw6OlJlZ2lzdGVyUGFyYW1ldGVyaXplZFRlc3RzKCkgewogICBpZiAoIXBh
cmFtZXRlcml6ZWRfdGVzdHNfcmVnaXN0ZXJlZF8pIHsKICAgICBwYXJhbWV0ZXJpemVkX3Rlc3Rf
cmVnaXN0cnlfLlJlZ2lzdGVyVGVzdHMoKTsKKyAgICB0eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9y
ZWdpc3RyeV8uQ2hlY2tGb3JJbnN0YW50aWF0aW9ucygpOwogICAgIHBhcmFtZXRlcml6ZWRfdGVz
dHNfcmVnaXN0ZXJlZF8gPSB0cnVlOwogICB9CiB9CkBAIC0yNjc2LDcgKzI4NDIsOCBAQCB2b2lk
IFRlc3RJbmZvOjpSdW4oKSB7CiAgIC8vIE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlz
dGVuZXJzIHRoYXQgYSB0ZXN0IGlzIGFib3V0IHRvIHN0YXJ0LgogICByZXBlYXRlci0+T25UZXN0
U3RhcnQoKnRoaXMpOwogCi0gIGNvbnN0IFRpbWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpH
ZXRUaW1lSW5NaWxsaXMoKTsKKyAgcmVzdWx0Xy5zZXRfc3RhcnRfdGltZXN0YW1wKGludGVybmFs
OjpHZXRUaW1lSW5NaWxsaXMoKSk7CisgIGludGVybmFsOjpUaW1lciB0aW1lcjsKIAogICBpbXBs
LT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogCkBAIC0yNjg1
LDE1NCArMjg1MiwyMzMgQEAgdm9pZCBUZXN0SW5mbzo6UnVuKCkgewogICAgICAgZmFjdG9yeV8s
ICZpbnRlcm5hbDo6VGVzdEZhY3RvcnlCYXNlOjpDcmVhdGVUZXN0LAogICAgICAgInRoZSB0ZXN0
IGZpeHR1cmUncyBjb25zdHJ1Y3RvciIpOwogCi0gIC8vIFJ1bnMgdGhlIHRlc3QgaWYgdGhlIGNv
bnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUuCisgIC8vIFJ1bnMgdGhl
IHRlc3QgaWYgdGhlIGNvbnN0cnVjdG9yIGRpZG4ndCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUg
b3IgaW52b2tlCisgIC8vIEdURVNUX1NLSVAoKS4KICAgLy8gTm90ZSB0aGF0IHRoZSBvYmplY3Qg
d2lsbCBub3QgYmUgbnVsbAotICBpZiAoIVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgIGlm
ICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkgJiYgIVRlc3Q6OklzU2tpcHBlZCgpKSB7CiAgICAg
Ly8gVGhpcyBkb2Vzbid0IHRocm93IGFzIGFsbCB1c2VyIGNvZGUgdGhhdCBjYW4gdGhyb3cgYXJl
IHdyYXBwZWQgaW50bwogICAgIC8vIGV4Y2VwdGlvbiBoYW5kbGluZyBjb2RlLgogICAgIHRlc3Qt
PlJ1bigpOwogICB9CiAKKyAgaWYgKHRlc3QgIT0gbnVsbHB0cikgewogICAgIC8vIERlbGV0ZXMg
dGhlIHRlc3Qgb2JqZWN0LgogICAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9u
TGVhdmluZ0dUZXN0KCk7CiAgICAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElm
U3VwcG9ydGVkKAogICAgICAgICB0ZXN0LCAmVGVzdDo6RGVsZXRlU2VsZl8sICJ0aGUgdGVzdCBm
aXh0dXJlJ3MgZGVzdHJ1Y3RvciIpOworICB9CiAKLSAgcmVzdWx0Xy5zZXRfZWxhcHNlZF90aW1l
KGludGVybmFsOjpHZXRUaW1lSW5NaWxsaXMoKSAtIHN0YXJ0KTsKKyAgcmVzdWx0Xy5zZXRfZWxh
cHNlZF90aW1lKHRpbWVyLkVsYXBzZWQoKSk7CiAKICAgLy8gTm90aWZpZXMgdGhlIHVuaXQgdGVz
dCBldmVudCBsaXN0ZW5lciB0aGF0IGEgdGVzdCBoYXMganVzdCBmaW5pc2hlZC4KICAgcmVwZWF0
ZXItPk9uVGVzdEVuZCgqdGhpcyk7CiAKICAgLy8gVGVsbHMgVW5pdFRlc3QgdG8gc3RvcCBhc3Nv
Y2lhdGluZyBhc3NlcnRpb24gcmVzdWx0cyB0byB0aGlzCiAgIC8vIHRlc3QuCi0gIGltcGwtPnNl
dF9jdXJyZW50X3Rlc3RfaW5mbyhOVUxMKTsKKyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9pbmZv
KG51bGxwdHIpOwogfQogCi0vLyBjbGFzcyBUZXN0Q2FzZQorLy8gU2tpcCBhbmQgcmVjb3JkcyBh
IHNraXBwZWQgdGVzdCByZXN1bHQgZm9yIHRoaXMgb2JqZWN0Lgordm9pZCBUZXN0SW5mbzo6U2tp
cCgpIHsKKyAgaWYgKCFzaG91bGRfcnVuXykgcmV0dXJuOwogCi0vLyBHZXRzIHRoZSBudW1iZXIg
b2Ygc3VjY2Vzc2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6c3Vj
Y2Vzc2Z1bF90ZXN0X2NvdW50KCkgY29uc3QgeworICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBj
b25zdCBpbXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOworICBpbXBsLT5zZXRfY3Vy
cmVudF90ZXN0X2luZm8odGhpcyk7CisKKyAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0g
VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CisKKyAgLy8g
Tm90aWZpZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lcnMgdGhhdCBhIHRlc3QgaXMgYWJv
dXQgdG8gc3RhcnQuCisgIHJlcGVhdGVyLT5PblRlc3RTdGFydCgqdGhpcyk7CisKKyAgY29uc3Qg
VGVzdFBhcnRSZXN1bHQgdGVzdF9wYXJ0X3Jlc3VsdCA9CisgICAgICBUZXN0UGFydFJlc3VsdChU
ZXN0UGFydFJlc3VsdDo6a1NraXAsIHRoaXMtPmZpbGUoKSwgdGhpcy0+bGluZSgpLCAiIik7Cisg
IGltcGwtPkdldFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKCktPlJlcG9y
dFRlc3RQYXJ0UmVzdWx0KAorICAgICAgdGVzdF9wYXJ0X3Jlc3VsdCk7CisKKyAgLy8gTm90aWZp
ZXMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0aGF0IGEgdGVzdCBoYXMganVzdCBmaW5p
c2hlZC4KKyAgcmVwZWF0ZXItPk9uVGVzdEVuZCgqdGhpcyk7CisgIGltcGwtPnNldF9jdXJyZW50
X3Rlc3RfaW5mbyhudWxscHRyKTsKK30KKworLy8gY2xhc3MgVGVzdFN1aXRlCisKKy8vIEdldHMg
dGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK2ludCBU
ZXN0U3VpdGU6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50
SWYodGVzdF9pbmZvX2xpc3RfLCBUZXN0UGFzc2VkKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZmFpbGVk
X3Rlc3RfY291bnQoKSBjb25zdCB7CisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0
ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRlOjpza2lwcGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CisgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFNraXBw
ZWQpOworfQorCisvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoaXMgdGVz
dCBzdWl0ZS4KK2ludCBUZXN0U3VpdGU6OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICBy
ZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3RGYWlsZWQpOwogfQogCiAvLyBHZXRz
IHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRo
ZSBYTUwgcmVwb3J0LgotaW50IFRlc3RDYXNlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CitpbnQgVGVzdFN1aXRlOjpyZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9y
dGFibGVEaXNhYmxlZCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0
cyBpbiB0aGlzIHRlc3QgY2FzZS4KLWludCBUZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCgp
IGNvbnN0IHsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBkaXNhYmxlZCB0ZXN0cyBpbiB0aGlzIHRl
c3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRlOjpkaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3Qgewog
ICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3REaXNhYmxlZCk7CiB9CiAKIC8v
IEdldHMgdGhlIG51bWJlciBvZiB0ZXN0cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0
LgotaW50IFRlc3RDYXNlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQoKSBjb25zdCB7CitpbnQgVGVz
dFN1aXRlOjpyZXBvcnRhYmxlX3Rlc3RfY291bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElm
KHRlc3RfaW5mb19saXN0XywgVGVzdFJlcG9ydGFibGUpOwogfQogCi0vLyBHZXQgdGhlIG51bWJl
ciBvZiB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZSB0aGF0IHNob3VsZCBydW4uCi1pbnQgVGVzdENh
c2U6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3QgeworLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVz
dHMgaW4gdGhpcyB0ZXN0IHN1aXRlIHRoYXQgc2hvdWxkIHJ1bi4KK2ludCBUZXN0U3VpdGU6OnRl
c3RfdG9fcnVuX2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlz
dF8sIFNob3VsZFJ1blRlc3QpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Rz
LgotaW50IFRlc3RDYXNlOjp0b3RhbF90ZXN0X2NvdW50KCkgY29uc3QgeworaW50IFRlc3RTdWl0
ZTo6dG90YWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4o
dGVzdF9pbmZvX2xpc3RfLnNpemUoKSk7CiB9CiAKLS8vIENyZWF0ZXMgYSBUZXN0Q2FzZSB3aXRo
IHRoZSBnaXZlbiBuYW1lLgorLy8gQ3JlYXRlcyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZlbiBu
YW1lLgogLy8KIC8vIEFyZ3VtZW50czoKIC8vCi0vLyAgIG5hbWU6ICAgICAgICAgbmFtZSBvZiB0
aGUgdGVzdCBjYXNlCi0vLyAgIGFfdHlwZV9wYXJhbTogdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2Fz
ZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCi0vLyAgICAgICAgICAgICAgICAgdGhpcyBp
cyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyAgIHNl
dF91cF90YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0
IGNhc2UKLS8vICAgdGVhcl9kb3duX3RjOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRl
YXJzIGRvd24gdGhlIHRlc3QgY2FzZQotVGVzdENhc2U6OlRlc3RDYXNlKGNvbnN0IGNoYXIqIGFf
bmFtZSwgY29uc3QgY2hhciogYV90eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgIFRlc3Q6
OlNldFVwVGVzdENhc2VGdW5jIHNldF91cF90YywKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpU
ZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpCisvLyAgIGFfbmFtZTogICAgICAgbmFt
ZSBvZiB0aGUgdGVzdCBzdWl0ZQorLy8gICBhX3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0
ZXN0IHN1aXRlJ3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKKy8vICAgICAgICAgICAgICAg
ICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUu
CisvLyAgIHNldF91cF90YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVw
IHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRlYXJfZG93bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rp
b24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1aXRlCitUZXN0U3VpdGU6OlRlc3RTdWl0ZShj
b25zdCBjaGFyKiBhX25hbWUsIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKKyAgICAgICAgICAg
ICAgICAgICAgIGludGVybmFsOjpTZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAg
ICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25f
dGMpCiAgICAgOiBuYW1lXyhhX25hbWUpLAotICAgICAgdHlwZV9wYXJhbV8oYV90eXBlX3BhcmFt
ID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlwZV9wYXJhbSkgOiBOVUxMKSwKKyAgICAgIHR5cGVfcGFy
YW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBzdGQ6OnN0cmluZyhhX3R5cGVfcGFyYW0pIDogbnVsbHB0
ciksCiAgICAgICBzZXRfdXBfdGNfKHNldF91cF90YyksCiAgICAgICB0ZWFyX2Rvd25fdGNfKHRl
YXJfZG93bl90YyksCiAgICAgICBzaG91bGRfcnVuXyhmYWxzZSksCi0gICAgICBlbGFwc2VkX3Rp
bWVfKDApIHsKLX0KKyAgICAgIHN0YXJ0X3RpbWVzdGFtcF8oMCksCisgICAgICBlbGFwc2VkX3Rp
bWVfKDApIHt9CiAKLS8vIERlc3RydWN0b3Igb2YgVGVzdENhc2UuCi1UZXN0Q2FzZTo6flRlc3RD
YXNlKCkgeworLy8gRGVzdHJ1Y3RvciBvZiBUZXN0U3VpdGUuCitUZXN0U3VpdGU6On5UZXN0U3Vp
dGUoKSB7CiAgIC8vIERlbGV0ZXMgZXZlcnkgVGVzdCBpbiB0aGUgY29sbGVjdGlvbi4KICAgRm9y
RWFjaCh0ZXN0X2luZm9fbGlzdF8sIGludGVybmFsOjpEZWxldGU8VGVzdEluZm8+KTsKIH0KIAog
Ly8gUmV0dXJucyB0aGUgaS10aCB0ZXN0IGFtb25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdl
IGZyb20gMCB0bwogLy8gdG90YWxfdGVzdF9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhh
dCByYW5nZSwgcmV0dXJucyBOVUxMLgotY29uc3QgVGVzdEluZm8qIFRlc3RDYXNlOjpHZXRUZXN0
SW5mbyhpbnQgaSkgY29uc3QgeworY29uc3QgVGVzdEluZm8qIFRlc3RTdWl0ZTo6R2V0VGVzdElu
Zm8oaW50IGkpIGNvbnN0IHsKICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3Rf
aW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9f
bGlzdF9baW5kZXhdOworICByZXR1cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5mb19s
aXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV07CiB9CiAKIC8vIFJldHVybnMgdGhlIGkt
dGggdGVzdCBhbW9uZyBhbGwgdGhlIHRlc3RzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KIC8vIHRv
dGFsX3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMg
TlVMTC4KLVRlc3RJbmZvKiBUZXN0Q2FzZTo6R2V0TXV0YWJsZVRlc3RJbmZvKGludCBpKSB7CitU
ZXN0SW5mbyogVGVzdFN1aXRlOjpHZXRNdXRhYmxlVGVzdEluZm8oaW50IGkpIHsKICAgY29uc3Qg
aW50IGluZGV4ID0gR2V0RWxlbWVudE9yKHRlc3RfaW5kaWNlc18sIGksIC0xKTsKLSAgcmV0dXJu
IGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2luZm9fbGlzdF9baW5kZXhdOworICByZXR1cm4gaW5k
ZXggPCAwID8gbnVsbHB0ciA6IHRlc3RfaW5mb19saXN0X1tzdGF0aWNfY2FzdDxzaXplX3Q+KGlu
ZGV4KV07CiB9CiAKLS8vIEFkZHMgYSB0ZXN0IHRvIHRoaXMgdGVzdCBjYXNlLiAgV2lsbCBkZWxl
dGUgdGhlIHRlc3QgdXBvbgotLy8gZGVzdHJ1Y3Rpb24gb2YgdGhlIFRlc3RDYXNlIG9iamVjdC4K
LXZvaWQgVGVzdENhc2U6OkFkZFRlc3RJbmZvKFRlc3RJbmZvICogdGVzdF9pbmZvKSB7CisvLyBB
ZGRzIGEgdGVzdCB0byB0aGlzIHRlc3Qgc3VpdGUuICBXaWxsIGRlbGV0ZSB0aGUgdGVzdCB1cG9u
CisvLyBkZXN0cnVjdGlvbiBvZiB0aGUgVGVzdFN1aXRlIG9iamVjdC4KK3ZvaWQgVGVzdFN1aXRl
OjpBZGRUZXN0SW5mbyhUZXN0SW5mbyogdGVzdF9pbmZvKSB7CiAgIHRlc3RfaW5mb19saXN0Xy5w
dXNoX2JhY2sodGVzdF9pbmZvKTsKICAgdGVzdF9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nh
c3Q8aW50Pih0ZXN0X2luZGljZXNfLnNpemUoKSkpOwogfQogCi0vLyBSdW5zIGV2ZXJ5IHRlc3Qg
aW4gdGhpcyBUZXN0Q2FzZS4KLXZvaWQgVGVzdENhc2U6OlJ1bigpIHsKKy8vIFJ1bnMgZXZlcnkg
dGVzdCBpbiB0aGlzIFRlc3RTdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpSdW4oKSB7CiAgIGlmICgh
c2hvdWxkX3J1bl8pIHJldHVybjsKIAogICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBjb25zdCBp
bXBsID0gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgpOwotICBpbXBsLT5zZXRfY3VycmVudF90
ZXN0X2Nhc2UodGhpcyk7CisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUodGhpcyk7CiAK
ICAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVhdGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
Pmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CiAKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhl
IG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVzdFN1aXRlU3RhcnQoKnRoaXMpOworLy8gIExlZ2Fj
eSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICByZXBlYXRlci0+T25UZXN0Q2FzZVN0YXJ0KCp0
aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAg
IGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0KCk7CiAgIGlu
dGVybmFsOjpIYW5kbGVFeGNlcHRpb25zSW5NZXRob2RJZlN1cHBvcnRlZCgKLSAgICAgIHRoaXMs
ICZUZXN0Q2FzZTo6UnVuU2V0VXBUZXN0Q2FzZSwgIlNldFVwVGVzdENhc2UoKSIpOworICAgICAg
dGhpcywgJlRlc3RTdWl0ZTo6UnVuU2V0VXBUZXN0U3VpdGUsICJTZXRVcFRlc3RTdWl0ZSgpIik7
CiAKLSAgY29uc3QgaW50ZXJuYWw6OlRpbWVJbk1pbGxpcyBzdGFydCA9IGludGVybmFsOjpHZXRU
aW1lSW5NaWxsaXMoKTsKKyAgc3RhcnRfdGltZXN0YW1wXyA9IGludGVybmFsOjpHZXRUaW1lSW5N
aWxsaXMoKTsKKyAgaW50ZXJuYWw6OlRpbWVyIHRpbWVyOwogICBmb3IgKGludCBpID0gMDsgaSA8
IHRvdGFsX3Rlc3RfY291bnQoKTsgaSsrKSB7CiAgICAgR2V0TXV0YWJsZVRlc3RJbmZvKGkpLT5S
dW4oKTsKKyAgICBpZiAoR1RFU1RfRkxBRyhmYWlsX2Zhc3QpICYmIEdldE11dGFibGVUZXN0SW5m
byhpKS0+cmVzdWx0KCktPkZhaWxlZCgpKSB7CisgICAgICBmb3IgKGludCBqID0gaSArIDE7IGog
PCB0b3RhbF90ZXN0X2NvdW50KCk7IGorKykgeworICAgICAgICBHZXRNdXRhYmxlVGVzdEluZm8o
aiktPlNraXAoKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KICAgfQotICBlbGFwc2Vk
X3RpbWVfID0gaW50ZXJuYWw6OkdldFRpbWVJbk1pbGxpcygpIC0gc3RhcnQ7CisgIGVsYXBzZWRf
dGltZV8gPSB0aW1lci5FbGFwc2VkKCk7CiAKICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVy
KCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKICAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1l
dGhvZElmU3VwcG9ydGVkKAotICAgICAgdGhpcywgJlRlc3RDYXNlOjpSdW5UZWFyRG93blRlc3RD
YXNlLCAiVGVhckRvd25UZXN0Q2FzZSgpIik7CisgICAgICB0aGlzLCAmVGVzdFN1aXRlOjpSdW5U
ZWFyRG93blRlc3RTdWl0ZSwgIlRlYXJEb3duVGVzdFN1aXRlKCkiKTsKIAorICAvLyBDYWxsIGJv
dGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQSQorICByZXBlYXRlci0+T25UZXN0U3VpdGVFbmQoKnRo
aXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogICByZXBlYXRlci0+T25U
ZXN0Q2FzZUVuZCgqdGhpcyk7Ci0gIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfY2FzZShOVUxMKTsK
KyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGltcGwt
PnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUobnVsbHB0cik7CiB9CiAKLS8vIENsZWFycyB0aGUgcmVz
dWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCi12b2lkIFRlc3RDYXNlOjpDbGVh
clJlc3VsdCgpIHsKKy8vIFNraXBzIGFsbCB0ZXN0cyB1bmRlciB0aGlzIFRlc3RTdWl0ZS4KK3Zv
aWQgVGVzdFN1aXRlOjpTa2lwKCkgeworICBpZiAoIXNob3VsZF9ydW5fKSByZXR1cm47CisKKyAg
aW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVz
dEltcGwoKTsKKyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9zdWl0ZSh0aGlzKTsKKworICBUZXN0
RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+bGlzdGVu
ZXJzKCkucmVwZWF0ZXIoKTsKKworICAvLyBDYWxsIGJvdGggbGVnYWN5IGFuZCB0aGUgbmV3IEFQ
SQorICByZXBlYXRlci0+T25UZXN0U3VpdGVTdGFydCgqdGhpcyk7CisvLyAgTGVnYWN5IEFQSSBp
cyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCisgIHJlcGVhdGVyLT5PblRlc3RDYXNlU3RhcnQoKnRoaXMpOwor
I2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgZm9yIChp
bnQgaSA9IDA7IGkgPCB0b3RhbF90ZXN0X2NvdW50KCk7IGkrKykgeworICAgIEdldE11dGFibGVU
ZXN0SW5mbyhpKS0+U2tpcCgpOworICB9CisKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhl
IG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVzdFN1aXRlRW5kKCp0aGlzKTsKKyAgLy8gTGVnYWN5
IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHJlcGVhdGVyLT5PblRlc3RDYXNlRW5kKCp0aGlz
KTsKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGlt
cGwtPnNldF9jdXJyZW50X3Rlc3Rfc3VpdGUobnVsbHB0cik7Cit9CisKKy8vIENsZWFycyB0aGUg
cmVzdWx0cyBvZiBhbGwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgordm9pZCBUZXN0U3VpdGU6
OkNsZWFyUmVzdWx0KCkgewogICBhZF9ob2NfdGVzdF9yZXN1bHRfLkNsZWFyKCk7CiAgIEZvckVh
Y2godGVzdF9pbmZvX2xpc3RfLCBUZXN0SW5mbzo6Q2xlYXJUZXN0UmVzdWx0KTsKIH0KIAotLy8g
U2h1ZmZsZXMgdGhlIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6U2h1
ZmZsZVRlc3RzKGludGVybmFsOjpSYW5kb20qIHJhbmRvbSkgeworLy8gU2h1ZmZsZXMgdGhlIHRl
c3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpTaHVmZmxlVGVzdHMoaW50
ZXJuYWw6OlJhbmRvbSogcmFuZG9tKSB7CiAgIFNodWZmbGUocmFuZG9tLCAmdGVzdF9pbmRpY2Vz
Xyk7CiB9CiAKIC8vIFJlc3RvcmVzIHRoZSB0ZXN0IG9yZGVyIHRvIGJlZm9yZSB0aGUgZmlyc3Qg
c2h1ZmZsZS4KLXZvaWQgVGVzdENhc2U6OlVuc2h1ZmZsZVRlc3RzKCkgewordm9pZCBUZXN0U3Vp
dGU6OlVuc2h1ZmZsZVRlc3RzKCkgewogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfaW5k
aWNlc18uc2l6ZSgpOyBpKyspIHsKICAgICB0ZXN0X2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8
aW50PihpKTsKICAgfQpAQCAtMjg1NSw5ICszMTAxLDkgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZv
cm1hdFRlc3RDb3VudChpbnQgdGVzdF9jb3VudCkgewogICByZXR1cm4gRm9ybWF0Q291bnRhYmxl
Tm91bih0ZXN0X2NvdW50LCAidGVzdCIsICJ0ZXN0cyIpOwogfQogCi0vLyBGb3JtYXRzIHRoZSBj
b3VudCBvZiB0ZXN0IGNhc2VzLgotc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RDYXNlQ291
bnQoaW50IHRlc3RfY2FzZV9jb3VudCkgewotICByZXR1cm4gRm9ybWF0Q291bnRhYmxlTm91bih0
ZXN0X2Nhc2VfY291bnQsICJ0ZXN0IGNhc2UiLCAidGVzdCBjYXNlcyIpOworLy8gRm9ybWF0cyB0
aGUgY291bnQgb2YgdGVzdCBzdWl0ZXMuCitzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0VGVzdFN1
aXRlQ291bnQoaW50IHRlc3Rfc3VpdGVfY291bnQpIHsKKyAgcmV0dXJuIEZvcm1hdENvdW50YWJs
ZU5vdW4odGVzdF9zdWl0ZV9jb3VudCwgInRlc3Qgc3VpdGUiLCAidGVzdCBzdWl0ZXMiKTsKIH0K
IAogLy8gQ29udmVydHMgYSBUZXN0UGFydFJlc3VsdDo6VHlwZSBlbnVtIHRvIGh1bWFuLWZyaWVu
ZGx5IHN0cmluZwpAQCAtMjg2Niw2ICszMTEyLDggQEAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1h
dFRlc3RDYXNlQ291bnQoaW50IHRlc3RfY2FzZV9jb3VudCkgewogLy8gYmV0d2VlbiB0aGUgdHdv
IHdoZW4gdmlld2luZyB0aGUgdGVzdCByZXN1bHQuCiBzdGF0aWMgY29uc3QgY2hhciAqIFRlc3RQ
YXJ0UmVzdWx0VHlwZVRvU3RyaW5nKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHR5cGUpIHsKICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBUZXN0UGFydFJlc3VsdDo6a1NraXA6CisgICAgICByZXR1
cm4gIlNraXBwZWRcbiI7CiAgICAgY2FzZSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3M6CiAgICAg
ICByZXR1cm4gIlN1Y2Nlc3MiOwogCkBAIC0yODgyLDYgKzMxMzAsOSBAQCBzdGF0aWMgY29uc3Qg
Y2hhciAqIFRlc3RQYXJ0UmVzdWx0VHlwZVRvU3RyaW5nKFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHR5
cGUpIHsKIH0KIAogbmFtZXNwYWNlIGludGVybmFsIHsKK25hbWVzcGFjZSB7CitlbnVtIGNsYXNz
IEdUZXN0Q29sb3IgeyBrRGVmYXVsdCwga1JlZCwga0dyZWVuLCBrWWVsbG93IH07Cit9ICAvLyBu
YW1lc3BhY2UKIAogLy8gUHJpbnRzIGEgVGVzdFBhcnRSZXN1bHQgdG8gYW4gc3RkOjpzdHJpbmcu
CiBzdGF0aWMgc3RkOjpzdHJpbmcgUHJpbnRUZXN0UGFydFJlc3VsdFRvU3RyaW5nKApAQCAtMjkx
MywyMyArMzE2NCwxOCBAQCBzdGF0aWMgdm9pZCBQcmludFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRl
c3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSB7CiB9CiAKIC8vIGNsYXNzIFByZXR0eVVu
aXRUZXN0UmVzdWx0UHJpbnRlcgotCi1lbnVtIEdUZXN0Q29sb3IgewotICBDT0xPUl9ERUZBVUxU
LAotICBDT0xPUl9SRUQsCi0gIENPTE9SX0dSRUVOLAotICBDT0xPUl9ZRUxMT1cKLX07Ci0KICNp
ZiBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRSAmJiBcCiAgICAg
IUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYgIUdURVNUX09TX1dJTkRPV1NfUlQgJiYgIUdURVNU
X09TX1dJTkRPV1NfTUlOR1cKIAogLy8gUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0dHJpYnV0ZSBm
b3IgdGhlIGdpdmVuIGNvbG9yLgogc3RhdGljIFdPUkQgR2V0Q29sb3JBdHRyaWJ1dGUoR1Rlc3RD
b2xvciBjb2xvcikgewogICBzd2l0Y2ggKGNvbG9yKSB7Ci0gICAgY2FzZSBDT0xPUl9SRUQ6ICAg
IHJldHVybiBGT1JFR1JPVU5EX1JFRDsKLSAgICBjYXNlIENPTE9SX0dSRUVOOiAgcmV0dXJuIEZP
UkVHUk9VTkRfR1JFRU47Ci0gICAgY2FzZSBDT0xPUl9ZRUxMT1c6IHJldHVybiBGT1JFR1JPVU5E
X1JFRCB8IEZPUkVHUk9VTkRfR1JFRU47CisgICAgY2FzZSBHVGVzdENvbG9yOjprUmVkOgorICAg
ICAgcmV0dXJuIEZPUkVHUk9VTkRfUkVEOworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a0dyZWVuOgor
ICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfR1JFRU47CisgICAgY2FzZSBHVGVzdENvbG9yOjprWWVs
bG93OgorICAgICAgcmV0dXJuIEZPUkVHUk9VTkRfUkVEIHwgRk9SRUdST1VORF9HUkVFTjsKICAg
ICBkZWZhdWx0OiAgICAgICAgICAgcmV0dXJuIDA7CiAgIH0KIH0KQEAgLTI5NjcsMjAgKzMyMTMs
MjQgQEAgc3RhdGljIFdPUkQgR2V0TmV3Q29sb3IoR1Rlc3RDb2xvciBjb2xvciwgV09SRCBvbGRf
Y29sb3JfYXR0cnMpIHsKIAogI2Vsc2UKIAotLy8gUmV0dXJucyB0aGUgQU5TSSBjb2xvciBjb2Rl
IGZvciB0aGUgZ2l2ZW4gY29sb3IuICBDT0xPUl9ERUZBVUxUIGlzCisvLyBSZXR1cm5zIHRoZSBB
TlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBjb2xvci4gR1Rlc3RDb2xvcjo6a0RlZmF1bHQg
aXMKIC8vIGFuIGludmFsaWQgaW5wdXQuCiBzdGF0aWMgY29uc3QgY2hhciogR2V0QW5zaUNvbG9y
Q29kZShHVGVzdENvbG9yIGNvbG9yKSB7CiAgIHN3aXRjaCAoY29sb3IpIHsKLSAgICBjYXNlIENP
TE9SX1JFRDogICAgIHJldHVybiAiMSI7Ci0gICAgY2FzZSBDT0xPUl9HUkVFTjogICByZXR1cm4g
IjIiOwotICAgIGNhc2UgQ09MT1JfWUVMTE9XOiAgcmV0dXJuICIzIjsKLSAgICBkZWZhdWx0OiAg
ICAgICAgICAgIHJldHVybiBOVUxMOwotICB9OworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1JlZDoK
KyAgICAgIHJldHVybiAiMSI7CisgICAgY2FzZSBHVGVzdENvbG9yOjprR3JlZW46CisgICAgICBy
ZXR1cm4gIjIiOworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1llbGxvdzoKKyAgICAgIHJldHVybiAi
MyI7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBudWxscHRyOworICB9CiB9CiAKICNlbmRp
ZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKIAotLy8g
UmV0dXJucyB0cnVlIGlmZiBHb29nbGUgVGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0
cHV0LgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIEdvb2dsZSBUZXN0IHNob3VsZCB1
c2UgY29sb3JzIGluIHRoZSBvdXRwdXQuCiBib29sIFNob3VsZFVzZUNvbG9yKGJvb2wgc3Rkb3V0
X2lzX3R0eSkgewogICBjb25zdCBjaGFyKiBjb25zdCBndGVzdF9jb2xvciA9IEdURVNUX0ZMQUco
Y29sb3IpLmNfc3RyKCk7CiAKQEAgLTMwMjEsMTkgKzMyNzEsMjAgQEAgYm9vbCBTaG91bGRVc2VD
b2xvcihib29sIHN0ZG91dF9pc190dHkpIHsKIC8vIGNhbm5vdCBzaW1wbHkgZW1pdCBzcGVjaWFs
IGNoYXJhY3RlcnMgYW5kIGhhdmUgdGhlIHRlcm1pbmFsIGNoYW5nZSBjb2xvcnMuCiAvLyBUaGlz
IHJvdXRpbmUgbXVzdCBhY3R1YWxseSBlbWl0IHRoZSBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIHJl
dHVybiBhIHN0cmluZwogLy8gdGhhdCB3b3VsZCBiZSBjb2xvcmVkIHdoZW4gcHJpbnRlZCwgYXMg
Y2FuIGJlIGRvbmUgb24gTGludXguCi1zdGF0aWMgdm9pZCBDb2xvcmVkUHJpbnRmKEdUZXN0Q29s
b3IgY29sb3IsIGNvbnN0IGNoYXIqIGZtdCwgLi4uKSB7CisKK0dURVNUX0FUVFJJQlVURV9QUklO
VEZfKDIsIDMpCitzdGF0aWMgdm9pZCBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3IgY29sb3IsIGNv
bnN0IGNoYXIgKmZtdCwgLi4uKSB7CiAgIHZhX2xpc3QgYXJnczsKICAgdmFfc3RhcnQoYXJncywg
Zm10KTsKIAotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4g
fHwgR1RFU1RfT1NfWk9TIHx8IFwKLSAgICBHVEVTVF9PU19JT1MgfHwgR1RFU1RfT1NfV0lORE9X
U19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUCisjaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJ
TEUgfHwgR1RFU1RfT1NfWk9TIHx8IEdURVNUX09TX0lPUyB8fCBcCisgICAgR1RFU1RfT1NfV0lO
RE9XU19QSE9ORSB8fCBHVEVTVF9PU19XSU5ET1dTX1JUIHx8IGRlZmluZWQoRVNQX1BMQVRGT1JN
KQogICBjb25zdCBib29sIHVzZV9jb2xvciA9IEFsd2F5c0ZhbHNlKCk7CiAjZWxzZQogICBzdGF0
aWMgY29uc3QgYm9vbCBpbl9jb2xvcl9tb2RlID0KICAgICAgIFNob3VsZFVzZUNvbG9yKHBvc2l4
OjpJc0FUVFkocG9zaXg6OkZpbGVObyhzdGRvdXQpKSAhPSAwKTsKLSAgY29uc3QgYm9vbCB1c2Vf
Y29sb3IgPSBpbl9jb2xvcl9tb2RlICYmIChjb2xvciAhPSBDT0xPUl9ERUZBVUxUKTsKLSNlbmRp
ZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfU1lNQklBTiB8fCBHVEVT
VF9PU19aT1MKLSAgLy8gVGhlICchPSAwJyBjb21wYXJpc29uIGlzIG5lY2Vzc2FyeSB0byBzYXRp
c2Z5IE1TVkMgNy4xLgorICBjb25zdCBib29sIHVzZV9jb2xvciA9IGluX2NvbG9yX21vZGUgJiYg
KGNvbG9yICE9IEdUZXN0Q29sb3I6OmtEZWZhdWx0KTsKKyNlbmRpZiAgLy8gR1RFU1RfT1NfV0lO
RE9XU19NT0JJTEUgfHwgR1RFU1RfT1NfWk9TCiAKICAgaWYgKCF1c2VfY29sb3IpIHsKICAgICB2
cHJpbnRmKGZtdCwgYXJncyk7CkBAIC0zMDc5LDE0ICszMzMwLDEzIEBAIHN0YXRpYyB2b2lkIFBy
aW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsK
ICAgY29uc3QgY2hhciogY29uc3QgdHlwZV9wYXJhbSA9IHRlc3RfaW5mby50eXBlX3BhcmFtKCk7
CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlX3BhcmFtID0gdGVzdF9pbmZvLnZhbHVlX3BhcmFt
KCk7CiAKLSAgaWYgKHR5cGVfcGFyYW0gIT0gTlVMTCB8fCB2YWx1ZV9wYXJhbSAhPSBOVUxMKSB7
CisgIGlmICh0eXBlX3BhcmFtICE9IG51bGxwdHIgfHwgdmFsdWVfcGFyYW0gIT0gbnVsbHB0cikg
ewogICAgIHByaW50ZigiLCB3aGVyZSAiKTsKLSAgICBpZiAodHlwZV9wYXJhbSAhPSBOVUxMKSB7
CisgICAgaWYgKHR5cGVfcGFyYW0gIT0gbnVsbHB0cikgewogICAgICAgcHJpbnRmKCIlcyA9ICVz
Iiwga1R5cGVQYXJhbUxhYmVsLCB0eXBlX3BhcmFtKTsKLSAgICAgIGlmICh2YWx1ZV9wYXJhbSAh
PSBOVUxMKQotICAgICAgICBwcmludGYoIiBhbmQgIik7CisgICAgICBpZiAodmFsdWVfcGFyYW0g
IT0gbnVsbHB0cikgcHJpbnRmKCIgYW5kICIpOwogICAgIH0KLSAgICBpZiAodmFsdWVfcGFyYW0g
IT0gTlVMTCkgeworICAgIGlmICh2YWx1ZV9wYXJhbSAhPSBudWxscHRyKSB7CiAgICAgICBwcmlu
dGYoIiVzID0gJXMiLCBrVmFsdWVQYXJhbUxhYmVsLCB2YWx1ZV9wYXJhbSk7CiAgICAgfQogICB9
CkBAIC0zMDk4LDI3ICszMzQ4LDQwIEBAIHN0YXRpYyB2b2lkIFByaW50RnVsbFRlc3RDb21tZW50
SWZQcmVzZW50KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKIGNsYXNzIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgog
ICBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIoKSB7fQotICBzdGF0aWMgdm9pZCBQcmludFRl
c3ROYW1lKGNvbnN0IGNoYXIgKiB0ZXN0X2Nhc2UsIGNvbnN0IGNoYXIgKiB0ZXN0KSB7Ci0gICAg
cHJpbnRmKCIlcy4lcyIsIHRlc3RfY2FzZSwgdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50VGVz
dE5hbWUoY29uc3QgY2hhciogdGVzdF9zdWl0ZSwgY29uc3QgY2hhciogdGVzdCkgeworICAgIHBy
aW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLCB0ZXN0KTsKICAgfQogCiAgIC8vIFRoZSBmb2xsb3dp
bmcgbWV0aG9kcyBvdmVycmlkZSB3aGF0J3MgaW4gdGhlIFRlc3RFdmVudExpc3RlbmVyIGNsYXNz
LgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3Qg
VW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9pZCBPbkVu
dmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1
YWwgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVz
dCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0
ZXN0X2Nhc2UpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRl
c3RfaW5mbyk7Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0
UmVzdWx0JiByZXN1bHQpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZv
JiB0ZXN0X2luZm8pOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2Fz
ZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFy
dChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1l
bnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1
YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50
IGl0ZXJhdGlvbik7Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovKSB7fQorICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBV
bml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRp
b25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlk
ZTsKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRf
dGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNl
JiB0ZXN0X2Nhc2UpIG92ZXJyaWRlOworI2Vsc2UKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNv
bnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgb3ZlcnJpZGU7CisjZW5kaWYgIC8vIE9uVGVzdENh
c2VTdGFydAorCisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykg
b3ZlcnJpZGU7CisKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0
JiByZXN1bHQpIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVz
dF9pbmZvKSBvdmVycmlkZTsKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisgIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSBvdmVy
cmlkZTsKKyNlbHNlCisgIHZvaWQgT25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiB0ZXN0
X3N1aXRlKSBvdmVycmlkZTsKKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVu
ZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRl
c3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikg
b3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUge30KIAogIHByaXZhdGU6CiAgIHN0YXRpYyB2b2lkIFByaW50RmFp
bGVkVGVzdHMoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50
RmFpbGVkVGVzdFN1aXRlcyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKKyAgc3RhdGljIHZv
aWQgUHJpbnRTa2lwcGVkVGVzdHMoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CiB9OwogCiAg
IC8vIEZpcmVkIGJlZm9yZSBlYWNoIGl0ZXJhdGlvbiBvZiB0ZXN0cyBzdGFydHMuCkBAIC0zMTMy
LDU0ICszMzk1LDY5IEBAIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJ
dGVyYXRpb25TdGFydCgKICAgLy8gUHJpbnRzIHRoZSBmaWx0ZXIgaWYgaXQncyBub3QgKi4gIFRo
aXMgcmVtaW5kcyB0aGUgdXNlciB0aGF0IHNvbWUKICAgLy8gdGVzdHMgbWF5IGJlIHNraXBwZWQu
CiAgIGlmICghU3RyaW5nOjpDU3RyaW5nRXF1YWxzKGZpbHRlciwga1VuaXZlcnNhbEZpbHRlcikp
IHsKLSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJO
b3RlOiAlcyBmaWx0ZXIgPSAlc1xuIiwgR1RFU1RfTkFNRV8sIGZpbHRlcik7CisgICAgQ29sb3Jl
ZFByaW50ZihHVGVzdENvbG9yOjprWWVsbG93LCAiTm90ZTogJXMgZmlsdGVyID0gJXNcbiIsIEdU
RVNUX05BTUVfLAorICAgICAgICAgICAgICAgICAgZmlsdGVyKTsKICAgfQogCiAgIGlmIChpbnRl
cm5hbDo6U2hvdWxkU2hhcmQoa1Rlc3RUb3RhbFNoYXJkcywga1Rlc3RTaGFyZEluZGV4LCBmYWxz
ZSkpIHsKLSAgICBjb25zdCBJbnQzMiBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKGtU
ZXN0U2hhcmRJbmRleCwgLTEpOwotICAgIENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAotICAg
ICAgICAgICAgICAgICAgIk5vdGU6IFRoaXMgaXMgdGVzdCBzaGFyZCAlZCBvZiAlcy5cbiIsCisg
ICAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKGtUZXN0U2hh
cmRJbmRleCwgLTEpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIk5v
dGU6IFRoaXMgaXMgdGVzdCBzaGFyZCAlZCBvZiAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxpbnQ+KHNoYXJkX2luZGV4KSArIDEsCiAgICAgICAgICAgICAgICAgICBpbnRl
cm5hbDo6cG9zaXg6OkdldEVudihrVGVzdFRvdGFsU2hhcmRzKSk7CiAgIH0KIAogICBpZiAoR1RF
U1RfRkxBRyhzaHVmZmxlKSkgewotICAgIENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAorICAg
IENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywKICAgICAgICAgICAgICAgICAgICJO
b3RlOiBSYW5kb21pemluZyB0ZXN0cycgb3JkZXJzIHdpdGggYSBzZWVkIG9mICVkIC5cbiIsCiAg
ICAgICAgICAgICAgICAgICB1bml0X3Rlc3QucmFuZG9tX3NlZWQoKSk7CiAgIH0KIAotICBDb2xv
cmVkUHJpbnRmKENPTE9SX0dSRUVOLCAgIls9PT09PT09PT09XSAiKTsKKyAgQ29sb3JlZFByaW50
ZihHVGVzdENvbG9yOjprR3JlZW4sICJbPT09PT09PT09PV0gIik7CiAgIHByaW50ZigiUnVubmlu
ZyAlcyBmcm9tICVzLlxuIiwKICAgICAgICAgIEZvcm1hdFRlc3RDb3VudCh1bml0X3Rlc3QudGVz
dF90b19ydW5fY291bnQoKSkuY19zdHIoKSwKLSAgICAgICAgIEZvcm1hdFRlc3RDYXNlQ291bnQo
dW5pdF90ZXN0LnRlc3RfY2FzZV90b19ydW5fY291bnQoKSkuY19zdHIoKSk7CisgICAgICAgICBG
b3JtYXRUZXN0U3VpdGVDb3VudCh1bml0X3Rlc3QudGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSku
Y19zdHIoKSk7CiAgIGZmbHVzaChzdGRvdXQpOwogfQogCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KAogICAgIGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSB7Ci0gIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0t
LS0tLS1dICIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0t
LS0tXSAiKTsKICAgcHJpbnRmKCJHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuXG4iKTsK
ICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0Q2FzZVN0
YXJ0KGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgY291
bnRzID0KICAgICAgIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9jYXNlLnRlc3RfdG9fcnVuX2Nv
dW50KCksICJ0ZXN0IiwgInRlc3RzIik7Ci0gIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICJb
LS0tLS0tLS0tLV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0t
LS0tLS0tLS1dICIpOwogICBwcmludGYoIiVzIGZyb20gJXMiLCBjb3VudHMuY19zdHIoKSwgdGVz
dF9jYXNlLm5hbWUoKSk7Ci0gIGlmICh0ZXN0X2Nhc2UudHlwZV9wYXJhbSgpID09IE5VTEwpIHsK
KyAgaWYgKHRlc3RfY2FzZS50eXBlX3BhcmFtKCkgPT0gbnVsbHB0cikgewogICAgIHByaW50Zigi
XG4iKTsKICAgfSBlbHNlIHsKICAgICBwcmludGYoIiwgd2hlcmUgJXMgPSAlc1xuIiwga1R5cGVQ
YXJhbUxhYmVsLCB0ZXN0X2Nhc2UudHlwZV9wYXJhbSgpKTsKICAgfQogICBmZmx1c2goc3Rkb3V0
KTsKIH0KKyNlbHNlCit2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3Vp
dGVTdGFydCgKKyAgICBjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIHsKKyAgY29uc3Qgc3Rk
OjpzdHJpbmcgY291bnRzID0KKyAgICAgIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZS50
ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIpOworICBDb2xvcmVkUHJpbnRmKEdU
ZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVz
IiwgY291bnRzLmNfc3RyKCksIHRlc3Rfc3VpdGUubmFtZSgpKTsKKyAgaWYgKHRlc3Rfc3VpdGUu
dHlwZV9wYXJhbSgpID09IG51bGxwdHIpIHsKKyAgICBwcmludGYoIlxuIik7CisgIH0gZWxzZSB7
CisgICAgcHJpbnRmKCIsIHdoZXJlICVzID0gJXNcbiIsIGtUeXBlUGFyYW1MYWJlbCwgdGVzdF9z
dWl0ZS50eXBlX3BhcmFtKCkpOworICB9CisgIGZmbHVzaChzdGRvdXQpOworfQorI2VuZGlmICAv
LyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogdm9pZCBQcmV0dHlVbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsK
LSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbIFJVTiAgICAgIF0gIik7Ci0gIFByaW50
VGVzdE5hbWUodGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwor
ICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlsgUlVOICAgICAgXSAiKTsKKyAg
UHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1l
KCkpOwogICBwcmludGYoIlxuIik7CiAgIGZmbHVzaChzdGRvdXQpOwogfQpAQCAtMzE4NywyMiAr
MzQ2NSwyNyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0U3RhcnQo
Y29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogLy8gQ2FsbGVkIGFmdGVyIGFuIGFzc2VydGlv
biBmYWlsdXJlLgogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFBhcnRS
ZXN1bHQoCiAgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgewotICAvLyBJZiB0aGUg
dGVzdCBwYXJ0IHN1Y2NlZWRlZCwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZy4KLSAgaWYg
KHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzKQotICAgIHJldHVybjsK
LQotICAvLyBQcmludCBmYWlsdXJlIG1lc3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uIChlLmcuIGV4
cGVjdGVkIHRoaXMgYW5kIGdvdCB0aGF0KS4KLSAgUHJpbnRUZXN0UGFydFJlc3VsdChyZXN1bHQp
OwotICBmZmx1c2goc3Rkb3V0KTsKKyAgc3dpdGNoIChyZXN1bHQudHlwZSgpKSB7CisgICAgLy8g
SWYgdGhlIHRlc3QgcGFydCBzdWNjZWVkZWQsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcu
CisgICAgY2FzZSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3M6CisgICAgICByZXR1cm47CisgICAg
ZGVmYXVsdDoKKyAgICAgIC8vIFByaW50IGZhaWx1cmUgbWVzc2FnZSBmcm9tIHRoZSBhc3NlcnRp
b24KKyAgICAgIC8vIChlLmcuIGV4cGVjdGVkIHRoaXMgYW5kIGdvdCB0aGF0KS4KKyAgICAgIFBy
aW50VGVzdFBhcnRSZXN1bHQocmVzdWx0KTsKKyAgICAgIGZmbHVzaChzdGRvdXQpOworICB9CiB9
CiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RFbmQoY29uc3QgVGVz
dEluZm8mIHRlc3RfaW5mbykgewogICBpZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkg
ewotICAgIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICJbICAgICAgIE9LIF0gIik7CisgICAg
Q29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbICAgICAgIE9LIF0gIik7CisgIH0g
ZWxzZSBpZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5Ta2lwcGVkKCkpIHsKKyAgICBDb2xvcmVkUHJp
bnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlsgIFNLSVBQRUQgXSAiKTsKICAgfSBlbHNlIHsKLSAg
ICBDb2xvcmVkUHJpbnRmKENPTE9SX1JFRCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBDb2xvcmVk
UHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CiAgIH0KLSAgUHJpbnRU
ZXN0TmFtZSh0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Cisg
IFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRlc3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8ubmFt
ZSgpKTsKICAgaWYgKHRlc3RfaW5mby5yZXN1bHQoKS0+RmFpbGVkKCkpCiAgICAgUHJpbnRGdWxs
VGVzdENvbW1lbnRJZlByZXNlbnQodGVzdF9pbmZvKTsKIApAQCAtMzIxNSwyMSArMzQ5OCwzMyBA
QCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJ
bmZvJiB0ZXN0X2luZm8pIHsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKKyNpZm5kZWYgR1RFU1Rf
UkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSB7CiAgIGlmICgh
R1RFU1RfRkxBRyhwcmludF90aW1lKSkgcmV0dXJuOwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNv
dW50cyA9CiAgICAgICBGb3JtYXRDb3VudGFibGVOb3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9j
b3VudCgpLCAidGVzdCIsICJ0ZXN0cyIpOwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAi
Wy0tLS0tLS0tLS1dICIpOwotICBwcmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4i
LAotICAgICAgICAgY291bnRzLmNfc3RyKCksIHRlc3RfY2FzZS5uYW1lKCksCisgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOworICBwcmludGYoIiVz
IGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLCBjb3VudHMuY19zdHIoKSwgdGVzdF9jYXNlLm5h
bWUoKSwKICAgICAgICAgIGludGVybmFsOjpTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLmVs
YXBzZWRfdGltZSgpKS5jX3N0cigpKTsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CisjZWxzZQordm9p
ZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN1aXRlRW5kKGNvbnN0IFRlc3RT
dWl0ZSYgdGVzdF9zdWl0ZSkgeworICBpZiAoIUdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHJldHVy
bjsKKworICBjb25zdCBzdGQ6OnN0cmluZyBjb3VudHMgPQorICAgICAgRm9ybWF0Q291bnRhYmxl
Tm91bih0ZXN0X3N1aXRlLnRlc3RfdG9fcnVuX2NvdW50KCksICJ0ZXN0IiwgInRlc3RzIik7Cisg
IENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOworICBw
cmludGYoIiVzIGZyb20gJXMgKCVzIG1zIHRvdGFsKVxuXG4iLCBjb3VudHMuY19zdHIoKSwgdGVz
dF9zdWl0ZS5uYW1lKCksCisgICAgICAgICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRl
c3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkpLmNfc3RyKCkpOworICBmZmx1c2goc3Rkb3V0KTsKK30K
KyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoCiAg
ICAgY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKLSAgQ29sb3JlZFByaW50ZihDT0xP
Ul9HUkVFTiwgICJbLS0tLS0tLS0tLV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6
a0dyZWVuLCAiWy0tLS0tLS0tLS1dICIpOwogICBwcmludGYoIkdsb2JhbCB0ZXN0IGVudmlyb25t
ZW50IHRlYXItZG93blxuIik7CiAgIGZmbHVzaChzdGRvdXQpOwogfQpAQCAtMzIzNywyMyArMzUz
Miw3MCBAQCB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25FbnZpcm9ubWVudHNU
ZWFyRG93blN0YXJ0KAogLy8gSW50ZXJuYWwgaGVscGVyIGZvciBwcmludGluZyB0aGUgbGlzdCBv
ZiBmYWlsZWQgdGVzdHMuCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRG
YWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CiAgIGNvbnN0IGludCBmYWls
ZWRfdGVzdF9jb3VudCA9IHVuaXRfdGVzdC5mYWlsZWRfdGVzdF9jb3VudCgpOwotICBpZiAoZmFp
bGVkX3Rlc3RfY291bnQgPT0gMCkgeworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQs
ICJbICBGQUlMRUQgIF0gIik7CisgIHByaW50ZigiJXMsIGxpc3RlZCBiZWxvdzpcbiIsIEZvcm1h
dFRlc3RDb3VudChmYWlsZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7CisKKyAgZm9yIChpbnQgaSA9
IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICBj
b25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUgPSAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsK
KyAgICBpZiAoIXRlc3Rfc3VpdGUuc2hvdWxkX3J1bigpIHx8ICh0ZXN0X3N1aXRlLmZhaWxlZF90
ZXN0X2NvdW50KCkgPT0gMCkpIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBmb3IgKGlu
dCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUudG90YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAg
IGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8gPSAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhqKTsK
KyAgICAgIGlmICghdGVzdF9pbmZvLnNob3VsZF9ydW4oKSB8fCAhdGVzdF9pbmZvLnJlc3VsdCgp
LT5GYWlsZWQoKSkgeworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKyAgICAgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a1JlZCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICAgIHByaW50Zigi
JXMuJXMiLCB0ZXN0X3N1aXRlLm5hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CisgICAgICBQcmlu
dEZ1bGxUZXN0Q29tbWVudElmUHJlc2VudCh0ZXN0X2luZm8pOworICAgICAgcHJpbnRmKCJcbiIp
OworICAgIH0KKyAgfQorICBwcmludGYoIlxuJTJkIEZBSUxFRCAlc1xuIiwgZmFpbGVkX3Rlc3Rf
Y291bnQsCisgICAgICAgICBmYWlsZWRfdGVzdF9jb3VudCA9PSAxID8gIlRFU1QiIDogIlRFU1RT
Iik7Cit9CisKKy8vIEludGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2YgdGVz
dCBzdWl0ZSBmYWlsdXJlcyBub3QgY292ZXJlZCBieQorLy8gUHJpbnRGYWlsZWRUZXN0cy4KK3Zv
aWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludEZhaWxlZFRlc3RTdWl0ZXMoCisg
ICAgY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgeworICBpbnQgc3VpdGVfZmFpbHVyZV9jb3Vu
dCA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVf
Y291bnQoKTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRf
dGVzdC5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0X3N1aXRlLnNob3VsZF9ydW4oKSkg
eworICAgICAgY29udGludWU7CisgICAgfQorICAgIGlmICh0ZXN0X3N1aXRlLmFkX2hvY190ZXN0
X3Jlc3VsdCgpLkZhaWxlZCgpKSB7CisgICAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtS
ZWQsICJbICBGQUlMRUQgIF0gIik7CisgICAgICBwcmludGYoIiVzOiBTZXRVcFRlc3RTdWl0ZSBv
ciBUZWFyRG93blRlc3RTdWl0ZVxuIiwgdGVzdF9zdWl0ZS5uYW1lKCkpOworICAgICAgKytzdWl0
ZV9mYWlsdXJlX2NvdW50OworICAgIH0KKyAgfQorICBpZiAoc3VpdGVfZmFpbHVyZV9jb3VudCA+
IDApIHsKKyAgICBwcmludGYoIlxuJTJkIEZBSUxFRCBURVNUICVzXG4iLCBzdWl0ZV9mYWlsdXJl
X2NvdW50LAorICAgICAgICAgICBzdWl0ZV9mYWlsdXJlX2NvdW50ID09IDEgPyAiU1VJVEUiIDog
IlNVSVRFUyIpOworICB9Cit9CisKKy8vIEludGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhl
IGxpc3Qgb2Ygc2tpcHBlZCB0ZXN0cy4KK3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVy
OjpQcmludFNraXBwZWRUZXN0cyhjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CisgIGNvbnN0
IGludCBza2lwcGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7
CisgIGlmIChza2lwcGVkX3Rlc3RfY291bnQgPT0gMCkgewogICAgIHJldHVybjsKICAgfQogCi0g
IGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyAr
K2kpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlID0gKnVuaXRfdGVzdC5HZXRUZXN0
Q2FzZShpKTsKLSAgICBpZiAoIXRlc3RfY2FzZS5zaG91bGRfcnVuKCkgfHwgKHRlc3RfY2FzZS5m
YWlsZWRfdGVzdF9jb3VudCgpID09IDApKSB7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90
ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRl
JiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0
X3N1aXRlLnNob3VsZF9ydW4oKSB8fCAodGVzdF9zdWl0ZS5za2lwcGVkX3Rlc3RfY291bnQoKSA9
PSAwKSkgewogICAgICAgY29udGludWU7CiAgICAgfQotICAgIGZvciAoaW50IGogPSAwOyBqIDwg
dGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7Ci0gICAgICBjb25zdCBUZXN0SW5m
byYgdGVzdF9pbmZvID0gKnRlc3RfY2FzZS5HZXRUZXN0SW5mbyhqKTsKLSAgICAgIGlmICghdGVz
dF9pbmZvLnNob3VsZF9ydW4oKSB8fCB0ZXN0X2luZm8ucmVzdWx0KCktPlBhc3NlZCgpKSB7Cisg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytq
KSB7CisgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3Rfc3VpdGUuR2V0VGVz
dEluZm8oaik7CisgICAgICBpZiAoIXRlc3RfaW5mby5zaG91bGRfcnVuKCkgfHwgIXRlc3RfaW5m
by5yZXN1bHQoKS0+U2tpcHBlZCgpKSB7CiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQotICAg
ICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsICJbICBGQUlMRUQgIF0gIik7Ci0gICAgICBwcmlu
dGYoIiVzLiVzIiwgdGVzdF9jYXNlLm5hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Ci0gICAgICBQ
cmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2VudCh0ZXN0X2luZm8pOworICAgICAgQ29sb3JlZFBy
aW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbICBTS0lQUEVEIF0gIik7CisgICAgICBwcmludGYo
IiVzLiVzIiwgdGVzdF9zdWl0ZS5uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwogICAgICAgcHJp
bnRmKCJcbiIpOwogICAgIH0KICAgfQpAQCAtMzI2MSwzNyArMzYwMywzNyBAQCB2b2lkIFByZXR0
eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRGYWlsZWRUZXN0cyhjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0KSB7CiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJ
dGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsK
LSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgICJbPT09PT09PT09PV0gIik7CisgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWz09PT09PT09PT1dICIpOwogICBwcmludGYo
IiVzIGZyb20gJXMgcmFuLiIsCiAgICAgICAgICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRl
c3RfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCksCi0gICAgICAgICBGb3JtYXRUZXN0Q2FzZUNvdW50
KHVuaXRfdGVzdC50ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOworICAgICAgICAg
Rm9ybWF0VGVzdFN1aXRlQ291bnQodW5pdF90ZXN0LnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkp
LmNfc3RyKCkpOwogICBpZiAoR1RFU1RfRkxBRyhwcmludF90aW1lKSkgewogICAgIHByaW50Zigi
ICglcyBtcyB0b3RhbCkiLAogICAgICAgICAgICBpbnRlcm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5n
KHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUoKSkuY19zdHIoKSk7CiAgIH0KICAgcHJpbnRmKCJcbiIp
OwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAgIlsgIFBBU1NFRCAgXSAiKTsKKyAgQ29s
b3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbICBQQVNTRUQgIF0gIik7CiAgIHByaW50
ZigiJXMuXG4iLCBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnN1Y2Nlc3NmdWxfdGVzdF9jb3Vu
dCgpKS5jX3N0cigpKTsKIAotICBpbnQgbnVtX2ZhaWx1cmVzID0gdW5pdF90ZXN0LmZhaWxlZF90
ZXN0X2NvdW50KCk7CisgIGNvbnN0IGludCBza2lwcGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Qu
c2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlmIChza2lwcGVkX3Rlc3RfY291bnQgPiAwKSB7Cisg
ICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbICBTS0lQUEVEIF0gIik7Cisg
ICAgcHJpbnRmKCIlcywgbGlzdGVkIGJlbG93OlxuIiwgRm9ybWF0VGVzdENvdW50KHNraXBwZWRf
dGVzdF9jb3VudCkuY19zdHIoKSk7CisgICAgUHJpbnRTa2lwcGVkVGVzdHModW5pdF90ZXN0KTsK
KyAgfQorCiAgIGlmICghdW5pdF90ZXN0LlBhc3NlZCgpKSB7Ci0gICAgY29uc3QgaW50IGZhaWxl
ZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0LmZhaWxlZF90ZXN0X2NvdW50KCk7Ci0gICAgQ29sb3Jl
ZFByaW50ZihDT0xPUl9SRUQsICAiWyAgRkFJTEVEICBdICIpOwotICAgIHByaW50ZigiJXMsIGxp
c3RlZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChmYWlsZWRfdGVzdF9jb3VudCkuY19zdHIo
KSk7CiAgICAgUHJpbnRGYWlsZWRUZXN0cyh1bml0X3Rlc3QpOwotICAgIHByaW50ZigiXG4lMmQg
RkFJTEVEICVzXG4iLCBudW1fZmFpbHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBudW1f
ZmFpbHVyZXMgPT0gMSA/ICJURVNUIiA6ICJURVNUUyIpOworICAgIFByaW50RmFpbGVkVGVzdFN1
aXRlcyh1bml0X3Rlc3QpOwogICB9CiAKICAgaW50IG51bV9kaXNhYmxlZCA9IHVuaXRfdGVzdC5y
ZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKTsKICAgaWYgKG51bV9kaXNhYmxlZCAmJiAh
R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykpIHsKLSAgICBpZiAoIW51bV9mYWls
dXJlcykgeworICAgIGlmICh1bml0X3Rlc3QuUGFzc2VkKCkpIHsKICAgICAgIHByaW50ZigiXG4i
KTsgIC8vIEFkZCBhIHNwYWNlciBpZiBubyBGQUlMVVJFIGJhbm5lciBpcyBkaXNwbGF5ZWQuCiAg
ICAgfQotICAgIENvbG9yZWRQcmludGYoQ09MT1JfWUVMTE9XLAotICAgICAgICAgICAgICAgICAg
IiAgWU9VIEhBVkUgJWQgRElTQUJMRUQgJXNcblxuIiwKLSAgICAgICAgICAgICAgICAgIG51bV9k
aXNhYmxlZCwKLSAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCA9PSAxID8gIlRFU1QiIDog
IlRFU1RTIik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprWWVsbG93LCAiICBZT1Ug
SEFWRSAlZCBESVNBQkxFRCAlc1xuXG4iLAorICAgICAgICAgICAgICAgICAgbnVtX2Rpc2FibGVk
LCBudW1fZGlzYWJsZWQgPT0gMSA/ICJURVNUIiA6ICJURVNUUyIpOwogICB9CiAgIC8vIEVuc3Vy
ZSB0aGF0IEdvb2dsZSBUZXN0IG91dHB1dCBpcyBwcmludGVkIGJlZm9yZSwgZS5nLiwgaGVhcGNo
ZWNrZXIgb3V0cHV0LgogICBmZmx1c2goc3Rkb3V0KTsKQEAgLTMyOTksMTMgKzM2NDEsMTE3IEBA
IHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKIAogLy8gRW5kIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJp
bnRlcgogCisvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFRlc3RFdmVudExpc3RlbmVyIGlu
dGVyZmFjZS4KKy8vCisvLyBDbGFzcyBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlciBpcyBjb3B5
YWJsZS4KK2NsYXNzIEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIFRlc3RFdmVu
dExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIEJyaWVmVW5pdFRlc3RSZXN1bHRQcmludGVyKCkge30K
KyAgc3RhdGljIHZvaWQgUHJpbnRUZXN0TmFtZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlLCBjb25z
dCBjaGFyKiB0ZXN0KSB7CisgICAgcHJpbnRmKCIlcy4lcyIsIHRlc3Rfc3VpdGUsIHRlc3QpOwor
ICB9CisKKyAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIG92ZXJyaWRlIHdoYXQncyBpbiB0aGUg
VGVzdEV2ZW50TGlzdGVuZXIgY2xhc3MuCisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJh
dGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52
aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJp
ZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVu
aXRfdGVzdCovKSBvdmVycmlkZSB7fQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9j
YXNlKi8pIG92ZXJyaWRlIHt9CisjZWxzZQorICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29uc3Qg
VGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gT25UZXN0
Q2FzZVN0YXJ0CisKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2lu
Zm8qLykgb3ZlcnJpZGUge30KKworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBh
cnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJ
bmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlOworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3Rf
Y2FzZSovKSBvdmVycmlkZSB7fQorI2Vsc2UKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBU
ZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyBHVEVTVF9S
RU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRv
d25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9p
ZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCov
KSBvdmVycmlkZSB7fQorICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlkZTsKKyAgdm9pZCBPblRlc3RQcm9ncmFt
RW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorfTsKKworLy8g
Q2FsbGVkIGFmdGVyIGFuIGFzc2VydGlvbiBmYWlsdXJlLgordm9pZCBCcmllZlVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T25UZXN0UGFydFJlc3VsdCgKKyAgICBjb25zdCBUZXN0UGFydFJlc3VsdCYg
cmVzdWx0KSB7CisgIHN3aXRjaCAocmVzdWx0LnR5cGUoKSkgeworICAgIC8vIElmIHRoZSB0ZXN0
IHBhcnQgc3VjY2VlZGVkLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLgorICAgIGNhc2Ug
VGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzOgorICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6Cisg
ICAgICAvLyBQcmludCBmYWlsdXJlIG1lc3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uCisgICAgICAv
LyAoZS5nLiBleHBlY3RlZCB0aGlzIGFuZCBnb3QgdGhhdCkuCisgICAgICBQcmludFRlc3RQYXJ0
UmVzdWx0KHJlc3VsdCk7CisgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgfQorfQorCit2b2lkIEJy
aWVmVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3Rf
aW5mbykgeworICBpZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSkgeworICAgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwgIlsgIEZBSUxFRCAgXSAiKTsKKyAgICBQcmludFRl
c3ROYW1lKHRlc3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7Cisg
ICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlByZXNlbnQodGVzdF9pbmZvKTsKKworICAgIGlmIChH
VEVTVF9GTEFHKHByaW50X3RpbWUpKSB7CisgICAgICBwcmludGYoIiAoJXMgbXMpXG4iLAorICAg
ICAgICAgICAgIGludGVybmFsOjpTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9pbmZvLnJlc3VsdCgp
LT5lbGFwc2VkX3RpbWUoKSkKKyAgICAgICAgICAgICAgICAgLmNfc3RyKCkpOworICAgIH0gZWxz
ZSB7CisgICAgICBwcmludGYoIlxuIik7CisgICAgfQorICAgIGZmbHVzaChzdGRvdXQpOworICB9
Cit9CisKK3ZvaWQgQnJpZWZVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSB7CisgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a0dyZWVuLCAiWz09PT09PT09PT1dICIpOworICBwcmludGYoIiVz
IGZyb20gJXMgcmFuLiIsCisgICAgICAgICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3Rf
dG9fcnVuX2NvdW50KCkpLmNfc3RyKCksCisgICAgICAgICBGb3JtYXRUZXN0U3VpdGVDb3VudCh1
bml0X3Rlc3QudGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSkuY19zdHIoKSk7CisgIGlmIChHVEVT
VF9GTEFHKHByaW50X3RpbWUpKSB7CisgICAgcHJpbnRmKCIgKCVzIG1zIHRvdGFsKSIsCisgICAg
ICAgICAgIGludGVybmFsOjpTdHJlYW1hYmxlVG9TdHJpbmcodW5pdF90ZXN0LmVsYXBzZWRfdGlt
ZSgpKS5jX3N0cigpKTsKKyAgfQorICBwcmludGYoIlxuIik7CisgIENvbG9yZWRQcmludGYoR1Rl
c3RDb2xvcjo6a0dyZWVuLCAiWyAgUEFTU0VEICBdICIpOworICBwcmludGYoIiVzLlxuIiwgRm9y
bWF0VGVzdENvdW50KHVuaXRfdGVzdC5zdWNjZXNzZnVsX3Rlc3RfY291bnQoKSkuY19zdHIoKSk7
CisKKyAgY29uc3QgaW50IHNraXBwZWRfdGVzdF9jb3VudCA9IHVuaXRfdGVzdC5za2lwcGVkX3Rl
c3RfY291bnQoKTsKKyAgaWYgKHNraXBwZWRfdGVzdF9jb3VudCA+IDApIHsKKyAgICBDb2xvcmVk
UHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlsgIFNLSVBQRUQgXSAiKTsKKyAgICBwcmludGYo
IiVzLlxuIiwgRm9ybWF0VGVzdENvdW50KHNraXBwZWRfdGVzdF9jb3VudCkuY19zdHIoKSk7Cisg
IH0KKworICBpbnQgbnVtX2Rpc2FibGVkID0gdW5pdF90ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRf
dGVzdF9jb3VudCgpOworICBpZiAobnVtX2Rpc2FibGVkICYmICFHVEVTVF9GTEFHKGFsc29fcnVu
X2Rpc2FibGVkX3Rlc3RzKSkgeworICAgIGlmICh1bml0X3Rlc3QuUGFzc2VkKCkpIHsKKyAgICAg
IHByaW50ZigiXG4iKTsgIC8vIEFkZCBhIHNwYWNlciBpZiBubyBGQUlMVVJFIGJhbm5lciBpcyBk
aXNwbGF5ZWQuCisgICAgfQorICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywg
IiAgWU9VIEhBVkUgJWQgRElTQUJMRUQgJXNcblxuIiwKKyAgICAgICAgICAgICAgICAgIG51bV9k
aXNhYmxlZCwgbnVtX2Rpc2FibGVkID09IDEgPyAiVEVTVCIgOiAiVEVTVFMiKTsKKyAgfQorICAv
LyBFbnN1cmUgdGhhdCBHb29nbGUgVGVzdCBvdXRwdXQgaXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4s
IGhlYXBjaGVja2VyIG91dHB1dC4KKyAgZmZsdXNoKHN0ZG91dCk7Cit9CisKKy8vIEVuZCBCcmll
ZlVuaXRUZXN0UmVzdWx0UHJpbnRlcgorCiAvLyBjbGFzcyBUZXN0RXZlbnRSZXBlYXRlcgogLy8K
IC8vIFRoaXMgY2xhc3MgZm9yd2FyZHMgZXZlbnRzIHRvIG90aGVyIGV2ZW50IGxpc3RlbmVycy4K
IGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDogcHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICBw
dWJsaWM6CiAgIFRlc3RFdmVudFJlcGVhdGVyKCkgOiBmb3J3YXJkaW5nX2VuYWJsZWRfKHRydWUp
IHt9Ci0gIHZpcnR1YWwgflRlc3RFdmVudFJlcGVhdGVyKCk7CisgIH5UZXN0RXZlbnRSZXBlYXRl
cigpIG92ZXJyaWRlOwogICB2b2lkIEFwcGVuZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIp
OwogICBUZXN0RXZlbnRMaXN0ZW5lciogUmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVu
ZXIpOwogCkBAIC0zMzE0LDE5ICszNzYwLDI3IEBAIGNsYXNzIFRlc3RFdmVudFJlcGVhdGVyIDog
cHVibGljIFRlc3RFdmVudExpc3RlbmVyIHsKICAgYm9vbCBmb3J3YXJkaW5nX2VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBmb3J3YXJkaW5nX2VuYWJsZWRfOyB9CiAgIHZvaWQgc2V0X2ZvcndhcmRp
bmdfZW5hYmxlZChib29sIGVuYWJsZSkgeyBmb3J3YXJkaW5nX2VuYWJsZWRfID0gZW5hYmxlOyB9
CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgdW5p
dF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9u
bWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZv
aWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAg
dmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsK
LSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwot
ICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVz
dWx0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZv
KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2Fz
ZSk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3du
RW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRl
cmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2
aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KTsK
KyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3Zl
cnJpZGU7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRf
dGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRV
cFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uRW52
aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7Cisv
LyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0
KGNvbnN0IFRlc3RTdWl0ZSYgcGFyYW1ldGVyKSBvdmVycmlkZTsKKyNlbmRpZiAgLy8gIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2b2lkIE9uVGVzdFN1aXRlU3RhcnQoY29u
c3QgVGVzdFN1aXRlJiBwYXJhbWV0ZXIpIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFN0YXJ0KGNv
bnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFBhcnRSZXN1
bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0
RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlOworLy8gIExlZ2FjeSBBUEkg
aXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXworICB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2Um
IHBhcmFtZXRlcikgb3ZlcnJpZGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIHBhcmFt
ZXRlcikgb3ZlcnJpZGU7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVh
ckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgb3ZlcnJpZGU7CisgIHZvaWQgT25U
ZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24p
IG92ZXJyaWRlOworICB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRf
dGVzdCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgogICAvLyBDb250cm9scyB3aGV0aGVyIGV2ZW50
cyB3aWxsIGJlIGZvcndhcmRlZCB0byBsaXN0ZW5lcnNfLiBTZXQgdG8gZmFsc2UKQEAgLTMzNDYs
MTYgKzM4MDAsMTUgQEAgdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6QXBwZW5kKFRlc3RFdmVudExp
c3RlbmVyICpsaXN0ZW5lcikgewogICBsaXN0ZW5lcnNfLnB1c2hfYmFjayhsaXN0ZW5lcik7CiB9
CiAKLS8vIEZJWE1FOiBGYWN0b3IgdGhlIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGludG8gVmVjdG9y
OjpGaW5kLgogVGVzdEV2ZW50TGlzdGVuZXIqIFRlc3RFdmVudFJlcGVhdGVyOjpSZWxlYXNlKFRl
c3RFdmVudExpc3RlbmVyICpsaXN0ZW5lcikgewogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxp
c3RlbmVyc18uc2l6ZSgpOyArK2kpIHsKICAgICBpZiAobGlzdGVuZXJzX1tpXSA9PSBsaXN0ZW5l
cikgewotICAgICAgbGlzdGVuZXJzXy5lcmFzZShsaXN0ZW5lcnNfLmJlZ2luKCkgKyBpKTsKKyAg
ICAgIGxpc3RlbmVyc18uZXJhc2UobGlzdGVuZXJzXy5iZWdpbigpICsgc3RhdGljX2Nhc3Q8aW50
PihpKSk7CiAgICAgICByZXR1cm4gbGlzdGVuZXI7CiAgICAgfQogICB9CiAKLSAgcmV0dXJuIE5V
TEw7CisgIHJldHVybiBudWxscHRyOwogfQogCiAvLyBTaW5jZSBtb3N0IG1ldGhvZHMgYXJlIHZl
cnkgc2ltaWxhciwgdXNlIG1hY3JvcyB0byByZWR1Y2UgYm9pbGVycGxhdGUuCkBAIC0zMzcwLDI1
ICszODIzLDMzIEBAIHZvaWQgVGVzdEV2ZW50UmVwZWF0ZXI6Ok5hbWUoY29uc3QgVHlwZSYgcGFy
YW1ldGVyKSB7IFwKIH0KIC8vIFRoaXMgZGVmaW5lcyBhIG1lbWJlciB0aGF0IGZvcndhcmRzIHRo
ZSBjYWxsIHRvIGFsbCBsaXN0ZW5lcnMgaW4gcmV2ZXJzZQogLy8gb3JkZXIuCi0jZGVmaW5lIEdU
RVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhOYW1lLCBUeXBlKSBcCi12b2lkIFRlc3RFdmVu
dFJlcGVhdGVyOjpOYW1lKGNvbnN0IFR5cGUmIHBhcmFtZXRlcikgeyBcCi0gIGlmIChmb3J3YXJk
aW5nX2VuYWJsZWRfKSB7IFwKLSAgICBmb3IgKGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihsaXN0
ZW5lcnNfLnNpemUoKSkgLSAxOyBpID49IDA7IGktLSkgeyBcCi0gICAgICBsaXN0ZW5lcnNfW2ld
LT5OYW1lKHBhcmFtZXRlcik7IFwKLSAgICB9IFwKLSAgfSBcCi19CisjZGVmaW5lIEdURVNUX1JF
VkVSU0VfUkVQRUFURVJfTUVUSE9EXyhOYW1lLCBUeXBlKSAgICAgIFwKKyAgdm9pZCBUZXN0RXZl
bnRSZXBlYXRlcjo6TmFtZShjb25zdCBUeXBlJiBwYXJhbWV0ZXIpIHsgXAorICAgIGlmIChmb3J3
YXJkaW5nX2VuYWJsZWRfKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBmb3Ig
KHNpemVfdCBpID0gbGlzdGVuZXJzXy5zaXplKCk7IGkgIT0gMDsgaS0tKSB7IFwKKyAgICAgICAg
bGlzdGVuZXJzX1tpIC0gMV0tPk5hbWUocGFyYW1ldGVyKTsgICAgICAgICAgICAgXAorICAgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
fQogCiBHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFByb2dyYW1TdGFydCwgVW5pdFRlc3Qp
CiBHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCwgVW5pdFRl
c3QpCi1HVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VTdGFydCwgVGVzdENhc2UpCisv
LyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCitHVEVTVF9SRVBFQVRFUl9NRVRIT0Rf
KE9uVGVzdENhc2VTdGFydCwgVGVzdFN1aXRlKQorI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCitHVEVTVF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN1aXRlU3Rh
cnQsIFRlc3RTdWl0ZSkKIEdURVNUX1JFUEVBVEVSX01FVEhPRF8oT25UZXN0U3RhcnQsIFRlc3RJ
bmZvKQogR1RFU1RfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RQYXJ0UmVzdWx0LCBUZXN0UGFydFJl
c3VsdCkKIEdURVNUX1JFUEVBVEVSX01FVEhPRF8oT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0
LCBVbml0VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPbkVudmlyb25tZW50
c1NldFVwRW5kLCBVbml0VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPbkVu
dmlyb25tZW50c1RlYXJEb3duRW5kLCBVbml0VGVzdCkKIEdURVNUX1JFVkVSU0VfUkVQRUFURVJf
TUVUSE9EXyhPblRlc3RFbmQsIFRlc3RJbmZvKQotR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRI
T0RfKE9uVGVzdENhc2VFbmQsIFRlc3RDYXNlKQorLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRl
ZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXworR1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdENhc2VFbmQsIFRl
c3RTdWl0ZSkKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwor
R1RFU1RfUkVWRVJTRV9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN1aXRlRW5kLCBUZXN0U3VpdGUp
CiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25UZXN0UHJvZ3JhbUVuZCwgVW5pdFRl
c3QpCiAKICN1bmRlZiBHVEVTVF9SRVBFQVRFUl9NRVRIT0RfCkBAIC0zNDA2LDggKzM4NjcsOCBA
QCB2b2lkIFRlc3RFdmVudFJlcGVhdGVyOjpPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0
VGVzdCYgdW5pdF90ZXN0LAogdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6T25UZXN0SXRlcmF0aW9u
RW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgewogICBpZiAoZm9yd2FyZGluZ19lbmFi
bGVkXykgewotICAgIGZvciAoaW50IGkgPSBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RlbmVyc18uc2l6
ZSgpKSAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICBsaXN0ZW5lcnNfW2ldLT5PblRlc3RJdGVy
YXRpb25FbmQodW5pdF90ZXN0LCBpdGVyYXRpb24pOworICAgIGZvciAoc2l6ZV90IGkgPSBsaXN0
ZW5lcnNfLnNpemUoKTsgaSA+IDA7IGktLSkgeworICAgICAgbGlzdGVuZXJzX1tpIC0gMV0tPk9u
VGVzdEl0ZXJhdGlvbkVuZCh1bml0X3Rlc3QsIGl0ZXJhdGlvbik7CiAgICAgfQogICB9CiB9CkBA
IC0zNDE5LDEyICszODgwLDEyIEBAIGNsYXNzIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1
YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IFhtbFVu
aXRUZXN0UmVzdWx0UHJpbnRlcihjb25zdCBjaGFyKiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVh
bCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQg
aXRlcmF0aW9uKTsKLSAgdm9pZCBMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcihjb25zdCBzdGQ6OnZl
Y3RvcjxUZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKTsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQo
Y29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZv
aWQgTGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4m
IHRlc3Rfc3VpdGVzKTsKIAogICAvLyBQcmludHMgYW4gWE1MIHN1bW1hcnkgb2YgYWxsIHVuaXQg
dGVzdHMuCiAgIHN0YXRpYyB2b2lkIFByaW50WG1sVGVzdHNMaXN0KHN0ZDo6b3N0cmVhbSogc3Ry
ZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxU
ZXN0Q2FzZSo+JiB0ZXN0X2Nhc2VzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIHRlc3Rfc3VpdGVzKTsKIAogIHByaXZhdGU6
CiAgIC8vIElzIGMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciB0aGF0IGlzIG5vcm1hbGl6ZWQgdG8g
YSBzcGFjZSBjaGFyYWN0ZXIKQEAgLTM0NjcsMTQgKzM5MjgsMjQgQEAgY2xhc3MgWG1sVW5pdFRl
c3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAvLyBT
dHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENEQVRBIHNlcXVl
bmNlcyBhcyBuZWVkZWQuCiAgIHN0YXRpYyB2b2lkIE91dHB1dFhtbENEYXRhU2VjdGlvbig6OnN0
ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBjaGFyKiBkYXRhKTsKIAorICAvLyBTdHJlYW1zIGEg
dGVzdCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0Lgor
ICAvLworICAvLyBSZXF1aXJlczogcmVzdWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lkIE91dHB1
dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0
JiByZXN1bHQpOworCisgIC8vIFN0cmVhbXMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVz
dFJlc3VsdCBvYmplY3QuCisgIHN0YXRpYyB2b2lkIE91dHB1dFhtbFRlc3RSZXN1bHQoOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBUZXN0UmVzdWx0JiByZXN1bHQpOworCiAgIC8vIFN0cmVhbXMgYW4gWE1MIHJlcHJlc2VudGF0
aW9uIG9mIGEgVGVzdEluZm8gb2JqZWN0LgogICBzdGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0SW5m
byg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKIAotICAvLyBQcmludHMgYW4g
WE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci0gIHN0YXRpYyB2b2lkIFBy
aW50WG1sVGVzdENhc2UoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKKyAgLy8gUHJpbnRzIGFu
IFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RTdWl0ZSBvYmplY3QKKyAgc3RhdGljIHZvaWQg
UHJpbnRYbWxUZXN0U3VpdGUoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKTsKIAogICAvLyBQ
cmludHMgYW4gWE1MIHN1bW1hcnkgb2YgdW5pdF90ZXN0IHRvIG91dHB1dCBzdHJlYW0gb3V0Lgog
ICBzdGF0aWMgdm9pZCBQcmludFhtbFVuaXRUZXN0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCkBA
IC0zNTE2LDEwICszOTg3LDEwIEBAIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRl
c3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKIH0KIAogdm9pZCBYbWxV
bml0VGVzdFJlc3VsdFByaW50ZXI6Okxpc3RUZXN0c01hdGNoaW5nRmlsdGVyKAotICAgIGNvbnN0
IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj4mIHRlc3RfY2FzZXMpIHsKKyAgICBjb25zdCBzdGQ6OnZl
Y3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9zdWl0ZXMpIHsKICAgRklMRSogeG1sb3V0ID0gT3BlbkZp
bGVGb3JXcml0aW5nKG91dHB1dF9maWxlXyk7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsK
LSAgUHJpbnRYbWxUZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9jYXNlcyk7CisgIFByaW50WG1sVGVz
dHNMaXN0KCZzdHJlYW0sIHRlc3Rfc3VpdGVzKTsKICAgZnByaW50Zih4bWxvdXQsICIlcyIsIFN0
cmluZ1N0cmVhbVRvU3RyaW5nKCZzdHJlYW0pLmNfc3RyKCkpOwogICBmY2xvc2UoeG1sb3V0KTsK
IH0KQEAgLTM1MzQsOCArNDAwNSw2IEBAIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpM
aXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigKIC8vIG1vZHVsZSB3aWxsIGNvbnNpc3Qgb2Ygb3JkaW5h
cnkgRW5nbGlzaCB0ZXh0LgogLy8gSWYgdGhpcyBtb2R1bGUgaXMgZXZlciBtb2RpZmllZCB0byBw
cm9kdWNlIHZlcnNpb24gMS4xIFhNTCBvdXRwdXQsCiAvLyBtb3N0IGludmFsaWQgY2hhcmFjdGVy
cyBjYW4gYmUgcmV0YWluZWQgdXNpbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXMuCi0vLyBGSVhNRTog
SXQgbWlnaHQgYmUgbmljZSB0byBoYXZlIGEgbWluaW1hbGx5IGludmFzaXZlLCBodW1hbi1yZWFk
YWJsZQotLy8gZXNjYXBpbmcgc2NoZW1lIGZvciBpbnZhbGlkIGNoYXJhY3RlcnMsIHJhdGhlciB0
aGFuIGRyb3BwaW5nIHRoZW0uCiBzdGQ6OnN0cmluZyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6
OkVzY2FwZVhtbCgKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBib29sIGlzX2F0dHJpYnV0
ZSkgewogICBNZXNzYWdlIG07CkBAIC0zNjAwLDcgKzQwNjksNyBAQCBzdGQ6OnN0cmluZyBYbWxV
bml0VGVzdFJlc3VsdFByaW50ZXI6OlJlbW92ZUludmFsaWRYbWxDaGFyYWN0ZXJzKAogLy8gVGhp
cyBpcyBob3cgR29vZ2xlIFRlc3QgY29uY2VwdHMgbWFwIHRvIHRoZSBEVEQ6CiAvLwogLy8gPHRl
c3RzdWl0ZXMgbmFtZT0iQWxsVGVzdHMiPiAgICAgICAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVW5p
dFRlc3Qgb2JqZWN0Ci0vLyAgIDx0ZXN0c3VpdGUgbmFtZT0idGVzdGNhc2UtbmFtZSI+ICA8LS0g
Y29ycmVzcG9uZHMgdG8gYSBUZXN0Q2FzZSBvYmplY3QKKy8vICAgPHRlc3RzdWl0ZSBuYW1lPSJ0
ZXN0Y2FzZS1uYW1lIj4gIDwtLSBjb3JyZXNwb25kcyB0byBhIFRlc3RTdWl0ZSBvYmplY3QKIC8v
ICAgICA8dGVzdGNhc2UgbmFtZT0idGVzdC1uYW1lIj4gICAgIDwtLSBjb3JyZXNwb25kcyB0byBh
IFRlc3RJbmZvIG9iamVjdAogLy8gICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIj4uLi48L2Zh
aWx1cmU+CiAvLyAgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSIuLi4iPi4uLjwvZmFpbHVyZT4KQEAg
LTM2MjQsMTIgKzQwOTMsMTEgQEAgc3RhdGljIGJvb2wgUG9ydGFibGVMb2NhbHRpbWUodGltZV90
IHNlY29uZHMsIHN0cnVjdCB0bSogb3V0KSB7CiAgIC8vIE1JTkdXIDx0aW1lLmg+IHByb3ZpZGVz
IG5laXRoZXIgbG9jYWx0aW1lX3Igbm9yIGxvY2FsdGltZV9zLCBidXQgdXNlcwogICAvLyBXaW5k
b3dzJyBsb2NhbHRpbWUoKSwgd2hpY2ggaGFzIGEgdGhyZWFkLWxvY2FsIHRtIGJ1ZmZlci4KICAg
c3RydWN0IHRtKiB0bV9wdHIgPSBsb2NhbHRpbWUoJnNlY29uZHMpOyAgLy8gTk9MSU5UCi0gIGlm
ICh0bV9wdHIgPT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7CisgIGlmICh0bV9wdHIgPT0gbnVs
bHB0cikgcmV0dXJuIGZhbHNlOwogICAqb3V0ID0gKnRtX3B0cjsKICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQotICByZXR1cm4gbG9jYWx0aW1lX3IoJnNlY29uZHMsIG91dCkgIT0gTlVMTDsKKyAgcmV0
dXJuIGxvY2FsdGltZV9yKCZzZWNvbmRzLCBvdXQpICE9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApA
QCAtMzYzOSwxMyArNDEwNywxNCBAQCBzdGQ6OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxp
c0FzSXNvODYwMShUaW1lSW5NaWxsaXMgbXMpIHsKICAgc3RydWN0IHRtIHRpbWVfc3RydWN0Owog
ICBpZiAoIVBvcnRhYmxlTG9jYWx0aW1lKHN0YXRpY19jYXN0PHRpbWVfdD4obXMgLyAxMDAwKSwg
JnRpbWVfc3RydWN0KSkKICAgICByZXR1cm4gIiI7Ci0gIC8vIFlZWVktTU0tRERUaGg6bW06c3MK
KyAgLy8gWVlZWS1NTS1ERFRoaDptbTpzcy5zc3MKICAgcmV0dXJuIFN0cmVhbWFibGVUb1N0cmlu
Zyh0aW1lX3N0cnVjdC50bV95ZWFyICsgMTkwMCkgKyAiLSIgKwogICAgICAgU3RyaW5nOjpGb3Jt
YXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fbW9uICsgMSkgKyAiLSIgKwogICAgICAgU3RyaW5n
OjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fbWRheSkgKyAiVCIgKwogICAgICAgU3Ry
aW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1faG91cikgKyAiOiIgKwogICAgICAg
U3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fbWluKSArICI6IiArCi0gICAg
ICBTdHJpbmc6OkZvcm1hdEludFdpZHRoMih0aW1lX3N0cnVjdC50bV9zZWMpOworICAgICAgU3Ry
aW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fc2VjKSArICIuIiArCisgICAgICBT
dHJpbmc6OkZvcm1hdEludFdpZHRoTihzdGF0aWNfY2FzdDxpbnQ+KG1zICUgMTAwMCksIDMpOwog
fQogCiAvLyBTdHJlYW1zIGFuIFhNTCBDREFUQSBzZWN0aW9uLCBlc2NhcGluZyBpbnZhbGlkIENE
QVRBIHNlcXVlbmNlcyBhcyBuZWVkZWQuCkBAIC0zNjU1LDcgKzQxMjQsNyBAQCB2b2lkIFhtbFVu
aXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sQ0RhdGFTZWN0aW9uKDo6c3RkOjpvc3RyZWFt
KiBzdHJlYW0sCiAgICpzdHJlYW0gPDwgIjwhW0NEQVRBWyI7CiAgIGZvciAoOzspIHsKICAgICBj
b25zdCBjaGFyKiBjb25zdCBuZXh0X3NlZ21lbnQgPSBzdHJzdHIoc2VnbWVudCwgIl1dPiIpOwot
ICAgIGlmIChuZXh0X3NlZ21lbnQgIT0gTlVMTCkgeworICAgIGlmIChuZXh0X3NlZ21lbnQgIT0g
bnVsbHB0cikgewogICAgICAgc3RyZWFtLT53cml0ZSgKICAgICAgICAgICBzZWdtZW50LCBzdGF0
aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+KG5leHRfc2VnbWVudCAtIHNlZ21lbnQpKTsKICAgICAg
ICpzdHJlYW0gPDwgIl1dPl1dJmd0OzwhW0NEQVRBWyI7CkBAIC0zNjc0LDcgKzQxNDMsNyBAQCB2
b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sQXR0cmlidXRlKAogICAgIGNv
bnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgewog
ICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGFsbG93ZWRfbmFtZXMgPQotICAgICAg
R2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChlbGVtZW50X25hbWUpOworICAgICAgR2V0
UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVzRm9yRWxlbWVudChlbGVtZW50X25hbWUpOwogCiAgIEdU
RVNUX0NIRUNLXyhzdGQ6OmZpbmQoYWxsb3dlZF9uYW1lcy5iZWdpbigpLCBhbGxvd2VkX25hbWVz
LmVuZCgpLCBuYW1lKSAhPQogICAgICAgICAgICAgICAgICAgIGFsbG93ZWRfbmFtZXMuZW5kKCkp
CkBAIC0zNjg0LDQ3ICs0MTUzLDk3IEBAIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpP
dXRwdXRYbWxBdHRyaWJ1dGUoCiAgICpzdHJlYW0gPDwgIiAiIDw8IG5hbWUgPDwgIj1cIiIgPDwg
RXNjYXBlWG1sQXR0cmlidXRlKHZhbHVlKSA8PCAiXCIiOwogfQogCisvLyBTdHJlYW1zIGEgdGVz
dCBzdWl0ZSBYTUwgc3RhbnphIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVzdWx0Lgordm9p
ZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dFhtbFRlc3RTdWl0ZUZvclRlc3RSZXN1
bHQoCisgICAgOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0
KSB7CisgIC8vIE91dHB1dCB0aGUgYm9pbGVycGxhdGUgZm9yIGEgbWluaW1hbCB0ZXN0IHN1aXRl
IHdpdGggb25lIHRlc3QuCisgICpzdHJlYW0gPDwgIiAgPHRlc3RzdWl0ZSI7CisgIE91dHB1dFht
bEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWls
dXJlIik7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGVzdHMi
LCAiMSIpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgImZhaWx1
cmVzIiwgIjEiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJk
aXNhYmxlZCIsICIwIik7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUi
LCAic2tpcHBlZCIsICIwIik7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3Vp
dGUiLCAiZXJyb3JzIiwgIjAiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3Rz
dWl0ZSIsICJ0aW1lIiwKKyAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0Fz
U2Vjb25kcyhyZXN1bHQuZWxhcHNlZF90aW1lKCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKAor
ICAgICAgc3RyZWFtLCAidGVzdHN1aXRlIiwgInRpbWVzdGFtcCIsCisgICAgICBGb3JtYXRFcG9j
aFRpbWVJbk1pbGxpc0FzSXNvODYwMShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAgKnN0
cmVhbSA8PCAiPiI7CisKKyAgLy8gT3V0cHV0IHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBtaW5pbWFs
IHRlc3QgY2FzZSB3aXRoIGEgc2luZ2xlIHRlc3QuCisgICpzdHJlYW0gPDwgIiAgICA8dGVzdGNh
c2UiOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCAidGVzdGNhc2UiLCAibmFtZSIsICIi
KTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInN0YXR1cyIsICJy
dW4iKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgInJlc3VsdCIs
ICJjb21wbGV0ZWQiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwg
ImNsYXNzbmFtZSIsICIiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwgInRlc3RjYXNl
IiwgInRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNv
bmRzKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSkpOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAg
ICBzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1lc3RhbXAiLAorICAgICAgRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDEocmVzdWx0LnN0YXJ0X3RpbWVzdGFtcCgpKSk7CisKKyAgLy8gT3V0
cHV0IHRoZSBhY3R1YWwgdGVzdCByZXN1bHQuCisgIE91dHB1dFhtbFRlc3RSZXN1bHQoc3RyZWFt
LCByZXN1bHQpOworCisgIC8vIENvbXBsZXRlIHRoZSB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8
ICIgIDwvdGVzdHN1aXRlPlxuIjsKK30KKwogLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlv
biBvZiBhIFRlc3RJbmZvIG9iamVjdC4KLS8vIEZJWE1FOiBUaGVyZSBpcyBhbHNvIHZhbHVlIGlu
IHByaW50aW5nIHByb3BlcnRpZXMgd2l0aCB0aGUgcGxhaW4gcHJpbnRlci4KIHZvaWQgWG1sVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3Ry
ZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvKSB7CiAgIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCA9ICp0ZXN0X2luZm8ucmVz
dWx0KCk7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0Y2FzZSA9ICJ0ZXN0Y2FzZSI7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdGNhc2UiOwogCiAgIGlmICh0ZXN0X2lu
Zm8uaXNfaW5fYW5vdGhlcl9zaGFyZCgpKSB7CiAgICAgcmV0dXJuOwogICB9CiAKICAgKnN0cmVh
bSA8PCAiICAgIDx0ZXN0Y2FzZSI7Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0
Y2FzZSwgIm5hbWUiLCB0ZXN0X2luZm8ubmFtZSgpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2luZm8ubmFtZSgpKTsKIAotICBpZiAodGVz
dF9pbmZvLnZhbHVlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0ZShz
dHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVlX3BhcmFtIiwKKyAgaWYgKHRlc3RfaW5mby52YWx1ZV9w
YXJhbSgpICE9IG51bGxwdHIpIHsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVz
dHN1aXRlLCAidmFsdWVfcGFyYW0iLAogICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2luZm8u
dmFsdWVfcGFyYW0oKSk7CiAgIH0KLSAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gTlVM
TCkgewotICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInR5cGVfcGFy
YW0iLCB0ZXN0X2luZm8udHlwZV9wYXJhbSgpKTsKKyAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFt
KCkgIT0gbnVsbHB0cikgeworICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3Vp
dGUsICJ0eXBlX3BhcmFtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnR5cGVf
cGFyYW0oKSk7CiAgIH0KICAgaWYgKEdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHsKLSAgICBPdXRw
dXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUo
KSk7Ci0gICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RjYXNlLCAibGluZSIsCisg
ICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImZpbGUiLCB0ZXN0X2lu
Zm8uZmlsZSgpKTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAi
bGluZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2lu
Zm8ubGluZSgpKSk7CiAgICAgKnN0cmVhbSA8PCAiIC8+XG4iOwogICAgIHJldHVybjsKICAgfQog
Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJzdGF0dXMiLAogICAgICAgICAg
ICAgICAgICAgICAgdGVzdF9pbmZvLnNob3VsZF9ydW4oKSA/ICJydW4iIDogIm5vdHJ1biIpOwot
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0
WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInJlc3VsdCIsCisgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpCisgICAgICAgICAgICAgICAgICAgICAgICAg
PyAocmVzdWx0LlNraXBwZWQoKSA/ICJza2lwcGVkIiA6ICJjb21wbGV0ZWQiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIDogInN1cHByZXNzZWQiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWUiLAogICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGlt
ZUluTWlsbGlzQXNTZWNvbmRzKHJlc3VsdC5lbGFwc2VkX3RpbWUoKSkpOwotICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJjbGFzc25hbWUiLCB0ZXN0X2Nhc2VfbmFtZSk7
CisgIE91dHB1dFhtbEF0dHJpYnV0ZSgKKyAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVz
dGFtcCIsCisgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShyZXN1bHQuc3Rh
cnRfdGltZXN0YW1wKCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0
ZSwgImNsYXNzbmFtZSIsIHRlc3Rfc3VpdGVfbmFtZSk7CiAKKyAgT3V0cHV0WG1sVGVzdFJlc3Vs
dChzdHJlYW0sIHJlc3VsdCk7Cit9CisKK3ZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpP
dXRwdXRYbWxUZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiBy
ZXN1bHQpIHsKICAgaW50IGZhaWx1cmVzID0gMDsKKyAgaW50IHNraXBzID0gMDsKICAgZm9yIChp
bnQgaSA9IDA7IGkgPCByZXN1bHQudG90YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAgICBjb25z
dCBUZXN0UGFydFJlc3VsdCYgcGFydCA9IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChpKTsKICAg
ICBpZiAocGFydC5mYWlsZWQoKSkgewotICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMSkgeworICAg
ICAgaWYgKCsrZmFpbHVyZXMgPT0gMSAmJiBza2lwcyA9PSAwKSB7CiAgICAgICAgICpzdHJlYW0g
PDwgIj5cbiI7CiAgICAgICB9CiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBsb2NhdGlvbiA9CkBA
IC0zNzMyLDE4ICs0MjUxLDMxIEBAIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRw
dXRYbWxUZXN0SW5mbyg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIo
KSk7CiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsg
cGFydC5zdW1tYXJ5KCk7CiAgICAgICAqc3RyZWFtIDw8ICIgICAgICA8ZmFpbHVyZSBtZXNzYWdl
PVwiIgotICAgICAgICAgICAgICA8PCBFc2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigp
KQorICAgICAgICAgICAgICA8PCBFc2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeSkKICAgICAgICAg
ICAgICAgPDwgIlwiIHR5cGU9XCJcIj4iOwogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZGV0YWls
ID0gbG9jYXRpb24gKyAiXG4iICsgcGFydC5tZXNzYWdlKCk7CiAgICAgICBPdXRwdXRYbWxDRGF0
YVNlY3Rpb24oc3RyZWFtLCBSZW1vdmVJbnZhbGlkWG1sQ2hhcmFjdGVycyhkZXRhaWwpLmNfc3Ry
KCkpOwogICAgICAgKnN0cmVhbSA8PCAiPC9mYWlsdXJlPlxuIjsKKyAgICB9IGVsc2UgaWYgKHBh
cnQuc2tpcHBlZCgpKSB7CisgICAgICBpZiAoKytza2lwcyA9PSAxICYmIGZhaWx1cmVzID09IDAp
IHsKKyAgICAgICAgKnN0cmVhbSA8PCAiPlxuIjsKKyAgICAgIH0KKyAgICAgIGNvbnN0IHN0ZDo6
c3RyaW5nIGxvY2F0aW9uID0KKyAgICAgICAgICBpbnRlcm5hbDo6Rm9ybWF0Q29tcGlsZXJJbmRl
cGVuZGVudEZpbGVMb2NhdGlvbihwYXJ0LmZpbGVfbmFtZSgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQubGluZV9udW1iZXIo
KSk7CisgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzdW1tYXJ5ID0gbG9jYXRpb24gKyAiXG4iICsg
cGFydC5zdW1tYXJ5KCk7CisgICAgICAqc3RyZWFtIDw8ICIgICAgICA8c2tpcHBlZCBtZXNzYWdl
PVwiIgorICAgICAgICAgICAgICA8PCBFc2NhcGVYbWxBdHRyaWJ1dGUoc3VtbWFyeS5jX3N0cigp
KSA8PCAiXCI+IjsKKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGRldGFpbCA9IGxvY2F0aW9uICsg
IlxuIiArIHBhcnQubWVzc2FnZSgpOworICAgICAgT3V0cHV0WG1sQ0RhdGFTZWN0aW9uKHN0cmVh
bSwgUmVtb3ZlSW52YWxpZFhtbENoYXJhY3RlcnMoZGV0YWlsKS5jX3N0cigpKTsKKyAgICAgICpz
dHJlYW0gPDwgIjwvc2tpcHBlZD5cbiI7CiAgICAgfQogICB9CiAKLSAgaWYgKGZhaWx1cmVzID09
IDAgJiYgcmVzdWx0LnRlc3RfcHJvcGVydHlfY291bnQoKSA9PSAwKSB7CisgIGlmIChmYWlsdXJl
cyA9PSAwICYmIHNraXBzID09IDAgJiYgcmVzdWx0LnRlc3RfcHJvcGVydHlfY291bnQoKSA9PSAw
KSB7CiAgICAgKnN0cmVhbSA8PCAiIC8+XG4iOwogICB9IGVsc2UgewotICAgIGlmIChmYWlsdXJl
cyA9PSAwKSB7CisgICAgaWYgKGZhaWx1cmVzID09IDAgJiYgc2tpcHMgPT0gMCkgewogICAgICAg
KnN0cmVhbSA8PCAiPlxuIjsKICAgICB9CiAgICAgT3V0cHV0WG1sVGVzdFByb3BlcnRpZXMoc3Ry
ZWFtLCByZXN1bHQpOwpAQCAtMzc1MSwyOSArNDI4MywzNiBAQCB2b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAg
fQogfQogCi0vLyBQcmludHMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2Jq
ZWN0Ci12b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0Q2FzZShzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKKy8vIFByaW50cyBhbiBYTUwg
cmVwcmVzZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0Cit2b2lkIFhtbFVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRYbWxUZXN0U3VpdGUoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1
aXRlJiB0ZXN0X3N1aXRlKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVz
dHN1aXRlIjsKICAgKnN0cmVhbSA8PCAiICA8IiA8PCBrVGVzdHN1aXRlOwotICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfY2FzZS5uYW1lKCkpOwor
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3Rfc3Vp
dGUubmFtZSgpKTsKICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRl
c3RzIiwKLSAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2Uu
cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFi
bGVUb1N0cmluZyh0ZXN0X3N1aXRlLnJlcG9ydGFibGVfdGVzdF9jb3VudCgpKSk7CiAgIGlmICgh
R1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgewogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0s
IGtUZXN0c3VpdGUsICJmYWlsdXJlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFi
bGVUb1N0cmluZyh0ZXN0X2Nhc2UuZmFpbGVkX3Rlc3RfY291bnQoKSkpOworICAgICAgICAgICAg
ICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9zdWl0ZS5mYWlsZWRfdGVzdF9jb3Vu
dCgpKSk7CiAgICAgT3V0cHV0WG1sQXR0cmlidXRlKAogICAgICAgICBzdHJlYW0sIGtUZXN0c3Vp
dGUsICJkaXNhYmxlZCIsCi0gICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UucmVw
b3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICAgICAgU3RyZWFtYWJsZVRvU3Ry
aW5nKHRlc3Rfc3VpdGUucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICBP
dXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAic2tpcHBlZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLnNraXBwZWRfdGVz
dF9jb3VudCgpKSk7CisKICAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRl
LCAiZXJyb3JzIiwgIjAiKTsKKwogICAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0
c3VpdGUsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlz
QXNTZWNvbmRzKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkpOwotICAgICpzdHJlYW0gPDwgVGVz
dFByb3BlcnRpZXNBc1htbEF0dHJpYnV0ZXModGVzdF9jYXNlLmFkX2hvY190ZXN0X3Jlc3VsdCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNTZWNvbmRzKHRl
c3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkpKTsKKyAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoCisgICAg
ICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVzdGFtcCIsCisgICAgICAgIEZvcm1hdEVwb2No
VGltZUluTWlsbGlzQXNJc284NjAxKHRlc3Rfc3VpdGUuc3RhcnRfdGltZXN0YW1wKCkpKTsKKyAg
ICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0aWVzQXNYbWxBdHRyaWJ1dGVzKHRlc3Rfc3VpdGUuYWRf
aG9jX3Rlc3RfcmVzdWx0KCkpOwogICB9CiAgICpzdHJlYW0gPDwgIj5cbiI7Ci0gIGZvciAoaW50
IGkgPSAwOyBpIDwgdGVzdF9jYXNlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKSB7Ci0gICAgaWYg
KHRlc3RfY2FzZS5HZXRUZXN0SW5mbyhpKS0+aXNfcmVwb3J0YWJsZSgpKQotICAgICAgT3V0cHV0
WG1sVGVzdEluZm8oc3RyZWFtLCB0ZXN0X2Nhc2UubmFtZSgpLCAqdGVzdF9jYXNlLkdldFRlc3RJ
bmZvKGkpKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3RfY291
bnQoKTsgKytpKSB7CisgICAgaWYgKHRlc3Rfc3VpdGUuR2V0VGVzdEluZm8oaSktPmlzX3JlcG9y
dGFibGUoKSkKKyAgICAgIE91dHB1dFhtbFRlc3RJbmZvKHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1l
KCksICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGkpKTsKICAgfQogICAqc3RyZWFtIDw8ICIgIDwv
IiA8PCBrVGVzdHN1aXRlIDw8ICI+XG4iOwogfQpAQCAtMzc5NCwxMSArNDMzMywxMSBAQCB2b2lk
IFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6Om9zdHJlYW0q
IHN0cmVhbSwKICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJkaXNhYmxlZCIsCiAgICAgICBT
dHJlYW1hYmxlVG9TdHJpbmcodW5pdF90ZXN0LnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3Vu
dCgpKSk7CiAgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAiZXJyb3Jz
IiwgIjAiKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0aW1l
IiwKKyAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh1bml0
X3Rlc3QuZWxhcHNlZF90aW1lKCkpKTsKICAgT3V0cHV0WG1sQXR0cmlidXRlKAogICAgICAgc3Ry
ZWFtLCBrVGVzdHN1aXRlcywgInRpbWVzdGFtcCIsCiAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzSXNvODYwMSh1bml0X3Rlc3Quc3RhcnRfdGltZXN0YW1wKCkpKTsKLSAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0aW1lIiwKLSAgICAgICAgICAgICAgICAg
ICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh1bml0X3Rlc3QuZWxhcHNlZF90aW1lKCkp
KTsKIAogICBpZiAoR1RFU1RfRkxBRyhzaHVmZmxlKSkgewogICAgIE91dHB1dFhtbEF0dHJpYnV0
ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAicmFuZG9tX3NlZWQiLApAQCAtMzgwOSwzMSArNDM0OCwz
OCBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRYbWxVbml0VGVzdChzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0
ZXMsICJuYW1lIiwgIkFsbFRlc3RzIik7CiAgICpzdHJlYW0gPDwgIj5cbiI7CiAKLSAgZm9yIChp
bnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewot
ICAgIGlmICh1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgp
ID4gMCkKLSAgICAgIFByaW50WG1sVGVzdENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RD
YXNlKGkpKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0
ZV9jb3VudCgpOyArK2kpIHsKKyAgICBpZiAodW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKS0+cmVw
b3J0YWJsZV90ZXN0X2NvdW50KCkgPiAwKQorICAgICAgUHJpbnRYbWxUZXN0U3VpdGUoc3RyZWFt
LCAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKSk7CiAgIH0KKworICAvLyBJZiB0aGVyZSB3YXMg
YSB0ZXN0IGZhaWx1cmUgb3V0c2lkZSBvZiBvbmUgb2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGlu
IGEKKyAgLy8gdGVzdCBlbnZpcm9ubWVudCkgaW5jbHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisg
IGlmICh1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVzdWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRw
dXRYbWxUZXN0U3VpdGVGb3JUZXN0UmVzdWx0KHN0cmVhbSwgdW5pdF90ZXN0LmFkX2hvY190ZXN0
X3Jlc3VsdCgpKTsKKyAgfQorCiAgICpzdHJlYW0gPDwgIjwvIiA8PCBrVGVzdHN1aXRlcyA8PCAi
PlxuIjsKIH0KIAogdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50WG1sVGVzdHNM
aXN0KAotICAgIHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2Fz
ZSo+JiB0ZXN0X2Nhc2VzKSB7CisgICAgc3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0IHN0ZDo6
dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcykgewogICBjb25zdCBzdGQ6OnN0cmluZyBr
VGVzdHN1aXRlcyA9ICJ0ZXN0c3VpdGVzIjsKIAogICAqc3RyZWFtIDw8ICI8P3htbCB2ZXJzaW9u
PVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz5cbiI7CiAgICpzdHJlYW0gPDwgIjwiIDw8IGtU
ZXN0c3VpdGVzOwogCiAgIGludCB0b3RhbF90ZXN0cyA9IDA7Ci0gIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdGVzdF9jYXNlcy5zaXplKCk7ICsraSkgewotICAgIHRvdGFsX3Rlc3RzICs9IHRlc3Rf
Y2FzZXNbaV0tPnRvdGFsX3Rlc3RfY291bnQoKTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0
ZXN0X3N1aXRlcykgeworICAgIHRvdGFsX3Rlc3RzICs9IHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3Rf
Y291bnQoKTsKICAgfQogICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywg
InRlc3RzIiwKICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0b3RhbF90
ZXN0cykpOwogICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgIm5hbWUi
LCAiQWxsVGVzdHMiKTsKICAgKnN0cmVhbSA8PCAiPlxuIjsKIAotICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kpIHsKLSAgICBQcmludFhtbFRlc3RDYXNlKHN0
cmVhbSwgKnRlc3RfY2FzZXNbaV0pOworICBmb3IgKGF1dG8gdGVzdF9zdWl0ZSA6IHRlc3Rfc3Vp
dGVzKSB7CisgICAgUHJpbnRYbWxUZXN0U3VpdGUoc3RyZWFtLCAqdGVzdF9zdWl0ZSk7CiAgIH0K
ICAgKnN0cmVhbSA8PCAiPC8iIDw8IGtUZXN0c3VpdGVzIDw8ICI+XG4iOwogfQpAQCAtMzg3OCwx
MSArNDQyNCwxMSBAQCBjbGFzcyBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVt
cHR5VGVzdEV2ZW50TGlzdGVuZXIgewogIHB1YmxpYzoKICAgZXhwbGljaXQgSnNvblVuaXRUZXN0
UmVzdWx0UHJpbnRlcihjb25zdCBjaGFyKiBvdXRwdXRfZmlsZSk7CiAKLSAgdmlydHVhbCB2b2lk
IE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0
aW9uKTsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVz
dCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgLy8gUHJpbnRzIGFuIEpTT04gc3VtbWFy
eSBvZiBhbGwgdW5pdCB0ZXN0cy4KICAgc3RhdGljIHZvaWQgUHJpbnRKc29uVGVzdExpc3QoOjpz
dGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNlcyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRl
cyk7CiAKICBwcml2YXRlOgogICAvLyBSZXR1cm5zIGFuIEpTT04tZXNjYXBlZCBjb3B5IG9mIHRo
ZSBpbnB1dCBzdHJpbmcgc3RyLgpAQCAtMzkwMywxNCArNDQ0OSwyNCBAQCBjbGFzcyBKc29uVW5p
dFRlc3RSZXN1bHRQcmludGVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBpbmRlbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21tYSA9IHRydWUpOwogCisgIC8vIFN0cmVh
bXMgYSB0ZXN0IHN1aXRlIEpTT04gc3RhbnphIGNvbnRhaW5pbmcgdGhlIGdpdmVuIHRlc3QgcmVz
dWx0LgorICAvLworICAvLyBSZXF1aXJlczogcmVzdWx0LkZhaWxlZCgpCisgIHN0YXRpYyB2b2lk
IE91dHB1dEpzb25UZXN0U3VpdGVGb3JUZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRl
c3RSZXN1bHQmIHJlc3VsdCk7CisKKyAgLy8gU3RyZWFtcyBhIEpTT04gcmVwcmVzZW50YXRpb24g
b2YgYSBUZXN0UmVzdWx0IG9iamVjdC4KKyAgc3RhdGljIHZvaWQgT3V0cHV0SnNvblRlc3RSZXN1
bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KTsKKwogICAvLyBTdHJlYW1zIGEgSlNPTiBy
ZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9iamVjdC4KICAgc3RhdGljIHZvaWQgT3V0cHV0
SnNvblRlc3RJbmZvKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwogCi0g
IC8vIFByaW50cyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0Q2FzZSBvYmplY3QKLSAg
c3RhdGljIHZvaWQgUHJpbnRKc29uVGVzdENhc2UoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7
CisgIC8vIFByaW50cyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0
CisgIHN0YXRpYyB2b2lkIFByaW50SnNvblRlc3RTdWl0ZSg6OnN0ZDo6b3N0cmVhbSogc3RyZWFt
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0
X3N1aXRlKTsKIAogICAvLyBQcmludHMgYSBKU09OIHN1bW1hcnkgb2YgdW5pdF90ZXN0IHRvIG91
dHB1dCBzdHJlYW0gb3V0LgogICBzdGF0aWMgdm9pZCBQcmludEpzb25Vbml0VGVzdCg6OnN0ZDo6
b3N0cmVhbSogc3RyZWFtLApAQCAtNDAwOSw3ICs0NTY1LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5n
IEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KFRpbWVJbk1pbGxpcyBtcykgewogICAg
ICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0aDIodGltZV9zdHJ1Y3QudG1fc2VjKSArICJaIjsKIH0K
IAotc3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyBJbmRlbnQoaW50IHdpZHRoKSB7CitzdGF0aWMg
aW5saW5lIHN0ZDo6c3RyaW5nIEluZGVudChzaXplX3Qgd2lkdGgpIHsKICAgcmV0dXJuIHN0ZDo6
c3RyaW5nKHdpZHRoLCAnICcpOwogfQogCkBAIC00MDIxLDcgKzQ1NzcsNyBAQCB2b2lkIEpzb25V
bml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAgICAgY29uc3Qgc3RkOjpzdHJp
bmcmIGluZGVudCwKICAgICBib29sIGNvbW1hKSB7CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPiYgYWxsb3dlZF9uYW1lcyA9Ci0gICAgICBHZXRSZXNlcnZlZEF0dHJpYnV0ZXNGb3JF
bGVtZW50KGVsZW1lbnRfbmFtZSk7CisgICAgICBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNG
b3JFbGVtZW50KGVsZW1lbnRfbmFtZSk7CiAKICAgR1RFU1RfQ0hFQ0tfKHN0ZDo6ZmluZChhbGxv
d2VkX25hbWVzLmJlZ2luKCksIGFsbG93ZWRfbmFtZXMuZW5kKCksIG5hbWUpICE9CiAgICAgICAg
ICAgICAgICAgICAgYWxsb3dlZF9uYW1lcy5lbmQoKSkKQEAgLTQwNDEsNyArNDU5Nyw3IEBAIHZv
aWQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0SnNvbktleSgKICAgICBjb25zdCBz
dGQ6OnN0cmluZyYgaW5kZW50LAogICAgIGJvb2wgY29tbWEpIHsKICAgY29uc3Qgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+JiBhbGxvd2VkX25hbWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0cmli
dXRlc0ZvckVsZW1lbnQoZWxlbWVudF9uYW1lKTsKKyAgICAgIEdldFJlc2VydmVkT3V0cHV0QXR0
cmlidXRlc0ZvckVsZW1lbnQoZWxlbWVudF9uYW1lKTsKIAogICBHVEVTVF9DSEVDS18oc3RkOjpm
aW5kKGFsbG93ZWRfbmFtZXMuYmVnaW4oKSwgYWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0K
ICAgICAgICAgICAgICAgICAgICBhbGxvd2VkX25hbWVzLmVuZCgpKQpAQCAtNDA1MywzOSArNDYw
OSw5NyBAQCB2b2lkIEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAg
ICAgKnN0cmVhbSA8PCAiLFxuIjsKIH0KIAorLy8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgSlNPTiBz
dGFuemEgY29udGFpbmluZyB0aGUgZ2l2ZW4gdGVzdCByZXN1bHQuCit2b2lkIEpzb25Vbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok91dHB1dEpzb25UZXN0U3VpdGVGb3JUZXN0UmVzdWx0KAorICAgIDo6
c3RkOjpvc3RyZWFtKiBzdHJlYW0sIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICAvLyBP
dXRwdXQgdGhlIGJvaWxlcnBsYXRlIGZvciBhIG5ldyB0ZXN0IHN1aXRlLgorICAqc3RyZWFtIDw8
IEluZGVudCg0KSA8PCAie1xuIjsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUi
LCAibmFtZSIsICJOb25UZXN0U3VpdGVGYWlsdXJlIiwgSW5kZW50KDYpKTsKKyAgT3V0cHV0SnNv
bktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGVzdHMiLCAxLCBJbmRlbnQoNikpOworICBpZiAo
IUdURVNUX0ZMQUcobGlzdF90ZXN0cykpIHsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRl
c3RzdWl0ZSIsICJmYWlsdXJlcyIsIDEsIEluZGVudCg2KSk7CisgICAgT3V0cHV0SnNvbktleShz
dHJlYW0sICJ0ZXN0c3VpdGUiLCAiZGlzYWJsZWQiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1
dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwgInNraXBwZWQiLCAwLCBJbmRlbnQoNikpOwor
ICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwgImVycm9ycyIsIDAsIEluZGVu
dCg2KSk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGltZSIsCisg
ICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9uKHJlc3VsdC5lbGFw
c2VkX3RpbWUoKSksCisgICAgICAgICAgICAgICAgICBJbmRlbnQoNikpOworICAgIE91dHB1dEpz
b25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwgInRpbWVzdGFtcCIsCisgICAgICAgICAgICAgICAg
ICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzUkZDMzMzOShyZXN1bHQuc3RhcnRfdGltZXN0YW1w
KCkpLAorICAgICAgICAgICAgICAgICAgSW5kZW50KDYpKTsKKyAgfQorICAqc3RyZWFtIDw8IElu
ZGVudCg2KSA8PCAiXCJ0ZXN0c3VpdGVcIjogW1xuIjsKKworICAvLyBPdXRwdXQgdGhlIGJvaWxl
cnBsYXRlIGZvciBhIG5ldyB0ZXN0IGNhc2UuCisgICpzdHJlYW0gPDwgSW5kZW50KDgpIDw8ICJ7
XG4iOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgIm5hbWUiLCAiIiwgSW5k
ZW50KDEwKSk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAic3RhdHVzIiwg
IlJVTiIsIEluZGVudCgxMCkpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwg
InJlc3VsdCIsICJDT01QTEVURUQiLCBJbmRlbnQoMTApKTsKKyAgT3V0cHV0SnNvbktleShzdHJl
YW0sICJ0ZXN0Y2FzZSIsICJ0aW1lc3RhbXAiLAorICAgICAgICAgICAgICAgIEZvcm1hdEVwb2No
VGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3VsdC5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAg
ICAgICAgICAgSW5kZW50KDEwKSk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2Ui
LCAidGltZSIsCisgICAgICAgICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihy
ZXN1bHQuZWxhcHNlZF90aW1lKCkpLAorICAgICAgICAgICAgICAgIEluZGVudCgxMCkpOworICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgImNsYXNzbmFtZSIsICIiLCBJbmRlbnQo
MTApLCBmYWxzZSk7CisgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24ocmVzdWx0LCBJ
bmRlbnQoMTApKTsKKworICAvLyBPdXRwdXQgdGhlIGFjdHVhbCB0ZXN0IHJlc3VsdC4KKyAgT3V0
cHV0SnNvblRlc3RSZXN1bHQoc3RyZWFtLCByZXN1bHQpOworCisgIC8vIEZpbmlzaCB0aGUgdGVz
dCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCAiXG4iIDw8IEluZGVudCg2KSA8PCAiXVxuIiA8PCBJbmRl
bnQoNCkgPDwgIn0iOworfQorCiAvLyBQcmludHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEg
VGVzdEluZm8gb2JqZWN0Lgogdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRK
c29uVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBjb25z
dCBUZXN0UmVzdWx0JiByZXN1bHQgPSAqdGVzdF9pbmZvLnJlc3VsdCgpOwotICBjb25zdCBzdGQ6
OnN0cmluZyBrVGVzdGNhc2UgPSAidGVzdGNhc2UiOworICBjb25zdCBzdGQ6OnN0cmluZyBrVGVz
dHN1aXRlID0gInRlc3RjYXNlIjsKICAgY29uc3Qgc3RkOjpzdHJpbmcga0luZGVudCA9IEluZGVu
dCgxMCk7CiAKICAgKnN0cmVhbSA8PCBJbmRlbnQoOCkgPDwgIntcbiI7Ci0gIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJuYW1lIiwgdGVzdF9pbmZvLm5hbWUoKSwga0luZGVudCk7
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3RfaW5mby5u
YW1lKCksIGtJbmRlbnQpOwogCi0gIGlmICh0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSAhPSBOVUxM
KSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgInZhbHVlX3BhcmFtIiwK
LSAgICAgICAgICAgICAgICAgIHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpLCBrSW5kZW50KTsKKyAg
aWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpICE9IG51bGxwdHIpIHsKKyAgICBPdXRwdXRKc29u
S2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInZhbHVlX3BhcmFtIiwgdGVzdF9pbmZvLnZhbHVlX3Bh
cmFtKCksCisgICAgICAgICAgICAgICAgICBrSW5kZW50KTsKICAgfQotICBpZiAodGVzdF9pbmZv
LnR5cGVfcGFyYW0oKSAhPSBOVUxMKSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0
Y2FzZSwgInR5cGVfcGFyYW0iLCB0ZXN0X2luZm8udHlwZV9wYXJhbSgpLAorICBpZiAodGVzdF9p
bmZvLnR5cGVfcGFyYW0oKSAhPSBudWxscHRyKSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0s
IGtUZXN0c3VpdGUsICJ0eXBlX3BhcmFtIiwgdGVzdF9pbmZvLnR5cGVfcGFyYW0oKSwKICAgICAg
ICAgICAgICAgICAgIGtJbmRlbnQpOwogICB9CiAgIGlmIChHVEVTVF9GTEFHKGxpc3RfdGVzdHMp
KSB7Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgImZpbGUiLCB0ZXN0X2lu
Zm8uZmlsZSgpLCBrSW5kZW50KTsKLSAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNl
LCAibGluZSIsIHRlc3RfaW5mby5saW5lKCksIGtJbmRlbnQsIGZhbHNlKTsKKyAgICBPdXRwdXRK
c29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImZpbGUiLCB0ZXN0X2luZm8uZmlsZSgpLCBrSW5k
ZW50KTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImxpbmUiLCB0ZXN0
X2luZm8ubGluZSgpLCBrSW5kZW50LCBmYWxzZSk7CiAgICAgKnN0cmVhbSA8PCAiXG4iIDw8IElu
ZGVudCg4KSA8PCAifSI7CiAgICAgcmV0dXJuOwogICB9CiAKLSAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0Y2FzZSwgInN0YXR1cyIsCisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1
aXRlLCAic3RhdHVzIiwKICAgICAgICAgICAgICAgICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpID8g
IlJVTiIgOiAiTk9UUlVOIiwga0luZGVudCk7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVz
dGNhc2UsICJ0aW1lIiwKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJyZXN1
bHQiLAorICAgICAgICAgICAgICAgIHRlc3RfaW5mby5zaG91bGRfcnVuKCkKKyAgICAgICAgICAg
ICAgICAgICAgPyAocmVzdWx0LlNraXBwZWQoKSA/ICJTS0lQUEVEIiA6ICJDT01QTEVURUQiKQor
ICAgICAgICAgICAgICAgICAgICA6ICJTVVBQUkVTU0VEIiwKKyAgICAgICAgICAgICAgICBrSW5k
ZW50KTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lc3RhbXAiLAor
ICAgICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHJlc3VsdC5z
dGFydF90aW1lc3RhbXAoKSksCisgICAgICAgICAgICAgICAga0luZGVudCk7CisgIE91dHB1dEpz
b25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZSIsCiAgICAgICAgICAgICAgICAgRm9ybWF0
VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1bHQuZWxhcHNlZF90aW1lKCkpLCBrSW5kZW50KTsK
LSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgImNsYXNzbmFtZSIsIHRlc3RfY2Fz
ZV9uYW1lLCBrSW5kZW50LCBmYWxzZSk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1
aXRlLCAiY2xhc3NuYW1lIiwgdGVzdF9zdWl0ZV9uYW1lLCBrSW5kZW50LAorICAgICAgICAgICAg
ICAgIGZhbHNlKTsKICAgKnN0cmVhbSA8PCBUZXN0UHJvcGVydGllc0FzSnNvbihyZXN1bHQsIGtJ
bmRlbnQpOwogCisgIE91dHB1dEpzb25UZXN0UmVzdWx0KHN0cmVhbSwgcmVzdWx0KTsKK30KKwor
dm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uVGVzdFJlc3VsdCg6OnN0
ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgY29uc3Qgc3Rk
OjpzdHJpbmcga0luZGVudCA9IEluZGVudCgxMCk7CisKICAgaW50IGZhaWx1cmVzID0gMDsKICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQudG90YWxfcGFydF9jb3VudCgpOyArK2kpIHsKICAg
ICBjb25zdCBUZXN0UGFydFJlc3VsdCYgcGFydCA9IHJlc3VsdC5HZXRUZXN0UGFydFJlc3VsdChp
KTsKQEAgLTQxMTAsNDAgKzQ3MjQsNDQgQEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPdXRwdXRKc29uVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0cmVhbSA8
PCAiXG4iIDw8IEluZGVudCg4KSA8PCAifSI7CiB9CiAKLS8vIFByaW50cyBhbiBKU09OIHJlcHJl
c2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci12b2lkIEpzb25Vbml0VGVzdFJlc3VsdFBy
aW50ZXI6OlByaW50SnNvblRlc3RDYXNlKHN0ZDo6b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0Q2FzZSYg
dGVzdF9jYXNlKSB7CisvLyBQcmludHMgYW4gSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RT
dWl0ZSBvYmplY3QKK3ZvaWQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVGVz
dFN1aXRlKAorICAgIHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBUZXN0U3VpdGUmIHRlc3Rf
c3VpdGUpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZSA9ICJ0ZXN0c3VpdGUiOwog
ICBjb25zdCBzdGQ6OnN0cmluZyBrSW5kZW50ID0gSW5kZW50KDYpOwogCiAgICpzdHJlYW0gPDwg
SW5kZW50KDQpIDw8ICJ7XG4iOwotICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwg
Im5hbWUiLCB0ZXN0X2Nhc2UubmFtZSgpLCBrSW5kZW50KTsKLSAgT3V0cHV0SnNvbktleShzdHJl
YW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIsIHRlc3RfY2FzZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQo
KSwKKyAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJuYW1lIiwgdGVzdF9zdWl0
ZS5uYW1lKCksIGtJbmRlbnQpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwg
InRlc3RzIiwgdGVzdF9zdWl0ZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSwKICAgICAgICAgICAg
ICAgICBrSW5kZW50KTsKICAgaWYgKCFHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0
cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJmYWlsdXJlcyIsIHRlc3RfY2FzZS5mYWls
ZWRfdGVzdF9jb3VudCgpLAotICAgICAgICAgICAgICAgICAga0luZGVudCk7CisgICAgT3V0cHV0
SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJmYWlsdXJlcyIsCisgICAgICAgICAgICAgICAg
ICB0ZXN0X3N1aXRlLmZhaWxlZF90ZXN0X2NvdW50KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpz
b25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZGlzYWJsZWQiLAotICAgICAgICAgICAgICAgICAg
dGVzdF9jYXNlLnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpLCBrSW5kZW50KTsKKyAg
ICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUucmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50
KCksIGtJbmRlbnQpOwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZXJy
b3JzIiwgMCwga0luZGVudCk7CisgICAgT3V0cHV0SnNvbktleSgKKyAgICAgICAgc3RyZWFtLCBr
VGVzdHN1aXRlLCAidGltZXN0YW1wIiwKKyAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNB
c1JGQzMzMzkodGVzdF9zdWl0ZS5zdGFydF90aW1lc3RhbXAoKSksCisgICAgICAgIGtJbmRlbnQp
OwogICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZSIsCi0gICAgICAg
ICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9uKHRlc3RfY2FzZS5lbGFwc2Vk
X3RpbWUoKSksCisgICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc0R1cmF0aW9u
KHRlc3Rfc3VpdGUuZWxhcHNlZF90aW1lKCkpLAogICAgICAgICAgICAgICAgICAga0luZGVudCwg
ZmFsc2UpOwotICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24odGVzdF9jYXNlLmFk
X2hvY190ZXN0X3Jlc3VsdCgpLCBrSW5kZW50KQorICAgICpzdHJlYW0gPDwgVGVzdFByb3BlcnRp
ZXNBc0pzb24odGVzdF9zdWl0ZS5hZF9ob2NfdGVzdF9yZXN1bHQoKSwga0luZGVudCkKICAgICAg
ICAgICAgIDw8ICIsXG4iOwogICB9CiAKICAgKnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwg
a1Rlc3RzdWl0ZSA8PCAiXCI6IFtcbiI7CiAKICAgYm9vbCBjb21tYSA9IGZhbHNlOwotICBmb3Ig
KGludCBpID0gMDsgaSA8IHRlc3RfY2FzZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAg
IGlmICh0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSktPmlzX3JlcG9ydGFibGUoKSkgeworICBmb3Ig
KGludCBpID0gMDsgaSA8IHRlc3Rfc3VpdGUudG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKKyAg
ICBpZiAodGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhpKS0+aXNfcmVwb3J0YWJsZSgpKSB7CiAgICAg
ICBpZiAoY29tbWEpIHsKICAgICAgICAgKnN0cmVhbSA8PCAiLFxuIjsKICAgICAgIH0gZWxzZSB7
CiAgICAgICAgIGNvbW1hID0gdHJ1ZTsKICAgICAgIH0KLSAgICAgIE91dHB1dEpzb25UZXN0SW5m
byhzdHJlYW0sIHRlc3RfY2FzZS5uYW1lKCksICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaSkpOwor
ICAgICAgT3V0cHV0SnNvblRlc3RJbmZvKHN0cmVhbSwgdGVzdF9zdWl0ZS5uYW1lKCksICp0ZXN0
X3N1aXRlLkdldFRlc3RJbmZvKGkpKTsKICAgICB9CiAgIH0KICAgKnN0cmVhbSA8PCAiXG4iIDw8
IGtJbmRlbnQgPDwgIl1cbiIgPDwgSW5kZW50KDQpIDw8ICJ9IjsKQEAgLTQxODEsMzkgKzQ3OTks
NDUgQEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludEpzb25Vbml0VGVzdChz
dGQ6Om9zdHJlYW0qIHN0cmVhbSwKICAgKnN0cmVhbSA8PCBrSW5kZW50IDw8ICJcIiIgPDwga1Rl
c3RzdWl0ZXMgPDwgIlwiOiBbXG4iOwogCiAgIGJvb2wgY29tbWEgPSBmYWxzZTsKLSAgZm9yIChp
bnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewot
ICAgIGlmICh1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgp
ID4gMCkgeworICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRl
X2NvdW50KCk7ICsraSkgeworICAgIGlmICh1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkpLT5yZXBv
cnRhYmxlX3Rlc3RfY291bnQoKSA+IDApIHsKICAgICAgIGlmIChjb21tYSkgewogICAgICAgICAq
c3RyZWFtIDw8ICIsXG4iOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgY29tbWEgPSB0cnVlOwog
ICAgICAgfQotICAgICAgUHJpbnRKc29uVGVzdENhc2Uoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRl
c3RDYXNlKGkpKTsKKyAgICAgIFByaW50SnNvblRlc3RTdWl0ZShzdHJlYW0sICp1bml0X3Rlc3Qu
R2V0VGVzdFN1aXRlKGkpKTsKICAgICB9CiAgIH0KIAorICAvLyBJZiB0aGVyZSB3YXMgYSB0ZXN0
IGZhaWx1cmUgb3V0c2lkZSBvZiBvbmUgb2YgdGhlIHRlc3Qgc3VpdGVzIChsaWtlIGluIGEKKyAg
Ly8gdGVzdCBlbnZpcm9ubWVudCkgaW5jbHVkZSB0aGF0IGluIHRoZSBvdXRwdXQuCisgIGlmICh1
bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVzdWx0KCkuRmFpbGVkKCkpIHsKKyAgICBPdXRwdXRKc29u
VGVzdFN1aXRlRm9yVGVzdFJlc3VsdChzdHJlYW0sIHVuaXRfdGVzdC5hZF9ob2NfdGVzdF9yZXN1
bHQoKSk7CisgIH0KKwogICAqc3RyZWFtIDw8ICJcbiIgPDwga0luZGVudCA8PCAiXVxuIiA8PCAi
fVxuIjsKIH0KIAogdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludEpzb25UZXN0
TGlzdCgKLSAgICBzdGQ6Om9zdHJlYW0qIHN0cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENh
c2UqPiYgdGVzdF9jYXNlcykgeworICAgIHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6
OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9zdWl0ZXMpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
a1Rlc3RzdWl0ZXMgPSAidGVzdHN1aXRlcyI7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQg
PSBJbmRlbnQoMik7CiAgICpzdHJlYW0gPDwgIntcbiI7CiAgIGludCB0b3RhbF90ZXN0cyA9IDA7
Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdF9jYXNlcy5zaXplKCk7ICsraSkgewotICAg
IHRvdGFsX3Rlc3RzICs9IHRlc3RfY2FzZXNbaV0tPnRvdGFsX3Rlc3RfY291bnQoKTsKKyAgZm9y
IChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlcykgeworICAgIHRvdGFsX3Rlc3RzICs9IHRl
c3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKTsKICAgfQogICBPdXRwdXRKc29uS2V5KHN0cmVh
bSwga1Rlc3RzdWl0ZXMsICJ0ZXN0cyIsIHRvdGFsX3Rlc3RzLCBrSW5kZW50KTsKIAogICBPdXRw
dXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIiwga0luZGVu
dCk7CiAgICpzdHJlYW0gPDwga0luZGVudCA8PCAiXCIiIDw8IGtUZXN0c3VpdGVzIDw8ICJcIjog
W1xuIjsKIAotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kp
IHsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlcy5zaXplKCk7ICsraSkgewog
ICAgIGlmIChpICE9IDApIHsKICAgICAgICpzdHJlYW0gPDwgIixcbiI7CiAgICAgfQotICAgIFBy
aW50SnNvblRlc3RDYXNlKHN0cmVhbSwgKnRlc3RfY2FzZXNbaV0pOworICAgIFByaW50SnNvblRl
c3RTdWl0ZShzdHJlYW0sICp0ZXN0X3N1aXRlc1tpXSk7CiAgIH0KIAogICAqc3RyZWFtIDw8ICJc
biIKQEAgLTQyNjksNyArNDg5Myw3IEBAIHZvaWQgU3RyZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdy
aXRlcjo6TWFrZUNvbm5lY3Rpb24oKSB7CiAgIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50
cykpOwogICBoaW50cy5haV9mYW1pbHkgPSBBRl9VTlNQRUM7ICAgIC8vIFRvIGFsbG93IGJvdGgg
SVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMuCiAgIGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJF
QU07Ci0gIGFkZHJpbmZvKiBzZXJ2aW5mbyA9IE5VTEw7CisgIGFkZHJpbmZvKiBzZXJ2aW5mbyA9
IG51bGxwdHI7CiAKICAgLy8gVXNlIHRoZSBnZXRhZGRyaW5mbygpIHRvIGdldCBhIGxpbmtlZCBs
aXN0IG9mIElQIGFkZHJlc3NlcyBmb3IKICAgLy8gdGhlIGdpdmVuIGhvc3QgbmFtZS4KQEAgLTQy
ODEsNyArNDkwNSw3IEBAIHZvaWQgU3RyZWFtaW5nTGlzdGVuZXI6OlNvY2tldFdyaXRlcjo6TWFr
ZUNvbm5lY3Rpb24oKSB7CiAgIH0KIAogICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSByZXN1bHRz
IGFuZCBjb25uZWN0IHRvIHRoZSBmaXJzdCB3ZSBjYW4uCi0gIGZvciAoYWRkcmluZm8qIGN1cl9h
ZGRyID0gc2VydmluZm87IHNvY2tmZF8gPT0gLTEgJiYgY3VyX2FkZHIgIT0gTlVMTDsKKyAgZm9y
IChhZGRyaW5mbyogY3VyX2FkZHIgPSBzZXJ2aW5mbzsgc29ja2ZkXyA9PSAtMSAmJiBjdXJfYWRk
ciAhPSBudWxscHRyOwogICAgICAgIGN1cl9hZGRyID0gY3VyX2FkZHItPmFpX25leHQpIHsKICAg
ICBzb2NrZmRfID0gc29ja2V0KAogICAgICAgICBjdXJfYWRkci0+YWlfZmFtaWx5LCBjdXJfYWRk
ci0+YWlfc29ja3R5cGUsIGN1cl9hZGRyLT5haV9wcm90b2NvbCk7CkBAIC00MzkxLDYgKzUwMTUs
NyBAQCBjbGFzcyBTY29wZWRQcmVtYXR1cmVFeGl0RmlsZSB7CiAgIH0KIAogICB+U2NvcGVkUHJl
bWF0dXJlRXhpdEZpbGUoKSB7CisjaWYgIWRlZmluZWQgR1RFU1RfT1NfRVNQODI2NgogICAgIGlm
ICghcHJlbWF0dXJlX2V4aXRfZmlsZXBhdGhfLmVtcHR5KCkpIHsKICAgICAgIGludCByZXR2YWwg
PSByZW1vdmUocHJlbWF0dXJlX2V4aXRfZmlsZXBhdGhfLmNfc3RyKCkpOwogICAgICAgaWYgKHJl
dHZhbCkgewpAQCAtNDM5OSw2ICs1MDI0LDcgQEAgY2xhc3MgU2NvcGVkUHJlbWF0dXJlRXhpdEZp
bGUgewogICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByZXR2YWw7CiAgICAgICB9CiAgICAg
fQorI2VuZGlmCiAgIH0KIAogIHByaXZhdGU6CkBAIC00NDEzLDkgKzUwMzksOCBAQCBjbGFzcyBT
Y29wZWRQcmVtYXR1cmVFeGl0RmlsZSB7CiAKIFRlc3RFdmVudExpc3RlbmVyczo6VGVzdEV2ZW50
TGlzdGVuZXJzKCkKICAgICA6IHJlcGVhdGVyXyhuZXcgaW50ZXJuYWw6OlRlc3RFdmVudFJlcGVh
dGVyKCkpLAotICAgICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8oTlVMTCksCi0gICAgICBkZWZh
dWx0X3htbF9nZW5lcmF0b3JfKE5VTEwpIHsKLX0KKyAgICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50
ZXJfKG51bGxwdHIpLAorICAgICAgZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyhudWxscHRyKSB7fQog
CiBUZXN0RXZlbnRMaXN0ZW5lcnM6On5UZXN0RXZlbnRMaXN0ZW5lcnMoKSB7IGRlbGV0ZSByZXBl
YXRlcl87IH0KIApAQCAtNDQzMiw5ICs1MDU3LDkgQEAgdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6
OkFwcGVuZChUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpIHsKIC8vIE5VTEwgaWYgdGhlIGxp
c3RlbmVyIGlzIG5vdCBmb3VuZCBpbiB0aGUgbGlzdC4KIFRlc3RFdmVudExpc3RlbmVyKiBUZXN0
RXZlbnRMaXN0ZW5lcnM6OlJlbGVhc2UoVGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKSB7CiAg
IGlmIChsaXN0ZW5lciA9PSBkZWZhdWx0X3Jlc3VsdF9wcmludGVyXykKLSAgICBkZWZhdWx0X3Jl
c3VsdF9wcmludGVyXyA9IE5VTEw7CisgICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBudWxs
cHRyOwogICBlbHNlIGlmIChsaXN0ZW5lciA9PSBkZWZhdWx0X3htbF9nZW5lcmF0b3JfKQotICAg
IGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBOVUxMOworICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRv
cl8gPSBudWxscHRyOwogICByZXR1cm4gcmVwZWF0ZXJfLT5SZWxlYXNlKGxpc3RlbmVyKTsKIH0K
IApAQCAtNDQ1Myw4ICs1MDc4LDcgQEAgdm9pZCBUZXN0RXZlbnRMaXN0ZW5lcnM6OlNldERlZmF1
bHRSZXN1bHRQcmludGVyKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxp
c3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8pOwogICAgIGRl
ZmF1bHRfcmVzdWx0X3ByaW50ZXJfID0gbGlzdGVuZXI7Ci0gICAgaWYgKGxpc3RlbmVyICE9IE5V
TEwpCi0gICAgICBBcHBlbmQobGlzdGVuZXIpOworICAgIGlmIChsaXN0ZW5lciAhPSBudWxscHRy
KSBBcHBlbmQobGlzdGVuZXIpOwogICB9CiB9CiAKQEAgLTQ0NjksOCArNTA5Myw3IEBAIHZvaWQg
VGVzdEV2ZW50TGlzdGVuZXJzOjpTZXREZWZhdWx0WG1sR2VuZXJhdG9yKFRlc3RFdmVudExpc3Rl
bmVyKiBsaXN0ZW5lcikgewogICAgIC8vIGxpc3QuCiAgICAgZGVsZXRlIFJlbGVhc2UoZGVmYXVs
dF94bWxfZ2VuZXJhdG9yXyk7CiAgICAgZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyA9IGxpc3RlbmVy
OwotICAgIGlmIChsaXN0ZW5lciAhPSBOVUxMKQotICAgICAgQXBwZW5kKGxpc3RlbmVyKTsKKyAg
ICBpZiAobGlzdGVuZXIgIT0gbnVsbHB0cikgQXBwZW5kKGxpc3RlbmVyKTsKICAgfQogfQogCkBA
IC00NDk0LDUyICs1MTE3LDY2IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTdXBwcmVzc0V2
ZW50Rm9yd2FyZGluZygpIHsKIC8vIGNhbGwgdGhpcyBiZWZvcmUgbWFpbigpIHN0YXJ0cywgZnJv
bSB3aGljaCBwb2ludCBvbiB0aGUgcmV0dXJuCiAvLyB2YWx1ZSB3aWxsIG5ldmVyIGNoYW5nZS4K
IFVuaXRUZXN0KiBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSB7Ci0gIC8vIFdoZW4gY29tcGlsZWQg
d2l0aCBNU1ZDIDcuMSBpbiBvcHRpbWl6ZWQgbW9kZSwgZGVzdHJveWluZyB0aGUKLSAgLy8gVW5p
dFRlc3Qgb2JqZWN0IHVwb24gZXhpdGluZyB0aGUgcHJvZ3JhbSBtZXNzZXMgdXAgdGhlIGV4aXQg
Y29kZSwKLSAgLy8gY2F1c2luZyBzdWNjZXNzZnVsIHRlc3RzIHRvIGFwcGVhciBmYWlsZWQuICBX
ZSBoYXZlIHRvIHVzZSBhCi0gIC8vIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIGNh
c2UgdG8gYnlwYXNzIHRoZSBjb21waWxlciBidWcuCi0gIC8vIFRoaXMgaW1wbGVtZW50YXRpb24g
bWFrZXMgdGhlIGNvbXBpbGVyIGhhcHB5LCBhdCB0aGUgY29zdCBvZgotICAvLyBsZWFraW5nIHRo
ZSBVbml0VGVzdCBvYmplY3QuCi0KICAgLy8gQ29kZUdlYXIgQysrQnVpbGRlciBpbnNpc3RzIG9u
IGEgcHVibGljIGRlc3RydWN0b3IgZm9yIHRoZQogICAvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9u
LiAgVXNlIHRoaXMgaW1wbGVtZW50YXRpb24gdG8ga2VlcCBnb29kIE9PCiAgIC8vIGRlc2lnbiB3
aXRoIHByaXZhdGUgZGVzdHJ1Y3Rvci4KIAotI2lmIChfTVNDX1ZFUiA9PSAxMzEwICYmICFkZWZp
bmVkKF9ERUJVRykpIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKQorI2lmIGRlZmluZWQoX19CT1JM
QU5EQ19fKQogICBzdGF0aWMgVW5pdFRlc3QqIGNvbnN0IGluc3RhbmNlID0gbmV3IFVuaXRUZXN0
OwogICByZXR1cm4gaW5zdGFuY2U7CiAjZWxzZQogICBzdGF0aWMgVW5pdFRlc3QgaW5zdGFuY2U7
CiAgIHJldHVybiAmaW5zdGFuY2U7Ci0jZW5kaWYgIC8vIChfTVNDX1ZFUiA9PSAxMzEwICYmICFk
ZWZpbmVkKF9ERUJVRykpIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKQorI2VuZGlmICAvLyBkZWZp
bmVkKF9fQk9STEFORENfXykKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwg
dGVzdCBjYXNlcy4KLWludCBVbml0VGVzdDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBj
b25zdCB7Ci0gIHJldHVybiBpbXBsKCktPnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCk7Cisv
LyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVz
dDo6c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgp
LT5zdWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291bnQoKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGZhaWxlZCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3QgewotICByZXR1cm4gaW1wbCgpLT5mYWlsZWRfdGVzdF9jYXNlX2NvdW50KCk7
CisvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3Qgc3VpdGVzLgoraW50IFVuaXRUZXN0
OjpmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+ZmFp
bGVkX3Rlc3Rfc3VpdGVfY291bnQoKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0
ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0Ojp0b3RhbF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7
Ci0gIHJldHVybiBpbXBsKCktPnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUg
bnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdDo6dG90YWxfdGVzdF9zdWl0
ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+dG90YWxfdGVzdF9zdWl0ZV9jb3Vu
dCgpOwogfQogCi0vLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3QgY2FzZXMgdGhhdCBjb250
YWluIGF0IGxlYXN0IG9uZSB0ZXN0CisvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3Vp
dGVzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVzdAogLy8gdGhhdCBzaG91bGQgcnVuLgor
aW50IFVuaXRUZXN0Ojp0ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJu
IGltcGwoKS0+dGVzdF9zdWl0ZV90b19ydW5fY291bnQoKTsKK30KKworLy8gIExlZ2FjeSBBUEkg
aXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXworaW50IFVuaXRUZXN0OjpzdWNjZXNzZnVsX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X3N1aXRlX2Nv
dW50KCk7Cit9CitpbnQgVW5pdFRlc3Q6OmZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7
CisgIHJldHVybiBpbXBsKCktPmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCk7Cit9CitpbnQgVW5p
dFRlc3Q6OnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOworfQogaW50IFVuaXRUZXN0Ojp0ZXN0X2Nhc2VfdG9f
cnVuX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gaW1wbCgpLT50ZXN0X2Nhc2VfdG9fcnVuX2Nv
dW50KCk7CisgIHJldHVybiBpbXBsKCktPnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCk7CiB9Cisj
ZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMuCiBpbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxf
dGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X2Nv
dW50KCk7CiB9CiAKKy8vIEdldHMgdGhlIG51bWJlciBvZiBza2lwcGVkIHRlc3RzLgoraW50IFVu
aXRUZXN0Ojpza2lwcGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnNr
aXBwZWRfdGVzdF9jb3VudCgpOworfQorCiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRl
c3RzLgogaW50IFVuaXRUZXN0OjpmYWlsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsgcmV0dXJuIGlt
cGwoKS0+ZmFpbGVkX3Rlc3RfY291bnQoKTsgfQogCkBAIC00NTc1LDI5ICs1MjEyLDM3IEBAIGlu
dGVybmFsOjpUaW1lSW5NaWxsaXMgVW5pdFRlc3Q6OmVsYXBzZWRfdGltZSgpIGNvbnN0IHsKICAg
cmV0dXJuIGltcGwoKS0+ZWxhcHNlZF90aW1lKCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhlIHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3QgY2FzZXMgcGFzc2VkKS4KKy8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwg
dGVzdCBzdWl0ZXMKKy8vIHBhc3NlZCkuCiBib29sIFVuaXRUZXN0OjpQYXNzZWQoKSBjb25zdCB7
IHJldHVybiBpbXBsKCktPlBhc3NlZCgpOyB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHVu
aXQgdGVzdCBmYWlsZWQgKGkuZS4gc29tZSB0ZXN0IGNhc2UgZmFpbGVkCi0vLyBvciBzb21ldGhp
bmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3Qgc3VpdGUKKy8vIGZh
aWxlZCBvciBzb21ldGhpbmcgb3V0c2lkZSBvZiBhbGwgdGVzdHMgZmFpbGVkKS4KIGJvb2wgVW5p
dFRlc3Q6OkZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIGltcGwoKS0+RmFpbGVkKCk7IH0KIAotLy8g
R2V0cyB0aGUgaS10aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiBy
YW5nZSBmcm9tIDAgdG8KLS8vIHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBu
b3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorLy8gR2V0cyB0aGUgaS10aCB0ZXN0IHN1
aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0ZXMuIGkgY2FuIHJhbmdlIGZyb20gMCB0bworLy8g
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwg
cmV0dXJucyBOVUxMLgorY29uc3QgVGVzdFN1aXRlKiBVbml0VGVzdDo6R2V0VGVzdFN1aXRlKGlu
dCBpKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPkdldFRlc3RTdWl0ZShpKTsKK30KKworLy8g
IExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogY29uc3QgVGVzdENhc2UqIFVuaXRUZXN0
OjpHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3QgewogICByZXR1cm4gaW1wbCgpLT5HZXRUZXN0Q2Fz
ZShpKTsKIH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwog
CiAvLyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVz
dCBmYWlsdXJlcyBhbmQKLS8vIHByb3BlcnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVh
bCB0ZXN0IGNhc2VzLgorLy8gcHJvcGVydGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFs
IHRlc3Qgc3VpdGVzLgogY29uc3QgVGVzdFJlc3VsdCYgVW5pdFRlc3Q6OmFkX2hvY190ZXN0X3Jl
c3VsdCgpIGNvbnN0IHsKICAgcmV0dXJuICppbXBsKCktPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwog
fQogCi0vLyBHZXRzIHRoZSBpLXRoIHRlc3QgY2FzZSBhbW9uZyBhbGwgdGhlIHRlc3QgY2FzZXMu
IGkgY2FuIHJhbmdlIGZyb20gMCB0bwotLy8gdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgLSAxLiBJ
ZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi1UZXN0Q2FzZSogVW5pdFRl
c3Q6OkdldE11dGFibGVUZXN0Q2FzZShpbnQgaSkgewotICByZXR1cm4gaW1wbCgpLT5HZXRNdXRh
YmxlVGVzdENhc2UoaSk7CisvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRo
ZSB0ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisvLyB0b3RhbF90ZXN0X3N1aXRl
X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCitU
ZXN0U3VpdGUqIFVuaXRUZXN0OjpHZXRNdXRhYmxlVGVzdFN1aXRlKGludCBpKSB7CisgIHJldHVy
biBpbXBsKCktPkdldE11dGFibGVTdWl0ZUNhc2UoaSk7CiB9CiAKIC8vIFJldHVybnMgdGhlIGxp
c3Qgb2YgZXZlbnQgbGlzdGVuZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8gdHJhY2sgZXZlbnRzCkBA
IC00NjE3LDggKzUyNjIsOCBAQCBUZXN0RXZlbnRMaXN0ZW5lcnMmIFVuaXRUZXN0OjpsaXN0ZW5l
cnMoKSB7CiAvLyBXZSBkb24ndCBwcm90ZWN0IHRoaXMgdW5kZXIgbXV0ZXhfLCBhcyB3ZSBvbmx5
IHN1cHBvcnQgY2FsbGluZyBpdAogLy8gZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBFbnZpcm9ubWVu
dCogVW5pdFRlc3Q6OkFkZEVudmlyb25tZW50KEVudmlyb25tZW50KiBlbnYpIHsKLSAgaWYgKGVu
diA9PSBOVUxMKSB7Ci0gICAgcmV0dXJuIE5VTEw7CisgIGlmIChlbnYgPT0gbnVsbHB0cikgewor
ICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAgaW1wbF8tPmVudmlyb25tZW50cygpLnB1c2hf
YmFjayhlbnYpOwpAQCAtNDY0MiwyNSArNTI4NywyNCBAQCB2b2lkIFVuaXRUZXN0OjpBZGRUZXN0
UGFydFJlc3VsdCgKICAgaWYgKGltcGxfLT5ndGVzdF90cmFjZV9zdGFjaygpLnNpemUoKSA+IDAp
IHsKICAgICBtc2cgPDwgIlxuIiA8PCBHVEVTVF9OQU1FXyA8PCAiIHRyYWNlOiI7CiAKLSAgICBm
b3IgKGludCBpID0gc3RhdGljX2Nhc3Q8aW50PihpbXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5z
aXplKCkpOwotICAgICAgICAgaSA+IDA7IC0taSkgeworICAgIGZvciAoc2l6ZV90IGkgPSBpbXBs
Xy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXplKCk7IGkgPiAwOyAtLWkpIHsKICAgICAgIGNvbnN0
IGludGVybmFsOjpUcmFjZUluZm8mIHRyYWNlID0gaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKClb
aSAtIDFdOwogICAgICAgbXNnIDw8ICJcbiIgPDwgaW50ZXJuYWw6OkZvcm1hdEZpbGVMb2NhdGlv
bih0cmFjZS5maWxlLCB0cmFjZS5saW5lKQogICAgICAgICAgIDw8ICIgIiA8PCB0cmFjZS5tZXNz
YWdlOwogICAgIH0KICAgfQogCi0gIGlmIChvc19zdGFja190cmFjZS5jX3N0cigpICE9IE5VTEwg
JiYgIW9zX3N0YWNrX3RyYWNlLmVtcHR5KCkpIHsKKyAgaWYgKG9zX3N0YWNrX3RyYWNlLmNfc3Ry
KCkgIT0gbnVsbHB0ciAmJiAhb3Nfc3RhY2tfdHJhY2UuZW1wdHkoKSkgewogICAgIG1zZyA8PCBp
bnRlcm5hbDo6a1N0YWNrVHJhY2VNYXJrZXIgPDwgb3Nfc3RhY2tfdHJhY2U7CiAgIH0KIAotICBj
b25zdCBUZXN0UGFydFJlc3VsdCByZXN1bHQgPQotICAgIFRlc3RQYXJ0UmVzdWx0KHJlc3VsdF90
eXBlLCBmaWxlX25hbWUsIGxpbmVfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgIG1zZy5HZXRT
dHJpbmcoKS5jX3N0cigpKTsKKyAgY29uc3QgVGVzdFBhcnRSZXN1bHQgcmVzdWx0ID0gVGVzdFBh
cnRSZXN1bHQoCisgICAgICByZXN1bHRfdHlwZSwgZmlsZV9uYW1lLCBsaW5lX251bWJlciwgbXNn
LkdldFN0cmluZygpLmNfc3RyKCkpOwogICBpbXBsXy0+R2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRl
ckZvckN1cnJlbnRUaHJlYWQoKS0+CiAgICAgICBSZXBvcnRUZXN0UGFydFJlc3VsdChyZXN1bHQp
OwogCi0gIGlmIChyZXN1bHRfdHlwZSAhPSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpIHsKKyAg
aWYgKHJlc3VsdF90eXBlICE9IFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcyAmJgorICAgICAgcmVz
dWx0X3R5cGUgIT0gVGVzdFBhcnRSZXN1bHQ6OmtTa2lwKSB7CiAgICAgLy8gZ3Rlc3RfYnJlYWtf
b25fZmFpbHVyZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKICAgICAvLyBndGVzdF90aHJvd19vbl9m
YWlsdXJlLiAgVGhpcyBhbGxvd3MgYSB1c2VyIHRvIHNldCB0aGUgbGF0dGVyCiAgICAgLy8gaW4g
dGhlIGNvZGUgKHBlcmhhcHMgaW4gb3JkZXIgdG8gdXNlIEdvb2dsZSBUZXN0IGFzc2VydGlvbnMK
QEAgLTQ2NzgsMTEgKzUzMjIsMTAgQEAgdm9pZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQo
CiAgICAgICAvLyB3aXRoIGNsYW5nL2djYyB3ZSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3Qg
b24geDg2IGJ5IGludm9raW5nIGludDMKICAgICAgIGFzbSgiaW50MyIpOwogI2Vsc2UKLSAgICAg
IC8vIERlcmVmZXJlbmNlIE5VTEwgdGhyb3VnaCBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gcHJldmVu
dCB0aGUgY29tcGlsZXIKKyAgICAgIC8vIERlcmVmZXJlbmNlIG51bGxwdHIgdGhyb3VnaCBhIHZv
bGF0aWxlIHBvaW50ZXIgdG8gcHJldmVudCB0aGUgY29tcGlsZXIKICAgICAgIC8vIGZyb20gcmVt
b3ZpbmcuIFdlIHVzZSB0aGlzIHJhdGhlciB0aGFuIGFib3J0KCkgb3IgX19idWlsdGluX3RyYXAo
KSBmb3IKLSAgICAgIC8vIHBvcnRhYmlsaXR5OiBTeW1iaWFuIGRvZXNuJ3QgaW1wbGVtZW50IGFi
b3J0KCkgd2VsbCwgYW5kIHNvbWUgZGVidWdnZXJzCi0gICAgICAvLyBkb24ndCBjb3JyZWN0bHkg
dHJhcCBhYm9ydCgpLgotICAgICAgKnN0YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KE5VTEwpID0g
MTsKKyAgICAgIC8vIHBvcnRhYmlsaXR5OiBzb21lIGRlYnVnZ2VycyBkb24ndCBjb3JyZWN0bHkg
dHJhcCBhYm9ydCgpLgorICAgICAgKnN0YXRpY19jYXN0PHZvbGF0aWxlIGludCo+KG51bGxwdHIp
ID0gMTsKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwogICAgIH0gZWxzZSBpZiAoR1RFU1Rf
RkxBRyh0aHJvd19vbl9mYWlsdXJlKSkgewogI2lmIEdURVNUX0hBU19FWENFUFRJT05TCkBAIC00
Njk3LDggKzUzNDAsOCBAQCB2b2lkIFVuaXRUZXN0OjpBZGRUZXN0UGFydFJlc3VsdCgKIH0KIAog
Ly8gQWRkcyBhIFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3
aGVuIGludm9rZWQgZnJvbQotLy8gaW5zaWRlIGEgdGVzdCwgdG8gY3VycmVudCBUZXN0Q2FzZSdz
IGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hlbiBpbnZva2VkCi0vLyBmcm9tIFNldFVwVGVzdENhc2Ug
b3IgVGVhckRvd25UZXN0Q2FzZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKKy8vIGlu
c2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVzdFN1aXRlJ3MgYWRfaG9jX3Rlc3RfcmVzdWx0XyB3
aGVuIGludm9rZWQKKy8vIGZyb20gU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGUs
IG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0CiAvLyB3aGVuIGludm9rZWQgZWxzZXdoZXJl
LiAgSWYgdGhlIHJlc3VsdCBhbHJlYWR5IGNvbnRhaW5zIGEgcHJvcGVydHkgd2l0aAogLy8gdGhl
IHNhbWUga2V5LCB0aGUgdmFsdWUgd2lsbCBiZSB1cGRhdGVkLgogdm9pZCBVbml0VGVzdDo6UmVj
b3JkUHJvcGVydHkoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSwKQEAgLTQ3MzcsOCArNTM4MCw5IEBA
IGludCBVbml0VGVzdDo6UnVuKCkgewogICAvLyB0aGF0IHVuZGVyc3RhbmRzIHRoZSBwcmVtYXR1
cmUtZXhpdC1maWxlIHByb3RvY29sIHRvIHJlcG9ydCB0aGUKICAgLy8gdGVzdCBhcyBoYXZpbmcg
ZmFpbGVkLgogICBjb25zdCBpbnRlcm5hbDo6U2NvcGVkUHJlbWF0dXJlRXhpdEZpbGUgcHJlbWF0
dXJlX2V4aXRfZmlsZSgKLSAgICAgIGluX2RlYXRoX3Rlc3RfY2hpbGRfcHJvY2VzcyA/Ci0gICAg
ICBOVUxMIDogaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJFX0VYSVRfRklM
RSIpKTsKKyAgICAgIGluX2RlYXRoX3Rlc3RfY2hpbGRfcHJvY2VzcworICAgICAgICAgID8gbnVs
bHB0cgorICAgICAgICAgIDogaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfUFJFTUFUVVJF
X0VYSVRfRklMRSIpKTsKIAogICAvLyBDYXB0dXJlcyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhj
YXRjaF9leGNlcHRpb25zKS4gIFRoaXMgdmFsdWUgd2lsbCBiZQogICAvLyB1c2VkIGZvciB0aGUg
ZHVyYXRpb24gb2YgdGhlIHByb2dyYW0uCkBAIC00NzYzLDIyICs1NDA3LDI2IEBAIGludCBVbml0
VGVzdDo6UnVuKCkgewogICAgIF9zZXRfZXJyb3JfbW9kZShfT1VUX1RPX1NUREVSUik7CiAjIGVu
ZGlmCiAKLSMgaWYgX01TQ19WRVIgPj0gMTQwMCAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUK
KyMgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAgICAg
Ly8gSW4gdGhlIGRlYnVnIHZlcnNpb24sIFZpc3VhbCBTdHVkaW8gcG9wcyB1cCBhIHNlcGFyYXRl
IGRpYWxvZwogICAgIC8vIG9mZmVyaW5nIGEgY2hvaWNlIHRvIGRlYnVnIHRoZSBhYm9ydGVkIHBy
b2dyYW0uIFdlIG5lZWQgdG8gc3VwcHJlc3MKICAgICAvLyB0aGlzIGRpYWxvZyBvciBpdCB3aWxs
IHBvcCB1cCBmb3IgZXZlcnkgRVhQRUNUL0FTU0VSVF9ERUFUSCBzdGF0ZW1lbnQKICAgICAvLyBl
eGVjdXRlZC4gR29vZ2xlIFRlc3Qgd2lsbCBub3RpZnkgdGhlIHVzZXIgb2YgYW55IHVuZXhwZWN0
ZWQKICAgICAvLyBmYWlsdXJlIHZpYSBzdGRlcnIuCi0gICAgLy8KLSAgICAvLyBWQysrIGRvZXNu
J3QgZGVmaW5lIF9zZXRfYWJvcnRfYmVoYXZpb3IoKSBwcmlvciB0byB0aGUgdmVyc2lvbiA4LjAu
Ci0gICAgLy8gVXNlcnMgb2YgcHJpb3IgVkMgdmVyc2lvbnMgc2hhbGwgc3VmZmVyIHRoZSBhZ29u
eSBhbmQgcGFpbiBvZgotICAgIC8vIGNsaWNraW5nIHRocm91Z2ggdGhlIGNvdW50bGVzcyBkZWJ1
ZyBkaWFsb2dzLgotICAgIC8vIEZJWE1FOiBmaW5kIGEgd2F5IHRvIHN1cHByZXNzIHRoZSBhYm9y
dCBkaWFsb2coKSBpbiB0aGUKLSAgICAvLyBkZWJ1ZyBtb2RlIHdoZW4gY29tcGlsZWQgd2l0aCBW
QyA3LjEgb3IgbG93ZXIuCiAgICAgaWYgKCFHVEVTVF9GTEFHKGJyZWFrX29uX2ZhaWx1cmUpKQog
ICAgICAgX3NldF9hYm9ydF9iZWhhdmlvcigKICAgICAgICAgICAweDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGZvbGxvd2luZyBmbGFnczoKICAgICAg
ICAgICBfV1JJVEVfQUJPUlRfTVNHIHwgX0NBTExfUkVQT1JURkFVTFQpOyAgLy8gcG9wLXVwIHdp
bmRvdywgY29yZSBkdW1wLgorCisgICAgLy8gSW4gZGVidWcgbW9kZSwgdGhlIFdpbmRvd3MgQ1JU
IGNhbiBjcmFzaCB3aXRoIGFuIGFzc2VydGlvbiBvdmVyIGludmFsaWQKKyAgICAvLyBpbnB1dCAo
ZS5nLiBwYXNzaW5nIGFuIGludmFsaWQgZmlsZSBkZXNjcmlwdG9yKS4gIFRoZSBkZWZhdWx0IGhh
bmRsaW5nCisgICAgLy8gZm9yIHRoZXNlIGFzc2VydGlvbnMgaXMgdG8gcG9wIHVwIGEgZGlhbG9n
IGFuZCB3YWl0IGZvciB1c2VyIGlucHV0LgorICAgIC8vIEluc3RlYWQgYXNrIHRoZSBDUlQgdG8g
ZHVtcCBzdWNoIGFzc2VydGlvbnMgdG8gc3RkZXJyIG5vbi1pbnRlcmFjdGl2ZWx5LgorICAgIGlm
ICghSXNEZWJ1Z2dlclByZXNlbnQoKSkgeworICAgICAgKHZvaWQpX0NydFNldFJlcG9ydE1vZGUo
X0NSVF9BU1NFUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfQ1JUREJHX01PREVf
RklMRSB8IF9DUlREQkdfTU9ERV9ERUJVRyk7CisgICAgICAodm9pZClfQ3J0U2V0UmVwb3J0Rmls
ZShfQ1JUX0FTU0VSVCwgX0NSVERCR19GSUxFX1NUREVSUik7CisgICAgfQogIyBlbmRpZgogICB9
CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKQEAgLTQ3OTUsMTMgKzU0NDMsMjIgQEAgY29u
c3QgY2hhciogVW5pdFRlc3Q6Om9yaWdpbmFsX3dvcmtpbmdfZGlyKCkgY29uc3QgewogICByZXR1
cm4gaW1wbF8tPm9yaWdpbmFsX3dvcmtpbmdfZGlyXy5jX3N0cigpOwogfQogCi0vLyBSZXR1cm5z
IHRoZSBUZXN0Q2FzZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmlu
ZywKKy8vIFJldHVybnMgdGhlIFRlc3RTdWl0ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBj
dXJyZW50bHkgcnVubmluZywKIC8vIG9yIE5VTEwgaWYgbm8gdGVzdCBpcyBydW5uaW5nLgorY29u
c3QgVGVzdFN1aXRlKiBVbml0VGVzdDo6Y3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QKKyAgICBH
VEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKKyAgaW50ZXJuYWw6Ok11dGV4TG9jayBsb2Nr
KCZtdXRleF8pOworICByZXR1cm4gaW1wbF8tPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworfQorCisv
LyBMZWdhY3kgQVBJIGlzIHN0aWxsIGF2YWlsYWJsZSBidXQgZGVwcmVjYXRlZAorI2lmbmRlZiBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIGNvbnN0IFRlc3RDYXNlKiBVbml0VGVz
dDo6Y3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdAogICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11
dGV4XykgewogICBpbnRlcm5hbDo6TXV0ZXhMb2NrIGxvY2soJm11dGV4Xyk7Ci0gIHJldHVybiBp
bXBsXy0+Y3VycmVudF90ZXN0X2Nhc2UoKTsKKyAgcmV0dXJuIGltcGxfLT5jdXJyZW50X3Rlc3Rf
c3VpdGUoKTsKIH0KKyNlbmRpZgogCiAvLyBSZXR1cm5zIHRoZSBUZXN0SW5mbyBvYmplY3QgZm9y
IHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKIC8vIG9yIE5VTEwgaWYgbm8gdGVz
dCBpcyBydW5uaW5nLgpAQCAtNDgxNCwxMSArNTQ3MSwxMCBAQCBjb25zdCBUZXN0SW5mbyogVW5p
dFRlc3Q6OmN1cnJlbnRfdGVzdF9pbmZvKCkgY29uc3QKIC8vIFJldHVybnMgdGhlIHJhbmRvbSBz
ZWVkIHVzZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IHRlc3QgcnVuLgogaW50IFVuaXRU
ZXN0OjpyYW5kb21fc2VlZCgpIGNvbnN0IHsgcmV0dXJuIGltcGxfLT5yYW5kb21fc2VlZCgpOyB9
CiAKLS8vIFJldHVybnMgUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkgb2JqZWN0IHVzZWQg
dG8ga2VlcCB0cmFjayBvZgorLy8gUmV0dXJucyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0
cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0
ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJlZ2lzdGVyIHRoZW0uCi1pbnRlcm5hbDo6UGFyYW1l
dGVyaXplZFRlc3RDYXNlUmVnaXN0cnkmCi0gICAgVW5pdFRlc3Q6OnBhcmFtZXRlcml6ZWRfdGVz
dF9yZWdpc3RyeSgpCi0gICAgICAgIEdURVNUX0xPQ0tfRVhDTFVERURfKG11dGV4XykgeworaW50
ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSYKK1VuaXRUZXN0OjpwYXJhbWV0
ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKSBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKICAg
cmV0dXJuIGltcGxfLT5wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKTsKIH0KIApAQCAtNDg1
MiwyMyArNTUwOCwyMiBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogVW5pdFRlc3RJbXBsOjpVbml0
VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVudCkKICAgICA6IHBhcmVudF8ocGFyZW50KSwKICAgICAg
IEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQzNTUgLyogdXNpbmcgdGhpcyBpbiBp
bml0aWFsaXplciAqLykKLSAgICAgIGRlZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVw
b3J0ZXJfKHRoaXMpLAorICAgICAgICAgIGRlZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRf
cmVwb3J0ZXJfKHRoaXMpLAogICAgICAgZGVmYXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1
bHRfcmVwb3J0ZXJfKHRoaXMpLAotICAgICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9Q
XygpCi0gICAgICBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvdGVyXygKKyAgICAgIEdURVNU
X0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSBnbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBv
dGVyXygKICAgICAgICAgICAmZGVmYXVsdF9nbG9iYWxfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRl
cl8pLAogICAgICAgcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXygKICAgICAg
ICAgICAmZGVmYXVsdF9wZXJfdGhyZWFkX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKSwKICAg
ICAgIHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV8oKSwKICAgICAgIHBhcmFtZXRlcml6ZWRf
dGVzdHNfcmVnaXN0ZXJlZF8oZmFsc2UpLAotICAgICAgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfKC0x
KSwKLSAgICAgIGN1cnJlbnRfdGVzdF9jYXNlXyhOVUxMKSwKLSAgICAgIGN1cnJlbnRfdGVzdF9p
bmZvXyhOVUxMKSwKKyAgICAgIGxhc3RfZGVhdGhfdGVzdF9zdWl0ZV8oLTEpLAorICAgICAgY3Vy
cmVudF90ZXN0X3N1aXRlXyhudWxscHRyKSwKKyAgICAgIGN1cnJlbnRfdGVzdF9pbmZvXyhudWxs
cHRyKSwKICAgICAgIGFkX2hvY190ZXN0X3Jlc3VsdF8oKSwKLSAgICAgIG9zX3N0YWNrX3RyYWNl
X2dldHRlcl8oTlVMTCksCisgICAgICBvc19zdGFja190cmFjZV9nZXR0ZXJfKG51bGxwdHIpLAog
ICAgICAgcG9zdF9mbGFnX3BhcnNlX2luaXRfcGVyZm9ybWVkXyhmYWxzZSksCiAgICAgICByYW5k
b21fc2VlZF8oMCksICAvLyBXaWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGZsYWcgYmVmb3JlIGZp
cnN0IHVzZS4KLSAgICAgIHJhbmRvbV8oMCksICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJlZm9yZSBm
aXJzdCB1c2UuCisgICAgICByYW5kb21fKDApLCAgICAgICAvLyBXaWxsIGJlIHJlc2VlZGVkIGJl
Zm9yZSBmaXJzdCB1c2UuCiAgICAgICBzdGFydF90aW1lc3RhbXBfKDApLAogICAgICAgZWxhcHNl
ZF90aW1lXygwKSwKICNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVApAQCAtNDg4MCw4ICs1NTM1LDgg
QEAgVW5pdFRlc3RJbXBsOjpVbml0VGVzdEltcGwoVW5pdFRlc3QqIHBhcmVudCkKIH0KIAogVW5p
dFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBsKCkgewotICAvLyBEZWxldGVzIGV2ZXJ5IFRlc3RDYXNl
LgotICBGb3JFYWNoKHRlc3RfY2FzZXNfLCBpbnRlcm5hbDo6RGVsZXRlPFRlc3RDYXNlPik7Cisg
IC8vIERlbGV0ZXMgZXZlcnkgVGVzdFN1aXRlLgorICBGb3JFYWNoKHRlc3Rfc3VpdGVzXywgaW50
ZXJuYWw6OkRlbGV0ZTxUZXN0U3VpdGU+KTsKIAogICAvLyBEZWxldGVzIGV2ZXJ5IEVudmlyb25t
ZW50LgogICBGb3JFYWNoKGVudmlyb25tZW50c18sIGludGVybmFsOjpEZWxldGU8RW52aXJvbm1l
bnQ+KTsKQEAgLTQ4OTAsMjAgKzU1NDUsMjAgQEAgVW5pdFRlc3RJbXBsOjp+VW5pdFRlc3RJbXBs
KCkgewogfQogCiAvLyBBZGRzIGEgVGVzdFByb3BlcnR5IHRvIHRoZSBjdXJyZW50IFRlc3RSZXN1
bHQgb2JqZWN0IHdoZW4gaW52b2tlZCBpbiBhCi0vLyBjb250ZXh0IG9mIGEgdGVzdCwgdG8gY3Vy
cmVudCB0ZXN0IGNhc2UncyBhZF9ob2NfdGVzdF9yZXN1bHQgd2hlbiBpbnZva2UKLS8vIGZyb20g
U2V0VXBUZXN0Q2FzZS9UZWFyRG93blRlc3RDYXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5
IHNldAorLy8gY29udGV4dCBvZiBhIHRlc3QsIHRvIGN1cnJlbnQgdGVzdCBzdWl0ZSdzIGFkX2hv
Y190ZXN0X3Jlc3VsdCB3aGVuIGludm9rZQorLy8gZnJvbSBTZXRVcFRlc3RTdWl0ZS9UZWFyRG93
blRlc3RTdWl0ZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKIC8vIG90aGVyd2lzZS4g
IElmIHRoZSByZXN1bHQgYWxyZWFkeSBjb250YWlucyBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUg
a2V5LAogLy8gdGhlIHZhbHVlIHdpbGwgYmUgdXBkYXRlZC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpS
ZWNvcmRQcm9wZXJ0eShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIHsKICAgc3Rk
OjpzdHJpbmcgeG1sX2VsZW1lbnQ7CiAgIFRlc3RSZXN1bHQqIHRlc3RfcmVzdWx0OyAgLy8gVGVz
dFJlc3VsdCBhcHByb3ByaWF0ZSBmb3IgcHJvcGVydHkgcmVjb3JkaW5nLgogCi0gIGlmIChjdXJy
ZW50X3Rlc3RfaW5mb18gIT0gTlVMTCkgeworICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IG51
bGxwdHIpIHsKICAgICB4bWxfZWxlbWVudCA9ICJ0ZXN0Y2FzZSI7CiAgICAgdGVzdF9yZXN1bHQg
PSAmKGN1cnJlbnRfdGVzdF9pbmZvXy0+cmVzdWx0Xyk7Ci0gIH0gZWxzZSBpZiAoY3VycmVudF90
ZXN0X2Nhc2VfICE9IE5VTEwpIHsKKyAgfSBlbHNlIGlmIChjdXJyZW50X3Rlc3Rfc3VpdGVfICE9
IG51bGxwdHIpIHsKICAgICB4bWxfZWxlbWVudCA9ICJ0ZXN0c3VpdGUiOwotICAgIHRlc3RfcmVz
dWx0ID0gJihjdXJyZW50X3Rlc3RfY2FzZV8tPmFkX2hvY190ZXN0X3Jlc3VsdF8pOworICAgIHRl
c3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3Rfc3VpdGVfLT5hZF9ob2NfdGVzdF9yZXN1bHRfKTsK
ICAgfSBlbHNlIHsKICAgICB4bWxfZWxlbWVudCA9ICJ0ZXN0c3VpdGVzIjsKICAgICB0ZXN0X3Jl
c3VsdCA9ICZhZF9ob2NfdGVzdF9yZXN1bHRfOwpAQCAtNDkxNSw3ICs1NTcwLDcgQEAgdm9pZCBV
bml0VGVzdEltcGw6OlJlY29yZFByb3BlcnR5KGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9w
ZXJ0eSkgewogLy8gRGlzYWJsZXMgZXZlbnQgZm9yd2FyZGluZyBpZiB0aGUgY29udHJvbCBpcyBj
dXJyZW50bHkgaW4gYSBkZWF0aCB0ZXN0CiAvLyBzdWJwcm9jZXNzLiBNdXN0IG5vdCBiZSBjYWxs
ZWQgYmVmb3JlIEluaXRHb29nbGVUZXN0Lgogdm9pZCBVbml0VGVzdEltcGw6OlN1cHByZXNzVGVz
dEV2ZW50c0lmSW5TdWJwcm9jZXNzKCkgewotICBpZiAoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3Rf
ZmxhZ18uZ2V0KCkgIT0gTlVMTCkKKyAgaWYgKGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdf
LmdldCgpICE9IG51bGxwdHIpCiAgICAgbGlzdGVuZXJzKCktPlN1cHByZXNzRXZlbnRGb3J3YXJk
aW5nKCk7CiB9CiAjZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUCkBAIC00OTgzLDYgKzU2
MzgsMTAgQEAgdm9pZCBVbml0VGVzdEltcGw6OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7CiAgICAg
Ly8gdG8gc2h1dCBkb3duIHRoZSBkZWZhdWx0IFhNTCBvdXRwdXQgYmVmb3JlIGludm9raW5nIFJV
Tl9BTExfVEVTVFMuCiAgICAgQ29uZmlndXJlWG1sT3V0cHV0KCk7CiAKKyAgICBpZiAoR1RFU1Rf
RkxBRyhicmllZikpIHsKKyAgICAgIGxpc3RlbmVycygpLT5TZXREZWZhdWx0UmVzdWx0UHJpbnRl
cihuZXcgQnJpZWZVbml0VGVzdFJlc3VsdFByaW50ZXIpOworICAgIH0KKwogI2lmIEdURVNUX0NB
Tl9TVFJFQU1fUkVTVUxUU18KICAgICAvLyBDb25maWd1cmVzIGxpc3RlbmVycyBmb3Igc3RyZWFt
aW5nIHRlc3QgcmVzdWx0cyB0byB0aGUgc3BlY2lmaWVkIHNlcnZlci4KICAgICBDb25maWd1cmVT
dHJlYW1pbmdPdXRwdXQoKTsKQEAgLTQ5OTcsNzQgKzU2NTYsNzMgQEAgdm9pZCBVbml0VGVzdElt
cGw6OlBvc3RGbGFnUGFyc2luZ0luaXQoKSB7CiAgIH0KIH0KIAotLy8gQSBwcmVkaWNhdGUgdGhh
dCBjaGVja3MgdGhlIG5hbWUgb2YgYSBUZXN0Q2FzZSBhZ2FpbnN0IGEga25vd24KKy8vIEEgcHJl
ZGljYXRlIHRoYXQgY2hlY2tzIHRoZSBuYW1lIG9mIGEgVGVzdFN1aXRlIGFnYWluc3QgYSBrbm93
bgogLy8gdmFsdWUuCiAvLwogLy8gVGhpcyBpcyB1c2VkIGZvciBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgVW5pdFRlc3QgY2xhc3Mgb25seS4gIFdlIHB1dAogLy8gaXQgaW4gdGhlIGFub255bW91cyBu
YW1lc3BhY2UgdG8gcHJldmVudCBwb2xsdXRpbmcgdGhlIG91dGVyCiAvLyBuYW1lc3BhY2UuCiAv
LwotLy8gVGVzdENhc2VOYW1lSXMgaXMgY29weWFibGUuCi1jbGFzcyBUZXN0Q2FzZU5hbWVJcyB7
CisvLyBUZXN0U3VpdGVOYW1lSXMgaXMgY29weWFibGUuCitjbGFzcyBUZXN0U3VpdGVOYW1lSXMg
ewogIHB1YmxpYzoKICAgLy8gQ29uc3RydWN0b3IuCi0gIGV4cGxpY2l0IFRlc3RDYXNlTmFtZUlz
KGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKQotICAgICAgOiBuYW1lXyhuYW1lKSB7fQorICBleHBs
aWNpdCBUZXN0U3VpdGVOYW1lSXMoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUpIDogbmFtZV8obmFt
ZSkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBuYW1lIG9mIHRlc3RfY2FzZSBtYXRj
aGVzIG5hbWVfLgotICBib29sIG9wZXJhdG9yKCkoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkg
Y29uc3QgewotICAgIHJldHVybiB0ZXN0X2Nhc2UgIT0gTlVMTCAmJiBzdHJjbXAodGVzdF9jYXNl
LT5uYW1lKCksIG5hbWVfLmNfc3RyKCkpID09IDA7CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgbmFtZSBvZiB0ZXN0X3N1aXRlIG1hdGNoZXMgbmFtZV8uCisgIGJvb2wgb3Bl
cmF0b3IoKShjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUpIGNvbnN0IHsKKyAgICByZXR1cm4g
dGVzdF9zdWl0ZSAhPSBudWxscHRyICYmCisgICAgICAgICAgIHN0cmNtcCh0ZXN0X3N1aXRlLT5u
YW1lKCksIG5hbWVfLmNfc3RyKCkpID09IDA7CiAgIH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3Ry
aW5nIG5hbWVfOwogfTsKIAotLy8gRmluZHMgYW5kIHJldHVybnMgYSBUZXN0Q2FzZSB3aXRoIHRo
ZSBnaXZlbiBuYW1lLiAgSWYgb25lIGRvZXNuJ3QKKy8vIEZpbmRzIGFuZCByZXR1cm5zIGEgVGVz
dFN1aXRlIHdpdGggdGhlIGdpdmVuIG5hbWUuICBJZiBvbmUgZG9lc24ndAogLy8gZXhpc3QsIGNy
ZWF0ZXMgb25lIGFuZCByZXR1cm5zIGl0LiAgSXQncyB0aGUgQ0FMTEVSJ1MKIC8vIFJFU1BPTlNJ
QklMSVRZIHRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgV0hFTiBU
SEUKIC8vIFRFU1RTIEFSRSBOT1QgU0hVRkZMRUQuCiAvLwogLy8gQXJndW1lbnRzOgogLy8KLS8v
ICAgdGVzdF9jYXNlX25hbWU6IG5hbWUgb2YgdGhlIHRlc3QgY2FzZQotLy8gICB0eXBlX3BhcmFt
OiAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxM
IGlmCi0vLyAgICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1w
YXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLS8vICAgc2V0X3VwX3RjOiAgICAgIHBvaW50ZXIgdG8g
dGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90
YzogICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2Fz
ZQotVGVzdENhc2UqIFVuaXRUZXN0SW1wbDo6R2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
KiB0eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6
U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKSB7Ci0gIC8v
IENhbiB3ZSBmaW5kIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZT8KLSAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8VGVzdENhc2UqPjo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciB0ZXN0X2Nhc2UgPQot
ICAgICAgc3RkOjpmaW5kX2lmKHRlc3RfY2FzZXNfLnJiZWdpbigpLCB0ZXN0X2Nhc2VzXy5yZW5k
KCksCi0gICAgICAgICAgICAgICAgICAgVGVzdENhc2VOYW1lSXModGVzdF9jYXNlX25hbWUpKTsK
LQotICBpZiAodGVzdF9jYXNlICE9IHRlc3RfY2FzZXNfLnJlbmQoKSkKLSAgICByZXR1cm4gKnRl
c3RfY2FzZTsKKy8vICAgdGVzdF9zdWl0ZV9uYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlCisv
LyAgIHR5cGVfcGFyYW06ICAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUncyB0eXBlIHBh
cmFtZXRlciwgb3IgTlVMTCBpZgorLy8gICAgICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEg
dHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZS4KKy8vICAgc2V0X3VwX3Rj
OiAgICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3Vp
dGUKKy8vICAgdGVhcl9kb3duX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRl
YXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKK1Rlc3RTdWl0ZSogVW5pdFRlc3RJbXBsOjpHZXRUZXN0
U3VpdGUoCisgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0eXBl
X3BhcmFtLAorICAgIGludGVybmFsOjpTZXRVcFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAg
IGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjKSB7CisgIC8vIENh
biB3ZSBmaW5kIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5hbWU/CisgIGNvbnN0IGF1dG8g
dGVzdF9zdWl0ZSA9CisgICAgICBzdGQ6OmZpbmRfaWYodGVzdF9zdWl0ZXNfLnJiZWdpbigpLCB0
ZXN0X3N1aXRlc18ucmVuZCgpLAorICAgICAgICAgICAgICAgICAgIFRlc3RTdWl0ZU5hbWVJcyh0
ZXN0X3N1aXRlX25hbWUpKTsKKworICBpZiAodGVzdF9zdWl0ZSAhPSB0ZXN0X3N1aXRlc18ucmVu
ZCgpKSByZXR1cm4gKnRlc3Rfc3VpdGU7CiAKICAgLy8gTm8uICBMZXQncyBjcmVhdGUgb25lLgot
ICBUZXN0Q2FzZSogY29uc3QgbmV3X3Rlc3RfY2FzZSA9Ci0gICAgICBuZXcgVGVzdENhc2UodGVz
dF9jYXNlX25hbWUsIHR5cGVfcGFyYW0sIHNldF91cF90YywgdGVhcl9kb3duX3RjKTsKLQotICAv
LyBJcyB0aGlzIGEgZGVhdGggdGVzdCBjYXNlPwotICBpZiAoaW50ZXJuYWw6OlVuaXRUZXN0T3B0
aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga0RlYXRoVGVzdENhc2VGaWx0ZXIpKSB7Ci0gICAg
Ly8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVzdCBjYXNlIGFmdGVyIHRoZSBsYXN0IGRlYXRoIHRlc3Qg
Y2FzZQotICAgIC8vIGRlZmluZWQgc28gZmFyLiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHRl
c3QgY2FzZXMgaGF2ZW4ndAorICBhdXRvKiBjb25zdCBuZXdfdGVzdF9zdWl0ZSA9CisgICAgICBu
ZXcgVGVzdFN1aXRlKHRlc3Rfc3VpdGVfbmFtZSwgdHlwZV9wYXJhbSwgc2V0X3VwX3RjLCB0ZWFy
X2Rvd25fdGMpOworCisgIC8vIElzIHRoaXMgYSBkZWF0aCB0ZXN0IHN1aXRlPworICBpZiAoaW50
ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0X3N1aXRlX25hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWF0aFRlc3RT
dWl0ZUZpbHRlcikpIHsKKyAgICAvLyBZZXMuICBJbnNlcnRzIHRoZSB0ZXN0IHN1aXRlIGFmdGVy
IHRoZSBsYXN0IGRlYXRoIHRlc3Qgc3VpdGUKKyAgICAvLyBkZWZpbmVkIHNvIGZhci4gIFRoaXMg
b25seSB3b3JrcyB3aGVuIHRoZSB0ZXN0IHN1aXRlcyBoYXZlbid0CiAgICAgLy8gYmVlbiBzaHVm
ZmxlZC4gIE90aGVyd2lzZSB3ZSBtYXkgZW5kIHVwIHJ1bm5pbmcgYSBkZWF0aCB0ZXN0CiAgICAg
Ly8gYWZ0ZXIgYSBub24tZGVhdGggdGVzdC4KLSAgICArK2xhc3RfZGVhdGhfdGVzdF9jYXNlXzsK
LSAgICB0ZXN0X2Nhc2VzXy5pbnNlcnQodGVzdF9jYXNlc18uYmVnaW4oKSArIGxhc3RfZGVhdGhf
dGVzdF9jYXNlXywKLSAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Rlc3RfY2FzZSk7CisgICAg
KytsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfOworICAgIHRlc3Rfc3VpdGVzXy5pbnNlcnQodGVzdF9z
dWl0ZXNfLmJlZ2luKCkgKyBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfLAorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3X3Rlc3Rfc3VpdGUpOwogICB9IGVsc2UgewogICAgIC8vIE5vLiAgQXBwZW5k
cyB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgIHRlc3RfY2FzZXNfLnB1c2hfYmFjayhuZXdf
dGVzdF9jYXNlKTsKKyAgICB0ZXN0X3N1aXRlc18ucHVzaF9iYWNrKG5ld190ZXN0X3N1aXRlKTsK
ICAgfQogCi0gIHRlc3RfY2FzZV9pbmRpY2VzXy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0
ZXN0X2Nhc2VfaW5kaWNlc18uc2l6ZSgpKSk7Ci0gIHJldHVybiBuZXdfdGVzdF9jYXNlOworICB0
ZXN0X3N1aXRlX2luZGljZXNfLnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQ+KHRlc3Rfc3VpdGVf
aW5kaWNlc18uc2l6ZSgpKSk7CisgIHJldHVybiBuZXdfdGVzdF9zdWl0ZTsKIH0KIAogLy8gSGVs
cGVycyBmb3Igc2V0dGluZyB1cCAvIHRlYXJpbmcgZG93biB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQu
ICBUaGV5CkBAIC01MDgyLDcgKzU3NDAsOCBAQCBzdGF0aWMgdm9pZCBUZWFyRG93bkVudmlyb25t
ZW50KEVudmlyb25tZW50KiBlbnYpIHsgZW52LT5UZWFyRG93bigpOyB9CiAvLyBBbGwgb3RoZXIg
ZnVuY3Rpb25zIGNhbGxlZCBmcm9tIFJ1bkFsbFRlc3RzKCkgbWF5IHNhZmVseSBhc3N1bWUgdGhh
dAogLy8gcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUgcmVhZHkgdG8gYmUgY291bnRlZCBhbmQgcnVu
LgogYm9vbCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewotICAvLyBUcnVlIGlmZiBHb29n
bGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGlzIGNhbGxlZC4K
KyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBHb29nbGUgVGVzdCBpcyBpbml0aWFsaXplZCBiZWZv
cmUgUlVOX0FMTF9URVNUUygpIGlzCisgIC8vIGNhbGxlZC4KICAgY29uc3QgYm9vbCBndGVzdF9p
c19pbml0aWFsaXplZF9iZWZvcmVfcnVuX2FsbF90ZXN0cyA9IEdUZXN0SXNJbml0aWFsaXplZCgp
OwogCiAgIC8vIERvIG5vdCBydW4gYW55IHRlc3QgaWYgdGhlIC0taGVscCBmbGFnIHdhcyBzcGVj
aWZpZWQuCkBAIC01MDk4LDEyICs1NzU3LDEzIEBAIGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxU
ZXN0cygpIHsKICAgLy8gcHJvdG9jb2wuCiAgIGludGVybmFsOjpXcml0ZVRvU2hhcmRTdGF0dXNG
aWxlSWZOZWVkZWQoKTsKIAotICAvLyBUcnVlIGlmZiB3ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZv
ciBydW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5bGUKKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB3
ZSBhcmUgaW4gYSBzdWJwcm9jZXNzIGZvciBydW5uaW5nIGEgdGhyZWFkLXNhZmUtc3R5bGUKICAg
Ly8gZGVhdGggdGVzdC4KICAgYm9vbCBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0gZmFs
c2U7CiAKICNpZiBHVEVTVF9IQVNfREVBVEhfVEVTVAotICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0
aF90ZXN0ID0gKGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwpOwor
ICBpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0ID0KKyAgICAgIChpbnRlcm5hbF9ydW5fZGVh
dGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBudWxscHRyKTsKICMgaWYgZGVmaW5lZChHVEVTVF9FWFRS
QV9ERUFUSF9URVNUX0NISUxEX1NFVFVQXykKICAgaWYgKGluX3N1YnByb2Nlc3NfZm9yX2RlYXRo
X3Rlc3QpIHsKICAgICBHVEVTVF9FWFRSQV9ERUFUSF9URVNUX0NISUxEX1NFVFVQXygpOwpAQCAt
NTEzMCw3ICs1NzkwLDcgQEAgYm9vbCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICBy
YW5kb21fc2VlZF8gPSBHVEVTVF9GTEFHKHNodWZmbGUpID8KICAgICAgIEdldFJhbmRvbVNlZWRG
cm9tRmxhZyhHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgOiAwOwogCi0gIC8vIFRydWUgaWZmIGF0
IGxlYXN0IG9uZSB0ZXN0IGhhcyBmYWlsZWQuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgYXQg
bGVhc3Qgb25lIHRlc3QgaGFzIGZhaWxlZC4KICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKIAogICBU
ZXN0RXZlbnRMaXN0ZW5lciogcmVwZWF0ZXIgPSBsaXN0ZW5lcnMoKS0+cmVwZWF0ZXIoKTsKQEAg
LTUxNDIsMTcgKzU4MDIsMTcgQEAgYm9vbCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewog
ICAvLyB3aGVuIHdlIGFyZSBpbnNpZGUgdGhlIHN1YnByb2Nlc3Mgb2YgYSBkZWF0aCB0ZXN0Lgog
ICBjb25zdCBpbnQgcmVwZWF0ID0gaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA/IDEgOiBH
VEVTVF9GTEFHKHJlcGVhdCk7CiAgIC8vIFJlcGVhdHMgZm9yZXZlciBpZiB0aGUgcmVwZWF0IGNv
dW50IGlzIG5lZ2F0aXZlLgotICBjb25zdCBib29sIGZvcmV2ZXIgPSByZXBlYXQgPCAwOwotICBm
b3IgKGludCBpID0gMDsgZm9yZXZlciB8fCBpICE9IHJlcGVhdDsgaSsrKSB7CisgIGNvbnN0IGJv
b2wgZ3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgPSByZXBlYXQgPCAwOworICBmb3IgKGludCBpID0gMDsg
Z3Rlc3RfcmVwZWF0X2ZvcmV2ZXIgfHwgaSAhPSByZXBlYXQ7IGkrKykgewogICAgIC8vIFdlIHdh
bnQgdG8gcHJlc2VydmUgZmFpbHVyZXMgZ2VuZXJhdGVkIGJ5IGFkLWhvYyB0ZXN0CiAgICAgLy8g
YXNzZXJ0aW9ucyBleGVjdXRlZCBiZWZvcmUgUlVOX0FMTF9URVNUUygpLgogICAgIENsZWFyTm9u
QWRIb2NUZXN0UmVzdWx0KCk7CiAKLSAgICBjb25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBHZXRU
aW1lSW5NaWxsaXMoKTsKKyAgICBUaW1lciB0aW1lcjsKIAotICAgIC8vIFNodWZmbGVzIHRlc3Qg
Y2FzZXMgYW5kIHRlc3RzIGlmIHJlcXVlc3RlZC4KKyAgICAvLyBTaHVmZmxlcyB0ZXN0IHN1aXRl
cyBhbmQgdGVzdHMgaWYgcmVxdWVzdGVkLgogICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuICYmIEdU
RVNUX0ZMQUcoc2h1ZmZsZSkpIHsKLSAgICAgIHJhbmRvbSgpLT5SZXNlZWQocmFuZG9tX3NlZWRf
KTsKKyAgICAgIHJhbmRvbSgpLT5SZXNlZWQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJhbmRvbV9z
ZWVkXykpOwogICAgICAgLy8gVGhpcyBzaG91bGQgYmUgZG9uZSBiZWZvcmUgY2FsbGluZyBPblRl
c3RJdGVyYXRpb25TdGFydCgpLAogICAgICAgLy8gc3VjaCB0aGF0IGEgdGVzdCBldmVudCBsaXN0
ZW5lciBjYW4gc2VlIHRoZSBhY3R1YWwgdGVzdCBvcmRlcgogICAgICAgLy8gaW4gdGhlIGV2ZW50
LgpAQCAtNTE2MiwxOSArNTgyMiw0OCBAQCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMo
KSB7CiAgICAgLy8gVGVsbHMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lcnMgdGhhdCB0aGUg
dGVzdHMgYXJlIGFib3V0IHRvIHN0YXJ0LgogICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25T
dGFydCgqcGFyZW50XywgaSk7CiAKLSAgICAvLyBSdW5zIGVhY2ggdGVzdCBjYXNlIGlmIHRoZXJl
IGlzIGF0IGxlYXN0IG9uZSB0ZXN0IHRvIHJ1bi4KKyAgICAvLyBSdW5zIGVhY2ggdGVzdCBzdWl0
ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdGVzdCB0byBydW4uCiAgICAgaWYgKGhhc190ZXN0
c190b19ydW4pIHsKICAgICAgIC8vIFNldHMgdXAgYWxsIGVudmlyb25tZW50cyBiZWZvcmVoYW5k
LgogICAgICAgcmVwZWF0ZXItPk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCgqcGFyZW50Xyk7CiAg
ICAgICBGb3JFYWNoKGVudmlyb25tZW50c18sIFNldFVwRW52aXJvbm1lbnQpOwogICAgICAgcmVw
ZWF0ZXItPk9uRW52aXJvbm1lbnRzU2V0VXBFbmQoKnBhcmVudF8pOwogCi0gICAgICAvLyBSdW5z
IHRoZSB0ZXN0cyBvbmx5IGlmIHRoZXJlIHdhcyBubyBmYXRhbCBmYWlsdXJlIGR1cmluZyBnbG9i
YWwKLSAgICAgIC8vIHNldC11cC4KLSAgICAgIGlmICghVGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkp
IHsKLSAgICAgICAgZm9yIChpbnQgdGVzdF9pbmRleCA9IDA7IHRlc3RfaW5kZXggPCB0b3RhbF90
ZXN0X2Nhc2VfY291bnQoKTsKKyAgICAgIC8vIFJ1bnMgdGhlIHRlc3RzIG9ubHkgaWYgdGhlcmUg
d2FzIG5vIGZhdGFsIGZhaWx1cmUgb3Igc2tpcCB0cmlnZ2VyZWQKKyAgICAgIC8vIGR1cmluZyBn
bG9iYWwgc2V0LXVwLgorICAgICAgaWYgKFRlc3Q6OklzU2tpcHBlZCgpKSB7CisgICAgICAgIC8v
IEVtaXQgZGlhZ25vc3RpY3Mgd2hlbiBnbG9iYWwgc2V0LXVwIGNhbGxzIHNraXAsIGFzIGl0IHdp
bGwgbm90IGJlCisgICAgICAgIC8vIGVtaXR0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgVGVzdFJl
c3VsdCYgdGVzdF9yZXN1bHQgPQorICAgICAgICAgICAgKmludGVybmFsOjpHZXRVbml0VGVzdElt
cGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8
IHRlc3RfcmVzdWx0LnRvdGFsX3BhcnRfY291bnQoKTsgKytqKSB7CisgICAgICAgICAgY29uc3Qg
VGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQgPQorICAgICAgICAgICAgICB0ZXN0X3Jl
c3VsdC5HZXRUZXN0UGFydFJlc3VsdChqKTsKKyAgICAgICAgICBpZiAodGVzdF9wYXJ0X3Jlc3Vs
dC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtTa2lwKSB7CisgICAgICAgICAgICBjb25zdCBz
dGQ6OnN0cmluZyYgcmVzdWx0ID0gdGVzdF9wYXJ0X3Jlc3VsdC5tZXNzYWdlKCk7CisgICAgICAg
ICAgICBwcmludGYoIiVzXG4iLCByZXN1bHQuY19zdHIoKSk7CisgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGZmbHVzaChzdGRvdXQpOworICAgICAgfSBlbHNlIGlmICghVGVzdDo6SGFz
RmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAgZm9yIChpbnQgdGVzdF9pbmRleCA9IDA7IHRlc3Rf
aW5kZXggPCB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7CisgICAgICAgICAgICAgdGVzdF9pbmRl
eCsrKSB7CisgICAgICAgICAgR2V0TXV0YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4KS0+UnVuKCk7
CisgICAgICAgICAgaWYgKEdURVNUX0ZMQUcoZmFpbF9mYXN0KSAmJgorICAgICAgICAgICAgICBH
ZXRNdXRhYmxlU3VpdGVDYXNlKHRlc3RfaW5kZXgpLT5GYWlsZWQoKSkgeworICAgICAgICAgICAg
Zm9yIChpbnQgaiA9IHRlc3RfaW5kZXggKyAxOyBqIDwgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
OyBqKyspIHsKKyAgICAgICAgICAgICAgR2V0TXV0YWJsZVN1aXRlQ2FzZShqKS0+U2tpcCgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICB9IGVsc2UgaWYgKFRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIC8v
IElmIHRoZXJlIHdhcyBhIGZhdGFsIGZhaWx1cmUgZHVyaW5nIHRoZSBnbG9iYWwgc2V0dXAgdGhl
biB3ZSBrbm93IHdlCisgICAgICAgIC8vIGFyZW4ndCBnb2luZyB0byBydW4gYW55IHRlc3RzLiBF
eHBsaWNpdGx5IG1hcmsgYWxsIG9mIHRoZSB0ZXN0cyBhcworICAgICAgICAvLyBza2lwcGVkIHRv
IG1ha2UgdGhpcyBvYnZpb3VzIGluIHRoZSBvdXRwdXQuCisgICAgICAgIGZvciAoaW50IHRlc3Rf
aW5kZXggPSAwOyB0ZXN0X2luZGV4IDwgdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOwogICAgICAg
ICAgICAgIHRlc3RfaW5kZXgrKykgewotICAgICAgICAgIEdldE11dGFibGVUZXN0Q2FzZSh0ZXN0
X2luZGV4KS0+UnVuKCk7CisgICAgICAgICAgR2V0TXV0YWJsZVN1aXRlQ2FzZSh0ZXN0X2luZGV4
KS0+U2tpcCgpOwogICAgICAgICB9CiAgICAgICB9CiAKQEAgLTUxODUsNyArNTg3NCw3IEBAIGJv
b2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgICAgIHJlcGVhdGVyLT5PbkVudmly
b25tZW50c1RlYXJEb3duRW5kKCpwYXJlbnRfKTsKICAgICB9CiAKLSAgICBlbGFwc2VkX3RpbWVf
ID0gR2V0VGltZUluTWlsbGlzKCkgLSBzdGFydDsKKyAgICBlbGFwc2VkX3RpbWVfID0gdGltZXIu
RWxhcHNlZCgpOwogCiAgICAgLy8gVGVsbHMgdGhlIHVuaXQgdGVzdCBldmVudCBsaXN0ZW5lciB0
aGF0IHRoZSB0ZXN0cyBoYXZlIGp1c3QgZmluaXNoZWQuCiAgICAgcmVwZWF0ZXItPk9uVGVzdEl0
ZXJhdGlvbkVuZCgqcGFyZW50XywgaSk7CkBAIC01MjEzLDE0ICs1OTAyLDE0IEBAIGJvb2wgVW5p
dFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKIAogICBpZiAoIWd0ZXN0X2lzX2luaXRpYWxpemVk
X2JlZm9yZV9ydW5fYWxsX3Rlc3RzKSB7CiAgICAgQ29sb3JlZFByaW50ZigKLSAgICAgICAgQ09M
T1JfUkVELAorICAgICAgICBHVGVzdENvbG9yOjprUmVkLAogICAgICAgICAiXG5JTVBPUlRBTlQg
Tk9USUNFIC0gRE8gTk9UIElHTk9SRTpcbiIKICAgICAgICAgIlRoaXMgdGVzdCBwcm9ncmFtIGRp
ZCBOT1QgY2FsbCAiIEdURVNUX0lOSVRfR09PR0xFX1RFU1RfTkFNRV8KICAgICAgICAgIigpIGJl
Zm9yZSBjYWxsaW5nIFJVTl9BTExfVEVTVFMoKS4gVGhpcyBpcyBJTlZBTElELiBTb29uICIgR1RF
U1RfTkFNRV8KICAgICAgICAgIiB3aWxsIHN0YXJ0IHRvIGVuZm9yY2UgdGhlIHZhbGlkIHVzYWdl
LiAiCiAgICAgICAgICJQbGVhc2UgZml4IGl0IEFTQVAsIG9yIElUIFdJTEwgU1RBUlQgVE8gRkFJ
TC5cbiIpOyAgLy8gTk9MSU5UCiAjaWYgR1RFU1RfRk9SX0dPT0dMRV8KLSAgICBDb2xvcmVkUHJp
bnRmKENPTE9SX1JFRCwKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsCiAgICAg
ICAgICAgICAgICAgICAiRm9yIG1vcmUgZGV0YWlscywgc2VlIGh0dHA6Ly93aWtpL01haW4vVmFs
aWRHVW5pdE1haW4uXG4iKTsKICNlbmRpZiAgLy8gR1RFU1RfRk9SX0dPT0dMRV8KICAgfQpAQCAt
NTIzNCwxMCArNTkyMywxMCBAQCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAv
LyBiZSBjcmVhdGVkLCBwcmludHMgYW4gZXJyb3IgYW5kIGV4aXRzLgogdm9pZCBXcml0ZVRvU2hh
cmRTdGF0dXNGaWxlSWZOZWVkZWQoKSB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHRlc3Rfc2hhcmRf
ZmlsZSA9IHBvc2l4OjpHZXRFbnYoa1Rlc3RTaGFyZFN0YXR1c0ZpbGUpOwotICBpZiAodGVzdF9z
aGFyZF9maWxlICE9IE5VTEwpIHsKKyAgaWYgKHRlc3Rfc2hhcmRfZmlsZSAhPSBudWxscHRyKSB7
CiAgICAgRklMRSogY29uc3QgZmlsZSA9IHBvc2l4OjpGT3Blbih0ZXN0X3NoYXJkX2ZpbGUsICJ3
Iik7Ci0gICAgaWYgKGZpbGUgPT0gTlVMTCkgewotICAgICAgQ29sb3JlZFByaW50ZihDT0xPUl9S
RUQsCisgICAgaWYgKGZpbGUgPT0gbnVsbHB0cikgeworICAgICAgQ29sb3JlZFByaW50ZihHVGVz
dENvbG9yOjprUmVkLAogICAgICAgICAgICAgICAgICAgICAiQ291bGQgbm90IHdyaXRlIHRvIHRo
ZSB0ZXN0IHNoYXJkIHN0YXR1cyBmaWxlIFwiJXNcIiAiCiAgICAgICAgICAgICAgICAgICAgICJz
cGVjaWZpZWQgYnkgdGhlICVzIGVudmlyb25tZW50IHZhcmlhYmxlLlxuIiwKICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9zaGFyZF9maWxlLCBrVGVzdFNoYXJkU3RhdHVzRmlsZSk7CkBAIC01MjYx
LDggKzU5NTAsOCBAQCBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19l
bnYsCiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLSAgY29uc3QgSW50MzIgdG90YWxfc2hhcmRz
ID0gSW50MzJGcm9tRW52T3JEaWUodG90YWxfc2hhcmRzX2VudiwgLTEpOwotICBjb25zdCBJbnQz
MiBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVudk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEpOwor
ICBjb25zdCBpbnQzMl90IHRvdGFsX3NoYXJkcyA9IEludDMyRnJvbUVudk9yRGllKHRvdGFsX3No
YXJkc19lbnYsIC0xKTsKKyAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRleCA9IEludDMyRnJvbUVu
dk9yRGllKHNoYXJkX2luZGV4X2VudiwgLTEpOwogCiAgIGlmICh0b3RhbF9zaGFyZHMgPT0gLTEg
JiYgc2hhcmRfaW5kZXggPT0gLTEpIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjcxLDcgKzU5
NjAsNyBAQCBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19lbnYsCiAg
ICAgICA8PCAiSW52YWxpZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6IHlvdSBoYXZlICIKICAgICAg
IDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiID0gIiA8PCBzaGFyZF9pbmRleAogICAgICAgPDwgIiwg
YnV0IGhhdmUgbGVmdCAiIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwgIiB1bnNldC5cbiI7Ci0gICAg
Q29sb3JlZFByaW50ZihDT0xPUl9SRUQsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtSZWQsICIlcyIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0
cigpKTsKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgIH0g
ZWxzZSBpZiAodG90YWxfc2hhcmRzICE9IC0xICYmIHNoYXJkX2luZGV4ID09IC0xKSB7CkBAIC01
Mjc5LDcgKzU5NjgsNyBAQCBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJk
c19lbnYsCiAgICAgICA8PCAiSW52YWxpZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6IHlvdSBoYXZl
ICIKICAgICAgIDw8IGtUZXN0VG90YWxTaGFyZHMgPDwgIiA9ICIgPDwgdG90YWxfc2hhcmRzCiAg
ICAgICA8PCAiLCBidXQgaGF2ZSBsZWZ0ICIgPDwga1Rlc3RTaGFyZEluZGV4IDw8ICIgdW5zZXQu
XG4iOwotICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELCBtc2cuR2V0U3RyaW5nKCkuY19zdHIo
KSk7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLCAiJXMiLCBtc2cuR2V0U3Ry
aW5nKCkuY19zdHIoKSk7CiAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgZXhpdChFWElUX0ZBSUxV
UkUpOwogICB9IGVsc2UgaWYgKHNoYXJkX2luZGV4IDwgMCB8fCBzaGFyZF9pbmRleCA+PSB0b3Rh
bF9zaGFyZHMpIHsKQEAgLTUyODgsNyArNTk3Nyw3IEBAIGJvb2wgU2hvdWxkU2hhcmQoY29uc3Qg
Y2hhciogdG90YWxfc2hhcmRzX2VudiwKICAgICAgIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiIDwg
IiA8PCBrVGVzdFRvdGFsU2hhcmRzCiAgICAgICA8PCAiLCBidXQgeW91IGhhdmUgIiA8PCBrVGVz
dFNoYXJkSW5kZXggPDwgIj0iIDw8IHNoYXJkX2luZGV4CiAgICAgICA8PCAiLCAiIDw8IGtUZXN0
VG90YWxTaGFyZHMgPDwgIj0iIDw8IHRvdGFsX3NoYXJkcyA8PCAiLlxuIjsKLSAgICBDb2xvcmVk
UHJpbnRmKENPTE9SX1JFRCwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOworICAgIENvbG9yZWRQ
cmludGYoR1Rlc3RDb2xvcjo6a1JlZCwgIiVzIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwog
ICAgIGZmbHVzaChzdGRvdXQpOwogICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgfQpAQCAtNTI5
OSwxMyArNTk4OCwxMyBAQCBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJk
c19lbnYsCiAvLyBQYXJzZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHZhciBhcyBhbiBJbnQz
Mi4gSWYgaXQgaXMgdW5zZXQsCiAvLyByZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3Qg
YW4gSW50MzIsIHByaW50cyBhbiBlcnJvcgogLy8gYW5kIGFib3J0cy4KLUludDMyIEludDMyRnJv
bUVudk9yRGllKGNvbnN0IGNoYXIqIHZhciwgSW50MzIgZGVmYXVsdF92YWwpIHsKK2ludDMyX3Qg
SW50MzJGcm9tRW52T3JEaWUoY29uc3QgY2hhciogdmFyLCBpbnQzMl90IGRlZmF1bHRfdmFsKSB7
CiAgIGNvbnN0IGNoYXIqIHN0cl92YWwgPSBwb3NpeDo6R2V0RW52KHZhcik7Ci0gIGlmIChzdHJf
dmFsID09IE5VTEwpIHsKKyAgaWYgKHN0cl92YWwgPT0gbnVsbHB0cikgewogICAgIHJldHVybiBk
ZWZhdWx0X3ZhbDsKICAgfQogCi0gIEludDMyIHJlc3VsdDsKKyAgaW50MzJfdCByZXN1bHQ7CiAg
IGlmICghUGFyc2VJbnQzMihNZXNzYWdlKCkgPDwgIlRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2
YXJpYWJsZSAiIDw8IHZhciwKICAgICAgICAgICAgICAgICAgIHN0cl92YWwsICZyZXN1bHQpKSB7
CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwpAQCAtNTMxNCw4ICs2MDAzLDggQEAgSW50MzIgSW50
MzJGcm9tRW52T3JEaWUoY29uc3QgY2hhciogdmFyLCBJbnQzMiBkZWZhdWx0X3ZhbCkgewogfQog
CiAvLyBHaXZlbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNoYXJkcywgdGhlIHNoYXJkIGluZGV4LCBh
bmQgdGhlIHRlc3QgaWQsCi0vLyByZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHNob3VsZCBiZSBy
dW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQgaXMKLS8vIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1
bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0CisvLyByZXR1
cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc2hvdWxkIGJlIHJ1biBvbiB0aGlzIHNo
YXJkLiBUaGUgdGVzdCBpZAorLy8gaXMgc29tZSBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBub24tbmVn
YXRpdmUgaW50ZWdlciBhc3NpZ25lZCB0byBlYWNoIHRlc3QKIC8vIG1ldGhvZC4gQXNzdW1lcyB0
aGF0IDAgPD0gc2hhcmRfaW5kZXggPCB0b3RhbF9zaGFyZHMuCiBib29sIFNob3VsZFJ1blRlc3RP
blNoYXJkKGludCB0b3RhbF9zaGFyZHMsIGludCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpIHsK
ICAgcmV0dXJuICh0ZXN0X2lkICUgdG90YWxfc2hhcmRzKSA9PSBzaGFyZF9pbmRleDsKQEAgLTUz
MjMsMTUgKzYwMTIsMTUgQEAgYm9vbCBTaG91bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hh
cmRzLCBpbnQgc2hhcmRfaW5kZXgsIGludCB0ZXN0X2lkKSB7CiAKIC8vIENvbXBhcmVzIHRoZSBu
YW1lIG9mIGVhY2ggdGVzdCB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0ZXIgdG8KIC8vIGRl
Y2lkZSB3aGV0aGVyIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4sIHRoZW4gcmVjb3JkcyB0aGUgcmVz
dWx0IGluCi0vLyBlYWNoIFRlc3RDYXNlIGFuZCBUZXN0SW5mbyBvYmplY3QuCisvLyBlYWNoIFRl
c3RTdWl0ZSBhbmQgVGVzdEluZm8gb2JqZWN0LgogLy8gSWYgc2hhcmRfdGVzdHMgPT0gdHJ1ZSwg
ZnVydGhlciBmaWx0ZXJzIHRlc3RzIGJhc2VkIG9uIHNoYXJkaW5nCiAvLyB2YXJpYWJsZXMgaW4g
dGhlIGVudmlyb25tZW50IC0gc2VlCiAvLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2ds
ZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzL2FkdmFuY2VkLm1kCiAvLyAuIFJldHVy
bnMgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IHNob3VsZCBydW4uCiBpbnQgVW5pdFRlc3RJbXBs
OjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRpbmcgc2hhcmRfdGVzdHMpIHsKLSAgY29uc3Qg
SW50MzIgdG90YWxfc2hhcmRzID0gc2hhcmRfdGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9D
T0wgPworICBjb25zdCBpbnQzMl90IHRvdGFsX3NoYXJkcyA9IHNoYXJkX3Rlc3RzID09IEhPTk9S
X1NIQVJESU5HX1BST1RPQ09MID8KICAgICAgIEludDMyRnJvbUVudk9yRGllKGtUZXN0VG90YWxT
aGFyZHMsIC0xKSA6IC0xOwotICBjb25zdCBJbnQzMiBzaGFyZF9pbmRleCA9IHNoYXJkX3Rlc3Rz
ID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KKyAgY29uc3QgaW50MzJfdCBzaGFyZF9pbmRl
eCA9IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KICAgICAgIEludDMy
RnJvbUVudk9yRGllKGtUZXN0U2hhcmRJbmRleCwgLTEpIDogLTE7CiAKICAgLy8gbnVtX3J1bm5h
YmxlX3Rlc3RzIGFyZSB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgd2lsbApAQCAtNTM0MCwyNiAr
NjAyOSwyMyBAQCBpbnQgVW5pdFRlc3RJbXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRp
bmcgc2hhcmRfdGVzdHMpIHsKICAgLy8gdGhpcyBzaGFyZC4KICAgaW50IG51bV9ydW5uYWJsZV90
ZXN0cyA9IDA7CiAgIGludCBudW1fc2VsZWN0ZWRfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRlc3RfY2FzZXNfLnNpemUoKTsgaSsrKSB7Ci0gICAgVGVzdENhc2UqIGNvbnN0
IHRlc3RfY2FzZSA9IHRlc3RfY2FzZXNfW2ldOwotICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0
X2Nhc2VfbmFtZSA9IHRlc3RfY2FzZS0+bmFtZSgpOwotICAgIHRlc3RfY2FzZS0+c2V0X3Nob3Vs
ZF9ydW4oZmFsc2UpOworICBmb3IgKGF1dG8qIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlc18pIHsK
KyAgICBjb25zdCBzdGQ6OnN0cmluZyYgdGVzdF9zdWl0ZV9uYW1lID0gdGVzdF9zdWl0ZS0+bmFt
ZSgpOworICAgIHRlc3Rfc3VpdGUtPnNldF9zaG91bGRfcnVuKGZhbHNlKTsKIAotICAgIGZvciAo
c2l6ZV90IGogPSAwOyBqIDwgdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisr
KSB7Ci0gICAgICBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0gdGVzdF9jYXNlLT50ZXN0X2lu
Zm9fbGlzdCgpW2pdOworICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdGVzdF9zdWl0ZS0+dGVz
dF9pbmZvX2xpc3QoKS5zaXplKCk7IGorKykgeworICAgICAgVGVzdEluZm8qIGNvbnN0IHRlc3Rf
aW5mbyA9IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KClbal07CiAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyB0ZXN0X25hbWUodGVzdF9pbmZvLT5uYW1lKCkpOwotICAgICAgLy8gQSB0ZXN0IGlz
IGRpc2FibGVkIGlmIHRlc3QgY2FzZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRjaGVzCisgICAgICAv
LyBBIHRlc3QgaXMgZGlzYWJsZWQgaWYgdGVzdCBzdWl0ZSBuYW1lIG9yIHRlc3QgbmFtZSBtYXRj
aGVzCiAgICAgICAvLyBrRGlzYWJsZVRlc3RGaWx0ZXIuCi0gICAgICBjb25zdCBib29sIGlzX2Rp
c2FibGVkID0KLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmls
dGVyKHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVyKSB8fAotICAgICAgICAgIGludGVybmFs
OjpVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIodGVzdF9uYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rpc2FibGVUZXN0RmlsdGVy
KTsKKyAgICAgIGNvbnN0IGJvb2wgaXNfZGlzYWJsZWQgPSBpbnRlcm5hbDo6VW5pdFRlc3RPcHRp
b25zOjpNYXRjaGVzRmlsdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3N1aXRlX25hbWUsIGtEaXNhYmxlVGVzdEZpbHRlcikgfHwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUsIGtEaXNhYmxlVGVz
dEZpbHRlcik7CiAgICAgICB0ZXN0X2luZm8tPmlzX2Rpc2FibGVkXyA9IGlzX2Rpc2FibGVkOwog
Ci0gICAgICBjb25zdCBib29sIG1hdGNoZXNfZmlsdGVyID0KLSAgICAgICAgICBpbnRlcm5hbDo6
VW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJNYXRjaGVzVGVzdCh0ZXN0X2Nhc2VfbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25h
bWUpOworICAgICAgY29uc3QgYm9vbCBtYXRjaGVzX2ZpbHRlciA9IGludGVybmFsOjpVbml0VGVz
dE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0KAorICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwg
dGVzdF9uYW1lKTsKICAgICAgIHRlc3RfaW5mby0+bWF0Y2hlc19maWx0ZXJfID0gbWF0Y2hlc19m
aWx0ZXI7CiAKICAgICAgIGNvbnN0IGJvb2wgaXNfcnVubmFibGUgPQpAQCAtNTM3Niw3ICs2MDYy
LDcgQEAgaW50IFVuaXRUZXN0SW1wbDo6RmlsdGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNo
YXJkX3Rlc3RzKSB7CiAgICAgICBudW1fc2VsZWN0ZWRfdGVzdHMgKz0gaXNfc2VsZWN0ZWQ7CiAK
ICAgICAgIHRlc3RfaW5mby0+c2hvdWxkX3J1bl8gPSBpc19zZWxlY3RlZDsKLSAgICAgIHRlc3Rf
Y2FzZS0+c2V0X3Nob3VsZF9ydW4odGVzdF9jYXNlLT5zaG91bGRfcnVuKCkgfHwgaXNfc2VsZWN0
ZWQpOworICAgICAgdGVzdF9zdWl0ZS0+c2V0X3Nob3VsZF9ydW4odGVzdF9zdWl0ZS0+c2hvdWxk
X3J1bigpIHx8IGlzX3NlbGVjdGVkKTsKICAgICB9CiAgIH0KICAgcmV0dXJuIG51bV9zZWxlY3Rl
ZF90ZXN0czsKQEAgLTUzODcsNyArNjA3Myw3IEBAIGludCBVbml0VGVzdEltcGw6OkZpbHRlclRl
c3RzKFJlYWN0aW9uVG9TaGFyZGluZyBzaGFyZF90ZXN0cykgewogLy8gbWF4X2xlbmd0aCBjaGFy
YWN0ZXJzLCBvbmx5IHByaW50cyB0aGUgZmlyc3QgbWF4X2xlbmd0aCBjaGFyYWN0ZXJzCiAvLyBh
bmQgIi4uLiIuCiBzdGF0aWMgdm9pZCBQcmludE9uT25lTGluZShjb25zdCBjaGFyKiBzdHIsIGlu
dCBtYXhfbGVuZ3RoKSB7Ci0gIGlmIChzdHIgIT0gTlVMTCkgeworICBpZiAoc3RyICE9IG51bGxw
dHIpIHsKICAgICBmb3IgKGludCBpID0gMDsgKnN0ciAhPSAnXDAnOyArK3N0cikgewogICAgICAg
aWYgKGkgPj0gbWF4X2xlbmd0aCkgewogICAgICAgICBwcmludGYoIi4uLiIpOwpAQCAtNTQwOSwy
NyArNjA5NSwyNSBAQCB2b2lkIFVuaXRUZXN0SW1wbDo6TGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIo
KSB7CiAgIC8vIFByaW50IGF0IG1vc3QgdGhpcyBtYW55IGNoYXJhY3RlcnMgZm9yIGVhY2ggdHlw
ZS92YWx1ZSBwYXJhbWV0ZXIuCiAgIGNvbnN0IGludCBrTWF4UGFyYW1MZW5ndGggPSAyNTA7CiAK
LSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAg
IGNvbnN0IFRlc3RDYXNlKiBjb25zdCB0ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2VzX1tpXTsKLSAgICBi
b29sIHByaW50ZWRfdGVzdF9jYXNlX25hbWUgPSBmYWxzZTsKKyAgZm9yIChhdXRvKiB0ZXN0X3N1
aXRlIDogdGVzdF9zdWl0ZXNfKSB7CisgICAgYm9vbCBwcmludGVkX3Rlc3Rfc3VpdGVfbmFtZSA9
IGZhbHNlOwogCi0gICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB0ZXN0X2Nhc2UtPnRlc3RfaW5m
b19saXN0KCkuc2l6ZSgpOyBqKyspIHsKLSAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0
X2luZm8gPQotICAgICAgICAgIHRlc3RfY2FzZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsKKyAgICBm
b3IgKHNpemVfdCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgp
OyBqKyspIHsKKyAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1
aXRlLT50ZXN0X2luZm9fbGlzdCgpW2pdOwogICAgICAgaWYgKHRlc3RfaW5mby0+bWF0Y2hlc19m
aWx0ZXJfKSB7Ci0gICAgICAgIGlmICghcHJpbnRlZF90ZXN0X2Nhc2VfbmFtZSkgewotICAgICAg
ICAgIHByaW50ZWRfdGVzdF9jYXNlX25hbWUgPSB0cnVlOwotICAgICAgICAgIHByaW50ZigiJXMu
IiwgdGVzdF9jYXNlLT5uYW1lKCkpOwotICAgICAgICAgIGlmICh0ZXN0X2Nhc2UtPnR5cGVfcGFy
YW0oKSAhPSBOVUxMKSB7CisgICAgICAgIGlmICghcHJpbnRlZF90ZXN0X3N1aXRlX25hbWUpIHsK
KyAgICAgICAgICBwcmludGVkX3Rlc3Rfc3VpdGVfbmFtZSA9IHRydWU7CisgICAgICAgICAgcHJp
bnRmKCIlcy4iLCB0ZXN0X3N1aXRlLT5uYW1lKCkpOworICAgICAgICAgIGlmICh0ZXN0X3N1aXRl
LT50eXBlX3BhcmFtKCkgIT0gbnVsbHB0cikgewogICAgICAgICAgICAgcHJpbnRmKCIgICMgJXMg
PSAiLCBrVHlwZVBhcmFtTGFiZWwpOwogICAgICAgICAgICAgLy8gV2UgcHJpbnQgdGhlIHR5cGUg
cGFyYW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUgdG8gbWFrZQogICAgICAgICAgICAgLy8gdGhlIG91
dHB1dCBlYXN5IHRvIHBhcnNlIGJ5IGEgcHJvZ3JhbS4KLSAgICAgICAgICAgIFByaW50T25PbmVM
aW5lKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1MZW5ndGgpOworICAgICAgICAg
ICAgUHJpbnRPbk9uZUxpbmUodGVzdF9zdWl0ZS0+dHlwZV9wYXJhbSgpLCBrTWF4UGFyYW1MZW5n
dGgpOwogICAgICAgICAgIH0KICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAg
ICAgICAgcHJpbnRmKCIgICVzIiwgdGVzdF9pbmZvLT5uYW1lKCkpOwotICAgICAgICBpZiAodGVz
dF9pbmZvLT52YWx1ZV9wYXJhbSgpICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHRlc3RfaW5mby0+
dmFsdWVfcGFyYW0oKSAhPSBudWxscHRyKSB7CiAgICAgICAgICAgcHJpbnRmKCIgICMgJXMgPSAi
LCBrVmFsdWVQYXJhbUxhYmVsKTsKICAgICAgICAgICAvLyBXZSBwcmludCB0aGUgdmFsdWUgcGFy
YW1ldGVyIG9uIGEgc2luZ2xlIGxpbmUgdG8gbWFrZSB0aGUKICAgICAgICAgICAvLyBvdXRwdXQg
ZWFzeSB0byBwYXJzZSBieSBhIHByb2dyYW0uCkBAIC01NDQ4LDExICs2MTMyLDExIEBAIHZvaWQg
VW5pdFRlc3RJbXBsOjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigpIHsKICAgICBpZiAob3V0cHV0
X2Zvcm1hdCA9PSAieG1sIikgewogICAgICAgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyKAogICAg
ICAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkuY19z
dHIoKSkKLSAgICAgICAgICAuUHJpbnRYbWxUZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9jYXNlc18p
OworICAgICAgICAgIC5QcmludFhtbFRlc3RzTGlzdCgmc3RyZWFtLCB0ZXN0X3N1aXRlc18pOwog
ICAgIH0gZWxzZSBpZiAob3V0cHV0X2Zvcm1hdCA9PSAianNvbiIpIHsKICAgICAgIEpzb25Vbml0
VGVzdFJlc3VsdFByaW50ZXIoCiAgICAgICAgICAgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0
ZVBhdGhUb091dHB1dEZpbGUoKS5jX3N0cigpKQotICAgICAgICAgIC5QcmludEpzb25UZXN0TGlz
dCgmc3RyZWFtLCB0ZXN0X2Nhc2VzXyk7CisgICAgICAgICAgLlByaW50SnNvblRlc3RMaXN0KCZz
dHJlYW0sIHRlc3Rfc3VpdGVzXyk7CiAgICAgfQogICAgIGZwcmludGYoZmlsZW91dCwgIiVzIiwg
U3RyaW5nU3RyZWFtVG9TdHJpbmcoJnN0cmVhbSkuY19zdHIoKSk7CiAgICAgZmNsb3NlKGZpbGVv
dXQpOwpAQCAtNTQ3Niw3ICs2MTYwLDcgQEAgdm9pZCBVbml0VGVzdEltcGw6OnNldF9vc19zdGFj
a190cmFjZV9nZXR0ZXIoCiAvLyBvdGhlcndpc2UsIGNyZWF0ZXMgYW4gT3NTdGFja1RyYWNlR2V0
dGVyLCBtYWtlcyBpdCB0aGUgY3VycmVudAogLy8gZ2V0dGVyLCBhbmQgcmV0dXJucyBpdC4KIE9z
U3RhY2tUcmFjZUdldHRlckludGVyZmFjZSogVW5pdFRlc3RJbXBsOjpvc19zdGFja190cmFjZV9n
ZXR0ZXIoKSB7Ci0gIGlmIChvc19zdGFja190cmFjZV9nZXR0ZXJfID09IE5VTEwpIHsKKyAgaWYg
KG9zX3N0YWNrX3RyYWNlX2dldHRlcl8gPT0gbnVsbHB0cikgewogI2lmZGVmIEdURVNUX09TX1NU
QUNLX1RSQUNFX0dFVFRFUl8KICAgICBvc19zdGFja190cmFjZV9nZXR0ZXJfID0gbmV3IEdURVNU
X09TX1NUQUNLX1RSQUNFX0dFVFRFUl87CiAjZWxzZQpAQCAtNTQ4OSwzOCArNjE3MywzOCBAQCBP
c1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2UqIFVuaXRUZXN0SW1wbDo6b3Nfc3RhY2tfdHJhY2Vf
Z2V0dGVyKCkgewogCiAvLyBSZXR1cm5zIHRoZSBtb3N0IHNwZWNpZmljIFRlc3RSZXN1bHQgY3Vy
cmVudGx5IHJ1bm5pbmcuCiBUZXN0UmVzdWx0KiBVbml0VGVzdEltcGw6OmN1cnJlbnRfdGVzdF9y
ZXN1bHQoKSB7Ci0gIGlmIChjdXJyZW50X3Rlc3RfaW5mb18gIT0gTlVMTCkgeworICBpZiAoY3Vy
cmVudF90ZXN0X2luZm9fICE9IG51bGxwdHIpIHsKICAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9p
bmZvXy0+cmVzdWx0XzsKICAgfQotICBpZiAoY3VycmVudF90ZXN0X2Nhc2VfICE9IE5VTEwpIHsK
LSAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9jYXNlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0XzsKKyAg
aWYgKGN1cnJlbnRfdGVzdF9zdWl0ZV8gIT0gbnVsbHB0cikgeworICAgIHJldHVybiAmY3VycmVu
dF90ZXN0X3N1aXRlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0XzsKICAgfQogICByZXR1cm4gJmFkX2hv
Y190ZXN0X3Jlc3VsdF87CiB9CiAKLS8vIFNodWZmbGVzIGFsbCB0ZXN0IGNhc2VzLCBhbmQgdGhl
IHRlc3RzIHdpdGhpbiBlYWNoIHRlc3QgY2FzZSwKKy8vIFNodWZmbGVzIGFsbCB0ZXN0IHN1aXRl
cywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0ZXN0IHN1aXRlLAogLy8gbWFraW5nIHN1cmUg
dGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3RpbGwgcnVuIGZpcnN0Lgogdm9pZCBVbml0VGVzdEltcGw6
OlNodWZmbGVUZXN0cygpIHsKLSAgLy8gU2h1ZmZsZXMgdGhlIGRlYXRoIHRlc3QgY2FzZXMuCi0g
IFNodWZmbGVSYW5nZShyYW5kb20oKSwgMCwgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfICsgMSwgJnRl
c3RfY2FzZV9pbmRpY2VzXyk7CisgIC8vIFNodWZmbGVzIHRoZSBkZWF0aCB0ZXN0IHN1aXRlcy4K
KyAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgpLCAwLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVfICsgMSwg
JnRlc3Rfc3VpdGVfaW5kaWNlc18pOwogCi0gIC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGggdGVz
dCBjYXNlcy4KLSAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3RfY2FzZV8g
KyAxLAotICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X2Nhc2VzXy5zaXplKCkp
LCAmdGVzdF9jYXNlX2luZGljZXNfKTsKKyAgLy8gU2h1ZmZsZXMgdGhlIG5vbi1kZWF0aCB0ZXN0
IHN1aXRlcy4KKyAgU2h1ZmZsZVJhbmdlKHJhbmRvbSgpLCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVf
ICsgMSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4odGVzdF9zdWl0ZXNfLnNpemUo
KSksICZ0ZXN0X3N1aXRlX2luZGljZXNfKTsKIAotICAvLyBTaHVmZmxlcyB0aGUgdGVzdHMgaW5z
aWRlIGVhY2ggdGVzdCBjYXNlLgotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXNf
LnNpemUoKTsgaSsrKSB7Ci0gICAgdGVzdF9jYXNlc19baV0tPlNodWZmbGVUZXN0cyhyYW5kb20o
KSk7CisgIC8vIFNodWZmbGVzIHRoZSB0ZXN0cyBpbnNpZGUgZWFjaCB0ZXN0IHN1aXRlLgorICBm
b3IgKGF1dG8mIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlc18pIHsKKyAgICB0ZXN0X3N1aXRlLT5T
aHVmZmxlVGVzdHMocmFuZG9tKCkpOwogICB9CiB9CiAKLS8vIFJlc3RvcmVzIHRoZSB0ZXN0IGNh
c2VzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCisv
LyBSZXN0b3JlcyB0aGUgdGVzdCBzdWl0ZXMgYW5kIHRlc3RzIHRvIHRoZWlyIG9yZGVyIGJlZm9y
ZSB0aGUgZmlyc3Qgc2h1ZmZsZS4KIHZvaWQgVW5pdFRlc3RJbXBsOjpVbnNodWZmbGVUZXN0cygp
IHsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewot
ICAgIC8vIFVuc2h1ZmZsZXMgdGhlIHRlc3RzIGluIGVhY2ggdGVzdCBjYXNlLgotICAgIHRlc3Rf
Y2FzZXNfW2ldLT5VbnNodWZmbGVUZXN0cygpOwotICAgIC8vIFJlc2V0cyB0aGUgaW5kZXggb2Yg
ZWFjaCB0ZXN0IGNhc2UuCi0gICAgdGVzdF9jYXNlX2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8
aW50PihpKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlc18uc2l6ZSgpOyBp
KyspIHsKKyAgICAvLyBVbnNodWZmbGVzIHRoZSB0ZXN0cyBpbiBlYWNoIHRlc3Qgc3VpdGUuCisg
ICAgdGVzdF9zdWl0ZXNfW2ldLT5VbnNodWZmbGVUZXN0cygpOworICAgIC8vIFJlc2V0cyB0aGUg
aW5kZXggb2YgZWFjaCB0ZXN0IHN1aXRlLgorICAgIHRlc3Rfc3VpdGVfaW5kaWNlc19baV0gPSBz
dGF0aWNfY2FzdDxpbnQ+KGkpOwogICB9CiB9CiAKQEAgLTU1NzksMTIgKzYyNjMsMTIgQEAgYm9v
bCBTa2lwUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgY2hhcioqIHBzdHIpIHsKIHN0
YXRpYyBjb25zdCBjaGFyKiBQYXJzZUZsYWdWYWx1ZShjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNo
YXIqIGZsYWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZfb3B0
aW9uYWwpIHsKICAgLy8gc3RyIGFuZCBmbGFnIG11c3Qgbm90IGJlIE5VTEwuCi0gIGlmIChzdHIg
PT0gTlVMTCB8fCBmbGFnID09IE5VTEwpIHJldHVybiBOVUxMOworICBpZiAoc3RyID09IG51bGxw
dHIgfHwgZmxhZyA9PSBudWxscHRyKSByZXR1cm4gbnVsbHB0cjsKIAogICAvLyBUaGUgZmxhZyBt
dXN0IHN0YXJ0IHdpdGggIi0tIiBmb2xsb3dlZCBieSBHVEVTVF9GTEFHX1BSRUZJWF8uCiAgIGNv
bnN0IHN0ZDo6c3RyaW5nIGZsYWdfc3RyID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFH
X1BSRUZJWF8gKyBmbGFnOwogICBjb25zdCBzaXplX3QgZmxhZ19sZW4gPSBmbGFnX3N0ci5sZW5n
dGgoKTsKLSAgaWYgKHN0cm5jbXAoc3RyLCBmbGFnX3N0ci5jX3N0cigpLCBmbGFnX2xlbikgIT0g
MCkgcmV0dXJuIE5VTEw7CisgIGlmIChzdHJuY21wKHN0ciwgZmxhZ19zdHIuY19zdHIoKSwgZmxh
Z19sZW4pICE9IDApIHJldHVybiBudWxscHRyOwogCiAgIC8vIFNraXBzIHRoZSBmbGFnIG5hbWUu
CiAgIGNvbnN0IGNoYXIqIGZsYWdfZW5kID0gc3RyICsgZmxhZ19sZW47CkBAIC01NTk3LDcgKzYy
ODEsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogUGFyc2VGbGFnVmFsdWUoY29uc3QgY2hhciogc3Ry
LCBjb25zdCBjaGFyKiBmbGFnLAogICAvLyBJZiBkZWZfb3B0aW9uYWwgaXMgdHJ1ZSBhbmQgdGhl
cmUgYXJlIG1vcmUgY2hhcmFjdGVycyBhZnRlciB0aGUKICAgLy8gZmxhZyBuYW1lLCBvciBpZiBk
ZWZfb3B0aW9uYWwgaXMgZmFsc2UsIHRoZXJlIG11c3QgYmUgYSAnPScgYWZ0ZXIKICAgLy8gdGhl
IGZsYWcgbmFtZS4KLSAgaWYgKGZsYWdfZW5kWzBdICE9ICc9JykgcmV0dXJuIE5VTEw7CisgIGlm
IChmbGFnX2VuZFswXSAhPSAnPScpIHJldHVybiBudWxscHRyOwogCiAgIC8vIFJldHVybnMgdGhl
IHN0cmluZyBhZnRlciAiPSIuCiAgIHJldHVybiBmbGFnX2VuZCArIDE7CkBAIC01NjE4LDMyICs2
MzAyLDMwIEBAIHN0YXRpYyBib29sIFBhcnNlQm9vbEZsYWcoY29uc3QgY2hhciogc3RyLCBjb25z
dCBjaGFyKiBmbGFnLCBib29sKiB2YWx1ZSkgewogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZV9z
dHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIsIGZsYWcsIHRydWUpOwogCiAgIC8vIEFib3J0cyBpZiB0
aGUgcGFyc2luZyBmYWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZhbHNl
OworICBpZiAodmFsdWVfc3RyID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICAvLyBDb252
ZXJ0cyB0aGUgc3RyaW5nIHZhbHVlIHRvIGEgYm9vbC4KICAgKnZhbHVlID0gISgqdmFsdWVfc3Ry
ID09ICcwJyB8fCAqdmFsdWVfc3RyID09ICdmJyB8fCAqdmFsdWVfc3RyID09ICdGJyk7CiAgIHJl
dHVybiB0cnVlOwogfQogCi0vLyBQYXJzZXMgYSBzdHJpbmcgZm9yIGFuIEludDMyIGZsYWcsIGlu
IHRoZSBmb3JtIG9mCi0vLyAiLS1mbGFnPXZhbHVlIi4KKy8vIFBhcnNlcyBhIHN0cmluZyBmb3Ig
YW4gaW50MzJfdCBmbGFnLCBpbiB0aGUgZm9ybSBvZiAiLS1mbGFnPXZhbHVlIi4KIC8vCiAvLyBP
biBzdWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJl
dHVybnMKIC8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdp
bmcgKnZhbHVlLgotYm9vbCBQYXJzZUludDMyRmxhZyhjb25zdCBjaGFyKiBzdHIsIGNvbnN0IGNo
YXIqIGZsYWcsIEludDMyKiB2YWx1ZSkgeworYm9vbCBQYXJzZUludDMyRmxhZyhjb25zdCBjaGFy
KiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIGludDMyX3QqIHZhbHVlKSB7CiAgIC8vIEdldHMgdGhl
IHZhbHVlIG9mIHRoZSBmbGFnIGFzIGEgc3RyaW5nLgogICBjb25zdCBjaGFyKiBjb25zdCB2YWx1
ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIsIGZsYWcsIGZhbHNlKTsKIAogICAvLyBBYm9ydHMg
aWYgdGhlIHBhcnNpbmcgZmFpbGVkLgotICBpZiAodmFsdWVfc3RyID09IE5VTEwpIHJldHVybiBm
YWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9PSBudWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgLy8g
U2V0cyAqdmFsdWUgdG8gdGhlIHZhbHVlIG9mIHRoZSBmbGFnLgogICByZXR1cm4gUGFyc2VJbnQz
MihNZXNzYWdlKCkgPDwgIlRoZSB2YWx1ZSBvZiBmbGFnIC0tIiA8PCBmbGFnLAogICAgICAgICAg
ICAgICAgICAgICB2YWx1ZV9zdHIsIHZhbHVlKTsKIH0KIAotLy8gUGFyc2VzIGEgc3RyaW5nIGZv
ciBhIHN0cmluZyBmbGFnLCBpbiB0aGUgZm9ybSBvZgotLy8gIi0tZmxhZz12YWx1ZSIuCisvLyBQ
YXJzZXMgYSBzdHJpbmcgZm9yIGEgc3RyaW5nIGZsYWcsIGluIHRoZSBmb3JtIG9mICItLWZsYWc9
dmFsdWUiLgogLy8KIC8vIE9uIHN1Y2Nlc3MsIHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGZsYWcg
aW4gKnZhbHVlLCBhbmQgcmV0dXJucwogLy8gdHJ1ZS4gIE9uIGZhaWx1cmUsIHJldHVybnMgZmFs
c2Ugd2l0aG91dCBjaGFuZ2luZyAqdmFsdWUuCkBAIC01NjUzLDcgKzYzMzUsNyBAQCBzdGF0aWMg
Ym9vbCBQYXJzZVN0cmluZ0ZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBT
dHJpbmcqIHZhbHVlKSB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlX3N0ciA9IFBhcnNlRmxh
Z1ZhbHVlKHN0ciwgZmxhZywgZmFsc2UpOwogCiAgIC8vIEFib3J0cyBpZiB0aGUgcGFyc2luZyBm
YWlsZWQuCi0gIGlmICh2YWx1ZV9zdHIgPT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAodmFs
dWVfc3RyID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICAvLyBTZXRzICp2YWx1ZSB0byB0
aGUgdmFsdWUgb2YgdGhlIGZsYWcuCiAgICp2YWx1ZSA9IHZhbHVlX3N0cjsKQEAgLTU2ODQsMTAg
KzYzNjYsOCBAQCBzdGF0aWMgYm9vbCBIYXNHb29nbGVUZXN0RmxhZ1ByZWZpeChjb25zdCBjaGFy
KiBzdHIpIHsKIC8vICAgQFkgICAgY2hhbmdlcyB0aGUgY29sb3IgdG8geWVsbG93LgogLy8gICBA
RCAgICBjaGFuZ2VzIHRvIHRoZSBkZWZhdWx0IHRlcm1pbmFsIHRleHQgY29sb3IuCiAvLwotLy8g
RklYTUU6IFdyaXRlIHRlc3RzIGZvciB0aGlzIG9uY2Ugd2UgYWRkIHN0ZG91dAotLy8gY2FwdHVy
aW5nIHRvIEdvb2dsZSBUZXN0Lgogc3RhdGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3Qg
Y2hhciogc3RyKSB7Ci0gIEdUZXN0Q29sb3IgY29sb3IgPSBDT0xPUl9ERUZBVUxUOyAgLy8gVGhl
IGN1cnJlbnQgY29sb3IuCisgIEdUZXN0Q29sb3IgY29sb3IgPSBHVGVzdENvbG9yOjprRGVmYXVs
dDsgIC8vIFRoZSBjdXJyZW50IGNvbG9yLgogCiAgIC8vIENvbmNlcHR1YWxseSwgd2Ugc3BsaXQg
dGhlIHN0cmluZyBpbnRvIHNlZ21lbnRzIGRpdmlkZWQgYnkgZXNjYXBlCiAgIC8vIHNlcXVlbmNl
cy4gIFRoZW4gd2UgcHJpbnQgb25lIHNlZ21lbnQgYXQgYSB0aW1lLiAgQXQgdGhlIGVuZCBvZgpA
QCAtNTY5NSw3ICs2Mzc1LDcgQEAgc3RhdGljIHZvaWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3Qg
Y2hhciogc3RyKSB7CiAgIC8vIG5leHQgc2VnbWVudC4KICAgZm9yICg7OykgewogICAgIGNvbnN0
IGNoYXIqIHAgPSBzdHJjaHIoc3RyLCAnQCcpOwotICAgIGlmIChwID09IE5VTEwpIHsKKyAgICBp
ZiAocCA9PSBudWxscHRyKSB7CiAgICAgICBDb2xvcmVkUHJpbnRmKGNvbG9yLCAiJXMiLCBzdHIp
OwogICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU3MDcsMTMgKzYzODcsMTMgQEAgc3RhdGljIHZv
aWQgUHJpbnRDb2xvckVuY29kZWQoY29uc3QgY2hhciogc3RyKSB7CiAgICAgaWYgKGNoID09ICdA
JykgewogICAgICAgQ29sb3JlZFByaW50Zihjb2xvciwgIkAiKTsKICAgICB9IGVsc2UgaWYgKGNo
ID09ICdEJykgewotICAgICAgY29sb3IgPSBDT0xPUl9ERUZBVUxUOworICAgICAgY29sb3IgPSBH
VGVzdENvbG9yOjprRGVmYXVsdDsKICAgICB9IGVsc2UgaWYgKGNoID09ICdSJykgewotICAgICAg
Y29sb3IgPSBDT0xPUl9SRUQ7CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6OmtSZWQ7CiAgICAg
fSBlbHNlIGlmIChjaCA9PSAnRycpIHsKLSAgICAgIGNvbG9yID0gQ09MT1JfR1JFRU47CisgICAg
ICBjb2xvciA9IEdUZXN0Q29sb3I6OmtHcmVlbjsKICAgICB9IGVsc2UgaWYgKGNoID09ICdZJykg
ewotICAgICAgY29sb3IgPSBDT0xPUl9ZRUxMT1c7CisgICAgICBjb2xvciA9IEdUZXN0Q29sb3I6
OmtZZWxsb3c7CiAgICAgfSBlbHNlIHsKICAgICAgIC0tc3RyOwogICAgIH0KQEAgLTU3MjEsOTgg
KzY0MDEsMTI2IEBAIHN0YXRpYyB2b2lkIFByaW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0
cikgewogfQogCiBzdGF0aWMgY29uc3QgY2hhciBrQ29sb3JFbmNvZGVkSGVscE1lc3NhZ2VbXSA9
Ci0iVGhpcyBwcm9ncmFtIGNvbnRhaW5zIHRlc3RzIHdyaXR0ZW4gdXNpbmcgIiBHVEVTVF9OQU1F
XyAiLiBZb3UgY2FuIHVzZSB0aGVcbiIKLSJmb2xsb3dpbmcgY29tbWFuZCBsaW5lIGZsYWdzIHRv
IGNvbnRyb2wgaXRzIGJlaGF2aW9yOlxuIgotIlxuIgotIlRlc3QgU2VsZWN0aW9uOlxuIgotIiAg
QEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJsaXN0X3Rlc3RzQERcbiIKLSIgICAgICBMaXN0IHRo
ZSBuYW1lcyBvZiBhbGwgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIHRoZW0uIFRoZSBuYW1lIG9m
XG4iCi0iICAgICAgVEVTVChGb28sIEJhcikgaXMgXCJGb28uQmFyXCIuXG4iCi0iICBARy0tIiBH
VEVTVF9GTEFHX1BSRUZJWF8gImZpbHRlcj1AWVBPU1RJVkVfUEFUVEVSTlMiCisgICAgIlRoaXMg
cHJvZ3JhbSBjb250YWlucyB0ZXN0cyB3cml0dGVuIHVzaW5nICIgR1RFU1RfTkFNRV8KKyAgICAi
LiBZb3UgY2FuIHVzZSB0aGVcbiIKKyAgICAiZm9sbG93aW5nIGNvbW1hbmQgbGluZSBmbGFncyB0
byBjb250cm9sIGl0cyBiZWhhdmlvcjpcbiIKKyAgICAiXG4iCisgICAgIlRlc3QgU2VsZWN0aW9u
OlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJsaXN0X3Rlc3RzQERc
biIKKyAgICAiICAgICAgTGlzdCB0aGUgbmFtZXMgb2YgYWxsIHRlc3RzIGluc3RlYWQgb2YgcnVu
bmluZyB0aGVtLiBUaGUgbmFtZSBvZlxuIgorICAgICIgICAgICBURVNUKEZvbywgQmFyKSBpcyBc
IkZvby5CYXJcIi5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZmls
dGVyPUBZUE9TSVRJVkVfUEFUVEVSTlMiCiAgICAgIltARy1AWU5FR0FUSVZFX1BBVFRFUk5TXUBE
XG4iCi0iICAgICAgUnVuIG9ubHkgdGhlIHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2Yg
dGhlIHBvc2l0aXZlIHBhdHRlcm5zIGJ1dFxuIgotIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0aXZl
IHBhdHRlcm5zLiAnPycgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlcjsgJyonXG4iCi0iICAg
ICAgbWF0Y2hlcyBhbnkgc3Vic3RyaW5nOyAnOicgc2VwYXJhdGVzIHR3byBwYXR0ZXJucy5cbiIK
LSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHNARFxu
IgotIiAgICAgIFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMgdG9vLlxuIgotIlxuIgotIlRlc3QgRXhl
Y3V0aW9uOlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJyZXBlYXQ9QFlbQ09VTlRd
QERcbiIKLSIgICAgICBSdW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBhIG5lZ2F0aXZlIGNv
dW50IHRvIHJlcGVhdCBmb3JldmVyLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJz
aHVmZmxlQERcbiIKLSIgICAgICBSYW5kb21pemUgdGVzdHMnIG9yZGVycyBvbiBldmVyeSBpdGVy
YXRpb24uXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gInJhbmRvbV9zZWVkPUBZW05V
TUJFUl1ARFxuIgotIiAgICAgIFJhbmRvbSBudW1iZXIgc2VlZCB0byB1c2UgZm9yIHNodWZmbGlu
ZyB0ZXN0IG9yZGVycyAoYmV0d2VlbiAxIGFuZFxuIgotIiAgICAgIDk5OTk5LCBvciAwIHRvIHVz
ZSBhIHNlZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSkuXG4iCi0iXG4iCi0iVGVzdCBPdXRw
dXQ6XG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImNvbG9yPUBZKEBHeWVzQFl8QEdu
b0BZfEBHYXV0b0BZKUBEXG4iCi0iICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBvdXRwdXQu
IFRoZSBkZWZhdWx0IGlzIEBHYXV0b0BELlxuIgotIiAgLUBHLSIgR1RFU1RfRkxBR19QUkVGSVhf
ICJwcmludF90aW1lPTBARFxuIgotIiAgICAgIERvbid0IHByaW50IHRoZSBlbGFwc2VkIHRpbWUg
b2YgZWFjaCB0ZXN0LlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJvdXRwdXQ9QFko
QEdqc29uQFl8QEd4bWxAWSlbQEc6QFlESVJFQ1RPUllfUEFUSEBHIgotICAgIEdURVNUX1BBVEhf
U0VQXyAiQFl8QEc6QFlGSUxFX1BBVEhdQERcbiIKLSIgICAgICBHZW5lcmF0ZSBhIEpTT04gb3Ig
WE1MIHJlcG9ydCBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IG9yIHdpdGggdGhlIGdpdmVuXG4iCi0i
ICAgICAgZmlsZSBuYW1lLiBAWUZJTEVfUEFUSEBEIGRlZmF1bHRzIHRvIEBHdGVzdF9kZXRhaWxz
LnhtbEBELlxuIgorICAgICIgICAgICBSdW4gb25seSB0aGUgdGVzdHMgd2hvc2UgbmFtZSBtYXRj
aGVzIG9uZSBvZiB0aGUgcG9zaXRpdmUgcGF0dGVybnMgIgorICAgICJidXRcbiIKKyAgICAiICAg
ICAgbm9uZSBvZiB0aGUgbmVnYXRpdmUgcGF0dGVybnMuICc/JyBtYXRjaGVzIGFueSBzaW5nbGUg
Y2hhcmFjdGVyOyAiCisgICAgIicqJ1xuIgorICAgICIgICAgICBtYXRjaGVzIGFueSBzdWJzdHJp
bmc7ICc6JyBzZXBhcmF0ZXMgdHdvIHBhdHRlcm5zLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZM
QUdfUFJFRklYXworICAgICJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0c0BEXG4iCisgICAgIiAgICAg
IFJ1biBhbGwgZGlzYWJsZWQgdGVzdHMgdG9vLlxuIgorICAgICJcbiIKKyAgICAiVGVzdCBFeGVj
dXRpb246XG4iCisgICAgIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCisgICAgInJlcGVhdD1A
WVtDT1VOVF1ARFxuIgorICAgICIgICAgICBSdW4gdGhlIHRlc3RzIHJlcGVhdGVkbHk7IHVzZSBh
IG5lZ2F0aXZlIGNvdW50IHRvIHJlcGVhdCBmb3JldmVyLlxuIgorICAgICIgIEBHLS0iIEdURVNU
X0ZMQUdfUFJFRklYXworICAgICJzaHVmZmxlQERcbiIKKyAgICAiICAgICAgUmFuZG9taXplIHRl
c3RzJyBvcmRlcnMgb24gZXZlcnkgaXRlcmF0aW9uLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZM
QUdfUFJFRklYXworICAgICJyYW5kb21fc2VlZD1AWVtOVU1CRVJdQERcbiIKKyAgICAiICAgICAg
UmFuZG9tIG51bWJlciBzZWVkIHRvIHVzZSBmb3Igc2h1ZmZsaW5nIHRlc3Qgb3JkZXJzIChiZXR3
ZWVuIDEgYW5kXG4iCisgICAgIiAgICAgIDk5OTk5LCBvciAwIHRvIHVzZSBhIHNlZWQgYmFzZWQg
b24gdGhlIGN1cnJlbnQgdGltZSkuXG4iCisgICAgIlxuIgorICAgICJUZXN0IE91dHB1dDpcbiIK
KyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiY29sb3I9QFkoQEd5ZXNAWXxA
R25vQFl8QEdhdXRvQFkpQERcbiIKKyAgICAiICAgICAgRW5hYmxlL2Rpc2FibGUgY29sb3JlZCBv
dXRwdXQuIFRoZSBkZWZhdWx0IGlzIEBHYXV0b0BELlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZM
QUdfUFJFRklYXworICAgICJicmllZj0xQERcbiIKKyAgICAiICAgICAgT25seSBwcmludCB0ZXN0
IGZhaWx1cmVzLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJwcmlu
dF90aW1lPTBARFxuIgorICAgICIgICAgICBEb24ndCBwcmludCB0aGUgZWxhcHNlZCB0aW1lIG9m
IGVhY2ggdGVzdC5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAib3V0
cHV0PUBZKEBHanNvbkBZfEBHeG1sQFkpW0BHOkBZRElSRUNUT1JZX1BBVEhARyIgR1RFU1RfUEFU
SF9TRVBfCisgICAgIkBZfEBHOkBZRklMRV9QQVRIXUBEXG4iCisgICAgIiAgICAgIEdlbmVyYXRl
IGEgSlNPTiBvciBYTUwgcmVwb3J0IGluIHRoZSBnaXZlbiBkaXJlY3Rvcnkgb3Igd2l0aCB0aGUg
IgorICAgICJnaXZlblxuIgorICAgICIgICAgICBmaWxlIG5hbWUuIEBZRklMRV9QQVRIQEQgZGVm
YXVsdHMgdG8gQEd0ZXN0X2RldGFpbC54bWxARC5cbiIKICMgaWYgR1RFU1RfQ0FOX1NUUkVBTV9S
RVNVTFRTXwotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJzdHJlYW1fcmVzdWx0X3RvPUBZ
SE9TVEBHOkBZUE9SVEBEXG4iCi0iICAgICAgU3RyZWFtIHRlc3QgcmVzdWx0cyB0byB0aGUgZ2l2
ZW4gc2VydmVyLlxuIgorICAgICIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJzdHJl
YW1fcmVzdWx0X3RvPUBZSE9TVEBHOkBZUE9SVEBEXG4iCisgICAgIiAgICAgIFN0cmVhbSB0ZXN0
IHJlc3VsdHMgdG8gdGhlIGdpdmVuIHNlcnZlci5cbiIKICMgZW5kaWYgIC8vIEdURVNUX0NBTl9T
VFJFQU1fUkVTVUxUU18KLSJcbiIKLSJBc3NlcnRpb24gQmVoYXZpb3I6XG4iCisgICAgIlxuIgor
ICAgICJBc3NlcnRpb24gQmVoYXZpb3I6XG4iCiAjIGlmIEdURVNUX0hBU19ERUFUSF9URVNUICYm
ICFHVEVTVF9PU19XSU5ET1dTCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImRlYXRoX3Rl
c3Rfc3R5bGU9QFkoQEdmYXN0QFl8QEd0aHJlYWRzYWZlQFkpQERcbiIKLSIgICAgICBTZXQgdGhl
IGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8KKyAgICAiZGVhdGhfdGVzdF9zdHlsZT1AWShAR2Zhc3RAWXxAR3RocmVhZHNhZmVAWSlA
RFxuIgorICAgICIgICAgICBTZXQgdGhlIGRlZmF1bHQgZGVhdGggdGVzdCBzdHlsZS5cbiIKICMg
ZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUICYmICFHVEVTVF9PU19XSU5ET1dTCi0iICBA
Ry0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImJyZWFrX29uX2ZhaWx1cmVARFxuIgotIiAgICAgIFR1
cm4gYXNzZXJ0aW9uIGZhaWx1cmVzIGludG8gZGVidWdnZXIgYnJlYWstcG9pbnRzLlxuIgotIiAg
QEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBU
dXJuIGFzc2VydGlvbiBmYWlsdXJlcyBpbnRvIEMrKyBleGNlcHRpb25zIGZvciB1c2UgYnkgYW4g
ZXh0ZXJuYWxcbiIKLSIgICAgICB0ZXN0IGZyYW1ld29yay5cbiIKLSIgIEBHLS0iIEdURVNUX0ZM
QUdfUFJFRklYXyAiY2F0Y2hfZXhjZXB0aW9ucz0wQERcbiIKLSIgICAgICBEbyBub3QgcmVwb3J0
IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJlcy4gSW5zdGVhZCwgYWxsb3cgdGhlbVxuIgotIiAg
ICAgIHRvIGNyYXNoIHRoZSBwcm9ncmFtIG9yIHRocm93IGEgcG9wLXVwIChvbiBXaW5kb3dzKS5c
biIKLSJcbiIKLSJFeGNlcHQgZm9yIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAibGlzdF90ZXN0
c0BELCB5b3UgY2FuIGFsdGVybmF0aXZlbHkgc2V0ICIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8KKyAgICAiYnJlYWtfb25fZmFpbHVyZUBEXG4iCisgICAgIiAgICAgIFR1cm4gYXNz
ZXJ0aW9uIGZhaWx1cmVzIGludG8gZGVidWdnZXIgYnJlYWstcG9pbnRzLlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJ0aHJvd19vbl9mYWlsdXJlQERcbiIKKyAgICAi
ICAgICAgVHVybiBhc3NlcnRpb24gZmFpbHVyZXMgaW50byBDKysgZXhjZXB0aW9ucyBmb3IgdXNl
IGJ5IGFuIGV4dGVybmFsXG4iCisgICAgIiAgICAgIHRlc3QgZnJhbWV3b3JrLlxuIgorICAgICIg
IEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJjYXRjaF9leGNlcHRpb25zPTBARFxuIgor
ICAgICIgICAgICBEbyBub3QgcmVwb3J0IGV4Y2VwdGlvbnMgYXMgdGVzdCBmYWlsdXJlcy4gSW5z
dGVhZCwgYWxsb3cgdGhlbVxuIgorICAgICIgICAgICB0byBjcmFzaCB0aGUgcHJvZ3JhbSBvciB0
aHJvdyBhIHBvcC11cCAob24gV2luZG93cykuXG4iCisgICAgIlxuIgorICAgICJFeGNlcHQgZm9y
IEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJsaXN0X3Rlc3RzQEQsIHlvdSBjYW4gYWx0
ZXJuYXRpdmVseSBzZXQgIgogICAgICJ0aGUgY29ycmVzcG9uZGluZ1xuIgotImVudmlyb25tZW50
IHZhcmlhYmxlIG9mIGEgZmxhZyAoYWxsIGxldHRlcnMgaW4gdXBwZXItY2FzZSkuIEZvciBleGFt
cGxlLCB0b1xuIgotImRpc2FibGUgY29sb3JlZCB0ZXh0IG91dHB1dCwgeW91IGNhbiBlaXRoZXIg
c3BlY2lmeSBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiZW52aXJvbm1lbnQgdmFyaWFi
bGUgb2YgYSBmbGFnIChhbGwgbGV0dGVycyBpbiB1cHBlci1jYXNlKS4gRm9yIGV4YW1wbGUsICIK
KyAgICAidG9cbiIKKyAgICAiZGlzYWJsZSBjb2xvcmVkIHRleHQgb3V0cHV0LCB5b3UgY2FuIGVp
dGhlciBzcGVjaWZ5ICIKKyAgICAiQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCiAgICAgImNvbG9y
PW5vQEQgb3Igc2V0XG4iCi0idGhlIEBHIiBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIkNPTE9S
QEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gQEdub0BELlxuIgotIlxuIgotIkZvciBtb3JlIGlu
Zm9ybWF0aW9uLCBwbGVhc2UgcmVhZCB0aGUgIiBHVEVTVF9OQU1FXyAiIGRvY3VtZW50YXRpb24g
YXRcbiIKLSJARyIgR1RFU1RfUFJPSkVDVF9VUkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4g
IiBHVEVTVF9OQU1FXyAiXG4iCi0iKG5vdCBvbmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyks
IHBsZWFzZSByZXBvcnQgaXQgdG9cbiIKLSJARzwiIEdURVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7
CisgICAgInRoZSBARyIgR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfCisgICAgIkNPTE9SQEQgZW52
aXJvbm1lbnQgdmFyaWFibGUgdG8gQEdub0BELlxuIgorICAgICJcbiIKKyAgICAiRm9yIG1vcmUg
aW5mb3JtYXRpb24sIHBsZWFzZSByZWFkIHRoZSAiIEdURVNUX05BTUVfCisgICAgIiBkb2N1bWVu
dGF0aW9uIGF0XG4iCisgICAgIkBHIiBHVEVTVF9QUk9KRUNUX1VSTF8gIkBELiBJZiB5b3UgZmlu
ZCBhIGJ1ZyBpbiAiIEdURVNUX05BTUVfCisgICAgIlxuIgorICAgICIobm90IG9uZSBpbiB5b3Vy
IG93biBjb2RlIG9yIHRlc3RzKSwgcGxlYXNlIHJlcG9ydCBpdCB0b1xuIgorICAgICJARzwiIEdU
RVNUX0RFVl9FTUFJTF8gIj5ARC5cbiI7CiAKIHN0YXRpYyBib29sIFBhcnNlR29vZ2xlVGVzdEZs
YWcoY29uc3QgY2hhciogY29uc3QgYXJnKSB7CiAgIHJldHVybiBQYXJzZUJvb2xGbGFnKGFyZywg
a0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgJkdURVNU
X0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhh
cmcsIGtCcmVha09uRmFpbHVyZUZsYWcsCi0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFH
KGJyZWFrX29uX2ZhaWx1cmUpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtDYXRjaEV4
Y2VwdGlvbnNGbGFnLAotICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhjYXRjaF9leGNl
cHRpb25zKSkgfHwKLSAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtDb2xvckZsYWcsICZHVEVT
VF9GTEFHKGNvbG9yKSkgfHwKLSAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtEZWF0aFRlc3RT
dHlsZUZsYWcsCi0gICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoZGVhdGhfdGVzdF9z
dHlsZSkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga0RlYXRoVGVzdFVzZUZvcmssCi0g
ICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKSB8fAot
ICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywga0ZpbHRlckZsYWcsICZHVEVTVF9GTEFHKGZpbHRl
cikpIHx8Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RG
bGFnLAotICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0
aF90ZXN0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrTGlzdFRlc3RzRmxhZywgJkdU
RVNUX0ZMQUcobGlzdF90ZXN0cykpIHx8Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0
cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0cHV0KSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJn
LCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZMQUcocHJpbnRfdGltZSkpIHx8Ci0gICAgICBQYXJz
ZUJvb2xGbGFnKGFyZywga1ByaW50VVRGOEZsYWcsICZHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB8
fAotICAgICAgUGFyc2VJbnQzMkZsYWcoYXJnLCBrUmFuZG9tU2VlZEZsYWcsICZHVEVTVF9GTEFH
KHJhbmRvbV9zZWVkKSkgfHwKLSAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1JlcGVhdEZsYWcs
ICZHVEVTVF9GTEFHKHJlcGVhdCkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1NodWZm
bGVGbGFnLCAmR1RFU1RfRkxBRyhzaHVmZmxlKSkgfHwKLSAgICAgIFBhcnNlSW50MzJGbGFnKGFy
Zywga1N0YWNrVHJhY2VEZXB0aEZsYWcsCi0gICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxB
RyhzdGFja190cmFjZV9kZXB0aCkpIHx8Ci0gICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3Ry
ZWFtUmVzdWx0VG9GbGFnLAotICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVh
bV9yZXN1bHRfdG8pKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVy
ZUZsYWcsCi0gICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUp
KTsKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrQnJlYWtPbkZhaWx1cmVGbGFnLAorICAg
ICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkgfHwKKyAg
ICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrQ2F0Y2hFeGNlcHRpb25zRmxhZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykpIHx8CisgICAgICAg
ICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrQ29sb3JGbGFnLCAmR1RFU1RfRkxBRyhjb2xvcikpIHx8
CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrRGVhdGhUZXN0U3R5bGVGbGFnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpKSB8fAor
ICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtEZWF0aFRlc3RVc2VGb3JrLAorICAgICAgICAg
ICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3VzZV9mb3JrKSkgfHwKKyAgICAg
ICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrRmFpbEZhc3QsICZHVEVTVF9GTEFHKGZhaWxfZmFzdCkp
IHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrRmlsdGVyRmxhZywgJkdURVNUX0ZM
QUcoZmlsdGVyKSkgfHwKKyAgICAgICAgIFBhcnNlU3RyaW5nRmxhZyhhcmcsIGtJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoaW50
ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtM
aXN0VGVzdHNGbGFnLCAmR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgfHwKKyAgICAgICAgIFBhcnNl
U3RyaW5nRmxhZyhhcmcsIGtPdXRwdXRGbGFnLCAmR1RFU1RfRkxBRyhvdXRwdXQpKSB8fAorICAg
ICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtCcmllZkZsYWcsICZHVEVTVF9GTEFHKGJyaWVmKSkg
fHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrUHJpbnRUaW1lRmxhZywgJkdURVNUX0ZM
QUcocHJpbnRfdGltZSkpIHx8CisgICAgICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VVRG
OEZsYWcsICZHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB8fAorICAgICAgICAgUGFyc2VJbnQzMkZs
YWcoYXJnLCBrUmFuZG9tU2VlZEZsYWcsICZHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSkgfHwKKyAg
ICAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1JlcGVhdEZsYWcsICZHVEVTVF9GTEFHKHJlcGVh
dCkpIHx8CisgICAgICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1NodWZmbGVGbGFnLCAmR1RFU1Rf
RkxBRyhzaHVmZmxlKSkgfHwKKyAgICAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1N0YWNrVHJh
Y2VEZXB0aEZsYWcsCisgICAgICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdGFja190
cmFjZV9kZXB0aCkpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrU3RyZWFtUmVz
dWx0VG9GbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKHN0cmVhbV9y
ZXN1bHRfdG8pKSB8fAorICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtUaHJvd09uRmFpbHVy
ZUZsYWcsICZHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpKTsKIH0KIAogI2lmIEdURVNUX1VT
RV9PV05fRkxBR0ZJTEVfRkxBR18KQEAgLTU4OTUsNyArNjYwMyw3IEBAIHZvaWQgUGFyc2VHb29n
bGVUZXN0RmxhZ3NPbmx5SW1wbChpbnQqIGFyZ2MsIENoYXJUeXBlKiogYXJndikgewogdm9pZCBQ
YXJzZUdvb2dsZVRlc3RGbGFnc09ubHkoaW50KiBhcmdjLCBjaGFyKiogYXJndikgewogICBQYXJz
ZUdvb2dsZVRlc3RGbGFnc09ubHlJbXBsKGFyZ2MsIGFyZ3YpOwogCi0gIC8vIEZpeCB0aGUgdmFs
dWUgb2YgKl9OU0dldEFyZ2MoKSBvbiBtYWNPUywgYnV0IGlmZgorICAvLyBGaXggdGhlIHZhbHVl
IG9mICpfTlNHZXRBcmdjKCkgb24gbWFjT1MsIGJ1dCBpZiBhbmQgb25seSBpZgogICAvLyAqX05T
R2V0QXJndigpID09IGFyZ3YKICAgLy8gT25seSBhcHBsaWNhYmxlIHRvIGNoYXIqKiB2ZXJzaW9u
IG9mIGFyZ3YKICNpZiBHVEVTVF9PU19NQUMKQEAgLTU5NjMsMjMgKzY2NzEsNTAgQEAgdm9pZCBJ
bml0R29vZ2xlVGVzdChpbnQqIGFyZ2MsIHdjaGFyX3QqKiBhcmd2KSB7CiAjZW5kaWYgIC8vIGRl
ZmluZWQoR1RFU1RfQ1VTVE9NX0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKQogfQogCisvLyBU
aGlzIG92ZXJsb2FkZWQgdmVyc2lvbiBjYW4gYmUgdXNlZCBvbiBBcmR1aW5vL2VtYmVkZGVkIHBs
YXRmb3JtcyB3aGVyZQorLy8gdGhlcmUgaXMgbm8gYXJnYy9hcmd2Lgordm9pZCBJbml0R29vZ2xl
VGVzdCgpIHsKKyAgLy8gU2luY2UgQXJkdWlubyBkb2Vzbid0IGhhdmUgYSBjb21tYW5kIGxpbmUs
IGZha2Ugb3V0IHRoZSBhcmdjL2FyZ3YgYXJndW1lbnRzCisgIGludCBhcmdjID0gMTsKKyAgY29u
c3QgYXV0byBhcmcwID0gImR1bW15IjsKKyAgY2hhciogYXJndjAgPSBjb25zdF9jYXN0PGNoYXIq
PihhcmcwKTsKKyAgY2hhcioqIGFyZ3YgPSAmYXJndjA7CisKKyNpZiBkZWZpbmVkKEdURVNUX0NV
U1RPTV9JTklUX0dPT0dMRV9URVNUX0ZVTkNUSU9OXykKKyAgR1RFU1RfQ1VTVE9NX0lOSVRfR09P
R0xFX1RFU1RfRlVOQ1RJT05fKCZhcmdjLCBhcmd2KTsKKyNlbHNlICAvLyBkZWZpbmVkKEdURVNU
X0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZVTkNUSU9OXykKKyAgaW50ZXJuYWw6OkluaXRHb29n
bGVUZXN0SW1wbCgmYXJnYywgYXJndik7CisjZW5kaWYgIC8vIGRlZmluZWQoR1RFU1RfQ1VTVE9N
X0lOSVRfR09PR0xFX1RFU1RfRlVOQ1RJT05fKQorfQorCiBzdGQ6OnN0cmluZyBUZW1wRGlyKCkg
ewogI2lmIGRlZmluZWQoR1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVOQ1RJT05fKQogICByZXR1cm4g
R1RFU1RfQ1VTVE9NX1RFTVBESVJfRlVOQ1RJT05fKCk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX09T
X1dJTkRPV1NfTU9CSUxFCisjZWxpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogICByZXR1cm4g
IlxcdGVtcFxcIjsKICNlbGlmIEdURVNUX09TX1dJTkRPV1MKICAgY29uc3QgY2hhciogdGVtcF9k
aXIgPSBpbnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVNUCIpOwotICBpZiAodGVtcF9kaXIgPT0g
TlVMTCB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKQorICBpZiAodGVtcF9kaXIgPT0gbnVsbHB0ciB8
fCB0ZW1wX2RpclswXSA9PSAnXDAnKSB7CiAgICAgcmV0dXJuICJcXHRlbXBcXCI7Ci0gIGVsc2Ug
aWYgKHRlbXBfZGlyW3N0cmxlbih0ZW1wX2RpcikgLSAxXSA9PSAnXFwnKQorICB9IGVsc2UgaWYg
KHRlbXBfZGlyW3N0cmxlbih0ZW1wX2RpcikgLSAxXSA9PSAnXFwnKSB7CiAgICAgcmV0dXJuIHRl
bXBfZGlyOwotICBlbHNlCisgIH0gZWxzZSB7CiAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHRlbXBf
ZGlyKSArICJcXCI7CisgIH0KICNlbGlmIEdURVNUX09TX0xJTlVYX0FORFJPSUQKLSAgcmV0dXJu
ICIvc2RjYXJkLyI7CisgIGNvbnN0IGNoYXIqIHRlbXBfZGlyID0gaW50ZXJuYWw6OnBvc2l4OjpH
ZXRFbnYoIlRFU1RfVE1QRElSIik7CisgIGlmICh0ZW1wX2RpciA9PSBudWxscHRyIHx8IHRlbXBf
ZGlyWzBdID09ICdcMCcpIHsKKyAgICByZXR1cm4gIi9kYXRhL2xvY2FsL3RtcC8iOworICB9IGVs
c2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsKKyAgfQorI2VsaWYgR1RFU1RfT1NfTElOVVgKKyAg
Y29uc3QgY2hhciogdGVtcF9kaXIgPSBpbnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVTVF9UTVBE
SVIiKTsKKyAgaWYgKHRlbXBfZGlyID09IG51bGxwdHIgfHwgdGVtcF9kaXJbMF0gPT0gJ1wwJykg
eworICAgIHJldHVybiAiL3RtcC8iOworICB9IGVsc2UgeworICAgIHJldHVybiB0ZW1wX2RpcjsK
KyAgfQogI2Vsc2UKICAgcmV0dXJuICIvdG1wLyI7CiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1NfTU9CSUxFCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3Rf
bWFpbi5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCmluZGV4
IDIxMTNmNjIxZTY1NDMwZTU1NzBkZmIyMDE1ODg0YTJkNGY0Y2YwYjMuLjQ2YjI3YzNkN2Q1NjU0
NjY4OTA2YmZmNWY1YmExYTI2Njg4MWY3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NyYy9ndGVzdF9tYWluLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Ny
Yy9ndGVzdF9tYWluLmNjCkBAIC0yNywxMSArMjcsMjggQEAKIC8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgogI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKKyNpZiBHVEVTVF9PU19FU1A4MjY2IHx8IEdURVNUX09T
X0VTUDMyCisjaWYgR1RFU1RfT1NfRVNQODI2NgorZXh0ZXJuICJDIiB7CisjZW5kaWYKK3ZvaWQg
c2V0dXAoKSB7CisgIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCk7Cit9CisKK3ZvaWQgbG9vcCgp
IHsgUlVOX0FMTF9URVNUUygpOyB9CisKKyNpZiBHVEVTVF9PU19FU1A4MjY2Cit9CisjZW5kaWYK
KworI2Vsc2UKKwogR1RFU1RfQVBJXyBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK
ICAgcHJpbnRmKCJSdW5uaW5nIG1haW4oKSBmcm9tICVzXG4iLCBfX0ZJTEVfXyk7CiAgIHRlc3Rp
bmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKICAgcmV0dXJuIFJVTl9BTExfVEVTVFMo
KTsKIH0KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9C
VUlMRC5iYXplbCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvQlVJTEQuYmF6ZWwKaW5k
ZXggYTkzMGQ2NWUwNDQwMTQ0NDE2YWU4OGFiMjc1OGZkOTM0MGEwOTM3Yi4uZTc5Yjg3NWNjN2Qx
ZjJjYjU3OGY3OWIwMmFlZGRiZjZjM2RhYjc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L0JVSUxELmJhemVsCkBAIC0yOCwyOCArMjgsMTYgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAjCi0jIEF1dGhvcjogbWlzdGVyZ0Bnb29nbGUuY29tIChHZW5uYWRpeSBDaXZp
bCkKLSMKICMgQmF6ZWwgQlVJTEQgZm9yIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgRnJhbWV3b3Jr
IChHb29nbGUgVGVzdCkKIAotbGljZW5zZXMoWyJub3RpY2UiXSkKK2xvYWQoIkBydWxlc19jYy8v
Y2M6ZGVmcy5iemwiLCAiY2NfYmluYXJ5IiwgImNjX3Rlc3QiKQorbG9hZCgiQHJ1bGVzX3B5dGhv
bi8vcHl0aG9uOmRlZnMuYnpsIiwgInB5X2xpYnJhcnkiLCAicHlfdGVzdCIpCiAKLWNvbmZpZ19z
ZXR0aW5nKAotICAgIG5hbWUgPSAid2luZG93cyIsCi0gICAgdmFsdWVzID0geyJjcHUiOiAieDY0
X3dpbmRvd3MifSwKLSkKLQotY29uZmlnX3NldHRpbmcoCi0gICAgbmFtZSA9ICJ3aW5kb3dzX21z
dmMiLAotICAgIHZhbHVlcyA9IHsiY3B1IjogIng2NF93aW5kb3dzX21zdmMifSwKLSkKK2xpY2Vu
c2VzKFsibm90aWNlIl0pCiAKLWNvbmZpZ19zZXR0aW5nKAotICAgIG5hbWUgPSAiaGFzX2Fic2wi
LAotICAgIHZhbHVlcyA9IHsiZGVmaW5lIjogImFic2w9MSJ9LAotKQorcGFja2FnZShkZWZhdWx0
X3Zpc2liaWxpdHkgPSBbIi8vOl9fc3VicGFja2FnZXNfXyJdKQogCi0jb24gd2luZG93cyBleGNs
dWRlIGd0ZXN0LXR1cGxlLmggYW5kIGdvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYworI29uIHdpbmRv
d3MgZXhjbHVkZSBndGVzdC10dXBsZS5oCiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ3Rlc3RfYWxs
X3Rlc3QiLAogICAgIHNpemUgPSAic21hbGwiLApAQCAtNjIsNDEgKzUwLDQzIEBAIGNjX3Rlc3Qo
CiAgICAgICAgIF0sCiAgICAgICAgIGV4Y2x1ZGUgPSBbCiAgICAgICAgICAgICAiZ3Rlc3QtdW5p
dHRlc3QtYXBpX3Rlc3QuY2MiLAotICAgICAgICAgICAgImdvb2dsZXRlc3QtdHVwbGUtdGVzdC5j
YyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC9zcmMvZ3Rlc3QtYWxsLmNjIiwKICAgICAgICAg
ICAgICJndGVzdF9hbGxfdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ3Rlc3QtZGVhdGgtdGVzdF9l
eF90ZXN0LmNjIiwKICAgICAgICAgICAgICJndGVzdC1saXN0ZW5lcl90ZXN0LmNjIiwKICAgICAg
ICAgICAgICJndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xl
dGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0t
dGVzdDItdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25z
LXRlc3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNjIiwKICAg
ICAgICAgICAgICJnb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MiLAorICAgICAgICAgICAgImdv
b2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfLmNjIiwKICAgICAgICAgICAgICJnb29nbGV0ZXN0
LWZpbHRlci11bml0dGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtZ2xvYmFsLWVu
dmlyb25tZW50LXVuaXR0ZXN0Xy5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1icmVhay1v
bi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVu
ZXItdGVzdC5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIiwK
LSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYyIsCi0gICAg
ICAgICAgICAgImdvb2dsZXRlc3Qtc2h1ZmZsZS10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdv
b2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRl
c3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIiwKLSAgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJh
bS10ZXN0LXRlc3QiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUt
dGVzdF8uY2MiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1u
YW1lMS10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZh
bGlkLW5hbWUyLXRlc3RfLmNjIiwKLQorICAgICAgICAgICAgImdvb2dsZXRlc3QtbGlzdGVuZXIt
dGVzdC5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MiLAorICAg
ICAgICAgICAgImdvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MiLAorICAgICAgICAg
ICAgImdvb2dsZXRlc3Qtc2h1ZmZsZS10ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVz
dC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC11bmlu
aXRpYWxpemVkLXRlc3RfLmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0LWRlYXRoLXRlc3Rf
ZXhfdGVzdC5jYyIsCisgICAgICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QiLAor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5jYyIsCisgICAg
ICAgICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MiLAor
ICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNj
IiwKICAgICAgICAgXSwKICAgICApICsgc2VsZWN0KHsKICAgICAgICAgIi8vOndpbmRvd3MiOiBb
XSwKLSAgICAgICAgIi8vOndpbmRvd3NfbXN2YyI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25z
OmRlZmF1bHQiOiBbCi0gICAgICAgICAgICAiZ29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIiwKLSAg
ICAgICAgXSwKKyAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSksCiAg
ICAgY29wdHMgPSBzZWxlY3QoewogICAgICAgICAiLy86d2luZG93cyI6IFsiLURHVEVTVF9VU0Vf
T1dOX1RSMV9UVVBMRT0wIl0sCi0gICAgICAgICIvLzp3aW5kb3dzX21zdmMiOiBbIi1ER1RFU1Rf
VVNFX09XTl9UUjFfVFVQTEU9MCJdLAogICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBb
Ii1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9MSJdLAorICAgIH0pICsgc2VsZWN0KHsKKyAgICAg
ICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMgc291cmNlIGZpbGVzIGFzIFVURi04IGVuY29kZWQuCisg
ICAgICAgICIvLzptc3ZjX2NvbXBpbGVyIjogWyItdXRmLTgiXSwKKyAgICAgICAgIi8vY29uZGl0
aW9uczpkZWZhdWx0IjogW10sCiAgICAgfSksCiAgICAgaW5jbHVkZXMgPSBbCiAgICAgICAgICJn
b29nbGV0ZXN0IiwKQEAgLTEwNiwxNSArOTYsMTEgQEAgY2NfdGVzdCgKICAgICBdLAogICAgIGxp
bmtvcHRzID0gc2VsZWN0KHsKICAgICAgICAgIi8vOndpbmRvd3MiOiBbXSwKLSAgICAgICAgIi8v
OndpbmRvd3NfbXN2YyI6IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbCi0g
ICAgICAgICAgICAiLXB0aHJlYWQiLAotICAgICAgICBdLAorICAgICAgICAiLy9jb25kaXRpb25z
OmRlZmF1bHQiOiBbIi1wdGhyZWFkIl0sCiAgICAgfSksCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3Rf
bWFpbiJdLAogKQogCi0KICMgVGVzdHMgZGVhdGggdGVzdHMuCiBjY190ZXN0KAogICAgIG5hbWUg
PSAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRlc3QiLApAQCAtMTc1LDYgKzE2MSw3IEBAIHB5X2xp
YnJhcnkoCiAgICAgbmFtZSA9ICJndGVzdF90ZXN0X3V0aWxzIiwKICAgICB0ZXN0b25seSA9IDEs
CiAgICAgc3JjcyA9IFsiZ3Rlc3RfdGVzdF91dGlscy5weSJdLAorICAgIGltcG9ydHMgPSBbIi4i
XSwKICkKIAogY2NfYmluYXJ5KApAQCAtMTk5LDEzICsxODYsMTIgQEAgY2NfYmluYXJ5KAogICAg
IGRlcHMgPSBbIi8vOmd0ZXN0Il0sCiApCiAKLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2ds
ZXRlc3Qtb3V0cHV0LXRlc3QiLAogICAgIHNpemUgPSAic21hbGwiLAogICAgIHNyY3MgPSBbImdv
b2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkiXSwKICAgICBhcmdzID0gc2VsZWN0KHsKLSAgICAgICAg
IjpoYXNfYWJzbCI6IFtdLAorICAgICAgICAiLy86aGFzX2Fic2wiOiBbXSwKICAgICAgICAgIi8v
Y29uZGl0aW9uczpkZWZhdWx0IjogWyItLW5vX3N0YWNrdHJhY2Vfc3VwcG9ydCJdLAogICAgIH0p
LAogICAgIGRhdGEgPSBbCkBAIC0yNDUsNiArMjMxLDIxIEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9
IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAorY2NfYmluYXJ5KAorICAgIG5hbWUgPSAiZ29v
Z2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNz
ID0gWyJnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8v
Omd0ZXN0Il0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWZhaWxmYXN0
LXVuaXR0ZXN0IiwKKyAgICBzaXplID0gIm1lZGl1bSIsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVz
dC1mYWlsZmFzdC11bml0dGVzdC5weSJdLAorICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LWZhaWxm
YXN0LXVuaXR0ZXN0XyJdLAorICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCispCisK
IGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0XyIsCiAg
ICAgdGVzdG9ubHkgPSAxLApAQCAtMjYwLDYgKzI2MSwyMCBAQCBweV90ZXN0KAogICAgIGRlcHMg
PSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdv
b2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0XyIsCisgICAgdGVzdG9ubHkgPSAx
LAorICAgIHNyY3MgPSBbImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5j
YyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9
ICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdCIsCisgICAgc2l6ZSA9ICJt
ZWRpdW0iLAorICAgIHNyY3MgPSBbImdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0
ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVu
aXR0ZXN0XyJdLAorICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCispCiAKIGNjX2Jp
bmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdF8i
LApAQCAtMjY4LDggKzI4Myw2IEBAIGNjX2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJd
LAogKQogCi0KLQogcHlfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtYnJlYWstb24tZmFp
bHVyZS11bml0dGVzdCIsCiAgICAgc2l6ZSA9ICJzbWFsbCIsCkBAIC0yNzgsNyArMjkxLDYgQEAg
cHlfdGVzdCgKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQogCi0KIGNjX3Rl
c3QoCiAgICAgbmFtZSA9ICJndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QiLAogICAgIHNp
emUgPSAic21hbGwiLApAQCAtMjg2LDggKzI5OCw2IEBAIGNjX3Rlc3QoCiAgICAgZGVwcyA9IFsi
Ly86Z3Rlc3QiXSwKICkKIAotCi0KIGNjX2JpbmFyeSgKICAgICBuYW1lID0gImdvb2dsZXRlc3Qt
dGhyb3ctb24tZmFpbHVyZS10ZXN0XyIsCiAgICAgdGVzdG9ubHkgPSAxLApAQCAtMzAzLDcgKzMx
Myw2IEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAot
CiBjY19iaW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3Rf
IiwKICAgICB0ZXN0b25seSA9IDEsCkBAIC0zMTEsNiArMzIwLDM4IEBAIGNjX2JpbmFyeSgKICAg
ICBkZXBzID0gWyIvLzpndGVzdCJdLAogKQogCitjY190ZXN0KAorICAgIG5hbWUgPSAiZ3Rlc3Rf
c2tpcF90ZXN0IiwKKyAgICBzaXplID0gInNtYWxsIiwKKyAgICBzcmNzID0gWyJndGVzdF9za2lw
X3Rlc3QuY2MiXSwKKyAgICBkZXBzID0gWyIvLzpndGVzdF9tYWluIl0sCispCisKK2NjX3Rlc3Qo
CisgICAgbmFtZSA9ICJndGVzdF9za2lwX2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QiLAorICAg
IHNpemUgPSAic21hbGwiLAorICAgIHNyY3MgPSBbImd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRf
c2V0dXBfdGVzdC5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0X21haW4iXSwKKykKKworcHlf
dGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QiLAorICAgIHNp
emUgPSAic21hbGwiLAorICAgIHNyY3MgPSBbImd0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3Qu
cHkiXSwKKyAgICBkYXRhID0gWyI6Z3Rlc3Rfc2tpcF90ZXN0Il0sCisgICAgZGVwcyA9IFsiOmd0
ZXN0X3Rlc3RfdXRpbHMiXSwKKykKKworcHlfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBf
ZW52aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QiLAorICAgIHNpemUgPSAic21hbGwiLAorICAg
IHNyY3MgPSBbImd0ZXN0X3NraXBfZW52aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QucHkiXSwK
KyAgICBkYXRhID0gWworICAgICAgICAiOmd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBf
dGVzdCIsCisgICAgXSwKKyAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBw
eV90ZXN0KAogICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0IiwKICAg
ICBzaXplID0gInNtYWxsIiwKQEAgLTM4MSw3ICs0MjIsNyBAQCBweV90ZXN0KAogICAgICAgICAi
Z3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkiLAogICAgIF0sCiAgICAgYXJncyA9IHNlbGVjdCh7Ci0g
ICAgICAgICI6aGFzX2Fic2wiOiBbXSwKKyAgICAgICAgIi8vOmhhc19hYnNsIjogW10sCiAgICAg
ICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwK
ICAgICB9KSwKICAgICBkYXRhID0gWwpAQCAtNDIxLDYgKzQ2MiwyMSBAQCBweV90ZXN0KAogICAg
IGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1l
ID0gImdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3VpdGUtdGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwK
KyAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXNldHVwdGVzdHN1aXRlLXRlc3RfLmNjIl0sCisgICAg
ZGVwcyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAorKQorCitweV90ZXN0KAorICAgIG5hbWUgPSAiZ29v
Z2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0IiwKKyAgICBzaXplID0gIm1lZGl1bSIsCisgICAg
c3JjcyA9IFsiZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0LnB5Il0sCisgICAgZGF0YSA9
IFsiOmdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3VpdGUtdGVzdF8iXSwKKyAgICBkZXBzID0gWyI6Z3Rl
c3RfdGVzdF91dGlscyJdLAorKQorCiBjY19iaW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0
LXVuaW5pdGlhbGl6ZWQtdGVzdF8iLAogICAgIHRlc3Rvbmx5ID0gMSwKQEAgLTQ1Miw3ICs1MDgs
NiBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKLQog
cHlfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtanNvbi1vdXRmaWxlcy10ZXN0IiwKICAg
ICBzaXplID0gInNtYWxsIiwKQEAgLTQ3NCwxOCArNTI5LDE5IEBAIHB5X3Rlc3QoCiAgICAgICAg
ICJnb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5IiwKICAgICAgICAgImd0ZXN0X2pz
b25fdGVzdF91dGlscy5weSIsCiAgICAgXSwKKyAgICBhcmdzID0gc2VsZWN0KHsKKyAgICAgICAg
Ii8vOmhhc19hYnNsIjogW10sCisgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFsiLS1u
b19zdGFja3RyYWNlX3N1cHBvcnQiXSwKKyAgICB9KSwKICAgICBkYXRhID0gWwogICAgICAgICAj
IFdlIGludm9rZSBndGVzdF9ub190ZXN0X3VuaXR0ZXN0IHRvIHZlcmlmeSB0aGUgSlNPTiBvdXRw
dXQKICAgICAgICAgIyB3aGVuIHRoZSB0ZXN0IHByb2dyYW0gY29udGFpbnMgbm8gdGVzdCBkZWZp
bml0aW9uLgogICAgICAgICAiOmd0ZXN0X25vX3Rlc3RfdW5pdHRlc3QiLAogICAgICAgICAiOmd0
ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfIiwKICAgICBdLAotICAgIGFyZ3MgPSBzZWxlY3Qoewot
ICAgICAgICAiOmhhc19hYnNsIjogW10sCi0gICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6
IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKLSAgICB9KSwKICAgICBkZXBzID0gWyI6Z3Rl
c3RfdGVzdF91dGlscyJdLAogKQorCiAjIFZlcmlmaWVzIGludGVyYWN0aW9uIG9mIGRlYXRoIHRl
c3RzIGFuZCBleGNlcHRpb25zLgogY2NfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZGVh
dGgtdGVzdF9leF9jYXRjaF90ZXN0IiwKQEAgLTUxNSw2ICs1NzEsMTAgQEAgcHlfdGVzdCgKICAg
ICBzaXplID0gInNtYWxsIiwKICAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52
YWxpZC1uYW1lMS10ZXN0LnB5Il0sCiAgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFyYW0tdGVz
dC1pbnZhbGlkLW5hbWUxLXRlc3RfIl0sCisgICAgdGFncyA9IFsKKyAgICAgICAgIm5vX3Rlc3Rf
bXN2YzIwMTUiLAorICAgICAgICAibm9fdGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAgICBkZXBz
ID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQogCkBAIC01MjMsNSArNTgzLDkgQEAgcHlfdGVz
dCgKICAgICBzaXplID0gInNtYWxsIiwKICAgICBzcmNzID0gWyJnb29nbGV0ZXN0LXBhcmFtLXRl
c3QtaW52YWxpZC1uYW1lMi10ZXN0LnB5Il0sCiAgICAgZGF0YSA9IFsiOmdvb2dsZXRlc3QtcGFy
YW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfIl0sCisgICAgdGFncyA9IFsKKyAgICAgICAgIm5v
X3Rlc3RfbXN2YzIwMTUiLAorICAgICAgICAibm9fdGVzdF9tc3ZjMjAxNyIsCisgICAgXSwKICAg
ICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25z
LXRlc3QucHkKaW5kZXggNWQ0OWMxMDIzYzUwZWYxNjgzM2U2YjhlMmE4ZTYyMDI0ODQzMmFjMy4u
OTRhNWIzM2YyMzA1MDkyNTkzNzU1YzNhYjg2YWE1ZjZjMzI5ZTJhMCAxMDA3NTUKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVz
dC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gt
ZXhjZXB0aW9ucy10ZXN0LnB5CkBAIC04OSw5ICs4OSw5IEBAIGlmIFNVUFBPUlRTX1NFSF9FWENF
UFRJT05TOgogICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJh
IHRocm93biAnCiAgICAgICAgICAgICAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgZGVz
dHJ1Y3RvcicKICAgICAgICAgICAgICAgICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYu
YXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXBUZXN0
Q2FzZSgpJworICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJh
IHRocm93biBpbiBTZXRVcFRlc3RTdWl0ZSgpJwogICAgICAgICAgICAgICAgICAgIGluIHRlc3Rf
b3V0cHV0KQotICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAweDJh
IHRocm93biBpbiBUZWFyRG93blRlc3RDYXNlKCknCisgICAgICBzZWxmLmFzc2VydF8oJ1NFSCBl
eGNlcHRpb24gd2l0aCBjb2RlIDB4MmEgdGhyb3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknCiAg
ICAgICAgICAgICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCiAgICAgICBzZWxmLmFzc2VydF8oJ1NF
SCBleGNlcHRpb24gd2l0aCBjb2RlIDB4MmEgdGhyb3duIGluIFNldFVwKCknCiAgICAgICAgICAg
ICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCkBAIC0xMTcsMTAgKzExNywxMSBAQCBjbGFzcyBDYXRj
aEN4eEV4Y2VwdGlvbnNUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAiIiIKIAog
ICBkZWYgdGVzdENhdGNoZXNDeHhFeGNlcHRpb25zSW5GaXh0dXJlQ29uc3RydWN0b3Ioc2VsZik6
Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJwotICAg
ICAgICAgICAgICAgICAnIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iIHRocm93biAnCi0gICAgICAg
ICAgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGNvbnN0cnVjdG9yJwotICAgICAgICAg
ICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAg
ICAgJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAnCisgICAgICAgICciU3RhbmRhcmQg
QysrIGV4Y2VwdGlvbiIgdGhyb3duICcKKyAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3Mg
Y29uc3RydWN0b3InIGluIEVYX0JJTkFSWV9PVVRQVVQsCisgICAgICAgIEVYX0JJTkFSWV9PVVRQ
VVQpCiAgICAgc2VsZi5hc3NlcnRfKCd1bmV4cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBV
VCwKICAgICAgICAgICAgICAgICAgJ1RoaXMgZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBv
bmx5IGlmICcKICAgICAgICAgICAgICAgICAgJyJDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVz
dCIgKG5vIHF1b3RlcykgJwpAQCAtMTMwLDg4ICsxMzEsOTAgQEAgY2xhc3MgQ2F0Y2hDeHhFeGNl
cHRpb25zVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAgIEVYX0JJTkFSWV9P
VVRQVVQpOgogCiAgICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luRml4dHVyZURlc3Ry
dWN0b3Ioc2VsZik6Ci0gICAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNj
cmlwdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgJyJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIiB0
aHJvd24gJwotICAgICAgICAgICAgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3Ry
dWN0b3InCi0gICAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICAgIHNl
bGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0Q2Fz
ZSgpICcKLSAgICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAg
ICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgICAgc2VsZi5hc3NlcnRUcnVlKAor
ICAgICAgICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJworICAgICAgICAgICci
U3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3duICcKKyAgICAgICAgICAnaW4gdGhlIHRlc3Qg
Zml4dHVyZVwncyBkZXN0cnVjdG9yJyBpbiBFWF9CSU5BUllfT1VUUFVULAorICAgICAgICAgIEVY
X0JJTkFSWV9PVVRQVVQpCisgICAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgJ0N4eEV4
Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgJworICAgICAgICAg
ICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VU
UFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJblNldFVwVGVzdENhc2Uoc2Vs
Zik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0
YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBTZXRV
cFRlc3RDYXNlKCknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAg
c2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0
Q2FzZSgpICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAg
ICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNl
cHRpb25JblNldFVwVGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICcKLSAgICAgICAgICAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQ
VVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGRl
c3RydWN0b3IgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAg
ICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4
Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlNldFVwKCkgJwotICAgICAgICAgICAgICAgICAn
Y2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBV
VCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRl
YXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAg
ICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4
Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICcKLSAgICAgICAgICAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRl
c2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4g
U2V0VXBUZXN0U3VpdGUoKScgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkK
KyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9y
VGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQu
JyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0IGNvbnN0cnVj
dG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQs
IEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQg
YXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVU
ZXN0OjpTZXRVcCgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFS
WV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAg
ICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3Q6OlRlYXJEb3duKCkgJworICAgICAg
ICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09V
VFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVw
VGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicg
aW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKIAogICBkZWYgdGVzdENhdGNo
ZXNDeHhFeGNlcHRpb25zSW5UZWFyRG93blRlc3RDYXNlKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0
XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9u
IicKLSAgICAgICAgICAgICAgICAgJyB0aHJvd24gaW4gVGVhckRvd25UZXN0Q2FzZSgpJwotICAg
ICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgK
KyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4
Y2VwdGlvbiInCisgICAgICAgICcgdGhyb3duIGluIFRlYXJEb3duVGVzdFN1aXRlKCknIGluIEVY
X0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4
RXhjZXB0aW9uc0luU2V0VXAoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9u
IHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAg
ICAgICAnIHRocm93biBpbiBTZXRVcCgpJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllf
T1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJE
b3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwot
ICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0Xygn
Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdj
YWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVU
KQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duKCkg
JwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAg
ICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdD
KysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJwor
ICAgICAgICAnIHRocm93biBpbiBTZXRVcCgpJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5B
UllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBl
Y3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5h
c3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QgZGVzdHJ1Y3RvciAn
CisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9C
SU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0OjpUZWFyRG93bigpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4n
IGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAgICAgc2VsZi5hc3NlcnRf
KCd1bmV4cGVjdGVkJyBub3QgaW4gRVhfQklOQVJZX09VVFBVVCwKICAgICAgICAgICAgICAgICAg
J1RoaXMgZmFpbHVyZSBiZWxvbmdzIGluIHRoaXMgdGVzdCBvbmx5IGlmICcKICAgICAgICAgICAg
ICAgICAgJyJDeHhFeGNlcHRpb25JblNldFVwVGVzdCIgKG5vIHF1b3RlcykgJwogICAgICAgICAg
ICAgICAgICAnYXBwZWFycyBvbiB0aGUgc2FtZSBsaW5lIGFzIHdvcmRzICJjYWxsZWQgdW5leHBl
Y3RlZGx5IicpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVhckRvd24oc2Vs
Zik6Ci0gICAgc2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0
YW5kYXJkIEMrKyBleGNlcHRpb24iJwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiBUZWFy
RG93bigpJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYu
YXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAn
Ci0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAg
ICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5U
ZWFyRG93blRlc3QgZGVzdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhw
ZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3Rh
bmRhcmQgQysrIGV4Y2VwdGlvbiInCisgICAgICAgICcgdGhyb3duIGluIFRlYXJEb3duKCknIGlu
IEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVl
KAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRl
KCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwg
RVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNl
cHRpb25JblRlYXJEb3duVGVzdCBkZXN0cnVjdG9yICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBl
Y3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRl
c3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVzdEJvZHkoc2VsZik6Ci0gICAgc2VsZi5hc3NlcnRf
KCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24i
JwotICAgICAgICAgICAgICAgICAnIHRocm93biBpbiB0aGUgdGVzdCBib2R5JwotICAgICAgICAg
ICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0
aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAgICAg
ICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VU
UFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1
Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAg
ICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0
aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVk
IGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAg
ICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRp
b24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJworICAgICAgICAnIHRocm93biBpbiB0aGUgdGVz
dCBib2R5JyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93
blRlc3RTdWl0ZSgpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFS
WV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAg
ICAnQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxs
ZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQor
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0
OjpUZWFyRG93bigpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFS
WV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzTm9uU3RkQ3h4
RXhjZXB0aW9ucyhzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ1Vua25vd24gQysrIGV4Y2VwdGlv
biB0aHJvd24gaW4gdGhlIHRlc3QgYm9keScKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdVbmtub3duIEMrKyBleGNl
cHRpb24gdGhyb3duIGluIHRoZSB0ZXN0IGJvZHknIGluIEVYX0JJTkFSWV9PVVRQVVQsCisgICAg
ICAgIEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RVbmhhbmRsZWRDeHhFeGNlcHRpb25z
QWJvcnRUaGVQcm9ncmFtKHNlbGYpOgogICAgICMgRmlsdGVycyBvdXQgU0VIIGV4Y2VwdGlvbiB0
ZXN0cyBvbiBXaW5kb3dzLiBVbmhhbmRsZWQgU0VIIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRl
c3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4
Y2VwdGlvbnMtdGVzdF8uY2MKaW5kZXggMDlkYWU3MDAzMGEzM2FlYWJhMDYwYWFlZjk3YTk3OWE4
ZjU4MDRhZS4uOGMxMjdkNDBiMTFkNGQ3MmEzZmFhZTgwYmFmYmI3NDZkMWFhNDEyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2Vw
dGlvbnMtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdF8uY2MKQEAgLTY0LDE5ICs2NCwyMCBAQCBjbGFzcyBT
ZWhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDogcHVibGljIFRlc3QgewogCiBURVNUX0YoU2Vo
RXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5EZXN0cnVjdG9yKSB7
fQogCi1jbGFzcyBTZWhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3Qg
eworY2xhc3MgU2VoRXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7
CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeyBSYWlzZUV4Y2VwdGlv
big0MiwgMCwgMCwgTlVMTCk7IH0KKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7IFJh
aXNlRXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsgfQogfTsKIAotVEVTVF9GKFNlaEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZSkge30K
K1RFU1RfRihTZWhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCwgVGhyb3dzRXhjZXB0aW9u
SW5TZXRVcFRlc3RTdWl0ZSkge30KIAotY2xhc3MgU2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RD
YXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKK2NsYXNzIFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0
U3VpdGVUZXN0IDogcHVibGljIFRlc3QgewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRv
d25UZXN0Q2FzZSgpIHsgUmFpc2VFeGNlcHRpb24oNDIsIDAsIDAsIE5VTEwpOyB9CisgIHN0YXRp
YyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwgMCwgTlVM
TCk7IH0KIH07CiAKLVRFU1RfRihTZWhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBU
aHJvd3NFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2UpIHt9CitURVNUX0YoU2VoRXhjZXB0aW9u
SW5UZWFyRG93blRlc3RTdWl0ZVRlc3QsCisgICAgICAgVGhyb3dzRXhjZXB0aW9uSW5UZWFyRG93
blRlc3RTdWl0ZSkge30KIAogY2xhc3MgU2VoRXhjZXB0aW9uSW5TZXRVcFRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgcHJvdGVjdGVkOgpAQCAtMTA5LDI0ICsxMTAsMjQgQEAgY2xhc3MgQ3h4RXhjZXB0
aW9uSW5Db25zdHJ1Y3RvclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgICAgICAgIHRocm93IHN0ZDo6
cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpKTsKICAgfQogCi0gIHN0YXRp
YyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1
aXRlKCkgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5Db25z
dHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRp
b25JbkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJj
YWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0
aW9uSW5Db25zdHJ1Y3RvclRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JbkNvbnN0cnVjdG9yVGVz
dCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25JbkNvbnN0
cnVjdG9yVGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5l
eHBlY3RlZGx5LiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25z
dHJ1Y3RvclRlc3Q6OlNldFVwKCkgIgogICAgICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4
cGVjdGVkbHkuIjsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBU
ZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJDeHhFeGNlcHRpb25J
bkNvbnN0cnVjdG9yVGVzdDo6VGVhckRvd24oKSAiCiAgICAgICAgICAgICAgICAgICA8PCAiY2Fs
bGVkIHVuZXhwZWN0ZWRseS4iOwogICB9CkBAIC0xMzcsOTcgKzEzOCw3OCBAQCBURVNUX0YoQ3h4
RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QsIFRocm93c0V4Y2VwdGlvbkluQ29uc3RydWN0b3Ip
IHsKICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogfQogCi0vLyBF
eGNlcHRpb25zIGluIGRlc3RydWN0b3JzIGFyZSBub3Qgc3VwcG9ydGVkIGluIEMrKzExLgotI2lm
ICFHVEVTVF9MQU5HX0NYWDExCi1jbGFzcyBDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0IDog
cHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkg
eworICBDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCgpIHsKICAgICBwcmludGYoIiVz
IiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVz
dENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCBj
b25zdHJ1Y3RvciAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQog
Ci0gcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCgpIHsKLSAgICBH
VEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKAotICAgICAgICB0
aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKSk7Ci0gIH0K
LX07Ci0KLVRFU1RfRihDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JUZXN0LCBUaHJvd3NFeGNlcHRp
b25JbkRlc3RydWN0b3IpIHt9Ci0jZW5kaWYgIC8vIEMrKzExIG1vZGUKLQotY2xhc3MgQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKLSBwdWJsaWM6Ci0gIEN4
eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QoKSB7Ci0gICAgcHJpbnRmKCIlcyIsCi0gICAg
ICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0IGNvbnN0cnVjdG9yICIKLSAg
ICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwotICB9Ci0KLSAgc3RhdGljIHZvaWQg
U2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAg
dGhyb3cgc3RkOjpydW50aW1lX2Vycm9yKCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7CiAgIH0K
IAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFy
RG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2Vw
dGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAg
ICJDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAi
CiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVk
OgotICB+Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCgpIHsKKyAgfkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0U3VpdGVUZXN0KCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAg
ICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCBkZXN0cnVjdG9yICIKKyAg
ICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0IGRlc3RydWN0b3IgIgog
ICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIs
Ci0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0OjpTZXRVcCgpICIK
KyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0OjpTZXRVcCgpICIK
ICAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50
ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdDo6VGVh
ckRvd24oKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6
VGVhckRvd24oKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQog
fTsKIAotVEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QsIFRocm93c0V4Y2Vw
dGlvbkluU2V0VXBUZXN0Q2FzZSkgeworVEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3Vp
dGVUZXN0LCBUaHJvd3NFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlKSB7CiAgIHByaW50ZigiJXMi
LAotICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3QgdGVzdCBib2R5ICIK
KyAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGJvZHkgIgog
ICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogfQogCi1jbGFzcyBDeHhFeGNlcHRp
b25JblRlYXJEb3duVGVzdENhc2VUZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgQ3h4RXhjZXB0
aW9uSW5UZWFyRG93blRlc3RTdWl0ZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBz
dGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRl
c3RTdWl0ZSgpIHsKICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBl
eGNlcHRpb24iKTsKICAgfQogfTsKIAotVEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0
Q2FzZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZSkge30KK1RFU1RfRihD
eHhFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1aXRlVGVzdCwKKyAgICAgICBUaHJvd3NFeGNlcHRp
b25JblRlYXJEb3duVGVzdFN1aXRlKSB7fQogCiBjbGFzcyBDeHhFeGNlcHRpb25JblNldFVwVGVz
dCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENh
c2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIHByaW50Zigi
JXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdENh
c2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd25UZXN0
U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCiAg
cHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QoKSB7CisgIH5DeHhFeGNlcHRp
b25JblNldFVwVGVzdCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAg
IkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0IGRlc3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVk
IGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7IHRocm93
IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOyB9CisgIHZvaWQg
U2V0VXAoKSBvdmVycmlkZSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysr
IGV4Y2VwdGlvbiIpOyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAogICAgICAgICAgICAiQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4
cGVjdGVkLlxuIik7CkBAIC0yNDEsMjAgKzIyMywyMCBAQCBURVNUX0YoQ3h4RXhjZXB0aW9uSW5T
ZXRVcFRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXApIHsKIAogY2xhc3MgQ3h4RXhjZXB0aW9u
SW5UZWFyRG93blRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBU
ZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsK
ICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0
OjpUZWFyRG93blRlc3RDYXNlKCkgIgorICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93
blRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVj
dGVkLlxuIik7CiAgIH0KIAogIHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlvbkluVGVhckRvd25U
ZXN0KCkgeworICB+Q3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QoKSBvdmVycmlkZSB7CiAgICAg
cHJpbnRmKCIlcyIsCiAgICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCBkZXN0
cnVjdG9yICIKICAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewog
ICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwog
ICB9CiB9OwpAQCAtMjYzLDIwICsyNDUsMjAgQEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluVGVhckRv
d25UZXN0LCBUaHJvd3NFeGNlcHRpb25JblRlYXJEb3duKSB7fQogCiBjbGFzcyBDeHhFeGNlcHRp
b25JblRlc3RCb2R5VGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lk
IFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkg
ewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRl
c3Q6OlRlYXJEb3duVGVzdENhc2UoKSAiCisgICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RC
b2R5VGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhw
ZWN0ZWQuXG4iKTsKICAgfQogCiAgcHJvdGVjdGVkOgotICB+Q3h4RXhjZXB0aW9uSW5UZXN0Qm9k
eVRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdCgpIG92ZXJyaWRlIHsKICAg
ICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0IGRl
c3RydWN0b3IgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7
CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVz
dDo6VGVhckRvd24oKSAiCiAgICAgICAgICAgICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKQEAg
LTI5Niw3ICsyNzgsNyBAQCBURVNUKEN4eEV4Y2VwdGlvblRlc3QsIFRocm93c05vblN0ZEN4eEV4
Y2VwdGlvbikgewogLy8gb25lcy4KIHZvaWQgVGVybWluYXRlSGFuZGxlcigpIHsKICAgZnByaW50
ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxlZCBDKysgZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRo
ZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVMTCk7CisgIGZmbHVzaChudWxscHRyKTsKICAgZXhp
dCgzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWRlYXRoLXRlc3QtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1kZWF0aC10ZXN0LXRlc3QuY2MKaW5kZXggYzBjMzAyNmZiNTg5NTY2MGFkMmM5
ZDY1ZmJkOTliNWZhZjlhZDQ4Yy4uYzBiM2QxZjIxZDA0ZDNkZTc3ODAzODM2NzA0Y2I3ZjQ3ZDJh
ZGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWRlYXRoLXRlc3QtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtZGVhdGgtdGVzdC10ZXN0LmNjCkBAIC0zMSw2ICszMSw3IEBACiAvLyBUZXN0cyBm
b3IgZGVhdGggdGVzdHMuCiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgiCisK
ICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0
LWZpbGVwYXRoLmgiCiAKQEAgLTQwLDcgKzQxLDkgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
OkFsd2F5c1RydWU7CiAjaWYgR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAogIyBpZiBHVEVTVF9PU19X
SU5ET1dTCisjICBpbmNsdWRlIDxmY250bC5oPiAgICAgICAgICAgLy8gRm9yIE9fQklOQVJZCiAj
ICBpbmNsdWRlIDxkaXJlY3QuaD4gICAgICAgICAgLy8gRm9yIGNoZGlyKCkuCisjICBpbmNsdWRl
IDxpby5oPgogIyBlbHNlCiAjICBpbmNsdWRlIDx1bmlzdGQuaD4KICMgIGluY2x1ZGUgPHN5cy93
YWl0Lmg+ICAgICAgICAvLyBGb3Igd2FpdHBpZC4KQEAgLTU5LDYgKzYyLDggQEAgdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7CiAKIG5hbWVzcGFjZSBwb3NpeCA9IDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OnBvc2l4OwogCit1c2luZyB0ZXN0aW5nOjpDb250YWluc1JlZ2V4OwordXNp
bmcgdGVzdGluZzo6TWF0Y2hlcjsKIHVzaW5nIHRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkRlYXRo
VGVzdEZhY3Rvcnk7CkBAIC05Nyw2ICsxMDIsOCBAQCBjbGFzcyBSZXBsYWNlRGVhdGhUZXN0RmFj
dG9yeSB7CiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5n
CiAKK25hbWVzcGFjZSB7CisKIHZvaWQgRGllV2l0aE1lc3NhZ2UoY29uc3QgOjpzdGQ6OnN0cmlu
ZyYgbWVzc2FnZSkgewogICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgbWVzc2FnZS5jX3N0cigpKTsK
ICAgZmZsdXNoKHN0ZGVycik7ICAvLyBNYWtlIHN1cmUgdGhlIHRleHQgaXMgcHJpbnRlZCBiZWZv
cmUgdGhlIHByb2Nlc3MgZXhpdHMuCkBAIC0xMjMsOSArMTMwLDcgQEAgY2xhc3MgVGVzdEZvckRl
YXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIFRlc3RGb3JE
ZWF0aFRlc3QoKSA6IG9yaWdpbmFsX2Rpcl8oRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSkge30K
IAotICB2aXJ0dWFsIH5UZXN0Rm9yRGVhdGhUZXN0KCkgewotICAgIHBvc2l4OjpDaERpcihvcmln
aW5hbF9kaXJfLmNfc3RyKCkpOwotICB9CisgIH5UZXN0Rm9yRGVhdGhUZXN0KCkgb3ZlcnJpZGUg
eyBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfZGlyXy5jX3N0cigpKTsgfQogCiAgIC8vIEEgc3RhdGlj
IG1lbWJlciBmdW5jdGlvbiB0aGF0J3MgZXhwZWN0ZWQgdG8gZGllLgogICBzdGF0aWMgdm9pZCBT
dGF0aWNNZW1iZXJGdW5jdGlvbigpIHsgRGllSW5zaWRlKCJTdGF0aWNNZW1iZXJGdW5jdGlvbiIp
OyB9CkBAIC0xMzYsNyArMTQxLDcgQEAgY2xhc3MgVGVzdEZvckRlYXRoVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0IHsKICAgICAgIERpZUluc2lkZSgiTWVtYmVyRnVuY3Rpb24iKTsKICAgfQog
Ci0gIC8vIFRydWUgaWZmIE1lbWJlckZ1bmN0aW9uKCkgc2hvdWxkIGRpZS4KKyAgLy8gVHJ1ZSBp
ZiBhbmQgb25seSBpZiBNZW1iZXJGdW5jdGlvbigpIHNob3VsZCBkaWUuCiAgIGJvb2wgc2hvdWxk
X2RpZV87CiAgIGNvbnN0IEZpbGVQYXRoIG9yaWdpbmFsX2Rpcl87CiB9OwpAQCAtMTUzLDcgKzE1
OCw3IEBAIGNsYXNzIE1heURpZSB7CiAgIH0KIAogIHByaXZhdGU6Ci0gIC8vIFRydWUgaWZmIE1l
bWJlckZ1bmN0aW9uKCkgc2hvdWxkIGRpZS4KKyAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiBNZW1i
ZXJGdW5jdGlvbigpIHNob3VsZCBkaWUuCiAgIGJvb2wgc2hvdWxkX2RpZV87CiB9OwogCkBAIC0x
OTksNiArMjA0LDI2IEBAIGludCBEaWVJbkRlYnVnRWxzZTEyKGludCogc2lkZWVmZmVjdCkgewog
ICByZXR1cm4gMTI7CiB9CiAKKyMgaWYgR1RFU1RfT1NfV0lORE9XUworCisvLyBEZWF0aCBpbiBk
YmcgZHVlIHRvIFdpbmRvd3MgQ1JUIGFzc2VydGlvbiBmYWlsdXJlLCBub3Qgb3B0LgoraW50IERp
ZUluQ1JURGVidWdFbHNlMTIoaW50KiBzaWRlZWZmZWN0KSB7CisgIGlmIChzaWRlZWZmZWN0KSAq
c2lkZWVmZmVjdCA9IDEyOworCisgIC8vIENyZWF0ZSBhbiBpbnZhbGlkIGZkIGJ5IGNsb3Npbmcg
YSB2YWxpZCBvbmUKKyAgaW50IGZkcGlwZVsyXTsKKyAgRVhQRUNUX0VRKF9waXBlKGZkcGlwZSwg
MjU2LCBPX0JJTkFSWSksIDApOworICBFWFBFQ1RfRVEoX2Nsb3NlKGZkcGlwZVswXSksIDApOwor
ICBFWFBFQ1RfRVEoX2Nsb3NlKGZkcGlwZVsxXSksIDApOworCisgIC8vIF9kdXAoKSBzaG91bGQg
Y3Jhc2ggaW4gZGVidWcgbW9kZQorICBFWFBFQ1RfRVEoX2R1cChmZHBpcGVbMF0pLCAtMSk7CisK
KyAgcmV0dXJuIDEyOworfQorCisjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKKwogIyBpZiBH
VEVTVF9PU19XSU5ET1dTIHx8IEdURVNUX09TX0ZVQ0hTSUEKIAogLy8gVGVzdHMgdGhlIEV4aXRl
ZFdpdGhDb2RlIHByZWRpY2F0ZS4KQEAgLTI3Myw2ICsyOTgsMTMgQEAgVEVTVChFeGl0U3RhdHVz
UHJlZGljYXRlVGVzdCwgS2lsbGVkQnlTaWduYWwpIHsKIAogIyBlbmRpZiAgLy8gR1RFU1RfT1Nf
V0lORE9XUyB8fCBHVEVTVF9PU19GVUNIU0lBCiAKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRl
bnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RhbmdsaW5nLWVsc2UiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1w
dHktYm9keSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2Vu
ZGlmCiAvLyBUZXN0cyB0aGF0IHRoZSBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3
aGljaCBtYXkgb3IgbWF5IG5vdAogLy8gYmUgZm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRo
YXQgaW4gZWl0aGVyIGNhc2UgdGhlIGNvbXBsZXRlIHRleHQKIC8vIGNvbXByaXNlcyBvbmx5IGEg
c2luZ2xlIEMrKyBzdGF0ZW1lbnQuCkBAIC0yOTYsNiArMzI4LDExIEBAIFRFU1RfRihUZXN0Rm9y
RGVhdGhUZXN0LCBTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9ERUFUSChf
ZXhpdCgxKSwgIiIpIDw8IDEgPDwgMiA8PCAzOwogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCisKKyMgaWYgR1RFU1RfVVNFU19QQ1JFCiAKIHZv
aWQgRGllV2l0aEVtYmVkZGVkTnVsKCkgewogICBmcHJpbnRmKHN0ZGVyciwgIkhlbGxvJWNteSBu
dWxsIHdvcmxkLlxuIiwgJ1wwJyk7CkBAIC0zMDMsOCArMzQwLDYgQEAgdm9pZCBEaWVXaXRoRW1i
ZWRkZWROdWwoKSB7CiAgIF9leGl0KDEpOwogfQogCi0jIGlmIEdURVNUX1VTRVNfUENSRQotCiAv
LyBUZXN0cyB0aGF0IEVYUEVDVF9ERUFUSCBhbmQgQVNTRVJUX0RFQVRIIHdvcmsgd2hlbiB0aGUg
ZXJyb3IKIC8vIG1lc3NhZ2UgaGFzIGEgTlVMIGNoYXJhY3RlciBpbiBpdC4KIFRFU1RfRihUZXN0
Rm9yRGVhdGhUZXN0LCBFbWJlZGRlZE51bEluTWVzc2FnZSkgewpAQCAtMzY2LDE3ICs0MDEsMTkg
QEAgdm9pZCBTaWdwcm9mQWN0aW9uKGludCwgc2lnaW5mb190Kiwgdm9pZCopIHsgLyogbm8gb3Ag
Ki8gfQogCiAvLyBTZXRzIFNJR1BST0YgYWN0aW9uIGFuZCBJVElNRVJfUFJPRiB0aW1lciAoaW50
ZXJ2YWw6IDFtcykuCiB2b2lkIFNldFNpZ3Byb2ZBY3Rpb25BbmRUaW1lcigpIHsKLSAgc3RydWN0
IGl0aW1lcnZhbCB0aW1lcjsKLSAgdGltZXIuaXRfaW50ZXJ2YWwudHZfc2VjID0gMDsKLSAgdGlt
ZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9IDE7Ci0gIHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRf
aW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwg
TlVMTCkpOwogICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25hbF9hY3Rpb247CiAgIG1lbXNldCgmc2ln
bmFsX2FjdGlvbiwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rpb24pKTsKICAgc2lnZW1wdHlzZXQoJnNp
Z25hbF9hY3Rpb24uc2FfbWFzayk7CiAgIHNpZ25hbF9hY3Rpb24uc2Ffc2lnYWN0aW9uID0gU2ln
cHJvZkFjdGlvbjsKICAgc2lnbmFsX2FjdGlvbi5zYV9mbGFncyA9IFNBX1JFU1RBUlQgfCBTQV9T
SUdJTkZPOwotICBBU1NFUlRfRVEoMCwgc2lnYWN0aW9uKFNJR1BST0YsICZzaWduYWxfYWN0aW9u
LCBOVUxMKSk7CisgIEFTU0VSVF9FUSgwLCBzaWdhY3Rpb24oU0lHUFJPRiwgJnNpZ25hbF9hY3Rp
b24sIG51bGxwdHIpKTsKKyAgLy8gdGltZXIgY29tZXMgc2Vjb25kLCB0byBhdm9pZCBTSUdQUk9G
IHByZW1hdHVyZSBkZWxpdmVyeSwgYXMgc3VnZ2VzdGVkIGF0CisgIC8vIGh0dHBzOi8vd3d3Lmdu
dS5vcmcvc29mdHdhcmUvbGliYy9tYW51YWwvaHRtbF9ub2RlL1NldHRpbmctYW4tQWxhcm0uaHRt
bAorICBzdHJ1Y3QgaXRpbWVydmFsIHRpbWVyOworICB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMg
PSAwOworICB0aW1lci5pdF9pbnRlcnZhbC50dl91c2VjID0gMTsKKyAgdGltZXIuaXRfdmFsdWUg
PSB0aW1lci5pdF9pbnRlcnZhbDsKKyAgQVNTRVJUX0VRKDAsIHNldGl0aW1lcihJVElNRVJfUFJP
RiwgJnRpbWVyLCBudWxscHRyKSk7CiB9CiAKIC8vIERpc2FibGVzIElUSU1FUl9QUk9GIHRpbWVy
IGFuZCBpZ25vcmVzIFNJR1BST0Ygc2lnbmFsLgpAQCAtMzg1LDcgKzQyMiw3IEBAIHZvaWQgRGlz
YWJsZVNpZ3Byb2ZBY3Rpb25BbmRUaW1lcihzdHJ1Y3Qgc2lnYWN0aW9uKiBvbGRfc2lnbmFsX2Fj
dGlvbikgewogICB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOwogICB0aW1lci5pdF9pbnRl
cnZhbC50dl91c2VjID0gMDsKICAgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsK
LSAgQVNTRVJUX0VRKDAsIHNldGl0aW1lcihJVElNRVJfUFJPRiwgJnRpbWVyLCBOVUxMKSk7Cisg
IEFTU0VSVF9FUSgwLCBzZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgbnVsbHB0cikpOwog
ICBzdHJ1Y3Qgc2lnYWN0aW9uIHNpZ25hbF9hY3Rpb247CiAgIG1lbXNldCgmc2lnbmFsX2FjdGlv
biwgMCwgc2l6ZW9mKHNpZ25hbF9hY3Rpb24pKTsKICAgc2lnZW1wdHlzZXQoJnNpZ25hbF9hY3Rp
b24uc2FfbWFzayk7CkBAIC00NTIsMjEgKzQ4OSwxNyBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVz
dCwgTWl4ZWRTdHlsZXMpIHsKIAogIyBpZiBHVEVTVF9IQVNfQ0xPTkUgJiYgR1RFU1RfSEFTX1BU
SFJFQUQKIAotbmFtZXNwYWNlIHsKLQogYm9vbCBwdGhyZWFkX2ZsYWc7CiAKIHZvaWQgU2V0UHRo
cmVhZEZsYWcoKSB7CiAgIHB0aHJlYWRfZmxhZyA9IHRydWU7CiB9CiAKLX0gIC8vIG5hbWVzcGFj
ZQotCiBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRG9lc05vdEV4ZWN1dGVBdGZvcmtIb29rcykg
ewogICBpZiAoIXRlc3Rpbmc6OkdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpIHsKICAg
ICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID0gInRocmVhZHNhZmUiOwog
ICAgIHB0aHJlYWRfZmxhZyA9IGZhbHNlOwotICAgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2F0Zm9y
aygmU2V0UHRocmVhZEZsYWcsIE5VTEwsIE5VTEwpKTsKKyAgICBBU1NFUlRfRVEoMCwgcHRocmVh
ZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFnLCBudWxscHRyLCBudWxscHRyKSk7CiAgICAgQVNTRVJU
X0RFQVRIKF9leGl0KDEpLCAiIik7CiAgICAgQVNTRVJUX0ZBTFNFKHB0aHJlYWRfZmxhZyk7CiAg
IH0KQEAgLTQ5NCwxOCArNTI3LDE1IEBAIFRFU1RfRihUZXN0Rm9yRGVhdGhUZXN0LCBBY2NlcHRz
QW55dGhpbmdDb252ZXJ0aWJsZVRvUkUpIHsKICAgY29uc3QgdGVzdGluZzo6aW50ZXJuYWw6OlJF
IHJlZ2V4KHJlZ2V4X2Nfc3RyKTsKICAgRVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJl
Z2V4KTsKIAotIyBpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0gIGNvbnN0IDo6c3RyaW5n
IHJlZ2V4X3N0cihyZWdleF9jX3N0cik7Ci0gIEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigp
LCByZWdleF9zdHIpOwotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAj
IGlmICFHVEVTVF9VU0VTX1BDUkUKIAogICBjb25zdCA6OnN0ZDo6c3RyaW5nIHJlZ2V4X3N0ZF9z
dHIocmVnZXhfY19zdHIpOwogICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgcmVnZXhf
c3RkX3N0cik7CiAKKyAgLy8gVGhpcyBvbmUgaXMgdHJpY2t5OyBhIHRlbXBvcmFyeSBwb2ludGVy
IGludG8gYW5vdGhlciB0ZW1wb3JhcnkuICBSZWZlcmVuY2UKKyAgLy8gbGlmZXRpbWUgZXh0ZW5z
aW9uIG9mIHRoZSBwb2ludGVyIGlzIG5vdCBzdWZmaWNpZW50LgorICBFWFBFQ1RfREVBVEgoR2xv
YmFsRnVuY3Rpb24oKSwgOjpzdGQ6OnN0cmluZyhyZWdleF9jX3N0cikuY19zdHIoKSk7CisKICMg
ZW5kaWYgIC8vICFHVEVTVF9VU0VTX1BDUkUKIH0KIApAQCAtNTU1LDggKzU4NSw4IEBAIFRFU1Rf
RihUZXN0Rm9yRGVhdGhUZXN0LCBFcnJvck1lc3NhZ2VNaXNtYXRjaCkgewogICB9LCAiZGllZCBi
dXQgbm90IHdpdGggZXhwZWN0ZWQgZXJyb3IiKTsKIH0KIAotLy8gT24gZXhpdCwgKmFib3J0ZWQg
d2lsbCBiZSB0cnVlIGlmZiB0aGUgRVhQRUNUX0RFQVRIKCkgc3RhdGVtZW50Ci0vLyBhYm9ydGVk
IHRoZSBmdW5jdGlvbi4KKy8vIE9uIGV4aXQsICphYm9ydGVkIHdpbGwgYmUgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgRVhQRUNUX0RFQVRIKCkKKy8vIHN0YXRlbWVudCBhYm9ydGVkIHRoZSBmdW5j
dGlvbi4KIHZvaWQgRXhwZWN0RGVhdGhUZXN0SGVscGVyKGJvb2wqIGFib3J0ZWQpIHsKICAgKmFi
b3J0ZWQgPSB0cnVlOwogICBFWFBFQ1RfREVBVEgoRGllSWYoZmFsc2UpLCAiRGllSWYiKTsgIC8v
IFRoaXMgYXNzZXJ0aW9uIHNob3VsZCBmYWlsLgpAQCAtNjM2LDYgKzY2Niw0MCBAQCBURVNUX0Yo
VGVzdEZvckRlYXRoVGVzdCwgVGVzdEV4cGVjdERlYnVnRGVhdGgpIHsKICMgZW5kaWYKIH0KIAor
IyBpZiBHVEVTVF9PU19XSU5ET1dTCisKKy8vIFRlc3RzIHRoYXQgRVhQRUNUX0RFQlVHX0RFQVRI
IHdvcmtzIGFzIGV4cGVjdGVkIHdoZW4gaW4gZGVidWcgbW9kZQorLy8gdGhlIFdpbmRvd3MgQ1JU
IGNyYXNoZXMgdGhlIHByb2Nlc3Mgd2l0aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKy8vIDEuIEFz
c2VydHMgb24gZGVhdGguCisvLyAyLiBIYXMgbm8gc2lkZSBlZmZlY3QgKGRvZXNuJ3QgcG9wIHVw
IGEgd2luZG93IG9yIHdhaXQgZm9yIHVzZXIgaW5wdXQpLgorLy8KKy8vIEFuZCBpbiBvcHQgbW9k
ZSwgaXQ6CisvLyAxLiAgSGFzIHNpZGUgZWZmZWN0cyBidXQgZG9lcyBub3QgYXNzZXJ0LgorVEVT
VF9GKFRlc3RGb3JEZWF0aFRlc3QsIENSVERlYnVnRGVhdGgpIHsKKyAgaW50IHNpZGVlZmZlY3Qg
PSAwOworCisgIC8vIFB1dCB0aGUgcmVnZXggaW4gYSBsb2NhbCB2YXJpYWJsZSB0byBtYWtlIHN1
cmUgd2UgZG9uJ3QgZ2V0IGFuICJ1bnVzZWQiCisgIC8vIHdhcm5pbmcgaW4gb3B0IG1vZGUuCisg
IGNvbnN0IGNoYXIqIHJlZ2V4ID0gImR1cC4qIDogQXNzZXJ0aW9uIGZhaWxlZCI7CisKKyAgRVhQ
RUNUX0RFQlVHX0RFQVRIKERpZUluQ1JURGVidWdFbHNlMTIoJnNpZGVlZmZlY3QpLCByZWdleCkK
KyAgICAgIDw8ICJNdXN0IGFjY2VwdCBhIHN0cmVhbWVkIG1lc3NhZ2UiOworCisjIGlmZGVmIE5E
RUJVRworCisgIC8vIENoZWNrcyB0aGF0IHRoZSBhc3NpZ25tZW50IG9jY3VycyBpbiBvcHQgbW9k
ZSAoc2lkZWVmZmVjdCkuCisgIEVYUEVDVF9FUSgxMiwgc2lkZWVmZmVjdCk7CisKKyMgZWxzZQor
CisgIC8vIENoZWNrcyB0aGF0IHRoZSBhc3NpZ25tZW50IGRvZXMgbm90IG9jY3VyIGluIGRiZyBt
b2RlIChubyBzaWRlZWZmZWN0KS4KKyAgRVhQRUNUX0VRKDAsIHNpZGVlZmZlY3QpOworCisjIGVu
ZGlmCit9CisKKyMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MKKwogLy8gVGVzdHMgdGhhdCBB
U1NFUlRfREVCVUdfREVBVEggd29ya3MgYXMgZXhwZWN0ZWQsIHRoYXQgaXMsIHlvdSBjYW4gc3Ry
ZWFtIGEKIC8vIG1lc3NhZ2UgdG8gaXQsIGFuZCBpbiBkZWJ1ZyBtb2RlIGl0OgogLy8gMS4gQXNz
ZXJ0cyBvbiBkZWF0aC4KQEAgLTg3Niw5ICs5NDAsOSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVz
dCwgRGVhdGhUZXN0TXVsdGlMaW5lTWF0Y2hQYXNzKSB7CiBjbGFzcyBNb2NrRGVhdGhUZXN0RmFj
dG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RGYWN0b3J5IHsKICBwdWJsaWM6CiAgIE1vY2tEZWF0aFRl
c3RGYWN0b3J5KCk7Ci0gIHZpcnR1YWwgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50
LAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFKiBy
ZWdleCwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwg
RGVhdGhUZXN0KiogdGVzdCk7CisgIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwK
KyAgICAgICAgICAgICAgdGVzdGluZzo6TWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNo
ZXIsIGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgIGludCBsaW5lLCBEZWF0aFRlc3Qq
KiB0ZXN0KSBvdmVycmlkZTsKIAogICAvLyBTZXRzIHRoZSBwYXJhbWV0ZXJzIGZvciBzdWJzZXF1
ZW50IGNhbGxzIHRvIENyZWF0ZS4KICAgdm9pZCBTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLCBE
ZWF0aFRlc3Q6OlRlc3RSb2xlIHJvbGUsCkBAIC04ODgsMTAgKzk1MiwxMiBAQCBjbGFzcyBNb2Nr
RGVhdGhUZXN0RmFjdG9yeSA6IHB1YmxpYyBEZWF0aFRlc3RGYWN0b3J5IHsKICAgaW50IEFzc3Vt
ZVJvbGVDYWxscygpIGNvbnN0IHsgcmV0dXJuIGFzc3VtZV9yb2xlX2NhbGxzXzsgfQogICBpbnQg
V2FpdENhbGxzKCkgY29uc3QgeyByZXR1cm4gd2FpdF9jYWxsc187IH0KICAgc2l6ZV90IFBhc3Nl
ZENhbGxzKCkgY29uc3QgeyByZXR1cm4gcGFzc2VkX2FyZ3NfLnNpemUoKTsgfQotICBib29sIFBh
c3NlZEFyZ3VtZW50KGludCBuKSBjb25zdCB7IHJldHVybiBwYXNzZWRfYXJnc19bbl07IH0KKyAg
Ym9vbCBQYXNzZWRBcmd1bWVudChpbnQgbikgY29uc3QgeworICAgIHJldHVybiBwYXNzZWRfYXJn
c19bc3RhdGljX2Nhc3Q8c2l6ZV90PihuKV07CisgIH0KICAgc2l6ZV90IEFib3J0Q2FsbHMoKSBj
b25zdCB7IHJldHVybiBhYm9ydF9hcmdzXy5zaXplKCk7IH0KICAgRGVhdGhUZXN0OjpBYm9ydFJl
YXNvbiBBYm9ydEFyZ3VtZW50KGludCBuKSBjb25zdCB7Ci0gICAgcmV0dXJuIGFib3J0X2FyZ3Nf
W25dOworICAgIHJldHVybiBhYm9ydF9hcmdzX1tzdGF0aWNfY2FzdDxzaXplX3Q+KG4pXTsKICAg
fQogICBib29sIFRlc3REZWxldGVkKCkgY29uc3QgeyByZXR1cm4gdGVzdF9kZWxldGVkXzsgfQog
CkBAIC05MzMsMjIgKzk5OSwyMCBAQCBjbGFzcyBNb2NrRGVhdGhUZXN0IDogcHVibGljIERlYXRo
VGVzdCB7CiAgICAgICAgICAgICAgICAgVGVzdFJvbGUgcm9sZSwgaW50IHN0YXR1cywgYm9vbCBw
YXNzZWQpIDoKICAgICAgIHBhcmVudF8ocGFyZW50KSwgcm9sZV8ocm9sZSksIHN0YXR1c18oc3Rh
dHVzKSwgcGFzc2VkXyhwYXNzZWQpIHsKICAgfQotICB2aXJ0dWFsIH5Nb2NrRGVhdGhUZXN0KCkg
ewotICAgIHBhcmVudF8tPnRlc3RfZGVsZXRlZF8gPSB0cnVlOwotICB9Ci0gIHZpcnR1YWwgVGVz
dFJvbGUgQXNzdW1lUm9sZSgpIHsKKyAgfk1vY2tEZWF0aFRlc3QoKSBvdmVycmlkZSB7IHBhcmVu
dF8tPnRlc3RfZGVsZXRlZF8gPSB0cnVlOyB9CisgIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSBvdmVy
cmlkZSB7CiAgICAgKytwYXJlbnRfLT5hc3N1bWVfcm9sZV9jYWxsc187CiAgICAgcmV0dXJuIHJv
bGVfOwogICB9Ci0gIHZpcnR1YWwgaW50IFdhaXQoKSB7CisgIGludCBXYWl0KCkgb3ZlcnJpZGUg
ewogICAgICsrcGFyZW50Xy0+d2FpdF9jYWxsc187CiAgICAgcmV0dXJuIHN0YXR1c187CiAgIH0K
LSAgdmlydHVhbCBib29sIFBhc3NlZChib29sIGV4aXRfc3RhdHVzX29rKSB7CisgIGJvb2wgUGFz
c2VkKGJvb2wgZXhpdF9zdGF0dXNfb2spIG92ZXJyaWRlIHsKICAgICBwYXJlbnRfLT5wYXNzZWRf
YXJnc18ucHVzaF9iYWNrKGV4aXRfc3RhdHVzX29rKTsKICAgICByZXR1cm4gcGFzc2VkXzsKICAg
fQotICB2aXJ0dWFsIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSB7CisgIHZvaWQgQWJv
cnQoQWJvcnRSZWFzb24gcmVhc29uKSBvdmVycmlkZSB7CiAgICAgcGFyZW50Xy0+YWJvcnRfYXJn
c18ucHVzaF9iYWNrKHJlYXNvbik7CiAgIH0KIApAQCAtOTkyLDE2ICsxMDU2LDE0IEBAIHZvaWQg
TW9ja0RlYXRoVGVzdEZhY3Rvcnk6OlNldFBhcmFtZXRlcnMoYm9vbCBjcmVhdGUsCiAvLyBTZXRz
IHRlc3QgdG8gTlVMTCAoaWYgY3JlYXRlXyBpcyBmYWxzZSkgb3IgdG8gdGhlIGFkZHJlc3Mgb2Yg
YSBuZXcKIC8vIE1vY2tEZWF0aFRlc3Qgb2JqZWN0IHdpdGggcGFyYW1ldGVycyB0YWtlbiBmcm9t
IHRoZSBsYXN0IGNhbGwKIC8vIHRvIFNldFBhcmFtZXRlcnMgKGlmIGNyZWF0ZV8gaXMgdHJ1ZSku
ICBBbHdheXMgcmV0dXJucyB0cnVlLgotYm9vbCBNb2NrRGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRl
KGNvbnN0IGNoYXIqIC8qc3RhdGVtZW50Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UkUqIC8qcmVnZXgqLywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiAvKmZpbGUqLywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLypsaW5lKi8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRGVhdGhUZXN0KiogdGVzdCkgeworYm9vbCBNb2NrRGVhdGhUZXN0
RmFjdG9yeTo6Q3JlYXRlKAorICAgIGNvbnN0IGNoYXIqIC8qc3RhdGVtZW50Ki8sIHRlc3Rpbmc6
Ok1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiAvKm1hdGNoZXIqLywKKyAgICBjb25zdCBjaGFy
KiAvKmZpbGUqLywgaW50IC8qbGluZSovLCBEZWF0aFRlc3QqKiB0ZXN0KSB7CiAgIHRlc3RfZGVs
ZXRlZF8gPSBmYWxzZTsKICAgaWYgKGNyZWF0ZV8pIHsKICAgICAqdGVzdCA9IG5ldyBNb2NrRGVh
dGhUZXN0KHRoaXMsIHJvbGVfLCBzdGF0dXNfLCBwYXNzZWRfKTsKICAgfSBlbHNlIHsKLSAgICAq
dGVzdCA9IE5VTEw7CisgICAgKnRlc3QgPSBudWxscHRyOwogICB9CiAgIHJldHVybiB0cnVlOwog
fQpAQCAtMTAxNCwxNiArMTA3NiwxNiBAQCBjbGFzcyBNYWNyb0xvZ2ljRGVhdGhUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogICBzdGF0aWMgdGVzdGluZzo6aW50ZXJuYWw6OlJlcGxhY2VE
ZWF0aFRlc3RGYWN0b3J5KiByZXBsYWNlcl87CiAgIHN0YXRpYyBNb2NrRGVhdGhUZXN0RmFjdG9y
eSogZmFjdG9yeV87CiAKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgZmFjdG9yeV8gPSBuZXcgTW9ja0RlYXRoVGVz
dEZhY3Rvcnk7CiAgICAgcmVwbGFjZXJfID0gbmV3IHRlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNl
RGVhdGhUZXN0RmFjdG9yeShmYWN0b3J5Xyk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBk
ZWxldGUgcmVwbGFjZXJfOwotICAgIHJlcGxhY2VyXyA9IE5VTEw7CisgICAgcmVwbGFjZXJfID0g
bnVsbHB0cjsKICAgICBkZWxldGUgZmFjdG9yeV87Ci0gICAgZmFjdG9yeV8gPSBOVUxMOworICAg
IGZhY3RvcnlfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFJ1bnMgYSBkZWF0aCB0ZXN0IHRoYXQg
YnJlYWtzIHRoZSBydWxlcyBieSByZXR1cm5pbmcuICBTdWNoIGEgZGVhdGgKQEAgLTEwMzcsMTAg
KzEwOTksOSBAQCBjbGFzcyBNYWNyb0xvZ2ljRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewogICB9CiB9OwogCi10ZXN0aW5nOjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3Rv
cnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OnJlcGxhY2VyXwotICAgID0gTlVMTDsKLU1vY2tEZWF0
aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2ljRGVhdGhUZXN0OjpmYWN0b3J5XyA9IE5VTEw7Ci0KK3Rl
c3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSogTWFjcm9Mb2dpY0RlYXRo
VGVzdDo6cmVwbGFjZXJfID0KKyAgICBudWxscHRyOworTW9ja0RlYXRoVGVzdEZhY3RvcnkqIE1h
Y3JvTG9naWNEZWF0aFRlc3Q6OmZhY3RvcnlfID0gbnVsbHB0cjsKIAogLy8gVGVzdCB0aGF0IG5v
dGhpbmcgaGFwcGVucyB3aGVuIHRoZSBmYWN0b3J5IGRvZXNuJ3QgcmV0dXJuIGEgRGVhdGhUZXN0
OgogVEVTVF9GKE1hY3JvTG9naWNEZWF0aFRlc3QsIE5vdGhpbmdIYXBwZW5zKSB7CkBAIC0xMjc5
LDkgKzEzNDAsNiBAQCBURVNUKFBhcnNlTmF0dXJhbE51bWJlclRlc3QsIFdvcmtzRm9yU2hvcnRl
ckludGVnZXJzKSB7CiAKICMgaWYgR1RFU1RfT1NfV0lORE9XUwogVEVTVChFbnZpcm9ubWVudFRl
c3QsIEhhbmRsZUZpdHNJbnRvU2l6ZVQpIHsKLSAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHRlc3Qg
YWZ0ZXIgdGhpcyBjb25kaXRpb24gaXMgdmVyaWZpZWQKLSAgLy8gaW4gYSBzdGF0aWMgYXNzZXJ0
aW9uIGluIGd0ZXN0LWRlYXRoLXRlc3QuY2MgaW4gdGhlIGZ1bmN0aW9uCi0gIC8vIEdldFN0YXR1
c0ZpbGVEZXNjcmlwdG9yLgogICBBU1NFUlRfVFJVRShzaXplb2YoSEFORExFKSA8PSBzaXplb2Yo
c2l6ZV90KSk7CiB9CiAjIGVuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCkBAIC0xMzE5LDggKzEz
NzcsNTMgQEAgVEVTVChJbkRlYXRoVGVzdENoaWxkRGVhdGhUZXN0LCBSZXBvcnRzRGVhdGhUZXN0
Q29ycmVjdGx5SW5UaHJlYWRTYWZlU3R5bGUpIHsKICAgfSwgIkluc2lkZSIpOwogfQogCit2b2lk
IERpZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UpIHsKKyAgZnB1dHMobWVzc2FnZSwg
c3RkZXJyKTsKKyAgZmZsdXNoKHN0ZGVycik7ICAvLyBNYWtlIHN1cmUgdGhlIHRleHQgaXMgcHJp
bnRlZCBiZWZvcmUgdGhlIHByb2Nlc3MgZXhpdHMuCisgIF9leGl0KDEpOworfQorCitURVNUKE1h
dGNoZXJEZWF0aFRlc3QsIERvZXNOb3RCcmVha0JhcmVSZWdleE1hdGNoaW5nKSB7CisgIC8vIGdv
b2dsZXRlc3QgdGVzdHMgdGhpcywgb2YgY291cnNlOyBoZXJlIHdlIGVuc3VyZSB0aGF0IGluY2x1
ZGluZyBnb29nbGVtb2NrCisgIC8vIGhhcyBub3QgYnJva2VuIGl0LgorI2lmIEdURVNUX1VTRVNf
UE9TSVhfUkUKKyAgRVhQRUNUX0RFQVRIKERpZVdpdGhNZXNzYWdlKCJPLCBJIGRpZSwgSG9yYXRp
by4iKSwgIkkgZFthZWlvdV1lIik7CisjZWxzZQorICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3Nh
Z2UoIk8sIEkgZGllLCBIb3JhdGlvLiIpLCAiSSBkaT9lIik7CisjZW5kaWYKK30KKworVEVTVChN
YXRjaGVyRGVhdGhUZXN0LCBNb25vbW9ycGhpY01hdGNoZXJNYXRjaGVzKSB7CisgIEVYUEVDVF9E
RUFUSChEaWVXaXRoTWVzc2FnZSgiQmVoaW5kIE8sIEkgYW0gc2xhaW4hIiksCisgICAgICAgICAg
ICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiSSBhbSBzbGFp
biIpKSk7Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgTW9ub21vcnBoaWNNYXRjaGVyRG9l
c05vdE1hdGNoKSB7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX0RF
QVRIKAorICAgICAgICAgIERpZVdpdGhNZXNzYWdlKCJCZWhpbmQgTywgSSBhbSBzbGFpbiEiKSwK
KyAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4oQ29udGFpbnNSZWdleCgiT3cs
IEkgYW0gc2xhaW4iKSkpLAorICAgICAgIkV4cGVjdGVkOiBjb250YWlucyByZWd1bGFyIGV4cHJl
c3Npb24gXCJPdywgSSBhbSBzbGFpblwiIik7Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwg
UG9seW1vcnBoaWNNYXRjaGVyTWF0Y2hlcykgeworICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3Nh
Z2UoIlRoZSByZXN0IGlzIHNpbGVuY2UuIiksCisgICAgICAgICAgICAgICBDb250YWluc1JlZ2V4
KCJyZXN0IGlzIHNpbGVuY2UiKSk7Cit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgUG9seW1v
cnBoaWNNYXRjaGVyRG9lc05vdE1hdGNoKSB7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAor
ICAgICAgRVhQRUNUX0RFQVRIKERpZVdpdGhNZXNzYWdlKCJUaGUgcmVzdCBpcyBzaWxlbmNlLiIp
LAorICAgICAgICAgICAgICAgICAgIENvbnRhaW5zUmVnZXgoInJlc3QgaXMgc2NpZW5jZSIpKSwK
KyAgICAgICJFeHBlY3RlZDogY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIFwicmVzdCBpcyBz
Y2llbmNlXCIiKTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKICNlbHNlICAvLyAhR1RFU1RfSEFT
X0RFQVRIX1RFU1QgZm9sbG93cwogCituYW1lc3BhY2UgeworCiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6Q2FwdHVyZVN0ZGVycjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRDYXB0dXJl
ZFN0ZGVycjsKIApAQCAtMTM2OSw4ICsxNDcyLDE5IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1h
Y3Jvc1Rlc3QsIEFzc2VydERlYXREb2VzTm90UmV0dXJuaElmVW5zdXBwb3J0ZWQpIHsKICAgRVhQ
RUNUX0VRKDEsIG4pOwogfQogCit9ICAvLyBuYW1lc3BhY2UKKwogI2VuZGlmICAvLyAhR1RFU1Rf
SEFTX0RFQVRIX1RFU1QKIAorbmFtZXNwYWNlIHsKKworLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlu
dGVudGlvbmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXwor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdl
bXB0eS1ib2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCisj
ZW5kaWYKIC8vIFRlc3RzIHRoYXQgdGhlIGRlYXRoIHRlc3QgbWFjcm9zIGV4cGFuZCB0byBjb2Rl
IHdoaWNoIG1heSBvciBtYXkgbm90CiAvLyBiZSBmb2xsb3dlZCBieSBvcGVyYXRvcjw8LCBhbmQg
dGhhdCBpbiBlaXRoZXIgY2FzZSB0aGUgY29tcGxldGUgdGV4dAogLy8gY29tcHJpc2VzIG9ubHkg
YSBzaW5nbGUgQysrIHN0YXRlbWVudC4KQEAgLTEzOTYsNiArMTUxMCw5IEBAIFRFU1QoQ29uZGl0
aW9uYWxEZWF0aE1hY3Jvc1N5bnRheERlYXRoVGVzdCwgU2luZ2xlU3RhdGVtZW50KSB7CiAgIGVs
c2UKICAgICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKF9leGl0KDEpLCAiIikgPDwgMSA8PCAy
IDw8IDM7CiB9CisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisj
ZW5kaWYKIAogLy8gVGVzdHMgdGhhdCBjb25kaXRpb25hbCBkZWF0aCB0ZXN0IG1hY3JvcyBleHBh
bmQgdG8gY29kZSB3aGljaCBpbnRlcmFjdHMKIC8vIHdlbGwgd2l0aCBzd2l0Y2ggc3RhdGVtZW50
cy4KQEAgLTE0MjEsMyArMTUzOCw1IEBAIFRFU1QoQ29uZGl0aW9uYWxEZWF0aE1hY3Jvc1N5bnRh
eERlYXRoVGVzdCwgU3dpdGNoU3RhdGVtZW50KSB7CiBURVNUKE5vdEFEZWF0aFRlc3QsIFRlc3Qp
IHsKICAgU1VDQ0VFRCgpOwogfQorCit9ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90
ZXN0LmNjCmluZGV4IGI4Yjk0NzBmYzg4YWQxN2FhZWI2NjRkNDdjMjcwY2ZjYWE3MzFiZWYuLjcy
MTk2ODBkMDc0OTc3Nzc4NGY2NDUxNDdiNTAzOTVkYjA5YmE5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3Rf
ZXhfdGVzdC5jYwpAQCAtNTksNyArNTksNyBAQCBURVNUKEN4eEV4Y2VwdGlvbkRlYXRoVGVzdCwg
RXhjZXB0aW9uSXNGYWlsdXJlKSB7CiAKIGNsYXNzIFRlc3RFeGNlcHRpb24gOiBwdWJsaWMgc3Rk
OjpleGNlcHRpb24gewogIHB1YmxpYzoKLSAgdmlydHVhbCBjb25zdCBjaGFyKiB3aGF0KCkgY29u
c3QgdGhyb3coKSB7IHJldHVybiAiZXhjZXB0aW9uYWwgbWVzc2FnZSI7IH0KKyAgY29uc3QgY2hh
ciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IG92ZXJyaWRlIHsgcmV0dXJuICJleGNlcHRpb25hbCBt
ZXNzYWdlIjsgfQogfTsKIAogVEVTVChDeHhFeGNlcHRpb25EZWF0aFRlc3QsIFByaW50c01lc3Nh
Z2VGb3JTdGRFeGNlcHRpb25zKSB7CkBAIC02OCw3ICs2OCw3IEBAIFRFU1QoQ3h4RXhjZXB0aW9u
RGVhdGhUZXN0LCBQcmludHNNZXNzYWdlRm9yU3RkRXhjZXB0aW9ucykgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZXhjZXB0aW9uYWwgbWVzc2FnZSIpOwogICAvLyBWZXJpZmllcyB0aGF0
IHRoZSBsb2NhdGlvbiBpcyBtZW50aW9uZWQgaW4gdGhlIGZhaWx1cmUgdGV4dC4KICAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RFQVRIKHRocm93IFRlc3RFeGNlcHRpb24oKSwgIiIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rl
c3QuY2MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18pOwogfQogIyBlbmRp
ZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3QucHkKaW5kZXggZTFlZmVlZTFl
YWI4YzZkYWNiNWQyOTI2ZjRiNWM5MDgwOTM4ZGIxMy4uMDJjMzY1NWMzOTgyNjg5NjVhMjg1MTYy
MzUyMzE3NTIxOWJhYzU2YyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWVudi12YXItdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10ZXN0LnB5CkBAIC00NSw4ICs0NSw4IEBAIGVudmly
b24gPSBvcy5lbnZpcm9uLmNvcHkoKQogCiBkZWYgQXNzZXJ0RXEoZXhwZWN0ZWQsIGFjdHVhbCk6
CiAgIGlmIGV4cGVjdGVkICE9IGFjdHVhbDoKLSAgICBwcmludCAnRXhwZWN0ZWQ6ICVzJyAlIChl
eHBlY3RlZCwpCi0gICAgcHJpbnQgJyAgQWN0dWFsOiAlcycgJSAoYWN0dWFsLCkKKyAgICBwcmlu
dCgnRXhwZWN0ZWQ6ICVzJyAlIChleHBlY3RlZCwpKQorICAgIHByaW50KCcgIEFjdHVhbDogJXMn
ICUgKGFjdHVhbCwpKQogICAgIHJhaXNlIEFzc2VydGlvbkVycm9yCiAKIApAQCAtODUsOSArODUs
MTIgQEAgY2xhc3MgR1Rlc3RFbnZWYXJUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgog
CiAgICAgVGVzdEZsYWcoJ2JyZWFrX29uX2ZhaWx1cmUnLCAnMScsICcwJykKICAgICBUZXN0Rmxh
ZygnY29sb3InLCAneWVzJywgJ2F1dG8nKQorICAgIFNldEVudlZhcignVEVTVEJSSURHRV9URVNU
X1JVTk5FUl9GQUlMX0ZBU1QnLCBOb25lKSAgIyBGb3IgJ2ZhaWxfZmFzdCcgdGVzdAorICAgIFRl
c3RGbGFnKCdmYWlsX2Zhc3QnLCAnMScsICcwJykKICAgICBUZXN0RmxhZygnZmlsdGVyJywgJ0Zv
b1Rlc3QuQmFyJywgJyonKQogICAgIFNldEVudlZhcignWE1MX09VVFBVVF9GSUxFJywgTm9uZSkg
ICMgRm9yICdvdXRwdXQnIHRlc3QKICAgICBUZXN0RmxhZygnb3V0cHV0JywgJ3htbDp0bXAvZm9v
LnhtbCcsICcnKQorICAgIFRlc3RGbGFnKCdicmllZicsICcxJywgJzAnKQogICAgIFRlc3RGbGFn
KCdwcmludF90aW1lJywgJzAnLCAnMScpCiAgICAgVGVzdEZsYWcoJ3JlcGVhdCcsICc5OTknLCAn
MScpCiAgICAgVGVzdEZsYWcoJ3Rocm93X29uX2ZhaWx1cmUnLCAnMScsICcwJykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3Rf
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVz
dF8uY2MKaW5kZXggZmQyYWE4MmY3NGZhYTIxMjAxZTc5YWUwZTVjM2I1Njg1NTNkZjMzNy4uNTJm
OTU4NjRlMWU1ZmY0YmQ4ZjFjN2U5OWUxNTMxMDY5NDE4MTc3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MK
QEAgLTcyLDYgKzcyLDExIEBAIHZvaWQgUHJpbnRGbGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAg
ICByZXR1cm47CiAgIH0KIAorICBpZiAoc3RyY21wKGZsYWcsICJmYWlsX2Zhc3QiKSA9PSAwKSB7
CisgICAgY291dCA8PCBHVEVTVF9GTEFHKGZhaWxfZmFzdCk7CisgICAgcmV0dXJuOworICB9CisK
ICAgaWYgKHN0cmNtcChmbGFnLCAiZmlsdGVyIikgPT0gMCkgewogICAgIGNvdXQgPDwgR1RFU1Rf
RkxBRyhmaWx0ZXIpOwogICAgIHJldHVybjsKQEAgLTgyLDYgKzg3LDExIEBAIHZvaWQgUHJpbnRG
bGFnKGNvbnN0IGNoYXIqIGZsYWcpIHsKICAgICByZXR1cm47CiAgIH0KIAorICBpZiAoc3RyY21w
KGZsYWcsICJicmllZiIpID09IDApIHsKKyAgICBjb3V0IDw8IEdURVNUX0ZMQUcoYnJpZWYpOwor
ICAgIHJldHVybjsKKyAgfQorCiAgIGlmIChzdHJjbXAoZmxhZywgInByaW50X3RpbWUiKSA9PSAw
KSB7CiAgICAgY291dCA8PCBHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFz
dC11bml0dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1m
YWlsZmFzdC11bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWViMmRmZmVhZTQyZmMwMzM4YTFlZGE5
OWNkNGQ0MzViNzlhN2IzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDEwIEBA
CisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlVuaXQgdGVzdCBm
b3IgR29vZ2xlIFRlc3QgZmFpbF9mYXN0LgorCitBIHVzZXIgY2FuIHNwZWNpZnkgaWYgYSBHb29n
bGUgVGVzdCBwcm9ncmFtIHNob3VsZCBjb250aW51ZSB0ZXN0IGV4ZWN1dGlvbgorYWZ0ZXIgYSB0
ZXN0IGZhaWx1cmUgdmlhIHRoZSBHVEVTVF9GQUlMX0ZBU1QgZW52aXJvbm1lbnQgdmFyaWFibGUg
b3IgdGhlCistLWd0ZXN0X2ZhaWxfZmFzdCBmbGFnLiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUg
ZmxhZyBjYW4gYWxzbyBiZSBjaGFuZ2VkCitieSBCYXplbCBmYWlsIGZhc3QgZW52aXJvbm1lbnQg
dmFyaWFibGUgVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QuCisKK1RoaXMgc2NyaXB0
IHRlc3RzIHN1Y2ggZnVuY3Rpb25hbGl0eSBieSBpbnZva2luZyBnb29nbGV0ZXN0LWZhaWxmYXN0
LXVuaXR0ZXN0XworKGEgcHJvZ3JhbSB3cml0dGVuIHdpdGggR29vZ2xlIFRlc3QpIHdpdGggZGlm
ZmVyZW50IGVudmlyb25tZW50cyBhbmQgY29tbWFuZAorbGluZSBmbGFncy4KKyIiIgorCitpbXBv
cnQgb3MKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKyMgQ29uc3RhbnRzLgorCisjIEJhemVs
IHRlc3RicmlkZ2UgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIGZhaWwgZmFzdAorQkFaRUxfRkFJ
TF9GQVNUX0VOVl9WQVIgPSAnVEVTVEJSSURHRV9URVNUX1JVTk5FUl9GQUlMX0ZBU1QnCisKKyMg
VGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGZvciBzcGVjaWZ5aW5nIGZhaWwgZmFzdC4KK0ZBSUxf
RkFTVF9FTlZfVkFSID0gJ0dURVNUX0ZBSUxfRkFTVCcKKworIyBUaGUgY29tbWFuZCBsaW5lIGZs
YWcgZm9yIHNwZWNpZnlpbmcgZmFpbCBmYXN0LgorRkFJTF9GQVNUX0ZMQUcgPSAnZ3Rlc3RfZmFp
bF9mYXN0JworCisjIFRoZSBjb21tYW5kIGxpbmUgZmxhZyB0byBydW4gZGlzYWJsZWQgdGVzdHMu
CitSVU5fRElTQUJMRURfRkxBRyA9ICdndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cycKKwor
IyBUaGUgY29tbWFuZCBsaW5lIGZsYWcgZm9yIHNwZWNpZnlpbmcgYSBmaWx0ZXIuCitGSUxURVJf
RkxBRyA9ICdndGVzdF9maWx0ZXInCisKKyMgQ29tbWFuZCB0byBydW4gdGhlIGdvb2dsZXRlc3Qt
ZmFpbGZhc3QtdW5pdHRlc3RfIHByb2dyYW0uCitDT01NQU5EID0gZ3Rlc3RfdGVzdF91dGlscy5H
ZXRUZXN0RXhlY3V0YWJsZVBhdGgoCisgICAgJ2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3Rf
JykKKworIyBUaGUgY29tbWFuZCBsaW5lIGZsYWcgdG8gdGVsbCBHb29nbGUgVGVzdCB0byBvdXRw
dXQgdGhlIGxpc3Qgb2YgdGVzdHMgaXQKKyMgd2lsbCBydW4uCitMSVNUX1RFU1RTX0ZMQUcgPSAn
LS1ndGVzdF9saXN0X3Rlc3RzJworCisjIEluZGljYXRlcyB3aGV0aGVyIEdvb2dsZSBUZXN0IHN1
cHBvcnRzIGRlYXRoIHRlc3RzLgorU1VQUE9SVFNfREVBVEhfVEVTVFMgPSAnSGFzRGVhdGhUZXN0
JyBpbiBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoCisgICAgW0NPTU1BTkQsIExJU1RfVEVT
VFNfRkxBR10pLm91dHB1dAorCisjIFV0aWxpdGllcy4KKworZW52aXJvbiA9IG9zLmVudmlyb24u
Y29weSgpCisKKworZGVmIFNldEVudlZhcihlbnZfdmFyLCB2YWx1ZSk6CisgICIiIlNldHMgdGhl
IGVudiB2YXJpYWJsZSB0byAndmFsdWUnOyB1bnNldHMgaXQgd2hlbiAndmFsdWUnIGlzIE5vbmUu
IiIiCisKKyAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CisgICAgZW52aXJvbltlbnZfdmFyXSA9IHZh
bHVlCisgIGVsaWYgZW52X3ZhciBpbiBlbnZpcm9uOgorICAgIGRlbCBlbnZpcm9uW2Vudl92YXJd
CisKKworZGVmIFJ1bkFuZFJldHVybk91dHB1dCh0ZXN0X3N1aXRlPU5vbmUsIGZhaWxfZmFzdD1O
b25lLCBydW5fZGlzYWJsZWQ9RmFsc2UpOgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5k
IHJldHVybnMgaXRzIG91dHB1dC4iIiIKKworICBhcmdzID0gW10KKyAgeG1sX3BhdGggPSBvcy5w
YXRoLmpvaW4oZ3Rlc3RfdGVzdF91dGlscy5HZXRUZW1wRGlyKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICcuR1Rlc3RGYWlsRmFzdFVuaXRUZXN0LnhtbCcpCisgIGFyZ3MgKz0gWyctLWd0
ZXN0X291dHB1dD14bWw6JyArIHhtbF9wYXRoXQorICBpZiBmYWlsX2Zhc3QgaXMgbm90IE5vbmU6
CisgICAgaWYgaXNpbnN0YW5jZShmYWlsX2Zhc3QsIHN0cik6CisgICAgICBhcmdzICs9IFsnLS0l
cz0lcycgJSAoRkFJTF9GQVNUX0ZMQUcsIGZhaWxfZmFzdCldCisgICAgZWxpZiBmYWlsX2Zhc3Q6
CisgICAgICBhcmdzICs9IFsnLS0lcycgJSBGQUlMX0ZBU1RfRkxBR10KKyAgICBlbHNlOgorICAg
ICAgYXJncyArPSBbJy0tbm8lcycgJSBGQUlMX0ZBU1RfRkxBR10KKyAgaWYgdGVzdF9zdWl0ZToK
KyAgICBhcmdzICs9IFsnLS0lcz0lcy4qJyAlIChGSUxURVJfRkxBRywgdGVzdF9zdWl0ZSldCisg
IGlmIHJ1bl9kaXNhYmxlZDoKKyAgICBhcmdzICs9IFsnLS0lcycgJSBSVU5fRElTQUJMRURfRkxB
R10KKyAgdHh0X291dCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhbQ09NTUFORF0gKyBh
cmdzLCBlbnY9ZW52aXJvbikub3V0cHV0CisgIHdpdGggb3Blbih4bWxfcGF0aCkgYXMgeG1sX2Zp
bGU6CisgICAgcmV0dXJuIHR4dF9vdXQsIHhtbF9maWxlLnJlYWQoKQorCisKKyMgVGhlIHVuaXQg
dGVzdC4KK2NsYXNzIEdUZXN0RmFpbEZhc3RVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RD
YXNlKToKKyAgIiIiVGVzdHMgdGhlIGVudiB2YXJpYWJsZSBvciB0aGUgY29tbWFuZCBsaW5lIGZs
YWcgZm9yIGZhaWxfZmFzdC4iIiIKKworICBkZWYgdGVzdERlZmF1bHRCZWhhdmlvcihzZWxmKToK
KyAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm90IHNwZWNpZnlpbmcgdGhlIGZhaWxfZmFz
dC4iIiIKKworICAgIHR4dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1dCgpCisgICAgc2VsZi5hc3Nl
cnRJbignMjIgRkFJTEVEIFRFU1QnLCB0eHQpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RmxhZyhz
ZWxmKToKKyAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2lt
cGxlVGVzdCcsIGZhaWxfZmFzdD1UcnVlKQorICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRF
U1QnLCB0eHQpCisgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQp
CisKKyAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2ltcGxl
VGVzdCcsIGZhaWxfZmFzdD1GYWxzZSkKKyAgICBzZWxmLmFzc2VydEluKCc0IEZBSUxFRCBURVNU
JywgdHh0KQorICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ1sgIFNLSVBQRUQgXScsIHR4dCkKKworICBk
ZWYgdGVzdEdvb2dsZXRlc3RFbnZWYXIoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIHNwZWNpZnlpbmcgZmFpbF9mYXN0IHZpYSBHb29nbGV0ZXN0IGVudiB2YXIuIiIiCisKKyAg
ICB0cnk6CisgICAgICBTZXRFbnZWYXIoRkFJTF9GQVNUX0VOVl9WQVIsICcxJykKKyAgICAgIHR4
dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1dCgnSGFzU2ltcGxlVGVzdCcpCisgICAgICBzZWxmLmFz
c2VydEluKCcxIEZBSUxFRCBURVNUJywgdHh0KQorICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJ
UFBFRCBdIDMgdGVzdHMnLCB0eHQpCisKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZB
UiwgJzAnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0
JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzQgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxm
LmFzc2VydE5vdEluKCdbICBTS0lQUEVEIF0nLCB0eHQpCisgICAgZmluYWxseToKKyAgICAgIFNl
dEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgTm9uZSkKKworICBkZWYgdGVzdEJhemVsRW52VmFy
KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzcGVjaWZ5aW5nIGZhaWxfZmFz
dCB2aWEgQmF6ZWwgdGVzdGJyaWRnZS4iIiIKKworICAgIHRyeToKKyAgICAgIFNldEVudlZhcihC
QVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwgJzEnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJu
T3V0cHV0KCdIYXNTaW1wbGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEgRkFJTEVEIFRF
U1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0cycsIHR4
dCkKKworICAgICAgU2V0RW52VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAg
ICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQoJ0hhc1NpbXBsZVRlc3QnKQorICAgICAgc2Vs
Zi5hc3NlcnRJbignNCBGQUlMRUQgVEVTVCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0Tm90SW4o
J1sgIFNLSVBQRUQgXScsIHR4dCkKKyAgICBmaW5hbGx5OgorICAgICAgU2V0RW52VmFyKEJBWkVM
X0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25lKQorCisgIGRlZiB0ZXN0RmxhZ092ZXJyaWRlc0VudlZh
cihzZWxmKToKKyAgICAiIiJUZXN0cyBwcmVjZWRlbmNlIG9mIGZsYWcgb3ZlciBlbnYgdmFyLiIi
IgorCisgICAgdHJ5OgorICAgICAgU2V0RW52VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisg
ICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQoJ0hhc1NpbXBsZVRlc3QnLCBUcnVlKQor
ICAgICAgc2VsZi5hc3NlcnRJbignMSBGQUlMRUQgVEVTVCcsIHR4dCkKKyAgICAgIHNlbGYuYXNz
ZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRlc3RzJywgdHh0KQorICAgIGZpbmFsbHk6CisgICAgICBT
ZXRFbnZWYXIoRkFJTF9GQVNUX0VOVl9WQVIsIE5vbmUpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0
RW52VmFyT3ZlcnJpZGVzQmF6ZWxFbnZWYXIoc2VsZik6CisgICAgIiIiVGVzdHMgdGhhdCB0aGUg
R29vZ2xldGVzdCBuYXRpdmUgZW52IHZhciBvdmVyIEJhemVsIHRlc3RicmlkZ2UuIiIiCisKKyAg
ICB0cnk6CisgICAgICBTZXRFbnZWYXIoQkFaRUxfRkFJTF9GQVNUX0VOVl9WQVIsICcwJykKKyAg
ICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgJzEnKQorICAgICAgdHh0LCBfID0gUnVu
QW5kUmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzEg
RkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMyB0
ZXN0cycsIHR4dCkKKyAgICBmaW5hbGx5OgorICAgICAgU2V0RW52VmFyKEZBSUxfRkFTVF9FTlZf
VkFSLCBOb25lKQorICAgICAgU2V0RW52VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCBOb25l
KQorCisgIGRlZiB0ZXN0RXZlbnRMaXN0ZW5lcihzZWxmKToKKyAgICB0eHQsIF8gPSBSdW5BbmRS
ZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0nSGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9VHJ1ZSkKKyAg
ICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywgdHh0KQorICAgIHNlbGYuYXNzZXJ0SW4o
J1sgIFNLSVBQRUQgXSAzIHRlc3RzJywgdHh0KQorICAgIGZvciBleHBlY3RlZF9jb3VudCwgY2Fs
bGJhY2sgaW4gWygxLCAnT25UZXN0U3VpdGVTdGFydCcpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICg1LCAnT25UZXN0U3RhcnQnKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoNSwgJ09uVGVzdEVuZCcpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICg1LCAnT25UZXN0UGFydFJlc3VsdCcpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgxLCAnT25UZXN0U3VpdGVFbmQnKV06CisgICAgICBzZWxm
LmFzc2VydEVxdWFsKAorICAgICAgICAgIGV4cGVjdGVkX2NvdW50LCB0eHQuY291bnQoY2FsbGJh
Y2spLAorICAgICAgICAgICdFeHBlY3RlZCAlZCBjYWxscyB0byBjYWxsYmFjayAlcyBtYXRjaCBj
b3VudCBvbiBvdXRwdXQ6ICVzICcgJQorICAgICAgICAgIChleHBlY3RlZF9jb3VudCwgY2FsbGJh
Y2ssIHR4dCkpCisKKyAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5PdXRwdXQodGVzdF9zdWl0ZT0n
SGFzU2tpcFRlc3QnLCBmYWlsX2Zhc3Q9RmFsc2UpCisgICAgc2VsZi5hc3NlcnRJbignMyBGQUlM
RUQgVEVTVCcsIHR4dCkKKyAgICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMSB0ZXN0Jywg
dHh0KQorICAgIGZvciBleHBlY3RlZF9jb3VudCwgY2FsbGJhY2sgaW4gWygxLCAnT25UZXN0U3Vp
dGVTdGFydCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0U3RhcnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09u
VGVzdEVuZCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCAnT25U
ZXN0UGFydFJlc3VsdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgx
LCAnT25UZXN0U3VpdGVFbmQnKV06CisgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAg
IGV4cGVjdGVkX2NvdW50LCB0eHQuY291bnQoY2FsbGJhY2spLAorICAgICAgICAgICdFeHBlY3Rl
ZCAlZCBjYWxscyB0byBjYWxsYmFjayAlcyBtYXRjaCBjb3VudCBvbiBvdXRwdXQ6ICVzICcgJQor
ICAgICAgICAgIChleHBlY3RlZF9jb3VudCwgY2FsbGJhY2ssIHR4dCkpCisKKyAgZGVmIGFzc2Vy
dFhtbFJlc3VsdENvdW50KHNlbGYsIHJlc3VsdCwgY291bnQsIHhtbCk6CisgICAgc2VsZi5hc3Nl
cnRFcXVhbCgKKyAgICAgICAgY291bnQsIHhtbC5jb3VudCgncmVzdWx0PSIlcyInICUgcmVzdWx0
KSwKKyAgICAgICAgJ0V4cGVjdGVkIFwncmVzdWx0PSIlcyJcJyBtYXRjaCBjb3VudCBvZiAlczog
JXMgJyAlCisgICAgICAgIChyZXN1bHQsIGNvdW50LCB4bWwpKQorCisgIGRlZiBhc3NlcnRYbWxT
dGF0dXNDb3VudChzZWxmLCBzdGF0dXMsIGNvdW50LCB4bWwpOgorICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCisgICAgICAgIGNvdW50LCB4bWwuY291bnQoJ3N0YXR1cz0iJXMiJyAlIHN0YXR1cyksCisg
ICAgICAgICdFeHBlY3RlZCBcJ3N0YXR1cz0iJXMiXCcgbWF0Y2ggY291bnQgb2YgJXM6ICVzICcg
JQorICAgICAgICAoc3RhdHVzLCBjb3VudCwgeG1sKSkKKworICBkZWYgYXNzZXJ0RmFpbEZhc3RY
bWxBbmRUeHRPdXRwdXQoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZhaWxfZmFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3Vp
dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZF9jb3VudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291bnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5fZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2Vy
dCBYTUwgYW5kIHRleHQgb3V0cHV0IG9mIGEgdGVzdCBleGVjdXRpb24uIiIiCisKKyAgICB0eHQs
IHhtbCA9IFJ1bkFuZFJldHVybk91dHB1dCh0ZXN0X3N1aXRlLCBmYWlsX2Zhc3QsIHJ1bl9kaXNh
YmxlZCkKKyAgICBpZiBmYWlsdXJlX2NvdW50ID4gMDoKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJyVz
IEZBSUxFRCBURVNUJyAlIGZhaWx1cmVfY291bnQsIHR4dCkKKyAgICBpZiBzdXBwcmVzc2VkX2Nv
dW50ID4gMDoKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzIERJU0FCTEVEIFRFU1QnICUgc3VwcHJl
c3NlZF9jb3VudCwgdHh0KQorICAgIGlmIHNraXBwZWRfY291bnQgPiAwOgorICAgICAgc2VsZi5h
c3NlcnRJbignWyAgU0tJUFBFRCBdICVzIHRlc3RzJyAlIHNraXBwZWRfY291bnQsIHR4dCkKKyAg
ICBzZWxmLmFzc2VydFhtbFN0YXR1c0NvdW50KCdydW4nLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzc2VkX2NvdW50ICsgZmFpbHVyZV9jb3VudCArIHNraXBwZWRfY291bnQsIHht
bCkKKyAgICBzZWxmLmFzc2VydFhtbFN0YXR1c0NvdW50KCdub3RydW4nLCBzdXBwcmVzc2VkX2Nv
dW50LCB4bWwpCisgICAgc2VsZi5hc3NlcnRYbWxSZXN1bHRDb3VudCgnY29tcGxldGVkJywgcGFz
c2VkX2NvdW50ICsgZmFpbHVyZV9jb3VudCwgeG1sKQorICAgIHNlbGYuYXNzZXJ0WG1sUmVzdWx0
Q291bnQoJ3NraXBwZWQnLCBza2lwcGVkX2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3NlcnRYbWxS
ZXN1bHRDb3VudCgnc3VwcHJlc3NlZCcsIHN1cHByZXNzZWRfY291bnQsIHhtbCkKKworICBkZWYg
YXNzZXJ0RmFpbEZhc3RCZWhhdmlvcihzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3N1aXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWRfY291bnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVfY291bnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNraXBwZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1cHByZXNzZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9kaXNhYmxlZD1GYWxzZSk6CisgICAgIiIiQXNzZXJ0IC0tZmFpbF9mYXN0IHZpYSBmbGFnLiIi
IgorCisgICAgZm9yIGZhaWxfZmFzdCBpbiAoJ3RydWUnLCAnMScsICd0JywgVHJ1ZSk6CisgICAg
ICBzZWxmLmFzc2VydEZhaWxGYXN0WG1sQW5kVHh0T3V0cHV0KGZhaWxfZmFzdCwgdGVzdF9zdWl0
ZSwgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmYWlsdXJlX2NvdW50LCBza2lwcGVkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwcmVzc2VkX2NvdW50LCBydW5fZGlzYWJsZWQpCisKKyAgZGVm
IGFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3Ioc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9zdWl0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
c2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlX2NvdW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkX2NvdW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc2VkX2NvdW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5fZGlzYWJsZWQ9RmFsc2UpOgorICAgICIiIkFzc2VydCAt
LW5vZmFpbF9mYXN0IHZpYSBmbGFnLiIiIgorCisgICAgZm9yIGZhaWxfZmFzdCBpbiAoJ2ZhbHNl
JywgJzAnLCAnZicsIEZhbHNlKToKKyAgICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RYbWxBbmRUeHRP
dXRwdXQoZmFpbF9mYXN0LCB0ZXN0X3N1aXRlLCBwYXNzZWRfY291bnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVfY291bnQsIHNraXBwZWRfY291bnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfY291
bnQsIHJ1bl9kaXNhYmxlZCkKKworICBkZWYgdGVzdEZsYWdfSGFzRml4dHVyZVRlc3Qoc2VsZik6
CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgVEVTVF9GLiIiIgor
ICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFz
Rml4dHVyZVRlc3QnLAorICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9j
b3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291
bnQ9MCkKKyAgICBzZWxmLmFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rf
c3VpdGU9J0hhc0ZpeHR1cmVUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAg
IGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBw
cmVzc2VkX2NvdW50PTApCisKKyAgZGVmIHRlc3RGbGFnX0hhc1NpbXBsZVRlc3Qoc2VsZik6Cisg
ICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgVEVTVC4iIiIKKyAgICBz
ZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1NpbXBs
ZVRlc3QnLAorICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0x
LAorICAgICAgICBza2lwcGVkX2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkK
KyAgICBzZWxmLmFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9
J0hhc1NpbXBsZVRlc3QnLAorICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVy
ZV9jb3VudD00LAorICAgICAgICBza2lwcGVkX2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRf
Y291bnQ9MCkKKworICBkZWYgdGVzdEZsYWdfSGFzUGFyYW1ldGVyc1Rlc3Qoc2VsZik6CisgICAg
IiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgVEVTVF9QLiIiIgorICAgIHNl
bGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzUGFyYW1l
dGVyc1N1aXRlL0hhc1BhcmFtZXRlcnNUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTAsCisg
ICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0zLAorICAgICAg
ICBzdXBwcmVzc2VkX2NvdW50PTApCisgICAgc2VsZi5hc3NlcnROb3RGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNQYXJhbWV0ZXJzU3VpdGUvSGFzUGFyYW1ldGVyc1Rl
c3QnLAorICAgICAgICBwYXNzZWRfY291bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD00LAor
ICAgICAgICBza2lwcGVkX2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKwor
ICBkZWYgdGVzdEZsYWdfSGFzRGlzYWJsZWRUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5kIERpc2FibGVkIHRlc3QgY2FzZXMuIiIiCisgICAgc2Vs
Zi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNEaXNhYmxl
ZFRlc3QnLAorICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0x
LAorICAgICAgICBza2lwcGVkX2NvdW50PTIsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9MSwK
KyAgICAgICAgcnVuX2Rpc2FibGVkPUZhbHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RC
ZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAg
cGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MywKKyAgICAgICAgc2tpcHBl
ZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTEsCisgICAgICAgIHJ1bl9kaXNh
YmxlZD1GYWxzZSkKKworICBkZWYgdGVzdEZsYWdfSGFzRGlzYWJsZWRSdW5EaXNhYmxlZFRlc3Qo
c2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQgRGlzYWJs
ZWQgdGVzdCBjYXNlcyBlbmFibGVkLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhhdmlv
cigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2Vk
X2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9jb3Vu
dD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1U
cnVlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9z
dWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAg
IGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBw
cmVzc2VkX2NvdW50PTAsCisgICAgICAgIHJ1bl9kaXNhYmxlZD1UcnVlKQorCisgIGRlZiB0ZXN0
RmxhZ19IYXNEaXNhYmxlZFN1aXRlVGVzdChzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZp
b3Igb2YgZmFpbF9mYXN0IGFuZCBEaXNhYmxlZCB0ZXN0IHN1aXRlcy4iIiIKKyAgICBzZWxmLmFz
c2VydEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rp
c2FibGVkU3VpdGUnLAorICAgICAgICBwYXNzZWRfY291bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9j
b3VudD0wLAorICAgICAgICBza2lwcGVkX2NvdW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291
bnQ9NSwKKyAgICAgICAgcnVuX2Rpc2FibGVkPUZhbHNlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFp
bEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nRElTQUJMRURfSGFzRGlzYWJsZWRT
dWl0ZScsCisgICAgICAgIHBhc3NlZF9jb3VudD0wLAorICAgICAgICBmYWlsdXJlX2NvdW50PTAs
CisgICAgICAgIHNraXBwZWRfY291bnQ9MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD01LAor
ICAgICAgICBydW5fZGlzYWJsZWQ9RmFsc2UpCisKKyAgZGVmIHRlc3RGbGFnX0hhc0Rpc2FibGVk
U3VpdGVSdW5EaXNhYmxlZFRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9m
IGZhaWxfZmFzdCBhbmQgRGlzYWJsZWQgdGVzdCBzdWl0ZXMgZW5hYmxlZC4iIiIKKyAgICBzZWxm
LmFzc2VydEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hh
c0Rpc2FibGVkU3VpdGUnLAorICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAgICAgICAgZmFpbHVy
ZV9jb3VudD0xLAorICAgICAgICBza2lwcGVkX2NvdW50PTMsCisgICAgICAgIHN1cHByZXNzZWRf
Y291bnQ9MCwKKyAgICAgICAgcnVuX2Rpc2FibGVkPVRydWUpCisgICAgc2VsZi5hc3NlcnROb3RG
YWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdESVNBQkxFRF9IYXNEaXNhYmxl
ZFN1aXRlJywKKyAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9
NCwKKyAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAs
CisgICAgICAgIHJ1bl9kaXNhYmxlZD1UcnVlKQorCisgIGlmIFNVUFBPUlRTX0RFQVRIX1RFU1RT
OgorCisgICAgZGVmIHRlc3RGbGFnX0hhc0RlYXRoVGVzdChzZWxmKToKKyAgICAgICIiIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5kIGRlYXRoIHRlc3RzLiIiIgorICAgICAgc2Vs
Zi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0RlYXRo
VGVzdCcsCisgICAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgICAgZmFpbHVyZV9jb3Vu
dD0xLAorICAgICAgICAgIHNraXBwZWRfY291bnQ9MywKKyAgICAgICAgICBzdXBwcmVzc2VkX2Nv
dW50PTApCisgICAgICBzZWxmLmFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgICAg
dGVzdF9zdWl0ZT0nSGFzRGVhdGhUZXN0JywKKyAgICAgICAgICBwYXNzZWRfY291bnQ9MSwKKyAg
ICAgICAgICBmYWlsdXJlX2NvdW50PTQsCisgICAgICAgICAgc2tpcHBlZF9jb3VudD0wLAorICAg
ICAgICAgIHN1cHByZXNzZWRfY291bnQ9MCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgorICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGIyYzk1MWJjMDA4Mzk5NGIwNjZjMmQ4NmFlOTJiZTMyMjgxYzY4NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1mYWls
ZmFzdC11bml0dGVzdF8uY2MKQEAgLTAsMCArMSwxNjcgQEAKKy8vIENvcHlyaWdodCAyMDA1LCBH
b29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisvLyBVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0
IHRlc3QgZmlsdGVycy4KKy8vCisvLyBBIHVzZXIgY2FuIHNwZWNpZnkgd2hpY2ggdGVzdChzKSBp
biBhIEdvb2dsZSBUZXN0IHByb2dyYW0gdG8gcnVuIHZpYQorLy8gZWl0aGVyIHRoZSBHVEVTVF9G
SUxURVIgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlIC0tZ3Rlc3RfZmlsdGVyCisvLyBmbGFn
LiAgVGhpcyBpcyB1c2VkIGZvciB0ZXN0aW5nIHN1Y2ggZnVuY3Rpb25hbGl0eS4KKy8vCisvLyBU
aGUgcHJvZ3JhbSB3aWxsIGJlIGludm9rZWQgZnJvbSBhIFB5dGhvbiB1bml0IHRlc3QuICBEb24n
dCBydW4gaXQKKy8vIGRpcmVjdGx5LgorCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworbmFt
ZXNwYWNlIHsKKworLy8gVGVzdCBIYXNGaXh0dXJlVGVzdC4KKworY2xhc3MgSGFzRml4dHVyZVRl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7fTsKKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBU
ZXN0MCkge30KKworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0MSkgeyBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUX0YoSGFzRml4dHVyZVRlc3QsIFRlc3QyKSB7IEZB
SUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1RfRihIYXNGaXh0dXJlVGVzdCwg
VGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVF9GKEhhc0Zp
eHR1cmVUZXN0LCBUZXN0NCkgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCisv
LyBUZXN0IEhhc1NpbXBsZVRlc3QuCisKK1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDApIHt9CisK
K1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworVEVTVChIYXNTaW1wbGVUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVk
IGZhaWx1cmUuIjsgfQorCitURVNUKEhhc1NpbXBsZVRlc3QsIFRlc3QzKSB7IEZBSUwoKSA8PCAi
RXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoSGFzU2ltcGxlVGVzdCwgVGVzdDQpIHsgRkFJ
TCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworLy8gVGVzdCBIYXNEaXNhYmxlZFRlc3Qu
CisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBUZXN0MCkge30KKworVEVTVChIYXNEaXNhYmxlZFRl
c3QsIERJU0FCTEVEX1Rlc3QxKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisK
K1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1
cmUuIjsgfQorCitURVNUKEhhc0Rpc2FibGVkVGVzdCwgVGVzdDMpIHsgRkFJTCgpIDw8ICJFeHBl
Y3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNEaXNhYmxlZFRlc3QsIFRlc3Q0KSB7IEZBSUwo
KSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKKy8vIFRlc3QgSGFzRGVhdGhUZXN0CisKK1RF
U1QoSGFzRGVhdGhUZXN0LCBUZXN0MCkgeyBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKGV4aXQo
MSksICIuKiIpOyB9CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0MSkgeworICBFWFBFQ1RfREVB
VEhfSUZfU1VQUE9SVEVEKEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30K
KworVEVTVChIYXNEZWF0aFRlc3QsIFRlc3QyKSB7CisgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JU
RUQoRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiIsICIuKiIpOworfQorCitURVNUKEhhc0Rl
YXRoVGVzdCwgVGVzdDMpIHsKKyAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChGQUlMKCkgPDwg
IkV4cGVjdGVkIGZhaWx1cmUuIiwgIi4qIik7Cit9CisKK1RFU1QoSGFzRGVhdGhUZXN0LCBUZXN0
NCkgeworICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZS4iLCAiLioiKTsKK30KKworLy8gVGVzdCBESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlCisK
K1RFU1QoRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVzdDApIHt9CisKK1RFU1QoRElTQUJM
RURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVzdDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworVEVTVChESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlLCBUZXN0MikgeyBGQUlMKCkg
PDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKERJU0FCTEVEX0hhc0Rpc2FibGVkU3Vp
dGUsIFRlc3QzKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoRElT
QUJMRURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVzdDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWls
dXJlLiI7IH0KKworLy8gVGVzdCBIYXNQYXJhbWV0ZXJzVGVzdAorCitjbGFzcyBIYXNQYXJhbWV0
ZXJzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CisKK1RFU1Rf
UChIYXNQYXJhbWV0ZXJzVGVzdCwgVGVzdDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworVEVTVF9QKEhhc1BhcmFtZXRlcnNUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUuIjsgfQorCitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoSGFzUGFyYW1l
dGVyc1N1aXRlLCBIYXNQYXJhbWV0ZXJzVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0aW5nOjpWYWx1ZXMoMSwgMikpOworCitjbGFzcyBNeVRlc3RMaXN0ZW5lciA6IHB1YmxpYyA6
OnRlc3Rpbmc6OkVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgeworICB2b2lkIE9uVGVzdFN1aXRlU3Rh
cnQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIG92ZXJyaWRlIHsKKyAg
ICBwcmludGYoIldlIGFyZSBpbiBPblRlc3RTdWl0ZVN0YXJ0IG9mICVzLlxuIiwgdGVzdF9zdWl0
ZS5uYW1lKCkpOworICB9CisKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCA6OnRlc3Rpbmc6OlRl
c3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFyZSBpbiBPblRl
c3RTdGFydCBvZiAlcy4lcy5cbiIsIHRlc3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwKKyAgICAg
ICAgICAgdGVzdF9pbmZvLm5hbWUoKSk7CisgIH0KKworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQo
CisgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0
KSBvdmVycmlkZSB7CisgICAgcHJpbnRmKCJXZSBhcmUgaW4gT25UZXN0UGFydFJlc3VsdCAlczol
ZC5cbiIsIHRlc3RfcGFydF9yZXN1bHQuZmlsZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfcGFy
dF9yZXN1bHQubGluZV9udW1iZXIoKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCA6
OnRlc3Rpbmc6OlRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldl
IGFyZSBpbiBPblRlc3RFbmQgb2YgJXMuJXMuXG4iLCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1l
KCksCisgICAgICAgICAgIHRlc3RfaW5mby5uYW1lKCkpOworICB9CisKKyAgdm9pZCBPblRlc3RT
dWl0ZUVuZChjb25zdCA6OnRlc3Rpbmc6OlRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgb3ZlcnJpZGUg
eworICAgIHByaW50ZigiV2UgYXJlIGluIE9uVGVzdFN1aXRlRW5kIG9mICVzLlxuIiwgdGVzdF9z
dWl0ZS5uYW1lKCkpOworICB9Cit9OworCitURVNUKEhhc1NraXBUZXN0LCBUZXN0MCkgeyBTVUND
RUVEKCkgPDwgIkV4cGVjdGVkIHN1Y2Nlc3MuIjsgfQorCitURVNUKEhhc1NraXBUZXN0LCBUZXN0
MSkgeyBHVEVTVF9TS0lQKCkgPDwgIkV4cGVjdGVkIHNraXAuIjsgfQorCitURVNUKEhhc1NraXBU
ZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhh
c1NraXBUZXN0LCBUZXN0MykgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitU
RVNUKEhhc1NraXBUZXN0LCBUZXN0NCkgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsg
fQorCit9ICAvLyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7
CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICA6OnRlc3Rpbmc6
OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5BcHBlbmQobmV3IE15VGVzdExp
c3RlbmVyKCkpOworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwpp
bmRleCAzN2YwMmZiNGJkNzc5N2QxNGQzODNhMDVmYTE5N2MzNmIzMTgyNWYyLi5hYWZhZDM2ZjNm
ZWY0NDlmNDZiYTc3ZGIyMGVjYzk2NmI1NzIwYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsZXBhdGgtdGVzdC5jYwpAQCAtNTAs
OCArNTAsNiBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogbmFtZXNwYWNlIHsKIAogI2lmIEdURVNU
X09TX1dJTkRPV1NfTU9CSUxFCi0vLyBGSVhNRTogTW92ZSB0aGVzZSB0byB0aGUgUE9TSVggYWRh
cHRlciBzZWN0aW9uIGluCi0vLyBndGVzdC1wb3J0LmguCiAKIC8vIFdpbmRvd3MgQ0UgZG9lc24n
dCBoYXZlIHRoZSByZW1vdmUgQyBmdW5jdGlvbi4KIGludCByZW1vdmUoY29uc3QgY2hhciogcGF0
aCkgewpAQCAtODAsNyArNzgsNyBAQCBURVNUKEdldEN1cnJlbnREaXJUZXN0LCBSZXR1cm5zQ3Vy
cmVudERpcikgewogICBjb25zdCBGaWxlUGF0aCBjd2QgPSBGaWxlUGF0aDo6R2V0Q3VycmVudERp
cigpOwogICBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfZGlyLmNfc3RyKCkpOwogCi0jIGlmIEdURVNU
X09TX1dJTkRPV1MKKyMgaWYgR1RFU1RfT1NfV0lORE9XUyB8fCBHVEVTVF9PU19PUzIKIAogICAv
LyBTa2lwcyB0aGUgIjoiLgogICBjb25zdCBjaGFyKiBjb25zdCBjd2Rfd2l0aG91dF9kcml2ZSA9
IHN0cmNocihjd2QuY19zdHIoKSwgJzonKTsKQEAgLTQ3OSw3ICs0NzcsNyBAQCBURVNUKEFzc2ln
bm1lbnRPcGVyYXRvclRlc3QsIENvbnN0QXNzaWduZWRUb05vbkNvbnN0KSB7CiAKIGNsYXNzIERp
cmVjdG9yeUNyZWF0aW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICB0ZXN0ZGF0
YV9wYXRoXy5TZXQoRmlsZVBhdGgoCiAgICAgICAgIFRlbXBEaXIoKSArIEdldEN1cnJlbnRFeGVj
dXRhYmxlTmFtZSgpLnN0cmluZygpICsKICAgICAgICAgIl9kaXJlY3RvcnlfY3JlYXRpb24iIEdU
RVNUX1BBVEhfU0VQXyAidGVzdCIgR1RFU1RfUEFUSF9TRVBfKSk7CkBAIC00OTYsNyArNDk0LDcg
QEAgY2xhc3MgRGlyZWN0b3J5Q3JlYXRpb25UZXN0IDogcHVibGljIFRlc3QgewogICAgIHBvc2l4
OjpSbURpcih0ZXN0ZGF0YV9wYXRoXy5jX3N0cigpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBU
ZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICByZW1vdmUodGVz
dGRhdGFfZmlsZV8uY19zdHIoKSk7CiAgICAgcmVtb3ZlKHVuaXF1ZV9maWxlMF8uY19zdHIoKSk7
CiAgICAgcmVtb3ZlKHVuaXF1ZV9maWxlMV8uY19zdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weQpp
bmRleCBkYzBiNWJkOWE1Y2ZjNWJmZThjNjhhZjFiNjQ3ODk5ZTFmZWJkYTY3Li42YjMyZjJkMjE5
OTcxODlhM2NkOWVhZjMxM2Q0NzBiZGQ4NGZjYzExIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkKQEAg
LTQyLDcgKzQyLDEwIEBAIHdlIHRlc3QgdGhhdCBoZXJlIGFsc28uCiAKIGltcG9ydCBvcwogaW1w
b3J0IHJlCi1pbXBvcnQgc2V0cwordHJ5OgorICBmcm9tIHNldHMgaW1wb3J0IFNldCBhcyBzZXQg
ICMgRm9yIFB5dGhvbiAyLjMgY29tcGF0aWJpbGl0eQorZXhjZXB0IEltcG9ydEVycm9yOgorICBw
YXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwogCkBAIC01Nyw3ICs2MCw3
IEBAIENBTl9QQVNTX0VNUFRZX0VOViA9IEZhbHNlCiBpZiBzeXMuZXhlY3V0YWJsZToKICAgb3Mu
ZW52aXJvblsnRU1QVFlfVkFSJ10gPSAnJwogICBjaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3Vi
cHJvY2VzcygKLSAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBvczsgcHJpbnQg
XCdFTVBUWV9WQVJcJyBpbiBvcy5lbnZpcm9uJ10pCisgICAgICBbc3lzLmV4ZWN1dGFibGUsICct
YycsICdpbXBvcnQgb3M7IHByaW50KFwnRU1QVFlfVkFSXCcgaW4gb3MuZW52aXJvbiknXSkKICAg
Q0FOX1BBU1NfRU1QVFlfRU5WID0gZXZhbChjaGlsZC5vdXRwdXQpCiAKIApAQCAtNzIsNyArNzUs
NyBAQCBpZiBzeXMuZXhlY3V0YWJsZToKICAgb3MuZW52aXJvblsnVU5TRVRfVkFSJ10gPSAnWCcK
ICAgZGVsIG9zLmVudmlyb25bJ1VOU0VUX1ZBUiddCiAgIGNoaWxkID0gZ3Rlc3RfdGVzdF91dGls
cy5TdWJwcm9jZXNzKAotICAgICAgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBw
cmludCBcJ1VOU0VUX1ZBUlwnIG5vdCBpbiBvcy5lbnZpcm9uJworICAgICAgW3N5cy5leGVjdXRh
YmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBwcmludChcJ1VOU0VUX1ZBUlwnIG5vdCBpbiBvcy5lbnZp
cm9uKScKICAgICAgIF0pCiAgIENBTl9VTlNFVF9FTlYgPSBldmFsKGNoaWxkLm91dHB1dCkKIApA
QCAtMjQ1LDE0ICsyNDgsMTQgQEAgY2xhc3MgR1Rlc3RGaWx0ZXJVbml0VGVzdChndGVzdF90ZXN0
X3V0aWxzLlRlc3RDYXNlKToKICAgICBmb3Igc2xpY2VfdmFyIGluIGxpc3Rfb2Zfc2V0czoKICAg
ICAgIGZ1bGxfcGFydGl0aW9uLmV4dGVuZChzbGljZV92YXIpCiAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4oc2V0X3ZhciksIGxlbihmdWxsX3BhcnRpdGlvbikpCi0gICAgc2VsZi5hc3NlcnRFcXVh
bChzZXRzLlNldChzZXRfdmFyKSwgc2V0cy5TZXQoZnVsbF9wYXJ0aXRpb24pKQorICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2V0KHNldF92YXIpLCBzZXQoZnVsbF9wYXJ0aXRpb24pKQogCiAgIGRlZiBB
ZGp1c3RGb3JQYXJhbWV0ZXJpemVkVGVzdHMoc2VsZiwgdGVzdHNfdG9fcnVuKToKICAgICAiIiJB
ZGp1c3QgdGVzdHNfdG9fcnVuIGluIGNhc2UgdmFsdWUgcGFyYW1ldGVyaXplZCB0ZXN0cyBhcmUg
ZGlzYWJsZWQuIiIiCiAKICAgICBnbG9iYWwgcGFyYW1fdGVzdHNfcHJlc2VudAogICAgIGlmIG5v
dCBwYXJhbV90ZXN0c19wcmVzZW50OgotICAgICAgcmV0dXJuIGxpc3Qoc2V0cy5TZXQodGVzdHNf
dG9fcnVuKSAtIHNldHMuU2V0KFBBUkFNX1RFU1RTKSkKKyAgICAgIHJldHVybiBsaXN0KHNldCh0
ZXN0c190b19ydW4pIC0gc2V0KFBBUkFNX1RFU1RTKSkKICAgICBlbHNlOgogICAgICAgcmV0dXJu
IHRlc3RzX3RvX3J1bgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNjCmluZGV4IGQzMzViNjAzOTFkMWQ0
NjhhNDExNjFiMzhjMTRlY2NiZjFkMTM4MDUuLmQzMGVjOWM3OGI1NjVkOGU4MTgwMTczZDhmYzRl
OGFlZmFkODhhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNjCkBAIC0xMjUsOCArMTI1LDggQEAg
VEVTVF9QKFBhcmFtVGVzdCwgVGVzdFgpIHsKIFRFU1RfUChQYXJhbVRlc3QsIFRlc3RZKSB7CiB9
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcVAsIFBhcmFtVGVzdCwgdGVzdGluZzo6VmFs
dWVzKDEsIDIpKTsKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcVEsIFBhcmFtVGVzdCwgdGVz
dGluZzo6VmFsdWVzKDUsIDYpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXFQLCBQYXJh
bVRlc3QsIHRlc3Rpbmc6OlZhbHVlcygxLCAyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1Ao
U2VxUSwgUGFyYW1UZXN0LCB0ZXN0aW5nOjpWYWx1ZXMoNSwgNikpOwogCiB9ICAvLyBuYW1lc3Bh
Y2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3QucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzJiYTYyODUzNWNlMzJkZDQ0ZmFmMWQ1ZmM0N2U4YTJmYmYyNTM5MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52
aXJvbm1lbnQtdW5pdHRlc3QucHkKQEAgLTAsMCArMSw3MiBAQAorIyBDb3B5cmlnaHQgMjAyMSBH
b29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisj
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlVu
aXQgdGVzdCBmb3IgR29vZ2xlIFRlc3QncyBnbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBiZWhhdmlv
ci4KKworQSB1c2VyIGNhbiBzcGVjaWZ5IGEgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdmlhCit0
ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQuIEZhaWx1cmVzIGluIHRoZSBnbG9iYWwg
ZW52aXJvbm1lbnQgc2hvdWxkCityZXN1bHQgaW4gYWxsIHVuaXQgdGVzdHMgYmVpbmcgc2tpcHBl
ZC4KKworVGhpcyBzY3JpcHQgdGVzdHMgc3VjaCBmdW5jdGlvbmFsaXR5IGJ5IGludm9raW5nCitn
b29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8gKGEgcHJvZ3JhbSB3cml0dGVu
IHdpdGggR29vZ2xlIFRlc3QpLgorIiIiCisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKwor
ZGVmIFJ1bkFuZFJldHVybk91dHB1dCgpOgorICAiIiJSdW5zIHRoZSB0ZXN0IHByb2dyYW0gYW5k
IHJldHVybnMgaXRzIG91dHB1dC4iIiIKKworICByZXR1cm4gZ3Rlc3RfdGVzdF91dGlscy5TdWJw
cm9jZXNzKFsKKyAgICAgIGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKAor
ICAgICAgICAgICdnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8nKQorICBd
KS5vdXRwdXQKKworCitjbGFzcyBHVGVzdEdsb2JhbEVudmlyb25tZW50VW5pdFRlc3QoZ3Rlc3Rf
dGVzdF91dGlscy5UZXN0Q2FzZSk6CisgICIiIlRlc3RzIGdsb2JhbCB0ZXN0IGVudmlyb25tZW50
IGZhaWx1cmVzLiIiIgorCisgIGRlZiB0ZXN0RW52aXJvbm1lbnRTZXRVcEZhaWxzKHNlbGYpOgor
ICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBub3Qgc3BlY2lmeWluZyB0aGUgZmFpbF9mYXN0
LiIiIgorCisgICAgIyBSdW4gdGhlIHRlc3QuCisgICAgdHh0ID0gUnVuQW5kUmV0dXJuT3V0cHV0
KCkKKworICAgICMgV2Ugc2hvdWxkIHNlZSB0aGUgdGV4dCBvZiB0aGUgZ2xvYmFsIGVudmlyb25t
ZW50IHNldHVwIGVycm9yLgorICAgIHNlbGYuYXNzZXJ0SW4oJ0Nhbm5lZCBlbnZpcm9ubWVudCBz
ZXR1cCBlcnJvcicsIHR4dCkKKworICAgICMgT3VyIHRlc3Qgc2hvdWxkIGhhdmUgYmVlbiBza2lw
cGVkIGR1ZSB0byB0aGUgZXJyb3IsIGFuZCBub3QgdHJlYXRlZCBhcyBhCisgICAgIyBwYXNzLgor
ICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAxIHRlc3QnLCB0eHQpCisgICAgc2VsZi5h
c3NlcnRJbignWyAgUEFTU0VEICBdIDAgdGVzdHMnLCB0eHQpCisKKyAgICAjIFRoZSB0ZXN0IGNh
c2Ugc2hvdWxkbid0IGhhdmUgYmVlbiBydW4uCisgICAgc2VsZi5hc3NlcnROb3RJbignVW5leHBl
Y3RlZCBjYWxsJywgdHh0KQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0
X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRl
c3RfLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY0MDFiMmZhYzI1ZDE3ZGQ3ZmU1YWI3ODhiMTE3NGY2YjkyOTNj
MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYwpAQCAtMCwwICsxLDU4IEBACisv
LyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRp
c3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
Ky8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFVuaXQgdGVz
dCBmb3IgR29vZ2xlIFRlc3QgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnRzLgorLy8KKy8vIFRoZSBw
cm9ncmFtIHdpbGwgYmUgaW52b2tlZCBmcm9tIGEgUHl0aG9uIHVuaXQgdGVzdC4gIERvbid0IHJ1
biBpdAorLy8gZGlyZWN0bHkuCisKKyNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgorCituYW1lc3Bh
Y2UgeworCisvLyBBbiBlbnZpcm9ubWVudCB0aGF0IGFsd2F5cyBmYWlscyBpbiBpdHMgU2V0VXAg
bWV0aG9kLgorY2xhc3MgRmFpbGluZ0Vudmlyb25tZW50IGZpbmFsIDogcHVibGljIDo6dGVzdGlu
Zzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgRkFJ
TCgpIDw8ICJDYW5uZWQgZW52aXJvbm1lbnQgc2V0dXAgZXJyb3IiOyB9Cit9OworCisvLyBSZWdp
c3RlciB0aGUgZW52aXJvbm1lbnQuCithdXRvKiBjb25zdCBnX2Vudmlyb25tZW50XyA9CisgICAg
Ojp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEZhaWxpbmdFbnZpcm9ubWVu
dCk7CisKKy8vIEEgdGVzdCB0aGF0IGRvZXNuJ3QgYWN0dWFsbHkgcnVuLgorVEVTVChTb21lVGVz
dCwgRG9lc0ZvbykgeyBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgY2FsbCI7IH0KKworfSAgLy8gbmFt
ZXNwYWNlCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6
OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKworICByZXR1cm4gUlVOX0FMTF9URVNUUygp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWpzb24tb3V0ZmlsZXMtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1qc29uLW91dGZpbGVzLXRlc3QucHkKaW5kZXggYzk5YmU0OGU4YWMzNjUwOWVkMzJl
YTJmYjhlNGZhMWVhN2ZjODM2NC4uOGVmNDdiOGY5NzQ2M2MyZTNhZDQ0MjI1NDc5ZDNiYzA2MzM4
NzkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LWpzb24tb3V0ZmlsZXMtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtanNvbi1vdXRmaWxlcy10ZXN0LnB5CkBAIC00MCwyNCArNDAsNDEgQEAgR1RF
U1RfT1VUUFVUXzFfVEVTVCA9ICdndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8nCiBHVEVTVF9PVVRQ
VVRfMl9URVNUID0gJ2d0ZXN0X3htbF9vdXRmaWxlMl90ZXN0XycKIAogRVhQRUNURURfMSA9IHsK
LSAgICB1J3Rlc3RzJzogMSwKLSAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzog
MCwKLSAgICB1J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFt
cCc6IHUnKicsCi0gICAgdSduYW1lJzogdSdBbGxUZXN0cycsCisgICAgdSd0ZXN0cyc6CisgICAg
ICAgIDEsCisgICAgdSdmYWlsdXJlcyc6CisgICAgICAgIDAsCisgICAgdSdkaXNhYmxlZCc6Cisg
ICAgICAgIDAsCisgICAgdSdlcnJvcnMnOgorICAgICAgICAwLAorICAgIHUndGltZSc6CisgICAg
ICAgIHUnKicsCisgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICB1JyonLAorICAgIHUnbmFtZSc6
CisgICAgICAgIHUnQWxsVGVzdHMnLAogICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUn
bmFtZSc6IHUnUHJvcGVydHlPbmUnLAotICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdm
YWlsdXJlcyc6IDAsCi0gICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6
IDAsCi0gICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAg
ICB1J1Byb3BlcnR5T25lJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAg
ICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAg
ICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAg
ICAgICAgICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUn
bmFtZSc6IHUnVGVzdFNvbWVQcm9wZXJ0aWVzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5T25lJywKICAgICAgICAgICAgIHUnU2V0VXBQcm9w
JzogdScxJywKICAgICAgICAgICAgIHUnVGVzdFNvbWVQcm9wZXJ0eSc6IHUnMScsCkBAIC02Nywy
MyArODQsNDAgQEAgRVhQRUNURURfMSA9IHsKIH0KIAogRVhQRUNURURfMiA9IHsKLSAgICB1J3Rl
c3RzJzogMSwKLSAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1
J2Vycm9ycyc6IDAsCi0gICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKics
Ci0gICAgdSduYW1lJzogdSdBbGxUZXN0cycsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDEsCisg
ICAgdSdmYWlsdXJlcyc6CisgICAgICAgIDAsCisgICAgdSdkaXNhYmxlZCc6CisgICAgICAgIDAs
CisgICAgdSdlcnJvcnMnOgorICAgICAgICAwLAorICAgIHUndGltZSc6CisgICAgICAgIHUnKics
CisgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICB1JyonLAorICAgIHUnbmFtZSc6CisgICAgICAg
IHUnQWxsVGVzdHMnLAogICAgIHUndGVzdHN1aXRlcyc6IFt7Ci0gICAgICAgIHUnbmFtZSc6IHUn
UHJvcGVydHlUd28nLAotICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgdSdmYWlsdXJlcyc6
IDAsCi0gICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICB1J2Vycm9ycyc6IDAsCi0gICAg
ICAgIHUndGltZSc6IHUnKicsCisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1Byb3Bl
cnR5VHdvJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Zh
aWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1l
JzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAg
IHUnKicsCiAgICAgICAgIHUndGVzdHN1aXRlJzogW3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUn
VGVzdFNvbWVQcm9wZXJ0aWVzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAg
ICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWVzdGFt
cCc6IHUnKicsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFz
c25hbWUnOiB1J1Byb3BlcnR5VHdvJywKICAgICAgICAgICAgIHUnU2V0VXBQcm9wJzogdScyJywK
QEAgLTEzNiwxMSArMTcwLDYgQEAgY2xhc3MgR1Rlc3RKc29uT3V0RmlsZXNUZXN0KGd0ZXN0X3Rl
c3RfdXRpbHMuVGVzdENhc2UpOgogICAgIHNlbGYuYXNzZXJ0XyhwLmV4aXRlZCkKICAgICBzZWxm
LmFzc2VydEVxdWFscygwLCBwLmV4aXRfY29kZSkKIAotICAgICMgRklYTUU6IGxpYnRvb2wgY2F1
c2VzIHRoZSBidWlsdCB0ZXN0IGJpbmFyeSB0byBiZQotICAgICMgICBuYW1lZCBsdC1ndGVzdF94
bWxfb3V0ZmlsZXNfdGVzdF8gaW5zdGVhZCBvZgotICAgICMgICBndGVzdF94bWxfb3V0ZmlsZXNf
dGVzdF8uICBUbyBhY2NvdW50IGZvciB0aGlzIHBvc3NpYmlsaXR5LCB3ZQotICAgICMgICBhbGxv
dyBib3RoIG5hbWVzIGluIHRoZSBmb2xsb3dpbmcgY29kZS4gIFdlIHNob3VsZCByZW1vdmUgdGhp
cwotICAgICMgICB3aGVuIGxpYnRvb2wgcmVwbGFjZW1lbnQgdG9vbCBpcyByZWFkeS4KICAgICBv
dXRwdXRfZmlsZV9uYW1lMSA9IHRlc3RfbmFtZSArICcuanNvbicKICAgICBvdXRwdXRfZmlsZTEg
PSBvcy5wYXRoLmpvaW4oc2VsZi5vdXRwdXRfZGlyXywgb3V0cHV0X2ZpbGVfbmFtZTEpCiAgICAg
b3V0cHV0X2ZpbGVfbmFtZTIgPSAnbHQtJyArIG91dHB1dF9maWxlX25hbWUxCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5p
dHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1v
dXRwdXQtdW5pdHRlc3QucHkKaW5kZXggNTdkY2Q1ZmExYzQ2MzlmMTUyZmI1NGU1MGZiOWMwNTk4
YTBlNDZhMC4uNDFjODU2NTE0NDk5ODRhN2IxNDE4ZGIyZWQ1OGI1MWZkMzZhMDU1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0
LXVuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1qc29uLW91dHB1dC11bml0dGVzdC5weQpAQCAtNTcsMzg0ICs1Nyw2MTQgQEAgZWxzZToKICAg
U1RBQ0tfVFJBQ0VfVEVNUExBVEUgPSAnJwogCiBFWFBFQ1RFRF9OT05fRU1QVFkgPSB7Ci0gICAg
dSd0ZXN0cyc6IDIzLAotICAgIHUnZmFpbHVyZXMnOiA0LAotICAgIHUnZGlzYWJsZWQnOiAyLAot
ICAgIHUnZXJyb3JzJzogMCwKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSd0aW1lJzog
dScqJywKLSAgICB1J2FkX2hvY19wcm9wZXJ0eSc6IHUnNDInLAotICAgIHUnbmFtZSc6IHUnQWxs
VGVzdHMnLAotICAgIHUndGVzdHN1aXRlcyc6IFsKLSAgICAgICAgewotICAgICAgICAgICAgdSdu
YW1lJzogdSdTdWNjZXNzZnVsVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAg
ICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAg
ICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgdSd0ZXN0cyc6CisgICAgICAgIDI2LAorICAgIHUn
ZmFpbHVyZXMnOgorICAgICAgICA1LAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAyLAorICAg
IHUnZXJyb3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKics
CisgICAgdSd0aW1lJzoKKyAgICAgICAgdScqJywKKyAgICB1J2FkX2hvY19wcm9wZXJ0eSc6Cisg
ICAgICAgIHUnNDInLAorICAgIHUnbmFtZSc6CisgICAgICAgIHUnQWxsVGVzdHMnLAorICAgIHUn
dGVzdHN1aXRlcyc6IFt7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1N1Y2Nlc3Nm
dWxUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Zh
aWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1l
JzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAg
IHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUn
U3VjY2VlZHMnLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1
J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAg
ICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
U3VjY2Vzc2Z1bFRlc3QnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgor
ICAgICAgICAgICAgdSdGYWlsZWRUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAg
ICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlz
YWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAg
MCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0
YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAg
ICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICAgICAgdSdGYWlscycsCisgICAgICAgICAgICB1
J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQn
OgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6Cisg
ICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAg
ICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAg
IHUnRmFpbGVkVGVzdCcsCisgICAgICAgICAgICB1J2ZhaWx1cmVzJzogW3sKKyAgICAgICAgICAg
ICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipcbicKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZh
bHVlczpcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNL
X1RSQUNFX1RFTVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJworICAgICAgICAg
ICAgfV0KKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAg
ICB1J0Rpc2FibGVkVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAg
ICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoK
KyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAg
ICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6Cisg
ICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1
J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3Rfbm90X3J1bicsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnTk9UUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdTVVBQUkVTU0VEJywKKyAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnRGlzYWJsZWRUZXN0JworICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAg
ICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAgICAgMSwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAg
ICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAg
ICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAg
ICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdTa2lwcGVkJywKKyAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J1NL
SVBQRUQnLAorICAgICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0
YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTa2lwcGVkVGVzdCcKKyAg
ICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdTa2lwcGVkV2l0aE1lc3NhZ2UnLAor
ICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUn
U0tJUFBFRCcsCisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1l
c3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NraXBwZWRUZXN0Jwor
ICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnU2tp
cHBlZEFmdGVyRmFpbHVyZScsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAg
ICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09N
UExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnU2tpcHBlZFRlc3QnLAorICAgICAg
ICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVz
dF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAgICAg
ICAgICAgICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAg
fSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdNaXhlZFJlc3VsdFRlc3QnLAor
ICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDMsCisgICAgICAgIHUnZmFpbHVyZXMnOgor
ICAgICAgICAgICAgMSwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAxLAorICAg
ICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAg
ICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycs
CisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0Jzog
dSdDT01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUn
dGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3Vs
dFRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICAg
ICAgdSdGYWlscycsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVE
JywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdj
bGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnTWl4ZWRSZXN1bHRUZXN0JywKKyAgICAgICAg
ICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnICAxXG4gIDInICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAg
ICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAg
dSdmYWlsdXJlJzogdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgIDJcbiAgMycgKyBTVEFDS19UUkFD
RV9URU1QTEFURSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1d
CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnRElTQUJMRURfdGVzdCcsCisg
ICAgICAgICAgICB1J3N0YXR1cyc6IHUnTk9UUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0Jzog
dSdTVVBQUkVTU0VEJywKKyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1
bHRUZXN0JworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAg
ICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEs
CisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdkaXNhYmxl
ZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAor
ICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAn
OgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAg
ICAgdSduYW1lJzoKKyAgICAgICAgICAgICAgICB1J091dHB1dHNDRGF0YScsCisgICAgICAgICAg
ICB1J3N0YXR1cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1
bHQnOgorICAgICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6
CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAg
ICAgIHUnWG1sUXVvdGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAg
ICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoq
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdGYWlsZWRcblhNTCBvdXRwdXQ6IDw/
eG1sIGVuY29kaW5nPSJ1dGYtOCI+JworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnPHRv
cD48IVtDREFUQVtjZGF0YSB0ZXh0XV0+PC90b3A+JyArCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzogdScn
CisgICAgICAgICAgICB9XQorICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoK
KyAgICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6
CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisg
ICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRl
JzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICAgICAgdSdJbnZhbGlkQ2hh
cmFjdGVyc0luTWVzc2FnZScsCisgICAgICAgICAgICB1J3N0YXR1cyc6CisgICAgICAgICAgICAg
ICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAgICAgICAgICAgICAgIHUnQ09N
UExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNUZXN0
JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVy
ZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnRmFpbGVkXG5JbnZhbGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgW1x4MDFceDAyXScgKyBTVEFDS19UUkFDRV9U
RU1QTEFURSwKKyAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisg
ICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9w
ZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDQsCisg
ICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6
CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAg
ICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgor
ICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSdTZXRVcFRlc3RTdWl0ZSc6CisgICAgICAgICAg
ICB1J3llcycsCisgICAgICAgIHUnVGVhckRvd25UZXN0U3VpdGUnOgorICAgICAgICAgICAgdSdh
eWUnLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J09u
ZVByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAg
dSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAg
ICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1
J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV8xJzogdScxJworICAg
ICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0ludFZhbHVlZFByb3BlcnR5JywKKyAg
ICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NP
TVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0
c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUn
OiB1J1N1Y2NlZWRzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0g
ICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdTdWNjZXNzZnVsVGVzdCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFp
bGVkVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVy
ZXMnOiAxLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9y
cyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2Ns
YXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKKyAgICAgICAgICAgIHUna2V5X2lu
dCc6IHUnMScKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdUaHJlZVByb3Bl
cnRpZXMnLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jl
c3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAg
ICAgICB1J3Rlc3RzdWl0ZSc6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgIHUnbmFtZSc6IHUnRmFpbHMnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUn
UlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAg
ICAgICAgdSdjbGFzc25hbWUnOiB1J0ZhaWxlZFRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2ZhaWx1cmVzJzogWwotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnZmFpbHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9U
RU1QTEFURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
dSduYW1lJzogdSdEaXNhYmxlZFRlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAg
ICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAxLAotICAg
ICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAor
ICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAg
ICAgICAgICB1J2tleV8xJzogdScxJywKKyAgICAgICAgICAgIHUna2V5XzInOiB1JzInLAorICAg
ICAgICAgICAgdSdrZXlfMyc6IHUnMycKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1l
JzogdSdUd29WYWx1ZXNGb3JPbmVLZXlVc2VzTGFzdFZhbHVlJywKKyAgICAgICAgICAgIHUnc3Rh
dHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAg
ICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rl
c3Rfbm90X3J1bicsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdOT1RSVU4nLAot
ICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1
J2NsYXNzbmFtZSc6IHUnRGlzYWJsZWRUZXN0JwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdNaXhl
ZFJlc3VsdFRlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDMsCi0gICAgICAgICAgICB1J2Zh
aWx1cmVzJzogMSwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAxLAotICAgICAgICAgICAgdSdl
cnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAg
dSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tl
eV8xJzogdScyJworICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAg
ICAgICAgIHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAg
MywKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2Fi
bGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAs
CisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFt
cCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAg
ICAgICB1J25hbWUnOiB1J1JlY29yZFByb3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzog
dSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAg
ICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJl
c3VsdFRlc3QnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHUnbmFtZSc6IHUnRmFpbHMnLAotICAgICAgICAgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J01peGVkUmVzdWx0VGVzdCcsCi0gICAgICAg
ICAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2Ug
dmFsdWVzOlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMVxuICAyJyAr
IFNUQUNLX1RSQUNFX1RFTVBMQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlw
ZSc6IHUnJwotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1J2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOipc
bicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBv
ZiB0aGVzZSB2YWx1ZXM6XG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAy
XG4gIDMnICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSd0eXBlJzogdScnCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdSduYW1lJzogdSdESVNBQkxFRF90ZXN0JywKLSAgICAgICAgICAgICAgICAg
ICAgdSdzdGF0dXMnOiB1J05PVFJVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUn
KicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3Qn
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1htbFF1b3RpbmdUZXN0JywKLSAgICAgICAgICAgIHUn
dGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDEsCi0gICAgICAgICAgICB1J2Rp
c2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGlt
ZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0
JywKKyAgICAgICAgICAgIHUna2V5JzogdScxJworICAgICAgICB9LCB7CisgICAgICAgICAgICB1
J25hbWUnOiB1J0V4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZEludFZhbHVlZFByb3BlcnR5
JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQn
OiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAg
dSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1
J25hbWUnOiB1J091dHB1dHNDRGF0YScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzog
dSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnWG1sUXVvdGluZ1Rlc3QnLAotICAgICAgICAgICAgICAg
ICAgICB1J2ZhaWx1cmVzJzogWwotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1J0ZhaWxlZFxuWE1MIG91dHB1dDogPD94bWwgZW5jb2Rpbmc9
InV0Zi04Ij4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnPHRvcD48IVtDREFU
QVtjZGF0YSB0ZXh0XV0+PC90b3A+JyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNUQUNLX1RSQUNFX1RFTVBMQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlw
ZSc6IHUnJwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICB1J25hbWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCi0gICAgICAg
ICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAg
ICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAg
ICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0
dXJlVGVzdCcsCisgICAgICAgICAgICB1J2tleV9mb3JfdXRpbGl0eV9pbnQnOiB1JzEnCisgICAg
ICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxz
UmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHknLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JV
TicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnSW52YWxpZENoYXJhY3RlcnNJbk1l
c3NhZ2UnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAg
ICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25h
bWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnZmFp
bHVyZXMnOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdn
dGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHUnRmFpbGVkXG5JbnZhbGlkIGNoYXJhY3RlcnMgaW4gYnJhY2tldHMnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnIFtceDAxXHgwMl0nICsgU1RBQ0tfVFJBQ0Vf
VEVNUExBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHUnbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMn
OiA0LAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVk
JzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKKyAg
ICAgICAgICAgIHUna2V5X2Zvcl91dGlsaXR5X3N0cmluZyc6IHUnMScKKyAgICAgICAgfV0KKyAg
ICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1R5cGVkVGVzdC8wJywKKyAg
ICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAg
ICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAg
ICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAg
ICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAg
ICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVHlwZVBhcmFt
QXR0cmlidXRlJywKKyAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywKKyAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRF
RCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSdTZXRVcFRlc3RD
YXNlJzogdSd5ZXMnLAotICAgICAgICAgICAgdSdUZWFyRG93blRlc3RDYXNlJzogdSdheWUnLAot
ICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB1J25hbWUnOiB1J09uZVByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAg
dSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0g
ICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3Qn
LAotICAgICAgICAgICAgICAgICAgICB1J2tleV8xJzogdScxJwotICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0ludFZh
bHVlZFByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0g
ICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAg
ICB1J2tleV9pbnQnOiB1JzEnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnVGhyZWVQcm9wZXJ0aWVzJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0
eVJlY29yZGluZ1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV8xJzogdScxJywKLSAg
ICAgICAgICAgICAgICAgICAgdSdrZXlfMic6IHUnMicsCi0gICAgICAgICAgICAgICAgICAgIHUn
a2V5XzMnOiB1JzMnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1
ZScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAg
ICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6
IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfMSc6
IHUnMicKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAgICAg
ICB1J3Rlc3RzJzogMywKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAg
dSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1
J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0
LzAnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAg
dSdUeXBlZFRlc3QvMScsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAg
ICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAg
ICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAg
IHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAg
ICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25h
bWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCisgICAgICAgICAgICB1J3R5cGVfcGFyYW0n
OiB1J2xvbmcnLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1
J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAg
ICAgICAgICB1J3Rlc3RzdWl0ZSc6IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIHUnbmFtZSc6IHUnUmVjb3JkUHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1
J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAg
ICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAg
ICAgICAgICAgICAgICB1J2tleSc6IHUnMScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdFeHRlcm5hbFV0aWxpdHlU
aGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQcm9wZXJ0eScsCi0gICAgICAgICAgICAgICAgICAgIHUn
c3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAg
ICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCi0gICAgICAg
ICAgICAgICAgICAgIHUna2V5X2Zvcl91dGlsaXR5X2ludCc6IHUnMScKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3Ry
aW5nVmFsdWVkUHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1
J2tleV9mb3JfdXRpbGl0eV9zdHJpbmcnOiB1JzEnCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1R5
cGVkVGVzdC8wJywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWls
dXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJy
b3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdUeXBlZFRlc3QvMScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAg
IHUnbmFtZSc6CisgICAgICAgICAgICB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZS8wJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1
cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAg
MCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoK
KyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUn
KicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFz
VHlwZVBhcmFtQXR0cmlidXRlJywKKyAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnaW50JywK
KyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1
J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0
ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUndHlw
ZV9wYXJhbSc6IHUnaW50JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTics
Ci0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAg
IHUnY2xhc3NuYW1lJzogdSdUeXBlZFRlc3QvMCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnVHlw
ZWRUZXN0LzEnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1
cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJv
cnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdj
bGFzc25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wJworICAgICAg
ICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnU2luZ2xlL1R5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAg
ICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdk
aXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAg
ICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1l
c3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAg
ICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBlUGFyYW1BdHRyaWJ1dGUnLAorICAgICAgICAgICAg
dSd0eXBlX3BhcmFtJzogdSdsb25nJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAor
ICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUn
OiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0g
ICAgICAgICAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnbG9uZycsCi0gICAgICAgICAgICAg
ICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1
JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRUZXN0LzEnCi0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICB1J25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAn
LAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMCwK
LSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAor
ICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUn
OiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8xJworICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICA0LAorICAgICAgICB1J2ZhaWx1
cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAg
MCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoK
KyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUn
KicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFz
VmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKKyAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzMz
JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQn
OiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAg
dSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1
J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAgICAgICAgICAgIHUn
dHlwZV9wYXJhbSc6IHUnaW50JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JV
TicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAg
ICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8wJwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICAgdSduYW1lJzogdSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8x
JywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAs
Ci0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwK
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUn
bmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywKKyAgICAgICAgICAgIHUndmFsdWVf
cGFyYW0nOiB1JzQyJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAg
ICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAot
ICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCi0gICAgICAgICAg
ICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnbG9uZycsCi0gICAgICAgICAgICAgICAgICAgIHUn
c3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAg
ICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVk
VGVzdENhc2UvMScKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0
JywKLSAgICAgICAgICAgIHUndGVzdHMnOiA0LAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAs
Ci0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwK
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUn
bmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKKyAgICAg
ICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMCcsCi0gICAgICAgICAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzMzJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUn
dGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUv
VmFsdWVQYXJhbVRlc3QnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6IHUnSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywK
LSAgICAgICAgICAgICAgICAgICAgdSd2YWx1ZV9wYXJhbSc6IHUnNDInLAotICAgICAgICAgICAg
ICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzog
dScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBh
cmFtVGVzdCcKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgdSduYW1lJzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmli
dXRlLzAnLAotICAgICAgICAgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCi0gICAg
ICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xl
L1ZhbHVlUGFyYW1UZXN0JwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0Fub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFy
YW1BdHRyaWJ1dGUvMScsCi0gICAgICAgICAgICAgICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQy
JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzog
dSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
XQotICAgICAgICB9Ci0gICAgXQorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAg
ICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKKyAgICAgICAg
fSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFt
QXR0cmlidXRlLzEnLAorICAgICAgICAgICAgdSd2YWx1ZV9wYXJhbSc6IHUnNDInLAorICAgICAg
ICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExF
VEVEJywKKyAgICAgICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFt
cCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0JworICAgICAgICB9XQorICAgIH1dCiB9CiAKIEVYUEVDVEVEX0ZJTFRFUkVEID0gewotICAg
IHUndGVzdHMnOiAxLAotICAgIHUnZmFpbHVyZXMnOiAwLAotICAgIHUnZGlzYWJsZWQnOiAwLAot
ICAgIHUnZXJyb3JzJzogMCwKLSAgICB1J3RpbWUnOiB1JyonLAotICAgIHUndGltZXN0YW1wJzog
dScqJywKLSAgICB1J25hbWUnOiB1J0FsbFRlc3RzJywKLSAgICB1J2FkX2hvY19wcm9wZXJ0eSc6
IHUnNDInLAorICAgIHUndGVzdHMnOgorICAgICAgICAxLAorICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAg
ICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1
J2FkX2hvY19wcm9wZXJ0eSc6CisgICAgICAgIHUnNDInLAogICAgIHUndGVzdHN1aXRlcyc6IFt7
Ci0gICAgICAgIHUnbmFtZSc6IHUnU3VjY2Vzc2Z1bFRlc3QnLAotICAgICAgICB1J3Rlc3RzJzog
MSwKLSAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAg
ICAgICB1J2Vycm9ycyc6IDAsCi0gICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgIHUnbmFt
ZSc6CisgICAgICAgICAgICB1J1N1Y2Nlc3NmdWxUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6Cisg
ICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAg
ICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAg
IHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCiAgICAgICAgIHUndGVzdHN1aXRlJzog
W3sKICAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2VlZHMnLAogICAgICAgICAgICAgdSdzdGF0
dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKICAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCiAg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU3VjY2Vzc2Z1bFRlc3QnLAogICAgICAgICB9XQog
ICAgIH1dLAogfQogCi1FWFBFQ1RFRF9FTVBUWSA9IHsKLSAgICB1J3Rlc3RzJzogMCwKLSAgICB1
J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0g
ICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzog
dSdBbGxUZXN0cycsCi0gICAgdSd0ZXN0c3VpdGVzJzogW10sCitFWFBFQ1RFRF9OT19URVNUID0g
eworICAgIHUndGVzdHMnOgorICAgICAgICAwLAorICAgIHUnZmFpbHVyZXMnOgorICAgICAgICAw
LAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAgICAgICAg
MCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAgIHUndGltZXN0YW1wJzoKKyAgICAg
ICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J3Rlc3Rz
dWl0ZXMnOiBbeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdOb25UZXN0U3VpdGVG
YWlsdXJlJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Zh
aWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSdza2lwcGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJy
b3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1Jyon
LAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rl
c3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnJywK
KyAgICAgICAgICAgIHUnc3RhdHVzJzoKKyAgICAgICAgICAgICAgICB1J1JVTicsCisgICAgICAg
ICAgICB1J3Jlc3VsdCc6CisgICAgICAgICAgICAgICAgdSdDT01QTEVURUQnLAorICAgICAgICAg
ICAgdSd0aW1lJzoKKyAgICAgICAgICAgICAgICB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3Rh
bXAnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6Cisg
ICAgICAgICAgICAgICAgdScnLAorICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAg
ICAgICAgICAgdSdmYWlsdXJlJzogdSdndGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjOipcbicKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZh
bHVlczpcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMVxuICAyJyArIFNUQUNL
X1RSQUNFX1RFTVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJywKKyAgICAgICAg
ICAgIH1dCisgICAgICAgIH1dCisgICAgfV0sCiB9CiAKIEdURVNUX1BST0dSQU1fUEFUSCA9IGd0
ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKEdURVNUX1BST0dSQU1fTkFNRSkK
QEAgLTQ1OSwxNCArNjg5LDE0IEBAIGNsYXNzIEdUZXN0SnNvbk91dHB1dFVuaXRUZXN0KGd0ZXN0
X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICAgIiIiCiAgICAgICBzZWxmLl9UZXN0SnNvbk91
dHB1dChHVEVTVF9QUk9HUkFNX05BTUUsIEVYUEVDVEVEX05PTl9FTVBUWSwgMSkKIAotICBkZWYg
dGVzdEVtcHR5SnNvbk91dHB1dChzZWxmKToKKyAgZGVmIHRlc3ROb1Rlc3RKc29uT3V0cHV0KHNl
bGYpOgogICAgICIiIlZlcmlmaWVzIEpTT04gb3V0cHV0IGZvciBhIEdvb2dsZSBUZXN0IGJpbmFy
eSB3aXRob3V0IGFjdHVhbCB0ZXN0cy4KIAotICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBn
ZW5lcmF0ZXMgYW4gZW1wdHkgSlNPTiBvdXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhlIEpT
T04gb3V0cHV0IGlzIGV4cGVjdGVkLgorICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5l
cmF0ZXMgYW4gSlNPTiBvdXRwdXQgZm9yIGEgYmluYXJ5IHdpdGggbm8KKyAgICB0ZXN0cywgYW5k
IHRlc3RzIHRoYXQgdGhlIEpTT04gb3V0cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAg
c2VsZi5fVGVzdEpzb25PdXRwdXQoJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9F
TVBUWSwgMCkKKyAgICBzZWxmLl9UZXN0SnNvbk91dHB1dCgnZ3Rlc3Rfbm9fdGVzdF91bml0dGVz
dCcsIEVYUEVDVEVEX05PX1RFU1QsIDApCiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1ZShzZWxm
KToKICAgICAiIiJDaGVja3Mgd2hldGhlciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBpbiB0aGUg
SlNPTiBvdXRwdXQgaXMgdmFsaWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtbGlua2VkLXB0ci10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmEwMGYzNDI5NmJkNTc5NGMxNjQ0NzlmMjJhODhkZDRmNzM2MDAxZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlua2VkLXB0ci10ZXN0LmNjCisrKyAvZGV2
L251bGwKQEAgLTEsMTUxICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDAzLCBHb29nbGUgSW5jLgot
Ly8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5oIgotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0KLW5h
bWVzcGFjZSB7Ci0KLXVzaW5nIHRlc3Rpbmc6Ok1lc3NhZ2U7Ci11c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6bGlua2VkX3B0cjsKLQotaW50IG51bTsKLU1lc3NhZ2UqIGhpc3RvcnkgPSBOVUxMOwot
Ci0vLyBDbGFzcyB3aGljaCB0cmFja3MgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24KLWNsYXNzIEEg
ewotIHB1YmxpYzoKLSAgQSgpOiBteW51bShudW0rKykgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXlu
dW0gPDwgIiBjdG9yXG4iOyB9Ci0gIHZpcnR1YWwgfkEoKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBt
eW51bSA8PCAiIGR0b3JcbiI7IH0KLSAgdmlydHVhbCB2b2lkIFVzZSgpIHsgKmhpc3RvcnkgPDwg
IkEiIDw8IG15bnVtIDw8ICIgdXNlXG4iOyB9Ci0gcHJvdGVjdGVkOgotICBpbnQgbXludW07Ci19
OwotCi0vLyBTdWJjbGFzcwotY2xhc3MgQiA6IHB1YmxpYyBBIHsKLSBwdWJsaWM6Ci0gIEIoKSB7
ICpoaXN0b3J5IDw8ICJCIiA8PCBteW51bSA8PCAiIGN0b3JcbiI7IH0KLSAgfkIoKSB7ICpoaXN0
b3J5IDw8ICJCIiA8PCBteW51bSA8PCAiIGR0b3JcbiI7IH0KLSAgdmlydHVhbCB2b2lkIFVzZSgp
IHsgKmhpc3RvcnkgPDwgIkIiIDw8IG15bnVtIDw8ICIgdXNlXG4iOyB9Ci19OwotCi1jbGFzcyBM
aW5rZWRQdHJUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHB1YmxpYzoKLSAgTGlua2Vk
UHRyVGVzdCgpIHsKLSAgICBudW0gPSAwOwotICAgIGhpc3RvcnkgPSBuZXcgTWVzc2FnZTsKLSAg
fQotCi0gIHZpcnR1YWwgfkxpbmtlZFB0clRlc3QoKSB7Ci0gICAgZGVsZXRlIGhpc3Rvcnk7Ci0g
ICAgaGlzdG9yeSA9IE5VTEw7Ci0gIH0KLX07Ci0KLVRFU1RfRihMaW5rZWRQdHJUZXN0LCBHZW5l
cmFsVGVzdCkgewotICB7Ci0gICAgbGlua2VkX3B0cjxBPiBhMCwgYTEsIGEyOwotICAgIC8vIFVz
ZSBleHBsaWNpdCBmdW5jdGlvbiBjYWxsIG5vdGF0aW9uIGhlcmUgdG8gc3VwcHJlc3Mgc2VsZi1h
c3NpZ24gd2FybmluZy4KLSAgICBhMC5vcGVyYXRvcj0oYTApOwotICAgIGExID0gYTI7Ci0gICAg
QVNTRVJUX0VRKGEwLmdldCgpLCBzdGF0aWNfY2FzdDxBKj4oTlVMTCkpOwotICAgIEFTU0VSVF9F
UShhMS5nZXQoKSwgc3RhdGljX2Nhc3Q8QSo+KE5VTEwpKTsKLSAgICBBU1NFUlRfRVEoYTIuZ2V0
KCksIHN0YXRpY19jYXN0PEEqPihOVUxMKSk7Ci0gICAgQVNTRVJUX1RSVUUoYTAgPT0gTlVMTCk7
Ci0gICAgQVNTRVJUX1RSVUUoYTEgPT0gTlVMTCk7Ci0gICAgQVNTRVJUX1RSVUUoYTIgPT0gTlVM
TCk7Ci0KLSAgICB7Ci0gICAgICBsaW5rZWRfcHRyPEE+IGEzKG5ldyBBKTsKLSAgICAgIGEwID0g
YTM7Ci0gICAgICBBU1NFUlRfVFJVRShhMCA9PSBhMyk7Ci0gICAgICBBU1NFUlRfVFJVRShhMCAh
PSBOVUxMKTsKLSAgICAgIEFTU0VSVF9UUlVFKGEwLmdldCgpID09IGEzKTsKLSAgICAgIEFTU0VS
VF9UUlVFKGEwID09IGEzLmdldCgpKTsKLSAgICAgIGxpbmtlZF9wdHI8QT4gYTQoYTApOwotICAg
ICAgYTEgPSBhNDsKLSAgICAgIGxpbmtlZF9wdHI8QT4gYTUobmV3IEEpOwotICAgICAgQVNTRVJU
X1RSVUUoYTUuZ2V0KCkgIT0gYTMpOwotICAgICAgQVNTRVJUX1RSVUUoYTUgIT0gYTMuZ2V0KCkp
OwotICAgICAgYTIgPSBhNTsKLSAgICAgIGxpbmtlZF9wdHI8Qj4gYjAobmV3IEIpOwotICAgICAg
bGlua2VkX3B0cjxBPiBhNihiMCk7Ci0gICAgICBBU1NFUlRfVFJVRShiMCA9PSBhNik7Ci0gICAg
ICBBU1NFUlRfVFJVRShhNiA9PSBiMCk7Ci0gICAgICBBU1NFUlRfVFJVRShiMCAhPSBOVUxMKTsK
LSAgICAgIGE1ID0gYjA7Ci0gICAgICBhNSA9IGIwOwotICAgICAgYTMtPlVzZSgpOwotICAgICAg
YTQtPlVzZSgpOwotICAgICAgYTUtPlVzZSgpOwotICAgICAgYTYtPlVzZSgpOwotICAgICAgYjAt
PlVzZSgpOwotICAgICAgKCpiMCkuVXNlKCk7Ci0gICAgICBiMC5nZXQoKS0+VXNlKCk7Ci0gICAg
fQotCi0gICAgYTAtPlVzZSgpOwotICAgIGExLT5Vc2UoKTsKLSAgICBhMi0+VXNlKCk7Ci0KLSAg
ICBhMSA9IGEyOwotICAgIGEyLnJlc2V0KG5ldyBBKTsKLSAgICBhMC5yZXNldCgpOwotCi0gICAg
bGlua2VkX3B0cjxBPiBhNzsKLSAgfQotCi0gIEFTU0VSVF9TVFJFUSgKLSAgICAiQTAgY3Rvclxu
IgotICAgICJBMSBjdG9yXG4iCi0gICAgIkEyIGN0b3JcbiIKLSAgICAiQjIgY3RvclxuIgotICAg
ICJBMCB1c2VcbiIKLSAgICAiQTAgdXNlXG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiB1c2Vc
biIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAi
QjIgZHRvclxuIgotICAgICJBMiBkdG9yXG4iCi0gICAgIkEwIHVzZVxuIgotICAgICJBMCB1c2Vc
biIKLSAgICAiQTEgdXNlXG4iCi0gICAgIkEzIGN0b3JcbiIKLSAgICAiQTAgZHRvclxuIgotICAg
ICJBMyBkdG9yXG4iCi0gICAgIkExIGR0b3JcbiIsCi0gICAgaGlzdG9yeS0+R2V0U3RyaW5nKCku
Y19zdHIoKSk7Ci19Ci0KLX0gIC8vIFVubmFtZWQgbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8u
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11
bml0dGVzdF8uY2MKaW5kZXggZjQ3M2M3ZDFhNDVmMWYxOTZiMTM3NDgzYjA1M2NhNTk4MDA3ZDI4
OC4uNDkzYzZmMDA0NjRhOTBkNjM1ZDhkZjA5NmJmZmVjNTE3M2U2ZTQ0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRl
c3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0
LXRlc3RzLXVuaXR0ZXN0Xy5jYwpAQCAtOTksNyArOTksNyBAQCBURVNUX1AoVmFsdWVQYXJhbVRl
c3QsIFRlc3RBKSB7CiBURVNUX1AoVmFsdWVQYXJhbVRlc3QsIFRlc3RCKSB7CiB9CiAKLUlOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QKAorSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKAogICAgIE15SW5z
dGFudGlhdGlvbiwgVmFsdWVQYXJhbVRlc3QsCiAgICAgdGVzdGluZzo6VmFsdWVzKE15VHlwZSgi
b25lIGxpbmUiKSwKICAgICAgICAgICAgICAgICAgICAgTXlUeXBlKCJ0d29cbmxpbmVzIiksCkBA
IC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgTXlBcnJheSB7CiB0eXBlZGVmIHRlc3Rpbmc6OlR5cGVz
PFZlcnlMb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb2dOYW1lLCAgLy8gTk9MSU5UCiAgICAgICAgICAg
ICAgICAgICAgICAgIGludCosIE15QXJyYXk8Ym9vbCwgNDI+ID4gTXlUeXBlczsKIAotVFlQRURf
VEVTVF9DQVNFKFR5cGVkVGVzdCwgTXlUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVz
dCwgTXlUeXBlcyk7CiAKIFRZUEVEX1RFU1QoVHlwZWRUZXN0LCBUZXN0QSkgewogfQpAQCAtMTM3
LDcgKzEzNyw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZVBhcmFtVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJh
bVRlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbVRlc3QpOwogCiBUWVBFRF9URVNU
X1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEpIHsKIH0KQEAgLTE0NSw5ICsxNDUsOSBAQCBUWVBFRF9U
RVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEpIHsKIFRZUEVEX1RFU1RfUChUeXBlUGFyYW1UZXN0
LCBUZXN0QikgewogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1UZXN0
LCBUZXN0QSwgVGVzdEIpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbVRl
c3QsIFRlc3RBLCBUZXN0Qik7CiAKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBU
eXBlUGFyYW1UZXN0LCBNeVR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChN
eSwgVHlwZVBhcmFtVGVzdCwgTXlUeXBlcyk7CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq
YXJndikgewogICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10
ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVy
LXRlc3QuY2MKaW5kZXggODM1NTU5NzE1MWQwOWQ2YzMxNTY3MWY0MmRiNjZjYzRiZDQ4NTBmZC4u
MTA0NTdhZmUzOWE3ZGJkMWZhMGY3MzM5Mjg2Nzg3MjhkY2QxYjk1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3Qu
Y2MKQEAgLTM1LDE5ICszNSwyMCBAQAogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImd0
ZXN0L2d0ZXN0LmgiCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgiCiAK
IHVzaW5nIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50OwogdXNpbmcgOjp0ZXN0
aW5nOjpFbnZpcm9ubWVudDsKIHVzaW5nIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3Q7CiB1c2lu
ZyA6OnRlc3Rpbmc6OlRlc3Q7Ci11c2luZyA6OnRlc3Rpbmc6OlRlc3RDYXNlOwordXNpbmcgOjp0
ZXN0aW5nOjpUZXN0U3VpdGU7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RFdmVudExpc3RlbmVyOwog
dXNpbmcgOjp0ZXN0aW5nOjpUZXN0SW5mbzsKIHVzaW5nIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1
bHQ7CiB1c2luZyA6OnRlc3Rpbmc6OlVuaXRUZXN0OwogCiAvLyBVc2VkIGJ5IHRlc3RzIHRvIHJl
Z2lzdGVyIHRoZWlyIGV2ZW50cy4KLXN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiogZ19ldmVudHMg
PSBOVUxMOworc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiBnX2V2ZW50cyA9IG51bGxwdHI7CiAK
IG5hbWVzcGFjZSB0ZXN0aW5nIHsKIG5hbWVzcGFjZSBpbnRlcm5hbCB7CkBAIC01Nyw2MyArNTgs
NjYgQEAgY2xhc3MgRXZlbnRSZWNvcmRpbmdMaXN0ZW5lciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0
ZW5lciB7CiAgIGV4cGxpY2l0IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIoY29uc3QgY2hhciogbmFt
ZSkgOiBuYW1lXyhuYW1lKSB7fQogCiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0
UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25U
ZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7
CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3Jh
bVN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGl0ZXJhdGlvbikgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBpdGVyYXRpb24pIG92ZXJyaWRlIHsKICAgICBNZXNzYWdlIG1lc3NhZ2U7CiAgICAgbWVz
c2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0SXRlcmF0aW9uU3RhcnQiKQogICAgICAg
ICAgICAgPDwgIigiIDw8IGl0ZXJhdGlvbiA8PCAiKSI7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFj
ayhtZXNzYWdlLkdldFN0cmluZygpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25t
ZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBP
bkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92
ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVu
dmlyb25tZW50c1NldFVwU3RhcnQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9u
bWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9u
RW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJy
aWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmly
b25tZW50c1NldFVwRW5kIikpOwogICB9Ci0KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VTdGFy
dChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENh
c2UmIC8qdGVzdF9jYXNlKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdl
dEZ1bGxNZXRob2ROYW1lKCJPblRlc3RDYXNlU3RhcnQiKSk7CiAgIH0KKyNlbmRpZiAgLy8gR1RF
U1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0
YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSB7CisgIHZvaWQgT25UZXN0U3RhcnQo
Y29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRlIHsKICAgICBnX2V2ZW50cy0+
cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RTdGFydCIpKTsKICAgfQogCi0gIHZp
cnR1YWwgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3Rf
cGFydF9yZXN1bHQqLykgeworICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3VsdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1
c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0UGFydFJlc3VsdCIpKTsKICAgfQogCi0g
IHZpcnR1YWwgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIHsK
KyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRl
IHsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RFbmQi
KSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYg
Lyp0ZXN0X2Nhc2UqLykgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQ
SV8KKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBv
dmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25U
ZXN0Q2FzZUVuZCIpKTsKICAgfQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAg
Z19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNUZWFy
RG93blN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRv
d25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25t
ZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7
CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVu
dHNUZWFyRG93bkVuZCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25F
bmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUgewogICAgIE1lc3NhZ2UgbWVzc2FnZTsKICAgICBtZXNz
YWdlIDw8IEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25FbmQiKQogICAgICAgICAg
ICAgPDwgIigiICA8PCBpdGVyYXRpb24gPDwgIikiOwogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2so
bWVzc2FnZS5HZXRTdHJpbmcoKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3Jh
bUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uVGVzdFByb2dy
YW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKICAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQcm9ncmFtRW5kIikpOwog
ICB9CiAKQEAgLTEyNSwzNCArMTI5LDk4IEBAIGNsYXNzIEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIg
OiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewogICBzdGQ6OnN0cmluZyBuYW1lXzsKIH07CiAK
LWNsYXNzIEVudmlyb25tZW50SW52b2NhdGlvbkNhdGNoZXIgOiBwdWJsaWMgRW52aXJvbm1lbnQg
eworLy8gVGhpcyBsaXN0ZW5lciBpcyB1c2luZyBPblRlc3RTdWl0ZVN0YXJ0LCBPblRlc3RTdWl0
ZUVuZCBBUEkKK2NsYXNzIEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIyIDogcHVibGljIFRlc3RFdmVu
dExpc3RlbmVyIHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIy
KGNvbnN0IGNoYXIqIG5hbWUpIDogbmFtZV8obmFtZSkge30KKwogIHByb3RlY3RlZDoKLSAgdmly
dHVhbCB2b2lkIFNldFVwKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkVudmlyb25tZW50
OjpTZXRVcCIpOworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1
bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1l
dGhvZE5hbWUoIk9uVGVzdFByb2dyYW1TdGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0SXRl
cmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGUgeworICAgIE1lc3NhZ2UgbWVz
c2FnZTsKKyAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RJdGVyYXRpb25T
dGFydCIpIDw8ICIoIiA8PCBpdGVyYXRpb24KKyAgICAgICAgICAgIDw8ICIpIjsKKyAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKG1lc3NhZ2UuR2V0U3RyaW5nKCkpOworICB9CisKKyAgdm9pZCBPbkVu
dmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJy
aWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmly
b25tZW50c1NldFVwU3RhcnQiKSk7CisgIH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBF
bmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50
cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1NldFVwRW5kIikp
OworICB9CisKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0
X3N1aXRlKi8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPblRlc3RTdWl0ZVN0YXJ0IikpOworICB9CisKKyAgdm9pZCBPblRlc3RTdGFydChj
b25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5w
dXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFN0YXJ0IikpOworICB9CisKKyAgdm9p
ZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1
bHQqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uVGVzdFBhcnRSZXN1bHQiKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEVuZChjb25zdCBU
ZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2Jh
Y2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdEVuZCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9p
ZCBUZWFyRG93bigpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6VGVh
ckRvd24iKTsKKyAgdm9pZCBPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9z
dWl0ZSovKSBvdmVycmlkZSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9k
TmFtZSgiT25UZXN0U3VpdGVFbmQiKSk7CiAgIH0KKworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVh
ckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAg
IGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVh
ckRvd25TdGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5w
dXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiKSk7
CisgIH0KKworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJhdGlvbikgb3ZlcnJp
ZGUgeworICAgIE1lc3NhZ2UgbWVzc2FnZTsKKyAgICBtZXNzYWdlIDw8IEdldEZ1bGxNZXRob2RO
YW1lKCJPblRlc3RJdGVyYXRpb25FbmQiKSA8PCAiKCIgPDwgaXRlcmF0aW9uCisgICAgICAgICAg
ICA8PCAiKSI7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhtZXNzYWdlLkdldFN0cmluZygpKTsK
KyAgfQorCisgIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUgeworICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5h
bWUoIk9uVGVzdFByb2dyYW1FbmQiKSk7CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6c3RyaW5n
IEdldEZ1bGxNZXRob2ROYW1lKGNvbnN0IGNoYXIqIG5hbWUpIHsgcmV0dXJuIG5hbWVfICsgIi4i
ICsgbmFtZTsgfQorCisgIHN0ZDo6c3RyaW5nIG5hbWVfOworfTsKKworY2xhc3MgRW52aXJvbm1l
bnRJbnZvY2F0aW9uQ2F0Y2hlciA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CisgcHJvdGVjdGVkOgor
ICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVu
dDo6U2V0VXAiKTsgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGdfZXZlbnRzLT5w
dXNoX2JhY2soIkVudmlyb25tZW50OjpUZWFyRG93biIpOyB9CiB9OwogCiBjbGFzcyBMaXN0ZW5l
clRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RDYXNlKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0VXBU
ZXN0Q2FzZSIpOworICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2ZW50
cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdFN1aXRlIik7CiAgIH0KIAotICBz
dGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2so
Ikxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0Q2FzZSIpOworICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RTdWl0ZSgpIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRl
YXJEb3duVGVzdFN1aXRlIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAg
Z19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpTZXRVcCIpOwotICB9CisgIHZvaWQg
U2V0VXAoKSBvdmVycmlkZSB7IGdfZXZlbnRzLT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6U2V0
VXAiKTsgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICBnX2V2ZW50cy0+cHVz
aF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIik7Ci0gIH0KKyAgdm9pZCBUZWFyRG93bigp
IG92ZXJyaWRlIHsgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIp
OyB9CiB9OwogCiBURVNUX0YoTGlzdGVuZXJUZXN0LCBEb2VzRm9vKSB7CkBAIC0xNzMsNiArMjQx
LDcgQEAgVEVTVF9GKExpc3RlbmVyVGVzdCwgRG9lc0JhcikgewogCiB1c2luZyA6OnRlc3Rpbmc6
OmludGVybmFsOjpFbnZpcm9ubWVudEludm9jYXRpb25DYXRjaGVyOwogdXNpbmcgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6RXZlbnRSZWNvcmRpbmdMaXN0ZW5lcjsKK3VzaW5nIDo6dGVzdGluZzo6aW50
ZXJuYWw6OkV2ZW50UmVjb3JkaW5nTGlzdGVuZXIyOwogCiB2b2lkIFZlcmlmeVJlc3VsdHMoY29u
c3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBkYXRhLAogICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGNvbnN0KiBleHBlY3RlZF9kYXRhLApAQCAtMjA3LDYgKzI3Niw4IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgICAgbmV3IEV2ZW50UmVjb3JkaW5nTGlz
dGVuZXIoIjFzdCIpKTsKICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLkFw
cGVuZCgKICAgICAgIG5ldyBFdmVudFJlY29yZGluZ0xpc3RlbmVyKCIybmQiKSk7CisgIFVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5BcHBlbmQoCisgICAgICBuZXcgRXZlbnRS
ZWNvcmRpbmdMaXN0ZW5lcjIoIjNyZCIpKTsKIAogICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQo
bmV3IEVudmlyb25tZW50SW52b2NhdGlvbkNhdGNoZXIpOwogCkBAIC0yMTYsODggKzI4NywyMjQg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIDo6dGVzdGluZzo6R1RFU1Rf
RkxBRyhyZXBlYXQpID0gMjsKICAgaW50IHJldF92YWwgPSBSVU5fQUxMX1RFU1RTKCk7CiAKLSAg
Y29uc3QgY2hhciogY29uc3QgZXhwZWN0ZWRfZXZlbnRzW10gPSB7Ci0gICAgIjFzdC5PblRlc3RQ
cm9ncmFtU3RhcnQiLAotICAgICIybmQuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKLSAgICAiMXN0Lk9u
VGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDAp
IiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAgIjJuZC5PbkVudmly
b25tZW50c1NldFVwU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAotICAgICIybmQu
T25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5k
IiwKLSAgICAiMXN0Lk9uVGVzdENhc2VTdGFydCIsCi0gICAgIjJuZC5PblRlc3RDYXNlU3RhcnQi
LAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdENhc2UiLAotICAgICIxc3QuT25UZXN0U3Rh
cnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwK
LSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQYXJ0UmVz
dWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRl
YXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQiLAotICAg
ICIxc3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5l
clRlc3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFz
dC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJM
aXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5P
blRlc3RFbmQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdENhc2UiLAotICAgICIy
bmQuT25UZXN0Q2FzZUVuZCIsCi0gICAgIjFzdC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9u
RW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJE
b3duU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAotICAgICIybmQuT25FbnZp
cm9ubWVudHNUZWFyRG93bkVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5k
IiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCi0gICAgIjFzdC5PblRlc3RJdGVy
YXRpb25FbmQoMCkiLAotICAgICIxc3QuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAotICAgICIy
bmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRV
cFN0YXJ0IiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAgIkVudmly
b25tZW50OjpTZXRVcCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKLSAgICAi
MXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAotICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwK
LSAgICAiMm5kLk9uVGVzdENhc2VTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0
Q2FzZSIsCi0gICAgIjFzdC5PblRlc3RTdGFydCIsCi0gICAgIjJuZC5PblRlc3RTdGFydCIsCi0g
ICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAotICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5
IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICIybmQuT25UZXN0UGFydFJlc3Vs
dCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAotICAgICIybmQuT25UZXN0RW5kIiwK
LSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RTdGFydCIsCi0gICAgIjJuZC5P
blRlc3RTdGFydCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAotICAgICJMaXN0ZW5lclRl
c3Q6OiogVGVzdCBCb2R5IiwKLSAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICIybmQu
T25UZXN0UGFydFJlc3VsdCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAotICAgICIy
bmQuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdEVuZCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6
VGVhckRvd25UZXN0Q2FzZSIsCi0gICAgIjJuZC5PblRlc3RDYXNlRW5kIiwKLSAgICAiMXN0Lk9u
VGVzdENhc2VFbmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKLSAg
ICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCi0gICAgIkVudmlyb25tZW50OjpU
ZWFyRG93biIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKLSAgICAiMXN0
Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAotICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5k
KDEpIiwKLSAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCi0gICAgIjJuZC5PblRlc3RQ
cm9ncmFtRW5kIiwKLSAgICAiMXN0Lk9uVGVzdFByb2dyYW1FbmQiCi0gIH07CisjaWZuZGVmIEdU
RVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIC8vIFRoZSBkZXByZWNhdGVkIE9u
VGVzdFN1aXRlU3RhcnQvT25UZXN0Q2FzZVN0YXJ0IGV2ZW50cyBhcmUgaW5jbHVkZWQKKyAgY29u
c3QgY2hhciogY29uc3QgZXhwZWN0ZWRfZXZlbnRzW10gPSB7IjFzdC5PblRlc3RQcm9ncmFtU3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVz
dFByb2dyYW1TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0
ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNT
ZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVu
dmlyb25tZW50OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRV
cEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25U
ZXN0U3VpdGVTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjJuZC5PblRlc3RDYXNlU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFy
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRl
c3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxp
c3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFy
RG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25U
ZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5P
blRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0
Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRS
ZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0
Q2FzZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3Qu
T25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1l
bnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRv
d25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9u
RW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRp
b25FbmQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0
Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJv
bm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlNldFVw
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmly
b25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZVN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNl
U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9u
VGVzdENhc2VTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRl
c3QgQm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3Qu
T25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVz
dFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3Rl
bmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6
OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNy
ZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Mm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd25UZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlRW5kIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RDYXNlRW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RDYXNlRW5kIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50
OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz
cmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFy
RG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQu
T25UZXN0SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbUVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0
UHJvZ3JhbUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25UZXN0UHJvZ3JhbUVuZCJ9OworI2Vsc2UKKyAgY29uc3QgY2hhciogY29uc3QgZXhwZWN0
ZWRfZXZlbnRzW10gPSB7IjFzdC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0UHJvZ3JhbVN0
YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRl
c3RJdGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50
c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Mm5kLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVu
dHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIy
bmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVw
VGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFz
dC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0UGFydFJl
c3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25U
ZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjoqIFRl
c3QgQm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3Qu
T25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIybmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0UGFydFJlc3VsdCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RFbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEVuZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0RW5kIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVh
ckRvd25UZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uVGVzdFN1aXRlRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25T
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25F
bnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkVudmlyb25tZW50OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVu
dHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RJdGVyYXRpb25FbmQo
MCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVz
dEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIxc3QuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25T
dGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3Qu
T25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFy
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVu
dDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3Jk
Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRl
U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVu
ZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBh
cnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6
OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3Rl
bmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0
RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRl
c3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9u
VGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0
ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVh
ckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgx
KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0
SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFByb2dyYW1FbmQi
fTsKKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKICAgVmVy
aWZ5UmVzdWx0cyhldmVudHMsCiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXZlbnRzLAogICAg
ICAgICAgICAgICAgIHNpemVvZihleHBlY3RlZF9ldmVudHMpL3NpemVvZihleHBlY3RlZF9ldmVu
dHNbMF0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1tZXNzYWdlLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtbWVzc2FnZS10ZXN0LmNjCmluZGV4IGM2NDQ1ODUzZTQzM2QzYzE0MzQ1MjU3MzkxYTZi
OTg4YTlkMzgwZWYuLjk2MmQ1MTkxMTRlNmU0ZTNkYzNkZjE5ZmRlNzU0NTU3MWJjMDMxYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdl
LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW1l
c3NhZ2UtdGVzdC5jYwpAQCAtODUsNyArODUsNyBAQCBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1z
UG9pbnRlcikgewogCiAvLyBUZXN0cyBzdHJlYW1pbmcgYSBOVUxMIG5vbi1jaGFyIHBvaW50ZXIu
CiBURVNUKE1lc3NhZ2VUZXN0LCBTdHJlYW1zTnVsbFBvaW50ZXIpIHsKLSAgaW50KiBwID0gTlVM
TDsKKyAgaW50KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVzc2FnZSgp
IDw8IHApLkdldFN0cmluZygpKTsKIH0KIApAQCAtOTYsNyArOTYsNyBAQCBURVNUKE1lc3NhZ2VU
ZXN0LCBTdHJlYW1zQ1N0cmluZykgewogCiAvLyBUZXN0cyBzdHJlYW1pbmcgYSBOVUxMIEMgc3Ry
aW5nLgogVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc051bGxDU3RyaW5nKSB7Ci0gIGNoYXIqIHAg
PSBOVUxMOworICBjaGFyKiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCIobnVsbCkiLCAoTWVz
c2FnZSgpIDw8IHApLkdldFN0cmluZygpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW9wdGlvbnMtdGVzdC5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vcHRpb25zLXRlc3QuY2MKaW5kZXggZWRkNGVi
YTNiZDMxMDk1OTUwYThkOThjZjNkYWY2ZjM0ZDY0OTY5Zi4uZjA3YjMxNmRiM2I5NDEwNTMwM2Iy
Mjc1ZWIzZjlkYzZkMTExOTA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LW9wdGlvbnMtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3B0aW9ucy10ZXN0LmNjCkBAIC0xMDIsMTAgKzEwMiwxNSBA
QCBURVNUKE91dHB1dEZpbGVIZWxwZXJzVGVzdCwgR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKSB7
CiAgICAgICBfc3RyY21waSgiZ3Rlc3Qtb3B0aW9ucy1leF90ZXN0IiwgZXhlX3N0ci5jX3N0cigp
KSA9PSAwIHx8CiAgICAgICBfc3RyY21waSgiZ3Rlc3RfYWxsX3Rlc3QiLCBleGVfc3RyLmNfc3Ry
KCkpID09IDAgfHwKICAgICAgIF9zdHJjbXBpKCJndGVzdF9kbGxfdGVzdCIsIGV4ZV9zdHIuY19z
dHIoKSkgPT0gMDsKKyNlbGlmIEdURVNUX09TX09TMgorICBjb25zdCBib29sIHN1Y2Nlc3MgPQor
ICAgICAgc3RyY2FzZWNtcCgiZ29vZ2xldGVzdC1vcHRpb25zLXRlc3QiLCBleGVfc3RyLmNfc3Ry
KCkpID09IDAgfHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0LW9wdGlvbnMtZXhfdGVzdCIsIGV4
ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAorICAgICAgc3RyY2FzZWNtcCgiZ3Rlc3RfYWxsX3Rlc3Qi
LCBleGVfc3RyLmNfc3RyKCkpID09IDAgfHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0X2RsbF90
ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwOwogI2VsaWYgR1RFU1RfT1NfRlVDSFNJQQogICBj
b25zdCBib29sIHN1Y2Nlc3MgPSBleGVfc3RyID09ICJhcHAiOwogI2Vsc2UKLSAgLy8gRklYTUU6
IHJlbW92ZSB0aGUgaGFyZC1jb2RlZCAibHQtIiBwcmVmaXggd2hlbiBsaWJ0b29sIHJlcGxhY2Vt
ZW50IGlzIHJlYWR5CiAgIGNvbnN0IGJvb2wgc3VjY2VzcyA9CiAgICAgICBleGVfc3RyID09ICJn
b29nbGV0ZXN0LW9wdGlvbnMtdGVzdCIgfHwKICAgICAgIGV4ZV9zdHIgPT0gImd0ZXN0X2FsbF90
ZXN0IiB8fApAQCAtMTIwLDcgKzEyNSw3IEBAIFRFU1QoT3V0cHV0RmlsZUhlbHBlcnNUZXN0LCBH
ZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUpIHsKIAogY2xhc3MgWG1sT3V0cHV0Q2hhbmdlRGlyVGVz
dCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsK
KyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBvcmlnaW5hbF93b3JraW5nX2Rpcl8gPSBG
aWxlUGF0aDo6R2V0Q3VycmVudERpcigpOwogICAgIHBvc2l4OjpDaERpcigiLi4iKTsKICAgICAv
LyBUaGlzIHdpbGwgbWFrZSB0aGUgdGVzdCBmYWlsIGlmIHJ1biBmcm9tIHRoZSByb290IGRpcmVj
dG9yeS4KQEAgLTEyOCw3ICsxMzMsNyBAQCBjbGFzcyBYbWxPdXRwdXRDaGFuZ2VEaXJUZXN0IDog
cHVibGljIFRlc3QgewogICAgICAgICAgICAgICBGaWxlUGF0aDo6R2V0Q3VycmVudERpcigpLnN0
cmluZygpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfd29ya2luZ19kaXJf
LnN0cmluZygpLmNfc3RyKCkpOwogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGlu
LnR4dAppbmRleCA4NmRhODQ1YjdkMDRlYTFmMmI1NTM0NjA0ZWU5YzBkMmI1Zjg1OTE2Li4zZmFi
M2I5N2Q4ZjFhMjJiNjQxZDc1NWFiODM1OWU1YjAzYzkyMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50
eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10
ZXN0LWdvbGRlbi1saW4udHh0CkBAIC0xMiw3ICsxMiw3IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9m
IHRoZXNlIHZhbHVlczoKICAgMwogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCi0bWzA7MzJtWz09
PT09PT09PT1dIBtbbVJ1bm5pbmcgNzYgdGVzdHMgZnJvbSAzNCB0ZXN0IGNhc2VzLgorG1swOzMy
bVs9PT09PT09PT09XSAbW21SdW5uaW5nIDg4IHRlc3RzIGZyb20gNDEgdGVzdCBzdWl0ZXMuCiAb
WzA7MzJtWy0tLS0tLS0tLS1dIBtbbUdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIEZv
b0Vudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC4KIEJhckVudmlyb25tZW50OjpTZXRVcCgpIGNh
bGxlZC4KQEAgLTM4MCw2NiArMzgwLDc0IEBAIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDsz
Mm1bIFJVTiAgICAgIF0gG1ttQWRkRmFpbHVyZUF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZp
ZWRGaWxlQW5kTGluZU51bWJlcgogZm9vLmNjOjQyOiBGYWlsdXJlCiBGYWlsZWQKLUV4cGVjdGVk
IGZhaWx1cmUgaW4gZm9vLmNjCitFeHBlY3RlZCBub25mYXRhbCBmYWlsdXJlIGluIGZvby5jYwog
U3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUFkZEZhaWx1
cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKLRtbMDsz
Mm1bLS0tLS0tLS0tLV0gG1ttNCB0ZXN0cyBmcm9tIE1peGVkVXBUZXN0Q2FzZVRlc3QKLRtbMDsz
Mm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5GaXJzdFRlc3RGcm9tTmFtZXNw
YWNlRm9vCi0bWzA7MzJtWyAgICAgICBPSyBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuRmlyc3RU
ZXN0RnJvbU5hbWVzcGFjZUZvbwotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENh
c2VUZXN0LlNlY29uZFRlc3RGcm9tTmFtZXNwYWNlRm9vCi0bWzA7MzJtWyAgICAgICBPSyBdIBtb
bU1peGVkVXBUZXN0Q2FzZVRlc3QuU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28KLRtbMDszMm1b
IFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbAorG1swOzMy
bVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBHdGVzdEZhaWxBdFRlc3QKKxtbMDszMm1bIFJV
TiAgICAgIF0gG1ttR3Rlc3RGYWlsQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVB
bmRMaW5lTnVtYmVyCitmb28uY2M6NDI6IEZhaWx1cmUKK0ZhaWxlZAorRXhwZWN0ZWQgZmF0YWwg
ZmFpbHVyZSBpbiBmb28uY2MKK1N0YWNrIHRyYWNlOiAob21pdHRlZCkKKworG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21HdGVzdEZhaWxBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFu
ZExpbmVOdW1iZXIKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttNCB0ZXN0cyBmcm9tIE1peGVkVXBU
ZXN0U3VpdGVUZXN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0
LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRV
cFRlc3RTdWl0ZVRlc3QuRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbworG1swOzMybVsgUlVOICAg
ICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5TZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbwor
G1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5TZWNvbmRUZXN0RnJv
bU5hbWVzcGFjZUZvbworG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVz
dC5UaGlzU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMg
aW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xh
c3MuICBIb3dldmVyLCBpbiB0ZXN0IGNhc2UgTWl4ZWRVcFRlc3RDYXNlVGVzdCwKK0FsbCB0ZXN0
cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQor
Y2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVUZXN0LAogeW91
IGRlZmluZWQgdGVzdCBGaXJzdFRlc3RGcm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0IFRoaXNTaG91
bGRGYWlsCiB1c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBj
YW4gaGFwcGVuIGlmCiB0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFj
ZXMgb3IgdHJhbnNsYXRpb24KIHVuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hv
dWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKLW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMg
aW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4KK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVz
dHMgaW50byBkaWZmZXJlbnQgdGVzdCBzdWl0ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAK
LRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFp
bAotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRG
YWlsVG9vCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRoaXNT
aG91bGRGYWlsCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LlRo
aXNTaG91bGRGYWlsVG9vCiBndGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBp
biB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFz
cy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSBNaXhlZFVwVGVzdENhc2VUZXN0LAorQWxsIHRlc3Rz
IGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitj
bGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qgc3VpdGUgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsCiB5b3Ug
ZGVmaW5lZCB0ZXN0IEZpcnN0VGVzdEZyb21OYW1lc3BhY2VGb28gYW5kIHRlc3QgVGhpc1Nob3Vs
ZEZhaWxUb28KIHVzaW5nIHR3byBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlIGNsYXNzZXMuICBUaGlz
IGNhbiBoYXBwZW4gaWYKIHRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNw
YWNlcyBvciB0cmFuc2xhdGlvbgogdW5pdHMgYW5kIGhhdmUgdGhlIHNhbWUgbmFtZS4gIFlvdSBz
aG91bGQgcHJvYmFibHkgcmVuYW1lIG9uZQotb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0
cyBpbnRvIGRpZmZlcmVudCB0ZXN0IGNhc2VzLgorb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0
ZXN0cyBpbnRvIGRpZmZlcmVudCB0ZXN0IHN1aXRlcy4KIFN0YWNrIHRyYWNlOiAob21pdHRlZCkK
IAotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNTaG91bGRG
YWlsVG9vCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdENh
c2VXaXRoU2FtZVRlc3ROYW1lVGVzdAotG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVz
dENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxk
RmFpbAotG1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3RO
YW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAotG1swOzMybVsgUlVO
ICAgICAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRU
ZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVw
VGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbworG1swOzMybVstLS0tLS0tLS0tXSAbW20y
IHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0CisbWzA7MzJt
WyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVT
ZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAorG1swOzMybVsgICAgICAgT0sgXSAbW21N
aXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlz
TmFtZVNob3VsZEZhaWwKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdp
dGhTYW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiBn
dGVzdC5jYzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNh
c2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcy4gIEhvd2V2ZXIsIGluIHRl
c3QgY2FzZSBNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCwKK0FsbCB0ZXN0cyBp
biB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xh
c3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3RO
YW1lVGVzdCwKIHlvdSBkZWZpbmVkIHRlc3QgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3Vs
ZEZhaWwgYW5kIHRlc3QgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKIHVzaW5n
IHR3byBkaWZmZXJlbnQgdGVzdCBmaXh0dXJlIGNsYXNzZXMuICBUaGlzIGNhbiBoYXBwZW4gaWYK
IHRoZSB0d28gY2xhc3NlcyBhcmUgZnJvbSBkaWZmZXJlbnQgbmFtZXNwYWNlcyBvciB0cmFuc2xh
dGlvbgogdW5pdHMgYW5kIGhhdmUgdGhlIHNhbWUgbmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkg
cmVuYW1lIG9uZQotb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVu
dCB0ZXN0IGNhc2VzLgorb2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZl
cmVudCB0ZXN0IHN1aXRlcy4KIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRU
ZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVw
VGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNo
b3VsZEZhaWwKIBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFRFU1RfRl9iZWZv
cmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZQogG1swOzMybVsgUlVOICAgICAgXSAbW21URVNUX0Zf
YmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9GCiAbWzA7MzJt
WyAgICAgICBPSyBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZp
bmVkVXNpbmdURVNUX0YKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNU
X2luX3NhbWVfdGVzdF9jYXNlLkRlZmluZWRVc2luZ1RFU1RBbmRTaG91bGRGYWlsCiBndGVzdC5j
YzojOiBGYWlsdXJlCiBGYWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVz
dCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCi1jbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQg
VEVTVCBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgaXMKLWlsbGVnYWwuICBJbiB0ZXN0IGNhc2UgVEVT
VF9GX2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLAorQWxsIHRlc3RzIGluIHRoZSBzYW1l
IHRlc3Qgc3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcywgc28gbWl4
aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIGlzCitpbGxlZ2FsLiAg
SW4gdGVzdCBzdWl0ZSBURVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UsCiB0ZXN0
IERlZmluZWRVc2luZ1RFU1RfRiBpcyBkZWZpbmVkIHVzaW5nIFRFU1RfRiBidXQKIHRlc3QgRGVm
aW5lZFVzaW5nVEVTVEFuZFNob3VsZEZhaWwgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHBy
b2JhYmx5CiB3YW50IHRvIGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBh
bm90aGVyIHRlc3QKQEAgLTQ1Myw5ICs0NjEsOSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAb
WzA7MzJtWyBSVU4gICAgICBdIBtbbVRFU1RfYmVmb3JlX1RFU1RfRl9pbl9zYW1lX3Rlc3RfY2Fz
ZS5EZWZpbmVkVXNpbmdURVNUX0ZBbmRTaG91bGRGYWlsCiBndGVzdC5jYzojOiBGYWlsdXJlCiBG
YWlsZWQKLUFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUg
dGVzdCBmaXh0dXJlCi1jbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQgVEVTVCBpbiB0aGUgc2Ft
ZSB0ZXN0IGNhc2UgaXMKLWlsbGVnYWwuICBJbiB0ZXN0IGNhc2UgVEVTVF9iZWZvcmVfVEVTVF9G
X2luX3NhbWVfdGVzdF9jYXNlLAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVz
dCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcywgc28gbWl4aW5nIFRFU1RfRiBhbmQg
VEVTVCBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIGlzCitpbGxlZ2FsLiAgSW4gdGVzdCBzdWl0ZSBU
RVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UsCiB0ZXN0IERlZmluZWRVc2luZ1RF
U1RfRkFuZFNob3VsZEZhaWwgaXMgZGVmaW5lZCB1c2luZyBURVNUX0YgYnV0CiB0ZXN0IERlZmlu
ZWRVc2luZ1RFU1QgaXMgZGVmaW5lZCB1c2luZyBURVNULiAgWW91IHByb2JhYmx5CiB3YW50IHRv
IGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92ZSBpdCB0byBhbm90aGVyIHRlc3QKQEAg
LTg3MCw2ICs4NzgsODQgQEAgRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuCiBTdGFjayB0cmFj
ZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVyY2VwdE9ubHlDdXJyZW50VGhyZWFkCisbWzA7MzJtWy0t
LS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBEeW5hbWljRml4dHVyZQorRHluYW1pY0ZpeHR1cmU6
OlNldFVwVGVzdFN1aXRlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5
bmFtaWNUZXN0UGFzcworRHluYW1pY0ZpeHR1cmUoKQorRHluYW1pY0ZpeHR1cmU6OlNldFVwCitE
eW5hbWljRml4dHVyZTo6VGVhckRvd24KK35EeW5hbWljRml4dHVyZSgpCisbWzA7MzJtWyAgICAg
ICBPSyBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFtaWNUZXN0UGFzcworG1swOzMybVsgUlVOICAg
ICAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJlKCkK
K0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFp
bHVyZQorVmFsdWUgb2Y6IFBhc3MKKyAgQWN0dWFsOiBmYWxzZQorRXhwZWN0ZWQ6IHRydWUKK1N0
YWNrIHRyYWNlOiAob21pdHRlZCkKKworRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1p
Y0ZpeHR1cmUoKQorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWlj
VGVzdEZhaWwKK0R5bmFtaWNGaXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0t
LS0tLS0tXSAbW20xIHRlc3QgZnJvbSBEeW5hbWljRml4dHVyZUFub3RoZXJOYW1lCitEeW5hbWlj
Rml4dHVyZTo6U2V0VXBUZXN0U3VpdGUKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttRHluYW1pY0Zp
eHR1cmVBbm90aGVyTmFtZS5EeW5hbWljVGVzdFBhc3MKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFt
aWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1
cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21EeW5hbWljRml4dHVyZUFub3RoZXJOYW1lLkR5
bmFtaWNUZXN0UGFzcworRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJt
Wy0tLS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBCYWREeW5hbWljRml4dHVyZTEKK0R5bmFtaWNG
aXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQorG1swOzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWlj
Rml4dHVyZTEuRml4dHVyZUJhc2UKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpT
ZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMy
bVsgICAgICAgT0sgXSAbW21CYWREeW5hbWljRml4dHVyZTEuRml4dHVyZUJhc2UKKxtbMDszMm1b
IFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUxLlRlc3RCYXNlCitEeW5hbWljRml4dHVy
ZSgpCitndGVzdC5jYzojOiBGYWlsdXJlCitGYWlsZWQKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0
ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGlu
ZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIElu
IHRlc3Qgc3VpdGUgQmFkRHluYW1pY0ZpeHR1cmUxLAordGVzdCBGaXh0dXJlQmFzZSBpcyBkZWZp
bmVkIHVzaW5nIFRFU1RfRiBidXQKK3Rlc3QgVGVzdEJhc2UgaXMgZGVmaW5lZCB1c2luZyBURVNU
LiAgWW91IHByb2JhYmx5Cit3YW50IHRvIGNoYW5nZSB0aGUgVEVTVCB0byBURVNUX0Ygb3IgbW92
ZSBpdCB0byBhbm90aGVyIHRlc3QKK2Nhc2UuCitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKK35E
eW5hbWljRml4dHVyZSgpCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJl
MS5UZXN0QmFzZQorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCisbWzA7MzJtWy0t
LS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBCYWREeW5hbWljRml4dHVyZTIKK0R5bmFtaWNGaXh0
dXJlOjpTZXRVcFRlc3RTdWl0ZQorG1swOzMybVsgUlVOICAgICAgXSAbW21CYWREeW5hbWljRml4
dHVyZTIuRml4dHVyZUJhc2UKK0R5bmFtaWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRV
cAorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsg
ICAgICAgT0sgXSAbW21CYWREeW5hbWljRml4dHVyZTIuRml4dHVyZUJhc2UKKxtbMDszMm1bIFJV
TiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkRlcml2ZWQKK0R5bmFtaWNGaXh0dXJlKCkK
K2d0ZXN0LmNjOiM6IEZhaWx1cmUKK0ZhaWxlZAorQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qg
c3VpdGUgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlCitjbGFzcy4gIEhvd2V2ZXIsIGlu
IHRlc3Qgc3VpdGUgQmFkRHluYW1pY0ZpeHR1cmUyLAoreW91IGRlZmluZWQgdGVzdCBGaXh0dXJl
QmFzZSBhbmQgdGVzdCBEZXJpdmVkCit1c2luZyB0d28gZGlmZmVyZW50IHRlc3QgZml4dHVyZSBj
bGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCit0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlm
ZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KK3VuaXRzIGFuZCBoYXZlIHRoZSBzYW1l
IG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKK29mIHRoZSBjbGFzc2VzIHRv
IHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBzdWl0ZXMuCitTdGFjayB0cmFjZTog
KG9taXR0ZWQpCisKK35EeW5hbWljRml4dHVyZSgpCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUJh
ZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVkCitEeW5hbWljRml4dHVyZTo6VGVhckRvd25UZXN0U3Vp
dGUKIBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0ZXN0IGZyb20gUHJpbnRpbmdGYWlsaW5nUGFy
YW1zL0ZhaWxpbmdQYXJhbVRlc3QKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttUHJpbnRpbmdGYWls
aW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QuRmFpbHMvMAogZ29vZ2xldGVzdC1vdXRwdXQtdGVz
dF8uY2M6IzogRmFpbHVyZQpAQCAtODgwLDYgKzk2Niw5IEBAIEV4cGVjdGVkIGVxdWFsaXR5IG9m
IHRoZXNlIHZhbHVlczoKIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAogG1swOzMxbVsgIEZBSUxF
RCAgXSAbW21QcmludGluZ0ZhaWxpbmdQYXJhbXMvRmFpbGluZ1BhcmFtVGVzdC5GYWlscy8wLCB3
aGVyZSBHZXRQYXJhbSgpID0gMgorG1swOzMybVstLS0tLS0tLS0tXSAbW20xIHRlc3QgZnJvbSBF
bXB0eUJhc2VuYW1lUGFyYW1JbnN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUVtcHR5QmFzZW5h
bWVQYXJhbUluc3QuUGFzc2VzLzAKKxtbMDszMm1bICAgICAgIE9LIF0gG1ttRW1wdHlCYXNlbmFt
ZVBhcmFtSW5zdC5QYXNzZXMvMAogG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3RzIGZyb20g
UHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVzdAogG1swOzMybVsgUlVOICAgICAgXSAbW21QcmludGlu
Z1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nlc3MvYQogG1swOzMybVsgICAgICAgT0sgXSAbW21Qcmlu
dGluZ1N0cmluZ3MvUGFyYW1UZXN0LlN1Y2Nlc3MvYQpAQCAtODkzLDYgKzk4Miw0MyBAQCBFeHBl
Y3RlZCBmYWlsdXJlCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFt
KCkgPSAiYSIKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMyB0ZXN0cyBmcm9tIEdvb2dsZVRlc3RW
ZXJpZmljYXRpb24KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlv
bi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8Tm9UZXN0cz4KK2dvb2dsZXRl
c3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1BhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBO
b1Rlc3RzIGlzIGluc3RhbnRpYXRlZCB2aWEgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QLCBidXQg
bm8gdGVzdHMgYXJlIGRlZmluZWQgdmlhIFRFU1RfUCAuIE5vIHRlc3QgY2FzZXMgd2lsbCBydW4u
CisKK0lkZWFsbHksIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBzaG91bGQgb25seSBldmVyIGJl
IGludm9rZWQgZnJvbSBjb2RlIHRoYXQgYWx3YXlzIGRlcGVuZCBvbiBjb2RlIHRoYXQgcHJvdmlk
ZXMgVEVTVF9QLiBGYWlsaW5nIHRvIGRvIHNvIGlzIG9mdGVuIGFuIGluZGljYXRpb24gb2YgZGVh
ZCBjb2RlLCBlLmcuIHRoZSBsYXN0IFRFU1RfUCB3YXMgcmVtb3ZlZCBidXQgdGhlIHJlc3QgZ290
IGxlZnQgYmVoaW5kLgorCitUbyBzdXBwcmVzcyB0aGlzIGVycm9yIGZvciB0aGlzIHRlc3Qgc3Vp
dGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5h
bWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOgorCitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9Q
QVJBTUVURVJJWkVEX1RFU1QoTm9UZXN0cyk7CitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtb
MDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRl
ZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8Tm9UZXN0cz4KKxtbMDszMm1bIFJVTiAgICAgIF0gG1tt
R29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGU8RGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdD4KK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNj
OiM6IEZhaWx1cmUKK1BhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBEZXRlY3ROb3RJbnN0YW50aWF0
ZWRUZXN0IGlzIGRlZmluZWQgdmlhIFRFU1RfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZC4gTm9u
ZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxsIHJ1bi4gRWl0aGVyIG5vIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUCBpcyBwcm92aWRlZCBvciB0aGUgb25seSBvbmVzIHByb3ZpZGVkIGV4cGFuZCB0byBu
b3RoaW5nLgorCitJZGVhbGx5LCBURVNUX1AgZGVmaW5pdGlvbnMgc2hvdWxkIG9ubHkgZXZlciBi
ZSBpbmNsdWRlZCBhcyBwYXJ0IG9mIGJpbmFyaWVzIHRoYXQgaW50ZW5kIHRvIHVzZSB0aGVtLiAo
QXMgb3Bwb3NlZCB0bywgZm9yIGV4YW1wbGUsIGJlaW5nIHBsYWNlZCBpbiBhIGxpYnJhcnkgdGhh
dCBtYXkgYmUgbGlua2VkIGluIHRvIGdldCBvdGhlciB1dGlsaXRpZXMuKQorCitUbyBzdXBwcmVz
cyB0aGlzIGVycm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxp
bmUgKGluIGEgbm9uLWhlYWRlcikgaW4gdGhlIG5hbWVzcGFjZSBpdCBpcyBkZWZpbmVkIGluOgor
CitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoRGV0ZWN0Tm90
SW5zdGFudGlhdGVkVGVzdCk7CitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBG
QUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRl
cml6ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdD4KKxtbMDszMm1bIFJVTiAg
ICAgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KK2dvb2dsZXRl
c3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1R5cGUgcGFyYW1ldGVyaXplZCB0ZXN0IHN1
aXRlIERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCBpcyBkZWZpbmVkIHZpYSBSRUdJU1RF
Ul9UWVBFRF9URVNUX1NVSVRFX1AsIGJ1dCBuZXZlciBpbnN0YW50aWF0ZWQgdmlhIElOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUC4gTm9uZSBvZiB0aGUgdGVzdCBjYXNlcyB3aWxsIHJ1bi4K
KworSWRlYWxseSwgVFlQRURfVEVTVF9QIGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUg
aW5jbHVkZWQgYXMgcGFydCBvZiBiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFz
IG9wcG9zZWQgdG8sIGZvciBleGFtcGxlLCBiZWluZyBwbGFjZWQgaW4gYSBsaWJyYXJ5IHRoYXQg
bWF5IGJlIGxpbmtlZCBpbiB0byBnZXQgb3RoZXIgdXRpbGl0aWVzLikKKworVG8gc3VwcHJlc3Mg
dGhpcyBlcnJvciBmb3IgdGhpcyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5l
IChpbiBhIG5vbi1oZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBpbjoKKwor
R1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKERldGVjdE5vdElu
c3RhbnRpYXRlZFR5cGVzVGVzdCk7CitTdGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KIBtb
MDszMm1bLS0tLS0tLS0tLV0gG1ttR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCiBC
YXJFbnZpcm9ubWVudDo6VGVhckRvd24oKSBjYWxsZWQuCiBnb29nbGV0ZXN0LW91dHB1dC10ZXN0
Xy5jYzojOiBGYWlsdXJlCkBAIC05MDYsOSArMTAzMiw5IEBAIEZhaWxlZAogRXhwZWN0ZWQgZmF0
YWwgZmFpbHVyZS4KIFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMybVs9PT09PT09PT09
XSAbW203NiB0ZXN0cyBmcm9tIDM0IHRlc3QgY2FzZXMgcmFuLgotG1swOzMybVsgIFBBU1NFRCAg
XSAbW20yNiB0ZXN0cy4KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttNTAgdGVzdHMsIGxpc3RlZCBi
ZWxvdzoKKxtbMDszMm1bPT09PT09PT09PV0gG1ttODggdGVzdHMgZnJvbSA0MSB0ZXN0IHN1aXRl
cyByYW4uCisbWzA7MzJtWyAgUEFTU0VEICBdIBtbbTMxIHRlc3RzLgorG1swOzMxbVsgIEZBSUxF
RCAgXSAbW201NyB0ZXN0cywgbGlzdGVkIGJlbG93OgogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21O
b25mYXRhbEZhaWx1cmVUZXN0LkVzY2FwZXNTdHJpbmdPcGVyYW5kcwogG1swOzMxbVsgIEZBSUxF
RCAgXSAbW21Ob25mYXRhbEZhaWx1cmVUZXN0LkRpZmZGb3JMb25nU3RyaW5ncwogG1swOzMxbVsg
IEZBSUxFRCAgXSAbW21GYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vicm91dGluZQpA
QCAtOTI4LDkgKzEwNTQsMTAgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21Ob25GYXRhbEZhaWx1cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRVcAogG1sw
OzMxbVsgIEZBSUxFRCAgXSAbW21GYXRhbEZhaWx1cmVJblNldFVwVGVzdC5GYWlsdXJlSW5TZXRV
cAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21BZGRGYWlsdXJlQXRUZXN0Lk1lc3NhZ2VDb250YWlu
c1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVk
VXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3VsZEZhaWwKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4
ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbwotG1swOzMxbVsgIEZBSUxFRCAgXSAb
W21NaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRo
aXNOYW1lU2hvdWxkRmFpbAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21HdGVzdEZhaWxBdFRlc3Qu
TWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIKKxtbMDszMW1bICBGQUlM
RUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuVGhpc1Nob3VsZEZhaWwKKxtbMDszMW1bICBG
QUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuVGhpc1Nob3VsZEZhaWxUb28KKxtbMDsz
MW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0LlRo
ZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtb
bVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZS5EZWZpbmVkVXNpbmdURVNUQW5k
U2hvdWxkRmFpbAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21URVNUX2JlZm9yZV9URVNUX0ZfaW5f
c2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9GQW5kU2hvdWxkRmFpbAogG1swOzMxbVsg
IEZBSUxFRCAgXSAbW21FeHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LkZhaWxzV2hlblRoZXJlSXNO
b05vbmZhdGFsRmFpbHVyZQpAQCAtOTU3LDE0ICsxMDg0LDIwIEBAIFN0YWNrIHRyYWNlOiAob21p
dHRlZCkKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRzVGVz
dC5FeHBlY3RGYXRhbEZhaWx1cmUKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0RmFpbHVy
ZVdpdGhUaHJlYWRzVGVzdC5FeHBlY3ROb25GYXRhbEZhaWx1cmUKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0LkludGVyY2VwdE9ubHlD
dXJyZW50VGhyZWFkCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUR5bmFtaWNGaXh0dXJlLkR5bmFt
aWNUZXN0RmFpbAorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuVGVz
dEJhc2UKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkRlcml2ZWQK
IBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdGYWlsaW5nUGFyYW1zL0ZhaWxpbmdQYXJh
bVRlc3QuRmFpbHMvMCwgd2hlcmUgR2V0UGFyYW0oKSA9IDIKIBtbMDszMW1bICBGQUlMRUQgIF0g
G1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVzdC5GYWlsdXJlL2EsIHdoZXJlIEdldFBhcmFtKCkg
PSAiYSIKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmlu
c3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8Tm9UZXN0cz4KKxtbMDszMW1bICBGQUlM
RUQgIF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGU8RGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdD4KKxtbMDszMW1bICBGQUlMRUQg
IF0gG1ttR29vZ2xlVGVzdFZlcmlmaWNhdGlvbi5Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlPERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdD4KIAotNTAgRkFJTEVE
IFRFU1RTCis1NyBGQUlMRUQgVEVTVFMKIBtbMDszM20gIFlPVSBIQVZFIDEgRElTQUJMRUQgVEVT
VAogCiAbW21Ob3RlOiBHb29nbGUgVGVzdCBmaWx0ZXIgPSBGYXRhbEZhaWx1cmVUZXN0Lio6TG9n
Z2luZ1Rlc3QuKgotWz09PT09PT09PT1dIFJ1bm5pbmcgNCB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNl
cy4KK1s9PT09PT09PT09XSBSdW5uaW5nIDQgdGVzdHMgZnJvbSAyIHRlc3Qgc3VpdGVzLgogWy0t
LS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIFstLS0tLS0tLS0tXSAz
IHRlc3RzIGZyb20gRmF0YWxGYWlsdXJlVGVzdAogWyBSVU4gICAgICBdIEZhdGFsRmFpbHVyZVRl
c3QuRmF0YWxGYWlsdXJlSW5TdWJyb3V0aW5lCkBAIC0xMDE3LDcgKzExNTAsNyBAQCBTdGFjayB0
cmFjZTogKG9taXR0ZWQpCiBbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gTG9nZ2luZ1Rlc3QgKD8g
bXMgdG90YWwpCiAKIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRv
d24KLVs9PT09PT09PT09XSA0IHRlc3RzIGZyb20gMiB0ZXN0IGNhc2VzIHJhbi4gKD8gbXMgdG90
YWwpCitbPT09PT09PT09PV0gNCB0ZXN0cyBmcm9tIDIgdGVzdCBzdWl0ZXMgcmFuLiAoPyBtcyB0
b3RhbCkKIFsgIFBBU1NFRCAgXSAwIHRlc3RzLgogWyAgRkFJTEVEICBdIDQgdGVzdHMsIGxpc3Rl
ZCBiZWxvdzoKIFsgIEZBSUxFRCAgXSBGYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vi
cm91dGluZQpAQCAtMTAyNywyMSArMTE2MCwyMSBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAK
ICA0IEZBSUxFRCBURVNUUwogTm90ZTogR29vZ2xlIFRlc3QgZmlsdGVyID0gKkRJU0FCTEVEXyoK
LVs9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBmcm9tIDEgdGVzdCBjYXNlLgorWz09PT09PT09
PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20gMSB0ZXN0IHN1aXRlLgogWy0tLS0tLS0tLS1dIEdsb2Jh
bCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIFstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBEaXNh
YmxlZFRlc3RzV2FybmluZ1Rlc3QKIFsgUlVOICAgICAgXSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rl
c3QuRElTQUJMRURfQWxzb1J1bkRpc2FibGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dhcm5pbmcKIFsg
ICAgICAgT0sgXSBEaXNhYmxlZFRlc3RzV2FybmluZ1Rlc3QuRElTQUJMRURfQWxzb1J1bkRpc2Fi
bGVkVGVzdHNGbGFnU3VwcHJlc3Nlc1dhcm5pbmcKIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBl
bnZpcm9ubWVudCB0ZWFyLWRvd24KLVs9PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRlc3QgY2Fz
ZSByYW4uCitbPT09PT09PT09PV0gMSB0ZXN0IGZyb20gMSB0ZXN0IHN1aXRlIHJhbi4KIFsgIFBB
U1NFRCAgXSAxIHRlc3QuCiBOb3RlOiBHb29nbGUgVGVzdCBmaWx0ZXIgPSBQYXNzaW5nVGVzdC4q
CiBOb3RlOiBUaGlzIGlzIHRlc3Qgc2hhcmQgMiBvZiAyLgotWz09PT09PT09PT1dIFJ1bm5pbmcg
MSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2UuCitbPT09PT09PT09PV0gUnVubmluZyAxIHRlc3QgZnJv
bSAxIHRlc3Qgc3VpdGUuCiBbLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0
LXVwLgogWy0tLS0tLS0tLS1dIDEgdGVzdCBmcm9tIFBhc3NpbmdUZXN0CiBbIFJVTiAgICAgIF0g
UGFzc2luZ1Rlc3QuUGFzc2luZ1Rlc3QyCiBbICAgICAgIE9LIF0gUGFzc2luZ1Rlc3QuUGFzc2lu
Z1Rlc3QyCiBbLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1b
PT09PT09PT09PV0gMSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2UgcmFuLgorWz09PT09PT09PT1dIDEg
dGVzdCBmcm9tIDEgdGVzdCBzdWl0ZSByYW4uCiBbICBQQVNTRUQgIF0gMSB0ZXN0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0
LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0
LnB5CmluZGV4IDJkNjllMzUzYTE5ZTM2OTQ2NTMzYmY1ZjdlMGEyYzkyNDZmN2RjZTcuLjA5MDI4
ZjY2ZjkwYmYyMzgyYmI3OGM3OWJiNGUzYzM5YWRjMzAxNzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkKQEAgLTI5
LDcgKzI5LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIlRlc3RzIHRo
ZSB0ZXh0IG91dHB1dCBvZiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3b3Jr
LgorciIiIlRlc3RzIHRoZSB0ZXh0IG91dHB1dCBvZiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1v
Y2tpbmcgRnJhbWV3b3JrLgogCiBUbyB1cGRhdGUgdGhlIGdvbGRlbiBmaWxlOgogZ29vZ2xldGVz
dF9vdXRwdXRfdGVzdC5weSAtLWJ1aWxkX2Rpcj1CVUlMRC9ESVIgLS1nZW5nb2xkZW4KQEAgLTU1
LDcgKzU1LDYgQEAgTk9fU1RBQ0tUUkFDRV9TVVBQT1JUX0ZMQUcgPSAnLS1ub19zdGFja3RyYWNl
X3N1cHBvcnQnCiBJU19MSU5VWCA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBhbmQgb3MudW5hbWUoKVsw
XSA9PSAnTGludXgnCiBJU19XSU5ET1dTID0gb3MubmFtZSA9PSAnbnQnCiAKLSMgRklYTUU6IHJl
bW92ZSB0aGUgX2xpbiBzdWZmaXguCiBHT0xERU5fTkFNRSA9ICdnb29nbGV0ZXN0LW91dHB1dC10
ZXN0LWdvbGRlbi1saW4udHh0JwogCiBQUk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdl
dFRlc3RFeGVjdXRhYmxlUGF0aCgnZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8nKQpAQCAtMjg3LDcg
KzI4Niw3IEBAIGNsYXNzIEdUZXN0T3V0cHV0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKICAgICAjIHNlcXVlbmNlcyB3aGVuIHdlIHJlYWQgdGhlIGdvbGRlbiBmaWxlIGlycmVzcGVj
dGl2ZSBvZiBhbiBvcGVyYXRpbmcKICAgICAjIHN5c3RlbSB1c2VkLiBUaGVyZWZvcmUsIHdlIG5l
ZWQgdG8gc3RyaXAgdGhvc2UgXHIncyBmcm9tIG5ld2xpbmVzCiAgICAgIyB1bmNvbmRpdGlvbmFs
bHkuCi0gICAgZ29sZGVuID0gVG9Vbml4TGluZUVuZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkpCisg
ICAgZ29sZGVuID0gVG9Vbml4TGluZUVuZGluZyhnb2xkZW5fZmlsZS5yZWFkKCkuZGVjb2RlKCkp
CiAgICAgZ29sZGVuX2ZpbGUuY2xvc2UoKQogCiAgICAgIyBXZSB3YW50IHRoZSB0ZXN0IHRvIHBh
c3MgcmVnYXJkbGVzcyBvZiBjZXJ0YWluIGZlYXR1cmVzIGJlaW5nCkBAIC0zMzIsNyArMzMxLDcg
QEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBpZiBDQU5fR0VORVJBVEVfR09MREVO
X0ZJTEU6CiAgICAgICBvdXRwdXQgPSBHZXRPdXRwdXRPZkFsbENvbW1hbmRzKCkKICAgICAgIGdv
bGRlbl9maWxlID0gb3BlbihHT0xERU5fUEFUSCwgJ3diJykKLSAgICAgIGdvbGRlbl9maWxlLndy
aXRlKG91dHB1dCkKKyAgICAgIGdvbGRlbl9maWxlLndyaXRlKG91dHB1dC5lbmNvZGUoKSkKICAg
ICAgIGdvbGRlbl9maWxlLmNsb3NlKCkKICAgICBlbHNlOgogICAgICAgbWVzc2FnZSA9ICgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQt
dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0
LXRlc3RfLmNjCmluZGV4IGY2NTI1ZWM5NzBkZTU0MjFlMGUzM2I2ZmY2ZDJjYzZjOGQwNTE2NDgu
Ljk3MDA5YjVmNmFhZGExNjVhNzc2MTdlMzkzYTkzMTAyNTE1YTE5M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5j
YwpAQCAtOTIsOSArOTIsMTcgQEAgVEVTVF9QKEZhaWxpbmdQYXJhbVRlc3QsIEZhaWxzKSB7CiAK
IC8vIFRoaXMgZ2VuZXJhdGVzIGEgdGVzdCB3aGljaCB3aWxsIGZhaWwuIEdvb2dsZSBUZXN0IGlz
IGV4cGVjdGVkIHRvIHByaW50CiAvLyBpdHMgcGFyYW1ldGVyIHdoZW4gaXQgb3V0cHV0cyB0aGUg
bGlzdCBvZiBhbGwgZmFpbGVkIHRlc3RzLgotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRp
bmdGYWlsaW5nUGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgRmFpbGluZ1BhcmFtVGVz
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcygyKSk7CitJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AoUHJpbnRpbmdGYWlsaW5nUGFyYW1zLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIEZhaWxpbmdQYXJhbVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dGluZzo6VmFsdWVzKDIpKTsKKworLy8gVGVzdHMgdGhhdCBhbiBlbXB0eSB2YWx1ZSBmb3IgdGhl
IHRlc3Qgc3VpdGUgYmFzZW5hbWUgeWllbGRzIGp1c3QKKy8vIHRoZSB0ZXN0IG5hbWUgd2l0aG91
dCBhbnkgcHJpb3IgLworY2xhc3MgRW1wdHlCYXNlbmFtZVBhcmFtSW5zdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CisKK1RFU1RfUChFbXB0eUJhc2VuYW1lUGFyYW1J
bnN0LCBQYXNzZXMpIHsgRVhQRUNUX0VRKDEsIEdldFBhcmFtKCkpOyB9CisKK0lOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCgsIEVtcHR5QmFzZW5hbWVQYXJhbUluc3QsIHRlc3Rpbmc6OlZhbHVlcygx
KSk7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGtHb2xkZW5TdHJpbmdbXSA9ICJcIkxpbmVcMCAxXCJc
bkxpbmUgMiI7CiAKQEAgLTE3NCw3ICsxODIsNyBAQCBURVNUKFNDT1BFRF9UUkFDRVRlc3QsIEFj
Y2VwdGVkVmFsdWVzKSB7CiAgIFNDT1BFRF9UUkFDRSgibGl0ZXJhbCBzdHJpbmciKTsKICAgU0NP
UEVEX1RSQUNFKHN0ZDo6c3RyaW5nKCJzdGQ6OnN0cmluZyIpKTsKICAgU0NPUEVEX1RSQUNFKDEz
MzcpOyAgLy8gc3RyZWFtYWJsZSB0eXBlCi0gIGNvbnN0IGNoYXIqIG51bGxfdmFsdWUgPSBOVUxM
OworICBjb25zdCBjaGFyKiBudWxsX3ZhbHVlID0gbnVsbHB0cjsKICAgU0NPUEVEX1RSQUNFKG51
bGxfdmFsdWUpOwogCiAgIEFERF9GQUlMVVJFKCkgPDwgIkp1c3QgY2hlY2tpbmcgdGhhdCBhbGwg
dGhlc2UgdmFsdWVzIHdvcmsgZmluZS4iOwpAQCAtMzA2LDkgKzMxNCw4IEBAIFRFU1QoU0NPUEVE
X1RSQUNFVGVzdCwgV29ya3NDb25jdXJyZW50bHkpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDYg
ZmFpbHVyZXMpXG4iKTsKIAogICBDaGVja1BvaW50cyBjaGVja19wb2ludHM7Ci0gIFRocmVhZFdp
dGhQYXJhbTxDaGVja1BvaW50cyo+IHRocmVhZCgmVGhyZWFkV2l0aFNjb3BlZFRyYWNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNoZWNrX3BvaW50cywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICBUaHJlYWRXaXRoUGFy
YW08Q2hlY2tQb2ludHMqPiB0aHJlYWQoJlRocmVhZFdpdGhTY29wZWRUcmFjZSwgJmNoZWNrX3Bv
aW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpOwog
ICBjaGVja19wb2ludHMubjEuV2FpdEZvck5vdGlmaWNhdGlvbigpOwogCiAgIHsKQEAgLTM2NSwx
NSArMzcyLDEzIEBAIGNsYXNzIE5vbkZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3Rl
ZCBmYWlsdXJlICMxLCBpbiB0aGUgdGVzdCBmaXh0dXJlIGMndG9yLiI7CiAgIH0KIAotICB+Tm9u
RmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0KCkgeworICB+Tm9uRmF0YWxGYWls
dXJlSW5GaXh0dXJlQ29uc3RydWN0b3JUZXN0KCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJF
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzUsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsK
ICAgfQogCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBBRERfRkFJTFVSRSgpIDw8ICJF
eHBlY3RlZCBmYWlsdXJlICMyLCBpbiBTZXRVcCgpLiI7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92
ZXJyaWRlIHsgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gU2V0VXAo
KS4iOyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkg
b3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzQsIGlu
IFRlYXJEb3duLiI7CiAgIH0KIH07CkBAIC0zOTAsMTcgKzM5NSwxNyBAQCBjbGFzcyBGYXRhbEZh
aWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAg
ICAgSW5pdCgpOwogICB9CiAKLSAgfkZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVz
dCgpIHsKKyAgfkZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCgpIG92ZXJyaWRl
IHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMyLCBpbiB0aGUgdGVz
dCBmaXh0dXJlIGQndG9yLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZv
aWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVU5FWFBFQ1RFRCBm
YWlsdXJlIGluIFNldFVwKCkuICAiCiAgICAgICAgICAgICAgICAgICA8PCAiV2Ugc2hvdWxkIG5l
dmVyIGdldCBoZXJlLCBhcyB0aGUgdGVzdCBmaXh0dXJlIGMndG9yICIKICAgICAgICAgICAgICAg
ICAgIDw8ICJoYWQgYSBmYXRhbCBmYWlsdXJlLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVh
ckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUo
KSA8PCAiVU5FWFBFQ1RFRCBmYWlsdXJlIGluIFRlYXJEb3duKCkuICAiCiAgICAgICAgICAgICAg
ICAgICA8PCAiV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBhcyB0aGUgdGVzdCBmaXh0dXJlIGMn
dG9yICIKICAgICAgICAgICAgICAgICAgIDw8ICJoYWQgYSBmYXRhbCBmYWlsdXJlLiI7CkBAIC00
MjEsMTggKzQyNiwxNSBAQCBURVNUX0YoRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3RydWN0b3JU
ZXN0LCBGYWlsdXJlSW5Db25zdHJ1Y3RvcikgewogLy8gVGVzdHMgbm9uLWZhdGFsIGZhaWx1cmVz
IGluIFNldFVwKCkuCiBjbGFzcyBOb25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgfk5vbkZhdGFsRmFpbHVyZUlu
U2V0VXBUZXN0KCkgewotICAgIERlaW5pdCgpOwotICB9CisgIH5Ob25GYXRhbEZhaWx1cmVJblNl
dFVwVGVzdCgpIG92ZXJyaWRlIHsgRGVpbml0KCk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAo
KSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIoZXhwZWN0aW5nIDQg
ZmFpbHVyZXMpXG4iKTsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMx
LCBpbiBTZXRVcCgpLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAg
RkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiBUZWFyRG93bigpLiI7Ci0gIH0KKyAg
dm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMz
LCBpbiBUZWFyRG93bigpLiI7IH0KKwogIHByaXZhdGU6CiAgIHZvaWQgRGVpbml0KCkgewogICAg
IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjNCwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rv
ci4iOwpAQCAtNDQ2LDE4ICs0NDgsMTUgQEAgVEVTVF9GKE5vbkZhdGFsRmFpbHVyZUluU2V0VXBU
ZXN0LCBGYWlsdXJlSW5TZXRVcCkgewogLy8gVGVzdHMgZmF0YWwgZmFpbHVyZXMgaW4gU2V0VXAo
KS4KIGNsYXNzIEZhdGFsRmFpbHVyZUluU2V0VXBUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB+RmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSB7Ci0g
ICAgRGVpbml0KCk7Ci0gIH0KKyAgfkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgb3ZlcnJpZGUg
eyBEZWluaXQoKTsgfQogCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsKICAgICBwcmludGYoIihleHBlY3RpbmcgMyBmYWlsdXJlcylcbiIpOwogICAg
IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwgaW4gU2V0VXAoKS4iOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVy
ZSAjMiwgaW4gVGVhckRvd24oKS4iOwotICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7
IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gVGVhckRvd24oKS4iOyB9CisKICBw
cml2YXRlOgogICB2b2lkIERlaW5pdCgpIHsKICAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1
cmUgIzMsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKQEAgLTQ3MCwxMDkgKzQ2OSw1NSBA
QCBURVNUX0YoRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QsIEZhaWx1cmVJblNldFVwKSB7CiB9CiAK
IFRFU1QoQWRkRmFpbHVyZUF0VGVzdCwgTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExp
bmVOdW1iZXIpIHsKLSAgQUREX0ZBSUxVUkVfQVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQg
ZmFpbHVyZSBpbiBmb28uY2MiOwotfQotCi0jaWYgR1RFU1RfSVNfVEhSRUFEU0FGRQotCi0vLyBB
IHVuYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5IGRpZS4KLXZvaWQgRGllSWYoYm9vbCBzaG91bGRfZGll
KSB7Ci0gIEdURVNUX0NIRUNLXyghc2hvdWxkX2RpZSkgPDwgIiAtIGRlYXRoIGluc2lkZSBEaWVJ
ZigpLiI7CisgIEFERF9GQUlMVVJFX0FUKCJmb28uY2MiLCA0MikgPDwgIkV4cGVjdGVkIG5vbmZh
dGFsIGZhaWx1cmUgaW4gZm9vLmNjIjsKIH0KIAotLy8gVGVzdHMgcnVubmluZyBkZWF0aCB0ZXN0
cyBpbiBhIG11bHRpLXRocmVhZGVkIGNvbnRleHQuCi0KLS8vIFVzZWQgZm9yIGNvb3JkaW5hdGlv
biBiZXR3ZWVuIHRoZSBtYWluIGFuZCB0aGUgc3Bhd24gdGhyZWFkLgotc3RydWN0IFNwYXduVGhy
ZWFkTm90aWZpY2F0aW9ucyB7Ci0gIFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucygpIHt9Ci0KLSAg
Tm90aWZpY2F0aW9uIHNwYXduX3RocmVhZF9zdGFydGVkOwotICBOb3RpZmljYXRpb24gc3Bhd25f
dGhyZWFkX29rX3RvX3Rlcm1pbmF0ZTsKLQotIHByaXZhdGU6Ci0gIEdURVNUX0RJU0FMTE9XX0NP
UFlfQU5EX0FTU0lHTl8oU3Bhd25UaHJlYWROb3RpZmljYXRpb25zKTsKLX07Ci0KLS8vIFRoZSBm
dW5jdGlvbiB0byBiZSBleGVjdXRlZCBpbiB0aGUgdGhyZWFkIHNwYXduIGJ5IHRoZQotLy8gTXVs
dGlwbGVUaHJlYWRzIHRlc3QgKGJlbG93KS4KLXN0YXRpYyB2b2lkIFRocmVhZFJvdXRpbmUoU3Bh
d25UaHJlYWROb3RpZmljYXRpb25zKiBub3RpZmljYXRpb25zKSB7Ci0gIC8vIFNpZ25hbHMgdGhl
IG1haW4gdGhyZWFkIHRoYXQgdGhpcyB0aHJlYWQgaGFzIHN0YXJ0ZWQuCi0gIG5vdGlmaWNhdGlv
bnMtPnNwYXduX3RocmVhZF9zdGFydGVkLk5vdGlmeSgpOwotCi0gIC8vIFdhaXRzIGZvciBwZXJt
aXNzaW9uIHRvIGZpbmlzaCBmcm9tIHRoZSBtYWluIHRocmVhZC4KLSAgbm90aWZpY2F0aW9ucy0+
c3Bhd25fdGhyZWFkX29rX3RvX3Rlcm1pbmF0ZS5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7CitURVNU
KEd0ZXN0RmFpbEF0VGVzdCwgTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1i
ZXIpIHsKKyAgR1RFU1RfRkFJTF9BVCgiZm9vLmNjIiwgNDIpIDw8ICJFeHBlY3RlZCBmYXRhbCBm
YWlsdXJlIGluIGZvby5jYyI7CiB9CiAKLS8vIFRoaXMgaXMgYSBkZWF0aC10ZXN0IHRlc3QsIGJ1
dCBpdCdzIG5vdCBuYW1lZCB3aXRoIGEgRGVhdGhUZXN0Ci0vLyBzdWZmaXguICBJdCBzdGFydHMg
dGhyZWFkcyB3aGljaCBtaWdodCBpbnRlcmZlcmUgd2l0aCBsYXRlcgotLy8gZGVhdGggdGVzdHMs
IHNvIGl0IG11c3QgcnVuIGFmdGVyIGFsbCBvdGhlciBkZWF0aCB0ZXN0cy4KLWNsYXNzIERlYXRo
VGVzdEFuZE11bHRpVGhyZWFkc1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0gcHJvdGVj
dGVkOgotICAvLyBTdGFydHMgYSB0aHJlYWQgYW5kIHdhaXRzIGZvciBpdCB0byBiZWdpbi4KLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIHRocmVhZF8ucmVzZXQobmV3IFRocmVhZFdpdGhQ
YXJhbTxTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMqPigKLSAgICAgICAgJlRocmVhZFJvdXRpbmUs
ICZub3RpZmljYXRpb25zXywgTlVMTCkpOwotICAgIG5vdGlmaWNhdGlvbnNfLnNwYXduX3RocmVh
ZF9zdGFydGVkLldhaXRGb3JOb3RpZmljYXRpb24oKTsKLSAgfQotICAvLyBUZWxscyB0aGUgdGhy
ZWFkIHRvIGZpbmlzaCwgYW5kIHJlYXBzIGl0LgotICAvLyBEZXBlbmRpbmcgb24gdGhlIHZlcnNp
b24gb2YgdGhlIHRocmVhZCBsaWJyYXJ5IGluIHVzZSwKLSAgLy8gYSBtYW5hZ2VyIHRocmVhZCBt
aWdodCBzdGlsbCBiZSBsZWZ0IHJ1bm5pbmcgdGhhdCB3aWxsIGludGVyZmVyZQotICAvLyB3aXRo
IGxhdGVyIGRlYXRoIHRlc3RzLiAgVGhpcyBpcyB1bmZvcnR1bmF0ZSwgYnV0IHRoaXMgY2xhc3MK
LSAgLy8gY2xlYW5zIHVwIGFmdGVyIGl0c2VsZiBhcyBiZXN0IGl0IGNhbi4KLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgewotICAgIG5vdGlmaWNhdGlvbnNfLnNwYXduX3RocmVhZF9va190b190
ZXJtaW5hdGUuTm90aWZ5KCk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIFNwYXduVGhyZWFkTm90aWZp
Y2F0aW9ucyBub3RpZmljYXRpb25zXzsKLSAgdGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI8
VGhyZWFkV2l0aFBhcmFtPFNwYXduVGhyZWFkTm90aWZpY2F0aW9ucyo+ID4KLSAgICAgIHRocmVh
ZF87Ci19OwotCi0jZW5kaWYgIC8vIEdURVNUX0lTX1RIUkVBRFNBRkUKLQotLy8gVGhlIE1peGVk
VXBUZXN0Q2FzZVRlc3QgdGVzdCBjYXNlIHZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3Qgd2lsbCBm
YWlsIGEKKy8vIFRoZSBNaXhlZFVwVGVzdFN1aXRlVGVzdCB0ZXN0IGNhc2UgdmVyaWZpZXMgdGhh
dCBHb29nbGUgVGVzdCB3aWxsIGZhaWwgYQogLy8gdGVzdCBpZiBpdCB1c2VzIGEgZGlmZmVyZW50
IGZpeHR1cmUgY2xhc3MgdGhhbiB3aGF0IG90aGVyIHRlc3RzIGluCiAvLyB0aGUgc2FtZSB0ZXN0
IGNhc2UgdXNlLiAgSXQgZGVsaWJlcmF0ZWx5IGNvbnRhaW5zIHR3byBmaXh0dXJlCiAvLyBjbGFz
c2VzIHdpdGggdGhlIHNhbWUgbmFtZSBidXQgZGVmaW5lZCBpbiBkaWZmZXJlbnQgbmFtZXNwYWNl
cy4KIAotLy8gVGhlIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IHRlc3QgY2Fz
ZSB2ZXJpZmllcyB0aGF0CisvLyBUaGUgTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVU
ZXN0IHRlc3QgY2FzZSB2ZXJpZmllcyB0aGF0CiAvLyB3aGVuIHRoZSB1c2VyIGRlZmluZXMgdHdv
IHRlc3RzIHdpdGggdGhlIHNhbWUgdGVzdCBjYXNlIG5hbWUgQU5ECiAvLyBzYW1lIHRlc3QgbmFt
ZSAoYnV0IGluIGRpZmZlcmVudCBuYW1lc3BhY2VzKSwgdGhlIHNlY29uZCB0ZXN0IHdpbGwKIC8v
IGZhaWwuCiAKIG5hbWVzcGFjZSBmb28gewogCi1jbGFzcyBNaXhlZFVwVGVzdENhc2VUZXN0IDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgeworY2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgRmly
c3RUZXN0RnJvbU5hbWVzcGFjZUZvbykge30KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VUZXN0LCBT
ZWNvbmRUZXN0RnJvbU5hbWVzcGFjZUZvbykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVz
dCwgRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbykge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRl
VGVzdCwgU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28pIHt9CiAKLWNsYXNzIE1peGVkVXBUZXN0
Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworY2xhc3Mg
TWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewogfTsKIAotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0LAor
VEVTVF9GKE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCwKICAgICAgICBUaGVT
ZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbCkge30KIAogfSAgLy8gbmFtZXNwYWNlIGZv
bwogCiBuYW1lc3BhY2UgYmFyIHsKIAotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlVGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNzIE1peGVkVXBUZXN0U3VpdGVUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewogfTsKIAogLy8gVGhlIGZvbGxvd2luZyB0d28gdGVzdHMgYXJlIGV4cGVj
dGVkIHRvIGZhaWwuICBXZSByZWx5IG9uIHRoZQogLy8gZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhh
dCBHb29nbGUgVGVzdCBnZW5lcmF0ZXMgdGhlIHJpZ2h0IGVycm9yIG1lc3NhZ2UuCi1URVNUX0Yo
TWl4ZWRVcFRlc3RDYXNlVGVzdCwgVGhpc1Nob3VsZEZhaWwpIHt9Ci1URVNUX0YoTWl4ZWRVcFRl
c3RDYXNlVGVzdCwgVGhpc1Nob3VsZEZhaWxUb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0
ZVRlc3QsIFRoaXNTaG91bGRGYWlsKSB7fQorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVUZXN0LCBU
aGlzU2hvdWxkRmFpbFRvbykge30KIAotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0
TmFtZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CitjbGFzcyBNaXhlZFVwVGVzdFN1aXRl
V2l0aFNhbWVUZXN0TmFtZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCiAvLyBF
eHBlY3RlZCB0byBmYWlsLiAgV2UgcmVseSBvbiB0aGUgZ29sZGVuIGZpbGUgdG8gY2hlY2sgdGhh
dCBHb29nbGUgVGVzdAogLy8gZ2VuZXJhdGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVT
VF9GKE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0LAorVEVTVF9GKE1peGVkVXBU
ZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCwKICAgICAgICBUaGVTZWNvbmRUZXN0V2l0aFRo
aXNOYW1lU2hvdWxkRmFpbCkge30KIAogfSAgLy8gbmFtZXNwYWNlIGJhcgpAQCAtNzgzLDE5ICs3
MjgsMjcgQEAgVEVTVF9QKFBhcmFtVGVzdCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoImIiLCBH
ZXRQYXJhbSgpKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSI7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFByaW50aW5nU3RyaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtVGVz
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcyhzdGQ6OnN0cmluZygi
YSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtTmFtZUZ1bmMpOworSU5TVEFOVElB
VEVfVEVTVF9TVUlURV9QKFByaW50aW5nU3RyaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBQYXJhbVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKHN0
ZDo6c3RyaW5nKCJhIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtTmFtZUZ1bmMp
OwogCi0vLyBUaGlzICNpZmRlZiBibG9jayB0ZXN0cyB0aGUgb3V0cHV0IG9mIHR5cGVkIHRlc3Rz
LgotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCisvLyBUaGUgY2FzZSB3aGVyZSBhIHN1aXRlIGhh
cyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgYnV0IG5vdCBURVNUX1AuCit1c2luZyBOb1Rlc3Rz
ID0gUGFyYW1UZXN0OworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFRoaXNJc09kZCwgTm9UZXN0
cywgOjp0ZXN0aW5nOjpWYWx1ZXMoIkhlbGxvIikpOworCisvLyBmYWlscyB1bmRlciBrRXJyb3JP
blVuaW5zdGFudGlhdGVkUGFyYW1ldGVyaXplZFRlc3Q9dHJ1ZQorY2xhc3MgRGV0ZWN0Tm90SW5z
dGFudGlhdGVkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307CitU
RVNUX1AoRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCwgVXNlZCkgeyB9CisKKy8vIFRoaXMgd291
bGQgbWFrZSB0aGUgdGVzdCBmYWlsdXJlIGZyb20gdGhlIGFib3ZlIGdvIGF3YXkuCisvLyBJTlNU
QU5USUFURV9URVNUX1NVSVRFX1AoRml4LCBEZXRlY3ROb3RJbnN0YW50aWF0ZWRUZXN0LCB0ZXN0
aW5nOjpWYWx1ZXMoMSkpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRl
c3QsIHRlc3Rpbmc6OlR5cGVzPGludD4pOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QsIHRl
c3Rpbmc6OlR5cGVzPGludD4pOwogCiBUWVBFRF9URVNUKFR5cGVkVGVzdCwgU3VjY2Vzcykgewog
ICBFWFBFQ1RfRVEoMCwgVHlwZVBhcmFtKCkpOwpAQCAtODE0LDI5ICs3NjcsMjQgQEAgY2xhc3Mg
VHlwZWRUZXN0TmFtZXMgewogIHB1YmxpYzoKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0
YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1lKGludCBpKSB7Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVy
bmFsOjpJc1NhbWU8VCwgY2hhcj46OnZhbHVlKQorICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgY2hh
cj46OnZhbHVlKQogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJjaGFyIikgKyA6OnRlc3Rpbmc6
OlByaW50VG9TdHJpbmcoaSk7Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwg
aW50Pjo6dmFsdWUpCisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCBpbnQ+Ojp2YWx1ZSkKICAgICAg
IHJldHVybiBzdGQ6OnN0cmluZygiaW50IikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7
CiAgIH0KIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3RXaXRoTmFtZXMsIFR5cGVzRm9y
VGVzdFdpdGhOYW1lcywgVHlwZWRUZXN0TmFtZXMpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRl
c3RXaXRoTmFtZXMsIFR5cGVzRm9yVGVzdFdpdGhOYW1lcywgVHlwZWRUZXN0TmFtZXMpOwogCiBU
WVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgU3VjY2Vzcykge30KIAogVFlQRURfVEVTVChU
eXBlZFRlc3RXaXRoTmFtZXMsIEZhaWx1cmUpIHsgRkFJTCgpOyB9CiAKLSNlbmRpZiAgLy8gR1RF
U1RfSEFTX1RZUEVEX1RFU1QKLQotLy8gVGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdGhlIG91dHB1
dCBvZiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UAotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdFAgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQKTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQKTsKIAogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAsIFN1
Y2Nlc3MpIHsKICAgRVhQRUNUX0VRKDBVLCBUeXBlUGFyYW0oKSk7CkBAIC04NDYsMjggKzc5NCw0
MSBAQCBUWVBFRF9URVNUX1AoVHlwZWRUZXN0UCwgRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoMVUs
IFR5cGVQYXJhbSgpKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSI7CiB9CiAKLVJFR0lTVEVSX1RZUEVE
X1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAsIFN1Y2Nlc3MsIEZhaWx1cmUpOworUkVHSVNURVJfVFlQ
RURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAsIFN1Y2Nlc3MsIEZhaWx1cmUpOwogCiB0eXBlZGVm
IHRlc3Rpbmc6OlR5cGVzPHVuc2lnbmVkIGNoYXIsIHVuc2lnbmVkIGludD4gVW5zaWduZWRUeXBl
czsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKFVuc2lnbmVkLCBUeXBlZFRlc3RQLCBV
bnNpZ25lZFR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChVbnNpZ25lZCwg
VHlwZWRUZXN0UCwgVW5zaWduZWRUeXBlcyk7CiAKIGNsYXNzIFR5cGVkVGVzdFBOYW1lcyB7CiAg
cHVibGljOgogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdl
dE5hbWUoaW50IGkpIHsKLSAgICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCB1bnNp
Z25lZCBjaGFyPjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIHVuc2lnbmVkIGNo
YXI+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJ1bnNpZ25lZENoYXIiKSAr
IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6Omlu
dGVybmFsOjpJc1NhbWU8VCwgdW5zaWduZWQgaW50Pjo6dmFsdWUpIHsKKyAgICBpZiAoc3RkOjpp
c19zYW1lPFQsIHVuc2lnbmVkIGludD46OnZhbHVlKSB7CiAgICAgICByZXR1cm4gc3RkOjpzdHJp
bmcoInVuc2lnbmVkSW50IikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQog
ICB9CiB9OwogCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChVbnNpZ25lZEN1c3RvbU5h
bWUsIFR5cGVkVGVzdFAsIFVuc2lnbmVkVHlwZXMsCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NV
SVRFX1AoVW5zaWduZWRDdXN0b21OYW1lLCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZWRUZXN0UE5hbWVzKTsKIAotI2VuZGlmICAv
LyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIERl
dGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9Owor
VFlQRURfVEVTVF9TVUlURV9QKERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCk7CitUWVBF
RF9URVNUX1AoRGV0ZWN0Tm90SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBVc2VkKSB7CisgIFR5cGVQ
YXJhbSBpbnN0YW50aWF0ZTsKKyAgKHZvaWQpaW5zdGFudGlhdGU7Cit9CitSRUdJU1RFUl9UWVBF
RF9URVNUX1NVSVRFX1AoRGV0ZWN0Tm90SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBVc2VkKTsKKwor
Ly8ga0Vycm9yT25Vbmluc3RhbnRpYXRlZFR5cGVQYXJhbWV0ZXJpemVkVGVzdD10cnVlIHdvdWxk
IG1ha2UgdGhlIGFib3ZlIGZhaWwuCisvLyBBZGRpbmcgdGhlIGZvbGxvd2luZyB3b3VsZCBtYWtl
IHRoYXQgdGVzdCBmYWlsdXJlIGdvIGF3YXkuCisvLworLy8gdHlwZWRlZiA6OnRlc3Rpbmc6OlR5
cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOworLy8gSU5TVEFOVElBVEVfVFlQ
RURfVEVTVF9TVUlURV9QKEFsbCwgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVHlwZXNUZXN0LCBNeVR5
cGVzKTsKIAogI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCiAKQEAgLTg3Nyw4ICs4MzgsNiBAQCBJ
TlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChVbnNpZ25lZEN1c3RvbU5hbWUsIFR5cGVkVGVz
dFAsIFVuc2lnbmVkVHlwZXMsCiBURVNUKEFEZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KSB7CiB9
CiAKLSMgaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogLy8gV2UgcmVseSBvbiB0aGUgZ29sZGVu
IGZpbGUgdG8gdmVyaWZ5IHRoYXQgdHlwZWQgdGVzdHMgd2hvc2UgdGVzdAogLy8gY2FzZSBuYW1l
IGVuZHMgd2l0aCBEZWF0aFRlc3QgYXJlIHJ1biBmaXJzdC4KIApAQCAtODg3LDE1ICs4NDYsMTEg
QEAgY2xhc3MgQVR5cGVkRGVhdGhUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAog
dHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGRvdWJsZT4gTnVtZXJpY1R5cGVzOwotVFlQRURf
VEVTVF9DQVNFKEFUeXBlZERlYXRoVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJ
VEUoQVR5cGVkRGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKEFUeXBlZERl
YXRoVGVzdCwgU2hvdWxkUnVuRmlyc3QpIHsKIH0KIAotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX1RZ
UEVEX1RFU1QKLQotIyBpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIAogLy8gV2UgcmVseSBv
biB0aGUgZ29sZGVuIGZpbGUgdG8gdmVyaWZ5IHRoYXQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3Rz
CiAvLyB3aG9zZSB0ZXN0IGNhc2UgbmFtZSBlbmRzIHdpdGggRGVhdGhUZXN0IGFyZSBydW4gZmly
c3QuCkBAIC05MDQsMTYgKzg1OSwxNCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEFU
eXBlUGFyYW1EZWF0aFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiB9OwogCi1UWVBFRF9U
RVNUX0NBU0VfUChBVHlwZVBhcmFtRGVhdGhUZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChBVHlw
ZVBhcmFtRGVhdGhUZXN0KTsKIAogVFlQRURfVEVTVF9QKEFUeXBlUGFyYW1EZWF0aFRlc3QsIFNo
b3VsZFJ1bkZpcnN0KSB7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKEFUeXBlUGFy
YW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KTsKLQotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9D
QVNFX1AoTXksIEFUeXBlUGFyYW1EZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7CitSRUdJU1RFUl9U
WVBFRF9URVNUX1NVSVRFX1AoQVR5cGVQYXJhbURlYXRoVGVzdCwgU2hvdWxkUnVuRmlyc3QpOwog
Ci0jIGVuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitJTlNUQU5USUFURV9UWVBFRF9U
RVNUX1NVSVRFX1AoTXksIEFUeXBlUGFyYW1EZWF0aFRlc3QsIE51bWVyaWNUeXBlcyk7CiAKICNl
bmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIApAQCAtOTY2LDcgKzkxOSw3IEBAIFRFU1Rf
RihFeHBlY3RGYWlsdXJlVGVzdCwgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlKSB7CiBjbGFzcyBFeHBl
Y3RGYWlsdXJlV2l0aFRocmVhZHNUZXN0IDogcHVibGljIEV4cGVjdEZhaWx1cmVUZXN0IHsKICBw
cm90ZWN0ZWQ6CiAgIHN0YXRpYyB2b2lkIEFkZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZhaWx1cmVN
b2RlIGZhaWx1cmUpIHsKLSAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVhZCgm
QWRkRmFpbHVyZSwgZmFpbHVyZSwgTlVMTCk7CisgICAgVGhyZWFkV2l0aFBhcmFtPEZhaWx1cmVN
b2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUsIGZhaWx1cmUsIG51bGxwdHIpOwogICAgIHRocmVhZC5K
b2luKCk7CiAgIH0KIH07CkBAIC0xMDM0LDE2ICs5ODcsNjQgQEAgVEVTVF9GKEV4cGVjdEZhaWx1
cmVUZXN0LCBFeHBlY3ROb25GYXRhbEZhaWx1cmVPbkFsbFRocmVhZHMpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvbWUgb3RoZXIgbm9uLWZhdGFsIGZhaWx1
cmUuIik7CiB9CiAKK2NsYXNzIER5bmFtaWNGaXh0dXJlIDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
eworIHByb3RlY3RlZDoKKyAgRHluYW1pY0ZpeHR1cmUoKSB7IHByaW50ZigiRHluYW1pY0ZpeHR1
cmUoKVxuIik7IH0KKyAgfkR5bmFtaWNGaXh0dXJlKCkgb3ZlcnJpZGUgeyBwcmludGYoIn5EeW5h
bWljRml4dHVyZSgpXG4iKTsgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBwcmludGYoIkR5
bmFtaWNGaXh0dXJlOjpTZXRVcFxuIik7IH0KKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsg
cHJpbnRmKCJEeW5hbWljRml4dHVyZTo6VGVhckRvd25cbiIpOyB9CisKKyAgc3RhdGljIHZvaWQg
U2V0VXBUZXN0U3VpdGUoKSB7IHByaW50ZigiRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1aXRl
XG4iKTsgfQorICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBwcmludGYo
IkR5bmFtaWNGaXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZVxuIik7CisgIH0KK307CisKK3RlbXBs
YXRlIDxib29sIFBhc3M+CitjbGFzcyBEeW5hbWljVGVzdCA6IHB1YmxpYyBEeW5hbWljRml4dHVy
ZSB7CisgcHVibGljOgorICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRShQ
YXNzKTsgfQorfTsKKworYXV0byBkeW5hbWljX3Rlc3QgPSAoCisgICAgLy8gUmVnaXN0ZXIgdHdv
IHRlc3RzIHdpdGggdGhlIHNhbWUgZml4dHVyZSBjb3JyZWN0bHkuCisgICAgdGVzdGluZzo6UmVn
aXN0ZXJUZXN0KAorICAgICAgICAiRHluYW1pY0ZpeHR1cmUiLCAiRHluYW1pY1Rlc3RQYXNzIiwg
bnVsbHB0ciwgbnVsbHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5
bmFtaWNGaXh0dXJlKiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRl
c3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAgICAgIkR5bmFtaWNGaXh0dXJlIiwgIkR5bmFtaWNU
ZXN0RmFpbCIsIG51bGxwdHIsIG51bGxwdHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywg
W10oKSAtPiBEeW5hbWljRml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PGZhbHNlPjsg
fSksCisKKyAgICAvLyBSZWdpc3RlciB0aGUgc2FtZSBmaXh0dXJlIHdpdGggYW5vdGhlciBuYW1l
LiBUaGF0J3MgZmluZS4KKyAgICB0ZXN0aW5nOjpSZWdpc3RlclRlc3QoCisgICAgICAgICJEeW5h
bWljRml4dHVyZUFub3RoZXJOYW1lIiwgIkR5bmFtaWNUZXN0UGFzcyIsIG51bGxwdHIsIG51bGxw
dHIsCisgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgW10oKSAtPiBEeW5hbWlj
Rml4dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKworICAgIC8vIFJl
Z2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1lIGZpeHR1cmUgaW5jb3JyZWN0bHkuCisgICAg
dGVzdGluZzo6UmVnaXN0ZXJUZXN0KAorICAgICAgICAiQmFkRHluYW1pY0ZpeHR1cmUxIiwgIkZp
eHR1cmVCYXNlIiwgbnVsbHB0ciwgbnVsbHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9f
LCBbXSgpIC0+IER5bmFtaWNGaXh0dXJlKiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47
IH0pLAorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAgICAgIkJhZER5bmFtaWNGaXh0
dXJlMSIsICJUZXN0QmFzZSIsIG51bGxwdHIsIG51bGxwdHIsIF9fRklMRV9fLCBfX0xJTkVfXywK
KyAgICAgICAgW10oKSAtPiB0ZXN0aW5nOjpUZXN0KiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8
dHJ1ZT47IH0pLAorCisgICAgLy8gUmVnaXN0ZXIgdHdvIHRlc3RzIHdpdGggdGhlIHNhbWUgZml4
dHVyZSBpbmNvcnJlY3RseSBieSBvbW1pdGluZyB0aGUKKyAgICAvLyByZXR1cm4gdHlwZS4KKyAg
ICB0ZXN0aW5nOjpSZWdpc3RlclRlc3QoCisgICAgICAgICJCYWREeW5hbWljRml4dHVyZTIiLCAi
Rml4dHVyZUJhc2UiLCBudWxscHRyLCBudWxscHRyLCBfX0ZJTEVfXywKKyAgICAgICAgX19MSU5F
X18sIFtdKCkgLT4gRHluYW1pY0ZpeHR1cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVzdDx0cnVl
PjsgfSksCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KCJCYWREeW5hbWljRml4dHVyZTIiLCAi
RGVyaXZlZCIsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIF9f
RklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW10oKSB7IHJldHVy
biBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pKTsKIAogLy8gVHdvIHRlc3QgZW52aXJvbm1lbnRz
IGZvciB0ZXN0aW5nIHRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpLgogCiBjbGFz
cyBGb29FbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgcHVibGlj
OgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgcHJpbnRmKCIlcyIsICJGb29FbnZpcm9u
bWVudDo6U2V0VXAoKSBjYWxsZWQuXG4iKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
eyBwcmludGYoIiVzIiwgIkZvb0Vudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIpOyB9CiAK
LSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUg
ewogICAgIHByaW50ZigiJXMiLCAiRm9vRW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgY2FsbGVkLlxu
Iik7CiAgICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiI7CiAgIH0KQEAgLTEw
NTEsMTEgKzEwNTIsOSBAQCBjbGFzcyBGb29FbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpF
bnZpcm9ubWVudCB7CiAKIGNsYXNzIEJhckVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVu
dmlyb25tZW50IHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBwcmlu
dGYoIiVzIiwgIkJhckVudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIpOwotICB9CisgIHZv
aWQgU2V0VXAoKSBvdmVycmlkZSB7IHByaW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlNldFVw
KCkgY2FsbGVkLlxuIik7IH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsICJCYXJFbnZpcm9ubWVudDo6
VGVhckRvd24oKSBjYWxsZWQuXG4iKTsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBu
b24tZmF0YWwgZmFpbHVyZS4iOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxp
ZC1uYW1lMS10ZXN0Xy5jYwppbmRleCA1YTk1MTU1YjIzYTc4NzFkYjVkMjU0OWEwZTlmOTA1MDc1
YTkzOTk0Li45NTVkNjk5OTAwZDhjZDhlYjE5YjI1MWQzNWQ2ZDVmN2VlODJlNjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1p
bnZhbGlkLW5hbWUxLXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MKQEAgLTM2LDEwICsz
NiwxMCBAQCBjbGFzcyBEdW1teVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFt
PGNvbnN0IGNoYXIgKj4ge307CiBURVNUX1AoRHVtbXlUZXN0LCBEdW1teSkgewogfQogCi1JTlNU
QU5USUFURV9URVNUX0NBU0VfUChJbnZhbGlkVGVzdE5hbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBEdW1teVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVl
cygiSW52YWxpZFdpdGhRdW90ZXMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGlu
Zzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChJ
bnZhbGlkVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKCJJbnZhbGlkV2l0aFF1b3Rl
cyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1Bh
cmFtTmFtZSgpKTsKIAogfSAgLy8gbmFtZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVz
dF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVz
dC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjCmluZGV4IGVmMDkzNDkwZTlkYTJmMDJlZDI4YTJkMDcx
MjQ0NWUyNDE3Y2JkYTMuLjc2MzcxZGY1NGYwYjNlMmYyNzczNjRkZDhhMjJkMDI4MjNjMmVlY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJh
bS10ZXN0LWludmFsaWQtbmFtZTItdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0Xy5jYwpAQCAt
NDEsMTAgKzQxLDEwIEBAIHN0ZDo6c3RyaW5nIFN0cmluZ1BhcmFtVGVzdFN1ZmZpeCgKIFRFU1Rf
UChEdW1teVRlc3QsIER1bW15KSB7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKER1cGxp
Y2F0ZVRlc3ROYW1lcywKLSAgICAgICAgICAgICAgICAgICAgICAgIER1bW15VGVzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKCJhIiwgImIiLCAiYSIsICJjIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQYXJhbVRlc3RTdWZmaXgpOworSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QKER1cGxpY2F0ZVRlc3ROYW1lcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBEdW1teVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpW
YWx1ZXMoImEiLCAiYiIsICJhIiwgImMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTdHJp
bmdQYXJhbVRlc3RTdWZmaXgpOwogfSAgLy8gbmFtZXNwYWNlCiAKIGludCBtYWluKGludCBhcmdj
LCBjaGFyICphcmd2W10pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjCmluZGV4IGY3ODljYWIyNzA3NDE0
YzQ2NDg0OTZkN2I5ZmJhYjRmZTUzMWYwYjcuLmM4NTIyMjBlMjdlZDIxMzAzZDFjNGEyZTg5NTU4
ODA2ZmNiNzY5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYwpAQCAtMzcsNiArMzcsNyBAQAogIyBp
bmNsdWRlIDxhbGdvcml0aG0+CiAjIGluY2x1ZGUgPGlvc3RyZWFtPgogIyBpbmNsdWRlIDxsaXN0
PgorIyBpbmNsdWRlIDxzZXQ+CiAjIGluY2x1ZGUgPHNzdHJlYW0+CiAjIGluY2x1ZGUgPHN0cmlu
Zz4KICMgaW5jbHVkZSA8dmVjdG9yPgpAQCAtNDksMTkgKzUwLDEzIEBAIHVzaW5nIDo6c3RkOjpz
b3J0OwogCiB1c2luZyA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKIHVzaW5n
IDo6dGVzdGluZzo6Qm9vbDsKK3VzaW5nIDo6dGVzdGluZzo6Q29tYmluZTsKIHVzaW5nIDo6dGVz
dGluZzo6TWVzc2FnZTsKIHVzaW5nIDo6dGVzdGluZzo6UmFuZ2U7CiB1c2luZyA6OnRlc3Rpbmc6
OlRlc3RXaXRoUGFyYW07CiB1c2luZyA6OnRlc3Rpbmc6OlZhbHVlczsKIHVzaW5nIDo6dGVzdGlu
Zzo6VmFsdWVzSW47CiAKLSMgaWYgR1RFU1RfSEFTX0NPTUJJTkUKLXVzaW5nIDo6dGVzdGluZzo6
Q29tYmluZTsKLXVzaW5nIDo6dGVzdGluZzo6Z2V0OwotdXNpbmcgOjp0ZXN0aW5nOjptYWtlX3R1
cGxlOwotdXNpbmcgOjp0ZXN0aW5nOjp0dXBsZTsKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01C
SU5FCi0KIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yOwogdXNpbmcg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOwogCkBAIC03Myw0OSArNjgsOSBA
QCB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdE9wdGlvbnM7CiAvLyBFWFBFQ1Rf
VEhBVCgpIGFuZCB0aGUgbWF0Y2hlcnMga25vdyBob3cgdG8gcHJpbnQgdHVwbGVzLgogdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CiA6OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUp
IHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCB2YWx1ZTsKLSAg
cmV0dXJuIHN0cmVhbS5zdHIoKTsKLX0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCi0vLyBU
aGVzZSBvdmVybG9hZHMgYWxsb3cgcHJpbnRpbmcgdHVwbGVzIGluIG91ciB0ZXN0cy4gIFdlIGNh
bm5vdAotLy8gZGVmaW5lIGFuIG9wZXJhdG9yPDwgZm9yIHR1cGxlcywgYXMgdGhhdCBkZWZpbml0
aW9uIG5lZWRzIHRvIGJlIGluCi0vLyB0aGUgc3RkIG5hbWVzcGFjZSBpbiBvcmRlciB0byBiZSBw
aWNrZWQgdXAgYnkgR29vZ2xlIFRlc3QgdmlhCi0vLyBBcmd1bWVudC1EZXBlbmRlbnQgTG9va3Vw
LCB5ZXQgZGVmaW5pbmcgYW55dGhpbmcgaW4gdGhlIHN0ZAotLy8gbmFtZXNwYWNlIGluIG5vbi1T
VEwgY29kZSBpcyB1bmRlZmluZWQgYmVoYXZpb3IuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDI+Ci06OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQy
PiYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8PCAi
KCIgPDwgZ2V0PDA+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkgPDwgIikiOwotICBy
ZXR1cm4gc3RyZWFtLnN0cigpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMz4KLTo6c3RkOjpzdHJpbmcgUHJpbnRWYWx1ZShjb25zdCB0dXBsZTxU
MSwgVDIsIFQzPiYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0
cmVhbSA8PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAg
ICAgICAgIDw8ICIsICI8PCBnZXQ8Mj4odmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5z
dHIoKTsKKyAgcmV0dXJuIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcodmFsdWUpOwogfQogCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci06OnN0ZDo6c3RyaW5nIFByaW50VmFs
dWUoCi0gICAgY29uc3QgdHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwPiYgdmFsdWUpIHsKLSAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIHN0cmVhbSA8
PCAiKCIgPDwgZ2V0PDA+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDwxPih2YWx1ZSkKLSAgICAgICAg
IDw8ICIsICI8PCBnZXQ8Mj4odmFsdWUpIDw8ICIsICIgPDwgZ2V0PDM+KHZhbHVlKQotICAgICAg
ICAgPDwgIiwgIjw8IGdldDw0Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8NT4odmFsdWUpCi0gICAg
ICAgICA8PCAiLCAiPDwgZ2V0PDY+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDw3Pih2YWx1ZSkKLSAg
ICAgICAgIDw8ICIsICI8PCBnZXQ8OD4odmFsdWUpIDw8ICIsICIgPDwgZ2V0PDk+KHZhbHVlKSA8
PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7Ci19Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hB
U19DT01CSU5FCi0KIC8vIFZlcmlmaWVzIHRoYXQgYSBzZXF1ZW5jZSBnZW5lcmF0ZWQgYnkgdGhl
IGdlbmVyYXRvciBhbmQgYWNjZXNzZWQKIC8vIHZpYSB0aGUgaXRlcmF0b3Igb2JqZWN0IG1hdGNo
ZXMgdGhlIGV4cGVjdGVkIG9uZSB1c2luZyBHb29nbGUgVGVzdAogLy8gYXNzZXJ0aW9ucy4KQEAg
LTQ1MCwzMSArNDA1LDI4IEBAIFRFU1QoQm9vbFRlc3QsIEJvb2xXb3JrcykgewogICBWZXJpZnlH
ZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCi0jIGlmIEdURVNUX0hBU19DT01C
SU5FCi0KIC8vIFRlc3RzIHRoYXQgQ29tYmluZSgpIHdpdGggdHdvIHBhcmFtZXRlcnMgZ2VuZXJh
dGVzIHRoZSBleHBlY3RlZCBzZXF1ZW5jZS4KIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRo
VHdvUGFyYW1ldGVycykgewogICBjb25zdCBjaGFyKiBmb28gPSAiZm9vIjsKICAgY29uc3QgY2hh
ciogYmFyID0gImJhciI7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGNvbnN0IGNoYXIq
LCBpbnQ+ID4gZ2VuID0KKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxjb25zdCBj
aGFyKiwgaW50PiA+IGdlbiA9CiAgICAgICBDb21iaW5lKFZhbHVlcyhmb28sIGJhciksIFZhbHVl
cygzLCA0KSk7CiAKLSAgdHVwbGU8Y29uc3QgY2hhciosIGludD4gZXhwZWN0ZWRfdmFsdWVzW10g
PSB7Ci0gICAgbWFrZV90dXBsZShmb28sIDMpLCBtYWtlX3R1cGxlKGZvbywgNCksCi0gICAgbWFr
ZV90dXBsZShiYXIsIDMpLCBtYWtlX3R1cGxlKGJhciwgNCl9OworICBzdGQ6OnR1cGxlPGNvbnN0
IGNoYXIqLCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0geworICAgICAgc3RkOjptYWtlX3R1cGxl
KGZvbywgMyksIHN0ZDo6bWFrZV90dXBsZShmb28sIDQpLCBzdGQ6Om1ha2VfdHVwbGUoYmFyLCAz
KSwKKyAgICAgIHN0ZDo6bWFrZV90dXBsZShiYXIsIDQpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdl
biwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAogLy8gVGVzdHMgdGhhdCBDb21iaW5lKCkgd2l0aCB0
aHJlZSBwYXJhbWV0ZXJzIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2UuCiBURVNUKENv
bWJpbmVUZXN0LCBDb21iaW5lV2l0aFRocmVlUGFyYW1ldGVycykgewotICBjb25zdCBQYXJhbUdl
bmVyYXRvcjx0dXBsZTxpbnQsIGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVzKDMsIDQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDUsIDYpKTsKLSAgdHVwbGU8aW50LCBpbnQs
IGludD4gZXhwZWN0ZWRfdmFsdWVzW10gPSB7Ci0gICAgbWFrZV90dXBsZSgwLCAzLCA1KSwgbWFr
ZV90dXBsZSgwLCAzLCA2KSwKLSAgICBtYWtlX3R1cGxlKDAsIDQsIDUpLCBtYWtlX3R1cGxlKDAs
IDQsIDYpLAotICAgIG1ha2VfdHVwbGUoMSwgMywgNSksIG1ha2VfdHVwbGUoMSwgMywgNiksCi0g
ICAgbWFrZV90dXBsZSgxLCA0LCA1KSwgbWFrZV90dXBsZSgxLCA0LCA2KX07CisgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8aW50LCBpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29t
YmluZShWYWx1ZXMoMCwgMSksIFZhbHVlcygzLCA0KSwgVmFsdWVzKDUsIDYpKTsKKyAgc3RkOjp0
dXBsZTxpbnQsIGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHsKKyAgICAgIHN0ZDo6bWFr
ZV90dXBsZSgwLCAzLCA1KSwgc3RkOjptYWtlX3R1cGxlKDAsIDMsIDYpLAorICAgICAgc3RkOjpt
YWtlX3R1cGxlKDAsIDQsIDUpLCBzdGQ6Om1ha2VfdHVwbGUoMCwgNCwgNiksCisgICAgICBzdGQ6
Om1ha2VfdHVwbGUoMSwgMywgNSksIHN0ZDo6bWFrZV90dXBsZSgxLCAzLCA2KSwKKyAgICAgIHN0
ZDo6bWFrZV90dXBsZSgxLCA0LCA1KSwgc3RkOjptYWtlX3R1cGxlKDEsIDQsIDYpfTsKICAgVmVy
aWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIApAQCAtNDgyLDEwICs0MzQs
MTEgQEAgVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhUaHJlZVBhcmFtZXRlcnMpIHsKIC8v
IHNlcXVlbmNlIGdlbmVyYXRlcyBhIHNlcXVlbmNlIHdpdGggdGhlIG51bWJlciBvZiBlbGVtZW50
cyBlcXVhbCB0byB0aGUKIC8vIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2Vu
ZXJhdGVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmlu
ZVdpdGhGaXJzdFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDQyKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMCwgMSkp
OworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwgaW50PiA+IGdlbiA9Cisg
ICAgICBDb21iaW5lKFZhbHVlcyg0MiksIFZhbHVlcygwLCAxKSk7CiAKLSAgdHVwbGU8aW50LCBp
bnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge21ha2VfdHVwbGUoNDIsIDApLCBtYWtlX3R1cGxlKDQy
LCAxKX07CisgIHN0ZDo6dHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6
bWFrZV90dXBsZSg0MiwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZDo6bWFrZV90dXBsZSg0MiwgMSl9OwogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBl
eHBlY3RlZF92YWx1ZXMpOwogfQogCkBAIC00OTMsMjYgKzQ0NiwyNyBAQCBURVNUKENvbWJpbmVU
ZXN0LCBDb21iaW5lV2l0aEZpcnN0UGFyYW1ldGVyU2luZ2xlVmFsdWUpIHsKIC8vIHNlcXVlbmNl
IGdlbmVyYXRlcyBhIHNlcXVlbmNlIHdpdGggdGhlIG51bWJlciBvZiBlbGVtZW50cyBlcXVhbCB0
byB0aGUKIC8vIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5
IHRoZSBmaXJzdCBwYXJhbWV0ZXIuCiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29u
ZFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGlu
dCwgaW50PiA+IGdlbiA9IENvbWJpbmUoVmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0MikpOworICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21i
aW5lKFZhbHVlcygwLCAxKSwgVmFsdWVzKDQyKSk7CiAKLSAgdHVwbGU8aW50LCBpbnQ+IGV4cGVj
dGVkX3ZhbHVlc1tdID0ge21ha2VfdHVwbGUoMCwgNDIpLCBtYWtlX3R1cGxlKDEsIDQyKX07Cisg
IHN0ZDo6dHVwbGU8aW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6bWFrZV90dXBs
ZSgwLCA0MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZDo6bWFrZV90dXBsZSgxLCA0Mil9OwogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92
YWx1ZXMpOwogfQogCiAvLyBUZXN0cyB0aGF0IHdoZW4gdGhlIGZpcnN0IHBhcmFtZXRlciBwcm9k
dWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwKIC8vIENvbWJpbmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBz
ZXF1ZW5jZSwgdG9vLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhGaXJzdFBhcmFtZXRl
ckVtcHR5UmFuZ2UpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBpbnQ+ID4g
Z2VuID0gQ29tYmluZShSYW5nZSgwLCAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMCwgMSkpOworICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxzdGQ6OnR1cGxlPGludCwgaW50PiA+IGdlbiA9CisgICAgICBDb21iaW5lKFJhbmdl
KDAsIDApLCBWYWx1ZXMoMCwgMSkpOwogICBWZXJpZnlHZW5lcmF0b3JJc0VtcHR5KGdlbik7CiB9
CiAKIC8vIFRlc3RzIHRoYXQgd2hlbiB0aGUgc2Vjb25kIHBhcmFtZXRlciBwcm9kdWNlcyBhbiBl
bXB0eSBzZXF1ZW5jZSwKIC8vIENvbWJpbmUoKSBwcm9kdWNlcyBhbiBlbXB0eSBzZXF1ZW5jZSwg
dG9vLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJFbXB0eVJh
bmdlKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENv
bWJpbmUoVmFsdWVzKDAsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJhbmdlKDEsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
c3RkOjp0dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSks
IFJhbmdlKDEsIDEpKTsKICAgVmVyaWZ5R2VuZXJhdG9ySXNFbXB0eShnZW4pOwogfQogCkBAIC01
MjEsNDQgKzQ3NSw0MSBAQCBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFNlY29uZFBhcmFt
ZXRlckVtcHR5UmFuZ2UpIHsKIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoTWF4TnVtYmVy
T2ZQYXJhbWV0ZXJzKSB7CiAgIGNvbnN0IGNoYXIqIGZvbyA9ICJmb28iOwogICBjb25zdCBjaGFy
KiBiYXIgPSAiYmFyIjsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8Y29uc3QgY2hhcios
IGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50LCBpbnQ+ID4gZ2VuID0gQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
cygxKSwgVmFsdWVzKDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlcygzKSwgVmFsdWVzKDQpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg1KSwgVmFsdWVzKDYp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcyg3KSwgVmFsdWVzKDgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg5KSk7Ci0KLSAgdHVwbGU8Y29uc3QgY2hhcios
IGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQ+Ci0gICAgICBleHBl
Y3RlZF92YWx1ZXNbXSA9IHttYWtlX3R1cGxlKGZvbywgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwg
OSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtYWtlX3R1cGxlKGJhciwgMSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOSl9OworICBjb25zdCBQYXJhbUdlbmVyYXRvcjwKKyAgICAgIHN0ZDo6
dHVwbGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQ+ID4KKyAgICAgIGdlbiA9CisgICAgICAgICAgQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIp
LCBWYWx1ZXMoMSksIFZhbHVlcygyKSwgVmFsdWVzKDMpLCBWYWx1ZXMoNCksCisgICAgICAgICAg
ICAgICAgICBWYWx1ZXMoNSksIFZhbHVlcyg2KSwgVmFsdWVzKDcpLCBWYWx1ZXMoOCksIFZhbHVl
cyg5KSk7CisKKyAgc3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgaW50LCBpbnQsIGludCwgaW50LCBp
bnQsIGludCwgaW50LCBpbnQsIGludD4KKyAgICAgIGV4cGVjdGVkX3ZhbHVlc1tdID0ge3N0ZDo6
bWFrZV90dXBsZShmb28sIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RkOjptYWtlX3R1cGxlKGJhciwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSl9OwogICBWZXJpZnlHZW5lcmF0b3IoZ2VuLCBleHBlY3RlZF92YWx1ZXMpOwogfQogCi0j
aWYgR1RFU1RfTEFOR19DWFgxMQotCiBjbGFzcyBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3Ry
aW5nIHsKICBwdWJsaWM6CiAgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29uc3Qg
c3RkOjpzdHJpbmcmIHMpIDogc3RyXyhzKSB7fQorICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWdu
U3RyaW5nKCkgPSBkZWxldGU7CisgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoY29u
c3QgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZyYpID0KKyAgICAgIGRlZmF1bHQ7Cisg
IE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcmIG9wZXJhdG9yPSgKKyAgICAgIGNvbnN0
IE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcmKSA9IGRlbGV0ZTsKKyAgfk5vbkRlZmF1
bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoKSA9IGRlZmF1bHQ7CiAKICAgY29uc3Qgc3RkOjpzdHJp
bmcmIHN0cigpIGNvbnN0IHsgcmV0dXJuIHN0cl87IH0KIAogIHByaXZhdGU6CiAgIHN0ZDo6c3Ry
aW5nIHN0cl87Ci0KLSAgLy8gTm90IGRlZmF1bHQgY29uc3RydWN0aWJsZQotICBOb25EZWZhdWx0
Q29uc3RydWN0QXNzaWduU3RyaW5nKCk7Ci0gIC8vIE5vdCBhc3NpZ25hYmxlCi0gIHZvaWQgb3Bl
cmF0b3I9KGNvbnN0IE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcmKTsKIH07CiAKIFRF
U1QoQ29tYmluZVRlc3QsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ24pIHsKLSAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+
IGdlbiA9CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8aW50LCBOb25EZWZhdWx0
Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+IGdlbiA9CiAgICAgICBDb21iaW5lKFZhbHVlcygwLCAx
KSwgVmFsdWVzKE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoIkEiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmlu
ZygiQiIpKSk7CiAKLSAgUGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3Ry
dWN0QXNzaWduU3RyaW5nPiA+OjppdGVyYXRvciBpdCA9Ci0gICAgICBnZW4uYmVnaW4oKTsKKyAg
UGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxpbnQsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25T
dHJpbmc+ID46Oml0ZXJhdG9yCisgICAgICBpdCA9IGdlbi5iZWdpbigpOwogCiAgIEVYUEVDVF9F
USgwLCBzdGQ6OmdldDwwPigqaXQpKTsKICAgRVhQRUNUX0VRKCJBIiwgc3RkOjpnZXQ8MT4oKml0
KS5zdHIoKSk7CkBAIC01NzksOCArNTMwLDYgQEAgVEVTVChDb21iaW5lVGVzdCwgTm9uRGVmYXVs
dENvbnN0cnVjdEFzc2lnbikgewogICBFWFBFQ1RfVFJVRShpdCA9PSBnZW4uZW5kKCkpOwogfQog
Ci0jZW5kaWYgICAvLyBHVEVTVF9MQU5HX0NYWDExCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09N
QklORQogCiAvLyBUZXN0cyB0aGF0IGFuIGdlbmVyYXRvciBwcm9kdWNlcyBjb3JyZWN0IHNlcXVl
bmNlIGFmdGVyIGJlaW5nCiAvLyBhc3NpZ25lZCBmcm9tIGFub3RoZXIgZ2VuZXJhdG9yLgpAQCAt
NTk1LDEyICs1NDQsMTIgQEAgVEVTVChQYXJhbUdlbmVyYXRvclRlc3QsIEFzc2lnbm1lbnRXb3Jr
cykgewogCiAvLyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgdGVzdHMgYXJlIGV4cGFuZGVk
IGFuZCBydW4gYXMgc3BlY2lmaWVkOgogLy8gb25lIHRlc3QgcGVyIGVsZW1lbnQgZnJvbSB0aGUg
c2VxdWVuY2UgcHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvcgotLy8gc3BlY2lmaWVkIGluIElOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QLiBJdCBhbHNvIHZlcmlmaWVzIHRoYXQgdGhlIHRlc3QncworLy8g
c3BlY2lmaWVkIGluIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUC4gSXQgYWxzbyB2ZXJpZmllcyB0
aGF0IHRoZSB0ZXN0J3MKIC8vIGZpeHR1cmUgY29uc3RydWN0b3IsIFNldFVwKCksIGFuZCBUZWFy
RG93bigpIGhhdmUgcnVuIGFuZCBoYXZlIGJlZW4KIC8vIHN1cHBsaWVkIHdpdGggdGhlIGNvcnJl
Y3QgcGFyYW1ldGVycy4KIAogLy8gVGhlIHVzZSBvZiBlbnZpcm9ubWVudCBvYmplY3QgYWxsb3dz
IGRldGVjdGlvbiBvZiB0aGUgY2FzZSB3aGVyZSBubyB0ZXN0Ci0vLyBjYXNlIGZ1bmN0aW9uYWxp
dHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhpcyBjYXNlIFRlc3RDYXNlVGVhckRvd24gd2lsbCBub3QK
Ky8vIGNhc2UgZnVuY3Rpb25hbGl0eSBpcyBydW4gYXQgYWxsLiBJbiB0aGlzIGNhc2UgVGVhckRv
d25UZXN0U3VpdGUgd2lsbCBub3QKIC8vIGJlIGFibGUgdG8gZGV0ZWN0IG1pc3NpbmcgdGVzdHMs
IG5hdHVyYWxseS4KIHRlbXBsYXRlIDxpbnQga0V4cGVjdGVkQ2FsbHM+CiBjbGFzcyBUZXN0R2Vu
ZXJhdGlvbkVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgewpAQCAt
NjE1LDcgKzU2NCw3IEBAIGNsYXNzIFRlc3RHZW5lcmF0aW9uRW52aXJvbm1lbnQgOiBwdWJsaWMg
Ojp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgIHZvaWQgVGVhckRvd25FeGVjdXRlZCgpIHsgdGVh
cl9kb3duX2NvdW50XysrOyB9CiAgIHZvaWQgVGVzdEJvZHlFeGVjdXRlZCgpIHsgdGVzdF9ib2R5
X2NvdW50XysrOyB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJE
b3duKCkgb3ZlcnJpZGUgewogICAgIC8vIElmIGFsbCBNdWx0aXBsZVRlc3RHZW5lcmF0aW9uVGVz
dCB0ZXN0cyBoYXZlIGJlZW4gZGUtc2VsZWN0ZWQKICAgICAvLyBieSB0aGUgZmlsdGVyIGZsYWcs
IHRoZSBmb2xsb3dpbmcgY2hlY2tzIG1ha2Ugbm8gc2Vuc2UuCiAgICAgYm9vbCBwZXJmb3JtX2No
ZWNrID0gZmFsc2U7CkBAIC02NzIsMTYgKzYyMSwxNiBAQCBjbGFzcyBUZXN0R2VuZXJhdGlvblRl
c3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxpbnQ+IHsKICAgICBFbnZpcm9ubWVudDo6SW5zdGFu
Y2UoKS0+Rml4dHVyZUNvbnN0cnVjdG9yRXhlY3V0ZWQoKTsKICAgICBjdXJyZW50X3BhcmFtZXRl
cl8gPSBHZXRQYXJhbSgpOwogICB9Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBT
ZXRVcCgpIG92ZXJyaWRlIHsKICAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+U2V0VXBFeGVj
dXRlZCgpOwogICAgIEVYUEVDVF9FUShjdXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwog
ICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJy
aWRlIHsKICAgICBFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+VGVhckRvd25FeGVjdXRlZCgpOwog
ICAgIEVYUEVDVF9FUShjdXJyZW50X3BhcmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICB9CiAKLSAg
c3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3Vp
dGUoKSB7CiAgICAgYm9vbCBhbGxfdGVzdHNfaW5fdGVzdF9jYXNlX3NlbGVjdGVkID0gdHJ1ZTsK
IAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUEFSQU1FVEVSX0NPVU5UOyArK2kpIHsKQEAgLTcw
Miw3ICs2NTEsNyBAQCBjbGFzcyBUZXN0R2VuZXJhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQ
YXJhbTxpbnQ+IHsKICAgICBjb2xsZWN0ZWRfcGFyYW1ldGVyc18uY2xlYXIoKTsKICAgfQogCi0g
IHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRlYXJEb3du
VGVzdFN1aXRlKCkgewogICAgIHZlY3RvcjxpbnQ+IGV4cGVjdGVkX3ZhbHVlcyh0ZXN0X2dlbmVy
YXRpb25fcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2dlbmVy
YXRpb25fcGFyYW1zICsgUEFSQU1FVEVSX0NPVU5UKTsKICAgICAvLyBUZXN0IGV4ZWN1dGlvbiBv
cmRlciBpcyBub3QgZ3VhcmFudGVlZCBieSBHb29nbGUgVGVzdCwKQEAgLTcyOCwxNyArNjc3LDE3
IEBAIFRFU1RfUChUZXN0R2VuZXJhdGlvblRlc3QsIFRlc3RzRXhwYW5kZWRBbmRSdW4pIHsKICAg
RVhQRUNUX0VRKGN1cnJlbnRfcGFyYW1ldGVyXywgR2V0UGFyYW0oKSk7CiAgIGNvbGxlY3RlZF9w
YXJhbWV0ZXJzXy5wdXNoX2JhY2soR2V0UGFyYW0oKSk7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChUZXN0RXhwYW5zaW9uTW9kdWxlLCBUZXN0R2VuZXJhdGlvblRlc3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZXNJbih0ZXN0X2dlbmVyYXRpb25fcGFyYW1zKSk7CitJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AoVGVzdEV4cGFuc2lvbk1vZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlc0luKHRlc3RfZ2VuZXJhdGlvbl9wYXJh
bXMpKTsKIAogLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2VxdWVuY2Ug
KHRoaXJkIHBhcmFtZXRlciBvZgotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1ApIGlzIGV2YWx1
YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpIGFuZCBuZWl0aGVyIGF0Ci0vLyB0aGUgY2FsbCBzaXRl
IG9mIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG5vciBpbiBSVU5fQUxMX1RFU1RTKCkuICBGb3IK
Ky8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCkgaXMgZXZhbHVhdGVkIGluIEluaXRHb29nbGVU
ZXN0KCkgYW5kIG5laXRoZXIgYXQKKy8vIHRoZSBjYWxsIHNpdGUgb2YgSU5TVEFOVElBVEVfVEVT
VF9TVUlURV9QIG5vciBpbiBSVU5fQUxMX1RFU1RTKCkuICBGb3IKIC8vIHRoYXQsIHdlIGRlY2xh
cmUgcGFyYW1fdmFsdWVfIHRvIGJlIGEgc3RhdGljIG1lbWJlciBvZgogLy8gR2VuZXJhdG9yRXZh
bHVhdGlvblRlc3QgYW5kIGluaXRpYWxpemUgaXQgdG8gMC4gIFdlIHNldCBpdCB0byAxIGluCiAv
LyBtYWluKCksIGp1c3QgYmVmb3JlIGludm9jYXRpb24gb2YgSW5pdEdvb2dsZVRlc3QoKS4gIEFm
dGVyIGNhbGxpbmcKIC8vIEluaXRHb29nbGVUZXN0KCksIHdlIHNldCB0aGUgdmFsdWUgdG8gMi4g
IElmIHRoZSBzZXF1ZW5jZSBpcyBldmFsdWF0ZWQKLS8vIGJlZm9yZSBvciBhZnRlciBJbml0R29v
Z2xlVGVzdCwgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Agd2lsbCBjcmVhdGUgYQorLy8gYmVmb3Jl
IG9yIGFmdGVyIEluaXRHb29nbGVUZXN0LCBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Agd2lsbCBj
cmVhdGUgYQogLy8gdGVzdCB3aXRoIHBhcmFtZXRlciBvdGhlciB0aGFuIDEsIGFuZCB0aGUgdGVz
dCBib2R5IHdpbGwgZmFpbCB0aGUKIC8vIGFzc2VydGlvbi4KIGNsYXNzIEdlbmVyYXRvckV2YWx1
YXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7CkBAIC03NTQsOSArNzAzLDgg
QEAgaW50IEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpwYXJhbV92YWx1ZV8gPSAwOwogVEVTVF9Q
KEdlbmVyYXRvckV2YWx1YXRpb25UZXN0LCBHZW5lcmF0b3JzRXZhbHVhdGVkSW5NYWluKSB7CiAg
IEVYUEVDVF9FUSgxLCBHZXRQYXJhbSgpKTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEdl
bkV2YWxNb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0b3JFdmFsdWF0aW9u
VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0aW9u
VGVzdDo6cGFyYW1fdmFsdWUoKSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEdlbkV2YWxN
b2R1bGUsIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcyhHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6cGFyYW1fdmFsdWUoKSkpOwogCiAvLyBU
ZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVmaW5lZCBpbiBhIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1
bml0IGFyZQogLy8gZnVuY3Rpb25hbC4gR2VuZXJhdG9yIGV4dGVybl9nZW4gaXMgZGVmaW5lZCBp
biBndGVzdC1wYXJhbS10ZXN0X3Rlc3QyLmNjLgpAQCAtNzY3LDkgKzcxNSw4IEBAIFRFU1RfUChF
eHRlcm5hbEdlbmVyYXRvclRlc3QsIEV4dGVybmFsR2VuZXJhdG9yKSB7CiAgIC8vIHdoaWNoIHdl
IHZlcmlmeSBoZXJlLgogICBFWFBFQ1RfRVEoR2V0UGFyYW0oKSwgMzMpOwogfQotSU5TVEFOVElB
VEVfVEVTVF9DQVNFX1AoRXh0ZXJuYWxHZW5lcmF0b3JNb2R1bGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBFeHRlcm5hbEdlbmVyYXRvclRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBl
eHRlcm5fZ2VuKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChFeHRlcm5hbEdlbmVyYXRvck1v
ZHVsZSwgRXh0ZXJuYWxHZW5lcmF0b3JUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGV4
dGVybl9nZW4pOwogCiAvLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2Fu
IGJlIGRlZmluZWQgaW4gb25lIHRyYW5zbGF0aW9uCiAvLyB1bml0IGFuZCBpbnN0YW50aWF0ZWQg
aW4gYW5vdGhlci4gVGhpcyB0ZXN0IHdpbGwgYmUgaW5zdGFudGlhdGVkIGluCkBAIC03ODQsMjAg
KzczMSwxOSBAQCBURVNUX1AoRXh0ZXJuYWxJbnN0YW50aWF0aW9uVGVzdCwgSXNNdWx0aXBsZU9m
MzMpIHsKIGNsYXNzIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QgOiBwdWJsaWMgVGVzdFdpdGhQ
YXJhbTxpbnQ+IHt9OwogVEVTVF9QKE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIEFsbG93c011
bHRpcGxlSW5zdGFuY2VzKSB7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1ZW5jZTEs
IE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFZhbHVlcygxLCAyKSk7Ci1JTlNUQU5USUFURV9U
RVNUX0NBU0VfUChTZXF1ZW5jZTIsIE11bHRpcGxlSW5zdGFudGlhdGlvblRlc3QsIFJhbmdlKDMs
IDUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXF1ZW5jZTEsIE11bHRpcGxlSW5zdGFu
dGlhdGlvblRlc3QsIFZhbHVlcygxLCAyKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2Vx
dWVuY2UyLCBNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBSYW5nZSgzLCA1KSk7CiAKIC8vIFRl
c3RzIHRoYXQgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAv
LyBpbiBtdWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0cy4gVGhpcyB0ZXN0IHdpbGwgYmUgaW5zdGFu
dGlhdGVkCiAvLyBoZXJlIGFuZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QyLmNjLgogLy8gSW5z
dGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGNsYXNzCiAv
LyBpcyBkZWZpbmVkIGluIGd0ZXN0LXBhcmFtLXRlc3RfdGVzdC5oLgotVEVTVF9QKEluc3RhbnRp
YXRpb25Jbk11bHRpcGxlVHJhbnNsYWlvblVuaXRzVGVzdCwgSXNNdWx0aXBsZU9mNDIpIHsKK1RF
U1RfUChJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5zbGF0aW9uVW5pdHNUZXN0LCBJc011bHRp
cGxlT2Y0MikgewogICBFWFBFQ1RfRVEoMCwgR2V0UGFyYW0oKSAlIDQyKTsKIH0KLUlOU1RBTlRJ
QVRFX1RFU1RfQ0FTRV9QKFNlcXVlbmNlMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3Rh
bnRpYXRpb25Jbk11bHRpcGxlVHJhbnNsYWlvblVuaXRzVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyg0MiwgNDIqMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVl
bmNlMSwgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIsIDQyICogMikpOwogCiAvLyBUZXN0cyB0aGF0
IGVhY2ggaXRlcmF0aW9uIG9mIHBhcmFtZXRlcml6ZWQgdGVzdCBydW5zIGluIGEgc2VwYXJhdGUg
dGVzdAogLy8gb2JqZWN0LgpAQCAtODA1LDcgKzc1MSw3IEBAIGNsYXNzIFNlcGFyYXRlSW5zdGFu
Y2VUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7CiAgcHVibGljOgogICBTZXBhcmF0
ZUluc3RhbmNlVGVzdCgpIDogY291bnRfKDApIHt9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25U
ZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRVhQ
RUNUX0dFKGdsb2JhbF9jb3VudF8sIDIpCiAgICAgICAgIDw8ICJJZiBzb21lIChidXQgbm90IGFs
bCkgU2VwYXJhdGVJbnN0YW5jZVRlc3QgdGVzdHMgaGF2ZSBiZWVuICIKICAgICAgICAgPDwgImZp
bHRlcmVkIG91dCB0aGlzIHRlc3Qgd2lsbCBmYWlsLiBNYWtlIHN1cmUgdGhhdCBhbGwgIgpAQCAt
ODIzLDIwICs3NjksMjAgQEAgVEVTVF9QKFNlcGFyYXRlSW5zdGFuY2VUZXN0LCBUZXN0c1J1bklu
U2VwYXJhdGVJbnN0YW5jZXMpIHsKICAgRVhQRUNUX0VRKDAsIGNvdW50XysrKTsKICAgZ2xvYmFs
X2NvdW50XysrOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRm91ckVsZW1TZXF1ZW5jZSwg
U2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJhbmdlKDEsIDQpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJ
VEVfUChGb3VyRWxlbVNlcXVlbmNlLCBTZXBhcmF0ZUluc3RhbmNlVGVzdCwgUmFuZ2UoMSwgNCkp
OwogCiAvLyBUZXN0cyB0aGF0IGFsbCBpbnN0YW50aWF0aW9ucyBvZiBhIHRlc3QgaGF2ZSBuYW1l
ZCBhcHByb3ByaWF0ZWx5LiBUZXN0Ci0vLyBkZWZpbmVkIHdpdGggVEVTVF9QKFRlc3RDYXNlTmFt
ZSwgVGVzdE5hbWUpIGFuZCBpbnN0YW50aWF0ZWQgd2l0aAotLy8gSU5TVEFOVElBVEVfVEVTVF9D
QVNFX1AoU2VxdWVuY2VOYW1lLCBUZXN0Q2FzZU5hbWUsIGdlbmVyYXRvcikgbXVzdCBiZSBuYW1l
ZAotLy8gU2VxdWVuY2VOYW1lL1Rlc3RDYXNlTmFtZS5UZXN0TmFtZS9pLCB3aGVyZSBpIGlzIHRo
ZSAwLWJhc2VkIGluZGV4IG9mIHRoZQotLy8gc2VxdWVuY2UgZWxlbWVudCB1c2VkIHRvIGluc3Rh
bnRpYXRlIHRoZSB0ZXN0LgorLy8gZGVmaW5lZCB3aXRoIFRFU1RfUChUZXN0U3VpdGVOYW1lLCBU
ZXN0TmFtZSkgYW5kIGluc3RhbnRpYXRlZCB3aXRoCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AoU2VxdWVuY2VOYW1lLCBUZXN0U3VpdGVOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUKKy8vIG5h
bWVkIFNlcXVlbmNlTmFtZS9UZXN0U3VpdGVOYW1lLlRlc3ROYW1lL2ksIHdoZXJlIGkgaXMgdGhl
IDAtYmFzZWQgaW5kZXggb2YKKy8vIHRoZSBzZXF1ZW5jZSBlbGVtZW50IHVzZWQgdG8gaW5zdGFu
dGlhdGUgdGhlIHRlc3QuCiBjbGFzcyBOYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08
aW50PiB7fTsKIAogVEVTVF9QKE5hbWluZ1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5k
UGFyYW1ldGVycykgewogICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2lu
Zm8gPQogICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rl
c3RfaW5mbygpOwogCi0gIEVYUEVDVF9TVFJFUSgiWmVyb1RvRml2ZVNlcXVlbmNlL05hbWluZ1Rl
c3QiLCB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlplcm9U
b0ZpdmVTZXF1ZW5jZS9OYW1pbmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7
CiAKICAgTWVzc2FnZSBpbmRleF9zdHJlYW07CiAgIGluZGV4X3N0cmVhbSA8PCAiVGVzdHNSZXBv
cnRDb3JyZWN0TmFtZXNBbmRQYXJhbWV0ZXJzLyIgPDwgR2V0UGFyYW0oKTsKQEAgLTg0NSw3ICs3
OTEsNyBAQCBURVNUX1AoTmFtaW5nVGVzdCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXNBbmRQYXJh
bWV0ZXJzKSB7CiAgIEVYUEVDVF9FUSg6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0o
KSksIHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKFplcm9Ub0ZpdmVTZXF1ZW5jZSwgTmFtaW5nVGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFO
VElBVEVfVEVTVF9TVUlURV9QKFplcm9Ub0ZpdmVTZXF1ZW5jZSwgTmFtaW5nVGVzdCwgUmFuZ2Uo
MCwgNSkpOwogCiAvLyBUZXN0cyB0aGF0IG1hY3JvcyBpbiB0ZXN0IG5hbWVzIGFyZSBleHBhbmRl
ZCBjb3JyZWN0bHkuCiBjbGFzcyBNYWNyb05hbWluZ1Rlc3QgOiBwdWJsaWMgVGVzdFdpdGhQYXJh
bTxpbnQ+IHt9OwpAQCAtODU3LDExICs4MDMsMTEgQEAgVEVTVF9QKFBSRUZJWF9XSVRIX01BQ1JP
KE5hbWluZ1Rlc3QpLCBQUkVGSVhfV0lUSF9GT08oU29tZVRlc3ROYW1lKSkgewogICBjb25zdCA6
OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVDVF9T
VFJFUSgiRm9ydHlUd28vTWFjcm9OYW1pbmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFt
ZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJGb29Tb21lVGVzdE5hbWUiLCB0ZXN0X2luZm8tPm5hbWUo
KSk7CisgIEVYUEVDVF9TVFJFUSgiRm9ydHlUd28vTWFjcm9OYW1pbmdUZXN0IiwgdGVzdF9pbmZv
LT50ZXN0X3N1aXRlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiRm9vU29tZVRlc3ROYW1lLzAi
LCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEZvcnR5
VHdvLCBNYWNyb05hbWluZ1Rlc3QsIFZhbHVlcyg0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKEZvcnR5VHdvLCBNYWNyb05hbWluZ1Rlc3QsIFZhbHVlcyg0MikpOwogCiAvLyBUZXN0cyB0
aGUgc2FtZSB0aGluZyBmb3Igbm9uLXBhcmFtZXRyaXplZCB0ZXN0cy4KIGNsYXNzIE1hY3JvTmFt
aW5nVGVzdE5vblBhcmFtZXRyaXplZCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307CkBAIC04
NzEsMTAgKzgxNyw0MCBAQCBURVNUX0YoUFJFRklYX1dJVEhfTUFDUk8oTmFtaW5nVGVzdE5vblBh
cmFtZXRyaXplZCksCiAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5m
byA9CiAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVz
dF9pbmZvKCk7CiAKLSAgRVhQRUNUX1NUUkVRKCJNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6
ZWQiLCB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIk1hY3Jv
TmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkp
OwogICBFWFBFQ1RfU1RSRVEoIkZvb1NvbWVUZXN0TmFtZSIsIHRlc3RfaW5mby0+bmFtZSgpKTsK
IH0KIAorVEVTVChNYWNyb05hbWVpbmcsIExvb2t1cE5hbWVzKSB7CisgIHN0ZDo6c2V0PHN0ZDo6
c3RyaW5nPiBrbm93X3N1aXRlX25hbWVzLCBrbm93X3Rlc3RfbmFtZXM7CisKKyAgYXV0byBpbnMg
PSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKKyAgaW50IHRzID0gMDsKKyAgd2hp
bGUgKGNvbnN0IHRlc3Rpbmc6OlRlc3RTdWl0ZSogc3VpdGUgPSBpbnMtPkdldFRlc3RTdWl0ZSh0
cysrKSkgeworICAgIGtub3dfc3VpdGVfbmFtZXMuaW5zZXJ0KHN1aXRlLT5uYW1lKCkpOworCisg
ICAgaW50IHRpID0gMDsKKyAgICB3aGlsZSAoY29uc3QgdGVzdGluZzo6VGVzdEluZm8qIGluZm8g
PSBzdWl0ZS0+R2V0VGVzdEluZm8odGkrKykpIHsKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5pbnNl
cnQoc3RkOjpzdHJpbmcoc3VpdGUtPm5hbWUoKSkgKyAiLiIgKyBpbmZvLT5uYW1lKCkpOworICAg
IH0KKyAgfQorCisgIC8vIENoZWNrIHRoYXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhlIHRlc3Qg
c3VpdCBuYW1lIGFjdHVhbHkgZXhpc3RzLgorICBFWFBFQ1RfTkUoICAvLworICAgICAga25vd19z
dWl0ZV9uYW1lcy5maW5kKCJGb3J0eVR3by9NYWNyb05hbWluZ1Rlc3QiKSwKKyAgICAgIGtub3df
c3VpdGVfbmFtZXMuZW5kKCkpOworICBFWFBFQ1RfTkUoCisgICAgICBrbm93X3N1aXRlX25hbWVz
LmZpbmQoIk1hY3JvTmFtaW5nVGVzdE5vblBhcmFtZXRyaXplZCIpLAorICAgICAga25vd19zdWl0
ZV9uYW1lcy5lbmQoKSk7CisgIC8vIENoZWNrIHRoYXQgdGhlIGV4cGVjdGVkIGZvcm0gb2YgdGhl
IHRlc3QgbmFtZSBhY3R1YWx5IGV4aXN0cy4KKyAgRVhQRUNUX05FKCAgLy8KKyAgICAgIGtub3df
dGVzdF9uYW1lcy5maW5kKCJGb3J0eVR3by9NYWNyb05hbWluZ1Rlc3QuRm9vU29tZVRlc3ROYW1l
LzAiKSwKKyAgICAgIGtub3dfdGVzdF9uYW1lcy5lbmQoKSk7CisgIEVYUEVDVF9ORSgKKyAgICAg
IGtub3dfdGVzdF9uYW1lcy5maW5kKCJNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQuRm9v
U29tZVRlc3ROYW1lIiksCisgICAgICBrbm93X3Rlc3RfbmFtZXMuZW5kKCkpOworfQorCiAvLyBU
ZXN0cyB0aGF0IHVzZXIgc3VwcGxpZWQgY3VzdG9tIHBhcmFtZXRlciBuYW1lcyBhcmUgd29ya2lu
ZyBjb3JyZWN0bHkuCiAvLyBSdW5zIHRoZSB0ZXN0IHdpdGggYSBidWlsdGluIGhlbHBlciBtZXRo
b2Qgd2hpY2ggdXNlcyBQcmludFRvU3RyaW5nLAogLy8gYXMgd2VsbCBhcyBhIGN1c3RvbSBmdW5j
dGlvbiBhbmQgY3VzdG9tIGZ1bmN0b3IgdG8gZW5zdXJlIGFsbCBwb3NzaWJsZQpAQCAtODg4LDE3
ICs4NjQsMTQgQEAgc3RydWN0IEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IgewogICB9CiB9OwogCi1J
TlNUQU5USUFURV9URVNUX0NBU0VfUChDdXN0b21QYXJhbU5hbWVGdW5jdG9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgQ3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1bmN0b3JOYW1lIikpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3RvcigpKTsKK0lOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUChDdXN0b21QYXJhbU5hbWVGdW5jdG9yLCBDdXN0b21GdW5jdG9yTmFtaW5nVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1bmN0b3JOYW1l
IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7
CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFsbEFsbG93ZWRDaGFyYWN0ZXJzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgQ3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXMoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwMTIzNDU2Nzg5MF8iKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3IoKSk7CitJTlNUQU5USUFURV9URVNU
X1NVSVRFX1AoQWxsQWxsb3dlZENoYXJhY3RlcnMsIEN1c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFS
U1RVVldYWVoiLCAiMDEyMzQ1Njc4OTBfIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgQ3Vz
dG9tUGFyYW1OYW1lRnVuY3RvcigpKTsKIAogaW5saW5lIHN0ZDo6c3RyaW5nIEN1c3RvbVBhcmFt
TmFtZUZ1bmN0aW9uKAogICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0
cmluZz4mIGluZikgewpAQCAtOTA4LDQ1ICs4ODEsNDEgQEAgaW5saW5lIHN0ZDo6c3RyaW5nIEN1
c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKAogY2xhc3MgQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0IDog
cHVibGljIFRlc3RXaXRoUGFyYW08c3RkOjpzdHJpbmc+IHt9OwogVEVTVF9QKEN1c3RvbUZ1bmN0
aW9uTmFtaW5nVGVzdCwgQ3VzdG9tVGVzdE5hbWVzKSB7fQogCi1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChDdXN0b21QYXJhbU5hbWVGdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1
c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhz
dGQ6OnN0cmluZygiRnVuY3Rpb25OYW1lIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ3Vz
dG9tUGFyYW1OYW1lRnVuY3Rpb24pOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEN1c3RvbVBh
cmFtTmFtZUZ1bmN0aW9uLCBDdXN0b21GdW5jdGlvbk5hbWluZ1Rlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJGdW5jdGlvbk5hbWUiKSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgQ3VzdG9tUGFyYW1OYW1lRnVuY3Rpb24pOwogCi0jaWYgR1RFU1Rf
TEFOR19DWFgxMQorSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUZ1bmN0
aW9uUCwgQ3VzdG9tRnVuY3Rpb25OYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcyhzdGQ6OnN0cmluZygiRnVuY3Rpb25OYW1lUCIpKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAmQ3VzdG9tUGFyYW1OYW1lRnVuY3Rpb24pOwogCiAvLyBUZXN0IGN1c3RvbSBuYW1p
bmcgd2l0aCBhIGxhbWJkYQogCiBjbGFzcyBDdXN0b21MYW1iZGFOYW1pbmdUZXN0IDogcHVibGlj
IFRlc3RXaXRoUGFyYW08c3RkOjpzdHJpbmc+IHt9OwogVEVTVF9QKEN1c3RvbUxhbWJkYU5hbWlu
Z1Rlc3QsIEN1c3RvbVRlc3ROYW1lcykge30KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3Vz
dG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0b21MYW1iZGFOYW1pbmdUZXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJMYW1iZGFOYW1lIikpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgW10oY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHN0ZDo6c3Ry
aW5nPiYgaW5mKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmYucGFyYW07
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NY
WDExCitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQ3VzdG9tUGFyYW1OYW1lTGFtYmRhLCBDdXN0
b21MYW1iZGFOYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhzdGQ6
OnN0cmluZygiTGFtYmRhTmFtZSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbXShjb25z
dCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88c3RkOjpzdHJpbmc+JiBpbmYpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmYucGFyYW07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CiAKIFRFU1QoQ3VzdG9tTmFtaW5nVGVzdCwgQ2hlY2tOYW1lUmVnaXN0cnkpIHsK
ICAgOjp0ZXN0aW5nOjpVbml0VGVzdCogdW5pdF90ZXN0ID0gOjp0ZXN0aW5nOjpVbml0VGVzdDo6
R2V0SW5zdGFuY2UoKTsKICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHRlc3RfbmFtZXM7Ci0gIGZv
ciAoaW50IGNhc2VfbnVtID0gMDsKLSAgICAgICBjYXNlX251bSA8IHVuaXRfdGVzdC0+dG90YWxf
dGVzdF9jYXNlX2NvdW50KCk7Ci0gICAgICAgKytjYXNlX251bSkgewotICAgIGNvbnN0IDo6dGVz
dGluZzo6VGVzdENhc2UqIHRlc3RfY2FzZSA9IHVuaXRfdGVzdC0+R2V0VGVzdENhc2UoY2FzZV9u
dW0pOwotICAgIGZvciAoaW50IHRlc3RfbnVtID0gMDsKLSAgICAgICAgIHRlc3RfbnVtIDwgdGVz
dF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCk7CisgIGZvciAoaW50IHN1aXRlX251bSA9IDA7IHN1
aXRlX251bSA8IHVuaXRfdGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOworICAgICAgICsr
c3VpdGVfbnVtKSB7CisgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0U3VpdGUqIHRlc3Rfc3VpdGUg
PSB1bml0X3Rlc3QtPkdldFRlc3RTdWl0ZShzdWl0ZV9udW0pOworICAgIGZvciAoaW50IHRlc3Rf
bnVtID0gMDsgdGVzdF9udW0gPCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7CiAgICAg
ICAgICArK3Rlc3RfbnVtKSB7Ci0gICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiB0ZXN0
X2luZm8gPSB0ZXN0X2Nhc2UtPkdldFRlc3RJbmZvKHRlc3RfbnVtKTsKKyAgICAgIGNvbnN0IDo6
dGVzdGluZzo6VGVzdEluZm8qIHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKHRl
c3RfbnVtKTsKICAgICAgIHRlc3RfbmFtZXMuaW5zZXJ0KHN0ZDo6c3RyaW5nKHRlc3RfaW5mby0+
bmFtZSgpKSk7CiAgICAgfQogICB9CiAgIEVYUEVDVF9FUSgxdSwgdGVzdF9uYW1lcy5jb3VudCgi
Q3VzdG9tVGVzdE5hbWVzL0Z1bmN0b3JOYW1lIikpOwogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFt
ZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9GdW5jdGlvbk5hbWUiKSk7Ci0jaWYgR1RFU1RfTEFO
R19DWFgxMQorICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1l
cy9GdW5jdGlvbk5hbWVQIikpOwogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1
c3RvbVRlc3ROYW1lcy9MYW1iZGFOYW1lIikpOwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDEx
CiB9CiAKIC8vIFRlc3QgYSBudW1lcmljIG5hbWUgdG8gZW5zdXJlIFByaW50VG9TdHJpbmdQYXJh
bU5hbWUgd29ya3MgY29ycmVjdGx5LgpAQCAtOTYxLDEwICs5MzAsOCBAQCBURVNUX1AoQ3VzdG9t
SW50ZWdlck5hbWluZ1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzKSB7CiAgIEVYUEVDVF9T
VFJFUSh0ZXN0X25hbWVfc3RyZWFtLkdldFN0cmluZygpLmNfc3RyKCksIHRlc3RfaW5mby0+bmFt
ZSgpKTsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUHJpbnRUb1N0cmluZywKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEN1c3RvbUludGVnZXJOYW1pbmdUZXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgUmFuZ2UoMCwgNSksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rp
bmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1Ao
UHJpbnRUb1N0cmluZywgQ3VzdG9tSW50ZWdlck5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgp
KTsKIAogLy8gVGVzdCBhIGN1c3RvbSBzdHJ1Y3Qgd2l0aCBQcmludFRvU3RyaW5nLgogCkBAIC05
ODgsMTAgKzk1NSw5IEBAIFRFU1RfUChDdXN0b21TdHJ1Y3ROYW1pbmdUZXN0LCBUZXN0c1JlcG9y
dENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEodGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJp
bmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFByaW50VG9TdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21TdHJ1
Y3ROYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKEN1c3RvbVN0cnVj
dCgwKSwgQ3VzdG9tU3RydWN0KDEpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGlu
Zzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChQ
cmludFRvU3RyaW5nLCBDdXN0b21TdHJ1Y3ROYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhDdXN0b21TdHJ1Y3QoMCksIEN1c3RvbVN0cnVjdCgxKSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lKCkpOwog
CiAvLyBUZXN0IHRoYXQgdXNpbmcgYSBzdGF0ZWZ1bCBwYXJhbWV0ZXIgbmFtaW5nIGZ1bmN0aW9u
IHdvcmtzIGFzIGV4cGVjdGVkLgogCkBAIC0xMDIwLDEwICs5ODYsOCBAQCBURVNUX1AoU3RhdGVm
dWxOYW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEo
dGVzdF9uYW1lX3N0cmVhbS5HZXRTdHJpbmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7
CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFN0YXRlZnVsTmFtaW5nRnVuY3RvciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFN0YXRlZnVsTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIFJhbmdlKDAsIDUpLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGVmdWxO
YW1pbmdGdW5jdG9yKCkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFN0YXRlZnVsTmFtaW5n
RnVuY3RvciwgU3RhdGVmdWxOYW1pbmdUZXN0LCBSYW5nZSgwLCA1KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IoKSk7CiAKIC8vIENsYXNzIHRoYXQgY2Fu
bm90IGJlIHN0cmVhbWVkIGludG8gYW4gb3N0cmVhbS4gIEl0IG5lZWRzIHRvIGJlIGNvcHlhYmxl
CiAvLyAoYW5kLCBpbiBjYXNlIG9mIE1TVkMsIGFsc28gYXNzaWduYWJsZSkgaW4gb3JkZXIgdG8g
YmUgYSB0ZXN0IHBhcmFtZXRlcgpAQCAtMTAzMiw2ICs5OTYsOCBAQCBJTlNUQU5USUFURV9URVNU
X0NBU0VfUChTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IsCiBjbGFzcyBVbnN0cmVhbWFibGUgewogIHB1
YmxpYzoKICAgZXhwbGljaXQgVW5zdHJlYW1hYmxlKGludCB2YWx1ZSkgOiB2YWx1ZV8odmFsdWUp
IHt9CisgIC8vIC1XdW51c2VkLXByaXZhdGUtZmllbGQ6IGR1bW15IGFjY2Vzc29yIGZvciBgdmFs
dWVfYC4KKyAgY29uc3QgaW50JiBkdW1teV92YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsg
fQogCiAgcHJpdmF0ZToKICAgaW50IHZhbHVlXzsKQEAgLTEwNDYsOSArMTAxMiw4IEBAIFRFU1Rf
UChDb21tZW50VGVzdCwgVGVzdHNDb3JyZWN0bHlSZXBvcnRVbnN0cmVhbWFibGVQYXJhbXMpIHsK
ICAgRVhQRUNUX0VRKDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKSwgdGVzdF9p
bmZvLT52YWx1ZV9wYXJhbSgpKTsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFu
dGlhdGlvbldpdGhDb21tZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRUZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKFVuc3RyZWFtYWJsZSgxKSkpOworSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKEluc3RhbnRpYXRpb25XaXRoQ29tbWVudHMsIENvbW1lbnRU
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhVbnN0cmVhbWFibGUoMSkpKTsK
IAogLy8gVmVyaWZ5IHRoYXQgd2UgY2FuIGNyZWF0ZSBhIGhpZXJhcmNoeSBvZiB0ZXN0IGZpeHR1
cmVzLCB3aGVyZSB0aGUgYmFzZQogLy8gY2xhc3MgZml4dHVyZSBpcyBub3QgcGFyYW1ldGVyaXpl
ZCBhbmQgdGhlIGRlcml2ZWQgY2xhc3MgaXMuIEluIHRoaXMgY2FzZQpAQCAtMTA4OCwxOSArMTA1
Myw2NCBAQCBURVNUX0YoUGFyYW1ldGVyaXplZERlYXRoVGVzdCwgR2V0UGFyYW1EaWVzRnJvbVRl
c3RGKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4qIHZhbHVlLXBhcmFtZXRlcml6
ZWQgdGVzdCAuKiIpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChSYW5nZVplcm9Ub0Zp
dmUsIFBhcmFtZXRlcml6ZWREZXJpdmVkVGVzdCwgUmFuZ2UoMCwgNSkpOworSU5TVEFOVElBVEVf
VEVTVF9TVUlURV9QKFJhbmdlWmVyb1RvRml2ZSwgUGFyYW1ldGVyaXplZERlcml2ZWRUZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdlKDAsIDUpKTsKKworLy8gVGVzdHMgcGFyYW0g
Z2VuZXJhdG9yIHdvcmtpbmcgd2l0aCBFbnVtcworZW51bSBNeUVudW1zIHsKKyAgRU5VTTEgPSAx
LAorICBFTlVNMiA9IDMsCisgIEVOVU0zID0gOCwKK307CisKK2NsYXNzIE15RW51bVRlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxNeUVudW1zPiB7fTsKKworVEVTVF9QKE15RW51
bVRlc3QsIENoZWNrc1BhcmFtTW9yZVRoYW5aZXJvKSB7IEVYUEVDVF9HRSgxMCwgR2V0UGFyYW0o
KSk7IH0KK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNeUVudW1UZXN0cywgTXlFbnVtVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlcyhFTlVNMSwgRU5VTTIs
IDApKTsKKworbmFtZXNwYWNlIHdvcmtzX2hlcmUgeworLy8gTmV2ZXIgdXNlZCBub3QgaW5zdGFu
dGlhdGVkLCB0aGlzIHNob3VsZCB3b3JrLgorY2xhc3MgTm90VXNlZFRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworCisvLy8vLy8vCisvLyBOZXZlciB1c2VkIG5v
dCBpbnN0YW50aWF0ZWQsIHRoaXMgc2hvdWxkIHdvcmsuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
K2NsYXNzIE5vdFVzZWRUeXBlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURf
VEVTVF9TVUlURV9QKE5vdFVzZWRUeXBlVGVzdCk7CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50
aWF0ZWQsIHRoaXMgd291bGQgZmFpbC4gYnV0Li4uCitjbGFzcyBOb3RJbnN0YW50aWF0ZWRUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7fTsKKy8vIC4uLiB3ZSBtYXJr
IGlzIGFzIGFsbG93ZWQuCitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVE
X1RFU1QoTm90SW5zdGFudGlhdGVkVGVzdCk7CisKK1RFU1RfUChOb3RJbnN0YW50aWF0ZWRUZXN0
LCBVc2VkKSB7IH0KKwordXNpbmcgT3RoZXJOYW1lID0gTm90SW5zdGFudGlhdGVkVGVzdDsKK0dU
RVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChPdGhlck5hbWUpOwor
VEVTVF9QKE90aGVyTmFtZSwgVXNlZCkgeyB9CisKKy8vIFVzZWQgYnV0IG5vdCBpbnN0YW50aWF0
ZWQsIHRoaXMgd291bGQgZmFpbC4gYnV0Li4uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNz
IE5vdEluc3RhbnRpYXRlZFR5cGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qge307CitUWVBF
RF9URVNUX1NVSVRFX1AoTm90SW5zdGFudGlhdGVkVHlwZVRlc3QpOworLy8gLi4uIHdlIG1hcmsg
aXMgYXMgYWxsb3dlZC4KK0dURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURf
VEVTVChOb3RJbnN0YW50aWF0ZWRUeXBlVGVzdCk7CiAKK1RZUEVEX1RFU1RfUChOb3RJbnN0YW50
aWF0ZWRUeXBlVGVzdCwgVXNlZCkgeyB9CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoTm90
SW5zdGFudGlhdGVkVHlwZVRlc3QsIFVzZWQpOworfSAgLy8gbmFtZXNwYWNlIHdvcmtzX2hlcmUK
IAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIC8vIFVzZWQgaW4gVGVzdEdl
bmVyYXRpb25UZXN0IHRlc3QgY2FzZS4KKyAgLy8gVXNlZCBpbiBUZXN0R2VuZXJhdGlvblRlc3Qg
dGVzdCBzdWl0ZS4KICAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KFRlc3RHZW5lcmF0aW9uVGVz
dDo6RW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOwotICAvLyBVc2VkIGluIEdlbmVyYXRvckV2YWx1
YXRpb25UZXN0IHRlc3QgY2FzZS4gVGVzdHMgdGhhdCB0aGUgdXBkYXRlZCB2YWx1ZQorICAvLyBV
c2VkIGluIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IHRlc3Qgc3VpdGUuIFRlc3RzIHRoYXQgdGhl
IHVwZGF0ZWQgdmFsdWUKICAgLy8gd2lsbCBiZSBwaWNrZWQgdXAgZm9yIGluc3RhbnRpYXRpbmcg
dGVzdHMgaW4gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QuCiAgIEdlbmVyYXRvckV2YWx1YXRpb25U
ZXN0OjpzZXRfcGFyYW1fdmFsdWUoMSk7CiAKICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgm
YXJnYywgYXJndik7CiAKLSAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0
IGNhc2UuIFRlc3RzIHRoYXQgdmFsdWUgdXBkYXRlZAorICAvLyBVc2VkIGluIEdlbmVyYXRvckV2
YWx1YXRpb25UZXN0IHRlc3Qgc3VpdGUuIFRlc3RzIHRoYXQgdmFsdWUgdXBkYXRlZAogICAvLyBo
ZXJlIHdpbGwgTk9UIGJlIHVzZWQgZm9yIGluc3RhbnRpYXRpbmcgdGVzdHMgaW4KICAgLy8gR2Vu
ZXJhdG9yRXZhbHVhdGlvblRlc3QuCiAgIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0OjpzZXRfcGFy
YW1fdmFsdWUoMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmgKaW5kZXggNjMyYTYxZjQ5MjZiYTkyMjUxNTlk
YjQ2OTgxMGU0MWNhYzBkMjBjNy4uODkxOTM3NTM4ZDAxMjZlOTRjZDNkOTQ3YWRlYzMxYTU2MTM0
YWZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXBhcmFtLXRlc3QtdGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuaApAQCAtMzIsOCArMzIsOCBAQAogLy8gVGhpcyBoZWFk
ZXIgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgdXNlZCBpbnRlcm5hbGx5CiAv
LyBmb3IgdGVzdGluZyBHb29nbGUgVGVzdCBpdHNlbGYuCiAKLSNpZm5kZWYgR1RFU1RfVEVTVF9H
VEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KLSNkZWZpbmUgR1RFU1RfVEVTVF9HVEVTVF9QQVJBTV9U
RVNUX1RFU1RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9URVNUX0dPT0dMRVRFU1RfUEFSQU1fVEVT
VF9URVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1Rf
VEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIApAQCAtNDQsOCArNDQsOCBAQCBj
bGFzcyBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdp
dGhQYXJhbTxpbnQ+IHsKIAogLy8gVGVzdCBmaXh0dXJlIGZvciB0ZXN0aW5nIGluc3RhbnRpYXRp
b24gb2YgYSB0ZXN0IGluIG11bHRpcGxlCiAvLyB0cmFuc2xhdGlvbiB1bml0cy4KLWNsYXNzIElu
c3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNsYWlvblVuaXRzVGVzdAorY2xhc3MgSW5zdGFudGlh
dGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdAogICAgIDogcHVibGljIDo6dGVzdGlu
Zzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfVEVTVF9HVEVT
VF9QQVJBTV9URVNUX1RFU1RfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9URVNUX0dPT0dMRVRF
U1RfUEFSQU1fVEVTVF9URVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdDItdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10ZXN0LmNjCmluZGV4IDI1YmI5NDVj
MmY4ZWQyOWZkOTA4NTZiMjNlMDNjMDFlMmE4NDMwNjAuLjJhMjlmYjFkMDY4NmUyYTRlYzdjNjdj
ODkxMmZmNmEzOGY4OWNjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0Mi10ZXN0LmNjCkBAIC00NiwxNiArNDYs
MTYgQEAgUGFyYW1HZW5lcmF0b3I8aW50PiBleHRlcm5fZ2VuID0gVmFsdWVzKDMzKTsKIC8vIGFu
ZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhlci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBpbgogLy8gZ29v
Z2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYW5kIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3Qg
Zml4dHVyZSBjbGFzcyBpcwogLy8gZGVmaW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4K
LUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKE11bHRpcGxlc09mMzMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgVmFsdWVzKDMzLCA2NikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE11bHRpcGxlc09m
MzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJbnN0YW50aWF0aW9uVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMzMsIDY2KSk7CiAKIC8vIFRlc3RzIHRo
YXQgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUgaW5zdGFudGlhdGVkCiAvLyBpbiBt
dWx0aXBsZSB0cmFuc2xhdGlvbiB1bml0cy4gQW5vdGhlciBpbnN0YW50aWF0aW9uIGlzIGRlZmlu
ZWQKIC8vIGluIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjIGFuZAotLy8gSW5zdGFudGlh
dGlvbkluTXVsdGlwbGVUcmFuc2xhaW9uVW5pdHNUZXN0IGZpeHR1cmUgaXMgZGVmaW5lZCBpbgor
Ly8gSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCBmaXh0dXJlIGlz
IGRlZmluZWQgaW4KIC8vIGd0ZXN0LXBhcmFtLXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNU
X0NBU0VfUChTZXF1ZW5jZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9u
SW5NdWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVl
bmNlMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRy
YW5zbGF0aW9uVW5pdHNUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyg0Mioz
LCA0Mio0LCA0Mio1KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtcG9ydC10ZXN0LmNjCmluZGV4IDM5OTMxNmY5NWI2MzdhY2E5MmZiNWExNTQ0
ZWM3ZmMyN2MyZWZiMjcuLjFlMGM4NjE2MzIyYTcyN2U5MGRhYjRlZjE5NGNjYmIwMzVjMTIwYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0
LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBv
cnQtdGVzdC5jYwpAQCAtMzcsNiArMzcsNyBAQAogI2VuZGlmICAvLyBHVEVTVF9PU19NQUMKIAog
I2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHV0aWxpdHk+ICAv
LyBGb3Igc3RkOjpwYWlyIGFuZCBzdGQ6Om1ha2VfcGFpci4KICNpbmNsdWRlIDx2ZWN0b3I+CiAK
QEAgLTg5LDEwICs5MCwxMCBAQCBURVNUKElzWERpZ2l0VGVzdCwgUmV0dXJuc0ZhbHNlRm9yV2lk
ZU5vbkFzY2lpKSB7CiAKIGNsYXNzIEJhc2UgewogIHB1YmxpYzoKLSAgLy8gQ29weSBjb25zdHJ1
Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvciBkbyBleGFjdGx5IHdoYXQgd2UgbmVlZCwgc28g
d2UKLSAgLy8gdXNlIHRoZW0uCiAgIEJhc2UoKSA6IG1lbWJlcl8oMCkge30KICAgZXhwbGljaXQg
QmFzZShpbnQgbikgOiBtZW1iZXJfKG4pIHt9CisgIEJhc2UoY29uc3QgQmFzZSYpID0gZGVmYXVs
dDsKKyAgQmFzZSYgb3BlcmF0b3I9KGNvbnN0IEJhc2UmKSA9IGRlZmF1bHQ7CiAgIHZpcnR1YWwg
fkJhc2UoKSB7fQogICBpbnQgbWVtYmVyKCkgeyByZXR1cm4gbWVtYmVyXzsgfQogCkBAIC0yMDAs
MzIgKzIwMSwxMyBAQCBURVNUKEltcGxpY2l0Q2FzdFRlc3QsIENhblVzZUltcGxpY2l0Q29uc3Ry
dWN0b3IpIHsKICAgRVhQRUNUX1RSVUUoY29udmVydGVkKTsKIH0KIAotVEVTVChJdGVyYXRvclRy
YWl0c1Rlc3QsIFdvcmtzRm9yU1RMQ29udGFpbmVySXRlcmF0b3JzKSB7Ci0gIFN0YXRpY0Fzc2Vy
dFR5cGVFcTxpbnQsCi0gICAgICBJdGVyYXRvclRyYWl0czwgOjpzdGQ6OnZlY3RvcjxpbnQ+Ojpj
b25zdF9pdGVyYXRvcj46OnZhbHVlX3R5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxib29s
LAotICAgICAgSXRlcmF0b3JUcmFpdHM8IDo6c3RkOjpsaXN0PGJvb2w+OjppdGVyYXRvcj46OnZh
bHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclBvaW50
ZXJUb05vbkNvbnN0KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjaGFyLCBJdGVyYXRvclRyYWl0
czxjaGFyKj46OnZhbHVlX3R5cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjb25zdCB2b2lk
KiwgSXRlcmF0b3JUcmFpdHM8Y29uc3Qgdm9pZCoqPjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotVEVT
VChJdGVyYXRvclRyYWl0c1Rlc3QsIFdvcmtzRm9yUG9pbnRlclRvQ29uc3QpIHsKLSAgU3RhdGlj
QXNzZXJ0VHlwZUVxPGNoYXIsIEl0ZXJhdG9yVHJhaXRzPGNvbnN0IGNoYXIqPjo6dmFsdWVfdHlw
ZT4oKTsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGNvbnN0IHZvaWQqLAotICAgICAgSXRlcmF0b3JU
cmFpdHM8Y29uc3Qgdm9pZCogY29uc3QqPjo6dmFsdWVfdHlwZT4oKTsKLX0KLQotLy8gVGVzdHMg
dGhhdCB0aGUgZWxlbWVudF90eXBlIHR5cGVkZWYgaXMgYXZhaWxhYmxlIGluIHNjb3BlZF9wdHIg
YW5kIHJlZmVycwotLy8gdG8gdGhlIHBhcmFtZXRlciB0eXBlLgotVEVTVChTY29wZWRQdHJUZXN0
LCBEZWZpbmVzRWxlbWVudFR5cGUpIHsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGludCwgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6c2NvcGVkX3B0cjxpbnQ+OjplbGVtZW50X3R5cGU+KCk7Ci19Ci0KLS8v
IEZJWE1FOiBJbXBsZW1lbnQgVEhFIFJFU1Qgb2Ygc2NvcGVkX3B0ciB0ZXN0cy4KLQorLy8gVGhl
IGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4K
KyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIEJlaGF2
ZXNMaWtlQVNpbmdsZVN0YXRlbWVudCkgewogICBpZiAoQWx3YXlzRmFsc2UoKSkKICAgICBHVEVT
VF9DSEVDS18oZmFsc2UpIDw8ICJUaGlzIHNob3VsZCBuZXZlciBiZSBleGVjdXRlZDsgIgpAQCAt
MjQxLDYgKzIyMyw5IEBAIFRFU1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIEJlaGF2ZXNMaWtlQVNp
bmdsZVN0YXRlbWVudCkgewogICBlbHNlCiAgICAgR1RFU1RfQ0hFQ0tfKHRydWUpIDw8ICIiOwog
fQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAK
IFRFU1QoR3Rlc3RDaGVja1N5bnRheFRlc3QsIFdvcmtzV2l0aFN3aXRjaCkgewogICBzd2l0Y2gg
KDApIHsKQEAgLTI2Miw5ICsyNDcsOSBAQCBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZv
cm1hdHNGaWxlTG9jYXRpb24pIHsKIH0KIAogVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBG
b3JtYXRzVW5rbm93bkZpbGUpIHsKLSAgRVhQRUNUX1BSRURfRk9STUFUMigKLSAgICAgIElzU3Vi
c3RyaW5nLCAidW5rbm93biBmaWxlIiwgRm9ybWF0RmlsZUxvY2F0aW9uKE5VTEwsIDQyKSk7Ci0g
IEVYUEVDVF9QUkVEX0ZPUk1BVDIoSXNTdWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVMb2NhdGlv
bihOVUxMLCA0MikpOworICBFWFBFQ1RfUFJFRF9GT1JNQVQyKElzU3Vic3RyaW5nLCAidW5rbm93
biBmaWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICBGb3JtYXRGaWxlTG9jYXRpb24obnVsbHB0
ciwgNDIpKTsKKyAgRVhQRUNUX1BSRURfRk9STUFUMihJc1N1YnN0cmluZywgIjQyIiwgRm9ybWF0
RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQyKSk7CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9u
VGVzdCwgRm9ybWF0c1Vrbm93bkxpbmUpIHsKQEAgLTI3Miw3ICsyNTcsNyBAQCBURVNUKEZvcm1h
dEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1QoRm9ybWF0
RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vrbm93bkZpbGVBbmRMaW5lKSB7Ci0gIEVYUEVDVF9F
USgidW5rbm93biBmaWxlOiIsIEZvcm1hdEZpbGVMb2NhdGlvbihOVUxMLCAtMSkpOworICBFWFBF
Q1RfRVEoInVua25vd24gZmlsZToiLCBGb3JtYXRGaWxlTG9jYXRpb24obnVsbHB0ciwgLTEpKTsK
IH0KIAogLy8gVmVyaWZpZXMgYmVoYXZpb3Igb2YgRm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZp
bGVMb2NhdGlvbi4KQEAgLTI4Miw3ICsyNjcsNyBAQCBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBl
bmRlbnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzRmlsZUxvY2F0aW9uKSB7CiAKIFRFU1QoRm9y
bWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25GaWxl
KSB7CiAgIEVYUEVDVF9FUSgidW5rbm93biBmaWxlOjQyIiwKLSAgICAgICAgICAgIEZvcm1hdENv
bXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24oTlVMTCwgNDIpKTsKKyAgICAgICAgICAgIEZv
cm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24obnVsbHB0ciwgNDIpKTsKIH0KIAog
VEVTVChGb3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vr
bm93bkxpbmUpIHsKQEAgLTI5MCwxNSArMjc1LDE3IEBAIFRFU1QoRm9ybWF0Q29tcGlsZXJJbmRl
cGVuZGVudEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25MaW5lKSB7CiB9CiAKIFRFU1Qo
Rm9ybWF0Q29tcGlsZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25G
aWxlQW5kTGluZSkgewotICBFWFBFQ1RfRVEoInVua25vd24gZmlsZSIsIEZvcm1hdENvbXBpbGVy
SW5kZXBlbmRlbnRGaWxlTG9jYXRpb24oTlVMTCwgLTEpKTsKKyAgRVhQRUNUX0VRKCJ1bmtub3du
IGZpbGUiLCBGb3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0aW9uKG51bGxwdHIsIC0x
KSk7CiB9CiAKLSNpZiBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19NQUMgfHwgR1RFU1RfT1Nf
UU5YIHx8IEdURVNUX09TX0ZVQ0hTSUEKKyNpZiBHVEVTVF9PU19MSU5VWCB8fCBHVEVTVF9PU19N
QUMgfHwgR1RFU1RfT1NfUU5YIHx8IEdURVNUX09TX0ZVQ0hTSUEgfHwgXAorICAgIEdURVNUX09T
X0RSQUdPTkZMWSB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX0dOVV9LRlJFRUJTRCB8
fCBcCisgICAgR1RFU1RfT1NfTkVUQlNEIHx8IEdURVNUX09TX09QRU5CU0QKIHZvaWQqIFRocmVh
ZEZ1bmModm9pZCogZGF0YSkgewogICBpbnRlcm5hbDo6TXV0ZXgqIG11dGV4ID0gc3RhdGljX2Nh
c3Q8aW50ZXJuYWw6Ok11dGV4Kj4oZGF0YSk7CiAgIG11dGV4LT5Mb2NrKCk7CiAgIG11dGV4LT5V
bmxvY2soKTsKLSAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBudWxscHRyOwogfQogCiBURVNUKEdl
dFRocmVhZENvdW50VGVzdCwgUmV0dXJuc0NvcnJlY3RWYWx1ZSkgewpAQCAtMzg2LDIxICszNzMs
MTQgQEAgVEVTVChSZWdleEVuZ2luZVNlbGVjdGlvblRlc3QsIFNlbGVjdHNDb3JyZWN0UmVnZXhF
bmdpbmUpIHsKIAogI2lmIEdURVNUX1VTRVNfUE9TSVhfUkUKIAotIyBpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVAotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyPgogY2xhc3MgUkVUZXN0IDogcHVibGlj
IDo6dGVzdGluZzo6VGVzdCB7fTsKIAogLy8gRGVmaW5lcyBTdHJpbmdUeXBlcyBhcyB0aGUgbGlz
dCBvZiBhbGwgc3RyaW5nIHR5cGVzIHRoYXQgY2xhc3MgUkUKIC8vIHN1cHBvcnRzLgotdHlwZWRl
ZiB0ZXN0aW5nOjpUeXBlczwKLSAgICA6OnN0ZDo6c3RyaW5nLAotIyAgaWYgR1RFU1RfSEFTX0dM
T0JBTF9TVFJJTkcKLSAgICA6OnN0cmluZywKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFM
X1NUUklORwotICAgIGNvbnN0IGNoYXIqPiBTdHJpbmdUeXBlczsKK3R5cGVkZWYgdGVzdGluZzo6
VHlwZXM8IDo6c3RkOjpzdHJpbmcsIGNvbnN0IGNoYXIqPiBTdHJpbmdUeXBlczsKIAotVFlQRURf
VEVTVF9DQVNFKFJFVGVzdCwgU3RyaW5nVHlwZXMpOworVFlQRURfVEVTVF9TVUlURShSRVRlc3Qs
IFN0cmluZ1R5cGVzKTsKIAogLy8gVGVzdHMgUkUncyBpbXBsaWNpdCBjb25zdHJ1Y3RvcnMuCiBU
WVBFRF9URVNUKFJFVGVzdCwgSW1wbGljaXRDb25zdHJ1Y3RvcldvcmtzKSB7CkBAIC00NDgsOCAr
NDI4LDYgQEAgVFlQRURfVEVTVChSRVRlc3QsIFBhcnRpYWxNYXRjaFdvcmtzKSB7CiAgIEVYUEVD
VF9GQUxTRShSRTo6UGFydGlhbE1hdGNoKFR5cGVQYXJhbSgienphIiksIHJlKSk7CiB9CiAKLSMg
ZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KICNlbGlmIEdURVNUX1VTRVNfU0lNUExF
X1JFCiAKIFRFU1QoSXNJblNldFRlc3QsIE51bENoYXJJc05vdEluQW55U2V0KSB7CkBAIC05NjUs
NyArOTQzLDcgQEAgVEVTVChUaHJlYWRMb2NhbFRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvckluaXRp
YWxpemVzVG9EZWZhdWx0VmFsdWVzKSB7CiAgIEVYUEVDVF9FUSgwLCB0MS5nZXQoKSk7CiAKICAg
VGhyZWFkTG9jYWw8dm9pZCo+IHQyOwotICBFWFBFQ1RfVFJVRSh0Mi5nZXQoKSA9PSBOVUxMKTsK
KyAgRVhQRUNUX1RSVUUodDIuZ2V0KCkgPT0gbnVsbHB0cik7CiB9CiAKIFRFU1QoVGhyZWFkTG9j
YWxUZXN0LCBTaW5nbGVQYXJhbUNvbnN0cnVjdG9ySW5pdGlhbGl6ZXNUb1BhcmFtKSB7CkBAIC0x
MDE1LDcgKzk5Myw3IEBAIHZvaWQgQWRkVHdvKGludCogcGFyYW0pIHsgKnBhcmFtICs9IDI7IH0K
IAogVEVTVChUaHJlYWRXaXRoUGFyYW1UZXN0LCBDb25zdHJ1Y3RvckV4ZWN1dGVzVGhyZWFkRnVu
YykgewogICBpbnQgaSA9IDQwOwotICBUaHJlYWRXaXRoUGFyYW08aW50Kj4gdGhyZWFkKCZBZGRU
d28sICZpLCBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPGludCo+IHRocmVhZCgmQWRkVHdvLCAm
aSwgbnVsbHB0cik7CiAgIHRocmVhZC5Kb2luKCk7CiAgIEVYUEVDVF9FUSg0MiwgaSk7CiB9CkBA
IC0xMDU1LDEwICsxMDMzLDEwIEBAIGNsYXNzIEF0b21pY0NvdW50ZXJXaXRoTXV0ZXggewogICAg
ICAgLy8gZnVuY3Rpb25hbGl0eSBhcyB3ZSBhcmUgdGVzdGluZyB0aGVtIGhlcmUuCiAgICAgICBw
dGhyZWFkX211dGV4X3QgbWVtb3J5X2JhcnJpZXJfbXV0ZXg7CiAgICAgICBHVEVTVF9DSEVDS19Q
T1NJWF9TVUNDRVNTXygKLSAgICAgICAgICBwdGhyZWFkX211dGV4X2luaXQoJm1lbW9yeV9iYXJy
aWVyX211dGV4LCBOVUxMKSk7CisgICAgICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZtZW1vcnlf
YmFycmllcl9tdXRleCwgbnVsbHB0cikpOwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VT
U18ocHRocmVhZF9tdXRleF9sb2NrKCZtZW1vcnlfYmFycmllcl9tdXRleCkpOwogCi0gICAgICBT
bGVlcE1pbGxpc2Vjb25kcyhyYW5kb21fLkdlbmVyYXRlKDMwKSk7CisgICAgICBTbGVlcE1pbGxp
c2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ+KHJhbmRvbV8uR2VuZXJhdGUoMzApKSk7CiAKICAgICAg
IEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtZW1vcnlf
YmFycmllcl9tdXRleCkpOwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVh
ZF9tdXRleF9kZXN0cm95KCZtZW1vcnlfYmFycmllcl9tdXRleCkpOwpAQCAtMTA2Niw3ICsxMDQ0
LDcgQEAgY2xhc3MgQXRvbWljQ291bnRlcldpdGhNdXRleCB7CiAgICAgICAvLyBPbiBXaW5kb3dz
LCBwZXJmb3JtaW5nIGFuIGludGVybG9ja2VkIGFjY2VzcyBwdXRzIHVwIGEgbWVtb3J5IGJhcnJp
ZXIuCiAgICAgICB2b2xhdGlsZSBMT05HIGR1bW15ID0gMDsKICAgICAgIDo6SW50ZXJsb2NrZWRJ
bmNyZW1lbnQoJmR1bW15KTsKLSAgICAgIFNsZWVwTWlsbGlzZWNvbmRzKHJhbmRvbV8uR2VuZXJh
dGUoMzApKTsKKyAgICAgIFNsZWVwTWlsbGlzZWNvbmRzKHN0YXRpY19jYXN0PGludD4ocmFuZG9t
Xy5HZW5lcmF0ZSgzMCkpKTsKICAgICAgIDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQoJmR1bW15KTsK
ICNlbHNlCiAjIGVycm9yICJNZW1vcnkgYmFycmllciBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBw
bGF0Zm9ybS4iCkBAIC0xMDk1LDcgKzEwNzMsNyBAQCBURVNUKE11dGV4VGVzdCwgT25seU9uZVRo
cmVhZENhbkxvY2tBdEFUaW1lKSB7CiAgIHR5cGVkZWYgVGhyZWFkV2l0aFBhcmFtPHBhaXI8QXRv
bWljQ291bnRlcldpdGhNdXRleCosIGludD4gPiBUaHJlYWRUeXBlOwogICBjb25zdCBpbnQga0N5
Y2xlQ291bnQgPSAyMDsKICAgY29uc3QgaW50IGtUaHJlYWRDb3VudCA9IDc7Ci0gIHNjb3BlZF9w
dHI8VGhyZWFkVHlwZT4gY291bnRpbmdfdGhyZWFkc1trVGhyZWFkQ291bnRdOworICBzdGQ6OnVu
aXF1ZV9wdHI8VGhyZWFkVHlwZT4gY291bnRpbmdfdGhyZWFkc1trVGhyZWFkQ291bnRdOwogICBO
b3RpZmljYXRpb24gdGhyZWFkc19jYW5fc3RhcnQ7CiAgIC8vIENyZWF0ZXMgYW5kIHJ1bnMga1Ro
cmVhZENvdW50IHRocmVhZHMgdGhhdCBpbmNyZW1lbnQgbG9ja2VkX2NvdW50ZXIKICAgLy8ga0N5
Y2xlQ291bnQgdGltZXMgZWFjaC4KQEAgLTExMTgsNyArMTA5Niw3IEBAIFRFU1QoTXV0ZXhUZXN0
LCBPbmx5T25lVGhyZWFkQ2FuTG9ja0F0QVRpbWUpIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiB2b2lkIFJ1bkZyb21UaHJlYWQodm9pZCAoZnVuYykoVCksIFQgcGFyYW0pIHsKLSAgVGhyZWFk
V2l0aFBhcmFtPFQ+IHRocmVhZChmdW5jLCBwYXJhbSwgTlVMTCk7CisgIFRocmVhZFdpdGhQYXJh
bTxUPiB0aHJlYWQoZnVuYywgcGFyYW0sIG51bGxwdHIpOwogICB0aHJlYWQuSm9pbigpOwogfQog
CkBAIC0xMjA4LDggKzExODYsNiBAQCBjbGFzcyBEZXN0cnVjdG9yVHJhY2tlciB7CiAgICAgcmV0
dXJuIERlc3RydWN0b3JDYWxsOjpMaXN0KCkuc2l6ZSgpIC0gMTsKICAgfQogICBjb25zdCBzaXpl
X3QgaW5kZXhfOwotCi0gIEdURVNUX0RJU0FMTE9XX0FTU0lHTl8oRGVzdHJ1Y3RvclRyYWNrZXIp
OwogfTsKIAogdHlwZWRlZiBUaHJlYWRMb2NhbDxEZXN0cnVjdG9yVHJhY2tlcj4qIFRocmVhZFBh
cmFtOwpAQCAtMTI1MCw4ICsxMjI2LDggQEAgVEVTVChUaHJlYWRMb2NhbFRlc3QsIERlc3Ryb3lz
TWFuYWdlZE9iamVjdEF0VGhyZWFkRXhpdCkgewogICAgIEFTU0VSVF9FUSgwVSwgRGVzdHJ1Y3Rv
ckNhbGw6Okxpc3QoKS5zaXplKCkpOwogCiAgICAgLy8gVGhpcyBjcmVhdGVzIGFub3RoZXIgRGVz
dHJ1Y3RvclRyYWNrZXIgb2JqZWN0IGluIHRoZSBuZXcgdGhyZWFkLgotICAgIFRocmVhZFdpdGhQ
YXJhbTxUaHJlYWRQYXJhbT4gdGhyZWFkKAotICAgICAgICAmQ2FsbFRocmVhZExvY2FsR2V0LCAm
dGhyZWFkX2xvY2FsX3RyYWNrZXIsIE5VTEwpOworICAgIFRocmVhZFdpdGhQYXJhbTxUaHJlYWRQ
YXJhbT4gdGhyZWFkKCZDYWxsVGhyZWFkTG9jYWxHZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJnRocmVhZF9sb2NhbF90cmFja2VyLCBudWxscHRyKTsKICAgICB0
aHJlYWQuSm9pbigpOwogCiAgICAgLy8gVGhlIHRocmVhZCBoYXMgZXhpdGVkLCBhbmQgd2Ugc2hv
dWxkIGhhdmUgYSBEZXN0cm95ZWRUcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcHJpbnRlcnMtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmludGVycy10ZXN0LmNjCmluZGV4IGVhODM2OWQy
N2U1MDQ3MGYxZWFiZTNhZjI4MDRkMzQ1NDkzYWRlZDkuLjA0NjM1ZTU4YWUyM2E2YzRkZTY4YTE4
N2E1NmM2MzIyYzM4MTVjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1wcmludGVycy10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wcmludGVycy10ZXN0LmNjCkBAIC0zMiwzNCArMzIsMjcgQEAK
IC8vCiAvLyBUaGlzIGZpbGUgdGVzdHMgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLgogCi0j
aW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdHJpbmcu
aD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxm
b3J3YXJkX2xpc3Q+CisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPGxpc3Q+CiAjaW5jbHVk
ZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8c3N0
cmVhbT4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNs
dWRlIDx1bm9yZGVyZWRfc2V0PgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9y
PgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaCIKICNpbmNsdWRlICJndGVzdC9n
dGVzdC5oIgogCi0jaWYgR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBfCi0jIGluY2x1ZGUgPHVub3Jk
ZXJlZF9tYXA+ICAvLyBOT0xJTlQKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBf
Ci0KLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KLSMgaW5jbHVkZSA8dW5vcmRlcmVkX3Nl
dD4gIC8vIE5PTElOVAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KLQotI2lm
IEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXwotIyBpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+IC8v
IE5PTElOVAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX0ZPUldBUkRfTElTVF8KLQogLy8gU29t
ZSB1c2VyLWRlZmluZWQgdHlwZXMgZm9yIHRlc3RpbmcgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmlu
dGVyLgogCiAvLyBBbiBhbm9ueW1vdXMgZW51bSB0eXBlLgpAQCAtOTgsNiArOTEsMTggQEAgY2xh
c3MgQmlnZ2VzdEludENvbnZlcnRpYmxlIHsKICAgb3BlcmF0b3IgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6QmlnZ2VzdEludCgpIGNvbnN0IHsgcmV0dXJuIDQyOyB9CiB9OwogCisvLyBBIHBhcmVudCBj
bGFzcyB3aXRoIHR3byBjaGlsZCBjbGFzc2VzLiBUaGUgcGFyZW50IGFuZCBvbmUgb2YgdGhlIGtp
ZHMgaGF2ZQorLy8gc3RyZWFtIG9wZXJhdG9ycy4KK2NsYXNzIFBhcmVudENsYXNzIHt9OworY2xh
c3MgQ2hpbGRDbGFzc1dpdGhTdHJlYW1PcGVyYXRvciA6IHB1YmxpYyBQYXJlbnRDbGFzcyB7fTsK
K2NsYXNzIENoaWxkQ2xhc3NXaXRob3V0U3RyZWFtT3BlcmF0b3IgOiBwdWJsaWMgUGFyZW50Q2xh
c3Mge307CitzdGF0aWMgdm9pZCBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFBh
cmVudENsYXNzJikgeworICBvcyA8PCAiUGFyZW50Q2xhc3MiOworfQorc3RhdGljIHZvaWQgb3Bl
cmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBDaGlsZENsYXNzV2l0aFN0cmVhbU9wZXJh
dG9yJikgeworICBvcyA8PCAiQ2hpbGRDbGFzc1dpdGhTdHJlYW1PcGVyYXRvciI7Cit9CisKIC8v
IEEgdXNlci1kZWZpbmVkIHVucHJpbnRhYmxlIGNsYXNzIHRlbXBsYXRlIGluIHRoZSBnbG9iYWwg
bmFtZXNwYWNlLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBVbnByaW50YWJsZVRlbXBs
YXRlSW5HbG9iYWwgewpAQCAtMTg1LDYgKzE5MCwxNyBAQCBpbmxpbmUgOjpzdGQ6Om9zdHJlYW0m
IG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLAogICByZXR1cm4gb3MgPDwgIlN0cmVhbWFi
bGVUZW1wbGF0ZUluRm9vOiAiIDw8IHgudmFsdWUoKTsKIH0KIAorLy8gQSB1c2VyLWRlZmluZWQg
c3RyZWFtYWJsZSB0eXBlIGluIGEgdXNlciBuYW1lc3BhY2Ugd2hvc2Ugb3BlcmF0b3I8PCBpcwor
Ly8gdGVtcGxhdGVkIG9uIHRoZSB0eXBlIG9mIHRoZSBvdXRwdXQgc3RyZWFtLgorc3RydWN0IFRl
bXBsYXRlZFN0cmVhbWFibGVJbkZvbyB7fTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIE91dHB1dFN0
cmVhbT4KK091dHB1dFN0cmVhbSYgb3BlcmF0b3I8PChPdXRwdXRTdHJlYW0mIG9zLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlbXBsYXRlZFN0cmVhbWFibGVJbkZvbyYgLyp0cyov
KSB7CisgIG9zIDw8ICJUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28iOworICByZXR1cm4gb3M7Cit9
CisKIC8vIEEgdXNlci1kZWZpbmVkIHN0cmVhbWFibGUgYnV0IHJlY3Vyc2l2bHktZGVmaW5lZCBj
b250YWluZXIgdHlwZSBpbgogLy8gYSB1c2VyIG5hbWVzcGFjZSwgaXQgbWltaWNzIHRoZXJlZm9y
ZSBzdGQ6OmZpbGVzeXN0ZW06OnBhdGggb3IKIC8vIGJvb3N0OjpmaWxlc3lzdGVtOjpwYXRoLgpA
QCAtMTkyLDggKzIwOCwxNCBAQCBjbGFzcyBQYXRoTGlrZSB7CiAgcHVibGljOgogICBzdHJ1Y3Qg
aXRlcmF0b3IgewogICAgIHR5cGVkZWYgUGF0aExpa2UgdmFsdWVfdHlwZTsKKworICAgIGl0ZXJh
dG9yJiBvcGVyYXRvcisrKCk7CisgICAgUGF0aExpa2UmIG9wZXJhdG9yKigpOwogICB9OwogCisg
IHVzaW5nIHZhbHVlX3R5cGUgPSBjaGFyOworICB1c2luZyBjb25zdF9pdGVyYXRvciA9IGl0ZXJh
dG9yOworCiAgIFBhdGhMaWtlKCkge30KIAogICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0
dXJuIGl0ZXJhdG9yKCk7IH0KQEAgLTIwNyw2ICsyMjksMzMgQEAgY2xhc3MgUGF0aExpa2Ugewog
fSAgLy8gbmFtZXNwYWNlIGZvbwogCiBuYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2Ugewor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBXcmFwcGVyIHsKKyBwdWJsaWM6CisgIGV4cGxp
Y2l0IFdyYXBwZXIoVCYmIHZhbHVlKSA6IHZhbHVlXyhzdGQ6OmZvcndhcmQ8VD4odmFsdWUpKSB7
fQorCisgIGNvbnN0IFQmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVfOyB9CisKKyBwcml2
YXRlOgorICBUIHZhbHVlXzsKK307CisKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2UgaW50
ZXJuYWwgewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPFdy
YXBwZXI8VD4+IHsKKyBwdWJsaWM6CisgIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IFdyYXBwZXI8
VD4mIHcsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCAiV3JhcHBlcigiOworICAg
IFVuaXZlcnNhbFByaW50KHcudmFsdWUoKSwgb3MpOworICAgICpvcyA8PCAnKSc7CisgIH0KK307
Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKworCiBuYW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNf
dGVzdCB7CiAKIHVzaW5nIDo6c3RkOjpkZXF1ZTsKQEAgLTIyMiwxNSArMjcxLDEyIEBAIHVzaW5n
IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZzsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkZv
cm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJu
YWw6OkltcGxpY2l0Q2FzdF87CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpOYXRpdmVBcnJh
eTsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJFOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRl
cm5hbDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5jZTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJu
YWw6OlN0cmluZ3M7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxQcmludDsK
IHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlVuaXZlcnNhbFByaW50ZXI7CiB1c2luZyA6OnRl
c3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxUZXJzZVByaW50OwotI2lmIEdURVNUX0hBU19UUjFf
VFVQTEUgfHwgR1RFU1RfSEFTX1NURF9UVVBMRV8KIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nczsKLSNlbmRpZgogCiAvLyBQ
cmludHMgYSB2YWx1ZSB0byBhIHN0cmluZyB1c2luZyB0aGUgdW5pdmVyc2FsIHZhbHVlIHByaW50
ZXIuICBUaGlzCiAvLyBpcyBhIGhlbHBlciBmb3IgdGVzdGluZyBVbml2ZXJzYWxQcmludGVyPFQ+
OjpQcmludCgpIGZvciB2YXJpb3VzIHR5cGVzLgpAQCAtMzE1LDYgKzM2MSwyMCBAQCBURVNUKFBy
aW50Q2hhclRlc3QsIFVuc2lnbmVkQ2hhcikgewogICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oJ2InKSkpOwogfQogCitURVNUKFByaW50Q2hhclRlc3QsIENoYXIx
NikgeworICBFWFBFQ1RfRVEoIlUrMDA0MSIsIFByaW50KHUnQScpKTsKK30KKworVEVTVChQcmlu
dENoYXJUZXN0LCBDaGFyMzIpIHsKKyAgRVhQRUNUX0VRKCJVKzAwNDEiLCBQcmludChVJ0EnKSk7
Cit9CisKKyNpZmRlZiBfX2NwcF9jaGFyOF90CitURVNUKFByaW50Q2hhclRlc3QsIENoYXI4KSB7
CisgIEVYUEVDVF9FUSgiVSswMDQxIiwgUHJpbnQodTgnQScpKTsKK30KKyNlbmRpZgorCiAvLyBU
ZXN0cyBwcmludGluZyBvdGhlciBzaW1wbGUsIGJ1aWx0LWluIHR5cGVzLgogCiAvLyBib29sLgpA
QCAtMzQ1LDIzICs0MDUsMzkgQEAgVEVTVChQcmludEJ1aWx0SW5UeXBlVGVzdCwgV2NoYXJfdCkg
ewogICBFWFBFQ1RfRVEoIkwnXFx4Qzc0RCcgKDUxMDIxKSIsIFByaW50KHN0YXRpY19jYXN0PHdj
aGFyX3Q+KDB4Qzc0RCkpKTsKIH0KIAotLy8gVGVzdCB0aGF0IEludDY0IHByb3ZpZGVzIG1vcmUg
c3RvcmFnZSB0aGFuIHdjaGFyX3QuCisvLyBUZXN0IHRoYXQgaW50NjRfdCBwcm92aWRlcyBtb3Jl
IHN0b3JhZ2UgdGhhbiB3Y2hhcl90LgogVEVTVChQcmludFR5cGVTaXplVGVzdCwgV2NoYXJfdCkg
ewotICBFWFBFQ1RfTFQoc2l6ZW9mKHdjaGFyX3QpLCBzaXplb2YodGVzdGluZzo6aW50ZXJuYWw6
OkludDY0KSk7CisgIEVYUEVDVF9MVChzaXplb2Yod2NoYXJfdCksIHNpemVvZihpbnQ2NF90KSk7
CiB9CiAKIC8vIFZhcmlvdXMgaW50ZWdlciB0eXBlcy4KIFRFU1QoUHJpbnRCdWlsdEluVHlwZVRl
c3QsIEludGVnZXIpIHsKICAgRVhQRUNUX0VRKCInXFx4RkYnICgyNTUpIiwgUHJpbnQoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oMjU1KSkpOyAgLy8gdWludDgKICAgRVhQRUNUX0VRKCInXFx4
ODAnICgtMTI4KSIsIFByaW50KHN0YXRpY19jYXN0PHNpZ25lZCBjaGFyPigtMTI4KSkpOyAgLy8g
aW50OAotICBFWFBFQ1RfRVEoIjY1NTM1IiwgUHJpbnQoVVNIUlRfTUFYKSk7ICAvLyB1aW50MTYK
LSAgRVhQRUNUX0VRKCItMzI3NjgiLCBQcmludChTSFJUX01JTikpOyAgLy8gaW50MTYKLSAgRVhQ
RUNUX0VRKCI0Mjk0OTY3Mjk1IiwgUHJpbnQoVUlOVF9NQVgpKTsgIC8vIHVpbnQzMgotICBFWFBF
Q1RfRVEoIi0yMTQ3NDgzNjQ4IiwgUHJpbnQoSU5UX01JTikpOyAgLy8gaW50MzIKKyAgRVhQRUNU
X0VRKCI2NTUzNSIsIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSkp
OyAgLy8gdWludDE2CisgIEVYUEVDVF9FUSgiLTMyNzY4IiwgUHJpbnQoc3RkOjpudW1lcmljX2xp
bWl0czxpbnQxNl90Pjo6bWluKCkpKTsgIC8vIGludDE2CisgIEVYUEVDVF9FUSgiNDI5NDk2NzI5
NSIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4
KCkpKTsgIC8vIHVpbnQzMgorICBFWFBFQ1RfRVEoIi0yMTQ3NDgzNjQ4IiwKKyAgICAgICAgICAg
IFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSk7ICAvLyBpbnQzMgog
ICBFWFBFQ1RfRVEoIjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiwKLSAgICAgICAgICAgIFByaW50KHN0
YXRpY19jYXN0PHRlc3Rpbmc6OmludGVybmFsOjpVSW50NjQ+KC0xKSkpOyAgLy8gdWludDY0Cisg
ICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpKTsg
IC8vIHVpbnQ2NAogICBFWFBFQ1RfRVEoIi05MjIzMzcyMDM2ODU0Nzc1ODA4IiwKLSAgICAgICAg
ICAgIFByaW50KHN0YXRpY19jYXN0PHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2ND4oMSkgPDwgNjMp
KTsgIC8vIGludDY0CisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0
X3Q+OjptaW4oKSkpOyAgLy8gaW50NjQKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisgIEVYUEVDVF9F
USgiVSswMDAwIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjhf
dD46Om1pbigpKSk7ICAvLyBjaGFyOF90CisgIEVYUEVDVF9FUSgiVSswMEZGIiwKKyAgICAgICAg
ICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjhfdD46Om1heCgpKSk7ICAvLyBjaGFy
OF90CisjZW5kaWYKKyAgRVhQRUNUX0VRKCJVKzAwMDAiLAorICAgICAgICAgICAgUHJpbnQoc3Rk
OjpudW1lcmljX2xpbWl0czxjaGFyMTZfdD46Om1pbigpKSk7ICAvLyBjaGFyMTZfdAorICBFWFBF
Q1RfRVEoIlUrRkZGRiIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGNo
YXIxNl90Pjo6bWF4KCkpKTsgIC8vIGNoYXIxNl90CisgIEVYUEVDVF9FUSgiVSswMDAwIiwKKyAg
ICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjMyX3Q+OjptaW4oKSkpOyAg
Ly8gY2hhcjMyX3QKKyAgRVhQRUNUX0VRKCJVK0ZGRkZGRkZGIiwKKyAgICAgICAgICAgIFByaW50
KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcjMyX3Q+OjptYXgoKSkpOyAgLy8gY2hhcjMyX3QKIH0K
IAogLy8gU2l6ZSB0eXBlcy4KQEAgLTQwNSw3ICs0ODEsNyBAQCBURVNUKFByaW50Q1N0cmluZ1Rl
c3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5VTEwgQyBzdHJpbmcuCiBURVNUKFByaW50Q1N0cmluZ1Rl
c3QsIE51bGwpIHsKLSAgY29uc3QgY2hhciogcCA9IE5VTEw7CisgIGNvbnN0IGNoYXIqIHAgPSBu
dWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQxNyw2ICs0
OTMsOTIgQEAgVEVTVChQcmludENTdHJpbmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKICAgICAg
ICAgICAgIFByaW50KHApKTsKIH0KIAorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIGNvbnN0IGNo
YXI4X3QqLgorVEVTVChQcmludFU4U3RyaW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hhcjhf
dCogcCA9IHU4IueVjCI7CisgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5n
IHRvIHU4XCJcXHhFN1xceDk1XFx4OENcIiIsIFByaW50KHApKTsKK30KKworLy8gY2hhcjhfdCou
CitURVNUKFByaW50VThTdHJpbmdUZXN0LCBOb25Db25zdCkgeworICBjaGFyOF90IHBbXSA9IHU4
IuS4liI7CisgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHU4XCJc
XHhFNFxceEI4XFx4OTZcIiIsCisgICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDxjaGFyOF90
Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1OCBzdHJpbmcuCitURVNUKFByaW50VThTdHJpbmdUZXN0
LCBOdWxsKSB7CisgIGNvbnN0IGNoYXI4X3QqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoIk5V
TEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgdTggc3RyaW5ncyBhcmUgZXNjYXBl
ZCBwcm9wZXJseS4KK1RFU1QoUHJpbnRVOFN0cmluZ1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgewor
ICBjb25zdCBjaGFyOF90KiBwID0gdTgiJ1wiP1xcXGFcYlxmXG5cclx0XHZceDdGXHhGRiBoZWxs
byDkuJbnlYwiOworICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAg
ICAiIHBvaW50aW5nIHRvIHU4XCInXFxcIj9cXFxcXFxhXFxiXFxmXFxuXFxyXFx0XFx2XFx4N0Zc
XHhGRiAiCisgICAgICAgICAgICAgICAgImhlbGxvIFxceEU0XFx4QjhcXHg5NlxceEU3XFx4OTVc
XHg4Q1wiIiwKKyAgICAgICAgICAgIFByaW50KHApKTsKK30KKyNlbmRpZgorCisvLyBjb25zdCBj
aGFyMTZfdCouCitURVNUKFByaW50VTE2U3RyaW5nVGVzdCwgQ29uc3QpIHsKKyAgY29uc3QgY2hh
cjE2X3QqIHAgPSB1IueVjCI7CisgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkgKyAiIHBvaW50
aW5nIHRvIHVcIlxceDc1NENcIiIsIFByaW50KHApKTsKK30KKworLy8gY2hhcjE2X3QqLgorVEVT
VChQcmludFUxNlN0cmluZ1Rlc3QsIE5vbkNvbnN0KSB7CisgIGNoYXIxNl90IHBbXSA9IHUi5LiW
IjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArICIgcG9pbnRpbmcgdG8gdVwiXFx4NEUx
NlwiIiwKKyAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PGNoYXIxNl90Kj4ocCkpKTsKK30K
KworLy8gTlVMTCB1MTYgc3RyaW5nLgorVEVTVChQcmludFUxNlN0cmluZ1Rlc3QsIE51bGwpIHsK
KyAgY29uc3QgY2hhcjE2X3QqIHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmlu
dChwKSk7Cit9CisKKy8vIFRlc3RzIHRoYXQgdTE2IHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVy
bHkuCitURVNUKFByaW50VTE2U3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CisgIGNvbnN0
IGNoYXIxNl90KiBwID0gdSInXCI/XFxcYVxiXGZcblxyXHRcdlx4N0ZceEZGIGhlbGxvIOS4lueV
jCI7CisgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkgKworICAgICAgICAgICAgICAgICIgcG9p
bnRpbmcgdG8gdVwiJ1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcclxcdFxcdlxceDdGXFx4RkYgIgor
ICAgICAgICAgICAgICAgICJoZWxsbyBcXHg0RTE2XFx4NzU0Q1wiIiwKKyAgICAgICAgICAgIFBy
aW50KHApKTsKK30KKworLy8gY29uc3QgY2hhcjMyX3QqLgorVEVTVChQcmludFUzMlN0cmluZ1Rl
c3QsIENvbnN0KSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gVSLwn5e677iPIjsKKyAgRVhQRUNU
X0VRKFByaW50UG9pbnRlcihwKSArICIgcG9pbnRpbmcgdG8gVVwiXFx4MUY1RkFcXHhGRTBGXCIi
LCBQcmludChwKSk7Cit9CisKKy8vIGNoYXIzMl90Ki4KK1RFU1QoUHJpbnRVMzJTdHJpbmdUZXN0
LCBOb25Db25zdCkgeworICBjaGFyMzJfdCBwW10gPSBVIvCfjIwiOworICBFWFBFQ1RfRVEoUHJp
bnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byBVXCJcXHgxRjMwQ1wiIiwKKyAgICAgICAgICAg
IFByaW50KHN0YXRpY19jYXN0PGNoYXIzMl90Kj4ocCkpKTsKK30KKworLy8gTlVMTCB1MzIgc3Ry
aW5nLgorVEVTVChQcmludFUzMlN0cmluZ1Rlc3QsIE51bGwpIHsKKyAgY29uc3QgY2hhcjMyX3Qq
IHAgPSBudWxscHRyOworICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7Cit9CisKKy8vIFRl
c3RzIHRoYXQgdTMyIHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFByaW50VTMy
U3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gVSIn
XCI/XFxcYVxiXGZcblxyXHRcdlx4N0ZceEZGIGhlbGxvIPCfl7rvuI8iOworICBFWFBFQ1RfRVEo
UHJpbnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAgICAiIHBvaW50aW5nIHRvIFVcIidcXFwi
P1xcXFxcXGFcXGJcXGZcXG5cXHJcXHRcXHZcXHg3RlxceEZGICIKKyAgICAgICAgICAgICAgICAi
aGVsbG8gXFx4MUY1RkFcXHhGRTBGXCIiLAorICAgICAgICAgICAgUHJpbnQocCkpOworfQorCiAv
LyBNU1ZDIGNvbXBpbGVyIGNhbiBiZSBjb25maWd1cmVkIHRvIGRlZmluZSB3aGFyX3QgYXMgYSB0
eXBlZGVmCiAvLyBvZiB1bnNpZ25lZCBzaG9ydC4gRGVmaW5pbmcgYW4gb3ZlcmxvYWQgZm9yIGNv
bnN0IHdjaGFyX3QqIGluIHRoYXQgY2FzZQogLy8gd291bGQgY2F1c2UgcG9pbnRlcnMgdG8gdW5z
aWduZWQgc2hvcnRzIGJlIHByaW50ZWQgYXMgd2lkZSBzdHJpbmdzLApAQCAtNDQwLDcgKzYwMiw3
IEBAIFRFU1QoUHJpbnRXaWRlQ1N0cmluZ1Rlc3QsIE5vbkNvbnN0KSB7CiAKIC8vIE5VTEwgd2lk
ZSBDIHN0cmluZy4KIFRFU1QoUHJpbnRXaWRlQ1N0cmluZ1Rlc3QsIE51bGwpIHsKLSAgY29uc3Qg
d2NoYXJfdCogcCA9IE5VTEw7CisgIGNvbnN0IHdjaGFyX3QqIHAgPSBudWxscHRyOwogICBFWFBF
Q1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAgLTQ2MCw3ICs2MjIsNyBAQCBURVNUKFBy
aW50V2lkZUNTdHJpbmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKIFRFU1QoUHJpbnRDaGFyUG9p
bnRlclRlc3QsIFNpZ25lZENoYXIpIHsKICAgc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9j
YXN0PHNpZ25lZCBjaGFyKj4oMHgxMjM0KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwg
UHJpbnQocCkpOwotICBwID0gTlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVM
TCIsIFByaW50KHApKTsKIH0KIApAQCAtNDY4LDcgKzYzMCw3IEBAIFRFU1QoUHJpbnRDaGFyUG9p
bnRlclRlc3QsIFNpZ25lZENoYXIpIHsKIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0
U2lnbmVkQ2hhcikgewogICBzaWduZWQgY2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2lnbmVk
IGNoYXIqPigweDEyMzQpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7
Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQo
cCkpOwogfQogCkBAIC00NzYsNyArNjM4LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwg
Q29uc3RTaWduZWRDaGFyKSB7CiBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNpZ25lZENo
YXIpIHsKICAgdW5zaWduZWQgY2hhciogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hh
cio+KDB4MTIzNCk7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAg
cCA9IE5VTEw7CisgIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7
CiB9CiAKQEAgLTQ4NCw3ICs2NDYsNyBAQCBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBVbnNp
Z25lZENoYXIpIHsKIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0VW5zaWduZWRDaGFy
KSB7CiAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVu
c2lnbmVkIGNoYXIqPigweDEyMzQpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmlu
dChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwg
UHJpbnQocCkpOwogfQogCkBAIC00OTQsNyArNjU2LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVy
VGVzdCwgQ29uc3RVbnNpZ25lZENoYXIpIHsKIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlw
ZVRlc3QsIEJvb2wpIHsKICAgYm9vbCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KDB4QUJD
RCk7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5VTEw7
CisgIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAKQEAg
LTUwMiw3ICs2NjQsNyBAQCBURVNUKFByaW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29s
KSB7CiBURVNUKFByaW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBWb2lkKSB7CiAgIHZvaWQq
IHAgPSByZWludGVycHJldF9jYXN0PHZvaWQqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQ
b2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQ
RUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC01MTAsNyArNjcyLDcgQEAgVEVTVChQ
cmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgVm9pZCkgewogVEVTVChQcmludFBvaW50ZXJU
b0J1aWx0SW5UeXBlVGVzdCwgQ29uc3RWb2lkKSB7CiAgIGNvbnN0IHZvaWQqIHAgPSByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVy
KHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VR
KCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC01MTgsNyArNjgwLDcgQEAgVEVTVChQcmludFBv
aW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgQ29uc3RWb2lkKSB7CiBURVNUKFByaW50UG9pbnRlclRv
UG9pbnRlclRlc3QsIEludFBvaW50ZXJQb2ludGVyKSB7CiAgIGludCoqIHAgPSByZWludGVycHJl
dF9jYXN0PGludCoqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmlu
dChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwg
UHJpbnQocCkpOwogfQogCkBAIC02MjcsMjEgKzc4OSw2NiBAQCBURVNUKFByaW50QXJyYXlUZXN0
LCBDaGFyQXJyYXlXaXRoTm9UZXJtaW5hdGluZ051bCkgewogICBFWFBFQ1RfRVEoIlwiSFxcMGlc
IiAobm8gdGVybWluYXRpbmcgTlVMKSIsIFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQogCi0vLyBj
b25zdCBjaGFyIGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgotVEVTVChQcmludEFycmF5VGVz
dCwgQ29uc3RDaGFyQXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsKKy8vIGNoYXIgYXJyYXkgd2l0
aCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50QXJyYXlUZXN0LCBDaGFyQXJyYXlXaXRoVGVy
bWluYXRpbmdOdWwpIHsKICAgY29uc3QgY2hhciBhW10gPSAiXDBIaSI7CiAgIEVYUEVDVF9FUSgi
XCJcXDBIaVwiIiwgUHJpbnRBcnJheUhlbHBlcihhKSk7CiB9CiAKLS8vIGNvbnN0IHdjaGFyX3Qg
YXJyYXkgd2l0aG91dCB0ZXJtaW5hdGluZyBOVUwuCisjaWZkZWYgX19jcHBfY2hhcjhfdAorLy8g
Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVz
dCwgQ2hhcjhBcnJheVdpdGhOb1Rlcm1pbmF0aW5nTnVsKSB7CisgIC8vIEFycmF5IGEgY29udGFp
bnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFuZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCisgIGNvbnN0
IGNoYXI4X3QgYVtdID0ge3U4J0gnLCB1OCdcMCcsIHU4J2knfTsKKyAgRVhQRUNUX0VRKCJ1OFwi
SFxcMGlcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsIFByaW50QXJyYXlIZWxwZXIoYSkpOworfQor
CisvLyBjaGFyOF90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5
VGVzdCwgQ2hhcjhBcnJheVdpdGhUZXJtaW5hdGluZ051bCkgeworICBjb25zdCBjaGFyOF90IGFb
XSA9IHU4Ilww5LiW55WMIjsKKyAgRVhQRUNUX0VRKAorICAgICAgInU4XCJcXDBcXHhFNFxceEI4
XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsCisgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30K
KyNlbmRpZgorCisvLyBjb25zdCBjaGFyMTZfdCBhcnJheSB3aXRob3V0IHRlcm1pbmF0aW5nIE5V
TC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXIxNkFycmF5V2l0aE5vVGVybWluYXRpbmdOdWwp
IHsKKyAgLy8gQXJyYXkgYSBjb250YWlucyAnXDAnIGluIHRoZSBtaWRkbGUgYW5kIGRvZXNuJ3Qg
ZW5kIHdpdGggJ1wwJy4KKyAgY29uc3QgY2hhcjE2X3QgYVtdID0ge3Un44GTJywgdSdcMCcsIHUn
44KTJywgdSfjgasnLCB1J+OBoScsIHUn44GvJ307CisgIEVYUEVDVF9FUSgidVwiXFx4MzA1M1xc
MFxceDMwOTNcXHgzMDZCXFx4MzA2MVxceDMwNkZcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsCisg
ICAgICAgICAgICBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8gY2hhcjE2X3QgYXJyYXkg
d2l0aCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50QXJyYXlUZXN0LCBDaGFyMTZBcnJheVdp
dGhUZXJtaW5hdGluZ051bCkgeworICBjb25zdCBjaGFyMTZfdCBhW10gPSB1Ilww44GT44KT44Gr
44Gh44GvIjsKKyAgRVhQRUNUX0VRKCJ1XCJcXDBcXHgzMDUzXFx4MzA5M1xceDMwNkJcXHgzMDYx
XFx4MzA2RlwiIiwgUHJpbnRBcnJheUhlbHBlcihhKSk7Cit9CisKKy8vIGNoYXIzMl90IGFycmF5
IHdpdGhvdXQgdGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjMyQXJy
YXlXaXRoTm9UZXJtaW5hdGluZ051bCkgeworICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4g
dGhlIG1pZGRsZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAnLgorICBjb25zdCBjaGFyMzJfdCBh
W10gPSB7VSfwn5GLJywgVSdcMCcsIFUn8J+MjCd9OworICBFWFBFQ1RfRVEoIlVcIlxceDFGNDRC
XFwwXFx4MUYzMENcIiAobm8gdGVybWluYXRpbmcgTlVMKSIsCisgICAgICAgICAgICBQcmludEFy
cmF5SGVscGVyKGEpKTsKK30KKworLy8gY2hhcjMyX3QgYXJyYXkgd2l0aCB0ZXJtaW5hdGluZyBO
VUwuCitURVNUKFByaW50QXJyYXlUZXN0LCBDaGFyMzJBcnJheVdpdGhUZXJtaW5hdGluZ051bCkg
eworICBjb25zdCBjaGFyMzJfdCBhW10gPSBVIlww8J+Ri/CfjIwiOworICBFWFBFQ1RfRVEoIlVc
IlxcMFxceDFGNDRCXFx4MUYzMENcIiIsIFByaW50QXJyYXlIZWxwZXIoYSkpOworfQorCisvLyB3
Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVybWluYXRpbmcgTlVMLgogVEVTVChQcmludEFycmF5VGVz
dCwgV0NoYXJBcnJheVdpdGhOb1Rlcm1pbmF0aW5nTnVsKSB7CiAgIC8vIEFycmF5IGEgY29udGFp
bnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFuZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCi0gIGNvbnN0
IHdjaGFyX3QgYVtdID0geyBMJ0gnLCBMJ1wwJywgTCdpJyB9OworICBjb25zdCB3Y2hhcl90IGFb
XSA9IHtMJ0gnLCBMJ1wwJywgTCdpJ307CiAgIEVYUEVDVF9FUSgiTFwiSFxcMGlcIiAobm8gdGVy
bWluYXRpbmcgTlVMKSIsIFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQogCiAvLyB3Y2hhcl90IGFy
cmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgotVEVTVChQcmludEFycmF5VGVzdCwgV0NvbnN0Q2hh
ckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7CitURVNUKFByaW50QXJyYXlUZXN0LCBXQ2hhckFy
cmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7CiAgIGNvbnN0IHdjaGFyX3QgYVtdID0gTCJcMEhpIjsK
ICAgRVhQRUNUX0VRKCJMXCJcXDBIaVwiIiwgUHJpbnRBcnJheUhlbHBlcihhKSk7CiB9CkBAIC02
NjEsMTYgKzg2OCw2IEBAIFRFU1QoUHJpbnRBcnJheVRlc3QsIEJpZ0FycmF5KSB7CiAKIC8vIFRl
c3RzIHByaW50aW5nIDo6c3RyaW5nIGFuZCA6OnN0ZDo6c3RyaW5nLgogCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9TVFJJTkcKLS8vIDo6c3RyaW5nLgotVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmlu
Z0luR2xvYmFsTmFtZXNwYWNlKSB7Ci0gIGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxu
XDBcclx0XHZceDdGXHhGRiBhIjsKLSAgY29uc3QgOjpzdHJpbmcgc3RyKHMsIHNpemVvZihzKSk7
Ci0gIEVYUEVDVF9FUSgiXCInXFxcIj9cXFxcXFxhXFxiXFxmXFxuXFwwXFxyXFx0XFx2XFx4N0Zc
XHhGRiBhXFwwXCIiLAotICAgICAgICAgICAgUHJpbnQoc3RyKSk7Ci19Ci0jZW5kaWYgIC8vIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KIC8vIDo6c3RkOjpzdHJpbmcuCiBURVNUKFByaW50U3Ry
aW5nVGVzdCwgU3RyaW5nSW5TdGROYW1lc3BhY2UpIHsKICAgY29uc3QgY2hhciBzW10gPSAiJ1wi
P1xcXGFcYlxmXG5cMFxyXHRcdlx4N0ZceEZGIGEiOwpAQCAtNjkzLDE5ICs4OTAsNyBAQCBURVNU
KFByaW50U3RyaW5nVGVzdCwgU3RyaW5nQW1iaWd1b3VzSGV4KSB7CiAgIEVYUEVDVF9FUSgiXCIh
XFx4NS0hXCIiLCBQcmludCg6OnN0ZDo6c3RyaW5nKCIhXHg1LSEiKSkpOwogfQogCi0vLyBUZXN0
cyBwcmludGluZyA6OndzdHJpbmcgYW5kIDo6c3RkOjp3c3RyaW5nLgotCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi0vLyA6OndzdHJpbmcuCi1URVNUKFByaW50V2lkZVN0cmluZ1Rlc3Qs
IFN0cmluZ0luR2xvYmFsTmFtZXNwYWNlKSB7Ci0gIGNvbnN0IHdjaGFyX3Qgc1tdID0gTCInXCI/
XFxcYVxiXGZcblwwXHJcdFx2XHhEM1x4NTc2XHg4RDNceEM3NEQgYSI7Ci0gIGNvbnN0IDo6d3N0
cmluZyBzdHIocywgc2l6ZW9mKHMpL3NpemVvZih3Y2hhcl90KSk7Ci0gIEVYUEVDVF9FUSgiTFwi
J1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcMFxcclxcdFxcdiIKLSAgICAgICAgICAgICJcXHhEM1xc
eDU3NlxceDhEM1xceEM3NEQgYVxcMFwiIiwKLSAgICAgICAgICAgIFByaW50KHN0cikpOwotfQot
I2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQorLy8gVGVzdHMgcHJpbnRpbmcg
OjpzdGQ6OndzdHJpbmcuCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAvLyA6OnN0ZDo6d3N0
cmluZy4KIFRFU1QoUHJpbnRXaWRlU3RyaW5nVGVzdCwgU3RyaW5nSW5TdGROYW1lc3BhY2UpIHsK
QEAgLTcyNyw2ICs5MTIsMjYgQEAgVEVTVChQcmludFdpZGVTdHJpbmdUZXN0LCBTdHJpbmdBbWJp
Z3VvdXNIZXgpIHsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKKyNpZmRl
ZiBfX2NwcF9jaGFyOF90CitURVNUKFByaW50U3RyaW5nVGVzdCwgVThTdHJpbmcpIHsKKyAgc3Rk
Ojp1OHN0cmluZyBzdHIgPSB1OCJIZWxsbywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3Ry
KTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEgY29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisgIEVYUEVD
VF9FUSgidThcIkhlbGxvLCBcXHhFNFxceEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsIFByaW50
KHN0cikpOworfQorI2VuZGlmCisKK1RFU1QoUHJpbnRTdHJpbmdUZXN0LCBVMTZTdHJpbmcpIHsK
KyAgc3RkOjp1MTZzdHJpbmcgc3RyID0gdSJIZWxsbywg5LiW55WMIjsKKyAgRVhQRUNUX0VRKHN0
ciwgc3RyKTsgIC8vIFZlcmlmeSBFWFBFQ1RfRVEgY29tcGlsZXMgd2l0aCB0aGlzIHR5cGUuCisg
IEVYUEVDVF9FUSgidVwiSGVsbG8sIFxceDRFMTZcXHg3NTRDXCIiLCBQcmludChzdHIpKTsKK30K
KworVEVTVChQcmludFN0cmluZ1Rlc3QsIFUzMlN0cmluZykgeworICBzdGQ6OnUzMnN0cmluZyBz
dHIgPSBVIkhlbGxvLCDwn5e677iPIjsKKyAgRVhQRUNUX0VRKHN0ciwgc3RyKTsgIC8vIFZlcmlm
eSBFWFBFQ1RfRVEgY29tcGlsZXMgd2l0aCB0aGlzIHR5cGUKKyAgRVhQRUNUX0VRKCJVXCJIZWxs
bywgXFx4MUY1RkFcXHhGRTBGXCIiLCBQcmludChzdHIpKTsKK30KKwogLy8gVGVzdHMgcHJpbnRp
bmcgdHlwZXMgdGhhdCBzdXBwb3J0IGdlbmVyaWMgc3RyZWFtaW5nIChpLmUuIHN0cmVhbWluZwog
Ly8gdG8gc3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFpdHM+IGZvciBhbnkgdmFsaWQg
Q2hhciBhbmQKIC8vIENoYXJUcmFpdHMgdHlwZXMpLgpAQCAtNzg1LDIyICs5OTAsMjIgQEAgVEVT
VChQcmludFR5cGVXaXRoR2VuZXJpY1N0cmVhbWluZ1Rlc3QsIFR5cGVJbXBsaWNpdGx5Q29udmVy
dGlibGUpIHsKICAgRVhQRUNUX0VRKCJBbGxvd3NHZW5lcmljU3RyZWFtaW5nQW5kSW1wbGljaXRD
b252ZXJzaW9uVGVtcGxhdGUiLCBQcmludChhKSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfQUJTTAor
I2lmIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCi0vLyBUZXN0cyBwcmludGluZyA6
OmFic2w6OnN0cmluZ192aWV3LgorLy8gVGVzdHMgcHJpbnRpbmcgaW50ZXJuYWw6OlN0cmluZ1Zp
ZXcuCiAKIFRFU1QoUHJpbnRTdHJpbmdWaWV3VGVzdCwgU2ltcGxlU3RyaW5nVmlldykgewotICBj
b25zdCA6OmFic2w6OnN0cmluZ192aWV3IHNwID0gIkhlbGxvIjsKKyAgY29uc3QgaW50ZXJuYWw6
OlN0cmluZ1ZpZXcgc3AgPSAiSGVsbG8iOwogICBFWFBFQ1RfRVEoIlwiSGVsbG9cIiIsIFByaW50
KHNwKSk7CiB9CiAKIFRFU1QoUHJpbnRTdHJpbmdWaWV3VGVzdCwgVW5wcmludGFibGVDaGFyYWN0
ZXJzKSB7CiAgIGNvbnN0IGNoYXIgc3RyW10gPSAiTlVMIChcMCkgYW5kIFxyXHQiOwotICBjb25z
dCA6OmFic2w6OnN0cmluZ192aWV3IHNwKHN0ciwgc2l6ZW9mKHN0cikgLSAxKTsKKyAgY29uc3Qg
aW50ZXJuYWw6OlN0cmluZ1ZpZXcgc3Aoc3RyLCBzaXplb2Yoc3RyKSAtIDEpOwogICBFWFBFQ1Rf
RVEoIlwiTlVMIChcXDApIGFuZCBcXHJcXHRcIiIsIFByaW50KHNwKSk7CiB9CiAKLSNlbmRpZiAg
Ly8gR1RFU1RfSEFTX0FCU0wKKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19W
SUVXCiAKIC8vIFRlc3RzIHByaW50aW5nIFNUTCBjb250YWluZXJzLgogCkBAIC04MTYsNyArMTAy
MSw2IEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBOb25FbXB0eURlcXVlKSB7CiAgIEVY
UEVDVF9FUSgieyAxLCAzIH0iLCBQcmludChub25fZW1wdHkpKTsKIH0KIAotI2lmIEdURVNUX0hB
U19VTk9SREVSRURfTUFQXwogCiBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgT25lRWxlbWVu
dEhhc2hNYXApIHsKICAgOjpzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBjaGFyPiBtYXAxOwpAQCAt
ODM2LDkgKzEwNDAsNyBAQCBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpTWFw
KSB7CiAgICAgICAgICAgICAgICAgICA8PCAiIHdoZXJlIFByaW50KG1hcDEpIHJldHVybnMgXCIi
IDw8IHJlc3VsdCA8PCAiXCIuIjsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVU5PUkRFUkVE
X01BUF8KIAotI2lmIEdURVNUX0hBU19VTk9SREVSRURfU0VUXwogCiBURVNUKFByaW50U3RsQ29u
dGFpbmVyVGVzdCwgSGFzaFNldCkgewogICA6OnN0ZDo6dW5vcmRlcmVkX3NldDxpbnQ+IHNldDE7
CkBAIC04NzUsNyArMTA3Nyw2IEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBIYXNoTXVs
dGlTZXQpIHsKICAgRVhQRUNUX1RSVUUoc3RkOjplcXVhbChhLCBhICsga1NpemUsIG51bWJlcnMu
YmVnaW4oKSkpOwogfQogCi0jZW5kaWYgIC8vICBHVEVTVF9IQVNfVU5PUkRFUkVEX1NFVF8KIAog
VEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIExpc3QpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
YVtdID0geyJoZWxsbyIsICJ3b3JsZCJ9OwpAQCAtOTE3LDE0ICsxMTE4LDEyIEBAIFRFU1QoUHJp
bnRTdGxDb250YWluZXJUZXN0LCBNdWx0aVNldCkgewogICBFWFBFQ1RfRVEoInsgMSwgMSwgMSwg
MiwgNSB9IiwgUHJpbnQoc2V0MSkpOwogfQogCi0jaWYgR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJ
U1RfCiAKIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBTaW5nbHlMaW5rZWRMaXN0KSB7CiAg
IGludCBhW10gPSB7IDksIDIsIDggfTsKICAgY29uc3Qgc3RkOjpmb3J3YXJkX2xpc3Q8aW50PiBp
bnRzKGEsIGEgKyAzKTsKICAgRVhQRUNUX0VRKCJ7IDksIDIsIDggfSIsIFByaW50KGludHMpKTsK
IH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCiAKIFRFU1QoUHJpbnRT
dGxDb250YWluZXJUZXN0LCBQYWlyKSB7CiAgIHBhaXI8Y29uc3QgYm9vbCwgaW50PiBwKHRydWUs
IDUpOwpAQCAtOTkxLDY3ICsxMTkwLDYgQEAgVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIENv
bnN0SXRlcmF0b3IpIHsKICAgRVhQRUNUX0VRKCIxLWJ5dGUgb2JqZWN0IDwwMD4iLCBQcmludChp
dCkpOwogfQogCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotLy8gVGVzdHMgcHJpbnRpbmcgOjpz
dGQ6OnRyMTo6dHVwbGVzLgotCi0vLyBUdXBsZXMgb2YgdmFyaW91cyBhcml0aWVzLgotVEVTVChQ
cmludFRyMVR1cGxlVGVzdCwgVmFyaW91c1NpemVzKSB7Ci0gIDo6c3RkOjp0cjE6OnR1cGxlPD4g
dDA7Ci0gIEVYUEVDVF9FUSgiKCkiLCBQcmludCh0MCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxl
PGludD4gdDEoNSk7Ci0gIEVYUEVDVF9FUSgiKDUpIiwgUHJpbnQodDEpKTsKLQotICA6OnN0ZDo6
dHIxOjp0dXBsZTxjaGFyLCBib29sPiB0MignYScsIHRydWUpOwotICBFWFBFQ1RfRVEoIignYScg
KDk3LCAweDYxKSwgdHJ1ZSkiLCBQcmludCh0MikpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJv
b2wsIGludCwgaW50PiB0MyhmYWxzZSwgMiwgMyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAz
KSIsIFByaW50KHQzKSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGlu
dD4gdDQoZmFsc2UsIDIsIDMsIDQpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCkiLCBQ
cmludCh0NCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJv
b2w+IHQ1KGZhbHNlLCAyLCAzLCA0LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMs
IDQsIHRydWUpIiwgUHJpbnQodDUpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQs
IGludCwgaW50LCBib29sLCBpbnQ+IHQ2KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAgRVhQ
RUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6OnN0
ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBpbnQsIGludD4gdDcoCi0g
ICAgICBmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNyk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAy
LCAzLCA0LCB0cnVlLCA2LCA3KSIsIFByaW50KHQ3KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8
Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFs
c2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwg
MywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSkiLCBQcmludCh0OCkpOwotCi0gIDo6c3RkOjp0cjE6OnR1
cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50LCBib29sLCBpbnQ+IHQ5KAot
ICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRydWUsIDkpOwotICBFWFBFQ1RfRVEo
IihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSwgOSkiLCBQcmludCh0OSkpOwotCi0g
IGNvbnN0IGNoYXIqIGNvbnN0IHN0ciA9ICI4IjsKLSAgLy8gVkMrKyAyMDEwJ3MgaW1wbGVtZW50
YXRpb24gb2YgdHVwbGUgb2YgQysrMHggaXMgZGVmaWNpZW50LCByZXF1aXJpbmcKLSAgLy8gYW4g
ZXhwbGljaXQgdHlwZSBjYXN0IG9mIE5VTEwgdG8gYmUgdXNlZC4KLSAgOjpzdGQ6OnRyMTo6dHVw
bGU8Ym9vbCwgY2hhciwgc2hvcnQsIHRlc3Rpbmc6OmludGVybmFsOjpJbnQzMiwgIC8vIE5PTElO
VAotICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6SW50NjQsIGZsb2F0LCBk
b3VibGUsIGNvbnN0IGNoYXIqLCB2b2lkKiwKLSAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJp
bmc+Ci0gICAgICB0MTAoZmFsc2UsICdhJywgc3RhdGljX2Nhc3Q8c2hvcnQ+KDMpLCA0LCA1LCAx
LjVGLCAtMi41LCBzdHIsICAvLyBOT0xJTlQKLSAgICAgICAgICBJbXBsaWNpdENhc3RfPHZvaWQq
PihOVUxMKSwgIjEwIik7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywg
NCwgNSwgMS41LCAtMi41LCAiICsgUHJpbnRQb2ludGVyKHN0cikgKwotICAgICAgICAgICAgIiBw
b2ludGluZyB0byBcIjhcIiwgTlVMTCwgXCIxMFwiKSIsCi0gICAgICAgICAgICBQcmludCh0MTAp
KTsKLX0KLQotLy8gTmVzdGVkIHR1cGxlcy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIE5lc3Rl
ZFR1cGxlKSB7Ci0gIDo6c3RkOjp0cjE6OnR1cGxlPCA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQsIGJv
b2w+LCBjaGFyPiBuZXN0ZWQoCi0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDUsIHRydWUp
LCAnYScpOwotICBFWFBFQ1RfRVEoIigoNSwgdHJ1ZSksICdhJyAoOTcsIDB4NjEpKSIsIFByaW50
KG5lc3RlZCkpOwotfQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdU
RVNUX0hBU19TVERfVFVQTEVfCiAvLyBUZXN0cyBwcmludGluZyA6OnN0ZDo6dHVwbGVzLgogCiAv
LyBUdXBsZXMgb2YgdmFyaW91cyBhcml0aWVzLgpAQCAtMTA3MSwzMiArMTIwOSwxMSBAQCBURVNU
KFByaW50U3RkVHVwbGVUZXN0LCBWYXJpb3VzU2l6ZXMpIHsKICAgOjpzdGQ6OnR1cGxlPGJvb2ws
IGludCwgaW50LCBpbnQ+IHQ0KGZhbHNlLCAyLCAzLCA0KTsKICAgRVhQRUNUX0VRKCIoZmFsc2Us
IDIsIDMsIDQpIiwgUHJpbnQodDQpKTsKIAotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQs
IGludCwgYm9vbD4gdDUoZmFsc2UsIDIsIDMsIDQsIHRydWUpOwotICBFWFBFQ1RfRVEoIihmYWxz
ZSwgMiwgMywgNCwgdHJ1ZSkiLCBQcmludCh0NSkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBp
bnQsIGludCwgaW50LCBib29sLCBpbnQ+IHQ2KGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2KTsKLSAg
RVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYpIiwgUHJpbnQodDYpKTsKLQotICA6
OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQ+IHQ3KAotICAg
ICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwg
MywgNCwgdHJ1ZSwgNiwgNykiLCBQcmludCh0NykpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBp
bnQsIGludCwgaW50LCBib29sLCBpbnQsIGludCwgYm9vbD4gdDgoCi0gICAgICBmYWxzZSwgMiwg
MywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0
cnVlLCA2LCA3LCB0cnVlKSIsIFByaW50KHQ4KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGlu
dCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50LCBib29sLCBpbnQ+IHQ5KAotICAgICAgZmFsc2Us
IDIsIDMsIDQsIHRydWUsIDYsIDcsIHRydWUsIDkpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwg
MywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSwgOSkiLCBQcmludCh0OSkpOwotCiAgIGNvbnN0IGNoYXIq
IGNvbnN0IHN0ciA9ICI4IjsKLSAgLy8gVkMrKyAyMDEwJ3MgaW1wbGVtZW50YXRpb24gb2YgdHVw
bGUgb2YgQysrMHggaXMgZGVmaWNpZW50LCByZXF1aXJpbmcKLSAgLy8gYW4gZXhwbGljaXQgdHlw
ZSBjYXN0IG9mIE5VTEwgdG8gYmUgdXNlZC4KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGNoYXIsIHNo
b3J0LCB0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzIsICAvLyBOT0xJTlQKLSAgICAgICAgICAgICAg
IHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2NCwgZmxvYXQsIGRvdWJsZSwgY29uc3QgY2hhciosIHZv
aWQqLAotICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc+CisgIDo6c3RkOjp0dXBsZTxib29sLCBj
aGFyLCBzaG9ydCwgaW50MzJfdCwgaW50NjRfdCwgZmxvYXQsIGRvdWJsZSwgIC8vIE5PTElOVAor
ICAgICAgICAgICAgICAgY29uc3QgY2hhciosIHZvaWQqLCBzdGQ6OnN0cmluZz4KICAgICAgIHQx
MChmYWxzZSwgJ2EnLCBzdGF0aWNfY2FzdDxzaG9ydD4oMyksIDQsIDUsIDEuNUYsIC0yLjUsIHN0
ciwgIC8vIE5PTElOVAotICAgICAgICAgIEltcGxpY2l0Q2FzdF88dm9pZCo+KE5VTEwpLCAiMTAi
KTsKKyAgICAgICAgICBudWxscHRyLCAiMTAiKTsKICAgRVhQRUNUX0VRKCIoZmFsc2UsICdhJyAo
OTcsIDB4NjEpLCAzLCA0LCA1LCAxLjUsIC0yLjUsICIgKyBQcmludFBvaW50ZXIoc3RyKSArCiAg
ICAgICAgICAgICAiIHBvaW50aW5nIHRvIFwiOFwiLCBOVUxMLCBcIjEwXCIpIiwKICAgICAgICAg
ICAgIFByaW50KHQxMCkpOwpAQCAtMTEwOSwxMyArMTIyNiwyNyBAQCBURVNUKFByaW50U3RkVHVw
bGVUZXN0LCBOZXN0ZWRUdXBsZSkgewogICBFWFBFQ1RfRVEoIigoNSwgdHJ1ZSksICdhJyAoOTcs
IDB4NjEpKSIsIFByaW50KG5lc3RlZCkpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hY
MTEKLQotI2lmIEdURVNUX0xBTkdfQ1hYMTEKIFRFU1QoUHJpbnROdWxscHRyVCwgQmFzaWMpIHsK
ICAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludChudWxscHRyKSk7CiB9Ci0jZW5kaWYgIC8v
IEdURVNUX0xBTkdfQ1hYMTEKKworVEVTVChQcmludFJlZmVyZW5jZVdyYXBwZXIsIFByaW50YWJs
ZSkgeworICBpbnQgeCA9IDU7CisgIEVYUEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJngpICsg
IiA1IiwgUHJpbnQoc3RkOjpyZWYoeCkpKTsKKyAgRVhQRUNUX0VRKCJAIiArIFByaW50UG9pbnRl
cigmeCkgKyAiIDUiLCBQcmludChzdGQ6OmNyZWYoeCkpKTsKK30KKworVEVTVChQcmludFJlZmVy
ZW5jZVdyYXBwZXIsIFVucHJpbnRhYmxlKSB7CisgIDo6Zm9vOjpVbnByaW50YWJsZUluRm9vIHVw
OworICBFWFBFQ1RfRVEoCisgICAgICAiQCIgKyBQcmludFBvaW50ZXIoJnVwKSArCisgICAgICAg
ICAgIiAxNi1ieXRlIG9iamVjdCA8RUYtMTIgMDAtMDAgMzQtQUIgMDAtMDAgMDAtMDAgMDAtMDAg
MDAtMDAgMDAtMDA+IiwKKyAgICAgIFByaW50KHN0ZDo6cmVmKHVwKSkpOworICBFWFBFQ1RfRVEo
CisgICAgICAiQCIgKyBQcmludFBvaW50ZXIoJnVwKSArCisgICAgICAgICAgIiAxNi1ieXRlIG9i
amVjdCA8RUYtMTIgMDAtMDAgMzQtQUIgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDAgMDAtMDA+IiwK
KyAgICAgIFByaW50KHN0ZDo6Y3JlZih1cCkpKTsKK30KIAogLy8gVGVzdHMgcHJpbnRpbmcgdXNl
ci1kZWZpbmVkIHVucHJpbnRhYmxlIHR5cGVzLgogCkBAIC0xMTY0LDYgKzEyOTUsMjAgQEAgVEVT
VChQcmludFN0cmVhbWFibGVUeXBlVGVzdCwgVGVtcGxhdGVUeXBlSW5Vc2VyTmFtZXNwYWNlKSB7
CiAgICAgICAgICAgICBQcmludCg6OmZvbzo6U3RyZWFtYWJsZVRlbXBsYXRlSW5Gb288aW50Pigp
KSk7CiB9CiAKK1RFU1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3QsIFR5cGVJblVzZXJOYW1lc3Bh
Y2VXaXRoVGVtcGxhdGVkU3RyZWFtT3BlcmF0b3IpIHsKKyAgRVhQRUNUX0VRKCJUZW1wbGF0ZWRT
dHJlYW1hYmxlSW5Gb28iLAorICAgICAgICAgICAgUHJpbnQoOjpmb286OlRlbXBsYXRlZFN0cmVh
bWFibGVJbkZvbygpKSk7Cit9CisKK1RFU1QoUHJpbnRTdHJlYW1hYmxlVHlwZVRlc3QsIFN1YmNs
YXNzVXNlc1N1cGVyY2xhc3NTdHJlYW1PcGVyYXRvcikgeworICBQYXJlbnRDbGFzcyBwYXJlbnQ7
CisgIENoaWxkQ2xhc3NXaXRoU3RyZWFtT3BlcmF0b3IgY2hpbGRfc3RyZWFtOworICBDaGlsZENs
YXNzV2l0aG91dFN0cmVhbU9wZXJhdG9yIGNoaWxkX25vX3N0cmVhbTsKKyAgRVhQRUNUX0VRKCJQ
YXJlbnRDbGFzcyIsIFByaW50KHBhcmVudCkpOworICBFWFBFQ1RfRVEoIkNoaWxkQ2xhc3NXaXRo
U3RyZWFtT3BlcmF0b3IiLCBQcmludChjaGlsZF9zdHJlYW0pKTsKKyAgRVhQRUNUX0VRKCJQYXJl
bnRDbGFzcyIsIFByaW50KGNoaWxkX25vX3N0cmVhbSkpOworfQorCiAvLyBUZXN0cyBwcmludGlu
ZyBhIHVzZXItZGVmaW5lZCByZWN1cnNpdmUgY29udGFpbmVyIHR5cGUgdGhhdCBoYXMgYSA8PAog
Ly8gb3BlcmF0b3IuCiBURVNUKFByaW50U3RyZWFtYWJsZVR5cGVUZXN0LCBQYXRoTGlrZUluVXNl
ck5hbWVzcGFjZSkgewpAQCAtMTMyMSwyMSArMTQ2Niw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhclBvaW50ZXJWc1BvaW50ZXIpIHsK
IC8vIFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIHBvaW50ZXIgd2hlbiBpdCdzIGNvbXBhcmVkIHRv
IGEgc3RyaW5nIG9iamVjdC4KIC8vIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByaW50IHRoZSBj
aGFyIHBvaW50ZXIgYXMgYSBDIHN0cmluZy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5H
Ci0vLyBjaGFyIHBvaW50ZXIgdnMgOjpzdHJpbmcKLVRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZh
aWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyUG9pbnRlclZzU3RyaW5nKSB7Ci0gIGNvbnN0
IGNoYXIqIHMgPSAiaGVsbG8gXCJ3b3JsZCI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoZWxsbyBcXFwi
d29ybGRcIiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAg
ICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjpzdHJpbmco
KSkuY19zdHIoKSk7Ci0KLSAgLy8gY2hhcioKLSAgY2hhciBzdHJbXSA9ICJoaVwxIjsKLSAgY2hh
ciogcCA9IHN0cjsKLSAgRVhQRUNUX1NUUkVRKCJcImhpXFx4MVwiIiwgIC8vIFRoZSBzdHJpbmcg
Y29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBh
cmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OnN0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgot
CiAvLyBjaGFyIHBvaW50ZXIgdnMgc3RkOjpzdHJpbmcKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNv
bkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyUG9pbnRlclZzU3RkU3RyaW5nKSB7CiAg
IGNvbnN0IGNoYXIqIHMgPSAiaGVsbG8gXCJ3b3JsZCI7CkBAIC0xMzQ5LDIxICsxNDc5LDYgQEAg
VEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJQ
b2ludGVyVnNTdGRTdHJpbmcpIHsKICAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZShwLCA6OnN0ZDo6c3RyaW5nKCkpLmNfc3RyKCkpOwogfQogCi0jaWYgR1RF
U1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0vLyB3Y2hhcl90IHBvaW50ZXIgdnMgOjp3c3RyaW5nCi1U
RVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQ
b2ludGVyVnNXU3RyaW5nKSB7Ci0gIGNvbnN0IHdjaGFyX3QqIHMgPSBMImhpIFwid29ybGQiOwot
ICBFWFBFQ1RfU1RSRVEoIkxcImhpIFxcXCJ3b3JsZFwiIiwgIC8vIFRoZSBzdHJpbmcgY29udGVu
dCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZShzLCA6OndzdHJpbmcoKSkuY19zdHIoKSk7Ci0KLSAgLy8gd2NoYXJfdCoK
LSAgd2NoYXJfdCBzdHJbXSA9IEwiaGlcMSI7Ci0gIHdjaGFyX3QqIHAgPSBzdHI7Ci0gIEVYUEVD
VF9TVFJFUSgiTFwiaGlcXHgxXCIiLCAgLy8gVGhlIHN0cmluZyBjb250ZW50IHNob3VsZCBiZSBl
c2NhcGVkLgotICAgICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdl
KHAsIDo6d3N0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCiAjaWYgR1RFU1RfSEFTX1NU
RF9XU1RSSU5HCiAvLyB3Y2hhcl90IHBvaW50ZXIgdnMgc3RkOjp3c3RyaW5nCiBURVNUKEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNT
dGRXU3RyaW5nKSB7CkBAIC0xMzg2LDcgKzE1MDEsNyBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlz
b25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNTdGRXU3RyaW5nKSB7
CiAvLyBjaGFyIGFycmF5IHZzIHBvaW50ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1
cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyQXJyYXlWc1BvaW50ZXIpIHsKICAgY2hhciBzdHJb
XSA9ICJoaSBcIndvcmxkXCIiOwotICBjaGFyKiBwID0gTlVMTDsKKyAgY2hhciogcCA9IG51bGxw
dHI7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIoc3RyKSwKICAgICAgICAgICAgIEZvcm1hdEZv
ckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIHApLmNfc3RyKCkpOwogfQpAQCAtMTQwMSw3
ICsxNTE2LDcgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBX
b3Jrc0ZvckNoYXJBcnJheVZzQ2hhckFycmF5KSB7CiAvLyB3Y2hhcl90IGFycmF5IHZzIHBvaW50
ZXIKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JX
Q2hhckFycmF5VnNQb2ludGVyKSB7CiAgIHdjaGFyX3Qgc3RyW10gPSBMImhpIFwid29ybGRcIiI7
Ci0gIHdjaGFyX3QqIHAgPSBOVUxMOworICB3Y2hhcl90KiBwID0gbnVsbHB0cjsKICAgRVhQRUNU
X0VRKFByaW50UG9pbnRlcihzdHIpLAogICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZh
aWx1cmVNZXNzYWdlKHN0ciwgcCkuY19zdHIoKSk7CiB9CkBAIC0xNDE2LDE2ICsxNTMxLDYgQEAg
VEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFy
QXJyYXlWc1dDaGFyQXJyYXkpIHsKIC8vIFRlc3RzIGZvcm1hdHRpbmcgYSBjaGFyIGFycmF5IHdo
ZW4gaXQncyBjb21wYXJlZCB3aXRoIGEgc3RyaW5nIG9iamVjdC4KIC8vIEluIHRoaXMgY2FzZSB3
ZSB3YW50IHRvIHByaW50IHRoZSBhcnJheSBhcyBhIEMgc3RyaW5nLgogCi0jaWYgR1RFU1RfSEFT
X0dMT0JBTF9TVFJJTkcKLS8vIGNoYXIgYXJyYXkgdnMgc3RyaW5nCi1URVNUKEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdHJpbmcpIHsK
LSAgY29uc3QgY2hhciBzdHJbXSA9ICJoaSBcIndcMHJsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJc
ImhpIFxcXCJ3XCIiLCAgLy8gVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVtYmVkZGVkIE5VTCB0ZXJtaW5hdGVzIHRoZSBz
dHJpbmcuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uo
c3RyLCA6OnN0cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCiAvLyBjaGFyIGFycmF5IHZz
IHN0ZDo6c3RyaW5nCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3Qs
IFdvcmtzRm9yQ2hhckFycmF5VnNTdGRTdHJpbmcpIHsKICAgY29uc3QgY2hhciBzdHJbXSA9ICJo
aSBcIndvcmxkXCIiOwpAQCAtMTQzMywxNSArMTUzOCw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyQXJyYXlWc1N0ZFN0cmluZykgewog
ICAgICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpz
dGQ6OnN0cmluZygpKS5jX3N0cigpKTsKIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklO
RwotLy8gd2NoYXJfdCBhcnJheSB2cyB3c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25G
YWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJBcnJheVZzV1N0cmluZykgewotICBjb25z
dCB3Y2hhcl90IHN0cltdID0gTCJoaSBcIndvcmxkXCIiOwotICBFWFBFQ1RfU1RSRVEoIkxcImhp
IFxcXCJ3b3JsZFxcXCJcIiIsICAvLyBUaGUgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAg
ICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6d3N0
cmluZygpKS5jX3N0cigpKTsKLX0KLSNlbmRpZgotCiAjaWYgR1RFU1RfSEFTX1NURF9XU1RSSU5H
CiAvLyB3Y2hhcl90IGFycmF5IHZzIHN0ZDo6d3N0cmluZwogVEVTVChGb3JtYXRGb3JDb21wYXJp
c29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyQXJyYXlWc1N0ZFdTdHJpbmcpIHsK
QEAgLTE1MTYsNiArMTYxMiw2MSBAQCBURVNUKFByaW50VG9TdHJpbmdUZXN0LCBXb3Jrc0ZvckNo
YXJBcnJheVdpdGhFbWJlZGRlZE51bCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4g
ICAgQXMgVGV4dDogXCJGcm9tIMOkIOKAlCDhupFcIiIpOwogfQogCisjaWYgR1RFU1RfSEFTX1JU
VEkKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgUHJpbnRUb1N0cmluZ1Rlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdCB7CisgcHVibGljOgorICB1c2luZyBUZXN0VHlwZSA9IFQ7Cit9Owor
CitzdHJ1Y3QgUHJpbnRCYXNlIHsKKyAgdmlydHVhbCB+UHJpbnRCYXNlKCkgPSBkZWZhdWx0Owor
fTsKK3N0cnVjdCBQcmludERlcml2ZWQgOiBQcmludEJhc2Uge307CisKK3VzaW5nIFByaW50VG9T
dHJpbmdUZXN0VHlwZXMgPQorICAgIHRlc3Rpbmc6OlR5cGVzPHZvaWQsIGludCwgY29uc3Qgdm9s
YXRpbGUgaW50KiwgUHJpbnRCYXNlLCBQcmludERlcml2ZWQ+OworVFlQRURfVEVTVF9TVUlURShQ
cmludFRvU3RyaW5nVGVzdCwgUHJpbnRUb1N0cmluZ1Rlc3RUeXBlcyk7CisKKy8vIFJldHVybnMg
YHRydWVgIGlmIGBoYXlzdGFja2AgY29udGFpbnMgYG5lZWRsZWAuCisvLworLy8gRklYTUU6IFJl
cGxhY2Ugd2l0aCBgRVhQRUNUX1RIQVQoaGF5c3RhY2ssIEhhc1N1YnN0cihuZWVkbGUpKWAgb25j
ZQorLy8gR29vZ2xlVGVzdCBzdGFydHMgZGVwZW5kaW5nIG9uIEdvb2dsZU1vY2suCitib29sIENv
bnRhaW5zU3Vic3RyKGNvbnN0IHN0ZDo6c3RyaW5nJiBoYXlzdGFjaywgY29uc3Qgc3RkOjpzdHJp
bmcmIG5lZWRsZSkgeworICByZXR1cm4gaGF5c3RhY2suZmluZChuZWVkbGUpICE9IHN0ZDo6c3Ry
aW5nOjpucG9zOworfQorCitUWVBFRF9URVNUKFByaW50VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05h
bWVXaXRoVHlwZUluZm9BbmRUeXBlSW5kZXgpIHsKKyAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYg
aW5mbyA9IHR5cGVpZCh0eXBlbmFtZSBUZXN0Rml4dHVyZTo6VGVzdFR5cGUpOworICBTQ09QRURf
VFJBQ0UoaW5mby5uYW1lKCkpOworICBFWFBFQ1RfVFJVRShDb250YWluc1N1YnN0cihQcmludFRv
U3RyaW5nKGluZm8pLCBpbmZvLm5hbWUoKSkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIENvbnRh
aW5zU3Vic3RyKFByaW50VG9TdHJpbmcoOjpzdGQ6OnR5cGVfaW5kZXh7aW5mb30pLCBpbmZvLm5h
bWUoKSkpOworfQorCitURVNUKFByaW50VG9TdHJpbmdUZXN0LCBJbmNsdWRlc05hbWVXaXRoVHlw
ZUluZm9BbmRUeXBlSW5kZXhWaWFCYXNlUmVmKSB7CisgIFByaW50RGVyaXZlZCBkZXJpdmVkOwor
ICBQcmludEJhc2UmIGJhc2UgPSBkZXJpdmVkOworCisgIHsKKyAgICBjb25zdCA6OnN0ZDo6dHlw
ZV9pbmZvJiBkZXJpdmVkX2luZm8gPSB0eXBlaWQoZGVyaXZlZCk7CisgICAgU0NPUEVEX1RSQUNF
KGRlcml2ZWRfaW5mby5uYW1lKCkpOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWlu
c1N1YnN0cihQcmludFRvU3RyaW5nKGRlcml2ZWRfaW5mbyksIGRlcml2ZWRfaW5mby5uYW1lKCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShDb250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKDo6c3RkOjp0
eXBlX2luZGV4e2Rlcml2ZWRfaW5mb30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlcml2ZWRfaW5mby5uYW1lKCkpKTsKKyAgfQorICB7CisgICAgY29uc3QgOjpzdGQ6OnR5cGVf
aW5mbyYgYmFzZV9yZWZfaW5mbyA9IHR5cGVpZChiYXNlKTsKKyAgICBTQ09QRURfVFJBQ0UoYmFz
ZV9yZWZfaW5mby5uYW1lKCkpOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBDb250YWluc1N1
YnN0cihQcmludFRvU3RyaW5nKGJhc2VfcmVmX2luZm8pLCBiYXNlX3JlZl9pbmZvLm5hbWUoKSkp
OworICAgIEVYUEVDVF9UUlVFKENvbnRhaW5zU3Vic3RyKFByaW50VG9TdHJpbmcoOjpzdGQ6OnR5
cGVfaW5kZXh7YmFzZV9yZWZfaW5mb30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJhc2VfcmVmX2luZm8ubmFtZSgpKSk7CisgIH0KK30KKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JU
VEkKKwogVEVTVChJc1ZhbGlkVVRGOFRlc3QsIElsbEZvcm1lZFVURjgpIHsKICAgLy8gVGhlIGZv
bGxvd2luZyB0ZXN0IHN0cmluZ3MgYXJlIGlsbC1mb3JtZWQgVVRGLTggYW5kIGFyZSBwcmludGVk
CiAgIC8vIGFzIGhleCBvbmx5IChvciBBU0NJSSwgaW4gY2FzZSBvZiBBU0NJSSBieXRlcykgYmVj
YXVzZSBJc1ZhbGlkVVRGOCgpIGlzCkBAIC0xNjAyLDcgKzE3NTMsNyBAQCBURVNUKFVuaXZlcnNh
bFRlcnNlUHJpbnRUZXN0LCBXb3Jrc0ZvckNTdHJpbmcpIHsKICAgVW5pdmVyc2FsVGVyc2VQcmlu
dChzMiwgJnNzMik7CiAgIEVYUEVDVF9FUSgiXCJhYmNcIiIsIHNzMi5zdHIoKSk7CiAKLSAgY29u
c3QgY2hhciogczMgPSBOVUxMOworICBjb25zdCBjaGFyKiBzMyA9IG51bGxwdHI7CiAgIDo6c3Rk
OjpzdHJpbmdzdHJlYW0gc3MzOwogICBVbml2ZXJzYWxUZXJzZVByaW50KHMzLCAmc3MzKTsKICAg
RVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0cigpKTsKQEAgLTE2MjEsNiArMTc3MiwxMyBAQCBURVNU
KFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JSZWZlcmVuY2UpIHsKICAgRVhQRUNUX0VRKCIx
MjMiLCBzcy5zdHIoKSk7CiB9CiAKK1RFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvclBh
aXJXaXRoQ29uc3QpIHsKKyAgc3RkOjpwYWlyPGNvbnN0IFdyYXBwZXI8c3RkOjpzdHJpbmc+LCBp
bnQ+IHAoV3JhcHBlcjxzdGQ6OnN0cmluZz4oImFiYyIpLCAxKTsKKyAgOjpzdGQ6OnN0cmluZ3N0
cmVhbSBzczsKKyAgVW5pdmVyc2FsUHJpbnQocCwgJnNzKTsKKyAgRVhQRUNUX0VRKCIoV3JhcHBl
cihcImFiY1wiKSwgMSkiLCBzcy5zdHIoKSk7Cit9CisKIFRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0
LCBXb3Jrc0ZvckNTdHJpbmcpIHsKICAgY29uc3QgY2hhciogczEgPSAiYWJjIjsKICAgOjpzdGQ6
OnN0cmluZ3N0cmVhbSBzczE7CkBAIC0xNjMyLDcgKzE3OTAsNyBAQCBURVNUKFVuaXZlcnNhbFBy
aW50VGVzdCwgV29ya3NGb3JDU3RyaW5nKSB7CiAgIFVuaXZlcnNhbFByaW50KHMyLCAmc3MyKTsK
ICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihzMikgKyAiIHBvaW50aW5nIHRvIFwiYWJjXCIiLCBz
dGQ6OnN0cmluZyhzczIuc3RyKCkpKTsKIAotICBjb25zdCBjaGFyKiBzMyA9IE5VTEw7CisgIGNv
bnN0IGNoYXIqIHMzID0gbnVsbHB0cjsKICAgOjpzdGQ6OnN0cmluZ3N0cmVhbSBzczM7CiAgIFVu
aXZlcnNhbFByaW50KHMzLCAmc3MzKTsKICAgRVhQRUNUX0VRKCJOVUxMIiwgc3MzLnN0cigpKTsK
QEAgLTE2NTAsNDIgKzE4MDgsNjMgQEAgVEVTVChVbml2ZXJzYWxQcmludFRlc3QsIFdvcmtzRm9y
Q2hhckFycmF5KSB7CiAgIEVYUEVDVF9FUSgiXCJcXFwiTGluZVxcMCAxXFxcIlxcbkxpbmUgMlwi
Iiwgc3MyLnN0cigpKTsKIH0KIAotI2lmIEdURVNUX0hBU19UUjFfVFVQTEUKLQotVEVTVChVbml2
ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFRyMSwgUHJpbnRzRW1w
dHlUdXBsZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZp
ZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2VfdHVwbGUoKSk7Ci0gIEVYUEVD
VF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7Ci19Ci0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1
cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c09uZVR1cGxlKSB7Ci0gIFN0cmlu
Z3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzKAotICAg
ICAgOjpzdGQ6OnRyMTo6bWFrZV90dXBsZSgxKSk7Ci0gIEFTU0VSVF9FUSgxdSwgcmVzdWx0LnNp
emUoKSk7Ci0gIEVYUEVDVF9FUSgiMSIsIHJlc3VsdFswXSk7Ci19CitURVNUKFVuaXZlcnNhbFBy
aW50VGVzdCwgSW5jb21wbGV0ZVR5cGUpIHsKKyAgc3RydWN0IEluY29tcGxldGU7CisgIGNoYXIg
c29tZV9vYmplY3QgPSAwOworICBFWFBFQ1RfRVEoIihpbmNvbXBsZXRlIHR5cGUpIiwKKyAgICAg
ICAgICAgIFByaW50VG9TdHJpbmcocmVpbnRlcnByZXRfY2FzdDxJbmNvbXBsZXRlJj4oc29tZV9v
YmplY3QpKSk7Cit9CisKK1RFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBTbWFydFBvaW50ZXJzKSB7
CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8
aW50PigpKSk7CisgIHN0ZDo6dW5pcXVlX3B0cjxpbnQ+IHAobmV3IGludCgxNykpOworICBFWFBF
Q1RfRVEoIihwdHIgPSAiICsgUHJpbnRQb2ludGVyKHAuZ2V0KCkpICsgIiwgdmFsdWUgPSAxNyki
LAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhwKSk7CisgIHN0ZDo6dW5pcXVlX3B0cjxpbnRb
XT4gcDIobmV3IGludFsyXSk7CisgIEVYUEVDVF9FUSgiKCIgKyBQcmludFBvaW50ZXIocDIuZ2V0
KCkpICsgIikiLCBQcmludFRvU3RyaW5nKHAyKSk7CisKKyAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxpbnQ+KCkpKTsKKyAgc3RkOjpzaGFyZWRf
cHRyPGludD4gcDMobmV3IGludCgxOTc5KSk7CisgIEVYUEVDVF9FUSgiKHB0ciA9ICIgKyBQcmlu
dFBvaW50ZXIocDMuZ2V0KCkpICsgIiwgdmFsdWUgPSAxOTc5KSIsCisgICAgICAgICAgICBQcmlu
dFRvU3RyaW5nKHAzKSk7CisjaWYgX19jcHBfbGliX3NoYXJlZF9wdHJfYXJyYXlzID49IDIwMTYx
MUwKKyAgc3RkOjpzaGFyZWRfcHRyPGludFtdPiBwNChuZXcgaW50WzJdKTsKKyAgRVhQRUNUX0VR
KCIoIiArIFByaW50UG9pbnRlcihwNC5nZXQoKSkgKyAiKSIsIFByaW50VG9TdHJpbmcocDQpKTsK
KyNlbmRpZgogCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rl
c3RXaXRoVHIxLCBQcmludHNUd29UdXBsZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNh
bFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2Vf
dHVwbGUoMSwgJ2EnKSk7Ci0gIEFTU0VSVF9FUSgydSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVD
VF9FUSgiMSIsIHJlc3VsdFswXSk7Ci0gIEVYUEVDVF9FUSgiJ2EnICg5NywgMHg2MSkiLCByZXN1
bHRbMV0pOwotfQorICAvLyBtb2RpZmllcnMKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0
cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBpbnQ+KCkpKTsKKyAgRVhQ
RUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2xhdGls
ZSBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjx2b2xhdGlsZSBjb25zdCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0
cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxpbnRbXT4oKSkpOworICBFWFBFQ1Rf
RVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IGludFtd
PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1
ZV9wdHI8dm9sYXRpbGUgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLAorICAg
ICAgICAgICAgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgY29uc3QgaW50
W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjxpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5n
KHN0ZDo6c2hhcmVkX3B0cjxjb25zdCBpbnQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBpbnQ+KCkpKTsKKyAgRVhQ
RUNUX0VRKCIobnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGls
ZSBjb25zdCBpbnQ+KCkpKTsKKyNpZiBfX2NwcF9saWJfc2hhcmVkX3B0cl9hcnJheXMgPj0gMjAx
NjExTAorICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRf
cHRyPGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhz
dGQ6OnNoYXJlZF9wdHI8Y29uc3QgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjx2b2xhdGlsZSBpbnRbXT4oKSkpOworICBF
WFBFQ1RfRVEoIihudWxscHRyKSIsCisgICAgICAgICAgICBQcmludFRvU3RyaW5nKHN0ZDo6c2hh
cmVkX3B0cjx2b2xhdGlsZSBjb25zdCBpbnRbXT4oKSkpOworI2VuZGlmCiAKLVRFU1QoVW5pdmVy
c2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c1RlcnNl
bHkpIHsKLSAgY29uc3QgaW50IG4gPSAxOwotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNhbFRl
cnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6OnR1cGxlPGNv
bnN0IGludCYsIGNvbnN0IGNoYXIqPihuLCAiYSIpKTsKLSAgQVNTRVJUX0VRKDJ1LCByZXN1bHQu
c2l6ZSgpKTsKLSAgRVhQRUNUX0VRKCIxIiwgcmVzdWx0WzBdKTsKLSAgRVhQRUNUX0VRKCJcImFc
IiIsIHJlc3VsdFsxXSk7CisgIC8vIHZvaWQKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjx2b2lkLCB2b2lkICgqKSh2b2lkKik+KAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCBudWxscHRyKSkpOworICBFWFBFQ1RfRVEo
IigiICsgUHJpbnRQb2ludGVyKHAuZ2V0KCkpICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0
cmluZygKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8dm9pZCwgdm9pZCAoKikodm9p
ZCopPihwLmdldCgpLCBbXSh2b2lkKikge30pKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwg
UHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9pZD4oKSkpOworICBFWFBFQ1RfRVEoIigi
ICsgUHJpbnRQb2ludGVyKHAuZ2V0KCkpICsgIikiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmlu
ZyhzdGQ6OnNoYXJlZF9wdHI8dm9pZD4ocC5nZXQoKSwgW10odm9pZCopIHt9KSkpOwogfQogCi0j
ZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQotI2lmIEdURVNUX0hBU19TVERfVFVQTEVf
Ci0KIFRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdzVGVzdFdpdGhT
dGQsIFByaW50c0VtcHR5VHVwbGUpIHsKICAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJz
ZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoOjpzdGQ6Om1ha2VfdHVwbGUoKSk7CiAgIEVYUEVD
VF9FUSgwdSwgcmVzdWx0LnNpemUoKSk7CkBAIC0xNzE1LDM0ICsxODk0LDEyNCBAQCBURVNUKFVu
aXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQcmludHNU
ZXJzZWx5KSB7CiAgIEVYUEVDVF9FUSgiXCJhXCIiLCByZXN1bHRbMV0pOwogfQogCi0jZW5kaWYg
IC8vIEdURVNUX0hBU19TVERfVFVQTEVfCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX0FOWQorY2xh
c3MgUHJpbnRBbnlUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7CisgcHJvdGVjdGVkOgor
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIHN0ZDo6c3RyaW5nIEV4cGVjdGVkVHlw
ZU5hbWUoKSB7CisjaWYgR1RFU1RfSEFTX1JUVEkKKyAgICByZXR1cm4gaW50ZXJuYWw6OkdldFR5
cGVOYW1lPFQ+KCk7CisjZWxzZQorICAgIHJldHVybiAiPHVua25vd25fdHlwZT4iOworI2VuZGlm
ICAvLyBHVEVTVF9IQVNfUlRUSQorICB9Cit9OworCitURVNUX0YoUHJpbnRBbnlUZXN0LCBFbXB0
eSkgeworICBpbnRlcm5hbDo6QW55IGFueTsKKyAgRVhQRUNUX0VRKCJubyB2YWx1ZSIsIFByaW50
VG9TdHJpbmcoYW55KSk7Cit9CisKK1RFU1RfRihQcmludEFueVRlc3QsIE5vbkVtcHR5KSB7Cisg
IGludGVybmFsOjpBbnkgYW55OworICBjb25zdGV4cHIgaW50IHZhbDEgPSAxMDsKKyAgY29uc3Qg
c3RkOjpzdHJpbmcgdmFsMiA9ICJjb250ZW50IjsKKworICBhbnkgPSB2YWwxOworICBFWFBFQ1Rf
RVEoInZhbHVlIG9mIHR5cGUgIiArIEV4cGVjdGVkVHlwZU5hbWU8aW50PigpLCBQcmludFRvU3Ry
aW5nKGFueSkpOwogCi0jaWYgR1RFU1RfSEFTX0FCU0wKKyAgYW55ID0gdmFsMjsKKyAgRVhQRUNU
X0VRKCJ2YWx1ZSBvZiB0eXBlICIgKyBFeHBlY3RlZFR5cGVOYW1lPHN0ZDo6c3RyaW5nPigpLAor
ICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhhbnkpKTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfSU5U
RVJOQUxfSEFTX0FOWQogCisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMCiBURVNUKFBy
aW50T3B0aW9uYWxUZXN0LCBCYXNpYykgewotICBhYnNsOjpvcHRpb25hbDxpbnQ+IHZhbHVlOwor
ICBpbnRlcm5hbDo6T3B0aW9uYWw8aW50PiB2YWx1ZTsKICAgRVhQRUNUX0VRKCIobnVsbG9wdCki
LCBQcmludFRvU3RyaW5nKHZhbHVlKSk7CiAgIHZhbHVlID0gezd9OwogICBFWFBFQ1RfRVEoIig3
KSIsIFByaW50VG9TdHJpbmcodmFsdWUpKTsKLSAgRVhQRUNUX0VRKCIoMS4xKSIsIFByaW50VG9T
dHJpbmcoYWJzbDo6b3B0aW9uYWw8ZG91YmxlPnsxLjF9KSk7Ci0gIEVYUEVDVF9FUSgiKFwiQVwi
KSIsIFByaW50VG9TdHJpbmcoYWJzbDo6b3B0aW9uYWw8c3RkOjpzdHJpbmc+eyJBIn0pKTsKKyAg
RVhQRUNUX0VRKCIoMS4xKSIsIFByaW50VG9TdHJpbmcoaW50ZXJuYWw6Ok9wdGlvbmFsPGRvdWJs
ZT57MS4xfSkpOworICBFWFBFQ1RfRVEoIihcIkFcIikiLCBQcmludFRvU3RyaW5nKGludGVybmFs
OjpPcHRpb25hbDxzdGQ6OnN0cmluZz57IkEifSkpOwogfQorI2VuZGlmICAvLyBHVEVTVF9JTlRF
Uk5BTF9IQVNfT1BUSU9OQUwKIAorI2lmIEdURVNUX0lOVEVSTkFMX0hBU19WQVJJQU5UCiBzdHJ1
Y3QgTm9uUHJpbnRhYmxlIHsKICAgdW5zaWduZWQgY2hhciBjb250ZW50cyA9IDE3OwogfTsKIAog
VEVTVChQcmludE9uZW9mVGVzdCwgQmFzaWMpIHsKLSAgdXNpbmcgVHlwZSA9IGFic2w6OnZhcmlh
bnQ8aW50LCBTdHJlYW1hYmxlSW5HbG9iYWwsIE5vblByaW50YWJsZT47Ci0gIEVYUEVDVF9FUSgi
KCdpbnQnIHdpdGggdmFsdWUgNykiLCBQcmludFRvU3RyaW5nKFR5cGUoNykpKTsKLSAgRVhQRUNU
X0VRKCIoJ1N0cmVhbWFibGVJbkdsb2JhbCcgd2l0aCB2YWx1ZSBTdHJlYW1hYmxlSW5HbG9iYWwp
IiwKKyAgdXNpbmcgVHlwZSA9IGludGVybmFsOjpWYXJpYW50PGludCwgU3RyZWFtYWJsZUluR2xv
YmFsLCBOb25QcmludGFibGU+OworICBFWFBFQ1RfRVEoIignaW50KGluZGV4ID0gMCknIHdpdGgg
dmFsdWUgNykiLCBQcmludFRvU3RyaW5nKFR5cGUoNykpKTsKKyAgRVhQRUNUX0VRKCIoJ1N0cmVh
bWFibGVJbkdsb2JhbChpbmRleCA9IDEpJyB3aXRoIHZhbHVlIFN0cmVhbWFibGVJbkdsb2JhbCki
LAogICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhUeXBlKFN0cmVhbWFibGVJbkdsb2JhbHt9KSkp
OwogICBFWFBFQ1RfRVEoCi0gICAgICAiKCd0ZXN0aW5nOjpndGVzdF9wcmludGVyc190ZXN0OjpO
b25QcmludGFibGUnIHdpdGggdmFsdWUgMS1ieXRlIG9iamVjdCAiCi0gICAgICAiPDExPikiLAor
ICAgICAgIigndGVzdGluZzo6Z3Rlc3RfcHJpbnRlcnNfdGVzdDo6Tm9uUHJpbnRhYmxlKGluZGV4
ID0gMiknIHdpdGggdmFsdWUgIgorICAgICAgIjEtYnl0ZSBvYmplY3QgPDExPikiLAogICAgICAg
UHJpbnRUb1N0cmluZyhUeXBlKE5vblByaW50YWJsZXt9KSkpOwogfQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfQUJTTAorI2VuZGlmICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAorbmFtZXNw
YWNlIHsKK2NsYXNzIHN0cmluZ19yZWY7CisKKy8qKgorICogVGhpcyBpcyBhIHN5bnRoZXRpYyBw
b2ludGVyIHRvIGEgZml4ZWQgc2l6ZSBzdHJpbmcuCisgKi8KK2NsYXNzIHN0cmluZ19wdHIgewor
IHB1YmxpYzoKKyAgc3RyaW5nX3B0cihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkgOiBk
YXRhXyhkYXRhKSwgc2l6ZV8oc2l6ZSkge30KKworICBzdHJpbmdfcHRyJiBvcGVyYXRvcisrKCkg
bm9leGNlcHQgeworICAgIGRhdGFfICs9IHNpemVfOworICAgIHJldHVybiAqdGhpczsKKyAgfQor
CisgIHN0cmluZ19yZWYgb3BlcmF0b3IqKCkgY29uc3Qgbm9leGNlcHQ7CisKKyBwcml2YXRlOgor
ICBjb25zdCBjaGFyKiBkYXRhXzsKKyAgc2l6ZV90IHNpemVfOworfTsKKworLyoqCisgKiBUaGlz
IGlzIGEgc3ludGhldGljIHJlZmVyZW5jZSBvZiBhIGZpeGVkIHNpemUgc3RyaW5nLgorICovCitj
bGFzcyBzdHJpbmdfcmVmIHsKKyBwdWJsaWM6CisgIHN0cmluZ19yZWYoY29uc3QgY2hhciogZGF0
YSwgc2l6ZV90IHNpemUpIDogZGF0YV8oZGF0YSksIHNpemVfKHNpemUpIHt9CisKKyAgc3RyaW5n
X3B0ciBvcGVyYXRvciYoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiB7ZGF0YV8sIHNpemVffTsg
fSAgLy8gTk9MSU5UCisKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGNoYXIqIHMpIGNvbnN0IG5v
ZXhjZXB0IHsKKyAgICBpZiAoc2l6ZV8gPiAwICYmIGRhdGFfW3NpemVfIC0gMV0gIT0gMCkgewor
ICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKGRhdGFfLCBzaXplXykgPT0gc3RkOjpzdHJpbmcocyk7
CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBzdGQ6OnN0cmluZyhkYXRhXykgPT0gc3RkOjpz
dHJpbmcocyk7CisgICAgfQorICB9CisKKyBwcml2YXRlOgorICBjb25zdCBjaGFyKiBkYXRhXzsK
KyAgc2l6ZV90IHNpemVfOworfTsKKworc3RyaW5nX3JlZiBzdHJpbmdfcHRyOjpvcGVyYXRvcioo
KSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiB7ZGF0YV8sIHNpemVffTsgfQorCitURVNUKHN0cmlu
Z19yZWYsIGNvbXBhcmUpIHsKKyAgY29uc3QgY2hhciogcyA9ICJhbGV4XDBkYXZpZGpvaG5cMCI7
CisgIHN0cmluZ19wdHIgcHRyKHMsIDUpOworICBFWFBFQ1RfRVEoKnB0ciwgImFsZXgiKTsKKyAg
RVhQRUNUX1RSVUUoKnB0ciA9PSAiYWxleCIpOworICArK3B0cjsKKyAgRVhQRUNUX0VRKCpwdHIs
ICJkYXZpZCIpOworICBFWFBFQ1RfVFJVRSgqcHRyID09ICJkYXZpZCIpOworICArK3B0cjsKKyAg
RVhQRUNUX0VRKCpwdHIsICJqb2huIik7Cit9CisKK30gIC8vIG5hbWVzcGFjZQogCiB9ICAvLyBu
YW1lc3BhY2UgZ3Rlc3RfcHJpbnRlcnNfdGVzdAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRl
c3RzdWl0ZS10ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXNldHVwdGVzdHN1aXRlLXRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgyMTYyZmM5OWY4YmJlY2Y0YThj
YWYyY2UwYTI5YmY2NGIzYzI0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0LnB5CkBAIC0wLDAgKzEs
NTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgMjAxOSwgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlZl
cmlmaWVzIHRoYXQgU2V0VXBUZXN0U3VpdGUgYW5kIFRlYXJEb3duVGVzdFN1aXRlIGVycm9ycyBh
cmUgbm90aWNlZC4iIiIKKworaW1wb3J0IGd0ZXN0X3Rlc3RfdXRpbHMKKworQ09NTUFORCA9IGd0
ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKAorICAgICdnb29nbGV0ZXN0LXNl
dHVwdGVzdHN1aXRlLXRlc3RfJykKKworCitjbGFzcyBHVGVzdFNldFVwVGVzdFN1aXRlVGVzdChn
dGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKKworICBkZWYgdGVzdFNldHVwRXJyb3JBbmRUZWFy
RG93bkVycm9yKHNlbGYpOgorICAgIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoQ09N
TUFORCkKKyAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAuZXhpdF9jb2RlLCAwLCBtc2c9cC5vdXRw
dXQpCisKKyAgICBzZWxmLmFzc2VydEluKAorICAgICAgICAnWyAgRkFJTEVEICBdIFNldHVwRmFp
bFRlc3Q6IFNldFVwVGVzdFN1aXRlIG9yIFRlYXJEb3duVGVzdFN1aXRlXG4nCisgICAgICAgICdb
ICBGQUlMRUQgIF0gVGVhckRvd25GYWlsVGVzdDogU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25U
ZXN0U3VpdGVcbicKKyAgICAgICAgJ1xuJworICAgICAgICAnIDIgRkFJTEVEIFRFU1QgU1VJVEVT
XG4nLAorICAgICAgICBwLm91dHB1dCkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAg
Z3Rlc3RfdGVzdF91dGlscy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNGJjNGVmNDQxZDliZTQ4MDJlMmMwMTBkZjhmMWMzZDk2ZGZhZjQwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNldHVw
dGVzdHN1aXRlLXRlc3RfLmNjCkBAIC0wLDAgKzEsNDkgQEAKKy8vIENvcHlyaWdodCAyMDA4LCBH
b29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKwor
Y2xhc3MgU2V0dXBGYWlsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3Rl
ZDoKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CisgICAgQVNTRVJUX0VRKCIiLCAi
U0VUX1VQX0ZBSUwiKTsKKyAgfQorfTsKKworVEVTVF9GKFNldHVwRmFpbFRlc3QsIE5vb3BQYXNz
aW5nVGVzdCkge30KKworY2xhc3MgVGVhckRvd25GYWlsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6
OlRlc3QgeworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7
CisgICAgQVNTRVJUX0VRKCIiLCAiVEVBUl9ET1dOX0ZBSUwiKTsKKyAgfQorfTsKKworVEVTVF9G
KFRlYXJEb3duRmFpbFRlc3QsIE5vb3BQYXNzaW5nVGVzdCkge30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKaW5k
ZXggMWZlNWY2YWJhMmE1ZTBmZmNhYjkxNWU0NjM4ZDIzZjU4Y2Y0OGZmMC4uNDUwNTY2M2FlNDMz
YzRmZDUzMjA1YzE2MGZiYzJhYjNlOGU2NmVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXNodWZmbGUtdGVzdF8uY2MKQEAgLTQxLDcg
KzQxLDYgQEAgdXNpbmcgOjp0ZXN0aW5nOjpUZXN0OwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0RXZl
bnRMaXN0ZW5lcnM7CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RJbmZvOwogdXNpbmcgOjp0ZXN0aW5n
OjpVbml0VGVzdDsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9wdHI7CiAKIC8v
IFRoZSB0ZXN0IG1ldGhvZHMgYXJlIGVtcHR5LCBhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHRoaXMg
cHJvZ3JhbSBpcwogLy8gdG8gcHJpbnQgdGhlIHRlc3QgbmFtZXMgYmVmb3JlL2FmdGVyIHNodWZm
bGluZy4KQEAgLTc3LDEzICs3NiwxMyBAQCBURVNUKERJU0FCTEVEX0QsIERJU0FCTEVEX0IpIHt9
CiAvLyBpdGVyYXRpb24gd2l0aCBhICItLS0tIiBtYXJrZXIuCiBjbGFzcyBUZXN0TmFtZVByaW50
ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgotICB2aXJ0dWFs
IHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAq
LywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24g
Ki8pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5p
dF90ZXN0ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRpb24g
Ki8pIG92ZXJyaWRlIHsKICAgICBwcmludGYoIi0tLS1cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2
b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKLSAgICBwcmludGYo
IiVzLiVzXG4iLCB0ZXN0X2luZm8udGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7
CisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGUg
eworICAgIHByaW50ZigiJXMuJXNcbiIsIHRlc3RfaW5mby50ZXN0X3N1aXRlX25hbWUoKSwgdGVz
dF9pbmZvLm5hbWUoKSk7CiAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0LXBhcnQtdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0LXBhcnQtdGVzdC5jYwppbmRleCBjZDJkNmY5
ZTg1OGY1Mjc5YmE1YTE2YTVkMWE2ZTM3YWZmZTkxMGFkLi40NGNmN2NhMDQ0Yjg1MGRhZGMwZGY4
OTYyODIyNWMwN2RlYTI3YzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRlc3QtcGFydC10ZXN0LmNjCkBAIC00Niw5ICs0NiwxMCBA
QCBjbGFzcyBUZXN0UGFydFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIFRlc3RQYXJ0UmVz
dWx0VGVzdCgpCiAgICAgICA6IHIxXyhUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MsICJmb28vYmFy
LmNjIiwgMTAsICJTdWNjZXNzISIpLAogICAgICAgICByMl8oVGVzdFBhcnRSZXN1bHQ6OmtOb25G
YXRhbEZhaWx1cmUsICJmb28vYmFyLmNjIiwgLTEsICJGYWlsdXJlISIpLAotICAgICAgICByM18o
VGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUsIE5VTEwsIC0xLCAiRmFpbHVyZSEiKSB7fQor
ICAgICAgICByM18oVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUsIG51bGxwdHIsIC0xLCAi
RmFpbHVyZSEiKSwKKyAgICAgICAgcjRfKFRlc3RQYXJ0UmVzdWx0OjprU2tpcCwgImZvby9iYXIu
Y2MiLCAyLCAiU2tpcHBlZCEiKSB7fQogCi0gIFRlc3RQYXJ0UmVzdWx0IHIxXywgcjJfLCByM187
CisgIFRlc3RQYXJ0UmVzdWx0IHIxXywgcjJfLCByM18sIHI0XzsKIH07CiAKIApAQCAtNzksNiAr
ODAsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7
CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNzLmZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHN1Y2Nl
c3Mubm9uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNzLmZhdGFsbHlf
ZmFpbGVkKCkpOworICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcy5za2lwcGVkKCkpOwogCiAgIGNvbnN0
IFRlc3RQYXJ0UmVzdWx0IG5vbmZhdGFsX2ZhaWx1cmUoVGVzdFBhcnRSZXN1bHQ6OmtOb25GYXRh
bEZhaWx1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUu
Y2MiLApAQCAtODgsNiArOTAsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBSZXN1bHRB
Y2Nlc3NvcnNXb3JrKSB7CiAgIEVYUEVDVF9UUlVFKG5vbmZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkp
OwogICBFWFBFQ1RfVFJVRShub25mYXRhbF9mYWlsdXJlLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwog
ICBFWFBFQ1RfRkFMU0Uobm9uZmF0YWxfZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQ
RUNUX0ZBTFNFKG5vbmZhdGFsX2ZhaWx1cmUuc2tpcHBlZCgpKTsKIAogICBjb25zdCBUZXN0UGFy
dFJlc3VsdCBmYXRhbF9mYWlsdXJlKFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWlsdXJlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlLmNjIiwKQEAgLTk3LDYgKzEw
MCwxNCBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBSZXN1bHRBY2Nlc3NvcnNXb3JrKSB7
CiAgIEVYUEVDVF9UUlVFKGZhdGFsX2ZhaWx1cmUuZmFpbGVkKCkpOwogICBFWFBFQ1RfRkFMU0Uo
ZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUoZmF0YWxf
ZmFpbHVyZS5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKGZhdGFsX2ZhaWx1cmUu
c2tpcHBlZCgpKTsKKworICBjb25zdCBUZXN0UGFydFJlc3VsdCBza2lwKFRlc3RQYXJ0UmVzdWx0
OjprU2tpcCwgImZpbGUuY2MiLCA0MiwgIm1lc3NhZ2UiKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAu
cGFzc2VkKCkpOworICBFWFBFQ1RfRkFMU0Uoc2tpcC5mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxT
RShza2lwLm5vbmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFMU0Uoc2tpcC5mYXRhbGx5
X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX1RSVUUoc2tpcC5za2lwcGVkKCkpOwogfQogCiAvLyBUZXN0
cyBUZXN0UGFydFJlc3VsdDo6dHlwZSgpLgpAQCAtMTA0LDIzICsxMTUsMjcgQEAgVEVTVF9GKFRl
c3RQYXJ0UmVzdWx0VGVzdCwgdHlwZSkgewogICBFWFBFQ1RfRVEoVGVzdFBhcnRSZXN1bHQ6OmtT
dWNjZXNzLCByMV8udHlwZSgpKTsKICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0
YWxGYWlsdXJlLCByMl8udHlwZSgpKTsKICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprRmF0
YWxGYWlsdXJlLCByM18udHlwZSgpKTsKKyAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprU2tp
cCwgcjRfLnR5cGUoKSk7CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmaWxlX25hbWUo
KS4KIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIGZpbGVfbmFtZSkgewogICBFWFBFQ1RfU1RS
RVEoImZvby9iYXIuY2MiLCByMV8uZmlsZV9uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoTlVMTCwg
cjNfLmZpbGVfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKG51bGxwdHIsIHIzXy5maWxlX25hbWUo
KSk7CisgIEVYUEVDVF9TVFJFUSgiZm9vL2Jhci5jYyIsIHI0Xy5maWxlX25hbWUoKSk7CiB9CiAK
IC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpsaW5lX251bWJlcigpLgogVEVTVF9GKFRlc3RQYXJ0
UmVzdWx0VGVzdCwgbGluZV9udW1iZXIpIHsKICAgRVhQRUNUX0VRKDEwLCByMV8ubGluZV9udW1i
ZXIoKSk7CiAgIEVYUEVDVF9FUSgtMSwgcjJfLmxpbmVfbnVtYmVyKCkpOworICBFWFBFQ1RfRVEo
MiwgcjRfLmxpbmVfbnVtYmVyKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6bWVz
c2FnZSgpLgogVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgbWVzc2FnZSkgewogICBFWFBFQ1Rf
U1RSRVEoIlN1Y2Nlc3MhIiwgcjFfLm1lc3NhZ2UoKSk7CisgIEVYUEVDVF9TVFJFUSgiU2tpcHBl
ZCEiLCByNF8ubWVzc2FnZSgpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OnBhc3Nl
ZCgpLgpAQCAtMTI4LDYgKzE0Myw3IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIFBhc3Nl
ZCkgewogICBFWFBFQ1RfVFJVRShyMV8ucGFzc2VkKCkpOwogICBFWFBFQ1RfRkFMU0UocjJfLnBh
c3NlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIzXy5wYXNzZWQoKSk7CisgIEVYUEVDVF9GQUxTRShy
NF8ucGFzc2VkKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmFpbGVkKCkuCkBA
IC0xMzUsNiArMTUxLDE1IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIEZhaWxlZCkgewog
ICBFWFBFQ1RfRkFMU0UocjFfLmZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUocjJfLmZhaWxlZCgp
KTsKICAgRVhQRUNUX1RSVUUocjNfLmZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5mYWls
ZWQoKSk7Cit9CisKKy8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpmYWlsZWQoKS4KK1RFU1RfRihU
ZXN0UGFydFJlc3VsdFRlc3QsIFNraXBwZWQpIHsKKyAgRVhQRUNUX0ZBTFNFKHIxXy5za2lwcGVk
KCkpOworICBFWFBFQ1RfRkFMU0UocjJfLnNraXBwZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyM18u
c2tpcHBlZCgpKTsKKyAgRVhQRUNUX1RSVUUocjRfLnNraXBwZWQoKSk7CiB9CiAKIC8vIFRlc3Rz
IFRlc3RQYXJ0UmVzdWx0OjpmYXRhbGx5X2ZhaWxlZCgpLgpAQCAtMTQyLDYgKzE2Nyw3IEBAIFRF
U1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIEZhdGFsbHlGYWlsZWQpIHsKICAgRVhQRUNUX0ZBTFNF
KHIxXy5mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIyXy5mYXRhbGx5X2ZhaWxl
ZCgpKTsKICAgRVhQRUNUX1RSVUUocjNfLmZhdGFsbHlfZmFpbGVkKCkpOworICBFWFBFQ1RfRkFM
U0UocjRfLmZhdGFsbHlfZmFpbGVkKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6
bm9uZmF0YWxseV9mYWlsZWQoKS4KQEAgLTE0OSw2ICsxNzUsNyBAQCBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBOb25mYXRhbGx5RmFpbGVkKSB7CiAgIEVYUEVDVF9GQUxTRShyMV8ubm9uZmF0
YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKHIyXy5ub25mYXRhbGx5X2ZhaWxlZCgpKTsK
ICAgRVhQRUNUX0ZBTFNFKHIzXy5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNF
KHI0Xy5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKIH0KIAogLy8gVGVzdHMgdGhlIFRlc3RQYXJ0UmVz
dWx0QXJyYXkgY2xhc3MuCkBAIC0yMDAsNiArMjI3LDQgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0
QXJyYXlEZWF0aFRlc3QsIERpZXNXaGVuSW5kZXhJc091dE9mQm91bmQpIHsKICAgRVhQRUNUX0RF
QVRIX0lGX1NVUFBPUlRFRChyZXN1bHRzLkdldFRlc3RQYXJ0UmVzdWx0KDEpLCAiIik7CiB9CiAK
LS8vIEZJWE1FOiBBZGQgYSB0ZXN0IGZvciB0aGUgY2xhc3MgSGFzTmV3RmF0YWxGYWlsdXJlSGVs
cGVyLgotCiB9ICAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC10ZXN0Ml90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LXRlc3QyX3Rlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMyZjk4ZGM3ZDFjM2U5MDk3NThiYTYwNzcyZTk3NzQ5OGNlODFmZjIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRlc3QyX3Rlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSw2
MSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0v
LwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LS8vCi0vLyBUZXN0cyBmb3IgR29vZ2xlIFRlc3QgaXRzZWxmLiAgVGhpcyB2ZXJpZmllcyB0aGF0
IHRoZSBiYXNpYyBjb25zdHJ1Y3RzIG9mCi0vLyBHb29nbGUgVGVzdCB3b3JrLgotCi0jaW5jbHVk
ZSAiZ3Rlc3QvZ3Rlc3QuaCIKLSNpbmNsdWRlICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5o
IgotCi11c2luZyA6OnRlc3Rpbmc6OlZhbHVlczsKLXVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlBhcmFtR2VuZXJhdG9yOwotCi0vLyBUZXN0cyB0aGF0IGdlbmVyYXRvcnMgZGVmaW5lZCBpbiBh
IGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0Ci0vLyBhcmUgZnVuY3Rpb25hbC4gVGhlIHRlc3Qg
dXNpbmcgZXh0ZXJuX2dlbl8yIGlzIGRlZmluZWQKLS8vIGluIGdvb2dsZXRlc3QtcGFyYW0tdGVz
dC10ZXN0LmNjLgotUGFyYW1HZW5lcmF0b3I8aW50PiBleHRlcm5fZ2VuXzIgPSBWYWx1ZXMoMzMp
OwotCi0vLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGRlZmlu
ZWQgaW4gb25lIHRyYW5zbGF0aW9uIHVuaXQKLS8vIGFuZCBpbnN0YW50aWF0ZWQgaW4gYW5vdGhl
ci4gVGhlIHRlc3QgaXMgZGVmaW5lZCBpbgotLy8gZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3Qu
Y2MgYW5kIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QgZml4dHVyZSBjbGFzcyBpcwotLy8gZGVm
aW5lZCBpbiBndGVzdC1wYXJhbS10ZXN0X3Rlc3QuaC4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9Q
KE11bHRpcGxlc09mMzMsCi0gICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbEluc3RhbnRp
YXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDMzLCA2NikpOwotCi0v
LyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRl
ZAotLy8gaW4gbXVsdGlwbGUgdHJhbnNsYXRpb24gdW5pdHMuIEFub3RoZXIgaW5zdGFudGlhdGlv
biBpcyBkZWZpbmVkCi0vLyBpbiBnb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYyBhbmQKLS8v
IEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNsYWlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRl
ZmluZWQgaW4KLS8vIGd0ZXN0LXBhcmFtLXRlc3RfdGVzdC5oCi1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChTZXF1ZW5jZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5N
dWx0aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoNDIqMywgNDIqNCwgNDIqNSkpOwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0LnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weQpp
bmRleCA0NmNiOWY2ZGEzMWRlYWRmZDdlZWZkMjM1ZTliMzdkZjI5ZmIzYmFmLi5lYTYyN2M0Nzlk
NWIxOTgyNGNhNjdiOTgwODljZjQwMGMzM2MyNzlhIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0LnB5CisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJl
LXRlc3QucHkKQEAgLTY4LDEzICs2OCwxMiBAQCBkZWYgU2V0RW52VmFyKGVudl92YXIsIHZhbHVl
KToKIGRlZiBSdW4oY29tbWFuZCk6CiAgICIiIlJ1bnMgYSBjb21tYW5kOyByZXR1cm5zIFRydWUv
RmFsc2UgaWYgaXRzIGV4aXQgY29kZSBpcy9pc24ndCAwLiIiIgogCi0gIHByaW50ICdSdW5uaW5n
ICIlcyIuIC4gLicgJSAnICcuam9pbihjb21tYW5kKQorICBwcmludCgnUnVubmluZyAiJXMiLiAu
IC4nICUgJyAnLmpvaW4oY29tbWFuZCkpCiAgIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nl
c3MoY29tbWFuZCkKICAgcmV0dXJuIHAuZXhpdGVkIGFuZCBwLmV4aXRfY29kZSA9PSAwCiAKIAot
IyBUaGUgdGVzdHMuICBGSVhNRTogcmVmYWN0b3IgdGhlIGNsYXNzIHRvIHNoYXJlIGNvbW1vbgot
IyBsb2dpYyB3aXRoIGNvZGUgaW4gZ29vZ2xldGVzdC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0
LnB5LgorIyBUaGUgdGVzdHMuCiBjbGFzcyBUaHJvd09uRmFpbHVyZVRlc3QoZ3Rlc3RfdGVzdF91
dGlscy5UZXN0Q2FzZSk6CiAgICIiIlRlc3RzIHRoZSB0aHJvdy1vbi1mYWlsdXJlIG1vZGUuIiIi
CiAKQEAgLTg3LDcgKzg2LDcgQEAgY2xhc3MgVGhyb3dPbkZhaWx1cmVUZXN0KGd0ZXN0X3Rlc3Rf
dXRpbHMuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGU7IE5vbmUg
aWYgdGhlIHZhcmlhYmxlIHNob3VsZCBiZSB1bnNldC4KICAgICAgIGZsYWdfdmFsdWU6ICAgICAg
IHZhbHVlIG9mIHRoZSAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgZmxhZzsKICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbmUgaWYgdGhlIGZsYWcgc2hvdWxkIG5vdCBiZSBwcmVzZW50LgotICAg
ICAgc2hvdWxkX2ZhaWw6ICAgICAgVHJ1ZSBpZmYgdGhlIHByb2dyYW0gaXMgZXhwZWN0ZWQgdG8g
ZmFpbC4KKyAgICAgIHNob3VsZF9mYWlsOiAgICAgIFRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHBy
b2dyYW0gaXMgZXhwZWN0ZWQgdG8gZmFpbC4KICAgICAiIiIKIAogICAgIFNldEVudlZhcihUSFJP
V19PTl9GQUlMVVJFLCBlbnZfdmFyX3ZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0
Xy5jYwppbmRleCBmOWEyYzY0NDhhMjljYTI5NjQ5YTEyNDgwNTlhOTg1YTUxYWY4NjM2Li44M2Ji
OTE0YzdlNDc0YTgxMmQ1NzQ1YTNlYzUwYjk1YjM4YTY1OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0Xy5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24t
ZmFpbHVyZS10ZXN0Xy5jYwpAQCAtNDUsNyArNDUsNyBAQAogLy8gb25lcy4KIHZvaWQgVGVybWlu
YXRlSGFuZGxlcigpIHsKICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgIlVuaGFuZGxlZCBDKysg
ZXhjZXB0aW9uIHRlcm1pbmF0aW5nIHRoZSBwcm9ncmFtLiIpOwotICBmZmx1c2goTlVMTCk7Cisg
IGZmbHVzaChudWxscHRyKTsKICAgZXhpdCgxKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGQ4MmMxNjBmMTc3ZDZmM2JhZGQ3NzA2NGFiOGM3ZTk4YmQyOTc2
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYworKysgL2Rldi9u
dWxsCkBAIC0xLDMxOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwNywgR29vZ2xlIEluYy4KLS8v
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8v
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgiCi0j
aW5jbHVkZSA8dXRpbGl0eT4KLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2Ug
ewotCi11c2luZyA6OnN0ZDo6dHIxOjpnZXQ7Ci11c2luZyA6OnN0ZDo6dHIxOjptYWtlX3R1cGxl
OwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVwbGU7Ci11c2luZyA6OnN0ZDo6dHIxOjp0dXBsZV9lbGVt
ZW50OwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVwbGVfc2l6ZTsKLXVzaW5nIDo6dGVzdGluZzo6U3Rh
dGljQXNzZXJ0VHlwZUVxOwotCi0vLyBUZXN0cyB0aGF0IHR1cGxlX2VsZW1lbnQ8SywgdHVwbGU8
VDAsIFQxLCAuLi4sIFROPiA+Ojp0eXBlIHJldHVybnMgVEsuCi1URVNUKHR1cGxlX2VsZW1lbnRf
VGVzdCwgUmV0dXJuc0VsZW1lbnRUeXBlKSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIHR1
cGxlX2VsZW1lbnQ8MCwgdHVwbGU8aW50LCBjaGFyPiA+Ojp0eXBlPigpOwotICBTdGF0aWNBc3Nl
cnRUeXBlRXE8aW50JiwgdHVwbGVfZWxlbWVudDwxLCB0dXBsZTxkb3VibGUsIGludCY+ID46OnR5
cGU+KCk7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxib29sLCB0dXBsZV9lbGVtZW50PDIsIHR1cGxl
PGRvdWJsZSwgaW50LCBib29sPiA+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IHR1cGxl
X3NpemU8VD46OnZhbHVlIGdpdmVzIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlCi0vLyB0
eXBlIFQuCi1URVNUKHR1cGxlX3NpemVfVGVzdCwgUmV0dXJuc051bWJlck9mRmllbGRzKSB7Ci0g
IEVYUEVDVF9FUSgwLCArdHVwbGVfc2l6ZTx0dXBsZTw+ID46OnZhbHVlKTsKLSAgRVhQRUNUX0VR
KDEsICt0dXBsZV9zaXplPHR1cGxlPHZvaWQqPiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCAr
dHVwbGVfc2l6ZTx0dXBsZTxjaGFyPiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArKHR1cGxl
X3NpemU8dHVwbGU8dHVwbGU8aW50LCBkb3VibGU+ID4gPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0VR
KDIsICsodHVwbGVfc2l6ZTx0dXBsZTxpbnQmLCBjb25zdCBjaGFyPiA+Ojp2YWx1ZSkpOwotICBF
WFBFQ1RfRVEoMywgKyh0dXBsZV9zaXplPHR1cGxlPGNoYXIqLCB2b2lkLCBjb25zdCBib29sJj4g
Pjo6dmFsdWUpKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIGEgdHVwbGUgd2l0aCBpdHNlbGYu
Ci1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc1dpdGhTZWxmKSB7Ci0gIGNvbnN0IHR1cGxl
PGludCwgY2hhciwgYm9vbD4gYSg1LCAnYScsIGZhbHNlKTsKLQotICBFWFBFQ1RfVFJVRShhID09
IGEpOwotICBFWFBFQ1RfRkFMU0UoYSAhPSBhKTsKLX0KLQotLy8gVGVzdHMgY29tcGFyaW5nIHR3
byB0dXBsZXMgd2l0aCB0aGUgc2FtZSB2YWx1ZS4KLVRFU1QoQ29tcGFyaXNvblRlc3QsIENvbXBh
cmVzRXF1YWxUdXBsZXMpIHsKLSAgY29uc3QgdHVwbGU8aW50LCBib29sPiBhKDUsIHRydWUpLCBi
KDUsIHRydWUpOwotCi0gIEVYUEVDVF9UUlVFKGEgPT0gYik7Ci0gIEVYUEVDVF9GQUxTRShhICE9
IGIpOwotfQotCi0vLyBUZXN0cyBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCB0dXBsZXMgdGhhdCBo
YXZlIG5vIHJlZmVyZW5jZSBmaWVsZHMuCi1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc1Vu
ZXF1YWxUdXBsZXNXaXRob3V0UmVmZXJlbmNlRmllbGRzKSB7Ci0gIHR5cGVkZWYgdHVwbGU8Y29u
c3QgaW50LCBjaGFyPiBGb29UdXBsZTsKLQotICBjb25zdCBGb29UdXBsZSBhKDAsICd4Jyk7Ci0g
IGNvbnN0IEZvb1R1cGxlIGIoMSwgJ2EnKTsKLQotICBFWFBFQ1RfVFJVRShhICE9IGIpOwotICBF
WFBFQ1RfRkFMU0UoYSA9PSBiKTsKLQotICBjb25zdCBGb29UdXBsZSBjKDEsICdiJyk7Ci0KLSAg
RVhQRUNUX1RSVUUoYiAhPSBjKTsKLSAgRVhQRUNUX0ZBTFNFKGIgPT0gYyk7Ci19Ci0KLS8vIFRl
c3RzIGNvbXBhcmluZyB0d28gZGlmZmVyZW50IHR1cGxlcyB0aGF0IGhhdmUgcmVmZXJlbmNlIGZp
ZWxkcy4KLVRFU1QoQ29tcGFyaXNvblRlc3QsIENvbXBhcmVzVW5lcXVhbFR1cGxlc1dpdGhSZWZl
cmVuY2VGaWVsZHMpIHsKLSAgdHlwZWRlZiB0dXBsZTxpbnQmLCBjb25zdCBjaGFyJj4gRm9vVHVw
bGU7Ci0KLSAgaW50IGkgPSA1OwotICBjb25zdCBjaGFyIGNoID0gJ2EnOwotICBjb25zdCBGb29U
dXBsZSBhKGksIGNoKTsKLQotICBpbnQgaiA9IDY7Ci0gIGNvbnN0IEZvb1R1cGxlIGIoaiwgY2gp
OwotCi0gIEVYUEVDVF9UUlVFKGEgIT0gYik7Ci0gIEVYUEVDVF9GQUxTRShhID09IGIpOwotCi0g
IGogPSA1OwotICBjb25zdCBjaGFyIGNoMiA9ICdiJzsKLSAgY29uc3QgRm9vVHVwbGUgYyhqLCBj
aDIpOwotCi0gIEVYUEVDVF9UUlVFKGIgIT0gYyk7Ci0gIEVYUEVDVF9GQUxTRShiID09IGMpOwot
fQotCi0vLyBUZXN0cyB0aGF0IGEgdHVwbGUgZmllbGQgd2l0aCBhIHJlZmVyZW5jZSB0eXBlIGlz
IGFuIGFsaWFzIG9mIHRoZQotLy8gdmFyaWFibGUgaXQncyBzdXBwb3NlZCB0byByZWZlcmVuY2Uu
Ci1URVNUKFJlZmVyZW5jZUZpZWxkVGVzdCwgSXNBbGlhc09mUmVmZXJlbmNlZFZhcmlhYmxlKSB7
Ci0gIGludCBuID0gMDsKLSAgdHVwbGU8Ym9vbCwgaW50Jj4gdCh0cnVlLCBuKTsKLQotICBuID0g
MTsKLSAgRVhQRUNUX0VRKG4sIGdldDwxPih0KSkKLSAgICAgIDw8ICJDaGFuZ2luZyBhIHVuZGVy
bHlpbmcgdmFyaWFibGUgc2hvdWxkIHVwZGF0ZSB0aGUgcmVmZXJlbmNlIGZpZWxkLiI7Ci0KLSAg
Ly8gTWFrZXMgc3VyZSB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGRvIGFueXRoaW5n
IGZ1bm55IHdpdGgKLSAgLy8gdGhlICYgb3BlcmF0b3IgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBn
ZXQ8PigpLgotICBFWFBFQ1RfRVEoJm4sICYoZ2V0PDE+KHQpKSkKLSAgICAgIDw8ICJUaGUgYWRk
cmVzcyBvZiBhIHJlZmVyZW5jZSBmaWVsZCBzaG91bGQgZXF1YWwgdGhlIGFkZHJlc3Mgb2YgIgot
ICAgICAgPDwgInRoZSB1bmRlcmx5aW5nIHZhcmlhYmxlLiI7Ci0KLSAgZ2V0PDE+KHQpID0gMjsK
LSAgRVhQRUNUX0VRKDIsIG4pCi0gICAgICA8PCAiQ2hhbmdpbmcgYSByZWZlcmVuY2UgZmllbGQg
c2hvdWxkIHVwZGF0ZSB0aGUgdW5kZXJseWluZyB2YXJpYWJsZS4iOwotfQotCi0vLyBUZXN0cyB0
aGF0IHR1cGxlJ3MgZGVmYXVsdCBjb25zdHJ1Y3RvciBkZWZhdWx0IGluaXRpYWxpemVzIGVhY2gg
ZmllbGQuCi0vLyBUaGlzIHRlc3QgbmVlZHMgdG8gY29tcGlsZSB3aXRob3V0IGdlbmVyYXRpbmcg
d2FybmluZ3MuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3JE
ZWZhdWx0SW5pdGlhbGl6ZXNFYWNoRmllbGQpIHsKLSAgLy8gVGhlIFRSMSByZXBvcnQgcmVxdWly
ZXMgdGhhdCB0dXBsZSdzIGRlZmF1bHQgY29uc3RydWN0b3IgZGVmYXVsdAotICAvLyBpbml0aWFs
aXplcyBlYWNoIGZpZWxkLCBldmVuIGlmIGl0J3MgYSBwcmltaXRpdmUgdHlwZS4gIElmIHRoZQot
ICAvLyBpbXBsZW1lbnRhdGlvbiBmb3JnZXRzIHRvIGRvIHRoaXMsIHRoaXMgdGVzdCB3aWxsIGNh
dGNoIGl0IGJ5Ci0gIC8vIGdlbmVyYXRpbmcgd2FybmluZ3MgYWJvdXQgdXNpbmcgdW5pbml0aWFs
aXplZCB2YXJpYWJsZXMgKGFzc3VtaW5nCi0gIC8vIGEgZGVjZW50IGNvbXBpbGVyKS4KLQotICB0
dXBsZTw+IGVtcHR5OwotCi0gIHR1cGxlPGludD4gYTEsIGIxOwotICBiMSA9IGExOwotICBFWFBF
Q1RfRVEoMCwgZ2V0PDA+KGIxKSk7Ci0KLSAgdHVwbGU8aW50LCBkb3VibGU+IGEyLCBiMjsKLSAg
YjIgPSBhMjsKLSAgRVhQRUNUX0VRKDAsIGdldDwwPihiMikpOwotICBFWFBFQ1RfRVEoMC4wLCBn
ZXQ8MT4oYjIpKTsKLQotICB0dXBsZTxkb3VibGUsIGNoYXIsIGJvb2wqPiBhMywgYjM7Ci0gIGIz
ID0gYTM7Ci0gIEVYUEVDVF9FUSgwLjAsIGdldDwwPihiMykpOwotICBFWFBFQ1RfRVEoJ1wwJywg
Z2V0PDE+KGIzKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwyPihiMykgPT0gTlVMTCk7Ci0KLSAgdHVw
bGU8aW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PiBhMTAs
IGIxMDsKLSAgYjEwID0gYTEwOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDA+KGIxMCkpOwotICBFWFBF
Q1RfRVEoMCwgZ2V0PDE+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDI+KGIxMCkpOwotICBF
WFBFQ1RfRVEoMCwgZ2V0PDM+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDQ+KGIxMCkpOwot
ICBFWFBFQ1RfRVEoMCwgZ2V0PDU+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDY+KGIxMCkp
OwotICBFWFBFQ1RfRVEoMCwgZ2V0PDc+KGIxMCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDg+KGIx
MCkpOwotICBFWFBFQ1RfRVEoMCwgZ2V0PDk+KGIxMCkpOwotfQotCi0vLyBUZXN0cyBjb25zdHJ1
Y3RpbmcgYSB0dXBsZSBmcm9tIGl0cyBmaWVsZHMuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0
LCBDb25zdHJ1Y3RzRnJvbUZpZWxkcykgewotICBpbnQgbiA9IDE7Ci0gIC8vIFJlZmVyZW5jZSBm
aWVsZC4KLSAgdHVwbGU8aW50Jj4gYShuKTsKLSAgRVhQRUNUX0VRKCZuLCAmKGdldDwwPihhKSkp
OwotCi0gIC8vIE5vbi1yZWZlcmVuY2UgZmllbGRzLgotICB0dXBsZTxpbnQsIGNoYXI+IGIoNSwg
J2EnKTsKLSAgRVhQRUNUX0VRKDUsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9FUSgnYScsIGdldDwx
PihiKSk7Ci0KLSAgLy8gQ29uc3QgcmVmZXJlbmNlIGZpZWxkLgotICBjb25zdCBpbnQgbSA9IDI7
Ci0gIHR1cGxlPGJvb2wsIGNvbnN0IGludCY+IGModHJ1ZSwgbSk7Ci0gIEVYUEVDVF9UUlVFKGdl
dDwwPihjKSk7Ci0gIEVYUEVDVF9FUSgmbSwgJihnZXQ8MT4oYykpKTsKLX0KLQotLy8gVGVzdHMg
dHVwbGUncyBjb3B5IGNvbnN0cnVjdG9yLgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgQ29w
eUNvbnN0cnVjdG9yKSB7Ci0gIHR1cGxlPGRvdWJsZSwgYm9vbD4gYSgwLjAsIHRydWUpOwotICB0
dXBsZTxkb3VibGUsIGJvb2w+IGIoYSk7Ci0KLSAgRVhQRUNUX0RPVUJMRV9FUSgwLjAsIGdldDww
PihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwxPihiKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVj
dGluZyBhIHR1cGxlIGZyb20gYW5vdGhlciB0dXBsZSB0aGF0IGhhcyBhIGNvbXBhdGlibGUKLS8v
IGJ1dCBkaWZmZXJlbnQgdHlwZS4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvbnN0cnVj
dHNGcm9tRGlmZmVyZW50VHVwbGVUeXBlKSB7Ci0gIHR1cGxlPGludCwgaW50LCBjaGFyPiBhKDAs
IDEsICdhJyk7Ci0gIHR1cGxlPGRvdWJsZSwgbG9uZywgaW50PiBiKGEpOwotCi0gIEVYUEVDVF9E
T1VCTEVfRVEoMC4wLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoMSwgZ2V0PDE+KGIpKTsKLSAg
RVhQRUNUX0VRKCdhJywgZ2V0PDI+KGIpKTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEg
Mi10dXBsZSBmcm9tIGFuIHN0ZDo6cGFpci4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENv
bnN0cnVjdHNGcm9tUGFpcikgewotICA6OnN0ZDo6cGFpcjxpbnQsIGNoYXI+IGEoMSwgJ2EnKTsK
LSAgdHVwbGU8aW50LCBjaGFyPiBiKGEpOwotICB0dXBsZTxpbnQsIGNvbnN0IGNoYXImPiBjKGEp
OwotfQotCi0vLyBUZXN0cyBhc3NpZ25pbmcgYSB0dXBsZSB0byBhbm90aGVyIHR1cGxlIHdpdGgg
dGhlIHNhbWUgdHlwZS4KLVRFU1QoVHVwbGVBc3NpZ25tZW50VGVzdCwgQXNzaWduc1RvU2FtZVR1
cGxlVHlwZSkgewotICBjb25zdCB0dXBsZTxpbnQsIGxvbmc+IGEoNSwgN0wpOwotICB0dXBsZTxp
bnQsIGxvbmc+IGI7Ci0gIGIgPSBhOwotICBFWFBFQ1RfRVEoNSwgZ2V0PDA+KGIpKTsKLSAgRVhQ
RUNUX0VRKDdMLCBnZXQ8MT4oYikpOwotfQotCi0vLyBUZXN0cyBhc3NpZ25pbmcgYSB0dXBsZSB0
byBhbm90aGVyIHR1cGxlIHdpdGggYSBkaWZmZXJlbnQgYnV0Ci0vLyBjb21wYXRpYmxlIHR5cGUu
Ci1URVNUKFR1cGxlQXNzaWdubWVudFRlc3QsIEFzc2lnbnNUb0RpZmZlcmVudFR1cGxlVHlwZSkg
ewotICBjb25zdCB0dXBsZTxpbnQsIGxvbmcsIGJvb2w+IGEoMSwgN0wsIHRydWUpOwotICB0dXBs
ZTxsb25nLCBpbnQsIGJvb2w+IGI7Ci0gIGIgPSBhOwotICBFWFBFQ1RfRVEoMUwsIGdldDwwPihi
KSk7Ci0gIEVYUEVDVF9FUSg3LCBnZXQ8MT4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8Mj4oYikp
OwotfQotCi0vLyBUZXN0cyBhc3NpZ25pbmcgYW4gc3RkOjpwYWlyIHRvIGEgMi10dXBsZS4KLVRF
U1QoVHVwbGVBc3NpZ25tZW50VGVzdCwgQXNzaWduc0Zyb21QYWlyKSB7Ci0gIGNvbnN0IDo6c3Rk
OjpwYWlyPGludCwgYm9vbD4gYSg1LCB0cnVlKTsKLSAgdHVwbGU8aW50LCBib29sPiBiOwotICBi
ID0gYTsKLSAgRVhQRUNUX0VRKDUsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwxPihi
KSk7Ci0KLSAgdHVwbGU8bG9uZywgYm9vbD4gYzsKLSAgYyA9IGE7Ci0gIEVYUEVDVF9FUSg1TCwg
Z2V0PDA+KGMpKTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDE+KGMpKTsKLX0KLQotLy8gQSBmaXh0dXJl
IGZvciB0ZXN0aW5nIGJpZyB0dXBsZXMuCi1jbGFzcyBCaWdUdXBsZVRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7Ci0gcHJvdGVjdGVkOgotICB0eXBlZGVmIHR1cGxlPGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludD4gQmlnVHVwbGU7Ci0KLSAgQmlnVHVw
bGVUZXN0KCkgOgotICAgICAgYV8oMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMiksCi0gICAg
ICBiXygxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzKSB7fQotCi0gIEJpZ1R1cGxlIGFfLCBi
XzsKLX07Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBiaWcgdHVwbGVzLgotVEVTVF9GKEJpZ1R1
cGxlVGVzdCwgQ29uc3RydWN0aW9uKSB7Ci0gIEJpZ1R1cGxlIGE7Ci0gIEJpZ1R1cGxlIGIoYl8p
OwotfQotCi0vLyBUZXN0cyB0aGF0IGdldDxOPih0KSByZXR1cm5zIHRoZSBOLXRoICgwLWJhc2Vk
KSBmaWVsZCBvZiB0dXBsZSB0LgotVEVTVF9GKEJpZ1R1cGxlVGVzdCwgZ2V0KSB7Ci0gIEVYUEVD
VF9FUSgxLCBnZXQ8MD4oYV8pKTsKLSAgRVhQRUNUX0VRKDIsIGdldDw5PihhXykpOwotCi0gIC8v
IFRlc3RzIHRoYXQgZ2V0KCkgd29ya3Mgb24gYSBjb25zdCB0dXBsZSB0b28uCi0gIGNvbnN0IEJp
Z1R1cGxlIGEoYV8pOwotICBFWFBFQ1RfRVEoMSwgZ2V0PDA+KGEpKTsKLSAgRVhQRUNUX0VRKDIs
IGdldDw5PihhKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyBiaWcgdHVwbGVzLgotVEVTVF9G
KEJpZ1R1cGxlVGVzdCwgQ29tcGFyaXNvbnMpIHsKLSAgRVhQRUNUX1RSVUUoYV8gPT0gYV8pOwot
ICBFWFBFQ1RfRkFMU0UoYV8gIT0gYV8pOwotCi0gIEVYUEVDVF9UUlVFKGFfICE9IGJfKTsKLSAg
RVhQRUNUX0ZBTFNFKGFfID09IGJfKTsKLX0KLQotVEVTVChNYWtlVHVwbGVUZXN0LCBXb3Jrc0Zv
clNjYWxhclR5cGVzKSB7Ci0gIHR1cGxlPGJvb2wsIGludD4gYTsKLSAgYSA9IG1ha2VfdHVwbGUo
dHJ1ZSwgNSk7Ci0gIEVYUEVDVF9UUlVFKGdldDwwPihhKSk7Ci0gIEVYUEVDVF9FUSg1LCBnZXQ8
MT4oYSkpOwotCi0gIHR1cGxlPGNoYXIsIGludCwgbG9uZz4gYjsKLSAgYiA9IG1ha2VfdHVwbGUo
J2EnLCAnYicsIDUpOwotICBFWFBFQ1RfRVEoJ2EnLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEo
J2InLCBnZXQ8MT4oYikpOwotICBFWFBFQ1RfRVEoNSwgZ2V0PDI+KGIpKTsKLX0KLQotVEVTVChN
YWtlVHVwbGVUZXN0LCBXb3Jrc0ZvclBvaW50ZXJzKSB7Ci0gIGludCBhW10gPSB7IDEsIDIsIDMs
IDQgfTsKLSAgY29uc3QgY2hhciogY29uc3Qgc3RyID0gImhpIjsKLSAgaW50KiBjb25zdCBwID0g
YTsKLQotICB0dXBsZTxjb25zdCBjaGFyKiwgaW50Kj4gdDsKLSAgdCA9IG1ha2VfdHVwbGUoc3Ry
LCBwKTsKLSAgRVhQRUNUX0VRKHN0ciwgZ2V0PDA+KHQpKTsKLSAgRVhQRUNUX0VRKHAsIGdldDwx
Pih0KSk7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5weSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkKaW5k
ZXggNWI3ZDFlNzRmNjdmY2IwMGNiODQ4NTU3OTY3ZGVmNGY2YTU2Y2M4Zi4uNjk1OTVhMGRkZWRl
ODA3YWUzNzExZTllZjVmN2IwYWU5MjIwNzU2MyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5weQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5
CkBAIC00Myw4ICs0Myw4IEBAIGRlZiBBc3NlcnQoY29uZGl0aW9uKToKIAogZGVmIEFzc2VydEVx
KGV4cGVjdGVkLCBhY3R1YWwpOgogICBpZiBleHBlY3RlZCAhPSBhY3R1YWw6Ci0gICAgcHJpbnQg
J0V4cGVjdGVkOiAlcycgJSAoZXhwZWN0ZWQsKQotICAgIHByaW50ICcgIEFjdHVhbDogJXMnICUg
KGFjdHVhbCwpCisgICAgcHJpbnQoJ0V4cGVjdGVkOiAlcycgJSAoZXhwZWN0ZWQsKSkKKyAgICBw
cmludCgnICBBY3R1YWw6ICVzJyAlIChhY3R1YWwsKSkKICAgICByYWlzZSBBc3NlcnRpb25FcnJv
cgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlw
ZWQtdGVzdDJfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlw
ZWQtdGVzdDJfdGVzdC5jYwppbmRleCBlZDk2NDIxYzY3Y2E4YTJmYjM4ZjNkODg5NjAyMzFlZjIy
YmVhNmZjLi5lODNjYTJlMTFiMWI2MjZmMzIzYjkyODUzYTAxODIxYjhhMzUzMTkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90
ZXN0LmNjCkBAIC0zMywxMiArMzMsOCBAQAogI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVz
dF90ZXN0LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNUX0hBU19UWVBF
RF9URVNUX1AKLQogLy8gVGVzdHMgdGhhdCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dCBjYXNlIGNhbiBiZQogLy8gaW5zdGFudGlhdGVkIGluIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1
bml0cyBsaW5rZWQgdG9nZXRoZXIuCiAvLyAoQ29udGFpbmVyVGVzdCBpcyBhbHNvIGluc3RhbnRp
YXRlZCBpbiBndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MuKQotSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9DQVNFX1AoVmVjdG9yLCBDb250YWluZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdGluZzo6VHlwZXM8c3RkOjp2ZWN0b3I8aW50PiA+KTsKLQotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVF9QCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVmVj
dG9yLCBDb250YWluZXJUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rp
bmc6OlR5cGVzPHN0ZDo6dmVjdG9yPGludD4gPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjCmluZGV4IDRlMzk4Njk3ZDZk
ODA5YjEyZThjOTVlNjc0MjBjMmM1NjhkZGE2ZTguLjVmYzY3OGNiMGQ1ZDFkMDI1ZDY5MzU2YzJi
MWI2ZDEwZTQ1ZWQ2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
dGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaCIKIAogI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRl
IDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVz
dC5oIgpAQCAtNDEsMjEgKzQyLDIxIEBAIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hf
KDQxMjcgLyogY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCAqLykKIAogdXNpbmcg
dGVzdGluZzo6VGVzdDsKIAotLy8gVXNlZCBmb3IgdGVzdGluZyB0aGF0IFNldFVwVGVzdENhc2Uo
KS9UZWFyRG93blRlc3RDYXNlKCksIGZpeHR1cmUKKy8vIFVzZWQgZm9yIHRlc3RpbmcgdGhhdCBT
ZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3duVGVzdFN1aXRlKCksIGZpeHR1cmUKIC8vIGN0b3IvZHRv
ciwgYW5kIFNldFVwKCkvVGVhckRvd24oKSB3b3JrIGNvcnJlY3RseSBpbiB0eXBlZCB0ZXN0cyBh
bmQKIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBj
bGFzcyBDb21tb25UZXN0IDogcHVibGljIFRlc3QgewotICAvLyBGb3Igc29tZSB0ZWNobmljYWwg
cmVhc29uLCBTZXRVcFRlc3RDYXNlKCkgYW5kIFRlYXJEb3duVGVzdENhc2UoKQorICAvLyBGb3Ig
c29tZSB0ZWNobmljYWwgcmVhc29uLCBTZXRVcFRlc3RTdWl0ZSgpIGFuZCBUZWFyRG93blRlc3RT
dWl0ZSgpCiAgIC8vIG11c3QgYmUgcHVibGljLgogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgU2V0
VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CiAgICAgc2hh
cmVkXyA9IG5ldyBUKDUpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgp
IHsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgZGVsZXRlIHNoYXJl
ZF87Ci0gICAgc2hhcmVkXyA9IE5VTEw7CisgICAgc2hhcmVkXyA9IG51bGxwdHI7CiAgIH0KIAog
ICAvLyBUaGlzICdwcm90ZWN0ZWQ6JyBpcyBvcHRpb25hbC4gIFRoZXJlJ3Mgbm8gaGFybSBpbiBt
YWtpbmcgYWxsCkBAIC02OCwxNCArNjksMTQgQEAgY2xhc3MgQ29tbW9uVGVzdCA6IHB1YmxpYyBU
ZXN0IHsKIAogICBDb21tb25UZXN0KCkgOiB2YWx1ZV8oMSkge30KIAotICB2aXJ0dWFsIH5Db21t
b25UZXN0KCkgeyBFWFBFQ1RfRVEoMywgdmFsdWVfKTsgfQorICB+Q29tbW9uVGVzdCgpIG92ZXJy
aWRlIHsgRVhQRUNUX0VRKDMsIHZhbHVlXyk7IH0KIAotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7
CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgRVhQRUNUX0VRKDEsIHZhbHVlXyk7CiAg
ICAgdmFsdWVfKys7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgRVhQRUNUX0VRKDIsIHZhbHVlXyk7CiAgICAgdmFs
dWVfKys7CiAgIH0KQEAgLTg1LDE4ICs4NiwxNSBAQCBjbGFzcyBDb21tb25UZXN0IDogcHVibGlj
IFRlc3QgewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1UKiBDb21tb25UZXN0PFQ+Ojpz
aGFyZWRfID0gTlVMTDsKLQotLy8gVGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdHlwZWQgdGVzdHMu
Ci0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKK1QqIENvbW1vblRlc3Q8VD46OnNoYXJlZF8gPSBu
dWxscHRyOwogCiB1c2luZyB0ZXN0aW5nOjpUeXBlczsKIAotLy8gVGVzdHMgdGhhdCBTZXRVcFRl
c3RDYXNlKCkvVGVhckRvd25UZXN0Q2FzZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKKy8vIFRlc3Rz
IHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlIGN0b3Iv
ZHRvciwKIC8vIGFuZCBTZXRVcCgpL1RlYXJEb3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlwZWQg
dGVzdHMKIAogdHlwZWRlZiBUeXBlczxjaGFyLCBpbnQ+IFR3b1R5cGVzOwotVFlQRURfVEVTVF9D
QVNFKENvbW1vblRlc3QsIFR3b1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoQ29tbW9uVGVzdCwg
VHdvVHlwZXMpOwogCiBUWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZUNvcnJlY3QpIHsK
ICAgLy8gU3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGJl
IHZpc2l0ZWQgdmlhCkBAIC0xMjEsMzIgKzExOSwzMiBAQCBUWVBFRF9URVNUKENvbW1vblRlc3Qs
IFZhbHVlc0FyZUNvcnJlY3QpIHsKIFRZUEVEX1RFU1QoQ29tbW9uVGVzdCwgVmFsdWVzQXJlU3Rp
bGxDb3JyZWN0KSB7CiAgIC8vIFN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRl
bXBsYXRlIGNhbiBhbHNvIGJlIHZpc2l0ZWQKICAgLy8gdmlhICd0aGlzJy4KLSAgQVNTRVJUX1RS
VUUodGhpcy0+c2hhcmVkXyAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAh
PSBudWxscHRyKTsKICAgRVhQRUNUX0VRKDUsICp0aGlzLT5zaGFyZWRfKTsKIAogICAvLyBUeXBl
UGFyYW0gY2FuIGJlIHVzZWQgdG8gcmVmZXIgdG8gdGhlIHR5cGUgcGFyYW1ldGVyLgogICBFWFBF
Q1RfRVEoc3RhdGljX2Nhc3Q8VHlwZVBhcmFtPigyKSwgdGhpcy0+dmFsdWVfKTsKIH0KIAotLy8g
VGVzdHMgdGhhdCBtdWx0aXBsZSBUWVBFRF9URVNUX0NBU0UncyBjYW4gYmUgZGVmaW5lZCBpbiB0
aGUgc2FtZQorLy8gVGVzdHMgdGhhdCBtdWx0aXBsZSBUWVBFRF9URVNUX1NVSVRFJ3MgY2FuIGJl
IGRlZmluZWQgaW4gdGhlIHNhbWUKIC8vIHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0MSA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLS8vIFZl
cmlmaWVzIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX0NBU0UgY2FuIGJl
IGEKKy8vIFZlcmlmaWVzIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX1NV
SVRFIGNhbiBiZSBhCiAvLyBzaW5nbGUgdHlwZS4KLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3Qx
LCBpbnQpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QxLCBpbnQpOwogVFlQRURfVEVTVChU
eXBlZFRlc3QxLCBBKSB7fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVz
dDIgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi0vLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNvbmQgYXJn
dW1lbnQgb2YgVFlQRURfVEVTVF9DQVNFIGNhbiBiZSBhCisvLyBWZXJpZmllcyB0aGF0IHRoZSBz
ZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9TVUlURSBjYW4gYmUgYQogLy8gVHlwZXM8Li4u
PiB0eXBlIGxpc3QuCi1UWVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0MiwgVHlwZXM8aW50Pik7CitU
WVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdDIsIFR5cGVzPGludD4pOwogCiAvLyBUaGlzIGFsc28g
dmVyaWZpZXMgdGhhdCB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0eXBlZCB0ZXN0IGNhc2VzIGNhbgog
Ly8gc2hhcmUgdGhlIHNhbWUgbmFtZS4KQEAgLTE2MSw3ICsxNTksNyBAQCBjbGFzcyBOdW1lcmlj
VGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKIHR5cGVkZWYgVHlwZXM8aW50LCBsb25nPiBOdW1l
cmljVHlwZXM7Ci1UWVBFRF9URVNUX0NBU0UoTnVtZXJpY1Rlc3QsIE51bWVyaWNUeXBlcyk7CitU
WVBFRF9URVNUX1NVSVRFKE51bWVyaWNUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNU
KE51bWVyaWNUZXN0LCBEZWZhdWx0SXNaZXJvKSB7CiAgIEVYUEVDVF9FUSgwLCBUeXBlUGFyYW0o
KSk7CkBAIC0xNzcsMTA1ICsxNzUsMTAwIEBAIGNsYXNzIFR5cGVkVGVzdE5hbWVzIHsKICBwdWJs
aWM6CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0TmFt
ZShpbnQgaSkgewotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGNoYXI+Ojp2
YWx1ZSkgeworICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgY2hhcj46OnZhbHVlKSB7CiAgICAgICBy
ZXR1cm4gc3RkOjpzdHJpbmcoImNoYXIiKSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsK
ICAgICB9Ci0gICAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgaW50Pjo6dmFsdWUp
IHsKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGludD46OnZhbHVlKSB7CiAgICAgICByZXR1cm4g
c3RkOjpzdHJpbmcoImludCIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0K
ICAgfQogfTsKIAotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdFdpdGhOYW1lcywgVHdvVHlwZXMs
IFR5cGVkVGVzdE5hbWVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0V2l0aE5hbWVzLCBU
d29UeXBlcywgVHlwZWRUZXN0TmFtZXMpOwogCi1UWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1l
cywgVGVzdENhc2VOYW1lKSB7Ci0gIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQ
YXJhbSwgY2hhcj46OnZhbHVlKSB7CitUWVBFRF9URVNUKFR5cGVkVGVzdFdpdGhOYW1lcywgVGVz
dFN1aXRlTmFtZSkgeworICBpZiAoc3RkOjppc19zYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVl
KSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkK
ICAgICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAg
ICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0
X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9jaGFy
MCIpOwogICB9Ci0gIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgaW50
Pjo6dmFsdWUpIHsKKyAgaWYgKHN0ZDo6aXNfc2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7
CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAg
ICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAg
ICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1
aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIlR5cGVkVGVzdFdpdGhOYW1lcy9pbnQxIik7
CiAgIH0KIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAotCi0vLyBUaGlzICNp
ZmRlZiBibG9jayB0ZXN0cyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0jaWYgR1RFU1RfSEFT
X1RZUEVEX1RFU1RfUAotCiB1c2luZyB0ZXN0aW5nOjpUeXBlczsKLXVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpUeXBlZFRlc3RDYXNlUFN0YXRlOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlR5
cGVkVGVzdFN1aXRlUFN0YXRlOwogCi0vLyBUZXN0cyBUeXBlZFRlc3RDYXNlUFN0YXRlLgorLy8g
VGVzdHMgVHlwZWRUZXN0U3VpdGVQU3RhdGUuCiAKLWNsYXNzIFR5cGVkVGVzdENhc2VQU3RhdGVU
ZXN0IDogcHVibGljIFRlc3QgeworY2xhc3MgVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0IDogcHVi
bGljIFRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgewogICAgIHN0YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwg
IkZvb1Rlc3QiLCAiQSIpOwogICAgIHN0YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZv
b1Rlc3QiLCAiQiIpOwogICAgIHN0YXRlXy5BZGRUZXN0TmFtZSgiZm9vLmNjIiwgMCwgIkZvb1Rl
c3QiLCAiQyIpOwogICB9CiAKLSAgVHlwZWRUZXN0Q2FzZVBTdGF0ZSBzdGF0ZV87CisgIFR5cGVk
VGVzdFN1aXRlUFN0YXRlIHN0YXRlXzsKIH07CiAKLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRl
VGVzdCwgU3VjY2VlZHNGb3JNYXRjaGluZ0xpc3QpIHsKK1RFU1RfRihUeXBlZFRlc3RTdWl0ZVBT
dGF0ZVRlc3QsIFN1Y2NlZWRzRm9yTWF0Y2hpbmdMaXN0KSB7CiAgIGNvbnN0IGNoYXIqIHRlc3Rz
ID0gIkEsIEIsIEMiOwogICBFWFBFQ1RfRVEodGVzdHMsCi0gICAgICAgICAgICBzdGF0ZV8uVmVy
aWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgdGVzdHMpKTsKKyAgICAgICAgICAg
IHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCB0
ZXN0cykpOwogfQogCiAvLyBNYWtlcyBzdXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSB0ZXN0cyBh
bmQgc3BhY2VzIGFyb3VuZCB0aGUgbmFtZXMKIC8vIGRvbid0IG1hdHRlci4KLVRFU1RfRihUeXBl
ZFRlc3RDYXNlUFN0YXRlVGVzdCwgSWdub3Jlc09yZGVyQW5kU3BhY2VzKSB7CitURVNUX0YoVHlw
ZWRUZXN0U3VpdGVQU3RhdGVUZXN0LCBJZ25vcmVzT3JkZXJBbmRTcGFjZXMpIHsKICAgY29uc3Qg
Y2hhciogdGVzdHMgPSAiQSxDLCAgIEIiOwogICBFWFBFQ1RfRVEodGVzdHMsCi0gICAgICAgICAg
ICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgdGVzdHMpKTsK
KyAgICAgICAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJm
b28uY2MiLCAxLCB0ZXN0cykpOwogfQogCi10eXBlZGVmIFR5cGVkVGVzdENhc2VQU3RhdGVUZXN0
IFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3Q7Cit1c2luZyBUeXBlZFRlc3RTdWl0ZVBTdGF0
ZURlYXRoVGVzdCA9IFR5cGVkVGVzdFN1aXRlUFN0YXRlVGVzdDsKIAotVEVTVF9GKFR5cGVkVGVz
dENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNEdXBsaWNhdGVzKSB7CitURVNUX0YoVHlwZWRU
ZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNEdXBsaWNhdGVzKSB7CiAgIEVYUEVDVF9E
RUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1l
cygiZm9vLmNjIiwgMSwgIkEsIEIsIEEsIEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3Rl
cmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQiwgQSwgQyIpLAogICAgICAg
ImZvb1xcLmNjLjEuPzogVGVzdCBBIGlzIGxpc3RlZCBtb3JlIHRoYW4gb25jZVxcLiIpOwogfQog
Ci1URVNUX0YoVHlwZWRUZXN0Q2FzZVBTdGF0ZURlYXRoVGVzdCwgRGV0ZWN0c0V4dHJhVGVzdCkg
eworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzRXh0cmFUZXN0
KSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVn
aXN0ZXJlZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgIkEsIEIsIEMsIEQiKSwKLSAgICAgICJmb29c
XC5jYy4xLj86IE5vIHRlc3QgbmFtZWQgRCBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IGNhc2Vc
XC4iKTsKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJm
b28uY2MiLCAxLCAiQSwgQiwgQywgRCIpLAorICAgICAgImZvb1xcLmNjLjEuPzogTm8gdGVzdCBu
YW1lZCBEIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3Qgc3VpdGVcXC4iKTsKIH0KIAotVEVTVF9G
KFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CitURVNU
X0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNNaXNzZWRUZXN0KSB7CiAg
IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCi0gICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJl
ZFRlc3ROYW1lcygiZm9vLmNjIiwgMSwgIkEsIEMiKSwKKyAgICAgIHN0YXRlXy5WZXJpZnlSZWdp
c3RlcmVkVGVzdE5hbWVzKCJTdWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQyIpLAogICAgICAgImZv
b1xcLmNjLjEuPzogWW91IGZvcmdvdCB0byBsaXN0IHRlc3QgQlxcLiIpOwogfQogCiAvLyBUZXN0
cyB0aGF0IGRlZmluaW5nIGEgdGVzdCBmb3IgYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBnZW5l
cmF0ZXMKIC8vIGEgcnVuLXRpbWUgZXJyb3IgaWYgdGhlIHRlc3QgY2FzZSBoYXMgYmVlbiByZWdp
c3RlcmVkLgotVEVTVF9GKFR5cGVkVGVzdENhc2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNUZXN0
QWZ0ZXJSZWdpc3RyYXRpb24pIHsKLSAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMo
ImZvby5jYyIsIDEsICJBLCBCLCBDIik7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0
aFRlc3QsIERldGVjdHNUZXN0QWZ0ZXJSZWdpc3RyYXRpb24pIHsKKyAgc3RhdGVfLlZlcmlmeVJl
Z2lzdGVyZWRUZXN0TmFtZXMoIlN1aXRlIiwgImZvby5jYyIsIDEsICJBLCBCLCBDIik7CiAgIEVY
UEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoCiAgICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5j
YyIsIDIsICJGb29UZXN0IiwgIkQiKSwKLSAgICAgICJmb29cXC5jYy4yLj86IFRlc3QgRCBtdXN0
IGJlIGRlZmluZWQgYmVmb3JlIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QIgorICAgICAgImZv
b1xcLmNjLjIuPzogVGVzdCBEIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QIgogICAgICAgIlxcKEZvb1Rlc3QsIFxcLlxcLlxcLlxcKVxcLiIpOwogfQog
Ci0vLyBUZXN0cyB0aGF0IFNldFVwVGVzdENhc2UoKS9UZWFyRG93blRlc3RDYXNlKCksIGZpeHR1
cmUgY3Rvci9kdG9yLAorLy8gVGVzdHMgdGhhdCBTZXRVcFRlc3RTdWl0ZSgpL1RlYXJEb3duVGVz
dFN1aXRlKCksIGZpeHR1cmUgY3Rvci9kdG9yLAogLy8gYW5kIFNldFVwKCkvVGVhckRvd24oKSB3
b3JrIGNvcnJlY3RseSBpbiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgRGVyaXZlZFRlc3QgOiBwdWJsaWMgQ29tbW9uVGVzdDxUPiB7CiB9
OwogCi1UWVBFRF9URVNUX0NBU0VfUChEZXJpdmVkVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1Ao
RGVyaXZlZFRlc3QpOwogCiBUWVBFRF9URVNUX1AoRGVyaXZlZFRlc3QsIFZhbHVlc0FyZUNvcnJl
Y3QpIHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2YgdGhlIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUg
Y2FuIGJlIHZpc2l0ZWQgdmlhCkBAIC0yOTIsMTEwICsyODUsMTEwIEBAIFRZUEVEX1RFU1RfUChE
ZXJpdmVkVGVzdCwgVmFsdWVzQXJlQ29ycmVjdCkgewogVFlQRURfVEVTVF9QKERlcml2ZWRUZXN0
LCBWYWx1ZXNBcmVTdGlsbENvcnJlY3QpIHsKICAgLy8gU3RhdGljIG1lbWJlcnMgb2YgdGhlIGZp
eHR1cmUgY2xhc3MgdGVtcGxhdGUgY2FuIGFsc28gYmUgdmlzaXRlZAogICAvLyB2aWEgJ3RoaXMn
LgotICBBU1NFUlRfVFJVRSh0aGlzLT5zaGFyZWRfICE9IE5VTEwpOworICBBU1NFUlRfVFJVRSh0
aGlzLT5zaGFyZWRfICE9IG51bGxwdHIpOwogICBFWFBFQ1RfRVEoNSwgKnRoaXMtPnNoYXJlZF8p
OwogICBFWFBFQ1RfRVEoMiwgdGhpcy0+dmFsdWVfKTsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVT
VF9DQVNFX1AoRGVyaXZlZFRlc3QsCitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoRGVyaXZl
ZFRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNBcmVDb3JyZWN0LCBWYWx1
ZXNBcmVTdGlsbENvcnJlY3QpOwogCiB0eXBlZGVmIFR5cGVzPHNob3J0LCBsb25nPiBNeVR3b1R5
cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIERlcml2ZWRUZXN0LCBNeVR3
b1R5cGVzKTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgRGVyaXZlZFRlc3Qs
IE15VHdvVHlwZXMpOwogCiAvLyBUZXN0cyB0aGF0IGN1c3RvbSBuYW1lcyB3b3JrIHdpdGggdHlw
ZSBwYXJhbWV0cml6ZWQgdGVzdHMuIFdlIHJldXNlIHRoZQogLy8gVHdvVHlwZXMgZnJvbSBhYm92
ZSBoZXJlLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlUGFyYW1ldHJpemVkVGVz
dFdpdGhOYW1lcyA6IHB1YmxpYyBUZXN0IHt9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFy
YW1ldHJpemVkVGVzdFdpdGhOYW1lcyk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRy
aXplZFRlc3RXaXRoTmFtZXMpOwogCi1UWVBFRF9URVNUX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RX
aXRoTmFtZXMsIFRlc3RDYXNlTmFtZSkgewotICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2Ft
ZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1ZSkgeworVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0cml6
ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3VpdGVOYW1lKSB7CisgIGlmIChzdGQ6OmlzX3NhbWU8VHlw
ZVBhcmFtLCBjaGFyPjo6dmFsdWUpIHsKICAgICBFWFBFQ1RfU1RSRVEoOjp0ZXN0aW5nOjpVbml0
VGVzdDo6R2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3Rf
aW5mbygpCi0gICAgICAgICAgICAgICAgICAgICAtPnRlc3RfY2FzZV9uYW1lKCksCisgICAgICAg
ICAgICAgICAgICAgICAtPnRlc3Rfc3VpdGVfbmFtZSgpLAogICAgICAgICAgICAgICAgICAiQ3Vz
dG9tTmFtZS9UeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcy9wYXJDaGFyMCIpOwogICB9Ci0g
IGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFR5cGVQYXJhbSwgaW50Pjo6dmFsdWUpIHsK
KyAgaWYgKHN0ZDo6aXNfc2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7CiAgICAgRVhQRUNU
X1NUUkVRKDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAg
ICAgICAgIC0+Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAgICAgICAgICAgLT50ZXN0
X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0X3N1aXRlX25hbWUoKSwK
ICAgICAgICAgICAgICAgICAgIkN1c3RvbU5hbWUvVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFt
ZXMvcGFySW50MSIpOwogICB9CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQ
YXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0Q2FzZU5hbWUpOworUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0U3VpdGVOYW1l
KTsKIAogY2xhc3MgVHlwZVBhcmFtZXRyaXplZFRlc3ROYW1lcyB7CiAgcHVibGljOgogICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsK
LSAgICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCBjaGFyPjo6dmFsdWUpIHsKKyAg
ICBpZiAoc3RkOjppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6
c3RyaW5nKCJwYXJDaGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQot
ICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGludD46OnZhbHVlKSB7CisgICAg
aWYgKHN0ZDo6aXNfc2FtZTxULCBpbnQ+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3Ry
aW5nKCJwYXJJbnQiKSArIDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9CiAgIH0K
IH07CiAKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKEN1c3RvbU5hbWUsIFR5cGVQYXJh
bWV0cml6ZWRUZXN0V2l0aE5hbWVzLAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEN1
c3RvbU5hbWUsIFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVHdvVHlwZXMsIFR5cGVQYXJhbWV0cml6ZWRUZXN0TmFtZXMpOwogCi0v
LyBUZXN0cyB0aGF0IG11bHRpcGxlIFRZUEVEX1RFU1RfQ0FTRV9QJ3MgY2FuIGJlIGRlZmluZWQg
aW4gdGhlIHNhbWUKKy8vIFRlc3RzIHRoYXQgbXVsdGlwbGUgVFlQRURfVEVTVF9TVUlURV9QJ3Mg
Y2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKIC8vIHRyYW5zbGF0aW9uIHVuaXQuCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0UDEgOiBwdWJsaWMgVGVzdCB7CiB9Owog
Ci1UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQMSk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlw
ZWRUZXN0UDEpOwogCi0vLyBGb3IgdGVzdGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4gVFlQRURf
VEVTVF9DQVNFX1AoKSBhbmQKKy8vIEZvciB0ZXN0aW5nIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBU
WVBFRF9URVNUX1NVSVRFX1AoKSBhbmQKIC8vIFRZUEVEX1RFU1RfUCgpIGlzIG5vdCBlbmNsb3Nl
ZCBpbiBhIG5hbWVzcGFjZS4KLXR5cGVkZWYgaW50IEludEFmdGVyVHlwZWRUZXN0Q2FzZVA7Cit1
c2luZyBJbnRBZnRlclR5cGVkVGVzdFN1aXRlUCA9IGludDsKIAogVFlQRURfVEVTVF9QKFR5cGVk
VGVzdFAxLCBBKSB7fQogVFlQRURfVEVTVF9QKFR5cGVkVGVzdFAxLCBCKSB7fQogCiAvLyBGb3Ig
dGVzdGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4gVFlQRURfVEVTVF9QKCkgYW5kCi0vLyBSRUdJ
U1RFUl9UWVBFRF9URVNUX0NBU0VfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4K
LXR5cGVkZWYgaW50IEludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0Q2FzZVA7CisvLyBSRUdJU1RF
Ul9UWVBFRF9URVNUX1NVSVRFX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCit1
c2luZyBJbnRCZWZvcmVSZWdpc3RlclR5cGVkVGVzdFN1aXRlUCA9IGludDsKIAotUkVHSVNURVJf
VFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UDEsIEEsIEIpOworUkVHSVNURVJfVFlQRURfVEVT
VF9TVUlURV9QKFR5cGVkVGVzdFAxLCBBLCBCKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBj
bGFzcyBUeXBlZFRlc3RQMiA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9Q
KFR5cGVkVGVzdFAyKTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQMik7CiAKIC8vIFRo
aXMgYWxzbyB2ZXJpZmllcyB0aGF0IHRlc3RzIGZyb20gZGlmZmVyZW50IHR5cGUtcGFyYW1ldGVy
aXplZAogLy8gdGVzdCBjYXNlcyBjYW4gc2hhcmUgdGhlIHNhbWUgbmFtZS4KIFRZUEVEX1RFU1Rf
UChUeXBlZFRlc3RQMiwgQSkge30KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZWRU
ZXN0UDIsIEEpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAyLCBBKTsK
IAotLy8gVmVyaWZpZXMgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfQ0FTRV9QKCkg
YW5kCi0vLyBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCgpIGlzIG5vdCBlbmNsb3NlZCBpbiBh
IG5hbWVzcGFjZS4KLUludEFmdGVyVHlwZWRUZXN0Q2FzZVAgYWZ0ZXIgPSAwOwotSW50QmVmb3Jl
UmVnaXN0ZXJUeXBlZFRlc3RDYXNlUCBiZWZvcmUgPSAwOworLy8gVmVyaWZpZXMgdGhhdCB0aGUg
Y29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfU1VJVEVfUCgpIGFuZAorLy8gUkVHSVNURVJfVFlQRURf
VEVTVF9TVUlURV9QKCkgaXMgbm90IGVuY2xvc2VkIGluIGEgbmFtZXNwYWNlLgorSW50QWZ0ZXJU
eXBlZFRlc3RTdWl0ZVAgYWZ0ZXIgPSAwOworSW50QmVmb3JlUmVnaXN0ZXJUeXBlZFRlc3RTdWl0
ZVAgYmVmb3JlID0gMDsKIAotLy8gVmVyaWZpZXMgdGhhdCB0aGUgbGFzdCBhcmd1bWVudCBvZiBJ
TlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpCisvLyBWZXJpZmllcyB0aGF0IHRoZSBsYXN0
IGFyZ3VtZW50IG9mIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUCgpCiAvLyBjYW4gYmUg
ZWl0aGVyIGEgc2luZ2xlIHR5cGUgb3IgYSBUeXBlczwuLi4+IHR5cGUgbGlzdC4KLUlOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfQ0FTRV9QKEludCwgVHlwZWRUZXN0UDEsIGludCk7Ci1JTlNUQU5USUFU
RV9UWVBFRF9URVNUX0NBU0VfUChJbnQsIFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsKK0lOU1RB
TlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChJbnQsIFR5cGVkVGVzdFAxLCBpbnQpOworSU5TVEFO
VElBVEVfVFlQRURfVEVTVF9TVUlURV9QKEludCwgVHlwZWRUZXN0UDIsIFR5cGVzPGludD4pOwog
CiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1lIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2Fu
IGJlCiAvLyBpbnN0YW50aWF0ZWQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgdHJhbnNsYXRp
b24gdW5pdC4KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKERvdWJsZSwgVHlwZWRUZXN0
UDIsIFR5cGVzPGRvdWJsZT4pOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKERvdWJs
ZSwgVHlwZWRUZXN0UDIsIFR5cGVzPGRvdWJsZT4pOwogCiAvLyBUZXN0cyB0aGF0IHRoZSBzYW1l
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgY2FuIGJlCiAvLyBpbnN0YW50aWF0ZWQgaW4g
ZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGxpbmtlZCB0b2dldGhlci4KIC8vIChDb250YWlu
ZXJUZXN0IGlzIGFsc28gaW5zdGFudGlhdGVkIGluIGd0ZXN0LXR5cGVkLXRlc3RfdGVzdC5jYy4p
CiB0eXBlZGVmIFR5cGVzPHN0ZDo6dmVjdG9yPGRvdWJsZT4sIHN0ZDo6c2V0PGNoYXI+ID4gTXlD
b250YWluZXJzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIENvbnRhaW5lclRl
c3QsIE15Q29udGFpbmVycyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIENv
bnRhaW5lclRlc3QsIE15Q29udGFpbmVycyk7CiAKIC8vIFRlc3RzIHRoYXQgYSB0eXBlLXBhcmFt
ZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBkZWZpbmVkIGFuZAogLy8gaW5zdGFudGlhdGVkIGlu
IGEgbmFtZXNwYWNlLgpAQCAtNDA2LDcgKzM5OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgTnVtZXJpY1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0Vf
UChOdW1lcmljVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoTnVtZXJpY1Rlc3QpOwogCiBUWVBF
RF9URVNUX1AoTnVtZXJpY1Rlc3QsIERlZmF1bHRJc1plcm8pIHsKICAgRVhQRUNUX0VRKDAsIFR5
cGVQYXJhbSgpKTsKQEAgLTQxNiw0NiArNDA5LDI5IEBAIFRZUEVEX1RFU1RfUChOdW1lcmljVGVz
dCwgWmVyb0lzTGVzc1RoYW5PbmUpIHsKICAgRVhQRUNUX0xUKFR5cGVQYXJhbSgwKSwgVHlwZVBh
cmFtKDEpKTsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoTnVtZXJpY1Rlc3QsCitS
RUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoTnVtZXJpY1Rlc3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEZWZhdWx0SXNaZXJvLCBaZXJvSXNMZXNzVGhhbk9uZSk7CiB0eXBlZGVmIFR5
cGVzPGludCwgZG91YmxlPiBOdW1lcmljVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NB
U0VfUChNeSwgTnVtZXJpY1Rlc3QsIE51bWVyaWNUeXBlcyk7CitJTlNUQU5USUFURV9UWVBFRF9U
RVNUX1NVSVRFX1AoTXksIE51bWVyaWNUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBzdGF0aWMgY29u
c3QgY2hhciogR2V0VGVzdE5hbWUoKSB7CiAgIHJldHVybiB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKS0+bmFtZSgpOwogfQogLy8gVGVzdCB0aGUg
c3RyaXBwaW5nIG9mIHNwYWNlIGZyb20gdGVzdCBuYW1lcwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIFRyaW1tZWRUZXN0IDogcHVibGljIFRlc3QgeyB9OwotVFlQRURfVEVTVF9DQVNFX1Ao
VHJpbW1lZFRlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKFRyaW1tZWRUZXN0KTsKIFRZUEVEX1RF
U1RfUChUcmltbWVkVGVzdCwgVGVzdDEpIHsgRVhQRUNUX1NUUkVRKCJUZXN0MSIsIEdldFRlc3RO
YW1lKCkpOyB9CiBUWVBFRF9URVNUX1AoVHJpbW1lZFRlc3QsIFRlc3QyKSB7IEVYUEVDVF9TVFJF
USgiVGVzdDIiLCBHZXRUZXN0TmFtZSgpKTsgfQogVFlQRURfVEVTVF9QKFRyaW1tZWRUZXN0LCBU
ZXN0MykgeyBFWFBFQ1RfU1RSRVEoIlRlc3QzIiwgR2V0VGVzdE5hbWUoKSk7IH0KIFRZUEVEX1RF
U1RfUChUcmltbWVkVGVzdCwgVGVzdDQpIHsgRVhQRUNUX1NUUkVRKCJUZXN0NCIsIEdldFRlc3RO
YW1lKCkpOyB9CiBUWVBFRF9URVNUX1AoVHJpbW1lZFRlc3QsIFRlc3Q1KSB7IEVYUEVDVF9TVFJF
USgiVGVzdDUiLCBHZXRUZXN0TmFtZSgpKTsgfQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1Ao
CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoCiAgICAgVHJpbW1lZFRlc3QsCiAgICAgVGVz
dDEsIFRlc3QyLFRlc3QzICwgVGVzdDQgLFRlc3Q1ICk7ICAvLyBOT0xJTlQKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBNeVBhaXIge307CiAvLyBCZSBzdXJlIHRv
IHRyeSBhIHR5cGUgd2l0aCBhIGNvbW1hIGluIGl0cyBuYW1lIGp1c3QgaW4gY2FzZSBpdCBtYXR0
ZXJzLgogdHlwZWRlZiBUeXBlczxpbnQsIGRvdWJsZSwgTXlQYWlyPGludCwgaW50PiA+IFRyaW1U
eXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBUcmltbWVkVGVzdCwgVHJp
bVR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgVHJpbW1lZFRlc3Qs
IFRyaW1UeXBlcyk7CiAKIH0gIC8vIG5hbWVzcGFjZSBsaWJyYXJ5MgogCi0jZW5kaWYgIC8vIEdU
RVNUX0hBU19UWVBFRF9URVNUX1AKLQotI2lmICFkZWZpbmVkKEdURVNUX0hBU19UWVBFRF9URVNU
KSAmJiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVF9QKQotCi0vLyBHb29nbGUgVGVzdCBt
YXkgbm90IHN1cHBvcnQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIHdpdGggc29tZQotLy8gY29t
cGlsZXJzLiBJZiB3ZSB1c2UgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gY29tcGlsZSBvdXQg
YWxsCi0vLyBjb2RlIHJlZmVycmluZyB0byB0aGUgZ3Rlc3RfbWFpbiBsaWJyYXJ5LCBNU1ZDIGxp
bmtlciB3aWxsIG5vdCBsaW5rCi0vLyB0aGF0IGxpYnJhcnkgYXQgYWxsIGFuZCBjb25zZXF1ZW50
bHkgY29tcGxhaW4gYWJvdXQgbWlzc2luZyBlbnRyeQotLy8gcG9pbnQgZGVmaW5lZCBpbiB0aGF0
IGxpYnJhcnkgKGZhdGFsIGVycm9yIExOSzE1NjE6IGVudHJ5IHBvaW50Ci0vLyBtdXN0IGJlIGRl
ZmluZWQpLiBUaGlzIGR1bW15IHRlc3Qga2VlcHMgZ3Rlc3RfbWFpbiBsaW5rZWQgaW4uCi1URVNU
KER1bW15VGVzdCwgVHlwZWRUZXN0c0FyZU5vdFN1cHBvcnRlZE9uVGhpc1BsYXRmb3JtKSB7fQot
Ci0jaWYgX01TQ19WRVIKLUdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQx
MjcKLSNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIF9NU0NfVkVSCi0KLSNl
bmRpZiAgLy8gI2lmICFkZWZpbmVkKEdURVNUX0hBU19UWVBFRF9URVNUKSAmJiAhZGVmaW5lZChH
VEVTVF9IQVNfVFlQRURfVEVTVF9QKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmgKaW5kZXggMmNjZTY3YzgyNWE2Y2FiZGI5YTU0
YjkxOTI5YzAwYzk5MmEwZDQ3Yy4uOGNlNTU5Yzk5ZjczNDFjZWI4YTBiMmI4OWM0YjFhOTcwMjZm
YTVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBl
ZC10ZXN0X3Rlc3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5
cGVkLXRlc3RfdGVzdC5oCkBAIC0yNywxNCArMjcsMTEgQEAKIC8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotCi0jaWZuZGVmIEdURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNU
X0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjaWZuZGVm
IEdPT0dMRVRFU1RfVEVTVF9HVEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KKyNkZWZpbmUgR09PR0xF
VEVTVF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXwogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3QuaCIKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogdXNpbmcgdGVzdGluZzo6VGVz
dDsKIAogLy8gRm9yIHRlc3RpbmcgdGhhdCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dCBjYXNlIGNhbiBiZQpAQCAtNDYsNyArNDMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNs
YXNzIENvbnRhaW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0Vf
UChDb250YWluZXJUZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChDb250YWluZXJUZXN0KTsKIAog
VFlQRURfVEVTVF9QKENvbnRhaW5lclRlc3QsIENhbkJlRGVmYXVsdENvbnN0cnVjdGVkKSB7CiAg
IFR5cGVQYXJhbSBjb250YWluZXI7CkBAIC01Nyw5ICs1NCw3IEBAIFRZUEVEX1RFU1RfUChDb250
YWluZXJUZXN0LCBJbml0aWFsU2l6ZUlzWmVybykgewogICBFWFBFQ1RfRVEoMFUsIGNvbnRhaW5l
ci5zaXplKCkpOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChDb250YWluZXJUZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuQmVEZWZhdWx0Q29uc3RydWN0ZWQsIElu
aXRpYWxTaXplSXNaZXJvKTsKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCitS
RUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQ29udGFpbmVyVGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDYW5CZURlZmF1bHRDb25zdHJ1Y3RlZCwgSW5pdGlhbFNpemVJc1plcm8p
OwogCi0jZW5kaWYgIC8vIEdURVNUX1RFU1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCisjZW5k
aWYgIC8vIEdPT0dMRVRFU1RfVEVTVF9HVEVTVF9UWVBFRF9URVNUX1RFU1RfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3Qu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0
LmNjCmluZGV4IGYzZWEwM2E1OTZkMGY5OWEzOTEyNTI2MzBkY2ExMDYyMjkzMTEyZmMuLjhlZjUw
NTgzOGM3MGRmYzZlMzM1NGU4NTE4OWZjM2ZhZjBiMGFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYwpAQCAt
NTEsNjEgKzUxLDU2IEBAIHN0cnVjdCBMZXNzQnlOYW1lIHsKIAogY2xhc3MgVW5pdFRlc3RIZWxw
ZXIgewogIHB1YmxpYzoKLSAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxs
IHRlc3QgY2FzZXMgc29ydGVkIGJ5IHRoZSB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJucyB0aGUgYXJy
YXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3Qgc3VpdGVzIHNvcnRlZCBieSB0aGUgdGVzdCBzdWl0
ZQogICAvLyBuYW1lLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhl
IGFycmF5LgotICBzdGF0aWMgVGVzdENhc2UgY29uc3QqKiBHZXRTb3J0ZWRUZXN0Q2FzZXMoKSB7
CisgIHN0YXRpYyBUZXN0U3VpdGUgY29uc3QqKiBHZXRTb3J0ZWRUZXN0U3VpdGVzKCkgewogICAg
IFVuaXRUZXN0JiB1bml0X3Rlc3QgPSAqVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7Ci0gICAgVGVz
dENhc2UgY29uc3QqKiBjb25zdCB0ZXN0X2Nhc2VzID0KLSAgICAgICAgbmV3IGNvbnN0IFRlc3RD
YXNlKlt1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCldOworICAgIGF1dG8gY29uc3Qq
KiBjb25zdCB0ZXN0X3N1aXRlcyA9IG5ldyBjb25zdCBUZXN0U3VpdGUqW3N0YXRpY19jYXN0PHNp
emVfdD4oCisgICAgICB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpKV07CiAKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsg
KytpKQotICAgICAgdGVzdF9jYXNlc1tpXSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7
ICsraSkKKyAgICAgIHRlc3Rfc3VpdGVzW2ldID0gdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKTsK
IAotICAgIHN0ZDo6c29ydCh0ZXN0X2Nhc2VzLAotICAgICAgICAgICAgICB0ZXN0X2Nhc2VzICsg
dW5pdF90ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpLAotICAgICAgICAgICAgICBMZXNzQnlO
YW1lPFRlc3RDYXNlPigpKTsKLSAgICByZXR1cm4gdGVzdF9jYXNlczsKKyAgICBzdGQ6OnNvcnQo
dGVzdF9zdWl0ZXMsCisgICAgICAgICAgICAgIHRlc3Rfc3VpdGVzICsgdW5pdF90ZXN0LnRvdGFs
X3Rlc3Rfc3VpdGVfY291bnQoKSwKKyAgICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0U3VpdGU+
KCkpOworICAgIHJldHVybiB0ZXN0X3N1aXRlczsKICAgfQogCi0gIC8vIFJldHVybnMgdGhlIHRl
c3QgY2FzZSBieSBpdHMgbmFtZS4gIFRoZSBjYWxsZXIgZG9lc24ndCBvd24gdGhlIHJldHVybmVk
CisgIC8vIFJldHVybnMgdGhlIHRlc3Qgc3VpdGUgYnkgaXRzIG5hbWUuICBUaGUgY2FsbGVyIGRv
ZXNuJ3Qgb3duIHRoZSByZXR1cm5lZAogICAvLyBwb2ludGVyLgotICBzdGF0aWMgY29uc3QgVGVz
dENhc2UqIEZpbmRUZXN0Q2FzZShjb25zdCBjaGFyKiBuYW1lKSB7CisgIHN0YXRpYyBjb25zdCBU
ZXN0U3VpdGUqIEZpbmRUZXN0U3VpdGUoY29uc3QgY2hhciogbmFtZSkgewogICAgIFVuaXRUZXN0
JiB1bml0X3Rlc3QgPSAqVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7Ci0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkgewotICAgICAg
Y29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IHVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAg
ICAgIGlmICgwID09IHN0cmNtcCh0ZXN0X2Nhc2UtPm5hbWUoKSwgbmFtZSkpCi0gICAgICAgIHJl
dHVybiB0ZXN0X2Nhc2U7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxf
dGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAgICAgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9z
dWl0ZSA9IHVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7CisgICAgICBpZiAoMCA9PSBzdHJjbXAo
dGVzdF9zdWl0ZS0+bmFtZSgpLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHRlc3Rfc3VpdGU7CiAg
ICAgfQotICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKLSAgLy8g
UmV0dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRlc3RzIGluIGEgcGFydGljdWxh
ciB0ZXN0IGNhc2UKKyAgLy8gUmV0dXJucyB0aGUgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYWxsIHRl
c3RzIGluIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlCiAgIC8vIHNvcnRlZCBieSB0aGUgdGVzdCBu
YW1lLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlCiAgIC8vIGFy
cmF5LgotICBzdGF0aWMgVGVzdEluZm8gY29uc3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0
Q2FzZSogdGVzdF9jYXNlKSB7Ci0gICAgVGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9Ci0g
ICAgICAgIG5ldyBjb25zdCBUZXN0SW5mbypbdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCld
OworICBzdGF0aWMgVGVzdEluZm8gY29uc3QqKiBHZXRTb3J0ZWRUZXN0cyhjb25zdCBUZXN0U3Vp
dGUqIHRlc3Rfc3VpdGUpIHsKKyAgICBUZXN0SW5mbyBjb25zdCoqIGNvbnN0IHRlc3RzID0gbmV3
IGNvbnN0IFRlc3RJbmZvKltzdGF0aWNfY2FzdDxzaXplX3Q+KAorICAgICAgdGVzdF9zdWl0ZS0+
dG90YWxfdGVzdF9jb3VudCgpKV07CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2Fz
ZS0+dG90YWxfdGVzdF9jb3VudCgpOyArK2kpCi0gICAgICB0ZXN0c1tpXSA9IHRlc3RfY2FzZS0+
R2V0VGVzdEluZm8oaSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlLT50b3Rh
bF90ZXN0X2NvdW50KCk7ICsraSkKKyAgICAgIHRlc3RzW2ldID0gdGVzdF9zdWl0ZS0+R2V0VGVz
dEluZm8oaSk7CiAKLSAgICBzdGQ6OnNvcnQodGVzdHMsIHRlc3RzICsgdGVzdF9jYXNlLT50b3Rh
bF90ZXN0X2NvdW50KCksCisgICAgc3RkOjpzb3J0KHRlc3RzLCB0ZXN0cyArIHRlc3Rfc3VpdGUt
PnRvdGFsX3Rlc3RfY291bnQoKSwKICAgICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0SW5mbz4o
KSk7CiAgICAgcmV0dXJuIHRlc3RzOwogICB9CiB9OwogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RF
U1QKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUZXN0Q2FzZVdpdGhDb21tZW50VGVzdCA6
IHB1YmxpYyBUZXN0IHt9OwotVFlQRURfVEVTVF9DQVNFKFRlc3RDYXNlV2l0aENvbW1lbnRUZXN0
LCBUeXBlczxpbnQ+KTsKLVRZUEVEX1RFU1QoVGVzdENhc2VXaXRoQ29tbWVudFRlc3QsIER1bW15
KSB7fQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRlc3RTdWl0ZVdpdGhDb21tZW50VGVz
dCA6IHB1YmxpYyBUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURShUZXN0U3VpdGVXaXRoQ29tbWVu
dFRlc3QsIFR5cGVzPGludD4pOworVFlQRURfVEVTVChUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3Qs
IER1bW15KSB7fQogCi1jb25zdCBpbnQga1R5cGVkVGVzdENhc2VzID0gMTsKK2NvbnN0IGludCBr
VHlwZWRUZXN0U3VpdGVzID0gMTsKIGNvbnN0IGludCBrVHlwZWRUZXN0cyA9IDE7Ci0jZWxzZQot
Y29uc3QgaW50IGtUeXBlZFRlc3RDYXNlcyA9IDA7Ci1jb25zdCBpbnQga1R5cGVkVGVzdHMgPSAw
OwotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAogCiAvLyBXZSBjYW4gb25seSB0ZXN0
IHRoZSBhY2Nlc3NvcnMgdGhhdCBkbyBub3QgY2hhbmdlIHZhbHVlIHdoaWxlIHRlc3RzIHJ1bi4K
IC8vIFNpbmNlIHRlc3RzIGNhbiBiZSBydW4gaW4gYW55IG9yZGVyLCB0aGUgdmFsdWVzIHRoZSBh
Y2Nlc3NvcnMgdGhhdCB0cmFjawpAQCAtMTEzLDIxICsxMDgsMTkgQEAgY29uc3QgaW50IGtUeXBl
ZFRlc3RzID0gMDsKIFRFU1QoQXBpVGVzdCwgVW5pdFRlc3RJbW11dGFibGVBY2Nlc3NvcnNXb3Jr
KSB7CiAgIFVuaXRUZXN0KiB1bml0X3Rlc3QgPSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKTsKIAot
ICBBU1NFUlRfRVEoMiArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X2Nh
c2VfY291bnQoKSk7Ci0gIEVYUEVDVF9FUSgxICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3Qt
PnRlc3RfY2FzZV90b19ydW5fY291bnQoKSk7CisgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdFN1
aXRlcywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkpOworICBFWFBFQ1RfRVEo
MSArIGtUeXBlZFRlc3RTdWl0ZXMsIHVuaXRfdGVzdC0+dGVzdF9zdWl0ZV90b19ydW5fY291bnQo
KSk7CiAgIEVYUEVDVF9FUSgyLCB1bml0X3Rlc3QtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CiAg
IEVYUEVDVF9FUSg1ICsga1R5cGVkVGVzdHMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jb3VudCgp
KTsKICAgRVhQRUNUX0VRKDMgKyBrVHlwZWRUZXN0cywgdW5pdF90ZXN0LT50ZXN0X3RvX3J1bl9j
b3VudCgpKTsKIAotICBjb25zdCBUZXN0Q2FzZSoqIGNvbnN0IHRlc3RfY2FzZXMgPSBVbml0VGVz
dEhlbHBlcjo6R2V0U29ydGVkVGVzdENhc2VzKCk7CisgIGNvbnN0IFRlc3RTdWl0ZSoqIGNvbnN0
IHRlc3Rfc3VpdGVzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RTdWl0ZXMoKTsKIAot
ICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0X2Nhc2VzWzBdLT5uYW1lKCkpOwotICBFWFBF
Q1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X2Nhc2VzWzFdLT5uYW1lKCkpOwotI2lmIEdU
RVNUX0hBU19UWVBFRF9URVNUCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRl
c3QvMCIsIHRlc3RfY2FzZXNbMl0tPm5hbWUoKSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBF
RF9URVNUCisgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3Rfc3VpdGVzWzBdLT5uYW1lKCkp
OworICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X3N1aXRlc1sxXS0+bmFtZSgp
KTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rfc3Vp
dGVzWzJdLT5uYW1lKCkpOwogCi0gIGRlbGV0ZVtdIHRlc3RfY2FzZXM7CisgIGRlbGV0ZVtdIHRl
c3Rfc3VpdGVzOwogCiAgIC8vIFRoZSBmb2xsb3dpbmcgbGluZXMgaW5pdGlhdGUgYWN0aW9ucyB0
byB2ZXJpZnkgY2VydGFpbiBtZXRob2RzIGluCiAgIC8vIEZpbmFsU3VjY2Vzc0NoZWNrZXI6OlRl
YXJEb3duLgpAQCAtMTM3LDE2MCArMTMwLDE1NyBAQCBURVNUKEFwaVRlc3QsIFVuaXRUZXN0SW1t
dXRhYmxlQWNjZXNzb3JzV29yaykgewogfQogCiBBc3NlcnRpb25SZXN1bHQgSXNOdWxsKGNvbnN0
IGNoYXIqIHN0cikgewotICBpZiAoc3RyICE9IE5VTEwpIHsKKyAgaWYgKHN0ciAhPSBudWxscHRy
KSB7CiAgICAgcmV0dXJuIHRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiYXJndW1lbnQg
aXMgIiA8PCBzdHI7CiAgIH0KICAgcmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIH0KIAotVEVT
VChBcGlUZXN0LCBUZXN0Q2FzZUltbXV0YWJsZUFjY2Vzc29yc1dvcmspIHsKLSAgY29uc3QgVGVz
dENhc2UqIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdENhc2UoIkFwaVRlc3Qi
KTsKLSAgQVNTRVJUX1RSVUUodGVzdF9jYXNlICE9IE5VTEwpOworVEVTVChBcGlUZXN0LCBUZXN0
U3VpdGVJbW11dGFibGVBY2Nlc3NvcnNXb3JrKSB7CisgIGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9z
dWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJBcGlUZXN0Iik7CisgIEFTU0VS
VF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVsbHB0cik7CiAKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0
IiwgdGVzdF9jYXNlLT5uYW1lKCkpOwotICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9jYXNlLT50
eXBlX3BhcmFtKCkpKTsKLSAgRVhQRUNUX1RSVUUodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwot
ICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBF
Q1RfRVEoMywgdGVzdF9jYXNlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDQs
IHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0
IiwgdGVzdF9zdWl0ZS0+bmFtZSgpKTsKKyAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3VpdGUt
PnR5cGVfcGFyYW0oKSkpOworICBFWFBFQ1RfVFJVRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkp
OworICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAg
RVhQRUNUX0VRKDMsIHRlc3Rfc3VpdGUtPnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRf
RVEoNCwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0SW5m
byoqIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7Cisg
IGNvbnN0IFRlc3RJbmZvKiogdGVzdHMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHMo
dGVzdF9zdWl0ZSk7CiAKICAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9EdW1teTEiLCB0ZXN0c1sw
XS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3RfY2Fz
ZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9zdWl0
ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMF0tPnZhbHVlX3BhcmFtKCkp
KTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpKTsKICAgRVhQ
RUNUX0ZBTFNFKHRlc3RzWzBdLT5zaG91bGRfcnVuKCkpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVz
dENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKLSAgRVhQRUNU
X1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMV0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1Rf
U1RSRVEoIlRlc3RTdWl0ZURpc2FibGVkQWNjZXNzb3JzV29yayIsIHRlc3RzWzFdLT5uYW1lKCkp
OworICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+dGVzdF9zdWl0ZV9uYW1lKCkp
OwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMV0tPnZhbHVlX3BhcmFtKCkpKTsKICAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RzWzFdLT50eXBlX3BhcmFtKCkpKTsKICAgRVhQRUNUX1RSVUUo
dGVzdHNbMV0tPnNob3VsZF9ydW4oKSk7CiAKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZUltbXV0
YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJB
cGlUZXN0IiwgdGVzdHNbMl0tPnRlc3RfY2FzZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEoIlRl
c3RTdWl0ZUltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKKyAgRVhQ
RUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMl0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3RzWzJdLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVF
KElzTnVsbCh0ZXN0c1syXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKHRlc3RzWzJd
LT5zaG91bGRfcnVuKCkpOwogCiAgIEVYUEVDVF9TVFJFUSgiVW5pdFRlc3RJbW11dGFibGVBY2Nl
c3NvcnNXb3JrIiwgdGVzdHNbM10tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIs
IHRlc3RzWzNdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rz
WzNdLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1szXS0+dHlw
ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKHRlc3RzWzNdLT5zaG91bGRfcnVuKCkpOwogCiAg
IGRlbGV0ZVtdIHRlc3RzOwotICB0ZXN0cyA9IE5VTEw7CisgIHRlc3RzID0gbnVsbHB0cjsKIAot
I2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpG
aW5kVGVzdENhc2UoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiKTsKLSAgQVNTRVJUX1RSVUUo
dGVzdF9jYXNlICE9IE5VTEwpOworICB0ZXN0X3N1aXRlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRU
ZXN0U3VpdGUoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIik7CisgIEFTU0VSVF9UUlVFKHRl
c3Rfc3VpdGUgIT0gbnVsbHB0cik7CiAKLSAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21t
ZW50VGVzdC8wIiwgdGVzdF9jYXNlLT5uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5h
bWU8aW50PigpLmNfc3RyKCksIHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpKTsKLSAgRVhQRUNUX1RS
VUUodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlLT5k
aXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlLT50ZXN0X3Rv
X3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDEsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3Vu
dCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3Rf
c3VpdGUtPm5hbWUoKSk7CisgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+Pigp
LmNfc3RyKCksIHRlc3Rfc3VpdGUtPnR5cGVfcGFyYW0oKSk7CisgIEVYUEVDVF9UUlVFKHRlc3Rf
c3VpdGUtPnNob3VsZF9ydW4oKSk7CisgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlLT5kaXNhYmxl
ZF90ZXN0X2NvdW50KCkpOworICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZS0+dGVzdF90b19ydW5f
Y291bnQoKSk7CisgIEFTU0VSVF9FUSgxLCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCkp
OwogCi0gIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7
CisgIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwog
CiAgIEVYUEVDVF9TVFJFUSgiRHVtbXkiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NU
UkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3RfY2FzZV9uYW1l
KCkpOworICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdHNb
MF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52
YWx1ZV9wYXJhbSgpKSk7Ci0gIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxpbnQ+KCkuY19zdHIo
KSwgdGVzdHNbMF0tPnR5cGVfcGFyYW0oKSk7CisgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxU
eXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOwogICBFWFBFQ1Rf
VFJVRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigpKTsKIAogICBkZWxldGVbXSB0ZXN0czsKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKIH0KIAotVEVTVChBcGlUZXN0LCBUZXN0Q2FzZURp
c2FibGVkQWNjZXNzb3JzV29yaykgewotICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5p
dFRlc3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgiRElTQUJMRURfVGVzdCIpOwotICBBU1NFUlRfVFJV
RSh0ZXN0X2Nhc2UgIT0gTlVMTCk7CitURVNUKEFwaVRlc3QsIFRlc3RTdWl0ZURpc2FibGVkQWNj
ZXNzb3JzV29yaykgeworICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhl
bHBlcjo6RmluZFRlc3RTdWl0ZSgiRElTQUJMRURfVGVzdCIpOworICBBU1NFUlRfVFJVRSh0ZXN0
X3N1aXRlICE9IG51bGxwdHIpOwogCi0gIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRl
c3RfY2FzZS0+bmFtZSgpKTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZS0+dHlwZV9w
YXJhbSgpKSk7Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2UtPnNob3VsZF9ydW4oKSk7Ci0gIEVY
UEVDVF9FUSgxLCB0ZXN0X2Nhc2UtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7Ci0gIEVYUEVDVF9F
USgwLCB0ZXN0X2Nhc2UtPnRlc3RfdG9fcnVuX2NvdW50KCkpOwotICBBU1NFUlRfRVEoMSwgdGVz
dF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCkpOworICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rl
c3QiLCB0ZXN0X3N1aXRlLT5uYW1lKCkpOworICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9zdWl0
ZS0+dHlwZV9wYXJhbSgpKSk7CisgIEVYUEVDVF9GQUxTRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVu
KCkpOworICBFWFBFQ1RfRVEoMSwgdGVzdF9zdWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsK
KyAgRVhQRUNUX0VRKDAsIHRlc3Rfc3VpdGUtPnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NF
UlRfRVEoMSwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKIAotICBjb25zdCBUZXN0
SW5mbyogY29uc3QgdGVzdF9pbmZvID0gdGVzdF9jYXNlLT5HZXRUZXN0SW5mbygwKTsKKyAgY29u
c3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKDAp
OwogICBFWFBFQ1RfU1RSRVEoIkR1bW15MiIsIHRlc3RfaW5mby0+bmFtZSgpKTsKLSAgRVhQRUNU
X1NUUkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAg
RVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUo
KSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2luZm8tPnZhbHVlX3BhcmFtKCkpKTsKICAg
RVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfaW5mby0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9G
QUxTRSh0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSk7CiB9CiAKIC8vIFRoZXNlIHR3byB0ZXN0cyBh
cmUgaGVyZSB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRlc3RpbmcKLS8vIHRlc3RfY2FzZV90b19y
dW5fY291bnQsIGRpc2FibGVkX3Rlc3RfY291bnQsIGFuZCB0ZXN0X3RvX3J1bl9jb3VudC4KKy8v
IHRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50LCBkaXNhYmxlZF90ZXN0X2NvdW50LCBhbmQgdGVzdF90
b19ydW5fY291bnQuCiBURVNUKEFwaVRlc3QsIERJU0FCTEVEX0R1bW15MSkge30KIFRFU1QoRElT
QUJMRURfVGVzdCwgRHVtbXkyKSB7fQogCiBjbGFzcyBGaW5hbFN1Y2Nlc3NDaGVja2VyIDogcHVi
bGljIEVudmlyb25tZW50IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigp
IHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBVbml0VGVzdCogdW5pdF90ZXN0
ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7CiAKLSAgICBFWFBFQ1RfRVEoMSArIGtUeXBlZFRl
c3RDYXNlcywgdW5pdF90ZXN0LT5zdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpKTsKKyAgICBF
WFBFQ1RfRVEoMSArIGtUeXBlZFRlc3RTdWl0ZXMsIHVuaXRfdGVzdC0+c3VjY2Vzc2Z1bF90ZXN0
X3N1aXRlX2NvdW50KCkpOwogICAgIEVYUEVDVF9FUSgzICsga1R5cGVkVGVzdHMsIHVuaXRfdGVz
dC0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3Qt
PmZhaWxlZF90ZXN0X2Nhc2VfY291bnQoKSk7CisgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+
ZmFpbGVkX3Rlc3Rfc3VpdGVfY291bnQoKSk7CiAgICAgRVhQRUNUX0VRKDAsIHVuaXRfdGVzdC0+
ZmFpbGVkX3Rlc3RfY291bnQoKSk7CiAgICAgRVhQRUNUX1RSVUUodW5pdF90ZXN0LT5QYXNzZWQo
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVuaXRfdGVzdC0+RmFpbGVkKCkpOwotICAgIEFTU0VSVF9F
USgyICsga1R5cGVkVGVzdENhc2VzLCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgp
KTsKLQotICAgIGNvbnN0IFRlc3RDYXNlKiogY29uc3QgdGVzdF9jYXNlcyA9IFVuaXRUZXN0SGVs
cGVyOjpHZXRTb3J0ZWRUZXN0Q2FzZXMoKTsKLQotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIs
IHRlc3RfY2FzZXNbMF0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2Fz
ZXNbMF0tPnR5cGVfcGFyYW0oKSkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3RfY2FzZXNbMF0tPnNo
b3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZXNbMF0tPmRpc2FibGVkX3Rl
c3RfY291bnQoKSk7Ci0gICAgQVNTRVJUX0VRKDQsIHRlc3RfY2FzZXNbMF0tPnRvdGFsX3Rlc3Rf
Y291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIHRlc3RfY2FzZXNbMF0tPnN1Y2Nlc3NmdWxfdGVz
dF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1swXS0+ZmFpbGVkX3Rlc3Rf
Y291bnQoKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1swXS0+UGFzc2VkKCkpOwotICAg
IEVYUEVDVF9GQUxTRSh0ZXN0X2Nhc2VzWzBdLT5GYWlsZWQoKSk7Ci0KLSAgICBFWFBFQ1RfU1RS
RVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X2Nhc2VzWzFdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9U
UlVFKElzTnVsbCh0ZXN0X2Nhc2VzWzFdLT50eXBlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfRkFM
U0UodGVzdF9jYXNlc1sxXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdF9j
YXNlc1sxXS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9j
YXNlc1sxXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNl
c1sxXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nh
c2VzWzFdLT5mYWlsZWRfdGVzdF9jb3VudCgpKTsKLQotI2lmIEdURVNUX0hBU19UWVBFRF9URVNU
Ci0gICAgRVhQRUNUX1NUUkVRKCJUZXN0Q2FzZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9jYXNl
c1syXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3Ry
KCksIHRlc3RfY2FzZXNbMl0tPnR5cGVfcGFyYW0oKSk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9j
YXNlc1syXS0+c2hvdWxkX3J1bigpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1syXS0+
ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNlc1syXS0+
dG90YWxfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNlc1syXS0+c3Vj
Y2Vzc2Z1bF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVDVF9FUSgwLCB0ZXN0X2Nhc2VzWzJdLT5m
YWlsZWRfdGVzdF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2Nhc2VzWzJdLT5QYXNz
ZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKHRlc3RfY2FzZXNbMl0tPkZhaWxlZCgpKTsKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nh
c2UgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RDYXNlKCJBcGlUZXN0Iik7Ci0gICAgY29uc3Qg
VGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nh
c2UpOworICAgIEFTU0VSVF9FUSgyICsga1R5cGVkVGVzdFN1aXRlcywgdW5pdF90ZXN0LT50b3Rh
bF90ZXN0X3N1aXRlX2NvdW50KCkpOworCisgICAgY29uc3QgVGVzdFN1aXRlKiogY29uc3QgdGVz
dF9zdWl0ZXMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdFN1aXRlcygpOworCisgICAg
RVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdF9zdWl0ZXNbMF0tPm5hbWUoKSk7CisgICAgRVhQ
RUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3VpdGVzWzBdLT50eXBlX3BhcmFtKCkpKTsKKyAgICBFWFBF
Q1RfVFJVRSh0ZXN0X3N1aXRlc1swXS0+c2hvdWxkX3J1bigpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
dGVzdF9zdWl0ZXNbMF0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgICAgQVNTRVJUX0VRKDQs
IHRlc3Rfc3VpdGVzWzBdLT50b3RhbF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgzLCB0
ZXN0X3N1aXRlc1swXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgw
LCB0ZXN0X3N1aXRlc1swXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CisgICAgRVhQRUNUX1RSVUUo
dGVzdF9zdWl0ZXNbMF0tPlBhc3NlZCgpKTsKKyAgICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZXNb
MF0tPkZhaWxlZCgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVzdCIsIHRlc3Rf
c3VpdGVzWzFdLT5uYW1lKCkpOworICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRlc1sx
XS0+dHlwZV9wYXJhbSgpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVzWzFdLT5zaG91
bGRfcnVuKCkpOworICAgIEVYUEVDVF9FUSgxLCB0ZXN0X3N1aXRlc1sxXS0+ZGlzYWJsZWRfdGVz
dF9jb3VudCgpKTsKKyAgICBBU1NFUlRfRVEoMSwgdGVzdF9zdWl0ZXNbMV0tPnRvdGFsX3Rlc3Rf
Y291bnQoKSk7CisgICAgRVhQRUNUX0VRKDAsIHRlc3Rfc3VpdGVzWzFdLT5zdWNjZXNzZnVsX3Rl
c3RfY291bnQoKSk7CisgICAgRVhQRUNUX0VRKDAsIHRlc3Rfc3VpdGVzWzFdLT5mYWlsZWRfdGVz
dF9jb3VudCgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0
LzAiLCB0ZXN0X3N1aXRlc1syXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5h
bWU8VHlwZXM8aW50Pj4oKS5jX3N0cigpLAorICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlc1sy
XS0+dHlwZV9wYXJhbSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0X3N1aXRlc1syXS0+c2hvdWxk
X3J1bigpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdGVzdF9zdWl0ZXNbMl0tPmRpc2FibGVkX3Rlc3Rf
Y291bnQoKSk7CisgICAgQVNTRVJUX0VRKDEsIHRlc3Rfc3VpdGVzWzJdLT50b3RhbF90ZXN0X2Nv
dW50KCkpOworICAgIEVYUEVDVF9FUSgxLCB0ZXN0X3N1aXRlc1syXS0+c3VjY2Vzc2Z1bF90ZXN0
X2NvdW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1syXS0+ZmFpbGVkX3Rlc3Rf
Y291bnQoKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNbMl0tPlBhc3NlZCgpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZXNbMl0tPkZhaWxlZCgpKTsKKworICAgIGNvbnN0IFRl
c3RTdWl0ZSogdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJBcGlU
ZXN0Iik7CisgICAgY29uc3QgVGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRT
b3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsKICAgICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX0R1bW15
MSIsIHRlc3RzWzBdLT5uYW1lKCkpOwotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3Rz
WzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0
c1swXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVDVF9GQUxTRSh0ZXN0c1swXS0+c2hv
dWxkX3J1bigpKTsKIAotICAgIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29y
c1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0
ZXN0c1sxXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVE
aXNhYmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIkFwaVRlc3QiLCB0ZXN0c1sxXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVDVF9U
UlVFKElzTnVsbCh0ZXN0c1sxXS0+dmFsdWVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKElz
TnVsbCh0ZXN0c1sxXS0+dHlwZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNbMV0t
PnNob3VsZF9ydW4oKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNbMV0tPnJlc3VsdCgpLT5QYXNz
ZWQoKSk7CiAgICAgRVhQRUNUX0VRKDAsIHRlc3RzWzFdLT5yZXN1bHQoKS0+dGVzdF9wcm9wZXJ0
eV9jb3VudCgpKTsKIAotICAgIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VJbW11dGFibGVBY2Nlc3Nv
cnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0Iiwg
dGVzdHNbMl0tPnRlc3RfY2FzZV9uYW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRl
SW1tdXRhYmxlQWNjZXNzb3JzV29yayIsIHRlc3RzWzJdLT5uYW1lKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQRUNU
X1RSVUUoSXNOdWxsKHRlc3RzWzJdLT52YWx1ZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUo
SXNOdWxsKHRlc3RzWzJdLT50eXBlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1sy
XS0+c2hvdWxkX3J1bigpKTsKQEAgLTI5OCw3ICsyODgsNyBAQCBjbGFzcyBGaW5hbFN1Y2Nlc3ND
aGVja2VyIDogcHVibGljIEVudmlyb25tZW50IHsKICAgICBFWFBFQ1RfRVEoMCwgdGVzdHNbMl0t
PnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwogCiAgICAgRVhQRUNUX1NUUkVRKCJV
bml0VGVzdEltbXV0YWJsZUFjY2Vzc29yc1dvcmsiLCB0ZXN0c1szXS0+bmFtZSgpKTsKLSAgICBF
WFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1szXS0+dGVzdF9jYXNlX25hbWUoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbM10tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAg
ICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10tPnZhbHVlX3BhcmFtKCkpKTsKICAgICBFWFBF
Q1RfVFJVRShJc051bGwodGVzdHNbM10tPnR5cGVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVF
KHRlc3RzWzNdLT5zaG91bGRfcnVuKCkpOwpAQCAtMzEwLDIxICszMDAsMTkgQEAgY2xhc3MgRmlu
YWxTdWNjZXNzQ2hlY2tlciA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAKICAgICBkZWxldGVbXSB0
ZXN0czsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi0gICAgdGVzdF9jYXNlID0gVW5pdFRl
c3RIZWxwZXI6OkZpbmRUZXN0Q2FzZSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIpOwotICAg
IHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3RfY2FzZSk7CisgICAg
dGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJUZXN0U3VpdGVXaXRo
Q29tbWVudFRlc3QvMCIpOworICAgIHRlc3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRl
c3RzKHRlc3Rfc3VpdGUpOwogCiAgICAgRVhQRUNUX1NUUkVRKCJEdW1teSIsIHRlc3RzWzBdLT5u
YW1lKCkpOwotICAgIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRl
c3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdp
dGhDb21tZW50VGVzdC8wIiwgdGVzdHNbMF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBF
Q1RfVFJVRShJc051bGwodGVzdHNbMF0tPnZhbHVlX3BhcmFtKCkpKTsKLSAgICBFWFBFQ1RfU1RS
RVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3RzWzBdLT50eXBlX3BhcmFtKCkpOwor
ICAgIEVYUEVDVF9TVFJFUShHZXRUeXBlTmFtZTxUeXBlczxpbnQ+PigpLmNfc3RyKCksIHRlc3Rz
WzBdLT50eXBlX3BhcmFtKCkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzBdLT5zaG91bGRfcnVu
KCkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzBdLT5yZXN1bHQoKS0+UGFzc2VkKCkpOwogICAg
IEVYUEVDVF9FUSgwLCB0ZXN0c1swXS0+cmVzdWx0KCktPnRlc3RfcHJvcGVydHlfY291bnQoKSk7
CiAKICAgICBkZWxldGVbXSB0ZXN0czsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QK
LSAgICBkZWxldGVbXSB0ZXN0X2Nhc2VzOworICAgIGRlbGV0ZVtdIHRlc3Rfc3VpdGVzOwogICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fs
bF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5j
YwppbmRleCBlNjFlMzZiMWRmZThkYTAzMDE2YWY1Nzg1NWIyYzc4MWVlN2Q5MWU2Li42MTViMjli
NzA2NTE2YjE1ZmZiNmQxYWU1MTVhZTlhNTY2MDBiODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYWxsX3Rlc3QuY2MKQEAgLTMzLDE0ICszMywxNCBAQAogLy8g
U29tZXRpbWVzIGl0J3MgZGVzaXJhYmxlIHRvIGJ1aWxkIG1vc3Qgb2YgR29vZ2xlIFRlc3QncyBv
d24gdGVzdHMKIC8vIGJ5IGNvbXBpbGluZyBhIHNpbmdsZSBmaWxlLiAgVGhpcyBmaWxlIHNlcnZl
cyB0aGlzIHB1cnBvc2UuCiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3Qu
Y2MiCi0jaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYyIKICNpbmNs
dWRlICJ0ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ29v
Z2xldGVzdC1vcHRpb25zLXRlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LXBvcnQt
dGVzdC5jYyIKLSNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyIKLSNp
bmNsdWRlICJ0ZXN0L2d0ZXN0X3Byb2RfdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRl
c3QtdGVzdC1wYXJ0LXRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rl
c3QuY2MiCiAjaW5jbHVkZSAidGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIgorI2luY2x1
ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3Rf
cHJlZF9pbXBsX3VuaXR0ZXN0LmNjIgorI2luY2x1ZGUgInRlc3QvZ3Rlc3RfcHJvZF90ZXN0LmNj
IgorI2luY2x1ZGUgInRlc3QvZ3Rlc3Rfc2tpcF90ZXN0LmNjIgogI2luY2x1ZGUgInRlc3QvZ3Rl
c3RfdW5pdHRlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9wcm9kdWN0aW9uLmNjIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9u
X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9l
eGNlcHRpb25fdGVzdC5jYwppbmRleCAwZWFlODU3NWYzZmVlMzBiYWM2NDJiYTE1ODlmZjIzNGQw
N2Y5NDU0Li5hZGE0Y2IzMGVmNjhjNTVkYjgxMzU2NTI5MTg2ODM0ZTI1YzFhYzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2VydF9ieV9leGNlcHRp
b25fdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2Fzc2Vy
dF9ieV9leGNlcHRpb25fdGVzdC5jYwpAQCAtODAsOCArODAsNyBAQCBURVNUKFRlc3QsIFRlc3Qp
IHsKICAgdHJ5IHsKICAgICBBc3NlcnRGYWxzZSgpOwogICB9IGNhdGNoKGNvbnN0IHRlc3Rpbmc6
OkFzc2VydGlvbkV4Y2VwdGlvbiYgZSkgewotICAgIGlmIChzdHJzdHIoZS53aGF0KCksICJFeHBl
Y3RlZCBmYWlsdXJlIikgIT0gTlVMTCkKLSAgICAgIHRocm93OworICAgIGlmIChzdHJzdHIoZS53
aGF0KCksICJFeHBlY3RlZCBmYWlsdXJlIikgIT0gbnVsbHB0cikgdGhyb3c7CiAKICAgICBwcmlu
dGYoIiVzIiwKICAgICAgICAgICAgIkEgZmFpbGVkIGFzc2VydGlvbiBkaWQgdGhyb3cgYW4gZXhj
ZXB0aW9uIG9mIHRoZSByaWdodCB0eXBlLCAiCkBAIC05Nyw3ICs5Niw2IEBAIFRFU1QoVGVzdCwg
VGVzdCkgewogaW50IGtUZXN0Rm9yQ29udGludWluZ1Rlc3QgPSAwOwogCiBURVNUKFRlc3QsIFRl
c3QyKSB7Ci0gIC8vIEZJWE1FOiBob3cgdG8gZm9yY2UgVGVzdDIgdG8gYmUgYWZ0ZXIgVGVzdD8K
ICAga1Rlc3RGb3JDb250aW51aW5nVGVzdCA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfZW52aXJvbm1lbnRfdGVzdC5jYwppbmRleCBiYzk1
MjRkNjYzNzNlNzE5NTFjYWNjZDkwNmMwNjZlZjRhZjk0YjQ2Li4wNjRiZmM1MGI5MTg0NTFlMjkw
N2JkNTg1NjY3M2RkY2QyNzAxOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X2Vudmlyb25tZW50X3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF9lbnZpcm9ubWVudF90ZXN0LmNjCkBAIC01Myw3ICs1Myw3IEBAIGNs
YXNzIE15RW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogICAvLyBE
ZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIGZhaWx1cmVfaW5fc2V0X3VwXywgU2V0VXAoKSB3aWxs
CiAgIC8vIGdlbmVyYXRlIGEgbm9uLWZhdGFsIGZhaWx1cmUsIGdlbmVyYXRlIGEgZmF0YWwgZmFp
bHVyZSwgb3IKICAgLy8gc3VjY2VlZC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgewogICAgIHNldF91cF93YXNfcnVuXyA9IHRydWU7CiAKICAgICBz
d2l0Y2ggKGZhaWx1cmVfaW5fc2V0X3VwXykgewpAQCAtNjksNyArNjksNyBAQCBjbGFzcyBNeUVu
dmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICAgfQogCiAgIC8vIEdl
bmVyYXRlcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7
CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgdGVhcl9kb3duX3dhc19ydW5fID0g
dHJ1ZTsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZSBp
biBnbG9iYWwgdGVhci1kb3duLiI7CiAgIH0KQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIENoZWNr
KGJvb2wgY29uZGl0aW9uLCBjb25zdCBjaGFyKiBtc2cpIHsKICAgfQogfQogCi0vLyBSdW5zIHRo
ZSB0ZXN0cy4gIFJldHVybiB0cnVlIGlmZiBzdWNjZXNzZnVsLgorLy8gUnVucyB0aGUgdGVzdHMu
ICBSZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBzdWNjZXNzZnVsLgogLy8KIC8vIFRoZSAnZmFp
bHVyZScgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdHlwZSBvZiBmYWlsdXJlIHRoYXQgc2hvdWxk
CiAvLyBiZSBnZW5lcmF0ZWQgYnkgdGhlIGdsb2JhbCBzZXQtdXAuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfaGVscF90ZXN0LnB5CmluZGV4IDU4MmQyNGMyZGNjZTg5
NDUzOGFhNjNjY2JkNjEyMGJkZDRiMzUwYTAuLjhkOTUzYmJkOWRjNGRiNzIzNjdhOTUwODIxMzIy
NGU4ODBiZWEwYzMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfaGVscF90ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
aGVscF90ZXN0LnB5CkBAIC00Myw2ICs0Myw3IEBAIGltcG9ydCBndGVzdF90ZXN0X3V0aWxzCiAK
IAogSVNfTElOVVggPSBvcy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0xp
bnV4JworSVNfR05VS0ZSRUVCU0QgPSBvcy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClb
MF0gPT0gJ0dOVS9rRnJlZUJTRCcKIElTX1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKIAogUFJP
R1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoJ2d0ZXN0
X2hlbHBfdGVzdF8nKQpAQCAtNjgsNiArNjksNyBAQCBIRUxQX1JFR0VYID0gcmUuY29tcGlsZSgK
ICAgICBGTEFHX1BSRUZJWCArIHInc2h1ZmZsZS4qJyArCiAgICAgRkxBR19QUkVGSVggKyByJ3Jh
bmRvbV9zZWVkPS4qJyArCiAgICAgRkxBR19QUkVGSVggKyByJ2NvbG9yPS4qJyArCisgICAgRkxB
R19QUkVGSVggKyByJ2JyaWVmLionICsKICAgICBGTEFHX1BSRUZJWCArIHIncHJpbnRfdGltZS4q
JyArCiAgICAgRkxBR19QUkVGSVggKyByJ291dHB1dD0uKicgKwogICAgIEZMQUdfUFJFRklYICsg
cidicmVha19vbl9mYWlsdXJlLionICsKQEAgLTExMCw3ICsxMTIsNyBAQCBjbGFzcyBHVGVzdEhl
bHBUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDAsIGV4aXRfY29kZSkKICAgICBzZWxmLmFzc2VydF8oSEVMUF9SRUdFWC5zZWFyY2gob3V0cHV0
KSwgb3V0cHV0KQogCi0gICAgaWYgSVNfTElOVVg6CisgICAgaWYgSVNfTElOVVggb3IgSVNfR05V
S0ZSRUVCU0Q6CiAgICAgICBzZWxmLmFzc2VydF8oU1RSRUFNX1JFU1VMVF9UT19GTEFHIGluIG91
dHB1dCwgb3V0cHV0KQogICAgIGVsc2U6CiAgICAgICBzZWxmLmFzc2VydF8oU1RSRUFNX1JFU1VM
VF9UT19GTEFHIG5vdCBpbiBvdXRwdXQsIG91dHB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5CmluZGV4
IDNiYmE3ZWEyY2ZkMzdjYWQ1NTA5ZjQwZjhlOGIwMDIyNzA2YmU3ODQuLmE0NDJmYzE2OWM4N2Zj
MGRlYmI0MmQzNTJiMjhjNjM3MWRlZjMwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVzdC5weQpAQCAtNDYs
MTYgKzQ2LDQyIEBAIEdURVNUX0xJU1RfVEVTVFNfRkxBRyA9ICctLWd0ZXN0X2xpc3RfdGVzdHMn
CiBHVEVTVF9PVVRQVVRfRkxBRyA9ICctLWd0ZXN0X291dHB1dCcKIAogRVhQRUNURURfWE1MID0g
IiIiPFw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ilw/PgotPHRlc3RzdWl0ZXMg
dGVzdHM9IjIiIG5hbWU9IkFsbFRlc3RzIj4KKzx0ZXN0c3VpdGVzIHRlc3RzPSIxNiIgbmFtZT0i
QWxsVGVzdHMiPgogICA8dGVzdHN1aXRlIG5hbWU9IkZvb1Rlc3QiIHRlc3RzPSIyIj4KICAgICA8
dGVzdGNhc2UgbmFtZT0iVGVzdDEiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3Rf
LmNjIiBsaW5lPSI0MyIgLz4KICAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDIiIGZpbGU9Ii4qZ3Rl
c3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0NSIgLz4KICAgPC90ZXN0c3VpdGU+
CisgIDx0ZXN0c3VpdGUgbmFtZT0iRm9vVGVzdEZpeHR1cmUiIHRlc3RzPSIyIj4KKyAgICA8dGVz
dGNhc2UgbmFtZT0iVGVzdDMiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNj
IiBsaW5lPSI0OCIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDQiIGZpbGU9Ii4qZ3Rlc3Rf
bGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI0OSIgLz4KKyAgPC90ZXN0c3VpdGU+Cisg
IDx0ZXN0c3VpdGUgbmFtZT0iVHlwZWRUZXN0LzAiIHRlc3RzPSIyIj4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iVGVzdDciIHR5cGVfcGFyYW09ImludCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91
bml0dGVzdF8uY2MiIGxpbmU9IjYwIiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0OCIgdHlw
ZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGlu
ZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8x
IiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q3IiB0eXBlX3BhcmFtPSJib29s
IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjAiIC8+Cisg
ICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q4IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0
X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjEiIC8+CisgIDwvdGVzdHN1aXRlPgor
ICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8wIiB0
ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q5IiB0eXBlX3BhcmFtPSJpbnQiIGZp
bGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iVGVzdDEwIiB0eXBlX3BhcmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlz
dF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI2NyIgLz4KKyAgPC90ZXN0c3VpdGU+CisgIDx0
ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRlc3Rz
PSIyIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDkiIHR5cGVfcGFyYW09ImJvb2wiIGZpbGU9
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI2NiIgLz4KKyAgICA8dGVz
dGNhc2UgbmFtZT0iVGVzdDEwIiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rf
b3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjciIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVz
dHN1aXRlIG5hbWU9IlZhbHVlUGFyYW0vVmFsdWVQYXJhbVRlc3QiIHRlc3RzPSI0Ij4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iVGVzdDUvMCIgdmFsdWVfcGFyYW09IjMzIiBmaWxlPSIuKmd0ZXN0X2xp
c3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNTIiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9
IlRlc3Q1LzEiIHZhbHVlX3BhcmFtPSI0MiIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0
dGVzdF8uY2MiIGxpbmU9IjUyIiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0Ni8wIiB2YWx1
ZV9wYXJhbT0iMzMiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5l
PSI1MyIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDYvMSIgdmFsdWVfcGFyYW09IjQyIiBm
aWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNTMiIC8+CisgIDwv
dGVzdHN1aXRlPgogPC90ZXN0c3VpdGVzPgogIiIiCiAKIEVYUEVDVEVEX0pTT04gPSAiIiJ7Ci0g
ICJ0ZXN0cyI6IDIsCisgICJ0ZXN0cyI6IDE2LAogICAibmFtZSI6ICJBbGxUZXN0cyIsCiAgICJ0
ZXN0c3VpdGVzIjogXFsKICAgICB7CkBAIC03Myw2ICs5OSwxMjQgQEAgRVhQRUNURURfSlNPTiA9
ICIiInsKICAgICAgICAgICAibGluZSI6IDQ1CiAgICAgICAgIH0KICAgICAgIFxdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJGb29UZXN0Rml4dHVyZSIsCisgICAgICAidGVzdHMiOiAy
LAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJU
ZXN0MyIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8u
Y2MiLAorICAgICAgICAgICJsaW5lIjogNDgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICJuYW1lIjogIlRlc3Q0IiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0
cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA0OQorICAgICAgICB9CisgICAg
ICBcXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVHlwZWRUZXN0XFxcXC8wIiwKKyAg
ICAgICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAg
ICAgICJuYW1lIjogIlRlc3Q3IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAg
ICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAg
ICAgICAibGluZSI6IDYwCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6
ICJUZXN0OCIsCisgICAgICAgICAgInR5cGVfcGFyYW0iOiAiaW50IiwKKyAgICAgICAgICAiZmls
ZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUi
OiA2MQorICAgICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
VHlwZWRUZXN0XFxcXC8xIiwKKyAgICAgICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjog
XFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q3IiwKKyAgICAgICAgICAidHlw
ZV9wYXJhbSI6ICJib29sIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2MAorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDgiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjog
ImJvb2wiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3Rf
LmNjIiwKKyAgICAgICAgICAibGluZSI6IDYxCisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJTaW5nbGVcXFxcL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlXFxcXC8wIiwKKyAgICAgICJ0ZXN0cyI6IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAg
ICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q5IiwKKyAgICAgICAgICAidHlwZV9wYXJh
bSI6ICJpbnQiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRl
c3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY2CisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAibmFtZSI6ICJUZXN0MTAiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImludCIs
CisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAor
ICAgICAgICAgICJsaW5lIjogNjcKKyAgICAgICAgfQorICAgICAgXF0KKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogIlNpbmdsZVxcXFwvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVcXFxc
LzEiLAorICAgICAgInRlc3RzIjogMiwKKyAgICAgICJ0ZXN0c3VpdGUiOiBcWworICAgICAgICB7
CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDkiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJv
b2wiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNj
IiwKKyAgICAgICAgICAibGluZSI6IDY2CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAibmFtZSI6ICJUZXN0MTAiLAorICAgICAgICAgICJ0eXBlX3BhcmFtIjogImJvb2wiLAorICAg
ICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAg
ICAgICAibGluZSI6IDY3CisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZSI6ICJWYWx1ZVBhcmFtXFxcXC9WYWx1ZVBhcmFtVGVzdCIsCisgICAgICAidGVzdHMi
OiA0LAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6
ICJUZXN0NVxcXFwvMCIsCisgICAgICAgICAgInZhbHVlX3BhcmFtIjogIjMzIiwKKyAgICAgICAg
ICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAg
ImxpbmUiOiA1MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVz
dDVcXFxcLzEiLAorICAgICAgICAgICJ2YWx1ZV9wYXJhbSI6ICI0MiIsCisgICAgICAgICAgImZp
bGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5l
IjogNTIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q2XFxc
XC8wIiwKKyAgICAgICAgICAidmFsdWVfcGFyYW0iOiAiMzMiLAorICAgICAgICAgICJmaWxlIjog
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDUz
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NlxcXFwvMSIs
CisgICAgICAgICAgInZhbHVlX3BhcmFtIjogIjQyIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MworICAg
ICAgICB9CisgICAgICBcXQogICAgIH0KICAgXF0KIH0KQEAgLTExNCw4ICsyNTgsOSBAQCBjbGFz
cyBHVGVzdExpc3RUZXN0c091dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2Up
OgogICAgIHAgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoCiAgICAgICAgIGNvbW1hbmQs
IGVudj1lbnZpcm9uX2NvcHksIHdvcmtpbmdfZGlyPWd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVtcERp
cigpKQogCi0gICAgc2VsZi5hc3NlcnRfKHAuZXhpdGVkKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDAsIHAuZXhpdF9jb2RlKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXRlZCkKKyAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIHAuZXhpdF9jb2RlKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRo
LmlzZmlsZShmaWxlX3BhdGgpKQogICAgIHdpdGggb3BlbihmaWxlX3BhdGgpIGFzIGY6CiAgICAg
ICByZXN1bHQgPSBmLnJlYWQoKQogICAgIHJldHVybiByZXN1bHQKQEAgLTEyOCw3ICsyNzMsNyBA
QCBjbGFzcyBHVGVzdExpc3RUZXN0c091dHB1dFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVz
dENhc2UpOgogICAgIGZvciBhY3R1YWxfbGluZSBpbiBhY3R1YWxfbGluZXM6CiAgICAgICBleHBl
Y3RlZF9saW5lID0gZXhwZWN0ZWRfbGluZXNbbGluZV9jb3VudF0KICAgICAgIGV4cGVjdGVkX2xp
bmVfcmUgPSByZS5jb21waWxlKGV4cGVjdGVkX2xpbmUuc3RyaXAoKSkKLSAgICAgIHNlbGYuYXNz
ZXJ0XygKKyAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKICAgICAgICAgICBleHBlY3RlZF9saW5lX3Jl
Lm1hdGNoKGFjdHVhbF9saW5lLnN0cmlwKCkpLAogICAgICAgICAgICgnYWN0dWFsIG91dHB1dCBv
ZiAiJXMiLFxuJwogICAgICAgICAgICAnd2hpY2ggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgcmVn
ZXggb2YgIiVzIlxuJwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYwppbmRleCBiMWM3YjRkZTM0NjFmYzE2
NDVmNDExYjcxZjllMzdmODIyNGZkOGE2Li45MmI5ZDRmMjhlZWMwM2E1ZmVhNzUzOTY3NDJlZDY4
ODQ4MjZmMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYwpAQCAtNDQsNiArNDQsMzIgQEAgVEVT
VChGb29UZXN0LCBUZXN0MSkge30KIAogVEVTVChGb29UZXN0LCBUZXN0Mikge30KIAorY2xhc3Mg
Rm9vVGVzdEZpeHR1cmUgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OworVEVTVF9GKEZvb1Rl
c3RGaXh0dXJlLCBUZXN0Mykge30KK1RFU1RfRihGb29UZXN0Rml4dHVyZSwgVGVzdDQpIHt9CisK
K2NsYXNzIFZhbHVlUGFyYW1UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxp
bnQ+IHt9OworVEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBUZXN0NSkge30KK1RFU1RfUChWYWx1ZVBh
cmFtVGVzdCwgVGVzdDYpIHt9CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVmFsdWVQYXJhbSwg
VmFsdWVQYXJhbVRlc3QsIDo6dGVzdGluZzo6VmFsdWVzKDMzLCA0MikpOworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KK2NsYXNzIFR5cGVkVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307
Cit0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPGludCwgYm9vbD4gVHlwZWRUZXN0VHlwZXM7CitUWVBF
RF9URVNUX1NVSVRFKFR5cGVkVGVzdCwgVHlwZWRUZXN0VHlwZXMpOworVFlQRURfVEVTVChUeXBl
ZFRlc3QsIFRlc3Q3KSB7fQorVFlQRURfVEVTVChUeXBlZFRlc3QsIFRlc3Q4KSB7fQorCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlIDogcHVi
bGljIDo6dGVzdGluZzo6VGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldGVy
aXplZFRlc3RTdWl0ZSk7CitUWVBFRF9URVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUs
IFRlc3Q5KSB7fQorVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBUZXN0
MTApIHt9CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0
U3VpdGUsIFRlc3Q5LCBUZXN0MTApOwordHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGJvb2w+
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJQVRF
X1RZUEVEX1RFU1RfU1VJVEVfUChTaW5nbGUsIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
VHlwZXMpOworCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgOjp0ZXN0aW5n
OjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MKaW5kZXggYjQ2
NmMxNTBhZWRjNDNmZGIxMDM3M2I3YTgwMmNjYmU3NzU3OTBmOC4uYmJlZjk5NDdkOTlkYTQzYTY0
NTVmMzA4Y2ExN2I3YjZjYjMwMWJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MKQEAgLTI3LDcgKzI3LDcg
QEAKIC8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotLy8gVGhpcyBmaWxlIGlzIEFV
VE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9uIDAxLzAyLzIwMTggYnkgY29tbWFuZAorLy8gVGhpcyBm
aWxlIGlzIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIG9uIDExLzA1LzIwMTkgYnkgY29tbWFuZAog
Ly8gJ2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgNScuICBETyBOT1QgRURJVCBCWSBIQU5EIQogCiAv
LyBSZWdyZXNzaW9uIHRlc3QgZm9yIGd0ZXN0X3ByZWRfaW1wbC5oCkBAIC03OCw5ICs3OCw4IEBA
IGJvb2wgUHJlZEZ1bmN0aW9uMShUMSB2MSkgewogICByZXR1cm4gdjEgPiAwOwogfQogCi0vLyBU
aGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVn
IGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUg
YWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rp
b25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250
ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlh
dGVkLgogYm9vbCBQcmVkRnVuY3Rpb24xSW50KGludCB2MSkgewogICByZXR1cm4gdjEgPiAwOwog
fQpAQCAtMTIyLDEzICsxMjEsMTMgQEAgc3RydWN0IFByZWRGb3JtYXRGdW5jdG9yMSB7CiAKIGNs
YXNzIFByZWRpY2F0ZTFUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVlOwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOwogICAg
IG4xXyA9IDA7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVh
ckRvd24oKSBvdmVycmlkZSB7CiAgICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVk
aWNhdGUncyBhcmd1bWVudHMgd2FzIGV2YWx1YXRlZAogICAgIC8vIGV4YWN0bHkgb25jZS4KICAg
ICBFWFBFQ1RfRVEoMSwgbjFfKSA8PApAQCAtMTQ0LDEwICsxNDMsMTAgQEAgY2xhc3MgUHJlZGlj
YXRlMVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1
ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAg
Ly8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBy
dW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8v
IHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBz
dGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CkBAIC00NjUsOSArNDY0
LDggQEAgYm9vbCBQcmVkRnVuY3Rpb24yKFQxIHYxLCBUMiB2MikgewogICByZXR1cm4gdjEgKyB2
MiA+IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRv
IGNpcmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMg
cHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9s
bG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24n
dCBoYXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24g
bXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjJJbnQoaW50IHYxLCBpbnQg
djIpIHsKICAgcmV0dXJuIHYxICsgdjIgPiAwOwogfQpAQCAtNTE0LDEzICs1MTIsMTMgQEAgc3Ry
dWN0IFByZWRGb3JtYXRGdW5jdG9yMiB7CiAKIGNsYXNzIFByZWRpY2F0ZTJUZXN0IDogcHVibGlj
IHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewor
ICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIGV4cGVjdGVkX3RvX2ZpbmlzaF8gPSB0cnVl
OwogICAgIGZpbmlzaGVkXyA9IGZhbHNlOwogICAgIG4xXyA9IG4yXyA9IDA7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgLy8gVmVyaWZpZXMgdGhhdCBlYWNoIG9mIHRoZSBwcmVkaWNhdGUncyBhcmd1bWVudHMgd2Fz
IGV2YWx1YXRlZAogICAgIC8vIGV4YWN0bHkgb25jZS4KICAgICBFWFBFQ1RfRVEoMSwgbjFfKSA8
PApAQCAtNTM5LDEwICs1MzcsMTAgQEAgY2xhc3MgUHJlZGljYXRlMlRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rp
b24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0
aWMgYm9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1
bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0
ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87
CiAKICAgc3RhdGljIGludCBuMV87CkBAIC04OTQsOSArODkyLDggQEAgYm9vbCBQcmVkRnVuY3Rp
b24zKFQxIHYxLCBUMiB2MiwgVDMgdjMpIHsKICAgcmV0dXJuIHYxICsgdjIgKyB2MyA+IDA7CiB9
CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZl
bnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3
aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93aW5nIHR3
byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBoYXZlCisv
LyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBp
bnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjNJbnQoaW50IHYxLCBpbnQgdjIsIGludCB2
MykgewogICByZXR1cm4gdjEgKyB2MiArIHYzID4gMDsKIH0KQEAgLTk0OCwxMyArOTQ1LDEzIEBA
IHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjMgewogCiBjbGFzcyBQcmVkaWNhdGUzVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgp
IHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0g
dHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSAwOwog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3Zl
cnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJn
dW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VR
KDEsIG4xXykgPDwKQEAgLTk3NiwxMCArOTczLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTNUZXN0IDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0
ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlz
aC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0
aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wg
ZmluaXNoZWRfOwogCiAgIHN0YXRpYyBpbnQgbjFfOwpAQCAtMTM2NSw5ICsxMzYyLDggQEAgYm9v
bCBQcmVkRnVuY3Rpb240KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0KSB7CiAgIHJldHVybiB2
MSArIHYyICsgdjMgKyB2NCA+IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9u
cyBhcmUgbmVlZGVkIHRvIGNpcmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNo
IHNvbWV0aW1lcyBoYXMgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rp
b24uCisvLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEg
Y29tcGlsZXIgZG9lc24ndCBoYXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVt
cGxhdGUgZnVuY3Rpb24gbXVzdCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjRJ
bnQoaW50IHYxLCBpbnQgdjIsIGludCB2MywgaW50IHY0KSB7CiAgIHJldHVybiB2MSArIHYyICsg
djMgKyB2NCA+IDA7CiB9CkBAIC0xNDI0LDEzICsxNDIwLDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0
RnVuY3RvcjQgewogCiBjbGFzcyBQcmVkaWNhdGU0VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hl
ZF8gPSBmYWxzZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSBuNF8gPSAwOwogICB9CiAKLSAgdmly
dHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAg
IC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBl
dmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwK
QEAgLTE0NTUsMTAgKzE0NTEsMTAgQEAgY2xhc3MgUHJlZGljYXRlNFRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rp
b24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgogICBzdGF0
aWMgYm9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1
bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0
ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBmaW5pc2hlZF87
CiAKICAgc3RhdGljIGludCBuMV87CkBAIC0xODc4LDkgKzE4NzQsOCBAQCBib29sIFByZWRGdW5j
dGlvbjUoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1KSB7CiAgIHJldHVybiB2MSAr
IHYyICsgdjMgKyB2NCArIHY1ID4gMDsKIH0KIAotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rp
b25zIGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hp
Y2ggc29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5j
dGlvbi4KKy8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGJlY2F1c2Ug
YSBjb21waWxlciBkb2Vzbid0IGhhdmUKKy8vIGEgY29udGV4dCB5ZXQgdG8ga25vdyB3aGljaCB0
ZW1wbGF0ZSBmdW5jdGlvbiBtdXN0IGJlIGluc3RhbnRpYXRlZC4KIGJvb2wgUHJlZEZ1bmN0aW9u
NUludChpbnQgdjEsIGludCB2MiwgaW50IHYzLCBpbnQgdjQsIGludCB2NSkgewogICByZXR1cm4g
djEgKyB2MiArIHYzICsgdjQgKyB2NSA+IDA7CiB9CkBAIC0xOTQyLDEzICsxOTM3LDEzIEBAIHN0
cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjUgewogCiBjbGFzcyBQcmVkaWNhdGU1VGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsK
KyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1
ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSBuMl8gPSBuM18gPSBuNF8gPSBu
NV8gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJE
b3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGlj
YXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAg
RVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTE5NzYsMTAgKzE5NzEsMTAgQEAgY2xhc3MgUHJlZGlj
YXRlNVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAgfQogICB9CiAKLSAgLy8gdHJ1
ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KKyAg
Ly8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBy
dW4gdG8gZmluaXNoLgogICBzdGF0aWMgYm9vbCBleHBlY3RlZF90b19maW5pc2hfOwogCi0gIC8v
IHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgorICAvLyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGRpZCBydW4gdG8gZmluaXNoLgogICBz
dGF0aWMgYm9vbCBmaW5pc2hlZF87CiAKICAgc3RhdGljIGludCBuMV87CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3Qu
Y2MKaW5kZXggYzFlOTMwNTZkOGI1NjJjNTlmZWJhODI3OGUyMGMyOWRmMTNlMTkxNS4uMWQxMTg3
ZWZmMDA2Y2M4ODc1MGVmOTU3ODI5ZDU4MGFjNjkwMzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYwpA
QCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6
IHB1YmxpYyBUZXN0IHsKICBwdWJsaWM6Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGdpdmVu
IGZpbGUgZXhpc3RzLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGdpdmVu
IGZpbGUgZXhpc3RzLgogICBzdGF0aWMgYm9vbCBGaWxlRXhpc3RzKGNvbnN0IGNoYXIqIGZpbGVw
YXRoKSB7CiAgICAgU3RhdFN0cnVjdCBzdGF0OwogICAgIHJldHVybiBTdGF0KGZpbGVwYXRoLCAm
c3RhdCkgPT0gMDsKQEAgLTU2LDEyICs1NiwxMiBAQCBjbGFzcyBQcmVtYXR1cmVFeGl0VGVzdCA6
IHB1YmxpYyBUZXN0IHsKICAgICBwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfID0gR2V0RW52KCJU
RVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUiKTsKIAogICAgIC8vIE5vcm1hbGl6ZSBOVUxMIHRvICIi
IGZvciBlYXNlIG9mIGhhbmRsaW5nLgotICAgIGlmIChwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhf
ID09IE5VTEwpIHsKKyAgICBpZiAocHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSBudWxscHRy
KSB7CiAgICAgICBwcmVtYXR1cmVfZXhpdF9maWxlX3BhdGhfID0gIiI7CiAgICAgfQogICB9CiAK
LSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBleGlzdHMuCisg
IC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgcHJlbWF0dXJlLWV4aXQgZmlsZSBl
eGlzdHMuCiAgIGJvb2wgUHJlbWF0dXJlRXhpdEZpbGVFeGlzdHMoKSBjb25zdCB7CiAgICAgcmV0
dXJuIEZpbGVFeGlzdHMocHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyk7CiAgIH0KQEAgLTExMyw3
ICsxMTMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgLy8gVGVzdCB0
aGF0IHRoZSBwcmVtYXR1cmUtZXhpdCBmaWxlIGlzIGRlbGV0ZWQgdXBvbiByZXR1cm4gZnJvbQog
ICAvLyBSVU5fQUxMX1RFU1RTKCkuCiAgIGNvbnN0IGNoYXIqIGNvbnN0IGZpbGVwYXRoID0gR2V0
RW52KCJURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUiKTsKLSAgaWYgKGZpbGVwYXRoICE9IE5VTEwg
JiYgKmZpbGVwYXRoICE9ICdcMCcpIHsKKyAgaWYgKGZpbGVwYXRoICE9IG51bGxwdHIgJiYgKmZp
bGVwYXRoICE9ICdcMCcpIHsKICAgICBpZiAoUHJlbWF0dXJlRXhpdFRlc3Q6OkZpbGVFeGlzdHMo
ZmlsZXBhdGgpKSB7CiAgICAgICBwcmludGYoCiAgICAgICAgICAgIkZpbGUgJXMgc2hvdWxkbid0
IGV4aXN0IGFmdGVyIHRoZSB0ZXN0IHByb2dyYW0gZmluaXNoZXMsIGJ1dCBkb2VzLiIsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYwppbmRl
eCAxZThmNDk5YmI5ZGUzZDE0YmNiM2JiMWE2NDFjMDZkN2ExMjUwYWQyLi43ZGE0YTE1ZWExNDE5
ODlmODY0MjZhNTcyYmFjMGE1OGIzM2Y3NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3JlcGVhdF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfcmVwZWF0X3Rlc3QuY2MKQEAgLTc0LDggKzc0LDggQEAgaW50IGdf
ZW52aXJvbm1lbnRfdGVhcl9kb3duX2NvdW50ID0gMDsKIGNsYXNzIE15RW52aXJvbm1lbnQgOiBw
dWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogIHB1YmxpYzoKICAgTXlFbnZpcm9ubWVudCgp
IHt9Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsgZ19lbnZpcm9ubWVudF9zZXRfdXBfY291bnQr
KzsgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7IGdfZW52aXJvbm1lbnRfdGVhcl9kb3du
X2NvdW50Kys7IH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgZ19lbnZpcm9ubWVudF9zZXRf
dXBfY291bnQrKzsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBnX2Vudmlyb25tZW50
X3RlYXJfZG93bl9jb3VudCsrOyB9CiB9OwogCiAvLyBBIHRlc3QgdGhhdCBzaG91bGQgZmFpbC4K
QEAgLTExNywxMyArMTE3LDEyIEBAIGNvbnN0IGludCBrTnVtYmVyT2ZQYXJhbVRlc3RzID0gMTA7
CiBjbGFzcyBNeVBhcmFtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4g
e307CiAKIFRFU1RfUChNeVBhcmFtVGVzdCwgU2hvdWxkUGFzcykgewotICAvLyBGSVhNRTogTWFr
ZSBwYXJhbWV0ZXIgdmFsdWUgY2hlY2tpbmcgcm9idXN0IFdSVCBvcmRlciBvZiB0ZXN0cy4KICAg
R1RFU1RfQ0hFQ0tfSU5UX0VRXyhnX3BhcmFtX3Rlc3RfY291bnQgJSBrTnVtYmVyT2ZQYXJhbVRl
c3RzLCBHZXRQYXJhbSgpKTsKICAgZ19wYXJhbV90ZXN0X2NvdW50Kys7CiB9Ci1JTlNUQU5USUFU
RV9URVNUX0NBU0VfUChNeVBhcmFtU2VxdWVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBN
eVBhcmFtVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlJhbmdlKDAsIGtO
dW1iZXJPZlBhcmFtVGVzdHMpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNeVBhcmFtU2Vx
dWVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgTXlQYXJhbVRlc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdGluZzo6UmFuZ2UoMCwga051bWJlck9mUGFyYW1UZXN0cykpOwog
CiAvLyBSZXNldHMgdGhlIGNvdW50IGZvciBlYWNoIHRlc3QuCiB2b2lkIFJlc2V0Q291bnRzKCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2No
ZWNrX291dHB1dF90ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9z
a2lwX2NoZWNrX291dHB1dF90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZTYzYWI4OTdkOTYyOGM2NzFj
OTM2NGIxZjMzOTE3MDMyNjg1NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfY2hlY2tfb3V0cHV0X3Rlc3QucHkKQEAgLTAsMCArMSw1
OSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDE5IEdvb2dsZSBM
TEMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIlRlc3RzIEdv
b2dsZSBUZXN0J3MgZ3Rlc3Qgc2tpcCBpbiBlbnZpcm9ubWVudCBzZXR1cCAgYmVoYXZpb3IuCisK
K1RoaXMgc2NyaXB0IGludm9rZXMgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0
XyBhbmQgdmVyaWZpZXMgaXRzCitvdXRwdXQuCisiIiIKKworaW1wb3J0IHJlCisKK2ltcG9ydCBn
dGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0aCB0byB0aGUgZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVu
dF9zZXR1cF90ZXN0IGJpbmFyeQorRVhFX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RF
eGVjdXRhYmxlUGF0aCgnZ3Rlc3Rfc2tpcF90ZXN0JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91
dGlscy5TdWJwcm9jZXNzKFtFWEVfUEFUSF0pLm91dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNr
aXBFbnRpcmVFbnZpcm9ubWVudFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAg
ZGVmIHRlc3RTa2lwRW50aXJlRW52aXJvbm1lbnRUZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0
SW4oJ1NraXBwZWRcbnNraXBwaW5nIHNpbmdsZSB0ZXN0XG4nLCBPVVRQVVQpCisgICAgc2tpcF9m
aXh0dXJlID0gJ1NraXBwZWRcbnNraXBwaW5nIGFsbCB0ZXN0cyBmb3IgdGhpcyBmaXh0dXJlXG4n
CisgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoCisgICAgICAgIHJlLnNlYXJjaChza2lwX2ZpeHR1
cmUgKyAnLionICsgc2tpcF9maXh0dXJlLCBPVVRQVVQsIGZsYWdzPXJlLkRPVEFMTCksCisgICAg
ICAgIHJlcHIoT1VUUFVUKSkKKyAgICBzZWxmLmFzc2VydE5vdEluKCdGQUlMRUQnLCBPVVRQVVQp
CisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGlscy5NYWlu
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9l
bnZpcm9ubWVudF9jaGVja19vdXRwdXRfdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9ubWVudF9jaGVja19vdXRwdXRfdGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZTc5MTU1NmFhNzFlNTYyM2EzNTdhZjgyMjcxM2I0ZGYyMTc2NDAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2Vudmlyb25t
ZW50X2NoZWNrX291dHB1dF90ZXN0LnB5CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52
IHB5dGhvbgorIworIyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisiIiJUZXN0cyBHb29nbGUgVGVzdCdzIGd0ZXN0IHNr
aXAgaW4gZW52aXJvbm1lbnQgc2V0dXAgIGJlaGF2aW9yLgorCitUaGlzIHNjcmlwdCBpbnZva2Vz
IGd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdF8gYW5kIHZlcmlmaWVzIGl0cwor
b3V0cHV0LgorIiIiCisKK2ltcG9ydCBndGVzdF90ZXN0X3V0aWxzCisKKyMgUGF0aCB0byB0aGUg
Z3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0IGJpbmFyeQorRVhFX1BBVEggPSBn
dGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgKKyAgICAnZ3Rlc3Rfc2tpcF9p
bl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0JykKKworT1VUUFVUID0gZ3Rlc3RfdGVzdF91dGlscy5T
dWJwcm9jZXNzKFtFWEVfUEFUSF0pLm91dHB1dAorCisKKyMgVGVzdC4KK2NsYXNzIFNraXBFbnRp
cmVFbnZpcm9ubWVudFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CisKKyAgZGVmIHRl
c3RTa2lwRW50aXJlRW52aXJvbm1lbnRUZXN0KHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0SW4oJ1Nr
aXBwaW5nIHRoZSBlbnRpcmUgZW52aXJvbm1lbnQnLCBPVVRQVVQpCisgICAgc2VsZi5hc3NlcnRO
b3RJbignRkFJTEVEJywgT1VUUFVUKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Cisg
IGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90
ZXN0LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkzNzIzMTA2MzgxNmUwNDdhY2RkMmZiNDE2ZGE4MGU0OTg2NDM4
YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYwpAQCAtMCwwICsxLDQ5IEBACisvLyBD
b3B5cmlnaHQgMjAxOSwgR29vZ2xlIExMQy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLwor
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3Ry
aWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIExMQy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8v
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisvLworLy8gVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgc2tpcHBpbmcgaW4gdGhlIGVudmlyb25tZW50IHJlc3VsdHMgaW4gdGhl
CisvLyB0ZXN0Y2FzZXMgYmVpbmcgc2tpcHBlZC4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorI2lu
Y2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisKK2NsYXNzIFNldHVwRW52aXJvbm1lbnQgOiBwdWJsaWMg
dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRl
IHsgR1RFU1RfU0tJUCgpIDw8ICJTa2lwcGluZyB0aGUgZW50aXJlIGVudmlyb25tZW50IjsgfQor
fTsKKworVEVTVChUZXN0LCBBbHdheXNGYWlscykgeyBFWFBFQ1RfRVEodHJ1ZSwgZmFsc2UpOyB9
CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICB0ZXN0aW5nOjpJbml0R29v
Z2xlVGVzdCgmYXJnYywgYXJndik7CisKKyAgdGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25t
ZW50KG5ldyBTZXR1cEVudmlyb25tZW50KCkpOworCisgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBf
dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF90ZXN0LmNj
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRhMjMwMDRjY2EzNjgxNGVjM2JmN2UwYzEyNDQ0NGFkNjQ3NzBjNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBf
dGVzdC5jYwpAQCAtMCwwICsxLDU1IEBACisvLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgor
Ly8gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKy8vCisvLyBBdXRob3I6IGFyc2VueS5hcHJlbGV2QGdtYWlsLmNvbSAoQXJz
ZW55IEFwcmVsZXYpCisvLworCisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKwordXNpbmcgOjp0
ZXN0aW5nOjpUZXN0OworCitURVNUKFNraXBUZXN0LCBEb2VzU2tpcCkgeworICBHVEVTVF9TS0lQ
KCkgPDwgInNraXBwaW5nIHNpbmdsZSB0ZXN0IjsKKyAgRVhQRUNUX0VRKDAsIDEpOworfQorCitj
bGFzcyBGaXh0dXJlIDogcHVibGljIFRlc3QgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgp
IG92ZXJyaWRlIHsKKyAgICBHVEVTVF9TS0lQKCkgPDwgInNraXBwaW5nIGFsbCB0ZXN0cyBmb3Ig
dGhpcyBmaXh0dXJlIjsKKyAgfQorfTsKKworVEVTVF9GKEZpeHR1cmUsIFNraXBzT25lVGVzdCkg
eworICBFWFBFQ1RfRVEoNSwgNyk7Cit9CisKK1RFU1RfRihGaXh0dXJlLCBTa2lwc0Fub3RoZXJU
ZXN0KSB7CisgIEVYUEVDVF9FUSg5OSwgMTAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNzX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0X3N0cmVzc190ZXN0LmNjCmluZGV4IDk1YWRhMzljMzM3ZDBkNGVj
ZTZmZjViMzIzMmRlOTZjM2Q1OTg2YmQuLjg0MzQ4MTkxMGYwM2Y2OTg5NzczYzU4NmI4ZTExZWRk
YmQ2MDM0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
c3RyZXNzX3Rlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9z
dHJlc3NfdGVzdC5jYwpAQCAtNDUsNyArNDUsNiBAQCBuYW1lc3BhY2UgewogdXNpbmcgaW50ZXJu
YWw6Ok5vdGlmaWNhdGlvbjsKIHVzaW5nIGludGVybmFsOjpUZXN0UHJvcGVydHlLZXlJczsKIHVz
aW5nIGludGVybmFsOjpUaHJlYWRXaXRoUGFyYW07Ci11c2luZyBpbnRlcm5hbDo6c2NvcGVkX3B0
cjsKIAogLy8gSW4gb3JkZXIgdG8gcnVuIHRlc3RzIGluIHRoaXMgZmlsZSwgZm9yIHBsYXRmb3Jt
cyB3aGVyZSBHb29nbGUgVGVzdCBpcwogLy8gdGhyZWFkIHNhZmUsIGltcGxlbWVudCBUaHJlYWRX
aXRoUGFyYW0uIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgaXRzIEFQSQpAQCAtMTE5LDcgKzExOCw3
IEBAIHZvaWQgQ2hlY2tUZXN0RmFpbHVyZUNvdW50KGludCBleHBlY3RlZF9mYWlsdXJlcykgewog
Ly8gY29uY3VycmVudGx5LgogVEVTVChTdHJlc3NUZXN0LCBDYW5Vc2VTY29wZWRUcmFjZUFuZEFz
c2VydGlvbnNJbk1hbnlUaHJlYWRzKSB7CiAgIHsKLSAgICBzY29wZWRfcHRyPFRocmVhZFdpdGhQ
YXJhbTxpbnQ+ID4gdGhyZWFkc1trVGhyZWFkQ291bnRdOworICAgIHN0ZDo6dW5pcXVlX3B0cjxU
aHJlYWRXaXRoUGFyYW08aW50PiA+IHRocmVhZHNba1RocmVhZENvdW50XTsKICAgICBOb3RpZmlj
YXRpb24gdGhyZWFkc19jYW5fc3RhcnQ7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0ga1RocmVh
ZENvdW50OyBpKyspCiAgICAgICB0aHJlYWRzW2ldLnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08
aW50PigmTWFueUFzc2VydHMsCkBAIC0xNjMsNyArMTYyLDcgQEAgdm9pZCBGYWlsaW5nVGhyZWFk
KGJvb2wgaXNfZmF0YWwpIHsKIH0KIAogdm9pZCBHZW5lcmF0ZUZhdGFsRmFpbHVyZUluQW5vdGhl
clRocmVhZChib29sIGlzX2ZhdGFsKSB7Ci0gIFRocmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQo
JkZhaWxpbmdUaHJlYWQsIGlzX2ZhdGFsLCBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPGJvb2w+
IHRocmVhZCgmRmFpbGluZ1RocmVhZCwgaXNfZmF0YWwsIG51bGxwdHIpOwogICB0aHJlYWQuSm9p
bigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3Rlc3RfdXRpbHMucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Rlc3Rf
dXRpbHMucHkKaW5kZXggNDNjYmE4ZjRjZDYxZGZmZjNhMWE1MjEwMWJlZDNlNzM0YTVlMWI1NC4u
ZDBjMjQ0NjZhNGI3ZTNlNjIzYjVhZjQ5NWI4ZTI2ZWFhOGE5Yzg2NCAxMDA3NTUKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90ZXN0X3V0aWxzLnB5CisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdGVzdF91dGlscy5weQpAQCAtMzYsNiArMzYs
NyBAQCBpbXBvcnQgc3lzCiAKIElTX1dJTkRPV1MgPSBvcy5uYW1lID09ICdudCcKIElTX0NZR1dJ
TiA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBhbmQgJ0NZR1dJTicgaW4gb3MudW5hbWUoKVswXQorSVNf
T1MyID0gb3MubmFtZSA9PSAnb3MyJwogCiBpbXBvcnQgYXRleGl0CiBpbXBvcnQgc2h1dGlsCkBA
IC0xNjQsNyArMTY1LDcgQEAgZGVmIEdldFRlc3RFeGVjdXRhYmxlUGF0aChleGVjdXRhYmxlX25h
bWUsIGJ1aWxkX2Rpcj1Ob25lKToKIAogICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGgu
am9pbihidWlsZF9kaXIgb3IgR2V0QnVpbGREaXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9uYW1lKSkKLSAgaWYgKElTX1dJTkRPV1Mgb3IgSVNf
Q1lHV0lOKSBhbmQgbm90IHBhdGguZW5kc3dpdGgoJy5leGUnKToKKyAgaWYgKElTX1dJTkRPV1Mg
b3IgSVNfQ1lHV0lOIG9yIElTX09TMikgYW5kIG5vdCBwYXRoLmVuZHN3aXRoKCcuZXhlJyk6CiAg
ICAgcGF0aCArPSAnLmV4ZScKIAogICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CkBAIC0y
MTQsMTAgKzIxNSwxMCBAQCBjbGFzcyBTdWJwcm9jZXNzOgogICAgIFJldHVybnM6CiAgICAgICBB
biBvYmplY3QgdGhhdCByZXByZXNlbnRzIG91dGNvbWUgb2YgdGhlIGV4ZWN1dGVkIHByb2Nlc3Mu
IEl0IGhhcyB0aGUKICAgICAgIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgotICAgICAgICB0ZXJtaW5h
dGVkX2J5X3NpZ25hbCAgIFRydWUgaWZmIHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuIHRlcm1p
bmF0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBhIHNpZ25hbC4KLSAgICAg
ICAgc2lnbmFsICAgICAgICAgICAgICAgICBTeWduYWwgdGhhdCB0ZXJtaW5hdGVkIHRoZSBjaGls
ZCBwcm9jZXNzLgotICAgICAgICBleGl0ZWQgICAgICAgICAgICAgICAgIFRydWUgaWZmIHRoZSBj
aGlsZCBwcm9jZXNzIGV4aXRlZCBub3JtYWxseS4KKyAgICAgICAgdGVybWluYXRlZF9ieV9zaWdu
YWwgICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBiZWVuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYXRlZCBieSBhIHNpZ25hbC4KKyAgICAg
ICAgZXhpdGVkICAgICAgICAgICAgICAgICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjaGlsZCBw
cm9jZXNzIGV4aXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGx5Lgog
ICAgICAgICBleGl0X2NvZGUgICAgICAgICAgICAgIFRoZSBjb2RlIHdpdGggd2hpY2ggdGhlIGNo
aWxkIHByb2Nlc3MgZXhpdGVkLgogICAgICAgICBvdXRwdXQgICAgICAgICAgICAgICAgIENoaWxk
IHByb2Nlc3MncyBzdGRvdXQgYW5kIHN0ZGVyciBvdXRwdXQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21iaW5lZCBpbiBhIHN0cmluZy4KQEAgLTI4NywxMCArMjg4LDkgQEAgY2xh
c3MgU3VicHJvY2VzczoKICAgICAgIGVsc2U6ICAjIG9zLldJRkVYSVRFRChyZXRfY29kZSkgc2hv
dWxkIHJldHVybiBUcnVlIGhlcmUuCiAgICAgICAgIHNlbGYuX3JldHVybl9jb2RlID0gb3MuV0VY
SVRTVEFUVVMocmV0X2NvZGUpCiAKLSAgICBpZiBzZWxmLl9yZXR1cm5fY29kZSA8IDA6CisgICAg
aWYgYm9vbChzZWxmLl9yZXR1cm5fY29kZSAmIDB4ODAwMDAwMDApOgogICAgICAgc2VsZi50ZXJt
aW5hdGVkX2J5X3NpZ25hbCA9IFRydWUKICAgICAgIHNlbGYuZXhpdGVkID0gRmFsc2UKLSAgICAg
IHNlbGYuc2lnbmFsID0gLXNlbGYuX3JldHVybl9jb2RlCiAgICAgZWxzZToKICAgICAgIHNlbGYu
dGVybWluYXRlZF9ieV9zaWduYWwgPSBGYWxzZQogICAgICAgc2VsZi5leGl0ZWQgPSBUcnVlCkBA
IC0zMDYsOCArMzA2LDYgQEAgZGVmIE1haW4oKToKICAgX1BhcnNlQW5kU3RyaXBHVGVzdEZsYWdz
KHN5cy5hcmd2KQogICAjIFRoZSB0ZXN0ZWQgYmluYXJpZXMgc2hvdWxkIG5vdCBiZSB3cml0aW5n
IFhNTCBvdXRwdXQgZmlsZXMgdW5sZXNzIHRoZQogICAjIHNjcmlwdCBleHBsaWNpdGx5IGluc3Ry
dWN0cyB0aGVtIHRvLgotICAjIEZJWE1FOiBNb3ZlIHRoaXMgaW50byBTdWJwcm9jZXNzIHdoZW4g
d2UgaW1wbGVtZW50Ci0gICMgcGFzc2luZyBlbnZpcm9ubWVudCBpbnRvIGl0IGFzIGEgcGFyYW1l
dGVyLgogICBpZiBHVEVTVF9PVVRQVVRfVkFSX05BTUUgaW4gb3MuZW52aXJvbjoKICAgICBkZWwg
b3MuZW52aXJvbltHVEVTVF9PVVRQVVRfVkFSX05BTUVdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rl
c3QuY2MKaW5kZXggOTNmNTlkNDljZmRiOTQ3NGRjYTYyMmMxN2EyYzk2NGFiMGJkNThmNC4uMWQ5
NWFkYmY1MzdiYTkxNzgxNjM5ODdjMGQzZTBjOGFhMDNhYjVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJlX2V4X3Rlc3QuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90aHJvd19vbl9mYWlsdXJl
X2V4X3Rlc3QuY2MKQEAgLTYzLDggKzYzLDcgQEAgdm9pZCBUZXN0RmFpbHVyZVRocm93c1J1bnRp
bWVFcnJvcigpIHsKICAgdHJ5IHsKICAgICBFWFBFQ1RfRVEoMiwgMykgPDwgIkV4cGVjdGVkIGZh
aWx1cmUiOwogICB9IGNhdGNoKGNvbnN0IHN0ZDo6cnVudGltZV9lcnJvciYgZSkgewotICAgIGlm
IChzdHJzdHIoZS53aGF0KCksICJFeHBlY3RlZCBmYWlsdXJlIikgIT0gTlVMTCkKLSAgICAgIHJl
dHVybjsKKyAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IG51
bGxwdHIpIHJldHVybjsKIAogICAgIHByaW50ZigiJXMiLAogICAgICAgICAgICAiQSBmYWlsZWQg
YXNzZXJ0aW9uIGRpZCB0aHJvdyBhbiBleGNlcHRpb24gb2YgdGhlIHJpZ2h0IHR5cGUsICIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjCmluZGV4IGY3
MjEzZmJmM2U1ZTg3MjA4OWJmYjk4NTUxYWMzYmEzZTNhNjdiZjUuLjE3MzBlOGI4YzljOWI3NDJi
NWRjZmQxZjUwNTViMmYyMzJkNDgzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF91bml0dGVzdC5jYwpAQCAtMzcsMjEgKzM3LDIyIEBACiAvLyBjb2RlIG9uY2Ug
Imd0ZXN0LmgiIGhhcyBiZWVuICNpbmNsdWRlZC4KIC8vIERvIG5vdCBtb3ZlIGl0IGFmdGVyIG90
aGVyIGd0ZXN0ICNpbmNsdWRlcy4KIFRFU1QoQ29tbWFuZExpbmVGbGFnc1Rlc3QsIENhbkJlQWNj
ZXNzZWRJbkNvZGVPbmNlR1Rlc3RISXNJbmNsdWRlZCkgewotICBib29sIGR1bW15ID0gdGVzdGlu
Zzo6R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6
OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSkKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZM
QUcoY2F0Y2hfZXhjZXB0aW9ucykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoY29sb3Ip
ICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhmaWx0ZXIpICE9ICJ1
bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhsaXN0X3Rlc3RzKQotICAgICAg
fHwgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQpICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVz
dGluZzo6R1RFU1RfRkxBRyhwcmludF90aW1lKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxB
RyhyYW5kb21fc2VlZCkKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcocmVwZWF0KSA+IDAK
LSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoc2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMp
Ci0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHNodWZmbGUpCi0gICAgICB8fCB0ZXN0aW5n
OjpHVEVTVF9GTEFHKHN0YWNrX3RyYWNlX2RlcHRoKSA+IDAKLSAgICAgIHx8IHRlc3Rpbmc6OkdU
RVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90bykgIT0gInVua25vd24iCi0gICAgICB8fCB0ZXN0aW5n
OjpHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpOworICBib29sIGR1bW15ID0gdGVzdGluZzo6
R1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykgfHwKKyAgICAgICAgICAgICAgIHRl
c3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSkgfHwKKyAgICAgICAgICAgICAgIHRl
c3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgfHwKKyAgICAgICAgICAgICAgIHRl
c3Rpbmc6OkdURVNUX0ZMQUcoY29sb3IpICE9ICJ1bmtub3duIiB8fAorICAgICAgICAgICAgICAg
dGVzdGluZzo6R1RFU1RfRkxBRyhmYWlsX2Zhc3QpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5n
OjpHVEVTVF9GTEFHKGZpbHRlcikgIT0gInVua25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0
aW5nOjpHVEVTVF9GTEFHKGxpc3RfdGVzdHMpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpH
VEVTVF9GTEFHKG91dHB1dCkgIT0gInVua25vd24iIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5n
OjpHVEVTVF9GTEFHKGJyaWVmKSB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHByaW50X3RpbWUpIHx8
CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSB8fAorICAg
ICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhyZXBlYXQpID4gMCB8fAorICAgICAgICAg
ICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhzaG93X2ludGVybmFsX3N0YWNrX2ZyYW1lcykgfHwK
KyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoc2h1ZmZsZSkgfHwKKyAgICAgICAg
ICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpID4gMCB8fAorICAg
ICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKSAhPSAidW5r
bm93biIgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUcodGhyb3dfb25fZmFp
bHVyZSk7CiAgIEVYUEVDVF9UUlVFKGR1bW15IHx8ICFkdW1teSk7ICAvLyBTdXBwcmVzc2VzIHdh
cm5pbmcgdGhhdCBkdW1teSBpcyB1bnVzZWQuCiB9CiAKQEAgLTYwLDEyICs2MSwxMyBAQCBURVNU
KENvbW1hbmRMaW5lRmxhZ3NUZXN0LCBDYW5CZUFjY2Vzc2VkSW5Db2RlT25jZUdUZXN0SElzSW5j
bHVkZWQpIHsKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKKyNpbmNs
dWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG1hcD4KLSNpbmNsdWRlIDx2ZWN0b3I+CiAjaW5jbHVk
ZSA8b3N0cmVhbT4KLSNpZiBHVEVTVF9MQU5HX0NYWDExCisjaW5jbHVkZSA8c3RyaW5nPgorI2lu
Y2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+Ci0jZW5kaWYgIC8v
IEdURVNUX0xBTkdfQ1hYMTEKKyNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9n
dGVzdC1zcGkuaCIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgiCkBAIC04MCw3
ICs4Miw3IEBAIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAg
Y2xhc3MgRmFrZVNvY2tldFdyaXRlciA6IHB1YmxpYyBTdHJlYW1pbmdMaXN0ZW5lcjo6QWJzdHJh
Y3RTb2NrZXRXcml0ZXIgewogICAgcHVibGljOgogICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRo
ZSBzb2NrZXQuCi0gICAgdmlydHVhbCB2b2lkIFNlbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3Nh
Z2UpIHsgb3V0cHV0XyArPSBtZXNzYWdlOyB9CisgICAgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBtZXNzYWdlKSBvdmVycmlkZSB7IG91dHB1dF8gKz0gbWVzc2FnZTsgfQogCiAgICAgc3Rk
OjpzdHJpbmcgb3V0cHV0XzsKICAgfTsKQEAgLTg4LDggKzkwLDggQEAgY2xhc3MgU3RyZWFtaW5n
TGlzdGVuZXJUZXN0IDogcHVibGljIFRlc3QgewogICBTdHJlYW1pbmdMaXN0ZW5lclRlc3QoKQog
ICAgICAgOiBmYWtlX3NvY2tfd3JpdGVyXyhuZXcgRmFrZVNvY2tldFdyaXRlciksCiAgICAgICAg
IHN0cmVhbWVyXyhmYWtlX3NvY2tfd3JpdGVyXyksCi0gICAgICAgIHRlc3RfaW5mb19vYmpfKCJG
b29UZXN0IiwgIkJhciIsIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgIENvZGVM
b2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pLCAwLCBOVUxMKSB7fQorICAgICAgICB0ZXN0X2lu
Zm9fb2JqXygiRm9vVGVzdCIsICJCYXIiLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICBDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSwgbnVsbHB0ciwgbnVs
bHB0cikge30KIAogIHByb3RlY3RlZDoKICAgc3RkOjpzdHJpbmcqIG91dHB1dCgpIHsgcmV0dXJu
ICYoZmFrZV9zb2NrX3dyaXRlcl8tPm91dHB1dF8pOyB9CkBAIC0xMTQsMTMgKzExNiwxMyBAQCBU
RVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJUZXN0LCBPblRlc3RJdGVyYXRpb25FbmQpIHsKIAogVEVT
VF9GKFN0cmVhbWluZ0xpc3RlbmVyVGVzdCwgT25UZXN0Q2FzZVN0YXJ0KSB7CiAgICpvdXRwdXQo
KSA9ICIiOwotICBzdHJlYW1lcl8uT25UZXN0Q2FzZVN0YXJ0KFRlc3RDYXNlKCJGb29UZXN0Iiwg
IkJhciIsIE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFtZXJfLk9uVGVzdENhc2VTdGFydChUZXN0Q2Fz
ZSgiRm9vVGVzdCIsICJCYXIiLCBudWxscHRyLCBudWxscHRyKSk7CiAgIEVYUEVDVF9FUSgiZXZl
bnQ9VGVzdENhc2VTdGFydCZuYW1lPUZvb1Rlc3RcbiIsICpvdXRwdXQoKSk7CiB9CiAKIFRFU1Rf
RihTdHJlYW1pbmdMaXN0ZW5lclRlc3QsIE9uVGVzdENhc2VFbmQpIHsKICAgKm91dHB1dCgpID0g
IiI7Ci0gIHN0cmVhbWVyXy5PblRlc3RDYXNlRW5kKFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIs
IE5VTEwsIE5VTEwpKTsKKyAgc3RyZWFtZXJfLk9uVGVzdENhc2VFbmQoVGVzdENhc2UoIkZvb1Rl
c3QiLCAiQmFyIiwgbnVsbHB0ciwgbnVsbHB0cikpOwogICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RD
YXNlRW5kJnBhc3NlZD0xJmVsYXBzZWRfdGltZT0wbXNcbiIsICpvdXRwdXQoKSk7CiB9CiAKQEAg
LTIwMiw5ICsyMDQsMTEgQEAgdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhicmVha19vbl9mYWls
dXJlKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucyk7CiB1c2lu
ZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNvbG9yKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUco
ZGVhdGhfdGVzdF91c2VfZm9yayk7Cit1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZhaWxfZmFz
dCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGZpbHRlcik7CiB1c2luZyB0ZXN0aW5nOjpH
VEVTVF9GTEFHKGxpc3RfdGVzdHMpOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQp
OwordXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhicmllZik7CiB1c2luZyB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHByaW50X3RpbWUpOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2Vl
ZCk7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHJlcGVhdCk7CkBAIC0yMTUsMjcgKzIxOSwy
NiBAQCB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0cmVhbV9yZXN1bHRfdG8pOwogdXNpbmcg
dGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKTsKIHVzaW5nIHRlc3Rpbmc6Oklz
Tm90U3Vic3RyaW5nOwogdXNpbmcgdGVzdGluZzo6SXNTdWJzdHJpbmc7Cit1c2luZyB0ZXN0aW5n
OjprTWF4U3RhY2tUcmFjZURlcHRoOwogdXNpbmcgdGVzdGluZzo6TWVzc2FnZTsKIHVzaW5nIHRl
c3Rpbmc6OlNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyOwogdXNpbmcgdGVzdGluZzo6
U3RhdGljQXNzZXJ0VHlwZUVxOwogdXNpbmcgdGVzdGluZzo6VGVzdDsKLXVzaW5nIHRlc3Rpbmc6
OlRlc3RDYXNlOwogdXNpbmcgdGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXJzOwogdXNpbmcgdGVz
dGluZzo6VGVzdEluZm87CiB1c2luZyB0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDsKIHVzaW5nIHRl
c3Rpbmc6OlRlc3RQYXJ0UmVzdWx0QXJyYXk7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UHJvcGVydHk7
CiB1c2luZyB0ZXN0aW5nOjpUZXN0UmVzdWx0OwordXNpbmcgdGVzdGluZzo6VGVzdFN1aXRlOwog
dXNpbmcgdGVzdGluZzo6VGltZUluTWlsbGlzOwogdXNpbmcgdGVzdGluZzo6VW5pdFRlc3Q7Ci11
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QWRkUmVmZXJlbmNlOwogdXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6OkFsd2F5c0ZhbHNlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5c1RydWU7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6QXBwZW5kVXNlck1lc3NhZ2U7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6QXJyYXlBd2FyZUZpbmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
QXJyYXlFcTsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpDb2RlUG9pbnRUb1V0Zjg7Ci11c2lu
ZyB0ZXN0aW5nOjppbnRlcm5hbDo6Q29tcGlsZUFzc2VydFR5cGVzRXF1YWw7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6Q29weUFycmF5OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvdW50
SWY7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RXFGYWlsdXJlOwpAQCAtMjQzLDcgKzI0Niw2
IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbG9hdGluZ1BvaW50OwogdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OkZvckVhY2g7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0RXBv
Y2hUaW1lSW5NaWxsaXNBc0lzbzg2MDE7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6Rm9ybWF0
VGltZUluTWlsbGlzQXNTZWNvbmRzOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0Rmxh
Z1NhdmVyOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldEN1cnJlbnRPc1N0YWNrVHJhY2VF
eGNlcHRUb3A7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0RWxlbWVudE9yOwogdXNpbmcg
dGVzdGluZzo6aW50ZXJuYWw6OkdldE5leHRSYW5kb21TZWVkOwpAQCAtMjUyLDIxICsyNTQsMjAg
QEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFRlc3RUeXBlSWQ7CiB1c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Okdl
dFR5cGVJZDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRVbml0VGVzdEltcGw7Ci11c2lu
ZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlOwotdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OkludDMyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdUZXN0RmxhZ1Nh
dmVyOwordXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Okhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1
Z1N0cmluZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJbnQzMkZyb21FbnZPckRpZTsKLXVz
aW5nIHRlc3Rpbmc6OmludGVybmFsOjpJc0FQcm90b2NvbE1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6SXNDb250YWluZXI7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SXNDb250
YWluZXJUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OklzTm90Q29udGFpbmVyOwordXNp
bmcgdGVzdGluZzo6aW50ZXJuYWw6OmtNYXhSYW5kb21TZWVkOwordXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6OmtUZXN0VHlwZUlkSW5Hb29nbGVUZXN0OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
Ok5hdGl2ZUFycmF5OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok9zU3RhY2tUcmFjZUdldHRl
cjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpPc1N0YWNrVHJhY2VHZXR0ZXJJbnRlcmZhY2U7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UGFyc2VJbnQzMkZsYWc7CiB1c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6UmVsYXRpb25Ub1NvdXJjZUNvcHk7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6UmVsYXRpb25Ub1NvdXJjZVJlZmVyZW5jZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpS
ZW1vdmVDb25zdDsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpSZW1vdmVSZWZlcmVuY2U7CiB1
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hvdWxkUnVuVGVzdE9uU2hhcmQ7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6U2hvdWxkU2hhcmQ7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6U2hv
dWxkVXNlQ29sb3I7CkBAIC0yNzcsMTUgKzI3OCwxMSBAQCB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6U3RyZWFtYWJsZVRvU3RyaW5nOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlN0cmluZzsK
IHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3NvcjsKIHVz
aW5nIHRlc3Rpbmc6OmludGVybmFsOjpUZXN0UmVzdWx0QWNjZXNzb3I7Ci11c2luZyB0ZXN0aW5n
OjppbnRlcm5hbDo6VUludDMyOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlVuaXRUZXN0SW1w
bDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpXaWRlU3RyaW5nVG9VdGY4OwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OmVkaXRfZGlzdGFuY2U6OkNhbGN1bGF0ZU9wdGltYWxFZGl0czsKIHVz
aW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0X2Rpc3RhbmNlOjpDcmVhdGVVbmlmaWVkRGlmZjsK
IHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0X2Rpc3RhbmNlOjpFZGl0VHlwZTsKLXVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjprTWF4UmFuZG9tU2VlZDsKLXVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjprVGVzdFR5cGVJZEluR29vZ2xlVGVzdDsKLXVzaW5nIHRlc3Rpbmc6OmtNYXhTdGFja1Ry
YWNlRGVwdGg7CiAKICNpZiBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9OCiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6Q2FwdHVyZVN0ZG91dDsKQEAgLTQ0MCw4ICs0MzcsOCBAQCBjbGFzcyBG
b3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIHN0
YXRpYyBjb25zdCBUaW1lSW5NaWxsaXMga01pbGxpc1BlclNlYyA9IDEwMDA7CiAKICBwcml2YXRl
OgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgc2F2ZWRfdHpfID0gTlVMTDsKKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBzYXZlZF90el8gPSBudWxscHRyOwogCiAgICAgR1RF
U1RfRElTQUJMRV9NU0NfREVQUkVDQVRFRF9QVVNIXygvKiBnZXRlbnYsIHN0cmR1cDogZGVwcmVj
YXRlZCAqLykKICAgICBpZiAoZ2V0ZW52KCJUWiIpKQpAQCAtNDU0LDEwICs0NTEsMTAgQEAgY2xh
c3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3Qgewog
ICAgIFNldFRpbWVab25lKCJVVEMrMDAiKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93
bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBTZXRUaW1lWm9uZShzYXZl
ZF90el8pOwogICAgIGZyZWUoY29uc3RfY2FzdDxjaGFyKj4oc2F2ZWRfdHpfKSk7Ci0gICAgc2F2
ZWRfdHpfID0gTlVMTDsKKyAgICBzYXZlZF90el8gPSBudWxscHRyOwogICB9CiAKICAgc3RhdGlj
IHZvaWQgU2V0VGltZVpvbmUoY29uc3QgY2hhciogdGltZV96b25lKSB7CkBAIC00ODksNjEgKzQ4
NiwxMTIgQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0IDogcHVi
bGljIFRlc3QgewogY29uc3QgVGltZUluTWlsbGlzIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJ
c284NjAxVGVzdDo6a01pbGxpc1BlclNlYzsKIAogVEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWls
bGlzQXNJc284NjAxVGVzdCwgUHJpbnRzVHdvRGlnaXRTZWdtZW50cykgewotICBFWFBFQ1RfRVEo
IjIwMTEtMTAtMzFUMTg6NTI6NDIiLAorICBFWFBFQ1RfRVEoIjIwMTEtMTAtMzFUMTg6NTI6NDIu
MDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDEzMjAw
ODcxNjIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKLVRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzSXNvODYwMVRlc3QsIE1pbGxpc2Vjb25kc0RvTm90QWZmZWN0UmVzdWx0KSB7CitURVNU
X0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBJbmNsdWRlc01pbGxpc2Vj
b25kc0FmdGVyRG90KSB7CiAgIEVYUEVDVF9FUSgKLSAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQy
IiwKKyAgICAgICIyMDExLTEwLTMxVDE4OjUyOjQyLjIzNCIsCiAgICAgICBGb3JtYXRFcG9jaFRp
bWVJbk1pbGxpc0FzSXNvODYwMSgxMzIwMDg3MTYyICoga01pbGxpc1BlclNlYyArIDIzNCkpOwog
fQogCiBURVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNM
ZWFkaW5nWmVyb2VzKSB7Ci0gIEVYUEVDVF9FUSgiMjAxMS0wOS0wM1QwNTowNzowMiIsCisgIEVY
UEVDVF9FUSgiMjAxMS0wOS0wM1QwNTowNzowMi4wMDAiLAogICAgICAgICAgICAgRm9ybWF0RXBv
Y2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMTMxNTAyNjQyMiAqIGtNaWxsaXNQZXJTZWMpKTsKIH0K
IAogVEVTVF9GKEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRzMjRI
b3VyVGltZSkgewotICBFWFBFQ1RfRVEoIjIwMTEtMDktMjhUMTc6MDg6MjIiLAorICBFWFBFQ1Rf
RVEoIjIwMTEtMDktMjhUMTc6MDg6MjIuMDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGlt
ZUluTWlsbGlzQXNJc284NjAxKDEzMTcyMjk3MDIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKIFRF
U1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIFByaW50c0Vwb2NoU3Rh
cnQpIHsKLSAgRVhQRUNUX0VRKCIxOTcwLTAxLTAxVDAwOjAwOjAwIiwgRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDEoMCkpOworICBFWFBFQ1RfRVEoIjE5NzAtMDEtMDFUMDA6MDA6MDAu
MDAwIiwgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoMCkpOwogfQogCi0jaWYgR1RF
U1RfQ0FOX0NPTVBBUkVfTlVMTAotCiAjIGlmZGVmIF9fQk9STEFORENfXwogLy8gU2lsZW5jZXMg
d2FybmluZ3M6ICJDb25kaXRpb24gaXMgYWx3YXlzIHRydWUiLCAiVW5yZWFjaGFibGUgY29kZSIK
ICMgIHByYWdtYSBvcHRpb24gcHVzaCAtdy1jY2MgLXctcmNoCiAjIGVuZGlmCiAKLS8vIFRlc3Rz
IHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBpcyB0cnVlIHdoZW4geCBpcyBhIG51bGwK
LS8vIHBvaW50ZXIgbGl0ZXJhbC4KLVRFU1QoTnVsbExpdGVyYWxUZXN0LCBJc1RydWVGb3JOdWxs
TGl0ZXJhbHMpIHsKLSAgRVhQRUNUX1RSVUUoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyhOVUxMKSk7
Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oMCkpOwotICBFWFBFQ1RfVFJV
RShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDBVKSk7Ci0gIEVYUEVDVF9UUlVFKEdURVNUX0lTX05V
TExfTElURVJBTF8oMEwpKTsKKy8vIFRlc3RzIHRoYXQgdGhlIExIUyBvZiBFWFBFQ1RfRVEgb3Ig
QVNTRVJUX0VRIGNhbiBiZSB1c2VkIGFzIGEgbnVsbCBsaXRlcmFsCisvLyB3aGVuIHRoZSBSSFMg
aXMgYSBwb2ludGVyIHR5cGUuCitURVNUKE51bGxMaXRlcmFsVGVzdCwgTEhTQWxsb3dzTnVsbExp
dGVyYWxzKSB7CisgIEVYUEVDVF9FUSgwLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikpOyAg
ICAgLy8gTk9MSU5UCisgIEFTU0VSVF9FUSgwLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikp
OyAgICAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4obnVs
bHB0cikpOyAgLy8gTk9MSU5UCisgIEFTU0VSVF9FUShOVUxMLCBzdGF0aWNfY2FzdDx2b2lkKj4o
bnVsbHB0cikpOyAgLy8gTk9MSU5UCisgIEVYUEVDVF9FUShudWxscHRyLCBzdGF0aWNfY2FzdDx2
b2lkKj4obnVsbHB0cikpOworICBBU1NFUlRfRVEobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+
KG51bGxwdHIpKTsKKworICBjb25zdCBpbnQqIGNvbnN0IHAgPSBudWxscHRyOworICBFWFBFQ1Rf
RVEoMCwgcCk7ICAgICAvLyBOT0xJTlQKKyAgQVNTRVJUX0VRKDAsIHApOyAgICAgLy8gTk9MSU5U
CisgIEVYUEVDVF9FUShOVUxMLCBwKTsgIC8vIE5PTElOVAorICBBU1NFUlRfRVEoTlVMTCwgcCk7
ICAvLyBOT0xJTlQKKyAgRVhQRUNUX0VRKG51bGxwdHIsIHApOworICBBU1NFUlRfRVEobnVsbHB0
ciwgcCk7Cit9CisKK3N0cnVjdCBDb252ZXJ0VG9BbGwgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KKyAgb3BlcmF0b3IgVCgpIGNvbnN0IHsgIC8vIE5PTElOVAorICAgIHJldHVybiBUKCk7Cisg
IH0KK307CisKK3N0cnVjdCBDb252ZXJ0VG9Qb2ludGVyIHsKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+
CisgIG9wZXJhdG9yIFQqKCkgY29uc3QgeyAgLy8gTk9MSU5UCisgICAgcmV0dXJuIG51bGxwdHI7
CisgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0VG9BbGxCdXROb1BvaW50ZXJzIHsKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQsCisgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3Rk
Ojppc19wb2ludGVyPFQ+Ojp2YWx1ZSwgaW50Pjo6dHlwZSA9IDA+CisgIG9wZXJhdG9yIFQoKSBj
b25zdCB7ICAvLyBOT0xJTlQKKyAgICByZXR1cm4gVCgpOworICB9Cit9OworCitzdHJ1Y3QgTXlU
eXBlIHt9OworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShNeVR5cGUgY29uc3QmLCBNeVR5cGUgY29u
c3QmKSB7IHJldHVybiB0cnVlOyB9CisKK1RFU1QoTnVsbExpdGVyYWxUZXN0LCBJbXBsaWNpdENv
bnZlcnNpb24pIHsKKyAgRVhQRUNUX0VRKENvbnZlcnRUb1BvaW50ZXJ7fSwgc3RhdGljX2Nhc3Q8
dm9pZCo+KG51bGxwdHIpKTsKKyNpZiAhZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX2Ns
YW5nX18pCisgIC8vIERpc2FibGVkIGR1ZSB0byBHQ0MgYnVnIGdjYy5nbnUub3JnL1BSODk1ODAK
KyAgRVhQRUNUX0VRKENvbnZlcnRUb0FsbHt9LCBzdGF0aWNfY2FzdDx2b2lkKj4obnVsbHB0cikp
OworI2VuZGlmCisgIEVYUEVDVF9FUShDb252ZXJ0VG9BbGx7fSwgTXlUeXBle30pOworICBFWFBF
Q1RfRVEoQ29udmVydFRvQWxsQnV0Tm9Qb2ludGVyc3t9LCBNeVR5cGV7fSk7CiB9CiAKLS8vIFRl
c3RzIHRoYXQgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBpcyBmYWxzZSB3aGVuIHggaXMgbm90
IGEgbnVsbAotLy8gcG9pbnRlciBsaXRlcmFsLgotVEVTVChOdWxsTGl0ZXJhbFRlc3QsIElzRmFs
c2VGb3JOb25OdWxsTGl0ZXJhbHMpIHsKLSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElU
RVJBTF8oMSkpOwotICBFWFBFQ1RfRkFMU0UoR1RFU1RfSVNfTlVMTF9MSVRFUkFMXygwLjApKTsK
LSAgRVhQRUNUX0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oJ2EnKSk7Ci0gIEVYUEVDVF9G
QUxTRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHN0YXRpY19jYXN0PHZvaWQqPihOVUxMKSkpOwor
I2lmZGVmIF9fY2xhbmdfXworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNpZiBfX2hh
c193YXJuaW5nKCItV3plcm8tYXMtbnVsbC1wb2ludGVyLWNvbnN0YW50IikKKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBlcnJvciAiLVd6ZXJvLWFzLW51bGwtcG9pbnRlci1jb25zdGFudCIKKyNl
bmRpZgorI2VuZGlmCisKK1RFU1QoTnVsbExpdGVyYWxUZXN0LCBOb0NvbnZlcnNpb25Ob1dhcm5p
bmcpIHsKKyAgLy8gVGVzdCB0aGF0IGd0ZXN0cyBkZXRlY3Rpb24gYW5kIGhhbmRsaW5nIG9mIG51
bGwgcG9pbnRlciBjb25zdGFudHMKKyAgLy8gZG9lc24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVu
ICcwJyBpc24ndCBhY3R1YWxseSB1c2VkIGFzIG51bGwuCisgIEVYUEVDVF9FUSgwLCAwKTsKKyAg
QVNTRVJUX0VRKDAsIDApOwogfQogCisjaWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisjZW5kaWYKKwogIyBpZmRlZiBfX0JPUkxBTkRDX18KIC8vIFJlc3RvcmVz
IHdhcm5pbmdzIGFmdGVyIHByZXZpb3VzICIjcHJhZ21hIG9wdGlvbiBwdXNoIiBzdXBwcmVzc2Vk
IHRoZW0uCiAjICBwcmFnbWEgb3B0aW9uIHBvcAogIyBlbmRpZgogCi0jZW5kaWYgIC8vIEdURVNU
X0NBTl9DT01QQVJFX05VTEwKIC8vCiAvLyBUZXN0cyBDb2RlUG9pbnRUb1V0ZjgoKS4KIApAQCAt
NTg4LDcgKzYzNiw3IEBAIFRFU1QoQ29kZVBvaW50VG9VdGY4VGVzdCwgQ2FuRW5jb2RlMTJUbzE2
Qml0cykgewogCiAjaWYgIUdURVNUX1dJREVfU1RSSU5HX1VTRVNfVVRGMTZfCiAvLyBUZXN0cyBp
biB0aGlzIGdyb3VwIHJlcXVpcmUgYSB3Y2hhcl90IHRvIGhvbGQgPiAxNiBiaXRzLCBhbmQgdGh1
cwotLy8gYXJlIHNraXBwZWQgb24gV2luZG93cywgQ3lnd2luLCBhbmQgU3ltYmlhbiwgd2hlcmUg
YSB3Y2hhcl90IGlzCisvLyBhcmUgc2tpcHBlZCBvbiBXaW5kb3dzLCBhbmQgQ3lnd2luLCB3aGVy
ZSBhIHdjaGFyX3QgaXMKIC8vIDE2LWJpdCB3aWRlLiBUaGlzIGNvZGUgbWF5IG5vdCBjb21waWxl
IG9uIHRob3NlIHN5c3RlbXMuCiAKIC8vIFRlc3RzIHRoYXQgVW5pY29kZSBjb2RlLXBvaW50cyB0
aGF0IGhhdmUgMTcgdG8gMjEgYml0cyBhcmUgZW5jb2RlZApAQCAtNzQzLDcgKzc5MSw3IEBAIFRF
U1QoUmFuZG9tRGVhdGhUZXN0LCBHZW5lcmF0ZXNDcmFzaGVzT25JbnZhbGlkUmFuZ2UpIHsKIH0K
IAogVEVTVChSYW5kb21UZXN0LCBHZW5lcmF0ZXNOdW1iZXJzV2l0aGluUmFuZ2UpIHsKLSAgY29u
c3QgVUludDMyIGtSYW5nZSA9IDEwMDAwOworICBjb25zdGV4cHIgdWludDMyX3Qga1JhbmdlID0g
MTAwMDA7CiAgIHRlc3Rpbmc6OmludGVybmFsOjpSYW5kb20gcmFuZG9tKDEyMzQ1KTsKICAgZm9y
IChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CiAgICAgRVhQRUNUX0xUKHJhbmRvbS5HZW5lcmF0
ZShrUmFuZ2UpLCBrUmFuZ2UpIDw8ICIgZm9yIGl0ZXJhdGlvbiAiIDw8IGk7CkBAIC03NTYsMTAg
KzgwNCwxMCBAQCBURVNUKFJhbmRvbVRlc3QsIEdlbmVyYXRlc051bWJlcnNXaXRoaW5SYW5nZSkg
ewogfQogCiBURVNUKFJhbmRvbVRlc3QsIFJlcGVhdHNXaGVuUmVzZWVkZWQpIHsKLSAgY29uc3Qg
aW50IGtTZWVkID0gMTIzOwotICBjb25zdCBpbnQga0FycmF5U2l6ZSA9IDEwOwotICBjb25zdCBV
SW50MzIga1JhbmdlID0gMTAwMDA7Ci0gIFVJbnQzMiB2YWx1ZXNba0FycmF5U2l6ZV07CisgIGNv
bnN0ZXhwciBpbnQga1NlZWQgPSAxMjM7CisgIGNvbnN0ZXhwciBpbnQga0FycmF5U2l6ZSA9IDEw
OworICBjb25zdGV4cHIgdWludDMyX3Qga1JhbmdlID0gMTAwMDA7CisgIHVpbnQzMl90IHZhbHVl
c1trQXJyYXlTaXplXTsKIAogICB0ZXN0aW5nOjppbnRlcm5hbDo6UmFuZG9tIHJhbmRvbShrU2Vl
ZCk7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwga0FycmF5U2l6ZTsgaSsrKSB7CkBAIC04NTEsMjMg
Kzg5OSwyMyBAQCBURVNUKENvbnRhaW5lclV0aWxpdHlEZWF0aFRlc3QsIFNodWZmbGVSYW5nZSkg
ewogCiBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6
Ci0gIHN0YXRpYyBjb25zdCBpbnQga1ZlY3RvclNpemUgPSAyMDsKKyAgc3RhdGljIGNvbnN0IHNp
emVfdCBrVmVjdG9yU2l6ZSA9IDIwOwogCiAgIFZlY3RvclNodWZmbGVUZXN0KCkgOiByYW5kb21f
KDEpIHsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpOyBpKyspIHsK
ICAgICAgIHZlY3Rvcl8ucHVzaF9iYWNrKGkpOwogICAgIH0KICAgfQogCiAgIHN0YXRpYyBib29s
IFZlY3RvcklzQ29ycnVwdChjb25zdCBUZXN0aW5nVmVjdG9yJiB2ZWN0b3IpIHsKLSAgICBpZiAo
a1ZlY3RvclNpemUgIT0gc3RhdGljX2Nhc3Q8aW50Pih2ZWN0b3Iuc2l6ZSgpKSkgeworICAgIGlm
IChrVmVjdG9yU2l6ZSAhPSB2ZWN0b3Iuc2l6ZSgpKSB7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKICAgICBib29sIGZvdW5kX2luX3ZlY3RvcltrVmVjdG9yU2l6ZV0gPSB7IGZhbHNlIH07
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyBpKyspIHsKICAgICAg
IGNvbnN0IGludCBlID0gdmVjdG9yW2ldOwotICAgICAgaWYgKGUgPCAwIHx8IGUgPj0ga1ZlY3Rv
clNpemUgfHwgZm91bmRfaW5fdmVjdG9yW2VdKSB7CisgICAgICBpZiAoZSA8IDAgfHwgZSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JTaXplKSB8fCBmb3VuZF9pbl92ZWN0b3JbZV0pIHsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAgICAgICBmb3VuZF9pbl92ZWN0b3JbZV0gPSB0
cnVlOwpAQCAtODg0LDcgKzkzMiw3IEBAIGNsYXNzIFZlY3RvclNodWZmbGVUZXN0IDogcHVibGlj
IFRlc3QgewogCiAgIHN0YXRpYyBib29sIFJhbmdlSXNTaHVmZmxlZChjb25zdCBUZXN0aW5nVmVj
dG9yJiB2ZWN0b3IsIGludCBiZWdpbiwgaW50IGVuZCkgewogICAgIGZvciAoaW50IGkgPSBiZWdp
bjsgaSA8IGVuZDsgaSsrKSB7Ci0gICAgICBpZiAoaSAhPSB2ZWN0b3JbaV0pIHsKKyAgICAgIGlm
IChpICE9IHZlY3RvcltzdGF0aWNfY2FzdDxzaXplX3Q+KGkpXSkgewogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgIH0KICAgICB9CkBAIC05MDgsNyArOTU2LDcgQEAgY2xhc3MgVmVjdG9yU2h1
ZmZsZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIFRlc3RpbmdWZWN0b3IgdmVjdG9yXzsKIH07ICAv
LyBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdAogCi1jb25zdCBpbnQgVmVjdG9yU2h1ZmZsZVRlc3Q6
OmtWZWN0b3JTaXplOworY29uc3Qgc2l6ZV90IFZlY3RvclNodWZmbGVUZXN0OjprVmVjdG9yU2l6
ZTsKIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBIYW5kbGVzRW1wdHlSYW5nZSkgewogICAv
LyBUZXN0cyBhbiBlbXB0eSByYW5nZSBhdCB0aGUgYmVnaW5uaW5nLi4uCkBAIC05NjAsNyArMTAw
OCw3IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNFbnRpcmVWZWN0b3IpIHsK
ICAgLy8gVGVzdHMgdGhlIGZpcnN0IGFuZCBsYXN0IGVsZW1lbnRzIGluIHBhcnRpY3VsYXIgdG8g
ZW5zdXJlIHRoYXQKICAgLy8gdGhlcmUgYXJlIG5vIG9mZi1ieS1vbmUgcHJvYmxlbXMgaW4gb3Vy
IHNodWZmbGUgYWxnb3JpdGhtLgogICBFWFBFQ1RfTkUoMCwgdmVjdG9yX1swXSk7Ci0gIEVYUEVD
VF9ORShrVmVjdG9yU2l6ZSAtIDEsIHZlY3Rvcl9ba1ZlY3RvclNpemUgLSAxXSk7CisgIEVYUEVD
VF9ORShzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JTaXplIC0gMSksIHZlY3Rvcl9ba1ZlY3RvclNp
emUgLSAxXSk7CiB9CiAKIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNTdGFydE9m
VmVjdG9yKSB7CkBAIC05NzAsNyArMTAxOCw4IEBAIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwg
U2h1ZmZsZXNTdGFydE9mVmVjdG9yKSB7CiAKICAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29y
cnVwdCwgdmVjdG9yXyk7CiAgIEVYUEVDVF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8s
IDAsIGtSYW5nZVNpemUpOwotICBFWFBFQ1RfUFJFRDMoUmFuZ2VJc1Vuc2h1ZmZsZWQsIHZlY3Rv
cl8sIGtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNo
dWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VTaXplLAorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
aW50PihrVmVjdG9yU2l6ZSkpOwogfQogCiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZm
bGVzRW5kT2ZWZWN0b3IpIHsKQEAgLTk3OSwyMyArMTAyOCwyNSBAQCBURVNUX0YoVmVjdG9yU2h1
ZmZsZVRlc3QsIFNodWZmbGVzRW5kT2ZWZWN0b3IpIHsKIAogICBBU1NFUlRfUFJFRDEoVmVjdG9y
SXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsKICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVk
LCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxl
ZCwgdmVjdG9yXywga1JhbmdlU2l6ZSwga1ZlY3RvclNpemUpOworICBFWFBFQ1RfUFJFRDMoUmFu
Z2VJc1NodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VTaXplLAorICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8aW50PihrVmVjdG9yU2l6ZSkpOwogfQogCiBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3Qs
IFNodWZmbGVzTWlkZGxlT2ZWZWN0b3IpIHsKLSAgaW50IGtSYW5nZVNpemUgPSBrVmVjdG9yU2l6
ZS8zOworICBjb25zdCBpbnQga1JhbmdlU2l6ZSA9IHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNp
emUpIC8gMzsKICAgU2h1ZmZsZVJhbmdlKCZyYW5kb21fLCBrUmFuZ2VTaXplLCAyKmtSYW5nZVNp
emUsICZ2ZWN0b3JfKTsKIAogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0
b3JfKTsKICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFu
Z2VTaXplKTsKICAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9yXywga1Jhbmdl
U2l6ZSwgMiprUmFuZ2VTaXplKTsKLSAgRVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2
ZWN0b3JfLCAyKmtSYW5nZVNpemUsIGtWZWN0b3JTaXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdl
SXNVbnNodWZmbGVkLCB2ZWN0b3JfLCAyICoga1JhbmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpKTsKIH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVU
ZXN0LCBTaHVmZmxlc1JlcGVhdGFibHkpIHsKICAgVGVzdGluZ1ZlY3RvciB2ZWN0b3IyOwotICBm
b3IgKGludCBpID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKLSAgICB2ZWN0b3IyLnB1c2hf
YmFjayhpKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7Cisg
ICAgdmVjdG9yMi5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50PihpKSk7CiAgIH0KIAogICByYW5k
b21fLlJlc2VlZCgxMjM0KTsKQEAgLTEwMDYsNyArMTA1Nyw3IEBAIFRFU1RfRihWZWN0b3JTaHVm
ZmxlVGVzdCwgU2h1ZmZsZXNSZXBlYXRhYmx5KSB7CiAgIEFTU0VSVF9QUkVEMShWZWN0b3JJc05v
dENvcnJ1cHQsIHZlY3Rvcl8pOwogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2
ZWN0b3IyKTsKIAotICBmb3IgKGludCBpID0gMDsgaSA8IGtWZWN0b3JTaXplOyBpKyspIHsKKyAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CiAgICAgRVhQRUNUX0VR
KHZlY3Rvcl9baV0sIHZlY3RvcjJbaV0pIDw8ICIgd2hlcmUgaSBpcyAiIDw8IGk7CiAgIH0KIH0K
QEAgLTEwMzQsMTEgKzEwODUsMTEgQEAgVEVTVChTdHJpbmdUZXN0LCBFbmRzV2l0aENhc2VJbnNl
bnNpdGl2ZSkgewogLy8gQysrQnVpbGRlcidzIHByZXByb2Nlc3NvciBpcyBidWdneTsgaXQgZmFp
bHMgdG8gZXhwYW5kIG1hY3JvcyB0aGF0CiAvLyBhcHBlYXIgaW4gbWFjcm8gcGFyYW1ldGVycyBh
ZnRlciB3aWRlIGNoYXIgbGl0ZXJhbHMuICBQcm92aWRlIGFuIGFsaWFzCiAvLyBmb3IgTlVMTCBh
cyBhIHdvcmthcm91bmQuCi1zdGF0aWMgY29uc3Qgd2NoYXJfdCogY29uc3Qga051bGwgPSBOVUxM
Oworc3RhdGljIGNvbnN0IHdjaGFyX3QqIGNvbnN0IGtOdWxsID0gbnVsbHB0cjsKIAogLy8gVGVz
dHMgU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscwogVEVTVChTdHJpbmdU
ZXN0LCBDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscykgewotICBFWFBFQ1RfVFJVRShT
dHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKE5VTEwsIE5VTEwpKTsKKyAg
RVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhudWxs
cHRyLCBudWxscHRyKSk7CiAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdp
ZGVDU3RyaW5nRXF1YWxzKGtOdWxsLCBMIiIpKTsKICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2Fz
ZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoTCIiLCBrTnVsbCkpOwogICBFWFBFQ1RfRkFM
U0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhrTnVsbCwgTCJmb29i
YXIiKSk7CkBAIC0xMTU5LDcgKzEyMTAsNyBAQCBjbGFzcyBTY29wZWRGYWtlVGVzdFBhcnRSZXN1
bHRSZXBvcnRlcldpdGhUaHJlYWRzVGVzdAogICA6IHB1YmxpYyBTY29wZWRGYWtlVGVzdFBhcnRS
ZXN1bHRSZXBvcnRlclRlc3QgewogIHByb3RlY3RlZDoKICAgc3RhdGljIHZvaWQgQWRkRmFpbHVy
ZUluT3RoZXJUaHJlYWQoRmFpbHVyZU1vZGUgZmFpbHVyZSkgewotICAgIFRocmVhZFdpdGhQYXJh
bTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZBZGRGYWlsdXJlLCBmYWlsdXJlLCBOVUxMKTsKKyAgICBU
aHJlYWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVhZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwg
bnVsbHB0cik7CiAgICAgdGhyZWFkLkpvaW4oKTsKICAgfQogfTsKQEAgLTExOTUsMTIgKzEyNDYs
NiBAQCBURVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVzdCwgQ2F0Y2hlc0ZhdGFsRmFsaXVyZSkg
ewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRGYXRhbEZhaWx1cmUoKSwgIkV4cGVjdGVkIGZh
dGFsIGZhaWx1cmUuIik7CiB9CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotVEVTVF9G
KEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIEFjY2VwdHNTdHJpbmdPYmplY3QpIHsKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoQWRkRmF0YWxGYWlsdXJlKCksIDo6c3RyaW5nKCJFeHBlY3RlZCBmYXRh
bCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRpZgotCiBURVNUX0YoRXhwZWN0RmF0YWxGYWlsdXJlVGVz
dCwgQWNjZXB0c1N0ZFN0cmluZ09iamVjdCkgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBZGRG
YXRhbEZhaWx1cmUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6OnN0cmluZygiRXhw
ZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKSk7CkBAIC0xMjgzLDEzICsxMzI4LDYgQEAgVEVTVF9GKEV4
cGVjdE5vbmZhdGFsRmFpbHVyZVRlc3QsIENhdGNoZXNOb25mYXRhbEZhaWx1cmUpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQog
Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLVRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1
cmVUZXN0LCBBY2NlcHRzU3RyaW5nT2JqZWN0KSB7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJF
KEFkZE5vbmZhdGFsRmFpbHVyZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0cmlu
ZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuIikpOwotfQotI2VuZGlmCi0KIFRFU1RfRihF
eHBlY3ROb25mYXRhbEZhaWx1cmVUZXN0LCBBY2NlcHRzU3RkU3RyaW5nT2JqZWN0KSB7CiAgIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEFkZE5vbmZhdGFsRmFpbHVyZSgpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICA6OnN0ZDo6c3RyaW5nKCJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4i
KSk7CkBAIC0xMzYzLDcgKzE0MDEsNyBAQCBjbGFzcyBUZXN0UmVzdWx0VGVzdCA6IHB1YmxpYyBU
ZXN0IHsKICAgLy8gLi4uIGFuZCAzIFRlc3RSZXN1bHQgb2JqZWN0cy4KICAgVGVzdFJlc3VsdCAq
IHIwLCAqIHIxLCAqIHIyOwogCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsKICAgICAvLyBwcjEgaXMgZm9yIHN1Y2Nlc3MuCiAgICAgcHIxID0gbmV3
IFRlc3RQYXJ0UmVzdWx0KFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImZvby9iYXIuY2MiLApAQCAtMTQwMCw3ICsxNDM4LDcgQEAgY2xhc3Mg
VGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgICAgcmVzdWx0czItPnB1c2hfYmFjaygq
cHIyKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlIHsKICAgICBkZWxldGUgcHIxOwogICAgIGRlbGV0ZSBwcjI7CiAKQEAgLTE1
NTYsNyArMTU5NCw3IEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsK
ICAgLy8gU2F2ZXMgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIHN1Y2ggdGhhdCB3ZSBjYW4gcmVzdG9y
ZSB0aGVtIGxhdGVyLCBhbmQKICAgLy8gdGhlbiBzZXRzIHRoZW0gdG8gdGhlaXIgZGVmYXVsdCB2
YWx1ZXMuICBUaGlzIHdpbGwgYmUgY2FsbGVkCiAgIC8vIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBp
biB0aGlzIHRlc3QgY2FzZSBpcyBydW4uCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7
CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIHNhdmVyXyA9IG5ldyBHVGVz
dEZsYWdTYXZlcjsKIAogICAgIEdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMpID0g
ZmFsc2U7CkBAIC0xNTY0LDkgKzE2MDIsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDog
cHVibGljIFRlc3QgewogICAgIEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSBmYWxzZTsK
ICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspID0gZmFsc2U7CiAgICAgR1RFU1Rf
RkxBRyhjb2xvcikgPSAiYXV0byI7CisgICAgR1RFU1RfRkxBRyhmYWlsX2Zhc3QpID0gZmFsc2U7
CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gIiI7CiAgICAgR1RFU1RfRkxBRyhsaXN0X3Rlc3Rz
KSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9ICIiOworICAgIEdURVNUX0ZMQUco
YnJpZWYpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IHRydWU7CiAgICAg
R1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSAwOwogICAgIEdURVNUX0ZMQUcocmVwZWF0KSA9IDE7
CkBAIC0xNTc4LDkgKzE2MTgsOSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMg
VGVzdCB7CiAKICAgLy8gUmVzdG9yZXMgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIHRoYXQgdGhlIHRl
c3RzIGhhdmUgbW9kaWZpZWQuICBUaGlzIHdpbGwKICAgLy8gYmUgY2FsbGVkIGFmdGVyIHRoZSBs
YXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UgaXMgcnVuLgotICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBk
ZWxldGUgc2F2ZXJfOwotICAgIHNhdmVyXyA9IE5VTEw7CisgICAgc2F2ZXJfID0gbnVsbHB0cjsK
ICAgfQogCiAgIC8vIFZlcmlmaWVzIHRoYXQgdGhlIEdvb2dsZSBUZXN0IGZsYWdzIGhhdmUgdGhl
aXIgZGVmYXVsdCB2YWx1ZXMsIGFuZCB0aGVuCkBAIC0xNTkxLDkgKzE2MzEsMTEgQEAgY2xhc3Mg
R1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVDVF9GQUxTRShHVEVT
VF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpKTsKICAgICBFWFBFQ1RfU1RSRVEoImF1dG8iLCBHVEVT
VF9GTEFHKGNvbG9yKS5jX3N0cigpKTsKICAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhkZWF0
aF90ZXN0X3VzZV9mb3JrKSk7CisgICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcoZmFpbF9mYXN0
KSk7CiAgICAgRVhQRUNUX1NUUkVRKCIiLCBHVEVTVF9GTEFHKGZpbHRlcikuY19zdHIoKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcobGlzdF90ZXN0cykpOwogICAgIEVYUEVDVF9TVFJF
USgiIiwgR1RFU1RfRkxBRyhvdXRwdXQpLmNfc3RyKCkpOworICAgIEVYUEVDVF9GQUxTRShHVEVT
VF9GTEFHKGJyaWVmKSk7CiAgICAgRVhQRUNUX1RSVUUoR1RFU1RfRkxBRyhwcmludF90aW1lKSk7
CiAgICAgRVhQRUNUX0VRKDAsIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpKTsKICAgICBFWFBFQ1Rf
RVEoMSwgR1RFU1RfRkxBRyhyZXBlYXQpKTsKQEAgLTE2MDcsOSArMTY0OSwxMSBAQCBjbGFzcyBH
VGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgICAgR1RFU1RfRkxBRyhjYXRjaF9l
eGNlcHRpb25zKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhjb2xvcikgPSAibm8iOwogICAgIEdU
RVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSB0cnVlOworICAgIEdURVNUX0ZMQUcoZmFp
bF9mYXN0KSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gImFiYyI7CiAgICAgR1RF
U1RfRkxBRyhsaXN0X3Rlc3RzKSA9IHRydWU7CiAgICAgR1RFU1RfRkxBRyhvdXRwdXQpID0gInht
bDpmb28ueG1sIjsKKyAgICBHVEVTVF9GTEFHKGJyaWVmKSA9IHRydWU7CiAgICAgR1RFU1RfRkxB
RyhwcmludF90aW1lKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpID0gMTsK
ICAgICBHVEVTVF9GTEFHKHJlcGVhdCkgPSAxMDA7CkBAIC0xNjI0LDcgKzE2NjgsNyBAQCBjbGFz
cyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIHN0YXRpYyBHVGVzdEZsYWdT
YXZlciogc2F2ZXJfOwogfTsKIAotR1Rlc3RGbGFnU2F2ZXIqIEdUZXN0RmxhZ1NhdmVyVGVzdDo6
c2F2ZXJfID0gTlVMTDsKK0dUZXN0RmxhZ1NhdmVyKiBHVGVzdEZsYWdTYXZlclRlc3Q6OnNhdmVy
XyA9IG51bGxwdHI7CiAKIC8vIEdvb2dsZSBUZXN0IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBvcmRl
ciBvZiB0ZXN0cy4gIFRoZSBmb2xsb3dpbmcgdHdvCiAvLyB0ZXN0cyBhcmUgZGVzaWduZWQgdG8g
d29yayByZWdhcmRsZXNzIG9mIHRoZWlyIG9yZGVyLgpAQCAtMTczNyw3ICsxNzgxLDcgQEAgVEVT
VChJbnQzMkZyb21HVGVzdEVudlRlc3QsIFBhcnNlc0FuZFJldHVybnNWYWxpZFZhbHVlKSB7CiAv
LyBUZXN0cyB0aGF0IFBhcnNlSW50MzJGbGFnKCkgcmV0dXJucyBmYWxzZSBhbmQgZG9lc24ndCBj
aGFuZ2UgdGhlCiAvLyBvdXRwdXQgdmFsdWUgd2hlbiB0aGUgZmxhZyBoYXMgd3JvbmcgZm9ybWF0
CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0ZhbHNlRm9ySW52YWxpZEZsYWcpIHsK
LSAgSW50MzIgdmFsdWUgPSAxMjM7CisgIGludDMyX3QgdmFsdWUgPSAxMjM7CiAgIEVYUEVDVF9G
QUxTRShQYXJzZUludDMyRmxhZygiLS1hPTEwMCIsICJiIiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9F
USgxMjMsIHZhbHVlKTsKIApAQCAtMTc1MCw3ICsxNzk0LDcgQEAgVEVTVChQYXJzZUludDMyRmxh
Z1Rlc3QsIFJldHVybnNGYWxzZUZvckludmFsaWRGbGFnKSB7CiBURVNUKFBhcnNlSW50MzJGbGFn
VGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxvd3MpIHsKICAgcHJpbnRmKCIoZXhw
ZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKIAotICBJbnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJf
dCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNUX0ZBTFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz0xMjM0
NTY3ODk4NzY1NDMyMSIsICJhYmMiLCAmdmFsdWUpKTsKICAgRVhQRUNUX0VRKDEyMywgdmFsdWUp
OwogCkBAIC0xNzY0LDcgKzE4MDgsNyBAQCBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJu
c0RlZmF1bHRXaGVuVmFsdWVPdmVyZmxvd3MpIHsKIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBS
ZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52YWxpZCkgewogICBwcmludGYoIihleHBlY3Rpbmcg
MiB3YXJuaW5ncylcbiIpOwogCi0gIEludDMyIHZhbHVlID0gMTIzOworICBpbnQzMl90IHZhbHVl
ID0gMTIzOwogICBFWFBFQ1RfRkFMU0UoUGFyc2VJbnQzMkZsYWcoIi0tYWJjPUExIiwgImFiYyIs
ICZ2YWx1ZSkpOwogICBFWFBFQ1RfRVEoMTIzLCB2YWx1ZSk7CiAKQEAgLTE3NzYsNyArMTgyMCw3
IEBAIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBSZXR1cm5zRGVmYXVsdFdoZW5WYWx1ZUlzSW52
YWxpZCkgewogLy8gcmV0dXJucyB0cnVlIHdoZW4gdGhlIGZsYWcgcmVwcmVzZW50cyBhIHZhbGlk
IGRlY2ltYWwgaW50ZWdlciBpbgogLy8gdGhlIHJhbmdlIG9mIGFuIEludDMyLgogVEVTVChQYXJz
ZUludDMyRmxhZ1Rlc3QsIFBhcnNlc0FuZFJldHVybnNWYWxpZFZhbHVlKSB7Ci0gIEludDMyIHZh
bHVlID0gMTIzOworICBpbnQzMl90IHZhbHVlID0gMTIzOwogICBFWFBFQ1RfVFJVRShQYXJzZUlu
dDMyRmxhZygiLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiYWJjPTQ1NiIsICJhYmMiLCAmdmFsdWUp
KTsKICAgRVhQRUNUX0VRKDQ1NiwgdmFsdWUpOwogCkBAIC0xNzk5LDcgKzE4NDMsNyBAQCBURVNU
KEludDMyRnJvbUVudk9yRGllVGVzdCwgUGFyc2VzQW5kUmV0dXJuc1ZhbGlkVmFsdWUpIHsKICNl
bmRpZiAgLy8gIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKIC8vIFRlc3RzIHRoYXQgSW50MzJG
cm9tRW52T3JEaWUoKSBhYm9ydHMgd2l0aCBhbiBlcnJvciBtZXNzYWdlCi0vLyBpZiB0aGUgdmFy
aWFibGUgaXMgbm90IGFuIEludDMyLgorLy8gaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCBhbiBpbnQz
Ml90LgogVEVTVChJbnQzMkZyb21FbnZPckRpZURlYXRoVGVzdCwgQWJvcnRzT25GYWlsdXJlKSB7
CiAgIFNldEVudihHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIlZBUiIsICJ4eHgiKTsKICAgRVhQ
RUNUX0RFQVRIX0lGX1NVUFBPUlRFRCgKQEAgLTE4MDgsNyArMTg1Miw3IEBAIFRFU1QoSW50MzJG
cm9tRW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09uRmFpbHVyZSkgewogfQogCiAvLyBUZXN0cyB0
aGF0IEludDMyRnJvbUVudk9yRGllKCkgYWJvcnRzIHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8g
aWYgdGhlIHZhcmlhYmxlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhbiBJbnQzMi4KKy8vIGlm
IHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50MzJfdC4KIFRFU1Qo
SW50MzJGcm9tRW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09uSW50MzJPdmVyZmxvdykgewogICBT
ZXRFbnYoR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJWQVIiLCAiMTIzNDU2Nzg5MTIzNDU2Nzg5
MTIzNCIpOwogICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKApAQCAtMTgyOCwxMiArMTg3Miwx
MiBAQCBURVNUKFNob3VsZFJ1blRlc3RPblNoYXJkVGVzdCwgSXNQYXJ0aXRpb25XaGVuVGhlcmVJ
c09uZVNoYXJkKSB7CiAKIGNsYXNzIFNob3VsZFNoYXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsKICAgICBpbmRleF92YXJfID0gR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJf
ICJJTkRFWCI7CiAgICAgdG90YWxfdmFyXyA9IEdURVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiVE9U
QUwiOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3du
KCkgb3ZlcnJpZGUgewogICAgIFNldEVudihpbmRleF92YXJfLCAiIik7CiAgICAgU2V0RW52KHRv
dGFsX3Zhcl8sICIiKTsKICAgfQpAQCAtMTk0MiwxNCArMTk4NiwxNCBAQCBURVNUKFNob3VsZFJ1
blRlc3RPblNoYXJkVGVzdCwgSXNQYXJ0aXRpb25XaGVuVGhlcmVBcmVGaXZlU2hhcmRzKSB7CiAv
LyBUZXN0IGNsYXNzLCB0aGVyZSBhcmUgbm8gc2VwYXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dp
bmcgY2xhc3NlcwogLy8gKGV4Y2VwdCBmb3Igc29tZSB0cml2aWFsIGNhc2VzKToKIC8vCi0vLyAg
IFRlc3RDYXNlLCBVbml0VGVzdCwgVW5pdFRlc3RSZXN1bHRQcmludGVyLgorLy8gICBUZXN0U3Vp
dGUsIFVuaXRUZXN0LCBVbml0VGVzdFJlc3VsdFByaW50ZXIuCiAvLwogLy8gU2ltaWxhcmx5LCB0
aGVyZSBhcmUgbm8gc2VwYXJhdGUgdGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgbWFjcm9zOgogLy8K
IC8vICAgVEVTVCwgVEVTVF9GLCBSVU5fQUxMX1RFU1RTCiAKIFRFU1QoVW5pdFRlc3RUZXN0LCBD
YW5HZXRPcmlnaW5hbFdvcmtpbmdEaXIpIHsKLSAgQVNTRVJUX1RSVUUoVW5pdFRlc3Q6OkdldElu
c3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCkgIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVF
KFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2RpcigpICE9IG51bGxw
dHIpOwogICBFWFBFQ1RfU1RSTkUoVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dv
cmtpbmdfZGlyKCksICIiKTsKIH0KIApAQCAtMTk3MSwyMCArMjAxNSwyMSBAQCB2b2lkIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5KAogdm9pZCBF
eHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1
cnJlbnRUZXN0KAogICAgIGNvbnN0IGNoYXIqIGtleSkgewogICBjb25zdCBUZXN0SW5mbyogdGVz
dF9pbmZvID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0g
IEFTU0VSVF9UUlVFKHRlc3RfaW5mbyAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9pbmZv
ICE9IG51bGxwdHIpOwogICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdp
dGhSZXNlcnZlZEtleSgqdGVzdF9pbmZvLT5yZXN1bHQoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKIH0KIAotdm9pZCBFeHBl
Y3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJl
bnRUZXN0Q2FzZSgKK3ZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlX
aXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAogICAgIGNvbnN0IGNoYXIqIGtleSkg
ewotICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCkt
PmN1cnJlbnRfdGVzdF9jYXNlKCk7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsK
KyAgY29uc3QgdGVzdGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0KKyAgICAgIFVuaXRUZXN0
OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKKyAgQVNTRVJUX1RSVUUodGVz
dF9zdWl0ZSAhPSBudWxscHRyKTsKICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJv
cGVydHlXaXRoUmVzZXJ2ZWRLZXkoCi0gICAgICB0ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3Vs
dCgpLCBrZXkpOworICAgICAgdGVzdF9zdWl0ZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCksIGtleSk7
CiB9CiAKLXZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVz
ZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKK3ZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVj
b3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgY29u
c3QgY2hhcioga2V5KSB7CiAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5
V2l0aFJlc2VydmVkS2V5KAogICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmFkX2hvY190
ZXN0X3Jlc3VsdCgpLCBrZXkpOwpAQCAtMTk5NiwyOSArMjA0MSwzMiBAQCB2b2lkIEV4cGVjdE5v
bkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVz
dENhc2UoCiBjbGFzcyBVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdCA6CiAgICAgcHVibGljIHRl
c3Rpbmc6OmludGVybmFsOjpVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdEhlbHBlciB7CiAgcHVi
bGljOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNl
KAorICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0ZSgpIHsKKyAgICBFeHBlY3ROb25GYXRhbEZh
aWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUo
CiAgICAgICAgICJkaXNhYmxlZCIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5v
bkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRl
c3RTdWl0ZSgKICAgICAgICAgImVycm9ycyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJl
Y29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4
cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3Vy
cmVudFRlc3RTdWl0ZSgKICAgICAgICAgImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2Uo
CisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRL
ZXlGb3JDdXJyZW50VGVzdFN1aXRlKAogICAgICAgICAibmFtZSIpOwotICAgIEV4cGVjdE5vbkZh
dGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RD
YXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0ZSgKICAgICAgICAgInRlc3RzIik7Ci0gICAgRXhwZWN0
Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50
VGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRo
UmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAogICAgICAgICAidGltZSIpOwogCiAgICAg
VGVzdDo6UmVjb3JkUHJvcGVydHkoInRlc3RfY2FzZV9rZXlfMSIsICIxIik7Ci0gICAgY29uc3Qg
VGVzdENhc2UqIHRlc3RfY2FzZSA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rl
c3RfY2FzZSgpOwotICAgIEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsKIAotICAgIEFT
U0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLnRlc3RfcHJvcGVydHlf
Y291bnQoKSk7CisgICAgY29uc3QgdGVzdGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0KKyAg
ICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9zdWl0ZSgpOworCisg
ICAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBudWxscHRyKTsKKworICAgIEFTU0VSVF9FUSgx
LCB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkp
OwogICAgIEVYUEVDVF9TVFJFUSgidGVzdF9jYXNlX2tleV8xIiwKLSAgICAgICAgICAgICAgICAg
dGVzdF9jYXNlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkua2V5KCkp
OworICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKS5HZXRU
ZXN0UHJvcGVydHkoMCkua2V5KCkpOwogICAgIEVYUEVDVF9TVFJFUSgiMSIsCi0gICAgICAgICAg
ICAgICAgIHRlc3RfY2FzZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDAp
LnZhbHVlKCkpOworICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLT5hZF9ob2NfdGVzdF9yZXN1
bHQoKS5HZXRUZXN0UHJvcGVydHkoMCkudmFsdWUoKSk7CiAgIH0KIH07CiAKQEAgLTIwNzEsNyAr
MjExOSw3IEBAIFRFU1RfRihVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdCwgT3ZlcnJpZGVzVmFs
dWVzRm9yRHVwbGljYXRlS2V5cykgewogfQogCiBURVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0
eVRlc3QsCi0gICAgICAgQWRkRmFpbHVyZUluc2lkZVRlc3RzV2hlblVzaW5nVGVzdENhc2VSZXNl
cnZlZEtleXMpIHsKKyAgICAgICBBZGRGYWlsdXJlSW5zaWRlVGVzdHNXaGVuVXNpbmdUZXN0U3Vp
dGVSZXNlcnZlZEtleXMpIHsKICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVy
dHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdCgKICAgICAgICJuYW1lIik7CiAgIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVu
dFRlc3QoCkBAIC0yMDk2LDI4ICsyMTQ0LDI4IEBAIFRFU1RfRihVbml0VGVzdFJlY29yZFByb3Bl
cnR5VGVzdCwKIAogY2xhc3MgVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCA6
IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAgcHVibGljOgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KSB7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2
ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAg
ICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91
dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInRlc3RzIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgK
KyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtl
eU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgImZhaWx1cmVzIik7Ci0gICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0
Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNl
cnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgImRpc2FibGVkIik7Ci0gICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRl
T2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdp
dGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgImVycm9ycyIpOwotICAg
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0
c2lkZU9mVGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVy
dHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJuYW1lIik7Ci0g
ICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlP
dXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9w
ZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAgInRpbWVzdGFt
cCIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3Jk
aW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJ0
aW1lIik7Ci0gICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVz
ZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RTdWl0ZSgKICAgICAgICAg
InJhbmRvbV9zZWVkIik7CiAgIH0KIH07CiAKIC8vIFRoaXMgd2lsbCB0ZXN0IHByb3BlcnR5IHJl
Y29yZGluZyBvdXRzaWRlIG9mIGFueSB0ZXN0IG9yIHRlc3QgY2FzZS4KLXN0YXRpYyBFbnZpcm9u
bWVudCogcmVjb3JkX3Byb3BlcnR5X2VudiA9CitzdGF0aWMgRW52aXJvbm1lbnQqIHJlY29yZF9w
cm9wZXJ0eV9lbnYgR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8gPQogICAgIEFkZEdsb2JhbFRlc3RF
bnZpcm9ubWVudChuZXcgVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3RFbnZpcm9ubWVudCk7CiAK
IC8vIFRoaXMgZ3JvdXAgb2YgdGVzdHMgaXMgZm9yIHByZWRpY2F0ZSBhc3NlcnRpb25zIChBU1NF
UlRfUFJFRCosIGV0YykKQEAgLTIxMjgsMTIgKzIxNzYsMTIgQEAgc3RhdGljIEVudmlyb25tZW50
KiByZWNvcmRfcHJvcGVydHlfZW52ID0KIAogLy8gRmlyc3QsIHNvbWUgcHJlZGljYXRlcyBhbmQg
cHJlZGljYXRlLWZvcm1hdHRlcnMgbmVlZGVkIGJ5IHRoZSB0ZXN0cy4KIAotLy8gUmV0dXJucyB0
cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUg
aWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgogYm9vbCBJc0V2
ZW4oaW50IG4pIHsKICAgcmV0dXJuIChuICUgMikgPT0gMDsKIH0KIAotLy8gQSBmdW5jdG9yIHRo
YXQgcmV0dXJucyB0cnVlIGlmZiB0aGUgYXJndW1lbnQgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBB
IGZ1bmN0b3IgdGhhdCByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlz
IGFuIGV2ZW4gbnVtYmVyLgogc3RydWN0IElzRXZlbkZ1bmN0b3IgewogICBib29sIG9wZXJhdG9y
KCkoaW50IG4pIHsgcmV0dXJuIElzRXZlbihuKTsgfQogfTsKQEAgLTIxNzcsMTMgKzIyMjUsMTMg
QEAgc3RydWN0IEFzc2VydElzRXZlbkZ1bmN0b3IgewogICB9CiB9OwogCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBzdW0gb2YgdGhlIGFyZ3VtZW50cyBpcyBhbiBldmVuIG51bWJlci4KKy8vIFJl
dHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4g
ZXZlbiBudW1iZXIuCiBib29sIFN1bUlzRXZlbjIoaW50IG4xLCBpbnQgbjIpIHsKICAgcmV0dXJu
IElzRXZlbihuMSArIG4yKTsKIH0KIAotLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlm
ZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4gZXZlbgotLy8gbnVtYmVyLgorLy8gQSBm
dW5jdG9yIHRoYXQgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBzdW0gb2YgdGhlIGFy
Z3VtZW50cyBpcyBhbgorLy8gZXZlbiBudW1iZXIuCiBzdHJ1Y3QgU3VtSXNFdmVuM0Z1bmN0b3Ig
ewogICBib29sIG9wZXJhdG9yKCkoaW50IG4xLCBpbnQgbjIsIGludCBuMykgewogICAgIHJldHVy
biBJc0V2ZW4objEgKyBuMiArIG4zKTsKQEAgLTIzNjIsNiArMjQxMCwxNiBAQCBURVNUKFByZWRU
ZXN0LCBTaW5nbGVFdmFsdWF0aW9uT25GYWlsdXJlKSB7CiAgIEVYUEVDVF9FUSgxLCBuNCkgPDwg
IkFyZ3VtZW50IDQgaXMgbm90IGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuIjsKIH0KIAorLy8gVGVz
dCBwcmVkaWNhdGUgYXNzZXJ0aW9ucyBmb3Igc2V0cworVEVTVChQcmVkVGVzdCwgRXhwZWN0UHJl
ZEV2YWxGYWlsdXJlKSB7CisgIHN0ZDo6c2V0PGludD4gc2V0X2EgPSB7MiwgMSwgMywgNCwgNX07
CisgIHN0ZDo6c2V0PGludD4gc2V0X2IgPSB7MCwgNCwgOH07CisgIGNvbnN0IGF1dG8gY29tcGFy
ZV9zZXRzID0gW10gKHN0ZDo6c2V0PGludD4sIHN0ZDo6c2V0PGludD4pIHsgcmV0dXJuIGZhbHNl
OyB9OworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKKyAgICAgIEVYUEVDVF9QUkVEMihjb21w
YXJlX3NldHMsIHNldF9hLCBzZXRfYiksCisgICAgICAiY29tcGFyZV9zZXRzKHNldF9hLCBzZXRf
YikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZVxuc2V0X2EgZXZhbHVhdGVzICIKKyAgICAgICJ0
byB7IDEsIDIsIDMsIDQsIDUgfVxuc2V0X2IgZXZhbHVhdGVzIHRvIHsgMCwgNCwgOCB9Iik7Cit9
CiAKIC8vIFNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgdGVzdGluZyB1c2luZyBvdmVybG9hZGVk
L3RlbXBsYXRlCiAvLyBmdW5jdGlvbnMgd2l0aCBBU1NFUlRfUFJFRG4gYW5kIEVYUEVDVF9QUkVE
bi4KQEAgLTI0NTYsMjQgKzI1MTQsMjIgQEAgVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NF
UlRfU1RSRVEpIHsKIAogLy8gVGVzdHMgQVNTRVJUX1NUUkVRIHdpdGggTlVMTCBhcmd1bWVudHMu
CiBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJFUV9OdWxsKSB7Ci0gIEFTU0VS
VF9TVFJFUShzdGF0aWNfY2FzdDxjb25zdCBjaGFyICo+KE5VTEwpLCBOVUxMKTsKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKE5VTEwsICJub24tbnVsbCIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNv
bnN0IGNoYXIqPihudWxscHRyKSwgbnVsbHB0cik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFT
U0VSVF9TVFJFUShudWxscHRyLCAibm9uLW51bGwiKSwgIm5vbi1udWxsIik7CiB9CiAKIC8vIFRl
c3RzIEFTU0VSVF9TVFJFUSB3aXRoIE5VTEwgYXJndW1lbnRzLgogVEVTVChTdHJpbmdBc3NlcnRp
b25UZXN0LCBBU1NFUlRfU1RSRVFfTnVsbDIpIHsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNT
RVJUX1NUUkVRKCJub24tbnVsbCIsIE5VTEwpLAotICAgICAgICAgICAgICAgICAgICAgICAibm9u
LW51bGwiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX1NUUkVRKCJub24tbnVsbCIs
IG51bGxwdHIpLCAibm9uLW51bGwiKTsKIH0KIAogLy8gVGVzdHMgQVNTRVJUX1NUUk5FLgogVEVT
VChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSTkUpIHsKICAgQVNTRVJUX1NUUk5FKCJo
aSIsICJIaSIpOwotICBBU1NFUlRfU1RSTkUoIkhpIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShO
VUxMLCAiSGkiKTsKLSAgQVNTRVJUX1NUUk5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUk5FKE5V
TEwsICIiKTsKKyAgQVNTRVJUX1NUUk5FKCJIaSIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSTkUo
bnVsbHB0ciwgIkhpIik7CisgIEFTU0VSVF9TVFJORSgiIiwgbnVsbHB0cik7CisgIEFTU0VSVF9T
VFJORShudWxscHRyLCAiIik7CiAgIEFTU0VSVF9TVFJORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9T
VFJORSgiSGkiLCAiIik7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJORSgiSGki
LCAiSGkiKSwKQEAgLTI0ODMsNyArMjUzOSw3IEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwg
QVNTRVJUX1NUUk5FKSB7CiAvLyBUZXN0cyBBU1NFUlRfU1RSQ0FTRUVRLgogVEVTVChTdHJpbmdB
c3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSQ0FTRUVRKSB7CiAgIEFTU0VSVF9TVFJDQVNFRVEoImhp
IiwgIkhpIik7Ci0gIEFTU0VSVF9TVFJDQVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihO
VUxMKSwgTlVMTCk7CisgIEFTU0VSVF9TVFJDQVNFRVEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+
KG51bGxwdHIpLCBudWxscHRyKTsKIAogICBBU1NFUlRfU1RSQ0FTRUVRKCIiLCAiIik7CiAgIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJDQVNFRVEoIkhpIiwgImhpMiIpLApAQCAtMjQ5
MywxMCArMjU0OSwxMCBAQCBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNF
RVEpIHsKIC8vIFRlc3RzIEFTU0VSVF9TVFJDQVNFTkUuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRl
c3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsKICAgQVNTRVJUX1NUUkNBU0VORSgiaGkxIiwgIkhpMiIp
OwotICBBU1NFUlRfU1RSQ0FTRU5FKCJIaSIsIE5VTEwpOwotICBBU1NFUlRfU1RSQ0FTRU5FKE5V
TEwsICJIaSIpOwotICBBU1NFUlRfU1RSQ0FTRU5FKCIiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNB
U0VORShOVUxMLCAiIik7CisgIEFTU0VSVF9TVFJDQVNFTkUoIkhpIiwgbnVsbHB0cik7CisgIEFT
U0VSVF9TVFJDQVNFTkUobnVsbHB0ciwgIkhpIik7CisgIEFTU0VSVF9TVFJDQVNFTkUoIiIsIG51
bGxwdHIpOworICBBU1NFUlRfU1RSQ0FTRU5FKG51bGxwdHIsICIiKTsKICAgQVNTRVJUX1NUUkNB
U0VORSgiIiwgIkhpIik7CiAgIEFTU0VSVF9TVFJDQVNFTkUoIkhpIiwgIiIpOwogICBFWFBFQ1Rf
RkFUQUxfRkFJTFVSRShBU1NFUlRfU1RSQ0FTRU5FKCJIaSIsICJoaSIpLApAQCAtMjUwNiwxNCAr
MjU2MiwxMyBAQCBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJDQVNFTkUpIHsK
IC8vIFRlc3RzICpfU1RSRVEgb24gd2lkZSBzdHJpbmdzLgogVEVTVChTdHJpbmdBc3NlcnRpb25U
ZXN0LCBTVFJFUV9XaWRlKSB7CiAgIC8vIE5VTEwgc3RyaW5ncy4KLSAgQVNTRVJUX1NUUkVRKHN0
YXRpY19jYXN0PGNvbnN0IHdjaGFyX3QgKj4oTlVMTCksIE5VTEwpOworICBBU1NFUlRfU1RSRVEo
c3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KG51bGxwdHIpLCBudWxscHRyKTsKIAogICAvLyBF
bXB0eSBzdHJpbmdzLgogICBBU1NFUlRfU1RSRVEoTCIiLCBMIiIpOwogCiAgIC8vIE5vbi1udWxs
IHZzIE5VTEwuCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9TVFJFUShMIm5vbi1u
dWxsIiwgTlVMTCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJub24tbnVsbCIpOworICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSRVEoTCJub24tbnVsbCIsIG51bGxwdHIp
LCAibm9uLW51bGwiKTsKIAogICAvLyBFcXVhbCBzdHJpbmdzLgogICBFWFBFQ1RfU1RSRVEoTCJI
aSIsIEwiSGkiKTsKQEAgLTI1MzUsMTYgKzI1OTAsMTggQEAgVEVTVChTdHJpbmdBc3NlcnRpb25U
ZXN0LCBTVFJFUV9XaWRlKSB7CiAvLyBUZXN0cyAqX1NUUk5FIG9uIHdpZGUgc3RyaW5ncy4KIFRF
U1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgU1RSTkVfV2lkZSkgewogICAvLyBOVUxMIHN0cmluZ3Mu
Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9TVFJO
RShzdGF0aWNfY2FzdDxjb25zdCB3Y2hhcl90ICo+KE5VTEwpLCBOVUxMKTsKLSAgfSwgIiIpOwor
ICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKKyAgICAgIHsgIC8vIE5PTElOVAorICAgICAgICBF
WFBFQ1RfU1RSTkUoc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KG51bGxwdHIpLCBudWxscHRy
KTsKKyAgICAgIH0sCisgICAgICAiIik7CiAKICAgLy8gRW1wdHkgc3RyaW5ncy4KICAgRVhQRUNU
X05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUk5FKEwiIiwgTCIiKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkxcIlwiIik7CiAKICAgLy8gTm9uLW51bGwgdnMgTlVMTC4KLSAgQVNTRVJU
X1NUUk5FKEwibm9uLW51bGwiLCBOVUxMKTsKKyAgQVNTRVJUX1NUUk5FKEwibm9uLW51bGwiLCBu
dWxscHRyKTsKIAogICAvLyBFcXVhbCBzdHJpbmdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RShFWFBFQ1RfU1RSTkUoTCJIaSIsIEwiSGkiKSwKQEAgLTI1NjYsMTEgKzI2MjMsMTEgQEAgVEVT
VChTdHJpbmdBc3NlcnRpb25UZXN0LCBTVFJORV9XaWRlKSB7CiAvLyBUZXN0cyB0aGF0IElzU3Vi
c3RyaW5nKCkgcmV0dXJucyB0aGUgY29ycmVjdCByZXN1bHQgd2hlbiB0aGUgaW5wdXQKIC8vIGFy
Z3VtZW50IHR5cGUgaXMgY29uc3QgY2hhciouCiBURVNUKElzU3Vic3RyaW5nVGVzdCwgUmV0dXJu
c0NvcnJlY3RSZXN1bHRGb3JDU3RyaW5nKSB7Ci0gIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygi
IiwgIiIsIE5VTEwsICJhIikpOwotICBFWFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAi
YiIsIE5VTEwpKTsKKyAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgbnVsbHB0ciwg
ImEiKSk7CisgIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsICJiIiwgbnVsbHB0cikp
OwogICBFWFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCAibmVlZGxlIiwgImhheXN0YWNr
IikpOwogCi0gIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29u
c3QgY2hhcio+KE5VTEwpLCBOVUxMKSk7CisgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAi
Iiwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpLCBudWxscHRyKSk7CiAgIEVYUEVD
VF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgIm5lZWRsZSIsICJ0d28gbmVlZGxlcyIpKTsKIH0K
IApAQCAtMjU4MSw3ICsyNjM4LDggQEAgVEVTVChJc1N1YnN0cmluZ1Rlc3QsIFJldHVybnNDb3Jy
ZWN0UmVzdWx0Rm9yV2lkZUNTdHJpbmcpIHsKICAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIi
LCAiIiwgTCJiIiwga051bGwpKTsKICAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwg
TCJuZWVkbGUiLCBMImhheXN0YWNrIikpOwogCi0gIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIi
LCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KE5VTEwpLCBOVUxMKSk7CisgIEVYUEVD
VF9UUlVFKAorICAgICAgSXNTdWJzdHJpbmcoIiIsICIiLCBzdGF0aWNfY2FzdDxjb25zdCB3Y2hh
cl90Kj4obnVsbHB0ciksIG51bGxwdHIpKTsKICAgRVhQRUNUX1RSVUUoSXNTdWJzdHJpbmcoIiIs
ICIiLCBMIm5lZWRsZSIsIEwidHdvIG5lZWRsZXMiKSk7CiB9CiAKQEAgLTI3MDksOCArMjc2Nyw4
IEBAIGNsYXNzIEZsb2F0aW5nUG9pbnRUZXN0IDogcHVibGljIFRlc3QgewogICB0eXBlZGVmIHR5
cGVuYW1lIHRlc3Rpbmc6OmludGVybmFsOjpGbG9hdGluZ1BvaW50PFJhd1R5cGU+IEZsb2F0aW5n
OwogICB0eXBlZGVmIHR5cGVuYW1lIEZsb2F0aW5nOjpCaXRzIEJpdHM7CiAKLSAgdmlydHVhbCB2
b2lkIFNldFVwKCkgewotICAgIGNvbnN0IHNpemVfdCBtYXhfdWxwcyA9IEZsb2F0aW5nOjprTWF4
VWxwczsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBjb25zdCB1aW50MzJfdCBtYXhf
dWxwcyA9IEZsb2F0aW5nOjprTWF4VWxwczsKIAogICAgIC8vIFRoZSBiaXRzIHRoYXQgcmVwcmVz
ZW50IDAuMC4KICAgICBjb25zdCBCaXRzIHplcm9fYml0cyA9IEZsb2F0aW5nKDApLmJpdHMoKTsK
QEAgLTI4MjQsOCArMjg4Miw2IEBAIFRFU1RfRihGbG9hdFRlc3QsIExhcmdlRGlmZikgewogVEVT
VF9GKEZsb2F0VGVzdCwgSW5maW5pdHkpIHsKICAgRVhQRUNUX0ZMT0FUX0VRKHZhbHVlc18uaW5m
aW5pdHksIHZhbHVlc18uY2xvc2VfdG9faW5maW5pdHkpOwogICBFWFBFQ1RfRkxPQVRfRVEoLXZh
bHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmNsb3NlX3RvX2luZmluaXR5KTsKLSNpZiAhR1RFU1Rf
T1NfU1lNQklBTgotICAvLyBOb2tpYSdzIFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0
cHV0IGluZmluaXR5IG9yIE5hTi4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0ZM
T0FUX0VRKHZhbHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmluZmluaXR5KSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi12YWx1ZXNfLmluZmluaXR5Iik7CiAKQEAgLTI4MzMsMTQgKzI4ODks
MTAgQEAgVEVTVF9GKEZsb2F0VGVzdCwgSW5maW5pdHkpIHsKICAgLy8gYXJlIG9ubHkgMSBETFAg
YXBhcnQuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNf
LmluZmluaXR5LCB2YWx1ZXNfLm5hbjEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFs
dWVzXy5uYW4xIik7Ci0jZW5kaWYgIC8vICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3Rz
IHRoYXQgY29tcGFyaW5nIHdpdGggTkFOIGFsd2F5cyByZXR1cm5zIGZhbHNlLgogVEVTVF9GKEZs
b2F0VGVzdCwgTmFOKSB7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLS8vIE5va2lhJ3MgU1RMcG9y
dCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotCiAgIC8vIElu
IEMrK0J1aWxkZXIsIG5hbWVzIHdpdGhpbiBsb2NhbCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkK
ICAgLy8gRVhQRUNUX0ZBVEFMX0ZBSUxVUkUpIGNhbm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0
YXRpYyBtZW1iZXJzIG9mIHRoZQogICAvLyBzY29waW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxv
Y2FsIGFsaWFzIGFzIGEgd29ya2Fyb3VuZC4KQEAgLTI4NTgsNyArMjkxMCw2IEBAIFRFU1RfRihG
bG9hdFRlc3QsIE5hTikgewogCiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9GTE9BVF9F
USh2Lm5hbjEsIHYuaW5maW5pdHkpLAogICAgICAgICAgICAgICAgICAgICAgICAidi5pbmZpbml0
eSIpOwotI2VuZGlmICAvLyAhR1RFU1RfT1NfU1lNQklBTgogfQogCiAvLyBUZXN0cyB0aGF0ICpf
RkxPQVRfRVEgYXJlIHJlZmxleGl2ZS4KQEAgLTI4ODIsMjIgKzI5MzMsMTggQEAgVEVTVF9GKEZs
b2F0VGVzdCwgQ29tbXV0YXRpdmUpIHsKIFRFU1RfRihGbG9hdFRlc3QsIEVYUEVDVF9ORUFSKSB7
CiAgIEVYUEVDVF9ORUFSKC0xLjBmLCAtMS4xZiwgMC4yZik7CiAgIEVYUEVDVF9ORUFSKDIuMGYs
IDMuMGYsIDEuMGYpOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkVBUigxLjBm
LDEuNWYsIDAuMjVmKSwgIC8vIE5PTElOVAorICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBF
Q1RfTkVBUigxLjBmLCAxLjVmLCAwLjI1ZiksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gMS4wZiBhbmQgMS41ZiBpcyAwLjUsICIK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWNoIGV4Y2VlZHMgMC4yNWYiKTsKLSAgLy8g
VG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxs
eSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIGxp
bmUuCiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9ORUFSLgogVEVTVF9GKEZsb2F0VGVzdCwgQVNTRVJU
X05FQVIpIHsKICAgQVNTRVJUX05FQVIoLTEuMGYsIC0xLjFmLCAwLjJmKTsKICAgQVNTRVJUX05F
QVIoMi4wZiwgMy4wZiwgMS4wZik7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFS
KDEuMGYsMS41ZiwgMC4yNWYpLCAgLy8gTk9MSU5UCisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFT
U0VSVF9ORUFSKDEuMGYsIDEuNWYsIDAuMjVmKSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAg
ICAgICAgICAiVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAxLjBmIGFuZCAxLjVmIGlzIDAuNSwgIgog
ICAgICAgICAgICAgICAgICAgICAgICAid2hpY2ggZXhjZWVkcyAwLjI1ZiIpOwotICAvLyBUbyB3
b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2MgMi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5v
Ci0gIC8vIHNwYWNlIGFmdGVyIHRoZSBmaXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgbGluZS4K
IH0KIAogLy8gVGVzdHMgdGhlIGNhc2VzIHdoZXJlIEZsb2F0TEUoKSBzaG91bGQgc3VjY2VlZC4K
QEAgLTI5MjAsMTAgKzI5NjcsNiBAQCBURVNUX0YoRmxvYXRUZXN0LCBGbG9hdExFRmFpbHMpIHsK
ICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIHZhbHVlc18uZnVydGhlcl9mcm9tX29u
ZSwgMS4wZik7CiAgIH0sICIodmFsdWVzXy5mdXJ0aGVyX2Zyb21fb25lKSA8PSAoMS4wZikiKTsK
IAotI2lmICFHVEVTVF9PU19TWU1CSUFOICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKLSAgLy8g
Tm9raWEncyBTVExwb3J0IGNyYXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBO
YU4uCi0gIC8vIEMrK0J1aWxkZXIgZ2l2ZXMgYmFkIHJlc3VsdHMgZm9yIG9yZGVyZWQgY29tcGFy
aXNvbnMgaW52b2x2aW5nIE5hTnMKLSAgLy8gZHVlIHRvIGNvbXBpbGVyIGJ1Z3MuCiAgIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAogICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIo
RmxvYXRMRSwgdmFsdWVzXy5uYW4xLCB2YWx1ZXNfLmluZmluaXR5KTsKICAgfSwgIih2YWx1ZXNf
Lm5hbjEpIDw9ICh2YWx1ZXNfLmluZmluaXR5KSIpOwpAQCAtMjkzMyw3ICsyOTc2LDYgQEAgVEVT
VF9GKEZsb2F0VGVzdCwgRmxvYXRMRUZhaWxzKSB7CiAgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsg
IC8vIE5PTElOVAogICAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIoRmxvYXRMRSwgdmFsdWVzXy5uYW4x
LCB2YWx1ZXNfLm5hbjEpOwogICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSki
KTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19f
KQogfQogCiAvLyBJbnN0YW50aWF0ZXMgRmxvYXRpbmdQb2ludFRlc3QgZm9yIHRlc3RpbmcgKl9E
T1VCTEVfRVEuCkBAIC0yOTk3LDggKzMwMzksNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgTGFyZ2VE
aWZmKSB7CiBURVNUX0YoRG91YmxlVGVzdCwgSW5maW5pdHkpIHsKICAgRVhQRUNUX0RPVUJMRV9F
USh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLmNsb3NlX3RvX2luZmluaXR5KTsKICAgRVhQRUNU
X0RPVUJMRV9FUSgtdmFsdWVzXy5pbmZpbml0eSwgLXZhbHVlc18uY2xvc2VfdG9faW5maW5pdHkp
OwotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlm
IHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJ
TFVSRShFWFBFQ1RfRE9VQkxFX0VRKHZhbHVlc18uaW5maW5pdHksIC12YWx1ZXNfLmluZmluaXR5
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIi12YWx1ZXNfLmluZmluaXR5Iik7CiAKQEAg
LTMwMDYsMTggKzMwNDYsMTAgQEAgVEVTVF9GKERvdWJsZVRlc3QsIEluZmluaXR5KSB7CiAgIC8v
IGFyZSBvbmx5IDEgRExQIGFwYXJ0LgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
RE9VQkxFX0VRKHZhbHVlc18uaW5maW5pdHksIHZhbHVlc18ubmFuMSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ2YWx1ZXNfLm5hbjEiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZTUJJ
QU4KIH0KIAogLy8gVGVzdHMgdGhhdCBjb21wYXJpbmcgd2l0aCBOQU4gYWx3YXlzIHJldHVybnMg
ZmFsc2UuCiBURVNUX0YoRG91YmxlVGVzdCwgTmFOKSB7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4K
LSAgLy8gSW4gQysrQnVpbGRlciwgbmFtZXMgd2l0aGluIGxvY2FsIGNsYXNzZXMgKHN1Y2ggYXMg
dXNlZCBieQotICAvLyBFWFBFQ1RfRkFUQUxfRkFJTFVSRSkgY2Fubm90IGJlIHJlc29sdmVkIGFn
YWluc3Qgc3RhdGljIG1lbWJlcnMgb2YgdGhlCi0gIC8vIHNjb3BpbmcgY2xhc3MuICBVc2UgYSBz
dGF0aWMgbG9jYWwgYWxpYXMgYXMgYSB3b3JrYXJvdW5kLgotICAvLyBXZSB1c2UgdGhlIGFzc2ln
bm1lbnQgc3ludGF4IHNpbmNlIHNvbWUgY29tcGlsZXJzLCBsaWtlIFN1biBTdHVkaW8sCi0gIC8v
IGRvbid0IGFsbG93IGluaXRpYWxpemluZyByZWZlcmVuY2VzIHVzaW5nIGNvbnN0cnVjdGlvbiBz
eW50YXgKLSAgLy8gKHBhcmVudGhlc2VzKS4KICAgc3RhdGljIGNvbnN0IERvdWJsZVRlc3Q6OlRl
c3RWYWx1ZXMmIHYgPSB0aGlzLT52YWx1ZXNfOwogCiAgIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFz
aGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgpAQCAtMzAyNywxNyArMzA1
OSwxMyBAQCBURVNUX0YoRG91YmxlVGVzdCwgTmFOKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKEVYUEVDVF9ET1VCTEVfRVEoMS4wLCB2Lm5hbjEpLCAidi5uYW4xIik7CiAgIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKEFTU0VSVF9ET1VCTEVfRVEodi5uYW4xLCB2LmluZmluaXR5KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgInYuaW5maW5pdHkiKTsKLSNlbmRpZiAgLy8gIUdURVNUX09TX1NZ
TUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCAqX0RPVUJMRV9FUSBhcmUgcmVmbGV4aXZlLgogVEVT
VF9GKERvdWJsZVRlc3QsIFJlZmxleGl2ZSkgewogICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgMC4w
KTsKICAgRVhQRUNUX0RPVUJMRV9FUSgxLjAsIDEuMCk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4K
LSAgLy8gTm9raWEncyBTVExwb3J0IGNyYXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0
eSBvciBOYU4uCiAgIEFTU0VSVF9ET1VCTEVfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5p
bmZpbml0eSk7Ci0jZW5kaWYgIC8vICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRo
YXQgKl9ET1VCTEVfRVEgYXJlIGNvbW11dGF0aXZlLgpAQCAtMzA1Nyw4ICszMDg1LDEzIEBAIFRF
U1RfRihEb3VibGVUZXN0LCBFWFBFQ1RfTkVBUikgewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RShFWFBFQ1RfTkVBUigxLjAsIDEuNSwgMC4yNSksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAi
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8g
VG8gd29yayBhcm91bmQgYSBidWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxs
eSBubwotICAvLyBzcGFjZSBhZnRlciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0
YXRlbWVudC4KKyAgLy8gQXQgdGhpcyBtYWduaXR1ZGUgYWRqYWNlbnQgZG91YmxlcyBhcmUgNTEy
LjAgYXBhcnQsIHNvIHRoaXMgdHJpZ2dlcnMgYQorICAvLyBzbGlnaHRseSBkaWZmZXJlbnQgZmFp
bHVyZSByZXBvcnRpbmcgcGF0aC4KKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCisgICAgICBF
WFBFQ1RfTkVBUig0LjI5MzQzMTE0MTYyMzQxMTJlKzE4LCA0LjI5MzQzMTE0MTYyMzQxMDdlKzE4
LCAxLjApLAorICAgICAgIlRoZSBhYnNfZXJyb3IgcGFyYW1ldGVyIDEuMCBldmFsdWF0ZXMgdG8g
MSB3aGljaCBpcyBzbWFsbGVyIHRoYW4gdGhlICIKKyAgICAgICJtaW5pbXVtIGRpc3RhbmNlIGJl
dHdlZW4gZG91YmxlcyBmb3IgbnVtYmVycyBvZiB0aGlzIG1hZ25pdHVkZSB3aGljaCBpcyAiCisg
ICAgICAiNTEyIik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9ORUFSLgpAQCAtMzA2OCw4ICszMTAx
LDYgQEAgVEVTVF9GKERvdWJsZVRlc3QsIEFTU0VSVF9ORUFSKSB7CiAgIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEFTU0VSVF9ORUFSKDEuMCwgMS41LCAwLjI1KSwgIC8vIE5PTElOVAogICAgICAgICAg
ICAgICAgICAgICAgICAiVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIDEuNSBpcyAwLjUs
ICIKICAgICAgICAgICAgICAgICAgICAgICAgIndoaWNoIGV4Y2VlZHMgMC4yNSIpOwotICAvLyBU
byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBnY2MgMi45NS4wLCB0aGVyZSBpcyBpbnRlbnRpb25hbGx5
IG5vCi0gIC8vIHNwYWNlIGFmdGVyIHRoZSBmaXJzdCBjb21tYSBpbiB0aGUgcHJldmlvdXMgc3Rh
dGVtZW50LgogfQogCiAvLyBUZXN0cyB0aGUgY2FzZXMgd2hlcmUgRG91YmxlTEUoKSBzaG91bGQg
c3VjY2VlZC4KQEAgLTMwOTIsMTAgKzMxMjMsNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgRG91Ymxl
TEVGYWlscykgewogICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoRG91YmxlTEUsIHZhbHVlc18uZnVy
dGhlcl9mcm9tX29uZSwgMS4wKTsKICAgfSwgIih2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUpIDw9
ICgxLjApIik7CiAKLSNpZiAhR1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRD
X18pCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5m
aW5pdHkgb3IgTmFOLgotICAvLyBDKytCdWlsZGVyIGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRl
cmVkIGNvbXBhcmlzb25zIGludm9sdmluZyBOYU5zCi0gIC8vIGR1ZSB0byBjb21waWxlciBidWdz
LgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKICAgICBFWFBFQ1RfUFJF
RF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18uaW5maW5pdHkpOwogICB9
LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18uaW5maW5pdHkpIik7CkBAIC0zMTA1LDcgKzMx
MzIsNiBAQCBURVNUX0YoRG91YmxlVGVzdCwgRG91YmxlTEVGYWlscykgewogICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKICAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKERvdWJsZUxF
LCB2YWx1ZXNfLm5hbjEsIHZhbHVlc18ubmFuMSk7CiAgIH0sICIodmFsdWVzXy5uYW4xKSA8PSAo
dmFsdWVzXy5uYW4xKSIpOwotI2VuZGlmICAvLyAhR1RFU1RfT1NfU1lNQklBTiAmJiAhZGVmaW5l
ZChfX0JPUkxBTkRDX18pCiB9CiAKIApAQCAtMzEyNiwyOCArMzE1MiwyOCBAQCBURVNUKERpc2Fi
bGVkVGVzdCwgTm90RElTQUJMRURfVGVzdFNob3VsZFJ1bikgewogCiAvLyBBIHRlc3QgY2FzZSB3
aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIERJU0FCTEVEXy4KIC8vIFNob3VsZCBub3QgcnVuLgotVEVT
VChESVNBQkxFRF9UZXN0Q2FzZSwgVGVzdFNob3VsZE5vdFJ1bikgeworVEVTVChESVNBQkxFRF9U
ZXN0U3VpdGUsIFRlc3RTaG91bGROb3RSdW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZh
aWx1cmU6IFRlc3QgaW4gZGlzYWJsZWQgdGVzdCBjYXNlIHNob3VsZCBub3QgYmUgcnVuLiI7CiB9
CiAKIC8vIEEgdGVzdCBjYXNlIGFuZCB0ZXN0IHdob3NlIG5hbWVzIHN0YXJ0IHdpdGggRElTQUJM
RURfLgogLy8gU2hvdWxkIG5vdCBydW4uCi1URVNUKERJU0FCTEVEX1Rlc3RDYXNlLCBESVNBQkxF
RF9UZXN0U2hvdWxkTm90UnVuKSB7CitURVNUKERJU0FCTEVEX1Rlc3RTdWl0ZSwgRElTQUJMRURf
VGVzdFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogVGVz
dCBpbiBkaXNhYmxlZCB0ZXN0IGNhc2Ugc2hvdWxkIG5vdCBiZSBydW4uIjsKIH0KIAotLy8gQ2hl
Y2sgdGhhdCB3aGVuIGFsbCB0ZXN0cyBpbiBhIHRlc3QgY2FzZSBhcmUgZGlzYWJsZWQsIFNldFVw
VGVzdENhc2UoKSBhbmQKLS8vIFRlYXJEb3duVGVzdENhc2UoKSBhcmUgbm90IGNhbGxlZC4KKy8v
IENoZWNrIHRoYXQgd2hlbiBhbGwgdGVzdHMgaW4gYSB0ZXN0IGNhc2UgYXJlIGRpc2FibGVkLCBT
ZXRVcFRlc3RTdWl0ZSgpIGFuZAorLy8gVGVhckRvd25UZXN0U3VpdGUoKSBhcmUgbm90IGNhbGxl
ZC4KIGNsYXNzIERpc2FibGVkVGVzdHNUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
LSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0
U3VpdGUoKSB7CiAgICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IEFsbCB0ZXN0cyBk
aXNhYmxlZCBpbiB0ZXN0IGNhc2UuICIKLSAgICAgICAgICAgICAgIlNldFVwVGVzdENhc2UoKSBz
aG91bGQgbm90IGJlIGNhbGxlZC4iOworICAgICAgICAgICAgICAiU2V0VXBUZXN0U3VpdGUoKSBz
aG91bGQgbm90IGJlIGNhbGxlZC4iOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0
Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgRkFJTCgp
IDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IEFsbCB0ZXN0cyBkaXNhYmxlZCBpbiB0ZXN0IGNhc2Uu
ICIKLSAgICAgICAgICAgICAgIlRlYXJEb3duVGVzdENhc2UoKSBzaG91bGQgbm90IGJlIGNhbGxl
ZC4iOworICAgICAgICAgICAgICAiVGVhckRvd25UZXN0U3VpdGUoKSBzaG91bGQgbm90IGJlIGNh
bGxlZC4iOwogICB9CiB9OwogCkBAIC0zMTYxLDE0ICszMTg3LDEyIEBAIFRFU1RfRihEaXNhYmxl
ZFRlc3RzVGVzdCwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bl8yKSB7CiAKIC8vIFRlc3RzIHRo
YXQgZGlzYWJsZWQgdHlwZWQgdGVzdHMgYXJlbid0IHJ1bi4KIAotI2lmIEdURVNUX0hBU19UWVBF
RF9URVNUCi0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0IDogcHVibGlj
IFRlc3QgewogfTsKIAogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGRvdWJsZT4gTnVtZXJp
Y1R5cGVzOwotVFlQRURfVEVTVF9DQVNFKFR5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVE
X1RFU1RfU1VJVEUoVHlwZWRUZXN0LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKFR5cGVk
VGVzdCwgRElTQUJMRURfU2hvdWxkTm90UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBm
YWlsdXJlOiBEaXNhYmxlZCB0eXBlZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7CkBAIC0zMTc4LDQ5
ICszMjAyLDQzIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgRElTQUJMRURfVHlwZWRU
ZXN0IDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFKERJU0FCTEVEX1R5cGVk
VGVzdCwgTnVtZXJpY1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoRElTQUJMRURfVHlwZWRUZXN0
LCBOdW1lcmljVHlwZXMpOwogCiBUWVBFRF9URVNUKERJU0FCTEVEX1R5cGVkVGVzdCwgU2hvdWxk
Tm90UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0eXBl
ZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVE
X1RFU1QKLQogLy8gVGVzdHMgdGhhdCBkaXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMg
YXJlbid0IHJ1bi4KIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURf
VEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UCk7
CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pIHsKICAg
RkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6ICIKICAgICAgICAgIDw8ICJEaXNhYmxlZCB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzaG91bGQgbm90IHJ1bi4iOwogfQogCi1SRUdJU1RFUl9U
WVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pOworUkVH
SVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAsIERJU0FCTEVEX1Nob3VsZE5vdFJ1
bik7CiAKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBUeXBlZFRlc3RQLCBOdW1l
cmljVHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBUeXBlZFRlc3RQ
LCBOdW1lcmljVHlwZXMpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIERJU0FCTEVE
X1R5cGVkVGVzdFAgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChESVNB
QkxFRF9UeXBlZFRlc3RQKTsKK1RZUEVEX1RFU1RfU1VJVEVfUChESVNBQkxFRF9UeXBlZFRlc3RQ
KTsKIAogVFlQRURfVEVTVF9QKERJU0FCTEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bikgewog
ICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogIgogICAgICAgICAgPDwgIkRpc2FibGVk
IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHNob3VsZCBub3QgcnVuLiI7CiB9CiAKLVJFR0lTVEVS
X1RZUEVEX1RFU1RfQ0FTRV9QKERJU0FCTEVEX1R5cGVkVGVzdFAsIFNob3VsZE5vdFJ1bik7Ci0K
LUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQLCBO
dW1lcmljVHlwZXMpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKERJU0FCTEVEX1R5cGVk
VGVzdFAsIFNob3VsZE5vdFJ1bik7CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBESVNBQkxFRF9UeXBlZFRlc3RQ
LCBOdW1lcmljVHlwZXMpOwogCiAvLyBUZXN0cyB0aGF0IGFzc2VydGlvbiBtYWNyb3MgZXZhbHVh
dGUgdGhlaXIgYXJndW1lbnRzIGV4YWN0bHkgb25jZS4KIApAQCAtMzMyNyw5ICszMzQ1LDI2IEBA
IFRFU1RfRihTaW5nbGVFdmFsdWF0aW9uVGVzdCwgT3RoZXJDYXNlcykgewogCiAjaWYgR1RFU1Rf
SEFTX0VYQ0VQVElPTlMKIAorI2lmIEdURVNUX0hBU19SVFRJCisKKyNpZmRlZiBfTVNDX1ZFUgor
I2RlZmluZSBFUlJPUl9ERVNDICJjbGFzcyBzdGQ6OnJ1bnRpbWVfZXJyb3IiCisjZWxzZQorI2Rl
ZmluZSBFUlJPUl9ERVNDICJzdGQ6OnJ1bnRpbWVfZXJyb3IiCisjZW5kaWYKKworI2Vsc2UgIC8v
IEdURVNUX0hBU19SVFRJCisKKyNkZWZpbmUgRVJST1JfREVTQyAiYW4gc3RkOjpleGNlcHRpb24t
ZGVyaXZlZCBlcnJvciIKKworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorCiB2b2lkIFRocm93
QW5JbnRlZ2VyKCkgewogICB0aHJvdyAxOwogfQordm9pZCBUaHJvd1J1bnRpbWVFcnJvcihjb25z
dCBjaGFyKiB3aGF0KSB7CisgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcih3aGF0KTsKK30KIAog
Ly8gVGVzdHMgdGhhdCBhc3NlcnRpb24gYXJndW1lbnRzIGFyZSBldmFsdWF0ZWQgZXhhY3RseSBv
bmNlLgogVEVTVF9GKFNpbmdsZUV2YWx1YXRpb25UZXN0LCBFeGNlcHRpb25UZXN0cykgewpAQCAt
MzM0NywzMSArMzM4MiwzOCBAQCBURVNUX0YoU2luZ2xlRXZhbHVhdGlvblRlc3QsIEV4Y2VwdGlv
blRlc3RzKSB7CiAgIH0sIGJvb2wpLCAidGhyb3dzIGEgZGlmZmVyZW50IHR5cGUiKTsKICAgRVhQ
RUNUX0VRKDIsIGFfKTsKIAorICAvLyBmYWlsZWQgRVhQRUNUX1RIUk9XLCB0aHJvd3MgcnVudGlt
ZSBlcnJvcgorICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfVEhST1coeyAgLy8gTk9M
SU5UCisgICAgYV8rKzsKKyAgICBUaHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpOwor
ICB9LCBib29sKSwgInRocm93cyAiIEVSUk9SX0RFU0MgIiB3aXRoIGRlc2NyaXB0aW9uIFwiQSBk
ZXNjcmlwdGlvblwiIik7CisgIEVYUEVDVF9FUSgzLCBhXyk7CisKICAgLy8gZmFpbGVkIEVYUEVD
VF9USFJPVywgdGhyb3dzIG5vdGhpbmcKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X1RIUk9XKGFfKyssIGJvb2wpLCAidGhyb3dzIG5vdGhpbmciKTsKLSAgRVhQRUNUX0VRKDMsIGFf
KTsKKyAgRVhQRUNUX0VRKDQsIGFfKTsKIAogICAvLyBzdWNjZXNzZnVsIEVYUEVDVF9OT19USFJP
VwogICBFWFBFQ1RfTk9fVEhST1coYV8rKyk7Ci0gIEVYUEVDVF9FUSg0LCBhXyk7CisgIEVYUEVD
VF9FUSg1LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVYUEVDVF9OT19USFJPVwogICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShFWFBFQ1RfTk9fVEhST1coeyAgLy8gTk9MSU5UCiAgICAgYV8rKzsKICAg
ICBUaHJvd0FuSW50ZWdlcigpOwogICB9KSwgIml0IHRocm93cyIpOwotICBFWFBFQ1RfRVEoNSwg
YV8pOworICBFWFBFQ1RfRVEoNiwgYV8pOwogCiAgIC8vIHN1Y2Nlc3NmdWwgRVhQRUNUX0FOWV9U
SFJPVwogICBFWFBFQ1RfQU5ZX1RIUk9XKHsgIC8vIE5PTElOVAogICAgIGFfKys7CiAgICAgVGhy
b3dBbkludGVnZXIoKTsKICAgfSk7Ci0gIEVYUEVDVF9FUSg2LCBhXyk7CisgIEVYUEVDVF9FUSg3
LCBhXyk7CiAKICAgLy8gZmFpbGVkIEVYUEVDVF9BTllfVEhST1cKICAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoRVhQRUNUX0FOWV9USFJPVyhhXysrKSwgIml0IGRvZXNuJ3QiKTsKLSAgRVhQRUNU
X0VRKDcsIGFfKTsKKyAgRVhQRUNUX0VRKDgsIGFfKTsKIH0KIAogI2VuZGlmICAvLyBHVEVTVF9I
QVNfRVhDRVBUSU9OUwpAQCAtMzQ4MSw3ICszNTIzLDcgQEAgc3RkOjpzdHJpbmcgRWRpdHNUb1N0
cmluZyhjb25zdCBzdGQ6OnZlY3RvcjxFZGl0VHlwZT4mIGVkaXRzKSB7CiBzdGQ6OnZlY3Rvcjxz
aXplX3Q+IENoYXJzVG9JbmRpY2VzKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKICAgc3RkOjp2
ZWN0b3I8c2l6ZV90PiBvdXQ7CiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyLnNpemUoKTsg
KytpKSB7Ci0gICAgb3V0LnB1c2hfYmFjayhzdHJbaV0pOworICAgIG91dC5wdXNoX2JhY2soc3Rh
dGljX2Nhc3Q8c2l6ZV90PihzdHJbaV0pKTsKICAgfQogICByZXR1cm4gb3V0OwogfQpAQCAtMzQ5
NCw3ICszNTM2LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoYXJzVG9MaW5lcyhjb25z
dCBzdGQ6OnN0cmluZyYgc3RyKSB7CiAgIHJldHVybiBvdXQ7CiB9CiAKLVRFU1QoRWRpdERpc3Rh
bmNlLCBUZXN0Q2FzZXMpIHsKK1RFU1QoRWRpdERpc3RhbmNlLCBUZXN0U3VpdGVzKSB7CiAgIHN0
cnVjdCBDYXNlIHsKICAgICBpbnQgbGluZTsKICAgICBjb25zdCBjaGFyKiBsZWZ0OwpAQCAtMzcx
MywyMiArMzc1NSwxNSBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9FUSkgewogfQogCiAv
LyBUZXN0cyBBU1NFUlRfRVEoTlVMTCwgcG9pbnRlcikuCi0jaWYgR1RFU1RfQ0FOX0NPTVBBUkVf
TlVMTAogVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfRVFfTlVMTCkgewogICAvLyBBIHN1Y2Nl
c3MuCi0gIGNvbnN0IGNoYXIqIHAgPSBOVUxMOwotICAvLyBTb21lIG9sZGVyIEdDQyB2ZXJzaW9u
cyBtYXkgaXNzdWUgYSBzcHVyaW91cyB3YXJuaW5nIGluIHRoaXMgb3IgdGhlIG5leHQKLSAgLy8g
YXNzZXJ0aW9uIHN0YXRlbWVudC4gVGhpcyB3YXJuaW5nIHNob3VsZCBub3QgYmUgc3VwcHJlc3Nl
ZCB3aXRoCi0gIC8vIHN0YXRpY19jYXN0IHNpbmNlIHRoZSB0ZXN0IHZlcmlmaWVzIHRoZSBhYmls
aXR5IHRvIHVzZSBiYXJlIE5VTEwgYXMgdGhlCi0gIC8vIGV4cGVjdGVkIHBhcmFtZXRlciB0byB0
aGUgbWFjcm8uCi0gIEFTU0VSVF9FUShOVUxMLCBwKTsKKyAgY29uc3QgY2hhciogcCA9IG51bGxw
dHI7CisgIEFTU0VSVF9FUShudWxscHRyLCBwKTsKIAogICAvLyBBIGZhaWx1cmUuCiAgIHN0YXRp
YyBpbnQgbiA9IDA7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUShOVUxMLCAmbiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUShudWxscHRyLCAmbiksICIgICZuXG4gICAgV2hpY2gg
aXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8gVGVzdHMg
QVNTRVJUX0VRKDAsIG5vbl9wb2ludGVyKS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2FuIGJlCiAv
LyB0cmVhdGVkIGFzIGEgbnVsbCBwb2ludGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVlZCB0byBt
YWtlIHN1cmUKQEAgLTM3OTgsNiArMzgzMywxMiBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VS
VF9USFJPVykgewogICAgICAgQVNTRVJUX1RIUk9XKFRocm93QW5JbnRlZ2VyKCksIGJvb2wpLAog
ICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIHRocm93cyBhbiBleGNlcHRpb24gb2Yg
dHlwZSBib29sLlxuIgogICAgICAgIiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQgdHlw
ZS4iKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBBU1NFUlRfVEhST1coVGhyb3dS
dW50aW1lRXJyb3IoIkEgZGVzY3JpcHRpb24iKSwgc3RkOjpsb2dpY19lcnJvciksCisgICAgICAi
RXhwZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAi
dGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlIHN0ZDo6bG9naWNfZXJyb3IuXG4gICIKKyAgICAg
ICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RFU0MgIiAiCisgICAgICAid2l0aCBkZXNjcmlw
dGlvbiBcIkEgZGVzY3JpcHRpb25cIi4iKTsKICMgZW5kaWYKIAogICBFWFBFQ1RfRkFUQUxfRkFJ
TFVSRSgKQEAgLTM4MTIsNiArMzg1MywxMSBAQCBURVNUKEFzc2VydGlvblRlc3QsIEFTU0VSVF9O
T19USFJPVykgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTk9fVEhST1coVGhyb3dB
bkludGVnZXIoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dBbklu
dGVnZXIoKSBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi4iCiAgICAgICAgICAgICAgICAgICAg
ICAgICJcbiAgQWN0dWFsOiBpdCB0aHJvd3MuIik7CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFT
U0VSVF9OT19USFJPVyhUaHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd1J1bnRpbWVFcnJvcihcIkEgZGVzY3Jp
cHRpb25cIikgIgorICAgICAgICAgICAgICAgICAgICAgICAiZG9lc24ndCB0aHJvdyBhbiBleGNl
cHRpb24uXG4gICIKKyAgICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbDogaXQgdGhyb3dzICIg
RVJST1JfREVTQyAiICIKKyAgICAgICAgICAgICAgICAgICAgICAgIndpdGggZGVzY3JpcHRpb24g
XCJBIGRlc2NyaXB0aW9uXCIuIik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9BTllfVEhST1cuCkBA
IC0zOTE5LDExICszOTY1LDggQEAgVEVTVChBc3NlcnRpb25UZXN0LCBOYW1lZEVudW0pIHsKICAg
RVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0VRKGtFMSwga0UyKSwgIldoaWNoIGlzOiAx
Iik7CiB9CiAKLS8vIFRoZSB2ZXJzaW9uIG9mIGdjYyB1c2VkIGluIFhDb2RlIDIuMiBoYXMgYSBi
dWcgYW5kIGRvZXNuJ3QgYWxsb3cKLS8vIGFub255bW91cyBlbnVtcyBpbiBhc3NlcnRpb25zLiAg
VGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdGVzdCBpcyBub3QKLS8vIGRvbmUgb24gTWFjLgotLy8g
U3VuIFN0dWRpbyBhbmQgSFAgYUNDIGFsc28gcmVqZWN0IHRoaXMgY29kZS4KLSNpZiAhR1RFU1Rf
T1NfTUFDICYmICFkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAhZGVmaW5lZChfX0hQX2FDQykKKy8v
IFN1biBTdHVkaW8gYW5kIEhQIGFDQzJyZWplY3QgdGhpcyBjb2RlLgorI2lmICFkZWZpbmVkKF9f
U1VOUFJPX0NDKSAmJiAhZGVmaW5lZChfX0hQX2FDQykKIAogLy8gVGVzdHMgdXNpbmcgYXNzZXJ0
aW9ucyB3aXRoIGFub255bW91cyBlbnVtcy4KIGVudW0gewpAQCAtNDA4NCwxMSArNDEyNywxMyBA
QCBURVNUKEhSRVNVTFRBc3NlcnRpb25UZXN0LCBTdHJlYW1pbmcpIHsKIAogI2VuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTCiAKLSNpZmRlZiBfX0JPUkxBTkRDX18KLS8vIFNpbGVuY2VzIHdhcm5p
bmdzOiAiQ29uZGl0aW9uIGlzIGFsd2F5cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUiCi0jIHBy
YWdtYSBvcHRpb24gcHVzaCAtdy1jY2MgLXctcmNoCisvLyBUaGUgZm9sbG93aW5nIGNvZGUgaW50
ZW50aW9uYWxseSB0ZXN0cyBhIHN1Ym9wdGltYWwgc3ludGF4LgorI2lmZGVmIF9fR05VQ19fCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkYW5nbGluZy1lbHNlIgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Vt
cHR5LWJvZHkiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcHJhZ21hcyIKICNl
bmRpZgotCiAvLyBUZXN0cyB0aGF0IHRoZSBhc3NlcnRpb24gbWFjcm9zIGJlaGF2ZSBsaWtlIHNp
bmdsZSBzdGF0ZW1lbnRzLgogVEVTVChBc3NlcnRpb25TeW50YXhUZXN0LCBCYXNpY0Fzc2VydGlv
bnNCZWhhdmVzTGlrZVNpbmdsZVN0YXRlbWVudCkgewogICBpZiAoQWx3YXlzRmFsc2UoKSkKQEAg
LTQxMDgsNiArNDE1Myw5IEBAIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgQmFzaWNBc3NlcnRp
b25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIEVYUEVDVF9HVCgz
LCAyKSA8PCAiIjsKIH0KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKKyNlbmRpZgogCiAjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKIC8vIFRlc3RzIHRoYXQgdGhl
IGNvbXBpbGVyIHdpbGwgbm90IGNvbXBsYWluIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgaW4gdGhl
CkBAIC00MTI0LDYgKzQxNzIsMTcgQEAgVEVTVChFeHBlY3RUaHJvd1Rlc3QsIERvZXNOb3RHZW5l
cmF0ZVVucmVhY2hhYmxlQ29kZVdhcm5pbmcpIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUo
RVhQRUNUX0FOWV9USFJPVyhuKyspLCAiIik7CiB9CiAKK1RFU1QoRXhwZWN0VGhyb3dUZXN0LCBE
b2VzTm90R2VuZXJhdGVEdXBsaWNhdGVDYXRjaENsYXVzZVdhcm5pbmcpIHsKKyAgRVhQRUNUX1RI
Uk9XKHRocm93IHN0ZDo6ZXhjZXB0aW9uKCksIHN0ZDo6ZXhjZXB0aW9uKTsKK30KKworLy8gVGhl
IGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4K
KyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3ByYWdtYXMiCisjZW5kaWYKIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgRXhjZXB0
aW9uQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2luZ2xlU3RhdGVtZW50KSB7CiAgIGlmIChBbHdheXNG
YWxzZSgpKQogICAgIEVYUEVDVF9USFJPVyhUaHJvd05vdGhpbmcoKSwgYm9vbCk7CkBAIC00MTQ5
LDggKzQyMDgsMTkgQEAgVEVTVChBc3NlcnRpb25TeW50YXhUZXN0LCBFeGNlcHRpb25Bc3NlcnRp
b25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgZWxzZQogICAgIDsgIC8vIE5PTElO
VAogfQorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlm
CisKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAorLy8gVGhlIGZvbGxvd2luZyBj
b2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBzdWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dO
VUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdt
YXMiCisjZW5kaWYKIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3Nl
cnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1lbnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkp
CiAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoRkFJTCgpKSA8PCAiVGhpcyBzaG91bGQgbmV2
ZXIgYmUgZXhlY3V0ZWQuICIKQEAgLTQxNzMsNiArNDI0Myw5IEBAIFRFU1QoQXNzZXJ0aW9uU3lu
dGF4VGVzdCwgTm9GYXRhbEZhaWx1cmVBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVTdGF0ZW1l
bnQpIHsKICAgZWxzZQogICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKFNVQ0NFRUQoKSk7CiB9
CisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAog
Ly8gVGVzdHMgdGhhdCB0aGUgYXNzZXJ0aW9uIG1hY3JvcyB3b3JrIHdlbGwgd2l0aCBzd2l0Y2gg
c3RhdGVtZW50cy4KIFRFU1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgV29ya3NXaXRoU3dpdGNoKSB7
CkBAIC00MzAyLDEwICs0Mzc1LDggQEAgVEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFT
U0VSVF9TVFIpIHsKIFRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfRkxPQVRJ
TkcpIHsKICAgQVNTRVJUX0ZMT0FUX0VRKDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7
CiAgIEFTU0VSVF9ET1VCTEVfRVEoMSwgMSkgPDwgIlRoaXMgc2hvdWxkIHN1Y2NlZWQuIjsKLSAg
RVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05FQVIoMSwxLjIsIDAuMSkgPDwgIkV4cGVjdCBm
YWlsdXJlLiIsICAvLyBOT0xJTlQKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05FQVIo
MSwgMS4yLCAwLjEpIDw8ICJFeHBlY3QgZmFpbHVyZS4iLCAgLy8gTk9MSU5UCiAgICAgICAgICAg
ICAgICAgICAgICAgICJFeHBlY3QgZmFpbHVyZS4iKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBi
dWcgaW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBh
ZnRlciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4KIH0KIAogLy8g
VGVzdHMgdXNpbmcgQVNTRVJUX0ZBTFNFIHdpdGggYSBzdHJlYW1lZCBtZXNzYWdlLgpAQCAtNDMz
MiwxMCArNDQwMywxMiBAQCBURVNUKEFzc2VydGlvbldpdGhNZXNzYWdlVGVzdCwgU1VDQ0VFRCkg
ewogVEVTVChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIEFTU0VSVF9UUlVFKSB7CiAgIEFTU0VS
VF9UUlVFKHRydWUpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7CiAgIEFTU0VSVF9UUlVFKHRy
dWUpIDw8IHRydWU7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEFT
U0VSVF9UUlVFKGZhbHNlKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyICo+KE5VTEwpCi0gICAg
ICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGNoYXIgKj4oTlVMTCk7Ci0gIH0sICIo
bnVsbCkobnVsbCkiKTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoCisgICAgICB7ICAvLyBOT0xJ
TlQKKyAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIq
PihudWxscHRyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8Y2hh
cio+KG51bGxwdHIpOworICAgICAgfSwKKyAgICAgICIobnVsbCkobnVsbCkiKTsKIH0KIAogI2lm
IEdURVNUX09TX1dJTkRPV1MKQEAgLTQ0NDAsMjMgKzQ1MTMsMTYgQEAgVEVTVChFeHBlY3RUZXN0
LCBFWFBFQ1RfRVFfRG91YmxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICI1LjEiKTsK
IH0KIAotI2lmIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIC8vIFRlc3RzIEVYUEVDVF9FUShOVUxM
LCBwb2ludGVyKS4KIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX0VRX05VTEwpIHsKICAgLy8gQSBz
dWNjZXNzLgotICBjb25zdCBjaGFyKiBwID0gTlVMTDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVy
c2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlvdXMgd2FybmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0g
IC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQuIFRoaXMgd2FybmluZyBzaG91bGQgbm90IGJlIHN1cHBy
ZXNzZWQgd2l0aAotICAvLyBzdGF0aWNfY2FzdCBzaW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUg
YWJpbGl0eSB0byB1c2UgYmFyZSBOVUxMIGFzIHRoZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIg
dG8gdGhlIG1hY3JvLgotICBFWFBFQ1RfRVEoTlVMTCwgcCk7CisgIGNvbnN0IGNoYXIqIHAgPSBu
dWxscHRyOworICBFWFBFQ1RfRVEobnVsbHB0ciwgcCk7CiAKICAgLy8gQSBmYWlsdXJlLgogICBp
bnQgbiA9IDA7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShOVUxMLCAmbiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICIgICZuXG4gICAgV2hpY2ggaXM6Iik7CisgIEVY
UEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShudWxscHRyLCAmbiksICIgICZuXG4gICAg
V2hpY2ggaXM6Iik7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIAogLy8g
VGVzdHMgRVhQRUNUX0VRKDAsIG5vbl9wb2ludGVyKS4gIFNpbmNlIHRoZSBsaXRlcmFsIDAgY2Fu
IGJlCiAvLyB0cmVhdGVkIGFzIGEgbnVsbCBwb2ludGVyIGJ5IHRoZSBjb21waWxlciwgd2UgbmVl
ZCB0byBtYWtlIHN1cmUKQEAgLTQ0ODIsNyArNDU0OCw3IEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQ
RUNUX05FKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY3R1YWw6ICdhJyAoOTcsIDB4
NjEpIHZzICdhJyAoOTcsIDB4NjEpIik7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVD
VF9ORSgyLCAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiKTsKLSAgY2hhciogY29u
c3QgcDAgPSBOVUxMOworICBjaGFyKiBjb25zdCBwMCA9IG51bGxwdHI7CiAgIEVYUEVDVF9OT05G
QVRBTF9GQUlMVVJFKEVYUEVDVF9ORShwMCwgcDApLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAicDAiKTsKICAgLy8gT25seSB3YXkgdG8gZ2V0IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21w
aWxlIHRoZSBjYXN0CkBAIC00NTQxLDYgKzQ2MDcsMTIgQEAgVEVTVChFeHBlY3RUZXN0LCBFWFBF
Q1RfVEhST1cpIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKFRocm93
QW5JbnRlZ2VyKCksIGJvb2wpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6
IFRocm93QW5JbnRlZ2VyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiAiCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0eXBlIGJvb2wuXG4gIEFjdHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50
IHR5cGUuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd1J1
bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RkOjpsb2dpY19lcnJvciksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJFeHBlY3RlZDogVGhyb3dSdW50aW1lRXJyb3IoXCJBIGRlc2NyaXB0aW9uXCIpICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBzdGQ6Omxv
Z2ljX2Vycm9yLlxuICAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWw6IGl0IHRo
cm93cyAiIEVSUk9SX0RFU0MgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGRl
c2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiLiIpOwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RSgKICAgICAgIEVYUEVDVF9USFJPVyhUaHJvd05vdGhpbmcoKSwgYm9vbCksCiAgICAgICAiRXhw
ZWN0ZWQ6IFRocm93Tm90aGluZygpIHRocm93cyBhbiBleGNlcHRpb24gb2YgdHlwZSBib29sLlxu
IgpAQCAtNDU1Myw2ICs0NjI1LDExIEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX05PX1RIUk9X
KSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9OT19USFJPVyhUaHJvd0FuSW50
ZWdlcigpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50
ZWdlcigpIGRvZXNuJ3QgdGhyb3cgYW4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhj
ZXB0aW9uLlxuICBBY3R1YWw6IGl0IHRocm93cy4iKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxV
UkUoRVhQRUNUX05PX1RIUk9XKFRocm93UnVudGltZUVycm9yKCJBIGRlc2NyaXB0aW9uIikpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93UnVudGltZUVycm9yKFwi
QSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkb2Vzbid0IHRo
cm93IGFuIGV4Y2VwdGlvbi5cbiAgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFs
OiBpdCB0aHJvd3MgIiBFUlJPUl9ERVNDICIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRpb25cIi4iKTsKIH0KIAogLy8gVGVzdHMgRVhQ
RUNUX0FOWV9USFJPVy4KQEAgLTQ1OTAsNyArNDY2Nyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3Ry
aW5nVGVzdCwgUG9pbnRlcikgewogCiAvLyBUZXN0cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmco
KSBvbiBhIE5VTEwgbm9uLWNoYXIgcG9pbnRlci4KIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVz
dCwgTnVsbFBvaW50ZXIpIHsKLSAgaW50KiBwID0gTlVMTDsKKyAgaW50KiBwID0gbnVsbHB0cjsK
ICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLCBTdHJlYW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7
CiB9CiAKQEAgLTQ2MDEsNyArNDY3OCw3IEBAIFRFU1QoU3RyZWFtYWJsZVRvU3RyaW5nVGVzdCwg
Q1N0cmluZykgewogCiAvLyBUZXN0cyB1c2luZyBTdHJlYW1hYmxlVG9TdHJpbmcoKSBvbiBhIE5V
TEwgQyBzdHJpbmcuCiBURVNUKFN0cmVhbWFibGVUb1N0cmluZ1Rlc3QsIE51bGxDU3RyaW5nKSB7
Ci0gIGNoYXIqIHAgPSBOVUxMOworICBjaGFyKiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX1NUUkVR
KCIobnVsbCkiLCBTdHJlYW1hYmxlVG9TdHJpbmcocCkuY19zdHIoKSk7CiB9CiAKQEAgLTQ2NDYs
OCArNDcyMyw3IEBAIFRFU1QoU3RyZWFtYWJsZVRlc3QsIGludCkgewogLy8gaW1wbGVtZW50ZWQg
YSB3b3JrYXJvdW5kIChzdWJzdGl0dXRpbmcgIihudWxsKSIgZm9yIE5VTEwpLiAgVGhpcwogLy8g
dGVzdHMgd2hldGhlciB0aGUgd29ya2Fyb3VuZCB3b3Jrcy4KIFRFU1QoU3RyZWFtYWJsZVRlc3Qs
IE51bGxDaGFyUHRyKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEZBSUwoKSA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBjaGFyKj4oTlVMTCksCi0gICAgICAgICAgICAgICAgICAgICAgICIobnVsbCki
KTsKKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoRkFJTCgpIDw8IHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihudWxscHRyKSwgIihudWxsKSIpOwogfQogCiAvLyBUZXN0cyB0aGF0IGJhc2ljIElPIG1h
bmlwdWxhdG9ycyAoZW5kbCwgZW5kcywgYW5kIGZsdXNoKSBjYW4gYmUKQEAgLTQ2OTgsNiArNDc3
NCwxOSBAQCBURVNUKE1hY3JvVGVzdCwgRkFJTCkgewogICAgICAgICAgICAgICAgICAgICAgICAi
SW50ZW50aW9uYWwgZmFpbHVyZS4iKTsKIH0KIAorLy8gVGVzdHMgR1RFU1RfRkFJTF9BVC4KK1RF
U1QoTWFjcm9UZXN0LCBHVEVTVF9GQUlMX0FUKSB7CisgIC8vIFZlcmlmaWVzIHRoYXQgR1RFU1Rf
RkFJTF9BVCBkb2VzIGdlbmVyYXRlIGEgZmF0YWwgZmFpbHVyZSBhbmQKKyAgLy8gdGhlIGZhaWx1
cmUgbWVzc2FnZSBjb250YWlucyB0aGUgdXNlci1zdHJlYW1lZCBwYXJ0LgorICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShHVEVTVF9GQUlMX0FUKCJmb28uY2MiLCA0MikgPDwgIldyb25nISIsICJXcm9u
ZyEiKTsKKworICAvLyBWZXJpZmllcyB0aGF0IHRoZSB1c2VyLXN0cmVhbWVkIHBhcnQgaXMgb3B0
aW9uYWwuCisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEdURVNUX0ZBSUxfQVQoImZvby5jYyIsIDQy
KSwgIkZhaWxlZCIpOworCisgIC8vIFNlZSB0aGUgQUREX0ZBSUxfQVQgdGVzdCBhYm92ZSB0byBz
ZWUgaG93IHdlIHRlc3QgdGhhdCB0aGUgZmFpbHVyZSBtZXNzYWdlCisgIC8vIGNvbnRhaW5zIHRo
ZSByaWdodCBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgLS0gdGhlIHNhbWUgYXBwbGllcyBoZXJl
LgorfQorCiAvLyBUZXN0cyBTVUNDRUVECiBURVNUKE1hY3JvVGVzdCwgU1VDQ0VFRCkgewogICBT
VUNDRUVEKCk7CkBAIC00ODMyLDc1ICs0OTIxLDkgQEAgVEVTVChFcUFzc2VydGlvblRlc3QsIFN0
ZFdpZGVTdHJpbmcpIHsKIAogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAotI2lm
IEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBUZXN0cyB1c2luZyA6OnN0cmluZyB2YWx1ZXMg
aW4ge0VYUEVDVHxBU1NFUlR9X0VRLgotVEVTVChFcUFzc2VydGlvblRlc3QsIEdsb2JhbFN0cmlu
ZykgewotICAvLyBDb21wYXJlcyBhIGNvbnN0IGNoYXIqIHRvIGEgOjpzdHJpbmcgdGhhdCBoYXMg
aWRlbnRpY2FsIGNvbnRlbnQuCi0gIEVYUEVDVF9FUSgiVGVzdCIsIDo6c3RyaW5nKCJUZXN0Iikp
OwotCi0gIC8vIENvbXBhcmVzIHR3byBpZGVudGljYWwgOjpzdHJpbmdzLgotICBjb25zdCA6OnN0
cmluZyBzdHIxKCJBICogaW4gdGhlIG1pZGRsZSIpOwotICBjb25zdCA6OnN0cmluZyBzdHIyKHN0
cjEpOwotICBBU1NFUlRfRVEoc3RyMSwgc3RyMik7Ci0KLSAgLy8gQ29tcGFyZXMgYSA6OnN0cmlu
ZyB0byBhIGNvbnN0IGNoYXIqIHRoYXQgaGFzIGRpZmZlcmVudCBjb250ZW50LgotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoOjpzdHJpbmcoIlRlc3QiKSwgInRlc3QiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QiKTsKLQotICAvLyBDb21wYXJlcyB0d28gOjpz
dHJpbmdzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgY29udGVudHMsIG9uZSBvZiB3aGljaAotICAvLyBo
YXZpbmcgYSBOVUwgY2hhcmFjdGVyIGluIHRoZSBtaWRkbGUuCi0gIDo6c3RyaW5nIHN0cjMoc3Ry
MSk7Ci0gIHN0cjMuYXQoMikgPSAnXDAnOwotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBF
Q1RfRVEoc3RyMSwgc3RyMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJzdHIzIik7Ci0K
LSAgLy8gQ29tcGFyZXMgYSA6OnN0cmluZyB0byBhIGNoYXIqIHRoYXQgaGFzIGRpZmZlcmVudCBj
b250ZW50LgotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRf
RVEoOjpzdHJpbmcoImJhciIpLCBjb25zdF9jYXN0PGNoYXIqPigiZm9vIikpOwotICB9LCAiIik7
Ci19Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQotI2lmIEdURVNUX0hB
U19HTE9CQUxfV1NUUklORwotCi0vLyBUZXN0cyB1c2luZyA6OndzdHJpbmcgdmFsdWVzIGluIHtF
WFBFQ1R8QVNTRVJUfV9FUS4KLVRFU1QoRXFBc3NlcnRpb25UZXN0LCBHbG9iYWxXaWRlU3RyaW5n
KSB7Ci0gIC8vIENvbXBhcmVzIHR3byBpZGVudGljYWwgOjp3c3RyaW5ncy4KLSAgc3RhdGljIGNv
bnN0IDo6d3N0cmluZyB3c3RyMShMIkEgKiBpbiB0aGUgbWlkZGxlIik7Ci0gIHN0YXRpYyBjb25z
dCA6OndzdHJpbmcgd3N0cjIod3N0cjEpOwotICBFWFBFQ1RfRVEod3N0cjEsIHdzdHIyKTsKLQot
ICAvLyBDb21wYXJlcyBhIGNvbnN0IHdjaGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGlk
ZW50aWNhbCBjb250ZW50LgotICBjb25zdCB3Y2hhcl90IGtUZXN0WDgxMTlbXSA9IHsgJ1QnLCAn
ZScsICdzJywgJ3QnLCAweDgxMTksICdcMCcgfTsKLSAgQVNTRVJUX0VRKGtUZXN0WDgxMTksIDo6
d3N0cmluZyhrVGVzdFg4MTE5KSk7Ci0KLSAgLy8gQ29tcGFyZXMgYSBjb25zdCB3Y2hhcl90KiB0
byBhIDo6d3N0cmluZyB0aGF0IGhhcyBkaWZmZXJlbnQKLSAgLy8gY29udGVudC4KLSAgY29uc3Qg
d2NoYXJfdCBrVGVzdFg4MTIwW10gPSB7ICdUJywgJ2UnLCAncycsICd0JywgMHg4MTIwLCAnXDAn
IH07Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKHsgIC8vIE5PTElOVAotICAgIEVYUEVDVF9F
UShrVGVzdFg4MTIwLCA6OndzdHJpbmcoa1Rlc3RYODExOSkpOwotICB9LCAiVGVzdFxceDgxMTki
KTsKLQotICAvLyBDb21wYXJlcyBhIHdjaGFyX3QqIHRvIGEgOjp3c3RyaW5nIHRoYXQgaGFzIGRp
ZmZlcmVudCBjb250ZW50LgotICB3Y2hhcl90KiBjb25zdCBwMSA9IGNvbnN0X2Nhc3Q8d2NoYXJf
dCo+KEwiZm9vIik7Ci0gIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9FUShwMSwgOjp3
c3RyaW5nKEwiYmFyIikpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFyIik7Ci0KLSAg
Ly8gQ29tcGFyZXMgdHdvIDo6d3N0cmluZ3MgdGhhdCBoYXZlIGRpZmZlcmVudCBjb250ZW50cywg
b25lIG9mIHdoaWNoCi0gIC8vIGhhdmluZyBhIE5VTCBjaGFyYWN0ZXIgaW4gdGhlIG1pZGRsZS4K
LSAgc3RhdGljIDo6d3N0cmluZyB3c3RyMzsKLSAgd3N0cjMgPSB3c3RyMTsKLSAgd3N0cjMuYXQo
MikgPSBMJ1wwJzsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0VRKHdzdHIxLCB3c3Ry
MyksCi0gICAgICAgICAgICAgICAgICAgICAgICJ3c3RyMyIpOwotfQotCi0jZW5kaWYgIC8vIEdU
RVNUX0hBU19HTE9CQUxfV1NUUklORwotCiAvLyBUZXN0cyB1c2luZyBjaGFyIHBvaW50ZXJzIGlu
IHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBDaGFyUG9pbnRlcikg
ewotICBjaGFyKiBjb25zdCBwMCA9IE5VTEw7CisgIGNoYXIqIGNvbnN0IHAwID0gbnVsbHB0cjsK
ICAgLy8gT25seSB3YXkgdG8gZ2V0IHRoZSBOb2tpYSBjb21waWxlciB0byBjb21waWxlIHRoZSBj
YXN0CiAgIC8vIGlzIHRvIGhhdmUgYSBzZXBhcmF0ZSB2b2lkKiB2YXJpYWJsZSBmaXJzdC4gUHV0
dGluZwogICAvLyB0aGUgdHdvIGNhc3RzIG9uIHRoZSBzYW1lIGxpbmUgZG9lc24ndCB3b3JrLCBu
ZWl0aGVyIGRvZXMKQEAgLTQ5MjIsNyArNDk0NSw3IEBAIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBD
aGFyUG9pbnRlcikgewogCiAvLyBUZXN0cyB1c2luZyB3Y2hhcl90IHBvaW50ZXJzIGluIHtFWFBF
Q1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBXaWRlQ2hhclBvaW50ZXIpIHsK
LSAgd2NoYXJfdCogY29uc3QgcDAgPSBOVUxMOworICB3Y2hhcl90KiBjb25zdCBwMCA9IG51bGxw
dHI7CiAgIC8vIE9ubHkgd2F5IHRvIGdldCB0aGUgTm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0
aGUgY2FzdAogICAvLyBpcyB0byBoYXZlIGEgc2VwYXJhdGUgdm9pZCogdmFyaWFibGUgZmlyc3Qu
IFB1dHRpbmcKICAgLy8gdGhlIHR3byBjYXN0cyBvbiB0aGUgc2FtZSBsaW5lIGRvZXNuJ3Qgd29y
aywgbmVpdGhlciBkb2VzCkBAIC00OTQ3LDkgKzQ5NzAsOCBAQCBURVNUKEVxQXNzZXJ0aW9uVGVz
dCwgV2lkZUNoYXJQb2ludGVyKSB7CiAKIC8vIFRlc3RzIHVzaW5nIG90aGVyIHR5cGVzIG9mIHBv
aW50ZXJzIGluIHtFWFBFQ1R8QVNTRVJUfV9FUS4KIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBPdGhl
clBvaW50ZXIpIHsKLSAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PGNvbnN0IGludCo+KE5VTEwpLAot
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCkpOwotICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y29uc3QgaW50Kj4oTlVMTCksCisgIEFT
U0VSVF9FUShzdGF0aWNfY2FzdDxjb25zdCBpbnQqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y29u
c3QgaW50Kj4obnVsbHB0cikpOworICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoc3Rh
dGljX2Nhc3Q8Y29uc3QgaW50Kj4obnVsbHB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGludCo+KDB4MTIzNCkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAiMHgxMjM0Iik7CiB9CkBAIC01MDY1LDcgKzUwODcsNyBAQCBjbGFzcyBU
ZXN0TGlmZUN5Y2xlVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogICAvLyBEZXN0cnVjdG9yLiAgRGVj
cmVtZW50cyB0aGUgbnVtYmVyIG9mIHRlc3Qgb2JqZWN0cyB0aGF0IHVzZXMgdGhpcwogICAvLyBm
aXh0dXJlLgotICB+VGVzdExpZmVDeWNsZVRlc3QoKSB7IGNvdW50Xy0tOyB9CisgIH5UZXN0TGlm
ZUN5Y2xlVGVzdCgpIG92ZXJyaWRlIHsgY291bnRfLS07IH0KIAogICAvLyBSZXR1cm5zIHRoZSBu
dW1iZXIgb2YgbGl2ZSB0ZXN0IG9iamVjdHMgdGhhdCB1c2VzIHRoaXMgZml4dHVyZS4KICAgaW50
IGNvdW50KCkgY29uc3QgeyByZXR1cm4gY291bnRfOyB9CkBAIC01MTU2LDggKzUxNzgsNyBAQCBU
RVNUKEFzc2VydGlvblJlc3VsdFRlc3QsIENhblN0cmVhbU9zdHJlYW1NYW5pcHVsYXRvcnMpIHsK
ICAgRVhQRUNUX1NUUkVRKCJEYXRhXG5cXDBXaWxsIGJlIHZpc2libGUiLCByLm1lc3NhZ2UoKSk7
CiB9CiAKLS8vIFRoZSBuZXh0IHRlc3QgdXNlcyBleHBsaWNpdCBjb252ZXJzaW9uIG9wZXJhdG9y
cyAtLSBhIEMrKzExIGZlYXR1cmUuCi0jaWYgR1RFU1RfTEFOR19DWFgxMQorLy8gVGhlIG5leHQg
dGVzdCB1c2VzIGV4cGxpY2l0IGNvbnZlcnNpb24gb3BlcmF0b3JzCiAKIFRFU1QoQXNzZXJ0aW9u
UmVzdWx0VGVzdCwgQ29uc3RydWN0aWJsZUZyb21Db250ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9v
bCkgewogICBzdHJ1Y3QgRXhwbGljaXRseUNvbnZlcnRpYmxlVG9Cb29sIHsKQEAgLTUxNzAsOCAr
NTE5MSw2IEBAIFRFU1QoQXNzZXJ0aW9uUmVzdWx0VGVzdCwgQ29uc3RydWN0aWJsZUZyb21Db250
ZXh0dWFsbHlDb252ZXJ0aWJsZVRvQm9vbCkgewogICBFWFBFQ1RfVFJVRSh2Mik7CiB9CiAKLSNl
bmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQotCiBzdHJ1Y3QgQ29udmVydGlibGVUb0Fzc2VydGlv
blJlc3VsdCB7CiAgIG9wZXJhdG9yIEFzc2VydGlvblJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIEFz
c2VydGlvblJlc3VsdCh0cnVlKTsgfQogfTsKQEAgLTUyODUsMTIgKzUzMDQsMTIgQEAgVEVTVChN
ZXNzYWdlVGVzdCwgQ2FuU3RyZWFtVXNlclR5cGVJblVzZXJOYW1lU3BhY2VXaXRoU3RyZWFtT3Bl
cmF0b3JJbkdsb2JhbCkgewogLy8gVGVzdHMgc3RyZWFtaW5nIE5VTEwgcG9pbnRlcnMgdG8gdGVz
dGluZzo6TWVzc2FnZS4KIFRFU1QoTWVzc2FnZVRlc3QsIE51bGxQb2ludGVycykgewogICBNZXNz
YWdlIG1zZzsKLSAgY2hhciogY29uc3QgcDEgPSBOVUxMOwotICB1bnNpZ25lZCBjaGFyKiBjb25z
dCBwMiA9IE5VTEw7Ci0gIGludCogcDMgPSBOVUxMOwotICBkb3VibGUqIHA0ID0gTlVMTDsKLSAg
Ym9vbCogcDUgPSBOVUxMOwotICBNZXNzYWdlKiBwNiA9IE5VTEw7CisgIGNoYXIqIGNvbnN0IHAx
ID0gbnVsbHB0cjsKKyAgdW5zaWduZWQgY2hhciogY29uc3QgcDIgPSBudWxscHRyOworICBpbnQq
IHAzID0gbnVsbHB0cjsKKyAgZG91YmxlKiBwNCA9IG51bGxwdHI7CisgIGJvb2wqIHA1ID0gbnVs
bHB0cjsKKyAgTWVzc2FnZSogcDYgPSBudWxscHRyOwogCiAgIG1zZyA8PCBwMSA8PCBwMiA8PCBw
MyA8PCBwNCA8PCBwNSA8PCBwNjsKICAgQVNTRVJUX1NUUkVRKCIobnVsbCkobnVsbCkobnVsbCko
bnVsbCkobnVsbCkobnVsbCkiLApAQCAtNTMwMCwxMiArNTMxOSwxMiBAQCBURVNUKE1lc3NhZ2VU
ZXN0LCBOdWxsUG9pbnRlcnMpIHsKIC8vIFRlc3RzIHN0cmVhbWluZyB3aWRlIHN0cmluZ3MgdG8g
dGVzdGluZzo6TWVzc2FnZS4KIFRFU1QoTWVzc2FnZVRlc3QsIFdpZGVTdHJpbmdzKSB7CiAgIC8v
IFN0cmVhbXMgYSBOVUxMIG9mIHR5cGUgY29uc3Qgd2NoYXJfdCouCi0gIGNvbnN0IHdjaGFyX3Qq
IGNvbnN0X3dzdHIgPSBOVUxMOworICBjb25zdCB3Y2hhcl90KiBjb25zdF93c3RyID0gbnVsbHB0
cjsKICAgRVhQRUNUX1NUUkVRKCIobnVsbCkiLAogICAgICAgICAgICAgICAgKE1lc3NhZ2UoKSA8
PCBjb25zdF93c3RyKS5HZXRTdHJpbmcoKS5jX3N0cigpKTsKIAogICAvLyBTdHJlYW1zIGEgTlVM
TCBvZiB0eXBlIHdjaGFyX3QqLgotICB3Y2hhcl90KiB3c3RyID0gTlVMTDsKKyAgd2NoYXJfdCog
d3N0ciA9IG51bGxwdHI7CiAgIEVYUEVDVF9TVFJFUSgiKG51bGwpIiwKICAgICAgICAgICAgICAg
IChNZXNzYWdlKCkgPDwgd3N0cikuR2V0U3RyaW5nKCkuY19zdHIoKSk7CiAKQEAgLTUzMjksMTUg
KzUzNDgsMTUgQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogY2xhc3MgVGVzdEluZm9UZXN0IDogcHVi
bGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgc3RhdGljIGNvbnN0IFRlc3RJbmZvKiBHZXRUZXN0
SW5mbyhjb25zdCBjaGFyKiB0ZXN0X25hbWUpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSogY29uc3Qg
dGVzdF9jYXNlID0gR2V0VW5pdFRlc3RJbXBsKCktPgotICAgICAgICBHZXRUZXN0Q2FzZSgiVGVz
dEluZm9UZXN0IiwgIiIsIE5VTEwsIE5VTEwpOworICAgIGNvbnN0IFRlc3RTdWl0ZSogY29uc3Qg
dGVzdF9zdWl0ZSA9CisgICAgICAgIEdldFVuaXRUZXN0SW1wbCgpLT5HZXRUZXN0U3VpdGUoIlRl
c3RJbmZvVGVzdCIsICIiLCBudWxscHRyLCBudWxscHRyKTsKIAotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgdGVzdF9jYXNlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgICAgY29uc3Qg
VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oaSk7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7ICsr
aSkgeworICAgICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IHRlc3Rfc3VpdGUt
PkdldFRlc3RJbmZvKGkpOwogICAgICAgaWYgKHN0cmNtcCh0ZXN0X25hbWUsIHRlc3RfaW5mby0+
bmFtZSgpKSA9PSAwKQogICAgICAgICByZXR1cm4gdGVzdF9pbmZvOwogICAgIH0KLSAgICByZXR1
cm4gTlVMTDsKKyAgICByZXR1cm4gbnVsbHB0cjsKICAgfQogCiAgIHN0YXRpYyBjb25zdCBUZXN0
UmVzdWx0KiBHZXRUZXN0UmVzdWx0KApAQCAtNTM1MCw3ICs1MzY5LDcgQEAgY2xhc3MgVGVzdElu
Zm9UZXN0IDogcHVibGljIFRlc3QgewogVEVTVF9GKFRlc3RJbmZvVGVzdCwgTmFtZXMpIHsKICAg
Y29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mbyA9IEdldFRlc3RJbmZvKCJOYW1lcyIpOwog
Ci0gIEFTU0VSVF9TVFJFUSgiVGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFt
ZSgpKTsKKyAgQVNTRVJUX1NUUkVRKCJUZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3Rfc3Vp
dGVfbmFtZSgpKTsKICAgQVNTRVJUX1NUUkVRKCJOYW1lcyIsIHRlc3RfaW5mby0+bmFtZSgpKTsK
IH0KIApAQCAtNTM5MCwxMyArNTQwOSwxMyBAQCBURVNUX1AoQ29kZUxvY2F0aW9uRm9yVEVTVFAs
IFZlcmlmeSkgewogICBWRVJJRllfQ09ERV9MT0NBVElPTjsKIH0KIAotSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoLCBDb2RlTG9jYXRpb25Gb3JURVNUUCwgVmFsdWVzKDApKTsKK0lOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCgsIENvZGVMb2NhdGlvbkZvclRFU1RQLCBWYWx1ZXMoMCkpOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCA6IHB1Ymxp
YyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRShDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1Qs
IGludCk7CitUWVBFRF9URVNUX1NVSVRFKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVCwgaW50KTsK
IAogVFlQRURfVEVTVChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIFZlcmlmeSkgewogICBWRVJJ
RllfQ09ERV9MT0NBVElPTjsKQEAgLTU0MDYsMjAgKzU0MjUsMjEgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBjbGFzcyBDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQIDogcHVibGljIFRlc3Qgewog
fTsKIAotVFlQRURfVEVTVF9DQVNFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCk7CitUWVBF
RF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNUUCk7CiAKIFRZUEVEX1RFU1Rf
UChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBWZXJpZnkpIHsKICAgVkVSSUZZX0NPREVfTE9D
QVRJT047CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKENvZGVMb2NhdGlvbkZvclRZ
UEVEVEVTVFAsIFZlcmlmeSk7CitSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AoQ29kZUxvY2F0
aW9uRm9yVFlQRURURVNUUCwgVmVyaWZ5KTsKIAotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNF
X1AoTXksIENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIGludCk7CitJTlNUQU5USUFURV9UWVBF
RF9URVNUX1NVSVRFX1AoTXksIENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIGludCk7CiAKICN1
bmRlZiBWRVJJRllfQ09ERV9MT0NBVElPTgogCiAvLyBUZXN0cyBzZXR0aW5nIHVwIGFuZCB0ZWFy
aW5nIGRvd24gYSB0ZXN0IGNhc2UuCi0KKy8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQg
c3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJ
XwogY2xhc3MgU2V0VXBUZXN0Q2FzZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgog
ICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIG9uY2UgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluIHRo
aXMgdGVzdCBjYXNlCkBAIC01NDUxLDExICs1NDcxLDExIEBAIGNsYXNzIFNldFVwVGVzdENhc2VU
ZXN0IDogcHVibGljIFRlc3QgewogICAgIEVYUEVDVF9FUSgwLCBjb3VudGVyXyk7CiAKICAgICAv
LyBDbGVhbnMgdXAgdGhlIHNoYXJlZCByZXNvdXJjZS4KLSAgICBzaGFyZWRfcmVzb3VyY2VfID0g
TlVMTDsKKyAgICBzaGFyZWRfcmVzb3VyY2VfID0gbnVsbHB0cjsKICAgfQogCiAgIC8vIFRoaXMg
d2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVhY2ggdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KLSAgdmly
dHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAgIC8vIFNl
dFVwVGVzdENhc2UoKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZSwgc28gY291bnRlcl8gc2hv
dWxkCiAgICAgLy8gYWx3YXlzIGJlIDEuCiAgICAgRVhQRUNUX0VRKDEsIGNvdW50ZXJfKTsKQEAg
LTU0NjksMzggKzU0ODksMTAxIEBAIGNsYXNzIFNldFVwVGVzdENhc2VUZXN0IDogcHVibGljIFRl
c3QgewogfTsKIAogaW50IFNldFVwVGVzdENhc2VUZXN0Ojpjb3VudGVyXyA9IDA7Ci1jb25zdCBj
aGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6c2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Citjb25zdCBj
aGFyKiBTZXRVcFRlc3RDYXNlVGVzdDo6c2hhcmVkX3Jlc291cmNlXyA9IG51bGxwdHI7CiAKIC8v
IEEgdGVzdCB0aGF0IHVzZXMgdGhlIHNoYXJlZCByZXNvdXJjZS4KLVRFU1RfRihTZXRVcFRlc3RD
YXNlVGVzdCwgVGVzdDEpIHsKLSAgRVhQRUNUX1NUUk5FKE5VTEwsIHNoYXJlZF9yZXNvdXJjZV8p
OwotfQorVEVTVF9GKFNldFVwVGVzdENhc2VUZXN0LCBUZXN0MSkgeyBFWFBFQ1RfU1RSTkUobnVs
bHB0ciwgc2hhcmVkX3Jlc291cmNlXyk7IH0KIAogLy8gQW5vdGhlciB0ZXN0IHRoYXQgdXNlcyB0
aGUgc2hhcmVkIHJlc291cmNlLgogVEVTVF9GKFNldFVwVGVzdENhc2VUZXN0LCBUZXN0Mikgewog
ICBFWFBFQ1RfU1RSRVEoIjEyMyIsIHNoYXJlZF9yZXNvdXJjZV8pOwogfQorI2VuZGlmICAvLyAg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKKy8vIFRlc3RzIFNldHVwVGVzdFN1
aXRlL1RlYXJEb3duIFRlc3RTdWl0ZQorY2xhc3MgU2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGlj
IFRlc3QgeworIHByb3RlY3RlZDoKKyAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBvbmNlIGJlZm9y
ZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZQorICAvLyBpcyBydW4uCisgIHN0YXRp
YyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeworICAgIHByaW50ZigiU2V0dGluZyB1cCB0aGUgdGVz
dCBzdWl0ZSAuIC4gLlxuIik7CisKKyAgICAvLyBJbml0aWFsaXplcyBzb21lIHNoYXJlZCByZXNv
dXJjZS4gIEluIHRoaXMgc2ltcGxlIGV4YW1wbGUsIHdlCisgICAgLy8ganVzdCBjcmVhdGUgYSBD
IHN0cmluZy4gIE1vcmUgY29tcGxleCBzdHVmZiBjYW4gYmUgZG9uZSBpZgorICAgIC8vIGRlc2ly
ZWQuCisgICAgc2hhcmVkX3Jlc291cmNlXyA9ICIxMjMiOworCisgICAgLy8gSW5jcmVtZW50cyB0
aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICAgIGNvdW50
ZXJfKys7CisKKyAgICAvLyBTZXRVcFRlc3RTdWl0ZSgpIHNob3VsZCBiZSBjYWxsZWQgb25seSBv
bmNlLgorICAgIEVYUEVDVF9FUSgxLCBjb3VudGVyXyk7CisgIH0KKworICAvLyBUaGlzIHdpbGwg
YmUgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZSBpcwor
ICAvLyBydW4uCisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIHByaW50
ZigiVGVhcmluZyBkb3duIHRoZSB0ZXN0IHN1aXRlIC4gLiAuXG4iKTsKKworICAgIC8vIERlY3Jl
bWVudHMgdGhlIG51bWJlciBvZiB0ZXN0IHN1aXRlcyB0aGF0IGhhdmUgYmVlbiBzZXQgdXAuCisg
ICAgY291bnRlcl8tLTsKKworICAgIC8vIFRlYXJEb3duVGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNh
bGxlZCBvbmx5IG9uY2UuCisgICAgRVhQRUNUX0VRKDAsIGNvdW50ZXJfKTsKKworICAgIC8vIENs
ZWFucyB1cCB0aGUgc2hhcmVkIHJlc291cmNlLgorICAgIHNoYXJlZF9yZXNvdXJjZV8gPSBudWxs
cHRyOworICB9CisKKyAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0IGlu
IHRoaXMgdGVzdCBjYXNlLgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIFNldFVw
VGVzdFN1aXRlKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UsIHNvIGNvdW50ZXJfIHNob3Vs
ZAorICAgIC8vIGFsd2F5cyBiZSAxLgorICAgIEVYUEVDVF9FUSgxLCBjb3VudGVyXyk7CisgIH0K
KworICAvLyBOdW1iZXIgb2YgdGVzdCBzdWl0ZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICBz
dGF0aWMgaW50IGNvdW50ZXJfOworCisgIC8vIFNvbWUgcmVzb3VyY2UgdG8gYmUgc2hhcmVkIGJ5
IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgc3RhdGljIGNvbnN0IGNoYXIqIHNoYXJl
ZF9yZXNvdXJjZV87Cit9OworCitpbnQgU2V0VXBUZXN0U3VpdGVUZXN0Ojpjb3VudGVyXyA9IDA7
Citjb25zdCBjaGFyKiBTZXRVcFRlc3RTdWl0ZVRlc3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBudWxs
cHRyOworCisvLyBBIHRlc3QgdGhhdCB1c2VzIHRoZSBzaGFyZWQgcmVzb3VyY2UuCitURVNUX0Yo
U2V0VXBUZXN0U3VpdGVUZXN0LCBUZXN0U2V0dXBUZXN0U3VpdGUxKSB7CisgIEVYUEVDVF9TVFJO
RShudWxscHRyLCBzaGFyZWRfcmVzb3VyY2VfKTsKK30KKworLy8gQW5vdGhlciB0ZXN0IHRoYXQg
dXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgorVEVTVF9GKFNldFVwVGVzdFN1aXRlVGVzdCwgVGVz
dFNldHVwVGVzdFN1aXRlMikgeworICBFWFBFQ1RfU1RSRVEoIjEyMyIsIHNoYXJlZF9yZXNvdXJj
ZV8pOworfQogCiAvLyBUaGUgUGFyc2VGbGFnc1Rlc3QgdGVzdCBjYXNlIHRlc3RzIFBhcnNlR29v
Z2xlVGVzdEZsYWdzT25seS4KIAogLy8gVGhlIEZsYWdzIHN0cnVjdCBzdG9yZXMgYSBjb3B5IG9m
IGFsbCBHb29nbGUgVGVzdCBmbGFncy4KIHN0cnVjdCBGbGFncyB7CiAgIC8vIENvbnN0cnVjdHMg
YSBGbGFncyBzdHJ1Y3Qgd2hlcmUgZWFjaCBmbGFnIGhhcyBpdHMgZGVmYXVsdCB2YWx1ZS4KLSAg
RmxhZ3MoKSA6IGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAgIGJy
ZWFrX29uX2ZhaWx1cmUoZmFsc2UpLAotICAgICAgICAgICAgY2F0Y2hfZXhjZXB0aW9ucyhmYWxz
ZSksCi0gICAgICAgICAgICBkZWF0aF90ZXN0X3VzZV9mb3JrKGZhbHNlKSwKLSAgICAgICAgICAg
IGZpbHRlcigiIiksCi0gICAgICAgICAgICBsaXN0X3Rlc3RzKGZhbHNlKSwKLSAgICAgICAgICAg
IG91dHB1dCgiIiksCi0gICAgICAgICAgICBwcmludF90aW1lKHRydWUpLAotICAgICAgICAgICAg
cmFuZG9tX3NlZWQoMCksCi0gICAgICAgICAgICByZXBlYXQoMSksCi0gICAgICAgICAgICBzaHVm
ZmxlKGZhbHNlKSwKLSAgICAgICAgICAgIHN0YWNrX3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNl
RGVwdGgpLAotICAgICAgICAgICAgc3RyZWFtX3Jlc3VsdF90bygiIiksCi0gICAgICAgICAgICB0
aHJvd19vbl9mYWlsdXJlKGZhbHNlKSB7fQorICBGbGFncygpCisgICAgICA6IGFsc29fcnVuX2Rp
c2FibGVkX3Rlc3RzKGZhbHNlKSwKKyAgICAgICAgYnJlYWtfb25fZmFpbHVyZShmYWxzZSksCisg
ICAgICAgIGNhdGNoX2V4Y2VwdGlvbnMoZmFsc2UpLAorICAgICAgICBkZWF0aF90ZXN0X3VzZV9m
b3JrKGZhbHNlKSwKKyAgICAgICAgZmFpbF9mYXN0KGZhbHNlKSwKKyAgICAgICAgZmlsdGVyKCIi
KSwKKyAgICAgICAgbGlzdF90ZXN0cyhmYWxzZSksCisgICAgICAgIG91dHB1dCgiIiksCisgICAg
ICAgIGJyaWVmKGZhbHNlKSwKKyAgICAgICAgcHJpbnRfdGltZSh0cnVlKSwKKyAgICAgICAgcmFu
ZG9tX3NlZWQoMCksCisgICAgICAgIHJlcGVhdCgxKSwKKyAgICAgICAgc2h1ZmZsZShmYWxzZSks
CisgICAgICAgIHN0YWNrX3RyYWNlX2RlcHRoKGtNYXhTdGFja1RyYWNlRGVwdGgpLAorICAgICAg
ICBzdHJlYW1fcmVzdWx0X3RvKCIiKSwKKyAgICAgICAgdGhyb3dfb25fZmFpbHVyZShmYWxzZSkg
e30KIAogICAvLyBGYWN0b3J5IG1ldGhvZHMuCiAKQEAgLTU1MzYsNiArNTYxOSwxNCBAQCBzdHJ1
Y3QgRmxhZ3MgewogICAgIHJldHVybiBmbGFnczsKICAgfQogCisgIC8vIENyZWF0ZXMgYSBGbGFn
cyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X2ZhaWxfZmFzdCBmbGFnIGhhcworICAvLyB0aGUgZ2l2
ZW4gdmFsdWUuCisgIHN0YXRpYyBGbGFncyBGYWlsRmFzdChib29sIGZhaWxfZmFzdCkgeworICAg
IEZsYWdzIGZsYWdzOworICAgIGZsYWdzLmZhaWxfZmFzdCA9IGZhaWxfZmFzdDsKKyAgICByZXR1
cm4gZmxhZ3M7CisgIH0KKwogICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBn
dGVzdF9maWx0ZXIgZmxhZyBoYXMgdGhlIGdpdmVuCiAgIC8vIHZhbHVlLgogICBzdGF0aWMgRmxh
Z3MgRmlsdGVyKGNvbnN0IGNoYXIqIGZpbHRlcikgewpAQCAtNTU2MCw2ICs1NjUxLDE0IEBAIHN0
cnVjdCBGbGFncyB7CiAgICAgcmV0dXJuIGZsYWdzOwogICB9CiAKKyAgLy8gQ3JlYXRlcyBhIEZs
YWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfYnJpZWYgZmxhZyBoYXMgdGhlIGdpdmVuCisgIC8v
IHZhbHVlLgorICBzdGF0aWMgRmxhZ3MgQnJpZWYoYm9vbCBicmllZikgeworICAgIEZsYWdzIGZs
YWdzOworICAgIGZsYWdzLmJyaWVmID0gYnJpZWY7CisgICAgcmV0dXJuIGZsYWdzOworICB9CisK
ICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfcHJpbnRfdGltZSBm
bGFnIGhhcyB0aGUgZ2l2ZW4KICAgLy8gdmFsdWUuCiAgIHN0YXRpYyBGbGFncyBQcmludFRpbWUo
Ym9vbCBwcmludF90aW1lKSB7CkBAIC01NTcwLDcgKzU2NjksNyBAQCBzdHJ1Y3QgRmxhZ3Mgewog
CiAgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X3JhbmRvbV9zZWVk
IGZsYWcgaGFzIHRoZSBnaXZlbgogICAvLyB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFJhbmRvbVNl
ZWQoSW50MzIgcmFuZG9tX3NlZWQpIHsKKyAgc3RhdGljIEZsYWdzIFJhbmRvbVNlZWQoaW50MzJf
dCByYW5kb21fc2VlZCkgewogICAgIEZsYWdzIGZsYWdzOwogICAgIGZsYWdzLnJhbmRvbV9zZWVk
ID0gcmFuZG9tX3NlZWQ7CiAgICAgcmV0dXJuIGZsYWdzOwpAQCAtNTU3OCw3ICs1Njc3LDcgQEAg
c3RydWN0IEZsYWdzIHsKIAogICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBn
dGVzdF9yZXBlYXQgZmxhZyBoYXMgdGhlIGdpdmVuCiAgIC8vIHZhbHVlLgotICBzdGF0aWMgRmxh
Z3MgUmVwZWF0KEludDMyIHJlcGVhdCkgeworICBzdGF0aWMgRmxhZ3MgUmVwZWF0KGludDMyX3Qg
cmVwZWF0KSB7CiAgICAgRmxhZ3MgZmxhZ3M7CiAgICAgZmxhZ3MucmVwZWF0ID0gcmVwZWF0Owog
ICAgIHJldHVybiBmbGFnczsKQEAgLTU1OTQsNyArNTY5Myw3IEBAIHN0cnVjdCBGbGFncyB7CiAK
ICAgLy8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgR1RFU1RfRkxBRyhzdGFja190
cmFjZV9kZXB0aCkgZmxhZyBoYXMKICAgLy8gdGhlIGdpdmVuIHZhbHVlLgotICBzdGF0aWMgRmxh
Z3MgU3RhY2tUcmFjZURlcHRoKEludDMyIHN0YWNrX3RyYWNlX2RlcHRoKSB7CisgIHN0YXRpYyBG
bGFncyBTdGFja1RyYWNlRGVwdGgoaW50MzJfdCBzdGFja190cmFjZV9kZXB0aCkgewogICAgIEZs
YWdzIGZsYWdzOwogICAgIGZsYWdzLnN0YWNrX3RyYWNlX2RlcHRoID0gc3RhY2tfdHJhY2VfZGVw
dGg7CiAgICAgcmV0dXJuIGZsYWdzOwpAQCAtNTYyMSwxNCArNTcyMCwxNiBAQCBzdHJ1Y3QgRmxh
Z3MgewogICBib29sIGJyZWFrX29uX2ZhaWx1cmU7CiAgIGJvb2wgY2F0Y2hfZXhjZXB0aW9uczsK
ICAgYm9vbCBkZWF0aF90ZXN0X3VzZV9mb3JrOworICBib29sIGZhaWxfZmFzdDsKICAgY29uc3Qg
Y2hhciogZmlsdGVyOwogICBib29sIGxpc3RfdGVzdHM7CiAgIGNvbnN0IGNoYXIqIG91dHB1dDsK
KyAgYm9vbCBicmllZjsKICAgYm9vbCBwcmludF90aW1lOwotICBJbnQzMiByYW5kb21fc2VlZDsK
LSAgSW50MzIgcmVwZWF0OworICBpbnQzMl90IHJhbmRvbV9zZWVkOworICBpbnQzMl90IHJlcGVh
dDsKICAgYm9vbCBzaHVmZmxlOwotICBJbnQzMiBzdGFja190cmFjZV9kZXB0aDsKKyAgaW50MzJf
dCBzdGFja190cmFjZV9kZXB0aDsKICAgY29uc3QgY2hhciogc3RyZWFtX3Jlc3VsdF90bzsKICAg
Ym9vbCB0aHJvd19vbl9mYWlsdXJlOwogfTsKQEAgLTU2MzcsMTQgKzU3MzgsMTYgQEAgc3RydWN0
IEZsYWdzIHsKIGNsYXNzIFBhcnNlRmxhZ3NUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3Rl
ZDoKICAgLy8gQ2xlYXJzIHRoZSBmbGFncyBiZWZvcmUgZWFjaCB0ZXN0LgotICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgR1RFU1RfRkxBRyhh
bHNvX3J1bl9kaXNhYmxlZF90ZXN0cykgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGJyZWFrX29u
X2ZhaWx1cmUpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSA9IGZh
bHNlOwogICAgIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykgPSBmYWxzZTsKKyAgICBH
VEVTVF9GTEFHKGZhaWxfZmFzdCkgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFHKGZpbHRlcikgPSAi
IjsKICAgICBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhv
dXRwdXQpID0gIiI7CisgICAgR1RFU1RfRkxBRyhicmllZikgPSBmYWxzZTsKICAgICBHVEVTVF9G
TEFHKHByaW50X3RpbWUpID0gdHJ1ZTsKICAgICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IDA7
CiAgICAgR1RFU1RfRkxBRyhyZXBlYXQpID0gMTsKQEAgLTU2NTYsMTEgKzU3NTksMTEgQEAgY2xh
c3MgUGFyc2VGbGFnc1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiAKICAgLy8gQXNzZXJ0cyB0aGF0IHR3
byBuYXJyb3cgb3Igd2lkZSBzdHJpbmcgYXJyYXlzIGFyZSBlcXVhbC4KICAgdGVtcGxhdGUgPHR5
cGVuYW1lIENoYXJUeXBlPgotICBzdGF0aWMgdm9pZCBBc3NlcnRTdHJpbmdBcnJheUVxKHNpemVf
dCBzaXplMSwgQ2hhclR5cGUqKiBhcnJheTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IHNpemUyLCBDaGFyVHlwZSoqIGFycmF5MikgeworICBzdGF0aWMgdm9pZCBB
c3NlcnRTdHJpbmdBcnJheUVxKGludCBzaXplMSwgQ2hhclR5cGUqKiBhcnJheTEsIGludCBzaXpl
MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyVHlwZSoqIGFycmF5Mikg
ewogICAgIEFTU0VSVF9FUShzaXplMSwgc2l6ZTIpIDw8ICIgQXJyYXkgc2l6ZXMgZGlmZmVyZW50
LiI7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBzaXplMTsgaSsrKSB7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgIT0gc2l6ZTE7IGkrKykgewogICAgICAgQVNTRVJUX1NUUkVRKGFycmF5
MVtpXSwgYXJyYXkyW2ldKSA8PCAiIHdoZXJlIGkgPT0gIiA8PCBpOwogICAgIH0KICAgfQpAQCAt
NTY3Miw5ICs1Nzc1LDExIEBAIGNsYXNzIFBhcnNlRmxhZ3NUZXN0IDogcHVibGljIFRlc3Qgewog
ICAgIEVYUEVDVF9FUShleHBlY3RlZC5icmVha19vbl9mYWlsdXJlLCBHVEVTVF9GTEFHKGJyZWFr
X29uX2ZhaWx1cmUpKTsKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQuY2F0Y2hfZXhjZXB0aW9ucywg
R1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSk7CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmRl
YXRoX3Rlc3RfdXNlX2ZvcmssIEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpOworICAg
IEVYUEVDVF9FUShleHBlY3RlZC5mYWlsX2Zhc3QsIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSk7CiAg
ICAgRVhQRUNUX1NUUkVRKGV4cGVjdGVkLmZpbHRlciwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3Ry
KCkpOwogICAgIEVYUEVDVF9FUShleHBlY3RlZC5saXN0X3Rlc3RzLCBHVEVTVF9GTEFHKGxpc3Rf
dGVzdHMpKTsKICAgICBFWFBFQ1RfU1RSRVEoZXhwZWN0ZWQub3V0cHV0LCBHVEVTVF9GTEFHKG91
dHB1dCkuY19zdHIoKSk7CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmJyaWVmLCBHVEVTVF9GTEFH
KGJyaWVmKSk7CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkLnByaW50X3RpbWUsIEdURVNUX0ZMQUco
cHJpbnRfdGltZSkpOwogICAgIEVYUEVDVF9FUShleHBlY3RlZC5yYW5kb21fc2VlZCwgR1RFU1Rf
RkxBRyhyYW5kb21fc2VlZCkpOwogICAgIEVYUEVDVF9FUShleHBlY3RlZC5yZXBlYXQsIEdURVNU
X0ZMQUcocmVwZWF0KSk7CkBAIC01NzQyLDE0MSArNTg0Nyw5MCBAQCBjbGFzcyBQYXJzZUZsYWdz
VGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogLy8gVGVzdHMgcGFyc2luZyBhbiBlbXB0eSBjb21tYW5k
IGxpbmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHtudWxscHRy
fTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHtudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYSBj
b21tYW5kIGxpbmUgdGhhdCBoYXMgbm8gZmxhZy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTm9G
bGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAot
ICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVT
VF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFncygpLCBmYWxzZSk7CiB9CiAK
Ky8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9mYWlsX2Zhc3QuCitURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIEZhaWxGYXN0KSB7CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X2ZhaWxfZmFzdCIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZv
by5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFy
Z3YyLCBGbGFnczo6RmFpbEZhc3QodHJ1ZSksIGZhbHNlKTsKK30KKwogLy8gVGVzdHMgcGFyc2lu
ZyBhIGJhZCAtLWd0ZXN0X2ZpbHRlciBmbGFnLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGaWx0
ZXJCYWQpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
LS1ndGVzdF9maWx0ZXIiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0g
eyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9m
aWx0ZXIiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFy
Z3YyLCBGbGFnczo6RmlsdGVyKCIiKSwgdHJ1ZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgYW4g
ZW1wdHkgLS1ndGVzdF9maWx0ZXIgZmxhZy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgRmlsdGVy
RW1wdHkpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAi
LS1ndGVzdF9maWx0ZXI9IiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2ZpbHRlcj0iLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFy
KiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCIiKSwgZmFsc2UpOwogfQogCiAv
LyBUZXN0cyBwYXJzaW5nIGEgbm9uLWVtcHR5IC0tZ3Rlc3RfZmlsdGVyIGZsYWcuCiBURVNUX0Yo
UGFyc2VGbGFnc1Rlc3QsIEZpbHRlck5vbkVtcHR5KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWFiYyIsCi0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9maWx0ZXI9
YWJjIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwg
bnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxh
Z3M6OkZpbHRlcigiYWJjIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0
X2JyZWFrX29uX2ZhaWx1cmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEJyZWFrT25GYWlsdXJl
V2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3Qg
Y2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsIG51
bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAg
IE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9
OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVh
a09uRmFpbHVyZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rf
YnJlYWtfb25fZmFpbHVyZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVy
ZUZhbHNlXzApIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPTAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0wIiwg
bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0
cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJy
ZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rl
c3RfYnJlYWtfb25fZmFpbHVyZT1mLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFp
bHVyZUZhbHNlX2YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwK
LSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPWYiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1m
IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0t
Z3Rlc3RfYnJlYWtfb25fZmFpbHVyZT1GLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09u
RmFpbHVyZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhl
IiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPUYiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVy
ZT1GIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwg
bnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxh
Z3M6OkJyZWFrT25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQpAQCAtNTg4NCw0OCArNTkzOCwy
NyBAQCBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEJyZWFrT25GYWlsdXJlRmFsc2VfRikgewogLy8g
VGVzdHMgcGFyc2luZyBhIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSBmbGFnIHRoYXQgaGFzIGEg
InRydWUiCiAvLyBkZWZpbml0aW9uLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFp
bHVyZVRydWUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZT0xIiwg
bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0
cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJy
ZWFrT25GYWlsdXJlKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVz
dF9jYXRjaF9leGNlcHRpb25zLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBDYXRjaEV4Y2VwdGlv
bnMpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1n
dGVzdF9jYXRjaF9leGNlcHRpb25zIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnMiLCBudWxscHRyfTsK
IAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0g
IH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6Q2F0Y2hFeGNlcHRp
b25zKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9kZWF0aF90
ZXN0X3VzZV9mb3JrLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RVc2VGb3JrKSB7
Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rf
ZGVhdGhfdGVzdF91c2VfZm9yayIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9kZWF0aF90ZXN0X3VzZV9mb3JrIiwgbnVsbHB0cn07
CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkRlYXRoVGVzdFVz
ZUZvcmsodHJ1ZSksIGZhbHNlKTsKIH0KQEAgLTU5MzMsMzYgKzU5NjYsMjEgQEAgVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBEZWF0aFRlc3RVc2VGb3JrKSB7CiAvLyBUZXN0cyBoYXZpbmcgdGhlIHNh
bWUgZmxhZyB0d2ljZSB3aXRoIGRpZmZlcmVudCB2YWx1ZXMuICBUaGUKIC8vIGV4cGVjdGVkIGJl
aGF2aW9yIGlzIHRoYXQgdGhlIG9uZSBjb21pbmcgbGFzdCB0YWtlcyBwcmVjZWRlbmNlLgogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBEdXBsaWNhdGVkRmxhZ3MpIHsKLSAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9maWx0ZXI9YSIsCi0gICAgIi0t
Z3Rlc3RfZmlsdGVyPWIiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0g
eyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyPWEiLCAiLS1ndGVzdF9maWx0ZXI9YiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJiIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2
aW5nIGFuIHVucmVjb2duaXplZCBmbGFnIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBURVNUX0YoUGFy
c2VGbGFnc1Rlc3QsIFVucmVjb2duaXplZEZsYWcpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIiwKLSAgICAi
YmFyIiwgIC8vIFVucmVjb2duaXplZCBieSBHb29nbGUgVGVzdC4KLSAgICAiLS1ndGVzdF9maWx0
ZXI9YiIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUi
LCAiLS1ndGVzdF9icmVha19vbl9mYWlsdXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJi
YXIiLCAgLy8gVW5yZWNvZ25pemVkIGJ5IEdvb2dsZSBUZXN0LgorICAgICAgICAgICAgICAgICAg
ICAgICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiYmFyIiwKLSAgICBOVUxMCi0gIH07CisgIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCAiYmFyIiwgbnVsbHB0cn07CiAKICAgRmxh
Z3MgZmxhZ3M7CiAgIGZsYWdzLmJyZWFrX29uX2ZhaWx1cmUgPSB0cnVlOwpAQCAtNTk3MiwzODgg
KzU5OTAsMjUwIEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgVW5yZWNvZ25pemVkRmxhZykgewog
CiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2xpc3RfdGVzdHMgZmxhZwogVEVTVF9GKFBhcnNl
RmxhZ3NUZXN0LCBMaXN0VGVzdHNGbGFnKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewot
ICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cyIsCi0gICAgICBOVUxM
Ci0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlz
dF90ZXN0cyIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAg
ICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcgd2l0aCBh
ICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVzdHNUcnVlKSB7Ci0g
ICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rl
c3RfbGlzdF90ZXN0cz0xIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPTEiLCBudWxscHRyfTsKIAotICAg
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0g
ICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0g
ICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0
cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3Yy
LCBGbGFnczo6TGlzdFRlc3RzKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBh
IC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFnIHdpdGggYSAiZmFsc2UiIHZhbHVlCiBURVNUX0YoUGFy
c2VGbGFnc1Rlc3QsIExpc3RUZXN0c0ZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0g
ewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0wIiwKLSAgICAg
IE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9saXN0X3Rlc3RzPTAiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RF
U1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyhmYWxz
ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2xpc3RfdGVzdHM9Zi4K
IFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTGlzdFRlc3RzRmFsc2VfZikgewotICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9ZiIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1n
dGVzdF9saXN0X3Rlc3RzPWYiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0g
ewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10g
PSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0
cyBwYXJzaW5nIC0tZ3Rlc3RfbGlzdF90ZXN0cz1GLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBM
aXN0VGVzdHNGYWxzZV9GKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfbGlzdF90ZXN0cz1GIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2xpc3RfdGVzdHM9RiIsIG51bGxw
dHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9Owog
CiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVz
dHMoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9vdXRwdXQg
KGludmFsaWQpLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBPdXRwdXRFbXB0eSkgewotICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X291dHB1dCIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1n
dGVzdF9vdXRwdXQiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X291dHB1dCIsIG51bGxwdHJ9
OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzKCksIHRy
dWUpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbAogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBPdXRwdXRYbWwpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQ9eG1sIiwKLSAgICBOVUxMCi0gIH07Cisg
IGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X291dHB1dD14bWwiLCBu
dWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRy
fTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6T3V0
cHV0KCJ4bWwiKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0
PXhtbDpmaWxlCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIE91dHB1dFhtbEZpbGUpIHsKLSAgY29u
c3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQ9
eG1sOmZpbGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28u
ZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxlIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Ok91dHB1dCgieG1sOmZpbGUiKSwgZmFsc2Up
OwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0
aC8KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgT3V0cHV0WG1sRGlyZWN0b3J5KSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXht
bDpkaXJlY3RvcnkvcGF0aC8iLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpkaXJlY3RvcnkvcGF0aC8iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnczo6T3V0cHV0KCJ4
bWw6ZGlyZWN0b3J5L3BhdGgvIiksIGZhbHNlKTsKIH0KIAorLy8gVGVzdHMgaGF2aW5nIGEgLS1n
dGVzdF9icmllZiBmbGFnCitURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEJyaWVmRmxhZykgeworICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9icmllZiIsIG51bGxwdHJ9
OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBH
VEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYodHJ1ZSks
IGZhbHNlKTsKK30KKworLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnIHdpdGgg
YSAidHJ1ZSIgdmFsdWUKK1RFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnVHJ1ZSkgewor
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9icmllZj0xIiwgbnVs
bHB0cn07CisKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9Owor
CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmllZih0
cnVlKSwgZmFsc2UpOworfQorCisvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2JyaWVmIGZsYWcg
d2l0aCBhICJmYWxzZSIgdmFsdWUKK1RFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJpZWZGbGFnRmFs
c2UpIHsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWY9
MCIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxs
cHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6
QnJpZWYoZmFsc2UpLCBmYWxzZSk7Cit9CisKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfcHJp
bnRfdGltZSBmbGFnCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZUZsYWcpIHsKLSAg
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVz
dF9wcmludF90aW1lIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF9wcmludF90aW1lIiwgbnVsbHB0cn07CiAKLSAgICBjb25z
dCBjaGFyKiBhcmd2MltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdU
RVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1
ZSksIGZhbHNlKTsKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxh
Z3M6OlByaW50VGltZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0
ZXN0X3ByaW50X3RpbWUgZmxhZyB3aXRoIGEgInRydWUiIHZhbHVlCiBURVNUX0YoUGFyc2VGbGFn
c1Rlc3QsIFByaW50VGltZVRydWUpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAg
ICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9wcmludF90aW1lPTEiLAotICAgICAgTlVMTAot
ICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50
X3RpbWU9MSIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAg
ICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSksIGZhbHNl
KTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9wcmludF90aW1lIGZsYWcgd2l0aCBh
ICJmYWxzZSIgdmFsdWUKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgUHJpbnRUaW1lRmFsc2UpIHsK
LSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1n
dGVzdF9wcmludF90aW1lPTAiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9MCIsIG51bGxwdHJ9OwogCi0g
ICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwK
LSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
LSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRU
aW1lKGZhbHNlKSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFy
Z3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJz
aW5nIC0tZ3Rlc3RfcHJpbnRfdGltZT1mLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBQcmludFRp
bWVGYWxzZV9mKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1mIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9ZiIsIG51bGxwdHJ9Owog
Ci0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdU
RVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUoZmFs
c2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9wcmludF90aW1lPUYu
CiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZUZhbHNlX0YpIHsKLSAgY29uc3QgY2hh
ciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9wcmludF90aW1lPUYi
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfcHJpbnRfdGltZT1GIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhh
cmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZShmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVz
dHMgcGFyc2luZyAtLWd0ZXN0X3JhbmRvbV9zZWVkPW51bWJlcgogVEVTVF9GKFBhcnNlRmxhZ3NU
ZXN0LCBSYW5kb21TZWVkKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfcmFuZG9tX3NlZWQ9MTAwMCIsCi0gICAgTlVMTAotICB9OworICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9yYW5kb21fc2VlZD0xMDAw
IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
OlJhbmRvbVNlZWQoMTAwMCksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0
X3JlcGVhdD1udW1iZXIKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgUmVwZWF0KSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcmVwZWF0PTEw
MDAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3RfcmVwZWF0PTEwMDAiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6UmVwZWF0KDEwMDApLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3Rz
IGhhdmluZyBhIC0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgZmxhZwogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRUZXN0c0ZsYWcpIHsKLSAgICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cyIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLCBudWxscHRy
fTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAg
ICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxw
dHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVl
KSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFn
czo6QWxzb1J1bkRpc2FibGVkVGVzdHModHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzIGZsYWcgd2l0aCBhICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0
LCBBbHNvUnVuRGlzYWJsZWRUZXN0c1RydWUpIHsKLSAgICBjb25zdCBjaGFyKiBhcmd2W10gPSB7
Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0
cz0xIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5l
eGUiLCAiLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cz0xIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAg
ICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFy
Z3YsIGFyZ3YyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M6OkFsc29SdW5E
aXNhYmxlZFRlc3RzKHRydWUpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rl
c3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMgZmxhZyB3aXRoIGEgImZhbHNlIiB2YWx1ZQogVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBBbHNvUnVuRGlzYWJsZWRUZXN0c0ZhbHNlKSB7Ci0gICAgY29u
c3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxz
b19ydW5fZGlzYWJsZWRfdGVzdHM9MCIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hh
ciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9
MCIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyhmYWxzZSksIGZhbHNlKTsKKyAgR1RFU1Rf
VEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRl
c3RzKGZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiB9CiAKIC8v
IFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9zaHVmZmxlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBT
aHVmZmxlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9v
LmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1ZmZsZSIsCi0gICAgTlVMTAotfTsKKyAgY29uc3QgY2hh
ciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfc2h1ZmZsZSIsIG51bGxwdHJ9OwogCi0g
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsK
KyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKHRydWUpLCBm
YWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9zaHVmZmxlPTAuCiBURVNUX0Yo
UGFyc2VGbGFnc1Rlc3QsIFNodWZmbGVGYWxzZV8wKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfc2h1ZmZsZT0wIiwKLSAgICBOVUxMCi0g
IH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3NodWZmbGU9
MCIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUi
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51
bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdz
OjpTaHVmZmxlKGZhbHNlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVz
dF9zaHVmZmxlIGZsYWcgdGhhdCBoYXMgYSAidHJ1ZSIgZGVmaW5pdGlvbi4KIFRFU1RfRihQYXJz
ZUZsYWdzVGVzdCwgU2h1ZmZsZVRydWUpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAg
ICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9zaHVmZmxlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfc2h1ZmZsZT0xIiwgbnVs
bHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
TlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07
CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlNodWZm
bGUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3N0YWNrX3Ry
YWNlX2RlcHRoPW51bWJlci4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU3RhY2tUcmFjZURlcHRo
KSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rl
c3Rfc3RhY2tfdHJhY2VfZGVwdGg9NSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9zdGFja190cmFjZV9kZXB0aD01IiwgbnVsbHB0
cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
ICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0YWNrVHJh
Y2VEZXB0aCg1KSwgZmFsc2UpOwogfQogCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFN0cmVhbVJl
c3VsdFRvKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90bz1sb2NhbGhvc3Q6MTIzNCIsCi0gICAgTlVMTAotICB9
OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9zdHJlYW1fcmVz
dWx0X3RvPWxvY2FsaG9zdDoxMjM0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHJ9
OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwK
LSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAg
IEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oCiAgICAgICBhcmd2LCBhcmd2MiwgRmxhZ3M6OlN0
cmVhbVJlc3VsdFRvKCJsb2NhbGhvc3Q6MTIzNCIpLCBmYWxzZSk7CkBAIC02MzYxLDMyICs2MjQx
LDE4IEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU3RyZWFtUmVzdWx0VG8pIHsKIAogLy8gVGVz
dHMgcGFyc2luZyAtLWd0ZXN0X3Rocm93X29uX2ZhaWx1cmUuCiBURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIFRocm93T25GYWlsdXJlV2l0aG91dFZhbHVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSIsCi0gICAg
TlVMTAotfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhy
b3dfb25fZmFpbHVyZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0g
ICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsi
Zm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwg
YXJndjIsIEZsYWdzOjpUaHJvd09uRmFpbHVyZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0
cyBwYXJzaW5nIC0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NU
ZXN0LCBUaHJvd09uRmFpbHVyZUZhbHNlXzApIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewot
ICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlPTAiLAotICAgIE5V
TEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhy
b3dfb25fZmFpbHVyZT0wIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsK
LSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2
LCBhcmd2MiwgRmxhZ3M6OlRocm93T25GYWlsdXJlKGZhbHNlKSwgZmFsc2UpOwogfQpAQCAtNjM5
NCwxNiArNjI2MCw5IEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgVGhyb3dPbkZhaWx1cmVGYWxz
ZV8wKSB7CiAvLyBUZXN0cyBwYXJzaW5nIGEgLS1ndGVzdF90aHJvd19vbl9mYWlsdXJlIGZsYWcg
dGhhdCBoYXMgYSAidHJ1ZSIKIC8vIGRlZmluaXRpb24uCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3Qs
IFRocm93T25GYWlsdXJlVHJ1ZSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZv
by5leGUiLAotICAgICItLWd0ZXN0X3Rocm93X29uX2ZhaWx1cmU9MSIsCi0gICAgTlVMTAotICB9
OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF90aHJvd19vbl9m
YWlsdXJlPTEiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJm
b28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5l
eGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3Yy
LCBGbGFnczo6VGhyb3dPbkZhaWx1cmUodHJ1ZSksIGZhbHNlKTsKIH0KQEAgLTY0MzgsNyArNjI5
Nyw3IEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgV2lkZVN0cmluZ3MpIHsKICNpZiBHVEVTVF9V
U0VfT1dOX0ZMQUdGSUxFX0ZMQUdfCiBjbGFzcyBGbGFnZmlsZVRlc3QgOiBwdWJsaWMgUGFyc2VG
bGFnc1Rlc3QgewogIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgewogICAgIFBhcnNlRmxhZ3NUZXN0OjpTZXRVcCgpOwogCiAgICAgdGVz
dGRhdGFfcGF0aF8uU2V0KGludGVybmFsOjpGaWxlUGF0aCgKQEAgLTY0NDgsNyArNjMwNyw3IEBA
IGNsYXNzIEZsYWdmaWxlVGVzdCA6IHB1YmxpYyBQYXJzZUZsYWdzVGVzdCB7CiAgICAgRVhQRUNU
X1RSVUUodGVzdGRhdGFfcGF0aF8uQ3JlYXRlRm9sZGVyKCkpOwogICB9CiAKLSAgdmlydHVhbCB2
b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHRlc3Rp
bmc6OmludGVybmFsOjpwb3NpeDo6Um1EaXIodGVzdGRhdGFfcGF0aF8uY19zdHIoKSk7CiAgICAg
UGFyc2VGbGFnc1Rlc3Q6OlRlYXJEb3duKCk7CiAgIH0KQEAgLTY0NzIsMTYgKzYzMzEsOSBAQCBU
RVNUX0YoRmxhZ2ZpbGVUZXN0LCBFbXB0eSkgewogICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFn
ID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RFU1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0i
KSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0g
ICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIo
KSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3Mo
KSwgZmFsc2UpOwogfQpAQCAtNjQ5MywxNiArNjM0NSw5IEBAIFRFU1RfRihGbGFnZmlsZVRlc3Qs
IEZpbHRlck5vbkVtcHR5KSB7CiAgIHN0ZDo6c3RyaW5nIGZsYWdmaWxlX2ZsYWcgPQogICAgICAg
c3RkOjpzdHJpbmcoIi0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImZsYWdmaWxlPSIpICsgZmxhZ2Zp
bGVfcGF0aC5jX3N0cigpOwogCi0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgZmxhZ2ZpbGVfZmxhZy5jX3N0cigpLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndltdID0geyJmb28uZXhlIiwgZmxhZ2ZpbGVfZmxhZy5jX3N0cigpLCBudWxscHRy
fTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxM
Ci0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAog
ICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6RmlsdGVyKCJh
YmMiKSwgZmFsc2UpOwogfQpAQCAtNjUxNiwxNiArNjM2MSw5IEBAIFRFU1RfRihGbGFnZmlsZVRl
c3QsIFNldmVyYWxGbGFncykgewogICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAg
IHN0ZDo6c3RyaW5nKCItLSIgR1RFU1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdm
aWxlX3BhdGguY19zdHIoKTsKIAotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5l
eGUiLAotICAgIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0
cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVM
TAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAK
ICAgRmxhZ3MgZXhwZWN0ZWRfZmxhZ3M7CiAgIGV4cGVjdGVkX2ZsYWdzLmJyZWFrX29uX2ZhaWx1
cmUgPSB0cnVlOwpAQCAtNjU0MSwzNCArNjM3OSwzNCBAQCBjbGFzcyBDdXJyZW50VGVzdEluZm9U
ZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgLy8gVGVzdHMgdGhhdCBjdXJyZW50
X3Rlc3RfaW5mbygpIHJldHVybnMgTlVMTCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4KICAgLy8g
dGhlIHRlc3QgY2FzZSBpcyBydW4uCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Cisg
IHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIC8vIFRoZXJlIHNob3VsZCBiZSBu
byB0ZXN0cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuCiAgICAgY29uc3QgVGVzdEluZm8qIHRlc3Rf
aW5mbyA9CiAgICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8o
KTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2luZm8gPT0gTlVMTCkKKyAgICBFWFBFQ1RfVFJVRSh0
ZXN0X2luZm8gPT0gbnVsbHB0cikKICAgICAgICAgPDwgIlRoZXJlIHNob3VsZCBiZSBubyB0ZXN0
cyBydW5uaW5nIGF0IHRoaXMgcG9pbnQuIjsKICAgfQogCiAgIC8vIFRlc3RzIHRoYXQgY3VycmVu
dF90ZXN0X2luZm8oKSByZXR1cm5zIE5VTEwgYWZ0ZXIgdGhlIGxhc3QgdGVzdCBpbgogICAvLyB0
aGUgdGVzdCBjYXNlIGhhcyBydW4uCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7
CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIGNvbnN0IFRlc3RJbmZv
KiB0ZXN0X2luZm8gPQogICAgICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVz
dF9pbmZvKCk7Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9pbmZvID09IE5VTEwpCisgICAgRVhQRUNU
X1RSVUUodGVzdF9pbmZvID09IG51bGxwdHIpCiAgICAgICAgIDw8ICJUaGVyZSBzaG91bGQgYmUg
bm8gdGVzdHMgcnVubmluZyBhdCB0aGlzIHBvaW50LiI7CiAgIH0KIH07CiAKIC8vIFRlc3RzIHRo
YXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5zIFRlc3RJbmZvIGZvciBjdXJyZW50bHkgcnVu
bmluZwogLy8gdGVzdCBieSBjaGVja2luZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFnYWluc3Qg
dGhlIGFjdHVhbCBvbmUuCi1URVNUX0YoQ3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JGaXJz
dFRlc3RJbkFUZXN0Q2FzZSkgeworVEVTVF9GKEN1cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9y
Rmlyc3RUZXN0SW5BVGVzdFN1aXRlKSB7CiAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQog
ICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NF
UlRfVFJVRShOVUxMICE9IHRlc3RfaW5mbykKKyAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSB0ZXN0
X2luZm8pCiAgICAgICA8PCAiVGhlcmUgaXMgYSB0ZXN0IHJ1bm5pbmcgc28gd2Ugc2hvdWxkIGhh
dmUgYSB2YWxpZCBUZXN0SW5mby4iOwotICBFWFBFQ1RfU1RSRVEoIkN1cnJlbnRUZXN0SW5mb1Rl
c3QiLCB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkpCi0gICAgICA8PCAiRXhwZWN0ZWQgdGhl
IG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QgY2FzZS4iOwotICBFWFBFQ1RfU1RS
RVEoIldvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAg
RVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRl
X25hbWUoKSkKKyAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1
bm5pbmcgdGVzdCBzdWl0ZS4iOworICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yRmlyc3RUZXN0SW5B
VGVzdFN1aXRlIiwgdGVzdF9pbmZvLT5uYW1lKCkpCiAgICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5h
bWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3QuIjsKIH0KIApAQCAtNjU3NiwxNCArNjQx
NCwxNCBAQCBURVNUX0YoQ3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JGaXJzdFRlc3RJbkFU
ZXN0Q2FzZSkgewogLy8gdGVzdCBieSBjaGVja2luZyB0aGUgZXhwZWN0ZWQgdGVzdCBuYW1lIGFn
YWluc3QgdGhlIGFjdHVhbCBvbmUuICBXZQogLy8gdXNlIHRoaXMgdGVzdCB0byBzZWUgdGhhdCB0
aGUgVGVzdEluZm8gb2JqZWN0IGFjdHVhbGx5IGNoYW5nZWQgZnJvbQogLy8gdGhlIHByZXZpb3Vz
IGludm9jYXRpb24uCi1URVNUX0YoQ3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRU
ZXN0SW5BVGVzdENhc2UpIHsKK1RFU1RfRihDdXJyZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvclNl
Y29uZFRlc3RJbkFUZXN0U3VpdGUpIHsKICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9CiAg
ICAgVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIEFTU0VS
VF9UUlVFKE5VTEwgIT0gdGVzdF9pbmZvKQorICBBU1NFUlRfVFJVRShudWxscHRyICE9IHRlc3Rf
aW5mbykKICAgICAgIDw8ICJUaGVyZSBpcyBhIHRlc3QgcnVubmluZyBzbyB3ZSBzaG91bGQgaGF2
ZSBhIHZhbGlkIFRlc3RJbmZvLiI7Ci0gIEVYUEVDVF9TVFJFUSgiQ3VycmVudFRlc3RJbmZvVGVz
dCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSkKLSAgICAgIDw8ICJFeHBlY3RlZCB0aGUg
bmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGVzdCBjYXNlLiI7Ci0gIEVYUEVDVF9TVFJF
USgiV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdENhc2UiLCB0ZXN0X2luZm8tPm5hbWUoKSkKKyAg
RVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRl
X25hbWUoKSkKKyAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1
bm5pbmcgdGVzdCBzdWl0ZS4iOworICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yU2Vjb25kVGVzdElu
QVRlc3RTdWl0ZSIsIHRlc3RfaW5mby0+bmFtZSgpKQogICAgICAgPDwgIkV4cGVjdGVkIHRoZSBu
YW1lIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LiI7CiB9CiAKQEAgLTY2MjgsMTIgKzY0
NjYsOCBAQCBURVNUKE5lc3RlZFRlc3RpbmdOYW1lc3BhY2VUZXN0LCBGYWlsdXJlKSB7CiAvLyBz
dWNjZXNzZnVsbHkuCiBjbGFzcyBQcm90ZWN0ZWRGaXh0dXJlTWV0aG9kc1Rlc3QgOiBwdWJsaWMg
VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgVGVzdDo6
U2V0VXAoKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgVGVzdDo6VGVh
ckRvd24oKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBUZXN0OjpTZXRVcCgpOyB9
CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IFRlc3Q6OlRlYXJEb3duKCk7IH0KIH07CiAK
IC8vIFN0cmVhbWluZ0Fzc2VydGlvbnNUZXN0IHRlc3RzIHRoZSBzdHJlYW1pbmcgdmVyc2lvbnMg
b2YgYSByZXByZXNlbnRhdGl2ZQpAQCAtNjgzMSw3ICs2NjY1LDcgQEAgVEVTVChDb2xvcmVkT3V0
cHV0VGVzdCwgVXNlc0NvbG9yc1doZW5TdGRvdXRJc1R0eSkgewogVEVTVChDb2xvcmVkT3V0cHV0
VGVzdCwgVXNlc0NvbG9yc1doZW5UZXJtU3VwcG9ydHNDb2xvcnMpIHsKICAgR1RFU1RfRkxBRyhj
b2xvcikgPSAiYXV0byI7CiAKLSNpZiBHVEVTVF9PU19XSU5ET1dTCisjaWYgR1RFU1RfT1NfV0lO
RE9XUyAmJiAhR1RFU1RfT1NfV0lORE9XU19NSU5HVwogICAvLyBPbiBXaW5kb3dzLCB3ZSBpZ25v
cmUgdGhlIFRFUk0gdmFyaWFibGUgYXMgaXQncyB1c3VhbGx5IG5vdCBzZXQuCiAKICAgU2V0RW52
KCJURVJNIiwgImR1bWIiKTsKQEAgLTcwMDYsMjAgKzY4NDAsMTkgQEAgVEVTVChIYXNGYWlsdXJl
VGVzdCwgV29ya3NPdXRzaWRlT2ZUZXN0Qm9keTIpIHsKIAogY2xhc3MgVGVzdExpc3RlbmVyIDog
cHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogIHB1YmxpYzoKLSAgVGVzdExpc3RlbmVy
KCkgOiBvbl9zdGFydF9jb3VudGVyXyhOVUxMKSwgaXNfZGVzdHJveWVkXyhOVUxMKSB7fQorICBU
ZXN0TGlzdGVuZXIoKSA6IG9uX3N0YXJ0X2NvdW50ZXJfKG51bGxwdHIpLCBpc19kZXN0cm95ZWRf
KG51bGxwdHIpIHt9CiAgIFRlc3RMaXN0ZW5lcihpbnQqIG9uX3N0YXJ0X2NvdW50ZXIsIGJvb2wq
IGlzX2Rlc3Ryb3llZCkKICAgICAgIDogb25fc3RhcnRfY291bnRlcl8ob25fc3RhcnRfY291bnRl
ciksCiAgICAgICAgIGlzX2Rlc3Ryb3llZF8oaXNfZGVzdHJveWVkKSB7fQogCi0gIHZpcnR1YWwg
flRlc3RMaXN0ZW5lcigpIHsKKyAgflRlc3RMaXN0ZW5lcigpIG92ZXJyaWRlIHsKICAgICBpZiAo
aXNfZGVzdHJveWVkXykKICAgICAgICppc19kZXN0cm95ZWRfID0gdHJ1ZTsKICAgfQogCiAgcHJv
dGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSB7Ci0gICAgaWYgKG9uX3N0YXJ0X2NvdW50ZXJfICE9IE5VTEwpCi0g
ICAgICAoKm9uX3N0YXJ0X2NvdW50ZXJfKSsrOworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgeworICAgIGlmIChvbl9zdGFy
dF9jb3VudGVyXyAhPSBudWxscHRyKSAoKm9uX3N0YXJ0X2NvdW50ZXJfKSsrOwogICB9CiAKICBw
cml2YXRlOgpAQCAtNzAzMSw5ICs2ODY0LDkgQEAgY2xhc3MgVGVzdExpc3RlbmVyIDogcHVibGlj
IEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogVEVTVChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0LCBD
b25zdHJ1Y3Rpb25Xb3JrcykgewogICBUZXN0RXZlbnRMaXN0ZW5lcnMgbGlzdGVuZXJzOwogCi0g
IEVYUEVDVF9UUlVFKFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpHZXRSZXBlYXRlcigmbGlz
dGVuZXJzKSAhPSBOVUxMKTsKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0
X3ByaW50ZXIoKSA9PSBOVUxMKTsKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1s
X2dlbmVyYXRvcigpID09IE5VTEwpOworICBFWFBFQ1RfVFJVRShUZXN0RXZlbnRMaXN0ZW5lcnNB
Y2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycykgIT0gbnVsbHB0cik7CisgIEVYUEVDVF9U
UlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkgPT0gbnVsbHB0cik7CisgIEVY
UEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsK
IH0KIAogLy8gVGVzdHMgdGhhdCB0aGUgVGVzdEV2ZW50TGlzdGVuZXJzIGRlc3RydWN0b3IgZGVs
ZXRlcyBhbGwgdGhlIGxpc3RlbmVycyBpdApAQCAtNzA0MiwxMiArNjg3NSwxMiBAQCBURVNUKFRl
c3RFdmVudExpc3RlbmVyc1Rlc3QsIERlc3RydWN0aW9uV29ya3MpIHsKICAgYm9vbCBkZWZhdWx0
X3Jlc3VsdF9wcmludGVyX2lzX2Rlc3Ryb3llZCA9IGZhbHNlOwogICBib29sIGRlZmF1bHRfeG1s
X3ByaW50ZXJfaXNfZGVzdHJveWVkID0gZmFsc2U7CiAgIGJvb2wgZXh0cmFfbGlzdGVuZXJfaXNf
ZGVzdHJveWVkID0gZmFsc2U7Ci0gIFRlc3RMaXN0ZW5lciogZGVmYXVsdF9yZXN1bHRfcHJpbnRl
ciA9IG5ldyBUZXN0TGlzdGVuZXIoCi0gICAgICBOVUxMLCAmZGVmYXVsdF9yZXN1bHRfcHJpbnRl
cl9pc19kZXN0cm95ZWQpOwotICBUZXN0TGlzdGVuZXIqIGRlZmF1bHRfeG1sX3ByaW50ZXIgPSBu
ZXcgVGVzdExpc3RlbmVyKAotICAgICAgTlVMTCwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVz
dHJveWVkKTsKLSAgVGVzdExpc3RlbmVyKiBleHRyYV9saXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVu
ZXIoCi0gICAgICBOVUxMLCAmZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExp
c3RlbmVyKiBkZWZhdWx0X3Jlc3VsdF9wcmludGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIo
bnVsbHB0ciwgJmRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExp
c3RlbmVyKiBkZWZhdWx0X3htbF9wcmludGVyID0KKyAgICAgIG5ldyBUZXN0TGlzdGVuZXIobnVs
bHB0ciwgJmRlZmF1bHRfeG1sX3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKKyAgVGVzdExpc3RlbmVy
KiBleHRyYV9saXN0ZW5lciA9CisgICAgICBuZXcgVGVzdExpc3RlbmVyKG51bGxwdHIsICZleHRy
YV9saXN0ZW5lcl9pc19kZXN0cm95ZWQpOwogCiAgIHsKICAgICBUZXN0RXZlbnRMaXN0ZW5lcnMg
bGlzdGVuZXJzOwpAQCAtNzA4NywyMSArNjkyMCwyMSBAQCBjbGFzcyBTZXF1ZW5jZVRlc3RpbmdM
aXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICAgIDogdmVjdG9y
Xyh2ZWN0b3IpLCBpZF8oaWQpIHt9CiAKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBPblRl
c3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBP
blRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRl
IHsKICAgICB2ZWN0b3JfLT5wdXNoX2JhY2soR2V0RXZlbnREZXNjcmlwdGlvbigiT25UZXN0UHJv
Z3JhbVN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29u
c3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVz
aF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdFByb2dyYW1FbmQiKSk7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVy
YXRpb24qLykgeworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAv
KnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlv
biovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50RGVzY3JpcHRp
b24oIk9uVGVzdEl0ZXJhdGlvblN0YXJ0IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgeworICB2b2lkIE9uVGVz
dEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIG92ZXJyaWRlIHsKICAgICB2ZWN0b3Jf
LT5wdXNoX2JhY2soR2V0RXZlbnREZXNjcmlwdGlvbigiT25UZXN0SXRlcmF0aW9uRW5kIikpOwog
ICB9CiAKQEAgLTcxNzIsNyArNzAwNSw3IEBAIFRFU1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwg
UmVsZWFzZSkgewogICAgIEVYUEVDVF9FUShsaXN0ZW5lciwgbGlzdGVuZXJzLlJlbGVhc2UobGlz
dGVuZXIpKTsKICAgICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxp
c3RlbmVycyktPk9uVGVzdFByb2dyYW1TdGFydCgKICAgICAgICAgKlVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikgPT0g
TlVMTCk7CisgICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpID09IG51
bGxwdHIpOwogICB9CiAgIEVYUEVDVF9FUSgwLCBvbl9zdGFydF9jb3VudGVyKTsKICAgRVhQRUNU
X0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CkBAIC03MTgyLDcgKzcwMTUsNyBAQCBURVNUKFRlc3RFdmVu
dExpc3RlbmVyc1Rlc3QsIFJlbGVhc2UpIHsKIC8vIFRlc3RzIHRoYXQgbm8gZXZlbnRzIGFyZSBm
b3J3YXJkZWQgd2hlbiBldmVudCBmb3J3YXJkaW5nIGlzIGRpc2FibGVkLgogVEVTVChFdmVudExp
c3RlbmVyVGVzdCwgU3VwcHJlc3NFdmVudEZvcndhcmRpbmcpIHsKICAgaW50IG9uX3N0YXJ0X2Nv
dW50ZXIgPSAwOwotICBUZXN0TGlzdGVuZXIqIGxpc3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigm
b25fc3RhcnRfY291bnRlciwgTlVMTCk7CisgIFRlc3RMaXN0ZW5lciogbGlzdGVuZXIgPSBuZXcg
VGVzdExpc3RlbmVyKCZvbl9zdGFydF9jb3VudGVyLCBudWxscHRyKTsKIAogICBUZXN0RXZlbnRM
aXN0ZW5lcnMgbGlzdGVuZXJzOwogICBsaXN0ZW5lcnMuQXBwZW5kKGxpc3RlbmVyKTsKQEAgLTcy
MjMsOSArNzA1Niw5IEBAIFRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfcmVzdWx0X3By
aW50ZXIpIHsKIAogICAvLyBSZXBsYWNpbmcgZGVmYXVsdF9yZXN1bHRfcHJpbnRlciB3aXRoIHNv
bWV0aGluZyBlbHNlIHNob3VsZCByZW1vdmUgaXQKICAgLy8gZnJvbSB0aGUgbGlzdCBhbmQgZGVz
dHJveSBpdC4KLSAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRSZXN1bHRQ
cmludGVyKCZsaXN0ZW5lcnMsIE5VTEwpOworICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6
U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIoJmxpc3RlbmVycywgbnVsbHB0cik7CiAKLSAgRVhQRUNU
X1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgRVhQ
RUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBudWxscHRyKTsK
ICAgRVhQRUNUX1RSVUUoaXNfZGVzdHJveWVkKTsKIAogICAvLyBBZnRlciBicm9hZGNhc3Rpbmcg
YW4gZXZlbnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwgdGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTcy
NDksNyArNzA4Miw3IEBAIFRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFJl
c3VsdFByaW50ZXJXb3JrcykgewogICAgIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXRE
ZWZhdWx0UmVzdWx0UHJpbnRlcigmbGlzdGVuZXJzLCBsaXN0ZW5lcik7CiAKICAgICBFWFBFQ1Rf
RVEobGlzdGVuZXIsIGxpc3RlbmVycy5SZWxlYXNlKGxpc3RlbmVyKSk7Ci0gICAgRVhQRUNUX1RS
VUUobGlzdGVuZXJzLmRlZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBOVUxMKTsKKyAgICBFWFBF
Q1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF9yZXN1bHRfcHJpbnRlcigpID09IG51bGxwdHIpOwog
ICAgIEVYUEVDVF9GQUxTRShpc19kZXN0cm95ZWQpOwogCiAgICAgLy8gQnJvYWRjYXN0aW5nIGV2
ZW50cyBub3cgc2hvdWxkIG5vdCBhZmZlY3QgZGVmYXVsdF9yZXN1bHRfcHJpbnRlci4KQEAgLTcy
ODIsOSArNzExNSw5IEBAIFRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIGRlZmF1bHRfeG1sX2dlbmVy
YXRvcikgewogCiAgIC8vIFJlcGxhY2luZyBkZWZhdWx0X3htbF9nZW5lcmF0b3Igd2l0aCBzb21l
dGhpbmcgZWxzZSBzaG91bGQgcmVtb3ZlIGl0CiAgIC8vIGZyb20gdGhlIGxpc3QgYW5kIGRlc3Ry
b3kgaXQuCi0gIFRlc3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJh
dG9yKCZsaXN0ZW5lcnMsIE5VTEwpOworICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0
RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlzdGVuZXJzLCBudWxscHRyKTsKIAotICBFWFBFQ1RfVFJV
RShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJhdG9yKCkgPT0gTlVMTCk7CisgIEVYUEVDVF9U
UlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0b3IoKSA9PSBudWxscHRyKTsKICAgRVhQ
RUNUX1RSVUUoaXNfZGVzdHJveWVkKTsKIAogICAvLyBBZnRlciBicm9hZGNhc3RpbmcgYW4gZXZl
bnQgdGhlIGNvdW50ZXIgaXMgc3RpbGwgdGhlIHNhbWUsIGluZGljYXRpbmcKQEAgLTczMDgsNyAr
NzE0MSw3IEBAIFRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIFJlbW92aW5nRGVmYXVsdFhtbEdlbmVy
YXRvcldvcmtzKSB7CiAgICAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRY
bWxHZW5lcmF0b3IoJmxpc3RlbmVycywgbGlzdGVuZXIpOwogCiAgICAgRVhQRUNUX0VRKGxpc3Rl
bmVyLCBsaXN0ZW5lcnMuUmVsZWFzZShsaXN0ZW5lcikpOwotICAgIEVYUEVDVF9UUlVFKGxpc3Rl
bmVycy5kZWZhdWx0X3htbF9nZW5lcmF0b3IoKSA9PSBOVUxMKTsKKyAgICBFWFBFQ1RfVFJVRShs
aXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2VuZXJhdG9yKCkgPT0gbnVsbHB0cik7CiAgICAgRVhQRUNU
X0ZBTFNFKGlzX2Rlc3Ryb3llZCk7CiAKICAgICAvLyBCcm9hZGNhc3RpbmcgZXZlbnRzIG5vdyBz
aG91bGQgbm90IGFmZmVjdCBkZWZhdWx0X3htbF9nZW5lcmF0b3IuCkBAIC03MzcxLDk1ICs3MjA0
LDgzIEBAIEdURVNUX1RFU1QoQWx0ZXJuYXRpdmVOYW1lVGVzdCwgV29ya3MpIHsgIC8vIEdURVNU
X1RFU1QgaXMgdGhlIHNhbWUgYXMgVEVTVC4KIAogLy8gVGVzdHMgZm9yIGludGVybmFsIHV0aWxp
dGllcyBuZWNlc3NhcnkgZm9yIGltcGxlbWVudGF0aW9uIG9mIHRoZSB1bml2ZXJzYWwKIC8vIHBy
aW50aW5nLgotLy8gRklYTUU6IEZpbmQgYSBiZXR0ZXIgaG9tZSBmb3IgdGhlbS4KIAogY2xhc3Mg
Q29udmVyc2lvbkhlbHBlckJhc2Uge307CiBjbGFzcyBDb252ZXJzaW9uSGVscGVyRGVyaXZlZCA6
IHB1YmxpYyBDb252ZXJzaW9uSGVscGVyQmFzZSB7fTsKIAotLy8gVGVzdHMgdGhhdCBJc0FQcm90
b2NvbE1lc3NhZ2U8VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotVEVTVChJ
c0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBWYWx1ZUlzQ29tcGlsZVRpbWVDb25zdGFudCkgewotICBH
VEVTVF9DT01QSUxFX0FTU0VSVF8oSXNBUHJvdG9jb2xNZXNzYWdlPFByb3RvY29sTWVzc2FnZT46
OnZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfdHJ1ZSk7Ci0gIEdURVNUX0NP
TVBJTEVfQVNTRVJUXyghSXNBUHJvdG9jb2xNZXNzYWdlPGludD46OnZhbHVlLCBjb25zdF9mYWxz
ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1ZSBpcyB0
cnVlIHdoZW4gVCBpcwotLy8gcHJvdG8yOjpNZXNzYWdlIG9yIGEgc3ViLWNsYXNzIG9mIGl0Lgot
VEVTVChJc0FQcm90b2NvbE1lc3NhZ2VUZXN0LCBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSXNBUHJvdG9j
b2xNZXNzYWdlKSB7Ci0gIEVYUEVDVF9UUlVFKElzQVByb3RvY29sTWVzc2FnZTwgOjpwcm90bzI6
Ok1lc3NhZ2U+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9UUlVFKElzQVByb3RvY29sTWVzc2FnZTxQcm90
b2NvbE1lc3NhZ2U+Ojp2YWx1ZSk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNz
YWdlPFQ+Ojp2YWx1ZSBpcyBmYWxzZSB3aGVuIFQgaXMgbmVpdGhlcgotLy8gUHJvdG9jb2xNZXNz
YWdlIG5vciBhIHN1Yi1jbGFzcyBvZiBpdC4KLVRFU1QoSXNBUHJvdG9jb2xNZXNzYWdlVGVzdCwg
VmFsdWVJc0ZhbHNlV2hlblR5cGVJc05vdEFQcm90b2NvbE1lc3NhZ2UpIHsKLSAgRVhQRUNUX0ZB
TFNFKElzQVByb3RvY29sTWVzc2FnZTxpbnQ+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9GQUxTRShJc0FQ
cm90b2NvbE1lc3NhZ2U8Y29uc3QgQ29udmVyc2lvbkhlbHBlckJhc2U+Ojp2YWx1ZSk7Ci19Ci0K
LS8vIFRlc3RzIHRoYXQgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWwgY29tcGlsZXMgd2hlbiB0aGUg
dHlwZSBhcmd1bWVudHMgYXJlCi0vLyBlcXVhbC4KLVRFU1QoQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWwsIENvbXBpbGVzV2hlblR5cGVzQXJlRXF1YWwpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1
YWw8dm9pZCwgdm9pZD4oKTsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50KiwgaW50Kj4o
KTsKLX0KLQotLy8gVGVzdHMgdGhhdCBSZW1vdmVSZWZlcmVuY2UgZG9lcyBub3QgYWZmZWN0IG5v
bi1yZWZlcmVuY2UgdHlwZXMuCi1URVNUKFJlbW92ZVJlZmVyZW5jZVRlc3QsIERvZXNOb3RBZmZl
Y3ROb25SZWZlcmVuY2VUeXBlKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCwgUmVt
b3ZlUmVmZXJlbmNlPGludD46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNv
bnN0IGNoYXIsIFJlbW92ZVJlZmVyZW5jZTxjb25zdCBjaGFyPjo6dHlwZT4oKTsKLX0KLQotLy8g
VGVzdHMgdGhhdCBSZW1vdmVSZWZlcmVuY2UgcmVtb3ZlcyByZWZlcmVuY2UgZnJvbSByZWZlcmVu
Y2UgdHlwZXMuCi1URVNUKFJlbW92ZVJlZmVyZW5jZVRlc3QsIFJlbW92ZXNSZWZlcmVuY2UpIHsK
LSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50LCBSZW1vdmVSZWZlcmVuY2U8aW50Jj46OnR5
cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXIsIFJlbW92ZVJlZmVy
ZW5jZTxjb25zdCBjaGFyJj46OnR5cGU+KCk7Ci19CitzdHJ1Y3QgSGFzRGVidWdTdHJpbmdNZXRo
b2RzIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQor
ICBzdGQ6OnN0cmluZyBTaG9ydERlYnVnU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KK307
CiAKLS8vIFRlc3RzIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfLgorc3RydWN0IEluaGVyaXRzRGVi
dWdTdHJpbmdNZXRob2RzIDogcHVibGljIEhhc0RlYnVnU3RyaW5nTWV0aG9kcyB7fTsKIAotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlUmVm
ZXJlbmNlKCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JF
RkVSRU5DRV8oVDIpPigpOwotfQorc3RydWN0IFdyb25nVHlwZURlYnVnU3RyaW5nTWV0aG9kIHsK
KyAgc3RkOjpzdHJpbmcgRGVidWdTdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorICBpbnQg
U2hvcnREZWJ1Z1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIDE7IH0KK307CiAKLVRFU1QoUmVtb3Zl
UmVmZXJlbmNlVGVzdCwgTWFjcm9WZXJzaW9uKSB7Ci0gIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5j
ZTxpbnQsIGludD4oKTsKLSAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNlPGNvbnN0IGNoYXIsIGNv
bnN0IGNoYXImPigpOwotfQorc3RydWN0IE5vdENvbnN0RGVidWdTdHJpbmdNZXRob2QgeworICBz
dGQ6OnN0cmluZyBEZWJ1Z1N0cmluZygpIHsgcmV0dXJuICIiOyB9CisgIHN0ZDo6c3RyaW5nIFNo
b3J0RGVidWdTdHJpbmcoKSBjb25zdCB7IHJldHVybiAiIjsgfQorfTsKIAorc3RydWN0IE1pc3Np
bmdEZWJ1Z1N0cmluZ01ldGhvZCB7CisgIHN0ZDo6c3RyaW5nIERlYnVnU3RyaW5nKCkgeyByZXR1
cm4gIiI7IH0KK307CiAKLS8vIFRlc3RzIHRoYXQgUmVtb3ZlQ29uc3QgZG9lcyBub3QgYWZmZWN0
IG5vbi1jb25zdCB0eXBlcy4KLVRFU1QoUmVtb3ZlQ29uc3RUZXN0LCBEb2VzTm90QWZmZWN0Tm9u
Q29uc3RUeXBlKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCwgUmVtb3ZlQ29uc3Q8
aW50Pjo6dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8Y2hhciYsIFJlbW92ZUNv
bnN0PGNoYXImPjo6dHlwZT4oKTsKK3N0cnVjdCBJbmNvbXBsZXRlVHlwZTsKKworLy8gVGVzdHMg
dGhhdCBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGEgY29t
cGlsZS10aW1lCisvLyBjb25zdGFudC4KK1RFU1QoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVn
U3RyaW5nVGVzdCwgVmFsdWVJc0NvbXBpbGVUaW1lQ29uc3RhbnQpIHsKKyAgR1RFU1RfQ09NUElM
RV9BU1NFUlRfKAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPEhhc0Rl
YnVnU3RyaW5nTWV0aG9kcz46OnZhbHVlLAorICAgICAgY29uc3RfdHJ1ZSk7CisgIEdURVNUX0NP
TVBJTEVfQVNTRVJUXygKKyAgICAgIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxJ
bmhlcml0c0RlYnVnU3RyaW5nTWV0aG9kcz46OnZhbHVlLAorICAgICAgY29uc3RfdHJ1ZSk7Cisg
IEdURVNUX0NPTVBJTEVfQVNTRVJUXyhIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW5oZXJpdHNEZWJ1Z1N0cmluZ01l
dGhvZHM+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X3RydWUpOworICBH
VEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVn
U3RyaW5nPFdyb25nVHlwZURlYnVnU3RyaW5nTWV0aG9kPjo6dmFsdWUsCisgICAgICBjb25zdF9m
YWxzZSk7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXygKKyAgICAgICFIYXNEZWJ1Z1N0cmluZ0Fu
ZFNob3J0RGVidWdTdHJpbmc8Tm90Q29uc3REZWJ1Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAg
ICAgY29uc3RfZmFsc2UpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVi
dWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPE1pc3NpbmdEZWJ1Z1N0cmluZ01ldGhvZD46OnZh
bHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAg
ICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPEluY29tcGxldGVUeXBlPjo6dmFs
dWUsIGNvbnN0X2ZhbHNlKTsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKCFIYXNEZWJ1Z1N0cmlu
Z0FuZFNob3J0RGVidWdTdHJpbmc8aW50Pjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdF9mYWxzZSk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgUmVtb3ZlQ29uc3QgcmVtb3ZlcyBj
b25zdCBmcm9tIGNvbnN0IHR5cGVzLgotVEVTVChSZW1vdmVDb25zdFRlc3QsIFJlbW92ZXNDb25z
dCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQsIFJlbW92ZUNvbnN0PGNvbnN0IGlu
dD46OnR5cGU+KCk7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNoYXJbMl0sIFJlbW92ZUNv
bnN0PGNvbnN0IGNoYXJbMl0+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxj
aGFyWzJdWzNdLCBSZW1vdmVDb25zdDxjb25zdCBjaGFyWzJdWzNdPjo6dHlwZT4oKTsKKy8vIFRl
c3RzIHRoYXQgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyB0
cnVlIHdoZW4gVCBoYXMKKy8vIG5lZWRlZCBtZXRob2RzLgorVEVTVChIYXNEZWJ1Z1N0cmluZ0Fu
ZFNob3J0RGVidWdTdHJpbmdUZXN0LAorICAgICBWYWx1ZUlzVHJ1ZVdoZW5UeXBlSGFzRGVidWdT
dHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nKSB7CisgIEVYUEVDVF9UUlVFKAorICAgICAgSGFzRGVi
dWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzPjo6
dmFsdWUpOwogfQogCi0vLyBUZXN0cyBHVEVTVF9SRU1PVkVfQ09OU1RfLgotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotdm9pZCBUZXN0R1Rlc3RSZW1vdmVDb25zdCgpIHsK
LSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIEdURVNUX1JFTU9WRV9DT05TVF8oVDIpPigp
OwotfQotCi1URVNUKFJlbW92ZUNvbnN0VGVzdCwgTWFjcm9WZXJzaW9uKSB7Ci0gIFRlc3RHVGVz
dFJlbW92ZUNvbnN0PGludCwgaW50PigpOwotICBUZXN0R1Rlc3RSZW1vdmVDb25zdDxkb3VibGUm
LCBkb3VibGUmPigpOwotICBUZXN0R1Rlc3RSZW1vdmVDb25zdDxjaGFyLCBjb25zdCBjaGFyPigp
OworLy8gVGVzdHMgdGhhdCBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZh
bHVlIGlzIGZhbHNlIHdoZW4gVAorLy8gZG9lc24ndCBoYXZlIG5lZWRlZCBtZXRob2RzLgorVEVT
VChIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmdUZXN0LAorICAgICBWYWx1ZUlzRmFs
c2VXaGVuVHlwZUlzTm90QVByb3RvY29sTWVzc2FnZSkgeworICBFWFBFQ1RfRkFMU0UoSGFzRGVi
dWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPGludD46OnZhbHVlKTsKKyAgRVhQRUNUX0ZBTFNF
KAorICAgICAgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPGNvbnN0IENvbnZlcnNp
b25IZWxwZXJCYXNlPjo6dmFsdWUpOwogfQogCiAvLyBUZXN0cyBHVEVTVF9SRU1PVkVfUkVGRVJF
TkNFX0FORF9DT05TVF8uCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CiB2
b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZUFuZENvbnN0KCkgewotICBDb21waWxlQXNzZXJ0
VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfKFQyKT4oKTsK
KyAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0Vf
QU5EX0NPTlNUXyhUMik+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAiR1RFU1RfUkVNT1ZFX1JF
RkVSRU5DRV9BTkRfQ09OU1RfIGZhaWxlZC4iKTsKIH0KIAogVEVTVChSZW1vdmVSZWZlcmVuY2VU
b0NvbnN0VGVzdCwgV29ya3MpIHsKQEAgLTc0NzAsMzUgKzcyOTEsMTIgQEAgVEVTVChSZW1vdmVS
ZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKICAgVGVzdEdUZXN0UmVtb3ZlUmVmZXJlbmNl
QW5kQ29uc3Q8Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqPigpOwogfQogCi0vLyBUZXN0cyB0aGF0
IEFkZFJlZmVyZW5jZSBkb2VzIG5vdCBhZmZlY3QgcmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRS
ZWZlcmVuY2VUZXN0LCBEb2VzTm90QWZmZWN0UmVmZXJlbmNlVHlwZSkgewotICBDb21waWxlQXNz
ZXJ0VHlwZXNFcXVhbDxpbnQmLCBBZGRSZWZlcmVuY2U8aW50Jj46OnR5cGU+KCk7Ci0gIENvbXBp
bGVBc3NlcnRUeXBlc0VxdWFsPGNvbnN0IGNoYXImLCBBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciY+
Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyB0aGF0IEFkZFJlZmVyZW5jZSBhZGRzIHJlZmVyZW5j
ZSB0byBub24tcmVmZXJlbmNlIHR5cGVzLgotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBBZGRzUmVm
ZXJlbmNlKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCYsIEFkZFJlZmVyZW5jZTxp
bnQ+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyJiwgQWRk
UmVmZXJlbmNlPGNvbnN0IGNoYXI+Ojp0eXBlPigpOwotfQotCi0vLyBUZXN0cyBHVEVTVF9BRERf
UkVGRVJFTkNFXy4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLXZvaWQg
VGVzdEdUZXN0QWRkUmVmZXJlbmNlKCkgewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwg
R1RFU1RfQUREX1JFRkVSRU5DRV8oVDIpPigpOwotfQotCi1URVNUKEFkZFJlZmVyZW5jZVRlc3Qs
IE1hY3JvVmVyc2lvbikgewotICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8aW50JiwgaW50PigpOwot
ICBUZXN0R1Rlc3RBZGRSZWZlcmVuY2U8Y29uc3QgY2hhciYsIGNvbnN0IGNoYXImPigpOwotfQot
CiAvLyBUZXN0cyBHVEVTVF9SRUZFUkVOQ0VfVE9fQ09OU1RfLgogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyPgogdm9pZCBUZXN0R1Rlc3RSZWZlcmVuY2VUb0NvbnN0KCkgewot
ICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxUMSwgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhU
Mik+KCk7CisgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPFQxLCBHVEVTVF9SRUZFUkVOQ0Vf
VE9fQ09OU1RfKFQyKT46OnZhbHVlLAorICAgICAgICAgICAgICAgICJHVEVTVF9SRUZFUkVOQ0Vf
VE9fQ09OU1RfIGZhaWxlZC4iKTsKIH0KIAogVEVTVChHVGVzdFJlZmVyZW5jZVRvQ29uc3RUZXN0
LCBXb3JrcykgewpAQCAtNzUwOCwzNSArNzMwNiw2IEBAIFRFU1QoR1Rlc3RSZWZlcmVuY2VUb0Nv
bnN0VGVzdCwgV29ya3MpIHsKICAgVGVzdEdUZXN0UmVmZXJlbmNlVG9Db25zdDxjb25zdCBzdGQ6
OnN0cmluZyYsIGNvbnN0IHN0ZDo6c3RyaW5nJj4oKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBJbXBs
aWNpdGx5Q29udmVydGlibGU8VDEsIFQyPjo6dmFsdWUgaXMgYSBjb21waWxlLXRpbWUgY29uc3Rh
bnQuCi1URVNUKEltcGxpY2l0bHlDb252ZXJ0aWJsZVRlc3QsIFZhbHVlSXNDb21waWxlVGltZUNv
bnN0YW50KSB7Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXygoSW1wbGljaXRseUNvbnZlcnRpYmxl
PGludCwgaW50Pjo6dmFsdWUpLCBjb25zdF90cnVlKTsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KCghSW1wbGljaXRseUNvbnZlcnRpYmxlPHZvaWQqLCBpbnQqPjo6dmFsdWUpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RfZmFsc2UpOwotfQotCi0vLyBUZXN0cyB0aGF0IEltcGxpY2l0
bHlDb252ZXJ0aWJsZTxUMSwgVDI+Ojp2YWx1ZSBpcyB0cnVlIHdoZW4gVDEgY2FuCi0vLyBiZSBp
bXBsaWNpdGx5IGNvbnZlcnRlZCB0byBUMi4KLVRFU1QoSW1wbGljaXRseUNvbnZlcnRpYmxlVGVz
dCwgVmFsdWVJc1RydWVXaGVuQ29udmVydGlibGUpIHsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0
bHlDb252ZXJ0aWJsZTxpbnQsIGRvdWJsZT46OnZhbHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBs
aWNpdGx5Q29udmVydGlibGU8ZG91YmxlLCBpbnQ+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgo
SW1wbGljaXRseUNvbnZlcnRpYmxlPGludCosIHZvaWQqPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RS
VUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQqLCBjb25zdCBpbnQqPjo6dmFsdWUpKTsKLSAg
RVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxDb252ZXJzaW9uSGVscGVyRGVyaXZl
ZCYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29udmVyc2lv
bkhlbHBlckJhc2UmPjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0
aWJsZTxjb25zdCBDb252ZXJzaW9uSGVscGVyQmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb252ZXJzaW9uSGVscGVyQmFzZT46OnZhbHVlKSk7Ci19Ci0KLS8vIFRl
c3RzIHRoYXQgSW1wbGljaXRseUNvbnZlcnRpYmxlPFQxLCBUMj46OnZhbHVlIGlzIGZhbHNlIHdo
ZW4gVDEKLS8vIGNhbm5vdCBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBUMi4KLVRFU1QoSW1w
bGljaXRseUNvbnZlcnRpYmxlVGVzdCwgVmFsdWVJc0ZhbHNlV2hlbk5vdENvbnZlcnRpYmxlKSB7
Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGRvdWJsZSwgaW50Kj46OnZh
bHVlKSk7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPHZvaWQqLCBpbnQq
Pjo6dmFsdWUpKTsKLSAgRVhQRUNUX0ZBTFNFKChJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3Qg
aW50KiwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRp
YmxlPENvbnZlcnNpb25IZWxwZXJCYXNlJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29udmVyc2lvbkhlbHBlckRlcml2ZWQmPjo6dmFsdWUpKTsKLX0KIAogLy8gVGVz
dHMgSXNDb250YWluZXJUZXN0LgogCkBAIC03NTU1LDcgKzczMjQsNiBAQCBURVNUKElzQ29udGFp
bmVyVGVzdFRlc3QsIFdvcmtzRm9yQ29udGFpbmVyKSB7CiAgICAgICAgICAgICBzaXplb2YoSXND
b250YWluZXJUZXN0PHN0ZDo6bWFwPGludCwgZG91YmxlPiA+KDApKSk7CiB9CiAKLSNpZiBHVEVT
VF9MQU5HX0NYWDExCiBzdHJ1Y3QgQ29uc3RPbmx5Q29udGFpbmVyV2l0aFBvaW50ZXJJdGVyYXRv
ciB7CiAgIHVzaW5nIGNvbnN0X2l0ZXJhdG9yID0gaW50KjsKICAgY29uc3RfaXRlcmF0b3IgYmVn
aW4oKSBjb25zdDsKQEAgLTc1NzcsNyArNzM0NSw2IEBAIFRFU1QoSXNDb250YWluZXJUZXN0VGVz
dCwgQ29uc3RPbmx5Q29udGFpbmVyKSB7CiAgIEVYUEVDVF9FUShzaXplb2YoSXNDb250YWluZXIp
LAogICAgICAgICAgICAgc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxDb25zdE9ubHlDb250YWluZXJX
aXRoQ2xhc3NJdGVyYXRvcj4oMCkpKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQog
CiAvLyBUZXN0cyBJc0hhc2hUYWJsZS4KIHN0cnVjdCBBSGFzaFRhYmxlIHsKQEAgLTc1OTAsMTMg
KzczNTcsOCBAQCBzdHJ1Y3QgTm90UmVhbGx5QUhhc2hUYWJsZSB7CiBURVNUKElzSGFzaFRhYmxl
LCBCYXNpYykgewogICBFWFBFQ1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8
QUhhc2hUYWJsZT46OnZhbHVlKTsKICAgRVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OmludGVybmFsOjpJ
c0hhc2hUYWJsZTxOb3RSZWFsbHlBSGFzaFRhYmxlPjo6dmFsdWUpOwotI2lmIEdURVNUX0xBTkdf
Q1hYMTEKICAgRVhQRUNUX0ZBTFNFKHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxzdGQ6
OnZlY3RvcjxpbnQ+Pjo6dmFsdWUpOwogICBFWFBFQ1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6
SXNIYXNoVGFibGU8c3RkOjp1bm9yZGVyZWRfc2V0PGludD4+Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8v
IEdURVNUX0xBTkdfQ1hYMTEKLSNpZiBHVEVTVF9IQVNfSEFTSF9TRVRfCi0gIEVYUEVDVF9UUlVF
KHRlc3Rpbmc6OmludGVybmFsOjpJc0hhc2hUYWJsZTxfX2dudV9jeHg6Omhhc2hfc2V0PGludD4+
Ojp2YWx1ZSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19IQVNIX1NFVF8KIH0KIAogLy8gVGVzdHMg
QXJyYXlFcSgpLgpAQCAtNzc0Niw2ICs3NTA4LDIyMSBAQCBURVNUKE5hdGl2ZUFycmF5VGVzdCwg
V29ya3NGb3JUd29EaW1lbnNpb25hbEFycmF5KSB7CiAgIEVYUEVDVF9FUShhLCBuYS5iZWdpbigp
KTsKIH0KIAorLy8gSW5kZXhTZXF1ZW5jZQorVEVTVChJbmRleFNlcXVlbmNlLCBNYWtlSW5kZXhT
ZXF1ZW5jZSkgeworICB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6SW5kZXhTZXF1ZW5jZTsKKyAg
dXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6Ok1ha2VJbmRleFNlcXVlbmNlOworICBFWFBFQ1RfVFJV
RSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8SW5kZXhTZXF1ZW5jZTw+LCBNYWtlSW5kZXhTZXF1ZW5j
ZTwwPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2Ft
ZTxJbmRleFNlcXVlbmNlPDA+LCBNYWtlSW5kZXhTZXF1ZW5jZTwxPjo6dHlwZT46OnZhbHVlKSk7
CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDAsIDE+
LCBNYWtlSW5kZXhTZXF1ZW5jZTwyPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKCgK
KyAgICAgIHN0ZDo6aXNfc2FtZTxJbmRleFNlcXVlbmNlPDAsIDEsIDI+LCBNYWtlSW5kZXhTZXF1
ZW5jZTwzPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVFKAorICAgICAgKHN0ZDo6aXNf
YmFzZV9vZjxJbmRleFNlcXVlbmNlPDAsIDEsIDI+LCBNYWtlSW5kZXhTZXF1ZW5jZTwzPj46OnZh
bHVlKSk7Cit9CisKKy8vIEVsZW1Gcm9tTGlzdAorVEVTVChFbGVtRnJvbUxpc3QsIEJhc2ljKSB7
CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpFbGVtRnJvbUxpc3Q7CisgIEVYUEVDVF9UUlVF
KAorICAgICAgKHN0ZDo6aXNfc2FtZTxpbnQsIEVsZW1Gcm9tTGlzdDwwLCBpbnQsIGRvdWJsZSwg
Y2hhcj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3Nh
bWU8ZG91YmxlLCBFbGVtRnJvbUxpc3Q8MSwgaW50LCBkb3VibGUsIGNoYXI+Ojp0eXBlPjo6dmFs
dWUpKTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICAoc3RkOjppc19zYW1lPGNoYXIsIEVsZW1Gcm9t
TGlzdDwyLCBpbnQsIGRvdWJsZSwgY2hhcj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJV
RSgoCisgICAgICBzdGQ6OmlzX3NhbWU8Y2hhciwgRWxlbUZyb21MaXN0PDcsIGludCwgaW50LCBp
bnQsIGludCwgaW50LCBpbnQsIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhciwgaW50LCBpbnQsIGludCwgaW50Pjo6dHlwZT46OnZhbHVlKSk7Cit9CisKKy8v
IEZsYXRUdXBsZQorVEVTVChGbGF0VHVwbGUsIEJhc2ljKSB7CisgIHVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFy
Kj4gdHVwbGUgPSB7fTsKKyAgRVhQRUNUX0VRKDAsIHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNU
X0VRKDAuMCwgdHVwbGUuR2V0PDE+KCkpOworICBFWFBFQ1RfRVEobnVsbHB0ciwgdHVwbGUuR2V0
PDI+KCkpOworCisgIHR1cGxlID0gRmxhdFR1cGxlPGludCwgZG91YmxlLCBjb25zdCBjaGFyKj4o
CisgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sIDcsIDMu
MiwgIkZvbyIpOworICBFWFBFQ1RfRVEoNywgdHVwbGUuR2V0PDA+KCkpOworICBFWFBFQ1RfRVEo
My4yLCB0dXBsZS5HZXQ8MT4oKSk7CisgIEVYUEVDVF9FUShzdGQ6OnN0cmluZygiRm9vIiksIHR1
cGxlLkdldDwyPigpKTsKKworICB0dXBsZS5HZXQ8MT4oKSA9IDUuMTsKKyAgRVhQRUNUX0VRKDUu
MSwgdHVwbGUuR2V0PDE+KCkpOworfQorCituYW1lc3BhY2Ugeworc3RkOjpzdHJpbmcgQWRkSW50
VG9TdHJpbmcoaW50IGksIGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSB7CisgIHJldHVybiBzICsgc3Rk
Ojp0b19zdHJpbmcoaSk7Cit9Cit9ICAvLyBuYW1lc3BhY2UKKworVEVTVChGbGF0VHVwbGUsIEFw
cGx5KSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisKKyAgRmxhdFR1
cGxlPGludCwgc3RkOjpzdHJpbmc+IHR1cGxle3Rlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGVD
b25zdHJ1Y3RUYWd7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsICJI
ZWxsbyJ9OworCisgIC8vIExhbWJkYS4KKyAgRVhQRUNUX1RSVUUodHVwbGUuQXBwbHkoW10oaW50
IGksIGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSAtPiBib29sIHsKKyAgICByZXR1cm4gaSA9PSBzdGF0
aWNfY2FzdDxpbnQ+KHMuc2l6ZSgpKTsKKyAgfSkpOworCisgIC8vIEZ1bmN0aW9uLgorICBFWFBF
Q1RfRVEodHVwbGUuQXBwbHkoQWRkSW50VG9TdHJpbmcpLCAiSGVsbG81Iik7CisKKyAgLy8gTXV0
YXRpbmcgb3BlcmF0aW9ucy4KKyAgdHVwbGUuQXBwbHkoW10oaW50JiBpLCBzdGQ6OnN0cmluZyYg
cykgeworICAgICsraTsKKyAgICBzICs9IHM7CisgIH0pOworICBFWFBFQ1RfRVEodHVwbGUuR2V0
PDA+KCksIDYpOworICBFWFBFQ1RfRVEodHVwbGUuR2V0PDE+KCksICJIZWxsb0hlbGxvIik7Cit9
CisKK3N0cnVjdCBDb25zdHJ1Y3Rpb25Db3VudGluZyB7CisgIENvbnN0cnVjdGlvbkNvdW50aW5n
KCkgeyArK2RlZmF1bHRfY3Rvcl9jYWxsczsgfQorICB+Q29uc3RydWN0aW9uQ291bnRpbmcoKSB7
ICsrZHRvcl9jYWxsczsgfQorICBDb25zdHJ1Y3Rpb25Db3VudGluZyhjb25zdCBDb25zdHJ1Y3Rp
b25Db3VudGluZyYpIHsgKytjb3B5X2N0b3JfY2FsbHM7IH0KKyAgQ29uc3RydWN0aW9uQ291bnRp
bmcoQ29uc3RydWN0aW9uQ291bnRpbmcmJikgbm9leGNlcHQgeyArK21vdmVfY3Rvcl9jYWxsczsg
fQorICBDb25zdHJ1Y3Rpb25Db3VudGluZyYgb3BlcmF0b3I9KGNvbnN0IENvbnN0cnVjdGlvbkNv
dW50aW5nJikgeworICAgICsrY29weV9hc3NpZ25tZW50X2NhbGxzOworICAgIHJldHVybiAqdGhp
czsKKyAgfQorICBDb25zdHJ1Y3Rpb25Db3VudGluZyYgb3BlcmF0b3I9KENvbnN0cnVjdGlvbkNv
dW50aW5nJiYpIG5vZXhjZXB0IHsKKyAgICArK21vdmVfYXNzaWdubWVudF9jYWxsczsKKyAgICBy
ZXR1cm4gKnRoaXM7CisgIH0KKworICBzdGF0aWMgdm9pZCBSZXNldCgpIHsKKyAgICBkZWZhdWx0
X2N0b3JfY2FsbHMgPSAwOworICAgIGR0b3JfY2FsbHMgPSAwOworICAgIGNvcHlfY3Rvcl9jYWxs
cyA9IDA7CisgICAgbW92ZV9jdG9yX2NhbGxzID0gMDsKKyAgICBjb3B5X2Fzc2lnbm1lbnRfY2Fs
bHMgPSAwOworICAgIG1vdmVfYXNzaWdubWVudF9jYWxscyA9IDA7CisgIH0KKworICBzdGF0aWMg
aW50IGRlZmF1bHRfY3Rvcl9jYWxsczsKKyAgc3RhdGljIGludCBkdG9yX2NhbGxzOworICBzdGF0
aWMgaW50IGNvcHlfY3Rvcl9jYWxsczsKKyAgc3RhdGljIGludCBtb3ZlX2N0b3JfY2FsbHM7Cisg
IHN0YXRpYyBpbnQgY29weV9hc3NpZ25tZW50X2NhbGxzOworICBzdGF0aWMgaW50IG1vdmVfYXNz
aWdubWVudF9jYWxsczsKK307CisKK2ludCBDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9j
dG9yX2NhbGxzID0gMDsKK2ludCBDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZHRvcl9jYWxscyA9IDA7
CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscyA9IDA7CitpbnQgQ29u
c3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9u
Q291bnRpbmc6OmNvcHlfYXNzaWdubWVudF9jYWxscyA9IDA7CitpbnQgQ29uc3RydWN0aW9uQ291
bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscyA9IDA7CisKK1RFU1QoRmxhdFR1cGxlLCBDb25z
dHJ1Y3RvckNhbGxzKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVwbGU7CisK
KyAgLy8gRGVmYXVsdCBjb25zdHJ1Y3Rpb24uCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNl
dCgpOworICB7IEZsYXRUdXBsZTxDb25zdHJ1Y3Rpb25Db3VudGluZz4gdHVwbGU7IH0KKyAgRVhQ
RUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMsIDEpOworICBF
WFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDEpOworICBFWFBFQ1Rf
RVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9F
UShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VR
KENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBF
Q1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxscywgMCk7CisK
KyAgLy8gQ29weSBjb25zdHJ1Y3Rpb24uCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgp
OworICB7CisgICAgQ29uc3RydWN0aW9uQ291bnRpbmcgZWxlbTsKKyAgICBGbGF0VHVwbGU8Q29u
c3RydWN0aW9uQ291bnRpbmc+IHR1cGxleworICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6Rmxh
dFR1cGxlQ29uc3RydWN0VGFne30sIGVsZW19OworICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rp
b25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVj
dGlvbkNvdW50aW5nOjpkdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNv
dW50aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291
bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3Vu
dGluZzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlv
bkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIE1vdmUgY29uc3Ry
dWN0aW9uLgorICBDb25zdHJ1Y3Rpb25Db3VudGluZzo6UmVzZXQoKTsKKyAgeworICAgIEZsYXRU
dXBsZTxDb25zdHJ1Y3Rpb25Db3VudGluZz4gdHVwbGV7CisgICAgICAgIHRlc3Rpbmc6OmludGVy
bmFsOjpGbGF0VHVwbGVDb25zdHJ1Y3RUYWd7fSwgQ29uc3RydWN0aW9uQ291bnRpbmd7fX07Cisg
IH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkZWZhdWx0X2N0b3JfY2FsbHMs
IDEpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMsIDIpOwor
ICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfY3Rvcl9jYWxscywgMCk7Cisg
IEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9jdG9yX2NhbGxzLCAxKTsKKyAg
RVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2lnbm1lbnRfY2FsbHMsIDAp
OworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfYXNzaWdubWVudF9jYWxs
cywgMCk7CisKKyAgLy8gQ29weSBhc3NpZ25tZW50LgorICAvLyBUT0RPKG9mYXRzKTogaXQgc2hv
dWxkIGJlIHRlc3RpbmcgYXNzaWdubWVudCBvcGVyYXRvciBvZiBGbGF0VHVwbGUsIG5vdCBpdHMK
KyAgLy8gZWxlbWVudHMKKyAgQ29uc3RydWN0aW9uQ291bnRpbmc6OlJlc2V0KCk7CisgIHsKKyAg
ICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291bnRpbmc+IHR1cGxlOworICAgIENvbnN0cnVjdGlv
bkNvdW50aW5nIGVsZW07CisgICAgdHVwbGUuR2V0PDA+KCkgPSBlbGVtOworICB9CisgIEVYUEVD
VF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAyKTsKKyAgRVhQ
RUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VR
KENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEo
Q29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShD
b25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAxKTsKKyAgRVhQRUNU
X0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisg
IC8vIE1vdmUgYXNzaWdubWVudC4KKyAgLy8gVE9ETyhvZmF0cyk6IGl0IHNob3VsZCBiZSB0ZXN0
aW5nIGFzc2lnbm1lbnQgb3BlcmF0b3Igb2YgRmxhdFR1cGxlLCBub3QgaXRzCisgIC8vIGVsZW1l
bnRzCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7CisgICAgRmxhdFR1cGxl
PENvbnN0cnVjdGlvbkNvdW50aW5nPiB0dXBsZTsKKyAgICB0dXBsZS5HZXQ8MD4oKSA9IENvbnN0
cnVjdGlvbkNvdW50aW5ne307CisgIH0KKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5n
OjpkZWZhdWx0X2N0b3JfY2FsbHMsIDIpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRp
bmc6OmR0b3JfY2FsbHMsIDIpOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNv
cHlfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92
ZV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5
X2Fzc2lnbm1lbnRfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6
Om1vdmVfYXNzaWdubWVudF9jYWxscywgMSk7CisKKyAgQ29uc3RydWN0aW9uQ291bnRpbmc6OlJl
c2V0KCk7Cit9CisKK1RFU1QoRmxhdFR1cGxlLCBNYW55VHlwZXMpIHsKKyAgdXNpbmcgdGVzdGlu
Zzo6aW50ZXJuYWw6OkZsYXRUdXBsZTsKKworICAvLyBJbnN0YW50aWF0ZSBGbGF0VHVwbGUgd2l0
aCAyNTcgaW50cy4KKyAgLy8gVGVzdHMgc2hvdyB0aGF0IHdlIGNhbiBkbyBpdCB3aXRoIHRob3Vz
YW5kcyBvZiBlbGVtZW50cywgYnV0IHZlcnkgbG9uZworICAvLyBjb21waWxlIHRpbWVzIG1ha2Vz
IGl0IHVudXN1aXRhYmxlIGZvciB0aGlzIHRlc3QuCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVf
SU5UOCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwKKyNkZWZpbmUgR1RF
U1RfRkxBVF9UVVBMRV9JTlQxNiBHVEVTVF9GTEFUX1RVUExFX0lOVDggR1RFU1RfRkxBVF9UVVBM
RV9JTlQ4CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UMzIgR1RFU1RfRkxBVF9UVVBMRV9J
TlQxNiBHVEVTVF9GTEFUX1RVUExFX0lOVDE2CisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5U
NjQgR1RFU1RfRkxBVF9UVVBMRV9JTlQzMiBHVEVTVF9GTEFUX1RVUExFX0lOVDMyCisjZGVmaW5l
IEdURVNUX0ZMQVRfVFVQTEVfSU5UMTI4IEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQgR1RFU1RfRkxB
VF9UVVBMRV9JTlQ2NAorI2RlZmluZSBHVEVTVF9GTEFUX1RVUExFX0lOVDI1NiBHVEVTVF9GTEFU
X1RVUExFX0lOVDEyOCBHVEVTVF9GTEFUX1RVUExFX0lOVDEyOAorCisgIC8vIExldCdzIG1ha2Ug
c3VyZSB0aGF0IHdlIGNhbiBoYXZlIGEgdmVyeSBsb25nIGxpc3Qgb2YgdHlwZXMgd2l0aG91dCBi
bG93aW5nCisgIC8vIHVwIHRoZSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIGRlcHRoLgorICBGbGF0
VHVwbGU8R1RFU1RfRkxBVF9UVVBMRV9JTlQyNTYgaW50PiB0dXBsZTsKKworICB0dXBsZS5HZXQ8
MD4oKSA9IDc7CisgIHR1cGxlLkdldDw5OT4oKSA9IDE3OworICB0dXBsZS5HZXQ8MjU2PigpID0g
MTAwMDsKKyAgRVhQRUNUX0VRKDcsIHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDE3LCB0
dXBsZS5HZXQ8OTk+KCkpOworICBFWFBFQ1RfRVEoMTAwMCwgdHVwbGUuR2V0PDI1Nj4oKSk7Cit9
CisKIC8vIFRlc3RzIFNraXBQcmVmaXgoKS4KIAogVEVTVChTa2lwUHJlZml4VGVzdCwgU2tpcHNX
aGVuUHJlZml4TWF0Y2hlcykgewpAQCAtNzc3MywyMyArNzc1MCwzNSBAQCBURVNUKFNraXBQcmVm
aXhUZXN0LCBEb2VzTm90U2tpcFdoZW5QcmVmaXhEb2VzTm90TWF0Y2gpIHsKIH0KIAogLy8gVGVz
dHMgYWRfaG9jX3Rlc3RfcmVzdWx0KCkuCitURVNUKEFkSG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9j
VGVzdFJlc3VsdEZvclVuaXRUZXN0RG9lc05vdFNob3dGYWlsdXJlKSB7CisgIGNvbnN0IHRlc3Rp
bmc6OlRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0KKyAgICAgIHRlc3Rpbmc6OlVuaXRUZXN0OjpH
ZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKTsKKyAgRVhQRUNUX0ZBTFNFKHRlc3Rf
cmVzdWx0LkZhaWxlZCgpKTsKK30KIAotY2xhc3MgQWRIb2NUZXN0UmVzdWx0VGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENh
c2UoKSB7Ci0gICAgRkFJTCgpIDw8ICJBIGZhaWx1cmUgaGFwcGVuZWQgaW5zaWRlIFNldFVwVGVz
dENhc2UoKS4iOwotICB9CitjbGFzcyBEeW5hbWljVW5pdFRlc3RGaXh0dXJlIDogcHVibGljIHRl
c3Rpbmc6OlRlc3Qge307CisKK2NsYXNzIER5bmFtaWNUZXN0IDogcHVibGljIER5bmFtaWNVbml0
VGVzdEZpeHR1cmUgeworICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGUgeyBFWFBFQ1RfVFJVRSh0
cnVlKTsgfQogfTsKIAotVEVTVF9GKEFkSG9jVGVzdFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3Vs
dEZvclRlc3RDYXNlU2hvd3NGYWlsdXJlKSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQm
IHRlc3RfcmVzdWx0ID0gdGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5jdXJyZW50X3Rlc3RfY2Fz
ZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+YWRf
aG9jX3Rlc3RfcmVzdWx0KCk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RfcmVzdWx0LkZhaWxlZCgpKTsK
LX0KK2F1dG8qIGR5bmFtaWNfdGVzdCA9IHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAiRHlu
YW1pY1VuaXRUZXN0Rml4dHVyZSIsICJEeW5hbWljVGVzdCIsICJUWVBFIiwgIlZBTFVFIiwgX19G
SUxFX18sCisgICAgX19MSU5FX18sIFtdKCkgLT4gRHluYW1pY1VuaXRUZXN0Rml4dHVyZSogeyBy
ZXR1cm4gbmV3IER5bmFtaWNUZXN0OyB9KTsKKworVEVTVChSZWdpc3RlclRlc3QsIFdhc1JlZ2lz
dGVyZWQpIHsKKyAgYXV0byogdW5pdHRlc3QgPSB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bml0dGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9j
b3VudCgpOyArK2kpIHsKKyAgICBhdXRvKiB0ZXN0cyA9IHVuaXR0ZXN0LT5HZXRUZXN0U3VpdGUo
aSk7CisgICAgaWYgKHRlc3RzLT5uYW1lKCkgIT0gc3RkOjpzdHJpbmcoIkR5bmFtaWNVbml0VGVz
dEZpeHR1cmUiKSkgY29udGludWU7CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0cy0+dG90
YWxfdGVzdF9jb3VudCgpOyArK2opIHsKKyAgICAgIGlmICh0ZXN0cy0+R2V0VGVzdEluZm8oaikt
Pm5hbWUoKSAhPSBzdGQ6OnN0cmluZygiRHluYW1pY1Rlc3QiKSkgY29udGludWU7CisgICAgICAv
LyBGb3VuZCBpdC4KKyAgICAgIEVYUEVDVF9TVFJFUSh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPnZh
bHVlX3BhcmFtKCksICJWQUxVRSIpOworICAgICAgRVhQRUNUX1NUUkVRKHRlc3RzLT5HZXRUZXN0
SW5mbyhqKS0+dHlwZV9wYXJhbSgpLCAiVFlQRSIpOworICAgICAgcmV0dXJuOworICAgIH0KKyAg
fQogCi1URVNUX0YoQWRIb2NUZXN0UmVzdWx0VGVzdCwgQWRIb2NUZXN0UmVzdWx0VGVzdEZvclVu
aXRUZXN0RG9lc05vdFNob3dGYWlsdXJlKSB7Ci0gIGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQm
IHRlc3RfcmVzdWx0ID0KLSAgICAgIHRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5h
ZF9ob2NfdGVzdF9yZXN1bHQoKTsKLSAgRVhQRUNUX0ZBTFNFKHRlc3RfcmVzdWx0LkZhaWxlZCgp
KTsKKyAgRkFJTCgpIDw8ICJEaWRuJ3QgZmluZCB0aGUgdGVzdCEiOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5j
YwppbmRleCBhMzhlYmFjODM5ZjdiNGZjZjcxMDkzNTFjNGQzZmVjZGUyNzE1YjBhLi4xOWFhMjUy
YTMwMTBmZDU2ZWFiZTM3NjgzMDhhODBkMmRjNmRiZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMV90ZXN0Xy5jYwpAQCAt
MzQsMTIgKzM0LDggQEAKIAogY2xhc3MgUHJvcGVydHlPbmUgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgUmVjb3JkUHJv
cGVydHkoIlNldFVwUHJvcCIsIDEpOwotICB9Ci0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsK
LSAgICBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9wIiwgMSk7Ci0gIH0KKyAgdm9pZCBTZXRV
cCgpIG92ZXJyaWRlIHsgUmVjb3JkUHJvcGVydHkoIlNldFVwUHJvcCIsIDEpOyB9CisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7IFJlY29yZFByb3BlcnR5KCJUZWFyRG93blByb3AiLCAxKTsg
fQogfTsKIAogVEVTVF9GKFByb3BlcnR5T25lLCBUZXN0U29tZVByb3BlcnRpZXMpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rl
c3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJf
dGVzdF8uY2MKaW5kZXggYWZhZjE1YTVkYzMyMzE1ZDUxYWM3YTBhNTU1ZjgzY2FiNDFlZjc0Zi4u
ZjlhMmE2ZTk4NDZkZGNkOTVkYmRiODhkOGM3NGQwN2M0YmM5ZGZmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8uY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTJfdGVzdF8u
Y2MKQEAgLTM0LDEyICszNCw4IEBACiAKIGNsYXNzIFByb3BlcnR5VHdvIDogcHVibGljIHRlc3Rp
bmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIFJl
Y29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAyKTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRv
d24oKSB7Ci0gICAgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3duUHJvcCIsIDIpOwotICB9CisgIHZv
aWQgU2V0VXAoKSBvdmVycmlkZSB7IFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAyKTsgfQor
ICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9w
IiwgMik7IH0KIH07CiAKIFRFU1RfRihQcm9wZXJ0eVR3bywgVGVzdFNvbWVQcm9wZXJ0aWVzKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRm
aWxlc190ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0
ZmlsZXNfdGVzdC5weQppbmRleCAyYzAzMWZmOGRiYTUxMmMyZTA0ZTI3MDUzNGUyOWZjZWJlODg2
Y2Y5Li5hYzY2ZmViNjY3MTllNjJjZmExNmM3OWExN2Y2M2RlOTkwZjI3N2MxIDEwMDc1NQotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rl
c3QucHkKQEAgLTQyLDggKzQyLDggQEAgR1RFU1RfT1VUUFVUXzJfVEVTVCA9ICJndGVzdF94bWxf
b3V0ZmlsZTJfdGVzdF8iCiAKIEVYUEVDVEVEX1hNTF8xID0gIiIiPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIg
ZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxU
ZXN0cyI+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlPbmUiIHRlc3RzPSIxIiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5h
bWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0i
UHJvcGVydHlPbmUiPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5T25lIiB0ZXN0cz0iMSIg
ZmFpbHVyZXM9IjAiIHNraXBwZWQ9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9Iioi
IHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iUHJvcGVydHlPbmUiPgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9w
ZXJ0eSBuYW1lPSJTZXRVcFByb3AiIHZhbHVlPSIxIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1l
PSJUZXN0U29tZVByb3BlcnR5IiB2YWx1ZT0iMSIvPgpAQCAtNTYsOCArNTYsOCBAQCBFWFBFQ1RF
RF9YTUxfMSA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiAKIEVY
UEVDVEVEX1hNTF8yID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
IDx0ZXN0c3VpdGVzIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0i
MCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci0gIDx0ZXN0c3VpdGUg
bmFtZT0iUHJvcGVydHlUd28iIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVy
cm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGll
cyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28iPgorICA8dGVz
dHN1aXRlIG5hbWU9IlByb3BlcnR5VHdvIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIHNraXBwZWQ9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3RTb21lUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0i
Y29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlUd28i
PgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJTZXRVcFByb3Ai
IHZhbHVlPSIyIi8+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJUZXN0U29tZVByb3BlcnR5IiB2
YWx1ZT0iMiIvPgpAQCAtMTExLDExICsxMTEsNiBAQCBjbGFzcyBHVGVzdFhNTE91dEZpbGVzVGVz
dChndGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhNTFRlc3RDYXNlKToKICAgICBzZWxmLmFzc2Vy
dF8ocC5leGl0ZWQpCiAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgcC5leGl0X2NvZGUpCiAKLSAg
ICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNlcyB0aGUgYnVpbHQgdGVzdCBiaW5hcnkgdG8gYmUKLSAg
ICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfIGluc3RlYWQgb2YKLSAgICAj
ICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfLiAgVG8gYWNjb3VudCBmb3IgdGhpcyBwb3NzaWJp
bGl0eSwgd2UKLSAgICAjICAgYWxsb3cgYm90aCBuYW1lcyBpbiB0aGUgZm9sbG93aW5nIGNvZGUu
ICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMKLSAgICAjICAgd2hlbiBsaWJ0b29sIHJlcGxhY2VtZW50
IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0cHV0X2ZpbGVfbmFtZTEgPSB0ZXN0X25hbWUgKyAiLnht
bCIKICAgICBvdXRwdXRfZmlsZTEgPSBvcy5wYXRoLmpvaW4oc2VsZi5vdXRwdXRfZGlyXywgb3V0
cHV0X2ZpbGVfbmFtZTEpCiAgICAgb3V0cHV0X2ZpbGVfbmFtZTIgPSAnbHQtJyArIG91dHB1dF9m
aWxlX25hbWUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3QucHkKaW5kZXggZmFlZGQ0ZTZjZTcyZGFiZWY3ODZhMzEy
ZWY0YWVjYTVjNWQyOWJmYS4uZWFkZTdhYWM4OGY1OWU2YmI2ZjViYTM0MTgyOGJhZTQ2ZmNkMDA2
ZiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdC5weQpAQCAtNjUsMjEgKzY1LDIxIEBAIGVsc2U6CiAgIHN5cy5h
cmd2LnJlbW92ZShOT19TVEFDS1RSQUNFX1NVUFBPUlRfRkxBRykKIAogRVhQRUNURURfTk9OX0VN
UFRZX1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08dGVz
dHN1aXRlcyB0ZXN0cz0iMjMiIGZhaWx1cmVzPSI0IiBkaXNhYmxlZD0iMiIgZXJyb3JzPSIwIiB0
aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQy
Ij4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVz
PSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFt
ZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxU
ZXN0Ii8+Cis8dGVzdHN1aXRlcyB0ZXN0cz0iMjYiIGZhaWx1cmVzPSI1IiBkaXNhYmxlZD0iMiIg
ZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2Nf
cHJvcGVydHk9IjQyIj4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9
IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1l
PSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVz
PSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFt
ZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
RmFpbGVkVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIw
IiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IkZhaWxlZFRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9IkZhaWxlZFRl
c3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9y
cz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRmFpbHMi
IHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBj
bGFzc25hbWU9IkZhaWxlZFRlc3QiPgogICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1s
X291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZh
bHVlczomI3gwQTsgIDEmI3gwQTsgIDIiIHR5cGU9IiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1
dF91bml0dGVzdF8uY2M6KgogRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAx
CiAgIDIlKHN0YWNrKXNdXT48L2ZhaWx1cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3Vp
dGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTWl4ZWRSZXN1bHRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVy
ZXM9IjEiIGRpc2FibGVkPSIxIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBu
YW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1
bHRUZXN0Ii8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgdGltZT0i
KiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9Ik1peGVk
UmVzdWx0VGVzdCIgdGVzdHM9IjMiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMSIgc2tpcHBlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1l
PSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiIGNsYXNzbmFtZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+CisgICAgPHRlc3RjYXNlIG5h
bWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3QiPgogICAgICAgPGZhaWx1cmUgbWVz
c2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0V4cGVjdGVkIGVxdWFs
aXR5IG9mIHRoZXNlIHZhbHVlczomI3gwQTsgIDEmI3gwQTsgIDIiIHR5cGU9IiI+PCFbQ0RBVEFb
Z3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgogRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhl
c2UgdmFsdWVzOgogICAxCkBAIC04OSwxMTYgKzg5LDE0NyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBv
ZiB0aGVzZSB2YWx1ZXM6CiAgIDIKICAgMyUoc3RhY2spc11dPjwvZmFpbHVyZT4KICAgICA8L3Rl
c3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJESVNBQkxFRF90ZXN0IiBzdGF0dXM9Im5vdHJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3QiLz4KKyAgICA8dGVzdGNhc2Ug
bmFtZT0iRElTQUJMRURfdGVzdCIgc3RhdHVzPSJub3RydW4iIHJlc3VsdD0ic3VwcHJlc3NlZCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9Ik1peGVkUmVzdWx0VGVzdCIvPgogICA8
L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJYbWxRdW90aW5nVGVzdCIgdGVzdHM9IjEi
IGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVz
dGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRhIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1l
PSJYbWxRdW90aW5nVGVzdCI+CisgIDx0ZXN0c3VpdGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRl
c3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iT3V0cHV0c0NEYXRh
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIg
Y2xhc3NuYW1lPSJYbWxRdW90aW5nVGVzdCI+CiAgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVz
dF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7RmFpbGVkJiN4MEE7WE1MIG91dHB1dDog
Jmx0Oz94bWwgZW5jb2Rpbmc9JnF1b3Q7dXRmLTgmcXVvdDsmZ3Q7Jmx0O3RvcCZndDsmbHQ7IVtD
REFUQVtjZGF0YSB0ZXh0XV0mZ3Q7Jmx0Oy90b3AmZ3Q7IiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0
X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEZhaWxlZAogWE1MIG91dHB1dDogPD94bWwgZW5j
b2Rpbmc9InV0Zi04Ij48dG9wPjwhW0NEQVRBW2NkYXRhIHRleHRdXT5dXSZndDs8IVtDREFUQVs8
L3RvcD4lKHN0YWNrKXNdXT48L2ZhaWx1cmU+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3Vp
dGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iSW52YWxpZENoYXJhY3RlcnNUZXN0IiB0ZXN0cz0iMSIg
ZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0
Y2FzZSBuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc0luTWVzc2FnZSIgc3RhdHVzPSJydW4iIHRpbWU9
IioiIGNsYXNzbmFtZT0iSW52YWxpZENoYXJhY3RlcnNUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1l
PSJJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9
IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8
dGVzdGNhc2UgbmFtZT0iSW52YWxpZENoYXJhY3RlcnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiBy
ZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkludmFs
aWRDaGFyYWN0ZXJzVGVzdCI+CiAgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7RmFpbGVkJiN4MEE7SW52YWxpZCBjaGFyYWN0ZXJzIGlu
IGJyYWNrZXRzIFtdIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Rf
LmNjOioKIEZhaWxlZAogSW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzIFtdJShzdGFjaylz
XV0+PC9mYWlsdXJlPgogICAgIDwvdGVzdGNhc2U+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1
aXRlIG5hbWU9IkRpc2FibGVkVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0i
MSIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVz
dF9ub3RfcnVuIiBzdGF0dXM9Im5vdHJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJEaXNhYmxlZFRl
c3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJEaXNhYmxlZFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjEiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0
YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iRElTQUJMRURfdGVzdF9ub3RfcnVuIiBzdGF0
dXM9Im5vdHJ1biIgcmVzdWx0PSJzdXBwcmVzc2VkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iRGlzYWJsZWRUZXN0Ii8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5h
bWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVzdHM9IjQiIGZhaWx1cmVzPSIwIiBkaXNhYmxl
ZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiBTZXRVcFRlc3RDYXNlPSJ5ZXMiIFRlYXJEb3duVGVz
dENhc2U9ImF5ZSI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ik9uZVByb3BlcnR5IiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICA8dGVzdHN1
aXRlIG5hbWU9IlNraXBwZWRUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIw
IiBza2lwcGVkPSIyIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlNraXBwZWQiIHN0YXR1cz0icnVuIiByZXN1bHQ9InNraXBwZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTa2lwcGVkVGVzdCI+CisgICAgICA8c2tpcHBl
ZCBtZXNzYWdlPSJndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7Ij48IVtDREFU
QVtndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqCislKHN0YWNrKXNdXT48L3NraXBwZWQ+
CisgICAgPC90ZXN0Y2FzZT4KKyAgICA8dGVzdGNhc2UgbmFtZT0iU2tpcHBlZFdpdGhNZXNzYWdl
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJza2lwcGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iU2tpcHBlZFRlc3QiPgorICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1s
X291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3
aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8u
Y2M6KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShz
dGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVzdGNhc2U+CisgICAgPHRlc3RjYXNlIG5hbWU9
IlNraXBwZWRBZnRlckZhaWx1cmUiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGlt
ZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlNraXBwZWRUZXN0Ij4KKyAgICAgIDxmYWls
dXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOiomI3gwQTtFeHBlY3Rl
ZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwh
W0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKK0V4cGVjdGVkIGVxdWFsaXR5
IG9mIHRoZXNlIHZhbHVlczoKKyAgMQorICAyJShzdGFjaylzXV0+PC9mYWlsdXJlPgorICAgICAg
PHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBO0l0
IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiI+PCFbQ0RBVEFb
Z3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KgorSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0
ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuJShzdGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVz
dGNhc2U+CisKKyAgPC90ZXN0c3VpdGU+CisgIDx0ZXN0c3VpdGUgbmFtZT0iUHJvcGVydHlSZWNv
cmRpbmdUZXN0IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgU2V0VXBUZXN0U3VpdGU9InllcyIg
VGVhckRvd25UZXN0U3VpdGU9ImF5ZSI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ik9uZVByb3BlcnR5
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIg
Y2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAgICAgPHByb3BlcnRpZXM+CiAg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjEiLz4KICAgICAgIDwvcHJvcGVy
dGllcz4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9w
ZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdU
ZXN0Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVu
IiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlBy
b3BlcnR5UmVjb3JkaW5nVGVzdCI+CiAgICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHByb3Bl
cnR5IG5hbWU9ImtleV9pbnQiIHZhbHVlPSIxIi8+CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAg
PC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNhc2UgbmFtZT0iVGhyZWVQcm9wZXJ0aWVzIiBzdGF0dXM9
InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJUaHJlZVByb3BlcnRpZXMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBs
ZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5n
VGVzdCI+CiAgICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV8x
IiB2YWx1ZT0iMSIvPgogICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5XzIiIHZhbHVlPSIyIi8+
CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfMyIgdmFsdWU9IjMiLz4KICAgICAgIDwvcHJv
cGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNG
b3JPbmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJQ
cm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUd29WYWx1ZXNGb3JP
bmVLZXlVc2VzTGFzdFZhbHVlIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAg
ICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjIi
Lz4KICAgICAgIDwvcHJvcGVydGllcz4KICAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4K
LSAgPHRlc3RzdWl0ZSBuYW1lPSJOb0ZpeHR1cmVUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAi
IGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgICA8dGVzdGNhc2UgbmFtZT0i
UmVjb3JkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVy
ZVRlc3QiPgorICA8dGVzdHN1aXRlIG5hbWU9Ik5vRml4dHVyZVRlc3QiIHRlc3RzPSIzIiBmYWls
dXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGlt
ZXN0YW1wPSIqIj4KKyAgICAgPHRlc3RjYXNlIG5hbWU9IlJlY29yZFByb3BlcnR5IiBzdGF0dXM9
InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1l
PSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAgICA8cHJvcGVydGllcz4KICAgICAgICAgIDxwcm9wZXJ0
eSBuYW1lPSJrZXkiIHZhbHVlPSIxIi8+CiAgICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rl
c3RjYXNlPgotICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVj
b3JkSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5v
Rml4dHVyZVRlc3QiPgorICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENh
bGxzUmVjb3JkSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRl
ZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAg
ICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0
eV9pbnQiIHZhbHVlPSIxIi8+CiAgICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3RjYXNl
PgotICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3Ry
aW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik5vRml4
dHVyZVRlc3QiPgorICAgICA8dGVzdGNhc2UgbmFtZT0iRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxz
UmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRl
ZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9Ik5vRml4dHVyZVRlc3QiPgogICAg
ICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImtleV9mb3JfdXRpbGl0
eV9zdHJpbmciIHZhbHVlPSIxIi8+CiAgICAgICAgPC9wcm9wZXJ0aWVzPgogICAgICA8L3Rlc3Rj
YXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVmFsdWVQYXJh
bVRlc3QiIHRlc3RzPSI0IiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGlt
ZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFs
dWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFs
dWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1
dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJT
aW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFs
dWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFs
dWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0
IiB0ZXN0cz0iNCIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVl
UGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJj
b21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQ
YXJhbVRlc3QiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUv
MSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Cisg
ICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUv
MCIgdmFsdWVfcGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+Cisg
ICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUv
MSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9
IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAg
IDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIg
ZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0
Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0i
cnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlR5cGVkVGVzdC8wIiAvPgorICA8dGVzdHN1aXRlIG5h
bWU9IlR5cGVkVGVzdC8wIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBza2lw
cGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4i
IHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iVHlw
ZWRUZXN0LzAiIC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVz
dC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFy
YW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlR5cGVkVGVzdC8xIiAvPgor
ICA8dGVzdHN1aXRlIG5hbWU9IlR5cGVkVGVzdC8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRp
c2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+
CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0i
KiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9Iioi
IGNsYXNzbmFtZT0iVHlwZWRUZXN0LzEiIC8+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRl
IG5hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAiIHRlc3RzPSIxIiBmYWls
dXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNl
IG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJhbT0iKiIgc3RhdHVzPSJydW4i
IHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCIg
Lz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUv
MCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBl
UGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBs
ZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlNpbmdsZS9UeXBlUGFyYW1l
dGVyaXplZFRlc3RTdWl0ZS8wIiAvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1l
PSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9
IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1l
PSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzEiIC8+Cisg
IDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIHRl
c3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFt
QXR0cmlidXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6
ZWRUZXN0U3VpdGUvMSIgLz4KICAgPC90ZXN0c3VpdGU+Ci08L3Rlc3RzdWl0ZXM+IiIiICUgeydz
dGFjayc6IFNUQUNLX1RSQUNFX1RFTVBMQVRFfQorPC90ZXN0c3VpdGVzPiIiIiAlIHsKKyAgICAn
c3RhY2snOiBTVEFDS19UUkFDRV9URU1QTEFURQorfQogCiBFWFBFQ1RFRF9GSUxURVJFRF9URVNU
X1hNTCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1
aXRlcyB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiCiAgICAgICAgICAgICB0aW1lc3RhbXA9IioiIG5hbWU9IkFsbFRlc3RzIiBhZF9ob2NfcHJv
cGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEi
IGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIKLSAgICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHRpbWU9Iioi
IGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNz
ZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIK
KyAgICAgICAgICAgICBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRl
c3RjYXNlIG5hbWU9IlN1Y2NlZWRzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRp
bWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJTdWNjZXNzZnVsVGVzdCIvPgogICA8L3Rl
c3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4iIiIKIAogRVhQRUNURURfU0hBUkRFRF9URVNUX1hNTCA9
ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0
ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRp
bWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVzdHMiIGFkX2hvY19wcm9wZXJ0eT0iNDIiPgotICA8dGVz
dHN1aXRlIG5hbWU9IlN1Y2Nlc3NmdWxUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2Fi
bGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVk
cyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KKyAg
PHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNzZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBk
aXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9Iioi
PgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVkcyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29t
cGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3Qi
Lz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iTm9GaXh0dXJlVGVzdCIgdGVz
dHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAg
ICAgPHRlc3RjYXNlIG5hbWU9IlJlY29yZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgdGltZT0iKiIg
Y2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KLSAgICAgICA8cHJvcGVydGllcz4KLSAgICAgICAg
IDxwcm9wZXJ0eSBuYW1lPSJrZXkiIHZhbHVlPSIxIi8+Ci0gICAgICAgPC9wcm9wZXJ0aWVzPgot
ICAgICA8L3Rlc3RjYXNlPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVz
dCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIFNldFVwVGVzdFN1aXRlPSJ5ZXMiIFRlYXJEb3du
VGVzdFN1aXRlPSJheWUiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJJbnRWYWx1ZWRQcm9wZXJ0eSIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgICAgIDxwcm9wZXJ0aWVzPgorICAg
ICAgICA8cHJvcGVydHkgbmFtZT0ia2V5X2ludCIgdmFsdWU9IjEiLz4KKyAgICAgIDwvcHJvcGVy
dGllcz4KKyAgICA8L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1l
PSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9
IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkFub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMSIgdmFsdWVfcGFyYW09IjQyIiBzdGF0dXM9InJ1
biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CisgIDx0ZXN0
c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAi
IGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCIgdmFsdWVf
cGFyYW09IjMzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVmFsdWVQYXJhbVRlc3QiIC8+CiAgIDwvdGVzdHN1
aXRlPgogPC90ZXN0c3VpdGVzPiIiIgogCi1FWFBFQ1RFRF9FTVBUWV9YTUwgPSAiIiI8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorRVhQRUNURURfTk9fVEVTVF9YTUwgPSAi
IiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVz
dHM9IjAiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIgogICAg
ICAgICAgICAgdGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyI+Ci08L3Rlc3RzdWl0ZXM+IiIi
CisgIDx0ZXN0c3VpdGUgbmFtZT0iTm9uVGVzdFN1aXRlRmFpbHVyZSIgdGVzdHM9IjEiIGZhaWx1
cmVzPSIxIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1l
c3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSIiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNv
bXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IiI+CisgICAgICA8ZmFp
bHVyZSBtZXNzYWdlPSJndGVzdF9ub190ZXN0X3VuaXR0ZXN0LmNjOiomI3gwQTtFeHBlY3RlZCBl
cXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NE
QVRBW2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QuY2M6KgorRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhl
c2UgdmFsdWVzOgorICAxCisgIDIlKHN0YWNrKXNdXT48L2ZhaWx1cmU+CisgICAgPC90ZXN0Y2Fz
ZT4KKyAgPC90ZXN0c3VpdGU+Cis8L3Rlc3RzdWl0ZXM+IiIiICUgeworICAgICdzdGFjayc6IFNU
QUNLX1RSQUNFX1RFTVBMQVRFCit9CiAKIEdURVNUX1BST0dSQU1fUEFUSCA9IGd0ZXN0X3Rlc3Rf
dXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKEdURVNUX1BST0dSQU1fTkFNRSkKIApAQCAtMjIx
LDE0ICsyNTIsMTQgQEAgY2xhc3MgR1Rlc3RYTUxPdXRwdXRVbml0VGVzdChndGVzdF94bWxfdGVz
dF91dGlscy5HVGVzdFhNTFRlc3RDYXNlKToKICAgICAgICIiIgogICAgICAgc2VsZi5fVGVzdFht
bE91dHB1dChHVEVTVF9QUk9HUkFNX05BTUUsIEVYUEVDVEVEX05PTl9FTVBUWV9YTUwsIDEpCiAK
LSAgZGVmIHRlc3RFbXB0eVhtbE91dHB1dChzZWxmKToKKyAgZGVmIHRlc3ROb1Rlc3RYbWxPdXRw
dXQoc2VsZik6CiAgICAgIiIiVmVyaWZpZXMgWE1MIG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBi
aW5hcnkgd2l0aG91dCBhY3R1YWwgdGVzdHMuCiAKLSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRo
YXQgZ2VuZXJhdGVzIGFuIGVtcHR5IFhNTCBvdXRwdXQsIGFuZAotICAgIHRlc3RzIHRoYXQgdGhl
IFhNTCBvdXRwdXQgaXMgZXhwZWN0ZWQuCisgICAgUnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGdl
bmVyYXRlcyBhbiBYTUwgb3V0cHV0IGZvciBhIGJpbmFyeSB3aXRob3V0IHRlc3RzLAorICAgIGFu
ZCB0ZXN0cyB0aGF0IHRoZSBYTUwgb3V0cHV0IGlzIGV4cGVjdGVkLgogICAgICIiIgogCi0gICAg
c2VsZi5fVGVzdFhtbE91dHB1dCgnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX0VN
UFRZX1hNTCwgMCkKKyAgICBzZWxmLl9UZXN0WG1sT3V0cHV0KCdndGVzdF9ub190ZXN0X3VuaXR0
ZXN0JywgRVhQRUNURURfTk9fVEVTVF9YTUwsIDApCiAKICAgZGVmIHRlc3RUaW1lc3RhbXBWYWx1
ZShzZWxmKToKICAgICAiIiJDaGVja3Mgd2hldGhlciB0aGUgdGltZXN0YW1wIGF0dHJpYnV0ZSBp
biB0aGUgWE1MIG91dHB1dCBpcyB2YWxpZC4KQEAgLTI2Niw3ICsyOTcsOCBAQCBjbGFzcyBHVGVz
dFhNTE91dHB1dFVuaXRUZXN0KGd0ZXN0X3htbF90ZXN0X3V0aWxzLkdUZXN0WE1MVGVzdENhc2Up
OgogICAgICAgICAnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdCcpCiAgICAgdHJ5OgogICAgICAgb3Mu
cmVtb3ZlKG91dHB1dF9maWxlKQotICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCiAgICAgICBpZiBlLmVycm5vICE9
IGVycm5vLkVOT0VOVDoKICAgICAgICAgcmFpc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2MKaW5kZXgg
MmVlODgzODAwNWVlZWMyMzU3MWJhZTM4OWM3OTI2OThjMzBjNGQ1MC4uYzAwMzZhYWVmOWRmMjc2
NTRhZTZhNmNlMWRlZDA3NjQyY2EyZDM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjCkBAIC02Nyw2
ICs2NywyMiBAQCBURVNUX0YoRGlzYWJsZWRUZXN0LCBESVNBQkxFRF90ZXN0X25vdF9ydW4pIHsK
ICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IERpc2FibGVkIHRlc3Qgc2hvdWxkIG5v
dCBiZSBydW4iOwogfQogCitjbGFzcyBTa2lwcGVkVGVzdCA6IHB1YmxpYyBUZXN0IHsKK307CisK
K1RFU1RfRihTa2lwcGVkVGVzdCwgU2tpcHBlZCkgeworICBHVEVTVF9TS0lQKCk7Cit9CisKK1RF
U1RfRihTa2lwcGVkVGVzdCwgU2tpcHBlZFdpdGhNZXNzYWdlKSB7CisgIEdURVNUX1NLSVAoKSA8
PCAiSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3QuIjsKK30K
KworVEVTVF9GKFNraXBwZWRUZXN0LCBTa2lwcGVkQWZ0ZXJGYWlsdXJlKSB7CisgIEVYUEVDVF9F
USgxLCAyKTsKKyAgR1RFU1RfU0tJUCgpIDw8ICJJdCBpcyBnb29kIHByYWN0aWNlIHRvIHRlbGwg
d2h5IHlvdSBza2lwIGEgdGVzdC4iOworfQorCiBURVNUKE1peGVkUmVzdWx0VGVzdCwgU3VjY2Vl
ZHMpIHsKICAgRVhQRUNUX0VRKDEsIDEpOwogICBBU1NFUlRfRVEoMSwgMSk7CkBAIC05NCw4ICsx
MTAsMTAgQEAgVEVTVChJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QsIEludmFsaWRDaGFyYWN0ZXJzSW5N
ZXNzYWdlKSB7CiAKIGNsYXNzIFByb3BlcnR5UmVjb3JkaW5nVGVzdCA6IHB1YmxpYyBUZXN0IHsK
ICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7IFJlY29yZFByb3BlcnR5
KCJTZXRVcFRlc3RDYXNlIiwgInllcyIpOyB9Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENh
c2UoKSB7IFJlY29yZFByb3BlcnR5KCJUZWFyRG93blRlc3RDYXNlIiwgImF5ZSIpOyB9CisgIHN0
YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeyBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBUZXN0U3Vp
dGUiLCAieWVzIik7IH0KKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAg
UmVjb3JkUHJvcGVydHkoIlRlYXJEb3duVGVzdFN1aXRlIiwgImF5ZSIpOworICB9CiB9OwogCiBU
RVNUX0YoUHJvcGVydHlSZWNvcmRpbmdUZXN0LCBPbmVQcm9wZXJ0eSkgewpAQCAtMTQzLDI5ICsx
NjEsMjUgQEAgVEVTVChOb0ZpeHR1cmVUZXN0LCBFeHRlcm5hbFV0aWxpdHlUaGF0Q2FsbHNSZWNv
cmRTdHJpbmdWYWx1ZWRQcm9wZXJ0eSkgewogY2xhc3MgVmFsdWVQYXJhbVRlc3QgOiBwdWJsaWMg
VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwogVEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBIYXNWYWx1ZVBh
cmFtQXR0cmlidXRlKSB7fQogVEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBBbm90aGVyVGVzdFRoYXRI
YXNWYWx1ZVBhcmFtQXR0cmlidXRlKSB7fQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2luZ2xl
LCBWYWx1ZVBhcmFtVGVzdCwgVmFsdWVzKDMzLCA0MikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKFNpbmdsZSwgVmFsdWVQYXJhbVRlc3QsIFZhbHVlcygzMywgNDIpKTsKIAotI2lmIEdURVNU
X0hBU19UWVBFRF9URVNUCiAvLyBWZXJpZmllcyB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1l
IGlzIG91dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0nCiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBl
ZCB0ZXN0cy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMg
VGVzdCB7fTsKIHR5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBsb25nPiBUeXBlZFRlc3RUeXBl
czsKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3QsIFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RF
U1RfU1VJVEUoVHlwZWRUZXN0LCBUeXBlZFRlc3RUeXBlcyk7CiBUWVBFRF9URVNUKFR5cGVkVGVz
dCwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7fQotI2VuZGlmCiAKLSNpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVF9QCiAvLyBWZXJpZmllcyB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBuYW1lIGlzIG91
dHB1dCBpbiB0aGUgJ3R5cGVfcGFyYW0nCiAvLyBYTUwgYXR0cmlidXRlIGZvciB0eXBlLXBhcmFt
ZXRlcml6ZWQgdGVzdHMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVHlwZVBhcmFtZXRl
cml6ZWRUZXN0Q2FzZSA6IHB1YmxpYyBUZXN0IHt9OwotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBh
cmFtZXRlcml6ZWRUZXN0Q2FzZSk7Ci1UWVBFRF9URVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0
Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7fQotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNF
X1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKTsKLXR5
cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBsb25nPiBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNl
VHlwZXM7Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChTaW5nbGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZVR5cGVzKTsKLSNl
bmRpZgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZSA6IHB1YmxpYyBUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlKTsKK1RZUEVEX1RFU1RfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwg
SGFzVHlwZVBhcmFtQXR0cmlidXRlKSB7fQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFR5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBIYXNUeXBlUGFyYW1BdHRyaWJ1dGUpOwordHlwZWRl
ZiB0ZXN0aW5nOjpUeXBlczxpbnQsIGxvbmc+IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlw
ZXM7ICAvLyBOT0xJTlQKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChTaW5nbGUsIFR5
cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlVHlwZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpIHsKICAgSW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfdGVzdF91dGlscy5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkKaW5k
ZXggMWUwMzU4NTkyZmIwMDg0ZjBhODljMzQzNmZmNzUxNzQ4NjgyN2FjZC4uNWRkMGViOTI0NDNh
ZDczMTU5ZmMzODQ1YzU3OWYzOTllOGYzYmY4NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfdGVzdF91dGlscy5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF90ZXN0X3V0aWxzLnB5CkBAIC05NCw3ICs5NCw3IEBA
IGNsYXNzIEdUZXN0WE1MVGVzdENhc2UoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgIGxlbihleHBlY3RlZF9jaGlsZHJlbiksIGxlbihh
Y3R1YWxfY2hpbGRyZW4pLAogICAgICAgICAnbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzIGRpZmZl
ciBpbiBlbGVtZW50ICcgKyBhY3R1YWxfbm9kZS50YWdOYW1lKQotICAgIGZvciBjaGlsZF9pZCwg
Y2hpbGQgaW4gZXhwZWN0ZWRfY2hpbGRyZW4uaXRlcml0ZW1zKCk6CisgICAgZm9yIGNoaWxkX2lk
LCBjaGlsZCBpbiBleHBlY3RlZF9jaGlsZHJlbi5pdGVtcygpOgogICAgICAgc2VsZi5hc3NlcnRf
KGNoaWxkX2lkIGluIGFjdHVhbF9jaGlsZHJlbiwKICAgICAgICAgICAgICAgICAgICAnPCVzPiBp
cyBub3QgaW4gPCVzPiAoaW4gZWxlbWVudCAlcyknICUKICAgICAgICAgICAgICAgICAgICAoY2hp
bGRfaWQsIGFjdHVhbF9jaGlsZHJlbiwgYWN0dWFsX25vZGUudGFnTmFtZSkpCkBAIC0xMDUsNiAr
MTA1LDcgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2FzZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKICAgICAgICd0ZXN0c3VpdGUnOiAnbmFtZScsCiAgICAgICAndGVzdGNhc2UnOiAnbmFtZScs
CiAgICAgICAnZmFpbHVyZSc6ICdtZXNzYWdlJywKKyAgICAgICdza2lwcGVkJzogJ21lc3NhZ2Un
LAogICAgICAgJ3Byb3BlcnR5JzogJ25hbWUnLAogICB9CiAKQEAgLTE2OSw5ICsxNzAsOSBAQCBj
bGFzcyBHVGVzdFhNTFRlc3RDYXNlKGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgICog
IFRoZSBzdGFjayB0cmFjZXMgYXJlIHJlbW92ZWQuCiAgICAgIiIiCiAKLSAgICBpZiBlbGVtZW50
LnRhZ05hbWUgPT0gJ3Rlc3RzdWl0ZXMnOgorICAgIGlmIGVsZW1lbnQudGFnTmFtZSBpbiAoJ3Rl
c3RzdWl0ZXMnLCAndGVzdHN1aXRlJywgJ3Rlc3RjYXNlJyk6CiAgICAgICB0aW1lc3RhbXAgPSBl
bGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3RpbWVzdGFtcCcpCi0gICAgICB0aW1lc3RhbXAudmFs
dWUgPSByZS5zdWIocideXGR7NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkJCcsCisgICAgICB0
aW1lc3RhbXAudmFsdWUgPSByZS5zdWIocideXGR7NH0tXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxk
XC5cZFxkXGQkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKicsIHRpbWVzdGFt
cC52YWx1ZSkKICAgICBpZiBlbGVtZW50LnRhZ05hbWUgaW4gKCd0ZXN0c3VpdGVzJywgJ3Rlc3Rz
dWl0ZScsICd0ZXN0Y2FzZScpOgogICAgICAgdGltZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9k
ZSgndGltZScpCkBAIC0xNzksNyArMTgwLDcgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2FzZShndGVz
dF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAgIHR5cGVfcGFyYW0gPSBlbGVtZW50LmdldEF0
dHJpYnV0ZU5vZGUoJ3R5cGVfcGFyYW0nKQogICAgICAgaWYgdHlwZV9wYXJhbSBhbmQgdHlwZV9w
YXJhbS52YWx1ZToKICAgICAgICAgdHlwZV9wYXJhbS52YWx1ZSA9ICcqJwotICAgIGVsaWYgZWxl
bWVudC50YWdOYW1lID09ICdmYWlsdXJlJzoKKyAgICBlbGlmIGVsZW1lbnQudGFnTmFtZSA9PSAn
ZmFpbHVyZScgb3IgZWxlbWVudC50YWdOYW1lID09ICdza2lwcGVkJzoKICAgICAgIHNvdXJjZV9s
aW5lX3BhdCA9IHInXi4qWy9cXF0oLio6KVxkK1xuJwogICAgICAgIyBSZXBsYWNlcyB0aGUgc291
cmNlIGxpbmUgaW5mb3JtYXRpb24gd2l0aCBhIG5vcm1hbGl6ZWQgZm9ybS4KICAgICAgIG1lc3Nh
Z2UgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ21lc3NhZ2UnKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9wcm9kdWN0aW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAppbmRleCA1NDI3MjNiNzA4NzM4N2Q0ZmI1MjlmYzA3
YTY4OGJjMWM4ZDc4YjFlLi40MWE1NDcyMjU0MjNkODMzMWE2NDlkYTk1ZjI4ZTFmZDNjNWFlNzc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L3Byb2R1Y3Rpb24uaApAQCAtMzAsOCAr
MzAsOCBAQAogLy8KIC8vIFRoaXMgaXMgcGFydCBvZiB0aGUgdW5pdCB0ZXN0IGZvciBndGVzdF9w
cm9kLmguCiAKLSNpZm5kZWYgR1RFU1RfVEVTVF9QUk9EVUNUSU9OX0hfCi0jZGVmaW5lIEdURVNU
X1RFU1RfUFJPRFVDVElPTl9IXworI2lmbmRlZiBHT09HTEVURVNUX1RFU1RfUFJPRFVDVElPTl9I
XworI2RlZmluZSBHT09HTEVURVNUX1RFU1RfUFJPRFVDVElPTl9IXwogCiAjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3RfcHJvZC5oIgogCkBAIC01MSw0ICs1MSw0IEBAIGNsYXNzIFByaXZhdGVDb2RlIHsK
ICAgaW50IHhfOwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9URVNUX1BST0RVQ1RJT05fSF8KKyNl
bmRpZiAgLy8gR09PR0xFVEVTVF9URVNUX1BST0RVQ1RJT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL1Jlc291cmNlcy9JbmZvLnBsaXN0IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QveGNvZGUvUmVzb3VyY2VzL0luZm8ucGxpc3QKaW5kZXggOWRkMjhlYTE0
ODVhYjUyN2U2Mjc1YmYzOTg1MGNiMGU4NGNkZGIzNi4uYjgxNGM0ODgyOGFhNWYyNzlkNzQzNmE0
M2U1OTAwMDg2Y2Q0YzYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QveGNv
ZGUvUmVzb3VyY2VzL0luZm8ucGxpc3QKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QveGNv
ZGUvUmVzb3VyY2VzL0luZm8ucGxpc3QKQEAgLTYsNiArNiw4IEBACiAJPHN0cmluZz5FbmdsaXNo
PC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KIAk8c3RyaW5nPiR7RVhF
Q1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+
CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX0gJChDVVJSRU5UX1BST0pFQ1RfVkVSU0lPTiksICR7
R1RFU1RfVkVSU0lPTklORk9fQUJPVVR9PC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZUljb25GaWxl
PC9rZXk+CiAJPHN0cmluZz48L3N0cmluZz4KIAk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5
PgpAQCAtMTQsMTcgKzE2LDE1IEBACiAJPHN0cmluZz42LjA8L3N0cmluZz4KIAk8a2V5PkNGQnVu
ZGxlUGFja2FnZVR5cGU8L2tleT4KIAk8c3RyaW5nPkZNV0s8L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4kKE1BUktFVElOR19WRVJTSU9O
KTwvc3RyaW5nPgogCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KIAk8c3RyaW5nPj8/Pz88
L3N0cmluZz4KIAk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+R1RFU1RfVkVS
U0lPTklORk9fTE9ORzwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8
L2tleT4KLQk8c3RyaW5nPkdURVNUX1ZFUlNJT05JTkZPX1NIT1JUPC9zdHJpbmc+Ci0JPGtleT5D
RkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfSBHVEVT
VF9WRVJTSU9OSU5GT19MT05HLCAke0dURVNUX1ZFUlNJT05JTkZPX0FCT1VUfTwvc3RyaW5nPgot
CTxrZXk+TlNIdW1hblJlYWRhYmxlQ29weXJpZ2h0PC9rZXk+Ci0JPHN0cmluZz4ke0dURVNUX1ZF
UlNJT05JTkZPX0FCT1VUfTwvc3RyaW5nPgorCTxzdHJpbmc+JChDVVJSRU5UX1BST0pFQ1RfVkVS
U0lPTik8L3N0cmluZz4KIAk8a2V5PkNTUmVzb3VyY2VzRmlsZU1hcHBlZDwva2V5PgogCTx0cnVl
Lz4KKwk8a2V5Pk5TSHVtYW5SZWFkYWJsZUNvcHlyaWdodDwva2V5PgorCTxzdHJpbmc+JHtHVEVT
VF9WRVJTSU9OSU5GT19BQk9VVH08L3N0cmluZz4KIDwvZGljdD4KIDwvcGxpc3Q+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC94Y29kZS9TY3JpcHRzL3ZlcnNpb25nZW5lcmF0
ZS5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL1NjcmlwdHMvdmVyc2lvbmdlbmVy
YXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiZGQ3NTQxYWQ3OTdmYTY3M2Y2
NWRhMzgxNjhlMTU4MGZkN2RkZTNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL1NjcmlwdHMvdmVyc2lv
bmdlbmVyYXRlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLSMhL3Vzci9iaW4v
ZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIkEgc2NyaXB0IHRvIHByZXBhcmUg
dmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgdXNlIHRoZSBndGVzdCBJbmZvLnBsaXN0IGZpbGUuCi0K
LSAgVGhpcyBzY3JpcHQgZXh0cmFjdHMgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUg
Y29uZmlndXJlLmFjIGZpbGUgYW5kCi0gIHVzZXMgaXQgdG8gZ2VuZXJhdGUgYSBoZWFkZXIgZmls
ZSBjb250YWluaW5nIHRoZSBzYW1lIGluZm9ybWF0aW9uLiBUaGUKLSAgI2RlZmluZXMgaW4gdGhp
cyBoZWFkZXIgZmlsZSB3aWxsIGJlIGluY2x1ZGVkIGluIGR1cmluZyB0aGUgZ2VuZXJhdGlvbiBv
ZgotICB0aGUgSW5mby5wbGlzdCBvZiB0aGUgZnJhbWV3b3JrLCBnaXZpbmcgdGhlIGNvcnJlY3Qg
dmFsdWUgdG8gdGhlIHZlcnNpb24KLSAgc2hvd24gaW4gdGhlIEZpbmRlci4KLQotICBUaGlzIHNj
cmlwdCBtYWtlcyB0aGUgZm9sbG93aW5nIGFzc3VtcHRpb25zICh0aGVzZSBhcmUgZmF1bHRzIG9m
IHRoZSBzY3JpcHQsCi0gIG5vdCBwcm9ibGVtcyB3aXRoIHRoZSBBdXRvY29uZik6Ci0gICAgMS4g
VGhlIEFDX0lOSVQgbWFjcm8gd2lsbCBiZSBjb250YWluZWQgd2l0aGluIHRoZSBmaXJzdCAxMDI0
IGNoYXJhY3RlcnMKLSAgICAgICBvZiBjb25maWd1cmUuYWMKLSAgICAyLiBUaGUgdmVyc2lvbiBz
dHJpbmcgd2lsbCBiZSAzIGludGVnZXJzIHNlcGFyYXRlZCBieSBwZXJpb2RzIGFuZCB3aWxsIGJl
Ci0gICAgICAgc3Vycm91bmRlZCBieSBzcXVhcmUgYnJhY2tldHMsICJbIiBhbmQgIl0iIChlLmcu
IFsxLjAuMV0pLiBUaGUgZmlyc3QKLSAgICAgICBzZWdtZW50IHJlcHJlc2VudHMgdGhlIG1ham9y
IHZlcnNpb24sIHRoZSBzZWNvbmQgcmVwcmVzZW50cyB0aGUgbWlub3IKLSAgICAgICB2ZXJzaW9u
IGFuZCB0aGUgdGhpcmQgcmVwcmVzZW50cyB0aGUgZml4IHZlcnNpb24uCi0gICAgMy4gTm8gIiki
IGNoYXJhY3RlciBleGlzdHMgYmV0d2VlbiB0aGUgb3BlbmluZyAiKCIgYW5kIGNsb3NpbmcgIiki
IG9mCi0gICAgICAgQUNfSU5JVCwgaW5jbHVkaW5nIGluIGNvbW1lbnRzIGFuZCBjaGFyYWN0ZXIg
c3RyaW5ncy4KLSIiIgotCi1pbXBvcnQgc3lzCi1pbXBvcnQgcmUKLQotIyBSZWFkIHRoZSBjb21t
YW5kIGxpbmUgYXJndW1lbnQgKHRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciBWZXJzaW9uLmgpCi1p
ZiAobGVuKHN5cy5hcmd2KSA8IDMpOgotICBwcmludCAiVXNhZ2U6IHZlcnNpb25nZW5lcmF0ZS5w
eSBpbnB1dF9kaXIgb3V0cHV0X2RpciIKLSAgc3lzLmV4aXQoMSkKLWVsc2U6Ci0gIGlucHV0X2Rp
ciA9IHN5cy5hcmd2WzFdCi0gIG91dHB1dF9kaXIgPSBzeXMuYXJndlsyXQotCi0jIFJlYWQgdGhl
IGZpcnN0IDEwMjQgY2hhcmFjdGVycyBvZiB0aGUgY29uZmlndXJlLmFjIGZpbGUKLWNvbmZpZ19m
aWxlID0gb3BlbigiJXMvY29uZmlndXJlLmFjIiAlIGlucHV0X2RpciwgJ3InKQotYnVmZmVyX3Np
emUgPSAxMDI0Ci1vcGVuaW5nX3N0cmluZyA9IGNvbmZpZ19maWxlLnJlYWQoYnVmZmVyX3NpemUp
Ci1jb25maWdfZmlsZS5jbG9zZSgpCi0KLSMgRXh0cmFjdCB0aGUgdmVyc2lvbiBzdHJpbmcgZnJv
bSB0aGUgQUNfSU5JVCBtYWNybwotIyAgIFRoZSBmb2xsb3dpbmcgaW5pdF9leHByZXNzaW9uIG1l
YW5zOgotIyAgICAgRXh0cmFjdCB0aHJlZSBpbnRlZ2VycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyBh
bmQgc3Vycm91bmRlZCBieSBzcXVhcmUKLSMgICAgIGJyYWNrZXRzKGUuZy4gIlsxLjAuMV0iKSBi
ZXR3ZWVuICJBQ19JTklUKCIgYW5kICIpIi4gRG8gbm90IGJlIGdyZWVkeQotIyAgICAgKCo/IGlz
IHRoZSBub24tZ3JlZWR5IGZsYWcpIHNpbmNlIHRoYXQgd291bGQgcHVsbCBpbiBldmVyeXRoaW5n
IGJldHdlZW4KLSMgICAgIHRoZSBmaXJzdCAiKCIgYW5kIHRoZSBsYXN0ICIpIiBpbiB0aGUgZmls
ZS4KLXZlcnNpb25fZXhwcmVzc2lvbiA9IHJlLmNvbXBpbGUociJBQ19JTklUXCguKj9cWyhcZCsp
XC4oXGQrKVwuKFxkKylcXS4qP1wpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmUuRE9UQUxMKQotdmVyc2lvbl92YWx1ZXMgPSB2ZXJzaW9uX2V4cHJlc3Npb24uc2VhcmNoKG9w
ZW5pbmdfc3RyaW5nKQotbWFqb3JfdmVyc2lvbiA9IHZlcnNpb25fdmFsdWVzLmdyb3VwKDEpCi1t
aW5vcl92ZXJzaW9uID0gdmVyc2lvbl92YWx1ZXMuZ3JvdXAoMikKLWZpeF92ZXJzaW9uID0gdmVy
c2lvbl92YWx1ZXMuZ3JvdXAoMykKLQotIyBXcml0ZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiB0
byBhIGhlYWRlciBmaWxlIHRvIGJlIGluY2x1ZGVkIGluIHRoZQotIyBJbmZvLnBsaXN0IGZpbGUu
Ci1maWxlX2RhdGEgPSAiIiIvLwotLy8gRE8gTk9UIE1PRElGWSBUSElTIEZJTEUgKGJ1dCB5b3Ug
Y2FuIGRlbGV0ZSBpdCkKLS8vCi0vLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0aGUg
dmVyc2lvbmdlbmVyYXRlLnB5IHNjcmlwdC4gVGhpcyBzY3JpcHQKLS8vIGlzIGV4ZWN1dGVkIGlu
IGEgIlJ1biBTY3JpcHQiIGJ1aWxkIHBoYXNlIHdoZW4gY3JlYXRpbmcgZ3Rlc3QuZnJhbWV3b3Jr
LiBUaGlzCi0vLyBoZWFkZXIgZmlsZSBpcyBub3QgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24gb2Yg
Qy1zb3VyY2UuIFJhdGhlciwgaXQgc2ltcGx5Ci0vLyBkZWZpbmVzIHNvbWUgdmVyc2lvbiBzdHJp
bmdzIGZvciBzdWJzdGl0dXRpb24gaW4gdGhlIEluZm8ucGxpc3QuIEJlY2F1c2Ugb2YKLS8vIHRo
aXMsIHdlIGFyZSBub3QgcmVzdHJpY3RlZCB0byBDLXN5bnRheCBub3IgYXJlIHdlIHVzaW5nIGlu
Y2x1ZGUgZ3VhcmRzLgotLy8KLQotI2RlZmluZSBHVEVTVF9WRVJTSU9OSU5GT19TSE9SVCAlcy4l
cwotI2RlZmluZSBHVEVTVF9WRVJTSU9OSU5GT19MT05HICVzLiVzLiVzCi0KLSIiIiAlIChtYWpv
cl92ZXJzaW9uLCBtaW5vcl92ZXJzaW9uLCBtYWpvcl92ZXJzaW9uLCBtaW5vcl92ZXJzaW9uLCBm
aXhfdmVyc2lvbikKLXZlcnNpb25fZmlsZSA9IG9wZW4oIiVzL1ZlcnNpb24uaCIgJSBvdXRwdXRf
ZGlyLCAndycpCi12ZXJzaW9uX2ZpbGUud3JpdGUoZmlsZV9kYXRhKQotdmVyc2lvbl9maWxlLmNs
b3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL2d0ZXN0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC94Y29kZS9n
dGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNGJmZGM0MjQyYTNlNWVlYjZj
MDcwMTYyMWJjY2QxODlhN2M1ODMuLmZiZGY1ZjQ1Yzk0ZWE5MzVmNTMwNDhkNTE2MmE1ZDM0ZTEz
ZTkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL2d0ZXN0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QveGNv
ZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIsMTggKzIyLDYgQEAKIAkJ
CW5hbWUgPSBDaGVjazsKIAkJCXByb2R1Y3ROYW1lID0gQ2hlY2s7CiAJCX07Ci0JCTQwQzQ0QURD
MEUzNzk4RjQwMDhGQ0M1MSAvKiBWZXJzaW9uIEluZm8gKi8gPSB7Ci0JCQlpc2EgPSBQQlhBZ2dy
ZWdhdGVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNDBDNDRBRTQwRTM3OTkw
NTAwOEZDQzUxIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFy
Z2V0ICJWZXJzaW9uIEluZm8iICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkJNDBDNDRBREIw
RTM3OThGNDAwOEZDQzUxIC8qIEdlbmVyYXRlIFZlcnNpb24uaCAqLywKLQkJCSk7Ci0JCQljb21t
ZW50cyA9ICJUaGUgZ2VuZXJhdGlvbiBvZiBWZXJzaW9uLmggbXVzdCBiZSBwZXJmb3JtZWQgaW4g
aXRzIG93biB0YXJnZXQuIFNpbmNlIHRoZSBJbmZvLnBsaXN0IGlzIHByZXByb2Nlc3NlZCBiZWZv
cmUgYW55IG9mIHRoZSBvdGhlciBidWlsZCBwaGFzZXMgaW4gZ3Rlc3QsIHRoZSBWZXJzaW9uLmgg
ZmlsZSB3b3VsZCBub3QgYmUgcmVhZHkgaWYgaW5jbHVkZWQgYXMgYSBidWlsZCBwaGFzZSBvZiB0
aGF0IHRhcmdldC4iOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJKTsKLQkJCW5hbWUgPSAiVmVy
c2lvbiBJbmZvIjsKLQkJCXByb2R1Y3ROYW1lID0gVmVyc2lvbi5oOwotCQl9OwogLyogRW5kIFBC
WEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0
aW9uICovCkBAIC01MiwxMSArNDAsOCBAQAogCQk0MDQ4ODRBMjBFMkY3QkU2MDBDRjc2NTggLyog
Z3Rlc3QtaW50ZXJuYWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRTQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWlu
dGVybmFsLmggKi87IH07CiAJCTQwNDg4NEEzMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1wb3J0
LmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQwNDg4M0U1MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1wb3J0LmggKi87IH07CiAJ
CTQwNDg4NEE0MEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcuaCBpbiBDb3B5IEhlYWRl
cnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODgzRTYw
RTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXN0cmluZy5oICovOyB9OwotCQk0MDQ4ODRBQzBFMkY3
Q0Q5MDBDRjc2NTggLyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDA0ODg0QTkwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5HRVMgKi87IH07
Ci0JCTQwNDg4NEFEMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4NEFBMEUyRjdDRDkwMENG
NzY1OCAvKiBDT05UUklCVVRPUlMgKi87IH07CiAJCTQwNDg4NEFFMEUyRjdDRDkwMENGNzY1OCAv
KiBMSUNFTlNFIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MDQ4ODRBQjBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSAqLzsgfTsKIAkJNDA4OTlGM0Ew
RkZBNzBENDAwMEIyOUFFIC8qIGd0ZXN0LWFsbC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNEExMkExMEU5RUFEQTcwMEJEMTdGRCAvKiBndGVzdC1h
bGwuY2MgKi87IH07Ci0JCTQwODk5RjUwMEZGQTcyODEwMDBCMjlBRSAvKiBndGVzdC10dXBsZS5o
IGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MDg5OUY0RDBGRkE3MjcxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCAqLzsgfTsKIAkJ
NDA4OTlGNTMwRkZBNzJBMDAwMEIyOUFFIC8qIGd0ZXN0X3VuaXR0ZXN0LmNjIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0IyMzhDMTIwRTdGRTEzQzAwODQ2
RTExIC8qIGd0ZXN0X3VuaXR0ZXN0LmNjICovOyB9OwogCQk0MDg5QTA0NDBGRkFEMUJFMDAwQjI5
QUUgLyogc2FtcGxlMS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQwODlBMDJDMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxLmNjICovOyB9OwogCQk0
MDg5QTA0NjBGRkFEMUJFMDAwQjI5QUUgLyogc2FtcGxlMV91bml0dGVzdC5jYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwODlBMDJFMEZGQUNGN0YwMDBC
MjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LmNjICovOyB9OwpAQCAtNzUsMTAgKzYwLDkgQEAKIAkJ
NDBDODQ5QTIxMDFBMzcwNTAwODM2NDJBIC8qIGd0ZXN0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOEZGMEVDMjdGNjQwMEE3
MEY0QyAvKiBndGVzdC5mcmFtZXdvcmsgKi87IH07CiAJCTQwQzg0OUE0MTAxQTM3MTUwMDgzNjQy
QSAvKiBndGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3b3Jr
ICovOyB9OwogCQk0NTM5QzkzNDBFQzI4MEFFMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdGVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM5MzMw
RUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTQ1MzlDOTM4MEVDMjgwRTIwMEE3MEY0QyAv
KiBndGVzdC1saW5rZWRfcHRyLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOTM1MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVz
dC1saW5rZWRfcHRyLmggKi87IH07Ci0JCTQ1MzlDOTM5MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVz
dC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzkzNjBFQzI4MEUyMDBBNzBGNEMgLyog
Z3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAqLzsgfTsKIAkJNDUzOUM5M0EwRUMyODBFMjAw
QTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM5MzcwRUMyODBFMjAwQTcwRjRD
IC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCAqLzsgfTsKIAkJNDU2N0M4MTgxMjY0RkY3MTAwNzc0MEJF
IC8qIGd0ZXN0LXByaW50ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NTY3QzgxNzEyNjRGRjcxMDA3NzQwQkUgLyogZ3Rlc3QtcHJpbnRlcnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCUEzQzEwQkUw
MjYwOTUyQzYwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTNDMTBCREYyNjA5NTJDNTAwMjMxNTVEIC8qIGd0
ZXN0LW1hdGNoZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlGNjdENEYzRTFDN0Y1RDhCMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdENEYzRDFDN0Y1
RDhCMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggKi87IH07CiAJCUY2N0Q0RjNGMUM3RjVE
QTcwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY3RDRGM0QxQzdGNUQ4QjAwMTdD
NzI5IC8qIGd0ZXN0LXBvcnQtYXJjaC5oICovOyB9OwogCQlGNjdENEY0NDFDN0Y1REQwMDAxN0M3
MjkgLyogZ3Rlc3QtcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjY3RDRGNDExQzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQuaCAqLzsgfTsK
QEAgLTExMCwxMyArOTQsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA0MEM4NDhGOTEw
MUEyMDlDMDA4MzY0MkE7CiAJCQlyZW1vdGVJbmZvID0gImd0ZXN0LXN0YXRpYyI7CiAJCX07Ci0J
CTQwQzQ0QUU1MEUzNzk5MjIwMDhGQ0M1MSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250YWluZXJQb3J0YWwgPSAw
ODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87Ci0JCQlwcm94eVR5
cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA0MEM0NEFEQzBFMzc5OEY0MDA4RkND
NTE7Ci0JCQlyZW1vdGVJbmZvID0gVmVyc2lvbi5oOwotCQl9OwogCQk0MEM4NDk3QzEwMUEzNjg1
MDA4MzY0MkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29u
dGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMw
MkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMTkyLDEzICsxNjksMTAgQEAKIAkJCQk0
MDQ4ODRBMDBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIGlu
IENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCQk0MDQ4ODRBMTBFMkY3QkU2MDBDRjc2NTgg
LyogZ3Rlc3QtZmlsZXBhdGguaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkJNDA0
ODg0QTIwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggaW4gQ29weSBIZWFkZXJz
IEludGVybmFsICovLAotCQkJCTQ1MzlDOTM4MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1saW5r
ZWRfcHRyLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTQ1MzlDOTM5MEVDMjgw
RTIwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIGluIENvcHkgSGVhZGVy
cyBJbnRlcm5hbCAqLywKIAkJCQk0NTM5QzkzQTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFy
YW0tdXRpbC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCQlGNjdENEYzRjFDN0Y1
REE3MDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFs
ICovLAogCQkJCTQwNDg4NEEzMEUyRjdCRTYwMENGNzY1OCAvKiBndGVzdC1wb3J0LmggaW4gQ29w
eSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQwNDg4NEE0MEUyRjdCRTYwMENGNzY1OCAvKiBn
dGVzdC1zdHJpbmcuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCi0JCQkJNDA4OTlGNTAw
RkZBNzI4MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFs
ICovLAogCQkJCTNCRjZGMkEwMEU3OUI1QUQwMDBGMkVFRSAvKiBndGVzdC10eXBlLXV0aWwuaCBp
biBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEhlYWRl
cnMgSW50ZXJuYWwiOwpAQCAtMjI1LDcgKzE5OSw2IEBACiAJCTNCODdEMjEwMEU5NkI5MkUwMDBE
MTg1MiAvKiBydW50ZXN0cy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gcnVu
dGVzdHMuc2g7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNCRjZGMjlGMEU3OUI1QUQw
MDBGMkVFRSAvKiBndGVzdC10eXBlLXV0aWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gImd0ZXN0LXR5cGUtdXRpbC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0JGNkYyQTQwRTc5QjYxNjAwMEYyRUVFIC8qIGd0ZXN0LXR5cGVkLXRlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXR5cGVkLXRlc3QuaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQwM0VFMzdDMEUzNzc4MjIwMDRCRDFFMiAvKiB2ZXJzaW9uZ2Vu
ZXJhdGUucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSB2ZXJzaW9uZ2Vu
ZXJhdGUucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQwNDg4M0RCMEUyRjc5OUIw
MENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9ICJndGVzdC1kZWF0aC10ZXN0LmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MDQ4ODNEQzBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtbWVzc2FnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtbWVzc2FnZS5oIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDA0ODgzREQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXNwaS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3Qtc3BpLmgiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjM5LDExICsyMTIsOCBAQAogCQk0MDQ4ODNFNjBFMkY3OTlC
MDBDRjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9ICJndGVzdC1zdHJpbmcuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQwNDg4
M0Y2MEUyRjc5OUIwMENGNzY1OCAvKiBSRUFETUUubWQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
UkVBRE1FLm1kOyBwYXRoID0gLi4vUkVBRE1FLm1kOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CiAJCTQwNDg4NDBEMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdF9tYWluLmNjICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ3Rlc3RfbWFpbi5jYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDA0ODg0QTkwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5HRVMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ0hBTkdFUzsgcGF0aCA9IC4uL0NIQU5HRVM7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJNDA0ODg0QUEwRTJGN0NEOTAwQ0Y3NjU4IC8qIENPTlRS
SUJVVE9SUyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDT05UUklCVVRPUlM7IHBhdGggPSAuLi9D
T05UUklCVVRPUlM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDA0ODg0QUIwRTJG
N0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTElDRU5TRTsg
cGF0aCA9IC4uL0xJQ0VOU0U7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNDA4OTlG
NDMwRkZBNzE4NDAwMEIyOUFFIC8qIGd0ZXN0X3VuaXR0ZXN0LWZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5l
eGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gImd0ZXN0X3VuaXR0ZXN0LWZy
YW1ld29yayI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTQwODk5RjRE
MEZGQTcyNzEwMDBCMjlBRSAvKiBndGVzdC10dXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSAiZ3Rlc3QtdHVwbGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQwODk5RkIzMEZGQTc1NjcwMDBCMjlBRSAvKiBTdGF0aWNMaWJyYXJ5VGFyZ2V0LnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFN0YXRpY0xpYnJhcnlUYXJnZXQueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQwODlBMDEzMEZGQUNFRkMwMDBC
MjlBRSAvKiBzYW1wbGUxX3VuaXR0ZXN0LWZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gInNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrIjsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNDA4OUEwMkMwRkZBQ0Y3RjAw
MEIyOUFFIC8qIHNhbXBsZTEuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBzYW1wbGUxLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxLDEwICsyMzEs
OSBAQAogCQk0NEM0OERGRjE0QTQwOThGMDBBMkQ5QzcgLyogUHJvZHVjdGlvblByb2plY3QueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gUHJvZHVjdGlvblByb2plY3Qu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MzlDOEZGMEVDMjdGNjQw
MEE3MEY0QyAvKiBndGVzdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBndGVzdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS10ZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wYXJhbS10ZXN0LmgiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NTM5QzkzNTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rl
c3QtbGlua2VkX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3Qt
bGlua2VkX3B0ci5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDUzOUM5MzYwRUMy
ODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUzOUM5MzcwRUMyODBFMjAwQTcwRjRDIC8qIGd0
ZXN0LXBhcmFtLXV0aWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0
LXBhcmFtLXV0aWwuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1NjdDODE3MTI2
NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSAiZ3Rlc3QtcHJpbnRlcnMuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUEzQzEwQkRGMjYwOTUyQzUwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtbWF0Y2hlcnMuaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0
LWFyY2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBvcnQtYXJj
aC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3RDRGNDExQzdGNUREMDAwMTdD
NzI5IC8qIGd0ZXN0LXBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0
ZXN0LXBvcnQuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2N0Q0RjQyMUM3RjVE
RDAwMDE3QzcyOSAvKiBndGVzdC1wcmludGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSAiZ3Rlc3QtcHJpbnRlcnMuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDAsOCArMzA5LDYgQEAKIAkJMDhGQjc3QUNGRTg0MTcwN0MwMkFBQzA3IC8qIFNvdXJjZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNDA0ODg0QTkw
RTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5HRVMgKi8sCi0JCQkJNDA0ODg0QUEwRTJGN0NEOTAwQ0Y3
NjU4IC8qIENPTlRSSUJVVE9SUyAqLywKIAkJCQk0MDQ4ODNEOTBFMkY3OTlCMDBDRjc2NTggLyog
aW5jbHVkZSAqLywKIAkJCQk0MDQ4ODRBQjBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSAqLywK
IAkJCQk0MDg5QTAyRjBGRkFDRjg0MDAwQjI5QUUgLyogc2FtcGxlcyAqLywKQEAgLTM2NSw3ICsz
MzIsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkzQjg3RDIx
MDBFOTZCOTJFMDAwRDE4NTIgLyogcnVudGVzdHMuc2ggKi8sCi0JCQkJNDAzRUUzN0MwRTM3Nzgy
MjAwNEJEMUUyIC8qIHZlcnNpb25nZW5lcmF0ZS5weSAqLywKIAkJCSk7CiAJCQlwYXRoID0gU2Ny
aXB0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zODQsNiArMzUwLDcgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTQwNDg4M0UxMEUyRjc5OUIwMENGNzY1OCAvKiBpbnRlcm5hbCAq
LywKIAkJCQk0MDQ4ODNEQjBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtZGVhdGgtdGVzdC5oICov
LAorCQkJCUEzQzEwQkRGMjYwOTUyQzUwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oICovLAog
CQkJCTQwNDg4M0RDMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1tZXNzYWdlLmggKi8sCiAJCQkJ
NDUzOUM5MzMwRUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCAqLywKIAkJCQk0
NTY3QzgxNzEyNjRGRjcxMDA3NzQwQkUgLyogZ3Rlc3QtcHJpbnRlcnMuaCAqLywKQEAgLTQwNCwx
MyArMzcxLDEwIEBACiAJCQkJNDA0ODgzRTIwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWRlYXRo
LXRlc3QtaW50ZXJuYWwuaCAqLywKIAkJCQk0MDQ4ODNFMzBFMkY3OTlCMDBDRjc2NTggLyogZ3Rl
c3QtZmlsZXBhdGguaCAqLywKIAkJCQk0MDQ4ODNFNDBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3Qt
aW50ZXJuYWwuaCAqLywKLQkJCQk0NTM5QzkzNTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlu
a2VkX3B0ci5oICovLAotCQkJCTQ1MzlDOTM2MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJh
bS11dGlsLWdlbmVyYXRlZC5oICovLAogCQkJCTQ1MzlDOTM3MEVDMjgwRTIwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS11dGlsLmggKi8sCiAJCQkJRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0
ZXN0LXBvcnQtYXJjaC5oICovLAogCQkJCTQwNDg4M0U1MEUyRjc5OUIwMENGNzY1OCAvKiBndGVz
dC1wb3J0LmggKi8sCiAJCQkJNDA0ODgzRTYwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXN0cmlu
Zy5oICovLAotCQkJCTQwODk5RjREMEZGQTcyNzEwMDBCMjlBRSAvKiBndGVzdC10dXBsZS5oICov
LAogCQkJCTNCRjZGMjlGMEU3OUI1QUQwMDBGMkVFRSAvKiBndGVzdC10eXBlLXV0aWwuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gaW50ZXJuYWw7CkBAIC00NzYsNiArNDQwLDcgQEAKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk0MDQ4ODQzODBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3QtZGVhdGgtdGVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTND
MTBCRTAyNjA5NTJDNjAwMjMxNTVEIC8qIGd0ZXN0LW1hdGNoZXJzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MDQ4ODQzOTBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtbWVzc2FnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDUzOUM5MzQwRUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY2N0Q0RjNFMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1w
b3J0LWFyY2guaCBpbiBIZWFkZXJzICovLApAQCAtNjA4LDcgKzU3Myw2IEBACiAJCQlidWlsZFJ1
bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCQk0MEM0NEFFNjBFMzc5OTIy
MDA4RkNDNTEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk0MDhCRUMxMDEwNDZDRkU5
MDBERUY1MjIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk0MEM4NDk5QzEwMUEzNkRD
MDA4MzY0MkEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CkBAIC02NDgsNyArNjEy
LDYgQEAKIAkJCQk0MDg5QTAxMjBGRkFDRUZDMDAwQjI5QUUgLyogc2FtcGxlMV91bml0dGVzdC1m
cmFtZXdvcmsgKi8sCiAJCQkJNDBDODQ5ODkxMDFBMzZBNjAwODM2NDJBIC8qIHNhbXBsZTFfdW5p
dHRlc3Qtc3RhdGljICovLAogCQkJCTNCMjM4RjVGMEU4MjhCNTQwMDg0NkUxMSAvKiBDaGVjayAq
LywKLQkJCQk0MEM0NEFEQzBFMzc5OEY0MDA4RkNDNTEgLyogVmVyc2lvbiBJbmZvICovLAogCQkJ
KTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KQEAgLTY1OCw4ICs2MjEsNiBA
QAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk0MDQ4ODRBQzBFMkY3Q0Q5MDBDRjc2NTgg
LyogQ0hBTkdFUyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNDA0ODg0QUQwRTJGN0NEOTAwQ0Y3NjU4
IC8qIENPTlRSSUJVVE9SUyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDBDODQ5NzgxMDFBMzY1NDAw
ODM2NDJBIC8qIGxpYmd0ZXN0X21haW4uYSBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDA0ODg0QUUw
RTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgaW4gUmVzb3VyY2VzICovLAogCQkJCTQwNDg4NDUw
MEUyRjc5OUIwMENGNzY1OCAvKiBSRUFETUUubWQgaW4gUmVzb3VyY2VzICovLApAQCAtNjgwLDI0
ICs2NDEsNyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIiMgUmVtZW1i
ZXIsIHRoaXMgXCJSdW4gU2NyaXB0XCIgYnVpbGQgcGhhc2Ugd2lsbCBiZSBleGVjdXRlZCBmcm9t
ICRTUkNST09UXG4vYmluL2Jhc2ggU2NyaXB0cy9ydW50ZXN0cy5zaCI7Ci0JCX07Ci0JCTQwQzQ0
QURCMEUzNzk4RjQwMDhGQ0M1MSAvKiBHZW5lcmF0ZSBWZXJzaW9uLmggKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCQkiJChTUkNS
T09UKS9TY3JpcHRzL3ZlcnNpb25nZW5lcmF0ZS5weSIsCi0JCQkJIiQoU1JDUk9PVCkvLi4vY29u
ZmlndXJlLmFjIiwKLQkJCSk7Ci0JCQluYW1lID0gIkdlbmVyYXRlIFZlcnNpb24uaCI7Ci0JCQlv
dXRwdXRQYXRocyA9ICgKLQkJCQkiJChQUk9KRUNUX1RFTVBfRElSKS9WZXJzaW9uLmgiLAotCQkJ
KTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIiMgUmVtZW1iZXIsIHRoaXMgXCJSdW4g
U2NyaXB0XCIgYnVpbGQgcGhhc2Ugd2lsbCBiZSBleGVjdXRlZCBmcm9tICRTUkNST09UXG4vdXNy
L2Jpbi9weXRob24gU2NyaXB0cy92ZXJzaW9uZ2VuZXJhdGUucHkgLi4vICRQUk9KRUNUX1RFTVBf
RElSIjsKKwkJCXNoZWxsU2NyaXB0ID0gIiMgUmVtZW1iZXIsIHRoaXMgXCJSdW4gU2NyaXB0XCIg
YnVpbGQgcGhhc2Ugd2lsbCBiZSBleGVjdXRlZCBmcm9tICRTUkNST09UXG4vYmluL2Jhc2ggU2Ny
aXB0cy9ydW50ZXN0cy5zaFxuIjsKIAkJfTsKIC8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2Ugc2VjdGlvbiAqLwogCkBAIC03NzgsMTEgKzcyMiw2IEBACiAJCQl0YXJnZXQgPSA0MEM4NDhG
OTEwMUEyMDlDMDA4MzY0MkEgLyogZ3Rlc3Qtc3RhdGljICovOwogCQkJdGFyZ2V0UHJveHkgPSA0
MDhCRUMwRjEwNDZDRkU5MDBERUY1MjIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9
OwotCQk0MEM0NEFFNjBFMzc5OTIyMDA4RkNDNTEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQgPSA0MEM0NEFEQzBF
Mzc5OEY0MDA4RkNDNTEgLyogVmVyc2lvbiBJbmZvICovOwotCQkJdGFyZ2V0UHJveHkgPSA0MEM0
NEFFNTBFMzc5OTIyMDA4RkNDNTEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9Owog
CQk0MEM4NDk3QjEwMUEzNjg1MDA4MzY0MkEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA0MEM4NDhGOTEwMUEy
MDlDMDA4MzY0MkEgLyogZ3Rlc3Qtc3RhdGljICovOwpAQCAtODc5LDIyICs4MTgsNiBAQAogCQkJ
fTsKIAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OwotCQk0MEM0NEFERjBFMzc5OEY0MDA4RkNDNTEg
LyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxk
U2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3Q7Ci0JCQkJVEFSR0VUX05BTUUg
PSBndGVzdDsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTQwQzQ0QUUwMEUzNzk4
RjQwMDhGQ0M1MSAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJ
CVRBUkdFVF9OQU1FID0gZ3Rlc3Q7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07CiAJ
CTQwQzg0OEZCMTAxQTIwOUQwMDgzNjQyQSAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MDg5OUZC
MzBGRkE3NTY3MDAwQjI5QUUgLyogU3RhdGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyAqLzsKQEAg
LTk3MCwxMSArODkzLDEzIEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNDBENENERjIwRTMwRTA3NDAwMjk0ODAxIC8qIEZy
YW1ld29ya1RhcmdldC54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ1VS
UkVOVF9QUk9KRUNUX1ZFUlNJT04gPSAxYThlY2YxOwogCQkJCURZTElCX0NPTVBBVElCSUxJVFlf
VkVSU0lPTiA9IDE7CiAJCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlJTkZPUExJ
U1RfRklMRSA9IFJlc291cmNlcy9JbmZvLnBsaXN0OwotCQkJCUlORk9QTElTVF9QUkVGSVhfSEVB
REVSID0gIiQoUFJPSkVDVF9URU1QX0RJUikvVmVyc2lvbi5oIjsKKwkJCQlJTkZPUExJU1RfUFJF
RklYX0hFQURFUiA9ICIiOwogCQkJCUlORk9QTElTVF9QUkVQUk9DRVNTID0gWUVTOworCQkJCU1B
UktFVElOR19WRVJTSU9OID0gIjEuMTArIjsKIAkJCQlQUk9EVUNUX05BTUUgPSBndGVzdDsKIAkJ
CQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBsZS1nZW5lcmljIjsKIAkJCX07CkBAIC0xMDM2LDIz
ICs5NjEsMTcgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJNDRDNDhF
MEQxNEE0MDlERTAwQTJEOUM3IC8qIFByb2R1Y3Rpb24gKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9OQU1FID0g
Z3Rlc3Q7Ci0JCQkJVEFSR0VUX05BTUUgPSBndGVzdDsKLQkJCX07Ci0JCQluYW1lID0gUHJvZHVj
dGlvbjsKLQkJfTsKIAkJNEZBREMyNDMwOEI0MTU2RDAwQUJFNTVFIC8qIERlYnVnICovID0gewog
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IDQwRDRDREYyMEUzMEUwNzQwMDI5NDgwMSAvKiBGcmFtZXdvcmtUYXJnZXQueGNjb25m
aWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNVUlJFTlRfUFJPSkVDVF9WRVJTSU9O
ID0gMWE4ZWNmMTsKIAkJCQlEWUxJQl9DT01QQVRJQklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZ
TElCX0NVUlJFTlRfVkVSU0lPTiA9IDE7CiAJCQkJSU5GT1BMSVNUX0ZJTEUgPSBSZXNvdXJjZXMv
SW5mby5wbGlzdDsKLQkJCQlJTkZPUExJU1RfUFJFRklYX0hFQURFUiA9ICIkKFBST0pFQ1RfVEVN
UF9ESVIpL1ZlcnNpb24uaCI7CisJCQkJSU5GT1BMSVNUX1BSRUZJWF9IRUFERVIgPSAiIjsKIAkJ
CQlJTkZPUExJU1RfUFJFUFJPQ0VTUyA9IFlFUzsKKwkJCQlNQVJLRVRJTkdfVkVSU0lPTiA9ICIx
LjEwKyI7CiAJCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3Q7CiAJCQkJVkVSU0lPTklOR19TWVNURU0g
PSAiYXBwbGUtZ2VuZXJpYyI7CiAJCQl9OwpAQCAtMTA2MiwxMSArOTgxLDEzIEBACiAJCQlpc2Eg
PSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0g
NDBENENERjIwRTMwRTA3NDAwMjk0ODAxIC8qIEZyYW1ld29ya1RhcmdldC54Y2NvbmZpZyAqLzsK
IAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ1VSUkVOVF9QUk9KRUNUX1ZFUlNJT04gPSAxYThl
Y2YxOwogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJCQkJRFlMSUJfQ1VS
UkVOVF9WRVJTSU9OID0gMTsKIAkJCQlJTkZPUExJU1RfRklMRSA9IFJlc291cmNlcy9JbmZvLnBs
aXN0OwotCQkJCUlORk9QTElTVF9QUkVGSVhfSEVBREVSID0gIiQoUFJPSkVDVF9URU1QX0RJUikv
VmVyc2lvbi5oIjsKKwkJCQlJTkZPUExJU1RfUFJFRklYX0hFQURFUiA9ICIiOwogCQkJCUlORk9Q
TElTVF9QUkVQUk9DRVNTID0gWUVTOworCQkJCU1BUktFVElOR19WRVJTSU9OID0gIjEuMTArIjsK
IAkJCQlQUk9EVUNUX05BTUUgPSBndGVzdDsKIAkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBs
ZS1nZW5lcmljIjsKIAkJCX07CkBAIC0xMTE5LDE2ICsxMDQwLDYgQEAKIAkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CiAJCX07Ci0JCTQwQzQ0QUU0MEUzNzk5MDUwMDhGQ0M1MSAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiVmVyc2lvbiBJbmZvIiAqLyA9
IHsKLQkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25z
ID0gKAotCQkJCTQwQzQ0QURGMEUzNzk4RjQwMDhGQ0M1MSAvKiBEZWJ1ZyAqLywKLQkJCQk0MEM0
NEFFMDBFMzc5OEY0MDA4RkNDNTEgLyogUmVsZWFzZSAqLywKLQkJCQk0NEM0OEUwRDE0QTQwOURF
MDBBMkQ5QzcgLyogUHJvZHVjdGlvbiAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9u
OwotCQl9OwogCQk0MEM4NDkwMjEwMUEyMTJFMDA4MzY0MkEgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImd0ZXN0LXN0YXRpYyIgKi8gPSB7CiAJCQlpc2Eg
PSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
</data>
<flag name="commit-queue"
          id="443495"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423970</attachid>
            <date>2021-03-22 17:30:58 -0700</date>
            <delta_ts>2021-03-23 11:45:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223607-20210322173055.patch</filename>
            <type>text/plain</type>
            <size>2277910</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggYTFjYTlkYWNh
YzdmNjQzODM5NjY0MTg5YWUyYTZkMmFhYWQ3N2RiYS4uNGU0ZDJjYzRkOWM5MjNlMTY5ZjJiMzkw
ZDlmYTU1YmE1ZTk3NzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIx
LTAzLTIyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAg
ICBVcGRhdGUgZ29vZ2xldGVzdCB0byAxYThlY2YxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ZXN0LzoKKyAgICAgICAgVXBkYXRlIGdvb2dsZXRl
c3QsIGJ1dC4uLgorCisgICAgICAgICogZ3Rlc3QvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIEtl
ZXAgb3VyIG93biBidWlsZCBmaWxlcywganVzdCBhZGQgdGhlIG5ldyBmaWxlLgorCisgICAgICAg
ICogZ3Rlc3QveGNvZGUvOgorICAgICAgICBLZWVwIG91ciBvd24gYnVpbGQgZmlsZXMsIGJ1dCBp
dCBzZWVtcyB0aGF0IGFmdGVyIDEuMTAuMCwgZ29vZ2xldGVzdCBpcyBqdXN0ICJsaXZlIGF0IEhF
QUQiLAorICAgICAgICBzbyBkaXRjaCBTY3JpcHRzL3ZlcnNpb25nZW5lcmF0ZS5weS4KKworICAg
ICAgICAqIGd0ZXN0L1JFQURNRS5XZWJLaXQ6IFJlbW92ZWQuCisgICAgICAgICogZ3Rlc3QvY2hh
bmdlcy5kaWZmOiBSZW1vdmVkLgorICAgICAgICBJdCBhcHBlYXJzIHRoYXQgb3VyIGZpeCBmb3Ig
RnJlZUJTRCBoYXMgYmVlbiB1cHN0cmVhbWVkLgorCiAyMDIxLTAyLTI0ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBsaW5rZXIgd2FybmluZ3Mg
YnVpbGRpbmcgZ3Rlc3QgZm9yIG1hY0NhdGFseXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9DSEFOR0VTIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvQ0hBTkdFUwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU1MjEzMjQyMTJjOTEyODdkOTI0NGQ0NGJhYjMw
NmRiNjY0YmFkYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9DSEFOR0VTCisrKyAvZGV2L251bGwKQEAgLTEsMTU3
ICswLDAgQEAKLUNoYW5nZXMgZm9yIDEuNy4wOgotCi0qIE5ldyBmZWF0dXJlOiBkZWF0aCB0ZXN0
cyBhcmUgc3VwcG9ydGVkIG9uIE9wZW5CU0QgYW5kIGluIGlPUwotICBzaW11bGF0b3Igbm93Lgot
KiBOZXcgZmVhdHVyZTogR29vZ2xlIFRlc3Qgbm93IGltcGxlbWVudHMgYSBwcm90b2NvbCB0byBh
bGxvdwotICBhIHRlc3QgcnVubmVyIHRvIGRldGVjdCB0aGF0IGEgdGVzdCBwcm9ncmFtIGhhcyBl
eGl0ZWQKLSAgcHJlbWF0dXJlbHkgYW5kIHJlcG9ydCBpdCBhcyBhIGZhaWx1cmUgKGJlZm9yZSBp
dCB3b3VsZCBiZQotICBmYWxzZWx5IHJlcG9ydGVkIGFzIGEgc3VjY2VzcyBpZiB0aGUgZXhpdCBj
b2RlIGlzIDApLgotKiBOZXcgZmVhdHVyZTogVGVzdDo6UmVjb3JkUHJvcGVydHkoKSBjYW4gbm93
IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUKLSAgbGlmZXNwYW4gb2YgYSB0ZXN0IG1ldGhvZCwgaW4g
d2hpY2ggY2FzZSBpdCB3aWxsIGJlIGF0dHJpYnV0ZWQgdG8KLSAgdGhlIGN1cnJlbnQgdGVzdCBj
YXNlIG9yIHRoZSB0ZXN0IHByb2dyYW0gaW4gdGhlIFhNTCByZXBvcnQuCi0qIE5ldyBmZWF0dXJl
IChwb3RlbnRpYWxseSBicmVha2luZyk6IC0tZ3Rlc3RfbGlzdF90ZXN0cyBub3cgcHJpbnRzCi0g
IHRoZSB0eXBlIHBhcmFtZXRlcnMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgZm9yIGVhY2ggdGVzdC4K
LSogSW1wcm92ZW1lbnQ6IGNoYXIgcG9pbnRlcnMgYW5kIGNoYXIgYXJyYXlzIGFyZSBub3cgZXNj
YXBlZCBwcm9wZXJseQotICBpbiBmYWlsdXJlIG1lc3NhZ2VzLgotKiBJbXByb3ZlbWVudDogZmFp
bHVyZSBzdW1tYXJ5IGluIFhNTCByZXBvcnRzIG5vdyBpbmNsdWRlcyBmaWxlIGFuZAotICBsaW5l
IGluZm9ybWF0aW9uLgotKiBJbXByb3ZlbWVudDogdGhlIDx0ZXN0c3VpdGVzPiBYTUwgZWxlbWVu
dCBub3cgaGFzIGEgdGltZXN0YW1wIGF0dHJpYnV0ZS4KLSogSW1wcm92ZW1lbnQ6IFdoZW4gLS1n
dGVzdF9maWx0ZXIgaXMgc3BlY2lmaWVkLCBYTUwgcmVwb3J0IG5vdyBkb2Vzbid0Ci0gIGNvbnRh
aW4gaW5mb3JtYXRpb24gYWJvdXQgdGVzdHMgdGhhdCBhcmUgZmlsdGVyZWQgb3V0LgotKiBGaXhl
ZCB0aGUgYnVnIHdoZXJlIGxvbmcgLS1ndGVzdF9maWx0ZXIgZmxhZyB2YWx1ZXMgYXJlIHRydW5j
YXRlZCBpbgotICBkZWF0aCB0ZXN0cy4KLSogUG90ZW50aWFsbHkgYnJlYWtpbmcgY2hhbmdlOiBS
VU5fQUxMX1RFU1RTKCkgaXMgbm93IGltcGxlbWVudGVkIGFzIGEKLSAgZnVuY3Rpb24gaW5zdGVh
ZCBvZiBhIG1hY3JvIGluIG9yZGVyIHRvIHdvcmsgYmV0dGVyIHdpdGggQ2xhbmcuCi0qIENvbXBh
dGliaWxpdHkgZml4ZXMgd2l0aCBDKysgMTEgYW5kIHZhcmlvdXMgcGxhdGZvcm1zLgotKiBCdWcv
d2FybmluZyBmaXhlcy4KLQotQ2hhbmdlcyBmb3IgMS42LjA6Ci0KLSogTmV3IGZlYXR1cmU6IEFE
RF9GQUlMVVJFX0FUKCkgZm9yIHJlcG9ydGluZyBhIHRlc3QgZmFpbHVyZSBhdCB0aGUKLSAgZ2l2
ZW4gc291cmNlIGxvY2F0aW9uIC0tIHVzZWZ1bCBmb3Igd3JpdGluZyB0ZXN0aW5nIHV0aWxpdGll
cy4KLSogTmV3IGZlYXR1cmU6IHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlciBpcyBtb3ZlZCBm
cm9tIEdvb2dsZSBNb2NrCi0gIHRvIEdvb2dsZSBUZXN0LgotKiBOZXcgZmVhdHVyZTogdHlwZSBw
YXJhbWV0ZXJzIGFuZCB2YWx1ZSBwYXJhbWV0ZXJzIGFyZSByZXBvcnRlZCBpbgotICB0aGUgWE1M
IHJlcG9ydCBub3cuCi0qIEEgZ3Rlc3RfZGlzYWJsZV9wdGhyZWFkcyBDTWFrZSBvcHRpb24uCi0q
IENvbG9yZWQgb3V0cHV0IHdvcmtzIGluIEdOVSBTY3JlZW4gc2Vzc2lvbnMgbm93LgotKiBQYXJh
bWV0ZXJzIG9mIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIG5vdyBwcmludGVkIGluIHRo
ZQotICB0ZXh0dWFsIG91dHB1dC4KLSogRmFpbHVyZXMgZnJvbSBhZCBob2MgdGVzdCBhc3NlcnRp
b25zIHJ1biBiZWZvcmUgUlVOX0FMTF9URVNUUygpIGFyZQotICBub3cgY29ycmVjdGx5IHJlcG9y
dGVkLgotKiBBcmd1bWVudHMgb2YgQVNTRVJUX1hZIGFuZCBFWFBFQ1RfWFkgbm8gbG9uZ2VyIG5l
ZWQgdG8gc3VwcG9ydCA8PCB0bwotICBvc3RyZWFtLgotKiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5n
IG9mIGV4Y2VwdGlvbnMuCi0qIEdURVNUX0FTU0VSVF9YWSBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9m
IEFTU0VSVF9YWSBpbiBjYXNlIHRoZSBsYXR0ZXIKLSAgbmFtZSBpcyBhbHJlYWR5IHVzZWQgYnkg
YW5vdGhlciBsaWJyYXJ5LgotKiAtLWd0ZXN0X2NhdGNoX2V4Y2VwdGlvbnMgaXMgbm93IHRydWUg
YnkgZGVmYXVsdCwgYWxsb3dpbmcgYSB0ZXN0Ci0gIHByb2dyYW0gdG8gY29udGludWUgYWZ0ZXIg
YW4gZXhjZXB0aW9uIGlzIHRocm93bi4KLSogVmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0IGZpeHR1
cmVzIGNhbiBub3cgZGVyaXZlIGZyb20gVGVzdCBhbmQKLSAgV2l0aFBhcmFtSW50ZXJmYWNlPFQ+
IHNlcGFyYXRlbHksIGVhc2luZyBjb252ZXJzaW9uIG9mIGxlZ2FjeSB0ZXN0cy4KLSogRGVhdGgg
dGVzdCBtZXNzYWdlcyBhcmUgY2xlYXJseSBtYXJrZWQgdG8gbWFrZSB0aGVtIG1vcmUKLSAgZGlz
dGluZ3Vpc2hhYmxlIGZyb20gb3RoZXIgbWVzc2FnZXMuCi0qIENvbXBhdGliaWxpdHkgZml4ZXMg
Zm9yIEFuZHJvaWQsIEdvb2dsZSBOYXRpdmUgQ2xpZW50LCBNaW5HVywgSFAgVVgsCi0gIFBvd2Vy
UEMsIEx1Y2lkIGF1dG90b29scywgbGliQ1N0ZCwgU3VuIEMrKywgQm9ybGFuZCBDKysgQnVpbGRl
ciAoQ29kZSBHZWFyKSwKLSAgSUJNIFhMIEMrKyAoVmlzdWFsIEFnZSBDKyspLCBhbmQgQysrMHgu
Ci0qIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBzLgotKiBQb3RlbnRpYWxs
eSBpbmNvbXBhdGlibGUgY2hhbmdlczogZGlzYWJsZXMgdGhlIGhhcm1mdWwgJ21ha2UgaW5zdGFs
bCcKLSAgY29tbWFuZCBpbiBhdXRvdG9vbHMuCi0KLUNoYW5nZXMgZm9yIDEuNS4wOgotCi0gKiBO
ZXcgZmVhdHVyZTogYXNzZXJ0aW9ucyBjYW4gYmUgc2FmZWx5IGNhbGxlZCBpbiBtdWx0aXBsZSB0
aHJlYWRzCi0gICB3aGVyZSB0aGUgcHRocmVhZHMgbGlicmFyeSBpcyBhdmFpbGFibGUuCi0gKiBO
ZXcgZmVhdHVyZTogcHJlZGljYXRlcyB1c2VkIGluc2lkZSBFWFBFQ1RfVFJVRSgpIGFuZCBmcmll
bmRzCi0gICBjYW4gbm93IGdlbmVyYXRlIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2VzLgotICogTmV3
IGZlYXR1cmU6IEdvb2dsZSBUZXN0IGNhbiBub3cgYmUgY29tcGlsZWQgYXMgYSBETEwuCi0gKiBO
ZXcgZmVhdHVyZTogZnVzZWQgc291cmNlIGZpbGVzIGFyZSBpbmNsdWRlZC4KLSAqIE5ldyBmZWF0
dXJlOiBwcmludHMgaGVscCB3aGVuIGVuY291bnRlcmluZyB1bnJlY29nbml6ZWQgR29vZ2xlIFRl
c3QgZmxhZ3MuCi0gKiBFeHBlcmltZW50YWwgZmVhdHVyZTogQ01ha2UgYnVpbGQgc2NyaXB0IChy
ZXF1aXJlcyBDTWFrZSAyLjYuNCspLgotICogRXhwZXJpbWVudGFsIGZlYXR1cmU6IHRoZSBQdW1w
IHNjcmlwdCBmb3IgbWV0YSBwcm9ncmFtbWluZy4KLSAqIGRvdWJsZSB2YWx1ZXMgc3RyZWFtZWQg
dG8gYW4gYXNzZXJ0aW9uIGFyZSBwcmludGVkIHdpdGggZW5vdWdoIHByZWNpc2lvbgotICAgdG8g
ZGlmZmVyZW50aWF0ZSBhbnkgdHdvIGRpZmZlcmVudCB2YWx1ZXMuCi0gKiBHb29nbGUgVGVzdCBu
b3cgd29ya3Mgb24gU29sYXJpcyBhbmQgQUlYLgotICogQnVpbGQgYW5kIHRlc3Qgc2NyaXB0IGlt
cHJvdmVtZW50cy4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBzLgot
Ci0gUG90ZW50aWFsbHkgYnJlYWtpbmcgY2hhbmdlczoKLQotICogU3RvcHBlZCBzdXBwb3J0aW5n
IFZDKysgNy4xIHdpdGggZXhjZXB0aW9ucyBkaXNhYmxlZC4KLSAqIERyb3BwZWQgc3VwcG9ydCBm
b3IgJ21ha2UgaW5zdGFsbCcuCi0KLUNoYW5nZXMgZm9yIDEuNC4wOgotCi0gKiBOZXcgZmVhdHVy
ZTogdGhlIGV2ZW50IGxpc3RlbmVyIEFQSQotICogTmV3IGZlYXR1cmU6IHRlc3Qgc2h1ZmZsaW5n
Ci0gKiBOZXcgZmVhdHVyZTogdGhlIFhNTCByZXBvcnQgZm9ybWF0IGlzIGNsb3NlciB0byBqdW5p
dHJlcG9ydCBhbmQgY2FuCi0gICBiZSBwYXJzZWQgYnkgSHVkc29uIG5vdy4KLSAqIE5ldyBmZWF0
dXJlOiB3aGVuIGEgdGVzdCBydW5zIHVuZGVyIFZpc3VhbCBTdHVkaW8sIGl0cyBmYWlsdXJlcyBh
cmUKLSAgIGludGVncmF0ZWQgaW4gdGhlIElERS4KLSAqIE5ldyBmZWF0dXJlOiAvTUQoZCkgdmVy
c2lvbnMgb2YgVkMrKyBwcm9qZWN0cy4KLSAqIE5ldyBmZWF0dXJlOiBlbGFwc2VkIHRpbWUgZm9y
IHRoZSB0ZXN0cyBpcyBwcmludGVkIGJ5IGRlZmF1bHQuCi0gKiBOZXcgZmVhdHVyZTogY29tZXMg
d2l0aCBhIFRSMSB0dXBsZSBpbXBsZW1lbnRhdGlvbiBzdWNoIHRoYXQgQm9vc3QKLSAgIGlzIG5v
IGxvbmdlciBuZWVkZWQgZm9yIENvbWJpbmUoKS4KLSAqIE5ldyBmZWF0dXJlOiBFWFBFQ1RfREVB
VEhfSUZfU1VQUE9SVEVEIG1hY3JvIGFuZCBmcmllbmRzLgotICogTmV3IGZlYXR1cmU6IHRoZSBY
Y29kZSBwcm9qZWN0IGNhbiBub3cgcHJvZHVjZSBzdGF0aWMgZ3Rlc3QKLSAgIGxpYnJhcmllcyBp
biBhZGRpdGlvbiB0byBhIGZyYW1ld29yay4KLSAqIENvbXBhdGliaWxpdHkgZml4ZXMgZm9yIFNv
bGFyaXMsIEN5Z3dpbiwgbWluR1csIFdpbmRvd3MgTW9iaWxlLAotICAgU3ltYmlhbiwgZ2NjLCBh
bmQgQysrQnVpbGRlci4KLSAqIEJ1ZyBmaXhlcyBhbmQgaW1wbGVtZW50YXRpb24gY2xlYW4tdXBz
LgotCi1DaGFuZ2VzIGZvciAxLjMuMDoKLQotICogTmV3IGZlYXR1cmU6IGRlYXRoIHRlc3RzIG9u
IFdpbmRvd3MsIEN5Z3dpbiwgYW5kIE1hYy4KLSAqIE5ldyBmZWF0dXJlOiBhYmlsaXR5IHRvIHVz
ZSBHb29nbGUgVGVzdCBhc3NlcnRpb25zIGluIG90aGVyIHRlc3RpbmcKLSAgIGZyYW1ld29ya3Mu
Ci0gKiBOZXcgZmVhdHVyZTogYWJpbGl0eSB0byBydW4gZGlzYWJsZWQgdGVzdCB2aWEKLSAgIC0t
Z3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIC0taGVs
cCBmbGFnIGZvciBwcmludGluZyB0aGUgdXNhZ2UuCi0gKiBOZXcgZmVhdHVyZTogYWNjZXNzIHRv
IEdvb2dsZSBUZXN0IGZsYWcgdmFsdWVzIGluIHVzZXIgY29kZS4KLSAqIE5ldyBmZWF0dXJlOiBh
IHNjcmlwdCB0aGF0IHBhY2tzIEdvb2dsZSBUZXN0IGludG8gb25lIC5oIGFuZCBvbmUKLSAgIC5j
YyBmaWxlIGZvciBlYXN5IGRlcGxveW1lbnQuCi0gKiBOZXcgZmVhdHVyZTogc3VwcG9ydCBmb3Ig
ZGlzdHJpYnV0aW5nIHRlc3QgZnVuY3Rpb25zIHRvIG11bHRpcGxlCi0gICBtYWNoaW5lcyAocmVx
dWlyZXMgc3VwcG9ydCBmcm9tIHRoZSB0ZXN0IHJ1bm5lcikuCi0gKiBCdWcgZml4ZXMgYW5kIGlt
cGxlbWVudGF0aW9uIGNsZWFuLXVwcy4KLQotQ2hhbmdlcyBmb3IgMS4yLjE6Ci0KLSAqIENvbXBh
dGliaWxpdHkgZml4ZXMgZm9yIExpbnV4IElBLTY0IGFuZCBJQk0gei9PUy4KLSAqIEFkZGVkIHN1
cHBvcnQgZm9yIHVzaW5nIEJvb3N0IGFuZCBvdGhlciBUUjEgaW1wbGVtZW50YXRpb25zLgotICog
Q2hhbmdlcyB0byB0aGUgYnVpbGQgc2NyaXB0cyB0byBzdXBwb3J0IHVwY29taW5nIHJlbGVhc2Ug
b2YgR29vZ2xlIEMrKwotICAgTW9ja2luZyBGcmFtZXdvcmsuCi0gKiBBZGRlZCBNYWtlZmlsZSB0
byB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UuCi0gKiBJbXByb3ZlZCBidWlsZCBpbnN0cnVjdGlv
bnMgaW4gUkVBRE1FLgotCi1DaGFuZ2VzIGZvciAxLjIuMDoKLQotICogTmV3IGZlYXR1cmU6IHZh
bHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogdGhlIEFTU0VSVC9FWFBF
Q1RfKE5PTilGQVRBTF9GQUlMVVJFKF9PTl9BTExfVEhSRUFEUykKLSAgIG1hY3Jvcy4KLSAqIENo
YW5nZWQgdGhlIFhNTCByZXBvcnQgZm9ybWF0IHRvIG1hdGNoIEpVbml0L0FudCdzLgotICogQWRk
ZWQgdGVzdHMgdG8gdGhlIFhjb2RlIHByb2plY3QuCi0gKiBBZGRlZCBzY29ucy9TQ29uc2NyaXB0
IGZvciBidWlsZGluZyB3aXRoIFNDb25zLgotICogQWRkZWQgc3JjL2d0ZXN0LWFsbC5jYyBmb3Ig
YnVpbGRpbmcgR29vZ2xlIFRlc3QgZnJvbSBhIHNpbmdsZSBmaWxlLgotICogRml4ZWQgY29tcGF0
aWJpbGl0eSB3aXRoIFNvbGFyaXMgYW5kIHovT1MuCi0gKiBFbmFibGVkIHJ1bm5pbmcgUHl0aG9u
IHRlc3RzIG9uIHN5c3RlbXMgd2l0aCBweXRob24gMi4zIGluc3RhbGxlZCwKLSAgIGUuZy4gTWFj
IE9TIFggMTAuNC4KLSAqIEJ1ZyBmaXhlcy4KLQotQ2hhbmdlcyBmb3IgMS4xLjA6Ci0KLSAqIE5l
dyBmZWF0dXJlOiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0gKiBOZXcgZmVhdHVyZTogZXhj
ZXB0aW9uIGFzc2VydGlvbnMuCi0gKiBOZXcgZmVhdHVyZTogcHJpbnRpbmcgZWxhcHNlZCB0aW1l
IG9mIHRlc3RzLgotICogSW1wcm92ZWQgdGhlIHJvYnVzdG5lc3Mgb2YgZGVhdGggdGVzdHMuCi0g
KiBBZGRlZCBhbiBYY29kZSBwcm9qZWN0IGFuZCBzYW1wbGVzLgotICogQWRqdXN0ZWQgdGhlIG91
dHB1dCBmb3JtYXQgb24gV2luZG93cyB0byBiZSB1bmRlcnN0YW5kYWJsZSBieSBWaXN1YWwgU3R1
ZGlvLgotICogTWlub3IgYnVnIGZpeGVzLgotCi1DaGFuZ2VzIGZvciAxLjAuMToKLQotICogQWRk
ZWQgcHJvamVjdCBmaWxlcyBmb3IgVmlzdWFsIFN0dWRpbyA3LjEuCi0gKiBGaXhlZCBpc3N1ZXMg
d2l0aCBjb21waWxpbmcgb24gTWFjIE9TIFguCi0gKiBGaXhlZCBpc3N1ZXMgd2l0aCBjb21waWxp
bmcgb24gQ3lnd2luLgotCi1DaGFuZ2VzIGZvciAxLjAuMDoKLQotICogSW5pdGlhbCBPcGVuIFNv
dXJjZSByZWxlYXNlIG9mIEdvb2dsZSBUZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NNYWtlTGlz
dHMudHh0CmluZGV4IDUxMDQzZTI2NjkyOWNmNzdiZGQ2NTE4NTlhMTg4OTMyZjRlZmY2ZjkuLjY3
NDc3ZjQ3Y2UzOTM5MDVlYzc0NDU0NDNjNTA4NjNiMDZjZjQyNzAgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L0NNYWtlTGlzdHMudHh0CkBAIC0xNCw2ICsxNCw3IEBAIHNldChHVEVTVF9TT1VSQ0VT
CiAgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjCiAgICAgJHtHVEVTVF9E
SVJ9L3NyYy9ndGVzdC1maWxlcGF0aC5jYwogICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3RfbWFp
bi5jYworICAgICR7R1RFU1RfRElSfS9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MKICAgICAke0dURVNU
X0RJUn0vc3JjL2d0ZXN0LXBvcnQuY2MKICAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LXByaW50
ZXJzLmNjCiAgICAgJHtHVEVTVF9ESVJ9L3NyYy9ndGVzdC10ZXN0LXBhcnQuY2MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L0NPTlRSSUJVVE9SUyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L0NPTlRSSUJVVE9SUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVh
ZTJmYzA0NDEwZGMzMDhlNDY0YWEyNTZmZTFmMmQzMWVkYzk4OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9DT05U
UklCVVRPUlMKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIFRoaXMgZmlsZSBjb250
YWlucyBhIGxpc3Qgb2YgcGVvcGxlIHdobyd2ZSBtYWRlIG5vbi10cml2aWFsCi0jIGNvbnRyaWJ1
dGlvbiB0byB0aGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayBwcm9qZWN0LiAgUGVvcGxl
Ci0jIHdobyBjb21taXQgY29kZSB0byB0aGUgcHJvamVjdCBhcmUgZW5jb3VyYWdlZCB0byBhZGQg
dGhlaXIgbmFtZXMKLSMgaGVyZS4gIFBsZWFzZSBrZWVwIHRoZSBsaXN0IHNvcnRlZCBieSBmaXJz
dCBuYW1lcy4KLQotQWpheSBKb3NoaSA8amFqQGdvb2dsZS5jb20+Ci1CYWzDoXpzIETDoW4gPGJh
bGF6cy5kYW5AZ21haWwuY29tPgotQmhhcmF0IE1lZGlyYXR0YSA8YmhhcmF0QG1lbmFsdG8uY29t
PgotQ2hhbmRsZXIgQ2FycnV0aCA8Y2hhbmRsZXJjQGdvb2dsZS5jb20+Ci1DaHJpcyBQcmluY2Ug
PGNwcmluY2VAZ29vZ2xlLmNvbT4KLUNocmlzIFRheWxvciA8dGF5bG9yY0Bnb29nbGUuY29tPgot
RGFuIEVnbm9yIDxlZ25vckBnb29nbGUuY29tPgotRXJpYyBSb21hbiA8ZXJvbWFuQGNocm9taXVt
Lm9yZz4KLUhhZHkgWmFsZWsgPGhhZHkuemFsZWtAZ21haWwuY29tPgotSmVmZnJleSBZYXNza2lu
IDxqeWFzc2tpbkBnb29nbGUuY29tPgotSsOzaSBTaWd1csOwc3NvbiA8am9pQGdvb2dsZS5jb20+
Ci1LZWlyIE1pZXJsZSA8bWllcmxlQGdtYWlsLmNvbT4KLUtlaXRoIFJheSA8a2VpdGgucmF5QGdt
YWlsLmNvbT4KLUtlbnRvbiBWYXJkYSA8a2VudG9uQGdvb2dsZS5jb20+Ci1NYW51ZWwgS2xpbWVr
IDxrbGltZWtAZ29vZ2xlLmNvbT4KLU1hcmt1cyBIZXVsZSA8bWFya3VzLmhldWxlQGdtYWlsLmNv
bT4KLU1pa2EgUmFlbnRvIDxtaWtpZUBpa2kuZmk+Ci1NaWtsw7NzIEZhemVrYXMgPG1mYXpla2Fz
QHN6ZW1hZm9yLmNvbT4KLVBhc2kgVmFsbWluZW4gPHBhc2kudmFsbWluZW5AZ21haWwuY29tPgot
UGF0cmljayBIYW5uYSA8cGhhbm5hQGdvb2dsZS5jb20+Ci1QYXRyaWNrIFJpbGV5IDxwZnJAZ29v
Z2xlLmNvbT4KLVBldGVyIEthbWluc2tpIDxwaW90cmtAZ29vZ2xlLmNvbT4KLVByZXN0b24gSmFj
a3NvbiA8cHJlc3Rvbi5hLmphY2tzb25AZ21haWwuY29tPgotUmFpbmVyIEtsYWZmZW5ib2VjayA8
cmFpbmVyLmtsYWZmZW5ib2Vja0BkeW5hdHJhY2UuY29tPgotUnVzcyBDb3ggPHJzY0Bnb29nbGUu
Y29tPgotUnVzcyBSdWZlciA8cnVzc0BwZW50YWQuY29tPgotU2VhbiBNY2FmZWUgPGVlZmFjbUBn
bWFpbC5jb20+Ci1TaWd1csOwdXIgw4FzZ2VpcnNzb24gPHNpZ2dpQGdvb2dsZS5jb20+Ci1UcmFj
eSBCaWFsaWsgPHRyYWN5QHBlbnRhZC5jb20+Ci1WYWRpbSBCZXJtYW4gPHZhZGltYkBnb29nbGUu
Y29tPgotVmxhZCBMb3NldiA8dmxhZGxAZ29vZ2xlLmNvbT4KLVpoYW55b25nIFdhbiA8d2FuQGdv
b2dsZS5jb20+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9NYWtlZmlsZS5h
bSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L01ha2VmaWxlLmFtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiNDRjODQxNmJhMDgwYzJmMDE2ZjE2NmIxOGI0MmMwZjczZWNlN2JlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L01ha2VmaWxlLmFtCisrKyAvZGV2L251bGwKQEAgLTEsMzM5ICswLDAgQEAK
LSMgQXV0b21ha2UgZmlsZQotCi1BQ0xPQ0FMX0FNRkxBR1MgPSAtSSBtNAotCi0jIE5vbnN0YW5k
YXJkIHBhY2thZ2UgZmlsZXMgZm9yIGRpc3RyaWJ1dGlvbgotRVhUUkFfRElTVCA9IFwKLSAgQ0hB
TkdFUyBcCi0gIENPTlRSSUJVVE9SUyBcCi0gIExJQ0VOU0UgXAotICBpbmNsdWRlL2d0ZXN0L2d0
ZXN0LXBhcmFtLXRlc3QuaC5wdW1wIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1w
YXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAgXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0
ZXN0LXR1cGxlLmgucHVtcCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11
dGlsLmgucHVtcCBcCi0gIG1ha2UvTWFrZWZpbGUgXAotICBzY3JpcHRzL2Z1c2VfZ3Rlc3RfZmls
ZXMucHkgXAotICBzY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2ltcGwucHkgXAotICBzY3JpcHRzL3B1
bXAucHkgXAotICBzY3JpcHRzL3Rlc3QvTWFrZWZpbGUKLQotIyBndGVzdCBzb3VyY2UgZmlsZXMg
dGhhdCB3ZSBkb24ndCBjb21waWxlIGRpcmVjdGx5LiAgVGhleSBhcmUKLSMgI2luY2x1ZGVkIGJ5
IGd0ZXN0LWFsbC5jYy4KLUdURVNUX1NSQyA9IFwKLSAgc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2Mg
XAotICBzcmMvZ3Rlc3QtZmlsZXBhdGguY2MgXAotICBzcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmgg
XAotICBzcmMvZ3Rlc3QtcG9ydC5jYyBcCi0gIHNyYy9ndGVzdC1wcmludGVycy5jYyBcCi0gIHNy
Yy9ndGVzdC10ZXN0LXBhcnQuY2MgXAotICBzcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYyBcCi0gIHNy
Yy9ndGVzdC5jYwotCi1FWFRSQV9ESVNUICs9ICQoR1RFU1RfU1JDKQotCi0jIFNhbXBsZSBmaWxl
cyB0aGF0IHdlIGRvbid0IGNvbXBpbGUuCi1FWFRSQV9ESVNUICs9IFwKLSAgc2FtcGxlcy9wcmlt
ZV90YWJsZXMuaCBcCi0gIHNhbXBsZXMvc2FtcGxlMV91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMv
c2FtcGxlMl91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYyBcCi0g
IHNhbXBsZXMvc2FtcGxlNF91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlNV91bml0dGVz
dC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxl
N191bml0dGVzdC5jYyBcCi0gIHNhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYyBcCi0gIHNhbXBs
ZXMvc2FtcGxlOV91bml0dGVzdC5jYwotCi0jIEMrKyB0ZXN0IGZpbGVzIHRoYXQgd2UgZG9uJ3Qg
Y29tcGlsZSBkaXJlY3RseS4KLUVYVFJBX0RJU1QgKz0gXAotICB0ZXN0L2d0ZXN0LWRlYXRoLXRl
c3RfZXhfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3QtZGVhdGgtdGVzdF90ZXN0LmNjIFwKLSAgdGVz
dC9ndGVzdC1maWxlcGF0aF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1saW5rZWRfcHRyX3Rlc3Qu
Y2MgXAotICB0ZXN0L2d0ZXN0LWxpc3RlbmVyX3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LW1lc3Nh
Z2VfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rlc3Qtb3B0aW9uc190ZXN0LmNjIFwKLSAgdGVzdC9nb29n
bGV0ZXN0LXBhcmFtLXRlc3QyLXRlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVz
dDItdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgXAotICB0
ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1wYXJhbS10
ZXN0X3Rlc3QuaCBcCi0gIHRlc3QvZ3Rlc3QtcG9ydF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9w
cmVtYXR1cmVfZXhpdF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC1wcmludGVyc190ZXN0LmNjIFwK
LSAgdGVzdC9ndGVzdC10ZXN0LXBhcnRfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC10dXBs
ZS10ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjIFwKLSAgdGVzdC9n
dGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MgXAotICB0ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5o
IFwKLSAgdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVz
dC1icmVhay1vbi1mYWlsdXJlLXVuaXR0ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1jYXRj
aC1leGNlcHRpb25zLXRlc3RfLmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LWNvbG9yLXRlc3RfLmNj
IFwKLSAgdGVzdC9nb29nbGV0ZXN0LWVudi12YXItdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X2Vu
dmlyb25tZW50X3Rlc3QuY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0Xy5j
YyBcCi0gIHRlc3QvZ3Rlc3RfaGVscF90ZXN0Xy5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1saXN0
LXRlc3RzLXVuaXR0ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfbWFpbl91bml0dGVzdC5jYyBcCi0g
IHRlc3QvZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYyBcCi0gIHRlc3QvZ29vZ2xldGVzdC1vdXRw
dXQtdGVzdF8uY2MgXAotICB0ZXN0L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyBcCi0gIHRl
c3QvZ3Rlc3RfcHJvZF90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYyBcCi0g
IHRlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjIFwKLSAgdGVzdC9ndGVzdF9zb2xlX2hl
YWRlcl90ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF9zdHJlc3NfdGVzdC5jYyBcCi0gIHRlc3QvZ3Rl
c3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjIFwKLSAgdGVzdC9nb29nbGV0ZXN0LXRocm93
LW9uLWZhaWx1cmUtdGVzdF8uY2MgXAotICB0ZXN0L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10
ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfdW5pdHRlc3QuY2MgXAotICB0ZXN0L2d0ZXN0X3VuaXR0
ZXN0LmNjIFwKLSAgdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MgXAotICB0ZXN0L2d0
ZXN0X3htbF9vdXRmaWxlMl90ZXN0Xy5jYyBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0
dGVzdF8uY2MgXAotICB0ZXN0L3Byb2R1Y3Rpb24uY2MgXAotICB0ZXN0L3Byb2R1Y3Rpb24uaAot
Ci0jIFB5dGhvbiB0ZXN0cyB0aGF0IHdlIGRvbid0IHJ1bi4KLUVYVFJBX0RJU1QgKz0gXAotICB0
ZXN0L2dvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdC5weSBcCi0gIHRlc3QvZ29v
Z2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtY29s
b3ItdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3QucHkgXAotICB0ZXN0
L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5IFwKLSAgdGVzdC9ndGVzdF9oZWxwX3Rlc3Qu
cHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdC5weSBcCi0gIHRlc3Qv
Z29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weSBcCi0gIHRlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVz
dF9nb2xkZW5fbGluLnR4dCBcCi0gIHRlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3QucHkgXAot
ICB0ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkgXAotICB0ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24t
ZmFpbHVyZS10ZXN0LnB5IFwKLSAgdGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5w
eSBcCi0gIHRlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkgXAotICB0ZXN0L2d0ZXN0X3ht
bF9vdXRwdXRfdW5pdHRlc3QucHkgXAotICB0ZXN0L2d0ZXN0X3htbF90ZXN0X3V0aWxzLnB5Ci0K
LSMgQ01ha2Ugc2NyaXB0Ci1FWFRSQV9ESVNUICs9IFwKLSAgQ01ha2VMaXN0cy50eHQgXAotICBj
bWFrZS9pbnRlcm5hbF91dGlscy5jbWFrZQotCi0jIE1TVkMgcHJvamVjdCBmaWxlcwotRVhUUkFf
RElTVCArPSBcCi0gIG1zdmMvMjAxMC9ndGVzdC1tZC5zbG4gXAotICBtc3ZjLzIwMTAvZ3Rlc3Qt
bWQudmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdC5zbG4gXAotICBtc3ZjLzIwMTAvZ3Rlc3Qu
dmN4cHJvaiBcCi0gIG1zdmMvMjAxMC9ndGVzdF9tYWluLW1kLnZjeHByb2ogXAotICBtc3ZjLzIw
MTAvZ3Rlc3RfbWFpbi52Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC1tZC52
Y3hwcm9qIFwKLSAgbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qIFwKLSAgbXN2Yy8y
MDEwL2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2ogXAotICBtc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRl
c3QudmN4cHJvagotCi0jIHhjb2RlIHByb2plY3QgZmlsZXMKLUVYVFJBX0RJU1QgKz0gXAotICB4
Y29kZS9Db25maWcvRGVidWdQcm9qZWN0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmlnL0ZyYW1l
d29ya1RhcmdldC54Y2NvbmZpZyBcCi0gIHhjb2RlL0NvbmZpZy9HZW5lcmFsLnhjY29uZmlnIFwK
LSAgeGNvZGUvQ29uZmlnL1JlbGVhc2VQcm9qZWN0LnhjY29uZmlnIFwKLSAgeGNvZGUvQ29uZmln
L1N0YXRpY0xpYnJhcnlUYXJnZXQueGNjb25maWcgXAotICB4Y29kZS9Db25maWcvVGVzdFRhcmdl
dC54Y2NvbmZpZyBcCi0gIHhjb2RlL1Jlc291cmNlcy9JbmZvLnBsaXN0IFwKLSAgeGNvZGUvU2Ny
aXB0cy9ydW50ZXN0cy5zaCBcCi0gIHhjb2RlL1NjcmlwdHMvdmVyc2lvbmdlbmVyYXRlLnB5IFwK
LSAgeGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagotCi0jIHhjb2RlIHNhbXBs
ZSBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3b3JrU2FtcGxl
L0luZm8ucGxpc3QgXAotICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS9XaWRnZXRGcmFt
ZXdvcmsueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBcCi0gIHhjb2RlL1NhbXBsZXMvRnJhbWV3
b3JrU2FtcGxlL3J1bnRlc3RzLnNoIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUv
d2lkZ2V0LmNjIFwKLSAgeGNvZGUvU2FtcGxlcy9GcmFtZXdvcmtTYW1wbGUvd2lkZ2V0LmggXAot
ICB4Y29kZS9TYW1wbGVzL0ZyYW1ld29ya1NhbXBsZS93aWRnZXRfdGVzdC5jYwotCi0jIEMrK0J1
aWxkZXIgcHJvamVjdCBmaWxlcwotRVhUUkFfRElTVCArPSBcCi0gIGNvZGVnZWFyL2d0ZXN0LmNi
cHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0Lmdyb3VwcHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0X2Fs
bC5jYyBcCi0gIGNvZGVnZWFyL2d0ZXN0X2xpbmsuY2MgXAotICBjb2RlZ2Vhci9ndGVzdF9tYWlu
LmNicHJvaiBcCi0gIGNvZGVnZWFyL2d0ZXN0X3VuaXR0ZXN0LmNicHJvagotCi0jIERpc3RyaWJ1
dGUgYW5kIGluc3RhbGwgTTQgbWFjcm8KLW00ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAot
bTRkYXRhX0RBVEEgPSBtNC9ndGVzdC5tNAotRVhUUkFfRElTVCArPSAkKG00ZGF0YV9EQVRBKQot
Ci0jIFdlIGRlZmluZSB0aGUgZ2xvYmFsIEFNX0NQUEZMQUdTIGFzIGV2ZXJ5dGhpbmcgd2UgY29t
cGlsZSBpbmNsdWRlcyBmcm9tIHRoZXNlCi0jIGRpcmVjdG9yaWVzLgotQU1fQ1BQRkxBR1MgPSAt
SSQoc3JjZGlyKSAtSSQoc3JjZGlyKS9pbmNsdWRlCi0KLSMgTW9kaWZpZXMgY29tcGlsZXIgYW5k
IGxpbmtlciBmbGFncyBmb3IgcHRocmVhZHMgY29tcGF0aWJpbGl0eS4KLWlmIEhBVkVfUFRIUkVB
RFMKLSAgQU1fQ1hYRkxBR1MgPSBAUFRIUkVBRF9DRkxBR1NAIC1ER1RFU1RfSEFTX1BUSFJFQUQ9
MQotICBBTV9MSUJTID0gQFBUSFJFQURfTElCU0AKLWVsc2UKLSAgQU1fQ1hYRkxBR1MgPSAtREdU
RVNUX0hBU19QVEhSRUFEPTAKLWVuZGlmCi0KLSMgQnVpbGQgcnVsZXMgZm9yIGxpYnJhcmllcy4K
LWxpYl9MVExJQlJBUklFUyA9IGxpYi9saWJndGVzdC5sYSBsaWIvbGliZ3Rlc3RfbWFpbi5sYQot
Ci1saWJfbGliZ3Rlc3RfbGFfU09VUkNFUyA9IHNyYy9ndGVzdC1hbGwuY2MKLQotcGtnaW5jbHVk
ZV9IRUFERVJTID0gXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCBcCi0gIGlu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC1wYXJh
bS10ZXN0LmggXAotICBpbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmggXAotICBpbmNsdWRl
L2d0ZXN0L2d0ZXN0LXNwaS5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCBc
Ci0gIGluY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9n
dGVzdC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaCBcCi0gIGluY2x1ZGUv
Z3Rlc3QvZ3Rlc3RfcHJvZC5oCi0KLXBrZ2luY2x1ZGVfaW50ZXJuYWxkaXIgPSAkKHBrZ2luY2x1
ZGVkaXIpL2ludGVybmFsCi1wa2dpbmNsdWRlX2ludGVybmFsX0hFQURFUlMgPSBcCi0gIGluY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtZGVhdGgtdGVzdC1pbnRlcm5hbC5oIFwKLSAgaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9ndGVzdC1pbnRlcm5hbC5oIFwKLSAgaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1s
aW5rZWRfcHRyLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwt
Z2VuZXJhdGVkLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwu
aCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIFwKLSAgaW5jbHVkZS9n
dGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3Qtc3RyaW5nLmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxl
LmggXAotICBpbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUtdXRpbC5oIFwKLSAgaW5j
bHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaCBcCi0gIGluY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvY3Vz
dG9tL2d0ZXN0LXByaW50ZXJzLmgKLQotbGliX2xpYmd0ZXN0X21haW5fbGFfU09VUkNFUyA9IHNy
Yy9ndGVzdF9tYWluLmNjCi1saWJfbGliZ3Rlc3RfbWFpbl9sYV9MSUJBREQgPSBsaWIvbGliZ3Rl
c3QubGEKLQotIyBCdWlsZCBydWxlcyBmb3Igc2FtcGxlcyBhbmQgdGVzdHMuIEF1dG9tYWtlJ3Mg
bmFtaW5nIGZvciBzb21lIG9mCi0jIHRoZXNlIHZhcmlhYmxlcyBpc24ndCB0ZXJyaWJseSBvYnZp
b3VzLCBzbyB0aGlzIGlzIGEgYnJpZWYKLSMgcmVmZXJlbmNlOgotIwotIyBURVNUUyAtLSBQcm9n
cmFtcyBydW4gYXV0b21hdGljYWxseSBieSAibWFrZSBjaGVjayIKLSMgY2hlY2tfUFJPR1JBTVMg
LS0gUHJvZ3JhbXMgYnVpbHQgYnkgIm1ha2UgY2hlY2siIGJ1dCBub3QgbmVjZXNzYXJpbHkgcnVu
Ci0KLVRFU1RTPQotVEVTVFNfRU5WSVJPTk1FTlQgPSBHVEVTVF9TT1VSQ0VfRElSPSIkKHNyY2Rp
cikvdGVzdCIgXAotICAgICAgICAgICAgICAgICAgICBHVEVTVF9CVUlMRF9ESVI9IiQodG9wX2J1
aWxkZGlyKS90ZXN0IgotY2hlY2tfUFJPR1JBTVM9Ci0KLSMgQSBzaW1wbGUgc2FtcGxlIG9uIHVz
aW5nIGd0ZXN0LgotVEVTVFMgKz0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0IFwKLSAgICBzYW1w
bGVzL3NhbXBsZTJfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdCBcCi0g
ICAgc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTVfdW5pdHRl
c3QgXAotICAgIHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU3
X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMv
c2FtcGxlOV91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdAotY2hlY2tf
UFJPR1JBTVMgKz0gc2FtcGxlcy9zYW1wbGUxX3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBs
ZTJfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlM191bml0dGVzdCBcCi0gICAgc2FtcGxl
cy9zYW1wbGU0X3VuaXR0ZXN0IFwKLSAgICBzYW1wbGVzL3NhbXBsZTVfdW5pdHRlc3QgXAotICAg
IHNhbXBsZXMvc2FtcGxlNl91bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGU3X3VuaXR0ZXN0
IFwKLSAgICBzYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QgXAotICAgIHNhbXBsZXMvc2FtcGxlOV91
bml0dGVzdCBcCi0gICAgc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdAotCi1zYW1wbGVzX3NhbXBs
ZTFfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlMV91bml0dGVzdC5jYyBzYW1wbGVz
L3NhbXBsZTEuY2MKLXNhbXBsZXNfc2FtcGxlMV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVz
dF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVz
dC5sYQotc2FtcGxlc19zYW1wbGUyX3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTJf
dW5pdHRlc3QuY2Mgc2FtcGxlcy9zYW1wbGUyLmNjCi1zYW1wbGVzX3NhbXBsZTJfdW5pdHRlc3Rf
TERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlM191bml0dGVzdF9TT1VSQ0VT
ID0gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjCi1zYW1wbGVzX3NhbXBsZTNfdW5pdHRlc3Rf
TERBREQgPSBsaWIvbGliZ3Rlc3RfbWFpbi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaWIvbGliZ3Rlc3QubGEKLXNhbXBsZXNfc2FtcGxlNF91bml0dGVzdF9TT1VSQ0VT
ID0gc2FtcGxlcy9zYW1wbGU0X3VuaXR0ZXN0LmNjIHNhbXBsZXMvc2FtcGxlNC5jYwotc2FtcGxl
c19zYW1wbGU0X3VuaXR0ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliL2xpYmd0ZXN0LmxhCi1zYW1wbGVzX3NhbXBs
ZTVfdW5pdHRlc3RfU09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlNV91bml0dGVzdC5jYyBzYW1wbGVz
L3NhbXBsZTEuY2MKLXNhbXBsZXNfc2FtcGxlNV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVz
dF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVz
dC5sYQotc2FtcGxlc19zYW1wbGU2X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTZf
dW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlNl91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVz
dF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVz
dC5sYQotc2FtcGxlc19zYW1wbGU3X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTdf
dW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlN191bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVz
dF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVz
dC5sYQotc2FtcGxlc19zYW1wbGU4X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZThf
dW5pdHRlc3QuY2MKLXNhbXBsZXNfc2FtcGxlOF91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVz
dF9tYWluLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJndGVz
dC5sYQotCi0jIEFsc28gdmVyaWZ5IHRoYXQgbGliZ3Rlc3Qgd29ya3MgYnkgaXRzZWxmLgotc2Ft
cGxlc19zYW1wbGU5X3VuaXR0ZXN0X1NPVVJDRVMgPSBzYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3Qu
Y2MKLXNhbXBsZXNfc2FtcGxlOV91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdC5sYQotc2Ft
cGxlc19zYW1wbGUxMF91bml0dGVzdF9TT1VSQ0VTID0gc2FtcGxlcy9zYW1wbGUxMF91bml0dGVz
dC5jYwotc2FtcGxlc19zYW1wbGUxMF91bml0dGVzdF9MREFERCA9IGxpYi9saWJndGVzdC5sYQot
Ci0jIFRoaXMgdGVzdHMgbW9zdCBjb25zdHJ1Y3RzIG9mIGd0ZXN0IGFuZCB2ZXJpZmllcyB0aGF0
IGxpYmd0ZXN0X21haW4KLSMgYW5kIGxpYmd0ZXN0IHdvcmsuCi1URVNUUyArPSB0ZXN0L2d0ZXN0
X2FsbF90ZXN0Ci1jaGVja19QUk9HUkFNUyArPSB0ZXN0L2d0ZXN0X2FsbF90ZXN0Ci10ZXN0X2d0
ZXN0X2FsbF90ZXN0X1NPVVJDRVMgPSB0ZXN0L2d0ZXN0X2FsbF90ZXN0LmNjCi10ZXN0X2d0ZXN0
X2FsbF90ZXN0X0xEQUREID0gbGliL2xpYmd0ZXN0X21haW4ubGEgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpYi9saWJndGVzdC5sYQotCi0jIFRlc3RzIHRoYXQgZnVzZWQgZ3Rlc3Qg
ZmlsZXMgY29tcGlsZSBhbmQgd29yay4KLUZVU0VEX0dURVNUX1NSQyA9IFwKLSAgZnVzZWQtc3Jj
L2d0ZXN0L2d0ZXN0LWFsbC5jYyBcCi0gIGZ1c2VkLXNyYy9ndGVzdC9ndGVzdC5oIFwKLSAgZnVz
ZWQtc3JjL2d0ZXN0L2d0ZXN0X21haW4uY2MKLQotaWYgSEFWRV9QWVRIT04KLVRFU1RTICs9IHRl
c3QvZnVzZWRfZ3Rlc3RfdGVzdAotY2hlY2tfUFJPR1JBTVMgKz0gdGVzdC9mdXNlZF9ndGVzdF90
ZXN0Ci10ZXN0X2Z1c2VkX2d0ZXN0X3Rlc3RfU09VUkNFUyA9ICQoRlVTRURfR1RFU1RfU1JDKSBc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZXMvc2FtcGxlMS5jYyBzYW1w
bGVzL3NhbXBsZTFfdW5pdHRlc3QuY2MKLXRlc3RfZnVzZWRfZ3Rlc3RfdGVzdF9DUFBGTEFHUyA9
IC1JIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0KLSMgQnVpbGQgcnVsZXMgZm9yIHB1dHRpbmcgZnVz
ZWQgR29vZ2xlIFRlc3QgZmlsZXMgaW50byB0aGUgZGlzdHJpYnV0aW9uCi0jIHBhY2thZ2UuIFRo
ZSB1c2VyIGNhbiBhbHNvIGNyZWF0ZSB0aG9zZSBmaWxlcyBieSBtYW51YWxseSBydW5uaW5nCi0j
IHNjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weS4KLSQodGVzdF9mdXNlZF9ndGVzdF90ZXN0X1NP
VVJDRVMpOiBmdXNlZC1ndGVzdAotCi1mdXNlZC1ndGVzdDogJChwa2dpbmNsdWRlX0hFQURFUlMp
ICQocGtnaW5jbHVkZV9pbnRlcm5hbF9IRUFERVJTKSBcCi0gICAgICAgICAgICAgJChHVEVTVF9T
UkMpIHNyYy9ndGVzdC1hbGwuY2Mgc3JjL2d0ZXN0X21haW4uY2MgXAotICAgICAgICAgICAgIHNj
cmlwdHMvZnVzZV9ndGVzdF9maWxlcy5weQotCW1rZGlyIC1wICIkKHNyY2RpcikvZnVzZWQtc3Jj
IgotCWNobW9kIC1SIHUrdyAiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLQlybSAtZiAiJChzcmNkaXIp
L2Z1c2VkLXNyYy9ndGVzdC9ndGVzdC1hbGwuY2MiCi0Jcm0gLWYgIiQoc3JjZGlyKS9mdXNlZC1z
cmMvZ3Rlc3QvZ3Rlc3QuaCIKLQkiJChzcmNkaXIpL3NjcmlwdHMvZnVzZV9ndGVzdF9maWxlcy5w
eSIgIiQoc3JjZGlyKS9mdXNlZC1zcmMiCi0JY3AgLWYgIiQoc3JjZGlyKS9zcmMvZ3Rlc3RfbWFp
bi5jYyIgIiQoc3JjZGlyKS9mdXNlZC1zcmMvZ3Rlc3QvIgotCi1tYWludGFpbmVyLWNsZWFuLWxv
Y2FsOgotCXJtIC1yZiAiJChzcmNkaXIpL2Z1c2VkLXNyYyIKLWVuZGlmCi0KLSMgRGVhdGggdGVz
dHMgbWF5IHByb2R1Y2UgY29yZSBkdW1wcyBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5LiBJbiBjYXNl
Ci0jIHRoaXMgaGFwcGVucywgY2xlYW4gdGhlbSB0byBrZWVwIGRpc3RjbGVhbmNoZWNrIGhhcHB5
LgotQ0xFQU5GSUxFUyA9IGNvcmUKLQotIyBEaXNhYmxlcyAnbWFrZSBpbnN0YWxsJyBhcyBpbnN0
YWxsaW5nIGEgY29tcGlsZWQgdmVyc2lvbiBvZiBHb29nbGUKLSMgVGVzdCBjYW4gbGVhZCB0byB1
bmRlZmluZWQgYmVoYXZpb3IgZHVlIHRvIHZpb2xhdGlvbiBvZiB0aGUKLSMgT25lLURlZmluaXRp
b24gUnVsZS4KLQotaW5zdGFsbC1leGVjLWxvY2FsOgotCWVjaG8gIidtYWtlIGluc3RhbGwnIGlz
IGRhbmdlcm91cyBhbmQgbm90IHN1cHBvcnRlZC4gSW5zdGVhZCwgc2VlIFJFQURNRSBmb3IgaG93
IHRvIGludGVncmF0ZSBHb29nbGUgVGVzdCBpbnRvIHlvdXIgYnVpbGQgc3lzdGVtLiIKLQlmYWxz
ZQotCi1pbnN0YWxsLWRhdGEtbG9jYWw6Ci0JZWNobyAiJ21ha2UgaW5zdGFsbCcgaXMgZGFuZ2Vy
b3VzIGFuZCBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBzZWUgUkVBRE1FIGZvciBob3cgdG8gaW50
ZWdyYXRlIEdvb2dsZSBUZXN0IGludG8geW91ciBidWlsZCBzeXN0ZW0uIgotCWZhbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9SRUFETUUuV2ViS2l0IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvUkVBRE1FLldlYktpdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTZlM2JiZmY4OTFjMWI3MDE3NWZiZjQ2MWNhZDkyYmJkMmEzMWM4Yi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9SRUFETUUuV2ViS2l0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1HVGVzdCB2LjEu
OC4xCi0KLWh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9yZWxlYXNlcy90YWcv
cmVsZWFzZS0xLjguMS8KLQotMjAxNi0wMS0wMiBUaW5nLVdlaSBMYW4gKGxhbnR3NDRAZ21haWwu
Y29tKQotICAgICAgUmVtb3ZlIHVzYWdlIG9mIGVudmlyb24gZ2xvYmFsIHZhcmlhYmxlIHRvIGZp
eCB0aGUgYnVpbGQgb24gRnJlZUJTRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L1JFQURNRS5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L1JFQURNRS5tZAppbmRleCBl
MzBmZTgwNDcxMjdiZWUxNmQyYzcxZjE0YjUwOWYzNzU3MWFkZDQxLi43MTdjODg2NzkwYmFiYmY3
Y2ViNDJiZWRjZTQyMDlhNjgxYTUwNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9SRUFETUUubWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvUkVBRE1FLm1kCkBA
IC0yLDgwICsyLDUxIEBACiAKICMjIyMgU2V0dXAKIAotVG8gYnVpbGQgR29vZ2xlIFRlc3QgYW5k
IHlvdXIgdGVzdHMgdGhhdCB1c2UgaXQsIHlvdSBuZWVkIHRvIHRlbGwgeW91ciBidWlsZAorVG8g
YnVpbGQgR29vZ2xlVGVzdCBhbmQgeW91ciB0ZXN0cyB0aGF0IHVzZSBpdCwgeW91IG5lZWQgdG8g
dGVsbCB5b3VyIGJ1aWxkCiBzeXN0ZW0gd2hlcmUgdG8gZmluZCBpdHMgaGVhZGVycyBhbmQgc291
cmNlIGZpbGVzLiBUaGUgZXhhY3Qgd2F5IHRvIGRvIGl0CiBkZXBlbmRzIG9uIHdoaWNoIGJ1aWxk
IHN5c3RlbSB5b3UgdXNlLCBhbmQgaXMgdXN1YWxseSBzdHJhaWdodGZvcndhcmQuCiAKLSMjIyMg
QnVpbGQKKyMjIyBCdWlsZCB3aXRoIENNYWtlCiAKLVN1cHBvc2UgeW91IHB1dCBHb29nbGUgVGVz
dCBpbiBkaXJlY3RvcnkgYCR7R1RFU1RfRElSfWAuIFRvIGJ1aWxkIGl0LCBjcmVhdGUgYQotbGli
cmFyeSBidWlsZCB0YXJnZXQgKG9yIGEgcHJvamVjdCBhcyBjYWxsZWQgYnkgVmlzdWFsIFN0dWRp
byBhbmQgWGNvZGUpIHRvCi1jb21waWxlCi0KLSAgICAke0dURVNUX0RJUn0vc3JjL2d0ZXN0LWFs
bC5jYwotCi13aXRoIGAke0dURVNUX0RJUn0vaW5jbHVkZWAgaW4gdGhlIHN5c3RlbSBoZWFkZXIg
c2VhcmNoIHBhdGggYW5kIGAke0dURVNUX0RJUn1gCi1pbiB0aGUgbm9ybWFsIGhlYWRlciBzZWFy
Y2ggcGF0aC4gQXNzdW1pbmcgYSBMaW51eC1saWtlIHN5c3RlbSBhbmQgZ2NjLAotc29tZXRoaW5n
IGxpa2UgdGhlIGZvbGxvd2luZyB3aWxsIGRvOgotCi0gICAgZysrIC1pc3lzdGVtICR7R1RFU1Rf
RElSfS9pbmNsdWRlIC1JJHtHVEVTVF9ESVJ9IFwKLSAgICAgICAgLXB0aHJlYWQgLWMgJHtHVEVT
VF9ESVJ9L3NyYy9ndGVzdC1hbGwuY2MKLSAgICBhciAtcnYgbGliZ3Rlc3QuYSBndGVzdC1hbGwu
bwotCi0oV2UgbmVlZCBgLXB0aHJlYWRgIGFzIEdvb2dsZSBUZXN0IHVzZXMgdGhyZWFkcy4pCi0K
LU5leHQsIHlvdSBzaG91bGQgY29tcGlsZSB5b3VyIHRlc3Qgc291cmNlIGZpbGUgd2l0aCBgJHtH
VEVTVF9ESVJ9L2luY2x1ZGVgIGluCi10aGUgc3lzdGVtIGhlYWRlciBzZWFyY2ggcGF0aCwgYW5k
IGxpbmsgaXQgd2l0aCBndGVzdCBhbmQgYW55IG90aGVyIG5lY2Vzc2FyeQotbGlicmFyaWVzOgot
Ci0gICAgZysrIC1pc3lzdGVtICR7R1RFU1RfRElSfS9pbmNsdWRlIC1wdGhyZWFkIHBhdGgvdG8v
eW91cl90ZXN0LmNjIGxpYmd0ZXN0LmEgXAotICAgICAgICAtbyB5b3VyX3Rlc3QKLQotQXMgYW4g
ZXhhbXBsZSwgdGhlIG1ha2UvIGRpcmVjdG9yeSBjb250YWlucyBhIE1ha2VmaWxlIHRoYXQgeW91
IGNhbiB1c2UgdG8gYnVpbGQKLUdvb2dsZSBUZXN0IG9uIHN5c3RlbXMgd2hlcmUgR05VIG1ha2Ug
aXMgYXZhaWxhYmxlIChlLmcuIExpbnV4LCBNYWMgT1MgWCwgYW5kCi1DeWd3aW4pLiBJdCBkb2Vz
bid0IHRyeSB0byBidWlsZCBHb29nbGUgVGVzdCdzIG93biB0ZXN0cy4gSW5zdGVhZCwgaXQganVz
dAotYnVpbGRzIHRoZSBHb29nbGUgVGVzdCBsaWJyYXJ5IGFuZCBhIHNhbXBsZSB0ZXN0LiBZb3Ug
Y2FuIHVzZSBpdCBhcyBhIHN0YXJ0aW5nCi1wb2ludCBmb3IgeW91ciBvd24gYnVpbGQgc2NyaXB0
LgotCi1JZiB0aGUgZGVmYXVsdCBzZXR0aW5ncyBhcmUgY29ycmVjdCBmb3IgeW91ciBlbnZpcm9u
bWVudCwgdGhlIGZvbGxvd2luZyBjb21tYW5kcwotc2hvdWxkIHN1Y2NlZWQ6Ci0KLSAgICBjZCAk
e0dURVNUX0RJUn0vbWFrZQotICAgIG1ha2UKLSAgICAuL3NhbXBsZTFfdW5pdHRlc3QKLQotSWYg
eW91IHNlZSBlcnJvcnMsIHRyeSB0byB0d2VhayB0aGUgY29udGVudHMgb2YgYG1ha2UvTWFrZWZp
bGVgIHRvIG1ha2UgdGhlbSBnbwotYXdheS4gVGhlcmUgYXJlIGluc3RydWN0aW9ucyBpbiBgbWFr
ZS9NYWtlZmlsZWAgb24gaG93IHRvIGRvIGl0LgotCi0jIyMgVXNpbmcgQ01ha2UKLQotR29vZ2xl
IFRlc3QgY29tZXMgd2l0aCBhIENNYWtlIGJ1aWxkIHNjcmlwdCAoCi1bQ01ha2VMaXN0cy50eHRd
KGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9DTWFrZUxp
c3RzLnR4dCkpCitHb29nbGVUZXN0IGNvbWVzIHdpdGggYSBDTWFrZSBidWlsZCBzY3JpcHQKKyhb
Q01ha2VMaXN0cy50eHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9i
L21hc3Rlci9DTWFrZUxpc3RzLnR4dCkpCiB0aGF0IGNhbiBiZSB1c2VkIG9uIGEgd2lkZSByYW5n
ZSBvZiBwbGF0Zm9ybXMgKCJDIiBzdGFuZHMgZm9yIGNyb3NzLXBsYXRmb3JtLikuCiBJZiB5b3Ug
ZG9uJ3QgaGF2ZSBDTWFrZSBpbnN0YWxsZWQgYWxyZWFkeSwgeW91IGNhbiBkb3dubG9hZCBpdCBm
b3IgZnJlZSBmcm9tCiA8aHR0cDovL3d3dy5jbWFrZS5vcmcvPi4KIAogQ01ha2Ugd29ya3MgYnkg
Z2VuZXJhdGluZyBuYXRpdmUgbWFrZWZpbGVzIG9yIGJ1aWxkIHByb2plY3RzIHRoYXQgY2FuIGJl
IHVzZWQgaW4KLXRoZSBjb21waWxlciBlbnZpcm9ubWVudCBvZiB5b3VyIGNob2ljZS4gWW91IGNh
biBlaXRoZXIgYnVpbGQgR29vZ2xlIFRlc3QgYXMgYQordGhlIGNvbXBpbGVyIGVudmlyb25tZW50
IG9mIHlvdXIgY2hvaWNlLiBZb3UgY2FuIGVpdGhlciBidWlsZCBHb29nbGVUZXN0IGFzIGEKIHN0
YW5kYWxvbmUgcHJvamVjdCBvciBpdCBjYW4gYmUgaW5jb3Jwb3JhdGVkIGludG8gYW4gZXhpc3Rp
bmcgQ01ha2UgYnVpbGQgZm9yCiBhbm90aGVyIHByb2plY3QuCiAKICMjIyMgU3RhbmRhbG9uZSBD
TWFrZSBQcm9qZWN0CiAKLVdoZW4gYnVpbGRpbmcgR29vZ2xlIFRlc3QgYXMgYSBzdGFuZGFsb25l
IHByb2plY3QsIHRoZSB0eXBpY2FsIHdvcmtmbG93IHN0YXJ0cwotd2l0aDoKK1doZW4gYnVpbGRp
bmcgR29vZ2xlVGVzdCBhcyBhIHN0YW5kYWxvbmUgcHJvamVjdCwgdGhlIHR5cGljYWwgd29ya2Zs
b3cgc3RhcnRzCit3aXRoCiAKLSAgICBta2RpciBteWJ1aWxkICAgICAgICMgQ3JlYXRlIGEgZGly
ZWN0b3J5IHRvIGhvbGQgdGhlIGJ1aWxkIG91dHB1dC4KLSAgICBjZCBteWJ1aWxkCi0gICAgY21h
a2UgJHtHVEVTVF9ESVJ9ICAjIEdlbmVyYXRlIG5hdGl2ZSBidWlsZCBzY3JpcHRzLgorYGBgCitn
aXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0LmdpdCAtYiByZWxl
YXNlLTEuMTAuMAorY2QgZ29vZ2xldGVzdCAgICAgICAgIyBNYWluIGRpcmVjdG9yeSBvZiB0aGUg
Y2xvbmVkIHJlcG9zaXRvcnkuCitta2RpciBidWlsZCAgICAgICAgICAjIENyZWF0ZSBhIGRpcmVj
dG9yeSB0byBob2xkIHRoZSBidWlsZCBvdXRwdXQuCitjZCBidWlsZAorY21ha2UgLi4gICAgICAg
ICAgICAgIyBHZW5lcmF0ZSBuYXRpdmUgYnVpbGQgc2NyaXB0cyBmb3IgR29vZ2xlVGVzdC4KK2Bg
YAogCi1JZiB5b3Ugd2FudCB0byBidWlsZCBHb29nbGUgVGVzdCdzIHNhbXBsZXMsIHlvdSBzaG91
bGQgcmVwbGFjZSB0aGUgbGFzdCBjb21tYW5kCi13aXRoCitUaGUgYWJvdmUgY29tbWFuZCBhbHNv
IGluY2x1ZGVzIEdvb2dsZU1vY2sgYnkgZGVmYXVsdC4gQW5kIHNvLCBpZiB5b3Ugd2FudCB0bwor
YnVpbGQgb25seSBHb29nbGVUZXN0LCB5b3Ugc2hvdWxkIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFu
ZCB3aXRoCiAKLSAgICBjbWFrZSAtRGd0ZXN0X2J1aWxkX3NhbXBsZXM9T04gJHtHVEVTVF9ESVJ9
CitgYGAKK2NtYWtlIC4uIC1EQlVJTERfR01PQ0s9T0ZGCitgYGAKIAogSWYgeW91IGFyZSBvbiBh
IFwqbml4IHN5c3RlbSwgeW91IHNob3VsZCBub3cgc2VlIGEgTWFrZWZpbGUgaW4gdGhlIGN1cnJl
bnQKLWRpcmVjdG9yeS4gSnVzdCB0eXBlICdtYWtlJyB0byBidWlsZCBndGVzdC4KK2RpcmVjdG9y
eS4gSnVzdCB0eXBlIGBtYWtlYCB0byBidWlsZCBHb29nbGVUZXN0LiBBbmQgdGhlbiB5b3UgY2Fu
IHNpbXBseSBpbnN0YWxsCitHb29nbGVUZXN0IGlmIHlvdSBhcmUgYSBzeXN0ZW0gYWRtaW5pc3Ry
YXRvci4KKworYGBgCittYWtlCitzdWRvIG1ha2UgaW5zdGFsbCAgICAjIEluc3RhbGwgaW4gL3Vz
ci9sb2NhbC8gYnkgZGVmYXVsdAorYGBgCiAKIElmIHlvdSB1c2UgV2luZG93cyBhbmQgaGF2ZSBW
aXN1YWwgU3R1ZGlvIGluc3RhbGxlZCwgYSBgZ3Rlc3Quc2xuYCBmaWxlIGFuZAogc2V2ZXJhbCBg
LnZjcHJvamAgZmlsZXMgd2lsbCBiZSBjcmVhdGVkLiBZb3UgY2FuIHRoZW4gYnVpbGQgdGhlbSB1
c2luZyBWaXN1YWwKQEAgLTg1LDEzICs1NiwxOSBAQCBPbiBNYWMgT1MgWCB3aXRoIFhjb2RlIGlu
c3RhbGxlZCwgYSBgLnhjb2RlcHJvamAgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZC4KIAogIyMjIyBJ
bmNvcnBvcmF0aW5nIEludG8gQW4gRXhpc3RpbmcgQ01ha2UgUHJvamVjdAogCi1JZiB5b3Ugd2Fu
dCB0byB1c2UgZ3Rlc3QgaW4gYSBwcm9qZWN0IHdoaWNoIGFscmVhZHkgdXNlcyBDTWFrZSwgdGhl
biBhIG1vcmUKLXJvYnVzdCBhbmQgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gYnVpbGQgZ3Rlc3Qg
YXMgcGFydCBvZiB0aGF0IHByb2plY3QgZGlyZWN0bHkuCi1UaGlzIGlzIGRvbmUgYnkgbWFraW5n
IHRoZSBHb29nbGVUZXN0IHNvdXJjZSBjb2RlIGF2YWlsYWJsZSB0byB0aGUgbWFpbiBidWlsZAot
YW5kIGFkZGluZyBpdCB1c2luZyBDTWFrZSdzIGBhZGRfc3ViZGlyZWN0b3J5KClgIGNvbW1hbmQu
IFRoaXMgaGFzIHRoZQotc2lnbmlmaWNhbnQgYWR2YW50YWdlIHRoYXQgdGhlIHNhbWUgY29tcGls
ZXIgYW5kIGxpbmtlciBzZXR0aW5ncyBhcmUgdXNlZAotYmV0d2VlbiBndGVzdCBhbmQgdGhlIHJl
c3Qgb2YgeW91ciBwcm9qZWN0LCBzbyBpc3N1ZXMgYXNzb2NpYXRlZCB3aXRoIHVzaW5nCi1pbmNv
bXBhdGlibGUgbGlicmFyaWVzIChlZyBkZWJ1Zy9yZWxlYXNlKSwgZXRjLiBhcmUgYXZvaWRlZC4g
VGhpcyBpcworSWYgeW91IHdhbnQgdG8gdXNlIEdvb2dsZVRlc3QgaW4gYSBwcm9qZWN0IHdoaWNo
IGFscmVhZHkgdXNlcyBDTWFrZSwgdGhlIGVhc2llc3QKK3dheSBpcyB0byBnZXQgaW5zdGFsbGVk
IGxpYnJhcmllcyBhbmQgaGVhZGVycy4KKworKiAgIEltcG9ydCBHb29nbGVUZXN0IGJ5IHVzaW5n
IGBmaW5kX3BhY2thZ2VgIChvciBgcGtnX2NoZWNrX21vZHVsZXNgKS4gRm9yCisgICAgZXhhbXBs
ZSwgaWYgYGZpbmRfcGFja2FnZShHVGVzdCBDT05GSUcgUkVRVUlSRUQpYCBpcyBzdWNjZWVkLCB5
b3UgY2FuIHVzZQorICAgIHRoZSBsaWJyYXJpZXMgYXMgYEdUZXN0OjpndGVzdGAsIGBHVGVzdDo6
Z21vY2tgLgorCitBbmQgYSBtb3JlIHJvYnVzdCBhbmQgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8g
YnVpbGQgR29vZ2xlVGVzdCBhcyBwYXJ0IG9mIHRoYXQKK3Byb2plY3QgZGlyZWN0bHkuIFRoaXMg
aXMgZG9uZSBieSBtYWtpbmcgdGhlIEdvb2dsZVRlc3Qgc291cmNlIGNvZGUgYXZhaWxhYmxlIHRv
Cit0aGUgbWFpbiBidWlsZCBhbmQgYWRkaW5nIGl0IHVzaW5nIENNYWtlJ3MgYGFkZF9zdWJkaXJl
Y3RvcnkoKWAgY29tbWFuZC4gVGhpcworaGFzIHRoZSBzaWduaWZpY2FudCBhZHZhbnRhZ2UgdGhh
dCB0aGUgc2FtZSBjb21waWxlciBhbmQgbGlua2VyIHNldHRpbmdzIGFyZQordXNlZCBiZXR3ZWVu
IEdvb2dsZVRlc3QgYW5kIHRoZSByZXN0IG9mIHlvdXIgcHJvamVjdCwgc28gaXNzdWVzIGFzc29j
aWF0ZWQgd2l0aAordXNpbmcgaW5jb21wYXRpYmxlIGxpYnJhcmllcyAoZWcgZGVidWcvcmVsZWFz
ZSksIGV0Yy4gYXJlIGF2b2lkZWQuIFRoaXMgaXMKIHBhcnRpY3VsYXJseSB1c2VmdWwgb24gV2lu
ZG93cy4gTWFraW5nIEdvb2dsZVRlc3QncyBzb3VyY2UgY29kZSBhdmFpbGFibGUgdG8gdGhlCiBt
YWluIGJ1aWxkIGNhbiBiZSBkb25lIGEgZmV3IGRpZmZlcmVudCB3YXlzOgogCkBAIC0xMTUsNjAg
KzkyLDU3IEBAIHB1bGxlZCBpbnRvIHRoZSBtYWluIGJ1aWxkIHdpdGggYGFkZF9zdWJkaXJlY3Rv
cnkoKWAuIEZvciBleGFtcGxlOgogCiBOZXcgZmlsZSBgQ01ha2VMaXN0cy50eHQuaW5gOgogCi0g
ICAgY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOC4yKQorYGBgY21ha2UKK2NtYWtl
X21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAyLjguMTIpCiAKLSAgICBwcm9qZWN0KGdvb2dsZXRl
c3QtZG93bmxvYWQgTk9ORSkKK3Byb2plY3QoZ29vZ2xldGVzdC1kb3dubG9hZCBOT05FKQogCi0g
ICAgaW5jbHVkZShFeHRlcm5hbFByb2plY3QpCi0gICAgRXh0ZXJuYWxQcm9qZWN0X0FkZChnb29n
bGV0ZXN0Ci0gICAgICBHSVRfUkVQT1NJVE9SWSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl
L2dvb2dsZXRlc3QuZ2l0Ci0gICAgICBHSVRfVEFHICAgICAgICAgICBtYXN0ZXIKLSAgICAgIFNP
VVJDRV9ESVIgICAgICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9L2dvb2dsZXRlc3Qtc3JjIgotICAg
ICAgQklOQVJZX0RJUiAgICAgICAgIiR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1idWls
ZCIKLSAgICAgIENPTkZJR1VSRV9DT01NQU5EICIiCi0gICAgICBCVUlMRF9DT01NQU5EICAgICAi
IgotICAgICAgSU5TVEFMTF9DT01NQU5EICAgIiIKLSAgICAgIFRFU1RfQ09NTUFORCAgICAgICIi
Ci0gICAgKQoraW5jbHVkZShFeHRlcm5hbFByb2plY3QpCitFeHRlcm5hbFByb2plY3RfQWRkKGdv
b2dsZXRlc3QKKyAgR0lUX1JFUE9TSVRPUlkgICAgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9n
b29nbGV0ZXN0LmdpdAorICBHSVRfVEFHICAgICAgICAgICBtYXN0ZXIKKyAgU09VUkNFX0RJUiAg
ICAgICAgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0LXNyYyIKKyAgQklO
QVJZX0RJUiAgICAgICAgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29nbGV0ZXN0LWJ1
aWxkIgorICBDT05GSUdVUkVfQ09NTUFORCAiIgorICBCVUlMRF9DT01NQU5EICAgICAiIgorICBJ
TlNUQUxMX0NPTU1BTkQgICAiIgorICBURVNUX0NPTU1BTkQgICAgICAiIgorKQorYGBgCiAKIEV4
aXN0aW5nIGJ1aWxkJ3MgYENNYWtlTGlzdHMudHh0YDoKIAotICAgICMgRG93bmxvYWQgYW5kIHVu
cGFjayBnb29nbGV0ZXN0IGF0IGNvbmZpZ3VyZSB0aW1lCi0gICAgY29uZmlndXJlX2ZpbGUoQ01h
a2VMaXN0cy50eHQuaW4gZ29vZ2xldGVzdC1kb3dubG9hZC9DTWFrZUxpc3RzLnR4dCkKLSAgICBl
eGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1HICIke0NNQUtFX0dFTkVS
QVRPUn0iIC4KLSAgICAgIFJFU1VMVF9WQVJJQUJMRSByZXN1bHQKLSAgICAgIFdPUktJTkdfRElS
RUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1kb3dubG9hZCApCi0gICAgaWYo
cmVzdWx0KQotICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01ha2Ugc3RlcCBmb3IgZ29vZ2xl
dGVzdCBmYWlsZWQ6ICR7cmVzdWx0fSIpCi0gICAgZW5kaWYoKQotICAgIGV4ZWN1dGVfcHJvY2Vz
cyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLS1idWlsZCAuCi0gICAgICBSRVNVTFRfVkFSSUFC
TEUgcmVzdWx0Ci0gICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L2dv
b2dsZXRlc3QtZG93bmxvYWQgKQotICAgIGlmKHJlc3VsdCkKLSAgICAgIG1lc3NhZ2UoRkFUQUxf
RVJST1IgIkJ1aWxkIHN0ZXAgZm9yIGdvb2dsZXRlc3QgZmFpbGVkOiAke3Jlc3VsdH0iKQotICAg
IGVuZGlmKCkKLQotICAgICMgUHJldmVudCBvdmVycmlkaW5nIHRoZSBwYXJlbnQgcHJvamVjdCdz
IGNvbXBpbGVyL2xpbmtlcgotICAgICMgc2V0dGluZ3Mgb24gV2luZG93cwotICAgIHNldChndGVz
dF9mb3JjZV9zaGFyZWRfY3J0IE9OIENBQ0hFIEJPT0wgIiIgRk9SQ0UpCi0KLSAgICAjIEFkZCBn
b29nbGV0ZXN0IGRpcmVjdGx5IHRvIG91ciBidWlsZC4gVGhpcyBkZWZpbmVzCi0gICAgIyB0aGUg
Z3Rlc3QgYW5kIGd0ZXN0X21haW4gdGFyZ2V0cy4KLSAgICBhZGRfc3ViZGlyZWN0b3J5KCR7Q01B
S0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1zcmMKLSAgICAgICAgICAgICAgICAgICAgICR7Q01B
S0VfQklOQVJZX0RJUn0vZ29vZ2xldGVzdC1idWlsZAotICAgICAgICAgICAgICAgICAgICAgRVhD
TFVERV9GUk9NX0FMTCkKLQotICAgICMgVGhlIGd0ZXN0L2d0ZXN0X21haW4gdGFyZ2V0cyBjYXJy
eSBoZWFkZXIgc2VhcmNoIHBhdGgKLSAgICAjIGRlcGVuZGVuY2llcyBhdXRvbWF0aWNhbGx5IHdo
ZW4gdXNpbmcgQ01ha2UgMi44LjExIG9yCi0gICAgIyBsYXRlci4gT3RoZXJ3aXNlIHdlIGhhdmUg
dG8gYWRkIHRoZW0gaGVyZSBvdXJzZWx2ZXMuCi0gICAgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lP
Tl9MRVNTIDIuOC4xMSkKLSAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoIiR7Z3Rlc3RfU09VUkNF
X0RJUn0vaW5jbHVkZSIpCi0gICAgZW5kaWYoKQotCi0gICAgIyBOb3cgc2ltcGx5IGxpbmsgYWdh
aW5zdCBndGVzdCBvciBndGVzdF9tYWluIGFzIG5lZWRlZC4gRWcKLSAgICBhZGRfZXhlY3V0YWJs
ZShleGFtcGxlIGV4YW1wbGUuY3BwKQotICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhleGFtcGxl
IGd0ZXN0X21haW4pCi0gICAgYWRkX3Rlc3QoTkFNRSBleGFtcGxlX3Rlc3QgQ09NTUFORCBleGFt
cGxlKQorYGBgY21ha2UKKyMgRG93bmxvYWQgYW5kIHVucGFjayBnb29nbGV0ZXN0IGF0IGNvbmZp
Z3VyZSB0aW1lCitjb25maWd1cmVfZmlsZShDTWFrZUxpc3RzLnR4dC5pbiBnb29nbGV0ZXN0LWRv
d25sb2FkL0NNYWtlTGlzdHMudHh0KQorZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtDTUFLRV9D
T01NQU5EfSAtRyAiJHtDTUFLRV9HRU5FUkFUT1J9IiAuCisgIFJFU1VMVF9WQVJJQUJMRSByZXN1
bHQKKyAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2dvb2ds
ZXRlc3QtZG93bmxvYWQgKQoraWYocmVzdWx0KQorICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTWFr
ZSBzdGVwIGZvciBnb29nbGV0ZXN0IGZhaWxlZDogJHtyZXN1bHR9IikKK2VuZGlmKCkKK2V4ZWN1
dGVfcHJvY2VzcyhDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLS1idWlsZCAuCisgIFJFU1VMVF9W
QVJJQUJMRSByZXN1bHQKKyAgV09SS0lOR19ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFS
WV9ESVJ9L2dvb2dsZXRlc3QtZG93bmxvYWQgKQoraWYocmVzdWx0KQorICBtZXNzYWdlKEZBVEFM
X0VSUk9SICJCdWlsZCBzdGVwIGZvciBnb29nbGV0ZXN0IGZhaWxlZDogJHtyZXN1bHR9IikKK2Vu
ZGlmKCkKKworIyBQcmV2ZW50IG92ZXJyaWRpbmcgdGhlIHBhcmVudCBwcm9qZWN0J3MgY29tcGls
ZXIvbGlua2VyCisjIHNldHRpbmdzIG9uIFdpbmRvd3MKK3NldChndGVzdF9mb3JjZV9zaGFyZWRf
Y3J0IE9OIENBQ0hFIEJPT0wgIiIgRk9SQ0UpCisKKyMgQWRkIGdvb2dsZXRlc3QgZGlyZWN0bHkg
dG8gb3VyIGJ1aWxkLiBUaGlzIGRlZmluZXMKKyMgdGhlIGd0ZXN0IGFuZCBndGVzdF9tYWluIHRh
cmdldHMuCithZGRfc3ViZGlyZWN0b3J5KCR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nb29n
bGV0ZXN0LXNyYworICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0v
Z29vZ2xldGVzdC1idWlsZAorICAgICAgICAgICAgICAgICBFWENMVURFX0ZST01fQUxMKQorCisj
IE5vdyBzaW1wbHkgbGluayBhZ2FpbnN0IGd0ZXN0IG9yIGd0ZXN0X21haW4gYXMgbmVlZGVkLiBF
ZworYWRkX2V4ZWN1dGFibGUoZXhhbXBsZSBleGFtcGxlLmNwcCkKK3RhcmdldF9saW5rX2xpYnJh
cmllcyhleGFtcGxlIGd0ZXN0X21haW4pCithZGRfdGVzdChOQU1FIGV4YW1wbGVfdGVzdCBDT01N
QU5EIGV4YW1wbGUpCitgYGAKIAogTm90ZSB0aGF0IHRoaXMgYXBwcm9hY2ggcmVxdWlyZXMgQ01h
a2UgMi44LjIgb3IgbGF0ZXIgZHVlIHRvIGl0cyB1c2Ugb2YgdGhlCiBgRXh0ZXJuYWxQcm9qZWN0
X0FkZCgpYCBjb21tYW5kLiBUaGUgYWJvdmUgdGVjaG5pcXVlIGlzIGRpc2N1c3NlZCBpbiBtb3Jl
IGRldGFpbApAQCAtMTc4LDEwNCArMTUyLDQ0IEBAIGFsc28gY29udGFpbnMgYSBsaW5rIHRvIGEg
ZnVsbHkgZ2VuZXJhbGl6ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRlY2huaXF1ZS4KICMjIyMj
IFZpc3VhbCBTdHVkaW8gRHluYW1pYyB2cyBTdGF0aWMgUnVudGltZXMKIAogQnkgZGVmYXVsdCwg
bmV3IFZpc3VhbCBTdHVkaW8gcHJvamVjdHMgbGluayB0aGUgQyBydW50aW1lcyBkeW5hbWljYWxs
eSBidXQKLUdvb2dsZSBUZXN0IGxpbmtzIHRoZW0gc3RhdGljYWxseS4gVGhpcyB3aWxsIGdlbmVy
YXRlIGFuIGVycm9yIHRoYXQgbG9va3MKK0dvb2dsZVRlc3QgbGlua3MgdGhlbSBzdGF0aWNhbGx5
LiBUaGlzIHdpbGwgZ2VuZXJhdGUgYW4gZXJyb3IgdGhhdCBsb29rcwogc29tZXRoaW5nIGxpa2Ug
dGhlIGZvbGxvd2luZzogZ3Rlc3QubGliKGd0ZXN0LWFsbC5vYmopIDogZXJyb3IgTE5LMjAzODog
bWlzbWF0Y2gKIGRldGVjdGVkIGZvciAnUnVudGltZUxpYnJhcnknOiB2YWx1ZSAnTVRkX1N0YXRp
Y0RlYnVnJyBkb2Vzbid0IG1hdGNoIHZhbHVlCiAnTURkX0R5bmFtaWNEZWJ1ZycgaW4gbWFpbi5v
YmoKIAotR29vZ2xlIFRlc3QgYWxyZWFkeSBoYXMgYSBDTWFrZSBvcHRpb24gZm9yIHRoaXM6IGBn
dGVzdF9mb3JjZV9zaGFyZWRfY3J0YAorR29vZ2xlVGVzdCBhbHJlYWR5IGhhcyBhIENNYWtlIG9w
dGlvbiBmb3IgdGhpczogYGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnRgCiAKIEVuYWJsaW5nIHRoaXMg
b3B0aW9uIHdpbGwgbWFrZSBndGVzdCBsaW5rIHRoZSBydW50aW1lcyBkeW5hbWljYWxseSB0b28s
IGFuZAogbWF0Y2ggdGhlIHByb2plY3QgaW4gd2hpY2ggaXQgaXMgaW5jbHVkZWQuCiAKLSMjIyBM
ZWdhY3kgQnVpbGQgU2NyaXB0cworIyMjIyBDKysgU3RhbmRhcmQgVmVyc2lvbgogCi1CZWZvcmUg
c2V0dGxpbmcgb24gQ01ha2UsIHdlIGhhdmUgYmVlbiBwcm92aWRpbmcgaGFuZC1tYWludGFpbmVk
IGJ1aWxkCi1wcm9qZWN0cy9zY3JpcHRzIGZvciBWaXN1YWwgU3R1ZGlvLCBYY29kZSwgYW5kIEF1
dG90b29scy4gV2hpbGUgd2UgY29udGludWUgdG8KLXByb3ZpZGUgdGhlbSBmb3IgY29udmVuaWVu
Y2UsIHRoZXkgYXJlIG5vdCBhY3RpdmVseSBtYWludGFpbmVkIGFueSBtb3JlLiBXZQotaGlnaGx5
IHJlY29tbWVuZCB0aGF0IHlvdSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBpbiB0aGUgYWJvdmUg
c2VjdGlvbnMgdG8KLWludGVncmF0ZSBHb29nbGUgVGVzdCB3aXRoIHlvdXIgZXhpc3RpbmcgYnVp
bGQgc3lzdGVtLgorQW4gZW52aXJvbm1lbnQgdGhhdCBzdXBwb3J0cyBDKysxMSBpcyByZXF1aXJl
ZCBpbiBvcmRlciB0byBzdWNjZXNzZnVsbHkgYnVpbGQKK0dvb2dsZVRlc3QuIE9uZSB3YXkgdG8g
ZW5zdXJlIHRoaXMgaXMgdG8gc3BlY2lmeSB0aGUgc3RhbmRhcmQgaW4gdGhlIHRvcC1sZXZlbAor
cHJvamVjdCwgZm9yIGV4YW1wbGUgYnkgdXNpbmcgdGhlIGBzZXQoQ01BS0VfQ1hYX1NUQU5EQVJE
IDExKWAgY29tbWFuZC4gSWYgdGhpcworaXMgbm90IGZlYXNpYmxlLCBmb3IgZXhhbXBsZSBpbiBh
IEMgcHJvamVjdCB1c2luZyBHb29nbGVUZXN0IGZvciB2YWxpZGF0aW9uLAordGhlbiBpdCBjYW4g
YmUgc3BlY2lmaWVkIGJ5IGFkZGluZyBpdCB0byB0aGUgb3B0aW9ucyBmb3IgY21ha2UgdmlhIHRo
ZQorYERDTUFLRV9DWFhfRkxBR1NgIG9wdGlvbi4KIAotSWYgeW91IHN0aWxsIG5lZWQgdG8gdXNl
IHRoZSBsZWdhY3kgYnVpbGQgc2NyaXB0cywgaGVyZSdzIGhvdzoKKyMjIyBUd2Vha2luZyBHb29n
bGVUZXN0CiAKLVRoZSBtc3ZjXCBmb2xkZXIgY29udGFpbnMgdHdvIHNvbHV0aW9ucyB3aXRoIFZp
c3VhbCBDKysgcHJvamVjdHMuIE9wZW4gdGhlCi1gZ3Rlc3Quc2xuYCBvciBgZ3Rlc3QtbWQuc2xu
YCBmaWxlIHVzaW5nIFZpc3VhbCBTdHVkaW8sIGFuZCB5b3UgYXJlIHJlYWR5IHRvCi1idWlsZCBH
b29nbGUgVGVzdCB0aGUgc2FtZSB3YXkgeW91IGJ1aWxkIGFueSBWaXN1YWwgU3R1ZGlvIHByb2pl
Y3QuIEZpbGVzIHRoYXQKLWhhdmUgbmFtZXMgZW5kaW5nIHdpdGggLW1kIHVzZSBETEwgdmVyc2lv
bnMgb2YgTWljcm9zb2Z0IHJ1bnRpbWUgbGlicmFyaWVzICh0aGUKLS9NRCBvciB0aGUgL01EZCBj
b21waWxlciBvcHRpb24pLiBGaWxlcyB3aXRob3V0IHRoYXQgc3VmZml4IHVzZSBzdGF0aWMgdmVy
c2lvbnMKLW9mIHRoZSBydW50aW1lIGxpYnJhcmllcyAodGhlIC9NVCBvciB0aGUgL01UZCBvcHRp
b24pLiBQbGVhc2Ugbm90ZSB0aGF0IG9uZSBtdXN0Ci11c2UgdGhlIHNhbWUgb3B0aW9uIHRvIGNv
bXBpbGUgYm90aCBndGVzdCBhbmQgdGhlIHRlc3QgY29kZS4gSWYgeW91IHVzZSBWaXN1YWwKLVN0
dWRpbyAyMDA1IG9yIGFib3ZlLCB3ZSByZWNvbW1lbmQgdGhlIC1tZCB2ZXJzaW9uIGFzIC9NRCBp
cyB0aGUgZGVmYXVsdCBmb3IgbmV3Ci1wcm9qZWN0cyBpbiB0aGVzZSB2ZXJzaW9ucyBvZiBWaXN1
YWwgU3R1ZGlvLgotCi1PbiBNYWMgT1MgWCwgb3BlbiB0aGUgYGd0ZXN0Lnhjb2RlcHJvamAgaW4g
dGhlIGB4Y29kZS9gIGZvbGRlciB1c2luZyBYY29kZS4KLUJ1aWxkIHRoZSAiZ3Rlc3QiIHRhcmdl
dC4gVGhlIHVuaXZlcnNhbCBiaW5hcnkgZnJhbWV3b3JrIHdpbGwgZW5kIHVwIGluIHlvdXIKLXNl
bGVjdGVkIGJ1aWxkIGRpcmVjdG9yeSAoc2VsZWN0ZWQgaW4gdGhlIFhjb2RlICJQcmVmZXJlbmNl
cy4uLiIgLT4gIkJ1aWxkaW5nIgotcGFuZSBhbmQgZGVmYXVsdHMgdG8geGNvZGUvYnVpbGQpLiBB
bHRlcm5hdGl2ZWx5LCBhdCB0aGUgY29tbWFuZCBsaW5lLCBlbnRlcjoKLQotICAgIHhjb2RlYnVp
bGQKLQotVGhpcyB3aWxsIGJ1aWxkIHRoZSAiUmVsZWFzZSIgY29uZmlndXJhdGlvbiBvZiBndGVz
dC5mcmFtZXdvcmsgaW4geW91ciBkZWZhdWx0Ci1idWlsZCBsb2NhdGlvbi4gU2VlIHRoZSAieGNv
ZGVidWlsZCIgbWFuIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKLWJ1aWxkaW5nIGRp
ZmZlcmVudCBjb25maWd1cmF0aW9ucyBhbmQgYnVpbGRpbmcgaW4gZGlmZmVyZW50IGxvY2F0aW9u
cy4KLQotSWYgeW91IHdpc2ggdG8gdXNlIHRoZSBHb29nbGUgVGVzdCBYY29kZSBwcm9qZWN0IHdp
dGggWGNvZGUgNC54IGFuZCBhYm92ZSwgeW91Ci1uZWVkIHRvIGVpdGhlcjoKLQotKiAgIHVwZGF0
ZSB0aGUgU0RLIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbiB4Y29kZS9Db25maWcvR2VuZXJhbC54
Y29uZmlnLgotICAgIENvbW1lbnQgb3B0aW9ucyBgU0RLUk9PVGAsIGBNQUNPU19ERVBMT1lNRU5U
X1RBUkdFVGAsIGFuZCBgR0NDX1ZFUlNJT05gLiBJZgotICAgIHlvdSBjaG9vc2UgdGhpcyByb3V0
ZSB5b3UgbG9zZSB0aGUgYWJpbGl0eSB0byB0YXJnZXQgZWFybGllciB2ZXJzaW9ucyBvZgotICAg
IE1hY09TIFguCi0qICAgSW5zdGFsbCBhbiBTREsgZm9yIGFuIGVhcmxpZXIgdmVyc2lvbi4gVGhp
cyBkb2Vzbid0IGFwcGVhciB0byBiZSBzdXBwb3J0ZWQKLSAgICBieSBBcHBsZSwgYnV0IGhhcyBi
ZWVuIHJlcG9ydGVkIHRvIHdvcmsKLSAgICAoaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0
aW9ucy81Mzc4NTE4KS4KLQotIyMjIFR3ZWFraW5nIEdvb2dsZSBUZXN0Ci0KLUdvb2dsZSBUZXN0
IGNhbiBiZSB1c2VkIGluIGRpdmVyc2UgZW52aXJvbm1lbnRzLiBUaGUgZGVmYXVsdCBjb25maWd1
cmF0aW9uIG1heQorR29vZ2xlVGVzdCBjYW4gYmUgdXNlZCBpbiBkaXZlcnNlIGVudmlyb25tZW50
cy4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBtYXkKIG5vdCB3b3JrIChvciBtYXkgbm90IHdv
cmsgd2VsbCkgb3V0IG9mIHRoZSBib3ggaW4gc29tZSBlbnZpcm9ubWVudHMuIEhvd2V2ZXIsCi15
b3UgY2FuIGVhc2lseSB0d2VhayBHb29nbGUgVGVzdCBieSBkZWZpbmluZyBjb250cm9sIG1hY3Jv
cyBvbiB0aGUgY29tcGlsZXIKK3lvdSBjYW4gZWFzaWx5IHR3ZWFrIEdvb2dsZVRlc3QgYnkgZGVm
aW5pbmcgY29udHJvbCBtYWNyb3Mgb24gdGhlIGNvbXBpbGVyCiBjb21tYW5kIGxpbmUuIEdlbmVy
YWxseSwgdGhlc2UgbWFjcm9zIGFyZSBuYW1lZCBsaWtlIGBHVEVTVF9YWVpgIGFuZCB5b3UgZGVm
aW5lCiB0aGVtIHRvIGVpdGhlciAxIG9yIDAgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSBjZXJ0YWlu
IGZlYXR1cmUuCiAKIFdlIGxpc3QgdGhlIG1vc3QgZnJlcXVlbnRseSB1c2VkIG1hY3JvcyBiZWxv
dy4gRm9yIGEgY29tcGxldGUgbGlzdCwgc2VlIGZpbGUKLVtpbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LXBvcnQuaF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2Iv
bWFzdGVyL2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oKS4KLQotIyMjIENob29z
aW5nIGEgVFIxIFR1cGxlIExpYnJhcnkKLQotU29tZSBHb29nbGUgVGVzdCBmZWF0dXJlcyByZXF1
aXJlIHRoZSBDKysgVGVjaG5pY2FsIFJlcG9ydCAxIChUUjEpIHR1cGxlCi1saWJyYXJ5LCB3aGlj
aCBpcyBub3QgeWV0IGF2YWlsYWJsZSB3aXRoIGFsbCBjb21waWxlcnMuIFRoZSBnb29kIG5ld3Mg
aXMgdGhhdAotR29vZ2xlIFRlc3QgaW1wbGVtZW50cyBhIHN1YnNldCBvZiBUUjEgdHVwbGUgdGhh
dCdzIGVub3VnaCBmb3IgaXRzIG93biBuZWVkLCBhbmQKLXdpbGwgYXV0b21hdGljYWxseSB1c2Ug
dGhpcyB3aGVuIHRoZSBjb21waWxlciBkb2Vzbid0IHByb3ZpZGUgVFIxIHR1cGxlLgotCi1Vc3Vh
bGx5IHlvdSBkb24ndCBuZWVkIHRvIGNhcmUgYWJvdXQgd2hpY2ggdHVwbGUgbGlicmFyeSBHb29n
bGUgVGVzdCB1c2VzLgotSG93ZXZlciwgaWYgeW91ciBwcm9qZWN0IGFscmVhZHkgdXNlcyBUUjEg
dHVwbGUsIHlvdSBuZWVkIHRvIHRlbGwgR29vZ2xlIFRlc3QgdG8KLXVzZSB0aGUgc2FtZSBUUjEg
dHVwbGUgbGlicmFyeSB0aGUgcmVzdCBvZiB5b3VyIHByb2plY3QgdXNlcywgb3IgdGhlIHR3byB0
dXBsZQotaW1wbGVtZW50YXRpb25zIHdpbGwgY2xhc2guIFRvIGRvIHRoYXQsIGFkZAotCi0gICAg
LURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0wCi0KLXRvIHRoZSBjb21waWxlciBmbGFncyB3aGls
ZSBjb21waWxpbmcgR29vZ2xlIFRlc3QgYW5kIHlvdXIgdGVzdHMuIElmIHlvdSB3YW50IHRvCi1m
b3JjZSBHb29nbGUgVGVzdCB0byB1c2UgaXRzIG93biB0dXBsZSBsaWJyYXJ5LCBqdXN0IGFkZAot
Ci0gICAgLURHVEVTVF9VU0VfT1dOX1RSMV9UVVBMRT0xCi0KLXRvIHRoZSBjb21waWxlciBmbGFn
cyBpbnN0ZWFkLgotCi1JZiB5b3UgZG9uJ3Qgd2FudCBHb29nbGUgVGVzdCB0byB1c2UgdHVwbGUg
YXQgYWxsLCBhZGQKLQotICAgIC1ER1RFU1RfSEFTX1RSMV9UVVBMRT0wCi0KLWFuZCBhbGwgZmVh
dHVyZXMgdXNpbmcgdHVwbGUgd2lsbCBiZSBkaXNhYmxlZC4KK1tpbmNsdWRlL2d0ZXN0L2ludGVy
bmFsL2d0ZXN0LXBvcnQuaF0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Js
b2IvbWFzdGVyL2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmgp
LgogCiAjIyMgTXVsdGktdGhyZWFkZWQgVGVzdHMKIAotR29vZ2xlIFRlc3QgaXMgdGhyZWFkLXNh
ZmUgd2hlcmUgdGhlIHB0aHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuIEFmdGVyCi1gI2luY2x1
ZGUgImd0ZXN0L2d0ZXN0LmgiYCwgeW91IGNhbiBjaGVjayB0aGUgYEdURVNUX0lTX1RIUkVBRFNB
RkVgIG1hY3JvIHRvIHNlZQotd2hldGhlciB0aGlzIGlzIHRoZSBjYXNlICh5ZXMgaWYgdGhlIG1h
Y3JvIGlzIGAjZGVmaW5lZGAgdG8gMSwgbm8gaWYgaXQncwotdW5kZWZpbmVkLikuCitHb29nbGVU
ZXN0IGlzIHRocmVhZC1zYWZlIHdoZXJlIHRoZSBwdGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxl
LiBBZnRlcgorYCNpbmNsdWRlICJndGVzdC9ndGVzdC5oImAsIHlvdSBjYW4gY2hlY2sgdGhlCitg
R1RFU1RfSVNfVEhSRUFEU0FGRWAgbWFjcm8gdG8gc2VlIHdoZXRoZXIgdGhpcyBpcyB0aGUgY2Fz
ZSAoeWVzIGlmIHRoZSBtYWNybyBpcworYCNkZWZpbmVkYCB0byAxLCBubyBpZiBpdCdzIHVuZGVm
aW5lZC4pLgogCi1JZiBHb29nbGUgVGVzdCBkb2Vzbid0IGNvcnJlY3RseSBkZXRlY3Qgd2hldGhl
ciBwdGhyZWFkIGlzIGF2YWlsYWJsZSBpbiB5b3VyCitJZiBHb29nbGVUZXN0IGRvZXNuJ3QgY29y
cmVjdGx5IGRldGVjdCB3aGV0aGVyIHB0aHJlYWQgaXMgYXZhaWxhYmxlIGluIHlvdXIKIGVudmly
b25tZW50LCB5b3UgY2FuIGZvcmNlIGl0IHdpdGgKIAogICAgIC1ER1RFU1RfSEFTX1BUSFJFQUQ9
MQpAQCAtMjg0LDE2ICsxOTgsMTYgQEAgb3IKIAogICAgIC1ER1RFU1RfSEFTX1BUSFJFQUQ9MAog
Ci1XaGVuIEdvb2dsZSBUZXN0IHVzZXMgcHRocmVhZCwgeW91IG1heSBuZWVkIHRvIGFkZCBmbGFn
cyB0byB5b3VyIGNvbXBpbGVyIGFuZC9vcgorV2hlbiBHb29nbGVUZXN0IHVzZXMgcHRocmVhZCwg
eW91IG1heSBuZWVkIHRvIGFkZCBmbGFncyB0byB5b3VyIGNvbXBpbGVyIGFuZC9vcgogbGlua2Vy
IHRvIHNlbGVjdCB0aGUgcHRocmVhZCBsaWJyYXJ5LCBvciB5b3UnbGwgZ2V0IGxpbmsgZXJyb3Jz
LiBJZiB5b3UgdXNlIHRoZQotQ01ha2Ugc2NyaXB0IG9yIHRoZSBkZXByZWNhdGVkIEF1dG90b29s
cyBzY3JpcHQsIHRoaXMgaXMgdGFrZW4gY2FyZSBvZiBmb3IgeW91LgotSWYgeW91IHVzZSB5b3Vy
IG93biBidWlsZCBzY3JpcHQsIHlvdSdsbCBuZWVkIHRvIHJlYWQgeW91ciBjb21waWxlciBhbmQg
bGlua2VyJ3MKLW1hbnVhbCB0byBmaWd1cmUgb3V0IHdoYXQgZmxhZ3MgdG8gYWRkLgorQ01ha2Ug
c2NyaXB0LCB0aGlzIGlzIHRha2VuIGNhcmUgb2YgZm9yIHlvdS4gSWYgeW91IHVzZSB5b3VyIG93
biBidWlsZCBzY3JpcHQsCit5b3UnbGwgbmVlZCB0byByZWFkIHlvdXIgY29tcGlsZXIgYW5kIGxp
bmtlcidzIG1hbnVhbCB0byBmaWd1cmUgb3V0IHdoYXQgZmxhZ3MKK3RvIGFkZC4KIAogIyMjIEFz
IGEgU2hhcmVkIExpYnJhcnkgKERMTCkKIAotR29vZ2xlIFRlc3QgaXMgY29tcGFjdCwgc28gbW9z
dCB1c2VycyBjYW4gYnVpbGQgYW5kIGxpbmsgaXQgYXMgYSBzdGF0aWMgbGlicmFyeQotZm9yIHRo
ZSBzaW1wbGljaXR5LiBZb3UgY2FuIGNob29zZSB0byB1c2UgR29vZ2xlIFRlc3QgYXMgYSBzaGFy
ZWQgbGlicmFyeSAoa25vd24KK0dvb2dsZVRlc3QgaXMgY29tcGFjdCwgc28gbW9zdCB1c2VycyBj
YW4gYnVpbGQgYW5kIGxpbmsgaXQgYXMgYSBzdGF0aWMgbGlicmFyeQorZm9yIHRoZSBzaW1wbGlj
aXR5LiBZb3UgY2FuIGNob29zZSB0byB1c2UgR29vZ2xlVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5
IChrbm93bgogYXMgYSBETEwgb24gV2luZG93cykgaWYgeW91IHByZWZlci4KIAogVG8gY29tcGls
ZSAqZ3Rlc3QqIGFzIGEgc2hhcmVkIGxpYnJhcnksIGFkZApAQCAtMzEzLDIyICsyMjcsMjIgQEAg
Tm90ZTogd2hpbGUgdGhlIGFib3ZlIHN0ZXBzIGFyZW4ndCB0ZWNobmljYWxseSBuZWNlc3Nhcnkg
dG9kYXkgd2hlbiB1c2luZyBzb21lCiBjb21waWxlcnMgKGUuZy4gR0NDKSwgdGhleSBtYXkgYmVj
b21lIG5lY2Vzc2FyeSBpbiB0aGUgZnV0dXJlLCBpZiB3ZSBkZWNpZGUgdG8KIGltcHJvdmUgdGhl
IHNwZWVkIG9mIGxvYWRpbmcgdGhlIGxpYnJhcnkgKHNlZQogPGh0dHA6Ly9nY2MuZ251Lm9yZy93
aWtpL1Zpc2liaWxpdHk+IGZvciBkZXRhaWxzKS4gVGhlcmVmb3JlIHlvdSBhcmUgcmVjb21tZW5k
ZWQKLXRvIGFsd2F5cyBhZGQgdGhlIGFib3ZlIGZsYWdzIHdoZW4gdXNpbmcgR29vZ2xlIFRlc3Qg
YXMgYSBzaGFyZWQgbGlicmFyeS4KLU90aGVyd2lzZSBhIGZ1dHVyZSByZWxlYXNlIG9mIEdvb2ds
ZSBUZXN0IG1heSBicmVhayB5b3VyIGJ1aWxkIHNjcmlwdC4KK3RvIGFsd2F5cyBhZGQgdGhlIGFi
b3ZlIGZsYWdzIHdoZW4gdXNpbmcgR29vZ2xlVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5LgorT3Ro
ZXJ3aXNlIGEgZnV0dXJlIHJlbGVhc2Ugb2YgR29vZ2xlVGVzdCBtYXkgYnJlYWsgeW91ciBidWls
ZCBzY3JpcHQuCiAKICMjIyBBdm9pZGluZyBNYWNybyBOYW1lIENsYXNoZXMKIAogSW4gQysrLCBt
YWNyb3MgZG9uJ3Qgb2JleSBuYW1lc3BhY2VzLiBUaGVyZWZvcmUgdHdvIGxpYnJhcmllcyB0aGF0
IGJvdGggZGVmaW5lIGEKIG1hY3JvIG9mIHRoZSBzYW1lIG5hbWUgd2lsbCBjbGFzaCBpZiB5b3Ug
YCNpbmNsdWRlYCBib3RoIGRlZmluaXRpb25zLiBJbiBjYXNlIGEKLUdvb2dsZSBUZXN0IG1hY3Jv
IGNsYXNoZXMgd2l0aCBhbm90aGVyIGxpYnJhcnksIHlvdSBjYW4gZm9yY2UgR29vZ2xlIFRlc3Qg
dG8KK0dvb2dsZVRlc3QgbWFjcm8gY2xhc2hlcyB3aXRoIGFub3RoZXIgbGlicmFyeSwgeW91IGNh
biBmb3JjZSBHb29nbGVUZXN0IHRvCiByZW5hbWUgaXRzIG1hY3JvIHRvIGF2b2lkIHRoZSBjb25m
bGljdC4KIAotU3BlY2lmaWNhbGx5LCBpZiBib3RoIEdvb2dsZSBUZXN0IGFuZCBzb21lIG90aGVy
IGNvZGUgZGVmaW5lIG1hY3JvIEZPTywgeW91IGNhbgorU3BlY2lmaWNhbGx5LCBpZiBib3RoIEdv
b2dsZVRlc3QgYW5kIHNvbWUgb3RoZXIgY29kZSBkZWZpbmUgbWFjcm8gRk9PLCB5b3UgY2FuCiBh
ZGQKIAogICAgIC1ER1RFU1RfRE9OVF9ERUZJTkVfRk9PPTEKIAotdG8gdGhlIGNvbXBpbGVyIGZs
YWdzIHRvIHRlbGwgR29vZ2xlIFRlc3QgdG8gY2hhbmdlIHRoZSBtYWNybydzIG5hbWUgZnJvbSBg
Rk9PYAordG8gdGhlIGNvbXBpbGVyIGZsYWdzIHRvIHRlbGwgR29vZ2xlVGVzdCB0byBjaGFuZ2Ug
dGhlIG1hY3JvJ3MgbmFtZSBmcm9tIGBGT09gCiB0byBgR1RFU1RfRk9PYC4gQ3VycmVudGx5IGBG
T09gIGNhbiBiZSBgRkFJTGAsIGBTVUNDRUVEYCwgb3IgYFRFU1RgLiBGb3IKIGV4YW1wbGUsIHdp
dGggYC1ER1RFU1RfRE9OVF9ERUZJTkVfVEVTVD0xYCwgeW91J2xsIG5lZWQgdG8gd3JpdGUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY2hhbmdlcy5kaWZmIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvY2hhbmdlcy5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwOTlkNzk1ZTcwMDUzYWVkODM4ZmUwZTAxNWU5NjUwM2FmYzI1ODk4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2NoYW5nZXMuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLWRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjCi1pbmRleCAwOTA4
MzU1MTYxMi4uYWM4NjYwMzU0Y2EgMTAwNjQ0Ci0tLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zcmMvZ3Rlc3QtZGVhdGgtdGVzdC5jYwotKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKLUBAIC0xMTUyLDIwICsxMTUyLDYgQEAgc3RydWN0IEV4
ZWNEZWF0aFRlc3RBcmdzIHsKLSAgIGludCBjbG9zZV9mZDsgICAgICAgLy8gRmlsZSBkZXNjcmlw
dG9yIHRvIGNsb3NlOyB0aGUgcmVhZCBlbmQgb2YgYSBwaXBlCi0gfTsKLSAKLS0jICBpZiBHVEVT
VF9PU19NQUMKLS1pbmxpbmUgY2hhcioqIEdldEVudmlyb24oKSB7Ci0tICAvLyBXaGVuIEdvb2ds
ZSBUZXN0IGlzIGJ1aWx0IGFzIGEgZnJhbWV3b3JrIG9uIE1hY09TIFgsIHRoZSBlbnZpcm9uIHZh
cmlhYmxlCi0tICAvLyBpcyB1bmF2YWlsYWJsZS4gQXBwbGUncyBkb2N1bWVudGF0aW9uIChtYW4g
ZW52aXJvbikgcmVjb21tZW5kcyB1c2luZwotLSAgLy8gX05TR2V0RW52aXJvbigpIGluc3RlYWQu
Ci0tICByZXR1cm4gKl9OU0dldEVudmlyb24oKTsKLS19Ci0tIyAgZWxzZQotLS8vIFNvbWUgUE9T
SVggcGxhdGZvcm1zIGV4cGVjdCB5b3UgdG8gZGVjbGFyZSBlbnZpcm9uLiBleHRlcm4gIkMiIG1h
a2VzCi0tLy8gaXQgcmVzaWRlIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgotLWV4dGVybiAiQyIg
Y2hhcioqIGVudmlyb247Ci0taW5saW5lIGNoYXIqKiBHZXRFbnZpcm9uKCkgeyByZXR1cm4gZW52
aXJvbjsgfQotLSMgIGVuZGlmICAvLyBHVEVTVF9PU19NQUMKLS0KLSAjICBpZiAhR1RFU1RfT1Nf
UU5YCi0gLy8gVGhlIG1haW4gZnVuY3Rpb24gZm9yIGEgdGhyZWFkc2FmZS1zdHlsZSBkZWF0aCB0
ZXN0IGNoaWxkIHByb2Nlc3MuCi0gLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gYSBjbG9u
ZSgpLWVkIHByb2Nlc3MgYW5kIHRodXMgbXVzdCBhdm9pZAotQEAgLTExOTEsOCArMTE3NywxMSBA
QCBzdGF0aWMgaW50IEV4ZWNEZWF0aFRlc3RDaGlsZE1haW4odm9pZCogY2hpbGRfYXJnKSB7Ci0g
ICAvLyB1bnNhZmUuICBTaW5jZSBleGVjdmUoKSBkb2Vzbid0IHNlYXJjaCB0aGUgUEFUSCwgdGhl
IHVzZXIgbXVzdAotICAgLy8gaW52b2tlIHRoZSB0ZXN0IHByb2dyYW0gdmlhIGEgdmFsaWQgcGF0
aCB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0Ci0gICAvLyBvbmUgcGF0aCBzZXBhcmF0b3IuCi0tICBl
eGVjdmUoYXJncy0+YXJndlswXSwgYXJncy0+YXJndiwgR2V0RW52aXJvbigpKTsKLS0gIERlYXRo
VGVzdEFib3J0KHN0ZDo6c3RyaW5nKCJleGVjdmUoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4u
KSBpbiAiICsKLSsgIC8vIFdlIGhhdmUgcmVwbGFjZWQgZXhlY3ZlKCkgd2l0aCBleGVjdigpIGZv
ciBXZWJLaXQgdG8gYXZvaWQgdXNpbmcKLSsgIC8vIGVudmlyb24uIEl0IHNob3VsZCBiZSBzYWZl
IGJlY2F1c2UgZXhlY3YoKSBpcyBqdXN0IGEgc2ltcGxlIHdyYXBwZXIKLSsgIC8vIG9mIGV4ZWN2
ZSgpLgotKyAgZXhlY3YoYXJncy0+YXJndlswXSwgYXJncy0+YXJndik7Ci0rICBEZWF0aFRlc3RB
Ym9ydChzdGQ6OnN0cmluZygiZXhlY3YoIikgKyBhcmdzLT5hcmd2WzBdICsgIiwgLi4uKSBpbiAi
ICsKLSAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2RpciArICIgZmFpbGVkOiAiICsKLSAgICAg
ICAgICAgICAgICAgIEdldExhc3RFcnJub0Rlc2NyaXB0aW9uKCkpOwotICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0ZXN0
LnBjLmluIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3QucGMuaW4KaW5kZXgg
ZTc5NjdhZDU2ZmYyYzMyZWQ0YmEwNjcwM2FlYTUyNWRjYWQyY2U3Yi4uYjQxNDhmYWU0MmIxY2Q3
ODJkYzFiNmE1ZDFkN2UxZTNhOGU0ZTY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvY21ha2UvZ3Rlc3QucGMuaW4KKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21h
a2UvZ3Rlc3QucGMuaW4KQEAgLTYsNCArNiw0IEBAIERlc2NyaXB0aW9uOiBHb29nbGVUZXN0ICh3
aXRob3V0IG1haW4oKSBmdW5jdGlvbikKIFZlcnNpb246IEBQUk9KRUNUX1ZFUlNJT05ACiBVUkw6
IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdAogTGliczogLUwke2xpYmRpcn0g
LWxndGVzdCBAQ01BS0VfVEhSRUFEX0xJQlNfSU5JVEAKLUNmbGFnczogLUkke2luY2x1ZGVkaXJ9
IEBHVEVTVF9IQVNfUFRIUkVBRF9NQUNST0AgQENNQUtFX1RIUkVBRF9MSUJTX0lOSVRACitDZmxh
Z3M6IC1JJHtpbmNsdWRlZGlyfSBAR1RFU1RfSEFTX1BUSFJFQURfTUFDUk9ACmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9ndGVzdF9tYWluLnBjLmluIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvZ3Rlc3RfbWFpbi5wYy5pbgppbmRleCBmZTI1ZDljNzNj
NjgzYjY0MTdiOTliYjcwM2MxM2FlMTZiYThhOTUyLi4zOGM4OGM1NGQ1Mzg2ZDk2MGVjNDhkOWY3
NjY2NGViOTc5OGI0ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFr
ZS9ndGVzdF9tYWluLnBjLmluCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2d0
ZXN0X21haW4ucGMuaW4KQEAgLTUsNiArNSw2IEBAIE5hbWU6IGd0ZXN0X21haW4KIERlc2NyaXB0
aW9uOiBHb29nbGVUZXN0ICh3aXRoIG1haW4oKSBmdW5jdGlvbikKIFZlcnNpb246IEBQUk9KRUNU
X1ZFUlNJT05ACiBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdAotUmVx
dWlyZXM6IGd0ZXN0CitSZXF1aXJlczogZ3Rlc3QgPSBAUFJPSkVDVF9WRVJTSU9OQAogTGliczog
LUwke2xpYmRpcn0gLWxndGVzdF9tYWluIEBDTUFLRV9USFJFQURfTElCU19JTklUQAotQ2ZsYWdz
OiAtSSR7aW5jbHVkZWRpcn0gQEdURVNUX0hBU19QVEhSRUFEX01BQ1JPQCBAQ01BS0VfVEhSRUFE
X0xJQlNfSU5JVEAKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9IEBHVEVTVF9IQVNfUFRIUkVBRF9N
QUNST0AKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NtYWtlL2ludGVybmFs
X3V0aWxzLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRp
bHMuY21ha2UKaW5kZXggOGMxZjliYTk5Y2Y1MDU3NGY2NjlkZDdkZWJhMzI0ZGNlNDA1OTVmMy4u
ZGMyYjY4NWMzYThmMDk5NTM4YTEzNTdlYmRlMjk2ODZjNjRiMDZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvaW50ZXJuYWxfdXRpbHMuY21ha2UKQEAgLTEyLDYg
KzEyLDEwIEBACiAjICAgVGVzdCBhbmQgR29vZ2xlIE1vY2sncyBvcHRpb24oKSBkZWZpbml0aW9u
cywgYW5kIHRodXMgbXVzdCBiZQogIyAgIGNhbGxlZCAqYWZ0ZXIqIHRoZSBvcHRpb25zIGhhdmUg
YmVlbiBkZWZpbmVkLgogCitpZiAoUE9MSUNZIENNUDAwNTQpCisgIGNtYWtlX3BvbGljeShTRVQg
Q01QMDA1NCBORVcpCitlbmRpZiAoUE9MSUNZIENNUDAwNTQpCisKICMgVHdlYWtzIENNYWtlJ3Mg
ZGVmYXVsdCBjb21waWxlci9saW5rZXIgc2V0dGluZ3MgdG8gc3VpdCBHb29nbGUgVGVzdCdzIG5l
ZWRzLgogIwogIyBUaGlzIG11c3QgYmUgYSBtYWNybygpLCBhcyBpbnNpZGUgYSBmdW5jdGlvbiBz
dHJpbmcoKSBjYW4gb25seQpAQCAtMjIsNiArMjYsOCBAQCBtYWNybyhmaXhfZGVmYXVsdF9jb21w
aWxlcl9zZXR0aW5nc18pCiAgICAgIyBUaGlzIHJlcGxhY2VtZW50IGNvZGUgaXMgdGFrZW4gZnJv
bSBzYW1wbGUgaW4gdGhlIENNYWtlIFdpa2kgYXQKICAgICAjIGh0dHBzOi8vZ2l0bGFiLmtpdHdh
cmUuY29tL2NtYWtlL2NvbW11bml0eS93aWtpcy9GQVEjZHluYW1pYy1yZXBsYWNlLgogICAgIGZv
cmVhY2ggKGZsYWdfdmFyCisgICAgICAgICAgICAgQ01BS0VfQ19GTEFHUyBDTUFLRV9DX0ZMQUdT
X0RFQlVHIENNQUtFX0NfRkxBR1NfUkVMRUFTRQorICAgICAgICAgICAgIENNQUtFX0NfRkxBR1Nf
TUlOU0laRVJFTCBDTUFLRV9DX0ZMQUdTX1JFTFdJVEhERUJJTkZPCiAgICAgICAgICAgICAgQ01B
S0VfQ1hYX0ZMQUdTIENNQUtFX0NYWF9GTEFHU19ERUJVRyBDTUFLRV9DWFhfRkxBR1NfUkVMRUFT
RQogICAgICAgICAgICAgIENNQUtFX0NYWF9GTEFHU19NSU5TSVpFUkVMIENNQUtFX0NYWF9GTEFH
U19SRUxXSVRIREVCSU5GTykKICAgICAgIGlmIChOT1QgQlVJTERfU0hBUkVEX0xJQlMgQU5EIE5P
VCBndGVzdF9mb3JjZV9zaGFyZWRfY3J0KQpAQCAtNTYsNyArNjIsNiBAQCBtYWNybyhjb25maWdf
Y29tcGlsZXJfYW5kX2xpbmtlcikKICAgdW5zZXQoR1RFU1RfSEFTX1BUSFJFQUQpCiAgIGlmIChO
T1QgZ3Rlc3RfZGlzYWJsZV9wdGhyZWFkcyBBTkQgTk9UIE1JTkdXKQogICAgICMgRGVmaW5lcyBD
TUFLRV9VU0VfUFRIUkVBRFNfSU5JVCBhbmQgQ01BS0VfVEhSRUFEX0xJQlNfSU5JVC4KLSAgICBz
ZXQoVEhSRUFEU19QUkVGRVJfUFRIUkVBRF9GTEFHIE9OKQogICAgIGZpbmRfcGFja2FnZShUaHJl
YWRzKQogICAgIGlmIChDTUFLRV9VU0VfUFRIUkVBRFNfSU5JVCkKICAgICAgIHNldChHVEVTVF9I
QVNfUFRIUkVBRCBPTikKQEAgLTY3LDM3ICs3MiwyMyBAQCBtYWNybyhjb25maWdfY29tcGlsZXJf
YW5kX2xpbmtlcikKICAgaWYgKE1TVkMpCiAgICAgIyBOZXdsaW5lcyBpbnNpZGUgZmxhZ3MgdmFy
aWFibGVzIGJyZWFrIENNYWtlJ3MgTk1ha2UgZ2VuZXJhdG9yLgogICAgICMgVE9ETyh2bGFkbEBn
b29nbGUuY29tKTogQWRkIC1SVENzIGFuZCAtUlRDdSB0byBkZWJ1ZyBidWlsZHMuCi0gICAgc2V0
KGN4eF9iYXNlX2ZsYWdzICItR1MgLVc0IC1XWCAtd2Q0MjUxIC13ZDQyNzUgLW5vbG9nbyAtSiAt
WmkiKQotICAgIGlmIChNU1ZDX1ZFUlNJT04gTEVTUyAxNDAwKSAgIyAxNDAwIGlzIFZpc3VhbCBT
dHVkaW8gMjAwNQotICAgICAgIyBTdXBwcmVzcyBzcHVyaW91cyB3YXJuaW5ncyBNU1ZDIDcuMSBz
b21ldGltZXMgaXNzdWVzLgotICAgICAgIyBGb3JjaW5nIHZhbHVlIHRvIGJvb2wuCi0gICAgICBz
ZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ4MDAiKQotICAgICAgIyBD
b3B5IGNvbnN0cnVjdG9yIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9yIGNvdWxkIG5vdCBiZSBnZW5l
cmF0ZWQuCi0gICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQ1
MTEgLXdkNDUxMiIpCi0gICAgICAjIENvbXBhdGliaWxpdHkgd2FybmluZ3Mgbm90IGFwcGxpY2Fi
bGUgdG8gR29vZ2xlIFRlc3QuCi0gICAgICAjIFJlc29sdmVkIG92ZXJsb2FkIHdhcyBmb3VuZCBi
eSBhcmd1bWVudC1kZXBlbmRlbnQgbG9va3VwLgotICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIk
e2N4eF9iYXNlX2ZsYWdzfSAtd2Q0Njc1IikKLSAgICBlbmRpZigpCi0gICAgaWYgKE1TVkNfVkVS
U0lPTiBMRVNTIDE1MDApICAjIDE1MDAgaXMgVmlzdWFsIFN0dWRpbyAyMDA4Ci0gICAgICAjIENv
bmRpdGlvbmFsIGV4cHJlc3Npb24gaXMgY29uc3RhbnQuCi0gICAgICAjIFdoZW4gY29tcGlsaW5n
IHdpdGggL1c0LCB3ZSBnZXQgc2V2ZXJhbCBpbnN0YW5jZXMgb2YgQzQxMjcKLSAgICAgICMgKENv
bmRpdGlvbmFsIGV4cHJlc3Npb24gaXMgY29uc3RhbnQpLiBJbiBvdXIgY29kZSwgd2UgZGlzYWJs
ZSB0aGF0Ci0gICAgICAjIHdhcm5pbmcgb24gYSBjYXNlLWJ5LWNhc2UgYmFzaXMuIEhvd2V2ZXIs
IG9uIFZpc3VhbCBTdHVkaW8gMjAwNSwKLSAgICAgICMgdGhlIHdhcm5pbmcgZmlyZXMgb24gc3Rk
OjpsaXN0LiBUaGVyZWZvcmUgb24gdGhhdCBjb21waWxlciBhbmQgZWFybGllciwKLSAgICAgICMg
d2UgZGlzYWJsZSB0aGUgd2FybmluZyBwcm9qZWN0LXdpZGUuCi0gICAgICBzZXQoY3h4X2Jhc2Vf
ZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC13ZDQxMjciKQotICAgIGVuZGlmKCkKLSAgICBpZiAo
Tk9UIChNU1ZDX1ZFUlNJT04gTEVTUyAxNzAwKSkgICMgMTcwMCBpcyBWaXN1YWwgU3R1ZGlvIDIw
MTIuCi0gICAgICAjIFN1cHByZXNzICJ1bnJlYWNoYWJsZSBjb2RlIiB3YXJuaW5nIG9uIFZTIDIw
MTIgYW5kIGxhdGVyLgotICAgICAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25z
LzMyMzI2NjkgZXhwbGFpbnMgdGhlIGlzc3VlLgotICAgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIk
e2N4eF9iYXNlX2ZsYWdzfSAtd2Q0NzAyIikKLSAgICBlbmRpZigpCi0KKyAgICBzZXQoY3h4X2Jh
c2VfZmxhZ3MgIi1HUyAtVzQgLVdYIC13ZDQyNTEgLXdkNDI3NSAtbm9sb2dvIC1KIikKICAgICBz
ZXQoY3h4X2Jhc2VfZmxhZ3MgIiR7Y3h4X2Jhc2VfZmxhZ3N9IC1EX1VOSUNPREUgLURVTklDT0RF
IC1EV0lOMzIgLURfV0lOMzIiKQogICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFzZV9m
bGFnc30gLURTVFJJQ1QgLURXSU4zMl9MRUFOX0FORF9NRUFOIikKICAgICBzZXQoY3h4X2V4Y2Vw
dGlvbl9mbGFncyAiLUVIc2MgLURfSEFTX0VYQ0VQVElPTlM9MSIpCiAgICAgc2V0KGN4eF9ub19l
eGNlcHRpb25fZmxhZ3MgIi1FSHMtYy0gLURfSEFTX0VYQ0VQVElPTlM9MCIpCiAgICAgc2V0KGN4
eF9ub19ydHRpX2ZsYWdzICItR1ItIikKKyAgICAjIFN1cHByZXNzICJ1bnJlYWNoYWJsZSBjb2Rl
IiB3YXJuaW5nCisgICAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMyMzI2
NjkgZXhwbGFpbnMgdGhlIGlzc3VlLgorICAgIHNldChjeHhfYmFzZV9mbGFncyAiJHtjeHhfYmFz
ZV9mbGFnc30gLXdkNDcwMiIpCisgICAgIyBFbnN1cmUgTVNWQyB0cmVhdHMgc291cmNlIGZpbGVz
IGFzIFVURi04IGVuY29kZWQuCisgICAgc2V0KGN4eF9iYXNlX2ZsYWdzICIke2N4eF9iYXNlX2Zs
YWdzfSAtdXRmLTgiKQorICBlbHNlaWYgKENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAi
Q2xhbmciKQorICAgIHNldChjeHhfYmFzZV9mbGFncyAiLVdhbGwgLVdzaGFkb3cgLVdlcnJvciAt
V2NvbnZlcnNpb24iKQorICAgIHNldChjeHhfZXhjZXB0aW9uX2ZsYWdzICItZmV4Y2VwdGlvbnMi
KQorICAgIHNldChjeHhfbm9fZXhjZXB0aW9uX2ZsYWdzICItZm5vLWV4Y2VwdGlvbnMiKQorICAg
IHNldChjeHhfc3RyaWN0X2ZsYWdzICItVyAtV3BvaW50ZXItYXJpdGggLVdyZXR1cm4tdHlwZSAt
V2Nhc3QtcXVhbCAtV3dyaXRlLXN0cmluZ3MgLVdzd2l0Y2ggLVd1bnVzZWQtcGFyYW1ldGVyIC1X
Y2FzdC1hbGlnbiAtV2NoYXItc3Vic2NyaXB0cyAtV2lubGluZSAtV3JlZHVuZGFudC1kZWNscyIp
CisgICAgc2V0KGN4eF9ub19ydHRpX2ZsYWdzICItZm5vLXJ0dGkiKQogICBlbHNlaWYgKENNQUtF
X0NPTVBJTEVSX0lTX0dOVUNYWCkKICAgICBzZXQoY3h4X2Jhc2VfZmxhZ3MgIi1XYWxsIC1Xc2hh
ZG93IC1XZXJyb3IiKQogICAgIGlmKE5PVCBDTUFLRV9DWFhfQ09NUElMRVJfVkVSU0lPTiBWRVJT
SU9OX0xFU1MgNy4wLjApCkBAIC0xNDgsNyArMTM5LDYgQEAgbWFjcm8oY29uZmlnX2NvbXBpbGVy
X2FuZF9saW5rZXIpCiAgICAgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke2N4eF9iYXNlX2ZsYWdzfSAk
e2N4eF9ub19leGNlcHRpb25fZmxhZ3N9IikKICAgc2V0KGN4eF9kZWZhdWx0ICIke2N4eF9leGNl
cHRpb259IikKICAgc2V0KGN4eF9ub19ydHRpICIke2N4eF9kZWZhdWx0fSAke2N4eF9ub19ydHRp
X2ZsYWdzfSIpCi0gIHNldChjeHhfdXNlX293bl90dXBsZSAiJHtjeHhfZGVmYXVsdH0gLURHVEVT
VF9VU0VfT1dOX1RSMV9UVVBMRT0xIikKIAogICAjIEZvciBidWlsZGluZyB0aGUgZ3Rlc3QgbGli
cmFyaWVzLgogICBzZXQoY3h4X3N0cmljdCAiJHtjeHhfZGVmYXVsdH0gJHtjeHhfc3RyaWN0X2Zs
YWdzfSIpCkBAIC0xNjcsNiArMTU3LDIyIEBAIGZ1bmN0aW9uKGN4eF9saWJyYXJ5X3dpdGhfdHlw
ZSBuYW1lIHR5cGUgY3h4X2ZsYWdzKQogICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtuYW1lfQog
ICAgIFBST1BFUlRJRVMKICAgICBERUJVR19QT1NURklYICJkIikKKyAgIyBTZXQgdGhlIG91dHB1
dCBkaXJlY3RvcnkgZm9yIGJ1aWxkIGFydGlmYWN0cworICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMo
JHtuYW1lfQorICAgIFBST1BFUlRJRVMKKyAgICBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7
Q01BS0VfQklOQVJZX0RJUn0vYmluIgorICAgIExJQlJBUllfT1VUUFVUX0RJUkVDVE9SWSAiJHtD
TUFLRV9CSU5BUllfRElSfS9saWIiCisgICAgQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICIke0NN
QUtFX0JJTkFSWV9ESVJ9L2xpYiIKKyAgICBQREJfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9C
SU5BUllfRElSfS9iaW4iKQorICAjIG1ha2UgUERCcyBtYXRjaCBsaWJyYXJ5IG5hbWUKKyAgZ2V0
X3RhcmdldF9wcm9wZXJ0eShwZGJfZGVidWdfcG9zdGZpeCAke25hbWV9IERFQlVHX1BPU1RGSVgp
CisgIHNldF90YXJnZXRfcHJvcGVydGllcygke25hbWV9CisgICAgUFJPUEVSVElFUworICAgIFBE
Ql9OQU1FICIke25hbWV9IgorICAgIFBEQl9OQU1FX0RFQlVHICIke25hbWV9JHtwZGJfZGVidWdf
cG9zdGZpeH0iCisgICAgQ09NUElMRV9QREJfTkFNRSAiJHtuYW1lfSIKKyAgICBDT01QSUxFX1BE
Ql9OQU1FX0RFQlVHICIke25hbWV9JHtwZGJfZGVidWdfcG9zdGZpeH0iKQorCiAgIGlmIChCVUlM
RF9TSEFSRURfTElCUyBPUiB0eXBlIFNUUkVRVUFMICJTSEFSRUQiKQogICAgIHNldF90YXJnZXRf
cHJvcGVydGllcygke25hbWV9CiAgICAgICBQUk9QRVJUSUVTCkBAIC0xODQsNiArMTkwLDEwIEBA
IGZ1bmN0aW9uKGN4eF9saWJyYXJ5X3dpdGhfdHlwZSBuYW1lIHR5cGUgY3h4X2ZsYWdzKQogICAg
IGVuZGlmKCkKICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtuYW1lfSBQVUJMSUMgJHt0aHJl
YWRzX3NwZWN9KQogICBlbmRpZigpCisKKyAgaWYgKE5PVCAiJHtDTUFLRV9WRVJTSU9OfSIgVkVS
U0lPTl9MRVNTICIzLjgiKQorICAgIHRhcmdldF9jb21waWxlX2ZlYXR1cmVzKCR7bmFtZX0gUFVC
TElDIGN4eF9zdGRfMTEpCisgIGVuZGlmKCkKIGVuZGZ1bmN0aW9uKCkKIAogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCkBAIC0yMDQsNyArMjE0LDcgQEAgZW5kZnVuY3Rpb24oKQogIyBpcyBidWlsdCBmcm9tIHRo
ZSBnaXZlbiBzb3VyY2UgZmlsZXMgd2l0aCB0aGUgZ2l2ZW4gY29tcGlsZXIgZmxhZ3MuCiBmdW5j
dGlvbihjeHhfZXhlY3V0YWJsZV93aXRoX2ZsYWdzIG5hbWUgY3h4X2ZsYWdzIGxpYnMpCiAgIGFk
ZF9leGVjdXRhYmxlKCR7bmFtZX0gJHtBUkdOfSkKLSAgaWYgKE1TVkMgQU5EIChOT1QgKE1TVkNf
VkVSU0lPTiBMRVNTIDE3MDApKSkgICMgMTcwMCBpcyBWaXN1YWwgU3R1ZGlvIDIwMTIuCisgIGlm
IChNU1ZDKQogICAgICMgQmlnT2JqIHJlcXVpcmVkIGZvciB0ZXN0cy4KICAgICBzZXQoY3h4X2Zs
YWdzICIke2N4eF9mbGFnc30gLWJpZ29iaiIpCiAgIGVuZGlmKCkKQEAgLTIzNiw3ICsyNDYsMTMg
QEAgZnVuY3Rpb24oY3h4X2V4ZWN1dGFibGUgbmFtZSBkaXIgbGlicykKIGVuZGZ1bmN0aW9uKCkK
IAogIyBTZXRzIFBZVEhPTklOVEVSUF9GT1VORCBhbmQgUFlUSE9OX0VYRUNVVEFCTEUuCi1maW5k
X3BhY2thZ2UoUHl0aG9uSW50ZXJwKQoraWYgKCIke0NNQUtFX1ZFUlNJT059IiBWRVJTSU9OX0xF
U1MgIjMuMTIuMCIpCisgIGZpbmRfcGFja2FnZShQeXRob25JbnRlcnApCitlbHNlKCkKKyAgZmlu
ZF9wYWNrYWdlKFB5dGhvbiBDT01QT05FTlRTIEludGVycHJldGVyKQorICBzZXQoUFlUSE9OSU5U
RVJQX0ZPVU5EICR7UHl0aG9uX0ludGVycHJldGVyX0ZPVU5EfSkKKyAgc2V0KFBZVEhPTl9FWEVD
VVRBQkxFICR7UHl0aG9uX0VYRUNVVEFCTEV9KQorZW5kaWYoKQogCiAjIGN4eF90ZXN0X3dpdGhf
ZmxhZ3MobmFtZSBjeHhfZmxhZ3MgbGlicyBzcmNzLi4uKQogIwpAQCAtMjQ0LDcgKzI2MCw3IEBA
IGZpbmRfcGFja2FnZShQeXRob25JbnRlcnApCiAjIGZyb20gdGhlIGdpdmVuIHNvdXJjZSBmaWxl
cyB3aXRoIHRoZSBnaXZlbiBjb21waWxlciBmbGFncy4KIGZ1bmN0aW9uKGN4eF90ZXN0X3dpdGhf
ZmxhZ3MgbmFtZSBjeHhfZmxhZ3MgbGlicykKICAgY3h4X2V4ZWN1dGFibGVfd2l0aF9mbGFncygk
e25hbWV9ICIke2N4eF9mbGFnc30iICIke2xpYnN9IiAke0FSR059KQotICBhZGRfdGVzdChOQU1F
ICR7bmFtZX0gQ09NTUFORCAke25hbWV9KQorICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfSBDT01N
QU5EICIkPFRBUkdFVF9GSUxFOiR7bmFtZX0+IikKIGVuZGZ1bmN0aW9uKCkKIAogIyBjeHhfdGVz
dChuYW1lIGxpYnMgc3Jjcy4uLikKQEAgLTI2MywzMyArMjc5LDMwIEBAIGVuZGZ1bmN0aW9uKCkK
ICMgdGVzdC9uYW1lLnB5LiAgSXQgZG9lcyBub3RoaW5nIGlmIFB5dGhvbiBpcyBub3QgaW5zdGFs
bGVkLgogZnVuY3Rpb24ocHlfdGVzdCBuYW1lKQogICBpZiAoUFlUSE9OSU5URVJQX0ZPVU5EKQot
ICAgIGlmICgke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1JfVkVSU0lPTn0gR1JF
QVRFUiAzLjEpCisgICAgaWYgKCIke0NNQUtFX01BSk9SX1ZFUlNJT059LiR7Q01BS0VfTUlOT1Jf
VkVSU0lPTn0iIFZFUlNJT05fR1JFQVRFUiAzLjEpCiAgICAgICBpZiAoQ01BS0VfQ09ORklHVVJB
VElPTl9UWVBFUykKLQkjIE11bHRpLWNvbmZpZ3VyYXRpb24gYnVpbGQgZ2VuZXJhdG9ycyBhcyBm
b3IgVmlzdWFsIFN0dWRpbyBzYXZlCi0JIyBvdXRwdXQgaW4gYSBzdWJkaXJlY3Rvcnkgb2YgQ01B
S0VfQ1VSUkVOVF9CSU5BUllfRElSIChEZWJ1ZywKLQkjIFJlbGVhc2UgZXRjLiksIHNvIHdlIGhh
dmUgdG8gcHJvdmlkZSBpdCBoZXJlLgotICAgICAgICBhZGRfdGVzdCgKLSAgICAgICAgICBOQU1F
ICR7bmFtZX0KKyAgICAgICAgIyBNdWx0aS1jb25maWd1cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMg
YXMgZm9yIFZpc3VhbCBTdHVkaW8gc2F2ZQorICAgICAgICAjIG91dHB1dCBpbiBhIHN1YmRpcmVj
dG9yeSBvZiBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIgKERlYnVnLAorICAgICAgICAjIFJlbGVh
c2UgZXRjLiksIHNvIHdlIGhhdmUgdG8gcHJvdmlkZSBpdCBoZXJlLgorICAgICAgICBhZGRfdGVz
dChOQU1FICR7bmFtZX0KICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXN0LyR7bmFtZX0ucHkKICAgICAgICAgICAgICAg
LS1idWlsZF9kaXI9JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyQ8Q09ORklHPiAke0FSR059
KQogICAgICAgZWxzZSAoQ01BS0VfQ09ORklHVVJBVElPTl9UWVBFUykKLQkjIFNpbmdsZS1jb25m
aWd1cmF0aW9uIGJ1aWxkIGdlbmVyYXRvcnMgbGlrZSBNYWtlZmlsZSBnZW5lcmF0b3JzCi0JIyBk
b24ndCBoYXZlIHN1YmRpcnMgYmVsb3cgQ01BS0VfQ1VSUkVOVF9CSU5BUllfRElSLgotICAgICAg
ICBhZGRfdGVzdCgKLSAgICAgICAgICBOQU1FICR7bmFtZX0KKyAgICAgICAgIyBTaW5nbGUtY29u
ZmlndXJhdGlvbiBidWlsZCBnZW5lcmF0b3JzIGxpa2UgTWFrZWZpbGUgZ2VuZXJhdG9ycworICAg
ICAgICAjIGRvbid0IGhhdmUgc3ViZGlycyBiZWxvdyBDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVIu
CisgICAgICAgIGFkZF90ZXN0KE5BTUUgJHtuYW1lfQogICAgICAgICAgIENPTU1BTkQgJHtQWVRI
T05fRVhFQ1VUQUJMRX0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3QvJHtuYW1lfS5w
eQotICAgICAgICAgICAgICAtLWJ1aWxkX2Rpcj0ke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0g
JHtBUkdOfSkKKyAgICAgICAgICAgIC0tYnVpbGRfZGlyPSR7Q01BS0VfQ1VSUkVOVF9CSU5BUllf
RElSfSAke0FSR059KQogICAgICAgZW5kaWYgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCi0g
ICAgZWxzZSAoJHtDTUFLRV9NQUpPUl9WRVJTSU9OfS4ke0NNQUtFX01JTk9SX1ZFUlNJT059IEdS
RUFURVIgMy4xKQorICAgIGVsc2UoKQogICAgICAgIyAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJ
Un0gaXMga25vd24gYXQgY29uZmlndXJhdGlvbiB0aW1lLCBzbyB3ZSBjYW4KICAgICAgICMgZGly
ZWN0bHkgYmluZCBpdCBmcm9tIGNtYWtlLiAke0NURVNUX0NPTkZJR1VSQVRJT05fVFlQRX0gaXMg
a25vd24KICAgICAgICMgb25seSBhdCBjdGVzdCBydW50aW1lIChieSBjYWxsaW5nIGN0ZXN0IC1j
IDxDb25maWd1cmF0aW9uPiksIHNvCiAgICAgICAjIHdlIGhhdmUgdG8gZXNjYXBlICQgdG8gZGVs
YXkgdmFyaWFibGUgc3Vic3RpdHV0aW9uIGhlcmUuCi0gICAgICBhZGRfdGVzdCgKLSAgICAgICAg
JHtuYW1lfQotICAgICAgICAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vdGVzdC8ke25hbWV9LnB5CisgICAgICBhZGRfdGVzdChOQU1FICR7bmFtZX0KKyAg
ICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vdGVzdC8ke25hbWV9LnB5CiAgICAgICAgICAgLS1idWlsZF9kaXI9JHtDTUFLRV9DVVJS
RU5UX0JJTkFSWV9ESVJ9L1wke0NURVNUX0NPTkZJR1VSQVRJT05fVFlQRX0gJHtBUkdOfSkKLSAg
ICBlbmRpZiAoJHtDTUFLRV9NQUpPUl9WRVJTSU9OfS4ke0NNQUtFX01JTk9SX1ZFUlNJT059IEdS
RUFURVIgMy4xKQorICAgIGVuZGlmKCkKICAgZW5kaWYoUFlUSE9OSU5URVJQX0ZPVU5EKQogZW5k
ZnVuY3Rpb24oKQogCkBAIC0zMDYsNiArMzE5LDE4IEBAIGZ1bmN0aW9uKGluc3RhbGxfcHJvamVj
dCkKICAgICAgIFJVTlRJTUUgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9CSU5ESVJ9Igog
ICAgICAgQVJDSElWRSBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0iCiAgICAg
ICBMSUJSQVJZIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfSIpCisgICAgaWYo
Q01BS0VfQ1hYX0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkMiKQorICAgICAgIyBJbnN0YWxsIFBE
QnMKKyAgICAgIGZvcmVhY2godCAke0FSR059KQorICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5
KHRfcGRiX25hbWUgJHt0fSBDT01QSUxFX1BEQl9OQU1FKQorICAgICAgICBnZXRfdGFyZ2V0X3By
b3BlcnR5KHRfcGRiX25hbWVfZGVidWcgJHt0fSBDT01QSUxFX1BEQl9OQU1FX0RFQlVHKQorICAg
ICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KHRfcGRiX291dHB1dF9kaXJlY3RvcnkgJHt0fSBQREJf
T1VUUFVUX0RJUkVDVE9SWSkKKyAgICAgICAgaW5zdGFsbChGSUxFUworICAgICAgICAgICIke3Rf
cGRiX291dHB1dF9kaXJlY3Rvcnl9L1wke0NNQUtFX0lOU1RBTExfQ09ORklHX05BTUV9LyQ8JDxD
T05GSUc6RGVidWc+OiR7dF9wZGJfbmFtZV9kZWJ1Z30+JDwkPE5PVDokPENPTkZJRzpEZWJ1Zz4+
OiR7dF9wZGJfbmFtZX0+LnBkYiIKKyAgICAgICAgICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RB
TExfTElCRElSfQorICAgICAgICAgIE9QVElPTkFMKQorICAgICAgZW5kZm9yZWFjaCgpCisgICAg
ZW5kaWYoKQogICAgICMgQ29uZmlndXJlIGFuZCBpbnN0YWxsIHBrZ2NvbmZpZyBmaWxlcy4KICAg
ICBmb3JlYWNoKHQgJHtBUkdOfSkKICAgICAgIHNldChjb25maWd1cmVkX3BjICIke2dlbmVyYXRl
ZF9kaXJ9LyR7dH0ucGMiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21h
a2UvbGliZ3Rlc3QubGEuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jbWFrZS9saWJndGVz
dC5sYS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NDBjODM4ODVmOTg5YTAyYTBhYjMwNzNhNzRlNjViYzA0ZGRm
M2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY21ha2UvbGli
Z3Rlc3QubGEuaW4KQEAgLTAsMCArMSwyMSBAQAorIyBsaWJndGVzdC5sYSAtIGEgbGlidG9vbCBs
aWJyYXJ5IGZpbGUKKyMgR2VuZXJhdGVkIGJ5IGxpYnRvb2wgKEdOVSBsaWJ0b29sKSAyLjQuNgor
CisjIFBsZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKKyMgSXQgaXMgbmVjZXNzYXJ5IGZv
ciBsaW5raW5nIHRoZSBsaWJyYXJ5LgorCisjIE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KK2xpYnJh
cnlfbmFtZXM9J2xpYmd0ZXN0LnNvJworCisjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQg
bGlicmFyeT8KK2luc3RhbGxlZD15ZXMKKworIyBTaG91bGQgd2Ugd2FybiBhYm91dCBwb3J0YWJp
bGl0eSB3aGVuIGxpbmtpbmcgYWdhaW5zdCAtbW9kdWxlcz8KK3Nob3VsZG5vdGxpbms9bm8KKwor
IyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCitkbG9wZW49JycKK2RscHJlb3Blbj0nJworCisj
IERpcmVjdG9yeSB0aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46Cits
aWJkaXI9J0BDTUFLRV9JTlNUQUxMX0ZVTExfTElCRElSQCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0LmNicHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTVjMzA1NGI4NTFkYWI0ZDhmZTY4YzU2M2Q5NTUyNjY4MzE4MjRjMi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jb2RlZ2Vhci9ndGVzdC5jYnByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAot
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCi08UHJvamVjdCB4bWxu
cz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4N
Ci0gIDxQcm9wZXJ0eUdyb3VwPg0KLSAgICA8UHJvamVjdEd1aWQ+e2JjYTM3YTcyLTViMDctNDZj
Zi1iNDRlLTg5ZjhlMDY0NTFhMn08L1Byb2plY3RHdWlkPg0KLSAgICA8Q29uZmlnIENvbmRpdGlv
bj0iJyQoQ29uZmlnKSc9PScnIj5SZWxlYXNlPC9Db25maWc+DQotICA8L1Byb3BlcnR5R3JvdXA+
DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nQmFzZScgb3IgJyQo
QmFzZSknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICA8L1Byb3BlcnR5R3JvdXA+
DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZyknPT0nRGVidWcnIG9yICck
KENmZ18xKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18xPnRydWU8
L0NmZ18xPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlH
cm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdSZWxlYXNl
JyBvciAnJChDZmdfMiknIT0nJyI+DQotICAgIDxCYXNlPnRydWU8L0Jhc2U+DQotICAgIDxDZmdf
Mj50cnVlPC9DZmdfMj4NCi0gICAgPENmZ1BhcmVudD5CYXNlPC9DZmdQYXJlbnQ+DQotICA8L1By
b3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKEJhc2UpJyE9Jyci
Pg0KLSAgICA8QkNDX09wdGltaXplRm9yU3BlZWQ+dHJ1ZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+
DQotICAgIDxPdXRwdXRFeHQ+bGliPC9PdXRwdXRFeHQ+DQotICAgIDxEQ0NfQ0J1aWxkZXJPdXRw
dXQ+SlBITkU8L0RDQ19DQnVpbGRlck91dHB1dD4NCi0gICAgPERlZmluZXM+Tk9fU1RSSUNUPC9E
ZWZpbmVzPg0KLSAgICA8RHluYW1pY1JUTD50cnVlPC9EeW5hbWljUlRMPg0KLSAgICA8VXNlUGFj
a2FnZXM+dHJ1ZTwvVXNlUGFja2FnZXM+DQotICAgIDxQcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJy
YXJ5PC9Qcm9qZWN0VHlwZT4NCi0gICAgPEJDQ19DUFBDb21waWxlQWx3YXlzPnRydWU8L0JDQ19D
UFBDb21waWxlQWx3YXlzPg0KLSAgICA8UGFja2FnZUltcG9ydHM+cnRsLmJwaTt2Y2wuYnBpO2Jj
YmllLmJwaTt2Y2x4LmJwaTt2Y2xhY3RuYmFuZC5icGk7eG1scnRsLmJwaTtiY2JzbXAuYnBpO2Ri
cnRsLmJwaTt2Y2xkYi5icGk7YmRlcnRsLmJwaTt2Y2xkYnguYnBpO2RzbmFwLmJwaTtkc25hcGNv
bi5icGk7dmNsaWIuYnBpO2lieHByZXNzLmJwaTthZG9ydGwuYnBpO2RieGNkcy5icGk7ZGJleHBy
ZXNzLmJwaTtEYnhDb21tb25Ecml2ZXIuYnBpO3dlYnNuYXAuYnBpO3ZjbGllLmJwaTt3ZWJkc25h
cC5icGk7aW5ldC5icGk7aW5ldGRiYmRlLmJwaTtpbmV0ZGJ4cHJlc3MuYnBpO3NvYXBydGwuYnBp
O1JhdmU3NVZDTC5icGk7dGVlVUkuYnBpO3RlZS5icGk7dGVlZGIuYnBpO0luZHlDb3JlLmJwaTtJ
bmR5U3lzdGVtLmJwaTtJbmR5UHJvdG9jb2xzLmJwaTtJbnRyYXdlYkRCXzkwXzEwMC5icGk7SW50
cmF3ZWJfOTBfMTAwLmJwaTtkY2xaaXBGb3JnZWQxMS5icGk7dmNsWmlwRm9yZ2VkMTEuYnBpO0dS
MzJfQkRTMjAwNi5icGk7R1IzMl9EU0dOX0JEUzIwMDYuYnBpO0pjbC5icGk7SmNsVmNsLmJwaTtK
dkNvcmVEMTFSLmJwaTtKdlN5c3RlbUQxMVIuYnBpO0p2U3RkQ3RybHNEMTFSLmJwaTtKdkFwcEZy
bUQxMVIuYnBpO0p2QmFuZHNEMTFSLmJwaTtKdkRCRDExUi5icGk7SnZEbGdzRDExUi5icGk7SnZC
REVEMTFSLmJwaTtKdkNtcEQxMVIuYnBpO0p2Q3J5cHREMTFSLmJwaTtKdkN0cmxzRDExUi5icGk7
SnZDdXN0b21EMTFSLmJwaTtKdkRvY2tpbmdEMTFSLmJwaTtKdkRvdE5ldEN0cmxzRDExUi5icGk7
SnZFRElEMTFSLmJwaTtKdkdsb2J1c0QxMVIuYnBpO0p2SE1JRDExUi5icGk7SnZJbnRlcnByZXRl
ckQxMVIuYnBpO0p2SmFuc0QxMVIuYnBpO0p2TWFuYWdlZFRocmVhZHNEMTFSLmJwaTtKdk1NRDEx
Ui5icGk7SnZOZXREMTFSLmJwaTtKdlBhZ2VDb21wc0QxMVIuYnBpO0p2UGx1Z2luRDExUi5icGk7
SnZQcmludFByZXZpZXdEMTFSLmJwaTtKdlJ1bnRpbWVEZXNpZ25EMTFSLmJwaTtKdlRpbWVGcmFt
ZXdvcmtEMTFSLmJwaTtKdlZhbGlkYXRvcnNEMTFSLmJwaTtKdldpemFyZEQxMVIuYnBpO0p2WFBD
dHJsc0QxMVIuYnBpO1ZjbFNtcC5icGk7Q0V4Y2VwdGlvbkV4cGVydDExLmJwaTwvUGFja2FnZUlt
cG9ydHM+DQotICAgIDxCQ0Nfd3Bhcj5mYWxzZTwvQkNDX3dwYXI+DQotICAgIDxJbmNsdWRlUGF0
aD4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRl
XHZjbDsuLlxzcmM7Li5caW5jbHVkZTsuLjwvSW5jbHVkZVBhdGg+DQotICAgIDxBbGxQYWNrYWdl
TGlicz5ydGwubGliO3ZjbC5saWI8L0FsbFBhY2thZ2VMaWJzPg0KLSAgICA8VExJQl9QYWdlU2l6
ZT4zMjwvVExJQl9QYWdlU2l6ZT4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWI7
JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrPC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gIDwv
UHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2ZnXzEpJyE9
JyciPg0KLSAgICA8QkNDX09wdGltaXplRm9yU3BlZWQ+ZmFsc2U8L0JDQ19PcHRpbWl6ZUZvclNw
ZWVkPg0KLSAgICA8RENDX09wdGltaXplPmZhbHNlPC9EQ0NfT3B0aW1pemU+DQotICAgIDxEQ0Nf
RGVidWdJbmZvSW5FeGU+dHJ1ZTwvRENDX0RlYnVnSW5mb0luRXhlPg0KLSAgICA8RGVmaW5lcz5f
REVCVUc7JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPElMSU5LX0Z1bGxEZWJ1Z0luZm8+dHJ1
ZTwvSUxJTktfRnVsbERlYnVnSW5mbz4NCi0gICAgPEJDQ19JbmxpbmVGdW5jdGlvbkV4cGFuc2lv
bj5mYWxzZTwvQkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPg0KLSAgICA8SUxJTktfRGlzYWJs
ZUluY3JlbWVudGFsTGlua2luZz50cnVlPC9JTElOS19EaXNhYmxlSW5jcmVtZW50YWxMaW5raW5n
Pg0KLSAgICA8QkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPk5vbmU8L0JDQ19Vc2VSZWdpc3RlclZh
cmlhYmxlcz4NCi0gICAgPERDQ19EZWZpbmU+REVCVUc8L0RDQ19EZWZpbmU+DQotICAgIDxCQ0Nf
RGVidWdMaW5lTnVtYmVycz50cnVlPC9CQ0NfRGVidWdMaW5lTnVtYmVycz4NCi0gICAgPEludGVy
bWVkaWF0ZU91dHB1dERpcj5EZWJ1ZzwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8VEFT
TV9EaXNwbGF5U291cmNlTGluZXM+dHJ1ZTwvVEFTTV9EaXNwbGF5U291cmNlTGluZXM+DQotICAg
IDxCQ0NfU3RhY2tGcmFtZXM+dHJ1ZTwvQkNDX1N0YWNrRnJhbWVzPg0KLSAgICA8QkNDX0Rpc2Fi
bGVPcHRpbWl6YXRpb25zPnRydWU8L0JDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz4NCi0gICAgPElM
SU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJcZGVidWc7JChJTElOS19MaWJyYXJ5UGF0aCk8L0lM
SU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1Z2dpbmc+RnVsbDwvVEFTTV9EZWJ1Z2dp
bmc+DQotICAgIDxCQ0NfU291cmNlRGVidWdnaW5nT24+dHJ1ZTwvQkNDX1NvdXJjZURlYnVnZ2lu
Z09uPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn
JChDZmdfMiknIT0nJyI+DQotICAgIDxEZWZpbmVzPk5ERUJVRzskKERlZmluZXMpPC9EZWZpbmVz
Pg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPlJlbGVhc2U8L0ludGVybWVkaWF0ZU91dHB1
dERpcj4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJccmVsZWFzZTskKElMSU5L
X0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5O
b25lPC9UQVNNX0RlYnVnZ2luZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9qZWN0RXh0
ZW5zaW9ucz4NCi0gICAgPEJvcmxhbmQuUGVyc29uYWxpdHk+Q1BsdXNQbHVzQnVpbGRlci5QZXJz
b25hbGl0eTwvQm9ybGFuZC5QZXJzb25hbGl0eT4NCi0gICAgPEJvcmxhbmQuUHJvamVjdFR5cGU+
Q3BwU3RhdGljTGlicmFyeTwvQm9ybGFuZC5Qcm9qZWN0VHlwZT4NCi0gICAgPEJvcmxhbmRQcm9q
ZWN0Pg0KLTxCb3JsYW5kUHJvamVjdD48Q1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48VmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkluY2x1ZGVWZXJJbmZvIj5GYWxzZTwvVmVyc2lv
bkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkF1dG9JbmNCdWlsZCI+RmFsc2U8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJNYWpvclZlciI+MTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZv
IE5hbWU9Ik1pbm9yVmVyIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUmVsZWFz
ZSI+MDwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkJ1aWxkIj4wPC9WZXJzaW9uSW5m
bz48VmVyc2lvbkluZm8gTmFtZT0iRGVidWciPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbklu
Zm8gTmFtZT0iUHJlUmVsZWFzZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1l
PSJTcGVjaWFsIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlByaXZhdGUi
PkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iRExMIj5GYWxzZTwvVmVyc2lv
bkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IkxvY2FsZSI+MTAzMzwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvIE5hbWU9IkNvZGVQYWdlIj4xMjUyPC9WZXJzaW9uSW5mbz48L1ZlcnNpb25JbmZvPjxW
ZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJDb21wYW55TmFtZSI+PC9WZXJz
aW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlRGVzY3JpcHRpb24iPjwvVmVy
c2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iRmlsZVZlcnNpb24iPjEuMC4wLjA8
L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkludGVybmFsTmFtZSI+PC9W
ZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJMZWdhbENvcHlyaWdodCI+PC9W
ZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJMZWdhbFRyYWRlbWFya3MiPjwv
VmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iT3JpZ2luYWxGaWxlbmFtZSI+
PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJQcm9kdWN0TmFtZSI+PC9W
ZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJQcm9kdWN0VmVyc2lvbiI+MS4w
LjAuMDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iQ29tbWVudHMiPjwv
VmVyc2lvbkluZm9LZXlzPjwvVmVyc2lvbkluZm9LZXlzPjxEZWJ1Z2dpbmc+PERlYnVnZ2luZyBO
YW1lPSJEZWJ1Z1NvdXJjZURpcnMiPjwvRGVidWdnaW5nPjwvRGVidWdnaW5nPjxQYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlJ1blBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9IkxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlTGF1bmNoZXIi
PkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkRlYnVnQ1dEIj48L1BhcmFtZXRl
cnM+PFBhcmFtZXRlcnMgTmFtZT0iSG9zdEFwcGxpY2F0aW9uIj48L1BhcmFtZXRlcnM+PFBhcmFt
ZXRlcnMgTmFtZT0iUmVtb3RlSG9zdCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJl
bW90ZVBhdGgiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVQYXJhbXMiPjwv
UGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVMYXVuY2hlciI+PC9QYXJhbWV0ZXJz
PjxQYXJhbWV0ZXJzIE5hbWU9IlVzZVJlbW90ZUxhdW5jaGVyIj5GYWxzZTwvUGFyYW1ldGVycz48
UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1l
PSJSZW1vdGVEZWJ1ZyI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWcg
U3ltYm9scyBTZWFyY2ggUGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkxvYWRB
bGxTeW1ib2xzIj5UcnVlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IkxvYWRVbnNwZWNp
ZmllZFN5bWJvbHMiPkZhbHNlPC9QYXJhbWV0ZXJzPjwvUGFyYW1ldGVycz48RXhjbHVkZWRfUGFj
a2FnZXM+DQotICAgICAgDQotICAgICAgDQotICAgICAgPEV4Y2x1ZGVkX1BhY2thZ2VzIE5hbWU9
IiQoQkRTKVxiaW5cYmNib2ZmaWNlMmsxMDAuYnBsIj5Db2RlR2VhciBDKytCdWlsZGVyIE9mZmlj
ZSAyMDAwIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQotICAgICAgPEV4Y2x1
ZGVkX1BhY2thZ2VzIE5hbWU9IiQoQkRTKVxiaW5cYmNib2ZmaWNleHAxMDAuYnBsIj5Db2RlR2Vh
ciBDKytCdWlsZGVyIE9mZmljZSBYUCBTZXJ2ZXJzIFBhY2thZ2U8L0V4Y2x1ZGVkX1BhY2thZ2Vz
Pg0KLSAgICA8L0V4Y2x1ZGVkX1BhY2thZ2VzPjxMaW5rZXI+PExpbmtlciBOYW1lPSJMaWJQcmVm
aXgiPjwvTGlua2VyPjxMaW5rZXIgTmFtZT0iTGliU3VmZml4Ij48L0xpbmtlcj48TGlua2VyIE5h
bWU9IkxpYlZlcnNpb24iPjwvTGlua2VyPjwvTGlua2VyPjxQcm9qZWN0UHJvcGVydGllcz48UHJv
amVjdFByb3BlcnRpZXMgTmFtZT0iQXV0b1Nob3dEZXBzIj5GYWxzZTwvUHJvamVjdFByb3BlcnRp
ZXM+PFByb2plY3RQcm9wZXJ0aWVzIE5hbWU9Ik1hbmFnZVBhdGhzIj5UcnVlPC9Qcm9qZWN0UHJv
cGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iVmVyaWZ5UGFja2FnZXMiPlRydWU8L1By
b2plY3RQcm9wZXJ0aWVzPjwvUHJvamVjdFByb3BlcnRpZXM+PEhpc3RvcnlMaXN0c19obEluY2x1
ZGVQYXRoPjxIaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJDb3VudCI+MzwvSGlzdG9y
eUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0
ZW0wIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNs
dWRlXHZjbDsuLlxzcmM7Li5caW5jbHVkZTsuLjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+
PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJEUylcaW5jbHVkZTsk
KEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxzcmM7Li5caW5j
bHVkZTsuLjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1
ZGVQYXRoIE5hbWU9Ikl0ZW0yIj4kKEJEUylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13
YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsuLlxzcmM7Li5cc3JjOy4uXGluY2x1ZGU8L0hpc3RvcnlM
aXN0c19obEluY2x1ZGVQYXRoPjwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlM
aXN0c19obElMSU5LX0xpYnJhcnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0
aCBOYW1lPSJDb3VudCI+MTwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3Rv
cnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9Ikl0ZW0wIj4kKEJEUylcbGliOyQoQkRT
KVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBh
dGg+PC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsRGVm
aW5lcz48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJDb3VudCI+MTwvSGlzdG9yeUxpc3Rz
X2hsRGVmaW5lcz48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJJdGVtMCI+Tk9fU1RSSUNU
PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjwvSGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48SGlzdG9y
eUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZSBOYW1l
PSJDb3VudCI+MTwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hs
VExJQl9QYWdlU2l6ZSBOYW1lPSJJdGVtMCI+MzI8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNp
emU+PEhpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemUgTmFtZT0iSXRlbTEiPjE2PC9IaXN0b3J5
TGlzdHNfaGxUTElCX1BhZ2VTaXplPjwvSGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48L0NQ
bHVzUGx1c0J1aWxkZXIuUGVyc29uYWxpdHk+PC9Cb3JsYW5kUHJvamVjdD48L0JvcmxhbmRQcm9q
ZWN0Pg0KLSAgPC9Qcm9qZWN0RXh0ZW5zaW9ucz4NCi0gIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1
aWxkQmluUGF0aClcQm9ybGFuZC5DcHAuVGFyZ2V0cyIgLz4NCi0gIDxJdGVtR3JvdXA+DQotICAg
IDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtZGVhdGgtdGVzdC5oIj4NCi0g
ICAgICA8QnVpbGRPcmRlcj4zPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtbWVzc2FnZS5oIj4NCi0gICAgICA8QnVp
bGRPcmRlcj40PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluY2x1ZGVcZ3Rlc3RcZ3Rlc3QtcGFyYW0tdGVzdC5oIj4NCi0gICAgICA8QnVpbGRPcmRl
cj41PC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGlu
Y2x1ZGVcZ3Rlc3RcZ3Rlc3Qtc3BpLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjY8L0J1aWxkT3Jk
ZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxn
dGVzdC10ZXN0LXBhcnQuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+NzwvQnVpbGRPcmRlcj4NCi0g
ICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LXR5
cGVkLXRlc3QuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+ODwvQnVpbGRPcmRlcj4NCi0gICAgPC9O
b25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0LmgiPg0KLSAg
ICAgIDxCdWlsZE9yZGVyPjA8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUg
SW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxndGVzdF9wcmVkX2ltcGwuaCI+DQotICAgICAgPEJ1
aWxkT3JkZXI+MTwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxpbmNsdWRlXGd0ZXN0XGd0ZXN0X3Byb2QuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+Mjwv
QnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRl
XGd0ZXN0XGludGVybmFsXGd0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCI+DQotICAgICAgPEJ1
aWxkT3JkZXI+OTwvQnVpbGRPcmRlcj4NCi0gICAgPC9Ob25lPg0KLSAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0LWZpbGVwYXRoLmgiPg0KLSAgICAgIDxC
dWlsZE9yZGVyPjEwPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25lIEluY2x1
ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtaW50ZXJuYWwuaCI+DQotICAgICAg
PEJ1aWxkT3JkZXI+MTE8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9uZT4NCi0gICAgPE5vbmUgSW5j
bHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1saW5rZWRfcHRyLmgiPg0KLSAg
ICAgIDxCdWlsZE9yZGVyPjEyPC9CdWlsZE9yZGVyPg0KLSAgICA8L05vbmU+DQotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rlc3QtcGFyYW0tdXRpbC1nZW5l
cmF0ZWQuaCI+DQotICAgICAgPEJ1aWxkT3JkZXI+MTQ8L0J1aWxkT3JkZXI+DQotICAgIDwvTm9u
ZT4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5caW5jbHVkZVxndGVzdFxpbnRlcm5hbFxndGVzdC1w
YXJhbS11dGlsLmgiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjEzPC9CdWlsZE9yZGVyPg0KLSAgICA8
L05vbmU+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluY2x1ZGVcZ3Rlc3RcaW50ZXJuYWxcZ3Rl
c3QtcG9ydC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNTwvQnVpbGRPcmRlcj4NCi0gICAgPC9O
b25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0
LXN0cmluZy5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNjwvQnVpbGRPcmRlcj4NCi0gICAgPC9O
b25lPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGd0ZXN0XGludGVybmFsXGd0ZXN0
LXR5cGUtdXRpbC5oIj4NCi0gICAgICA8QnVpbGRPcmRlcj4xNzwvQnVpbGRPcmRlcj4NCi0gICAg
PC9Ob25lPg0KLSAgICA8Q3BwQ29tcGlsZSBJbmNsdWRlPSJndGVzdF9hbGwuY2MiPg0KLSAgICAg
IDxCdWlsZE9yZGVyPjE4PC9CdWlsZE9yZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxC
dWlsZENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWciPg0KLSAgICAgIDxLZXk+Q2ZnXzE8L0tl
eT4NCi0gICAgPC9CdWlsZENvbmZpZ3VyYXRpb24+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iUmVsZWFzZSI+DQotICAgICAgPEtleT5DZmdfMjwvS2V5Pg0KLSAgICA8L0J1aWxk
Q29uZmlndXJhdGlvbj4NCi0gIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2Rl
Z2Vhci9ndGVzdC5ncm91cHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9n
dGVzdC5ncm91cHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZjMxY2FiNjQw
YmI0NTQwODEyZjg4ZjZmYTBmYWNjNmYwMTBkYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rl
c3QuZ3JvdXBwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAot77u/PFByb2plY3Qg
eG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAw
MyI+DQotICA8UHJvcGVydHlHcm91cD4NCi0gICAgPFByb2plY3RHdWlkPntjMWQ5MjNlMC02Y2Jh
LTQzMzItOWI2Zi0zNDIwYWNiZjUwOTF9PC9Qcm9qZWN0R3VpZD4NCi0gIDwvUHJvcGVydHlHcm91
cD4NCi0gIDxJdGVtR3JvdXAgLz4NCi0gIDxJdGVtR3JvdXA+DQotICAgIDxQcm9qZWN0cyBJbmNs
dWRlPSJndGVzdC5jYnByb2oiIC8+DQotICAgIDxQcm9qZWN0cyBJbmNsdWRlPSJndGVzdF9tYWlu
LmNicHJvaiIgLz4NCi0gICAgPFByb2plY3RzIEluY2x1ZGU9Imd0ZXN0X3VuaXR0ZXN0LmNicHJv
aiIgLz4NCi0gIDwvSXRlbUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAgICA8Qm9y
bGFuZC5QZXJzb25hbGl0eT5EZWZhdWx0LlBlcnNvbmFsaXR5PC9Cb3JsYW5kLlBlcnNvbmFsaXR5
Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZSAvPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQot
PEJvcmxhbmRQcm9qZWN0IHhtbG5zPSIiPjxEZWZhdWx0LlBlcnNvbmFsaXR5PjwvRGVmYXVsdC5Q
ZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQotICA8L1Byb2pl
Y3RFeHRlbnNpb25zPg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdCI+DQotICAgIDxNU0J1aWxkIFBy
b2plY3RzPSJndGVzdC5jYnByb2oiIFRhcmdldHM9IiIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRh
cmdldCBOYW1lPSJndGVzdDpDbGVhbiI+DQotICAgIDxNU0J1aWxkIFByb2plY3RzPSJndGVzdC5j
YnByb2oiIFRhcmdldHM9IkNsZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9
Imd0ZXN0Ok1ha2UiPg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3QuY2Jwcm9qIiBUYXJn
ZXRzPSJNYWtlIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Imd0ZXN0X21haW4i
Pg0KLSAgICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9IiIg
Lz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF9tYWluOkNsZWFuIj4NCi0g
ICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0X21haW4uY2Jwcm9qIiBUYXJnZXRzPSJDbGVhbiIg
Lz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF9tYWluOk1ha2UiPg0KLSAg
ICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfbWFpbi5jYnByb2oiIFRhcmdldHM9Ik1ha2UiIC8+
DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfdW5pdHRlc3QiPg0KLSAgICA8
TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSIiIC8+DQot
ICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iZ3Rlc3RfdW5pdHRlc3Q6Q2xlYW4iPg0KLSAg
ICA8TVNCdWlsZCBQcm9qZWN0cz0iZ3Rlc3RfdW5pdHRlc3QuY2Jwcm9qIiBUYXJnZXRzPSJDbGVh
biIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJndGVzdF91bml0dGVzdDpNYWtl
Ij4NCi0gICAgPE1TQnVpbGQgUHJvamVjdHM9Imd0ZXN0X3VuaXR0ZXN0LmNicHJvaiIgVGFyZ2V0
cz0iTWFrZSIgLz4NCi0gIDwvVGFyZ2V0Pg0KLSAgPFRhcmdldCBOYW1lPSJCdWlsZCI+DQotICAg
IDxDYWxsVGFyZ2V0IFRhcmdldHM9Imd0ZXN0O2d0ZXN0X21haW47Z3Rlc3RfdW5pdHRlc3QiIC8+
DQotICA8L1RhcmdldD4NCi0gIDxUYXJnZXQgTmFtZT0iQ2xlYW4iPg0KLSAgICA8Q2FsbFRhcmdl
dCBUYXJnZXRzPSJndGVzdDpDbGVhbjtndGVzdF9tYWluOkNsZWFuO2d0ZXN0X3VuaXR0ZXN0OkNs
ZWFuIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8VGFyZ2V0IE5hbWU9Ik1ha2UiPg0KLSAgICA8Q2Fs
bFRhcmdldCBUYXJnZXRzPSJndGVzdDpNYWtlO2d0ZXN0X21haW46TWFrZTtndGVzdF91bml0dGVz
dDpNYWtlIiAvPg0KLSAgPC9UYXJnZXQ+DQotICA8SW1wb3J0IENvbmRpdGlvbj0iRXhpc3RzKCck
KE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkdyb3VwLlRhcmdldHMnKSIgUHJvamVjdD0iJChNU0J1
aWxkQmluUGF0aClcQm9ybGFuZC5Hcm91cC5UYXJnZXRzIiAvPg0KLTwvUHJvamVjdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jb2RlZ2Vhci9ndGVzdF9hbGwuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vh
ci9ndGVzdF9hbGwuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhN2FkNjhhZDFj
YWE1ZmIyMDgzOGM3MDA4OTZhNDE4MmJhNTlkOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rl
c3RfYWxsLmNjCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MDksIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0v
LyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8g
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLy8KLS8vIEF1dGhvcjogSm9zaCBLZWxsZXkg
KGpvc2hrZWxAZ21haWwuY29tKQotLy8KLS8vIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsg
KEdvb2dsZSBUZXN0KQotLy8KLS8vIEMrK0J1aWxkZXIncyBJREUgY2Fubm90IGJ1aWxkIGEgc3Rh
dGljIGxpYnJhcnkgZnJvbSBmaWxlcyB3aXRoIGh5cGhlbnMKLS8vIGluIHRoZWlyIG5hbWUuICBT
ZWUgaHR0cDovL3FjLmNvZGVnZWFyLmNvbS93Yy9xY21haW4uYXNweD9kPTcwOTc3IC4KLS8vIFRo
aXMgZmlsZSBzZXJ2ZXMgYXMgYSB3b3JrYXJvdW5kLgotCi0jaW5jbHVkZSAic3JjL2d0ZXN0LWFs
bC5jYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0
X2xpbmsuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vhci9ndGVzdF9saW5rLmNj
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTU1ZWJmMmY5MTEwZTYzNTNjNjg3Y2Mz
OTQyMzQ4ZGE3OTdjYjUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MKKysr
IC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIElu
Yy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQXV0aG9yOiBKb3NoIEtlbGxleSAoam9zaGtlbEBnbWFp
bC5jb20pCi0vLwotLy8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3Qp
Ci0vLwotLy8gTGlua3MgZ3Rlc3QubGliIGFuZCBndGVzdF9tYWluLmxpYiBpbnRvIHRoZSBjdXJy
ZW50IHByb2plY3QgaW4gQysrQnVpbGRlci4KLS8vIFRoaXMgbWVhbnMgdGhhdCB0aGVzZSBsaWJy
YXJpZXMgY2FuJ3QgYmUgcmVuYW1lZCwgYnV0IGl0J3MgdGhlIG9ubHkgd2F5IHRvCi0vLyBlbnN1
cmUgdGhhdCBEZWJ1ZyB2ZXJzdXMgUmVsZWFzZSB0ZXN0IGJ1aWxkcyBhcmUgbGlua2VkIGFnYWlu
c3QgdGhlCi0vLyBhcHByb3ByaWF0ZSBEZWJ1ZyBvciBSZWxlYXNlIGJ1aWxkIG9mIHRoZSBsaWJy
YXJpZXMuCi0KLSNwcmFnbWEgbGluayAiZ3Rlc3QubGliIgotI3ByYWdtYSBsaW5rICJndGVzdF9t
YWluLmxpYiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X21haW4uY2Jwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
bWFpbi5jYnByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3NmNlMTM5OGZmMzkz
MzMzMzc3MjVmNDQ2NmRhNTYzZTk4MzM1ODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3Rf
bWFpbi5jYnByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi3vu788P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5zPSJodHRwOi8vc2No
ZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KLSAgPFByb3BlcnR5
R3JvdXA+DQotICAgIDxQcm9qZWN0R3VpZD57YmNhMzdhNzItNWIwNy00NmNmLWI0NGUtODlmOGUw
NjQ1MWEyfTwvUHJvamVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9uPSInJChDb25maWcp
Jz09JyciPlJlbGVhc2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChCYXNlKSchPScnIj4N
Ci0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQoQ2ZnXzEpJyE9Jyci
Pg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwvQ2ZnXzE+DQotICAg
IDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFBy
b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2UnIG9yICckKENmZ18y
KSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18yPnRydWU8L0NmZ18y
Pg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJvcGVydHlHcm91cD4N
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+DQotICAgIDxCQ0Nf
T3B0aW1pemVGb3JTcGVlZD50cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPE91dHB1
dEV4dD5saWI8L091dHB1dEV4dD4NCi0gICAgPERDQ19DQnVpbGRlck91dHB1dD5KUEhORTwvREND
X0NCdWlsZGVyT3V0cHV0Pg0KLSAgICA8RGVmaW5lcz5OT19TVFJJQ1Q8L0RlZmluZXM+DQotICAg
IDxEeW5hbWljUlRMPnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxVc2VQYWNrYWdlcz50cnVlPC9V
c2VQYWNrYWdlcz4NCi0gICAgPFByb2plY3RUeXBlPkNwcFN0YXRpY0xpYnJhcnk8L1Byb2plY3RU
eXBlPg0KLSAgICA8QkNDX0NQUENvbXBpbGVBbHdheXM+dHJ1ZTwvQkNDX0NQUENvbXBpbGVBbHdh
eXM+DQotICAgIDxQYWNrYWdlSW1wb3J0cz5ydGwuYnBpO3ZjbC5icGk7YmNiaWUuYnBpO3ZjbHgu
YnBpO3ZjbGFjdG5iYW5kLmJwaTt4bWxydGwuYnBpO2JjYnNtcC5icGk7ZGJydGwuYnBpO3ZjbGRi
LmJwaTtiZGVydGwuYnBpO3ZjbGRieC5icGk7ZHNuYXAuYnBpO2RzbmFwY29uLmJwaTt2Y2xpYi5i
cGk7aWJ4cHJlc3MuYnBpO2Fkb3J0bC5icGk7ZGJ4Y2RzLmJwaTtkYmV4cHJlc3MuYnBpO0RieENv
bW1vbkRyaXZlci5icGk7d2Vic25hcC5icGk7dmNsaWUuYnBpO3dlYmRzbmFwLmJwaTtpbmV0LmJw
aTtpbmV0ZGJiZGUuYnBpO2luZXRkYnhwcmVzcy5icGk7c29hcHJ0bC5icGk7UmF2ZTc1VkNMLmJw
aTt0ZWVVSS5icGk7dGVlLmJwaTt0ZWVkYi5icGk7SW5keUNvcmUuYnBpO0luZHlTeXN0ZW0uYnBp
O0luZHlQcm90b2NvbHMuYnBpO0ludHJhd2ViREJfOTBfMTAwLmJwaTtJbnRyYXdlYl85MF8xMDAu
YnBpO2RjbFppcEZvcmdlZDExLmJwaTt2Y2xaaXBGb3JnZWQxMS5icGk7R1IzMl9CRFMyMDA2LmJw
aTtHUjMyX0RTR05fQkRTMjAwNi5icGk7SmNsLmJwaTtKY2xWY2wuYnBpO0p2Q29yZUQxMVIuYnBp
O0p2U3lzdGVtRDExUi5icGk7SnZTdGRDdHJsc0QxMVIuYnBpO0p2QXBwRnJtRDExUi5icGk7SnZC
YW5kc0QxMVIuYnBpO0p2REJEMTFSLmJwaTtKdkRsZ3NEMTFSLmJwaTtKdkJERUQxMVIuYnBpO0p2
Q21wRDExUi5icGk7SnZDcnlwdEQxMVIuYnBpO0p2Q3RybHNEMTFSLmJwaTtKdkN1c3RvbUQxMVIu
YnBpO0p2RG9ja2luZ0QxMVIuYnBpO0p2RG90TmV0Q3RybHNEMTFSLmJwaTtKdkVESUQxMVIuYnBp
O0p2R2xvYnVzRDExUi5icGk7SnZITUlEMTFSLmJwaTtKdkludGVycHJldGVyRDExUi5icGk7SnZK
YW5zRDExUi5icGk7SnZNYW5hZ2VkVGhyZWFkc0QxMVIuYnBpO0p2TU1EMTFSLmJwaTtKdk5ldEQx
MVIuYnBpO0p2UGFnZUNvbXBzRDExUi5icGk7SnZQbHVnaW5EMTFSLmJwaTtKdlByaW50UHJldmll
d0QxMVIuYnBpO0p2UnVudGltZURlc2lnbkQxMVIuYnBpO0p2VGltZUZyYW1ld29ya0QxMVIuYnBp
O0p2VmFsaWRhdG9yc0QxMVIuYnBpO0p2V2l6YXJkRDExUi5icGk7SnZYUEN0cmxzRDExUi5icGk7
VmNsU21wLmJwaTtDRXhjZXB0aW9uRXhwZXJ0MTEuYnBpPC9QYWNrYWdlSW1wb3J0cz4NCi0gICAg
PEJDQ193cGFyPmZhbHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRTKVxpbmNs
dWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsu
LlxpbmNsdWRlOy4uPC9JbmNsdWRlUGF0aD4NCi0gICAgPEFsbFBhY2thZ2VMaWJzPnJ0bC5saWI7
dmNsLmxpYjwvQWxsUGFja2FnZUxpYnM+DQotICAgIDxUTElCX1BhZ2VTaXplPjMyPC9UTElCX1Bh
Z2VTaXplPg0KLSAgICA8SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYjskKEJEUylcbGliXG9i
ajskKEJEUylcbGliXHBzZGs8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgPC9Qcm9wZXJ0eUdyb3Vw
Pg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDZmdfMSknIT0nJyI+DQotICAgIDxC
Q0NfT3B0aW1pemVGb3JTcGVlZD5mYWxzZTwvQkNDX09wdGltaXplRm9yU3BlZWQ+DQotICAgIDxE
Q0NfT3B0aW1pemU+ZmFsc2U8L0RDQ19PcHRpbWl6ZT4NCi0gICAgPERDQ19EZWJ1Z0luZm9JbkV4
ZT50cnVlPC9EQ0NfRGVidWdJbmZvSW5FeGU+DQotICAgIDxEZWZpbmVzPl9ERUJVRzskKERlZmlu
ZXMpPC9EZWZpbmVzPg0KLSAgICA8SUxJTktfRnVsbERlYnVnSW5mbz50cnVlPC9JTElOS19GdWxs
RGVidWdJbmZvPg0KLSAgICA8QkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPmZhbHNlPC9CQ0Nf
SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+DQotICAgIDxJTElOS19EaXNhYmxlSW5jcmVtZW50YWxM
aW5raW5nPnRydWU8L0lMSU5LX0Rpc2FibGVJbmNyZW1lbnRhbExpbmtpbmc+DQotICAgIDxCQ0Nf
VXNlUmVnaXN0ZXJWYXJpYWJsZXM+Tm9uZTwvQkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPg0KLSAg
ICA8RENDX0RlZmluZT5ERUJVRzwvRENDX0RlZmluZT4NCi0gICAgPEJDQ19EZWJ1Z0xpbmVOdW1i
ZXJzPnRydWU8L0JDQ19EZWJ1Z0xpbmVOdW1iZXJzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0
RGlyPkRlYnVnPC9JbnRlcm1lZGlhdGVPdXRwdXREaXI+DQotICAgIDxUQVNNX0Rpc3BsYXlTb3Vy
Y2VMaW5lcz50cnVlPC9UQVNNX0Rpc3BsYXlTb3VyY2VMaW5lcz4NCi0gICAgPEJDQ19TdGFja0Zy
YW1lcz50cnVlPC9CQ0NfU3RhY2tGcmFtZXM+DQotICAgIDxCQ0NfRGlzYWJsZU9wdGltaXphdGlv
bnM+dHJ1ZTwvQkNDX0Rpc2FibGVPcHRpbWl6YXRpb25zPg0KLSAgICA8SUxJTktfTGlicmFyeVBh
dGg+JChCRFMpXGxpYlxkZWJ1ZzskKElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBh
dGg+DQotICAgIDxUQVNNX0RlYnVnZ2luZz5GdWxsPC9UQVNNX0RlYnVnZ2luZz4NCi0gICAgPEJD
Q19Tb3VyY2VEZWJ1Z2dpbmdPbj50cnVlPC9CQ0NfU291cmNlRGVidWdnaW5nT24+DQotICA8L1By
b3BlcnR5R3JvdXA+DQotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENmZ18yKSchPScn
Ij4NCi0gICAgPERlZmluZXM+TkRFQlVHOyQoRGVmaW5lcyk8L0RlZmluZXM+DQotICAgIDxJbnRl
cm1lZGlhdGVPdXRwdXREaXI+UmVsZWFzZTwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAgICA8
SUxJTktfTGlicmFyeVBhdGg+JChCRFMpXGxpYlxyZWxlYXNlOyQoSUxJTktfTGlicmFyeVBhdGgp
PC9JTElOS19MaWJyYXJ5UGF0aD4NCi0gICAgPFRBU01fRGVidWdnaW5nPk5vbmU8L1RBU01fRGVi
dWdnaW5nPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb2plY3RFeHRlbnNpb25zPg0KLSAg
ICA8Qm9ybGFuZC5QZXJzb25hbGl0eT5DUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PC9Cb3Js
YW5kLlBlcnNvbmFsaXR5Pg0KLSAgICA8Qm9ybGFuZC5Qcm9qZWN0VHlwZT5DcHBTdGF0aWNMaWJy
YXJ5PC9Cb3JsYW5kLlByb2plY3RUeXBlPg0KLSAgICA8Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxh
bmRQcm9qZWN0PjxDUGx1c1BsdXNCdWlsZGVyLlBlcnNvbmFsaXR5PjxWZXJzaW9uSW5mbz48VmVy
c2lvbkluZm8gTmFtZT0iSW5jbHVkZVZlckluZm8iPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lv
bkluZm8gTmFtZT0iQXV0b0luY0J1aWxkIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZv
IE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTWlub3JW
ZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJSZWxlYXNlIj4wPC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQnVpbGQiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5m
byBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJQcmVS
ZWxlYXNlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9IlNwZWNpYWwiPkZh
bHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iUHJpdmF0ZSI+RmFsc2U8L1ZlcnNp
b25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJETEwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lv
bkluZm8gTmFtZT0iTG9jYWxlIj4xMDMzPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0i
Q29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25JbmZvPjwvVmVyc2lvbkluZm8+PFZlcnNpb25JbmZvS2V5
cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbXBhbnlOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48
VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVEZXNjcmlwdGlvbiI+PC9WZXJzaW9uSW5mb0tleXM+
PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlVmVyc2lvbiI+MS4wLjAuMDwvVmVyc2lvbkluZm9L
ZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iSW50ZXJuYWxOYW1lIj48L1ZlcnNpb25JbmZvS2V5
cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsQ29weXJpZ2h0Ij48L1ZlcnNpb25JbmZvS2V5
cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsVHJhZGVtYXJrcyI+PC9WZXJzaW9uSW5mb0tl
eXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJPcmlnaW5hbEZpbGVuYW1lIj48L1ZlcnNpb25JbmZv
S2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3ROYW1lIj48L1ZlcnNpb25JbmZvS2V5
cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3RWZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9u
SW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJDb21tZW50cyI+PC9WZXJzaW9uSW5mb0tl
eXM+PC9WZXJzaW9uSW5mb0tleXM+PERlYnVnZ2luZz48RGVidWdnaW5nIE5hbWU9IkRlYnVnU291
cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+PFBhcmFtZXRlcnM+PFBhcmFtZXRlcnMg
TmFtZT0iUnVuUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTGF1bmNoZXIi
PjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJVc2VMYXVuY2hlciI+RmFsc2U8L1BhcmFt
ZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWdDV0QiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVy
cyBOYW1lPSJIb3N0QXBwbGljYXRpb24iPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJS
ZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUmVtb3RlUGF0aCI+PC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZVBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQ
YXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxhdW5jaGVyIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMg
TmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIiPkZhbHNlPC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5h
bWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZURlYnVn
Ij5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJEZWJ1ZyBTeW1ib2xzIFNlYXJj
aCBQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZEFsbFN5bWJvbHMiPlRy
dWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iTG9hZFVuc3BlY2lmaWVkU3ltYm9scyI+
RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJhbWV0ZXJzPjxFeGNsdWRlZF9QYWNrYWdlcz4NCi0gICAg
ICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwi
PkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRl
ZF9QYWNrYWdlcz4NCi0gICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxi
Y2JvZmZpY2V4cDEwMC5icGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMg
UGFja2FnZTwvRXhjbHVkZWRfUGFja2FnZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExp
bmtlcj48TGlua2VyIE5hbWU9IkxpYlByZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJT
dWZmaXgiPjwvTGlua2VyPjxMaW5rZXIgTmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5r
ZXI+PFByb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0Rl
cHMiPkZhbHNlPC9Qcm9qZWN0UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFu
YWdlUGF0aHMiPlRydWU8L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1l
PSJWZXJpZnlQYWNrYWdlcyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVy
dGllcz48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQ
YXRoIE5hbWU9IkNvdW50Ij4zPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxp
c3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNs
dWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9I
aXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFt
ZT0iSXRlbTEiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMp
XGluY2x1ZGVcdmNsOy4uXHNyYzsuLlxpbmNsdWRlOy4uPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRl
UGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGggTmFtZT0iSXRlbTIiPiQoQkRTKVxpbmNs
dWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4uXHNyYzsu
LlxzcmM7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3Rv
cnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNf
aGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFt
ZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxpYlxvYmo7JChCRFMpXGxpYlxwc2RrPC9IaXN0
b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJh
cnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5h
bWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZp
bmVzIE5hbWU9Ikl0ZW0wIj5OT19TVFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0
b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplPjxIaXN0b3J5
TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxUTElC
X1BhZ2VTaXplPjxIaXN0b3J5TGlzdHNfaGxUTElCX1BhZ2VTaXplIE5hbWU9Ikl0ZW0wIj4zMjwv
SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6ZT48SGlzdG9yeUxpc3RzX2hsVExJQl9QYWdlU2l6
ZSBOYW1lPSJJdGVtMSI+MTY8L0hpc3RvcnlMaXN0c19obFRMSUJfUGFnZVNpemU+PC9IaXN0b3J5
TGlzdHNfaGxUTElCX1BhZ2VTaXplPjwvQ1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0Jv
cmxhbmRQcm9qZWN0PjwvQm9ybGFuZFByb2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0K
LSAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRz
IiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0gICAgPENwcENvbXBpbGUgSW5jbHVkZT0iLi5cc3JjXGd0
ZXN0X21haW4uY2MiPg0KLSAgICAgIDxCdWlsZE9yZGVyPjA8L0J1aWxkT3JkZXI+DQotICAgIDwv
Q3BwQ29tcGlsZT4NCi0gICAgPEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1ZyI+DQot
ICAgICAgPEtleT5DZmdfMTwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4NCi0gICAg
PEJ1aWxkQ29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlIj4NCi0gICAgICA8S2V5PkNmZ18y
PC9LZXk+DQotICAgIDwvQnVpbGRDb25maWd1cmF0aW9uPg0KLSAgPC9JdGVtR3JvdXA+DQotPC9Q
cm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X3VuaXR0ZXN0LmNicHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVnZWFyL2d0
ZXN0X3VuaXR0ZXN0LmNicHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM1ZGI4
ZTRkYTU5NDU3ZmM4ZWZhYTJkNmNjZWE4N2M2Yjg0ZGJkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb2RlZ2Vh
ci9ndGVzdF91bml0dGVzdC5jYnByb2oKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi3v
u788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KLTxQcm9qZWN0IHhtbG5z
PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0K
LSAgPFByb3BlcnR5R3JvdXA+DQotICAgIDxQcm9qZWN0R3VpZD57ZWVhNjMzOTMtNWFjNS00Yjlj
LTg5MDktZDc1ZmVmMmRhYTQxfTwvUHJvamVjdEd1aWQ+DQotICAgIDxDb25maWcgQ29uZGl0aW9u
PSInJChDb25maWcpJz09JyciPlJlbGVhc2U8L0NvbmZpZz4NCi0gIDwvUHJvcGVydHlHcm91cD4N
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdCYXNlJyBvciAnJChC
YXNlKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gIDwvUHJvcGVydHlHcm91cD4N
Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlnKSc9PSdEZWJ1Zycgb3IgJyQo
Q2ZnXzEpJyE9JyciPg0KLSAgICA8QmFzZT50cnVlPC9CYXNlPg0KLSAgICA8Q2ZnXzE+dHJ1ZTwv
Q2ZnXzE+DQotICAgIDxDZmdQYXJlbnQ+QmFzZTwvQ2ZnUGFyZW50Pg0KLSAgPC9Qcm9wZXJ0eUdy
b3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWcpJz09J1JlbGVhc2Un
IG9yICckKENmZ18yKSchPScnIj4NCi0gICAgPEJhc2U+dHJ1ZTwvQmFzZT4NCi0gICAgPENmZ18y
PnRydWU8L0NmZ18yPg0KLSAgICA8Q2ZnUGFyZW50PkJhc2U8L0NmZ1BhcmVudD4NCi0gIDwvUHJv
cGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQmFzZSknIT0nJyI+
DQotICAgIDxPdXRwdXRFeHQ+ZXhlPC9PdXRwdXRFeHQ+DQotICAgIDxCQ0NfT3B0aW1pemVGb3JT
cGVlZD50cnVlPC9CQ0NfT3B0aW1pemVGb3JTcGVlZD4NCi0gICAgPERlZmluZXM+Tk9fU1RSSUNU
PC9EZWZpbmVzPg0KLSAgICA8RENDX0NCdWlsZGVyT3V0cHV0PkpQSE5FPC9EQ0NfQ0J1aWxkZXJP
dXRwdXQ+DQotICAgIDxEeW5hbWljUlRMPnRydWU8L0R5bmFtaWNSVEw+DQotICAgIDxJTElOS19P
YmplY3RTZWFyY2hQYXRoPi4uXHRlc3Q8L0lMSU5LX09iamVjdFNlYXJjaFBhdGg+DQotICAgIDxV
c2VQYWNrYWdlcz50cnVlPC9Vc2VQYWNrYWdlcz4NCi0gICAgPFByb2plY3RUeXBlPkNwcENvbnNv
bGVBcHBsaWNhdGlvbjwvUHJvamVjdFR5cGU+DQotICAgIDxOb1ZDTD50cnVlPC9Ob1ZDTD4NCi0g
ICAgPEJDQ19DUFBDb21waWxlQWx3YXlzPnRydWU8L0JDQ19DUFBDb21waWxlQWx3YXlzPg0KLSAg
ICA8UGFja2FnZUltcG9ydHM+cnRsLmJwaTt2Y2wuYnBpO2JjYmllLmJwaTt2Y2x4LmJwaTt2Y2xh
Y3RuYmFuZC5icGk7eG1scnRsLmJwaTtiY2JzbXAuYnBpO2RicnRsLmJwaTt2Y2xkYi5icGk7YmRl
cnRsLmJwaTt2Y2xkYnguYnBpO2RzbmFwLmJwaTtkc25hcGNvbi5icGk7dmNsaWIuYnBpO2lieHBy
ZXNzLmJwaTthZG9ydGwuYnBpO2RieGNkcy5icGk7ZGJleHByZXNzLmJwaTtEYnhDb21tb25Ecml2
ZXIuYnBpO3dlYnNuYXAuYnBpO3ZjbGllLmJwaTt3ZWJkc25hcC5icGk7aW5ldC5icGk7aW5ldGRi
YmRlLmJwaTtpbmV0ZGJ4cHJlc3MuYnBpO3NvYXBydGwuYnBpO1JhdmU3NVZDTC5icGk7dGVlVUku
YnBpO3RlZS5icGk7dGVlZGIuYnBpO0luZHlDb3JlLmJwaTtJbmR5U3lzdGVtLmJwaTtJbmR5UHJv
dG9jb2xzLmJwaTtJbnRyYXdlYkRCXzkwXzEwMC5icGk7SW50cmF3ZWJfOTBfMTAwLmJwaTtKY2wu
YnBpO0pjbFZjbC5icGk7SnZDb3JlRDExUi5icGk7SnZTeXN0ZW1EMTFSLmJwaTtKdlN0ZEN0cmxz
RDExUi5icGk7SnZBcHBGcm1EMTFSLmJwaTtKdkJhbmRzRDExUi5icGk7SnZEQkQxMVIuYnBpO0p2
RGxnc0QxMVIuYnBpO0p2QkRFRDExUi5icGk7SnZDbXBEMTFSLmJwaTtKdkNyeXB0RDExUi5icGk7
SnZDdHJsc0QxMVIuYnBpO0p2Q3VzdG9tRDExUi5icGk7SnZEb2NraW5nRDExUi5icGk7SnZEb3RO
ZXRDdHJsc0QxMVIuYnBpO0p2RURJRDExUi5icGk7SnZHbG9idXNEMTFSLmJwaTtKdkhNSUQxMVIu
YnBpO0p2SW50ZXJwcmV0ZXJEMTFSLmJwaTtKdkphbnNEMTFSLmJwaTtKdk1hbmFnZWRUaHJlYWRz
RDExUi5icGk7SnZNTUQxMVIuYnBpO0p2TmV0RDExUi5icGk7SnZQYWdlQ29tcHNEMTFSLmJwaTtK
dlBsdWdpbkQxMVIuYnBpO0p2UHJpbnRQcmV2aWV3RDExUi5icGk7SnZSdW50aW1lRGVzaWduRDEx
Ui5icGk7SnZUaW1lRnJhbWV3b3JrRDExUi5icGk7SnZWYWxpZGF0b3JzRDExUi5icGk7SnZXaXph
cmREMTFSLmJwaTtKdlhQQ3RybHNEMTFSLmJwaTtWY2xTbXAuYnBpPC9QYWNrYWdlSW1wb3J0cz4N
Ci0gICAgPEJDQ193cGFyPmZhbHNlPC9CQ0Nfd3Bhcj4NCi0gICAgPEluY2x1ZGVQYXRoPiQoQkRT
KVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7JChCRFMpXGluY2x1ZGVcdmNsOy4u
XGluY2x1ZGU7Li5cdGVzdDsuLjwvSW5jbHVkZVBhdGg+DQotICAgIDxJTElOS19MaWJyYXJ5UGF0
aD4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazsuLlx0ZXN0PC9JTElO
S19MaWJyYXJ5UGF0aD4NCi0gICAgPE11bHRpdGhyZWFkZWQ+dHJ1ZTwvTXVsdGl0aHJlYWRlZD4N
Ci0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ2Zn
XzEpJyE9JyciPg0KLSAgICA8QkNDX09wdGltaXplRm9yU3BlZWQ+ZmFsc2U8L0JDQ19PcHRpbWl6
ZUZvclNwZWVkPg0KLSAgICA8RENDX09wdGltaXplPmZhbHNlPC9EQ0NfT3B0aW1pemU+DQotICAg
IDxEQ0NfRGVidWdJbmZvSW5FeGU+dHJ1ZTwvRENDX0RlYnVnSW5mb0luRXhlPg0KLSAgICA8RGVm
aW5lcz5fREVCVUc7JChEZWZpbmVzKTwvRGVmaW5lcz4NCi0gICAgPElMSU5LX0Z1bGxEZWJ1Z0lu
Zm8+dHJ1ZTwvSUxJTktfRnVsbERlYnVnSW5mbz4NCi0gICAgPEJDQ19JbmxpbmVGdW5jdGlvbkV4
cGFuc2lvbj5mYWxzZTwvQkNDX0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPg0KLSAgICA8SUxJTktf
RGlzYWJsZUluY3JlbWVudGFsTGlua2luZz50cnVlPC9JTElOS19EaXNhYmxlSW5jcmVtZW50YWxM
aW5raW5nPg0KLSAgICA8QkNDX1VzZVJlZ2lzdGVyVmFyaWFibGVzPk5vbmU8L0JDQ19Vc2VSZWdp
c3RlclZhcmlhYmxlcz4NCi0gICAgPERDQ19EZWZpbmU+REVCVUc8L0RDQ19EZWZpbmU+DQotICAg
IDxCQ0NfRGVidWdMaW5lTnVtYmVycz50cnVlPC9CQ0NfRGVidWdMaW5lTnVtYmVycz4NCi0gICAg
PEludGVybWVkaWF0ZU91dHB1dERpcj5EZWJ1ZzwvSW50ZXJtZWRpYXRlT3V0cHV0RGlyPg0KLSAg
ICA8VEFTTV9EaXNwbGF5U291cmNlTGluZXM+dHJ1ZTwvVEFTTV9EaXNwbGF5U291cmNlTGluZXM+
DQotICAgIDxCQ0NfU3RhY2tGcmFtZXM+dHJ1ZTwvQkNDX1N0YWNrRnJhbWVzPg0KLSAgICA8QkND
X0Rpc2FibGVPcHRpbWl6YXRpb25zPnRydWU8L0JDQ19EaXNhYmxlT3B0aW1pemF0aW9ucz4NCi0g
ICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJcZGVidWc7JChJTElOS19MaWJyYXJ5UGF0
aCk8L0lMSU5LX0xpYnJhcnlQYXRoPg0KLSAgICA8VEFTTV9EZWJ1Z2dpbmc+RnVsbDwvVEFTTV9E
ZWJ1Z2dpbmc+DQotICAgIDxCQ0NfU291cmNlRGVidWdnaW5nT24+dHJ1ZTwvQkNDX1NvdXJjZURl
YnVnZ2luZ09uPg0KLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDZmdfMiknIT0nJyI+DQotICAgIDxEZWZpbmVzPk5ERUJVRzskKERlZmluZXMpPC9E
ZWZpbmVzPg0KLSAgICA8SW50ZXJtZWRpYXRlT3V0cHV0RGlyPlJlbGVhc2U8L0ludGVybWVkaWF0
ZU91dHB1dERpcj4NCi0gICAgPElMSU5LX0xpYnJhcnlQYXRoPiQoQkRTKVxsaWJccmVsZWFzZTsk
KElMSU5LX0xpYnJhcnlQYXRoKTwvSUxJTktfTGlicmFyeVBhdGg+DQotICAgIDxUQVNNX0RlYnVn
Z2luZz5Ob25lPC9UQVNNX0RlYnVnZ2luZz4NCi0gIDwvUHJvcGVydHlHcm91cD4NCi0gIDxQcm9q
ZWN0RXh0ZW5zaW9ucz4NCi0gICAgPEJvcmxhbmQuUGVyc29uYWxpdHk+Q1BsdXNQbHVzQnVpbGRl
ci5QZXJzb25hbGl0eTwvQm9ybGFuZC5QZXJzb25hbGl0eT4NCi0gICAgPEJvcmxhbmQuUHJvamVj
dFR5cGU+Q3BwQ29uc29sZUFwcGxpY2F0aW9uPC9Cb3JsYW5kLlByb2plY3RUeXBlPg0KLSAgICA8
Qm9ybGFuZFByb2plY3Q+DQotPEJvcmxhbmRQcm9qZWN0PjxDUGx1c1BsdXNCdWlsZGVyLlBlcnNv
bmFsaXR5PjxWZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iSW5jbHVkZVZlckluZm8iPkZh
bHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQXV0b0luY0J1aWxkIj5GYWxzZTwv
VmVyc2lvbkluZm8+PFZlcnNpb25JbmZvIE5hbWU9Ik1ham9yVmVyIj4xPC9WZXJzaW9uSW5mbz48
VmVyc2lvbkluZm8gTmFtZT0iTWlub3JWZXIiPjA8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBO
YW1lPSJSZWxlYXNlIj4wPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQnVpbGQiPjA8
L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJEZWJ1ZyI+RmFsc2U8L1ZlcnNpb25JbmZv
PjxWZXJzaW9uSW5mbyBOYW1lPSJQcmVSZWxlYXNlIj5GYWxzZTwvVmVyc2lvbkluZm8+PFZlcnNp
b25JbmZvIE5hbWU9IlNwZWNpYWwiPkZhbHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFt
ZT0iUHJpdmF0ZSI+RmFsc2U8L1ZlcnNpb25JbmZvPjxWZXJzaW9uSW5mbyBOYW1lPSJETEwiPkZh
bHNlPC9WZXJzaW9uSW5mbz48VmVyc2lvbkluZm8gTmFtZT0iTG9jYWxlIj4xMDMzPC9WZXJzaW9u
SW5mbz48VmVyc2lvbkluZm8gTmFtZT0iQ29kZVBhZ2UiPjEyNTI8L1ZlcnNpb25JbmZvPjwvVmVy
c2lvbkluZm8+PFZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkNvbXBhbnlO
YW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkZpbGVEZXNjcmlw
dGlvbiI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJGaWxlVmVyc2lv
biI+MS4wLjAuMDwvVmVyc2lvbkluZm9LZXlzPjxWZXJzaW9uSW5mb0tleXMgTmFtZT0iSW50ZXJu
YWxOYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsQ29w
eXJpZ2h0Ij48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IkxlZ2FsVHJh
ZGVtYXJrcyI+PC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJPcmlnaW5h
bEZpbGVuYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1
Y3ROYW1lIj48L1ZlcnNpb25JbmZvS2V5cz48VmVyc2lvbkluZm9LZXlzIE5hbWU9IlByb2R1Y3RW
ZXJzaW9uIj4xLjAuMC4wPC9WZXJzaW9uSW5mb0tleXM+PFZlcnNpb25JbmZvS2V5cyBOYW1lPSJD
b21tZW50cyI+PC9WZXJzaW9uSW5mb0tleXM+PC9WZXJzaW9uSW5mb0tleXM+PERlYnVnZ2luZz48
RGVidWdnaW5nIE5hbWU9IkRlYnVnU291cmNlRGlycyI+PC9EZWJ1Z2dpbmc+PC9EZWJ1Z2dpbmc+
PFBhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iUnVuUGFyYW1zIj48L1BhcmFtZXRlcnM+PFBh
cmFtZXRlcnMgTmFtZT0iTGF1bmNoZXIiPjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJV
c2VMYXVuY2hlciI+RmFsc2U8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iRGVidWdDV0Qi
PjwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBOYW1lPSJIb3N0QXBwbGljYXRpb24iPjwvUGFyYW1l
dGVycz48UGFyYW1ldGVycyBOYW1lPSJSZW1vdGVIb3N0Ij48L1BhcmFtZXRlcnM+PFBhcmFtZXRl
cnMgTmFtZT0iUmVtb3RlUGF0aCI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90
ZVBhcmFtcyI+PC9QYXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUxhdW5jaGVyIj48
L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0iVXNlUmVtb3RlTGF1bmNoZXIiPkZhbHNlPC9Q
YXJhbWV0ZXJzPjxQYXJhbWV0ZXJzIE5hbWU9IlJlbW90ZUNXRCI+PC9QYXJhbWV0ZXJzPjxQYXJh
bWV0ZXJzIE5hbWU9IlJlbW90ZURlYnVnIj5GYWxzZTwvUGFyYW1ldGVycz48UGFyYW1ldGVycyBO
YW1lPSJEZWJ1ZyBTeW1ib2xzIFNlYXJjaCBQYXRoIj48L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMg
TmFtZT0iTG9hZEFsbFN5bWJvbHMiPlRydWU8L1BhcmFtZXRlcnM+PFBhcmFtZXRlcnMgTmFtZT0i
TG9hZFVuc3BlY2lmaWVkU3ltYm9scyI+RmFsc2U8L1BhcmFtZXRlcnM+PC9QYXJhbWV0ZXJzPjxF
eGNsdWRlZF9QYWNrYWdlcz4NCi0gICAgICANCi0gICAgICANCi0gICAgICA8RXhjbHVkZWRfUGFj
a2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2UyazEwMC5icGwiPkNvZGVHZWFyIEMrK0J1
aWxkZXIgT2ZmaWNlIDIwMDAgU2VydmVycyBQYWNrYWdlPC9FeGNsdWRlZF9QYWNrYWdlcz4NCi0g
ICAgICA8RXhjbHVkZWRfUGFja2FnZXMgTmFtZT0iJChCRFMpXGJpblxiY2JvZmZpY2V4cDEwMC5i
cGwiPkNvZGVHZWFyIEMrK0J1aWxkZXIgT2ZmaWNlIFhQIFNlcnZlcnMgUGFja2FnZTwvRXhjbHVk
ZWRfUGFja2FnZXM+DQotICAgIDwvRXhjbHVkZWRfUGFja2FnZXM+PExpbmtlcj48TGlua2VyIE5h
bWU9IkxpYlByZWZpeCI+PC9MaW5rZXI+PExpbmtlciBOYW1lPSJMaWJTdWZmaXgiPjwvTGlua2Vy
PjxMaW5rZXIgTmFtZT0iTGliVmVyc2lvbiI+PC9MaW5rZXI+PC9MaW5rZXI+PFByb2plY3RQcm9w
ZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJBdXRvU2hvd0RlcHMiPkZhbHNlPC9Qcm9q
ZWN0UHJvcGVydGllcz48UHJvamVjdFByb3BlcnRpZXMgTmFtZT0iTWFuYWdlUGF0aHMiPlRydWU8
L1Byb2plY3RQcm9wZXJ0aWVzPjxQcm9qZWN0UHJvcGVydGllcyBOYW1lPSJWZXJpZnlQYWNrYWdl
cyI+VHJ1ZTwvUHJvamVjdFByb3BlcnRpZXM+PC9Qcm9qZWN0UHJvcGVydGllcz48SGlzdG9yeUxp
c3RzX2hsSW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9IkNvdW50
Ij4zPC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3RzX2hsSW5jbHVkZVBh
dGggTmFtZT0iSXRlbTAiPiQoQkRTKVxpbmNsdWRlOyQoQkRTKVxpbmNsdWRlXGRpbmt1bXdhcmU7
JChCRFMpXGluY2x1ZGVcdmNsOy4uXGluY2x1ZGU7Li5cdGVzdDsuLjwvSGlzdG9yeUxpc3RzX2hs
SW5jbHVkZVBhdGg+PEhpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoIE5hbWU9Ikl0ZW0xIj4kKEJE
UylcaW5jbHVkZTskKEJEUylcaW5jbHVkZVxkaW5rdW13YXJlOyQoQkRTKVxpbmNsdWRlXHZjbDsu
LlxpbmNsdWRlOy4uXHRlc3Q8L0hpc3RvcnlMaXN0c19obEluY2x1ZGVQYXRoPjxIaXN0b3J5TGlz
dHNfaGxJbmNsdWRlUGF0aCBOYW1lPSJJdGVtMiI+JChCRFMpXGluY2x1ZGU7JChCRFMpXGluY2x1
ZGVcZGlua3Vtd2FyZTskKEJEUylcaW5jbHVkZVx2Y2w7Li5caW5jbHVkZTwvSGlzdG9yeUxpc3Rz
X2hsSW5jbHVkZVBhdGg+PC9IaXN0b3J5TGlzdHNfaGxJbmNsdWRlUGF0aD48SGlzdG9yeUxpc3Rz
X2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRoIE5h
bWU9IkNvdW50Ij4xPC9IaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGggTmFtZT0iSXRlbTAiPiQoQkRTKVxsaWI7JChCRFMpXGxp
YlxvYmo7JChCRFMpXGxpYlxwc2RrOy4uXHRlc3Q8L0hpc3RvcnlMaXN0c19obElMSU5LX0xpYnJh
cnlQYXRoPjxIaXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aCBOYW1lPSJJdGVtMSI+JChC
RFMpXGxpYjskKEJEUylcbGliXG9iajskKEJEUylcbGliXHBzZGs7Li5cdGVzdDwvSGlzdG9yeUxp
c3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PEhpc3RvcnlMaXN0c19obElMSU5LX0xpYnJhcnlQYXRo
IE5hbWU9Ikl0ZW0yIj4kKEJEUylcbGliOyQoQkRTKVxsaWJcb2JqOyQoQkRTKVxsaWJccHNkazsk
KE9VVFBVVERJUik7Li5cdGVzdDwvSGlzdG9yeUxpc3RzX2hsSUxJTktfTGlicmFyeVBhdGg+PC9I
aXN0b3J5TGlzdHNfaGxJTElOS19MaWJyYXJ5UGF0aD48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcz48
SGlzdG9yeUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJDb3VudCI+MjwvSGlzdG9yeUxpc3RzX2hsRGVm
aW5lcz48SGlzdG9yeUxpc3RzX2hsRGVmaW5lcyBOYW1lPSJJdGVtMCI+Tk9fU1RSSUNUPC9IaXN0
b3J5TGlzdHNfaGxEZWZpbmVzPjxIaXN0b3J5TGlzdHNfaGxEZWZpbmVzIE5hbWU9Ikl0ZW0xIj5T
VFJJQ1Q8L0hpc3RvcnlMaXN0c19obERlZmluZXM+PC9IaXN0b3J5TGlzdHNfaGxEZWZpbmVzPjwv
Q1BsdXNQbHVzQnVpbGRlci5QZXJzb25hbGl0eT48L0JvcmxhbmRQcm9qZWN0PjwvQm9ybGFuZFBy
b2plY3Q+DQotICA8L1Byb2plY3RFeHRlbnNpb25zPg0KLSAgPEltcG9ydCBQcm9qZWN0PSIkKE1T
QnVpbGRCaW5QYXRoKVxCb3JsYW5kLkNwcC5UYXJnZXRzIiAvPg0KLSAgPEl0ZW1Hcm91cD4NCi0g
ICAgPENwcENvbXBpbGUgSW5jbHVkZT0iLi5cdGVzdFxndGVzdF91bml0dGVzdC5jYyI+DQotICAg
ICAgPEJ1aWxkT3JkZXI+MDwvQnVpbGRPcmRlcj4NCi0gICAgPC9DcHBDb21waWxlPg0KLSAgICA8
Q3BwQ29tcGlsZSBJbmNsdWRlPSJndGVzdF9saW5rLmNjIj4NCi0gICAgICA8QnVpbGRPcmRlcj4x
PC9CdWlsZE9yZGVyPg0KLSAgICA8L0NwcENvbXBpbGU+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iRGVidWciPg0KLSAgICAgIDxLZXk+Q2ZnXzE8L0tleT4NCi0gICAgPC9CdWls
ZENvbmZpZ3VyYXRpb24+DQotICAgIDxCdWlsZENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFz
ZSI+DQotICAgICAgPEtleT5DZmdfMjwvS2V5Pg0KLSAgICA8L0J1aWxkQ29uZmlndXJhdGlvbj4N
Ci0gIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9jb25maWd1cmUuYWMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9jb25maWd1cmUuYWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI1NGM4YzRiMzE4ODVkMjU3MWZhMjMwMGI2MzFlOGJmOWQ5NWFlMDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvY29uZmlndXJlLmFjCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotbTRfaW5j
bHVkZShtNC9hY3hfcHRocmVhZC5tNCkKLQotIyBBdCB0aGlzIHBvaW50LCB0aGUgWGNvZGUgcHJv
amVjdCBhc3N1bWVzIHRoZSB2ZXJzaW9uIHN0cmluZyB3aWxsIGJlIHRocmVlCi0jIGludGVnZXJz
IHNlcGFyYXRlZCBieSBwZXJpb2RzIGFuZCBzdXJyb3VuZGVkIGJ5IHNxdWFyZSBicmFja2V0cyAo
ZS5nLgotIyAiWzEuMC4xXSIpLiBJdCBhbHNvIGFzdW1lcyB0aGF0IHRoZXJlIHdvbid0IGJlIGFu
eSBjbG9zaW5nIHBhcmVudGhlc2lzCi0jIGJldHdlZW4gIkFDX0lOSVQoIiBhbmQgdGhlIGNsb3Np
bmcgIikiIGluY2x1ZGluZyBjb21tZW50cyBhbmQgc3RyaW5ncy4KLUFDX0lOSVQoW0dvb2dsZSBD
KysgVGVzdGluZyBGcmFtZXdvcmtdLAotICAgICAgICBbMS44LjBdLAotICAgICAgICBbZ29vZ2xl
dGVzdGZyYW1ld29ya0Bnb29nbGVncm91cHMuY29tXSwKLSAgICAgICAgW2d0ZXN0XSkKLQotIyBQ
cm92aWRlIHZhcmlvdXMgb3B0aW9ucyB0byBpbml0aWFsaXplIHRoZSBBdXRvY29uZiBhbmQgY29u
ZmlndXJlIHByb2Nlc3Nlcy4KLUFDX1BSRVJFUShbMi41OV0pCi1BQ19DT05GSUdfU1JDRElSKFsu
L0xJQ0VOU0VdKQotQUNfQ09ORklHX01BQ1JPX0RJUihbbTRdKQotQUNfQ09ORklHX0FVWF9ESVIo
W2J1aWxkLWF1eF0pCi1BQ19DT05GSUdfSEVBREVSUyhbYnVpbGQtYXV4L2NvbmZpZy5oXSkKLUFD
X0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQotQUNfQ09ORklHX0ZJTEVTKFtzY3JpcHRzL2d0ZXN0
LWNvbmZpZ10sIFtjaG1vZCAreCBzY3JpcHRzL2d0ZXN0LWNvbmZpZ10pCi0KLSMgSW5pdGlhbGl6
ZSBBdXRvbWFrZSB3aXRoIHZhcmlvdXMgb3B0aW9ucy4gV2UgcmVxdWlyZSBhdCBsZWFzdCB2MS45
LCBwcmV2ZW50Ci0jIHBlZGFudGljIGNvbXBsYWludHMgYWJvdXQgcGFja2FnZSBmaWxlcywgYW5k
IGVuYWJsZSB2YXJpb3VzIGRpc3RyaWJ1dGlvbgotIyB0YXJnZXRzLgotQU1fSU5JVF9BVVRPTUFL
RShbMS45IGRpc3QtYnppcDIgZGlzdC16aXAgZm9yZWlnbiBzdWJkaXItb2JqZWN0c10pCi0KLSMg
Q2hlY2sgZm9yIHByb2dyYW1zIHVzZWQgaW4gYnVpbGRpbmcgR29vZ2xlIFRlc3QuCi1BQ19QUk9H
X0NDCi1BQ19QUk9HX0NYWAotQUNfTEFORyhbQysrXSkKLUFDX1BST0dfTElCVE9PTAotCi0jIFRP
RE8oY2hhbmRsZXJjQGdvb2dsZS5jb20pOiBDdXJyZW50bHkgd2UgYXJlbid0IHJ1bm5pbmcgdGhl
IFB5dGhvbiB0ZXN0cwotIyBhZ2FpbnN0IHRoZSBpbnRlcnByZXRlciBkZXRlY3RlZCBieSBBTV9Q
QVRIX1BZVEhPTiwgYW5kIHNvIHdlIGNvbmRpdGlvbgotIyBIQVZFX1BZVEhPTiBieSByZXF1aXJp
bmcgInB5dGhvbiIgdG8gYmUgaW4gdGhlIFBBVEgsIGFuZCB0aGF0IGludGVycHJldGVyJ3MKLSMg
dmVyc2lvbiB0byBiZSA+PSAyLjMuIFRoaXMgd2lsbCBhbGxvdyB0aGUgc2NyaXB0cyB0byB1c2Ug
YSAiL3Vzci9iaW4vZW52IgotIyBoYXNoYmFuZy4KLVBZVEhPTj0gICMgV2UgKmRvIG5vdCogYWxs
b3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBhIHB5dGhvbiBpbnRlcnByZXRlcgotQUNfUEFUSF9QUk9H
KFtQWVRIT05dLFtweXRob25dLFs6XSkKLUFTX0lGKFt0ZXN0ICIkUFlUSE9OIiAhPSAiOiJdLAot
ICAgICAgW0FNX1BZVEhPTl9DSEVDS19WRVJTSU9OKFskUFlUSE9OXSxbMi4zXSxbOl0sW1BZVEhP
Tj0iOiJdKV0pCi1BTV9DT05ESVRJT05BTChbSEFWRV9QWVRIT05dLFt0ZXN0ICIkUFlUSE9OIiAh
PSAiOiJdKQotCi0jIENvbmZpZ3VyZSBwdGhyZWFkcy4KLUFDX0FSR19XSVRIKFtwdGhyZWFkc10s
Ci0gICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1wdGhyZWFkc10sCi0gICAgICAg
ICAgICAgICBbdXNlIHB0aHJlYWRzIChkZWZhdWx0IGlzIHllcyldKV0sCi0gICAgICAgICAgICBb
d2l0aF9wdGhyZWFkcz0kd2l0aHZhbF0sCi0gICAgICAgICAgICBbd2l0aF9wdGhyZWFkcz1jaGVj
a10pCi0KLWhhdmVfcHRocmVhZHM9bm8KLUFTX0lGKFt0ZXN0ICJ4JHdpdGhfcHRocmVhZHMiICE9
ICJ4bm8iXSwKLSAgICAgIFtBQ1hfUFRIUkVBRCgKLSAgICAgICAgW10sCi0gICAgICAgIFtBU19J
RihbdGVzdCAieCR3aXRoX3B0aHJlYWRzIiAhPSAieGNoZWNrIl0sCi0gICAgICAgICAgICAgICBb
QUNfTVNHX0ZBSUxVUkUoCi0gICAgICAgICAgICAgICAgIFstLXdpdGgtcHRocmVhZHMgd2FzIHNw
ZWNpZmllZCwgYnV0IHVuYWJsZSB0byBiZSB1c2VkXSldKV0pCi0gICAgICAgaGF2ZV9wdGhyZWFk
cz0iJGFjeF9wdGhyZWFkX29rIl0pCi1BTV9DT05ESVRJT05BTChbSEFWRV9QVEhSRUFEU10sW3Rl
c3QgIngkaGF2ZV9wdGhyZWFkcyIgPSAieHllcyJdKQotQUNfU1VCU1QoUFRIUkVBRF9DRkxBR1Mp
Ci1BQ19TVUJTVChQVEhSRUFEX0xJQlMpCi0KLSMgVE9ETyhjaGFuZGxlcmNAZ29vZ2xlLmNvbSkg
Q2hlY2sgZm9yIHRoZSBuZWNlc3Nhcnkgc3lzdGVtIGhlYWRlcnMuCi0KLSMgVE9ETyhjaGFuZGxl
cmNAZ29vZ2xlLmNvbSkgQ2hlY2sgdGhlIHR5cGVzLCBzdHJ1Y3R1cmVzLCBhbmQgb3RoZXIgY29t
cGlsZXIKLSMgYW5kIGFyY2hpdGVjdHVyZSBjaGFyYWN0ZXJpc3RpY3MuCi0KLSMgT3V0cHV0IHRo
ZSBnZW5lcmF0ZWQgZmlsZXMuIE5vIGZ1cnRoZXIgYXV0b2NvbmYgbWFjcm9zIG1heSBiZSB1c2Vk
LgotQUNfT1VUUFVUCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1Br
Z2NvbmZpZy5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29uZmlnLm1kCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzYxMjg5NGQyYTNjOGVhZGI0NDJjNTU4Nzgw
NGZiNzc4NWVhYTcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUGtnY29uZmlnLm1kCisrKyAvZGV2L251
bGwKQEAgLTEsMTQ2ICswLDAgQEAKLSMjIFVzaW5nIEdvb2dsZVRlc3QgZnJvbSB2YXJpb3VzIGJ1
aWxkIHN5c3RlbXMgIyMKLQotR29vZ2xlVGVzdCBjb21lcyB3aXRoIHBrZy1jb25maWcgZmlsZXMg
dGhhdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgYWxsCi1uZWNlc3NhcnkgZmxhZ3MgZm9yIGNv
bXBpbGluZyBhbmQgbGlua2luZyB0byBHb29nbGVUZXN0IChhbmQgR29vZ2xlTW9jaykuCi1Qa2ct
Y29uZmlnIGlzIGEgc3RhbmRhcmRpc2VkIHBsYWluLXRleHQgZm9ybWF0IGNvbnRhaW5pbmcKLQot
ICAqIHRoZSBpbmNsdWRlZGlyICgtSSkgcGF0aAotICAqIG5lY2Vzc2FyeSBtYWNybyAoLUQpIGRl
ZmluaXRpb25zCi0gICogZnVydGhlciByZXF1aXJlZCBmbGFncyAoLXB0aHJlYWQpCi0gICogdGhl
IGxpYnJhcnkgKC1MKSBwYXRoCi0gICogdGhlIGxpYnJhcnkgKC1sKSB0byBsaW5rIHRvCi0KLUFs
bCBjdXJyZW50IGJ1aWxkIHN5c3RlbXMgc3VwcG9ydCBwa2ctY29uZmlnIGluIG9uZSB3YXkgb3Ig
YW5vdGhlci4gRm9yCi1hbGwgZXhhbXBsZXMgaGVyZSB3ZSBhc3N1bWUgeW91IHdhbnQgdG8gY29t
cGlsZSB0aGUgc2FtcGxlCi1gc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjYC4KLQotCi0jIyMg
Q01ha2UgIyMjCi0KLVVzaW5nIGBwa2ctY29uZmlnYCBpbiBDTWFrZSBpcyBmYWlybHkgZWFzeToK
LQotYGBgCi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy4wKQotCi1jbWFrZV9wb2xp
Y3koU0VUIENNUDAwNDggTkVXKQotcHJvamVjdChteV9ndGVzdF9wa2djb25maWcgVkVSU0lPTiAw
LjAuMSBMQU5HVUFHRVMgQ1hYKQotCi1maW5kX3BhY2thZ2UoUGtnQ29uZmlnKQotcGtnX3NlYXJj
aF9tb2R1bGUoR1RFU1QgUkVRVUlSRUQgZ3Rlc3RfbWFpbikKLQotYWRkX2V4ZWN1dGFibGUodGVz
dGFwcCBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MpCi10YXJnZXRfbGlua19saWJyYXJpZXMo
dGVzdGFwcCAke0dURVNUX0xERkxBR1N9KQotdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyh0ZXN0YXBw
IFBVQkxJQyAke0dURVNUX0NGTEFHU30pCi0KLWluY2x1ZGUoQ1Rlc3QpCi1hZGRfdGVzdChmaXJz
dF9hbmRfb25seV90ZXN0IHRlc3RhcHApCi1gYGAKLQotSXQgaXMgZ2VuZXJhbGx5IHJlY29tbWVu
ZGVkIHRoYXQgeW91IHVzZSBgdGFyZ2V0X2NvbXBpbGVfb3B0aW9uc2AgKyBgX0NGTEFHU2AKLW92
ZXIgYHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzYCArIGBfSU5DTFVERV9ESVJTYCBhcyB0aGUg
Zm9ybWVyIGluY2x1ZGVzIG5vdAotanVzdCAtSSBmbGFncyAoR29vZ2xlVGVzdCBtaWdodCByZXF1
aXJlIGEgbWFjcm8gaW5kaWNhdGluZyB0byBpbnRlcm5hbCBoZWFkZXJzCi10aGF0IGFsbCBsaWJy
YXJpZXMgaGF2ZSBiZWVuIGNvbXBpbGVkIHdpdGggdGhyZWFkaW5nIGVuYWJsZWQuIEluIGFkZGl0
aW9uLAotR29vZ2xlVGVzdCBtaWdodCBhbHNvIHJlcXVpcmUgYC1wdGhyZWFkYCBpbiB0aGUgY29t
cGlsaW5nIHN0ZXAsIGFuZCBhcyBzdWNoCi1zcGxpdHRpbmcgdGhlIHBrZy1jb25maWcgYENmbGFn
c2AgdmFyaWFibGUgaW50byBpbmNsdWRlIGRpcnMgYW5kIG1hY3JvcyBmb3IKLWB0YXJnZXRfY29t
cGlsZV9kZWZpbml0aW9ucygpYCBtaWdodCBzdGlsbCBtaXNzIHRoaXMpLiBUaGUgc2FtZSByZWNv
bW1lbmRhdGlvbgotZ29lcyBmb3IgdXNpbmcgYF9MREZMQUdTYCBvdmVyIHRoZSBtb3JlIGNvbW1v
bnBsYWNlIGBfTElCUkFSSUVTYCwgd2hpY2gKLWhhcHBlbnMgdG8gZGlzY2FyZCBgLUxgIGZsYWdz
IGFuZCBgLXB0aHJlYWRgLgotCi0KLSMjIyBBdXRvdG9vbHMgIyMjCi0KLUZpbmRpbmcgR29vZ2xl
VGVzdCBpbiBBdXRvY29uZiBhbmQgdXNpbmcgaXQgZnJvbSBBdXRvbWFrZSBpcyBhbHNvIGZhaXJs
eSBlYXN5OgotCi1JbiB5b3VyIGBjb25maWd1cmUuYWNgOgotCi1gYGAKLUFDX1BSRVJFUShbMi42
OV0pCi1BQ19JTklUKFtteV9ndGVzdF9wa2djb25maWddLCBbMC4wLjFdKQotQUNfQ09ORklHX1NS
Q0RJUihbc2FtcGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjXSkKLUFDX1BST0dfQ1hYCi0KLVBLR19D
SEVDS19NT0RVTEVTKFtHVEVTVF0sIFtndGVzdF9tYWluXSkKLQotQU1fSU5JVF9BVVRPTUFLRShb
Zm9yZWlnbiBzdWJkaXItb2JqZWN0c10pCi1BQ19DT05GSUdfRklMRVMoW01ha2VmaWxlXSkKLUFD
X09VVFBVVAotYGBgCi0KLWFuZCBpbiB5b3VyIGBNYWtlZmlsZS5hbWA6Ci0KLWBgYAotY2hlY2tf
UFJPR1JBTVMgPSB0ZXN0YXBwCi1URVNUUyA9ICQoY2hlY2tfUFJPR1JBTVMpCi0KLXRlc3RhcHBf
U09VUkNFUyA9IHNhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYwotdGVzdGFwcF9DWFhGTEFHUyA9
ICQoR1RFU1RfQ0ZMQUdTKQotdGVzdGFwcF9MREFERCA9ICQoR1RFU1RfTElCUykKLWBgYAotCi0K
LSMjIyBNZXNvbiAjIyMKLQotTWVzb24gbmF0aXZlbHkgdXNlcyBwa2djb25maWcgdG8gcXVlcnkg
ZGVwZW5kZW5jaWVzOgotCi1gYGAKLXByb2plY3QoJ215X2d0ZXN0X3BrZ2NvbmZpZycsICdjcHAn
LCB2ZXJzaW9uIDogJzAuMC4xJykKLQotZ3Rlc3RfZGVwID0gZGVwZW5kZW5jeSgnZ3Rlc3RfbWFp
bicpCi0KLXRlc3RhcHAgPSBleGVjdXRhYmxlKAotICAndGVzdGFwcCcsCi0gIGZpbGVzKFsnc2Ft
cGxlcy9zYW1wbGUzX3VuaXR0ZXN0LmNjJ10pLAotICBkZXBlbmRlbmNpZXMgOiBndGVzdF9kZXAs
Ci0gIGluc3RhbGwgOiBmYWxzZSkKLQotdGVzdCgnZmlyc3RfYW5kX29ubHlfdGVzdCcsIHRlc3Rh
cHApCi1gYGAKLQotCi0jIyMgUGxhaW4gTWFrZWZpbGVzICMjIwotCi1TaW5jZSBgcGtnLWNvbmZp
Z2AgaXMgYSBzbWFsbCBVbml4IGNvbW1hbmQtbGluZSB1dGlsaXR5LCBpdCBjYW4gYmUgdXNlZAot
aW4gaGFuZHdyaXR0ZW4gYE1ha2VmaWxlYHMgdG9vOgotCi1gYGAKLUdURVNUX0NGTEFHUyA9IGBw
a2ctY29uZmlnIC0tY2ZsYWdzIGd0ZXN0X21haW5gCi1HVEVTVF9MSUJTID0gYHBrZy1jb25maWcg
LS1saWJzIGd0ZXN0X21haW5gCi0KLS5QSE9OWTogdGVzdHMgYWxsCi0KLXRlc3RzOiBhbGwKLQku
L3Rlc3RhcHAKLQotYWxsOiB0ZXN0YXBwCi0KLXRlc3RhcHA6IHRlc3RhcHAubwotCSQoQ1hYKSAk
KENYWEZMQUdTKSAkKExERkxBR1MpICQ8IC1vICRAICQoR1RFU1RfTElCUykKLQotdGVzdGFwcC5v
OiBzYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKLQkkKENYWCkgJChDUFBGTEFHUykgJChDWFhG
TEFHUykgJDwgLWMgLW8gJEAgJChHVEVTVF9DRkxBR1MpCi1gYGAKLQotCi0jIyMgSGVscCEgcGtn
LWNvbmZpZyBjYW4ndCBmaW5kIEdvb2dsZVRlc3QhICMjIwotCi1MZXQncyBzYXkgeW91IGhhdmUg
YSBgQ01ha2VMaXN0cy50eHRgIGFsb25nIHRoZSBsaW5lcyBvZiB0aGUgb25lIGluIHRoaXMKLXR1
dG9yaWFsIGFuZCB5b3UgdHJ5IHRvIHJ1biBgY21ha2VgLiBJdCBpcyB2ZXJ5IHBvc3NpYmxlIHRo
YXQgeW91IGdldCBhCi1mYWlsdXJlIGFsb25nIHRoZSBsaW5lcyBvZjoKLQotYGBgCi0tLSBDaGVj
a2luZyBmb3Igb25lIG9mIHRoZSBtb2R1bGVzICdndGVzdF9tYWluJwotQ01ha2UgRXJyb3IgYXQg
L3Vzci9zaGFyZS9jbWFrZS9Nb2R1bGVzL0ZpbmRQa2dDb25maWcuY21ha2U6NjQwIChtZXNzYWdl
KToKLSAgTm9uZSBvZiB0aGUgcmVxdWlyZWQgJ2d0ZXN0X21haW4nIGZvdW5kCi1gYGAKLQotVGhl
c2UgZmFpbHVyZXMgYXJlIGNvbW1vbiBpZiB5b3UgaW5zdGFsbGVkIEdvb2dsZVRlc3QgeW91cnNl
bGYgYW5kIGhhdmUgbm90Ci1zb3VyY2VkIGl0IGZyb20gYSBkaXN0cm8gb3Igb3RoZXIgcGFja2Fn
ZSBtYW5hZ2VyLiBJZiBzbywgeW91IG5lZWQgdG8gdGVsbAotcGtnLWNvbmZpZyB3aGVyZSBpdCBj
YW4gZmluZCB0aGUgYC5wY2AgZmlsZXMgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24uCi1TYXkg
eW91IGluc3RhbGxlZCBHb29nbGVUZXN0IHRvIGAvdXNyL2xvY2FsYCwgdGhlbiBpdCBtaWdodCBi
ZSB0aGF0IHRoZQotYC5wY2AgZmlsZXMgYXJlIGluc3RhbGxlZCB1bmRlciBgL3Vzci9sb2NhbC9s
aWI2NC9wa2djb25maWdgLiBJZiB5b3Ugc2V0Ci0KLWBgYAotZXhwb3J0IFBLR19DT05GSUdfUEFU
SD0vdXNyL2xvY2FsL2xpYjY0L3BrZ2NvbmZpZwotYGBgCi0KLXBrZy1jb25maWcgd2lsbCBhbHNv
IHRyeSB0byBsb29rIGluIGBQS0dfQ09ORklHX1BBVEhgIHRvIGZpbmQgYGd0ZXN0X21haW4ucGNg
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9QdW1wTWFudWFsLm1k
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9QdW1wTWFudWFsLm1kCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4MjdiYjI0YjA0MmRjNTQzYWY0YzQwOWFkMDNlMTQ3ZWE1OTQ5
YjdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvUHVtcE1hbnVhbC5tZAorKysgL2Rldi9udWxsCkBAIC0x
LDE3NyArMCwwIEBACi0KLQotPGI+UDwvYj51bXAgaXMgPGI+VTwvYj5zZWZ1bCBmb3IgPGI+TTwv
Yj5ldGEgPGI+UDwvYj5yb2dyYW1taW5nLgotCi0jIFRoZSBQcm9ibGVtICMKLQotVGVtcGxhdGUg
YW5kIG1hY3JvIGxpYnJhcmllcyBvZnRlbiBuZWVkIHRvIGRlZmluZSBtYW55IGNsYXNzZXMsCi1m
dW5jdGlvbnMsIG9yIG1hY3JvcyB0aGF0IHZhcnkgb25seSAob3IgYWxtb3N0IG9ubHkpIGluIHRo
ZSBudW1iZXIgb2YKLWFyZ3VtZW50cyB0aGV5IHRha2UuIEl0J3MgYSBsb3Qgb2YgcmVwZXRpdGl2
ZSwgbWVjaGFuaWNhbCwgYW5kCi1lcnJvci1wcm9uZSB3b3JrLgotCi1WYXJpYWRpYyB0ZW1wbGF0
ZXMgYW5kIHZhcmlhZGljIG1hY3JvcyBjYW4gYWxsZXZpYXRlIHRoZSBwcm9ibGVtLgotSG93ZXZl
ciwgd2hpbGUgYm90aCBhcmUgYmVpbmcgY29uc2lkZXJlZCBieSB0aGUgQysrIGNvbW1pdHRlZSwg
bmVpdGhlcgotaXMgaW4gdGhlIHN0YW5kYXJkIHlldCBvciB3aWRlbHkgc3VwcG9ydGVkIGJ5IGNv
bXBpbGVycy4gIFRodXMgdGhleQotYXJlIG9mdGVuIG5vdCBhIGdvb2QgY2hvaWNlLCBlc3BlY2lh
bGx5IHdoZW4geW91ciBjb2RlIG5lZWRzIHRvIGJlCi1wb3J0YWJsZS4gQW5kIHRoZWlyIGNhcGFi
aWxpdGllcyBhcmUgc3RpbGwgbGltaXRlZC4KLQotQXMgYSByZXN1bHQsIGF1dGhvcnMgb2Ygc3Vj
aCBsaWJyYXJpZXMgb2Z0ZW4gaGF2ZSB0byB3cml0ZSBzY3JpcHRzIHRvCi1nZW5lcmF0ZSB0aGVp
ciBpbXBsZW1lbnRhdGlvbi4gSG93ZXZlciwgb3VyIGV4cGVyaWVuY2UgaXMgdGhhdCBpdCdzCi10
ZWRpb3VzIHRvIHdyaXRlIHN1Y2ggc2NyaXB0cywgd2hpY2ggdGVuZCB0byByZWZsZWN0IHRoZSBz
dHJ1Y3R1cmUgb2YKLXRoZSBnZW5lcmF0ZWQgY29kZSBwb29ybHkgYW5kIGFyZSBvZnRlbiBoYXJk
IHRvIHJlYWQgYW5kIGVkaXQuIEZvcgotZXhhbXBsZSwgYSBzbWFsbCBjaGFuZ2UgbmVlZGVkIGlu
IHRoZSBnZW5lcmF0ZWQgY29kZSBtYXkgcmVxdWlyZSBzb21lCi1ub24taW50dWl0aXZlLCBub24t
dHJpdmlhbCBjaGFuZ2VzIGluIHRoZSBzY3JpcHQuIFRoaXMgaXMgZXNwZWNpYWxseQotcGFpbmZ1
bCB3aGVuIGV4cGVyaW1lbnRpbmcgd2l0aCB0aGUgY29kZS4KLQotIyBPdXIgU29sdXRpb24gIwot
Ci1QdW1wIChmb3IgUHVtcCBpcyBVc2VmdWwgZm9yIE1ldGEgUHJvZ3JhbW1pbmcsIFByZXR0eSBV
c2VmdWwgZm9yIE1ldGEKLVByb2dyYW1taW5nLCBvciBQcmFjdGljYWwgVXRpbGl0eSBmb3IgTWV0
YSBQcm9ncmFtbWluZywgd2hpY2hldmVyIHlvdQotcHJlZmVyKSBpcyBhIHNpbXBsZSBtZXRhLXBy
b2dyYW1taW5nIHRvb2wgZm9yIEMrKy4gVGhlIGlkZWEgaXMgdGhhdCBhCi1wcm9ncmFtbWVyIHdy
aXRlcyBhIGBmb28ucHVtcGAgZmlsZSB3aGljaCBjb250YWlucyBDKysgY29kZSBwbHVzIG1ldGEK
LWNvZGUgdGhhdCBtYW5pcHVsYXRlcyB0aGUgQysrIGNvZGUuIFRoZSBtZXRhIGNvZGUgY2FuIGhh
bmRsZQotaXRlcmF0aW9ucyBvdmVyIGEgcmFuZ2UsIG5lc3RlZCBpdGVyYXRpb25zLCBsb2NhbCBt
ZXRhIHZhcmlhYmxlCi1kZWZpbml0aW9ucywgc2ltcGxlIGFyaXRobWV0aWMsIGFuZCBjb25kaXRp
b25hbCBleHByZXNzaW9ucy4gWW91IGNhbgotdmlldyBpdCBhcyBhIHNtYWxsIERvbWFpbi1TcGVj
aWZpYyBMYW5ndWFnZS4gVGhlIG1ldGEgbGFuZ3VhZ2UgaXMKLWRlc2lnbmVkIHRvIGJlIG5vbi1p
bnRydXNpdmUgKHMudC4gaXQgd29uJ3QgY29uZnVzZSBFbWFjcycgQysrIG1vZGUsCi1mb3IgZXhh
bXBsZSkgYW5kIGNvbmNpc2UsIG1ha2luZyBQdW1wIGNvZGUgaW50dWl0aXZlIGFuZCBlYXN5IHRv
Ci1tYWludGFpbi4KLQotIyMgSGlnaGxpZ2h0cyAjIwotCi0gICogVGhlIGltcGxlbWVudGF0aW9u
IGlzIGluIGEgc2luZ2xlIFB5dGhvbiBzY3JpcHQgYW5kIHRodXMgdWx0cmEgcG9ydGFibGU6IG5v
IGJ1aWxkIG9yIGluc3RhbGxhdGlvbiBpcyBuZWVkZWQgYW5kIGl0IHdvcmtzIGNyb3NzIHBsYXRm
b3Jtcy4KLSAgKiBQdW1wIHRyaWVzIHRvIGJlIHNtYXJ0IHdpdGggcmVzcGVjdCB0byBbR29vZ2xl
J3Mgc3R5bGUgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvc3R5bGVndWlkZSk6IGl0
IGJyZWFrcyBsb25nIGxpbmVzIChlYXN5IHRvIGhhdmUgd2hlbiB0aGV5IGFyZSBnZW5lcmF0ZWQp
IGF0IGFjY2VwdGFibGUgcGxhY2VzIHRvIGZpdCB3aXRoaW4gODAgY29sdW1ucyBhbmQgaW5kZW50
IHRoZSBjb250aW51YXRpb24gbGluZXMgY29ycmVjdGx5LgotICAqIFRoZSBmb3JtYXQgaXMgaHVt
YW4tcmVhZGFibGUgYW5kIG1vcmUgY29uY2lzZSB0aGFuIFhNTC4KLSAgKiBUaGUgZm9ybWF0IHdv
cmtzIHJlbGF0aXZlbHkgd2VsbCB3aXRoIEVtYWNzJyBDKysgbW9kZS4KLQotIyMgRXhhbXBsZXMg
IyMKLQotVGhlIGZvbGxvd2luZyBQdW1wIGNvZGUgKHdoZXJlIG1ldGEga2V5d29yZHMgc3RhcnQg
d2l0aCBgJGAsIGBbW2AgYW5kIGBdXWAgYXJlIG1ldGEgYnJhY2tldHMsIGFuZCBgJCRgIHN0YXJ0
cyBhIG1ldGEgY29tbWVudCB0aGF0IGVuZHMgd2l0aCB0aGUgbGluZSk6Ci0KLWBgYAotJHZhciBu
ID0gMyAgICAgJCQgRGVmaW5lcyBhIG1ldGEgdmFyaWFibGUgbi4KLSRyYW5nZSBpIDAuLm4gICQk
IERlY2xhcmVzIHRoZSByYW5nZSBvZiBtZXRhIGl0ZXJhdG9yIGkgKGluY2x1c2l2ZSkuCi0kZm9y
IGkgW1sKLSAgICAgICAgICAgICAgICQkIE1ldGEgbG9vcC4KLS8vIEZvbyRpIGRvZXMgYmxhaCBm
b3IgJGktYXJ5IHByZWRpY2F0ZXMuCi0kcmFuZ2UgaiAxLi5pCi10ZW1wbGF0ZSA8c2l6ZV90IE4g
JGZvciBqIFtbLCB0eXBlbmFtZSBBJGpdXT4KLWNsYXNzIEZvbyRpIHsKLSRpZiBpID09IDAgW1sK
LSAgYmxhaCBhOwotXV0gJGVsaWYgaSA8PSAyIFtbCi0gIGJsYWggYjsKLV1dICRlbHNlIFtbCi0g
IGJsYWggYzsKLV1dCi19OwotCi1dXQotYGBgCi0KLXdpbGwgYmUgdHJhbnNsYXRlZCBieSB0aGUg
UHVtcCBjb21waWxlciB0bzoKLQotYGBgCi0vLyBGb28wIGRvZXMgYmxhaCBmb3IgMC1hcnkgcHJl
ZGljYXRlcy4KLXRlbXBsYXRlIDxzaXplX3QgTj4KLWNsYXNzIEZvbzAgewotICBibGFoIGE7Ci19
OwotCi0vLyBGb28xIGRvZXMgYmxhaCBmb3IgMS1hcnkgcHJlZGljYXRlcy4KLXRlbXBsYXRlIDxz
aXplX3QgTiwgdHlwZW5hbWUgQTE+Ci1jbGFzcyBGb28xIHsKLSAgYmxhaCBiOwotfTsKLQotLy8g
Rm9vMiBkb2VzIGJsYWggZm9yIDItYXJ5IHByZWRpY2F0ZXMuCi10ZW1wbGF0ZSA8c2l6ZV90IE4s
IHR5cGVuYW1lIEExLCB0eXBlbmFtZSBBMj4KLWNsYXNzIEZvbzIgewotICBibGFoIGI7Ci19Owot
Ci0vLyBGb28zIGRvZXMgYmxhaCBmb3IgMy1hcnkgcHJlZGljYXRlcy4KLXRlbXBsYXRlIDxzaXpl
X3QgTiwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEyLCB0eXBlbmFtZSBBMz4KLWNsYXNzIEZvbzMg
ewotICBibGFoIGM7Ci19OwotYGBgCi0KLUluIGFub3RoZXIgZXhhbXBsZSwKLQotYGBgCi0kcmFu
Z2UgaSAxLi5uCi1GdW5jKCRmb3IgaSArIFtbYSRpXV0pOwotJCQgVGhlIHRleHQgYmV0d2VlbiBp
IGFuZCBbWyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gaXRlcmF0aW9ucy4KLWBgYAotCi13aWxs
IGdlbmVyYXRlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpbmVzICh3aXRob3V0IHRoZSBjb21tZW50
cyksIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgYG5gOgotCi1gYGAKLUZ1bmMoKTsgICAgICAg
ICAgICAgIC8vIElmIG4gaXMgMC4KLUZ1bmMoYTEpOyAgICAgICAgICAgIC8vIElmIG4gaXMgMS4K
LUZ1bmMoYTEgKyBhMik7ICAgICAgIC8vIElmIG4gaXMgMi4KLUZ1bmMoYTEgKyBhMiArIGEzKTsg
IC8vIElmIG4gaXMgMy4KLS8vIEFuZCBzbyBvbi4uLgotYGBgCi0KLSMjIENvbnN0cnVjdHMgIyMK
LQotV2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1ldGEgcHJvZ3JhbW1pbmcgY29uc3RydWN0czoK
LQotfCBgJHZhciBpZCA9IGV4cGAgfCBEZWZpbmVzIGEgbmFtZWQgY29uc3RhbnQgdmFsdWUuIGAk
aWRgIGlzIHZhbGlkIHV0aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBtZXRhIGxleGljYWwgYmxv
Y2suIHwKLXw6LS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS18Ci18IGAkcmFuZ2UgaWQgZXhwLi5leHBgIHwgU2V0cyB0aGUgcmFuZ2Ugb2YgYW4g
aXRlcmF0aW9uIHZhcmlhYmxlLCB3aGljaCBjYW4gYmUgcmV1c2VkIGluIG11bHRpcGxlIGxvb3Bz
IGxhdGVyLiAgICAgICAgICB8Ci18IGAkZm9yIGlkIHNlcCBbWyBjb2RlIF1dYCB8IEl0ZXJhdGlv
bi4gVGhlIHJhbmdlIG9mIGBpZGAgbXVzdCBoYXZlIGJlZW4gZGVmaW5lZCBlYXJsaWVyLiBgJGlk
YCBpcyB2YWxpZCBpbiBgY29kZWAuICAgICAgICAgfAotfCBgJCgkKWAgICAgICAgICAgfCBHZW5l
cmF0ZXMgYSBzaW5nbGUgYCRgIGNoYXJhY3Rlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYCRpZGAgICAgICAgICAgIHwg
VmFsdWUgb2YgdGhlIG5hbWVkIGNvbnN0YW50IG9yIGl0ZXJhdGlvbiB2YXJpYWJsZS4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IGAkKGV4cClgICAgICAg
ICB8IFZhbHVlIG9mIHRoZSBleHByZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBgJGlmIGV4cCBb
WyBjb2RlIF1dIGVsc2VfYnJhbmNoYCB8IENvbmRpdGlvbmFsLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAotfCBgW1sgY29kZSBdXWAgICAgfCBNZXRhIGxleGljYWwgYmxvY2suICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKLXwgYGNwcF9jb2RlYCAgICAgIHwgUmF3IEMrKyBjb2RlLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci18IGAkJCBjb21tZW50YCAgICB8IE1ldGEgY29tbWVudC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAotCi0qKk5vdGU6KiogVG8gZ2l2ZSB0aGUgdXNlciBzb21lIGZy
ZWVkb20gaW4gZm9ybWF0dGluZyB0aGUgUHVtcCBzb3VyY2UKLWNvZGUsIFB1bXAgaWdub3JlcyBh
IG5ldy1saW5lIGNoYXJhY3RlciBpZiBpdCdzIHJpZ2h0IGFmdGVyIGAkZm9yIGZvb2AKLW9yIG5l
eHQgdG8gYFtbYCBvciBgXV1gLiBXaXRob3V0IHRoaXMgcnVsZSB5b3UnbGwgb2Z0ZW4gYmUgZm9y
Y2VkIHRvIHdyaXRlCi12ZXJ5IGxvbmcgbGluZXMgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dC4g
VGhlcmVmb3JlIHNvbWV0aW1lcyB5b3UgbWF5Ci1uZWVkIHRvIGluc2VydCBhbiBleHRyYSBuZXct
bGluZSBpbiBzdWNoIHBsYWNlcyBmb3IgYSBuZXctbGluZSB0byBzaG93Ci11cCBpbiB5b3VyIG91
dHB1dC4KLQotIyMgR3JhbW1hciAjIwotCi1gYGAKLWNvZGUgOjo9IGF0b21pY19jb2RlKgotYXRv
bWljX2NvZGUgOjo9ICR2YXIgaWQgPSBleHAKLSAgICB8ICR2YXIgaWQgPSBbWyBjb2RlIF1dCi0g
ICAgfCAkcmFuZ2UgaWQgZXhwLi5leHAKLSAgICB8ICRmb3IgaWQgc2VwIFtbIGNvZGUgXV0KLSAg
ICB8ICQoJCkKLSAgICB8ICRpZAotICAgIHwgJChleHApCi0gICAgfCAkaWYgZXhwIFtbIGNvZGUg
XV0gZWxzZV9icmFuY2gKLSAgICB8IFtbIGNvZGUgXV0KLSAgICB8IGNwcF9jb2RlCi1zZXAgOjo9
IGNwcF9jb2RlIHwgZW1wdHlfc3RyaW5nCi1lbHNlX2JyYW5jaCA6Oj0gJGVsc2UgW1sgY29kZSBd
XQotICAgIHwgJGVsaWYgZXhwIFtbIGNvZGUgXV0gZWxzZV9icmFuY2gKLSAgICB8IGVtcHR5X3N0
cmluZwotZXhwIDo6PSBzaW1wbGVfZXhwcmVzc2lvbl9pbl9QeXRob25fc3ludGF4Ci1gYGAKLQot
IyMgQ29kZSAjIwotCi1Zb3UgY2FuIGZpbmQgdGhlIHNvdXJjZSBjb2RlIG9mIFB1bXAgaW4gW3Nj
cmlwdHMvcHVtcC5weV0oLi4vc2NyaXB0cy9wdW1wLnB5KS4gSXQgaXMgc3RpbGwKLXZlcnkgdW5w
b2xpc2hlZCBhbmQgbGFja3MgYXV0b21hdGVkIHRlc3RzLCBhbHRob3VnaCBpdCBoYXMgYmVlbgot
c3VjY2Vzc2Z1bGx5IHVzZWQgbWFueSB0aW1lcy4gSWYgeW91IGZpbmQgYSBjaGFuY2UgdG8gdXNl
IGl0IGluIHlvdXIKLXByb2plY3QsIHBsZWFzZSBsZXQgdXMga25vdyB3aGF0IHlvdSB0aGluayEg
IFdlIGFsc28gd2VsY29tZSBoZWxwIG9uCi1pbXByb3ZpbmcgUHVtcC4KLQotIyMgUmVhbCBFeGFt
cGxlcyAjIwotCi1Zb3UgY2FuIGZpbmQgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMgb2YgUHVtcCBp
biBbR29vZ2xlIFRlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC90cmVl
L21hc3Rlci9nb29nbGV0ZXN0KSBhbmQgW0dvb2dsZSBNb2NrXShodHRwczovL2dpdGh1Yi5jb20v
Z29vZ2xlL2dvb2dsZXRlc3QvdHJlZS9tYXN0ZXIvZ29vZ2xlbW9jaykuIFRoZSBzb3VyY2UgZmls
ZSBgZm9vLmgucHVtcGAgZ2VuZXJhdGVzIGBmb28uaGAuCi0KLSMjIFRpcHMgIyMKLQotICAqIElm
IGEgbWV0YSB2YXJpYWJsZSBpcyBmb2xsb3dlZCBieSBhIGxldHRlciBvciBkaWdpdCwgeW91IGNh
biBzZXBhcmF0ZSB0aGVtIHVzaW5nIGBbW11dYCwgd2hpY2ggaW5zZXJ0cyBhbiBlbXB0eSBzdHJp
bmcuIEZvciBleGFtcGxlIGBGb28kaltbXV1IZWxwZXJgIGdlbmVyYXRlIGBGb28xSGVscGVyYCB3
aGVuIGBqYCBpcyAxLgotICAqIFRvIGF2b2lkIGV4dHJhLWxvbmcgUHVtcCBzb3VyY2UgbGluZXMs
IHlvdSBjYW4gYnJlYWsgYSBsaW5lIGFueXdoZXJlIHlvdSB3YW50IGJ5IGluc2VydGluZyBgW1td
XWAgZm9sbG93ZWQgYnkgYSBuZXcgbGluZS4gU2luY2UgYW55IG5ldy1saW5lIGNoYXJhY3RlciBu
ZXh0IHRvIGBbW2Agb3IgYF1dYCBpcyBpZ25vcmVkLCB0aGUgZ2VuZXJhdGVkIGNvZGUgd29uJ3Qg
Y29udGFpbiB0aGlzIG5ldyBsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvZG9jcy9SRUFETUUubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2NzL1JFQURNRS5t
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYmM1N2I3OTljY2U5MzNjMDM0YzMxODU5NTk0Y2ExYjg3Njg5YWVmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9SRUFETUUubWQK
QEAgLTAsMCArMSw0IEBACisjIENvbnRlbnQgTW92ZWQKKworV2UgYXJlIHdvcmtpbmcgb24gdXBk
YXRlcyB0byB0aGUgR29vZ2xlVGVzdCBkb2N1bWVudGF0aW9uLCB3aGljaCBoYXMgbW92ZWQgdG8K
K3RoZSB0b3AtbGV2ZWwgW2RvY3NdKC4uLy4uL2RvY3MpIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvWGNvZGVHdWlkZS5tZCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2RvY3MvWGNvZGVHdWlkZS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWM2MGEzM2RhZDQzYmFmOTgzODFmN2M5ZjIwZjY5YjU1OGIyYWFkMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9kb2NzL1hjb2RlR3VpZGUubWQKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0K
LQotVGhpcyBndWlkZSB3aWxsIGV4cGxhaW4gaG93IHRvIHVzZSB0aGUgR29vZ2xlIFRlc3Rpbmcg
RnJhbWV3b3JrIGluIHlvdXIgWGNvZGUgcHJvamVjdHMgb24gTWFjIE9TIFguIFRoaXMgdHV0b3Jp
YWwgYmVnaW5zIGJ5IHF1aWNrbHkgZXhwbGFpbmluZyB3aGF0IHRvIGRvIGZvciBleHBlcmllbmNl
ZCB1c2Vycy4gQWZ0ZXIgdGhlIHF1aWNrIHN0YXJ0LCB0aGUgZ3VpZGUgZ29lcyBwcm92aWRlcyBh
ZGRpdGlvbmFsIGV4cGxhbmF0aW9uIGFib3V0IGVhY2ggc3RlcC4KLQotIyBRdWljayBTdGFydCAj
Ci0KLUhlcmUgaXMgdGhlIHF1aWNrIGd1aWRlIGZvciB1c2luZyBHb29nbGUgVGVzdCBpbiB5b3Vy
IFhjb2RlIHByb2plY3QuCi0KLSAgMS4gRG93bmxvYWQgdGhlIHNvdXJjZSBmcm9tIHRoZSBbd2Vi
c2l0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0KSB1c2luZyB0aGlzIGNv
bW1hbmQ6IGBzdm4gY2hlY2tvdXQgaHR0cDovL2dvb2dsZXRlc3QuZ29vZ2xlY29kZS5jb20vc3Zu
L3RydW5rLyBnb29nbGV0ZXN0LXJlYWQtb25seWAuCi0gIDEuIE9wZW4gdXAgdGhlIGBndGVzdC54
Y29kZXByb2pgIGluIHRoZSBgZ29vZ2xldGVzdC1yZWFkLW9ubHkveGNvZGUvYCBkaXJlY3Rvcnkg
YW5kIGJ1aWxkIHRoZSBndGVzdC5mcmFtZXdvcmsuCi0gIDEuIENyZWF0ZSBhIG5ldyAiU2hlbGwg
VG9vbCIgdGFyZ2V0IGluIHlvdXIgWGNvZGUgcHJvamVjdCBjYWxsZWQgc29tZXRoaW5nIGxpa2Ug
IlVuaXRUZXN0cyIuCi0gIDEuIEFkZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIHRvIHlvdXIgcHJvamVj
dCBhbmQgYWRkIGl0IHRvIHRoZSAiTGluayBCaW5hcnkgd2l0aCBMaWJyYXJpZXMiIGJ1aWxkIHBo
YXNlIG9mICJVbml0VGVzdHMiLgotICAxLiBBZGQgeW91ciB1bml0IHRlc3Qgc291cmNlIGNvZGUg
dG8gdGhlICJDb21waWxlIFNvdXJjZXMiIGJ1aWxkIHBoYXNlIG9mICJVbml0VGVzdHMiLgotICAx
LiBFZGl0IHRoZSAiVW5pdFRlc3RzIiBleGVjdXRhYmxlIGFuZCBhZGQgYW4gZW52aXJvbm1lbnQg
dmFyaWFibGUgbmFtZWQgIkRZTERcX0ZSQU1FV09SS1xfUEFUSCIgd2l0aCBhIHZhbHVlIGVxdWFs
IHRvIHRoZSBwYXRoIHRvIHRoZSBmcmFtZXdvcmsgY29udGFpbmluZyB0aGUgZ3Rlc3QuZnJhbWV3
b3JrIHJlbGF0aXZlIHRvIHRoZSBjb21waWxlZCBleGVjdXRhYmxlLgotICAxLiBCdWlsZCBhbmQg
R28uCi0KLVRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgZnVydGhlciBleHBsYWluIGVhY2ggb2YgdGhl
IHN0ZXBzIGxpc3RlZCBhYm92ZSBpbiBkZXB0aCwgZGVzY3JpYmluZyBpbiBtb3JlIGRldGFpbCBo
b3cgdG8gY29tcGxldGUgaXQgaW5jbHVkaW5nIHNvbWUgdmFyaWF0aW9ucy4KLQotIyBHZXQgdGhl
IFNvdXJjZSAjCi0KLUN1cnJlbnRseSwgdGhlIGd0ZXN0LmZyYW1ld29yayBkaXNjdXNzZWQgaGVy
ZSBpc24ndCBhdmFpbGFibGUgaW4gYSB0YWdnZWQgcmVsZWFzZSBvZiBHb29nbGUgVGVzdCwgaXQg
aXMgb25seSBhdmFpbGFibGUgaW4gdGhlIHRydW5rLiBBcyBleHBsYWluZWQgYXQgdGhlIEdvb2ds
ZSBUZXN0IFtzaXRlXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QpLCB5b3Ug
Y2FuIGdldCB0aGUgY29kZSBmcm9tIGFub255bW91cyBTVk4gd2l0aCB0aGlzIGNvbW1hbmQ6Ci0K
LWBgYAotc3ZuIGNoZWNrb3V0IGh0dHA6Ly9nb29nbGV0ZXN0Lmdvb2dsZWNvZGUuY29tL3N2bi90
cnVuay8gZ29vZ2xldGVzdC1yZWFkLW9ubHkKLWBgYAotCi1BbHRlcm5hdGl2ZWx5LCBpZiB5b3Ug
YXJlIHdvcmtpbmcgd2l0aCBTdWJ2ZXJzaW9uIGluIHlvdXIgb3duIGNvZGUgYmFzZSwgeW91IGNh
biBhZGQgR29vZ2xlIFRlc3QgYXMgYW4gZXh0ZXJuYWwgZGVwZW5kZW5jeSB0byB5b3VyIG93biBT
dWJ2ZXJzaW9uIHJlcG9zaXRvcnkuIEJ5IGZvbGxvd2luZyB0aGlzIGFwcHJvYWNoLCBldmVyeW9u
ZSB0aGF0IGNoZWNrcyBvdXQgeW91ciBzdm4gcmVwb3NpdG9yeSB3aWxsIGFsc28gcmVjZWl2ZSBh
IGNvcHkgb2YgR29vZ2xlIFRlc3QgKGEgc3BlY2lmaWMgdmVyc2lvbiwgaWYgeW91IHdpc2gpIHdp
dGhvdXQgaGF2aW5nIHRvIGNoZWNrIGl0IG91dCBleHBsaWNpdGx5LiBUaGlzIG1ha2VzIHRoZSBz
ZXQgdXAgb2YgeW91ciBwcm9qZWN0IHNpbXBsZXIgYW5kIHJlZHVjZXMgdGhlIGNvcGllZCBjb2Rl
IGluIHRoZSByZXBvc2l0b3J5LgotCi1UbyB1c2UgYHN2bjpleHRlcm5hbHNgLCBkZWNpZGUgd2hl
cmUgeW91IHdvdWxkIGxpa2UgdG8gaGF2ZSB0aGUgZXh0ZXJuYWwgc291cmNlIHJlc2lkZS4gWW91
IG1pZ2h0IGNob29zZSB0byBwdXQgdGhlIGV4dGVybmFsIHNvdXJjZSBpbnNpZGUgdGhlIHRydW5r
LCBiZWNhdXNlIHlvdSB3YW50IGl0IHRvIGJlIHBhcnQgb2YgdGhlIGJyYW5jaCB3aGVuIHlvdSBt
YWtlIGEgcmVsZWFzZS4gSG93ZXZlciwga2VlcGluZyBpdCBvdXRzaWRlIHRoZSB0cnVuayBpbiBh
IHZlcnNpb24tdGFnZ2VkIGRpcmVjdG9yeSBjYWxsZWQgc29tZXRoaW5nIGxpa2UgYHRoaXJkLXBh
cnR5L2dvb2dsZXRlc3QvMS4wLjFgLCBpcyBhbm90aGVyIG9wdGlvbi4gT25jZSB0aGUgbG9jYXRp
b24gaXMgZXN0YWJsaXNoZWQsIHVzZSBgc3ZuIHByb3BlZGl0IHN2bjpleHRlcm5hbHMgX2RpcmVj
dG9yeV9gIHRvIHNldCB0aGUgc3ZuOmV4dGVybmFscyBwcm9wZXJ0eSBvbiBhIGRpcmVjdG9yeSBp
biB5b3VyIHJlcG9zaXRvcnkuIFRoaXMgZGlyZWN0b3J5IHdvbid0IGNvbnRhaW4gdGhlIGNvZGUs
IGJ1dCBiZSBpdHMgdmVyc2lvbmVkIHBhcmVudCBkaXJlY3RvcnkuCi0KLVRoZSBjb21tYW5kIGBz
dm4gcHJvcGVkaXRgIHdpbGwgYnJpbmcgdXAgeW91ciBTdWJ2ZXJzaW9uIGVkaXRvciwgbWFraW5n
IGVkaXRpbmcgdGhlIGxvbmcsIChwb3RlbnRpYWxseSBtdWx0aS1saW5lKSBwcm9wZXJ0eSBzaW1w
bGVyLiBUaGlzIHNhbWUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNoZWNrIG91dCBhIHRhZ2dlZCBi
cmFuY2gsIGJ5IHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBVUkwgKGUuZy4gYGh0dHBzOi8vZ2l0aHVi
LmNvbS9nb29nbGUvZ29vZ2xldGVzdC9yZWxlYXNlcy90YWcvcmVsZWFzZS0xLjAuMWApLiBBZGRp
dGlvbmFsbHksIHRoZSBzdm46ZXh0ZXJuYWxzIHByb3BlcnR5IGFsbG93cyB0aGUgc3BlY2lmaWNh
dGlvbiBvZiBhIHBhcnRpY3VsYXIgcmV2aXNpb24gb2YgdGhlIHRydW5rIHdpdGggdGhlIGAtcl8j
I19gIG9wdGlvbiAoZS5nLiBgZXh0ZXJuYWxzL3NyYy9nb29nbGV0ZXN0IC1yNjAgaHR0cDovL2dv
b2dsZXRlc3QuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rYCkuCi0KLUhlcmUgaXMgYW4gZXhhbXBs
ZSBvZiB1c2luZyB0aGUgc3ZuOmV4dGVybmFscyBwcm9wZXJ0aWVzIG9uIGEgdHJ1bmsgKHJlYWQg
dmlhIGBzdm4gcHJvcGdldGApIG9mIGEgcHJvamVjdC4gVGhpcyB2YWx1ZSBjaGVja3Mgb3V0IGEg
Y29weSBvZiBHb29nbGUgVGVzdCBpbnRvIHRoZSBgdHJ1bmsvZXh0ZXJuYWxzL3NyYy9nb29nbGV0
ZXN0L2AgZGlyZWN0b3J5LgotCi1gYGAKLVtDb21wdXRlcjpzdm5dIHVzZXIkIHN2biBwcm9wZ2V0
IHN2bjpleHRlcm5hbHMgdHJ1bmsKLWV4dGVybmFscy9zcmMvZ29vZ2xldGVzdCBodHRwOi8vZ29v
Z2xldGVzdC5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmsKLWBgYAotCi0jIEFkZCB0aGUgRnJhbWV3
b3JrIHRvIFlvdXIgUHJvamVjdCAjCi0KLVRoZSBuZXh0IHN0ZXAgaXMgdG8gYnVpbGQgYW5kIGFk
ZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIHRvIHlvdXIgb3duIHByb2plY3QuIFRoaXMgZ3VpZGUgZGVz
Y3JpYmVzIHR3byBjb21tb24gd2F5cyBiZWxvdy4KLQotICAqICoqT3B0aW9uIDEqKiAtLS0gVGhl
IHNpbXBsZXN0IHdheSB0byBhZGQgR29vZ2xlIFRlc3QgdG8geW91ciBvd24gcHJvamVjdCwgaXMg
dG8gb3BlbiBndGVzdC54Y29kZXByb2ogKGZvdW5kIGluIHRoZSB4Y29kZS8gZGlyZWN0b3J5IG9m
IHRoZSBHb29nbGUgVGVzdCB0cnVuaykgYW5kIGJ1aWxkIHRoZSBmcmFtZXdvcmsgbWFudWFsbHku
IFRoZW4sIGFkZCB0aGUgYnVpbHQgZnJhbWV3b3JrIGludG8geW91ciBwcm9qZWN0IHVzaW5nIHRo
ZSAiQWRkLT5FeGlzdGluZyBGcmFtZXdvcmsuLi4iIGZyb20gdGhlIGNvbnRleHQgbWVudSBvciAi
UHJvamVjdC0+QWRkLi4uIiBmcm9tIHRoZSBtYWluIG1lbnUuIFRoZSBndGVzdC5mcmFtZXdvcmsg
aXMgcmVsb2NhdGFibGUgYW5kIGNvbnRhaW5zIHRoZSBoZWFkZXJzIGFuZCBvYmplY3QgY29kZSB0
aGF0IHlvdSdsbCBuZWVkIHRvIG1ha2UgdGVzdHMuIFRoaXMgbWV0aG9kIHJlcXVpcmVzIHJlYnVp
bGRpbmcgZXZlcnkgdGltZSB5b3UgdXBncmFkZSBHb29nbGUgVGVzdCBpbiB5b3VyIHByb2plY3Qu
Ci0gICogKipPcHRpb24gMioqIC0tLSBJZiB5b3UgYXJlIGdvaW5nIHRvIGJlIGxpdmluZyBvZmYg
dGhlIHRydW5rIG9mIEdvb2dsZSBUZXN0LCBpbmNvcnBvcmF0aW5nIGl0cyBsYXRlc3QgZmVhdHVy
ZXMgaW50byB5b3VyIHVuaXQgdGVzdHMgKG9yIGFyZSBhIEdvb2dsZSBUZXN0IGRldmVsb3BlciB5
b3Vyc2VsZikuIFlvdSdsbCB3YW50IHRvIHJlYnVpbGQgdGhlIGZyYW1ld29yayBldmVyeSB0aW1l
IHRoZSBzb3VyY2UgdXBkYXRlcy4gdG8gZG8gdGhpcywgeW91J2xsIG5lZWQgdG8gYWRkIHRoZSBn
dGVzdC54Y29kZXByb2ogZmlsZSwgbm90IHRoZSBmcmFtZXdvcmsgaXRzZWxmLCB0byB5b3VyIG93
biBYY29kZSBwcm9qZWN0LiBUaGVuLCBmcm9tIHRoZSBidWlsZCBwcm9kdWN0cyB0aGF0IGFyZSBy
ZXZlYWxlZCBieSB0aGUgcHJvamVjdCdzIGRpc2Nsb3N1cmUgdHJpYW5nbGUsIHlvdSBjYW4gZmlu
ZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrLCB3aGljaCBjYW4gYmUgYWRkZWQgdG8geW91ciB0YXJnZXRz
IChkaXNjdXNzZWQgYmVsb3cpLgotCi0jIE1ha2UgYSBUZXN0IFRhcmdldCAjCi0KLVRvIHN0YXJ0
IHdyaXRpbmcgdGVzdHMsIG1ha2UgYSBuZXcgIlNoZWxsIFRvb2wiIHRhcmdldC4gVGhpcyB0YXJn
ZXQgdGVtcGxhdGUgaXMgYXZhaWxhYmxlIHVuZGVyIEJTRCwgQ29jb2EsIG9yIENhcmJvbi4gQWRk
IHlvdXIgdW5pdCB0ZXN0IHNvdXJjZSBjb2RlIHRvIHRoZSAiQ29tcGlsZSBTb3VyY2VzIiBidWls
ZCBwaGFzZSBvZiB0aGUgdGFyZ2V0LgotCi1OZXh0LCB5b3UnbGwgd2FudCB0byBhZGQgZ3Rlc3Qu
ZnJhbWV3b3JrIGluIHR3byBkaWZmZXJlbnQgd2F5cywgZGVwZW5kaW5nIHVwb24gd2hpY2ggb3B0
aW9uIHlvdSBjaG9zZSBhYm92ZS4KLQotICAqICoqT3B0aW9uIDEqKiAtLS0gRHVyaW5nIGNvbXBp
bGF0aW9uLCBYY29kZSB3aWxsIG5lZWQgdG8ga25vdyB0aGF0IHlvdSBhcmUgbGlua2luZyBhZ2Fp
bnN0IHRoZSBndGVzdC5mcmFtZXdvcmsuIEFkZCB0aGUgZ3Rlc3QuZnJhbWV3b3JrIHRvIHRoZSAi
TGluayBCaW5hcnkgd2l0aCBMaWJyYXJpZXMiIGJ1aWxkIHBoYXNlIG9mIHlvdXIgdGVzdCB0YXJn
ZXQuIFRoaXMgd2lsbCBpbmNsdWRlIHRoZSBHb29nbGUgVGVzdCBoZWFkZXJzIGluIHlvdXIgaGVh
ZGVyIHNlYXJjaCBwYXRoLCBhbmQgd2lsbCB0ZWxsIHRoZSBsaW5rZXIgd2hlcmUgdG8gZmluZCB0
aGUgbGlicmFyeS4KLSAgKiAqKk9wdGlvbiAyKiogLS0tIElmIHlvdXIgd29ya2luZyBvdXQgb2Yg
dGhlIHRydW5rLCB5b3UnbGwgYWxzbyB3YW50IHRvIGFkZCBndGVzdC5mcmFtZXdvcmsgdG8geW91
ciAiTGluayBCaW5hcnkgd2l0aCBMaWJyYXJpZXMiIGJ1aWxkIHBoYXNlIG9mIHlvdXIgdGVzdCB0
YXJnZXQuIEluIGFkZGl0aW9uLCB5b3UnbGwgIHdhbnQgdG8gYWRkIHRoZSBndGVzdC5mcmFtZXdv
cmsgYXMgYSBkZXBlbmRlbmN5IHRvIHlvdXIgdW5pdCB0ZXN0IHRhcmdldC4gVGhpcyB3YXksIFhj
b2RlIHdpbGwgbWFrZSBzdXJlIHRoYXQgZ3Rlc3QuZnJhbWV3b3JrIGlzIHVwIHRvIGRhdGUsIGV2
ZXJ5IHRpbWUgeW91ciBidWlsZCB5b3VyIHRhcmdldC4gRmluYWxseSwgaWYgeW91IGRvbid0IHNo
YXJlIGJ1aWxkIGRpcmVjdG9yaWVzIHdpdGggR29vZ2xlIFRlc3QsIHlvdSdsbCBoYXZlIHRvIGNv
cHkgdGhlIGd0ZXN0LmZyYW1ld29yayBpbnRvIHlvdXIgb3duIGJ1aWxkIHByb2R1Y3RzIGRpcmVj
dG9yeSB1c2luZyBhICJSdW4gU2NyaXB0IiBidWlsZCBwaGFzZS4KLQotIyBTZXQgVXAgdGhlIEV4
ZWN1dGFibGUgUnVuIEVudmlyb25tZW50ICMKLQotU2luY2UgdGhlIHVuaXQgdGVzdCBleGVjdXRh
YmxlIGlzIGEgc2hlbGwgdG9vbCwgaXQgZG9lc24ndCBoYXZlIGEgYnVuZGxlIHdpdGggYSBgQ29u
dGVudHMvRnJhbWV3b3Jrc2AgZGlyZWN0b3J5LCBpbiB3aGljaCB0byBwbGFjZSBndGVzdC5mcmFt
ZXdvcmsuIEluc3RlYWQsIHRoZSBkeW5hbWljIGxpbmtlciBtdXN0IGJlIHRvbGQgYXQgcnVudGlt
ZSB0byBzZWFyY2ggZm9yIHRoZSBmcmFtZXdvcmsgaW4gYW5vdGhlciBsb2NhdGlvbi4gVGhpcyBj
YW4gYmUgYWNjb21wbGlzaGVkIGJ5IHNldHRpbmcgdGhlICJEWUxEXF9GUkFNRVdPUktcX1BBVEgi
IGVudmlyb25tZW50IHZhcmlhYmxlIGluIHRoZSAiRWRpdCBBY3RpdmUgRXhlY3V0YWJsZSAuLi4i
IEFyZ3VtZW50cyB0YWIsIHVuZGVyICJWYXJpYWJsZXMgdG8gYmUgc2V0IGluIHRoZSBlbnZpcm9u
bWVudDoiLiBUaGUgcGF0aCBmb3IgdGhpcyB2YWx1ZSBpcyB0aGUgcGF0aCAocmVsYXRpdmUgb3Ig
YWJzb2x1dGUpIG9mIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZ3Rlc3QuZnJhbWV3b3Jr
LgotCi1JZiB5b3UgaGF2ZW4ndCBzZXQgdXAgdGhlIERZTERcX0ZSQU1FV09SS1xfUEFUSCwgY29y
cmVjdGx5LCB5b3UgbWlnaHQgZ2V0IGEgbWVzc2FnZSBsaWtlIHRoaXM6Ci0KLWBgYAotW1Nlc3Np
b24gc3RhcnRlZCBhdCAyMDA4LTA4LTE1IDA2OjIzOjU3IC0wNjAwLl0KLSAgZHlsZDogTGlicmFy
eSBub3QgbG9hZGVkOiBAbG9hZGVyX3BhdGgvLi4vRnJhbWV3b3Jrcy9ndGVzdC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9ndGVzdAotICAgIFJlZmVyZW5jZWQgZnJvbTogL1VzZXJzL3VzZXJuYW1lL0Rv
Y3VtZW50cy9TYW5kYm94L2d0ZXN0U2FtcGxlL2J1aWxkL0RlYnVnL1dpZGdldEZyYW1ld29ya1Rl
c3QKLSAgICBSZWFzb246IGltYWdlIG5vdCBmb3VuZAotYGBgCi0KLVRvIGNvcnJlY3QgdGhpcyBw
cm9ibGVtLCBnbyB0byB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGV4ZWN1dGFibGUg
bmFtZWQgaW4gIlJlZmVyZW5jZWQgZnJvbToiIHZhbHVlIGluIHRoZSBlcnJvciBtZXNzYWdlIGFi
b3ZlLiBUaGVuLCB3aXRoIHRoZSB0ZXJtaW5hbCBpbiB0aGlzIGxvY2F0aW9uLCBmaW5kIHRoZSBy
ZWxhdGl2ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZ3Rlc3QuZnJhbWV3
b3JrLiBUaGF0IGlzIHRoZSB2YWx1ZSB5b3UnbGwgbmVlZCB0byBzZXQgYXMgdGhlIERZTERcX0ZS
QU1FV09SS1xfUEFUSC4KLQotIyBCdWlsZCBhbmQgR28gIwotCi1Ob3csIHdoZW4geW91IGNsaWNr
ICJCdWlsZCBhbmQgR28iLCB0aGUgdGVzdCB3aWxsIGJlIGV4ZWN1dGVkLiBEdW1waW5nIG91dCBz
b21ldGhpbmcgbGlrZSB0aGlzOgotCi1gYGAKLVtTZXNzaW9uIHN0YXJ0ZWQgYXQgMjAwOC0wOC0w
NiAwNjozNjoxMyAtMDYwMC5dCi1bPT09PT09PT09PV0gUnVubmluZyAyIHRlc3RzIGZyb20gMSB0
ZXN0IGNhc2UuCi1bLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0LXVwLgot
Wy0tLS0tLS0tLS1dIDIgdGVzdHMgZnJvbSBXaWRnZXRJbml0aWFsaXplclRlc3QKLVsgUlVOICAg
ICAgXSBXaWRnZXRJbml0aWFsaXplclRlc3QuVGVzdENvbnN0cnVjdG9yCi1bICAgICAgIE9LIF0g
V2lkZ2V0SW5pdGlhbGl6ZXJUZXN0LlRlc3RDb25zdHJ1Y3RvcgotWyBSVU4gICAgICBdIFdpZGdl
dEluaXRpYWxpemVyVGVzdC5UZXN0Q29udmVyc2lvbgotWyAgICAgICBPSyBdIFdpZGdldEluaXRp
YWxpemVyVGVzdC5UZXN0Q29udmVyc2lvbgotWy0tLS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmly
b25tZW50IHRlYXItZG93bgotWz09PT09PT09PT1dIDIgdGVzdHMgZnJvbSAxIHRlc3QgY2FzZSBy
YW4uCi1bICBQQVNTRUQgIF0gMiB0ZXN0cy4KLQotVGhlIERlYnVnZ2VyIGhhcyBleGl0ZWQgd2l0
aCBzdGF0dXMgMC4gIAotYGBgCi0KLSMgU3VtbWFyeSAjCi0KLVVuaXQgdGVzdGluZyBpcyBhIHZh
bHVhYmxlIHdheSB0byBlbnN1cmUgeW91ciBkYXRhIG1vZGVsIHN0YXlzIHZhbGlkIGV2ZW4gZHVy
aW5nIHJhcGlkIGRldmVsb3BtZW50IG9yIHJlZmFjdG9yaW5nLiBUaGUgR29vZ2xlIFRlc3Rpbmcg
RnJhbWV3b3JrIGlzIGEgZ3JlYXQgdW5pdCB0ZXN0aW5nIGZyYW1ld29yayBmb3IgQyBhbmQgQysr
IHdoaWNoIGludGVncmF0ZXMgd2VsbCB3aXRoIGFuIFhjb2RlIGRldmVsb3BtZW50IGVudmlyb25t
ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9hZHZhbmNlZC5t
ZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvYWR2YW5jZWQubWQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgwNjVkMTk2MjFhOGIzN2ZiNzhjYjVlMGVkMWI4NjE4ZmU3NjI1
ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9hZHZhbmNlZC5tZAorKysgL2Rldi9udWxsCkBAIC0xLDI1
MjAgKzAsMCBAQAotIyBBZHZhbmNlZCBnb29nbGV0ZXN0IFRvcGljcwotCi0KLSMjIEludHJvZHVj
dGlvbgotCi1Ob3cgdGhhdCB5b3UgaGF2ZSByZWFkIHRoZSBbZ29vZ2xldGVzdCBQcmltZXJdKHBy
aW1lci5tZCkgYW5kIGxlYXJuZWQgaG93IHRvIHdyaXRlCi10ZXN0cyB1c2luZyBnb29nbGV0ZXN0
LCBpdCdzIHRpbWUgdG8gbGVhcm4gc29tZSBuZXcgdHJpY2tzLiBUaGlzIGRvY3VtZW50IHdpbGwK
LXNob3cgeW91IG1vcmUgYXNzZXJ0aW9ucyBhcyB3ZWxsIGFzIGhvdyB0byBjb25zdHJ1Y3QgY29t
cGxleCBmYWlsdXJlIG1lc3NhZ2VzLAotcHJvcGFnYXRlIGZhdGFsIGZhaWx1cmVzLCByZXVzZSBh
bmQgc3BlZWQgdXAgeW91ciB0ZXN0IGZpeHR1cmVzLCBhbmQgdXNlIHZhcmlvdXMKLWZsYWdzIHdp
dGggeW91ciB0ZXN0cy4KLQotIyMgTW9yZSBBc3NlcnRpb25zCi0KLVRoaXMgc2VjdGlvbiBjb3Zl
cnMgc29tZSBsZXNzIGZyZXF1ZW50bHkgdXNlZCwgYnV0IHN0aWxsIHNpZ25pZmljYW50LAotYXNz
ZXJ0aW9ucy4KLQotIyMjIEV4cGxpY2l0IFN1Y2Nlc3MgYW5kIEZhaWx1cmUKLQotVGhlc2UgdGhy
ZWUgYXNzZXJ0aW9ucyBkbyBub3QgYWN0dWFsbHkgdGVzdCBhIHZhbHVlIG9yIGV4cHJlc3Npb24u
IEluc3RlYWQsIHRoZXkKLWdlbmVyYXRlIGEgc3VjY2VzcyBvciBmYWlsdXJlIGRpcmVjdGx5LiBM
aWtlIHRoZSBtYWNyb3MgdGhhdCBhY3R1YWxseSBwZXJmb3JtIGEKLXRlc3QsIHlvdSBtYXkgc3Ry
ZWFtIGEgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZSBpbnRvIHRoZW0uCi0KLWBgYGMrKwotU1VDQ0VF
RCgpOwotYGBgCi0KLUdlbmVyYXRlcyBhIHN1Y2Nlc3MuIFRoaXMgZG9lcyAqKk5PVCoqIG1ha2Ug
dGhlIG92ZXJhbGwgdGVzdCBzdWNjZWVkLiBBIHRlc3QgaXMKLWNvbnNpZGVyZWQgc3VjY2Vzc2Z1
bCBvbmx5IGlmIG5vbmUgb2YgaXRzIGFzc2VydGlvbnMgZmFpbCBkdXJpbmcgaXRzIGV4ZWN1dGlv
bi4KLQotTk9URTogYFNVQ0NFRUQoKWAgaXMgcHVyZWx5IGRvY3VtZW50YXJ5IGFuZCBjdXJyZW50
bHkgZG9lc24ndCBnZW5lcmF0ZSBhbnkKLXVzZXItdmlzaWJsZSBvdXRwdXQuIEhvd2V2ZXIsIHdl
IG1heSBhZGQgYFNVQ0NFRUQoKWAgbWVzc2FnZXMgdG8gZ29vZ2xldGVzdCdzCi1vdXRwdXQgaW4g
dGhlIGZ1dHVyZS4KLQotYGBgYysrCi1GQUlMKCk7Ci1BRERfRkFJTFVSRSgpOwotQUREX0ZBSUxV
UkVfQVQoImZpbGVfcGF0aCIsIGxpbmVfbnVtYmVyKTsKLWBgYAotCi1gRkFJTCgpYCBnZW5lcmF0
ZXMgYSBmYXRhbCBmYWlsdXJlLCB3aGlsZSBgQUREX0ZBSUxVUkUoKWAgYW5kIGBBRERfRkFJTFVS
RV9BVCgpYAotZ2VuZXJhdGUgYSBub25mYXRhbCBmYWlsdXJlLiBUaGVzZSBhcmUgdXNlZnVsIHdo
ZW4gY29udHJvbCBmbG93LCByYXRoZXIgdGhhbiBhCi1Cb29sZWFuIGV4cHJlc3Npb24sIGRldGVy
bWluZXMgdGhlIHRlc3QncyBzdWNjZXNzIG9yIGZhaWx1cmUuIEZvciBleGFtcGxlLCB5b3UKLW1p
Z2h0IHdhbnQgdG8gd3JpdGUgc29tZXRoaW5nIGxpa2U6Ci0KLWBgYGMrKwotc3dpdGNoKGV4cHJl
c3Npb24pIHsKLSAgY2FzZSAxOgotICAgICAuLi4gc29tZSBjaGVja3MgLi4uCi0gIGNhc2UgMjoK
LSAgICAgLi4uIHNvbWUgb3RoZXIgY2hlY2tzIC4uLgotICBkZWZhdWx0OgotICAgICBGQUlMKCkg
PDwgIldlIHNob3VsZG4ndCBnZXQgaGVyZS4iOwotfQotYGBgCi0KLU5PVEU6IHlvdSBjYW4gb25s
eSB1c2UgYEZBSUwoKWAgaW4gZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGB2b2lkYC4gU2VlIHRoZQot
W0Fzc2VydGlvbiBQbGFjZW1lbnQgc2VjdGlvbl0oI2Fzc2VydGlvbi1wbGFjZW1lbnQpIGZvciBt
b3JlIGluZm9ybWF0aW9uLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFj
LgotCi0jIyMgRXhjZXB0aW9uIEFzc2VydGlvbnMKLQotVGhlc2UgYXJlIGZvciB2ZXJpZnlpbmcg
dGhhdCBhIHBpZWNlIG9mIGNvZGUgdGhyb3dzIChvciBkb2VzIG5vdCB0aHJvdykgYW4KLWV4Y2Vw
dGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZToKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICAg
IHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tCi1g
QVNTRVJUX1RIUk9XKHN0YXRlbWVudCwgZXhjZXB0aW9uX3R5cGUpO2AgfCBgRVhQRUNUX1RIUk9X
KHN0YXRlbWVudCwgZXhjZXB0aW9uX3R5cGUpO2AgfCBgc3RhdGVtZW50YCB0aHJvd3MgYW4gZXhj
ZXB0aW9uIG9mIHRoZSBnaXZlbiB0eXBlCi1gQVNTRVJUX0FOWV9USFJPVyhzdGF0ZW1lbnQpO2Ag
ICAgICAgICAgICAgfCBgRVhQRUNUX0FOWV9USFJPVyhzdGF0ZW1lbnQpO2AgICAgICAgICAgICAg
fCBgc3RhdGVtZW50YCB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIGFueSB0eXBlCi1gQVNTRVJUX05P
X1RIUk9XKHN0YXRlbWVudCk7YCAgICAgICAgICAgICAgfCBgRVhQRUNUX05PX1RIUk9XKHN0YXRl
bWVudCk7YCAgICAgICAgICAgICAgfCBgc3RhdGVtZW50YCBkb2Vzbid0IHRocm93IGFueSBleGNl
cHRpb24KLQotRXhhbXBsZXM6Ci0KLWBgYGMrKwotQVNTRVJUX1RIUk9XKEZvbyg1KSwgYmFyX2V4
Y2VwdGlvbik7Ci0KLUVYUEVDVF9OT19USFJPVyh7Ci0gIGludCBuID0gNTsKLSAgQmFyKCZuKTsK
LX0pOwotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWM7IHJlcXVp
cmVzIGV4Y2VwdGlvbnMgdG8gYmUgZW5hYmxlZCBpbiB0aGUKLWJ1aWxkIGVudmlyb25tZW50IChu
b3RlIHRoYXQgYGdvb2dsZTNgICoqZGlzYWJsZXMqKiBleGNlcHRpb25zKS4KLQotIyMjIFByZWRp
Y2F0ZSBBc3NlcnRpb25zIGZvciBCZXR0ZXIgRXJyb3IgTWVzc2FnZXMKLQotRXZlbiB0aG91Z2gg
Z29vZ2xldGVzdCBoYXMgYSByaWNoIHNldCBvZiBhc3NlcnRpb25zLCB0aGV5IGNhbiBuZXZlciBi
ZSBjb21wbGV0ZSwKLWFzIGl0J3MgaW1wb3NzaWJsZSAobm9yIGEgZ29vZCBpZGVhKSB0byBhbnRp
Y2lwYXRlIGFsbCBzY2VuYXJpb3MgYSB1c2VyIG1pZ2h0Ci1ydW4gaW50by4gVGhlcmVmb3JlLCBz
b21ldGltZXMgYSB1c2VyIGhhcyB0byB1c2UgYEVYUEVDVF9UUlVFKClgIHRvIGNoZWNrIGEKLWNv
bXBsZXggZXhwcmVzc2lvbiwgZm9yIGxhY2sgb2YgYSBiZXR0ZXIgbWFjcm8uIFRoaXMgaGFzIHRo
ZSBwcm9ibGVtIG9mIG5vdAotc2hvd2luZyB5b3UgdGhlIHZhbHVlcyBvZiB0aGUgcGFydHMgb2Yg
dGhlIGV4cHJlc3Npb24sIG1ha2luZyBpdCBoYXJkIHRvCi11bmRlcnN0YW5kIHdoYXQgd2VudCB3
cm9uZy4gQXMgYSB3b3JrYXJvdW5kLCBzb21lIHVzZXJzIGNob29zZSB0byBjb25zdHJ1Y3QgdGhl
Ci1mYWlsdXJlIG1lc3NhZ2UgYnkgdGhlbXNlbHZlcywgc3RyZWFtaW5nIGl0IGludG8gYEVYUEVD
VF9UUlVFKClgLiBIb3dldmVyLCB0aGlzCi1pcyBhd2t3YXJkIGVzcGVjaWFsbHkgd2hlbiB0aGUg
ZXhwcmVzc2lvbiBoYXMgc2lkZS1lZmZlY3RzIG9yIGlzIGV4cGVuc2l2ZSB0bwotZXZhbHVhdGUu
Ci0KLWdvb2dsZXRlc3QgZ2l2ZXMgeW91IHRocmVlIGRpZmZlcmVudCBvcHRpb25zIHRvIHNvbHZl
IHRoaXMgcHJvYmxlbToKLQotIyMjIyBVc2luZyBhbiBFeGlzdGluZyBCb29sZWFuIEZ1bmN0aW9u
Ci0KLUlmIHlvdSBhbHJlYWR5IGhhdmUgYSBmdW5jdGlvbiBvciBmdW5jdG9yIHRoYXQgcmV0dXJu
cyBgYm9vbGAgKG9yIGEgdHlwZSB0aGF0Ci1jYW4gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8g
YGJvb2xgKSwgeW91IGNhbiB1c2UgaXQgaW4gYSAqcHJlZGljYXRlCi1hc3NlcnRpb24qIHRvIGdl
dCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzIHByaW50ZWQgZm9yIGZyZWU6Ci0KLXwgRmF0YWwgYXNz
ZXJ0aW9uICAgICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAg
ICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBBU1NFUlRfUFJFRDEocHJlZDEsIHZh
bDEpO2AgICAgICAgfCBgRVhQRUNUX1BSRUQxKHByZWQxLCB2YWwxKTtgICAgICAgIHwgYHByZWQx
KHZhbDEpYCBpcyB0cnVlICAgICAgIHwKLXwgYEFTU0VSVF9QUkVEMihwcmVkMiwgdmFsMSwgdmFs
Mik7YCB8IGBFWFBFQ1RfUFJFRDIocHJlZDIsIHZhbDEsIHZhbDIpO2AgfCBgcHJlZDIodmFsMSwg
dmFsMilgIGlzIHRydWUgfAotfCBgLi4uYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
YC4uLmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC4uLiAgICAgICAgICAgICAgICAg
ICAgICAgICB8Ci0KLUluIHRoZSBhYm92ZSwgYHByZWRuYCBpcyBhbiBgbmAtYXJ5IHByZWRpY2F0
ZSBmdW5jdGlvbiBvciBmdW5jdG9yLCB3aGVyZSBgdmFsMWAsCi1gdmFsMmAsIC4uLiwgYW5kIGB2
YWxuYCBhcmUgaXRzIGFyZ3VtZW50cy4gVGhlIGFzc2VydGlvbiBzdWNjZWVkcyBpZiB0aGUKLXBy
ZWRpY2F0ZSByZXR1cm5zIGB0cnVlYCB3aGVuIGFwcGxpZWQgdG8gdGhlIGdpdmVuIGFyZ3VtZW50
cywgYW5kIGZhaWxzCi1vdGhlcndpc2UuIFdoZW4gdGhlIGFzc2VydGlvbiBmYWlscywgaXQgcHJp
bnRzIHRoZSB2YWx1ZSBvZiBlYWNoIGFyZ3VtZW50LiBJbgotZWl0aGVyIGNhc2UsIHRoZSBhcmd1
bWVudHMgYXJlIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCi0KLUhlcmUncyBhbiBleGFtcGxlLiBH
aXZlbgotCi1gYGBjKysKLS8vIFJldHVybnMgdHJ1ZSBpZiBtIGFuZCBuIGhhdmUgbm8gY29tbW9u
IGRpdmlzb3JzIGV4Y2VwdCAxLgotYm9vbCBNdXR1YWxseVByaW1lKGludCBtLCBpbnQgbikgeyAu
Li4gfQotCi1jb25zdCBpbnQgYSA9IDM7Ci1jb25zdCBpbnQgYiA9IDQ7Ci1jb25zdCBpbnQgYyA9
IDEwOwotYGBgCi0KLXRoZSBhc3NlcnRpb24KLQotYGBgYysrCi0gIEVYUEVDVF9QUkVEMihNdXR1
YWxseVByaW1lLCBhLCBiKTsKLWBgYAotCi13aWxsIHN1Y2NlZWQsIHdoaWxlIHRoZSBhc3NlcnRp
b24KLQotYGBgYysrCi0gIEVYUEVDVF9QUkVEMihNdXR1YWxseVByaW1lLCBiLCBjKTsKLWBgYAot
Ci13aWxsIGZhaWwgd2l0aCB0aGUgbWVzc2FnZQotCi1gYGBub25lCi1NdXR1YWxseVByaW1lKGIs
IGMpIGlzIGZhbHNlLCB3aGVyZQotYiBpcyA0Ci1jIGlzIDEwCi1gYGAKLQotPiBOT1RFOgotPgot
PiAxLiAgSWYgeW91IHNlZSBhIGNvbXBpbGVyIGVycm9yICJubyBtYXRjaGluZyBmdW5jdGlvbiB0
byBjYWxsIiB3aGVuIHVzaW5nCi0+ICAgICBgQVNTRVJUX1BSRUQqYCBvciBgRVhQRUNUX1BSRUQq
YCwgcGxlYXNlIHNlZQotPiAgICAgW3RoaXNdKGZhcS5tZCNPdmVybG9hZGVkUHJlZGljYXRlKSBm
b3IgaG93IHRvIHJlc29sdmUgaXQuCi0+IDEuICBDdXJyZW50bHkgd2Ugb25seSBwcm92aWRlIHBy
ZWRpY2F0ZSBhc3NlcnRpb25zIG9mIGFyaXR5IDw9IDUuIElmIHlvdSBuZWVkCi0+ICAgICBhIGhp
Z2hlci1hcml0eSBhc3NlcnRpb24sIGxldCBbdXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv
Z29vZ2xldGVzdC9pc3N1ZXMpIGtub3cuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5k
b3dzLCBNYWMuCi0KLSMjIyMgVXNpbmcgYSBGdW5jdGlvbiBUaGF0IFJldHVybnMgYW4gQXNzZXJ0
aW9uUmVzdWx0Ci0KLVdoaWxlIGBFWFBFQ1RfUFJFRCooKWAgYW5kIGZyaWVuZHMgYXJlIGhhbmR5
IGZvciBhIHF1aWNrIGpvYiwgdGhlIHN5bnRheCBpcyBub3QKLXNhdGlzZmFjdG9yeTogeW91IGhh
dmUgdG8gdXNlIGRpZmZlcmVudCBtYWNyb3MgZm9yIGRpZmZlcmVudCBhcml0aWVzLCBhbmQgaXQK
LWZlZWxzIG1vcmUgbGlrZSBMaXNwIHRoYW4gQysrLiBUaGUgYDo6dGVzdGluZzo6QXNzZXJ0aW9u
UmVzdWx0YCBjbGFzcyBzb2x2ZXMKLXRoaXMgcHJvYmxlbS4KLQotQW4gYEFzc2VydGlvblJlc3Vs
dGAgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHJlc3VsdCBvZiBhbiBhc3NlcnRpb24gKHdoZXRoZXIg
aXQncwotYSBzdWNjZXNzIG9yIGEgZmFpbHVyZSwgYW5kIGFuIGFzc29jaWF0ZWQgbWVzc2FnZSku
IFlvdSBjYW4gY3JlYXRlIGFuCi1gQXNzZXJ0aW9uUmVzdWx0YCB1c2luZyBvbmUgb2YgdGhlc2Ug
ZmFjdG9yeSBmdW5jdGlvbnM6Ci0KLWBgYGMrKwotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBS
ZXR1cm5zIGFuIEFzc2VydGlvblJlc3VsdCBvYmplY3QgdG8gaW5kaWNhdGUgdGhhdCBhbiBhc3Nl
cnRpb24gaGFzCi0vLyBzdWNjZWVkZWQuCi1Bc3NlcnRpb25SZXN1bHQgQXNzZXJ0aW9uU3VjY2Vz
cygpOwotCi0vLyBSZXR1cm5zIGFuIEFzc2VydGlvblJlc3VsdCBvYmplY3QgdG8gaW5kaWNhdGUg
dGhhdCBhbiBhc3NlcnRpb24gaGFzCi0vLyBmYWlsZWQuCi1Bc3NlcnRpb25SZXN1bHQgQXNzZXJ0
aW9uRmFpbHVyZSgpOwotCi19Ci1gYGAKLQotWW91IGNhbiB0aGVuIHVzZSB0aGUgYDw8YCBvcGVy
YXRvciB0byBzdHJlYW0gbWVzc2FnZXMgdG8gdGhlIGBBc3NlcnRpb25SZXN1bHRgCi1vYmplY3Qu
Ci0KLVRvIHByb3ZpZGUgbW9yZSByZWFkYWJsZSBtZXNzYWdlcyBpbiBCb29sZWFuIGFzc2VydGlv
bnMgKGUuZy4gYEVYUEVDVF9UUlVFKClgKSwKLXdyaXRlIGEgcHJlZGljYXRlIGZ1bmN0aW9uIHRo
YXQgcmV0dXJucyBgQXNzZXJ0aW9uUmVzdWx0YCBpbnN0ZWFkIG9mIGBib29sYC4gRm9yCi1leGFt
cGxlLCBpZiB5b3UgZGVmaW5lIGBJc0V2ZW4oKWAgYXM6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpB
c3NlcnRpb25SZXN1bHQgSXNFdmVuKGludCBuKSB7Ci0gIGlmICgobiAlIDIpID09IDApCi0gICAg
IHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsKLSAgZWxzZQotICAgICByZXR1
cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgbiA8PCAiIGlzIG9kZCI7Ci19Ci1g
YGAKLQotaW5zdGVhZCBvZjoKLQotYGBgYysrCi1ib29sIElzRXZlbihpbnQgbikgewotICByZXR1
cm4gKG4gJSAyKSA9PSAwOwotfQotYGBgCi0KLXRoZSBmYWlsZWQgYXNzZXJ0aW9uIGBFWFBFQ1Rf
VFJVRShJc0V2ZW4oRmliKDQpKSlgIHdpbGwgcHJpbnQ6Ci0KLWBgYG5vbmUKLVZhbHVlIG9mOiBJ
c0V2ZW4oRmliKDQpKQotICBBY3R1YWw6IGZhbHNlICgzIGlzIG9kZCkKLUV4cGVjdGVkOiB0cnVl
Ci1gYGAKLQotaW5zdGVhZCBvZiBhIG1vcmUgb3BhcXVlCi0KLWBgYG5vbmUKLVZhbHVlIG9mOiBJ
c0V2ZW4oRmliKDQpKQotICBBY3R1YWw6IGZhbHNlCi1FeHBlY3RlZDogdHJ1ZQotYGBgCi0KLUlm
IHlvdSB3YW50IGluZm9ybWF0aXZlIG1lc3NhZ2VzIGluIGBFWFBFQ1RfRkFMU0VgIGFuZCBgQVNT
RVJUX0ZBTFNFYCBhcyB3ZWxsCi0ob25lIHRoaXJkIG9mIEJvb2xlYW4gYXNzZXJ0aW9ucyBpbiB0
aGUgR29vZ2xlIGNvZGUgYmFzZSBhcmUgbmVnYXRpdmUgb25lcyksIGFuZAotYXJlIGZpbmUgd2l0
aCBtYWtpbmcgdGhlIHByZWRpY2F0ZSBzbG93ZXIgaW4gdGhlIHN1Y2Nlc3MgY2FzZSwgeW91IGNh
biBzdXBwbHkgYQotc3VjY2VzcyBtZXNzYWdlOgotCi1gYGBjKysKLTo6dGVzdGluZzo6QXNzZXJ0
aW9uUmVzdWx0IElzRXZlbihpbnQgbikgewotICBpZiAoKG4gJSAyKSA9PSAwKQotICAgICByZXR1
cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25TdWNjZXNzKCkgPDwgbiA8PCAiIGlzIGV2ZW4iOwotICBl
bHNlCi0gICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCBuIDw8ICIg
aXMgb2RkIjsKLX0KLWBgYAotCi1UaGVuIHRoZSBzdGF0ZW1lbnQgYEVYUEVDVF9GQUxTRShJc0V2
ZW4oRmliKDYpKSlgIHdpbGwgcHJpbnQKLQotYGBgbm9uZQotICBWYWx1ZSBvZjogSXNFdmVuKEZp
Yig2KSkKLSAgICAgQWN0dWFsOiB0cnVlICg4IGlzIGV2ZW4pCi0gIEV4cGVjdGVkOiBmYWxzZQot
YGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgVXNp
bmcgYSBQcmVkaWNhdGUtRm9ybWF0dGVyCi0KLUlmIHlvdSBmaW5kIHRoZSBkZWZhdWx0IG1lc3Nh
Z2UgZ2VuZXJhdGVkIGJ5IGAoQVNTRVJUfEVYUEVDVClfUFJFRCpgIGFuZAotYChBU1NFUlR8RVhQ
RUNUKV8oVFJVRXxGQUxTRSlgIHVuc2F0aXNmYWN0b3J5LCBvciBzb21lIGFyZ3VtZW50cyB0byB5
b3VyCi1wcmVkaWNhdGUgZG8gbm90IHN1cHBvcnQgc3RyZWFtaW5nIHRvIGBvc3RyZWFtYCwgeW91
IGNhbiBpbnN0ZWFkIHVzZSB0aGUKLWZvbGxvd2luZyAqcHJlZGljYXRlLWZvcm1hdHRlciBhc3Nl
cnRpb25zKiB0byAqZnVsbHkqIGN1c3RvbWl6ZSBob3cgdGhlIG1lc3NhZ2UKLWlzIGZvcm1hdHRl
ZDoKLQotRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
Tm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyaWZp
ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0t
Ci1gQVNTRVJUX1BSRURfRk9STUFUMShwcmVkX2Zvcm1hdDEsIHZhbDEpO2AgICAgICAgfCBgRVhQ
RUNUX1BSRURfRk9STUFUMShwcmVkX2Zvcm1hdDEsIHZhbDEpO2AgICAgICAgfCBgcHJlZF9mb3Jt
YXQxKHZhbDEpYCBpcyBzdWNjZXNzZnVsCi1gQVNTRVJUX1BSRURfRk9STUFUMihwcmVkX2Zvcm1h
dDIsIHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX1BSRURfRk9STUFUMihwcmVkX2Zvcm1hdDIsIHZh
bDEsIHZhbDIpO2AgfCBgcHJlZF9mb3JtYXQyKHZhbDEsIHZhbDIpYCBpcyBzdWNjZXNzZnVsCi1g
Li4uYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgLi4uYCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAuLi4KLQotVGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCB0aGUgcHJldmlvdXMgZ3JvdXAgb2YgbWFjcm9zIGlz
IHRoYXQgaW5zdGVhZCBvZgotYSBwcmVkaWNhdGUsIGAoQVNTRVJUfEVYUEVDVClfUFJFRF9GT1JN
QVQqYCB0YWtlIGEgKnByZWRpY2F0ZS1mb3JtYXR0ZXIqCi0oYHByZWRfZm9ybWF0bmApLCB3aGlj
aCBpcyBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3Igd2l0aCB0aGUgc2lnbmF0dXJlOgotCi1gYGBjKysK
LTo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IFByZWRpY2F0ZUZvcm1hdHRlcm4oY29uc3QgY2hh
ciogZXhwcjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGV4cHIyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogZXhwcm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFQxIHZhbDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFQyIHZhbDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUbiB2YWxuKTsKLWBgYAotCi13aGVyZSBgdmFsMWAsIGB2YWwyYCwgLi4uLCBh
bmQgYHZhbG5gIGFyZSB0aGUgdmFsdWVzIG9mIHRoZSBwcmVkaWNhdGUgYXJndW1lbnRzLAotYW5k
IGBleHByMWAsIGBleHByMmAsIC4uLiwgYW5kIGBleHBybmAgYXJlIHRoZSBjb3JyZXNwb25kaW5n
IGV4cHJlc3Npb25zIGFzIHRoZXkKLWFwcGVhciBpbiB0aGUgc291cmNlIGNvZGUuIFRoZSB0eXBl
cyBgVDFgLCBgVDJgLCAuLi4sIGFuZCBgVG5gIGNhbiBiZSBlaXRoZXIKLXZhbHVlIHR5cGVzIG9y
IHJlZmVyZW5jZSB0eXBlcy4gRm9yIGV4YW1wbGUsIGlmIGFuIGFyZ3VtZW50IGhhcyB0eXBlIGBG
b29gLCB5b3UKLWNhbiBkZWNsYXJlIGl0IGFzIGVpdGhlciBgRm9vYCBvciBgY29uc3QgRm9vJmAs
IHdoaWNoZXZlciBpcyBhcHByb3ByaWF0ZS4KLQotQXMgYW4gZXhhbXBsZSwgbGV0J3MgaW1wcm92
ZSB0aGUgZmFpbHVyZSBtZXNzYWdlIGluIGBNdXR1YWxseVByaW1lKClgLCB3aGljaCB3YXMKLXVz
ZWQgd2l0aCBgRVhQRUNUX1BSRUQyKClgOgotCi1gYGBjKysKLS8vIFJldHVybnMgdGhlIHNtYWxs
ZXN0IHByaW1lIGNvbW1vbiBkaXZpc29yIG9mIG0gYW5kIG4sCi0vLyBvciAxIHdoZW4gbSBhbmQg
biBhcmUgbXV0dWFsbHkgcHJpbWUuCi1pbnQgU21hbGxlc3RQcmltZUNvbW1vbkRpdmlzb3IoaW50
IG0sIGludCBuKSB7IC4uLiB9Ci0KLS8vIEEgcHJlZGljYXRlLWZvcm1hdHRlciBmb3IgYXNzZXJ0
aW5nIHRoYXQgdHdvIGludGVnZXJzIGFyZSBtdXR1YWxseSBwcmltZS4KLTo6dGVzdGluZzo6QXNz
ZXJ0aW9uUmVzdWx0IEFzc2VydE11dHVhbGx5UHJpbWUoY29uc3QgY2hhciogbV9leHByLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBu
X2V4cHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
bikgewotICBpZiAoTXV0dWFsbHlQcmltZShtLCBuKSkgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0
aW9uU3VjY2VzcygpOwotCi0gIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8
PCBtX2V4cHIgPDwgIiBhbmQgIiA8PCBuX2V4cHIKLSAgICAgIDw8ICIgKCIgPDwgbSA8PCAiIGFu
ZCAiIDw8IG4gPDwgIikgYXJlIG5vdCBtdXR1YWxseSBwcmltZSwgIgotICAgICAgPDwgImFzIHRo
ZXkgaGF2ZSBhIGNvbW1vbiBkaXZpc29yICIgPDwgU21hbGxlc3RQcmltZUNvbW1vbkRpdmlzb3Io
bSwgbik7Ci19Ci1gYGAKLQotV2l0aCB0aGlzIHByZWRpY2F0ZS1mb3JtYXR0ZXIsIHdlIGNhbiB1
c2UKLQotYGBgYysrCi0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoQXNzZXJ0TXV0dWFsbHlQcmltZSwg
YiwgYyk7Ci1gYGAKLQotdG8gZ2VuZXJhdGUgdGhlIG1lc3NhZ2UKLQotYGBgbm9uZQotYiBhbmQg
YyAoNCBhbmQgMTApIGFyZSBub3QgbXV0dWFsbHkgcHJpbWUsIGFzIHRoZXkgaGF2ZSBhIGNvbW1v
biBkaXZpc29yIDIuCi1gYGAKLQotQXMgeW91IG1heSBoYXZlIHJlYWxpemVkLCBtYW55IG9mIHRo
ZSBidWlsdC1pbiBhc3NlcnRpb25zIHdlIGludHJvZHVjZWQgZWFybGllcgotYXJlIHNwZWNpYWwg
Y2FzZXMgb2YgYChFWFBFQ1R8QVNTRVJUKV9QUkVEX0ZPUk1BVCpgLiBJbiBmYWN0LCBtb3N0IG9m
IHRoZW0gYXJlCi1pbmRlZWQgZGVmaW5lZCB1c2luZyBgKEVYUEVDVHxBU1NFUlQpX1BSRURfRk9S
TUFUKmAuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBG
bG9hdGluZy1Qb2ludCBDb21wYXJpc29uCi0KLUNvbXBhcmluZyBmbG9hdGluZy1wb2ludCBudW1i
ZXJzIGlzIHRyaWNreS4gRHVlIHRvIHJvdW5kLW9mZiBlcnJvcnMsIGl0IGlzIHZlcnkKLXVubGlr
ZWx5IHRoYXQgdHdvIGZsb2F0aW5nLXBvaW50cyB3aWxsIG1hdGNoIGV4YWN0bHkuIFRoZXJlZm9y
ZSwgYEFTU0VSVF9FUWAgJ3MKLW5haXZlIGNvbXBhcmlzb24gdXN1YWxseSBkb2Vzbid0IHdvcmsu
IEFuZCBzaW5jZSBmbG9hdGluZy1wb2ludHMgY2FuIGhhdmUgYSB3aWRlCi12YWx1ZSByYW5nZSwg
bm8gc2luZ2xlIGZpeGVkIGVycm9yIGJvdW5kIHdvcmtzLiBJdCdzIGJldHRlciB0byBjb21wYXJl
IGJ5IGEKLWZpeGVkIHJlbGF0aXZlIGVycm9yIGJvdW5kLCBleGNlcHQgZm9yIHZhbHVlcyBjbG9z
ZSB0byAwIGR1ZSB0byB0aGUgbG9zcyBvZgotcHJlY2lzaW9uIHRoZXJlLgotCi1JbiBnZW5lcmFs
LCBmb3IgZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbiB0byBtYWtlIHNlbnNlLCB0aGUgdXNlciBu
ZWVkcyB0bwotY2FyZWZ1bGx5IGNob29zZSB0aGUgZXJyb3IgYm91bmQuIElmIHRoZXkgZG9uJ3Qg
d2FudCBvciBjYXJlIHRvLCBjb21wYXJpbmcgaW4KLXRlcm1zIG9mIFVuaXRzIGluIHRoZSBMYXN0
IFBsYWNlIChVTFBzKSBpcyBhIGdvb2QgZGVmYXVsdCwgYW5kIGdvb2dsZXRlc3QKLXByb3ZpZGVz
IGFzc2VydGlvbnMgdG8gZG8gdGhpcy4gRnVsbCBkZXRhaWxzIGFib3V0IFVMUHMgYXJlIHF1aXRl
IGxvbmc7IGlmIHlvdQotd2FudCB0byBsZWFybiBtb3JlLCBzZWUKLVtoZXJlXShodHRwczovL3Jh
bmRvbWFzY2lpLndvcmRwcmVzcy5jb20vMjAxMi8wMi8yNS9jb21wYXJpbmctZmxvYXRpbmctcG9p
bnQtbnVtYmVycy0yMDEyLWVkaXRpb24vKS4KLQotIyMjIyBGbG9hdGluZy1Qb2ludCBNYWNyb3MK
LQotfCBGYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9u
ICAgICAgICAgICAgIHwgVmVyaWZpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwK
LXwgYEFTU0VSVF9GTE9BVF9FUSh2YWwxLCB2YWwyKTtgICB8IGBFWFBFQ1RfRkxPQVRfRVEodmFs
MSx2YWwyKTtgICB8IHRoZSB0d28gYGZsb2F0YCB2YWx1ZXMgYXJlIGFsbW9zdCBlcXVhbCAgfAot
fCBgQVNTRVJUX0RPVUJMRV9FUSh2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9ET1VCTEVfRVEodmFs
MSwgdmFsMik7YHwgdGhlIHR3byBgZG91YmxlYCB2YWx1ZXMgYXJlIGFsbW9zdCBlcXVhbCB8Ci0K
LUJ5ICJhbG1vc3QgZXF1YWwiIHdlIG1lYW4gdGhlIHZhbHVlcyBhcmUgd2l0aGluIDQgVUxQJ3Mg
ZnJvbSBlYWNoIG90aGVyLgotCi1OT1RFOiBgQ0hFQ0tfRE9VQkxFX0VRKClgIGluIGBiYXNlL2xv
Z2dpbmcuaGAgdXNlcyBhIGZpeGVkIGFic29sdXRlIGVycm9yIGJvdW5kLAotc28gaXRzIHJlc3Vs
dCBtYXkgZGlmZmVyIGZyb20gdGhhdCBvZiB0aGUgZ29vZ2xldGVzdCBtYWNyb3MuIFRoYXQgbWFj
cm8gaXMKLXVuc2FmZSBhbmQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIGRvbid0IHVzZSBp
dCBhbnkgbW9yZS4KLQotVGhlIGZvbGxvd2luZyBhc3NlcnRpb25zIGFsbG93IHlvdSB0byBjaG9v
c2UgdGhlIGFjY2VwdGFibGUgZXJyb3IgYm91bmQ6Ci0KLXwgRmF0YWwgYXNzZXJ0aW9uICAgICAg
ICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAg
fCBWZXJpZmllcyAgICAgICAgICAgICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFTU0VSVF9ORUFSKHZhbDEsIHZhbDIsIGFi
c19lcnJvcik7YCB8IGBFWFBFQ1RfTkVBUih2YWwxLCB2YWwyLCBhYnNfZXJyb3IpO2AgfCB0aGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIGB2YWwxYCBhbmQgYHZhbDJgIGRvZXNuJ3QgZXhjZWVkIHRoZSBn
aXZlbiBhYnNvbHV0ZSBlcnJvciB8Ci0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dz
LCBNYWMuCi0KLSMjIyMgRmxvYXRpbmctUG9pbnQgUHJlZGljYXRlLUZvcm1hdCBGdW5jdGlvbnMK
LQotU29tZSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25zIGFyZSB1c2VmdWwsIGJ1dCBub3QgdGhh
dCBvZnRlbiB1c2VkLiBJbiBvcmRlciB0bwotYXZvaWQgYW4gZXhwbG9zaW9uIG9mIG5ldyBtYWNy
b3MsIHdlIHByb3ZpZGUgdGhlbSBhcyBwcmVkaWNhdGUtZm9ybWF0IGZ1bmN0aW9ucwotdGhhdCBj
YW4gYmUgdXNlZCBpbiBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3JvcyAoZS5nLiBgRVhQRUNUX1BS
RURfRk9STUFUMmAsCi1ldGMpLgotCi1gYGBjKysKLUVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0
aW5nOjpGbG9hdExFLCB2YWwxLCB2YWwyKTsKLUVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5n
OjpEb3VibGVMRSwgdmFsMSwgdmFsMik7Ci1gYGAKLQotVmVyaWZpZXMgdGhhdCBgdmFsMWAgaXMg
bGVzcyB0aGFuLCBvciBhbG1vc3QgZXF1YWwgdG8sIGB2YWwyYC4gWW91IGNhbiByZXBsYWNlCi1g
RVhQRUNUX1BSRURfRk9STUFUMmAgaW4gdGhlIGFib3ZlIHRhYmxlIHdpdGggYEFTU0VSVF9QUkVE
X0ZPUk1BVDJgLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0j
IyMgQXNzZXJ0aW5nIFVzaW5nIGdNb2NrIE1hdGNoZXJzCi0KLUdvb2dsZS1kZXZlbG9wZWQgQysr
IG1vY2tpbmcgZnJhbWV3b3JrIFtnTW9ja10oLi4vLi4vZ29vZ2xlbW9jaykgY29tZXMgd2l0aCBh
Ci1saWJyYXJ5IG9mIG1hdGNoZXJzIGZvciB2YWxpZGF0aW5nIGFyZ3VtZW50cyBwYXNzZWQgdG8g
bW9jayBvYmplY3RzLiBBIGdNb2NrCi0qbWF0Y2hlciogaXMgYmFzaWNhbGx5IGEgcHJlZGljYXRl
IHRoYXQga25vd3MgaG93IHRvIGRlc2NyaWJlIGl0c2VsZi4gSXQgY2FuIGJlCi11c2VkIGluIHRo
ZXNlIGFzc2VydGlvbiBtYWNyb3M6Ci0KLXwgRmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAg
IHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgIHwgVmVyaWZpZXMgICAgICAgICAgICAg
IHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgYEFTU0VSVF9USEFUKHZh
bHVlLCBtYXRjaGVyKTtgIHwgYEVYUEVDVF9USEFUKHZhbHVlLCBtYXRjaGVyKTtgIHwgdmFsdWUg
bWF0Y2hlcyBtYXRjaGVyIHwKLQotRm9yIGV4YW1wbGUsIGBTdGFydHNXaXRoKHByZWZpeClgIGlz
IGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBzdHJpbmcgc3RhcnRpbmcKLXdpdGggYHByZWZpeGAs
IGFuZCB5b3UgY2FuIHdyaXRlOgotCi1gYGBjKysKLXVzaW5nIDo6dGVzdGluZzo6U3RhcnRzV2l0
aDsKLS4uLgotICAgIC8vIFZlcmlmaWVzIHRoYXQgRm9vKCkgcmV0dXJucyBhIHN0cmluZyBzdGFy
dGluZyB3aXRoICJIZWxsbyIuCi0gICAgRVhQRUNUX1RIQVQoRm9vKCksIFN0YXJ0c1dpdGgoIkhl
bGxvIikpOwotYGBgCi0KLVJlYWQgdGhpcyBbcmVjaXBlXSguLi8uLi9nb29nbGVtb2NrL2RvY3Mv
Q29va0Jvb2subWQjdXNpbmctbWF0Y2hlcnMtaW4tZ29vZ2xlLXRlc3QtYXNzZXJ0aW9ucykgaW4K
LXRoZSBnTW9jayBDb29rYm9vayBmb3IgbW9yZSBkZXRhaWxzLgotCi1nTW9jayBoYXMgYSByaWNo
IHNldCBvZiBtYXRjaGVycy4gWW91IGNhbiBkbyBtYW55IHRoaW5ncyBnb29nbGV0ZXN0IGNhbm5v
dCBkbwotYWxvbmUgd2l0aCB0aGVtLiBGb3IgYSBsaXN0IG9mIG1hdGNoZXJzIGdNb2NrIHByb3Zp
ZGVzLCByZWFkCi1bdGhpc10oLi4vLi4vZ29vZ2xlbW9jay9kb2NzL0Nvb2tCb29rLm1kI3VzaW5n
LW1hdGNoZXJzKS4gRXNwZWNpYWxseSB1c2VmdWwgYW1vbmcgdGhlbSBhcmUKLXNvbWUgW3Byb3Rv
Y29sIGJ1ZmZlciBtYXRjaGVyc10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9udWNsZXVzL2Js
b2IvbWFzdGVyL251Y2xldXMvdGVzdGluZy9wcm90b2NvbC1idWZmZXItbWF0Y2hlcnMuaCkuIEl0
J3MgZWFzeSB0byB3cml0ZQoteW91ciBbb3duIG1hdGNoZXJzXSguLi8uLi9nb29nbGVtb2NrL2Rv
Y3MvQ29va0Jvb2subWQjd3JpdGluZy1uZXctbWF0Y2hlcnMtcXVpY2tseSkgdG9vLgotCi1Gb3Ig
ZXhhbXBsZSwgeW91IGNhbiB1c2UgZ01vY2sncwotW0VxdWFsc1Byb3RvXShodHRwczovL2dpdGh1
Yi5jb20vZ29vZ2xlL251Y2xldXMvYmxvYi9tYXN0ZXIvbnVjbGV1cy90ZXN0aW5nL3Byb3RvY29s
LWJ1ZmZlci1tYXRjaGVycy5oKQotdG8gY29tcGFyZSBwcm90b3MgaW4geW91ciB0ZXN0czoKLQot
YGBgYysrCi0jaW5jbHVkZSAidGVzdGluZy9iYXNlL3B1YmxpYy9nbW9jay5oIgotdXNpbmcgOjp0
ZXN0aW5nOjpFcXVhbHNQcm90bzsKLS4uLgotICAgIEVYUEVDVF9USEFUKGFjdHVhbF9wcm90bywg
RXF1YWxzUHJvdG8oImZvbzogMTIzIGJhcjogJ3h5eiciKSk7Ci0gICAgRVhQRUNUX1RIQVQoKmFj
dHVhbF9wcm90b19wdHIsIEVxdWFsc1Byb3RvKGV4cGVjdGVkX3Byb3RvKSk7Ci1gYGAKLQotZ01v
Y2sgaXMgYnVuZGxlZCB3aXRoIGdvb2dsZXRlc3QsIHNvIHlvdSBkb24ndCBuZWVkIHRvIGFkZCBh
bnkgYnVpbGQgZGVwZW5kZW5jeQotaW4gb3JkZXIgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcy4g
SnVzdCBpbmNsdWRlIGAidGVzdGluZy9iYXNlL3B1YmxpYy9nbW9jay5oImAKLWFuZCB5b3UncmUg
cmVhZHkgdG8gZ28uCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBhbmQgTWFj
LgotCi0jIyMgTW9yZSBTdHJpbmcgQXNzZXJ0aW9ucwotCi0oUGxlYXNlIHJlYWQgdGhlIFtwcmV2
aW91c10oI0Fzc2VydFRoYXQpIHNlY3Rpb24gZmlyc3QgaWYgeW91IGhhdmVuJ3QuKQotCi1Zb3Ug
Y2FuIHVzZSB0aGUgZ01vY2sgW3N0cmluZyBtYXRjaGVyc10oLi4vLi4vZ29vZ2xlbW9jay9kb2Nz
L0NoZWF0U2hlZXQubWQjc3RyaW5nLW1hdGNoZXJzKQotd2l0aCBgRVhQRUNUX1RIQVQoKWAgb3Ig
YEFTU0VSVF9USEFUKClgIHRvIGRvIG1vcmUgc3RyaW5nIGNvbXBhcmlzb24gdHJpY2tzCi0oc3Vi
LXN0cmluZywgcHJlZml4LCBzdWZmaXgsIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYW5kIGV0YykuIEZv
ciBleGFtcGxlLAotCi1gYGBjKysKLXVzaW5nIDo6dGVzdGluZzo6SGFzU3Vic3RyOwotdXNpbmcg
Ojp0ZXN0aW5nOjpNYXRjaGVzUmVnZXg7Ci0uLi4KLSAgQVNTRVJUX1RIQVQoZm9vX3N0cmluZywg
SGFzU3Vic3RyKCJuZWVkbGUiKSk7Ci0gIEVYUEVDVF9USEFUKGJhcl9zdHJpbmcsIE1hdGNoZXNS
ZWdleCgiXFx3KlxcZCsiKSk7Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRv
d3MsIE1hYy4KLQotSWYgdGhlIHN0cmluZyBjb250YWlucyBhIHdlbGwtZm9ybWVkIEhUTUwgb3Ig
WE1MIGRvY3VtZW50LCB5b3UgY2FuIGNoZWNrIHdoZXRoZXIKLWl0cyBET00gdHJlZSBtYXRjaGVz
IGFuIFtYUGF0aAotZXhwcmVzc2lvbl0oaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgvI2NvbnRl
bnRzKToKLQotYGBgYysrCi0vLyBDdXJyZW50bHkgc3RpbGwgaW4gLy90ZW1wbGF0ZS9wcm90b3Rl
bXBsYXRlL3Rlc3Rpbmc6eHBhdGhfbWF0Y2hlcgotI2luY2x1ZGUgInRlbXBsYXRlL3Byb3RvdGVt
cGxhdGUvdGVzdGluZy94cGF0aF9tYXRjaGVyLmgiCi11c2luZyBwcm90b3RlbXBsYXRlOjp0ZXN0
aW5nOjpNYXRjaGVzWFBhdGg7Ci1FWFBFQ1RfVEhBVChodG1sX3N0cmluZywgTWF0Y2hlc1hQYXRo
KCIvL2FbdGV4dCgpPSdjbGljayBoZXJlJ10iKSk7Ci1gYGAKLQotKipBdmFpbGFiaWxpdHkqKjog
TGludXguCi0KLSMjIyBXaW5kb3dzIEhSRVNVTFQgYXNzZXJ0aW9ucwotCi1UaGVzZSBhc3NlcnRp
b25zIHRlc3QgZm9yIGBIUkVTVUxUYCBzdWNjZXNzIG9yIGZhaWx1cmUuCi0KLUZhdGFsIGFzc2Vy
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZmF0YWwgYXNzZXJ0aW9uICAgICAgICAg
ICAgICAgICAgICAgfCBWZXJpZmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0t
Ci1gQVNTRVJUX0hSRVNVTFRfU1VDQ0VFREVEKGV4cHJlc3Npb24pYCB8IGBFWFBFQ1RfSFJFU1VM
VF9TVUNDRUVERUQoZXhwcmVzc2lvbilgIHwgYGV4cHJlc3Npb25gIGlzIGEgc3VjY2VzcyBgSFJF
U1VMVGAKLWBBU1NFUlRfSFJFU1VMVF9GQUlMRUQoZXhwcmVzc2lvbilgICAgIHwgYEVYUEVDVF9I
UkVTVUxUX0ZBSUxFRChleHByZXNzaW9uKWAgICAgfCBgZXhwcmVzc2lvbmAgaXMgYSBmYWlsdXJl
IGBIUkVTVUxUYAotCi1UaGUgZ2VuZXJhdGVkIG91dHB1dCBjb250YWlucyB0aGUgaHVtYW4tcmVh
ZGFibGUgZXJyb3IgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGgKLXRoZSBgSFJFU1VMVGAgY29kZSBy
ZXR1cm5lZCBieSBgZXhwcmVzc2lvbmAuCi0KLVlvdSBtaWdodCB1c2UgdGhlbSBsaWtlIHRoaXM6
Ci0KLWBgYGMrKwotQ0NvbVB0cjxJU2hlbGxEaXNwYXRjaDI+IHNoZWxsOwotQVNTRVJUX0hSRVNV
TFRfU1VDQ0VFREVEKHNoZWxsLkNvQ3JlYXRlSW5zdGFuY2UoTCJTaGVsbC5BcHBsaWNhdGlvbiIp
KTsKLUNDb21WYXJpYW50IGVtcHR5OwotQVNTRVJUX0hSRVNVTFRfU1VDQ0VFREVEKHNoZWxsLT5T
aGVsbEV4ZWN1dGUoQ0NvbUJTVFIodXJsKSwgZW1wdHksIGVtcHR5LCBlbXB0eSwgZW1wdHkpKTsK
LWBgYAotCi0qKkF2YWlsYWJpbGl0eSoqOiBXaW5kb3dzLgotCi0jIyMgVHlwZSBBc3NlcnRpb25z
Ci0KLVlvdSBjYW4gY2FsbCB0aGUgZnVuY3Rpb24KLQotYGBgYysrCi06OnRlc3Rpbmc6OlN0YXRp
Y0Fzc2VydFR5cGVFcTxUMSwgVDI+KCk7Ci1gYGAKLQotdG8gYXNzZXJ0IHRoYXQgdHlwZXMgYFQx
YCBhbmQgYFQyYCBhcmUgdGhlIHNhbWUuIFRoZSBmdW5jdGlvbiBkb2VzIG5vdGhpbmcgaWYKLXRo
ZSBhc3NlcnRpb24gaXMgc2F0aXNmaWVkLiBJZiB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudCwgdGhl
IGZ1bmN0aW9uIGNhbGwgd2lsbAotZmFpbCB0byBjb21waWxlLCBhbmQgdGhlIGNvbXBpbGVyIGVy
cm9yIG1lc3NhZ2Ugd2lsbCBsaWtlbHkgKGRlcGVuZGluZyBvbiB0aGUKLWNvbXBpbGVyKSBzaG93
IHlvdSB0aGUgYWN0dWFsIHZhbHVlcyBvZiBgVDFgIGFuZCBgVDJgLiBUaGlzIGlzIG1haW5seSB1
c2VmdWwKLWluc2lkZSB0ZW1wbGF0ZSBjb2RlLgotCi0qKkNhdmVhdCoqOiBXaGVuIHVzZWQgaW5z
aWRlIGEgbWVtYmVyIGZ1bmN0aW9uIG9mIGEgY2xhc3MgdGVtcGxhdGUgb3IgYSBmdW5jdGlvbgot
dGVtcGxhdGUsIGBTdGF0aWNBc3NlcnRUeXBlRXE8VDEsIFQyPigpYCBpcyBlZmZlY3RpdmUgb25s
eSBpZiB0aGUgZnVuY3Rpb24gaXMKLWluc3RhbnRpYXRlZC4gRm9yIGV4YW1wbGUsIGdpdmVuOgot
Ci1gYGBjKysKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBGb28gewotIHB1YmxpYzoKLSAg
dm9pZCBCYXIoKSB7IDo6dGVzdGluZzo6U3RhdGljQXNzZXJ0VHlwZUVxPGludCwgVD4oKTsgfQot
fTsKLWBgYAotCi10aGUgY29kZToKLQotYGBgYysrCi12b2lkIFRlc3QxKCkgeyBGb288Ym9vbD4g
Zm9vOyB9Ci1gYGAKLQotd2lsbCBub3QgZ2VuZXJhdGUgYSBjb21waWxlciBlcnJvciwgYXMgYEZv
bzxib29sPjo6QmFyKClgIGlzIG5ldmVyIGFjdHVhbGx5Ci1pbnN0YW50aWF0ZWQuIEluc3RlYWQs
IHlvdSBuZWVkOgotCi1gYGBjKysKLXZvaWQgVGVzdDIoKSB7IEZvbzxib29sPiBmb287IGZvby5C
YXIoKTsgfQotYGBgCi0KLXRvIGNhdXNlIGEgY29tcGlsZXIgZXJyb3IuCi0KLSoqQXZhaWxhYmls
aXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBBc3NlcnRpb24gUGxhY2VtZW50Ci0K
LVlvdSBjYW4gdXNlIGFzc2VydGlvbnMgaW4gYW55IEMrKyBmdW5jdGlvbi4gSW4gcGFydGljdWxh
ciwgaXQgZG9lc24ndCBoYXZlIHRvIGJlCi1hIG1ldGhvZCBvZiB0aGUgdGVzdCBmaXh0dXJlIGNs
YXNzLiBUaGUgb25lIGNvbnN0cmFpbnQgaXMgdGhhdCBhc3NlcnRpb25zIHRoYXQKLWdlbmVyYXRl
IGEgZmF0YWwgZmFpbHVyZSAoYEZBSUwqYCBhbmQgYEFTU0VSVF8qYCkgY2FuIG9ubHkgYmUgdXNl
ZCBpbgotdm9pZC1yZXR1cm5pbmcgZnVuY3Rpb25zLiBUaGlzIGlzIGEgY29uc2VxdWVuY2Ugb2Yg
R29vZ2xlJ3Mgbm90IHVzaW5nCi1leGNlcHRpb25zLiBCeSBwbGFjaW5nIGl0IGluIGEgbm9uLXZv
aWQgZnVuY3Rpb24geW91J2xsIGdldCBhIGNvbmZ1c2luZyBjb21waWxlCi1lcnJvciBsaWtlIGAi
ZXJyb3I6IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUiYCBvciBgImNh
bm5vdAotaW5pdGlhbGl6ZSByZXR1cm4gb2JqZWN0IG9mIHR5cGUgJ2Jvb2wnIHdpdGggYW4gcnZh
bHVlIG9mIHR5cGUgJ3ZvaWQnImAgb3IKLWAiZXJyb3I6IG5vIHZpYWJsZSBjb252ZXJzaW9uIGZy
b20gJ3ZvaWQnIHRvICdzdHJpbmcnImAuCi0KLUlmIHlvdSBuZWVkIHRvIHVzZSBmYXRhbCBhc3Nl
cnRpb25zIGluIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIG5vbi12b2lkLCBvbmUKLW9wdGlvbiBp
cyB0byBtYWtlIHRoZSBmdW5jdGlvbiByZXR1cm4gdGhlIHZhbHVlIGluIGFuIG91dCBwYXJhbWV0
ZXIgaW5zdGVhZC4gRm9yCi1leGFtcGxlLCB5b3UgY2FuIHJld3JpdGUgYFQyIEZvbyhUMSB4KWAg
dG8gYHZvaWQgRm9vKFQxIHgsIFQyKiByZXN1bHQpYC4gWW91Ci1uZWVkIHRvIG1ha2Ugc3VyZSB0
aGF0IGAqcmVzdWx0YCBjb250YWlucyBzb21lIHNlbnNpYmxlIHZhbHVlIGV2ZW4gd2hlbiB0aGUK
LWZ1bmN0aW9uIHJldHVybnMgcHJlbWF0dXJlbHkuIEFzIHRoZSBmdW5jdGlvbiBub3cgcmV0dXJu
cyBgdm9pZGAsIHlvdSBjYW4gdXNlCi1hbnkgYXNzZXJ0aW9uIGluc2lkZSBvZiBpdC4KLQotSWYg
Y2hhbmdpbmcgdGhlIGZ1bmN0aW9uJ3MgdHlwZSBpcyBub3QgYW4gb3B0aW9uLCB5b3Ugc2hvdWxk
IGp1c3QgdXNlIGFzc2VydGlvbnMKLXRoYXQgZ2VuZXJhdGUgbm9uLWZhdGFsIGZhaWx1cmVzLCBz
dWNoIGFzIGBBRERfRkFJTFVSRSpgIGFuZCBgRVhQRUNUXypgLgotCi1OT1RFOiBDb25zdHJ1Y3Rv
cnMgYW5kIGRlc3RydWN0b3JzIGFyZSBub3QgY29uc2lkZXJlZCB2b2lkLXJldHVybmluZyBmdW5j
dGlvbnMsCi1hY2NvcmRpbmcgdG8gdGhlIEMrKyBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQg
c28geW91IG1heSBub3QgdXNlIGZhdGFsCi1hc3NlcnRpb25zIGluIHRoZW0uIFlvdSdsbCBnZXQg
YSBjb21waWxhdGlvbiBlcnJvciBpZiB5b3UgdHJ5LiBBIHNpbXBsZQotd29ya2Fyb3VuZCBpcyB0
byB0cmFuc2ZlciB0aGUgZW50aXJlIGJvZHkgb2YgdGhlIGNvbnN0cnVjdG9yIG9yIGRlc3RydWN0
b3IgdG8gYQotcHJpdmF0ZSB2b2lkLXJldHVybmluZyBtZXRob2QuIEhvd2V2ZXIsIHlvdSBzaG91
bGQgYmUgYXdhcmUgdGhhdCBhIGZhdGFsCi1hc3NlcnRpb24gZmFpbHVyZSBpbiBhIGNvbnN0cnVj
dG9yIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUgY3VycmVudCB0ZXN0LCBhcyB5b3VyCi1pbnR1aXRp
b24gbWlnaHQgc3VnZ2VzdDsgaXQgbWVyZWx5IHJldHVybnMgZnJvbSB0aGUgY29uc3RydWN0b3Ig
ZWFybHksIHBvc3NpYmx5Ci1sZWF2aW5nIHlvdXIgb2JqZWN0IGluIGEgcGFydGlhbGx5LWNvbnN0
cnVjdGVkIHN0YXRlLiBMaWtld2lzZSwgYSBmYXRhbAotYXNzZXJ0aW9uIGZhaWx1cmUgaW4gYSBk
ZXN0cnVjdG9yIG1heSBsZWF2ZSB5b3VyIG9iamVjdCBpbiBhCi1wYXJ0aWFsbHktZGVzdHJ1Y3Rl
ZCBzdGF0ZS4gVXNlIGFzc2VydGlvbnMgY2FyZWZ1bGx5IGluIHRoZXNlIHNpdHVhdGlvbnMhCi0K
LSMjIFRlYWNoaW5nIGdvb2dsZXRlc3QgSG93IHRvIFByaW50IFlvdXIgVmFsdWVzCi0KLVdoZW4g
YSB0ZXN0IGFzc2VydGlvbiBzdWNoIGFzIGBFWFBFQ1RfRVFgIGZhaWxzLCBnb29nbGV0ZXN0IHBy
aW50cyB0aGUgYXJndW1lbnQKLXZhbHVlcyB0byBoZWxwIHlvdSBkZWJ1Zy4gSXQgZG9lcyB0aGlz
IHVzaW5nIGEgdXNlci1leHRlbnNpYmxlIHZhbHVlIHByaW50ZXIuCi0KLVRoaXMgcHJpbnRlciBr
bm93cyBob3cgdG8gcHJpbnQgYnVpbHQtaW4gQysrIHR5cGVzLCBuYXRpdmUgYXJyYXlzLCBTVEwK
LWNvbnRhaW5lcnMsIGFuZCBhbnkgdHlwZSB0aGF0IHN1cHBvcnRzIHRoZSBgPDxgIG9wZXJhdG9y
LiBGb3Igb3RoZXIgdHlwZXMsIGl0Ci1wcmludHMgdGhlIHJhdyBieXRlcyBpbiB0aGUgdmFsdWUg
YW5kIGhvcGVzIHRoYXQgeW91IHRoZSB1c2VyIGNhbiBmaWd1cmUgaXQgb3V0LgotCi1BcyBtZW50
aW9uZWQgZWFybGllciwgdGhlIHByaW50ZXIgaXMgKmV4dGVuc2libGUqLiBUaGF0IG1lYW5zIHlv
dSBjYW4gdGVhY2ggaXQKLXRvIGRvIGEgYmV0dGVyIGpvYiBhdCBwcmludGluZyB5b3VyIHBhcnRp
Y3VsYXIgdHlwZSB0aGFuIHRvIGR1bXAgdGhlIGJ5dGVzLiBUbwotZG8gdGhhdCwgZGVmaW5lIGA8
PGAgZm9yIHlvdXIgdHlwZToKLQotYGBgYysrCi0vLyBTdHJlYW1zIGFyZSBhbGxvd2VkIG9ubHkg
Zm9yIGxvZ2dpbmcuICBEb24ndCBpbmNsdWRlIHRoaXMgZm9yCi0vLyBhbnkgb3RoZXIgcHVycG9z
ZS4KLSNpbmNsdWRlIDxvc3RyZWFtPgotCi1uYW1lc3BhY2UgZm9vIHsKLQotY2xhc3MgQmFyIHsg
IC8vIFdlIHdhbnQgZ29vZ2xldGVzdCB0byBiZSBhYmxlIHRvIHByaW50IGluc3RhbmNlcyBvZiB0
aGlzLgotLi4uCi0gIC8vIENyZWF0ZSBhIGZyZWUgaW5saW5lIGZyaWVuZCBmdW5jdGlvbi4KLSAg
ZnJpZW5kIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBC
YXImIGJhcikgewotICAgIHJldHVybiBvcyA8PCBiYXIuRGVidWdTdHJpbmcoKTsgIC8vIHdoYXRl
dmVyIG5lZWRlZCB0byBwcmludCBiYXIgdG8gb3MKLSAgfQotfTsKLQotLy8gSWYgeW91IGNhbid0
IGRlY2xhcmUgdGhlIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBpdCdzIGltcG9ydGFudCB0aGF0IHRo
ZQotLy8gPDwgb3BlcmF0b3IgaXMgZGVmaW5lZCBpbiB0aGUgU0FNRSBuYW1lc3BhY2UgdGhhdCBk
ZWZpbmVzIEJhci4gIEMrKydzIGxvb2stdXAKLS8vIHJ1bGVzIHJlbHkgb24gdGhhdC4KLXN0ZDo6
b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBCYXImIGJhcikgewot
ICByZXR1cm4gb3MgPDwgYmFyLkRlYnVnU3RyaW5nKCk7ICAvLyB3aGF0ZXZlciBuZWVkZWQgdG8g
cHJpbnQgYmFyIHRvIG9zCi19Ci0KLX0gIC8vIG5hbWVzcGFjZSBmb28KLWBgYAotCi1Tb21ldGlt
ZXMsIHRoaXMgbWlnaHQgbm90IGJlIGFuIG9wdGlvbjogeW91ciB0ZWFtIG1heSBjb25zaWRlciBp
dCBiYWQgc3R5bGUgdG8KLWhhdmUgYSBgPDxgIG9wZXJhdG9yIGZvciBgQmFyYCwgb3IgYEJhcmAg
bWF5IGFscmVhZHkgaGF2ZSBhIGA8PGAgb3BlcmF0b3IgdGhhdAotZG9lc24ndCBkbyB3aGF0IHlv
dSB3YW50IChhbmQgeW91IGNhbm5vdCBjaGFuZ2UgaXQpLiBJZiBzbywgeW91IGNhbiBpbnN0ZWFk
Ci1kZWZpbmUgYSBgUHJpbnRUbygpYCBmdW5jdGlvbiBsaWtlIHRoaXM6Ci0KLWBgYGMrKwotLy8g
U3RyZWFtcyBhcmUgYWxsb3dlZCBvbmx5IGZvciBsb2dnaW5nLiAgRG9uJ3QgaW5jbHVkZSB0aGlz
IGZvcgotLy8gYW55IG90aGVyIHB1cnBvc2UuCi0jaW5jbHVkZSA8b3N0cmVhbT4KLQotbmFtZXNw
YWNlIGZvbyB7Ci0KLWNsYXNzIEJhciB7Ci0gIC4uLgotICBmcmllbmQgdm9pZCBQcmludFRvKGNv
bnN0IEJhciYgYmFyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgKm9zIDw8IGJhci5EZWJ1Z1N0
cmluZygpOyAgLy8gd2hhdGV2ZXIgbmVlZGVkIHRvIHByaW50IGJhciB0byBvcwotICB9Ci19Owot
Ci0vLyBJZiB5b3UgY2FuJ3QgZGVjbGFyZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGNsYXNzIGl0J3Mg
aW1wb3J0YW50IHRoYXQgUHJpbnRUbygpCi0vLyBpcyBkZWZpbmVkIGluIHRoZSBTQU1FIG5hbWVz
cGFjZSB0aGF0IGRlZmluZXMgQmFyLiAgQysrJ3MgbG9vay11cCBydWxlcyByZWx5Ci0vLyBvbiB0
aGF0Lgotdm9pZCBQcmludFRvKGNvbnN0IEJhciYgYmFyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0g
ICpvcyA8PCBiYXIuRGVidWdTdHJpbmcoKTsgIC8vIHdoYXRldmVyIG5lZWRlZCB0byBwcmludCBi
YXIgdG8gb3MKLX0KLQotfSAgLy8gbmFtZXNwYWNlIGZvbwotYGBgCi0KLUlmIHlvdSBoYXZlIGRl
ZmluZWQgYm90aCBgPDxgIGFuZCBgUHJpbnRUbygpYCwgdGhlIGxhdHRlciB3aWxsIGJlIHVzZWQg
d2hlbgotZ29vZ2xldGVzdCBpcyBjb25jZXJuZWQuIFRoaXMgYWxsb3dzIHlvdSB0byBjdXN0b21p
emUgaG93IHRoZSB2YWx1ZSBhcHBlYXJzIGluCi1nb29nbGV0ZXN0J3Mgb3V0cHV0IHdpdGhvdXQg
YWZmZWN0aW5nIGNvZGUgdGhhdCByZWxpZXMgb24gdGhlIGJlaGF2aW9yIG9mIGl0cwotYDw8YCBv
cGVyYXRvci4KLQotSWYgeW91IHdhbnQgdG8gcHJpbnQgYSB2YWx1ZSBgeGAgdXNpbmcgZ29vZ2xl
dGVzdCdzIHZhbHVlIHByaW50ZXIgeW91cnNlbGYsIGp1c3QKLWNhbGwgYDo6dGVzdGluZzo6UHJp
bnRUb1N0cmluZyh4KWAsIHdoaWNoIHJldHVybnMgYW4gYHN0ZDo6c3RyaW5nYDoKLQotYGBgYysr
Ci12ZWN0b3I8cGFpcjxCYXIsIGludD4gPiBiYXJfaW50cyA9IEdldEJhckludFZlY3RvcigpOwot
Ci1FWFBFQ1RfVFJVRShJc0NvcnJlY3RCYXJJbnRWZWN0b3IoYmFyX2ludHMpKQotICAgIDw8ICJi
YXJfaW50cyA9ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGJhcl9pbnRzKTsKLWBgYAot
Ci0jIyBEZWF0aCBUZXN0cwotCi1JbiBtYW55IGFwcGxpY2F0aW9ucywgdGhlcmUgYXJlIGFzc2Vy
dGlvbnMgdGhhdCBjYW4gY2F1c2UgYXBwbGljYXRpb24gZmFpbHVyZSBpZgotYSBjb25kaXRpb24g
aXMgbm90IG1ldC4gVGhlc2Ugc2FuaXR5IGNoZWNrcywgd2hpY2ggZW5zdXJlIHRoYXQgdGhlIHBy
b2dyYW0gaXMgaW4KLWEga25vd24gZ29vZCBzdGF0ZSwgYXJlIHRoZXJlIHRvIGZhaWwgYXQgdGhl
IGVhcmxpZXN0IHBvc3NpYmxlIHRpbWUgYWZ0ZXIgc29tZQotcHJvZ3JhbSBzdGF0ZSBpcyBjb3Jy
dXB0ZWQuIElmIHRoZSBhc3NlcnRpb24gY2hlY2tzIHRoZSB3cm9uZyBjb25kaXRpb24sIHRoZW4K
LXRoZSBwcm9ncmFtIG1heSBwcm9jZWVkIGluIGFuIGVycm9uZW91cyBzdGF0ZSwgd2hpY2ggY291
bGQgbGVhZCB0byBtZW1vcnkKLWNvcnJ1cHRpb24sIHNlY3VyaXR5IGhvbGVzLCBvciB3b3JzZS4g
SGVuY2UgaXQgaXMgdml0YWxseSBpbXBvcnRhbnQgdG8gdGVzdCB0aGF0Ci1zdWNoIGFzc2VydGlv
biBzdGF0ZW1lbnRzIHdvcmsgYXMgZXhwZWN0ZWQuCi0KLVNpbmNlIHRoZXNlIHByZWNvbmRpdGlv
biBjaGVja3MgY2F1c2UgdGhlIHByb2Nlc3NlcyB0byBkaWUsIHdlIGNhbGwgc3VjaCB0ZXN0cwot
X2RlYXRoIHRlc3RzXy4gTW9yZSBnZW5lcmFsbHksIGFueSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQg
YSBwcm9ncmFtIHRlcm1pbmF0ZXMKLShleGNlcHQgYnkgdGhyb3dpbmcgYW4gZXhjZXB0aW9uKSBp
biBhbiBleHBlY3RlZCBmYXNoaW9uIGlzIGFsc28gYSBkZWF0aCB0ZXN0LgotCi0KLU5vdGUgdGhh
dCBpZiBhIHBpZWNlIG9mIGNvZGUgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2UgZG9uJ3QgY29uc2lk
ZXIgaXQgImRlYXRoIgotZm9yIHRoZSBwdXJwb3NlIG9mIGRlYXRoIHRlc3RzLCBhcyB0aGUgY2Fs
bGVyIG9mIHRoZSBjb2RlIGNvdWxkIGNhdGNoIHRoZQotZXhjZXB0aW9uIGFuZCBhdm9pZCB0aGUg
Y3Jhc2guIElmIHlvdSB3YW50IHRvIHZlcmlmeSBleGNlcHRpb25zIHRocm93biBieSB5b3VyCi1j
b2RlLCBzZWUgW0V4Y2VwdGlvbiBBc3NlcnRpb25zXSgjZXhjZXB0aW9uLWFzc2VydGlvbnMpLgot
Ci1JZiB5b3Ugd2FudCB0byB0ZXN0IGBFWFBFQ1RfKigpL0FTU0VSVF8qKClgIGZhaWx1cmVzIGlu
IHlvdXIgdGVzdCBjb2RlLCBzZWUKLUNhdGNoaW5nIEZhaWx1cmVzCi0KLSMjIyBIb3cgdG8gV3Jp
dGUgYSBEZWF0aCBUZXN0Ci0KLWdvb2dsZXRlc3QgaGFzIHRoZSBmb2xsb3dpbmcgbWFjcm9zIHRv
IHN1cHBvcnQgZGVhdGggdGVzdHM6Ci0KLUZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IHwgLS0tLS0tLS0KLWBBU1NFUlRfREVBVEgoc3RhdGVtZW50LCByZWdleCk7YCAgICAgICAgICAg
ICAgfCBgRVhQRUNUX0RFQVRIKHN0YXRlbWVudCwgcmVnZXgpO2AgICAgICAgICAgICAgIHwgYHN0
YXRlbWVudGAgY3Jhc2hlcyB3aXRoIHRoZSBnaXZlbiBlcnJvcgotYEFTU0VSVF9ERUFUSF9JRl9T
VVBQT1JURUQoc3RhdGVtZW50LCByZWdleCk7YCB8IGBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVE
KHN0YXRlbWVudCwgcmVnZXgpO2AgfCBpZiBkZWF0aCB0ZXN0cyBhcmUgc3VwcG9ydGVkLCB2ZXJp
ZmllcyB0aGF0IGBzdGF0ZW1lbnRgIGNyYXNoZXMgd2l0aCB0aGUgZ2l2ZW4gZXJyb3I7IG90aGVy
d2lzZSB2ZXJpZmllcyBub3RoaW5nCi1gQVNTRVJUX0VYSVQoc3RhdGVtZW50LCBwcmVkaWNhdGUs
IHJlZ2V4KTtgICAgIHwgYEVYUEVDVF9FWElUKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleCk7
YCAgICB8IGBzdGF0ZW1lbnRgIGV4aXRzIHdpdGggdGhlIGdpdmVuIGVycm9yLCBhbmQgaXRzIGV4
aXQgY29kZSBtYXRjaGVzIGBwcmVkaWNhdGVgCi0KLXdoZXJlIGBzdGF0ZW1lbnRgIGlzIGEgc3Rh
dGVtZW50IHRoYXQgaXMgZXhwZWN0ZWQgdG8gY2F1c2UgdGhlIHByb2Nlc3MgdG8gZGllLAotYHBy
ZWRpY2F0ZWAgaXMgYSBmdW5jdGlvbiBvciBmdW5jdGlvbiBvYmplY3QgdGhhdCBldmFsdWF0ZXMg
YW4gaW50ZWdlciBleGl0Ci1zdGF0dXMsIGFuZCBgcmVnZXhgIGlzIGEgKFBlcmwpIHJlZ3VsYXIg
ZXhwcmVzc2lvbiB0aGF0IHRoZSBzdGRlcnIgb3V0cHV0IG9mCi1gc3RhdGVtZW50YCBpcyBleHBl
Y3RlZCB0byBtYXRjaC4gTm90ZSB0aGF0IGBzdGF0ZW1lbnRgIGNhbiBiZSAqYW55IHZhbGlkCi1z
dGF0ZW1lbnQqIChpbmNsdWRpbmcgKmNvbXBvdW5kIHN0YXRlbWVudCopIGFuZCBkb2Vzbid0IGhh
dmUgdG8gYmUgYW4KLWV4cHJlc3Npb24uCi0KLQotQXMgdXN1YWwsIHRoZSBgQVNTRVJUYCB2YXJp
YW50cyBhYm9ydCB0aGUgY3VycmVudCB0ZXN0IGZ1bmN0aW9uLCB3aGlsZSB0aGUKLWBFWFBFQ1Rg
IHZhcmlhbnRzIGRvIG5vdC4KLQotPiBOT1RFOiBXZSB1c2UgdGhlIHdvcmQgImNyYXNoIiBoZXJl
IHRvIG1lYW4gdGhhdCB0aGUgcHJvY2VzcyB0ZXJtaW5hdGVzIHdpdGggYQotPiAqbm9uLXplcm8q
IGV4aXQgc3RhdHVzIGNvZGUuIFRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczogZWl0aGVyIHRo
ZSBwcm9jZXNzCi0+IGhhcyBjYWxsZWQgYGV4aXQoKWAgb3IgYF9leGl0KClgIHdpdGggYSBub24t
emVybyB2YWx1ZSwgb3IgaXQgbWF5IGJlIGtpbGxlZCBieQotPiBhIHNpZ25hbC4KLT4KLT4gVGhp
cyBtZWFucyB0aGF0IGlmIGAqc3RhdGVtZW50KmAgdGVybWluYXRlcyB0aGUgcHJvY2VzcyB3aXRo
IGEgMCBleGl0IGNvZGUsIGl0Ci0+IGlzICpub3QqIGNvbnNpZGVyZWQgYSBjcmFzaCBieSBgRVhQ
RUNUX0RFQVRIYC4gVXNlIGBFWFBFQ1RfRVhJVGAgaW5zdGVhZCBpZgotPiB0aGlzIGlzIHRoZSBj
YXNlLCBvciBpZiB5b3Ugd2FudCB0byByZXN0cmljdCB0aGUgZXhpdCBjb2RlIG1vcmUgcHJlY2lz
ZWx5LgotCi1BIHByZWRpY2F0ZSBoZXJlIG11c3QgYWNjZXB0IGFuIGBpbnRgIGFuZCByZXR1cm4g
YSBgYm9vbGAuIFRoZSBkZWF0aCB0ZXN0Ci1zdWNjZWVkcyBvbmx5IGlmIHRoZSBwcmVkaWNhdGUg
cmV0dXJucyBgdHJ1ZWAuIGdvb2dsZXRlc3QgZGVmaW5lcyBhIGZldwotcHJlZGljYXRlcyB0aGF0
IGhhbmRsZSB0aGUgbW9zdCBjb21tb24gY2FzZXM6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpFeGl0
ZWRXaXRoQ29kZShleGl0X2NvZGUpCi1gYGAKLQotVGhpcyBleHByZXNzaW9uIGlzIGB0cnVlYCBp
ZiB0aGUgcHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHkgd2l0aCB0aGUgZ2l2ZW4gZXhpdAotY29kZS4K
LQotYGBgYysrCi06OnRlc3Rpbmc6OktpbGxlZEJ5U2lnbmFsKHNpZ25hbF9udW1iZXIpICAvLyBO
b3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuCi1gYGAKLQotVGhpcyBleHByZXNzaW9uIGlzIGB0cnVl
YCBpZiB0aGUgcHJvZ3JhbSB3YXMga2lsbGVkIGJ5IHRoZSBnaXZlbiBzaWduYWwuCi0KLVRoZSBg
Kl9ERUFUSGAgbWFjcm9zIGFyZSBjb252ZW5pZW50IHdyYXBwZXJzIGZvciBgKl9FWElUYCB0aGF0
IHVzZSBhIHByZWRpY2F0ZQotdGhhdCB2ZXJpZmllcyB0aGUgcHJvY2VzcycgZXhpdCBjb2RlIGlz
IG5vbi16ZXJvLgotCi1Ob3RlIHRoYXQgYSBkZWF0aCB0ZXN0IG9ubHkgY2FyZXMgYWJvdXQgdGhy
ZWUgdGhpbmdzOgotCi0xLiAgZG9lcyBgc3RhdGVtZW50YCBhYm9ydCBvciBleGl0IHRoZSBwcm9j
ZXNzPwotMi4gIChpbiB0aGUgY2FzZSBvZiBgQVNTRVJUX0VYSVRgIGFuZCBgRVhQRUNUX0VYSVRg
KSBkb2VzIHRoZSBleGl0IHN0YXR1cwotICAgIHNhdGlzZnkgYHByZWRpY2F0ZWA/IE9yIChpbiB0
aGUgY2FzZSBvZiBgQVNTRVJUX0RFQVRIYCBhbmQgYEVYUEVDVF9ERUFUSGApCi0gICAgaXMgdGhl
IGV4aXQgc3RhdHVzIG5vbi16ZXJvPyBBbmQKLTMuICBkb2VzIHRoZSBzdGRlcnIgb3V0cHV0IG1h
dGNoIGByZWdleGA/Ci0KLUluIHBhcnRpY3VsYXIsIGlmIGBzdGF0ZW1lbnRgIGdlbmVyYXRlcyBh
biBgQVNTRVJUXypgIG9yIGBFWFBFQ1RfKmAgZmFpbHVyZSwgaXQKLXdpbGwgKipub3QqKiBjYXVz
ZSB0aGUgZGVhdGggdGVzdCB0byBmYWlsLCBhcyBnb29nbGV0ZXN0IGFzc2VydGlvbnMgZG9uJ3Qg
YWJvcnQKLXRoZSBwcm9jZXNzLgotCi1UbyB3cml0ZSBhIGRlYXRoIHRlc3QsIHNpbXBseSB1c2Ug
b25lIG9mIHRoZSBhYm92ZSBtYWNyb3MgaW5zaWRlIHlvdXIgdGVzdAotZnVuY3Rpb24uIEZvciBl
eGFtcGxlLAotCi1gYGBjKysKLVRFU1QoTXlEZWF0aFRlc3QsIEZvbykgewotICAvLyBUaGlzIGRl
YXRoIHRlc3QgdXNlcyBhIGNvbXBvdW5kIHN0YXRlbWVudC4KLSAgQVNTRVJUX0RFQVRIKHsKLSAg
ICBpbnQgbiA9IDU7Ci0gICAgRm9vKCZuKTsKLSAgfSwgIkVycm9yIG9uIGxpbmUgLiogb2YgRm9v
KCkiKTsKLX0KLQotVEVTVChNeURlYXRoVGVzdCwgTm9ybWFsRXhpdCkgewotICBFWFBFQ1RfRVhJ
VChOb3JtYWxFeGl0KCksIDo6dGVzdGluZzo6RXhpdGVkV2l0aENvZGUoMCksICJTdWNjZXNzIik7
Ci19Ci0KLVRFU1QoTXlEZWF0aFRlc3QsIEtpbGxNeXNlbGYpIHsKLSAgRVhQRUNUX0VYSVQoS2ls
bE15c2VsZigpLCA6OnRlc3Rpbmc6OktpbGxlZEJ5U2lnbmFsKFNJR0tJTEwpLAotICAgICAgICAg
ICAgICAiU2VuZGluZyBteXNlbGYgdW5ibG9ja2FibGUgc2lnbmFsIik7Ci19Ci1gYGAKLQotdmVy
aWZpZXMgdGhhdDoKLQotKiAgIGNhbGxpbmcgYEZvbyg1KWAgY2F1c2VzIHRoZSBwcm9jZXNzIHRv
IGRpZSB3aXRoIHRoZSBnaXZlbiBlcnJvciBtZXNzYWdlLAotKiAgIGNhbGxpbmcgYE5vcm1hbEV4
aXQoKWAgY2F1c2VzIHRoZSBwcm9jZXNzIHRvIHByaW50IGAiU3VjY2VzcyJgIHRvIHN0ZGVyciBh
bmQKLSAgICBleGl0IHdpdGggZXhpdCBjb2RlIDAsIGFuZAotKiAgIGNhbGxpbmcgYEtpbGxNeXNl
bGYoKWAga2lsbHMgdGhlIHByb2Nlc3Mgd2l0aCBzaWduYWwgYFNJR0tJTExgLgotCi1UaGUgdGVz
dCBmdW5jdGlvbiBib2R5IG1heSBjb250YWluIG90aGVyIGFzc2VydGlvbnMgYW5kIHN0YXRlbWVu
dHMgYXMgd2VsbCwgaWYKLW5lY2Vzc2FyeS4KLQotIyMjIERlYXRoIFRlc3QgTmFtaW5nCi0KLUlN
UE9SVEFOVDogV2Ugc3Ryb25nbHkgcmVjb21tZW5kIHlvdSB0byBmb2xsb3cgdGhlIGNvbnZlbnRp
b24gb2YgbmFtaW5nIHlvdXIKLSoqdGVzdCBjYXNlKiogKG5vdCB0ZXN0KSBgKkRlYXRoVGVzdGAg
d2hlbiBpdCBjb250YWlucyBhIGRlYXRoIHRlc3QsIGFzCi1kZW1vbnN0cmF0ZWQgaW4gdGhlIGFi
b3ZlIGV4YW1wbGUuIFRoZSBbRGVhdGggVGVzdHMgQW5kCi1UaHJlYWRzXSgjZGVhdGgtdGVzdHMt
YW5kLXRocmVhZHMpIHNlY3Rpb24gYmVsb3cgZXhwbGFpbnMgd2h5LgotCi1JZiBhIHRlc3QgZml4
dHVyZSBjbGFzcyBpcyBzaGFyZWQgYnkgbm9ybWFsIHRlc3RzIGFuZCBkZWF0aCB0ZXN0cywgeW91
IGNhbiB1c2UKLWB1c2luZ2Agb3IgYHR5cGVkZWZgIHRvIGludHJvZHVjZSBhbiBhbGlhcyBmb3Ig
dGhlIGZpeHR1cmUgY2xhc3MgYW5kIGF2b2lkCi1kdXBsaWNhdGluZyBpdHMgY29kZToKLQotYGBg
YysrCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7IC4uLiB9OwotCi11
c2luZyBGb29EZWF0aFRlc3QgPSBGb29UZXN0OwotCi1URVNUX0YoRm9vVGVzdCwgRG9lc1RoaXMp
IHsKLSAgLy8gbm9ybWFsIHRlc3QKLX0KLQotVEVTVF9GKEZvb0RlYXRoVGVzdCwgRG9lc1RoYXQp
IHsKLSAgLy8gZGVhdGggdGVzdAotfQotYGBgCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBX
aW5kb3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIEN5Z3dpbiwgYW5kIE1hYwotCi0j
IyMgUmVndWxhciBFeHByZXNzaW9uIFN5bnRheAotCi0KLU9uIFBPU0lYIHN5c3RlbXMgKGUuZy4g
TGludXgsIEN5Z3dpbiwgYW5kIE1hYyksIGdvb2dsZXRlc3QgdXNlcyB0aGUKLVtQT1NJWCBleHRl
bmRlZCByZWd1bGFyIGV4cHJlc3Npb25dKGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwOTY5NTM5OS9iYXNlZGVmcy94YmRfY2hhcDA5Lmh0bWwjdGFnXzA5XzA0KQotc3ludGF4
LiBUbyBsZWFybiBhYm91dCB0aGlzIHN5bnRheCwgeW91IG1heSB3YW50IHRvIHJlYWQgdGhpcwot
W1dpa2lwZWRpYSBlbnRyeV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZWd1bGFyX2V4
cHJlc3Npb24jUE9TSVhfRXh0ZW5kZWRfUmVndWxhcl9FeHByZXNzaW9ucykuCi0KLU9uIFdpbmRv
d3MsIGdvb2dsZXRlc3QgdXNlcyBpdHMgb3duIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Npb24gaW1w
bGVtZW50YXRpb24uIEl0Ci1sYWNrcyBtYW55IGZlYXR1cmVzLiBGb3IgZXhhbXBsZSwgd2UgZG9u
J3Qgc3VwcG9ydCB1bmlvbiAoYCJ4fHkiYCksIGdyb3VwaW5nCi0oYCIoeHkpImApLCBicmFja2V0
cyAoYCJbeHldImApLCBhbmQgcmVwZXRpdGlvbiBjb3VudCAoYCJ4ezUsN30iYCksIGFtb25nCi1v
dGhlcnMuIEJlbG93IGlzIHdoYXQgd2UgZG8gc3VwcG9ydCAoYEFgIGRlbm90ZXMgYSBsaXRlcmFs
IGNoYXJhY3RlciwgcGVyaW9kCi0oYC5gKSwgb3IgYSBzaW5nbGUgYFxcIGAgZXNjYXBlIHNlcXVl
bmNlOyBgeGAgYW5kIGB5YCBkZW5vdGUgcmVndWxhcgotZXhwcmVzc2lvbnMuKToKLQotRXhwcmVz
c2lvbiB8IE1lYW5pbmcKLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotYGNgICAgICAgICB8IG1hdGNoZXMg
YW55IGxpdGVyYWwgY2hhcmFjdGVyIGBjYAotYFxcZGAgICAgICB8IG1hdGNoZXMgYW55IGRlY2lt
YWwgZGlnaXQKLWBcXERgICAgICAgfCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgdGhhdCdzIG5vdCBh
IGRlY2ltYWwgZGlnaXQKLWBcXGZgICAgICAgfCBtYXRjaGVzIGBcZmAKLWBcXG5gICAgICAgfCBt
YXRjaGVzIGBcbmAKLWBcXHJgICAgICAgfCBtYXRjaGVzIGBccmAKLWBcXHNgICAgICAgfCBtYXRj
aGVzIGFueSBBU0NJSSB3aGl0ZXNwYWNlLCBpbmNsdWRpbmcgYFxuYAotYFxcU2AgICAgICB8IG1h
dGNoZXMgYW55IGNoYXJhY3RlciB0aGF0J3Mgbm90IGEgd2hpdGVzcGFjZQotYFxcdGAgICAgICB8
IG1hdGNoZXMgYFx0YAotYFxcdmAgICAgICB8IG1hdGNoZXMgYFx2YAotYFxcd2AgICAgICB8IG1h
dGNoZXMgYW55IGxldHRlciwgYF9gLCBvciBkZWNpbWFsIGRpZ2l0Ci1gXFxXYCAgICAgIHwgbWF0
Y2hlcyBhbnkgY2hhcmFjdGVyIHRoYXQgYFxcd2AgZG9lc24ndCBtYXRjaAotYFxcY2AgICAgICB8
IG1hdGNoZXMgYW55IGxpdGVyYWwgY2hhcmFjdGVyIGBjYCwgd2hpY2ggbXVzdCBiZSBhIHB1bmN0
dWF0aW9uCi1gLmAgICAgICAgIHwgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciBleGNlcHQg
YFxuYAotYEE/YCAgICAgICB8IG1hdGNoZXMgMCBvciAxIG9jY3VycmVuY2VzIG9mIGBBYAotYEEq
YCAgICAgICB8IG1hdGNoZXMgMCBvciBtYW55IG9jY3VycmVuY2VzIG9mIGBBYAotYEErYCAgICAg
ICB8IG1hdGNoZXMgMSBvciBtYW55IG9jY3VycmVuY2VzIG9mIGBBYAotYF5gICAgICAgICB8IG1h
dGNoZXMgdGhlIGJlZ2lubmluZyBvZiBhIHN0cmluZyAobm90IHRoYXQgb2YgZWFjaCBsaW5lKQot
YCRgICAgICAgICB8IG1hdGNoZXMgdGhlIGVuZCBvZiBhIHN0cmluZyAobm90IHRoYXQgb2YgZWFj
aCBsaW5lKQotYHh5YCAgICAgICB8IG1hdGNoZXMgYHhgIGZvbGxvd2VkIGJ5IGB5YAotCi1UbyBo
ZWxwIHlvdSBkZXRlcm1pbmUgd2hpY2ggY2FwYWJpbGl0eSBpcyBhdmFpbGFibGUgb24geW91ciBz
eXN0ZW0sIGdvb2dsZXRlc3QKLWRlZmluZXMgbWFjcm9zIHRvIGdvdmVybiB3aGljaCByZWd1bGFy
IGV4cHJlc3Npb24gaXQgaXMgdXNpbmcuIFRoZSBtYWNyb3MgYXJlOgotPCEtLWFic2w6Z29vZ2xl
My1iZWdpbihnb29nbGUzLW9ubHkpLS0+YEdURVNUX1VTRVNfUENSRT0xYCwgb3IKLTwhLS1hYnNs
Omdvb2dsZTMtZW5kLS0+IGBHVEVTVF9VU0VTX1NJTVBMRV9SRT0xYCBvciBgR1RFU1RfVVNFU19Q
T1NJWF9SRT0xYC4gSWYKLXlvdSB3YW50IHlvdXIgZGVhdGggdGVzdHMgdG8gd29yayBpbiBhbGwg
Y2FzZXMsIHlvdSBjYW4gZWl0aGVyIGAjaWZgIG9uIHRoZXNlCi1tYWNyb3Mgb3IgdXNlIHRoZSBt
b3JlIGxpbWl0ZWQgc3ludGF4IG9ubHkuCi0KLSMjIyBIb3cgSXQgV29ya3MKLQotVW5kZXIgdGhl
IGhvb2QsIGBBU1NFUlRfRVhJVCgpYCBzcGF3bnMgYSBuZXcgcHJvY2VzcyBhbmQgZXhlY3V0ZXMg
dGhlIGRlYXRoIHRlc3QKLXN0YXRlbWVudCBpbiB0aGF0IHByb2Nlc3MuIFRoZSBkZXRhaWxzIG9m
IGhvdyBwcmVjaXNlbHkgdGhhdCBoYXBwZW5zIGRlcGVuZCBvbgotdGhlIHBsYXRmb3JtIGFuZCB0
aGUgdmFyaWFibGUgOjp0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpICh3aGlj
aCBpcwotaW5pdGlhbGl6ZWQgZnJvbSB0aGUgY29tbWFuZC1saW5lIGZsYWcgYC0tZ3Rlc3RfZGVh
dGhfdGVzdF9zdHlsZWApLgotCi0qICAgT24gUE9TSVggc3lzdGVtcywgYGZvcmsoKWAgKG9yIGBj
bG9uZSgpYCBvbiBMaW51eCkgaXMgdXNlZCB0byBzcGF3biB0aGUKLSAgICBjaGlsZCwgYWZ0ZXIg
d2hpY2g6Ci0gICAgKiAgIElmIHRoZSB2YXJpYWJsZSdzIHZhbHVlIGlzIGAiZmFzdCJgLCB0aGUg
ZGVhdGggdGVzdCBzdGF0ZW1lbnQgaXMKLSAgICAgICAgaW1tZWRpYXRlbHkgZXhlY3V0ZWQuCi0g
ICAgKiAgIElmIHRoZSB2YXJpYWJsZSdzIHZhbHVlIGlzIGAidGhyZWFkc2FmZSJgLCB0aGUgY2hp
bGQgcHJvY2VzcyByZS1leGVjdXRlcwotICAgICAgICB0aGUgdW5pdCB0ZXN0IGJpbmFyeSBqdXN0
IGFzIGl0IHdhcyBvcmlnaW5hbGx5IGludm9rZWQsIGJ1dCB3aXRoIHNvbWUKLSAgICAgICAgZXh0
cmEgZmxhZ3MgdG8gY2F1c2UganVzdCB0aGUgc2luZ2xlIGRlYXRoIHRlc3QgdW5kZXIgY29uc2lk
ZXJhdGlvbiB0bwotICAgICAgICBiZSBydW4uCi0qICAgT24gV2luZG93cywgdGhlIGNoaWxkIGlz
IHNwYXduZWQgdXNpbmcgdGhlIGBDcmVhdGVQcm9jZXNzKClgIEFQSSwgYW5kCi0gICAgcmUtZXhl
Y3V0ZXMgdGhlIGJpbmFyeSB0byBjYXVzZSBqdXN0IHRoZSBzaW5nbGUgZGVhdGggdGVzdCB1bmRl
cgotICAgIGNvbnNpZGVyYXRpb24gdG8gYmUgcnVuIC0gbXVjaCBsaWtlIHRoZSBgdGhyZWFkc2Fm
ZWAgbW9kZSBvbiBQT1NJWC4KLQotT3RoZXIgdmFsdWVzIGZvciB0aGUgdmFyaWFibGUgYXJlIGls
bGVnYWwgYW5kIHdpbGwgY2F1c2UgdGhlIGRlYXRoIHRlc3QgdG8gZmFpbC4KLUN1cnJlbnRseSwg
dGhlIGZsYWcncyBkZWZhdWx0IHZhbHVlIGlzCi0iZmFzdCIuIEhvd2V2ZXIsIHdlIHJlc2VydmUK
LXRoZSByaWdodCB0byBjaGFuZ2UgaXQgaW4gdGhlIGZ1dHVyZS4gVGhlcmVmb3JlLCB5b3VyIHRl
c3RzIHNob3VsZCBub3QgZGVwZW5kIG9uCi10aGlzLiBJbiBlaXRoZXIgY2FzZSwgdGhlIHBhcmVu
dCBwcm9jZXNzIHdhaXRzIGZvciB0aGUgY2hpbGQgcHJvY2VzcyB0bwotY29tcGxldGUsIGFuZCBj
aGVja3MgdGhhdAotCi0xLiAgdGhlIGNoaWxkJ3MgZXhpdCBzdGF0dXMgc2F0aXNmaWVzIHRoZSBw
cmVkaWNhdGUsIGFuZAotMi4gIHRoZSBjaGlsZCdzIHN0ZGVyciBtYXRjaGVzIHRoZSByZWd1bGFy
IGV4cHJlc3Npb24uCi0KLUlmIHRoZSBkZWF0aCB0ZXN0IHN0YXRlbWVudCBydW5zIHRvIGNvbXBs
ZXRpb24gd2l0aG91dCBkeWluZywgdGhlIGNoaWxkIHByb2Nlc3MKLXdpbGwgbm9uZXRoZWxlc3Mg
dGVybWluYXRlLCBhbmQgdGhlIGFzc2VydGlvbiBmYWlscy4KLQotIyMjIERlYXRoIFRlc3RzIEFu
ZCBUaHJlYWRzCi0KLVRoZSByZWFzb24gZm9yIHRoZSB0d28gZGVhdGggdGVzdCBzdHlsZXMgaGFz
IHRvIGRvIHdpdGggdGhyZWFkIHNhZmV0eS4gRHVlIHRvCi13ZWxsLWtub3duIHByb2JsZW1zIHdp
dGggZm9ya2luZyBpbiB0aGUgcHJlc2VuY2Ugb2YgdGhyZWFkcywgZGVhdGggdGVzdHMgc2hvdWxk
Ci1iZSBydW4gaW4gYSBzaW5nbGUtdGhyZWFkZWQgY29udGV4dC4gU29tZXRpbWVzLCBob3dldmVy
LCBpdCBpc24ndCBmZWFzaWJsZSB0bwotYXJyYW5nZSB0aGF0IGtpbmQgb2YgZW52aXJvbm1lbnQu
IEZvciBleGFtcGxlLCBzdGF0aWNhbGx5LWluaXRpYWxpemVkIG1vZHVsZXMKLW1heSBzdGFydCB0
aHJlYWRzIGJlZm9yZSBtYWluIGlzIGV2ZXIgcmVhY2hlZC4gT25jZSB0aHJlYWRzIGhhdmUgYmVl
biBjcmVhdGVkLAotaXQgbWF5IGJlIGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlIHRvIGNsZWFuIHRo
ZW0gdXAuCi0KLWdvb2dsZXRlc3QgaGFzIHRocmVlIGZlYXR1cmVzIGludGVuZGVkIHRvIHJhaXNl
IGF3YXJlbmVzcyBvZiB0aHJlYWRpbmcgaXNzdWVzLgotCi0xLiAgQSB3YXJuaW5nIGlzIGVtaXR0
ZWQgaWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUgcnVubmluZyB3aGVuIGEgZGVhdGggdGVzdCBpcwot
ICAgIGVuY291bnRlcmVkLgotMi4gIFRlc3QgY2FzZXMgd2l0aCBhIG5hbWUgZW5kaW5nIGluICJE
ZWF0aFRlc3QiIGFyZSBydW4gYmVmb3JlIGFsbCBvdGhlciB0ZXN0cy4KLTMuICBJdCB1c2VzIGBj
bG9uZSgpYCBpbnN0ZWFkIG9mIGBmb3JrKClgIHRvIHNwYXduIHRoZSBjaGlsZCBwcm9jZXNzIG9u
IExpbnV4Ci0gICAgKGBjbG9uZSgpYCBpcyBub3QgYXZhaWxhYmxlIG9uIEN5Z3dpbiBhbmQgTWFj
KSwgYXMgYGZvcmsoKWAgaXMgbW9yZSBsaWtlbHkKLSAgICB0byBjYXVzZSB0aGUgY2hpbGQgdG8g
aGFuZyB3aGVuIHRoZSBwYXJlbnQgcHJvY2VzcyBoYXMgbXVsdGlwbGUgdGhyZWFkcy4KLQotSXQn
cyBwZXJmZWN0bHkgZmluZSB0byBjcmVhdGUgdGhyZWFkcyBpbnNpZGUgYSBkZWF0aCB0ZXN0IHN0
YXRlbWVudDsgdGhleSBhcmUKLWV4ZWN1dGVkIGluIGEgc2VwYXJhdGUgcHJvY2VzcyBhbmQgY2Fu
bm90IGFmZmVjdCB0aGUgcGFyZW50LgotCi0jIyMgRGVhdGggVGVzdCBTdHlsZXMKLQotCi1UaGUg
InRocmVhZHNhZmUiIGRlYXRoIHRlc3Qgc3R5bGUgd2FzIGludHJvZHVjZWQgaW4gb3JkZXIgdG8g
aGVscCBtaXRpZ2F0ZSB0aGUKLXJpc2tzIG9mIHRlc3RpbmcgaW4gYSBwb3NzaWJseSBtdWx0aXRo
cmVhZGVkIGVudmlyb25tZW50LiBJdCB0cmFkZXMgaW5jcmVhc2VkCi10ZXN0IGV4ZWN1dGlvbiB0
aW1lIChwb3RlbnRpYWxseSBkcmFtYXRpY2FsbHkgc28pIGZvciBpbXByb3ZlZCB0aHJlYWQgc2Fm
ZXR5LgotCi1UaGUgYXV0b21hdGVkIHRlc3RpbmcgZnJhbWV3b3JrIGRvZXMgbm90IHNldCB0aGUg
c3R5bGUgZmxhZy4gWW91IGNhbiBjaG9vc2UgYQotcGFydGljdWxhciBzdHlsZSBvZiBkZWF0aCB0
ZXN0cyBieSBzZXR0aW5nIHRoZSBmbGFnIHByb2dyYW1tYXRpY2FsbHk6Ci0KLWBgYGMrKwotdGVz
dGluZzo6RkxBR1NfZ3Rlc3RfZGVhdGhfdGVzdF9zdHlsZT0idGhyZWFkc2FmZSIKLWBgYAotCi1Z
b3UgY2FuIGRvIHRoaXMgaW4gYG1haW4oKWAgdG8gc2V0IHRoZSBzdHlsZSBmb3IgYWxsIGRlYXRo
IHRlc3RzIGluIHRoZSBiaW5hcnksCi1vciBpbiBpbmRpdmlkdWFsIHRlc3RzLiBSZWNhbGwgdGhh
dCBmbGFncyBhcmUgc2F2ZWQgYmVmb3JlIHJ1bm5pbmcgZWFjaCB0ZXN0IGFuZAotcmVzdG9yZWQg
YWZ0ZXJ3YXJkcywgc28geW91IG5lZWQgbm90IGRvIHRoYXQgeW91cnNlbGYuIEZvciBleGFtcGxl
OgotCi1gYGBjKysKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewotICBJbml0R29v
Z2xlKGFyZ3ZbMF0sICZhcmdjLCAmYXJndiwgdHJ1ZSk7Ci0gIDo6dGVzdGluZzo6RkxBR1NfZ3Rl
c3RfZGVhdGhfdGVzdF9zdHlsZSA9ICJmYXN0IjsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsK
LX0KLQotVEVTVChNeURlYXRoVGVzdCwgVGVzdE9uZSkgewotICA6OnRlc3Rpbmc6OkZMQUdTX2d0
ZXN0X2RlYXRoX3Rlc3Rfc3R5bGUgPSAidGhyZWFkc2FmZSI7Ci0gIC8vIFRoaXMgdGVzdCBpcyBy
dW4gaW4gdGhlICJ0aHJlYWRzYWZlIiBzdHlsZToKLSAgQVNTRVJUX0RFQVRIKFRoaXNTaG91bGRE
aWUoKSwgIiIpOwotfQotCi1URVNUKE15RGVhdGhUZXN0LCBUZXN0VHdvKSB7Ci0gIC8vIFRoaXMg
dGVzdCBpcyBydW4gaW4gdGhlICJmYXN0IiBzdHlsZToKLSAgQVNTRVJUX0RFQVRIKFRoaXNTaG91
bGREaWUoKSwgIiIpOwotfQotYGBgCi0KLQotIyMjIENhdmVhdHMKLQotVGhlIGBzdGF0ZW1lbnRg
IGFyZ3VtZW50IG9mIGBBU1NFUlRfRVhJVCgpYCBjYW4gYmUgYW55IHZhbGlkIEMrKyBzdGF0ZW1l
bnQuIElmCi1pdCBsZWF2ZXMgdGhlIGN1cnJlbnQgZnVuY3Rpb24gdmlhIGEgYHJldHVybmAgc3Rh
dGVtZW50IG9yIGJ5IHRocm93aW5nIGFuCi1leGNlcHRpb24sIHRoZSBkZWF0aCB0ZXN0IGlzIGNv
bnNpZGVyZWQgdG8gaGF2ZSBmYWlsZWQuIFNvbWUgZ29vZ2xldGVzdCBtYWNyb3MKLW1heSByZXR1
cm4gZnJvbSB0aGUgY3VycmVudCBmdW5jdGlvbiAoZS5nLiBgQVNTRVJUX1RSVUUoKWApLCBzbyBi
ZSBzdXJlIHRvIGF2b2lkCi10aGVtIGluIGBzdGF0ZW1lbnRgLgotCi1TaW5jZSBgc3RhdGVtZW50
YCBydW5zIGluIHRoZSBjaGlsZCBwcm9jZXNzLCBhbnkgaW4tbWVtb3J5IHNpZGUgZWZmZWN0IChl
LmcuCi1tb2RpZnlpbmcgYSB2YXJpYWJsZSwgcmVsZWFzaW5nIG1lbW9yeSwgZXRjKSBpdCBjYXVz
ZXMgd2lsbCAqbm90KiBiZSBvYnNlcnZhYmxlCi1pbiB0aGUgcGFyZW50IHByb2Nlc3MuIEluIHBh
cnRpY3VsYXIsIGlmIHlvdSByZWxlYXNlIG1lbW9yeSBpbiBhIGRlYXRoIHRlc3QsCi15b3VyIHBy
b2dyYW0gd2lsbCBmYWlsIHRoZSBoZWFwIGNoZWNrIGFzIHRoZSBwYXJlbnQgcHJvY2VzcyB3aWxs
IG5ldmVyIHNlZSB0aGUKLW1lbW9yeSByZWNsYWltZWQuIFRvIHNvbHZlIHRoaXMgcHJvYmxlbSwg
eW91IGNhbgotCi0xLiAgdHJ5IG5vdCB0byBmcmVlIG1lbW9yeSBpbiBhIGRlYXRoIHRlc3Q7Ci0y
LiAgZnJlZSB0aGUgbWVtb3J5IGFnYWluIGluIHRoZSBwYXJlbnQgcHJvY2Vzczsgb3IKLTMuICBk
byBub3QgdXNlIHRoZSBoZWFwIGNoZWNrZXIgaW4geW91ciBwcm9ncmFtLgotCi1EdWUgdG8gYW4g
aW1wbGVtZW50YXRpb24gZGV0YWlsLCB5b3UgY2Fubm90IHBsYWNlIG11bHRpcGxlIGRlYXRoIHRl
c3QgYXNzZXJ0aW9ucwotb24gdGhlIHNhbWUgbGluZTsgb3RoZXJ3aXNlLCBjb21waWxhdGlvbiB3
aWxsIGZhaWwgd2l0aCBhbiB1bm9idmlvdXMgZXJyb3IKLW1lc3NhZ2UuCi0KLURlc3BpdGUgdGhl
IGltcHJvdmVkIHRocmVhZCBzYWZldHkgYWZmb3JkZWQgYnkgdGhlICJ0aHJlYWRzYWZlIiBzdHls
ZSBvZiBkZWF0aAotdGVzdCwgdGhyZWFkIHByb2JsZW1zIHN1Y2ggYXMgZGVhZGxvY2sgYXJlIHN0
aWxsIHBvc3NpYmxlIGluIHRoZSBwcmVzZW5jZSBvZgotaGFuZGxlcnMgcmVnaXN0ZXJlZCB3aXRo
IGBwdGhyZWFkX2F0Zm9yaygzKWAuCi0KLQotIyMgVXNpbmcgQXNzZXJ0aW9ucyBpbiBTdWItcm91
dGluZXMKLQotIyMjIEFkZGluZyBUcmFjZXMgdG8gQXNzZXJ0aW9ucwotCi1JZiBhIHRlc3Qgc3Vi
LXJvdXRpbmUgaXMgY2FsbGVkIGZyb20gc2V2ZXJhbCBwbGFjZXMsIHdoZW4gYW4gYXNzZXJ0aW9u
IGluc2lkZSBpdAotZmFpbHMsIGl0IGNhbiBiZSBoYXJkIHRvIHRlbGwgd2hpY2ggaW52b2NhdGlv
biBvZiB0aGUgc3ViLXJvdXRpbmUgdGhlIGZhaWx1cmUgaXMKLWZyb20uIAotWW91IGNhbiBhbGxl
dmlhdGUgdGhpcyBwcm9ibGVtIHVzaW5nIGV4dHJhIGxvZ2dpbmcgb3IgY3VzdG9tIGZhaWx1cmUg
bWVzc2FnZXMsCi1idXQgdGhhdCB1c3VhbGx5IGNsdXR0ZXJzIHVwIHlvdXIgdGVzdHMuIEEgYmV0
dGVyIHNvbHV0aW9uIGlzIHRvIHVzZSB0aGUKLWBTQ09QRURfVFJBQ0VgIG1hY3JvIG9yIHRoZSBg
U2NvcGVkVHJhY2VgIHV0aWxpdHk6Ci0KLWBgYGMrKwotU0NPUEVEX1RSQUNFKG1lc3NhZ2UpOwot
U2NvcGVkVHJhY2UgdHJhY2UoImZpbGVfcGF0aCIsIGxpbmVfbnVtYmVyLCBtZXNzYWdlKTsKLWBg
YAotCi13aGVyZSBgbWVzc2FnZWAgY2FuIGJlIGFueXRoaW5nIHN0cmVhbWFibGUgdG8gYHN0ZDo6
b3N0cmVhbWAuIGBTQ09QRURfVFJBQ0VgCi1tYWNybyB3aWxsIGNhdXNlIHRoZSBjdXJyZW50IGZp
bGUgbmFtZSwgbGluZSBudW1iZXIsIGFuZCB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiZQotYWRkZWQg
aW4gZXZlcnkgZmFpbHVyZSBtZXNzYWdlLiBgU2NvcGVkVHJhY2VgIGFjY2VwdHMgZXhwbGljaXQg
ZmlsZSBuYW1lIGFuZAotbGluZSBudW1iZXIgaW4gYXJndW1lbnRzLCB3aGljaCBpcyB1c2VmdWwg
Zm9yIHdyaXRpbmcgdGVzdCBoZWxwZXJzLiBUaGUgZWZmZWN0Ci13aWxsIGJlIHVuZG9uZSB3aGVu
IHRoZSBjb250cm9sIGxlYXZlcyB0aGUgY3VycmVudCBsZXhpY2FsIHNjb3BlLgotCi1Gb3IgZXhh
bXBsZSwKLQotYGBgYysrCi0xMDogdm9pZCBTdWIxKGludCBuKSB7Ci0xMTogICBFWFBFQ1RfRVEo
MSwgQmFyKG4pKTsKLTEyOiAgIEVYUEVDVF9FUSgyLCBCYXIobiArIDEpKTsKLTEzOiB9Ci0xNDoK
LTE1OiBURVNUKEZvb1Rlc3QsIEJhcikgewotMTY6ICAgewotMTc6ICAgICBTQ09QRURfVFJBQ0Uo
IkEiKTsgIC8vIFRoaXMgdHJhY2UgcG9pbnQgd2lsbCBiZSBpbmNsdWRlZCBpbgotMTg6ICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGV2ZXJ5IGZhaWx1cmUgaW4gdGhpcyBzY29wZS4KLTE5OiAg
ICAgU3ViMSgxKTsKLTIwOiAgIH0KLTIxOiAgIC8vIE5vdyBpdCB3b24ndC4KLTIyOiAgIFN1YjEo
OSk7Ci0yMzogfQotYGBgCi0KLWNvdWxkIHJlc3VsdCBpbiBtZXNzYWdlcyBsaWtlIHRoZXNlOgot
Ci1gYGBub25lCi1wYXRoL3RvL2Zvb190ZXN0LmNjOjExOiBGYWlsdXJlCi1WYWx1ZSBvZjogQmFy
KG4pCi1FeHBlY3RlZDogMQotICBBY3R1YWw6IDIKLSAgIFRyYWNlOgotcGF0aC90by9mb29fdGVz
dC5jYzoxNzogQQotCi1wYXRoL3RvL2Zvb190ZXN0LmNjOjEyOiBGYWlsdXJlCi1WYWx1ZSBvZjog
QmFyKG4gKyAxKQotRXhwZWN0ZWQ6IDIKLSAgQWN0dWFsOiAzCi1gYGAKLQotV2l0aG91dCB0aGUg
dHJhY2UsIGl0IHdvdWxkJ3ZlIGJlZW4gZGlmZmljdWx0IHRvIGtub3cgd2hpY2ggaW52b2NhdGlv
biBvZgotYFN1YjEoKWAgdGhlIHR3byBmYWlsdXJlcyBjb21lIGZyb20gcmVzcGVjdGl2ZWx5LiAo
WW91IGNvdWxkIGFkZAotCi1hbiBleHRyYSBtZXNzYWdlIHRvIGVhY2ggYXNzZXJ0aW9uIGluIGBT
dWIxKClgIHRvIGluZGljYXRlIHRoZSB2YWx1ZSBvZiBgbmAsIGJ1dAotdGhhdCdzIHRlZGlvdXMu
KQotCi1Tb21lIHRpcHMgb24gdXNpbmcgYFNDT1BFRF9UUkFDRWA6Ci0KLTEuICBXaXRoIGEgc3Vp
dGFibGUgbWVzc2FnZSwgaXQncyBvZnRlbiBlbm91Z2ggdG8gdXNlIGBTQ09QRURfVFJBQ0VgIGF0
IHRoZQotICAgIGJlZ2lubmluZyBvZiBhIHN1Yi1yb3V0aW5lLCBpbnN0ZWFkIG9mIGF0IGVhY2gg
Y2FsbCBzaXRlLgotMi4gIFdoZW4gY2FsbGluZyBzdWItcm91dGluZXMgaW5zaWRlIGEgbG9vcCwg
bWFrZSB0aGUgbG9vcCBpdGVyYXRvciBwYXJ0IG9mIHRoZQotICAgIG1lc3NhZ2UgaW4gYFNDT1BF
RF9UUkFDRWAgc3VjaCB0aGF0IHlvdSBjYW4ga25vdyB3aGljaCBpdGVyYXRpb24gdGhlIGZhaWx1
cmUKLSAgICBpcyBmcm9tLgotMy4gIFNvbWV0aW1lcyB0aGUgbGluZSBudW1iZXIgb2YgdGhlIHRy
YWNlIHBvaW50IGlzIGVub3VnaCBmb3IgaWRlbnRpZnlpbmcgdGhlCi0gICAgcGFydGljdWxhciBp
bnZvY2F0aW9uIG9mIGEgc3ViLXJvdXRpbmUuIEluIHRoaXMgY2FzZSwgeW91IGRvbid0IGhhdmUg
dG8KLSAgICBjaG9vc2UgYSB1bmlxdWUgbWVzc2FnZSBmb3IgYFNDT1BFRF9UUkFDRWAuIFlvdSBj
YW4gc2ltcGx5IHVzZSBgIiJgLgotNC4gIFlvdSBjYW4gdXNlIGBTQ09QRURfVFJBQ0VgIGluIGFu
IGlubmVyIHNjb3BlIHdoZW4gdGhlcmUgaXMgb25lIGluIHRoZSBvdXRlcgotICAgIHNjb3BlLiBJ
biB0aGlzIGNhc2UsIGFsbCBhY3RpdmUgdHJhY2UgcG9pbnRzIHdpbGwgYmUgaW5jbHVkZWQgaW4g
dGhlIGZhaWx1cmUKLSAgICBtZXNzYWdlcywgaW4gcmV2ZXJzZSBvcmRlciB0aGV5IGFyZSBlbmNv
dW50ZXJlZC4KLTUuICBUaGUgdHJhY2UgZHVtcCBpcyBjbGlja2FibGUgaW4gRW1hY3MgLSBoaXQg
YHJldHVybmAgb24gYSBsaW5lIG51bWJlciBhbmQKLSAgICB5b3UnbGwgYmUgdGFrZW4gdG8gdGhh
dCBsaW5lIGluIHRoZSBzb3VyY2UgZmlsZSEKLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdp
bmRvd3MsIE1hYy4KLQotIyMjIFByb3BhZ2F0aW5nIEZhdGFsIEZhaWx1cmVzCi0KLUEgY29tbW9u
IHBpdGZhbGwgd2hlbiB1c2luZyBgQVNTRVJUXypgIGFuZCBgRkFJTCpgIGlzIG5vdCB1bmRlcnN0
YW5kaW5nIHRoYXQKLXdoZW4gdGhleSBmYWlsIHRoZXkgb25seSBhYm9ydCB0aGUgX2N1cnJlbnQg
ZnVuY3Rpb25fLCBub3QgdGhlIGVudGlyZSB0ZXN0LiBGb3IKLWV4YW1wbGUsIHRoZSBmb2xsb3dp
bmcgdGVzdCB3aWxsIHNlZ2ZhdWx0OgotCi1gYGBjKysKLXZvaWQgU3Vicm91dGluZSgpIHsKLSAg
Ly8gR2VuZXJhdGVzIGEgZmF0YWwgZmFpbHVyZSBhbmQgYWJvcnRzIHRoZSBjdXJyZW50IGZ1bmN0
aW9uLgotICBBU1NFUlRfRVEoMSwgMik7Ci0KLSAgLy8gVGhlIGZvbGxvd2luZyB3b24ndCBiZSBl
eGVjdXRlZC4KLSAgLi4uCi19Ci0KLVRFU1QoRm9vVGVzdCwgQmFyKSB7Ci0gIFN1YnJvdXRpbmUo
KTsgIC8vIFRoZSBpbnRlbmRlZCBiZWhhdmlvciBpcyBmb3IgdGhlIGZhdGFsIGZhaWx1cmUKLSAg
ICAgICAgICAgICAgICAgLy8gaW4gU3Vicm91dGluZSgpIHRvIGFib3J0IHRoZSBlbnRpcmUgdGVz
dC4KLQotICAvLyBUaGUgYWN0dWFsIGJlaGF2aW9yOiB0aGUgZnVuY3Rpb24gZ29lcyBvbiBhZnRl
ciBTdWJyb3V0aW5lKCkgcmV0dXJucy4KLSAgaW50KiBwID0gTlVMTDsKLSAgKnAgPSAzOyAgLy8g
U2VnZmF1bHQhCi19Ci1gYGAKLQotVG8gYWxsZXZpYXRlIHRoaXMsIGdvb2dsZXRlc3QgcHJvdmlk
ZXMgdGhyZWUgZGlmZmVyZW50IHNvbHV0aW9ucy4gWW91IGNvdWxkIHVzZQotZWl0aGVyIGV4Y2Vw
dGlvbnMsIHRoZSBgKEFTU0VSVHxFWFBFQ1QpX05PX0ZBVEFMX0ZBSUxVUkVgIGFzc2VydGlvbnMg
b3IgdGhlCi1gSGFzRmF0YWxGYWlsdXJlKClgIGZ1bmN0aW9uLiBUaGV5IGFyZSBkZXNjcmliZWQg
aW4gdGhlIGZvbGxvd2luZyB0d28KLXN1YnNlY3Rpb25zLgotCi0jIyMjIEFzc2VydGluZyBvbiBT
dWJyb3V0aW5lcyB3aXRoIGFuIGV4Y2VwdGlvbgotCi1UaGUgZm9sbG93aW5nIGNvZGUgY2FuIHR1
cm4gQVNTRVJULWZhaWx1cmUgaW50byBhbiBleGNlcHRpb246Ci0KLWBgYGMrKwotY2xhc3MgVGhy
b3dMaXN0ZW5lciA6IHB1YmxpYyB0ZXN0aW5nOjpFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKLSAg
dm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IHRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0JiByZXN1
bHQpIG92ZXJyaWRlIHsKLSAgICBpZiAocmVzdWx0LnR5cGUoKSA9PSB0ZXN0aW5nOjpUZXN0UGFy
dFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSkgewotICAgICAgdGhyb3cgdGVzdGluZzo6QXNzZXJ0aW9u
RXhjZXB0aW9uKHJlc3VsdCk7Ci0gICAgfQotICB9Ci19OwotaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KSB7Ci0gIC4uLgotICB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+
bGlzdGVuZXJzKCkuQXBwZW5kKG5ldyBUaHJvd0xpc3RlbmVyKTsKLSAgcmV0dXJuIFJVTl9BTExf
VEVTVFMoKTsKLX0KLWBgYAotCi1UaGlzIGxpc3RlbmVyIHNob3VsZCBiZSBhZGRlZCBhZnRlciBv
dGhlciBsaXN0ZW5lcnMgaWYgeW91IGhhdmUgYW55LCBvdGhlcndpc2UKLXRoZXkgd29uJ3Qgc2Vl
IGZhaWxlZCBgT25UZXN0UGFydFJlc3VsdGAuCi0KLSMjIyMgQXNzZXJ0aW5nIG9uIFN1YnJvdXRp
bmVzCi0KLUFzIHNob3duIGFib3ZlLCBpZiB5b3VyIHRlc3QgY2FsbHMgYSBzdWJyb3V0aW5lIHRo
YXQgaGFzIGFuIGBBU1NFUlRfKmAgZmFpbHVyZQotaW4gaXQsIHRoZSB0ZXN0IHdpbGwgY29udGlu
dWUgYWZ0ZXIgdGhlIHN1YnJvdXRpbmUgcmV0dXJucy4gVGhpcyBtYXkgbm90IGJlIHdoYXQKLXlv
dSB3YW50LgotCi1PZnRlbiBwZW9wbGUgd2FudCBmYXRhbCBmYWlsdXJlcyB0byBwcm9wYWdhdGUg
bGlrZSBleGNlcHRpb25zLiBGb3IgdGhhdAotZ29vZ2xldGVzdCBvZmZlcnMgdGhlIGZvbGxvd2lu
ZyBtYWNyb3M6Ci0KLUZhdGFsIGFzc2VydGlvbiAgICAgICAgICAgICAgICAgICAgICAgfCBOb25m
YXRhbCBhc3NlcnRpb24gICAgICAgICAgICAgICAgICAgIHwgVmVyaWZpZXMKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0KLWBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShzdGF0ZW1lbnQp
O2AgfCBgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoc3RhdGVtZW50KTtgIHwgYHN0YXRlbWVudGAg
ZG9lc24ndCBnZW5lcmF0ZSBhbnkgbmV3IGZhdGFsIGZhaWx1cmVzIGluIHRoZSBjdXJyZW50IHRo
cmVhZC4KLQotT25seSBmYWlsdXJlcyBpbiB0aGUgdGhyZWFkIHRoYXQgZXhlY3V0ZXMgdGhlIGFz
c2VydGlvbiBhcmUgY2hlY2tlZCB0byBkZXRlcm1pbmUKLXRoZSByZXN1bHQgb2YgdGhpcyB0eXBl
IG9mIGFzc2VydGlvbnMuIElmIGBzdGF0ZW1lbnRgIGNyZWF0ZXMgbmV3IHRocmVhZHMsCi1mYWls
dXJlcyBpbiB0aGVzZSB0aHJlYWRzIGFyZSBpZ25vcmVkLgotCi1FeGFtcGxlczoKLQotYGBgYysr
Ci1BU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShGb28oKSk7Ci0KLWludCBpOwotRVhQRUNUX05PX0ZB
VEFMX0ZBSUxVUkUoewotICBpID0gQmFyKCk7Ci19KTsKLWBgYAotCi0qKkF2YWlsYWJpbGl0eSoq
OiBMaW51eCwgV2luZG93cywgTWFjLiBBc3NlcnRpb25zIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBh
cmUKLWN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3MuCi0KLSMjIyMgQ2hlY2tpbmcg
Zm9yIEZhaWx1cmVzIGluIHRoZSBDdXJyZW50IFRlc3QKLQotYEhhc0ZhdGFsRmFpbHVyZSgpYCBp
biB0aGUgYDo6dGVzdGluZzo6VGVzdGAgY2xhc3MgcmV0dXJucyBgdHJ1ZWAgaWYgYW4KLWFzc2Vy
dGlvbiBpbiB0aGUgY3VycmVudCB0ZXN0IGhhcyBzdWZmZXJlZCBhIGZhdGFsIGZhaWx1cmUuIFRo
aXMgYWxsb3dzCi1mdW5jdGlvbnMgdG8gY2F0Y2ggZmF0YWwgZmFpbHVyZXMgaW4gYSBzdWItcm91
dGluZSBhbmQgcmV0dXJuIGVhcmx5LgotCi1gYGBjKysKLWNsYXNzIFRlc3QgewotIHB1YmxpYzoK
LSAgLi4uCi0gIHN0YXRpYyBib29sIEhhc0ZhdGFsRmFpbHVyZSgpOwotfTsKLWBgYAotCi1UaGUg
dHlwaWNhbCB1c2FnZSwgd2hpY2ggYmFzaWNhbGx5IHNpbXVsYXRlcyB0aGUgYmVoYXZpb3Igb2Yg
YSB0aHJvd24gZXhjZXB0aW9uLAotaXM6Ci0KLWBgYGMrKwotVEVTVChGb29UZXN0LCBCYXIpIHsK
LSAgU3Vicm91dGluZSgpOwotICAvLyBBYm9ydHMgaWYgU3Vicm91dGluZSgpIGhhZCBhIGZhdGFs
IGZhaWx1cmUuCi0gIGlmIChIYXNGYXRhbEZhaWx1cmUoKSkgcmV0dXJuOwotCi0gIC8vIFRoZSBm
b2xsb3dpbmcgd29uJ3QgYmUgZXhlY3V0ZWQuCi0gIC4uLgotfQotYGBgCi0KLUlmIGBIYXNGYXRh
bEZhaWx1cmUoKWAgaXMgdXNlZCBvdXRzaWRlIG9mIGBURVNUKClgICwgYFRFU1RfRigpYCAsIG9y
IGEgdGVzdAotZml4dHVyZSwgeW91IG11c3QgYWRkIHRoZSBgOjp0ZXN0aW5nOjpUZXN0OjpgIHBy
ZWZpeCwgYXMgaW46Ci0KLWBgYGMrKwotaWYgKDo6dGVzdGluZzo6VGVzdDo6SGFzRmF0YWxGYWls
dXJlKCkpIHJldHVybjsKLWBgYAotCi1TaW1pbGFybHksIGBIYXNOb25mYXRhbEZhaWx1cmUoKWAg
cmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYXQKLWxlYXN0IG9uZSBub24t
ZmF0YWwgZmFpbHVyZSwgYW5kIGBIYXNGYWlsdXJlKClgIHJldHVybnMgYHRydWVgIGlmIHRoZSBj
dXJyZW50Ci10ZXN0IGhhcyBhdCBsZWFzdCBvbmUgZmFpbHVyZSBvZiBlaXRoZXIga2luZC4KLQot
KipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMgTG9nZ2luZyBBZGRp
dGlvbmFsIEluZm9ybWF0aW9uCi0KLUluIHlvdXIgdGVzdCBjb2RlLCB5b3UgY2FuIGNhbGwgYFJl
Y29yZFByb3BlcnR5KCJrZXkiLCB2YWx1ZSlgIHRvIGxvZyBhZGRpdGlvbmFsCi1pbmZvcm1hdGlv
biwgd2hlcmUgYHZhbHVlYCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGBpbnRgLiBUaGUg
Kmxhc3QqIHZhbHVlCi1yZWNvcmRlZCBmb3IgYSBrZXkgd2lsbCBiZSBlbWl0dGVkIHRvIHRoZSBb
WE1MIG91dHB1dF0oI2dlbmVyYXRpbmctYW4teG1sLXJlcG9ydCkgaWYgeW91Ci1zcGVjaWZ5IG9u
ZS4gRm9yIGV4YW1wbGUsIHRoZSB0ZXN0Ci0KLWBgYGMrKwotVEVTVF9GKFdpZGdldFVzYWdlVGVz
dCwgTWluQW5kTWF4V2lkZ2V0cykgewotICBSZWNvcmRQcm9wZXJ0eSgiTWF4aW11bVdpZGdldHMi
LCBDb21wdXRlTWF4VXNhZ2UoKSk7Ci0gIFJlY29yZFByb3BlcnR5KCJNaW5pbXVtV2lkZ2V0cyIs
IENvbXB1dGVNaW5Vc2FnZSgpKTsKLX0KLWBgYAotCi13aWxsIG91dHB1dCBYTUwgbGlrZSB0aGlz
OgotCi1gYGB4bWwKLSAgLi4uCi0gICAgPHRlc3RjYXNlIG5hbWU9Ik1pbkFuZE1heFdpZGdldHMi
IHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNiIgY2xhc3NuYW1lPSJXaWRnZXRVc2FnZVRlc3QiIE1h
eGltdW1XaWRnZXRzPSIxMiIgTWluaW11bVdpZGdldHM9IjkiIC8+Ci0gIC4uLgotYGBgCi0KLT4g
Tk9URToKLT4KLT4gKiAgIGBSZWNvcmRQcm9wZXJ0eSgpYCBpcyBhIHN0YXRpYyBtZW1iZXIgb2Yg
dGhlIGBUZXN0YCBjbGFzcy4gVGhlcmVmb3JlIGl0Ci0+ICAgICBuZWVkcyB0byBiZSBwcmVmaXhl
ZCB3aXRoIGA6OnRlc3Rpbmc6OlRlc3Q6OmAgaWYgdXNlZCBvdXRzaWRlIG9mIHRoZQotPiAgICAg
YFRFU1RgIGJvZHkgYW5kIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MuCi0+ICogICBgKmtleSpgIG11
c3QgYmUgYSB2YWxpZCBYTUwgYXR0cmlidXRlIG5hbWUsIGFuZCBjYW5ub3QgY29uZmxpY3Qgd2l0
aCB0aGUKLT4gICAgIG9uZXMgYWxyZWFkeSB1c2VkIGJ5IGdvb2dsZXRlc3QgKGBuYW1lYCwgYHN0
YXR1c2AsIGB0aW1lYCwgYGNsYXNzbmFtZWAsCi0+ICAgICBgdHlwZV9wYXJhbWAsIGFuZCBgdmFs
dWVfcGFyYW1gKS4KLT4gKiAgIENhbGxpbmcgYFJlY29yZFByb3BlcnR5KClgIG91dHNpZGUgb2Yg
dGhlIGxpZmVzcGFuIG9mIGEgdGVzdCBpcyBhbGxvd2VkLgotPiAgICAgSWYgaXQncyBjYWxsZWQg
b3V0c2lkZSBvZiBhIHRlc3QgYnV0IGJldHdlZW4gYSB0ZXN0IGNhc2UncwotPiAgICAgYFNldFVw
VGVzdENhc2UoKWAgYW5kIGBUZWFyRG93blRlc3RDYXNlKClgIG1ldGhvZHMsIGl0IHdpbGwgYmUg
YXR0cmlidXRlZAotPiAgICAgdG8gdGhlIFhNTCBlbGVtZW50IGZvciB0aGUgdGVzdCBjYXNlLiBJ
ZiBpdCdzIGNhbGxlZCBvdXRzaWRlIG9mIGFsbCB0ZXN0Ci0+ICAgICBjYXNlcyAoZS5nLiBpbiBh
IHRlc3QgZW52aXJvbm1lbnQpLCBpdCB3aWxsIGJlIGF0dHJpYnV0ZWQgdG8gdGhlIHRvcC1sZXZl
bAotPiAgICAgWE1MIGVsZW1lbnQuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dz
LCBNYWMuCi0KLSMjIFNoYXJpbmcgUmVzb3VyY2VzIEJldHdlZW4gVGVzdHMgaW4gdGhlIFNhbWUg
VGVzdCBDYXNlCi0KLWdvb2dsZXRlc3QgY3JlYXRlcyBhIG5ldyB0ZXN0IGZpeHR1cmUgb2JqZWN0
IGZvciBlYWNoIHRlc3QgaW4gb3JkZXIgdG8gbWFrZQotdGVzdHMgaW5kZXBlbmRlbnQgYW5kIGVh
c2llciB0byBkZWJ1Zy4gSG93ZXZlciwgc29tZXRpbWVzIHRlc3RzIHVzZSByZXNvdXJjZXMKLXRo
YXQgYXJlIGV4cGVuc2l2ZSB0byBzZXQgdXAsIG1ha2luZyB0aGUgb25lLWNvcHktcGVyLXRlc3Qg
bW9kZWwgcHJvaGliaXRpdmVseQotZXhwZW5zaXZlLgotCi1JZiB0aGUgdGVzdHMgZG9uJ3QgY2hh
bmdlIHRoZSByZXNvdXJjZSwgdGhlcmUncyBubyBoYXJtIGluIHRoZWlyIHNoYXJpbmcgYQotc2lu
Z2xlIHJlc291cmNlIGNvcHkuIFNvLCBpbiBhZGRpdGlvbiB0byBwZXItdGVzdCBzZXQtdXAvdGVh
ci1kb3duLCBnb29nbGV0ZXN0Ci1hbHNvIHN1cHBvcnRzIHBlci10ZXN0LWNhc2Ugc2V0LXVwL3Rl
YXItZG93bi4gVG8gdXNlIGl0OgotCi0xLiAgSW4geW91ciB0ZXN0IGZpeHR1cmUgY2xhc3MgKHNh
eSBgRm9vVGVzdGAgKSwgZGVjbGFyZSBhcyBgc3RhdGljYCBzb21lIG1lbWJlcgotICAgIHZhcmlh
YmxlcyB0byBob2xkIHRoZSBzaGFyZWQgcmVzb3VyY2VzLgotMS4gIE91dHNpZGUgeW91ciB0ZXN0
IGZpeHR1cmUgY2xhc3MgKHR5cGljYWxseSBqdXN0IGJlbG93IGl0KSwgZGVmaW5lIHRob3NlCi0g
ICAgbWVtYmVyIHZhcmlhYmxlcywgb3B0aW9uYWxseSBnaXZpbmcgdGhlbSBpbml0aWFsIHZhbHVl
cy4KLTEuICBJbiB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUgY2xhc3MsIGRlZmluZSBhIGBzdGF0aWMg
dm9pZCBTZXRVcFRlc3RDYXNlKClgCi0gICAgZnVuY3Rpb24gKHJlbWVtYmVyIG5vdCB0byBzcGVs
bCBpdCBhcyAqKmBTZXR1cFRlc3RDYXNlYCoqIHdpdGggYSBzbWFsbCBgdWAhKQotICAgIHRvIHNl
dCB1cCB0aGUgc2hhcmVkIHJlc291cmNlcyBhbmQgYSBgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0
Q2FzZSgpYAotICAgIGZ1bmN0aW9uIHRvIHRlYXIgdGhlbSBkb3duLgotCi1UaGF0J3MgaXQhIGdv
b2dsZXRlc3QgYXV0b21hdGljYWxseSBjYWxscyBgU2V0VXBUZXN0Q2FzZSgpYCBiZWZvcmUgcnVu
bmluZyB0aGUKLSpmaXJzdCB0ZXN0KiBpbiB0aGUgYEZvb1Rlc3RgIHRlc3QgY2FzZSAoaS5lLiBi
ZWZvcmUgY3JlYXRpbmcgdGhlIGZpcnN0Ci1gRm9vVGVzdGAgb2JqZWN0KSwgYW5kIGNhbGxzIGBU
ZWFyRG93blRlc3RDYXNlKClgIGFmdGVyIHJ1bm5pbmcgdGhlICpsYXN0IHRlc3QqCi1pbiBpdCAo
aS5lLiBhZnRlciBkZWxldGluZyB0aGUgbGFzdCBgRm9vVGVzdGAgb2JqZWN0KS4gSW4gYmV0d2Vl
biwgdGhlIHRlc3RzIGNhbgotdXNlIHRoZSBzaGFyZWQgcmVzb3VyY2VzLgotCi1SZW1lbWJlciB0
aGF0IHRoZSB0ZXN0IG9yZGVyIGlzIHVuZGVmaW5lZCwgc28geW91ciBjb2RlIGNhbid0IGRlcGVu
ZCBvbiBhIHRlc3QKLXByZWNlZGluZyBvciBmb2xsb3dpbmcgYW5vdGhlci4gQWxzbywgdGhlIHRl
c3RzIG11c3QgZWl0aGVyIG5vdCBtb2RpZnkgdGhlIHN0YXRlCi1vZiBhbnkgc2hhcmVkIHJlc291
cmNlLCBvciwgaWYgdGhleSBkbyBtb2RpZnkgdGhlIHN0YXRlLCB0aGV5IG11c3QgcmVzdG9yZSB0
aGUKLXN0YXRlIHRvIGl0cyBvcmlnaW5hbCB2YWx1ZSBiZWZvcmUgcGFzc2luZyBjb250cm9sIHRv
IHRoZSBuZXh0IHRlc3QuCi0KLUhlcmUncyBhbiBleGFtcGxlIG9mIHBlci10ZXN0LWNhc2Ugc2V0
LXVwIGFuZCB0ZWFyLWRvd246Ci0KLWBgYGMrKwotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRl
c3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gUGVyLXRlc3QtY2FzZSBzZXQtdXAuCi0g
IC8vIENhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UuCi0gIC8v
IENhbiBiZSBvbWl0dGVkIGlmIG5vdCBuZWVkZWQuCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENh
c2UoKSB7Ci0gICAgc2hhcmVkX3Jlc291cmNlXyA9IG5ldyAuLi47Ci0gIH0KLQotICAvLyBQZXIt
dGVzdC1jYXNlIHRlYXItZG93bi4KLSAgLy8gQ2FsbGVkIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4g
dGhpcyB0ZXN0IGNhc2UuCi0gIC8vIENhbiBiZSBvbWl0dGVkIGlmIG5vdCBuZWVkZWQuCi0gIHN0
YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7Ci0gICAgZGVsZXRlIHNoYXJlZF9yZXNvdXJj
ZV87Ci0gICAgc2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7Ci0gIH0KLQotICAvLyBZb3UgY2FuIGRl
ZmluZSBwZXItdGVzdCBzZXQtdXAgbG9naWMgYXMgdXN1YWwuCi0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsgLi4uIH0KLQotICAvLyBZb3UgY2FuIGRlZmluZSBwZXItdGVzdCB0ZWFyLWRvd24gbG9n
aWMgYXMgdXN1YWwuCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsgLi4uIH0KLQotICAvLyBT
b21lIGV4cGVuc2l2ZSByZXNvdXJjZSBzaGFyZWQgYnkgYWxsIHRlc3RzLgotICBzdGF0aWMgVCog
c2hhcmVkX3Jlc291cmNlXzsKLX07Ci0KLVQqIEZvb1Rlc3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBO
VUxMOwotCi1URVNUX0YoRm9vVGVzdCwgVGVzdDEpIHsKLSAgLi4uIHlvdSBjYW4gcmVmZXIgdG8g
c2hhcmVkX3Jlc291cmNlXyBoZXJlIC4uLgotfQotCi1URVNUX0YoRm9vVGVzdCwgVGVzdDIpIHsK
LSAgLi4uIHlvdSBjYW4gcmVmZXIgdG8gc2hhcmVkX3Jlc291cmNlXyBoZXJlIC4uLgotfQotYGBg
Ci0KLU5PVEU6IFRob3VnaCB0aGUgYWJvdmUgY29kZSBkZWNsYXJlcyBgU2V0VXBUZXN0Q2FzZSgp
YCBwcm90ZWN0ZWQsIGl0IG1heQotc29tZXRpbWVzIGJlIG5lY2Vzc2FyeSB0byBkZWNsYXJlIGl0
IHB1YmxpYywgc3VjaCBhcyB3aGVuIHVzaW5nIGl0IHdpdGgKLWBURVNUX1BgLgotCi0qKkF2YWls
YWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyBHbG9iYWwgU2V0LVVwIGFuZCBU
ZWFyLURvd24KLQotSnVzdCBhcyB5b3UgY2FuIGRvIHNldC11cCBhbmQgdGVhci1kb3duIGF0IHRo
ZSB0ZXN0IGxldmVsIGFuZCB0aGUgdGVzdCBjYXNlCi1sZXZlbCwgeW91IGNhbiBhbHNvIGRvIGl0
IGF0IHRoZSB0ZXN0IHByb2dyYW0gbGV2ZWwuIEhlcmUncyBob3cuCi0KLUZpcnN0LCB5b3Ugc3Vi
Y2xhc3MgdGhlIGA6OnRlc3Rpbmc6OkVudmlyb25tZW50YCBjbGFzcyB0byBkZWZpbmUgYSB0ZXN0
Ci1lbnZpcm9ubWVudCwgd2hpY2gga25vd3MgaG93IHRvIHNldC11cCBhbmQgdGVhci1kb3duOgot
Ci1gYGBjKysKLWNsYXNzIEVudmlyb25tZW50IHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgfkVudmly
b25tZW50KCkge30KLQotICAvLyBPdmVycmlkZSB0aGlzIHRvIGRlZmluZSBob3cgdG8gc2V0IHVw
IHRoZSBlbnZpcm9ubWVudC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KLQotICAvLyBPdmVy
cmlkZSB0aGlzIHRvIGRlZmluZSBob3cgdG8gdGVhciBkb3duIHRoZSBlbnZpcm9ubWVudC4KLSAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KLX07Ci1gYGAKLQotVGhlbiwgeW91IHJlZ2lzdGVy
IGFuIGluc3RhbmNlIG9mIHlvdXIgZW52aXJvbm1lbnQgY2xhc3Mgd2l0aCBnb29nbGV0ZXN0IGJ5
Ci1jYWxsaW5nIHRoZSBgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKWAgZnVu
Y3Rpb246Ci0KLWBgYGMrKwotRW52aXJvbm1lbnQqIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChF
bnZpcm9ubWVudCogZW52KTsKLWBgYAotCi1Ob3csIHdoZW4gYFJVTl9BTExfVEVTVFMoKWAgaXMg
Y2FsbGVkLCBpdCBmaXJzdCBjYWxscyB0aGUgYFNldFVwKClgIG1ldGhvZCBvZgotdGhlIGVudmly
b25tZW50IG9iamVjdCwgdGhlbiBydW5zIHRoZSB0ZXN0cyBpZiB0aGVyZSB3YXMgbm8gZmF0YWwg
ZmFpbHVyZXMsIGFuZAotZmluYWxseSBjYWxscyBgVGVhckRvd24oKWAgb2YgdGhlIGVudmlyb25t
ZW50IG9iamVjdC4KLQotSXQncyBPSyB0byByZWdpc3RlciBtdWx0aXBsZSBlbnZpcm9ubWVudCBv
YmplY3RzLiBJbiB0aGlzIGNhc2UsIHRoZWlyIGBTZXRVcCgpYAotd2lsbCBiZSBjYWxsZWQgaW4g
dGhlIG9yZGVyIHRoZXkgYXJlIHJlZ2lzdGVyZWQsIGFuZCB0aGVpciBgVGVhckRvd24oKWAgd2ls
bCBiZQotY2FsbGVkIGluIHRoZSByZXZlcnNlIG9yZGVyLgotCi1Ob3RlIHRoYXQgZ29vZ2xldGVz
dCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIHJlZ2lzdGVyZWQgZW52aXJvbm1lbnQgb2JqZWN0cy4K
LVRoZXJlZm9yZSAqKmRvIG5vdCBkZWxldGUgdGhlbSoqIGJ5IHlvdXJzZWxmLgotCi1Zb3Ugc2hv
dWxkIGNhbGwgYEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudCgpYCBiZWZvcmUgYFJVTl9BTExfVEVT
VFMoKWAgaXMgY2FsbGVkLAotcHJvYmFibHkgaW4gYG1haW4oKWAuIElmIHlvdSB1c2UgYGd0ZXN0
X21haW5gLCB5b3UgbmVlZCB0byBjYWxsIHRoaXMgYmVmb3JlCi1gbWFpbigpYCBzdGFydHMgZm9y
IGl0IHRvIHRha2UgZWZmZWN0LiBPbmUgd2F5IHRvIGRvIHRoaXMgaXMgdG8gZGVmaW5lIGEgZ2xv
YmFsCi12YXJpYWJsZSBsaWtlIHRoaXM6Ci0KLWBgYGMrKwotOjp0ZXN0aW5nOjpFbnZpcm9ubWVu
dCogY29uc3QgZm9vX2VudiA9Ci0gICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1l
bnQobmV3IEZvb0Vudmlyb25tZW50KTsKLWBgYAotCi1Ib3dldmVyLCB3ZSBzdHJvbmdseSByZWNv
bW1lbmQgeW91IHRvIHdyaXRlIHlvdXIgb3duIGBtYWluKClgIGFuZCBjYWxsCi1gQWRkR2xvYmFs
VGVzdEVudmlyb25tZW50KClgIHRoZXJlLCBhcyByZWx5aW5nIG9uIGluaXRpYWxpemF0aW9uIG9m
IGdsb2JhbAotdmFyaWFibGVzIG1ha2VzIHRoZSBjb2RlIGhhcmRlciB0byByZWFkIGFuZCBtYXkg
Y2F1c2UgcHJvYmxlbXMgd2hlbiB5b3UgcmVnaXN0ZXIKLW11bHRpcGxlIGVudmlyb25tZW50cyBm
cm9tIGRpZmZlcmVudCB0cmFuc2xhdGlvbiB1bml0cyBhbmQgdGhlIGVudmlyb25tZW50cyBoYXZl
Ci1kZXBlbmRlbmNpZXMgYW1vbmcgdGhlbSAocmVtZW1iZXIgdGhhdCB0aGUgY29tcGlsZXIgZG9l
c24ndCBndWFyYW50ZWUgdGhlIG9yZGVyCi1pbiB3aGljaCBnbG9iYWwgdmFyaWFibGVzIGZyb20g
ZGlmZmVyZW50IHRyYW5zbGF0aW9uIHVuaXRzIGFyZSBpbml0aWFsaXplZCkuCi0KLSMjIFZhbHVl
LVBhcmFtZXRlcml6ZWQgVGVzdHMKLQotKlZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMqIGFsbG93
IHlvdSB0byB0ZXN0IHlvdXIgY29kZSB3aXRoIGRpZmZlcmVudAotcGFyYW1ldGVycyB3aXRob3V0
IHdyaXRpbmcgbXVsdGlwbGUgY29waWVzIG9mIHRoZSBzYW1lIHRlc3QuIFRoaXMgaXMgdXNlZnVs
IGluIGEKLW51bWJlciBvZiBzaXR1YXRpb25zLCBmb3IgZXhhbXBsZToKLQotKiAgIFlvdSBoYXZl
IGEgcGllY2Ugb2YgY29kZSB3aG9zZSBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSBvbmUgb3IgbW9y
ZQotICAgIGNvbW1hbmQtbGluZSBmbGFncy4gWW91IHdhbnQgdG8gbWFrZSBzdXJlIHlvdXIgY29k
ZSBwZXJmb3JtcyBjb3JyZWN0bHkgZm9yCi0gICAgdmFyaW91cyB2YWx1ZXMgb2YgdGhvc2UgZmxh
Z3MuCi0qICAgWW91IHdhbnQgdG8gdGVzdCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFu
IE9PIGludGVyZmFjZS4KLSogICBZb3Ugd2FudCB0byB0ZXN0IHlvdXIgY29kZSBvdmVyIHZhcmlv
dXMgaW5wdXRzIChhLmsuYS4gZGF0YS1kcml2ZW4gdGVzdGluZykuCi0gICAgVGhpcyBmZWF0dXJl
IGlzIGVhc3kgdG8gYWJ1c2UsIHNvIHBsZWFzZSBleGVyY2lzZSB5b3VyIGdvb2Qgc2Vuc2Ugd2hl
biBkb2luZwotICAgIGl0IQotCi0jIyMgSG93IHRvIFdyaXRlIFZhbHVlLVBhcmFtZXRlcml6ZWQg
VGVzdHMKLQotVG8gd3JpdGUgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0cywgZmlyc3QgeW91IHNo
b3VsZCBkZWZpbmUgYSBmaXh0dXJlIGNsYXNzLiBJdAotbXVzdCBiZSBkZXJpdmVkIGZyb20gYm90
aCBgOjp0ZXN0aW5nOjpUZXN0YCBhbmQKLWA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxU
PmAgKHRoZSBsYXR0ZXIgaXMgYSBwdXJlIGludGVyZmFjZSksIHdoZXJlIGBUYAotaXMgdGhlIHR5
cGUgb2YgeW91ciBwYXJhbWV0ZXIgdmFsdWVzLiBGb3IgY29udmVuaWVuY2UsIHlvdSBjYW4ganVz
dCBkZXJpdmUgdGhlCi1maXh0dXJlIGNsYXNzIGZyb20gYDo6dGVzdGluZzo6VGVzdFdpdGhQYXJh
bTxUPmAsIHdoaWNoIGl0c2VsZiBpcyBkZXJpdmVkIGZyb20KLWJvdGggYDo6dGVzdGluZzo6VGVz
dGAgYW5kIGA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxUPmAuIGBUYCBjYW4gYmUgYW55
Ci1jb3B5YWJsZSB0eXBlLiBJZiBpdCdzIGEgcmF3IHBvaW50ZXIsIHlvdSBhcmUgcmVzcG9uc2li
bGUgZm9yIG1hbmFnaW5nIHRoZQotbGlmZXNwYW4gb2YgdGhlIHBvaW50ZWQgdmFsdWVzLgotCi1O
T1RFOiBJZiB5b3VyIHRlc3QgZml4dHVyZSBkZWZpbmVzIGBTZXRVcFRlc3RDYXNlKClgIG9yIGBU
ZWFyRG93blRlc3RDYXNlKClgCi10aGV5IG11c3QgYmUgZGVjbGFyZWQgKipwdWJsaWMqKiByYXRo
ZXIgdGhhbiAqKnByb3RlY3RlZCoqIGluIG9yZGVyIHRvIHVzZQotYFRFU1RfUGAuCi0KLWBgYGMr
KwotY2xhc3MgRm9vVGVzdCA6Ci0gICAgcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxj
b25zdCBjaGFyKj4gewotICAvLyBZb3UgY2FuIGltcGxlbWVudCBhbGwgdGhlIHVzdWFsIGZpeHR1
cmUgY2xhc3MgbWVtYmVycyBoZXJlLgotICAvLyBUbyBhY2Nlc3MgdGhlIHRlc3QgcGFyYW1ldGVy
LCBjYWxsIEdldFBhcmFtKCkgZnJvbSBjbGFzcwotICAvLyBUZXN0V2l0aFBhcmFtPFQ+LgotfTsK
LQotLy8gT3IsIHdoZW4geW91IHdhbnQgdG8gYWRkIHBhcmFtZXRlcnMgdG8gYSBwcmUtZXhpc3Rp
bmcgZml4dHVyZSBjbGFzczoKLWNsYXNzIEJhc2VUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVz
dCB7Ci0gIC4uLgotfTsKLWNsYXNzIEJhclRlc3QgOiBwdWJsaWMgQmFzZVRlc3QsCi0gICAgICAg
ICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPGNvbnN0IGNoYXIq
PiB7Ci0gIC4uLgotfTsKLWBgYAotCi1UaGVuLCB1c2UgdGhlIGBURVNUX1BgIG1hY3JvIHRvIGRl
ZmluZSBhcyBtYW55IHRlc3QgcGF0dGVybnMgdXNpbmcgdGhpcyBmaXh0dXJlCi1hcyB5b3Ugd2Fu
dC4gVGhlIGBfUGAgc3VmZml4IGlzIGZvciAicGFyYW1ldGVyaXplZCIgb3IgInBhdHRlcm4iLCB3
aGljaGV2ZXIgeW91Ci1wcmVmZXIgdG8gdGhpbmsuCi0KLWBgYGMrKwotVEVTVF9QKEZvb1Rlc3Qs
IERvZXNCbGFoKSB7Ci0gIC8vIEluc2lkZSBhIHRlc3QsIGFjY2VzcyB0aGUgdGVzdCBwYXJhbWV0
ZXIgd2l0aCB0aGUgR2V0UGFyYW0oKSBtZXRob2QKLSAgLy8gb2YgdGhlIFRlc3RXaXRoUGFyYW08
VD4gY2xhc3M6Ci0gIEVYUEVDVF9UUlVFKGZvby5CbGFoKEdldFBhcmFtKCkpKTsKLSAgLi4uCi19
Ci0KLVRFU1RfUChGb29UZXN0LCBIYXNCbGFoQmxhaCkgewotICAuLi4KLX0KLWBgYAotCi1GaW5h
bGx5LCB5b3UgY2FuIHVzZSBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1BgIHRvIGluc3RhbnRpYXRl
IHRoZSB0ZXN0IGNhc2Ugd2l0aAotYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50LiBnb29n
bGV0ZXN0IGRlZmluZXMgYSBudW1iZXIgb2YgZnVuY3Rpb25zIGZvcgotZ2VuZXJhdGluZyB0ZXN0
IHBhcmFtZXRlcnMuIFRoZXkgcmV0dXJuIHdoYXQgd2UgY2FsbCAoc3VycHJpc2UhKSAqcGFyYW1l
dGVyCi1nZW5lcmF0b3JzKi4gSGVyZSBpcyBhIHN1bW1hcnkgb2YgdGhlbSwgd2hpY2ggYXJlIGFs
bCBpbiB0aGUgYHRlc3RpbmdgCi1uYW1lc3BhY2U6Ci0KLXwgUGFyYW1ldGVyIEdlbmVyYXRvciAg
ICAgICAgICB8IEJlaGF2aW9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
fCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IGBSYW5nZShiZWdpbiwgZW5kIFssIHN0ZXBdKWAgfCBZ
aWVsZHMgdmFsdWVzIGB7YmVnaW4sIGJlZ2luK3N0ZXAsIGJlZ2luK3N0ZXArc3RlcCwgLi4ufWAu
IFRoZSB2YWx1ZXMgZG8gbm90IGluY2x1ZGUgYGVuZGAuIGBzdGVwYCBkZWZhdWx0cyB0byAxLiAg
ICAgIHwKLXwgYFZhbHVlcyh2MSwgdjIsIC4uLiwgdk4pYCAgICB8IFlpZWxkcyB2YWx1ZXMgYHt2
MSwgdjIsIC4uLiwgdk59YC4gICAgICAgICAgfAotfCBgVmFsdWVzSW4oY29udGFpbmVyKWAgYW5k
IGBWYWx1ZXNJbihiZWdpbixlbmQpYCAgIHwgWWllbGRzIHZhbHVlcyBmcm9tIGEgQy1zdHlsZSBh
cnJheSwgYW4gU1RMLXN0eWxlIGNvbnRhaW5lciwgb3IgYW4gaXRlcmF0b3IgcmFuZ2UgIGBbYmVn
aW4sIGVuZClgLiB8Ci18IGBCb29sKClgICAgICAgICAgICAgICAgICAgICAgfCBZaWVsZHMgc2Vx
dWVuY2UgYHtmYWxzZSwgdHJ1ZX1gLiAgICAgICAgICAgIHwKLXwgYENvbWJpbmUoZzEsIGcyLCAu
Li4sIGdOKWAgICB8IFlpZWxkcyBhbGwgY29tYmluYXRpb25zIChDYXJ0ZXNpYW4gcHJvZHVjdCkg
YXMgc3RkXDpcOnR1cGxlcyBvZiB0aGUgdmFsdWVzIGdlbmVyYXRlZCBieSB0aGUgYE5gIGdlbmVy
YXRvcnMuICAgICAgICAgICAgfAotCi1Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhlIGNvbW1lbnRz
IGF0IHRoZSBkZWZpbml0aW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMuCi0KLVRoZSBmb2xsb3dpbmcg
c3RhdGVtZW50IHdpbGwgaW5zdGFudGlhdGUgdGVzdHMgZnJvbSB0aGUgYEZvb1Rlc3RgIHRlc3Qg
Y2FzZSBlYWNoCi13aXRoIHBhcmFtZXRlciB2YWx1ZXMgYCJtZWVueSJgLCBgIm1pbnkiYCwgYW5k
IGAibW9lImAuCi0KLWBgYGMrKwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSW5zdGFudGlhdGlv
bk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBGb29UZXN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoIm1lZW55IiwgIm1pbnkiLCAibW9lIikpOwotYGBg
Ci0KLU5PVEU6IFRoZSBjb2RlIGFib3ZlIG11c3QgYmUgcGxhY2VkIGF0IGdsb2JhbCBvciBuYW1l
c3BhY2Ugc2NvcGUsIG5vdCBhdAotZnVuY3Rpb24gc2NvcGUuCi0KLU5PVEU6IERvbid0IGZvcmdl
dCB0aGlzIHN0ZXAhIElmIHlvdSBkbyB5b3VyIHRlc3Qgd2lsbCBzaWxlbnRseSBwYXNzLCBidXQg
bm9uZQotb2YgaXRzIGNhc2VzIHdpbGwgZXZlciBydW4hCi0KLVRvIGRpc3Rpbmd1aXNoIGRpZmZl
cmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4gKHllcywgeW91IGNhbiBpbnN0YW50aWF0ZSBp
dAotbW9yZSB0aGFuIG9uY2UpLCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gYElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QYCBpcyBhIHByZWZpeAotdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBhY3R1YWwg
dGVzdCBjYXNlIG5hbWUuIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlCi1wcmVmaXhlcyBmb3IgZGlm
ZmVyZW50IGluc3RhbnRpYXRpb25zLiBUaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBh
Ym92ZQotd2lsbCBoYXZlIHRoZXNlIG5hbWVzOgotCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMGAgZm9yIGAibWVlbnkiYAotKiAgIGBJbnN0YW50aWF0aW9uTmFtZS9G
b29UZXN0LkRvZXNCbGFoLzFgIGZvciBgIm1pbnkiYAotKiAgIGBJbnN0YW50aWF0aW9uTmFtZS9G
b29UZXN0LkRvZXNCbGFoLzJgIGZvciBgIm1vZSJgCi0qICAgYEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuSGFzQmxhaEJsYWgvMGAgZm9yIGAibWVlbnkiYAotKiAgIGBJbnN0YW50aWF0aW9uTmFt
ZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzFgIGZvciBgIm1pbnkiYAotKiAgIGBJbnN0YW50aWF0aW9u
TmFtZS9Gb29UZXN0Lkhhc0JsYWhCbGFoLzJgIGZvciBgIm1vZSJgCi0KLVlvdSBjYW4gdXNlIHRo
ZXNlIG5hbWVzIGluIFtgLS1ndGVzdF9maWx0ZXJgXSgjcnVubmluZy1hLXN1YnNldC1vZi10aGUt
dGVzdHMpLgotCi1UaGlzIHN0YXRlbWVudCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cyBmcm9t
IGBGb29UZXN0YCBhZ2FpbiwgZWFjaCB3aXRoCi1wYXJhbWV0ZXIgdmFsdWVzIGAiY2F0ImAgYW5k
IGAiZG9nImA6Ci0KLWBgYGMrKwotY29uc3QgY2hhciogcGV0c1tdID0geyJjYXQiLCAiZG9nIn07
Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChBbm90aGVySW5zdGFudGlhdGlvbk5hbWUsIEZvb1Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKHBldHMpKTsK
LWBgYAotCi1UaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxsIGhhdmUg
dGhlc2UgbmFtZXM6Ci0KLSogICBgQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuRG9l
c0JsYWgvMGAgZm9yIGAiY2F0ImAKLSogICBgQW5vdGhlckluc3RhbnRpYXRpb25OYW1lL0Zvb1Rl
c3QuRG9lc0JsYWgvMWAgZm9yIGAiZG9nImAKLSogICBgQW5vdGhlckluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMGAgZm9yIGAiY2F0ImAKLSogICBgQW5vdGhlckluc3RhbnRp
YXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMWAgZm9yIGAiZG9nImAKLQotUGxlYXNlIG5v
dGUgdGhhdCBgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1BgIHdpbGwgaW5zdGFudGlhdGUgKmFsbCog
dGVzdHMgaW4gdGhlCi1naXZlbiB0ZXN0IGNhc2UsIHdoZXRoZXIgdGhlaXIgZGVmaW5pdGlvbnMg
Y29tZSBiZWZvcmUgb3IgKmFmdGVyKiB0aGUKLWBJTlNUQU5USUFURV9URVNUX0NBU0VfUGAgc3Rh
dGVtZW50LgotCi1Zb3UgY2FuIHNlZSBzYW1wbGU3X3VuaXR0ZXN0LmNjIGFuZCBzYW1wbGU4X3Vu
aXR0ZXN0LmNjIGZvciBtb3JlIGV4YW1wbGVzLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwg
V2luZG93cyAocmVxdWlyZXMgTVNWQyA4LjAgb3IgYWJvdmUpLCBNYWMKLQotIyMjIENyZWF0aW5n
IFZhbHVlLVBhcmFtZXRlcml6ZWQgQWJzdHJhY3QgVGVzdHMKLQotSW4gdGhlIGFib3ZlLCB3ZSBk
ZWZpbmUgYW5kIGluc3RhbnRpYXRlIGBGb29UZXN0YCBpbiB0aGUgKnNhbWUqIHNvdXJjZSBmaWxl
LgotU29tZXRpbWVzIHlvdSBtYXkgd2FudCB0byBkZWZpbmUgdmFsdWUtcGFyYW1ldGVyaXplZCB0
ZXN0cyBpbiBhIGxpYnJhcnkgYW5kIGxldAotb3RoZXIgcGVvcGxlIGluc3RhbnRpYXRlIHRoZW0g
bGF0ZXIuIFRoaXMgcGF0dGVybiBpcyBrbm93biBhcyAqYWJzdHJhY3QgdGVzdHMqLgotQXMgYW4g
ZXhhbXBsZSBvZiBpdHMgYXBwbGljYXRpb24sIHdoZW4geW91IGFyZSBkZXNpZ25pbmcgYW4gaW50
ZXJmYWNlIHlvdSBjYW4KLXdyaXRlIGEgc3RhbmRhcmQgc3VpdGUgb2YgYWJzdHJhY3QgdGVzdHMg
KHBlcmhhcHMgdXNpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uIGFzCi10aGUgdGVzdCBwYXJhbWV0ZXIp
IHRoYXQgYWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgaW50ZXJmYWNlIGFyZSBleHBlY3RlZCB0
bwotcGFzcy4gV2hlbiBzb21lb25lIGltcGxlbWVudHMgdGhlIGludGVyZmFjZSwgdGhleSBjYW4g
aW5zdGFudGlhdGUgeW91ciBzdWl0ZSB0bwotZ2V0IGFsbCB0aGUgaW50ZXJmYWNlLWNvbmZvcm1h
bmNlIHRlc3RzIGZvciBmcmVlLgotCi1UbyBkZWZpbmUgYWJzdHJhY3QgdGVzdHMsIHlvdSBzaG91
bGQgb3JnYW5pemUgeW91ciBjb2RlIGxpa2UgdGhpczoKLQotMS4gIFB1dCB0aGUgZGVmaW5pdGlv
biBvZiB0aGUgcGFyYW1ldGVyaXplZCB0ZXN0IGZpeHR1cmUgY2xhc3MgKGUuZy4gYEZvb1Rlc3Rg
KQotICAgIGluIGEgaGVhZGVyIGZpbGUsIHNheSBgZm9vX3BhcmFtX3Rlc3QuaGAuIFRoaW5rIG9m
IHRoaXMgYXMgKmRlY2xhcmluZyogeW91cgotICAgIGFic3RyYWN0IHRlc3RzLgotMS4gIFB1dCB0
aGUgYFRFU1RfUGAgZGVmaW5pdGlvbnMgaW4gYGZvb19wYXJhbV90ZXN0LmNjYCwgd2hpY2ggaW5j
bHVkZXMKLSAgICBgZm9vX3BhcmFtX3Rlc3QuaGAuIFRoaW5rIG9mIHRoaXMgYXMgKmltcGxlbWVu
dGluZyogeW91ciBhYnN0cmFjdCB0ZXN0cy4KLQotT25jZSB0aGV5IGFyZSBkZWZpbmVkLCB5b3Ug
Y2FuIGluc3RhbnRpYXRlIHRoZW0gYnkgaW5jbHVkaW5nIGBmb29fcGFyYW1fdGVzdC5oYCwKLWlu
dm9raW5nIGBJTlNUQU5USUFURV9URVNUX0NBU0VfUCgpYCwgYW5kIGRlcGVuZGluZyBvbiB0aGUg
bGlicmFyeSB0YXJnZXQgdGhhdAotY29udGFpbnMgYGZvb19wYXJhbV90ZXN0LmNjYC4gWW91IGNh
biBpbnN0YW50aWF0ZSB0aGUgc2FtZSBhYnN0cmFjdCB0ZXN0IGNhc2UKLW11bHRpcGxlIHRpbWVz
LCBwb3NzaWJseSBpbiBkaWZmZXJlbnQgc291cmNlIGZpbGVzLgotCi0jIyMgU3BlY2lmeWluZyBO
YW1lcyBmb3IgVmFsdWUtUGFyYW1ldGVyaXplZCBUZXN0IFBhcmFtZXRlcnMKLQotVGhlIG9wdGlv
bmFsIGxhc3QgYXJndW1lbnQgdG8gYElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKClgIGFsbG93cyB0
aGUgdXNlciB0bwotc3BlY2lmeSBhIGZ1bmN0aW9uIG9yIGZ1bmN0b3IgdGhhdCBnZW5lcmF0ZXMg
Y3VzdG9tIHRlc3QgbmFtZSBzdWZmaXhlcyBiYXNlZCBvbgotdGhlIHRlc3QgcGFyYW1ldGVycy4g
VGhlIGZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgb25lIGFyZ3VtZW50IG9mIHR5cGUKLWB0ZXN0aW5n
OjpUZXN0UGFyYW1JbmZvPGNsYXNzIFBhcmFtVHlwZT5gLCBhbmQgcmV0dXJuIGBzdGQ6OnN0cmlu
Z2AuCi0KLWB0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lYCBpcyBhIGJ1aWx0aW4gdGVz
dCBzdWZmaXggZ2VuZXJhdG9yIHRoYXQKLXJldHVybnMgdGhlIHZhbHVlIG9mIGB0ZXN0aW5nOjpQ
cmludFRvU3RyaW5nKEdldFBhcmFtKCkpYC4gSXQgZG9lcyBub3Qgd29yayBmb3IKLWBzdGQ6OnN0
cmluZ2Agb3IgQyBzdHJpbmdzLgotCi1OT1RFOiB0ZXN0IG5hbWVzIG11c3QgYmUgbm9uLWVtcHR5
LCB1bmlxdWUsIGFuZCBtYXkgb25seSBjb250YWluIEFTQ0lJCi1hbHBoYW51bWVyaWMgY2hhcmFj
dGVycy4gSW4gcGFydGljdWxhciwgdGhleSBbc2hvdWxkIG5vdCBjb250YWluCi11bmRlcnNjb3Jl
c10oaHR0cHM6Ly9nM2RvYy5jb3JwLmdvb2dsZS5jb20vdGhpcmRfcGFydHkvZ29vZ2xldGVzdC9n
b29nbGV0ZXN0L2czZG9jL2ZhcS5tZCNuby11bmRlcnNjb3JlcykuCi0KLWBgYGMrKwotY2xhc3Mg
TXlUZXN0Q2FzZSA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGludD4ge307Ci0KLVRF
U1RfUChNeVRlc3RDYXNlLCBNeVRlc3QpCi17Ci0gIHN0ZDo6Y291dCA8PCAiRXhhbXBsZSBUZXN0
IFBhcmFtOiAiIDw8IEdldFBhcmFtKCkgPDwgc3RkOjplbmRsOwotfQotCi1JTlNUQU5USUFURV9U
RVNUX0NBU0VfUChNeUdyb3VwLCBNeVRlc3RDYXNlLCB0ZXN0aW5nOjpSYW5nZSgwLCAxMCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFyYW1OYW1lKCkp
OwotYGBgCi0KLSMjIFR5cGVkIFRlc3RzPC9pZD4KLQotU3VwcG9zZSB5b3UgaGF2ZSBtdWx0aXBs
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIHNhbWUgaW50ZXJmYWNlIGFuZCB3YW50IHRvIG1ha2UK
LXN1cmUgdGhhdCBhbGwgb2YgdGhlbSBzYXRpc2Z5IHNvbWUgY29tbW9uIHJlcXVpcmVtZW50cy4g
T3IsIHlvdSBtYXkgaGF2ZSBkZWZpbmVkCi1zZXZlcmFsIHR5cGVzIHRoYXQgYXJlIHN1cHBvc2Vk
IHRvIGNvbmZvcm0gdG8gdGhlIHNhbWUgImNvbmNlcHQiIGFuZCB5b3Ugd2FudCB0bwotdmVyaWZ5
IGl0LiBJbiBib3RoIGNhc2VzLCB5b3Ugd2FudCB0aGUgc2FtZSB0ZXN0IGxvZ2ljIHJlcGVhdGVk
IGZvciBkaWZmZXJlbnQKLXR5cGVzLgotCi1XaGlsZSB5b3UgY2FuIHdyaXRlIG9uZSBgVEVTVGAg
b3IgYFRFU1RfRmAgZm9yIGVhY2ggdHlwZSB5b3Ugd2FudCB0byB0ZXN0IChhbmQKLXlvdSBtYXkg
ZXZlbiBmYWN0b3IgdGhlIHRlc3QgbG9naWMgaW50byBhIGZ1bmN0aW9uIHRlbXBsYXRlIHRoYXQg
eW91IGludm9rZSBmcm9tCi10aGUgYFRFU1RgKSwgaXQncyB0ZWRpb3VzIGFuZCBkb2Vzbid0IHNj
YWxlOiBpZiB5b3Ugd2FudCBgbWAgdGVzdHMgb3ZlciBgbmAKLXR5cGVzLCB5b3UnbGwgZW5kIHVw
IHdyaXRpbmcgYG0qbmAgYFRFU1Rgcy4KLQotKlR5cGVkIHRlc3RzKiBhbGxvdyB5b3UgdG8gcmVw
ZWF0IHRoZSBzYW1lIHRlc3QgbG9naWMgb3ZlciBhIGxpc3Qgb2YgdHlwZXMuIFlvdQotb25seSBu
ZWVkIHRvIHdyaXRlIHRoZSB0ZXN0IGxvZ2ljIG9uY2UsIGFsdGhvdWdoIHlvdSBtdXN0IGtub3cg
dGhlIHR5cGUgbGlzdAotd2hlbiB3cml0aW5nIHR5cGVkIHRlc3RzLiBIZXJlJ3MgaG93IHlvdSBk
byBpdDoKLQotRmlyc3QsIGRlZmluZSBhIGZpeHR1cmUgY2xhc3MgdGVtcGxhdGUuIEl0IHNob3Vs
ZCBiZSBwYXJhbWV0ZXJpemVkIGJ5IGEgdHlwZS4KLVJlbWVtYmVyIHRvIGRlcml2ZSBpdCBmcm9t
IGA6OnRlc3Rpbmc6OlRlc3RgOgotCi1gYGBjKysKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xh
c3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotIHB1YmxpYzoKLSAgLi4uCi0g
IHR5cGVkZWYgc3RkOjpsaXN0PFQ+IExpc3Q7Ci0gIHN0YXRpYyBUIHNoYXJlZF87Ci0gIFQgdmFs
dWVfOwotfTsKLWBgYAotCi1OZXh0LCBhc3NvY2lhdGUgYSBsaXN0IG9mIHR5cGVzIHdpdGggdGhl
IHRlc3QgY2FzZSwgd2hpY2ggd2lsbCBiZSByZXBlYXRlZCBmb3IKLWVhY2ggdHlwZSBpbiB0aGUg
bGlzdDoKLQotYGBgYysrCi11c2luZyBNeVR5cGVzID0gOjp0ZXN0aW5nOjpUeXBlczxjaGFyLCBp
bnQsIHVuc2lnbmVkIGludD47Ci1UWVBFRF9URVNUX0NBU0UoRm9vVGVzdCwgTXlUeXBlcyk7Ci1g
YGAKLQotVGhlIHR5cGUgYWxpYXMgKGB1c2luZ2Agb3IgYHR5cGVkZWZgKSBpcyBuZWNlc3Nhcnkg
Zm9yIHRoZSBgVFlQRURfVEVTVF9DQVNFYAotbWFjcm8gdG8gcGFyc2UgY29ycmVjdGx5LiBPdGhl
cndpc2UgdGhlIGNvbXBpbGVyIHdpbGwgdGhpbmsgdGhhdCBlYWNoIGNvbW1hIGluCi10aGUgdHlw
ZSBsaXN0IGludHJvZHVjZXMgYSBuZXcgbWFjcm8gYXJndW1lbnQuCi0KLVRoZW4sIHVzZSBgVFlQ
RURfVEVTVCgpYCBpbnN0ZWFkIG9mIGBURVNUX0YoKWAgdG8gZGVmaW5lIGEgdHlwZWQgdGVzdCBm
b3IgdGhpcwotdGVzdCBjYXNlLiBZb3UgY2FuIHJlcGVhdCB0aGlzIGFzIG1hbnkgdGltZXMgYXMg
eW91IHdhbnQ6Ci0KLWBgYGMrKwotVFlQRURfVEVTVChGb29UZXN0LCBEb2VzQmxhaCkgewotICAv
LyBJbnNpZGUgYSB0ZXN0LCByZWZlciB0byB0aGUgc3BlY2lhbCBuYW1lIFR5cGVQYXJhbSB0byBn
ZXQgdGhlIHR5cGUKLSAgLy8gcGFyYW1ldGVyLiAgU2luY2Ugd2UgYXJlIGluc2lkZSBhIGRlcml2
ZWQgY2xhc3MgdGVtcGxhdGUsIEMrKyByZXF1aXJlcwotICAvLyB1cyB0byB2aXNpdCB0aGUgbWVt
YmVycyBvZiBGb29UZXN0IHZpYSAndGhpcycuCi0gIFR5cGVQYXJhbSBuID0gdGhpcy0+dmFsdWVf
OwotCi0gIC8vIFRvIHZpc2l0IHN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlLCBhZGQgdGhl
ICdUZXN0Rml4dHVyZTo6JwotICAvLyBwcmVmaXguCi0gIG4gKz0gVGVzdEZpeHR1cmU6OnNoYXJl
ZF87Ci0KLSAgLy8gVG8gcmVmZXIgdG8gdHlwZWRlZnMgaW4gdGhlIGZpeHR1cmUsIGFkZCB0aGUg
J3R5cGVuYW1lIFRlc3RGaXh0dXJlOjonCi0gIC8vIHByZWZpeC4gIFRoZSAndHlwZW5hbWUnIGlz
IHJlcXVpcmVkIHRvIHNhdGlzZnkgdGhlIGNvbXBpbGVyLgotICB0eXBlbmFtZSBUZXN0Rml4dHVy
ZTo6TGlzdCB2YWx1ZXM7Ci0KLSAgdmFsdWVzLnB1c2hfYmFjayhuKTsKLSAgLi4uCi19Ci0KLVRZ
UEVEX1RFU1QoRm9vVGVzdCwgSGFzUHJvcGVydHlBKSB7IC4uLiB9Ci1gYGAKLQotWW91IGNhbiBz
ZWUgc2FtcGxlNl91bml0dGVzdC5jYwotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93
cyAocmVxdWlyZXMgTVNWQyA4LjAgb3IgYWJvdmUpLCBNYWMKLQotIyMgVHlwZS1QYXJhbWV0ZXJp
emVkIFRlc3RzCi0KLSpUeXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMqIGFyZSBsaWtlIHR5cGVkIHRl
c3RzLCBleGNlcHQgdGhhdCB0aGV5IGRvbid0IHJlcXVpcmUKLXlvdSB0byBrbm93IHRoZSBsaXN0
IG9mIHR5cGVzIGFoZWFkIG9mIHRpbWUuIEluc3RlYWQsIHlvdSBjYW4gZGVmaW5lIHRoZSB0ZXN0
Ci1sb2dpYyBmaXJzdCBhbmQgaW5zdGFudGlhdGUgaXQgd2l0aCBkaWZmZXJlbnQgdHlwZSBsaXN0
cyBsYXRlci4gWW91IGNhbiBldmVuCi1pbnN0YW50aWF0ZSBpdCBtb3JlIHRoYW4gb25jZSBpbiB0
aGUgc2FtZSBwcm9ncmFtLgotCi1JZiB5b3UgYXJlIGRlc2lnbmluZyBhbiBpbnRlcmZhY2Ugb3Ig
Y29uY2VwdCwgeW91IGNhbiBkZWZpbmUgYSBzdWl0ZSBvZgotdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3RzIHRvIHZlcmlmeSBwcm9wZXJ0aWVzIHRoYXQgYW55IHZhbGlkIGltcGxlbWVudGF0aW9uIG9m
Ci10aGUgaW50ZXJmYWNlL2NvbmNlcHQgc2hvdWxkIGhhdmUuIFRoZW4sIHRoZSBhdXRob3Igb2Yg
ZWFjaCBpbXBsZW1lbnRhdGlvbiBjYW4KLWp1c3QgaW5zdGFudGlhdGUgdGhlIHRlc3Qgc3VpdGUg
d2l0aCB0aGVpciB0eXBlIHRvIHZlcmlmeSB0aGF0IGl0IGNvbmZvcm1zIHRvCi10aGUgcmVxdWly
ZW1lbnRzLCB3aXRob3V0IGhhdmluZyB0byB3cml0ZSBzaW1pbGFyIHRlc3RzIHJlcGVhdGVkbHku
IEhlcmUncyBhbgotZXhhbXBsZToKLQotRmlyc3QsIGRlZmluZSBhIGZpeHR1cmUgY2xhc3MgdGVt
cGxhdGUsIGFzIHdlIGRpZCB3aXRoIHR5cGVkIHRlc3RzOgotCi1gYGBjKysKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUPgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgewotICAu
Li4KLX07Ci1gYGAKLQotTmV4dCwgZGVjbGFyZSB0aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0IGNhc2U6Ci0KLWBgYGMrKwotVFlQRURfVEVTVF9DQVNFX1AoRm9v
VGVzdCk7Ci1gYGAKLQotVGhlbiwgdXNlIGBUWVBFRF9URVNUX1AoKWAgdG8gZGVmaW5lIGEgdHlw
ZS1wYXJhbWV0ZXJpemVkIHRlc3QuIFlvdSBjYW4gcmVwZWF0Ci10aGlzIGFzIG1hbnkgdGltZXMg
YXMgeW91IHdhbnQ6Ci0KLWBgYGMrKwotVFlQRURfVEVTVF9QKEZvb1Rlc3QsIERvZXNCbGFoKSB7
Ci0gIC8vIEluc2lkZSBhIHRlc3QsIHJlZmVyIHRvIFR5cGVQYXJhbSB0byBnZXQgdGhlIHR5cGUg
cGFyYW1ldGVyLgotICBUeXBlUGFyYW0gbiA9IDA7Ci0gIC4uLgotfQotCi1UWVBFRF9URVNUX1Ao
Rm9vVGVzdCwgSGFzUHJvcGVydHlBKSB7IC4uLiB9Ci1gYGAKLQotTm93IHRoZSB0cmlja3kgcGFy
dDogeW91IG5lZWQgdG8gcmVnaXN0ZXIgYWxsIHRlc3QgcGF0dGVybnMgdXNpbmcgdGhlCi1gUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1BgIG1hY3JvIGJlZm9yZSB5b3UgY2FuIGluc3RhbnRpYXRl
IHRoZW0uIFRoZSBmaXJzdAotYXJndW1lbnQgb2YgdGhlIG1hY3JvIGlzIHRoZSB0ZXN0IGNhc2Ug
bmFtZTsgdGhlIHJlc3QgYXJlIHRoZSBuYW1lcyBvZiB0aGUgdGVzdHMKLWluIHRoaXMgdGVzdCBj
YXNlOgotCi1gYGBjKysKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKEZvb1Rlc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBEb2VzQmxhaCwgSGFzUHJvcGVydHlBKTsKLWBgYAotCi1G
aW5hbGx5LCB5b3UgYXJlIGZyZWUgdG8gaW5zdGFudGlhdGUgdGhlIHBhdHRlcm4gd2l0aCB0aGUg
dHlwZXMgeW91IHdhbnQuIElmIHlvdQotcHV0IHRoZSBhYm92ZSBjb2RlIGluIGEgaGVhZGVyIGZp
bGUsIHlvdSBjYW4gYCNpbmNsdWRlYCBpdCBpbiBtdWx0aXBsZSBDKysKLXNvdXJjZSBmaWxlcyBh
bmQgaW5zdGFudGlhdGUgaXQgbXVsdGlwbGUgdGltZXMuCi0KLWBgYGMrKwotdHlwZWRlZiA6OnRl
c3Rpbmc6OlR5cGVzPGNoYXIsIGludCwgdW5zaWduZWQgaW50PiBNeVR5cGVzOwotSU5TVEFOVElB
VEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMpOwotYGBgCi0KLVRvIGRp
c3Rpbmd1aXNoIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4sIHRoZSBmaXJzdCBh
cmd1bWVudCB0byB0aGUKLWBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUGAgbWFjcm8gaXMg
YSBwcmVmaXggdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZQotYWN0dWFsIHRlc3QgY2FzZSBuYW1l
LiBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IgZGlmZmVyZW50IGluc3RhbmNl
cy4KLQotSW4gdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUgdHlwZSBsaXN0IGNvbnRhaW5zIG9u
bHkgb25lIHR5cGUsIHlvdSBjYW4gd3JpdGUKLXRoYXQgdHlwZSBkaXJlY3RseSB3aXRob3V0IGA6
OnRlc3Rpbmc6OlR5cGVzPC4uLj5gLCBsaWtlIHRoaXM6Ci0KLWBgYGMrKwotSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9DQVNFX1AoTXksIEZvb1Rlc3QsIGludCk7Ci1gYGAKLQotWW91IGNhbiBzZWUg
YHNhbXBsZTZfdW5pdHRlc3QuY2NgIGZvciBhIGNvbXBsZXRlIGV4YW1wbGUuCi0KLSoqQXZhaWxh
YmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzIChyZXF1aXJlcyBNU1ZDIDguMCBvciBhYm92ZSksIE1h
YwotCi0jIyBUZXN0aW5nIFByaXZhdGUgQ29kZQotCi1JZiB5b3UgY2hhbmdlIHlvdXIgc29mdHdh
cmUncyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgeW91ciB0ZXN0cyBzaG91bGQgbm90Ci1icmVh
ayBhcyBsb25nIGFzIHRoZSBjaGFuZ2UgaXMgbm90IG9ic2VydmFibGUgYnkgdXNlcnMuIFRoZXJl
Zm9yZSwgKipwZXIgdGhlCi1ibGFjay1ib3ggdGVzdGluZyBwcmluY2lwbGUsIG1vc3Qgb2YgdGhl
IHRpbWUgeW91IHNob3VsZCB0ZXN0IHlvdXIgY29kZSB0aHJvdWdoCi1pdHMgcHVibGljIGludGVy
ZmFjZXMuKioKLQotKipJZiB5b3Ugc3RpbGwgZmluZCB5b3Vyc2VsZiBuZWVkaW5nIHRvIHRlc3Qg
aW50ZXJuYWwgaW1wbGVtZW50YXRpb24gY29kZSwKLWNvbnNpZGVyIGlmIHRoZXJlJ3MgYSBiZXR0
ZXIgZGVzaWduLioqIFRoZSBkZXNpcmUgdG8gdGVzdCBpbnRlcm5hbAotaW1wbGVtZW50YXRpb24g
aXMgb2Z0ZW4gYSBzaWduIHRoYXQgdGhlIGNsYXNzIGlzIGRvaW5nIHRvbyBtdWNoLiBDb25zaWRl
cgotZXh0cmFjdGluZyBhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcywgYW5kIHRlc3RpbmcgaXQuIFRo
ZW4gdXNlIHRoYXQgaW1wbGVtZW50YXRpb24KLWNsYXNzIGluIHRoZSBvcmlnaW5hbCBjbGFzcy4K
LQotSWYgeW91IGFic29sdXRlbHkgaGF2ZSB0byB0ZXN0IG5vbi1wdWJsaWMgaW50ZXJmYWNlIGNv
ZGUgdGhvdWdoLCB5b3UgY2FuLiBUaGVyZQotYXJlIHR3byBjYXNlcyB0byBjb25zaWRlcjoKLQot
KiAgIFN0YXRpYyBmdW5jdGlvbnMgKCAqbm90KiB0aGUgc2FtZSBhcyBzdGF0aWMgbWVtYmVyIGZ1
bmN0aW9ucyEpIG9yIHVubmFtZWQKLSAgICBuYW1lc3BhY2VzLCBhbmQKLSogICBQcml2YXRlIG9y
IHByb3RlY3RlZCBjbGFzcyBtZW1iZXJzCi0KLVRvIHRlc3QgdGhlbSwgd2UgdXNlIHRoZSBmb2xs
b3dpbmcgc3BlY2lhbCB0ZWNobmlxdWVzOgotCi0qICAgQm90aCBzdGF0aWMgZnVuY3Rpb25zIGFu
ZCBkZWZpbml0aW9ucy9kZWNsYXJhdGlvbnMgaW4gYW4gdW5uYW1lZCBuYW1lc3BhY2UKLSAgICBh
cmUgb25seSB2aXNpYmxlIHdpdGhpbiB0aGUgc2FtZSB0cmFuc2xhdGlvbiB1bml0LiBUbyB0ZXN0
IHRoZW0sIHlvdSBjYW4KLSAgICBgI2luY2x1ZGVgIHRoZSBlbnRpcmUgYC5jY2AgZmlsZSBiZWlu
ZyB0ZXN0ZWQgaW4geW91ciBgKl90ZXN0LmNjYCBmaWxlLgotICAgIChpbmNsdWRpbmcgYC5jY2Ag
ZmlsZXMgaXMgbm90IGEgZ29vZCB3YXkgdG8gcmV1c2UgY29kZSAtIHlvdSBzaG91bGQgbm90IGRv
Ci0gICAgdGhpcyBpbiBwcm9kdWN0aW9uIGNvZGUhKQotCi0gICAgSG93ZXZlciwgYSBiZXR0ZXIg
YXBwcm9hY2ggaXMgdG8gbW92ZSB0aGUgcHJpdmF0ZSBjb2RlIGludG8gdGhlCi0gICAgYGZvbzo6
aW50ZXJuYWxgIG5hbWVzcGFjZSwgd2hlcmUgYGZvb2AgaXMgdGhlIG5hbWVzcGFjZSB5b3VyIHBy
b2plY3QKLSAgICBub3JtYWxseSB1c2VzLCBhbmQgcHV0IHRoZSBwcml2YXRlIGRlY2xhcmF0aW9u
cyBpbiBhIGAqLWludGVybmFsLmhgIGZpbGUuCi0gICAgWW91ciBwcm9kdWN0aW9uIGAuY2NgIGZp
bGVzIGFuZCB5b3VyIHRlc3RzIGFyZSBhbGxvd2VkIHRvIGluY2x1ZGUgdGhpcwotICAgIGludGVy
bmFsIGhlYWRlciwgYnV0IHlvdXIgY2xpZW50cyBhcmUgbm90LiBUaGlzIHdheSwgeW91IGNhbiBm
dWxseSB0ZXN0IHlvdXIKLSAgICBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiB3aXRob3V0IGxlYWtp
bmcgaXQgdG8geW91ciBjbGllbnRzLgotCi0qICAgUHJpdmF0ZSBjbGFzcyBtZW1iZXJzIGFyZSBv
bmx5IGFjY2Vzc2libGUgZnJvbSB3aXRoaW4gdGhlIGNsYXNzIG9yIGJ5Ci0gICAgZnJpZW5kcy4g
VG8gYWNjZXNzIGEgY2xhc3MnIHByaXZhdGUgbWVtYmVycywgeW91IGNhbiBkZWNsYXJlIHlvdXIg
dGVzdAotICAgIGZpeHR1cmUgYXMgYSBmcmllbmQgdG8gdGhlIGNsYXNzIGFuZCBkZWZpbmUgYWNj
ZXNzb3JzIGluIHlvdXIgZml4dHVyZS4gVGVzdHMKLSAgICB1c2luZyB0aGUgZml4dHVyZSBjYW4g
dGhlbiBhY2Nlc3MgdGhlIHByaXZhdGUgbWVtYmVycyBvZiB5b3VyIHByb2R1Y3Rpb24KLSAgICBj
bGFzcyB2aWEgdGhlIGFjY2Vzc29ycyBpbiB0aGUgZml4dHVyZS4gTm90ZSB0aGF0IGV2ZW4gdGhv
dWdoIHlvdXIgZml4dHVyZQotICAgIGlzIGEgZnJpZW5kIHRvIHlvdXIgcHJvZHVjdGlvbiBjbGFz
cywgeW91ciB0ZXN0cyBhcmUgbm90IGF1dG9tYXRpY2FsbHkKLSAgICBmcmllbmRzIHRvIGl0LCBh
cyB0aGV5IGFyZSB0ZWNobmljYWxseSBkZWZpbmVkIGluIHN1Yi1jbGFzc2VzIG9mIHRoZQotICAg
IGZpeHR1cmUuCi0KLSAgICBBbm90aGVyIHdheSB0byB0ZXN0IHByaXZhdGUgbWVtYmVycyBpcyB0
byByZWZhY3RvciB0aGVtIGludG8gYW4KLSAgICBpbXBsZW1lbnRhdGlvbiBjbGFzcywgd2hpY2gg
aXMgdGhlbiBkZWNsYXJlZCBpbiBhIGAqLWludGVybmFsLmhgIGZpbGUuIFlvdXIKLSAgICBjbGll
bnRzIGFyZW4ndCBhbGxvd2VkIHRvIGluY2x1ZGUgdGhpcyBoZWFkZXIgYnV0IHlvdXIgdGVzdHMg
Y2FuLiBTdWNoIGlzCi0gICAgY2FsbGVkIHRoZQotICAgIFtQaW1wbF0oaHR0cHM6Ly93d3cuZ2Ft
ZWRldi5uZXQvYXJ0aWNsZXMvcHJvZ3JhbW1pbmcvZ2VuZXJhbC1hbmQtZ2FtZXBsYXktcHJvZ3Jh
bW1pbmcvdGhlLWMtcGltcGwtcjE3OTQvKQotICAgIChQcml2YXRlIEltcGxlbWVudGF0aW9uKSBp
ZGlvbS4KLQotICAgIE9yLCB5b3UgY2FuIGRlY2xhcmUgYW4gaW5kaXZpZHVhbCB0ZXN0IGFzIGEg
ZnJpZW5kIG9mIHlvdXIgY2xhc3MgYnkgYWRkaW5nCi0gICAgdGhpcyBsaW5lIGluIHRoZSBjbGFz
cyBib2R5OgotCi0gICAgYGBgYysrCi0gICAgICAgIEZSSUVORF9URVNUKFRlc3RDYXNlTmFtZSwg
VGVzdE5hbWUpOwotICAgIGBgYAotCi0gICAgRm9yIGV4YW1wbGUsCi0KLSAgICBgYGBjKysKLSAg
ICAvLyBmb28uaAotCi0gICAgI2luY2x1ZGUgImd0ZXN0L2d0ZXN0X3Byb2QuaCIKLQotICAgIGNs
YXNzIEZvbyB7Ci0gICAgICAuLi4KLSAgICBwcml2YXRlOgotICAgICAgRlJJRU5EX1RFU1QoRm9v
VGVzdCwgQmFyUmV0dXJuc1plcm9Pbk51bGwpOwotCi0gICAgICBpbnQgQmFyKHZvaWQqIHgpOwot
ICAgIH07Ci0KLSAgICAvLyBmb29fdGVzdC5jYwotICAgIC4uLgotICAgIFRFU1QoRm9vVGVzdCwg
QmFyUmV0dXJuc1plcm9Pbk51bGwpIHsKLSAgICAgIEZvbyBmb287Ci0gICAgICBFWFBFQ1RfRVEo
MCwgZm9vLkJhcihOVUxMKSk7ICAvLyBVc2VzIEZvbydzIHByaXZhdGUgbWVtYmVyIEJhcigpLgot
ICAgIH0KLSAgICBgYGAKLQotICAgIFBheSBzcGVjaWFsIGF0dGVudGlvbiB3aGVuIHlvdXIgY2xh
c3MgaXMgZGVmaW5lZCBpbiBhIG5hbWVzcGFjZSwgYXMgeW91Ci0gICAgc2hvdWxkIGRlZmluZSB5
b3VyIHRlc3QgZml4dHVyZXMgYW5kIHRlc3RzIGluIHRoZSBzYW1lIG5hbWVzcGFjZSBpZiB5b3Ug
d2FudAotICAgIHRoZW0gdG8gYmUgZnJpZW5kcyBvZiB5b3VyIGNsYXNzLiBGb3IgZXhhbXBsZSwg
aWYgdGhlIGNvZGUgdG8gYmUgdGVzdGVkCi0gICAgbG9va3MgbGlrZToKLQotICAgIGBgYGMrKwot
ICAgIG5hbWVzcGFjZSBteV9uYW1lc3BhY2UgewotCi0gICAgY2xhc3MgRm9vIHsKLSAgICAgIGZy
aWVuZCBjbGFzcyBGb29UZXN0OwotICAgICAgRlJJRU5EX1RFU1QoRm9vVGVzdCwgQmFyKTsKLSAg
ICAgIEZSSUVORF9URVNUKEZvb1Rlc3QsIEJheik7Ci0gICAgICAuLi4gZGVmaW5pdGlvbiBvZiB0
aGUgY2xhc3MgRm9vIC4uLgotICAgIH07Ci0KLSAgICB9ICAvLyBuYW1lc3BhY2UgbXlfbmFtZXNw
YWNlCi0gICAgYGBgCi0KLSAgICBZb3VyIHRlc3QgY29kZSBzaG91bGQgYmUgc29tZXRoaW5nIGxp
a2U6Ci0KLSAgICBgYGBjKysKLSAgICBuYW1lc3BhY2UgbXlfbmFtZXNwYWNlIHsKLQotICAgIGNs
YXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSAgICAgcHJvdGVjdGVkOgot
ICAgICAgLi4uCi0gICAgfTsKLQotICAgIFRFU1RfRihGb29UZXN0LCBCYXIpIHsgLi4uIH0KLSAg
ICBURVNUX0YoRm9vVGVzdCwgQmF6KSB7IC4uLiB9Ci0KLSAgICB9ICAvLyBuYW1lc3BhY2UgbXlf
bmFtZXNwYWNlCi0gICAgYGBgCi0KLQotIyMgIkNhdGNoaW5nIiBGYWlsdXJlcwotCi1JZiB5b3Ug
YXJlIGJ1aWxkaW5nIGEgdGVzdGluZyB1dGlsaXR5IG9uIHRvcCBvZiBnb29nbGV0ZXN0LCB5b3Un
bGwgd2FudCB0byB0ZXN0Ci15b3VyIHV0aWxpdHkuIFdoYXQgZnJhbWV3b3JrIHdvdWxkIHlvdSB1
c2UgdG8gdGVzdCBpdD8gZ29vZ2xldGVzdCwgb2YgY291cnNlLgotCi1UaGUgY2hhbGxlbmdlIGlz
IHRvIHZlcmlmeSB0aGF0IHlvdXIgdGVzdGluZyB1dGlsaXR5IHJlcG9ydHMgZmFpbHVyZXMgY29y
cmVjdGx5LgotSW4gZnJhbWV3b3JrcyB0aGF0IHJlcG9ydCBhIGZhaWx1cmUgYnkgdGhyb3dpbmcg
YW4gZXhjZXB0aW9uLCB5b3UgY291bGQgY2F0Y2gKLXRoZSBleGNlcHRpb24gYW5kIGFzc2VydCBv
biBpdC4gQnV0IGdvb2dsZXRlc3QgZG9lc24ndCB1c2UgZXhjZXB0aW9ucywgc28gaG93IGRvCi13
ZSB0ZXN0IHRoYXQgYSBwaWVjZSBvZiBjb2RlIGdlbmVyYXRlcyBhbiBleHBlY3RlZCBmYWlsdXJl
PwotCi1ndW5pdC1zcGkuaCBjb250YWlucyBzb21lIGNvbnN0cnVjdHMgdG8gZG8gdGhpcy4gQWZ0
ZXIgI2luY2x1ZGluZyB0aGlzIGhlYWRlciwKLXlvdSBjYW4gdXNlCi0KLWBgYGMrKwotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRShzdGF0ZW1lbnQsIHN1YnN0cmluZyk7Ci1gYGAKLQotdG8gYXNzZXJ0
IHRoYXQgYHN0YXRlbWVudGAgZ2VuZXJhdGVzIGEgZmF0YWwgKGUuZy4gYEFTU0VSVF8qYCkgZmFp
bHVyZSBpbiB0aGUKLWN1cnJlbnQgdGhyZWFkIHdob3NlIG1lc3NhZ2UgY29udGFpbnMgdGhlIGdp
dmVuIGBzdWJzdHJpbmdgLCBvciB1c2UKLQotYGBgYysrCi0gIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKHN0YXRlbWVudCwgc3Vic3RyaW5nKTsKLWBgYAotCi1pZiB5b3UgYXJlIGV4cGVjdGluZyBh
IG5vbi1mYXRhbCAoZS5nLiBgRVhQRUNUXypgKSBmYWlsdXJlLgotCi1Pbmx5IGZhaWx1cmVzIGlu
IHRoZSBjdXJyZW50IHRocmVhZCBhcmUgY2hlY2tlZCB0byBkZXRlcm1pbmUgdGhlIHJlc3VsdCBv
ZiB0aGlzCi10eXBlIG9mIGV4cGVjdGF0aW9ucy4gSWYgYHN0YXRlbWVudGAgY3JlYXRlcyBuZXcg
dGhyZWFkcywgZmFpbHVyZXMgaW4gdGhlc2UKLXRocmVhZHMgYXJlIGFsc28gaWdub3JlZC4gSWYg
eW91IHdhbnQgdG8gY2F0Y2ggZmFpbHVyZXMgaW4gb3RoZXIgdGhyZWFkcyBhcwotd2VsbCwgdXNl
IG9uZSBvZiB0aGUgZm9sbG93aW5nIG1hY3JvcyBpbnN0ZWFkOgotCi1gYGBjKysKLSAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkVfT05fQUxMX1RIUkVBRFMoc3RhdGVtZW50LCBzdWJzdHJpbmcpOwotICBF
WFBFQ1RfTk9ORkFUQUxfRkFJTFVSRV9PTl9BTExfVEhSRUFEUyhzdGF0ZW1lbnQsIHN1YnN0cmlu
Zyk7Ci1gYGAKLQotTk9URTogQXNzZXJ0aW9ucyBmcm9tIG11bHRpcGxlIHRocmVhZHMgYXJlIGN1
cnJlbnRseSBub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3MuCi0KLUZvciB0ZWNobmljYWwgcmVhc29u
cywgdGhlcmUgYXJlIHNvbWUgY2F2ZWF0czoKLQotMS4gIFlvdSBjYW5ub3Qgc3RyZWFtIGEgZmFp
bHVyZSBtZXNzYWdlIHRvIGVpdGhlciBtYWNyby4KLQotMS4gIGBzdGF0ZW1lbnRgIGluIGBFWFBF
Q1RfRkFUQUxfRkFJTFVSRXtfT05fQUxMX1RIUkVBRFN9KClgIGNhbm5vdCByZWZlcmVuY2UKLSAg
ICBsb2NhbCBub24tc3RhdGljIHZhcmlhYmxlcyBvciBub24tc3RhdGljIG1lbWJlcnMgb2YgYHRo
aXNgIG9iamVjdC4KLQotMS4gIGBzdGF0ZW1lbnRgIGluIGBFWFBFQ1RfRkFUQUxfRkFJTFVSRXtf
T05fQUxMX1RIUkVBRFN9KCkoKWAgY2Fubm90IHJldHVybiBhCi0gICAgdmFsdWUuCi0KLQotIyMg
R2V0dGluZyB0aGUgQ3VycmVudCBUZXN0J3MgTmFtZQotCi1Tb21ldGltZXMgYSBmdW5jdGlvbiBt
YXkgbmVlZCB0byBrbm93IHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0Lgot
Rm9yIGV4YW1wbGUsIHlvdSBtYXkgYmUgdXNpbmcgdGhlIGBTZXRVcCgpYCBtZXRob2Qgb2YgeW91
ciB0ZXN0IGZpeHR1cmUgdG8gc2V0Ci10aGUgZ29sZGVuIGZpbGUgbmFtZSBiYXNlZCBvbiB3aGlj
aCB0ZXN0IGlzIHJ1bm5pbmcuIFRoZSBgOjp0ZXN0aW5nOjpUZXN0SW5mb2AKLWNsYXNzIGhhcyB0
aGlzIGluZm9ybWF0aW9uOgotCi1gYGBjKysKLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotY2xhc3Mg
VGVzdEluZm8gewotIHB1YmxpYzoKLSAgLy8gUmV0dXJucyB0aGUgdGVzdCBjYXNlIG5hbWUgYW5k
IHRoZSB0ZXN0IG5hbWUsIHJlc3BlY3RpdmVseS4KLSAgLy8KLSAgLy8gRG8gTk9UIGRlbGV0ZSBv
ciBmcmVlIHRoZSByZXR1cm4gdmFsdWUgLSBpdCdzIG1hbmFnZWQgYnkgdGhlCi0gIC8vIFRlc3RJ
bmZvIGNsYXNzLgotICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSgpIGNvbnN0OwotICBjb25z
dCBjaGFyKiBuYW1lKCkgY29uc3Q7Ci19OwotCi19Ci1gYGAKLQotVG8gb2J0YWluIGEgYFRlc3RJ
bmZvYCBvYmplY3QgZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LCBjYWxsCi1gY3VycmVu
dF90ZXN0X2luZm8oKWAgb24gdGhlIGBVbml0VGVzdGAgc2luZ2xldG9uIG9iamVjdDoKLQotYGBg
YysrCi0gIC8vIEdldHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRl
c3QuCi0gIC8vIERvIE5PVCBkZWxldGUgdGhlIHJldHVybmVkIG9iamVjdCAtIGl0J3MgbWFuYWdl
ZCBieSB0aGUgVW5pdFRlc3QgY2xhc3MuCi0gIGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8qIGNv
bnN0IHRlc3RfaW5mbyA9Ci0gICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+
Y3VycmVudF90ZXN0X2luZm8oKTsKLQotCi0KLSAgcHJpbnRmKCJXZSBhcmUgaW4gdGVzdCAlcyBv
ZiB0ZXN0IGNhc2UgJXMuXG4iLAotICAgICAgICAgdGVzdF9pbmZvLT5uYW1lKCksCi0gICAgICAg
ICB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCkpOwotYGBgCi0KLWBjdXJyZW50X3Rlc3RfaW5m
bygpYCByZXR1cm5zIGEgbnVsbCBwb2ludGVyIGlmIG5vIHRlc3QgaXMgcnVubmluZy4gSW4KLXBh
cnRpY3VsYXIsIHlvdSBjYW5ub3QgZmluZCB0aGUgdGVzdCBjYXNlIG5hbWUgaW4gYFRlc3RDYXNl
U2V0VXAoKWAsCi1gVGVzdENhc2VUZWFyRG93bigpYCAod2hlcmUgeW91IGtub3cgdGhlIHRlc3Qg
Y2FzZSBuYW1lIGltcGxpY2l0bHkpLCBvcgotZnVuY3Rpb25zIGNhbGxlZCBmcm9tIHRoZW0uCi0K
LSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIEV4dGVuZGluZyBn
b29nbGV0ZXN0IGJ5IEhhbmRsaW5nIFRlc3QgRXZlbnRzCi0KLWdvb2dsZXRlc3QgcHJvdmlkZXMg
YW4gKipldmVudCBsaXN0ZW5lciBBUEkqKiB0byBsZXQgeW91IHJlY2VpdmUgbm90aWZpY2F0aW9u
cwotYWJvdXQgdGhlIHByb2dyZXNzIG9mIGEgdGVzdCBwcm9ncmFtIGFuZCB0ZXN0IGZhaWx1cmVz
LiBUaGUgZXZlbnRzIHlvdSBjYW4KLWxpc3RlbiB0byBpbmNsdWRlIHRoZSBzdGFydCBhbmQgZW5k
IG9mIHRoZSB0ZXN0IHByb2dyYW0sIGEgdGVzdCBjYXNlLCBvciBhIHRlc3QKLW1ldGhvZCwgYW1v
bmcgb3RoZXJzLiBZb3UgbWF5IHVzZSB0aGlzIEFQSSB0byBhdWdtZW50IG9yIHJlcGxhY2UgdGhl
IHN0YW5kYXJkCi1jb25zb2xlIG91dHB1dCwgcmVwbGFjZSB0aGUgWE1MIG91dHB1dCwgb3IgcHJv
dmlkZSBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZvcm0KLW9mIG91dHB1dCwgc3VjaCBhcyBhIEdV
SSBvciBhIGRhdGFiYXNlLiBZb3UgY2FuIGFsc28gdXNlIHRlc3QgZXZlbnRzIGFzCi1jaGVja3Bv
aW50cyB0byBpbXBsZW1lbnQgYSByZXNvdXJjZSBsZWFrIGNoZWNrZXIsIGZvciBleGFtcGxlLgot
Ci0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0jIyMgRGVmaW5pbmcg
RXZlbnQgTGlzdGVuZXJzCi0KLVRvIGRlZmluZSBhIGV2ZW50IGxpc3RlbmVyLCB5b3Ugc3ViY2xh
c3MgZWl0aGVyIHRlc3Rpbmc6OlRlc3RFdmVudExpc3RlbmVyIG9yCi10ZXN0aW5nOjpFbXB0eVRl
c3RFdmVudExpc3RlbmVyIFRoZSBmb3JtZXIgaXMgYW4gKGFic3RyYWN0KSBpbnRlcmZhY2UsIHdo
ZXJlCi0qZWFjaCBwdXJlIHZpcnR1YWwgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIHRvIGhhbmRs
ZSBhIHRlc3QgZXZlbnQqIChGb3IKLWV4YW1wbGUsIHdoZW4gYSB0ZXN0IHN0YXJ0cywgdGhlIGBP
blRlc3RTdGFydCgpYCBtZXRob2Qgd2lsbCBiZSBjYWxsZWQuKS4gVGhlCi1sYXR0ZXIgcHJvdmlk
ZXMgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24gb2YgYWxsIG1ldGhvZHMgaW4gdGhlIGludGVyZmFj
ZSwgc3VjaAotdGhhdCBhIHN1YmNsYXNzIG9ubHkgbmVlZHMgdG8gb3ZlcnJpZGUgdGhlIG1ldGhv
ZHMgaXQgY2FyZXMgYWJvdXQuCi0KLVdoZW4gYW4gZXZlbnQgaXMgZmlyZWQsIGl0cyBjb250ZXh0
IGlzIHBhc3NlZCB0byB0aGUgaGFuZGxlciBmdW5jdGlvbiBhcyBhbgotYXJndW1lbnQuIFRoZSBm
b2xsb3dpbmcgYXJndW1lbnQgdHlwZXMgYXJlIHVzZWQ6Ci0KLSogICBVbml0VGVzdCByZWZsZWN0
cyB0aGUgc3RhdGUgb2YgdGhlIGVudGlyZSB0ZXN0IHByb2dyYW0sCi0qICAgVGVzdENhc2UgaGFz
IGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdCBjYXNlLCB3aGljaCBjYW4gY29udGFpbiBvbmUgb3Ig
bW9yZQotICAgIHRlc3RzLAotKiAgIFRlc3RJbmZvIGNvbnRhaW5zIHRoZSBzdGF0ZSBvZiBhIHRl
c3QsIGFuZAotKiAgIFRlc3RQYXJ0UmVzdWx0IHJlcHJlc2VudHMgdGhlIHJlc3VsdCBvZiBhIHRl
c3QgYXNzZXJ0aW9uLgotCi1BbiBldmVudCBoYW5kbGVyIGZ1bmN0aW9uIGNhbiBleGFtaW5lIHRo
ZSBhcmd1bWVudCBpdCByZWNlaXZlcyB0byBmaW5kIG91dAotaW50ZXJlc3RpbmcgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIGV2ZW50IGFuZCB0aGUgdGVzdCBwcm9ncmFtJ3Mgc3RhdGUuCi0KLUhlcmUn
cyBhbiBleGFtcGxlOgotCi1gYGBjKysKLSAgY2xhc3MgTWluaW1hbGlzdFByaW50ZXIgOiBwdWJs
aWMgOjp0ZXN0aW5nOjpFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKLSAgICAvLyBDYWxsZWQgYmVm
b3JlIGEgdGVzdCBzdGFydHMuCi0gICAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IDo6
dGVzdGluZzo6VGVzdEluZm8mIHRlc3RfaW5mbykgewotICAgICAgcHJpbnRmKCIqKiogVGVzdCAl
cy4lcyBzdGFydGluZy5cbiIsCi0gICAgICAgICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1l
KCksIHRlc3RfaW5mby5uYW1lKCkpOwotICAgIH0KLQotICAgIC8vIENhbGxlZCBhZnRlciBhIGZh
aWxlZCBhc3NlcnRpb24gb3IgYSBTVUNDRVNTKCkuCi0gICAgdmlydHVhbCB2b2lkIE9uVGVzdFBh
cnRSZXN1bHQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3Vs
dCkgewotICAgICAgcHJpbnRmKCIlcyBpbiAlczolZFxuJXNcbiIsCi0gICAgICAgICAgICAgdGVz
dF9wYXJ0X3Jlc3VsdC5mYWlsZWQoKSA/ICIqKiogRmFpbHVyZSIgOiAiU3VjY2VzcyIsCi0gICAg
ICAgICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5maWxlX25hbWUoKSwKLSAgICAgICAgICAgICB0ZXN0
X3BhcnRfcmVzdWx0LmxpbmVfbnVtYmVyKCksCi0gICAgICAgICAgICAgdGVzdF9wYXJ0X3Jlc3Vs
dC5zdW1tYXJ5KCkpOwotICAgIH0KLQotICAgIC8vIENhbGxlZCBhZnRlciBhIHRlc3QgZW5kcy4K
LSAgICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5kKGNvbnN0IDo6dGVzdGluZzo6VGVzdEluZm8mIHRl
c3RfaW5mbykgewotICAgICAgcHJpbnRmKCIqKiogVGVzdCAlcy4lcyBlbmRpbmcuXG4iLAotICAg
ICAgICAgICAgIHRlc3RfaW5mby50ZXN0X2Nhc2VfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsK
LSAgICB9Ci0gIH07Ci1gYGAKLQotIyMjIFVzaW5nIEV2ZW50IExpc3RlbmVycwotCi1UbyB1c2Ug
dGhlIGV2ZW50IGxpc3RlbmVyIHlvdSBoYXZlIGRlZmluZWQsIGFkZCBhbiBpbnN0YW5jZSBvZiBp
dCB0byB0aGUKLWdvb2dsZXRlc3QgZXZlbnQgbGlzdGVuZXIgbGlzdCAocmVwcmVzZW50ZWQgYnkg
Y2xhc3MgVGVzdEV2ZW50TGlzdGVuZXJzIC0gbm90ZQotdGhlICJzIiBhdCB0aGUgZW5kIG9mIHRo
ZSBuYW1lKSBpbiB5b3VyIGBtYWluKClgIGZ1bmN0aW9uLCBiZWZvcmUgY2FsbGluZwotYFJVTl9B
TExfVEVTVFMoKWA6Ci0KLWBgYGMrKwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7
Ci0gIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotICAvLyBHZXRzIGhv
bGQgb2YgdGhlIGV2ZW50IGxpc3RlbmVyIGxpc3QuCi0gIDo6dGVzdGluZzo6VGVzdEV2ZW50TGlz
dGVuZXJzJiBsaXN0ZW5lcnMgPQotICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpLT5saXN0ZW5lcnMoKTsKLSAgLy8gQWRkcyBhIGxpc3RlbmVyIHRvIHRoZSBlbmQuICBn
b29nbGV0ZXN0IHRha2VzIHRoZSBvd25lcnNoaXAuCi0gIGxpc3RlbmVycy5BcHBlbmQobmV3IE1p
bmltYWxpc3RQcmludGVyKTsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLX0KLWBgYAotCi1U
aGVyZSdzIG9ubHkgb25lIHByb2JsZW06IHRoZSBkZWZhdWx0IHRlc3QgcmVzdWx0IHByaW50ZXIg
aXMgc3RpbGwgaW4gZWZmZWN0LCBzbwotaXRzIG91dHB1dCB3aWxsIG1pbmdsZSB3aXRoIHRoZSBv
dXRwdXQgZnJvbSB5b3VyIG1pbmltYWxpc3QgcHJpbnRlci4gVG8gc3VwcHJlc3MKLXRoZSBkZWZh
dWx0IHByaW50ZXIsIGp1c3QgcmVsZWFzZSBpdCBmcm9tIHRoZSBldmVudCBsaXN0ZW5lciBsaXN0
IGFuZCBkZWxldGUgaXQuCi1Zb3UgY2FuIGRvIHNvIGJ5IGFkZGluZyBvbmUgbGluZToKLQotYGBg
YysrCi0gIC4uLgotICBkZWxldGUgbGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXJzLmRlZmF1bHRf
cmVzdWx0X3ByaW50ZXIoKSk7Ci0gIGxpc3RlbmVycy5BcHBlbmQobmV3IE1pbmltYWxpc3RQcmlu
dGVyKTsKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLWBgYAotCi1Ob3csIHNpdCBiYWNrIGFu
ZCBlbmpveSBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IG91dHB1dCBmcm9tIHlvdXIgdGVzdHMuIEZv
ciBtb3JlCi1kZXRhaWxzLCB5b3UgY2FuIHJlYWQgdGhpcyBzYW1wbGU5X3VuaXR0ZXN0LmNjCi0K
LVlvdSBtYXkgYXBwZW5kIG1vcmUgdGhhbiBvbmUgbGlzdGVuZXIgdG8gdGhlIGxpc3QuIFdoZW4g
YW4gYE9uKlN0YXJ0KClgIG9yCi1gT25UZXN0UGFydFJlc3VsdCgpYCBldmVudCBpcyBmaXJlZCwg
dGhlIGxpc3RlbmVycyB3aWxsIHJlY2VpdmUgaXQgaW4gdGhlIG9yZGVyCi10aGV5IGFwcGVhciBp
biB0aGUgbGlzdCAoc2luY2UgbmV3IGxpc3RlbmVycyBhcmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0
aGUgbGlzdCwKLXRoZSBkZWZhdWx0IHRleHQgcHJpbnRlciBhbmQgdGhlIGRlZmF1bHQgWE1MIGdl
bmVyYXRvciB3aWxsIHJlY2VpdmUgdGhlIGV2ZW50Ci1maXJzdCkuIEFuIGBPbipFbmQoKWAgZXZl
bnQgd2lsbCBiZSByZWNlaXZlZCBieSB0aGUgbGlzdGVuZXJzIGluIHRoZSAqcmV2ZXJzZSoKLW9y
ZGVyLiBUaGlzIGFsbG93cyBvdXRwdXQgYnkgbGlzdGVuZXJzIGFkZGVkIGxhdGVyIHRvIGJlIGZy
YW1lZCBieSBvdXRwdXQgZnJvbQotbGlzdGVuZXJzIGFkZGVkIGVhcmxpZXIuCi0KLSMjIyBHZW5l
cmF0aW5nIEZhaWx1cmVzIGluIExpc3RlbmVycwotCi1Zb3UgbWF5IHVzZSBmYWlsdXJlLXJhaXNp
bmcgbWFjcm9zIChgRVhQRUNUXyooKWAsIGBBU1NFUlRfKigpYCwgYEZBSUwoKWAsIGV0YykKLXdo
ZW4gcHJvY2Vzc2luZyBhbiBldmVudC4gVGhlcmUgYXJlIHNvbWUgcmVzdHJpY3Rpb25zOgotCi0x
LiAgWW91IGNhbm5vdCBnZW5lcmF0ZSBhbnkgZmFpbHVyZSBpbiBgT25UZXN0UGFydFJlc3VsdCgp
YCAob3RoZXJ3aXNlIGl0IHdpbGwKLSAgICBjYXVzZSBgT25UZXN0UGFydFJlc3VsdCgpYCB0byBi
ZSBjYWxsZWQgcmVjdXJzaXZlbHkpLgotMS4gIEEgbGlzdGVuZXIgdGhhdCBoYW5kbGVzIGBPblRl
c3RQYXJ0UmVzdWx0KClgIGlzIG5vdCBhbGxvd2VkIHRvIGdlbmVyYXRlIGFueQotICAgIGZhaWx1
cmUuCi0KLVdoZW4geW91IGFkZCBsaXN0ZW5lcnMgdG8gdGhlIGxpc3RlbmVyIGxpc3QsIHlvdSBz
aG91bGQgcHV0IGxpc3RlbmVycyB0aGF0Ci1oYW5kbGUgYE9uVGVzdFBhcnRSZXN1bHQoKWAgKmJl
Zm9yZSogbGlzdGVuZXJzIHRoYXQgY2FuIGdlbmVyYXRlIGZhaWx1cmVzLiBUaGlzCi1lbnN1cmVz
IHRoYXQgZmFpbHVyZXMgZ2VuZXJhdGVkIGJ5IHRoZSBsYXR0ZXIgYXJlIGF0dHJpYnV0ZWQgdG8g
dGhlIHJpZ2h0IHRlc3QKLWJ5IHRoZSBmb3JtZXIuCi0KLVdlIGhhdmUgYSBzYW1wbGUgb2YgZmFp
bHVyZS1yYWlzaW5nIGxpc3RlbmVyIHNhbXBsZTEwX3VuaXR0ZXN0LmNjCi0KLSMjIFJ1bm5pbmcg
VGVzdCBQcm9ncmFtczogQWR2YW5jZWQgT3B0aW9ucwotCi1nb29nbGV0ZXN0IHRlc3QgcHJvZ3Jh
bXMgYXJlIG9yZGluYXJ5IGV4ZWN1dGFibGVzLiBPbmNlIGJ1aWx0LCB5b3UgY2FuIHJ1biB0aGVt
Ci1kaXJlY3RseSBhbmQgYWZmZWN0IHRoZWlyIGJlaGF2aW9yIHZpYSB0aGUgZm9sbG93aW5nIGVu
dmlyb25tZW50IHZhcmlhYmxlcwotYW5kL29yIGNvbW1hbmQgbGluZSBmbGFncy4gRm9yIHRoZSBm
bGFncyB0byB3b3JrLCB5b3VyIHByb2dyYW1zIG11c3QgY2FsbAotYDo6dGVzdGluZzo6SW5pdEdv
b2dsZVRlc3QoKWAgYmVmb3JlIGNhbGxpbmcgYFJVTl9BTExfVEVTVFMoKWAuCi0KLVRvIHNlZSBh
IGxpc3Qgb2Ygc3VwcG9ydGVkIGZsYWdzIGFuZCB0aGVpciB1c2FnZSwgcGxlYXNlIHJ1biB5b3Vy
IHRlc3QgcHJvZ3JhbQotd2l0aCB0aGUgYC0taGVscGAgZmxhZy4gWW91IGNhbiBhbHNvIHVzZSBg
LWhgLCBgLT9gLCBvciBgLz9gIGZvciBzaG9ydC4KLQotSWYgYW4gb3B0aW9uIGlzIHNwZWNpZmll
ZCBib3RoIGJ5IGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCBieSBhIGZsYWcsIHRoZQotbGF0
dGVyIHRha2VzIHByZWNlZGVuY2UuCi0KLSMjIyBTZWxlY3RpbmcgVGVzdHMKLQotIyMjIyBMaXN0
aW5nIFRlc3QgTmFtZXMKLQotU29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBsaXN0IHRoZSBh
dmFpbGFibGUgdGVzdHMgaW4gYSBwcm9ncmFtIGJlZm9yZQotcnVubmluZyB0aGVtIHNvIHRoYXQg
YSBmaWx0ZXIgbWF5IGJlIGFwcGxpZWQgaWYgbmVlZGVkLiBJbmNsdWRpbmcgdGhlIGZsYWcKLWAt
LWd0ZXN0X2xpc3RfdGVzdHNgIG92ZXJyaWRlcyBhbGwgb3RoZXIgZmxhZ3MgYW5kIGxpc3RzIHRl
c3RzIGluIHRoZSBmb2xsb3dpbmcKLWZvcm1hdDoKLQotYGBgbm9uZQotVGVzdENhc2UxLgotICBU
ZXN0TmFtZTEKLSAgVGVzdE5hbWUyCi1UZXN0Q2FzZTIuCi0gIFRlc3ROYW1lCi1gYGAKLQotTm9u
ZSBvZiB0aGUgdGVzdHMgbGlzdGVkIGFyZSBhY3R1YWxseSBydW4gaWYgdGhlIGZsYWcgaXMgcHJv
dmlkZWQuIFRoZXJlIGlzIG5vCi1jb3JyZXNwb25kaW5nIGVudmlyb25tZW50IHZhcmlhYmxlIGZv
ciB0aGlzIGZsYWcuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0K
LSMjIyMgUnVubmluZyBhIFN1YnNldCBvZiB0aGUgVGVzdHMKLQotQnkgZGVmYXVsdCwgYSBnb29n
bGV0ZXN0IHByb2dyYW0gcnVucyBhbGwgdGVzdHMgdGhlIHVzZXIgaGFzIGRlZmluZWQuIFNvbWV0
aW1lcywKLXlvdSB3YW50IHRvIHJ1biBvbmx5IGEgc3Vic2V0IG9mIHRoZSB0ZXN0cyAoZS5nLiBm
b3IgZGVidWdnaW5nIG9yIHF1aWNrbHkKLXZlcmlmeWluZyBhIGNoYW5nZSkuIElmIHlvdSBzZXQg
dGhlIGBHVEVTVF9GSUxURVJgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZQotYC0tZ3Rlc3Rf
ZmlsdGVyYCBmbGFnIHRvIGEgZmlsdGVyIHN0cmluZywgZ29vZ2xldGVzdCB3aWxsIG9ubHkgcnVu
IHRoZSB0ZXN0cwotd2hvc2UgZnVsbCBuYW1lcyAoaW4gdGhlIGZvcm0gb2YgYFRlc3RDYXNlTmFt
ZS5UZXN0TmFtZWApIG1hdGNoIHRoZSBmaWx0ZXIuCi0KLVRoZSBmb3JtYXQgb2YgYSBmaWx0ZXIg
aXMgYSAnYDpgJy1zZXBhcmF0ZWQgbGlzdCBvZiB3aWxkY2FyZCBwYXR0ZXJucyAoY2FsbGVkCi10
aGUgKnBvc2l0aXZlIHBhdHRlcm5zKikgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhICdgLWAnIGFu
ZCBhbm90aGVyCi0nYDpgJy1zZXBhcmF0ZWQgcGF0dGVybiBsaXN0IChjYWxsZWQgdGhlICpuZWdh
dGl2ZSBwYXR0ZXJucyopLiBBIHRlc3QgbWF0Y2hlcwotdGhlIGZpbHRlciBpZiBhbmQgb25seSBp
ZiBpdCBtYXRjaGVzIGFueSBvZiB0aGUgcG9zaXRpdmUgcGF0dGVybnMgYnV0IGRvZXMgbm90Ci1t
YXRjaCBhbnkgb2YgdGhlIG5lZ2F0aXZlIHBhdHRlcm5zLgotCi1BIHBhdHRlcm4gbWF5IGNvbnRh
aW4gYCcqJ2AgKG1hdGNoZXMgYW55IHN0cmluZykgb3IgYCc/J2AgKG1hdGNoZXMgYW55IHNpbmds
ZQotY2hhcmFjdGVyKS4gRm9yIGNvbnZlbmllbmNlLCB0aGUgZmlsdGVyCi0KLWAnKi1OZWdhdGl2
ZVBhdHRlcm5zJ2AgY2FuIGJlIGFsc28gd3JpdHRlbiBhcyBgJy1OZWdhdGl2ZVBhdHRlcm5zJ2Au
Ci0KLUZvciBleGFtcGxlOgotCi0qICAgYC4vZm9vX3Rlc3RgIEhhcyBubyBmbGFnLCBhbmQgdGh1
cyBydW5zIGFsbCBpdHMgdGVzdHMuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0ZXI9KmAg
QWxzbyBydW5zIGV2ZXJ5dGhpbmcsIGR1ZSB0byB0aGUgc2luZ2xlCi0gICAgbWF0Y2gtZXZlcnl0
aGluZyBgKmAgdmFsdWUuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0ZXI9Rm9vVGVzdC4q
YCBSdW5zIGV2ZXJ5dGhpbmcgaW4gdGVzdCBjYXNlIGBGb29UZXN0YAotICAgIC4KLSogICBgLi9m
b29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0qTnVsbCo6KkNvbnN0cnVjdG9yKmAgUnVucyBhbnkgdGVz
dCB3aG9zZSBmdWxsCi0gICAgbmFtZSBjb250YWlucyBlaXRoZXIgYCJOdWxsImAgb3IgYCJDb25z
dHJ1Y3RvciJgIC4KLSogICBgLi9mb29fdGVzdCAtLWd0ZXN0X2ZpbHRlcj0tKkRlYXRoVGVzdC4q
YCBSdW5zIGFsbCBub24tZGVhdGggdGVzdHMuCi0qICAgYC4vZm9vX3Rlc3QgLS1ndGVzdF9maWx0
ZXI9Rm9vVGVzdC4qLUZvb1Rlc3QuQmFyYCBSdW5zIGV2ZXJ5dGhpbmcgaW4gdGVzdAotICAgIGNh
c2UgYEZvb1Rlc3RgIGV4Y2VwdCBgRm9vVGVzdC5CYXJgLgotKiAgIGAuL2Zvb190ZXN0IC0tZ3Rl
c3RfZmlsdGVyPUZvb1Rlc3QuKjpCYXJUZXN0LiotRm9vVGVzdC5CYXI6QmFyVGVzdC5Gb29gIFJ1
bnMKLSAgICBldmVyeXRoaW5nIGluIHRlc3QgY2FzZSBgRm9vVGVzdGAgZXhjZXB0IGBGb29UZXN0
LkJhcmAgYW5kIGV2ZXJ5dGhpbmcgaW4KLSAgICB0ZXN0IGNhc2UgYEJhclRlc3RgIGV4Y2VwdCBg
QmFyVGVzdC5Gb29gLgotICAgIAotIyMjIyBUZW1wb3JhcmlseSBEaXNhYmxpbmcgVGVzdHMKLQot
SWYgeW91IGhhdmUgYSBicm9rZW4gdGVzdCB0aGF0IHlvdSBjYW5ub3QgZml4IHJpZ2h0IGF3YXks
IHlvdSBjYW4gYWRkIHRoZQotYERJU0FCTEVEX2AgcHJlZml4IHRvIGl0cyBuYW1lLiBUaGlzIHdp
bGwgZXhjbHVkZSBpdCBmcm9tIGV4ZWN1dGlvbi4gVGhpcyBpcwotYmV0dGVyIHRoYW4gY29tbWVu
dGluZyBvdXQgdGhlIGNvZGUgb3IgdXNpbmcgYCNpZiAwYCwgYXMgZGlzYWJsZWQgdGVzdHMgYXJl
Ci1zdGlsbCBjb21waWxlZCAoYW5kIHRodXMgd29uJ3Qgcm90KS4KLQotSWYgeW91IG5lZWQgdG8g
ZGlzYWJsZSBhbGwgdGVzdHMgaW4gYSB0ZXN0IGNhc2UsIHlvdSBjYW4gZWl0aGVyIGFkZCBgRElT
QUJMRURfYAotdG8gdGhlIGZyb250IG9mIHRoZSBuYW1lIG9mIGVhY2ggdGVzdCwgb3IgYWx0ZXJu
YXRpdmVseSBhZGQgaXQgdG8gdGhlIGZyb250IG9mCi10aGUgdGVzdCBjYXNlIG5hbWUuCi0KLUZv
ciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHRlc3RzIHdvbid0IGJlIHJ1biBieSBnb29nbGV0ZXN0
LCBldmVuIHRob3VnaCB0aGV5Ci13aWxsIHN0aWxsIGJlIGNvbXBpbGVkOgotCi1gYGBjKysKLS8v
IFRlc3RzIHRoYXQgRm9vIGRvZXMgQWJjLgotVEVTVChGb29UZXN0LCBESVNBQkxFRF9Eb2VzQWJj
KSB7IC4uLiB9Ci0KLWNsYXNzIERJU0FCTEVEX0JhclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpU
ZXN0IHsgLi4uIH07Ci0KLS8vIFRlc3RzIHRoYXQgQmFyIGRvZXMgWHl6LgotVEVTVF9GKERJU0FC
TEVEX0JhclRlc3QsIERvZXNYeXopIHsgLi4uIH0KLWBgYAotCi1OT1RFOiBUaGlzIGZlYXR1cmUg
c2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVtcG9yYXJ5IHBhaW4tcmVsaWVmLiBZb3Ugc3RpbGwg
aGF2ZQotdG8gZml4IHRoZSBkaXNhYmxlZCB0ZXN0cyBhdCBhIGxhdGVyIGRhdGUuIEFzIGEgcmVt
aW5kZXIsIGdvb2dsZXRlc3Qgd2lsbCBwcmludAotYSBiYW5uZXIgd2FybmluZyB5b3UgaWYgYSB0
ZXN0IHByb2dyYW0gY29udGFpbnMgYW55IGRpc2FibGVkIHRlc3RzLgotCi1USVA6IFlvdSBjYW4g
ZWFzaWx5IGNvdW50IHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgeW91IGhhdmUgdXNpbmcg
YGdzZWFyY2hgCi1hbmQvb3IgYGdyZXBgLiBUaGlzIG51bWJlciBjYW4gYmUgdXNlZCBhcyBhIG1l
dHJpYyBmb3IgaW1wcm92aW5nIHlvdXIgdGVzdAotcXVhbGl0eS4KLQotKipBdmFpbGFiaWxpdHkq
KjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBUZW1wb3JhcmlseSBFbmFibGluZyBEaXNh
YmxlZCBUZXN0cwotCi1UbyBpbmNsdWRlIGRpc2FibGVkIHRlc3RzIGluIHRlc3QgZXhlY3V0aW9u
LCBqdXN0IGludm9rZSB0aGUgdGVzdCBwcm9ncmFtIHdpdGgKLXRoZSBgLS1ndGVzdF9hbHNvX3J1
bl9kaXNhYmxlZF90ZXN0c2AgZmxhZyBvciBzZXQgdGhlCi1gR1RFU1RfQUxTT19SVU5fRElTQUJM
RURfVEVTVFNgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgMGAu
Ci1Zb3UgY2FuIGNvbWJpbmUgdGhpcyB3aXRoIHRoZSBgLS1ndGVzdF9maWx0ZXJgIGZsYWcgdG8g
ZnVydGhlciBzZWxlY3Qgd2hpY2gKLWRpc2FibGVkIHRlc3RzIHRvIHJ1bi4KLQotKipBdmFpbGFi
aWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIFJlcGVhdGluZyB0aGUgVGVzdHMK
LQotT25jZSBpbiBhIHdoaWxlIHlvdSdsbCBydW4gaW50byBhIHRlc3Qgd2hvc2UgcmVzdWx0IGlz
IGhpdC1vci1taXNzLiBQZXJoYXBzIGl0Ci13aWxsIGZhaWwgb25seSAxJSBvZiB0aGUgdGltZSwg
bWFraW5nIGl0IHJhdGhlciBoYXJkIHRvIHJlcHJvZHVjZSB0aGUgYnVnIHVuZGVyCi1hIGRlYnVn
Z2VyLiBUaGlzIGNhbiBiZSBhIG1ham9yIHNvdXJjZSBvZiBmcnVzdHJhdGlvbi4KLQotVGhlIGAt
LWd0ZXN0X3JlcGVhdGAgZmxhZyBhbGxvd3MgeW91IHRvIHJlcGVhdCBhbGwgKG9yIHNlbGVjdGVk
KSB0ZXN0IG1ldGhvZHMgaW4KLWEgcHJvZ3JhbSBtYW55IHRpbWVzLiBIb3BlZnVsbHksIGEgZmxh
a3kgdGVzdCB3aWxsIGV2ZW50dWFsbHkgZmFpbCBhbmQgZ2l2ZSB5b3UKLWEgY2hhbmNlIHRvIGRl
YnVnLiBIZXJlJ3MgaG93IHRvIHVzZSBpdDoKLQotYGBgbm9uZQotJCBmb29fdGVzdCAtLWd0ZXN0
X3JlcGVhdD0xMDAwCi1SZXBlYXQgZm9vX3Rlc3QgMTAwMCB0aW1lcyBhbmQgZG9uJ3Qgc3RvcCBh
dCBmYWlsdXJlcy4KLQotJCBmb29fdGVzdCAtLWd0ZXN0X3JlcGVhdD0tMQotQSBuZWdhdGl2ZSBj
b3VudCBtZWFucyByZXBlYXRpbmcgZm9yZXZlci4KLQotJCBmb29fdGVzdCAtLWd0ZXN0X3JlcGVh
dD0xMDAwIC0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZQotUmVwZWF0IGZvb190ZXN0IDEwMDAgdGlt
ZXMsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBmYWlsdXJlLiAgVGhpcwotaXMgZXNwZWNpYWxseSB1
c2VmdWwgd2hlbiBydW5uaW5nIHVuZGVyIGEgZGVidWdnZXI6IHdoZW4gdGhlIHRlc3QKLWZhaWxz
LCBpdCB3aWxsIGRyb3AgaW50byB0aGUgZGVidWdnZXIgYW5kIHlvdSBjYW4gdGhlbiBpbnNwZWN0
Ci12YXJpYWJsZXMgYW5kIHN0YWNrcy4KLQotJCBmb29fdGVzdCAtLWd0ZXN0X3JlcGVhdD0xMDAw
IC0tZ3Rlc3RfZmlsdGVyPUZvb0Jhci4qCi1SZXBlYXQgdGhlIHRlc3RzIHdob3NlIG5hbWUgbWF0
Y2hlcyB0aGUgZmlsdGVyIDEwMDAgdGltZXMuCi1gYGAKLQotSWYgeW91ciB0ZXN0IHByb2dyYW0g
Y29udGFpbnMgW2dsb2JhbCBzZXQtdXAvdGVhci1kb3duXSgjZ2xvYmFsLXNldC11cC1hbmQtdGVh
ci1kb3duKSBjb2RlLCBpdAotd2lsbCBiZSByZXBlYXRlZCBpbiBlYWNoIGl0ZXJhdGlvbiBhcyB3
ZWxsLCBhcyB0aGUgZmxha2luZXNzIG1heSBiZSBpbiBpdC4gWW91Ci1jYW4gYWxzbyBzcGVjaWZ5
IHRoZSByZXBlYXQgY291bnQgYnkgc2V0dGluZyB0aGUgYEdURVNUX1JFUEVBVGAgZW52aXJvbm1l
bnQKLXZhcmlhYmxlLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgot
Ci0jIyMgU2h1ZmZsaW5nIHRoZSBUZXN0cwotCi1Zb3UgY2FuIHNwZWNpZnkgdGhlIGAtLWd0ZXN0
X3NodWZmbGVgIGZsYWcgKG9yIHNldCB0aGUgYEdURVNUX1NIVUZGTEVgCi1lbnZpcm9ubWVudCB2
YXJpYWJsZSB0byBgMWApIHRvIHJ1biB0aGUgdGVzdHMgaW4gYSBwcm9ncmFtIGluIGEgcmFuZG9t
IG9yZGVyLgotVGhpcyBoZWxwcyB0byByZXZlYWwgYmFkIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRl
c3RzLgotCi1CeSBkZWZhdWx0LCBnb29nbGV0ZXN0IHVzZXMgYSByYW5kb20gc2VlZCBjYWxjdWxh
dGVkIGZyb20gdGhlIGN1cnJlbnQgdGltZS4KLVRoZXJlZm9yZSB5b3UnbGwgZ2V0IGEgZGlmZmVy
ZW50IG9yZGVyIGV2ZXJ5IHRpbWUuIFRoZSBjb25zb2xlIG91dHB1dCBpbmNsdWRlcwotdGhlIHJh
bmRvbSBzZWVkIHZhbHVlLCBzdWNoIHRoYXQgeW91IGNhbiByZXByb2R1Y2UgYW4gb3JkZXItcmVs
YXRlZCB0ZXN0IGZhaWx1cmUKLWxhdGVyLiBUbyBzcGVjaWZ5IHRoZSByYW5kb20gc2VlZCBleHBs
aWNpdGx5LCB1c2UgdGhlIGAtLWd0ZXN0X3JhbmRvbV9zZWVkPVNFRURgCi1mbGFnIChvciBzZXQg
dGhlIGBHVEVTVF9SQU5ET01fU0VFRGAgZW52aXJvbm1lbnQgdmFyaWFibGUpLCB3aGVyZSBgU0VF
RGAgaXMgYW4KLWludGVnZXIgaW4gdGhlIHJhbmdlIFswLCA5OTk5OV0uIFRoZSBzZWVkIHZhbHVl
IDAgaXMgc3BlY2lhbDogaXQgdGVsbHMKLWdvb2dsZXRlc3QgdG8gZG8gdGhlIGRlZmF1bHQgYmVo
YXZpb3Igb2YgY2FsY3VsYXRpbmcgdGhlIHNlZWQgZnJvbSB0aGUgY3VycmVudAotdGltZS4KLQot
SWYgeW91IGNvbWJpbmUgdGhpcyB3aXRoIGAtLWd0ZXN0X3JlcGVhdD1OYCwgZ29vZ2xldGVzdCB3
aWxsIHBpY2sgYSBkaWZmZXJlbnQKLXJhbmRvbSBzZWVkIGFuZCByZS1zaHVmZmxlIHRoZSB0ZXN0
cyBpbiBlYWNoIGl0ZXJhdGlvbi4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotIyMjIENvbnRyb2xsaW5nIFRlc3QgT3V0cHV0Ci0KLSMjIyMgQ29sb3JlZCBUZXJt
aW5hbCBPdXRwdXQKLQotZ29vZ2xldGVzdCBjYW4gdXNlIGNvbG9ycyBpbiBpdHMgdGVybWluYWwg
b3V0cHV0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHNwb3QgdGhlCi1pbXBvcnRhbnQgaW5mb3JtYXRp
b246Ci0KLS4uLjxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPlstLS0tLS0tLS0tXTxz
cGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IDEgdGVzdCBmcm9tIEZvb1Rlc3Q8YnIvPgotPHNwYW4g
c3R5bGU9ImNvbG9yOmdyZWVuIj5bIFJVTiAgICAgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PiBGb29UZXN0LkRvZXNBYmM8YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bICAgICAg
IE9LIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBGb29UZXN0LkRvZXNBYmM8YnIvPgotPHNw
YW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bLS0tLS0tLS0tLV08c3BhbiBzdHlsZT0iY29sb3I6Ymxh
Y2siPiAyIHRlc3RzIGZyb20gQmFyVGVzdDxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4i
PlsgUlVOICAgICAgXTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IEJhclRlc3QuSGFzWHl6UHJv
cGVydHk8YnIvPgotPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj5bICAgICAgIE9LIF08c3BhbiBz
dHlsZT0iY29sb3I6YmxhY2siPiBCYXJUZXN0Lkhhc1h5elByb3BlcnR5PGJyLz4KLTxzcGFuIHN0
eWxlPSJjb2xvcjpncmVlbiI+WyBSVU4gICAgICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4g
QmFyVGVzdC5SZXR1cm5zVHJ1ZU9uU3VjY2Vzczxici8+Ci0uLi4gc29tZSBlcnJvciBtZXNzYWdl
cyAuLi48YnIvPgotPHNwYW4gICBzdHlsZT0iY29sb3I6cmVkIj5bICBGQUlMRUQgIF0gPHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj5CYXJUZXN0LlJldHVybnNUcnVlT25TdWNjZXNzPGJyLz4KLS4u
Ljxici8+Ci08c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPls9PT09PT09PT09XTxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+IDMwIHRlc3RzIGZyb20gMTQgdGVzdCBjYXNlcyByYW4uPGJyLz4KLTxz
cGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+WyAgUEFTU0VEICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJs
YWNrIj4gMjggdGVzdHMuPGJyLz4KLTxzcGFuIHN0eWxlPSJjb2xvcjpyZWQiPlsgIEZBSUxFRCAg
XTxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+IDIgdGVzdHMsIGxpc3RlZCBiZWxvdzo8YnIvPgot
PHNwYW4gc3R5bGU9ImNvbG9yOnJlZCI+WyAgRkFJTEVEICBdPHNwYW4gc3R5bGU9ImNvbG9yOmJs
YWNrIj4gQmFyVGVzdC5SZXR1cm5zVHJ1ZU9uU3VjY2Vzczxici8+Ci08c3BhbiBzdHlsZT0iY29s
b3I6cmVkIj5bICBGQUlMRUQgIF08c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiBBbm90aGVyVGVz
dC5Eb2VzWHl6PGJyLz4KLSAgMiBGQUlMRUQgVEVTVFMKLQotWW91IGNhbiBzZXQgdGhlIGBHVEVT
VF9DT0xPUmAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlIGAtLWd0ZXN0X2NvbG9yYAotY29t
bWFuZCBsaW5lIGZsYWcgdG8gYHllc2AsIGBub2AsIG9yIGBhdXRvYCAodGhlIGRlZmF1bHQpIHRv
IGVuYWJsZSBjb2xvcnMsCi1kaXNhYmxlIGNvbG9ycywgb3IgbGV0IGdvb2dsZXRlc3QgZGVjaWRl
LiBXaGVuIHRoZSB2YWx1ZSBpcyBgYXV0b2AsIGdvb2dsZXRlc3QKLXdpbGwgdXNlIGNvbG9ycyBp
ZiBhbmQgb25seSBpZiB0aGUgb3V0cHV0IGdvZXMgdG8gYSB0ZXJtaW5hbCBhbmQgKG9uIG5vbi1X
aW5kb3dzCi1wbGF0Zm9ybXMpIHRoZSBgVEVSTWAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0
IHRvIGB4dGVybWAgb3IgYHh0ZXJtLWNvbG9yYC4KLQotICoqQXZhaWxhYmlsaXR5Kio6IExpbnV4
LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyMgU3VwcHJlc3NpbmcgdGhlIEVsYXBzZWQgVGltZQotCi1C
eSBkZWZhdWx0LCBnb29nbGV0ZXN0IHByaW50cyB0aGUgdGltZSBpdCB0YWtlcyB0byBydW4gZWFj
aCB0ZXN0LiBUbyBkaXNhYmxlCi10aGF0LCBydW4gdGhlIHRlc3QgcHJvZ3JhbSB3aXRoIHRoZSBg
LS1ndGVzdF9wcmludF90aW1lPTBgIGNvbW1hbmQgbGluZSBmbGFnLCBvcgotc2V0IHRoZSBHVEVT
VF9QUklOVF9USU1FIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGAwYC4KLQotKipBdmFpbGFiaWxp
dHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBTdXBwcmVzc2luZyBVVEYtOCBUZXh0
IE91dHB1dAotCi1JbiBjYXNlIG9mIGFzc2VydGlvbiBmYWlsdXJlcywgZ29vZ2xldGVzdCBwcmlu
dHMgZXhwZWN0ZWQgYW5kIGFjdHVhbCB2YWx1ZXMgb2YKLXR5cGUgYHN0cmluZ2AgYm90aCBhcyBo
ZXgtZW5jb2RlZCBzdHJpbmdzIGFzIHdlbGwgYXMgaW4gcmVhZGFibGUgVVRGLTggdGV4dCBpZgot
dGhleSBjb250YWluIHZhbGlkIG5vbi1BU0NJSSBVVEYtOCBjaGFyYWN0ZXJzLiBJZiB5b3Ugd2Fu
dCB0byBzdXBwcmVzcyB0aGUgVVRGLTgKLXRleHQgYmVjYXVzZSwgZm9yIGV4YW1wbGUsIHlvdSBk
b24ndCBoYXZlIGFuIFVURi04IGNvbXBhdGlibGUgb3V0cHV0IG1lZGl1bSwgcnVuCi10aGUgdGVz
dCBwcm9ncmFtIHdpdGggYC0tZ3Rlc3RfcHJpbnRfdXRmOD0wYCBvciBzZXQgdGhlIGBHVEVTVF9Q
UklOVF9VVEY4YAotZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYDBgLgotCi0qKkF2YWlsYWJpbGl0
eSoqOiBMaW51eCwgV2luZG93cywgTWFjLgotCi0KLSMjIyMgR2VuZXJhdGluZyBhbiBYTUwgUmVw
b3J0Ci0KLWdvb2dsZXRlc3QgY2FuIGVtaXQgYSBkZXRhaWxlZCBYTUwgcmVwb3J0IHRvIGEgZmls
ZSBpbiBhZGRpdGlvbiB0byBpdHMgbm9ybWFsCi10ZXh0dWFsIG91dHB1dC4gVGhlIHJlcG9ydCBj
b250YWlucyB0aGUgZHVyYXRpb24gb2YgZWFjaCB0ZXN0LCBhbmQgdGh1cyBjYW4gaGVscAoteW91
IGlkZW50aWZ5IHNsb3cgdGVzdHMuIFRoZSByZXBvcnQgaXMgYWxzbyB1c2VkIGJ5IHRoZSBodHRw
Oi8vdW5pdHRlc3QKLWRhc2hib2FyZCB0byBzaG93IHBlci10ZXN0LW1ldGhvZCBlcnJvciBtZXNz
YWdlcy4KLQotVG8gZ2VuZXJhdGUgdGhlIFhNTCByZXBvcnQsIHNldCB0aGUgYEdURVNUX09VVFBV
VGAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCi1gLS1ndGVzdF9vdXRwdXRgIGZsYWcgdG8g
dGhlIHN0cmluZyBgInhtbDpwYXRoX3RvX291dHB1dF9maWxlImAsIHdoaWNoIHdpbGwKLWNyZWF0
ZSB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uIFlvdSBjYW4gYWxzbyBqdXN0IHVzZSB0
aGUgc3RyaW5nIGAieG1sImAsCi1pbiB3aGljaCBjYXNlIHRoZSBvdXRwdXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBgdGVzdF9kZXRhaWwueG1sYCBmaWxlIGluIHRoZQotY3VycmVudCBkaXJlY3Rvcnku
Ci0KLUlmIHlvdSBzcGVjaWZ5IGEgZGlyZWN0b3J5IChmb3IgZXhhbXBsZSwgYCJ4bWw6b3V0cHV0
L2RpcmVjdG9yeS8iYCBvbiBMaW51eCBvcgotYCJ4bWw6b3V0cHV0XGRpcmVjdG9yeVwiYCBvbiBX
aW5kb3dzKSwgZ29vZ2xldGVzdCB3aWxsIGNyZWF0ZSB0aGUgWE1MIGZpbGUgaW4KLXRoYXQgZGly
ZWN0b3J5LCBuYW1lZCBhZnRlciB0aGUgdGVzdCBleGVjdXRhYmxlIChlLmcuIGBmb29fdGVzdC54
bWxgIGZvciB0ZXN0Ci1wcm9ncmFtIGBmb29fdGVzdGAgb3IgYGZvb190ZXN0LmV4ZWApLiBJZiB0
aGUgZmlsZSBhbHJlYWR5IGV4aXN0cyAocGVyaGFwcyBsZWZ0Ci1vdmVyIGZyb20gYSBwcmV2aW91
cyBydW4pLCBnb29nbGV0ZXN0IHdpbGwgcGljayBhIGRpZmZlcmVudCBuYW1lIChlLmcuCi1gZm9v
X3Rlc3RfMS54bWxgKSB0byBhdm9pZCBvdmVyd3JpdGluZyBpdC4KLQotCi1UaGUgcmVwb3J0IGlz
IGJhc2VkIG9uIHRoZSBganVuaXRyZXBvcnRgIEFudCB0YXNrLiBTaW5jZSB0aGF0IGZvcm1hdCB3
YXMKLW9yaWdpbmFsbHkgaW50ZW5kZWQgZm9yIEphdmEsIGEgbGl0dGxlIGludGVycHJldGF0aW9u
IGlzIHJlcXVpcmVkIHRvIG1ha2UgaXQKLWFwcGx5IHRvIGdvb2dsZXRlc3QgdGVzdHMsIGFzIHNo
b3duIGhlcmU6Ci0KLWBgYHhtbAotPHRlc3RzdWl0ZXMgbmFtZT0iQWxsVGVzdHMiIC4uLj4KLSAg
PHRlc3RzdWl0ZSBuYW1lPSJ0ZXN0X2Nhc2VfbmFtZSIgLi4uPgotICAgIDx0ZXN0Y2FzZSAgICBu
YW1lPSJ0ZXN0X25hbWUiIC4uLj4KLSAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Ii4uLiIvPgotICAg
ICAgPGZhaWx1cmUgbWVzc2FnZT0iLi4uIi8+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdlPSIuLi4i
Lz4KLSAgICA8L3Rlc3RjYXNlPgotICA8L3Rlc3RzdWl0ZT4KLTwvdGVzdHN1aXRlcz4KLWBgYAot
Ci0qICAgVGhlIHJvb3QgYDx0ZXN0c3VpdGVzPmAgZWxlbWVudCBjb3JyZXNwb25kcyB0byB0aGUg
ZW50aXJlIHRlc3QgcHJvZ3JhbS4KLSogICBgPHRlc3RzdWl0ZT5gIGVsZW1lbnRzIGNvcnJlc3Bv
bmQgdG8gZ29vZ2xldGVzdCB0ZXN0IGNhc2VzLgotKiAgIGA8dGVzdGNhc2U+YCBlbGVtZW50cyBj
b3JyZXNwb25kIHRvIGdvb2dsZXRlc3QgdGVzdCBmdW5jdGlvbnMuCi0KLUZvciBpbnN0YW5jZSwg
dGhlIGZvbGxvd2luZyBwcm9ncmFtCi0KLWBgYGMrKwotVEVTVChNYXRoVGVzdCwgQWRkaXRpb24p
IHsgLi4uIH0KLVRFU1QoTWF0aFRlc3QsIFN1YnRyYWN0aW9uKSB7IC4uLiB9Ci1URVNUKExvZ2lj
VGVzdCwgTm9uQ29udHJhZGljdGlvbikgeyAuLi4gfQotYGBgCi0KLWNvdWxkIGdlbmVyYXRlIHRo
aXMgcmVwb3J0OgotCi1gYGB4bWwKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Ci08dGVzdHN1aXRlcyB0ZXN0cz0iMyIgZmFpbHVyZXM9IjEiIGVycm9ycz0iMCIgdGltZT0i
MC4wMzUiIHRpbWVzdGFtcD0iMjAxMS0xMC0zMVQxODo1Mjo0MiIgbmFtZT0iQWxsVGVzdHMiPgot
ICA8dGVzdHN1aXRlIG5hbWU9Ik1hdGhUZXN0IiB0ZXN0cz0iMiIgZmFpbHVyZXM9IjEiIGVycm9y
cz0iMCIgdGltZT0iMC4wMTUiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJBZGRpdGlvbiIgc3RhdHVz
PSJydW4iIHRpbWU9IjAuMDA3IiBjbGFzc25hbWU9IiI+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdl
PSJWYWx1ZSBvZjogYWRkKDEsIDEpJiN4MEE7ICBBY3R1YWw6IDMmI3gwQTtFeHBlY3RlZDogMiIg
dHlwZT0iIj4uLi48L2ZhaWx1cmU+Ci0gICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJWYWx1ZSBvZjog
YWRkKDEsIC0xKSYjeDBBOyAgQWN0dWFsOiAxJiN4MEE7RXhwZWN0ZWQ6IDAiIHR5cGU9IiI+Li4u
PC9mYWlsdXJlPgotICAgIDwvdGVzdGNhc2U+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlN1YnRyYWN0
aW9uIiBzdGF0dXM9InJ1biIgdGltZT0iMC4wMDUiIGNsYXNzbmFtZT0iIj4KLSAgICA8L3Rlc3Rj
YXNlPgotICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJMb2dpY1Rlc3QiIHRlc3Rz
PSIxIiBmYWlsdXJlcz0iMCIgZXJyb3JzPSIwIiB0aW1lPSIwLjAwNSI+Ci0gICAgPHRlc3RjYXNl
IG5hbWU9Ik5vbkNvbnRyYWRpY3Rpb24iIHN0YXR1cz0icnVuIiB0aW1lPSIwLjAwNSIgY2xhc3Nu
YW1lPSIiPgotICAgIDwvdGVzdGNhc2U+Ci0gIDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPgot
YGBgCi0KLVRoaW5ncyB0byBub3RlOgotCi0qICAgVGhlIGB0ZXN0c2AgYXR0cmlidXRlIG9mIGEg
YDx0ZXN0c3VpdGVzPmAgb3IgYDx0ZXN0c3VpdGU+YCBlbGVtZW50IHRlbGxzIGhvdwotICAgIG1h
bnkgdGVzdCBmdW5jdGlvbnMgdGhlIGdvb2dsZXRlc3QgcHJvZ3JhbSBvciB0ZXN0IGNhc2UgY29u
dGFpbnMsIHdoaWxlIHRoZQotICAgIGBmYWlsdXJlc2AgYXR0cmlidXRlIHRlbGxzIGhvdyBtYW55
IG9mIHRoZW0gZmFpbGVkLgotCi0qICAgVGhlIGB0aW1lYCBhdHRyaWJ1dGUgZXhwcmVzc2VzIHRo
ZSBkdXJhdGlvbiBvZiB0aGUgdGVzdCwgdGVzdCBjYXNlLCBvcgotICAgIGVudGlyZSB0ZXN0IHBy
b2dyYW0gaW4gc2Vjb25kcy4KLQotKiAgIFRoZSBgdGltZXN0YW1wYCBhdHRyaWJ1dGUgcmVjb3Jk
cyB0aGUgbG9jYWwgZGF0ZSBhbmQgdGltZSBvZiB0aGUgdGVzdAotICAgIGV4ZWN1dGlvbi4KLQot
KiAgIEVhY2ggYDxmYWlsdXJlPmAgZWxlbWVudCBjb3JyZXNwb25kcyB0byBhIHNpbmdsZSBmYWls
ZWQgZ29vZ2xldGVzdAotICAgIGFzc2VydGlvbi4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgs
IFdpbmRvd3MsIE1hYy4KLQotIyMjIyBHZW5lcmF0aW5nIGFuIEpTT04gUmVwb3J0Ci0KLWdvb2ds
ZXRlc3QgY2FuIGFsc28gZW1pdCBhIEpTT04gcmVwb3J0IGFzIGFuIGFsdGVybmF0aXZlIGZvcm1h
dCB0byBYTUwuIFRvCi1nZW5lcmF0ZSB0aGUgSlNPTiByZXBvcnQsIHNldCB0aGUgYEdURVNUX09V
VFBVVGAgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlCi1gLS1ndGVzdF9vdXRwdXRgIGZsYWcg
dG8gdGhlIHN0cmluZyBgImpzb246cGF0aF90b19vdXRwdXRfZmlsZSJgLCB3aGljaCB3aWxsCi1j
cmVhdGUgdGhlIGZpbGUgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLiBZb3UgY2FuIGFsc28ganVzdCB1
c2UgdGhlIHN0cmluZwotYCJqc29uImAsIGluIHdoaWNoIGNhc2UgdGhlIG91dHB1dCBjYW4gYmUg
Zm91bmQgaW4gdGhlIGB0ZXN0X2RldGFpbC5qc29uYCBmaWxlCi1pbiB0aGUgY3VycmVudCBkaXJl
Y3RvcnkuCi0KLVRoZSByZXBvcnQgZm9ybWF0IGNvbmZvcm1zIHRvIHRoZSBmb2xsb3dpbmcgSlNP
TiBTY2hlbWE6Ci0KLWBgYGpzb24KLXsKLSAgIiRzY2hlbWEiOiAiaHR0cDovL2pzb24tc2NoZW1h
Lm9yZy9zY2hlbWEjIiwKLSAgInR5cGUiOiAib2JqZWN0IiwKLSAgImRlZmluaXRpb25zIjogewot
ICAgICJUZXN0Q2FzZSI6IHsKLSAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAicHJvcGVy
dGllcyI6IHsKLSAgICAgICAgIm5hbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAg
InRlc3RzIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAiZmFpbHVyZXMiOiB7ICJ0
eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICJkaXNhYmxlZCI6IHsgInR5cGUiOiAiaW50ZWdl
ciIgfSwKLSAgICAgICAgInRpbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgInRl
c3RzdWl0ZSI6IHsKLSAgICAgICAgICAidHlwZSI6ICJhcnJheSIsCi0gICAgICAgICAgIml0ZW1z
IjogewotICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9UZXN0SW5mbyIKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotICAgICJUZXN0SW5mbyI6IHsKLSAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAicHJvcGVydGllcyI6IHsKLSAgICAgICAgIm5h
bWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgInN0YXR1cyI6IHsKLSAgICAgICAg
ICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICJlbnVtIjogWyJSVU4iLCAiTk9UUlVOIl0K
LSAgICAgICAgfSwKLSAgICAgICAgInRpbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAg
ICAgImNsYXNzbmFtZSI6IHsgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAiZmFpbHVyZXMi
OiB7Ci0gICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAotICAgICAgICAgICJpdGVtcyI6IHsKLSAg
ICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvRmFpbHVyZSIKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotICAgICJGYWlsdXJlIjogewotICAgICAgInR5cGUi
OiAib2JqZWN0IiwKLSAgICAgICJwcm9wZXJ0aWVzIjogewotICAgICAgICAiZmFpbHVyZXMiOiB7
ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgInR5cGUiOiB7ICJ0eXBlIjogInN0cmluZyIg
fQotICAgICAgfQotICAgIH0KLSAgfSwKLSAgInByb3BlcnRpZXMiOiB7Ci0gICAgInRlc3RzIjog
eyAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICJmYWlsdXJlcyI6IHsgInR5cGUiOiAiaW50ZWdl
ciIgfSwKLSAgICAiZGlzYWJsZWQiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgImVycm9y
cyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAidGltZXN0YW1wIjogewotICAgICAgInR5
cGUiOiAic3RyaW5nIiwKLSAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgotICAgIH0sCi0gICAg
InRpbWUiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAibmFtZSI6IHsgInR5cGUiOiAic3Ry
aW5nIiB9LAotICAgICJ0ZXN0c3VpdGVzIjogewotICAgICAgInR5cGUiOiAiYXJyYXkiLAotICAg
ICAgIml0ZW1zIjogewotICAgICAgICAiJHJlZiI6ICIjL2RlZmluaXRpb25zL1Rlc3RDYXNlIgot
ICAgICAgfQotICAgIH0KLSAgfQotfQotYGBgCi0KLVRoZSByZXBvcnQgdXNlcyB0aGUgZm9ybWF0
IHRoYXQgY29uZm9ybXMgdG8gdGhlIGZvbGxvd2luZyBQcm90bzMgdXNpbmcgdGhlIFtKU09OCi1l
bmNvZGluZ10oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9k
b2NzL3Byb3RvMyNqc29uKToKLQotYGBgcHJvdG8KLXN5bnRheCA9ICJwcm90bzMiOwotCi1wYWNr
YWdlIGdvb2dsZXRlc3Q7Ci0KLWltcG9ydCAiZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90
byI7Ci1pbXBvcnQgImdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90byI7Ci0KLW1lc3NhZ2Ug
VW5pdFRlc3QgewotICBpbnQzMiB0ZXN0cyA9IDE7Ci0gIGludDMyIGZhaWx1cmVzID0gMjsKLSAg
aW50MzIgZGlzYWJsZWQgPSAzOwotICBpbnQzMiBlcnJvcnMgPSA0OwotICBnb29nbGUucHJvdG9i
dWYuVGltZXN0YW1wIHRpbWVzdGFtcCA9IDU7Ci0gIGdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiB0
aW1lID0gNjsKLSAgc3RyaW5nIG5hbWUgPSA3OwotICByZXBlYXRlZCBUZXN0Q2FzZSB0ZXN0c3Vp
dGVzID0gODsKLX0KLQotbWVzc2FnZSBUZXN0Q2FzZSB7Ci0gIHN0cmluZyBuYW1lID0gMTsKLSAg
aW50MzIgdGVzdHMgPSAyOwotICBpbnQzMiBmYWlsdXJlcyA9IDM7Ci0gIGludDMyIGRpc2FibGVk
ID0gNDsKLSAgaW50MzIgZXJyb3JzID0gNTsKLSAgZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIHRp
bWUgPSA2OwotICByZXBlYXRlZCBUZXN0SW5mbyB0ZXN0c3VpdGUgPSA3OwotfQotCi1tZXNzYWdl
IFRlc3RJbmZvIHsKLSAgc3RyaW5nIG5hbWUgPSAxOwotICBlbnVtIFN0YXR1cyB7Ci0gICAgUlVO
ID0gMDsKLSAgICBOT1RSVU4gPSAxOwotICB9Ci0gIFN0YXR1cyBzdGF0dXMgPSAyOwotICBnb29n
bGUucHJvdG9idWYuRHVyYXRpb24gdGltZSA9IDM7Ci0gIHN0cmluZyBjbGFzc25hbWUgPSA0Owot
ICBtZXNzYWdlIEZhaWx1cmUgewotICAgIHN0cmluZyBmYWlsdXJlcyA9IDE7Ci0gICAgc3RyaW5n
IHR5cGUgPSAyOwotICB9Ci0gIHJlcGVhdGVkIEZhaWx1cmUgZmFpbHVyZXMgPSA1OwotfQotYGBg
Ci0KLUZvciBpbnN0YW5jZSwgdGhlIGZvbGxvd2luZyBwcm9ncmFtCi0KLWBgYGMrKwotVEVTVChN
YXRoVGVzdCwgQWRkaXRpb24pIHsgLi4uIH0KLVRFU1QoTWF0aFRlc3QsIFN1YnRyYWN0aW9uKSB7
IC4uLiB9Ci1URVNUKExvZ2ljVGVzdCwgTm9uQ29udHJhZGljdGlvbikgeyAuLi4gfQotYGBgCi0K
LWNvdWxkIGdlbmVyYXRlIHRoaXMgcmVwb3J0OgotCi1gYGBqc29uCi17Ci0gICJ0ZXN0cyI6IDMs
Ci0gICJmYWlsdXJlcyI6IDEsCi0gICJlcnJvcnMiOiAwLAotICAidGltZSI6ICIwLjAzNXMiLAot
ICAidGltZXN0YW1wIjogIjIwMTEtMTAtMzFUMTg6NTI6NDJaIgotICAibmFtZSI6ICJBbGxUZXN0
cyIsCi0gICJ0ZXN0c3VpdGVzIjogWwotICAgIHsKLSAgICAgICJuYW1lIjogIk1hdGhUZXN0IiwK
LSAgICAgICJ0ZXN0cyI6IDIsCi0gICAgICAiZmFpbHVyZXMiOiAxLAotICAgICAgImVycm9ycyI6
IDAsCi0gICAgICAidGltZSI6ICIwLjAxNXMiLAotICAgICAgInRlc3RzdWl0ZSI6IFsKLSAgICAg
ICAgewotICAgICAgICAgICJuYW1lIjogIkFkZGl0aW9uIiwKLSAgICAgICAgICAic3RhdHVzIjog
IlJVTiIsCi0gICAgICAgICAgInRpbWUiOiAiMC4wMDdzIiwKLSAgICAgICAgICAiY2xhc3NuYW1l
IjogIiIsCi0gICAgICAgICAgImZhaWx1cmVzIjogWwotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJWYWx1ZSBvZjogYWRkKDEsIDEpXHgwQSAgQWN0dWFsOiAzXHgwQUV4
cGVjdGVkOiAyIiwKLSAgICAgICAgICAgICAgInR5cGUiOiAiIgotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiVmFsdWUgb2Y6IGFkZCgxLCAt
MSlceDBBICBBY3R1YWw6IDFceDBBRXhwZWN0ZWQ6IDAiLAotICAgICAgICAgICAgICAidHlwZSI6
ICIiCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgIm5hbWUiOiAiU3VidHJhY3Rpb24iLAotICAgICAgICAgICJzdGF0dXMiOiAiUlVO
IiwKLSAgICAgICAgICAidGltZSI6ICIwLjAwNXMiLAotICAgICAgICAgICJjbGFzc25hbWUiOiAi
IgotICAgICAgICB9Ci0gICAgICBdCi0gICAgfQotICAgIHsKLSAgICAgICJuYW1lIjogIkxvZ2lj
VGVzdCIsCi0gICAgICAidGVzdHMiOiAxLAotICAgICAgImZhaWx1cmVzIjogMCwKLSAgICAgICJl
cnJvcnMiOiAwLAotICAgICAgInRpbWUiOiAiMC4wMDVzIiwKLSAgICAgICJ0ZXN0c3VpdGUiOiBb
Ci0gICAgICAgIHsKLSAgICAgICAgICAibmFtZSI6ICJOb25Db250cmFkaWN0aW9uIiwKLSAgICAg
ICAgICAic3RhdHVzIjogIlJVTiIsCi0gICAgICAgICAgInRpbWUiOiAiMC4wMDVzIiwKLSAgICAg
ICAgICAiY2xhc3NuYW1lIjogIiIKLSAgICAgICAgfQotICAgICAgXQotICAgIH0KLSAgXQotfQot
YGBgCi0KLUlNUE9SVEFOVDogVGhlIGV4YWN0IGZvcm1hdCBvZiB0aGUgSlNPTiBkb2N1bWVudCBp
cyBzdWJqZWN0IHRvIGNoYW5nZS4KLQotKipBdmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3Ms
IE1hYy4KLQotIyMjIENvbnRyb2xsaW5nIEhvdyBGYWlsdXJlcyBBcmUgUmVwb3J0ZWQKLQotIyMj
IyBUdXJuaW5nIEFzc2VydGlvbiBGYWlsdXJlcyBpbnRvIEJyZWFrLVBvaW50cwotCi1XaGVuIHJ1
bm5pbmcgdGVzdCBwcm9ncmFtcyB1bmRlciBhIGRlYnVnZ2VyLCBpdCdzIHZlcnkgY29udmVuaWVu
dCBpZiB0aGUKLWRlYnVnZ2VyIGNhbiBjYXRjaCBhbiBhc3NlcnRpb24gZmFpbHVyZSBhbmQgYXV0
b21hdGljYWxseSBkcm9wIGludG8gaW50ZXJhY3RpdmUKLW1vZGUuIGdvb2dsZXRlc3QncyAqYnJl
YWstb24tZmFpbHVyZSogbW9kZSBzdXBwb3J0cyB0aGlzIGJlaGF2aW9yLgotCi1UbyBlbmFibGUg
aXQsIHNldCB0aGUgYEdURVNUX0JSRUFLX09OX0ZBSUxVUkVgIGVudmlyb25tZW50IHZhcmlhYmxl
IHRvIGEgdmFsdWUKLW90aGVyIHRoYW4gYDBgIC4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2Ug
dGhlIGAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmVgCi1jb21tYW5kIGxpbmUgZmxhZy4KLQotKipB
dmFpbGFiaWxpdHkqKjogTGludXgsIFdpbmRvd3MsIE1hYy4KLQotIyMjIyBEaXNhYmxpbmcgQ2F0
Y2hpbmcgVGVzdC1UaHJvd24gRXhjZXB0aW9ucwotCi1nb29nbGV0ZXN0IGNhbiBiZSB1c2VkIGVp
dGhlciB3aXRoIG9yIHdpdGhvdXQgZXhjZXB0aW9ucyBlbmFibGVkLiBJZiBhIHRlc3QKLXRocm93
cyBhIEMrKyBleGNlcHRpb24gb3IgKG9uIFdpbmRvd3MpIGEgc3RydWN0dXJlZCBleGNlcHRpb24g
KFNFSCksIGJ5IGRlZmF1bHQKLWdvb2dsZXRlc3QgY2F0Y2hlcyBpdCwgcmVwb3J0cyBpdCBhcyBh
IHRlc3QgZmFpbHVyZSwgYW5kIGNvbnRpbnVlcyB3aXRoIHRoZSBuZXh0Ci10ZXN0IG1ldGhvZC4g
VGhpcyBtYXhpbWl6ZXMgdGhlIGNvdmVyYWdlIG9mIGEgdGVzdCBydW4uIEFsc28sIG9uIFdpbmRv
d3MgYW4KLXVuY2F1Z2h0IGV4Y2VwdGlvbiB3aWxsIGNhdXNlIGEgcG9wLXVwIHdpbmRvdywgc28g
Y2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbnMgYWxsb3dzCi15b3UgdG8gcnVuIHRoZSB0ZXN0cyBhdXRv
bWF0aWNhbGx5LgotCi1XaGVuIGRlYnVnZ2luZyB0aGUgdGVzdCBmYWlsdXJlcywgaG93ZXZlciwg
eW91IG1heSBpbnN0ZWFkIHdhbnQgdGhlIGV4Y2VwdGlvbnMKLXRvIGJlIGhhbmRsZWQgYnkgdGhl
IGRlYnVnZ2VyLCBzdWNoIHRoYXQgeW91IGNhbiBleGFtaW5lIHRoZSBjYWxsIHN0YWNrIHdoZW4g
YW4KLWV4Y2VwdGlvbiBpcyB0aHJvd24uIFRvIGFjaGlldmUgdGhhdCwgc2V0IHRoZSBgR1RFU1Rf
Q0FUQ0hfRVhDRVBUSU9OU2AKLWVudmlyb25tZW50IHZhcmlhYmxlIHRvIGAwYCwgb3IgdXNlIHRo
ZSBgLS1ndGVzdF9jYXRjaF9leGNlcHRpb25zPTBgIGZsYWcgd2hlbgotcnVubmluZyB0aGUgdGVz
dHMuCi0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3MvZmFxLm1kIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvZG9jcy9mYXEubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNDJm
ZjdkYmFhOGZhYmQwY2M2NTJmZDcwNTI3OTgxODRlOTVjNDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9m
YXEubWQKKysrIC9kZXYvbnVsbApAQCAtMSw3NzAgKzAsMCBAQAotIyBHb29nbGV0ZXN0IEZBUQot
Ci0KLSMjIFdoeSBzaG91bGQgdGVzdCBjYXNlIG5hbWVzIGFuZCB0ZXN0IG5hbWVzIG5vdCBjb250
YWluIHVuZGVyc2NvcmU/Ci0KLVVuZGVyc2NvcmUgKGBfYCkgaXMgc3BlY2lhbCwgYXMgQysrIHJl
c2VydmVzIHRoZSBmb2xsb3dpbmcgdG8gYmUgdXNlZCBieSB0aGUKLWNvbXBpbGVyIGFuZCB0aGUg
c3RhbmRhcmQgbGlicmFyeToKLQotMS4gIGFueSBpZGVudGlmaWVyIHRoYXQgc3RhcnRzIHdpdGgg
YW4gYF9gIGZvbGxvd2VkIGJ5IGFuIHVwcGVyLWNhc2UgbGV0dGVyLCBhbmQKLTEuICBhbnkgaWRl
bnRpZmllciB0aGF0IGNvbnRhaW5zIHR3byBjb25zZWN1dGl2ZSB1bmRlcnNjb3JlcyAoaS5lLiBg
X19gKQotICAgICphbnl3aGVyZSogaW4gaXRzIG5hbWUuCi0KLVVzZXIgY29kZSBpcyAqcHJvaGli
aXRlZCogZnJvbSB1c2luZyBzdWNoIGlkZW50aWZpZXJzLgotCi1Ob3cgbGV0J3MgbG9vayBhdCB3
aGF0IHRoaXMgbWVhbnMgZm9yIGBURVNUYCBhbmQgYFRFU1RfRmAuCi0KLUN1cnJlbnRseSBgVEVT
VChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKWAgZ2VuZXJhdGVzIGEgY2xhc3MgbmFtZWQKLWBUZXN0
Q2FzZU5hbWVfVGVzdE5hbWVfVGVzdGAuIFdoYXQgaGFwcGVucyBpZiBgVGVzdENhc2VOYW1lYCBv
ciBgVGVzdE5hbWVgCi1jb250YWlucyBgX2A/Ci0KLTEuICBJZiBgVGVzdENhc2VOYW1lYCBzdGFy
dHMgd2l0aCBhbiBgX2AgZm9sbG93ZWQgYnkgYW4gdXBwZXItY2FzZSBsZXR0ZXIgKHNheSwKLSAg
ICBgX0Zvb2ApLCB3ZSBlbmQgdXAgd2l0aCBgX0Zvb19UZXN0TmFtZV9UZXN0YCwgd2hpY2ggaXMg
cmVzZXJ2ZWQgYW5kIHRodXMKLSAgICBpbnZhbGlkLgotMS4gIElmIGBUZXN0Q2FzZU5hbWVgIGVu
ZHMgd2l0aCBhbiBgX2AgKHNheSwgYEZvb19gKSwgd2UgZ2V0Ci0gICAgYEZvb19fVGVzdE5hbWVf
VGVzdGAsIHdoaWNoIGlzIGludmFsaWQuCi0xLiAgSWYgYFRlc3ROYW1lYCBzdGFydHMgd2l0aCBh
biBgX2AgKHNheSwgYF9CYXJgKSwgd2UgZ2V0Ci0gICAgYFRlc3RDYXNlTmFtZV9fQmFyX1Rlc3Rg
LCB3aGljaCBpcyBpbnZhbGlkLgotMS4gIElmIGBUZXN0TmFtZWAgZW5kcyB3aXRoIGFuIGBfYCAo
c2F5LCBgQmFyX2ApLCB3ZSBnZXQKLSAgICBgVGVzdENhc2VOYW1lX0Jhcl9fVGVzdGAsIHdoaWNo
IGlzIGludmFsaWQuCi0KLVNvIGNsZWFybHkgYFRlc3RDYXNlTmFtZWAgYW5kIGBUZXN0TmFtZWAg
Y2Fubm90IHN0YXJ0IG9yIGVuZCB3aXRoIGBfYCAoQWN0dWFsbHksCi1gVGVzdENhc2VOYW1lYCBj
YW4gc3RhcnQgd2l0aCBgX2AgLS0gYXMgbG9uZyBhcyB0aGUgYF9gIGlzbid0IGZvbGxvd2VkIGJ5
IGFuCi11cHBlci1jYXNlIGxldHRlci4gQnV0IHRoYXQncyBnZXR0aW5nIGNvbXBsaWNhdGVkLiBT
byBmb3Igc2ltcGxpY2l0eSB3ZSBqdXN0IHNheQotdGhhdCBpdCBjYW5ub3Qgc3RhcnQgd2l0aCBg
X2AuKS4KLQotSXQgbWF5IHNlZW0gZmluZSBmb3IgYFRlc3RDYXNlTmFtZWAgYW5kIGBUZXN0TmFt
ZWAgdG8gY29udGFpbiBgX2AgaW4gdGhlIG1pZGRsZS4KLUhvd2V2ZXIsIGNvbnNpZGVyIHRoaXM6
Ci0KLWBgYGMrKwotVEVTVChUaW1lLCBGbGllc19MaWtlX0FuX0Fycm93KSB7IC4uLiB9Ci1URVNU
KFRpbWVfRmxpZXMsIExpa2VfQW5fQXJyb3cpIHsgLi4uIH0KLWBgYAotCi1Ob3csIHRoZSB0d28g
YFRFU1RgcyB3aWxsIGJvdGggZ2VuZXJhdGUgdGhlIHNhbWUgY2xhc3MKLShgVGltZV9GbGllc19M
aWtlX0FuX0Fycm93X1Rlc3RgKS4gVGhhdCdzIG5vdCBnb29kLgotCi1TbyBmb3Igc2ltcGxpY2l0
eSwgd2UganVzdCBhc2sgdGhlIHVzZXJzIHRvIGF2b2lkIGBfYCBpbiBgVGVzdENhc2VOYW1lYCBh
bmQKLWBUZXN0TmFtZWAuIFRoZSBydWxlIGlzIG1vcmUgY29uc3RyYWluaW5nIHRoYW4gbmVjZXNz
YXJ5LCBidXQgaXQncyBzaW1wbGUgYW5kCi1lYXN5IHRvIHJlbWVtYmVyLiBJdCBhbHNvIGdpdmVz
IGdvb2dsZXRlc3Qgc29tZSB3aWdnbGUgcm9vbSBpbiBjYXNlIGl0cwotaW1wbGVtZW50YXRpb24g
bmVlZHMgdG8gY2hhbmdlIGluIHRoZSBmdXR1cmUuCi0KLUlmIHlvdSB2aW9sYXRlIHRoZSBydWxl
LCB0aGVyZSBtYXkgbm90IGJlIGltbWVkaWF0ZSBjb25zZXF1ZW5jZXMsIGJ1dCB5b3VyIHRlc3QK
LW1heSAoanVzdCBtYXkpIGJyZWFrIHdpdGggYSBuZXcgY29tcGlsZXIgKG9yIGEgbmV3IHZlcnNp
b24gb2YgdGhlIGNvbXBpbGVyIHlvdQotYXJlIHVzaW5nKSBvciB3aXRoIGEgbmV3IHZlcnNpb24g
b2YgZ29vZ2xldGVzdC4gVGhlcmVmb3JlIGl0J3MgYmVzdCB0byBmb2xsb3cKLXRoZSBydWxlLgot
Ci0jIyBXaHkgZG9lcyBnb29nbGV0ZXN0IHN1cHBvcnQgYEVYUEVDVF9FUShOVUxMLCBwdHIpYCBh
bmQgYEFTU0VSVF9FUShOVUxMLCBwdHIpYCBidXQgbm90IGBFWFBFQ1RfTkUoTlVMTCwgcHRyKWAg
YW5kIGBBU1NFUlRfTkUoTlVMTCwgcHRyKWA/Ci0KLUZpcnN0IG9mIGFsbCB5b3UgY2FuIHVzZSBg
RVhQRUNUX05FKG51bGxwdHIsIHB0cilgIGFuZCBgQVNTRVJUX05FKG51bGxwdHIsCi1wdHIpYC4g
VGhpcyBpcyB0aGUgcHJlZmVycmVkIHN5bnRheCBpbiB0aGUgc3R5bGUgZ3VpZGUgYmVjYXVzZSBu
dWxscHRyIGRvZXMgbm90Ci1oYXZlIHRoZSB0eXBlIHByb2JsZW1zIHRoYXQgTlVMTCBkb2VzLiBX
aGljaCBpcyB3aHkgTlVMTCBkb2VzIG5vdCB3b3JrLgotCi1EdWUgdG8gc29tZSBwZWN1bGlhcml0
eSBvZiBDKyssIGl0IHJlcXVpcmVzIHNvbWUgbm9uLXRyaXZpYWwgdGVtcGxhdGUgbWV0YQotcHJv
Z3JhbW1pbmcgdHJpY2tzIHRvIHN1cHBvcnQgdXNpbmcgYE5VTExgIGFzIGFuIGFyZ3VtZW50IG9m
IHRoZSBgRVhQRUNUX1hYKClgCi1hbmQgYEFTU0VSVF9YWCgpYCBtYWNyb3MuIFRoZXJlZm9yZSB3
ZSBvbmx5IGRvIGl0IHdoZXJlIGl0J3MgbW9zdCBuZWVkZWQKLShvdGhlcndpc2Ugd2UgbWFrZSB0
aGUgaW1wbGVtZW50YXRpb24gb2YgZ29vZ2xldGVzdCBoYXJkZXIgdG8gbWFpbnRhaW4gYW5kIG1v
cmUKLWVycm9yLXByb25lIHRoYW4gbmVjZXNzYXJ5KS4KLQotVGhlIGBFWFBFQ1RfRVEoKWAgbWFj
cm8gdGFrZXMgdGhlICpleHBlY3RlZCogdmFsdWUgYXMgaXRzIGZpcnN0IGFyZ3VtZW50IGFuZCB0
aGUKLSphY3R1YWwqIHZhbHVlIGFzIHRoZSBzZWNvbmQuIEl0J3MgcmVhc29uYWJsZSB0aGF0IHNv
bWVvbmUgd2FudHMgdG8gd3JpdGUKLWBFWFBFQ1RfRVEoTlVMTCwgc29tZV9leHByZXNzaW9uKWAs
IGFuZCB0aGlzIGluZGVlZCB3YXMgcmVxdWVzdGVkIHNldmVyYWwgdGltZXMuCi1UaGVyZWZvcmUg
d2UgaW1wbGVtZW50ZWQgaXQuCi0KLVRoZSBuZWVkIGZvciBgRVhQRUNUX05FKE5VTEwsIHB0cilg
IGlzbid0IG5lYXJseSBhcyBzdHJvbmcuIFdoZW4gdGhlIGFzc2VydGlvbgotZmFpbHMsIHlvdSBh
bHJlYWR5IGtub3cgdGhhdCBgcHRyYCBtdXN0IGJlIGBOVUxMYCwgc28gaXQgZG9lc24ndCBhZGQg
YW55Ci1pbmZvcm1hdGlvbiB0byBwcmludCBgcHRyYCBpbiB0aGlzIGNhc2UuIFRoYXQgbWVhbnMg
YEVYUEVDVF9UUlVFKHB0ciAhPSBOVUxMKWAKLXdvcmtzIGp1c3QgYXMgd2VsbC4KLQotSWYgd2Ug
d2VyZSB0byBzdXBwb3J0IGBFWFBFQ1RfTkUoTlVMTCwgcHRyKWAsIGZvciBjb25zaXN0ZW5jeSB3
ZSdsbCBoYXZlIHRvCi1zdXBwb3J0IGBFWFBFQ1RfTkUocHRyLCBOVUxMKWAgYXMgd2VsbCwgYXMg
dW5saWtlIGBFWFBFQ1RfRVFgLCB3ZSBkb24ndCBoYXZlIGEKLWNvbnZlbnRpb24gb24gdGhlIG9y
ZGVyIG9mIHRoZSB0d28gYXJndW1lbnRzIGZvciBgRVhQRUNUX05FYC4gVGhpcyBtZWFucyB1c2lu
ZwotdGhlIHRlbXBsYXRlIG1ldGEgcHJvZ3JhbW1pbmcgdHJpY2tzIHR3aWNlIGluIHRoZSBpbXBs
ZW1lbnRhdGlvbiwgbWFraW5nIGl0IGV2ZW4KLWhhcmRlciB0byB1bmRlcnN0YW5kIGFuZCBtYWlu
dGFpbi4gV2UgYmVsaWV2ZSB0aGUgYmVuZWZpdCBkb2Vzbid0IGp1c3RpZnkgdGhlCi1jb3N0Lgot
Ci1GaW5hbGx5LCB3aXRoIHRoZSBncm93dGggb2YgdGhlIGdNb2NrIG1hdGNoZXIgbGlicmFyeSwg
d2UgYXJlIGVuY291cmFnaW5nIHBlb3BsZQotdG8gdXNlIHRoZSB1bmlmaWVkIGBFWFBFQ1RfVEhB
VCh2YWx1ZSwgbWF0Y2hlcilgIHN5bnRheCBtb3JlIG9mdGVuIGluIHRlc3RzLiBPbmUKLXNpZ25p
ZmljYW50IGFkdmFudGFnZSBvZiB0aGUgbWF0Y2hlciBhcHByb2FjaCBpcyB0aGF0IG1hdGNoZXJz
IGNhbiBiZSBlYXNpbHkKLWNvbWJpbmVkIHRvIGZvcm0gbmV3IG1hdGNoZXJzLCB3aGlsZSB0aGUg
YEVYUEVDVF9ORWAsIGV0YywgbWFjcm9zIGNhbm5vdCBiZQotZWFzaWx5IGNvbWJpbmVkLiBUaGVy
ZWZvcmUgd2Ugd2FudCB0byBpbnZlc3QgbW9yZSBpbiB0aGUgbWF0Y2hlcnMgdGhhbiBpbiB0aGUK
LWBFWFBFQ1RfWFgoKWAgbWFjcm9zLgotCi0jIyBJIG5lZWQgdG8gdGVzdCB0aGF0IGRpZmZlcmVu
dCBpbXBsZW1lbnRhdGlvbnMgb2YgYW4gaW50ZXJmYWNlIHNhdGlzZnkgc29tZSBjb21tb24gcmVx
dWlyZW1lbnRzLiBTaG91bGQgSSB1c2UgdHlwZWQgdGVzdHMgb3IgdmFsdWUtcGFyYW1ldGVyaXpl
ZCB0ZXN0cz8KLQotRm9yIHRlc3RpbmcgdmFyaW91cyBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIHNh
bWUgaW50ZXJmYWNlLCBlaXRoZXIgdHlwZWQgdGVzdHMgb3IKLXZhbHVlLXBhcmFtZXRlcml6ZWQg
dGVzdHMgY2FuIGdldCBpdCBkb25lLiBJdCdzIHJlYWxseSB1cCB0byB5b3UgdGhlIHVzZXIgdG8K
LWRlY2lkZSB3aGljaCBpcyBtb3JlIGNvbnZlbmllbnQgZm9yIHlvdSwgZGVwZW5kaW5nIG9uIHlv
dXIgcGFydGljdWxhciBjYXNlLiBTb21lCi1yb3VnaCBndWlkZWxpbmVzOgotCi0qICAgVHlwZWQg
dGVzdHMgY2FuIGJlIGVhc2llciB0byB3cml0ZSBpZiBpbnN0YW5jZXMgb2YgdGhlIGRpZmZlcmVu
dAotICAgIGltcGxlbWVudGF0aW9ucyBjYW4gYmUgY3JlYXRlZCB0aGUgc2FtZSB3YXksIG1vZHVs
byB0aGUgdHlwZS4gRm9yIGV4YW1wbGUsCi0gICAgaWYgYWxsIHRoZXNlIGltcGxlbWVudGF0aW9u
cyBoYXZlIGEgcHVibGljIGRlZmF1bHQgY29uc3RydWN0b3IgKHN1Y2ggdGhhdAotICAgIHlvdSBj
YW4gd3JpdGUgYG5ldyBUeXBlUGFyYW1gKSwgb3IgaWYgdGhlaXIgZmFjdG9yeSBmdW5jdGlvbnMg
aGF2ZSB0aGUgc2FtZQotICAgIGZvcm0gKGUuZy4gYENyZWF0ZUluc3RhbmNlPFR5cGVQYXJhbT4o
KWApLgotKiAgIFZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgY2FuIGJlIGVhc2llciB0byB3cml0
ZSBpZiB5b3UgbmVlZCBkaWZmZXJlbnQgY29kZQotICAgIHBhdHRlcm5zIHRvIGNyZWF0ZSBkaWZm
ZXJlbnQgaW1wbGVtZW50YXRpb25zJyBpbnN0YW5jZXMsIGUuZy4gYG5ldyBGb29gIHZzCi0gICAg
YG5ldyBCYXIoNSlgLiBUbyBhY2NvbW1vZGF0ZSBmb3IgdGhlIGRpZmZlcmVuY2VzLCB5b3UgY2Fu
IHdyaXRlIGZhY3RvcnkKLSAgICBmdW5jdGlvbiB3cmFwcGVycyBhbmQgcGFzcyB0aGVzZSBmdW5j
dGlvbiBwb2ludGVycyB0byB0aGUgdGVzdHMgYXMgdGhlaXIKLSAgICBwYXJhbWV0ZXJzLgotKiAg
IFdoZW4gYSB0eXBlZCB0ZXN0IGZhaWxzLCB0aGUgb3V0cHV0IGluY2x1ZGVzIHRoZSBuYW1lIG9m
IHRoZSB0eXBlLCB3aGljaCBjYW4KLSAgICBoZWxwIHlvdSBxdWlja2x5IGlkZW50aWZ5IHdoaWNo
IGltcGxlbWVudGF0aW9uIGlzIHdyb25nLiBWYWx1ZS1wYXJhbWV0ZXJpemVkCi0gICAgdGVzdHMg
Y2Fubm90IGRvIHRoaXMsIHNvIHRoZXJlIHlvdSdsbCBoYXZlIHRvIGxvb2sgYXQgdGhlIGl0ZXJh
dGlvbiBudW1iZXIKLSAgICB0byBrbm93IHdoaWNoIGltcGxlbWVudGF0aW9uIHRoZSBmYWlsdXJl
IGlzIGZyb20sIHdoaWNoIGlzIGxlc3MgZGlyZWN0LgotKiAgIElmIHlvdSBtYWtlIGEgbWlzdGFr
ZSB3cml0aW5nIGEgdHlwZWQgdGVzdCwgdGhlIGNvbXBpbGVyIGVycm9ycyBjYW4gYmUKLSAgICBo
YXJkZXIgdG8gZGlnZXN0LCBhcyB0aGUgY29kZSBpcyB0ZW1wbGF0aXplZC4KLSogICBXaGVuIHVz
aW5nIHR5cGVkIHRlc3RzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgeW91IGFyZSB0ZXN0aW5nIGFn
YWluc3QgdGhlCi0gICAgaW50ZXJmYWNlIHR5cGUsIG5vdCB0aGUgY29uY3JldGUgdHlwZXMgKGlu
IG90aGVyIHdvcmRzLCB5b3Ugd2FudCB0byBtYWtlCi0gICAgc3VyZSBgaW1wbGljaXRfY2FzdDxN
eUludGVyZmFjZSo+KG15X2NvbmNyZXRlX2ltcGwpYCB3b3Jrcywgbm90IGp1c3QgdGhhdAotICAg
IGBteV9jb25jcmV0ZV9pbXBsYCB3b3JrcykuIEl0J3MgbGVzcyBsaWtlbHkgdG8gbWFrZSBtaXN0
YWtlcyBpbiB0aGlzIGFyZWEKLSAgICB3aGVuIHVzaW5nIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVz
dHMuCi0KLUkgaG9wZSBJIGRpZG4ndCBjb25mdXNlIHlvdSBtb3JlLiA6LSkgSWYgeW91IGRvbid0
IG1pbmQsIEknZCBzdWdnZXN0IHlvdSB0byBnaXZlCi1ib3RoIGFwcHJvYWNoZXMgYSB0cnkuIFBy
YWN0aWNlIGlzIGEgbXVjaCBiZXR0ZXIgd2F5IHRvIGdyYXNwIHRoZSBzdWJ0bGUKLWRpZmZlcmVu
Y2VzIGJldHdlZW4gdGhlIHR3byB0b29scy4gT25jZSB5b3UgaGF2ZSBzb21lIGNvbmNyZXRlIGV4
cGVyaWVuY2UsIHlvdQotY2FuIG11Y2ggbW9yZSBlYXNpbHkgZGVjaWRlIHdoaWNoIG9uZSB0byB1
c2UgdGhlIG5leHQgdGltZS4KLQotIyMgTXkgZGVhdGggdGVzdHMgYmVjYW1lIHZlcnkgc2xvdyAt
IHdoYXQgaGFwcGVuZWQ/Ci0KLUluIEF1Z3VzdCAyMDA4IHdlIGhhZCB0byBzd2l0Y2ggdGhlIGRl
ZmF1bHQgZGVhdGggdGVzdCBzdHlsZSBmcm9tIGBmYXN0YCB0bwotYHRocmVhZHNhZmVgLCBhcyB0
aGUgZm9ybWVyIGlzIG5vIGxvbmdlciBzYWZlIG5vdyB0aGF0IHRocmVhZGVkIGxvZ2dpbmcgaXMg
dGhlCi1kZWZhdWx0LiBUaGlzIGNhdXNlZCBtYW55IGRlYXRoIHRlc3RzIHRvIHNsb3cgZG93bi4g
VW5mb3J0dW5hdGVseSB0aGlzIGNoYW5nZQotd2FzIG5lY2Vzc2FyeS4KLQotUGxlYXNlIHJlYWQg
W0ZpeGluZyBGYWlsaW5nIERlYXRoIFRlc3RzXShkZWF0aF90ZXN0X3N0eWxlcy5tZCkgZm9yIHdo
YXQgeW91IGNhbgotZG8uCi0KLSMjIEkgZ290IHNvbWUgcnVuLXRpbWUgZXJyb3JzIGFib3V0IGlu
dmFsaWQgcHJvdG8gZGVzY3JpcHRvcnMgd2hlbiB1c2luZyBgUHJvdG9jb2xNZXNzYWdlRXF1YWxz
YC4gSGVscCEKLQotKipOb3RlOioqIGBQcm90b2NvbE1lc3NhZ2VFcXVhbHNgIGFuZCBgUHJvdG9j
b2xNZXNzYWdlRXF1aXZgIGFyZSAqZGVwcmVjYXRlZCoKLW5vdy4gUGxlYXNlIHVzZSBgRXF1YWxz
UHJvdG9gLCBldGMgaW5zdGVhZC4KLQotYFByb3RvY29sTWVzc2FnZUVxdWFsc2AgYW5kIGBQcm90
b2NvbE1lc3NhZ2VFcXVpdmAgd2VyZSByZWRlZmluZWQgcmVjZW50bHkgYW5kCi1hcmUgbm93IGxl
c3MgdG9sZXJhbnQgb24gaW52YWxpZCBwcm90b2NvbCBidWZmZXIgZGVmaW5pdGlvbnMuIEluIHBh
cnRpY3VsYXIsIGlmCi15b3UgaGF2ZSBhIGBmb28ucHJvdG9gIHRoYXQgZG9lc24ndCBmdWxseSBx
dWFsaWZ5IHRoZSB0eXBlIG9mIGEgcHJvdG9jb2wgbWVzc2FnZQotaXQgcmVmZXJlbmNlcyAoZS5n
LiBgbWVzc2FnZTxCYXI+YCB3aGVyZSBpdCBzaG91bGQgYmUgYG1lc3NhZ2U8YmxhaC5CYXI+YCks
IHlvdQotd2lsbCBub3cgZ2V0IHJ1bi10aW1lIGVycm9ycyBsaWtlOgotCi1gYGAKLS4uLiBkZXNj
cmlwdG9yLmNjOi4uLl0gSW52YWxpZCBwcm90byBkZXNjcmlwdG9yIGZvciBmaWxlICJwYXRoL3Rv
L2Zvby5wcm90byI6Ci0uLi4gZGVzY3JpcHRvci5jYzouLi5dICBibGFoLk15TWVzc2FnZS5teV9m
aWVsZDogIi5CYXIiIGlzIG5vdCBkZWZpbmVkLgotYGBgCi0KLUlmIHlvdSBzZWUgdGhpcywgeW91
ciBgLnByb3RvYCBmaWxlIGlzIGJyb2tlbiBhbmQgbmVlZHMgdG8gYmUgZml4ZWQgYnkgbWFraW5n
Ci10aGUgdHlwZXMgZnVsbHkgcXVhbGlmaWVkLiBUaGUgbmV3IGRlZmluaXRpb24gb2YgYFByb3Rv
Y29sTWVzc2FnZUVxdWFsc2AgYW5kCi1gUHJvdG9jb2xNZXNzYWdlRXF1aXZgIGp1c3QgaGFwcGVu
IHRvIHJldmVhbCB5b3VyIGJ1Zy4KLQotIyMgTXkgZGVhdGggdGVzdCBtb2RpZmllcyBzb21lIHN0
YXRlLCBidXQgdGhlIGNoYW5nZSBzZWVtcyBsb3N0IGFmdGVyIHRoZSBkZWF0aCB0ZXN0IGZpbmlz
aGVzLiBXaHk/Ci0KLURlYXRoIHRlc3RzIChgRVhQRUNUX0RFQVRIYCwgZXRjKSBhcmUgZXhlY3V0
ZWQgaW4gYSBzdWItcHJvY2VzcyBzLnQuIHRoZQotZXhwZWN0ZWQgY3Jhc2ggd29uJ3Qga2lsbCB0
aGUgdGVzdCBwcm9ncmFtIChpLmUuIHRoZSBwYXJlbnQgcHJvY2VzcykuIEFzIGEKLXJlc3VsdCwg
YW55IGluLW1lbW9yeSBzaWRlIGVmZmVjdHMgdGhleSBpbmN1ciBhcmUgb2JzZXJ2YWJsZSBpbiB0
aGVpciByZXNwZWN0aXZlCi1zdWItcHJvY2Vzc2VzLCBidXQgbm90IGluIHRoZSBwYXJlbnQgcHJv
Y2Vzcy4gWW91IGNhbiB0aGluayBvZiB0aGVtIGFzIHJ1bm5pbmcKLWluIGEgcGFyYWxsZWwgdW5p
dmVyc2UsIG1vcmUgb3IgbGVzcy4KLQotSW4gcGFydGljdWxhciwgaWYgeW91IHVzZSBbZ01vY2td
KC4uLy4uL2dvb2dsZW1vY2spIGFuZCB0aGUgZGVhdGggdGVzdCBzdGF0ZW1lbnQKLWludm9rZXMg
c29tZSBtb2NrIG1ldGhvZHMsIHRoZSBwYXJlbnQgcHJvY2VzcyB3aWxsIHRoaW5rIHRoZSBjYWxs
cyBoYXZlIG5ldmVyCi1vY2N1cnJlZC4gVGhlcmVmb3JlLCB5b3UgbWF5IHdhbnQgdG8gbW92ZSB5
b3VyIGBFWFBFQ1RfQ0FMTGAgc3RhdGVtZW50cyBpbnNpZGUKLXRoZSBgRVhQRUNUX0RFQVRIYCBt
YWNyby4KLQotIyMgRVhQRUNUX0VRKGh0b25sKGJsYWgpLCBibGFoX2JsYWgpIGdlbmVyYXRlcyB3
ZWlyZCBjb21waWxlciBlcnJvcnMgaW4gb3B0IG1vZGUuIElzIHRoaXMgYSBnb29nbGV0ZXN0IGJ1
Zz8KLQotQWN0dWFsbHksIHRoZSBidWcgaXMgaW4gYGh0b25sKClgLgotCi1BY2NvcmRpbmcgdG8g
YCdtYW4gaHRvbmwnYCwgYGh0b25sKClgIGlzIGEgKmZ1bmN0aW9uKiwgd2hpY2ggbWVhbnMgaXQn
cyB2YWxpZCB0bwotdXNlIGBodG9ubGAgYXMgYSBmdW5jdGlvbiBwb2ludGVyLiBIb3dldmVyLCBp
biBvcHQgbW9kZSBgaHRvbmwoKWAgaXMgZGVmaW5lZCBhcwotYSAqbWFjcm8qLCB3aGljaCBicmVh
a3MgdGhpcyB1c2FnZS4KLQotV29yc2UsIHRoZSBtYWNybyBkZWZpbml0aW9uIG9mIGBodG9ubCgp
YCB1c2VzIGEgYGdjY2AgZXh0ZW5zaW9uIGFuZCBpcyAqbm90Kgotc3RhbmRhcmQgQysrLiBUaGF0
IGhhY2t5IGltcGxlbWVudGF0aW9uIGhhcyBzb21lIGFkIGhvYyBsaW1pdGF0aW9ucy4gSW4KLXBh
cnRpY3VsYXIsIGl0IHByZXZlbnRzIHlvdSBmcm9tIHdyaXRpbmcgYEZvbzxzaXplb2YoaHRvbmwo
eCkpPigpYCwgd2hlcmUgYEZvb2AKLWlzIGEgdGVtcGxhdGUgdGhhdCBoYXMgYW4gaW50ZWdyYWwg
YXJndW1lbnQuCi0KLVRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgRVhQRUNUX0VRKGEsIGIpYCB1c2Vz
IGBzaXplb2YoLi4uIGEgLi4uKWAgaW5zaWRlIGEKLXRlbXBsYXRlIGFyZ3VtZW50LCBhbmQgdGh1
cyBkb2Vzbid0IGNvbXBpbGUgaW4gb3B0IG1vZGUgd2hlbiBgYWAgY29udGFpbnMgYSBjYWxsCi10
byBgaHRvbmwoKWAuIEl0IGlzIGRpZmZpY3VsdCB0byBtYWtlIGBFWFBFQ1RfRVFgIGJ5cGFzcyB0
aGUgYGh0b25sKClgIGJ1ZywgYXMKLXRoZSBzb2x1dGlvbiBtdXN0IHdvcmsgd2l0aCBkaWZmZXJl
bnQgY29tcGlsZXJzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLgotCi1gaHRvbmwoKWAgaGFzIHNvbWUg
b3RoZXIgcHJvYmxlbXMgYXMgZGVzY3JpYmVkIGluIGAvL3V0aWwvZW5kaWFuL2VuZGlhbi5oYCwK
LXdoaWNoIGRlZmluZXMgYGdodG9ubCgpYCB0byByZXBsYWNlIGl0LiBgZ2h0b25sKClgIGRvZXMg
dGhlIHNhbWUgdGhpbmcgYGh0b25sKClgCi1kb2VzLCBvbmx5IHdpdGhvdXQgaXRzIHByb2JsZW1z
LiBXZSBzdWdnZXN0IHlvdSB0byB1c2UgYGdodG9ubCgpYCBpbnN0ZWFkIG9mCi1gaHRvbmwoKWAs
IGJvdGggaW4geW91ciB0ZXN0cyBhbmQgcHJvZHVjdGlvbiBjb2RlLgotCi1gLy91dGlsL2VuZGlh
bi9lbmRpYW4uaGAgYWxzbyBkZWZpbmVzIGBnaHRvbnMoKWAsIHdoaWNoIHNvbHZlcyBzaW1pbGFy
IHByb2JsZW1zCi1pbiBgaHRvbnMoKWAuCi0KLURvbid0IGZvcmdldCB0byBhZGQgYC8vdXRpbC9l
bmRpYW5gIHRvIHRoZSBsaXN0IG9mIGRlcGVuZGVuY2llcyBpbiB0aGUgYEJVSUxEYAotZmlsZSB3
aGVyZXZlciBgZ2h0b25sKClgIGFuZCBgZ2h0b25zKClgIGFyZSB1c2VkLiBUaGUgbGlicmFyeSBj
b25zaXN0cyBvZiBhCi1zaW5nbGUgaGVhZGVyIGZpbGUgYW5kIHdpbGwgbm90IGJsb2F0IHlvdXIg
YmluYXJ5LgotCi0jIyBUaGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICJ1bmRlZmluZWQgcmVm
ZXJlbmNlcyIgdG8gc29tZSBzdGF0aWMgY29uc3QgbWVtYmVyIHZhcmlhYmxlcywgYnV0IEkgZGlk
IGRlZmluZSB0aGVtIGluIHRoZSBjbGFzcyBib2R5LiBXaGF0J3Mgd3Jvbmc/Ci0KLUlmIHlvdXIg
Y2xhc3MgaGFzIGEgc3RhdGljIGRhdGEgbWVtYmVyOgotCi1gYGBjKysKLS8vIGZvby5oCi1jbGFz
cyBGb28gewotICAuLi4KLSAgc3RhdGljIGNvbnN0IGludCBrQmFyID0gMTAwOwotfTsKLWBgYAot
Ci1Zb3UgYWxzbyBuZWVkIHRvIGRlZmluZSBpdCAqb3V0c2lkZSogb2YgdGhlIGNsYXNzIGJvZHkg
aW4gYGZvby5jY2A6Ci0KLWBgYGMrKwotY29uc3QgaW50IEZvbzo6a0JhcjsgIC8vIE5vIGluaXRp
YWxpemVyIGhlcmUuCi1gYGAKLQotT3RoZXJ3aXNlIHlvdXIgY29kZSBpcyAqKmludmFsaWQgQysr
KiosIGFuZCBtYXkgYnJlYWsgaW4gdW5leHBlY3RlZCB3YXlzLiBJbgotcGFydGljdWxhciwgdXNp
bmcgaXQgaW4gZ29vZ2xldGVzdCBjb21wYXJpc29uIGFzc2VydGlvbnMgKGBFWFBFQ1RfRVFgLCBl
dGMpIHdpbGwKLWdlbmVyYXRlIGFuICJ1bmRlZmluZWQgcmVmZXJlbmNlIiBsaW5rZXIgZXJyb3Iu
IFRoZSBmYWN0IHRoYXQgIml0IHVzZWQgdG8gd29yayIKLWRvZXNuJ3QgbWVhbiBpdCdzIHZhbGlk
LiBJdCBqdXN0IG1lYW5zIHRoYXQgeW91IHdlcmUgbHVja3kuIDotKQotCi0jIyBDYW4gSSBkZXJp
dmUgYSB0ZXN0IGZpeHR1cmUgZnJvbSBhbm90aGVyPwotCi1ZZXMuCi0KLUVhY2ggdGVzdCBmaXh0
dXJlIGhhcyBhIGNvcnJlc3BvbmRpbmcgYW5kIHNhbWUgbmFtZWQgdGVzdCBjYXNlLiBUaGlzIG1l
YW5zIG9ubHkKLW9uZSB0ZXN0IGNhc2UgY2FuIHVzZSBhIHBhcnRpY3VsYXIgZml4dHVyZS4gU29t
ZXRpbWVzLCBob3dldmVyLCBtdWx0aXBsZSB0ZXN0Ci1jYXNlcyBtYXkgd2FudCB0byB1c2UgdGhl
IHNhbWUgb3Igc2xpZ2h0bHkgZGlmZmVyZW50IGZpeHR1cmVzLiBGb3IgZXhhbXBsZSwgeW91Ci1t
YXkgd2FudCB0byBtYWtlIHN1cmUgdGhhdCBhbGwgb2YgYSBHVUkgbGlicmFyeSdzIHRlc3QgY2Fz
ZXMgZG9uJ3QgbGVhawotaW1wb3J0YW50IHN5c3RlbSByZXNvdXJjZXMgbGlrZSBmb250cyBhbmQg
YnJ1c2hlcy4KLQotSW4gZ29vZ2xldGVzdCwgeW91IHNoYXJlIGEgZml4dHVyZSBhbW9uZyB0ZXN0
IGNhc2VzIGJ5IHB1dHRpbmcgdGhlIHNoYXJlZCBsb2dpYwotaW4gYSBiYXNlIHRlc3QgZml4dHVy
ZSwgdGhlbiBkZXJpdmluZyBmcm9tIHRoYXQgYmFzZSBhIHNlcGFyYXRlIGZpeHR1cmUgZm9yIGVh
Y2gKLXRlc3QgY2FzZSB0aGF0IHdhbnRzIHRvIHVzZSB0aGlzIGNvbW1vbiBsb2dpYy4gWW91IHRo
ZW4gdXNlIGBURVNUX0YoKWAgdG8gd3JpdGUKLXRlc3RzIHVzaW5nIGVhY2ggZGVyaXZlZCBmaXh0
dXJlLgotCi1UeXBpY2FsbHksIHlvdXIgY29kZSBsb29rcyBsaWtlIHRoaXM6Ci0KLWBgYGMrKwot
Ly8gRGVmaW5lcyBhIGJhc2UgdGVzdCBmaXh0dXJlLgotY2xhc3MgQmFzZVRlc3QgOiBwdWJsaWMg
Ojp0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIC4uLgotfTsKLQotLy8gRGVyaXZlcyBh
IGZpeHR1cmUgRm9vVGVzdCBmcm9tIEJhc2VUZXN0LgotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyBC
YXNlVGVzdCB7Ci0gcHJvdGVjdGVkOgotICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewotICAgIEJh
c2VUZXN0OjpTZXRVcCgpOyAgLy8gU2V0cyB1cCB0aGUgYmFzZSBmaXh0dXJlIGZpcnN0LgotICAg
IC4uLiBhZGRpdGlvbmFsIHNldC11cCB3b3JrIC4uLgotICB9Ci0KLSAgdm9pZCBUZWFyRG93bigp
IG92ZXJyaWRlIHsKLSAgICAuLi4gY2xlYW4tdXAgd29yayBmb3IgRm9vVGVzdCAuLi4KLSAgICBC
YXNlVGVzdDo6VGVhckRvd24oKTsgIC8vIFJlbWVtYmVyIHRvIHRlYXIgZG93biB0aGUgYmFzZSBm
aXh0dXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciBjbGVhbmluZyB1cCBG
b29UZXN0IQotICB9Ci0KLSAgLi4uIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGZvciBGb29UZXN0
IC4uLgotfTsKLQotLy8gVGVzdHMgdGhhdCB1c2UgdGhlIGZpeHR1cmUgRm9vVGVzdC4KLVRFU1Rf
RihGb29UZXN0LCBCYXIpIHsgLi4uIH0KLVRFU1RfRihGb29UZXN0LCBCYXopIHsgLi4uIH0KLQot
Li4uIGFkZGl0aW9uYWwgZml4dHVyZXMgZGVyaXZlZCBmcm9tIEJhc2VUZXN0IC4uLgotYGBgCi0K
LUlmIG5lY2Vzc2FyeSwgeW91IGNhbiBjb250aW51ZSB0byBkZXJpdmUgdGVzdCBmaXh0dXJlcyBm
cm9tIGEgZGVyaXZlZCBmaXh0dXJlLgotZ29vZ2xldGVzdCBoYXMgbm8gbGltaXQgb24gaG93IGRl
ZXAgdGhlIGhpZXJhcmNoeSBjYW4gYmUuCi0KLUZvciBhIGNvbXBsZXRlIGV4YW1wbGUgdXNpbmcg
ZGVyaXZlZCB0ZXN0IGZpeHR1cmVzLCBzZWUgW2dvb2dsZXRlc3QKLXNhbXBsZV0oaHR0cHM6Ly9n
aXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVyL2dvb2dsZXRlc3Qvc2FtcGxl
cy9zYW1wbGU1X3VuaXR0ZXN0LmNjKQotCi0jIyBNeSBjb21waWxlciBjb21wbGFpbnMgInZvaWQg
dmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUuIiBXaGF0IGRvZXMgdGhpcyBtZWFu
PwotCi1Zb3UncmUgcHJvYmFibHkgdXNpbmcgYW4gYEFTU0VSVF8qKClgIGluIGEgZnVuY3Rpb24g
dGhhdCBkb2Vzbid0IHJldHVybiBgdm9pZGAuCi1gQVNTRVJUXyooKWAgY2FuIG9ubHkgYmUgdXNl
ZCBpbiBgdm9pZGAgZnVuY3Rpb25zLCBkdWUgdG8gZXhjZXB0aW9ucyBiZWluZwotZGlzYWJsZWQg
Ynkgb3VyIGJ1aWxkIHN5c3RlbS4gUGxlYXNlIHNlZSBtb3JlIGRldGFpbHMKLVtoZXJlXShhZHZh
bmNlZC5tZCNhc3NlcnRpb24tcGxhY2VtZW50KS4KLQotIyMgTXkgZGVhdGggdGVzdCBoYW5ncyAo
b3Igc2VnLWZhdWx0cykuIEhvdyBkbyBJIGZpeCBpdD8KLQotSW4gZ29vZ2xldGVzdCwgZGVhdGgg
dGVzdHMgYXJlIHJ1biBpbiBhIGNoaWxkIHByb2Nlc3MgYW5kIHRoZSB3YXkgdGhleSB3b3JrIGlz
Ci1kZWxpY2F0ZS4gVG8gd3JpdGUgZGVhdGggdGVzdHMgeW91IHJlYWxseSBuZWVkIHRvIHVuZGVy
c3RhbmQgaG93IHRoZXkgd29yay4KLVBsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgcmVhZCBbdGhp
c10oYWR2YW5jZWQubWQjaG93LWl0LXdvcmtzKS4KLQotSW4gcGFydGljdWxhciwgZGVhdGggdGVz
dHMgZG9uJ3QgbGlrZSBoYXZpbmcgbXVsdGlwbGUgdGhyZWFkcyBpbiB0aGUgcGFyZW50Ci1wcm9j
ZXNzLiBTbyB0aGUgZmlyc3QgdGhpbmcgeW91IGNhbiB0cnkgaXMgdG8gZWxpbWluYXRlIGNyZWF0
aW5nIHRocmVhZHMgb3V0c2lkZQotb2YgYEVYUEVDVF9ERUFUSCgpYC4gRm9yIGV4YW1wbGUsIHlv
dSBtYXkgd2FudCB0byB1c2UgW21vY2tzXSguLi8uLi9nb29nbGVtb2NrKQotb3IgZmFrZSBvYmpl
Y3RzIGluc3RlYWQgb2YgcmVhbCBvbmVzIGluIHlvdXIgdGVzdHMuCi0KLVNvbWV0aW1lcyB0aGlz
IGlzIGltcG9zc2libGUgYXMgc29tZSBsaWJyYXJ5IHlvdSBtdXN0IHVzZSBtYXkgYmUgY3JlYXRp
bmcKLXRocmVhZHMgYmVmb3JlIGBtYWluKClgIGlzIGV2ZW4gcmVhY2hlZC4gSW4gdGhpcyBjYXNl
LCB5b3UgY2FuIHRyeSB0byBtaW5pbWl6ZQotdGhlIGNoYW5jZSBvZiBjb25mbGljdHMgYnkgZWl0
aGVyIG1vdmluZyBhcyBtYW55IGFjdGl2aXRpZXMgYXMgcG9zc2libGUgaW5zaWRlCi1gRVhQRUNU
X0RFQVRIKClgIChpbiB0aGUgZXh0cmVtZSBjYXNlLCB5b3Ugd2FudCB0byBtb3ZlIGV2ZXJ5dGhp
bmcgaW5zaWRlKSwgb3IKLWxlYXZpbmcgYXMgZmV3IHRoaW5ncyBhcyBwb3NzaWJsZSBpbiBpdC4g
QWxzbywgeW91IGNhbiB0cnkgdG8gc2V0IHRoZSBkZWF0aCB0ZXN0Ci1zdHlsZSB0byBgInRocmVh
ZHNhZmUiYCwgd2hpY2ggaXMgc2FmZXIgYnV0IHNsb3dlciwgYW5kIHNlZSBpZiBpdCBoZWxwcy4K
LQotSWYgeW91IGdvIHdpdGggdGhyZWFkLXNhZmUgZGVhdGggdGVzdHMsIHJlbWVtYmVyIHRoYXQg
dGhleSByZXJ1biB0aGUgdGVzdAotcHJvZ3JhbSBmcm9tIHRoZSBiZWdpbm5pbmcgaW4gdGhlIGNo
aWxkIHByb2Nlc3MuIFRoZXJlZm9yZSBtYWtlIHN1cmUgeW91cgotcHJvZ3JhbSBjYW4gcnVuIHNp
ZGUtYnktc2lkZSB3aXRoIGl0c2VsZiBhbmQgaXMgZGV0ZXJtaW5pc3RpYy4KLQotSW4gdGhlIGVu
ZCwgdGhpcyBib2lscyBkb3duIHRvIGdvb2QgY29uY3VycmVudCBwcm9ncmFtbWluZy4gWW91IGhh
dmUgdG8gbWFrZQotc3VyZSB0aGF0IHRoZXJlIGlzIG5vIHJhY2UgY29uZGl0aW9ucyBvciBkZWFk
IGxvY2tzIGluIHlvdXIgcHJvZ3JhbS4gTm8gc2lsdmVyCi1idWxsZXQgLSBzb3JyeSEKLQotIyMg
U2hvdWxkIEkgdXNlIHRoZSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIG9mIHRoZSB0ZXN0IGZpeHR1
cmUgb3IgU2V0VXAoKS9UZWFyRG93bigpPwotCi1UaGUgZmlyc3QgdGhpbmcgdG8gcmVtZW1iZXIg
aXMgdGhhdCBnb29nbGV0ZXN0IGRvZXMgKipub3QqKiByZXVzZSB0aGUgc2FtZSB0ZXN0Ci1maXh0
dXJlIG9iamVjdCBhY3Jvc3MgbXVsdGlwbGUgdGVzdHMuIEZvciBlYWNoIGBURVNUX0ZgLCBnb29n
bGV0ZXN0IHdpbGwgY3JlYXRlCi1hICoqZnJlc2gqKiB0ZXN0IGZpeHR1cmUgb2JqZWN0LCBpbW1l
ZGlhdGVseSBjYWxsIGBTZXRVcCgpYCwgcnVuIHRoZSB0ZXN0IGJvZHksCi1jYWxsIGBUZWFyRG93
bigpYCwgYW5kIHRoZW4gZGVsZXRlIHRoZSB0ZXN0IGZpeHR1cmUgb2JqZWN0LgotCi1XaGVuIHlv
dSBuZWVkIHRvIHdyaXRlIHBlci10ZXN0IHNldC11cCBhbmQgdGVhci1kb3duIGxvZ2ljLCB5b3Ug
aGF2ZSB0aGUgY2hvaWNlCi1iZXR3ZWVuIHVzaW5nIHRoZSB0ZXN0IGZpeHR1cmUgY29uc3RydWN0
b3IvZGVzdHJ1Y3RvciBvciBgU2V0VXAoKS9UZWFyRG93bigpYC4KLVRoZSBmb3JtZXIgaXMgdXN1
YWxseSBwcmVmZXJyZWQsIGFzIGl0IGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRzOgotCi0qICAg
QnkgaW5pdGlhbGl6aW5nIGEgbWVtYmVyIHZhcmlhYmxlIGluIHRoZSBjb25zdHJ1Y3Rvciwgd2Ug
aGF2ZSB0aGUgb3B0aW9uIHRvCi0gICAgbWFrZSBpdCBgY29uc3RgLCB3aGljaCBoZWxwcyBwcmV2
ZW50IGFjY2lkZW50YWwgY2hhbmdlcyB0byBpdHMgdmFsdWUgYW5kCi0gICAgbWFrZXMgdGhlIHRl
c3RzIG1vcmUgb2J2aW91c2x5IGNvcnJlY3QuCi0qICAgSW4gY2FzZSB3ZSBuZWVkIHRvIHN1YmNs
YXNzIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MsIHRoZSBzdWJjbGFzcycKLSAgICBjb25zdHJ1Y3Rv
ciBpcyBndWFyYW50ZWVkIHRvIGNhbGwgdGhlIGJhc2UgY2xhc3MnIGNvbnN0cnVjdG9yICpmaXJz
dCosIGFuZAotICAgIHRoZSBzdWJjbGFzcycgZGVzdHJ1Y3RvciBpcyBndWFyYW50ZWVkIHRvIGNh
bGwgdGhlIGJhc2UgY2xhc3MnIGRlc3RydWN0b3IKLSAgICAqYWZ0ZXJ3YXJkKi4gV2l0aCBgU2V0
VXAoKS9UZWFyRG93bigpYCwgYSBzdWJjbGFzcyBtYXkgbWFrZSB0aGUgbWlzdGFrZSBvZgotICAg
IGZvcmdldHRpbmcgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcycgYFNldFVwKCkvVGVhckRvd24oKWAg
b3IgY2FsbCB0aGVtIGF0IHRoZQotICAgIHdyb25nIHRpbWUuCi0KLVlvdSBtYXkgc3RpbGwgd2Fu
dCB0byB1c2UgYFNldFVwKCkvVGVhckRvd24oKWAgaW4gdGhlIGZvbGxvd2luZyByYXJlIGNhc2Vz
OgotCi0qICAgSW4gdGhlIGJvZHkgb2YgYSBjb25zdHJ1Y3RvciAob3IgZGVzdHJ1Y3RvciksIGl0
J3Mgbm90IHBvc3NpYmxlIHRvIHVzZSB0aGUKLSAgICBgQVNTRVJUX3h4YCBtYWNyb3MuIFRoZXJl
Zm9yZSwgaWYgdGhlIHNldC11cCBvcGVyYXRpb24gY291bGQgY2F1c2UgYSBmYXRhbAotICAgIHRl
c3QgZmFpbHVyZSB0aGF0IHNob3VsZCBwcmV2ZW50IHRoZSB0ZXN0IGZyb20gcnVubmluZywgaXQn
cyBuZWNlc3NhcnkgdG8KLSAgICB1c2UgYSBgQ0hFQ0tgIG1hY3JvIG9yIHRvIHVzZSBgU2V0VXAo
KWAgaW5zdGVhZCBvZiBhIGNvbnN0cnVjdG9yLgotKiAgIElmIHRoZSB0ZWFyLWRvd24gb3BlcmF0
aW9uIGNvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiwgeW91IG11c3QgdXNlCi0gICAgYFRlYXJEb3du
KClgIGFzIG9wcG9zZWQgdG8gdGhlIGRlc3RydWN0b3IsIGFzIHRocm93aW5nIGluIGEgZGVzdHJ1
Y3RvciBsZWFkcwotICAgIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBhbmQgdXN1YWxseSB3aWxsIGtp
bGwgeW91ciBwcm9ncmFtIHJpZ2h0IGF3YXkuIE5vdGUKLSAgICB0aGF0IG1hbnkgc3RhbmRhcmQg
bGlicmFyaWVzIChsaWtlIFNUTCkgbWF5IHRocm93IHdoZW4gZXhjZXB0aW9ucyBhcmUKLSAgICBl
bmFibGVkIGluIHRoZSBjb21waWxlci4gVGhlcmVmb3JlIHlvdSBzaG91bGQgcHJlZmVyIGBUZWFy
RG93bigpYCBpZiB5b3UKLSAgICB3YW50IHRvIHdyaXRlIHBvcnRhYmxlIHRlc3RzIHRoYXQgd29y
ayB3aXRoIG9yIHdpdGhvdXQgZXhjZXB0aW9ucy4KLSogICBUaGUgZ29vZ2xldGVzdCB0ZWFtIGlz
IGNvbnNpZGVyaW5nIG1ha2luZyB0aGUgYXNzZXJ0aW9uIG1hY3JvcyB0aHJvdyBvbgotICAgIHBs
YXRmb3JtcyB3aGVyZSBleGNlcHRpb25zIGFyZSBlbmFibGVkIChlLmcuIFdpbmRvd3MsIE1hYyBP
UywgYW5kIExpbnV4Ci0gICAgY2xpZW50LXNpZGUpLCB3aGljaCB3aWxsIGVsaW1pbmF0ZSB0aGUg
bmVlZCBmb3IgdGhlIHVzZXIgdG8gcHJvcGFnYXRlCi0gICAgZmFpbHVyZXMgZnJvbSBhIHN1YnJv
dXRpbmUgdG8gaXRzIGNhbGxlci4gVGhlcmVmb3JlLCB5b3Ugc2hvdWxkbid0IHVzZQotICAgIGdv
b2dsZXRlc3QgYXNzZXJ0aW9ucyBpbiBhIGRlc3RydWN0b3IgaWYgeW91ciBjb2RlIGNvdWxkIHJ1
biBvbiBzdWNoIGEKLSAgICBwbGF0Zm9ybS4KLSogICBJbiBhIGNvbnN0cnVjdG9yIG9yIGRlc3Ry
dWN0b3IsIHlvdSBjYW5ub3QgbWFrZSBhIHZpcnR1YWwgZnVuY3Rpb24gY2FsbCBvbgotICAgIHRo
aXMgb2JqZWN0LiAoWW91IGNhbiBjYWxsIGEgbWV0aG9kIGRlY2xhcmVkIGFzIHZpcnR1YWwsIGJ1
dCBpdCB3aWxsIGJlCi0gICAgc3RhdGljYWxseSBib3VuZC4pIFRoZXJlZm9yZSwgaWYgeW91IG5l
ZWQgdG8gY2FsbCBhIG1ldGhvZCB0aGF0IHdpbGwgYmUKLSAgICBvdmVycmlkZGVuIGluIGEgZGVy
aXZlZCBjbGFzcywgeW91IGhhdmUgdG8gdXNlIGBTZXRVcCgpL1RlYXJEb3duKClgLgotCi0KLSMj
IFRoZSBjb21waWxlciBjb21wbGFpbnMgIm5vIG1hdGNoaW5nIGZ1bmN0aW9uIHRvIGNhbGwiIHdo
ZW4gSSB1c2UgQVNTRVJUX1BSRUQqLiBIb3cgZG8gSSBmaXggaXQ/Ci0KLUlmIHRoZSBwcmVkaWNh
dGUgZnVuY3Rpb24geW91IHVzZSBpbiBgQVNTRVJUX1BSRUQqYCBvciBgRVhQRUNUX1BSRUQqYCBp
cwotb3ZlcmxvYWRlZCBvciBhIHRlbXBsYXRlLCB0aGUgY29tcGlsZXIgd2lsbCBoYXZlIHRyb3Vi
bGUgZmlndXJpbmcgb3V0IHdoaWNoCi1vdmVybG9hZGVkIHZlcnNpb24gaXQgc2hvdWxkIHVzZS4g
YEFTU0VSVF9QUkVEX0ZPUk1BVCpgIGFuZAotYEVYUEVDVF9QUkVEX0ZPUk1BVCpgIGRvbid0IGhh
dmUgdGhpcyBwcm9ibGVtLgotCi1JZiB5b3Ugc2VlIHRoaXMgZXJyb3IsIHlvdSBtaWdodCB3YW50
IHRvIHN3aXRjaCB0bwotYChBU1NFUlR8RVhQRUNUKV9QUkVEX0ZPUk1BVCpgLCB3aGljaCB3aWxs
IGFsc28gZ2l2ZSB5b3UgYSBiZXR0ZXIgZmFpbHVyZQotbWVzc2FnZS4gSWYsIGhvd2V2ZXIsIHRo
YXQgaXMgbm90IGFuIG9wdGlvbiwgeW91IGNhbiByZXNvbHZlIHRoZSBwcm9ibGVtIGJ5Ci1leHBs
aWNpdGx5IHRlbGxpbmcgdGhlIGNvbXBpbGVyIHdoaWNoIHZlcnNpb24gdG8gcGljay4KLQotRm9y
IGV4YW1wbGUsIHN1cHBvc2UgeW91IGhhdmUKLQotYGBgYysrCi1ib29sIElzUG9zaXRpdmUoaW50
IG4pIHsKLSAgcmV0dXJuIG4gPiAwOwotfQotCi1ib29sIElzUG9zaXRpdmUoZG91YmxlIHgpIHsK
LSAgcmV0dXJuIHggPiAwOwotfQotYGBgCi0KLXlvdSB3aWxsIGdldCBhIGNvbXBpbGVyIGVycm9y
IGlmIHlvdSB3cml0ZQotCi1gYGBjKysKLUVYUEVDVF9QUkVEMShJc1Bvc2l0aXZlLCA1KTsKLWBg
YAotCi1Ib3dldmVyLCB0aGlzIHdpbGwgd29yazoKLQotYGBgYysrCi1FWFBFQ1RfUFJFRDEoc3Rh
dGljX2Nhc3Q8Ym9vbCAoKikoaW50KT4oSXNQb3NpdGl2ZSksIDUpOwotYGBgCi0KLShUaGUgc3R1
ZmYgaW5zaWRlIHRoZSBhbmdsZWQgYnJhY2tldHMgZm9yIHRoZSBgc3RhdGljX2Nhc3RgIG9wZXJh
dG9yIGlzIHRoZSB0eXBlCi1vZiB0aGUgZnVuY3Rpb24gcG9pbnRlciBmb3IgdGhlIGBpbnRgLXZl
cnNpb24gb2YgYElzUG9zaXRpdmUoKWAuKQotCi1BcyBhbm90aGVyIGV4YW1wbGUsIHdoZW4geW91
IGhhdmUgYSB0ZW1wbGF0ZSBmdW5jdGlvbgotCi1gYGBjKysKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotYm9vbCBJc05lZ2F0aXZlKFQgeCkgewotICByZXR1cm4geCA8IDA7Ci19Ci1gYGAKLQoteW91
IGNhbiB1c2UgaXQgaW4gYSBwcmVkaWNhdGUgYXNzZXJ0aW9uIGxpa2UgdGhpczoKLQotYGBgYysr
Ci1BU1NFUlRfUFJFRDEoSXNOZWdhdGl2ZTxpbnQ+LCAtNSk7Ci1gYGAKLQotVGhpbmdzIGFyZSBt
b3JlIGludGVyZXN0aW5nIGlmIHlvdXIgdGVtcGxhdGUgaGFzIG1vcmUgdGhhbiBvbmUgcGFyYW1l
dGVycy4gVGhlCi1mb2xsb3dpbmcgd29uJ3QgY29tcGlsZToKLQotYGBgYysrCi1BU1NFUlRfUFJF
RDIoR3JlYXRlclRoYW48aW50LCBpbnQ+LCA1LCAwKTsKLWBgYAotCi1hcyB0aGUgQysrIHByZS1w
cm9jZXNzb3IgdGhpbmtzIHlvdSBhcmUgZ2l2aW5nIGBBU1NFUlRfUFJFRDJgIDQgYXJndW1lbnRz
LCB3aGljaAotaXMgb25lIG1vcmUgdGhhbiBleHBlY3RlZC4gVGhlIHdvcmthcm91bmQgaXMgdG8g
d3JhcCB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uIGluCi1wYXJlbnRoZXNlczoKLQotYGBgYysrCi1B
U1NFUlRfUFJFRDIoKEdyZWF0ZXJUaGFuPGludCwgaW50PiksIDUsIDApOwotYGBgCi0KLQotIyMg
TXkgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICJpZ25vcmluZyByZXR1cm4gdmFsdWUiIHdoZW4g
SSBjYWxsIFJVTl9BTExfVEVTVFMoKS4gV2h5PwotCi1Tb21lIHBlb3BsZSBoYWQgYmVlbiBpZ25v
cmluZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLiBUaGF0IGlzLAotaW5z
dGVhZCBvZgotCi1gYGBjKysKLSAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKLWBgYAotCi10aGV5
IHdyaXRlCi0KLWBgYGMrKwotICBSVU5fQUxMX1RFU1RTKCk7Ci1gYGAKLQotVGhpcyBpcyAqKndy
b25nIGFuZCBkYW5nZXJvdXMqKi4gVGhlIHRlc3Rpbmcgc2VydmljZXMgbmVlZHMgdG8gc2VlIHRo
ZSByZXR1cm4KLXZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgIGluIG9yZGVyIHRvIGRldGVybWlu
ZSBpZiBhIHRlc3QgaGFzIHBhc3NlZC4gSWYgeW91cgotYG1haW4oKWAgZnVuY3Rpb24gaWdub3Jl
cyBpdCwgeW91ciB0ZXN0IHdpbGwgYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGV2ZW4gaWYgaXQK
LWhhcyBhIGdvb2dsZXRlc3QgYXNzZXJ0aW9uIGZhaWx1cmUuIFZlcnkgYmFkLgotCi1XZSBoYXZl
IGRlY2lkZWQgdG8gZml4IHRoaXMgKHRoYW5rcyB0byBNaWNoYWVsIENoYXN0YWluIGZvciB0aGUg
aWRlYSkuIE5vdywgeW91cgotY29kZSB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHRvIGlnbm9yZSBg
UlVOX0FMTF9URVNUUygpYCB3aGVuIGNvbXBpbGVkIHdpdGgKLWBnY2NgLiBJZiB5b3UgZG8gc28s
IHlvdSdsbCBnZXQgYSBjb21waWxlciBlcnJvci4KLQotSWYgeW91IHNlZSB0aGUgY29tcGlsZXIg
Y29tcGxhaW5pbmcgYWJvdXQgeW91IGlnbm9yaW5nIHRoZSByZXR1cm4gdmFsdWUgb2YKLWBSVU5f
QUxMX1RFU1RTKClgLCB0aGUgZml4IGlzIHNpbXBsZToganVzdCBtYWtlIHN1cmUgaXRzIHZhbHVl
IGlzIHVzZWQgYXMgdGhlCi1yZXR1cm4gdmFsdWUgb2YgYG1haW4oKWAuCi0KLUJ1dCBob3cgY291
bGQgd2UgaW50cm9kdWNlIGEgY2hhbmdlIHRoYXQgYnJlYWtzIGV4aXN0aW5nIHRlc3RzPyBXZWxs
LCBpbiB0aGlzCi1jYXNlLCB0aGUgY29kZSB3YXMgYWxyZWFkeSBicm9rZW4gaW4gdGhlIGZpcnN0
IHBsYWNlLCBzbyB3ZSBkaWRuJ3QgYnJlYWsgaXQuIDotKQotCi0jIyBNeSBjb21waWxlciBjb21w
bGFpbnMgdGhhdCBhIGNvbnN0cnVjdG9yIChvciBkZXN0cnVjdG9yKSBjYW5ub3QgcmV0dXJuIGEg
dmFsdWUuIFdoYXQncyBnb2luZyBvbj8KLQotRHVlIHRvIGEgcGVjdWxpYXJpdHkgb2YgQysrLCBp
biBvcmRlciB0byBzdXBwb3J0IHRoZSBzeW50YXggZm9yIHN0cmVhbWluZwotbWVzc2FnZXMgdG8g
YW4gYEFTU0VSVF8qYCwgZS5nLgotCi1gYGBjKysKLSAgQVNTRVJUX0VRKDEsIEZvbygpKSA8PCAi
YmxhaCBibGFoIiA8PCBmb287Ci1gYGAKLQotd2UgaGFkIHRvIGdpdmUgdXAgdXNpbmcgYEFTU0VS
VCpgIGFuZCBgRkFJTCpgIChidXQgbm90IGBFWFBFQ1QqYCBhbmQKLWBBRERfRkFJTFVSRSpgKSBp
biBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBtb3Zl
IHRoZQotY29udGVudCBvZiB5b3VyIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IgdG8gYSBwcml2YXRl
IHZvaWQgbWVtYmVyIGZ1bmN0aW9uLCBvcgotc3dpdGNoIHRvIGBFWFBFQ1RfKigpYCBpZiB0aGF0
IHdvcmtzLiBUaGlzCi1bc2VjdGlvbl0oYWR2YW5jZWQubWQjYXNzZXJ0aW9uLXBsYWNlbWVudCkg
aW4gdGhlIHVzZXIncyBndWlkZSBleHBsYWlucyBpdC4KLQotIyMgTXkgU2V0VXAoKSBmdW5jdGlv
biBpcyBub3QgY2FsbGVkLiBXaHk/Ci0KLUMrKyBpcyBjYXNlLXNlbnNpdGl2ZS4gRGlkIHlvdSBz
cGVsbCBpdCBhcyBgU2V0dXAoKWA/Ci0KLVNpbWlsYXJseSwgc29tZXRpbWVzIHBlb3BsZSBzcGVs
bCBgU2V0VXBUZXN0Q2FzZSgpYCBhcyBgU2V0dXBUZXN0Q2FzZSgpYCBhbmQKLXdvbmRlciB3aHkg
aXQncyBuZXZlciBjYWxsZWQuCi0KLSMjIEhvdyBkbyBJIGp1bXAgdG8gdGhlIGxpbmUgb2YgYSBm
YWlsdXJlIGluIEVtYWNzIGRpcmVjdGx5PwotCi1nb29nbGV0ZXN0J3MgZmFpbHVyZSBtZXNzYWdl
IGZvcm1hdCBpcyB1bmRlcnN0b29kIGJ5IEVtYWNzIGFuZCBtYW55IG90aGVyIElERXMsCi1saWtl
IGFjbWUgYW5kIFhDb2RlLiBJZiBhIGdvb2dsZXRlc3QgbWVzc2FnZSBpcyBpbiBhIGNvbXBpbGF0
aW9uIGJ1ZmZlciBpbgotRW1hY3MsIHRoZW4gaXQncyBjbGlja2FibGUuCi0KLQotIyMgSSBoYXZl
IHNldmVyYWwgdGVzdCBjYXNlcyB3aGljaCBzaGFyZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUgbG9n
aWMsIGRvIEkgaGF2ZSB0byBkZWZpbmUgYSBuZXcgdGVzdCBmaXh0dXJlIGNsYXNzIGZvciBlYWNo
IG9mIHRoZW0/IFRoaXMgc2VlbXMgcHJldHR5IHRlZGlvdXMuCi0KLVlvdSBkb24ndCBoYXZlIHRv
LiBJbnN0ZWFkIG9mCi0KLWBgYGMrKwotY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCB7
fTsKLQotVEVTVF9GKEZvb1Rlc3QsIEFiYykgeyAuLi4gfQotVEVTVF9GKEZvb1Rlc3QsIERlZikg
eyAuLi4gfQotCi1jbGFzcyBCYXJUZXN0IDogcHVibGljIEJhc2VUZXN0IHt9OwotCi1URVNUX0Yo
QmFyVGVzdCwgQWJjKSB7IC4uLiB9Ci1URVNUX0YoQmFyVGVzdCwgRGVmKSB7IC4uLiB9Ci1gYGAK
LQoteW91IGNhbiBzaW1wbHkgYHR5cGVkZWZgIHRoZSB0ZXN0IGZpeHR1cmVzOgotCi1gYGBjKysK
LXR5cGVkZWYgQmFzZVRlc3QgRm9vVGVzdDsKLQotVEVTVF9GKEZvb1Rlc3QsIEFiYykgeyAuLi4g
fQotVEVTVF9GKEZvb1Rlc3QsIERlZikgeyAuLi4gfQotCi10eXBlZGVmIEJhc2VUZXN0IEJhclRl
c3Q7Ci0KLVRFU1RfRihCYXJUZXN0LCBBYmMpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0LCBEZWYp
IHsgLi4uIH0KLWBgYAotCi0jIyBnb29nbGV0ZXN0IG91dHB1dCBpcyBidXJpZWQgaW4gYSB3aG9s
ZSBidW5jaCBvZiBMT0cgbWVzc2FnZXMuIFdoYXQgZG8gSSBkbz8KLQotVGhlIGdvb2dsZXRlc3Qg
b3V0cHV0IGlzIG1lYW50IHRvIGJlIGEgY29uY2lzZSBhbmQgaHVtYW4tZnJpZW5kbHkgcmVwb3J0
LiBJZgoteW91ciB0ZXN0IGdlbmVyYXRlcyB0ZXh0dWFsIG91dHB1dCBpdHNlbGYsIGl0IHdpbGwg
bWl4IHdpdGggdGhlIGdvb2dsZXRlc3QKLW91dHB1dCwgbWFraW5nIGl0IGhhcmQgdG8gcmVhZC4g
SG93ZXZlciwgdGhlcmUgaXMgYW4gZWFzeSBzb2x1dGlvbiB0byB0aGlzCi1wcm9ibGVtLgotCi1T
aW5jZSBgTE9HYCBtZXNzYWdlcyBnbyB0byBzdGRlcnIsIHdlIGRlY2lkZWQgdG8gbGV0IGdvb2ds
ZXRlc3Qgb3V0cHV0IGdvIHRvCi1zdGRvdXQuIFRoaXMgd2F5LCB5b3UgY2FuIGVhc2lseSBzZXBh
cmF0ZSB0aGUgdHdvIHVzaW5nIHJlZGlyZWN0aW9uLiBGb3IKLWV4YW1wbGU6Ci0KLWBgYHNoZWxs
Ci0kIC4vbXlfdGVzdCA+IGd0ZXN0X291dHB1dC50eHQKLWBgYAotCi0KLSMjIFdoeSBzaG91bGQg
SSBwcmVmZXIgdGVzdCBmaXh0dXJlcyBvdmVyIGdsb2JhbCB2YXJpYWJsZXM/Ci0KLVRoZXJlIGFy
ZSBzZXZlcmFsIGdvb2QgcmVhc29uczoKLQotMS4gIEl0J3MgbGlrZWx5IHlvdXIgdGVzdCBuZWVk
cyB0byBjaGFuZ2UgdGhlIHN0YXRlcyBvZiBpdHMgZ2xvYmFsIHZhcmlhYmxlcy4KLSAgICBUaGlz
IG1ha2VzIGl0IGRpZmZpY3VsdCB0byBrZWVwIHNpZGUgZWZmZWN0cyBmcm9tIGVzY2FwaW5nIG9u
ZSB0ZXN0IGFuZAotICAgIGNvbnRhbWluYXRpbmcgb3RoZXJzLCBtYWtpbmcgZGVidWdnaW5nIGRp
ZmZpY3VsdC4gQnkgdXNpbmcgZml4dHVyZXMsIGVhY2gKLSAgICB0ZXN0IGhhcyBhIGZyZXNoIHNl
dCBvZiB2YXJpYWJsZXMgdGhhdCdzIGRpZmZlcmVudCAoYnV0IHdpdGggdGhlIHNhbWUKLSAgICBu
YW1lcykuIFRodXMsIHRlc3RzIGFyZSBrZXB0IGluZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIuCi0x
LiAgR2xvYmFsIHZhcmlhYmxlcyBwb2xsdXRlIHRoZSBnbG9iYWwgbmFtZXNwYWNlLgotMS4gIFRl
c3QgZml4dHVyZXMgY2FuIGJlIHJldXNlZCB2aWEgc3ViY2xhc3NpbmcsIHdoaWNoIGNhbm5vdCBi
ZSBkb25lIGVhc2lseQotICAgIHdpdGggZ2xvYmFsIHZhcmlhYmxlcy4gVGhpcyBpcyB1c2VmdWwg
aWYgbWFueSB0ZXN0IGNhc2VzIGhhdmUgc29tZXRoaW5nIGluCi0gICAgY29tbW9uLgotCi0KLSAg
ICAjIyBXaGF0IGNhbiB0aGUgc3RhdGVtZW50IGFyZ3VtZW50IGluIEFTU0VSVF9ERUFUSCgpIGJl
PwotCi1gQVNTRVJUX0RFQVRIKCpzdGF0ZW1lbnQqLCAqcmVnZXgqKWAgKG9yIGFueSBkZWF0aCBh
c3NlcnRpb24gbWFjcm8pIGNhbiBiZSB1c2VkCi13aGVyZXZlciBgKnN0YXRlbWVudCpgIGlzIHZh
bGlkLiBTbyBiYXNpY2FsbHkgYCpzdGF0ZW1lbnQqYCBjYW4gYmUgYW55IEMrKwotc3RhdGVtZW50
IHRoYXQgbWFrZXMgc2Vuc2UgaW4gdGhlIGN1cnJlbnQgY29udGV4dC4gSW4gcGFydGljdWxhciwg
aXQgY2FuCi1yZWZlcmVuY2UgZ2xvYmFsIGFuZC9vciBsb2NhbCB2YXJpYWJsZXMsIGFuZCBjYW4g
YmU6Ci0KLSogICBhIHNpbXBsZSBmdW5jdGlvbiBjYWxsIChvZnRlbiB0aGUgY2FzZSksCi0qICAg
YSBjb21wbGV4IGV4cHJlc3Npb24sIG9yCi0qICAgYSBjb21wb3VuZCBzdGF0ZW1lbnQuCi0KLVNv
bWUgZXhhbXBsZXMgYXJlIHNob3duIGhlcmU6Ci0KLWBgYGMrKwotLy8gQSBkZWF0aCB0ZXN0IGNh
biBiZSBhIHNpbXBsZSBmdW5jdGlvbiBjYWxsLgotVEVTVChNeURlYXRoVGVzdCwgRnVuY3Rpb25D
YWxsKSB7Ci0gIEFTU0VSVF9ERUFUSChYeXooNSksICJYeXogZmFpbGVkIik7Ci19Ci0KLS8vIE9y
IGEgY29tcGxleCBleHByZXNzaW9uIHRoYXQgcmVmZXJlbmNlcyB2YXJpYWJsZXMgYW5kIGZ1bmN0
aW9ucy4KLVRFU1QoTXlEZWF0aFRlc3QsIENvbXBsZXhFeHByZXNzaW9uKSB7Ci0gIGNvbnN0IGJv
b2wgYyA9IENvbmRpdGlvbigpOwotICBBU1NFUlRfREVBVEgoKGMgPyBGdW5jMSgwKSA6IG9iamVj
dDIuTWV0aG9kKCJ0ZXN0IikpLAotICAgICAgICAgICAgICAgIihGdW5jMXxNZXRob2QpIGZhaWxl
ZCIpOwotfQotCi0vLyBEZWF0aCBhc3NlcnRpb25zIGNhbiBiZSB1c2VkIGFueSB3aGVyZSBpbiBh
IGZ1bmN0aW9uLiAgSW4KLS8vIHBhcnRpY3VsYXIsIHRoZXkgY2FuIGJlIGluc2lkZSBhIGxvb3Au
Ci1URVNUKE15RGVhdGhUZXN0LCBJbnNpZGVMb29wKSB7Ci0gIC8vIFZlcmlmaWVzIHRoYXQgRm9v
KDApLCBGb28oMSksIC4uLiwgYW5kIEZvbyg0KSBhbGwgZGllLgotICBmb3IgKGludCBpID0gMDsg
aSA8IDU7IGkrKykgewotICAgIEVYUEVDVF9ERUFUSF9NKEZvbyhpKSwgIkZvbyBoYXMgXFxkKyBl
cnJvcnMiLAotICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6TWVzc2FnZSgpIDw8ICJ3aGVy
ZSBpIGlzICIgPDwgaSk7Ci0gIH0KLX0KLQotLy8gQSBkZWF0aCBhc3NlcnRpb24gY2FuIGNvbnRh
aW4gYSBjb21wb3VuZCBzdGF0ZW1lbnQuCi1URVNUKE15RGVhdGhUZXN0LCBDb21wb3VuZFN0YXRl
bWVudCkgewotICAvLyBWZXJpZmllcyB0aGF0IGF0IGxlYXNlIG9uZSBvZiBCYXIoMCksIEJhcigx
KSwgLi4uLCBhbmQKLSAgLy8gQmFyKDQpIGRpZXMuCi0gIEFTU0VSVF9ERUFUSCh7Ci0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKLSAgICAgIEJhcihpKTsKLSAgICB9Ci0gIH0sCi0g
ICJCYXIgaGFzIFxcZCsgZXJyb3JzIik7Ci19Ci1gYGAKLQotZ3Rlc3QtZGVhdGgtdGVzdF90ZXN0
LmNjIGNvbnRhaW5zIG1vcmUgZXhhbXBsZXMgaWYgeW91IGFyZSBpbnRlcmVzdGVkLgotCi0jIyBJ
IGhhdmUgYSBmaXh0dXJlIGNsYXNzIGBGb29UZXN0YCwgYnV0IGBURVNUX0YoRm9vVGVzdCwgQmFy
KWAgZ2l2ZXMgbWUgZXJyb3IgYGAibm8gbWF0Y2hpbmcgZnVuY3Rpb24gZm9yIGNhbGwgdG8gYEZv
b1Rlc3Q6OkZvb1Rlc3QoKSciYGAuIFdoeT8KLQotR29vZ2xldGVzdCBuZWVkcyB0byBiZSBhYmxl
IHRvIGNyZWF0ZSBvYmplY3RzIG9mIHlvdXIgdGVzdCBmaXh0dXJlIGNsYXNzLCBzbyBpdAotbXVz
dCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gTm9ybWFsbHkgdGhlIGNvbXBpbGVyIHdpbGwg
ZGVmaW5lIG9uZSBmb3IgeW91LgotSG93ZXZlciwgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHlvdSBo
YXZlIHRvIGRlZmluZSB5b3VyIG93bjoKLQotKiAgIElmIHlvdSBleHBsaWNpdGx5IGRlY2xhcmUg
YSBub24tZGVmYXVsdCBjb25zdHJ1Y3RvciBmb3IgY2xhc3MgYEZvb1Rlc3RgCi0gICAgKGBESVNB
TExPV19FVklMX0NPTlNUUlVDVE9SUygpYCBkb2VzIHRoaXMpLCB0aGVuIHlvdSBuZWVkIHRvIGRl
ZmluZSBhCi0gICAgZGVmYXVsdCBjb25zdHJ1Y3RvciwgZXZlbiBpZiBpdCB3b3VsZCBiZSBlbXB0
eS4KLSogICBJZiBgRm9vVGVzdGAgaGFzIGEgY29uc3Qgbm9uLXN0YXRpYyBkYXRhIG1lbWJlciwg
dGhlbiB5b3UgaGF2ZSB0byBkZWZpbmUgdGhlCi0gICAgZGVmYXVsdCBjb25zdHJ1Y3RvciAqYW5k
KiBpbml0aWFsaXplIHRoZSBjb25zdCBtZW1iZXIgaW4gdGhlIGluaXRpYWxpemVyCi0gICAgbGlz
dCBvZiB0aGUgY29uc3RydWN0b3IuIChFYXJseSB2ZXJzaW9ucyBvZiBgZ2NjYCBkb2Vzbid0IGZv
cmNlIHlvdSB0bwotICAgIGluaXRpYWxpemUgdGhlIGNvbnN0IG1lbWJlci4gSXQncyBhIGJ1ZyB0
aGF0IGhhcyBiZWVuIGZpeGVkIGluIGBnY2MgNGAuKQotCi0jIyBXaHkgZG9lcyBBU1NFUlRfREVB
VEggY29tcGxhaW4gYWJvdXQgcHJldmlvdXMgdGhyZWFkcyB0aGF0IHdlcmUgYWxyZWFkeSBqb2lu
ZWQ/Ci0KLVdpdGggdGhlIExpbnV4IHB0aHJlYWQgbGlicmFyeSwgdGhlcmUgaXMgbm8gdHVybmlu
ZyBiYWNrIG9uY2UgeW91IGNyb3NzIHRoZSBsaW5lCi1mcm9tIHNpbmdsZSB0aHJlYWQgdG8gbXVs
dGlwbGUgdGhyZWFkcy4gVGhlIGZpcnN0IHRpbWUgeW91IGNyZWF0ZSBhIHRocmVhZCwgYQotbWFu
YWdlciB0aHJlYWQgaXMgY3JlYXRlZCBpbiBhZGRpdGlvbiwgc28geW91IGdldCAzLCBub3QgMiwg
dGhyZWFkcy4gTGF0ZXIgd2hlbgotdGhlIHRocmVhZCB5b3UgY3JlYXRlIGpvaW5zIHRoZSBtYWlu
IHRocmVhZCwgdGhlIHRocmVhZCBjb3VudCBkZWNyZW1lbnRzIGJ5IDEsCi1idXQgdGhlIG1hbmFn
ZXIgdGhyZWFkIHdpbGwgbmV2ZXIgYmUga2lsbGVkLCBzbyB5b3Ugc3RpbGwgaGF2ZSAyIHRocmVh
ZHMsIHdoaWNoCi1tZWFucyB5b3UgY2Fubm90IHNhZmVseSBydW4gYSBkZWF0aCB0ZXN0LgotCi1U
aGUgbmV3IE5QVEwgdGhyZWFkIGxpYnJhcnkgZG9lc24ndCBzdWZmZXIgZnJvbSB0aGlzIHByb2Js
ZW0sIGFzIGl0IGRvZXNuJ3QKLWNyZWF0ZSBhIG1hbmFnZXIgdGhyZWFkLiBIb3dldmVyLCBpZiB5
b3UgZG9uJ3QgY29udHJvbCB3aGljaCBtYWNoaW5lIHlvdXIgdGVzdAotcnVucyBvbiwgeW91IHNo
b3VsZG4ndCBkZXBlbmQgb24gdGhpcy4KLQotIyMgV2h5IGRvZXMgZ29vZ2xldGVzdCByZXF1aXJl
IHRoZSBlbnRpcmUgdGVzdCBjYXNlLCBpbnN0ZWFkIG9mIGluZGl2aWR1YWwgdGVzdHMsIHRvIGJl
IG5hbWVkICpEZWF0aFRlc3Qgd2hlbiBpdCB1c2VzIEFTU0VSVF9ERUFUSD8KLQotZ29vZ2xldGVz
dCBkb2VzIG5vdCBpbnRlcmxlYXZlIHRlc3RzIGZyb20gZGlmZmVyZW50IHRlc3QgY2FzZXMuIFRo
YXQgaXMsIGl0IHJ1bnMKLWFsbCB0ZXN0cyBpbiBvbmUgdGVzdCBjYXNlIGZpcnN0LCBhbmQgdGhl
biBydW5zIGFsbCB0ZXN0cyBpbiB0aGUgbmV4dCB0ZXN0IGNhc2UsCi1hbmQgc28gb24uIGdvb2ds
ZXRlc3QgZG9lcyB0aGlzIGJlY2F1c2UgaXQgbmVlZHMgdG8gc2V0IHVwIGEgdGVzdCBjYXNlIGJl
Zm9yZQotdGhlIGZpcnN0IHRlc3QgaW4gaXQgaXMgcnVuLCBhbmQgdGVhciBpdCBkb3duIGFmdGVy
d29yZHMuIFNwbGl0dGluZyB1cCB0aGUgdGVzdAotY2FzZSB3b3VsZCByZXF1aXJlIG11bHRpcGxl
IHNldC11cCBhbmQgdGVhci1kb3duIHByb2Nlc3Nlcywgd2hpY2ggaXMgaW5lZmZpY2llbnQKLWFu
ZCBtYWtlcyB0aGUgc2VtYW50aWNzIHVuY2xlYW4uCi0KLUlmIHdlIHdlcmUgdG8gZGV0ZXJtaW5l
IHRoZSBvcmRlciBvZiB0ZXN0cyBiYXNlZCBvbiB0ZXN0IG5hbWUgaW5zdGVhZCBvZiB0ZXN0Ci1j
YXNlIG5hbWUsIHRoZW4gd2Ugd291bGQgaGF2ZSBhIHByb2JsZW0gd2l0aCB0aGUgZm9sbG93aW5n
IHNpdHVhdGlvbjoKLQotYGBgYysrCi1URVNUX0YoRm9vVGVzdCwgQWJjRGVhdGhUZXN0KSB7IC4u
LiB9Ci1URVNUX0YoRm9vVGVzdCwgVXZ3KSB7IC4uLiB9Ci0KLVRFU1RfRihCYXJUZXN0LCBEZWZE
ZWF0aFRlc3QpIHsgLi4uIH0KLVRFU1RfRihCYXJUZXN0LCBYeXopIHsgLi4uIH0KLWBgYAotCi1T
aW5jZSBgRm9vVGVzdC5BYmNEZWF0aFRlc3RgIG5lZWRzIHRvIHJ1biBiZWZvcmUgYEJhclRlc3Qu
WHl6YCwgYW5kIHdlIGRvbid0Ci1pbnRlcmxlYXZlIHRlc3RzIGZyb20gZGlmZmVyZW50IHRlc3Qg
Y2FzZXMsIHdlIG5lZWQgdG8gcnVuIGFsbCB0ZXN0cyBpbiB0aGUKLWBGb29UZXN0YCBjYXNlIGJl
Zm9yZSBydW5uaW5nIGFueSB0ZXN0IGluIHRoZSBgQmFyVGVzdGAgY2FzZS4gVGhpcyBjb250cmFk
aWN0cwotd2l0aCB0aGUgcmVxdWlyZW1lbnQgdG8gcnVuIGBCYXJUZXN0LkRlZkRlYXRoVGVzdGAg
YmVmb3JlIGBGb29UZXN0LlV2d2AuCi0KLSMjIEJ1dCBJIGRvbid0IGxpa2UgY2FsbGluZyBteSBl
bnRpcmUgdGVzdCBjYXNlIFwqRGVhdGhUZXN0IHdoZW4gaXQgY29udGFpbnMgYm90aCBkZWF0aCB0
ZXN0cyBhbmQgbm9uLWRlYXRoIHRlc3RzLiBXaGF0IGRvIEkgZG8/Ci0KLVlvdSBkb24ndCBoYXZl
IHRvLCBidXQgaWYgeW91IGxpa2UsIHlvdSBtYXkgc3BsaXQgdXAgdGhlIHRlc3QgY2FzZSBpbnRv
Ci1gRm9vVGVzdGAgYW5kIGBGb29EZWF0aFRlc3RgLCB3aGVyZSB0aGUgbmFtZXMgbWFrZSBpdCBj
bGVhciB0aGF0IHRoZXkgYXJlCi1yZWxhdGVkOgotCi1gYGBjKysKLWNsYXNzIEZvb1Rlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsgLi4uIH07Ci0KLVRFU1RfRihGb29UZXN0LCBBYmMpIHsg
Li4uIH0KLVRFU1RfRihGb29UZXN0LCBEZWYpIHsgLi4uIH0KLQotdXNpbmcgRm9vRGVhdGhUZXN0
ID0gRm9vVGVzdDsKLQotVEVTVF9GKEZvb0RlYXRoVGVzdCwgVXZ3KSB7IC4uLiBFWFBFQ1RfREVB
VEgoLi4uKSAuLi4gfQotVEVTVF9GKEZvb0RlYXRoVGVzdCwgWHl6KSB7IC4uLiBBU1NFUlRfREVB
VEgoLi4uKSAuLi4gfQotYGBgCi0KLSMjIGdvb2dsZXRlc3QgcHJpbnRzIHRoZSBMT0cgbWVzc2Fn
ZXMgaW4gYSBkZWF0aCB0ZXN0J3MgY2hpbGQgcHJvY2VzcyBvbmx5IHdoZW4gdGhlIHRlc3QgZmFp
bHMuIEhvdyBjYW4gSSBzZWUgdGhlIExPRyBtZXNzYWdlcyB3aGVuIHRoZSBkZWF0aCB0ZXN0IHN1
Y2NlZWRzPwotCi1QcmludGluZyB0aGUgTE9HIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSB0aGUgc3Rh
dGVtZW50IGluc2lkZSBgRVhQRUNUX0RFQVRIKClgCi1tYWtlcyBpdCBoYXJkZXIgdG8gc2VhcmNo
IGZvciByZWFsIHByb2JsZW1zIGluIHRoZSBwYXJlbnQncyBsb2cuIFRoZXJlZm9yZSwKLWdvb2ds
ZXRlc3Qgb25seSBwcmludHMgdGhlbSB3aGVuIHRoZSBkZWF0aCB0ZXN0IGhhcyBmYWlsZWQuCi0K
LUlmIHlvdSByZWFsbHkgbmVlZCB0byBzZWUgc3VjaCBMT0cgbWVzc2FnZXMsIGEgd29ya2Fyb3Vu
ZCBpcyB0byB0ZW1wb3JhcmlseQotYnJlYWsgdGhlIGRlYXRoIHRlc3QgKGUuZy4gYnkgY2hhbmdp
bmcgdGhlIHJlZ2V4IHBhdHRlcm4gaXQgaXMgZXhwZWN0ZWQgdG8KLW1hdGNoKS4gQWRtaXR0ZWRs
eSwgdGhpcyBpcyBhIGhhY2suIFdlJ2xsIGNvbnNpZGVyIGEgbW9yZSBwZXJtYW5lbnQgc29sdXRp
b24KLWFmdGVyIHRoZSBmb3JrLWFuZC1leGVjLXN0eWxlIGRlYXRoIHRlc3RzIGFyZSBpbXBsZW1l
bnRlZC4KLQotIyMgVGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCAibm8gbWF0Y2ggZm9yICdv
cGVyYXRvcjw8JyIgd2hlbiBJIHVzZSBhbiBhc3NlcnRpb24uIFdoYXQgZ2l2ZXM/Ci0KLUlmIHlv
dSB1c2UgYSB1c2VyLWRlZmluZWQgdHlwZSBgRm9vVHlwZWAgaW4gYW4gYXNzZXJ0aW9uLCB5b3Ug
bXVzdCBtYWtlIHN1cmUKLXRoZXJlIGlzIGFuIGBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3Rk
Ojpvc3RyZWFtJiwgY29uc3QgRm9vVHlwZSYpYCBmdW5jdGlvbgotZGVmaW5lZCBzdWNoIHRoYXQg
d2UgY2FuIHByaW50IGEgdmFsdWUgb2YgYEZvb1R5cGVgLgotCi1JbiBhZGRpdGlvbiwgaWYgYEZv
b1R5cGVgIGlzIGRlY2xhcmVkIGluIGEgbmFtZSBzcGFjZSwgdGhlIGA8PGAgb3BlcmF0b3IgYWxz
bwotbmVlZHMgdG8gYmUgZGVmaW5lZCBpbiB0aGUgKnNhbWUqIG5hbWUgc3BhY2UuIFNlZSBnby90
b3R3LzQ5IGZvciBkZXRhaWxzLgotCi0jIyBIb3cgZG8gSSBzdXBwcmVzcyB0aGUgbWVtb3J5IGxl
YWsgbWVzc2FnZXMgb24gV2luZG93cz8KLQotU2luY2UgdGhlIHN0YXRpY2FsbHkgaW5pdGlhbGl6
ZWQgZ29vZ2xldGVzdCBzaW5nbGV0b24gcmVxdWlyZXMgYWxsb2NhdGlvbnMgb24KLXRoZSBoZWFw
LCB0aGUgVmlzdWFsIEMrKyBtZW1vcnkgbGVhayBkZXRlY3RvciB3aWxsIHJlcG9ydCBtZW1vcnkg
bGVha3MgYXQgdGhlCi1lbmQgb2YgdGhlIHByb2dyYW0gcnVuLiBUaGUgZWFzaWVzdCB3YXkgdG8g
YXZvaWQgdGhpcyBpcyB0byB1c2UgdGhlCi1gX0NydE1lbUNoZWNrcG9pbnRgIGFuZCBgX0NydE1l
bUR1bXBBbGxPYmplY3RzU2luY2VgIGNhbGxzIHRvIG5vdCByZXBvcnQgYW55Ci1zdGF0aWNhbGx5
IGluaXRpYWxpemVkIGhlYXAgb2JqZWN0cy4gU2VlIE1TRE4gZm9yIG1vcmUgZGV0YWlscyBhbmQg
YWRkaXRpb25hbAotaGVhcCBjaGVjay9kZWJ1ZyByb3V0aW5lcy4KLQotCi0jIyBIb3cgY2FuIG15
IGNvZGUgZGV0ZWN0IGlmIGl0IGlzIHJ1bm5pbmcgaW4gYSB0ZXN0PwotCi1JZiB5b3Ugd3JpdGUg
Y29kZSB0aGF0IHNuaWZmcyB3aGV0aGVyIGl0J3MgcnVubmluZyBpbiBhIHRlc3QgYW5kIGRvZXMg
ZGlmZmVyZW50Ci10aGluZ3MgYWNjb3JkaW5nbHksIHlvdSBhcmUgbGVha2luZyB0ZXN0LW9ubHkg
bG9naWMgaW50byBwcm9kdWN0aW9uIGNvZGUgYW5kCi10aGVyZSBpcyBubyBlYXN5IHdheSB0byBl
bnN1cmUgdGhhdCB0aGUgdGVzdC1vbmx5IGNvZGUgcGF0aHMgYXJlbid0IHJ1biBieQotbWlzdGFr
ZSBpbiBwcm9kdWN0aW9uLiBTdWNoIGNsZXZlcm5lc3MgYWxzbyBsZWFkcyB0bwotW0hlaXNlbmJ1
Z3NdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hlaXNlbmJ1ZykuIFRoZXJlZm9yZSB3
ZSBzdHJvbmdseQotYWR2aXNlIGFnYWluc3QgdGhlIHByYWN0aWNlLCBhbmQgZ29vZ2xldGVzdCBk
b2Vzbid0IHByb3ZpZGUgYSB3YXkgdG8gZG8gaXQuCi0KLUluIGdlbmVyYWwsIHRoZSByZWNvbW1l
bmRlZCB3YXkgdG8gY2F1c2UgdGhlIGNvZGUgdG8gYmVoYXZlIGRpZmZlcmVudGx5IHVuZGVyCi10
ZXN0IGlzIFtEZXBlbmRlbmN5IEluamVjdGlvbl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvRGVwZW5kZW5jeV9pbmplY3Rpb24pLiBZb3UgY2FuIGluamVjdAotZGlmZmVyZW50IGZ1bmN0
aW9uYWxpdHkgZnJvbSB0aGUgdGVzdCBhbmQgZnJvbSB0aGUgcHJvZHVjdGlvbiBjb2RlLiBTaW5j
ZSB5b3VyCi1wcm9kdWN0aW9uIGNvZGUgZG9lc24ndCBsaW5rIGluIHRoZSBmb3ItdGVzdCBsb2dp
YyBhdCBhbGwgKHRoZQotW2B0ZXN0b25seWBdKGh0dHBzOi8vZG9jcy5iYXplbC5idWlsZC92ZXJz
aW9ucy9tYXN0ZXIvYmUvY29tbW9uLWRlZmluaXRpb25zLmh0bWwjY29tbW9uLnRlc3Rvbmx5KQot
YXR0cmlidXRlIGZvciBCVUlMRCB0YXJnZXRzIGhlbHBzIHRvIGVuc3VyZSB0aGF0KSwgdGhlcmUg
aXMgbm8gZGFuZ2VyIGluCi1hY2NpZGVudGFsbHkgcnVubmluZyBpdC4KLQotSG93ZXZlciwgaWYg
eW91ICpyZWFsbHkqLCAqcmVhbGx5KiwgKnJlYWxseSogaGF2ZSBubyBjaG9pY2UsIGFuZCBpZiB5
b3UgZm9sbG93Ci10aGUgcnVsZSBvZiBlbmRpbmcgeW91ciB0ZXN0IHByb2dyYW0gbmFtZXMgd2l0
aCBgX3Rlc3RgLCB5b3UgY2FuIHVzZSB0aGUKLSpob3JyaWJsZSogaGFjayBvZiBzbmlmZmluZyB5
b3VyIGV4ZWN1dGFibGUgbmFtZSAoYGFyZ3ZbMF1gIGluIGBtYWluKClgKSB0byBrbm93Ci13aGV0
aGVyIHRoZSBjb2RlIGlzIHVuZGVyIHRlc3QuCi0KLQotIyMgSG93IGRvIEkgdGVtcG9yYXJpbHkg
ZGlzYWJsZSBhIHRlc3Q/Ci0KLUlmIHlvdSBoYXZlIGEgYnJva2VuIHRlc3QgdGhhdCB5b3UgY2Fu
bm90IGZpeCByaWdodCBhd2F5LCB5b3UgY2FuIGFkZCB0aGUKLURJU0FCTEVEXyBwcmVmaXggdG8g
aXRzIG5hbWUuIFRoaXMgd2lsbCBleGNsdWRlIGl0IGZyb20gZXhlY3V0aW9uLiBUaGlzIGlzCi1i
ZXR0ZXIgdGhhbiBjb21tZW50aW5nIG91dCB0aGUgY29kZSBvciB1c2luZyAjaWYgMCwgYXMgZGlz
YWJsZWQgdGVzdHMgYXJlIHN0aWxsCi1jb21waWxlZCAoYW5kIHRodXMgd29uJ3Qgcm90KS4KLQot
VG8gaW5jbHVkZSBkaXNhYmxlZCB0ZXN0cyBpbiB0ZXN0IGV4ZWN1dGlvbiwganVzdCBpbnZva2Ug
dGhlIHRlc3QgcHJvZ3JhbSB3aXRoCi10aGUgLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0
cyBmbGFnLgotCi0jIyBJcyBpdCBPSyBpZiBJIGhhdmUgdHdvIHNlcGFyYXRlIGBURVNUKEZvbywg
QmFyKWAgdGVzdCBtZXRob2RzIGRlZmluZWQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXM/Ci0KLVll
cy4KLQotVGhlIHJ1bGUgaXMgKiphbGwgdGVzdCBtZXRob2RzIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSBtdXN0IHVzZSB0aGUgc2FtZSBmaXh0dXJlCi1jbGFzcy4qKiBUaGlzIG1lYW5zIHRoYXQgdGhl
IGZvbGxvd2luZyBpcyAqKmFsbG93ZWQqKiBiZWNhdXNlIGJvdGggdGVzdHMgdXNlIHRoZQotc2Ft
ZSBmaXh0dXJlIGNsYXNzIChgOjp0ZXN0aW5nOjpUZXN0YCkuCi0KLWBgYGMrKwotbmFtZXNwYWNl
IGZvbyB7Ci1URVNUKENvb2xUZXN0LCBEb1NvbWV0aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19
ICAvLyBuYW1lc3BhY2UgZm9vCi0KLW5hbWVzcGFjZSBiYXIgewotVEVTVChDb29sVGVzdCwgRG9T
b21ldGhpbmcpIHsKLSAgU1VDQ0VFRCgpOwotfQotfSAgLy8gbmFtZXNwYWNlIGJhcgotYGBgCi0K
LUhvd2V2ZXIsIHRoZSBmb2xsb3dpbmcgY29kZSBpcyAqKm5vdCBhbGxvd2VkKiogYW5kIHdpbGwg
cHJvZHVjZSBhIHJ1bnRpbWUgZXJyb3IKLWZyb20gZ29vZ2xldGVzdCBiZWNhdXNlIHRoZSB0ZXN0
IG1ldGhvZHMgYXJlIHVzaW5nIGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUKLWNsYXNzZXMgd2l0aCB0
aGUgc2FtZSB0ZXN0IGNhc2UgbmFtZS4KLQotYGBgYysrCi1uYW1lc3BhY2UgZm9vIHsKLWNsYXNz
IENvb2xUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7fTsgIC8vIEZpeHR1cmUgZm9vOjpD
b29sVGVzdAotVEVTVF9GKENvb2xUZXN0LCBEb1NvbWV0aGluZykgewotICBTVUNDRUVEKCk7Ci19
Ci19ICAvLyBuYW1lc3BhY2UgZm9vCi0KLW5hbWVzcGFjZSBiYXIgewotY2xhc3MgQ29vbFRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OyAgLy8gRml4dHVyZTogYmFyOjpDb29sVGVzdAot
VEVTVF9GKENvb2xUZXN0LCBEb1NvbWV0aGluZykgewotICBTVUNDRUVEKCk7Ci19Ci19ICAvLyBu
YW1lc3BhY2UgYmFyCi1gYGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2Rv
Y3MvcHJpbWVyLm1kIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9wcmltZXIubWQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhOGVhOGQ3MTdiODM1YmNiZDIzZjg0YzllYTA1
ZjE2YTg3OGE1ZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvZG9jcy9wcmltZXIubWQKKysrIC9kZXYvbnVsbApA
QCAtMSw1NjkgKzAsMCBAQAotIyBHb29nbGV0ZXN0IFByaW1lcgotCi0KLSMjIEludHJvZHVjdGlv
bjogV2h5IGdvb2dsZXRlc3Q/Ci0KLSpnb29nbGV0ZXN0KiBoZWxwcyB5b3Ugd3JpdGUgYmV0dGVy
IEMrKyB0ZXN0cy4KLQotZ29vZ2xldGVzdCBpcyBhIHRlc3RpbmcgZnJhbWV3b3JrIGRldmVsb3Bl
ZCBieSB0aGUgVGVzdGluZwotVGVjaG5vbG9neSB0ZWFtIHdpdGggR29vZ2xlJ3Mgc3BlY2lmaWMK
LXJlcXVpcmVtZW50cyBhbmQgY29uc3RyYWludHMgaW4gbWluZC4gTm8gbWF0dGVyIHdoZXRoZXIg
eW91IHdvcmsgb24gTGludXgsCi1XaW5kb3dzLCBvciBhIE1hYywgaWYgeW91IHdyaXRlIEMrKyBj
b2RlLCBnb29nbGV0ZXN0IGNhbiBoZWxwIHlvdS4gQW5kIGl0Ci1zdXBwb3J0cyAqYW55KiBraW5k
IG9mIHRlc3RzLCBub3QganVzdCB1bml0IHRlc3RzLgotCi1TbyB3aGF0IG1ha2VzIGEgZ29vZCB0
ZXN0LCBhbmQgaG93IGRvZXMgZ29vZ2xldGVzdCBmaXQgaW4/IFdlIGJlbGlldmU6Ci0KLTEuICBU
ZXN0cyBzaG91bGQgYmUgKmluZGVwZW5kZW50KiBhbmQgKnJlcGVhdGFibGUqLiBJdCdzIGEgcGFp
biB0byBkZWJ1ZyBhIHRlc3QKLSAgICB0aGF0IHN1Y2NlZWRzIG9yIGZhaWxzIGFzIGEgcmVzdWx0
IG9mIG90aGVyIHRlc3RzLiBnb29nbGV0ZXN0IGlzb2xhdGVzIHRoZQotICAgIHRlc3RzIGJ5IHJ1
bm5pbmcgZWFjaCBvZiB0aGVtIG9uIGEgZGlmZmVyZW50IG9iamVjdC4gV2hlbiBhIHRlc3QgZmFp
bHMsCi0gICAgZ29vZ2xldGVzdCBhbGxvd3MgeW91IHRvIHJ1biBpdCBpbiBpc29sYXRpb24gZm9y
IHF1aWNrIGRlYnVnZ2luZy4KLTEuICBUZXN0cyBzaG91bGQgYmUgd2VsbCAqb3JnYW5pemVkKiBh
bmQgcmVmbGVjdCB0aGUgc3RydWN0dXJlIG9mIHRoZSB0ZXN0ZWQKLSAgICBjb2RlLiBnb29nbGV0
ZXN0IGdyb3VwcyByZWxhdGVkIHRlc3RzIGludG8gdGVzdCBjYXNlcyB0aGF0IGNhbiBzaGFyZSBk
YXRhCi0gICAgYW5kIHN1YnJvdXRpbmVzLiBUaGlzIGNvbW1vbiBwYXR0ZXJuIGlzIGVhc3kgdG8g
cmVjb2duaXplIGFuZCBtYWtlcyB0ZXN0cwotICAgIGVhc3kgdG8gbWFpbnRhaW4uIFN1Y2ggY29u
c2lzdGVuY3kgaXMgZXNwZWNpYWxseSBoZWxwZnVsIHdoZW4gcGVvcGxlIHN3aXRjaAotICAgIHBy
b2plY3RzIGFuZCBzdGFydCB0byB3b3JrIG9uIGEgbmV3IGNvZGUgYmFzZS4KLTEuICBUZXN0cyBz
aG91bGQgYmUgKnBvcnRhYmxlKiBhbmQgKnJldXNhYmxlKi4gR29vZ2xlIGhhcyBhIGxvdCBvZiBj
b2RlIHRoYXQgaXMKLSAgICBwbGF0Zm9ybS1uZXV0cmFsLCBpdHMgdGVzdHMgc2hvdWxkIGFsc28g
YmUgcGxhdGZvcm0tbmV1dHJhbC4gZ29vZ2xldGVzdAotICAgIHdvcmtzIG9uIGRpZmZlcmVudCBP
U2VzLCB3aXRoIGRpZmZlcmVudCBjb21waWxlcnMgKGdjYywgaWNjLCBhbmQgTVNWQyksIHdpdGgK
LSAgICBvciB3aXRob3V0IGV4Y2VwdGlvbnMsIHNvIGdvb2dsZXRlc3QgdGVzdHMgY2FuIGVhc2ls
eSB3b3JrIHdpdGggYSB2YXJpZXR5IG9mCi0gICAgY29uZmlndXJhdGlvbnMuCi0xLiAgV2hlbiB0
ZXN0cyBmYWlsLCB0aGV5IHNob3VsZCBwcm92aWRlIGFzIG11Y2ggKmluZm9ybWF0aW9uKiBhYm91
dCB0aGUgcHJvYmxlbQotICAgIGFzIHBvc3NpYmxlLiBnb29nbGV0ZXN0IGRvZXNuJ3Qgc3RvcCBh
dCB0aGUgZmlyc3QgdGVzdCBmYWlsdXJlLiBJbnN0ZWFkLCBpdAotICAgIG9ubHkgc3RvcHMgdGhl
IGN1cnJlbnQgdGVzdCBhbmQgY29udGludWVzIHdpdGggdGhlIG5leHQuIFlvdSBjYW4gYWxzbyBz
ZXQgdXAKLSAgICB0ZXN0cyB0aGF0IHJlcG9ydCBub24tZmF0YWwgZmFpbHVyZXMgYWZ0ZXIgd2hp
Y2ggdGhlIGN1cnJlbnQgdGVzdCBjb250aW51ZXMuCi0gICAgVGh1cywgeW91IGNhbiBkZXRlY3Qg
YW5kIGZpeCBtdWx0aXBsZSBidWdzIGluIGEgc2luZ2xlIHJ1bi1lZGl0LWNvbXBpbGUKLSAgICBj
eWNsZS4KLTEuICBUaGUgdGVzdGluZyBmcmFtZXdvcmsgc2hvdWxkIGxpYmVyYXRlIHRlc3Qgd3Jp
dGVycyBmcm9tIGhvdXNla2VlcGluZyBjaG9yZXMKLSAgICBhbmQgbGV0IHRoZW0gZm9jdXMgb24g
dGhlIHRlc3QgKmNvbnRlbnQqLiBnb29nbGV0ZXN0IGF1dG9tYXRpY2FsbHkga2VlcHMKLSAgICB0
cmFjayBvZiBhbGwgdGVzdHMgZGVmaW5lZCwgYW5kIGRvZXNuJ3QgcmVxdWlyZSB0aGUgdXNlciB0
byBlbnVtZXJhdGUgdGhlbQotICAgIGluIG9yZGVyIHRvIHJ1biB0aGVtLgotMS4gIFRlc3RzIHNo
b3VsZCBiZSAqZmFzdCouIFdpdGggZ29vZ2xldGVzdCwgeW91IGNhbiByZXVzZSBzaGFyZWQgcmVz
b3VyY2VzCi0gICAgYWNyb3NzIHRlc3RzIGFuZCBwYXkgZm9yIHRoZSBzZXQtdXAvdGVhci1kb3du
IG9ubHkgb25jZSwgd2l0aG91dCBtYWtpbmcKLSAgICB0ZXN0cyBkZXBlbmQgb24gZWFjaCBvdGhl
ci4KLQotU2luY2UgZ29vZ2xldGVzdCBpcyBiYXNlZCBvbiB0aGUgcG9wdWxhciB4VW5pdCBhcmNo
aXRlY3R1cmUsIHlvdSdsbCBmZWVsIHJpZ2h0Ci1hdCBob21lIGlmIHlvdSd2ZSB1c2VkIEpVbml0
IG9yIFB5VW5pdCBiZWZvcmUuIElmIG5vdCwgaXQgd2lsbCB0YWtlIHlvdSBhYm91dCAxMAotbWlu
dXRlcyB0byBsZWFybiB0aGUgYmFzaWNzIGFuZCBnZXQgc3RhcnRlZC4gU28gbGV0J3MgZ28hCi0K
LSMjIEJld2FyZSBvZiB0aGUgbm9tZW5jbGF0dXJlCi0KLV9Ob3RlOl8gVGhlcmUgbWlnaHQgYmUg
c29tZSBjb25mdXNpb24gb2YgaWRlYSBkdWUgdG8gZGlmZmVyZW50Ci1kZWZpbml0aW9ucyBvZiB0
aGUgdGVybXMgX1Rlc3RfLCBfVGVzdCBDYXNlXyBhbmQgX1Rlc3QgU3VpdGVfLCBzbyBiZXdhcmUK
LW9mIG1pc3VuZGVyc3RhbmRpbmcgdGhlc2UuCi0KLUhpc3RvcmljYWxseSwgZ29vZ2xldGVzdCBz
dGFydGVkIHRvIHVzZSB0aGUgdGVybSBfVGVzdCBDYXNlXyBmb3IgZ3JvdXBpbmcKLXJlbGF0ZWQg
dGVzdHMsIHdoZXJlYXMgY3VycmVudCBwdWJsaWNhdGlvbnMgaW5jbHVkaW5nIHRoZSBJbnRlcm5h
dGlvbmFsIFNvZnR3YXJlCi1UZXN0aW5nIFF1YWxpZmljYXRpb25zIEJvYXJkIChbSVNUUUJdKGh0
dHA6Ly93d3cuaXN0cWIub3JnLykpIGFuZCB2YXJpb3VzCi10ZXh0Ym9va3Mgb24gU29mdHdhcmUg
UXVhbGl0eSB1c2UgdGhlIHRlcm0gX1tUZXN0Ci1TdWl0ZV0oaHR0cDovL2dsb3NzYXJ5LmlzdHFi
Lm9yZy9zZWFyY2gvdGVzdCUyMHN1aXRlKV8gZm9yIHRoaXMuCi0KLVRoZSByZWxhdGVkIHRlcm0g
X1Rlc3RfLCBhcyBpdCBpcyB1c2VkIGluIHRoZSBnb29nbGV0ZXN0LCBpcyBjb3JyZXNwb25kaW5n
IHRvCi10aGUgdGVybSBfW1Rlc3QgQ2FzZV0oaHR0cDovL2dsb3NzYXJ5LmlzdHFiLm9yZy9zZWFy
Y2gvdGVzdCUyMGNhc2UpXyBvZiBJU1RRQgotYW5kIG90aGVycy4KLQotVGhlIHRlcm0gX1Rlc3Rf
IGlzIGNvbW1vbmx5IG9mIGJyb2FkIGVub3VnaCBzZW5zZSwgaW5jbHVkaW5nIElTVFFCJ3MKLWRl
ZmluaXRpb24gb2YgX1Rlc3QgQ2FzZV8sIHNvIGl0J3Mgbm90IG11Y2ggb2YgYSBwcm9ibGVtIGhl
cmUuIEJ1dCB0aGUKLXRlcm0gX1Rlc3QgQ2FzZV8gYXMgdXNlZCBpbiBHb29nbGUgVGVzdCBpcyBv
ZiBjb250cmFkaWN0b3J5IHNlbnNlIGFuZCB0aHVzIGNvbmZ1c2luZy4KLQotVW5mb3J0dW5hdGVs
eSByZXBsYWNpbmcgdGhlIHRlcm0gX1Rlc3QgQ2FzZV8gYnkgX1Rlc3QgU3VpdGVfIHRocm91Z2hv
dXQgdGhlCi1nb29nbGV0ZXN0IGlzIG5vdCBlYXN5IHdpdGhvdXQgYnJlYWtpbmcgZGVwZW5kZW50
IHByb2plY3RzLCBhcyBgVGVzdENhc2VgIGlzCi1wYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIGF0IHZh
cmlvdXMgcGxhY2VzLgotCi1TbyBmb3IgdGhlIHRpbWUgYmVpbmcsIHBsZWFzZSBiZSBhd2FyZSBv
ZiB0aGUgZGlmZmVyZW50IGRlZmluaXRpb25zIG9mCi10aGUgdGVybXM6Ci0KLU1lYW5pbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IGdvb2dsZXRlc3QgVGVybSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBbSVNUUUJdKGh0dHA6Ly93d3cuaXN0cWIub3JnLykgVGVybQotOi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSB8IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1F
eGVyY2lzZSBhIHBhcnRpY3VsYXIgcHJvZ3JhbSBwYXRoIHdpdGggc3BlY2lmaWMgaW5wdXQgdmFs
dWVzIGFuZCB2ZXJpZnkgdGhlIHJlc3VsdHMgfCBbVEVTVCgpXSgjc2ltcGxlLXRlc3RzKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgW1Rlc3QgQ2FzZV0oaHR0cDovL2dsb3NzYXJ5LmlzdHFi
Lm9yZy9zZWFyY2gvdGVzdCUyMGNhc2UpCi1BIHNldCBvZiBzZXZlcmFsIHRlc3RzIHJlbGF0ZWQg
dG8gb25lIGNvbXBvbmVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBb
VGVzdENhc2VdKCNiYXNpYy1jb25jZXB0cykgfCBbVGVzdFN1aXRlXShodHRwOi8vZ2xvc3Nhcnku
aXN0cWIub3JnL3NlYXJjaC90ZXN0JTIwc3VpdGUpCi0KLSMjIEJhc2ljIENvbmNlcHRzCi0KLVdo
ZW4gdXNpbmcgZ29vZ2xldGVzdCwgeW91IHN0YXJ0IGJ5IHdyaXRpbmcgKmFzc2VydGlvbnMqLCB3
aGljaCBhcmUgc3RhdGVtZW50cwotdGhhdCBjaGVjayB3aGV0aGVyIGEgY29uZGl0aW9uIGlzIHRy
dWUuIEFuIGFzc2VydGlvbidzIHJlc3VsdCBjYW4gYmUgKnN1Y2Nlc3MqLAotKm5vbmZhdGFsIGZh
aWx1cmUqLCBvciAqZmF0YWwgZmFpbHVyZSouIElmIGEgZmF0YWwgZmFpbHVyZSBvY2N1cnMsIGl0
IGFib3J0cyB0aGUKLWN1cnJlbnQgZnVuY3Rpb247IG90aGVyd2lzZSB0aGUgcHJvZ3JhbSBjb250
aW51ZXMgbm9ybWFsbHkuCi0KLSpUZXN0cyogdXNlIGFzc2VydGlvbnMgdG8gdmVyaWZ5IHRoZSB0
ZXN0ZWQgY29kZSdzIGJlaGF2aW9yLiBJZiBhIHRlc3QgY3Jhc2hlcwotb3IgaGFzIGEgZmFpbGVk
IGFzc2VydGlvbiwgdGhlbiBpdCAqZmFpbHMqOyBvdGhlcndpc2UgaXQgKnN1Y2NlZWRzKi4KLQot
QSAqdGVzdCBjYXNlKiBjb250YWlucyBvbmUgb3IgbWFueSB0ZXN0cy4gWW91IHNob3VsZCBncm91
cCB5b3VyIHRlc3RzIGludG8gdGVzdAotY2FzZXMgdGhhdCByZWZsZWN0IHRoZSBzdHJ1Y3R1cmUg
b2YgdGhlIHRlc3RlZCBjb2RlLiBXaGVuIG11bHRpcGxlIHRlc3RzIGluIGEKLXRlc3QgY2FzZSBu
ZWVkIHRvIHNoYXJlIGNvbW1vbiBvYmplY3RzIGFuZCBzdWJyb3V0aW5lcywgeW91IGNhbiBwdXQg
dGhlbSBpbnRvIGEKLSp0ZXN0IGZpeHR1cmUqIGNsYXNzLgotCi1BICp0ZXN0IHByb2dyYW0qIGNh
biBjb250YWluIG11bHRpcGxlIHRlc3QgY2FzZXMuCi0KLVdlJ2xsIG5vdyBleHBsYWluIGhvdyB0
byB3cml0ZSBhIHRlc3QgcHJvZ3JhbSwgc3RhcnRpbmcgYXQgdGhlIGluZGl2aWR1YWwKLWFzc2Vy
dGlvbiBsZXZlbCBhbmQgYnVpbGRpbmcgdXAgdG8gdGVzdHMgYW5kIHRlc3QgY2FzZXMuCi0KLSMj
IEFzc2VydGlvbnMKLQotZ29vZ2xldGVzdCBhc3NlcnRpb25zIGFyZSBtYWNyb3MgdGhhdCByZXNl
bWJsZSBmdW5jdGlvbiBjYWxscy4gWW91IHRlc3QgYSBjbGFzcwotb3IgZnVuY3Rpb24gYnkgbWFr
aW5nIGFzc2VydGlvbnMgYWJvdXQgaXRzIGJlaGF2aW9yLiBXaGVuIGFuIGFzc2VydGlvbiBmYWls
cywKLWdvb2dsZXRlc3QgcHJpbnRzIHRoZSBhc3NlcnRpb24ncyBzb3VyY2UgZmlsZSBhbmQgbGlu
ZSBudW1iZXIgbG9jYXRpb24sIGFsb25nCi13aXRoIGEgZmFpbHVyZSBtZXNzYWdlLiBZb3UgbWF5
IGFsc28gc3VwcGx5IGEgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZSB3aGljaCB3aWxsCi1iZSBhcHBl
bmRlZCB0byBnb29nbGV0ZXN0J3MgbWVzc2FnZS4KLQotVGhlIGFzc2VydGlvbnMgY29tZSBpbiBw
YWlycyB0aGF0IHRlc3QgdGhlIHNhbWUgdGhpbmcgYnV0IGhhdmUgZGlmZmVyZW50IGVmZmVjdHMK
LW9uIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiBgQVNTRVJUXypgIHZlcnNpb25zIGdlbmVyYXRlIGZh
dGFsIGZhaWx1cmVzIHdoZW4gdGhleQotZmFpbCwgYW5kICoqYWJvcnQgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24qKi4gYEVYUEVDVF8qYCB2ZXJzaW9ucyBnZW5lcmF0ZSBub25mYXRhbAotZmFpbHVyZXMs
IHdoaWNoIGRvbid0IGFib3J0IHRoZSBjdXJyZW50IGZ1bmN0aW9uLiBVc3VhbGx5IGBFWFBFQ1Rf
KmAgYXJlCi1wcmVmZXJyZWQsIGFzIHRoZXkgYWxsb3cgbW9yZSB0aGFuIG9uZSBmYWlsdXJlIHRv
IGJlIHJlcG9ydGVkIGluIGEgdGVzdC4KLUhvd2V2ZXIsIHlvdSBzaG91bGQgdXNlIGBBU1NFUlRf
KmAgaWYgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIHdoZW4gdGhlCi1hc3NlcnRp
b24gaW4gcXVlc3Rpb24gZmFpbHMuCi0KLVNpbmNlIGEgZmFpbGVkIGBBU1NFUlRfKmAgcmV0dXJu
cyBmcm9tIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGltbWVkaWF0ZWx5LAotcG9zc2libHkgc2tpcHBp
bmcgY2xlYW4tdXAgY29kZSB0aGF0IGNvbWVzIGFmdGVyIGl0LCBpdCBtYXkgY2F1c2UgYSBzcGFj
ZSBsZWFrLgotRGVwZW5kaW5nIG9uIHRoZSBuYXR1cmUgb2YgdGhlIGxlYWssIGl0IG1heSBvciBt
YXkgbm90IGJlIHdvcnRoIGZpeGluZyAtIHNvIGtlZXAKLXRoaXMgaW4gbWluZCBpZiB5b3UgZ2V0
IGEgaGVhcCBjaGVja2VyIGVycm9yIGluIGFkZGl0aW9uIHRvIGFzc2VydGlvbiBlcnJvcnMuCi0K
LVRvIHByb3ZpZGUgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlLCBzaW1wbHkgc3RyZWFtIGl0IGlu
dG8gdGhlIG1hY3JvIHVzaW5nIHRoZQotYDw8YCBvcGVyYXRvciwgb3IgYSBzZXF1ZW5jZSBvZiBz
dWNoIG9wZXJhdG9ycy4gQW4gZXhhbXBsZToKLQotYGBgYysrCi1BU1NFUlRfRVEoeC5zaXplKCks
IHkuc2l6ZSgpKSA8PCAiVmVjdG9ycyB4IGFuZCB5IGFyZSBvZiB1bmVxdWFsIGxlbmd0aCI7Ci0K
LWZvciAoaW50IGkgPSAwOyBpIDwgeC5zaXplKCk7ICsraSkgewotICBFWFBFQ1RfRVEoeFtpXSwg
eVtpXSkgPDwgIlZlY3RvcnMgeCBhbmQgeSBkaWZmZXIgYXQgaW5kZXggIiA8PCBpOwotfQotYGBg
Ci0KLUFueXRoaW5nIHRoYXQgY2FuIGJlIHN0cmVhbWVkIHRvIGFuIGBvc3RyZWFtYCBjYW4gYmUg
c3RyZWFtZWQgdG8gYW4gYXNzZXJ0aW9uCi1tYWNyby0taW4gcGFydGljdWxhciwgQyBzdHJpbmdz
IGFuZCBgc3RyaW5nYCBvYmplY3RzLiBJZiBhIHdpZGUgc3RyaW5nCi0oYHdjaGFyX3QqYCwgYFRD
SEFSKmAgaW4gYFVOSUNPREVgIG1vZGUgb24gV2luZG93cywgb3IgYHN0ZDo6d3N0cmluZ2ApIGlz
Ci1zdHJlYW1lZCB0byBhbiBhc3NlcnRpb24sIGl0IHdpbGwgYmUgdHJhbnNsYXRlZCB0byBVVEYt
OCB3aGVuIHByaW50ZWQuCi0KLSMjIyBCYXNpYyBBc3NlcnRpb25zCi0KLVRoZXNlIGFzc2VydGlv
bnMgZG8gYmFzaWMgdHJ1ZS9mYWxzZSBjb25kaXRpb24gdGVzdGluZy4KLQotRmF0YWwgYXNzZXJ0
aW9uICAgICAgICAgICAgfCBOb25mYXRhbCBhc3NlcnRpb24gICAgICAgICB8IFZlcmlmaWVzCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwg
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLWBBU1NFUlRfVFJVRShjb25kaXRpb24pO2AgIHwgYEVYUEVD
VF9UUlVFKGNvbmRpdGlvbik7YCAgfCBgY29uZGl0aW9uYCBpcyB0cnVlCi1gQVNTRVJUX0ZBTFNF
KGNvbmRpdGlvbik7YCB8IGBFWFBFQ1RfRkFMU0UoY29uZGl0aW9uKTtgIHwgYGNvbmRpdGlvbmAg
aXMgZmFsc2UKLQotUmVtZW1iZXIsIHdoZW4gdGhleSBmYWlsLCBgQVNTRVJUXypgIHlpZWxkcyBh
IGZhdGFsIGZhaWx1cmUgYW5kIHJldHVybnMgZnJvbSB0aGUKLWN1cnJlbnQgZnVuY3Rpb24sIHdo
aWxlIGBFWFBFQ1RfKmAgeWllbGRzIGEgbm9uZmF0YWwgZmFpbHVyZSwgYWxsb3dpbmcgdGhlCi1m
dW5jdGlvbiB0byBjb250aW51ZSBydW5uaW5nLiBJbiBlaXRoZXIgY2FzZSwgYW4gYXNzZXJ0aW9u
IGZhaWx1cmUgbWVhbnMgaXRzCi1jb250YWluaW5nIHRlc3QgZmFpbHMuCi0KLSoqQXZhaWxhYmls
aXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSMjIyBCaW5hcnkgQ29tcGFyaXNvbgotCi1U
aGlzIHNlY3Rpb24gZGVzY3JpYmVzIGFzc2VydGlvbnMgdGhhdCBjb21wYXJlIHR3byB2YWx1ZXMu
Ci0KLUZhdGFsIGFzc2VydGlvbiAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAgICB8
IFZlcmlmaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfCAtLS0tLS0tLS0tLS0tLQotYEFTU0VSVF9FUSh2YWwxLCB2YWwyKTtgIHwgYEVYUEVD
VF9FUSh2YWwxLCB2YWwyKTtgIHwgYHZhbDEgPT0gdmFsMmAKLWBBU1NFUlRfTkUodmFsMSwgdmFs
Mik7YCB8IGBFWFBFQ1RfTkUodmFsMSwgdmFsMik7YCB8IGB2YWwxICE9IHZhbDJgCi1gQVNTRVJU
X0xUKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0xUKHZhbDEsIHZhbDIpO2AgfCBgdmFsMSA8IHZh
bDJgCi1gQVNTRVJUX0xFKHZhbDEsIHZhbDIpO2AgfCBgRVhQRUNUX0xFKHZhbDEsIHZhbDIpO2Ag
fCBgdmFsMSA8PSB2YWwyYAotYEFTU0VSVF9HVCh2YWwxLCB2YWwyKTtgIHwgYEVYUEVDVF9HVCh2
YWwxLCB2YWwyKTtgIHwgYHZhbDEgPiB2YWwyYAotYEFTU0VSVF9HRSh2YWwxLCB2YWwyKTtgIHwg
YEVYUEVDVF9HRSh2YWwxLCB2YWwyKTtgIHwgYHZhbDEgPj0gdmFsMmAKLQotVmFsdWUgYXJndW1l
bnRzIG11c3QgYmUgY29tcGFyYWJsZSBieSB0aGUgYXNzZXJ0aW9uJ3MgY29tcGFyaXNvbiBvcGVy
YXRvciBvcgoteW91J2xsIGdldCBhIGNvbXBpbGVyIGVycm9yLiBXZSB1c2VkIHRvIHJlcXVpcmUg
dGhlIGFyZ3VtZW50cyB0byBzdXBwb3J0IHRoZQotYDw8YCBvcGVyYXRvciBmb3Igc3RyZWFtaW5n
IHRvIGFuIGBvc3RyZWFtYCwgYnV0IGl0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4gSWYKLWA8PGAg
aXMgc3VwcG9ydGVkLCBpdCB3aWxsIGJlIGNhbGxlZCB0byBwcmludCB0aGUgYXJndW1lbnRzIHdo
ZW4gdGhlIGFzc2VydGlvbgotZmFpbHM7IG90aGVyd2lzZSBnb29nbGV0ZXN0IHdpbGwgYXR0ZW1w
dCB0byBwcmludCB0aGVtIGluIHRoZSBiZXN0IHdheSBpdCBjYW4uCi1Gb3IgbW9yZSBkZXRhaWxz
IGFuZCBob3cgdG8gY3VzdG9taXplIHRoZSBwcmludGluZyBvZiB0aGUgYXJndW1lbnRzLCBzZWUK
LWdNb2NrIFtyZWNpcGVdKC4uLy4uL2dvb2dsZW1vY2svZG9jcy9Db29rQm9vay5tZCN0ZWFjaGlu
Zy1nb29nbGUtbW9jay1ob3ctdG8tcHJpbnQteW91ci12YWx1ZXMpLikuCi0KLVRoZXNlIGFzc2Vy
dGlvbnMgY2FuIHdvcmsgd2l0aCBhIHVzZXItZGVmaW5lZCB0eXBlLCBidXQgb25seSBpZiB5b3Ug
ZGVmaW5lIHRoZQotY29ycmVzcG9uZGluZyBjb21wYXJpc29uIG9wZXJhdG9yIChlLmcuIGA9PWAs
IGA8YCwgZXRjKS4gU2luY2UgdGhpcyBpcwotZGlzY291cmFnZWQgYnkgdGhlIEdvb2dsZSBbQysr
IFN0eWxlCi1HdWlkZV0oaHR0cHM6Ly9nb29nbGUuZ2l0aHViLmlvL3N0eWxlZ3VpZGUvY3BwZ3Vp
ZGUuaHRtbCNPcGVyYXRvcl9PdmVybG9hZGluZyksCi15b3UgbWF5IG5lZWQgdG8gdXNlIGBBU1NF
UlRfVFJVRSgpYCBvciBgRVhQRUNUX1RSVUUoKWAgdG8gYXNzZXJ0IHRoZSBlcXVhbGl0eSBvZgot
dHdvIG9iamVjdHMgb2YgYSB1c2VyLWRlZmluZWQgdHlwZS4KLQotSG93ZXZlciwgd2hlbiBwb3Nz
aWJsZSwgYEFTU0VSVF9FUShhY3R1YWwsIGV4cGVjdGVkKWAgaXMgcHJlZmVycmVkIHRvCi1gQVNT
RVJUX1RSVUUoYWN0dWFsID09IGV4cGVjdGVkKWAsIHNpbmNlIGl0IHRlbGxzIHlvdSBgYWN0dWFs
YCBhbmQgYGV4cGVjdGVkYCdzCi12YWx1ZXMgb24gZmFpbHVyZS4KLQotQXJndW1lbnRzIGFyZSBh
bHdheXMgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4gVGhlcmVmb3JlLCBpdCdzIE9LIGZvciB0aGUK
LWFyZ3VtZW50cyB0byBoYXZlIHNpZGUgZWZmZWN0cy4gSG93ZXZlciwgYXMgd2l0aCBhbnkgb3Jk
aW5hcnkgQy9DKysgZnVuY3Rpb24sCi10aGUgYXJndW1lbnRzJyBldmFsdWF0aW9uIG9yZGVyIGlz
IHVuZGVmaW5lZCAoaS5lLiB0aGUgY29tcGlsZXIgaXMgZnJlZSB0bwotY2hvb3NlIGFueSBvcmRl
cikgYW5kIHlvdXIgY29kZSBzaG91bGQgbm90IGRlcGVuZCBvbiBhbnkgcGFydGljdWxhciBhcmd1
bWVudAotZXZhbHVhdGlvbiBvcmRlci4KLQotYEFTU0VSVF9FUSgpYCBkb2VzIHBvaW50ZXIgZXF1
YWxpdHkgb24gcG9pbnRlcnMuIElmIHVzZWQgb24gdHdvIEMgc3RyaW5ncywgaXQKLXRlc3RzIGlm
IHRoZXkgYXJlIGluIHRoZSBzYW1lIG1lbW9yeSBsb2NhdGlvbiwgbm90IGlmIHRoZXkgaGF2ZSB0
aGUgc2FtZSB2YWx1ZS4KLVRoZXJlZm9yZSwgaWYgeW91IHdhbnQgdG8gY29tcGFyZSBDIHN0cmlu
Z3MgKGUuZy4gYGNvbnN0IGNoYXIqYCkgYnkgdmFsdWUsIHVzZQotYEFTU0VSVF9TVFJFUSgpYCwg
d2hpY2ggd2lsbCBiZSBkZXNjcmliZWQgbGF0ZXIgb24uIEluIHBhcnRpY3VsYXIsIHRvIGFzc2Vy
dAotdGhhdCBhIEMgc3RyaW5nIGlzIGBOVUxMYCwgdXNlIGBBU1NFUlRfU1RSRVEoY19zdHJpbmcs
IE5VTEwpYC4gQ29uc2lkZXIgdXNlCi1gQVNTRVJUX0VRKGNfc3RyaW5nLCBudWxscHRyKWAgaWYg
YysrMTEgaXMgc3VwcG9ydGVkLiBUbyBjb21wYXJlIHR3byBgc3RyaW5nYAotb2JqZWN0cywgeW91
IHNob3VsZCB1c2UgYEFTU0VSVF9FUWAuCi0KLVdoZW4gZG9pbmcgcG9pbnRlciBjb21wYXJpc29u
cyB1c2UgYCpfRVEocHRyLCBudWxscHRyKWAgYW5kIGAqX05FKHB0ciwgbnVsbHB0cilgCi1pbnN0
ZWFkIG9mIGAqX0VRKHB0ciwgTlVMTClgIGFuZCBgKl9ORShwdHIsIE5VTEwpYC4gVGhpcyBpcyBi
ZWNhdXNlIGBudWxscHRyYCBpcwotdHlwZWQgd2hpbGUgYE5VTExgIGlzIG5vdC4gU2VlIFtGQVFd
KGZhcS5tZCN3aHktZG9lcy1nb29nbGUtdGVzdC1zdXBwb3J0LWV4cGVjdF9lcW51bGwtcHRyLWFu
ZC1hc3NlcnRfZXFudWxsLXB0ci1idXQtbm90LWV4cGVjdF9uZW51bGwtcHRyLWFuZC1hc3NlcnRf
bmVudWxsLXB0cikKLWZvciBtb3JlIGRldGFpbHMuCi0KLUlmIHlvdSdyZSB3b3JraW5nIHdpdGgg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycywgeW91IG1heSB3YW50IHRvIHVzZSB0aGUgZmxvYXRpbmcK
LXBvaW50IHZhcmlhdGlvbnMgb2Ygc29tZSBvZiB0aGVzZSBtYWNyb3MgaW4gb3JkZXIgdG8gYXZv
aWQgcHJvYmxlbXMgY2F1c2VkIGJ5Ci1yb3VuZGluZy4gU2VlIFtBZHZhbmNlZCBnb29nbGV0ZXN0
IFRvcGljc10oYWR2YW5jZWQubWQpIGZvciBkZXRhaWxzLgotCi1NYWNyb3MgaW4gdGhpcyBzZWN0
aW9uIHdvcmsgd2l0aCBib3RoIG5hcnJvdyBhbmQgd2lkZSBzdHJpbmcgb2JqZWN0cyAoYHN0cmlu
Z2AKLWFuZCBgd3N0cmluZ2ApLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51eCwgV2luZG93cywg
TWFjLgotCi0qKkhpc3RvcmljYWwgbm90ZSoqOiBCZWZvcmUgRmVicnVhcnkgMjAxNiBgKl9FUWAg
aGFkIGEgY29udmVudGlvbiBvZiBjYWxsaW5nIGl0Ci1hcyBgQVNTRVJUX0VRKGV4cGVjdGVkLCBh
Y3R1YWwpYCwgc28gbG90cyBvZiBleGlzdGluZyBjb2RlIHVzZXMgdGhpcyBvcmRlci4gTm93Ci1g
Kl9FUWAgdHJlYXRzIGJvdGggcGFyYW1ldGVycyBpbiB0aGUgc2FtZSB3YXkuCi0KLSMjIyBTdHJp
bmcgQ29tcGFyaXNvbgotCi1UaGUgYXNzZXJ0aW9ucyBpbiB0aGlzIGdyb3VwIGNvbXBhcmUgdHdv
ICoqQyBzdHJpbmdzKiouIElmIHlvdSB3YW50IHRvIGNvbXBhcmUKLXR3byBgc3RyaW5nYCBvYmpl
Y3RzLCB1c2UgYEVYUEVDVF9FUWAsIGBFWFBFQ1RfTkVgLCBhbmQgZXRjIGluc3RlYWQuCi0KLXwg
RmF0YWwgYXNzZXJ0aW9uICAgICAgICAgICAgICAgICB8IE5vbmZhdGFsIGFzc2VydGlvbiAgICAg
ICAgICAgICAgfCBWZXJpZmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAotfCBgQVNTRVJUX1NUUkVRKHN0cjEsIHN0cjIp
O2AgICAgIHwgYEVYUEVDVF9TVFJFUShzdHIxLCBzdHIyKTtgICAgICB8IHRoZSB0d28gQyBzdHJp
bmdzIGhhdmUgdGhlIHNhbWUgY29udGVudCAgICAgICAgICAgICAgICAgIHwKLXwgYEFTU0VSVF9T
VFJORShzdHIxLCBzdHIyKTtgICAgICB8IGBFWFBFQ1RfU1RSTkUoc3RyMSwgc3RyMik7YCAgICAg
fCB0aGUgdHdvIEMgc3RyaW5ncyBoYXZlIGRpZmZlcmVudCBjb250ZW50cyAgICAgICAgICAgICAg
ICB8Ci18IGBBU1NFUlRfU1RSQ0FTRUVRKHN0cjEsIHN0cjIpO2AgfCBgRVhQRUNUX1NUUkNBU0VF
UShzdHIxLCBzdHIyKTtgIHwgdGhlIHR3byBDIHN0cmluZ3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50
LCBpZ25vcmluZyBjYXNlICAgfAotfCBgQVNTRVJUX1NUUkNBU0VORShzdHIxLCBzdHIyKTtgIHwg
YEVYUEVDVF9TVFJDQVNFTkUoc3RyMSwgc3RyMik7YCB8IHRoZSB0d28gQyBzdHJpbmdzIGhhdmUg
ZGlmZmVyZW50IGNvbnRlbnRzLCBpZ25vcmluZyBjYXNlIHwKLQotTm90ZSB0aGF0ICJDQVNFIiBp
biBhbiBhc3NlcnRpb24gbmFtZSBtZWFucyB0aGF0IGNhc2UgaXMgaWdub3JlZC4gQSBgTlVMTGAK
LXBvaW50ZXIgYW5kIGFuIGVtcHR5IHN0cmluZyBhcmUgY29uc2lkZXJlZCAqZGlmZmVyZW50Ki4K
LQotYCpTVFJFUSpgIGFuZCBgKlNUUk5FKmAgYWxzbyBhY2NlcHQgd2lkZSBDIHN0cmluZ3MgKGB3
Y2hhcl90KmApLiBJZiBhIGNvbXBhcmlzb24KLW9mIHR3byB3aWRlIHN0cmluZ3MgZmFpbHMsIHRo
ZWlyIHZhbHVlcyB3aWxsIGJlIHByaW50ZWQgYXMgVVRGLTggbmFycm93IHN0cmluZ3MuCi0KLSoq
QXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLSoqU2VlIGFsc28qKjogRm9y
IG1vcmUgc3RyaW5nIGNvbXBhcmlzb24gdHJpY2tzIChzdWJzdHJpbmcsIHByZWZpeCwgc3VmZml4
LCBhbmQKLXJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZywgZm9yIGV4YW1wbGUpLCBzZWUKLVt0
aGlzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29v
Z2xldGVzdC9kb2NzL2FkdmFuY2VkLm1kKQotaW4gdGhlIEFkdmFuY2VkIGdvb2dsZXRlc3QgR3Vp
ZGUuCi0KLSMjIFNpbXBsZSBUZXN0cwotCi1UbyBjcmVhdGUgYSB0ZXN0OgotCi0xLiAgVXNlIHRo
ZSBgVEVTVCgpYCBtYWNybyB0byBkZWZpbmUgYW5kIG5hbWUgYSB0ZXN0IGZ1bmN0aW9uLCBUaGVz
ZSBhcmUKLSAgICBvcmRpbmFyeSBDKysgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgcmV0dXJuIGEgdmFs
dWUuCi0xLiAgSW4gdGhpcyBmdW5jdGlvbiwgYWxvbmcgd2l0aCBhbnkgdmFsaWQgQysrIHN0YXRl
bWVudHMgeW91IHdhbnQgdG8gaW5jbHVkZSwKLSAgICB1c2UgdGhlIHZhcmlvdXMgZ29vZ2xldGVz
dCBhc3NlcnRpb25zIHRvIGNoZWNrIHZhbHVlcy4KLTEuICBUaGUgdGVzdCdzIHJlc3VsdCBpcyBk
ZXRlcm1pbmVkIGJ5IHRoZSBhc3NlcnRpb25zOyBpZiBhbnkgYXNzZXJ0aW9uIGluIHRoZQotICAg
IHRlc3QgZmFpbHMgKGVpdGhlciBmYXRhbGx5IG9yIG5vbi1mYXRhbGx5KSwgb3IgaWYgdGhlIHRl
c3QgY3Jhc2hlcywgdGhlCi0gICAgZW50aXJlIHRlc3QgZmFpbHMuIE90aGVyd2lzZSwgaXQgc3Vj
Y2VlZHMuCi0KLWBgYGMrKwotVEVTVChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSB7Ci0gIC4uLiB0
ZXN0IGJvZHkgLi4uCi19Ci1gYGAKLQotYFRFU1QoKWAgYXJndW1lbnRzIGdvIGZyb20gZ2VuZXJh
bCB0byBzcGVjaWZpYy4gVGhlICpmaXJzdCogYXJndW1lbnQgaXMgdGhlIG5hbWUKLW9mIHRoZSB0
ZXN0IGNhc2UsIGFuZCB0aGUgKnNlY29uZCogYXJndW1lbnQgaXMgdGhlIHRlc3QncyBuYW1lIHdp
dGhpbiB0aGUgdGVzdAotY2FzZS4gQm90aCBuYW1lcyBtdXN0IGJlIHZhbGlkIEMrKyBpZGVudGlm
aWVycywgYW5kIHRoZXkgc2hvdWxkIG5vdCBjb250YWluCi11bmRlcnNjb3JlIChgX2ApLiBBIHRl
c3QncyAqZnVsbCBuYW1lKiBjb25zaXN0cyBvZiBpdHMgY29udGFpbmluZyB0ZXN0IGNhc2UgYW5k
Ci1pdHMgaW5kaXZpZHVhbCBuYW1lLiBUZXN0cyBmcm9tIGRpZmZlcmVudCB0ZXN0IGNhc2VzIGNh
biBoYXZlIHRoZSBzYW1lCi1pbmRpdmlkdWFsIG5hbWUuCi0KLUZvciBleGFtcGxlLCBsZXQncyB0
YWtlIGEgc2ltcGxlIGludGVnZXIgZnVuY3Rpb246Ci0KLWBgYGMrKwotaW50IEZhY3RvcmlhbChp
bnQgbik7ICAvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgbgotYGBgCi0KLUEgdGVzdCBjYXNl
IGZvciB0aGlzIGZ1bmN0aW9uIG1pZ2h0IGxvb2sgbGlrZToKLQotYGBgYysrCi0vLyBUZXN0cyBm
YWN0b3JpYWwgb2YgMC4KLVRFU1QoRmFjdG9yaWFsVGVzdCwgSGFuZGxlc1plcm9JbnB1dCkgewot
ICBFWFBFQ1RfRVEoRmFjdG9yaWFsKDApLCAxKTsKLX0KLQotLy8gVGVzdHMgZmFjdG9yaWFsIG9m
IHBvc2l0aXZlIG51bWJlcnMuCi1URVNUKEZhY3RvcmlhbFRlc3QsIEhhbmRsZXNQb3NpdGl2ZUlu
cHV0KSB7Ci0gIEVYUEVDVF9FUShGYWN0b3JpYWwoMSksIDEpOwotICBFWFBFQ1RfRVEoRmFjdG9y
aWFsKDIpLCAyKTsKLSAgRVhQRUNUX0VRKEZhY3RvcmlhbCgzKSwgNik7Ci0gIEVYUEVDVF9FUShG
YWN0b3JpYWwoOCksIDQwMzIwKTsKLX0KLWBgYAotCi1nb29nbGV0ZXN0IGdyb3VwcyB0aGUgdGVz
dCByZXN1bHRzIGJ5IHRlc3QgY2FzZXMsIHNvIGxvZ2ljYWxseS1yZWxhdGVkIHRlc3RzCi1zaG91
bGQgYmUgaW4gdGhlIHNhbWUgdGVzdCBjYXNlOyBpbiBvdGhlciB3b3JkcywgdGhlIGZpcnN0IGFy
Z3VtZW50IHRvIHRoZWlyCi1gVEVTVCgpYCBzaG91bGQgYmUgdGhlIHNhbWUuIEluIHRoZSBhYm92
ZSBleGFtcGxlLCB3ZSBoYXZlIHR3byB0ZXN0cywKLWBIYW5kbGVzWmVyb0lucHV0YCBhbmQgYEhh
bmRsZXNQb3NpdGl2ZUlucHV0YCwgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgdGVzdCBjYXNlCi1g
RmFjdG9yaWFsVGVzdGAuCi0KLVdoZW4gbmFtaW5nIHlvdXIgdGVzdCBjYXNlcyBhbmQgdGVzdHMs
IHlvdSBzaG91bGQgZm9sbG93IHRoZSBzYW1lIGNvbnZlbnRpb24gYXMKLWZvciBbbmFtaW5nIGZ1
bmN0aW9ucyBhbmQKLWNsYXNzZXNdKGh0dHBzOi8vZ29vZ2xlLmdpdGh1Yi5pby9zdHlsZWd1aWRl
L2NwcGd1aWRlLmh0bWwjRnVuY3Rpb25fTmFtZXMpLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBMaW51
eCwgV2luZG93cywgTWFjLgotCi0jIyBUZXN0IEZpeHR1cmVzOiBVc2luZyB0aGUgU2FtZSBEYXRh
IENvbmZpZ3VyYXRpb24gZm9yIE11bHRpcGxlIFRlc3RzCi0KLUlmIHlvdSBmaW5kIHlvdXJzZWxm
IHdyaXRpbmcgdHdvIG9yIG1vcmUgdGVzdHMgdGhhdCBvcGVyYXRlIG9uIHNpbWlsYXIgZGF0YSwg
eW91Ci1jYW4gdXNlIGEgKnRlc3QgZml4dHVyZSouIEl0IGFsbG93cyB5b3UgdG8gcmV1c2UgdGhl
IHNhbWUgY29uZmlndXJhdGlvbiBvZgotb2JqZWN0cyBmb3Igc2V2ZXJhbCBkaWZmZXJlbnQgdGVz
dHMuCi0KLVRvIGNyZWF0ZSBhIGZpeHR1cmU6Ci0KLTEuICBEZXJpdmUgYSBjbGFzcyBmcm9tIGA6
OnRlc3Rpbmc6OlRlc3RgIC4gU3RhcnQgaXRzIGJvZHkgd2l0aCBgcHJvdGVjdGVkOmAgYXMKLSAg
ICB3ZSdsbCB3YW50IHRvIGFjY2VzcyBmaXh0dXJlIG1lbWJlcnMgZnJvbSBzdWItY2xhc3Nlcy4K
LTEuICBJbnNpZGUgdGhlIGNsYXNzLCBkZWNsYXJlIGFueSBvYmplY3RzIHlvdSBwbGFuIHRvIHVz
ZS4KLTEuICBJZiBuZWNlc3NhcnksIHdyaXRlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvciBvciBgU2V0
VXAoKWAgZnVuY3Rpb24gdG8gcHJlcGFyZQotICAgIHRoZSBvYmplY3RzIGZvciBlYWNoIHRlc3Qu
IEEgY29tbW9uIG1pc3Rha2UgaXMgdG8gc3BlbGwgYFNldFVwKClgIGFzCi0gICAgKipgU2V0dXAo
KWAqKiB3aXRoIGEgc21hbGwgYHVgIC0gVXNlIGBvdmVycmlkZWAgaW4gQysrMTEgdG8gbWFrZSBz
dXJlIHlvdQotICAgIHNwZWxsZWQgaXQgY29ycmVjdGx5Ci0xLiAgSWYgbmVjZXNzYXJ5LCB3cml0
ZSBhIGRlc3RydWN0b3Igb3IgYFRlYXJEb3duKClgIGZ1bmN0aW9uIHRvIHJlbGVhc2UgYW55Ci0g
ICAgcmVzb3VyY2VzIHlvdSBhbGxvY2F0ZWQgaW4gYFNldFVwKClgIC4gVG8gbGVhcm4gd2hlbiB5
b3Ugc2hvdWxkIHVzZSB0aGUKLSAgICBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yIGFuZCB3aGVuIHlv
dSBzaG91bGQgdXNlIGBTZXRVcCgpL1RlYXJEb3duKClgLCByZWFkCi0gICAgdGhpcyBbRkFRXShm
YXEubWQjc2hvdWxkLWktdXNlLXRoZS1jb25zdHJ1Y3RvcmRlc3RydWN0b3Itb2YtdGhlLXRlc3Qt
Zml4dHVyZS1vci1zZXR1cHRlYXJkb3duKSBlbnRyeS4KLTEuICBJZiBuZWVkZWQsIGRlZmluZSBz
dWJyb3V0aW5lcyBmb3IgeW91ciB0ZXN0cyB0byBzaGFyZS4KLQotV2hlbiB1c2luZyBhIGZpeHR1
cmUsIHVzZSBgVEVTVF9GKClgIGluc3RlYWQgb2YgYFRFU1QoKWAgYXMgaXQgYWxsb3dzIHlvdSB0
bwotYWNjZXNzIG9iamVjdHMgYW5kIHN1YnJvdXRpbmVzIGluIHRoZSB0ZXN0IGZpeHR1cmU6Ci0K
LWBgYGMrKwotVEVTVF9GKFRlc3RDYXNlTmFtZSwgVGVzdE5hbWUpIHsKLSAgLi4uIHRlc3QgYm9k
eSAuLi4KLX0KLWBgYAotCi1MaWtlIGBURVNUKClgLCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhl
IHRlc3QgY2FzZSBuYW1lLCBidXQgZm9yIGBURVNUX0YoKWAgdGhpcwotbXVzdCBiZSB0aGUgbmFt
ZSBvZiB0aGUgdGVzdCBmaXh0dXJlIGNsYXNzLiBZb3UndmUgcHJvYmFibHkgZ3Vlc3NlZDogYF9G
YCBpcyBmb3IKLWZpeHR1cmUuCi0KLVVuZm9ydHVuYXRlbHksIHRoZSBDKysgbWFjcm8gc3lzdGVt
IGRvZXMgbm90IGFsbG93IHVzIHRvIGNyZWF0ZSBhIHNpbmdsZSBtYWNybwotdGhhdCBjYW4gaGFu
ZGxlIGJvdGggdHlwZXMgb2YgdGVzdHMuIFVzaW5nIHRoZSB3cm9uZyBtYWNybyBjYXVzZXMgYSBj
b21waWxlcgotZXJyb3IuCi0KLUFsc28sIHlvdSBtdXN0IGZpcnN0IGRlZmluZSBhIHRlc3QgZml4
dHVyZSBjbGFzcyBiZWZvcmUgdXNpbmcgaXQgaW4gYQotYFRFU1RfRigpYCwgb3IgeW91J2xsIGdl
dCB0aGUgY29tcGlsZXIgZXJyb3IgImB2aXJ0dWFsIG91dHNpZGUgY2xhc3MKLWRlY2xhcmF0aW9u
YCIuCi0KLUZvciBlYWNoIHRlc3QgZGVmaW5lZCB3aXRoIGBURVNUX0YoKWAgLCBnb29nbGV0ZXN0
IHdpbGwgY3JlYXRlIGEgKmZyZXNoKiB0ZXN0Ci1maXh0dXJlIGF0IHJ1bnRpbWUsIGltbWVkaWF0
ZWx5IGluaXRpYWxpemUgaXQgdmlhIGBTZXRVcCgpYCAsIHJ1biB0aGUgdGVzdCwKLWNsZWFuIHVw
IGJ5IGNhbGxpbmcgYFRlYXJEb3duKClgICwgYW5kIHRoZW4gZGVsZXRlIHRoZSB0ZXN0IGZpeHR1
cmUuIE5vdGUgdGhhdAotZGlmZmVyZW50IHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBoYXZl
IGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUgb2JqZWN0cywgYW5kCi1nb29nbGV0ZXN0IGFsd2F5cyBk
ZWxldGVzIGEgdGVzdCBmaXh0dXJlIGJlZm9yZSBpdCBjcmVhdGVzIHRoZSBuZXh0IG9uZS4KLWdv
b2dsZXRlc3QgZG9lcyAqKm5vdCoqIHJldXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZSBmb3IgbXVs
dGlwbGUgdGVzdHMuIEFueQotY2hhbmdlcyBvbmUgdGVzdCBtYWtlcyB0byB0aGUgZml4dHVyZSBk
byBub3QgYWZmZWN0IG90aGVyIHRlc3RzLgotCi1BcyBhbiBleGFtcGxlLCBsZXQncyB3cml0ZSB0
ZXN0cyBmb3IgYSBGSUZPIHF1ZXVlIGNsYXNzIG5hbWVkIGBRdWV1ZWAsIHdoaWNoIGhhcwotdGhl
IGZvbGxvd2luZyBpbnRlcmZhY2U6Ci0KLWBgYGMrKwotdGVtcGxhdGUgPHR5cGVuYW1lIEU+ICAv
LyBFIGlzIHRoZSBlbGVtZW50IHR5cGUuCi1jbGFzcyBRdWV1ZSB7Ci0gcHVibGljOgotICBRdWV1
ZSgpOwotICB2b2lkIEVucXVldWUoY29uc3QgRSYgZWxlbWVudCk7Ci0gIEUqIERlcXVldWUoKTsg
IC8vIFJldHVybnMgTlVMTCBpZiB0aGUgcXVldWUgaXMgZW1wdHkuCi0gIHNpemVfdCBzaXplKCkg
Y29uc3Q7Ci0gIC4uLgotfTsKLWBgYAotCi1GaXJzdCwgZGVmaW5lIGEgZml4dHVyZSBjbGFzcy4g
QnkgY29udmVudGlvbiwgeW91IHNob3VsZCBnaXZlIGl0IHRoZSBuYW1lCi1gRm9vVGVzdGAgd2hl
cmUgYEZvb2AgaXMgdGhlIGNsYXNzIGJlaW5nIHRlc3RlZC4KLQotYGBgYysrCi1jbGFzcyBRdWV1
ZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLSBwcm90ZWN0ZWQ6Ci0gIHZvaWQgU2V0
VXAoKSBvdmVycmlkZSB7Ci0gICAgIHExXy5FbnF1ZXVlKDEpOwotICAgICBxMl8uRW5xdWV1ZSgy
KTsKLSAgICAgcTJfLkVucXVldWUoMyk7Ci0gIH0KLQotICAvLyB2b2lkIFRlYXJEb3duKCkgb3Zl
cnJpZGUge30KLQotICBRdWV1ZTxpbnQ+IHEwXzsKLSAgUXVldWU8aW50PiBxMV87Ci0gIFF1ZXVl
PGludD4gcTJfOwotfTsKLWBgYAotCi1JbiB0aGlzIGNhc2UsIGBUZWFyRG93bigpYCBpcyBub3Qg
bmVlZGVkIHNpbmNlIHdlIGRvbid0IGhhdmUgdG8gY2xlYW4gdXAgYWZ0ZXIKLWVhY2ggdGVzdCwg
b3RoZXIgdGhhbiB3aGF0J3MgYWxyZWFkeSBkb25lIGJ5IHRoZSBkZXN0cnVjdG9yLgotCi1Ob3cg
d2UnbGwgd3JpdGUgdGVzdHMgdXNpbmcgYFRFU1RfRigpYCBhbmQgdGhpcyBmaXh0dXJlLgotCi1g
YGBjKysKLVRFU1RfRihRdWV1ZVRlc3QsIElzRW1wdHlJbml0aWFsbHkpIHsKLSAgRVhQRUNUX0VR
KHEwXy5zaXplKCksIDApOwotfQotCi1URVNUX0YoUXVldWVUZXN0LCBEZXF1ZXVlV29ya3MpIHsK
LSAgaW50KiBuID0gcTBfLkRlcXVldWUoKTsKLSAgRVhQRUNUX0VRKG4sIG51bGxwdHIpOwotCi0g
IG4gPSBxMV8uRGVxdWV1ZSgpOwotICBBU1NFUlRfTkUobiwgbnVsbHB0cik7Ci0gIEVYUEVDVF9F
USgqbiwgMSk7Ci0gIEVYUEVDVF9FUShxMV8uc2l6ZSgpLCAwKTsKLSAgZGVsZXRlIG47Ci0KLSAg
biA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEFTU0VSVF9ORShuLCBudWxscHRyKTsKLSAgRVhQRUNUX0VR
KCpuLCAyKTsKLSAgRVhQRUNUX0VRKHEyXy5zaXplKCksIDEpOwotICBkZWxldGUgbjsKLX0KLWBg
YAotCi1UaGUgYWJvdmUgdXNlcyBib3RoIGBBU1NFUlRfKmAgYW5kIGBFWFBFQ1RfKmAgYXNzZXJ0
aW9ucy4gVGhlIHJ1bGUgb2YgdGh1bWIgaXMKLXRvIHVzZSBgRVhQRUNUXypgIHdoZW4geW91IHdh
bnQgdGhlIHRlc3QgdG8gY29udGludWUgdG8gcmV2ZWFsIG1vcmUgZXJyb3JzIGFmdGVyCi10aGUg
YXNzZXJ0aW9uIGZhaWx1cmUsIGFuZCB1c2UgYEFTU0VSVF8qYCB3aGVuIGNvbnRpbnVpbmcgYWZ0
ZXIgZmFpbHVyZSBkb2Vzbid0Ci1tYWtlIHNlbnNlLiBGb3IgZXhhbXBsZSwgdGhlIHNlY29uZCBh
c3NlcnRpb24gaW4gdGhlIGBEZXF1ZXVlYCB0ZXN0IGlzCi09QVNTRVJUX05FKG51bGxwdHIsIG4p
PSwgYXMgd2UgbmVlZCB0byBkZXJlZmVyZW5jZSB0aGUgcG9pbnRlciBgbmAgbGF0ZXIsIHdoaWNo
Ci13b3VsZCBsZWFkIHRvIGEgc2VnZmF1bHQgd2hlbiBgbmAgaXMgYE5VTExgLgotCi1XaGVuIHRo
ZXNlIHRlc3RzIHJ1biwgdGhlIGZvbGxvd2luZyBoYXBwZW5zOgotCi0xLiAgZ29vZ2xldGVzdCBj
b25zdHJ1Y3RzIGEgYFF1ZXVlVGVzdGAgb2JqZWN0IChsZXQncyBjYWxsIGl0IGB0MWAgKS4KLTEu
ICBgdDEuU2V0VXAoKWAgaW5pdGlhbGl6ZXMgYHQxYCAuCi0xLiAgVGhlIGZpcnN0IHRlc3QgKCBg
SXNFbXB0eUluaXRpYWxseWAgKSBydW5zIG9uIGB0MWAgLgotMS4gIGB0MS5UZWFyRG93bigpYCBj
bGVhbnMgdXAgYWZ0ZXIgdGhlIHRlc3QgZmluaXNoZXMuCi0xLiAgYHQxYCBpcyBkZXN0cnVjdGVk
LgotMS4gIFRoZSBhYm92ZSBzdGVwcyBhcmUgcmVwZWF0ZWQgb24gYW5vdGhlciBgUXVldWVUZXN0
YCBvYmplY3QsIHRoaXMgdGltZQotICAgIHJ1bm5pbmcgdGhlIGBEZXF1ZXVlV29ya3NgIHRlc3Qu
Ci0KLSoqQXZhaWxhYmlsaXR5Kio6IExpbnV4LCBXaW5kb3dzLCBNYWMuCi0KLQotIyMgSW52b2tp
bmcgdGhlIFRlc3RzCi0KLWBURVNUKClgIGFuZCBgVEVTVF9GKClgIGltcGxpY2l0bHkgcmVnaXN0
ZXIgdGhlaXIgdGVzdHMgd2l0aCBnb29nbGV0ZXN0LiBTbywKLXVubGlrZSB3aXRoIG1hbnkgb3Ro
ZXIgQysrIHRlc3RpbmcgZnJhbWV3b3JrcywgeW91IGRvbid0IGhhdmUgdG8gcmUtbGlzdCBhbGwK
LXlvdXIgZGVmaW5lZCB0ZXN0cyBpbiBvcmRlciB0byBydW4gdGhlbS4KLQotQWZ0ZXIgZGVmaW5p
bmcgeW91ciB0ZXN0cywgeW91IGNhbiBydW4gdGhlbSB3aXRoIGBSVU5fQUxMX1RFU1RTKClgICwg
d2hpY2gKLXJldHVybnMgYDBgIGlmIGFsbCB0aGUgdGVzdHMgYXJlIHN1Y2Nlc3NmdWwsIG9yIGAx
YCBvdGhlcndpc2UuIE5vdGUgdGhhdAotYFJVTl9BTExfVEVTVFMoKWAgcnVucyAqYWxsIHRlc3Rz
KiBpbiB5b3VyIGxpbmsgdW5pdCAtLSB0aGV5IGNhbiBiZSBmcm9tCi1kaWZmZXJlbnQgdGVzdCBj
YXNlcywgb3IgZXZlbiBkaWZmZXJlbnQgc291cmNlIGZpbGVzLgotCi1XaGVuIGludm9rZWQsIHRo
ZSBgUlVOX0FMTF9URVNUUygpYCBtYWNybzoKLQotMS4gU2F2ZXMgdGhlIHN0YXRlIG9mIGFsbCBn
b29nbGV0ZXN0IGZsYWdzCi0KLSogICBDcmVhdGVzIGEgdGVzdCBmaXh0dXJlIG9iamVjdCBmb3Ig
dGhlIGZpcnN0IHRlc3QuCi0KLSogICBJbml0aWFsaXplcyBpdCB2aWEgYFNldFVwKClgLgotCi0q
ICAgUnVucyB0aGUgdGVzdCBvbiB0aGUgZml4dHVyZSBvYmplY3QuCi0KLSogICBDbGVhbnMgdXAg
dGhlIGZpeHR1cmUgdmlhIGBUZWFyRG93bigpYC4KLQotKiAgIERlbGV0ZXMgdGhlIGZpeHR1cmUu
Ci0KLSogUmVzdG9yZXMgdGhlIHN0YXRlIG9mIGFsbCBnb29nbGV0ZXN0IGZsYWdzCi0KLSogICBS
ZXBlYXRzIHRoZSBhYm92ZSBzdGVwcyBmb3IgdGhlIG5leHQgdGVzdCwgdW50aWwgYWxsIHRlc3Rz
IGhhdmUgcnVuLgotCi1JZiBhIGZhdGFsIGZhaWx1cmUgaGFwcGVucyB0aGUgc3Vic2VxdWVudCBz
dGVwcyB3aWxsIGJlIHNraXBwZWQuCi0KLT4gSU1QT1JUQU5UOiBZb3UgbXVzdCAqKm5vdCoqIGln
bm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGBSVU5fQUxMX1RFU1RTKClgLCBvcgotPiB5b3Ugd2ls
bCBnZXQgYSBjb21waWxlciBlcnJvci4gVGhlIHJhdGlvbmFsZSBmb3IgdGhpcyBkZXNpZ24gaXMg
dGhhdCB0aGUKLT4gYXV0b21hdGVkIHRlc3Rpbmcgc2VydmljZSBkZXRlcm1pbmVzIHdoZXRoZXIg
YSB0ZXN0IGhhcyBwYXNzZWQgYmFzZWQgb24gaXRzCi0+IGV4aXQgY29kZSwgbm90IG9uIGl0cyBz
dGRvdXQvc3RkZXJyIG91dHB1dDsgdGh1cyB5b3VyIGBtYWluKClgIGZ1bmN0aW9uIG11c3QKLT4g
cmV0dXJuIHRoZSB2YWx1ZSBvZiBgUlVOX0FMTF9URVNUUygpYC4KLT4KLT4gQWxzbywgeW91IHNo
b3VsZCBjYWxsIGBSVU5fQUxMX1RFU1RTKClgIG9ubHkgKipvbmNlKiouIENhbGxpbmcgaXQgbW9y
ZSB0aGFuCi0+IG9uY2UgY29uZmxpY3RzIHdpdGggc29tZSBhZHZhbmNlZCBnb29nbGV0ZXN0IGZl
YXR1cmVzIChlLmcuIHRocmVhZC1zYWZlIFtkZWF0aAotPiB0ZXN0c10oYWR2YW5jZWQjZGVhdGgt
dGVzdHMpKSBhbmQgdGh1cyBpcyBub3Qgc3VwcG9ydGVkLgotCi0qKkF2YWlsYWJpbGl0eSoqOiBM
aW51eCwgV2luZG93cywgTWFjLgotCi0jIyBXcml0aW5nIHRoZSBtYWluKCkgRnVuY3Rpb24KLQot
SW4gYGdvb2dsZTNgLCB0aGUgc2ltcGxlc3QgYXBwcm9hY2ggaXMgdG8gdXNlIHRoZSBkZWZhdWx0
IG1haW4oKSBmdW5jdGlvbgotcHJvdmlkZWQgYnkgbGlua2luZyBpbiBgIi8vdGVzdGluZy9iYXNl
L3B1YmxpYzpndGVzdF9tYWluImAuIElmIHRoYXQgZG9lc24ndAotY292ZXIgd2hhdCB5b3UgbmVl
ZCwgeW91IHNob3VsZCB3cml0ZSB5b3VyIG93biBtYWluKCkgZnVuY3Rpb24sIHdoaWNoIHNob3Vs
ZAotcmV0dXJuIHRoZSB2YWx1ZSBvZiBgUlVOX0FMTF9URVNUUygpYC4gTGluayB0byBgIi8vdGVz
dGluZy9iYXNlL3B1YmxpYzpndW5pdCJgLgotWW91IGNhbiBzdGFydCBmcm9tIHRoaXMgYm9pbGVy
cGxhdGU6Ci0KLWBgYGMrKwotI2luY2x1ZGUgInRoaXMvcGFja2FnZS9mb28uaCIKLSNpbmNsdWRl
ICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgewotCi0vLyBUaGUgZml4dHVyZSBmb3IgdGVz
dGluZyBjbGFzcyBGb28uCi1jbGFzcyBGb29UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7
Ci0gcHJvdGVjdGVkOgotICAvLyBZb3UgY2FuIHJlbW92ZSBhbnkgb3IgYWxsIG9mIHRoZSBmb2xs
b3dpbmcgZnVuY3Rpb25zIGlmIGl0cyBib2R5Ci0gIC8vIGlzIGVtcHR5LgotCi0gIEZvb1Rlc3Qo
KSB7Ci0gICAgIC8vIFlvdSBjYW4gZG8gc2V0LXVwIHdvcmsgZm9yIGVhY2ggdGVzdCBoZXJlLgot
ICB9Ci0KLSAgfkZvb1Rlc3QoKSBvdmVycmlkZSB7Ci0gICAgIC8vIFlvdSBjYW4gZG8gY2xlYW4t
dXAgd29yayB0aGF0IGRvZXNuJ3QgdGhyb3cgZXhjZXB0aW9ucyBoZXJlLgotICB9Ci0KLSAgLy8g
SWYgdGhlIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yIGFyZSBub3QgZW5vdWdoIGZvciBzZXR0
aW5nIHVwCi0gIC8vIGFuZCBjbGVhbmluZyB1cCBlYWNoIHRlc3QsIHlvdSBjYW4gZGVmaW5lIHRo
ZSBmb2xsb3dpbmcgbWV0aG9kczoKLQotICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewotICAgICAv
LyBDb2RlIGhlcmUgd2lsbCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvbnN0cnVj
dG9yIChyaWdodAotICAgICAvLyBiZWZvcmUgZWFjaCB0ZXN0KS4KLSAgfQotCi0gIHZvaWQgVGVh
ckRvd24oKSBvdmVycmlkZSB7Ci0gICAgIC8vIENvZGUgaGVyZSB3aWxsIGJlIGNhbGxlZCBpbW1l
ZGlhdGVseSBhZnRlciBlYWNoIHRlc3QgKHJpZ2h0Ci0gICAgIC8vIGJlZm9yZSB0aGUgZGVzdHJ1
Y3RvcikuCi0gIH0KLQotICAvLyBPYmplY3RzIGRlY2xhcmVkIGhlcmUgY2FuIGJlIHVzZWQgYnkg
YWxsIHRlc3RzIGluIHRoZSB0ZXN0IGNhc2UgZm9yIEZvby4KLX07Ci0KLS8vIFRlc3RzIHRoYXQg
dGhlIEZvbzo6QmFyKCkgbWV0aG9kIGRvZXMgQWJjLgotVEVTVF9GKEZvb1Rlc3QsIE1ldGhvZEJh
ckRvZXNBYmMpIHsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgaW5wdXRfZmlsZXBhdGggPSAidGhpcy9w
YWNrYWdlL3Rlc3RkYXRhL215aW5wdXRmaWxlLmRhdCI7Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIG91
dHB1dF9maWxlcGF0aCA9ICJ0aGlzL3BhY2thZ2UvdGVzdGRhdGEvbXlvdXRwdXRmaWxlLmRhdCI7
Ci0gIEZvbyBmOwotICBFWFBFQ1RfRVEoZi5CYXIoaW5wdXRfZmlsZXBhdGgsIG91dHB1dF9maWxl
cGF0aCksIDApOwotfQotCi0vLyBUZXN0cyB0aGF0IEZvbyBkb2VzIFh5ei4KLVRFU1RfRihGb29U
ZXN0LCBEb2VzWHl6KSB7Ci0gIC8vIEV4ZXJjaXNlcyB0aGUgWHl6IGZlYXR1cmUgb2YgRm9vLgot
fQotCi19ICAvLyBuYW1lc3BhY2UKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7
Ci0gIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwotICByZXR1cm4gUlVO
X0FMTF9URVNUUygpOwotfQotYGBgCi0KLQotVGhlIGA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0
KClgIGZ1bmN0aW9uIHBhcnNlcyB0aGUgY29tbWFuZCBsaW5lIGZvcgotZ29vZ2xldGVzdCBmbGFn
cywgYW5kIHJlbW92ZXMgYWxsIHJlY29nbml6ZWQgZmxhZ3MuIFRoaXMgYWxsb3dzIHRoZSB1c2Vy
IHRvCi1jb250cm9sIGEgdGVzdCBwcm9ncmFtJ3MgYmVoYXZpb3IgdmlhIHZhcmlvdXMgZmxhZ3Ms
IHdoaWNoIHdlJ2xsIGNvdmVyIGluCi1bQWR2YW5jZWRHdWlkZV0oYWR2YW5jZWQubWQpLiBZb3Ug
KiptdXN0KiogY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBjYWxsaW5nCi1gUlVOX0FMTF9URVNU
UygpYCwgb3IgdGhlIGZsYWdzIHdvbid0IGJlIHByb3Blcmx5IGluaXRpYWxpemVkLgotCi1PbiBX
aW5kb3dzLCBgSW5pdEdvb2dsZVRlc3QoKWAgYWxzbyB3b3JrcyB3aXRoIHdpZGUgc3RyaW5ncywg
c28gaXQgY2FuIGJlIHVzZWQKLWluIHByb2dyYW1zIGNvbXBpbGVkIGluIGBVTklDT0RFYCBtb2Rl
IGFzIHdlbGwuCi0KLUJ1dCBtYXliZSB5b3UgdGhpbmsgdGhhdCB3cml0aW5nIGFsbCB0aG9zZSBt
YWluKCkgZnVuY3Rpb25zIGlzIHRvbyBtdWNoIHdvcms/IFdlCi1hZ3JlZSB3aXRoIHlvdSBjb21w
bGV0ZWx5IGFuZCB0aGF0J3Mgd2h5IEdvb2dsZSBUZXN0IHByb3ZpZGVzIGEgYmFzaWMKLWltcGxl
bWVudGF0aW9uIG9mIG1haW4oKS4gSWYgaXQgZml0cyB5b3VyIG5lZWRzLCB0aGVuIGp1c3QgbGlu
ayB5b3VyIHRlc3Qgd2l0aAotZ3Rlc3RcX21haW4gbGlicmFyeSBhbmQgeW91IGFyZSBnb29kIHRv
IGdvLgotCi1OT1RFOiBgUGFyc2VHVW5pdEZsYWdzKClgIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Ig
b2YgYEluaXRHb29nbGVUZXN0KClgLgotCi0KLSMjIEtub3duIExpbWl0YXRpb25zCi0KLSogICBH
b29nbGUgVGVzdCBpcyBkZXNpZ25lZCB0byBiZSB0aHJlYWQtc2FmZS4gVGhlIGltcGxlbWVudGF0
aW9uIGlzIHRocmVhZC1zYWZlCi0gICAgb24gc3lzdGVtcyB3aGVyZSB0aGUgYHB0aHJlYWRzYCBs
aWJyYXJ5IGlzIGF2YWlsYWJsZS4gSXQgaXMgY3VycmVudGx5Ci0gICAgX3Vuc2FmZV8gdG8gdXNl
IEdvb2dsZSBUZXN0IGFzc2VydGlvbnMgZnJvbSB0d28gdGhyZWFkcyBjb25jdXJyZW50bHkgb24K
LSAgICBvdGhlciBzeXN0ZW1zIChlLmcuIFdpbmRvd3MpLiBJbiBtb3N0IHRlc3RzIHRoaXMgaXMg
bm90IGFuIGlzc3VlIGFzIHVzdWFsbHkKLSAgICB0aGUgYXNzZXJ0aW9ucyBhcmUgZG9uZSBpbiB0
aGUgbWFpbiB0aHJlYWQuIElmIHlvdSB3YW50IHRvIGhlbHAsIHlvdSBjYW4KLSAgICB2b2x1bnRl
ZXIgdG8gaW1wbGVtZW50IHRoZSBuZWNlc3Nhcnkgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMg
aW4KLSAgICBgZ3Rlc3QtcG9ydC5oYCBmb3IgeW91ciBwbGF0Zm9ybS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2RvY3Mvc2FtcGxlcy5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2RvY3Mvc2FtcGxlcy5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThk
Y2NhMzgxNDkxZTE5ODIzMzJjNmQ0NDcyY2E4MmQwZDAyMTcwMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9kb2Nz
L3NhbXBsZXMubWQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0jIEdvb2dsZXRlc3Qg
U2FtcGxlcyB7I3NhbXBsZXN9Ci0KLUlmIHlvdSdyZSBsaWtlIHVzLCB5b3UnZCBsaWtlIHRvIGxv
b2sgYXQgW2dvb2dsZXRlc3QKLXNhbXBsZXMuXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dv
b2dsZXRlc3QvdHJlZS9tYXN0ZXIvZ29vZ2xldGVzdC9zYW1wbGVzKQotVGhlIHNhbXBsZSBkaXJl
Y3RvcnkgaGFzIGEgbnVtYmVyIG9mIHdlbGwtY29tbWVudGVkIHNhbXBsZXMgc2hvd2luZyBob3cg
dG8gdXNlIGEKLXZhcmlldHkgb2YgZ29vZ2xldGVzdCBmZWF0dXJlcy4KLQotKiAgIFNhbXBsZSAj
MSBzaG93cyB0aGUgYmFzaWMgc3RlcHMgb2YgdXNpbmcgZ29vZ2xldGVzdCB0byB0ZXN0IEMrKyBm
dW5jdGlvbnMuCi0qICAgU2FtcGxlICMyIHNob3dzIGEgbW9yZSBjb21wbGV4IHVuaXQgdGVzdCBm
b3IgYSBjbGFzcyB3aXRoIG11bHRpcGxlIG1lbWJlcgotICAgIGZ1bmN0aW9ucy4KLSogICBTYW1w
bGUgIzMgdXNlcyBhIHRlc3QgZml4dHVyZS4KLSogICBTYW1wbGUgIzQgdGVhY2hlcyB5b3UgaG93
IHRvIHVzZSBnb29nbGV0ZXN0IGFuZCBgZ29vZ2xldGVzdC5oYCB0b2dldGhlciB0bwotICAgIGdl
dCB0aGUgYmVzdCBvZiBib3RoIGxpYnJhcmllcy4KLSogICBTYW1wbGUgIzUgcHV0cyBzaGFyZWQg
dGVzdGluZyBsb2dpYyBpbiBhIGJhc2UgdGVzdCBmaXh0dXJlLCBhbmQgcmV1c2VzIGl0IGluCi0g
ICAgZGVyaXZlZCBmaXh0dXJlcy4KLSogICBTYW1wbGUgIzYgZGVtb25zdHJhdGVzIHR5cGUtcGFy
YW1ldGVyaXplZCB0ZXN0cy4KLSogICBTYW1wbGUgIzcgdGVhY2hlcyB0aGUgYmFzaWNzIG9mIHZh
bHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0qICAgU2FtcGxlICM4IHNob3dzIHVzaW5nIGBDb21i
aW5lKClgIGluIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCi0qICAgU2FtcGxlICM5IHNob3dz
IHVzZSBvZiB0aGUgbGlzdGVuZXIgQVBJIHRvIG1vZGlmeSBHb29nbGUgVGVzdCdzIGNvbnNvbGUK
LSAgICBvdXRwdXQgYW5kIHRoZSB1c2Ugb2YgaXRzIHJlZmxlY3Rpb24gQVBJIHRvIGluc3BlY3Qg
dGVzdCByZXN1bHRzLgotKiAgIFNhbXBsZSAjMTAgc2hvd3MgdXNlIG9mIHRoZSBsaXN0ZW5lciBB
UEkgdG8gaW1wbGVtZW50IGEgcHJpbWl0aXZlIG1lbW9yeQotICAgIGxlYWsgY2hlY2tlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtZGVh
dGgtdGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1k
ZWF0aC10ZXN0LmgKaW5kZXggMjBjNTRkODY5NTE5ZjY5MzBlN2ViZmQyYzA4MDViYWNhNDIyMTZi
YS4uYWRmYjE5MjExMWYyODYwZmUzNzAxMjMyOWRjNGE5NTM3OTI0YjFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10
ZXN0LmgKQEAgLTM1LDggKzM1LDggQEAKIC8vIGRpcmVjdGx5LgogLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfREVB
VEhfVEVTVF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1Rf
SF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8K
KyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8KIAog
I2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCIKIApA
QCAtMTYxLDcgKzE2MSw2IEBAIEdURVNUX0FQSV8gYm9vbCBJbkRlYXRoVGVzdENoaWxkKCk7CiAv
LyAgIGlzIHJhcmVseSBhIHByb2JsZW0gYXMgcGVvcGxlIHVzdWFsbHkgZG9uJ3QgcHV0IHRoZSB0
ZXN0IGJpbmFyeQogLy8gICBkaXJlY3RvcnkgaW4gUEFUSC4KIC8vCi0vLyBGSVhNRTogbWFrZSB0
aHJlYWQtc2FmZSBkZWF0aCB0ZXN0cyBzZWFyY2ggdGhlIFBBVEguCiAKIC8vIEFzc2VydHMgdGhh
dCBhIGdpdmVuIHN0YXRlbWVudCBjYXVzZXMgdGhlIHByb2dyYW0gdG8gZXhpdCwgd2l0aCBhbgog
Ly8gaW50ZWdlciBleGl0IHN0YXR1cyB0aGF0IHNhdGlzZmllcyBwcmVkaWNhdGUsIGFuZCBlbWl0
dGluZyBlcnJvciBvdXRwdXQKQEAgLTE3MCw3ICsxNjksNyBAQCBHVEVTVF9BUElfIGJvb2wgSW5E
ZWF0aFRlc3RDaGlsZCgpOwogICAgIEdURVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVudCwgcHJlZGlj
YXRlLCByZWdleCwgR1RFU1RfRkFUQUxfRkFJTFVSRV8pCiAKIC8vIExpa2UgQVNTRVJUX0VYSVQs
IGJ1dCBjb250aW51ZXMgb24gdG8gc3VjY2Vzc2l2ZSB0ZXN0cyBpbiB0aGUKLS8vIHRlc3QgY2Fz
ZSwgaWYgYW55OgorLy8gdGVzdCBzdWl0ZSwgaWYgYW55OgogIyBkZWZpbmUgRVhQRUNUX0VYSVQo
c3RhdGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4KSBcCiAgICAgR1RFU1RfREVBVEhfVEVTVF8oc3Rh
dGVtZW50LCBwcmVkaWNhdGUsIHJlZ2V4LCBHVEVTVF9OT05GQVRBTF9GQUlMVVJFXykKIApAQCAt
MTgxLDcgKzE4MCw3IEBAIEdURVNUX0FQSV8gYm9vbCBJbkRlYXRoVGVzdENoaWxkKCk7CiAgICAg
QVNTRVJUX0VYSVQoc3RhdGVtZW50LCA6OnRlc3Rpbmc6OmludGVybmFsOjpFeGl0ZWRVbnN1Y2Nl
c3NmdWxseSwgcmVnZXgpCiAKIC8vIExpa2UgQVNTRVJUX0RFQVRILCBidXQgY29udGludWVzIG9u
IHRvIHN1Y2Nlc3NpdmUgdGVzdHMgaW4gdGhlCi0vLyB0ZXN0IGNhc2UsIGlmIGFueToKKy8vIHRl
c3Qgc3VpdGUsIGlmIGFueToKICMgZGVmaW5lIEVYUEVDVF9ERUFUSChzdGF0ZW1lbnQsIHJlZ2V4
KSBcCiAgICAgRVhQRUNUX0VYSVQoc3RhdGVtZW50LCA6OnRlc3Rpbmc6OmludGVybmFsOjpFeGl0
ZWRVbnN1Y2Nlc3NmdWxseSwgcmVnZXgpCiAKQEAgLTE5MSwxMSArMTkwLDEwIEBAIEdURVNUX0FQ
SV8gYm9vbCBJbkRlYXRoVGVzdENoaWxkKCk7CiBjbGFzcyBHVEVTVF9BUElfIEV4aXRlZFdpdGhD
b2RlIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IEV4aXRlZFdpdGhDb2RlKGludCBleGl0X2NvZGUp
OworICBFeGl0ZWRXaXRoQ29kZShjb25zdCBFeGl0ZWRXaXRoQ29kZSYpID0gZGVmYXVsdDsKKyAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgRXhpdGVkV2l0aENvZGUmIG90aGVyKSA9IGRlbGV0ZTsKICAg
Ym9vbCBvcGVyYXRvcigpKGludCBleGl0X3N0YXR1cykgY29uc3Q7CiAgcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBFeGl0ZWRXaXRoQ29kZSYgb3RoZXIpOwotCiAgIGNvbnN0IGludCBleGl0
X2NvZGVfOwogfTsKIApAQCAtMjI4LDcgKzIyNiw3IEBAIGNsYXNzIEdURVNUX0FQSV8gS2lsbGVk
QnlTaWduYWwgewogLy8gICByZXR1cm4gMTI7CiAvLyB9CiAvLwotLy8gVEVTVChUZXN0Q2FzZSwg
VGVzdERpZU9yMTJXb3Jrc0luRGdiQW5kT3B0KSB7CisvLyBURVNUKFRlc3RTdWl0ZSwgVGVzdERp
ZU9yMTJXb3Jrc0luRGdiQW5kT3B0KSB7CiAvLyAgIGludCBzaWRlZWZmZWN0ID0gMDsKIC8vICAg
Ly8gT25seSBhc3NlcnRzIGluIGRiZy4KIC8vICAgRVhQRUNUX0RFQlVHX0RFQVRIKERpZUluRGVi
dWdPcjEyKCZzaWRlZWZmZWN0KSwgImRlYXRoIik7CkBAIC0yNzcsMjAgKzI3NSwyMCBAQCBjbGFz
cyBHVEVTVF9BUElfIEtpbGxlZEJ5U2lnbmFsIHsKIC8vIFRoaXMgbWFjcm8gaXMgdXNlZCBmb3Ig
aW1wbGVtZW50aW5nIG1hY3JvcyBzdWNoIGFzCiAvLyBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVE
IGFuZCBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVEIG9uIHN5c3RlbXMgd2hlcmUKIC8vIGRlYXRo
IHRlc3RzIGFyZSBub3Qgc3VwcG9ydGVkLiBUaG9zZSBtYWNyb3MgbXVzdCBjb21waWxlIG9uIHN1
Y2ggc3lzdGVtcwotLy8gaWZmIEVYUEVDVF9ERUFUSCBhbmQgQVNTRVJUX0RFQVRIIGNvbXBpbGUg
d2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzIG9uCi0vLyBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBkZWF0
aCB0ZXN0cy4gVGhpcyBhbGxvd3Mgb25lIHRvIHdyaXRlIHN1Y2ggYSBtYWNybwotLy8gb24gYSBz
eXN0ZW0gdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGRlYXRoIHRlc3RzIGFuZCBiZSBzdXJlIHRoYXQg
aXQgd2lsbAotLy8gY29tcGlsZSBvbiBhIGRlYXRoLXRlc3Qgc3VwcG9ydGluZyBzeXN0ZW0uIEl0
IGlzIGV4cG9zZWQgcHVibGljbHkgc28gdGhhdAotLy8gc3lzdGVtcyB0aGF0IGhhdmUgZGVhdGgt
dGVzdHMgd2l0aCBzdHJpY3RlciByZXF1aXJlbWVudHMgdGhhbgotLy8gR1RFU1RfSEFTX0RFQVRI
X1RFU1QgY2FuIHdyaXRlIHRoZWlyIG93biBlcXVpdmFsZW50IG9mCi0vLyBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVEIGFuZCBBU1NFUlRfREVBVEhfSUZfU1VQUE9SVEVELgorLy8gaWYgYW5kIG9u
bHkgaWYgRVhQRUNUX0RFQVRIIGFuZCBBU1NFUlRfREVBVEggY29tcGlsZSB3aXRoIHRoZSBzYW1l
IHBhcmFtZXRlcnMKKy8vIG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGRlYXRoIHRlc3RzLiBUaGlz
IGFsbG93cyBvbmUgdG8gd3JpdGUgc3VjaCBhIG1hY3JvIG9uCisvLyBhIHN5c3RlbSB0aGF0IGRv
ZXMgbm90IHN1cHBvcnQgZGVhdGggdGVzdHMgYW5kIGJlIHN1cmUgdGhhdCBpdCB3aWxsIGNvbXBp
bGUKKy8vIG9uIGEgZGVhdGgtdGVzdCBzdXBwb3J0aW5nIHN5c3RlbS4gSXQgaXMgZXhwb3NlZCBw
dWJsaWNseSBzbyB0aGF0IHN5c3RlbXMKKy8vIHRoYXQgaGF2ZSBkZWF0aC10ZXN0cyB3aXRoIHN0
cmljdGVyIHJlcXVpcmVtZW50cyB0aGFuIEdURVNUX0hBU19ERUFUSF9URVNUCisvLyBjYW4gd3Jp
dGUgdGhlaXIgb3duIGVxdWl2YWxlbnQgb2YgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCBhbmQK
Ky8vIEFTU0VSVF9ERUFUSF9JRl9TVVBQT1JURUQuCiAvLwogLy8gUGFyYW1ldGVyczoKIC8vICAg
c3RhdGVtZW50IC0gIEEgc3RhdGVtZW50IHRoYXQgYSBtYWNybyBzdWNoIGFzIEVYUEVDVF9ERUFU
SCB3b3VsZCB0ZXN0CiAvLyAgICAgICAgICAgICAgICBmb3IgcHJvZ3JhbSB0ZXJtaW5hdGlvbi4g
VGhpcyBtYWNybyBoYXMgdG8gbWFrZSBzdXJlIHRoaXMKIC8vICAgICAgICAgICAgICAgIHN0YXRl
bWVudCBpcyBjb21waWxlZCBidXQgbm90IGV4ZWN1dGVkLCB0byBlbnN1cmUgdGhhdAogLy8gICAg
ICAgICAgICAgICAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRCBjb21waWxlcyB3aXRoIGEgY2Vy
dGFpbgotLy8gICAgICAgICAgICAgICAgcGFyYW1ldGVyIGlmZiBFWFBFQ1RfREVBVEggY29tcGls
ZXMgd2l0aCBpdC4KKy8vICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpZiBhbmQgb25seSBpZiBF
WFBFQ1RfREVBVEggY29tcGlsZXMgd2l0aCBpdC4KIC8vICAgcmVnZXggICAgIC0gIEEgcmVnZXgg
dGhhdCBhIG1hY3JvIHN1Y2ggYXMgRVhQRUNUX0RFQVRIIHdvdWxkIHVzZSB0byB0ZXN0CiAvLyAg
ICAgICAgICAgICAgICB0aGUgb3V0cHV0IG9mIHN0YXRlbWVudC4gIFRoaXMgcGFyYW1ldGVyIGhh
cyB0byBiZQogLy8gICAgICAgICAgICAgICAgY29tcGlsZWQgYnV0IG5vdCBldmFsdWF0ZWQgYnkg
dGhpcyBtYWNybywgdG8gZW5zdXJlIHRoYXQKQEAgLTM0MSw0ICszMzksNCBAQCBjbGFzcyBHVEVT
VF9BUElfIEtpbGxlZEJ5U2lnbmFsIHsKIAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2Vu
ZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8KKyNlbmRpZiAg
Ly8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0RFQVRIX1RFU1RfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWF0Y2hlcnMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmQzZGNmNjE0YTQ1ZGI4YmIwZDEwOGUxNjViOTNmZTY5OTgwZWMyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9n
dGVzdC1tYXRjaGVycy5oCkBAIC0wLDAgKzEsOTMwIEBACisvLyBDb3B5cmlnaHQgMjAwNywgR29v
Z2xlIEluYy4KKy8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKy8vIFRoZSBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1v
Y2tpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKKy8vCisvLyBUaGlzIGZpbGUgaW1wbGVtZW50
cyBqdXN0IGVub3VnaCBvZiB0aGUgbWF0Y2hlciBpbnRlcmZhY2UgdG8gYWxsb3cKKy8vIEVYUEVD
VF9ERUFUSCBhbmQgZnJpZW5kcyB0byBhY2NlcHQgYSBtYXRjaGVyIGFyZ3VtZW50LgorCisjaWZu
ZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9NQVRDSEVSU19IXworI2RlZmluZSBH
T09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfTUFUQ0hFUlNfSF8KKworI2luY2x1ZGUgPGF0
b21pYz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRlIDxz
dHJpbmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKKyNpbmNsdWRlICJndGVzdC9ndGVzdC1w
cmludGVycy5oIgorI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCisj
aW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgorCisvLyBNU1ZDIHdhcm5pbmcg
QzUwNDYgaXMgbmV3IGFzIG9mIFZTMjAxNyB2ZXJzaW9uIDE1LjguCisjaWYgZGVmaW5lZChfTVND
X1ZFUikgJiYgX01TQ19WRVIgPj0gMTkxNQorI2RlZmluZSBHVEVTVF9NQVlCRV81MDQ2XyA1MDQ2
CisjZWxzZQorI2RlZmluZSBHVEVTVF9NQVlCRV81MDQ2XworI2VuZGlmCisKK0dURVNUX0RJU0FC
TEVfTVNDX1dBUk5JTkdTX1BVU0hfKAorICAgIDQyNTEgR1RFU1RfTUFZQkVfNTA0Nl8gLyogY2xh
c3MgQSBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8gYmUgdXNlZCBieQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50cyBvZiBjbGFzcyBCICovCisgICAgLyogU3ltYm9s
IGludm9sdmluZyB0eXBlIHdpdGggaW50ZXJuYWwgbGlua2FnZSBub3QgZGVmaW5lZCAqLykKKwor
bmFtZXNwYWNlIHRlc3RpbmcgeworCisvLyBUbyBpbXBsZW1lbnQgYSBtYXRjaGVyIEZvbyBmb3Ig
dHlwZSBULCBkZWZpbmU6CisvLyAgIDEuIGEgY2xhc3MgRm9vTWF0Y2hlck1hdGNoZXIgdGhhdCBp
bXBsZW1lbnRzIHRoZSBtYXRjaGVyIGludGVyZmFjZToKKy8vICAgICB1c2luZyBpc19ndGVzdF9t
YXRjaGVyID0gdm9pZDsKKy8vICAgICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBUJiwgc3Rk
Ojpvc3RyZWFtKik7CisvLyAgICAgICAoTWF0Y2hSZXN1bHRMaXN0ZW5lciogY2FuIGFsc28gYmUg
dXNlZCBpbnN0ZWFkIG9mIHN0ZDo6b3N0cmVhbSopCisvLyAgICAgdm9pZCBEZXNjcmliZVRvKHN0
ZDo6b3N0cmVhbSopOworLy8gICAgIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRvKHN0ZDo6b3N0cmVh
bSopOworLy8KKy8vICAgMi4gYSBmYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIE1hdGNo
ZXI8VD4gb2JqZWN0IGZyb20gYQorLy8gICAgICBGb29NYXRjaGVyTWF0Y2hlci4KKworY2xhc3Mg
TWF0Y2hSZXN1bHRMaXN0ZW5lciB7CisgcHVibGljOgorICAvLyBDcmVhdGVzIGEgbGlzdGVuZXIg
b2JqZWN0IHdpdGggdGhlIGdpdmVuIHVuZGVybHlpbmcgb3N0cmVhbS4gIFRoZQorICAvLyBsaXN0
ZW5lciBkb2VzIG5vdCBvd24gdGhlIG9zdHJlYW0sIGFuZCBkb2VzIG5vdCBkZXJlZmVyZW5jZSBp
dAorICAvLyBpbiB0aGUgY29uc3RydWN0b3Igb3IgZGVzdHJ1Y3Rvci4KKyAgZXhwbGljaXQgTWF0
Y2hSZXN1bHRMaXN0ZW5lcig6OnN0ZDo6b3N0cmVhbSogb3MpIDogc3RyZWFtXyhvcykge30KKyAg
dmlydHVhbCB+TWF0Y2hSZXN1bHRMaXN0ZW5lcigpID0gMDsgIC8vIE1ha2VzIHRoaXMgY2xhc3Mg
YWJzdHJhY3QuCisKKyAgLy8gU3RyZWFtcyB4IHRvIHRoZSB1bmRlcmx5aW5nIG9zdHJlYW07IGRv
ZXMgbm90aGluZyBpZiB0aGUgb3N0cmVhbQorICAvLyBpcyBOVUxMLgorICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KKyAgTWF0Y2hSZXN1bHRMaXN0ZW5lciYgb3BlcmF0b3I8PChjb25zdCBUJiB4KSB7
CisgICAgaWYgKHN0cmVhbV8gIT0gbnVsbHB0cikgKnN0cmVhbV8gPDwgeDsKKyAgICByZXR1cm4g
KnRoaXM7CisgIH0KKworICAvLyBSZXR1cm5zIHRoZSB1bmRlcmx5aW5nIG9zdHJlYW0uCisgIDo6
c3RkOjpvc3RyZWFtKiBzdHJlYW0oKSB7IHJldHVybiBzdHJlYW1fOyB9CisKKyAgLy8gUmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciBpcyBpbnRlcmVzdGVkIGluIGFuIGV4
cGxhbmF0aW9uCisgIC8vIG9mIHRoZSBtYXRjaCByZXN1bHQuICBBIG1hdGNoZXIncyBNYXRjaEFu
ZEV4cGxhaW4oKSBtZXRob2QgY2FuIHVzZQorICAvLyB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lk
IGdlbmVyYXRpbmcgdGhlIGV4cGxhbmF0aW9uIHdoZW4gbm8gb25lCisgIC8vIGludGVuZHMgdG8g
aGVhciBpdC4KKyAgYm9vbCBJc0ludGVyZXN0ZWQoKSBjb25zdCB7IHJldHVybiBzdHJlYW1fICE9
IG51bGxwdHI7IH0KKworIHByaXZhdGU6CisgIDo6c3RkOjpvc3RyZWFtKiBjb25zdCBzdHJlYW1f
OworCisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oTWF0Y2hSZXN1bHRMaXN0ZW5l
cik7Cit9OworCitpbmxpbmUgTWF0Y2hSZXN1bHRMaXN0ZW5lcjo6fk1hdGNoUmVzdWx0TGlzdGVu
ZXIoKSB7Cit9CisKKy8vIEFuIGluc3RhbmNlIG9mIGEgc3ViY2xhc3Mgb2YgdGhpcyBrbm93cyBo
b3cgdG8gZGVzY3JpYmUgaXRzZWxmIGFzIGEKKy8vIG1hdGNoZXIuCitjbGFzcyBNYXRjaGVyRGVz
Y3JpYmVySW50ZXJmYWNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgfk1hdGNoZXJEZXNjcmliZXJJ
bnRlcmZhY2UoKSB7fQorCisgIC8vIERlc2NyaWJlcyB0aGlzIG1hdGNoZXIgdG8gYW4gb3N0cmVh
bS4gIFRoZSBmdW5jdGlvbiBzaG91bGQgcHJpbnQKKyAgLy8gYSB2ZXJiIHBocmFzZSB0aGF0IGRl
c2NyaWJlcyB0aGUgcHJvcGVydHkgYSB2YWx1ZSBtYXRjaGluZyB0aGlzCisgIC8vIG1hdGNoZXIg
c2hvdWxkIGhhdmUuICBUaGUgc3ViamVjdCBvZiB0aGUgdmVyYiBwaHJhc2UgaXMgdGhlIHZhbHVl
CisgIC8vIGJlaW5nIG1hdGNoZWQuICBGb3IgZXhhbXBsZSwgdGhlIERlc2NyaWJlVG8oKSBtZXRo
b2Qgb2YgdGhlIEd0KDcpCisgIC8vIG1hdGNoZXIgcHJpbnRzICJpcyBncmVhdGVyIHRoYW4gNyIu
CisgIHZpcnR1YWwgdm9pZCBEZXNjcmliZVRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgPSAw
OworCisgIC8vIERlc2NyaWJlcyB0aGUgbmVnYXRpb24gb2YgdGhpcyBtYXRjaGVyIHRvIGFuIG9z
dHJlYW0uICBGb3IKKyAgLy8gZXhhbXBsZSwgaWYgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgbWF0
Y2hlciBpcyAiaXMgZ3JlYXRlciB0aGFuCisgIC8vIDciLCB0aGUgbmVnYXRlZCBkZXNjcmlwdGlv
biBjb3VsZCBiZSAiaXMgbm90IGdyZWF0ZXIgdGhhbiA3Ii4KKyAgLy8gWW91IGFyZSBub3QgcmVx
dWlyZWQgdG8gb3ZlcnJpZGUgdGhpcyB3aGVuIGltcGxlbWVudGluZworICAvLyBNYXRjaGVySW50
ZXJmYWNlLCBidXQgaXQgaXMgaGlnaGx5IGFkdmlzZWQgc28gdGhhdCB5b3VyIG1hdGNoZXIKKyAg
Ly8gY2FuIHByb2R1Y2UgZ29vZCBlcnJvciBtZXNzYWdlcy4KKyAgdmlydHVhbCB2b2lkIERlc2Ny
aWJlTmVnYXRpb25Ubyg6OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKyAgICAqb3MgPDwgIm5v
dCAoIjsKKyAgICBEZXNjcmliZVRvKG9zKTsKKyAgICAqb3MgPDwgIikiOworICB9Cit9OworCisv
LyBUaGUgaW1wbGVtZW50YXRpb24gb2YgYSBtYXRjaGVyLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CitjbGFzcyBNYXRjaGVySW50ZXJmYWNlIDogcHVibGljIE1hdGNoZXJEZXNjcmliZXJJbnRlcmZh
Y2UgeworIHB1YmxpYzoKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBtYXRj
aGVyIG1hdGNoZXMgeDsgYWxzbyBleHBsYWlucyB0aGUKKyAgLy8gbWF0Y2ggcmVzdWx0IHRvICds
aXN0ZW5lcicgaWYgbmVjZXNzYXJ5IChzZWUgdGhlIG5leHQgcGFyYWdyYXBoKSwgaW4KKyAgLy8g
dGhlIGZvcm0gb2YgYSBub24tcmVzdHJpY3RpdmUgcmVsYXRpdmUgY2xhdXNlICgid2hpY2ggLi4u
IiwKKyAgLy8gIndob3NlIC4uLiIsIGV0YykgdGhhdCBkZXNjcmliZXMgeC4gIEZvciBleGFtcGxl
LCB0aGUKKyAgLy8gTWF0Y2hBbmRFeHBsYWluKCkgbWV0aG9kIG9mIHRoZSBQb2ludGVlKC4uLikg
bWF0Y2hlciBzaG91bGQKKyAgLy8gZ2VuZXJhdGUgYW4gZXhwbGFuYXRpb24gbGlrZSAid2hpY2gg
cG9pbnRzIHRvIC4uLiIuCisgIC8vCisgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBNYXRjaEFuZEV4
cGxhaW4oKSBzaG91bGQgYWRkIGFuIGV4cGxhbmF0aW9uIG9mCisgIC8vIHRoZSBtYXRjaCByZXN1
bHQgKmlmIGFuZCBvbmx5IGlmKiB0aGV5IGNhbiBwcm92aWRlIGFkZGl0aW9uYWwKKyAgLy8gaW5m
b3JtYXRpb24gdGhhdCdzIG5vdCBhbHJlYWR5IHByZXNlbnQgKG9yIG5vdCBvYnZpb3VzKSBpbiB0
aGUKKyAgLy8gcHJpbnQtb3V0IG9mIHggYW5kIHRoZSBtYXRjaGVyJ3MgZGVzY3JpcHRpb24uICBX
aGV0aGVyIHRoZSBtYXRjaAorICAvLyBzdWNjZWVkcyBpcyBub3QgYSBmYWN0b3IgaW4gZGVjaWRp
bmcgd2hldGhlciBhbiBleHBsYW5hdGlvbiBpcworICAvLyBuZWVkZWQsIGFzIHNvbWV0aW1lcyB0
aGUgY2FsbGVyIG5lZWRzIHRvIHByaW50IGEgZmFpbHVyZSBtZXNzYWdlCisgIC8vIHdoZW4gdGhl
IG1hdGNoIHN1Y2NlZWRzIChlLmcuIHdoZW4gdGhlIG1hdGNoZXIgaXMgdXNlZCBpbnNpZGUKKyAg
Ly8gTm90KCkpLgorICAvLworICAvLyBGb3IgZXhhbXBsZSwgYSAiaGFzIGF0IGxlYXN0IDEwIGVs
ZW1lbnRzIiBtYXRjaGVyIHNob3VsZCBleHBsYWluCisgIC8vIHdoYXQgdGhlIGFjdHVhbCBlbGVt
ZW50IGNvdW50IGlzLCByZWdhcmRsZXNzIG9mIHRoZSBtYXRjaCByZXN1bHQsCisgIC8vIGFzIGl0
IGlzIHVzZWZ1bCBpbmZvcm1hdGlvbiB0byB0aGUgcmVhZGVyOyBvbiB0aGUgb3RoZXIgaGFuZCwg
YW4KKyAgLy8gImlzIGVtcHR5IiBtYXRjaGVyIHByb2JhYmx5IG9ubHkgbmVlZHMgdG8gZXhwbGFp
biB3aGF0IHRoZSBhY3R1YWwKKyAgLy8gc2l6ZSBpcyB3aGVuIHRoZSBtYXRjaCBmYWlscywgYXMg
aXQncyByZWR1bmRhbnQgdG8gc2F5IHRoYXQgdGhlCisgIC8vIHNpemUgaXMgMCB3aGVuIHRoZSB2
YWx1ZSBpcyBhbHJlYWR5IGtub3duIHRvIGJlIGVtcHR5LgorICAvLworICAvLyBZb3Ugc2hvdWxk
IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHdoZW4gZGVmaW5pbmcgYSBuZXcgbWF0Y2hlci4KKyAgLy8K
KyAgLy8gSXQncyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciAoR29vZ2xlIFRlc3Qp
IHRvIGd1YXJhbnRlZQorICAvLyB0aGF0ICdsaXN0ZW5lcicgaXMgbm90IE5VTEwuICBUaGlzIGhl
bHBzIHRvIHNpbXBsaWZ5IGEgbWF0Y2hlcidzCisgIC8vIGltcGxlbWVudGF0aW9uIHdoZW4gaXQg
ZG9lc24ndCBjYXJlIGFib3V0IHRoZSBwZXJmb3JtYW5jZSwgYXMgaXQKKyAgLy8gY2FuIHRhbGsg
dG8gJ2xpc3RlbmVyJyB3aXRob3V0IGNoZWNraW5nIGl0cyB2YWxpZGl0eSBmaXJzdC4KKyAgLy8g
SG93ZXZlciwgaW4gb3JkZXIgdG8gaW1wbGVtZW50IGR1bW15IGxpc3RlbmVycyBlZmZpY2llbnRs
eSwKKyAgLy8gbGlzdGVuZXItPnN0cmVhbSgpIG1heSBiZSBOVUxMLgorICB2aXJ0dWFsIGJvb2wg
TWF0Y2hBbmRFeHBsYWluKFQgeCwgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0
ID0gMDsKKworICAvLyBJbmhlcml0cyB0aGVzZSBtZXRob2RzIGZyb20gTWF0Y2hlckRlc2NyaWJl
ckludGVyZmFjZToKKyAgLy8gICB2aXJ0dWFsIHZvaWQgRGVzY3JpYmVUbyg6OnN0ZDo6b3N0cmVh
bSogb3MpIGNvbnN0ID0gMDsKKyAgLy8gICB2aXJ0dWFsIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRv
KDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3Q7Cit9OworCituYW1lc3BhY2UgaW50ZXJuYWwgewor
CitzdHJ1Y3QgQW55RXEgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQj4KKyAg
Ym9vbCBvcGVyYXRvcigpKGNvbnN0IEEmIGEsIGNvbnN0IEImIGIpIGNvbnN0IHsgcmV0dXJuIGEg
PT0gYjsgfQorfTsKK3N0cnVjdCBBbnlOZSB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBl
bmFtZSBCPgorICBib29sIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3Qg
eyByZXR1cm4gYSAhPSBiOyB9Cit9Oworc3RydWN0IEFueUx0IHsKKyAgdGVtcGxhdGUgPHR5cGVu
YW1lIEEsIHR5cGVuYW1lIEI+CisgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBC
JiBiKSBjb25zdCB7IHJldHVybiBhIDwgYjsgfQorfTsKK3N0cnVjdCBBbnlHdCB7CisgIHRlbXBs
YXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29sIG9wZXJhdG9yKCkoY29uc3QgQSYg
YSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA+IGI7IH0KK307CitzdHJ1Y3QgQW55TGUg
eworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQj4KKyAgYm9vbCBvcGVyYXRvcigp
KGNvbnN0IEEmIGEsIGNvbnN0IEImIGIpIGNvbnN0IHsgcmV0dXJuIGEgPD0gYjsgfQorfTsKK3N0
cnVjdCBBbnlHZSB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBib29s
IG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeyByZXR1cm4gYSA+PSBi
OyB9Cit9OworCisvLyBBIG1hdGNoIHJlc3VsdCBsaXN0ZW5lciB0aGF0IGlnbm9yZXMgdGhlIGV4
cGxhbmF0aW9uLgorY2xhc3MgRHVtbXlNYXRjaFJlc3VsdExpc3RlbmVyIDogcHVibGljIE1hdGNo
UmVzdWx0TGlzdGVuZXIgeworIHB1YmxpYzoKKyAgRHVtbXlNYXRjaFJlc3VsdExpc3RlbmVyKCkg
OiBNYXRjaFJlc3VsdExpc3RlbmVyKG51bGxwdHIpIHt9CisKKyBwcml2YXRlOgorICBHVEVTVF9E
SVNBTExPV19DT1BZX0FORF9BU1NJR05fKER1bW15TWF0Y2hSZXN1bHRMaXN0ZW5lcik7Cit9Owor
CisvLyBBIG1hdGNoIHJlc3VsdCBsaXN0ZW5lciB0aGF0IGZvcndhcmRzIHRoZSBleHBsYW5hdGlv
biB0byBhIGdpdmVuCisvLyBvc3RyZWFtLiAgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFu
ZCBNYXRjaFJlc3VsdExpc3RlbmVyIGlzCisvLyB0aGF0IHRoZSBmb3JtZXIgaXMgY29uY3JldGUu
CitjbGFzcyBTdHJlYW1NYXRjaFJlc3VsdExpc3RlbmVyIDogcHVibGljIE1hdGNoUmVzdWx0TGlz
dGVuZXIgeworIHB1YmxpYzoKKyAgZXhwbGljaXQgU3RyZWFtTWF0Y2hSZXN1bHRMaXN0ZW5lcig6
OnN0ZDo6b3N0cmVhbSogb3MpCisgICAgICA6IE1hdGNoUmVzdWx0TGlzdGVuZXIob3MpIHt9CisK
KyBwcml2YXRlOgorICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFN0cmVhbU1hdGNo
UmVzdWx0TGlzdGVuZXIpOworfTsKKworc3RydWN0IFNoYXJlZFBheWxvYWRCYXNlIHsKKyAgc3Rk
OjphdG9taWM8aW50PiByZWZ7MX07CisgIHZvaWQgUmVmKCkgeyByZWYuZmV0Y2hfYWRkKDEsIHN0
ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOyB9CisgIGJvb2wgVW5yZWYoKSB7IHJldHVybiByZWYu
ZmV0Y2hfc3ViKDEsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpID09IDE7IH0KK307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IFNoYXJlZFBheWxvYWQgOiBTaGFyZWRQYXlsb2Fk
QmFzZSB7CisgIGV4cGxpY2l0IFNoYXJlZFBheWxvYWQoY29uc3QgVCYgdikgOiB2YWx1ZSh2KSB7
fQorICBleHBsaWNpdCBTaGFyZWRQYXlsb2FkKFQmJiB2KSA6IHZhbHVlKHN0ZDo6bW92ZSh2KSkg
e30KKworICBzdGF0aWMgdm9pZCBEZXN0cm95KFNoYXJlZFBheWxvYWRCYXNlKiBzaGFyZWQpIHsK
KyAgICBkZWxldGUgc3RhdGljX2Nhc3Q8U2hhcmVkUGF5bG9hZCo+KHNoYXJlZCk7CisgIH0KKwor
ICBUIHZhbHVlOworfTsKKworLy8gQW4gaW50ZXJuYWwgY2xhc3MgZm9yIGltcGxlbWVudGluZyBN
YXRjaGVyPFQ+LCB3aGljaCB3aWxsIGRlcml2ZQorLy8gZnJvbSBpdC4gIFdlIHB1dCBmdW5jdGlv
bmFsaXRpZXMgY29tbW9uIHRvIGFsbCBNYXRjaGVyPFQ+CisvLyBzcGVjaWFsaXphdGlvbnMgaGVy
ZSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFz
cyBNYXRjaGVyQmFzZSA6IHByaXZhdGUgTWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSB7CisgcHVi
bGljOgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIG1hdGNoZXIgbWF0Y2hl
cyB4OyBhbHNvIGV4cGxhaW5zIHRoZQorICAvLyBtYXRjaCByZXN1bHQgdG8gJ2xpc3RlbmVyJy4K
KyAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3QgVCYgeCwgTWF0Y2hSZXN1bHRMaXN0ZW5lciog
bGlzdGVuZXIpIGNvbnN0IHsKKyAgICBHVEVTVF9DSEVDS18odnRhYmxlXyAhPSBudWxscHRyKTsK
KyAgICByZXR1cm4gdnRhYmxlXy0+bWF0Y2hfYW5kX2V4cGxhaW4oKnRoaXMsIHgsIGxpc3RlbmVy
KTsKKyAgfQorCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIG1hdGNoZXIg
bWF0Y2hlcyB4LgorICBib29sIE1hdGNoZXMoY29uc3QgVCYgeCkgY29uc3QgeworICAgIER1bW15
TWF0Y2hSZXN1bHRMaXN0ZW5lciBkdW1teTsKKyAgICByZXR1cm4gTWF0Y2hBbmRFeHBsYWluKHgs
ICZkdW1teSk7CisgIH0KKworICAvLyBEZXNjcmliZXMgdGhpcyBtYXRjaGVyIHRvIGFuIG9zdHJl
YW0uCisgIHZvaWQgRGVzY3JpYmVUbyg6OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IGZpbmFsIHsK
KyAgICBHVEVTVF9DSEVDS18odnRhYmxlXyAhPSBudWxscHRyKTsKKyAgICB2dGFibGVfLT5kZXNj
cmliZSgqdGhpcywgb3MsIGZhbHNlKTsKKyAgfQorCisgIC8vIERlc2NyaWJlcyB0aGUgbmVnYXRp
b24gb2YgdGhpcyBtYXRjaGVyIHRvIGFuIG9zdHJlYW0uCisgIHZvaWQgRGVzY3JpYmVOZWdhdGlv
blRvKDo6c3RkOjpvc3RyZWFtKiBvcykgY29uc3QgZmluYWwgeworICAgIEdURVNUX0NIRUNLXyh2
dGFibGVfICE9IG51bGxwdHIpOworICAgIHZ0YWJsZV8tPmRlc2NyaWJlKCp0aGlzLCBvcywgdHJ1
ZSk7CisgIH0KKworICAvLyBFeHBsYWlucyB3aHkgeCBtYXRjaGVzLCBvciBkb2Vzbid0IG1hdGNo
LCB0aGUgbWF0Y2hlci4KKyAgdm9pZCBFeHBsYWluTWF0Y2hSZXN1bHRUbyhjb25zdCBUJiB4LCA6
OnN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKyAgICBTdHJlYW1NYXRjaFJlc3VsdExpc3RlbmVy
IGxpc3RlbmVyKG9zKTsKKyAgICBNYXRjaEFuZEV4cGxhaW4oeCwgJmxpc3RlbmVyKTsKKyAgfQor
CisgIC8vIFJldHVybnMgdGhlIGRlc2NyaWJlciBmb3IgdGhpcyBtYXRjaGVyIG9iamVjdDsgcmV0
YWlucyBvd25lcnNoaXAKKyAgLy8gb2YgdGhlIGRlc2NyaWJlciwgd2hpY2ggaXMgb25seSBndWFy
YW50ZWVkIHRvIGJlIGFsaXZlIHdoZW4KKyAgLy8gdGhpcyBtYXRjaGVyIG9iamVjdCBpcyBhbGl2
ZS4KKyAgY29uc3QgTWF0Y2hlckRlc2NyaWJlckludGVyZmFjZSogR2V0RGVzY3JpYmVyKCkgY29u
c3QgeworICAgIGlmICh2dGFibGVfID09IG51bGxwdHIpIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiB2dGFibGVfLT5nZXRfZGVzY3JpYmVyKCp0aGlzKTsKKyAgfQorCisgcHJvdGVjdGVkOgor
ICBNYXRjaGVyQmFzZSgpIDogdnRhYmxlXyhudWxscHRyKSB7fQorCisgIC8vIENvbnN0cnVjdHMg
YSBtYXRjaGVyIGZyb20gaXRzIGltcGxlbWVudGF0aW9uLgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VT4KKyAgZXhwbGljaXQgTWF0Y2hlckJhc2UoY29uc3QgTWF0Y2hlckludGVyZmFjZTxVPiogaW1w
bCkgeworICAgIEluaXQoaW1wbCk7CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTSwgdHlw
ZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTT46OnR5cGU6OmlzX2d0ZXN0X21hdGNoZXI+CisgIE1hdGNoZXJCYXNlKE0m
JiBtKSB7ICAvLyBOT0xJTlQKKyAgICBJbml0KHN0ZDo6Zm9yd2FyZDxNPihtKSk7CisgIH0KKwor
ICBNYXRjaGVyQmFzZShjb25zdCBNYXRjaGVyQmFzZSYgb3RoZXIpCisgICAgICA6IHZ0YWJsZV8o
b3RoZXIudnRhYmxlXyksIGJ1ZmZlcl8ob3RoZXIuYnVmZmVyXykgeworICAgIGlmIChJc1NoYXJl
ZCgpKSBidWZmZXJfLnNoYXJlZC0+UmVmKCk7CisgIH0KKworICBNYXRjaGVyQmFzZSYgb3BlcmF0
b3I9KGNvbnN0IE1hdGNoZXJCYXNlJiBvdGhlcikgeworICAgIGlmICh0aGlzID09ICZvdGhlcikg
cmV0dXJuICp0aGlzOworICAgIERlc3Ryb3koKTsKKyAgICB2dGFibGVfID0gb3RoZXIudnRhYmxl
XzsKKyAgICBidWZmZXJfID0gb3RoZXIuYnVmZmVyXzsKKyAgICBpZiAoSXNTaGFyZWQoKSkgYnVm
ZmVyXy5zaGFyZWQtPlJlZigpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIE1hdGNoZXJC
YXNlKE1hdGNoZXJCYXNlJiYgb3RoZXIpCisgICAgICA6IHZ0YWJsZV8ob3RoZXIudnRhYmxlXyks
IGJ1ZmZlcl8ob3RoZXIuYnVmZmVyXykgeworICAgIG90aGVyLnZ0YWJsZV8gPSBudWxscHRyOwor
ICB9CisKKyAgTWF0Y2hlckJhc2UmIG9wZXJhdG9yPShNYXRjaGVyQmFzZSYmIG90aGVyKSB7Cisg
ICAgaWYgKHRoaXMgPT0gJm90aGVyKSByZXR1cm4gKnRoaXM7CisgICAgRGVzdHJveSgpOworICAg
IHZ0YWJsZV8gPSBvdGhlci52dGFibGVfOworICAgIGJ1ZmZlcl8gPSBvdGhlci5idWZmZXJfOwor
ICAgIG90aGVyLnZ0YWJsZV8gPSBudWxscHRyOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisg
IH5NYXRjaGVyQmFzZSgpIG92ZXJyaWRlIHsgRGVzdHJveSgpOyB9CisKKyBwcml2YXRlOgorICBz
dHJ1Y3QgVlRhYmxlIHsKKyAgICBib29sICgqbWF0Y2hfYW5kX2V4cGxhaW4pKGNvbnN0IE1hdGNo
ZXJCYXNlJiwgY29uc3QgVCYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaFJl
c3VsdExpc3RlbmVyKik7CisgICAgdm9pZCAoKmRlc2NyaWJlKShjb25zdCBNYXRjaGVyQmFzZSYs
IHN0ZDo6b3N0cmVhbSosIGJvb2wgbmVnYXRpb24pOworICAgIC8vIFJldHVybnMgdGhlIGNhcHR1
cmVkIG9iamVjdCBpZiBpdCBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2UsIG90aGVyd2lzZQorICAg
IC8vIHJldHVybnMgdGhlIE1hdGNoZXJCYXNlIGl0c2VsZi4KKyAgICBjb25zdCBNYXRjaGVyRGVz
Y3JpYmVySW50ZXJmYWNlKiAoKmdldF9kZXNjcmliZXIpKGNvbnN0IE1hdGNoZXJCYXNlJik7Cisg
ICAgLy8gQ2FsbGVkIG9uIHNoYXJlZCBpbnN0YW5jZXMgd2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50
IHJlYWNoZXMgMC4KKyAgICB2b2lkICgqc2hhcmVkX2Rlc3Ryb3kpKFNoYXJlZFBheWxvYWRCYXNl
Kik7CisgIH07CisKKyAgYm9vbCBJc1NoYXJlZCgpIGNvbnN0IHsKKyAgICByZXR1cm4gdnRhYmxl
XyAhPSBudWxscHRyICYmIHZ0YWJsZV8tPnNoYXJlZF9kZXN0cm95ICE9IG51bGxwdHI7CisgIH0K
KworICAvLyBJZiB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhIGxpc3RlbmVyLCBjYWxsIHRoYXQu
CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgorICBzdGF0aWMgYXV0byBNYXRjaEFuZEV4cGxhaW5J
bXBsKGNvbnN0IE1hdGNoZXJCYXNlJiBtLCBjb25zdCBUJiB2YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNYXRjaFJlc3VsdExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICAg
IC0+IGRlY2x0eXBlKFA6OkdldChtKS5NYXRjaEFuZEV4cGxhaW4odmFsdWUsIGxpc3RlbmVyLT5z
dHJlYW0oKSkpIHsKKyAgICByZXR1cm4gUDo6R2V0KG0pLk1hdGNoQW5kRXhwbGFpbih2YWx1ZSwg
bGlzdGVuZXItPnN0cmVhbSgpKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPgorICBz
dGF0aWMgYXV0byBNYXRjaEFuZEV4cGxhaW5JbXBsKGNvbnN0IE1hdGNoZXJCYXNlJiBtLCBjb25z
dCBUJiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaFJlc3Vs
dExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICAgIC0+IGRlY2x0eXBlKFA6OkdldChtKS5NYXRjaEFu
ZEV4cGxhaW4odmFsdWUsIGxpc3RlbmVyKSkgeworICAgIHJldHVybiBQOjpHZXQobSkuTWF0Y2hB
bmRFeHBsYWluKHZhbHVlLCBsaXN0ZW5lcik7CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
UD4KKyAgc3RhdGljIHZvaWQgRGVzY3JpYmVJbXBsKGNvbnN0IE1hdGNoZXJCYXNlJiBtLCBzdGQ6
Om9zdHJlYW0qIG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBuZWdhdGlvbikg
eworICAgIGlmIChuZWdhdGlvbikgeworICAgICAgUDo6R2V0KG0pLkRlc2NyaWJlTmVnYXRpb25U
byhvcyk7CisgICAgfSBlbHNlIHsKKyAgICAgIFA6OkdldChtKS5EZXNjcmliZVRvKG9zKTsKKyAg
ICB9CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUD4KKyAgc3RhdGljIGNvbnN0IE1hdGNo
ZXJEZXNjcmliZXJJbnRlcmZhY2UqIEdldERlc2NyaWJlckltcGwoCisgICAgICBjb25zdCBNYXRj
aGVyQmFzZSYgbSkgeworICAgIC8vIElmIHRoZSBpbXBsIGlzIGEgTWF0Y2hlckRlc2NyaWJlcklu
dGVyZmFjZSwgdGhlbiByZXR1cm4gaXQuCisgICAgLy8gT3RoZXJ3aXNlIHVzZSBNYXRjaGVyQmFz
ZSBpdHNlbGYuCisgICAgLy8gVGhpcyBhbGxvd3MgdXMgdG8gaW1wbGVtZW50IHRoZSBHZXREZXNj
cmliZXIoKSBmdW5jdGlvbiB3aXRob3V0IHN1cHBvcnQKKyAgICAvLyBmcm9tIHRoZSBpbXBsLCBi
dXQgc29tZSB1c2VycyByZWFsbHkgd2FudCB0byBnZXQgdGhlaXIgaW1wbCBiYWNrIHdoZW4KKyAg
ICAvLyB0aGV5IGNhbGwgR2V0RGVzY3JpYmVyKCkuCisgICAgLy8gV2UgdXNlIHN0ZDo6Z2V0IG9u
IGEgdHVwbGUgYXMgYSB3b3JrYXJvdW5kIG9mIG5vdCBoYXZpbmcgYGlmIGNvbnN0ZXhwcmAuCisg
ICAgcmV0dXJuIHN0ZDo6Z2V0PCgKKyAgICAgICAgc3RkOjppc19jb252ZXJ0aWJsZTxkZWNsdHlw
ZSgmUDo6R2V0KG0pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBNYXRjaGVy
RGVzY3JpYmVySW50ZXJmYWNlKj46OnZhbHVlCisgICAgICAgICAgICA/IDEKKyAgICAgICAgICAg
IDogMCk+KHN0ZDo6bWFrZV90dXBsZSgmbSwgJlA6OkdldChtKSkpOworICB9CisKKyAgdGVtcGxh
dGUgPHR5cGVuYW1lIFA+CisgIGNvbnN0IFZUYWJsZSogR2V0VlRhYmxlKCkgeworICAgIHN0YXRp
YyBjb25zdGV4cHIgVlRhYmxlIGtWVGFibGUgPSB7Jk1hdGNoQW5kRXhwbGFpbkltcGw8UD4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGVzY3JpYmVJbXBsPFA+LCAm
R2V0RGVzY3JpYmVySW1wbDxQPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFA6OnNoYXJlZF9kZXN0cm95fTsKKyAgICByZXR1cm4gJmtWVGFibGU7CisgIH0KKworICB1
bmlvbiBCdWZmZXIgeworICAgIC8vIEFkZCBzb21lIHR5cGVzIHRvIGdpdmUgQnVmZmVyIHNvbWUg
Y29tbW9uIGFsaWdubWVudC9zaXplIHVzZSBjYXNlcy4KKyAgICB2b2lkKiBwdHI7CisgICAgZG91
YmxlIGQ7CisgICAgaW50NjRfdCBpOworICAgIC8vIEFuZCBhZGQgb25lIGZvciB0aGUgb3V0LW9m
LWxpbmUgY2FzZXMuCisgICAgU2hhcmVkUGF5bG9hZEJhc2UqIHNoYXJlZDsKKyAgfTsKKworICB2
b2lkIERlc3Ryb3koKSB7CisgICAgaWYgKElzU2hhcmVkKCkgJiYgYnVmZmVyXy5zaGFyZWQtPlVu
cmVmKCkpIHsKKyAgICAgIHZ0YWJsZV8tPnNoYXJlZF9kZXN0cm95KGJ1ZmZlcl8uc2hhcmVkKTsK
KyAgICB9CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTT4KKyAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIElzSW5saW5lZCgpIHsKKyAgICByZXR1cm4gc2l6ZW9mKE0pIDw9IHNpemVvZihCdWZm
ZXIpICYmIGFsaWdub2YoTSkgPD0gYWxpZ25vZihCdWZmZXIpICYmCisgICAgICAgICAgIHN0ZDo6
aXNfdHJpdmlhbGx5X2NvcHlfY29uc3RydWN0aWJsZTxNPjo6dmFsdWUgJiYKKyAgICAgICAgICAg
c3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPE0+Ojp2YWx1ZTsKKyAgfQorCisgIHRlbXBs
YXRlIDx0eXBlbmFtZSBNLCBib29sID0gTWF0Y2hlckJhc2U6OklzSW5saW5lZDxNPigpPgorICBz
dHJ1Y3QgVmFsdWVQb2xpY3kgeworICAgIHN0YXRpYyBjb25zdCBNJiBHZXQoY29uc3QgTWF0Y2hl
ckJhc2UmIG0pIHsKKyAgICAgIC8vIFdoZW4gaW5saW5lZCBhbG9uZyB3aXRoIEluaXQsIG5lZWQg
dG8gYmUgZXhwbGljaXQgdG8gYXZvaWQgdmlvbGF0aW5nCisgICAgICAvLyBzdHJpY3QgYWxpYXNp
bmcgcnVsZXMuCisgICAgICBjb25zdCBNICpwdHIgPSBzdGF0aWNfY2FzdDxjb25zdCBNKj4oCisg
ICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KCZtLmJ1ZmZlcl8pKTsKKyAgICAgIHJl
dHVybiAqcHRyOworICAgIH0KKyAgICBzdGF0aWMgdm9pZCBJbml0KE1hdGNoZXJCYXNlJiBtLCBN
IGltcGwpIHsKKyAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oJm0uYnVmZmVyXykpIE0o
aW1wbCk7CisgICAgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzaGFyZWRfZGVzdHJveSA9
IG51bGxwdHI7CisgIH07CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0+CisgIHN0cnVjdCBWYWx1
ZVBvbGljeTxNLCBmYWxzZT4geworICAgIHVzaW5nIFNoYXJlZCA9IFNoYXJlZFBheWxvYWQ8TT47
CisgICAgc3RhdGljIGNvbnN0IE0mIEdldChjb25zdCBNYXRjaGVyQmFzZSYgbSkgeworICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZCo+KG0uYnVmZmVyXy5zaGFyZWQpLT52YWx1ZTsKKyAg
ICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFyZz4KKyAgICBzdGF0aWMgdm9pZCBJbml0KE1h
dGNoZXJCYXNlJiBtLCBBcmcmJiBhcmcpIHsKKyAgICAgIG0uYnVmZmVyXy5zaGFyZWQgPSBuZXcg
U2hhcmVkKHN0ZDo6Zm9yd2FyZDxBcmc+KGFyZykpOworICAgIH0KKyAgICBzdGF0aWMgY29uc3Rl
eHByIGF1dG8gc2hhcmVkX2Rlc3Ryb3kgPSAmU2hhcmVkOjpEZXN0cm95OworICB9OworCisgIHRl
bXBsYXRlIDx0eXBlbmFtZSBVLCBib29sIEI+CisgIHN0cnVjdCBWYWx1ZVBvbGljeTxjb25zdCBN
YXRjaGVySW50ZXJmYWNlPFU+KiwgQj4geworICAgIHVzaW5nIE0gPSBjb25zdCBNYXRjaGVySW50
ZXJmYWNlPFU+OworICAgIHVzaW5nIFNoYXJlZCA9IFNoYXJlZFBheWxvYWQ8c3RkOjp1bmlxdWVf
cHRyPE0+PjsKKyAgICBzdGF0aWMgY29uc3QgTSYgR2V0KGNvbnN0IE1hdGNoZXJCYXNlJiBtKSB7
CisgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PFNoYXJlZCo+KG0uYnVmZmVyXy5zaGFyZWQpLT52
YWx1ZTsKKyAgICB9CisgICAgc3RhdGljIHZvaWQgSW5pdChNYXRjaGVyQmFzZSYgbSwgTSogaW1w
bCkgeworICAgICAgbS5idWZmZXJfLnNoYXJlZCA9IG5ldyBTaGFyZWQoc3RkOjp1bmlxdWVfcHRy
PE0+KGltcGwpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gc2hhcmVkX2Rl
c3Ryb3kgPSAmU2hhcmVkOjpEZXN0cm95OworICB9OworCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBN
PgorICB2b2lkIEluaXQoTSYmIG0pIHsKKyAgICB1c2luZyBNTSA9IHR5cGVuYW1lIHN0ZDo6ZGVj
YXk8TT46OnR5cGU7CisgICAgdXNpbmcgUG9saWN5ID0gVmFsdWVQb2xpY3k8TU0+OworICAgIHZ0
YWJsZV8gPSBHZXRWVGFibGU8UG9saWN5PigpOworICAgIFBvbGljeTo6SW5pdCgqdGhpcywgc3Rk
Ojpmb3J3YXJkPE0+KG0pKTsKKyAgfQorCisgIGNvbnN0IFZUYWJsZSogdnRhYmxlXzsKKyAgQnVm
ZmVyIGJ1ZmZlcl87Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKworLy8gQSBNYXRj
aGVyPFQ+IGlzIGEgY29weWFibGUgYW5kIElNTVVUQUJMRSAoZXhjZXB0IGJ5IGFzc2lnbm1lbnQp
CisvLyBvYmplY3QgdGhhdCBjYW4gY2hlY2sgd2hldGhlciBhIHZhbHVlIG9mIHR5cGUgVCBtYXRj
aGVzLiAgVGhlCisvLyBpbXBsZW1lbnRhdGlvbiBvZiBNYXRjaGVyPFQ+IGlzIGp1c3QgYSBzdGQ6
OnNoYXJlZF9wdHIgdG8gY29uc3QKKy8vIE1hdGNoZXJJbnRlcmZhY2U8VD4uICBEb24ndCBpbmhl
cml0IGZyb20gTWF0Y2hlciEKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgTWF0Y2hlciA6
IHB1YmxpYyBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8VD4geworIHB1YmxpYzoKKyAgLy8gQ29uc3Ry
dWN0cyBhIG51bGwgbWF0Y2hlci4gIE5lZWRlZCBmb3Igc3RvcmluZyBNYXRjaGVyIG9iamVjdHMg
aW4gU1RMCisgIC8vIGNvbnRhaW5lcnMuICBBIGRlZmF1bHQtY29uc3RydWN0ZWQgbWF0Y2hlciBp
cyBub3QgeWV0IGluaXRpYWxpemVkLiAgWW91CisgIC8vIGNhbm5vdCB1c2UgaXQgdW50aWwgYSB2
YWxpZCB2YWx1ZSBoYXMgYmVlbiBhc3NpZ25lZCB0byBpdC4KKyAgZXhwbGljaXQgTWF0Y2hlcigp
IHt9ICAvLyBOT0xJTlQKKworICAvLyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciBmcm9tIGl0cyBpbXBs
ZW1lbnRhdGlvbi4KKyAgZXhwbGljaXQgTWF0Y2hlcihjb25zdCBNYXRjaGVySW50ZXJmYWNlPGNv
bnN0IFQmPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPFQ+KGltcGwpIHt9
CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+CisgIGV4cGxpY2l0IE1hdGNoZXIoCisgICAgICBj
b25zdCBNYXRjaGVySW50ZXJmYWNlPFU+KiBpbXBsLAorICAgICAgdHlwZW5hbWUgc3RkOjplbmFi
bGVfaWY8IXN0ZDo6aXNfc2FtZTxVLCBjb25zdCBVJj46OnZhbHVlPjo6dHlwZSogPQorICAgICAg
ICAgIG51bGxwdHIpCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxUPihpbXBsKSB7fQor
CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3Zl
X3JlZmVyZW5jZTwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rl
c3RfbWF0Y2hlcj4KKyAgTWF0Y2hlcihNJiYgbSkgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8VD4o
c3RkOjpmb3J3YXJkPE0+KG0pKSB7fSAgLy8gTk9MSU5UCisKKyAgLy8gSW1wbGljaXQgY29uc3Ry
dWN0b3IgaGVyZSBhbGxvd3MgcGVvcGxlIHRvIHdyaXRlCisgIC8vIEVYUEVDVF9DQUxMKGZvbywg
QmFyKDUpKSBpbnN0ZWFkIG9mIEVYUEVDVF9DQUxMKGZvbywgQmFyKEVxKDUpKSkgc29tZXRpbWVz
CisgIE1hdGNoZXIoVCB2YWx1ZSk7ICAvLyBOT0xJTlQKK307CisKKy8vIFRoZSBmb2xsb3dpbmcg
dHdvIHNwZWNpYWxpemF0aW9ucyBhbGxvdyB0aGUgdXNlciB0byB3cml0ZSBzdHIKKy8vIGluc3Rl
YWQgb2YgRXEoc3RyKSBhbmQgImZvbyIgaW5zdGVhZCBvZiBFcSgiZm9vIikgd2hlbiBhIHN0ZDo6
c3RyaW5nCisvLyBtYXRjaGVyIGlzIGV4cGVjdGVkLgordGVtcGxhdGUgPD4KK2NsYXNzIEdURVNU
X0FQSV8gTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+CisgICAgOiBwdWJsaWMgaW50ZXJuYWw6
Ok1hdGNoZXJCYXNlPGNvbnN0IHN0ZDo6c3RyaW5nJj4geworIHB1YmxpYzoKKyAgTWF0Y2hlcigp
IHt9CisKKyAgZXhwbGljaXQgTWF0Y2hlcihjb25zdCBNYXRjaGVySW50ZXJmYWNlPGNvbnN0IHN0
ZDo6c3RyaW5nJj4qIGltcGwpCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxjb25zdCBz
dGQ6OnN0cmluZyY+KGltcGwpIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1l
ID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE0+Ojp0eXBlOjppc19ndGVzdF9tYXRjaGVyPgorICBNYXRjaGVyKE0mJiBtKSAgLy8g
Tk9MSU5UCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxjb25zdCBzdGQ6OnN0cmluZyY+
KHN0ZDo6Zm9yd2FyZDxNPihtKSkge30KKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUg
c3RyIGluc3RlYWQgb2YgRXEoc3RyKSBzb21ldGltZXMsIHdoZXJlCisgIC8vIHN0ciBpcyBhIHN0
ZDo6c3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcyk7ICAvLyBO
T0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUgImZvbyIgaW5zdGVhZCBvZiBF
cSgiZm9vIikgc29tZXRpbWVzLgorICBNYXRjaGVyKGNvbnN0IGNoYXIqIHMpOyAgLy8gTk9MSU5U
Cit9OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgR1RFU1RfQVBJXyBNYXRjaGVyPHN0ZDo6c3RyaW5n
PgorICAgIDogcHVibGljIGludGVybmFsOjpNYXRjaGVyQmFzZTxzdGQ6OnN0cmluZz4geworIHB1
YmxpYzoKKyAgTWF0Y2hlcigpIHt9CisKKyAgZXhwbGljaXQgTWF0Y2hlcihjb25zdCBNYXRjaGVy
SW50ZXJmYWNlPGNvbnN0IHN0ZDo6c3RyaW5nJj4qIGltcGwpCisgICAgICA6IGludGVybmFsOjpN
YXRjaGVyQmFzZTxzdGQ6OnN0cmluZz4oaW1wbCkge30KKyAgZXhwbGljaXQgTWF0Y2hlcihjb25z
dCBNYXRjaGVySW50ZXJmYWNlPHN0ZDo6c3RyaW5nPiogaW1wbCkKKyAgICAgIDogaW50ZXJuYWw6
Ok1hdGNoZXJCYXNlPHN0ZDo6c3RyaW5nPihpbXBsKSB7fQorCisgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0Y2hlcj4KKyAgTWF0Y2hl
cihNJiYgbSkgIC8vIE5PTElOVAorICAgICAgOiBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8c3RkOjpz
dHJpbmc+KHN0ZDo6Zm9yd2FyZDxNPihtKSkge30KKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8g
d3JpdGUgc3RyIGluc3RlYWQgb2YgRXEoc3RyKSBzb21ldGltZXMsIHdoZXJlCisgIC8vIHN0ciBp
cyBhIHN0cmluZyBvYmplY3QuCisgIE1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpOyAgLy8g
Tk9MSU5UCisKKyAgLy8gQWxsb3dzIHRoZSB1c2VyIHRvIHdyaXRlICJmb28iIGluc3RlYWQgb2Yg
RXEoImZvbyIpIHNvbWV0aW1lcy4KKyAgTWF0Y2hlcihjb25zdCBjaGFyKiBzKTsgIC8vIE5PTElO
VAorfTsKKworI2lmIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworLy8gVGhlIGZvbGxv
d2luZyB0d28gc3BlY2lhbGl6YXRpb25zIGFsbG93IHRoZSB1c2VyIHRvIHdyaXRlIHN0cgorLy8g
aW5zdGVhZCBvZiBFcShzdHIpIGFuZCAiZm9vIiBpbnN0ZWFkIG9mIEVxKCJmb28iKSB3aGVuIGEg
YWJzbDo6c3RyaW5nX3ZpZXcKKy8vIG1hdGNoZXIgaXMgZXhwZWN0ZWQuCit0ZW1wbGF0ZSA8Pgor
Y2xhc3MgR1RFU1RfQVBJXyBNYXRjaGVyPGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3Jj4KKyAg
ICA6IHB1YmxpYyBpbnRlcm5hbDo6TWF0Y2hlckJhc2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1Zp
ZXcmPiB7CisgcHVibGljOgorICBNYXRjaGVyKCkge30KKworICBleHBsaWNpdCBNYXRjaGVyKGNv
bnN0IE1hdGNoZXJJbnRlcmZhY2U8Y29uc3QgaW50ZXJuYWw6OlN0cmluZ1ZpZXcmPiogaW1wbCkK
KyAgICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3
Jj4oaW1wbCkge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTSwgdHlwZW5hbWUgPSB0eXBlbmFt
ZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTT46
OnR5cGU6OmlzX2d0ZXN0X21hdGNoZXI+CisgIE1hdGNoZXIoTSYmIG0pICAvLyBOT0xJTlQKKyAg
ICAgIDogaW50ZXJuYWw6Ok1hdGNoZXJCYXNlPGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3Jj4o
c3RkOjpmb3J3YXJkPE0+KG0pKSB7CisgIH0KKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3Jp
dGUgc3RyIGluc3RlYWQgb2YgRXEoc3RyKSBzb21ldGltZXMsIHdoZXJlCisgIC8vIHN0ciBpcyBh
IHN0ZDo6c3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hlcihjb25zdCBzdGQ6OnN0cmluZyYgcyk7ICAv
LyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUgImZvbyIgaW5zdGVhZCBv
ZiBFcSgiZm9vIikgc29tZXRpbWVzLgorICBNYXRjaGVyKGNvbnN0IGNoYXIqIHMpOyAgLy8gTk9M
SU5UCisKKyAgLy8gQWxsb3dzIHRoZSB1c2VyIHRvIHBhc3MgYWJzbDo6c3RyaW5nX3ZpZXdzIG9y
IHN0ZDo6c3RyaW5nX3ZpZXdzIGRpcmVjdGx5LgorICBNYXRjaGVyKGludGVybmFsOjpTdHJpbmdW
aWV3IHMpOyAgLy8gTk9MSU5UCit9OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgR1RFU1RfQVBJXyBN
YXRjaGVyPGludGVybmFsOjpTdHJpbmdWaWV3PgorICAgIDogcHVibGljIGludGVybmFsOjpNYXRj
aGVyQmFzZTxpbnRlcm5hbDo6U3RyaW5nVmlldz4geworIHB1YmxpYzoKKyAgTWF0Y2hlcigpIHt9
CisKKyAgZXhwbGljaXQgTWF0Y2hlcihjb25zdCBNYXRjaGVySW50ZXJmYWNlPGNvbnN0IGludGVy
bmFsOjpTdHJpbmdWaWV3Jj4qIGltcGwpCisgICAgICA6IGludGVybmFsOjpNYXRjaGVyQmFzZTxp
bnRlcm5hbDo6U3RyaW5nVmlldz4oaW1wbCkge30KKyAgZXhwbGljaXQgTWF0Y2hlcihjb25zdCBN
YXRjaGVySW50ZXJmYWNlPGludGVybmFsOjpTdHJpbmdWaWV3PiogaW1wbCkKKyAgICAgIDogaW50
ZXJuYWw6Ok1hdGNoZXJCYXNlPGludGVybmFsOjpTdHJpbmdWaWV3PihpbXBsKSB7fQorCisgIHRl
bXBsYXRlIDx0eXBlbmFtZSBNLCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVy
ZW5jZTwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNPjo6dHlwZTo6aXNfZ3Rlc3RfbWF0
Y2hlcj4KKyAgTWF0Y2hlcihNJiYgbSkgIC8vIE5PTElOVAorICAgICAgOiBpbnRlcm5hbDo6TWF0
Y2hlckJhc2U8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+KHN0ZDo6Zm9yd2FyZDxNPihtKSkge30KKwor
ICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gd3JpdGUgc3RyIGluc3RlYWQgb2YgRXEoc3RyKSBzb21l
dGltZXMsIHdoZXJlCisgIC8vIHN0ciBpcyBhIHN0ZDo6c3RyaW5nIG9iamVjdC4KKyAgTWF0Y2hl
cihjb25zdCBzdGQ6OnN0cmluZyYgcyk7ICAvLyBOT0xJTlQKKworICAvLyBBbGxvd3MgdGhlIHVz
ZXIgdG8gd3JpdGUgImZvbyIgaW5zdGVhZCBvZiBFcSgiZm9vIikgc29tZXRpbWVzLgorICBNYXRj
aGVyKGNvbnN0IGNoYXIqIHMpOyAgLy8gTk9MSU5UCisKKyAgLy8gQWxsb3dzIHRoZSB1c2VyIHRv
IHBhc3MgYWJzbDo6c3RyaW5nX3ZpZXdzIG9yIHN0ZDo6c3RyaW5nX3ZpZXdzIGRpcmVjdGx5Lgor
ICBNYXRjaGVyKGludGVybmFsOjpTdHJpbmdWaWV3IHMpOyAgLy8gTk9MSU5UCit9OworI2VuZGlm
ICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKKworLy8gUHJpbnRzIGEgbWF0Y2hl
ciBpbiBhIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3Rk
Ojpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IE1hdGNoZXI8VD4m
IG1hdGNoZXIpIHsKKyAgbWF0Y2hlci5EZXNjcmliZVRvKCZvcyk7CisgIHJldHVybiBvczsKK30K
KworLy8gVGhlIFBvbHltb3JwaGljTWF0Y2hlciBjbGFzcyB0ZW1wbGF0ZSBtYWtlcyBpdCBlYXN5
IHRvIGltcGxlbWVudCBhCisvLyBwb2x5bW9ycGhpYyBtYXRjaGVyIChpLmUuIGEgbWF0Y2hlciB0
aGF0IGNhbiBtYXRjaCB2YWx1ZXMgb2YgbW9yZQorLy8gdGhhbiBvbmUgdHlwZSwgZS5nLiBFcShu
KSBhbmQgTm90TnVsbCgpKS4KKy8vCisvLyBUbyBkZWZpbmUgYSBwb2x5bW9ycGhpYyBtYXRjaGVy
LCBhIHVzZXIgc2hvdWxkIHByb3ZpZGUgYW4gSW1wbAorLy8gY2xhc3MgdGhhdCBoYXMgYSBEZXNj
cmliZVRvKCkgbWV0aG9kIGFuZCBhIERlc2NyaWJlTmVnYXRpb25UbygpCisvLyBtZXRob2QsIGFu
ZCBkZWZpbmUgYSBtZW1iZXIgZnVuY3Rpb24gKG9yIG1lbWJlciBmdW5jdGlvbiB0ZW1wbGF0ZSkK
Ky8vCisvLyAgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKGNvbnN0IFZhbHVlJiB2YWx1ZSwKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVuZXIpIGNvbnN0
OworLy8KKy8vIFNlZSB0aGUgZGVmaW5pdGlvbiBvZiBOb3ROdWxsKCkgZm9yIGEgY29tcGxldGUg
ZXhhbXBsZS4KK3RlbXBsYXRlIDxjbGFzcyBJbXBsPgorY2xhc3MgUG9seW1vcnBoaWNNYXRjaGVy
IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFBvbHltb3JwaGljTWF0Y2hlcihjb25zdCBJbXBsJiBh
bl9pbXBsKSA6IGltcGxfKGFuX2ltcGwpIHt9CisKKyAgLy8gUmV0dXJucyBhIG11dGFibGUgcmVm
ZXJlbmNlIHRvIHRoZSB1bmRlcmx5aW5nIG1hdGNoZXIKKyAgLy8gaW1wbGVtZW50YXRpb24gb2Jq
ZWN0LgorICBJbXBsJiBtdXRhYmxlX2ltcGwoKSB7IHJldHVybiBpbXBsXzsgfQorCisgIC8vIFJl
dHVybnMgYW4gaW1tdXRhYmxlIHJlZmVyZW5jZSB0byB0aGUgdW5kZXJseWluZyBtYXRjaGVyCisg
IC8vIGltcGxlbWVudGF0aW9uIG9iamVjdC4KKyAgY29uc3QgSW1wbCYgaW1wbCgpIGNvbnN0IHsg
cmV0dXJuIGltcGxfOyB9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgIG9wZXJhdG9yIE1h
dGNoZXI8VD4oKSBjb25zdCB7CisgICAgcmV0dXJuIE1hdGNoZXI8VD4obmV3IE1vbm9tb3JwaGlj
SW1wbDxjb25zdCBUJj4oaW1wbF8pKTsKKyAgfQorCisgcHJpdmF0ZToKKyAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CisgIGNsYXNzIE1vbm9tb3JwaGljSW1wbCA6IHB1YmxpYyBNYXRjaGVySW50ZXJm
YWNlPFQ+IHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNb25vbW9ycGhpY0ltcGwoY29uc3Qg
SW1wbCYgaW1wbCkgOiBpbXBsXyhpbXBsKSB7fQorCisgICAgdm9pZCBEZXNjcmliZVRvKDo6c3Rk
Ojpvc3RyZWFtKiBvcykgY29uc3Qgb3ZlcnJpZGUgeyBpbXBsXy5EZXNjcmliZVRvKG9zKTsgfQor
CisgICAgdm9pZCBEZXNjcmliZU5lZ2F0aW9uVG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCBv
dmVycmlkZSB7CisgICAgICBpbXBsXy5EZXNjcmliZU5lZ2F0aW9uVG8ob3MpOworICAgIH0KKwor
ICAgIGJvb2wgTWF0Y2hBbmRFeHBsYWluKFQgeCwgTWF0Y2hSZXN1bHRMaXN0ZW5lciogbGlzdGVu
ZXIpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBpbXBsXy5NYXRjaEFuZEV4cGxhaW4o
eCwgbGlzdGVuZXIpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBjb25zdCBJbXBsIGltcGxf
OworICB9OworCisgIEltcGwgaW1wbF87Cit9OworCisvLyBDcmVhdGVzIGEgbWF0Y2hlciBmcm9t
IGl0cyBpbXBsZW1lbnRhdGlvbi4KKy8vIERFUFJFQ0FURUQ6IEVzcGVjaWFsbHkgaW4gdGhlIGdl
bmVyaWMgY29kZSwgcHJlZmVyOgorLy8gICBNYXRjaGVyPFQ+KG5ldyBNeU1hdGNoZXJJbXBsPGNv
bnN0IFQmPiguLi4pKTsKKy8vCisvLyBNYWtlTWF0Y2hlciBtYXkgY3JlYXRlIGEgTWF0Y2hlciB0
aGF0IGFjY2VwdHMgaXRzIGFyZ3VtZW50IGJ5IHZhbHVlLCB3aGljaAorLy8gbGVhZHMgdG8gdW5u
ZWNlc3NhcnkgY29waWVzICYgbGFjayBvZiBzdXBwb3J0IGZvciBub24tY29weWFibGUgdHlwZXMu
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBNYXRjaGVyPFQ+IE1ha2VNYXRjaGVyKGNv
bnN0IE1hdGNoZXJJbnRlcmZhY2U8VD4qIGltcGwpIHsKKyAgcmV0dXJuIE1hdGNoZXI8VD4oaW1w
bCk7Cit9CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRjaGVyIGZyb20gaXRzIGltcGxl
bWVudGF0aW9uLiAgVGhpcyBpcworLy8gZWFzaWVyIHRvIHVzZSB0aGFuIHRoZSBQb2x5bW9ycGhp
Y01hdGNoZXI8SW1wbD4gY29uc3RydWN0b3IgYXMgaXQKKy8vIGRvZXNuJ3QgcmVxdWlyZSB5b3Ug
dG8gZXhwbGljaXRseSB3cml0ZSB0aGUgdGVtcGxhdGUgYXJndW1lbnQsIGUuZy4KKy8vCisvLyAg
IE1ha2VQb2x5bW9ycGhpY01hdGNoZXIoZm9vKTsKKy8vIHZzCisvLyAgIFBvbHltb3JwaGljTWF0
Y2hlcjxUeXBlT2ZGb28+KGZvbyk7Cit0ZW1wbGF0ZSA8Y2xhc3MgSW1wbD4KK2lubGluZSBQb2x5
bW9ycGhpY01hdGNoZXI8SW1wbD4gTWFrZVBvbHltb3JwaGljTWF0Y2hlcihjb25zdCBJbXBsJiBp
bXBsKSB7CisgIHJldHVybiBQb2x5bW9ycGhpY01hdGNoZXI8SW1wbD4oaW1wbCk7Cit9CisKK25h
bWVzcGFjZSBpbnRlcm5hbCB7CisvLyBJbXBsZW1lbnRzIGEgbWF0Y2hlciB0aGF0IGNvbXBhcmVz
IGEgZ2l2ZW4gdmFsdWUgd2l0aCBhCisvLyBwcmUtc3VwcGxpZWQgdmFsdWUgdXNpbmcgb25lIG9m
IHRoZSA9PSwgPD0sIDwsIGV0Yywgb3BlcmF0b3JzLiAgVGhlCisvLyB0d28gdmFsdWVzIGJlaW5n
IGNvbXBhcmVkIGRvbid0IGhhdmUgdG8gaGF2ZSB0aGUgc2FtZSB0eXBlLgorLy8KKy8vIFRoZSBt
YXRjaGVyIGRlZmluZWQgaGVyZSBpcyBwb2x5bW9ycGhpYyAoZm9yIGV4YW1wbGUsIEVxKDUpIGNh
biBiZQorLy8gdXNlZCB0byBtYXRjaCBhbiBpbnQsIGEgc2hvcnQsIGEgZG91YmxlLCBldGMpLiAg
VGhlcmVmb3JlIHdlIHVzZQorLy8gYSB0ZW1wbGF0ZSB0eXBlIGNvbnZlcnNpb24gb3BlcmF0b3Ig
aW4gdGhlIGltcGxlbWVudGF0aW9uLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgZGVm
aW5pdGlvbiBhc3N1bWVzIHRoYXQgdGhlIFJocyBwYXJhbWV0ZXIgaXMKKy8vIGEgImJhcmUiIHR5
cGUgKGkuZS4gbmVpdGhlciAnY29uc3QgVCcgbm9yICdUJicpLgordGVtcGxhdGUgPHR5cGVuYW1l
IEQsIHR5cGVuYW1lIFJocywgdHlwZW5hbWUgT3A+CitjbGFzcyBDb21wYXJpc29uQmFzZSB7Cisg
cHVibGljOgorICBleHBsaWNpdCBDb21wYXJpc29uQmFzZShjb25zdCBSaHMmIHJocykgOiByaHNf
KHJocykge30KKworICB1c2luZyBpc19ndGVzdF9tYXRjaGVyID0gdm9pZDsKKworICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgTGhzPgorICBib29sIE1hdGNoQW5kRXhwbGFpbihjb25zdCBMaHMmIGxocywg
c3RkOjpvc3RyZWFtKikgY29uc3QgeworICAgIHJldHVybiBPcCgpKGxocywgVW53cmFwKHJoc18p
KTsKKyAgfQorICB2b2lkIERlc2NyaWJlVG8oc3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworICAg
ICpvcyA8PCBEOjpEZXNjKCkgPDwgIiAiOworICAgIFVuaXZlcnNhbFByaW50KFVud3JhcChyaHNf
KSwgb3MpOworICB9CisgIHZvaWQgRGVzY3JpYmVOZWdhdGlvblRvKHN0ZDo6b3N0cmVhbSogb3Mp
IGNvbnN0IHsKKyAgICAqb3MgPDwgRDo6TmVnYXRlZERlc2MoKSA8PCAiICI7CisgICAgVW5pdmVy
c2FsUHJpbnQoVW53cmFwKHJoc18pLCBvcyk7CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgorICBzdGF0aWMgY29uc3QgVCYgVW53cmFwKGNvbnN0IFQmIHYpIHsKKyAg
ICByZXR1cm4gdjsKKyAgfQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIGNvbnN0
IFQmIFVud3JhcChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFQ+IHYpIHsKKyAgICByZXR1cm4gdjsK
KyAgfQorCisgIFJocyByaHNfOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2NsYXNz
IEVxTWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxFcU1hdGNoZXI8UmhzPiwgUmhzLCBB
bnlFcT4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgRXFNYXRjaGVyKGNvbnN0IFJocyYgcmhzKQor
ICAgICAgOiBDb21wYXJpc29uQmFzZTxFcU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlFcT4ocmhzKSB7
IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgZXF1YWwgdG8iOyB9
CisgIHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVzYygpIHsgcmV0dXJuICJpc24ndCBlcXVh
bCB0byI7IH0KK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmhzPgorY2xhc3MgTmVNYXRjaGVyIDog
cHVibGljIENvbXBhcmlzb25CYXNlPE5lTWF0Y2hlcjxSaHM+LCBSaHMsIEFueU5lPiB7CisgcHVi
bGljOgorICBleHBsaWNpdCBOZU1hdGNoZXIoY29uc3QgUmhzJiByaHMpCisgICAgICA6IENvbXBh
cmlzb25CYXNlPE5lTWF0Y2hlcjxSaHM+LCBSaHMsIEFueU5lPihyaHMpIHsgfQorICBzdGF0aWMg
Y29uc3QgY2hhciogRGVzYygpIHsgcmV0dXJuICJpc24ndCBlcXVhbCB0byI7IH0KKyAgc3RhdGlj
IGNvbnN0IGNoYXIqIE5lZ2F0ZWREZXNjKCkgeyByZXR1cm4gImlzIGVxdWFsIHRvIjsgfQorfTsK
K3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+CitjbGFzcyBMdE1hdGNoZXIgOiBwdWJsaWMgQ29tcGFy
aXNvbkJhc2U8THRNYXRjaGVyPFJocz4sIFJocywgQW55THQ+IHsKKyBwdWJsaWM6CisgIGV4cGxp
Y2l0IEx0TWF0Y2hlcihjb25zdCBSaHMmIHJocykKKyAgICAgIDogQ29tcGFyaXNvbkJhc2U8THRN
YXRjaGVyPFJocz4sIFJocywgQW55THQ+KHJocykgeyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBE
ZXNjKCkgeyByZXR1cm4gImlzIDwiOyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVz
YygpIHsgcmV0dXJuICJpc24ndCA8IjsgfQorfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+Citj
bGFzcyBHdE1hdGNoZXIgOiBwdWJsaWMgQ29tcGFyaXNvbkJhc2U8R3RNYXRjaGVyPFJocz4sIFJo
cywgQW55R3Q+IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IEd0TWF0Y2hlcihjb25zdCBSaHMmIHJo
cykKKyAgICAgIDogQ29tcGFyaXNvbkJhc2U8R3RNYXRjaGVyPFJocz4sIFJocywgQW55R3Q+KHJo
cykgeyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBEZXNjKCkgeyByZXR1cm4gImlzID4iOyB9Cisg
IHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVzYygpIHsgcmV0dXJuICJpc24ndCA+IjsgfQor
fTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+CitjbGFzcyBMZU1hdGNoZXIgOiBwdWJsaWMgQ29t
cGFyaXNvbkJhc2U8TGVNYXRjaGVyPFJocz4sIFJocywgQW55TGU+IHsKKyBwdWJsaWM6CisgIGV4
cGxpY2l0IExlTWF0Y2hlcihjb25zdCBSaHMmIHJocykKKyAgICAgIDogQ29tcGFyaXNvbkJhc2U8
TGVNYXRjaGVyPFJocz4sIFJocywgQW55TGU+KHJocykgeyB9CisgIHN0YXRpYyBjb25zdCBjaGFy
KiBEZXNjKCkgeyByZXR1cm4gImlzIDw9IjsgfQorICBzdGF0aWMgY29uc3QgY2hhciogTmVnYXRl
ZERlc2MoKSB7IHJldHVybiAiaXNuJ3QgPD0iOyB9Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFJo
cz4KK2NsYXNzIEdlTWF0Y2hlciA6IHB1YmxpYyBDb21wYXJpc29uQmFzZTxHZU1hdGNoZXI8Umhz
PiwgUmhzLCBBbnlHZT4geworIHB1YmxpYzoKKyAgZXhwbGljaXQgR2VNYXRjaGVyKGNvbnN0IFJo
cyYgcmhzKQorICAgICAgOiBDb21wYXJpc29uQmFzZTxHZU1hdGNoZXI8UmhzPiwgUmhzLCBBbnlH
ZT4ocmhzKSB7IH0KKyAgc3RhdGljIGNvbnN0IGNoYXIqIERlc2MoKSB7IHJldHVybiAiaXMgPj0i
OyB9CisgIHN0YXRpYyBjb25zdCBjaGFyKiBOZWdhdGVkRGVzYygpIHsgcmV0dXJuICJpc24ndCA+
PSI7IH0KK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmlzX2NvbnN0cnVj
dGlibGU8c3RkOjpzdHJpbmcsIFQ+Ojp2YWx1ZT46OnR5cGU+Cit1c2luZyBTdHJpbmdMaWtlID0g
VDsKKworLy8gSW1wbGVtZW50cyBwb2x5bW9ycGhpYyBtYXRjaGVycyBNYXRjaGVzUmVnZXgocmVn
ZXgpIGFuZAorLy8gQ29udGFpbnNSZWdleChyZWdleCksIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEg
TWF0Y2hlcjxUPiBhcyBsb25nIGFzCisvLyBUIGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcu
CitjbGFzcyBNYXRjaGVzUmVnZXhNYXRjaGVyIHsKKyBwdWJsaWM6CisgIE1hdGNoZXNSZWdleE1h
dGNoZXIoY29uc3QgUkUqIHJlZ2V4LCBib29sIGZ1bGxfbWF0Y2gpCisgICAgICA6IHJlZ2V4Xyhy
ZWdleCksIGZ1bGxfbWF0Y2hfKGZ1bGxfbWF0Y2gpIHt9CisKKyNpZiBHVEVTVF9JTlRFUk5BTF9I
QVNfU1RSSU5HX1ZJRVcKKyAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3QgaW50ZXJuYWw6OlN0
cmluZ1ZpZXcmIHMsCisgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIq
IGxpc3RlbmVyKSBjb25zdCB7CisgICAgcmV0dXJuIE1hdGNoQW5kRXhwbGFpbihzdGQ6OnN0cmlu
ZyhzKSwgbGlzdGVuZXIpOworICB9CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJ
TkdfVklFVworCisgIC8vIEFjY2VwdHMgcG9pbnRlciB0eXBlcywgcGFydGljdWxhcmx5OgorICAv
LyAgIGNvbnN0IGNoYXIqCisgIC8vICAgY2hhcioKKyAgLy8gICBjb25zdCB3Y2hhcl90KgorICAv
LyAgIHdjaGFyX3QqCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KKyAgYm9vbCBNYXRj
aEFuZEV4cGxhaW4oQ2hhclR5cGUqIHMsIE1hdGNoUmVzdWx0TGlzdGVuZXIqIGxpc3RlbmVyKSBj
b25zdCB7CisgICAgcmV0dXJuIHMgIT0gbnVsbHB0ciAmJiBNYXRjaEFuZEV4cGxhaW4oc3RkOjpz
dHJpbmcocyksIGxpc3RlbmVyKTsKKyAgfQorCisgIC8vIE1hdGNoZXMgYW55dGhpbmcgdGhhdCBj
YW4gY29udmVydCB0byBzdGQ6OnN0cmluZy4KKyAgLy8KKyAgLy8gVGhpcyBpcyBhIHRlbXBsYXRl
LCBub3QganVzdCBhIHBsYWluIGZ1bmN0aW9uIHdpdGggY29uc3Qgc3RkOjpzdHJpbmcmLAorICAv
LyBiZWNhdXNlIGFic2w6OnN0cmluZ192aWV3IGhhcyBzb21lIGludGVyZmVyaW5nIG5vbi1leHBs
aWNpdCBjb25zdHJ1Y3RvcnMuCisgIHRlbXBsYXRlIDxjbGFzcyBNYXRjaGVlU3RyaW5nVHlwZT4K
KyAgYm9vbCBNYXRjaEFuZEV4cGxhaW4oY29uc3QgTWF0Y2hlZVN0cmluZ1R5cGUmIHMsCisgICAg
ICAgICAgICAgICAgICAgICAgIE1hdGNoUmVzdWx0TGlzdGVuZXIqIC8qIGxpc3RlbmVyICovKSBj
b25zdCB7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHMyKHMpOworICAgIHJldHVybiBmdWxsX21h
dGNoXyA/IFJFOjpGdWxsTWF0Y2goczIsICpyZWdleF8pCisgICAgICAgICAgICAgICAgICAgICAg
IDogUkU6OlBhcnRpYWxNYXRjaChzMiwgKnJlZ2V4Xyk7CisgIH0KKworICB2b2lkIERlc2NyaWJl
VG8oOjpzdGQ6Om9zdHJlYW0qIG9zKSBjb25zdCB7CisgICAgKm9zIDw8IChmdWxsX21hdGNoXyA/
ICJtYXRjaGVzIiA6ICJjb250YWlucyIpIDw8ICIgcmVndWxhciBleHByZXNzaW9uICI7CisgICAg
VW5pdmVyc2FsUHJpbnRlcjxzdGQ6OnN0cmluZz46OlByaW50KHJlZ2V4Xy0+cGF0dGVybigpLCBv
cyk7CisgIH0KKworICB2b2lkIERlc2NyaWJlTmVnYXRpb25Ubyg6OnN0ZDo6b3N0cmVhbSogb3Mp
IGNvbnN0IHsKKyAgICAqb3MgPDwgImRvZXNuJ3QgIiA8PCAoZnVsbF9tYXRjaF8gPyAibWF0Y2gi
IDogImNvbnRhaW4iKQorICAgICAgICA8PCAiIHJlZ3VsYXIgZXhwcmVzc2lvbiAiOworICAgIFVu
aXZlcnNhbFByaW50ZXI8c3RkOjpzdHJpbmc+OjpQcmludChyZWdleF8tPnBhdHRlcm4oKSwgb3Mp
OworICB9CisKKyBwcml2YXRlOgorICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8Y29uc3QgUkU+IHJl
Z2V4XzsKKyAgY29uc3QgYm9vbCBmdWxsX21hdGNoXzsKK307Cit9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKKworLy8gTWF0Y2hlcyBhIHN0cmluZyB0aGF0IGZ1bGx5IG1hdGNoZXMgcmVndWxhciBl
eHByZXNzaW9uICdyZWdleCcuCisvLyBUaGUgbWF0Y2hlciB0YWtlcyBvd25lcnNoaXAgb2YgJ3Jl
Z2V4Jy4KK2lubGluZSBQb2x5bW9ycGhpY01hdGNoZXI8aW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1h
dGNoZXI+IE1hdGNoZXNSZWdleCgKKyAgICBjb25zdCBpbnRlcm5hbDo6UkUqIHJlZ2V4KSB7Cisg
IHJldHVybiBNYWtlUG9seW1vcnBoaWNNYXRjaGVyKGludGVybmFsOjpNYXRjaGVzUmVnZXhNYXRj
aGVyKHJlZ2V4LCB0cnVlKSk7Cit9Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCA9IHN0ZDo6c3RyaW5n
PgorUG9seW1vcnBoaWNNYXRjaGVyPGludGVybmFsOjpNYXRjaGVzUmVnZXhNYXRjaGVyPiBNYXRj
aGVzUmVnZXgoCisgICAgY29uc3QgaW50ZXJuYWw6OlN0cmluZ0xpa2U8VD4mIHJlZ2V4KSB7Cisg
IHJldHVybiBNYXRjaGVzUmVnZXgobmV3IGludGVybmFsOjpSRShzdGQ6OnN0cmluZyhyZWdleCkp
KTsKK30KKworLy8gTWF0Y2hlcyBhIHN0cmluZyB0aGF0IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVz
c2lvbiAncmVnZXgnLgorLy8gVGhlIG1hdGNoZXIgdGFrZXMgb3duZXJzaGlwIG9mICdyZWdleCcu
CitpbmxpbmUgUG9seW1vcnBoaWNNYXRjaGVyPGludGVybmFsOjpNYXRjaGVzUmVnZXhNYXRjaGVy
PiBDb250YWluc1JlZ2V4KAorICAgIGNvbnN0IGludGVybmFsOjpSRSogcmVnZXgpIHsKKyAgcmV0
dXJuIE1ha2VQb2x5bW9ycGhpY01hdGNoZXIoaW50ZXJuYWw6Ok1hdGNoZXNSZWdleE1hdGNoZXIo
cmVnZXgsIGZhbHNlKSk7Cit9Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCA9IHN0ZDo6c3RyaW5nPgor
UG9seW1vcnBoaWNNYXRjaGVyPGludGVybmFsOjpNYXRjaGVzUmVnZXhNYXRjaGVyPiBDb250YWlu
c1JlZ2V4KAorICAgIGNvbnN0IGludGVybmFsOjpTdHJpbmdMaWtlPFQ+JiByZWdleCkgeworICBy
ZXR1cm4gQ29udGFpbnNSZWdleChuZXcgaW50ZXJuYWw6OlJFKHN0ZDo6c3RyaW5nKHJlZ2V4KSkp
OworfQorCisvLyBDcmVhdGVzIGEgcG9seW1vcnBoaWMgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYW55
dGhpbmcgZXF1YWwgdG8geC4KKy8vIE5vdGU6IGlmIHRoZSBwYXJhbWV0ZXIgb2YgRXEoKSB3ZXJl
IGRlY2xhcmVkIGFzIGNvbnN0IFQmLCBFcSgiZm9vIikKKy8vIHdvdWxkbid0IGNvbXBpbGUuCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBpbnRlcm5hbDo6RXFNYXRjaGVyPFQ+IEVxKFQg
eCkgeyByZXR1cm4gaW50ZXJuYWw6OkVxTWF0Y2hlcjxUPih4KTsgfQorCisvLyBDb25zdHJ1Y3Rz
IGEgTWF0Y2hlcjxUPiBmcm9tIGEgJ3ZhbHVlJyBvZiB0eXBlIFQuICBUaGUgY29uc3RydWN0ZWQK
Ky8vIG1hdGNoZXIgbWF0Y2hlcyBhbnkgdmFsdWUgdGhhdCdzIGVxdWFsIHRvICd2YWx1ZScuCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK01hdGNoZXI8VD46Ok1hdGNoZXIoVCB2YWx1ZSkgeyAqdGhp
cyA9IEVxKHZhbHVlKTsgfQorCisvLyBDcmVhdGVzIGEgbW9ub21vcnBoaWMgbWF0Y2hlciB0aGF0
IG1hdGNoZXMgYW55dGhpbmcgd2l0aCB0eXBlIExocworLy8gYW5kIGVxdWFsIHRvIHJocy4gIEEg
dXNlciBtYXkgbmVlZCB0byB1c2UgdGhpcyBpbnN0ZWFkIG9mIEVxKC4uLikKKy8vIGluIG9yZGVy
IHRvIHJlc29sdmUgYW4gb3ZlcmxvYWRpbmcgYW1iaWd1aXR5LgorLy8KKy8vIFR5cGVkRXE8VD4o
eCkgaXMganVzdCBhIGNvbnZlbmllbnQgc2hvcnQtaGFuZCBmb3IgTWF0Y2hlcjxUPihFcSh4KSkK
Ky8vIG9yIE1hdGNoZXI8VD4oeCksIGJ1dCBtb3JlIHJlYWRhYmxlIHRoYW4gdGhlIGxhdHRlci4K
Ky8vCisvLyBXZSBjb3VsZCBkZWZpbmUgc2ltaWxhciBtb25vbW9ycGhpYyBtYXRjaGVycyBmb3Ig
b3RoZXIgY29tcGFyaXNvbgorLy8gb3BlcmF0aW9ucyAoZS5nLiBUeXBlZEx0LCBUeXBlZEdlLCBh
bmQgZXRjKSwgYnV0IGRlY2lkZWQgbm90IHRvIGRvCisvLyBpdCB5ZXQgYXMgdGhvc2UgYXJlIHVz
ZWQgbXVjaCBsZXNzIHRoYW4gRXEoKSBpbiBwcmFjdGljZS4gIEEgdXNlcgorLy8gY2FuIGFsd2F5
cyB3cml0ZSBNYXRjaGVyPFQ+KEx0KDUpKSB0byBiZSBleHBsaWNpdCBhYm91dCB0aGUgdHlwZSwK
Ky8vIGZvciBleGFtcGxlLgordGVtcGxhdGUgPHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmhzPgor
aW5saW5lIE1hdGNoZXI8TGhzPiBUeXBlZEVxKGNvbnN0IFJocyYgcmhzKSB7IHJldHVybiBFcShy
aHMpOyB9CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBh
bnl0aGluZyA+PSB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBpbnRlcm5hbDo6
R2VNYXRjaGVyPFJocz4gR2UoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpHZU1hdGNoZXI8
UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIgdGhhdCBtYXRj
aGVzIGFueXRoaW5nID4geC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+CitpbmxpbmUgaW50ZXJu
YWw6Okd0TWF0Y2hlcjxSaHM+IEd0KFJocyB4KSB7CisgIHJldHVybiBpbnRlcm5hbDo6R3RNYXRj
aGVyPFJocz4oeCk7Cit9CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRjaGVyIHRoYXQg
bWF0Y2hlcyBhbnl0aGluZyA8PSB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4KK2lubGluZSBp
bnRlcm5hbDo6TGVNYXRjaGVyPFJocz4gTGUoUmhzIHgpIHsKKyAgcmV0dXJuIGludGVybmFsOjpM
ZU1hdGNoZXI8UmhzPih4KTsKK30KKworLy8gQ3JlYXRlcyBhIHBvbHltb3JwaGljIG1hdGNoZXIg
dGhhdCBtYXRjaGVzIGFueXRoaW5nIDwgeC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBSaHM+Citpbmxp
bmUgaW50ZXJuYWw6Okx0TWF0Y2hlcjxSaHM+IEx0KFJocyB4KSB7CisgIHJldHVybiBpbnRlcm5h
bDo6THRNYXRjaGVyPFJocz4oeCk7Cit9CisKKy8vIENyZWF0ZXMgYSBwb2x5bW9ycGhpYyBtYXRj
aGVyIHRoYXQgbWF0Y2hlcyBhbnl0aGluZyAhPSB4LgordGVtcGxhdGUgPHR5cGVuYW1lIFJocz4K
K2lubGluZSBpbnRlcm5hbDo6TmVNYXRjaGVyPFJocz4gTmUoUmhzIHgpIHsKKyAgcmV0dXJuIGlu
dGVybmFsOjpOZU1hdGNoZXI8UmhzPih4KTsKK30KK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisK
K0dURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEgNTA0NgorCisjZW5k
aWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9NQVRDSEVSU19IXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tZXNzYWdl
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1lc3NhZ2Uu
aAppbmRleCA1Y2EwNDE2MTRjYjM1NTkyMmYzNTViODkzZjljODRhM2I3ZjUyYzZmLi5iZWNmZDQ5
ZmNiYTljNWFiOTg2ZTRiNDM5NmJjODE0M2EzYzU4N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LW1lc3NhZ2UuaApAQCAtNDQsMTAg
KzQ0LDEyIEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRl
ZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX01FU1NBR0VfSF8KLSNkZWZpbmUgR1RFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9NRVNTQUdFX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9NRVNTQUdFX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9H
VEVTVF9NRVNTQUdFX0hfCiAKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8bWVtb3J5Pgor
I2luY2x1ZGUgPHNzdHJlYW0+CiAKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0
LmgiCiAKQEAgLTEwNiwxNCArMTA4LDYgQEAgY2xhc3MgR1RFU1RfQVBJXyBNZXNzYWdlIHsKICAg
ICAqc3NfIDw8IHN0cjsKICAgfQogCi0jaWYgR1RFU1RfT1NfU1lNQklBTgotICAvLyBTdHJlYW1z
IGEgdmFsdWUgKGVpdGhlciBhIHBvaW50ZXIgb3Igbm90KSB0byB0aGlzIG9iamVjdC4KLSAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIGlubGluZSBNZXNzYWdlJiBvcGVyYXRvciA8PChjb25zdCBU
JiB2YWx1ZSkgewotICAgIFN0cmVhbUhlbHBlcih0eXBlbmFtZSBpbnRlcm5hbDo6aXNfcG9pbnRl
cjxUPjo6dHlwZSgpLCB2YWx1ZSk7Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0jZWxzZQogICAv
LyBTdHJlYW1zIGEgbm9uLXBvaW50ZXIgdmFsdWUgdG8gdGhpcyBvYmplY3QuCiAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogICBpbmxpbmUgTWVzc2FnZSYgb3BlcmF0b3IgPDwoY29uc3QgVCYgdmFs
KSB7CkBAIC0xNTEsMTQgKzE0NSwxMyBAQCBjbGFzcyBHVEVTVF9BUElfIE1lc3NhZ2UgewogICAv
LyBhcyAiKG51bGwpIi4KICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIGlubGluZSBNZXNzYWdl
JiBvcGVyYXRvciA8PChUKiBjb25zdCYgcG9pbnRlcikgeyAgLy8gTk9MSU5UCi0gICAgaWYgKHBv
aW50ZXIgPT0gTlVMTCkgeworICAgIGlmIChwb2ludGVyID09IG51bGxwdHIpIHsKICAgICAgICpz
c18gPDwgIihudWxsKSI7CiAgICAgfSBlbHNlIHsKICAgICAgICpzc18gPDwgcG9pbnRlcjsKICAg
ICB9CiAgICAgcmV0dXJuICp0aGlzOwogICB9Ci0jZW5kaWYgIC8vIEdURVNUX09TX1NZTUJJQU4K
IAogICAvLyBTaW5jZSB0aGUgYmFzaWMgSU8gbWFuaXB1bGF0b3JzIGFyZSBvdmVybG9hZGVkIGZv
ciBib3RoIG5hcnJvdwogICAvLyBhbmQgd2lkZSBzdHJlYW1zLCB3ZSBoYXZlIHRvIHByb3ZpZGUg
dGhpcyBzcGVjaWFsaXplZCBkZWZpbml0aW9uCkBAIC0xODcsMTIgKzE4MCw2IEBAIGNsYXNzIEdU
RVNUX0FQSV8gTWVzc2FnZSB7CiAgIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0IDo6c3RkOjp3
c3RyaW5nJiB3c3RyKTsKICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKLSNpZiBH
VEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLSAgLy8gQ29udmVydHMgdGhlIGdpdmVuIHdpZGUgc3Ry
aW5nIHRvIGEgbmFycm93IHN0cmluZyB1c2luZyB0aGUgVVRGLTgKLSAgLy8gZW5jb2RpbmcsIGFu
ZCBzdHJlYW1zIHRoZSByZXN1bHQgdG8gdGhpcyBNZXNzYWdlIG9iamVjdC4KLSAgTWVzc2FnZSYg
b3BlcmF0b3IgPDwoY29uc3QgOjp3c3RyaW5nJiB3c3RyKTsKLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi0KICAgLy8gR2V0cyB0aGUgdGV4dCBzdHJlYW1lZCB0byB0aGlzIG9i
amVjdCBzbyBmYXIgYXMgYW4gc3RkOjpzdHJpbmcuCiAgIC8vIEVhY2ggJ1wwJyBjaGFyYWN0ZXIg
aW4gdGhlIGJ1ZmZlciBpcyByZXBsYWNlZCB3aXRoICJcXDAiLgogICAvLwpAQCAtMjAwLDMxICsx
ODcsOCBAQCBjbGFzcyBHVEVTVF9BUElfIE1lc3NhZ2UgewogICBzdGQ6OnN0cmluZyBHZXRTdHJp
bmcoKSBjb25zdDsKIAogIHByaXZhdGU6Ci0jaWYgR1RFU1RfT1NfU1lNQklBTgotICAvLyBUaGVz
ZSBhcmUgbmVlZGVkIGFzIHRoZSBOb2tpYSBTeW1iaWFuIENvbXBpbGVyIGNhbm5vdCBkZWNpZGUg
YmV0d2VlbgotICAvLyBjb25zdCBUJiBhbmQgY29uc3QgVCogaW4gYSBmdW5jdGlvbiB0ZW1wbGF0
ZS4gVGhlIE5va2lhIGNvbXBpbGVyIF9jYW5fCi0gIC8vIGRlY2lkZSBiZXR3ZWVuIGNsYXNzIHRl
bXBsYXRlIHNwZWNpYWxpemF0aW9ucyBmb3IgVCBhbmQgVCosIHNvIGEKLSAgLy8gdHIxOjp0eXBl
X3RyYWl0cy1saWtlIGlzX3BvaW50ZXIgd29ya3MsIGFuZCB3ZSBjYW4gb3ZlcmxvYWQgb24gdGhh
dC4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIGlubGluZSB2b2lkIFN0cmVhbUhlbHBlcihp
bnRlcm5hbDo6dHJ1ZV90eXBlIC8qaXNfcG9pbnRlciovLCBUKiBwb2ludGVyKSB7Ci0gICAgaWYg
KHBvaW50ZXIgPT0gTlVMTCkgewotICAgICAgKnNzXyA8PCAiKG51bGwpIjsKLSAgICB9IGVsc2Ug
ewotICAgICAgKnNzXyA8PCBwb2ludGVyOwotICAgIH0KLSAgfQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgaW5saW5lIHZvaWQgU3RyZWFtSGVscGVyKGludGVybmFsOjpmYWxzZV90eXBlIC8q
aXNfcG9pbnRlciovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVCYgdmFsdWUp
IHsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnRzIGluIE1lc3NhZ2UmIG9wZXJhdG9yIDw8KGNvbnN0
IFQmKSBhYm92ZSBmb3Igd2h5Ci0gICAgLy8gd2UgbmVlZCB0aGlzIHVzaW5nIHN0YXRlbWVudC4K
LSAgICB1c2luZyA6Om9wZXJhdG9yIDw8OwotICAgICpzc18gPDwgdmFsdWU7Ci0gIH0KLSNlbmRp
ZiAgLy8gR1RFU1RfT1NfU1lNQklBTgotCiAgIC8vIFdlJ2xsIGhvbGQgdGhlIHRleHQgc3RyZWFt
ZWQgdG8gdGhpcyBvYmplY3QgaGVyZS4KLSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9wdHI8IDo6
c3RkOjpzdHJpbmdzdHJlYW0+IHNzXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPCA6OnN0ZDo6
c3RyaW5nc3RyZWFtPiBzc187CiAKICAgLy8gV2UgZGVjbGFyZSAoYnV0IGRvbid0IGltcGxlbWVu
dCkgdGhpcyB0byBwcmV2ZW50IHRoZSBjb21waWxlcgogICAvLyBmcm9tIGltcGxlbWVudGluZyB0
aGUgYXNzaWdubWVudCBvcGVyYXRvci4KQEAgLTI1Miw0ICsyMTYsNCBAQCBzdGQ6OnN0cmluZyBT
dHJlYW1hYmxlVG9TdHJpbmcoY29uc3QgVCYgc3RyZWFtYWJsZSkgewogCiBHVEVTVF9ESVNBQkxF
X01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9NRVNTQUdFX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9HVEVTVF9NRVNTQUdFX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oCmluZGV4IDNlOTVlNDM5MGUwMGUx
MTYzMTBhNDIzODNkMmUzMGI1OGVkYTVmMGQuLjgwNGU3MDI4MTdiMDNiOTBhM2U3N2ZkOGJkYzhh
MDM3ZTcyZjVlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oCkBAIC0xLDcgKzEsMyBAQAotLy8gVGhpcyBm
aWxlIHdhcyBHRU5FUkFURUQgYnkgY29tbWFuZDoKLS8vICAgICBwdW1wLnB5IGd0ZXN0LXBhcmFt
LXRlc3QuaC5wdW1wCi0vLyBETyBOT1QgRURJVCBCWSBIQU5EISEhCi0KIC8vIENvcHlyaWdodCAy
MDA4LCBHb29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCkBAIC0zNCwxMiAr
MzAsOSBAQAogLy8gTWFjcm9zIGFuZCBmdW5jdGlvbnMgZm9yIGltcGxlbWVudGluZyBwYXJhbWV0
ZXJpemVkIHRlc3RzCiAvLyBpbiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJhbWV3
b3JrIChHb29nbGUgVGVzdCkKIC8vCi0vLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgU0NS
SVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBO
T1QgREVMRVRFCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9I
XwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KLQorI2lm
bmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXworI2RlZmlu
ZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9IXwogCiAvLyBWYWx1
ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFsbG93IHlvdSB0byB0ZXN0IHlvdXIgY29kZSB3aXRoIGRp
ZmZlcmVudAogLy8gcGFyYW1ldGVycyB3aXRob3V0IHdyaXRpbmcgbXVsdGlwbGUgY29waWVzIG9m
IHRoZSBzYW1lIHRlc3QuCkBAIC03NSw3ICs2OCw3IEBAIFRFU1RfUChGb29UZXN0LCBIYXNCbGFo
QmxhaCkgewogICAuLi4KIH0KIAotLy8gRmluYWxseSwgeW91IGNhbiB1c2UgSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AgdG8gaW5zdGFudGlhdGUgdGhlIHRlc3QKKy8vIEZpbmFsbHksIHlvdSBjYW4g
dXNlIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdAogLy8g
Y2FzZSB3aXRoIGFueSBzZXQgb2YgcGFyYW1ldGVycyB5b3Ugd2FudC4gR29vZ2xlIFRlc3QgZGVm
aW5lcyBhIG51bWJlcgogLy8gb2YgZnVuY3Rpb25zIGZvciBnZW5lcmF0aW5nIHRlc3QgcGFyYW1l
dGVycy4gVGhleSByZXR1cm4gd2hhdCB3ZSBjYWxsCiAvLyAoc3VycHJpc2UhKSBwYXJhbWV0ZXIg
Z2VuZXJhdG9ycy4gSGVyZSBpcyBhIHN1bW1hcnkgb2YgdGhlbSwgd2hpY2gKQEAgLTk2LDE3ICs4
OSwxNyBAQCBURVNUX1AoRm9vVGVzdCwgSGFzQmxhaEJsYWgpIHsKIC8vIEZvciBtb3JlIGRldGFp
bHMsIHNlZSBjb21tZW50cyBhdCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGJl
bG93CiAvLyBpbiB0aGlzIGZpbGUuCiAvLwotLy8gVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgd2ls
bCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIHRoZSBGb29UZXN0IHRlc3QgY2FzZQorLy8gVGhlIGZv
bGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBmcm9tIHRoZSBGb29UZXN0
IHRlc3Qgc3VpdGUKIC8vIGVhY2ggd2l0aCBwYXJhbWV0ZXIgdmFsdWVzICJtZWVueSIsICJtaW55
IiwgYW5kICJtb2UiLgogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChJbnN0YW50aWF0aW9uTmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZXMoIm1lZW55IiwgIm1pbnkiLCAibW9lIikpOworSU5TVEFOVElBVEVfVEVTVF9T
VUlURV9QKEluc3RhbnRpYXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIEZvb1Rl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJtZWVueSIsICJtaW55IiwgIm1v
ZSIpKTsKIAogLy8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0
dGVybiwgKHllcywgeW91Ci0vLyBjYW4gaW5zdGFudGlhdGUgaXQgbW9yZSB0aGVuIG9uY2UpIHRo
ZSBmaXJzdCBhcmd1bWVudCB0byB0aGUKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3Jv
IGlzIGEgcHJlZml4IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKLS8vIGFjdHVhbCB0ZXN0IGNh
c2UgbmFtZS4gUmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVudAor
Ly8gY2FuIGluc3RhbnRpYXRlIGl0IG1vcmUgdGhhbiBvbmNlKSB0aGUgZmlyc3QgYXJndW1lbnQg
dG8gdGhlCisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgbWFjcm8gaXMgYSBwcmVmaXggdGhh
dCB3aWxsIGJlIGFkZGVkIHRvIHRoZQorLy8gYWN0dWFsIHRlc3Qgc3VpdGUgbmFtZS4gUmVtZW1i
ZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMgZm9yIGRpZmZlcmVudAogLy8gaW5zdGFudGlhdGlv
bnMuIFRoZSB0ZXN0cyBmcm9tIHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZQogLy8g
dGhlc2UgbmFtZXM6CiAvLwpAQCAtMTIzLDcgKzExNiw3IEBAIElOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEluc3RhbnRpYXRpb25OYW1lLAogLy8gd2l0aCBwYXJhbWV0ZXIgdmFsdWVzICJjYXQiIGFu
ZCAiZG9nIjoKIAogY29uc3QgY2hhciogcGV0c1tdID0geyJjYXQiLCAiZG9nIn07Ci1JTlNUQU5U
SUFURV9URVNUX0NBU0VfUChBbm90aGVySW5zdGFudGlhdGlvbk5hbWUsIEZvb1Rlc3QsIFZhbHVl
c0luKHBldHMpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChBbm90aGVySW5zdGFudGlhdGlv
bk5hbWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsKIAogLy8gVGhlIHRlc3RzIGZyb20gdGhl
IGluc3RhbnRpYXRpb24gYWJvdmUgd2lsbCBoYXZlIHRoZXNlIG5hbWVzOgogLy8KQEAgLTEzMiw5
ICsxMjUsOSBAQCBJTlNUQU5USUFURV9URVNUX0NBU0VfUChBbm90aGVySW5zdGFudGlhdGlvbk5h
bWUsIEZvb1Rlc3QsIFZhbHVlc0luKHBldHMpKTsKIC8vICAgICogQW5vdGhlckluc3RhbnRpYXRp
b25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMCBmb3IgImNhdCIKIC8vICAgICogQW5vdGhlcklu
c3RhbnRpYXRpb25OYW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMSBmb3IgImRvZyIKIC8vCi0vLyBQ
bGVhc2Ugbm90ZSB0aGF0IElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHdpbGwgaW5zdGFudGlhdGUg
YWxsIHRlc3RzCi0vLyBpbiB0aGUgZ2l2ZW4gdGVzdCBjYXNlLCB3aGV0aGVyIHRoZWlyIGRlZmlu
aXRpb25zIGNvbWUgYmVmb3JlIG9yCi0vLyBBRlRFUiB0aGUgSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1Agc3RhdGVtZW50LgorLy8gUGxlYXNlIG5vdGUgdGhhdCBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1Agd2lsbCBpbnN0YW50aWF0ZSBhbGwgdGVzdHMKKy8vIGluIHRoZSBnaXZlbiB0ZXN0IHN1aXRl
LCB3aGV0aGVyIHRoZWlyIGRlZmluaXRpb25zIGNvbWUgYmVmb3JlIG9yCisvLyBBRlRFUiB0aGUg
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHN0YXRlbWVudC4KIC8vCiAvLyBQbGVhc2UgYWxzbyBu
b3RlIHRoYXQgZ2VuZXJhdG9yIGV4cHJlc3Npb25zIChpbmNsdWRpbmcgcGFyYW1ldGVycyB0byB0
aGUKIC8vIGdlbmVyYXRvcnMpIGFyZSBldmFsdWF0ZWQgaW4gSW5pdEdvb2dsZVRlc3QoKSwgYWZ0
ZXIgbWFpbigpIGhhcyBzdGFydGVkLgpAQCAtMTc4LDI2ICsxNzEsMjMgQEAgVEVTVF9QKERlcml2
ZWRUZXN0LCBEb2VzQmxhaCkgewogCiAjZW5kaWYgIC8vIDAKIAotI2luY2x1ZGUgImd0ZXN0L2lu
dGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0jIGluY2x1ZGUg
PHV0aWxpdHk+Ci0jZW5kaWYKKyNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDx1dGlsaXR5
PgogCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKICNpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCIKKyNpbmNsdWRlICJndGVzdC9pbnRl
cm5hbC9ndGVzdC1wb3J0LmgiCiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIAogLy8gRnVuY3Rpb25z
IHByb2R1Y2luZyBwYXJhbWV0ZXIgZ2VuZXJhdG9ycy4KIC8vCiAvLyBHb29nbGUgVGVzdCB1c2Vz
IHRoZXNlIGdlbmVyYXRvcnMgdG8gcHJvZHVjZSBwYXJhbWV0ZXJzIGZvciB2YWx1ZS0KLS8vIHBh
cmFtZXRlcml6ZWQgdGVzdHMuIFdoZW4gYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBpcyBpbnN0
YW50aWF0ZWQKKy8vIHBhcmFtZXRlcml6ZWQgdGVzdHMuIFdoZW4gYSBwYXJhbWV0ZXJpemVkIHRl
c3Qgc3VpdGUgaXMgaW5zdGFudGlhdGVkCiAvLyB3aXRoIGEgcGFydGljdWxhciBnZW5lcmF0b3Is
IEdvb2dsZSBUZXN0IGNyZWF0ZXMgYW5kIHJ1bnMgdGVzdHMKIC8vIGZvciBlYWNoIGVsZW1lbnQg
aW4gdGhlIHNlcXVlbmNlIHByb2R1Y2VkIGJ5IHRoZSBnZW5lcmF0b3IuCiAvLwotLy8gSW4gdGhl
IGZvbGxvd2luZyBzYW1wbGUsIHRlc3RzIGZyb20gdGVzdCBjYXNlIEZvb1Rlc3QgYXJlIGluc3Rh
bnRpYXRlZAorLy8gSW4gdGhlIGZvbGxvd2luZyBzYW1wbGUsIHRlc3RzIGZyb20gdGVzdCBzdWl0
ZSBGb29UZXN0IGFyZSBpbnN0YW50aWF0ZWQKIC8vIGVhY2ggdGhyZWUgdGltZXMgd2l0aCBwYXJh
bWV0ZXIgdmFsdWVzIDMsIDUsIGFuZCA4OgogLy8KIC8vIGNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMg
VGVzdFdpdGhQYXJhbTxpbnQ+IHsgLi4uIH07CkBAIC0yMDYsNyArMTk2LDcgQEAgbmFtZXNwYWNl
IHRlc3RpbmcgewogLy8gfQogLy8gVEVTVF9QKEZvb1Rlc3QsIFRlc3RUaGF0KSB7CiAvLyB9Ci0v
LyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0U2VxdWVuY2UsIEZvb1Rlc3QsIFZhbHVlcygz
LCA1LCA4KSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoVGVzdFNlcXVlbmNlLCBGb29U
ZXN0LCBWYWx1ZXMoMywgNSwgOCkpOwogLy8KIAogLy8gUmFuZ2UoKSByZXR1cm5zIGdlbmVyYXRv
cnMgcHJvdmlkaW5nIHNlcXVlbmNlcyBvZiB2YWx1ZXMgaW4gYSByYW5nZS4KQEAgLTI2MywxMyAr
MjUzLDEzIEBAIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBSYW5nZShUIHN0YXJ0LCBUIGVu
ZCkgewogLy8KIC8vIEV4YW1wbGVzOgogLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZy
b20gdGVzdCBjYXNlIFN0cmluZ1Rlc3QKKy8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20g
dGVzdCBzdWl0ZSBTdHJpbmdUZXN0CiAvLyBlYWNoIHdpdGggQy1zdHJpbmcgdmFsdWVzIG9mICJm
b28iLCAiYmFyIiwgYW5kICJiYXoiOgogLy8KIC8vIGNvbnN0IGNoYXIqIHN0cmluZ3NbXSA9IHsi
Zm9vIiwgImJhciIsICJiYXoifTsKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFN0cmluZ1Nl
cXVlbmNlLCBTdHJpbmdUZXN0LCBWYWx1ZXNJbihzdHJpbmdzKSk7CisvLyBJTlNUQU5USUFURV9U
RVNUX1NVSVRFX1AoU3RyaW5nU2VxdWVuY2UsIFN0cmluZ1Rlc3QsIFZhbHVlc0luKHN0cmluZ3Mp
KTsKIC8vCi0vLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBTdGxTdHJp
bmdUZXN0CisvLyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3Qgc3VpdGUgU3RsU3Ry
aW5nVGVzdAogLy8gZWFjaCB3aXRoIFNUTCBzdHJpbmdzIHdpdGggdmFsdWVzICJhIiBhbmQgImIi
OgogLy8KIC8vIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IEdldFBhcmFtZXRlclN0cmlu
Z3MoKSB7CkBAIC0yNzksOSArMjY5LDkgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFJh
bmdlKFQgc3RhcnQsIFQgZW5kKSB7CiAvLyAgIHJldHVybiB2OwogLy8gfQogLy8KLS8vIElOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZSwKLS8vICAgICAgICAgICAgICAgICAgICAg
ICAgIFN0bFN0cmluZ1Rlc3QsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNJbihH
ZXRQYXJhbWV0ZXJTdHJpbmdzKCkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDaGFy
U2VxdWVuY2UsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgU3RsU3RyaW5nVGVzdCwKKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNJbihHZXRQYXJhbWV0ZXJTdHJpbmdzKCkp
KTsKIC8vCiAvLwogLy8gVGhpcyB3aWxsIGFsc28gaW5zdGFudGlhdGUgdGVzdHMgZnJvbSBDaGFy
VGVzdApAQCAtMjk0LDE2ICsyODQsMTUgQEAgaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFJh
bmdlKFQgc3RhcnQsIFQgZW5kKSB7CiAvLyAgIHJldHVybiBsaXN0OwogLy8gfQogLy8gOjpzdGQ6
Omxpc3Q8Y2hhcj4gbCA9IEdldFBhcmFtZXRlckNoYXJzKCk7Ci0vLyBJTlNUQU5USUFURV9URVNU
X0NBU0VfUChDaGFyU2VxdWVuY2UyLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclRl
c3QsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNJbihsLmJlZ2luKCksIGwuZW5k
KCkpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDaGFyU2VxdWVuY2UyLAorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgIENoYXJUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlc0luKGwuYmVnaW4oKSwgbC5lbmQoKSkpOwogLy8KIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGb3J3YXJkSXRlcmF0b3I+CiBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ci0gIHR5cGVuYW1l
IDo6dGVzdGluZzo6aW50ZXJuYWw6Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj46OnZh
bHVlX3R5cGU+CisgICAgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8Rm9yd2FyZEl0ZXJh
dG9yPjo6dmFsdWVfdHlwZT4KIFZhbHVlc0luKEZvcndhcmRJdGVyYXRvciBiZWdpbiwgRm9yd2Fy
ZEl0ZXJhdG9yIGVuZCkgewotICB0eXBlZGVmIHR5cGVuYW1lIDo6dGVzdGluZzo6aW50ZXJuYWw6
Okl0ZXJhdG9yVHJhaXRzPEZvcndhcmRJdGVyYXRvcj4KLSAgICAgIDo6dmFsdWVfdHlwZSBQYXJh
bVR5cGU7CisgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8Rm9yd2FyZEl0
ZXJhdG9yPjo6dmFsdWVfdHlwZSBQYXJhbVR5cGU7CiAgIHJldHVybiBpbnRlcm5hbDo6UGFyYW1H
ZW5lcmF0b3I8UGFyYW1UeXBlPigKICAgICAgIG5ldyBpbnRlcm5hbDo6VmFsdWVzSW5JdGVyYXRv
clJhbmdlR2VuZXJhdG9yPFBhcmFtVHlwZT4oYmVnaW4sIGVuZCkpOwogfQpAQCAtMzI2LDg2OSAr
MzE1LDIyIEBAIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6OnZh
bHVlX3R5cGU+IFZhbHVlc0luKAogLy8gVmFsdWVzKFQgdjEsIFQgdjIsIC4uLiwgVCB2TikKIC8v
ICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50
cyB2MSwgdjIsIC4uLiwgdk4uCiAvLwotLy8gRm9yIGV4YW1wbGUsIHRoaXMgaW5zdGFudGlhdGVz
IHRlc3RzIGZyb20gdGVzdCBjYXNlIEJhclRlc3QgZWFjaAorLy8gRm9yIGV4YW1wbGUsIHRoaXMg
aW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBzdWl0ZSBCYXJUZXN0IGVhY2gKIC8vIHdpdGgg
dmFsdWVzICJvbmUiLCAidHdvIiwgYW5kICJ0aHJlZSI6CiAvLwotLy8gSU5TVEFOVElBVEVfVEVT
VF9DQVNFX1AoTnVtU2VxdWVuY2UsIEJhclRlc3QsIFZhbHVlcygib25lIiwgInR3byIsICJ0aHJl
ZSIpKTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChOdW1TZXF1ZW5jZSwKKy8vICAgICAg
ICAgICAgICAgICAgICAgICAgICBCYXJUZXN0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAg
IFZhbHVlcygib25lIiwgInR3byIsICJ0aHJlZSIpKTsKIC8vCi0vLyBUaGlzIGluc3RhbnRpYXRl
cyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBCYXpUZXN0IGVhY2ggd2l0aCB2YWx1ZXMgMSwgMiwgMy41
LgorLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IHN1aXRlIEJhelRlc3QgZWFj
aCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCiAvLyBUaGUgZXhhY3QgdHlwZSBvZiB2YWx1ZXMgd2ls
bCBkZXBlbmQgb24gdGhlIHR5cGUgb2YgcGFyYW1ldGVyIGluIEJhelRlc3QuCiAvLwotLy8gSU5T
VEFOVElBVEVfVEVTVF9DQVNFX1AoRmxvYXRpbmdOdW1iZXJzLCBCYXpUZXN0LCBWYWx1ZXMoMSwg
MiwgMy41KSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoRmxvYXRpbmdOdW1iZXJzLCBC
YXpUZXN0LCBWYWx1ZXMoMSwgMiwgMy41KSk7CiAvLwotLy8gQ3VycmVudGx5LCBWYWx1ZXMoKSBz
dXBwb3J0cyBmcm9tIDEgdG8gNTAgcGFyYW1ldGVycy4KIC8vCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTE8VDE+IFZhbHVlcyhUMSB2MSkgewotICByZXR1cm4g
aW50ZXJuYWw6OlZhbHVlQXJyYXkxPFQxPih2MSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI8VDEsIFQyPiBWYWx1ZXMoVDEg
djEsIFQyIHYyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI8VDEsIFQyPih2MSwg
djIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
Mz4KLWludGVybmFsOjpWYWx1ZUFycmF5MzxUMSwgVDIsIFQzPiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzPFQxLCBUMiwgVDM+KHYx
LCB2MiwgdjMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ8VDEsIFQyLCBUMywg
VDQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCkgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXk0PFQxLCBUMiwgVDMsIFQ0Pih2MSwgdjIsIHYzLCB2NCk7Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTU8VDEsIFQyLCBUMywgVDQsIFQ1
PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUpIHsKLSAgcmV0
dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NTxUMSwgVDIsIFQzLCBUNCwgVDU+KHYxLCB2MiwgdjMs
IHY0LCB2NSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1pbnRl
cm5hbDo6VmFsdWVBcnJheTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2NikgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXk2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KHYxLCB2MiwgdjMsIHY0LCB2
NSwgdjYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNz4KLWludGVybmFsOjpWYWx1ZUFycmF5NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4g
VmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsCi0gICAgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNz4odjEsIHYyLCB2MywgdjQsIHY1LAotICAgICAgdjYsIHY3KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4Pgot
aW50ZXJuYWw6OlZhbHVlQXJyYXk4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gVmFs
dWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTg8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4Pih2MSwgdjIsIHYzLCB2NCwKLSAgICAgIHY1LCB2NiwgdjcsIHY4KTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KLWludGVybmFsOjpWYWx1ZUFycmF5OTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5KSB7Ci0gIHJldHVybiBp
bnRlcm5hbDo6VmFsdWVBcnJheTk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4o
djEsIHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjkpOwotfQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTEwPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4gVmFsdWVzKFQxIHYxLAotICAgIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYx
MCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxMDxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTA+KHYxLAotICAgICAgdjIsIHYzLCB2NCwgdjUsIHY2LCB2Nywg
djgsIHY5LCB2MTApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExPgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxMTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsCi0gICAgVDExPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEw
LCBUMTEgdjExKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTExPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwKLSAgICAgIFQxMT4odjEsIHYyLCB2MywgdjQs
IHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTI+Ci1pbnRlcm5hbDo6
VmFsdWVBcnJheTEyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgIFQxMj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMikg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxMjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMj4odjEsIHYyLCB2MywgdjQsIHY1LCB2
NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgIFQxMz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMykgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXkxMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwg
djEyLCB2MTMpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0PgotaW50
ZXJuYWw6OlZhbHVlQXJyYXkxNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxND4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2
OSwgdjEwLCB2MTEsIHYxMiwgdjEzLAotICAgICAgdjE0KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkx
NTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
Ci0gICAgVDE0LCBUMTU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1
ZUFycmF5MTU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0g
ICAgICBUMTIsIFQxMywgVDE0LCBUMTU+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCwgdjExLCB2MTIsCi0gICAgICB2MTMsIHYxNCwgdjE1KTsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0
eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQx
Nj4KLWludGVybmFsOjpWYWx1ZUFycmF5MTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTY+IFZhbHVlcyhUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwg
VDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2
MTUsCi0gICAgVDE2IHYxNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkxNjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEz
LCBUMTQsIFQxNSwgVDE2Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAs
IHYxMSwKLSAgICAgIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2KTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkxNzxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwg
VDE3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcpIHsKLSAgcmV0dXJuIGlu
dGVybmFsOjpWYWx1ZUFycmF5MTc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3Pih2MSwgdjIsIHYz
LCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwgdjEzLCB2MTQs
IHYxNSwgdjE2LCB2MTcpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOD4KLWludGVybmFsOjpWYWx1ZUFycmF5MTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwKLSAgICBU
NyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBU
MTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgpIHsKLSAgcmV0
dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MTg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTg+
KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAsIHYxMSwgdjEy
LCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOT4KLWludGVybmFsOjpWYWx1ZUFycmF5
MTk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTk+IFZhbHVlcyhUMSB2MSwgVDIgdjIs
IFQzIHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsCi0gICAgVDE1IHYxNSwg
VDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSkgewotICByZXR1cm4gaW50ZXJuYWw6
OlZhbHVlQXJyYXkxOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5Pih2MSwgdjIs
IHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsCi0gICAgICB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2
MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwPgotaW50ZXJuYWw6
OlZhbHVlQXJyYXkyMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiBWYWx1
ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQx
NCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2
MjApIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjA8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwPih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywKLSAgICAg
IHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5
LCB2MjApOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxPgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkyMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjE+IFZh
bHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwKLSAgICBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsCi0gICAg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIw
IHYyMCwgVDIxIHYyMSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMTxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMT4odjEsIHYyLCB2MywgdjQsIHY1
LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUsIHYx
NiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxLCB0eXBlbmFtZSBUMjI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTIyPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyPiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywKLSAgICBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLAotICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
IFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYy
MSwgVDIyIHYyMikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMjxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyPih2MSwgdjIsIHYzLCB2NCwK
LSAgICAgIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwg
djE2LCB2MTcsIHYxOCwgdjE5LAotICAgICAgdjIwLCB2MjEsIHYyMik7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzPgotaW50ZXJu
YWw6OlZhbHVlQXJyYXkyMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLAotICAgIFQzIHYzLCBUNCB2NCwgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LAotICAgIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsCi0gICAgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMykgewot
ICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyMzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+KHYxLCB2MiwgdjMsCi0gICAgICB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywg
djE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIyLCB2MjMpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkyNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI0PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
Pih2MSwgdjIsCi0gICAgICB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwKLSAgICAgIHYxOSwgdjIwLCB2MjEsIHYy
MiwgdjIzLCB2MjQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjU+Ci1pbnRlcm5h
bDo6VmFsdWVBcnJheTI1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1PiBWYWx1ZXMoVDEgdjEsCi0gICAgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjEx
LAotICAgIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsIFQxOCB2MTgsIFQxOSB2MTksCi0gICAgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwgVDI1IHYyNSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXky
NTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQx
MiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1Pih2MSwKLSAgICAgIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEw
LCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsCi0gICAgICB2MTgsIHYxOSwgdjIw
LCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjY+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTI2PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAot
ICAgIFQyNj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUg
djI1LAotICAgIFQyNiB2MjYpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5MjY8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwKLSAgICAgIFQyNj4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEw
LCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwKLSAgICAgIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIw
LCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkyNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgIFQyNz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcpIHsKLSAg
cmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5Mjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3Pih2
MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYx
NCwKLSAgICAgIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYy
NCwgdjI1LCB2MjYsIHYyNyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4PgotaW50ZXJuYWw6OlZh
bHVlQXJyYXkyODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgVDI4PiBWYWx1ZXMoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICBU
MTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYg
djE2LCBUMTcgdjE3LAotICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQy
MiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkyODxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAg
ICAgVDI2LCBUMjcsIFQyOD4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEw
LCB2MTEsIHYxMiwgdjEzLAotICAgICAgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIw
LCB2MjEsIHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LCB2MjcsCi0gICAgICB2MjgpOwotfQotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkyOTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTI5PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0g
ICAgICBUMjYsIFQyNywgVDI4LCBUMjk+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwg
djksIHYxMCwgdjExLCB2MTIsCi0gICAgICB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2
MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwKLSAgICAgIHYyNywgdjI4LCB2
MjkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBU
NywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUg
VDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBU
MTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5h
bWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5
cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2
LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwg
VDMwPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LAotICAgIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEz
LCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LAotICAgIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsCi0gICAgVDI1
IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQy
OCwgVDI5LCBUMzA+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjEx
LAotICAgICAgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIx
LCB2MjIsIHYyMywgdjI0LCB2MjUsCi0gICAgICB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCk7Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzE+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgIFQyOSwgVDMwLCBUMzE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywKLSAgICBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEs
IFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYx
NywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywK
LSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5
LCBUMzAgdjMwLCBUMzEgdjMxKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTMxPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBU
MTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxPih2MSwgdjIsIHYzLCB2
NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwgdjEzLCB2MTQsIHYx
NSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwKLSAgICAgIHYy
NSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMj4KLWludGVybmFsOjpWYWx1ZUFycmF5MzI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAg
VDI5LCBUMzAsIFQzMSwgVDMyPiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcs
IFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsCi0g
ICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwg
VDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFs
dWVBcnJheTMyPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAot
ICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBU
MzI+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksCi0gICAgICB2MTAsIHYxMSwg
djEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYy
MywKLSAgICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIpOwot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMz4KLWludGVybmFsOjpWYWx1
ZUFycmF5MzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzM+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LAotICAg
IFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsCi0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYx
OSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUg
djI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LAotICAgIFQzMiB2MzIsIFQzMyB2MzMpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5
MzM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBU
MTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
Pih2MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsCi0gICAgICB2OSwgdjEwLCB2MTEsIHYx
MiwgdjEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMs
Ci0gICAgICB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0
PgotaW50ZXJuYWw6OlZhbHVlQXJyYXkzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQg
djQsIFQ1IHY1LAotICAgIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEg
djExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LAotICAgIFQxNSB2MTUsIFQxNiB2MTYsIFQx
NyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsCi0gICAg
VDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5
IHYyOSwgVDMwIHYzMCwKLSAgICBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0KSB7
Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQy
NywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0Pih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywKLSAgICAgIHY4LCB2OSwgdjEwLCB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2
LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLAotICAgICAgdjIzLCB2MjQsIHYyNSwgdjI2
LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCk7Ci19Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlw
ZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwg
dHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBU
MTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQy
MCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFt
ZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlw
ZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEs
IHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4K
LWludGVybmFsOjpWYWx1ZUFycmF5MzU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2Mywg
VDQgdjQsCi0gICAgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBU
MTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLAotICAgIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsCi0gICAgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwg
VDI5IHYyOSwKLSAgICBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0
LCBUMzUgdjM1KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTM1PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0g
ICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+KHYx
LCB2MiwgdjMsIHY0LCB2NSwgdjYsCi0gICAgICB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLAotICAgICAgdjIyLCB2
MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0
LCB2MzUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2PgotaW50ZXJuYWw6OlZhbHVl
QXJyYXkzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNj4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LAotICAg
IFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywKLSAgICBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBU
MTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLAotICAgIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksCi0g
ICAgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwg
VDM2IHYzNikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzNjxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAg
ICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+
KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEy
LCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAsIHYyMSwgdjIy
LCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywK
LSAgICAgIHYzNCwgdjM1LCB2MzYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzc+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM3PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzc+IFZhbHVl
cyhUMSB2MSwgVDIgdjIsIFQzIHYzLAotICAgIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBU
OCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsCi0gICAgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYg
djI2LCBUMjcgdjI3LCBUMjggdjI4LAotICAgIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQz
MiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsCi0gICAgVDM3IHYzNykg
ewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBU
MjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4odjEs
IHYyLCB2MywKLSAgICAgIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYx
MywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwKLSAgICAgIHYyMCwgdjIxLCB2MjIsIHYy
MywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwgdjMzLAotICAg
ICAgdjM0LCB2MzUsIHYzNiwgdjM3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwg
VDM2LCBUMzcsIFQzOD4gVmFsdWVzKFQxIHYxLCBUMiB2MiwKLSAgICBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYx
MiwKLSAgICBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLAotICAgIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQy
NCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsCi0gICAgVDI5IHYyOSwg
VDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2
IHYzNiwKLSAgICBUMzcgdjM3LCBUMzggdjM4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVB
cnJheTM4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAg
ICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzg+KHYxLCB2MiwKLSAgICAgIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywg
djE4LAotICAgICAgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywg
djI4LCB2MjksIHYzMCwgdjMxLCB2MzIsCi0gICAgICB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywg
djM4KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1l
IFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBl
bmFtZSBUMzgsIHR5cGVuYW1lIFQzOT4KLWludGVybmFsOjpWYWx1ZUFycmF5Mzk8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzk+IFZhbHVlcyhUMSB2MSwgVDIgdjIsCi0gICAgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsCi0gICAgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwKLSAgICBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LAotICAgIFQyOSB2Mjks
IFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQz
NiB2MzYsCi0gICAgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSkgewotICByZXR1cm4gaW50ZXJu
YWw6OlZhbHVlQXJyYXkzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+KHYxLAotICAgICAg
djIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwg
djE1LCB2MTYsIHYxNywKLSAgICAgIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwg
djI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLAotICAgICAgdjMyLCB2MzMsIHYzNCwg
djM1LCB2MzYsIHYzNywgdjM4LCB2MzkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2
LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDA+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDA+IFZh
bHVlcyhUMSB2MSwKLSAgICBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3
LCBUOCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsCi0gICAgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwKLSAg
ICBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBU
MjYgdjI2LCBUMjcgdjI3LAotICAgIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsCi0gICAgVDM2IHYzNiwgVDM3IHYz
NywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVl
QXJyYXk0MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAg
ICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDA+KHYxLCB2Miwg
djMsIHY0LCB2NSwgdjYsIHY3LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LCB2MTUs
Ci0gICAgICB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUs
IHYyNiwgdjI3LCB2MjgsIHYyOSwKLSAgICAgIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUs
IHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MT4KLWludGVybmFsOjpWYWx1ZUFycmF5NDE8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzksIFQ0MCwKLSAgICBUNDE+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQx
MSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2
MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIz
IHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBU
MjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgIFQzNCB2MzQs
IFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0
MSB2NDEpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDE8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDE+KHYxLCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3
LCB2OCwgdjksIHYxMCwgdjExLCB2MTIsIHYxMywgdjE0LAotICAgICAgdjE1LCB2MTYsIHYxNywg
djE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsCi0g
ICAgICB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwgdjM3LCB2MzgsIHYz
OSwgdjQwLCB2NDEpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQyPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICBUNDI+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQz
IHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsCi0gICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgIFQz
NCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2
NDAsIFQ0MSB2NDEsCi0gICAgVDQyIHY0MikgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJy
YXk0MjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAg
IFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyPih2
MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsCi0g
ICAgICB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYy
NCwgdjI1LCB2MjYsIHYyNywKLSAgICAgIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYz
NCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwgdjQxLAotICAgICAgdjQyKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
LCB0eXBlbmFtZSBUNDM+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQzPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgIFQ0Mz4gVmFsdWVzKFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgVDEwIHYx
MCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwg
VDE3IHYxNywKLSAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIy
LCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2
MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgVDM0
IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0
MCwgVDQxIHY0MSwKLSAgICBUNDIgdjQyLCBUNDMgdjQzKSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6
VmFsdWVBcnJheTQzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwgVDQx
LCBUNDIsIFQ0Mz4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEs
IHYxMiwKLSAgICAgIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEs
IHYyMiwgdjIzLCB2MjQsIHYyNSwgdjI2LAotICAgICAgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEs
IHYzMiwgdjMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LCB2NDAsCi0gICAgICB2NDEs
IHY0MiwgdjQzKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlw
ZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5
cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlw
ZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgs
IHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUg
VDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVu
YW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5h
bWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5
cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3
LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1l
IFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLWludGVybmFs
OjpWYWx1ZUFycmF5NDQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0
MywKLSAgICBUNDQ+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2
IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwg
VDI1IHYyNSwKLSAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMw
LCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2
MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgVDQy
IHY0MiwgVDQzIHY0MywgVDQ0IHY0NCkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0
NDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQx
MiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksCi0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMs
IFQ0ND4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwgdjcsIHY4LCB2OSwgdjEwLCB2MTEsCi0gICAg
ICB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwg
djIzLCB2MjQsIHYyNSwKLSAgICAgIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLCB2MzQsIHYzNSwgdjM2LCB2MzcsIHYzOCwgdjM5LAotICAgICAgdjQwLCB2NDEsIHY0Miwg
djQzLCB2NDQpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBU
NDU+Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
IFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDU+IFZhbHVlcyhUMSB2MSwgVDIgdjIsIFQzIHYz
LCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsCi0gICAgVDkgdjksIFQxMCB2MTAs
IFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsCi0g
ICAgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwg
VDIzIHYyMywgVDI0IHYyNCwKLSAgICBUMjUgdjI1LCBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4
LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLAotICAgIFQzMyB2MzMsIFQzNCB2
MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAs
Ci0gICAgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1IHY0NSkgewotICBy
ZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXk0NTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwKLSAgICAgIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LAotICAgICAgVDI2LCBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
Ci0gICAgICBUNDAsIFQ0MSwgVDQyLCBUNDMsIFQ0NCwgVDQ1Pih2MSwgdjIsIHYzLCB2NCwgdjUs
IHY2LCB2NywgdjgsIHY5LCB2MTAsCi0gICAgICB2MTEsIHYxMiwgdjEzLCB2MTQsIHYxNSwgdjE2
LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYyNCwKLSAgICAgIHYyNSwgdjI2
LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYzNCwgdjM1LCB2MzYsIHYzNywg
djM4LAotICAgICAgdjM5LCB2NDAsIHY0MSwgdjQyLCB2NDMsIHY0NCwgdjQ1KTsKLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5
cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3
LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1l
IFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUg
VDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVu
YW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0
eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0
Nj4KLWludGVybmFsOjpWYWx1ZUFycmF5NDY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgVDI5
LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwg
VDQxLCBUNDIsIFQ0MywKLSAgICBUNDQsIFQ0NSwgVDQ2PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAg
djEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQx
NiB2MTYsIFQxNyB2MTcsIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2
MjIsIFQyMyB2MjMsCi0gICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4
IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyLCBUMzMgdjMzLCBU
MzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LAotICAg
IFQ0MCB2NDAsIFQ0MSB2NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0
NiB2NDYpIHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDY8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAg
IFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2Pih2
MSwgdjIsIHYzLCB2NCwgdjUsIHY2LCB2NywgdjgsIHY5LAotICAgICAgdjEwLCB2MTEsIHYxMiwg
djEzLCB2MTQsIHYxNSwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsCi0g
ICAgICB2MjQsIHYyNSwgdjI2LCB2MjcsIHYyOCwgdjI5LCB2MzAsIHYzMSwgdjMyLCB2MzMsIHYz
NCwgdjM1LCB2MzYsIHYzNywKLSAgICAgIHYzOCwgdjM5LCB2NDAsIHY0MSwgdjQyLCB2NDMsIHY0
NCwgdjQ1LCB2NDYpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFt
ZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlw
ZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBl
bmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywg
dHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBU
MzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5h
bWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFt
ZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDc+Ci1pbnRlcm5hbDo6VmFsdWVB
cnJheTQ3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAg
VDQ0LCBUNDUsIFQ0NiwgVDQ3PiBWYWx1ZXMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1
IHY1LCBUNiB2NiwgVDcgdjcsCi0gICAgVDggdjgsIFQ5IHY5LCBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LAotICAgIFQxNiB2MTYsIFQxNyB2MTcs
IFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsCi0g
ICAgVDI0IHYyNCwgVDI1IHYyNSwgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwg
VDMwIHYzMCwgVDMxIHYzMSwKLSAgICBUMzIgdjMyLCBUMzMgdjMzLCBUMzQgdjM0LCBUMzUgdjM1
LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LAotICAgIFQ0MCB2NDAsIFQ0MSB2
NDEsIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYsIFQ0NyB2NDcp
IHsKLSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NDc8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwg
VDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQz
OCwgVDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDc+KHYx
LCB2MiwgdjMsIHY0LCB2NSwgdjYsIHY3LCB2OCwKLSAgICAgIHY5LCB2MTAsIHYxMSwgdjEyLCB2
MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywKLSAg
ICAgIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0
LCB2MzUsIHYzNiwgdjM3LAotICAgICAgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0
LCB2NDUsIHY0NiwgdjQ3KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBU
MzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5h
bWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5
cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlw
ZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDg+
Ci1pbnRlcm5hbDo6VmFsdWVBcnJheTQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwg
VDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0
MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+IFZhbHVlcyhUMSB2MSwg
VDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LAotICAgIFQ3IHY3LCBUOCB2OCwgVDkg
djksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUs
Ci0gICAgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywKLSAgICBUMjQgdjI0LCBUMjUgdjI1LCBUMjYgdjI2LCBUMjcg
djI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLAotICAgIFQzMiB2MzIsIFQz
MyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksCi0gICAgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0NCwgVDQ1
IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0NywKLSAgICBUNDggdjQ4KSB7Ci0gIHJldHVybiBpbnRlcm5h
bDo6VmFsdWVBcnJheTQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwKLSAgICAgIFQ0MCwg
VDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDg+KHYxLCB2MiwgdjMsIHY0LCB2
NSwgdjYsIHY3LAotICAgICAgdjgsIHY5LCB2MTAsIHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2
MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsCi0gICAgICB2MjMsIHYyNCwgdjI1LCB2
MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2MzIsIHYzMywgdjM0LCB2MzUsIHYzNiwKLSAg
ICAgIHYzNywgdjM4LCB2MzksIHY0MCwgdjQxLCB2NDIsIHY0MywgdjQ0LCB2NDUsIHY0NiwgdjQ3
LCB2NDgpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUs
Ci0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUg
VDQ5PgotaW50ZXJuYWw6OlZhbHVlQXJyYXk0OTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBU
MjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQw
LCBUNDEsIFQ0MiwgVDQzLAotICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IFZhbHVl
cyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsCi0gICAgVDYgdjYsIFQ3IHY3LCBU
OCB2OCwgVDkgdjksIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQs
Ci0gICAgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwKLSAgICBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LCBUMjYg
djI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLAotICAgIFQzMSB2MzEsIFQz
MiB2MzIsIFQzMyB2MzMsIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2
MzgsCi0gICAgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwgVDQyIHY0MiwgVDQzIHY0MywgVDQ0
IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NiwKLSAgICBUNDcgdjQ3LCBUNDggdjQ4LCBUNDkgdjQ5KSB7
Ci0gIHJldHVybiBpbnRlcm5hbDo6VmFsdWVBcnJheTQ5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLAotICAgICAgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjYsIFQy
NywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgs
IFQzOSwKLSAgICAgIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBUNDgs
IFQ0OT4odjEsIHYyLCB2MywgdjQsIHY1LCB2NiwKLSAgICAgIHY3LCB2OCwgdjksIHYxMCwgdjEx
LCB2MTIsIHYxMywgdjE0LCB2MTUsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsCi0gICAg
ICB2MjIsIHYyMywgdjI0LCB2MjUsIHYyNiwgdjI3LCB2MjgsIHYyOSwgdjMwLCB2MzEsIHYzMiwg
djMzLCB2MzQsIHYzNSwKLSAgICAgIHYzNiwgdjM3LCB2MzgsIHYzOSwgdjQwLCB2NDEsIHY0Miwg
djQzLCB2NDQsIHY0NSwgdjQ2LCB2NDcsIHY0OCwgdjQ5KTsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUg
VDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUwPgotaW50ZXJuYWw6
OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsCi0gICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICBUMjksIFQzMCwgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQz
LAotICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gVmFsdWVzKFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LAotICAgIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywKLSAgICBUMTQgdjE0LCBUMTUg
djE1LCBUMTYgdjE2LCBUMTcgdjE3LCBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIx
LAotICAgIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsIFQyNiB2MjYsIFQyNyB2
MjcsIFQyOCB2MjgsIFQyOSB2MjksCi0gICAgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMz
IHYzMywgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywKLSAgICBUMzggdjM4LCBU
MzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLCBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBUNDUg
djQ1LAotICAgIFQ0NiB2NDYsIFQ0NyB2NDcsIFQ0OCB2NDgsIFQ0OSB2NDksIFQ1MCB2NTApIHsK
LSAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5NTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsCi0gICAgICBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwKLSAgICAgIFQyNiwgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LAotICAgICAgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwg
VDQ5LCBUNTA+KHYxLCB2MiwgdjMsIHY0LAotICAgICAgdjUsIHY2LCB2NywgdjgsIHY5LCB2MTAs
IHYxMSwgdjEyLCB2MTMsIHYxNCwgdjE1LCB2MTYsIHYxNywgdjE4LCB2MTksCi0gICAgICB2MjAs
IHYyMSwgdjIyLCB2MjMsIHYyNCwgdjI1LCB2MjYsIHYyNywgdjI4LCB2MjksIHYzMCwgdjMxLCB2
MzIsIHYzMywKLSAgICAgIHYzNCwgdjM1LCB2MzYsIHYzNywgdjM4LCB2MzksIHY0MCwgdjQxLCB2
NDIsIHY0MywgdjQ0LCB2NDUsIHY0NiwgdjQ3LAotICAgICAgdjQ4LCB2NDksIHY1MCk7Cit0ZW1w
bGF0ZSA8dHlwZW5hbWUuLi4gVD4KK2ludGVybmFsOjpWYWx1ZUFycmF5PFQuLi4+IFZhbHVlcyhU
Li4uIHYpIHsKKyAgcmV0dXJuIGludGVybmFsOjpWYWx1ZUFycmF5PFQuLi4+KHN0ZDo6bW92ZSh2
KS4uLik7CiB9CiAKIC8vIEJvb2woKSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyB3aXRoIHBhcmFt
ZXRlcnMgaW4gYSBzZXQgb2YgKGZhbHNlLCB0cnVlKS4KQEAgLTEyMDEsNyArMzQzLDcgQEAgaW50
ZXJuYWw6OlZhbHVlQXJyYXk1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsCiAvLyBvZiBtdWx0aXBsZSBmbGFncyBjYW4gYmUgdGVzdGVkIHdo
ZW4gc2V2ZXJhbCBCb29sKCkncyBhcmUgY29tYmluZWQgdXNpbmcKIC8vIENvbWJpbmUoKSBmdW5j
dGlvbi4KIC8vCi0vLyBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgYWxsIHRlc3RzIGluIHRoZSB0
ZXN0IGNhc2UgRmxhZ0RlcGVuZGVudFRlc3QKKy8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBh
bGwgdGVzdHMgaW4gdGhlIHRlc3Qgc3VpdGUgRmxhZ0RlcGVuZGVudFRlc3QKIC8vIHdpbGwgYmUg
aW5zdGFudGlhdGVkIHR3aWNlIHdpdGggcGFyYW1ldGVycyBmYWxzZSBhbmQgdHJ1ZS4KIC8vCiAv
LyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFt
PGJvb2w+IHsKQEAgLTEyMDksMTMgKzM1MSwxMiBAQCBpbnRlcm5hbDo6VmFsdWVBcnJheTUwPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKIC8v
ICAgICBleHRlcm5hbF9mbGFnID0gR2V0UGFyYW0oKTsKIC8vICAgfQogLy8gfQotLy8gSU5TVEFO
VElBVEVfVEVTVF9DQVNFX1AoQm9vbFNlcXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwgQm9vbCgp
KTsKKy8vIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChCb29sU2VxdWVuY2UsIEZsYWdEZXBlbmRl
bnRUZXN0LCBCb29sKCkpOwogLy8KIGlubGluZSBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ym9v
bD4gQm9vbCgpIHsKICAgcmV0dXJuIFZhbHVlcyhmYWxzZSwgdHJ1ZSk7CiB9CiAKLSMgaWYgR1RF
U1RfSEFTX0NPTUJJTkUKIC8vIENvbWJpbmUoKSBhbGxvd3MgdGhlIHVzZXIgdG8gY29tYmluZSB0
d28gb3IgbW9yZSBzZXF1ZW5jZXMgdG8gcHJvZHVjZQogLy8gdmFsdWVzIG9mIGEgQ2FydGVzaWFu
IHByb2R1Y3Qgb2YgdGhvc2Ugc2VxdWVuY2VzJyBlbGVtZW50cy4KIC8vCkBAIC0xMjI0LDE4NCAr
MzY1LDgyIEBAIGlubGluZSBpbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8Ym9vbD4gQm9vbCgpIHsK
IC8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVt
ZW50cyBjb21pbmcgZnJvbQogLy8gICAgIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiBlbGVtZW50
cyBmcm9tIHRoZSBzZXF1ZW5jZXMgZ2VuZXJhdGVkIGJ5CiAvLyAgICAgZ2VuMSwgZ2VuMiwgLi4u
LCBnZW5OLiBUaGUgc2VxdWVuY2UgZWxlbWVudHMgd2lsbCBoYXZlIGEgdHlwZSBvZgotLy8gICAg
IHR1cGxlPFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAuLi4sIFROIGFyZSB0aGUgdHlw
ZXMKKy8vICAgICBzdGQ6OnR1cGxlPFQxLCBUMiwgLi4uLCBUTj4gd2hlcmUgVDEsIFQyLCAuLi4s
IFROIGFyZSB0aGUgdHlwZXMKIC8vICAgICBvZiBlbGVtZW50cyBmcm9tIHNlcXVlbmNlcyBwcm9k
dWNlcyBieSBnZW4xLCBnZW4yLCAuLi4sIGdlbk4uCiAvLwotLy8gQ29tYmluZSBjYW4gaGF2ZSB1
cCB0byAxMCBhcmd1bWVudHMuIFRoaXMgbnVtYmVyIGlzIGN1cnJlbnRseSBsaW1pdGVkCi0vLyBi
eSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHR1cGxlIGltcGxlbWVudGF0
aW9uIHVzZWQgYnkgR29vZ2xlCi0vLyBUZXN0LgotLy8KIC8vIEV4YW1wbGU6CiAvLwotLy8gVGhp
cyB3aWxsIGluc3RhbnRpYXRlIHRlc3RzIGluIHRlc3QgY2FzZSBBbmltYWxUZXN0IGVhY2ggb25l
IHdpdGgKKy8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0ZXN0cyBpbiB0ZXN0IHN1aXRlIEFuaW1h
bFRlc3QgZWFjaCBvbmUgd2l0aAogLy8gdGhlIHBhcmFtZXRlciB2YWx1ZXMgdHVwbGUoImNhdCIs
IEJMQUNLKSwgdHVwbGUoImNhdCIsIFdISVRFKSwKIC8vIHR1cGxlKCJkb2ciLCBCTEFDSyksIGFu
ZCB0dXBsZSgiZG9nIiwgV0hJVEUpOgogLy8KIC8vIGVudW0gQ29sb3IgeyBCTEFDSywgR1JBWSwg
V0hJVEUgfTsKIC8vIGNsYXNzIEFuaW1hbFRlc3QKLS8vICAgICA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0V2l0aFBhcmFtPHR1cGxlPGNvbnN0IGNoYXIqLCBDb2xvcj4gPiB7Li4ufTsKKy8vICAgICA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6dHVwbGU8Y29uc3QgY2hhciosIENv
bG9yPiA+IHsuLi59OwogLy8KIC8vIFRFU1RfUChBbmltYWxUZXN0LCBBbmltYWxMb29rc05pY2Up
IHsuLi59CiAvLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5pbWFsVmFyaWF0aW9ucywg
QW5pbWFsVGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmUoVmFsdWVzKCJj
YXQiLCAiZG9nIiksCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhC
TEFDSywgV0hJVEUpKSk7CisvLyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQW5pbWFsVmFyaWF0
aW9ucywgQW5pbWFsVGVzdCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5lKFZh
bHVlcygiY2F0IiwgImRvZyIpLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKEJMQUNLLCBXSElURSkpKTsKIC8vCiAvLyBUaGlzIHdpbGwgaW5zdGFudGlhdGUgdGVz
dHMgaW4gRmxhZ0RlcGVuZGVudFRlc3Qgd2l0aCBhbGwgdmFyaWF0aW9ucyBvZiB0d28KIC8vIEJv
b2xlYW4gZmxhZ3M6CiAvLwogLy8gY2xhc3MgRmxhZ0RlcGVuZGVudFRlc3QKLS8vICAgICA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHR1cGxlPGJvb2wsIGJvb2w+ID4geworLy8gICAg
IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjp0dXBsZTxib29sLCBib29sPiA+
IHsKIC8vICAgdmlydHVhbCB2b2lkIFNldFVwKCkgewogLy8gICAgIC8vIEFzc2lnbnMgZXh0ZXJu
YWxfZmxhZ18xIGFuZCBleHRlcm5hbF9mbGFnXzIgdmFsdWVzIGZyb20gdGhlIHR1cGxlLgotLy8g
ICAgIHRpZShleHRlcm5hbF9mbGFnXzEsIGV4dGVybmFsX2ZsYWdfMikgPSBHZXRQYXJhbSgpOwor
Ly8gICAgIHN0ZDo6dGllKGV4dGVybmFsX2ZsYWdfMSwgZXh0ZXJuYWxfZmxhZ18yKSA9IEdldFBh
cmFtKCk7CiAvLyAgIH0KIC8vIH07CiAvLwogLy8gVEVTVF9QKEZsYWdEZXBlbmRlbnRUZXN0LCBU
ZXN0RmVhdHVyZTEpIHsKIC8vICAgLy8gVGVzdCB5b3VyIGNvZGUgdXNpbmcgZXh0ZXJuYWxfZmxh
Z18xIGFuZCBleHRlcm5hbF9mbGFnXzIgaGVyZS4KIC8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKFR3b0Jvb2xTZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRlc3QsCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICBDb21iaW5lKEJvb2woKSwgQm9vbCgpKSk7Ci0vLwotdGVtcGxhdGUgPHR5
cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjI+Ci1pbnRlcm5hbDo6Q2FydGVz
aWFuUHJvZHVjdEhvbGRlcjI8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMj4gQ29tYmluZSgKLSAgICBj
b25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIpIHsKLSAgcmV0dXJuIGlu
dGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMjxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyPigK
LSAgICAgIGcxLCBnMik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBl
bmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzPgotaW50ZXJuYWw6OkNhcnRlc2lh
blByb2R1Y3RIb2xkZXIzPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjM+IENvbWJp
bmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25z
dCBHZW5lcmF0b3IzJiBnMykgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RI
b2xkZXIzPEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjM+KAotICAgICAgZzEsIGcy
LCBnMyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5l
cmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQ+Ci1p
bnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjQ8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwg
R2VuZXJhdG9yMywKLSAgICBHZW5lcmF0b3I0PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRv
cjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAg
ICAgIGNvbnN0IEdlbmVyYXRvcjQmIGc0KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFu
UHJvZHVjdEhvbGRlcjQ8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICAg
IEdlbmVyYXRvcjQ+KAotICAgICAgZzEsIGcyLCBnMywgZzQpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgR2VuZXJhdG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9y
MywKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1PgotaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI1PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVy
YXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNT4gQ29tYmluZSgKLSAgICBjb25zdCBH
ZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsIGNvbnN0IEdlbmVyYXRvcjMmIGcz
LAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9yNSYgZzUpIHsK
LSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNTxHZW5lcmF0b3IxLCBH
ZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNT4oCi0g
ICAgICBnMSwgZzIsIGczLCBnNCwgZzUpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgR2VuZXJh
dG9yMSwgdHlwZW5hbWUgR2VuZXJhdG9yMiwgdHlwZW5hbWUgR2VuZXJhdG9yMywKLSAgICB0eXBl
bmFtZSBHZW5lcmF0b3I0LCB0eXBlbmFtZSBHZW5lcmF0b3I1LCB0eXBlbmFtZSBHZW5lcmF0b3I2
PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXI2PEdlbmVyYXRvcjEsIEdlbmVyYXRv
cjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNj4g
Q29tYmluZSgKLSAgICBjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIs
IGNvbnN0IEdlbmVyYXRvcjMmIGczLAotICAgICAgICBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29u
c3QgR2VuZXJhdG9yNSYgZzUsIGNvbnN0IEdlbmVyYXRvcjYmIGc2KSB7Ci0gIHJldHVybiBpbnRl
cm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjY8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2Vu
ZXJhdG9yMywKLSAgICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRvcjY+KAotICAg
ICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNik7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5l
cmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3IyLCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5
cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1lIEdlbmVyYXRvcjUsIHR5cGVuYW1lIEdlbmVyYXRv
cjYsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNz4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0
SG9sZGVyNzxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRv
cjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjc+IENvbWJpbmUoCi0gICAgY29u
c3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5lcmF0b3Iz
JiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1
LCBjb25zdCBHZW5lcmF0b3I2JiBnNiwKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNyYgZzcpIHsK
LSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNzxHZW5lcmF0b3IxLCBH
ZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2Vu
ZXJhdG9yNiwgR2VuZXJhdG9yNz4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBnNyk7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBHZW5lcmF0b3IxLCB0eXBlbmFtZSBHZW5lcmF0b3Iy
LCB0eXBlbmFtZSBHZW5lcmF0b3IzLAotICAgIHR5cGVuYW1lIEdlbmVyYXRvcjQsIHR5cGVuYW1l
IEdlbmVyYXRvcjUsIHR5cGVuYW1lIEdlbmVyYXRvcjYsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9y
NywgdHlwZW5hbWUgR2VuZXJhdG9yOD4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
ODxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQsIEdl
bmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjcsIEdlbmVyYXRvcjg+IENvbWJpbmUoCi0g
ICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLCBjb25zdCBHZW5l
cmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRv
cjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2JiBnNiwKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNyYg
ZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4KSB7Ci0gIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFu
UHJvZHVjdEhvbGRlcjg8R2VuZXJhdG9yMSwgR2VuZXJhdG9yMiwgR2VuZXJhdG9yMywKLSAgICAg
IEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVyYXRvcjYsIEdlbmVyYXRvcjcsIEdlbmVyYXRv
cjg+KAotICAgICAgZzEsIGcyLCBnMywgZzQsIGc1LCBnNiwgZzcsIGc4KTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVuYW1lIEdl
bmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJhdG9yNSwg
dHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3LCB0eXBlbmFtZSBH
ZW5lcmF0b3I4LCB0eXBlbmFtZSBHZW5lcmF0b3I5PgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1
Y3RIb2xkZXI5PEdlbmVyYXRvcjEsIEdlbmVyYXRvcjIsIEdlbmVyYXRvcjMsCi0gICAgR2VuZXJh
dG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwKLSAg
ICBHZW5lcmF0b3I5PiBDb21iaW5lKAotICAgIGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBH
ZW5lcmF0b3IyJiBnMiwgY29uc3QgR2VuZXJhdG9yMyYgZzMsCi0gICAgICAgIGNvbnN0IEdlbmVy
YXRvcjQmIGc0LCBjb25zdCBHZW5lcmF0b3I1JiBnNSwgY29uc3QgR2VuZXJhdG9yNiYgZzYsCi0g
ICAgICAgIGNvbnN0IEdlbmVyYXRvcjcmIGc3LCBjb25zdCBHZW5lcmF0b3I4JiBnOCwgY29uc3Qg
R2VuZXJhdG9yOSYgZzkpIHsKLSAgcmV0dXJuIGludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9s
ZGVyOTxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgICAgR2VuZXJhdG9y
NCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJhdG9yNywgR2VuZXJhdG9yOCwgR2VuZXJh
dG9yOT4oCi0gICAgICBnMSwgZzIsIGczLCBnNCwgZzUsIGc2LCBnNywgZzgsIGc5KTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIEdlbmVyYXRvcjEsIHR5cGVuYW1lIEdlbmVyYXRvcjIsIHR5cGVu
YW1lIEdlbmVyYXRvcjMsCi0gICAgdHlwZW5hbWUgR2VuZXJhdG9yNCwgdHlwZW5hbWUgR2VuZXJh
dG9yNSwgdHlwZW5hbWUgR2VuZXJhdG9yNiwKLSAgICB0eXBlbmFtZSBHZW5lcmF0b3I3LCB0eXBl
bmFtZSBHZW5lcmF0b3I4LCB0eXBlbmFtZSBHZW5lcmF0b3I5LAotICAgIHR5cGVuYW1lIEdlbmVy
YXRvcjEwPgotaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIxMDxHZW5lcmF0b3IxLCBH
ZW5lcmF0b3IyLCBHZW5lcmF0b3IzLAotICAgIEdlbmVyYXRvcjQsIEdlbmVyYXRvcjUsIEdlbmVy
YXRvcjYsIEdlbmVyYXRvcjcsIEdlbmVyYXRvcjgsIEdlbmVyYXRvcjksCi0gICAgR2VuZXJhdG9y
MTA+IENvbWJpbmUoCi0gICAgY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjIm
IGcyLCBjb25zdCBHZW5lcmF0b3IzJiBnMywKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yNCYgZzQs
IGNvbnN0IEdlbmVyYXRvcjUmIGc1LCBjb25zdCBHZW5lcmF0b3I2JiBnNiwKLSAgICAgICAgY29u
c3QgR2VuZXJhdG9yNyYgZzcsIGNvbnN0IEdlbmVyYXRvcjgmIGc4LCBjb25zdCBHZW5lcmF0b3I5
JiBnOSwKLSAgICAgICAgY29uc3QgR2VuZXJhdG9yMTAmIGcxMCkgewotICByZXR1cm4gaW50ZXJu
YWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIxMDxHZW5lcmF0b3IxLCBHZW5lcmF0b3IyLCBHZW5l
cmF0b3IzLAotICAgICAgR2VuZXJhdG9yNCwgR2VuZXJhdG9yNSwgR2VuZXJhdG9yNiwgR2VuZXJh
dG9yNywgR2VuZXJhdG9yOCwgR2VuZXJhdG9yOSwKLSAgICAgIEdlbmVyYXRvcjEwPigKLSAgICAg
IGcxLCBnMiwgZzMsIGc0LCBnNSwgZzYsIGc3LCBnOCwgZzksIGcxMCk7Ci19Ci0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfQ09NQklORQotCi0jIGRlZmluZSBURVNUX1AodGVzdF9jYXNlX25hbWUsIHRl
c3RfbmFtZSkgXAotICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1l
LCB0ZXN0X25hbWUpIFwKLSAgICAgIDogcHVibGljIHRlc3RfY2FzZV9uYW1lIHsgXAotICAgcHVi
bGljOiBcCi0gICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9u
YW1lKSgpIHt9IFwKLSAgICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHkoKTsgXAotICAgcHJpdmF0ZTog
XAotICAgIHN0YXRpYyBpbnQgQWRkVG9SZWdpc3RyeSgpIHsgXAotICAgICAgOjp0ZXN0aW5nOjpV
bml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkuIFwK
LSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xkZXI8dGVzdF9jYXNlX25hbWU+KFwKLSAg
ICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1lLCBcCi0gICAgICAgICAgICAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0gICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19M
SU5FX18pKS0+QWRkVGVzdFBhdHRlcm4oXAotICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1NU
UklOR0lGWV8odGVzdF9jYXNlX25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgR1RFU1Rf
U1RSSU5HSUZZXyh0ZXN0X25hbWUpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgbmV3IDo6dGVz
dGluZzo6aW50ZXJuYWw6OlRlc3RNZXRhRmFjdG9yeTwgXAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpPigpKTsgXAotICAgICAgcmV0dXJuIDA7IFwK
LSAgICB9IFwKLSAgICBzdGF0aWMgaW50IGd0ZXN0X3JlZ2lzdGVyaW5nX2R1bW15XyBHVEVTVF9B
VFRSSUJVVEVfVU5VU0VEXzsgXAotICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
XAotICAgICAgICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25h
bWUpKTsgXAotICB9OyBcCi0gIGludCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9u
YW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSk6Omd0ZXN0X3Jl
Z2lzdGVyaW5nX2R1bW15XyA9IFwKLSAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9j
YXNlX25hbWUsIHRlc3RfbmFtZSk6OkFkZFRvUmVnaXN0cnkoKTsgXAotICB2b2lkIEdURVNUX1RF
U1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5KCkKLQot
Ly8gVGhlIG9wdGlvbmFsIGxhc3QgYXJndW1lbnQgdG8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ag
YWxsb3dzIHRoZSB1c2VyCi0vLyB0byBzcGVjaWZ5IGEgZnVuY3Rpb24gb3IgZnVuY3RvciB0aGF0
IGdlbmVyYXRlcyBjdXN0b20gdGVzdCBuYW1lIHN1ZmZpeGVzCi0vLyBiYXNlZCBvbiB0aGUgdGVz
dCBwYXJhbWV0ZXJzLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBvbmUgYXJndW1lbnQgb2YK
LS8vIHR5cGUgdGVzdGluZzo6VGVzdFBhcmFtSW5mbzxjbGFzcyBQYXJhbVR5cGU+LCBhbmQgcmV0
dXJuIHN0ZDo6c3RyaW5nLgorLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFR3b0Jvb2xTZXF1
ZW5jZSwgRmxhZ0RlcGVuZGVudFRlc3QsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29t
YmluZShCb29sKCksIEJvb2woKSkpOworLy8KK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBHZW5lcmF0
b3I+CitpbnRlcm5hbDo6Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjxHZW5lcmF0b3IuLi4+IENvbWJp
bmUoY29uc3QgR2VuZXJhdG9yJi4uLiBnKSB7CisgIHJldHVybiBpbnRlcm5hbDo6Q2FydGVzaWFu
UHJvZHVjdEhvbGRlcjxHZW5lcmF0b3IuLi4+KGcuLi4pOworfQorCisjZGVmaW5lIFRFU1RfUCh0
ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICBjbGFzcyBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rfc3VpdGVfbmFtZSwg
dGVzdF9uYW1lKSAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDogcHVibGljIHRlc3Rfc3Vp
dGVfbmFtZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICBwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVz
dF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpKCkge30gICAgICAgICAgICAgICAgICAgIFwKKyAgICB2
b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgcHJpdmF0ZTog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBzdGF0aWMgaW50IEFkZFRvUmVnaXN0cnkoKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICA6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgIC0+cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAuR2V0VGVzdFN1aXRlUGF0
dGVybkhvbGRlcjx0ZXN0X3N1aXRlX25hbWU+KCAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8odGVzdF9zdWl0ZV9uYW1lKSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpDb2RlTG9jYXRpb24oX19GSUxFX18sIF9fTElORV9fKSkgICAgICAgICAgIFwKKyAgICAgICAg
ICAtPkFkZFRlc3RQYXR0ZXJuKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8odGVzdF9zdWl0
ZV9uYW1lKSwgR1RFU1RfU1RSSU5HSUZZXyh0ZXN0X25hbWUpLCAgXAorICAgICAgICAgICAgICBu
ZXcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVzdE1ldGFGYWN0b3J5PEdURVNUX1RFU1RfQ0xBU1Nf
TkFNRV8oIFwKKyAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKT4o
KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihfX0ZJTEVfXywgX19MSU5FX18pKTsgICAgICAgICAg
XAorICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
c3RhdGljIGludCBndGVzdF9yZWdpc3RlcmluZ19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNF
RF87ICAgICAgICAgICAgICAgXAorICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8o
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1l
KSk7ICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBpbnQgR1RFU1RfVEVTVF9D
TEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTo6Z3Rlc3RfcmVn
aXN0ZXJpbmdfZHVtbXlfID0gICAgICAgICAgICBcCisgICAgICBHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKTo6QWRkVG9SZWdpc3RyeSgpOyAgICAgXAor
ICB2b2lkIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUp
OjpUZXN0Qm9keSgpCisKKy8vIFRoZSBsYXN0IGFyZ3VtZW50IHRvIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUCBhbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeQorLy8gZ2VuZXJhdG9yIGFuZCBhbiBv
cHRpb25hbCBmdW5jdGlvbiBvciBmdW5jdG9yIHRoYXQgZ2VuZXJhdGVzIGN1c3RvbSB0ZXN0IG5h
bWUKKy8vIHN1ZmZpeGVzIGJhc2VkIG9uIHRoZSB0ZXN0IHBhcmFtZXRlcnMuIFN1Y2ggYSBmdW5j
dGlvbiBvciBmdW5jdG9yIHNob3VsZAorLy8gYWNjZXB0IG9uZSBhcmd1bWVudCBvZiB0eXBlIHRl
c3Rpbmc6OlRlc3RQYXJhbUluZm88Y2xhc3MgUGFyYW1UeXBlPiwgYW5kCisvLyByZXR1cm4gc3Rk
OjpzdHJpbmcuCiAvLwogLy8gdGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSBpcyBhIGJ1
aWx0aW4gdGVzdCBzdWZmaXggZ2VuZXJhdG9yIHRoYXQKIC8vIHJldHVybnMgdGhlIHZhbHVlIG9m
IHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSkuCkBAIC0xNDEwLDI1ICs0NDksNTkg
QEAgaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIxMDxHZW5lcmF0b3IxLCBHZW5lcmF0
b3IyLCBHZW5lcmF0b3IzLAogLy8gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3IgdW5kZXJzY29y
ZS4gQmVjYXVzZSBQcmludFRvU3RyaW5nIGFkZHMgcXVvdGVzCiAvLyB0byBzdGQ6OnN0cmluZyBh
bmQgQyBzdHJpbmdzLCBpdCB3b24ndCB3b3JrIGZvciB0aGVzZSB0eXBlcy4KIAotIyBkZWZpbmUg
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AocHJlZml4LCB0ZXN0X2Nhc2VfbmFtZSwgZ2VuZXJhdG9y
LCAuLi4pIFwKLSAgc3RhdGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHRl
c3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+IFwKLSAgICAgIGd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nh
c2VfbmFtZSMjX0V2YWxHZW5lcmF0b3JfKCkgeyByZXR1cm4gZ2VuZXJhdG9yOyB9IFwKLSAgc3Rh
dGljIDo6c3RkOjpzdHJpbmcgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdl
bmVyYXRlTmFtZV8oIFwKLSAgICAgIGNvbnN0IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzx0ZXN0
X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiYgaW5mbykgeyBcCi0gICAgcmV0dXJuIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkdldFBhcmFtTmFtZUdlbjx0ZXN0X2Nhc2VfbmFtZTo6UGFyYW1UeXBlPiBcCi0g
ICAgICAgIChfX1ZBX0FSR1NfXykoaW5mbyk7IFwKLSAgfSBcCi0gIHN0YXRpYyBpbnQgZ3Rlc3Rf
IyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfZHVtbXlfIEdURVNUX0FUVFJJQlVURV9VTlVTRURf
ID0gXAotICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+cGFyYW1ldGVy
aXplZF90ZXN0X3JlZ2lzdHJ5KCkuIFwKLSAgICAgICAgICBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xk
ZXI8dGVzdF9jYXNlX25hbWU+KFwKLSAgICAgICAgICAgICAgI3Rlc3RfY2FzZV9uYW1lLCBcCi0g
ICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihcCi0gICAgICAg
ICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pKS0+QWRkVGVzdENhc2VJbnN0YW50aWF0aW9u
KFwKLSAgICAgICAgICAgICAgICAgICAgICAjcHJlZml4LCBcCi0gICAgICAgICAgICAgICAgICAg
ICAgJmd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX0V2YWxHZW5lcmF0b3JfLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgJmd0ZXN0XyMjcHJlZml4IyN0ZXN0X2Nhc2VfbmFtZSMjX0V2
YWxHZW5lcmF0ZU5hbWVfLCBcCi0gICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElO
RV9fKQorI2RlZmluZSBHVEVTVF9FWFBBTkRfKGFyZykgYXJnCisjZGVmaW5lIEdURVNUX0dFVF9G
SVJTVF8oZmlyc3QsIC4uLikgZmlyc3QKKyNkZWZpbmUgR1RFU1RfR0VUX1NFQ09ORF8oZmlyc3Qs
IHNlY29uZCwgLi4uKSBzZWNvbmQKKworI2RlZmluZSBJTlNUQU5USUFURV9URVNUX1NVSVRFX1Ao
cHJlZml4LCB0ZXN0X3N1aXRlX25hbWUsIC4uLikgICAgICAgICAgICAgICAgXAorICBzdGF0aWMg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8dGVzdF9zdWl0ZV9uYW1lOjpQYXJh
bVR5cGU+ICAgICAgXAorICAgICAgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rfc3VpdGVfbmFtZSMjX0V2
YWxHZW5lcmF0b3JfKCkgeyAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBHVEVTVF9F
WFBBTkRfKEdURVNUX0dFVF9GSVJTVF8oX19WQV9BUkdTX18sIERVTU1ZX1BBUkFNXykpOyAgICAg
ICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWMgOjpzdGQ6OnN0cmluZyBndGVz
dF8jI3ByZWZpeCMjdGVzdF9zdWl0ZV9uYW1lIyNfRXZhbEdlbmVyYXRlTmFtZV8oICAgXAorICAg
ICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHRlc3Rfc3VpdGVfbmFtZTo6UGFyYW1U
eXBlPiYgaW5mbykgeyAgICAgXAorICAgIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNG
YWxzZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6VGVzdE5vdEVtcHR5KEdURVNUX0VYUEFORF8oR1RFU1RfR0VUX1NFQ09O
RF8oICAgICAgXAorICAgICAgICAgIF9fVkFfQVJHU19fLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIDo6dGVzdGluZzo6
aW50ZXJuYWw6OkRlZmF1bHRQYXJhbU5hbWU8dGVzdF9zdWl0ZV9uYW1lOjpQYXJhbVR5cGU+LCAg
XAorICAgICAgICAgIERVTU1ZX1BBUkFNXykpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgYXV0byB0ID0gc3RkOjptYWtlX3R1cGxl
KF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OnR1cGxlX3NpemU8ZGVjbHR5cGUodCk+Ojp2YWx1ZSA8PSAyLCAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAiVG9vIE1hbnkgQXJncyEiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIHJldHVybiAoKEdURVNUX0VYUEFORF8oR1RFU1RfR0VUX1NFQ09ORF8oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX1ZBX0FSR1NfXywgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWZhdWx0UGFyYW1OYW1lPHRlc3Rfc3VpdGVf
bmFtZTo6UGFyYW1UeXBlPiwgICAgXAorICAgICAgICBEVU1NWV9QQVJBTV8pKSkpKGluZm8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICBzdGF0aWMgaW50IGd0ZXN0XyMjcHJlZml4IyN0ZXN0X3N1aXRlX25h
bWUjI19kdW1teV8gICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgR1RFU1RfQVRUUklC
VVRFX1VOVVNFRF8gPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAtPnBhcmFtZXRlcml6
ZWRfdGVzdF9yZWdpc3RyeSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAuR2V0VGVzdFN1aXRlUGF0dGVybkhvbGRlcjx0ZXN0X3N1aXRlX25hbWU+KCAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgR1RFU1RfU1RSSU5HSUZZXyh0
ZXN0X3N1aXRlX25hbWUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVf
XykpICAgICAgXAorICAgICAgICAgICAgICAtPkFkZFRlc3RTdWl0ZUluc3RhbnRpYXRpb24oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgR1RF
U1RfU1RSSU5HSUZZXyhwcmVmaXgpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgICAgICAgJmd0ZXN0XyMjcHJlZml4IyN0ZXN0X3N1aXRlX25hbWUjI19F
dmFsR2VuZXJhdG9yXywgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgJmd0ZXN0XyMjcHJl
Zml4IyN0ZXN0X3N1aXRlX25hbWUjI19FdmFsR2VuZXJhdGVOYW1lXywgICAgICAgXAorICAgICAg
ICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKQorCisKKy8vIEFsbG93IE1hcmtpbmcgYSBQ
YXJhbWV0ZXJpemVkIHRlc3QgY2xhc3MgYXMgbm90IG5lZWRpbmcgdG8gYmUgaW5zdGFudGlhdGVk
LgorI2RlZmluZSBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1Qo
VCkgICAgICAgICAgICAgICAgICAgXAorICBuYW1lc3BhY2UgZ3Rlc3RfZG9fbm90X3VzZV9vdXRz
aWRlX25hbWVzcGFjZV9zY29wZSB7fSAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBjb25z
dCA6OnRlc3Rpbmc6OmludGVybmFsOjpNYXJrQXNJZ25vcmVkIGd0ZXN0X2FsbG93X2lnbm9yZV8j
I1QoIFwKKyAgICAgIEdURVNUX1NUUklOR0lGWV8oVCkpCisKKy8vIExlZ2FjeSBBUEkgaXMgZGVw
cmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXworI2RlZmluZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWNfYXNzZXJ0KDo6dGVz
dGluZzo6aW50ZXJuYWw6Okluc3RhbnRpYXRlVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSwgXAor
ICAgICAgICAgICAgICAgICIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AKKyNlbmRpZiAg
Ly8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKIH0gIC8vIG5hbWVzcGFjZSB0
ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNU
X0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNU
X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0
ZXN0LXBhcmFtLXRlc3QuaC5wdW1wIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9n
dGVzdC9ndGVzdC1wYXJhbS10ZXN0LmgucHVtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjc0ZjJiM2I1NjkzMzAwMTJlODVlZTNjZjRmZDU3ZWIwYjU0MjFkNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaC5wdW1wCisrKyAvZGV2L251bGwKQEAg
LTEsNTAwICswLDAgQEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1h
eGltdW0gbGVuZ3RoIG9mIFZhbHVlcyBhcmd1bWVudHMgd2Ugd2FudCB0byBzdXBwb3J0LgotJHZh
ciBtYXh0dXBsZSA9IDEwICAkJCBNYXhpbXVtIG51bWJlciBvZiBDb21iaW5lIGFyZ3VtZW50cyB3
ZSB3YW50IHRvIHN1cHBvcnQuCi0vLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KLS8vIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0vLwotLy8gTWFjcm9zIGFuZCBmdW5jdGlvbnMgZm9yIGltcGxlbWVudGluZyBwYXJh
bWV0ZXJpemVkIHRlc3RzCi0vLyBpbiBHb29nbGUgQysrIFRlc3RpbmcgYW5kIE1vY2tpbmcgRnJh
bWV3b3JrIChHb29nbGUgVGVzdCkKLS8vCi0vLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEg
U0NSSVBULiAgRE8gTk9UIEVESVQgQlkgSEFORCEKLS8vCi0vLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUEFSQU1fVEVT
VF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BBUkFNX1RFU1RfSF8KLQot
Ci0vLyBWYWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFsbG93IHlvdSB0byB0ZXN0IHlvdXIgY29k
ZSB3aXRoIGRpZmZlcmVudAotLy8gcGFyYW1ldGVycyB3aXRob3V0IHdyaXRpbmcgbXVsdGlwbGUg
Y29waWVzIG9mIHRoZSBzYW1lIHRlc3QuCi0vLwotLy8gSGVyZSBpcyBob3cgeW91IHVzZSB2YWx1
ZS1wYXJhbWV0ZXJpemVkIHRlc3RzOgotCi0jaWYgMAotCi0vLyBUbyB3cml0ZSB2YWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3RzLCBmaXJzdCB5b3Ugc2hvdWxkIGRlZmluZSBhIGZpeHR1cmUKLS8vIGNs
YXNzLiBJdCBpcyB1c3VhbGx5IGRlcml2ZWQgZnJvbSB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPFQ+
IChzZWUgYmVsb3cgZm9yCi0vLyBhbm90aGVyIGluaGVyaXRhbmNlIHNjaGVtZSB0aGF0J3Mgc29t
ZXRpbWVzIHVzZWZ1bCBpbiBtb3JlIGNvbXBsaWNhdGVkCi0vLyBjbGFzcyBoaWVyYXJjaGllcyks
IHdoZXJlIHRoZSB0eXBlIG9mIHlvdXIgcGFyYW1ldGVyIHZhbHVlcy4KLS8vIFRlc3RXaXRoUGFy
YW08VD4gaXMgaXRzZWxmIGRlcml2ZWQgZnJvbSB0ZXN0aW5nOjpUZXN0LiBUIGNhbiBiZSBhbnkK
LS8vIGNvcHlhYmxlIHR5cGUuIElmIGl0J3MgYSByYXcgcG9pbnRlciwgeW91IGFyZSByZXNwb25z
aWJsZSBmb3IgbWFuYWdpbmcgdGhlCi0vLyBsaWZlc3BhbiBvZiB0aGUgcG9pbnRlZCB2YWx1ZXMu
Ci0KLWNsYXNzIEZvb1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGNvbnN0
IGNoYXIqPiB7Ci0gIC8vIFlvdSBjYW4gaW1wbGVtZW50IGFsbCB0aGUgdXN1YWwgY2xhc3MgZml4
dHVyZSBtZW1iZXJzIGhlcmUuCi19OwotCi0vLyBUaGVuLCB1c2UgdGhlIFRFU1RfUCBtYWNybyB0
byBkZWZpbmUgYXMgbWFueSBwYXJhbWV0ZXJpemVkIHRlc3RzCi0vLyBmb3IgdGhpcyBmaXh0dXJl
IGFzIHlvdSB3YW50LiBUaGUgX1Agc3VmZml4IGlzIGZvciAicGFyYW1ldGVyaXplZCIKLS8vIG9y
ICJwYXR0ZXJuIiwgd2hpY2hldmVyIHlvdSBwcmVmZXIgdG8gdGhpbmsuCi0KLVRFU1RfUChGb29U
ZXN0LCBEb2VzQmxhaCkgewotICAvLyBJbnNpZGUgYSB0ZXN0LCBhY2Nlc3MgdGhlIHRlc3QgcGFy
YW1ldGVyIHdpdGggdGhlIEdldFBhcmFtKCkgbWV0aG9kCi0gIC8vIG9mIHRoZSBUZXN0V2l0aFBh
cmFtPFQ+IGNsYXNzOgotICBFWFBFQ1RfVFJVRShmb28uQmxhaChHZXRQYXJhbSgpKSk7Ci0gIC4u
LgotfQotCi1URVNUX1AoRm9vVGVzdCwgSGFzQmxhaEJsYWgpIHsKLSAgLi4uCi19Ci0KLS8vIEZp
bmFsbHksIHlvdSBjYW4gdXNlIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHRvIGluc3RhbnRpYXRl
IHRoZSB0ZXN0Ci0vLyBjYXNlIHdpdGggYW55IHNldCBvZiBwYXJhbWV0ZXJzIHlvdSB3YW50LiBH
b29nbGUgVGVzdCBkZWZpbmVzIGEgbnVtYmVyCi0vLyBvZiBmdW5jdGlvbnMgZm9yIGdlbmVyYXRp
bmcgdGVzdCBwYXJhbWV0ZXJzLiBUaGV5IHJldHVybiB3aGF0IHdlIGNhbGwKLS8vIChzdXJwcmlz
ZSEpIHBhcmFtZXRlciBnZW5lcmF0b3JzLiBIZXJlIGlzIGEgc3VtbWFyeSBvZiB0aGVtLCB3aGlj
aAotLy8gYXJlIGFsbCBpbiB0aGUgdGVzdGluZyBuYW1lc3BhY2U6Ci0vLwotLy8KLS8vICBSYW5n
ZShiZWdpbiwgZW5kIFssIHN0ZXBdKSAtIFlpZWxkcyB2YWx1ZXMge2JlZ2luLCBiZWdpbitzdGVw
LAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4rc3RlcCtzdGVwLCAuLi59
LiBUaGUgdmFsdWVzIGRvIG5vdAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZSBlbmQuIHN0ZXAgZGVmYXVsdHMgdG8gMS4KLS8vICBWYWx1ZXModjEsIHYyLCAuLi4sIHZO
KSAgICAtIFlpZWxkcyB2YWx1ZXMge3YxLCB2MiwgLi4uLCB2Tn0uCi0vLyAgVmFsdWVzSW4oY29u
dGFpbmVyKSAgICAgICAgLSBZaWVsZHMgdmFsdWVzIGZyb20gYSBDLXN0eWxlIGFycmF5LCBhbiBT
VEwKLS8vICBWYWx1ZXNJbihiZWdpbixlbmQpICAgICAgICAgIGNvbnRhaW5lciwgb3IgYW4gaXRl
cmF0b3IgcmFuZ2UgW2JlZ2luLCBlbmQpLgotLy8gIEJvb2woKSAgICAgICAgICAgICAgICAgICAg
IC0gWWllbGRzIHNlcXVlbmNlIHtmYWxzZSwgdHJ1ZX0uCi0vLyAgQ29tYmluZShnMSwgZzIsIC4u
LiwgZ04pICAgLSBZaWVsZHMgYWxsIGNvbWJpbmF0aW9ucyAodGhlIENhcnRlc2lhbiBwcm9kdWN0
Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIG1hdGggc2F2dnkpIG9m
IHRoZSB2YWx1ZXMgZ2VuZXJhdGVkCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
eSB0aGUgTiBnZW5lcmF0b3JzLgotLy8KLS8vIEZvciBtb3JlIGRldGFpbHMsIHNlZSBjb21tZW50
cyBhdCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGJlbG93Ci0vLyBpbiB0aGlz
IGZpbGUuCi0vLwotLy8gVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgd2lsbCBpbnN0YW50aWF0ZSB0
ZXN0cyBmcm9tIHRoZSBGb29UZXN0IHRlc3QgY2FzZQotLy8gZWFjaCB3aXRoIHBhcmFtZXRlciB2
YWx1ZXMgIm1lZW55IiwgIm1pbnkiLCBhbmQgIm1vZSIuCi0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FT
RV9QKEluc3RhbnRpYXRpb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRm9vVGVzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygibWVlbnkiLCAibWlueSIsICJtb2UiKSk7
Ci0KLS8vIFRvIGRpc3Rpbmd1aXNoIGRpZmZlcmVudCBpbnN0YW5jZXMgb2YgdGhlIHBhdHRlcm4s
ICh5ZXMsIHlvdQotLy8gY2FuIGluc3RhbnRpYXRlIGl0IG1vcmUgdGhlbiBvbmNlKSB0aGUgZmly
c3QgYXJndW1lbnQgdG8gdGhlCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyBpcyBh
IHByZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlCi0vLyBhY3R1YWwgdGVzdCBjYXNlIG5h
bWUuIFJlbWVtYmVyIHRvIHBpY2sgdW5pcXVlIHByZWZpeGVzIGZvciBkaWZmZXJlbnQKLS8vIGlu
c3RhbnRpYXRpb25zLiBUaGUgdGVzdHMgZnJvbSB0aGUgaW5zdGFudGlhdGlvbiBhYm92ZSB3aWxs
IGhhdmUKLS8vIHRoZXNlIG5hbWVzOgotLy8KLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5Eb2VzQmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1lL0Zv
b1Rlc3QuRG9lc0JsYWgvMiBmb3IgIm1vZSIKLS8vICAgICogSW5zdGFudGlhdGlvbk5hbWUvRm9v
VGVzdC5IYXNCbGFoQmxhaC8wIGZvciAibWVlbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25OYW1l
L0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMSBmb3IgIm1pbnkiCi0vLyAgICAqIEluc3RhbnRpYXRpb25O
YW1lL0Zvb1Rlc3QuSGFzQmxhaEJsYWgvMiBmb3IgIm1vZSIKLS8vCi0vLyBZb3UgY2FuIHVzZSB0
aGVzZSBuYW1lcyBpbiAtLWd0ZXN0X2ZpbHRlci4KLS8vCi0vLyBUaGlzIHN0YXRlbWVudCB3aWxs
IGluc3RhbnRpYXRlIGFsbCB0ZXN0cyBmcm9tIEZvb1Rlc3QgYWdhaW4sIGVhY2gKLS8vIHdpdGgg
cGFyYW1ldGVyIHZhbHVlcyAiY2F0IiBhbmQgImRvZyI6Ci0KLWNvbnN0IGNoYXIqIHBldHNbXSA9
IHsiY2F0IiwgImRvZyJ9OwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQW5vdGhlckluc3RhbnRp
YXRpb25OYW1lLCBGb29UZXN0LCBWYWx1ZXNJbihwZXRzKSk7Ci0KLS8vIFRoZSB0ZXN0cyBmcm9t
IHRoZSBpbnN0YW50aWF0aW9uIGFib3ZlIHdpbGwgaGF2ZSB0aGVzZSBuYW1lczoKLS8vCi0vLyAg
ICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzAgZm9yICJjYXQi
Ci0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0LkRvZXNCbGFoLzEgZm9y
ICJkb2ciCi0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0Lkhhc0JsYWhC
bGFoLzAgZm9yICJjYXQiCi0vLyAgICAqIEFub3RoZXJJbnN0YW50aWF0aW9uTmFtZS9Gb29UZXN0
Lkhhc0JsYWhCbGFoLzEgZm9yICJkb2ciCi0vLwotLy8gUGxlYXNlIG5vdGUgdGhhdCBJTlNUQU5U
SUFURV9URVNUX0NBU0VfUCB3aWxsIGluc3RhbnRpYXRlIGFsbCB0ZXN0cwotLy8gaW4gdGhlIGdp
dmVuIHRlc3QgY2FzZSwgd2hldGhlciB0aGVpciBkZWZpbml0aW9ucyBjb21lIGJlZm9yZSBvcgot
Ly8gQUZURVIgdGhlIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIHN0YXRlbWVudC4KLS8vCi0vLyBQ
bGVhc2UgYWxzbyBub3RlIHRoYXQgZ2VuZXJhdG9yIGV4cHJlc3Npb25zIChpbmNsdWRpbmcgcGFy
YW1ldGVycyB0byB0aGUKLS8vIGdlbmVyYXRvcnMpIGFyZSBldmFsdWF0ZWQgaW4gSW5pdEdvb2ds
ZVRlc3QoKSwgYWZ0ZXIgbWFpbigpIGhhcyBzdGFydGVkLgotLy8gVGhpcyBhbGxvd3MgdGhlIHVz
ZXIgb24gb25lIGhhbmQsIHRvIGFkanVzdCBnZW5lcmF0b3IgcGFyYW1ldGVycyBpbiBvcmRlcgot
Ly8gdG8gZHluYW1pY2FsbHkgZGV0ZXJtaW5lIGEgc2V0IG9mIHRlc3RzIHRvIHJ1biBhbmQgb24g
dGhlIG90aGVyIGhhbmQsCi0vLyBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvIGluc3BlY3QgdGhl
IGdlbmVyYXRlZCB0ZXN0cyB3aXRoIEdvb2dsZSBUZXN0Ci0vLyByZWZsZWN0aW9uIEFQSSBiZWZv
cmUgUlVOX0FMTF9URVNUUygpIGlzIGV4ZWN1dGVkLgotLy8KLS8vIFlvdSBjYW4gc2VlIHNhbXBs
ZXMvc2FtcGxlN191bml0dGVzdC5jYyBhbmQgc2FtcGxlcy9zYW1wbGU4X3VuaXR0ZXN0LmNjCi0v
LyBmb3IgbW9yZSBleGFtcGxlcy4KLS8vCi0vLyBJbiB0aGUgZnV0dXJlLCB3ZSBwbGFuIHRvIHB1
Ymxpc2ggdGhlIEFQSSBmb3IgZGVmaW5pbmcgbmV3IHBhcmFtZXRlcgotLy8gZ2VuZXJhdG9ycy4g
QnV0IGZvciBub3cgdGhpcyBpbnRlcmZhY2UgcmVtYWlucyBwYXJ0IG9mIHRoZSBpbnRlcm5hbAot
Ly8gaW1wbGVtZW50YXRpb24gYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgotLy8KLS8vCi0vLyBB
IHBhcmFtZXRlcml6ZWQgdGVzdCBmaXh0dXJlIG11c3QgYmUgZGVyaXZlZCBmcm9tIHRlc3Rpbmc6
OlRlc3QgYW5kIGZyb20KLS8vIHRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxUPiwgd2hlcmUg
VCBpcyB0aGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVyCi0vLyB2YWx1ZXMuIEluaGVyaXRpbmcgZnJv
bSBUZXN0V2l0aFBhcmFtPFQ+IHNhdGlzZmllcyB0aGF0IHJlcXVpcmVtZW50IGJlY2F1c2UKLS8v
IFRlc3RXaXRoUGFyYW08VD4gaW5oZXJpdHMgZnJvbSBib3RoIFRlc3QgYW5kIFdpdGhQYXJhbUlu
dGVyZmFjZS4gSW4gbW9yZQotLy8gY29tcGxpY2F0ZWQgaGllcmFyY2hpZXMsIGhvd2V2ZXIsIGl0
IGlzIG9jY2FzaW9uYWxseSB1c2VmdWwgdG8gaW5oZXJpdAotLy8gc2VwYXJhdGVseSBmcm9tIFRl
c3QgYW5kIFdpdGhQYXJhbUludGVyZmFjZS4gRm9yIGV4YW1wbGU6Ci0KLWNsYXNzIEJhc2VUZXN0
IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Ci0gIC8vIFlvdSBjYW4gaW5oZXJpdCBhbGwgdGhl
IHVzdWFsIG1lbWJlcnMgZm9yIGEgbm9uLXBhcmFtZXRlcml6ZWQgdGVzdAotICAvLyBmaXh0dXJl
IGhlcmUuCi19OwotCi1jbGFzcyBEZXJpdmVkVGVzdCA6IHB1YmxpYyBCYXNlVGVzdCwgcHVibGlj
IDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPGludD4gewotICAvLyBUaGUgdXN1YWwgdGVz
dCBmaXh0dXJlIG1lbWJlcnMgZ28gaGVyZSB0b28uCi19OwotCi1URVNUX0YoQmFzZVRlc3QsIEhh
c0ZvbykgewotICAvLyBUaGlzIGlzIGFuIG9yZGluYXJ5IG5vbi1wYXJhbWV0ZXJpemVkIHRlc3Qu
Ci19Ci0KLVRFU1RfUChEZXJpdmVkVGVzdCwgRG9lc0JsYWgpIHsKLSAgLy8gR2V0UGFyYW0gd29y
a3MganVzdCB0aGUgc2FtZSBoZXJlIGFzIGlmIHlvdSBpbmhlcml0IGZyb20gVGVzdFdpdGhQYXJh
bS4KLSAgRVhQRUNUX1RSVUUoZm9vLkJsYWgoR2V0UGFyYW0oKSkpOwotfQotCi0jZW5kaWYgIC8v
IDAKLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKLQotI2lmICFHVEVT
VF9PU19TWU1CSUFOCi0jIGluY2x1ZGUgPHV0aWxpdHk+Ci0jZW5kaWYKLQotI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFt
LXV0aWwtZ2VuZXJhdGVkLmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gRnVuY3Rpb25z
IHByb2R1Y2luZyBwYXJhbWV0ZXIgZ2VuZXJhdG9ycy4KLS8vCi0vLyBHb29nbGUgVGVzdCB1c2Vz
IHRoZXNlIGdlbmVyYXRvcnMgdG8gcHJvZHVjZSBwYXJhbWV0ZXJzIGZvciB2YWx1ZS0KLS8vIHBh
cmFtZXRlcml6ZWQgdGVzdHMuIFdoZW4gYSBwYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBpcyBpbnN0
YW50aWF0ZWQKLS8vIHdpdGggYSBwYXJ0aWN1bGFyIGdlbmVyYXRvciwgR29vZ2xlIFRlc3QgY3Jl
YXRlcyBhbmQgcnVucyB0ZXN0cwotLy8gZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgc2VxdWVuY2Ug
cHJvZHVjZWQgYnkgdGhlIGdlbmVyYXRvci4KLS8vCi0vLyBJbiB0aGUgZm9sbG93aW5nIHNhbXBs
ZSwgdGVzdHMgZnJvbSB0ZXN0IGNhc2UgRm9vVGVzdCBhcmUgaW5zdGFudGlhdGVkCi0vLyBlYWNo
IHRocmVlIHRpbWVzIHdpdGggcGFyYW1ldGVyIHZhbHVlcyAzLCA1LCBhbmQgODoKLS8vCi0vLyBj
bGFzcyBGb29UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7IC4uLiB9OwotLy8KLS8v
IFRFU1RfUChGb29UZXN0LCBUZXN0VGhpcykgewotLy8gfQotLy8gVEVTVF9QKEZvb1Rlc3QsIFRl
c3RUaGF0KSB7Ci0vLyB9Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChUZXN0U2VxdWVuY2Us
IEZvb1Rlc3QsIFZhbHVlcygzLCA1LCA4KSk7Ci0vLwotCi0vLyBSYW5nZSgpIHJldHVybnMgZ2Vu
ZXJhdG9ycyBwcm92aWRpbmcgc2VxdWVuY2VzIG9mIHZhbHVlcyBpbiBhIHJhbmdlLgotLy8KLS8v
IFN5bm9wc2lzOgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCkKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJh
dG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQsIHN0YXJ0KzEsCi0vLyAg
ICAgc3RhcnQrMiwgLi4uLCB9LgotLy8gUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCkKLS8vICAgLSBy
ZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBhIHNlcXVlbmNlIG9mIHZhbHVlcyB7c3RhcnQs
IHN0YXJ0K3N0ZXAsCi0vLyAgICAgc3RhcnQrc3RlcCtzdGVwLCAuLi4sIH0uCi0vLyBOb3RlczoK
LS8vICAgKiBUaGUgZ2VuZXJhdGVkIHNlcXVlbmNlcyBuZXZlciBpbmNsdWRlIGVuZC4gRm9yIGV4
YW1wbGUsIFJhbmdlKDEsIDUpCi0vLyAgICAgcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcg
YSBzZXF1ZW5jZSB7MSwgMiwgMywgNH0uIFJhbmdlKDEsIDksIDIpCi0vLyAgICAgcmV0dXJucyBh
IGdlbmVyYXRvciBwcm9kdWNpbmcgezEsIDMsIDUsIDd9LgotLy8gICAqIHN0YXJ0IGFuZCBlbmQg
bXVzdCBoYXZlIHRoZSBzYW1lIHR5cGUuIFRoYXQgdHlwZSBtYXkgYmUgYW55IGludGVncmFsIG9y
Ci0vLyAgICAgZmxvYXRpbmctcG9pbnQgdHlwZSBvciBhIHVzZXIgZGVmaW5lZCB0eXBlIHNhdGlz
ZnlpbmcgdGhlc2UgY29uZGl0aW9uczoKLS8vICAgICAqIEl0IG11c3QgYmUgYXNzaWduYWJsZSAo
aGF2ZSBvcGVyYXRvcj0oKSBkZWZpbmVkKS4KLS8vICAgICAqIEl0IG11c3QgaGF2ZSBvcGVyYXRv
cisoKSAob3BlcmF0b3IrKGludC1jb21wYXRpYmxlIHR5cGUpIGZvcgotLy8gICAgICAgdHdvLW9w
ZXJhbmQgdmVyc2lvbikuCi0vLyAgICAgKiBJdCBtdXN0IGhhdmUgb3BlcmF0b3I8KCkgZGVmaW5l
ZC4KLS8vICAgICBFbGVtZW50cyBpbiB0aGUgcmVzdWx0aW5nIHNlcXVlbmNlcyB3aWxsIGFsc28g
aGF2ZSB0aGF0IHR5cGUuCi0vLyAgICogQ29uZGl0aW9uIHN0YXJ0IDwgZW5kIG11c3QgYmUgc2F0
aXNmaWVkIGluIG9yZGVyIGZvciByZXN1bHRpbmcgc2VxdWVuY2VzCi0vLyAgICAgdG8gY29udGFp
biBhbnkgZWxlbWVudHMuCi0vLwotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEluY3Jl
bWVudFQ+Ci1pbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8VD4gUmFuZ2UoVCBzdGFydCwgVCBlbmQs
IEluY3JlbWVudFQgc3RlcCkgewotICByZXR1cm4gaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+
KAotICAgICAgbmV3IGludGVybmFsOjpSYW5nZUdlbmVyYXRvcjxULCBJbmNyZW1lbnRUPihzdGFy
dCwgZW5kLCBzdGVwKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotaW50ZXJuYWw6OlBh
cmFtR2VuZXJhdG9yPFQ+IFJhbmdlKFQgc3RhcnQsIFQgZW5kKSB7Ci0gIHJldHVybiBSYW5nZShz
dGFydCwgZW5kLCAxKTsKLX0KLQotLy8gVmFsdWVzSW4oKSBmdW5jdGlvbiBhbGxvd3MgZ2VuZXJh
dGlvbiBvZiB0ZXN0cyB3aXRoIHBhcmFtZXRlcnMgY29taW5nIGZyb20KLS8vIGEgY29udGFpbmVy
LgotLy8KLS8vIFN5bm9wc2lzOgotLy8gVmFsdWVzSW4oY29uc3QgVCAoJmFycmF5KVtOXSkKLS8v
ICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9yIHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50
cyBmcm9tCi0vLyAgICAgYSBDLXN0eWxlIGFycmF5LgotLy8gVmFsdWVzSW4oY29uc3QgQ29udGFp
bmVyJiBjb250YWluZXIpCi0vLyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2Vx
dWVuY2VzIHdpdGggZWxlbWVudHMgZnJvbQotLy8gICAgIGFuIFNUTC1zdHlsZSBjb250YWluZXIu
Ci0vLyBWYWx1ZXNJbihJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQotLy8gICAtIHJldHVy
bnMgYSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIGZyb20KLS8v
ICAgICBhIHJhbmdlIFtiZWdpbiwgZW5kKSBkZWZpbmVkIGJ5IGEgcGFpciBvZiBTVEwtc3R5bGUg
aXRlcmF0b3JzLiBUaGVzZQotLy8gICAgIGl0ZXJhdG9ycyBjYW4gYWxzbyBiZSBwbGFpbiBDIHBv
aW50ZXJzLgotLy8KLS8vIFBsZWFzZSBub3RlIHRoYXQgVmFsdWVzSW4gY29waWVzIHRoZSB2YWx1
ZXMgZnJvbSB0aGUgY29udGFpbmVycwotLy8gcGFzc2VkIGluIGFuZCBrZWVwcyB0aGVtIHRvIGdl
bmVyYXRlIHRlc3RzIGluIFJVTl9BTExfVEVTVFMoKS4KLS8vCi0vLyBFeGFtcGxlczoKLS8vCi0v
LyBUaGlzIGluc3RhbnRpYXRlcyB0ZXN0cyBmcm9tIHRlc3QgY2FzZSBTdHJpbmdUZXN0Ci0vLyBl
YWNoIHdpdGggQy1zdHJpbmcgdmFsdWVzIG9mICJmb28iLCAiYmFyIiwgYW5kICJiYXoiOgotLy8K
LS8vIGNvbnN0IGNoYXIqIHN0cmluZ3NbXSA9IHsiZm9vIiwgImJhciIsICJiYXoifTsKLS8vIElO
U1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFN0cmluZ1NlcXVlbmNlLCBTdHJpbmdUZXN0LCBWYWx1ZXNJ
bihzdHJpbmdzKSk7Ci0vLwotLy8gVGhpcyBpbnN0YW50aWF0ZXMgdGVzdHMgZnJvbSB0ZXN0IGNh
c2UgU3RsU3RyaW5nVGVzdAotLy8gZWFjaCB3aXRoIFNUTCBzdHJpbmdzIHdpdGggdmFsdWVzICJh
IiBhbmQgImIiOgotLy8KLS8vIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IEdldFBhcmFt
ZXRlclN0cmluZ3MoKSB7Ci0vLyAgIDo6c3RkOjp2ZWN0b3I8IDo6c3RkOjpzdHJpbmc+IHY7Ci0v
LyAgIHYucHVzaF9iYWNrKCJhIik7Ci0vLyAgIHYucHVzaF9iYWNrKCJiIik7Ci0vLyAgIHJldHVy
biB2OwotLy8gfQotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKENoYXJTZXF1ZW5jZSwK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgIFN0bFN0cmluZ1Rlc3QsCi0vLyAgICAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZXNJbihHZXRQYXJhbWV0ZXJTdHJpbmdzKCkpKTsKLS8vCi0vLwot
Ly8gVGhpcyB3aWxsIGFsc28gaW5zdGFudGlhdGUgdGVzdHMgZnJvbSBDaGFyVGVzdAotLy8gZWFj
aCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgJ2EnIGFuZCAnYic6Ci0vLwotLy8gOjpzdGQ6Omxpc3Q8
Y2hhcj4gR2V0UGFyYW1ldGVyQ2hhcnMoKSB7Ci0vLyAgIDo6c3RkOjpsaXN0PGNoYXI+IGxpc3Q7
Ci0vLyAgIGxpc3QucHVzaF9iYWNrKCdhJyk7Ci0vLyAgIGxpc3QucHVzaF9iYWNrKCdiJyk7Ci0v
LyAgIHJldHVybiBsaXN0OwotLy8gfQotLy8gOjpzdGQ6Omxpc3Q8Y2hhcj4gbCA9IEdldFBhcmFt
ZXRlckNoYXJzKCk7Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChDaGFyU2VxdWVuY2UyLAot
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclRlc3QsCi0vLyAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXNJbihsLmJlZ2luKCksIGwuZW5kKCkpKTsKLS8vCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgRm9yd2FyZEl0ZXJhdG9yPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBl
bmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+
Ojp2YWx1ZV90eXBlPgotVmFsdWVzSW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRl
cmF0b3IgZW5kKSB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5hbDo6SXRl
cmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPgotICAgICAgOjp2YWx1ZV90eXBlIFBhcmFtVHlw
ZTsKLSAgcmV0dXJuIGludGVybmFsOjpQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KAotICAgICAg
bmV3IGludGVybmFsOjpWYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0b3I8UGFyYW1UeXBlPihi
ZWdpbiwgZW5kKSk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLWludGVy
bmFsOjpQYXJhbUdlbmVyYXRvcjxUPiBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKSB7Ci0g
IHJldHVybiBWYWx1ZXNJbihhcnJheSwgYXJyYXkgKyBOKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNz
IENvbnRhaW5lcj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6
OnZhbHVlX3R5cGU+IFZhbHVlc0luKAotICAgIGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKSB7
Ci0gIHJldHVybiBWYWx1ZXNJbihjb250YWluZXIuYmVnaW4oKSwgY29udGFpbmVyLmVuZCgpKTsK
LX0KLQotLy8gVmFsdWVzKCkgYWxsb3dzIGdlbmVyYXRpbmcgdGVzdHMgZnJvbSBleHBsaWNpdGx5
IHNwZWNpZmllZCBsaXN0IG9mCi0vLyBwYXJhbWV0ZXJzLgotLy8KLS8vIFN5bm9wc2lzOgotLy8g
VmFsdWVzKFQgdjEsIFQgdjIsIC4uLiwgVCB2TikKLS8vICAgLSByZXR1cm5zIGEgZ2VuZXJhdG9y
IHByb2R1Y2luZyBzZXF1ZW5jZXMgd2l0aCBlbGVtZW50cyB2MSwgdjIsIC4uLiwgdk4uCi0vLwot
Ly8gRm9yIGV4YW1wbGUsIHRoaXMgaW5zdGFudGlhdGVzIHRlc3RzIGZyb20gdGVzdCBjYXNlIEJh
clRlc3QgZWFjaAotLy8gd2l0aCB2YWx1ZXMgIm9uZSIsICJ0d28iLCBhbmQgInRocmVlIjoKLS8v
Ci0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUChOdW1TZXF1ZW5jZSwgQmFyVGVzdCwgVmFsdWVz
KCJvbmUiLCAidHdvIiwgInRocmVlIikpOwotLy8KLS8vIFRoaXMgaW5zdGFudGlhdGVzIHRlc3Rz
IGZyb20gdGVzdCBjYXNlIEJhelRlc3QgZWFjaCB3aXRoIHZhbHVlcyAxLCAyLCAzLjUuCi0vLyBU
aGUgZXhhY3QgdHlwZSBvZiB2YWx1ZXMgd2lsbCBkZXBlbmQgb24gdGhlIHR5cGUgb2YgcGFyYW1l
dGVyIGluIEJhelRlc3QuCi0vLwotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoRmxvYXRpbmdO
dW1iZXJzLCBCYXpUZXN0LCBWYWx1ZXMoMSwgMiwgMy41KSk7Ci0vLwotLy8gQ3VycmVudGx5LCBW
YWx1ZXMoKSBzdXBwb3J0cyBmcm9tIDEgdG8gJG4gcGFyYW1ldGVycy4KLS8vCi0kcmFuZ2UgaSAx
Li5uCi0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBl
bmFtZSBUJGpdXT4KLWludGVybmFsOjpWYWx1ZUFycmF5JGk8JGZvciBqLCBbW1Qkal1dPiBWYWx1
ZXMoJGZvciBqLCBbW1QkaiB2JGpdXSkgewotICByZXR1cm4gaW50ZXJuYWw6OlZhbHVlQXJyYXkk
aTwkZm9yIGosIFtbVCRqXV0+KCRmb3IgaiwgW1t2JGpdXSk7Ci19Ci0KLV1dCi0KLS8vIEJvb2wo
KSBhbGxvd3MgZ2VuZXJhdGluZyB0ZXN0cyB3aXRoIHBhcmFtZXRlcnMgaW4gYSBzZXQgb2YgKGZh
bHNlLCB0cnVlKS4KLS8vCi0vLyBTeW5vcHNpczoKLS8vIEJvb2woKQotLy8gICAtIHJldHVybnMg
YSBnZW5lcmF0b3IgcHJvZHVjaW5nIHNlcXVlbmNlcyB3aXRoIGVsZW1lbnRzIHtmYWxzZSwgdHJ1
ZX0uCi0vLwotLy8gSXQgaXMgdXNlZnVsIHdoZW4gdGVzdGluZyBjb2RlIHRoYXQgZGVwZW5kcyBv
biBCb29sZWFuIGZsYWdzLiBDb21iaW5hdGlvbnMKLS8vIG9mIG11bHRpcGxlIGZsYWdzIGNhbiBi
ZSB0ZXN0ZWQgd2hlbiBzZXZlcmFsIEJvb2woKSdzIGFyZSBjb21iaW5lZCB1c2luZwotLy8gQ29t
YmluZSgpIGZ1bmN0aW9uLgotLy8KLS8vIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhbGwgdGVz
dHMgaW4gdGhlIHRlc3QgY2FzZSBGbGFnRGVwZW5kZW50VGVzdAotLy8gd2lsbCBiZSBpbnN0YW50
aWF0ZWQgdHdpY2Ugd2l0aCBwYXJhbWV0ZXJzIGZhbHNlIGFuZCB0cnVlLgotLy8KLS8vIGNsYXNz
IEZsYWdEZXBlbmRlbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08Ym9vbD4g
ewotLy8gICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0vLyAgICAgZXh0ZXJuYWxfZmxhZyA9IEdl
dFBhcmFtKCk7Ci0vLyAgIH0KLS8vIH0KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEJvb2xT
ZXF1ZW5jZSwgRmxhZ0RlcGVuZGVudFRlc3QsIEJvb2woKSk7Ci0vLwotaW5saW5lIGludGVybmFs
OjpQYXJhbUdlbmVyYXRvcjxib29sPiBCb29sKCkgewotICByZXR1cm4gVmFsdWVzKGZhbHNlLCB0
cnVlKTsKLX0KLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8gQ29tYmluZSgpIGFsbG93cyB0
aGUgdXNlciB0byBjb21iaW5lIHR3byBvciBtb3JlIHNlcXVlbmNlcyB0byBwcm9kdWNlCi0vLyB2
YWx1ZXMgb2YgYSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiB0aG9zZSBzZXF1ZW5jZXMnIGVsZW1lbnRz
LgotLy8KLS8vIFN5bm9wc2lzOgotLy8gQ29tYmluZShnZW4xLCBnZW4yLCAuLi4sIGdlbk4pCi0v
LyAgIC0gcmV0dXJucyBhIGdlbmVyYXRvciBwcm9kdWNpbmcgc2VxdWVuY2VzIHdpdGggZWxlbWVu
dHMgY29taW5nIGZyb20KLS8vICAgICB0aGUgQ2FydGVzaWFuIHByb2R1Y3Qgb2YgZWxlbWVudHMg
ZnJvbSB0aGUgc2VxdWVuY2VzIGdlbmVyYXRlZCBieQotLy8gICAgIGdlbjEsIGdlbjIsIC4uLiwg
Z2VuTi4gVGhlIHNlcXVlbmNlIGVsZW1lbnRzIHdpbGwgaGF2ZSBhIHR5cGUgb2YKLS8vICAgICB0
dXBsZTxUMSwgVDIsIC4uLiwgVE4+IHdoZXJlIFQxLCBUMiwgLi4uLCBUTiBhcmUgdGhlIHR5cGVz
Ci0vLyAgICAgb2YgZWxlbWVudHMgZnJvbSBzZXF1ZW5jZXMgcHJvZHVjZXMgYnkgZ2VuMSwgZ2Vu
MiwgLi4uLCBnZW5OLgotLy8KLS8vIENvbWJpbmUgY2FuIGhhdmUgdXAgdG8gJG1heHR1cGxlIGFy
Z3VtZW50cy4gVGhpcyBudW1iZXIgaXMgY3VycmVudGx5IGxpbWl0ZWQKLS8vIGJ5IHRoZSBtYXhp
bXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHVwbGUgaW1wbGVtZW50YXRpb24gdXNlZCBi
eSBHb29nbGUKLS8vIFRlc3QuCi0vLwotLy8gRXhhbXBsZToKLS8vCi0vLyBUaGlzIHdpbGwgaW5z
dGFudGlhdGUgdGVzdHMgaW4gdGVzdCBjYXNlIEFuaW1hbFRlc3QgZWFjaCBvbmUgd2l0aAotLy8g
dGhlIHBhcmFtZXRlciB2YWx1ZXMgdHVwbGUoImNhdCIsIEJMQUNLKSwgdHVwbGUoImNhdCIsIFdI
SVRFKSwKLS8vIHR1cGxlKCJkb2ciLCBCTEFDSyksIGFuZCB0dXBsZSgiZG9nIiwgV0hJVEUpOgot
Ly8KLS8vIGVudW0gQ29sb3IgeyBCTEFDSywgR1JBWSwgV0hJVEUgfTsKLS8vIGNsYXNzIEFuaW1h
bFRlc3QKLS8vICAgICA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHR1cGxlPGNvbnN0
IGNoYXIqLCBDb2xvcj4gPiB7Li4ufTsKLS8vCi0vLyBURVNUX1AoQW5pbWFsVGVzdCwgQW5pbWFs
TG9va3NOaWNlKSB7Li4ufQotLy8KLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEFuaW1hbFZh
cmlhdGlvbnMsIEFuaW1hbFRlc3QsCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICBDb21iaW5l
KFZhbHVlcygiY2F0IiwgImRvZyIpLAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoQkxBQ0ssIFdISVRFKSkpOwotLy8KLS8vIFRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0
ZXN0cyBpbiBGbGFnRGVwZW5kZW50VGVzdCB3aXRoIGFsbCB2YXJpYXRpb25zIG9mIHR3bwotLy8g
Qm9vbGVhbiBmbGFnczoKLS8vCi0vLyBjbGFzcyBGbGFnRGVwZW5kZW50VGVzdAotLy8gICAgIDog
cHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08dHVwbGU8Ym9vbCwgYm9vbD4gPiB7Ci0vLyAg
IHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLS8vICAgICAvLyBBc3NpZ25zIGV4dGVybmFsX2ZsYWdf
MSBhbmQgZXh0ZXJuYWxfZmxhZ18yIHZhbHVlcyBmcm9tIHRoZSB0dXBsZS4KLS8vICAgICB0aWUo
ZXh0ZXJuYWxfZmxhZ18xLCBleHRlcm5hbF9mbGFnXzIpID0gR2V0UGFyYW0oKTsKLS8vICAgfQot
Ly8gfTsKLS8vCi0vLyBURVNUX1AoRmxhZ0RlcGVuZGVudFRlc3QsIFRlc3RGZWF0dXJlMSkgewot
Ly8gICAvLyBUZXN0IHlvdXIgY29kZSB1c2luZyBleHRlcm5hbF9mbGFnXzEgYW5kIGV4dGVybmFs
X2ZsYWdfMiBoZXJlLgotLy8gfQotLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoVHdvQm9vbFNl
cXVlbmNlLCBGbGFnRGVwZW5kZW50VGVzdCwKLS8vICAgICAgICAgICAgICAgICAgICAgICAgIENv
bWJpbmUoQm9vbCgpLCBCb29sKCkpKTsKLS8vCi0kcmFuZ2UgaSAyLi5tYXh0dXBsZQotJGZvciBp
IFtbCi0kcmFuZ2UgaiAxLi5pCi0KLXRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUgR2VuZXJh
dG9yJGpdXT4KLWludGVybmFsOjpDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyJGk8JGZvciBqLCBbW0dl
bmVyYXRvciRqXV0+IENvbWJpbmUoCi0gICAgJGZvciBqLCBbW2NvbnN0IEdlbmVyYXRvciRqJiBn
JGpdXSkgewotICByZXR1cm4gaW50ZXJuYWw6OkNhcnRlc2lhblByb2R1Y3RIb2xkZXIkaTwkZm9y
IGosIFtbR2VuZXJhdG9yJGpdXT4oCi0gICAgICAkZm9yIGosIFtbZyRqXV0pOwotfQotCi1dXQot
IyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKLQotIyBkZWZpbmUgVEVTVF9QKHRlc3RfY2Fz
ZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgY2xhc3MgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0
X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKSBcCi0gICAgICA6IHB1YmxpYyB0ZXN0X2Nhc2VfbmFtZSB7
IFwKLSAgIHB1YmxpYzogXAotICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9jYXNlX25h
bWUsIHRlc3RfbmFtZSkoKSB7fSBcCi0gICAgdmlydHVhbCB2b2lkIFRlc3RCb2R5KCk7IFwKLSAg
IHByaXZhdGU6IFwKLSAgICBzdGF0aWMgaW50IEFkZFRvUmVnaXN0cnkoKSB7IFwKLSAgICAgIDo6
dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPnBhcmFtZXRlcml6ZWRfdGVzdF9yZWdp
c3RyeSgpLiBcCi0gICAgICAgICAgR2V0VGVzdENhc2VQYXR0ZXJuSG9sZGVyPHRlc3RfY2FzZV9u
YW1lPihcCi0gICAgICAgICAgICAgICN0ZXN0X2Nhc2VfbmFtZSwgXAotICAgICAgICAgICAgICA6
OnRlc3Rpbmc6OmludGVybmFsOjpDb2RlTG9jYXRpb24oXAotICAgICAgICAgICAgICAgICAgX19G
SUxFX18sIF9fTElORV9fKSktPkFkZFRlc3RQYXR0ZXJuKFwKLSAgICAgICAgICAgICAgICAgICAg
ICBHVEVTVF9TVFJJTkdJRllfKHRlc3RfY2FzZV9uYW1lKSwgXAotICAgICAgICAgICAgICAgICAg
ICAgIEdURVNUX1NUUklOR0lGWV8odGVzdF9uYW1lKSwgXAotICAgICAgICAgICAgICAgICAgICAg
IG5ldyA6OnRlc3Rpbmc6OmludGVybmFsOjpUZXN0TWV0YUZhY3Rvcnk8IFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyhcCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1lKT4oKSk7IFwKLSAgICAgIHJl
dHVybiAwOyBcCi0gICAgfSBcCi0gICAgc3RhdGljIGludCBndGVzdF9yZWdpc3RlcmluZ19kdW1t
eV8gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF87IFwKLSAgICBHVEVTVF9ESVNBTExPV19DT1BZX0FO
RF9BU1NJR05fKFwKLSAgICAgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFt
ZSwgdGVzdF9uYW1lKSk7IFwKLSAgfTsgXAotICBpbnQgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0
ZXN0X2Nhc2VfbmFtZSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25hbWUp
OjpndGVzdF9yZWdpc3RlcmluZ19kdW1teV8gPSBcCi0gICAgICBHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpOjpBZGRUb1JlZ2lzdHJ5KCk7IFwKLSAgdm9p
ZCBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpOjpUZXN0
Qm9keSgpCi0KLS8vIFRoZSBvcHRpb25hbCBsYXN0IGFyZ3VtZW50IHRvIElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIGFsbG93cyB0aGUgdXNlcgotLy8gdG8gc3BlY2lmeSBhIGZ1bmN0aW9uIG9yIGZ1
bmN0b3IgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFtZSBzdWZmaXhlcwotLy8gYmFzZWQg
b24gdGhlIHRlc3QgcGFyYW1ldGVycy4gVGhlIGZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgb25lIGFy
Z3VtZW50IG9mCi0vLyB0eXBlIHRlc3Rpbmc6OlRlc3RQYXJhbUluZm88Y2xhc3MgUGFyYW1UeXBl
PiwgYW5kIHJldHVybiBzdGQ6OnN0cmluZy4KLS8vCi0vLyB0ZXN0aW5nOjpQcmludFRvU3RyaW5n
UGFyYW1OYW1lIGlzIGEgYnVpbHRpbiB0ZXN0IHN1ZmZpeCBnZW5lcmF0b3IgdGhhdAotLy8gcmV0
dXJucyB0aGUgdmFsdWUgb2YgdGVzdGluZzo6UHJpbnRUb1N0cmluZyhHZXRQYXJhbSgpKS4KLS8v
Ci0vLyBOb3RlOiB0ZXN0IG5hbWVzIG11c3QgYmUgbm9uLWVtcHR5LCB1bmlxdWUsIGFuZCBtYXkg
b25seSBjb250YWluIEFTQ0lJCi0vLyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciB1bmRlcnNj
b3JlLiBCZWNhdXNlIFByaW50VG9TdHJpbmcgYWRkcyBxdW90ZXMKLS8vIHRvIHN0ZDo6c3RyaW5n
IGFuZCBDIHN0cmluZ3MsIGl0IHdvbid0IHdvcmsgZm9yIHRoZXNlIHR5cGVzLgotCi0jIGRlZmlu
ZSBJTlNUQU5USUFURV9URVNUX0NBU0VfUChwcmVmaXgsIHRlc3RfY2FzZV9uYW1lLCBnZW5lcmF0
b3IsIC4uLikgXAotICBzdGF0aWMgOjp0ZXN0aW5nOjppbnRlcm5hbDo6UGFyYW1HZW5lcmF0b3I8
dGVzdF9jYXNlX25hbWU6OlBhcmFtVHlwZT4gXAotICAgICAgZ3Rlc3RfIyNwcmVmaXgjI3Rlc3Rf
Y2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8oKSB7IHJldHVybiBnZW5lcmF0b3I7IH0gXAotICBz
dGF0aWMgOjpzdGQ6OnN0cmluZyBndGVzdF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19FdmFs
R2VuZXJhdGVOYW1lXyggXAotICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPHRl
c3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+JiBpbmZvKSB7IFwKLSAgICByZXR1cm4gOjp0ZXN0aW5n
OjppbnRlcm5hbDo6R2V0UGFyYW1OYW1lR2VuPHRlc3RfY2FzZV9uYW1lOjpQYXJhbVR5cGU+IFwK
LSAgICAgICAgKF9fVkFfQVJHU19fKShpbmZvKTsgXAotICB9IFwKLSAgc3RhdGljIGludCBndGVz
dF8jI3ByZWZpeCMjdGVzdF9jYXNlX25hbWUjI19kdW1teV8gR1RFU1RfQVRUUklCVVRFX1VOVVNF
RF8gPSBcCi0gICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5wYXJhbWV0
ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKS4gXAotICAgICAgICAgIEdldFRlc3RDYXNlUGF0dGVybkhv
bGRlcjx0ZXN0X2Nhc2VfbmFtZT4oXAotICAgICAgICAgICAgICAjdGVzdF9jYXNlX25hbWUsIFwK
LSAgICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKFwKLSAgICAg
ICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykpLT5BZGRUZXN0Q2FzZUluc3RhbnRpYXRp
b24oXAotICAgICAgICAgICAgICAgICAgICAgICNwcmVmaXgsIFwKLSAgICAgICAgICAgICAgICAg
ICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNfRXZhbEdlbmVyYXRvcl8sIFwK
LSAgICAgICAgICAgICAgICAgICAgICAmZ3Rlc3RfIyNwcmVmaXgjI3Rlc3RfY2FzZV9uYW1lIyNf
RXZhbEdlbmVyYXRlTmFtZV8sIFwKLSAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19M
SU5FX18pCi0KLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9QQVJBTV9URVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXByaW50ZXJzLmgKaW5kZXggNTE4NjVmODRl
NmY2ZmEzZTBmY2UxOTg3MDBiNWE1ZGZlNWY2NTUwZS4uNDZmZTg5NTBmZTg4ZGRkOGQ3YmM5YmZj
MWQ3MDhjMGM5MjhhMzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5j
bHVkZS9ndGVzdC9ndGVzdC1wcmludGVycy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcHJpbnRlcnMuaApAQCAtOTcsNzUgKzk3LDE0MSBAQAogCiAv
LyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9QUklOVEVSU19IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dU
RVNUX1BSSU5URVJTX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9Q
UklOVEVSU19IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfUFJJTlRF
UlNfSF8KIAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1
ZGUgPG9zdHJlYW0+ICAvLyBOT0xJTlQKICNpbmNsdWRlIDxzc3RyZWFtPgogI2luY2x1ZGUgPHN0
cmluZz4KKyNpbmNsdWRlIDx0dXBsZT4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRl
IDx1dGlsaXR5PgogI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9n
dGVzdC1wb3J0LmgiCisKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5o
IgorI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKIAotI2lmIEdURVNUX0hB
U19TVERfVFVQTEVfCi0jIGluY2x1ZGUgPHR1cGxlPgotI2VuZGlmCi0KLSNpZiBHVEVTVF9IQVNf
QUJTTAotI2luY2x1ZGUgImFic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oIgotI2luY2x1ZGUgImFi
c2wvdHlwZXMvb3B0aW9uYWwuaCIKLSNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKLSNl
bmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNpZiBHVEVTVF9IQVNfUlRUSQorI2luY2x1ZGUgPHR5
cGVpbmRleD4KKyNpbmNsdWRlIDx0eXBlaW5mbz4KKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkK
IAogbmFtZXNwYWNlIHRlc3RpbmcgewogCi0vLyBEZWZpbml0aW9ucyBpbiB0aGUgJ2ludGVybmFs
JyBhbmQgJ2ludGVybmFsMicgbmFtZSBzcGFjZXMgYXJlCi0vLyBzdWJqZWN0IHRvIGNoYW5nZSB3
aXRob3V0IG5vdGljZS4gIERPIE5PVCBVU0UgVEhFTSBJTiBVU0VSIENPREUhCi1uYW1lc3BhY2Ug
aW50ZXJuYWwyIHsKKy8vIERlZmluaXRpb25zIGluIHRoZSBpbnRlcm5hbCogbmFtZXNwYWNlcyBh
cmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuCisvLyBETyBOT1QgVVNFIFRIRU0g
SU4gVVNFUiBDT0RFIQorbmFtZXNwYWNlIGludGVybmFsIHsKIAotLy8gUHJpbnRzIHRoZSBnaXZl
biBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGdpdmVuIG9iamVjdCB0byB0aGUgZ2l2ZW4KLS8vIG9z
dHJlYW0uCi1HVEVTVF9BUElfIHZvaWQgUHJpbnRCeXRlc0luT2JqZWN0VG8oY29uc3QgdW5zaWdu
ZWQgY2hhciogb2JqX2J5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0
ZDo6b3N0cmVhbSogb3MpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIFVuaXZlcnNhbFBy
aW50KGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwogCi0vLyBGb3Igc2VsZWN0
aW5nIHdoaWNoIHByaW50ZXIgdG8gdXNlIHdoZW4gYSBnaXZlbiB0eXBlIGhhcyBuZWl0aGVyIDw8
Ci0vLyBub3IgUHJpbnRUbygpLgotZW51bSBUeXBlS2luZCB7Ci0gIGtQcm90b2J1ZiwgICAgICAg
ICAgICAgIC8vIGEgcHJvdG9idWYgdHlwZQotICBrQ29udmVydGlibGVUb0ludGVnZXIsICAvLyBh
IHR5cGUgaW1wbGljaXRseSBjb252ZXJ0aWJsZSB0byBCaWdnZXN0SW50Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIChlLmcuIGEgbmFtZWQgb3IgdW5uYW1lZCBlbnVtIHR5cGUpCi0jaWYg
R1RFU1RfSEFTX0FCU0wKLSAga0NvbnZlcnRpYmxlVG9TdHJpbmdWaWV3LCAgLy8gYSB0eXBlIGlt
cGxpY2l0bHkgY29udmVydGlibGUgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
YWJzbDo6c3RyaW5nX3ZpZXcKLSNlbmRpZgotICBrT3RoZXJUeXBlICAvLyBhbnl0aGluZyBlbHNl
CisvLyBVc2VkIHRvIHByaW50IGFuIFNUTC1zdHlsZSBjb250YWluZXIgd2hlbiB0aGUgdXNlciBk
b2Vzbid0IGRlZmluZQorLy8gYSBQcmludFRvKCkgZm9yIGl0Lgorc3RydWN0IENvbnRhaW5lclBy
aW50ZXIgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwKKyAgICAgICAgICAgIHR5cGVuYW1lID0g
dHlwZW5hbWUgc3RkOjplbmFibGVfaWY8CisgICAgICAgICAgICAgICAgKHNpemVvZihJc0NvbnRh
aW5lclRlc3Q8VD4oMCkpID09IHNpemVvZihJc0NvbnRhaW5lcikpICYmCisgICAgICAgICAgICAg
ICAgIUlzUmVjdXJzaXZlQ29udGFpbmVyPFQ+Ojp2YWx1ZT46OnR5cGU+CisgIHN0YXRpYyB2b2lk
IFByaW50VmFsdWUoY29uc3QgVCYgY29udGFpbmVyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAg
Y29uc3Qgc2l6ZV90IGtNYXhDb3VudCA9IDMyOyAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGVs
ZW1lbnRzIHRvIHByaW50LgorICAgICpvcyA8PCAneyc7CisgICAgc2l6ZV90IGNvdW50ID0gMDsK
KyAgICBmb3IgKGF1dG8mJiBlbGVtIDogY29udGFpbmVyKSB7CisgICAgICBpZiAoY291bnQgPiAw
KSB7CisgICAgICAgICpvcyA8PCAnLCc7CisgICAgICAgIGlmIChjb3VudCA9PSBrTWF4Q291bnQp
IHsgIC8vIEVub3VnaCBoYXMgYmVlbiBwcmludGVkLgorICAgICAgICAgICpvcyA8PCAiIC4uLiI7
CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgICpvcyA8PCAnICc7
CisgICAgICAvLyBXZSBjYW5ub3QgY2FsbCBQcmludFRvKGVsZW0sIG9zKSBoZXJlIGFzIFByaW50
VG8oKSBkb2Vzbid0CisgICAgICAvLyBoYW5kbGUgYGVsZW1gIGJlaW5nIGEgbmF0aXZlIGFycmF5
LgorICAgICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KGVsZW0sIG9zKTsKKyAgICAgICsrY291
bnQ7CisgICAgfQorCisgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgKm9zIDw8ICcgJzsKKyAg
ICB9CisgICAgKm9zIDw8ICd9JzsKKyAgfQogfTsKIAotLy8gVHlwZVdpdGhvdXRGb3JtYXR0ZXI8
VCwga1R5cGVLaW5kPjo6UHJpbnRWYWx1ZSh2YWx1ZSwgb3MpIGlzIGNhbGxlZAotLy8gYnkgdGhl
IHVuaXZlcnNhbCBwcmludGVyIHRvIHByaW50IGEgdmFsdWUgb2YgdHlwZSBUIHdoZW4gbmVpdGhl
cgotLy8gb3BlcmF0b3I8PCBub3IgUHJpbnRUbygpIGlzIGRlZmluZWQgZm9yIFQsIHdoZXJlIGtU
eXBlS2luZCBpcyB0aGUKLS8vICJraW5kIiBvZiBUIGFzIGRlZmluZWQgYnkgZW51bSBUeXBlS2lu
ZC4KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBUeXBlS2luZCBrVHlwZUtpbmQ+Ci1jbGFzcyBUeXBl
V2l0aG91dEZvcm1hdHRlciB7Ci0gcHVibGljOgotICAvLyBUaGlzIGRlZmF1bHQgdmVyc2lvbiBp
cyBjYWxsZWQgd2hlbiBrVHlwZUtpbmQgaXMga090aGVyVHlwZS4KKy8vIFVzZWQgdG8gcHJpbnQg
YSBwb2ludGVyIHRoYXQgaXMgbmVpdGhlciBhIGNoYXIgcG9pbnRlciBub3IgYSBtZW1iZXIKKy8v
IHBvaW50ZXIsIHdoZW4gdGhlIHVzZXIgZG9lc24ndCBkZWZpbmUgUHJpbnRUbygpIGZvciBpdC4g
IChBIG1lbWJlcgorLy8gdmFyaWFibGUgcG9pbnRlciBvciBtZW1iZXIgZnVuY3Rpb24gcG9pbnRl
ciBkb2Vzbid0IHJlYWxseSBwb2ludCB0bworLy8gYSBsb2NhdGlvbiBpbiB0aGUgYWRkcmVzcyBz
cGFjZS4gIFRoZWlyIHJlcHJlc2VudGF0aW9uIGlzCisvLyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVk
LiAgVGhlcmVmb3JlIHRoZXkgd2lsbCBiZSBwcmludGVkIGFzIHJhdworLy8gYnl0ZXMuKQorc3Ry
dWN0IEZ1bmN0aW9uUG9pbnRlclByaW50ZXIgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGQ6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZT46OnR5cGU+CisgIHN0YXRpYyB2b2lkIFBy
aW50VmFsdWUoVCogcCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHAgPT0gbnVsbHB0
cikgeworICAgICAgKm9zIDw8ICJOVUxMIjsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVCBpcyBh
IGZ1bmN0aW9uIHR5cGUsIHNvICcqb3MgPDwgcCcgZG9lc24ndCBkbyB3aGF0IHdlIHdhbnQKKyAg
ICAgIC8vIChpdCBqdXN0IHByaW50cyBwIGFzIGJvb2wpLiAgV2Ugd2FudCB0byBwcmludCBwIGFz
IGEgY29uc3QKKyAgICAgIC8vIHZvaWQqLgorICAgICAgKm9zIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3Qgdm9pZCo+KHApOworICAgIH0KKyAgfQorfTsKKworc3RydWN0IFBvaW50ZXJQcmludGVy
IHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoVCog
cCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHAgPT0gbnVsbHB0cikgeworICAgICAg
Km9zIDw8ICJOVUxMIjsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVCBpcyBub3QgYSBmdW5jdGlv
biB0eXBlLiAgV2UganVzdCBjYWxsIDw8IHRvIHByaW50IHAsCisgICAgICAvLyByZWx5aW5nIG9u
IEFETCB0byBwaWNrIHVwIHVzZXItZGVmaW5lZCA8PCBmb3IgdGhlaXIgcG9pbnRlcgorICAgICAg
Ly8gdHlwZXMsIGlmIGFueS4KKyAgICAgICpvcyA8PCBwOworICAgIH0KKyAgfQorfTsKKworbmFt
ZXNwYWNlIGludGVybmFsX3N0cmVhbV9vcGVyYXRvcl93aXRob3V0X2xleGljYWxfbmFtZV9sb29r
dXAgeworCisvLyBUaGUgcHJlc2VuY2Ugb2YgYW4gb3BlcmF0b3I8PCBoZXJlIHdpbGwgdGVybWlu
YXRlIGxleGljYWwgc2NvcGUgbG9va3VwCisvLyBzdHJhaWdodCBhd2F5IChldmVuIHRob3VnaCBp
dCBjYW5ub3QgYmUgYSBtYXRjaCBiZWNhdXNlIG9mIGl0cyBhcmd1bWVudAorLy8gdHlwZXMpLiBU
aHVzLCB0aGUgdHdvIG9wZXJhdG9yPDwgY2FsbHMgaW4gU3RyZWFtUHJpbnRlciB3aWxsIGZpbmQg
b25seSBBREwKKy8vIGNhbmRpZGF0ZXMuCitzdHJ1Y3QgTG9va3VwQmxvY2tlciB7fTsKK3ZvaWQg
b3BlcmF0b3I8PChMb29rdXBCbG9ja2VyLCBMb29rdXBCbG9ja2VyKTsKKworc3RydWN0IFN0cmVh
bVByaW50ZXIgeworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwKKyAgICAgICAgICAgIC8vIERvbid0
IGFjY2VwdCBtZW1iZXIgcG9pbnRlcnMgaGVyZS4gV2UnZCBwcmludCB0aGVtIHZpYSBpbXBsaWNp
dAorICAgICAgICAgICAgLy8gY29udmVyc2lvbiB0byBib29sLCB3aGljaCBpc24ndCB1c2VmdWwu
CisgICAgICAgICAgICB0eXBlbmFtZSA9IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPAorICAgICAg
ICAgICAgICAgICFzdGQ6OmlzX21lbWJlcl9wb2ludGVyPFQ+Ojp2YWx1ZT46OnR5cGUsCisgICAg
ICAgICAgICAvLyBPbmx5IGFjY2VwdCB0eXBlcyBmb3Igd2hpY2ggd2UgY2FuIGZpbmQgYSBzdHJl
YW1pbmcgb3BlcmF0b3IgdmlhCisgICAgICAgICAgICAvLyBBREwgKHBvc3NpYmx5IGludm9sdmlu
ZyBpbXBsaWNpdCBjb252ZXJzaW9ucykuCisgICAgICAgICAgICB0eXBlbmFtZSA9IGRlY2x0eXBl
KHN0ZDo6ZGVjbHZhbDxzdGQ6Om9zdHJlYW0mPigpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IHN0ZDo6ZGVjbHZhbDxjb25zdCBUJj4oKSk+CiAgIHN0YXRpYyB2b2lkIFByaW50
VmFsdWUoY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIFByaW50Qnl0
ZXNJbk9iamVjdFRvKHN0YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oJnZhbHVl
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhbHVlKSwgb3MpOworICAgIC8v
IENhbGwgc3RyZWFtaW5nIG9wZXJhdG9yIGZvdW5kIGJ5IEFETCwgcG9zc2libHkgd2l0aCBpbXBs
aWNpdCBjb252ZXJzaW9ucworICAgIC8vIG9mIHRoZSBhcmd1bWVudHMuCisgICAgKm9zIDw8IHZh
bHVlOwogICB9CiB9OwogCi0vLyBXZSBwcmludCBhIHByb3RvYnVmIHVzaW5nIGl0cyBTaG9ydERl
YnVnU3RyaW5nKCkgd2hlbiB0aGUgc3RyaW5nCi0vLyBkb2Vzbid0IGV4Y2VlZCB0aGlzIG1hbnkg
Y2hhcmFjdGVyczsgb3RoZXJ3aXNlIHdlIHByaW50IGl0IHVzaW5nCi0vLyBEZWJ1Z1N0cmluZygp
IGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCi1jb25zdCBzaXplX3Qga1Byb3RvYnVmT25lTGluZXJN
YXhMZW5ndGggPSA1MDsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbF9zdHJlYW1fb3BlcmF0b3Jf
d2l0aG91dF9sZXhpY2FsX25hbWVfbG9va3VwCiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xh
c3MgVHlwZVdpdGhvdXRGb3JtYXR0ZXI8VCwga1Byb3RvYnVmPiB7Ci0gcHVibGljOgorc3RydWN0
IFByb3RvYnVmUHJpbnRlciB7CisgIC8vIFdlIHByaW50IGEgcHJvdG9idWYgdXNpbmcgaXRzIFNo
b3J0RGVidWdTdHJpbmcoKSB3aGVuIHRoZSBzdHJpbmcKKyAgLy8gZG9lc24ndCBleGNlZWQgdGhp
cyBtYW55IGNoYXJhY3RlcnM7IG90aGVyd2lzZSB3ZSBwcmludCBpdCB1c2luZworICAvLyBEZWJ1
Z1N0cmluZygpIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCisgIHN0YXRpYyBjb25zdCBzaXplX3Qg
a1Byb3RvYnVmT25lTGluZXJNYXhMZW5ndGggPSA1MDsKKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VCwKKyAgICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8CisgICAg
ICAgICAgICAgICAgaW50ZXJuYWw6Okhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxU
Pjo6dmFsdWU+Ojp0eXBlPgogICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVl
LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgICBzdGQ6OnN0cmluZyBwcmV0dHlfc3RyID0gdmFs
dWUuU2hvcnREZWJ1Z1N0cmluZygpOwogICAgIGlmIChwcmV0dHlfc3RyLmxlbmd0aCgpID4ga1By
b3RvYnVmT25lTGluZXJNYXhMZW5ndGgpIHsKQEAgLTE3NSw5ICsyNDEsNyBAQCBjbGFzcyBUeXBl
V2l0aG91dEZvcm1hdHRlcjxULCBrUHJvdG9idWY+IHsKICAgfQogfTsKIAotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1jbGFzcyBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCBrQ29udmVydGlibGVUb0lu
dGVnZXI+IHsKLSBwdWJsaWM6CitzdHJ1Y3QgQ29udmVydGlibGVUb0ludGVnZXJQcmludGVyIHsK
ICAgLy8gU2luY2UgVCBoYXMgbm8gPDwgb3BlcmF0b3Igb3IgUHJpbnRUbygpIGJ1dCBjYW4gYmUg
aW1wbGljaXRseQogICAvLyBjb252ZXJ0ZWQgdG8gQmlnZ2VzdEludCwgd2UgcHJpbnQgaXQgYXMg
YSBCaWdnZXN0SW50LgogICAvLwpAQCAtMTg1LDExMiArMjQ5LDczIEBAIGNsYXNzIFR5cGVXaXRo
b3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0aWJsZVRvSW50ZWdlcj4gewogICAvLyBjYXNlIHByaW50
aW5nIGl0IGFzIGFuIGludGVnZXIgaXMgdGhlIGRlc2lyZWQgYmVoYXZpb3IuICBJbiBjYXNlCiAg
IC8vIFQgaXMgbm90IGFuIGVudW0sIHByaW50aW5nIGl0IGFzIGFuIGludGVnZXIgaXMgdGhlIGJl
c3Qgd2UgY2FuIGRvCiAgIC8vIGdpdmVuIHRoYXQgaXQgaGFzIG5vIHVzZXItZGVmaW5lZCBwcmlu
dGVyLgotICBzdGF0aWMgdm9pZCBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0
cmVhbSogb3MpIHsKLSAgICBjb25zdCBpbnRlcm5hbDo6QmlnZ2VzdEludCBrQmlnSW50ID0gdmFs
dWU7Ci0gICAgKm9zIDw8IGtCaWdJbnQ7CisgIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoaW50ZXJu
YWw6OkJpZ2dlc3RJbnQgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB2
YWx1ZTsKICAgfQogfTsKIAotI2lmIEdURVNUX0hBU19BQlNMCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLWNsYXNzIFR5cGVXaXRob3V0Rm9ybWF0dGVyPFQsIGtDb252ZXJ0aWJsZVRvU3RyaW5nVmll
dz4gewotIHB1YmxpYzoKLSAgLy8gU2luY2UgVCBoYXMgbmVpdGhlciBvcGVyYXRvcjw8IG5vciBQ
cmludFRvKCkgYnV0IGNhbiBiZSBpbXBsaWNpdGx5Ci0gIC8vIGNvbnZlcnRlZCB0byBhYnNsOjpz
dHJpbmdfdmlldywgd2UgcHJpbnQgaXQgYXMgYSBhYnNsOjpzdHJpbmdfdmlldy4KLSAgLy8KLSAg
Ly8gTm90ZTogdGhlIGltcGxlbWVudGF0aW9uIGlzIGZ1cnRoZXIgYmVsb3csIGFzIGl0IGRlcGVu
ZHMgb24KLSAgLy8gaW50ZXJuYWw6OlByaW50VG8gc3ltYm9sIHdoaWNoIGlzIGRlZmluZWQgbGF0
ZXIgaW4gdGhlIGZpbGUuCi0gIHN0YXRpYyB2b2lkIFByaW50VmFsdWUoY29uc3QgVCYgdmFsdWUs
IDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci19OwotI2VuZGlmCi0KLS8vIFByaW50cyB0aGUgZ2l2ZW4g
dmFsdWUgdG8gdGhlIGdpdmVuIG9zdHJlYW0uICBJZiB0aGUgdmFsdWUgaXMgYQotLy8gcHJvdG9j
b2wgbWVzc2FnZSwgaXRzIGRlYnVnIHN0cmluZyBpcyBwcmludGVkOyBpZiBpdCdzIGFuIGVudW0g
b3IKLS8vIG9mIGEgdHlwZSBpbXBsaWNpdGx5IGNvbnZlcnRpYmxlIHRvIEJpZ2dlc3RJbnQsIGl0
J3MgcHJpbnRlZCBhcyBhbgotLy8gaW50ZWdlcjsgb3RoZXJ3aXNlIHRoZSBieXRlcyBpbiB0aGUg
dmFsdWUgYXJlIHByaW50ZWQuICBUaGlzIGlzCi0vLyB3aGF0IFVuaXZlcnNhbFByaW50ZXI8VD46
OlByaW50KCkgZG9lcyB3aGVuIGl0IGtub3dzIG5vdGhpbmcgYWJvdXQKLS8vIHR5cGUgVCBhbmQg
VCBoYXMgbmVpdGhlciA8PCBvcGVyYXRvciBub3IgUHJpbnRUbygpLgotLy8KLS8vIEEgdXNlciBj
YW4gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvciBmb3IgYSBjbGFzcyB0eXBlIEZvbyBieSBkZWZpbmlu
ZwotLy8gYSA8PCBvcGVyYXRvciBpbiB0aGUgbmFtZXNwYWNlIHdoZXJlIEZvbyBpcyBkZWZpbmVk
LgotLy8KLS8vIFdlIHB1dCB0aGlzIG9wZXJhdG9yIGluIG5hbWVzcGFjZSAnaW50ZXJuYWwyJyBp
bnN0ZWFkIG9mICdpbnRlcm5hbCcKLS8vIHRvIHNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiwg
YXMgbXVjaCBjb2RlIGluICdpbnRlcm5hbCcgbmVlZHMgdG8KLS8vIHVzZSA8PCBpbiBTVEwsIHdo
aWNoIHdvdWxkIGNvbmZsaWN0IHdpdGggb3VyIG93biA8PCB3ZXJlIGl0IGRlZmluZWQKLS8vIGlu
ICdpbnRlcm5hbCcuCi0vLwotLy8gTm90ZSB0aGF0IHRoaXMgb3BlcmF0b3I8PCB0YWtlcyBhIGdl
bmVyaWMgc3RkOjpiYXNpY19vc3RyZWFtPENoYXIsCi0vLyBDaGFyVHJhaXRzPiB0eXBlIGluc3Rl
YWQgb2YgdGhlIG1vcmUgcmVzdHJpY3RlZCBzdGQ6Om9zdHJlYW0uICBJZgotLy8gd2UgZGVmaW5l
IGl0IHRvIHRha2UgYW4gc3RkOjpvc3RyZWFtIGluc3RlYWQsIHdlJ2xsIGdldCBhbgotLy8gImFt
YmlndW91cyBvdmVybG9hZHMiIGNvbXBpbGVyIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHByaW50IGEg
dHlwZQotLy8gRm9vIHRoYXQgc3VwcG9ydHMgc3RyZWFtaW5nIHRvIHN0ZDo6YmFzaWNfb3N0cmVh
bTxDaGFyLAotLy8gQ2hhclRyYWl0cz4sIGFzIHRoZSBjb21waWxlciBjYW5ub3QgdGVsbCB3aGV0
aGVyCi0vLyBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IFQmKSBvcgotLy8gb3BlcmF0
b3I8PChzdGQ6OmJhc2ljX3N0cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiwgY29uc3QgRm9vJikgaXMg
bW9yZQotLy8gc3BlY2lmaWMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhciwgdHlwZW5hbWUgQ2hh
clRyYWl0cywgdHlwZW5hbWUgVD4KLTo6c3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFp
dHM+JiBvcGVyYXRvcjw8KAotICAgIDo6c3RkOjpiYXNpY19vc3RyZWFtPENoYXIsIENoYXJUcmFp
dHM+JiBvcywgY29uc3QgVCYgeCkgewotICBUeXBlV2l0aG91dEZvcm1hdHRlcjxULCAoaW50ZXJu
YWw6OklzQVByb3RvY29sTWVzc2FnZTxUPjo6dmFsdWUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA/IGtQcm90b2J1ZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW50
ZXJuYWw6OkltcGxpY2l0bHlDb252ZXJ0aWJsZTwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBUJiwgaW50ZXJuYWw6OkJpZ2dlc3RJbnQ+Ojp2YWx1ZQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ga0NvbnZlcnRpYmxlVG9JbnRlZ2VyCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOgotI2lmIEdURVNUX0hBU19BQlNM
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OkltcGxpY2l0
bHlDb252ZXJ0aWJsZTwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVCYsIGFic2w6OnN0cmluZ192aWV3Pjo6dmFsdWUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPyBrQ29udmVydGlibGVUb1N0cmluZ1ZpZXcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOgorc3RydWN0IENvbnZlcnRpYmxlVG9T
dHJpbmdWaWV3UHJpbnRlciB7CisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisg
IHN0YXRpYyB2b2lkIFByaW50VmFsdWUoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgdmFsdWUsIDo6c3Rk
Ojpvc3RyZWFtKiBvcykgeworICAgIGludGVybmFsOjpVbml2ZXJzYWxQcmludCh2YWx1ZSwgb3Mp
OworICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a090aGVyVHlwZSk+OjpQcmludFZhbHVlKHgsICZvcyk7Ci0gIHJldHVybiBvczsKLX0KK307CiAK
LX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbDIKLX0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLS8v
IFRoaXMgbmFtZXNwYWNlIE1VU1QgTk9UIEJFIE5FU1RFRCBJTiA6OnRlc3RpbmcsIG9yIHRoZSBu
YW1lIGxvb2stdXAKLS8vIG1hZ2ljIG5lZWRlZCBmb3IgaW1wbGVtZW50aW5nIFVuaXZlcnNhbFBy
aW50ZXIgd29uJ3Qgd29yay4KLW5hbWVzcGFjZSB0ZXN0aW5nX2ludGVybmFsIHsKKy8vIFByaW50
cyB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBnaXZlbiBvYmplY3QgdG8gdGhlIGdp
dmVuCisvLyBvc3RyZWFtLgorR1RFU1RfQVBJXyB2b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIG9ial9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK3N0cnVjdCBSYXdCeXRlc1ByaW50ZXIgeworICAv
LyBTRklOQUUgb24gYHNpemVvZmAgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSB0eXBl
LgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90ID0gc2l6ZW9mKFQpPgorICBzdGF0aWMg
dm9pZCBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAg
ICBQcmludEJ5dGVzSW5PYmplY3RUbygKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWdu
ZWQgY2hhcio+KAorICAgICAgICAgICAgLy8gTG9hZCBiZWFyaW5nIGNhc3QgdG8gdm9pZCogdG8g
c3VwcG9ydCBpT1MKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHN0
ZDo6YWRkcmVzc29mKHZhbHVlKSkpLAorICAgICAgICBzaXplb2YodmFsdWUpLCBvcyk7CisgIH0K
K307CiAKLS8vIFVzZWQgdG8gcHJpbnQgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhbiBTVEwtc3R5bGUg
Y29udGFpbmVyIHdoZW4gdGhlCi0vLyB1c2VyIGRvZXNuJ3QgZGVmaW5lIFByaW50VG8oKSBmb3Ig
aXQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgRGVmYXVsdFByaW50Tm9uQ29udGFpbmVy
VG8oY29uc3QgVCYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAvLyBXaXRoIHRoZSBm
b2xsb3dpbmcgc3RhdGVtZW50LCBkdXJpbmcgdW5xdWFsaWZpZWQgbmFtZSBsb29rdXAsCi0gIC8v
IHRlc3Rpbmc6OmludGVybmFsMjo6b3BlcmF0b3I8PCBhcHBlYXJzIGFzIGlmIGl0IHdhcyBkZWNs
YXJlZCBpbgotICAvLyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgbmFtZXNwYWNlIHRoYXQgY29udGFp
bnMgYm90aAotICAvLyA6OnRlc3RpbmdfaW50ZXJuYWwgYW5kIDo6dGVzdGluZzo6aW50ZXJuYWwy
LCBpLmUuIHRoZSBnbG9iYWwKLSAgLy8gbmFtZXNwYWNlLiAgRm9yIG1vcmUgZGV0YWlscywgcmVm
ZXIgdG8gdGhlIEMrKyBTdGFuZGFyZCBzZWN0aW9uCi0gIC8vIDcuMy40LTEgW25hbWVzcGFjZS51
ZGlyXS4gIFRoaXMgYWxsb3dzIHVzIHRvIGZhbGwgYmFjayBvbnRvCi0gIC8vIHRlc3Rpbmc6Omlu
dGVybmFsMjo6b3BlcmF0b3I8PCBpbiBjYXNlIFQgZG9lc24ndCBjb21lIHdpdGggYSA8PAotICAv
LyBvcGVyYXRvci4KLSAgLy8KLSAgLy8gV2UgY2Fubm90IHdyaXRlICd1c2luZyA6OnRlc3Rpbmc6
OmludGVybmFsMjo6b3BlcmF0b3I8PDsnLCB3aGljaAotICAvLyBnY2MgMy4zIGZhaWxzIHRvIGNv
bXBpbGUgZHVlIHRvIGEgY29tcGlsZXIgYnVnLgotICB1c2luZyBuYW1lc3BhY2UgOjp0ZXN0aW5n
OjppbnRlcm5hbDI7ICAvLyBOT0xJTlQKK3N0cnVjdCBGYWxsYmFja1ByaW50ZXIgeworICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KKyAgc3RhdGljIHZvaWQgUHJpbnRWYWx1ZShjb25zdCBUJiwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8ICIoaW5jb21wbGV0ZSB0eXBlKSI7CisgIH0K
K307CiAKLSAgLy8gQXNzdW1pbmcgVCBpcyBkZWZpbmVkIGluIG5hbWVzcGFjZSBmb28sIGluIHRo
ZSBuZXh0IHN0YXRlbWVudCwKLSAgLy8gdGhlIGNvbXBpbGVyIHdpbGwgY29uc2lkZXIgYWxsIG9m
OgotICAvLwotICAvLyAgIDEuIGZvbzo6b3BlcmF0b3I8PCAodGhhbmtzIHRvIEtvZW5pZyBsb29r
LXVwKSwKLSAgLy8gICAyLiA6Om9wZXJhdG9yPDwgKGFzIHRoZSBjdXJyZW50IG5hbWVzcGFjZSBp
cyBlbmNsb3NlZCBpbiA6OiksCi0gIC8vICAgMy4gdGVzdGluZzo6aW50ZXJuYWwyOjpvcGVyYXRv
cjw8ICh0aGFua3MgdG8gdGhlIHVzaW5nIHN0YXRlbWVudCBhYm92ZSkuCi0gIC8vCi0gIC8vIFRo
ZSBvcGVyYXRvcjw8IHdob3NlIHR5cGUgbWF0Y2hlcyBUIGJlc3Qgd2lsbCBiZSBwaWNrZWQuCi0g
IC8vCi0gIC8vIFdlIGRlbGliZXJhdGVseSBhbGxvdyAjMiB0byBiZSBhIGNhbmRpZGF0ZSwgYXMg
c29tZXRpbWVzIGl0J3MKLSAgLy8gaW1wb3NzaWJsZSB0byBkZWZpbmUgIzEgKGUuZy4gd2hlbiBm
b28gaXMgOjpzdGQsIGRlZmluaW5nCi0gIC8vIGFueXRoaW5nIGluIGl0IGlzIHVuZGVmaW5lZCBi
ZWhhdmlvciB1bmxlc3MgeW91IGFyZSBhIGNvbXBpbGVyCi0gIC8vIHZlbmRvci4pLgotICAqb3Mg
PDwgdmFsdWU7Ci19CisvLyBUcnkgZXZlcnkgcHJpbnRlciBpbiBvcmRlciBhbmQgcmV0dXJuIHRo
ZSBmaXJzdCBvbmUgdGhhdCB3b3Jrcy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBF
LCB0eXBlbmFtZSBQcmludGVyLCB0eXBlbmFtZS4uLiBQcmludGVycz4KK3N0cnVjdCBGaW5kRmly
c3RQcmludGVyIDogRmluZEZpcnN0UHJpbnRlcjxULCBFLCBQcmludGVycy4uLj4ge307CiAKLX0g
IC8vIG5hbWVzcGFjZSB0ZXN0aW5nX2ludGVybmFsCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgUHJpbnRlciwgdHlwZW5hbWUuLi4gUHJpbnRlcnM+CitzdHJ1Y3QgRmluZEZpcnN0UHJp
bnRlcjwKKyAgICBULCBkZWNsdHlwZShQcmludGVyOjpQcmludFZhbHVlKHN0ZDo6ZGVjbHZhbDxj
b25zdCBUJj4oKSwgbnVsbHB0cikpLAorICAgIFByaW50ZXIsIFByaW50ZXJzLi4uPiB7CisgIHVz
aW5nIHR5cGUgPSBQcmludGVyOworfTsKIAotbmFtZXNwYWNlIHRlc3RpbmcgewotbmFtZXNwYWNl
IGludGVybmFsIHsKKy8vIFNlbGVjdCB0aGUgYmVzdCBwcmludGVyIGluIHRoZSBmb2xsb3dpbmcg
b3JkZXI6CisvLyAgLSBQcmludCBjb250YWluZXJzICh0aGV5IGhhdmUgYmVnaW4vZW5kL2V0Yyku
CisvLyAgLSBQcmludCBmdW5jdGlvbiBwb2ludGVycy4KKy8vICAtIFByaW50IG9iamVjdCBwb2lu
dGVycy4KKy8vICAtIFVzZSB0aGUgc3RyZWFtIG9wZXJhdG9yLCBpZiBhdmFpbGFibGUuCisvLyAg
LSBQcmludCBwcm90b2NvbCBidWZmZXJzLgorLy8gIC0gUHJpbnQgdHlwZXMgY29udmVydGlibGUg
dG8gQmlnZ2VzdEludC4KKy8vICAtIFByaW50IHR5cGVzIGNvbnZlcnRpYmxlIHRvIFN0cmluZ1Zp
ZXcsIGlmIGF2YWlsYWJsZS4KKy8vICAtIEZhbGxiYWNrIHRvIHByaW50aW5nIHRoZSByYXcgYnl0
ZXMgb2YgdGhlIG9iamVjdC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordm9pZCBQcmludFdpdGhG
YWxsYmFjayhjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIHVzaW5nIFBy
aW50ZXIgPSB0eXBlbmFtZSBGaW5kRmlyc3RQcmludGVyPAorICAgICAgVCwgdm9pZCwgQ29udGFp
bmVyUHJpbnRlciwgRnVuY3Rpb25Qb2ludGVyUHJpbnRlciwgUG9pbnRlclByaW50ZXIsCisgICAg
ICBpbnRlcm5hbF9zdHJlYW1fb3BlcmF0b3Jfd2l0aG91dF9sZXhpY2FsX25hbWVfbG9va3VwOjpT
dHJlYW1QcmludGVyLAorICAgICAgUHJvdG9idWZQcmludGVyLCBDb252ZXJ0aWJsZVRvSW50ZWdl
clByaW50ZXIsCisgICAgICBDb252ZXJ0aWJsZVRvU3RyaW5nVmlld1ByaW50ZXIsIFJhd0J5dGVz
UHJpbnRlciwgRmFsbGJhY2tQcmludGVyPjo6dHlwZTsKKyAgUHJpbnRlcjo6UHJpbnRWYWx1ZSh2
YWx1ZSwgb3MpOworfQogCiAvLyBGb3JtYXRGb3JDb21wYXJpc29uPFRvUHJpbnQsIE90aGVyT3Bl
cmFuZD46OkZvcm1hdCh2YWx1ZSkgZm9ybWF0cyBhCiAvLyB2YWx1ZSBvZiB0eXBlIFRvUHJpbnQg
dGhhdCBpcyBhbiBvcGVyYW5kIG9mIGEgY29tcGFyaXNvbiBhc3NlcnRpb24KQEAgLTM0MCw2ICsz
NjUsMTQgQEAgR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY2hhcik7CiBH
VEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyKTsKIEdURVNU
X0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1BPSU5URVJfKHdjaGFyX3QpOwogR1RFU1RfSU1QTF9G
T1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY29uc3Qgd2NoYXJfdCk7CisjaWZkZWYgX19jcHBf
Y2hhcjhfdAorR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY2hhcjhfdCk7
CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19QT0lOVEVSXyhjb25zdCBjaGFyOF90KTsK
KyNlbmRpZgorR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY2hhcjE2X3Qp
OworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY29uc3QgY2hhcjE2X3Qp
OworR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY2hhcjMyX3QpOworR1RF
U1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY29uc3QgY2hhcjMyX3QpOwogCiAj
dW5kZWYgR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8KIApAQCAtMzU3LDE2
ICszOTAsMTQgQEAgR1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfUE9JTlRFUl8oY29uc3Qg
d2NoYXJfdCk7CiAKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY2hhciwg
OjpzdGQ6OnN0cmluZyk7CiBHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNv
bnN0IGNoYXIsIDo6c3RkOjpzdHJpbmcpOwotCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcK
LUdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklOR18oY2hhciwgOjpzdHJpbmcpOwot
R1RFU1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjb25zdCBjaGFyLCA6OnN0cmlu
Zyk7Ci0jZW5kaWYKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotR1RFU1RfSU1QTF9G
T1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyh3Y2hhcl90LCA6OndzdHJpbmcpOwotR1RFU1RfSU1Q
TF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjb25zdCB3Y2hhcl90LCA6OndzdHJpbmcpOwor
I2lmZGVmIF9fY3BwX2NoYXI4X3QKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NUUklO
R18oY2hhcjhfdCwgOjpzdGQ6OnU4c3RyaW5nKTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5H
X0FTX1NUUklOR18oY29uc3QgY2hhcjhfdCwgOjpzdGQ6OnU4c3RyaW5nKTsKICNlbmRpZgorR1RF
U1RfSU1QTF9GT1JNQVRfQ19TVFJJTkdfQVNfU1RSSU5HXyhjaGFyMTZfdCwgOjpzdGQ6OnUxNnN0
cmluZyk7CitHVEVTVF9JTVBMX0ZPUk1BVF9DX1NUUklOR19BU19TVFJJTkdfKGNvbnN0IGNoYXIx
Nl90LCA6OnN0ZDo6dTE2c3RyaW5nKTsKK0dURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NU
UklOR18oY2hhcjMyX3QsIDo6c3RkOjp1MzJzdHJpbmcpOworR1RFU1RfSU1QTF9GT1JNQVRfQ19T
VFJJTkdfQVNfU1RSSU5HXyhjb25zdCBjaGFyMzJfdCwgOjpzdGQ6OnUzMnN0cmluZyk7CiAKICNp
ZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIEdURVNUX0lNUExfRk9STUFUX0NfU1RSSU5HX0FTX1NU
UklOR18od2NoYXJfdCwgOjpzdGQ6OndzdHJpbmcpOwpAQCAtMzk5LDg1ICs0MzAsNiBAQCBzdGQ6
OnN0cmluZyBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UoCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KIGNsYXNzIFVuaXZlcnNhbFByaW50ZXI7CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotdm9pZCBVbml2ZXJzYWxQcmludChjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9z
KTsKLQotZW51bSBEZWZhdWx0UHJpbnRlclR5cGUgewotICBrUHJpbnRDb250YWluZXIsCi0gIGtQ
cmludFBvaW50ZXIsCi0gIGtQcmludEZ1bmN0aW9uUG9pbnRlciwKLSAga1ByaW50T3RoZXIsCi19
OwotdGVtcGxhdGUgPERlZmF1bHRQcmludGVyVHlwZSB0eXBlPiBzdHJ1Y3QgV3JhcFByaW50ZXJU
eXBlIHt9OwotCi0vLyBVc2VkIHRvIHByaW50IGFuIFNUTC1zdHlsZSBjb250YWluZXIgd2hlbiB0
aGUgdXNlciBkb2Vzbid0IGRlZmluZQotLy8gYSBQcmludFRvKCkgZm9yIGl0LgotdGVtcGxhdGUg
PHR5cGVuYW1lIEM+Ci12b2lkIERlZmF1bHRQcmludFRvKFdyYXBQcmludGVyVHlwZTxrUHJpbnRD
b250YWluZXI+IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBDJiBjb250
YWluZXIsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBjb25zdCBzaXplX3Qga01heENvdW50ID0g
MzI7ICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcHJpbnQuCi0gICpvcyA8
PCAneyc7Ci0gIHNpemVfdCBjb3VudCA9IDA7Ci0gIGZvciAodHlwZW5hbWUgQzo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBjb250YWluZXIuYmVnaW4oKTsKLSAgICAgICBpdCAhPSBjb250YWluZXIuZW5k
KCk7ICsraXQsICsrY291bnQpIHsKLSAgICBpZiAoY291bnQgPiAwKSB7Ci0gICAgICAqb3MgPDwg
JywnOwotICAgICAgaWYgKGNvdW50ID09IGtNYXhDb3VudCkgeyAgLy8gRW5vdWdoIGhhcyBiZWVu
IHByaW50ZWQuCi0gICAgICAgICpvcyA8PCAiIC4uLiI7Ci0gICAgICAgIGJyZWFrOwotICAgICAg
fQotICAgIH0KLSAgICAqb3MgPDwgJyAnOwotICAgIC8vIFdlIGNhbm5vdCBjYWxsIFByaW50VG8o
Kml0LCBvcykgaGVyZSBhcyBQcmludFRvKCkgZG9lc24ndAotICAgIC8vIGhhbmRsZSAqaXQgYmVp
bmcgYSBuYXRpdmUgYXJyYXkuCi0gICAgaW50ZXJuYWw6OlVuaXZlcnNhbFByaW50KCppdCwgb3Mp
OwotICB9Ci0KLSAgaWYgKGNvdW50ID4gMCkgewotICAgICpvcyA8PCAnICc7Ci0gIH0KLSAgKm9z
IDw8ICd9JzsKLX0KLQotLy8gVXNlZCB0byBwcmludCBhIHBvaW50ZXIgdGhhdCBpcyBuZWl0aGVy
IGEgY2hhciBwb2ludGVyIG5vciBhIG1lbWJlcgotLy8gcG9pbnRlciwgd2hlbiB0aGUgdXNlciBk
b2Vzbid0IGRlZmluZSBQcmludFRvKCkgZm9yIGl0LiAgKEEgbWVtYmVyCi0vLyB2YXJpYWJsZSBw
b2ludGVyIG9yIG1lbWJlciBmdW5jdGlvbiBwb2ludGVyIGRvZXNuJ3QgcmVhbGx5IHBvaW50IHRv
Ci0vLyBhIGxvY2F0aW9uIGluIHRoZSBhZGRyZXNzIHNwYWNlLiAgVGhlaXIgcmVwcmVzZW50YXRp
b24gaXMKLS8vIGltcGxlbWVudGF0aW9uLWRlZmluZWQuICBUaGVyZWZvcmUgdGhleSB3aWxsIGJl
IHByaW50ZWQgYXMgcmF3Ci0vLyBieXRlcy4pCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQg
RGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludFBvaW50ZXI+IC8qIGR1bW15ICov
LAotICAgICAgICAgICAgICAgICAgICBUKiBwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgaWYg
KHAgPT0gTlVMTCkgewotICAgICpvcyA8PCAiTlVMTCI7Ci0gIH0gZWxzZSB7Ci0gICAgLy8gVCBp
cyBub3QgYSBmdW5jdGlvbiB0eXBlLiAgV2UganVzdCBjYWxsIDw8IHRvIHByaW50IHAsCi0gICAg
Ly8gcmVseWluZyBvbiBBREwgdG8gcGljayB1cCB1c2VyLWRlZmluZWQgPDwgZm9yIHRoZWlyIHBv
aW50ZXIKLSAgICAvLyB0eXBlcywgaWYgYW55LgotICAgICpvcyA8PCBwOwotICB9Ci19Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQ
cmludEZ1bmN0aW9uUG9pbnRlcj4gLyogZHVtbXkgKi8sCi0gICAgICAgICAgICAgICAgICAgIFQq
IHAsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgKm9zIDw8
ICJOVUxMIjsKLSAgfSBlbHNlIHsKLSAgICAvLyBUIGlzIGEgZnVuY3Rpb24gdHlwZSwgc28gJypv
cyA8PCBwJyBkb2Vzbid0IGRvIHdoYXQgd2Ugd2FudAotICAgIC8vIChpdCBqdXN0IHByaW50cyBw
IGFzIGJvb2wpLiAgV2Ugd2FudCB0byBwcmludCBwIGFzIGEgY29uc3QKLSAgICAvLyB2b2lkKi4K
LSAgICAqb3MgPDwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4ocCk7Ci0gIH0KLX0KLQot
Ly8gVXNlZCB0byBwcmludCBhIG5vbi1jb250YWluZXIsIG5vbi1wb2ludGVyIHZhbHVlIHdoZW4g
dGhlIHVzZXIKLS8vIGRvZXNuJ3QgZGVmaW5lIFByaW50VG8oKSBmb3IgaXQuCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLXZvaWQgRGVmYXVsdFByaW50VG8oV3JhcFByaW50ZXJUeXBlPGtQcmludE90
aGVyPiAvKiBkdW1teSAqLywKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgVCYgdmFsdWUsIDo6
c3RkOjpvc3RyZWFtKiBvcykgewotICA6OnRlc3RpbmdfaW50ZXJuYWw6OkRlZmF1bHRQcmludE5v
bkNvbnRhaW5lclRvKHZhbHVlLCBvcyk7Ci19Ci0KIC8vIFByaW50cyB0aGUgZ2l2ZW4gdmFsdWUg
dXNpbmcgdGhlIDw8IG9wZXJhdG9yIGlmIGl0IGhhcyBvbmU7CiAvLyBvdGhlcndpc2UgcHJpbnRz
IHRoZSBieXRlcyBpbiBpdC4gIFRoaXMgaXMgd2hhdAogLy8gVW5pdmVyc2FsUHJpbnRlcjxUPjo6
UHJpbnQoKSBkb2VzIHdoZW4gUHJpbnRUbygpIGlzIG5vdCBzcGVjaWFsaXplZApAQCAtNDkxLDQw
ICs0NDMsNyBAQCB2b2lkIERlZmF1bHRQcmludFRvKFdyYXBQcmludGVyVHlwZTxrUHJpbnRPdGhl
cj4gLyogZHVtbXkgKi8sCiAvLyB3YW50cykuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIHZvaWQg
UHJpbnRUbyhjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIC8vIERlZmF1
bHRQcmludFRvKCkgaXMgb3ZlcmxvYWRlZC4gIFRoZSB0eXBlIG9mIGl0cyBmaXJzdCBhcmd1bWVu
dAotICAvLyBkZXRlcm1pbmVzIHdoaWNoIHZlcnNpb24gd2lsbCBiZSBwaWNrZWQuCi0gIC8vCi0g
IC8vIE5vdGUgdGhhdCB3ZSBjaGVjayBmb3IgY29udGFpbmVyIHR5cGVzIGhlcmUsIHByaW9yIHRv
IHdlIGNoZWNrCi0gIC8vIGZvciBwcm90b2NvbCBtZXNzYWdlIHR5cGVzIGluIG91ciBvcGVyYXRv
cjw8LiAgVGhlIHJhdGlvbmFsZSBpczoKLSAgLy8KLSAgLy8gRm9yIHByb3RvY29sIG1lc3NhZ2Vz
LCB3ZSB3YW50IHRvIGdpdmUgcGVvcGxlIGEgY2hhbmNlIHRvCi0gIC8vIG92ZXJyaWRlIEdvb2ds
ZSBNb2NrJ3MgZm9ybWF0IGJ5IGRlZmluaW5nIGEgUHJpbnRUbygpIG9yCi0gIC8vIG9wZXJhdG9y
PDwuICBGb3IgU1RMIGNvbnRhaW5lcnMsIG90aGVyIGZvcm1hdHMgY2FuIGJlCi0gIC8vIGluY29t
cGF0aWJsZSB3aXRoIEdvb2dsZSBNb2NrJ3MgZm9ybWF0IGZvciB0aGUgY29udGFpbmVyCi0gIC8v
IGVsZW1lbnRzOyB0aGVyZWZvcmUgd2UgY2hlY2sgZm9yIGNvbnRhaW5lciB0eXBlcyBoZXJlIHRv
IGVuc3VyZQotICAvLyB0aGF0IG91ciBmb3JtYXQgaXMgdXNlZC4KLSAgLy8KLSAgLy8gTm90ZSB0
aGF0IE1TVkMgYW5kIGNsYW5nLWNsIGRvIGFsbG93IGFuIGltcGxpY2l0IGNvbnZlcnNpb24gZnJv
bQotICAvLyBwb2ludGVyLXRvLWZ1bmN0aW9uIHRvIHBvaW50ZXItdG8tb2JqZWN0LCBidXQgY2xh
bmctY2wgd2FybnMgb24gaXQuCi0gIC8vIFNvIGRvbid0IHVzZSBJbXBsaWNpdGx5Q29udmVydGli
bGUgaWYgaXQgY2FuIGJlIGhlbHBlZCBzaW5jZSBpdCB3aWxsCi0gIC8vIGNhdXNlIHRoaXMgd2Fy
bmluZywgYW5kIHVzZSBhIHNlcGFyYXRlIG92ZXJsb2FkIG9mIERlZmF1bHRQcmludFRvIGZvcgot
ICAvLyBmdW5jdGlvbiBwb2ludGVycyBzbyB0aGF0IHRoZSBgKm9zIDw8IHBgIGluIHRoZSBvYmpl
Y3QgcG9pbnRlciBvdmVybG9hZAotICAvLyBkb2Vzbid0IGNhdXNlIHRoYXQgd2FybmluZyBlaXRo
ZXIuCi0gIERlZmF1bHRQcmludFRvKAotICAgICAgV3JhcFByaW50ZXJUeXBlIDwKLSAgICAgICAg
ICAgICAgICAgIChzaXplb2YoSXNDb250YWluZXJUZXN0PFQ+KDApKSA9PSBzaXplb2YoSXNDb250
YWluZXIpKSAmJgotICAgICAgICAgICAgICAhSXNSZWN1cnNpdmVDb250YWluZXI8VD46OnZhbHVl
Ci0gICAgICAgICAgPyBrUHJpbnRDb250YWluZXIKLSAgICAgICAgICA6ICFpc19wb2ludGVyPFQ+
Ojp2YWx1ZQotICAgICAgICAgICAgICAgID8ga1ByaW50T3RoZXIKLSNpZiBHVEVTVF9MQU5HX0NY
WDExCi0gICAgICAgICAgICAgICAgOiBzdGQ6OmlzX2Z1bmN0aW9uPHR5cGVuYW1lIHN0ZDo6cmVt
b3ZlX3BvaW50ZXI8VD46OnR5cGU+Ojp2YWx1ZQotI2Vsc2UKLSAgICAgICAgICAgICAgICA6ICFp
bnRlcm5hbDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPFQsIGNvbnN0IHZvaWQqPjo6dmFsdWUKLSNl
bmRpZgotICAgICAgICAgICAgICAgICAgICAgID8ga1ByaW50RnVuY3Rpb25Qb2ludGVyCi0gICAg
ICAgICAgICAgICAgICAgICAgOiBrUHJpbnRQb2ludGVyID4gKCksCi0gICAgICB2YWx1ZSwgb3Mp
OworICBpbnRlcm5hbDo6UHJpbnRXaXRoRmFsbGJhY2sodmFsdWUsIG9zKTsKIH0KIAogLy8gVGhl
IGZvbGxvd2luZyBsaXN0IG9mIFByaW50VG8oKSBvdmVybG9hZHMgdGVsbHMKQEAgLTU1NSw2ICs0
NzQsMTYgQEAgaW5saW5lIHZvaWQgUHJpbnRUbyhib29sIHgsIDo6c3RkOjpvc3RyZWFtKiBvcykg
ewogLy8gaXMgaW1wbGVtZW50ZWQgYXMgYW4gdW5zaWduZWQgdHlwZS4KIEdURVNUX0FQSV8gdm9p
ZCBQcmludFRvKHdjaGFyX3Qgd2MsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiAKK0dURVNUX0FQSV8g
dm9pZCBQcmludFRvKGNoYXIzMl90IGMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CitpbmxpbmUgdm9p
ZCBQcmludFRvKGNoYXIxNl90IGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFRvKElt
cGxpY2l0Q2FzdF88Y2hhcjMyX3Q+KGMpLCBvcyk7Cit9CisjaWZkZWYgX19jcHBfY2hhcjhfdAor
aW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyOF90IGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQ
cmludFRvKEltcGxpY2l0Q2FzdF88Y2hhcjMyX3Q+KGMpLCBvcyk7Cit9CisjZW5kaWYKKwogLy8g
T3ZlcmxvYWRzIGZvciBDIHN0cmluZ3MuCiBHVEVTVF9BUElfIHZvaWQgUHJpbnRUbyhjb25zdCBj
aGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwogaW5saW5lIHZvaWQgUHJpbnRUbyhjaGFyKiBz
LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKQEAgLTU3NSw2ICs1MDQsMjMgQEAgaW5saW5lIHZvaWQg
UHJpbnRUbyhjb25zdCB1bnNpZ25lZCBjaGFyKiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIGlu
bGluZSB2b2lkIFByaW50VG8odW5zaWduZWQgY2hhciogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
CiAgIFByaW50VG8oSW1wbGljaXRDYXN0Xzxjb25zdCB2b2lkKj4ocyksIG9zKTsKIH0KKyNpZmRl
ZiBfX2NwcF9jaGFyOF90CisvLyBPdmVybG9hZHMgZm9yIHU4IHN0cmluZ3MuCit2b2lkIFByaW50
VG8oY29uc3QgY2hhcjhfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFBy
aW50VG8oY2hhcjhfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFByaW50VG8oSW1wbGlj
aXRDYXN0Xzxjb25zdCBjaGFyOF90Kj4ocyksIG9zKTsKK30KKyNlbmRpZgorLy8gT3ZlcmxvYWRz
IGZvciB1MTYgc3RyaW5ncy4KK3ZvaWQgUHJpbnRUbyhjb25zdCBjaGFyMTZfdCogcywgOjpzdGQ6
Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFByaW50VG8oY2hhcjE2X3QqIHMsIDo6c3RkOjpv
c3RyZWFtKiBvcykgeworICBQcmludFRvKEltcGxpY2l0Q2FzdF88Y29uc3QgY2hhcjE2X3QqPihz
KSwgb3MpOworfQorLy8gT3ZlcmxvYWRzIGZvciB1MzIgc3RyaW5ncy4KK3ZvaWQgUHJpbnRUbyhj
b25zdCBjaGFyMzJfdCogcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKK2lubGluZSB2b2lkIFByaW50
VG8oY2hhcjMyX3QqIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICBQcmludFRvKEltcGxpY2l0
Q2FzdF88Y29uc3QgY2hhcjMyX3QqPihzKSwgb3MpOworfQogCiAvLyBNU1ZDIGNhbiBiZSBjb25m
aWd1cmVkIHRvIGRlZmluZSB3Y2hhcl90IGFzIGEgdHlwZWRlZiBvZiB1bnNpZ25lZAogLy8gc2hv
cnQuICBJdCBkZWZpbmVzIF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEIHdoZW4gd2NoYXJfdCBpcyBh
IG5hdGl2ZQpAQCAtNjAzLDI3ICs1NDksMzMgQEAgdm9pZCBQcmludFJhd0FycmF5VG8oY29uc3Qg
VCBhW10sIHNpemVfdCBjb3VudCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAgIH0KIH0KIAotLy8g
T3ZlcmxvYWRzIGZvciA6OnN0cmluZyBhbmQgOjpzdGQ6OnN0cmluZy4KLSNpZiBHVEVTVF9IQVNf
R0xPQkFMX1NUUklORwotR1RFU1RfQVBJXyB2b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpzdHJp
bmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsKLWlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpz
dHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFN0cmluZ1RvKHMsIG9zKTsK
LX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQorLy8gT3ZlcmxvYWRzIGZv
ciA6OnN0ZDo6c3RyaW5nLgogR1RFU1RfQVBJXyB2b2lkIFByaW50U3RyaW5nVG8oY29uc3QgOjpz
dGQ6OnN0cmluZyZzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOwogaW5saW5lIHZvaWQgUHJpbnRUbyhj
b25zdCA6OnN0ZDo6c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgUHJpbnRTdHJp
bmdUbyhzLCBvcyk7CiB9CiAKLS8vIE92ZXJsb2FkcyBmb3IgOjp3c3RyaW5nIGFuZCA6OnN0ZDo6
d3N0cmluZy4KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLUdURVNUX0FQSV8gdm9pZCBQ
cmludFdpZGVTdHJpbmdUbyhjb25zdCA6OndzdHJpbmcmcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
LWlubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjp3c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSog
b3MpIHsKLSAgUHJpbnRXaWRlU3RyaW5nVG8ocywgb3MpOworLy8gT3ZlcmxvYWRzIGZvciA6OnN0
ZDo6dThzdHJpbmcKKyNpZmRlZiBfX2NwcF9jaGFyOF90CitHVEVTVF9BUElfIHZvaWQgUHJpbnRV
OFN0cmluZ1RvKGNvbnN0IDo6c3RkOjp1OHN0cmluZyYgcywgOjpzdGQ6Om9zdHJlYW0qIG9zKTsK
K2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnU4c3RyaW5nJiBzLCA6OnN0ZDo6b3N0
cmVhbSogb3MpIHsKKyAgUHJpbnRVOFN0cmluZ1RvKHMsIG9zKTsKK30KKyNlbmRpZgorCisvLyBP
dmVybG9hZHMgZm9yIDo6c3RkOjp1MTZzdHJpbmcKK0dURVNUX0FQSV8gdm9pZCBQcmludFUxNlN0
cmluZ1RvKGNvbnN0IDo6c3RkOjp1MTZzdHJpbmcmIHMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7Citp
bmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp1MTZzdHJpbmcmIHMsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgeworICBQcmludFUxNlN0cmluZ1RvKHMsIG9zKTsKK30KKworLy8gT3ZlcmxvYWRz
IGZvciA6OnN0ZDo6dTMyc3RyaW5nCitHVEVTVF9BUElfIHZvaWQgUHJpbnRVMzJTdHJpbmdUbyhj
b25zdCA6OnN0ZDo6dTMyc3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpOworaW5saW5lIHZv
aWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dTMyc3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3Mp
IHsKKyAgUHJpbnRVMzJTdHJpbmdUbyhzLCBvcyk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19H
TE9CQUxfV1NUUklORwogCisvLyBPdmVybG9hZHMgZm9yIDo6c3RkOjp3c3RyaW5nLgogI2lmIEdU
RVNUX0hBU19TVERfV1NUUklORwogR1RFU1RfQVBJXyB2b2lkIFByaW50V2lkZVN0cmluZ1RvKGNv
bnN0IDo6c3RkOjp3c3RyaW5nJnMsIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiBpbmxpbmUgdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjp3c3RyaW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKQEAg
LTYzMSwxMDYgKzU4Myw4MiBAQCBpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6c3RkOjp3c3Ry
aW5nJiBzLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIH0KICNlbmRpZiAgLy8gR1RFU1RfSEFTX1NU
RF9XU1RSSU5HCiAKLSNpZiBHVEVTVF9IQVNfQUJTTAotLy8gT3ZlcmxvYWQgZm9yIGFic2w6OnN0
cmluZ192aWV3LgotaW5saW5lIHZvaWQgUHJpbnRUbyhhYnNsOjpzdHJpbmdfdmlldyBzcCwgOjpz
dGQ6Om9zdHJlYW0qIG9zKSB7CisjaWYgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXCisv
LyBPdmVybG9hZCBmb3IgaW50ZXJuYWw6OlN0cmluZ1ZpZXcuCitpbmxpbmUgdm9pZCBQcmludFRv
KGludGVybmFsOjpTdHJpbmdWaWV3IHNwLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgUHJpbnRU
byg6OnN0ZDo6c3RyaW5nKHNwKSwgb3MpOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfQUJTTAor
I2VuZGlmICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfU1RSSU5HX1ZJRVcKIAotI2lmIEdURVNUX0xB
TkdfQ1hYMTEKIGlubGluZSB2b2lkIFByaW50VG8oc3RkOjpudWxscHRyX3QsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgeyAqb3MgPDwgIihudWxscHRyKSI7IH0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19D
WFgxMQogCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9IQVNfU1REX1RVUExFXwot
Ly8gSGVscGVyIGZ1bmN0aW9uIGZvciBwcmludGluZyBhIHR1cGxlLiAgVCBtdXN0IGJlIGluc3Rh
bnRpYXRlZCB3aXRoCi0vLyBhIHR1cGxlIHR5cGUuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZv
aWQgUHJpbnRUdXBsZVRvKGNvbnN0IFQmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcyk7Ci0jZW5kaWYg
IC8vIEdURVNUX0hBU19UUjFfVFVQTEUgfHwgR1RFU1RfSEFTX1NURF9UVVBMRV8KLQotI2lmIEdU
RVNUX0hBU19UUjFfVFVQTEUKLS8vIE92ZXJsb2FkIGZvciA6OnN0ZDo6dHIxOjp0dXBsZS4gIE5l
ZWRlZCBmb3IgcHJpbnRpbmcgZnVuY3Rpb24gYXJndW1lbnRzLAotLy8gd2hpY2ggYXJlIHBhY2tl
ZCBhcyB0dXBsZXMuCi0KLS8vIE92ZXJsb2FkZWQgUHJpbnRUbygpIGZvciB0dXBsZXMgb2YgdmFy
aW91cyBhcml0aWVzLiAgV2Ugc3VwcG9ydAotLy8gdHVwbGVzIG9mIHVwLXRvIDEwIGZpZWxkcy4g
IFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50YXRpb24gd29ya3MKLS8vIHJlZ2FyZGxlc3Mgb2Ygd2hl
dGhlciB0cjE6OnR1cGxlIGlzIGltcGxlbWVudGVkIHVzaW5nIHRoZQotLy8gbm9uLXN0YW5kYXJk
IHZhcmlhZGljIHRlbXBsYXRlIGZlYXR1cmUgb3Igbm90LgotCi1pbmxpbmUgdm9pZCBQcmludFRv
KGNvbnN0IDo6c3RkOjp0cjE6OnR1cGxlPD4mIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQ
cmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci12b2lkIFBy
aW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8VDE+JiB0LCA6OnN0ZDo6b3N0cmVhbSogb3Mp
IHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMj4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDI+
JiB0LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci12b2lkIFBy
aW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8VDEsIFQyLCBUMz4mIHQsIDo6c3RkOjpvc3Ry
ZWFtKiBvcykgewotICBQcmludFR1cGxlVG8odCwgb3MpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci12b2lkIFByaW50
VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8VDEsIFQyLCBUMywgVDQ+JiB0LCA6OnN0ZDo6b3N0
cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKK3ZvaWQgUHJpbnRUbyhzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFQ+IHJlZiwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNh
bFByaW50ZXI8VCY+OjpQcmludChyZWYuZ2V0KCksIG9zKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NT4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwg
VDU+JiB0LAotICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludFR1cGxl
VG8odCwgb3MpOworaW5saW5lIGNvbnN0IHZvaWQqIFZvaWRpZnlQb2ludGVyKGNvbnN0IHZvaWQq
IHApIHsgcmV0dXJuIHA7IH0KK2lubGluZSBjb25zdCB2b2lkKiBWb2lkaWZ5UG9pbnRlcih2b2xh
dGlsZSBjb25zdCB2b2lkKiBwKSB7CisgIHJldHVybiBjb25zdF9jYXN0PGNvbnN0IHZvaWQqPihw
KTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAgICAgICB0eXBlbmFtZSBUNj4KLXZvaWQg
UHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiYg
dCwKLSAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQs
IG9zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHI+Cit2b2lkIFByaW50U21h
cnRQb2ludGVyKGNvbnN0IFB0ciYgcHRyLCBzdGQ6Om9zdHJlYW0qIG9zLCBjaGFyKSB7CisgIGlm
IChwdHIgPT0gbnVsbHB0cikgeworICAgICpvcyA8PCAiKG51bGxwdHIpIjsKKyAgfSBlbHNlIHsK
KyAgICAvLyBXZSBjYW4ndCBwcmludCB0aGUgdmFsdWUuIEp1c3QgcHJpbnQgdGhlIHBvaW50ZXIu
LgorICAgICpvcyA8PCAiKCIgPDwgKFZvaWRpZnlQb2ludGVyKShwdHIuZ2V0KCkpIDw8ICIpIjsK
KyAgfQogfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNz4KLXZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6dHIxOjp0dXBsZTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNz4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyLAorICAgICAgICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6
aXNfdm9pZDxUPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICFzdGQ6OmlzX2FycmF5PFQ+Ojp2YWx1ZT46OnR5cGU+Cit2b2lkIFByaW50U21h
cnRQb2ludGVyKGNvbnN0IFB0ciYgcHRyLCBzdGQ6Om9zdHJlYW0qIG9zLCBpbnQpIHsKKyAgaWYg
KHB0ciA9PSBudWxscHRyKSB7CisgICAgKm9zIDw8ICIobnVsbHB0cikiOworICB9IGVsc2Ugewor
ICAgICpvcyA8PCAiKHB0ciA9ICIgPDwgKFZvaWRpZnlQb2ludGVyKShwdHIuZ2V0KCkpIDw8ICIs
IHZhbHVlID0gIjsKKyAgICBVbml2ZXJzYWxQcmludGVyPFQ+OjpQcmludCgqcHRyLCBvcyk7Cisg
ICAgKm9zIDw8ICIpIjsKKyAgfQogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgICAgICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci12b2lkIFByaW50VG8oY29uc3Qg
OjpzdGQ6OnRyMTo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiYgdCwKLSAg
ICAgICAgICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsK
K3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEPgordm9pZCBQcmludFRvKGNvbnN0IHN0
ZDo6dW5pcXVlX3B0cjxULCBEPiYgcHRyLCBzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIChQcmludFNt
YXJ0UG9pbnRlcjxUPikocHRyLCBvcywgMCk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
ICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+
Ci12b2lkIFByaW50VG8oY29uc3QgOjpzdGQ6OnRyMTo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOT4mIHQsCi0gICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7
Ci0gIFByaW50VHVwbGVUbyh0LCBvcyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgUHJp
bnRUbyhjb25zdCBzdGQ6OnNoYXJlZF9wdHI8VD4mIHB0ciwgc3RkOjpvc3RyZWFtKiBvcykgewor
ICAoUHJpbnRTbWFydFBvaW50ZXI8VD4pKHB0ciwgb3MsIDApOwogfQogCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgICAgICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTA+Ci12b2lkIFByaW50VG8oCi0gICAgY29uc3QgOjpzdGQ6
OnRyMTo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiYgdCwK
LSAgICA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAgUHJpbnRUdXBsZVRvKHQsIG9zKTsKKy8vIEhl
bHBlciBmdW5jdGlvbiBmb3IgcHJpbnRpbmcgYSB0dXBsZS4gIFQgbXVzdCBiZSBpbnN0YW50aWF0
ZWQgd2l0aAorLy8gYSB0dXBsZSB0eXBlLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIFBy
aW50VHVwbGVUbyhjb25zdCBUJiwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIDA+LAor
ICAgICAgICAgICAgICAgICAgOjpzdGQ6Om9zdHJlYW0qKSB7fQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgc2l6ZV90IEk+Cit2b2lkIFByaW50VHVwbGVUbyhjb25zdCBUJiB0LCBzdGQ6OmludGVn
cmFsX2NvbnN0YW50PHNpemVfdCwgST4sCisgICAgICAgICAgICAgICAgICA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgUHJpbnRUdXBsZVRvKHQsIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8c2l6ZV90
LCBJIC0gMT4oKSwgb3MpOworICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfKCkK
KyAgaWYgKEkgPiAxKSB7CisgICAgR1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QT1BfKCkK
KyAgICAqb3MgPDwgIiwgIjsKKyAgfQorICBVbml2ZXJzYWxQcmludGVyPHR5cGVuYW1lIHN0ZDo6
dHVwbGVfZWxlbWVudDxJIC0gMSwgVD46OnR5cGU+OjpQcmludCgKKyAgICAgIHN0ZDo6Z2V0PEkg
LSAxPih0KSwgb3MpOwogfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCiAKLSNpZiBH
VEVTVF9IQVNfU1REX1RVUExFXwogdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgogdm9pZCBQ
cmludFRvKGNvbnN0IDo6c3RkOjp0dXBsZTxUeXBlcy4uLj4mIHQsIDo6c3RkOjpvc3RyZWFtKiBv
cykgewotICBQcmludFR1cGxlVG8odCwgb3MpOworICAqb3MgPDwgIigiOworICBQcmludFR1cGxl
VG8odCwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIHNpemVvZi4uLihUeXBlcyk+KCks
IG9zKTsKKyAgKm9zIDw8ICIpIjsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9UVVBMRV8K
IAogLy8gT3ZlcmxvYWQgZm9yIHN0ZDo6cGFpci4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDI+CkBAIC03NDQsNiArNjcyLDE4IEBAIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0ZDo6
cGFpcjxUMSwgVDI+JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAgICpvcyA8PCAnKSc7
CiB9CiAKKyNpZiBHVEVTVF9IQVNfUlRUSQoraW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCA6OnN0
ZDo6dHlwZV9pbmZvJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIGludGVybmFsOjpQ
cmludFRvPDo6c3RkOjp0eXBlX2luZm8+KHZhbHVlLCBvcyk7CisgICpvcyA8PCAiIChcIiIgPDwg
dmFsdWUubmFtZSgpIDw8ICJcIikiOworfQorCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IDo6
c3RkOjp0eXBlX2luZGV4JiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgIGludGVybmFs
OjpQcmludFRvPDo6c3RkOjp0eXBlX2luZGV4Pih2YWx1ZSwgb3MpOworICAqb3MgPDwgIiAoXCIi
IDw8IHZhbHVlLm5hbWUoKSA8PCAiXCIpIjsKK30KKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkK
KwogLy8gSW1wbGVtZW50cyBwcmludGluZyBhIG5vbi1yZWZlcmVuY2UgdHlwZSBUIGJ5IGxldHRp
bmcgdGhlIGNvbXBpbGVyCiAvLyBwaWNrIHRoZSByaWdodCBvdmVybG9hZCBvZiBQcmludFRvKCkg
Zm9yIFQuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTc3MSwxNCArNzExLDQ2IEBAIGNsYXNz
IFVuaXZlcnNhbFByaW50ZXIgewogICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkK
IH07CiAKLSNpZiBHVEVTVF9IQVNfQUJTTAorLy8gUmVtb3ZlIGFueSBjb25zdC1xdWFsaWZpZXJz
IGJlZm9yZSBwYXNzaW5nIGEgdHlwZSB0byBVbml2ZXJzYWxQcmludGVyLgordGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CitjbGFzcyBVbml2ZXJzYWxQcmludGVyPGNvbnN0IFQ+IDogcHVibGljIFVuaXZl
cnNhbFByaW50ZXI8VD4ge307CiAKLS8vIFByaW50ZXIgZm9yIGFic2w6Om9wdGlvbmFsCisjaWYg
R1RFU1RfSU5URVJOQUxfSEFTX0FOWQorCisvLyBQcmludGVyIGZvciBzdGQ6OmFueSAvIGFic2w6
OmFueQorCit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxBbnk+IHsKKyBwdWJs
aWM6CisgIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IEFueSYgdmFsdWUsIDo6c3RkOjpvc3RyZWFt
KiBvcykgeworICAgIGlmICh2YWx1ZS5oYXNfdmFsdWUoKSkgeworICAgICAgKm9zIDw8ICJ2YWx1
ZSBvZiB0eXBlICIgPDwgR2V0VHlwZU5hbWUodmFsdWUpOworICAgIH0gZWxzZSB7CisgICAgICAq
b3MgPDwgIm5vIHZhbHVlIjsKKyAgICB9CisgIH0KKworIHByaXZhdGU6CisgIHN0YXRpYyBzdGQ6
OnN0cmluZyBHZXRUeXBlTmFtZShjb25zdCBBbnkmIHZhbHVlKSB7CisjaWYgR1RFU1RfSEFTX1JU
VEkKKyAgICByZXR1cm4gaW50ZXJuYWw6OkdldFR5cGVOYW1lKHZhbHVlLnR5cGUoKSk7CisjZWxz
ZQorICAgIHN0YXRpY19jYXN0PHZvaWQ+KHZhbHVlKTsgIC8vIHBvc3NpYmx5IHVudXNlZAorICAg
IHJldHVybiAiPHVua25vd25fdHlwZT4iOworI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQorICB9
Cit9OworCisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19BTlkKKworI2lmIEdURVNUX0lO
VEVSTkFMX0hBU19PUFRJT05BTAorCisvLyBQcmludGVyIGZvciBzdGQ6Om9wdGlvbmFsIC8gYWJz
bDo6b3B0aW9uYWwKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBVbml2ZXJzYWxQcmlu
dGVyPDo6YWJzbDo6b3B0aW9uYWw8VD4+IHsKK2NsYXNzIFVuaXZlcnNhbFByaW50ZXI8T3B0aW9u
YWw8VD4+IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IDo6YWJzbDo6b3B0
aW9uYWw8VD4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgc3RhdGljIHZvaWQgUHJp
bnQoY29uc3QgT3B0aW9uYWw8VD4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKICAgICAq
b3MgPDwgJygnOwogICAgIGlmICghdmFsdWUpIHsKICAgICAgICpvcyA8PCAibnVsbG9wdCI7CkBA
IC03ODksMTQgKzc2MSwyMiBAQCBjbGFzcyBVbml2ZXJzYWxQcmludGVyPDo6YWJzbDo6b3B0aW9u
YWw8VD4+IHsKICAgfQogfTsKIAotLy8gUHJpbnRlciBmb3IgYWJzbDo6dmFyaWFudAorI2VuZGlm
ICAvLyBHVEVTVF9JTlRFUk5BTF9IQVNfT1BUSU9OQUwKKworI2lmIEdURVNUX0lOVEVSTkFMX0hB
U19WQVJJQU5UCisKKy8vIFByaW50ZXIgZm9yIHN0ZDo6dmFyaWFudCAvIGFic2w6OnZhcmlhbnQK
IAogdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+Ci1jbGFzcyBVbml2ZXJzYWxQcmludGVyPDo6YWJz
bDo6dmFyaWFudDxULi4uPj4geworY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxWYXJpYW50PFQuLi4+
PiB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBQcmludChjb25zdCA6OmFic2w6OnZhcmlhbnQ8
VC4uLj4mIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgc3RhdGljIHZvaWQgUHJpbnQo
Y29uc3QgVmFyaWFudDxULi4uPiYgdmFsdWUsIDo6c3RkOjpvc3RyZWFtKiBvcykgewogICAgICpv
cyA8PCAnKCc7Ci0gICAgYWJzbDo6dmlzaXQoVmlzaXRvcntvc30sIHZhbHVlKTsKKyNpZiBHVEVT
VF9IQVNfQUJTTAorICAgIGFic2w6OnZpc2l0KFZpc2l0b3J7b3MsIHZhbHVlLmluZGV4KCl9LCB2
YWx1ZSk7CisjZWxzZQorICAgIHN0ZDo6dmlzaXQoVmlzaXRvcntvcywgdmFsdWUuaW5kZXgoKX0s
IHZhbHVlKTsKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKICAgICAqb3MgPDwgJyknOwogICB9
CiAKQEAgLTgwNCwxNCArNzg0LDE2IEBAIGNsYXNzIFVuaXZlcnNhbFByaW50ZXI8OjphYnNsOjp2
YXJpYW50PFQuLi4+PiB7CiAgIHN0cnVjdCBWaXNpdG9yIHsKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVT4KICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3QgVSYgdSkgY29uc3QgewotICAgICAgKm9z
IDw8ICInIiA8PCBHZXRUeXBlTmFtZTxVPigpIDw8ICInIHdpdGggdmFsdWUgIjsKKyAgICAgICpv
cyA8PCAiJyIgPDwgR2V0VHlwZU5hbWU8VT4oKSA8PCAiKGluZGV4ID0gIiA8PCBpbmRleAorICAg
ICAgICAgIDw8ICIpJyB3aXRoIHZhbHVlICI7CiAgICAgICBVbml2ZXJzYWxQcmludCh1LCBvcyk7
CiAgICAgfQogICAgIDo6c3RkOjpvc3RyZWFtKiBvczsKKyAgICBzdGQ6OnNpemVfdCBpbmRleDsK
ICAgfTsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNlbmRpZiAgLy8gR1RFU1Rf
SU5URVJOQUxfSEFTX1ZBUklBTlQKIAogLy8gVW5pdmVyc2FsUHJpbnRBcnJheShiZWdpbiwgbGVu
LCBvcykgcHJpbnRzIGFuIGFycmF5IG9mICdsZW4nCiAvLyBlbGVtZW50cywgc3RhcnRpbmcgYXQg
YWRkcmVzcyAnYmVnaW4nLgpAQCAtODI2LDcgKzgwOCw2IEBAIHZvaWQgVW5pdmVyc2FsUHJpbnRB
cnJheShjb25zdCBUKiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAg
ICAgLy8gSWYgdGhlIGFycmF5IGhhcyBtb3JlIHRoYW4ga1RocmVzaG9sZCBlbGVtZW50cywgd2Un
bGwgaGF2ZSB0bwogICAgIC8vIG9taXQgc29tZSBkZXRhaWxzIGJ5IHByaW50aW5nIG9ubHkgdGhl
IGZpcnN0IGFuZCB0aGUgbGFzdAogICAgIC8vIGtDaHVua1NpemUgZWxlbWVudHMuCi0gICAgLy8g
RklYTUU6IGxldCB0aGUgdXNlciBjb250cm9sIHRoZSB0aHJlc2hvbGQgdXNpbmcgYSBmbGFnLgog
ICAgIGlmIChsZW4gPD0ga1RocmVzaG9sZCkgewogICAgICAgUHJpbnRSYXdBcnJheVRvKGJlZ2lu
LCBsZW4sIG9zKTsKICAgICB9IGVsc2UgewpAQCAtODQxLDYgKzgyMiwyMCBAQCB2b2lkIFVuaXZl
cnNhbFByaW50QXJyYXkoY29uc3QgVCogYmVnaW4sIHNpemVfdCBsZW4sIDo6c3RkOjpvc3RyZWFt
KiBvcykgewogR1RFU1RfQVBJXyB2b2lkIFVuaXZlcnNhbFByaW50QXJyYXkoCiAgICAgY29uc3Qg
Y2hhciogYmVnaW4sIHNpemVfdCBsZW4sIDo6c3RkOjpvc3RyZWFtKiBvcyk7CiAKKyNpZmRlZiBf
X2NwcF9jaGFyOF90CisvLyBUaGlzIG92ZXJsb2FkIHByaW50cyBhIChjb25zdCkgY2hhcjhfdCBh
cnJheSBjb21wYWN0bHkuCitHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25z
dCBjaGFyOF90KiBiZWdpbiwgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBvcyk7CisjZW5kaWYKKworLy8gVGhpcyBvdmVybG9h
ZCBwcmludHMgYSAoY29uc3QpIGNoYXIxNl90IGFycmF5IGNvbXBhY3RseS4KK0dURVNUX0FQSV8g
dm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXIxNl90KiBiZWdpbiwgc2l6ZV90IGxl
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6c3RkOjpvc3RyZWFtKiBv
cyk7CisKKy8vIFRoaXMgb3ZlcmxvYWQgcHJpbnRzIGEgKGNvbnN0KSBjaGFyMzJfdCBhcnJheSBj
b21wYWN0bHkuCitHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25zdCBjaGFy
MzJfdCogYmVnaW4sIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6OnN0ZDo6b3N0cmVhbSogb3MpOworCiAvLyBUaGlzIG92ZXJsb2FkIHByaW50cyBhIChj
b25zdCkgd2NoYXJfdCBhcnJheSBjb21wYWN0bHkuCiBHVEVTVF9BUElfIHZvaWQgVW5pdmVyc2Fs
UHJpbnRBcnJheSgKICAgICBjb25zdCB3Y2hhcl90KiBiZWdpbiwgc2l6ZV90IGxlbiwgOjpzdGQ6
Om9zdHJlYW0qIG9zKTsKQEAgLTkwNSw3ICs5MDAsNyBAQCB0ZW1wbGF0ZSA8PgogY2xhc3MgVW5p
dmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIqPiB7CiAgcHVibGljOgogICBzdGF0aWMgdm9p
ZCBQcmludChjb25zdCBjaGFyKiBzdHIsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAgIGlmIChz
dHIgPT0gTlVMTCkgeworICAgIGlmIChzdHIgPT0gbnVsbHB0cikgewogICAgICAgKm9zIDw8ICJO
VUxMIjsKICAgICB9IGVsc2UgewogICAgICAgVW5pdmVyc2FsUHJpbnQoc3RkOjpzdHJpbmcoc3Ry
KSwgb3MpOwpAQCAtOTEzLDE5ICs5MDgsNjIgQEAgY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVy
PGNvbnN0IGNoYXIqPiB7CiAgIH0KIH07CiB0ZW1wbGF0ZSA8PgotY2xhc3MgVW5pdmVyc2FsVGVy
c2VQcmludGVyPGNoYXIqPiB7CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcio+IDog
cHVibGljIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjb25zdCBjaGFyKj4geworfTsKKworI2lmZGVm
IF9fY3BwX2NoYXI4X3QKK3RlbXBsYXRlIDw+CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8
Y29uc3QgY2hhcjhfdCo+IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFByaW50KGNoYXIqIHN0
ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0
IGNoYXIqPjo6UHJpbnQoc3RyLCBvcyk7CisgIHN0YXRpYyB2b2lkIFByaW50KGNvbnN0IGNoYXI4
X3QqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7
CisgICAgICAqb3MgPDwgIk5VTEwiOworICAgIH0gZWxzZSB7CisgICAgICBVbml2ZXJzYWxQcmlu
dCg6OnN0ZDo6dThzdHJpbmcoc3RyKSwgb3MpOworICAgIH0KKyAgfQorfTsKK3RlbXBsYXRlIDw+
CitjbGFzcyBVbml2ZXJzYWxUZXJzZVByaW50ZXI8Y2hhcjhfdCo+CisgICAgOiBwdWJsaWMgVW5p
dmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXI4X3QqPiB7fTsKKyNlbmRpZgorCit0ZW1wbGF0
ZSA8PgorY2xhc3MgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIxNl90Kj4geworIHB1
YmxpYzoKKyAgc3RhdGljIHZvaWQgUHJpbnQoY29uc3QgY2hhcjE2X3QqIHN0ciwgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CisgICAgICAqb3MgPDwgIk5V
TEwiOworICAgIH0gZWxzZSB7CisgICAgICBVbml2ZXJzYWxQcmludCg6OnN0ZDo6dTE2c3RyaW5n
KHN0ciksIG9zKTsKKyAgICB9CisgIH0KK307Cit0ZW1wbGF0ZSA8PgorY2xhc3MgVW5pdmVyc2Fs
VGVyc2VQcmludGVyPGNoYXIxNl90Kj4KKyAgICA6IHB1YmxpYyBVbml2ZXJzYWxUZXJzZVByaW50
ZXI8Y29uc3QgY2hhcjE2X3QqPiB7fTsKKwordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRl
cnNlUHJpbnRlcjxjb25zdCBjaGFyMzJfdCo+IHsKKyBwdWJsaWM6CisgIHN0YXRpYyB2b2lkIFBy
aW50KGNvbnN0IGNoYXIzMl90KiBzdHIsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgIGlmIChz
dHIgPT0gbnVsbHB0cikgeworICAgICAgKm9zIDw8ICJOVUxMIjsKKyAgICB9IGVsc2UgeworICAg
ICAgVW5pdmVyc2FsUHJpbnQoOjpzdGQ6OnUzMnN0cmluZyhzdHIpLCBvcyk7CisgICAgfQogICB9
CiB9OwordGVtcGxhdGUgPD4KK2NsYXNzIFVuaXZlcnNhbFRlcnNlUHJpbnRlcjxjaGFyMzJfdCo+
CisgICAgOiBwdWJsaWMgVW5pdmVyc2FsVGVyc2VQcmludGVyPGNvbnN0IGNoYXIzMl90Kj4ge307
CiAKICNpZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIHRlbXBsYXRlIDw+CiBjbGFzcyBVbml2ZXJz
YWxUZXJzZVByaW50ZXI8Y29uc3Qgd2NoYXJfdCo+IHsKICBwdWJsaWM6CiAgIHN0YXRpYyB2b2lk
IFByaW50KGNvbnN0IHdjaGFyX3QqIHN0ciwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gICAgaWYg
KHN0ciA9PSBOVUxMKSB7CisgICAgaWYgKHN0ciA9PSBudWxscHRyKSB7CiAgICAgICAqb3MgPDwg
Ik5VTEwiOwogICAgIH0gZWxzZSB7CiAgICAgICBVbml2ZXJzYWxQcmludCg6OnN0ZDo6d3N0cmlu
ZyhzdHIpLCBvcyk7CkBAIC05NjEsMTA5ICs5OTksMjAgQEAgdm9pZCBVbml2ZXJzYWxQcmludChj
b25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CiAKIHR5cGVkZWYgOjpzdGQ6OnZl
Y3RvcjwgOjpzdGQ6OnN0cmluZz4gU3RyaW5nczsKIAotLy8gVHVwbGVQb2xpY3k8VHVwbGVUPiBt
dXN0IHByb3ZpZGU6Ci0vLyAtIHR1cGxlX3NpemUKLS8vICAgICBzaXplIG9mIHR1cGxlIFR1cGxl
VC4KLS8vIC0gZ2V0PHNpemVfdCBJPihjb25zdCBUdXBsZVQmIHQpCi0vLyAgICAgc3RhdGljIGZ1
bmN0aW9uIGV4dHJhY3RpbmcgZWxlbWVudCBJIG9mIHR1cGxlIFR1cGxlVC4KLS8vIC0gdHVwbGVf
ZWxlbWVudDxzaXplX3QgST46OnR5cGUKLS8vICAgICB0eXBlIG9mIGVsZW1lbnQgSSBvZiB0dXBs
ZSBUdXBsZVQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGVUPgotc3RydWN0IFR1cGxlUG9saWN5
OwotCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlVD4K
LXN0cnVjdCBUdXBsZVBvbGljeSB7Ci0gIHR5cGVkZWYgVHVwbGVUIFR1cGxlOwotICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IHR1cGxlX3NpemUgPSA6OnN0ZDo6dHIxOjp0dXBsZV9zaXplPFR1cGxlPjo6
dmFsdWU7Ci0KLSAgdGVtcGxhdGUgPHNpemVfdCBJPgotICBzdHJ1Y3QgdHVwbGVfZWxlbWVudCA6
IDo6c3RkOjp0cjE6OnR1cGxlX2VsZW1lbnQ8c3RhdGljX2Nhc3Q8aW50PihJKSwgVHVwbGU+IHsK
LSAgfTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0YXRpYyB0eXBlbmFtZSBBZGRSZWZl
cmVuY2U8Y29uc3QgdHlwZW5hbWUgOjpzdGQ6OnRyMTo6dHVwbGVfZWxlbWVudDwKLSAgICAgIHN0
YXRpY19jYXN0PGludD4oSSksIFR1cGxlPjo6dHlwZT46OnR5cGUKLSAgZ2V0KGNvbnN0IFR1cGxl
JiB0dXBsZSkgewotICAgIHJldHVybiA6OnN0ZDo6dHIxOjpnZXQ8ST4odHVwbGUpOwotICB9Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlVD4KLWNvbnN0IHNpemVfdCBUdXBsZVBvbGljeTxU
dXBsZVQ+Ojp0dXBsZV9zaXplOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLSNp
ZiBHVEVTVF9IQVNfU1REX1RVUExFXwotdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPgotc3Ry
dWN0IFR1cGxlUG9saWN5PCA6OnN0ZDo6dHVwbGU8VHlwZXMuLi4+ID4gewotICB0eXBlZGVmIDo6
c3RkOjp0dXBsZTxUeXBlcy4uLj4gVHVwbGU7Ci0gIHN0YXRpYyBjb25zdCBzaXplX3QgdHVwbGVf
c2l6ZSA9IDo6c3RkOjp0dXBsZV9zaXplPFR1cGxlPjo6dmFsdWU7Ci0KLSAgdGVtcGxhdGUgPHNp
emVfdCBJPgotICBzdHJ1Y3QgdHVwbGVfZWxlbWVudCA6IDo6c3RkOjp0dXBsZV9lbGVtZW50PEks
IFR1cGxlPiB7fTsKLQotICB0ZW1wbGF0ZSA8c2l6ZV90IEk+Ci0gIHN0YXRpYyBjb25zdCB0eXBl
bmFtZSA6OnN0ZDo6dHVwbGVfZWxlbWVudDxJLCBUdXBsZT46OnR5cGUmIGdldCgKLSAgICAgIGNv
bnN0IFR1cGxlJiB0dXBsZSkgewotICAgIHJldHVybiA6OnN0ZDo6Z2V0PEk+KHR1cGxlKTsKLSAg
fQotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUeXBlcz4KLWNvbnN0IHNpemVfdCBUdXBsZVBv
bGljeTwgOjpzdGQ6OnR1cGxlPFR5cGVzLi4uPiA+Ojp0dXBsZV9zaXplOwotI2VuZGlmICAvLyBH
VEVTVF9IQVNfU1REX1RVUExFXwotCi0jaWYgR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9I
QVNfU1REX1RVUExFXwotLy8gVGhpcyBoZWxwZXIgdGVtcGxhdGUgYWxsb3dzIFByaW50VG8oKSBm
b3IgdHVwbGVzIGFuZAotLy8gVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdz
KCkgdG8gYmUgZGVmaW5lZCBieQotLy8gaW5kdWN0aW9uIG9uIHRoZSBudW1iZXIgb2YgdHVwbGUg
ZmllbGRzLiAgVGhlIGlkZWEgaXMgdGhhdAotLy8gVHVwbGVQcmVmaXhQcmludGVyPE4+OjpQcmlu
dFByZWZpeFRvKHQsIG9zKSBwcmludHMgdGhlIGZpcnN0IE4KLS8vIGZpZWxkcyBpbiB0dXBsZSB0
LCBhbmQgY2FuIGJlIGRlZmluZWQgaW4gdGVybXMgb2YKLS8vIFR1cGxlUHJlZml4UHJpbnRlcjxO
IC0gMT4uCi0vLwotLy8gVGhlIGluZHVjdGl2ZSBjYXNlLgotdGVtcGxhdGUgPHNpemVfdCBOPgot
c3RydWN0IFR1cGxlUHJlZml4UHJpbnRlciB7Ci0gIC8vIFByaW50cyB0aGUgZmlyc3QgTiBmaWVs
ZHMgb2YgYSB0dXBsZS4KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgotICBzdGF0aWMgdm9p
ZCBQcmludFByZWZpeFRvKGNvbnN0IFR1cGxlJiB0LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKLSAg
ICBUdXBsZVByZWZpeFByaW50ZXI8TiAtIDE+OjpQcmludFByZWZpeFRvKHQsIG9zKTsKLSAgICBH
VEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BVU0hfKCkKLSAgICBpZiAoTiA+IDEpIHsKLSAg
ICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BPUF8oKQotICAgICAgKm9zIDw8ICIsICI7
Ci0gICAgfQotICAgIFVuaXZlcnNhbFByaW50ZXI8Ci0gICAgICAgIHR5cGVuYW1lIFR1cGxlUG9s
aWN5PFR1cGxlPjo6dGVtcGxhdGUgdHVwbGVfZWxlbWVudDxOIC0gMT46OnR5cGU+Ci0gICAgICAg
IDo6UHJpbnQoVHVwbGVQb2xpY3k8VHVwbGU+Ojp0ZW1wbGF0ZSBnZXQ8TiAtIDE+KHQpLCBvcyk7
Ci0gIH0KLQogICAvLyBUZXJzZWx5IHByaW50cyB0aGUgZmlyc3QgTiBmaWVsZHMgb2YgYSB0dXBs
ZSB0byBhIHN0cmluZyB2ZWN0b3IsCiAgIC8vIG9uZSBlbGVtZW50IGZvciBlYWNoIGZpZWxkLgot
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFRlcnNlUHJpbnRQcmVm
aXhUb1N0cmluZ3MoY29uc3QgVHVwbGUmIHQsIFN0cmluZ3MqIHN0cmluZ3MpIHsKLSAgICBUdXBs
ZVByZWZpeFByaW50ZXI8TiAtIDE+OjpUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKHQsIHN0cmlu
Z3MpOwotICAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7Ci0gICAgVW5pdmVyc2FsVGVyc2VQcmlu
dChUdXBsZVBvbGljeTxUdXBsZT46OnRlbXBsYXRlIGdldDxOIC0gMT4odCksICZzcyk7Ci0gICAg
c3RyaW5ncy0+cHVzaF9iYWNrKHNzLnN0cigpKTsKLSAgfQotfTsKLQotLy8gQmFzZSBjYXNlLgot
dGVtcGxhdGUgPD4KLXN0cnVjdCBUdXBsZVByZWZpeFByaW50ZXI8MD4gewotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVHVwbGU+Ci0gIHN0YXRpYyB2b2lkIFByaW50UHJlZml4VG8oY29uc3QgVHVwbGUm
LCA6OnN0ZDo6b3N0cmVhbSopIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgotICBz
dGF0aWMgdm9pZCBUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKGNvbnN0IFR1cGxlJiwgU3RyaW5n
cyopIHt9Ci19OwotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHByaW50aW5nIGEgdHVwbGUuCi0v
LyBUdXBsZSBtdXN0IGJlIGVpdGhlciBzdGQ6OnRyMTo6dHVwbGUgb3Igc3RkOjp0dXBsZSB0eXBl
LgogdGVtcGxhdGUgPHR5cGVuYW1lIFR1cGxlPgotdm9pZCBQcmludFR1cGxlVG8oY29uc3QgVHVw
bGUmIHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICAqb3MgPDwgIigiOwotICBUdXBsZVByZWZp
eFByaW50ZXI8VHVwbGVQb2xpY3k8VHVwbGU+Ojp0dXBsZV9zaXplPjo6UHJpbnRQcmVmaXhUbyh0
LCBvcyk7Ci0gICpvcyA8PCAiKSI7Cit2b2lkIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3MoY29u
c3QgVHVwbGUmLCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgMD4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyaW5ncyopIHt9Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVHVw
bGUsIHNpemVfdCBJPgordm9pZCBUZXJzZVByaW50UHJlZml4VG9TdHJpbmdzKGNvbnN0IFR1cGxl
JiB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aW50ZWdyYWxfY29uc3Rh
bnQ8c2l6ZV90LCBJPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdzKiBz
dHJpbmdzKSB7CisgIFRlcnNlUHJpbnRQcmVmaXhUb1N0cmluZ3ModCwgc3RkOjppbnRlZ3JhbF9j
b25zdGFudDxzaXplX3QsIEkgLSAxPigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
cmluZ3MpOworICA6OnN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICBVbml2ZXJzYWxUZXJzZVByaW50
KHN0ZDo6Z2V0PEkgLSAxPih0KSwgJnNzKTsKKyAgc3RyaW5ncy0+cHVzaF9iYWNrKHNzLnN0cigp
KTsKIH0KIAogLy8gUHJpbnRzIHRoZSBmaWVsZHMgb2YgYSB0dXBsZSB0ZXJzZWx5IHRvIGEgc3Ry
aW5nIHZlY3Rvciwgb25lCkBAIC0xMDcyLDI0ICsxMDIxLDE0IEBAIHZvaWQgUHJpbnRUdXBsZVRv
KGNvbnN0IFR1cGxlJiB0LCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUdXBsZT4KIFN0cmluZ3MgVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9TdHJpbmdz
KGNvbnN0IFR1cGxlJiB2YWx1ZSkgewogICBTdHJpbmdzIHJlc3VsdDsKLSAgVHVwbGVQcmVmaXhQ
cmludGVyPFR1cGxlUG9saWN5PFR1cGxlPjo6dHVwbGVfc2l6ZT46OgotICAgICAgVGVyc2VQcmlu
dFByZWZpeFRvU3RyaW5ncyh2YWx1ZSwgJnJlc3VsdCk7CisgIFRlcnNlUHJpbnRQcmVmaXhUb1N0
cmluZ3MoCisgICAgICB2YWx1ZSwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzaXplX3QsIHN0ZDo6
dHVwbGVfc2l6ZTxUdXBsZT46OnZhbHVlPigpLAorICAgICAgJnJlc3VsdCk7CiAgIHJldHVybiBy
ZXN1bHQ7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUgfHwgR1RFU1RfSEFTX1NU
RF9UVVBMRV8KIAogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiAKLSNpZiBHVEVTVF9IQVNfQUJT
TAotbmFtZXNwYWNlIGludGVybmFsMiB7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgVHlw
ZVdpdGhvdXRGb3JtYXR0ZXI8VCwga0NvbnZlcnRpYmxlVG9TdHJpbmdWaWV3Pjo6UHJpbnRWYWx1
ZSgKLSAgICBjb25zdCBUJiB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7Ci0gIGludGVybmFs
OjpQcmludFRvKGFic2w6OnN0cmluZ192aWV3KHZhbHVlKSwgb3MpOwotfQotfSAgLy8gbmFtZXNw
YWNlIGludGVybmFsMgotI2VuZGlmCi0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogOjpzdGQ6OnN0
cmluZyBQcmludFRvU3RyaW5nKGNvbnN0IFQmIHZhbHVlKSB7CiAgIDo6c3RkOjpzdHJpbmdzdHJl
YW0gc3M7CkBAIC0xMTA0LDQgKzEwNDMsNCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIC8vIGRl
Y2xhcmF0aW9ucyBmcm9tIHRoaXMgZmlsZS4KICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9jdXN0
b20vZ3Rlc3QtcHJpbnRlcnMuaCIKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dU
RVNUX1BSSU5URVJTX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVT
VF9QUklOVEVSU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdC1zcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvZ3Rlc3Qtc3BpLmgKaW5kZXggMWU4OTgzOTM4ZWEyNzkyYzUyNjkwZWFkMjliMDBhYjU4Y2Rh
YWU5Yy4uZWFjZWY0NDY2OWU4MTA0YTNkMjhkYWEwNTRlZGFkY2RlYjIzYzU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1zcGkuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oCkBAIC0z
Myw4ICszMyw4IEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDA0IERPIE5PVCBERUxFVEUKIAotI2lm
bmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1NQSV9IXwotI2RlZmluZSBHVEVTVF9JTkNM
VURFX0dURVNUX0dURVNUX1NQSV9IXworI2lmbmRlZiBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfU1BJX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9TUElf
SF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKQEAgLTcyLDE0ICs3MiwxNSBAQCBjbGFz
cyBHVEVTVF9BUElfIFNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RQYXJ0UmVzdWx0QXJyYXkqIHJlc3VsdCk7CiAK
ICAgLy8gVGhlIGQndG9yIHJlc3RvcmVzIHRoZSBwcmV2aW91cyB0ZXN0IHBhcnQgcmVzdWx0IHJl
cG9ydGVyLgotICB2aXJ0dWFsIH5TY29wZWRGYWtlVGVzdFBhcnRSZXN1bHRSZXBvcnRlcigpOwor
ICB+U2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXIoKSBvdmVycmlkZTsKIAogICAvLyBB
cHBlbmRzIHRoZSBUZXN0UGFydFJlc3VsdCBvYmplY3QgdG8gdGhlIFRlc3RQYXJ0UmVzdWx0QXJy
YXkKICAgLy8gcmVjZWl2ZWQgaW4gdGhlIGNvbnN0cnVjdG9yLgogICAvLwogICAvLyBUaGlzIG1l
dGhvZCBpcyBmcm9tIHRoZSBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlCiAgIC8vIGlu
dGVyZmFjZS4KLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQ
YXJ0UmVzdWx0JiByZXN1bHQpOworICB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRl
c3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92ZXJyaWRlOworCiAgcHJpdmF0ZToKICAgdm9pZCBJbml0
KCk7CiAKQEAgLTIzNCw0ICsyMzUsNCBAQCBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1Bf
KCkgIC8vICA0MjUxCiAgICAgfVwKICAgfSB3aGlsZSAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3
YXlzRmFsc2UoKSkKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1NQSV9I
XworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfU1BJX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3Qt
cGFydC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC10ZXN0
LXBhcnQuaAppbmRleCAxYzdiODllMDg3OTZkOTczMGY5ZjhlZWFlNDA2MjI3MTc3ZGJhNTE5Li4y
MDNmZGY5OGM2OWZjZGY5NjQ3NDM3Y2RjOGU2Y2M3MGFlMThlNjA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXRlc3QtcGFydC5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtdGVzdC1wYXJ0LmgK
QEAgLTI5LDggKzI5LDggQEAKIC8vCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRF
CiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KLSNkZWZp
bmUgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRfSF8KKyNpZm5kZWYgR09PR0xF
VEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9IXworI2RlZmluZSBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfR1RFU1RfVEVTVF9QQVJUX0hfCiAKICNpbmNsdWRlIDxpb3Nmd2Q+CiAj
aW5jbHVkZSA8dmVjdG9yPgpAQCAtNTMsMjIgKzUzLDIwIEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dFBhcnRSZXN1bHQgewogICBlbnVtIFR5cGUgewogICAgIGtTdWNjZXNzLCAgICAgICAgICAvLyBT
dWNjZWVkZWQuCiAgICAga05vbkZhdGFsRmFpbHVyZSwgIC8vIEZhaWxlZCBidXQgdGhlIHRlc3Qg
Y2FuIGNvbnRpbnVlLgotICAgIGtGYXRhbEZhaWx1cmUgICAgICAvLyBGYWlsZWQgYW5kIHRoZSB0
ZXN0IHNob3VsZCBiZSB0ZXJtaW5hdGVkLgorICAgIGtGYXRhbEZhaWx1cmUsICAgICAvLyBGYWls
ZWQgYW5kIHRoZSB0ZXN0IHNob3VsZCBiZSB0ZXJtaW5hdGVkLgorICAgIGtTa2lwICAgICAgICAg
ICAgICAvLyBTa2lwcGVkLgogICB9OwogCiAgIC8vIEMndG9yLiAgVGVzdFBhcnRSZXN1bHQgZG9l
cyBOT1QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuCiAgIC8vIEFsd2F5cyB1c2UgdGhpcyBj
b25zdHJ1Y3RvciAod2l0aCBwYXJhbWV0ZXJzKSB0byBjcmVhdGUgYQogICAvLyBUZXN0UGFydFJl
c3VsdCBvYmplY3QuCi0gIFRlc3RQYXJ0UmVzdWx0KFR5cGUgYV90eXBlLAotICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyKiBhX2ZpbGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgaW50IGFfbGlu
ZV9udW1iZXIsCisgIFRlc3RQYXJ0UmVzdWx0KFR5cGUgYV90eXBlLCBjb25zdCBjaGFyKiBhX2Zp
bGVfbmFtZSwgaW50IGFfbGluZV9udW1iZXIsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IGFfbWVzc2FnZSkKICAgICAgIDogdHlwZV8oYV90eXBlKSwKLSAgICAgICAgZmlsZV9uYW1lXyhh
X2ZpbGVfbmFtZSA9PSBOVUxMID8gIiIgOiBhX2ZpbGVfbmFtZSksCisgICAgICAgIGZpbGVfbmFt
ZV8oYV9maWxlX25hbWUgPT0gbnVsbHB0ciA/ICIiIDogYV9maWxlX25hbWUpLAogICAgICAgICBs
aW5lX251bWJlcl8oYV9saW5lX251bWJlciksCiAgICAgICAgIHN1bW1hcnlfKEV4dHJhY3RTdW1t
YXJ5KGFfbWVzc2FnZSkpLAotICAgICAgICBtZXNzYWdlXyhhX21lc3NhZ2UpIHsKLSAgfQorICAg
ICAgICBtZXNzYWdlXyhhX21lc3NhZ2UpIHt9CiAKICAgLy8gR2V0cyB0aGUgb3V0Y29tZSBvZiB0
aGUgdGVzdCBwYXJ0LgogICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQpAQCAt
NzYsNyArNzQsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RQYXJ0UmVzdWx0IHsKICAgLy8gR2V0
cyB0aGUgbmFtZSBvZiB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhlIHRlc3QgcGFydCB0b29rIHBs
YWNlLCBvcgogICAvLyBOVUxMIGlmIGl0J3MgdW5rbm93bi4KICAgY29uc3QgY2hhciogZmlsZV9u
YW1lKCkgY29uc3QgewotICAgIHJldHVybiBmaWxlX25hbWVfLmVtcHR5KCkgPyBOVUxMIDogZmls
ZV9uYW1lXy5jX3N0cigpOworICAgIHJldHVybiBmaWxlX25hbWVfLmVtcHR5KCkgPyBudWxscHRy
IDogZmlsZV9uYW1lXy5jX3N0cigpOwogICB9CiAKICAgLy8gR2V0cyB0aGUgbGluZSBpbiB0aGUg
c291cmNlIGZpbGUgd2hlcmUgdGhlIHRlc3QgcGFydCB0b29rIHBsYWNlLApAQCAtODksMTggKzg3
LDIxIEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdFBhcnRSZXN1bHQgewogICAvLyBHZXRzIHRoZSBt
ZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVzdCBwYXJ0LgogICBjb25zdCBjaGFyKiBtZXNz
YWdlKCkgY29uc3QgeyByZXR1cm4gbWVzc2FnZV8uY19zdHIoKTsgfQogCi0gIC8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBwYXNzZWQuCi0gIGJvb2wgcGFzc2VkKCkgY29uc3QgeyBy
ZXR1cm4gdHlwZV8gPT0ga1N1Y2Nlc3M7IH0KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IHBhcnQgd2FzIHNraXBwZWQuCisgIGJvb2wgc2tpcHBlZCgpIGNvbnN0IHsg
cmV0dXJuIHR5cGVfID09IGtTa2lwOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBwYXJ0IGZhaWxlZC4KLSAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiB0eXBlXyAhPSBr
U3VjY2VzczsgfQorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFy
dCBwYXNzZWQuCisgIGJvb2wgcGFzc2VkKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0ga1N1Y2Nl
c3M7IH0KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IHBhcnQgbm9uLWZhdGFsbHkg
ZmFpbGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFydCBu
b24tZmF0YWxseSBmYWlsZWQuCiAgIGJvb2wgbm9uZmF0YWxseV9mYWlsZWQoKSBjb25zdCB7IHJl
dHVybiB0eXBlXyA9PSBrTm9uRmF0YWxGYWlsdXJlOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0aGUgdGVzdCBwYXJ0IGZhdGFsbHkgZmFpbGVkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGhlIHRlc3QgcGFydCBmYXRhbGx5IGZhaWxlZC4KICAgYm9vbCBmYXRhbGx5X2Zh
aWxlZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGtGYXRhbEZhaWx1cmU7IH0KIAorICAvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFydCBmYWlsZWQuCisgIGJvb2wg
ZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gZmF0YWxseV9mYWlsZWQoKSB8fCBub25mYXRhbGx5X2Zh
aWxlZCgpOyB9CisKICBwcml2YXRlOgogICBUeXBlIHR5cGVfOwogCkBAIC0xNjQsOCArMTY1LDgg
QEAgY2xhc3MgR1RFU1RfQVBJXyBIYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIKICAgICA6IHB1Ymxp
YyBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlIHsKICBwdWJsaWM6CiAgIEhhc05ld0Zh
dGFsRmFpbHVyZUhlbHBlcigpOwotICB2aXJ0dWFsIH5IYXNOZXdGYXRhbEZhaWx1cmVIZWxwZXIo
KTsKLSAgdmlydHVhbCB2b2lkIFJlcG9ydFRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiByZXN1bHQpOworICB+SGFzTmV3RmF0YWxGYWlsdXJlSGVscGVyKCkgb3ZlcnJpZGU7Cisg
IHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkg
b3ZlcnJpZGU7CiAgIGJvb2wgaGFzX25ld19mYXRhbF9mYWlsdXJlKCkgY29uc3QgeyByZXR1cm4g
aGFzX25ld19mYXRhbF9mYWlsdXJlXzsgfQogIHByaXZhdGU6CiAgIGJvb2wgaGFzX25ld19mYXRh
bF9mYWlsdXJlXzsKQEAgLTE4MCw0ICsxODEsNCBAQCBjbGFzcyBHVEVTVF9BUElfIEhhc05ld0Zh
dGFsRmFpbHVyZUhlbHBlcgogCiBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8v
ICA0MjUxCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9URVNUX1BBUlRf
SF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1RFU1RfUEFSVF9I
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVz
dC10eXBlZC10ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0
ZXN0LXR5cGVkLXRlc3QuaAppbmRleCA3NGJjZTQ2YmRjNTBmNGM4Y2RlMmM2ZDcyNjQ5MTFmZjRk
OTljZjE5Li45ZmRjNmJlMTBkYzI2YjgwMzNlMWFhNWEwZjVhZjA1ZjgyNTQ3OTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXR5cGVkLXRl
c3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXR5
cGVkLXRlc3QuaApAQCAtMjcsMTEgKzI3LDEwIEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLQogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVm
IEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXwotI2RlZmluZSBHVEVTVF9J
TkNMVURFX0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNM
VURFX0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0dURVNUX1RZUEVEX1RFU1RfSF8KIAogLy8gVGhpcyBoZWFkZXIgaW1wbGVtZW50cyB0
eXBlZCB0ZXN0cyBhbmQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgogCkBAIC01MiwyMiArNTEs
MjIgQEAgY2xhc3MgRm9vVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgVCB2YWx1ZV87
CiB9OwogCi0vLyBOZXh0LCBhc3NvY2lhdGUgYSBsaXN0IG9mIHR5cGVzIHdpdGggdGhlIHRlc3Qg
Y2FzZSwgd2hpY2ggd2lsbCBiZQorLy8gTmV4dCwgYXNzb2NpYXRlIGEgbGlzdCBvZiB0eXBlcyB3
aXRoIHRoZSB0ZXN0IHN1aXRlLCB3aGljaCB3aWxsIGJlCiAvLyByZXBlYXRlZCBmb3IgZWFjaCB0
eXBlIGluIHRoZSBsaXN0LiAgVGhlIHR5cGVkZWYgaXMgbmVjZXNzYXJ5IGZvcgogLy8gdGhlIG1h
Y3JvIHRvIHBhcnNlIGNvcnJlY3RseS4KIHR5cGVkZWYgdGVzdGluZzo6VHlwZXM8Y2hhciwgaW50
LCB1bnNpZ25lZCBpbnQ+IE15VHlwZXM7Ci1UWVBFRF9URVNUX0NBU0UoRm9vVGVzdCwgTXlUeXBl
cyk7CitUWVBFRF9URVNUX1NVSVRFKEZvb1Rlc3QsIE15VHlwZXMpOwogCiAvLyBJZiB0aGUgdHlw
ZSBsaXN0IGNvbnRhaW5zIG9ubHkgb25lIHR5cGUsIHlvdSBjYW4gd3JpdGUgdGhhdCB0eXBlCiAv
LyBkaXJlY3RseSB3aXRob3V0IFR5cGVzPC4uLj46Ci0vLyAgIFRZUEVEX1RFU1RfQ0FTRShGb29U
ZXN0LCBpbnQpOworLy8gICBUWVBFRF9URVNUX1NVSVRFKEZvb1Rlc3QsIGludCk7CiAKIC8vIFRo
ZW4sIHVzZSBUWVBFRF9URVNUKCkgaW5zdGVhZCBvZiBURVNUX0YoKSB0byBkZWZpbmUgYXMgbWFu
eSB0eXBlZAotLy8gdGVzdHMgZm9yIHRoaXMgdGVzdCBjYXNlIGFzIHlvdSB3YW50LgorLy8gdGVz
dHMgZm9yIHRoaXMgdGVzdCBzdWl0ZSBhcyB5b3Ugd2FudC4KIFRZUEVEX1RFU1QoRm9vVGVzdCwg
RG9lc0JsYWgpIHsKLSAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8gVHlwZVBhcmFtIHRvIGdl
dCB0aGUgdHlwZSBwYXJhbWV0ZXIuCi0gIC8vIFNpbmNlIHdlIGFyZSBpbnNpZGUgYSBkZXJpdmVk
IGNsYXNzIHRlbXBsYXRlLCBDKysgcmVxdWlyZXMgdXNlIHRvCi0gIC8vIHZpc2l0IHRoZSBtZW1i
ZXJzIG9mIEZvb1Rlc3QgdmlhICd0aGlzJy4KKyAgLy8gSW5zaWRlIGEgdGVzdCwgcmVmZXIgdG8g
dGhlIHNwZWNpYWwgbmFtZSBUeXBlUGFyYW0gdG8gZ2V0IHRoZSB0eXBlCisgIC8vIHBhcmFtZXRl
ci4gIFNpbmNlIHdlIGFyZSBpbnNpZGUgYSBkZXJpdmVkIGNsYXNzIHRlbXBsYXRlLCBDKysgcmVx
dWlyZXMKKyAgLy8gdXMgdG8gdmlzaXQgdGhlIG1lbWJlcnMgb2YgRm9vVGVzdCB2aWEgJ3RoaXMn
LgogICBUeXBlUGFyYW0gbiA9IHRoaXMtPnZhbHVlXzsKIAogICAvLyBUbyB2aXNpdCBzdGF0aWMg
bWVtYmVycyBvZiB0aGUgZml4dHVyZSwgYWRkIHRoZSBUZXN0Rml4dHVyZTo6CkBAIC04Myw3ICs4
Miw3IEBAIFRZUEVEX1RFU1QoRm9vVGVzdCwgRG9lc0JsYWgpIHsKIAogVFlQRURfVEVTVChGb29U
ZXN0LCBIYXNQcm9wZXJ0eUEpIHsgLi4uIH0KIAotLy8gVFlQRURfVEVTVF9DQVNFIHRha2VzIGFu
IG9wdGlvbmFsIHRoaXJkIGFyZ3VtZW50IHdoaWNoIGFsbG93cyB0byBzcGVjaWZ5IGEKKy8vIFRZ
UEVEX1RFU1RfU1VJVEUgdGFrZXMgYW4gb3B0aW9uYWwgdGhpcmQgYXJndW1lbnQgd2hpY2ggYWxs
b3dzIHRvIHNwZWNpZnkgYQogLy8gY2xhc3MgdGhhdCBnZW5lcmF0ZXMgY3VzdG9tIHRlc3QgbmFt
ZSBzdWZmaXhlcyBiYXNlZCBvbiB0aGUgdHlwZS4gVGhpcyBzaG91bGQKIC8vIGJlIGEgY2xhc3Mg
d2hpY2ggaGFzIGEgc3RhdGljIHRlbXBsYXRlIGZ1bmN0aW9uIEdldE5hbWUoaW50IGluZGV4KSBy
ZXR1cm5pbmcKIC8vIGEgc3RyaW5nIGZvciBlYWNoIHR5cGUuIFRoZSBwcm92aWRlZCBpbnRlZ2Vy
IGluZGV4IGVxdWFscyB0aGUgaW5kZXggb2YgdGhlCkBAIC05OSw3ICs5OCw3IEBAIFRZUEVEX1RF
U1QoRm9vVGVzdCwgSGFzUHJvcGVydHlBKSB7IC4uLiB9CiAvLyAgICAgICBpZiAoc3RkOjppc19z
YW1lPFQsIHVuc2lnbmVkIGludD4oKSkgcmV0dXJuICJ1bnNpZ25lZEludCI7CiAvLyAgICAgfQog
Ly8gICB9OwotLy8gICBUWVBFRF9URVNUX0NBU0UoRm9vVGVzdCwgTXlUeXBlcywgTXlUeXBlTmFt
ZXMpOworLy8gICBUWVBFRF9URVNUX1NVSVRFKEZvb1Rlc3QsIE15VHlwZXMsIE15VHlwZU5hbWVz
KTsKIAogI2VuZGlmICAvLyAwCiAKQEAgLTEyNiwxMyArMTI1LDEzIEBAIGNsYXNzIEZvb1Rlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgIC4uLgogfTsKIAotLy8gTmV4dCwgZGVjbGFyZSB0
aGF0IHlvdSB3aWxsIGRlZmluZSBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UKKy8vIE5l
eHQsIGRlY2xhcmUgdGhhdCB5b3Ugd2lsbCBkZWZpbmUgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dCBzdWl0ZQogLy8gKHRoZSBfUCBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIiBvciAicGF0
dGVybiIsIHdoaWNoZXZlciB5b3UKIC8vIHByZWZlcik6Ci1UWVBFRF9URVNUX0NBU0VfUChGb29U
ZXN0KTsKK1RZUEVEX1RFU1RfU1VJVEVfUChGb29UZXN0KTsKIAogLy8gVGhlbiwgdXNlIFRZUEVE
X1RFU1RfUCgpIHRvIGRlZmluZSBhcyBtYW55IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cwotLy8g
Zm9yIHRoaXMgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBhcyB5b3Ugd2FudC4KKy8vIGZv
ciB0aGlzIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlIGFzIHlvdSB3YW50LgogVFlQRURf
VEVTVF9QKEZvb1Rlc3QsIERvZXNCbGFoKSB7CiAgIC8vIEluc2lkZSBhIHRlc3QsIHJlZmVyIHRv
IFR5cGVQYXJhbSB0byBnZXQgdGhlIHR5cGUgcGFyYW1ldGVyLgogICBUeXBlUGFyYW0gbiA9IDA7
CkBAIC0xNDMsMTAgKzE0MiwxMCBAQCBUWVBFRF9URVNUX1AoRm9vVGVzdCwgSGFzUHJvcGVydHlB
KSB7IC4uLiB9CiAKIC8vIE5vdyB0aGUgdHJpY2t5IHBhcnQ6IHlvdSBuZWVkIHRvIHJlZ2lzdGVy
IGFsbCB0ZXN0IHBhdHRlcm5zIGJlZm9yZQogLy8geW91IGNhbiBpbnN0YW50aWF0ZSB0aGVtLiAg
VGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBtYWNybyBpcyB0aGUKLS8vIHRlc3QgY2FzZSBuYW1l
OyB0aGUgcmVzdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3QKKy8vIHRl
c3Qgc3VpdGUgbmFtZTsgdGhlIHJlc3QgYXJlIHRoZSBuYW1lcyBvZiB0aGUgdGVzdHMgaW4gdGhp
cyB0ZXN0CiAvLyBjYXNlLgotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoRm9vVGVzdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERvZXNCbGFoLCBIYXNQcm9wZXJ0eUEpOworUkVHSVNU
RVJfVFlQRURfVEVTVF9TVUlURV9QKEZvb1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRG9lc0JsYWgsIEhhc1Byb3BlcnR5QSk7CiAKIC8vIEZpbmFsbHksIHlvdSBhcmUgZnJlZSB0
byBpbnN0YW50aWF0ZSB0aGUgcGF0dGVybiB3aXRoIHRoZSB0eXBlcyB5b3UKIC8vIHdhbnQuICBJ
ZiB5b3UgcHV0IHRoZSBhYm92ZSBjb2RlIGluIGEgaGVhZGVyIGZpbGUsIHlvdSBjYW4gI2luY2x1
ZGUKQEAgLTE1NCw2MSArMTUzLDU4IEBAIFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKEZvb1Rl
c3QsCiAvLwogLy8gVG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGluc3RhbmNlcyBvZiB0aGUgcGF0
dGVybiwgdGhlIGZpcnN0CiAvLyBhcmd1bWVudCB0byB0aGUgSU5TVEFOVElBVEVfKiBtYWNybyBp
cyBhIHByZWZpeCB0aGF0IHdpbGwgYmUgYWRkZWQKLS8vIHRvIHRoZSBhY3R1YWwgdGVzdCBjYXNl
IG5hbWUuICBSZW1lbWJlciB0byBwaWNrIHVuaXF1ZSBwcmVmaXhlcyBmb3IKKy8vIHRvIHRoZSBh
Y3R1YWwgdGVzdCBzdWl0ZSBuYW1lLiAgUmVtZW1iZXIgdG8gcGljayB1bmlxdWUgcHJlZml4ZXMg
Zm9yCiAvLyBkaWZmZXJlbnQgaW5zdGFuY2VzLgogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxjaGFy
LCBpbnQsIHVuc2lnbmVkIGludD4gTXlUeXBlczsKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FT
RV9QKE15LCBGb29UZXN0LCBNeVR5cGVzKTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVf
UChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAKIC8vIElmIHRoZSB0eXBlIGxpc3QgY29udGFpbnMg
b25seSBvbmUgdHlwZSwgeW91IGNhbiB3cml0ZSB0aGF0IHR5cGUKIC8vIGRpcmVjdGx5IHdpdGhv
dXQgVHlwZXM8Li4uPjoKLS8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEZv
b1Rlc3QsIGludCk7CisvLyAgIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgRm9v
VGVzdCwgaW50KTsKIC8vCi0vLyBTaW1pbGFyIHRvIHRoZSBvcHRpb25hbCBhcmd1bWVudCBvZiBU
WVBFRF9URVNUX0NBU0UgYWJvdmUsCi0vLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCB0YWtlcyBh
biBvcHRpb25hbCBmb3VydGggYXJndW1lbnQgd2hpY2ggYWxsb3dzIHRvCisvLyBTaW1pbGFyIHRv
IHRoZSBvcHRpb25hbCBhcmd1bWVudCBvZiBUWVBFRF9URVNUX1NVSVRFIGFib3ZlLAorLy8gSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QIHRha2VzIGFuIG9wdGlvbmFsIGZvdXJ0aCBhcmd1bWVudCB3
aGljaCBhbGxvd3MgdG8KIC8vIGdlbmVyYXRlIGN1c3RvbSBuYW1lcy4KLS8vICAgSU5TVEFOVElB
VEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMsIE15VHlwZU5hbWVzKTsK
Ky8vICAgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBGb29UZXN0LCBNeVR5cGVz
LCBNeVR5cGVOYW1lcyk7CiAKICNlbmRpZiAgLy8gMAogCisjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtaW50ZXJuYWwuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0
LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmgiCiAKIC8vIElt
cGxlbWVudHMgdHlwZWQgdGVzdHMuCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotCiAvLyBJ
TlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KIC8v
IEV4cGFuZHMgdG8gdGhlIG5hbWUgb2YgdGhlIHR5cGVkZWYgZm9yIHRoZSB0eXBlIHBhcmFtZXRl
cnMgb2YgdGhlCi0vLyBnaXZlbiB0ZXN0IGNhc2UuCi0jIGRlZmluZSBHVEVTVF9UWVBFX1BBUkFN
U18oVGVzdENhc2VOYW1lKSBndGVzdF90eXBlX3BhcmFtc18jI1Rlc3RDYXNlTmFtZSMjXworLy8g
Z2l2ZW4gdGVzdCBzdWl0ZS4KKyNkZWZpbmUgR1RFU1RfVFlQRV9QQVJBTVNfKFRlc3RTdWl0ZU5h
bWUpIGd0ZXN0X3R5cGVfcGFyYW1zXyMjVGVzdFN1aXRlTmFtZSMjXwogCiAvLyBFeHBhbmRzIHRv
IHRoZSBuYW1lIG9mIHRoZSB0eXBlZGVmIGZvciB0aGUgTmFtZUdlbmVyYXRvciwgcmVzcG9uc2li
bGUgZm9yCiAvLyBjcmVhdGluZyB0aGUgc3VmZml4ZXMgb2YgdGhlIG5hbWUuCi0jZGVmaW5lIEdU
RVNUX05BTUVfR0VORVJBVE9SXyhUZXN0Q2FzZU5hbWUpIFwKLSAgZ3Rlc3RfdHlwZV9wYXJhbXNf
IyNUZXN0Q2FzZU5hbWUjI19OYW1lR2VuZXJhdG9yCi0KLS8vIFRoZSAnVHlwZXMnIHRlbXBsYXRl
IGFyZ3VtZW50IGJlbG93IG11c3QgaGF2ZSBzcGFjZXMgYXJvdW5kIGl0Ci0vLyBzaW5jZSBzb21l
IGNvbXBpbGVycyBtYXkgY2hva2Ugb24gJz4+JyB3aGVuIHBhc3NpbmcgYSB0ZW1wbGF0ZQotLy8g
aW5zdGFuY2UgKGUuZy4gVHlwZXM8aW50PikKLSMgZGVmaW5lIFRZUEVEX1RFU1RfQ0FTRShDYXNl
TmFtZSwgVHlwZXMsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgdHlwZWRl
ZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlTGlzdDwgVHlwZXMgPjo6dHlwZSBHVEVTVF9UWVBF
X1BBUkFNU18oIFwKLSAgICAgIENhc2VOYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpOYW1lR2VuZXJhdG9yU2VsZWN0b3I8X19WQV9BUkdTX18+Ojp0eXBlICAgIFwKKyNk
ZWZpbmUgR1RFU1RfTkFNRV9HRU5FUkFUT1JfKFRlc3RTdWl0ZU5hbWUpIFwKKyAgZ3Rlc3RfdHlw
ZV9wYXJhbXNfIyNUZXN0U3VpdGVOYW1lIyNfTmFtZUdlbmVyYXRvcgorCisjZGVmaW5lIFRZUEVE
X1RFU1RfU1VJVEUoQ2FzZU5hbWUsIFR5cGVzLCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIHR5cGVkZWYgOjp0ZXN0aW5nOjppbnRlcm5hbDo6R2VuZXJhdGVUeXBlTGlzdDxUeXBl
cz46OnR5cGUgICAgICAgICAgICBcCisgICAgICBHVEVTVF9UWVBFX1BBUkFNU18oQ2FzZU5hbWUp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHR5cGVkZWYgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPF9fVkFfQVJHU19fPjo6dHlwZSBc
CiAgICAgICBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oQ2FzZU5hbWUpCiAKLSMgZGVmaW5lIFRZUEVE
X1RFU1QoQ2FzZU5hbWUsIFRlc3ROYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyNkZWZpbmUgVFlQRURfVEVTVChDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydChzaXplb2Yo
R1RFU1RfU1RSSU5HSUZZXyhUZXN0TmFtZSkpID4gMSwgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICAidGVzdC1uYW1lIG11c3Qgbm90IGJlIGVtcHR5Iik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgdGVtcGxhdGUgPHR5cGVuYW1lIGd0ZXN0X1R5cGVQ
YXJhbV8+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgY2xhc3Mg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyhDYXNlTmFtZSwgVGVzdE5hbWUpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgICAgIDogcHVibGljIENhc2VOYW1lPGd0ZXN0X1R5cGVQYXJhbV8+
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHByaXZhdGU6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICB0eXBlZGVmIENhc2VOYW1lPGd0ZXN0X1R5cGVQYXJhbV8+IFRlc3RGaXh0dXJl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB0eXBlZGVmIGd0ZXN0X1R5cGVQYXJh
bV8gVHlwZVBhcmFtOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICB2aXJ0dWFsIHZvaWQgVGVzdEJvZHkoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgfTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgc3RhdGljIGJvb2wgZ3Rlc3RfIyNDYXNlTmFtZSMjXyMjVGVzdE5hbWUj
I19yZWdpc3RlcmVkXyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgR1RFU1RfQVRUUklC
VVRFX1VOVVNFRF8gPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdDwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX0FUVFJJQlVURV9VTlVTRURf
ID0gOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZVBhcmFtZXRlcml6ZWRUZXN0PCAgIFwKICAgICAg
ICAgICBDYXNlTmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1wbGF0
ZVNlbDxHVEVTVF9URVNUX0NMQVNTX05BTUVfKENhc2VOYW1lLCAgIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RO
YW1lKT4sIFwKQEAgLTIxNiw3ICsyMTIsOCBAQCBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UChNeSwgRm9vVGVzdCwgTXlUeXBlcyk7CiAgICAgICAgICAgICAgIENhc2VOYW1lKT46OlJlZ2lz
dGVyKCIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2Nh
dGlvbiggICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
X0ZJTEVfXywgX19MSU5FX18pLCAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICNDYXNlTmFtZSwgI1Rlc3ROYW1lLCAwLCAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdURVNUX1NUUklOR0lG
WV8oQ2FzZU5hbWUpLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdURVNUX1NUUklOR0lGWV8oVGVzdE5hbWUpLCAwLCAgICAgICAgICAgICBcCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6Okdl
bmVyYXRlTmFtZXM8ICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHVEVTVF9OQU1FX0dFTkVSQVRPUl8oQ2FzZU5hbWUpLCAgICAgICBcCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEVTVF9UWVBFX1BBUkFNU18oQ2FzZU5hbWUp
PigpKTsgICAgICBcCkBAIC0yMjQsODMgKzIyMSwxMDkgQEAgSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9DQVNFX1AoTXksIEZvb1Rlc3QsIE15VHlwZXMpOwogICB2b2lkIEdURVNUX1RFU1RfQ0xBU1Nf
TkFNRV8oQ2FzZU5hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdE5hbWUpPGd0ZXN0X1R5cGVQYXJhbV8+
OjpUZXN0Qm9keSgpCiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKKy8vIExlZ2Fj
eSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworI2RlZmluZSBUWVBFRF9URVNUX0NBU0UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpY19hc3Nl
cnQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZWRUZXN0Q2FzZUlzRGVwcmVjYXRlZCgpLCAiIik7
IFwKKyAgVFlQRURfVEVTVF9TVUlURQorI2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KIAogLy8gSW1wbGVtZW50cyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMuCiAK
LSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9O
IC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCiAvLwogLy8gRXhwYW5kcyB0byB0aGUgbmFtZXNw
YWNlIG5hbWUgdGhhdCB0aGUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGZvcgotLy8gdGhlIGdp
dmVuIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgYXJlIGRlZmluZWQgaW4uICBUaGUgZXhh
Y3QKKy8vIHRoZSBnaXZlbiB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBhcmUgZGVmaW5l
ZCBpbi4gIFRoZSBleGFjdAogLy8gbmFtZSBvZiB0aGUgbmFtZXNwYWNlIGlzIHN1YmplY3QgdG8g
Y2hhbmdlIHdpdGhvdXQgbm90aWNlLgotIyBkZWZpbmUgR1RFU1RfQ0FTRV9OQU1FU1BBQ0VfKFRl
c3RDYXNlTmFtZSkgXAotICBndGVzdF9jYXNlXyMjVGVzdENhc2VOYW1lIyNfCisjZGVmaW5lIEdU
RVNUX1NVSVRFX05BTUVTUEFDRV8oVGVzdFN1aXRlTmFtZSkgZ3Rlc3Rfc3VpdGVfIyNUZXN0U3Vp
dGVOYW1lIyNfCiAKIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBV
U0VSIENPREUuCiAvLwogLy8gRXhwYW5kcyB0byB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgdXNl
ZCB0byByZW1lbWJlciB0aGUgbmFtZXMgb2YKLS8vIHRoZSBkZWZpbmVkIHRlc3RzIGluIHRoZSBn
aXZlbiB0ZXN0IGNhc2UuCi0jIGRlZmluZSBHVEVTVF9UWVBFRF9URVNUX0NBU0VfUF9TVEFURV8o
VGVzdENhc2VOYW1lKSBcCi0gIGd0ZXN0X3R5cGVkX3Rlc3RfY2FzZV9wX3N0YXRlXyMjVGVzdENh
c2VOYW1lIyNfCisvLyB0aGUgZGVmaW5lZCB0ZXN0cyBpbiB0aGUgZ2l2ZW4gdGVzdCBzdWl0ZS4K
KyNkZWZpbmUgR1RFU1RfVFlQRURfVEVTVF9TVUlURV9QX1NUQVRFXyhUZXN0U3VpdGVOYW1lKSBc
CisgIGd0ZXN0X3R5cGVkX3Rlc3Rfc3VpdGVfcF9zdGF0ZV8jI1Rlc3RTdWl0ZU5hbWUjI18KIAog
Ly8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERSBESVJF
Q1RMWS4KIC8vCiAvLyBFeHBhbmRzIHRvIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSB1c2VkIHRv
IHJlbWVtYmVyIHRoZSBuYW1lcyBvZgotLy8gdGhlIHJlZ2lzdGVyZWQgdGVzdHMgaW4gdGhlIGdp
dmVuIHRlc3QgY2FzZS4KLSMgZGVmaW5lIEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oVGVz
dENhc2VOYW1lKSBcCi0gIGd0ZXN0X3JlZ2lzdGVyZWRfdGVzdF9uYW1lc18jI1Rlc3RDYXNlTmFt
ZSMjXworLy8gdGhlIHJlZ2lzdGVyZWQgdGVzdHMgaW4gdGhlIGdpdmVuIHRlc3Qgc3VpdGUuCisj
ZGVmaW5lIEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oVGVzdFN1aXRlTmFtZSkgXAorICBn
dGVzdF9yZWdpc3RlcmVkX3Rlc3RfbmFtZXNfIyNUZXN0U3VpdGVOYW1lIyNfCiAKIC8vIFRoZSB2
YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgbWFjcm9zIGFy
ZQogLy8gc3RhdGljIGFzIHR5cGljYWxseSB0aGVzZSBtYWNyb3MgYXJlIHVzZWQgaW4gYSAuaCBm
aWxlIHRoYXQgY2FuIGJlCiAvLyAjaW5jbHVkZWQgaW4gbXVsdGlwbGUgdHJhbnNsYXRpb24gdW5p
dHMgbGlua2VkIHRvZ2V0aGVyLgotIyBkZWZpbmUgVFlQRURfVEVTVF9DQVNFX1AoQ2FzZU5hbWUp
IFwKLSAgc3RhdGljIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVkVGVzdENhc2VQU3RhdGUgXAot
ICAgICAgR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1lKQotCi0jIGRlZmlu
ZSBUWVBFRF9URVNUX1AoQ2FzZU5hbWUsIFRlc3ROYW1lKSBcCi0gIG5hbWVzcGFjZSBHVEVTVF9D
QVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpIHsgXAotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rlc3Rf
VHlwZVBhcmFtXz4gXAotICBjbGFzcyBUZXN0TmFtZSA6IHB1YmxpYyBDYXNlTmFtZTxndGVzdF9U
eXBlUGFyYW1fPiB7IFwKLSAgIHByaXZhdGU6IFwKLSAgICB0eXBlZGVmIENhc2VOYW1lPGd0ZXN0
X1R5cGVQYXJhbV8+IFRlc3RGaXh0dXJlOyBcCi0gICAgdHlwZWRlZiBndGVzdF9UeXBlUGFyYW1f
IFR5cGVQYXJhbTsgXAotICAgIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpOyBcCi0gIH07IFwKLSAg
c3RhdGljIGJvb2wgZ3Rlc3RfIyNUZXN0TmFtZSMjX2RlZmluZWRfIEdURVNUX0FUVFJJQlVURV9V
TlVTRURfID0gXAotICAgICAgR1RFU1RfVFlQRURfVEVTVF9DQVNFX1BfU1RBVEVfKENhc2VOYW1l
KS5BZGRUZXN0TmFtZShcCi0gICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCAjQ2FzZU5hbWUs
ICNUZXN0TmFtZSk7IFwKLSAgfSBcCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFy
YW1fPiBcCi0gIHZvaWQgR1RFU1RfQ0FTRV9OQU1FU1BBQ0VfKENhc2VOYW1lKTo6VGVzdE5hbWU8
Z3Rlc3RfVHlwZVBhcmFtXz46OlRlc3RCb2R5KCkKLQotIyBkZWZpbmUgUkVHSVNURVJfVFlQRURf
VEVTVF9DQVNFX1AoQ2FzZU5hbWUsIC4uLikgXAotICBuYW1lc3BhY2UgR1RFU1RfQ0FTRV9OQU1F
U1BBQ0VfKENhc2VOYW1lKSB7IFwKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpUZW1w
bGF0ZXM8X19WQV9BUkdTX18+Ojp0eXBlIGd0ZXN0X0FsbFRlc3RzXzsgXAotICB9IFwKLSAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IEdURVNUX1JFR0lTVEVSRURfVEVTVF9OQU1FU18oQ2FzZU5h
bWUpIFwKLSAgICAgIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gXAotICAgICAgICAgIEdURVNU
X1RZUEVEX1RFU1RfQ0FTRV9QX1NUQVRFXyhDYXNlTmFtZSkuVmVyaWZ5UmVnaXN0ZXJlZFRlc3RO
YW1lcyggXAotICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sICNfX1ZBX0FSR1NfXykK
LQotLy8gVGhlICdUeXBlcycgdGVtcGxhdGUgYXJndW1lbnQgYmVsb3cgbXVzdCBoYXZlIHNwYWNl
cyBhcm91bmQgaXQKLS8vIHNpbmNlIHNvbWUgY29tcGlsZXJzIG1heSBjaG9rZSBvbiAnPj4nIHdo
ZW4gcGFzc2luZyBhIHRlbXBsYXRlCi0vLyBpbnN0YW5jZSAoZS5nLiBUeXBlczxpbnQ+KQotIyBk
ZWZpbmUgSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoUHJlZml4LCBDYXNlTmFtZSwgVHlw
ZXMsIC4uLikgICAgICBcCi0gIHN0YXRpYyBib29sIGd0ZXN0XyMjUHJlZml4IyNfIyNDYXNlTmFt
ZSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAgIFwKLSAgICAgIDo6dGVzdGluZzo6aW50
ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2U8ICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICAgIENhc2VOYW1lLCBHVEVTVF9DQVNFX05BTUVTUEFDRV8oQ2FzZU5hbWUpOjpndGVz
dF9BbGxUZXN0c18sICAgICBcCi0gICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZUxp
c3Q8IFR5cGVzID46OnR5cGU+OjogICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICBSZWdpc3Rl
cigjUHJlZml4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkNvZGVMb2NhdGlvbihf
X0ZJTEVfXywgX19MSU5FX18pLCBcCi0gICAgICAgICAgICAgICAgICAgJkdURVNUX1RZUEVEX1RF
U1RfQ0FTRV9QX1NUQVRFXyhDYXNlTmFtZSksICNDYXNlTmFtZSwgIFwKLSAgICAgICAgICAgICAg
ICAgICBHVEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKENhc2VOYW1lKSwgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdlbmVyYXRlTmFt
ZXM8ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6Ok5hbWVHZW5lcmF0b3JTZWxlY3RvcjwgICAgICAgIFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fVkFfQVJHU19fPjo6dHlwZSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBl
TGlzdDwgVHlwZXMgPjo6dHlwZT4oKSkKLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVT
VF9QCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9UWVBFRF9URVNUX0hf
CisjZGVmaW5lIFRZUEVEX1RFU1RfU1VJVEVfUChTdWl0ZU5hbWUpICAgICAgICAgICAgICBcCisg
IHN0YXRpYyA6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RTdWl0ZVBTdGF0ZSBcCisgICAg
ICBHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RBVEVfKFN1aXRlTmFtZSkKKworLy8gTGVnYWN5
IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5lIFRZUEVEX1RFU1RfQ0FTRV9QICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fz
c2VydCg6OnRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCks
ICIiKTsgXAorICBUWVBFRF9URVNUX1NVSVRFX1AKKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xF
R0FDWV9URVNUX0NBU0VBUElfCisKKyNkZWZpbmUgVFlQRURfVEVTVF9QKFN1aXRlTmFtZSwgVGVz
dE5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBHVEVTVF9T
VUlURV9OQU1FU1BBQ0VfKFN1aXRlTmFtZSkgeyAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBndGVzdF9UeXBlUGFyYW1fPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBjbGFzcyBUZXN0TmFtZSA6IHB1YmxpYyBTdWl0ZU5hbWU8Z3Rlc3Rf
VHlwZVBhcmFtXz4geyAgICAgICAgICAgICBcCisgICAgIHByaXZhdGU6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgdHlwZWRl
ZiBTdWl0ZU5hbWU8Z3Rlc3RfVHlwZVBhcmFtXz4gVGVzdEZpeHR1cmU7ICAgICAgICAgICAgICAg
IFwKKyAgICAgIHR5cGVkZWYgZ3Rlc3RfVHlwZVBhcmFtXyBUeXBlUGFyYW07ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGU7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz
dGF0aWMgYm9vbCBndGVzdF8jI1Rlc3ROYW1lIyNfZGVmaW5lZF8gR1RFU1RfQVRUUklCVVRFX1VO
VVNFRF8gPSBcCisgICAgICAgIEdURVNUX1RZUEVEX1RFU1RfU1VJVEVfUF9TVEFURV8oU3VpdGVO
YW1lKS5BZGRUZXN0TmFtZSggICAgICAgXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9f
LCBHVEVTVF9TVFJJTkdJRllfKFN1aXRlTmFtZSksICAgICAgICAgIFwKKyAgICAgICAgICAgIEdU
RVNUX1NUUklOR0lGWV8oVGVzdE5hbWUpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgZ3Rlc3RfVHlwZVBhcmFtXz4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdm9pZCBHVEVTVF9TVUlURV9OQU1F
U1BBQ0VfKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBT
dWl0ZU5hbWUpOjpUZXN0TmFtZTxndGVzdF9UeXBlUGFyYW1fPjo6VGVzdEJvZHkoKQorCisvLyBO
b3RlOiB0aGlzIHdvbid0IHdvcmsgY29ycmVjdGx5IGlmIHRoZSB0cmFpbGluZyBhcmd1bWVudHMg
YXJlIG1hY3Jvcy4KKyNkZWZpbmUgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKFN1aXRlTmFt
ZSwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIG5hbWVzcGFjZSBHVEVTVF9TVUlU
RV9OQU1FU1BBQ0VfKFN1aXRlTmFtZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIHR5cGVkZWYgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VGVtcGxhdGVzPF9fVkFfQVJHU19fPiBn
dGVzdF9BbGxUZXN0c187ICAgIFwKKyAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBHVEVTVF9SRUdJU1RFUkVEX1RFU1RfTkFNRVNfKCAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgU3VpdGVOYW1lKSBHVEVTVF9BVFRSSUJVVEVfVU5VU0VEXyA9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEdURVNUX1RZUEVEX1RFU1RfU1VJ
VEVfUF9TVEFURV8oU3VpdGVOYW1lKS5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCBcCisgICAg
ICAgICAgR1RFU1RfU1RSSU5HSUZZXyhTdWl0ZU5hbWUpLCBfX0ZJTEVfXywgX19MSU5FX18sICNf
X1ZBX0FSR1NfXykKKworLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFp
bGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisjZGVmaW5l
IFJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgc3RhdGljX2Fzc2VydCg6OnRlc3Rpbmc6OmludGVybmFsOjpSZWdp
c3RlclR5cGVkVGVzdENhc2VfUF9Jc0RlcHJlY2F0ZWQoKSwgXAorICAgICAgICAgICAgICAgICIi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUAorI2VuZGlmICAvLyBHVEVTVF9SRU1P
VkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworI2RlZmluZSBJTlNUQU5USUFURV9UWVBFRF9URVNU
X1NVSVRFX1AoUHJlZml4LCBTdWl0ZU5hbWUsIFR5cGVzLCAuLi4pICAgICAgIFwKKyAgc3RhdGlj
X2Fzc2VydChzaXplb2YoR1RFU1RfU1RSSU5HSUZZXyhQcmVmaXgpKSA+IDEsICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgInRlc3Qtc3VpdC1wcmVmaXggbXVzdCBub3Qg
YmUgZW1wdHkiKTsgICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWMgYm9vbCBndGVzdF8j
I1ByZWZpeCMjXyMjU3VpdGVOYW1lIEdURVNUX0FUVFJJQlVURV9VTlVTRURfID0gICAgICAgIFwK
KyAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPCAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgU3VpdGVOYW1lLCBHVEVTVF9TVUlURV9O
QU1FU1BBQ0VfKFN1aXRlTmFtZSk6Omd0ZXN0X0FsbFRlc3RzXywgICAgXAorICAgICAgICAgIDo6
dGVzdGluZzo6aW50ZXJuYWw6OkdlbmVyYXRlVHlwZUxpc3Q8VHlwZXM+Ojp0eXBlPjo6ICAgICAg
ICAgICAgIFwKKyAgICAgICAgICBSZWdpc3RlcihHVEVTVF9TVFJJTkdJRllfKFByZWZpeCksICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXyksICAgXAorICAg
ICAgICAgICAgICAgICAgICZHVEVTVF9UWVBFRF9URVNUX1NVSVRFX1BfU1RBVEVfKFN1aXRlTmFt
ZSksICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICBHVEVTVF9TVFJJTkdJRllfKFN1
aXRlTmFtZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICAgR1RFU1RfUkVHSVNURVJFRF9URVNUX05BTUVTXyhTdWl0ZU5hbWUpLCAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdlbmVyYXRlTmFt
ZXM8ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6TmFtZUdlbmVyYXRvclNlbGVjdG9yPCAgICAgICAgICBcCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfX1ZBX0FSR1NfXz46OnR5cGUsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFs
OjpHZW5lcmF0ZVR5cGVMaXN0PFR5cGVzPjo6dHlwZT4oKSkKKworLy8gTGVnYWN5IEFQSSBpcyBk
ZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCisjZGVmaW5lIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHN0YXRpY19hc3NlcnQoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpJbnN0YW50aWF0ZVR5cGVkVGVzdENhc2VfUF9J
c0RlcHJlY2F0ZWQoKSwgIiIpOyBcCisgIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUAor
I2VuZGlmICAvLyBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworI2VuZGlmICAv
LyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfVFlQRURfVEVTVF9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oCmluZGV4IDVkZjRiMGEzYTcx
Mjc2OTA0NTVhOTQ1Y2IxNTI4YjZiZDc0NDliNjYuLjEwODhlMTEwYmNmMDZhZWJhNTcwMTc1NjQy
ODZiM2I0ZGVmZjRlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvZ3Rlc3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2d0ZXN0LmgKQEAgLTQ5LDE2ICs0OSwyMCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9IXwotI2Rl
ZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5D
TFVERV9HVEVTVF9HVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfR1RF
U1RfSF8KIAorI2luY2x1ZGUgPGNzdGRkZWY+CiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDxvc3RyZWFtPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2lu
Y2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFs
LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgiCiAjaW5jbHVkZSAi
Z3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIgorI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LW1hdGNoZXJz
LmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIgogI2luY2x1ZGUgImd0ZXN0L2d0
ZXN0LXBhcmFtLXRlc3QuaCIKICNpbmNsdWRlICJndGVzdC9ndGVzdC1wcmludGVycy5oIgpAQCAt
NjksMjEgKzczLDYgQEAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQyNTEgXAog
LyogY2xhc3MgQSBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8gYmUgdXNlZCBieSBjbGll
bnRzIG9mIGNsYXNzIEIgKi8pCiAKLS8vIERlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0sIGRpZmZl
cmVudCBzdHJpbmcgY2xhc3NlcyBhcmUgYXZhaWxhYmxlLgotLy8gT24gTGludXgsIGluIGFkZGl0
aW9uIHRvIDo6c3RkOjpzdHJpbmcsIEdvb2dsZSBhbHNvIG1ha2VzIHVzZSBvZgotLy8gY2xhc3Mg
OjpzdHJpbmcsIHdoaWNoIGhhcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMgOjpzdGQ6OnN0cmluZywg
YnV0Ci0vLyBoYXMgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24uCi0vLwotLy8gWW91IGNhbiBk
ZWZpbmUgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgdG8gMSB0byBpbmRpY2F0ZSB0aGF0Ci0vLyA6
OnN0cmluZyBpcyBhdmFpbGFibGUgQU5EIGlzIGEgZGlzdGluY3QgdHlwZSB0byA6OnN0ZDo6c3Ry
aW5nLCBvcgotLy8gZGVmaW5lIGl0IHRvIDAgdG8gaW5kaWNhdGUgb3RoZXJ3aXNlLgotLy8KLS8v
IElmIDo6c3RkOjpzdHJpbmcgYW5kIDo6c3RyaW5nIGFyZSB0aGUgc2FtZSBjbGFzcyBvbiB5b3Vy
IHBsYXRmb3JtCi0vLyBkdWUgdG8gYWxpYXNpbmcsIHlvdSBzaG91bGQgZGVmaW5lIEdURVNUX0hB
U19HTE9CQUxfU1RSSU5HIHRvIDAuCi0vLwotLy8gSWYgeW91IGRvIG5vdCBkZWZpbmUgR1RFU1Rf
SEFTX0dMT0JBTF9TVFJJTkcsIGl0IGlzIGRlZmluZWQKLS8vIGhldXJpc3RpY2FsbHkuCi0KIG5h
bWVzcGFjZSB0ZXN0aW5nIHsKIAogLy8gU2lsZW5jZSBDNDEwMCAodW5yZWZlcmVuY2VkIGZvcm1h
bCBwYXJhbWV0ZXIpIGFuZCA0ODA1CkBAIC0xMTIsNiArMTAxLDEwIEBAIEdURVNUX0RFQ0xBUkVf
Ym9vbF8oY2F0Y2hfZXhjZXB0aW9ucyk7CiAvLyB0byBsZXQgR29vZ2xlIFRlc3QgZGVjaWRlLgog
R1RFU1RfREVDTEFSRV9zdHJpbmdfKGNvbG9yKTsKIAorLy8gVGhpcyBmbGFnIGNvbnRyb2xzIHdo
ZXRoZXIgdGhlIHRlc3QgcnVubmVyIHNob3VsZCBjb250aW51ZSBleGVjdXRpb24gcGFzdAorLy8g
Zmlyc3QgZmFpbHVyZS4KK0dURVNUX0RFQ0xBUkVfYm9vbF8oZmFpbF9mYXN0KTsKKwogLy8gVGhp
cyBmbGFnIHNldHMgdXAgdGhlIGZpbHRlciB0byBzZWxlY3QgYnkgbmFtZSB1c2luZyBhIGdsb2Ig
cGF0dGVybgogLy8gdGhlIHRlc3RzIHRvIHJ1bi4gSWYgdGhlIGZpbHRlciBpcyBub3QgZ2l2ZW4g
YWxsIHRlc3RzIGFyZSBleGVjdXRlZC4KIEdURVNUX0RFQ0xBUkVfc3RyaW5nXyhmaWx0ZXIpOwpA
QCAtMTI4LDYgKzEyMSw5IEBAIEdURVNUX0RFQ0xBUkVfYm9vbF8obGlzdF90ZXN0cyk7CiAvLyBp
biBhZGRpdGlvbiB0byBpdHMgbm9ybWFsIHRleHR1YWwgb3V0cHV0LgogR1RFU1RfREVDTEFSRV9z
dHJpbmdfKG91dHB1dCk7CiAKKy8vIFRoaXMgZmxhZ3MgY29udHJvbCB3aGV0aGVyIEdvb2dsZSBU
ZXN0IHByaW50cyBvbmx5IHRlc3QgZmFpbHVyZXMuCitHVEVTVF9ERUNMQVJFX2Jvb2xfKGJyaWVm
KTsKKwogLy8gVGhpcyBmbGFncyBjb250cm9sIHdoZXRoZXIgR29vZ2xlIFRlc3QgcHJpbnRzIHRo
ZSBlbGFwc2VkIHRpbWUgZm9yIGVhY2gKIC8vIHRlc3QuCiBHVEVTVF9ERUNMQVJFX2Jvb2xfKHBy
aW50X3RpbWUpOwpAQCAtMTg4LDYgKzE4NCw3IEBAIGNsYXNzIEZ1Y2hzaWFEZWF0aFRlc3Q7CiBj
bGFzcyBVbml0VGVzdEltcGwqIEdldFVuaXRUZXN0SW1wbCgpOwogdm9pZCBSZXBvcnRGYWlsdXJl
SW5Vbmtub3duTG9jYXRpb24oVGVzdFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0X3R5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSk7CitzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIEdldElnbm9yZWRQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlcygpOwogCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIApAQCAtMTk1LDcgKzE5MiwxMiBA
QCB2b2lkIFJlcG9ydEZhaWx1cmVJblVua25vd25Mb2NhdGlvbihUZXN0UGFydFJlc3VsdDo6VHlw
ZSByZXN1bHRfdHlwZSwKIC8vIElmIHdlIGRvbid0IGZvcndhcmQgZGVjbGFyZSB0aGVtIHRoZSBj
b21waWxlciBtaWdodCBjb25mdXNlIHRoZSBjbGFzc2VzCiAvLyBpbiBmcmllbmRzaGlwIGNsYXVz
ZXMgd2l0aCBzYW1lIG5hbWVkIGNsYXNzZXMgb24gdGhlIHNjb3BlLgogY2xhc3MgVGVzdDsKLWNs
YXNzIFRlc3RDYXNlOworY2xhc3MgVGVzdFN1aXRlOworCisvLyBPbGQgQVBJIGlzIHN0aWxsIGF2
YWlsYWJsZSBidXQgZGVwcmVjYXRlZAorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KK3VzaW5nIFRlc3RDYXNlID0gVGVzdFN1aXRlOworI2VuZGlmCiBjbGFzcyBUZXN0
SW5mbzsKIGNsYXNzIFVuaXRUZXN0OwogCkBAIC0yODQsNyArMjg2LDExIEBAIGNsYXNzIEdURVNU
X0FQSV8gQXNzZXJ0aW9uUmVzdWx0IHsKICAgLy8gVXNlZCBpbiBFWFBFQ1RfVFJVRS9GQUxTRShh
c3NlcnRpb25fcmVzdWx0KS4KICAgQXNzZXJ0aW9uUmVzdWx0KGNvbnN0IEFzc2VydGlvblJlc3Vs
dCYgb3RoZXIpOwogCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxOTEwCisv
LyBDNDgwMCBpcyBhIGxldmVsIDMgd2FybmluZyBpbiBWaXN1YWwgU3R1ZGlvIDIwMTUgYW5kIGVh
cmxpZXIuCisvLyBUaGlzIHdhcm5pbmcgaXMgbm90IGVtaXR0ZWQgaW4gVmlzdWFsIFN0dWRpbyAy
MDE3LgorLy8gVGhpcyB3YXJuaW5nIGlzIG9mZiBieSBkZWZhdWx0IHN0YXJ0aW5nIGluIFZpc3Vh
bCBTdHVkaW8gMjAxOSBidXQgY2FuIGJlCisvLyBlbmFibGVkIHdpdGggY29tbWFuZC1saW5lIG9w
dGlvbnMuCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDwgMTkxMCB8fCBfTVND
X1ZFUiA+PSAxOTIwKQogICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0ODAwIC8q
IGZvcmNpbmcgdmFsdWUgdG8gYm9vbCAqLykKICNlbmRpZgogCkBAIC0yOTgsMTIgKzMwNCwxMyBA
QCBjbGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogICBleHBsaWNpdCBBc3NlcnRpb25SZXN1bHQoCiAgICAgICBjb25zdCBUJiBzdWNjZXNz
LAotICAgICAgdHlwZW5hbWUgaW50ZXJuYWw6OkVuYWJsZUlmPAotICAgICAgICAgICFpbnRlcm5h
bDo6SW1wbGljaXRseUNvbnZlcnRpYmxlPFQsIEFzc2VydGlvblJlc3VsdD46OnZhbHVlPjo6dHlw
ZSoKLSAgICAgICAgICAvKmVuYWJsZXIqLyA9IE5VTEwpCisgICAgICB0eXBlbmFtZSBzdGQ6OmVu
YWJsZV9pZjwKKyAgICAgICAgICAhc3RkOjppc19jb252ZXJ0aWJsZTxULCBBc3NlcnRpb25SZXN1
bHQ+Ojp2YWx1ZT46OnR5cGUqCisgICAgICAvKmVuYWJsZXIqLworICAgICAgPSBudWxscHRyKQog
ICAgICAgOiBzdWNjZXNzXyhzdWNjZXNzKSB7fQogCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVIgPCAxOTEwCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDwgMTkx
MCB8fCBfTVNDX1ZFUiA+PSAxOTIwKQogICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1Bf
KCkKICNlbmRpZgogCkBAIC0zMTMsNyArMzIwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRp
b25SZXN1bHQgewogICAgIHJldHVybiAqdGhpczsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIGFzc2VydGlvbiBzdWNjZWVkZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZC4KICAgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsg
cmV0dXJuIHN1Y2Nlc3NfOyB9ICAvLyBOT0xJTlQKIAogICAvLyBSZXR1cm5zIHRoZSBhc3NlcnRp
b24ncyBuZWdhdGlvbi4gVXNlZCB3aXRoIEVYUEVDVC9BU1NFUlRfRkFMU0UuCkBAIC0zMjQsOSAr
MzMxLDggQEAgY2xhc3MgR1RFU1RfQVBJXyBBc3NlcnRpb25SZXN1bHQgewogICAvLyBhc3NlcnRp
b24ncyBleHBlY3RhdGlvbikuIFdoZW4gbm90aGluZyBoYXMgYmVlbiBzdHJlYW1lZCBpbnRvIHRo
ZQogICAvLyBvYmplY3QsIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgogICBjb25zdCBjaGFyKiBt
ZXNzYWdlKCkgY29uc3QgewotICAgIHJldHVybiBtZXNzYWdlXy5nZXQoKSAhPSBOVUxMID8gIG1l
c3NhZ2VfLT5jX3N0cigpIDogIiI7CisgICAgcmV0dXJuIG1lc3NhZ2VfLmdldCgpICE9IG51bGxw
dHIgPyBtZXNzYWdlXy0+Y19zdHIoKSA6ICIiOwogICB9Ci0gIC8vIEZJWE1FOiBSZW1vdmUgdGhp
cyBhZnRlciBtYWtpbmcgc3VyZSBubyBjbGllbnRzIHVzZSBpdC4KICAgLy8gRGVwcmVjYXRlZDsg
cGxlYXNlIHVzZSBtZXNzYWdlKCkgaW5zdGVhZC4KICAgY29uc3QgY2hhciogZmFpbHVyZV9tZXNz
YWdlKCkgY29uc3QgeyByZXR1cm4gbWVzc2FnZSgpOyB9CiAKQEAgLTM0Nyw4ICszNTMsNyBAQCBj
bGFzcyBHVEVTVF9BUElfIEFzc2VydGlvblJlc3VsdCB7CiAgcHJpdmF0ZToKICAgLy8gQXBwZW5k
cyB0aGUgY29udGVudHMgb2YgbWVzc2FnZSB0byBtZXNzYWdlXy4KICAgdm9pZCBBcHBlbmRNZXNz
YWdlKGNvbnN0IE1lc3NhZ2UmIGFfbWVzc2FnZSkgewotICAgIGlmIChtZXNzYWdlXy5nZXQoKSA9
PSBOVUxMKQotICAgICAgbWVzc2FnZV8ucmVzZXQobmV3IDo6c3RkOjpzdHJpbmcpOworICAgIGlm
IChtZXNzYWdlXy5nZXQoKSA9PSBudWxscHRyKSBtZXNzYWdlXy5yZXNldChuZXcgOjpzdGQ6OnN0
cmluZyk7CiAgICAgbWVzc2FnZV8tPmFwcGVuZChhX21lc3NhZ2UuR2V0U3RyaW5nKCkuY19zdHIo
KSk7CiAgIH0KIApAQCAtMzYxLDcgKzM2Niw3IEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0aW9u
UmVzdWx0IHsKICAgLy8gY29uc3RydWN0IGlzIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgcHJlZGlj
YXRlJ3Mgb3V0Y29tZS4KICAgLy8gUmVmZXJlbmNlZCB2aWEgYSBwb2ludGVyIHRvIGF2b2lkIHRh
a2luZyB0b28gbXVjaCBzdGFjayBmcmFtZSBzcGFjZQogICAvLyB3aXRoIHRlc3QgYXNzZXJ0aW9u
cy4KLSAgaW50ZXJuYWw6OnNjb3BlZF9wdHI8IDo6c3RkOjpzdHJpbmc+IG1lc3NhZ2VfOworICBz
dGQ6OnVuaXF1ZV9wdHI8IDo6c3RkOjpzdHJpbmc+IG1lc3NhZ2VfOwogfTsKIAogLy8gTWFrZXMg
YSBzdWNjZXNzZnVsIGFzc2VydGlvbiByZXN1bHQuCkBAIC0zODUsOCArMzkwLDggQEAgbmFtZXNw
YWNlIHRlc3RpbmcgewogCiAvLyBUaGUgYWJzdHJhY3QgY2xhc3MgdGhhdCBhbGwgdGVzdHMgaW5o
ZXJpdCBmcm9tLgogLy8KLS8vIEluIEdvb2dsZSBUZXN0LCBhIHVuaXQgdGVzdCBwcm9ncmFtIGNv
bnRhaW5zIG9uZSBvciBtYW55IFRlc3RDYXNlcywgYW5kCi0vLyBlYWNoIFRlc3RDYXNlIGNvbnRh
aW5zIG9uZSBvciBtYW55IFRlc3RzLgorLy8gSW4gR29vZ2xlIFRlc3QsIGEgdW5pdCB0ZXN0IHBy
b2dyYW0gY29udGFpbnMgb25lIG9yIG1hbnkgVGVzdFN1aXRlcywgYW5kCisvLyBlYWNoIFRlc3RT
dWl0ZSBjb250YWlucyBvbmUgb3IgbWFueSBUZXN0cy4KIC8vCiAvLyBXaGVuIHlvdSBkZWZpbmUg
YSB0ZXN0IHVzaW5nIHRoZSBURVNUIG1hY3JvLCB5b3UgZG9uJ3QgbmVlZCB0bwogLy8gZXhwbGlj
aXRseSBkZXJpdmUgZnJvbSBUZXN0IC0gdGhlIFRFU1QgbWFjcm8gYXV0b21hdGljYWxseSBkb2Vz
CkBAIC00MTAsNDkgKzQxNSw1NCBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3QgewogIHB1YmxpYzoK
ICAgZnJpZW5kIGNsYXNzIFRlc3RJbmZvOwogCi0gIC8vIERlZmluZXMgdHlwZXMgZm9yIHBvaW50
ZXJzIHRvIGZ1bmN0aW9ucyB0aGF0IHNldCB1cCBhbmQgdGVhciBkb3duCi0gIC8vIGEgdGVzdCBj
YXNlLgotICB0eXBlZGVmIGludGVybmFsOjpTZXRVcFRlc3RDYXNlRnVuYyBTZXRVcFRlc3RDYXNl
RnVuYzsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMgVGVhckRvd25U
ZXN0Q2FzZUZ1bmM7Ci0KICAgLy8gVGhlIGQndG9yIGlzIHZpcnR1YWwgYXMgd2UgaW50ZW5kIHRv
IGluaGVyaXQgZnJvbSBUZXN0LgogICB2aXJ0dWFsIH5UZXN0KCk7CiAKLSAgLy8gU2V0cyB1cCB0
aGUgc3R1ZmYgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZS4KKyAgLy8gU2V0
cyB1cCB0aGUgc3R1ZmYgc2hhcmVkIGJ5IGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAg
IC8vCi0gIC8vIEdvb2dsZSBUZXN0IHdpbGwgY2FsbCBGb286OlNldFVwVGVzdENhc2UoKSBiZWZv
cmUgcnVubmluZyB0aGUgZmlyc3QKLSAgLy8gdGVzdCBpbiB0ZXN0IGNhc2UgRm9vLiAgSGVuY2Ug
YSBzdWItY2xhc3MgY2FuIGRlZmluZSBpdHMgb3duCi0gIC8vIFNldFVwVGVzdENhc2UoKSBtZXRo
b2QgdG8gc2hhZG93IHRoZSBvbmUgZGVmaW5lZCBpbiB0aGUgc3VwZXIKKyAgLy8gR29vZ2xlIFRl
c3Qgd2lsbCBjYWxsIEZvbzo6U2V0VXBUZXN0U3VpdGUoKSBiZWZvcmUgcnVubmluZyB0aGUgZmly
c3QKKyAgLy8gdGVzdCBpbiB0ZXN0IHN1aXRlIEZvby4gIEhlbmNlIGEgc3ViLWNsYXNzIGNhbiBk
ZWZpbmUgaXRzIG93bgorICAvLyBTZXRVcFRlc3RTdWl0ZSgpIG1ldGhvZCB0byBzaGFkb3cgdGhl
IG9uZSBkZWZpbmVkIGluIHRoZSBzdXBlcgogICAvLyBjbGFzcy4KLSAgc3RhdGljIHZvaWQgU2V0
VXBUZXN0Q2FzZSgpIHt9CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkge30KIAotICAv
LyBUZWFycyBkb3duIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRoaXMgdGVzdCBj
YXNlLgorICAvLyBUZWFycyBkb3duIHRoZSBzdHVmZiBzaGFyZWQgYnkgYWxsIHRlc3RzIGluIHRo
aXMgdGVzdCBzdWl0ZS4KICAgLy8KLSAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6VGVh
ckRvd25UZXN0Q2FzZSgpIGFmdGVyIHJ1bm5pbmcgdGhlIGxhc3QKLSAgLy8gdGVzdCBpbiB0ZXN0
IGNhc2UgRm9vLiAgSGVuY2UgYSBzdWItY2xhc3MgY2FuIGRlZmluZSBpdHMgb3duCi0gIC8vIFRl
YXJEb3duVGVzdENhc2UoKSBtZXRob2QgdG8gc2hhZG93IHRoZSBvbmUgZGVmaW5lZCBpbiB0aGUg
c3VwZXIKKyAgLy8gR29vZ2xlIFRlc3Qgd2lsbCBjYWxsIEZvbzo6VGVhckRvd25UZXN0U3VpdGUo
KSBhZnRlciBydW5uaW5nIHRoZSBsYXN0CisgIC8vIHRlc3QgaW4gdGVzdCBzdWl0ZSBGb28uICBI
ZW5jZSBhIHN1Yi1jbGFzcyBjYW4gZGVmaW5lIGl0cyBvd24KKyAgLy8gVGVhckRvd25UZXN0U3Vp
dGUoKSBtZXRob2QgdG8gc2hhZG93IHRoZSBvbmUgZGVmaW5lZCBpbiB0aGUgc3VwZXIKICAgLy8g
Y2xhc3MuCisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkge30KKworICAvLyBMZWdh
Y3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZS4gVXNlIFNldFVwVGVzdFN1
aXRlIGFuZAorICAvLyBUZWFyRG93blRlc3RTdWl0ZSBpbnN0ZWFkLgorI2lmbmRlZiBHVEVTVF9S
RU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KICAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2Fz
ZSgpIHt9CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7fQorI2VuZGlmICAvLyBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRo
ZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KKyAgLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KICAgc3Rh
dGljIGJvb2wgSGFzRmF0YWxGYWlsdXJlKCk7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUg
Y3VycmVudCB0ZXN0IGhhcyBhIG5vbi1mYXRhbCBmYWlsdXJlLgorICAvLyBSZXR1cm5zIHRydWUg
aWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCBoYXMgYSBub24tZmF0YWwgZmFpbHVyZS4K
ICAgc3RhdGljIGJvb2wgSGFzTm9uZmF0YWxGYWlsdXJlKCk7CiAKLSAgLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIChlaXRoZXIgZmF0YWwgb3IKKyAgLy8gUmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3Qgd2FzIHNraXBwZWQuCisgIHN0
YXRpYyBib29sIElzU2tpcHBlZCgpOworCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIChlaXRoZXIgZmF0YWwgb3IKICAgLy8gbm9uLWZhdGFs
KSBmYWlsdXJlLgogICBzdGF0aWMgYm9vbCBIYXNGYWlsdXJlKCkgeyByZXR1cm4gSGFzRmF0YWxG
YWlsdXJlKCkgfHwgSGFzTm9uZmF0YWxGYWlsdXJlKCk7IH0KIAotICAvLyBMb2dzIGEgcHJvcGVy
dHkgZm9yIHRoZSBjdXJyZW50IHRlc3QsIHRlc3QgY2FzZSwgb3IgZm9yIHRoZSBlbnRpcmUKKyAg
Ly8gTG9ncyBhIHByb3BlcnR5IGZvciB0aGUgY3VycmVudCB0ZXN0LCB0ZXN0IHN1aXRlLCBvciBm
b3IgdGhlIGVudGlyZQogICAvLyBpbnZvY2F0aW9uIG9mIHRoZSB0ZXN0IHByb2dyYW0gd2hlbiB1
c2VkIG91dHNpZGUgb2YgdGhlIGNvbnRleHQgb2YgYQotICAvLyB0ZXN0IGNhc2UuICBPbmx5IHRo
ZSBsYXN0IHZhbHVlIGZvciBhIGdpdmVuIGtleSBpcyByZW1lbWJlcmVkLiAgVGhlc2UKKyAgLy8g
dGVzdCBzdWl0ZS4gIE9ubHkgdGhlIGxhc3QgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IGlzIHJlbWVt
YmVyZWQuICBUaGVzZQogICAvLyBhcmUgcHVibGljIHN0YXRpYyBzbyB0aGV5IGNhbiBiZSBjYWxs
ZWQgZnJvbSB1dGlsaXR5IGZ1bmN0aW9ucyB0aGF0IGFyZQogICAvLyBub3QgbWVtYmVycyBvZiB0
aGUgdGVzdCBmaXh0dXJlLiAgQ2FsbHMgdG8gUmVjb3JkUHJvcGVydHkgbWFkZSBkdXJpbmcKICAg
Ly8gbGlmZXNwYW4gb2YgdGhlIHRlc3QgKGZyb20gdGhlIG1vbWVudCBpdHMgY29uc3RydWN0b3Ig
c3RhcnRzIHRvIHRoZQogICAvLyBtb21lbnQgaXRzIGRlc3RydWN0b3IgZmluaXNoZXMpIHdpbGwg
YmUgb3V0cHV0IGluIFhNTCBhcyBhdHRyaWJ1dGVzIG9mCiAgIC8vIHRoZSA8dGVzdGNhc2U+IGVs
ZW1lbnQuICBQcm9wZXJ0aWVzIHJlY29yZGVkIGZyb20gZml4dHVyZSdzCi0gIC8vIFNldFVwVGVz
dENhc2Ugb3IgVGVhckRvd25UZXN0Q2FzZSBhcmUgbG9nZ2VkIGFzIGF0dHJpYnV0ZXMgb2YgdGhl
CisgIC8vIFNldFVwVGVzdFN1aXRlIG9yIFRlYXJEb3duVGVzdFN1aXRlIGFyZSBsb2dnZWQgYXMg
YXR0cmlidXRlcyBvZiB0aGUKICAgLy8gY29ycmVzcG9uZGluZyA8dGVzdHN1aXRlPiBlbGVtZW50
LiAgQ2FsbHMgdG8gUmVjb3JkUHJvcGVydHkgbWFkZSBpbiB0aGUKICAgLy8gZ2xvYmFsIGNvbnRl
eHQgKGJlZm9yZSBvciBhZnRlciBpbnZvY2F0aW9uIG9mIFJVTl9BTExfVEVTVFMgYW5kIGZyb20K
ICAgLy8gU2V0VXAvVGVhckRvd24gbWV0aG9kIG9mIEVudmlyb25tZW50IG9iamVjdHMgcmVnaXN0
ZXJlZCB3aXRoIEdvb2dsZQpAQCAtNDcxLDggKzQ4MSw4IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dCB7CiAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpOwogCiAgcHJpdmF0ZToKLSAgLy8gUmV0dXJu
cyB0cnVlIGlmZiB0aGUgY3VycmVudCB0ZXN0IGhhcyB0aGUgc2FtZSBmaXh0dXJlIGNsYXNzIGFz
Ci0gIC8vIHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRlc3QgY2FzZS4KKyAgLy8gUmV0
dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRlc3QgaGFzIHRoZSBzYW1lIGZp
eHR1cmUgY2xhc3MKKyAgLy8gYXMgdGhlIGZpcnN0IHRlc3QgaW4gdGhlIGN1cnJlbnQgdGVzdCBz
dWl0ZS4KICAgc3RhdGljIGJvb2wgSGFzU2FtZUZpeHR1cmVDbGFzcygpOwogCiAgIC8vIFJ1bnMg
dGhlIHRlc3QgYWZ0ZXIgdGhlIHRlc3QgZml4dHVyZSBoYXMgYmVlbiBzZXQgdXAuCkBAIC00OTAs
NyArNTAwLDcgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0IHsKICAgLy8gaW50ZXJuYWwgbWV0aG9k
IHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggbmFtZXMgdXNlZCBpbiB1c2VyIFRFU1RzLgogICB2b2lk
IERlbGV0ZVNlbGZfKCkgeyBkZWxldGUgdGhpczsgfQogCi0gIGNvbnN0IGludGVybmFsOjpzY29w
ZWRfcHRyPCBHVEVTVF9GTEFHX1NBVkVSXyA+IGd0ZXN0X2ZsYWdfc2F2ZXJfOworICBjb25zdCBz
dGQ6OnVuaXF1ZV9wdHI8R1RFU1RfRkxBR19TQVZFUl8+IGd0ZXN0X2ZsYWdfc2F2ZXJfOwogCiAg
IC8vIE9mdGVuIGEgdXNlciBtaXNzcGVsbHMgU2V0VXAoKSBhcyBTZXR1cCgpIGFuZCBzcGVuZHMg
YSBsb25nIHRpbWUKICAgLy8gd29uZGVyaW5nIHdoeSBpdCBpcyBuZXZlciBjYWxsZWQgYnkgR29v
Z2xlIFRlc3QuICBUaGUgZGVjbGFyYXRpb24gb2YKQEAgLTUwOSw3ICs1MTksNyBAQCBjbGFzcyBH
VEVTVF9BUElfIFRlc3QgewogICAvLyBJZiB5b3Ugc2VlIGFuIGVycm9yIGFib3V0IG92ZXJyaWRp
bmcgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBvcgogICAvLyBhYm91dCBpdCBiZWluZyBwcml2YXRl
LCB5b3UgaGF2ZSBtaXMtc3BlbGxlZCBTZXRVcCgpIGFzIFNldHVwKCkuCiAgIHN0cnVjdCBTZXR1
cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCB7fTsKLSAgdmlydHVhbCBTZXR1cF9zaG91bGRfYmVf
c3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJldHVybiBOVUxMOyB9CisgIHZpcnR1YWwgU2V0dXBf
c2hvdWxkX2JlX3NwZWxsZWRfU2V0VXAqIFNldHVwKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAg
IC8vIFdlIGRpc2FsbG93IGNvcHlpbmcgVGVzdHMuCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5E
X0FTU0lHTl8oVGVzdCk7CkBAIC01NzMsMjEgKzU4MywyOCBAQCBjbGFzcyBHVEVTVF9BUElfIFRl
c3RSZXN1bHQgewogICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIHRlc3QgcHJvcGVydGll
cy4KICAgaW50IHRlc3RfcHJvcGVydHlfY291bnQoKSBjb25zdDsKIAotICAvLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSB0ZXN0IHBhc3NlZCAoaS5lLiBubyB0ZXN0IHBhcnQgZmFpbGVkKS4KLSAgYm9v
bCBQYXNzZWQoKSBjb25zdCB7IHJldHVybiAhRmFpbGVkKCk7IH0KKyAgLy8gUmV0dXJucyB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHBhc3NlZCAoaS5lLiBubyB0ZXN0IHBhcnQgZmFpbGVk
KS4KKyAgYm9vbCBQYXNzZWQoKSBjb25zdCB7IHJldHVybiAhU2tpcHBlZCgpICYmICFGYWlsZWQo
KTsgfQorCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCB3YXMgc2tp
cHBlZC4KKyAgYm9vbCBTa2lwcGVkKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0
aGUgdGVzdCBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVz
dCBmYWlsZWQuCiAgIGJvb2wgRmFpbGVkKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlm
ZiB0aGUgdGVzdCBmYXRhbGx5IGZhaWxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IGZhdGFsbHkgZmFpbGVkLgogICBib29sIEhhc0ZhdGFsRmFpbHVyZSgpIGNv
bnN0OwogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZh
aWx1cmUuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBoYXMgYSBu
b24tZmF0YWwgZmFpbHVyZS4KICAgYm9vbCBIYXNOb25mYXRhbEZhaWx1cmUoKSBjb25zdDsKIAog
ICAvLyBSZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUlu
TWlsbGlzIGVsYXBzZWRfdGltZSgpIGNvbnN0IHsgcmV0dXJuIGVsYXBzZWRfdGltZV87IH0KIAor
ICAvLyBHZXRzIHRoZSB0aW1lIG9mIHRoZSB0ZXN0IGNhc2Ugc3RhcnQsIGluIG1zIGZyb20gdGhl
IHN0YXJ0IG9mIHRoZQorICAvLyBVTklYIGVwb2NoLgorICBUaW1lSW5NaWxsaXMgc3RhcnRfdGlt
ZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gc3RhcnRfdGltZXN0YW1wXzsgfQorCiAgIC8vIFJldHVy
bnMgdGhlIGktdGggdGVzdCBwYXJ0IHJlc3VsdCBhbW9uZyBhbGwgdGhlIHJlc3VsdHMuIGkgY2Fu
IHJhbmdlIGZyb20gMAogICAvLyB0byB0b3RhbF9wYXJ0X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5v
dCBpbiB0aGF0IHJhbmdlLCBhYm9ydHMgdGhlIHByb2dyYW0uCiAgIGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiBHZXRUZXN0UGFydFJlc3VsdChpbnQgaSkgY29uc3Q7CkBAIC01OTksNyArNjE2LDcgQEAg
Y2xhc3MgR1RFU1RfQVBJXyBUZXN0UmVzdWx0IHsKIAogIHByaXZhdGU6CiAgIGZyaWVuZCBjbGFz
cyBUZXN0SW5mbzsKLSAgZnJpZW5kIGNsYXNzIFRlc3RDYXNlOworICBmcmllbmQgY2xhc3MgVGVz
dFN1aXRlOwogICBmcmllbmQgY2xhc3MgVW5pdFRlc3Q7CiAgIGZyaWVuZCBjbGFzcyBpbnRlcm5h
bDo6RGVmYXVsdEdsb2JhbFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXI7CiAgIGZyaWVuZCBjbGFzcyBp
bnRlcm5hbDo6RXhlY0RlYXRoVGVzdDsKQEAgLTYxOCw2ICs2MzUsOSBAQCBjbGFzcyBHVEVTVF9B
UElfIFRlc3RSZXN1bHQgewogICAgIHJldHVybiB0ZXN0X3Byb3BlcnRpZXNfOwogICB9CiAKKyAg
Ly8gU2V0cyB0aGUgc3RhcnQgdGltZS4KKyAgdm9pZCBzZXRfc3RhcnRfdGltZXN0YW1wKFRpbWVJ
bk1pbGxpcyBzdGFydCkgeyBzdGFydF90aW1lc3RhbXBfID0gc3RhcnQ7IH0KKwogICAvLyBTZXRz
IHRoZSBlbGFwc2VkIHRpbWUuCiAgIHZvaWQgc2V0X2VsYXBzZWRfdGltZShUaW1lSW5NaWxsaXMg
ZWxhcHNlZCkgeyBlbGFwc2VkX3RpbWVfID0gZWxhcHNlZDsgfQogCkBAIC02MzEsNyArNjUxLDcg
QEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UmVzdWx0IHsKICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpOwogCiAgIC8vIEFkZHMgYSBmYWlsdXJl
IGlmIHRoZSBrZXkgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUgb2YgR29vZ2xlIFRlc3QKLSAgLy8g
dGVzdGNhc2UgdGFncy4gIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvcGVydHkgaXMgdmFsaWQuCisg
IC8vIHRlc3RzdWl0ZSB0YWdzLiAgUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSBpcyB2YWxp
ZC4KICAgLy8gRklYTUU6IFZhbGlkYXRlIGF0dHJpYnV0ZSBuYW1lcyBhcmUgbGVnYWwgYW5kIGh1
bWFuIHJlYWRhYmxlLgogICBzdGF0aWMgYm9vbCBWYWxpZGF0ZVRlc3RQcm9wZXJ0eShjb25zdCBz
dGQ6OnN0cmluZyYgeG1sX2VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFRlc3RQcm9wZXJ0eSYgdGVzdF9wcm9wZXJ0eSk7CkBAIC02NjEsNiArNjgxLDgg
QEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0UmVzdWx0IHsKICAgc3RkOjp2ZWN0b3I8VGVzdFByb3Bl
cnR5PiB0ZXN0X3Byb3BlcnRpZXNfOwogICAvLyBSdW5uaW5nIGNvdW50IG9mIGRlYXRoIHRlc3Rz
LgogICBpbnQgZGVhdGhfdGVzdF9jb3VudF87CisgIC8vIFRoZSBzdGFydCB0aW1lLCBpbiBtaWxs
aXNlY29uZHMgc2luY2UgVU5JWCBFcG9jaC4KKyAgVGltZUluTWlsbGlzIHN0YXJ0X3RpbWVzdGFt
cF87CiAgIC8vIFRoZSBlbGFwc2VkIHRpbWUsIGluIG1pbGxpc2Vjb25kcy4KICAgVGltZUluTWls
bGlzIGVsYXBzZWRfdGltZV87CiAKQEAgLTY3MCw3ICs2OTIsNyBAQCBjbGFzcyBHVEVTVF9BUElf
IFRlc3RSZXN1bHQgewogCiAvLyBBIFRlc3RJbmZvIG9iamVjdCBzdG9yZXMgdGhlIGZvbGxvd2lu
ZyBpbmZvcm1hdGlvbiBhYm91dCBhIHRlc3Q6CiAvLwotLy8gICBUZXN0IGNhc2UgbmFtZQorLy8g
ICBUZXN0IHN1aXRlIG5hbWUKIC8vICAgVGVzdCBuYW1lCiAvLyAgIFdoZXRoZXIgdGhlIHRlc3Qg
c2hvdWxkIGJlIHJ1bgogLy8gICBBIGZ1bmN0aW9uIHBvaW50ZXIgdGhhdCBjcmVhdGVzIHRoZSB0
ZXN0IG9iamVjdCB3aGVuIGludm9rZWQKQEAgLTY4NSw4ICs3MDcsMTMgQEAgY2xhc3MgR1RFU1Rf
QVBJXyBUZXN0SW5mbyB7CiAgIC8vIGRvbid0IGluaGVyaXQgZnJvbSBUZXN0SW5mby4KICAgflRl
c3RJbmZvKCk7CiAKLSAgLy8gUmV0dXJucyB0aGUgdGVzdCBjYXNlIG5hbWUuCi0gIGNvbnN0IGNo
YXIqIHRlc3RfY2FzZV9uYW1lKCkgY29uc3QgeyByZXR1cm4gdGVzdF9jYXNlX25hbWVfLmNfc3Ry
KCk7IH0KKyAgLy8gUmV0dXJucyB0aGUgdGVzdCBzdWl0ZSBuYW1lLgorICBjb25zdCBjaGFyKiB0
ZXN0X3N1aXRlX25hbWUoKSBjb25zdCB7IHJldHVybiB0ZXN0X3N1aXRlX25hbWVfLmNfc3RyKCk7
IH0KKworLy8gTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNp
Zm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIGNvbnN0IGNoYXIqIHRl
c3RfY2FzZV9uYW1lKCkgY29uc3QgeyByZXR1cm4gdGVzdF9zdWl0ZV9uYW1lKCk7IH0KKyNlbmRp
ZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKICAgLy8gUmV0dXJucyB0
aGUgdGVzdCBuYW1lLgogICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbmFtZV8u
Y19zdHIoKTsgfQpAQCAtNjk0LDE3ICs3MjEsMTUgQEAgY2xhc3MgR1RFU1RfQVBJXyBUZXN0SW5m
byB7CiAgIC8vIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlLCBvciBOVUxM
IGlmIHRoaXMgaXMgbm90IGEgdHlwZWQKICAgLy8gb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVz
dC4KICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSgpIGNvbnN0IHsKLSAgICBpZiAodHlwZV9wYXJh
bV8uZ2V0KCkgIT0gTlVMTCkKLSAgICAgIHJldHVybiB0eXBlX3BhcmFtXy0+Y19zdHIoKTsKLSAg
ICByZXR1cm4gTlVMTDsKKyAgICBpZiAodHlwZV9wYXJhbV8uZ2V0KCkgIT0gbnVsbHB0cikgcmV0
dXJuIHR5cGVfcGFyYW1fLT5jX3N0cigpOworICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAg
Ly8gUmV0dXJucyB0aGUgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUgcGFyYW1ldGVy
LCBvciBOVUxMIGlmIHRoaXMKICAgLy8gaXMgbm90IGEgdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
LgogICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSgpIGNvbnN0IHsKLSAgICBpZiAodmFsdWVfcGFy
YW1fLmdldCgpICE9IE5VTEwpCi0gICAgICByZXR1cm4gdmFsdWVfcGFyYW1fLT5jX3N0cigpOwot
ICAgIHJldHVybiBOVUxMOworICAgIGlmICh2YWx1ZV9wYXJhbV8uZ2V0KCkgIT0gbnVsbHB0cikg
cmV0dXJuIHZhbHVlX3BhcmFtXy0+Y19zdHIoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKICAgfQog
CiAgIC8vIFJldHVybnMgdGhlIGZpbGUgbmFtZSB3aGVyZSB0aGlzIHRlc3QgaXMgZGVmaW5lZC4K
QEAgLTcyMSw3ICs3NDYsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAgLy8gYmVl
biBzcGVjaWZpZWQpIGFuZCBpdHMgZnVsbCBuYW1lIG1hdGNoZXMgdGhlIHVzZXItc3BlY2lmaWVk
IGZpbHRlci4KICAgLy8KICAgLy8gR29vZ2xlIFRlc3QgYWxsb3dzIHRoZSB1c2VyIHRvIGZpbHRl
ciB0aGUgdGVzdHMgYnkgdGhlaXIgZnVsbCBuYW1lcy4KLSAgLy8gVGhlIGZ1bGwgbmFtZSBvZiBh
IHRlc3QgQmFyIGluIHRlc3QgY2FzZSBGb28gaXMgZGVmaW5lZCBhcworICAvLyBUaGUgZnVsbCBu
YW1lIG9mIGEgdGVzdCBCYXIgaW4gdGVzdCBzdWl0ZSBGb28gaXMgZGVmaW5lZCBhcwogICAvLyAi
Rm9vLkJhciIuICBPbmx5IHRoZSB0ZXN0cyB0aGF0IG1hdGNoIHRoZSBmaWx0ZXIgd2lsbCBydW4u
CiAgIC8vCiAgIC8vIEEgZmlsdGVyIGlzIGEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZ2xvYiAo
bm90IHJlZ2V4KSBwYXR0ZXJucywKQEAgLTczNCw3ICs3NTksNyBAQCBjbGFzcyBHVEVTVF9BUElf
IFRlc3RJbmZvIHsKICAgLy8gY29udGFpbnMgdGhlIGNoYXJhY3RlciAnQScgb3Igc3RhcnRzIHdp
dGggIkZvby4iLgogICBib29sIHNob3VsZF9ydW4oKSBjb25zdCB7IHJldHVybiBzaG91bGRfcnVu
XzsgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhpcyB0ZXN0IHdpbGwgYXBwZWFyIGluIHRo
ZSBYTUwgcmVwb3J0LgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhpcyB0ZXN0
IHdpbGwgYXBwZWFyIGluIHRoZSBYTUwgcmVwb3J0LgogICBib29sIGlzX3JlcG9ydGFibGUoKSBj
b25zdCB7CiAgICAgLy8gVGhlIFhNTCByZXBvcnQgaW5jbHVkZXMgdGVzdHMgbWF0Y2hpbmcgdGhl
IGZpbHRlciwgZXhjbHVkaW5nIHRob3NlCiAgICAgLy8gcnVuIGluIG90aGVyIHNoYXJkcy4KQEAg
LTc0OSwyNCArNzc0LDE5IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVzdEluZm8gewogICBmcmllbmQg
Y2xhc3MgaW50ZXJuYWw6OkRlZmF1bHREZWF0aFRlc3RGYWN0b3J5OwogI2VuZGlmICAvLyBHVEVT
VF9IQVNfREVBVEhfVEVTVAogICBmcmllbmQgY2xhc3MgVGVzdDsKLSAgZnJpZW5kIGNsYXNzIFRl
c3RDYXNlOworICBmcmllbmQgY2xhc3MgVGVzdFN1aXRlOwogICBmcmllbmQgY2xhc3MgaW50ZXJu
YWw6OlVuaXRUZXN0SW1wbDsKICAgZnJpZW5kIGNsYXNzIGludGVybmFsOjpTdHJlYW1pbmdMaXN0
ZW5lclRlc3Q7CiAgIGZyaWVuZCBUZXN0SW5mbyogaW50ZXJuYWw6Ok1ha2VBbmRSZWdpc3RlclRl
c3RJbmZvKAotICAgICAgY29uc3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICBjb25zdCBj
aGFyKiBuYW1lLAotICAgICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKLSAgICAgIGNvbnN0IGNo
YXIqIHZhbHVlX3BhcmFtLAotICAgICAgaW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBjb2RlX2xvY2F0
aW9uLAotICAgICAgaW50ZXJuYWw6OlR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkLAotICAgICAgVGVz
dDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgVGVzdDo6VGVhckRvd25UZXN0
Q2FzZUZ1bmMgdGVhcl9kb3duX3RjLAorICAgICAgY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1l
LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB0eXBlX3BhcmFtLAorICAgICAgY29uc3Qg
Y2hhciogdmFsdWVfcGFyYW0sIGludGVybmFsOjpDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbiwK
KyAgICAgIGludGVybmFsOjpUeXBlSWQgZml4dHVyZV9jbGFzc19pZCwgaW50ZXJuYWw6OlNldFVw
VGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICBpbnRlcm5hbDo6VGVhckRvd25UZXN0U3Vp
dGVGdW5jIHRlYXJfZG93bl90YywKICAgICAgIGludGVybmFsOjpUZXN0RmFjdG9yeUJhc2UqIGZh
Y3RvcnkpOwogCiAgIC8vIENvbnN0cnVjdHMgYSBUZXN0SW5mbyBvYmplY3QuIFRoZSBuZXdseSBj
b25zdHJ1Y3RlZCBpbnN0YW5jZSBhc3N1bWVzCiAgIC8vIG93bmVyc2hpcCBvZiB0aGUgZmFjdG9y
eSBvYmplY3QuCi0gIFRlc3RJbmZvKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X2Nhc2VfbmFtZSwK
LSAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUsCisgIFRlc3RJbmZvKGNvbnN0IHN0
ZDo6c3RyaW5nJiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAogICAg
ICAgICAgICBjb25zdCBjaGFyKiBhX3R5cGVfcGFyYW0sICAgLy8gTlVMTCBpZiBub3QgYSB0eXBl
LXBhcmFtZXRlcml6ZWQgdGVzdAogICAgICAgICAgICBjb25zdCBjaGFyKiBhX3ZhbHVlX3BhcmFt
LCAgLy8gTlVMTCBpZiBub3QgYSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QKICAgICAgICAgICAg
aW50ZXJuYWw6OkNvZGVMb2NhdGlvbiBhX2NvZGVfbG9jYXRpb24sCkBAIC03ODMsMjYgKzgwMywy
OSBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAgLy8gZGVsZXRlcyBpdC4KICAgdm9p
ZCBSdW4oKTsKIAorICAvLyBTa2lwIGFuZCByZWNvcmRzIHRoZSB0ZXN0IHJlc3VsdCBmb3IgdGhp
cyBvYmplY3QuCisgIHZvaWQgU2tpcCgpOworCiAgIHN0YXRpYyB2b2lkIENsZWFyVGVzdFJlc3Vs
dChUZXN0SW5mbyogdGVzdF9pbmZvKSB7CiAgICAgdGVzdF9pbmZvLT5yZXN1bHRfLkNsZWFyKCk7
CiAgIH0KIAogICAvLyBUaGVzZSBmaWVsZHMgYXJlIGltbXV0YWJsZSBwcm9wZXJ0aWVzIG9mIHRo
ZSB0ZXN0LgotICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X2Nhc2VfbmFtZV87ICAgICAvLyBUZXN0
IGNhc2UgbmFtZQorICBjb25zdCBzdGQ6OnN0cmluZyB0ZXN0X3N1aXRlX25hbWVfOyAgICAvLyB0
ZXN0IHN1aXRlIG5hbWUKICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV87ICAgICAgICAgICAgICAg
Ly8gVGVzdCBuYW1lCiAgIC8vIE5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlLCBvciBOVUxMIGlm
IHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYQogICAvLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4K
LSAgY29uc3QgaW50ZXJuYWw6OnNjb3BlZF9wdHI8Y29uc3QgOjpzdGQ6OnN0cmluZz4gdHlwZV9w
YXJhbV87CisgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB0eXBl
X3BhcmFtXzsKICAgLy8gVGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUgcGFyYW1ldGVy
LCBvciBOVUxMIGlmIHRoaXMgaXMgbm90IGEKICAgLy8gdmFsdWUtcGFyYW1ldGVyaXplZCB0ZXN0
LgotICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB2YWx1
ZV9wYXJhbV87CisgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB2
YWx1ZV9wYXJhbV87CiAgIGludGVybmFsOjpDb2RlTG9jYXRpb24gbG9jYXRpb25fOwotICBjb25z
dCBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3NfaWRfOyAgIC8vIElEIG9mIHRoZSB0ZXN0
IGZpeHR1cmUgY2xhc3MKLSAgYm9vbCBzaG91bGRfcnVuXzsgICAgICAgICAgICAgICAgIC8vIFRy
dWUgaWZmIHRoaXMgdGVzdCBzaG91bGQgcnVuCi0gIGJvb2wgaXNfZGlzYWJsZWRfOyAgICAgICAg
ICAgICAgICAvLyBUcnVlIGlmZiB0aGlzIHRlc3QgaXMgZGlzYWJsZWQKLSAgYm9vbCBtYXRjaGVz
X2ZpbHRlcl87ICAgICAgICAgICAgIC8vIFRydWUgaWYgdGhpcyB0ZXN0IG1hdGNoZXMgdGhlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VyLXNwZWNpZmllZCBmaWx0
ZXIuCi0gIGJvb2wgaXNfaW5fYW5vdGhlcl9zaGFyZF87ICAgICAgICAvLyBXaWxsIGJlIHJ1biBp
biBhbm90aGVyIHNoYXJkLgorICBjb25zdCBpbnRlcm5hbDo6VHlwZUlkIGZpeHR1cmVfY2xhc3Nf
aWRfOyAgLy8gSUQgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcworICBib29sIHNob3VsZF9ydW5f
OyAgICAgICAgICAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIHRlc3Qgc2hvdWxkIHJ1bgor
ICBib29sIGlzX2Rpc2FibGVkXzsgICAgICAgICAgLy8gVHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlz
IHRlc3QgaXMgZGlzYWJsZWQKKyAgYm9vbCBtYXRjaGVzX2ZpbHRlcl87ICAgICAgIC8vIFRydWUg
aWYgdGhpcyB0ZXN0IG1hdGNoZXMgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB1c2VyLXNwZWNpZmllZCBmaWx0ZXIuCisgIGJvb2wgaXNfaW5fYW5vdGhlcl9zaGFyZF87ICAv
LyBXaWxsIGJlIHJ1biBpbiBhbm90aGVyIHNoYXJkLgogICBpbnRlcm5hbDo6VGVzdEZhY3RvcnlC
YXNlKiBjb25zdCBmYWN0b3J5XzsgIC8vIFRoZSBmYWN0b3J5IHRoYXQgY3JlYXRlcwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB0ZXN0IG9iamVj
dAogCkBAIC04MTMsOTAgKzgzNiw5OCBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RJbmZvIHsKICAg
R1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0SW5mbyk7CiB9OwogCi0vLyBBIHRl
c3QgY2FzZSwgd2hpY2ggY29uc2lzdHMgb2YgYSB2ZWN0b3Igb2YgVGVzdEluZm9zLgorLy8gQSB0
ZXN0IHN1aXRlLCB3aGljaCBjb25zaXN0cyBvZiBhIHZlY3RvciBvZiBUZXN0SW5mb3MuCiAvLwot
Ly8gVGVzdENhc2UgaXMgbm90IGNvcHlhYmxlLgotY2xhc3MgR1RFU1RfQVBJXyBUZXN0Q2FzZSB7
CisvLyBUZXN0U3VpdGUgaXMgbm90IGNvcHlhYmxlLgorY2xhc3MgR1RFU1RfQVBJXyBUZXN0U3Vp
dGUgewogIHB1YmxpYzoKLSAgLy8gQ3JlYXRlcyBhIFRlc3RDYXNlIHdpdGggdGhlIGdpdmVuIG5h
bWUuCisgIC8vIENyZWF0ZXMgYSBUZXN0U3VpdGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KICAgLy8K
LSAgLy8gVGVzdENhc2UgZG9lcyBOT1QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuICBBbHdh
eXMgdXNlIHRoaXMKLSAgLy8gY29uc3RydWN0b3IgdG8gY3JlYXRlIGEgVGVzdENhc2Ugb2JqZWN0
LgorICAvLyBUZXN0U3VpdGUgZG9lcyBOT1QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuICBB
bHdheXMgdXNlIHRoaXMKKyAgLy8gY29uc3RydWN0b3IgdG8gY3JlYXRlIGEgVGVzdFN1aXRlIG9i
amVjdC4KICAgLy8KICAgLy8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIG5hbWU6ICAgICAgICAg
bmFtZSBvZiB0aGUgdGVzdCBjYXNlCisgIC8vICAgbmFtZTogICAgICAgICBuYW1lIG9mIHRoZSB0
ZXN0IHN1aXRlCiAgIC8vICAgYV90eXBlX3BhcmFtOiB0aGUgbmFtZSBvZiB0aGUgdGVzdCdzIHR5
cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCiAgIC8vICAgICAgICAgICAgICAgICB0aGlzIGlzIG5v
dCBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotICAvLyAgIHNldF91cF90YzogICAgcG9pbnRl
ciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLSAgLy8gICB0ZWFy
X2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVz
dCBjYXNlCi0gIFRlc3RDYXNlKGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIGFfdHlwZV9w
YXJhbSwKLSAgICAgICAgICAgVGVzdDo6U2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAg
ICAgICAgICBUZXN0OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMpOworICAvLyAg
IHNldF91cF90YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0
ZXN0IHN1aXRlCisgIC8vICAgdGVhcl9kb3duX3RjOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0
aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKKyAgVGVzdFN1aXRlKGNvbnN0IGNoYXIqIG5h
bWUsIGNvbnN0IGNoYXIqIGFfdHlwZV9wYXJhbSwKKyAgICAgICAgICAgIGludGVybmFsOjpTZXRV
cFRlc3RTdWl0ZUZ1bmMgc2V0X3VwX3RjLAorICAgICAgICAgICAgaW50ZXJuYWw6OlRlYXJEb3du
VGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMpOwogCi0gIC8vIERlc3RydWN0b3Igb2YgVGVzdENh
c2UuCi0gIHZpcnR1YWwgflRlc3RDYXNlKCk7CisgIC8vIERlc3RydWN0b3Igb2YgVGVzdFN1aXRl
LgorICB2aXJ0dWFsIH5UZXN0U3VpdGUoKTsKIAotICAvLyBHZXRzIHRoZSBuYW1lIG9mIHRoZSBU
ZXN0Q2FzZS4KKyAgLy8gR2V0cyB0aGUgbmFtZSBvZiB0aGUgVGVzdFN1aXRlLgogICBjb25zdCBj
aGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbmFtZV8uY19zdHIoKTsgfQogCiAgIC8vIFJldHVy
bnMgdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlLCBvciBOVUxMIGlmIHRoaXMgaXMgbm90
IGEKLSAgLy8gdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KKyAgLy8gdHlwZS1wYXJhbWV0
ZXJpemVkIHRlc3Qgc3VpdGUuCiAgIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0oKSBjb25zdCB7Ci0g
ICAgaWYgKHR5cGVfcGFyYW1fLmdldCgpICE9IE5VTEwpCi0gICAgICByZXR1cm4gdHlwZV9wYXJh
bV8tPmNfc3RyKCk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHR5cGVfcGFyYW1fLmdldCgp
ICE9IG51bGxwdHIpIHJldHVybiB0eXBlX3BhcmFtXy0+Y19zdHIoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3Qg
Y2FzZSBzaG91bGQgcnVuLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IHRlc3QgaW4gdGhpcyB0
ZXN0IHN1aXRlIHNob3VsZCBydW4uCiAgIGJvb2wgc2hvdWxkX3J1bigpIGNvbnN0IHsgcmV0dXJu
IHNob3VsZF9ydW5fOyB9CiAKLSAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVz
dHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVs
IHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0ZS4KICAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgp
IGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBza2lwcGVkIHRlc3RzIGluIHRoaXMg
dGVzdCBzdWl0ZS4KKyAgaW50IHNraXBwZWRfdGVzdF9jb3VudCgpIGNvbnN0OworCisgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQg
ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdDsKIAogICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlz
YWJsZWQgdGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwgcmVwb3J0LgogICBp
bnQgcmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGRpc2FibGVkIHRlc3RzIGluIHRoaXMgdGVzdCBjYXNlLgorICAvLyBHZXRz
IHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgogICBpbnQg
ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0OwogCiAgIC8vIEdldHMgdGhlIG51bWJlciBvZiB0
ZXN0cyB0byBiZSBwcmludGVkIGluIHRoZSBYTUwgcmVwb3J0LgogICBpbnQgcmVwb3J0YWJsZV90
ZXN0X2NvdW50KCkgY29uc3Q7CiAKLSAgLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhp
cyB0ZXN0IGNhc2UgdGhhdCBzaG91bGQgcnVuLgorICAvLyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0
cyBpbiB0aGlzIHRlc3Qgc3VpdGUgdGhhdCBzaG91bGQgcnVuLgogICBpbnQgdGVzdF90b19ydW5f
Y291bnQoKSBjb25zdDsKIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzIGluIHRo
aXMgdGVzdCBjYXNlLgorICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3RzIGluIHRoaXMg
dGVzdCBzdWl0ZS4KICAgaW50IHRvdGFsX3Rlc3RfY291bnQoKSBjb25zdDsKIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgcGFzc2VkLgorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHRlc3Qgc3VpdGUgcGFzc2VkLgogICBib29sIFBhc3NlZCgpIGNvbnN0
IHsgcmV0dXJuICFGYWlsZWQoKTsgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3Qg
Y2FzZSBmYWlsZWQuCi0gIGJvb2wgRmFpbGVkKCkgY29uc3QgeyByZXR1cm4gZmFpbGVkX3Rlc3Rf
Y291bnQoKSA+IDA7IH0KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IHN1aXRlIGZhaWxlZC4KKyAgYm9vbCBGYWlsZWQoKSBjb25zdCB7CisgICAgcmV0dXJuIGZhaWxl
ZF90ZXN0X2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0X3Jlc3VsdCgpLkZhaWxlZCgpOworICB9
CiAKICAgLy8gUmV0dXJucyB0aGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAgIFRp
bWVJbk1pbGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdCB7IHJldHVybiBlbGFwc2VkX3RpbWVfOyB9
CiAKKyAgLy8gR2V0cyB0aGUgdGltZSBvZiB0aGUgdGVzdCBzdWl0ZSBzdGFydCwgaW4gbXMgZnJv
bSB0aGUgc3RhcnQgb2YgdGhlCisgIC8vIFVOSVggZXBvY2guCisgIFRpbWVJbk1pbGxpcyBzdGFy
dF90aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBzdGFydF90aW1lc3RhbXBfOyB9CisKICAgLy8g
UmV0dXJucyB0aGUgaS10aCB0ZXN0IGFtb25nIGFsbCB0aGUgdGVzdHMuIGkgY2FuIHJhbmdlIGZy
b20gMCB0bwogICAvLyB0b3RhbF90ZXN0X2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBpbiB0aGF0
IHJhbmdlLCByZXR1cm5zIE5VTEwuCiAgIGNvbnN0IFRlc3RJbmZvKiBHZXRUZXN0SW5mbyhpbnQg
aSkgY29uc3Q7CiAKICAgLy8gUmV0dXJucyB0aGUgVGVzdFJlc3VsdCB0aGF0IGhvbGRzIHRlc3Qg
cHJvcGVydGllcyByZWNvcmRlZCBkdXJpbmcKLSAgLy8gZXhlY3V0aW9uIG9mIFNldFVwVGVzdENh
c2UgYW5kIFRlYXJEb3duVGVzdENhc2UuCisgIC8vIGV4ZWN1dGlvbiBvZiBTZXRVcFRlc3RTdWl0
ZSBhbmQgVGVhckRvd25UZXN0U3VpdGUuCiAgIGNvbnN0IFRlc3RSZXN1bHQmIGFkX2hvY190ZXN0
X3Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIGFkX2hvY190ZXN0X3Jlc3VsdF87IH0KIAogIHByaXZh
dGU6CiAgIGZyaWVuZCBjbGFzcyBUZXN0OwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OlVuaXRU
ZXN0SW1wbDsKIAotICAvLyBHZXRzIHRoZSAobXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJbmZvcyBp
biB0aGlzIFRlc3RDYXNlLgorICAvLyBHZXRzIHRoZSAobXV0YWJsZSkgdmVjdG9yIG9mIFRlc3RJ
bmZvcyBpbiB0aGlzIFRlc3RTdWl0ZS4KICAgc3RkOjp2ZWN0b3I8VGVzdEluZm8qPiYgdGVzdF9p
bmZvX2xpc3QoKSB7IHJldHVybiB0ZXN0X2luZm9fbGlzdF87IH0KIAotICAvLyBHZXRzIHRoZSAo
aW1tdXRhYmxlKSB2ZWN0b3Igb2YgVGVzdEluZm9zIGluIHRoaXMgVGVzdENhc2UuCisgIC8vIEdl
dHMgdGhlIChpbW11dGFibGUpIHZlY3RvciBvZiBUZXN0SW5mb3MgaW4gdGhpcyBUZXN0U3VpdGUu
CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RJbmZvKj4mIHRlc3RfaW5mb19saXN0KCkgY29uc3Qg
ewogICAgIHJldHVybiB0ZXN0X2luZm9fbGlzdF87CiAgIH0KQEAgLTkwOCw1MSArOTM5LDY3IEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdENhc2UgewogICAvLyBTZXRzIHRoZSBzaG91bGRfcnVuIG1l
bWJlci4KICAgdm9pZCBzZXRfc2hvdWxkX3J1bihib29sIHNob3VsZCkgeyBzaG91bGRfcnVuXyA9
IHNob3VsZDsgfQogCi0gIC8vIEFkZHMgYSBUZXN0SW5mbyB0byB0aGlzIHRlc3QgY2FzZS4gIFdp
bGwgZGVsZXRlIHRoZSBUZXN0SW5mbyB1cG9uCi0gIC8vIGRlc3RydWN0aW9uIG9mIHRoZSBUZXN0
Q2FzZSBvYmplY3QuCisgIC8vIEFkZHMgYSBUZXN0SW5mbyB0byB0aGlzIHRlc3Qgc3VpdGUuICBX
aWxsIGRlbGV0ZSB0aGUgVGVzdEluZm8gdXBvbgorICAvLyBkZXN0cnVjdGlvbiBvZiB0aGUgVGVz
dFN1aXRlIG9iamVjdC4KICAgdm9pZCBBZGRUZXN0SW5mbyhUZXN0SW5mbyAqIHRlc3RfaW5mbyk7
CiAKLSAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3QgY2Fz
ZS4KKyAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3Vp
dGUuCiAgIHZvaWQgQ2xlYXJSZXN1bHQoKTsKIAotICAvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2Yg
YWxsIHRlc3RzIGluIHRoZSBnaXZlbiB0ZXN0IGNhc2UuCi0gIHN0YXRpYyB2b2lkIENsZWFyVGVz
dENhc2VSZXN1bHQoVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICAgIHRlc3RfY2FzZS0+Q2xlYXJS
ZXN1bHQoKTsKKyAgLy8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cyBpbiB0aGUgZ2l2
ZW4gdGVzdCBzdWl0ZS4KKyAgc3RhdGljIHZvaWQgQ2xlYXJUZXN0U3VpdGVSZXN1bHQoVGVzdFN1
aXRlKiB0ZXN0X3N1aXRlKSB7CisgICAgdGVzdF9zdWl0ZS0+Q2xlYXJSZXN1bHQoKTsKICAgfQog
Ci0gIC8vIFJ1bnMgZXZlcnkgdGVzdCBpbiB0aGlzIFRlc3RDYXNlLgorICAvLyBSdW5zIGV2ZXJ5
IHRlc3QgaW4gdGhpcyBUZXN0U3VpdGUuCiAgIHZvaWQgUnVuKCk7CiAKLSAgLy8gUnVucyBTZXRV
cFRlc3RDYXNlKCkgZm9yIHRoaXMgVGVzdENhc2UuICBUaGlzIHdyYXBwZXIgaXMgbmVlZGVkCi0g
IC8vIGZvciBjYXRjaGluZyBleGNlcHRpb25zIHRocm93biBmcm9tIFNldFVwVGVzdENhc2UoKS4K
LSAgdm9pZCBSdW5TZXRVcFRlc3RDYXNlKCkgeyAoKnNldF91cF90Y18pKCk7IH0KKyAgLy8gU2tp
cHMgdGhlIGV4ZWN1dGlvbiBvZiB0ZXN0cyB1bmRlciB0aGlzIFRlc3RTdWl0ZQorICB2b2lkIFNr
aXAoKTsKIAotICAvLyBSdW5zIFRlYXJEb3duVGVzdENhc2UoKSBmb3IgdGhpcyBUZXN0Q2FzZS4g
IFRoaXMgd3JhcHBlciBpcwotICAvLyBuZWVkZWQgZm9yIGNhdGNoaW5nIGV4Y2VwdGlvbnMgdGhy
b3duIGZyb20gVGVhckRvd25UZXN0Q2FzZSgpLgotICB2b2lkIFJ1blRlYXJEb3duVGVzdENhc2Uo
KSB7ICgqdGVhcl9kb3duX3RjXykoKTsgfQorICAvLyBSdW5zIFNldFVwVGVzdFN1aXRlKCkgZm9y
IHRoaXMgVGVzdFN1aXRlLiAgVGhpcyB3cmFwcGVyIGlzIG5lZWRlZAorICAvLyBmb3IgY2F0Y2hp
bmcgZXhjZXB0aW9ucyB0aHJvd24gZnJvbSBTZXRVcFRlc3RTdWl0ZSgpLgorICB2b2lkIFJ1blNl
dFVwVGVzdFN1aXRlKCkgeworICAgIGlmIChzZXRfdXBfdGNfICE9IG51bGxwdHIpIHsKKyAgICAg
ICgqc2V0X3VwX3RjXykoKTsKKyAgICB9CisgIH0KKworICAvLyBSdW5zIFRlYXJEb3duVGVzdFN1
aXRlKCkgZm9yIHRoaXMgVGVzdFN1aXRlLiAgVGhpcyB3cmFwcGVyIGlzCisgIC8vIG5lZWRlZCBm
b3IgY2F0Y2hpbmcgZXhjZXB0aW9ucyB0aHJvd24gZnJvbSBUZWFyRG93blRlc3RTdWl0ZSgpLgor
ICB2b2lkIFJ1blRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIGlmICh0ZWFyX2Rvd25fdGNfICE9
IG51bGxwdHIpIHsKKyAgICAgICgqdGVhcl9kb3duX3RjXykoKTsKKyAgICB9CisgIH0KIAotICAv
LyBSZXR1cm5zIHRydWUgaWZmIHRlc3QgcGFzc2VkLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5k
IG9ubHkgaWYgdGVzdCBwYXNzZWQuCiAgIHN0YXRpYyBib29sIFRlc3RQYXNzZWQoY29uc3QgVGVz
dEluZm8qIHRlc3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPnNob3VsZF9ydW4oKSAm
JiB0ZXN0X2luZm8tPnJlc3VsdCgpLT5QYXNzZWQoKTsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1
ZSBpZmYgdGVzdCBmYWlsZWQuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0ZXN0
IHNraXBwZWQuCisgIHN0YXRpYyBib29sIFRlc3RTa2lwcGVkKGNvbnN0IFRlc3RJbmZvKiB0ZXN0
X2luZm8pIHsKKyAgICByZXR1cm4gdGVzdF9pbmZvLT5zaG91bGRfcnVuKCkgJiYgdGVzdF9pbmZv
LT5yZXN1bHQoKS0+U2tpcHBlZCgpOworICB9CisKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHRlc3QgZmFpbGVkLgogICBzdGF0aWMgYm9vbCBUZXN0RmFpbGVkKGNvbnN0IFRlc3RJ
bmZvKiB0ZXN0X2luZm8pIHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5zaG91bGRfcnVuKCkgJiYg
dGVzdF9pbmZvLT5yZXN1bHQoKS0+RmFpbGVkKCk7CiAgIH0KIAotICAvLyBSZXR1cm5zIHRydWUg
aWZmIHRoZSB0ZXN0IGlzIGRpc2FibGVkIGFuZCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBYTUwK
LSAgLy8gcmVwb3J0LgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qg
aXMgZGlzYWJsZWQgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4KKyAgLy8gdGhlIFhNTCByZXBvcnQu
CiAgIHN0YXRpYyBib29sIFRlc3RSZXBvcnRhYmxlRGlzYWJsZWQoY29uc3QgVGVzdEluZm8qIHRl
c3RfaW5mbykgewogICAgIHJldHVybiB0ZXN0X2luZm8tPmlzX3JlcG9ydGFibGUoKSAmJiB0ZXN0
X2luZm8tPmlzX2Rpc2FibGVkXzsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGVzdCBp
cyBkaXNhYmxlZC4KKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRlc3QgaXMgZGlz
YWJsZWQuCiAgIHN0YXRpYyBib29sIFRlc3REaXNhYmxlZChjb25zdCBUZXN0SW5mbyogdGVzdF9p
bmZvKSB7CiAgICAgcmV0dXJuIHRlc3RfaW5mby0+aXNfZGlzYWJsZWRfOwogICB9CiAKLSAgLy8g
UmV0dXJucyB0cnVlIGlmZiB0aGlzIHRlc3Qgd2lsbCBhcHBlYXIgaW4gdGhlIFhNTCByZXBvcnQu
CisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIHRlc3Qgd2lsbCBhcHBlYXIg
aW4gdGhlIFhNTCByZXBvcnQuCiAgIHN0YXRpYyBib29sIFRlc3RSZXBvcnRhYmxlKGNvbnN0IFRl
c3RJbmZvKiB0ZXN0X2luZm8pIHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5pc19yZXBvcnRhYmxl
KCk7CiAgIH0KQEAgLTk2MiwxNyArMTAwOSwxNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRlc3RDYXNl
IHsKICAgICByZXR1cm4gdGVzdF9pbmZvLT5zaG91bGRfcnVuKCk7CiAgIH0KIAotICAvLyBTaHVm
ZmxlcyB0aGUgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2UuCisgIC8vIFNodWZmbGVzIHRoZSB0ZXN0
cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCiAgIHZvaWQgU2h1ZmZsZVRlc3RzKGludGVybmFsOjpSYW5k
b20qIHJhbmRvbSk7CiAKICAgLy8gUmVzdG9yZXMgdGhlIHRlc3Qgb3JkZXIgdG8gYmVmb3JlIHRo
ZSBmaXJzdCBzaHVmZmxlLgogICB2b2lkIFVuc2h1ZmZsZVRlc3RzKCk7CiAKLSAgLy8gTmFtZSBv
ZiB0aGUgdGVzdCBjYXNlLgorICAvLyBOYW1lIG9mIHRoZSB0ZXN0IHN1aXRlLgogICBzdGQ6OnN0
cmluZyBuYW1lXzsKICAgLy8gTmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUsIG9yIE5VTEwgaWYg
dGhpcyBpcyBub3QgYSB0eXBlZCBvciBhCiAgIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0Lgot
ICBjb25zdCBpbnRlcm5hbDo6c2NvcGVkX3B0cjxjb25zdCA6OnN0ZDo6c3RyaW5nPiB0eXBlX3Bh
cmFtXzsKKyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IDo6c3RkOjpzdHJpbmc+IHR5cGVf
cGFyYW1fOwogICAvLyBUaGUgdmVjdG9yIG9mIFRlc3RJbmZvcyBpbiB0aGVpciBvcmlnaW5hbCBv
cmRlci4gIEl0IG93bnMgdGhlCiAgIC8vIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IuCiAgIHN0ZDo6
dmVjdG9yPFRlc3RJbmZvKj4gdGVzdF9pbmZvX2xpc3RfOwpAQCAtOTgwLDIwICsxMDI3LDIyIEBA
IGNsYXNzIEdURVNUX0FQSV8gVGVzdENhc2UgewogICAvLyBzaHVmZmxpbmcgYW5kIHJlc3Rvcmlu
ZyB0aGUgdGVzdCBvcmRlci4gIFRoZSBpLXRoIGVsZW1lbnQgaW4gdGhpcwogICAvLyB2ZWN0b3Ig
aXMgdGhlIGluZGV4IG9mIHRoZSBpLXRoIHRlc3QgaW4gdGhlIHNodWZmbGVkIHRlc3QgbGlzdC4K
ICAgc3RkOjp2ZWN0b3I8aW50PiB0ZXN0X2luZGljZXNfOwotICAvLyBQb2ludGVyIHRvIHRoZSBm
dW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3QgY2FzZS4KLSAgVGVzdDo6U2V0VXBUZXN0Q2Fz
ZUZ1bmMgc2V0X3VwX3RjXzsKLSAgLy8gUG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFy
cyBkb3duIHRoZSB0ZXN0IGNhc2UuCi0gIFRlc3Q6OlRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJf
ZG93bl90Y187Ci0gIC8vIFRydWUgaWZmIGFueSB0ZXN0IGluIHRoaXMgdGVzdCBjYXNlIHNob3Vs
ZCBydW4uCisgIC8vIFBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVz
dCBzdWl0ZS4KKyAgaW50ZXJuYWw6OlNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGNfOworICAv
LyBQb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUu
CisgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjXzsKKyAgLy8g
VHJ1ZSBpZiBhbmQgb25seSBpZiBhbnkgdGVzdCBpbiB0aGlzIHRlc3Qgc3VpdGUgc2hvdWxkIHJ1
bi4KICAgYm9vbCBzaG91bGRfcnVuXzsKKyAgLy8gVGhlIHN0YXJ0IHRpbWUsIGluIG1pbGxpc2Vj
b25kcyBzaW5jZSBVTklYIEVwb2NoLgorICBUaW1lSW5NaWxsaXMgc3RhcnRfdGltZXN0YW1wXzsK
ICAgLy8gRWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1pbGxpcyBlbGFw
c2VkX3RpbWVfOwotICAvLyBIb2xkcyB0ZXN0IHByb3BlcnRpZXMgcmVjb3JkZWQgZHVyaW5nIGV4
ZWN1dGlvbiBvZiBTZXRVcFRlc3RDYXNlIGFuZAotICAvLyBUZWFyRG93blRlc3RDYXNlLgorICAv
LyBIb2xkcyB0ZXN0IHByb3BlcnRpZXMgcmVjb3JkZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBTZXRV
cFRlc3RTdWl0ZSBhbmQKKyAgLy8gVGVhckRvd25UZXN0U3VpdGUuCiAgIFRlc3RSZXN1bHQgYWRf
aG9jX3Rlc3RfcmVzdWx0XzsKIAotICAvLyBXZSBkaXNhbGxvdyBjb3B5aW5nIFRlc3RDYXNlcy4K
LSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0Q2FzZSk7CisgIC8vIFdlIGRp
c2FsbG93IGNvcHlpbmcgVGVzdFN1aXRlcy4KKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNT
SUdOXyhUZXN0U3VpdGUpOwogfTsKIAogLy8gQW4gRW52aXJvbm1lbnQgb2JqZWN0IGlzIGNhcGFi
bGUgb2Ygc2V0dGluZyB1cCBhbmQgdGVhcmluZyBkb3duIGFuCkBAIC0xMDI0LDcgKzEwNzMsNyBA
QCBjbGFzcyBFbnZpcm9ubWVudCB7CiAgIC8vIElmIHlvdSBzZWUgYW4gZXJyb3IgYWJvdXQgb3Zl
cnJpZGluZyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG9yCiAgIC8vIGFib3V0IGl0IGJlaW5nIHBy
aXZhdGUsIHlvdSBoYXZlIG1pcy1zcGVsbGVkIFNldFVwKCkgYXMgU2V0dXAoKS4KICAgc3RydWN0
IFNldHVwX3Nob3VsZF9iZV9zcGVsbGVkX1NldFVwIHt9OwotICB2aXJ0dWFsIFNldHVwX3Nob3Vs
ZF9iZV9zcGVsbGVkX1NldFVwKiBTZXR1cCgpIHsgcmV0dXJuIE5VTEw7IH0KKyAgdmlydHVhbCBT
ZXR1cF9zaG91bGRfYmVfc3BlbGxlZF9TZXRVcCogU2V0dXAoKSB7IHJldHVybiBudWxscHRyOyB9
CiB9OwogCiAjaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKQEAgLTEwNjAsOCArMTEwOSwxMyBAQCBj
bGFzcyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgIC8vIEZpcmVkIGFmdGVyIGVudmlyb25tZW50IHNl
dC11cCBmb3IgZWFjaCBpdGVyYXRpb24gb2YgdGVzdHMgZW5kcy4KICAgdmlydHVhbCB2b2lkIE9u
RW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgPSAwOwogCi0g
IC8vIEZpcmVkIGJlZm9yZSB0aGUgdGVzdCBjYXNlIHN0YXJ0cy4KLSAgdmlydHVhbCB2b2lkIE9u
VGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSA9IDA7CisgIC8vIEZpcmVk
IGJlZm9yZSB0aGUgdGVzdCBzdWl0ZSBzdGFydHMuCisgIHZpcnR1YWwgdm9pZCBPblRlc3RTdWl0
ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0X3N1aXRlKi8pIHt9CisKKyAgLy8gIExlZ2Fj
eSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZVN0YXJ0
KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSB7fQorI2VuZGlmICAvLyAgR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKICAgLy8gRmlyZWQgYmVmb3JlIHRoZSB0ZXN0IHN0
YXJ0cy4KICAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2lu
Zm8pID0gMDsKQEAgLTEwNzQsOCArMTEyOCwxMyBAQCBjbGFzcyBUZXN0RXZlbnRMaXN0ZW5lciB7
CiAgIC8vIEZpcmVkIGFmdGVyIHRoZSB0ZXN0IGVuZHMuCiAgIHZpcnR1YWwgdm9pZCBPblRlc3RF
bmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgPSAwOwogCi0gIC8vIEZpcmVkIGFmdGVyIHRo
ZSB0ZXN0IGNhc2UgZW5kcy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVz
dENhc2UmIHRlc3RfY2FzZSkgPSAwOworICAvLyBGaXJlZCBhZnRlciB0aGUgdGVzdCBzdWl0ZSBl
bmRzLgorICB2aXJ0dWFsIHZvaWQgT25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiAvKnRl
c3Rfc3VpdGUqLykge30KKworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwg
YXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2
aXJ0dWFsIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykg
e30KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiAgIC8v
IEZpcmVkIGJlZm9yZSBlbnZpcm9ubWVudCB0ZWFyLWRvd24gZm9yIGVhY2ggaXRlcmF0aW9uIG9m
IHRlc3RzIHN0YXJ0cy4KICAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFy
dChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSA9IDA7CkBAIC0xMDk4LDIxICsxMTU3LDMwIEBA
IGNsYXNzIFRlc3RFdmVudExpc3RlbmVyIHsKIC8vIGFib3ZlLgogY2xhc3MgRW1wdHlUZXN0RXZl
bnRMaXN0ZW5lciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgotICB2aXJ0
dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCov
KSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
LyppdGVyYXRpb24qLykge30KLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFy
dChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2b2lkIE9uRW52
aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZp
cnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8p
IHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyp0ZXN0X2lu
Zm8qLykge30KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRS
ZXN1bHQmIC8qdGVzdF9wYXJ0X3Jlc3VsdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0RW5k
KGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0
Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykge30KLSAgdmlydHVhbCB2b2lk
IE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3Qq
Lykge30KLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25F
bmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHt9Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQ
cm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQorICB2b2lkIE9uVGVz
dFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30K
KyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3Qq
LywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgb3ZlcnJp
ZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcEVuZChj
b25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RT
dWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0X3N1aXRlKi8pIG92ZXJyaWRlIHt9Cisv
LyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0
KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQorI2VuZGlmICAvLyAg
R1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisKKyAgdm9pZCBPblRlc3RTdGFydChj
b25zdCBUZXN0SW5mbyYgLyp0ZXN0X2luZm8qLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RQ
YXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9yZXN1bHQqLykgb3Zl
cnJpZGUge30KKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8p
IG92ZXJyaWRlIHt9CisgIHZvaWQgT25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiAvKnRl
c3Rfc3VpdGUqLykgb3ZlcnJpZGUge30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNU
X0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nh
c2UqLykgb3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXworCisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRU
ZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7fQorICB2b2lkIE9uRW52aXJvbm1lbnRzVGVh
ckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZv
aWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgb3ZlcnJpZGUge30KKyAg
dm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVy
cmlkZSB7fQogfTsKIAogLy8gVGVzdEV2ZW50TGlzdGVuZXJzIGxldHMgdXNlcnMgYWRkIGxpc3Rl
bmVycyB0byB0cmFjayBldmVudHMgaW4gR29vZ2xlIFRlc3QuCkBAIC0xMTUyLDcgKzEyMjAsNyBA
QCBjbGFzcyBHVEVTVF9BUElfIFRlc3RFdmVudExpc3RlbmVycyB7CiAgIH0KIAogIHByaXZhdGU6
Ci0gIGZyaWVuZCBjbGFzcyBUZXN0Q2FzZTsKKyAgZnJpZW5kIGNsYXNzIFRlc3RTdWl0ZTsKICAg
ZnJpZW5kIGNsYXNzIFRlc3RJbmZvOwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6OkRlZmF1bHRH
bG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyOwogICBmcmllbmQgY2xhc3MgaW50ZXJuYWw6Ok5v
RXhlY0RlYXRoVGVzdDsKQEAgLTExOTMsNyArMTI2MSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGVz
dEV2ZW50TGlzdGVuZXJzIHsKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUZXN0
RXZlbnRMaXN0ZW5lcnMpOwogfTsKIAotLy8gQSBVbml0VGVzdCBjb25zaXN0cyBvZiBhIHZlY3Rv
ciBvZiBUZXN0Q2FzZXMuCisvLyBBIFVuaXRUZXN0IGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIFRl
c3RTdWl0ZXMuCiAvLwogLy8gVGhpcyBpcyBhIHNpbmdsZXRvbiBjbGFzcy4gIFRoZSBvbmx5IGlu
c3RhbmNlIG9mIFVuaXRUZXN0IGlzCiAvLyBjcmVhdGVkIHdoZW4gVW5pdFRlc3Q6OkdldEluc3Rh
bmNlKCkgaXMgZmlyc3QgY2FsbGVkLiAgVGhpcwpAQCAtMTIyMiwxMCArMTI5MCwxNCBAQCBjbGFz
cyBHVEVTVF9BUElfIFVuaXRUZXN0IHsKICAgLy8gd2FzIGV4ZWN1dGVkLiAgVGhlIFVuaXRUZXN0
IG9iamVjdCBvd25zIHRoZSBzdHJpbmcuCiAgIGNvbnN0IGNoYXIqIG9yaWdpbmFsX3dvcmtpbmdf
ZGlyKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0aGUgVGVzdENhc2Ugb2JqZWN0IGZvciB0aGUg
dGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcsCisgIC8vIFJldHVybnMgdGhlIFRlc3RTdWl0
ZSBvYmplY3QgZm9yIHRoZSB0ZXN0IHRoYXQncyBjdXJyZW50bHkgcnVubmluZywKICAgLy8gb3Ig
TlVMTCBpZiBubyB0ZXN0IGlzIHJ1bm5pbmcuCi0gIGNvbnN0IFRlc3RDYXNlKiBjdXJyZW50X3Rl
c3RfY2FzZSgpIGNvbnN0Ci0gICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pOworICBj
b25zdCBUZXN0U3VpdGUqIGN1cnJlbnRfdGVzdF9zdWl0ZSgpIGNvbnN0IEdURVNUX0xPQ0tfRVhD
TFVERURfKG11dGV4Xyk7CisKKy8vIExlZ2FjeSBBUEkgaXMgc3RpbGwgYXZhaWxhYmxlIGJ1dCBk
ZXByZWNhdGVkCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICBj
b25zdCBUZXN0Q2FzZSogY3VycmVudF90ZXN0X2Nhc2UoKSBjb25zdCBHVEVTVF9MT0NLX0VYQ0xV
REVEXyhtdXRleF8pOworI2VuZGlmCiAKICAgLy8gUmV0dXJucyB0aGUgVGVzdEluZm8gb2JqZWN0
IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcsCiAgIC8vIG9yIE5VTEwgaWYg
bm8gdGVzdCBpcyBydW5uaW5nLgpAQCAtMTIzNSwyOSArMTMwNyw0MCBAQCBjbGFzcyBHVEVTVF9B
UElfIFVuaXRUZXN0IHsKICAgLy8gUmV0dXJucyB0aGUgcmFuZG9tIHNlZWQgdXNlZCBhdCB0aGUg
c3RhcnQgb2YgdGhlIGN1cnJlbnQgdGVzdCBydW4uCiAgIGludCByYW5kb21fc2VlZCgpIGNvbnN0
OwogCi0gIC8vIFJldHVybnMgdGhlIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IG9iamVj
dCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKKyAgLy8gUmV0dXJucyB0aGUgUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKICAgLy8gdmFsdWUt
cGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGUgYW5kIHJlZ2lzdGVyIHRoZW0uCiAg
IC8vCiAgIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIg
UFJPR1JBTS4KLSAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5JiBwYXJh
bWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKQorICBpbnRlcm5hbDo6UGFyYW1ldGVyaXplZFRlc3RT
dWl0ZVJlZ2lzdHJ5JiBwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKQogICAgICAgR1RFU1Rf
TE9DS19FWENMVURFRF8obXV0ZXhfKTsKIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vz
c2Z1bCB0ZXN0IGNhc2VzLgotICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25z
dDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBzdWl0ZXMuCisgIGlu
dCBzdWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZmFpbGVkIHRlc3QgY2FzZXMuCi0gIGludCBmYWlsZWRfdGVzdF9jYXNlX2NvdW50
KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBzdWl0ZXMuCisg
IGludCBmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51
bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLSAgaW50IHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIGNv
bnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzLgorICBpbnQgdG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBvZiBh
bGwgdGVzdCBjYXNlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKKyAgLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRl
c3QKICAgLy8gdGhhdCBzaG91bGQgcnVuLgorICBpbnQgdGVzdF9zdWl0ZV90b19ydW5fY291bnQo
KSBjb25zdDsKKworICAvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFp
bGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIGludCBz
dWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0OworICBpbnQgZmFpbGVkX3Rlc3RfY2Fz
ZV9jb3VudCgpIGNvbnN0OworICBpbnQgdG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Q7CiAg
IGludCB0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50KCkgY29uc3Q7CisjZW5kaWYgIC8vICBHVEVTVF9S
RU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3Vj
Y2Vzc2Z1bCB0ZXN0cy4KICAgaW50IHN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpIGNvbnN0OwogCisg
IC8vIEdldHMgdGhlIG51bWJlciBvZiBza2lwcGVkIHRlc3RzLgorICBpbnQgc2tpcHBlZF90ZXN0
X2NvdW50KCkgY29uc3Q7CisKICAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4K
ICAgaW50IGZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3Q7CiAKQEAgLTEyODMsMTkgKzEzNjYsMjUg
QEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdCB7CiAgIC8vIEdldHMgdGhlIGVsYXBzZWQgdGlt
ZSwgaW4gbWlsbGlzZWNvbmRzLgogICBUaW1lSW5NaWxsaXMgZWxhcHNlZF90aW1lKCkgY29uc3Q7
CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwg
dGVzdCBjYXNlcyBwYXNzZWQpLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3Qgc3VpdGVzCisgIC8vIHBhc3NlZCkuCiAg
IGJvb2wgUGFzc2VkKCkgY29uc3Q7CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0
ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3QgY2FzZSBmYWlsZWQKLSAgLy8gb3Igc29tZXRoaW5n
IG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3Qgc3VpdGUKKyAgLy8g
ZmFpbGVkIG9yIHNvbWV0aGluZyBvdXRzaWRlIG9mIGFsbCB0ZXN0cyBmYWlsZWQpLgogICBib29s
IEZhaWxlZCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFs
bCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3Rf
Y2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxM
LgorICAvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0ZXN0IHN1aXRl
cy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSAt
IDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAgY29uc3QgVGVz
dFN1aXRlKiBHZXRUZXN0U3VpdGUoaW50IGkpIGNvbnN0OworCisvLyAgTGVnYWN5IEFQSSBpcyBk
ZXByZWNhdGVkIGJ1dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCiAgIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29u
c3Q7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAv
LyBSZXR1cm5zIHRoZSBUZXN0UmVzdWx0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gdGVzdCBm
YWlsdXJlcyBhbmQKLSAgLy8gcHJvcGVydGllcyBsb2dnZWQgb3V0c2lkZSBvZiBpbmRpdmlkdWFs
IHRlc3QgY2FzZXMuCisgIC8vIHByb3BlcnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVh
bCB0ZXN0IHN1aXRlcy4KICAgY29uc3QgVGVzdFJlc3VsdCYgYWRfaG9jX3Rlc3RfcmVzdWx0KCkg
Y29uc3Q7CiAKICAgLy8gUmV0dXJucyB0aGUgbGlzdCBvZiBldmVudCBsaXN0ZW5lcnMgdGhhdCBj
YW4gYmUgdXNlZCB0byB0cmFjayBldmVudHMKQEAgLTEzMjYsMTUgKzE0MTUsMTUgQEAgY2xhc3Mg
R1RFU1RfQVBJXyBVbml0VGVzdCB7CiAgICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8p
OwogCiAgIC8vIEFkZHMgYSBUZXN0UHJvcGVydHkgdG8gdGhlIGN1cnJlbnQgVGVzdFJlc3VsdCBv
YmplY3Qgd2hlbiBpbnZva2VkIGZyb20KLSAgLy8gaW5zaWRlIGEgdGVzdCwgdG8gY3VycmVudCBU
ZXN0Q2FzZSdzIGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hlbiBpbnZva2VkCi0gIC8vIGZyb20gU2V0
VXBUZXN0Q2FzZSBvciBUZWFyRG93blRlc3RDYXNlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5
IHNldAorICAvLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJyZW50IFRlc3RTdWl0ZSdzIGFkX2hvY190
ZXN0X3Jlc3VsdF8gd2hlbiBpbnZva2VkCisgIC8vIGZyb20gU2V0VXBUZXN0U3VpdGUgb3IgVGVh
ckRvd25UZXN0U3VpdGUsIG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0CiAgIC8vIHdoZW4g
aW52b2tlZCBlbHNld2hlcmUuICBJZiB0aGUgcmVzdWx0IGFscmVhZHkgY29udGFpbnMgYSBwcm9w
ZXJ0eSB3aXRoCiAgIC8vIHRoZSBzYW1lIGtleSwgdGhlIHZhbHVlIHdpbGwgYmUgdXBkYXRlZC4K
ICAgdm9pZCBSZWNvcmRQcm9wZXJ0eShjb25zdCBzdGQ6OnN0cmluZyYga2V5LCBjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpOwogCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFs
bCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3Rf
Y2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxM
LgotICBUZXN0Q2FzZSogR2V0TXV0YWJsZVRlc3RDYXNlKGludCBpKTsKKyAgLy8gR2V0cyB0aGUg
aS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0ZXMuIGkgY2FuIHJhbmdlIGZy
b20gMCB0bworICAvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAxLiBJZiBpIGlzIG5vdCBp
biB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCisgIFRlc3RTdWl0ZSogR2V0TXV0YWJsZVRlc3RT
dWl0ZShpbnQgaSk7CiAKICAgLy8gQWNjZXNzb3JzIGZvciB0aGUgaW1wbGVtZW50YXRpb24gb2Jq
ZWN0LgogICBpbnRlcm5hbDo6VW5pdFRlc3RJbXBsKiBpbXBsKCkgeyByZXR1cm4gaW1wbF87IH0K
QEAgLTEzNDgsNiArMTQzNyw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3QgewogICBmcmll
bmQgY2xhc3MgaW50ZXJuYWw6OlN0cmVhbWluZ0xpc3RlbmVyVGVzdDsKICAgZnJpZW5kIGNsYXNz
IGludGVybmFsOjpVbml0VGVzdFJlY29yZFByb3BlcnR5VGVzdEhlbHBlcjsKICAgZnJpZW5kIEVu
dmlyb25tZW50KiBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoRW52aXJvbm1lbnQqIGVudik7Cisg
IGZyaWVuZCBzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIGludGVybmFsOjpHZXRJZ25vcmVkUGFyYW1l
dGVyaXplZFRlc3RTdWl0ZXMoKTsKICAgZnJpZW5kIGludGVybmFsOjpVbml0VGVzdEltcGwqIGlu
dGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsKICAgZnJpZW5kIHZvaWQgaW50ZXJuYWw6OlJlcG9y
dEZhaWx1cmVJblVua25vd25Mb2NhdGlvbigKICAgICAgIFRlc3RQYXJ0UmVzdWx0OjpUeXBlIHJl
c3VsdF90eXBlLApAQCAtMTQxOSw2ICsxNTA5LDEwIEBAIEdURVNUX0FQSV8gdm9pZCBJbml0R29v
Z2xlVGVzdChpbnQqIGFyZ2MsIGNoYXIqKiBhcmd2KTsKIC8vIFVOSUNPREUgbW9kZS4KIEdURVNU
X0FQSV8gdm9pZCBJbml0R29vZ2xlVGVzdChpbnQqIGFyZ2MsIHdjaGFyX3QqKiBhcmd2KTsKIAor
Ly8gVGhpcyBvdmVybG9hZGVkIHZlcnNpb24gY2FuIGJlIHVzZWQgb24gQXJkdWluby9lbWJlZGRl
ZCBwbGF0Zm9ybXMgd2hlcmUKKy8vIHRoZXJlIGlzIG5vIGFyZ2MvYXJndi4KK0dURVNUX0FQSV8g
dm9pZCBJbml0R29vZ2xlVGVzdCgpOworCiBuYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBTZXBh
cmF0ZSB0aGUgZXJyb3IgZ2VuZXJhdGluZyBjb2RlIGZyb20gdGhlIGNvZGUgcGF0aCB0byByZWR1
Y2UgdGhlIHN0YWNrCkBAIC0xNDM1LDYgKzE1MjksMTMgQEAgQXNzZXJ0aW9uUmVzdWx0IENtcEhl
bHBlckVRRmFpbHVyZShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAg
ICAgICBmYWxzZSk7CiB9CiAKKy8vIFRoaXMgYmxvY2sgb2YgY29kZSBkZWZpbmVzIG9wZXJhdG9y
PT0vIT0KKy8vIHRvIGJsb2NrIGxleGljYWwgc2NvcGUgbG9va3VwLgorLy8gSXQgcHJldmVudHMg
dXNpbmcgaW52YWxpZCBvcGVyYXRvcj09LyE9IGRlZmluZWQgYXQgbmFtZXNwYWNlIHNjb3BlLgor
c3RydWN0IGZha2V0eXBlIHt9OworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShmYWtldHlwZSwgZmFr
ZXR5cGUpIHsgcmV0dXJuIHRydWU7IH0KK2lubGluZSBib29sIG9wZXJhdG9yIT0oZmFrZXR5cGUs
IGZha2V0eXBlKSB7IHJldHVybiBmYWxzZTsgfQorCiAvLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZv
ciB7QVNTRVJUfEVYUEVDVH1fRVEuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
PgogQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9u
LApAQCAtMTQ0OCwyNiArMTU0OSwxNyBAQCBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyRVEoY29u
c3QgY2hhciogbGhzX2V4cHJlc3Npb24sCiAgIHJldHVybiBDbXBIZWxwZXJFUUZhaWx1cmUobGhz
X2V4cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7CiB9CiAKLS8vIFdpdGggdGhp
cyBvdmVybG9hZGVkIHZlcnNpb24sIHdlIGFsbG93IGFub255bW91cyBlbnVtcyB0byBiZSB1c2Vk
Ci0vLyBpbiB7QVNTRVJUfEVYUEVDVH1fRVEgd2hlbiBjb21waWxlZCB3aXRoIGdjYyA0LCBhcyBh
bm9ueW1vdXMgZW51bXMKLS8vIGNhbiBiZSBpbXBsaWNpdGx5IGNhc3QgdG8gQmlnZ2VzdEludC4K
LUdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IENtcEhlbHBlckVRKGNvbnN0IGNoYXIqIGxoc19l
eHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCaWdnZXN0SW50IGxocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJpZ2dlc3RJbnQgcmhzKTsKLQotLy8gVGhlIGhlbHBlciBjbGFzcyBmb3Ige0FTU0VSVHxF
WFBFQ1R9X0VRLiAgVGhlIHRlbXBsYXRlIGFyZ3VtZW50Ci0vLyBsaHNfaXNfbnVsbF9saXRlcmFs
IGlzIHRydWUgaWZmIHRoZSBmaXJzdCBhcmd1bWVudCB0byBBU1NFUlRfRVEoKQotLy8gaXMgYSBu
dWxsIHBvaW50ZXIgbGl0ZXJhbC4gIFRoZSBmb2xsb3dpbmcgZGVmYXVsdCBpbXBsZW1lbnRhdGlv
biBpcwotLy8gZm9yIGxoc19pc19udWxsX2xpdGVyYWwgYmVpbmcgZmFsc2UuCi10ZW1wbGF0ZSA8
Ym9vbCBsaHNfaXNfbnVsbF9saXRlcmFsPgogY2xhc3MgRXFIZWxwZXIgewogIHB1YmxpYzoKICAg
Ly8gVGhpcyB0ZW1wbGF0aXplZCB2ZXJzaW9uIGlzIGZvciB0aGUgZ2VuZXJhbCBjYXNlLgotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgorICB0ZW1wbGF0ZSA8CisgICAgICB0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsCisgICAgICAvLyBEaXNhYmxlIHRoaXMgb3ZlcmxvYWQg
Zm9yIGNhc2VzIHdoZXJlIG9uZSBhcmd1bWVudCBpcyBhIHBvaW50ZXIKKyAgICAgIC8vIGFuZCB0
aGUgb3RoZXIgaXMgdGhlIG51bGwgcG9pbnRlciBjb25zdGFudC4KKyAgICAgIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX2ludGVncmFsPFQxPjo6dmFsdWUgfHwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICFzdGQ6OmlzX3BvaW50ZXI8VDI+Ojp2YWx1ZT46OnR5cGUqID0g
bnVsbHB0cj4KICAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21wYXJlKGNvbnN0IGNoYXIqIGxo
c19leHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogcmhzX2V4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBUMSYgbGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
cmhzX2V4cHJlc3Npb24sIGNvbnN0IFQxJiBsaHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUMiYgcmhzKSB7CiAgICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHBy
ZXNzaW9uLCByaHNfZXhwcmVzc2lvbiwgbGhzLCByaHMpOwogICB9CkBAIC0xNDg0LDQ5ICsxNTc2
LDE1IEBAIGNsYXNzIEVxSGVscGVyIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJpZ2dlc3RJbnQgcmhzKSB7CiAgICAgcmV0dXJuIENtcEhlbHBlckVRKGxoc19leHByZXNzaW9u
LCByaHNfZXhwcmVzc2lvbiwgbGhzLCByaHMpOwogICB9Ci19OwotCi0vLyBUaGlzIHNwZWNpYWxp
emF0aW9uIGlzIHVzZWQgd2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gQVNTRVJUX0VRKCkKLS8v
IGlzIGEgbnVsbCBwb2ludGVyIGxpdGVyYWwsIGxpa2UgTlVMTCwgZmFsc2UsIG9yIDAuCi10ZW1w
bGF0ZSA8PgotY2xhc3MgRXFIZWxwZXI8dHJ1ZT4gewotIHB1YmxpYzoKLSAgLy8gV2UgZGVmaW5l
IHR3byBvdmVybG9hZGVkIHZlcnNpb25zIG9mIENvbXBhcmUoKS4gIFRoZSBmaXJzdAotICAvLyB2
ZXJzaW9uIHdpbGwgYmUgcGlja2VkIHdoZW4gdGhlIHNlY29uZCBhcmd1bWVudCB0byBBU1NFUlRf
RVEoKSBpcwotICAvLyBOT1QgYSBwb2ludGVyLCBlLmcuIEFTU0VSVF9FUSgwLCBBbkludEZ1bmN0
aW9uKCkpIG9yCi0gIC8vIEVYUEVDVF9FUShmYWxzZSwgYV9ib29sKS4KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KLSAgc3RhdGljIEFzc2VydGlvblJlc3VsdCBDb21wYXJl
KAotICAgICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCi0gICAgICBjb25zdCBjaGFyKiBy
aHNfZXhwcmVzc2lvbiwKLSAgICAgIGNvbnN0IFQxJiBsaHMsCi0gICAgICBjb25zdCBUMiYgcmhz
LAotICAgICAgLy8gVGhlIGZvbGxvd2luZyBsaW5lIHByZXZlbnRzIHRoaXMgb3ZlcmxvYWQgZnJv
bSBiZWluZyBjb25zaWRlcmVkIGlmIFQyCi0gICAgICAvLyBpcyBub3QgYSBwb2ludGVyIHR5cGUu
ICBXZSBuZWVkIHRoaXMgYmVjYXVzZSBBU1NFUlRfRVEoTlVMTCwgbXlfcHRyKQotICAgICAgLy8g
ZXhwYW5kcyB0byBDb21wYXJlKCIiLCAiIiwgTlVMTCwgbXlfcHRyKSwgd2hpY2ggcmVxdWlyZXMg
YSBjb252ZXJzaW9uCi0gICAgICAvLyB0byBtYXRjaCB0aGUgU2VjcmV0KiBpbiB0aGUgb3RoZXIg
b3ZlcmxvYWQsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBtYWtlCi0gICAgICAvLyB0aGlzIHRlbXBs
YXRlIG1hdGNoIGJldHRlci4KLSAgICAgIHR5cGVuYW1lIEVuYWJsZUlmPCFpc19wb2ludGVyPFQy
Pjo6dmFsdWU+Ojp0eXBlKiA9IDApIHsKLSAgICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJl
c3Npb24sIHJoc19leHByZXNzaW9uLCBsaHMsIHJocyk7Ci0gIH0KIAotICAvLyBUaGlzIHZlcnNp
b24gd2lsbCBiZSBwaWNrZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIEFTU0VSVF9FUSgp
IGlzIGEKLSAgLy8gcG9pbnRlciwgZS5nLiBBU1NFUlRfRVEoTlVMTCwgYV9wb2ludGVyKS4KICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBBc3NlcnRpb25SZXN1bHQgQ29tcGFyZSgK
LSAgICAgIGNvbnN0IGNoYXIqIGxoc19leHByZXNzaW9uLAotICAgICAgY29uc3QgY2hhciogcmhz
X2V4cHJlc3Npb24sCi0gICAgICAvLyBXZSB1c2VkIHRvIGhhdmUgYSBzZWNvbmQgdGVtcGxhdGUg
cGFyYW1ldGVyIGluc3RlYWQgb2YgU2VjcmV0Ki4gIFRoYXQKLSAgICAgIC8vIHRlbXBsYXRlIHBh
cmFtZXRlciB3b3VsZCBkZWR1Y2UgdG8gJ2xvbmcnLCBtYWtpbmcgdGhpcyBhIGJldHRlciBtYXRj
aAotICAgICAgLy8gdGhhbiB0aGUgZmlyc3Qgb3ZlcmxvYWQgZXZlbiB3aXRob3V0IHRoZSBmaXJz
dCBvdmVybG9hZCdzIEVuYWJsZUlmLgotICAgICAgLy8gVW5mb3J0dW5hdGVseSwgZ2NjIHdpdGgg
LVdjb252ZXJzaW9uLW51bGwgd2FybnMgd2hlbiAicGFzc2luZyBOVUxMIHRvCi0gICAgICAvLyBu
b24tcG9pbnRlciBhcmd1bWVudCIgKGV2ZW4gYSBkZWR1Y2VkIGludGVncmFsIGFyZ3VtZW50KSwg
c28gdGhlIG9sZAotICAgICAgLy8gaW1wbGVtZW50YXRpb24gY2F1c2VkIHdhcm5pbmdzIGluIHVz
ZXIgY29kZS4KLSAgICAgIFNlY3JldCogLyogbGhzIChOVUxMKSAqLywKLSAgICAgIFQqIHJocykg
eworICAgICAgY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sIGNvbnN0IGNoYXIqIHJoc19leHBy
ZXNzaW9uLAorICAgICAgLy8gSGFuZGxlIGNhc2VzIHdoZXJlICcwJyBpcyB1c2VkIGFzIGEgbnVs
bCBwb2ludGVyIGxpdGVyYWwuCisgICAgICBzdGQ6Om51bGxwdHJfdCAvKiBsaHMgKi8sIFQqIHJo
cykgewogICAgIC8vIFdlIGFscmVhZHkga25vdyB0aGF0ICdsaHMnIGlzIGEgbnVsbCBwb2ludGVy
LgotICAgIHJldHVybiBDbXBIZWxwZXJFUShsaHNfZXhwcmVzc2lvbiwgcmhzX2V4cHJlc3Npb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFQqPihOVUxMKSwgcmhzKTsKKyAg
ICByZXR1cm4gQ21wSGVscGVyRVEobGhzX2V4cHJlc3Npb24sIHJoc19leHByZXNzaW9uLCBzdGF0
aWNfY2FzdDxUKj4obnVsbHB0ciksCisgICAgICAgICAgICAgICAgICAgICAgIHJocyk7CiAgIH0K
IH07CiAKQEAgLTE1NDcsMTEgKzE2MDUsNiBAQCBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyT3BG
YWlsdXJlKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwKIC8vIEFTU0VSVF8/
PyBhbmQgRVhQRUNUXz8/LiAgSXQgaXMgaGVyZSBqdXN0IHRvIGF2b2lkIGNvcHktYW5kLXBhc3Rl
CiAvLyBvZiBzaW1pbGFyIGNvZGUuCiAvLwotLy8gRm9yIGVhY2ggdGVtcGxhdGl6ZWQgaGVscGVy
IGZ1bmN0aW9uLCB3ZSBhbHNvIGRlZmluZSBhbiBvdmVybG9hZGVkCi0vLyB2ZXJzaW9uIGZvciBC
aWdnZXN0SW50IGluIG9yZGVyIHRvIHJlZHVjZSBjb2RlIGJsb2F0IGFuZCBhbGxvdwotLy8gYW5v
bnltb3VzIGVudW1zIHRvIGJlIHVzZWQgd2l0aCB7QVNTRVJUfEVYUEVDVH1fPz8gd2hlbiBjb21w
aWxlZAotLy8gd2l0aCBnY2MgNC4KLS8vCiAvLyBJTlRFUk5BTCBJTVBMRU1FTlRBVElPTiAtIERP
IE5PVCBVU0UgSU4gQSBVU0VSIFBST0dSQU0uCiAKICNkZWZpbmUgR1RFU1RfSU1QTF9DTVBfSEVM
UEVSXyhvcF9uYW1lLCBvcClcCkBAIC0xNTYzLDIyICsxNjE2LDIwIEBAIEFzc2VydGlvblJlc3Vs
dCBDbXBIZWxwZXIjI29wX25hbWUoY29uc3QgY2hhciogZXhwcjEsIGNvbnN0IGNoYXIqIGV4cHIy
LCBcCiAgIH0gZWxzZSB7XAogICAgIHJldHVybiBDbXBIZWxwZXJPcEZhaWx1cmUoZXhwcjEsIGV4
cHIyLCB2YWwxLCB2YWwyLCAjb3ApO1wKICAgfVwKLX1cCi1HVEVTVF9BUElfIEFzc2VydGlvblJl
c3VsdCBDbXBIZWxwZXIjI29wX25hbWUoXAotICAgIGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBj
aGFyKiBleHByMiwgQmlnZ2VzdEludCB2YWwxLCBCaWdnZXN0SW50IHZhbDIpCit9CiAKIC8vIElO
VEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBBIFVTRVIgUFJPR1JBTS4KIAog
Ly8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVYUEVDVH1fTkUK
LUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTkUsICE9KTsKK0dURVNUX0lNUExfQ01QX0hFTFBFUl8o
TkUsICE9KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVY
UEVDVH1fTEUKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTEUsIDw9KTsKK0dURVNUX0lNUExfQ01Q
X0hFTFBFUl8oTEUsIDw9KQogLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7
QVNTRVJUfEVYUEVDVH1fTFQKLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oTFQsIDwpOworR1RFU1Rf
SU1QTF9DTVBfSEVMUEVSXyhMVCwgPCkKIC8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlv
biBmb3Ige0FTU0VSVHxFWFBFQ1R9X0dFCi1HVEVTVF9JTVBMX0NNUF9IRUxQRVJfKEdFLCA+PSk7
CitHVEVTVF9JTVBMX0NNUF9IRUxQRVJfKEdFLCA+PSkKIC8vIEltcGxlbWVudHMgdGhlIGhlbHBl
ciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0dUCi1HVEVTVF9JTVBMX0NNUF9IRUxQRVJf
KEdULCA+KTsKK0dURVNUX0lNUExfQ01QX0hFTFBFUl8oR1QsID4pCiAKICN1bmRlZiBHVEVTVF9J
TVBMX0NNUF9IRUxQRVJfCiAKQEAgLTE3NzQsMTMgKzE4MjUsMTMgQEAgY2xhc3MgR1RFU1RfQVBJ
XyBBc3NlcnRIZWxwZXIgewogLy8gICBGb29UZXN0KCkgewogLy8gICAgIC8vIENhbiB1c2UgR2V0
UGFyYW0oKSBoZXJlLgogLy8gICB9Ci0vLyAgIHZpcnR1YWwgfkZvb1Rlc3QoKSB7CisvLyAgIH5G
b29UZXN0KCkgb3ZlcnJpZGUgewogLy8gICAgIC8vIENhbiB1c2UgR2V0UGFyYW0oKSBoZXJlLgog
Ly8gICB9Ci0vLyAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKy8vICAgdm9pZCBTZXRVcCgpIG92
ZXJyaWRlIHsKIC8vICAgICAvLyBDYW4gdXNlIEdldFBhcmFtKCkgaGVyZS4KIC8vICAgfQotLy8g
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24geworLy8gICB2b2lkIFRlYXJEb3duIG92ZXJyaWRlIHsK
IC8vICAgICAvLyBDYW4gdXNlIEdldFBhcmFtKCkgaGVyZS4KIC8vICAgfQogLy8gfTsKQEAgLTE3
ODksNyArMTg0MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gQXNzZXJ0SGVscGVyIHsKIC8vICAgRm9v
IGZvbzsKIC8vICAgQVNTRVJUX1RSVUUoZm9vLkRvZXNCYXIoR2V0UGFyYW0oKSkpOwogLy8gfQot
Ly8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoT25lVG9UZW5SYW5nZSwgRm9vVGVzdCwgOjp0ZXN0
aW5nOjpSYW5nZSgxLCAxMCkpOworLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE9uZVRvVGVu
UmFuZ2UsIEZvb1Rlc3QsIDo6dGVzdGluZzo6UmFuZ2UoMSwgMTApKTsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBjbGFzcyBXaXRoUGFyYW1JbnRlcmZhY2UgewpAQCAtMTc5OCwxMiArMTg0OSw5
IEBAIGNsYXNzIFdpdGhQYXJhbUludGVyZmFjZSB7CiAgIHZpcnR1YWwgfldpdGhQYXJhbUludGVy
ZmFjZSgpIHt9CiAKICAgLy8gVGhlIGN1cnJlbnQgcGFyYW1ldGVyIHZhbHVlLiBJcyBhbHNvIGF2
YWlsYWJsZSBpbiB0aGUgdGVzdCBmaXh0dXJlJ3MKLSAgLy8gY29uc3RydWN0b3IuIFRoaXMgbWVt
YmVyIGZ1bmN0aW9uIGlzIG5vbi1zdGF0aWMsIGV2ZW4gdGhvdWdoIGl0IG9ubHkKLSAgLy8gcmVm
ZXJlbmNlcyBzdGF0aWMgZGF0YSwgdG8gcmVkdWNlIHRoZSBvcHBvcnR1bml0eSBmb3IgaW5jb3Jy
ZWN0IHVzZXMKLSAgLy8gbGlrZSB3cml0aW5nICdXaXRoUGFyYW1JbnRlcmZhY2U8Ym9vbD46Okdl
dFBhcmFtKCknIGZvciBhIHRlc3QgdGhhdAotICAvLyB1c2VzIGEgZml4dHVyZSB3aG9zZSBwYXJh
bWV0ZXIgdHlwZSBpcyBpbnQuCi0gIGNvbnN0IFBhcmFtVHlwZSYgR2V0UGFyYW0oKSBjb25zdCB7
Ci0gICAgR1RFU1RfQ0hFQ0tfKHBhcmFtZXRlcl8gIT0gTlVMTCkKKyAgLy8gY29uc3RydWN0b3Iu
CisgIHN0YXRpYyBjb25zdCBQYXJhbVR5cGUmIEdldFBhcmFtKCkgeworICAgIEdURVNUX0NIRUNL
XyhwYXJhbWV0ZXJfICE9IG51bGxwdHIpCiAgICAgICAgIDw8ICJHZXRQYXJhbSgpIGNhbiBvbmx5
IGJlIGNhbGxlZCBpbnNpZGUgYSB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgIgogICAgICAgICA8
PCAiLS0gZGlkIHlvdSBpbnRlbmQgdG8gd3JpdGUgVEVTVF9QIGluc3RlYWQgb2YgVEVTVF9GPyI7
CiAgICAgcmV0dXJuICpwYXJhbWV0ZXJfOwpAQCAtMTgyNCw3ICsxODcyLDcgQEAgY2xhc3MgV2l0
aFBhcmFtSW50ZXJmYWNlIHsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY29uc3QgVCog
V2l0aFBhcmFtSW50ZXJmYWNlPFQ+OjpwYXJhbWV0ZXJfID0gTlVMTDsKK2NvbnN0IFQqIFdpdGhQ
YXJhbUludGVyZmFjZTxUPjo6cGFyYW1ldGVyXyA9IG51bGxwdHI7CiAKIC8vIE1vc3QgdmFsdWUt
cGFyYW1ldGVyaXplZCBjbGFzc2VzIGNhbiBpZ25vcmUgdGhlIGV4aXN0ZW5jZSBvZgogLy8gV2l0
aFBhcmFtSW50ZXJmYWNlLCBhbmQgY2FuIGp1c3QgaW5oZXJpdCBmcm9tIDo6dGVzdGluZzo6VGVz
dFdpdGhQYXJhbS4KQEAgLTE4MzUsNiArMTg4MywxMSBAQCBjbGFzcyBUZXN0V2l0aFBhcmFtIDog
cHVibGljIFRlc3QsIHB1YmxpYyBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gewogCiAvLyBNYWNyb3Mg
Zm9yIGluZGljYXRpbmcgc3VjY2Vzcy9mYWlsdXJlIGluIHRlc3QgY29kZS4KIAorLy8gU2tpcHMg
dGVzdCBpbiBydW50aW1lLgorLy8gU2tpcHBpbmcgdGVzdCBhYm9ydHMgY3VycmVudCBmdW5jdGlv
bi4KKy8vIFNraXBwZWQgdGVzdHMgYXJlIG5laXRoZXIgc3VjY2Vzc2Z1bCBub3IgZmFpbGVkLgor
I2RlZmluZSBHVEVTVF9TS0lQKCkgR1RFU1RfU0tJUF8oIiIpCisKIC8vIEFERF9GQUlMVVJFIHVu
Y29uZGl0aW9uYWxseSBhZGRzIGEgZmFpbHVyZSB0byB0aGUgY3VycmVudCB0ZXN0LgogLy8gU1VD
Q0VFRCBnZW5lcmF0ZXMgYSBzdWNjZXNzIC0gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5IG1ha2Ug
dGhlCiAvLyBjdXJyZW50IHRlc3Qgc3VjY2Vzc2Z1bCwgYXMgYSB0ZXN0IGlzIG9ubHkgc3VjY2Vz
c2Z1bCB3aGVuIGl0IGhhcwpAQCAtMTg2NCw2ICsxOTE3LDExIEBAIGNsYXNzIFRlc3RXaXRoUGFy
YW0gOiBwdWJsaWMgVGVzdCwgcHVibGljIFdpdGhQYXJhbUludGVyZmFjZTxUPiB7CiAvLyBHZW5l
cmF0ZXMgYSBmYXRhbCBmYWlsdXJlIHdpdGggYSBnZW5lcmljIG1lc3NhZ2UuCiAjZGVmaW5lIEdU
RVNUX0ZBSUwoKSBHVEVTVF9GQVRBTF9GQUlMVVJFXygiRmFpbGVkIikKIAorLy8gTGlrZSBHVEVT
VF9GQUlMKCksIGJ1dCBhdCB0aGUgZ2l2ZW4gc291cmNlIGZpbGUgbG9jYXRpb24uCisjZGVmaW5l
IEdURVNUX0ZBSUxfQVQoZmlsZSwgbGluZSkgICAgICAgICBcCisgIEdURVNUX01FU1NBR0VfQVRf
KGZpbGUsIGxpbmUsICJGYWlsZWQiLCBcCisgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6
VGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUpCisKIC8vIERlZmluZSB0aGlzIG1hY3JvIHRv
IDEgdG8gb21pdCB0aGUgZGVmaW5pdGlvbiBvZiBGQUlMKCksIHdoaWNoIGlzIGEKIC8vIGdlbmVy
aWMgbmFtZSBhbmQgY2xhc2hlcyB3aXRoIHNvbWUgb3RoZXIgbGlicmFyaWVzLgogI2lmICFHVEVT
VF9ET05UX0RFRklORV9GQUlMCkBAIC0xOTY0LDkgKzIwMjIsNyBAQCBjbGFzcyBUZXN0V2l0aFBh
cmFtIDogcHVibGljIFRlc3QsIHB1YmxpYyBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gewogLy8gICBB
U1NFUlRfR1QocmVjb3Jkcy5zaXplKCksIDApIDw8ICJUaGVyZSBpcyBubyByZWNvcmQgbGVmdC4i
OwogCiAjZGVmaW5lIEVYUEVDVF9FUSh2YWwxLCB2YWwyKSBcCi0gIEVYUEVDVF9QUkVEX0ZPUk1B
VDIoOjp0ZXN0aW5nOjppbnRlcm5hbDo6IFwKLSAgICAgICAgICAgICAgICAgICAgICBFcUhlbHBl
cjxHVEVTVF9JU19OVUxMX0xJVEVSQUxfKHZhbDEpPjo6Q29tcGFyZSwgXAotICAgICAgICAgICAg
ICAgICAgICAgIHZhbDEsIHZhbDIpCisgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6RXFIZWxwZXI6OkNvbXBhcmUsIHZhbDEsIHZhbDIpCiAjZGVmaW5lIEVYUEVDVF9O
RSh2YWwxLCB2YWwyKSBcCiAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6Q21wSGVscGVyTkUsIHZhbDEsIHZhbDIpCiAjZGVmaW5lIEVYUEVDVF9MRSh2YWwxLCB2YWwy
KSBcCkBAIC0xOTc5LDkgKzIwMzUsNyBAQCBjbGFzcyBUZXN0V2l0aFBhcmFtIDogcHVibGljIFRl
c3QsIHB1YmxpYyBXaXRoUGFyYW1JbnRlcmZhY2U8VD4gewogICBFWFBFQ1RfUFJFRF9GT1JNQVQy
KDo6dGVzdGluZzo6aW50ZXJuYWw6OkNtcEhlbHBlckdULCB2YWwxLCB2YWwyKQogCiAjZGVmaW5l
IEdURVNUX0FTU0VSVF9FUSh2YWwxLCB2YWwyKSBcCi0gIEFTU0VSVF9QUkVEX0ZPUk1BVDIoOjp0
ZXN0aW5nOjppbnRlcm5hbDo6IFwKLSAgICAgICAgICAgICAgICAgICAgICBFcUhlbHBlcjxHVEVT
VF9JU19OVUxMX0xJVEVSQUxfKHZhbDEpPjo6Q29tcGFyZSwgXAotICAgICAgICAgICAgICAgICAg
ICAgIHZhbDEsIHZhbDIpCisgIEFTU0VSVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6RXFIZWxwZXI6OkNvbXBhcmUsIHZhbDEsIHZhbDIpCiAjZGVmaW5lIEdURVNUX0FTU0VSVF9O
RSh2YWwxLCB2YWwyKSBcCiAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIoOjp0ZXN0aW5nOjppbnRlcm5h
bDo6Q21wSGVscGVyTkUsIHZhbDEsIHZhbDIpCiAjZGVmaW5lIEdURVNUX0FTU0VSVF9MRSh2YWwx
LCB2YWwyKSBcCkBAIC0yMTcyLDEyICsyMjI2LDYgQEAgY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRU
cmFjZSB7CiAgICAgUHVzaFRyYWNlKGZpbGUsIGxpbmUsIG1lc3NhZ2UgPyBtZXNzYWdlIDogIihu
dWxsKSIpOwogICB9CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotICBTY29wZWRUcmFj
ZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgOjpzdHJpbmcmIG1lc3NhZ2UpIHsK
LSAgICBQdXNoVHJhY2UoZmlsZSwgbGluZSwgbWVzc2FnZSk7Ci0gIH0KLSNlbmRpZgotCiAgIFNj
b3BlZFRyYWNlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBzdGQ6OnN0cmluZyYg
bWVzc2FnZSkgewogICAgIFB1c2hUcmFjZShmaWxlLCBsaW5lLCBtZXNzYWdlKTsKICAgfQpAQCAt
MjIxNSwxMCArMjI2Myw5IEBAIGNsYXNzIEdURVNUX0FQSV8gU2NvcGVkVHJhY2UgewogICA6OnRl
c3Rpbmc6OlNjb3BlZFRyYWNlIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfdHJhY2VfLCBfX0xJ
TkVfXykoXAogICAgIF9fRklMRV9fLCBfX0xJTkVfXywgKG1lc3NhZ2UpKQogCi0KIC8vIENvbXBp
bGUtdGltZSBhc3NlcnRpb24gZm9yIHR5cGUgZXF1YWxpdHkuCi0vLyBTdGF0aWNBc3NlcnRUeXBl
RXE8dHlwZTEsIHR5cGUyPigpIGNvbXBpbGVzIGlmZiB0eXBlMSBhbmQgdHlwZTIgYXJlCi0vLyB0
aGUgc2FtZSB0eXBlLiAgVGhlIHZhbHVlIGl0IHJldHVybnMgaXMgbm90IGludGVyZXN0aW5nLgor
Ly8gU3RhdGljQXNzZXJ0VHlwZUVxPHR5cGUxLCB0eXBlMj4oKSBjb21waWxlcyBpZiBhbmQgb25s
eSBpZiB0eXBlMSBhbmQgdHlwZTIKKy8vIGFyZSB0aGUgc2FtZSB0eXBlLiAgVGhlIHZhbHVlIGl0
IHJldHVybnMgaXMgbm90IGludGVyZXN0aW5nLgogLy8KIC8vIEluc3RlYWQgb2YgbWFraW5nIFN0
YXRpY0Fzc2VydFR5cGVFcSBhIGNsYXNzIHRlbXBsYXRlLCB3ZSBtYWtlIGl0IGEKIC8vIGZ1bmN0
aW9uIHRlbXBsYXRlIHRoYXQgaW52b2tlcyBhIGhlbHBlciBjbGFzcyB0ZW1wbGF0ZS4gIFRoaXMK
QEAgLTIyNDcsMTggKzIyOTQsMTggQEAgY2xhc3MgR1RFU1RfQVBJXyBTY29wZWRUcmFjZSB7CiAv
LwogLy8gdG8gY2F1c2UgYSBjb21waWxlciBlcnJvci4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDI+Ci1ib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIHsKLSAgKHZvaWQpaW50ZXJu
YWw6OlN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjxUMSwgVDI+KCk7Citjb25zdGV4cHIgYm9vbCBT
dGF0aWNBc3NlcnRUeXBlRXEoKSBub2V4Y2VwdCB7CisgIHN0YXRpY19hc3NlcnQoc3RkOjppc19z
YW1lPFQxLCBUMj46OnZhbHVlLCAiVDEgYW5kIFQyIGFyZSBub3QgdGhlIHNhbWUgdHlwZSIpOwog
ICByZXR1cm4gdHJ1ZTsKIH0KIAogLy8gRGVmaW5lcyBhIHRlc3QuCiAvLwotLy8gVGhlIGZpcnN0
IHBhcmFtZXRlciBpcyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBjYXNlLCBhbmQgdGhlIHNlY29uZAot
Ly8gcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgdGVzdCBjYXNl
LgorLy8gVGhlIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZSwg
YW5kIHRoZSBzZWNvbmQKKy8vIHBhcmFtZXRlciBpcyB0aGUgbmFtZSBvZiB0aGUgdGVzdCB3aXRo
aW4gdGhlIHRlc3Qgc3VpdGUuCiAvLwotLy8gVGhlIGNvbnZlbnRpb24gaXMgdG8gZW5kIHRoZSB0
ZXN0IGNhc2UgbmFtZSB3aXRoICJUZXN0Ii4gIEZvcgotLy8gZXhhbXBsZSwgYSB0ZXN0IGNhc2Ug
Zm9yIHRoZSBGb28gY2xhc3MgY2FuIGJlIG5hbWVkIEZvb1Rlc3QuCisvLyBUaGUgY29udmVudGlv
biBpcyB0byBlbmQgdGhlIHRlc3Qgc3VpdGUgbmFtZSB3aXRoICJUZXN0Ii4gIEZvcgorLy8gZXhh
bXBsZSwgYSB0ZXN0IHN1aXRlIGZvciB0aGUgRm9vIGNsYXNzIGNhbiBiZSBuYW1lZCBGb29UZXN0
LgogLy8KIC8vIFRlc3QgY29kZSBzaG91bGQgYXBwZWFyIGJldHdlZW4gYnJhY2VzIGFmdGVyIGFu
IGludm9jYXRpb24gb2YKIC8vIHRoaXMgbWFjcm8uICBFeGFtcGxlOgpAQCAtMjI3NywyOCArMjMy
NCwyOCBAQCBib29sIFN0YXRpY0Fzc2VydFR5cGVFcSgpIHsKIC8vIGNvZGUuICBHZXRUZXN0VHlw
ZUlkKCkgaXMgZ3VhcmFudGVlZCB0byBhbHdheXMgcmV0dXJuIHRoZSBzYW1lCiAvLyB2YWx1ZSwg
YXMgaXQgYWx3YXlzIGNhbGxzIEdldFR5cGVJZDw+KCkgZnJvbSB0aGUgR29vZ2xlIFRlc3QKIC8v
IGZyYW1ld29yay4KLSNkZWZpbmUgR1RFU1RfVEVTVCh0ZXN0X2Nhc2VfbmFtZSwgdGVzdF9uYW1l
KVwKLSAgR1RFU1RfVEVTVF8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSwgXAotICAgICAgICAg
ICAgICA6OnRlc3Rpbmc6OlRlc3QsIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdldFRlc3RUeXBlSWQo
KSkKKyNkZWZpbmUgR1RFU1RfVEVTVCh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkgICAgICAg
ICAgICAgXAorICBHVEVTVF9URVNUXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSwgOjp0ZXN0
aW5nOjpUZXN0LCBcCisgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdldFRlc3RU
eXBlSWQoKSkKIAogLy8gRGVmaW5lIHRoaXMgbWFjcm8gdG8gMSB0byBvbWl0IHRoZSBkZWZpbml0
aW9uIG9mIFRFU1QoKSwgd2hpY2gKIC8vIGlzIGEgZ2VuZXJpYyBuYW1lIGFuZCBjbGFzaGVzIHdp
dGggc29tZSBvdGhlciBsaWJyYXJpZXMuCiAjaWYgIUdURVNUX0RPTlRfREVGSU5FX1RFU1QKLSMg
ZGVmaW5lIFRFU1QodGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkgR1RFU1RfVEVTVCh0ZXN0X2Nh
c2VfbmFtZSwgdGVzdF9uYW1lKQorI2RlZmluZSBURVNUKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9u
YW1lKSBHVEVTVF9URVNUKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lKQogI2VuZGlmCiAKIC8v
IERlZmluZXMgYSB0ZXN0IHRoYXQgdXNlcyBhIHRlc3QgZml4dHVyZS4KIC8vCiAvLyBUaGUgZmly
c3QgcGFyYW1ldGVyIGlzIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZpeHR1cmUgY2xhc3MsIHdoaWNo
Ci0vLyBhbHNvIGRvdWJsZXMgYXMgdGhlIHRlc3QgY2FzZSBuYW1lLiAgVGhlIHNlY29uZCBwYXJh
bWV0ZXIgaXMgdGhlCi0vLyBuYW1lIG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgdGVzdCBjYXNlLgor
Ly8gYWxzbyBkb3VibGVzIGFzIHRoZSB0ZXN0IHN1aXRlIG5hbWUuICBUaGUgc2Vjb25kIHBhcmFt
ZXRlciBpcyB0aGUKKy8vIG5hbWUgb2YgdGhlIHRlc3Qgd2l0aGluIHRoZSB0ZXN0IHN1aXRlLgog
Ly8KIC8vIEEgdGVzdCBmaXh0dXJlIGNsYXNzIG11c3QgYmUgZGVjbGFyZWQgZWFybGllci4gIFRo
ZSB1c2VyIHNob3VsZCBwdXQKIC8vIHRoZSB0ZXN0IGNvZGUgYmV0d2VlbiBicmFjZXMgYWZ0ZXIg
dXNpbmcgdGhpcyBtYWNyby4gIEV4YW1wbGU6CiAvLwogLy8gICBjbGFzcyBGb29UZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogLy8gICAgcHJvdGVjdGVkOgotLy8gICAgIHZpcnR1YWwgdm9p
ZCBTZXRVcCgpIHsgYl8uQWRkRWxlbWVudCgzKTsgfQorLy8gICAgIHZvaWQgU2V0VXAoKSBvdmVy
cmlkZSB7IGJfLkFkZEVsZW1lbnQoMyk7IH0KIC8vCiAvLyAgICAgRm9vIGFfOwogLy8gICAgIEZv
byBiXzsKQEAgLTIzMTIsMTAgKzIzNTksMTMgQEAgYm9vbCBTdGF0aWNBc3NlcnRUeXBlRXEoKSB7
CiAvLyAgICAgRVhQRUNUX0VRKGFfLnNpemUoKSwgMCk7CiAvLyAgICAgRVhQRUNUX0VRKGJfLnNp
emUoKSwgMSk7CiAvLyAgIH0KLQorLy8KKy8vIEdPT0dMRVRFU1RfQ00wMDExIERPIE5PVCBERUxF
VEUKKyNpZiAhR1RFU1RfRE9OVF9ERUZJTkVfVEVTVAogI2RlZmluZSBURVNUX0YodGVzdF9maXh0
dXJlLCB0ZXN0X25hbWUpXAogICBHVEVTVF9URVNUXyh0ZXN0X2ZpeHR1cmUsIHRlc3RfbmFtZSwg
dGVzdF9maXh0dXJlLCBcCiAgICAgICAgICAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OkdldFR5
cGVJZDx0ZXN0X2ZpeHR1cmU+KCkpCisjZW5kaWYgIC8vICFHVEVTVF9ET05UX0RFRklORV9URVNU
CiAKIC8vIFJldHVybnMgYSBwYXRoIHRvIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiAvLyBUcmllcyB0
byBkZXRlcm1pbmUgYW4gYXBwcm9wcmlhdGUgZGlyZWN0b3J5IGZvciB0aGUgcGxhdGZvcm0uCkBA
IC0yMzI1LDYgKzIzNzUsODYgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBUZW1wRGlyKCk7CiAj
ICBwcmFnbWEgd2FybmluZyhwb3ApCiAjZW5kaWYKIAorLy8gRHluYW1pY2FsbHkgcmVnaXN0ZXJz
IGEgdGVzdCB3aXRoIHRoZSBmcmFtZXdvcmsuCisvLworLy8gVGhpcyBpcyBhbiBhZHZhbmNlZCBB
UEkgb25seSB0byBiZSB1c2VkIHdoZW4gdGhlIGBURVNUYCBtYWNyb3MgYXJlCisvLyBpbnN1ZmZp
Y2llbnQuIFRoZSBtYWNyb3Mgc2hvdWxkIGJlIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLCBhcyB0
aGV5IGF2b2lkCisvLyBtb3N0IG9mIHRoZSBjb21wbGV4aXR5IG9mIGNhbGxpbmcgdGhpcyBmdW5j
dGlvbi4KKy8vCisvLyBUaGUgYGZhY3RvcnlgIGFyZ3VtZW50IGlzIGEgZmFjdG9yeSBjYWxsYWJs
ZSAobW92ZS1jb25zdHJ1Y3RpYmxlKSBvYmplY3Qgb3IKKy8vIGZ1bmN0aW9uIHBvaW50ZXIgdGhh
dCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBUZXN0IG9iamVjdC4gSXQKKy8vIGhhbmRs
ZXMgb3duZXJzaGlwIHRvIHRoZSBjYWxsZXIuIFRoZSBzaWduYXR1cmUgb2YgdGhlIGNhbGxhYmxl
IGlzCisvLyBgRml4dHVyZSooKWAsIHdoZXJlIGBGaXh0dXJlYCBpcyB0aGUgdGVzdCBmaXh0dXJl
IGNsYXNzIGZvciB0aGUgdGVzdC4gQWxsCisvLyB0ZXN0cyByZWdpc3RlcmVkIHdpdGggdGhlIHNh
bWUgYHRlc3Rfc3VpdGVfbmFtZWAgbXVzdCByZXR1cm4gdGhlIHNhbWUKKy8vIGZpeHR1cmUgdHlw
ZS4gVGhpcyBpcyBjaGVja2VkIGF0IHJ1bnRpbWUuCisvLworLy8gVGhlIGZyYW1ld29yayB3aWxs
IGluZmVyIHRoZSBmaXh0dXJlIGNsYXNzIGZyb20gdGhlIGZhY3RvcnkgYW5kIHdpbGwgY2FsbAor
Ly8gdGhlIGBTZXRVcFRlc3RTdWl0ZWAgYW5kIGBUZWFyRG93blRlc3RTdWl0ZWAgZm9yIGl0Lgor
Ly8KKy8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBgUlVOX0FMTF9URVNUUygpYCBpcyBpbnZva2Vk
LCBvdGhlcndpc2UgYmVoYXZpb3IgaXMKKy8vIHVuZGVmaW5lZC4KKy8vCisvLyBVc2UgY2FzZSBl
eGFtcGxlOgorLy8KKy8vIGNsYXNzIE15Rml4dHVyZSA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qg
eworLy8gIHB1YmxpYzoKKy8vICAgLy8gQWxsIG9mIHRoZXNlIG9wdGlvbmFsLCBqdXN0IGxpa2Ug
aW4gcmVndWxhciBtYWNybyB1c2FnZS4KKy8vICAgc3RhdGljIHZvaWQgU2V0VXBUZXN0U3VpdGUo
KSB7IC4uLiB9CisvLyAgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgeyAuLi4gfQor
Ly8gICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyAuLi4gfQorLy8gICB2b2lkIFRlYXJEb3duKCkg
b3ZlcnJpZGUgeyAuLi4gfQorLy8gfTsKKy8vCisvLyBjbGFzcyBNeVRlc3QgOiBwdWJsaWMgTXlG
aXh0dXJlIHsKKy8vICBwdWJsaWM6CisvLyAgIGV4cGxpY2l0IE15VGVzdChpbnQgZGF0YSkgOiBk
YXRhXyhkYXRhKSB7fQorLy8gICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJpZGUgeyAuLi4gfQorLy8K
Ky8vICBwcml2YXRlOgorLy8gICBpbnQgZGF0YV87CisvLyB9OworLy8KKy8vIHZvaWQgUmVnaXN0
ZXJNeVRlc3RzKGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHZhbHVlcykgeworLy8gICBmb3IgKGlu
dCB2IDogdmFsdWVzKSB7CisvLyAgICAgOjp0ZXN0aW5nOjpSZWdpc3RlclRlc3QoCisvLyAgICAg
ICAgICJNeUZpeHR1cmUiLCAoIlRlc3QiICsgc3RkOjp0b19zdHJpbmcodikpLmNfc3RyKCksIG51
bGxwdHIsCisvLyAgICAgICAgIHN0ZDo6dG9fc3RyaW5nKHYpLmNfc3RyKCksCisvLyAgICAgICAg
IF9fRklMRV9fLCBfX0xJTkVfXywKKy8vICAgICAgICAgLy8gSW1wb3J0YW50IHRvIHVzZSB0aGUg
Zml4dHVyZSB0eXBlIGFzIHRoZSByZXR1cm4gdHlwZSBoZXJlLgorLy8gICAgICAgICBbPV0oKSAt
PiBNeUZpeHR1cmUqIHsgcmV0dXJuIG5ldyBNeVRlc3Qodik7IH0pOworLy8gICB9CisvLyB9Cisv
LyAuLi4KKy8vIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworLy8gICBzdGQ6OnZl
Y3RvcjxpbnQ+IHZhbHVlc190b190ZXN0ID0gTG9hZFZhbHVlc0Zyb21Db25maWcoKTsKKy8vICAg
UmVnaXN0ZXJNeVRlc3RzKHZhbHVlc190b190ZXN0KTsKKy8vICAgLi4uCisvLyAgIHJldHVybiBS
VU5fQUxMX1RFU1RTKCk7CisvLyB9CisvLwordGVtcGxhdGUgPGludCYuLi4gRXhwbGljaXRQYXJh
bWV0ZXJCYXJyaWVyLCB0eXBlbmFtZSBGYWN0b3J5PgorVGVzdEluZm8qIFJlZ2lzdGVyVGVzdChj
b25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IGNoYXIqIHRlc3RfbmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSwgY29uc3QgY2hhciogdmFs
dWVfcGFyYW0sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBs
aW5lLCBGYWN0b3J5IGZhY3RvcnkpIHsKKyAgdXNpbmcgVGVzdFQgPSB0eXBlbmFtZSBzdGQ6OnJl
bW92ZV9wb2ludGVyPGRlY2x0eXBlKGZhY3RvcnkoKSk+Ojp0eXBlOworCisgIGNsYXNzIEZhY3Rv
cnlJbXBsIDogcHVibGljIGludGVybmFsOjpUZXN0RmFjdG9yeUJhc2UgeworICAgcHVibGljOgor
ICAgIGV4cGxpY2l0IEZhY3RvcnlJbXBsKEZhY3RvcnkgZikgOiBmYWN0b3J5XyhzdGQ6Om1vdmUo
ZikpIHt9CisgICAgVGVzdCogQ3JlYXRlVGVzdCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhY3Rvcnlf
KCk7IH0KKworICAgcHJpdmF0ZToKKyAgICBGYWN0b3J5IGZhY3RvcnlfOworICB9OworCisgIHJl
dHVybiBpbnRlcm5hbDo6TWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oCisgICAgICB0ZXN0X3N1aXRl
X25hbWUsIHRlc3RfbmFtZSwgdHlwZV9wYXJhbSwgdmFsdWVfcGFyYW0sCisgICAgICBpbnRlcm5h
bDo6Q29kZUxvY2F0aW9uKGZpbGUsIGxpbmUpLCBpbnRlcm5hbDo6R2V0VHlwZUlkPFRlc3RUPigp
LAorICAgICAgaW50ZXJuYWw6OlN1aXRlQXBpUmVzb2x2ZXI8VGVzdFQ+OjpHZXRTZXRVcENhc2VP
clN1aXRlKGZpbGUsIGxpbmUpLAorICAgICAgaW50ZXJuYWw6OlN1aXRlQXBpUmVzb2x2ZXI8VGVz
dFQ+OjpHZXRUZWFyRG93bkNhc2VPclN1aXRlKGZpbGUsIGxpbmUpLAorICAgICAgbmV3IEZhY3Rv
cnlJbXBse3N0ZDo6bW92ZShmYWN0b3J5KX0pOworfQorCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGlu
ZwogCiAvLyBVc2UgdGhpcyBmdW5jdGlvbiBpbiBtYWluKCkgdG8gcnVuIGFsbCB0ZXN0cy4gIEl0
IHJldHVybnMgMCBpZiBhbGwKQEAgLTIzNDMsNCArMjQ3Myw0IEBAIGlubGluZSBpbnQgUlVOX0FM
TF9URVNUUygpIHsKIAogR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1
MQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfR1RFU1RfSF8KKyNlbmRpZiAgLy8g
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcmVkX2ltcGwuaAppbmRleCAwYzEx
MDVjYjhlYjJlZjdjMjYxNmU2N2ZmNTU1NmFhYjI5ZmYyZDFkLi41MDI5YTliYjAyYWRhNzQwZjll
ZTNlZWU2YTUyODFkNmU5NTkzYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3ByZWRfaW1wbC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJlZF9pbXBsLmgKQEAgLTI3LDE1ICsyNywxNCBA
QAogLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0vLyBUaGlzIGZpbGUgaXMgQVVU
T01BVElDQUxMWSBHRU5FUkFURUQgb24gMDEvMDIvMjAxOCBieSBjb21tYW5kCisvLyBUaGlzIGZp
bGUgaXMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgb24gMDEvMDIvMjAxOSBieSBjb21tYW5kCiAv
LyAnZ2VuX2d0ZXN0X3ByZWRfaW1wbC5weSA1Jy4gIERPIE5PVCBFRElUIEJZIEhBTkQhCiAvLwog
Ly8gSW1wbGVtZW50cyBhIGZhbWlseSBvZiBnZW5lcmljIHByZWRpY2F0ZSBhc3NlcnRpb24gbWFj
cm9zLgotCiAvLyBHT09HTEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RF
U1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVE
RV9HVEVTVF9HVEVTVF9QUkVEX0lNUExfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSRURfSU1QTF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgogCkBAIC02Nyw2
ICs2Niw4IEBAIG5hbWVzcGFjZSB0ZXN0aW5nIHsKIC8vIFdlIGFsc28gZGVmaW5lIHRoZSBFWFBF
Q1RfKiB2YXJpYXRpb25zLgogLy8KIC8vIEZvciBub3cgd2Ugb25seSBzdXBwb3J0IHByZWRpY2F0
ZXMgd2hvc2UgYXJpdHkgaXMgYXQgbW9zdCA1LgorLy8gUGxlYXNlIGVtYWlsIGdvb2dsZXRlc3Rm
cmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZAorLy8gc3VwcG9ydCBmb3IgaGln
aGVyIGFyaXRpZXMuCiAKIC8vIEdURVNUX0FTU0VSVF8gaXMgdGhlIGJhc2ljIHN0YXRlbWVudCB0
byB3aGljaCBhbGwgb2YgdGhlIGFzc2VydGlvbnMKIC8vIGluIHRoaXMgZmlsZSByZWR1Y2UuICBE
b24ndCB1c2UgdGhpcyBpbiB5b3VyIGNvZGUuCkBAIC04OSw5ICs5MCwxMCBAQCBBc3NlcnRpb25S
ZXN1bHQgQXNzZXJ0UHJlZDFIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQxJiB2MSkgewogICBpZiAocHJlZCh2MSkp
IHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7CiAKLSAgcmV0dXJuIEFzc2VydGlvbkZhaWx1cmUo
KSA8PCBwcmVkX3RleHQgPDwgIigiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTEg
PDwgIikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8PCAiXG4iIDw8IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjE7CisgIHJldHVybiBB
c3NlcnRpb25GYWlsdXJlKCkKKyAgICAgICAgIDw8IHByZWRfdGV4dCA8PCAiKCIgPDwgZTEgPDwg
IikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKKyAgICAgICAgIDw8ICJcbiIKKyAgICAgICAg
IDw8IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYx
KTsKIH0KIAogLy8gSW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VS
VH1fUFJFRF9GT1JNQVQxLgpAQCAtMTMzLDExICsxMzUsMTIgQEAgQXNzZXJ0aW9uUmVzdWx0IEFz
c2VydFByZWQySGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBUMiYgdjIpIHsKICAgaWYgKHByZWQodjEsIHYyKSkgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8
IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMSA8PCAi
LCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTIgPDwgIikgZXZhbHVhdGVzIHRv
IGZhbHNlLCB3aGVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUx
IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAiXG4iIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjI7CisgIHJldHVybiBBc3NlcnRp
b25GYWlsdXJlKCkKKyAgICAgICAgIDw8IHByZWRfdGV4dCA8PCAiKCIgPDwgZTEgPDwgIiwgIiA8
PCBlMgorICAgICAgICAgPDwgIikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKKyAgICAgICAg
IDw8ICJcbiIKKyAgICAgICAgIDw8IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5n
OjpQcmludFRvU3RyaW5nKHYxKSA8PCAiXG4iCisgICAgICAgICA8PCBlMiA8PCAiIGV2YWx1YXRl
cyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2Mik7CiB9CiAKIC8vIEludGVybmFs
IG1hY3JvIGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BSRURfRk9STUFUMi4KQEAg
LTE4NCwxMyArMTg3LDEzIEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQcmVkM0hlbHBlcihjb25z
dCBjaGFyKiBwcmVkX3RleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVDMmIHYzKSB7CiAgIGlmIChwcmVkKHYxLCB2MiwgdjMpKSByZXR1cm4gQXNzZXJ0aW9uU3Vj
Y2VzcygpOwogCi0gIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkgPDwgcHJlZF90ZXh0IDw8ICIo
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGUxIDw8ICIsICIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8PCBlMiA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPDwgZTMgPDwgIikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjEKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgdjIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUzIDw8ICIg
ZXZhbHVhdGVzIHRvICIgPDwgdjM7CisgIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkKKyAgICAg
ICAgIDw8IHByZWRfdGV4dCA8PCAiKCIgPDwgZTEgPDwgIiwgIiA8PCBlMiA8PCAiLCAiIDw8IGUz
CisgICAgICAgICA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgorICAgICAgICAgPDwg
IlxuIgorICAgICAgICAgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6OlBy
aW50VG9TdHJpbmcodjEpIDw8ICJcbiIKKyAgICAgICAgIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYyKSA8PCAiXG4iCisgICAgICAgICA8PCBl
MyA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyh2Myk7CiB9
CiAKIC8vIEludGVybmFsIG1hY3JvIGZvciBpbXBsZW1lbnRpbmcge0VYUEVDVHxBU1NFUlR9X1BS
RURfRk9STUFUMy4KQEAgLTI0MiwxNSArMjQ1LDE0IEBAIEFzc2VydGlvblJlc3VsdCBBc3NlcnRQ
cmVkNEhlbHBlcihjb25zdCBjaGFyKiBwcmVkX3RleHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVDQmIHY0KSB7CiAgIGlmIChwcmVkKHYxLCB2MiwgdjMsIHY0KSkg
cmV0dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgp
IDw8IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMSA8
PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTIgPDwgIiwgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IGUzIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCBlNCA8PCAiKSBldmFsdWF0ZXMgdG8gZmFsc2UsIHdoZXJlIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTEgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2
MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTIgPDwgIiBldmFsdWF0
ZXMgdG8gIiA8PCB2MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcbiIgPDwgZTMg
PDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2MwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8
ICJcbiIgPDwgZTQgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCB2NDsKKyAgcmV0dXJuIEFzc2VydGlv
bkZhaWx1cmUoKQorICAgICAgICAgPDwgcHJlZF90ZXh0IDw8ICIoIiA8PCBlMSA8PCAiLCAiIDw8
IGUyIDw8ICIsICIgPDwgZTMgPDwgIiwgIiA8PCBlNAorICAgICAgICAgPDwgIikgZXZhbHVhdGVz
IHRvIGZhbHNlLCB3aGVyZSIKKyAgICAgICAgIDw8ICJcbiIKKyAgICAgICAgIDw8IGUxIDw8ICIg
ZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYxKSA8PCAiXG4iCisg
ICAgICAgICA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0
cmluZyh2MikgPDwgIlxuIgorICAgICAgICAgPDwgZTMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6
OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjMpIDw8ICJcbiIKKyAgICAgICAgIDw8IGU0IDw8ICIg
ZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHY0KTsKIH0KIAogLy8g
SW50ZXJuYWwgbWFjcm8gZm9yIGltcGxlbWVudGluZyB7RVhQRUNUfEFTU0VSVH1fUFJFRF9GT1JN
QVQ0LgpAQCAtMzA3LDE3ICszMDksMTUgQEAgQXNzZXJ0aW9uUmVzdWx0IEFzc2VydFByZWQ1SGVs
cGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBUNSYgdjUpIHsKICAgaWYgKHByZWQodjEsIHYyLCB2MywgdjQsIHY1KSkgcmV0
dXJuIEFzc2VydGlvblN1Y2Nlc3MoKTsKIAotICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVyZSgpIDw8
IHByZWRfdGV4dCA8PCAiKCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBlMSA8PCAi
LCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTIgPDwgIiwgIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IGUzIDw8ICIsICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8PCBlNCA8PCAiLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZTUgPDwg
IikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8PCAiXG4iIDw8IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjEKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUyIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGUzIDw8ICIgZXZhbHVhdGVzIHRv
ICIgPDwgdjMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iIDw8IGU0IDw8ICIg
ZXZhbHVhdGVzIHRvICIgPDwgdjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4i
IDw8IGU1IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgdjU7CisgIHJldHVybiBBc3NlcnRpb25GYWls
dXJlKCkKKyAgICAgICAgIDw8IHByZWRfdGV4dCA8PCAiKCIgPDwgZTEgPDwgIiwgIiA8PCBlMiA8
PCAiLCAiIDw8IGUzIDw8ICIsICIgPDwgZTQKKyAgICAgICAgIDw8ICIsICIgPDwgZTUgPDwgIikg
ZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSIKKyAgICAgICAgIDw8ICJcbiIKKyAgICAgICAgIDw8
IGUxIDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHYxKSA8
PCAiXG4iCisgICAgICAgICA8PCBlMiA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6
UHJpbnRUb1N0cmluZyh2MikgPDwgIlxuIgorICAgICAgICAgPDwgZTMgPDwgIiBldmFsdWF0ZXMg
dG8gIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcodjMpIDw8ICJcbiIKKyAgICAgICAgIDw8
IGU0IDw8ICIgZXZhbHVhdGVzIHRvICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHY0KSA8
PCAiXG4iCisgICAgICAgICA8PCBlNSA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IDo6dGVzdGluZzo6
UHJpbnRUb1N0cmluZyh2NSk7CiB9CiAKIC8vIEludGVybmFsIG1hY3JvIGZvciBpbXBsZW1lbnRp
bmcge0VYUEVDVHxBU1NFUlR9X1BSRURfRk9STUFUNS4KQEAgLTM1Niw0ICszNTYsNCBAQCBBc3Nl
cnRpb25SZXN1bHQgQXNzZXJ0UHJlZDVIZWxwZXIoY29uc3QgY2hhciogcHJlZF90ZXh0LAogCiB9
ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
R1RFU1RfUFJFRF9JTVBMX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9H
VEVTVF9QUkVEX0lNUExfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJvZC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9ndGVzdF9wcm9kLmgKaW5kZXggZTY1MTY3MWViZGU4NTlmYzczMWI1NDU5YmRjMDY2
MWFmMDc1N2NiNi4uMzhiOWQ4NWE1MWVmYjc0N2ZlYjk2OWE1Y2RjYWRiMWMyN2IyZjg3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9k
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9k
LmgKQEAgLTMxLDggKzMxLDggQEAKIC8vIEdvb2dsZSBDKysgVGVzdGluZyBhbmQgTW9ja2luZyBG
cmFtZXdvcmsgZGVmaW5pdGlvbnMgdXNlZnVsIGluIHByb2R1Y3Rpb24gY29kZS4KIC8vIEdPT0dM
RVRFU1RfQ00wMDAzIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNU
X0dURVNUX1BST0RfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUk9EX0hf
CisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUk9EX0hfCisjZGVmaW5l
IEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9HVEVTVF9QUk9EX0hfCiAKIC8vIFdoZW4geW91IG5l
ZWQgdG8gdGVzdCB0aGUgcHJpdmF0ZSBvciBwcm90ZWN0ZWQgbWVtYmVycyBvZiBhIGNsYXNzLAog
Ly8gdXNlIHRoZSBGUklFTkRfVEVTVCBtYWNybyB0byBkZWNsYXJlIHlvdXIgdGVzdHMgYXMgZnJp
ZW5kcyBvZiB0aGUKQEAgLTU4LDQgKzU4LDQgQEAKICNkZWZpbmUgRlJJRU5EX1RFU1QodGVzdF9j
YXNlX25hbWUsIHRlc3RfbmFtZSlcCiBmcmllbmQgY2xhc3MgdGVzdF9jYXNlX25hbWUjI18jI3Rl
c3RfbmFtZSMjX1Rlc3QKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BS
T0RfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0dURVNUX1BST0RfSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJu
YWwvY3VzdG9tL2d0ZXN0LXBvcnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LXBvcnQuaAppbmRleCBjZDg1ZDk1NmQyZGMxN2Jk
NTM3ZjIxNDIzNDBiZGY1OGY0NzM3MTE4Li5kYjAyODgxYzBjODk5YTc0ZjA3OTg1OTgwYWZhMmU2
ZTk4YzY4ODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wb3J0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcG9ydC5oCkBAIC0zMSw3
ICszMSw3IEBACiAvLwogLy8gKiogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHN0YXJ0cyBoZXJlICoq
CiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUE9S
VF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9Q
T1JUX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01f
R1RFU1RfUE9SVF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
Q1VTVE9NX0dURVNUX1BPUlRfSF8KIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0NVU1RPTV9HVEVTVF9QT1JUX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUE9SVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QtcHJp
bnRlcnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Y3VzdG9tL2d0ZXN0LXByaW50ZXJzLmgKaW5kZXggZWI0NDY3YWJjYWJlYTdmZjc2ZjlkMmQ1Mjcz
ODdjOWRhODEwMTQ4Yi4uYjk0OTVkODM3ODNiY2RlMDUwZjVmZGMxNzcwMzZhYTQ4ODBiM2ZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9jdXN0b20vZ3Rlc3QtcHJpbnRlcnMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlL2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC1wcmludGVycy5oCkBAIC0zNiw3ICsz
Niw3IEBACiAvLwogLy8gKiogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHN0YXJ0cyBoZXJlICoqCiAK
LSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUFJJTlRF
UlNfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1Rf
UFJJTlRFUlNfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NV
U1RPTV9HVEVTVF9QUklOVEVSU19IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfQ1VTVE9NX0dURVNUX1BSSU5URVJTX0hfCiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfUFJJTlRFUlNfSF8KKyNlbmRpZiAgLy8g
R09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9QUklOVEVSU19I
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9jdXN0b20vZ3Rlc3QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rl
c3QvaW50ZXJuYWwvY3VzdG9tL2d0ZXN0LmgKaW5kZXggNGM4ZTA3YmUyM2YxZmQ2MTU5YWZlZjJl
ZWZkNzQ0NDAzNGRkMDYwNC4uYWZhYWYxN2JhMjhlM2JlYjc5MGExMjYzOGNmZmVjOGRiYTU2OThl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC9jdXN0b20vZ3Rlc3QuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRl
L2d0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oCkBAIC0zMSw3ICszMSw3IEBACiAvLwogLy8g
KiogQ3VzdG9tIGltcGxlbWVudGF0aW9uIHN0YXJ0cyBoZXJlICoqCiAKLSNpZm5kZWYgR1RFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KLSNkZWZpbmUgR1RFU1RfSU5D
TFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXworI2RlZmluZSBHT09HTEVURVNU
X0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfQ1VTVE9NX0dURVNUX0hfCiAKLSNlbmRpZiAgLy8gR1RF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9DVVNUT01fR1RFU1RfSF8KKyNlbmRpZiAgLy8gR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0NVU1RPTV9HVEVTVF9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1k
ZWF0aC10ZXN0LWludGVybmFsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0
ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaAppbmRleCAwYTliNDJjOGE1
NzJhODcxOTRjNjUxMDkwM2UyMWVhMjI2MGZhYzVjLi40OTAyOTZkZmFkMmQwMGM0ODExZWI0OTEy
NmFiMjY1Njk2MWM3NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWRlYXRoLXRl
c3QtaW50ZXJuYWwuaApAQCAtMzMsMTIgKzMzLDE0IEBACiAvLyBkZWF0aCB0ZXN0cy4gIFRoZXkg
YXJlIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLgogLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNU
X0lOVEVSTkFMX0dURVNUX0RFQVRIX1RFU1RfSU5URVJOQUxfSF8KKyNpZm5kZWYgR09PR0xFVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0RFQVRIX1RFU1RfSU5URVJOQUxfSF8KKyNk
ZWZpbmUgR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0RFQVRIX1RFU1Rf
SU5URVJOQUxfSF8KIAorI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LW1hdGNoZXJzLmgiCiAjaW5jbHVk
ZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgdGVzdGluZyB7CiBuYW1lc3BhY2UgaW50
ZXJuYWwgewpAQCAtNzgsNyArODAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIERlYXRoVGVzdCB7CiAg
IC8vIGFyZ3VtZW50IGlzIHNldC4gIElmIHRoZSBkZWF0aCB0ZXN0IHNob3VsZCBiZSBza2lwcGVk
LCB0aGUgcG9pbnRlcgogICAvLyBpcyBzZXQgdG8gTlVMTDsgb3RoZXJ3aXNlLCBpdCBpcyBzZXQg
dG8gdGhlIGFkZHJlc3Mgb2YgYSBuZXcgY29uY3JldGUKICAgLy8gRGVhdGhUZXN0IG9iamVjdCB0
aGF0IGNvbnRyb2xzIHRoZSBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQgdGVzdC4KLSAgc3RhdGlj
IGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAorICBz
dGF0aWMgYm9vbCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBNYXRjaGVyPGNvbnN0IHN0
ZDo6c3RyaW5nJj4gbWF0Y2hlciwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZp
bGUsIGludCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KTsKICAgRGVhdGhUZXN0KCk7CiAgIHZpcnR1
YWwgfkRlYXRoVGVzdCgpIHsgfQpAQCAtMTQ0LDIxICsxNDYsNDQgQEAgR1RFU1RfRElTQUJMRV9N
U0NfV0FSTklOR1NfUE9QXygpICAvLyAgNDI1MQogY2xhc3MgRGVhdGhUZXN0RmFjdG9yeSB7CiAg
cHVibGljOgogICB2aXJ0dWFsIH5EZWF0aFRlc3RGYWN0b3J5KCkgeyB9Ci0gIHZpcnR1YWwgYm9v
bCBDcmVhdGUoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25zdCBSRSogcmVnZXgsCi0gICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRl
c3QpID0gMDsKKyAgdmlydHVhbCBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIs
IGNvbnN0IGNoYXIqIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmUsIERlYXRo
VGVzdCoqIHRlc3QpID0gMDsKIH07CiAKIC8vIEEgY29uY3JldGUgRGVhdGhUZXN0RmFjdG9yeSBp
bXBsZW1lbnRhdGlvbiBmb3Igbm9ybWFsIHVzZS4KIGNsYXNzIERlZmF1bHREZWF0aFRlc3RGYWN0
b3J5IDogcHVibGljIERlYXRoVGVzdEZhY3RvcnkgewogIHB1YmxpYzoKLSAgdmlydHVhbCBib29s
IENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKLSAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVz
dCk7CisgIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBz
dGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGlu
dCBsaW5lLCBEZWF0aFRlc3QqKiB0ZXN0KSBvdmVycmlkZTsKIH07CiAKIC8vIFJldHVybnMgdHJ1
ZSBpZiBleGl0X3N0YXR1cyBkZXNjcmliZXMgYSBwcm9jZXNzIHRoYXQgd2FzIHRlcm1pbmF0ZWQK
IC8vIGJ5IGEgc2lnbmFsLCBvciBleGl0ZWQgbm9ybWFsbHkgd2l0aCBhIG5vbnplcm8gZXhpdCBj
b2RlLgogR1RFU1RfQVBJXyBib29sIEV4aXRlZFVuc3VjY2Vzc2Z1bGx5KGludCBleGl0X3N0YXR1
cyk7CiAKKy8vIEEgc3RyaW5nIHBhc3NlZCB0byBFWFBFQ1RfREVBVEggKGV0Yy4pIGlzIGNhdWdo
dCBieSBvbmUgb2YgdGhlc2Ugb3ZlcmxvYWRzCisvLyBhbmQgaW50ZXJwcmV0ZWQgYXMgYSByZWdl
eCAocmF0aGVyIHRoYW4gYW4gRXEgbWF0Y2hlcikgZm9yIGxlZ2FjeQorLy8gY29tcGF0aWJpbGl0
eS4KK2lubGluZSBNYXRjaGVyPGNvbnN0IDo6c3RkOjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0
Y2hlcigKKyAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpSRSByZWdleCkgeworICByZXR1cm4gQ29u
dGFpbnNSZWdleChyZWdleC5wYXR0ZXJuKCkpOworfQoraW5saW5lIE1hdGNoZXI8Y29uc3QgOjpz
dGQ6OnN0cmluZyY+IE1ha2VEZWF0aFRlc3RNYXRjaGVyKGNvbnN0IGNoYXIqIHJlZ2V4KSB7Cisg
IHJldHVybiBDb250YWluc1JlZ2V4KHJlZ2V4KTsKK30KK2lubGluZSBNYXRjaGVyPGNvbnN0IDo6
c3RkOjpzdHJpbmcmPiBNYWtlRGVhdGhUZXN0TWF0Y2hlcigKKyAgICBjb25zdCA6OnN0ZDo6c3Ry
aW5nJiByZWdleCkgeworICByZXR1cm4gQ29udGFpbnNSZWdleChyZWdleCk7Cit9CisKKy8vIElm
IGEgTWF0Y2hlcjxjb25zdCA6OnN0ZDo6c3RyaW5nJj4gaXMgcGFzc2VkIHRvIEVYUEVDVF9ERUFU
SCAoZXRjLiksIGl0J3MKKy8vIHVzZWQgZGlyZWN0bHkuCitpbmxpbmUgTWF0Y2hlcjxjb25zdCA6
OnN0ZDo6c3RyaW5nJj4gTWFrZURlYXRoVGVzdE1hdGNoZXIoCisgICAgTWF0Y2hlcjxjb25zdCA6
OnN0ZDo6c3RyaW5nJj4gbWF0Y2hlcikgeworICByZXR1cm4gbWF0Y2hlcjsKK30KKwogLy8gVHJh
cHMgQysrIGV4Y2VwdGlvbnMgZXNjYXBpbmcgc3RhdGVtZW50IGFuZCByZXBvcnRzIHRoZW0gYXMg
dGVzdAogLy8gZmFpbHVyZXMuIE5vdGUgdGhhdCB0cmFwcGluZyBTRUggZXhjZXB0aW9ucyBpcyBu
b3QgaW1wbGVtZW50ZWQgaGVyZS4KICMgaWYgR1RFU1RfSEFTX0VYQ0VQVElPTlMKQEAgLTE4Niwz
OCArMjExLDM4IEBAIEdURVNUX0FQSV8gYm9vbCBFeGl0ZWRVbnN1Y2Nlc3NmdWxseShpbnQgZXhp
dF9zdGF0dXMpOwogCiAvLyBUaGlzIG1hY3JvIGlzIGZvciBpbXBsZW1lbnRpbmcgQVNTRVJUX0RF
QVRIKiwgRVhQRUNUX0RFQVRIKiwKIC8vIEFTU0VSVF9FWElUKiwgYW5kIEVYUEVDVF9FWElUKi4K
LSMgZGVmaW5lIEdURVNUX0RFQVRIX1RFU1RfKHN0YXRlbWVudCwgcHJlZGljYXRlLCByZWdleCwg
ZmFpbCkgXAotICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9CTE9DS0VSXyBcCi0gIGlmICg6OnRlc3Rp
bmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgXAotICAgIGNvbnN0IDo6dGVzdGluZzo6aW50
ZXJuYWw6OlJFJiBndGVzdF9yZWdleCA9IChyZWdleCk7IFwKLSAgICA6OnRlc3Rpbmc6OmludGVy
bmFsOjpEZWF0aFRlc3QqIGd0ZXN0X2R0OyBcCi0gICAgaWYgKCE6OnRlc3Rpbmc6OmludGVybmFs
OjpEZWF0aFRlc3Q6OkNyZWF0ZSgjc3RhdGVtZW50LCAmZ3Rlc3RfcmVnZXgsIFwKLSAgICAgICAg
X19GSUxFX18sIF9fTElORV9fLCAmZ3Rlc3RfZHQpKSB7IFwKLSAgICAgIGdvdG8gR1RFU1RfQ09O
Q0FUX1RPS0VOXyhndGVzdF9sYWJlbF8sIF9fTElORV9fKTsgXAotICAgIH0gXAotICAgIGlmIChn
dGVzdF9kdCAhPSBOVUxMKSB7IFwKLSAgICAgIDo6dGVzdGluZzo6aW50ZXJuYWw6OnNjb3BlZF9w
dHI8IDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdD4gXAotICAgICAgICAgIGd0ZXN0X2R0
X3B0cihndGVzdF9kdCk7IFwKLSAgICAgIHN3aXRjaCAoZ3Rlc3RfZHQtPkFzc3VtZVJvbGUoKSkg
eyBcCi0gICAgICAgIGNhc2UgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVhdGhUZXN0OjpPVkVSU0VF
X1RFU1Q6IFwKLSAgICAgICAgICBpZiAoIWd0ZXN0X2R0LT5QYXNzZWQocHJlZGljYXRlKGd0ZXN0
X2R0LT5XYWl0KCkpKSkgeyBcCi0gICAgICAgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8o
Z3Rlc3RfbGFiZWxfLCBfX0xJTkVfXyk7IFwKLSAgICAgICAgICB9IFwKLSAgICAgICAgICBicmVh
azsgXAotICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6RVhFQ1VU
RV9URVNUOiB7IFwKLSAgICAgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6OlJl
dHVyblNlbnRpbmVsIFwKLSAgICAgICAgICAgICAgZ3Rlc3Rfc2VudGluZWwoZ3Rlc3RfZHQpOyBc
Ci0gICAgICAgICAgR1RFU1RfRVhFQ1VURV9ERUFUSF9URVNUX1NUQVRFTUVOVF8oc3RhdGVtZW50
LCBndGVzdF9kdCk7IFwKLSAgICAgICAgICBndGVzdF9kdC0+QWJvcnQoOjp0ZXN0aW5nOjppbnRl
cm5hbDo6RGVhdGhUZXN0OjpURVNUX0RJRF9OT1RfRElFKTsgXAotICAgICAgICAgIGJyZWFrOyBc
Ci0gICAgICAgIH0gXAotICAgICAgICBkZWZhdWx0OiBcCi0gICAgICAgICAgYnJlYWs7IFwKLSAg
ICAgIH0gXAotICAgIH0gXAotICB9IGVsc2UgXAotICAgIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rl
c3RfbGFiZWxfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoOjp0ZXN0aW5nOjppbnRlcm5hbDo6
RGVhdGhUZXN0OjpMYXN0TWVzc2FnZSgpKQorI2RlZmluZSBHVEVTVF9ERUFUSF9URVNUXyhzdGF0
ZW1lbnQsIHByZWRpY2F0ZSwgcmVnZXhfb3JfbWF0Y2hlciwgZmFpbCkgICAgICAgIFwKKyAgR1RF
U1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVl
KCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OkRlYXRoVGVzdCogZ3Rlc3RfZHQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBpZiAoITo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6Q3Jl
YXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAjc3RhdGVt
ZW50LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6TWFrZURlYXRoVGVzdE1hdGNo
ZXIocmVnZXhfb3JfbWF0Y2hlciksICAgICAgIFwKKyAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJ
TkVfXywgJmd0ZXN0X2R0KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVfXyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAo
Z3Rlc3RfZHQgIT0gbnVsbHB0cikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICBzdGQ6OnVuaXF1ZV9wdHI8IDo6dGVzdGluZzo6aW50ZXJu
YWw6OkRlYXRoVGVzdD4gZ3Rlc3RfZHRfcHRyKGd0ZXN0X2R0KTsgXAorICAgICAgc3dpdGNoIChn
dGVzdF9kdC0+QXNzdW1lUm9sZSgpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgY2FzZSA6OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6Ok9W
RVJTRUVfVEVTVDogICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgaWYgKCFndGVzdF9k
dC0+UGFzc2VkKHByZWRpY2F0ZShndGVzdF9kdC0+V2FpdCgpKSkpIHsgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgZ290byBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xhYmVsXywgX19M
SU5FX18pOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjYXNlIDo6dGVzdGluZzo6aW50ZXJuYWw6OkRl
YXRoVGVzdDo6RVhFQ1VURV9URVNUOiB7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICA6
OnRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3Q6OlJldHVyblNlbnRpbmVsIGd0ZXN0X3NlbnRp
bmVsKCAgICAgICBcCisgICAgICAgICAgICAgIGd0ZXN0X2R0KTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIEdURVNUX0VY
RUNVVEVfREVBVEhfVEVTVF9TVEFURU1FTlRfKHN0YXRlbWVudCwgZ3Rlc3RfZHQpOyAgICAgICAg
ICAgIFwKKyAgICAgICAgICBndGVzdF9kdC0+QWJvcnQoOjp0ZXN0aW5nOjppbnRlcm5hbDo6RGVh
dGhUZXN0OjpURVNUX0RJRF9OT1RfRElFKTsgICBcCisgICAgICAgICAgYnJlYWs7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
ICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgIH0gZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEdURVNUX0NPTkNBVF9UT0tF
Tl8oZ3Rlc3RfbGFiZWxfLCBfX0xJTkVfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgOiBmYWlsKDo6dGVzdGluZzo6aW50ZXJuYWw6OkRlYXRoVGVzdDo6TGFzdE1l
c3NhZ2UoKSkKIC8vIFRoZSBzeW1ib2wgImZhaWwiIGhlcmUgZXhwYW5kcyB0byBzb21ldGhpbmcg
aW50byB3aGljaCBhIG1lc3NhZ2UKIC8vIGNhbiBiZSBzdHJlYW1lZC4KIApAQCAtMjI2LDE0ICsy
NTEsMTMgQEAgR1RFU1RfQVBJXyBib29sIEV4aXRlZFVuc3VjY2Vzc2Z1bGx5KGludCBleGl0X3N0
YXR1cyk7CiAvLyBtdXN0IGFjY2VwdCBhIHN0cmVhbWVkIG1lc3NhZ2UgZXZlbiB0aG91Z2ggdGhl
IG1lc3NhZ2UgaXMgbmV2ZXIgcHJpbnRlZC4KIC8vIFRoZSByZWdleCBvYmplY3QgaXMgbm90IGV2
YWx1YXRlZCwgYnV0IGl0IGlzIHVzZWQgdG8gcHJldmVudCAidW51c2VkIgogLy8gd2FybmluZ3Mg
YW5kIHRvIGF2b2lkIGFuIGV4cHJlc3Npb24gdGhhdCBkb2Vzbid0IGNvbXBpbGUgaW4gZGVidWcg
bW9kZS4KLSNkZWZpbmUgR1RFU1RfRVhFQ1VURV9TVEFURU1FTlRfKHN0YXRlbWVudCwgcmVnZXgp
ICAgICAgICAgICAgIFwKLSAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OkFsd2F5
c1RydWUoKSkgeyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBHVEVTVF9TVVBQUkVTU19VTlJF
QUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7IFwKLSAgfSBlbHNlIGlmICgh
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7ICAgICAgICAgICAgIFwKLSAgICBj
b25zdCA6OnRlc3Rpbmc6OmludGVybmFsOjpSRSYgZ3Rlc3RfcmVnZXggPSAocmVnZXgpOyAgICAg
IFwKLSAgICBzdGF0aWNfY2FzdDx2b2lkPihndGVzdF9yZWdleCk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgfSBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgR1RFU1RfRVhFQ1VURV9TVEFURU1FTlRfKHN0
YXRlbWVudCwgcmVnZXhfb3JfbWF0Y2hlcikgICAgXAorICBHVEVTVF9BTUJJR1VPVVNfRUxTRV9C
TE9DS0VSXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGlmICg6OnRlc3Rp
bmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkpIHsgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVu
dCk7ICAgXAorICB9IGVsc2UgaWYgKCE6OnRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlKCkp
IHsgICAgICAgICAgICAgICBcCisgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6TWFrZURlYXRoVGVz
dE1hdGNoZXIocmVnZXhfb3JfbWF0Y2hlcik7IFwKKyAgfSBlbHNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIDo6dGVzdGluZzo6
TWVzc2FnZSgpCiAKIC8vIEEgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBwYXJzZWQgY29udGVudHMg
b2YgdGhlCkBAIC0yNzcsNCArMzAxLDQgQEAgSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnKiBQYXJz
ZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpOwogfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCiB9
ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXworI2VuZGlmICAvLyBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfREVBVEhfVEVTVF9JTlRFUk5BTF9IXwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5h
bC9ndGVzdC1maWxlcGF0aC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVz
dC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oCmluZGV4IGFlMzhkOTViZjg0NGZhOWRjMjE3Mzlj
ZjgyMTI3NmQ1YjM0MTdlM2EuLjRiNWFhM2I0NDJkZjMxZDc2NjJjOTY5Njc3OWExZTE4NmFhNDI3
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtZmlsZXBhdGguaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNs
dWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWZpbGVwYXRoLmgKQEAgLTM3LDggKzM3LDggQEAKIAog
Ly8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9GSUxFUEFUSF9IXworI2lmbmRlZiBHT09HTEVURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCiAKICNpbmNsdWRlICJn
dGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCIKIApAQCAtMTEwLDcgKzExMCw3IEBAIGNsYXNz
IEdURVNUX0FQSV8gRmlsZVBhdGggewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBGaWxlUGF0aCYgYmFzZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBleHRlbnNpb24pOwogCi0gIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgdGhlIHBhdGggaXMgIiIuCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgcGF0aCBpcyAiIi4KICAgYm9vbCBJc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gcGF0
aG5hbWVfLmVtcHR5KCk7IH0KIAogICAvLyBJZiBpbnB1dCBuYW1lIGhhcyBhIHRyYWlsaW5nIHNl
cGFyYXRvciBjaGFyYWN0ZXIsIHJlbW92ZXMgaXQgYW5kIHJldHVybnMKQEAgLTIwOCw0ICsyMDgs
NCBAQCBjbGFzcyBHVEVTVF9BUElfIEZpbGVQYXRoIHsKIAogR1RFU1RfRElTQUJMRV9NU0NfV0FS
TklOR1NfUE9QXygpICAvLyAgNDI1MQogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1Rf
SU5URVJOQUxfR1RFU1RfRklMRVBBVEhfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURF
X0dURVNUX0lOVEVSTkFMX0dURVNUX0ZJTEVQQVRIX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVy
bmFsLmgKaW5kZXggYjc2MmY2MWZjNTNjM2RiOWNmYjc1Mzk0MGQ5MWI1ZDU0YWIzNjM1Ny4uZmY1
NTdkNWEzN2IzYTcxMmFlMzllNDhmNzRlMjQyMzc1ODdkZTYwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1pbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rl
c3QtaW50ZXJuYWwuaApAQCAtMzQsOCArMzQsOCBAQAogCiAvLyBHT09HTEVURVNUX0NNMDAwMSBE
TyBOT1QgREVMRVRFCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVT
VF9JTlRFUk5BTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X0lOVEVSTkFMX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9H
VEVTVF9JTlRFUk5BTF9IXworI2RlZmluZSBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfSU5URVJOQUxfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBv
cnQuaCIKIApAQCAtNTMsMTEgKzUzLDEzIEBACiAjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRl
IDxmbG9hdC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5j
bHVkZSA8aW9tYW5pcD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWFwPgogI2luY2x1
ZGUgPHNldD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5j
bHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oIgpAQCAtNzcs
MTAgKzc5LDIwIEBACiAjZGVmaW5lIEdURVNUX0NPTkNBVF9UT0tFTl9JTVBMXyhmb28sIGJhcikg
Zm9vICMjIGJhcgogCiAvLyBTdHJpbmdpZmllcyBpdHMgYXJndW1lbnQuCi0jZGVmaW5lIEdURVNU
X1NUUklOR0lGWV8obmFtZSkgI25hbWUKKy8vIFdvcmsgYXJvdW5kIGEgYnVnIGluIHZpc3VhbCBz
dHVkaW8gd2hpY2ggZG9lc24ndCBhY2NlcHQgY29kZSBsaWtlIHRoaXM6CisvLworLy8gICAjZGVm
aW5lIEdURVNUX1NUUklOR0lGWV8obmFtZSkgI25hbWUKKy8vICAgI2RlZmluZSBNQUNSTyhhLCBi
LCBjKSAuLi4gR1RFU1RfU1RSSU5HSUZZXyhhKSAuLi4KKy8vICAgTUFDUk8oLCB4LCB5KQorLy8K
Ky8vIENvbXBsYWluaW5nIGFib3V0IHRoZSBhcmd1bWVudCB0byBHVEVTVF9TVFJJTkdJRllfIGJl
aW5nIGVtcHR5LgorLy8gVGhpcyBpcyBhbGxvd2VkIGJ5IHRoZSBzcGVjLgorI2RlZmluZSBHVEVT
VF9TVFJJTkdJRllfSEVMUEVSXyhuYW1lLCAuLi4pICNuYW1lCisjZGVmaW5lIEdURVNUX1NUUklO
R0lGWV8oLi4uKSBHVEVTVF9TVFJJTkdJRllfSEVMUEVSXyhfX1ZBX0FSR1NfXywgKQogCi1jbGFz
cyBQcm90b2NvbE1lc3NhZ2U7Ci1uYW1lc3BhY2UgcHJvdG8yIHsgY2xhc3MgTWVzc2FnZTsgfQor
bmFtZXNwYWNlIHByb3RvMiB7CitjbGFzcyBNZXNzYWdlTGl0ZTsKK30KIAogbmFtZXNwYWNlIHRl
c3RpbmcgewogCkBAIC05MSw3ICsxMDMsNyBAQCBjbGFzcyBNZXNzYWdlOyAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBSZXByZXNlbnRzIGEgZmFpbHVyZSBtZXNzYWdlLgogY2xhc3MgVGVzdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50cyBhIHRlc3QuCiBjbGFzcyBU
ZXN0SW5mbzsgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmZvcm1hdGlvbiBhYm91dCBhIHRl
c3QuCiBjbGFzcyBUZXN0UGFydFJlc3VsdDsgICAgICAgICAgICAgICAgICAvLyBSZXN1bHQgb2Yg
YSB0ZXN0IHBhcnQuCi1jbGFzcyBVbml0VGVzdDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBB
IGNvbGxlY3Rpb24gb2YgdGVzdCBjYXNlcy4KK2NsYXNzIFVuaXRUZXN0OyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEEgY29sbGVjdGlvbiBvZiB0ZXN0IHN1aXRlcy4KIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiA6OnN0ZDo6c3RyaW5nIFByaW50VG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpOwpA
QCAtMTA2LDM0ICsxMTgsMjIgQEAgY2xhc3MgVW5pdFRlc3RJbXBsOyAgICAgICAgICAgICAgICAg
ICAgLy8gT3BhcXVlIGltcGxlbWVudGF0aW9uIG9mIFVuaXRUZXN0CiAvLyBzdGFjayB0cmFjZS4K
IEdURVNUX0FQSV8gZXh0ZXJuIGNvbnN0IGNoYXIga1N0YWNrVHJhY2VNYXJrZXJbXTsKIAotLy8g
VHdvIG92ZXJsb2FkZWQgaGVscGVycyBmb3IgY2hlY2tpbmcgYXQgY29tcGlsZSB0aW1lIHdoZXRo
ZXIgYW4KLS8vIGV4cHJlc3Npb24gaXMgYSBudWxsIHBvaW50ZXIgbGl0ZXJhbCAoaS5lLiBOVUxM
IG9yIGFueSAwLXZhbHVlZAotLy8gY29tcGlsZS10aW1lIGludGVncmFsIGNvbnN0YW50KS4gIFRo
ZWlyIHJldHVybiB2YWx1ZXMgaGF2ZQotLy8gZGlmZmVyZW50IHNpemVzLCBzbyB3ZSBjYW4gdXNl
IHNpemVvZigpIHRvIHRlc3Qgd2hpY2ggdmVyc2lvbiBpcwotLy8gcGlja2VkIGJ5IHRoZSBjb21w
aWxlci4gIFRoZXNlIGhlbHBlcnMgaGF2ZSBubyBpbXBsZW1lbnRhdGlvbnMsIGFzCi0vLyB3ZSBv
bmx5IG5lZWQgdGhlaXIgc2lnbmF0dXJlcy4KLS8vCi0vLyBHaXZlbiBJc051bGxMaXRlcmFsSGVs
cGVyKHgpLCB0aGUgY29tcGlsZXIgd2lsbCBwaWNrIHRoZSBmaXJzdAotLy8gdmVyc2lvbiBpZiB4
IGNhbiBiZSBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBTZWNyZXQqLCBhbmQgcGljayB0aGUKLS8v
IHNlY29uZCB2ZXJzaW9uIG90aGVyd2lzZS4gIFNpbmNlIFNlY3JldCBpcyBhIHNlY3JldCBhbmQg
aW5jb21wbGV0ZQotLy8gdHlwZSwgdGhlIG9ubHkgZXhwcmVzc2lvbiBhIHVzZXIgY2FuIHdyaXRl
IHRoYXQgaGFzIHR5cGUgU2VjcmV0KiBpcwotLy8gYSBudWxsIHBvaW50ZXIgbGl0ZXJhbC4gIFRo
ZXJlZm9yZSwgd2Uga25vdyB0aGF0IHggaXMgYSBudWxsCi0vLyBwb2ludGVyIGxpdGVyYWwgaWYg
YW5kIG9ubHkgaWYgdGhlIGZpcnN0IHZlcnNpb24gaXMgcGlja2VkIGJ5IHRoZQotLy8gY29tcGls
ZXIuCi1jaGFyIElzTnVsbExpdGVyYWxIZWxwZXIoU2VjcmV0KiBwKTsKLWNoYXIgKCZJc051bGxM
aXRlcmFsSGVscGVyKC4uLikpWzJdOyAgLy8gTk9MSU5UCi0KLS8vIEEgY29tcGlsZS10aW1lIGJv
b2wgY29uc3RhbnQgdGhhdCBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIHggaXMgYQotLy8gbnVsbCBw
b2ludGVyIGxpdGVyYWwgKGkuZS4gTlVMTCBvciBhbnkgMC12YWx1ZWQgY29tcGlsZS10aW1lCi0v
LyBpbnRlZ3JhbCBjb25zdGFudCkuCi0jaWZkZWYgR1RFU1RfRUxMSVBTSVNfTkVFRFNfUE9EXwot
Ly8gV2UgbG9zZSBzdXBwb3J0IGZvciBOVUxMIGRldGVjdGlvbiB3aGVyZSB0aGUgY29tcGlsZXIg
ZG9lc24ndCBsaWtlCi0vLyBwYXNzaW5nIG5vbi1QT0QgY2xhc3NlcyB0aHJvdWdoIGVsbGlwc2lz
ICguLi4pLgotIyBkZWZpbmUgR1RFU1RfSVNfTlVMTF9MSVRFUkFMXyh4KSBmYWxzZQotI2Vsc2UK
LSMgZGVmaW5lIEdURVNUX0lTX05VTExfTElURVJBTF8oeCkgXAotICAgIChzaXplb2YoOjp0ZXN0
aW5nOjppbnRlcm5hbDo6SXNOdWxsTGl0ZXJhbEhlbHBlcih4KSkgPT0gMSkKLSNlbmRpZiAgLy8g
R1RFU1RfRUxMSVBTSVNfTkVFRFNfUE9EXworLy8gQW4gSWdub3JlZFZhbHVlIG9iamVjdCBjYW4g
YmUgaW1wbGljaXRseSBjb25zdHJ1Y3RlZCBmcm9tIEFOWSB2YWx1ZS4KK2NsYXNzIElnbm9yZWRW
YWx1ZSB7CisgIHN0cnVjdCBTaW5rIHt9OworIHB1YmxpYzoKKyAgLy8gVGhpcyBjb25zdHJ1Y3Rv
ciB0ZW1wbGF0ZSBhbGxvd3MgYW55IHZhbHVlIHRvIGJlIGltcGxpY2l0bHkKKyAgLy8gY29udmVy
dGVkIHRvIElnbm9yZWRWYWx1ZS4gIFRoZSBvYmplY3QgaGFzIG5vIGRhdGEgbWVtYmVyIGFuZAor
ICAvLyBkb2Vzbid0IHRyeSB0byByZW1lbWJlciBhbnl0aGluZyBhYm91dCB0aGUgYXJndW1lbnQu
ICBXZQorICAvLyBkZWxpYmVyYXRlbHkgb21pdCB0aGUgJ2V4cGxpY2l0JyBrZXl3b3JkIGluIG9y
ZGVyIHRvIGFsbG93IHRoZQorICAvLyBjb252ZXJzaW9uIHRvIGJlIGltcGxpY2l0LgorICAvLyBE
aXNhYmxlIHRoZSBjb252ZXJzaW9uIGlmIFQgYWxyZWFkeSBoYXMgYSBtYWdpY2FsIGNvbnZlcnNp
b24gb3BlcmF0b3IuCisgIC8vIE90aGVyd2lzZSB3ZSBnZXQgYW1iaWd1aXR5LgorICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6
OmlzX2NvbnZlcnRpYmxlPFQsIFNpbms+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludD46OnR5cGUgPSAwPgorICBJZ25vcmVkVmFsdWUoY29uc3QgVCYgLyog
aWdub3JlZCAqLykge30gIC8vIE5PTElOVChydW50aW1lL2V4cGxpY2l0KQorfTsKIAogLy8gQXBw
ZW5kcyB0aGUgdXNlci1zdXBwbGllZCBtZXNzYWdlIHRvIHRoZSBHb29nbGUtVGVzdC1nZW5lcmF0
ZWQgbWVzc2FnZS4KIEdURVNUX0FQSV8gc3RkOjpzdHJpbmcgQXBwZW5kVXNlck1lc3NhZ2UoCkBA
IC0yMDEsNyArMjAxLDcgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0cmluZyBEaWZmU3RyaW5ncyhjb25z
dCBzdGQ6OnN0cmluZyYgbGVmdCwKIC8vICAgZXhwZWN0ZWRfdmFsdWU6ICAgICAgIjUiCiAvLyAg
IGFjdHVhbF92YWx1ZTogICAgICAgICI2IgogLy8KLS8vIFRoZSBpZ25vcmluZ19jYXNlIHBhcmFt
ZXRlciBpcyB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIGlzIGEKKy8vIFRoZSBpZ25vcmluZ19jYXNl
IHBhcmFtZXRlciBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBhc3NlcnRpb24gaXMgYQogLy8g
Kl9TVFJDQVNFRVEqLiAgV2hlbiBpdCdzIHRydWUsIHRoZSBzdHJpbmcgIiAoaWdub3JpbmcgY2Fz
ZSkiIHdpbGwKIC8vIGJlIGluc2VydGVkIGludG8gdGhlIG1lc3NhZ2UuCiBHVEVTVF9BUElfIEFz
c2VydGlvblJlc3VsdCBFcUZhaWx1cmUoY29uc3QgY2hhciogZXhwZWN0ZWRfZXhwcmVzc2lvbiwK
QEAgLTI4Nyw3ICsyODcsNyBAQCBjbGFzcyBGbG9hdGluZ1BvaW50IHsKICAgLy8KICAgLy8gU2Vl
IHRoZSBmb2xsb3dpbmcgYXJ0aWNsZSBmb3IgbW9yZSBkZXRhaWxzIG9uIFVMUDoKICAgLy8gaHR0
cDovL3JhbmRvbWFzY2lpLndvcmRwcmVzcy5jb20vMjAxMi8wMi8yNS9jb21wYXJpbmctZmxvYXRp
bmctcG9pbnQtbnVtYmVycy0yMDEyLWVkaXRpb24vCi0gIHN0YXRpYyBjb25zdCBzaXplX3Qga01h
eFVscHMgPSA0OworICBzdGF0aWMgY29uc3QgdWludDMyX3Qga01heFVscHMgPSA0OwogCiAgIC8v
IENvbnN0cnVjdHMgYSBGbG9hdGluZ1BvaW50IGZyb20gYSByYXcgZmxvYXRpbmctcG9pbnQgbnVt
YmVyLgogICAvLwpAQCAtMzMwLDE1ICszMzAsMTUgQEAgY2xhc3MgRmxvYXRpbmdQb2ludCB7CiAg
IC8vIFJldHVybnMgdGhlIHNpZ24gYml0IG9mIHRoaXMgbnVtYmVyLgogICBCaXRzIHNpZ25fYml0
KCkgY29uc3QgeyByZXR1cm4ga1NpZ25CaXRNYXNrICYgdV8uYml0c187IH0KIAotICAvLyBSZXR1
cm5zIHRydWUgaWZmIHRoaXMgaXMgTkFOIChub3QgYSBudW1iZXIpLgorICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhpcyBpcyBOQU4gKG5vdCBhIG51bWJlcikuCiAgIGJvb2wgaXNf
bmFuKCkgY29uc3QgewogICAgIC8vIEl0J3MgYSBOQU4gaWYgdGhlIGV4cG9uZW50IGJpdHMgYXJl
IGFsbCBvbmVzIGFuZCB0aGUgZnJhY3Rpb24KICAgICAvLyBiaXRzIGFyZSBub3QgZW50aXJlbHkg
emVyb3MuCiAgICAgcmV0dXJuIChleHBvbmVudF9iaXRzKCkgPT0ga0V4cG9uZW50Qml0TWFzaykg
JiYgKGZyYWN0aW9uX2JpdHMoKSAhPSAwKTsKICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBpZmYg
dGhpcyBudW1iZXIgaXMgYXQgbW9zdCBrTWF4VWxwcyBVTFAncyBhd2F5IGZyb20KLSAgLy8gcmhz
LiAgSW4gcGFydGljdWxhciwgdGhpcyBmdW5jdGlvbjoKKyAgLy8gUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoaXMgbnVtYmVyIGlzIGF0IG1vc3Qga01heFVscHMgVUxQJ3MgYXdheQorICAv
LyBmcm9tIHJocy4gIEluIHBhcnRpY3VsYXIsIHRoaXMgZnVuY3Rpb246CiAgIC8vCiAgIC8vICAg
LSByZXR1cm5zIGZhbHNlIGlmIGVpdGhlciBudW1iZXIgaXMgKG9yIGJvdGggYXJlKSBOQU4uCiAg
IC8vICAgLSB0cmVhdHMgcmVhbGx5IGxhcmdlIG51bWJlcnMgYXMgYWxtb3N0IGVxdWFsIHRvIGlu
ZmluaXR5LgpAQCAtNDA5LDcgKzQwOSw3IEBAIHR5cGVkZWYgRmxvYXRpbmdQb2ludDxmbG9hdD4g
RmxvYXQ7CiB0eXBlZGVmIEZsb2F0aW5nUG9pbnQ8ZG91YmxlPiBEb3VibGU7CiAKIC8vIEluIG9y
ZGVyIHRvIGNhdGNoIHRoZSBtaXN0YWtlIG9mIHB1dHRpbmcgdGVzdHMgdGhhdCB1c2UgZGlmZmVy
ZW50Ci0vLyB0ZXN0IGZpeHR1cmUgY2xhc3NlcyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UsIHdlIG5l
ZWQgdG8gYXNzaWduCisvLyB0ZXN0IGZpeHR1cmUgY2xhc3NlcyBpbiB0aGUgc2FtZSB0ZXN0IHN1
aXRlLCB3ZSBuZWVkIHRvIGFzc2lnbgogLy8gdW5pcXVlIElEcyB0byBmaXh0dXJlIGNsYXNzZXMg
YW5kIGNvbXBhcmUgdGhlbS4gIFRoZSBUeXBlSWQgdHlwZSBpcwogLy8gdXNlZCB0byBob2xkIHN1
Y2ggSURzLiAgVGhlIHVzZXIgc2hvdWxkIHRyZWF0IFR5cGVJZCBhcyBhbiBvcGFxdWUKIC8vIHR5
cGU6IHRoZSBvbmx5IG9wZXJhdGlvbiBhbGxvd2VkIG9uIFR5cGVJZCB2YWx1ZXMgaXMgdG8gY29t
cGFyZQpAQCAtNDY5LDcgKzQ2OSw3IEBAIGNsYXNzIFRlc3RGYWN0b3J5QmFzZSB7CiB0ZW1wbGF0
ZSA8Y2xhc3MgVGVzdENsYXNzPgogY2xhc3MgVGVzdEZhY3RvcnlJbXBsIDogcHVibGljIFRlc3RG
YWN0b3J5QmFzZSB7CiAgcHVibGljOgotICB2aXJ0dWFsIFRlc3QqIENyZWF0ZVRlc3QoKSB7IHJl
dHVybiBuZXcgVGVzdENsYXNzOyB9CisgIFRlc3QqIENyZWF0ZVRlc3QoKSBvdmVycmlkZSB7IHJl
dHVybiBuZXcgVGVzdENsYXNzOyB9CiB9OwogCiAjaWYgR1RFU1RfT1NfV0lORE9XUwpAQCAtNDg1
LDkgKzQ4NSw5IEBAIEdURVNUX0FQSV8gQXNzZXJ0aW9uUmVzdWx0IElzSFJFU1VMVEZhaWx1cmUo
Y29uc3QgY2hhciogZXhwciwKIAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCiAKLS8vIFR5
cGVzIG9mIFNldFVwVGVzdENhc2UoKSBhbmQgVGVhckRvd25UZXN0Q2FzZSgpIGZ1bmN0aW9ucy4K
LXR5cGVkZWYgdm9pZCAoKlNldFVwVGVzdENhc2VGdW5jKSgpOwotdHlwZWRlZiB2b2lkICgqVGVh
ckRvd25UZXN0Q2FzZUZ1bmMpKCk7CisvLyBUeXBlcyBvZiBTZXRVcFRlc3RTdWl0ZSgpIGFuZCBU
ZWFyRG93blRlc3RTdWl0ZSgpIGZ1bmN0aW9ucy4KK3VzaW5nIFNldFVwVGVzdFN1aXRlRnVuYyA9
IHZvaWQgKCopKCk7Cit1c2luZyBUZWFyRG93blRlc3RTdWl0ZUZ1bmMgPSB2b2lkICgqKSgpOwog
CiBzdHJ1Y3QgQ29kZUxvY2F0aW9uIHsKICAgQ29kZUxvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5n
JiBhX2ZpbGUsIGludCBhX2xpbmUpCkBAIC00OTcsNTggKzQ5NywxMTYgQEAgc3RydWN0IENvZGVM
b2NhdGlvbiB7CiAgIGludCBsaW5lOwogfTsKIAorLy8gIEhlbHBlciB0byBpZGVudGlmeSB3aGlj
aCBzZXR1cCBmdW5jdGlvbiBmb3IgVGVzdENhc2UgLyBUZXN0U3VpdGUgdG8gY2FsbC4KKy8vICBP
bmx5IG9uZSBmdW5jdGlvbiBpcyBhbGxvd2VkLCBlaXRoZXIgVGVzdENhc2Ugb3IgVGVzdFN1dGUg
YnV0IG5vdCBib3RoLgorCisvLyBVdGlsaXR5IGZ1bmN0aW9ucyB0byBoZWxwIFN1aXRlQXBpUmVz
b2x2ZXIKK3VzaW5nIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlID0gdm9pZCAoKikoKTsKKwor
aW5saW5lIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBlIEdldE5vdERlZmF1bHRPck51bGwoCisg
ICAgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgYSwgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5
cGUgZGVmKSB7CisgIHJldHVybiBhID09IGRlZiA/IG51bGxwdHIgOiBhOworfQorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KKy8vICBOb3RlIHRoYXQgU3VpdGVBcGlSZXNvbHZlciBpbmhlcml0cyBm
cm9tIFQgYmVjYXVzZQorLy8gIFNldFVwVGVzdFN1aXRlKCkvVGVhckRvd25UZXN0U3VpdGUoKSBj
b3VsZCBiZSBwcm90ZWN0ZWQuIFRocyB3YXkKKy8vICBTdWl0ZUFwaVJlc29sdmVyIGNhbiBhY2Nl
c3MgdGhlbS4KK3N0cnVjdCBTdWl0ZUFwaVJlc29sdmVyIDogVCB7CisgIC8vIHRlc3Rpbmc6OlRl
c3QgaXMgb25seSBmb3J3YXJkIGRlY2xhcmVkIGF0IHRoaXMgcG9pbnQuIFNvIHdlIG1ha2UgaXQg
YQorICAvLyBkZXBlbmRlbmQgY2xhc3MgZm9yIHRoZSBjb21waWxlciB0byBiZSBPSyB3aXRoIGl0
LgorICB1c2luZyBUZXN0ID0KKyAgICAgIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c2l6ZW9m
KFQpICE9IDAsIDo6dGVzdGluZzo6VGVzdCwgdm9pZD46OnR5cGU7CisKKyAgc3RhdGljIFNldFVw
VGVhckRvd25TdWl0ZUZ1bmNUeXBlIEdldFNldFVwQ2FzZU9yU3VpdGUoY29uc3QgY2hhciogZmls
ZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBsaW5lX251bSkgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KKyAgICBTZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X2Nhc2VfZnAgPQor
ICAgICAgICBHZXROb3REZWZhdWx0T3JOdWxsKCZUOjpTZXRVcFRlc3RDYXNlLCAmVGVzdDo6U2V0
VXBUZXN0Q2FzZSk7CisgICAgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgdGVzdF9zdWl0ZV9m
cCA9CisgICAgICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlNldFVwVGVzdFN1aXRlLCAmVGVz
dDo6U2V0VXBUZXN0U3VpdGUpOworCisgICAgR1RFU1RfQ0hFQ0tfKCF0ZXN0X2Nhc2VfZnAgfHwg
IXRlc3Rfc3VpdGVfZnApCisgICAgICAgIDw8ICJUZXN0IGNhbiBub3QgcHJvdmlkZSBib3RoIFNl
dFVwVGVzdFN1aXRlIGFuZCBTZXRVcFRlc3RDYXNlLCBwbGVhc2UgIgorICAgICAgICAgICAibWFr
ZSBzdXJlIHRoZXJlIGlzIG9ubHkgb25lIHByZXNlbnQgYXQgIgorICAgICAgICA8PCBmaWxlbmFt
ZSA8PCAiOiIgPDwgbGluZV9udW07CisKKyAgICByZXR1cm4gdGVzdF9jYXNlX2ZwICE9IG51bGxw
dHIgPyB0ZXN0X2Nhc2VfZnAgOiB0ZXN0X3N1aXRlX2ZwOworI2Vsc2UKKyAgICAodm9pZCkoZmls
ZW5hbWUpOworICAgICh2b2lkKShsaW5lX251bSk7CisgICAgcmV0dXJuICZUOjpTZXRVcFRlc3RT
dWl0ZTsKKyNlbmRpZgorICB9CisKKyAgc3RhdGljIFNldFVwVGVhckRvd25TdWl0ZUZ1bmNUeXBl
IEdldFRlYXJEb3duQ2FzZU9yU3VpdGUoY29uc3QgY2hhciogZmlsZW5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5l
X251bSkgeworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKyAgICBT
ZXRVcFRlYXJEb3duU3VpdGVGdW5jVHlwZSB0ZXN0X2Nhc2VfZnAgPQorICAgICAgICBHZXROb3RE
ZWZhdWx0T3JOdWxsKCZUOjpUZWFyRG93blRlc3RDYXNlLCAmVGVzdDo6VGVhckRvd25UZXN0Q2Fz
ZSk7CisgICAgU2V0VXBUZWFyRG93blN1aXRlRnVuY1R5cGUgdGVzdF9zdWl0ZV9mcCA9CisgICAg
ICAgIEdldE5vdERlZmF1bHRPck51bGwoJlQ6OlRlYXJEb3duVGVzdFN1aXRlLCAmVGVzdDo6VGVh
ckRvd25UZXN0U3VpdGUpOworCisgICAgR1RFU1RfQ0hFQ0tfKCF0ZXN0X2Nhc2VfZnAgfHwgIXRl
c3Rfc3VpdGVfZnApCisgICAgICAgIDw8ICJUZXN0IGNhbiBub3QgcHJvdmlkZSBib3RoIFRlYXJE
b3duVGVzdFN1aXRlIGFuZCBUZWFyRG93blRlc3RDYXNlLCIKKyAgICAgICAgICAgIiBwbGVhc2Ug
bWFrZSBzdXJlIHRoZXJlIGlzIG9ubHkgb25lIHByZXNlbnQgYXQiCisgICAgICAgIDw8IGZpbGVu
YW1lIDw8ICI6IiA8PCBsaW5lX251bTsKKworICAgIHJldHVybiB0ZXN0X2Nhc2VfZnAgIT0gbnVs
bHB0ciA/IHRlc3RfY2FzZV9mcCA6IHRlc3Rfc3VpdGVfZnA7CisjZWxzZQorICAgICh2b2lkKShm
aWxlbmFtZSk7CisgICAgKHZvaWQpKGxpbmVfbnVtKTsKKyAgICByZXR1cm4gJlQ6OlRlYXJEb3du
VGVzdFN1aXRlOworI2VuZGlmCisgIH0KK307CisKIC8vIENyZWF0ZXMgYSBuZXcgVGVzdEluZm8g
b2JqZWN0IGFuZCByZWdpc3RlcnMgaXQgd2l0aCBHb29nbGUgVGVzdDsKIC8vIHJldHVybnMgdGhl
IGNyZWF0ZWQgb2JqZWN0LgogLy8KIC8vIEFyZ3VtZW50czoKIC8vCi0vLyAgIHRlc3RfY2FzZV9u
YW1lOiAgIG5hbWUgb2YgdGhlIHRlc3QgY2FzZQorLy8gICB0ZXN0X3N1aXRlX25hbWU6ICBuYW1l
IG9mIHRoZSB0ZXN0IHN1aXRlCiAvLyAgIG5hbWU6ICAgICAgICAgICAgIG5hbWUgb2YgdGhlIHRl
c3QKLS8vICAgdHlwZV9wYXJhbSAgICAgICAgdGhlIG5hbWUgb2YgdGhlIHRlc3QncyB0eXBlIHBh
cmFtZXRlciwgb3IgTlVMTCBpZgorLy8gICB0eXBlX3BhcmFtOiAgICAgICB0aGUgbmFtZSBvZiB0
aGUgdGVzdCdzIHR5cGUgcGFyYW1ldGVyLCBvciBOVUxMIGlmCiAvLyAgICAgICAgICAgICAgICAg
ICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4KLS8v
ICAgdmFsdWVfcGFyYW0gICAgICAgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdGVzdCdzIHZh
bHVlIHBhcmFtZXRlciwKKy8vICAgdmFsdWVfcGFyYW06ICAgICAgdGV4dCByZXByZXNlbnRhdGlv
biBvZiB0aGUgdGVzdCdzIHZhbHVlIHBhcmFtZXRlciwKIC8vICAgICAgICAgICAgICAgICAgICAg
b3IgTlVMTCBpZiB0aGlzIGlzIG5vdCBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgogLy8gICBj
b2RlX2xvY2F0aW9uOiAgICBjb2RlIGxvY2F0aW9uIHdoZXJlIHRoZSB0ZXN0IGlzIGRlZmluZWQK
IC8vICAgZml4dHVyZV9jbGFzc19pZDogSUQgb2YgdGhlIHRlc3QgZml4dHVyZSBjbGFzcwotLy8g
ICBzZXRfdXBfdGM6ICAgICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAg
dGhlIHRlc3QgY2FzZQotLy8gICB0ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBmdW5j
dGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQorLy8gICBzZXRfdXBfdGM6ICAgICAg
ICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKy8v
ICAgdGVhcl9kb3duX3RjOiAgICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBk
b3duIHRoZSB0ZXN0IHN1aXRlCiAvLyAgIGZhY3Rvcnk6ICAgICAgICAgIHBvaW50ZXIgdG8gdGhl
IGZhY3RvcnkgdGhhdCBjcmVhdGVzIGEgdGVzdCBvYmplY3QuCiAvLyAgICAgICAgICAgICAgICAg
ICAgIFRoZSBuZXdseSBjcmVhdGVkIFRlc3RJbmZvIGluc3RhbmNlIHdpbGwgYXNzdW1lCiAvLyAg
ICAgICAgICAgICAgICAgICAgIG93bmVyc2hpcCBvZiB0aGUgZmFjdG9yeSBvYmplY3QuCiBHVEVT
VF9BUElfIFRlc3RJbmZvKiBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKLSAgICBjb25zdCBjaGFy
KiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICBjb25zdCBjaGFyKiBuYW1lLAotICAgIGNvbnN0IGNoYXIq
IHR5cGVfcGFyYW0sCi0gICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0sCi0gICAgQ29kZUxvY2F0
aW9uIGNvZGVfbG9jYXRpb24sCi0gICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0gICAgU2V0
VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgIFRlYXJEb3duVGVzdENhc2VGdW5jIHRlYXJf
ZG93bl90YywKLSAgICBUZXN0RmFjdG9yeUJhc2UqIGZhY3RvcnkpOworICAgIGNvbnN0IGNoYXIq
IHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJh
bSwKKyAgICBjb25zdCBjaGFyKiB2YWx1ZV9wYXJhbSwgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRp
b24sCisgICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsIFNldFVwVGVzdFN1aXRlRnVuYyBzZXRf
dXBfdGMsCisgICAgVGVhckRvd25UZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YywgVGVzdEZhY3Rv
cnlCYXNlKiBmYWN0b3J5KTsKIAogLy8gSWYgKnBzdHIgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHBy
ZWZpeCwgbW9kaWZpZXMgKnBzdHIgdG8gYmUgcmlnaHQKIC8vIHBhc3QgdGhlIHByZWZpeCBhbmQg
cmV0dXJucyB0cnVlOyBvdGhlcndpc2UgbGVhdmVzICpwc3RyIHVuY2hhbmdlZAogLy8gYW5kIHJl
dHVybnMgZmFsc2UuICBOb25lIG9mIHBzdHIsICpwc3RyLCBhbmQgcHJlZml4IGNhbiBiZSBOVUxM
LgogR1RFU1RfQVBJXyBib29sIFNraXBQcmVmaXgoY29uc3QgY2hhciogcHJlZml4LCBjb25zdCBj
aGFyKiogcHN0cik7CiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQ
RURfVEVTVF9QCi0KIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKDQyNTEgXAogLyog
Y2xhc3MgQSBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8gYmUgdXNlZCBieSBjbGllbnRz
IG9mIGNsYXNzIEIgKi8pCiAKLS8vIFN0YXRlIG9mIHRoZSBkZWZpbml0aW9uIG9mIGEgdHlwZS1w
YXJhbWV0ZXJpemVkIHRlc3QgY2FzZS4KLWNsYXNzIEdURVNUX0FQSV8gVHlwZWRUZXN0Q2FzZVBT
dGF0ZSB7CisvLyBTdGF0ZSBvZiB0aGUgZGVmaW5pdGlvbiBvZiBhIHR5cGUtcGFyYW1ldGVyaXpl
ZCB0ZXN0IHN1aXRlLgorY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSB7CiAg
cHVibGljOgotICBUeXBlZFRlc3RDYXNlUFN0YXRlKCkgOiByZWdpc3RlcmVkXyhmYWxzZSkge30K
KyAgVHlwZWRUZXN0U3VpdGVQU3RhdGUoKSA6IHJlZ2lzdGVyZWRfKGZhbHNlKSB7fQogCiAgIC8v
IEFkZHMgdGhlIGdpdmVuIHRlc3QgbmFtZSB0byBkZWZpbmVkX3Rlc3RfbmFtZXNfIGFuZCByZXR1
cm4gdHJ1ZQotICAvLyBpZiB0aGUgdGVzdCBjYXNlIGhhc24ndCBiZWVuIHJlZ2lzdGVyZWQ7IG90
aGVyd2lzZSBhYm9ydHMgdGhlCisgIC8vIGlmIHRoZSB0ZXN0IHN1aXRlIGhhc24ndCBiZWVuIHJl
Z2lzdGVyZWQ7IG90aGVyd2lzZSBhYm9ydHMgdGhlCiAgIC8vIHByb2dyYW0uCiAgIGJvb2wgQWRk
VGVzdE5hbWUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGNhc2VfbmFt
ZSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X25hbWUpIHsKICAgICBpZiAo
cmVnaXN0ZXJlZF8pIHsKLSAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgVGVzdCAlcyBtdXN0IGJl
IGRlZmluZWQgYmVmb3JlICIKLSAgICAgICAgICAgICAgIlJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FT
RV9QKCVzLCAuLi4pLlxuIiwKKyAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAi
JXMgVGVzdCAlcyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlICIKKyAgICAgICAgICAgICAgIlJFR0lT
VEVSX1RZUEVEX1RFU1RfU1VJVEVfUCglcywgLi4uKS5cbiIsCiAgICAgICAgICAgICAgIEZvcm1h
dEZpbGVMb2NhdGlvbihmaWxlLCBsaW5lKS5jX3N0cigpLCB0ZXN0X25hbWUsIGNhc2VfbmFtZSk7
CiAgICAgICBmZmx1c2goc3RkZXJyKTsKICAgICAgIHBvc2l4OjpBYm9ydCgpOwpAQCAtNTcxLDgg
KzYyOSw5IEBAIGNsYXNzIEdURVNUX0FQSV8gVHlwZWRUZXN0Q2FzZVBTdGF0ZSB7CiAgIC8vIFZl
cmlmaWVzIHRoYXQgcmVnaXN0ZXJlZF90ZXN0cyBtYXRjaCB0aGUgdGVzdCBuYW1lcyBpbgogICAv
LyBkZWZpbmVkX3Rlc3RfbmFtZXNfOyByZXR1cm5zIHJlZ2lzdGVyZWRfdGVzdHMgaWYgc3VjY2Vz
c2Z1bCwgb3IKICAgLy8gYWJvcnRzIHRoZSBwcm9ncmFtIG90aGVyd2lzZS4KLSAgY29uc3QgY2hh
ciogVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKLSAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGlu
dCBsaW5lLCBjb25zdCBjaGFyKiByZWdpc3RlcmVkX3Rlc3RzKTsKKyAgY29uc3QgY2hhciogVmVy
aWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcyhjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50
IGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogcmVnaXN0ZXJlZF90ZXN0cyk7CiAKICBwcml2YXRlOgogICB0eXBlZGVmIDo6c3RkOjptYXA8
c3RkOjpzdHJpbmcsIENvZGVMb2NhdGlvbj4gUmVnaXN0ZXJlZFRlc3RzTWFwOwpAQCAtNTgxLDE0
ICs2NDAsMTkgQEAgY2xhc3MgR1RFU1RfQVBJXyBUeXBlZFRlc3RDYXNlUFN0YXRlIHsKICAgUmVn
aXN0ZXJlZFRlc3RzTWFwIHJlZ2lzdGVyZWRfdGVzdHNfOwogfTsKIAorLy8gIExlZ2FjeSBBUEkg
aXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9M
RUdBQ1lfVEVTVF9DQVNFQVBJXwordXNpbmcgVHlwZWRUZXN0Q2FzZVBTdGF0ZSA9IFR5cGVkVGVz
dFN1aXRlUFN0YXRlOworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAogLy8g
U2tpcHMgdG8gdGhlIGZpcnN0IG5vbi1zcGFjZSBjaGFyIGFmdGVyIHRoZSBmaXJzdCBjb21tYSBp
biAnc3RyJzsKIC8vIHJldHVybnMgTlVMTCBpZiBubyBjb21tYSBpcyBmb3VuZCBpbiAnc3RyJy4K
IGlubGluZSBjb25zdCBjaGFyKiBTa2lwQ29tbWEoY29uc3QgY2hhciogc3RyKSB7CiAgIGNvbnN0
IGNoYXIqIGNvbW1hID0gc3RyY2hyKHN0ciwgJywnKTsKLSAgaWYgKGNvbW1hID09IE5VTEwpIHsK
LSAgICByZXR1cm4gTlVMTDsKKyAgaWYgKGNvbW1hID09IG51bGxwdHIpIHsKKyAgICByZXR1cm4g
bnVsbHB0cjsKICAgfQogICB3aGlsZSAoSXNTcGFjZSgqKCsrY29tbWEpKSkge30KICAgcmV0dXJu
IGNvbW1hOwpAQCAtNTk4LDcgKzY2Miw3IEBAIGlubGluZSBjb25zdCBjaGFyKiBTa2lwQ29tbWEo
Y29uc3QgY2hhciogc3RyKSB7CiAvLyB0aGUgZW50aXJlIHN0cmluZyBpZiBpdCBjb250YWlucyBu
byBjb21tYS4KIGlubGluZSBzdGQ6OnN0cmluZyBHZXRQcmVmaXhVbnRpbENvbW1hKGNvbnN0IGNo
YXIqIHN0cikgewogICBjb25zdCBjaGFyKiBjb21tYSA9IHN0cmNocihzdHIsICcsJyk7Ci0gIHJl
dHVybiBjb21tYSA9PSBOVUxMID8gc3RyIDogc3RkOjpzdHJpbmcoc3RyLCBjb21tYSk7CisgIHJl
dHVybiBjb21tYSA9PSBudWxscHRyID8gc3RyIDogc3RkOjpzdHJpbmcoc3RyLCBjb21tYSk7CiB9
CiAKIC8vIFNwbGl0cyBhIGdpdmVuIHN0cmluZyBvbiBhIGdpdmVuIGRlbGltaXRlciwgcG9wdWxh
dGluZyBhIGdpdmVuCkBAIC02MjEsNyArNjg1LDcgQEAgc3RydWN0IE5hbWVHZW5lcmF0b3JTZWxl
Y3RvciB7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTmFtZUdlbmVyYXRvcj4KLXZvaWQgR2Vu
ZXJhdGVOYW1lc1JlY3Vyc2l2ZWx5KFR5cGVzMCwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+Kiwg
aW50KSB7fQordm9pZCBHZW5lcmF0ZU5hbWVzUmVjdXJzaXZlbHkoaW50ZXJuYWw6Ok5vbmUsIHN0
ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiosIGludCkge30KIAogdGVtcGxhdGUgPHR5cGVuYW1lIE5h
bWVHZW5lcmF0b3IsIHR5cGVuYW1lIFR5cGVzPgogdm9pZCBHZW5lcmF0ZU5hbWVzUmVjdXJzaXZl
bHkoVHlwZXMsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiogcmVzdWx0LCBpbnQgaSkgewpAQCAt
NjQ4LDcgKzcxMiw3IEBAIHRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gRml4dHVyZSwgY2xhc3Mg
VGVzdFNlbCwgdHlwZW5hbWUgVHlwZXM+CiBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3Qgewog
IHB1YmxpYzoKICAgLy8gJ2luZGV4JyBpcyB0aGUgaW5kZXggb2YgdGhlIHRlc3QgaW4gdGhlIHR5
cGUgbGlzdCAnVHlwZXMnCi0gIC8vIHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9UWVBFRF9URVNU
X0NBU0VfUChQcmVmaXgsIFRlc3RDYXNlLAorICAvLyBzcGVjaWZpZWQgaW4gSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9TVUlURV9QKFByZWZpeCwgVGVzdFN1aXRlLAogICAvLyBUeXBlcykuICBWYWxp
ZCB2YWx1ZXMgZm9yICdpbmRleCcgYXJlIFswLCBOIC0gMV0gd2hlcmUgTiBpcyB0aGUKICAgLy8g
bGVuZ3RoIG9mIFR5cGVzLgogICBzdGF0aWMgYm9vbCBSZWdpc3Rlcihjb25zdCBjaGFyKiBwcmVm
aXgsIGNvbnN0IENvZGVMb2NhdGlvbiYgY29kZV9sb2NhdGlvbiwKQEAgLTY2MywxMyArNzI3LDE3
IEBAIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdCB7CiAgICAgLy8gbGlzdC4KICAgICBNYWtl
QW5kUmVnaXN0ZXJUZXN0SW5mbygKICAgICAgICAgKHN0ZDo6c3RyaW5nKHByZWZpeCkgKyAocHJl
Zml4WzBdID09ICdcMCcgPyAiIiA6ICIvIikgKyBjYXNlX25hbWUgKwotICAgICAgICAgIi8iICsg
dHlwZV9uYW1lc1tpbmRleF0pCisgICAgICAgICAiLyIgKyB0eXBlX25hbWVzW3N0YXRpY19jYXN0
PHNpemVfdD4oaW5kZXgpXSkKICAgICAgICAgICAgIC5jX3N0cigpLAogICAgICAgICBTdHJpcFRy
YWlsaW5nU3BhY2VzKEdldFByZWZpeFVudGlsQ29tbWEodGVzdF9uYW1lcykpLmNfc3RyKCksCiAg
ICAgICAgIEdldFR5cGVOYW1lPFR5cGU+KCkuY19zdHIoKSwKLSAgICAgICAgTlVMTCwgIC8vIE5v
IHZhbHVlIHBhcmFtZXRlci4KLSAgICAgICAgY29kZV9sb2NhdGlvbiwgR2V0VHlwZUlkPEZpeHR1
cmVDbGFzcz4oKSwgVGVzdENsYXNzOjpTZXRVcFRlc3RDYXNlLAotICAgICAgICBUZXN0Q2xhc3M6
OlRlYXJEb3duVGVzdENhc2UsIG5ldyBUZXN0RmFjdG9yeUltcGw8VGVzdENsYXNzPik7CisgICAg
ICAgIG51bGxwdHIsICAvLyBObyB2YWx1ZSBwYXJhbWV0ZXIuCisgICAgICAgIGNvZGVfbG9jYXRp
b24sIEdldFR5cGVJZDxGaXh0dXJlQ2xhc3M+KCksCisgICAgICAgIFN1aXRlQXBpUmVzb2x2ZXI8
VGVzdENsYXNzPjo6R2V0U2V0VXBDYXNlT3JTdWl0ZSgKKyAgICAgICAgICAgIGNvZGVfbG9jYXRp
b24uZmlsZS5jX3N0cigpLCBjb2RlX2xvY2F0aW9uLmxpbmUpLAorICAgICAgICBTdWl0ZUFwaVJl
c29sdmVyPFRlc3RDbGFzcz46OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoCisgICAgICAgICAgICBj
b2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwgY29kZV9sb2NhdGlvbi5saW5lKSwKKyAgICAgICAg
bmV3IFRlc3RGYWN0b3J5SW1wbDxUZXN0Q2xhc3M+KTsKIAogICAgIC8vIE5leHQsIHJlY3Vyc2Vz
IChhdCBjb21waWxlIHRpbWUpIHdpdGggdGhlIHRhaWwgb2YgdGhlIHR5cGUgbGlzdC4KICAgICBy
ZXR1cm4gVHlwZVBhcmFtZXRlcml6ZWRUZXN0PEZpeHR1cmUsIFRlc3RTZWwsCkBAIC02ODQsNyAr
NzUyLDcgQEAgY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0IHsKIAogLy8gVGhlIGJhc2UgY2Fz
ZSBmb3IgdGhlIGNvbXBpbGUgdGltZSByZWN1cnNpb24uCiB0ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIEZpeHR1cmUsIGNsYXNzIFRlc3RTZWw+Ci1jbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8
Rml4dHVyZSwgVGVzdFNlbCwgVHlwZXMwPiB7CitjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3Q8
Rml4dHVyZSwgVGVzdFNlbCwgaW50ZXJuYWw6Ok5vbmU+IHsKICBwdWJsaWM6CiAgIHN0YXRpYyBi
b29sIFJlZ2lzdGVyKGNvbnN0IGNoYXIqIC8qcHJlZml4Ki8sIGNvbnN0IENvZGVMb2NhdGlvbiYs
CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIC8qY2FzZV9uYW1lKi8sIGNvbnN0
IGNoYXIqIC8qdGVzdF9uYW1lcyovLApAQCAtNjk1LDE4ICs3NjMsMjQgQEAgY2xhc3MgVHlwZVBh
cmFtZXRlcml6ZWRUZXN0PEZpeHR1cmUsIFRlc3RTZWwsIFR5cGVzMD4gewogICB9CiB9OwogCi0v
LyBUeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlPEZpeHR1cmUsIFRlc3RzLCBUeXBlcz46OlJlZ2lz
dGVyKCkKK0dURVNUX0FQSV8gdm9pZCBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
KGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKTsKK0dU
RVNUX0FQSV8gdm9pZCBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5zdGFudGlh
dGlvbigKKyAgICBjb25zdCBjaGFyKiBjYXNlX25hbWUpOworCisvLyBUeXBlUGFyYW1ldGVyaXpl
ZFRlc3RTdWl0ZTxGaXh0dXJlLCBUZXN0cywgVHlwZXM+OjpSZWdpc3RlcigpCiAvLyByZWdpc3Rl
cnMgKmFsbCBjb21iaW5hdGlvbnMqIG9mICdUZXN0cycgYW5kICdUeXBlcycgd2l0aCBHb29nbGUK
IC8vIFRlc3QuICBUaGUgcmV0dXJuIHZhbHVlIGlzIGluc2lnbmlmaWNhbnQgLSB3ZSBqdXN0IG5l
ZWQgdG8gcmV0dXJuCiAvLyBzb21ldGhpbmcgc3VjaCB0aGF0IHdlIGNhbiBjYWxsIHRoaXMgZnVu
Y3Rpb24gaW4gYSBuYW1lc3BhY2Ugc2NvcGUuCiB0ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIEZp
eHR1cmUsIHR5cGVuYW1lIFRlc3RzLCB0eXBlbmFtZSBUeXBlcz4KLWNsYXNzIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdENhc2UgeworY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUgewogIHB1
YmxpYzoKICAgc3RhdGljIGJvb2wgUmVnaXN0ZXIoY29uc3QgY2hhciogcHJlZml4LCBDb2RlTG9j
YXRpb24gY29kZV9sb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHlwZWRU
ZXN0Q2FzZVBTdGF0ZSogc3RhdGUsIGNvbnN0IGNoYXIqIGNhc2VfbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVHlwZWRUZXN0U3VpdGVQU3RhdGUqIHN0YXRlLCBjb25zdCBjaGFy
KiBjYXNlX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3RfbmFt
ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiYgdHlwZV9uYW1lcyA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZU5hbWVz
PERlZmF1bHROYW1lR2VuZXJhdG9yLCBUeXBlcz4oKSkgeworICAgIFJlZ2lzdGVyVHlwZVBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKGNhc2VfbmFtZSk7CiAgICAgc3RkOjpzdHJp
bmcgdGVzdF9uYW1lID0gU3RyaXBUcmFpbGluZ1NwYWNlcygKICAgICAgICAgR2V0UHJlZml4VW50
aWxDb21tYSh0ZXN0X25hbWVzKSk7CiAgICAgaWYgKCFzdGF0ZS0+VGVzdEV4aXN0cyh0ZXN0X25h
bWUpKSB7CkBAIC03MjYsMjAgKzgwMCwyMCBAQCBjbGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RD
YXNlIHsKICAgICAgICAgcHJlZml4LCB0ZXN0X2xvY2F0aW9uLCBjYXNlX25hbWUsIHRlc3RfbmFt
ZXMsIDAsIHR5cGVfbmFtZXMpOwogCiAgICAgLy8gTmV4dCwgcmVjdXJzZXMgKGF0IGNvbXBpbGUg
dGltZSkgd2l0aCB0aGUgdGFpbCBvZiB0aGUgdGVzdCBsaXN0LgotICAgIHJldHVybiBUeXBlUGFy
YW1ldGVyaXplZFRlc3RDYXNlPEZpeHR1cmUsIHR5cGVuYW1lIFRlc3RzOjpUYWlsLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVzPjo6UmVnaXN0ZXIocHJlZml4LCBj
b2RlX2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdGUsIGNhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXBDb21tYSh0ZXN0X25hbWVzKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFt
ZXMpOworICAgIHJldHVybiBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTxGaXh0dXJlLCB0eXBl
bmFtZSBUZXN0czo6VGFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VHlwZXM+OjpSZWdpc3RlcihwcmVmaXgsIGNvZGVfbG9jYXRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUsIGNhc2VfbmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
a2lwQ29tbWEodGVzdF9uYW1lcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lcyk7CiAgIH0KIH07CiAKIC8vIFRoZSBiYXNl
IGNhc2UgZm9yIHRoZSBjb21waWxlIHRpbWUgcmVjdXJzaW9uLgogdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBGaXh0dXJlLCB0eXBlbmFtZSBUeXBlcz4KLWNsYXNzIFR5cGVQYXJhbWV0ZXJpemVk
VGVzdENhc2U8Rml4dHVyZSwgVGVtcGxhdGVzMCwgVHlwZXM+IHsKK2NsYXNzIFR5cGVQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlPEZpeHR1cmUsIGludGVybmFsOjpOb25lLCBUeXBlcz4gewogIHB1Ymxp
YzoKICAgc3RhdGljIGJvb2wgUmVnaXN0ZXIoY29uc3QgY2hhciogLypwcmVmaXgqLywgY29uc3Qg
Q29kZUxvY2F0aW9uJiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHlwZWRUZXN0Q2Fz
ZVBTdGF0ZSogLypzdGF0ZSovLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlZFRl
c3RTdWl0ZVBTdGF0ZSogLypzdGF0ZSovLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiAvKmNhc2VfbmFtZSovLCBjb25zdCBjaGFyKiAvKnRlc3RfbmFtZXMqLywKICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiA9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4oKSAvKnR5cGVfbmFt
ZXMqLykgewpAQCAtNzQ3LDggKzgyMSw2IEBAIGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENh
c2U8Rml4dHVyZSwgVGVtcGxhdGVzMCwgVHlwZXM+IHsKICAgfQogfTsKIAotI2VuZGlmICAvLyBH
VEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIC8vIFJldHVy
bnMgdGhlIGN1cnJlbnQgT1Mgc3RhY2sgdHJhY2UgYXMgYW4gc3RkOjpzdHJpbmcuCiAvLwogLy8g
VGhlIG1heGltdW0gbnVtYmVyIG9mIHN0YWNrIGZyYW1lcyB0byBiZSBpbmNsdWRlZCBpcyBzcGVj
aWZpZWQgYnkKQEAgLTc4MCw2ICs4NTIsMTYgQEAgc3RydWN0IEdURVNUX0FQSV8gQ29uc3RDaGFy
UHRyIHsKICAgY29uc3QgY2hhciogdmFsdWU7CiB9OwogCisvLyBIZWxwZXIgZm9yIGRlY2xhcmlu
ZyBzdGQ6OnN0cmluZyB3aXRoaW4gJ2lmJyBzdGF0ZW1lbnQKKy8vIGluIHByZSBDKysxNyBidWls
ZCBlbnZpcm9ubWVudC4KK3N0cnVjdCBUcnVlV2l0aFN0cmluZyB7CisgIFRydWVXaXRoU3RyaW5n
KCkgPSBkZWZhdWx0OworICBleHBsaWNpdCBUcnVlV2l0aFN0cmluZyhjb25zdCBjaGFyKiBzdHIp
IDogdmFsdWUoc3RyKSB7fQorICBleHBsaWNpdCBUcnVlV2l0aFN0cmluZyhjb25zdCBzdGQ6OnN0
cmluZyYgc3RyKSA6IHZhbHVlKHN0cikge30KKyAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgc3RkOjpzdHJpbmcgdmFsdWU7Cit9OworCiAvLyBBIHNp
bXBsZSBMaW5lYXIgQ29uZ3J1ZW50aWFsIEdlbmVyYXRvciBmb3IgZ2VuZXJhdGluZyByYW5kb20K
IC8vIG51bWJlcnMgd2l0aCBhIHVuaWZvcm0gZGlzdHJpYnV0aW9uLiAgVW5saWtlIHJhbmQoKSBh
bmQgc3JhbmQoKSwgaXQKIC8vIGRvZXNuJ3QgdXNlIGdsb2JhbCBzdGF0ZSAoYW5kIHRoZXJlZm9y
ZSBjYW4ndCBpbnRlcmZlcmUgd2l0aCB1c2VyCkBAIC03ODcsMTM1ICs4NjksNTMgQEAgc3RydWN0
IEdURVNUX0FQSV8gQ29uc3RDaGFyUHRyIHsKIC8vIGJ1dCBpdCdzIGdvb2QgZW5vdWdoIGZvciBv
dXIgcHVycG9zZXMuCiBjbGFzcyBHVEVTVF9BUElfIFJhbmRvbSB7CiAgcHVibGljOgotICBzdGF0
aWMgY29uc3QgVUludDMyIGtNYXhSYW5nZSA9IDF1IDw8IDMxOworICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga01heFJhbmdlID0gMXUgPDwgMzE7CiAKLSAgZXhwbGljaXQgUmFuZG9tKFVJbnQzMiBz
ZWVkKSA6IHN0YXRlXyhzZWVkKSB7fQorICBleHBsaWNpdCBSYW5kb20odWludDMyX3Qgc2VlZCkg
OiBzdGF0ZV8oc2VlZCkge30KIAotICB2b2lkIFJlc2VlZChVSW50MzIgc2VlZCkgeyBzdGF0ZV8g
PSBzZWVkOyB9CisgIHZvaWQgUmVzZWVkKHVpbnQzMl90IHNlZWQpIHsgc3RhdGVfID0gc2VlZDsg
fQogCiAgIC8vIEdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgZnJvbSBbMCwgcmFuZ2UpLiAgQ3Jh
c2hlcyBpZiAncmFuZ2UnIGlzCiAgIC8vIDAgb3IgZ3JlYXRlciB0aGFuIGtNYXhSYW5nZS4KLSAg
VUludDMyIEdlbmVyYXRlKFVJbnQzMiByYW5nZSk7CisgIHVpbnQzMl90IEdlbmVyYXRlKHVpbnQz
Ml90IHJhbmdlKTsKIAogIHByaXZhdGU6Ci0gIFVJbnQzMiBzdGF0ZV87CisgIHVpbnQzMl90IHN0
YXRlXzsKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhSYW5kb20pOwogfTsKIAot
Ly8gRGVmaW5pbmcgYSB2YXJpYWJsZSBvZiB0eXBlIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPFQx
LCBUMj4gd2lsbCBjYXVzZSBhCi0vLyBjb21waWxlciBlcnJvciBpZmYgVDEgYW5kIFQyIGFyZSBk
aWZmZXJlbnQgdHlwZXMuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotc3Ry
dWN0IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
cnVjdCBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxULCBUPiB7Ci19OwotCi0vLyBSZW1vdmVzIHRo
ZSByZWZlcmVuY2UgZnJvbSBhIHR5cGUgaWYgaXQgaXMgYSByZWZlcmVuY2UgdHlwZSwKLS8vIG90
aGVyd2lzZSBsZWF2ZXMgaXQgdW5jaGFuZ2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcwotLy8gdHIx
OjpyZW1vdmVfcmVmZXJlbmNlLCB3aGljaCBpcyBub3Qgd2lkZWx5IGF2YWlsYWJsZSB5ZXQuCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSZW1vdmVSZWZlcmVuY2UgeyB0eXBlZGVmIFQg
dHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgUmVtb3Zl
UmVmZXJlbmNlPFQmPiB7IHR5cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9MSU5UCi0KLS8vIEEgaGFu
ZHkgd3JhcHBlciBhcm91bmQgUmVtb3ZlUmVmZXJlbmNlIHRoYXQgd29ya3Mgd2hlbiB0aGUgYXJn
dW1lbnQKLS8vIFQgZGVwZW5kcyBvbiB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLgotI2RlZmluZSBHVEVT
VF9SRU1PVkVfUkVGRVJFTkNFXyhUKSBcCi0gICAgdHlwZW5hbWUgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6UmVtb3ZlUmVmZXJlbmNlPFQ+Ojp0eXBlCisvLyBUdXJucyBjb25zdCBVJiwgVSYsIGNvbnN0
IFUsIGFuZCBVIGFsbCBpbnRvIFUuCisjZGVmaW5lIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5E
X0NPTlNUXyhUKSBcCisgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZT46OnR5cGUKIAotLy8gUmVtb3ZlcyBjb25zdCBmcm9t
IGEgdHlwZSBpZiBpdCBpcyBhIGNvbnN0IHR5cGUsIG90aGVyd2lzZSBsZWF2ZXMKLS8vIGl0IHVu
Y2hhbmdlZC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdHIxOjpyZW1vdmVfY29uc3QsIHdoaWNoIGlz
IG5vdAotLy8gd2lkZWx5IGF2YWlsYWJsZSB5ZXQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
cnVjdCBSZW1vdmVDb25zdCB7IHR5cGVkZWYgVCB0eXBlOyB9OyAgLy8gTk9MSU5UCisvLyBIYXNE
ZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1l
IGJvb2wgY29uc3RhbnQKKy8vIHRoYXQncyB0cnVlIGlmIGFuZCBvbmx5IGlmIFQgaGFzIG1ldGhv
ZHMgRGVidWdTdHJpbmcoKSBhbmQgU2hvcnREZWJ1Z1N0cmluZygpCisvLyB0aGF0IHJldHVybiBz
dGQ6OnN0cmluZy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFJlbW92ZUNvbnN0PGNv
bnN0IFQ+IHsgdHlwZWRlZiBUIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gTVNWQyA4LjAsIFN1
biBDKyssIGFuZCBJQk0gWEwgQysrIGhhdmUgYSBidWcgd2hpY2ggY2F1c2VzIHRoZSBhYm92ZQot
Ly8gZGVmaW5pdGlvbiB0byBmYWlsIHRvIHJlbW92ZSB0aGUgY29uc3QgaW4gJ2NvbnN0IGludFsz
XScgYW5kICdjb25zdAotLy8gY2hhclszXVs0XScuICBUaGUgZm9sbG93aW5nIHNwZWNpYWxpemF0
aW9uIHdvcmtzIGFyb3VuZCB0aGUgYnVnLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBO
Pgotc3RydWN0IFJlbW92ZUNvbnN0PGNvbnN0IFRbTl0+IHsKLSAgdHlwZWRlZiB0eXBlbmFtZSBS
ZW1vdmVDb25zdDxUPjo6dHlwZSB0eXBlW05dOwotfTsKLQotI2lmIGRlZmluZWQoX01TQ19WRVIp
ICYmIF9NU0NfVkVSIDwgMTQwMAotLy8gVGhpcyBpcyB0aGUgb25seSBzcGVjaWFsaXphdGlvbiB0
aGF0IGFsbG93cyBWQysrIDcuMSB0byByZW1vdmUgY29uc3QgaW4KLS8vICdjb25zdCBpbnRbM10g
YW5kICdjb25zdCBpbnRbM11bNF0nLiAgSG93ZXZlciwgaXQgY2F1c2VzIHRyb3VibGUgd2l0aCBH
Q0MKLS8vIGFuZCB0aHVzIG5lZWRzIHRvIGJlIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQuCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IE4+Ci1zdHJ1Y3QgUmVtb3ZlQ29uc3Q8VFtOXT4gewot
ICB0eXBlZGVmIHR5cGVuYW1lIFJlbW92ZUNvbnN0PFQ+Ojp0eXBlIHR5cGVbTl07Ci19OwotI2Vu
ZGlmCitjbGFzcyBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmcgeworIHByaXZhdGU6
CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBDPgorICBzdGF0aWMgYXV0byBDaGVja0RlYnVnU3RyaW5n
KEMqKSAtPiB0eXBlbmFtZSBzdGQ6OmlzX3NhbWU8CisgICAgICBzdGQ6OnN0cmluZywgZGVjbHR5
cGUoc3RkOjpkZWNsdmFsPGNvbnN0IEM+KCkuRGVidWdTdHJpbmcoKSk+Ojp0eXBlOworICB0ZW1w
bGF0ZSA8dHlwZW5hbWU+CisgIHN0YXRpYyBzdGQ6OmZhbHNlX3R5cGUgQ2hlY2tEZWJ1Z1N0cmlu
ZyguLi4pOwogCi0vLyBBIGhhbmR5IHdyYXBwZXIgYXJvdW5kIFJlbW92ZUNvbnN0IHRoYXQgd29y
a3Mgd2hlbiB0aGUgYXJndW1lbnQKLS8vIFQgZGVwZW5kcyBvbiB0ZW1wbGF0ZSBwYXJhbWV0ZXJz
LgotI2RlZmluZSBHVEVTVF9SRU1PVkVfQ09OU1RfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rp
bmc6OmludGVybmFsOjpSZW1vdmVDb25zdDxUPjo6dHlwZQorICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
Qz4KKyAgc3RhdGljIGF1dG8gQ2hlY2tTaG9ydERlYnVnU3RyaW5nKEMqKSAtPiB0eXBlbmFtZSBz
dGQ6OmlzX3NhbWU8CisgICAgICBzdGQ6OnN0cmluZywgZGVjbHR5cGUoc3RkOjpkZWNsdmFsPGNv
bnN0IEM+KCkuU2hvcnREZWJ1Z1N0cmluZygpKT46OnR5cGU7CisgIHRlbXBsYXRlIDx0eXBlbmFt
ZT4KKyAgc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSBDaGVja1Nob3J0RGVidWdTdHJpbmcoLi4uKTsK
IAotLy8gVHVybnMgY29uc3QgVSYsIFUmLCBjb25zdCBVLCBhbmQgVSBhbGwgaW50byBVLgotI2Rl
ZmluZSBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8oVCkgXAotICAgIEdURVNUX1JF
TU9WRV9DT05TVF8oR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV8oVCkpCisgIHVzaW5nIEhhc0RlYnVn
U3RyaW5nVHlwZSA9IGRlY2x0eXBlKENoZWNrRGVidWdTdHJpbmc8VD4obnVsbHB0cikpOworICB1
c2luZyBIYXNTaG9ydERlYnVnU3RyaW5nVHlwZSA9IGRlY2x0eXBlKENoZWNrU2hvcnREZWJ1Z1N0
cmluZzxUPihudWxscHRyKSk7CiAKLS8vIEltcGxpY2l0bHlDb252ZXJ0aWJsZTxGcm9tLCBUbz46
OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lIGJvb2wKLS8vIGNvbnN0YW50IHRoYXQncyB0cnVlIGlm
ZiB0eXBlIEZyb20gY2FuIGJlIGltcGxpY2l0bHkgY29udmVydGVkIHRvCi0vLyB0eXBlIFRvLgot
dGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgotY2xhc3MgSW1wbGljaXRseUNv
bnZlcnRpYmxlIHsKLSBwcml2YXRlOgotICAvLyBXZSBuZWVkIHRoZSBmb2xsb3dpbmcgaGVscGVy
IGZ1bmN0aW9ucyBvbmx5IGZvciB0aGVpciB0eXBlcy4KLSAgLy8gVGhleSBoYXZlIG5vIGltcGxl
bWVudGF0aW9ucy4KLQotICAvLyBNYWtlRnJvbSgpIGlzIGFuIGV4cHJlc3Npb24gd2hvc2UgdHlw
ZSBpcyBGcm9tLiAgV2UgY2Fubm90IHNpbXBseQotICAvLyB1c2UgRnJvbSgpLCBhcyB0aGUgdHlw
ZSBGcm9tIG1heSBub3QgaGF2ZSBhIHB1YmxpYyBkZWZhdWx0Ci0gIC8vIGNvbnN0cnVjdG9yLgot
ICBzdGF0aWMgdHlwZW5hbWUgQWRkUmVmZXJlbmNlPEZyb20+Ojp0eXBlIE1ha2VGcm9tKCk7Ci0K
LSAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgb3ZlcmxvYWRlZC4gIEdpdmVuIGFuIGV4cHJl
c3Npb24KLSAgLy8gSGVscGVyKHgpLCB0aGUgY29tcGlsZXIgd2lsbCBwaWNrIHRoZSBmaXJzdCB2
ZXJzaW9uIGlmIHggY2FuIGJlCi0gIC8vIGltcGxpY2l0bHkgY29udmVydGVkIHRvIHR5cGUgVG87
IG90aGVyd2lzZSBpdCB3aWxsIHBpY2sgdGhlCi0gIC8vIHNlY29uZCB2ZXJzaW9uLgotICAvLwot
ICAvLyBUaGUgZmlyc3QgdmVyc2lvbiByZXR1cm5zIGEgdmFsdWUgb2Ygc2l6ZSAxLCBhbmQgdGhl
IHNlY29uZAotICAvLyB2ZXJzaW9uIHJldHVybnMgYSB2YWx1ZSBvZiBzaXplIDIuICBUaGVyZWZv
cmUsIGJ5IGNoZWNraW5nIHRoZQotICAvLyBzaXplIG9mIEhlbHBlcih4KSwgd2hpY2ggY2FuIGJl
IGRvbmUgYXQgY29tcGlsZSB0aW1lLCB3ZSBjYW4gdGVsbAotICAvLyB3aGljaCB2ZXJzaW9uIG9m
IEhlbHBlcigpIGlzIHVzZWQsIGFuZCBoZW5jZSB3aGV0aGVyIHggY2FuIGJlCi0gIC8vIGltcGxp
Y2l0bHkgY29udmVydGVkIHRvIHR5cGUgVG8uCi0gIHN0YXRpYyBjaGFyIEhlbHBlcihUbyk7Ci0g
IHN0YXRpYyBjaGFyICgmSGVscGVyKC4uLikpWzJdOyAgLy8gTk9MSU5UCi0KLSAgLy8gV2UgaGF2
ZSB0byBwdXQgdGhlICdwdWJsaWMnIHNlY3Rpb24gYWZ0ZXIgdGhlICdwcml2YXRlJyBzZWN0aW9u
LAotICAvLyBvciBNU1ZDIHJlZnVzZXMgdG8gY29tcGlsZSB0aGUgY29kZS4KICBwdWJsaWM6Ci0j
aWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIEMrK0J1aWxkZXIgY2Fubm90IHVzZSBtZW1i
ZXIgb3ZlcmxvYWQgcmVzb2x1dGlvbiBkdXJpbmcgdGVtcGxhdGUKLSAgLy8gaW5zdGFudGlhdGlv
bi4gIFRoZSBzaW1wbGVzdCB3b3JrYXJvdW5kIGlzIHRvIHVzZSBpdHMgQysrMHggdHlwZSB0cmFp
dHMKLSAgLy8gZnVuY3Rpb25zIChDKytCdWlsZGVyIDIwMDkgYW5kIGFib3ZlIG9ubHkpLgotICBz
dGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IF9faXNfY29udmVydGlibGUoRnJvbSwgVG8pOwotI2Vs
c2UKLSAgLy8gTVNWQyB3YXJucyBhYm91dCBpbXBsaWNpdGx5IGNvbnZlcnRpbmcgZnJvbSBkb3Vi
bGUgdG8gaW50IGZvcgotICAvLyBwb3NzaWJsZSBsb3NzIG9mIGRhdGEsIHNvIHdlIG5lZWQgdG8g
dGVtcG9yYXJpbHkgZGlzYWJsZSB0aGUKLSAgLy8gd2FybmluZy4KLSAgR1RFU1RfRElTQUJMRV9N
U0NfV0FSTklOR1NfUFVTSF8oNDI0NCkKLSAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPQotICAg
ICAgc2l6ZW9mKEhlbHBlcihJbXBsaWNpdGx5Q29udmVydGlibGU6Ok1ha2VGcm9tKCkpKSA9PSAx
OwotICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkKLSNlbmRpZiAgLy8gX19CT1JM
QU5EQ19fCisgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9CisgICAgICBIYXNEZWJ1Z1N0
cmluZ1R5cGU6OnZhbHVlICYmIEhhc1Nob3J0RGVidWdTdHJpbmdUeXBlOjp2YWx1ZTsKIH07Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+Ci1jb25zdCBib29sIEltcGxpY2l0
bHlDb252ZXJ0aWJsZTxGcm9tLCBUbz46OnZhbHVlOwogCi0vLyBJc0FQcm90b2NvbE1lc3NhZ2U8
VD46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lIGJvb2wgY29uc3RhbnQgdGhhdCdzCi0vLyB0cnVl
IGlmZiBUIGlzIHR5cGUgUHJvdG9jb2xNZXNzYWdlLCBwcm90bzI6Ok1lc3NhZ2UsIG9yIGEgc3Vi
Y2xhc3MKLS8vIG9mIHRob3NlLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXNBUHJv
dG9jb2xNZXNzYWdlCi0gICAgOiBwdWJsaWMgYm9vbF9jb25zdGFudDwKLSAgSW1wbGljaXRseUNv
bnZlcnRpYmxlPGNvbnN0IFQqLCBjb25zdCA6OlByb3RvY29sTWVzc2FnZSo+Ojp2YWx1ZSB8fAot
ICBJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgVCosIGNvbnN0IDo6cHJvdG8yOjpNZXNzYWdl
Kj46OnZhbHVlPiB7Ci19OworY29uc3RleHByIGJvb2wgSGFzRGVidWdTdHJpbmdBbmRTaG9ydERl
YnVnU3RyaW5nPFQ+Ojp2YWx1ZTsKIAogLy8gV2hlbiB0aGUgY29tcGlsZXIgc2VlcyBleHByZXNz
aW9uIElzQ29udGFpbmVyVGVzdDxDPigwKSwgaWYgQyBpcyBhbgogLy8gU1RMLXN0eWxlIGNvbnRh
aW5lciBjbGFzcywgdGhlIGZpcnN0IG92ZXJsb2FkIG9mIElzQ29udGFpbmVyVGVzdApAQCAtOTQy
LDcgKzk0Miw2IEBAIHN0cnVjdCBJc0FQcm90b2NvbE1lc3NhZ2UKIC8vIElzQ29udGFpbmVyVGVz
dCh0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciopIGFuZAogLy8gSXNDb250YWluZXJUZXN0KC4u
LikgZG9lc24ndCB3b3JrIHdpdGggVmlzdWFsIEFnZSBDKysgYW5kIFN1biBDKysuCiB0eXBlZGVm
IGludCBJc0NvbnRhaW5lcjsKLSNpZiBHVEVTVF9MQU5HX0NYWDExCiB0ZW1wbGF0ZSA8Y2xhc3Mg
QywKICAgICAgICAgICBjbGFzcyBJdGVyYXRvciA9IGRlY2x0eXBlKDo6c3RkOjpkZWNsdmFsPGNv
bnN0IEMmPigpLmJlZ2luKCkpLAogICAgICAgICAgIGNsYXNzID0gZGVjbHR5cGUoOjpzdGQ6OmRl
Y2x2YWw8Y29uc3QgQyY+KCkuZW5kKCkpLApAQCAtOTUyLDE0ICs5NTEsNiBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgQywKIElzQ29udGFpbmVyIElzQ29udGFpbmVyVGVzdChpbnQgLyogZHVtbXkgKi8pIHsK
ICAgcmV0dXJuIDA7CiB9Ci0jZWxzZQotdGVtcGxhdGUgPGNsYXNzIEM+Ci1Jc0NvbnRhaW5lciBJ
c0NvbnRhaW5lclRlc3QoaW50IC8qIGR1bW15ICovLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGVuYW1lIEM6Oml0ZXJhdG9yKiAvKiBpdCAqLyA9IE5VTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3IqIC8qIGNvbnN0X2l0ICov
ID0gTlVMTCkgewotICByZXR1cm4gMDsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQog
CiB0eXBlZGVmIGNoYXIgSXNOb3RDb250YWluZXI7CiB0ZW1wbGF0ZSA8Y2xhc3MgQz4KQEAgLTk4
MCw0NyArOTcxLDMwIEBAIHN0cnVjdCBJc0hhc2hUYWJsZSB7CiAgIHN0YXRpYyBjaGFyIHRlc3Qo
Li4uKTsKIAogIHB1YmxpYzoKLSAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YodGVz
dDxUPigwLCAwKSkgPT0gc2l6ZW9mKGludCk7CisgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0g
c2l6ZW9mKHRlc3Q8VD4obnVsbHB0ciwgbnVsbHB0cikpID09IHNpemVvZihpbnQpOwogfTsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjb25zdCBib29sIElzSGFzaFRhYmxlPFQ+Ojp2YWx1ZTsK
IAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0cnVjdCBWb2lkVCB7Ci0gICAgdHlwZWRlZiB2b2lk
IHZhbHVlX3R5cGU7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSB2b2lk
Pgotc3RydWN0IEhhc1ZhbHVlVHlwZSA6IGZhbHNlX3R5cGUge307Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBIYXNWYWx1ZVR5cGU8VCwgVm9pZFQ8dHlwZW5hbWUgVDo6dmFsdWVfdHlw
ZT4gPiA6IHRydWVfdHlwZSB7Ci19OwotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQywKLSAgICAgICAg
ICBib29sID0gc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxDPigwKSkgPT0gc2l6ZW9mKElzQ29udGFp
bmVyKSwKLSAgICAgICAgICBib29sID0gSGFzVmFsdWVUeXBlPEM+Ojp2YWx1ZT4KKyAgICAgICAg
ICBib29sID0gc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxDPigwKSkgPT0gc2l6ZW9mKElzQ29udGFp
bmVyKT4KIHN0cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw7CiAKLXRlbXBsYXRlIDx0eXBl
bmFtZSBDLCBib29sIEhWPgotc3RydWN0IElzUmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCBmYWxz
ZSwgSFY+IDogcHVibGljIGZhbHNlX3R5cGUge307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KK3N0
cnVjdCBJc1JlY3Vyc2l2ZUNvbnRhaW5lckltcGw8QywgZmFsc2U+IDogcHVibGljIHN0ZDo6ZmFs
c2VfdHlwZSB7fTsKIAogLy8gU2luY2UgdGhlIElzUmVjdXJzaXZlQ29udGFpbmVySW1wbCBkZXBl
bmRzIG9uIHRoZSBJc0NvbnRhaW5lclRlc3Qgd2UgbmVlZCB0bwogLy8gb2JleSB0aGUgc2FtZSBp
bmNvbnNpc3RlbmNpZXMgYXMgdGhlIElzQ29udGFpbmVyVGVzdCwgbmFtZWx5IGNoZWNrIGlmCiAv
LyBzb21ldGhpbmcgaXMgYSBjb250YWluZXIgaXMgcmVseWluZyBvbiBvbmx5IGNvbnN0X2l0ZXJh
dG9yIGluIEMrKzExIGFuZAogLy8gaXMgcmVseWluZyBvbiBib3RoIGNvbnN0X2l0ZXJhdG9yIGFu
ZCBpdGVyYXRvciBvdGhlcndpc2UKIHRlbXBsYXRlIDx0eXBlbmFtZSBDPgotc3RydWN0IElzUmVj
dXJzaXZlQ29udGFpbmVySW1wbDxDLCB0cnVlLCBmYWxzZT4gOiBwdWJsaWMgZmFsc2VfdHlwZSB7
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIEM+Ci1zdHJ1Y3QgSXNSZWN1cnNpdmVDb250YWluZXJJ
bXBsPEMsIHRydWUsIHRydWU+IHsKLSAgI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSAgdHlwZWRlZiB0
eXBlbmFtZSBJdGVyYXRvclRyYWl0czx0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvcj46OnZhbHVl
X3R5cGUKLSAgICAgIHZhbHVlX3R5cGU7Ci0jZWxzZQotICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJh
dG9yVHJhaXRzPHR5cGVuYW1lIEM6Oml0ZXJhdG9yPjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOwot
I2VuZGlmCi0gIHR5cGVkZWYgaXNfc2FtZTx2YWx1ZV90eXBlLCBDPiB0eXBlOworc3RydWN0IElz
UmVjdXJzaXZlQ29udGFpbmVySW1wbDxDLCB0cnVlPiB7CisgIHVzaW5nIHZhbHVlX3R5cGUgPSBk
ZWNsdHlwZSgqc3RkOjpkZWNsdmFsPHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yPigpKTsKKyAg
dXNpbmcgdHlwZSA9CisgICAgICBzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29u
c3Q8CisgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5j
ZTx2YWx1ZV90eXBlPjo6dHlwZT46OnR5cGUsCisgICAgICAgICAgICAgICAgICAgQz47CiB9Owog
CiAvLyBJc1JlY3Vyc2l2ZUNvbnRhaW5lcjxUeXBlPiBpcyBhIHVuYXJ5IGNvbXBpbGUtdGltZSBw
cmVkaWNhdGUgdGhhdApAQCAtMTAzMiwxMyArMTAwNiw2IEBAIHN0cnVjdCBJc1JlY3Vyc2l2ZUNv
bnRhaW5lckltcGw8QywgdHJ1ZSwgdHJ1ZT4gewogdGVtcGxhdGUgPHR5cGVuYW1lIEM+CiBzdHJ1
Y3QgSXNSZWN1cnNpdmVDb250YWluZXIgOiBwdWJsaWMgSXNSZWN1cnNpdmVDb250YWluZXJJbXBs
PEM+Ojp0eXBlIHt9OwogCi0vLyBFbmFibGVJZjxjb25kaXRpb24+Ojp0eXBlIGlzIHZvaWQgd2hl
biAnQ29uZCcgaXMgdHJ1ZSwgYW5kCi0vLyB1bmRlZmluZWQgd2hlbiAnQ29uZCcgaXMgZmFsc2Uu
ICBUbyB1c2UgU0ZJTkFFIHRvIG1ha2UgYSBmdW5jdGlvbgotLy8gb3ZlcmxvYWQgb25seSBhcHBs
eSB3aGVuIGEgcGFydGljdWxhciBleHByZXNzaW9uIGlzIHRydWUsIGFkZAotLy8gInR5cGVuYW1l
IEVuYWJsZUlmPGV4cHJlc3Npb24+Ojp0eXBlKiA9IDAiIGFzIHRoZSBsYXN0IHBhcmFtZXRlci4K
LXRlbXBsYXRlPGJvb2w+IHN0cnVjdCBFbmFibGVJZjsKLXRlbXBsYXRlPD4gc3RydWN0IEVuYWJs
ZUlmPHRydWU+IHsgdHlwZWRlZiB2b2lkIHR5cGU7IH07ICAvLyBOT0xJTlQKLQogLy8gVXRpbGl0
aWVzIGZvciBuYXRpdmUgYXJyYXlzLgogCiAvLyBBcnJheUVxKCkgY29tcGFyZXMgdHdvIGstZGlt
ZW5zaW9uYWwgbmF0aXZlIGFycmF5cyB1c2luZyB0aGUKQEAgLTExNjEsMTAgKzExMjgsOSBAQCBj
bGFzcyBOYXRpdmVBcnJheSB7CiAgIH0KIAogIHByaXZhdGU6Ci0gIGVudW0gewotICAgIGtDaGVj
a1R5cGVJc05vdENvbnN0T3JBUmVmZXJlbmNlID0gU3RhdGljQXNzZXJ0VHlwZUVxSGVscGVyPAot
ICAgICAgICBFbGVtZW50LCBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8oRWxlbWVu
dCk+Ojp2YWx1ZQotICB9OworICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2NvbnN0PEVsZW1lbnQ+
Ojp2YWx1ZSwgIlR5cGUgbXVzdCBub3QgYmUgY29uc3QiKTsKKyAgc3RhdGljX2Fzc2VydCghc3Rk
Ojppc19yZWZlcmVuY2U8RWxlbWVudD46OnZhbHVlLAorICAgICAgICAgICAgICAgICJUeXBlIG11
c3Qgbm90IGJlIGEgcmVmZXJlbmNlIik7CiAKICAgLy8gSW5pdGlhbGl6ZXMgdGhpcyBvYmplY3Qg
d2l0aCBhIGNvcHkgb2YgdGhlIGlucHV0LgogICB2b2lkIEluaXRDb3B5KGNvbnN0IEVsZW1lbnQq
IGFycmF5LCBzaXplX3QgYV9zaXplKSB7CkBAIC0xMTg1LDEzICsxMTUxLDE5MCBAQCBjbGFzcyBO
YXRpdmVBcnJheSB7CiAgIGNvbnN0IEVsZW1lbnQqIGFycmF5XzsKICAgc2l6ZV90IHNpemVfOwog
ICB2b2lkIChOYXRpdmVBcnJheTo6KmNsb25lXykoY29uc3QgRWxlbWVudCosIHNpemVfdCk7Cit9
OworCisvLyBCYWNrcG9ydCBvZiBzdGQ6OmluZGV4X3NlcXVlbmNlLgordGVtcGxhdGUgPHNpemVf
dC4uLiBJcz4KK3N0cnVjdCBJbmRleFNlcXVlbmNlIHsKKyAgdXNpbmcgdHlwZSA9IEluZGV4U2Vx
dWVuY2U7Cit9OworCisvLyBEb3VibGUgdGhlIEluZGV4U2VxdWVuY2UsIGFuZCBvbmUgaWYgcGx1
c19vbmUgaXMgdHJ1ZS4KK3RlbXBsYXRlIDxib29sIHBsdXNfb25lLCB0eXBlbmFtZSBULCBzaXpl
X3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1ZW5jZTsKK3RlbXBsYXRlIDxzaXplX3QuLi4g
SSwgc2l6ZV90IHNpemVvZlQ+CitzdHJ1Y3QgRG91YmxlU2VxdWVuY2U8dHJ1ZSwgSW5kZXhTZXF1
ZW5jZTxJLi4uPiwgc2l6ZW9mVD4geworICB1c2luZyB0eXBlID0gSW5kZXhTZXF1ZW5jZTxJLi4u
LCAoc2l6ZW9mVCArIEkpLi4uLCAyICogc2l6ZW9mVD47Cit9OwordGVtcGxhdGUgPHNpemVfdC4u
LiBJLCBzaXplX3Qgc2l6ZW9mVD4KK3N0cnVjdCBEb3VibGVTZXF1ZW5jZTxmYWxzZSwgSW5kZXhT
ZXF1ZW5jZTxJLi4uPiwgc2l6ZW9mVD4geworICB1c2luZyB0eXBlID0gSW5kZXhTZXF1ZW5jZTxJ
Li4uLCAoc2l6ZW9mVCArIEkpLi4uPjsKK307CisKKy8vIEJhY2twb3J0IG9mIHN0ZDo6bWFrZV9p
bmRleF9zZXF1ZW5jZS4KKy8vIEl0IHVzZXMgTyhsbihOKSkgaW5zdGFudGlhdGlvbiBkZXB0aC4K
K3RlbXBsYXRlIDxzaXplX3QgTj4KK3N0cnVjdCBNYWtlSW5kZXhTZXF1ZW5jZUltcGwKKyAgICA6
IERvdWJsZVNlcXVlbmNlPE4gJSAyID09IDEsIHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlSW1w
bDxOIC8gMj46OnR5cGUsCisgICAgICAgICAgICAgICAgICAgICBOIC8gMj46OnR5cGUge307CiAK
LSAgR1RFU1RfRElTQUxMT1dfQVNTSUdOXyhOYXRpdmVBcnJheSk7Cit0ZW1wbGF0ZSA8Pgorc3Ry
dWN0IE1ha2VJbmRleFNlcXVlbmNlSW1wbDwwPiA6IEluZGV4U2VxdWVuY2U8PiB7fTsKKwordGVt
cGxhdGUgPHNpemVfdCBOPgordXNpbmcgTWFrZUluZGV4U2VxdWVuY2UgPSB0eXBlbmFtZSBNYWtl
SW5kZXhTZXF1ZW5jZUltcGw8Tj46OnR5cGU7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPgor
dXNpbmcgSW5kZXhTZXF1ZW5jZUZvciA9IHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlPHNpemVv
Zi4uLihUKT46OnR5cGU7CisKK3RlbXBsYXRlIDxzaXplX3Q+CitzdHJ1Y3QgSWdub3JlIHsKKyAg
SWdub3JlKC4uLik7ICAvLyBOT0xJTlQKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZT4KK3N0cnVj
dCBFbGVtRnJvbUxpc3RJbXBsOwordGVtcGxhdGUgPHNpemVfdC4uLiBJPgorc3RydWN0IEVsZW1G
cm9tTGlzdEltcGw8SW5kZXhTZXF1ZW5jZTxJLi4uPj4geworICAvLyBXZSBtYWtlIElnbm9yZSBh
IHRlbXBsYXRlIHRvIHNvbHZlIGEgcHJvYmxlbSB3aXRoIE1TVkMuCisgIC8vIEEgbm9uLXRlbXBs
YXRlIElnbm9yZSB3b3VsZCB3b3JrIGZpbmUgd2l0aCBgZGVjbHR5cGUoSWdub3JlKEkpKS4uLmAs
IGJ1dAorICAvLyBNU1ZDIGRvZXNuJ3QgdW5kZXJzdGFuZCBob3cgdG8gZGVhbCB3aXRoIHRoYXQg
cGFjayBleHBhbnNpb24uCisgIC8vIFVzZSBgMCAqIElgIHRvIGhhdmUgYSBzaW5nbGUgaW5zdGFu
dGlhdGlvbiBvZiBJZ25vcmUuCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBSPgorICBzdGF0aWMgUiBB
cHBseShJZ25vcmU8MCAqIEk+Li4uLCBSICgqKSgpLCAuLi4pOworfTsKKwordGVtcGxhdGUgPHNp
emVfdCBOLCB0eXBlbmFtZS4uLiBUPgorc3RydWN0IEVsZW1Gcm9tTGlzdCB7CisgIHVzaW5nIHR5
cGUgPQorICAgICAgZGVjbHR5cGUoRWxlbUZyb21MaXN0SW1wbDx0eXBlbmFtZSBNYWtlSW5kZXhT
ZXF1ZW5jZTxOPjo6dHlwZT46OkFwcGx5KAorICAgICAgICAgIHN0YXRpY19jYXN0PFQgKCopKCk+
KG51bGxwdHIpLi4uKSk7CiB9OwogCitzdHJ1Y3QgRmxhdFR1cGxlQ29uc3RydWN0VGFnIHt9Owor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4KK2NsYXNzIEZsYXRUdXBsZTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIERlcml2ZWQsIHNpemVfdCBJPgorc3RydWN0IEZsYXRUdXBsZUVsZW1CYXNlOwor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVCwgc2l6ZV90IEk+CitzdHJ1Y3QgRmxhdFR1cGxlRWxl
bUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJPiB7CisgIHVzaW5nIHZhbHVlX3R5cGUgPSB0eXBlbmFt
ZSBFbGVtRnJvbUxpc3Q8SSwgVC4uLj46OnR5cGU7CisgIEZsYXRUdXBsZUVsZW1CYXNlKCkgPSBk
ZWZhdWx0OworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnPgorICBleHBsaWNpdCBGbGF0VHVwbGVF
bGVtQmFzZShGbGF0VHVwbGVDb25zdHJ1Y3RUYWcsIEFyZyYmIHQpCisgICAgICA6IHZhbHVlKHN0
ZDo6Zm9yd2FyZDxBcmc+KHQpKSB7fQorICB2YWx1ZV90eXBlIHZhbHVlOworfTsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIERlcml2ZWQsIHR5cGVuYW1lIElkeD4KK3N0cnVjdCBGbGF0VHVwbGVCYXNl
OworCit0ZW1wbGF0ZSA8c2l6ZV90Li4uIElkeCwgdHlwZW5hbWUuLi4gVD4KK3N0cnVjdCBGbGF0
VHVwbGVCYXNlPEZsYXRUdXBsZTxULi4uPiwgSW5kZXhTZXF1ZW5jZTxJZHguLi4+PgorICAgIDog
RmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJZHg+Li4uIHsKKyAgdXNpbmcgSW5k
aWNlcyA9IEluZGV4U2VxdWVuY2U8SWR4Li4uPjsKKyAgRmxhdFR1cGxlQmFzZSgpID0gZGVmYXVs
dDsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3M+CisgIGV4cGxpY2l0IEZsYXRUdXBsZUJh
c2UoRmxhdFR1cGxlQ29uc3RydWN0VGFnLCBBcmdzJiYuLi4gYXJncykKKyAgICAgIDogRmxhdFR1
cGxlRWxlbUJhc2U8RmxhdFR1cGxlPFQuLi4+LCBJZHg+KEZsYXRUdXBsZUNvbnN0cnVjdFRhZ3t9
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpm
b3J3YXJkPEFyZ3M+KGFyZ3MpKS4uLiB7fQorCisgIHRlbXBsYXRlIDxzaXplX3QgST4KKyAgY29u
c3QgdHlwZW5hbWUgRWxlbUZyb21MaXN0PEksIFQuLi4+Ojp0eXBlJiBHZXQoKSBjb25zdCB7Cisg
ICAgcmV0dXJuIEZsYXRUdXBsZUVsZW1CYXNlPEZsYXRUdXBsZTxULi4uPiwgST46OnZhbHVlOwor
ICB9CisKKyAgdGVtcGxhdGUgPHNpemVfdCBJPgorICB0eXBlbmFtZSBFbGVtRnJvbUxpc3Q8SSwg
VC4uLj46OnR5cGUmIEdldCgpIHsKKyAgICByZXR1cm4gRmxhdFR1cGxlRWxlbUJhc2U8RmxhdFR1
cGxlPFQuLi4+LCBJPjo6dmFsdWU7CisgIH0KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRj4KKyAg
YXV0byBBcHBseShGJiYgZikgLT4gZGVjbHR5cGUoc3RkOjpmb3J3YXJkPEY+KGYpKHRoaXMtPkdl
dDxJZHg+KCkuLi4pKSB7CisgICAgcmV0dXJuIHN0ZDo6Zm9yd2FyZDxGPihmKShHZXQ8SWR4Pigp
Li4uKTsKKyAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPgorICBhdXRvIEFwcGx5KEYmJiBm
KSBjb25zdCAtPiBkZWNsdHlwZShzdGQ6OmZvcndhcmQ8Rj4oZikodGhpcy0+R2V0PElkeD4oKS4u
LikpIHsKKyAgICByZXR1cm4gc3RkOjpmb3J3YXJkPEY+KGYpKEdldDxJZHg+KCkuLi4pOworICB9
Cit9OworCisvLyBBbmFsb2cgdG8gc3RkOjp0dXBsZSBidXQgd2l0aCBkaWZmZXJlbnQgdHJhZGVv
ZmZzLgorLy8gVGhpcyBjbGFzcyBtaW5pbWl6ZXMgdGhlIHRlbXBsYXRlIGluc3RhbnRpYXRpb24g
ZGVwdGgsIHRodXMgYWxsb3dpbmcgbW9yZQorLy8gZWxlbWVudHMgdGhhbiBzdGQ6OnR1cGxlIHdv
dWxkLiBzdGQ6OnR1cGxlIGhhcyBiZWVuIHNlZW4gdG8gcmVxdWlyZSBhbgorLy8gaW5zdGFudGlh
dGlvbiBkZXB0aCBvZiBtb3JlIHRoYW4gMTB4IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gc29t
ZQorLy8gaW1wbGVtZW50YXRpb25zLgorLy8gRmxhdFR1cGxlIGFuZCBFbGVtRnJvbUxpc3QgYXJl
IG5vdCByZWN1cnNpdmUgYW5kIGhhdmUgYSBmaXhlZCBkZXB0aAorLy8gcmVnYXJkbGVzcyBvZiBU
Li4uCisvLyBNYWtlSW5kZXhTZXF1ZW5jZSwgb24gdGhlIG90aGVyIGhhbmQsIGl0IGlzIHJlY3Vy
c2l2ZSBidXQgd2l0aCBhbgorLy8gaW5zdGFudGlhdGlvbiBkZXB0aCBvZiBPKGxuKE4pKS4KK3Rl
bXBsYXRlIDx0eXBlbmFtZS4uLiBUPgorY2xhc3MgRmxhdFR1cGxlCisgICAgOiBwcml2YXRlIEZs
YXRUdXBsZUJhc2U8RmxhdFR1cGxlPFQuLi4+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlPHNpemVvZi4uLihUKT46OnR5cGU+IHsKKyAgdXNp
bmcgSW5kaWNlcyA9IHR5cGVuYW1lIEZsYXRUdXBsZUJhc2U8CisgICAgICBGbGF0VHVwbGU8VC4u
Lj4sIHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlPHNpemVvZi4uLihUKT46OnR5cGU+OjpJbmRp
Y2VzOworCisgcHVibGljOgorICBGbGF0VHVwbGUoKSA9IGRlZmF1bHQ7CisgIHRlbXBsYXRlIDx0
eXBlbmFtZS4uLiBBcmdzPgorICBleHBsaWNpdCBGbGF0VHVwbGUoRmxhdFR1cGxlQ29uc3RydWN0
VGFnIHRhZywgQXJncyYmLi4uIGFyZ3MpCisgICAgICA6IEZsYXRUdXBsZTo6RmxhdFR1cGxlQmFz
ZSh0YWcsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikge30KKworICB1c2luZyBGbGF0VHVw
bGU6OkZsYXRUdXBsZUJhc2U6OkFwcGx5OworICB1c2luZyBGbGF0VHVwbGU6OkZsYXRUdXBsZUJh
c2U6OkdldDsKK307CisKKy8vIFV0aWxpdHkgZnVuY3Rpb25zIHRvIGJlIGNhbGxlZCB3aXRoIHN0
YXRpY19hc3NlcnQgdG8gaW5kdWNlIGRlcHJlY2F0aW9uCisvLyB3YXJuaW5ncy4KK0dURVNUX0lO
VEVSTkFMX0RFUFJFQ0FURUQoCisgICAgIklOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIGlzIGRlcHJl
Y2F0ZWQsIHBsZWFzZSB1c2UgIgorICAgICJJTlNUQU5USUFURV9URVNUX1NVSVRFX1AiKQorY29u
c3RleHByIGJvb2wgSW5zdGFudGlhdGVUZXN0Q2FzZV9QX0lzRGVwcmVjYXRlZCgpIHsgcmV0dXJu
IHRydWU7IH0KKworR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRCgKKyAgICAiVFlQRURfVEVTVF9D
QVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIlRZUEVEX1RFU1RfU1VJVEVf
UCIpCitjb25zdGV4cHIgYm9vbCBUeXBlZFRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCkgeyByZXR1
cm4gdHJ1ZTsgfQorCitHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKAorICAgICJUWVBFRF9URVNU
X0NBU0UgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIlRZUEVEX1RFU1RfU1VJVEUi
KQorY29uc3RleHByIGJvb2wgVHlwZWRUZXN0Q2FzZUlzRGVwcmVjYXRlZCgpIHsgcmV0dXJuIHRy
dWU7IH0KKworR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRCgKKyAgICAiUkVHSVNURVJfVFlQRURf
VEVTVF9DQVNFX1AgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSAiCisgICAgIlJFR0lTVEVSX1RZ
UEVEX1RFU1RfU1VJVEVfUCIpCitjb25zdGV4cHIgYm9vbCBSZWdpc3RlclR5cGVkVGVzdENhc2Vf
UF9Jc0RlcHJlY2F0ZWQoKSB7IHJldHVybiB0cnVlOyB9CisKK0dURVNUX0lOVEVSTkFMX0RFUFJF
Q0FURUQoCisgICAgIklOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QIGlzIGRlcHJlY2F0ZWQs
IHBsZWFzZSB1c2UgIgorICAgICJJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AiKQorY29u
c3RleHByIGJvb2wgSW5zdGFudGlhdGVUeXBlZFRlc3RDYXNlX1BfSXNEZXByZWNhdGVkKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQorCiB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFj
ZSB0ZXN0aW5nCiAKK25hbWVzcGFjZSBzdGQgeworLy8gU29tZSBzdGFuZGFyZCBsaWJyYXJ5IGlt
cGxlbWVudGF0aW9ucyB1c2UgYHN0cnVjdCB0dXBsZV9zaXplYCBhbmQgc29tZSB1c2UKKy8vIGBj
bGFzcyB0dXBsZV9zaXplYC4gQ2xhbmcgd2FybnMgYWJvdXQgdGhlIG1pc21hdGNoLgorLy8gaHR0
cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0Q1NTQ2NgorI2lmZGVmIF9fY2xhbmdfXworI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V21pc21hdGNoZWQtdGFncyIKKyNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorc3Ry
dWN0IHR1cGxlX3NpemU8dGVzdGluZzo6aW50ZXJuYWw6OkZsYXRUdXBsZTxUcy4uLj4+CisgICAg
OiBzdGQ6OmludGVncmFsX2NvbnN0YW50PHNpemVfdCwgc2l6ZW9mLi4uKFRzKT4ge307CisjaWZk
ZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKK30gIC8v
IG5hbWVzcGFjZSBzdGQKKwogI2RlZmluZSBHVEVTVF9NRVNTQUdFX0FUXyhmaWxlLCBsaW5lLCBt
ZXNzYWdlLCByZXN1bHRfdHlwZSkgXAogICA6OnRlc3Rpbmc6OmludGVybmFsOjpBc3NlcnRIZWxw
ZXIocmVzdWx0X3R5cGUsIGZpbGUsIGxpbmUsIG1lc3NhZ2UpIFwKICAgICA9IDo6dGVzdGluZzo6
TWVzc2FnZSgpCkBAIC0xMjA4LDUxICsxMzUxLDEyOCBAQCBjbGFzcyBOYXRpdmVBcnJheSB7CiAj
ZGVmaW5lIEdURVNUX1NVQ0NFU1NfKG1lc3NhZ2UpIFwKICAgR1RFU1RfTUVTU0FHRV8obWVzc2Fn
ZSwgOjp0ZXN0aW5nOjpUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MpCiAKLS8vIFN1cHByZXNzIE1T
VkMgd2FybmluZyA0NzAyICh1bnJlYWNoYWJsZSBjb2RlKSBmb3IgdGhlIGNvZGUgZm9sbG93aW5n
CisjZGVmaW5lIEdURVNUX1NLSVBfKG1lc3NhZ2UpIFwKKyAgcmV0dXJuIEdURVNUX01FU1NBR0Vf
KG1lc3NhZ2UsIDo6dGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ6OmtTa2lwKQorCisvLyBTdXBwcmVz
cyBNU1ZDIHdhcm5pbmcgNDA3MiAodW5yZWFjaGFibGUgY29kZSkgZm9yIHRoZSBjb2RlIGZvbGxv
d2luZwogLy8gc3RhdGVtZW50IGlmIGl0IHJldHVybnMgb3IgdGhyb3dzIChvciBkb2Vzbid0IHJl
dHVybiBvciB0aHJvdyBpbiBzb21lCiAvLyBzaXR1YXRpb25zKS4KKy8vIE5PVEU6IFRoZSAiZWxz
ZSIgaXMgaW1wb3J0YW50IHRvIGtlZXAgdGhpcyBleHBhbnNpb24gdG8gcHJldmVudCBhIHRvcC1s
ZXZlbAorLy8gImVsc2UiIGZyb20gYXR0YWNoaW5nIHRvIG91ciAiaWYiLgogI2RlZmluZSBHVEVT
VF9TVVBQUkVTU19VTlJFQUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCkgXAot
ICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7IHN0YXRlbWVudDsgfQor
ICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3YXlzVHJ1ZSgpKSB7ICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIHN0YXRlbWVudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAvKiBO
T0xJTlQgKi8gICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpY19hc3NlcnQodHJ1
ZSwgIiIpICAvLyBVc2VyIG11c3QgaGF2ZSBhIHNlbWljb2xvbiBhZnRlciBleHBhbnNpb24uCiAK
LSNkZWZpbmUgR1RFU1RfVEVTVF9USFJPV18oc3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24s
IGZhaWwpIFwKLSAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAoOjp0ZXN0
aW5nOjppbnRlcm5hbDo6Q29uc3RDaGFyUHRyIGd0ZXN0X21zZyA9ICIiKSB7IFwKLSAgICBib29s
IGd0ZXN0X2NhdWdodF9leHBlY3RlZCA9IGZhbHNlOyBcCi0gICAgdHJ5IHsgXAotICAgICAgR1RF
U1RfU1VQUFJFU1NfVU5SRUFDSEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXyhzdGF0ZW1lbnQpOyBc
Ci0gICAgfSBcCi0gICAgY2F0Y2ggKGV4cGVjdGVkX2V4Y2VwdGlvbiBjb25zdCYpIHsgXAotICAg
ICAgZ3Rlc3RfY2F1Z2h0X2V4cGVjdGVkID0gdHJ1ZTsgXAotICAgIH0gXAotICAgIGNhdGNoICgu
Li4pIHsgXAotICAgICAgZ3Rlc3RfbXNnLnZhbHVlID0gXAotICAgICAgICAgICJFeHBlY3RlZDog
IiAjc3RhdGVtZW50ICIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlICIgXAotICAgICAgICAg
ICNleHBlY3RlZF9leGNlcHRpb24gIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3MgYSBkaWZmZXJlbnQg
dHlwZS4iOyBcCi0gICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVz
dHRocm93XywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gICAgaWYgKCFndGVzdF9jYXVnaHRfZXhw
ZWN0ZWQpIHsgXAotICAgICAgZ3Rlc3RfbXNnLnZhbHVlID0gXAotICAgICAgICAgICJFeHBlY3Rl
ZDogIiAjc3RhdGVtZW50ICIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBvZiB0eXBlICIgXAotICAgICAg
ICAgICNleHBlY3RlZF9leGNlcHRpb24gIi5cbiAgQWN0dWFsOiBpdCB0aHJvd3Mgbm90aGluZy4i
OyBcCi0gICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdHRocm93
XywgX19MSU5FX18pOyBcCi0gICAgfSBcCi0gIH0gZWxzZSBcCi0gICAgR1RFU1RfQ09OQ0FUX1RP
S0VOXyhndGVzdF9sYWJlbF90ZXN0dGhyb3dfLCBfX0xJTkVfXyk6IFwKLSAgICAgIGZhaWwoZ3Rl
c3RfbXNnLnZhbHVlKQorI2lmIEdURVNUX0hBU19FWENFUFRJT05TCisKK25hbWVzcGFjZSB0ZXN0
aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7CisKK2NsYXNzIE5ldmVyVGhyb3duIHsKKyBwdWJs
aWM6CisgIGNvbnN0IGNoYXIqIHdoYXQoKSBjb25zdCBub2V4Y2VwdCB7CisgICAgcmV0dXJuICJ0
aGlzIGV4Y2VwdGlvbiBzaG91bGQgbmV2ZXIgYmUgdGhyb3duIjsKKyAgfQorfTsKKworfSAgLy8g
bmFtZXNwYWNlIGludGVybmFsCit9ICAvLyBuYW1lc3BhY2UgdGVzdGluZworCisjaWYgR1RFU1Rf
SEFTX1JUVEkKKworI2RlZmluZSBHVEVTVF9FWENFUFRJT05fVFlQRV8oZSkgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6R2V0VHlwZU5hbWUodHlwZWlkKGUpKQorCisjZWxzZSAgLy8gR1RFU1RfSEFTX1JU
VEkKKworI2RlZmluZSBHVEVTVF9FWENFUFRJT05fVFlQRV8oZSkgXAorICBzdGQ6OnN0cmluZyB7
ICJhbiBzdGQ6OmV4Y2VwdGlvbi1kZXJpdmVkIGVycm9yIiB9CisKKyNlbmRpZiAgLy8gR1RFU1Rf
SEFTX1JUVEkKKworI2RlZmluZSBHVEVTVF9URVNUX1RIUk9XX0NBVENIX1NURF9FWENFUFRJT05f
KHN0YXRlbWVudCwgZXhwZWN0ZWRfZXhjZXB0aW9uKSAgIFwKKyAgY2F0Y2ggKHR5cGVuYW1lIHN0
ZDo6Y29uZGl0aW9uYWw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgICBzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY3Y8dHlwZW5h
bWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHBlY3RlZF9leGNlcHRpb24+Ojp0eXBlPjo6dHlwZSwgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAgICAgICBzdGQ6OmV4Y2VwdGlvbj46OnZhbHVlLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICBjb25zdCA6OnRlc3Rpbmc6OmludGVybmFs
OjpOZXZlclRocm93biYsIGNvbnN0IHN0ZDo6ZXhjZXB0aW9uJj46OnR5cGUgXAorICAgICAgICAg
ICAgIGUpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgPSAiRXhwZWN0ZWQ6ICIgI3N0YXRl
bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiAjZXhwZWN0ZWRfZXhjZXB0aW9u
ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICIuXG4gIEFjdHVhbDogaXQgdGhyb3dzICI7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBndGVzdF9tc2cudmFsdWUgKz0g
R1RFU1RfRVhDRVBUSU9OX1RZUEVfKGUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9ICIgd2l0aCBkZXNjcmlwdGlvbiBcIiI7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGd0ZXN0X21zZy52YWx1ZSArPSBlLndoYXQo
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBn
dGVzdF9tc2cudmFsdWUgKz0gIlwiLiI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgZ290byBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0X2xh
YmVsX3Rlc3R0aHJvd18sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgXAorICB9CisKKyNlbHNl
ICAvLyBHVEVTVF9IQVNfRVhDRVBUSU9OUworCisjZGVmaW5lIEdURVNUX1RFU1RfVEhST1dfQ0FU
Q0hfU1REX0VYQ0VQVElPTl8oc3RhdGVtZW50LCBleHBlY3RlZF9leGNlcHRpb24pCisKKyNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKKworI2RlZmluZSBHVEVTVF9URVNUX1RIUk9XXyhz
dGF0ZW1lbnQsIGV4cGVjdGVkX2V4Y2VwdGlvbiwgZmFpbCkgICAgICAgICAgICAgIFwKKyAgR1RF
U1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIGlmICg6OnRlc3Rpbmc6OmludGVybmFsOjpUcnVlV2l0aFN0cmlu
ZyBndGVzdF9tc2d7fSkgeyAgICAgICAgICAgICAgICAgICAgXAorICAgIGJvb2wgZ3Rlc3RfY2F1
Z2h0X2V4cGVjdGVkID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICB0cnkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBHVEVTVF9TVVBQUkVTU19VTlJFQUNIQUJM
RV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7ICAgICAgICAgICAgXAorICAgIH0gY2F0
Y2ggKGV4cGVjdGVkX2V4Y2VwdGlvbiBjb25zdCYpIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgIGd0ZXN0X2NhdWdodF9leHBlY3RlZCA9IHRydWU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIEdURVNUX1RFU1RfVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oc3RhdGVtZW50LCBleHBl
Y3RlZF9leGNlcHRpb24pICAgIFwKKyAgICBjYXRjaCAoLi4uKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBndGVzdF9t
c2cudmFsdWUgPSAiRXhwZWN0ZWQ6ICIgI3N0YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgIiB0aHJvd3MgYW4gZXhjZXB0aW9uIG9m
IHR5cGUgIiAjZXhwZWN0ZWRfZXhjZXB0aW9uIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICIu
XG4gIEFjdHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50IHR5cGUuIjsgICAgICAgICBcCisgICAg
ICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdHRocm93XywgX19MSU5F
X18pOyAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIWd0ZXN0X2Nh
dWdodF9leHBlY3RlZCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICBndGVzdF9tc2cudmFsdWUgPSAiRXhwZWN0ZWQ6ICIgI3N0YXRlbWVudCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgIiB0aHJv
d3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgIiAjZXhwZWN0ZWRfZXhjZXB0aW9uIFwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIuXG4gIEFjdHVhbDogaXQgdGhyb3dzIG5vdGhpbmcuIjsgICAgICAg
ICAgICAgICAgICBcCisgICAgICBnb3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxf
dGVzdHRocm93XywgX19MSU5FX18pOyAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgfSBlbHNlIC8qTk9MSU5UKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgR1RFU1RfQ09OQ0FUX1RPS0VOXyhndGVzdF9sYWJl
bF90ZXN0dGhyb3dfLCBfX0xJTkVfXykgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA6IGZh
aWwoZ3Rlc3RfbXNnLnZhbHVlLmNfc3RyKCkpCisKKyNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwor
CisjZGVmaW5lIEdURVNUX1RFU1RfTk9fVEhST1dfQ0FUQ0hfU1REX0VYQ0VQVElPTl8oKSAgICAg
ICAgICAgICAgICBcCisgIGNhdGNoIChzdGQ6OmV4Y2VwdGlvbiBjb25zdCYgZSkgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlID0gIml0IHRocm93
cyAiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVl
ICs9IEdURVNUX0VYQ0VQVElPTl9UWVBFXyhlKTsgICAgICAgICAgICAgICAgICBcCisgICAgZ3Rl
c3RfbXNnLnZhbHVlICs9ICIgd2l0aCBkZXNjcmlwdGlvbiBcIiI7ICAgICAgICAgICAgICAgICAg
ICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9IGUud2hhdCgpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgZ3Rlc3RfbXNnLnZhbHVlICs9ICJcIi4iOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZ290byBHVEVTVF9DT05DQVRfVE9LRU5f
KGd0ZXN0X2xhYmVsX3Rlc3Rub3Rocm93XywgX19MSU5FX18pOyBcCisgIH0KKworI2Vsc2UgIC8v
IEdURVNUX0hBU19FWENFUFRJT05TCisKKyNkZWZpbmUgR1RFU1RfVEVTVF9OT19USFJPV19DQVRD
SF9TVERfRVhDRVBUSU9OXygpCisKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKIAog
I2RlZmluZSBHVEVTVF9URVNUX05PX1RIUk9XXyhzdGF0ZW1lbnQsIGZhaWwpIFwKICAgR1RFU1Rf
QU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gXAotICBpZiAoOjp0ZXN0aW5nOjppbnRlcm5hbDo6QWx3
YXlzVHJ1ZSgpKSB7IFwKKyAgaWYgKDo6dGVzdGluZzo6aW50ZXJuYWw6OlRydWVXaXRoU3RyaW5n
IGd0ZXN0X21zZ3t9KSB7IFwKICAgICB0cnkgeyBcCiAgICAgICBHVEVTVF9TVVBQUkVTU19VTlJF
QUNIQUJMRV9DT0RFX1dBUk5JTkdfQkVMT1dfKHN0YXRlbWVudCk7IFwKICAgICB9IFwKKyAgICBH
VEVTVF9URVNUX05PX1RIUk9XX0NBVENIX1NURF9FWENFUFRJT05fKCkgXAogICAgIGNhdGNoICgu
Li4pIHsgXAorICAgICAgZ3Rlc3RfbXNnLnZhbHVlID0gIml0IHRocm93cy4iOyBcCiAgICAgICBn
b3RvIEdURVNUX0NPTkNBVF9UT0tFTl8oZ3Rlc3RfbGFiZWxfdGVzdG5vdGhyb3dfLCBfX0xJTkVf
Xyk7IFwKICAgICB9IFwKICAgfSBlbHNlIFwKICAgICBHVEVTVF9DT05DQVRfVE9LRU5fKGd0ZXN0
X2xhYmVsX3Rlc3Rub3Rocm93XywgX19MSU5FX18pOiBcCi0gICAgICBmYWlsKCJFeHBlY3RlZDog
IiAjc3RhdGVtZW50ICIgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4iIFwKLSAgICAgICAg
ICAgIiAgQWN0dWFsOiBpdCB0aHJvd3MuIikKKyAgICAgIGZhaWwoKCJFeHBlY3RlZDogIiAjc3Rh
dGVtZW50ICIgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4iIFwKKyAgICAgICAgICAgICIg
IEFjdHVhbDogIiArIGd0ZXN0X21zZy52YWx1ZSkuY19zdHIoKSkKIAogI2RlZmluZSBHVEVTVF9U
RVNUX0FOWV9USFJPV18oc3RhdGVtZW50LCBmYWlsKSBcCiAgIEdURVNUX0FNQklHVU9VU19FTFNF
X0JMT0NLRVJfIFwKQEAgLTEzMDAsMzEgKzE1MjAsNDEgQEAgY2xhc3MgTmF0aXZlQXJyYXkgewog
ICAgICAgICAgICAiICBBY3R1YWw6IGl0IGRvZXMuIikKIAogLy8gRXhwYW5kcyB0byB0aGUgbmFt
ZSBvZiB0aGUgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBnaXZlbiB0ZXN0LgotI2RlZmluZSBH
VEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpIFwKLSAgdGVz
dF9jYXNlX25hbWUjI18jI3Rlc3RfbmFtZSMjX1Rlc3QKKyNkZWZpbmUgR1RFU1RfVEVTVF9DTEFT
U19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSkgXAorICB0ZXN0X3N1aXRlX25hbWUj
I18jI3Rlc3RfbmFtZSMjX1Rlc3QKIAogLy8gSGVscGVyIG1hY3JvIGZvciBkZWZpbmluZyB0ZXN0
cy4KLSNkZWZpbmUgR1RFU1RfVEVTVF8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSwgcGFyZW50
X2NsYXNzLCBwYXJlbnRfaWQpXAotY2xhc3MgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nh
c2VfbmFtZSwgdGVzdF9uYW1lKSA6IHB1YmxpYyBwYXJlbnRfY2xhc3Mge1wKLSBwdWJsaWM6XAot
ICBHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3RfY2FzZV9uYW1lLCB0ZXN0X25hbWUpKCkge31c
Ci0gcHJpdmF0ZTpcCi0gIHZpcnR1YWwgdm9pZCBUZXN0Qm9keSgpO1wKLSAgc3RhdGljIDo6dGVz
dGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mb18gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF87
XAotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFwKLSAgICAgIEdURVNUX1RFU1Rf
Q0xBU1NfTkFNRV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSkpO1wKLX07XAotXAotOjp0ZXN0
aW5nOjpUZXN0SW5mbyogY29uc3QgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X2Nhc2VfbmFt
ZSwgdGVzdF9uYW1lKVwKLSAgOjp0ZXN0X2luZm9fID1cCi0gICAgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6TWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oXAotICAgICAgICAjdGVzdF9jYXNlX25hbWUsICN0
ZXN0X25hbWUsIE5VTEwsIE5VTEwsIFwKLSAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29k
ZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVfXyksIFwKLSAgICAgICAgKHBhcmVudF9pZCksIFwK
LSAgICAgICAgcGFyZW50X2NsYXNzOjpTZXRVcFRlc3RDYXNlLCBcCi0gICAgICAgIHBhcmVudF9j
bGFzczo6VGVhckRvd25UZXN0Q2FzZSwgXAotICAgICAgICBuZXcgOjp0ZXN0aW5nOjppbnRlcm5h
bDo6VGVzdEZhY3RvcnlJbXBsPFwKLSAgICAgICAgICAgIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8o
dGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk+KTtcCi12b2lkIEdURVNUX1RFU1RfQ0xBU1NfTkFN
RV8odGVzdF9jYXNlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RCb2R5KCkKLQotI2VuZGlmICAvLyBH
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX0lOVEVSTkFMX0hfCisjZGVmaW5lIEdU
RVNUX1RFU1RfKHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9uYW1lLCBwYXJlbnRfY2xhc3MsIHBhcmVu
dF9pZCkgICAgICBcCisgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEdURVNUX1NUUklOR0lGWV8odGVz
dF9zdWl0ZV9uYW1lKSkgPiAxLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgInRl
c3Rfc3VpdGVfbmFtZSBtdXN0IG5vdCBiZSBlbXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEdURVNUX1NUUklOR0lGWV8odGVzdF9uYW1lKSkg
PiAxLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgInRlc3RfbmFtZSBt
dXN0IG5vdCBiZSBlbXB0eSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGNs
YXNzIEdURVNUX1RFU1RfQ0xBU1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICA6IHB1YmxpYyBwYXJlbnRfY2xhc3MgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBwdWJsaWM6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgR1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRl
c3RfbmFtZSkoKSA9IGRlZmF1bHQ7ICAgICAgICAgICBcCisgICAgfkdURVNUX1RFU1RfQ0xBU1Nf
TkFNRV8odGVzdF9zdWl0ZV9uYW1lLCB0ZXN0X25hbWUpKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OyBc
CisgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhHVEVTVF9URVNUX0NMQVNTX05B
TUVfKHRlc3Rfc3VpdGVfbmFtZSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSkpOyAgICAgICBcCisgICAgR1RF
U1RfRElTQUxMT1dfTU9WRV9BTkRfQVNTSUdOXyhHVEVTVF9URVNUX0NMQVNTX05BTUVfKHRlc3Rf
c3VpdGVfbmFtZSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSkpOyAgICAgICBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICBwcml2YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdm9pZCBUZXN0Qm9keSgpIG92ZXJy
aWRlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgc3RhdGljIDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IHRlc3RfaW5mb18gR1RFU1RfQVRU
UklCVVRFX1VOVVNFRF87ICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgIDo6dGVzdGluZzo6VGVzdEluZm8qIGNvbnN0IEdURVNUX1RFU1RfQ0xB
U1NfTkFNRV8odGVzdF9zdWl0ZV9uYW1lLCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTo6dGVzdF9pbmZvXyA9
ICBcCisgICAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgI3Rlc3Rfc3VpdGVfbmFtZSwg
I3Rlc3RfbmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6Q29kZUxvY2F0aW9uKF9fRklMRV9fLCBfX0xJTkVf
XyksIChwYXJlbnRfaWQpLCBcCisgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6U3VpdGVB
cGlSZXNvbHZlcjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg
IHBhcmVudF9jbGFzcz46OkdldFNldFVwQ2FzZU9yU3VpdGUoX19GSUxFX18sIF9fTElORV9fKSwg
ICAgICAgICBcCisgICAgICAgICAgOjp0ZXN0aW5nOjppbnRlcm5hbDo6U3VpdGVBcGlSZXNvbHZl
cjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIHBhcmVudF9j
bGFzcz46OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoX19GSUxFX18sIF9fTElORV9fKSwgICAgICBc
CisgICAgICAgICAgbmV3IDo6dGVzdGluZzo6aW50ZXJuYWw6OlRlc3RGYWN0b3J5SW1wbDxHVEVT
VF9URVNUX0NMQVNTX05BTUVfKCAgICBcCisgICAgICAgICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwg
dGVzdF9uYW1lKT4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHZvaWQg
R1RFU1RfVEVTVF9DTEFTU19OQU1FXyh0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSk6OlRlc3RC
b2R5KCkKKworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RF
U1RfSU5URVJOQUxfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1
ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtbGlua2VkX3B0ci5oIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRfcHRyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4MmI4NzI4OWFlMTdjOGFhN2I5NmQ4ZThjOTJiOTZlMDE4
Yzc2OGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1saW5rZWRf
cHRyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNDMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMDMg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0vLwotLy8gQSAic21hcnQiIHBvaW50ZXIgdHlwZSB3
aXRoIHJlZmVyZW5jZSB0cmFja2luZy4gIEV2ZXJ5IHBvaW50ZXIgdG8gYQotLy8gcGFydGljdWxh
ciBvYmplY3QgaXMga2VwdCBvbiBhIGNpcmN1bGFyIGxpbmtlZCBsaXN0LiAgV2hlbiB0aGUgbGFz
dCBwb2ludGVyCi0vLyB0byBhbiBvYmplY3QgaXMgZGVzdHJveWVkIG9yIHJlYXNzaWduZWQsIHRo
ZSBvYmplY3QgaXMgZGVsZXRlZC4KLS8vCi0vLyBVc2VkIHByb3Blcmx5LCB0aGlzIGRlbGV0ZXMg
dGhlIG9iamVjdCB3aGVuIHRoZSBsYXN0IHJlZmVyZW5jZSBnb2VzIGF3YXkuCi0vLyBUaGVyZSBh
cmUgc2V2ZXJhbCBjYXZlYXRzOgotLy8gLSBMaWtlIGFsbCByZWZlcmVuY2UgY291bnRpbmcgc2No
ZW1lcywgY3ljbGVzIGxlYWQgdG8gbGVha3MuCi0vLyAtIEVhY2ggc21hcnQgcG9pbnRlciBpcyBh
Y3R1YWxseSB0d28gcG9pbnRlcnMgKDggYnl0ZXMgaW5zdGVhZCBvZiA0KS4KLS8vIC0gRXZlcnkg
dGltZSBhIHBvaW50ZXIgaXMgYXNzaWduZWQsIHRoZSBlbnRpcmUgbGlzdCBvZiBwb2ludGVycyB0
byB0aGF0Ci0vLyAgIG9iamVjdCBpcyB0cmF2ZXJzZWQuICBUaGlzIGNsYXNzIGlzIHRoZXJlZm9y
ZSBOT1QgU1VJVEFCTEUgd2hlbiB0aGVyZQotLy8gICB3aWxsIG9mdGVuIGJlIG1vcmUgdGhhbiB0
d28gb3IgdGhyZWUgcG9pbnRlcnMgdG8gYSBwYXJ0aWN1bGFyIG9iamVjdC4KLS8vIC0gUmVmZXJl
bmNlcyBhcmUgb25seSB0cmFja2VkIGFzIGxvbmcgYXMgbGlua2VkX3B0cjw+IG9iamVjdHMgYXJl
IGNvcGllZC4KLS8vICAgSWYgYSBsaW5rZWRfcHRyPD4gaXMgY29udmVydGVkIHRvIGEgcmF3IHBv
aW50ZXIgYW5kIGJhY2ssIEJBRCBUSElOR1MKLS8vICAgd2lsbCBoYXBwZW4gKGRvdWJsZSBkZWxl
dGlvbikuCi0vLwotLy8gQSBnb29kIHVzZSBvZiB0aGlzIGNsYXNzIGlzIHN0b3Jpbmcgb2JqZWN0
IHJlZmVyZW5jZXMgaW4gU1RMIGNvbnRhaW5lcnMuCi0vLyBZb3UgY2FuIHNhZmVseSBwdXQgbGlu
a2VkX3B0cjw+IGluIGEgdmVjdG9yPD4uCi0vLyBPdGhlciB1c2VzIG1heSBub3QgYmUgYXMgZ29v
ZC4KLS8vCi0vLyBOb3RlOiBJZiB5b3UgdXNlIGFuIGluY29tcGxldGUgdHlwZSB3aXRoIGxpbmtl
ZF9wdHI8PiwgdGhlIGNsYXNzCi0vLyAqY29udGFpbmluZyogbGlua2VkX3B0cjw+IG11c3QgaGF2
ZSBhIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yIChldmVuCi0vLyBpZiB0aGV5IGRvIG5vdGhp
bmchKS4KLS8vCi0vLyBCaWxsIEdpYmJvbnMgc3VnZ2VzdGVkIHdlIHVzZSBzb21ldGhpbmcgbGlr
ZSB0aGlzLgotLy8KLS8vIFRocmVhZCBTYWZldHk6Ci0vLyAgIFVubGlrZSBvdGhlciBsaW5rZWRf
cHRyIGltcGxlbWVudGF0aW9ucywgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbgotLy8gICBhIGxpbmtl
ZF9wdHIgb2JqZWN0IGlzIHRocmVhZC1zYWZlIGluIHRoZSBzZW5zZSB0aGF0OgotLy8gICAgIC0g
aXQncyBzYWZlIHRvIGNvcHkgbGlua2VkX3B0ciBvYmplY3RzIGNvbmN1cnJlbnRseSwKLS8vICAg
ICAtIGl0J3Mgc2FmZSB0byBjb3B5ICpmcm9tKiBhIGxpbmtlZF9wdHIgYW5kIHJlYWQgaXRzIHVu
ZGVybHlpbmcKLS8vICAgICAgIHJhdyBwb2ludGVyIChlLmcuIHZpYSBnZXQoKSkgY29uY3VycmVu
dGx5LCBhbmQKLS8vICAgICAtIGl0J3Mgc2FmZSB0byB3cml0ZSB0byB0d28gbGlua2VkX3B0cnMg
dGhhdCBwb2ludCB0byB0aGUgc2FtZQotLy8gICAgICAgc2hhcmVkIG9iamVjdCBjb25jdXJyZW50
bHkuCi0vLyBGSVhNRTogcmVuYW1lIHRoaXMgdG8gc2FmZV9saW5rZWRfcHRyIHRvIGF2b2lkCi0v
LyBjb25mdXNpb24gd2l0aCBub3JtYWwgbGlua2VkX3B0ci4KLQotLy8gR09PR0xFVEVTVF9DTTAw
MDEgRE8gTk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfTElOS0VEX1BUUl9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX0xJTktFRF9QVFJfSF8KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGFz
c2VydC5oPgotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgotCi1uYW1l
c3BhY2UgdGVzdGluZyB7Ci1uYW1lc3BhY2UgaW50ZXJuYWwgewotCi0vLyBQcm90ZWN0cyBjb3B5
aW5nIG9mIGFsbCBsaW5rZWRfcHRyIG9iamVjdHMuCi1HVEVTVF9BUElfIEdURVNUX0RFQ0xBUkVf
U1RBVElDX01VVEVYXyhnX2xpbmtlZF9wdHJfbXV0ZXgpOwotCi0vLyBUaGlzIGlzIHVzZWQgaW50
ZXJuYWxseSBieSBhbGwgaW5zdGFuY2VzIG9mIGxpbmtlZF9wdHI8Pi4gIEl0IG5lZWRzIHRvIGJl
Ci0vLyBhIG5vbi10ZW1wbGF0ZSBjbGFzcyBiZWNhdXNlIGRpZmZlcmVudCB0eXBlcyBvZiBsaW5r
ZWRfcHRyPD4gY2FuIHJlZmVyIHRvCi0vLyB0aGUgc2FtZSBvYmplY3QgKGxpbmtlZF9wdHI8U3Vw
ZXJjbGFzcz4ob2JqKSB2cyBsaW5rZWRfcHRyPFN1YmNsYXNzPihvYmopKS4KLS8vIFNvLCBpdCBu
ZWVkcyB0byBiZSBwb3NzaWJsZSBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIGxpbmtlZF9wdHIgdG8g
cGFydGljaXBhdGUKLS8vIGluIHRoZSBzYW1lIGNpcmN1bGFyIGxpbmtlZCBsaXN0LCBzbyB3ZSBu
ZWVkIGEgc2luZ2xlIGNsYXNzIHR5cGUgaGVyZS4KLS8vCi0vLyBETyBOT1QgVVNFIFRISVMgQ0xB
U1MgRElSRUNUTFkgWU9VUlNFTEYuICBVc2UgbGlua2VkX3B0cjxUPi4KLWNsYXNzIGxpbmtlZF9w
dHJfaW50ZXJuYWwgewotIHB1YmxpYzoKLSAgLy8gQ3JlYXRlIGEgbmV3IGNpcmNsZSB0aGF0IGlu
Y2x1ZGVzIG9ubHkgdGhpcyBpbnN0YW5jZS4KLSAgdm9pZCBqb2luX25ldygpIHsKLSAgICBuZXh0
XyA9IHRoaXM7Ci0gIH0KLQotICAvLyBNYW55IGxpbmtlZF9wdHIgb3BlcmF0aW9ucyBtYXkgY2hh
bmdlIHAubGlua18gZm9yIHNvbWUgbGlua2VkX3B0cgotICAvLyB2YXJpYWJsZSBwIGluIHRoZSBz
YW1lIGNpcmNsZSBhcyB0aGlzIG9iamVjdC4gIFRoZXJlZm9yZSB3ZSBuZWVkCi0gIC8vIHRvIHBy
ZXZlbnQgdHdvIHN1Y2ggb3BlcmF0aW9ucyBmcm9tIG9jY3VycmluZyBjb25jdXJyZW50bHkuCi0g
IC8vCi0gIC8vIE5vdGUgdGhhdCBkaWZmZXJlbnQgdHlwZXMgb2YgbGlua2VkX3B0ciBvYmplY3Rz
IGNhbiBjb2V4aXN0IGluIGEKLSAgLy8gY2lyY2xlIChlLmcuIGxpbmtlZF9wdHI8QmFzZT4sIGxp
bmtlZF9wdHI8RGVyaXZlZDE+LCBhbmQKLSAgLy8gbGlua2VkX3B0cjxEZXJpdmVkMj4pLiAgVGhl
cmVmb3JlIHdlIG11c3QgdXNlIGEgc2luZ2xlIG11dGV4IHRvCi0gIC8vIHByb3RlY3QgYWxsIGxp
bmtlZF9wdHIgb2JqZWN0cy4gIFRoaXMgY2FuIGNyZWF0ZSBzZXJpb3VzCi0gIC8vIGNvbnRlbnRp
b24gaW4gcHJvZHVjdGlvbiBjb2RlLCBidXQgaXMgYWNjZXB0YWJsZSBpbiBhIHRlc3RpbmcKLSAg
Ly8gZnJhbWV3b3JrLgotCi0gIC8vIEpvaW4gYW4gZXhpc3RpbmcgY2lyY2xlLgotICB2b2lkIGpv
aW4obGlua2VkX3B0cl9pbnRlcm5hbCBjb25zdCogcHRyKQotICAgICAgR1RFU1RfTE9DS19FWENM
VURFRF8oZ19saW5rZWRfcHRyX211dGV4KSB7Ci0gICAgTXV0ZXhMb2NrIGxvY2soJmdfbGlua2Vk
X3B0cl9tdXRleCk7Ci0KLSAgICBsaW5rZWRfcHRyX2ludGVybmFsIGNvbnN0KiBwID0gcHRyOwot
ICAgIHdoaWxlIChwLT5uZXh0XyAhPSBwdHIpIHsKLSAgICAgIGFzc2VydChwLT5uZXh0XyAhPSB0
aGlzICYmCi0gICAgICAgICAgICAgIlRyeWluZyB0byBqb2luKCkgYSBsaW5rZWQgcmluZyB3ZSBh
cmUgYWxyZWFkeSBpbi4gIgotICAgICAgICAgICAgICJJcyBHTW9jayB0aHJlYWQgc2FmZXR5IGVu
YWJsZWQ/Iik7Ci0gICAgICBwID0gcC0+bmV4dF87Ci0gICAgfQotICAgIHAtPm5leHRfID0gdGhp
czsKLSAgICBuZXh0XyA9IHB0cjsKLSAgfQotCi0gIC8vIExlYXZlIHdoYXRldmVyIGNpcmNsZSB3
ZSdyZSBwYXJ0IG9mLiAgUmV0dXJucyB0cnVlIGlmIHdlIHdlcmUgdGhlCi0gIC8vIGxhc3QgbWVt
YmVyIG9mIHRoZSBjaXJjbGUuICBPbmNlIHRoaXMgaXMgZG9uZSwgeW91IGNhbiBqb2luKCkgYW5v
dGhlci4KLSAgYm9vbCBkZXBhcnQoKQotICAgICAgR1RFU1RfTE9DS19FWENMVURFRF8oZ19saW5r
ZWRfcHRyX211dGV4KSB7Ci0gICAgTXV0ZXhMb2NrIGxvY2soJmdfbGlua2VkX3B0cl9tdXRleCk7
Ci0KLSAgICBpZiAobmV4dF8gPT0gdGhpcykgcmV0dXJuIHRydWU7Ci0gICAgbGlua2VkX3B0cl9p
bnRlcm5hbCBjb25zdCogcCA9IG5leHRfOwotICAgIHdoaWxlIChwLT5uZXh0XyAhPSB0aGlzKSB7
Ci0gICAgICBhc3NlcnQocC0+bmV4dF8gIT0gbmV4dF8gJiYKLSAgICAgICAgICAgICAiVHJ5aW5n
IHRvIGRlcGFydCgpIGEgbGlua2VkIHJpbmcgd2UgYXJlIG5vdCBpbi4gIgotICAgICAgICAgICAg
ICJJcyBHTW9jayB0aHJlYWQgc2FmZXR5IGVuYWJsZWQ/Iik7Ci0gICAgICBwID0gcC0+bmV4dF87
Ci0gICAgfQotICAgIHAtPm5leHRfID0gbmV4dF87Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0K
LSBwcml2YXRlOgotICBtdXRhYmxlIGxpbmtlZF9wdHJfaW50ZXJuYWwgY29uc3QqIG5leHRfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1jbGFzcyBsaW5rZWRfcHRyIHsKLSBwdWJsaWM6
Ci0gIHR5cGVkZWYgVCBlbGVtZW50X3R5cGU7Ci0KLSAgLy8gVGFrZSBvdmVyIG93bmVyc2hpcCBv
ZiBhIHJhdyBwb2ludGVyLiAgVGhpcyBzaG91bGQgaGFwcGVuIGFzIHNvb24gYXMKLSAgLy8gcG9z
c2libGUgYWZ0ZXIgdGhlIG9iamVjdCBpcyBjcmVhdGVkLgotICBleHBsaWNpdCBsaW5rZWRfcHRy
KFQqIHB0ciA9IE5VTEwpIHsgY2FwdHVyZShwdHIpOyB9Ci0gIH5saW5rZWRfcHRyKCkgeyBkZXBh
cnQoKTsgfQotCi0gIC8vIENvcHkgYW4gZXhpc3RpbmcgbGlua2VkX3B0cjw+LCBhZGRpbmcgb3Vy
c2VsdmVzIHRvIHRoZSBsaXN0IG9mIHJlZmVyZW5jZXMuCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBV
PiBsaW5rZWRfcHRyKGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgeyBjb3B5KCZwdHIpOyB9Ci0g
IGxpbmtlZF9wdHIobGlua2VkX3B0ciBjb25zdCYgcHRyKSB7ICAvLyBOT0xJTlQKLSAgICBhc3Nl
cnQoJnB0ciAhPSB0aGlzKTsKLSAgICBjb3B5KCZwdHIpOwotICB9Ci0KLSAgLy8gQXNzaWdubWVu
dCByZWxlYXNlcyB0aGUgb2xkIHZhbHVlIGFuZCBhY3F1aXJlcyB0aGUgbmV3LgotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVT4gbGlua2VkX3B0ciYgb3BlcmF0b3I9KGxpbmtlZF9wdHI8VT4gY29uc3Qm
IHB0cikgewotICAgIGRlcGFydCgpOwotICAgIGNvcHkoJnB0cik7Ci0gICAgcmV0dXJuICp0aGlz
OwotICB9Ci0KLSAgbGlua2VkX3B0ciYgb3BlcmF0b3I9KGxpbmtlZF9wdHIgY29uc3QmIHB0cikg
ewotICAgIGlmICgmcHRyICE9IHRoaXMpIHsKLSAgICAgIGRlcGFydCgpOwotICAgICAgY29weSgm
cHRyKTsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0KLSAgLy8gU21hcnQgcG9pbnRl
ciBtZW1iZXJzLgotICB2b2lkIHJlc2V0KFQqIHB0ciA9IE5VTEwpIHsKLSAgICBkZXBhcnQoKTsK
LSAgICBjYXB0dXJlKHB0cik7Ci0gIH0KLSAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gdmFsdWVf
OyB9Ci0gIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0KLSAgVCYgb3Bl
cmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKnZhbHVlXzsgfQotCi0gIGJvb2wgb3BlcmF0b3I9PShU
KiBwKSBjb25zdCB7IHJldHVybiB2YWx1ZV8gPT0gcDsgfQotICBib29sIG9wZXJhdG9yIT0oVCog
cCkgY29uc3QgeyByZXR1cm4gdmFsdWVfICE9IHA7IH0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+
Ci0gIGJvb2wgb3BlcmF0b3I9PShsaW5rZWRfcHRyPFU+IGNvbnN0JiBwdHIpIGNvbnN0IHsKLSAg
ICByZXR1cm4gdmFsdWVfID09IHB0ci5nZXQoKTsKLSAgfQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VT4KLSAgYm9vbCBvcGVyYXRvciE9KGxpbmtlZF9wdHI8VT4gY29uc3QmIHB0cikgY29uc3Qgewot
ICAgIHJldHVybiB2YWx1ZV8gIT0gcHRyLmdldCgpOwotICB9Ci0KLSBwcml2YXRlOgotICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4KLSAgZnJpZW5kIGNsYXNzIGxpbmtlZF9wdHI7Ci0KLSAgVCogdmFs
dWVfOwotICBsaW5rZWRfcHRyX2ludGVybmFsIGxpbmtfOwotCi0gIHZvaWQgZGVwYXJ0KCkgewot
ICAgIGlmIChsaW5rXy5kZXBhcnQoKSkgZGVsZXRlIHZhbHVlXzsKLSAgfQotCi0gIHZvaWQgY2Fw
dHVyZShUKiBwdHIpIHsKLSAgICB2YWx1ZV8gPSBwdHI7Ci0gICAgbGlua18uam9pbl9uZXcoKTsK
LSAgfQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiB2b2lkIGNvcHkobGlua2VkX3B0cjxVPiBj
b25zdCogcHRyKSB7Ci0gICAgdmFsdWVfID0gcHRyLT5nZXQoKTsKLSAgICBpZiAodmFsdWVfKQot
ICAgICAgbGlua18uam9pbigmcHRyLT5saW5rXyk7Ci0gICAgZWxzZQotICAgICAgbGlua18uam9p
bl9uZXcoKTsKLSAgfQotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lCi1ib29sIG9w
ZXJhdG9yPT0oVCogcHRyLCBjb25zdCBsaW5rZWRfcHRyPFQ+JiB4KSB7Ci0gIHJldHVybiBwdHIg
PT0geC5nZXQoKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lCi1ib29sIG9wZXJh
dG9yIT0oVCogcHRyLCBjb25zdCBsaW5rZWRfcHRyPFQ+JiB4KSB7Ci0gIHJldHVybiBwdHIgIT0g
eC5nZXQoKTsKLX0KLQotLy8gQSBmdW5jdGlvbiB0byBjb252ZXJ0IFQqIGludG8gbGlua2VkX3B0
cjxUPgotLy8gRG9pbmcgZS5nLiBtYWtlX2xpbmtlZF9wdHIobmV3IEZvb0JhckJhejx0eXBlPihh
cmcpKSBpcyBhIHNob3J0ZXIgbm90YXRpb24KLS8vIGZvciBsaW5rZWRfcHRyPEZvb0JhckJhejx0
eXBlPiA+KG5ldyBGb29CYXJCYXo8dHlwZT4oYXJnKSkKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
bGlua2VkX3B0cjxUPiBtYWtlX2xpbmtlZF9wdHIoVCogcHRyKSB7Ci0gIHJldHVybiBsaW5rZWRf
cHRyPFQ+KHB0cik7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNw
YWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dU
RVNUX0xJTktFRF9QVFJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRp
bC1nZW5lcmF0ZWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZhYzhjMDI3MDNk
NTkxZWIyZjIyZWYxNDg0MWI0MjU1NmM1MDQwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0
L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1NTUyICswLDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMgR0VORVJBVEVEIGJ5IGNvbW1hbmQ6Ci0v
LyAgICAgcHVtcC5weSBndGVzdC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oLnB1bXAKLS8vIERPIE5P
VCBFRElUIEJZIEhBTkQhISEKLQotLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KLS8vIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0v
LyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0v
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotLy8gVHlwZSBhbmQgZnVuY3Rpb24gdXRpbGl0aWVzIGZvciBpbXBsZW1lbnRp
bmcgcGFyYW1ldGVyaXplZCB0ZXN0cy4KLS8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBT
Q1JJUFQuICBETyBOT1QgRURJVCBCWSBIQU5EIQotLy8KLS8vIEN1cnJlbnRseSBHb29nbGUgVGVz
dCBzdXBwb3J0cyBhdCBtb3N0IDUwIGFyZ3VtZW50cyBpbiBWYWx1ZXMsCi0vLyBhbmQgYXQgbW9z
dCAxMCBhcmd1bWVudHMgaW4gQ29tYmluZS4gUGxlYXNlIGNvbnRhY3QKLS8vIGdvb2dsZXRlc3Rm
cmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZCBtb3JlLgotLy8gUGxlYXNlIG5v
dGUgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBDb21iaW5lIGlzIGxpbWl0ZWQKLS8v
IGJ5IHRoZSBtYXhpbXVtIGFyaXR5IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0dXBsZSB3aGlj
aCBpcwotLy8gY3VycmVudGx5IHNldCBhdCAxMC4KLQotLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8g
Tk9UIERFTEVURQotCi0jaWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1Rf
UEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50
ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC5oIgotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0
LXBvcnQuaCIKLQotbmFtZXNwYWNlIHRlc3RpbmcgewotCi0vLyBGb3J3YXJkIGRlY2xhcmF0aW9u
cyBvZiBWYWx1ZXNJbigpLCB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbgotLy8gaW5jbHVkZS9ndGVz
dC9ndGVzdC1wYXJhbS10ZXN0LmguCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9y
PgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPAotICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVy
bmFsOjpJdGVyYXRvclRyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlPgotVmFsdWVz
SW4oRm9yd2FyZEl0ZXJhdG9yIGJlZ2luLCBGb3J3YXJkSXRlcmF0b3IgZW5kKTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOPgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPFQ+IFZh
bHVlc0luKGNvbnN0IFQgKCZhcnJheSlbTl0pOwotCi10ZW1wbGF0ZSA8Y2xhc3MgQ29udGFpbmVy
PgotaW50ZXJuYWw6OlBhcmFtR2VuZXJhdG9yPHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlw
ZT4gVmFsdWVzSW4oCi0gICAgY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpOwotCi1uYW1lc3Bh
Y2UgaW50ZXJuYWwgewotCi0vLyBVc2VkIGluIHRoZSBWYWx1ZXMoKSBmdW5jdGlvbiB0byBwcm92
aWRlIHBvbHltb3JwaGljIGNhcGFiaWxpdGllcy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMT4KLWNs
YXNzIFZhbHVlQXJyYXkxIHsKLSBwdWJsaWM6Ci0gIGV4cGxpY2l0IFZhbHVlQXJyYXkxKFQxIHYx
KSA6IHYxXyh2MSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFy
YW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19j
YXN0PFQ+KHYxXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MShjb25zdCBWYWx1ZUFycmF5MSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXykge30KLQot
IHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBv
cnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTEmIG90aGVyKTsKLQotICBj
b25zdCBUMSB2MV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgot
Y2xhc3MgVmFsdWVBcnJheTIgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTIoVDEgdjEsIFQyIHYy
KSA6IHYxXyh2MSksIHYyXyh2Mikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3Bl
cmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0g
e3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyl9OwotICAgIHJldHVybiBW
YWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5Mihjb25zdCBWYWx1ZUFycmF5MiYg
b3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pIHt9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFf
OwotICBjb25zdCBUMiB2Ml87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMz4KLWNsYXNzIFZhbHVlQXJyYXkzIHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXkzKFQxIHYxLCBUMiB2MiwgVDMgdjMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKX07Ci0gICAg
cmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkzKGNvbnN0IFZhbHVl
QXJyYXkzJiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2
M18ob3RoZXIudjNfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25z
dCBUMyB2M187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQ+Ci1jbGFzcyBWYWx1ZUFycmF5NCB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5NChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCkgOiB2MV8odjEpLCB2Ml8odjIp
LCB2M18odjMpLAotICAgICAgdjRfKHY0KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
ICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5
W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKX07Ci0gICAgcmV0dXJuIFZh
bHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0KGNvbnN0IFZhbHVlQXJyYXk0JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsK
LSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
PgotY2xhc3MgVmFsdWVBcnJheTUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTUoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksCi0g
ICAgICB2NF8odjQpLCB2NV8odjUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8p
fTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTUoY29u
c3QgVmFsdWVBcnJheTUmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1Xykge30K
LQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1
cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTUmIG90aGVyKTsKLQot
ICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25z
dCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDY+Ci1jbGFzcyBWYWx1ZUFycmF5NiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5
NihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2KSA6IHYxXyh2MSksIHYy
Xyh2MiksCi0gICAgICB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpIHt9Ci0KLSAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29u
c3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNf
Y2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxU
Pih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8p
fTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTYoY29u
c3QgVmFsdWVBcnJheTYmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwK
LSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2
XyhvdGhlci52Nl8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJy
YXk2JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0
IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2
XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
PgotY2xhc3MgVmFsdWVBcnJheTcgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTcoVDEgdjEsIFQy
IHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcpIDogdjFfKHYxKSwKLSAgICAg
IHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2Nykge30K
LQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4o
KSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0
YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19j
YXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5Nyhjb25zdCBWYWx1ZUFycmF5NyYgb3RoZXIpIDogdjFfKG90
aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhl
ci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIu
djdfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NyYgb3Ro
ZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187
Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNv
bnN0IFQ3IHY3XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KLWNsYXNzIFZhbHVlQXJyYXk4IHsKLSBwdWJsaWM6Ci0g
IFZhbHVlQXJyYXk4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LAotICAgICAgVDggdjgpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwg
djVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCkge30KLQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0g
ICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+
KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0Xyks
IHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRp
Y19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJ
bihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5OChjb25zdCBWYWx1ZUFycmF5OCYgb3RoZXIp
IDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyks
IHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2
N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGlt
cGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRv
cj0oY29uc3QgVmFsdWVBcnJheTgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0
IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1
XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1jbGFzcyBWYWx1ZUFycmF5OSB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5OShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2
NywgVDggdjgsCi0gICAgICBUOSB2OSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8o
djQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSB7
fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxU
PigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjlfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk5KGNvbnN0IFZhbHVlQXJyYXk5JiBvdGhlcikgOiB2MV8ob3RoZXIu
djFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0
XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18p
LCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNv
bnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1
IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsK
LSAgY29uc3QgVDkgdjlfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgot
Y2xhc3MgVmFsdWVBcnJheTEwIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxMChUMSB2MSwgVDIg
djIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAg
ICAgVDEwIHYxMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUp
LCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApIHt9
Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+
KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBz
dGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNf
Y2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKX07Ci0gICAgcmV0dXJu
IFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxMChjb25zdCBWYWx1ZUFycmF5
MTAmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhv
dGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8p
LAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwg
djEwXyhvdGhlci52MTBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTE+Ci1jbGFzcyBWYWx1ZUFycmF5MTEgewotIHB1YmxpYzoKLSAg
VmFsdWVBcnJheTExKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3
IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExKSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18odjcp
LCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTExKGNvbnN0IFZh
bHVlQXJyYXkxMSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSB7fQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MTEmIG90aGVyKTsKLQotICBj
b25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBU
NCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187
Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAg
Y29uc3QgVDExIHYxMV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTI+Ci1jbGFzcyBWYWx1ZUFycmF5MTIgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTEyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksCi0gICAg
ICB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjEx
KSwgdjEyXyh2MTIpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pfTsK
LSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTEyKGNvbnN0
IFZhbHVlQXJyYXkxMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAot
ICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZf
KG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5Xyhv
dGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEy
XyhvdGhlci52MTJfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MTImIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29u
c3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYg
djZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwot
ICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+Ci1jbGFzcyBWYWx1ZUFycmF5MTMgewotIHB1Ymxp
YzoKLSAgVmFsdWVBcnJheTEzKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCksCi0gICAgICB2
NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYx
MV8odjExKSwKLSAgICAgIHYxMl8odjEyKSwgdjEzXyh2MTMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNv
bnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0
aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2Fz
dDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKX07Ci0gICAgcmV0dXJu
IFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkxMyhjb25zdCBWYWx1ZUFycmF5
MTMmIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhv
dGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8p
LAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwg
djEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEy
XyksIHYxM18ob3RoZXIudjEzXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTEzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0PgotY2xhc3MgVmFsdWVBcnJheTE0IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkx
NChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLAotICAgICAgdjRfKHY0KSwgdjVfKHY1KSwg
djZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjEx
Xyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBz
dGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNf
Y2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nh
c3Q8VD4odjE0Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MTQoY29uc3QgVmFsdWVBcnJheTE0JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJf
KG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1Xyhv
dGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3Ro
ZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90
aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVy
LnYxNF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkxNCYg
b3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2
M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0g
IGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0
IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0
IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNT4KLWNsYXNzIFZhbHVlQXJyYXkxNSB7Ci0gcHVi
bGljOgotICBWYWx1ZUFycmF5MTUoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBU
NiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2
MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAg
IHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyks
IHYxNF8odjE0KSwgdjE1Xyh2MTUpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0
aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwot
ICB9Ci0KLSAgVmFsdWVBcnJheTE1KGNvbnN0IFZhbHVlQXJyYXkxNSYgb3RoZXIpIDogdjFfKG90
aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhl
ci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIu
djdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAot
ICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNf
KSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1Xykge30KLQotIHByaXZh
dGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4K
LSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTE1JiBvdGhlcik7Ci0KLSAgY29uc3Qg
VDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRf
OwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBj
b25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0
IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0
IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTY+Ci1jbGFzcyBW
YWx1ZUFycmF5MTYgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE2KFQxIHYxLCBUMiB2MiwgVDMg
djMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAg
djEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2
KSA6IHYxXyh2MSksCi0gICAgICB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFf
KHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAg
IHYxNl8odjE2KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJ
bihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MTYoY29uc3QgVmFsdWVBcnJheTE2JiBvdGhl
cikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNf
KSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAg
IHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3Ro
ZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNf
KG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwg
djE2XyhvdGhlci52MTZfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MTYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNz4KLWNs
YXNzIFZhbHVlQXJyYXkxNyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MTcoVDEgdjEsIFQyIHYy
LCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAg
IFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQx
NiB2MTYsCi0gICAgICBUMTcgdjE3KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNykge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXkxNyhjb25zdCBWYWx1ZUFycmF5MTcmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXkxNyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3Qg
VDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3Qg
VDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4PgotY2xhc3MgVmFsdWVBcnJheTE4
IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkxOChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwg
VDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYx
MSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywK
LSAgICAgIFQxOCB2MTgpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVf
KHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEw
KSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAgICAgdjE1
Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpIHt9Ci0KLSAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAg
IGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBz
dGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNf
Y2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nh
c3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
OF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTE4
KGNvbnN0IFZhbHVlQXJyYXkxOCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52
Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVf
KSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4Xyks
IHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFf
KSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwK
LSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3
XyksIHYxOF8ob3RoZXIudjE4Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
VmFsdWVBcnJheTE4JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87
Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNv
bnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5
IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIg
djEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUg
djE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTgg
djE4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTk+Ci1jbGFzcyBWYWx1ZUFycmF5MTkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTE5
KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwg
VDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0
LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSkgOiB2
MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLAotICAg
ICAgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8o
djEyKSwgdjEzXyh2MTMpLAotICAgICAgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwg
djE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQot
ICBWYWx1ZUFycmF5MTkoY29uc3QgVmFsdWVBcnJheTE5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFf
KSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0Xyks
IHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2
OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2
MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRf
KG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwg
djE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTE5JiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2
IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5
IHYxOV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+Ci1jbGFzcyBWYWx1ZUFycmF5MjAgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTIwKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQp
LCB2NV8odjUpLAotICAgICAgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEw
Xyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwKLSAgICAgIHYxM18odjEzKSwgdjE0Xyh2MTQp
LCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksCi0gICAgICB2MTlf
KHYxOSksIHYyMF8odjIwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4o
djEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJf
KSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+
KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5
XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwot
ICB9Ci0KLSAgVmFsdWVBcnJheTIwKGNvbnN0IFZhbHVlQXJyYXkyMCYgb3RoZXIpIDogdjFfKG90
aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhl
ci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIu
djdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAot
ICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNf
KSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIu
djE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90
aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXkyMCYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29u
c3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29u
c3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29u
c3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1jbGFzcyBWYWx1ZUFycmF5MjEgewotIHB1
YmxpYzoKLSAgVmFsdWVBcnJheTIxKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwg
VDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIg
djEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAg
VDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2
M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4
KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksCi0gICAgICB2MTJfKHYxMiksIHYxM18o
djEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAg
djE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpIHt9Ci0KLSAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qgewot
ICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxU
Pih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8p
LCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0
aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwot
ICB9Ci0KLSAgVmFsdWVBcnJheTIxKGNvbnN0IFZhbHVlQXJyYXkyMSYgb3RoZXIpIDogdjFfKG90
aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhl
ci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIu
djdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAot
ICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNf
KSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIu
djE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90
aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pIHt9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyMSYgb3RoZXIpOwotCi0gIGNvbnN0
IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0
XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAg
Y29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25z
dCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25z
dCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25z
dCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25z
dCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjI+Ci1jbGFzcyBWYWx1ZUFycmF5MjIgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTIyKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMikgOiB2MV8odjEpLCB2Ml8odjIp
LCB2M18odjMpLAotICAgICAgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhf
KHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYx
M18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3
KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMikg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1
XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYy
Ml8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTIy
KGNvbnN0IFZhbHVlQXJyYXkyMiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52
Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVf
KSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4Xyks
IHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFf
KSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwK
LSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3
XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVy
LnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pIHt9Ci0KLSBwcml2YXRl
OgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0g
IHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkyMiYgb3RoZXIpOwotCi0gIGNvbnN0IFQx
IHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsK
LSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29u
c3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBU
MTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBU
MTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBU
MTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBU
MjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotfTsKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0
LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4
LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUg
VDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVu
YW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5h
bWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjM+Ci1j
bGFzcyBWYWx1ZUFycmF5MjMgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTIzKFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMykgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwg
djRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEw
Xyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQp
LCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlf
KHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMykg
e30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8
VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyks
IHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRp
Y19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+
KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1
XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYy
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsK
LSAgfQotCi0gIFZhbHVlQXJyYXkyMyhjb25zdCBWYWx1ZUFycmF5MjMmIG90aGVyKSA6IHYxXyhv
dGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3Ro
ZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVy
LnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwK
LSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEz
XyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVy
LnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5Xyhv
dGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhl
ci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTIzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
ICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwot
ICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyND4KLWNsYXNzIFZhbHVlQXJyYXkyNCB7Ci0gcHVibGljOgotICBW
YWx1ZUFycmF5MjQoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcg
djcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2
MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBU
MTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0KSA6IHYx
Xyh2MSksCi0gICAgICB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYp
LCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFfKHYxMSks
IHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAgIHYxNl8o
djE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYy
MSksCi0gICAgICB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpIHt9Ci0KLSAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qgewot
ICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxU
Pih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8p
LCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0
aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nh
c3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTI0KGNvbnN0IFZhbHVlQXJyYXky
NCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90
aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xyks
Ci0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2
MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJf
KSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIu
djE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4
XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVy
LnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0Xyhv
dGhlci52MjRfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3Np
Z25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5
MjQmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3Qg
VDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZf
OwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBj
b25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBj
b25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBj
b25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBj
b25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBj
b25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1PgotY2xhc3MgVmFsdWVBcnJheTI1IHsKLSBw
dWJsaWM6Ci0gIFZhbHVlQXJyYXkyNShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUs
IFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEy
IHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAg
IFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQy
NCB2MjQsCi0gICAgICBUMjUgdjI1KSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgpLCB2OV8odjkpLCB2
MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwKLSAg
ICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3Rh
dGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4o
djEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJf
KSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+
KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5
XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwg
c3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1Xyl9OwotICAgIHJldHVybiBWYWx1
ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjUoY29uc3QgVmFsdWVBcnJheTI1JiBv
dGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIu
djNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAg
ICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8o
b3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2
MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVf
KSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwK
LSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIx
XyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVy
LnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXkyNSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3Qg
VDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3Qg
VDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3Qg
VDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3Qg
VDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3Qg
VDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMs
IHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUg
VDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVu
YW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5h
bWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNj4KLWNsYXNzIFZhbHVlQXJyYXkyNiB7Ci0gcHVibGlj
OgotICBWYWx1ZUFycmF5MjYoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2
NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIs
IFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTgg
djE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0
LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2
NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5
KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCks
Ci0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8o
djE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwg
djI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBU
IGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nh
c3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4o
djdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwg
c3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYx
NF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2Xyks
IHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0
YXRpY19jYXN0PFQ+KHYyNl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTI2KGNvbnN0IFZhbHVlQXJyYXkyNiYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwg
djhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAg
djExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0
XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2Xyks
IHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYx
OV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8p
LAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52
MjVfKSwgdjI2XyhvdGhlci52MjZfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MjYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjc+
Ci1jbGFzcyBWYWx1ZUFycmF5MjcgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI3KFQxIHYxLCBU
MiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0g
ICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1
LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIx
IHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYs
IFQyNyB2MjcpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwg
djZfKHY2KSwKLSAgICAgIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjEx
Xyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwKLSAgICAgIHYxNF8odjE0KSwgdjE1Xyh2MTUp
LCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksCi0gICAgICB2MjBf
KHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2
MjUpLAotICAgICAgdjI2Xyh2MjYpLCB2MjdfKHYyNykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2
MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8p
LCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0
YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBz
dGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3Xyl9OwotICAg
IHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MjcoY29uc3QgVmFs
dWVBcnJheTI3JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAg
ICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3Ro
ZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVy
LnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90
aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1
XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4Xyhv
dGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYy
MV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18p
LCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAot
ICAgICAgdjI3XyhvdGhlci52MjdfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5MjcmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYy
XzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAg
Y29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3Qg
VDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQx
MiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQx
NSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQx
OCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQy
MSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQy
NCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQy
NyB2MjdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjg+Ci1jbGFzcyBWYWx1ZUFycmF5Mjggewot
IHB1YmxpYzoKLSAgVmFsdWVBcnJheTI4KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2
NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBU
MTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAg
ICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywg
VDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgpIDogdjFf
KHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwKLSAgICAgIHY2Xyh2Niks
IHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYx
MiksCi0gICAgICB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYx
N18odjE3KSwgdjE4Xyh2MTgpLAotICAgICAgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIx
KSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwKLSAgICAgIHYyNV8odjI1KSwgdjI2
Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjI4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1
ZUFycmF5MjgoY29uc3QgVmFsdWVBcnJheTI4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJf
KG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1Xyhv
dGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3Ro
ZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90
aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVy
LnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3Xyhv
dGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYy
MF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAg
ICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2
MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52Mjhf
KSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MjgmIG90aGVy
KTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwot
ICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25z
dCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAg
djEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMg
djEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYg
djE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkg
djE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIg
djIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUg
djI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjgg
djI4XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1jbGFzcyBWYWx1
ZUFycmF5MjkgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTI5KFQxIHYxLCBUMiB2MiwgVDMgdjMs
IFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEw
LCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBU
MTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYy
MiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQy
OCB2MjgsIFQyOSB2MjkpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwKLSAg
ICAgIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEw
KSwgdjExXyh2MTEpLAotICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1
Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwKLSAgICAgIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksCi0gICAgICB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2
MjkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJh
dG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2
MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBz
dGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2Fz
dDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nh
c3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxU
Pih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
NF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8
VD4odjI5Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5MjkoY29uc3QgVmFsdWVBcnJheTI5JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90
aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhl
ci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIu
djhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVy
LnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYx
NF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhl
ci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8o
b3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2
MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZf
KG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwg
djI5XyhvdGhlci52MjlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24g
LSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1
ZUFycmF5MjkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAg
Y29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3Qg
VDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlf
OwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJf
OwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVf
OwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThf
OwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFf
OwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRf
OwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2Mjdf
OwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci19OwotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVu
YW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5
cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2
LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAs
Ci0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUg
VDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVu
YW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzA+Ci1jbGFzcyBWYWx1ZUFycmF5MzAg
ewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTMwKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBU
NSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjEx
LCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAot
ICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYy
MywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQy
OSB2MjksIFQzMCB2MzApIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwKLSAgICAgIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEw
KSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1
Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAgICAgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwKLSAgICAg
IHYyOV8odjI5KSwgdjMwXyh2MzApIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9
IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0
aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2Fz
dDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nh
c3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxU
Pih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYy
MV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8
VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2
MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8p
fTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMwKGNv
bnN0IFZhbHVlQXJyYXkzMCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8p
LAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwg
djZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5
XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwg
djEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAg
ICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3Xyks
IHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYy
MF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhl
ci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52
MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3Ro
ZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgVmFsdWVBcnJheTMwJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBU
MiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87
Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNv
bnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25z
dCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25z
dCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25z
dCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25z
dCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25z
dCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25z
dCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25z
dCBUMzAgdjMwXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVu
YW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzE+Ci1jbGFzcyBWYWx1ZUFycmF5MzEgewotIHB1Ymxp
YzoKLSAgVmFsdWVBcnJheTMxKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYg
djYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEy
LCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4
IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYy
NCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQz
MCB2MzAsIFQzMSB2MzEpIDogdjFfKHYxKSwgdjJfKHYyKSwKLSAgICAgIHYzXyh2MyksIHY0Xyh2
NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEw
KSwKLSAgICAgIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1
Xyh2MTUpLCB2MTZfKHYxNiksCi0gICAgICB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkp
LCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLAotICAgICAgdjIzXyh2MjMpLCB2MjRf
KHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwKLSAgICAg
IHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3Qg
VCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19j
YXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+
KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5Xyks
IHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2
MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8p
LCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0
YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBz
dGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4o
YXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTMxKGNvbnN0IFZhbHVlQXJyYXkzMSYgb3RoZXIp
IDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyks
IHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2
N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVy
LnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhv
dGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYx
Nl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAg
ICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2
MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRf
KSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIu
djI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMw
XyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlQXJyYXkzMSYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3Qg
VDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVf
OwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBj
b25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29u
c3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29u
c3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29u
c3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29u
c3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29u
c3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29u
c3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29u
c3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1l
IFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwK
LSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBU
MTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5h
bWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5
cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlw
ZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgs
IHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUg
VDMyPgotY2xhc3MgVmFsdWVBcnJheTMyIHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkzMihUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5
LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1
IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAs
IFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYg
djI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMy
KSA6IHYxXyh2MSksCi0gICAgICB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2
Nl8odjYpLCB2N18odjcpLCB2OF8odjgpLCB2OV8odjkpLAotICAgICAgdjEwXyh2MTApLCB2MTFf
KHYxMSksIHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwKLSAgICAg
IHYxNl8odjE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2
MjFfKHYyMSksCi0gICAgICB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYy
NSksIHYyNl8odjI2KSwgdjI3Xyh2MjcpLAotICAgICAgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYz
MF8odjMwKSwgdjMxXyh2MzEpLCB2MzJfKHYzMikge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBh
cnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0
PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3
XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0
YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBz
dGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRp
Y19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0
aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19j
YXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKX07Ci0g
ICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkzMihjb25zdCBW
YWx1ZUFycmF5MzImIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAg
ICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2Xyhv
dGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3Ro
ZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8o
b3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2
MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThf
KG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwg
djIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIz
XyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2Xyks
Ci0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYy
OV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhl
ci52MzJfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzIm
IG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMg
djNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwot
ICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25z
dCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25z
dCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25z
dCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25z
dCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25z
dCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25z
dCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25z
dCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25z
dCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMz4KLWNsYXNzIFZhbHVlQXJyYXkzMyB7Ci0gcHVibGljOgotICBWYWx1
ZUFycmF5MzMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcs
IFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMs
IFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkg
djE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1
LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMx
IHYzMSwgVDMyIHYzMiwKLSAgICAgIFQzMyB2MzMpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLAotICAgICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksCi0gICAgICB2MjdfKHYyNyksIHYy
OF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLAotICAg
ICAgdjMzXyh2MzMpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBh
cmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNf
Y2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxU
Pih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBf
KSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBz
dGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwg
c3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0
aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNf
Y2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzM18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVB
cnJheTMzKGNvbnN0IFZhbHVlQXJyYXkzMyYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhv
dGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3Ro
ZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVy
LnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhl
ci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52
MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3Ro
ZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBf
KG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAg
djIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2
XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4Xyks
IHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYz
MV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pIHt9Ci0KLSBwcml2YXRlOgot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXkzMyYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYx
XzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAg
Y29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3Qg
VDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEg
djExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQg
djE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcg
djE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAg
djIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMg
djIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYg
djI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkg
djI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIg
djMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5
cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFt
ZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlw
ZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcs
IHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUg
VDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBU
MjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5h
bWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5
cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0PgotY2xhc3MgVmFsdWVBcnJheTM0IHsKLSBwdWJsaWM6
Ci0gIFZhbHVlQXJyYXkzNChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2
LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwg
VDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2
MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQs
IFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAg
djMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCkgOiB2MV8odjEp
LCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLAot
ICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSksIHYxMl8odjEyKSwg
djEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8odjE2KSwgdjE3Xyh2
MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAgdjIxXyh2MjEpLCB2
MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwKLSAg
ICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEp
LCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMyksIHYzNF8odjM0KSB7fQotCi0gIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAg
ICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4o
djJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwg
c3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19j
YXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8
VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0
PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4o
djI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Mjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+
KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0
Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5MzQo
Y29uc3QgVmFsdWVBcnJheTM0JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYy
XyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8p
LCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwg
djlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8p
LCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAot
ICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdf
KSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIu
djIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90
aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVy
LnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5Xyhv
dGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYz
Ml8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0Xykge30KLQot
IHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBv
cnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTM0JiBvdGhlcik7Ci0KLSAg
Y29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3Qg
VDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdf
OwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0g
IGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0g
IGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0g
IGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0g
IGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0g
IGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0g
IGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0g
IGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0g
IGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzU+Ci1jbGFzcyBWYWx1ZUFycmF5MzUgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJh
eTM1KFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2
OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQg
djE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwg
VDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAg
ICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEs
IFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1KSA6IHYxXyh2MSksIHYy
Xyh2MiksIHYzXyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18odjcp
LCB2OF8odjgpLCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNf
KHYxMyksCi0gICAgICB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyks
IHYxOF8odjE4KSwgdjE5Xyh2MTkpLAotICAgICAgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8o
djIyKSwgdjIzXyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwKLSAgICAgIHYyNl8odjI2KSwg
djI3Xyh2MjcpLCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksCi0g
ICAgICB2MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSkge30KLQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25z
dCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19j
YXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+
KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2Xyks
IHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBz
dGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRp
Y19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0
aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19j
YXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNf
Y2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0
PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXkzNShjb25zdCBWYWx1ZUFycmF5MzUmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAg
djE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIy
XyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0Xyks
IHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYy
N18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8p
LAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52
MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1Xykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTM1JiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNv
bnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNv
bnN0IFQzNSB2MzVfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNj4KLWNsYXNzIFZh
bHVlQXJyYXkzNiB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5MzYoVDEgdjEsIFQyIHYyLCBUMyB2
MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2
MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYs
IFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIg
djIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywg
VDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAg
ICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYz
KSwgdjRfKHY0KSwgdjVfKHY1KSwKLSAgICAgIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5
Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksCi0gICAgICB2MTNfKHYxMyks
IHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLAot
ICAgICAgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYy
MyksIHYyNF8odjI0KSwKLSAgICAgIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYy
OF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksCi0gICAgICB2MzFfKHYzMSksIHYzMl8odjMy
KSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpIHt9Ci0KLSAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3Qg
ewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2Fz
dDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2
NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBz
dGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3Rh
dGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2Fz
dDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nh
c3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxU
Pih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
Nl8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTM2
KGNvbnN0IFZhbHVlQXJyYXkzNiYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52
Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVf
KSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4Xyks
IHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFf
KSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwK
LSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3
XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVy
LnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhv
dGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhl
ci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8o
b3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2
MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAg
ICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSB7fQotCi0gcHJpdmF0ZToKLSAg
Ly8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lk
IG9wZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5MzYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87
Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNv
bnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4
IHY4XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYx
MV87Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYx
NF87Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYx
N187Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYy
MF87Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYy
M187Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYy
Nl87Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYy
OV87Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYz
Ml87Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYz
NV87Ci0gIGNvbnN0IFQzNiB2MzZfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBl
bmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBl
bmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUg
VDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVu
YW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0
eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQy
MSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1
LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1l
IFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBl
bmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwg
dHlwZW5hbWUgVDM3PgotY2xhc3MgVmFsdWVBcnJheTM3IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJy
YXkzNyhUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDgg
djgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0
IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTks
IFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0g
ICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMx
LCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3
IHYzNykgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLAotICAgICAgdjVfKHY1
KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYx
MSksCi0gICAgICB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksIHYx
Nl8odjE2KSwgdjE3Xyh2MTcpLAotICAgICAgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIw
KSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwKLSAgICAgIHYyNF8odjI0KSwgdjI1
Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksCi0gICAg
ICB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYzMyksIHYzNF8odjM0KSwg
djM1Xyh2MzUpLAotICAgICAgdjM2Xyh2MzYpLCB2MzdfKHYzNykge30KLQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAg
Y29uc3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYy
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0
YXRpY19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19j
YXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2Fz
dDxUPih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+
KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4
XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxU
Pih2MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYy
NV8pLCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3Xyks
IHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2
MzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8p
LCBzdGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0
YXRpY19jYXN0PFQ+KHYzN18pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0K
LSAgVmFsdWVBcnJheTM3KGNvbnN0IFZhbHVlQXJyYXkzNyYgb3RoZXIpIDogdjFfKG90aGVyLnYx
XyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8p
LCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwg
djhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAg
djExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0
XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2Xyks
IHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYx
OV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8p
LAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52
MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3Ro
ZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFf
KG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90
aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3
XyhvdGhlci52MzdfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBh
c3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBWYWx1ZUFy
cmF5MzcmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQyIHYyXzsKLSAgY29u
c3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsKLSAgY29uc3QgVDYg
djZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29uc3QgVDkgdjlfOwot
ICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0IFQxMiB2MTJfOwot
ICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0IFQxNSB2MTVfOwot
ICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0IFQxOCB2MThfOwot
ICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0IFQyMSB2MjFfOwot
ICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0IFQyNCB2MjRfOwot
ICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0IFQyNyB2MjdfOwot
ICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0IFQzMCB2MzBfOwot
ICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0IFQzMyB2MzNfOwot
ICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0IFQzNiB2MzZfOwot
ICBjb25zdCBUMzcgdjM3XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4PgotY2xhc3MgVmFsdWVBcnJheTM4IHsKLSBwdWJsaWM6Ci0g
IFZhbHVlQXJyYXkzOChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBU
NyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEz
IHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgs
IFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQy
NSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMw
LCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2
IHYzNiwgVDM3IHYzNywgVDM4IHYzOCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLAotICAg
ICAgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwg
djEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2
MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2
MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYy
MyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2Mjgp
LAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNf
KHYzMyksIHYzNF8odjM0KSwKLSAgICAgIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyks
IHYzOF8odjM4KSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nh
c3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyks
IHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0
YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGlj
X2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRp
Y19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nh
c3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19j
YXN0PFQ+KHYzOF8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFs
dWVBcnJheTM4KGNvbnN0IFZhbHVlQXJyYXkzOCYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYy
XyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8o
b3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90
aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhv
dGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhl
ci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18o
b3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2
MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAg
ICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwg
djI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4
XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVy
LnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYz
NF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhl
ci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5MzgmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQy
IHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsK
LSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29u
c3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0
IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0
IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0
IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0
IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0
IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0
IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0
IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0
IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0
IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci19OwotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUg
VDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFt
ZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlw
ZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBl
bmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywg
dHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBU
MjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5h
bWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFt
ZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlw
ZW5hbWUgVDM5PgotY2xhc3MgVmFsdWVBcnJheTM5IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXkz
OShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgs
IFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYx
NCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQy
MCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAg
ICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBU
MzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYz
NywgVDM4IHYzOCwgVDM5IHYzOSkgOiB2MV8odjEpLCB2Ml8odjIpLAotICAgICAgdjNfKHYzKSwg
djRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlfKHY5KSwgdjEw
Xyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQp
LCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlf
KHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2MjNfKHYyMyks
IHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4Xyh2MjgpLAot
ICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLCB2MzNfKHYz
MyksIHYzNF8odjM0KSwKLSAgICAgIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYz
OF8odjM4KSwgdjM5Xyh2MzkpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJh
dG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtz
dGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNf
Y2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxU
Pih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYx
Ml8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8
VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2
MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8p
LCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4o
djI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2Mjhf
KSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBz
dGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwg
c3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pfTsKLSAg
ICByZXR1cm4gVmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTM5KGNvbnN0IFZh
bHVlQXJyYXkzOSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAg
ICAgdjNfKG90aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90
aGVyLnY2XyksCi0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhl
ci52OV8pLCB2MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhv
dGhlci52MTJfKSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYx
NV8ob3RoZXIudjE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8o
b3RoZXIudjE4XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2
MjFfKG90aGVyLnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNf
KSwgdjI0XyhvdGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwK
LSAgICAgIHYyN18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5
XyksIHYzMF8ob3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVy
LnYzMl8pLCB2MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1Xyhv
dGhlci52MzVfKSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhl
ci52MzhfKSwKLSAgICAgIHYzOV8ob3RoZXIudjM5Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTM5JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
ICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwot
ICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwot
ICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwot
ICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwot
ICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwot
ICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwot
ICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwot
ICBjb25zdCBUMzkgdjM5XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUg
VDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwK
LSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBU
MTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5h
bWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5
cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAg
ICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjks
IHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUg
VDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVu
YW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MD4KLWNsYXNz
IFZhbHVlQXJyYXk0MCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDAoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYy
NywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywK
LSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDApIDogdjFfKHYxKSwKLSAgICAgIHYyXyh2MiksIHYzXyh2MyksIHY0Xyh2NCks
IHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksCi0gICAgICB2MTBf
KHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2
MTUpLAotICAgICAgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2
MjBfKHYyMCksIHYyMV8odjIxKSwKLSAgICAgIHYyMl8odjIyKSwgdjIzXyh2MjMpLCB2MjRfKHYy
NCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksCi0gICAgICB2MjhfKHYyOCksIHYy
OV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMzXyh2MzMpLAotICAg
ICAgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCks
IHYzOV8odjM5KSwKLSAgICAgIHY0MF8odjQwKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFy
cmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8
VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdf
KSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3Rh
dGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0
YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRp
Y19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nh
c3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19j
YXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8
VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5NDAoY29uc3QgVmFsdWVBcnJheTQwJiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwg
djI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAg
ICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyks
IHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYz
Nl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhl
ci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBWYWx1ZUFycmF5NDAmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNvbnN0IFQy
IHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1IHY1XzsK
LSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsKLSAgY29u
c3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0gIGNvbnN0
IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0gIGNvbnN0
IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0gIGNvbnN0
IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0gIGNvbnN0
IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0gIGNvbnN0
IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0gIGNvbnN0
IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0gIGNvbnN0
IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0gIGNvbnN0
IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0gIGNvbnN0
IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0gIGNvbnN0
IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1jbGFzcyBWYWx1ZUFycmF5NDEgewotIHB1YmxpYzoK
LSAgVmFsdWVBcnJheTQxKFQxIHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYs
IFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBU
MTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYx
OCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwg
VDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2
MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBU
MzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLAotICAgICAgVDQxIHY0
MSkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYp
LCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSks
IHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8o
djE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAg
djIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYy
Nl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMw
KSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1
Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLAotICAgICAgdjM5Xyh2Mzkp
LCB2NDBfKHY0MCksIHY0MV8odjQxKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBv
cGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10g
PSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3Rh
dGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nh
c3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19j
YXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8
VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2
MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0
PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4o
djI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBf
KSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+
KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3
XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwg
c3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pfTsKLSAgICByZXR1cm4g
VmFsdWVzSW4oYXJyYXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQxKGNvbnN0IFZhbHVlQXJyYXk0
MSYgb3RoZXIpIDogdjFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90
aGVyLnYzXyksIHY0XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2Xyks
Ci0gICAgICB2N18ob3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2
MTBfKG90aGVyLnYxMF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJf
KSwgdjEzXyhvdGhlci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIu
djE1XyksIHYxNl8ob3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4
XyksCi0gICAgICB2MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVy
LnYyMV8pLCB2MjJfKG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0Xyhv
dGhlci52MjRfKSwgdjI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYy
N18ob3RoZXIudjI3XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8o
b3RoZXIudjMwXyksCi0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2
MzNfKG90aGVyLnYzM18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVf
KSwgdjM2XyhvdGhlci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwK
LSAgICAgIHYzOV8ob3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQx
Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBp
cyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQxJiBvdGhl
cik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsK
LSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29u
c3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEw
IHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEz
IHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2
IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5
IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIy
IHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1
IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4
IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMx
IHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0
IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3
IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQw
IHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQw
LAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyPgotY2xhc3MgVmFsdWVBcnJheTQyIHsK
LSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0MihUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAg
ICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQx
IHY0MSwKLSAgICAgIFQ0MiB2NDIpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0
KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwKLSAgICAgIHY4Xyh2OCksIHY5Xyh2OSksIHYx
MF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwgdjE0Xyh2MTQpLAotICAg
ICAgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSks
IHYyMF8odjIwKSwKLSAgICAgIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8o
djI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksCi0gICAgICB2MjdfKHYyNyksIHYyOF8odjI4KSwg
djI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIpLAotICAgICAgdjMzXyh2
MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4
KSwKLSAgICAgIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSB7fQot
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjxUPigp
IGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGljX2Nhc3Q8VD4odjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjNfKSwgc3RhdGljX2Nh
c3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8VD4odjhfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEwXyksIHN0YXRpY19jYXN0PFQ+
KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwgc3RhdGljX2Nhc3Q8VD4odjEz
XyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTVfKSwg
c3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYxN18pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5XyksIHN0YXRpY19jYXN0PFQ+KHYy
MF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3RhdGljX2Nhc3Q8VD4odjIyXyks
IHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjRfKSwgc3Rh
dGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0YXRpY19jYXN0PFQ+KHYyOV8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGljX2Nhc3Q8VD4odjMxXyksIHN0
YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzNfKSwgc3RhdGlj
X2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRpY19jYXN0PFQ+KHYzOF8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nhc3Q8VD4odjQwXyksIHN0YXRp
Y19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2NDJfKX07Ci0gICAgcmV0
dXJuIFZhbHVlc0luKGFycmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0Mihjb25zdCBWYWx1ZUFy
cmF5NDImIG90aGVyKSA6IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYz
XyhvdGhlci52M18pLCB2NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52
Nl8pLAotICAgICAgdjdfKG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlf
KSwgdjEwXyhvdGhlci52MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIu
djEyXyksIHYxM18ob3RoZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90
aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVy
LnYxOF8pLAotICAgICAgdjE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhv
dGhlci52MjFfKSwgdjIyXyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYy
NF8ob3RoZXIudjI0XyksIHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAg
ICB2MjdfKG90aGVyLnYyN18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2
MzBfKG90aGVyLnYzMF8pLAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJf
KSwgdjMzXyhvdGhlci52MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIu
djM1XyksIHYzNl8ob3RoZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4
XyksCi0gICAgICB2MzlfKG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVy
LnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8pIHt9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1l
bnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IFZhbHVlQXJyYXk0MiYgb3RoZXIpOwotCi0gIGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIg
djJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwot
ICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25z
dCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwotICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3Qg
VDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwotICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3Qg
VDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwotICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3Qg
VDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwotICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3Qg
VDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwotICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3Qg
VDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwotICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3Qg
VDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwotICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3Qg
VDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwotICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3Qg
VDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwotICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3Qg
VDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwotICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3Qg
VDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwotICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3Qg
VDQyIHY0Ml87Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcs
IHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUg
VDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0Mz4KLWNsYXNzIFZhbHVlQXJyYXk0MyB7Ci0g
cHVibGljOgotICBWYWx1ZUFycmF5NDMoVDEgdjEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1
LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQx
MiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAg
ICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBU
MjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYy
OSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQz
NSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2
NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzKSA6IHYxXyh2MSksIHYyXyh2MiksIHYzXyh2Myks
IHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksCi0gICAgICB2N18odjcpLCB2OF8odjgpLCB2OV8o
djkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksCi0gICAgICB2
MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4KSwgdjE5
Xyh2MTkpLAotICAgICAgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIzXyh2MjMp
LCB2MjRfKHYyNCksIHYyNV8odjI1KSwKLSAgICAgIHYyNl8odjI2KSwgdjI3Xyh2MjcpLCB2Mjhf
KHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksCi0gICAgICB2MzJfKHYzMiks
IHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2MzcpLAot
ICAgICAgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2NDJfKHY0
MiksIHY0M18odjQzKSB7fQotCi0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICBvcGVyYXRvciBQ
YXJhbUdlbmVyYXRvcjxUPigpIGNvbnN0IHsKLSAgICBjb25zdCBUIGFycmF5W10gPSB7c3RhdGlj
X2Nhc3Q8VD4odjFfKSwgc3RhdGljX2Nhc3Q8VD4odjJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjNfKSwgc3RhdGljX2Nhc3Q8VD4odjRfKSwgc3RhdGljX2Nhc3Q8VD4odjVfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjZfKSwgc3RhdGljX2Nhc3Q8VD4odjdfKSwgc3RhdGljX2Nhc3Q8
VD4odjhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjlfKSwgc3RhdGljX2Nhc3Q8VD4odjEw
XyksIHN0YXRpY19jYXN0PFQ+KHYxMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MTJfKSwg
c3RhdGljX2Nhc3Q8VD4odjEzXyksIHN0YXRpY19jYXN0PFQ+KHYxNF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxUPih2MTVfKSwgc3RhdGljX2Nhc3Q8VD4odjE2XyksIHN0YXRpY19jYXN0PFQ+KHYx
N18pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MThfKSwgc3RhdGljX2Nhc3Q8VD4odjE5Xyks
IHN0YXRpY19jYXN0PFQ+KHYyMF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjFfKSwgc3Rh
dGljX2Nhc3Q8VD4odjIyXyksIHN0YXRpY19jYXN0PFQ+KHYyM18pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxUPih2MjRfKSwgc3RhdGljX2Nhc3Q8VD4odjI1XyksIHN0YXRpY19jYXN0PFQ+KHYyNl8p
LAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MjdfKSwgc3RhdGljX2Nhc3Q8VD4odjI4XyksIHN0
YXRpY19jYXN0PFQ+KHYyOV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzBfKSwgc3RhdGlj
X2Nhc3Q8VD4odjMxXyksIHN0YXRpY19jYXN0PFQ+KHYzMl8pLAotICAgICAgICBzdGF0aWNfY2Fz
dDxUPih2MzNfKSwgc3RhdGljX2Nhc3Q8VD4odjM0XyksIHN0YXRpY19jYXN0PFQ+KHYzNV8pLAot
ICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzZfKSwgc3RhdGljX2Nhc3Q8VD4odjM3XyksIHN0YXRp
Y19jYXN0PFQ+KHYzOF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2MzlfKSwgc3RhdGljX2Nh
c3Q8VD4odjQwXyksIHN0YXRpY19jYXN0PFQ+KHY0MV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2NDJfKSwgc3RhdGljX2Nhc3Q8VD4odjQzXyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJh
eSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5NDMoY29uc3QgVmFsdWVBcnJheTQzJiBvdGhlcikgOiB2
MV8ob3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRf
KG90aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3Xyhv
dGhlci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEw
XyksCi0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVy
LnYxM18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2Xyhv
dGhlci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYx
OV8ob3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8o
b3RoZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2
MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52Mjdf
KSwgdjI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwK
LSAgICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMz
XyksIHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVy
LnYzNl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5Xyhv
dGhlci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhl
ci52NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5v
IGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgVmFsdWVBcnJheTQzJiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBj
b25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBU
NSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87
Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwot
ICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwot
ICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwot
ICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwot
ICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwot
ICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwot
ICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwot
ICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwot
ICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwot
ICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwot
ICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwot
ICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0
MywgdHlwZW5hbWUgVDQ0PgotY2xhc3MgVmFsdWVBcnJheTQ0IHsKLSBwdWJsaWM6Ci0gIFZhbHVl
QXJyYXk0NChUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2Nywg
VDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywg
VDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2
MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUs
Ci0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEg
djMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwg
VDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2
NDIsIFQ0MyB2NDMsIFQ0NCB2NDQpIDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0
KSwgdjVfKHY1KSwKLSAgICAgIHY2Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYx
MF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksCi0gICAgICB2MTNfKHYxMyksIHYxNF8odjE0
KSwgdjE1Xyh2MTUpLCB2MTZfKHYxNiksIHYxN18odjE3KSwgdjE4Xyh2MTgpLAotICAgICAgdjE5
Xyh2MTkpLCB2MjBfKHYyMCksIHYyMV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksIHYyNF8o
djI0KSwKLSAgICAgIHYyNV8odjI1KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwg
djI5Xyh2MjkpLCB2MzBfKHYzMCksCi0gICAgICB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMzXyh2
MzMpLCB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2MzYpLAotICAgICAgdjM3Xyh2MzcpLCB2
MzhfKHYzOCksIHYzOV8odjM5KSwgdjQwXyh2NDApLCB2NDFfKHY0MSksIHY0Ml8odjQyKSwKLSAg
ICAgIHY0M18odjQzKSwgdjQ0Xyh2NDQpIHt9Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0g
IG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlb
XSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBzdGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBz
dGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNfY2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2
NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBz
dGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNf
Y2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8pLCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGlj
X2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2Fz
dDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4odjIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+
KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJfKSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBzdGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nh
c3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxU
Pih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYz
MF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwgc3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8
VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2
MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8p
LCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3RhdGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNfY2FzdDxUPih2NDNfKSwgc3RhdGljX2Nhc3Q8VD4o
djQ0Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFycmF5
NDQoY29uc3QgVmFsdWVBcnJheTQ0JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90aGVy
LnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhlci52
NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIudjhf
KSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVyLnYx
MV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYxNF8p
LAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhlci52
MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8ob3Ro
ZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2MjNf
KG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZfKG90
aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwgdjI5
XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMxXyks
IHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0XyksCi0g
ICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYzN18p
LCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhlci52
NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhlci52NDJfKSwKLSAgICAgIHY0M18ob3Ro
ZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgVmFsdWVBcnJheTQ0JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBU
MiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87
Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNv
bnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25z
dCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25z
dCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25z
dCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25z
dCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25z
dCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25z
dCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25z
dCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25z
dCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25z
dCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25z
dCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25z
dCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187Ci0gIGNvbnN0IFQ0NCB2NDRfOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVu
YW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5h
bWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5
cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQy
LCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1PgotY2xhc3MgVmFsdWVB
cnJheTQ1IHsKLSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0NShUMSB2MSwgVDIgdjIsIFQzIHYzLCBU
NCB2NCwgVDUgdjUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwg
VDExIHYxMSwgVDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3
IHYxNywKLSAgICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIs
IFQyMyB2MjMsIFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjgg
djI4LCBUMjkgdjI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAg
VDM0IHYzNCwgVDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQw
IHY0MCwgVDQxIHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUp
IDogdjFfKHYxKSwgdjJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwKLSAgICAgIHY1Xyh2NSksIHY2
Xyh2NiksIHY3Xyh2NyksIHY4Xyh2OCksIHY5Xyh2OSksIHYxMF8odjEwKSwgdjExXyh2MTEpLAot
ICAgICAgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYxNF8odjE0KSwgdjE1Xyh2MTUpLCB2MTZfKHYx
NiksIHYxN18odjE3KSwKLSAgICAgIHYxOF8odjE4KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksIHYy
MV8odjIxKSwgdjIyXyh2MjIpLCB2MjNfKHYyMyksCi0gICAgICB2MjRfKHYyNCksIHYyNV8odjI1
KSwgdjI2Xyh2MjYpLCB2MjdfKHYyNyksIHYyOF8odjI4KSwgdjI5Xyh2MjkpLAotICAgICAgdjMw
Xyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwgdjMzXyh2MzMpLCB2MzRfKHYzNCksIHYzNV8o
djM1KSwKLSAgICAgIHYzNl8odjM2KSwgdjM3Xyh2MzcpLCB2MzhfKHYzOCksIHYzOV8odjM5KSwg
djQwXyh2NDApLCB2NDFfKHY0MSksCi0gICAgICB2NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2
NDQpLCB2NDVfKHY0NSkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRp
Y19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0
PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYx
MF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyks
IHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2
MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8p
LCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0
YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBz
dGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0
aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19j
YXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7
Ci0gIH0KLQotICBWYWx1ZUFycmF5NDUoY29uc3QgVmFsdWVBcnJheTQ1JiBvdGhlcikgOiB2MV8o
b3RoZXIudjFfKSwgdjJfKG90aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90
aGVyLnY0XyksIHY1XyhvdGhlci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhl
ci52N18pLCB2OF8ob3RoZXIudjhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyks
Ci0gICAgICB2MTFfKG90aGVyLnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYx
M18pLCB2MTRfKG90aGVyLnYxNF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhl
ci52MTZfKSwgdjE3XyhvdGhlci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8o
b3RoZXIudjE5XyksIHYyMF8ob3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3Ro
ZXIudjIyXyksCi0gICAgICB2MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVf
KG90aGVyLnYyNV8pLCB2MjZfKG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwg
djI4XyhvdGhlci52MjhfKSwgdjI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAg
ICAgIHYzMV8ob3RoZXIudjMxXyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyks
IHYzNF8ob3RoZXIudjM0XyksCi0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYz
Nl8pLCB2MzdfKG90aGVyLnYzN18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhl
ci52MzlfKSwgdjQwXyhvdGhlci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhlci52
NDJfKSwKLSAgICAgIHY0M18ob3RoZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0XyksIHY0NV8ob3Ro
ZXIudjQ1Xykge30KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdu
bWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQ1
JiBvdGhlcik7Ci0KLSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQz
IHYzXzsKLSAgY29uc3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsK
LSAgY29uc3QgVDcgdjdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29u
c3QgVDEwIHYxMF87Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29u
c3QgVDEzIHYxM187Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29u
c3QgVDE2IHYxNl87Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29u
c3QgVDE5IHYxOV87Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29u
c3QgVDIyIHYyMl87Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29u
c3QgVDI1IHYyNV87Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29u
c3QgVDI4IHYyOF87Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29u
c3QgVDMxIHYzMV87Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29u
c3QgVDM0IHYzNF87Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29u
c3QgVDM3IHYzN187Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29u
c3QgVDQwIHY0MF87Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29u
c3QgVDQzIHY0M187Ci0gIGNvbnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLX07Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVu
YW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0
eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0
MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFt
ZSBUNDY+Ci1jbGFzcyBWYWx1ZUFycmF5NDYgewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ2KFQx
IHYxLCBUMiB2MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkg
djksCi0gICAgICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBU
MTUgdjE1LCBUMTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYy
MCwgVDIxIHYyMSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQy
NiB2MjYsIFQyNyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2
MzIsIFQzMyB2MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBU
MzggdjM4LCBUMzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0
MywgVDQ0IHY0NCwgVDQ1IHY0NSwgVDQ2IHY0NikgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMp
LAotICAgICAgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhfKHY4KSwgdjlf
KHY5KSwgdjEwXyh2MTApLAotICAgICAgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYxM18odjEzKSwg
djE0Xyh2MTQpLCB2MTVfKHYxNSksIHYxNl8odjE2KSwKLSAgICAgIHYxN18odjE3KSwgdjE4Xyh2
MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLCB2MjJfKHYyMiksCi0gICAgICB2
MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18odjI3KSwgdjI4
Xyh2MjgpLAotICAgICAgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwgdjMyXyh2MzIp
LCB2MzNfKHYzMyksIHYzNF8odjM0KSwKLSAgICAgIHYzNV8odjM1KSwgdjM2Xyh2MzYpLCB2Mzdf
KHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLCB2NDBfKHY0MCksCi0gICAgICB2NDFfKHY0MSks
IHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksIHY0NV8odjQ1KSwgdjQ2Xyh2NDYpIHt9
Ci0KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+
KCkgY29uc3QgewotICAgIGNvbnN0IFQgYXJyYXlbXSA9IHtzdGF0aWNfY2FzdDxUPih2MV8pLCBz
dGF0aWNfY2FzdDxUPih2Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxUPih2M18pLCBzdGF0aWNf
Y2FzdDxUPih2NF8pLCBzdGF0aWNfY2FzdDxUPih2NV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxU
Pih2Nl8pLCBzdGF0aWNfY2FzdDxUPih2N18pLCBzdGF0aWNfY2FzdDxUPih2OF8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxUPih2OV8pLCBzdGF0aWNfY2FzdDxUPih2MTBfKSwgc3RhdGljX2Nhc3Q8
VD4odjExXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxMl8pLCBzdGF0aWNfY2FzdDxUPih2
MTNfKSwgc3RhdGljX2Nhc3Q8VD4odjE0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYxNV8p
LCBzdGF0aWNfY2FzdDxUPih2MTZfKSwgc3RhdGljX2Nhc3Q8VD4odjE3XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYxOF8pLCBzdGF0aWNfY2FzdDxUPih2MTlfKSwgc3RhdGljX2Nhc3Q8VD4o
djIwXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyMV8pLCBzdGF0aWNfY2FzdDxUPih2MjJf
KSwgc3RhdGljX2Nhc3Q8VD4odjIzXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYyNF8pLCBz
dGF0aWNfY2FzdDxUPih2MjVfKSwgc3RhdGljX2Nhc3Q8VD4odjI2XyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFQ+KHYyN18pLCBzdGF0aWNfY2FzdDxUPih2MjhfKSwgc3RhdGljX2Nhc3Q8VD4odjI5
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzMF8pLCBzdGF0aWNfY2FzdDxUPih2MzFfKSwg
c3RhdGljX2Nhc3Q8VD4odjMyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzM18pLCBzdGF0
aWNfY2FzdDxUPih2MzRfKSwgc3RhdGljX2Nhc3Q8VD4odjM1XyksCi0gICAgICAgIHN0YXRpY19j
YXN0PFQ+KHYzNl8pLCBzdGF0aWNfY2FzdDxUPih2MzdfKSwgc3RhdGljX2Nhc3Q8VD4odjM4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzOV8pLCBzdGF0aWNfY2FzdDxUPih2NDBfKSwgc3Rh
dGljX2Nhc3Q8VD4odjQxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY0Ml8pLCBzdGF0aWNf
Y2FzdDxUPih2NDNfKSwgc3RhdGljX2Nhc3Q8VD4odjQ0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHY0NV8pLCBzdGF0aWNfY2FzdDxUPih2NDZfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk0Nihjb25zdCBWYWx1ZUFycmF5NDYmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAg
djE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIy
XyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0Xyks
IHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYy
N18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8p
LAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52
MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3Ro
ZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2Mzlf
KG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90
aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1
XyhvdGhlci52NDVfKSwgdjQ2XyhvdGhlci52NDZfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJh
dG9yPShjb25zdCBWYWx1ZUFycmF5NDYmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0gIGNv
bnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0IFQ1
IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4XzsK
LSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87Ci0g
IGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87Ci0g
IGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187Ci0g
IGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87Ci0g
IGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187Ci0g
IGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87Ci0g
IGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87Ci0g
IGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87Ci0g
IGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87Ci0g
IGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87Ci0g
IGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87Ci0g
IGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87Ci0g
IGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLX07Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUg
VDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUg
VDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5h
bWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5
cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAg
ICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQs
IHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUg
VDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVu
YW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0
eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5
cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQz
LCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1l
IFQ0Nz4KLWNsYXNzIFZhbHVlQXJyYXk0NyB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NDcoVDEg
djEsIFQyIHYyLCBUMyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2
OSwKLSAgICAgIFQxMCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQx
NSB2MTUsIFQxNiB2MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIw
LCBUMjEgdjIxLCBUMjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2
IHYyNiwgVDI3IHYyNywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYz
MiwgVDMzIHYzMywKLSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQz
OCB2MzgsIFQzOSB2MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQz
LCBUNDQgdjQ0LCBUNDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3KSA6IHYxXyh2MSksIHYyXyh2Miks
Ci0gICAgICB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYpLCB2N18odjcpLCB2OF8o
djgpLCB2OV8odjkpLCB2MTBfKHYxMCksCi0gICAgICB2MTFfKHYxMSksIHYxMl8odjEyKSwgdjEz
Xyh2MTMpLCB2MTRfKHYxNCksIHYxNV8odjE1KSwgdjE2Xyh2MTYpLAotICAgICAgdjE3Xyh2MTcp
LCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLCB2MjFfKHYyMSksIHYyMl8odjIyKSwK
LSAgICAgIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYyNl8odjI2KSwgdjI3Xyh2
MjcpLCB2MjhfKHYyOCksCi0gICAgICB2MjlfKHYyOSksIHYzMF8odjMwKSwgdjMxXyh2MzEpLCB2
MzJfKHYzMiksIHYzM18odjMzKSwgdjM0Xyh2MzQpLAotICAgICAgdjM1Xyh2MzUpLCB2MzZfKHYz
NiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLCB2MzlfKHYzOSksIHY0MF8odjQwKSwKLSAgICAgIHY0
MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwgdjQ1Xyh2NDUpLCB2NDZf
KHY0NiksCi0gICAgICB2NDdfKHY0Nykge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAg
b3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtd
ID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0
YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19j
YXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNf
Y2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0
PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4o
djIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2Fz
dDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+
KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMw
XyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxU
Pih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYz
N18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5Xyks
IHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2
NDRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8p
LCBzdGF0aWNfY2FzdDxUPih2NDdfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFycmF5KTsKLSAg
fQotCi0gIFZhbHVlQXJyYXk0Nyhjb25zdCBWYWx1ZUFycmF5NDcmIG90aGVyKSA6IHYxXyhvdGhl
ci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2NF8ob3RoZXIu
djRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdfKG90aGVyLnY3
XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52MTBfKSwKLSAg
ICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3RoZXIudjEzXyks
IHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZfKG90aGVyLnYx
Nl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAgdjE5XyhvdGhl
ci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIyXyhvdGhlci52
MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0XyksIHYyNV8ob3Ro
ZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYyN18pLCB2Mjhf
KG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8pLAotICAgICAg
djMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52MzNfKSwgdjM0
XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3RoZXIudjM2Xyks
IHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2MzlfKG90aGVyLnYz
OV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90aGVyLnY0Ml8p
LAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1XyhvdGhlci52
NDVfKSwgdjQ2XyhvdGhlci52NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3Xykge30KLQotIHBy
aXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRl
ZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTQ3JiBvdGhlcik7Ci0KLSAgY29u
c3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29uc3QgVDQg
djRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcgdjdfOwot
ICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87Ci0gIGNv
bnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187Ci0gIGNv
bnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87Ci0gIGNv
bnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87Ci0gIGNv
bnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87Ci0gIGNv
bnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87Ci0gIGNv
bnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87Ci0gIGNv
bnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87Ci0gIGNv
bnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87Ci0gIGNv
bnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187Ci0gIGNv
bnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87Ci0gIGNv
bnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187Ci0gIGNv
bnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLSAgY29uc3QgVDQ2IHY0Nl87Ci0gIGNv
bnN0IFQ0NyB2NDdfOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVu
YW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5h
bWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDg+Ci1j
bGFzcyBWYWx1ZUFycmF5NDggewotIHB1YmxpYzoKLSAgVmFsdWVBcnJheTQ4KFQxIHYxLCBUMiB2
MiwgVDMgdjMsIFQ0IHY0LCBUNSB2NSwgVDYgdjYsIFQ3IHY3LCBUOCB2OCwgVDkgdjksCi0gICAg
ICBUMTAgdjEwLCBUMTEgdjExLCBUMTIgdjEyLCBUMTMgdjEzLCBUMTQgdjE0LCBUMTUgdjE1LCBU
MTYgdjE2LCBUMTcgdjE3LAotICAgICAgVDE4IHYxOCwgVDE5IHYxOSwgVDIwIHYyMCwgVDIxIHYy
MSwgVDIyIHYyMiwgVDIzIHYyMywgVDI0IHYyNCwgVDI1IHYyNSwKLSAgICAgIFQyNiB2MjYsIFQy
NyB2MjcsIFQyOCB2MjgsIFQyOSB2MjksIFQzMCB2MzAsIFQzMSB2MzEsIFQzMiB2MzIsIFQzMyB2
MzMsCi0gICAgICBUMzQgdjM0LCBUMzUgdjM1LCBUMzYgdjM2LCBUMzcgdjM3LCBUMzggdjM4LCBU
MzkgdjM5LCBUNDAgdjQwLCBUNDEgdjQxLAotICAgICAgVDQyIHY0MiwgVDQzIHY0MywgVDQ0IHY0
NCwgVDQ1IHY0NSwgVDQ2IHY0NiwgVDQ3IHY0NywgVDQ4IHY0OCkgOiB2MV8odjEpLAotICAgICAg
djJfKHYyKSwgdjNfKHYzKSwgdjRfKHY0KSwgdjVfKHY1KSwgdjZfKHY2KSwgdjdfKHY3KSwgdjhf
KHY4KSwgdjlfKHY5KSwKLSAgICAgIHYxMF8odjEwKSwgdjExXyh2MTEpLCB2MTJfKHYxMiksIHYx
M18odjEzKSwgdjE0Xyh2MTQpLCB2MTVfKHYxNSksCi0gICAgICB2MTZfKHYxNiksIHYxN18odjE3
KSwgdjE4Xyh2MTgpLCB2MTlfKHYxOSksIHYyMF8odjIwKSwgdjIxXyh2MjEpLAotICAgICAgdjIy
Xyh2MjIpLCB2MjNfKHYyMyksIHYyNF8odjI0KSwgdjI1Xyh2MjUpLCB2MjZfKHYyNiksIHYyN18o
djI3KSwKLSAgICAgIHYyOF8odjI4KSwgdjI5Xyh2MjkpLCB2MzBfKHYzMCksIHYzMV8odjMxKSwg
djMyXyh2MzIpLCB2MzNfKHYzMyksCi0gICAgICB2MzRfKHYzNCksIHYzNV8odjM1KSwgdjM2Xyh2
MzYpLCB2MzdfKHYzNyksIHYzOF8odjM4KSwgdjM5Xyh2MzkpLAotICAgICAgdjQwXyh2NDApLCB2
NDFfKHY0MSksIHY0Ml8odjQyKSwgdjQzXyh2NDMpLCB2NDRfKHY0NCksIHY0NV8odjQ1KSwKLSAg
ICAgIHY0Nl8odjQ2KSwgdjQ3Xyh2NDcpLCB2NDhfKHY0OCkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4Xyks
IHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2
MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8p
LCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0
YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBz
dGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRp
Y19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0
aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19j
YXN0PFQ+KHY0Nl8pLCBzdGF0aWNfY2FzdDxUPih2NDdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjQ4Xyl9OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0KLQotICBWYWx1ZUFy
cmF5NDgoY29uc3QgVmFsdWVBcnJheTQ4JiBvdGhlcikgOiB2MV8ob3RoZXIudjFfKSwgdjJfKG90
aGVyLnYyXyksCi0gICAgICB2M18ob3RoZXIudjNfKSwgdjRfKG90aGVyLnY0XyksIHY1XyhvdGhl
ci52NV8pLCB2Nl8ob3RoZXIudjZfKSwKLSAgICAgIHY3XyhvdGhlci52N18pLCB2OF8ob3RoZXIu
djhfKSwgdjlfKG90aGVyLnY5XyksIHYxMF8ob3RoZXIudjEwXyksCi0gICAgICB2MTFfKG90aGVy
LnYxMV8pLCB2MTJfKG90aGVyLnYxMl8pLCB2MTNfKG90aGVyLnYxM18pLCB2MTRfKG90aGVyLnYx
NF8pLAotICAgICAgdjE1XyhvdGhlci52MTVfKSwgdjE2XyhvdGhlci52MTZfKSwgdjE3XyhvdGhl
ci52MTdfKSwgdjE4XyhvdGhlci52MThfKSwKLSAgICAgIHYxOV8ob3RoZXIudjE5XyksIHYyMF8o
b3RoZXIudjIwXyksIHYyMV8ob3RoZXIudjIxXyksIHYyMl8ob3RoZXIudjIyXyksCi0gICAgICB2
MjNfKG90aGVyLnYyM18pLCB2MjRfKG90aGVyLnYyNF8pLCB2MjVfKG90aGVyLnYyNV8pLCB2MjZf
KG90aGVyLnYyNl8pLAotICAgICAgdjI3XyhvdGhlci52MjdfKSwgdjI4XyhvdGhlci52MjhfKSwg
djI5XyhvdGhlci52MjlfKSwgdjMwXyhvdGhlci52MzBfKSwKLSAgICAgIHYzMV8ob3RoZXIudjMx
XyksIHYzMl8ob3RoZXIudjMyXyksIHYzM18ob3RoZXIudjMzXyksIHYzNF8ob3RoZXIudjM0Xyks
Ci0gICAgICB2MzVfKG90aGVyLnYzNV8pLCB2MzZfKG90aGVyLnYzNl8pLCB2MzdfKG90aGVyLnYz
N18pLCB2MzhfKG90aGVyLnYzOF8pLAotICAgICAgdjM5XyhvdGhlci52MzlfKSwgdjQwXyhvdGhl
ci52NDBfKSwgdjQxXyhvdGhlci52NDFfKSwgdjQyXyhvdGhlci52NDJfKSwKLSAgICAgIHY0M18o
b3RoZXIudjQzXyksIHY0NF8ob3RoZXIudjQ0XyksIHY0NV8ob3RoZXIudjQ1XyksIHY0Nl8ob3Ro
ZXIudjQ2XyksCi0gICAgICB2NDdfKG90aGVyLnY0N18pLCB2NDhfKG90aGVyLnY0OF8pIHt9Ci0K
LSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBw
b3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IFZhbHVlQXJyYXk0OCYgb3RoZXIpOwotCi0g
IGNvbnN0IFQxIHYxXzsKLSAgY29uc3QgVDIgdjJfOwotICBjb25zdCBUMyB2M187Ci0gIGNvbnN0
IFQ0IHY0XzsKLSAgY29uc3QgVDUgdjVfOwotICBjb25zdCBUNiB2Nl87Ci0gIGNvbnN0IFQ3IHY3
XzsKLSAgY29uc3QgVDggdjhfOwotICBjb25zdCBUOSB2OV87Ci0gIGNvbnN0IFQxMCB2MTBfOwot
ICBjb25zdCBUMTEgdjExXzsKLSAgY29uc3QgVDEyIHYxMl87Ci0gIGNvbnN0IFQxMyB2MTNfOwot
ICBjb25zdCBUMTQgdjE0XzsKLSAgY29uc3QgVDE1IHYxNV87Ci0gIGNvbnN0IFQxNiB2MTZfOwot
ICBjb25zdCBUMTcgdjE3XzsKLSAgY29uc3QgVDE4IHYxOF87Ci0gIGNvbnN0IFQxOSB2MTlfOwot
ICBjb25zdCBUMjAgdjIwXzsKLSAgY29uc3QgVDIxIHYyMV87Ci0gIGNvbnN0IFQyMiB2MjJfOwot
ICBjb25zdCBUMjMgdjIzXzsKLSAgY29uc3QgVDI0IHYyNF87Ci0gIGNvbnN0IFQyNSB2MjVfOwot
ICBjb25zdCBUMjYgdjI2XzsKLSAgY29uc3QgVDI3IHYyN187Ci0gIGNvbnN0IFQyOCB2MjhfOwot
ICBjb25zdCBUMjkgdjI5XzsKLSAgY29uc3QgVDMwIHYzMF87Ci0gIGNvbnN0IFQzMSB2MzFfOwot
ICBjb25zdCBUMzIgdjMyXzsKLSAgY29uc3QgVDMzIHYzM187Ci0gIGNvbnN0IFQzNCB2MzRfOwot
ICBjb25zdCBUMzUgdjM1XzsKLSAgY29uc3QgVDM2IHYzNl87Ci0gIGNvbnN0IFQzNyB2MzdfOwot
ICBjb25zdCBUMzggdjM4XzsKLSAgY29uc3QgVDM5IHYzOV87Ci0gIGNvbnN0IFQ0MCB2NDBfOwot
ICBjb25zdCBUNDEgdjQxXzsKLSAgY29uc3QgVDQyIHY0Ml87Ci0gIGNvbnN0IFQ0MyB2NDNfOwot
ICBjb25zdCBUNDQgdjQ0XzsKLSAgY29uc3QgVDQ1IHY0NV87Ci0gIGNvbnN0IFQ0NiB2NDZfOwot
ICBjb25zdCBUNDcgdjQ3XzsKLSAgY29uc3QgVDQ4IHY0OF87Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0
MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFt
ZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5PgotY2xhc3MgVmFsdWVBcnJheTQ5IHsK
LSBwdWJsaWM6Ci0gIFZhbHVlQXJyYXk0OShUMSB2MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCwgVDUg
djUsIFQ2IHY2LCBUNyB2NywgVDggdjgsIFQ5IHY5LAotICAgICAgVDEwIHYxMCwgVDExIHYxMSwg
VDEyIHYxMiwgVDEzIHYxMywgVDE0IHYxNCwgVDE1IHYxNSwgVDE2IHYxNiwgVDE3IHYxNywKLSAg
ICAgIFQxOCB2MTgsIFQxOSB2MTksIFQyMCB2MjAsIFQyMSB2MjEsIFQyMiB2MjIsIFQyMyB2MjMs
IFQyNCB2MjQsIFQyNSB2MjUsCi0gICAgICBUMjYgdjI2LCBUMjcgdjI3LCBUMjggdjI4LCBUMjkg
djI5LCBUMzAgdjMwLCBUMzEgdjMxLCBUMzIgdjMyLCBUMzMgdjMzLAotICAgICAgVDM0IHYzNCwg
VDM1IHYzNSwgVDM2IHYzNiwgVDM3IHYzNywgVDM4IHYzOCwgVDM5IHYzOSwgVDQwIHY0MCwgVDQx
IHY0MSwKLSAgICAgIFQ0MiB2NDIsIFQ0MyB2NDMsIFQ0NCB2NDQsIFQ0NSB2NDUsIFQ0NiB2NDYs
IFQ0NyB2NDcsIFQ0OCB2NDgsCi0gICAgICBUNDkgdjQ5KSA6IHYxXyh2MSksIHYyXyh2MiksIHYz
Xyh2MyksIHY0Xyh2NCksIHY1Xyh2NSksIHY2Xyh2NiksIHY3Xyh2NyksCi0gICAgICB2OF8odjgp
LCB2OV8odjkpLCB2MTBfKHYxMCksIHYxMV8odjExKSwgdjEyXyh2MTIpLCB2MTNfKHYxMyksIHYx
NF8odjE0KSwKLSAgICAgIHYxNV8odjE1KSwgdjE2Xyh2MTYpLCB2MTdfKHYxNyksIHYxOF8odjE4
KSwgdjE5Xyh2MTkpLCB2MjBfKHYyMCksCi0gICAgICB2MjFfKHYyMSksIHYyMl8odjIyKSwgdjIz
Xyh2MjMpLCB2MjRfKHYyNCksIHYyNV8odjI1KSwgdjI2Xyh2MjYpLAotICAgICAgdjI3Xyh2Mjcp
LCB2MjhfKHYyOCksIHYyOV8odjI5KSwgdjMwXyh2MzApLCB2MzFfKHYzMSksIHYzMl8odjMyKSwK
LSAgICAgIHYzM18odjMzKSwgdjM0Xyh2MzQpLCB2MzVfKHYzNSksIHYzNl8odjM2KSwgdjM3Xyh2
MzcpLCB2MzhfKHYzOCksCi0gICAgICB2MzlfKHYzOSksIHY0MF8odjQwKSwgdjQxXyh2NDEpLCB2
NDJfKHY0MiksIHY0M18odjQzKSwgdjQ0Xyh2NDQpLAotICAgICAgdjQ1Xyh2NDUpLCB2NDZfKHY0
NiksIHY0N18odjQ3KSwgdjQ4Xyh2NDgpLCB2NDlfKHY0OSkge30KLQotICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29u
c3QgVCBhcnJheVtdID0ge3N0YXRpY19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRp
Y19jYXN0PFQ+KHY1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0
PFQ+KHY3XyksIHN0YXRpY19jYXN0PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5
XyksIHN0YXRpY19jYXN0PFQ+KHYxMF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8VD4odjEyXyksIHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxU
Pih2MTRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYx
Nl8pLCBzdGF0aWNfY2FzdDxUPih2MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4Xyks
IHN0YXRpY19jYXN0PFQ+KHYxOV8pLCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjIxXyksIHN0YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2
MjNfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8p
LCBzdGF0aWNfY2FzdDxUPih2MjZfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0
YXRpY19jYXN0PFQ+KHYyOF8pLCBzdGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjMwXyksIHN0YXRpY19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBz
dGF0aWNfY2FzdDxUPih2MzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRp
Y19jYXN0PFQ+KHYzN18pLCBzdGF0aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjM5XyksIHN0YXRpY19jYXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0
aWNfY2FzdDxUPih2NDRfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19j
YXN0PFQ+KHY0Nl8pLCBzdGF0aWNfY2FzdDxUPih2NDdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjQ4XyksIHN0YXRpY19jYXN0PFQ+KHY0OV8pfTsKLSAgICByZXR1cm4gVmFsdWVzSW4oYXJy
YXkpOwotICB9Ci0KLSAgVmFsdWVBcnJheTQ5KGNvbnN0IFZhbHVlQXJyYXk0OSYgb3RoZXIpIDog
djFfKG90aGVyLnYxXyksIHYyXyhvdGhlci52Ml8pLAotICAgICAgdjNfKG90aGVyLnYzXyksIHY0
XyhvdGhlci52NF8pLCB2NV8ob3RoZXIudjVfKSwgdjZfKG90aGVyLnY2XyksCi0gICAgICB2N18o
b3RoZXIudjdfKSwgdjhfKG90aGVyLnY4XyksIHY5XyhvdGhlci52OV8pLCB2MTBfKG90aGVyLnYx
MF8pLAotICAgICAgdjExXyhvdGhlci52MTFfKSwgdjEyXyhvdGhlci52MTJfKSwgdjEzXyhvdGhl
ci52MTNfKSwgdjE0XyhvdGhlci52MTRfKSwKLSAgICAgIHYxNV8ob3RoZXIudjE1XyksIHYxNl8o
b3RoZXIudjE2XyksIHYxN18ob3RoZXIudjE3XyksIHYxOF8ob3RoZXIudjE4XyksCi0gICAgICB2
MTlfKG90aGVyLnYxOV8pLCB2MjBfKG90aGVyLnYyMF8pLCB2MjFfKG90aGVyLnYyMV8pLCB2MjJf
KG90aGVyLnYyMl8pLAotICAgICAgdjIzXyhvdGhlci52MjNfKSwgdjI0XyhvdGhlci52MjRfKSwg
djI1XyhvdGhlci52MjVfKSwgdjI2XyhvdGhlci52MjZfKSwKLSAgICAgIHYyN18ob3RoZXIudjI3
XyksIHYyOF8ob3RoZXIudjI4XyksIHYyOV8ob3RoZXIudjI5XyksIHYzMF8ob3RoZXIudjMwXyks
Ci0gICAgICB2MzFfKG90aGVyLnYzMV8pLCB2MzJfKG90aGVyLnYzMl8pLCB2MzNfKG90aGVyLnYz
M18pLCB2MzRfKG90aGVyLnYzNF8pLAotICAgICAgdjM1XyhvdGhlci52MzVfKSwgdjM2XyhvdGhl
ci52MzZfKSwgdjM3XyhvdGhlci52MzdfKSwgdjM4XyhvdGhlci52MzhfKSwKLSAgICAgIHYzOV8o
b3RoZXIudjM5XyksIHY0MF8ob3RoZXIudjQwXyksIHY0MV8ob3RoZXIudjQxXyksIHY0Ml8ob3Ro
ZXIudjQyXyksCi0gICAgICB2NDNfKG90aGVyLnY0M18pLCB2NDRfKG90aGVyLnY0NF8pLCB2NDVf
KG90aGVyLnY0NV8pLCB2NDZfKG90aGVyLnY0Nl8pLAotICAgICAgdjQ3XyhvdGhlci52NDdfKSwg
djQ4XyhvdGhlci52NDhfKSwgdjQ5XyhvdGhlci52NDlfKSB7fQotCi0gcHJpdmF0ZToKLSAgLy8g
Tm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9w
ZXJhdG9yPShjb25zdCBWYWx1ZUFycmF5NDkmIG90aGVyKTsKLQotICBjb25zdCBUMSB2MV87Ci0g
IGNvbnN0IFQyIHYyXzsKLSAgY29uc3QgVDMgdjNfOwotICBjb25zdCBUNCB2NF87Ci0gIGNvbnN0
IFQ1IHY1XzsKLSAgY29uc3QgVDYgdjZfOwotICBjb25zdCBUNyB2N187Ci0gIGNvbnN0IFQ4IHY4
XzsKLSAgY29uc3QgVDkgdjlfOwotICBjb25zdCBUMTAgdjEwXzsKLSAgY29uc3QgVDExIHYxMV87
Ci0gIGNvbnN0IFQxMiB2MTJfOwotICBjb25zdCBUMTMgdjEzXzsKLSAgY29uc3QgVDE0IHYxNF87
Ci0gIGNvbnN0IFQxNSB2MTVfOwotICBjb25zdCBUMTYgdjE2XzsKLSAgY29uc3QgVDE3IHYxN187
Ci0gIGNvbnN0IFQxOCB2MThfOwotICBjb25zdCBUMTkgdjE5XzsKLSAgY29uc3QgVDIwIHYyMF87
Ci0gIGNvbnN0IFQyMSB2MjFfOwotICBjb25zdCBUMjIgdjIyXzsKLSAgY29uc3QgVDIzIHYyM187
Ci0gIGNvbnN0IFQyNCB2MjRfOwotICBjb25zdCBUMjUgdjI1XzsKLSAgY29uc3QgVDI2IHYyNl87
Ci0gIGNvbnN0IFQyNyB2MjdfOwotICBjb25zdCBUMjggdjI4XzsKLSAgY29uc3QgVDI5IHYyOV87
Ci0gIGNvbnN0IFQzMCB2MzBfOwotICBjb25zdCBUMzEgdjMxXzsKLSAgY29uc3QgVDMyIHYzMl87
Ci0gIGNvbnN0IFQzMyB2MzNfOwotICBjb25zdCBUMzQgdjM0XzsKLSAgY29uc3QgVDM1IHYzNV87
Ci0gIGNvbnN0IFQzNiB2MzZfOwotICBjb25zdCBUMzcgdjM3XzsKLSAgY29uc3QgVDM4IHYzOF87
Ci0gIGNvbnN0IFQzOSB2MzlfOwotICBjb25zdCBUNDAgdjQwXzsKLSAgY29uc3QgVDQxIHY0MV87
Ci0gIGNvbnN0IFQ0MiB2NDJfOwotICBjb25zdCBUNDMgdjQzXzsKLSAgY29uc3QgVDQ0IHY0NF87
Ci0gIGNvbnN0IFQ0NSB2NDVfOwotICBjb25zdCBUNDYgdjQ2XzsKLSAgY29uc3QgVDQ3IHY0N187
Ci0gIGNvbnN0IFQ0OCB2NDhfOwotICBjb25zdCBUNDkgdjQ5XzsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBU
MjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5h
bWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5
cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAg
ICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzks
IHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUg
VDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVu
YW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIFQ1MD4KLWNsYXNz
IFZhbHVlQXJyYXk1MCB7Ci0gcHVibGljOgotICBWYWx1ZUFycmF5NTAoVDEgdjEsIFQyIHYyLCBU
MyB2MywgVDQgdjQsIFQ1IHY1LCBUNiB2NiwgVDcgdjcsIFQ4IHY4LCBUOSB2OSwKLSAgICAgIFQx
MCB2MTAsIFQxMSB2MTEsIFQxMiB2MTIsIFQxMyB2MTMsIFQxNCB2MTQsIFQxNSB2MTUsIFQxNiB2
MTYsIFQxNyB2MTcsCi0gICAgICBUMTggdjE4LCBUMTkgdjE5LCBUMjAgdjIwLCBUMjEgdjIxLCBU
MjIgdjIyLCBUMjMgdjIzLCBUMjQgdjI0LCBUMjUgdjI1LAotICAgICAgVDI2IHYyNiwgVDI3IHYy
NywgVDI4IHYyOCwgVDI5IHYyOSwgVDMwIHYzMCwgVDMxIHYzMSwgVDMyIHYzMiwgVDMzIHYzMywK
LSAgICAgIFQzNCB2MzQsIFQzNSB2MzUsIFQzNiB2MzYsIFQzNyB2MzcsIFQzOCB2MzgsIFQzOSB2
MzksIFQ0MCB2NDAsIFQ0MSB2NDEsCi0gICAgICBUNDIgdjQyLCBUNDMgdjQzLCBUNDQgdjQ0LCBU
NDUgdjQ1LCBUNDYgdjQ2LCBUNDcgdjQ3LCBUNDggdjQ4LCBUNDkgdjQ5LAotICAgICAgVDUwIHY1
MCkgOiB2MV8odjEpLCB2Ml8odjIpLCB2M18odjMpLCB2NF8odjQpLCB2NV8odjUpLCB2Nl8odjYp
LCB2N18odjcpLAotICAgICAgdjhfKHY4KSwgdjlfKHY5KSwgdjEwXyh2MTApLCB2MTFfKHYxMSks
IHYxMl8odjEyKSwgdjEzXyh2MTMpLCB2MTRfKHYxNCksCi0gICAgICB2MTVfKHYxNSksIHYxNl8o
djE2KSwgdjE3Xyh2MTcpLCB2MThfKHYxOCksIHYxOV8odjE5KSwgdjIwXyh2MjApLAotICAgICAg
djIxXyh2MjEpLCB2MjJfKHYyMiksIHYyM18odjIzKSwgdjI0Xyh2MjQpLCB2MjVfKHYyNSksIHYy
Nl8odjI2KSwKLSAgICAgIHYyN18odjI3KSwgdjI4Xyh2MjgpLCB2MjlfKHYyOSksIHYzMF8odjMw
KSwgdjMxXyh2MzEpLCB2MzJfKHYzMiksCi0gICAgICB2MzNfKHYzMyksIHYzNF8odjM0KSwgdjM1
Xyh2MzUpLCB2MzZfKHYzNiksIHYzN18odjM3KSwgdjM4Xyh2MzgpLAotICAgICAgdjM5Xyh2Mzkp
LCB2NDBfKHY0MCksIHY0MV8odjQxKSwgdjQyXyh2NDIpLCB2NDNfKHY0MyksIHY0NF8odjQ0KSwK
LSAgICAgIHY0NV8odjQ1KSwgdjQ2Xyh2NDYpLCB2NDdfKHY0NyksIHY0OF8odjQ4KSwgdjQ5Xyh2
NDkpLCB2NTBfKHY1MCkge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0ge3N0YXRp
Y19jYXN0PFQ+KHYxXyksIHN0YXRpY19jYXN0PFQ+KHYyXyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFQ+KHYzXyksIHN0YXRpY19jYXN0PFQ+KHY0XyksIHN0YXRpY19jYXN0PFQ+KHY1XyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFQ+KHY2XyksIHN0YXRpY19jYXN0PFQ+KHY3XyksIHN0YXRpY19jYXN0
PFQ+KHY4XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFQ+KHY5XyksIHN0YXRpY19jYXN0PFQ+KHYx
MF8pLCBzdGF0aWNfY2FzdDxUPih2MTFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjEyXyks
IHN0YXRpY19jYXN0PFQ+KHYxM18pLCBzdGF0aWNfY2FzdDxUPih2MTRfKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8VD4odjE1XyksIHN0YXRpY19jYXN0PFQ+KHYxNl8pLCBzdGF0aWNfY2FzdDxUPih2
MTdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjE4XyksIHN0YXRpY19jYXN0PFQ+KHYxOV8p
LCBzdGF0aWNfY2FzdDxUPih2MjBfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjIxXyksIHN0
YXRpY19jYXN0PFQ+KHYyMl8pLCBzdGF0aWNfY2FzdDxUPih2MjNfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8VD4odjI0XyksIHN0YXRpY19jYXN0PFQ+KHYyNV8pLCBzdGF0aWNfY2FzdDxUPih2MjZf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjI3XyksIHN0YXRpY19jYXN0PFQ+KHYyOF8pLCBz
dGF0aWNfY2FzdDxUPih2MjlfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjMwXyksIHN0YXRp
Y19jYXN0PFQ+KHYzMV8pLCBzdGF0aWNfY2FzdDxUPih2MzJfKSwKLSAgICAgICAgc3RhdGljX2Nh
c3Q8VD4odjMzXyksIHN0YXRpY19jYXN0PFQ+KHYzNF8pLCBzdGF0aWNfY2FzdDxUPih2MzVfKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM2XyksIHN0YXRpY19jYXN0PFQ+KHYzN18pLCBzdGF0
aWNfY2FzdDxUPih2MzhfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjM5XyksIHN0YXRpY19j
YXN0PFQ+KHY0MF8pLCBzdGF0aWNfY2FzdDxUPih2NDFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
VD4odjQyXyksIHN0YXRpY19jYXN0PFQ+KHY0M18pLCBzdGF0aWNfY2FzdDxUPih2NDRfKSwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ1XyksIHN0YXRpY19jYXN0PFQ+KHY0Nl8pLCBzdGF0aWNf
Y2FzdDxUPih2NDdfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8VD4odjQ4XyksIHN0YXRpY19jYXN0
PFQ+KHY0OV8pLCBzdGF0aWNfY2FzdDxUPih2NTBfKX07Ci0gICAgcmV0dXJuIFZhbHVlc0luKGFy
cmF5KTsKLSAgfQotCi0gIFZhbHVlQXJyYXk1MChjb25zdCBWYWx1ZUFycmF5NTAmIG90aGVyKSA6
IHYxXyhvdGhlci52MV8pLCB2Ml8ob3RoZXIudjJfKSwKLSAgICAgIHYzXyhvdGhlci52M18pLCB2
NF8ob3RoZXIudjRfKSwgdjVfKG90aGVyLnY1XyksIHY2XyhvdGhlci52Nl8pLAotICAgICAgdjdf
KG90aGVyLnY3XyksIHY4XyhvdGhlci52OF8pLCB2OV8ob3RoZXIudjlfKSwgdjEwXyhvdGhlci52
MTBfKSwKLSAgICAgIHYxMV8ob3RoZXIudjExXyksIHYxMl8ob3RoZXIudjEyXyksIHYxM18ob3Ro
ZXIudjEzXyksIHYxNF8ob3RoZXIudjE0XyksCi0gICAgICB2MTVfKG90aGVyLnYxNV8pLCB2MTZf
KG90aGVyLnYxNl8pLCB2MTdfKG90aGVyLnYxN18pLCB2MThfKG90aGVyLnYxOF8pLAotICAgICAg
djE5XyhvdGhlci52MTlfKSwgdjIwXyhvdGhlci52MjBfKSwgdjIxXyhvdGhlci52MjFfKSwgdjIy
XyhvdGhlci52MjJfKSwKLSAgICAgIHYyM18ob3RoZXIudjIzXyksIHYyNF8ob3RoZXIudjI0Xyks
IHYyNV8ob3RoZXIudjI1XyksIHYyNl8ob3RoZXIudjI2XyksCi0gICAgICB2MjdfKG90aGVyLnYy
N18pLCB2MjhfKG90aGVyLnYyOF8pLCB2MjlfKG90aGVyLnYyOV8pLCB2MzBfKG90aGVyLnYzMF8p
LAotICAgICAgdjMxXyhvdGhlci52MzFfKSwgdjMyXyhvdGhlci52MzJfKSwgdjMzXyhvdGhlci52
MzNfKSwgdjM0XyhvdGhlci52MzRfKSwKLSAgICAgIHYzNV8ob3RoZXIudjM1XyksIHYzNl8ob3Ro
ZXIudjM2XyksIHYzN18ob3RoZXIudjM3XyksIHYzOF8ob3RoZXIudjM4XyksCi0gICAgICB2Mzlf
KG90aGVyLnYzOV8pLCB2NDBfKG90aGVyLnY0MF8pLCB2NDFfKG90aGVyLnY0MV8pLCB2NDJfKG90
aGVyLnY0Ml8pLAotICAgICAgdjQzXyhvdGhlci52NDNfKSwgdjQ0XyhvdGhlci52NDRfKSwgdjQ1
XyhvdGhlci52NDVfKSwgdjQ2XyhvdGhlci52NDZfKSwKLSAgICAgIHY0N18ob3RoZXIudjQ3Xyks
IHY0OF8ob3RoZXIudjQ4XyksIHY0OV8ob3RoZXIudjQ5XyksIHY1MF8ob3RoZXIudjUwXykge30K
LQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1
cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmFsdWVBcnJheTUwJiBvdGhlcik7Ci0K
LSAgY29uc3QgVDEgdjFfOwotICBjb25zdCBUMiB2Ml87Ci0gIGNvbnN0IFQzIHYzXzsKLSAgY29u
c3QgVDQgdjRfOwotICBjb25zdCBUNSB2NV87Ci0gIGNvbnN0IFQ2IHY2XzsKLSAgY29uc3QgVDcg
djdfOwotICBjb25zdCBUOCB2OF87Ci0gIGNvbnN0IFQ5IHY5XzsKLSAgY29uc3QgVDEwIHYxMF87
Ci0gIGNvbnN0IFQxMSB2MTFfOwotICBjb25zdCBUMTIgdjEyXzsKLSAgY29uc3QgVDEzIHYxM187
Ci0gIGNvbnN0IFQxNCB2MTRfOwotICBjb25zdCBUMTUgdjE1XzsKLSAgY29uc3QgVDE2IHYxNl87
Ci0gIGNvbnN0IFQxNyB2MTdfOwotICBjb25zdCBUMTggdjE4XzsKLSAgY29uc3QgVDE5IHYxOV87
Ci0gIGNvbnN0IFQyMCB2MjBfOwotICBjb25zdCBUMjEgdjIxXzsKLSAgY29uc3QgVDIyIHYyMl87
Ci0gIGNvbnN0IFQyMyB2MjNfOwotICBjb25zdCBUMjQgdjI0XzsKLSAgY29uc3QgVDI1IHYyNV87
Ci0gIGNvbnN0IFQyNiB2MjZfOwotICBjb25zdCBUMjcgdjI3XzsKLSAgY29uc3QgVDI4IHYyOF87
Ci0gIGNvbnN0IFQyOSB2MjlfOwotICBjb25zdCBUMzAgdjMwXzsKLSAgY29uc3QgVDMxIHYzMV87
Ci0gIGNvbnN0IFQzMiB2MzJfOwotICBjb25zdCBUMzMgdjMzXzsKLSAgY29uc3QgVDM0IHYzNF87
Ci0gIGNvbnN0IFQzNSB2MzVfOwotICBjb25zdCBUMzYgdjM2XzsKLSAgY29uc3QgVDM3IHYzN187
Ci0gIGNvbnN0IFQzOCB2MzhfOwotICBjb25zdCBUMzkgdjM5XzsKLSAgY29uc3QgVDQwIHY0MF87
Ci0gIGNvbnN0IFQ0MSB2NDFfOwotICBjb25zdCBUNDIgdjQyXzsKLSAgY29uc3QgVDQzIHY0M187
Ci0gIGNvbnN0IFQ0NCB2NDRfOwotICBjb25zdCBUNDUgdjQ1XzsKLSAgY29uc3QgVDQ2IHY0Nl87
Ci0gIGNvbnN0IFQ0NyB2NDdfOwotICBjb25zdCBUNDggdjQ4XzsKLSAgY29uc3QgVDQ5IHY0OV87
Ci0gIGNvbnN0IFQ1MCB2NTBfOwotfTsKLQotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotLy8gSU5U
RVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KLS8vCi0vLyBH
ZW5lcmF0ZXMgdmFsdWVzIGZyb20gdGhlIENhcnRlc2lhbiBwcm9kdWN0IG9mIHZhbHVlcyBwcm9k
dWNlZAotLy8gYnkgdGhlIGFyZ3VtZW50IGdlbmVyYXRvcnMuCi0vLwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMj4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyCi0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyPiA+IHsKLSBwdWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDI+IFBh
cmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMihjb25zdCBQYXJhbUdlbmVy
YXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMikKLSAgICAg
IDogZzFfKGcxKSwgZzJfKGcyKSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yMigpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4q
IEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8u
YmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJh
dG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSk7Ci0gIH0KLQotIHByaXZh
dGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQx
PiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9y
JiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MikKLSAg
ICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQx
XyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5i
ZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpICAgIHsKLSAgICAg
IENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7
fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAg
ICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVy
YXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVu
ZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAg
YXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDJfOwotICAgICAgaWYgKGN1cnJlbnQy
XyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1
cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29u
c3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1
YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3VycmVudF92YWx1
ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJ
bnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUg
c2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBp
dGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBH
VEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAg
ICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIK
LSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsK
LSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERv
d25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2Ug
bXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhl
aXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJp
ZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCku
Ci0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAg
ICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYK
LSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyk7Ci0gICAgfQot
Ci0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAg
ICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyks
Ci0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1
cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJf
KG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJfKG90aGVyLmN1cnJlbnQyXykgewotICAg
ICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJl
bnRWYWx1ZSgpIHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8u
cmVzZXQobmV3IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfKSk7Ci0gICAgfQotICAg
IGJvb2wgQXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBw
YXN0IHRoZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29t
cG9uZW50IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAg
IHJldHVybgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJl
bnQyXyA9PSBlbmQyXzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2ln
bm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3Im
IG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4q
IGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGkt
dGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMg
dGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJy
ZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyOjpJ
dGVyYXRvcgotCi0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBv
cnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjIm
IG90aGVyKTsKLQotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMj4gZzJfOwotfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0
b3IyCi0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+
Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMwotICAgIDogcHVibGljIFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDM+ID4gewotIHB1Ymxp
YzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDM+IFBhcmFtVHlwZTsKLQot
ICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMyhjb25zdCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcx
LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0
b3I8VDM+JiBnMykKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSB7fQotICB2aXJ0
dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMygpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0
ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNf
LAotICAgICAgICBnM18uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9y
KHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSwgZzNfLCBnM18uZW5kKCkpOwot
ICB9Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBh
cmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsCi0gICAgICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDE+OjppdGVyYXRvciYgY3VycmVudDEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4m
IGcyLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciYg
Y3VycmVudDIsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciYgY3VycmVudDMpCi0gICAg
ICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5kMV8o
ZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIuYmVn
aW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAgICBi
ZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50Mykg
ICAgewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5J
dGVyYXRvcigpIHt9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gYmFzZV87
Ci0gICAgfQotICAgIC8vIEFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9m
LXJhbmdlIGl0ZXJhdG9ycwotICAgIC8vIHNvIG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBi
ZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRoZXIuCi0gICAgdmlydHVhbCB2b2lkIEFkdmFuY2Uo
KSB7Ci0gICAgICBhc3NlcnQoIUF0RW5kKCkpOwotICAgICAgKytjdXJyZW50M187Ci0gICAgICBp
ZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187Ci0g
ICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBlbmQy
XykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQxXzsK
LSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVh
bCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29uc3QgewotICAg
ICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3Qg
UGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3VycmVudF92YWx1ZV8uZ2V0KCk7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNl
IGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBp
cyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVD
S18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8
PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAg
ICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIGNv
bnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9B
Y3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCByZXBv
cnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAgICAg
IC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZh
c2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAgICBy
ZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAoCi0g
ICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAgICAg
ICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1cnJl
bnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfKTsKLSAgICB9Ci0KLSAgIHByaXZhdGU6Ci0g
ICAgSXRlcmF0b3IoY29uc3QgSXRlcmF0b3ImIG90aGVyKQotICAgICAgICA6IGJhc2VfKG90aGVy
LmJhc2VfKSwKLSAgICAgICAgYmVnaW4xXyhvdGhlci5iZWdpbjFfKSwKLSAgICAgICAgZW5kMV8o
b3RoZXIuZW5kMV8pLAotICAgICAgICBjdXJyZW50MV8ob3RoZXIuY3VycmVudDFfKSwKLSAgICAg
ICAgYmVnaW4yXyhvdGhlci5iZWdpbjJfKSwKLSAgICAgICAgZW5kMl8ob3RoZXIuZW5kMl8pLAot
ICAgICAgICBjdXJyZW50Ml8ob3RoZXIuY3VycmVudDJfKSwKLSAgICAgICAgYmVnaW4zXyhvdGhl
ci5iZWdpbjNfKSwKLSAgICAgICAgZW5kM18ob3RoZXIuZW5kM18pLAotICAgICAgICBjdXJyZW50
M18ob3RoZXIuY3VycmVudDNfKSB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAg
fQotCi0gICAgdm9pZCBDb21wdXRlQ3VycmVudFZhbHVlKCkgewotICAgICAgaWYgKCFBdEVuZCgp
KQotICAgICAgICBjdXJyZW50X3ZhbHVlXy5yZXNldChuZXcgUGFyYW1UeXBlKCpjdXJyZW50MV8s
ICpjdXJyZW50Ml8sICpjdXJyZW50M18pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0
IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUg
cmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhh
cyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAg
Y3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVuZDJfIHx8Ci0g
ICAgICAgICAgY3VycmVudDNfID09IGVuZDNfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVu
dGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShj
b25zdCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1f
IGRlZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBj
dXJyZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgbGlua2VkX3B0cjxQYXJh
bVR5cGU+IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdl
bmVyYXRvcjM6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50
IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0
R2VuZXJhdG9yMyYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0g
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQz
PiBnM187Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjMKLQotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+
Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNAotICAgIDogcHVibGljIFBhcmFtR2Vu
ZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0PiA+IHsKLSBw
dWJsaWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4gUGFyYW1U
eXBlOwotCi0gIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I0KGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCkK
LSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSB7fQotICB2aXJ0dWFs
IH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNCgpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcg
SXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAot
ICAgICAgICBnM18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQ
YXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1
cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSwgZzNf
LCBnM18uZW5kKCksCi0gICAgICAgIGc0XywgZzRfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToK
LSAgY2xhc3MgSXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5
cGU+IHsKLSAgIHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBn
MSwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1
cnJlbnQxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0
IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDQ+JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6
aXRlcmF0b3ImIGN1cnJlbnQ0KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAgIGJl
Z2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQxKSwK
LSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJlbnQy
XyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMuZW5k
KCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4oKSks
IGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSAgICB7Ci0gICAgICBDb21wdXRl
Q3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAg
IHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdl
bmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2
YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0g
ICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFu
Z2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCgh
QXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5k
NF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJl
bnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAg
ICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENs
b25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3Vy
cmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhh
dmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0g
ICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3Qu
Ci0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0
b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRl
cmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0
ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAg
Q2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAg
ICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBi
ZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4g
aW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0
IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkp
IHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAm
JgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAg
ICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8pOwotICAgIH0KLQotICAg
cHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDog
YmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAg
ICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50
MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhl
ci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBi
ZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAg
ICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAgICAgICBiZWdpbjRfKG90aGVyLmJl
Z2luNF8pLAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0gICAgICAgIGN1cnJlbnQ0Xyhv
dGhlci5jdXJyZW50NF8pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0K
LSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0g
ICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1
cnJlbnQyXywgKmN1cnJlbnQzXywKLSAgICAgICAgICAgICpjdXJyZW50NF8pKTsKLSAgICB9Ci0g
ICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9y
IHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBj
b21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAg
ICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3Vy
cmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAg
ICAgICAgY3VycmVudDRfID09IGVuZDRfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25z
dCBJdGVyYXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRl
ZmluZSB0aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJy
ZW50W2ldXyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5
cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVu
YW1lIFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+
IGN1cnJlbnRfdmFsdWVfOwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
cjQ6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yNCYgb3RoZXIpOwotCi0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiBnNF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjQKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgotY2xhc3MgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjUKLSAgICA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTwg
Ojp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDU+ID4gewotIHB1YmxpYzoKLSAgdHlw
ZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4gUGFyYW1UeXBlOwotCi0g
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I1KGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEs
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4mIGcyLCBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUMz4mIGczLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+JiBnNCwgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDU+JiBnNSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwg
ZzRfKGc0KSwgZzVfKGc1KSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
NSgpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJl
Z2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVn
aW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAotICAgICAgICBnM18uYmVnaW4oKSwgZzRfLCBn
NF8uYmVnaW4oKSwgZzVfLCBnNV8uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJh
dG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gbmV3IEl0
ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSwgZzNfLCBnM18uZW5k
KCksCi0gICAgICAgIGc0XywgZzRfLmVuZCgpLCBnNV8sIGc1Xy5lbmQoKSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJh
dG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MiwK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MywKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ0PiYgZzQsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yJiBjdXJyZW50NCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1
PiYgZzUsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9y
JiBjdXJyZW50NSkKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcx
LmJlZ2luKCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAg
ICAgYmVnaW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVu
dDIpLAotICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3Vy
cmVudDNfKGN1cnJlbnQzKSwKLSAgICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBlbmQ0Xyhn
NC5lbmQoKSksIGN1cnJlbnQ0XyhjdXJyZW50NCksCi0gICAgICAgICAgYmVnaW41XyhnNS5iZWdp
bigpKSwgZW5kNV8oZzUuZW5kKCkpLCBjdXJyZW50NV8oY3VycmVudDUpICAgIHsKLSAgICAgIENv
bXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQot
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
YXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAv
LyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRv
cnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBv
ZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNz
ZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDVfOwotICAgICAgaWYgKGN1cnJlbnQ1XyA9
PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwotICAgICAgICArK2N1cnJl
bnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5kNF8pIHsKLSAgICAgICAg
Y3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187
Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBl
bmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQx
XzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmly
dHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29uc3Qgewot
ICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29u
c3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3VycmVudF92YWx1ZV8uZ2V0
KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBi
YXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRv
ciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9D
SEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAg
ICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAg
ICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAg
IGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0
VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCBy
ZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAg
ICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9m
IGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAg
ICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAo
Ci0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAg
ICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1
cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAgICAgICAgY3VycmVudDRf
ID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYKLSAgICAgICAgICBjdXJyZW50NV8gPT0gdHlw
ZWRfb3RoZXItPmN1cnJlbnQ1Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9y
KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0g
ICAgICAgIGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFf
KSwKLSAgICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8o
b3RoZXIuYmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3Vy
cmVudDJfKG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyks
Ci0gICAgICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1
cnJlbnQzXyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRf
KG90aGVyLmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAg
ICAgIGJlZ2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwK
LSAgICAgICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XykgewotICAgICAgQ29tcHV0ZUN1cnJl
bnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAg
ICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFt
VHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAgICAgKmN1
cnJlbnQ0XywgKmN1cnJlbnQ1XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3Qgewot
ICAgICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5n
ZSB3aGVuIGVpdGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJl
YWNoZWQgdGhlIGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJy
ZW50MV8gPT0gZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAg
ICAgICBjdXJyZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8g
fHwKLSAgICAgICAgICBjdXJyZW50NV8gPT0gZW5kNV87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1w
bGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0
b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0KLSAgICBjb25zdCBQYXJhbUdlbmVyYXRvcklu
dGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNlXzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVu
ZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRoYXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAg
IC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwgdHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAg
Y29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29u
c3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3Qg
dHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+OjppdGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlw
ZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVyYXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5h
bWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRvciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJlbnQ1XzsKLSAgICBsaW5rZWRfcHRyPFBhcmFt
VHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yNTo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQg
aXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RH
ZW5lcmF0b3I1JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+IGcxXzsKLSAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+
IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsKLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDU+IGc1XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNQot
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1jbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yNgotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6
OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwKLSAgICAgICAgVDY+ID4gewotIHB1
YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+
IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNihjb25zdCBQYXJhbUdl
bmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwgY29u
c3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0
PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCBQYXJhbUdl
bmVyYXRvcjxUNj4mIGc2KQotICAgICAgOiBnMV8oZzEpLCBnMl8oZzIpLCBnM18oZzMpLCBnNF8o
ZzQpLCBnNV8oZzUpLCBnNl8oZzYpIHt9Ci0gIHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5l
cmF0b3I2KCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcx
Xy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigpLCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBn
NF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5iZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpKTsKLSAg
fQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29u
c3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywg
ZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1Xywg
ZzVfLmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0
ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBw
dWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mz46Oml0ZXJhdG9yJiBjdXJyZW50MywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYg
ZzQsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yJiBj
dXJyZW50NCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yJiBjdXJyZW50NSwKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yJiBjdXJyZW50NikKLSAgICAgICAgOiBiYXNlXyhiYXNl
KSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJl
bnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIu
ZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4o
KSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSwKLSAgICAgICAgICBiZWdp
bjRfKGc0LmJlZ2luKCkpLCBlbmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0XyhjdXJyZW50NCksCi0g
ICAgICAgICAgYmVnaW41XyhnNS5iZWdpbigpKSwgZW5kNV8oZzUuZW5kKCkpLCBjdXJyZW50NV8o
Y3VycmVudDUpLAotICAgICAgICAgIGJlZ2luNl8oZzYuYmVnaW4oKSksIGVuZDZfKGc2LmVuZCgp
KSwgY3VycmVudDZfKGN1cnJlbnQ2KSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7
Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3Qg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0
IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90
IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29t
cG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAg
ICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAg
ICArK2N1cnJlbnQ2XzsKLSAgICAgIGlmIChjdXJyZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAg
Y3VycmVudDZfID0gYmVnaW42XzsKLSAgICAgICAgKytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0gICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87
Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBl
bmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBiZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQz
XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3Vy
cmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytjdXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBp
ZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAgICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0g
ICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiog
Q2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBj
dXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFy
YW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8g
SGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIK
LSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2Fz
dC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVy
YXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBp
dGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwg
c3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAg
ICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0g
ICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50
IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBl
biBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1
bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQo
KSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBjdXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1
cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQyXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJf
ICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAg
ICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAg
IGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDVfICYmCi0gICAgICAgICAgY3VycmVu
dDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50Nl8pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAg
ICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIu
YmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhv
dGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAg
ICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0g
ICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVy
LmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQz
XyhvdGhlci5jdXJyZW50M18pLAotICAgICAgICBiZWdpbjRfKG90aGVyLmJlZ2luNF8pLAotICAg
ICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0gICAgICAgIGN1cnJlbnQ0XyhvdGhlci5jdXJyZW50
NF8pLAotICAgICAgICBiZWdpbjVfKG90aGVyLmJlZ2luNV8pLAotICAgICAgICBlbmQ1XyhvdGhl
ci5lbmQ1XyksCi0gICAgICAgIGN1cnJlbnQ1XyhvdGhlci5jdXJyZW50NV8pLAotICAgICAgICBi
ZWdpbjZfKG90aGVyLmJlZ2luNl8pLAotICAgICAgICBlbmQ2XyhvdGhlci5lbmQ2XyksCi0gICAg
ICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJyZW50Nl8pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFs
dWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBp
ZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUo
KmN1cnJlbnQxXywgKmN1cnJlbnQyXywgKmN1cnJlbnQzXywKLSAgICAgICAgICAgICpjdXJyZW50
NF8sICpjdXJyZW50NV8sICpjdXJyZW50Nl8pKTsKLSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNv
bnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0
aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0gICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3Jz
IGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJhbmdlLgotICAgICAgcmV0dXJuCi0gICAgICAg
ICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAgICAgICAgY3VycmVudDJfID09IGVuZDJfIHx8
Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNfIHx8Ci0gICAgICAgICAgY3VycmVudDRfID09
IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVfID09IGVuZDVfIHx8Ci0gICAgICAgICAgY3Vy
cmVudDZfID09IGVuZDZfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNz
aWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVyYXRv
ciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBl
PiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0aGUg
aS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ldXyBp
cyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+
OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+Ojpp
dGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+
OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2
Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVy
YXRvciBjdXJyZW50Nl87Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVf
OwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjY6Okl0ZXJhdG9yCi0K
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNiYgb3RoZXIpOwot
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVj
dEdlbmVyYXRvcjYKLQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNz4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I3Ci0gICAgOiBwdWJsaWMg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwKLSAgICAgICAgVDc+ID4gewotIHB1YmxpYzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6
OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVz
aWFuUHJvZHVjdEdlbmVyYXRvcjcoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYg
ZzMsCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNT4mIGc1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDc+JiBnNykKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGcz
KSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSB7fQotICB2aXJ0dWFsIH5DYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNygpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0
b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAotICAgICAg
ICBnM18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSwgZzVfLCBnNV8uYmVnaW4oKSwgZzZfLCBn
Nl8uYmVnaW4oKSwgZzdfLAotICAgICAgICBnN18uYmVnaW4oKSk7Ci0gIH0KLSAgdmlydHVhbCBQ
YXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNvbnN0IHsKLSAgICByZXR1
cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8sIGcyXy5lbmQoKSwgZzNf
LCBnM18uZW5kKCksCi0gICAgICAgIGc0XywgZzRfLmVuZCgpLCBnNV8sIGc1Xy5lbmQoKSwgZzZf
LCBnNl8uZW5kKCksIGc3XywgZzdfLmVuZCgpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgY2xhc3Mg
SXRlcmF0b3IgOiBwdWJsaWMgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+IHsKLSAg
IHB1YmxpYzoKLSAgICBJdGVyYXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBiYXNlLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAg
IGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3ImIGN1cnJlbnQxLAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+JiBnMiwKLSAgICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3ImIGN1cnJlbnQyLAotICAgICAgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQzPjo6aXRlcmF0b3ImIGN1cnJlbnQzLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+
JiBnNCwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRlcmF0b3Im
IGN1cnJlbnQ0LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+JiBnNSwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0b3ImIGN1cnJlbnQ1LAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3ImIGN1cnJlbnQ2LAotICAgICAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3
Pjo6aXRlcmF0b3ImIGN1cnJlbnQ3KQotICAgICAgICA6IGJhc2VfKGJhc2UpLAotICAgICAgICAg
IGJlZ2luMV8oZzEuYmVnaW4oKSksIGVuZDFfKGcxLmVuZCgpKSwgY3VycmVudDFfKGN1cnJlbnQx
KSwKLSAgICAgICAgICBiZWdpbjJfKGcyLmJlZ2luKCkpLCBlbmQyXyhnMi5lbmQoKSksIGN1cnJl
bnQyXyhjdXJyZW50MiksCi0gICAgICAgICAgYmVnaW4zXyhnMy5iZWdpbigpKSwgZW5kM18oZzMu
ZW5kKCkpLCBjdXJyZW50M18oY3VycmVudDMpLAotICAgICAgICAgIGJlZ2luNF8oZzQuYmVnaW4o
KSksIGVuZDRfKGc0LmVuZCgpKSwgY3VycmVudDRfKGN1cnJlbnQ0KSwKLSAgICAgICAgICBiZWdp
bjVfKGc1LmJlZ2luKCkpLCBlbmQ1XyhnNS5lbmQoKSksIGN1cnJlbnQ1XyhjdXJyZW50NSksCi0g
ICAgICAgICAgYmVnaW42XyhnNi5iZWdpbigpKSwgZW5kNl8oZzYuZW5kKCkpLCBjdXJyZW50Nl8o
Y3VycmVudDYpLAotICAgICAgICAgIGJlZ2luN18oZzcuYmVnaW4oKSksIGVuZDdfKGc3LmVuZCgp
KSwgY3VycmVudDdfKGN1cnJlbnQ3KSAgICB7Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7
Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJhdG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3Qg
UGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0
IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAgICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90
IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFuZ2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29t
cG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJleW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAg
ICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsKLSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAg
ICArK2N1cnJlbnQ3XzsKLSAgICAgIGlmIChjdXJyZW50N18gPT0gZW5kN18pIHsKLSAgICAgICAg
Y3VycmVudDdfID0gYmVnaW43XzsKLSAgICAgICAgKytjdXJyZW50Nl87Ci0gICAgICB9Ci0gICAg
ICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7Ci0gICAgICAgIGN1cnJlbnQ2XyA9IGJlZ2luNl87
Ci0gICAgICAgICsrY3VycmVudDVfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ1XyA9PSBl
bmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwotICAgICAgICArK2N1cnJlbnQ0
XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5kNF8pIHsKLSAgICAgICAgY3Vy
cmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187Ci0gICAgICB9Ci0gICAgICBp
ZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJlbnQzXyA9IGJlZ2luM187Ci0g
ICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQyXyA9PSBlbmQy
XykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAgICAgICArK2N1cnJlbnQxXzsK
LSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVh
bCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENsb25lKCkgY29uc3QgewotICAg
ICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQotICAgIHZpcnR1YWwgY29uc3Qg
UGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3VycmVudF92YWx1ZV8uZ2V0KCk7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhhdmluZyB0aGUgc2FtZSBiYXNl
IGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0gICAgICAvLyBpdGVyYXRvciBp
cyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCi0gICAgICBHVEVTVF9DSEVD
S18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKLSAgICAgICAgICA8
PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIKLSAgICAgICAg
ICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgIGNv
bnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAgQ2hlY2tlZERvd25jYXN0VG9B
Y3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAgICAgLy8gV2UgbXVzdCByZXBv
cnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBiZXlvbmQgdGhlaXIKLSAgICAg
IC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4gaW4gYSB2YXJpZXR5IG9mIGZh
c2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0IEF0RW5kKCkuCi0gICAgICBy
ZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHx8Ci0gICAgICAgICAoCi0g
ICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJyZW50MV8gJiYKLSAgICAgICAg
ICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAmJgotICAgICAgICAgIGN1cnJl
bnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAgICAgICAgY3VycmVudDRfID09
IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYKLSAgICAgICAgICBjdXJyZW50NV8gPT0gdHlwZWRf
b3RoZXItPmN1cnJlbnQ1XyAmJgotICAgICAgICAgIGN1cnJlbnQ2XyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDZfICYmCi0gICAgICAgICAgY3VycmVudDdfID09IHR5cGVkX290aGVyLT5jdXJyZW50
N18pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYg
b3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90
aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJl
bnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAot
ICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJy
ZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhv
dGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAgICAg
ICBiZWdpbjRfKG90aGVyLmJlZ2luNF8pLAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0g
ICAgICAgIGN1cnJlbnQ0XyhvdGhlci5jdXJyZW50NF8pLAotICAgICAgICBiZWdpbjVfKG90aGVy
LmJlZ2luNV8pLAotICAgICAgICBlbmQ1XyhvdGhlci5lbmQ1XyksCi0gICAgICAgIGN1cnJlbnQ1
XyhvdGhlci5jdXJyZW50NV8pLAotICAgICAgICBiZWdpbjZfKG90aGVyLmJlZ2luNl8pLAotICAg
ICAgICBlbmQ2XyhvdGhlci5lbmQ2XyksCi0gICAgICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJyZW50
Nl8pLAotICAgICAgICBiZWdpbjdfKG90aGVyLmJlZ2luN18pLAotICAgICAgICBlbmQ3XyhvdGhl
ci5lbmQ3XyksCi0gICAgICAgIGN1cnJlbnQ3XyhvdGhlci5jdXJyZW50N18pIHsKLSAgICAgIENv
bXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFs
dWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRfdmFsdWVfLnJlc2V0
KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1cnJlbnQyXywgKmN1cnJlbnQzXywKLSAgICAg
ICAgICAgICpjdXJyZW50NF8sICpjdXJyZW50NV8sICpjdXJyZW50Nl8sICpjdXJyZW50N18pKTsK
LSAgICB9Ci0gICAgYm9vbCBBdEVuZCgpIGNvbnN0IHsKLSAgICAgIC8vIFdlIG11c3QgcmVwb3J0
IGl0ZXJhdG9yIHBhc3QgdGhlIGVuZCBvZiB0aGUgcmFuZ2Ugd2hlbiBlaXRoZXIgb2YgdGhlCi0g
ICAgICAvLyBjb21wb25lbnQgaXRlcmF0b3JzIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgaXRzIHJh
bmdlLgotICAgICAgcmV0dXJuCi0gICAgICAgICAgY3VycmVudDFfID09IGVuZDFfIHx8Ci0gICAg
ICAgICAgY3VycmVudDJfID09IGVuZDJfIHx8Ci0gICAgICAgICAgY3VycmVudDNfID09IGVuZDNf
IHx8Ci0gICAgICAgICAgY3VycmVudDRfID09IGVuZDRfIHx8Ci0gICAgICAgICAgY3VycmVudDVf
ID09IGVuZDVfIHx8Ci0gICAgICAgICAgY3VycmVudDZfID09IGVuZDZfIHx8Ci0gICAgICAgICAg
Y3VycmVudDdfID09IGVuZDdfOwotICAgIH0KLQotICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIC0g
YXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBJdGVy
YXRvciYgb3RoZXIpOwotCi0gICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1U
eXBlPiogY29uc3QgYmFzZV87Ci0gICAgLy8gYmVnaW5baV1fIGFuZCBlbmRbaV1fIGRlZmluZSB0
aGUgaS10aCByYW5nZSB0aGF0IEl0ZXJhdG9yIHRyYXZlcnNlcy4KLSAgICAvLyBjdXJyZW50W2ld
XyBpcyB0aGUgYWN0dWFsIHRyYXZlcnNpbmcgaXRlcmF0b3IuCi0gICAgY29uc3QgdHlwZW5hbWUg
UGFyYW1HZW5lcmF0b3I8VDE+OjppdGVyYXRvciBiZWdpbjFfOwotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgZW5kMV87Ci0gICAgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDE+OjppdGVyYXRvciBjdXJyZW50MV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VDI+OjppdGVyYXRvciBiZWdpbjJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgZW5kMl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDI+OjppdGVyYXRvciBjdXJyZW50Ml87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VDM+OjppdGVyYXRvciBiZWdpbjNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgZW5kM187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDM+OjppdGVyYXRvciBjdXJyZW50M187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5l
cmF0b3I8VDQ+OjppdGVyYXRvciBiZWdpbjRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgZW5kNF87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDQ+OjppdGVyYXRvciBjdXJyZW50NF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0
b3I8VDU+OjppdGVyYXRvciBiZWdpbjVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ1Pjo6aXRlcmF0b3IgZW5kNV87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+
OjppdGVyYXRvciBjdXJyZW50NV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDY+OjppdGVyYXRvciBiZWdpbjZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ2Pjo6aXRlcmF0b3IgZW5kNl87Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+Ojpp
dGVyYXRvciBjdXJyZW50Nl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+
OjppdGVyYXRvciBiZWdpbjdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3
Pjo6aXRlcmF0b3IgZW5kN187Ci0gICAgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVy
YXRvciBjdXJyZW50N187Ci0gICAgbGlua2VkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVf
OwotICB9OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjc6Okl0ZXJhdG9yCi0K
LSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2
b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNyYgb3RoZXIpOwot
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiBn
N187Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjcKLQotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1j
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOAotICAgIDogcHVibGljIFBhcmFtR2VuZXJh
dG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsCi0g
ICAgICAgIFQ3LCBUOD4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVwbGU8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvcjgoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMs
Ci0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQYXJhbUdlbmVyYXRv
cjxUNT4mIGc1LAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwgY29uc3QgUGFy
YW1HZW5lcmF0b3I8VDc+JiBnNywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiYgZzgp
Ci0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2
XyhnNiksIGc3XyhnNyksCi0gICAgICAgICAgZzhfKGc4KSB7fQotICB2aXJ0dWFsIH5DYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yOCgpIHt9Ci0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJm
YWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3Io
dGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4oKSwgZzNfLAotICAgICAgICBn
M18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSwgZzVfLCBnNV8uYmVnaW4oKSwgZzZfLCBnNl8u
YmVnaW4oKSwgZzdfLAotICAgICAgICBnN18uYmVnaW4oKSwgZzhfLCBnOF8uYmVnaW4oKSk7Ci0g
IH0KLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEVuZCgpIGNv
bnN0IHsKLSAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGcxXywgZzFfLmVuZCgpLCBnMl8s
IGcyXy5lbmQoKSwgZzNfLCBnM18uZW5kKCksCi0gICAgICAgIGc0XywgZzRfLmVuZCgpLCBnNV8s
IGc1Xy5lbmQoKSwgZzZfLCBnNl8uZW5kKCksIGc3XywgZzdfLmVuZCgpLCBnOF8sCi0gICAgICAg
IGc4Xy5lbmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGlj
IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRl
cmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Mj46Oml0ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYg
ZzMsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBj
dXJyZW50MywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsCi0gICAgICBjb25z
dCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yJiBjdXJyZW50NCwKLSAgICAg
IGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yJiBjdXJyZW50NSwKLSAgICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQ2PiYgZzYsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46
Oml0ZXJhdG9yJiBjdXJyZW50NiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYgZzcs
Ci0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yJiBjdXJy
ZW50NywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiYgZzgsCi0gICAgICBjb25zdCB0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yJiBjdXJyZW50OCkKLSAgICAgICAg
OiBiYXNlXyhiYXNlKSwKLSAgICAgICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5l
bmQoKSksIGN1cnJlbnQxXyhjdXJyZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigp
KSwgZW5kMl8oZzIuZW5kKCkpLCBjdXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJlZ2lu
M18oZzMuYmVnaW4oKSksIGVuZDNfKGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSwKLSAg
ICAgICAgICBiZWdpbjRfKGc0LmJlZ2luKCkpLCBlbmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0Xyhj
dXJyZW50NCksCi0gICAgICAgICAgYmVnaW41XyhnNS5iZWdpbigpKSwgZW5kNV8oZzUuZW5kKCkp
LCBjdXJyZW50NV8oY3VycmVudDUpLAotICAgICAgICAgIGJlZ2luNl8oZzYuYmVnaW4oKSksIGVu
ZDZfKGc2LmVuZCgpKSwgY3VycmVudDZfKGN1cnJlbnQ2KSwKLSAgICAgICAgICBiZWdpbjdfKGc3
LmJlZ2luKCkpLCBlbmQ3XyhnNy5lbmQoKSksIGN1cnJlbnQ3XyhjdXJyZW50NyksCi0gICAgICAg
ICAgYmVnaW44XyhnOC5iZWdpbigpKSwgZW5kOF8oZzguZW5kKCkpLCBjdXJyZW50OF8oY3VycmVu
dDgpICAgIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVh
bCB+SXRlcmF0b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVy
ZmFjZTxQYXJhbVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJh
c2VfOwotICAgIH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9u
ZC1vZi1yYW5nZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11
c3QgYmUgYmV5b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZh
bmNlKCkgewotICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDhfOwotICAg
ICAgaWYgKGN1cnJlbnQ4XyA9PSBlbmQ4XykgewotICAgICAgICBjdXJyZW50OF8gPSBiZWdpbjhf
OwotICAgICAgICArK2N1cnJlbnQ3XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50N18gPT0g
ZW5kN18pIHsKLSAgICAgICAgY3VycmVudDdfID0gYmVnaW43XzsKLSAgICAgICAgKytjdXJyZW50
Nl87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDZfID09IGVuZDZfKSB7Ci0gICAgICAgIGN1
cnJlbnQ2XyA9IGJlZ2luNl87Ci0gICAgICAgICsrY3VycmVudDVfOwotICAgICAgfQotICAgICAg
aWYgKGN1cnJlbnQ1XyA9PSBlbmQ1XykgewotICAgICAgICBjdXJyZW50NV8gPSBiZWdpbjVfOwot
ICAgICAgICArK2N1cnJlbnQ0XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50NF8gPT0gZW5k
NF8pIHsKLSAgICAgICAgY3VycmVudDRfID0gYmVnaW40XzsKLSAgICAgICAgKytjdXJyZW50M187
Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDNfID09IGVuZDNfKSB7Ci0gICAgICAgIGN1cnJl
bnQzXyA9IGJlZ2luM187Ci0gICAgICAgICsrY3VycmVudDJfOwotICAgICAgfQotICAgICAgaWYg
KGN1cnJlbnQyXyA9PSBlbmQyXykgewotICAgICAgICBjdXJyZW50Ml8gPSBiZWdpbjJfOwotICAg
ICAgICArK2N1cnJlbnQxXzsKLSAgICAgIH0KLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIENs
b25lKCkgY29uc3QgewotICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7Ci0gICAgfQot
ICAgIHZpcnR1YWwgY29uc3QgUGFyYW1UeXBlKiBDdXJyZW50KCkgY29uc3QgeyByZXR1cm4gY3Vy
cmVudF92YWx1ZV8uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IHsKLSAgICAgIC8vIEhh
dmluZyB0aGUgc2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCi0g
ICAgICAvLyBpdGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3Qu
Ci0gICAgICBHVEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0
b3IoKSkKLSAgICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRl
cmF0b3JzICIKLSAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0
ZDo6ZW5kbDsKLSAgICAgIGNvbnN0IEl0ZXJhdG9yKiB0eXBlZF9vdGhlciA9Ci0gICAgICAgICAg
Q2hlY2tlZERvd25jYXN0VG9BY3R1YWxUeXBlPGNvbnN0IEl0ZXJhdG9yPigmb3RoZXIpOwotICAg
ICAgLy8gV2UgbXVzdCByZXBvcnQgaXRlcmF0b3JzIGVxdWFsIGlmIHRoZXkgYm90aCBwb2ludCBi
ZXlvbmQgdGhlaXIKLSAgICAgIC8vIHJlc3BlY3RpdmUgcmFuZ2VzLiBUaGF0IGNhbiBoYXBwZW4g
aW4gYSB2YXJpZXR5IG9mIGZhc2hpb25zLAotICAgICAgLy8gc28gd2UgaGF2ZSB0byBjb25zdWx0
IEF0RW5kKCkuCi0gICAgICByZXR1cm4gKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkp
IHx8Ci0gICAgICAgICAoCi0gICAgICAgICAgY3VycmVudDFfID09IHR5cGVkX290aGVyLT5jdXJy
ZW50MV8gJiYKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQyXyAm
JgotICAgICAgICAgIGN1cnJlbnQzXyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDNfICYmCi0gICAg
ICAgICAgY3VycmVudDRfID09IHR5cGVkX290aGVyLT5jdXJyZW50NF8gJiYKLSAgICAgICAgICBj
dXJyZW50NV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ1XyAmJgotICAgICAgICAgIGN1cnJlbnQ2
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDZfICYmCi0gICAgICAgICAgY3VycmVudDdfID09IHR5
cGVkX290aGVyLT5jdXJyZW50N18gJiYKLSAgICAgICAgICBjdXJyZW50OF8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQ4Xyk7Ci0gICAgfQotCi0gICBwcml2YXRlOgotICAgIEl0ZXJhdG9yKGNvbnN0
IEl0ZXJhdG9yJiBvdGhlcikKLSAgICAgICAgOiBiYXNlXyhvdGhlci5iYXNlXyksCi0gICAgICAg
IGJlZ2luMV8ob3RoZXIuYmVnaW4xXyksCi0gICAgICAgIGVuZDFfKG90aGVyLmVuZDFfKSwKLSAg
ICAgICAgY3VycmVudDFfKG90aGVyLmN1cnJlbnQxXyksCi0gICAgICAgIGJlZ2luMl8ob3RoZXIu
YmVnaW4yXyksCi0gICAgICAgIGVuZDJfKG90aGVyLmVuZDJfKSwKLSAgICAgICAgY3VycmVudDJf
KG90aGVyLmN1cnJlbnQyXyksCi0gICAgICAgIGJlZ2luM18ob3RoZXIuYmVnaW4zXyksCi0gICAg
ICAgIGVuZDNfKG90aGVyLmVuZDNfKSwKLSAgICAgICAgY3VycmVudDNfKG90aGVyLmN1cnJlbnQz
XyksCi0gICAgICAgIGJlZ2luNF8ob3RoZXIuYmVnaW40XyksCi0gICAgICAgIGVuZDRfKG90aGVy
LmVuZDRfKSwKLSAgICAgICAgY3VycmVudDRfKG90aGVyLmN1cnJlbnQ0XyksCi0gICAgICAgIGJl
Z2luNV8ob3RoZXIuYmVnaW41XyksCi0gICAgICAgIGVuZDVfKG90aGVyLmVuZDVfKSwKLSAgICAg
ICAgY3VycmVudDVfKG90aGVyLmN1cnJlbnQ1XyksCi0gICAgICAgIGJlZ2luNl8ob3RoZXIuYmVn
aW42XyksCi0gICAgICAgIGVuZDZfKG90aGVyLmVuZDZfKSwKLSAgICAgICAgY3VycmVudDZfKG90
aGVyLmN1cnJlbnQ2XyksCi0gICAgICAgIGJlZ2luN18ob3RoZXIuYmVnaW43XyksCi0gICAgICAg
IGVuZDdfKG90aGVyLmVuZDdfKSwKLSAgICAgICAgY3VycmVudDdfKG90aGVyLmN1cnJlbnQ3Xyks
Ci0gICAgICAgIGJlZ2luOF8ob3RoZXIuYmVnaW44XyksCi0gICAgICAgIGVuZDhfKG90aGVyLmVu
ZDhfKSwKLSAgICAgICAgY3VycmVudDhfKG90aGVyLmN1cnJlbnQ4XykgewotICAgICAgQ29tcHV0
ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
IHsKLSAgICAgIGlmICghQXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3
IFBhcmFtVHlwZSgqY3VycmVudDFfLCAqY3VycmVudDJfLCAqY3VycmVudDNfLAotICAgICAgICAg
ICAgKmN1cnJlbnQ0XywgKmN1cnJlbnQ1XywgKmN1cnJlbnQ2XywgKmN1cnJlbnQ3XywgKmN1cnJl
bnQ4XykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8gV2UgbXVz
dCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVpdGhlciBv
ZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhlIGVuZCBv
ZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0gZW5kMV8g
fHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJyZW50M18g
PT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAgICAgICBj
dXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl8gfHwKLSAg
ICAgICAgICBjdXJyZW50N18gPT0gZW5kN18gfHwKLSAgICAgICAgICBjdXJyZW50OF8gPT0gZW5k
OF87Ci0gICAgfQotCi0gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVu
c3VwcG9ydGVkLgotICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcik7Ci0K
LSAgICBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBjb25zdCBiYXNl
XzsKLSAgICAvLyBiZWdpbltpXV8gYW5kIGVuZFtpXV8gZGVmaW5lIHRoZSBpLXRoIHJhbmdlIHRo
YXQgSXRlcmF0b3IgdHJhdmVyc2VzLgotICAgIC8vIGN1cnJlbnRbaV1fIGlzIHRoZSBhY3R1YWwg
dHJhdmVyc2luZyBpdGVyYXRvci4KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
MT46Oml0ZXJhdG9yIGJlZ2luMV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8
VDE+OjppdGVyYXRvciBlbmQxXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0
ZXJhdG9yIGN1cnJlbnQxXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46
Oml0ZXJhdG9yIGJlZ2luMl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDI+
OjppdGVyYXRvciBlbmQyXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJh
dG9yIGN1cnJlbnQyXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0
ZXJhdG9yIGJlZ2luM187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDM+Ojpp
dGVyYXRvciBlbmQzXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9y
IGN1cnJlbnQzXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJh
dG9yIGJlZ2luNF87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDQ+OjppdGVy
YXRvciBlbmQ0XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yIGN1
cnJlbnQ0XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9y
IGJlZ2luNV87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDU+OjppdGVyYXRv
ciBlbmQ1XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9yIGN1cnJl
bnQ1XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGJl
Z2luNl87Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDY+OjppdGVyYXRvciBl
bmQ2XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yIGN1cnJlbnQ2
XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGJlZ2lu
N187Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDc+OjppdGVyYXRvciBlbmQ3
XzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yIGN1cnJlbnQ3XzsK
LSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGJlZ2luOF87
Ci0gICAgY29uc3QgdHlwZW5hbWUgUGFyYW1HZW5lcmF0b3I8VDg+OjppdGVyYXRvciBlbmQ4XzsK
LSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yIGN1cnJlbnQ4XzsKLSAg
ICBsaW5rZWRfcHRyPFBhcmFtVHlwZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBD
YXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yODo6SXRlcmF0b3IKLQotICAvLyBObyBpbXBsZW1lbnRh
dGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I4JiBvdGhlcik7Ci0KLSAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8VDE+IGcxXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+IGcyXzsKLSAgY29uc3Qg
UGFyYW1HZW5lcmF0b3I8VDM+IGczXzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDQ+IGc0XzsK
LSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDU+IGc1XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDY+IGc2XzsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+IGc3XzsKLSAgY29uc3QgUGFyYW1H
ZW5lcmF0b3I8VDg+IGc4XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
OAotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDk+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
OQotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxl
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsCi0gICAgICAgIFQ3LCBUOCwgVDk+ID4gewotIHB1Ymxp
YzoKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDk+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yOShjb25z
dCBQYXJhbUdlbmVyYXRvcjxUMT4mIGcxLAotICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDI+
JiBnMiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDM+JiBnMywKLSAgICAgIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQ0PiYgZzQsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25z
dCBQYXJhbUdlbmVyYXRvcjxUNj4mIGc2LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4mIGc3LAot
ICAgICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDg+JiBnOCwgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VDk+JiBnOSkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVf
KGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwgZzhfKGc4KSwKLSAgICAgICAgICBnOV8oZzkpIHt9Ci0g
IHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5KCkge30KLQotICB2aXJ0dWFsIFBh
cmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0
dXJuIG5ldyBJdGVyYXRvcih0aGlzLCBnMV8sIGcxXy5iZWdpbigpLCBnMl8sIGcyXy5iZWdpbigp
LCBnM18sCi0gICAgICAgIGczXy5iZWdpbigpLCBnNF8sIGc0Xy5iZWdpbigpLCBnNV8sIGc1Xy5i
ZWdpbigpLCBnNl8sIGc2Xy5iZWdpbigpLCBnN18sCi0gICAgICAgIGc3Xy5iZWdpbigpLCBnOF8s
IGc4Xy5iZWdpbigpLCBnOV8sIGc5Xy5iZWdpbigpKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBuZXcg
SXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywgZzJfLmVuZCgpLCBnM18sIGczXy5l
bmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1XywgZzVfLmVuZCgpLCBnNl8sIGc2Xy5l
bmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywKLSAgICAgICAgZzhfLmVuZCgpLCBnOV8sIGc5Xy5l
bmQoKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3Io
Y29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQyPiYgZzIsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0
ZXJhdG9yJiBjdXJyZW50MiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0g
ICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50
MywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ0PiYgZzQsCi0gICAgICBjb25zdCB0eXBl
bmFtZSBQYXJhbUdlbmVyYXRvcjxUND46Oml0ZXJhdG9yJiBjdXJyZW50NCwKLSAgICAgIGNvbnN0
IFBhcmFtR2VuZXJhdG9yPFQ1PiYgZzUsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNT46Oml0ZXJhdG9yJiBjdXJyZW50NSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQ2PiYgZzYsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJh
dG9yJiBjdXJyZW50NiwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yJiBjdXJyZW50NywK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiYgZzgsCi0gICAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9yJiBjdXJyZW50OCwKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ5PiYgZzksCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUOT46Oml0ZXJhdG9yJiBjdXJyZW50OSkKLSAgICAgICAgOiBiYXNlXyhiYXNlKSwKLSAgICAg
ICAgICBiZWdpbjFfKGcxLmJlZ2luKCkpLCBlbmQxXyhnMS5lbmQoKSksIGN1cnJlbnQxXyhjdXJy
ZW50MSksCi0gICAgICAgICAgYmVnaW4yXyhnMi5iZWdpbigpKSwgZW5kMl8oZzIuZW5kKCkpLCBj
dXJyZW50Ml8oY3VycmVudDIpLAotICAgICAgICAgIGJlZ2luM18oZzMuYmVnaW4oKSksIGVuZDNf
KGczLmVuZCgpKSwgY3VycmVudDNfKGN1cnJlbnQzKSwKLSAgICAgICAgICBiZWdpbjRfKGc0LmJl
Z2luKCkpLCBlbmQ0XyhnNC5lbmQoKSksIGN1cnJlbnQ0XyhjdXJyZW50NCksCi0gICAgICAgICAg
YmVnaW41XyhnNS5iZWdpbigpKSwgZW5kNV8oZzUuZW5kKCkpLCBjdXJyZW50NV8oY3VycmVudDUp
LAotICAgICAgICAgIGJlZ2luNl8oZzYuYmVnaW4oKSksIGVuZDZfKGc2LmVuZCgpKSwgY3VycmVu
dDZfKGN1cnJlbnQ2KSwKLSAgICAgICAgICBiZWdpbjdfKGc3LmJlZ2luKCkpLCBlbmQ3XyhnNy5l
bmQoKSksIGN1cnJlbnQ3XyhjdXJyZW50NyksCi0gICAgICAgICAgYmVnaW44XyhnOC5iZWdpbigp
KSwgZW5kOF8oZzguZW5kKCkpLCBjdXJyZW50OF8oY3VycmVudDgpLAotICAgICAgICAgIGJlZ2lu
OV8oZzkuYmVnaW4oKSksIGVuZDlfKGc5LmVuZCgpKSwgY3VycmVudDlfKGN1cnJlbnQ5KSAgICB7
Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkl0ZXJh
dG9yKCkge30KLQotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQmFzZUdlbmVyYXRvcigpIGNvbnN0IHsKLSAgICAgIHJldHVybiBiYXNlXzsKLSAg
ICB9Ci0gICAgLy8gQWR2YW5jZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBiZXlvbmQtb2YtcmFu
Z2UgaXRlcmF0b3JzCi0gICAgLy8gc28gbm8gY29tcG9uZW50IGl0ZXJhdG9ycyBtdXN0IGJlIGJl
eW9uZCBlbmQgb2YgcmFuZ2UsIGVpdGhlci4KLSAgICB2aXJ0dWFsIHZvaWQgQWR2YW5jZSgpIHsK
LSAgICAgIGFzc2VydCghQXRFbmQoKSk7Ci0gICAgICArK2N1cnJlbnQ5XzsKLSAgICAgIGlmIChj
dXJyZW50OV8gPT0gZW5kOV8pIHsKLSAgICAgICAgY3VycmVudDlfID0gYmVnaW45XzsKLSAgICAg
ICAgKytjdXJyZW50OF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDhfID09IGVuZDhfKSB7
Ci0gICAgICAgIGN1cnJlbnQ4XyA9IGJlZ2luOF87Ci0gICAgICAgICsrY3VycmVudDdfOwotICAg
ICAgfQotICAgICAgaWYgKGN1cnJlbnQ3XyA9PSBlbmQ3XykgewotICAgICAgICBjdXJyZW50N18g
PSBiZWdpbjdfOwotICAgICAgICArK2N1cnJlbnQ2XzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJy
ZW50Nl8gPT0gZW5kNl8pIHsKLSAgICAgICAgY3VycmVudDZfID0gYmVnaW42XzsKLSAgICAgICAg
KytjdXJyZW50NV87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDVfID09IGVuZDVfKSB7Ci0g
ICAgICAgIGN1cnJlbnQ1XyA9IGJlZ2luNV87Ci0gICAgICAgICsrY3VycmVudDRfOwotICAgICAg
fQotICAgICAgaWYgKGN1cnJlbnQ0XyA9PSBlbmQ0XykgewotICAgICAgICBjdXJyZW50NF8gPSBi
ZWdpbjRfOwotICAgICAgICArK2N1cnJlbnQzXzsKLSAgICAgIH0KLSAgICAgIGlmIChjdXJyZW50
M18gPT0gZW5kM18pIHsKLSAgICAgICAgY3VycmVudDNfID0gYmVnaW4zXzsKLSAgICAgICAgKytj
dXJyZW50Ml87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDJfID09IGVuZDJfKSB7Ci0gICAg
ICAgIGN1cnJlbnQyXyA9IGJlZ2luMl87Ci0gICAgICAgICsrY3VycmVudDFfOwotICAgICAgfQot
ICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwotICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4g
bmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUq
IEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJyZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZp
cnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9y
IGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBz
YW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KLSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2Vu
ZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQotICAgICAgICAgIDw8ICJUaGUgcHJv
Z3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVyYXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9t
IGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3RkOjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0
b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8
Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRv
cnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJleW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVj
dGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBpbiBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0g
ICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQgQXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRF
bmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkgfHwKLSAgICAgICAgICgKLSAgICAgICAgICBj
dXJyZW50MV8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQxXyAmJgotICAgICAgICAgIGN1cnJlbnQy
XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDJfICYmCi0gICAgICAgICAgY3VycmVudDNfID09IHR5
cGVkX290aGVyLT5jdXJyZW50M18gJiYKLSAgICAgICAgICBjdXJyZW50NF8gPT0gdHlwZWRfb3Ro
ZXItPmN1cnJlbnQ0XyAmJgotICAgICAgICAgIGN1cnJlbnQ1XyA9PSB0eXBlZF9vdGhlci0+Y3Vy
cmVudDVfICYmCi0gICAgICAgICAgY3VycmVudDZfID09IHR5cGVkX290aGVyLT5jdXJyZW50Nl8g
JiYKLSAgICAgICAgICBjdXJyZW50N18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ3XyAmJgotICAg
ICAgICAgIGN1cnJlbnQ4XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDhfICYmCi0gICAgICAgICAg
Y3VycmVudDlfID09IHR5cGVkX290aGVyLT5jdXJyZW50OV8pOwotICAgIH0KLQotICAgcHJpdmF0
ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8o
b3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFfKG90aGVyLmJlZ2luMV8pLAotICAgICAgICBl
bmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1cnJlbnQxXyhvdGhlci5jdXJyZW50MV8pLAot
ICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8pLAotICAgICAgICBlbmQyXyhvdGhlci5lbmQy
XyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5jdXJyZW50Ml8pLAotICAgICAgICBiZWdpbjNf
KG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQzXyhvdGhlci5lbmQzXyksCi0gICAgICAgIGN1
cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAgICAgICBiZWdpbjRfKG90aGVyLmJlZ2luNF8p
LAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0XyksCi0gICAgICAgIGN1cnJlbnQ0XyhvdGhlci5j
dXJyZW50NF8pLAotICAgICAgICBiZWdpbjVfKG90aGVyLmJlZ2luNV8pLAotICAgICAgICBlbmQ1
XyhvdGhlci5lbmQ1XyksCi0gICAgICAgIGN1cnJlbnQ1XyhvdGhlci5jdXJyZW50NV8pLAotICAg
ICAgICBiZWdpbjZfKG90aGVyLmJlZ2luNl8pLAotICAgICAgICBlbmQ2XyhvdGhlci5lbmQ2Xyks
Ci0gICAgICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJyZW50Nl8pLAotICAgICAgICBiZWdpbjdfKG90
aGVyLmJlZ2luN18pLAotICAgICAgICBlbmQ3XyhvdGhlci5lbmQ3XyksCi0gICAgICAgIGN1cnJl
bnQ3XyhvdGhlci5jdXJyZW50N18pLAotICAgICAgICBiZWdpbjhfKG90aGVyLmJlZ2luOF8pLAot
ICAgICAgICBlbmQ4XyhvdGhlci5lbmQ4XyksCi0gICAgICAgIGN1cnJlbnQ4XyhvdGhlci5jdXJy
ZW50OF8pLAotICAgICAgICBiZWdpbjlfKG90aGVyLmJlZ2luOV8pLAotICAgICAgICBlbmQ5Xyhv
dGhlci5lbmQ5XyksCi0gICAgICAgIGN1cnJlbnQ5XyhvdGhlci5jdXJyZW50OV8pIHsKLSAgICAg
IENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIENvbXB1dGVDdXJyZW50
VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAgIGN1cnJlbnRfdmFsdWVfLnJl
c2V0KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1cnJlbnQyXywgKmN1cnJlbnQzXywKLSAg
ICAgICAgICAgICpjdXJyZW50NF8sICpjdXJyZW50NV8sICpjdXJyZW50Nl8sICpjdXJyZW50N18s
ICpjdXJyZW50OF8sCi0gICAgICAgICAgICAqY3VycmVudDlfKSk7Ci0gICAgfQotICAgIGJvb2wg
QXRFbmQoKSBjb25zdCB7Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRo
ZSBlbmQgb2YgdGhlIHJhbmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50
IGl0ZXJhdG9ycyBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVy
bgotICAgICAgICAgIGN1cnJlbnQxXyA9PSBlbmQxXyB8fAotICAgICAgICAgIGN1cnJlbnQyXyA9
PSBlbmQyXyB8fAotICAgICAgICAgIGN1cnJlbnQzXyA9PSBlbmQzXyB8fAotICAgICAgICAgIGN1
cnJlbnQ0XyA9PSBlbmQ0XyB8fAotICAgICAgICAgIGN1cnJlbnQ1XyA9PSBlbmQ1XyB8fAotICAg
ICAgICAgIGN1cnJlbnQ2XyA9PSBlbmQ2XyB8fAotICAgICAgICAgIGN1cnJlbnQ3XyA9PSBlbmQ3
XyB8fAotICAgICAgICAgIGN1cnJlbnQ4XyA9PSBlbmQ4XyB8fAotICAgICAgICAgIGN1cnJlbnQ5
XyA9PSBlbmQ5XzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1l
bnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90
aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNv
bnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGgg
cmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhl
IGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQy
Pjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQzPjo6
aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0
Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
ND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ0Pjo6aXRl
cmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6
aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46
Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1Pjo6aXRlcmF0
b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRl
cmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0
ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6aXRlcmF0b3Ig
Y3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0
b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJh
dG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRlcmF0b3IgY3Vy
cmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3Ig
YmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46Oml0ZXJhdG9y
IGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0b3IgY3VycmVu
dDhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgYmVn
aW45XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yIGVu
ZDlfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3IgY3VycmVudDlf
OwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsKLSAgfTsgIC8vIGNs
YXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5OjpJdGVyYXRvcgotCi0gIC8vIE5vIGltcGxl
bWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0o
Y29uc3QgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjkmIG90aGVyKTsKLQotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxUMT4gZzFfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMj4gZzJfOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjxUMz4gZzNfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUND4g
ZzRfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4gZzVfOwotICBjb25zdCBQYXJhbUdlbmVy
YXRvcjxUNj4gZzZfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNz4gZzdfOwotICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUOD4gZzhfOwotICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUOT4gZzlfOwot
fTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3I5Ci0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjEwCi0g
ICAgOiBwdWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8IDo6dGVzdGluZzo6dHVwbGU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwKLSAgICAgICAgVDcsIFQ4LCBUOSwgVDEwPiA+IHsKLSBwdWJs
aWM6Ci0gIHR5cGVkZWYgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTA+IFBhcmFtVHlwZTsKLQotICBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
MTAoY29uc3QgUGFyYW1HZW5lcmF0b3I8VDE+JiBnMSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQyPiYgZzIsIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCBQ
YXJhbUdlbmVyYXRvcjxUND4mIGc0LCBjb25zdCBQYXJhbUdlbmVyYXRvcjxUNT4mIGc1LAotICAg
ICAgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDY+JiBnNiwgY29uc3QgUGFyYW1HZW5lcmF0b3I8VDc+
JiBnNywKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiYgZzgsIGNvbnN0IFBhcmFtR2Vu
ZXJhdG9yPFQ5PiYgZzksCi0gICAgICBjb25zdCBQYXJhbUdlbmVyYXRvcjxUMTA+JiBnMTApCi0g
ICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2Xyhn
NiksIGc3XyhnNyksIGc4XyhnOCksCi0gICAgICAgICAgZzlfKGc5KSwgZzEwXyhnMTApIHt9Ci0g
IHZpcnR1YWwgfkNhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMCgpIHt9Ci0KLSAgdmlydHVhbCBQ
YXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJlZ2luKCkgY29uc3QgewotICAgIHJl
dHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uYmVnaW4oKSwgZzJfLCBnMl8uYmVnaW4o
KSwgZzNfLAotICAgICAgICBnM18uYmVnaW4oKSwgZzRfLCBnNF8uYmVnaW4oKSwgZzVfLCBnNV8u
YmVnaW4oKSwgZzZfLCBnNl8uYmVnaW4oKSwgZzdfLAotICAgICAgICBnN18uYmVnaW4oKSwgZzhf
LCBnOF8uYmVnaW4oKSwgZzlfLCBnOV8uYmVnaW4oKSwgZzEwXywgZzEwXy5iZWdpbigpKTsKLSAg
fQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29u
c3QgewotICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZzFfLCBnMV8uZW5kKCksIGcyXywg
ZzJfLmVuZCgpLCBnM18sIGczXy5lbmQoKSwKLSAgICAgICAgZzRfLCBnNF8uZW5kKCksIGc1Xywg
ZzVfLmVuZCgpLCBnNl8sIGc2Xy5lbmQoKSwgZzdfLCBnN18uZW5kKCksIGc4XywKLSAgICAgICAg
ZzhfLmVuZCgpLCBnOV8sIGc5Xy5lbmQoKSwgZzEwXywgZzEwXy5lbmQoKSk7Ci0gIH0KLQotIHBy
aXZhdGU6Ci0gIGNsYXNzIEl0ZXJhdG9yIDogcHVibGljIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiB7Ci0gICBwdWJsaWM6Ci0gICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5lcmF0
b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogYmFzZSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQxPiYgZzEsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJh
dG9yJiBjdXJyZW50MSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQyPiYgZzIsCi0gICAg
ICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yJiBjdXJyZW50MiwK
LSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiYgZzMsCi0gICAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yJiBjdXJyZW50MywKLSAgICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9yPFQ0PiYgZzQsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUND46Oml0ZXJhdG9yJiBjdXJyZW50NCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1
PiYgZzUsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNT46Oml0ZXJhdG9y
JiBjdXJyZW50NSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiYgZzYsCi0gICAgICBj
b25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUNj46Oml0ZXJhdG9yJiBjdXJyZW50NiwKLSAg
ICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiYgZzcsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUNz46Oml0ZXJhdG9yJiBjdXJyZW50NywKLSAgICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ4PiYgZzgsCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
OD46Oml0ZXJhdG9yJiBjdXJyZW50OCwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ5PiYg
ZzksCi0gICAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0ZXJhdG9yJiBj
dXJyZW50OSwKLSAgICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4mIGcxMCwKLSAgICAgIGNv
bnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0ZXJhdG9yJiBjdXJyZW50MTApCi0g
ICAgICAgIDogYmFzZV8oYmFzZSksCi0gICAgICAgICAgYmVnaW4xXyhnMS5iZWdpbigpKSwgZW5k
MV8oZzEuZW5kKCkpLCBjdXJyZW50MV8oY3VycmVudDEpLAotICAgICAgICAgIGJlZ2luMl8oZzIu
YmVnaW4oKSksIGVuZDJfKGcyLmVuZCgpKSwgY3VycmVudDJfKGN1cnJlbnQyKSwKLSAgICAgICAg
ICBiZWdpbjNfKGczLmJlZ2luKCkpLCBlbmQzXyhnMy5lbmQoKSksIGN1cnJlbnQzXyhjdXJyZW50
MyksCi0gICAgICAgICAgYmVnaW40XyhnNC5iZWdpbigpKSwgZW5kNF8oZzQuZW5kKCkpLCBjdXJy
ZW50NF8oY3VycmVudDQpLAotICAgICAgICAgIGJlZ2luNV8oZzUuYmVnaW4oKSksIGVuZDVfKGc1
LmVuZCgpKSwgY3VycmVudDVfKGN1cnJlbnQ1KSwKLSAgICAgICAgICBiZWdpbjZfKGc2LmJlZ2lu
KCkpLCBlbmQ2XyhnNi5lbmQoKSksIGN1cnJlbnQ2XyhjdXJyZW50NiksCi0gICAgICAgICAgYmVn
aW43XyhnNy5iZWdpbigpKSwgZW5kN18oZzcuZW5kKCkpLCBjdXJyZW50N18oY3VycmVudDcpLAot
ICAgICAgICAgIGJlZ2luOF8oZzguYmVnaW4oKSksIGVuZDhfKGc4LmVuZCgpKSwgY3VycmVudDhf
KGN1cnJlbnQ4KSwKLSAgICAgICAgICBiZWdpbjlfKGc5LmJlZ2luKCkpLCBlbmQ5XyhnOS5lbmQo
KSksIGN1cnJlbnQ5XyhjdXJyZW50OSksCi0gICAgICAgICAgYmVnaW4xMF8oZzEwLmJlZ2luKCkp
LCBlbmQxMF8oZzEwLmVuZCgpKSwgY3VycmVudDEwXyhjdXJyZW50MTApICAgIHsKLSAgICAgIENv
bXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0b3IoKSB7fQot
Ci0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBC
YXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAgIH0KLSAgICAv
LyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5nZSBpdGVyYXRv
cnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5b25kIGVuZCBv
ZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewotICAgICAgYXNz
ZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudDEwXzsKLSAgICAgIGlmIChjdXJyZW50MTBf
ID09IGVuZDEwXykgewotICAgICAgICBjdXJyZW50MTBfID0gYmVnaW4xMF87Ci0gICAgICAgICsr
Y3VycmVudDlfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ5XyA9PSBlbmQ5XykgewotICAg
ICAgICBjdXJyZW50OV8gPSBiZWdpbjlfOwotICAgICAgICArK2N1cnJlbnQ4XzsKLSAgICAgIH0K
LSAgICAgIGlmIChjdXJyZW50OF8gPT0gZW5kOF8pIHsKLSAgICAgICAgY3VycmVudDhfID0gYmVn
aW44XzsKLSAgICAgICAgKytjdXJyZW50N187Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDdf
ID09IGVuZDdfKSB7Ci0gICAgICAgIGN1cnJlbnQ3XyA9IGJlZ2luN187Ci0gICAgICAgICsrY3Vy
cmVudDZfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQ2XyA9PSBlbmQ2XykgewotICAgICAg
ICBjdXJyZW50Nl8gPSBiZWdpbjZfOwotICAgICAgICArK2N1cnJlbnQ1XzsKLSAgICAgIH0KLSAg
ICAgIGlmIChjdXJyZW50NV8gPT0gZW5kNV8pIHsKLSAgICAgICAgY3VycmVudDVfID0gYmVnaW41
XzsKLSAgICAgICAgKytjdXJyZW50NF87Ci0gICAgICB9Ci0gICAgICBpZiAoY3VycmVudDRfID09
IGVuZDRfKSB7Ci0gICAgICAgIGN1cnJlbnQ0XyA9IGJlZ2luNF87Ci0gICAgICAgICsrY3VycmVu
dDNfOwotICAgICAgfQotICAgICAgaWYgKGN1cnJlbnQzXyA9PSBlbmQzXykgewotICAgICAgICBj
dXJyZW50M18gPSBiZWdpbjNfOwotICAgICAgICArK2N1cnJlbnQyXzsKLSAgICAgIH0KLSAgICAg
IGlmIChjdXJyZW50Ml8gPT0gZW5kMl8pIHsKLSAgICAgICAgY3VycmVudDJfID0gYmVnaW4yXzsK
LSAgICAgICAgKytjdXJyZW50MV87Ci0gICAgICB9Ci0gICAgICBDb21wdXRlQ3VycmVudFZhbHVl
KCk7Ci0gICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBDbG9uZSgpIGNvbnN0IHsKLSAgICAgIHJldHVybiBuZXcgSXRlcmF0b3IoKnRoaXMpOwotICAg
IH0KLSAgICB2aXJ0dWFsIGNvbnN0IFBhcmFtVHlwZSogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJu
IGN1cnJlbnRfdmFsdWVfLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIEVxdWFscyhjb25zdCBQ
YXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4mIG90aGVyKSBjb25zdCB7Ci0gICAgICAv
LyBIYXZpbmcgdGhlIHNhbWUgYmFzZSBnZW5lcmF0b3IgZ3VhcmFudGVlcyB0aGF0IHRoZSBvdGhl
cgotICAgICAgLy8gaXRlcmF0b3IgaXMgb2YgdGhlIHNhbWUgdHlwZSBhbmQgd2UgY2FuIGRvd25j
YXN0LgotICAgICAgR1RFU1RfQ0hFQ0tfKEJhc2VHZW5lcmF0b3IoKSA9PSBvdGhlci5CYXNlR2Vu
ZXJhdG9yKCkpCi0gICAgICAgICAgPDwgIlRoZSBwcm9ncmFtIGF0dGVtcHRlZCB0byBjb21wYXJl
IGl0ZXJhdG9ycyAiCi0gICAgICAgICAgPDwgImZyb20gZGlmZmVyZW50IGdlbmVyYXRvcnMuIiA8
PCBzdGQ6OmVuZGw7Ci0gICAgICBjb25zdCBJdGVyYXRvciogdHlwZWRfb3RoZXIgPQotICAgICAg
ICAgIENoZWNrZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvcj4oJm90aGVyKTsK
LSAgICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9p
bnQgYmV5b25kIHRoZWlyCi0gICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFw
cGVuIGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKLSAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29u
c3VsdCBBdEVuZCgpLgotICAgICAgcmV0dXJuIChBdEVuZCgpICYmIHR5cGVkX290aGVyLT5BdEVu
ZCgpKSB8fAotICAgICAgICAgKAotICAgICAgICAgIGN1cnJlbnQxXyA9PSB0eXBlZF9vdGhlci0+
Y3VycmVudDFfICYmCi0gICAgICAgICAgY3VycmVudDJfID09IHR5cGVkX290aGVyLT5jdXJyZW50
Ml8gJiYKLSAgICAgICAgICBjdXJyZW50M18gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQzXyAmJgot
ICAgICAgICAgIGN1cnJlbnQ0XyA9PSB0eXBlZF9vdGhlci0+Y3VycmVudDRfICYmCi0gICAgICAg
ICAgY3VycmVudDVfID09IHR5cGVkX290aGVyLT5jdXJyZW50NV8gJiYKLSAgICAgICAgICBjdXJy
ZW50Nl8gPT0gdHlwZWRfb3RoZXItPmN1cnJlbnQ2XyAmJgotICAgICAgICAgIGN1cnJlbnQ3XyA9
PSB0eXBlZF9vdGhlci0+Y3VycmVudDdfICYmCi0gICAgICAgICAgY3VycmVudDhfID09IHR5cGVk
X290aGVyLT5jdXJyZW50OF8gJiYKLSAgICAgICAgICBjdXJyZW50OV8gPT0gdHlwZWRfb3RoZXIt
PmN1cnJlbnQ5XyAmJgotICAgICAgICAgIGN1cnJlbnQxMF8gPT0gdHlwZWRfb3RoZXItPmN1cnJl
bnQxMF8pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAgICBJdGVyYXRvcihjb25zdCBJdGVyYXRv
ciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIuYmFzZV8pLAotICAgICAgICBiZWdpbjFf
KG90aGVyLmJlZ2luMV8pLAotICAgICAgICBlbmQxXyhvdGhlci5lbmQxXyksCi0gICAgICAgIGN1
cnJlbnQxXyhvdGhlci5jdXJyZW50MV8pLAotICAgICAgICBiZWdpbjJfKG90aGVyLmJlZ2luMl8p
LAotICAgICAgICBlbmQyXyhvdGhlci5lbmQyXyksCi0gICAgICAgIGN1cnJlbnQyXyhvdGhlci5j
dXJyZW50Ml8pLAotICAgICAgICBiZWdpbjNfKG90aGVyLmJlZ2luM18pLAotICAgICAgICBlbmQz
XyhvdGhlci5lbmQzXyksCi0gICAgICAgIGN1cnJlbnQzXyhvdGhlci5jdXJyZW50M18pLAotICAg
ICAgICBiZWdpbjRfKG90aGVyLmJlZ2luNF8pLAotICAgICAgICBlbmQ0XyhvdGhlci5lbmQ0Xyks
Ci0gICAgICAgIGN1cnJlbnQ0XyhvdGhlci5jdXJyZW50NF8pLAotICAgICAgICBiZWdpbjVfKG90
aGVyLmJlZ2luNV8pLAotICAgICAgICBlbmQ1XyhvdGhlci5lbmQ1XyksCi0gICAgICAgIGN1cnJl
bnQ1XyhvdGhlci5jdXJyZW50NV8pLAotICAgICAgICBiZWdpbjZfKG90aGVyLmJlZ2luNl8pLAot
ICAgICAgICBlbmQ2XyhvdGhlci5lbmQ2XyksCi0gICAgICAgIGN1cnJlbnQ2XyhvdGhlci5jdXJy
ZW50Nl8pLAotICAgICAgICBiZWdpbjdfKG90aGVyLmJlZ2luN18pLAotICAgICAgICBlbmQ3Xyhv
dGhlci5lbmQ3XyksCi0gICAgICAgIGN1cnJlbnQ3XyhvdGhlci5jdXJyZW50N18pLAotICAgICAg
ICBiZWdpbjhfKG90aGVyLmJlZ2luOF8pLAotICAgICAgICBlbmQ4XyhvdGhlci5lbmQ4XyksCi0g
ICAgICAgIGN1cnJlbnQ4XyhvdGhlci5jdXJyZW50OF8pLAotICAgICAgICBiZWdpbjlfKG90aGVy
LmJlZ2luOV8pLAotICAgICAgICBlbmQ5XyhvdGhlci5lbmQ5XyksCi0gICAgICAgIGN1cnJlbnQ5
XyhvdGhlci5jdXJyZW50OV8pLAotICAgICAgICBiZWdpbjEwXyhvdGhlci5iZWdpbjEwXyksCi0g
ICAgICAgIGVuZDEwXyhvdGhlci5lbmQxMF8pLAotICAgICAgICBjdXJyZW50MTBfKG90aGVyLmN1
cnJlbnQxMF8pIHsKLSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2
b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7Ci0gICAgICBpZiAoIUF0RW5kKCkpCi0gICAgICAg
IGN1cnJlbnRfdmFsdWVfLnJlc2V0KG5ldyBQYXJhbVR5cGUoKmN1cnJlbnQxXywgKmN1cnJlbnQy
XywgKmN1cnJlbnQzXywKLSAgICAgICAgICAgICpjdXJyZW50NF8sICpjdXJyZW50NV8sICpjdXJy
ZW50Nl8sICpjdXJyZW50N18sICpjdXJyZW50OF8sCi0gICAgICAgICAgICAqY3VycmVudDlfLCAq
Y3VycmVudDEwXykpOwotICAgIH0KLSAgICBib29sIEF0RW5kKCkgY29uc3QgewotICAgICAgLy8g
V2UgbXVzdCByZXBvcnQgaXRlcmF0b3IgcGFzdCB0aGUgZW5kIG9mIHRoZSByYW5nZSB3aGVuIGVp
dGhlciBvZiB0aGUKLSAgICAgIC8vIGNvbXBvbmVudCBpdGVyYXRvcnMgaGFzIHJlYWNoZWQgdGhl
IGVuZCBvZiBpdHMgcmFuZ2UuCi0gICAgICByZXR1cm4KLSAgICAgICAgICBjdXJyZW50MV8gPT0g
ZW5kMV8gfHwKLSAgICAgICAgICBjdXJyZW50Ml8gPT0gZW5kMl8gfHwKLSAgICAgICAgICBjdXJy
ZW50M18gPT0gZW5kM18gfHwKLSAgICAgICAgICBjdXJyZW50NF8gPT0gZW5kNF8gfHwKLSAgICAg
ICAgICBjdXJyZW50NV8gPT0gZW5kNV8gfHwKLSAgICAgICAgICBjdXJyZW50Nl8gPT0gZW5kNl8g
fHwKLSAgICAgICAgICBjdXJyZW50N18gPT0gZW5kN18gfHwKLSAgICAgICAgICBjdXJyZW50OF8g
PT0gZW5kOF8gfHwKLSAgICAgICAgICBjdXJyZW50OV8gPT0gZW5kOV8gfHwKLSAgICAgICAgICBj
dXJyZW50MTBfID09IGVuZDEwXzsKLSAgICB9Ci0KLSAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiAt
IGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgSXRl
cmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFt
VHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2luW2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUg
dGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2ZXJzZXMuCi0gICAgLy8gY3VycmVudFtp
XV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJhdG9yLgotICAgIGNvbnN0IHR5cGVuYW1l
IFBhcmFtR2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgYmVnaW4xXzsKLSAgICBjb25zdCB0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUMT46Oml0ZXJhdG9yIGVuZDFfOwotICAgIHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQxPjo6aXRlcmF0b3IgY3VycmVudDFfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBh
cmFtR2VuZXJhdG9yPFQyPjo6aXRlcmF0b3IgYmVnaW4yXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQ
YXJhbUdlbmVyYXRvcjxUMj46Oml0ZXJhdG9yIGVuZDJfOwotICAgIHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQyPjo6aXRlcmF0b3IgY3VycmVudDJfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFt
R2VuZXJhdG9yPFQzPjo6aXRlcmF0b3IgYmVnaW4zXzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJh
bUdlbmVyYXRvcjxUMz46Oml0ZXJhdG9yIGVuZDNfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQzPjo6aXRlcmF0b3IgY3VycmVudDNfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2Vu
ZXJhdG9yPFQ0Pjo6aXRlcmF0b3IgYmVnaW40XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdl
bmVyYXRvcjxUND46Oml0ZXJhdG9yIGVuZDRfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ0Pjo6aXRlcmF0b3IgY3VycmVudDRfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJh
dG9yPFQ1Pjo6aXRlcmF0b3IgYmVnaW41XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVy
YXRvcjxUNT46Oml0ZXJhdG9yIGVuZDVfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ1
Pjo6aXRlcmF0b3IgY3VycmVudDVfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQ2Pjo6aXRlcmF0b3IgYmVnaW42XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRv
cjxUNj46Oml0ZXJhdG9yIGVuZDZfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ2Pjo6
aXRlcmF0b3IgY3VycmVudDZfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3
Pjo6aXRlcmF0b3IgYmVnaW43XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxU
Nz46Oml0ZXJhdG9yIGVuZDdfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ3Pjo6aXRl
cmF0b3IgY3VycmVudDdfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6
aXRlcmF0b3IgYmVnaW44XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOD46
Oml0ZXJhdG9yIGVuZDhfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ4Pjo6aXRlcmF0
b3IgY3VycmVudDhfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRl
cmF0b3IgYmVnaW45XzsKLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUOT46Oml0
ZXJhdG9yIGVuZDlfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQ5Pjo6aXRlcmF0b3Ig
Y3VycmVudDlfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0ZXJh
dG9yIGJlZ2luMTBfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQxMD46Oml0
ZXJhdG9yIGVuZDEwXzsKLSAgICB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUMTA+OjppdGVyYXRv
ciBjdXJyZW50MTBfOwotICAgIGxpbmtlZF9wdHI8UGFyYW1UeXBlPiBjdXJyZW50X3ZhbHVlXzsK
LSAgfTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMDo6SXRlcmF0b3IKLQot
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IxMCYgb3RoZXIpOwot
Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxPiBnMV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9y
PFQyPiBnMl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQzPiBnM187Ci0gIGNvbnN0IFBhcmFt
R2VuZXJhdG9yPFQ0PiBnNF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ1PiBnNV87Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPFQ2PiBnNl87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ3PiBn
N187Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQ4PiBnOF87Ci0gIGNvbnN0IFBhcmFtR2VuZXJh
dG9yPFQ5PiBnOV87Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPFQxMD4gZzEwXzsKLX07ICAvLyBj
bGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMTAKLQotCi0vLyBJTlRFUk5BTCBJTVBMRU1F
TlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIEhlbHBlciBjbGFzc2Vz
IHByb3ZpZGluZyBDb21iaW5lKCkgd2l0aCBwb2x5bW9ycGhpYyBmZWF0dXJlcy4gVGhleSBhbGxv
dwotLy8gY2FzdGluZyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yTjxUPiB0byBQYXJhbUdlbmVy
YXRvcjxVPiBpZiBUIGlzCi0vLyBjb252ZXJ0aWJsZSB0byBVLgotLy8KLXRlbXBsYXRlIDxjbGFz
cyBHZW5lcmF0b3IxLCBjbGFzcyBHZW5lcmF0b3IyPgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjIgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXIyKGNvbnN0IEdlbmVyYXRv
cjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMikKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSB7
fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICBvcGVyYXRvciBQYXJh
bUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDI+ID4oKSBjb25zdCB7Ci0gICAgcmV0
dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMj4gPigKLSAgICAgICAg
bmV3IENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IyPFQxLCBUMj4oCi0gICAgICAgIHN0YXRpY19j
YXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFt
R2VuZXJhdG9yPFQyPiA+KGcyXykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVt
ZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShj
b25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMiYgb3RoZXIpOwotCi0gIGNvbnN0IEdlbmVyYXRv
cjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Q
cm9kdWN0SG9sZGVyMgotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJh
dG9yMiwgY2xhc3MgR2VuZXJhdG9yMz4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIzIHsK
LSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMyhjb25zdCBHZW5lcmF0b3IxJiBnMSwg
Y29uc3QgR2VuZXJhdG9yMiYgZzIsCi0gICAgY29uc3QgR2VuZXJhdG9yMyYgZzMpCi0gICAgICA6
IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMykge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRl
c3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDM+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2Vu
ZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDM+ID4oCi0gICAgICAgIG5ldyBDYXJ0
ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yMzxUMSwgVDIsIFQzPigKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UGFyYW1HZW5lcmF0b3I8VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5l
cmF0b3I8VDI+ID4oZzJfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+
ID4oZzNfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFz
c2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lh
blByb2R1Y3RIb2xkZXIzJiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJhdG9yMSBnMV87Ci0gIGNv
bnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGczXzsKLX07ICAvLyBjbGFz
cyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyMwotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwg
Y2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0
PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjQgewotIHB1YmxpYzoKLUNhcnRlc2lhblBy
b2R1Y3RIb2xkZXI0KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwK
LSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQpCi0gICAgICA6
IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCkge30KLSAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PgotICBvcGVyYXRv
ciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUND4gPigpIGNv
bnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQy
LCBUMywgVDQ+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNDxUMSwg
VDIsIFQzLCBUND4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcx
XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAg
Ly8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lk
IG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNCYgb3RoZXIpOwotCi0gIGNv
bnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2Vu
ZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotfTsgIC8vIGNsYXNzIENhcnRl
c2lhblByb2R1Y3RIb2xkZXI0Ci0KLXRlbXBsYXRlIDxjbGFzcyBHZW5lcmF0b3IxLCBjbGFzcyBH
ZW5lcmF0b3IyLCBjbGFzcyBHZW5lcmF0b3IzLAotICAgIGNsYXNzIEdlbmVyYXRvcjQsIGNsYXNz
IEdlbmVyYXRvcjU+Ci1jbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNSB7Ci0gcHVibGljOgot
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjUoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVy
YXRvcjImIGcyLAotICAgIGNvbnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBn
NCwgY29uc3QgR2VuZXJhdG9yNSYgZzUpCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhn
MyksIGc0XyhnNCksIGc1XyhnNSkge30KLSAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KLSAgb3BlcmF0b3Ig
UGFyYW1HZW5lcmF0b3I8IDo6dGVzdGluZzo6dHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1PiA+KCkg
Y29uc3QgewotICAgIHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwg
VDIsIFQzLCBUNCwgVDU+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9y
NTxUMSwgVDIsIFQzLCBUNCwgVDU+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihn
Ml8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0g
IC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9p
ZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjUmIG90aGVyKTsKLQotICBj
b25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdl
bmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9y
NSBnNV87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjUKLQotdGVtcGxhdGUg
PGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0g
ICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xhc3MgR2VuZXJhdG9yNSwgY2xhc3MgR2VuZXJhdG9yNj4K
LWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXI2IHsKLSBwdWJsaWM6Ci1DYXJ0ZXNpYW5Qcm9k
dWN0SG9sZGVyNihjb25zdCBHZW5lcmF0b3IxJiBnMSwgY29uc3QgR2VuZXJhdG9yMiYgZzIsCi0g
ICAgY29uc3QgR2VuZXJhdG9yMyYgZzMsIGNvbnN0IEdlbmVyYXRvcjQmIGc0LCBjb25zdCBHZW5l
cmF0b3I1JiBnNSwKLSAgICBjb25zdCBHZW5lcmF0b3I2JiBnNikKLSAgICAgIDogZzFfKGcxKSwg
ZzJfKGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSB7fQotICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgICAgdHlwZW5hbWUgVDY+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9y
PCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+ID4oKSBjb25zdCB7Ci0g
ICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDY+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yNjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8
VDE+ID4oZzFfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDI+ID4oZzJf
KSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDM+ID4oZzNfKSwKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDQ+ID4oZzRfKSwKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8UGFyYW1HZW5lcmF0b3I8VDU+ID4oZzVfKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGFy
YW1HZW5lcmF0b3I8VDY+ID4oZzZfKSkpOwotICB9Ci0KLSBwcml2YXRlOgotICAvLyBObyBpbXBs
ZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gIHZvaWQgb3BlcmF0b3I9
KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXI2JiBvdGhlcik7Ci0KLSAgY29uc3QgR2VuZXJh
dG9yMSBnMV87Ci0gIGNvbnN0IEdlbmVyYXRvcjIgZzJfOwotICBjb25zdCBHZW5lcmF0b3IzIGcz
XzsKLSAgY29uc3QgR2VuZXJhdG9yNCBnNF87Ci0gIGNvbnN0IEdlbmVyYXRvcjUgZzVfOwotICBj
b25zdCBHZW5lcmF0b3I2IGc2XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVy
NgotCi10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3Mg
R2VuZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFz
cyBHZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjcgewotIHB1YmxpYzoKLUNhcnRlc2lhblByb2R1Y3RIb2xkZXI3KGNvbnN0IEdlbmVyYXRv
cjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwKLSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywg
Y29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdlbmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdl
bmVyYXRvcjYmIGc2LCBjb25zdCBHZW5lcmF0b3I3JiBnNykKLSAgICAgIDogZzFfKGcxKSwgZzJf
KGcyKSwgZzNfKGczKSwgZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSB7fQotICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUg
VDQsIHR5cGVuYW1lIFQ1LAotICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3PgotICBvcGVy
YXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LAotICAgICAgVDc+ID4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPCA6
OnRlc3Rpbmc6OnR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3PiA+KAotICAgICAgICBu
ZXcgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRvcjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+
KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAg
ICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNf
Y2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihnM18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNj4gPihn
Nl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNz4gPihnN18pKSk7Ci0g
IH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0aW9uIC0gYXNzaWdubWVudCBpcyB1
bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ2FydGVzaWFuUHJvZHVjdEhvbGRl
cjcmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcxXzsKLSAgY29uc3QgR2VuZXJhdG9y
MiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBjb25zdCBHZW5lcmF0b3I0IGc0XzsK
LSAgY29uc3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0IEdlbmVyYXRvcjYgZzZfOwotICBjb25z
dCBHZW5lcmF0b3I3IGc3XzsKLX07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyNwot
Ci10ZW1wbGF0ZSA8Y2xhc3MgR2VuZXJhdG9yMSwgY2xhc3MgR2VuZXJhdG9yMiwgY2xhc3MgR2Vu
ZXJhdG9yMywKLSAgICBjbGFzcyBHZW5lcmF0b3I0LCBjbGFzcyBHZW5lcmF0b3I1LCBjbGFzcyBH
ZW5lcmF0b3I2LCBjbGFzcyBHZW5lcmF0b3I3LAotICAgIGNsYXNzIEdlbmVyYXRvcjg+Ci1jbGFz
cyBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOCB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVjdEhv
bGRlcjgoY29uc3QgR2VuZXJhdG9yMSYgZzEsIGNvbnN0IEdlbmVyYXRvcjImIGcyLAotICAgIGNv
bnN0IEdlbmVyYXRvcjMmIGczLCBjb25zdCBHZW5lcmF0b3I0JiBnNCwgY29uc3QgR2VuZXJhdG9y
NSYgZzUsCi0gICAgY29uc3QgR2VuZXJhdG9yNiYgZzYsIGNvbnN0IEdlbmVyYXRvcjcmIGc3LCBj
b25zdCBHZW5lcmF0b3I4JiBnOCkKLSAgICAgIDogZzFfKGcxKSwgZzJfKGcyKSwgZzNfKGczKSwg
ZzRfKGc0KSwgZzVfKGc1KSwgZzZfKGc2KSwgZzdfKGc3KSwKLSAgICAgICAgICBnOF8oZzgpIHt9
Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywKLSAgICAgIFQ4PiA+KCkgY29uc3QgewotICAgIHJl
dHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDg+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yODxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJh
bUdlbmVyYXRvcjxUMT4gPihnMV8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRv
cjxUMj4gPihnMl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUMz4gPihn
M18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUND4gPihnNF8pLAotICAg
ICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNT4gPihnNV8pLAotICAgICAgICBzdGF0
aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUNj4gPihnNl8pLAotICAgICAgICBzdGF0aWNfY2FzdDxQ
YXJhbUdlbmVyYXRvcjxUNz4gPihnN18pLAotICAgICAgICBzdGF0aWNfY2FzdDxQYXJhbUdlbmVy
YXRvcjxUOD4gPihnOF8pKSk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIC8vIE5vIGltcGxlbWVudGF0
aW9uIC0gYXNzaWdubWVudCBpcyB1bnN1cHBvcnRlZC4KLSAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjgmIG90aGVyKTsKLQotICBjb25zdCBHZW5lcmF0b3IxIGcx
XzsKLSAgY29uc3QgR2VuZXJhdG9yMiBnMl87Ci0gIGNvbnN0IEdlbmVyYXRvcjMgZzNfOwotICBj
b25zdCBHZW5lcmF0b3I0IGc0XzsKLSAgY29uc3QgR2VuZXJhdG9yNSBnNV87Ci0gIGNvbnN0IEdl
bmVyYXRvcjYgZzZfOwotICBjb25zdCBHZW5lcmF0b3I3IGc3XzsKLSAgY29uc3QgR2VuZXJhdG9y
OCBnOF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjgKLQotdGVtcGxhdGUg
PGNsYXNzIEdlbmVyYXRvcjEsIGNsYXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0g
ICAgY2xhc3MgR2VuZXJhdG9yNCwgY2xhc3MgR2VuZXJhdG9yNSwgY2xhc3MgR2VuZXJhdG9yNiwg
Y2xhc3MgR2VuZXJhdG9yNywKLSAgICBjbGFzcyBHZW5lcmF0b3I4LCBjbGFzcyBHZW5lcmF0b3I5
PgotY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcjkgewotIHB1YmxpYzoKLUNhcnRlc2lhblBy
b2R1Y3RIb2xkZXI5KGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwK
LSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdl
bmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2LCBjb25zdCBHZW5lcmF0b3I3
JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsCi0gICAgY29uc3QgR2VuZXJhdG9yOSYgZzkpCi0g
ICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyksIGc0XyhnNCksIGc1XyhnNSksIGc2Xyhn
NiksIGc3XyhnNyksIGc4XyhnOCksCi0gICAgICAgICAgZzlfKGc5KSB7fQotICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVu
YW1lIFQ1LAotICAgICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlw
ZW5hbWUgVDk+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwKLSAgICAgIFQ5PiA+KCkgY29uc3QgewotICAg
IHJldHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsCi0gICAgICAgIFQ5PiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvcjk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4oCi0gICAg
ICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+KGcxXyksCi0gICAgICAgIHN0YXRp
Y19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBh
cmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJh
dG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ1PiA+
KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ2PiA+KGc2XyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3PiA+KGc3XyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ4PiA+KGc4XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFBhcmFtR2VuZXJhdG9yPFQ5PiA+KGc5XykpKTsKLSAgfQotCi0gcHJpdmF0ZToKLSAgLy8gTm8g
aW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJh
dG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyOSYgb3RoZXIpOwotCi0gIGNvbnN0IEdl
bmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAgY29uc3QgR2VuZXJhdG9y
MyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBHZW5lcmF0b3I1IGc1XzsK
LSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRvcjcgZzdfOwotICBjb25z
dCBHZW5lcmF0b3I4IGc4XzsKLSAgY29uc3QgR2VuZXJhdG9yOSBnOV87Ci19OyAgLy8gY2xhc3Mg
Q2FydGVzaWFuUHJvZHVjdEhvbGRlcjkKLQotdGVtcGxhdGUgPGNsYXNzIEdlbmVyYXRvcjEsIGNs
YXNzIEdlbmVyYXRvcjIsIGNsYXNzIEdlbmVyYXRvcjMsCi0gICAgY2xhc3MgR2VuZXJhdG9yNCwg
Y2xhc3MgR2VuZXJhdG9yNSwgY2xhc3MgR2VuZXJhdG9yNiwgY2xhc3MgR2VuZXJhdG9yNywKLSAg
ICBjbGFzcyBHZW5lcmF0b3I4LCBjbGFzcyBHZW5lcmF0b3I5LCBjbGFzcyBHZW5lcmF0b3IxMD4K
LWNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIxMCB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJv
ZHVjdEhvbGRlcjEwKGNvbnN0IEdlbmVyYXRvcjEmIGcxLCBjb25zdCBHZW5lcmF0b3IyJiBnMiwK
LSAgICBjb25zdCBHZW5lcmF0b3IzJiBnMywgY29uc3QgR2VuZXJhdG9yNCYgZzQsIGNvbnN0IEdl
bmVyYXRvcjUmIGc1LAotICAgIGNvbnN0IEdlbmVyYXRvcjYmIGc2LCBjb25zdCBHZW5lcmF0b3I3
JiBnNywgY29uc3QgR2VuZXJhdG9yOCYgZzgsCi0gICAgY29uc3QgR2VuZXJhdG9yOSYgZzksIGNv
bnN0IEdlbmVyYXRvcjEwJiBnMTApCi0gICAgICA6IGcxXyhnMSksIGcyXyhnMiksIGczXyhnMyks
IGc0XyhnNCksIGc1XyhnNSksIGc2XyhnNiksIGc3XyhnNyksIGc4XyhnOCksCi0gICAgICAgICAg
ZzlfKGc5KSwgZzEwXyhnMTApIHt9Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUg
VDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
PgotICBvcGVyYXRvciBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LAotICAgICAgVDEwPiA+KCkgY29uc3QgewotICAgIHJl
dHVybiBQYXJhbUdlbmVyYXRvcjwgOjp0ZXN0aW5nOjp0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LAotICAgICAgICBUMTA+ID4oCi0gICAgICAgIG5ldyBDYXJ0ZXNpYW5Q
cm9kdWN0R2VuZXJhdG9yMTA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwKLSAg
ICAgICAgICAgIFQxMD4oCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxPiA+
KGcxXyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQyPiA+KGcyXyksCi0g
ICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQzPiA+KGczXyksCi0gICAgICAgIHN0
YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ0PiA+KGc0XyksCi0gICAgICAgIHN0YXRpY19jYXN0
PFBhcmFtR2VuZXJhdG9yPFQ1PiA+KGc1XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2Vu
ZXJhdG9yPFQ2PiA+KGc2XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ3
PiA+KGc3XyksCi0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ4PiA+KGc4Xyks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQ5PiA+KGc5XyksCi0gICAgICAg
IHN0YXRpY19jYXN0PFBhcmFtR2VuZXJhdG9yPFQxMD4gPihnMTBfKSkpOwotICB9Ci0KLSBwcml2
YXRlOgotICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQu
Ci0gIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENhcnRlc2lhblByb2R1Y3RIb2xkZXIxMCYgb3RoZXIp
OwotCi0gIGNvbnN0IEdlbmVyYXRvcjEgZzFfOwotICBjb25zdCBHZW5lcmF0b3IyIGcyXzsKLSAg
Y29uc3QgR2VuZXJhdG9yMyBnM187Ci0gIGNvbnN0IEdlbmVyYXRvcjQgZzRfOwotICBjb25zdCBH
ZW5lcmF0b3I1IGc1XzsKLSAgY29uc3QgR2VuZXJhdG9yNiBnNl87Ci0gIGNvbnN0IEdlbmVyYXRv
cjcgZzdfOwotICBjb25zdCBHZW5lcmF0b3I4IGc4XzsKLSAgY29uc3QgR2VuZXJhdG9yOSBnOV87
Ci0gIGNvbnN0IEdlbmVyYXRvcjEwIGcxMF87Ci19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVj
dEhvbGRlcjEwCi0KLSMgZW5kaWYgIC8vIEdURVNUX0hBU19DT01CSU5FCi0KLX0gIC8vIG5hbWVz
cGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LXBhcmFtLXV0aWwtZ2VuZXJhdGVkLmgucHVtcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5w
dW1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGRmZmU0M2MzYzY3ODU2ODUyNDZk
YjVmMzFkMTk0N2M4YTIyYzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwv
Z3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaC5wdW1wCisrKyAvZGV2L251bGwKQEAgLTEsMjgy
ICswLDAgQEAKLSQkIC0qLSBtb2RlOiBjKys7IC0qLQotJHZhciBuID0gNTAgICQkIE1heGltdW0g
bGVuZ3RoIG9mIFZhbHVlcyBhcmd1bWVudHMgd2Ugd2FudCB0byBzdXBwb3J0LgotJHZhciBtYXh0
dXBsZSA9IDEwICAkJCBNYXhpbXVtIG51bWJlciBvZiBDb21iaW5lIGFyZ3VtZW50cyB3ZSB3YW50
IHRvIHN1cHBvcnQuCi0vLyBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLgotLy8gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoK
LS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwot
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0vLyBUeXBlIGFuZCBmdW5jdGlvbiB1dGlsaXRpZXMgZm9yIGltcGxlbWVudGluZyBwYXJh
bWV0ZXJpemVkIHRlc3RzLgotLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIFNDUklQVC4g
IERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVudGx5IEdvb2dsZSBUZXN0IHN1cHBv
cnRzIGF0IG1vc3QgJG4gYXJndW1lbnRzIGluIFZhbHVlcywKLS8vIGFuZCBhdCBtb3N0ICRtYXh0
dXBsZSBhcmd1bWVudHMgaW4gQ29tYmluZS4gUGxlYXNlIGNvbnRhY3QKLS8vIGdvb2dsZXRlc3Rm
cmFtZXdvcmtAZ29vZ2xlZ3JvdXBzLmNvbSBpZiB5b3UgbmVlZCBtb3JlLgotLy8gUGxlYXNlIG5v
dGUgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBDb21iaW5lIGlzIGxpbWl0ZWQKLS8v
IGJ5IHRoZSBtYXhpbXVtIGFyaXR5IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0dXBsZSB3aGlj
aCBpcwotLy8gY3VycmVudGx5IHNldCBhdCAkbWF4dHVwbGUuCi0KLS8vIEdPT0dMRVRFU1RfQ00w
MDAxIERPIE5PVCBERUxFVEUKLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFM
X0dURVNUX1BBUkFNX1VUSUxfR0VORVJBVEVEX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RF
U1RfSU5URVJOQUxfR1RFU1RfUEFSQU1fVVRJTF9HRU5FUkFURURfSF8KLQotI2luY2x1ZGUgImd0
ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0aWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRlcm5h
bC9ndGVzdC1wb3J0LmgiCi0KLW5hbWVzcGFjZSB0ZXN0aW5nIHsKLQotLy8gRm9yd2FyZCBkZWNs
YXJhdGlvbnMgb2YgVmFsdWVzSW4oKSwgd2hpY2ggaXMgaW1wbGVtZW50ZWQgaW4KLS8vIGluY2x1
ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLgotdGVtcGxhdGUgPHR5cGVuYW1lIEZvcndhcmRJ
dGVyYXRvcj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjwKLSAgdHlwZW5hbWUgOjp0ZXN0aW5n
OjppbnRlcm5hbDo6SXRlcmF0b3JUcmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVfdHlwZT4K
LVZhbHVlc0luKEZvcndhcmRJdGVyYXRvciBiZWdpbiwgRm9yd2FyZEl0ZXJhdG9yIGVuZCk7Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgTj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRv
cjxUPiBWYWx1ZXNJbihjb25zdCBUICgmYXJyYXkpW05dKTsKLQotdGVtcGxhdGUgPGNsYXNzIENv
bnRhaW5lcj4KLWludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6OnZh
bHVlX3R5cGU+IFZhbHVlc0luKAotICAgIGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKTsKLQot
bmFtZXNwYWNlIGludGVybmFsIHsKLQotLy8gVXNlZCBpbiB0aGUgVmFsdWVzKCkgZnVuY3Rpb24g
dG8gcHJvdmlkZSBwb2x5bW9ycGhpYyBjYXBhYmlsaXRpZXMuCi0kcmFuZ2UgaSAxLi5uCi0kZm9y
IGkgW1sKLSRyYW5nZSBqIDEuLmkKLQotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBlbmFtZSBUJGpd
XT4KLWNsYXNzIFZhbHVlQXJyYXkkaSB7Ci0gcHVibGljOgotICAkaWYgaT09MSBbW2V4cGxpY2l0
IF1dVmFsdWVBcnJheSRpKCRmb3IgaiwgW1tUJGogdiRqXV0pIDogJGZvciBqLCBbW3YkKGopXyh2
JGopXV0ge30KLQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgb3BlcmF0b3IgUGFyYW1HZW5l
cmF0b3I8VD4oKSBjb25zdCB7Ci0gICAgY29uc3QgVCBhcnJheVtdID0geyRmb3IgaiwgW1tzdGF0
aWNfY2FzdDxUPih2JChqKV8pXV19OwotICAgIHJldHVybiBWYWx1ZXNJbihhcnJheSk7Ci0gIH0K
LQotICBWYWx1ZUFycmF5JGkoY29uc3QgVmFsdWVBcnJheSRpJiBvdGhlcikgOiAkZm9yIGosIFtb
diQoailfKG90aGVyLnYkKGopXyldXSB7fQotCi0gcHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50
YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25z
dCBWYWx1ZUFycmF5JGkmIG90aGVyKTsKLQotJGZvciBqIFtbCi0KLSAgY29uc3QgVCRqIHYkKGop
XzsKLV1dCi0KLX07Ci0KLV1dCi0KLSMgaWYgR1RFU1RfSEFTX0NPTUJJTkUKLS8vIElOVEVSTkFM
IElNUExFTUVOVEFUSU9OIC0gRE8gTk9UIFVTRSBJTiBVU0VSIENPREUuCi0vLwotLy8gR2VuZXJh
dGVzIHZhbHVlcyBmcm9tIHRoZSBDYXJ0ZXNpYW4gcHJvZHVjdCBvZiB2YWx1ZXMgcHJvZHVjZWQK
LS8vIGJ5IHRoZSBhcmd1bWVudCBnZW5lcmF0b3JzLgotLy8KLSRyYW5nZSBpIDIuLm1heHR1cGxl
Ci0kZm9yIGkgW1sKLSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIDIuLmkKLQotdGVtcGxhdGUgPCRm
b3IgaiwgW1t0eXBlbmFtZSBUJGpdXT4KLWNsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3Ik
aQotICAgIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPCA6OnRlc3Rpbmc6OnR1cGxl
PCRmb3IgaiwgW1tUJGpdXT4gPiB7Ci0gcHVibGljOgotICB0eXBlZGVmIDo6dGVzdGluZzo6dHVw
bGU8JGZvciBqLCBbW1Qkal1dPiBQYXJhbVR5cGU7Ci0KLSAgQ2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvciRpKCRmb3IgaiwgW1tjb25zdCBQYXJhbUdlbmVyYXRvcjxUJGo+JiBnJGpdXSkKLSAgICAg
IDogJGZvciBqLCBbW2ckKGopXyhnJGopXV0ge30KLSAgdmlydHVhbCB+Q2FydGVzaWFuUHJvZHVj
dEdlbmVyYXRvciRpKCkge30KLQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFy
YW1UeXBlPiogQmVnaW4oKSBjb25zdCB7Ci0gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzLCAk
Zm9yIGosIFtbZyQoailfLCBnJChqKV8uYmVnaW4oKV1dKTsKLSAgfQotICB2aXJ0dWFsIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogRW5kKCkgY29uc3QgewotICAgIHJldHVybiBu
ZXcgSXRlcmF0b3IodGhpcywgJGZvciBqLCBbW2ckKGopXywgZyQoailfLmVuZCgpXV0pOwotICB9
Ci0KLSBwcml2YXRlOgotICBjbGFzcyBJdGVyYXRvciA6IHB1YmxpYyBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFBhcmFtVHlwZT4gewotICAgcHVibGljOgotICAgIEl0ZXJhdG9yKGNvbnN0IFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGJhc2UsICRmb3IgaiwgW1sKLQotICAgICAg
Y29uc3QgUGFyYW1HZW5lcmF0b3I8VCRqPiYgZyRqLAotICAgICAgY29uc3QgdHlwZW5hbWUgUGFy
YW1HZW5lcmF0b3I8VCRqPjo6aXRlcmF0b3ImIGN1cnJlbnQkKGopXV0pCi0gICAgICAgIDogYmFz
ZV8oYmFzZSksCi0kZm9yIGosIFtbCi0KLSAgICAgICAgICBiZWdpbiQoailfKGckai5iZWdpbigp
KSwgZW5kJChqKV8oZyRqLmVuZCgpKSwgY3VycmVudCQoailfKGN1cnJlbnQkaikKLV1dICAgIHsK
LSAgICAgIENvbXB1dGVDdXJyZW50VmFsdWUoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+SXRlcmF0
b3IoKSB7fQotCi0gICAgdmlydHVhbCBjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBCYXNlR2VuZXJhdG9yKCkgY29uc3QgewotICAgICAgcmV0dXJuIGJhc2VfOwotICAg
IH0KLSAgICAvLyBBZHZhbmNlIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGJleW9uZC1vZi1yYW5n
ZSBpdGVyYXRvcnMKLSAgICAvLyBzbyBubyBjb21wb25lbnQgaXRlcmF0b3JzIG11c3QgYmUgYmV5
b25kIGVuZCBvZiByYW5nZSwgZWl0aGVyLgotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgewot
ICAgICAgYXNzZXJ0KCFBdEVuZCgpKTsKLSAgICAgICsrY3VycmVudCQoaSlfOwotCi0kZm9yIGsg
W1sKLSAgICAgIGlmIChjdXJyZW50JChpKzItaylfID09IGVuZCQoaSsyLWspXykgewotICAgICAg
ICBjdXJyZW50JChpKzItaylfID0gYmVnaW4kKGkrMi1rKV87Ci0gICAgICAgICsrY3VycmVudCQo
aSsyLWstMSlfOwotICAgICAgfQotCi1dXQotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpOwot
ICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xv
bmUoKSBjb25zdCB7Ci0gICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCBjb25zdCBQYXJhbVR5cGUqIEN1cnJlbnQoKSBjb25zdCB7IHJldHVybiBjdXJy
ZW50X3ZhbHVlXy5nZXQoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3QgUGFyYW1J
dGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+JiBvdGhlcikgY29uc3QgewotICAgICAgLy8gSGF2
aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKLSAg
ICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4K
LSAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRv
cigpKQotICAgICAgICAgIDw8ICJUaGUgcHJvZ3JhbSBhdHRlbXB0ZWQgdG8gY29tcGFyZSBpdGVy
YXRvcnMgIgotICAgICAgICAgIDw8ICJmcm9tIGRpZmZlcmVudCBnZW5lcmF0b3JzLiIgPDwgc3Rk
OjplbmRsOwotICAgICAgY29uc3QgSXRlcmF0b3IqIHR5cGVkX290aGVyID0KLSAgICAgICAgICBD
aGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Y29uc3QgSXRlcmF0b3I+KCZvdGhlcik7Ci0gICAg
ICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvcnMgZXF1YWwgaWYgdGhleSBib3RoIHBvaW50IGJl
eW9uZCB0aGVpcgotICAgICAgLy8gcmVzcGVjdGl2ZSByYW5nZXMuIFRoYXQgY2FuIGhhcHBlbiBp
biBhIHZhcmlldHkgb2YgZmFzaGlvbnMsCi0gICAgICAvLyBzbyB3ZSBoYXZlIHRvIGNvbnN1bHQg
QXRFbmQoKS4KLSAgICAgIHJldHVybiAoQXRFbmQoKSAmJiB0eXBlZF9vdGhlci0+QXRFbmQoKSkg
fHwKLSAgICAgICAgICgkZm9yIGogICYmIFtbCi0KLSAgICAgICAgICBjdXJyZW50JChqKV8gPT0g
dHlwZWRfb3RoZXItPmN1cnJlbnQkKGopXwotXV0pOwotICAgIH0KLQotICAgcHJpdmF0ZToKLSAg
ICBJdGVyYXRvcihjb25zdCBJdGVyYXRvciYgb3RoZXIpCi0gICAgICAgIDogYmFzZV8ob3RoZXIu
YmFzZV8pLCAkZm9yIGosIFtbCi0KLSAgICAgICAgYmVnaW4kKGopXyhvdGhlci5iZWdpbiQoailf
KSwKLSAgICAgICAgZW5kJChqKV8ob3RoZXIuZW5kJChqKV8pLAotICAgICAgICBjdXJyZW50JChq
KV8ob3RoZXIuY3VycmVudCQoailfKQotXV0gewotICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OwotICAgIH0KLQotICAgIHZvaWQgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgpIHsKLSAgICAgIGlmICgh
QXRFbmQoKSkKLSAgICAgICAgY3VycmVudF92YWx1ZV8ucmVzZXQobmV3IFBhcmFtVHlwZSgkZm9y
IGosIFtbKmN1cnJlbnQkKGopX11dKSk7Ci0gICAgfQotICAgIGJvb2wgQXRFbmQoKSBjb25zdCB7
Ci0gICAgICAvLyBXZSBtdXN0IHJlcG9ydCBpdGVyYXRvciBwYXN0IHRoZSBlbmQgb2YgdGhlIHJh
bmdlIHdoZW4gZWl0aGVyIG9mIHRoZQotICAgICAgLy8gY29tcG9uZW50IGl0ZXJhdG9ycyBoYXMg
cmVhY2hlZCB0aGUgZW5kIG9mIGl0cyByYW5nZS4KLSAgICAgIHJldHVybgotJGZvciBqICB8fCBb
WwotCi0gICAgICAgICAgY3VycmVudCQoailfID09IGVuZCQoailfCi1dXTsKLSAgICB9Ci0KLSAg
ICAvLyBObyBpbXBsZW1lbnRhdGlvbiAtIGFzc2lnbm1lbnQgaXMgdW5zdXBwb3J0ZWQuCi0gICAg
dm9pZCBvcGVyYXRvcj0oY29uc3QgSXRlcmF0b3ImIG90aGVyKTsKLQotICAgIGNvbnN0IFBhcmFt
R2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOwotICAgIC8vIGJlZ2lu
W2ldXyBhbmQgZW5kW2ldXyBkZWZpbmUgdGhlIGktdGggcmFuZ2UgdGhhdCBJdGVyYXRvciB0cmF2
ZXJzZXMuCi0gICAgLy8gY3VycmVudFtpXV8gaXMgdGhlIGFjdHVhbCB0cmF2ZXJzaW5nIGl0ZXJh
dG9yLgotJGZvciBqIFtbCi0KLSAgICBjb25zdCB0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUJGo+
OjppdGVyYXRvciBiZWdpbiQoailfOwotICAgIGNvbnN0IHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9y
PFQkaj46Oml0ZXJhdG9yIGVuZCQoailfOwotICAgIHR5cGVuYW1lIFBhcmFtR2VuZXJhdG9yPFQk
aj46Oml0ZXJhdG9yIGN1cnJlbnQkKGopXzsKLV1dCi0KLSAgICBsaW5rZWRfcHRyPFBhcmFtVHlw
ZT4gY3VycmVudF92YWx1ZV87Ci0gIH07ICAvLyBjbGFzcyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJh
dG9yJGk6Okl0ZXJhdG9yCi0KLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlz
IHVuc3VwcG9ydGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0R2Vu
ZXJhdG9yJGkmIG90aGVyKTsKLQotCi0kZm9yIGogW1sKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8
VCRqPiBnJChqKV87Ci0KLV1dCi19OyAgLy8gY2xhc3MgQ2FydGVzaWFuUHJvZHVjdEdlbmVyYXRv
ciRpCi0KLQotXV0KLQotLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElO
IFVTRVIgQ09ERS4KLS8vCi0vLyBIZWxwZXIgY2xhc3NlcyBwcm92aWRpbmcgQ29tYmluZSgpIHdp
dGggcG9seW1vcnBoaWMgZmVhdHVyZXMuIFRoZXkgYWxsb3cKLS8vIGNhc3RpbmcgQ2FydGVzaWFu
UHJvZHVjdEdlbmVyYXRvck48VD4gdG8gUGFyYW1HZW5lcmF0b3I8VT4gaWYgVCBpcwotLy8gY29u
dmVydGlibGUgdG8gVS4KLS8vCi0kcmFuZ2UgaSAyLi5tYXh0dXBsZQotJGZvciBpIFtbCi0kcmFu
Z2UgaiAxLi5pCi0KLXRlbXBsYXRlIDwkZm9yIGosIFtbY2xhc3MgR2VuZXJhdG9yJGpdXT4KLWNs
YXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIkaSB7Ci0gcHVibGljOgotQ2FydGVzaWFuUHJvZHVj
dEhvbGRlciRpKCRmb3IgaiwgW1tjb25zdCBHZW5lcmF0b3IkaiYgZyRqXV0pCi0gICAgICA6ICRm
b3IgaiwgW1tnJChqKV8oZyRqKV1dIHt9Ci0gIHRlbXBsYXRlIDwkZm9yIGosIFtbdHlwZW5hbWUg
VCRqXV0+Ci0gIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPCA6OnRlc3Rpbmc6OnR1cGxlPCRmb3Ig
aiwgW1tUJGpdXT4gPigpIGNvbnN0IHsKLSAgICByZXR1cm4gUGFyYW1HZW5lcmF0b3I8IDo6dGVz
dGluZzo6dHVwbGU8JGZvciBqLCBbW1Qkal1dPiA+KAotICAgICAgICBuZXcgQ2FydGVzaWFuUHJv
ZHVjdEdlbmVyYXRvciRpPCRmb3IgaiwgW1tUJGpdXT4oCi0kZm9yIGosW1sKLQotICAgICAgICBz
dGF0aWNfY2FzdDxQYXJhbUdlbmVyYXRvcjxUJGo+ID4oZyQoailfKQotXV0pKTsKLSAgfQotCi0g
cHJpdmF0ZToKLSAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25tZW50IGlzIHVuc3VwcG9y
dGVkLgotICB2b2lkIG9wZXJhdG9yPShjb25zdCBDYXJ0ZXNpYW5Qcm9kdWN0SG9sZGVyJGkmIG90
aGVyKTsKLQotCi0kZm9yIGogW1sKLSAgY29uc3QgR2VuZXJhdG9yJGogZyQoailfOwotCi1dXQot
fTsgIC8vIGNsYXNzIENhcnRlc2lhblByb2R1Y3RIb2xkZXIkaQotCi1dXQotCi0jIGVuZGlmICAv
LyBHVEVTVF9IQVNfQ09NQklORQotCi19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLX0gIC8vIG5h
bWVzcGFjZSB0ZXN0aW5nCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5B
TF9HVEVTVF9QQVJBTV9VVElMX0dFTkVSQVRFRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wYXJhbS11dGlsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFt
LXV0aWwuaAppbmRleCBkNjRmNjIwYzRjNjc0MzQ2NzNjMGE2MWUyMzk2MGI2MTVjMzRlNzg0Li4z
ZTQ5YTZiYWFjNzI0ZDZiZGVjZmM1MTA2MGNhZDcwODY3ODMzZjhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBhcmFtLXV0
aWwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LXBhcmFtLXV0aWwuaApAQCAtMzIsMjMgKzMyLDI2IEBACiAKIC8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVS
TkFMX0dURVNUX1BBUkFNX1VUSUxfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRF
Uk5BTF9HVEVTVF9QQVJBTV9VVElMX0hfCisjaWZuZGVmIEdPT0dMRVRFU1RfSU5DTFVERV9HVEVT
VF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QQVJBTV9VVElMX0hfCiAKICNpbmNsdWRlIDxjdHlwZS5o
PgogCisjaW5jbHVkZSA8Y2Fzc2VydD4KICNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVf
dHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVk
ZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJndGVzdC9pbnRl
cm5hbC9ndGVzdC1saW5rZWRfcHRyLmgiCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
cG9ydC5oIgogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LXByaW50ZXJzLmgiCisjaW5jbHVkZSAiZ3Rl
c3QvZ3Rlc3QtdGVzdC1wYXJ0LmgiCiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKLQogLy8gSW5wdXQg
dG8gYSBwYXJhbWV0ZXJpemVkIHRlc3QgbmFtZSBnZW5lcmF0b3IsIGRlc2NyaWJpbmcgYSB0ZXN0
IHBhcmFtZXRlci4KIC8vIENvbnNpc3RzIG9mIHRoZSBwYXJhbWV0ZXIgdmFsdWUgYW5kIHRoZSBp
bnRlZ2VyIHBhcmFtZXRlciBpbmRleC4KIHRlbXBsYXRlIDxjbGFzcyBQYXJhbVR5cGU+CkBAIC03
MiwxMyArNzUsMTQgQEAgc3RydWN0IFByaW50VG9TdHJpbmdQYXJhbU5hbWUgewogbmFtZXNwYWNl
IGludGVybmFsIHsKIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElO
IFVTRVIgQ09ERS4KLS8vCisvLyBVdGlsaXR5IEZ1bmN0aW9ucworCiAvLyBPdXRwdXRzIGEgbWVz
c2FnZSBleHBsYWluaW5nIGludmFsaWQgcmVnaXN0cmF0aW9uIG9mIGRpZmZlcmVudAotLy8gZml4
dHVyZSBjbGFzcyBmb3IgdGhlIHNhbWUgdGVzdCBjYXNlLiBUaGlzIG1heSBoYXBwZW4gd2hlbgor
Ly8gZml4dHVyZSBjbGFzcyBmb3IgdGhlIHNhbWUgdGVzdCBzdWl0ZS4gVGhpcyBtYXkgaGFwcGVu
IHdoZW4KIC8vIFRFU1RfUCBtYWNybyBpcyB1c2VkIHRvIGRlZmluZSB0d28gdGVzdHMgd2l0aCB0
aGUgc2FtZSBuYW1lCiAvLyBidXQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuCi1HVEVTVF9BUElf
IHZvaWQgUmVwb3J0SW52YWxpZFRlc3RDYXNlVHlwZShjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlv
biBjb2RlX2xvY2F0aW9uKTsKK0dURVNUX0FQSV8gdm9pZCBSZXBvcnRJbnZhbGlkVGVzdFN1aXRl
VHlwZShjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pOwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWU+IGNsYXNzIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlOwogdGVtcGxhdGUg
PHR5cGVuYW1lPiBjbGFzcyBQYXJhbUdlbmVyYXRvcjsKQEAgLTE1Myw3ICsxNTcsNyBAQCBjbGFz
cyBQYXJhbUl0ZXJhdG9yIHsKICBwcml2YXRlOgogICBmcmllbmQgY2xhc3MgUGFyYW1HZW5lcmF0
b3I8VD47CiAgIGV4cGxpY2l0IFBhcmFtSXRlcmF0b3IoUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogaW1wbCkgOiBpbXBsXyhpbXBsKSB7fQotICBzY29wZWRfcHRyPFBhcmFtSXRlcmF0b3JJbnRl
cmZhY2U8VD4gPiBpbXBsXzsKKyAgc3RkOjp1bmlxdWVfcHRyPFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8VD4gPiBpbXBsXzsKIH07CiAKIC8vIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IGlzIHRo
ZSBiaW5hcnkgaW50ZXJmYWNlIHRvIGFjY2VzcyBnZW5lcmF0b3JzCkBAIC0xOTIsNyArMTk2LDcg
QEAgY2xhc3MgUGFyYW1HZW5lcmF0b3IgewogICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVy
biBpdGVyYXRvcihpbXBsXy0+RW5kKCkpOyB9CiAKICBwcml2YXRlOgotICBsaW5rZWRfcHRyPGNv
bnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+ID4gaW1wbF87CisgIHN0ZDo6c2hhcmVkX3B0
cjxjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiA+IGltcGxfOwogfTsKIAogLy8gR2Vu
ZXJhdGVzIHZhbHVlcyBmcm9tIGEgcmFuZ2Ugb2YgdHdvIGNvbXBhcmFibGUgdmFsdWVzLiBDYW4g
YmUgdXNlZCB0bwpAQCAtMjA1LDEyICsyMDksMTIgQEAgY2xhc3MgUmFuZ2VHZW5lcmF0b3IgOiBw
dWJsaWMgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4gewogICBSYW5nZUdlbmVyYXRvcihUIGJl
Z2luLCBUIGVuZCwgSW5jcmVtZW50VCBzdGVwKQogICAgICAgOiBiZWdpbl8oYmVnaW4pLCBlbmRf
KGVuZCksCiAgICAgICAgIHN0ZXBfKHN0ZXApLCBlbmRfaW5kZXhfKENhbGN1bGF0ZUVuZEluZGV4
KGJlZ2luLCBlbmQsIHN0ZXApKSB7fQotICB2aXJ0dWFsIH5SYW5nZUdlbmVyYXRvcigpIHt9Cisg
IH5SYW5nZUdlbmVyYXRvcigpIG92ZXJyaWRlIHt9CiAKLSAgdmlydHVhbCBQYXJhbUl0ZXJhdG9y
SW50ZXJmYWNlPFQ+KiBCZWdpbigpIGNvbnN0IHsKKyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogQmVnaW4oKSBjb25zdCBvdmVycmlkZSB7CiAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlz
LCBiZWdpbl8sIDAsIHN0ZXBfKTsKICAgfQotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZh
Y2U8VD4qIEVuZCgpIGNvbnN0IHsKKyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogRW5kKCkg
Y29uc3Qgb3ZlcnJpZGUgewogICAgIHJldHVybiBuZXcgSXRlcmF0b3IodGhpcywgZW5kXywgZW5k
X2luZGV4Xywgc3RlcF8pOwogICB9CiAKQEAgLTIyMCwyMCArMjI0LDIwIEBAIGNsYXNzIFJhbmdl
R2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgICBJdGVy
YXRvcihjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiogYmFzZSwgVCB2YWx1ZSwgaW50
IGluZGV4LAogICAgICAgICAgICAgIEluY3JlbWVudFQgc3RlcCkKICAgICAgICAgOiBiYXNlXyhi
YXNlKSwgdmFsdWVfKHZhbHVlKSwgaW5kZXhfKGluZGV4KSwgc3RlcF8oc3RlcCkge30KLSAgICB2
aXJ0dWFsIH5JdGVyYXRvcigpIHt9CisgICAgfkl0ZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICAg
IHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4qIEJhc2VHZW5lcmF0b3Io
KSBjb25zdCB7CisgICAgY29uc3QgUGFyYW1HZW5lcmF0b3JJbnRlcmZhY2U8VD4qIEJhc2VHZW5l
cmF0b3IoKSBjb25zdCBvdmVycmlkZSB7CiAgICAgICByZXR1cm4gYmFzZV87CiAgICAgfQotICAg
IHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgeworICAgIHZvaWQgQWR2YW5jZSgpIG92ZXJyaWRlIHsK
ICAgICAgIHZhbHVlXyA9IHN0YXRpY19jYXN0PFQ+KHZhbHVlXyArIHN0ZXBfKTsKICAgICAgIGlu
ZGV4XysrOwogICAgIH0KLSAgICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIENs
b25lKCkgY29uc3QgeworICAgIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIENsb25lKCkgY29u
c3Qgb3ZlcnJpZGUgewogICAgICAgcmV0dXJuIG5ldyBJdGVyYXRvcigqdGhpcyk7CiAgICAgfQot
ICAgIHZpcnR1YWwgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IHsgcmV0dXJuICZ2YWx1ZV87IH0K
LSAgICB2aXJ0dWFsIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4m
IG90aGVyKSBjb25zdCB7CisgICAgY29uc3QgVCogQ3VycmVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICZ2YWx1ZV87IH0KKyAgICBib29sIEVxdWFscyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50
ZXJmYWNlPFQ+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUgewogICAgICAgLy8gSGF2aW5nIHRoZSBz
YW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCB0aGUgb3RoZXIKICAgICAgIC8vIGl0
ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdlIGNhbiBkb3duY2FzdC4KICAgICAgIEdU
RVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3RoZXIuQmFzZUdlbmVyYXRvcigpKQpAQCAt
MjkwLDEyICsyOTQsMTIgQEAgY2xhc3MgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDog
cHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNlPFQ+IHsKICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEZvcndhcmRJdGVyYXRvcj4KICAgVmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yKEZvcndh
cmRJdGVyYXRvciBiZWdpbiwgRm9yd2FyZEl0ZXJhdG9yIGVuZCkKICAgICAgIDogY29udGFpbmVy
XyhiZWdpbiwgZW5kKSB7fQotICB2aXJ0dWFsIH5WYWx1ZXNJbkl0ZXJhdG9yUmFuZ2VHZW5lcmF0
b3IoKSB7fQorICB+VmFsdWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yKCkgb3ZlcnJpZGUge30K
IAotICB2aXJ0dWFsIFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8VD4qIEJlZ2luKCkgY29uc3Qgewor
ICBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBCZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKICAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMsIGNvbnRhaW5lcl8uYmVnaW4oKSk7CiAgIH0KLSAg
dmlydHVhbCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+KiBFbmQoKSBjb25zdCB7CisgIFBhcmFt
SXRlcmF0b3JJbnRlcmZhY2U8VD4qIEVuZCgpIGNvbnN0IG92ZXJyaWRlIHsKICAgICByZXR1cm4g
bmV3IEl0ZXJhdG9yKHRoaXMsIGNvbnRhaW5lcl8uZW5kKCkpOwogICB9CiAKQEAgLTMwNywxNiAr
MzExLDE2IEBAIGNsYXNzIFZhbHVlc0luSXRlcmF0b3JSYW5nZUdlbmVyYXRvciA6IHB1YmxpYyBQ
YXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7CiAgICAgSXRlcmF0b3IoY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8VD4qIGJhc2UsCiAgICAgICAgICAgICAgdHlwZW5hbWUgQ29udGFpbmVy
VHlwZTo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3IpCiAgICAgICAgIDogYmFzZV8oYmFzZSksIGl0
ZXJhdG9yXyhpdGVyYXRvcikge30KLSAgICB2aXJ0dWFsIH5JdGVyYXRvcigpIHt9CisgICAgfkl0
ZXJhdG9yKCkgb3ZlcnJpZGUge30KIAotICAgIHZpcnR1YWwgY29uc3QgUGFyYW1HZW5lcmF0b3JJ
bnRlcmZhY2U8VD4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCB7CisgICAgY29uc3QgUGFyYW1HZW5l
cmF0b3JJbnRlcmZhY2U8VD4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCBvdmVycmlkZSB7CiAgICAg
ICByZXR1cm4gYmFzZV87CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBBZHZhbmNlKCkgeworICAg
IHZvaWQgQWR2YW5jZSgpIG92ZXJyaWRlIHsKICAgICAgICsraXRlcmF0b3JfOwogICAgICAgdmFs
dWVfLnJlc2V0KCk7CiAgICAgfQotICAgIHZpcnR1YWwgUGFyYW1JdGVyYXRvckludGVyZmFjZTxU
PiogQ2xvbmUoKSBjb25zdCB7CisgICAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiogQ2xvbmUo
KSBjb25zdCBvdmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKCp0aGlzKTsKICAg
ICB9CiAgICAgLy8gV2UgbmVlZCB0byB1c2UgY2FjaGVkIHZhbHVlIHJlZmVyZW5jZWQgYnkgaXRl
cmF0b3JfIGJlY2F1c2UgKml0ZXJhdG9yXwpAQCAtMzI2LDEyICszMzAsMTEgQEAgY2xhc3MgVmFs
dWVzSW5JdGVyYXRvclJhbmdlR2VuZXJhdG9yIDogcHVibGljIFBhcmFtR2VuZXJhdG9ySW50ZXJm
YWNlPFQ+IHsKICAgICAvLyBjYW4gYWR2YW5jZSBpdGVyYXRvcl8gYmV5b25kIHRoZSBlbmQgb2Yg
dGhlIHJhbmdlLCBhbmQgd2UgY2Fubm90CiAgICAgLy8gZGV0ZWN0IHRoYXQgZmFjdC4gVGhlIGNs
aWVudCBjb2RlLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMKICAgICAvLyByZXNwb25zaWJsZSBmb3Ig
bm90IGNhbGxpbmcgQ3VycmVudCgpIG9uIGFuIG91dC1vZi1yYW5nZSBpdGVyYXRvci4KLSAgICB2
aXJ0dWFsIGNvbnN0IFQqIEN1cnJlbnQoKSBjb25zdCB7Ci0gICAgICBpZiAodmFsdWVfLmdldCgp
ID09IE5VTEwpCi0gICAgICAgIHZhbHVlXy5yZXNldChuZXcgVCgqaXRlcmF0b3JfKSk7CisgICAg
Y29uc3QgVCogQ3VycmVudCgpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIGlmICh2YWx1ZV8uZ2V0
KCkgPT0gbnVsbHB0cikgdmFsdWVfLnJlc2V0KG5ldyBUKCppdGVyYXRvcl8pKTsKICAgICAgIHJl
dHVybiB2YWx1ZV8uZ2V0KCk7CiAgICAgfQotICAgIHZpcnR1YWwgYm9vbCBFcXVhbHMoY29uc3Qg
UGFyYW1JdGVyYXRvckludGVyZmFjZTxUPiYgb3RoZXIpIGNvbnN0IHsKKyAgICBib29sIEVxdWFs
cyhjb25zdCBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFQ+JiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUg
ewogICAgICAgLy8gSGF2aW5nIHRoZSBzYW1lIGJhc2UgZ2VuZXJhdG9yIGd1YXJhbnRlZXMgdGhh
dCB0aGUgb3RoZXIKICAgICAgIC8vIGl0ZXJhdG9yIGlzIG9mIHRoZSBzYW1lIHR5cGUgYW5kIHdl
IGNhbiBkb3duY2FzdC4KICAgICAgIEdURVNUX0NIRUNLXyhCYXNlR2VuZXJhdG9yKCkgPT0gb3Ro
ZXIuQmFzZUdlbmVyYXRvcigpKQpAQCAtMzU0LDkgKzM1Nyw5IEBAIGNsYXNzIFZhbHVlc0luSXRl
cmF0b3JSYW5nZUdlbmVyYXRvciA6IHB1YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxUPiB7
CiAgICAgLy8gQSBjYWNoZWQgdmFsdWUgb2YgKml0ZXJhdG9yXy4gV2Uga2VlcCBpdCBoZXJlIHRv
IGFsbG93IGFjY2VzcyBieQogICAgIC8vIHBvaW50ZXIgaW4gdGhlIHdyYXBwaW5nIGl0ZXJhdG9y
J3Mgb3BlcmF0b3ItPigpLgogICAgIC8vIHZhbHVlXyBuZWVkcyB0byBiZSBtdXRhYmxlIHRvIGJl
IGFjY2Vzc2VkIGluIEN1cnJlbnQoKS4KLSAgICAvLyBVc2Ugb2Ygc2NvcGVkX3B0ciBoZWxwcyBt
YW5hZ2UgY2FjaGVkIHZhbHVlJ3MgbGlmZXRpbWUsCisgICAgLy8gVXNlIG9mIHN0ZDo6dW5pcXVl
X3B0ciBoZWxwcyBtYW5hZ2UgY2FjaGVkIHZhbHVlJ3MgbGlmZXRpbWUsCiAgICAgLy8gd2hpY2gg
aXMgYm91bmQgYnkgdGhlIGxpZmVzcGFuIG9mIHRoZSBpdGVyYXRvciBpdHNlbGYuCi0gICAgbXV0
YWJsZSBzY29wZWRfcHRyPGNvbnN0IFQ+IHZhbHVlXzsKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBUPiB2YWx1ZV87CiAgIH07ICAvLyBjbGFzcyBWYWx1ZXNJbkl0ZXJhdG9yUmFu
Z2VHZW5lcmF0b3I6Okl0ZXJhdG9yCiAKICAgLy8gTm8gaW1wbGVtZW50YXRpb24gLSBhc3NpZ25t
ZW50IGlzIHVuc3VwcG9ydGVkLgpAQCAtMzc2LDI1ICszNzksMTIgQEAgc3RkOjpzdHJpbmcgRGVm
YXVsdFBhcmFtTmFtZShjb25zdCBUZXN0UGFyYW1JbmZvPFBhcmFtVHlwZT4mIGluZm8pIHsKICAg
cmV0dXJuIG5hbWVfc3RyZWFtLkdldFN0cmluZygpOwogfQogCi0vLyBJTlRFUk5BTCBJTVBMRU1F
TlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgotLy8KLS8vIFBhcmFtZXRlcml6ZWQg
dGVzdCBuYW1lIG92ZXJsb2FkIGhlbHBlcnMsIHdoaWNoIGhlbHAgdGhlCi0vLyBJTlNUQU5USUFU
RV9URVNUX0NBU0VfUCBtYWNybyBjaG9vc2UgYmV0d2VlbiB0aGUgZGVmYXVsdCBwYXJhbWV0ZXJp
emVkCi0vLyB0ZXN0IG5hbWUgZ2VuZXJhdG9yIGFuZCB1c2VyIHBhcmFtIG5hbWUgZ2VuZXJhdG9y
LgotdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZSwgY2xhc3MgUGFyYW1OYW1lR2VuRnVuY3Rvcj4K
LVBhcmFtTmFtZUdlbkZ1bmN0b3IgR2V0UGFyYW1OYW1lR2VuKFBhcmFtTmFtZUdlbkZ1bmN0b3Ig
ZnVuYykgewotICByZXR1cm4gZnVuYzsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIFBhcmFtVHlwZT4K
LXN0cnVjdCBQYXJhbU5hbWVHZW5GdW5jIHsKLSAgdHlwZWRlZiBzdGQ6OnN0cmluZyBUeXBlKGNv
bnN0IFRlc3RQYXJhbUluZm88UGFyYW1UeXBlPiYpOwotfTsKLQotdGVtcGxhdGUgPGNsYXNzIFBh
cmFtVHlwZT4KLXR5cGVuYW1lIFBhcmFtTmFtZUdlbkZ1bmM8UGFyYW1UeXBlPjo6VHlwZSAqR2V0
UGFyYW1OYW1lR2VuKCkgewotICByZXR1cm4gRGVmYXVsdFBhcmFtTmFtZTsKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUID0gaW50Pgordm9pZCBUZXN0Tm90RW1wdHkoKSB7CisgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKFQpID09IDAsICJFbXB0eSBhcmd1bWVudHMgYXJlIG5vdCBhbGxvd2VkLiIpOwogfQor
dGVtcGxhdGUgPHR5cGVuYW1lIFQgPSBpbnQ+Cit2b2lkIFRlc3ROb3RFbXB0eShjb25zdCBUJikg
e30KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09E
RS4KIC8vCkBAIC00MDYsNyArMzk2LDcgQEAgY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5
IDogcHVibGljIFRlc3RGYWN0b3J5QmFzZSB7CiAgIHR5cGVkZWYgdHlwZW5hbWUgVGVzdENsYXNz
OjpQYXJhbVR5cGUgUGFyYW1UeXBlOwogICBleHBsaWNpdCBQYXJhbWV0ZXJpemVkVGVzdEZhY3Rv
cnkoUGFyYW1UeXBlIHBhcmFtZXRlcikgOgogICAgICAgcGFyYW1ldGVyXyhwYXJhbWV0ZXIpIHt9
Ci0gIHZpcnR1YWwgVGVzdCogQ3JlYXRlVGVzdCgpIHsKKyAgVGVzdCogQ3JlYXRlVGVzdCgpIG92
ZXJyaWRlIHsKICAgICBUZXN0Q2xhc3M6OlNldFBhcmFtKCZwYXJhbWV0ZXJfKTsKICAgICByZXR1
cm4gbmV3IFRlc3RDbGFzcygpOwogICB9CkBAIC00MzQsMTkgKzQyNCwxOSBAQCBjbGFzcyBUZXN0
TWV0YUZhY3RvcnlCYXNlIHsKIC8vIFRlc3RNZXRhRmFjdG9yeSBjcmVhdGVzIHRlc3QgZmFjdG9y
aWVzIGZvciBwYXNzaW5nIGludG8KIC8vIE1ha2VBbmRSZWdpc3RlclRlc3RJbmZvIGZ1bmN0aW9u
LiBTaW5jZSBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbyByZWNlaXZlcwogLy8gb3duZXJzaGlwIG9m
IHRlc3QgZmFjdG9yeSBwb2ludGVyLCBzYW1lIGZhY3Rvcnkgb2JqZWN0IGNhbm5vdCBiZSBwYXNz
ZWQKLS8vIGludG8gdGhhdCBtZXRob2QgdHdpY2UuIEJ1dCBQYXJhbWV0ZXJpemVkVGVzdENhc2VJ
bmZvIGlzIGdvaW5nIHRvIGNhbGwKKy8vIGludG8gdGhhdCBtZXRob2QgdHdpY2UuIEJ1dCBQYXJh
bWV0ZXJpemVkVGVzdFN1aXRlSW5mbyBpcyBnb2luZyB0byBjYWxsCiAvLyBpdCBmb3IgZWFjaCBU
ZXN0L1BhcmFtZXRlciB2YWx1ZSBjb21iaW5hdGlvbi4gVGh1cyBpdCBuZWVkcyBtZXRhIGZhY3Rv
cnkKIC8vIGNyZWF0b3IgY2xhc3MuCi10ZW1wbGF0ZSA8Y2xhc3MgVGVzdENhc2U+Cit0ZW1wbGF0
ZSA8Y2xhc3MgVGVzdFN1aXRlPgogY2xhc3MgVGVzdE1ldGFGYWN0b3J5Ci0gICAgOiBwdWJsaWMg
VGVzdE1ldGFGYWN0b3J5QmFzZTx0eXBlbmFtZSBUZXN0Q2FzZTo6UGFyYW1UeXBlPiB7CisgICAg
OiBwdWJsaWMgVGVzdE1ldGFGYWN0b3J5QmFzZTx0eXBlbmFtZSBUZXN0U3VpdGU6OlBhcmFtVHlw
ZT4gewogIHB1YmxpYzoKLSAgdHlwZWRlZiB0eXBlbmFtZSBUZXN0Q2FzZTo6UGFyYW1UeXBlIFBh
cmFtVHlwZTsKKyAgdXNpbmcgUGFyYW1UeXBlID0gdHlwZW5hbWUgVGVzdFN1aXRlOjpQYXJhbVR5
cGU7CiAKICAgVGVzdE1ldGFGYWN0b3J5KCkge30KIAotICB2aXJ0dWFsIFRlc3RGYWN0b3J5QmFz
ZSogQ3JlYXRlVGVzdEZhY3RvcnkoUGFyYW1UeXBlIHBhcmFtZXRlcikgewotICAgIHJldHVybiBu
ZXcgUGFyYW1ldGVyaXplZFRlc3RGYWN0b3J5PFRlc3RDYXNlPihwYXJhbWV0ZXIpOworICBUZXN0
RmFjdG9yeUJhc2UqIENyZWF0ZVRlc3RGYWN0b3J5KFBhcmFtVHlwZSBwYXJhbWV0ZXIpIG92ZXJy
aWRlIHsKKyAgICByZXR1cm4gbmV3IFBhcmFtZXRlcml6ZWRUZXN0RmFjdG9yeTxUZXN0U3VpdGU+
KHBhcmFtZXRlcik7CiAgIH0KIAogIHByaXZhdGU6CkBAIC00NTUsOTMgKzQ0NSwxMDcgQEAgY2xh
c3MgVGVzdE1ldGFGYWN0b3J5CiAKIC8vIElOVEVSTkFMIElNUExFTUVOVEFUSU9OIC0gRE8gTk9U
IFVTRSBJTiBVU0VSIENPREUuCiAvLwotLy8gUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2Ug
aXMgYSBnZW5lcmljIGludGVyZmFjZQotLy8gdG8gUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbyBj
bGFzc2VzLiBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZQorLy8gUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZUluZm9CYXNlIGlzIGEgZ2VuZXJpYyBpbnRlcmZhY2UKKy8vIHRvIFBhcmFtZXRlcml6
ZWRUZXN0U3VpdGVJbmZvIGNsYXNzZXMuIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZQog
Ly8gYWNjdW11bGF0ZXMgdGVzdCBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBURVNUX1AgbWFjcm8g
aW52b2NhdGlvbnMKLS8vIGFuZCBnZW5lcmF0b3JzIHByb3ZpZGVkIGJ5IElOU1RBTlRJQVRFX1RF
U1RfQ0FTRV9QIG1hY3JvIGludm9jYXRpb25zCisvLyBhbmQgZ2VuZXJhdG9ycyBwcm92aWRlZCBi
eSBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgbWFjcm8gaW52b2NhdGlvbnMKIC8vIGFuZCB1c2Vz
IHRoYXQgaW5mb3JtYXRpb24gdG8gcmVnaXN0ZXIgYWxsIHJlc3VsdGluZyB0ZXN0IGluc3RhbmNl
cwotLy8gaW4gUmVnaXN0ZXJUZXN0cyBtZXRob2QuIFRoZSBQYXJhbWV0ZXJpemVUZXN0Q2FzZVJl
Z2lzdHJ5IGNsYXNzIGhvbGRzCi0vLyBhIGNvbGxlY3Rpb24gb2YgcG9pbnRlcnMgdG8gdGhlIFBh
cmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gb2JqZWN0cworLy8gaW4gUmVnaXN0ZXJUZXN0cyBtZXRo
b2QuIFRoZSBQYXJhbWV0ZXJpemVUZXN0U3VpdGVSZWdpc3RyeSBjbGFzcyBob2xkcworLy8gYSBj
b2xsZWN0aW9uIG9mIHBvaW50ZXJzIHRvIHRoZSBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyBv
YmplY3RzCiAvLyBhbmQgY2FsbHMgUmVnaXN0ZXJUZXN0cygpIG9uIGVhY2ggb2YgdGhlbSB3aGVu
IGFza2VkLgotY2xhc3MgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgeworY2xhc3MgUGFy
YW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgflBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlKCkge30KKyAgdmlydHVhbCB+UGFyYW1ldGVyaXplZFRl
c3RTdWl0ZUluZm9CYXNlKCkge30KIAotICAvLyBCYXNlIHBhcnQgb2YgdGVzdCBjYXNlIG5hbWUg
Zm9yIGRpc3BsYXkgcHVycG9zZXMuCi0gIHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRl
c3RDYXNlTmFtZSgpIGNvbnN0ID0gMDsKLSAgLy8gVGVzdCBjYXNlIGlkIHRvIHZlcmlmeSBpZGVu
dGl0eS4KLSAgdmlydHVhbCBUeXBlSWQgR2V0VGVzdENhc2VUeXBlSWQoKSBjb25zdCA9IDA7Cisg
IC8vIEJhc2UgcGFydCBvZiB0ZXN0IHN1aXRlIG5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMuCisg
IHZpcnR1YWwgY29uc3Qgc3RkOjpzdHJpbmcmIEdldFRlc3RTdWl0ZU5hbWUoKSBjb25zdCA9IDA7
CisgIC8vIFRlc3Qgc3VpdGUgaWQgdG8gdmVyaWZ5IGlkZW50aXR5LgorICB2aXJ0dWFsIFR5cGVJ
ZCBHZXRUZXN0U3VpdGVUeXBlSWQoKSBjb25zdCA9IDA7CiAgIC8vIFVuaXRUZXN0IGNsYXNzIGlu
dm9rZXMgdGhpcyBtZXRob2QgdG8gcmVnaXN0ZXIgdGVzdHMgaW4gdGhpcwotICAvLyB0ZXN0IGNh
c2UgcmlnaHQgYmVmb3JlIHJ1bm5pbmcgdGhlbSBpbiBSVU5fQUxMX1RFU1RTIG1hY3JvLgotICAv
LyBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBtb3JlIHRoZW4gb25jZSBvbiBhbnkg
c2luZ2xlCi0gIC8vIGluc3RhbmNlIG9mIGEgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2Ug
ZGVyaXZlZCBjbGFzcy4KKyAgLy8gdGVzdCBzdWl0ZSByaWdodCBiZWZvcmUgcnVubmluZyB0aGVt
IGluIFJVTl9BTExfVEVTVFMgbWFjcm8uCisgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG1vcmUgdGhhbiBvbmNlIG9uIGFueSBzaW5nbGUKKyAgLy8gaW5zdGFuY2Ugb2YgYSBQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgZGVyaXZlZCBjbGFzcy4KICAgdmlydHVhbCB2
b2lkIFJlZ2lzdGVyVGVzdHMoKSA9IDA7CiAKICBwcm90ZWN0ZWQ6Ci0gIFBhcmFtZXRlcml6ZWRU
ZXN0Q2FzZUluZm9CYXNlKCkge30KKyAgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm9CYXNlKCkg
e30KIAogIHByaXZhdGU6Ci0gIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1l
dGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UpOworICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJ
R05fKFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFzZSk7CiB9OwogCiAvLyBJTlRFUk5BTCBJ
TVBMRU1FTlRBVElPTiAtIERPIE5PVCBVU0UgSU4gVVNFUiBDT0RFLgogLy8KLS8vIFBhcmFtZXRl
cml6ZWRUZXN0Q2FzZUluZm8gYWNjdW11bGF0ZXMgdGVzdHMgb2J0YWluZWQgZnJvbSBURVNUX1AK
LS8vIG1hY3JvIGludm9jYXRpb25zIGZvciBhIHBhcnRpY3VsYXIgdGVzdCBjYXNlIGFuZCBnZW5l
cmF0b3JzCi0vLyBvYnRhaW5lZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIG1hY3JvIGlu
dm9jYXRpb25zIGZvciB0aGF0Ci0vLyB0ZXN0IGNhc2UuIEl0IHJlZ2lzdGVycyB0ZXN0cyB3aXRo
IGFsbCB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IGFsbAorLy8gUmVwb3J0IGEgdGhlIG5hbWUgb2YgYSB0
ZXN0X3N1aXQgYXMgc2FmZSB0byBpZ25vcmUKKy8vIGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBjb25z
dHJ1Y3Rpb24gb2YgdGhpcyB0eXBlLgorc3RydWN0IE1hcmtBc0lnbm9yZWQgeworICBleHBsaWNp
dCBNYXJrQXNJZ25vcmVkKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGUpOworfTsKKworR1RFU1RfQVBJ
XyB2b2lkIEluc2VydFN5bnRoZXRpY1Rlc3RDYXNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBsb2Nh
dGlvbiwgYm9vbCBoYXNfdGVzdF9wKTsKKworLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBE
TyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KKy8vCisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5m
byBhY2N1bXVsYXRlcyB0ZXN0cyBvYnRhaW5lZCBmcm9tIFRFU1RfUAorLy8gbWFjcm8gaW52b2Nh
dGlvbnMgZm9yIGEgcGFydGljdWxhciB0ZXN0IHN1aXRlIGFuZCBnZW5lcmF0b3JzCisvLyBvYnRh
aW5lZCBmcm9tIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNybyBpbnZvY2F0aW9ucyBmb3Ig
dGhhdAorLy8gdGVzdCBzdWl0ZS4gSXQgcmVnaXN0ZXJzIHRlc3RzIHdpdGggYWxsIHZhbHVlcyBn
ZW5lcmF0ZWQgYnkgYWxsCiAvLyBnZW5lcmF0b3JzIHdoZW4gYXNrZWQuCi10ZW1wbGF0ZSA8Y2xh
c3MgVGVzdENhc2U+Ci1jbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvIDogcHVibGljIFBh
cmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIHsKK3RlbXBsYXRlIDxjbGFzcyBUZXN0U3VpdGU+
CitjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyA6IHB1YmxpYyBQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlSW5mb0Jhc2UgewogIHB1YmxpYzoKICAgLy8gUGFyYW1UeXBlIGFuZCBHZW5lcmF0
b3JDcmVhdGlvbkZ1bmMgYXJlIHByaXZhdGUgdHlwZXMgYnV0IGFyZSByZXF1aXJlZAogICAvLyBm
b3IgZGVjbGFyYXRpb25zIG9mIHB1YmxpYyBtZXRob2RzIEFkZFRlc3RQYXR0ZXJuKCkgYW5kCi0g
IC8vIEFkZFRlc3RDYXNlSW5zdGFudGlhdGlvbigpLgotICB0eXBlZGVmIHR5cGVuYW1lIFRlc3RD
YXNlOjpQYXJhbVR5cGUgUGFyYW1UeXBlOworICAvLyBBZGRUZXN0U3VpdGVJbnN0YW50aWF0aW9u
KCkuCisgIHVzaW5nIFBhcmFtVHlwZSA9IHR5cGVuYW1lIFRlc3RTdWl0ZTo6UGFyYW1UeXBlOwog
ICAvLyBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhcHByb3ByaWF0ZSBn
ZW5lcmF0b3IgdHlwZS4KICAgdHlwZWRlZiBQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+KEdlbmVy
YXRvckNyZWF0aW9uRnVuYykoKTsKLSAgdHlwZWRlZiB0eXBlbmFtZSBQYXJhbU5hbWVHZW5GdW5j
PFBhcmFtVHlwZT46OlR5cGUgUGFyYW1OYW1lR2VuZXJhdG9yRnVuYzsKKyAgdXNpbmcgUGFyYW1O
YW1lR2VuZXJhdG9yRnVuYyA9IHN0ZDo6c3RyaW5nKGNvbnN0IFRlc3RQYXJhbUluZm88UGFyYW1U
eXBlPiYpOwogCi0gIGV4cGxpY2l0IFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8oCi0gICAgICBj
b25zdCBjaGFyKiBuYW1lLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikKLSAgICAgIDogdGVz
dF9jYXNlX25hbWVfKG5hbWUpLCBjb2RlX2xvY2F0aW9uXyhjb2RlX2xvY2F0aW9uKSB7fQorICBl
eHBsaWNpdCBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyhjb25zdCBjaGFyKiBuYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2Nh
dGlvbikKKyAgICAgIDogdGVzdF9zdWl0ZV9uYW1lXyhuYW1lKSwgY29kZV9sb2NhdGlvbl8oY29k
ZV9sb2NhdGlvbikge30KIAotICAvLyBUZXN0IGNhc2UgYmFzZSBuYW1lIGZvciBkaXNwbGF5IHB1
cnBvc2VzLgotICB2aXJ0dWFsIGNvbnN0IHN0ZDo6c3RyaW5nJiBHZXRUZXN0Q2FzZU5hbWUoKSBj
b25zdCB7IHJldHVybiB0ZXN0X2Nhc2VfbmFtZV87IH0KLSAgLy8gVGVzdCBjYXNlIGlkIHRvIHZl
cmlmeSBpZGVudGl0eS4KLSAgdmlydHVhbCBUeXBlSWQgR2V0VGVzdENhc2VUeXBlSWQoKSBjb25z
dCB7IHJldHVybiBHZXRUeXBlSWQ8VGVzdENhc2U+KCk7IH0KKyAgLy8gVGVzdCBzdWl0ZSBiYXNl
IG5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMuCisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBHZXRUZXN0
U3VpdGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgIHJldHVybiB0ZXN0X3N1aXRlX25hbWVf
OworICB9CisgIC8vIFRlc3Qgc3VpdGUgaWQgdG8gdmVyaWZ5IGlkZW50aXR5LgorICBUeXBlSWQg
R2V0VGVzdFN1aXRlVHlwZUlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gR2V0VHlwZUlkPFRl
c3RTdWl0ZT4oKTsgfQogICAvLyBURVNUX1AgbWFjcm8gdXNlcyBBZGRUZXN0UGF0dGVybigpIHRv
IHJlY29yZCBpbmZvcm1hdGlvbgogICAvLyBhYm91dCBhIHNpbmdsZSB0ZXN0IGluIGEgTG9jYWxU
ZXN0SW5mbyBzdHJ1Y3R1cmUuCi0gIC8vIHRlc3RfY2FzZV9uYW1lIGlzIHRoZSBiYXNlIG5hbWUg
b2YgdGhlIHRlc3QgY2FzZSAod2l0aG91dCBpbnZvY2F0aW9uCisgIC8vIHRlc3Rfc3VpdGVfbmFt
ZSBpcyB0aGUgYmFzZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlICh3aXRob3V0IGludm9jYXRpb24K
ICAgLy8gcHJlZml4KS4gdGVzdF9iYXNlX25hbWUgaXMgdGhlIG5hbWUgb2YgYW4gaW5kaXZpZHVh
bCB0ZXN0IHdpdGhvdXQKICAgLy8gcGFyYW1ldGVyIGluZGV4LiBGb3IgdGhlIHRlc3QgU2VxdWVu
Y2VBL0Zvb1Rlc3QuRG9CYXIvMSBGb29UZXN0IGlzCi0gIC8vIHRlc3QgY2FzZSBiYXNlIG5hbWUg
YW5kIERvQmFyIGlzIHRlc3QgYmFzZSBuYW1lLgotICB2b2lkIEFkZFRlc3RQYXR0ZXJuKGNvbnN0
IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHRlc3RfYmFzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgIFRlc3RNZXRhRmFjdG9yeUJh
c2U8UGFyYW1UeXBlPiogbWV0YV9mYWN0b3J5KSB7Ci0gICAgdGVzdHNfLnB1c2hfYmFjayhsaW5r
ZWRfcHRyPFRlc3RJbmZvPihuZXcgVGVzdEluZm8odGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9iYXNlX25h
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWV0YV9mYWN0b3J5KSkpOworICAvLyB0ZXN0IHN1aXRlIGJhc2UgbmFtZSBhbmQgRG9CYXIg
aXMgdGVzdCBiYXNlIG5hbWUuCisgIHZvaWQgQWRkVGVzdFBhdHRlcm4oY29uc3QgY2hhciogdGVz
dF9zdWl0ZV9uYW1lLCBjb25zdCBjaGFyKiB0ZXN0X2Jhc2VfbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICBUZXN0TWV0YUZhY3RvcnlCYXNlPFBhcmFtVHlwZT4qIG1ldGFfZmFjdG9yeSwKKyAg
ICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIHRl
c3RzXy5wdXNoX2JhY2soc3RkOjpzaGFyZWRfcHRyPFRlc3RJbmZvPihuZXcgVGVzdEluZm8oCisg
ICAgICAgIHRlc3Rfc3VpdGVfbmFtZSwgdGVzdF9iYXNlX25hbWUsIG1ldGFfZmFjdG9yeSwgY29k
ZV9sb2NhdGlvbikpKTsKICAgfQotICAvLyBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNybyB1
c2VzIEFkZEdlbmVyYXRvcigpIHRvIHJlY29yZCBpbmZvcm1hdGlvbgorICAvLyBJTlNUQU5USUFU
RV9URVNUX1NVSVRFX1AgbWFjcm8gdXNlcyBBZGRHZW5lcmF0b3IoKSB0byByZWNvcmQgaW5mb3Jt
YXRpb24KICAgLy8gYWJvdXQgYSBnZW5lcmF0b3IuCi0gIGludCBBZGRUZXN0Q2FzZUluc3RhbnRp
YXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGluc3RhbnRpYXRpb25fbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHZW5lcmF0b3JDcmVhdGlvbkZ1bmMqIGZ1bmMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1OYW1lR2VuZXJhdG9yRnVuYyogbmFtZV9mdW5j
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBs
aW5lKSB7CisgIGludCBBZGRUZXN0U3VpdGVJbnN0YW50aWF0aW9uKGNvbnN0IHN0ZDo6c3RyaW5n
JiBpbnN0YW50aWF0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdl
bmVyYXRvckNyZWF0aW9uRnVuYyogZnVuYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUGFyYW1OYW1lR2VuZXJhdG9yRnVuYyogbmFtZV9mdW5jLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewogICAgIGluc3RhbnRp
YXRpb25zXy5wdXNoX2JhY2soCiAgICAgICAgIEluc3RhbnRpYXRpb25JbmZvKGluc3RhbnRpYXRp
b25fbmFtZSwgZnVuYywgbmFtZV9mdW5jLCBmaWxlLCBsaW5lKSk7CiAgICAgcmV0dXJuIDA7ICAv
LyBSZXR1cm4gdmFsdWUgdXNlZCBvbmx5IHRvIHJ1biB0aGlzIG1ldGhvZCBpbiBuYW1lc3BhY2Ug
c2NvcGUuCiAgIH0KLSAgLy8gVW5pdFRlc3QgY2xhc3MgaW52b2tlcyB0aGlzIG1ldGhvZCB0byBy
ZWdpc3RlciB0ZXN0cyBpbiB0aGlzIHRlc3QgY2FzZQotICAvLyB0ZXN0IGNhc2VzIHJpZ2h0IGJl
Zm9yZSBydW5uaW5nIHRlc3RzIGluIFJVTl9BTExfVEVTVFMgbWFjcm8uCi0gIC8vIFRoaXMgbWV0
aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIG1vcmUgdGhlbiBvbmNlIG9uIGFueSBzaW5nbGUKLSAg
Ly8gaW5zdGFuY2Ugb2YgYSBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZSBkZXJpdmVkIGNs
YXNzLgotICAvLyBVbml0VGVzdCBoYXMgYSBndWFyZCB0byBwcmV2ZW50IGZyb20gY2FsbGluZyB0
aGlzIG1ldGhvZCBtb3JlIHRoZW4gb25jZS4KLSAgdmlydHVhbCB2b2lkIFJlZ2lzdGVyVGVzdHMo
KSB7CisgIC8vIFVuaXRUZXN0IGNsYXNzIGludm9rZXMgdGhpcyBtZXRob2QgdG8gcmVnaXN0ZXIg
dGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlCisgIC8vIHJpZ2h0IGJlZm9yZSBydW5uaW5nIHRlc3Rz
IGluIFJVTl9BTExfVEVTVFMgbWFjcm8uCisgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUg
Y2FsbGVkIG1vcmUgdGhhbiBvbmNlIG9uIGFueSBzaW5nbGUKKyAgLy8gaW5zdGFuY2Ugb2YgYSBQ
YXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mb0Jhc2UgZGVyaXZlZCBjbGFzcy4KKyAgLy8gVW5pdFRl
c3QgaGFzIGEgZ3VhcmQgdG8gcHJldmVudCBmcm9tIGNhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0
aGFuIG9uY2UuCisgIHZvaWQgUmVnaXN0ZXJUZXN0cygpIG92ZXJyaWRlIHsKKyAgICBib29sIGdl
bmVyYXRlZF9pbnN0YW50aWF0aW9ucyA9IGZhbHNlOworCiAgICAgZm9yICh0eXBlbmFtZSBUZXN0
SW5mb0NvbnRhaW5lcjo6aXRlcmF0b3IgdGVzdF9pdCA9IHRlc3RzXy5iZWdpbigpOwogICAgICAg
ICAgdGVzdF9pdCAhPSB0ZXN0c18uZW5kKCk7ICsrdGVzdF9pdCkgewotICAgICAgbGlua2VkX3B0
cjxUZXN0SW5mbz4gdGVzdF9pbmZvID0gKnRlc3RfaXQ7CisgICAgICBzdGQ6OnNoYXJlZF9wdHI8
VGVzdEluZm8+IHRlc3RfaW5mbyA9ICp0ZXN0X2l0OwogICAgICAgZm9yICh0eXBlbmFtZSBJbnN0
YW50aWF0aW9uQ29udGFpbmVyOjppdGVyYXRvciBnZW5faXQgPQogICAgICAgICAgICAgICAgaW5z
dGFudGlhdGlvbnNfLmJlZ2luKCk7IGdlbl9pdCAhPSBpbnN0YW50aWF0aW9uc18uZW5kKCk7CiAg
ICAgICAgICAgICAgICArK2dlbl9pdCkgewpAQCAtNTUxLDE2ICs1NTUsMTggQEAgY2xhc3MgUGFy
YW1ldGVyaXplZFRlc3RDYXNlSW5mbyA6IHB1YmxpYyBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZv
QmFzZSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUgPSBnZW5faXQtPmZpbGU7CiAgICAgICAg
IGludCBsaW5lID0gZ2VuX2l0LT5saW5lOwogCi0gICAgICAgIHN0ZDo6c3RyaW5nIHRlc3RfY2Fz
ZV9uYW1lOworICAgICAgICBzdGQ6OnN0cmluZyB0ZXN0X3N1aXRlX25hbWU7CiAgICAgICAgIGlm
ICggIWluc3RhbnRpYXRpb25fbmFtZS5lbXB0eSgpICkKLSAgICAgICAgICB0ZXN0X2Nhc2VfbmFt
ZSA9IGluc3RhbnRpYXRpb25fbmFtZSArICIvIjsKLSAgICAgICAgdGVzdF9jYXNlX25hbWUgKz0g
dGVzdF9pbmZvLT50ZXN0X2Nhc2VfYmFzZV9uYW1lOworICAgICAgICAgIHRlc3Rfc3VpdGVfbmFt
ZSA9IGluc3RhbnRpYXRpb25fbmFtZSArICIvIjsKKyAgICAgICAgdGVzdF9zdWl0ZV9uYW1lICs9
IHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9iYXNlX25hbWU7CiAKICAgICAgICAgc2l6ZV90IGkgPSAw
OwogICAgICAgICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gdGVzdF9wYXJhbV9uYW1lczsKICAgICAg
ICAgZm9yICh0eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxQYXJhbVR5cGU+OjppdGVyYXRvciBwYXJh
bV9pdCA9CiAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5iZWdpbigpOwogICAgICAgICAgICAg
IHBhcmFtX2l0ICE9IGdlbmVyYXRvci5lbmQoKTsgKytwYXJhbV9pdCwgKytpKSB7CisgICAgICAg
ICAgZ2VuZXJhdGVkX2luc3RhbnRpYXRpb25zID0gdHJ1ZTsKKwogICAgICAgICAgIE1lc3NhZ2Ug
dGVzdF9uYW1lX3N0cmVhbTsKIAogICAgICAgICAgIHN0ZDo6c3RyaW5nIHBhcmFtX25hbWUgPSBu
YW1lX2Z1bmMoCkBAIC01NzcsMzkgKzU4Myw0OCBAQCBjbGFzcyBQYXJhbWV0ZXJpemVkVGVzdENh
c2VJbmZvIDogcHVibGljIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm9CYXNlIHsKIAogICAgICAg
ICAgIHRlc3RfcGFyYW1fbmFtZXMuaW5zZXJ0KHBhcmFtX25hbWUpOwogCi0gICAgICAgICAgdGVz
dF9uYW1lX3N0cmVhbSA8PCB0ZXN0X2luZm8tPnRlc3RfYmFzZV9uYW1lIDw8ICIvIiA8PCBwYXJh
bV9uYW1lOworICAgICAgICAgIGlmICghdGVzdF9pbmZvLT50ZXN0X2Jhc2VfbmFtZS5lbXB0eSgp
KSB7CisgICAgICAgICAgICB0ZXN0X25hbWVfc3RyZWFtIDw8IHRlc3RfaW5mby0+dGVzdF9iYXNl
X25hbWUgPDwgIi8iOworICAgICAgICAgIH0KKyAgICAgICAgICB0ZXN0X25hbWVfc3RyZWFtIDw8
IHBhcmFtX25hbWU7CiAgICAgICAgICAgTWFrZUFuZFJlZ2lzdGVyVGVzdEluZm8oCi0gICAgICAg
ICAgICAgIHRlc3RfY2FzZV9uYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgIHRlc3RfbmFtZV9z
dHJlYW0uR2V0U3RyaW5nKCkuY19zdHIoKSwKLSAgICAgICAgICAgICAgTlVMTCwgIC8vIE5vIHR5
cGUgcGFyYW1ldGVyLgotICAgICAgICAgICAgICBQcmludFRvU3RyaW5nKCpwYXJhbV9pdCkuY19z
dHIoKSwKLSAgICAgICAgICAgICAgY29kZV9sb2NhdGlvbl8sCi0gICAgICAgICAgICAgIEdldFRl
c3RDYXNlVHlwZUlkKCksCi0gICAgICAgICAgICAgIFRlc3RDYXNlOjpTZXRVcFRlc3RDYXNlLAot
ICAgICAgICAgICAgICBUZXN0Q2FzZTo6VGVhckRvd25UZXN0Q2FzZSwKKyAgICAgICAgICAgICAg
dGVzdF9zdWl0ZV9uYW1lLmNfc3RyKCksIHRlc3RfbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCkuY19z
dHIoKSwKKyAgICAgICAgICAgICAgbnVsbHB0ciwgIC8vIE5vIHR5cGUgcGFyYW1ldGVyLgorICAg
ICAgICAgICAgICBQcmludFRvU3RyaW5nKCpwYXJhbV9pdCkuY19zdHIoKSwgdGVzdF9pbmZvLT5j
b2RlX2xvY2F0aW9uLAorICAgICAgICAgICAgICBHZXRUZXN0U3VpdGVUeXBlSWQoKSwKKyAgICAg
ICAgICAgICAgU3VpdGVBcGlSZXNvbHZlcjxUZXN0U3VpdGU+OjpHZXRTZXRVcENhc2VPclN1aXRl
KGZpbGUsIGxpbmUpLAorICAgICAgICAgICAgICBTdWl0ZUFwaVJlc29sdmVyPFRlc3RTdWl0ZT46
OkdldFRlYXJEb3duQ2FzZU9yU3VpdGUoZmlsZSwgbGluZSksCiAgICAgICAgICAgICAgIHRlc3Rf
aW5mby0+dGVzdF9tZXRhX2ZhY3RvcnktPkNyZWF0ZVRlc3RGYWN0b3J5KCpwYXJhbV9pdCkpOwog
ICAgICAgICB9ICAvLyBmb3IgcGFyYW1faXQKICAgICAgIH0gIC8vIGZvciBnZW5faXQKICAgICB9
ICAvLyBmb3IgdGVzdF9pdAotICB9ICAvLyBSZWdpc3RlclRlc3RzCisKKyAgICBpZiAoIWdlbmVy
YXRlZF9pbnN0YW50aWF0aW9ucykgeworICAgICAgLy8gVGhlcmUgYXJlIG5vIGdlbmVyYW90cnMs
IG9yIHRoZXkgYWxsIGdlbmVyYXRlIG5vdGhpbmcgLi4uCisgICAgICBJbnNlcnRTeW50aGV0aWNU
ZXN0Q2FzZShHZXRUZXN0U3VpdGVOYW1lKCksIGNvZGVfbG9jYXRpb25fLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIXRlc3RzXy5lbXB0eSgpKTsKKyAgICB9CisgIH0gICAgLy8gUmVn
aXN0ZXJUZXN0cwogCiAgcHJpdmF0ZToKICAgLy8gTG9jYWxUZXN0SW5mbyBzdHJ1Y3R1cmUga2Vl
cHMgaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgdGVzdCByZWdpc3RlcmVkCiAgIC8vIHdpdGgg
VEVTVF9QIG1hY3JvLgogICBzdHJ1Y3QgVGVzdEluZm8gewotICAgIFRlc3RJbmZvKGNvbnN0IGNo
YXIqIGFfdGVzdF9jYXNlX2Jhc2VfbmFtZSwKLSAgICAgICAgICAgICBjb25zdCBjaGFyKiBhX3Rl
c3RfYmFzZV9uYW1lLAotICAgICAgICAgICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBl
PiogYV90ZXN0X21ldGFfZmFjdG9yeSkgOgotICAgICAgICB0ZXN0X2Nhc2VfYmFzZV9uYW1lKGFf
dGVzdF9jYXNlX2Jhc2VfbmFtZSksCi0gICAgICAgIHRlc3RfYmFzZV9uYW1lKGFfdGVzdF9iYXNl
X25hbWUpLAotICAgICAgICB0ZXN0X21ldGFfZmFjdG9yeShhX3Rlc3RfbWV0YV9mYWN0b3J5KSB7
fQotCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcgdGVzdF9jYXNlX2Jhc2VfbmFtZTsKKyAgICBUZXN0
SW5mbyhjb25zdCBjaGFyKiBhX3Rlc3Rfc3VpdGVfYmFzZV9uYW1lLCBjb25zdCBjaGFyKiBhX3Rl
c3RfYmFzZV9uYW1lLAorICAgICAgICAgICAgIFRlc3RNZXRhRmFjdG9yeUJhc2U8UGFyYW1UeXBl
PiogYV90ZXN0X21ldGFfZmFjdG9yeSwKKyAgICAgICAgICAgICBDb2RlTG9jYXRpb24gYV9jb2Rl
X2xvY2F0aW9uKQorICAgICAgICA6IHRlc3Rfc3VpdGVfYmFzZV9uYW1lKGFfdGVzdF9zdWl0ZV9i
YXNlX25hbWUpLAorICAgICAgICAgIHRlc3RfYmFzZV9uYW1lKGFfdGVzdF9iYXNlX25hbWUpLAor
ICAgICAgICAgIHRlc3RfbWV0YV9mYWN0b3J5KGFfdGVzdF9tZXRhX2ZhY3RvcnkpLAorICAgICAg
ICAgIGNvZGVfbG9jYXRpb24oYV9jb2RlX2xvY2F0aW9uKSB7fQorCisgICAgY29uc3Qgc3RkOjpz
dHJpbmcgdGVzdF9zdWl0ZV9iYXNlX25hbWU7CiAgICAgY29uc3Qgc3RkOjpzdHJpbmcgdGVzdF9i
YXNlX25hbWU7Ci0gICAgY29uc3Qgc2NvcGVkX3B0cjxUZXN0TWV0YUZhY3RvcnlCYXNlPFBhcmFt
VHlwZT4gPiB0ZXN0X21ldGFfZmFjdG9yeTsKKyAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8VGVz
dE1ldGFGYWN0b3J5QmFzZTxQYXJhbVR5cGU+ID4gdGVzdF9tZXRhX2ZhY3Rvcnk7CisgICAgY29u
c3QgQ29kZUxvY2F0aW9uIGNvZGVfbG9jYXRpb247CiAgIH07Ci0gIHR5cGVkZWYgOjpzdGQ6OnZl
Y3RvcjxsaW5rZWRfcHRyPFRlc3RJbmZvPiA+IFRlc3RJbmZvQ29udGFpbmVyOwotICAvLyBSZWNv
cmRzIGRhdGEgcmVjZWl2ZWQgZnJvbSBJTlNUQU5USUFURV9URVNUX0NBU0VfUCBtYWNyb3M6Cisg
IHVzaW5nIFRlc3RJbmZvQ29udGFpbmVyID0gOjpzdGQ6OnZlY3RvcjxzdGQ6OnNoYXJlZF9wdHI8
VGVzdEluZm8+ID47CisgIC8vIFJlY29yZHMgZGF0YSByZWNlaXZlZCBmcm9tIElOU1RBTlRJQVRF
X1RFU1RfU1VJVEVfUCBtYWNyb3M6CiAgIC8vICA8SW5zdGFudGlhdGlvbiBuYW1lLCBTZXF1ZW5j
ZSBnZW5lcmF0b3IgY3JlYXRpb24gZnVuY3Rpb24sCiAgIC8vICAgICBOYW1lIGdlbmVyYXRvciBm
dW5jdGlvbiwgU291cmNlIGZpbGUsIFNvdXJjZSBsaW5lPgogICBzdHJ1Y3QgSW5zdGFudGlhdGlv
bkluZm8gewpAQCAtNjQ2LDc5ICs2NjEsMjg3IEBAIGNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0Q2Fz
ZUluZm8gOiBwdWJsaWMgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mb0Jhc2UgewogICAgIHJldHVy
biB0cnVlOwogICB9CiAKLSAgY29uc3Qgc3RkOjpzdHJpbmcgdGVzdF9jYXNlX25hbWVfOworICBj
b25zdCBzdGQ6OnN0cmluZyB0ZXN0X3N1aXRlX25hbWVfOwogICBDb2RlTG9jYXRpb24gY29kZV9s
b2NhdGlvbl87CiAgIFRlc3RJbmZvQ29udGFpbmVyIHRlc3RzXzsKICAgSW5zdGFudGlhdGlvbkNv
bnRhaW5lciBpbnN0YW50aWF0aW9uc187CiAKLSAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNT
SUdOXyhQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvKTsKLX07ICAvLyBjbGFzcyBQYXJhbWV0ZXJp
emVkVGVzdENhc2VJbmZvCisgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1l
dGVyaXplZFRlc3RTdWl0ZUluZm8pOworfTsgIC8vIGNsYXNzIFBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGVJbmZvCisKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KK3RlbXBsYXRlIDxj
bGFzcyBUZXN0Q2FzZT4KK3VzaW5nIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZUluZm8gPSBQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlSW5mbzxUZXN0Q2FzZT47CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJT04gLSBETyBO
T1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCi0vLyBQYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdpc3Ry
eSBjb250YWlucyBhIG1hcCBvZiBQYXJhbWV0ZXJpemVkVGVzdENhc2VJbmZvQmFzZQotLy8gY2xh
c3NlcyBhY2Nlc3NlZCBieSB0ZXN0IGNhc2UgbmFtZXMuIFRFU1RfUCBhbmQgSU5TVEFOVElBVEVf
VEVTVF9DQVNFX1AKLS8vIG1hY3JvcyB1c2UgaXQgdG8gbG9jYXRlIHRoZWlyIGNvcnJlc3BvbmRp
bmcgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbwotLy8gZGVzY3JpcHRvcnMuCi1jbGFzcyBQYXJh
bWV0ZXJpemVkVGVzdENhc2VSZWdpc3RyeSB7CisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVn
aXN0cnkgY29udGFpbnMgYSBtYXAgb2YKKy8vIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvQmFz
ZSBjbGFzc2VzIGFjY2Vzc2VkIGJ5IHRlc3Qgc3VpdGUgbmFtZXMuIFRFU1RfUAorLy8gYW5kIElO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBtYWNyb3MgdXNlIGl0IHRvIGxvY2F0ZSB0aGVpciBjb3Jy
ZXNwb25kaW5nCisvLyBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyBkZXNjcmlwdG9ycy4KK2Ns
YXNzIFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSB7CiAgcHVibGljOgotICBQYXJhbWV0
ZXJpemVkVGVzdENhc2VSZWdpc3RyeSgpIHt9Ci0gIH5QYXJhbWV0ZXJpemVkVGVzdENhc2VSZWdp
c3RyeSgpIHsKLSAgICBmb3IgKFRlc3RDYXNlSW5mb0NvbnRhaW5lcjo6aXRlcmF0b3IgaXQgPSB0
ZXN0X2Nhc2VfaW5mb3NfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSB0ZXN0X2Nhc2VfaW5mb3Nf
LmVuZCgpOyArK2l0KSB7Ci0gICAgICBkZWxldGUgKml0OworICBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlUmVnaXN0cnkoKSB7fQorICB+UGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5KCkgewor
ICAgIGZvciAoYXV0byYgdGVzdF9zdWl0ZV9pbmZvIDogdGVzdF9zdWl0ZV9pbmZvc18pIHsKKyAg
ICAgIGRlbGV0ZSB0ZXN0X3N1aXRlX2luZm87CiAgICAgfQogICB9CiAKICAgLy8gTG9va3MgdXAg
b3IgY3JlYXRlcyBhbmQgcmV0dXJucyBhIHN0cnVjdHVyZSBjb250YWluaW5nIGluZm9ybWF0aW9u
IGFib3V0Ci0gIC8vIHRlc3RzIGFuZCBpbnN0YW50aWF0aW9ucyBvZiBhIHBhcnRpY3VsYXIgdGVz
dCBjYXNlLgotICB0ZW1wbGF0ZSA8Y2xhc3MgVGVzdENhc2U+Ci0gIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm88VGVzdENhc2U+KiBHZXRUZXN0Q2FzZVBhdHRlcm5Ib2xkZXIoCi0gICAgICBjb25z
dCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9u
KSB7Ci0gICAgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbzxUZXN0Q2FzZT4qIHR5cGVkX3Rlc3Rf
aW5mbyA9IE5VTEw7Ci0gICAgZm9yIChUZXN0Q2FzZUluZm9Db250YWluZXI6Oml0ZXJhdG9yIGl0
ID0gdGVzdF9jYXNlX2luZm9zXy5iZWdpbigpOwotICAgICAgICAgaXQgIT0gdGVzdF9jYXNlX2lu
Zm9zXy5lbmQoKTsgKytpdCkgewotICAgICAgaWYgKCgqaXQpLT5HZXRUZXN0Q2FzZU5hbWUoKSA9
PSB0ZXN0X2Nhc2VfbmFtZSkgewotICAgICAgICBpZiAoKCppdCktPkdldFRlc3RDYXNlVHlwZUlk
KCkgIT0gR2V0VHlwZUlkPFRlc3RDYXNlPigpKSB7CisgIC8vIHRlc3RzIGFuZCBpbnN0YW50aWF0
aW9ucyBvZiBhIHBhcnRpY3VsYXIgdGVzdCBzdWl0ZS4KKyAgdGVtcGxhdGUgPGNsYXNzIFRlc3RT
dWl0ZT4KKyAgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm88VGVzdFN1aXRlPiogR2V0VGVzdFN1
aXRlUGF0dGVybkhvbGRlcigKKyAgICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgQ29k
ZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKKyAgICBQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5m
bzxUZXN0U3VpdGU+KiB0eXBlZF90ZXN0X2luZm8gPSBudWxscHRyOworICAgIGZvciAoYXV0byYg
dGVzdF9zdWl0ZV9pbmZvIDogdGVzdF9zdWl0ZV9pbmZvc18pIHsKKyAgICAgIGlmICh0ZXN0X3N1
aXRlX2luZm8tPkdldFRlc3RTdWl0ZU5hbWUoKSA9PSB0ZXN0X3N1aXRlX25hbWUpIHsKKyAgICAg
ICAgaWYgKHRlc3Rfc3VpdGVfaW5mby0+R2V0VGVzdFN1aXRlVHlwZUlkKCkgIT0gR2V0VHlwZUlk
PFRlc3RTdWl0ZT4oKSkgewogICAgICAgICAgIC8vIENvbXBsYWluIGFib3V0IGluY29ycmVjdCB1
c2FnZSBvZiBHb29nbGUgVGVzdCBmYWNpbGl0aWVzCiAgICAgICAgICAgLy8gYW5kIHRlcm1pbmF0
ZSB0aGUgcHJvZ3JhbSBzaW5jZSB3ZSBjYW5ub3QgZ3VhcmFudHkgY29ycmVjdAotICAgICAgICAg
IC8vIHRlc3QgY2FzZSBzZXR1cCBhbmQgdGVhci1kb3duIGluIHRoaXMgY2FzZS4KLSAgICAgICAg
ICBSZXBvcnRJbnZhbGlkVGVzdENhc2VUeXBlKHRlc3RfY2FzZV9uYW1lLCBjb2RlX2xvY2F0aW9u
KTsKKyAgICAgICAgICAvLyB0ZXN0IHN1aXRlIHNldHVwIGFuZCB0ZWFyLWRvd24gaW4gdGhpcyBj
YXNlLgorICAgICAgICAgIFJlcG9ydEludmFsaWRUZXN0U3VpdGVUeXBlKHRlc3Rfc3VpdGVfbmFt
ZSwgY29kZV9sb2NhdGlvbik7CiAgICAgICAgICAgcG9zaXg6OkFib3J0KCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBhcmUgc3VyZSB0aGF0IHRoZSBv
YmplY3Qgd2UgZm91bmQgaXMgb2YgdGhlIHNhbWUKICAgICAgICAgICAvLyB0eXBlIHdlIGFyZSBs
b29raW5nIGZvciwgc28gd2UgZG93bmNhc3QgaXQgdG8gdGhhdCB0eXBlCiAgICAgICAgICAgLy8g
d2l0aG91dCBmdXJ0aGVyIGNoZWNrcy4KICAgICAgICAgICB0eXBlZF90ZXN0X2luZm8gPSBDaGVj
a2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8Ci0gICAgICAgICAgICAgIFBhcmFtZXRlcml6ZWRUZXN0
Q2FzZUluZm88VGVzdENhc2U+ID4oKml0KTsKKyAgICAgICAgICAgICAgUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZUluZm88VGVzdFN1aXRlPiA+KHRlc3Rfc3VpdGVfaW5mbyk7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgfQotICAgIGlmICh0eXBlZF90ZXN0X2luZm8gPT0g
TlVMTCkgewotICAgICAgdHlwZWRfdGVzdF9pbmZvID0gbmV3IFBhcmFtZXRlcml6ZWRUZXN0Q2Fz
ZUluZm88VGVzdENhc2U+KAotICAgICAgICAgIHRlc3RfY2FzZV9uYW1lLCBjb2RlX2xvY2F0aW9u
KTsKLSAgICAgIHRlc3RfY2FzZV9pbmZvc18ucHVzaF9iYWNrKHR5cGVkX3Rlc3RfaW5mbyk7Cisg
ICAgaWYgKHR5cGVkX3Rlc3RfaW5mbyA9PSBudWxscHRyKSB7CisgICAgICB0eXBlZF90ZXN0X2lu
Zm8gPSBuZXcgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm88VGVzdFN1aXRlPigKKyAgICAgICAg
ICB0ZXN0X3N1aXRlX25hbWUsIGNvZGVfbG9jYXRpb24pOworICAgICAgdGVzdF9zdWl0ZV9pbmZv
c18ucHVzaF9iYWNrKHR5cGVkX3Rlc3RfaW5mbyk7CiAgICAgfQogICAgIHJldHVybiB0eXBlZF90
ZXN0X2luZm87CiAgIH0KICAgdm9pZCBSZWdpc3RlclRlc3RzKCkgewotICAgIGZvciAoVGVzdENh
c2VJbmZvQ29udGFpbmVyOjppdGVyYXRvciBpdCA9IHRlc3RfY2FzZV9pbmZvc18uYmVnaW4oKTsK
LSAgICAgICAgIGl0ICE9IHRlc3RfY2FzZV9pbmZvc18uZW5kKCk7ICsraXQpIHsKLSAgICAgICgq
aXQpLT5SZWdpc3RlclRlc3RzKCk7CisgICAgZm9yIChhdXRvJiB0ZXN0X3N1aXRlX2luZm8gOiB0
ZXN0X3N1aXRlX2luZm9zXykgeworICAgICAgdGVzdF9zdWl0ZV9pbmZvLT5SZWdpc3RlclRlc3Rz
KCk7CiAgICAgfQogICB9CisvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1dCBzdGlsbCBh
dmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHRl
bXBsYXRlIDxjbGFzcyBUZXN0Q2FzZT4KKyAgUGFyYW1ldGVyaXplZFRlc3RDYXNlSW5mbzxUZXN0
Q2FzZT4qIEdldFRlc3RDYXNlUGF0dGVybkhvbGRlcigKKyAgICAgIGNvbnN0IGNoYXIqIHRlc3Rf
Y2FzZV9uYW1lLCBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgeworICAgIHJldHVybiBHZXRU
ZXN0U3VpdGVQYXR0ZXJuSG9sZGVyPFRlc3RDYXNlPih0ZXN0X2Nhc2VfbmFtZSwgY29kZV9sb2Nh
dGlvbik7CisgIH0KKworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCiAKICBwcml2YXRlOgotICB0eXBlZGVmIDo6c3RkOjp2ZWN0b3I8UGFyYW1ldGVyaXplZFRl
c3RDYXNlSW5mb0Jhc2UqPiBUZXN0Q2FzZUluZm9Db250YWluZXI7CisgIHVzaW5nIFRlc3RTdWl0
ZUluZm9Db250YWluZXIgPSA6OnN0ZDo6dmVjdG9yPFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZv
QmFzZSo+OwogCi0gIFRlc3RDYXNlSW5mb0NvbnRhaW5lciB0ZXN0X2Nhc2VfaW5mb3NfOworICBU
ZXN0U3VpdGVJbmZvQ29udGFpbmVyIHRlc3Rfc3VpdGVfaW5mb3NfOwogCi0gIEdURVNUX0RJU0FM
TE9XX0NPUFlfQU5EX0FTU0lHTl8oUGFyYW1ldGVyaXplZFRlc3RDYXNlUmVnaXN0cnkpOworICBH
VEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdp
c3RyeSk7Cit9OworCisvLyBLZWVwIHRyYWNrIG9mIHdoYXQgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3Qgc3VpdGUgYXJlIGRlZmluZWQgYW5kCisvLyB3aGVyZSBhcyB3ZWxsIGFzIHdoaWNoIGFyZSBp
bnRhdGlhdGVkLiBUaGlzIGFsbG93cyBzdXNlcXVlbnRseQorLy8gaWRlbnRpZnlpbmcgc3VpdHMg
dGhhdCBhcmUgZGVmaW5lZCBidXQgbmV2ZXIgdXNlZC4KK2NsYXNzIFR5cGVQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlUmVnaXN0cnkgeworIHB1YmxpYzoKKyAgLy8gQWRkIGEgc3VpdGUgZGVmaW5pdGlv
bgorICB2b2lkIFJlZ2lzdGVyVGVzdFN1aXRlKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbik7CisK
KyAgLy8gQWRkIGFuIGluc3RhbnRpYXRpb24gb2YgYSBzdWl0LgorICB2b2lkIFJlZ2lzdGVySW5z
dGFudGlhdGlvbihjb25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUpOworCisgIC8vIEZvciBlYWNo
IHN1aXQgcmVwb3JlZCBhcyBkZWZpbmVkIGJ1dCBub3QgcmVwb3J0ZWQgYXMgaW5zdGFudGlhdGlv
biwKKyAgLy8gZW1pdCBhIHRlc3QgdGhhdCByZXBvcnRzIHRoYXQgZmFjdCAoY29uZmlndXJhYmx5
LCBhcyBhbiBlcnJvcikuCisgIHZvaWQgQ2hlY2tGb3JJbnN0YW50aWF0aW9ucygpOworCisgcHJp
dmF0ZToKKyAgc3RydWN0IFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5mbyB7CisgICAgZXhw
bGljaXQgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVJbmZvKENvZGVMb2NhdGlvbiBjKQorICAg
ICAgICA6IGNvZGVfbG9jYXRpb24oYyksIGluc3RhbnRpYXRlZChmYWxzZSkge30KKworICAgIENv
ZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uOworICAgIGJvb2wgaW5zdGFudGlhdGVkOworICB9Owor
CisgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZUluZm8+
IHN1aXRlc187Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKworLy8gRm9yd2FyZCBk
ZWNsYXJhdGlvbnMgb2YgVmFsdWVzSW4oKSwgd2hpY2ggaXMgaW1wbGVtZW50ZWQgaW4KKy8vIGlu
Y2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oLgordGVtcGxhdGUgPGNsYXNzIENvbnRhaW5l
cj4KK2ludGVybmFsOjpQYXJhbUdlbmVyYXRvcjx0eXBlbmFtZSBDb250YWluZXI6OnZhbHVlX3R5
cGU+IFZhbHVlc0luKAorICAgIGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKTsKKworbmFtZXNw
YWNlIGludGVybmFsIHsKKy8vIFVzZWQgaW4gdGhlIFZhbHVlcygpIGZ1bmN0aW9uIHRvIHByb3Zp
ZGUgcG9seW1vcnBoaWMgY2FwYWJpbGl0aWVzLgorCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEg
d2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MTAwKQorI2VuZGlmCisK
K3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUcz4KK2NsYXNzIFZhbHVlQXJyYXkgeworIHB1YmxpYzoK
KyAgZXhwbGljaXQgVmFsdWVBcnJheShUcy4uLiB2KSA6IHZfKEZsYXRUdXBsZUNvbnN0cnVjdFRh
Z3t9LCBzdGQ6Om1vdmUodikuLi4pIHt9CisKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgIG9w
ZXJhdG9yIFBhcmFtR2VuZXJhdG9yPFQ+KCkgY29uc3QgeyAgLy8gTk9MSU5UCisgICAgcmV0dXJu
IFZhbHVlc0luKE1ha2VWZWN0b3I8VD4oTWFrZUluZGV4U2VxdWVuY2U8c2l6ZW9mLi4uKFRzKT4o
KSkpOworICB9CisKKyBwcml2YXRlOgorICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90Li4u
IEk+CisgIHN0ZDo6dmVjdG9yPFQ+IE1ha2VWZWN0b3IoSW5kZXhTZXF1ZW5jZTxJLi4uPikgY29u
c3QgeworICAgIHJldHVybiBzdGQ6OnZlY3RvcjxUPntzdGF0aWNfY2FzdDxUPih2Xy50ZW1wbGF0
ZSBHZXQ8ST4oKSkuLi59OworICB9CisKKyAgRmxhdFR1cGxlPFRzLi4uPiB2XzsKK307CisKKyNp
ZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUuLi4gVD4KK2NsYXNzIENhcnRlc2lhblByb2R1Y3RHZW5lcmF0b3IKKyAgICA6IHB1
YmxpYyBQYXJhbUdlbmVyYXRvckludGVyZmFjZTw6OnN0ZDo6dHVwbGU8VC4uLj4+IHsKKyBwdWJs
aWM6CisgIHR5cGVkZWYgOjpzdGQ6OnR1cGxlPFQuLi4+IFBhcmFtVHlwZTsKKworICBDYXJ0ZXNp
YW5Qcm9kdWN0R2VuZXJhdG9yKGNvbnN0IHN0ZDo6dHVwbGU8UGFyYW1HZW5lcmF0b3I8VD4uLi4+
JiBnKQorICAgICAgOiBnZW5lcmF0b3JzXyhnKSB7fQorICB+Q2FydGVzaWFuUHJvZHVjdEdlbmVy
YXRvcigpIG92ZXJyaWRlIHt9CisKKyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+
KiBCZWdpbigpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKHRoaXMs
IGdlbmVyYXRvcnNfLCBmYWxzZSk7CisgIH0KKyAgUGFyYW1JdGVyYXRvckludGVyZmFjZTxQYXJh
bVR5cGU+KiBFbmQoKSBjb25zdCBvdmVycmlkZSB7CisgICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0
aGlzLCBnZW5lcmF0b3JzXywgdHJ1ZSk7CisgIH0KKworIHByaXZhdGU6CisgIHRlbXBsYXRlIDxj
bGFzcyBJPgorICBjbGFzcyBJdGVyYXRvckltcGw7CisgIHRlbXBsYXRlIDxzaXplX3QuLi4gST4K
KyAgY2xhc3MgSXRlcmF0b3JJbXBsPEluZGV4U2VxdWVuY2U8SS4uLj4+CisgICAgICA6IHB1Ymxp
YyBQYXJhbUl0ZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4geworICAgcHVibGljOgorICAgIEl0
ZXJhdG9ySW1wbChjb25zdCBQYXJhbUdlbmVyYXRvckludGVyZmFjZTxQYXJhbVR5cGU+KiBiYXNl
LAorICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dHVwbGU8UGFyYW1HZW5lcmF0b3I8VD4uLi4+JiBn
ZW5lcmF0b3JzLCBib29sIGlzX2VuZCkKKyAgICAgICAgOiBiYXNlXyhiYXNlKSwKKyAgICAgICAg
ICBiZWdpbl8oc3RkOjpnZXQ8ST4oZ2VuZXJhdG9ycykuYmVnaW4oKS4uLiksCisgICAgICAgICAg
ZW5kXyhzdGQ6OmdldDxJPihnZW5lcmF0b3JzKS5lbmQoKS4uLiksCisgICAgICAgICAgY3VycmVu
dF8oaXNfZW5kID8gZW5kXyA6IGJlZ2luXykgeworICAgICAgQ29tcHV0ZUN1cnJlbnRWYWx1ZSgp
OworICAgIH0KKyAgICB+SXRlcmF0b3JJbXBsKCkgb3ZlcnJpZGUge30KKworICAgIGNvbnN0IFBh
cmFtR2VuZXJhdG9ySW50ZXJmYWNlPFBhcmFtVHlwZT4qIEJhc2VHZW5lcmF0b3IoKSBjb25zdCBv
dmVycmlkZSB7CisgICAgICByZXR1cm4gYmFzZV87CisgICAgfQorICAgIC8vIEFkdmFuY2Ugc2hv
dWxkIG5vdCBiZSBjYWxsZWQgb24gYmV5b25kLW9mLXJhbmdlIGl0ZXJhdG9ycworICAgIC8vIHNv
IG5vIGNvbXBvbmVudCBpdGVyYXRvcnMgbXVzdCBiZSBiZXlvbmQgZW5kIG9mIHJhbmdlLCBlaXRo
ZXIuCisgICAgdm9pZCBBZHZhbmNlKCkgb3ZlcnJpZGUgeworICAgICAgYXNzZXJ0KCFBdEVuZCgp
KTsKKyAgICAgIC8vIEFkdmFuY2UgdGhlIGxhc3QgaXRlcmF0b3IuCisgICAgICArK3N0ZDo6Z2V0
PHNpemVvZi4uLihUKSAtIDE+KGN1cnJlbnRfKTsKKyAgICAgIC8vIGlmIHRoYXQgcmVhY2hlcyBl
bmQsIHByb3BhZ2F0ZSB0aGF0IHVwLgorICAgICAgQWR2YW5jZUlmRW5kPHNpemVvZi4uLihUKSAt
IDE+KCk7CisgICAgICBDb21wdXRlQ3VycmVudFZhbHVlKCk7CisgICAgfQorICAgIFBhcmFtSXRl
cmF0b3JJbnRlcmZhY2U8UGFyYW1UeXBlPiogQ2xvbmUoKSBjb25zdCBvdmVycmlkZSB7CisgICAg
ICByZXR1cm4gbmV3IEl0ZXJhdG9ySW1wbCgqdGhpcyk7CisgICAgfQorCisgICAgY29uc3QgUGFy
YW1UeXBlKiBDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gY3VycmVudF92YWx1ZV8u
Z2V0KCk7IH0KKworICAgIGJvb2wgRXF1YWxzKGNvbnN0IFBhcmFtSXRlcmF0b3JJbnRlcmZhY2U8
UGFyYW1UeXBlPiYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlIHsKKyAgICAgIC8vIEhhdmluZyB0aGUg
c2FtZSBiYXNlIGdlbmVyYXRvciBndWFyYW50ZWVzIHRoYXQgdGhlIG90aGVyCisgICAgICAvLyBp
dGVyYXRvciBpcyBvZiB0aGUgc2FtZSB0eXBlIGFuZCB3ZSBjYW4gZG93bmNhc3QuCisgICAgICBH
VEVTVF9DSEVDS18oQmFzZUdlbmVyYXRvcigpID09IG90aGVyLkJhc2VHZW5lcmF0b3IoKSkKKyAg
ICAgICAgICA8PCAiVGhlIHByb2dyYW0gYXR0ZW1wdGVkIHRvIGNvbXBhcmUgaXRlcmF0b3JzICIK
KyAgICAgICAgICA8PCAiZnJvbSBkaWZmZXJlbnQgZ2VuZXJhdG9ycy4iIDw8IHN0ZDo6ZW5kbDsK
KyAgICAgIGNvbnN0IEl0ZXJhdG9ySW1wbCogdHlwZWRfb3RoZXIgPQorICAgICAgICAgIENoZWNr
ZWREb3duY2FzdFRvQWN0dWFsVHlwZTxjb25zdCBJdGVyYXRvckltcGw+KCZvdGhlcik7CisKKyAg
ICAgIC8vIFdlIG11c3QgcmVwb3J0IGl0ZXJhdG9ycyBlcXVhbCBpZiB0aGV5IGJvdGggcG9pbnQg
YmV5b25kIHRoZWlyCisgICAgICAvLyByZXNwZWN0aXZlIHJhbmdlcy4gVGhhdCBjYW4gaGFwcGVu
IGluIGEgdmFyaWV0eSBvZiBmYXNoaW9ucywKKyAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY29uc3Vs
dCBBdEVuZCgpLgorICAgICAgaWYgKEF0RW5kKCkgJiYgdHlwZWRfb3RoZXItPkF0RW5kKCkpIHJl
dHVybiB0cnVlOworCisgICAgICBib29sIHNhbWUgPSB0cnVlOworICAgICAgYm9vbCBkdW1teVtd
ID0geworICAgICAgICAgIChzYW1lID0gc2FtZSAmJiBzdGQ6OmdldDxJPihjdXJyZW50XykgPT0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Z2V0PEk+KHR5cGVkX290aGVyLT5j
dXJyZW50XykpLi4ufTsKKyAgICAgICh2b2lkKWR1bW15OworICAgICAgcmV0dXJuIHNhbWU7Cisg
ICAgfQorCisgICBwcml2YXRlOgorICAgIHRlbXBsYXRlIDxzaXplX3QgVGhpc0k+CisgICAgdm9p
ZCBBZHZhbmNlSWZFbmQoKSB7CisgICAgICBpZiAoc3RkOjpnZXQ8VGhpc0k+KGN1cnJlbnRfKSAh
PSBzdGQ6OmdldDxUaGlzST4oZW5kXykpIHJldHVybjsKKworICAgICAgYm9vbCBsYXN0ID0gVGhp
c0kgPT0gMDsKKyAgICAgIGlmIChsYXN0KSB7CisgICAgICAgIC8vIFdlIGFyZSBkb25lLiBOb3Ro
aW5nIGVsc2UgdG8gcHJvcGFnYXRlLgorICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAg
IGNvbnN0ZXhwciBzaXplX3QgTmV4dEkgPSBUaGlzSSAtIChUaGlzSSAhPSAwKTsKKyAgICAgIHN0
ZDo6Z2V0PFRoaXNJPihjdXJyZW50XykgPSBzdGQ6OmdldDxUaGlzST4oYmVnaW5fKTsKKyAgICAg
ICsrc3RkOjpnZXQ8TmV4dEk+KGN1cnJlbnRfKTsKKyAgICAgIEFkdmFuY2VJZkVuZDxOZXh0ST4o
KTsKKyAgICB9CisKKyAgICB2b2lkIENvbXB1dGVDdXJyZW50VmFsdWUoKSB7CisgICAgICBpZiAo
IUF0RW5kKCkpCisgICAgICAgIGN1cnJlbnRfdmFsdWVfID0gc3RkOjptYWtlX3NoYXJlZDxQYXJh
bVR5cGU+KCpzdGQ6OmdldDxJPihjdXJyZW50XykuLi4pOworICAgIH0KKyAgICBib29sIEF0RW5k
KCkgY29uc3QgeworICAgICAgYm9vbCBhdF9lbmQgPSBmYWxzZTsKKyAgICAgIGJvb2wgZHVtbXlb
XSA9IHsKKyAgICAgICAgICAoYXRfZW5kID0gYXRfZW5kIHx8IHN0ZDo6Z2V0PEk+KGN1cnJlbnRf
KSA9PSBzdGQ6OmdldDxJPihlbmRfKSkuLi59OworICAgICAgKHZvaWQpZHVtbXk7CisgICAgICBy
ZXR1cm4gYXRfZW5kOworICAgIH0KKworICAgIGNvbnN0IFBhcmFtR2VuZXJhdG9ySW50ZXJmYWNl
PFBhcmFtVHlwZT4qIGNvbnN0IGJhc2VfOworICAgIHN0ZDo6dHVwbGU8dHlwZW5hbWUgUGFyYW1H
ZW5lcmF0b3I8VD46Oml0ZXJhdG9yLi4uPiBiZWdpbl87CisgICAgc3RkOjp0dXBsZTx0eXBlbmFt
ZSBQYXJhbUdlbmVyYXRvcjxUPjo6aXRlcmF0b3IuLi4+IGVuZF87CisgICAgc3RkOjp0dXBsZTx0
eXBlbmFtZSBQYXJhbUdlbmVyYXRvcjxUPjo6aXRlcmF0b3IuLi4+IGN1cnJlbnRfOworICAgIHN0
ZDo6c2hhcmVkX3B0cjxQYXJhbVR5cGU+IGN1cnJlbnRfdmFsdWVfOworICB9OworCisgIHVzaW5n
IEl0ZXJhdG9yID0gSXRlcmF0b3JJbXBsPHR5cGVuYW1lIE1ha2VJbmRleFNlcXVlbmNlPHNpemVv
Zi4uLihUKT46OnR5cGU+OworCisgIHN0ZDo6dHVwbGU8UGFyYW1HZW5lcmF0b3I8VD4uLi4+IGdl
bmVyYXRvcnNfOworfTsKKwordGVtcGxhdGUgPGNsYXNzLi4uIEdlbj4KK2NsYXNzIENhcnRlc2lh
blByb2R1Y3RIb2xkZXIgeworIHB1YmxpYzoKKyAgQ2FydGVzaWFuUHJvZHVjdEhvbGRlcihjb25z
dCBHZW4mLi4uIGcpIDogZ2VuZXJhdG9yc18oZy4uLikge30KKyAgdGVtcGxhdGUgPHR5cGVuYW1l
Li4uIFQ+CisgIG9wZXJhdG9yIFBhcmFtR2VuZXJhdG9yPDo6c3RkOjp0dXBsZTxULi4uPj4oKSBj
b25zdCB7CisgICAgcmV0dXJuIFBhcmFtR2VuZXJhdG9yPDo6c3RkOjp0dXBsZTxULi4uPj4oCisg
ICAgICAgIG5ldyBDYXJ0ZXNpYW5Qcm9kdWN0R2VuZXJhdG9yPFQuLi4+KGdlbmVyYXRvcnNfKSk7
CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6dHVwbGU8R2VuLi4uPiBnZW5lcmF0b3JzXzsKIH07
CiAKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAot
I2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BBUkFNX1VUSUxf
SF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BB
UkFNX1VUSUxfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUv
Z3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5oCmluZGV4IGY4MzcwMGUw
NmQ5OGMzNmY2NDg3MjkxYzNmOTMxODA3YWYzNTNmNzQuLmZmZTYzMDAzZDA3Yzk1YWZjYzFmNDdj
ZTE0MjhkNDVkNTZkOGY2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2lu
Y2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC1hcmNoLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LWFyY2guaApAQCAt
MzIsMjAgKzMyLDE5IEBACiAvLyBUaGlzIGhlYWRlciBmaWxlIGRlZmluZXMgdGhlIEdURVNUX09T
XyogbWFjcm8uCiAvLyBJdCBpcyBzZXBhcmF0ZSBmcm9tIGd0ZXN0LXBvcnQuaCBzbyB0aGF0IGN1
c3RvbS9ndGVzdC1wb3J0LmggY2FuIGluY2x1ZGUgaXQuCiAKLSNpZm5kZWYgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KLSNkZWZpbmUgR1RFU1RfSU5DTFVE
RV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KKyNpZm5kZWYgR09PR0xFVEVTVF9J
TkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfQVJDSF9IXworI2RlZmluZSBHT09HTEVU
RVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCiAKIC8vIERldGVy
bWluZXMgdGhlIHBsYXRmb3JtIG9uIHdoaWNoIEdvb2dsZSBUZXN0IGlzIGNvbXBpbGVkLgogI2lm
ZGVmIF9fQ1lHV0lOX18KICMgZGVmaW5lIEdURVNUX09TX0NZR1dJTiAxCi0jZWxpZiBkZWZpbmVk
IF9fU1lNQklBTjMyX18KLSMgZGVmaW5lIEdURVNUX09TX1NZTUJJQU4gMQorIyBlbGlmIGRlZmlu
ZWQoX19NSU5HV19fKSB8fCBkZWZpbmVkKF9fTUlOR1czMl9fKSB8fCBkZWZpbmVkKF9fTUlOR1c2
NF9fKQorIyAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgMQorIyAgZGVmaW5lIEdURVNU
X09TX1dJTkRPV1MgMQogI2VsaWYgZGVmaW5lZCBfV0lOMzIKICMgZGVmaW5lIEdURVNUX09TX1dJ
TkRPV1MgMQogIyBpZmRlZiBfV0lOMzJfV0NFCiAjICBkZWZpbmUgR1RFU1RfT1NfV0lORE9XU19N
T0JJTEUgMQotIyBlbGlmIGRlZmluZWQoX19NSU5HV19fKSB8fCBkZWZpbmVkKF9fTUlOR1czMl9f
KQotIyAgZGVmaW5lIEdURVNUX09TX1dJTkRPV1NfTUlOR1cgMQogIyBlbGlmIGRlZmluZWQoV0lO
QVBJX0ZBTUlMWSkKICMgIGluY2x1ZGUgPHdpbmFwaWZhbWlseS5oPgogIyAgaWYgV0lOQVBJX0ZB
TUlMWV9QQVJUSVRJT04oV0lOQVBJX1BBUlRJVElPTl9ERVNLVE9QKQpAQCAtNjUsMTUgKzY0LDIy
IEBACiAjIGVsc2UKICMgIGRlZmluZSBHVEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgMQogIyBlbmRp
ZiAgLy8gX1dJTjMyX1dDRQorI2VsaWYgZGVmaW5lZCBfX09TMl9fCisjIGRlZmluZSBHVEVTVF9P
U19PUzIgMQogI2VsaWYgZGVmaW5lZCBfX0FQUExFX18KICMgZGVmaW5lIEdURVNUX09TX01BQyAx
CisjIGluY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgogIyBpZiBUQVJHRVRfT1NfSVBIT05F
CiAjICBkZWZpbmUgR1RFU1RfT1NfSU9TIDEKICMgZW5kaWYKKyNlbGlmIGRlZmluZWQgX19EcmFn
b25GbHlfXworIyBkZWZpbmUgR1RFU1RfT1NfRFJBR09ORkxZIDEKICNlbGlmIGRlZmluZWQgX19G
cmVlQlNEX18KICMgZGVmaW5lIEdURVNUX09TX0ZSRUVCU0QgMQogI2VsaWYgZGVmaW5lZCBfX0Z1
Y2hzaWFfXwogIyBkZWZpbmUgR1RFU1RfT1NfRlVDSFNJQSAxCisjZWxpZiBkZWZpbmVkKF9fR0xJ
QkNfXykgJiYgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCisjIGRlZmluZSBHVEVTVF9PU19H
TlVfS0ZSRUVCU0QgMQogI2VsaWYgZGVmaW5lZCBfX2xpbnV4X18KICMgZGVmaW5lIEdURVNUX09T
X0xJTlVYIDEKICMgaWYgZGVmaW5lZCBfX0FORFJPSURfXwpAQCAtOTUsNiArMTAxLDEyIEBACiAj
IGRlZmluZSBHVEVTVF9PU19PUEVOQlNEIDEKICNlbGlmIGRlZmluZWQgX19RTlhfXwogIyBkZWZp
bmUgR1RFU1RfT1NfUU5YIDEKKyNlbGlmIGRlZmluZWQoX19IQUlLVV9fKQorI2RlZmluZSBHVEVT
VF9PU19IQUlLVSAxCisjZWxpZiBkZWZpbmVkIEVTUDgyNjYKKyNkZWZpbmUgR1RFU1RfT1NfRVNQ
ODI2NiAxCisjZWxpZiBkZWZpbmVkIEVTUDMyCisjZGVmaW5lIEdURVNUX09TX0VTUDMyIDEKICNl
bmRpZiAgLy8gX19DWUdXSU5fXwogCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfR1RFU1RfUE9SVF9BUkNIX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0FSQ0hfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgKaW5k
ZXggNzg2NDk3ZDg1NGM5N2YxYjZhYjkzNzJhMjQxYzFmYTE1NWEzMGE1NC4uMWMwZGVkZGQ3MDBh
NWNlZmVmNmEyYmY1M2RhOWIzY2QwODQ5OTViZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0LmgKQEAg
LTQwLDggKzQwLDggQEAKIAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0j
aWZuZGVmIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfUE9SVF9IXwotI2RlZmlu
ZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KKyNpZm5kZWYgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KKyNkZWZpbmUgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1BPUlRfSF8KIAogLy8gRW52aXJv
bm1lbnQtZGVzY3JpYmluZyBtYWNyb3MKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CkBAIC03MiwxMCArNzIsNiBAQAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcy9p
c24ndCBhdmFpbGFibGUuCiAvLyAgIEdURVNUX0hBU19FWENFUFRJT05TICAgICAtIERlZmluZSBp
dCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCBleGNlcHRpb25zCiAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZSBlbmFibGVkLgotLy8gICBHVEVTVF9IQVNfR0xPQkFMX1NUUklORyAg
LSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQgOjpzdHJpbmcKLS8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXMvaXNuJ3QgYXZhaWxhYmxlCi0vLyAgIEdURVNUX0hBU19H
TE9CQUxfV1NUUklORyAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUgdGhhdCA6OndzdHJp
bmcKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMvaXNuJ3QgYXZhaWxhYmxlCiAv
LyAgIEdURVNUX0hBU19QT1NJWF9SRSAgICAgICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNh
dGUgdGhhdCBQT1NJWCByZWd1bGFyCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cHJlc3Npb25zIGFyZS9hcmVuJ3QgYXZhaWxhYmxlLgogLy8gICBHVEVTVF9IQVNfUFRIUkVBRCAg
ICAgICAgLSBEZWZpbmUgaXQgdG8gMS8wIHRvIGluZGljYXRlIHRoYXQgPHB0aHJlYWQuaD4KQEAg
LTg1LDggKzgxLDYgQEAKIC8vICAgR1RFU1RfSEFTX1NURF9XU1RSSU5HICAgIC0gRGVmaW5lIGl0
IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0CiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6d3N0cmluZyBkb2VzL2RvZXNuJ3Qgd29yayAoR29vZ2xlIFRlc3QgY2FuCiAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHVzZWQgd2hlcmUgc3RkOjp3c3RyaW5nIGlzIHVu
YXZhaWxhYmxlKS4KLS8vICAgR1RFU1RfSEFTX1RSMV9UVVBMRSAgICAgIC0gRGVmaW5lIGl0IHRv
IDEvMCB0byBpbmRpY2F0ZSB0cjE6OnR1cGxlCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlzL2lzbid0IGF2YWlsYWJsZS4KIC8vICAgR1RFU1RfSEFTX1NFSCAgICAgICAgICAgIC0g
RGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZQogLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21waWxlciBzdXBwb3J0cyBNaWNyb3NvZnQncyAiU3RydWN0dXJl
ZAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb24gSGFuZGxpbmciLgpA
QCAtOTQsMTIgKzg4LDYgQEAKIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gRGVmaW5l
IGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZQogLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwbGF0Zm9ybSBzdXBwb3J0cyBJL08gc3RyZWFtIHJlZGlyZWN0aW9uIHVzaW5n
CiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cCgpIGFuZCBkdXAyKCkuCi0vLyAg
IEdURVNUX1VTRV9PV05fVFIxX1RVUExFICAtIERlZmluZSBpdCB0byAxLzAgdG8gaW5kaWNhdGUg
d2hldGhlciBHb29nbGUKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdCdzIG93
biB0cjEgdHVwbGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlCi0vLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVzZWQuICBVbnVzZWQgd2hlbiB0aGUgdXNlciBzZXRzCi0vLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdURVNUX0hBU19UUjFfVFVQTEUgdG8gMC4KLS8vICAgR1RF
U1RfTEFOR19DWFgxMSAgICAgICAgIC0gRGVmaW5lIGl0IHRvIDEvMCB0byBpbmRpY2F0ZSB0aGF0
IEdvb2dsZSBUZXN0Ci0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGJ1aWxkaW5n
IGluIEMrKzExL0MrKzk4IG1vZGUuCiAvLyAgIEdURVNUX0xJTktFRF9BU19TSEFSRURfTElCUkFS
WQogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBEZWZpbmUgdG8gMSB3aGVuIGNvbXBp
bGluZyB0ZXN0cyB0aGF0IHVzZQogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHb29n
bGUgVGVzdCBhcyBhIHNoYXJlZCBsaWJyYXJ5IChrbm93biBhcwpAQCAtMTI1LDggKzExMywxMSBA
QAogLy8KIC8vICAgR1RFU1RfT1NfQUlYICAgICAgLSBJQk0gQUlYCiAvLyAgIEdURVNUX09TX0NZ
R1dJTiAgIC0gQ3lnd2luCisvLyAgIEdURVNUX09TX0RSQUdPTkZMWSAtIERyYWdvbkZseUJTRAog
Ly8gICBHVEVTVF9PU19GUkVFQlNEICAtIEZyZWVCU0QKIC8vICAgR1RFU1RfT1NfRlVDSFNJQSAg
LSBGdWNoc2lhCisvLyAgIEdURVNUX09TX0dOVV9LRlJFRUJTRCAtIEdOVS9rRnJlZUJTRAorLy8g
ICBHVEVTVF9PU19IQUlLVSAgICAtIEhhaWt1CiAvLyAgIEdURVNUX09TX0hQVVggICAgIC0gSFAt
VVgKIC8vICAgR1RFU1RfT1NfTElOVVggICAgLSBMaW51eAogLy8gICAgIEdURVNUX09TX0xJTlVY
X0FORFJPSUQgLSBHb29nbGUgQW5kcm9pZApAQCAtMTM1LDkgKzEyNiw5IEBACiAvLyAgIEdURVNU
X09TX05BQ0wgICAgIC0gR29vZ2xlIE5hdGl2ZSBDbGllbnQgKE5hQ2wpCiAvLyAgIEdURVNUX09T
X05FVEJTRCAgIC0gTmV0QlNECiAvLyAgIEdURVNUX09TX09QRU5CU0QgIC0gT3BlbkJTRAorLy8g
ICBHVEVTVF9PU19PUzIgICAgICAtIE9TLzIKIC8vICAgR1RFU1RfT1NfUU5YICAgICAgLSBRTlgK
IC8vICAgR1RFU1RfT1NfU09MQVJJUyAgLSBTdW4gU29sYXJpcwotLy8gICBHVEVTVF9PU19TWU1C
SUFOICAtIFN5bWJpYW4KIC8vICAgR1RFU1RfT1NfV0lORE9XUyAgLSBXaW5kb3dzIChEZXNrdG9w
LCBNaW5HVywgb3IgTW9iaWxlKQogLy8gICAgIEdURVNUX09TX1dJTkRPV1NfREVTS1RPUCAgLSBX
aW5kb3dzIERlc2t0b3AKIC8vICAgICBHVEVTVF9PU19XSU5ET1dTX01JTkdXICAgIC0gTWluR1cK
QEAgLTE0Niw3ICsxMzcsNyBAQAogLy8gICAgIEdURVNUX09TX1dJTkRPV1NfUlQgICAgICAgLSBX
aW5kb3dzIFN0b3JlIEFwcC9XaW5SVAogLy8gICBHVEVTVF9PU19aT1MgICAgICAtIHovT1MKIC8v
Ci0vLyBBbW9uZyB0aGUgcGxhdGZvcm1zLCBDeWd3aW4sIExpbnV4LCBNYXggT1MgWCwgYW5kIFdp
bmRvd3MgaGF2ZSB0aGUKKy8vIEFtb25nIHRoZSBwbGF0Zm9ybXMsIEN5Z3dpbiwgTGludXgsIE1h
YyBPUyBYLCBhbmQgV2luZG93cyBoYXZlIHRoZQogLy8gbW9zdCBzdGFibGUgc3VwcG9ydC4gIFNp
bmNlIGNvcmUgbWVtYmVycyBvZiB0aGUgR29vZ2xlIFRlc3QgcHJvamVjdAogLy8gZG9uJ3QgaGF2
ZSBhY2Nlc3MgdG8gb3RoZXIgcGxhdGZvcm1zLCBzdXBwb3J0IGZvciB0aGVtIG1heSBiZSBsZXNz
CiAvLyBzdGFibGUuICBJZiB5b3Ugbm90aWNlIGFueSBwcm9ibGVtcyBvbiB5b3VyIHBsYXRmb3Jt
LCBwbGVhc2Ugbm90aWZ5CkBAIC0xNzIsOCArMTYzLDYgQEAKIC8vICAgRVhQRUNUX0RFQVRIKERv
U29tZXRoaW5nRGVhZGx5KCkpOwogLy8gI2VuZGlmCiAvLwotLy8gICBHVEVTVF9IQVNfQ09NQklO
RSAgICAgIC0gdGhlIENvbWJpbmUoKSBmdW5jdGlvbiAoZm9yIHZhbHVlLXBhcmFtZXRlcml6ZWQK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzKQogLy8gICBHVEVTVF9IQVNfREVB
VEhfVEVTVCAgIC0gZGVhdGggdGVzdHMKIC8vICAgR1RFU1RfSEFTX1RZUEVEX1RFU1QgICAtIHR5
cGVkIHRlc3RzCiAvLyAgIEdURVNUX0hBU19UWVBFRF9URVNUX1AgLSB0eXBlLXBhcmFtZXRlcml6
ZWQgdGVzdHMKQEAgLTE4NCw3ICsxNzMsNiBAQAogLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmaW5lIHRoZW1zZWx2ZXMuCiAvLyAgIEdURVNUX1VTRVNfU0lNUExFX1JFICAgLSBvdXIg
b3duIHNpbXBsZSByZWdleCBpcyB1c2VkOwogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlIGFib3ZlIFJFXGIocykgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KLS8vICAgR1RFU1RfQ0FO
X0NPTVBBUkVfTlVMTCAtIGFjY2VwdHMgdW50eXBlZCBOVUxMIGluIEVYUEVDVF9FUSgpLgogCiAv
LyBNaXNjIHB1YmxpYyBtYWNyb3MKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjAyLDMxICsx
OTAsMzIgQEAKIC8vICAgR1RFU1RfQU1CSUdVT1VTX0VMU0VfQkxPQ0tFUl8gLSBmb3IgZGlzYWJs
aW5nIGEgZ2NjIHdhcm5pbmcuCiAvLyAgIEdURVNUX0FUVFJJQlVURV9VTlVTRURfICAtIGRlY2xh
cmVzIHRoYXQgYSBjbGFzcycgaW5zdGFuY2VzIG9yIGEKIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyaWFibGUgZG9uJ3QgaGF2ZSB0byBiZSB1c2VkLgotLy8gICBHVEVTVF9ESVNB
TExPV19BU1NJR05fICAgLSBkaXNhYmxlcyBvcGVyYXRvcj0uCisvLyAgIEdURVNUX0RJU0FMTE9X
X0FTU0lHTl8gICAtIGRpc2FibGVzIGNvcHkgb3BlcmF0b3I9LgogLy8gICBHVEVTVF9ESVNBTExP
V19DT1BZX0FORF9BU1NJR05fIC0gZGlzYWJsZXMgY29weSBjdG9yIGFuZCBvcGVyYXRvcj0uCisv
LyAgIEdURVNUX0RJU0FMTE9XX01PVkVfQVNTSUdOXyAgIC0gZGlzYWJsZXMgbW92ZSBvcGVyYXRv
cj0uCisvLyAgIEdURVNUX0RJU0FMTE9XX01PVkVfQU5EX0FTU0lHTl8gLSBkaXNhYmxlcyBtb3Zl
IGN0b3IgYW5kIG9wZXJhdG9yPS4KIC8vICAgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXyAgIC0gZGVj
bGFyZXMgdGhhdCBhIGZ1bmN0aW9uJ3MgcmVzdWx0IG11c3QgYmUgdXNlZC4KIC8vICAgR1RFU1Rf
SU5URU5USU9OQUxfQ09OU1RfQ09ORF9QVVNIXyAtIHN0YXJ0IGNvZGUgc2VjdGlvbiB3aGVyZSBN
U1ZDIEM0MTI3IGlzCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dXBwcmVzc2VkIChjb25zdGFudCBjb25kaXRpb25hbCkuCiAvLyAgIEdURVNUX0lOVEVOVElPTkFM
X0NPTlNUX0NPTkRfUE9QXyAgLSBmaW5pc2ggY29kZSBzZWN0aW9uIHdoZXJlIE1TVkMgQzQxMjcK
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHN1cHByZXNzZWQu
Ci0vLwotLy8gQysrMTEgZmVhdHVyZSB3cmFwcGVyczoKLS8vCi0vLyAgIHRlc3Rpbmc6OmludGVy
bmFsOjpmb3J3YXJkIC0gcG9ydGFiaWxpdHkgd3JhcHBlciBmb3Igc3RkOjpmb3J3YXJkLgotLy8g
ICB0ZXN0aW5nOjppbnRlcm5hbDo6bW92ZSAgLSBwb3J0YWJpbGl0eSB3cmFwcGVyIGZvciBzdGQ6
Om1vdmUuCisvLyAgIEdURVNUX0lOVEVSTkFMX0hBU19BTlkgLSBmb3IgZW5hYmxpbmcgVW5pdmVy
c2FsUHJpbnRlcjxzdGQ6OmFueT4gb3IKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVu
aXZlcnNhbFByaW50ZXI8YWJzbDo6YW55PiBzcGVjaWFsaXphdGlvbnMuCisvLyAgIEdURVNUX0lO
VEVSTkFMX0hBU19PUFRJT05BTCAtIGZvciBlbmFibGluZyBVbml2ZXJzYWxQcmludGVyPHN0ZDo6
b3B0aW9uYWw+CisvLyAgIG9yCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVu
aXZlcnNhbFByaW50ZXI8YWJzbDo6b3B0aW9uYWw+CisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNwZWNpYWxpemF0aW9ucy4KKy8vICAgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklO
R19WSUVXIC0gZm9yIGVuYWJsaW5nIE1hdGNoZXI8c3RkOjpzdHJpbmdfdmlldz4gb3IKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hlcjxhYnNsOjpzdHJpbmdfdmll
dz4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbGl6YXRpb25z
LgorLy8gICBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVCAtIGZvciBlbmFibGluZyBVbml2ZXJz
YWxQcmludGVyPHN0ZDo6dmFyaWFudD4gb3IKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbml2ZXJzYWxQcmludGVyPGFic2w6OnZhcmlhbnQ+CisvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3BlY2lhbGl6YXRpb25zLgogLy8KIC8vIFN5bmNocm9uaXphdGlvbjoK
IC8vICAgTXV0ZXgsIE11dGV4TG9jaywgVGhyZWFkTG9jYWwsIEdldFRocmVhZENvdW50KCkKIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMu
CiAvLwotLy8gVGVtcGxhdGUgbWV0YSBwcm9ncmFtbWluZzoKLS8vICAgaXNfcG9pbnRlciAgICAg
LSBhcyBpbiBUUjE7IG5lZWRlZCBvbiBTeW1iaWFuIGFuZCBJQk0gWEwgQy9DKysgb25seS4KLS8v
ICAgSXRlcmF0b3JUcmFpdHMgLSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHN0ZDo6aXRlcmF0
b3JfdHJhaXRzLCB3aGljaAotLy8gICAgICAgICAgICAgICAgICAgIGlzIG5vdCBhdmFpbGFibGUg
aW4gbGliQ3N0ZCB3aGVuIGNvbXBpbGVkIHdpdGggU3VuIEMrKy4KLS8vCi0vLyBTbWFydCBwb2lu
dGVyczoKLS8vICAgc2NvcGVkX3B0ciAgICAgLSBhcyBpbiBUUjIuCi0vLwogLy8gUmVndWxhciBl
eHByZXNzaW9uczoKIC8vICAgUkUgICAgICAgICAgICAgLSBhIHNpbXBsZSByZWd1bGFyIGV4cHJl
c3Npb24gY2xhc3MgdXNpbmcgdGhlIFBPU0lYCiAvLyAgICAgICAgICAgICAgICAgICAgRXh0ZW5k
ZWQgUmVndWxhciBFeHByZXNzaW9uIHN5bnRheCBvbiBVTklYLWxpa2UgcGxhdGZvcm1zCkBAIC0y
NDgsOCArMjM3LDcgQEAKIC8vCiAvLyBJbnRlZ2VyIHR5cGVzOgogLy8gICBUeXBlV2l0aFNpemUg
ICAtIG1hcHMgYW4gaW50ZWdlciB0byBhIGludCB0eXBlLgotLy8gICBJbnQzMiwgVUludDMyLCBJ
bnQ2NCwgVUludDY0LCBUaW1lSW5NaWxsaXMKLS8vICAgICAgICAgICAgICAgICAgLSBpbnRlZ2Vy
cyBvZiBrbm93biBzaXplcy4KKy8vICAgVGltZUluTWlsbGlzICAgLSBpbnRlZ2VycyBvZiBrbm93
biBzaXplcy4KIC8vICAgQmlnZ2VzdEludCAgICAgLSB0aGUgYmlnZ2VzdCBzaWduZWQgaW50ZWdl
ciB0eXBlLgogLy8KIC8vIENvbW1hbmQtbGluZSB1dGlsaXRpZXM6CkBAIC0yNjAsMTQgKzI0OCwy
NSBAQAogLy8gRW52aXJvbm1lbnQgdmFyaWFibGUgdXRpbGl0aWVzOgogLy8gICBHZXRFbnYoKSAg
ICAgICAgICAgICAtIGdldHMgdGhlIHZhbHVlIG9mIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgog
Ly8gICBCb29sRnJvbUdUZXN0RW52KCkgICAtIHBhcnNlcyBhIGJvb2wgZW52aXJvbm1lbnQgdmFy
aWFibGUuCi0vLyAgIEludDMyRnJvbUdUZXN0RW52KCkgIC0gcGFyc2VzIGFuIEludDMyIGVudmly
b25tZW50IHZhcmlhYmxlLgorLy8gICBJbnQzMkZyb21HVGVzdEVudigpICAtIHBhcnNlcyBhbiBp
bnQzMl90IGVudmlyb25tZW50IHZhcmlhYmxlLgogLy8gICBTdHJpbmdGcm9tR1Rlc3RFbnYoKSAt
IHBhcnNlcyBhIHN0cmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKy8vCisvLyBEZXByZWNhdGlv
biB3YXJuaW5nczoKKy8vICAgR1RFU1RfSU5URVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSAtIGF0
dHJpYnV0ZSBtYXJraW5nIGEgZnVuY3Rpb24gYXMKKy8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQ7IGNhbGxpbmcgYSBtYXJrZWQgZnVuY3Rpb24KKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBnZW5lcmF0ZSBh
IGNvbXBpbGVyIHdhcm5pbmcKIAogI2luY2x1ZGUgPGN0eXBlLmg+ICAgLy8gZm9yIGlzc3BhY2Us
IGV0YwogI2luY2x1ZGUgPHN0ZGRlZi5oPiAgLy8gZm9yIHB0cmRpZmZfdAotI2luY2x1ZGUgPHN0
ZGxpYi5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVk
ZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxjZXJybm8+CisjaW5jbHVkZSA8Y3N0ZGludD4KKyNp
bmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKICNpZm5kZWYgX1dJTjMy
X1dDRQogIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KQEAg
LTI3OCwxNyArMjc3LDE1IEBACiAjIGluY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgogI2Vu
ZGlmCiAKLS8vIEJyaW5ncyBpbiB0aGUgZGVmaW5pdGlvbiBvZiBIQVNfR0xPQkFMX1NUUklORy4g
IFRoaXMgbXVzdCBiZSBkb25lCi0vLyBCRUZPUkUgd2UgdGVzdCBIQVNfR0xPQkFMX1NUUklORy4K
LSNpbmNsdWRlIDxzdHJpbmc+ICAvLyBOT0xJTlQKLSNpbmNsdWRlIDxhbGdvcml0aG0+ICAvLyBO
T0xJTlQKICNpbmNsdWRlIDxpb3N0cmVhbT4gIC8vIE5PTElOVAotI2luY2x1ZGUgPHNzdHJlYW0+
ICAvLyBOT0xJTlQKLSNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPGxvY2FsZT4KKyNpbmNs
dWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3RyaW5nPiAgLy8gTk9MSU5UCisjaW5jbHVkZSA8dHVw
bGU+CiAjaW5jbHVkZSA8dmVjdG9yPiAgLy8gTk9MSU5UCiAKLSNpbmNsdWRlICJndGVzdC9pbnRl
cm5hbC9ndGVzdC1wb3J0LWFyY2guaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9jdXN0b20v
Z3Rlc3QtcG9ydC5oIgorI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQtYXJjaC5o
IgogCiAjaWYgIWRlZmluZWQoR1RFU1RfREVWX0VNQUlMXykKICMgZGVmaW5lIEdURVNUX0RFVl9F
TUFJTF8gImdvb2dsZXRlc3RmcmFtZXdvcmtAQGdvb2dsZWdyb3Vwcy5jb20iCkBAIC0zMTUsMTQg
KzMxMiwxNCBAQAogLy8gICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0ODAwIDQz
ODUpCiAvLyAgIC8qIGNvZGUgdGhhdCB0cmlnZ2VycyB3YXJuaW5ncyBDNDgwMCBhbmQgQzQzODUg
Ki8KIC8vICAgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCi0jaWYgX01TQ19WRVIg
Pj0gMTQwMAorI2lmIGRlZmluZWQoX01TQ19WRVIpCiAjIGRlZmluZSBHVEVTVF9ESVNBQkxFX01T
Q19XQVJOSU5HU19QVVNIXyh3YXJuaW5ncykgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcocHVzaCkp
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9fcHJhZ21hKHdhcm5pbmcoZGlzYWJsZTog
d2FybmluZ3MpKQogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpICAg
ICAgICAgIFwKICAgICBfX3ByYWdtYSh3YXJuaW5nKHBvcCkpCiAjZWxzZQotLy8gT2xkZXIgdmVy
c2lvbnMgb2YgTVNWQyBkb24ndCBoYXZlIF9fcHJhZ21hLgorLy8gTm90IGFsbCBjb21waWxlcnMg
YXJlIE1TVkMKICMgZGVmaW5lIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BVU0hfKHdhcm5p
bmdzKQogIyBkZWZpbmUgR1RFU1RfRElTQUJMRV9NU0NfV0FSTklOR1NfUE9QXygpCiAjZW5kaWYK
QEAgLTM0Myw4MCArMzQwLDYgQEAKICAgICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1Bf
KCkKICNlbmRpZgogCi0jaWZuZGVmIEdURVNUX0xBTkdfQ1hYMTEKLS8vIGdjYyBhbmQgY2xhbmcg
ZGVmaW5lIF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fIHdoZW4KLS8vIC1zdGQ9e2MsZ251fSsr
ezB4LDExfSBpcyBwYXNzZWQuICBUaGUgQysrMTEgc3RhbmRhcmQgc3BlY2lmaWVzIGEKLS8vIHZh
bHVlIGZvciBfX2NwbHVzcGx1cywgYW5kIHJlY2VudCB2ZXJzaW9ucyBvZiBjbGFuZywgZ2NjLCBh
bmQKLS8vIHByb2JhYmx5IG90aGVyIGNvbXBpbGVycyBzZXQgdGhhdCB0b28gaW4gQysrMTEgbW9k
ZS4KLSMgaWYgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18gfHwgX19jcGx1c3BsdXMgPj0gMjAx
MTAzTCB8fCBfTVNDX1ZFUiA+PSAxOTAwCi0vLyBDb21waWxpbmcgaW4gYXQgbGVhc3QgQysrMTEg
bW9kZS4KLSMgIGRlZmluZSBHVEVTVF9MQU5HX0NYWDExIDEKLSMgZWxzZQotIyAgZGVmaW5lIEdU
RVNUX0xBTkdfQ1hYMTEgMAotIyBlbmRpZgotI2VuZGlmCi0KLS8vIERpc3RpbmN0IGZyb20gQysr
MTEgbGFuZ3VhZ2Ugc3VwcG9ydCwgc29tZSBlbnZpcm9ubWVudHMgZG9uJ3QgcHJvdmlkZQotLy8g
cHJvcGVyIEMrKzExIGxpYnJhcnkgc3VwcG9ydC4gTm90YWJseSwgaXQncyBwb3NzaWJsZSB0byBi
dWlsZCBpbgotLy8gQysrMTEgbW9kZSB3aGVuIHRhcmdldGluZyBNYWMgT1MgWCAxMC42LCB3aGlj
aCBoYXMgYW4gb2xkIGxpYnN0ZGMrKwotLy8gd2l0aCBubyBDKysxMSBzdXBwb3J0LgotLy8KLS8v
IGxpYnN0ZGMrKyBoYXMgc3VmZmljaWVudCBDKysxMSBzdXBwb3J0IGFzIG9mIEdDQyA0LjYuMCwg
X19HTElCQ1hYX18KLS8vIDIwMTEwMzI1LCBidXQgbWFpbnRlbmFuY2UgcmVsZWFzZXMgaW4gdGhl
IDQuNCBhbmQgNC41IHNlcmllcyBmb2xsb3dlZAotLy8gdGhpcyBkYXRlLCBzbyBjaGVjayBmb3Ig
dGhvc2UgdmVyc2lvbnMgYnkgdGhlaXIgZGF0ZSBzdGFtcHMuCi0vLyBodHRwczovL2djYy5nbnUu
b3JnL29ubGluZWRvY3MvbGlic3RkYysrL21hbnVhbC9hYmkuaHRtbCNhYmkudmVyc2lvbmluZwot
I2lmIEdURVNUX0xBTkdfQ1hYMTEgJiYgXAotICAgICghZGVmaW5lZChfX0dMSUJDWFhfXykgfHwg
KCBcCi0gICAgICAgIF9fR0xJQkNYWF9fID49IDIwMTEwMzI1dWwgJiYgIC8qIEdDQyA+PSA0LjYu
MCAqLyBcCi0gICAgICAgIC8qIEJsYWNrbGlzdCBvZiBwYXRjaCByZWxlYXNlcyBvZiBvbGRlciBi
cmFuY2hlczogKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDExMDQxNnVsICYmICAvKiBH
Q0MgNC40LjYgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDEyMDMxM3VsICYmICAvKiBH
Q0MgNC40LjcgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDExMDQyOHVsICYmICAvKiBH
Q0MgNC41LjMgKi8gXAotICAgICAgICBfX0dMSUJDWFhfXyAhPSAyMDEyMDcwMnVsKSkgICAvKiBH
Q0MgNC41LjQgKi8KLSMgZGVmaW5lIEdURVNUX1NURExJQl9DWFgxMSAxCi0jZW5kaWYKLQotLy8g
T25seSB1c2UgQysrMTEgbGlicmFyeSBmZWF0dXJlcyBpZiB0aGUgbGlicmFyeSBwcm92aWRlcyB0
aGVtLgotI2lmIEdURVNUX1NURExJQl9DWFgxMQotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9CRUdJ
Tl9BTkRfRU5EXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX0ZPUldBUkRfTElTVF8gMQotIyBp
ZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgKF9NU0NfRlVMTF9WRVIgPj0gMTkwMDIzODI0KQotLy8g
d29ya3Mgb25seSB3aXRoIFZTMjAxNVUyIGFuZCBiZXR0ZXIKLSMgICBkZWZpbmUgR1RFU1RfSEFT
X1NURF9GVU5DVElPTl8gMQotIyBlbmRpZgotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9JTklUSUFM
SVpFUl9MSVNUXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfU1REX01PVkVfIDEKLSMgZGVmaW5lIEdU
RVNUX0hBU19TVERfVU5JUVVFX1BUUl8gMQotIyBkZWZpbmUgR1RFU1RfSEFTX1NURF9TSEFSRURf
UFRSXyAxCi0jIGRlZmluZSBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8gMQotIyBkZWZpbmUgR1RF
U1RfSEFTX1VOT1JERVJFRF9TRVRfIDEKLSNlbmRpZgotCi0vLyBDKysxMSBzcGVjaWZpZXMgdGhh
dCA8dHVwbGU+IHByb3ZpZGVzIHN0ZDo6dHVwbGUuCi0vLyBTb21lIHBsYXRmb3JtcyBzdGlsbCBt
aWdodCBub3QgaGF2ZSBpdCwgaG93ZXZlci4KLSNpZiBHVEVTVF9MQU5HX0NYWDExCi0jIGRlZmlu
ZSBHVEVTVF9IQVNfU1REX1RVUExFXyAxCi0jIGlmIGRlZmluZWQoX19jbGFuZ19fKQotLy8gSW5z
cGlyZWQgYnkKLS8vIGh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZG9jcy9MYW5ndWFnZUV4dGVuc2lv
bnMuaHRtbCNpbmNsdWRlLWZpbGUtY2hlY2tpbmctbWFjcm9zCi0jICBpZiBkZWZpbmVkKF9faGFz
X2luY2x1ZGUpICYmICFfX2hhc19pbmNsdWRlKDx0dXBsZT4pCi0jICAgdW5kZWYgR1RFU1RfSEFT
X1NURF9UVVBMRV8KLSMgIGVuZGlmCi0jIGVsaWYgZGVmaW5lZChfTVNDX1ZFUikKLS8vIEluc3Bp
cmVkIGJ5IGJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAKLSMgIGlmIGRlZmluZWQo
X0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSIDwgNTIwCi0jICAgdW5kZWYgR1RFU1RfSEFTX1NU
RF9UVVBMRV8KLSMgIGVuZGlmCi0jIGVsaWYgZGVmaW5lZChfX0dMSUJDWFhfXykKLS8vIEluc3Bp
cmVkIGJ5IGJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAsCi0vLyBodHRwOi8vZ2Nj
LmdudS5vcmcvZ2NjLTQuMi9jaGFuZ2VzLmh0bWwgYW5kCi0vLyBodHRwczovL3dlYi5hcmNoaXZl
Lm9yZy93ZWIvMjAxNDAyMjcwNDQ0MjkvZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysv
bWFudWFsL2JrMDFwdDAxY2gwMS5odG1sI21hbnVhbC5pbnRyby5zdGF0dXMuc3RhbmRhcmQuMjAw
eAotIyAgaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9f
IDwgMikKLSMgICB1bmRlZiBHVEVTVF9IQVNfU1REX1RVUExFXwotIyAgZW5kaWYKLSMgZW5kaWYK
LSNlbmRpZgotCiAvLyBCcmluZ3MgaW4gZGVmaW5pdGlvbnMgZm9yIGZ1bmN0aW9ucyB1c2VkIGlu
IHRoZSB0ZXN0aW5nOjppbnRlcm5hbDo6cG9zaXgKIC8vIG5hbWVzcGFjZSAocmVhZCwgd3JpdGUs
IGNsb3NlLCBjaGRpciwgaXNhdHR5LCBzdGF0KS4gV2UgZG8gbm90IGN1cnJlbnRseQogLy8gdXNl
IHRoZW0gb24gV2luZG93cyBNb2JpbGUuCkBAIC00NDksNyArMzcyLDggQEAgdHlwZWRlZiBzdHJ1
Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjICBpbmNs
dWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPiAgLy8gTk9MSU5UCiAjZW5kaWYKIAotLy8gRGVmaW5l
cyB0aGlzIHRvIHRydWUgaWZmIEdvb2dsZSBUZXN0IGNhbiB1c2UgUE9TSVggcmVndWxhciBleHBy
ZXNzaW9ucy4KKy8vIERlZmluZXMgdGhpcyB0byB0cnVlIGlmIGFuZCBvbmx5IGlmIEdvb2dsZSBU
ZXN0IGNhbiB1c2UgUE9TSVggcmVndWxhcgorLy8gZXhwcmVzc2lvbnMuCiAjaWZuZGVmIEdURVNU
X0hBU19QT1NJWF9SRQogIyBpZiBHVEVTVF9PU19MSU5VWF9BTkRST0lECiAvLyBPbiBBbmRyb2lk
LCA8cmVnZXguaD4gaXMgb25seSBhdmFpbGFibGUgc3RhcnRpbmcgd2l0aCBHaW5nZXJicmVhZC4K
QEAgLTQ5MCw3ICs0MTQsNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04g
R1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIC8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxsIHVzIHdoZXRo
ZXIgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZCwgc28gd2UgbmVlZAogLy8gdG8gZmlndXJlIGl0IG91
dC4KICMgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfQ1BQVU5XSU5EKQotLy8gTVNW
QyBkZWZpbmVzIF9DUFBVTldJTkQgdG8gMSBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KKy8v
IE1TVkMgZGVmaW5lcyBfQ1BQVU5XSU5EIHRvIDEgaWYgYW5kIG9ubHkgaWYgZXhjZXB0aW9ucyBh
cmUgZW5hYmxlZC4KICMgIGRlZmluZSBHVEVTVF9IQVNfRVhDRVBUSU9OUyAxCiAjIGVsaWYgZGVm
aW5lZChfX0JPUkxBTkRDX18pCiAvLyBDKytCdWlsZGVyJ3MgaW1wbGVtZW50YXRpb24gb2YgdGhl
IFNUTCB1c2VzIHRoZSBfSEFTX0VYQ0VQVElPTlMKQEAgLTUwMSwxNiArNDI1LDE3IEBAIHR5cGVk
ZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwog
IyAgZW5kaWYgIC8vIF9IQVNfRVhDRVBUSU9OUwogIyAgZGVmaW5lIEdURVNUX0hBU19FWENFUFRJ
T05TIF9IQVNfRVhDRVBUSU9OUwogIyBlbGlmIGRlZmluZWQoX19jbGFuZ19fKQotLy8gY2xhbmcg
ZGVmaW5lcyBfX0VYQ0VQVElPTlMgaWZmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQgYmVmb3JlIGNs
YW5nIDIyMDcxNCwKLS8vIGJ1dCBpZmYgY2xlYW51cHMgYXJlIGVuYWJsZWQgYWZ0ZXIgdGhhdC4g
SW4gT2JqLUMrKyBmaWxlcywgdGhlcmUgY2FuIGJlCi0vLyBjbGVhbnVwcyBmb3IgT2JqQyBleGNl
cHRpb25zIHdoaWNoIGFsc28gbmVlZCBjbGVhbnVwcywgZXZlbiBpZiBDKysgZXhjZXB0aW9ucwot
Ly8gYXJlIGRpc2FibGVkLiBjbGFuZyBoYXMgX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0aW9ucykg
d2hpY2ggY2hlY2tzIGZvciBDKysKLS8vIGV4Y2VwdGlvbnMgc3RhcnRpbmcgYXQgY2xhbmcgcjIw
NjM1MiwgYnV0IHdoaWNoIGNoZWNrZWQgZm9yIGNsZWFudXBzIHByaW9yIHRvCi0vLyB0aGF0LiBU
byByZWxpYWJseSBjaGVjayBmb3IgQysrIGV4Y2VwdGlvbiBhdmFpbGFiaWxpdHkgd2l0aCBjbGFu
ZywgY2hlY2sgZm9yCisvLyBjbGFuZyBkZWZpbmVzIF9fRVhDRVBUSU9OUyBpZiBhbmQgb25seSBp
ZiBleGNlcHRpb25zIGFyZSBlbmFibGVkIGJlZm9yZSBjbGFuZworLy8gMjIwNzE0LCBidXQgaWYg
YW5kIG9ubHkgaWYgY2xlYW51cHMgYXJlIGVuYWJsZWQgYWZ0ZXIgdGhhdC4gSW4gT2JqLUMrKyBm
aWxlcywKKy8vIHRoZXJlIGNhbiBiZSBjbGVhbnVwcyBmb3IgT2JqQyBleGNlcHRpb25zIHdoaWNo
IGFsc28gbmVlZCBjbGVhbnVwcywgZXZlbiBpZgorLy8gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2Fi
bGVkLiBjbGFuZyBoYXMgX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0aW9ucykgd2hpY2gKKy8vIGNo
ZWNrcyBmb3IgQysrIGV4Y2VwdGlvbnMgc3RhcnRpbmcgYXQgY2xhbmcgcjIwNjM1MiwgYnV0IHdo
aWNoIGNoZWNrZWQgZm9yCisvLyBjbGVhbnVwcyBwcmlvciB0byB0aGF0LiBUbyByZWxpYWJseSBj
aGVjayBmb3IgQysrIGV4Y2VwdGlvbiBhdmFpbGFiaWxpdHkgd2l0aAorLy8gY2xhbmcsIGNoZWNr
IGZvcgogLy8gX19FWENFUFRJT05TICYmIF9faGFzX2ZlYXR1cmUoY3h4X2V4Y2VwdGlvbnMpLgog
IyAgZGVmaW5lIEdURVNUX0hBU19FWENFUFRJT05TIChfX0VYQ0VQVElPTlMgJiYgX19oYXNfZmVh
dHVyZShjeHhfZXhjZXB0aW9ucykpCiAjIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19FWENF
UFRJT05TCi0vLyBnY2MgZGVmaW5lcyBfX0VYQ0VQVElPTlMgdG8gMSBpZmYgZXhjZXB0aW9ucyBh
cmUgZW5hYmxlZC4KKy8vIGdjYyBkZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmIGFuZCBvbmx5
IGlmIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQuCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElP
TlMgMQogIyBlbGlmIGRlZmluZWQoX19TVU5QUk9fQ0MpCiAvLyBTdW4gUHJvIENDIHN1cHBvcnRz
IGV4Y2VwdGlvbnMuICBIb3dldmVyLCB0aGVyZSBpcyBubyBjb21waWxlLXRpbWUgd2F5IG9mCkBA
IC01MTgsNyArNDQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdU
RVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAvLyB0aGV5IGFyZSBlbmFibGVkIHVubGVzcyB0aGUgdXNl
ciB0ZWxscyB1cyBvdGhlcndpc2UuCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgMQog
IyBlbGlmIGRlZmluZWQoX19JQk1DUFBfXykgJiYgX19FWENFUFRJT05TCi0vLyB4bEMgZGVmaW5l
cyBfX0VYQ0VQVElPTlMgdG8gMSBpZmYgZXhjZXB0aW9ucyBhcmUgZW5hYmxlZC4KKy8vIHhsQyBk
ZWZpbmVzIF9fRVhDRVBUSU9OUyB0byAxIGlmIGFuZCBvbmx5IGlmIGV4Y2VwdGlvbnMgYXJlIGVu
YWJsZWQuCiAjICBkZWZpbmUgR1RFU1RfSEFTX0VYQ0VQVElPTlMgMQogIyBlbGlmIGRlZmluZWQo
X19IUF9hQ0MpCiAvLyBFeGNlcHRpb24gaGFuZGxpbmcgaXMgaW4gZWZmZWN0IGJ5IGRlZmF1bHQg
aW4gSFAgYUNDIGNvbXBpbGVyLiBJdCBoYXMgdG8KQEAgLTUzMSw0MCArNDU2LDE4IEBAIHR5cGVk
ZWYgc3RydWN0IF9SVExfQ1JJVElDQUxfU0VDVElPTiBHVEVTVF9DUklUSUNBTF9TRUNUSU9OOwog
IyBlbmRpZiAgLy8gZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCiAj
ZW5kaWYgIC8vIEdURVNUX0hBU19FWENFUFRJT05TCiAKLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNf
U1REX1NUUklORykKLS8vIEV2ZW4gdGhvdWdoIHdlIGRvbid0IHVzZSB0aGlzIG1hY3JvIGFueSBs
b25nZXIsIHdlIGtlZXAgaXQgaW4gY2FzZQotLy8gc29tZSBjbGllbnRzIHN0aWxsIGRlcGVuZCBv
biBpdC4KLSMgZGVmaW5lIEdURVNUX0hBU19TVERfU1RSSU5HIDEKLSNlbGlmICFHVEVTVF9IQVNf
U1REX1NUUklORwotLy8gVGhlIHVzZXIgdG9sZCB1cyB0aGF0IDo6c3RkOjpzdHJpbmcgaXNuJ3Qg
YXZhaWxhYmxlLgotIyBlcnJvciAiOjpzdGQ6OnN0cmluZyBpc24ndCBhdmFpbGFibGUuIgotI2Vu
ZGlmICAvLyAhZGVmaW5lZChHVEVTVF9IQVNfU1REX1NUUklORykKLQotI2lmbmRlZiBHVEVTVF9I
QVNfR0xPQkFMX1NUUklORwotIyBkZWZpbmUgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcgMAotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCiAjaWZuZGVmIEdURVNUX0hBU19TVERf
V1NUUklORwogLy8gVGhlIHVzZXIgZGlkbid0IHRlbGwgdXMgd2hldGhlciA6OnN0ZDo6d3N0cmlu
ZyBpcyBhdmFpbGFibGUsIHNvIHdlIG5lZWQKIC8vIHRvIGZpZ3VyZSBpdCBvdXQuCi0vLyBGSVhN
RTogdXNlcyBhdXRvY29uZiB0byBkZXRlY3Qgd2hldGhlciA6OnN0ZDo6d3N0cmluZwotLy8gICBp
cyBhdmFpbGFibGUuCi0KIC8vIEN5Z3dpbiAxLjcgYW5kIGJlbG93IGRvZXNuJ3Qgc3VwcG9ydCA6
OnN0ZDo6d3N0cmluZy4KIC8vIFNvbGFyaXMnIGxpYmMrKyBkb2Vzbid0IHN1cHBvcnQgaXQgZWl0
aGVyLiAgQW5kcm9pZCBoYXMKIC8vIG5vIHN1cHBvcnQgZm9yIGl0IGF0IGxlYXN0IGFzIHJlY2Vu
dCBhcyBGcm95byAoMi4yKS4KLSMgZGVmaW5lIEdURVNUX0hBU19TVERfV1NUUklORyBcCi0gICAg
KCEoR1RFU1RfT1NfTElOVVhfQU5EUk9JRCB8fCBHVEVTVF9PU19DWUdXSU4gfHwgR1RFU1RfT1Nf
U09MQVJJUykpCisjZGVmaW5lIEdURVNUX0hBU19TVERfV1NUUklORyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoIShHVEVTVF9PU19MSU5VWF9BTkRST0lEIHx8
IEdURVNUX09TX0NZR1dJTiB8fCBHVEVTVF9PU19TT0xBUklTIHx8IFwKKyAgICAgR1RFU1RfT1Nf
SEFJS1UgfHwgR1RFU1RfT1NfRVNQMzIgfHwgR1RFU1RfT1NfRVNQODI2NikpCiAKICNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKLSNpZm5kZWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RS
SU5HCi0vLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIDo6d3N0cmluZyBpcyBhdmFp
bGFibGUsIHNvIHdlIG5lZWQKLS8vIHRvIGZpZ3VyZSBpdCBvdXQuCi0jIGRlZmluZSBHVEVTVF9I
QVNfR0xPQkFMX1dTVFJJTkcgXAotICAgIChHVEVTVF9IQVNfU1REX1dTVFJJTkcgJiYgR1RFU1Rf
SEFTX0dMT0JBTF9TVFJJTkcpCi0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwot
CiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgUlRUSSBpcyBhdmFpbGFibGUuCiAjaWZuZGVmIEdURVNU
X0hBU19SVFRJCiAvLyBUaGUgdXNlciBkaWRuJ3QgdGVsbCB1cyB3aGV0aGVyIFJUVEkgaXMgZW5h
YmxlZCwgc28gd2UgbmVlZCB0bwpAQCAtNTcyLDE0ICs0NzUsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAKICMgaWZkZWYg
X01TQ19WRVIKIAotIyAgaWZkZWYgX0NQUFJUVEkgIC8vIE1TVkMgZGVmaW5lcyB0aGlzIG1hY3Jv
IGlmZiBSVFRJIGlzIGVuYWJsZWQuCisjaWZkZWYgX0NQUFJUVEkgIC8vIE1TVkMgZGVmaW5lcyB0
aGlzIG1hY3JvIGlmIGFuZCBvbmx5IGlmIFJUVEkgaXMgZW5hYmxlZC4KICMgICBkZWZpbmUgR1RF
U1RfSEFTX1JUVEkgMQogIyAgZWxzZQogIyAgIGRlZmluZSBHVEVTVF9IQVNfUlRUSSAwCiAjICBl
bmRpZgogCi0vLyBTdGFydGluZyB3aXRoIHZlcnNpb24gNC4zLjIsIGdjYyBkZWZpbmVzIF9fR1hY
X1JUVEkgaWZmIFJUVEkgaXMgZW5hYmxlZC4KLSMgZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAo
R1RFU1RfR0NDX1ZFUl8gPj0gNDAzMDIpCisvLyBTdGFydGluZyB3aXRoIHZlcnNpb24gNC4zLjIs
IGdjYyBkZWZpbmVzIF9fR1hYX1JUVEkgaWYgYW5kIG9ubHkgaWYgUlRUSSBpcworLy8gZW5hYmxl
ZC4KKyMgZWxpZiBkZWZpbmVkKF9fR05VQ19fKQogCiAjICBpZmRlZiBfX0dYWF9SVFRJCiAvLyBX
aGVuIGJ1aWxkaW5nIGFnYWluc3QgU1RMcG9ydCB3aXRoIHRoZSBBbmRyb2lkIE5ESyBhbmQgd2l0
aApAQCAtNjM1LDkgKzUzOSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJ
T04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKIC8vCiAvLyBUbyBkaXNhYmxlIHRocmVhZGluZyBz
dXBwb3J0IGluIEdvb2dsZSBUZXN0LCBhZGQgLURHVEVTVF9IQVNfUFRIUkVBRD0wCiAvLyB0byB5
b3VyIGNvbXBpbGVyIGZsYWdzLgotI2RlZmluZSBHVEVTVF9IQVNfUFRIUkVBRCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgKEdURVNUX09TX0xJTlVYIHx8
IEdURVNUX09TX01BQyB8fCBHVEVTVF9PU19IUFVYIHx8IEdURVNUX09TX1FOWCB8fCBcCi0gICBH
VEVTVF9PU19GUkVFQlNEIHx8IEdURVNUX09TX05BQ0wgfHwgR1RFU1RfT1NfTkVUQlNEIHx8IEdU
RVNUX09TX0ZVQ0hTSUEpCisjZGVmaW5lIEdURVNUX0hBU19QVEhSRUFEICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoR1RFU1RfT1NfTElO
VVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX0hQVVggfHwgR1RFU1RfT1NfUU5YIHx8ICAg
ICAgICAgIFwKKyAgIEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfTkFDTCB8fCBHVEVTVF9P
U19ORVRCU0QgfHwgR1RFU1RfT1NfRlVDSFNJQSB8fCBcCisgICBHVEVTVF9PU19EUkFHT05GTFkg
fHwgR1RFU1RfT1NfR05VX0tGUkVFQlNEIHx8IEdURVNUX09TX09QRU5CU0QgfHwgICAgICAgICAg
XAorICAgR1RFU1RfT1NfSEFJS1UpCiAjZW5kaWYgIC8vIEdURVNUX0hBU19QVEhSRUFECiAKICNp
ZiBHVEVTVF9IQVNfUFRIUkVBRApAQCAtNjQ5LDEzNiArNTU1LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjIGluY2x1ZGUg
PHRpbWUuaD4gIC8vIE5PTElOVAogI2VuZGlmCiAKLS8vIERldGVybWluZXMgaWYgaGFzaF9tYXAv
aGFzaF9zZXQgYXJlIGF2YWlsYWJsZS4KLS8vIE9ubHkgdXNlZCBmb3IgdGVzdGluZyBhZ2FpbnN0
IHRob3NlIGNvbnRhaW5lcnMuCi0jaWYgIWRlZmluZWQoR1RFU1RfSEFTX0hBU0hfTUFQXykKLSMg
aWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDwgMTkwMCkKLSMgIGRlZmluZSBHVEVT
VF9IQVNfSEFTSF9NQVBfIDEgIC8vIEluZGljYXRlcyB0aGF0IGhhc2hfbWFwIGlzIGF2YWlsYWJs
ZS4KLSMgIGRlZmluZSBHVEVTVF9IQVNfSEFTSF9TRVRfIDEgIC8vIEluZGljYXRlcyB0aGF0IGhh
c2hfc2V0IGlzIGF2YWlsYWJsZS4KLSMgZW5kaWYgIC8vIF9NU0NfVkVSCi0jZW5kaWYgIC8vICFk
ZWZpbmVkKEdURVNUX0hBU19IQVNIX01BUF8pCi0KLS8vIERldGVybWluZXMgd2hldGhlciBHb29n
bGUgVGVzdCBjYW4gdXNlIHRyMS90dXBsZS4gIFlvdSBjYW4gZGVmaW5lCi0vLyB0aGlzIG1hY3Jv
IHRvIDAgdG8gcHJldmVudCBHb29nbGUgVGVzdCBmcm9tIHVzaW5nIHR1cGxlIChhbnkKLS8vIGZl
YXR1cmUgZGVwZW5kaW5nIG9uIHR1cGxlIHdpdGggYmUgZGlzYWJsZWQgaW4gdGhpcyBtb2RlKS4K
LSNpZm5kZWYgR1RFU1RfSEFTX1RSMV9UVVBMRQotIyBpZiBHVEVTVF9PU19MSU5VWF9BTkRST0lE
ICYmIGRlZmluZWQoX1NUTFBPUlRfTUFKT1IpCi0vLyBTVExwb3J0LCBwcm92aWRlZCB3aXRoIHRo
ZSBBbmRyb2lkIE5ESywgaGFzIG5laXRoZXIgPHRyMS90dXBsZT4gb3IgPHR1cGxlPi4KLSMgIGRl
ZmluZSBHVEVTVF9IQVNfVFIxX1RVUExFIDAKLSMgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAo
X01TQ19WRVIgPj0gMTkxMCkKLS8vIFByZXZlbnQgYHdhcm5pbmcgQzQ5OTY6ICdzdGQ6OnRyMSc6
IHdhcm5pbmcgU1RMNDAwMjoKLS8vIFRoZSBub24tU3RhbmRhcmQgc3RkOjp0cjEgbmFtZXNwYWNl
IGFuZCBUUjEtb25seSBtYWNoaW5lcnkKLS8vIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFJF
TU9WRUQuYAotIyAgZGVmaW5lIEdURVNUX0hBU19UUjFfVFVQTEUgMAotIyBlbGlmIEdURVNUX0xB
TkdfQ1hYMTEgJiYgZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04pCi0vLyBsaWJjKysgZG9lc24ndCBz
dXBwb3J0IFRSMS4KLSMgIGRlZmluZSBHVEVTVF9IQVNfVFIxX1RVUExFIDAKLSMgZWxzZQotLy8g
VGhlIHVzZXIgZGlkbid0IHRlbGwgdXMgbm90IHRvIGRvIGl0LCBzbyB3ZSBhc3N1bWUgaXQncyBP
Sy4KLSMgIGRlZmluZSBHVEVTVF9IQVNfVFIxX1RVUExFIDEKLSMgZW5kaWYKLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX1RSMV9UVVBMRQotCi0vLyBEZXRlcm1pbmVzIHdoZXRoZXIgR29vZ2xlIFRlc3Qn
cyBvd24gdHIxIHR1cGxlIGltcGxlbWVudGF0aW9uCi0vLyBzaG91bGQgYmUgdXNlZC4KLSNpZm5k
ZWYgR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLS8vIFdlIHVzZSBvdXIgb3duIHR1cGxlIGltcGxl
bWVudGF0aW9uIG9uIFN5bWJpYW4uCi0jIGlmIEdURVNUX09TX1NZTUJJQU4KLSMgIGRlZmluZSBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRSAxCi0jIGVsc2UKLS8vIFRoZSB1c2VyIGRpZG4ndCB0ZWxs
IHVzLCBzbyB3ZSBuZWVkIHRvIGZpZ3VyZSBpdCBvdXQuCi0KLS8vIFdlIHVzZSBvdXIgb3duIFRS
MSB0dXBsZSBpZiB3ZSBhcmVuJ3Qgc3VyZSB0aGUgdXNlciBoYXMgYW4KLS8vIGltcGxlbWVudGF0
aW9uIG9mIGl0IGFscmVhZHkuICBBdCB0aGlzIHRpbWUsIGxpYnN0ZGMrKyA0LjAuMCsgYW5kCi0v
LyBNU1ZDIDIwMTAgYXJlIHRoZSBvbmx5IG1haW5zdHJlYW0gc3RhbmRhcmQgbGlicmFyaWVzIHRo
YXQgY29tZQotLy8gd2l0aCBhIFRSMSB0dXBsZSBpbXBsZW1lbnRhdGlvbi4gIE5WSURJQSdzIENV
REEgTlZDQyBjb21waWxlcgotLy8gcHJldGVuZHMgdG8gYmUgR0NDIGJ5IGRlZmluaW5nIF9fR05V
Q19fIGFuZCBmcmllbmRzLCBidXQgY2Fubm90Ci0vLyBjb21waWxlIEdDQydzIHR1cGxlIGltcGxl
bWVudGF0aW9uLiAgTVNWQyAyMDA4ICg5LjApIHByb3ZpZGVzIFRSMQotLy8gdHVwbGUgaW4gYSAz
MjMgTUIgRmVhdHVyZSBQYWNrIGRvd25sb2FkLCB3aGljaCB3ZSBjYW5ub3QgYXNzdW1lIHRoZQot
Ly8gdXNlciBoYXMuICBRTlgncyBRQ0MgY29tcGlsZXIgaXMgYSBtb2RpZmllZCBHQ0MgYnV0IGl0
IGRvZXNuJ3QKLS8vIHN1cHBvcnQgVFIxIHR1cGxlLiAgbGliYysrIG9ubHkgcHJvdmlkZXMgc3Rk
Ojp0dXBsZSwgaW4gQysrMTEgbW9kZSwKLS8vIGFuZCBpdCBjYW4gYmUgdXNlZCB3aXRoIHNvbWUg
Y29tcGlsZXJzIHRoYXQgZGVmaW5lIF9fR05VQ19fLgotIyBpZiAoZGVmaW5lZChfX0dOVUNfXykg
JiYgIWRlZmluZWQoX19DVURBQ0NfXykgJiYgKEdURVNUX0dDQ19WRVJfID49IDQwMDAwKSBcCi0g
ICAgICAmJiAhR1RFU1RfT1NfUU5YICYmICFkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikpIFwKLSAg
ICAgIHx8IChfTVNDX1ZFUiA+PSAxNjAwICYmIF9NU0NfVkVSIDwgMTkwMCkKLSMgIGRlZmluZSBH
VEVTVF9FTlZfSEFTX1RSMV9UVVBMRV8gMQotIyBlbmRpZgotCi0vLyBDKysxMSBzcGVjaWZpZXMg
dGhhdCA8dHVwbGU+IHByb3ZpZGVzIHN0ZDo6dHVwbGUuIFVzZSB0aGF0IGlmIGd0ZXN0IGlzIHVz
ZWQKLS8vIGluIEMrKzExIG1vZGUgYW5kIGxpYnN0ZGMrKyBpc24ndCB2ZXJ5IG9sZCAoYmluYXJp
ZXMgdGFyZ2V0aW5nIE9TIFggMTAuNgotLy8gY2FuIGJ1aWxkIHdpdGggY2xhbmcgYnV0IG5lZWQg
dG8gdXNlIGdjYzQuMidzIGxpYnN0ZGMrKykuCi0jIGlmIEdURVNUX0xBTkdfQ1hYMTEgJiYgKCFk
ZWZpbmVkKF9fR0xJQkNYWF9fKSB8fCBfX0dMSUJDWFhfXyA+IDIwMTEwMzI1KQotIyAgZGVmaW5l
IEdURVNUX0VOVl9IQVNfU1REX1RVUExFXyAxCi0jIGVuZGlmCi0KLSMgaWYgR1RFU1RfRU5WX0hB
U19UUjFfVFVQTEVfIHx8IEdURVNUX0VOVl9IQVNfU1REX1RVUExFXwotIyAgZGVmaW5lIEdURVNU
X1VTRV9PV05fVFIxX1RVUExFIDAKLSMgZWxzZQotIyAgZGVmaW5lIEdURVNUX1VTRV9PV05fVFIx
X1RVUExFIDEKLSMgZW5kaWYKLSMgZW5kaWYgIC8vIEdURVNUX09TX1NZTUJJQU4KLSNlbmRpZiAg
Ly8gR1RFU1RfVVNFX09XTl9UUjFfVFVQTEUKLQotLy8gVG8gYXZvaWQgY29uZGl0aW9uYWwgY29t
cGlsYXRpb24gd2UgbWFrZSBpdCBndGVzdC1wb3J0LmgncyByZXNwb25zaWJpbGl0eQotLy8gdG8g
I2luY2x1ZGUgdGhlIGhlYWRlciBpbXBsZW1lbnRpbmcgdHVwbGUuCi0jaWYgR1RFU1RfSEFTX1NU
RF9UVVBMRV8KLSMgaW5jbHVkZSA8dHVwbGU+ICAvLyBJV1lVIHByYWdtYTogZXhwb3J0Ci0jIGRl
ZmluZSBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfIDo6c3RkCi0jZW5kaWYgIC8vIEdURVNUX0hBU19T
VERfVFVQTEVfCi0KLS8vIFdlIGluY2x1ZGUgdHIxOjp0dXBsZSBldmVuIGlmIHN0ZDo6dHVwbGUg
aXMgYXZhaWxhYmxlIHRvIGRlZmluZSBwcmludGVycyBmb3IKLS8vIHRoZW0uCi0jaWYgR1RFU1Rf
SEFTX1RSMV9UVVBMRQotIyBpZm5kZWYgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXwotIyAgZGVmaW5l
IEdURVNUX1RVUExFX05BTUVTUEFDRV8gOjpzdGQ6OnRyMQotIyBlbmRpZiAgLy8gR1RFU1RfVFVQ
TEVfTkFNRVNQQUNFXwotCi0jIGlmIEdURVNUX1VTRV9PV05fVFIxX1RVUExFCi0jICBpbmNsdWRl
ICJndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oIiAgLy8gSVdZVSBwcmFnbWE6IGV4cG9ydCAg
Ly8gTk9MSU5UCi0jIGVsaWYgR1RFU1RfT1NfU1lNQklBTgotCi0vLyBPbiBTeW1iaWFuLCBCT09T
VF9IQVNfVFIxX1RVUExFIGNhdXNlcyBCb29zdCdzIFRSMSB0dXBsZSBsaWJyYXJ5IHRvCi0vLyB1
c2UgU1RMcG9ydCdzIHR1cGxlIGltcGxlbWVudGF0aW9uLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGRv
ZXNuJ3QKLS8vIHdvcmsgYXMgdGhlIGNvcHkgb2YgU1RMcG9ydCBkaXN0cmlidXRlZCB3aXRoIFN5
bWJpYW4gaXMgaW5jb21wbGV0ZS4KLS8vIEJ5IG1ha2luZyBzdXJlIEJPT1NUX0hBU19UUjFfVFVQ
TEUgaXMgdW5kZWZpbmVkLCB3ZSBmb3JjZSBCb29zdCB0bwotLy8gdXNlIGl0cyBvd24gdHVwbGUg
aW1wbGVtZW50YXRpb24uCi0jICBpZmRlZiBCT09TVF9IQVNfVFIxX1RVUExFCi0jICAgdW5kZWYg
Qk9PU1RfSEFTX1RSMV9UVVBMRQotIyAgZW5kaWYgIC8vIEJPT1NUX0hBU19UUjFfVFVQTEUKLQot
Ly8gVGhpcyBwcmV2ZW50cyA8Ym9vc3QvdHIxL2RldGFpbC9jb25maWcuaHBwPiwgd2hpY2ggZGVm
aW5lcwotLy8gQk9PU1RfSEFTX1RSMV9UVVBMRSwgZnJvbSBiZWluZyAjaW5jbHVkZWQgYnkgQm9v
c3QncyA8dHVwbGU+LgotIyAgZGVmaW5lIEJPT1NUX1RSMV9ERVRBSUxfQ09ORklHX0hQUF9JTkNM
VURFRAotIyAgaW5jbHVkZSA8dHVwbGU+ICAvLyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBOT0xJ
TlQKLQotIyBlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIChHVEVTVF9HQ0NfVkVSXyA+PSA0MDAw
MCkKLS8vIEdDQyA0LjArIGltcGxlbWVudHMgdHIxL3R1cGxlIGluIHRoZSA8dHIxL3R1cGxlPiBo
ZWFkZXIuICBUaGlzIGRvZXMKLS8vIG5vdCBjb25mb3JtIHRvIHRoZSBUUjEgc3BlYywgd2hpY2gg
cmVxdWlyZXMgdGhlIGhlYWRlciB0byBiZSA8dHVwbGU+LgotCi0jICBpZiAhR1RFU1RfSEFTX1JU
VEkgJiYgR1RFU1RfR0NDX1ZFUl8gPCA0MDMwMgotLy8gVW50aWwgdmVyc2lvbiA0LjMuMiwgZ2Nj
IGhhcyBhIGJ1ZyB0aGF0IGNhdXNlcyA8dHIxL2Z1bmN0aW9uYWw+LAotLy8gd2hpY2ggaXMgI2lu
Y2x1ZGVkIGJ5IDx0cjEvdHVwbGU+LCB0byBub3QgY29tcGlsZSB3aGVuIFJUVEkgaXMKLS8vIGRp
c2FibGVkLiAgX1RSMV9GVU5DVElPTkFMIGlzIHRoZSBoZWFkZXIgZ3VhcmQgZm9yCi0vLyA8dHIx
L2Z1bmN0aW9uYWw+LiAgSGVuY2UgdGhlIGZvbGxvd2luZyAjZGVmaW5lIGlzIHVzZWQgdG8gcHJl
dmVudAotLy8gPHRyMS9mdW5jdGlvbmFsPiBmcm9tIGJlaW5nIGluY2x1ZGVkLgotIyAgIGRlZmlu
ZSBfVFIxX0ZVTkNUSU9OQUwgMQotIyAgIGluY2x1ZGUgPHRyMS90dXBsZT4KLSMgICB1bmRlZiBf
VFIxX0ZVTkNUSU9OQUwgIC8vIEFsbG93cyB0aGUgdXNlciB0byAjaW5jbHVkZQotICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gPHRyMS9mdW5jdGlvbmFsPiBpZiB0aGV5IGNob29zZSB0by4KLSMg
IGVsc2UKLSMgICBpbmNsdWRlIDx0cjEvdHVwbGU+ICAvLyBOT0xJTlQKLSMgIGVuZGlmICAvLyAh
R1RFU1RfSEFTX1JUVEkgJiYgR1RFU1RfR0NDX1ZFUl8gPCA0MDMwMgotCi0vLyBWUyAyMDEwIG5v
dyBoYXMgdHIxIHN1cHBvcnQuCi0jIGVsaWYgX01TQ19WRVIgPj0gMTYwMAotIyAgaW5jbHVkZSA8
dHVwbGU+ICAvLyBJV1lVIHByYWdtYTogZXhwb3J0ICAvLyBOT0xJTlQKLQotIyBlbHNlICAvLyBH
VEVTVF9VU0VfT1dOX1RSMV9UVVBMRQotIyAgaW5jbHVkZSA8dHIxL3R1cGxlPiAgLy8gSVdZVSBw
cmFnbWE6IGV4cG9ydCAgLy8gTk9MSU5UCi0jIGVuZGlmICAvLyBHVEVTVF9VU0VfT1dOX1RSMV9U
VVBMRQotCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UUjFfVFVQTEUKLQogLy8gRGV0ZXJtaW5lcyB3
aGV0aGVyIGNsb25lKDIpIGlzIHN1cHBvcnRlZC4KIC8vIFVzdWFsbHkgaXQgd2lsbCBvbmx5IGJl
IGF2YWlsYWJsZSBvbiBMaW51eCwgZXhjbHVkaW5nCiAvLyBMaW51eCBvbiB0aGUgSXRhbml1bSBh
cmNoaXRlY3R1cmUuCkBAIC04MTIsMjQgKzU4OCwyMiBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NS
SVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICNpZm5kZWYgR1RFU1RfSEFT
X1NUUkVBTV9SRURJUkVDVElPTgogLy8gQnkgZGVmYXVsdCwgd2UgYXNzdW1lIHRoYXQgc3RyZWFt
IHJlZGlyZWN0aW9uIGlzIHN1cHBvcnRlZCBvbiBhbGwKIC8vIHBsYXRmb3JtcyBleGNlcHQga25v
d24gbW9iaWxlIG9uZXMuCi0jIGlmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09T
X1NZTUJJQU4gfHwgXAotICAgIEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgR1RFU1RfT1NfV0lO
RE9XU19SVAorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1Nf
UEhPTkUgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1NfUlQgfHwgR1RFU1RfT1NfRVNQODI2Ngog
IyAgZGVmaW5lIEdURVNUX0hBU19TVFJFQU1fUkVESVJFQ1RJT04gMAogIyBlbHNlCiAjICBkZWZp
bmUgR1RFU1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTiAxCi0jIGVuZGlmICAvLyAhR1RFU1RfT1Nf
V0lORE9XU19NT0JJTEUgJiYgIUdURVNUX09TX1NZTUJJQU4KKyMgZW5kaWYgIC8vICFHVEVTVF9P
U19XSU5ET1dTX01PQklMRQogI2VuZGlmICAvLyBHVEVTVF9IQVNfU1RSRUFNX1JFRElSRUNUSU9O
CiAKIC8vIERldGVybWluZXMgd2hldGhlciB0byBzdXBwb3J0IGRlYXRoIHRlc3RzLgotLy8gR29v
Z2xlIFRlc3QgZG9lcyBub3Qgc3VwcG9ydCBkZWF0aCB0ZXN0cyBmb3IgVkMgNy4xIGFuZCBlYXJs
aWVyIGFzCi0vLyBhYm9ydCgpIGluIGEgVkMgNy4xIGFwcGxpY2F0aW9uIGNvbXBpbGVkIGFzIEdV
SSBpbiBkZWJ1ZyBjb25maWcKIC8vIHBvcHMgdXAgYSBkaWFsb2cgd2luZG93IHRoYXQgY2Fubm90
IGJlIHN1cHByZXNzZWQgcHJvZ3JhbW1hdGljYWxseS4KLSNpZiAoR1RFU1RfT1NfTElOVVggfHwg
R1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX1NPTEFSSVMgfHwgICBcCi0gICAgIChHVEVTVF9P
U19NQUMgJiYgIUdURVNUX09TX0lPUykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAoR1RFU1RfT1NfV0lORE9XU19ERVNLVE9QICYmIF9NU0NfVkVSID49IDE0MDApIHx8ICAgICAg
ICAgIFwKLSAgICAgR1RFU1RfT1NfV0lORE9XU19NSU5HVyB8fCBHVEVTVF9PU19BSVggfHwgR1RF
U1RfT1NfSFBVWCB8fCBcCi0gICAgIEdURVNUX09TX09QRU5CU0QgfHwgR1RFU1RfT1NfUU5YIHx8
IEdURVNUX09TX0ZSRUVCU0QgfHwgXAotICAgICBHVEVTVF9PU19ORVRCU0QgfHwgR1RFU1RfT1Nf
RlVDSFNJQSkKKyNpZiAoR1RFU1RfT1NfTElOVVggfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNU
X09TX1NPTEFSSVMgfHwgICAgICAgICAgICAgXAorICAgICAoR1RFU1RfT1NfTUFDICYmICFHVEVT
VF9PU19JT1MpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIChH
VEVTVF9PU19XSU5ET1dTX0RFU0tUT1AgJiYgX01TQ19WRVIpIHx8IEdURVNUX09TX1dJTkRPV1Nf
TUlOR1cgfHwgIFwKKyAgICAgR1RFU1RfT1NfQUlYIHx8IEdURVNUX09TX0hQVVggfHwgR1RFU1Rf
T1NfT1BFTkJTRCB8fCBHVEVTVF9PU19RTlggfHwgXAorICAgICBHVEVTVF9PU19GUkVFQlNEIHx8
IEdURVNUX09TX05FVEJTRCB8fCBHVEVTVF9PU19GVUNIU0lBIHx8ICAgICAgICAgICBcCisgICAg
IEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgR1RFU1RfT1Nf
SEFJS1UpCiAjIGRlZmluZSBHVEVTVF9IQVNfREVBVEhfVEVTVCAxCiAjZW5kaWYKIApAQCAtODM3
LDI2ICs2MTEsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgX1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNU
X0NSSVRJQ0FMX1NFQ1RJT047CiAKIC8vIFR5cGVkIHRlc3RzIG5lZWQgPHR5cGVpbmZvPiBhbmQg
dmFyaWFkaWMgbWFjcm9zLCB3aGljaCBHQ0MsIFZDKysgOC4wLAogLy8gU3VuIFBybyBDQywgSUJN
IFZpc3VhbCBBZ2UsIGFuZCBIUCBhQ0Mgc3VwcG9ydC4KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSB8
fCAoX01TQ19WRVIgPj0gMTQwMCkgfHwgZGVmaW5lZChfX1NVTlBST19DQykgfHwgXAorI2lmIGRl
ZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TVU5QUk9f
Q0MpIHx8IFwKICAgICBkZWZpbmVkKF9fSUJNQ1BQX18pIHx8IGRlZmluZWQoX19IUF9hQ0MpCiAj
IGRlZmluZSBHVEVTVF9IQVNfVFlQRURfVEVTVCAxCiAjIGRlZmluZSBHVEVTVF9IQVNfVFlQRURf
VEVTVF9QIDEKICNlbmRpZgogCi0vLyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc3VwcG9ydCBDb21i
aW5lKCkuIFRoaXMgb25seSBtYWtlcyBzZW5zZSB3aGVuCi0vLyB2YWx1ZS1wYXJhbWV0ZXJpemVk
IHRlc3RzIGFyZSBlbmFibGVkLiAgVGhlIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QKLS8vIHdvcmsg
b24gU3VuIFN0dWRpbyBzaW5jZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgdGVtcGxhdGVkIGNvbnZl
cnNpb24KLS8vIG9wZXJhdG9ycy4KLSNpZiAoR1RFU1RfSEFTX1RSMV9UVVBMRSB8fCBHVEVTVF9I
QVNfU1REX1RVUExFXykgJiYgIWRlZmluZWQoX19TVU5QUk9fQ0MpCi0jIGRlZmluZSBHVEVTVF9I
QVNfQ09NQklORSAxCi0jZW5kaWYKLQogLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzeXN0ZW0g
Y29tcGlsZXIgdXNlcyBVVEYtMTYgZm9yIGVuY29kaW5nIHdpZGUgc3RyaW5ncy4KICNkZWZpbmUg
R1RFU1RfV0lERV9TVFJJTkdfVVNFU19VVEYxNl8gXAotICAgIChHVEVTVF9PU19XSU5ET1dTIHx8
IEdURVNUX09TX0NZR1dJTiB8fCBHVEVTVF9PU19TWU1CSUFOIHx8IEdURVNUX09TX0FJWCkKKyAg
KEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1NfQ1lHV0lOIHx8IEdURVNUX09TX0FJWCB8fCBH
VEVTVF9PU19PUzIpCiAKIC8vIERldGVybWluZXMgd2hldGhlciB0ZXN0IHJlc3VsdHMgY2FuIGJl
IHN0cmVhbWVkIHRvIGEgc29ja2V0LgotI2lmIEdURVNUX09TX0xJTlVYCisjaWYgR1RFU1RfT1Nf
TElOVVggfHwgR1RFU1RfT1NfR05VX0tGUkVFQlNEIHx8IEdURVNUX09TX0RSQUdPTkZMWSB8fCBc
CisgICAgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19ORVRCU0QgfHwgR1RFU1RfT1NfT1BF
TkJTRAogIyBkZWZpbmUgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXyAxCiAjZW5kaWYKIApAQCAt
ODk4LDEyICs2NjUsNiBAQCB0eXBlZGVmIHN0cnVjdCBfUlRMX0NSSVRJQ0FMX1NFQ1RJT04gR1RF
U1RfQ1JJVElDQUxfU0VDVElPTjsKICMgZGVmaW5lIEdURVNUX0FUVFJJQlVURV9VTlVTRURfCiAj
ZW5kaWYKIAotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSMgZGVmaW5lIEdURVNUX0NYWDExX0VRVUFM
U19ERUxFVEVfID0gZGVsZXRlCi0jZWxzZSAgLy8gR1RFU1RfTEFOR19DWFgxMQotIyBkZWZpbmUg
R1RFU1RfQ1hYMTFfRVFVQUxTX0RFTEVURV8KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQot
CiAvLyBVc2UgdGhpcyBhbm5vdGF0aW9uIGJlZm9yZSBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBw
cmludGYgZm9ybWF0IHN0cmluZy4KICNpZiAoZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChf
X2NsYW5nX18pKSAmJiAhZGVmaW5lZChDT01QSUxFUl9JQ0MpCiAjIGlmIGRlZmluZWQoX19NSU5H
V19QUklOVEZfRk9STUFUKQpAQCAtOTIyLDI3ICs2ODMsMzggQEAgdHlwZWRlZiBzdHJ1Y3QgX1JU
TF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjZW5kaWYKIAogCi0v
LyBBIG1hY3JvIHRvIGRpc2FsbG93IG9wZXJhdG9yPQorLy8gQSBtYWNybyB0byBkaXNhbGxvdyBj
b3B5IG9wZXJhdG9yPQogLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBpbiB0aGUgcHJpdmF0ZTogZGVj
bGFyYXRpb25zIGZvciBhIGNsYXNzLgogI2RlZmluZSBHVEVTVF9ESVNBTExPV19BU1NJR05fKHR5
cGUpIFwKLSAgdm9pZCBvcGVyYXRvcj0odHlwZSBjb25zdCAmKSBHVEVTVF9DWFgxMV9FUVVBTFNf
REVMRVRFXworICB0eXBlJiBvcGVyYXRvcj0odHlwZSBjb25zdCAmKSA9IGRlbGV0ZQogCiAvLyBB
IG1hY3JvIHRvIGRpc2FsbG93IGNvcHkgY29uc3RydWN0b3IgYW5kIG9wZXJhdG9yPQogLy8gVGhp
cyBzaG91bGQgYmUgdXNlZCBpbiB0aGUgcHJpdmF0ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNz
LgogI2RlZmluZSBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKHR5cGUpIFwKLSAgdHlw
ZSh0eXBlIGNvbnN0ICYpIEdURVNUX0NYWDExX0VRVUFMU19ERUxFVEVfOyBcCi0gIEdURVNUX0RJ
U0FMTE9XX0FTU0lHTl8odHlwZSkKKyAgdHlwZSh0eXBlIGNvbnN0JikgPSBkZWxldGU7ICAgICAg
ICAgICAgICAgICBcCisgIHR5cGUmIG9wZXJhdG9yPSh0eXBlIGNvbnN0JikgPSBkZWxldGUKKwor
Ly8gQSBtYWNybyB0byBkaXNhbGxvdyBtb3ZlIG9wZXJhdG9yPQorLy8gVGhpcyBzaG91bGQgYmUg
dXNlZCBpbiB0aGUgcHJpdmF0ZTogZGVjbGFyYXRpb25zIGZvciBhIGNsYXNzLgorI2RlZmluZSBH
VEVTVF9ESVNBTExPV19NT1ZFX0FTU0lHTl8odHlwZSkgXAorICB0eXBlJiBvcGVyYXRvcj0odHlw
ZSAmJikgbm9leGNlcHQgPSBkZWxldGUKKworLy8gQSBtYWNybyB0byBkaXNhbGxvdyBtb3ZlIGNv
bnN0cnVjdG9yIGFuZCBvcGVyYXRvcj0KKy8vIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIHBy
aXZhdGU6IGRlY2xhcmF0aW9ucyBmb3IgYSBjbGFzcy4KKyNkZWZpbmUgR1RFU1RfRElTQUxMT1df
TU9WRV9BTkRfQVNTSUdOXyh0eXBlKSBcCisgIHR5cGUodHlwZSYmKSBub2V4Y2VwdCA9IGRlbGV0
ZTsgICAgICAgICAgICAgXAorICB0eXBlJiBvcGVyYXRvcj0odHlwZSYmKSBub2V4Y2VwdCA9IGRl
bGV0ZQogCiAvLyBUZWxsIHRoZSBjb21waWxlciB0byB3YXJuIGFib3V0IHVudXNlZCByZXR1cm4g
dmFsdWVzIGZvciBmdW5jdGlvbnMgZGVjbGFyZWQKIC8vIHdpdGggdGhpcyBtYWNyby4gIFRoZSBt
YWNybyBzaG91bGQgYmUgdXNlZCBvbiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKIC8vIGZvbGxvd2lu
ZyB0aGUgYXJndW1lbnQgbGlzdDoKIC8vCiAvLyAgIFNwcm9ja2V0KiBBbGxvY2F0ZVNwcm9ja2V0
KCkgR1RFU1RfTVVTVF9VU0VfUkVTVUxUXzsKLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoR1RF
U1RfR0NDX1ZFUl8gPj0gMzA0MDApICYmICFkZWZpbmVkKENPTVBJTEVSX0lDQykKKyNpZiBkZWZp
bmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChDT01QSUxFUl9JQ0MpCiAjIGRlZmluZSBHVEVTVF9N
VVNUX1VTRV9SRVNVTFRfIF9fYXR0cmlidXRlX18gKCh3YXJuX3VudXNlZF9yZXN1bHQpKQogI2Vs
c2UKICMgZGVmaW5lIEdURVNUX01VU1RfVVNFX1JFU1VMVF8KLSNlbmRpZiAgLy8gX19HTlVDX18g
JiYgKEdURVNUX0dDQ19WRVJfID49IDMwNDAwKSAmJiAhQ09NUElMRVJfSUNDCisjZW5kaWYgIC8v
IF9fR05VQ19fICYmICFDT01QSUxFUl9JQ0MKIAogLy8gTVMgQysrIGNvbXBpbGVyIGVtaXRzIHdh
cm5pbmcgd2hlbiBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gaXMgY29tcGlsZSB0aW1lCiAvLyBj
b25zdGFudC4gSW4gc29tZSBjb250ZXh0cyB0aGlzIHdhcm5pbmcgaXMgZmFsc2UgcG9zaXRpdmUg
YW5kIG5lZWRzIHRvIGJlCkBAIC05NzEsMTMgKzc0MywxNyBAQCB0eXBlZGVmIHN0cnVjdCBfUlRM
X0NSSVRJQ0FMX1NFQ1RJT04gR1RFU1RfQ1JJVElDQUxfU0VDVElPTjsKICMgIGRlZmluZSBHVEVT
VF9IQVNfU0VIIDAKICMgZW5kaWYKIAotI2RlZmluZSBHVEVTVF9JU19USFJFQURTQUZFIFwKLSAg
ICAoR1RFU1RfSEFTX01VVEVYX0FORF9USFJFQURfTE9DQUxfIFwKLSAgICAgfHwgKEdURVNUX09T
X1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfUEhPTkUgJiYgIUdURVNUX09TX1dJTkRPV1Nf
UlQpIFwKLSAgICAgfHwgR1RFU1RfSEFTX1BUSFJFQUQpCi0KICNlbmRpZiAgLy8gR1RFU1RfSEFT
X1NFSAogCisjaWZuZGVmIEdURVNUX0lTX1RIUkVBRFNBRkUKKworI2RlZmluZSBHVEVTVF9JU19U
SFJFQURTQUZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgKEdURVNUX0hBU19NVVRFWF9BTkRfVEhSRUFEX0xPQ0FMXyB8fCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAoR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1Rf
T1NfV0lORE9XU19QSE9ORSAmJiAhR1RFU1RfT1NfV0lORE9XU19SVCkgfHwgXAorICAgR1RFU1Rf
SEFTX1BUSFJFQUQpCisKKyNlbmRpZiAgLy8gR1RFU1RfSVNfVEhSRUFEU0FGRQorCiAvLyBHVEVT
VF9BUElfIHF1YWxpZmllcyBhbGwgc3ltYm9scyB0aGF0IG11c3QgYmUgZXhwb3J0ZWQuIFRoZSBk
ZWZpbml0aW9ucyBiZWxvdwogLy8gYXJlIGd1YXJkZWQgYnkgI2lmbmRlZiB0byBnaXZlIGVtYmVk
ZGVycyBhIGNoYW5jZSB0byBkZWZpbmUgR1RFU1RfQVBJXyBpbgogLy8gZ3Rlc3QvaW50ZXJuYWwv
Y3VzdG9tL2d0ZXN0LXBvcnQuaApAQCAtMTA0NCw2ICs4MjAsMTggQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1JUTF9DUklUSUNBTF9TRUNUSU9OIEdURVNUX0NSSVRJQ0FMX1NFQ1RJT047CiAjIGRlZmluZSBH
VEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KICNlbmRpZiAgLy8gX19jbGFuZ19f
CiAKKy8vIEEgZnVuY3Rpb24gbGV2ZWwgYXR0cmlidXRlIHRvIGRpc2FibGUgSFdBZGRyZXNzU2Fu
aXRpemVyIGluc3RydW1lbnRhdGlvbi4KKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyMgaWYgX19o
YXNfZmVhdHVyZShod2FkZHJlc3Nfc2FuaXRpemVyKQorIyAgZGVmaW5lIEdURVNUX0FUVFJJQlVU
RV9OT19TQU5JVElaRV9IV0FERFJFU1NfIFwKKyAgICAgICBfX2F0dHJpYnV0ZV9fKChub19zYW5p
dGl6ZSgiaHdhZGRyZXNzIikpKQorIyBlbHNlCisjICBkZWZpbmUgR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX0hXQUREUkVTU18KKyMgZW5kaWYgIC8vIF9faGFzX2ZlYXR1cmUoaHdhZGRyZXNz
X3Nhbml0aXplcikKKyNlbHNlCisjIGRlZmluZSBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVf
SFdBRERSRVNTXworI2VuZGlmICAvLyBfX2NsYW5nX18KKwogLy8gQSBmdW5jdGlvbiBsZXZlbCBh
dHRyaWJ1dGUgdG8gZGlzYWJsZSBUaHJlYWRTYW5pdGl6ZXIgaW5zdHJ1bWVudGF0aW9uLgogI2lm
IGRlZmluZWQoX19jbGFuZ19fKQogIyBpZiBfX2hhc19mZWF0dXJlKHRocmVhZF9zYW5pdGl6ZXIp
CkBAIC0xMDYwLDE2ICs4NDgsMTMgQEAgbmFtZXNwYWNlIHRlc3RpbmcgewogCiBjbGFzcyBNZXNz
YWdlOwogCi0jaWYgZGVmaW5lZChHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfKQotLy8gSW1wb3J0IHR1
cGxlIGFuZCBmcmllbmRzIGludG8gdGhlIDo6dGVzdGluZyBuYW1lc3BhY2UuCi0vLyBJdCBpcyBw
YXJ0IG9mIG91ciBpbnRlcmZhY2UsIGhhdmluZyB0aGVtIGluIDo6dGVzdGluZyBhbGxvd3MgdXMg
dG8gY2hhbmdlCi0vLyB0aGVpciB0eXBlcyBhcyBuZWVkZWQuCi11c2luZyBHVEVTVF9UVVBMRV9O
QU1FU1BBQ0VfOjpnZXQ7Ci11c2luZyBHVEVTVF9UVVBMRV9OQU1FU1BBQ0VfOjptYWtlX3R1cGxl
OwotdXNpbmcgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXzo6dHVwbGU7Ci11c2luZyBHVEVTVF9UVVBM
RV9OQU1FU1BBQ0VfOjp0dXBsZV9zaXplOwotdXNpbmcgR1RFU1RfVFVQTEVfTkFNRVNQQUNFXzo6
dHVwbGVfZWxlbWVudDsKLSNlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9UVVBMRV9OQU1FU1BBQ0Vf
KQorLy8gTGVnYWN5IGltcG9ydHMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorLy8gTmV3
IGNvZGUgc2hvdWxkIHVzZSBzdGQ6OiBuYW1lcyBkaXJlY3RseS4KK3VzaW5nIHN0ZDo6Z2V0Owor
dXNpbmcgc3RkOjptYWtlX3R1cGxlOwordXNpbmcgc3RkOjp0dXBsZTsKK3VzaW5nIHN0ZDo6dHVw
bGVfZWxlbWVudDsKK3VzaW5nIHN0ZDo6dHVwbGVfc2l6ZTsKIAogbmFtZXNwYWNlIGludGVybmFs
IHsKIApAQCAtMTA3OCwxNTggKzg2MywyMSBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8gU2Vj
cmV0IG9iamVjdCwgd2hpY2ggaXMgd2hhdCB3ZSB3YW50LgogY2xhc3MgU2VjcmV0OwogCi0vLyBU
aGUgR1RFU1RfQ09NUElMRV9BU1NFUlRfIG1hY3JvIGNhbiBiZSB1c2VkIHRvIHZlcmlmeSB0aGF0
IGEgY29tcGlsZSB0aW1lCi0vLyBleHByZXNzaW9uIGlzIHRydWUuIEZvciBleGFtcGxlLCB5b3Ug
Y291bGQgdXNlIGl0IHRvIHZlcmlmeSB0aGUKLS8vIHNpemUgb2YgYSBzdGF0aWMgYXJyYXk6Cisv
LyBUaGUgR1RFU1RfQ09NUElMRV9BU1NFUlRfIGlzIGEgbGVnYWN5IG1hY3JvIHVzZWQgdG8gdmVy
aWZ5IHRoYXQgYSBjb21waWxlCisvLyB0aW1lIGV4cHJlc3Npb24gaXMgdHJ1ZSAoaW4gbmV3IGNv
ZGUsIHVzZSBzdGF0aWNfYXNzZXJ0IGluc3RlYWQpLiBGb3IKKy8vIGV4YW1wbGUsIHlvdSBjb3Vs
ZCB1c2UgaXQgdG8gdmVyaWZ5IHRoZSBzaXplIG9mIGEgc3RhdGljIGFycmF5OgogLy8KIC8vICAg
R1RFU1RfQ09NUElMRV9BU1NFUlRfKEdURVNUX0FSUkFZX1NJWkVfKG5hbWVzKSA9PSBOVU1fTkFN
RVMsCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19pbmNvcnJlY3Rfc2l6ZSk7CiAv
LwotLy8gb3IgdG8gbWFrZSBzdXJlIGEgc3RydWN0IGlzIHNtYWxsZXIgdGhhbiBhIGNlcnRhaW4g
c2l6ZToKLS8vCi0vLyAgIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhzaXplb2YoZm9vKSA8IDEyOCwg
Zm9vX3Rvb19sYXJnZSk7Ci0vLwotLy8gVGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgbWFjcm8g
aXMgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLiBJZgotLy8gdGhlIGV4cHJlc3Npb24gaXMgZmFs
c2UsIG1vc3QgY29tcGlsZXJzIHdpbGwgaXNzdWUgYSB3YXJuaW5nL2Vycm9yCi0vLyBjb250YWlu
aW5nIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZS4KLQotI2lmIEdURVNUX0xBTkdfQ1hYMTEKLSMg
ZGVmaW5lIEdURVNUX0NPTVBJTEVfQVNTRVJUXyhleHByLCBtc2cpIHN0YXRpY19hc3NlcnQoZXhw
ciwgI21zZykKLSNlbHNlICAvLyAhR1RFU1RfTEFOR19DWFgxMQotdGVtcGxhdGUgPGJvb2w+Ci0g
IHN0cnVjdCBDb21waWxlQXNzZXJ0IHsKLX07Ci0KLSMgZGVmaW5lIEdURVNUX0NPTVBJTEVfQVNT
RVJUXyhleHByLCBtc2cpIFwKLSAgdHlwZWRlZiA6OnRlc3Rpbmc6OmludGVybmFsOjpDb21waWxl
QXNzZXJ0PChzdGF0aWNfY2FzdDxib29sPihleHByKSk+IFwKLSAgICAgIG1zZ1tzdGF0aWNfY2Fz
dDxib29sPihleHByKSA/IDEgOiAtMV0gR1RFU1RfQVRUUklCVVRFX1VOVVNFRF8KLSNlbmRpZiAg
Ly8gIUdURVNUX0xBTkdfQ1hYMTEKLQotLy8gSW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiBHVEVT
VF9DT01QSUxFX0FTU0VSVF86Ci0vLwotLy8gKEluIEMrKzExLCB3ZSBzaW1wbHkgdXNlIHN0YXRp
Y19hc3NlcnQgaW5zdGVhZCBvZiB0aGUgZm9sbG93aW5nKQotLy8KLS8vIC0gR1RFU1RfQ09NUElM
RV9BU1NFUlRfIHdvcmtzIGJ5IGRlZmluaW5nIGFuIGFycmF5IHR5cGUgdGhhdCBoYXMgLTEKLS8v
ICAgZWxlbWVudHMgKGFuZCB0aHVzIGlzIGludmFsaWQpIHdoZW4gdGhlIGV4cHJlc3Npb24gaXMg
ZmFsc2UuCi0vLwotLy8gLSBUaGUgc2ltcGxlciBkZWZpbml0aW9uCi0vLwotLy8gICAgI2RlZmlu
ZSBHVEVTVF9DT01QSUxFX0FTU0VSVF8oZXhwciwgbXNnKSB0eXBlZGVmIGNoYXIgbXNnWyhleHBy
KSA/IDEgOiAtMV0KLS8vCi0vLyAgIGRvZXMgbm90IHdvcmssIGFzIGdjYyBzdXBwb3J0cyB2YXJp
YWJsZS1sZW5ndGggYXJyYXlzIHdob3NlIHNpemVzCi0vLyAgIGFyZSBkZXRlcm1pbmVkIGF0IHJ1
bi10aW1lICh0aGlzIGlzIGdjYydzIGV4dGVuc2lvbiBhbmQgbm90IHBhcnQKLS8vICAgb2YgdGhl
IEMrKyBzdGFuZGFyZCkuICBBcyBhIHJlc3VsdCwgZ2NjIGZhaWxzIHRvIHJlamVjdCB0aGUKLS8v
ICAgZm9sbG93aW5nIGNvZGUgd2l0aCB0aGUgc2ltcGxlIGRlZmluaXRpb246Ci0vLwotLy8gICAg
IGludCBmb287Ci0vLyAgICAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKGZvbywgbXNnKTsgLy8gbm90
IHN1cHBvc2VkIHRvIGNvbXBpbGUgYXMgZm9vIGlzCi0vLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gbm90IGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotLy8KLS8vIC0g
QnkgdXNpbmcgdGhlIHR5cGUgQ29tcGlsZUFzc2VydDwoYm9vbChleHByKSk+LCB3ZSBlbnN1cmVz
IHRoYXQKLS8vICAgZXhwciBpcyBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4gIChUZW1wbGF0ZSBh
cmd1bWVudHMgbXVzdCBiZQotLy8gICBkZXRlcm1pbmVkIGF0IGNvbXBpbGUtdGltZS4pCi0vLwot
Ly8gLSBUaGUgb3V0dGVyIHBhcmVudGhlc2VzIGluIENvbXBpbGVBc3NlcnQ8KGJvb2woZXhwcikp
PiBhcmUgbmVjZXNzYXJ5Ci0vLyAgIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIGdjYyAzLjQuNCBh
bmQgNC4wLjEuICBJZiB3ZSBoYWQgd3JpdHRlbgotLy8KLS8vICAgICBDb21waWxlQXNzZXJ0PGJv
b2woZXhwcik+Ci0vLwotLy8gICBpbnN0ZWFkLCB0aGVzZSBjb21waWxlcnMgd2lsbCByZWZ1c2Ug
dG8gY29tcGlsZQotLy8KLS8vICAgICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oNSA+IDAsIHNvbWVf
bWVzc2FnZSk7Ci0vLwotLy8gICAoVGhleSBzZWVtIHRvIHRoaW5rIHRoZSAiPiIgaW4gIjUgPiAw
IiBtYXJrcyB0aGUgZW5kIG9mIHRoZQotLy8gICB0ZW1wbGF0ZSBhcmd1bWVudCBsaXN0LikKLS8v
Ci0vLyAtIFRoZSBhcnJheSBzaXplIGlzIChib29sKGV4cHIpID8gMSA6IC0xKSwgaW5zdGVhZCBv
ZiBzaW1wbHkKLS8vCi0vLyAgICAgKChleHByKSA/IDEgOiAtMSkuCi0vLwotLy8gICBUaGlzIGlz
IHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGJ1ZyBpbiBNUyBWQyA3LjEsIHdoaWNoCi0vLyAgIGNh
dXNlcyAoKDAuMCkgPyAxIDogLTEpIHRvIGluY29ycmVjdGx5IGV2YWx1YXRlIHRvIDEuCi0KLS8v
IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlciBpcyB1c2VkIGJ5IFN0YXRpY0Fzc2VydFR5cGVFcSBk
ZWZpbmVkIGluIGd0ZXN0LmguCi0vLwotLy8gVGhpcyB0ZW1wbGF0ZSBpcyBkZWNsYXJlZCwgYnV0
IGludGVudGlvbmFsbHkgdW5kZWZpbmVkLgotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMj4KLXN0cnVjdCBTdGF0aWNBc3NlcnRUeXBlRXFIZWxwZXI7Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotc3RydWN0IFN0YXRpY0Fzc2VydFR5cGVFcUhlbHBlcjxULCBUPiB7Ci0gIGVudW0g
eyB2YWx1ZSA9IHRydWUgfTsKLX07Ci0KLS8vIFNhbWUgYXMgc3RkOjppc19zYW1lPD4uCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLXN0cnVjdCBJc1NhbWUgewotICBlbnVtIHsg
dmFsdWUgPSBmYWxzZSB9OwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IElzU2Ft
ZTxULCBUPiB7Ci0gIGVudW0geyB2YWx1ZSA9IHRydWUgfTsKLX07Ci0KLS8vIEV2YWx1YXRlcyB0
byB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluICdhcnJheScuCi0jZGVmaW5lIEdURVNUX0FSUkFZ
X1NJWkVfKGFycmF5KSAoc2l6ZW9mKGFycmF5KSAvIHNpemVvZihhcnJheVswXSkpCi0KLSNpZiBH
VEVTVF9IQVNfR0xPQkFMX1NUUklORwotdHlwZWRlZiA6OnN0cmluZyBzdHJpbmc7Ci0jZWxzZQot
dHlwZWRlZiA6OnN0ZDo6c3RyaW5nIHN0cmluZzsKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JB
TF9TVFJJTkcKLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotdHlwZWRlZiA6OndzdHJp
bmcgd3N0cmluZzsKLSNlbGlmIEdURVNUX0hBU19TVERfV1NUUklORwotdHlwZWRlZiA6OnN0ZDo6
d3N0cmluZyB3c3RyaW5nOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKKy8v
IFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIG1hY3JvIG11c3QgYmUgYSB2YWxpZCBDKysgaWRl
bnRpZmllci4gSWYgdGhlCisvLyBleHByZXNzaW9uIGlzIGZhbHNlLCBjb21waWxlciB3aWxsIGlz
c3VlIGFuIGVycm9yIGNvbnRhaW5pbmcgdGhpcyBpZGVudGlmaWVyLgorI2RlZmluZSBHVEVTVF9D
T01QSUxFX0FTU0VSVF8oZXhwciwgbXNnKSBzdGF0aWNfYXNzZXJ0KGV4cHIsICNtc2cpCiAKIC8v
IEEgaGVscGVyIGZvciBzdXBwcmVzc2luZyB3YXJuaW5ncyBvbiBjb25zdGFudCBjb25kaXRpb24u
ICBJdCBqdXN0CiAvLyByZXR1cm5zICdjb25kaXRpb24nLgogR1RFU1RfQVBJXyBib29sIElzVHJ1
ZShib29sIGNvbmRpdGlvbik7CiAKLS8vIERlZmluZXMgc2NvcGVkX3B0ci4KLQotLy8gVGhpcyBp
bXBsZW1lbnRhdGlvbiBvZiBzY29wZWRfcHRyIGlzIFBBUlRJQUwgLSBpdCBvbmx5IGNvbnRhaW5z
Ci0vLyBlbm91Z2ggc3R1ZmYgdG8gc2F0aXNmeSBHb29nbGUgVGVzdCdzIG5lZWQuCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIHNjb3BlZF9wdHIgewotIHB1YmxpYzoKLSAgdHlwZWRlZiBU
IGVsZW1lbnRfdHlwZTsKLQotICBleHBsaWNpdCBzY29wZWRfcHRyKFQqIHAgPSBOVUxMKSA6IHB0
cl8ocCkge30KLSAgfnNjb3BlZF9wdHIoKSB7IHJlc2V0KCk7IH0KLQotICBUJiBvcGVyYXRvcioo
KSBjb25zdCB7IHJldHVybiAqcHRyXzsgfQotICBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1
cm4gcHRyXzsgfQotICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBwdHJfOyB9Ci0KLSAgVCogcmVs
ZWFzZSgpIHsKLSAgICBUKiBjb25zdCBwdHIgPSBwdHJfOwotICAgIHB0cl8gPSBOVUxMOwotICAg
IHJldHVybiBwdHI7Ci0gIH0KLQotICB2b2lkIHJlc2V0KFQqIHAgPSBOVUxMKSB7Ci0gICAgaWYg
KHAgIT0gcHRyXykgewotICAgICAgaWYgKElzVHJ1ZShzaXplb2YoVCkgPiAwKSkgeyAgLy8gTWFr
ZXMgc3VyZSBUIGlzIGEgY29tcGxldGUgdHlwZS4KLSAgICAgICAgZGVsZXRlIHB0cl87Ci0gICAg
ICB9Ci0gICAgICBwdHJfID0gcDsKLSAgICB9Ci0gIH0KLQotICBmcmllbmQgdm9pZCBzd2FwKHNj
b3BlZF9wdHImIGEsIHNjb3BlZF9wdHImIGIpIHsKLSAgICB1c2luZyBzdGQ6OnN3YXA7Ci0gICAg
c3dhcChhLnB0cl8sIGIucHRyXyk7Ci0gIH0KLQotIHByaXZhdGU6Ci0gIFQqIHB0cl87Ci0KLSAg
R1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhzY29wZWRfcHRyKTsKLX07Ci0KIC8vIERl
ZmluZXMgUkUuCiAKICNpZiBHVEVTVF9VU0VTX1BDUkUKQEAgLTEyNDcsMjUgKzg5NSwxNiBAQCBj
bGFzcyBHVEVTVF9BUElfIFJFIHsKICAgLy8gQ29uc3RydWN0cyBhbiBSRSBmcm9tIGEgc3RyaW5n
LgogICBSRShjb25zdCA6OnN0ZDo6c3RyaW5nJiByZWdleCkgeyBJbml0KHJlZ2V4LmNfc3RyKCkp
OyB9ICAvLyBOT0xJTlQKIAotIyBpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotCi0gIFJFKGNv
bnN0IDo6c3RyaW5nJiByZWdleCkgeyBJbml0KHJlZ2V4LmNfc3RyKCkpOyB9ICAvLyBOT0xJTlQK
LQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQogICBSRShjb25zdCBjaGFy
KiByZWdleCkgeyBJbml0KHJlZ2V4KTsgfSAgLy8gTk9MSU5UCiAgIH5SRSgpOwogCiAgIC8vIFJl
dHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVnZXguCiAgIGNvbnN0IGNo
YXIqIHBhdHRlcm4oKSBjb25zdCB7IHJldHVybiBwYXR0ZXJuXzsgfQogCi0gIC8vIEZ1bGxNYXRj
aChzdHIsIHJlKSByZXR1cm5zIHRydWUgaWZmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVz
Ci0gIC8vIHRoZSBlbnRpcmUgc3RyLgotICAvLyBQYXJ0aWFsTWF0Y2goc3RyLCByZSkgcmV0dXJu
cyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUKKyAgLy8gRnVsbE1hdGNoKHN0ciwgcmUp
IHJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUKKyAgLy8g
bWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KKyAgLy8gUGFydGlhbE1hdGNoKHN0ciwgcmUpIHJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiByZWd1bGFyIGV4cHJlc3Npb24gcmUKICAgLy8gbWF0Y2hl
cyBhIHN1YnN0cmluZyBvZiBzdHIgKGluY2x1ZGluZyBzdHIgaXRzZWxmKS4KLSAgLy8KLSAgLy8g
RklYTUU6IG1ha2UgRnVsbE1hdGNoKCkgYW5kIFBhcnRpYWxNYXRjaCgpIHdvcmsKLSAgLy8gd2hl
biBzdHIgY29udGFpbnMgTlVMIGNoYXJhY3RlcnMuCiAgIHN0YXRpYyBib29sIEZ1bGxNYXRjaChj
b25zdCA6OnN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IFJFJiByZSkgewogICAgIHJldHVybiBGdWxs
TWF0Y2goc3RyLmNfc3RyKCksIHJlKTsKICAgfQpAQCAtMTI3MywyNiArOTEyLDExIEBAIGNsYXNz
IEdURVNUX0FQSV8gUkUgewogICAgIHJldHVybiBQYXJ0aWFsTWF0Y2goc3RyLmNfc3RyKCksIHJl
KTsKICAgfQogCi0jIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KLSAgc3RhdGljIGJvb2wg
RnVsbE1hdGNoKGNvbnN0IDo6c3RyaW5nJiBzdHIsIGNvbnN0IFJFJiByZSkgewotICAgIHJldHVy
biBGdWxsTWF0Y2goc3RyLmNfc3RyKCksIHJlKTsKLSAgfQotICBzdGF0aWMgYm9vbCBQYXJ0aWFs
TWF0Y2goY29uc3QgOjpzdHJpbmcmIHN0ciwgY29uc3QgUkUmIHJlKSB7Ci0gICAgcmV0dXJuIFBh
cnRpYWxNYXRjaChzdHIuY19zdHIoKSwgcmUpOwotICB9Ci0KLSMgZW5kaWYgIC8vIEdURVNUX0hB
U19HTE9CQUxfU1RSSU5HCi0KICAgc3RhdGljIGJvb2wgRnVsbE1hdGNoKGNvbnN0IGNoYXIqIHN0
ciwgY29uc3QgUkUmIHJlKTsKICAgc3RhdGljIGJvb2wgUGFydGlhbE1hdGNoKGNvbnN0IGNoYXIq
IHN0ciwgY29uc3QgUkUmIHJlKTsKIAogIHByaXZhdGU6CiAgIHZvaWQgSW5pdChjb25zdCBjaGFy
KiByZWdleCk7Ci0KLSAgLy8gV2UgdXNlIGEgY29uc3QgY2hhciogaW5zdGVhZCBvZiBhbiBzdGQ6
OnN0cmluZywgYXMgR29vZ2xlIFRlc3QgdXNlZCB0byBiZQotICAvLyB1c2VkIHdoZXJlIHN0ZDo6
c3RyaW5nIGlzIG5vdCBhdmFpbGFibGUuICBGSVhNRTogY2hhbmdlIHRvCi0gIC8vIHN0ZDo6c3Ry
aW5nLgogICBjb25zdCBjaGFyKiBwYXR0ZXJuXzsKICAgYm9vbCBpc192YWxpZF87CiAKQEAgLTEz
MDYsOCArOTMwLDYgQEAgY2xhc3MgR1RFU1RfQVBJXyBSRSB7CiAgIGNvbnN0IGNoYXIqIGZ1bGxf
cGF0dGVybl87ICAvLyBGb3IgRnVsbE1hdGNoKCk7CiAKICMgZW5kaWYKLQotICBHVEVTVF9ESVNB
TExPV19BU1NJR05fKFJFKTsKIH07CiAKICNlbmRpZiAgLy8gR1RFU1RfVVNFU19QQ1JFCkBAIC0x
MzYwLDcgKzk4Miw3IEBAIGNsYXNzIEdURVNUX0FQSV8gR1Rlc3RMb2cgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykuR2V0U3RyZWFtKCkKIAog
aW5saW5lIHZvaWQgTG9nVG9TdGRlcnIoKSB7fQotaW5saW5lIHZvaWQgRmx1c2hJbmZvTG9nKCkg
eyBmZmx1c2goTlVMTCk7IH0KK2lubGluZSB2b2lkIEZsdXNoSW5mb0xvZygpIHsgZmZsdXNoKG51
bGxwdHIpOyB9CiAKICNlbmRpZiAgLy8gIWRlZmluZWQoR1RFU1RfTE9HXykKIApAQCAtMTM5Nywx
OSArMTAxOSw2IEBAIGlubGluZSB2b2lkIEZsdXNoSW5mb0xvZygpIHsgZmZsdXNoKE5VTEwpOyB9
CiAgICAgR1RFU1RfTE9HXyhGQVRBTCkgPDwgI3Bvc2l4X2NhbGwgPDwgImZhaWxlZCB3aXRoIGVy
cm9yICIgXAogICAgICAgICAgICAgICAgICAgICAgIDw8IGd0ZXN0X2Vycm9yCiAKLS8vIEFkZHMg
cmVmZXJlbmNlIHRvIGEgdHlwZSBpZiBpdCBpcyBub3QgYSByZWZlcmVuY2UgdHlwZSwKLS8vIG90
aGVyd2lzZSBsZWF2ZXMgaXQgdW5jaGFuZ2VkLiAgVGhpcyBpcyB0aGUgc2FtZSBhcwotLy8gdHIx
OjphZGRfcmVmZXJlbmNlLCB3aGljaCBpcyBub3Qgd2lkZWx5IGF2YWlsYWJsZSB5ZXQuCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWZlcmVuY2UgeyB0eXBlZGVmIFQmIHR5cGU7
IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZmVyZW5j
ZTxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFw
cGVyIGFyb3VuZCBBZGRSZWZlcmVuY2UgdGhhdCB3b3JrcyB3aGVuIHRoZSBhcmd1bWVudCBUCi0v
LyBkZXBlbmRzIG9uIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi0jZGVmaW5lIEdURVNUX0FERF9SRUZF
UkVOQ0VfKFQpIFwKLSAgICB0eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpBZGRSZWZlcmVu
Y2U8VD46OnR5cGUKLQogLy8gVHJhbnNmb3JtcyAiVCIgaW50byAiY29uc3QgVCYiIGFjY29yZGlu
ZyB0byBzdGFuZGFyZCByZWZlcmVuY2UgY29sbGFwc2luZwogLy8gcnVsZXMgKHRoaXMgaXMgb25s
eSBuZWVkZWQgYXMgYSBiYWNrcG9ydCBmb3IgQysrOTggY29tcGlsZXJzIHRoYXQgZG8gbm90CiAv
LyBzdXBwb3J0IHJlZmVyZW5jZSBjb2xsYXBzaW5nKS4gU3BlY2lmaWNhbGx5LCBpdCB0cmFuc2Zv
cm1zOgpAQCAtMTQzMCwyOCArMTAzOSw2IEBAIHN0cnVjdCBDb25zdFJlZjxUJj4geyB0eXBlZGVm
IFQmIHR5cGU7IH07CiAjZGVmaW5lIEdURVNUX1JFRkVSRU5DRV9UT19DT05TVF8oVCkgXAogICB0
eXBlbmFtZSA6OnRlc3Rpbmc6OmludGVybmFsOjpDb25zdFJlZjxUPjo6dHlwZQogCi0jaWYgR1RF
U1RfSEFTX1NURF9NT1ZFXwotdXNpbmcgc3RkOjpmb3J3YXJkOwotdXNpbmcgc3RkOjptb3ZlOwot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBSdmFsdWVSZWYgewotICB0eXBlZGVmIFQm
JiB0eXBlOwotfTsKLSNlbHNlICAvLyBHVEVTVF9IQVNfU1REX01PVkVfCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KLWNvbnN0IFQmIG1vdmUoY29uc3QgVCYgdCkgewotICByZXR1cm4gdDsKLX0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPgotR1RFU1RfQUREX1JFRkVSRU5DRV8oVCkgZm9yd2FyZChHVEVT
VF9BRERfUkVGRVJFTkNFXyhUKSB0KSB7IHJldHVybiB0OyB9Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotc3RydWN0IFJ2YWx1ZVJlZiB7Ci0gIHR5cGVkZWYgY29uc3QgVCYgdHlwZTsKLX07Ci0j
ZW5kaWYgIC8vIEdURVNUX0hBU19TVERfTU9WRV8KLQogLy8gSU5URVJOQUwgSU1QTEVNRU5UQVRJ
T04gLSBETyBOT1QgVVNFIElOIFVTRVIgQ09ERS4KIC8vCiAvLyBVc2UgSW1wbGljaXRDYXN0XyBh
cyBhIHNhZmUgdmVyc2lvbiBvZiBzdGF0aWNfY2FzdCBmb3IgdXBjYXN0aW5nIGluCkBAIC0xNTA1
LDEzICsxMDkyLDEzIEBAIGlubGluZSBUbyBEb3duQ2FzdF8oRnJvbSogZikgeyAgLy8gc28gd2Ug
b25seSBhY2NlcHQgcG9pbnRlcnMKICAgR1RFU1RfSU5URU5USU9OQUxfQ09OU1RfQ09ORF9QVVNI
XygpCiAgIGlmIChmYWxzZSkgewogICBHVEVTVF9JTlRFTlRJT05BTF9DT05TVF9DT05EX1BPUF8o
KQotICAgIGNvbnN0IFRvIHRvID0gTlVMTDsKLSAgICA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBs
aWNpdENhc3RfPEZyb20qPih0byk7CisgIGNvbnN0IFRvIHRvID0gbnVsbHB0cjsKKyAgOjp0ZXN0
aW5nOjppbnRlcm5hbDo6SW1wbGljaXRDYXN0XzxGcm9tKj4odG8pOwogICB9CiAKICNpZiBHVEVT
VF9IQVNfUlRUSQogICAvLyBSVFRJOiBkZWJ1ZyBtb2RlIG9ubHkhCi0gIEdURVNUX0NIRUNLXyhm
ID09IE5VTEwgfHwgZHluYW1pY19jYXN0PFRvPihmKSAhPSBOVUxMKTsKKyAgR1RFU1RfQ0hFQ0tf
KGYgPT0gbnVsbHB0ciB8fCBkeW5hbWljX2Nhc3Q8VG8+KGYpICE9IG51bGxwdHIpOwogI2VuZGlm
CiAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZik7CiB9CkBAIC0xNTY1LDkgKzExNTIsNiBAQCBz
dGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0SW5qZWN0YWJsZUFyZ3ZzKCk7CiAvLyBEZXByZWNh
dGVkOiBwYXNzIHRoZSBhcmdzIHZlY3RvciBieSB2YWx1ZSBpbnN0ZWFkLgogdm9pZCBTZXRJbmpl
Y3RhYmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiBuZXdfYXJndnMpOwog
dm9pZCBTZXRJbmplY3RhYmxlQXJndnMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBu
ZXdfYXJndnMpOwotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFNldEluamVjdGFi
bGVBcmd2cyhjb25zdCBzdGQ6OnZlY3RvcjwgOjpzdHJpbmc+JiBuZXdfYXJndnMpOwotI2VuZGlm
ICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwogdm9pZCBDbGVhckluamVjdGFibGVBcmd2cygp
OwogCiAjZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9URVNUCkBAIC0xNTgzLDcgKzExNjcsNyBA
QCBpbmxpbmUgdm9pZCBTbGVlcE1pbGxpc2Vjb25kcyhpbnQgbikgewogICAgIDAsICAgICAgICAg
ICAgICAgICAgLy8gMCBzZWNvbmRzLgogICAgIG4gKiAxMDAwTCAqIDEwMDBMLCAgLy8gQW5kIG4g
bXMuCiAgIH07Ci0gIG5hbm9zbGVlcCgmdGltZSwgTlVMTCk7CisgIG5hbm9zbGVlcCgmdGltZSwg
bnVsbHB0cik7CiB9CiAjIGVuZGlmICAvLyBHVEVTVF9IQVNfUFRIUkVBRAogCkBAIC0xNjAxLDcg
KzExODUsNyBAQCBpbmxpbmUgdm9pZCBTbGVlcE1pbGxpc2Vjb25kcyhpbnQgbikgewogY2xhc3Mg
Tm90aWZpY2F0aW9uIHsKICBwdWJsaWM6CiAgIE5vdGlmaWNhdGlvbigpIDogbm90aWZpZWRfKGZh
bHNlKSB7Ci0gICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9pbml0
KCZtdXRleF8sIE5VTEwpKTsKKyAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFk
X211dGV4X2luaXQoJm11dGV4XywgbnVsbHB0cikpOwogICB9CiAgIH5Ob3RpZmljYXRpb24oKSB7
CiAgICAgcHRocmVhZF9tdXRleF9kZXN0cm95KCZtdXRleF8pOwpAQCAtMTY1OSw3ICsxMjQzLDgg
QEAgY2xhc3MgR1RFU1RfQVBJXyBBdXRvSGFuZGxlIHsKICAgdm9pZCBSZXNldChIYW5kbGUgaGFu
ZGxlKTsKIAogIHByaXZhdGU6Ci0gIC8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGhhbmRsZSBpcyBh
IHZhbGlkIGhhbmRsZSBvYmplY3QgdGhhdCBjYW4gYmUgY2xvc2VkLgorICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIGhhbmRsZSBpcyBhIHZhbGlkIGhhbmRsZSBvYmplY3QgdGhh
dCBjYW4gYmUKKyAgLy8gY2xvc2VkLgogICBib29sIElzQ2xvc2VhYmxlKCkgY29uc3Q7CiAKICAg
SGFuZGxlIGhhbmRsZV87CkBAIC0xNzEwLDcgKzEyOTUsNyBAQCBjbGFzcyBUaHJlYWRXaXRoUGFy
YW1CYXNlIHsKIC8vIHBhc3MgaW50byBwdGhyZWFkX2NyZWF0ZSgpLgogZXh0ZXJuICJDIiBpbmxp
bmUgdm9pZCogVGhyZWFkRnVuY1dpdGhDTGlua2FnZSh2b2lkKiB0aHJlYWQpIHsKICAgc3RhdGlj
X2Nhc3Q8VGhyZWFkV2l0aFBhcmFtQmFzZSo+KHRocmVhZCktPlJ1bigpOwotICByZXR1cm4gTlVM
TDsKKyAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIC8vIEhlbHBlciBjbGFzcyBmb3IgdGVzdGluZyBH
b29nbGUgVGVzdCdzIG11bHRpLXRocmVhZGluZyBjb25zdHJ1Y3RzLgpAQCAtMTczOSwyMCArMTMy
NCwxOSBAQCBjbGFzcyBUaHJlYWRXaXRoUGFyYW0gOiBwdWJsaWMgVGhyZWFkV2l0aFBhcmFtQmFz
ZSB7CiAgICAgLy8gVGhlIHRocmVhZCBjYW4gYmUgY3JlYXRlZCBvbmx5IGFmdGVyIGFsbCBmaWVs
ZHMgZXhjZXB0IHRocmVhZF8KICAgICAvLyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCiAgICAgR1RF
U1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18oCi0gICAgICAgIHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRf
LCAwLCAmVGhyZWFkRnVuY1dpdGhDTGlua2FnZSwgYmFzZSkpOworICAgICAgICBwdGhyZWFkX2Ny
ZWF0ZSgmdGhyZWFkXywgbnVsbHB0ciwgJlRocmVhZEZ1bmNXaXRoQ0xpbmthZ2UsIGJhc2UpKTsK
ICAgfQotICB+VGhyZWFkV2l0aFBhcmFtKCkgeyBKb2luKCk7IH0KKyAgflRocmVhZFdpdGhQYXJh
bSgpIG92ZXJyaWRlIHsgSm9pbigpOyB9CiAKICAgdm9pZCBKb2luKCkgewogICAgIGlmICghZmlu
aXNoZWRfKSB7Ci0gICAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX2pvaW4o
dGhyZWFkXywgMCkpOworICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9q
b2luKHRocmVhZF8sIG51bGxwdHIpKTsKICAgICAgIGZpbmlzaGVkXyA9IHRydWU7CiAgICAgfQog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIFJ1bigpIHsKLSAgICBpZiAodGhyZWFkX2Nhbl9zdGFydF8g
IT0gTlVMTCkKLSAgICAgIHRocmVhZF9jYW5fc3RhcnRfLT5XYWl0Rm9yTm90aWZpY2F0aW9uKCk7
CisgIHZvaWQgUnVuKCkgb3ZlcnJpZGUgeworICAgIGlmICh0aHJlYWRfY2FuX3N0YXJ0XyAhPSBu
dWxscHRyKSB0aHJlYWRfY2FuX3N0YXJ0Xy0+V2FpdEZvck5vdGlmaWNhdGlvbigpOwogICAgIGZ1
bmNfKHBhcmFtXyk7CiAgIH0KIApAQCAtMTc2Miw3ICsxMzQ2LDggQEAgY2xhc3MgVGhyZWFkV2l0
aFBhcmFtIDogcHVibGljIFRocmVhZFdpdGhQYXJhbUJhc2UgewogICAvLyBXaGVuIG5vbi1OVUxM
LCB1c2VkIHRvIGJsb2NrIGV4ZWN1dGlvbiB1bnRpbCB0aGUgY29udHJvbGxlciB0aHJlYWQKICAg
Ly8gbm90aWZpZXMuCiAgIE5vdGlmaWNhdGlvbiogY29uc3QgdGhyZWFkX2Nhbl9zdGFydF87Ci0g
IGJvb2wgZmluaXNoZWRfOyAgLy8gdHJ1ZSBpZmYgd2Uga25vdyB0aGF0IHRoZSB0aHJlYWQgZnVu
Y3Rpb24gaGFzIGZpbmlzaGVkLgorICBib29sIGZpbmlzaGVkXzsgIC8vIHRydWUgaWYgYW5kIG9u
bHkgaWYgd2Uga25vdyB0aGF0IHRoZSB0aHJlYWQgZnVuY3Rpb24gaGFzCisgICAgICAgICAgICAg
ICAgICAgLy8gZmluaXNoZWQuCiAgIHB0aHJlYWRfdCB0aHJlYWRfOyAgLy8gVGhlIG5hdGl2ZSB0
aHJlYWQgb2JqZWN0LgogCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oVGhyZWFk
V2l0aFBhcmFtKTsKQEAgLTIwMjcsNyArMTYxMiw3IEBAIGNsYXNzIFRocmVhZExvY2FsIDogcHVi
bGljIFRocmVhZExvY2FsQmFzZSB7CiAgIGNsYXNzIERlZmF1bHRWYWx1ZUhvbGRlckZhY3Rvcnkg
OiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBEZWZhdWx0VmFs
dWVIb2xkZXJGYWN0b3J5KCkge30KLSAgICB2aXJ0dWFsIFZhbHVlSG9sZGVyKiBNYWtlTmV3SG9s
ZGVyKCkgY29uc3QgeyByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKCk7IH0KKyAgICBWYWx1ZUhvbGRl
ciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG5ldyBWYWx1ZUhvbGRl
cigpOyB9CiAKICAgIHByaXZhdGU6CiAgICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO
XyhEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5KTsKQEAgLTIwMzYsNyArMTYyMSw3IEBAIGNsYXNz
IFRocmVhZExvY2FsIDogcHVibGljIFRocmVhZExvY2FsQmFzZSB7CiAgIGNsYXNzIEluc3RhbmNl
VmFsdWVIb2xkZXJGYWN0b3J5IDogcHVibGljIFZhbHVlSG9sZGVyRmFjdG9yeSB7CiAgICBwdWJs
aWM6CiAgICAgZXhwbGljaXQgSW5zdGFuY2VWYWx1ZUhvbGRlckZhY3RvcnkoY29uc3QgVCYgdmFs
dWUpIDogdmFsdWVfKHZhbHVlKSB7fQotICAgIHZpcnR1YWwgVmFsdWVIb2xkZXIqIE1ha2VOZXdI
b2xkZXIoKSBjb25zdCB7CisgICAgVmFsdWVIb2xkZXIqIE1ha2VOZXdIb2xkZXIoKSBjb25zdCBv
dmVycmlkZSB7CiAgICAgICByZXR1cm4gbmV3IFZhbHVlSG9sZGVyKHZhbHVlXyk7CiAgICAgfQog
CkBAIC0yMDQ2LDcgKzE2MzEsNyBAQCBjbGFzcyBUaHJlYWRMb2NhbCA6IHB1YmxpYyBUaHJlYWRM
b2NhbEJhc2UgewogICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oSW5zdGFuY2VW
YWx1ZUhvbGRlckZhY3RvcnkpOwogICB9OwogCi0gIHNjb3BlZF9wdHI8VmFsdWVIb2xkZXJGYWN0
b3J5PiBkZWZhdWx0X2ZhY3RvcnlfOworICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWVIb2xkZXJGYWN0
b3J5PiBkZWZhdWx0X2ZhY3RvcnlfOwogCiAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lH
Tl8oVGhyZWFkTG9jYWwpOwogfTsKQEAgLTIxMTUsNyArMTcwMCw3IEBAIGNsYXNzIE11dGV4QmFz
ZSB7CiBjbGFzcyBNdXRleCA6IHB1YmxpYyBNdXRleEJhc2UgewogIHB1YmxpYzoKICAgTXV0ZXgo
KSB7Ci0gICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18ocHRocmVhZF9tdXRleF9pbml0KCZt
dXRleF8sIE5VTEwpKTsKKyAgICBHVEVTVF9DSEVDS19QT1NJWF9TVUNDRVNTXyhwdGhyZWFkX211
dGV4X2luaXQoJm11dGV4XywgbnVsbHB0cikpOwogICAgIGhhc19vd25lcl8gPSBmYWxzZTsKICAg
fQogICB+TXV0ZXgoKSB7CkBAIC0yMjEzLDcgKzE3OTgsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFRo
cmVhZExvY2FsIHsKICAgVCogR2V0T3JDcmVhdGVWYWx1ZSgpIGNvbnN0IHsKICAgICBUaHJlYWRM
b2NhbFZhbHVlSG9sZGVyQmFzZSogY29uc3QgaG9sZGVyID0KICAgICAgICAgc3RhdGljX2Nhc3Q8
VGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2UqPihwdGhyZWFkX2dldHNwZWNpZmljKGtleV8pKTsK
LSAgICBpZiAoaG9sZGVyICE9IE5VTEwpIHsKKyAgICBpZiAoaG9sZGVyICE9IG51bGxwdHIpIHsK
ICAgICAgIHJldHVybiBDaGVja2VkRG93bmNhc3RUb0FjdHVhbFR5cGU8VmFsdWVIb2xkZXI+KGhv
bGRlciktPnBvaW50ZXIoKTsKICAgICB9CiAKQEAgLTIyMzYsNyArMTgyMSw3IEBAIGNsYXNzIEdU
RVNUX0FQSV8gVGhyZWFkTG9jYWwgewogICBjbGFzcyBEZWZhdWx0VmFsdWVIb2xkZXJGYWN0b3J5
IDogcHVibGljIFZhbHVlSG9sZGVyRmFjdG9yeSB7CiAgICBwdWJsaWM6CiAgICAgRGVmYXVsdFZh
bHVlSG9sZGVyRmFjdG9yeSgpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFrZU5ld0hv
bGRlcigpIGNvbnN0IHsgcmV0dXJuIG5ldyBWYWx1ZUhvbGRlcigpOyB9CisgICAgVmFsdWVIb2xk
ZXIqIE1ha2VOZXdIb2xkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBuZXcgVmFsdWVIb2xk
ZXIoKTsgfQogCiAgICBwcml2YXRlOgogICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lH
Tl8oRGVmYXVsdFZhbHVlSG9sZGVyRmFjdG9yeSk7CkBAIC0yMjQ1LDcgKzE4MzAsNyBAQCBjbGFz
cyBHVEVTVF9BUElfIFRocmVhZExvY2FsIHsKICAgY2xhc3MgSW5zdGFuY2VWYWx1ZUhvbGRlckZh
Y3RvcnkgOiBwdWJsaWMgVmFsdWVIb2xkZXJGYWN0b3J5IHsKICAgIHB1YmxpYzoKICAgICBleHBs
aWNpdCBJbnN0YW5jZVZhbHVlSG9sZGVyRmFjdG9yeShjb25zdCBUJiB2YWx1ZSkgOiB2YWx1ZV8o
dmFsdWUpIHt9Ci0gICAgdmlydHVhbCBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0
IHsKKyAgICBWYWx1ZUhvbGRlciogTWFrZU5ld0hvbGRlcigpIGNvbnN0IG92ZXJyaWRlIHsKICAg
ICAgIHJldHVybiBuZXcgVmFsdWVIb2xkZXIodmFsdWVfKTsKICAgICB9CiAKQEAgLTIyNTcsNyAr
MTg0Miw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVGhyZWFkTG9jYWwgewogCiAgIC8vIEEga2V5IHB0
aHJlYWRzIHVzZXMgZm9yIGxvb2tpbmcgdXAgcGVyLXRocmVhZCB2YWx1ZXMuCiAgIGNvbnN0IHB0
aHJlYWRfa2V5X3Qga2V5XzsKLSAgc2NvcGVkX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+IGRlZmF1
bHRfZmFjdG9yeV87CisgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZUhvbGRlckZhY3Rvcnk+IGRlZmF1
bHRfZmFjdG9yeV87CiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhUaHJlYWRM
b2NhbCk7CiB9OwpAQCAtMjMxNSw3NyArMTkwMCwxMiBAQCBjbGFzcyBHVEVTVF9BUElfIFRocmVh
ZExvY2FsIHsKIC8vIHdlIGNhbm5vdCBkZXRlY3QgaXQuCiBHVEVTVF9BUElfIHNpemVfdCBHZXRU
aHJlYWRDb3VudCgpOwogCi0vLyBQYXNzaW5nIG5vbi1QT0QgY2xhc3NlcyB0aHJvdWdoIGVsbGlw
c2lzICguLi4pIGNyYXNoZXMgdGhlIEFSTQotLy8gY29tcGlsZXIgYW5kIGdlbmVyYXRlcyBhIHdh
cm5pbmcgaW4gU3VuIFN0dWRpbyBiZWZvcmUgMTJ1NC4gVGhlIE5va2lhIFN5bWJpYW4KLS8vIGFu
ZCB0aGUgSUJNIFhMIEMvQysrIGNvbXBpbGVyIHRyeSB0byBpbnN0YW50aWF0ZSBhIGNvcHkgY29u
c3RydWN0b3IKLS8vIGZvciBvYmplY3RzIHBhc3NlZCB0aHJvdWdoIGVsbGlwc2lzICguLi4pLCBm
YWlsaW5nIGZvciB1bmNvcHlhYmxlCi0vLyBvYmplY3RzLiAgV2UgZGVmaW5lIHRoaXMgdG8gZW5z
dXJlIHRoYXQgb25seSBQT0QgaXMgcGFzc2VkIHRocm91Z2gKLS8vIGVsbGlwc2lzIG9uIHRoZXNl
IHN5c3RlbXMuCi0jaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSB8fCBkZWZpbmVkKF9fSUJNQ1BQ
X18pIHx8IFwKLSAgICAgKGRlZmluZWQoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDIDwgMHg1
MTMwKQotLy8gV2UgbG9zZSBzdXBwb3J0IGZvciBOVUxMIGRldGVjdGlvbiB3aGVyZSB0aGUgY29t
cGlsZXIgZG9lc24ndCBsaWtlCi0vLyBwYXNzaW5nIG5vbi1QT0QgY2xhc3NlcyB0aHJvdWdoIGVs
bGlwc2lzICguLi4pLgotIyBkZWZpbmUgR1RFU1RfRUxMSVBTSVNfTkVFRFNfUE9EXyAxCi0jZWxz
ZQotIyBkZWZpbmUgR1RFU1RfQ0FOX0NPTVBBUkVfTlVMTCAxCi0jZW5kaWYKLQotLy8gVGhlIE5v
a2lhIFN5bWJpYW4gYW5kIElCTSBYTCBDL0MrKyBjb21waWxlcnMgY2Fubm90IGRlY2lkZSBiZXR3
ZWVuCi0vLyBjb25zdCBUJiBhbmQgY29uc3QgVCogaW4gYSBmdW5jdGlvbiB0ZW1wbGF0ZS4gIFRo
ZXNlIGNvbXBpbGVycwotLy8gX2Nhbl8gZGVjaWRlIGJldHdlZW4gY2xhc3MgdGVtcGxhdGUgc3Bl
Y2lhbGl6YXRpb25zIGZvciBUIGFuZCBUKiwKLS8vIHNvIGEgdHIxOjp0eXBlX3RyYWl0cy1saWtl
IGlzX3BvaW50ZXIgd29ya3MuCi0jaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSB8fCBkZWZpbmVk
KF9fSUJNQ1BQX18pCi0jIGRlZmluZSBHVEVTVF9ORUVEU19JU19QT0lOVEVSXyAxCi0jZW5kaWYK
LQotdGVtcGxhdGUgPGJvb2wgYm9vbF92YWx1ZT4KLXN0cnVjdCBib29sX2NvbnN0YW50IHsKLSAg
dHlwZWRlZiBib29sX2NvbnN0YW50PGJvb2xfdmFsdWU+IHR5cGU7Ci0gIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gYm9vbF92YWx1ZTsKLX07Ci10ZW1wbGF0ZSA8Ym9vbCBib29sX3ZhbHVlPiBj
b25zdCBib29sIGJvb2xfY29uc3RhbnQ8Ym9vbF92YWx1ZT46OnZhbHVlOwotCi10eXBlZGVmIGJv
b2xfY29uc3RhbnQ8ZmFsc2U+IGZhbHNlX3R5cGU7Ci10eXBlZGVmIGJvb2xfY29uc3RhbnQ8dHJ1
ZT4gdHJ1ZV90eXBlOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KLXN0cnVj
dCBpc19zYW1lIDogcHVibGljIGZhbHNlX3R5cGUge307Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
Pgotc3RydWN0IGlzX3NhbWU8VCwgVD4gOiBwdWJsaWMgdHJ1ZV90eXBlIHt9OwotCi0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IGlzX3BvaW50ZXIgOiBwdWJsaWMgZmFsc2VfdHlwZSB7
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgaXNfcG9pbnRlcjxUKj4gOiBwdWJs
aWMgdHJ1ZV90eXBlIHt9OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcmF0b3I+Ci1zdHJ1Y3Qg
SXRlcmF0b3JUcmFpdHMgewotICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yOjp2YWx1ZV90eXBl
IHZhbHVlX3R5cGU7Ci19OwotCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEl0ZXJh
dG9yVHJhaXRzPFQqPiB7Ci0gIHR5cGVkZWYgVCB2YWx1ZV90eXBlOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgSXRlcmF0b3JUcmFpdHM8Y29uc3QgVCo+IHsKLSAgdHlwZWRl
ZiBUIHZhbHVlX3R5cGU7Ci19OwotCiAjaWYgR1RFU1RfT1NfV0lORE9XUwogIyBkZWZpbmUgR1RF
U1RfUEFUSF9TRVBfICJcXCIKICMgZGVmaW5lIEdURVNUX0hBU19BTFRfUEFUSF9TRVBfIDEKLS8v
IFRoZSBiaWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUgdGhlIGNvbXBpbGVyIHN1cHBvcnRzLgot
dHlwZWRlZiBfX2ludDY0IEJpZ2dlc3RJbnQ7CiAjZWxzZQogIyBkZWZpbmUgR1RFU1RfUEFUSF9T
RVBfICIvIgogIyBkZWZpbmUgR1RFU1RfSEFTX0FMVF9QQVRIX1NFUF8gMAotdHlwZWRlZiBsb25n
IGxvbmcgQmlnZ2VzdEludDsgIC8vIE5PTElOVAogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dT
CiAKIC8vIFV0aWxpdGllcyBmb3IgY2hhci4KQEAgLTI0MTYsNiArMTkzNiwxOSBAQCBpbmxpbmUg
Ym9vbCBJc1VwcGVyKGNoYXIgY2gpIHsKIGlubGluZSBib29sIElzWERpZ2l0KGNoYXIgY2gpIHsK
ICAgcmV0dXJuIGlzeGRpZ2l0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKSkgIT0gMDsK
IH0KKyNpZmRlZiBfX2NwcF9jaGFyOF90CitpbmxpbmUgYm9vbCBJc1hEaWdpdChjaGFyOF90IGNo
KSB7CisgIHJldHVybiBpc3hkaWdpdChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjaCkpICE9
IDA7Cit9CisjZW5kaWYKK2lubGluZSBib29sIElzWERpZ2l0KGNoYXIxNl90IGNoKSB7CisgIGNv
bnN0IHVuc2lnbmVkIGNoYXIgbG93X2J5dGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihj
aCk7CisgIHJldHVybiBjaCA9PSBsb3dfYnl0ZSAmJiBpc3hkaWdpdChsb3dfYnl0ZSkgIT0gMDsK
K30KK2lubGluZSBib29sIElzWERpZ2l0KGNoYXIzMl90IGNoKSB7CisgIGNvbnN0IHVuc2lnbmVk
IGNoYXIgbG93X2J5dGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjaCk7CisgIHJldHVy
biBjaCA9PSBsb3dfYnl0ZSAmJiBpc3hkaWdpdChsb3dfYnl0ZSkgIT0gMDsKK30KIGlubGluZSBi
b29sIElzWERpZ2l0KHdjaGFyX3QgY2gpIHsKICAgY29uc3QgdW5zaWduZWQgY2hhciBsb3dfYnl0
ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsKICAgcmV0dXJuIGNoID09IGxvd19i
eXRlICYmIGlzeGRpZ2l0KGxvd19ieXRlKSAhPSAwOwpAQCAtMjQ1MCwxNiArMTk4MywxNiBAQCBu
YW1lc3BhY2UgcG9zaXggewogdHlwZWRlZiBzdHJ1Y3QgX3N0YXQgU3RhdFN0cnVjdDsKIAogIyBp
ZmRlZiBfX0JPUkxBTkRDX18KLWlubGluZSBpbnQgSXNBVFRZKGludCBmZCkgeyByZXR1cm4gaXNh
dHR5KGZkKTsgfQoraW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShm
ZCk7IH0KIGlubGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFyKiBzMSwgY29uc3QgY2hhciog
czIpIHsKICAgcmV0dXJuIHN0cmljbXAoczEsIHMyKTsKIH0KIGlubGluZSBjaGFyKiBTdHJEdXAo
Y29uc3QgY2hhciogc3JjKSB7IHJldHVybiBzdHJkdXAoc3JjKTsgfQogIyBlbHNlICAvLyAhX19C
T1JMQU5EQ19fCiAjICBpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQotaW5saW5lIGludCBJc0FU
VFkoaW50IC8qIGZkICovKSB7IHJldHVybiAwOyB9CitpbmxpbmUgaW50IERvSXNBVFRZKGludCAv
KiBmZCAqLykgeyByZXR1cm4gMDsgfQogIyAgZWxzZQotaW5saW5lIGludCBJc0FUVFkoaW50IGZk
KSB7IHJldHVybiBfaXNhdHR5KGZkKTsgfQoraW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsg
cmV0dXJuIF9pc2F0dHkoZmQpOyB9CiAjICBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJ
TEUKIGlubGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFyKiBzMSwgY29uc3QgY2hhciogczIp
IHsKICAgcmV0dXJuIF9zdHJpY21wKHMxLCBzMik7CkBAIC0yNDgwLDEyICsyMDEzLDI4IEBAIGlu
bGluZSBib29sIElzRGlyKGNvbnN0IFN0YXRTdHJ1Y3QmIHN0KSB7CiB9CiAjIGVuZGlmICAvLyBH
VEVTVF9PU19XSU5ET1dTX01PQklMRQogCisjZWxpZiBHVEVTVF9PU19FU1A4MjY2Cit0eXBlZGVm
IHN0cnVjdCBzdGF0IFN0YXRTdHJ1Y3Q7CisKK2lubGluZSBpbnQgRmlsZU5vKEZJTEUqIGZpbGUp
IHsgcmV0dXJuIGZpbGVubyhmaWxlKTsgfQoraW5saW5lIGludCBEb0lzQVRUWShpbnQgZmQpIHsg
cmV0dXJuIGlzYXR0eShmZCk7IH0KK2lubGluZSBpbnQgU3RhdChjb25zdCBjaGFyKiBwYXRoLCBT
dGF0U3RydWN0KiBidWYpIHsKKyAgLy8gc3RhdCBmdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQgb24g
RVNQODI2NgorICByZXR1cm4gMDsKK30KK2lubGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFy
KiBzMSwgY29uc3QgY2hhciogczIpIHsKKyAgcmV0dXJuIHN0cmNhc2VjbXAoczEsIHMyKTsKK30K
K2lubGluZSBjaGFyKiBTdHJEdXAoY29uc3QgY2hhciogc3JjKSB7IHJldHVybiBzdHJkdXAoc3Jj
KTsgfQoraW5saW5lIGludCBSbURpcihjb25zdCBjaGFyKiBkaXIpIHsgcmV0dXJuIHJtZGlyKGRp
cik7IH0KK2lubGluZSBib29sIElzRGlyKGNvbnN0IFN0YXRTdHJ1Y3QmIHN0KSB7IHJldHVybiBT
X0lTRElSKHN0LnN0X21vZGUpOyB9CisKICNlbHNlCiAKIHR5cGVkZWYgc3RydWN0IHN0YXQgU3Rh
dFN0cnVjdDsKIAogaW5saW5lIGludCBGaWxlTm8oRklMRSogZmlsZSkgeyByZXR1cm4gZmlsZW5v
KGZpbGUpOyB9Ci1pbmxpbmUgaW50IElzQVRUWShpbnQgZmQpIHsgcmV0dXJuIGlzYXR0eShmZCk7
IH0KK2lubGluZSBpbnQgRG9Jc0FUVFkoaW50IGZkKSB7IHJldHVybiBpc2F0dHkoZmQpOyB9CiBp
bmxpbmUgaW50IFN0YXQoY29uc3QgY2hhciogcGF0aCwgU3RhdFN0cnVjdCogYnVmKSB7IHJldHVy
biBzdGF0KHBhdGgsIGJ1Zik7IH0KIGlubGluZSBpbnQgU3RyQ2FzZUNtcChjb25zdCBjaGFyKiBz
MSwgY29uc3QgY2hhciogczIpIHsKICAgcmV0dXJuIHN0cmNhc2VjbXAoczEsIHMyKTsKQEAgLTI0
OTYsMTQgKzIwNDUsMjEgQEAgaW5saW5lIGJvb2wgSXNEaXIoY29uc3QgU3RhdFN0cnVjdCYgc3Qp
IHsgcmV0dXJuIFNfSVNESVIoc3Quc3RfbW9kZSk7IH0KIAogI2VuZGlmICAvLyBHVEVTVF9PU19X
SU5ET1dTCiAKK2lubGluZSBpbnQgSXNBVFRZKGludCBmZCkgeworICAvLyBEb0lzQVRUWSBtaWdo
dCBjaGFuZ2UgZXJybm8gKGZvciBleGFtcGxlIEVOT1RUWSBpbiBjYXNlIHlvdSByZWRpcmVjdCBz
dGRvdXQKKyAgLy8gdG8gYSBmaWxlIG9uIExpbnV4KSwgd2hpY2ggaXMgdW5leHBlY3RlZCwgc28g
c2F2ZSB0aGUgcHJldmlvdXMgdmFsdWUsIGFuZAorICAvLyByZXN0b3JlIGl0IGFmdGVyIHRoZSBj
YWxsLgorICBpbnQgc2F2ZWRFcnJubyA9IGVycm5vOworICBpbnQgaXNBdHR5VmFsdWUgPSBEb0lz
QVRUWShmZCk7CisgIGVycm5vID0gc2F2ZWRFcnJubzsKKworICByZXR1cm4gaXNBdHR5VmFsdWU7
Cit9CisKIC8vIEZ1bmN0aW9ucyBkZXByZWNhdGVkIGJ5IE1TVkMgOC4wLgogCiBHVEVTVF9ESVNB
QkxFX01TQ19ERVBSRUNBVEVEX1BVU0hfKCkKIAotaW5saW5lIGNvbnN0IGNoYXIqIFN0ck5DcHko
Y2hhciogZGVzdCwgY29uc3QgY2hhciogc3JjLCBzaXplX3QgbikgewotICByZXR1cm4gc3RybmNw
eShkZXN0LCBzcmMsIG4pOwotfQotCiAvLyBDaERpcigpLCBGUmVvcGVuKCksIEZET3BlbigpLCBS
ZWFkKCksIFdyaXRlKCksIENsb3NlKCksIGFuZAogLy8gU3RyRXJyb3IoKSBhcmVuJ3QgbmVlZGVk
IG9uIFdpbmRvd3MgQ0UgYXQgdGhpcyB0aW1lIGFuZCB0aHVzIG5vdAogLy8gZGVmaW5lZCB0aGVy
ZS4KQEAgLTI1MTIsNyArMjA2OCwxNSBAQCBpbmxpbmUgY29uc3QgY2hhciogU3RyTkNweShjaGFy
KiBkZXN0LCBjb25zdCBjaGFyKiBzcmMsIHNpemVfdCBuKSB7CiBpbmxpbmUgaW50IENoRGlyKGNv
bnN0IGNoYXIqIGRpcikgeyByZXR1cm4gY2hkaXIoZGlyKTsgfQogI2VuZGlmCiBpbmxpbmUgRklM
RSogRk9wZW4oY29uc3QgY2hhciogcGF0aCwgY29uc3QgY2hhciogbW9kZSkgeworI2lmIEdURVNU
X09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTUlOR1cKKyAgc3RydWN0IHdjaGFyX2Nv
ZGVjdnQgOiBwdWJsaWMgc3RkOjpjb2RlY3Z0PHdjaGFyX3QsIGNoYXIsIHN0ZDo6bWJzdGF0ZV90
PiB7fTsKKyAgc3RkOjp3c3RyaW5nX2NvbnZlcnQ8d2NoYXJfY29kZWN2dD4gY29udmVydGVyOwor
ICBzdGQ6OndzdHJpbmcgd2lkZV9wYXRoID0gY29udmVydGVyLmZyb21fYnl0ZXMocGF0aCk7Cisg
IHN0ZDo6d3N0cmluZyB3aWRlX21vZGUgPSBjb252ZXJ0ZXIuZnJvbV9ieXRlcyhtb2RlKTsKKyAg
cmV0dXJuIF93Zm9wZW4od2lkZV9wYXRoLmNfc3RyKCksIHdpZGVfbW9kZS5jX3N0cigpKTsKKyNl
bHNlICAvLyBHVEVTVF9PU19XSU5ET1dTICYmICFHVEVTVF9PU19XSU5ET1dTX01JTkdXCiAgIHJl
dHVybiBmb3BlbihwYXRoLCBtb2RlKTsKKyNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAmJiAh
R1RFU1RfT1NfV0lORE9XU19NSU5HVwogfQogI2lmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQog
aW5saW5lIEZJTEUgKkZSZW9wZW4oY29uc3QgY2hhciogcGF0aCwgY29uc3QgY2hhciogbW9kZSwg
RklMRSogc3RyZWFtKSB7CkBAIC0yNTMyLDE1ICsyMDk2LDE2IEBAIGlubGluZSBpbnQgQ2xvc2Uo
aW50IGZkKSB7IHJldHVybiBjbG9zZShmZCk7IH0KIGlubGluZSBjb25zdCBjaGFyKiBTdHJFcnJv
cihpbnQgZXJybnVtKSB7IHJldHVybiBzdHJlcnJvcihlcnJudW0pOyB9CiAjZW5kaWYKIGlubGlu
ZSBjb25zdCBjaGFyKiBHZXRFbnYoY29uc3QgY2hhciogbmFtZSkgewotI2lmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgR1RFU1RfT1NfV0lORE9X
U19SVAotICAvLyBXZSBhcmUgb24gV2luZG93cyBDRSwgd2hpY2ggaGFzIG5vIGVudmlyb25tZW50
IHZhcmlhYmxlcy4KKyNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRSB8fCBHVEVTVF9PU19XSU5E
T1dTX1BIT05FIHx8IFwKKyAgICBHVEVTVF9PU19XSU5ET1dTX1JUIHx8IEdURVNUX09TX0VTUDgy
NjYKKyAgLy8gV2UgYXJlIG9uIGFuIGVtYmVkZGVkIHBsYXRmb3JtLCB3aGljaCBoYXMgbm8gZW52
aXJvbm1lbnQgdmFyaWFibGVzLgogICBzdGF0aWNfY2FzdDx2b2lkPihuYW1lKTsgIC8vIFRvIHBy
ZXZlbnQgJ3VudXNlZCBhcmd1bWVudCcgd2FybmluZy4KLSAgcmV0dXJuIE5VTEw7CisgIHJldHVy
biBudWxscHRyOwogI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pIHx8IGRlZmluZWQoX19TdW5P
U181XzgpIHx8IGRlZmluZWQoX19TdW5PU181XzkpCiAgIC8vIEVudmlyb25tZW50IHZhcmlhYmxl
cyB3aGljaCB3ZSBwcm9ncmFtbWF0aWNhbGx5IGNsZWFyIHdpbGwgYmUgc2V0IHRvIHRoZQogICAv
LyBlbXB0eSBzdHJpbmcgcmF0aGVyIHRoYW4gdW5zZXQgKE5VTEwpLiAgSGFuZGxlIHRoYXQgY2Fz
ZS4KICAgY29uc3QgY2hhciogY29uc3QgZW52ID0gZ2V0ZW52KG5hbWUpOwotICByZXR1cm4gKGVu
diAhPSBOVUxMICYmIGVudlswXSAhPSAnXDAnKSA/IGVudiA6IE5VTEw7CisgIHJldHVybiAoZW52
ICE9IG51bGxwdHIgJiYgZW52WzBdICE9ICdcMCcpID8gZW52IDogbnVsbHB0cjsKICNlbHNlCiAg
IHJldHVybiBnZXRlbnYobmFtZSk7CiAjZW5kaWYKQEAgLTI1NTIsOSArMjExNyw5IEBAIEdURVNU
X0RJU0FCTEVfTVNDX0RFUFJFQ0FURURfUE9QXygpCiAvLyBXaW5kb3dzIENFIGhhcyBubyBDIGxp
YnJhcnkuIFRoZSBhYm9ydCgpIGZ1bmN0aW9uIGlzIHVzZWQgaW4KIC8vIHNldmVyYWwgcGxhY2Vz
IGluIEdvb2dsZSBUZXN0LiBUaGlzIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIGEgcmVhc29uYWJs
ZQogLy8gaW1pdGF0aW9uIG9mIHN0YW5kYXJkIGJlaGF2aW91ci4KLXZvaWQgQWJvcnQoKTsKK1tb
bm9yZXR1cm5dXSB2b2lkIEFib3J0KCk7CiAjZWxzZQotaW5saW5lIHZvaWQgQWJvcnQoKSB7IGFi
b3J0KCk7IH0KK1tbbm9yZXR1cm5dXSBpbmxpbmUgdm9pZCBBYm9ydCgpIHsgYWJvcnQoKTsgfQog
I2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogCiB9ICAvLyBuYW1lc3BhY2UgcG9z
aXgKQEAgLTI1NjQsMjcgKzIxMjksMjQgQEAgaW5saW5lIHZvaWQgQWJvcnQoKSB7IGFib3J0KCk7
IH0KIC8vIE1TVkMtYmFzZWQgcGxhdGZvcm1zLiAgV2UgbWFwIHRoZSBHVEVTVF9TTlBSSU5URl8g
bWFjcm8gdG8gdGhlIGFwcHJvcHJpYXRlCiAvLyBmdW5jdGlvbiBpbiBvcmRlciB0byBhY2hpZXZl
IHRoYXQuICBXZSB1c2UgbWFjcm8gZGVmaW5pdGlvbiBoZXJlIGJlY2F1c2UKIC8vIHNucHJpbnRm
IGlzIGEgdmFyaWFkaWMgZnVuY3Rpb24uCi0jaWYgX01TQ19WRVIgPj0gMTQwMCAmJiAhR1RFU1Rf
T1NfV0lORE9XU19NT0JJTEUKKyNpZiBfTVNDX1ZFUiAmJiAhR1RFU1RfT1NfV0lORE9XU19NT0JJ
TEUKIC8vIE1TVkMgMjAwNSBhbmQgYWJvdmUgc3VwcG9ydCB2YXJpYWRpYyBtYWNyb3MuCiAjIGRl
ZmluZSBHVEVTVF9TTlBSSU5URl8oYnVmZmVyLCBzaXplLCBmb3JtYXQsIC4uLikgXAogICAgICBf
c25wcmludGZfcyhidWZmZXIsIHNpemUsIHNpemUsIGZvcm1hdCwgX19WQV9BUkdTX18pCiAjZWxp
ZiBkZWZpbmVkKF9NU0NfVkVSKQotLy8gV2luZG93cyBDRSBkb2VzIG5vdCBkZWZpbmUgX3NucHJp
bnRmX3MgYW5kIE1TVkMgcHJpb3IgdG8gMjAwNSBkb2Vzbid0Ci0vLyBjb21wbGFpbiBhYm91dCBf
c25wcmludGYuCisvLyBXaW5kb3dzIENFIGRvZXMgbm90IGRlZmluZSBfc25wcmludGZfcwogIyBk
ZWZpbmUgR1RFU1RfU05QUklOVEZfIF9zbnByaW50ZgogI2Vsc2UKICMgZGVmaW5lIEdURVNUX1NO
UFJJTlRGXyBzbnByaW50ZgogI2VuZGlmCiAKLS8vIFRoZSBtYXhpbXVtIG51bWJlciBhIEJpZ2dl
c3RJbnQgY2FuIHJlcHJlc2VudC4gIFRoaXMgZGVmaW5pdGlvbgotLy8gd29ya3Mgbm8gbWF0dGVy
IEJpZ2dlc3RJbnQgaXMgcmVwcmVzZW50ZWQgaW4gb25lJ3MgY29tcGxlbWVudCBvcgotLy8gdHdv
J3MgY29tcGxlbWVudC4KKy8vIFRoZSBiaWdnZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUgdGhlIGNv
bXBpbGVyIHN1cHBvcnRzLgogLy8KLS8vIFdlIGNhbm5vdCByZWx5IG9uIG51bWVyaWNfbGltaXRz
IGluIFNUTCwgYXMgX19pbnQ2NCBhbmQgbG9uZyBsb25nCi0vLyBhcmUgbm90IHBhcnQgb2Ygc3Rh
bmRhcmQgQysrIGFuZCBudW1lcmljX2xpbWl0cyBkb2Vzbid0IG5lZWQgdG8gYmUKLS8vIGRlZmlu
ZWQgZm9yIHRoZW0uCi1jb25zdCBCaWdnZXN0SW50IGtNYXhCaWdnZXN0SW50ID0KLSAgICB+KHN0
YXRpY19jYXN0PEJpZ2dlc3RJbnQ+KDEpIDw8ICg4KnNpemVvZihCaWdnZXN0SW50KSAtIDEpKTsK
Ky8vIGxvbmcgbG9uZyBpcyBndWFyYW50ZWVkIHRvIGJlIGF0IGxlYXN0IDY0LWJpdHMgaW4gQysr
MTEuCit1c2luZyBCaWdnZXN0SW50ID0gbG9uZyBsb25nOyAgLy8gTk9MSU5UCisKKy8vIFRoZSBt
YXhpbXVtIG51bWJlciBhIEJpZ2dlc3RJbnQgY2FuIHJlcHJlc2VudC4KK2NvbnN0ZXhwciBCaWdn
ZXN0SW50IGtNYXhCaWdnZXN0SW50ID0gKHN0ZDo6bnVtZXJpY19saW1pdHM8QmlnZ2VzdEludD46
Om1heCkoKTsKIAogLy8gVGhpcyB0ZW1wbGF0ZSBjbGFzcyBzZXJ2ZXMgYXMgYSBjb21waWxlLXRp
bWUgZnVuY3Rpb24gZnJvbSBzaXplIHRvCiAvLyB0eXBlLiAgSXQgbWFwcyBhIHNpemUgaW4gYnl0
ZXMgdG8gYSBwcmltaXRpdmUgdHlwZSB3aXRoIHRoYXQKQEAgLTI2MDksNDAgKzIxNzEsMjcgQEAg
Y2xhc3MgVHlwZVdpdGhTaXplIHsKICBwdWJsaWM6CiAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHVz
ZXIgZnJvbSB1c2luZyBUeXBlV2l0aFNpemU8Tj4gd2l0aCBpbmNvcnJlY3QKICAgLy8gdmFsdWVz
IG9mIE4uCi0gIHR5cGVkZWYgdm9pZCBVSW50OworICB1c2luZyBVSW50ID0gdm9pZDsKIH07CiAK
IC8vIFRoZSBzcGVjaWFsaXphdGlvbiBmb3Igc2l6ZSA0LgogdGVtcGxhdGUgPD4KIGNsYXNzIFR5
cGVXaXRoU2l6ZTw0PiB7CiAgcHVibGljOgotICAvLyB1bnNpZ25lZCBpbnQgaGFzIHNpemUgNCBp
biBib3RoIGdjYyBhbmQgTVNWQy4KLSAgLy8KLSAgLy8gQXMgYmFzZS9iYXNpY3R5cGVzLmggZG9l
c24ndCBjb21waWxlIG9uIFdpbmRvd3MsIHdlIGNhbm5vdCB1c2UKLSAgLy8gdWludDMyLCB1aW50
NjQsIGFuZCBldGMgaGVyZS4KLSAgdHlwZWRlZiBpbnQgSW50OwotICB0eXBlZGVmIHVuc2lnbmVk
IGludCBVSW50OworICB1c2luZyBJbnQgPSBzdGQ6OmludDMyX3Q7CisgIHVzaW5nIFVJbnQgPSBz
dGQ6OnVpbnQzMl90OwogfTsKIAogLy8gVGhlIHNwZWNpYWxpemF0aW9uIGZvciBzaXplIDguCiB0
ZW1wbGF0ZSA8PgogY2xhc3MgVHlwZVdpdGhTaXplPDg+IHsKICBwdWJsaWM6Ci0jaWYgR1RFU1Rf
T1NfV0lORE9XUwotICB0eXBlZGVmIF9faW50NjQgSW50OwotICB0eXBlZGVmIHVuc2lnbmVkIF9f
aW50NjQgVUludDsKLSNlbHNlCi0gIHR5cGVkZWYgbG9uZyBsb25nIEludDsgIC8vIE5PTElOVAot
ICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBVSW50OyAgLy8gTk9MSU5UCi0jZW5kaWYgIC8v
IEdURVNUX09TX1dJTkRPV1MKKyAgdXNpbmcgSW50ID0gc3RkOjppbnQ2NF90OworICB1c2luZyBV
SW50ID0gc3RkOjp1aW50NjRfdDsKIH07CiAKIC8vIEludGVnZXIgdHlwZXMgb2Yga25vd24gc2l6
ZXMuCi10eXBlZGVmIFR5cGVXaXRoU2l6ZTw0Pjo6SW50IEludDMyOwotdHlwZWRlZiBUeXBlV2l0
aFNpemU8ND46OlVJbnQgVUludDMyOwotdHlwZWRlZiBUeXBlV2l0aFNpemU8OD46OkludCBJbnQ2
NDsKLXR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpVSW50IFVJbnQ2NDsKLXR5cGVkZWYgVHlwZVdp
dGhTaXplPDg+OjpJbnQgVGltZUluTWlsbGlzOyAgLy8gUmVwcmVzZW50cyB0aW1lIGluIG1pbGxp
c2Vjb25kcy4KK3VzaW5nIFRpbWVJbk1pbGxpcyA9IGludDY0X3Q7ICAvLyBSZXByZXNlbnRzIHRp
bWUgaW4gbWlsbGlzZWNvbmRzLgogCiAvLyBVdGlsaXRpZXMgZm9yIGNvbW1hbmQgbGluZSBmbGFn
cyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgogCkBAIC0yNjYxLDcgKzIyMTAsNyBAQCB0eXBl
ZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6SW50IFRpbWVJbk1pbGxpczsgIC8vIFJlcHJlc2VudHMgdGlt
ZSBpbiBtaWxsaXNlY29uZHMuCiAvLyBNYWNyb3MgZm9yIGRlY2xhcmluZyBmbGFncy4KICMgZGVm
aW5lIEdURVNUX0RFQ0xBUkVfYm9vbF8obmFtZSkgR1RFU1RfQVBJXyBleHRlcm4gYm9vbCBHVEVT
VF9GTEFHKG5hbWUpCiAjIGRlZmluZSBHVEVTVF9ERUNMQVJFX2ludDMyXyhuYW1lKSBcCi0gICAg
R1RFU1RfQVBJXyBleHRlcm4gOjp0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzIgR1RFU1RfRkxBRyhu
YW1lKQorICAgIEdURVNUX0FQSV8gZXh0ZXJuIHN0ZDo6aW50MzJfdCBHVEVTVF9GTEFHKG5hbWUp
CiAjIGRlZmluZSBHVEVTVF9ERUNMQVJFX3N0cmluZ18obmFtZSkgXAogICAgIEdURVNUX0FQSV8g
ZXh0ZXJuIDo6c3RkOjpzdHJpbmcgR1RFU1RfRkxBRyhuYW1lKQogCkBAIC0yNjY5LDcgKzIyMTgs
NyBAQCB0eXBlZGVmIFR5cGVXaXRoU2l6ZTw4Pjo6SW50IFRpbWVJbk1pbGxpczsgIC8vIFJlcHJl
c2VudHMgdGltZSBpbiBtaWxsaXNlY29uZHMuCiAjIGRlZmluZSBHVEVTVF9ERUZJTkVfYm9vbF8o
bmFtZSwgZGVmYXVsdF92YWwsIGRvYykgXAogICAgIEdURVNUX0FQSV8gYm9vbCBHVEVTVF9GTEFH
KG5hbWUpID0gKGRlZmF1bHRfdmFsKQogIyBkZWZpbmUgR1RFU1RfREVGSU5FX2ludDMyXyhuYW1l
LCBkZWZhdWx0X3ZhbCwgZG9jKSBcCi0gICAgR1RFU1RfQVBJXyA6OnRlc3Rpbmc6OmludGVybmFs
OjpJbnQzMiBHVEVTVF9GTEFHKG5hbWUpID0gKGRlZmF1bHRfdmFsKQorICAgIEdURVNUX0FQSV8g
c3RkOjppbnQzMl90IEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCiAjIGRlZmluZSBH
VEVTVF9ERUZJTkVfc3RyaW5nXyhuYW1lLCBkZWZhdWx0X3ZhbCwgZG9jKSBcCiAgICAgR1RFU1Rf
QVBJXyA6OnN0ZDo6c3RyaW5nIEdURVNUX0ZMQUcobmFtZSkgPSAoZGVmYXVsdF92YWwpCiAKQEAg
LTI2ODQsMTkgKzIyMzMsMTUyIEBAIHR5cGVkZWYgVHlwZVdpdGhTaXplPDg+OjpJbnQgVGltZUlu
TWlsbGlzOyAgLy8gUmVwcmVzZW50cyB0aW1lIGluIG1pbGxpc2Vjb25kcy4KIC8vIFBhcnNlcyAn
c3RyJyBmb3IgYSAzMi1iaXQgc2lnbmVkIGludGVnZXIuICBJZiBzdWNjZXNzZnVsLCB3cml0ZXMg
dGhlIHJlc3VsdAogLy8gdG8gKnZhbHVlIGFuZCByZXR1cm5zIHRydWU7IG90aGVyd2lzZSBsZWF2
ZXMgKnZhbHVlIHVuY2hhbmdlZCBhbmQgcmV0dXJucwogLy8gZmFsc2UuCi0vLyBGSVhNRTogRmlu
ZCBhIGJldHRlciB3YXkgdG8gcmVmYWN0b3IgZmxhZyBhbmQgZW52aXJvbm1lbnQgcGFyc2luZwot
Ly8gb3V0IG9mIGJvdGggZ3Rlc3QtcG9ydC5jYyBhbmQgZ3Rlc3QuY2MgdG8gYXZvaWQgZXhwb3J0
aW5nIHRoaXMgdXRpbGl0eQotLy8gZnVuY3Rpb24uCi1ib29sIFBhcnNlSW50MzIoY29uc3QgTWVz
c2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIqIHN0ciwgSW50MzIqIHZhbHVlKTsKK0dURVNUX0FQ
SV8gYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNyY190ZXh0LCBjb25zdCBjaGFyKiBz
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90KiB2YWx1ZSk7CiAKLS8vIFBh
cnNlcyBhIGJvb2wvSW50MzIvc3RyaW5nIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCisv
LyBQYXJzZXMgYSBib29sL2ludDMyX3Qvc3RyaW5nIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlh
YmxlCiAvLyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBHb29nbGUgVGVzdCBmbGFnLgogYm9v
bCBCb29sRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIGJvb2wgZGVmYXVsdF92YWwpOwot
R1RFU1RfQVBJXyBJbnQzMiBJbnQzMkZyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBJbnQz
MiBkZWZhdWx0X3ZhbCk7CitHVEVTVF9BUElfIGludDMyX3QgSW50MzJGcm9tR1Rlc3RFbnYoY29u
c3QgY2hhciogZmxhZywgaW50MzJfdCBkZWZhdWx0X3ZhbCk7CiBzdGQ6OnN0cmluZyBPdXRwdXRG
bGFnQWxzb0NoZWNrRW52VmFyKCk7CiBjb25zdCBjaGFyKiBTdHJpbmdGcm9tR1Rlc3RFbnYoY29u
c3QgY2hhciogZmxhZywgY29uc3QgY2hhciogZGVmYXVsdF92YWwpOwogCiB9ICAvLyBuYW1lc3Bh
Y2UgaW50ZXJuYWwKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCiAKLSNlbmRpZiAgLy8gR1RFU1Rf
SU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9QT1JUX0hfCisjaWYgIWRlZmluZWQoR1RFU1Rf
SU5URVJOQUxfREVQUkVDQVRFRCkKKworLy8gSW50ZXJuYWwgTWFjcm8gdG8gbWFyayBhbiBBUEkg
ZGVwcmVjYXRlZCwgZm9yIGdvb2dsZXRlc3QgdXNhZ2Ugb25seQorLy8gVXNhZ2U6IGNsYXNzIEdU
RVNUX0lOVEVSTkFMX0RFUFJFQ0FURUQobWVzc2FnZSkgTXlDbGFzcyBvcgorLy8gR1RFU1RfSU5U
RVJOQUxfREVQUkVDQVRFRChtZXNzYWdlKSA8cmV0dXJuX3R5cGU+IG15RnVuY3Rpb24oKTsgRXZl
cnkgdXNhZ2Ugb2YKKy8vIGEgZGVwcmVjYXRlZCBlbnRpdHkgd2lsbCB0cmlnZ2VyIGEgd2Fybmlu
ZyB3aGVuIGNvbXBpbGVkIHdpdGgKKy8vIGAtV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zYCBvcHRp
b24gKGNsYW5nLCBnY2MsIGFueSBfX0dOVUNfXyBjb21waWxlcikuCisvLyBGb3IgbXN2YyAvVzMg
b3B0aW9uIHdpbGwgbmVlZCB0byBiZSB1c2VkCisvLyBOb3RlIHRoYXQgZm9yICdvdGhlcicgY29t
cGlsZXJzIHRoaXMgbWFjcm8gZXZhbHVhdGVzIHRvIG5vdGhpbmcgdG8gcHJldmVudAorLy8gY29t
cGlsYXRpb25zIGVycm9ycy4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2RlZmluZSBHVEVTVF9J
TlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdl
KSkKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0RFUFJF
Q0FURUQobWVzc2FnZSkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZChtZXNzYWdlKSkpCisjZWxz
ZQorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKG1lc3NhZ2UpCisjZW5kaWYKKwor
I2VuZGlmICAvLyAhZGVmaW5lZChHVEVTVF9JTlRFUk5BTF9ERVBSRUNBVEVEKQorCisjaWYgR1RF
U1RfSEFTX0FCU0wKKy8vIEFsd2F5cyB1c2UgYWJzbDo6YW55IGZvciBVbml2ZXJzYWxQcmludGVy
PD4gc3BlY2lhbGl6YXRpb25zIGlmIGdvb2dsZXRlc3QKKy8vIGlzIGJ1aWx0IHdpdGggYWJzbCBz
dXBwb3J0LgorI2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfQU5ZIDEKKyNpbmNsdWRlICJhYnNs
L3R5cGVzL2FueS5oIgorbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIGludGVybmFsIHsK
K3VzaW5nIEFueSA9IDo6YWJzbDo6YW55OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAv
LyBuYW1lc3BhY2UgdGVzdGluZworI2Vsc2UKKyNpZmRlZiBfX2hhc19pbmNsdWRlCisjaWYgX19o
YXNfaW5jbHVkZSg8YW55PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNl
IGZvciBDKysxNyBhbmQgaGlnaGVyIHVzZSBzdGQ6OmFueSBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+
CisvLyBzcGVjaWFsaXphdGlvbnMuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19BTlkgMQor
I2luY2x1ZGUgPGFueT4KK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7
Cit1c2luZyBBbnkgPSA6OnN0ZDo6YW55OworfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCit9ICAv
LyBuYW1lc3BhY2UgdGVzdGluZworLy8gVGhlIGNhc2Ugd2hlcmUgYWJzbCBpcyBjb25maWd1cmVk
IE5PVCB0byBhbGlhcyBzdGQ6OmFueSBpcyBub3QKKy8vIHN1cHBvcnRlZC4KKyNlbmRpZiAgLy8g
X19oYXNfaW5jbHVkZSg8YW55PikgJiYgX19jcGx1c3BsdXMgPj0gMjAxNzAzTAorI2VuZGlmICAv
LyBfX2hhc19pbmNsdWRlCisjZW5kaWYgIC8vIEdURVNUX0hBU19BQlNMCisKKyNpZiBHVEVTVF9I
QVNfQUJTTAorLy8gQWx3YXlzIHVzZSBhYnNsOjpvcHRpb25hbCBmb3IgVW5pdmVyc2FsUHJpbnRl
cjw+IHNwZWNpYWxpemF0aW9ucyBpZgorLy8gZ29vZ2xldGVzdCBpcyBidWlsdCB3aXRoIGFic2wg
c3VwcG9ydC4KKyNkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMIDEKKyNpbmNsdWRl
ICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2Ug
aW50ZXJuYWwgewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1c2luZyBPcHRpb25hbCA9IDo6YWJz
bDo6b3B0aW9uYWw8VD47Cit9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFj
ZSB0ZXN0aW5nCisjZWxzZQorI2lmZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNsdWRl
KDxvcHRpb25hbD4pICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKy8vIE90aGVyd2lzZSBmb3Ig
QysrMTcgYW5kIGhpZ2hlciB1c2Ugc3RkOjpvcHRpb25hbCBmb3IgVW5pdmVyc2FsUHJpbnRlcjw+
CisvLyBzcGVjaWFsaXphdGlvbnMuCisjZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05B
TCAxCisjaW5jbHVkZSA8b3B0aW9uYWw+CituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2Ug
aW50ZXJuYWwgewordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit1c2luZyBPcHRpb25hbCA9IDo6c3Rk
OjpvcHRpb25hbDxUPjsKK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNl
IHRlc3RpbmcKKy8vIFRoZSBjYXNlIHdoZXJlIGFic2wgaXMgY29uZmlndXJlZCBOT1QgdG8gYWxp
YXMgc3RkOjpvcHRpb25hbCBpcyBub3QKKy8vIHN1cHBvcnRlZC4KKyNlbmRpZiAgLy8gX19oYXNf
aW5jbHVkZSg8b3B0aW9uYWw+KSAmJiBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCisjZW5kaWYgIC8v
IF9faGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKworI2lmIEdURVNUX0hB
U19BQlNMCisvLyBBbHdheXMgdXNlIGFic2w6OnN0cmluZ192aWV3IGZvciBNYXRjaGVyPD4gc3Bl
Y2lhbGl6YXRpb25zIGlmIGdvb2dsZXRlc3QKKy8vIGlzIGJ1aWx0IHdpdGggYWJzbCBzdXBwb3J0
LgorIyBkZWZpbmUgR1RFU1RfSU5URVJOQUxfSEFTX1NUUklOR19WSUVXIDEKKyNpbmNsdWRlICJh
YnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaCIKK25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFj
ZSBpbnRlcm5hbCB7Cit1c2luZyBTdHJpbmdWaWV3ID0gOjphYnNsOjpzdHJpbmdfdmlldzsKK30g
IC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKyNlbHNlCisj
IGlmZGVmIF9faGFzX2luY2x1ZGUKKyMgICBpZiBfX2hhc19pbmNsdWRlKDxzdHJpbmdfdmlldz4p
ICYmIF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKy8vIE90aGVyd2lzZSBmb3IgQysrMTcgYW5kIGhp
Z2hlciB1c2Ugc3RkOjpzdHJpbmdfdmlldyBmb3IgTWF0Y2hlcjw+CisvLyBzcGVjaWFsaXphdGlv
bnMuCisjICAgZGVmaW5lIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVyAxCisjaW5jbHVk
ZSA8c3RyaW5nX3ZpZXc+CituYW1lc3BhY2UgdGVzdGluZyB7CituYW1lc3BhY2UgaW50ZXJuYWwg
ewordXNpbmcgU3RyaW5nVmlldyA9IDo6c3RkOjpzdHJpbmdfdmlldzsKK30gIC8vIG5hbWVzcGFj
ZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKy8vIFRoZSBjYXNlIHdoZXJlIGFi
c2wgaXMgY29uZmlndXJlZCBOT1QgdG8gYWxpYXMgc3RkOjpzdHJpbmdfdmlldyBpcyBub3QKKy8v
IHN1cHBvcnRlZC4KKyMgIGVuZGlmICAvLyBfX2hhc19pbmNsdWRlKDxzdHJpbmdfdmlldz4pICYm
IF9fY3BsdXNwbHVzID49IDIwMTcwM0wKKyMgZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUKKyNlbmRp
ZiAgLy8gR1RFU1RfSEFTX0FCU0wKKworI2lmIEdURVNUX0hBU19BQlNMCisvLyBBbHdheXMgdXNl
IGFic2w6OnZhcmlhbnQgZm9yIFVuaXZlcnNhbFByaW50ZXI8PiBzcGVjaWFsaXphdGlvbnMgaWYg
Z29vZ2xldGVzdAorLy8gaXMgYnVpbHQgd2l0aCBhYnNsIHN1cHBvcnQuCisjZGVmaW5lIEdURVNU
X0lOVEVSTkFMX0hBU19WQVJJQU5UIDEKKyNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIK
K25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlw
ZW5hbWUuLi4gVD4KK3VzaW5nIFZhcmlhbnQgPSA6OmFic2w6OnZhcmlhbnQ8VC4uLj47Cit9ICAv
LyBuYW1lc3BhY2UgaW50ZXJuYWwKK30gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCisjZWxzZQorI2lm
ZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNsdWRlKDx2YXJpYW50PikgJiYgX19jcGx1
c3BsdXMgPj0gMjAxNzAzTAorLy8gT3RoZXJ3aXNlIGZvciBDKysxNyBhbmQgaGlnaGVyIHVzZSBz
dGQ6OnZhcmlhbnQgZm9yIFVuaXZlcnNhbFByaW50ZXI8PgorLy8gc3BlY2lhbGl6YXRpb25zLgor
I2RlZmluZSBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVCAxCisjaW5jbHVkZSA8dmFyaWFudD4K
K25hbWVzcGFjZSB0ZXN0aW5nIHsKK25hbWVzcGFjZSBpbnRlcm5hbCB7Cit0ZW1wbGF0ZSA8dHlw
ZW5hbWUuLi4gVD4KK3VzaW5nIFZhcmlhbnQgPSA6OnN0ZDo6dmFyaWFudDxULi4uPjsKK30gIC8v
IG5hbWVzcGFjZSBpbnRlcm5hbAorfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKKy8vIFRoZSBjYXNl
IHdoZXJlIGFic2wgaXMgY29uZmlndXJlZCBOT1QgdG8gYWxpYXMgc3RkOjp2YXJpYW50IGlzIG5v
dCBzdXBwb3J0ZWQuCisjZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUoPHZhcmlhbnQ+KSAmJiBfX2Nw
bHVzcGx1cyA+PSAyMDE3MDNMCisjZW5kaWYgIC8vIF9faGFzX2luY2x1ZGUKKyNlbmRpZiAgLy8g
R1RFU1RfSEFTX0FCU0wKKworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xVREVfR1RFU1RfSU5U
RVJOQUxfR1RFU1RfUE9SVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qtc3RyaW5nLmgKaW5kZXggNGM5YjYy
NjJjM2MxMDM3MjZhYTNjYWI0YzE5OTk1YmFlZjk1OGI5OC4uMTBmNzc0Zjk2NjA2ZTViOWI4N2Jh
MzRlYzdjNTJiYTQ3NWFkODVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
aW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC1zdHJpbmcuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXN0cmluZy5oCkBAIC0zOCw4
ICszOCw4IEBACiAKIC8vIEdPT0dMRVRFU1RfQ00wMDAxIERPIE5PVCBERUxFVEUKIAotI2lmbmRl
ZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXwotI2RlZmluZSBH
VEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXworI2lmbmRlZiBHT09H
TEVURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCisjZGVmaW5lIEdP
T0dMRVRFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9TVFJJTkdfSF8KIAogI2lmZGVm
IF9fQk9STEFORENfXwogLy8gc3RyaW5nLmggaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJvdmlkZSBz
dHJjcHkgb24gQysrIEJ1aWxkZXIuCkBAIC00Nyw2ICs0Nyw3IEBACiAjZW5kaWYKIAogI2luY2x1
ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8c3RyaW5nPgogCiAj
aW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgpAQCAtOTQsNyArOTUsOCBAQCBj
bGFzcyBHVEVTVF9BUElfIFN0cmluZyB7CiAgIHN0YXRpYyBjb25zdCBjaGFyKiBVdGYxNlRvQW5z
aShMUENXU1RSIHV0ZjE2X3N0cik7CiAjZW5kaWYKIAotICAvLyBDb21wYXJlcyB0d28gQyBzdHJp
bmdzLiAgUmV0dXJucyB0cnVlIGlmZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgLy8g
Q29tcGFyZXMgdHdvIEMgc3RyaW5ncy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGV5
IGhhdmUgdGhlIHNhbWUKKyAgLy8gY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHN0cmNtcCgp
LCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEKICAgLy8gTlVM
TCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwgQyBzdHJp
bmcsCkBAIC0xMDcsMTYgKzEwOSwxNiBAQCBjbGFzcyBHVEVTVF9BUElfIFN0cmluZyB7CiAgIC8v
IHJldHVybmVkLgogICBzdGF0aWMgc3RkOjpzdHJpbmcgU2hvd1dpZGVDU3RyaW5nKGNvbnN0IHdj
aGFyX3QqIHdpZGVfY19zdHIpOwogCi0gIC8vIENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncy4g
IFJldHVybnMgdHJ1ZSBpZmYgdGhleSBoYXZlIHRoZSBzYW1lCi0gIC8vIGNvbnRlbnQuCisgIC8v
IENvbXBhcmVzIHR3byB3aWRlIEMgc3RyaW5ncy4gIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiB0aGV5IGhhdmUgdGhlCisgIC8vIHNhbWUgY29udGVudC4KICAgLy8KICAgLy8gVW5saWtlIHdj
c2NtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVudChzKS4gIEEKICAg
Ly8gTlVMTCBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5VTEwg
QyBzdHJpbmcsCiAgIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgogICBzdGF0aWMgYm9v
bCBXaWRlQ1N0cmluZ0VxdWFscyhjb25zdCB3Y2hhcl90KiBsaHMsIGNvbnN0IHdjaGFyX3QqIHJo
cyk7CiAKLSAgLy8gQ29tcGFyZXMgdHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVy
bnMgdHJ1ZSBpZmYgdGhleQotICAvLyBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgIC8vIENvbXBh
cmVzIHR3byBDIHN0cmluZ3MsIGlnbm9yaW5nIGNhc2UuICBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYKKyAgLy8gdGhleSBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCiAgIC8vCiAgIC8vIFVubGlr
ZSBzdHJjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMp
LgogICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJlZCBkaWZmZXJlbnQgdG8gYW55IG5v
bi1OVUxMIEMgc3RyaW5nLApAQCAtMTI0LDggKzEyNiw4IEBAIGNsYXNzIEdURVNUX0FQSV8gU3Ry
aW5nIHsKICAgc3RhdGljIGJvb2wgQ2FzZUluc2Vuc2l0aXZlQ1N0cmluZ0VxdWFscyhjb25zdCBj
aGFyKiBsaHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogcmhzKTsKIAotICAvLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MsIGlnbm9y
aW5nIGNhc2UuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkKLSAgLy8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50LgorICAvLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MsIGlnbm9yaW5nIGNhc2UuICBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYKKyAgLy8gdGhleSBoYXZlIHRoZSBzYW1lIGNvbnRl
bnQuCiAgIC8vCiAgIC8vIFVubGlrZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhh
bmRsZSBOVUxMIGFyZ3VtZW50KHMpLgogICAvLyBBIE5VTEwgQyBzdHJpbmcgaXMgY29uc2lkZXJl
ZCBkaWZmZXJlbnQgdG8gYW55IG5vbi1OVUxMIHdpZGUgQyBzdHJpbmcsCkBAIC0xMzksMTcgKzE0
MSwyMyBAQCBjbGFzcyBHVEVTVF9BUElfIFN0cmluZyB7CiAgIHN0YXRpYyBib29sIENhc2VJbnNl
bnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2NoYXJfdCogcmhzKTsK
IAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBnaXZlbiBzdHJpbmcgZW5kcyB3aXRoIHRoZSBn
aXZlbiBzdWZmaXgsIGlnbm9yaW5nCi0gIC8vIGNhc2UuIEFueSBzdHJpbmcgaXMgY29uc2lkZXJl
ZCB0byBlbmQgd2l0aCBhbiBlbXB0eSBzdWZmaXguCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3VmZml4LAorICAv
LyBpZ25vcmluZyBjYXNlLiBBbnkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8gZW5kIHdpdGggYW4g
ZW1wdHkgc3VmZml4LgogICBzdGF0aWMgYm9vbCBFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSgKICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWZmaXgpOwog
CiAgIC8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlMDJkIi4KICAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEZvcm1hdEludFdpZHRoMihpbnQgdmFsdWUpOyAgLy8gIiUwMmQiIGZvciB3aWR0aCA9PSAy
CiAKKyAgLy8gRm9ybWF0cyBhbiBpbnQgdmFsdWUgdG8gZ2l2ZW4gd2lkdGggd2l0aCBsZWFkaW5n
IHplcm9zLgorICBzdGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0SW50V2lkdGhOKGludCB2YWx1ZSwg
aW50IHdpZHRoKTsKKwogICAvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJVgiLgogICBzdGF0
aWMgc3RkOjpzdHJpbmcgRm9ybWF0SGV4SW50KGludCB2YWx1ZSk7CiAKKyAgLy8gRm9ybWF0cyBh
biBpbnQgdmFsdWUgYXMgIiVYIi4KKyAgc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdEhleFVJbnQz
Mih1aW50MzJfdCB2YWx1ZSk7CisKICAgLy8gRm9ybWF0cyBhIGJ5dGUgYXMgIiUwMlgiLgogICBz
dGF0aWMgc3RkOjpzdHJpbmcgRm9ybWF0Qnl0ZSh1bnNpZ25lZCBjaGFyIHZhbHVlKTsKIApAQCAt
MTY0LDQgKzE3Miw0IEBAIEdURVNUX0FQSV8gc3RkOjpzdHJpbmcgU3RyaW5nU3RyZWFtVG9TdHJp
bmcoOjpzdGQ6OnN0cmluZ3N0cmVhbSogc3RyZWFtKTsKIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h
bAogfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKIAotI2VuZGlmICAvLyBHVEVTVF9JTkNMVURFX0dU
RVNUX0lOVEVSTkFMX0dURVNUX1NUUklOR19IXworI2VuZGlmICAvLyBHT09HTEVURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfU1RSSU5HX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4YTNhNmEwMWZhYzc1NTE3ZWFiODMxMzEy
NDI3ZTE1ZDVlNGViYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVz
dC10dXBsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAyMSArMCwwIEBACi0vLyBUaGlzIGZpbGUg
d2FzIEdFTkVSQVRFRCBieSBjb21tYW5kOgotLy8gICAgIHB1bXAucHkgZ3Rlc3QtdHVwbGUuaC5w
dW1wCi0vLyBETyBOT1QgRURJVCBCWSBIQU5EISEhCi0KLS8vIENvcHlyaWdodCAyMDA5IEdvb2ds
ZSBJbmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLS8vIEltcGxlbWVudHMgYSBzdWJzZXQgb2YgVFIxIHR1
cGxlIG5lZWRlZCBieSBHb29nbGUgVGVzdCBhbmQgR29vZ2xlIE1vY2suCi0KLS8vIEdPT0dMRVRF
U1RfQ00wMDAxIERPIE5PVCBERUxFVEUKLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lO
VEVSTkFMX0dURVNUX1RVUExFX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJO
QUxfR1RFU1RfVFVQTEVfSF8KLQotI2luY2x1ZGUgPHV0aWxpdHk+ICAvLyBGb3IgOjpzdGQ6OnBh
aXIuCi0KLS8vIFRoZSBjb21waWxlciB1c2VkIGluIFN5bWJpYW4gaGFzIGEgYnVnIHRoYXQgcHJl
dmVudHMgdXMgZnJvbSBkZWNsYXJpbmcgdGhlCi0vLyB0dXBsZSB0ZW1wbGF0ZSBhcyBhIGZyaWVu
ZCAoaXQgY29tcGxhaW5zIHRoYXQgdHVwbGUgaXMgcmVkZWZpbmVkKS4gIFRoaXMKLS8vIGJ5cGFz
c2VzIHRoZSBidWcgYnkgZGVjbGFyaW5nIHRoZSBtZW1iZXJzIHRoYXQgc2hvdWxkIG90aGVyd2lz
ZSBiZQotLy8gcHJpdmF0ZSBhcyBwdWJsaWMuCi0vLyBTdW4gU3R1ZGlvIHZlcnNpb25zIDwgMTIg
YWxzbyBoYXZlIHRoZSBhYm92ZSBidWcuCi0jaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSB8fCAo
ZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPCAweDU5MCkKLSMgZGVmaW5lIEdU
RVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXyBwdWJsaWM6Ci0jZWxzZQotIyBkZWZpbmUgR1RF
U1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfIFwKLSAgICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQ
RU5BTUVTXyhVKT4gZnJpZW5kIGNsYXNzIHR1cGxlOyBcCi0gICBwcml2YXRlOgotI2VuZGlmCi0K
LS8vIFZpc3VhbCBTdHVkaW8gMjAxMCwgMjAxMiwgYW5kIDIwMTMgZGVmaW5lIHN5bWJvbHMgaW4g
c3RkOjp0cjEgdGhhdCBjb25mbGljdAotLy8gd2l0aCBvdXIgb3duIGRlZmluaXRpb25zLiBUaGVy
ZWZvcmUgdXNpbmcgb3VyIG93biB0dXBsZSBkb2VzIG5vdCB3b3JrIG9uCi0vLyB0aG9zZSBjb21w
aWxlcnMuCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCAgLyogMTYw
MCBpcyBWaXN1YWwgU3R1ZGlvIDIwMTAgKi8KLSMgZXJyb3IgImd0ZXN0J3MgdHVwbGUgZG9lc24n
dCBjb21waWxlIG9uIFZpc3VhbCBTdHVkaW8gMjAxMCBvciBsYXRlci4gXAotR1RFU1RfVVNFX09X
Tl9UUjFfVFVQTEUgbXVzdCBiZSBzZXQgdG8gMCBvbiB0aG9zZSBjb21waWxlcnMuIgotI2VuZGlm
Ci0KLS8vIEdURVNUX25fVFVQTEVfKFQpIGlzIHRoZSB0eXBlIG9mIGFuIG4tdHVwbGUuCi0jZGVm
aW5lIEdURVNUXzBfVFVQTEVfKFQpIHR1cGxlPD4KLSNkZWZpbmUgR1RFU1RfMV9UVVBMRV8oVCkg
dHVwbGU8VCMjMCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgdm9pZCwgXAotICAgIHZv
aWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzJfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQj
IzEsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQsIFwKLSAgICB2b2lkLCB2b2lkLCB2b2lk
PgotI2RlZmluZSBHVEVTVF8zX1RVUExFXyhUKSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCB2b2lk
LCB2b2lkLCB2b2lkLCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9pZD4KLSNkZWZpbmUgR1RF
U1RfNF9UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMjMywgdm9pZCwgdm9pZCwg
dm9pZCwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdURVNUXzVfVFVQTEVfKFQp
IHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIHZvaWQsIHZvaWQsIFwKLSAgICB2
b2lkLCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF82X1RVUExFXyhUKSB0dXBsZTxUIyMwLCBU
IyMxLCBUIyMyLCBUIyMzLCBUIyM0LCBUIyM1LCB2b2lkLCBcCi0gICAgdm9pZCwgdm9pZCwgdm9p
ZD4KLSNkZWZpbmUgR1RFU1RfN19UVVBMRV8oVCkgdHVwbGU8VCMjMCwgVCMjMSwgVCMjMiwgVCMj
MywgVCMjNCwgVCMjNSwgVCMjNiwgXAotICAgIHZvaWQsIHZvaWQsIHZvaWQ+Ci0jZGVmaW5lIEdU
RVNUXzhfVFVQTEVfKFQpIHR1cGxlPFQjIzAsIFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUs
IFQjIzYsIFwKLSAgICBUIyM3LCB2b2lkLCB2b2lkPgotI2RlZmluZSBHVEVTVF85X1RVUExFXyhU
KSB0dXBsZTxUIyMwLCBUIyMxLCBUIyMyLCBUIyMzLCBUIyM0LCBUIyM1LCBUIyM2LCBcCi0gICAg
VCMjNywgVCMjOCwgdm9pZD4KLSNkZWZpbmUgR1RFU1RfMTBfVFVQTEVfKFQpIHR1cGxlPFQjIzAs
IFQjIzEsIFQjIzIsIFQjIzMsIFQjIzQsIFQjIzUsIFQjIzYsIFwKLSAgICBUIyM3LCBUIyM4LCBU
IyM5PgotCi0vLyBHVEVTVF9uX1RZUEVOQU1FU18oVCkgZGVjbGFyZXMgYSBsaXN0IG9mIG4gdHlw
ZW5hbWVzLgotI2RlZmluZSBHVEVTVF8wX1RZUEVOQU1FU18oVCkKLSNkZWZpbmUgR1RFU1RfMV9U
WVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAKLSNkZWZpbmUgR1RFU1RfMl9UWVBFTkFNRVNfKFQp
IHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEKLSNkZWZpbmUgR1RFU1RfM19UWVBFTkFNRVNf
KFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQjIzIKLSNkZWZpbmUg
R1RFU1RfNF9UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVu
YW1lIFQjIzIsIFwKLSAgICB0eXBlbmFtZSBUIyMzCi0jZGVmaW5lIEdURVNUXzVfVFlQRU5BTUVT
XyhUKSB0eXBlbmFtZSBUIyMwLCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAg
dHlwZW5hbWUgVCMjMywgdHlwZW5hbWUgVCMjNAotI2RlZmluZSBHVEVTVF82X1RZUEVOQU1FU18o
VCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5
cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5cGVuYW1lIFQjIzUKLSNkZWZpbmUgR1RFU1Rf
N19UWVBFTkFNRVNfKFQpIHR5cGVuYW1lIFQjIzAsIHR5cGVuYW1lIFQjIzEsIHR5cGVuYW1lIFQj
IzIsIFwKLSAgICB0eXBlbmFtZSBUIyMzLCB0eXBlbmFtZSBUIyM0LCB0eXBlbmFtZSBUIyM1LCB0
eXBlbmFtZSBUIyM2Ci0jZGVmaW5lIEdURVNUXzhfVFlQRU5BTUVTXyhUKSB0eXBlbmFtZSBUIyMw
LCB0eXBlbmFtZSBUIyMxLCB0eXBlbmFtZSBUIyMyLCBcCi0gICAgdHlwZW5hbWUgVCMjMywgdHlw
ZW5hbWUgVCMjNCwgdHlwZW5hbWUgVCMjNSwgdHlwZW5hbWUgVCMjNiwgdHlwZW5hbWUgVCMjNwot
I2RlZmluZSBHVEVTVF85X1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlwZW5hbWUgVCMj
MSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1lIFQjIzQsIHR5
cGVuYW1lIFQjIzUsIHR5cGVuYW1lIFQjIzYsIFwKLSAgICB0eXBlbmFtZSBUIyM3LCB0eXBlbmFt
ZSBUIyM4Ci0jZGVmaW5lIEdURVNUXzEwX1RZUEVOQU1FU18oVCkgdHlwZW5hbWUgVCMjMCwgdHlw
ZW5hbWUgVCMjMSwgdHlwZW5hbWUgVCMjMiwgXAotICAgIHR5cGVuYW1lIFQjIzMsIHR5cGVuYW1l
IFQjIzQsIHR5cGVuYW1lIFQjIzUsIHR5cGVuYW1lIFQjIzYsIFwKLSAgICB0eXBlbmFtZSBUIyM3
LCB0eXBlbmFtZSBUIyM4LCB0eXBlbmFtZSBUIyM5Ci0KLS8vIEluIHRoZW9yeSwgZGVmaW5pbmcg
c3R1ZmYgaW4gdGhlIDo6c3RkIG5hbWVzcGFjZSBpcyB1bmRlZmluZWQKLS8vIGJlaGF2aW9yLiAg
V2UgY2FuIGRvIHRoaXMgYXMgd2UgYXJlIHBsYXlpbmcgdGhlIHJvbGUgb2YgYSBzdGFuZGFyZAot
Ly8gbGlicmFyeSB2ZW5kb3IuCi1uYW1lc3BhY2Ugc3RkIHsKLW5hbWVzcGFjZSB0cjEgewotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVDAgPSB2b2lkLCB0eXBlbmFtZSBUMSA9IHZvaWQsIHR5cGVuYW1l
IFQyID0gdm9pZCwKLSAgICB0eXBlbmFtZSBUMyA9IHZvaWQsIHR5cGVuYW1lIFQ0ID0gdm9pZCwg
dHlwZW5hbWUgVDUgPSB2b2lkLAotICAgIHR5cGVuYW1lIFQ2ID0gdm9pZCwgdHlwZW5hbWUgVDcg
PSB2b2lkLCB0eXBlbmFtZSBUOCA9IHZvaWQsCi0gICAgdHlwZW5hbWUgVDkgPSB2b2lkPgotY2xh
c3MgdHVwbGU7Ci0KLS8vIEFueXRoaW5nIGluIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCBpcyBH
b29nbGUgVGVzdCdzIElOVEVSTkFMCi0vLyBJTVBMRU1FTlRBVElPTiBERVRBSUwgYW5kIE1VU1Qg
Tk9UIEJFIFVTRUQgRElSRUNUTFkgaW4gdXNlciBjb2RlLgotbmFtZXNwYWNlIGd0ZXN0X2ludGVy
bmFsIHsKLQotLy8gQnlSZWY8VD46OnR5cGUgaXMgVCBpZiBUIGlzIGEgcmVmZXJlbmNlOyBvdGhl
cndpc2UgaXQncyBjb25zdCBUJi4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEJ5UmVm
IHsgdHlwZWRlZiBjb25zdCBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLXN0cnVjdCBCeVJlZjxUJj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQK
LQotLy8gQSBoYW5keSB3cmFwcGVyIGZvciBCeVJlZi4KLSNkZWZpbmUgR1RFU1RfQllfUkVGXyhU
KSB0eXBlbmFtZSA6OnN0ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6QnlSZWY8VD46OnR5cGUKLQot
Ly8gQWRkUmVmPFQ+Ojp0eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0
J3MgVCYuICBUaGlzCi0vLyBpcyB0aGUgc2FtZSBhcyB0cjE6OmFkZF9yZWZlcmVuY2U8VD46OnR5
cGUuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWYgeyB0eXBlZGVmIFQmIHR5
cGU7IH07ICAvLyBOT0xJTlQKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IEFkZFJlZjxU
Jj4geyB0eXBlZGVmIFQmIHR5cGU7IH07ICAvLyBOT0xJTlQKLQotLy8gQSBoYW5keSB3cmFwcGVy
IGZvciBBZGRSZWYuCi0jZGVmaW5lIEdURVNUX0FERF9SRUZfKFQpIHR5cGVuYW1lIDo6c3RkOjp0
cjE6Omd0ZXN0X2ludGVybmFsOjpBZGRSZWY8VD46OnR5cGUKLQotLy8gQSBoZWxwZXIgZm9yIGlt
cGxlbWVudGluZyBnZXQ8az4oKS4KLXRlbXBsYXRlIDxpbnQgaz4gY2xhc3MgR2V0OwotCi0vLyBB
IGhlbHBlciBmb3IgaW1wbGVtZW50aW5nIHR1cGxlX2VsZW1lbnQ8aywgVD4uICBrSW5kZXhWYWxp
ZCBpcyB0cnVlCi0vLyBpZmYgayA8IHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHR1cGxlIHR5cGUg
VC4KLXRlbXBsYXRlIDxib29sIGtJbmRleFZhbGlkLCBpbnQga0luZGV4LCBjbGFzcyBUdXBsZT4K
LXN0cnVjdCBUdXBsZUVsZW1lbnQ7Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAwLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDAgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAxLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDEgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAyLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDIgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCAzLCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDMgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA0LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDQgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA1LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDUgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA2LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDYgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA3LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDcgdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA4LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDggdHlwZTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQp
Pgotc3RydWN0IFR1cGxlRWxlbWVudDx0cnVlLCA5LCBHVEVTVF8xMF9UVVBMRV8oVCkgPiB7Ci0g
IHR5cGVkZWYgVDkgdHlwZTsKLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbAot
Ci10ZW1wbGF0ZSA8PgotY2xhc3MgdHVwbGU8PiB7Ci0gcHVibGljOgotICB0dXBsZSgpIHt9Ci0g
IHR1cGxlKGNvbnN0IHR1cGxlJiAvKiB0ICovKSAge30KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25z
dCB0dXBsZSYgLyogdCAqLykgeyByZXR1cm4gKnRoaXM7IH0KLX07Ci0KLXRlbXBsYXRlIDxHVEVT
VF8xX1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF8xX1RVUExFXyhUKSB7Ci0gcHVibGljOgot
ICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9pbnRlcm5hbDo6R2V0OwotCi0g
IHR1cGxlKCkgOiBmMF8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDAp
IGYwKSA6IGYwXyhmMCkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5mMF8p
IHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzFfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3Qg
R1RFU1RfMV9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRv
cj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUg
PEdURVNUXzFfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8x
X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0gIEdURVNU
X0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1F
U18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8xX1RVUExFXyhVKSYgdCkgewot
ICAgIGYwXyA9IHQuZjBfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF8yX1RZUEVOQU1FU18oVCk+Ci1jbGFzcyBHVEVTVF8yX1RVUExF
XyhUKSB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8aW50IGs+IGZyaWVuZCBjbGFzcyBndGVzdF9p
bnRlcm5hbDo6R2V0OwotCi0gIHR1cGxlKCkgOiBmMF8oKSwgZjFfKCkge30KLQotICBleHBsaWNp
dCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEpIDogZjBf
KGYwKSwKLSAgICAgIGYxXyhmMSkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8o
dC5mMF8pLCBmMV8odC5mMV8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhV
KT4KLSAgdHVwbGUoY29uc3QgR1RFU1RfMl9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFf
KHQuZjFfKSB7fQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgotICB0dXBs
ZShjb25zdCA6OnN0ZDo6cGFpcjxVMCwgVTE+JiBwKSA6IGYwXyhwLmZpcnN0KSwgZjFfKHAuc2Vj
b25kKSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENv
cHlGcm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhVKT4KLSAgdHVw
bGUmIG9wZXJhdG9yPShjb25zdCBHVEVTVF8yX1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBD
b3B5RnJvbSh0KTsKLSAgfQotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVuYW1lIFUxPgot
ICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHApIHsKLSAgICBm
MF8gPSBwLmZpcnN0OwotICAgIGYxXyA9IHAuc2Vjb25kOwotICAgIHJldHVybiAqdGhpczsKLSAg
fQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVT
VF8yX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF8yX1RVUExF
XyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIHJldHVy
biAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotfTsKLQotdGVtcGxhdGUgPEdU
RVNUXzNfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzNfVFVQTEVfKFQpIHsKLSBwdWJsaWM6
Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0K
LSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShH
VEVTVF9CWV9SRUZfKFQwKSBmMCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9C
WV9SRUZfKFQyKSBmMikgOiBmMF8oZjApLCBmMV8oZjEpLCBmMl8oZjIpIHt9Ci0KLSAgdHVwbGUo
Y29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSB7fQot
Ci0gIHRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNU
XzNfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXykge30K
LQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0
KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF8zX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVy
YXRvcj0oY29uc3QgR1RFU1RfM19UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20o
dCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1wbGF0
ZSA8R1RFU1RfM19UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RFU1Rf
M19UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsKLSAg
ICBmMl8gPSB0LmYyXzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQx
IGYxXzsKLSAgVDIgZjJfOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzRfVFlQRU5BTUVTXyhUKT4K
LWNsYXNzIEdURVNUXzRfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4g
ZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBm
MV8oKSwgZjJfKCksIGYzXygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhU
MCkgZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIs
IEdURVNUX0JZX1JFRl8oVDMpIGYzKSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiksCi0gICAg
ICBmM18oZjMpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFf
KHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF80
X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0IEdURVNUXzRfVFVQTEVfKFUpJiB0KSA6IGYw
Xyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pIHt9Ci0K
LSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7
IH0KLQotICB0ZW1wbGF0ZSA8R1RFU1RfNF9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0
b3I9KGNvbnN0IEdURVNUXzRfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQp
OwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUg
PEdURVNUXzRfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzRf
VFVQTEVfKFUpJiB0KSB7Ci0gICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAg
ZjJfID0gdC5mMl87Ci0gICAgZjNfID0gdC5mM187Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotfTsKLQotdGVtcGxh
dGUgPEdURVNUXzVfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzVfVFVQTEVfKFQpIHsKLSBw
dWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpH
ZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8oKSB7fQot
Ci0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVTVF9CWV9SRUZfKFQx
KSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9SRUZfKFQzKSBmMywK
LSAgICAgIEdURVNUX0JZX1JFRl8oVDQpIGY0KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiks
IGYzXyhmMyksIGY0XyhmNCkge30KLQotICB0dXBsZShjb25zdCB0dXBsZSYgdCkgOiBmMF8odC5m
MF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLCBmM18odC5mM18pLAotICAgICAgZjRfKHQuZjRf
KSB7fQotCi0gIHRlbXBsYXRlIDxHVEVTVF81X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlKGNvbnN0
IEdURVNUXzVfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYy
XyksCi0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8pIHt9Ci0KLSAgdHVwbGUmIG9wZXJhdG9y
PShjb25zdCB0dXBsZSYgdCkgeyByZXR1cm4gQ29weUZyb20odCk7IH0KLQotICB0ZW1wbGF0ZSA8
R1RFU1RfNV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IEdURVNUXzVf
VFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENvcHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1Rf
REVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAgdGVtcGxhdGUgPEdURVNUXzVfVFlQRU5BTUVT
XyhVKT4KLSAgdHVwbGUmIENvcHlGcm9tKGNvbnN0IEdURVNUXzVfVFVQTEVfKFUpJiB0KSB7Ci0g
ICAgZjBfID0gdC5mMF87Ci0gICAgZjFfID0gdC5mMV87Ci0gICAgZjJfID0gdC5mMl87Ci0gICAg
ZjNfID0gdC5mM187Ci0gICAgZjRfID0gdC5mNF87Ci0gICAgcmV0dXJuICp0aGlzOwotICB9Ci0K
LSAgVDAgZjBfOwotICBUMSBmMV87Ci0gIFQyIGYyXzsKLSAgVDMgZjNfOwotICBUNCBmNF87Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFQpPgotY2xhc3MgR1RFU1RfNl9UVVBM
RV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGludCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3Rf
aW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBfKCksIGYxXygpLCBmMl8oKSwgZjNfKCks
IGY0XygpLCBmNV8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYw
LCBHVEVTVF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVT
VF9CWV9SRUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9S
RUZfKFQ1KSBmNSkgOiBmMF8oZjApLCBmMV8oZjEpLCBmMl8oZjIpLCBmM18oZjMpLCBmNF8oZjQp
LAotICAgICAgZjVfKGY1KSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYw
XyksIGYxXyh0LmYxXyksIGYyXyh0LmYyXyksIGYzXyh0LmYzXyksCi0gICAgICBmNF8odC5mNF8p
LCBmNV8odC5mNV8pIHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhVKT4KLSAg
dHVwbGUoY29uc3QgR1RFU1RfNl9UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFf
KSwgZjJfKHQuZjJfKSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xykg
e30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJv
bSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF82X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBv
cGVyYXRvcj0oY29uc3QgR1RFU1RfNl9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZy
b20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1w
bGF0ZSA8R1RFU1RfNl9UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RF
U1RfNl9UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsK
LSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAg
ICBmNV8gPSB0LmY1XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotICBUMCBmMF87Ci0gIFQx
IGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsKLSAgVDUgZjVfOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzdfVFVQTEVfKFQp
IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVy
bmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8o
KSwgZjVfKCksIGY2XygpIHt9Ci0KLSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkg
ZjAsIEdURVNUX0JZX1JFRl8oVDEpIGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdU
RVNUX0JZX1JFRl8oVDMpIGYzLCBHVEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZ
X1JFRl8oVDUpIGY1LCBHVEVTVF9CWV9SRUZfKFQ2KSBmNikgOiBmMF8oZjApLCBmMV8oZjEpLCBm
Ml8oZjIpLAotICAgICAgZjNfKGYzKSwgZjRfKGY0KSwgZjVfKGY1KSwgZjZfKGY2KSB7fQotCi0g
IHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0LmYxXyksIGYyXyh0LmYy
XyksIGYzXyh0LmYzXyksCi0gICAgICBmNF8odC5mNF8pLCBmNV8odC5mNV8pLCBmNl8odC5mNl8p
IHt9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzdfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUoY29uc3Qg
R1RFU1RfN19UVVBMRV8oVSkmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJf
KSwKLSAgICAgIGYzXyh0LmYzXyksIGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2Xykg
e30KLQotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJv
bSh0KTsgfQotCi0gIHRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBv
cGVyYXRvcj0oY29uc3QgR1RFU1RfN19UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZy
b20odCk7Ci0gIH0KLQotICBHVEVTVF9ERUNMQVJFX1RVUExFX0FTX0ZSSUVORF8KLQotICB0ZW1w
bGF0ZSA8R1RFU1RfN19UWVBFTkFNRVNfKFUpPgotICB0dXBsZSYgQ29weUZyb20oY29uc3QgR1RF
U1RfN19UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0LmYxXzsK
LSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0XzsKLSAg
ICBmNV8gPSB0LmY1XzsKLSAgICBmNl8gPSB0LmY2XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0K
LQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0XzsK
LSAgVDUgZjVfOwotICBUNiBmNl87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNf
KFQpPgotY2xhc3MgR1RFU1RfOF9UVVBMRV8oVCkgewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGlu
dCBrPiBmcmllbmQgY2xhc3MgZ3Rlc3RfaW50ZXJuYWw6OkdldDsKLQotICB0dXBsZSgpIDogZjBf
KCksIGYxXygpLCBmMl8oKSwgZjNfKCksIGY0XygpLCBmNV8oKSwgZjZfKCksIGY3XygpIHt9Ci0K
LSAgZXhwbGljaXQgdHVwbGUoR1RFU1RfQllfUkVGXyhUMCkgZjAsIEdURVNUX0JZX1JFRl8oVDEp
IGYxLAotICAgICAgR1RFU1RfQllfUkVGXyhUMikgZjIsIEdURVNUX0JZX1JFRl8oVDMpIGYzLCBH
VEVTVF9CWV9SRUZfKFQ0KSBmNCwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDUpIGY1LCBHVEVTVF9C
WV9SRUZfKFQ2KSBmNiwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDcpIGY3KSA6IGYwXyhmMCksIGYx
XyhmMSksIGYyXyhmMiksIGYzXyhmMyksIGY0XyhmNCksCi0gICAgICBmNV8oZjUpLCBmNl8oZjYp
LCBmN18oZjcpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFf
KHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0
LmY1XyksIGY2Xyh0LmY2XyksIGY3Xyh0LmY3Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfOF9U
WVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF84X1RVUExFXyhVKSYgdCkgOiBmMF8o
dC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwgZjRfKHQu
ZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSB7fQotCi0gIHR1cGxlJiBv
cGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlGcm9tKHQpOyB9Ci0KLSAgdGVt
cGxhdGUgPEdURVNUXzhfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBH
VEVTVF84X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5RnJvbSh0KTsKLSAgfQotCi0g
IEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRlbXBsYXRlIDxHVEVTVF84X1RZ
UEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBHVEVTVF84X1RVUExFXyhVKSYg
dCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFfOwotICAgIGYyXyA9IHQuZjJf
OwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwotICAgIGY1XyA9IHQuZjVfOwot
ICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9IHQuZjdfOwotICAgIHJldHVybiAqdGhpczsKLSAg
fQotCi0gIFQwIGYwXzsKLSAgVDEgZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRf
OwotICBUNSBmNV87Ci0gIFQ2IGY2XzsKLSAgVDcgZjdfOwotfTsKLQotdGVtcGxhdGUgPEdURVNU
XzlfVFlQRU5BTUVTXyhUKT4KLWNsYXNzIEdURVNUXzlfVFVQTEVfKFQpIHsKLSBwdWJsaWM6Ci0g
IHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAg
dHVwbGUoKSA6IGYwXygpLCBmMV8oKSwgZjJfKCksIGYzXygpLCBmNF8oKSwgZjVfKCksIGY2Xygp
LCBmN18oKSwgZjhfKCkge30KLQotICBleHBsaWNpdCB0dXBsZShHVEVTVF9CWV9SRUZfKFQwKSBm
MCwgR1RFU1RfQllfUkVGXyhUMSkgZjEsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQyKSBmMiwgR1RF
U1RfQllfUkVGXyhUMykgZjMsIEdURVNUX0JZX1JFRl8oVDQpIGY0LAotICAgICAgR1RFU1RfQllf
UkVGXyhUNSkgZjUsIEdURVNUX0JZX1JFRl8oVDYpIGY2LCBHVEVTVF9CWV9SRUZfKFQ3KSBmNywK
LSAgICAgIEdURVNUX0JZX1JFRl8oVDgpIGY4KSA6IGYwXyhmMCksIGYxXyhmMSksIGYyXyhmMiks
IGYzXyhmMyksIGY0XyhmNCksCi0gICAgICBmNV8oZjUpLCBmNl8oZjYpLCBmN18oZjcpLCBmOF8o
ZjgpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQpIDogZjBfKHQuZjBfKSwgZjFfKHQuZjFf
KSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAgIGY0Xyh0LmY0XyksIGY1Xyh0LmY1Xyks
IGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4Xykge30KLQotICB0ZW1wbGF0ZSA8R1RF
U1RfOV9UWVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF85X1RVUExFXyhVKSYgdCkg
OiBmMF8odC5mMF8pLCBmMV8odC5mMV8pLCBmMl8odC5mMl8pLAotICAgICAgZjNfKHQuZjNfKSwg
ZjRfKHQuZjRfKSwgZjVfKHQuZjVfKSwgZjZfKHQuZjZfKSwgZjdfKHQuZjdfKSwgZjhfKHQuZjhf
KSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlG
cm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhVKT4KLSAgdHVwbGUm
IG9wZXJhdG9yPShjb25zdCBHVEVTVF85X1RVUExFXyhVKSYgdCkgewotICAgIHJldHVybiBDb3B5
RnJvbSh0KTsKLSAgfQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0gIHRl
bXBsYXRlIDxHVEVTVF85X1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25zdCBH
VEVTVF85X1RVUExFXyhVKSYgdCkgewotICAgIGYwXyA9IHQuZjBfOwotICAgIGYxXyA9IHQuZjFf
OwotICAgIGYyXyA9IHQuZjJfOwotICAgIGYzXyA9IHQuZjNfOwotICAgIGY0XyA9IHQuZjRfOwot
ICAgIGY1XyA9IHQuZjVfOwotICAgIGY2XyA9IHQuZjZfOwotICAgIGY3XyA9IHQuZjdfOwotICAg
IGY4XyA9IHQuZjhfOwotICAgIHJldHVybiAqdGhpczsKLSAgfQotCi0gIFQwIGYwXzsKLSAgVDEg
ZjFfOwotICBUMiBmMl87Ci0gIFQzIGYzXzsKLSAgVDQgZjRfOwotICBUNSBmNV87Ci0gIFQ2IGY2
XzsKLSAgVDcgZjdfOwotICBUOCBmOF87Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5B
TUVTXyhUKT4KLWNsYXNzIHR1cGxlIHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJp
ZW5kIGNsYXNzIGd0ZXN0X2ludGVybmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6IGYwXygpLCBmMV8o
KSwgZjJfKCksIGYzXygpLCBmNF8oKSwgZjVfKCksIGY2XygpLCBmN18oKSwgZjhfKCksCi0gICAg
ICBmOV8oKSB7fQotCi0gIGV4cGxpY2l0IHR1cGxlKEdURVNUX0JZX1JFRl8oVDApIGYwLCBHVEVT
VF9CWV9SRUZfKFQxKSBmMSwKLSAgICAgIEdURVNUX0JZX1JFRl8oVDIpIGYyLCBHVEVTVF9CWV9S
RUZfKFQzKSBmMywgR1RFU1RfQllfUkVGXyhUNCkgZjQsCi0gICAgICBHVEVTVF9CWV9SRUZfKFQ1
KSBmNSwgR1RFU1RfQllfUkVGXyhUNikgZjYsIEdURVNUX0JZX1JFRl8oVDcpIGY3LAotICAgICAg
R1RFU1RfQllfUkVGXyhUOCkgZjgsIEdURVNUX0JZX1JFRl8oVDkpIGY5KSA6IGYwXyhmMCksIGYx
XyhmMSksIGYyXyhmMiksCi0gICAgICBmM18oZjMpLCBmNF8oZjQpLCBmNV8oZjUpLCBmNl8oZjYp
LCBmN18oZjcpLCBmOF8oZjgpLCBmOV8oZjkpIHt9Ci0KLSAgdHVwbGUoY29uc3QgdHVwbGUmIHQp
IDogZjBfKHQuZjBfKSwgZjFfKHQuZjFfKSwgZjJfKHQuZjJfKSwgZjNfKHQuZjNfKSwKLSAgICAg
IGY0Xyh0LmY0XyksIGY1Xyh0LmY1XyksIGY2Xyh0LmY2XyksIGY3Xyh0LmY3XyksIGY4Xyh0LmY4
XyksIGY5Xyh0LmY5Xykge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfMTBfVFlQRU5BTUVTXyhVKT4K
LSAgdHVwbGUoY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB0KSA6IGYwXyh0LmYwXyksIGYxXyh0
LmYxXyksIGYyXyh0LmYyXyksCi0gICAgICBmM18odC5mM18pLCBmNF8odC5mNF8pLCBmNV8odC5m
NV8pLCBmNl8odC5mNl8pLCBmN18odC5mN18pLCBmOF8odC5mOF8pLAotICAgICAgZjlfKHQuZjlf
KSB7fQotCi0gIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgdHVwbGUmIHQpIHsgcmV0dXJuIENvcHlG
cm9tKHQpOyB9Ci0KLSAgdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxl
JiBvcGVyYXRvcj0oY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB0KSB7Ci0gICAgcmV0dXJuIENv
cHlGcm9tKHQpOwotICB9Ci0KLSAgR1RFU1RfREVDTEFSRV9UVVBMRV9BU19GUklFTkRfCi0KLSAg
dGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShjb25z
dCBHVEVTVF8xMF9UVVBMRV8oVSkmIHQpIHsKLSAgICBmMF8gPSB0LmYwXzsKLSAgICBmMV8gPSB0
LmYxXzsKLSAgICBmMl8gPSB0LmYyXzsKLSAgICBmM18gPSB0LmYzXzsKLSAgICBmNF8gPSB0LmY0
XzsKLSAgICBmNV8gPSB0LmY1XzsKLSAgICBmNl8gPSB0LmY2XzsKLSAgICBmN18gPSB0LmY3XzsK
LSAgICBmOF8gPSB0LmY4XzsKLSAgICBmOV8gPSB0LmY5XzsKLSAgICByZXR1cm4gKnRoaXM7Ci0g
IH0KLQotICBUMCBmMF87Ci0gIFQxIGYxXzsKLSAgVDIgZjJfOwotICBUMyBmM187Ci0gIFQ0IGY0
XzsKLSAgVDUgZjVfOwotICBUNiBmNl87Ci0gIFQ3IGY3XzsKLSAgVDggZjhfOwotICBUOSBmOV87
Ci19OwotCi0vLyA2LjEuMy4yIFR1cGxlIGNyZWF0aW9uIGZ1bmN0aW9ucy4KLQotLy8gS25vd24g
bGltaXRhdGlvbnM6IHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBhbgotLy8gc3RkOjp0cjE6OnJl
ZmVyZW5jZV93cmFwcGVyPFQ+IHRvIG1ha2VfdHVwbGUoKS4gIEFuZCB3ZSBkb24ndAotLy8gaW1w
bGVtZW50IHRpZSgpLgotCi1pbmxpbmUgdHVwbGU8PiBtYWtlX3R1cGxlKCkgeyByZXR1cm4gdHVw
bGU8PigpOyB9Ci0KLXRlbXBsYXRlIDxHVEVTVF8xX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RF
U1RfMV9UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjApIHsKLSAgcmV0dXJuIEdURVNU
XzFfVFVQTEVfKFQpKGYwKTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzJfVFlQRU5BTUVTXyhUKT4K
LWlubGluZSBHVEVTVF8yX1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3Qg
VDEmIGYxKSB7Ci0gIHJldHVybiBHVEVTVF8yX1RVUExFXyhUKShmMCwgZjEpOwotfQotCi10ZW1w
bGF0ZSA8R1RFU1RfM19UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzNfVFVQTEVfKFQpIG1h
a2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMikgewotICBy
ZXR1cm4gR1RFU1RfM19UVVBMRV8oVCkoZjAsIGYxLCBmMik7Ci19Ci0KLXRlbXBsYXRlIDxHVEVT
VF80X1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfNF9UVVBMRV8oVCkgbWFrZV90dXBsZShj
b25zdCBUMCYgZjAsIGNvbnN0IFQxJiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBm
MykgewotICByZXR1cm4gR1RFU1RfNF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMpOwotfQotCi10
ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNfKFQpPgotaW5saW5lIEdURVNUXzVfVFVQTEVfKFQp
IG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAg
ICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCkgewotICByZXR1cm4gR1RFU1RfNV9UVVBMRV8o
VCkoZjAsIGYxLCBmMiwgZjMsIGY0KTsKLX0KLQotdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVT
XyhUKT4KLWlubGluZSBHVEVTVF82X1RVUExFXyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwg
Y29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIsCi0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYg
ZjQsIGNvbnN0IFQ1JiBmNSkgewotICByZXR1cm4gR1RFU1RfNl9UVVBMRV8oVCkoZjAsIGYxLCBm
MiwgZjMsIGY0LCBmNSk7Ci19Ci0KLXRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVCk+Ci1p
bmxpbmUgR1RFU1RfN19UVVBMRV8oVCkgbWFrZV90dXBsZShjb25zdCBUMCYgZjAsIGNvbnN0IFQx
JiBmMSwgY29uc3QgVDImIGYyLAotICAgIGNvbnN0IFQzJiBmMywgY29uc3QgVDQmIGY0LCBjb25z
dCBUNSYgZjUsIGNvbnN0IFQ2JiBmNikgewotICByZXR1cm4gR1RFU1RfN19UVVBMRV8oVCkoZjAs
IGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYpOwotfQotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFN
RVNfKFQpPgotaW5saW5lIEdURVNUXzhfVFVQTEVfKFQpIG1ha2VfdHVwbGUoY29uc3QgVDAmIGYw
LCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAgICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0
JiBmNCwgY29uc3QgVDUmIGY1LCBjb25zdCBUNiYgZjYsIGNvbnN0IFQ3JiBmNykgewotICByZXR1
cm4gR1RFU1RfOF9UVVBMRV8oVCkoZjAsIGYxLCBmMiwgZjMsIGY0LCBmNSwgZjYsIGY3KTsKLX0K
LQotdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBHVEVTVF85X1RVUExF
XyhUKSBtYWtlX3R1cGxlKGNvbnN0IFQwJiBmMCwgY29uc3QgVDEmIGYxLCBjb25zdCBUMiYgZjIs
Ci0gICAgY29uc3QgVDMmIGYzLCBjb25zdCBUNCYgZjQsIGNvbnN0IFQ1JiBmNSwgY29uc3QgVDYm
IGY2LCBjb25zdCBUNyYgZjcsCi0gICAgY29uc3QgVDgmIGY4KSB7Ci0gIHJldHVybiBHVEVTVF85
X1RVUExFXyhUKShmMCwgZjEsIGYyLCBmMywgZjQsIGY1LCBmNiwgZjcsIGY4KTsKLX0KLQotdGVt
cGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCk+Ci1pbmxpbmUgR1RFU1RfMTBfVFVQTEVfKFQp
IG1ha2VfdHVwbGUoY29uc3QgVDAmIGYwLCBjb25zdCBUMSYgZjEsIGNvbnN0IFQyJiBmMiwKLSAg
ICBjb25zdCBUMyYgZjMsIGNvbnN0IFQ0JiBmNCwgY29uc3QgVDUmIGY1LCBjb25zdCBUNiYgZjYs
IGNvbnN0IFQ3JiBmNywKLSAgICBjb25zdCBUOCYgZjgsIGNvbnN0IFQ5JiBmOSkgewotICByZXR1
cm4gR1RFU1RfMTBfVFVQTEVfKFQpKGYwLCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjgs
IGY5KTsKLX0KLQotLy8gNi4xLjMuMyBUdXBsZSBoZWxwZXIgY2xhc3Nlcy4KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFR1cGxlPiBzdHJ1Y3QgdHVwbGVfc2l6ZTsKLQotdGVtcGxhdGUgPEdURVNUXzBf
VFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzBfVFVQTEVfKFQpID4gewot
ICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xX1RZ
UEVOQU1FU18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF8xX1RVUExFXyhUKSA+IHsKLSAg
c3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDE7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfMl9UWVBF
TkFNRVNfKFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfMl9UVVBMRV8oVCkgPiB7Ci0gIHN0
YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAyOwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzNfVFlQRU5B
TUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzNfVFVQTEVfKFQpID4gewotICBzdGF0
aWMgY29uc3QgaW50IHZhbHVlID0gMzsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF80X1RZUEVOQU1F
U18oVCk+Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF80X1RVUExFXyhUKSA+IHsKLSAgc3RhdGlj
IGNvbnN0IGludCB2YWx1ZSA9IDQ7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfNV9UWVBFTkFNRVNf
KFQpPgotc3RydWN0IHR1cGxlX3NpemU8R1RFU1RfNV9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBj
b25zdCBpbnQgdmFsdWUgPSA1OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzZfVFlQRU5BTUVTXyhU
KT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXzZfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29u
c3QgaW50IHZhbHVlID0gNjsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF83X1RZUEVOQU1FU18oVCk+
Ci1zdHJ1Y3QgdHVwbGVfc2l6ZTxHVEVTVF83X1RVUExFXyhUKSA+IHsKLSAgc3RhdGljIGNvbnN0
IGludCB2YWx1ZSA9IDc7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfOF9UWVBFTkFNRVNfKFQpPgot
c3RydWN0IHR1cGxlX3NpemU8R1RFU1RfOF9UVVBMRV8oVCkgPiB7Ci0gIHN0YXRpYyBjb25zdCBp
bnQgdmFsdWUgPSA4OwotfTsKLQotdGVtcGxhdGUgPEdURVNUXzlfVFlQRU5BTUVTXyhUKT4KLXN0
cnVjdCB0dXBsZV9zaXplPEdURVNUXzlfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50
IHZhbHVlID0gOTsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotc3Ry
dWN0IHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50
IHZhbHVlID0gMTA7Ci19OwotCi10ZW1wbGF0ZSA8aW50IGssIGNsYXNzIFR1cGxlPgotc3RydWN0
IHR1cGxlX2VsZW1lbnQgewotICB0eXBlZGVmIHR5cGVuYW1lIGd0ZXN0X2ludGVybmFsOjpUdXBs
ZUVsZW1lbnQ8Ci0gICAgICBrIDwgKHR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZSksIGssIFR1cGxl
Pjo6dHlwZSB0eXBlOwotfTsKLQotI2RlZmluZSBHVEVTVF9UVVBMRV9FTEVNRU5UXyhrLCBUdXBs
ZSkgdHlwZW5hbWUgdHVwbGVfZWxlbWVudDxrLCBUdXBsZSA+Ojp0eXBlCi0KLS8vIDYuMS4zLjQg
RWxlbWVudCBhY2Nlc3MuCi0KLW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLXRlbXBsYXRl
IDw+Ci1jbGFzcyBHZXQ8MD4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgot
ICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oMCwgVHVwbGUpKQot
ICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mMF87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBs
YXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxF
TUVOVF8oMCwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0
LmYwXzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDwxPiB7Ci0gcHVibGljOgotICB0
ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBM
RV9FTEVNRU5UXygxLCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJldHVybiB0LmYxXzsg
fSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1Rf
QllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygxLCBUdXBsZSkpCi0gIENvbnN0RmllbGQoY29u
c3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjFfOyB9Ci19OwotCi10ZW1wbGF0ZSA8PgotY2xhc3Mg
R2V0PDI+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdU
RVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDIsIFR1cGxlKSkKLSAgRmllbGQoVHVw
bGUmIHQpIHsgcmV0dXJuIHQuZjJfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3Mg
VHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDIsIFR1
cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4gdC5mMl87IH0KLX07
Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8Mz4gewotIHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNs
YXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8o
MywgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mM187IH0gIC8vIE5PTElO
VAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RF
U1RfVFVQTEVfRUxFTUVOVF8oMywgVHVwbGUpKQotICBDb25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0
KSB7IHJldHVybiB0LmYzXzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNzIEdldDw0PiB7Ci0g
cHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9BRERfUkVG
XyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg0LCBUdXBsZSkpCi0gIEZpZWxkKFR1cGxlJiB0KSB7IHJl
dHVybiB0LmY0XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBz
dGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg0LCBUdXBsZSkpCi0gIENv
bnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjRfOyB9Ci19OwotCi10ZW1wbGF0
ZSA8PgotY2xhc3MgR2V0PDU+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4K
LSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKDUsIFR1cGxlKSkK
LSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjVfOyB9ICAvLyBOT0xJTlQKLQotICB0ZW1w
bGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdURVNUX1RVUExFX0VM
RU1FTlRfKDUsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4g
dC5mNV87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8Nj4gewotIHB1YmxpYzoKLSAg
dGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JFRl8oR1RFU1RfVFVQ
TEVfRUxFTUVOVF8oNiwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mNl87
IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNU
X0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oNiwgVHVwbGUpKQotICBDb25zdEZpZWxkKGNv
bnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmY2XzsgfQotfTsKLQotdGVtcGxhdGUgPD4KLWNsYXNz
IEdldDw3PiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBH
VEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg3LCBUdXBsZSkpCi0gIEZpZWxkKFR1
cGxlJiB0KSB7IHJldHVybiB0LmY3XzsgfSAgLy8gTk9MSU5UCi0KLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyg3LCBU
dXBsZSkpCi0gIENvbnN0RmllbGQoY29uc3QgVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjdfOyB9Ci19
OwotCi10ZW1wbGF0ZSA8PgotY2xhc3MgR2V0PDg+IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxj
bGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRf
KDgsIFR1cGxlKSkKLSAgRmllbGQoVHVwbGUmIHQpIHsgcmV0dXJuIHQuZjhfOyB9ICAvLyBOT0xJ
TlQKLQotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0YXRpYyBHVEVTVF9CWV9SRUZfKEdU
RVNUX1RVUExFX0VMRU1FTlRfKDgsIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYg
dCkgeyByZXR1cm4gdC5mOF87IH0KLX07Ci0KLXRlbXBsYXRlIDw+Ci1jbGFzcyBHZXQ8OT4gewot
IHB1YmxpYzoKLSAgdGVtcGxhdGUgPGNsYXNzIFR1cGxlPgotICBzdGF0aWMgR1RFU1RfQUREX1JF
Rl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOSwgVHVwbGUpKQotICBGaWVsZChUdXBsZSYgdCkgeyBy
ZXR1cm4gdC5mOV87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZT4KLSAg
c3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxFTUVOVF8oOSwgVHVwbGUpKQotICBD
b25zdEZpZWxkKGNvbnN0IFR1cGxlJiB0KSB7IHJldHVybiB0LmY5XzsgfQotfTsKLQotfSAgLy8g
bmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfMTBfVFlQ
RU5BTUVTXyhUKT4KLUdURVNUX0FERF9SRUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssIEdURVNU
XzEwX1RVUExFXyhUKSkpCi1nZXQoR1RFU1RfMTBfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVybiBn
dGVzdF9pbnRlcm5hbDo6R2V0PGs+OjpGaWVsZCh0KTsKLX0KLQotdGVtcGxhdGUgPGludCBrLCBH
VEVTVF8xMF9UWVBFTkFNRVNfKFQpPgotR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5U
XyhrLCAgR1RFU1RfMTBfVFVQTEVfKFQpKSkKLWdldChjb25zdCBHVEVTVF8xMF9UVVBMRV8oVCkm
IHQpIHsKLSAgcmV0dXJuIGd0ZXN0X2ludGVybmFsOjpHZXQ8az46OkNvbnN0RmllbGQodCk7Ci19
Ci0KLS8vIDYuMS4zLjUgUmVsYXRpb25hbCBvcGVyYXRvcnMKLQotLy8gV2Ugb25seSBpbXBsZW1l
bnQgPT0gYW5kICE9LCBhcyB3ZSBkb24ndCBoYXZlIGEgbmVlZCBmb3IgdGhlIHJlc3QgeWV0Lgot
Ci1uYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwgewotCi0vLyBTYW1lU2l6ZVR1cGxlUHJlZml4Q29t
cGFyYXRvcjxrLCBrPjo6RXEodDEsIHQyKSByZXR1cm5zIHRydWUgaWYgdGhlCi0vLyBmaXJzdCBr
IGZpZWxkcyBvZiB0MSBlcXVhbHMgdGhlIGZpcnN0IGsgZmllbGRzIG9mIHQyLgotLy8gU2FtZVNp
emVUdXBsZVByZWZpeENvbXBhcmF0b3IoazEsIGsyKSB3b3VsZCBiZSBhIGNvbXBpbGVyIGVycm9y
IGlmCi0vLyBrMSAhPSBrMi4KLXRlbXBsYXRlIDxpbnQga1NpemUxLCBpbnQga1NpemUyPgotc3Ry
dWN0IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yOwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0
IFNhbWVTaXplVHVwbGVQcmVmaXhDb21wYXJhdG9yPDAsIDA+IHsKLSAgdGVtcGxhdGUgPGNsYXNz
IFR1cGxlMSwgY2xhc3MgVHVwbGUyPgotICBzdGF0aWMgYm9vbCBFcShjb25zdCBUdXBsZTEmIC8q
IHQxICovLCBjb25zdCBUdXBsZTImIC8qIHQyICovKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0K
LX07Ci0KLXRlbXBsYXRlIDxpbnQgaz4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFy
YXRvcjxrLCBrPiB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNzIFR1cGxlMj4KLSAg
c3RhdGljIGJvb2wgRXEoY29uc3QgVHVwbGUxJiB0MSwgY29uc3QgVHVwbGUyJiB0MikgewotICAg
IHJldHVybiBTYW1lU2l6ZVR1cGxlUHJlZml4Q29tcGFyYXRvcjxrIC0gMSwgayAtIDE+OjpFcSh0
MSwgdDIpICYmCi0gICAgICAgIDo6c3RkOjp0cjE6OmdldDxrIC0gMT4odDEpID09IDo6c3RkOjp0
cjE6OmdldDxrIC0gMT4odDIpOwotICB9Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgZ3Rlc3RfaW50
ZXJuYWwKLQotdGVtcGxhdGUgPEdURVNUXzEwX1RZUEVOQU1FU18oVCksIEdURVNUXzEwX1RZUEVO
QU1FU18oVSk+Ci1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdURVNUXzEwX1RVUExFXyhU
KSYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1RFU1RfMTBfVFVQTEVfKFUpJiB1
KSB7Ci0gIHJldHVybiBndGVzdF9pbnRlcm5hbDo6U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0
b3I8Ci0gICAgICB0dXBsZV9zaXplPEdURVNUXzEwX1RVUExFXyhUKSA+Ojp2YWx1ZSwKLSAgICAg
IHR1cGxlX3NpemU8R1RFU1RfMTBfVFVQTEVfKFUpID46OnZhbHVlPjo6RXEodCwgdSk7Ci19Ci0K
LXRlbXBsYXRlIDxHVEVTVF8xMF9UWVBFTkFNRVNfKFQpLCBHVEVTVF8xMF9UWVBFTkFNRVNfKFUp
PgotaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBHVEVTVF8xMF9UVVBMRV8oVCkmIHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXzEwX1RVUExFXyhVKSYgdSkgeyByZXR1
cm4gISh0ID09IHUpOyB9Ci0KLS8vIDYuMS40IFBhaXJzLgotLy8gVW5pbXBsZW1lbnRlZC4KLQot
fSAgLy8gbmFtZXNwYWNlIHRyMQotfSAgLy8gbmFtZXNwYWNlIHN0ZAotCi0jdW5kZWYgR1RFU1Rf
MF9UVVBMRV8KLSN1bmRlZiBHVEVTVF8xX1RVUExFXwotI3VuZGVmIEdURVNUXzJfVFVQTEVfCi0j
dW5kZWYgR1RFU1RfM19UVVBMRV8KLSN1bmRlZiBHVEVTVF80X1RVUExFXwotI3VuZGVmIEdURVNU
XzVfVFVQTEVfCi0jdW5kZWYgR1RFU1RfNl9UVVBMRV8KLSN1bmRlZiBHVEVTVF83X1RVUExFXwot
I3VuZGVmIEdURVNUXzhfVFVQTEVfCi0jdW5kZWYgR1RFU1RfOV9UVVBMRV8KLSN1bmRlZiBHVEVT
VF8xMF9UVVBMRV8KLQotI3VuZGVmIEdURVNUXzBfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzFf
VFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzJfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzNfVFlQ
RU5BTUVTXwotI3VuZGVmIEdURVNUXzRfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzVfVFlQRU5B
TUVTXwotI3VuZGVmIEdURVNUXzZfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzdfVFlQRU5BTUVT
XwotI3VuZGVmIEdURVNUXzhfVFlQRU5BTUVTXwotI3VuZGVmIEdURVNUXzlfVFlQRU5BTUVTXwot
I3VuZGVmIEdURVNUXzEwX1RZUEVOQU1FU18KLQotI3VuZGVmIEdURVNUX0RFQ0xBUkVfVFVQTEVf
QVNfRlJJRU5EXwotI3VuZGVmIEdURVNUX0JZX1JFRl8KLSN1bmRlZiBHVEVTVF9BRERfUkVGXwot
I3VuZGVmIEdURVNUX1RVUExFX0VMRU1FTlRfCi0KLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9H
VEVTVF9JTlRFUk5BTF9HVEVTVF9UVVBMRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oLnB1bXAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR1cGxlLmgu
cHVtcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI2MjZlMDQ5ZjA4NzgwZmZjZTk2
ZDQ4NTJjYjhlZDVkM2VmNWYxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFs
L2d0ZXN0LXR1cGxlLmgucHVtcAorKysgL2Rldi9udWxsCkBAIC0xLDM0OCArMCwwIEBACi0kJCAt
Ki0gbW9kZTogYysrOyAtKi0KLSR2YXIgbiA9IDEwICAkJCBNYXhpbXVtIG51bWJlciBvZiB0dXBs
ZSBmaWVsZHMgd2Ugd2FudCB0byBzdXBwb3J0LgotJCQgVGhpcyBtZXRhIGNvbW1lbnQgZml4ZXMg
YXV0by1pbmRlbnRhdGlvbiBpbiBFbWFjcy4gfX0KLS8vIENvcHlyaWdodCAyMDA5IEdvb2dsZSBJ
bmMuCi0vLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0v
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLS8vIEltcGxlbWVudHMgYSBzdWJzZXQgb2YgVFIxIHR1cGxl
IG5lZWRlZCBieSBHb29nbGUgVGVzdCBhbmQgR29vZ2xlIE1vY2suCi0KLS8vIEdPT0dMRVRFU1Rf
Q00wMDAxIERPIE5PVCBERUxFVEUKLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVS
TkFMX0dURVNUX1RVUExFX0hfCi0jZGVmaW5lIEdURVNUX0lOQ0xVREVfR1RFU1RfSU5URVJOQUxf
R1RFU1RfVFVQTEVfSF8KLQotI2luY2x1ZGUgPHV0aWxpdHk+ICAvLyBGb3IgOjpzdGQ6OnBhaXIu
Ci0KLS8vIFRoZSBjb21waWxlciB1c2VkIGluIFN5bWJpYW4gaGFzIGEgYnVnIHRoYXQgcHJldmVu
dHMgdXMgZnJvbSBkZWNsYXJpbmcgdGhlCi0vLyB0dXBsZSB0ZW1wbGF0ZSBhcyBhIGZyaWVuZCAo
aXQgY29tcGxhaW5zIHRoYXQgdHVwbGUgaXMgcmVkZWZpbmVkKS4gIFRoaXMKLS8vIGJ5cGFzc2Vz
IHRoZSBidWcgYnkgZGVjbGFyaW5nIHRoZSBtZW1iZXJzIHRoYXQgc2hvdWxkIG90aGVyd2lzZSBi
ZQotLy8gcHJpdmF0ZSBhcyBwdWJsaWMuCi0vLyBTdW4gU3R1ZGlvIHZlcnNpb25zIDwgMTIgYWxz
byBoYXZlIHRoZSBhYm92ZSBidWcuCi0jaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSB8fCAoZGVm
aW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPCAweDU5MCkKLSMgZGVmaW5lIEdURVNU
X0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXyBwdWJsaWM6Ci0jZWxzZQotIyBkZWZpbmUgR1RFU1Rf
REVDTEFSRV9UVVBMRV9BU19GUklFTkRfIFwKLSAgICB0ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBF
TkFNRVNfKFUpPiBmcmllbmQgY2xhc3MgdHVwbGU7IFwKLSAgIHByaXZhdGU6Ci0jZW5kaWYKLQot
Ly8gVmlzdWFsIFN0dWRpbyAyMDEwLCAyMDEyLCBhbmQgMjAxMyBkZWZpbmUgc3ltYm9scyBpbiBz
dGQ6OnRyMSB0aGF0IGNvbmZsaWN0Ci0vLyB3aXRoIG91ciBvd24gZGVmaW5pdGlvbnMuIFRoZXJl
Zm9yZSB1c2luZyBvdXIgb3duIHR1cGxlIGRvZXMgbm90IHdvcmsgb24KLS8vIHRob3NlIGNvbXBp
bGVycy4KLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwICAvKiAxNjAw
IGlzIFZpc3VhbCBTdHVkaW8gMjAxMCAqLwotIyBlcnJvciAiZ3Rlc3QncyB0dXBsZSBkb2Vzbid0
IGNvbXBpbGUgb24gVmlzdWFsIFN0dWRpbyAyMDEwIG9yIGxhdGVyLiBcCi1HVEVTVF9VU0VfT1dO
X1RSMV9UVVBMRSBtdXN0IGJlIHNldCB0byAwIG9uIHRob3NlIGNvbXBpbGVycy4iCi0jZW5kaWYK
LQotCi0kcmFuZ2UgaSAwLi5uLTEKLSRyYW5nZSBqIDAuLm4KLSRyYW5nZSBrIDEuLm4KLS8vIEdU
RVNUX25fVFVQTEVfKFQpIGlzIHRoZSB0eXBlIG9mIGFuIG4tdHVwbGUuCi0jZGVmaW5lIEdURVNU
XzBfVFVQTEVfKFQpIHR1cGxlPD4KLQotJGZvciBrIFtbCi0kcmFuZ2UgbSAwLi5rLTEKLSRyYW5n
ZSBtMiBrLi5uLTEKLSNkZWZpbmUgR1RFU1RfJChrKV9UVVBMRV8oVCkgdHVwbGU8JGZvciBtLCBb
W1QjIyRtXV0kZm9yIG0yIFtbLCB2b2lkXV0+Ci0KLV1dCi0KLS8vIEdURVNUX25fVFlQRU5BTUVT
XyhUKSBkZWNsYXJlcyBhIGxpc3Qgb2YgbiB0eXBlbmFtZXMuCi0KLSRmb3IgaiBbWwotJHJhbmdl
IG0gMC4uai0xCi0jZGVmaW5lIEdURVNUXyQoailfVFlQRU5BTUVTXyhUKSAkZm9yIG0sIFtbdHlw
ZW5hbWUgVCMjJG1dXQotCi0KLV1dCi0KLS8vIEluIHRoZW9yeSwgZGVmaW5pbmcgc3R1ZmYgaW4g
dGhlIDo6c3RkIG5hbWVzcGFjZSBpcyB1bmRlZmluZWQKLS8vIGJlaGF2aW9yLiAgV2UgY2FuIGRv
IHRoaXMgYXMgd2UgYXJlIHBsYXlpbmcgdGhlIHJvbGUgb2YgYSBzdGFuZGFyZAotLy8gbGlicmFy
eSB2ZW5kb3IuCi1uYW1lc3BhY2Ugc3RkIHsKLW5hbWVzcGFjZSB0cjEgewotCi10ZW1wbGF0ZSA8
JGZvciBpLCBbW3R5cGVuYW1lIFQkaSA9IHZvaWRdXT4KLWNsYXNzIHR1cGxlOwotCi0vLyBBbnl0
aGluZyBpbiBuYW1lc3BhY2UgZ3Rlc3RfaW50ZXJuYWwgaXMgR29vZ2xlIFRlc3QncyBJTlRFUk5B
TAotLy8gSU1QTEVNRU5UQVRJT04gREVUQUlMIGFuZCBNVVNUIE5PVCBCRSBVU0VEIERJUkVDVExZ
IGluIHVzZXIgY29kZS4KLW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLS8vIEJ5UmVmPFQ+
Ojp0eXBlIGlzIFQgaWYgVCBpcyBhIHJlZmVyZW5jZTsgb3RoZXJ3aXNlIGl0J3MgY29uc3QgVCYu
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBCeVJlZiB7IHR5cGVkZWYgY29uc3QgVCYg
dHlwZTsgfTsgIC8vIE5PTElOVAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgQnlSZWY8
VCY+IHsgdHlwZWRlZiBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi0KLS8vIEEgaGFuZHkgd3JhcHBl
ciBmb3IgQnlSZWYuCi0jZGVmaW5lIEdURVNUX0JZX1JFRl8oVCkgdHlwZW5hbWUgOjpzdGQ6OnRy
MTo6Z3Rlc3RfaW50ZXJuYWw6OkJ5UmVmPFQ+Ojp0eXBlCi0KLS8vIEFkZFJlZjxUPjo6dHlwZSBp
cyBUIGlmIFQgaXMgYSByZWZlcmVuY2U7IG90aGVyd2lzZSBpdCdzIFQmLiAgVGhpcwotLy8gaXMg
dGhlIHNhbWUgYXMgdHIxOjphZGRfcmVmZXJlbmNlPFQ+Ojp0eXBlLgotdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1zdHJ1Y3QgQWRkUmVmIHsgdHlwZWRlZiBUJiB0eXBlOyB9OyAgLy8gTk9MSU5UCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBZGRSZWY8VCY+IHsgdHlwZWRlZiBUJiB0eXBl
OyB9OyAgLy8gTk9MSU5UCi0KLS8vIEEgaGFuZHkgd3JhcHBlciBmb3IgQWRkUmVmLgotI2RlZmlu
ZSBHVEVTVF9BRERfUkVGXyhUKSB0eXBlbmFtZSA6OnN0ZDo6dHIxOjpndGVzdF9pbnRlcm5hbDo6
QWRkUmVmPFQ+Ojp0eXBlCi0KLS8vIEEgaGVscGVyIGZvciBpbXBsZW1lbnRpbmcgZ2V0PGs+KCku
Ci10ZW1wbGF0ZSA8aW50IGs+IGNsYXNzIEdldDsKLQotLy8gQSBoZWxwZXIgZm9yIGltcGxlbWVu
dGluZyB0dXBsZV9lbGVtZW50PGssIFQ+LiAga0luZGV4VmFsaWQgaXMgdHJ1ZQotLy8gaWZmIGsg
PCB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0dXBsZSB0eXBlIFQuCi10ZW1wbGF0ZSA8Ym9vbCBr
SW5kZXhWYWxpZCwgaW50IGtJbmRleCwgY2xhc3MgVHVwbGU+Ci1zdHJ1Y3QgVHVwbGVFbGVtZW50
OwotCi0KLSRmb3IgaSBbWwotdGVtcGxhdGUgPEdURVNUXyQobilfVFlQRU5BTUVTXyhUKT4KLXN0
cnVjdCBUdXBsZUVsZW1lbnQ8dHJ1ZSwgJGksIEdURVNUXyQobilfVFVQTEVfKFQpID4gewotICB0
eXBlZGVmIFQkaSB0eXBlOwotfTsKLQotCi1dXQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVy
bmFsCi0KLXRlbXBsYXRlIDw+Ci1jbGFzcyB0dXBsZTw+IHsKLSBwdWJsaWM6Ci0gIHR1cGxlKCkg
e30KLSAgdHVwbGUoY29uc3QgdHVwbGUmIC8qIHQgKi8pICB7fQotICB0dXBsZSYgb3BlcmF0b3I9
KGNvbnN0IHR1cGxlJiAvKiB0ICovKSB7IHJldHVybiAqdGhpczsgfQotfTsKLQotCi0kZm9yIGsg
W1sKLSRyYW5nZSBtIDAuLmstMQotdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhUKT4K
LWNsYXNzICRpZiBrIDwgbiBbW0dURVNUXyQoaylfVFVQTEVfKFQpXV0gJGVsc2UgW1t0dXBsZV1d
IHsKLSBwdWJsaWM6Ci0gIHRlbXBsYXRlIDxpbnQgaz4gZnJpZW5kIGNsYXNzIGd0ZXN0X2ludGVy
bmFsOjpHZXQ7Ci0KLSAgdHVwbGUoKSA6ICRmb3IgbSwgW1tmJChtKV8oKV1dIHt9Ci0KLSAgZXhw
bGljaXQgdHVwbGUoJGZvciBtLCBbW0dURVNUX0JZX1JFRl8oVCRtKSBmJG1dXSkgOiBbW11dCi0k
Zm9yIG0sIFtbZiQobSlfKGYkbSldXSB7fQotCi0gIHR1cGxlKGNvbnN0IHR1cGxlJiB0KSA6ICRm
b3IgbSwgW1tmJChtKV8odC5mJChtKV8pXV0ge30KLQotICB0ZW1wbGF0ZSA8R1RFU1RfJChrKV9U
WVBFTkFNRVNfKFUpPgotICB0dXBsZShjb25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgOiAk
Zm9yIG0sIFtbZiQobSlfKHQuZiQobSlfKV1dIHt9Ci0KLSRpZiBrID09IDIgW1sKLSAgdGVtcGxh
dGUgPHR5cGVuYW1lIFUwLCB0eXBlbmFtZSBVMT4KLSAgdHVwbGUoY29uc3QgOjpzdGQ6OnBhaXI8
VTAsIFUxPiYgcCkgOiBmMF8ocC5maXJzdCksIGYxXyhwLnNlY29uZCkge30KLQotXV0KLQotICB0
dXBsZSYgb3BlcmF0b3I9KGNvbnN0IHR1cGxlJiB0KSB7IHJldHVybiBDb3B5RnJvbSh0KTsgfQot
Ci0gIHRlbXBsYXRlIDxHVEVTVF8kKGspX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBvcGVyYXRv
cj0oY29uc3QgR1RFU1RfJChrKV9UVVBMRV8oVSkmIHQpIHsKLSAgICByZXR1cm4gQ29weUZyb20o
dCk7Ci0gIH0KLQotJGlmIGsgPT0gMiBbWwotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVTAsIHR5cGVu
YW1lIFUxPgotICB0dXBsZSYgb3BlcmF0b3I9KGNvbnN0IDo6c3RkOjpwYWlyPFUwLCBVMT4mIHAp
IHsKLSAgICBmMF8gPSBwLmZpcnN0OwotICAgIGYxXyA9IHAuc2Vjb25kOwotICAgIHJldHVybiAq
dGhpczsKLSAgfQotCi1dXQotCi0gIEdURVNUX0RFQ0xBUkVfVFVQTEVfQVNfRlJJRU5EXwotCi0g
IHRlbXBsYXRlIDxHVEVTVF8kKGspX1RZUEVOQU1FU18oVSk+Ci0gIHR1cGxlJiBDb3B5RnJvbShj
b25zdCBHVEVTVF8kKGspX1RVUExFXyhVKSYgdCkgewotCi0kZm9yIG0gW1sKLSAgICBmJChtKV8g
PSB0LmYkKG0pXzsKLQotXV0KLSAgICByZXR1cm4gKnRoaXM7Ci0gIH0KLQotCi0kZm9yIG0gW1sK
LSAgVCRtIGYkKG0pXzsKLQotXV0KLX07Ci0KLQotXV0KLS8vIDYuMS4zLjIgVHVwbGUgY3JlYXRp
b24gZnVuY3Rpb25zLgotCi0vLyBLbm93biBsaW1pdGF0aW9uczogd2UgZG9uJ3Qgc3VwcG9ydCBw
YXNzaW5nIGFuCi0vLyBzdGQ6OnRyMTo6cmVmZXJlbmNlX3dyYXBwZXI8VD4gdG8gbWFrZV90dXBs
ZSgpLiAgQW5kIHdlIGRvbid0Ci0vLyBpbXBsZW1lbnQgdGllKCkuCi0KLWlubGluZSB0dXBsZTw+
IG1ha2VfdHVwbGUoKSB7IHJldHVybiB0dXBsZTw+KCk7IH0KLQotJGZvciBrIFtbCi0kcmFuZ2Ug
bSAwLi5rLTEKLQotdGVtcGxhdGUgPEdURVNUXyQoaylfVFlQRU5BTUVTXyhUKT4KLWlubGluZSBH
VEVTVF8kKGspX1RVUExFXyhUKSBtYWtlX3R1cGxlKCRmb3IgbSwgW1tjb25zdCBUJG0mIGYkbV1d
KSB7Ci0gIHJldHVybiBHVEVTVF8kKGspX1RVUExFXyhUKSgkZm9yIG0sIFtbZiRtXV0pOwotfQot
Ci1dXQotCi0vLyA2LjEuMy4zIFR1cGxlIGhlbHBlciBjbGFzc2VzLgotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVHVwbGU+IHN0cnVjdCB0dXBsZV9zaXplOwotCi0KLSRmb3IgaiBbWwotdGVtcGxhdGUg
PEdURVNUXyQoailfVFlQRU5BTUVTXyhUKT4KLXN0cnVjdCB0dXBsZV9zaXplPEdURVNUXyQoailf
VFVQTEVfKFQpID4gewotICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gJGo7Ci19OwotCi0KLV1d
Ci10ZW1wbGF0ZSA8aW50IGssIGNsYXNzIFR1cGxlPgotc3RydWN0IHR1cGxlX2VsZW1lbnQgewot
ICB0eXBlZGVmIHR5cGVuYW1lIGd0ZXN0X2ludGVybmFsOjpUdXBsZUVsZW1lbnQ8Ci0gICAgICBr
IDwgKHR1cGxlX3NpemU8VHVwbGU+Ojp2YWx1ZSksIGssIFR1cGxlPjo6dHlwZSB0eXBlOwotfTsK
LQotI2RlZmluZSBHVEVTVF9UVVBMRV9FTEVNRU5UXyhrLCBUdXBsZSkgdHlwZW5hbWUgdHVwbGVf
ZWxlbWVudDxrLCBUdXBsZSA+Ojp0eXBlCi0KLS8vIDYuMS4zLjQgRWxlbWVudCBhY2Nlc3MuCi0K
LW5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbCB7Ci0KLQotJGZvciBpIFtbCi10ZW1wbGF0ZSA8Pgot
Y2xhc3MgR2V0PCRpPiB7Ci0gcHVibGljOgotICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGU+Ci0gIHN0
YXRpYyBHVEVTVF9BRERfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXygkaSwgVHVwbGUpKQotICBG
aWVsZChUdXBsZSYgdCkgeyByZXR1cm4gdC5mJChpKV87IH0gIC8vIE5PTElOVAotCi0gIHRlbXBs
YXRlIDxjbGFzcyBUdXBsZT4KLSAgc3RhdGljIEdURVNUX0JZX1JFRl8oR1RFU1RfVFVQTEVfRUxF
TUVOVF8oJGksIFR1cGxlKSkKLSAgQ29uc3RGaWVsZChjb25zdCBUdXBsZSYgdCkgeyByZXR1cm4g
dC5mJChpKV87IH0KLX07Ci0KLQotXV0KLX0gIC8vIG5hbWVzcGFjZSBndGVzdF9pbnRlcm5hbAot
Ci10ZW1wbGF0ZSA8aW50IGssIEdURVNUXyQobilfVFlQRU5BTUVTXyhUKT4KLUdURVNUX0FERF9S
RUZfKEdURVNUX1RVUExFX0VMRU1FTlRfKGssIEdURVNUXyQobilfVFVQTEVfKFQpKSkKLWdldChH
VEVTVF8kKG4pX1RVUExFXyhUKSYgdCkgewotICByZXR1cm4gZ3Rlc3RfaW50ZXJuYWw6OkdldDxr
Pjo6RmllbGQodCk7Ci19Ci0KLXRlbXBsYXRlIDxpbnQgaywgR1RFU1RfJChuKV9UWVBFTkFNRVNf
KFQpPgotR1RFU1RfQllfUkVGXyhHVEVTVF9UVVBMRV9FTEVNRU5UXyhrLCAgR1RFU1RfJChuKV9U
VVBMRV8oVCkpKQotZ2V0KGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFQpJiB0KSB7Ci0gIHJldHVy
biBndGVzdF9pbnRlcm5hbDo6R2V0PGs+OjpDb25zdEZpZWxkKHQpOwotfQotCi0vLyA2LjEuMy41
IFJlbGF0aW9uYWwgb3BlcmF0b3JzCi0KLS8vIFdlIG9ubHkgaW1wbGVtZW50ID09IGFuZCAhPSwg
YXMgd2UgZG9uJ3QgaGF2ZSBhIG5lZWQgZm9yIHRoZSByZXN0IHlldC4KLQotbmFtZXNwYWNlIGd0
ZXN0X2ludGVybmFsIHsKLQotLy8gU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8aywgaz46
OkVxKHQxLCB0MikgcmV0dXJucyB0cnVlIGlmIHRoZQotLy8gZmlyc3QgayBmaWVsZHMgb2YgdDEg
ZXF1YWxzIHRoZSBmaXJzdCBrIGZpZWxkcyBvZiB0Mi4KLS8vIFNhbWVTaXplVHVwbGVQcmVmaXhD
b21wYXJhdG9yKGsxLCBrMikgd291bGQgYmUgYSBjb21waWxlciBlcnJvciBpZgotLy8gazEgIT0g
azIuCi10ZW1wbGF0ZSA8aW50IGtTaXplMSwgaW50IGtTaXplMj4KLXN0cnVjdCBTYW1lU2l6ZVR1
cGxlUHJlZml4Q29tcGFyYXRvcjsKLQotdGVtcGxhdGUgPD4KLXN0cnVjdCBTYW1lU2l6ZVR1cGxl
UHJlZml4Q29tcGFyYXRvcjwwLCAwPiB7Ci0gIHRlbXBsYXRlIDxjbGFzcyBUdXBsZTEsIGNsYXNz
IFR1cGxlMj4KLSAgc3RhdGljIGJvb2wgRXEoY29uc3QgVHVwbGUxJiAvKiB0MSAqLywgY29uc3Qg
VHVwbGUyJiAvKiB0MiAqLykgewotICAgIHJldHVybiB0cnVlOwotICB9Ci19OwotCi10ZW1wbGF0
ZSA8aW50IGs+Ci1zdHJ1Y3QgU2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8aywgaz4gewot
ICB0ZW1wbGF0ZSA8Y2xhc3MgVHVwbGUxLCBjbGFzcyBUdXBsZTI+Ci0gIHN0YXRpYyBib29sIEVx
KGNvbnN0IFR1cGxlMSYgdDEsIGNvbnN0IFR1cGxlMiYgdDIpIHsKLSAgICByZXR1cm4gU2FtZVNp
emVUdXBsZVByZWZpeENvbXBhcmF0b3I8ayAtIDEsIGsgLSAxPjo6RXEodDEsIHQyKSAmJgotICAg
ICAgICA6OnN0ZDo6dHIxOjpnZXQ8ayAtIDE+KHQxKSA9PSA6OnN0ZDo6dHIxOjpnZXQ8ayAtIDE+
KHQyKTsKLSAgfQotfTsKLQotfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X2ludGVybmFsCi0KLXRlbXBs
YXRlIDxHVEVTVF8kKG4pX1RZUEVOQU1FU18oVCksIEdURVNUXyQobilfVFlQRU5BTUVTXyhVKT4K
LWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgR1RFU1RfJChuKV9UVVBMRV8oVCkmIHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFUpJiB1KSB7Ci0g
IHJldHVybiBndGVzdF9pbnRlcm5hbDo6U2FtZVNpemVUdXBsZVByZWZpeENvbXBhcmF0b3I8Ci0g
ICAgICB0dXBsZV9zaXplPEdURVNUXyQobilfVFVQTEVfKFQpID46OnZhbHVlLAotICAgICAgdHVw
bGVfc2l6ZTxHVEVTVF8kKG4pX1RVUExFXyhVKSA+Ojp2YWx1ZT46OkVxKHQsIHUpOwotfQotCi10
ZW1wbGF0ZSA8R1RFU1RfJChuKV9UWVBFTkFNRVNfKFQpLCBHVEVTVF8kKG4pX1RZUEVOQU1FU18o
VSk+Ci1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdURVNUXyQobilfVFVQTEVfKFQpJiB0
LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVEVTVF8kKG4pX1RVUExFXyhVKSYgdSkg
eyByZXR1cm4gISh0ID09IHUpOyB9Ci0KLS8vIDYuMS40IFBhaXJzLgotLy8gVW5pbXBsZW1lbnRl
ZC4KLQotfSAgLy8gbmFtZXNwYWNlIHRyMQotfSAgLy8gbmFtZXNwYWNlIHN0ZAotCi0KLSRmb3Ig
aiBbWwotI3VuZGVmIEdURVNUXyQoailfVFVQTEVfCi0KLV1dCi0KLQotJGZvciBqIFtbCi0jdW5k
ZWYgR1RFU1RfJChqKV9UWVBFTkFNRVNfCi0KLV1dCi0KLSN1bmRlZiBHVEVTVF9ERUNMQVJFX1RV
UExFX0FTX0ZSSUVORF8KLSN1bmRlZiBHVEVTVF9CWV9SRUZfCi0jdW5kZWYgR1RFU1RfQUREX1JF
Rl8KLSN1bmRlZiBHVEVTVF9UVVBMRV9FTEVNRU5UXwotCi0jZW5kaWYgIC8vIEdURVNUX0lOQ0xV
REVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFVQTEVfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGlsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlL2d0ZXN0L2ludGVybmFsL2d0ZXN0LXR5cGUt
dXRpbC5oCmluZGV4IDI4ZTQxMTI0NTM2MWMwOGYyODcwN2U5MjQ4ZTZkMDMzMjBlNjg2MTguLmI4
N2EyZTJjYWNlMzNiOGNmMWQ0MmEyYjNiZGI0NGNiYjkwZGMyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtdHlwZS11dGls
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9n
dGVzdC10eXBlLXV0aWwuaApAQCAtMSw3ICsxLDMgQEAKLS8vIFRoaXMgZmlsZSB3YXMgR0VORVJB
VEVEIGJ5IGNvbW1hbmQ6Ci0vLyAgICAgcHVtcC5weSBndGVzdC10eXBlLXV0aWwuaC5wdW1wCi0v
LyBETyBOT1QgRURJVCBCWSBIQU5EISEhCi0KIC8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMu
CiAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgogLy8KQEAgLTMxLDE5ICsyNywxMyBAQAogLy8gKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0KIC8vIFR5cGUgdXRpbGl0aWVzIG5lZWRlZCBm
b3IgaW1wbGVtZW50aW5nIHR5cGVkIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQKLS8vIHRlc3RzLiAg
VGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQh
Ci0vLwotLy8gQ3VycmVudGx5IHdlIHN1cHBvcnQgYXQgbW9zdCA1MCB0eXBlcyBpbiBhIGxpc3Qs
IGFuZCBhdCBtb3N0IDUwCi0vLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgaW4gb25lIHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UuCi0vLyBQbGVhc2UgY29udGFjdCBnb29nbGV0ZXN0ZnJh
bWV3b3JrQGdvb2dsZWdyb3Vwcy5jb20gaWYgeW91IG5lZWQKLS8vIG1vcmUuCisvLyB0ZXN0cy4K
IAogLy8gR09PR0xFVEVTVF9DTTAwMDEgRE8gTk9UIERFTEVURQogCi0jaWZuZGVmIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCi0jZGVmaW5lIEdURVNUX0lO
Q0xVREVfR1RFU1RfSU5URVJOQUxfR1RFU1RfVFlQRV9VVElMX0hfCisjaWZuZGVmIEdPT0dMRVRF
U1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VUSUxfSF8KKyNkZWZpbmUgR09P
R0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXwogCiAjaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgogCkBAIC03NCwxNTY4ICs2NCw0MyBA
QCBpbmxpbmUgc3RkOjpzdHJpbmcgQ2Fub25pY2FsaXplRm9yU3RkTGliVmVyc2lvbmluZyhzdGQ6
OnN0cmluZyBzKSB7CiAgIHJldHVybiBzOwogfQogCi0vLyBHZXRUeXBlTmFtZTxUPigpIHJldHVy
bnMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHR5cGUgVC4KLS8vIE5COiBUaGlzIGZ1bmN0aW9u
IGlzIGFsc28gdXNlZCBpbiBHb29nbGUgTW9jaywgc28gZG9uJ3QgbW92ZSBpdCBpbnNpZGUgb2YK
LS8vIHRoZSB0eXBlZC10ZXN0LW9ubHkgc2VjdGlvbiBiZWxvdy4KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotc3RkOjpzdHJpbmcgR2V0VHlwZU5hbWUoKSB7Ci0jIGlmIEdURVNUX0hBU19SVFRJCi0K
LSAgY29uc3QgY2hhciogY29uc3QgbmFtZSA9IHR5cGVpZChUKS5uYW1lKCk7Ci0jICBpZiBHVEVT
VF9IQVNfQ1hYQUJJX0hfIHx8IGRlZmluZWQoX19IUF9hQ0MpCisjaWYgR1RFU1RfSEFTX1JUVEkK
Ky8vIEdldFR5cGVOYW1lKGNvbnN0IHN0ZDo6dHlwZV9pbmZvJikgcmV0dXJucyBhIGh1bWFuLXJl
YWRhYmxlIG5hbWUgb2YgdHlwZSBULgoraW5saW5lIHN0ZDo6c3RyaW5nIEdldFR5cGVOYW1lKGNv
bnN0IHN0ZDo6dHlwZV9pbmZvJiB0eXBlKSB7CisgIGNvbnN0IGNoYXIqIGNvbnN0IG5hbWUgPSB0
eXBlLm5hbWUoKTsKKyNpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfIHx8IGRlZmluZWQoX19IUF9hQ0Mp
CiAgIGludCBzdGF0dXMgPSAwOwogICAvLyBnY2MncyBpbXBsZW1lbnRhdGlvbiBvZiB0eXBlaWQo
VCkubmFtZSgpIG1hbmdsZXMgdGhlIHR5cGUgbmFtZSwKICAgLy8gc28gd2UgaGF2ZSB0byBkZW1h
bmdsZSBpdC4KLSMgICBpZiBHVEVTVF9IQVNfQ1hYQUJJX0hfCisjaWYgR1RFU1RfSEFTX0NYWEFC
SV9IXwogICB1c2luZyBhYmk6Ol9fY3hhX2RlbWFuZ2xlOwotIyAgIGVuZGlmICAvLyBHVEVTVF9I
QVNfQ1hYQUJJX0hfCi0gIGNoYXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1hbmds
ZShuYW1lLCAwLCAwLCAmc3RhdHVzKTsKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0NYWEFCSV9IXwor
ICBjaGFyKiBjb25zdCByZWFkYWJsZV9uYW1lID0gX19jeGFfZGVtYW5nbGUobmFtZSwgbnVsbHB0
ciwgbnVsbHB0ciwgJnN0YXR1cyk7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIG5hbWVfc3RyKHN0YXR1
cyA9PSAwID8gcmVhZGFibGVfbmFtZSA6IG5hbWUpOwogICBmcmVlKHJlYWRhYmxlX25hbWUpOwog
ICByZXR1cm4gQ2Fub25pY2FsaXplRm9yU3RkTGliVmVyc2lvbmluZyhuYW1lX3N0cik7Ci0jICBl
bHNlCisjZWxzZQogICByZXR1cm4gbmFtZTsKLSMgIGVuZGlmICAvLyBHVEVTVF9IQVNfQ1hYQUJJ
X0hfIHx8IF9fSFBfYUNDCi0KLSMgZWxzZQotCi0gIHJldHVybiAiPHR5cGU+IjsKLQotIyBlbmRp
ZiAgLy8gR1RFU1RfSEFTX1JUVEkKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX0NYWEFCSV9IXyB8fCBf
X0hQX2FDQwogfQorI2VuZGlmICAvLyBHVEVTVF9IQVNfUlRUSQogCi0jaWYgR1RFU1RfSEFTX1RZ
UEVEX1RFU1QgfHwgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCi0vLyBBc3NlcnR5VHlwZUVxPFQx
LCBUMj46OnR5cGUgaXMgZGVmaW5lZCBpZmYgVDEgYW5kIFQyIGFyZSB0aGUgc2FtZQotLy8gdHlw
ZS4gIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBjb21waWxlLXRpbWUgYXNzZXJ0aW9uIHRvIGVuc3Vy
ZSB0aGF0Ci0vLyB0d28gdHlwZXMgYXJlIGVxdWFsLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyPgotc3RydWN0IEFzc2VydFR5cGVFcTsKLQorLy8gR2V0VHlwZU5hbWU8VD4o
KSByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0eXBlIFQgaWYgYW5kIG9ubHkgaWYK
Ky8vIFJUVEkgaXMgZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgYSBkdW1teSB0eXBlIG5h
bWUuCisvLyBOQjogVGhpcyBmdW5jdGlvbiBpcyBhbHNvIHVzZWQgaW4gR29vZ2xlIE1vY2ssIHNv
IGRvbid0IG1vdmUgaXQgaW5zaWRlIG9mCisvLyB0aGUgdHlwZWQtdGVzdC1vbmx5IHNlY3Rpb24g
YmVsb3cuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBc3NlcnRUeXBlRXE8VCwgVD4g
ewotICB0eXBlZGVmIGJvb2wgdHlwZTsKLX07CitzdGQ6OnN0cmluZyBHZXRUeXBlTmFtZSgpIHsK
KyNpZiBHVEVTVF9IQVNfUlRUSQorICByZXR1cm4gR2V0VHlwZU5hbWUodHlwZWlkKFQpKTsKKyNl
bHNlCisgIHJldHVybiAiPHR5cGU+IjsKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKK30KIAot
Ly8gQSB1bmlxdWUgdHlwZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYXJndW1l
bnRzIG9mIGNsYXNzCi0vLyB0ZW1wbGF0ZSBUeXBlcy4gIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVs
YXRlIHZhcmlhZGljIHRlbXBsYXRlcwotLy8gKGUuZy4gVHlwZXM8aW50PiwgVHlwZTxpbnQsIGRv
dWJsZT4sIGFuZCBldGMpLCB3aGljaCBDKysgZG9lc24ndAotLy8gc3VwcG9ydCBkaXJlY3RseS4K
Ky8vIEEgdW5pcXVlIHR5cGUgaW5kaWNhdGluZyBhbiBlbXB0eSBub2RlCiBzdHJ1Y3QgTm9uZSB7
fTsKIAotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1Y3QgdGVtcGxh
dGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdHlwZSBsaXN0cy4gIEluIHBhcnRpY3VsYXIs
IFR5cGVzTjxUMSwgVDIsIC4uLiwgVE4+Ci0vLyByZXByZXNlbnRzIGEgdHlwZSBsaXN0IHdpdGgg
TiB0eXBlcyAoVDEsIFQyLCAuLi4sIGFuZCBUTikgaW4gaXQuCi0vLyBFeGNlcHQgZm9yIFR5cGVz
MCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6Ci0vLyBI
ZWFkIGZvciB0aGUgZmlyc3QgdHlwZSBpbiB0aGUgbGlzdCwgYW5kIFRhaWwgZm9yIHRoZSByZXN0
IG9mIHRoZQotLy8gbGlzdC4KLQotLy8gVGhlIGVtcHR5IHR5cGUgbGlzdC4KLXN0cnVjdCBUeXBl
czAge307Ci0KLS8vIFR5cGUgbGlzdHMgb2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotc3RydWN0IFR5cGVzMSB7Ci0gIHR5cGVkZWYgVDEgSGVh
ZDsKLSAgdHlwZWRlZiBUeXBlczAgVGFpbDsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5
cGVuYW1lIFQyPgotc3RydWN0IFR5cGVzMiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRl
ZiBUeXBlczE8VDI+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMz4KLXN0cnVjdCBUeXBlczMgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMyPFQyLCBUMz4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KLXN0cnVjdCBUeXBlczQg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMzPFQyLCBUMywgVDQ+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1Pgotc3RydWN0IFR5cGVzNSB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlczQ8VDIsIFQzLCBUNCwgVDU+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2Pgotc3RydWN0IFR5cGVzNiB7Ci0gIHR5cGVk
ZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczU8VDIsIFQzLCBUNCwgVDUsIFQ2PiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Ci1z
dHJ1Y3QgVHlwZXM3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNjxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4Pgotc3RydWN0IFR5cGVzOCB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5Pgotc3RydWN0IFR5cGVzOSB7Ci0g
IHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgot
c3RydWN0IFR5cGVzMTAgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM5PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBl
bmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBl
bmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMT4KLXN0cnVjdCBUeXBlczEx
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTA8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMj4KLXN0cnVjdCBU
eXBlczEyIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTE8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyPiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTM+Ci1zdHJ1Y3QgVHlwZXMxMyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAg
dHlwZWRlZiBUeXBlczEyPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
ND4KLXN0cnVjdCBUeXBlczE0IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVz
MTM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
ND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNT4KLXN0cnVjdCBUeXBlczE1IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVm
IFR5cGVzMTQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTY+Ci1zdHJ1Y3QgVHlw
ZXMxNiB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczE1PFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAg
IFQxNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNz4KLXN0cnVjdCBUeXBl
czE3IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTY8VDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAg
VDE2LCBUMTc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOD4KLXN0cnVjdCBUeXBlczE4IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzMTc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTk+Ci1zdHJ1Y3QgVHlwZXMx
OSB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczE4PFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQx
NiwgVDE3LCBUMTgsIFQxOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlw
ZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlw
ZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1l
IFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBl
bmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywg
dHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMD4KLXN0cnVjdCBUeXBlczIw
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMTk8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjA+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEs
IHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAg
IHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBl
bmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywg
dHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBU
MTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5h
bWUgVDIxPgotc3RydWN0IFR5cGVzMjEgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYg
VHlwZXMyMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyPgotc3RydWN0
IFR5cGVzMjIgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyMTxUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IFRhaWw7Ci19OwotCi10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMz4KLXN0
cnVjdCBUeXBlczIzIHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMjI8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjM+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0Pgotc3RydWN0IFR5cGVzMjQgewotICB0eXBlZGVmIFQxIEhlYWQ7
Ci0gIHR5cGVkZWYgVHlwZXMyMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwg
VDIxLCBUMjIsIFQyMywgVDI0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1Pgotc3RydWN0IFR5cGVzMjUgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlw
ZXMyNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
LCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2
LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0g
ICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0
LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1l
IFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBl
bmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAg
dHlwZW5hbWUgVDI2Pgotc3RydWN0IFR5cGVzMjYgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5
cGVkZWYgVHlwZXMyNTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNz4KLXN0cnVjdCBUeXBlczI3
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMjY8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNz4g
VGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1l
IFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFt
ZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1l
IFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBl
bmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwg
dHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBU
MjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4Pgotc3RydWN0IFR5cGVzMjggewotICB0eXBl
ZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjg+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5Pgotc3RydWN0IFR5cGVzMjkg
ewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXMyODxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzA+Ci1zdHJ1Y3QgVHlwZXMzMCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsK
LSAgdHlwZWRlZiBUeXBlczI5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUg
VDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1l
IFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUg
VDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVu
YW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0
eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQy
NiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMw
LAotICAgIHR5cGVuYW1lIFQzMT4KLXN0cnVjdCBUeXBlczMxIHsKLSAgdHlwZWRlZiBUMSBIZWFk
OwotICB0eXBlZGVmIFR5cGVzMzA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAs
IFQzMT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5
cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0
eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5
cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4
LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1l
IFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBl
bmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVu
YW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMj4KLXN0cnVjdCBUeXBlczMy
IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzE8VDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywg
VDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzM+Ci1zdHJ1Y3QgVHlwZXMzMyB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlczMyPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAg
VDMwLCBUMzEsIFQzMiwgVDMzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzND4KLXN0cnVjdCBUeXBlczM0IHsKLSAgdHlwZWRlZiBU
MSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUs
Ci0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDks
IHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUg
VDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVu
YW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0
eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5
cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4
LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1l
IFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNT4KLXN0cnVjdCBU
eXBlczM1IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzQ8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
ICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1PiBUYWls
OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAot
ICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQz
NCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNj4KLXN0cnVjdCBUeXBlczM2IHsKLSAg
dHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzU8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBU
MjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+IFRhaWw7Ci19Owot
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0
eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQy
MywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFt
ZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlw
ZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBl
bmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzc+Ci1zdHJ1Y3QgVHlwZXMz
NyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczM2PFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzc+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOD4KLXN0cnVjdCBUeXBlczM4IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBl
ZGVmIFR5cGVzMzc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQy
NCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFt
ZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlw
ZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAg
IHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOT4K
LXN0cnVjdCBUeXBlczM5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzMzg8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5h
bWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFt
ZSBUNDA+Ci1zdHJ1Y3QgVHlwZXM0MCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBU
eXBlczM5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDA+IFRhaWw7Ci19OwotCi10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBU
MjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5h
bWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5
cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMx
LCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUs
Ci0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUg
VDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxPgotc3RydWN0IFR5cGVzNDEgewot
ICB0eXBlZGVmIFQxIEhlYWQ7Ci0gIHR5cGVkZWYgVHlwZXM0MDxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwKLSAgICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgs
IFQzOSwgVDQwLCBUNDE+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVu
YW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0
eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0g
ICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDI+Ci1zdHJ1Y3QgVHlwZXM0MiB7Ci0gIHR5cGVk
ZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQxPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAot
ICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwgVDQyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFt
ZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEw
LAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1l
IFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBl
bmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwg
dHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAot
ICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQy
OSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFt
ZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlw
ZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAg
IHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDM+Ci1zdHJ1Y3QgVHlwZXM0
MyB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQyPFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQx
NiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcs
IFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcs
IFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzPiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0
eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEy
LCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1l
IFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUg
VDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVu
YW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0
eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQz
MSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1
LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1l
IFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBl
bmFtZSBUNDMsIHR5cGVuYW1lIFQ0ND4KLXN0cnVjdCBUeXBlczQ0IHsKLSAgdHlwZWRlZiBUMSBI
ZWFkOwotICB0eXBlZGVmIFR5cGVzNDM8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIFQ0MywKLSAgICAgIFQ0ND4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBl
bmFtZSBUNDQsIHR5cGVuYW1lIFQ0NT4KLXN0cnVjdCBUeXBlczQ1IHsKLSAgdHlwZWRlZiBUMSBI
ZWFkOwotICB0eXBlZGVmIFR5cGVzNDQ8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQx
LCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFt
ZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlw
ZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAg
IHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwg
dHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBU
MjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5h
bWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5
cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlw
ZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMs
IHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0Nj4KLXN0cnVjdCBU
eXBlczQ2IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDU8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAg
ICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDY+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFt
ZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFt
ZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5h
bWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFt
ZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlw
ZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIs
IHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUg
VDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBU
MzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5h
bWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5
cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQx
LCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUs
Ci0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDc+Ci1zdHJ1Y3QgVHlwZXM0NyB7Ci0gIHR5
cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQ2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICAgIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5
LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5
LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgICBUNDQsIFQ0NSwgVDQ2LCBUNDc+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlw
ZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0
eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0g
ICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5
LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1l
IFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBl
bmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAg
dHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0
eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQz
OCwgdHlwZW5hbWUgVDM5LCB0eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFt
ZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlw
ZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OD4KLXN0cnVjdCBUeXBlczQ4IHsK
LSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5cGVzNDc8VDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgICAgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4
LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAgIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4
PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVu
YW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0
eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0
MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1
LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1l
IFQ0OT4KLXN0cnVjdCBUeXBlczQ5IHsKLSAgdHlwZWRlZiBUMSBIZWFkOwotICB0eXBlZGVmIFR5
cGVzNDg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
IFQxNCwgVDE1LAotICAgICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgICBUMzAsIFQzMSwgVDMyLCBUMzMs
IFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICAg
IFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1l
IFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1l
IFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVu
YW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0
eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0g
ICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0
LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1l
IFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBl
bmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAg
dHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5LCB0
eXBlbmFtZSBUNDAsCi0gICAgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0
MywgdHlwZW5hbWUgVDQ0LCB0eXBlbmFtZSBUNDUsCi0gICAgdHlwZW5hbWUgVDQ2LCB0eXBlbmFt
ZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5LCB0eXBlbmFtZSBUNTA+Ci1zdHJ1Y3Qg
VHlwZXM1MCB7Ci0gIHR5cGVkZWYgVDEgSGVhZDsKLSAgdHlwZWRlZiBUeXBlczQ5PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAg
ICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2
LCBUMjcsIFQyOCwgVDI5LAotICAgICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2
LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgICBUNDQsIFQ0NSwgVDQ2
LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+IFRhaWw7Ci19OwotCi0KLX0gIC8vIG5hbWVzcGFjZSBpbnRl
cm5hbAotCi0vLyBXZSBkb24ndCB3YW50IHRvIHJlcXVpcmUgdGhlIHVzZXJzIHRvIHdyaXRlIFR5
cGVzTjwuLi4+IGRpcmVjdGx5LAotLy8gYXMgdGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291
bnQgdGhlIGxlbmd0aC4gIFR5cGVzPC4uLj4gaXMgbXVjaAotLy8gZWFzaWVyIHRvIHdyaXRlLCBi
dXQgZ2VuZXJhdGVzIGhvcnJpYmxlIG1lc3NhZ2VzIHdoZW4gdGhlcmUgaXMgYQotLy8gY29tcGls
ZXIgZXJyb3IsIGFzIGdjYyBpbnNpc3RzIG9uIHByaW50aW5nIG91dCBlYWNoIHRlbXBsYXRlCi0v
LyBhcmd1bWVudCwgZXZlbiBpZiBpdCBoYXMgdGhlIGRlZmF1bHQgdmFsdWUgKHRoaXMgbWVhbnMg
VHlwZXM8aW50PgotLy8gd2lsbCBhcHBlYXIgYXMgVHlwZXM8aW50LCBOb25lLCBOb25lLCAuLi4s
IE5vbmU+IGluIHRoZSBjb21waWxlcgotLy8gZXJyb3JzKS4KLS8vCi0vLyBPdXIgc29sdXRpb24g
aXMgdG8gY29tYmluZSB0aGUgYmVzdCBwYXJ0IG9mIHRoZSB0d28gYXBwcm9hY2hlczogYQotLy8g
dXNlciB3b3VsZCB3cml0ZSBUeXBlczxUMSwgLi4uLCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxs
IHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUeXBlc048VDEsIC4uLiwgVE4+IGludGVybmFsbHkgdG8g
bWFrZSBlcnJvciBtZXNzYWdlcwotLy8gcmVhZGFibGUuICBUaGUgdHJhbnNsYXRpb24gaXMgZG9u
ZSBieSB0aGUgJ3R5cGUnIG1lbWJlciBvZiB0aGUKLS8vIFR5cGVzIHRlbXBsYXRlLgotdGVtcGxh
dGUgPHR5cGVuYW1lIFQxID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyID0gaW50ZXJuYWw6
Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDMgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQgPSBp
bnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFt
ZSBUNiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ3ID0gaW50ZXJuYWw6Ok5vbmUs
IHR5cGVuYW1lIFQ4ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDkgPSBpbnRlcm5h
bDo6Tm9uZSwgdHlwZW5hbWUgVDEwID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDEx
ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQxMiA9IGludGVybmFsOjpOb25lLAotICAgIHR5
cGVuYW1lIFQxMyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMTQgPSBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICB0eXBlbmFtZSBUMTUgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDE2ID0gaW50
ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDE3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1l
IFQxOCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQxOSA9IGludGVybmFsOjpOb25l
LCB0eXBlbmFtZSBUMjAgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjEgPSBpbnRl
cm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDIyID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUg
VDIzID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQyNCA9IGludGVybmFsOjpOb25lLAotICAg
IHR5cGVuYW1lIFQyNSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMjYgPSBpbnRlcm5hbDo6
Tm9uZSwKLSAgICB0eXBlbmFtZSBUMjcgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDI4ID0g
aW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDI5ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVu
YW1lIFQzMCA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQzMSA9IGludGVybmFsOjpO
b25lLCB0eXBlbmFtZSBUMzIgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMzMgPSBp
bnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDM0ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5h
bWUgVDM1ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQzNiA9IGludGVybmFsOjpOb25lLAot
ICAgIHR5cGVuYW1lIFQzNyA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUMzggPSBpbnRlcm5h
bDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUMzkgPSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQw
ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlwZW5hbWUgVDQxID0gaW50ZXJuYWw6Ok5vbmUsIHR5
cGVuYW1lIFQ0MiA9IGludGVybmFsOjpOb25lLAotICAgIHR5cGVuYW1lIFQ0MyA9IGludGVybmFs
OjpOb25lLCB0eXBlbmFtZSBUNDQgPSBpbnRlcm5hbDo6Tm9uZSwKLSAgICB0eXBlbmFtZSBUNDUg
PSBpbnRlcm5hbDo6Tm9uZSwgdHlwZW5hbWUgVDQ2ID0gaW50ZXJuYWw6Ok5vbmUsCi0gICAgdHlw
ZW5hbWUgVDQ3ID0gaW50ZXJuYWw6Ok5vbmUsIHR5cGVuYW1lIFQ0OCA9IGludGVybmFsOjpOb25l
LAotICAgIHR5cGVuYW1lIFQ0OSA9IGludGVybmFsOjpOb25lLCB0eXBlbmFtZSBUNTAgPSBpbnRl
cm5hbDo6Tm9uZT4KLXN0cnVjdCBUeXBlcyB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNTA8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAg
IFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBU
NDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+IHR5cGU7Ci19OwotCi10ZW1wbGF0ZSA8
Pgotc3RydWN0IFR5cGVzPGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczAgdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6
OlR5cGVzMTxUMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI8VDEsIFQyPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgotc3RydWN0IFR5cGVzPFQxLCBU
MiwgVDMsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzPFQxLCBUMiwgVDM+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUg
VDMsIHR5cGVuYW1lIFQ0Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRl
cm5hbDo6VHlwZXM0PFQxLCBUMiwgVDMsIFQ0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczU8VDEsIFQyLCBUMywgVDQs
IFQ1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDY+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0
eXBlZGVmIGludGVybmFsOjpUeXBlczY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KLXN0cnVj
dCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXM4PFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5h
bWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1
LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5
Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzOTxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxMDxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBU
OSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMT4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MTE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTE+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5
cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsCi0gICAgICBUMTI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQx
LCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAg
ICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlw
ZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTM+
Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MTM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0Pgot
c3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTQ8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0PiB0eXBl
OwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0
eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0
eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEs
IHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNT4K
LXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+
IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNT4gdHlwZTsKLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5h
bWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5h
bWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBl
bmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAg
dHlwZW5hbWUgVDE2Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMxNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNz4KLXN0cnVjdCBUeXBlczxUMSwgVDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1
LAotICAgIFQxNiwgVDE3LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBp
bnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczE3PFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOD4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
Ci0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXMxODxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOD4gdHlwZTsKLX07Ci10ZW1wbGF0
ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5
cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5
cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIs
IHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUg
VDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5Pgotc3RydWN0IFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7
Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMTk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0
eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAg
dHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0
eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQx
OCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjA+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAg
ICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
MjA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjE+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczIxPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0
eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5h
bWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5h
bWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlw
ZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYs
IHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwK
LSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAot
ICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczIyPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5
cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFt
ZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFt
ZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBl
bmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwg
dHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAot
ICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjM+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMjM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzPiB0eXBlOwotfTsKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQ+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAg
ICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwK
LSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI0PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMs
IFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNT4KLXN0cnVjdCBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwg
VDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6
VHlwZXMyNTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h
bWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5h
bWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQx
MCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFt
ZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlw
ZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEs
IHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwK
LSAgICB0eXBlbmFtZSBUMjY+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczI2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsCi0gICAgICBUMjY+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcs
IHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQx
MSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1
LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1l
IFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBl
bmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwg
dHlwZW5hbWUgVDI3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzMjc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBU
NCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBU
OCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1l
IFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBl
bmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVu
YW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0
eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQy
NywgdHlwZW5hbWUgVDI4Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczI4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4PiB0eXBlOwotfTsKLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwg
dHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwg
dHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQx
MiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFt
ZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1l
IFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBl
bmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywg
dHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjk+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LCBUMjgsIFQyOSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFs
OjpUeXBlczI5PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjk+IHR5cGU7Ci19Owot
dGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1l
IFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1l
IFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5h
bWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5
cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlw
ZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMs
IHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUg
VDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwPgotc3RydWN0IFR5
cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVy
bmFsOjpUeXBlczMwPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMD4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywg
dHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywg
dHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDEx
LCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUs
Ci0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUg
VDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVu
YW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0
eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0g
ICAgdHlwZW5hbWUgVDMxPgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3
LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjks
IFQzMCwKLSAgICBUMzEsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9u
ZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsK
LSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQy
OCwgVDI5LCBUMzAsIFQzMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVu
YW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBU
MTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5h
bWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5
cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIx
LCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUs
Ci0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUg
VDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzI+Ci1zdHJ1
Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzMjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFt
ZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVu
YW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0
eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5
cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIz
LCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1l
IFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBl
bmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzPgotc3RydWN0IFR5cGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBU
MTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewot
ICB0eXBlZGVmIGludGVybmFsOjpUeXBlczMzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4
LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUg
VDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAot
ICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0
eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQx
MywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFt
ZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlw
ZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBl
bmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwg
dHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBU
MzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMs
IFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0g
ICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5h
bDo6VHlwZXMzNDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzND4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1l
IFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAs
Ci0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUg
VDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVu
YW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0
eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0g
ICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5
LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1l
IFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzU+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwK
LSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBpbnRl
cm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFs
OjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLAot
ICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzMzU8VDEs
IFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQx
MywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBl
bmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBl
bmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlw
ZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBl
bmFtZSBUMTUsCi0gICAgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwg
dHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBU
MjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5h
bWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFt
ZSBUMzAsCi0gICAgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlw
ZW5hbWUgVDM0LCB0eXBlbmFtZSBUMzUsCi0gICAgdHlwZW5hbWUgVDM2Pgotc3RydWN0IFR5cGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMzLCBUMzQs
IFQzNSwgVDM2LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6
Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0g
ICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzNjxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwg
dHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwg
dHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAg
IHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwg
dHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBU
MTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5h
bWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5
cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlw
ZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMs
IHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUg
VDM3Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIGludGVybmFsOjpOb25lLCBpbnRlcm5h
bDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpO
b25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUs
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVz
Mzc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAg
ICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0
eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5h
bWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5
cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3
LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1l
IFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUg
VDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVu
YW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0
eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQz
NiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzg+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAg
ICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6
Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzMzg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOD4gdHlwZTsKLX07Ci10ZW1w
bGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1LAotICAgIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgs
IHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAsCi0gICAgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBU
MTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUsCi0gICAgdHlwZW5h
bWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFt
ZSBUMjAsCi0gICAgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlw
ZW5hbWUgVDI0LCB0eXBlbmFtZSBUMjUsCi0gICAgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcs
IHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBUMzAsCi0gICAgdHlwZW5hbWUg
VDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBU
MzUsCi0gICAgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5h
bWUgVDM5Pgotc3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAg
ICBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJu
YWw6Ok5vbmU+IHsKLSAgdHlwZWRlZiBpbnRlcm5hbDo6VHlwZXMzOTxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEzLCBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsCi0g
ICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQz
NywgVDM4LCBUMzk+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBU
MzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5h
bWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwPgotc3RydWN0
IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIGludGVybmFsOjpOb25lLAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLAotICAgIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50
ZXJuYWw6OlR5cGVzNDA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBU
MzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LAotICAgICAgVDQwPiB0
eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQz
LCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3
LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBU
MTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQx
NSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFt
ZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlw
ZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYs
IHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwK
LSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBU
MzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5h
bWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDE+Ci1z
dHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBU
MjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBpbnRlcm5hbDo6
Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGlu
dGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBl
czQxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0g
ICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQz
MywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxPiB0eXBlOwot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBl
bmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBl
bmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5
cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAg
ICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTks
IHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUg
VDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVu
YW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0
eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5
cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4
LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1l
IFQ0Mj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBp
bnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsCi0gICAgaW50ZXJuYWw6Ok5vbmUsIGludGVy
bmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQy
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAg
ICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDI+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5
cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwg
dHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAot
ICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQx
OSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFt
ZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlw
ZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAg
IHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwg
dHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBU
MzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5h
bWUgVDQyLCB0eXBlbmFtZSBUNDM+Ci1zdHJ1Y3QgVHlwZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwKLSAgICBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5v
bmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwg
aW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5
cGVzNDM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwK
LSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwg
VDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0Miwg
VDQzPiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYsIHR5cGVu
YW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAgICB0eXBl
bmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVu
YW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0
eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQy
MiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0eXBlbmFt
ZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5cGVuYW1l
IFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBl
bmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywg
dHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBlbmFtZSBU
NDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQ+Ci1zdHJ1Y3QgVHlw
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsIFQxNSwKLSAgICBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwgVDMwLAotICAgIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAg
IGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFs
OjpOb25lLAotICAgIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVm
IGludGVybmFsOjpUeXBlczQ0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQy
MCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQz
MCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAg
ICAgVDQxLCBUNDIsIFQ0MywgVDQ0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAg
dHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVu
YW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0
eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQx
NywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFt
ZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1l
IFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBl
bmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwg
dHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBU
MzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0
MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFt
ZSBUNDQsIHR5cGVuYW1lIFQ0NT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2
LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwg
VDI5LCBUMzAsCi0gICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQz
OSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBpbnRlcm5hbDo6Tm9uZSwgaW50
ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6Tm9uZSwKLSAgICBpbnRlcm5h
bDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQ1PFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAg
ICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDU+IHR5cGU7Ci19
OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVu
YW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVuYW1lIFQxMSwgdHlw
ZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1LAotICAg
IHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwg
dHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBU
MjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1lIFQyNiwgdHlwZW5h
bWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUgVDMwLAotICAgIHR5
cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNCwgdHlw
ZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgs
IHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUg
VDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1LAotICAgIHR5cGVu
YW1lIFQ0Nj4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0g
ICAgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEs
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBUNDYsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZSwgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25lPiB7Ci0gIHR5cGVkZWYgaW50ZXJu
YWw6OlR5cGVzNDY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3LCBUMjgsIFQyOSwgVDMwLCBUMzEs
IFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAgICBUNDEs
IFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0g
ICAgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMCwKLSAgICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEz
LCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1l
IFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBl
bmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVu
YW1lIFQyNSwKLSAgICB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0
eXBlbmFtZSBUMjksIHR5cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQz
MiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFt
ZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1l
IFQ0MCwKLSAgICB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBl
bmFtZSBUNDQsIHR5cGVuYW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0Nz4K
LXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEs
IFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAgVDMxLCBU
MzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQz
LCBUNDQsIFQ0NSwKLSAgICBUNDYsIFQ0NywgaW50ZXJuYWw6Ok5vbmUsIGludGVybmFsOjpOb25l
LCBpbnRlcm5hbDo6Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQ3PFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQx
NCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwKLSAgICAgIFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUs
IFQ0NiwgVDQ3PiB0eXBlOwotfTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsCi0gICAgdHlwZW5hbWUgVDYs
IHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMCwKLSAg
ICB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQs
IHR5cGVuYW1lIFQxNSwKLSAgICB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUg
VDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMCwKLSAgICB0eXBlbmFtZSBUMjEsIHR5cGVu
YW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIFQyNSwKLSAgICB0
eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjksIHR5
cGVuYW1lIFQzMCwKLSAgICB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMz
LCB0eXBlbmFtZSBUMzQsIHR5cGVuYW1lIFQzNSwKLSAgICB0eXBlbmFtZSBUMzYsIHR5cGVuYW1l
IFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzksIHR5cGVuYW1lIFQ0MCwKLSAgICB0eXBl
bmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQsIHR5cGVu
YW1lIFQ0NSwKLSAgICB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4Pgot
c3RydWN0IFR5cGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywgVDE0LCBUMTUsCi0gICAgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksIFQzMCwKLSAgICBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMs
IFQ0NCwgVDQ1LAotICAgIFQ0NiwgVDQ3LCBUNDgsIGludGVybmFsOjpOb25lLCBpbnRlcm5hbDo6
Tm9uZT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlczQ4PFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTMsIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAg
IFQyNywgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBU
MzgsIFQzOSwgVDQwLAotICAgICAgVDQxLCBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0NiwgVDQ3LCBU
NDg+IHR5cGU7Ci19OwotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5h
bWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBUNiwgdHlwZW5h
bWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAotICAgIHR5cGVu
YW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5h
bWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5
cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIy
LCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAgIHR5cGVuYW1l
IFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwgdHlwZW5hbWUg
VDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVu
YW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0
eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5cGVuYW1lIFQ0
MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgVDQ1
LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1l
IFQ0OT4KLXN0cnVjdCBUeXBlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBU
MTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LAotICAgIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LCBUMzAsCi0gICAg
VDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0
MiwgVDQzLCBUNDQsIFQ0NSwKLSAgICBUNDYsIFQ0NywgVDQ4LCBUNDksIGludGVybmFsOjpOb25l
PiB7Ci0gIHR5cGVkZWYgaW50ZXJuYWw6OlR5cGVzNDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwKLSAgICAgIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LAotICAgICAgVDI3
LCBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwg
VDM5LCBUNDAsCi0gICAgICBUNDEsIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwg
VDQ5PiB0eXBlOwotfTsKLQotbmFtZXNwYWNlIGludGVybmFsIHsKLQogIyBkZWZpbmUgR1RFU1Rf
VEVNUExBVEVfIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcwogCiAvLyBUaGUgdGVtcGxhdGUg
InNlbGVjdG9yIiBzdHJ1Y3QgVGVtcGxhdGVTZWw8VG1wbD4gaXMgdXNlZCB0bwpAQCAtMTY1Nywx
NjkyICsxMjIsNjIgQEAgc3RydWN0IFRlbXBsYXRlU2VsIHsKICMgZGVmaW5lIEdURVNUX0JJTkRf
KFRtcGxTZWwsIFQpIFwKICAgVG1wbFNlbDo6dGVtcGxhdGUgQmluZDxUPjo6dHlwZQogCi0vLyBB
IHVuaXF1ZSBzdHJ1Y3QgdGVtcGxhdGUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhl
Ci0vLyBhcmd1bWVudHMgb2YgY2xhc3MgdGVtcGxhdGUgVGVtcGxhdGVzLiAgVGhpcyBhbGxvd3Mg
dXMgdG8gc2ltdWxhdGUKLS8vIHZhcmlhZGljIHRlbXBsYXRlcyAoZS5nLiBUZW1wbGF0ZXM8aW50
PiwgVGVtcGxhdGVzPGludCwgZG91YmxlPiwKLS8vIGFuZCBldGMpLCB3aGljaCBDKysgZG9lc24n
dCBzdXBwb3J0IGRpcmVjdGx5LgotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgTm9uZVQg
e307Ci0KLS8vIFRoZSBmb2xsb3dpbmcgZmFtaWx5IG9mIHN0cnVjdCBhbmQgc3RydWN0IHRlbXBs
YXRlcyBhcmUgdXNlZCB0bwotLy8gcmVwcmVzZW50IHRlbXBsYXRlIGxpc3RzLiAgSW4gcGFydGlj
dWxhciwgVGVtcGxhdGVzTjxUMSwgVDIsIC4uLiwKLS8vIFROPiByZXByZXNlbnRzIGEgbGlzdCBv
ZiBOIHRlbXBsYXRlcyAoVDEsIFQyLCAuLi4sIGFuZCBUTikuICBFeGNlcHQKLS8vIGZvciBUZW1w
bGF0ZXMwLCBldmVyeSBzdHJ1Y3QgaW4gdGhlIGZhbWlseSBoYXMgdHdvIG1lbWJlciB0eXBlczoK
LS8vIEhlYWQgZm9yIHRoZSBzZWxlY3RvciBvZiB0aGUgZmlyc3QgdGVtcGxhdGUgaW4gdGhlIGxp
c3QsIGFuZCBUYWlsCi0vLyBmb3IgdGhlIHJlc3Qgb2YgdGhlIGxpc3QuCi0KLS8vIFRoZSBlbXB0
eSB0ZW1wbGF0ZSBsaXN0Lgotc3RydWN0IFRlbXBsYXRlczAge307Ci0KLS8vIFRlbXBsYXRlIGxp
c3RzIG9mIGxlbmd0aCAxLCAyLCAzLCBhbmQgc28gb24uCi0KLXRlbXBsYXRlIDxHVEVTVF9URU1Q
TEFURV8gVDE+Ci1zdHJ1Y3QgVGVtcGxhdGVzMSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+
IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMCBUYWlsOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMj4KLXN0cnVjdCBUZW1wbGF0ZXMyIHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxPFQyPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDM+Ci1zdHJ1Y3QgVGVtcGxhdGVzMyB7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjxUMiwgVDM+IFRhaWw7
Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ+Ci1zdHJ1Y3QgVGVt
cGxhdGVzNCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMzxUMiwgVDMsIFQ0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzNSB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDxUMiwg
VDMsIFQ0LCBUNT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDY+Ci1zdHJ1Y3QgVGVt
cGxhdGVzNiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzNTxUMiwgVDMsIFQ0LCBUNSwgVDY+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNz4KLXN0cnVjdCBUZW1wbGF0ZXM3IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM2PFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDc+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4Pgotc3RydWN0IFRlbXBsYXRlczgg
ewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczc8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzOSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzODxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDk+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9U
RU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQs
IEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMD4KLXN0cnVjdCBUZW1wbGF0ZXMxMCB7Ci0gIHR5cGVkZWYgVGVtcGxh
dGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzOTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8g
VDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBU
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExPgotc3RydWN0
IFRlbXBsYXRlczExIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZXMxMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExPiBU
YWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTI+Ci1zdHJ1
Y3QgVGVtcGxhdGVzMTIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczExPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RF
TVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwg
R1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEy
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTM+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTMgewotICB0eXBl
ZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczEyPFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzPiBUYWlsOwotfTsKLQot
dGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9U
RU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUs
IEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBM
QVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdU
RVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxND4KLXN0cnVjdCBUZW1wbGF0ZXMxNCB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMTM8VDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQ+
IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFU
RV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNU
X1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFU
RV8gVDE1Pgotc3RydWN0IFRlbXBsYXRlczE1IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4g
SGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1PiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2Pgotc3RydWN0IFRlbXBsYXRlczE2IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxNTxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTY+IFRh
aWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RF
TVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywg
R1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8g
VDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTc+Ci1zdHJ1
Y3QgVGVtcGxhdGVzMTcgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBl
ZGVmIFRlbXBsYXRlczE2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEs
IFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3PiBUYWlsOwotfTsKLQotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFU
RV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNU
X1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBU
OCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RF
TVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4Pgot
c3RydWN0IFRlbXBsYXRlczE4IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAg
dHlwZWRlZiBUZW1wbGF0ZXMxNzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwg
VDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4PiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RF
TVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAs
IEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFU
RV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTk+Ci1zdHJ1Y3QgVGVtcGxhdGVzMTkgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczE4PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwPgotc3RydWN0IFRlbXBsYXRlczIw
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMx
OTxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMD4gVGFpbDsKLX07Ci0KLXRlbXBs
YXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExB
VEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVT
VF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8g
VDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9U
RU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1Q
TEFURV8gVDIxPgotc3RydWN0IFRlbXBsYXRlczIxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxU
MT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyMDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMj4KLXN0cnVjdCBUZW1wbGF0ZXMyMiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjE8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMz4KLXN0cnVjdCBUZW1w
bGF0ZXMyMyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVt
cGxhdGVzMjI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBU
MjM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0Pgotc3RydWN0IFRlbXBs
YXRlczI0IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXMyMzxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQy
MywgVDI0PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBU
MTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1Rf
VEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8g
VDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNU
X1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI1Pgotc3RydWN0IFRlbXBsYXRlczI1IHsKLSAgdHlwZWRlZiBUZW1wbGF0
ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyNDxUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjU+IFRhaWw7Ci19OwotCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RF
TVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwg
R1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExB
VEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RF
U1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBU
MTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1Rf
VEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8g
VDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNU
X1RFTVBMQVRFXyBUMjY+Ci1zdHJ1Y3QgVGVtcGxhdGVzMjYgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI1PFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2PiBUYWlsOwotfTsK
LQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVT
VF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8g
VDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RF
TVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAs
IEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFU
RV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdU
RVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExB
VEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBH
VEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3Pgotc3RydWN0IFRlbXBsYXRl
czI3IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0
ZXMyNjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywg
VDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVf
IFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNU
X1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVf
IFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVT
VF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQy
NCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9U
RU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjg+Ci1zdHJ1Y3QgVGVtcGxhdGVz
MjggewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czI3PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjg+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOT4KLXN0cnVjdCBUZW1wbGF0ZXMyOSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVT
ZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjg8VDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAot
ICAgICAgVDI5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RF
U1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRF
XyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RF
U1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFU
RV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdU
RVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8g
VDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNU
X1RFTVBMQVRFXyBUMzA+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzAgewotICB0eXBlZGVmIFRlbXBsYXRl
U2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczI5PFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3
LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwK
LSAgICAgIFQyOSwgVDMwPiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1Q
TEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjks
IEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMT4KLXN0cnVjdCBU
ZW1wbGF0ZXMzMSB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYg
VGVtcGxhdGVzMzA8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMT4gVGFp
bDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBH
VEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBU
MTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1Rf
VEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8g
VDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNU
X1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMw
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzI+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzMzIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVm
IFRlbXBsYXRlczMxPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQz
Mj4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBM
QVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywg
R1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1Q
TEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIs
IEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFU
RV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdU
RVNUX1RFTVBMQVRFXyBUMzM+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzMgewotICB0eXBlZGVmIFRlbXBs
YXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczMyPFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzPiBUYWlsOwotfTsKLQotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8g
VDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RF
TVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwg
R1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBM
QVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywg
R1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRF
XyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RF
U1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFU
RV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdU
RVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDM0Pgotc3RydWN0IFRlbXBsYXRlczM0IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMzxUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0PiBUYWlsOwotfTsKLQotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RF
TVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQy
MywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9U
RU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1Pgotc3RydWN0IFRl
bXBsYXRlczM1IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXMzNDxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywgVDE0LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzU+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQx
LCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVN
UExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0
LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RF
TVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
OSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBM
QVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwg
R1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1Q
TEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQs
IEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzY+Ci1zdHJ1Y3QgVGVtcGxh
dGVzMzYgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBs
YXRlczM1PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBU
MSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RF
TVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQx
NCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9U
RU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1Q
TEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjks
IEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVN
UExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0
LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzc+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzcgewotICB0eXBlZGVmIFRlbXBsYXRlU2Vs
PFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczM2PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAg
ICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzc+IFRhaWw7Ci19
OwotCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExB
VEVfIFQzOD4KLXN0cnVjdCBUZW1wbGF0ZXMzOCB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+
IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzc8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwg
VDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAg
VDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4PiBUYWlsOwot
fTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVN
UExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1
LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExB
VEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBH
VEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBM
QVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzk+Ci1zdHJ1Y3QgVGVtcGxhdGVzMzkgewotICB0
eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczM4PFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
ICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwg
VDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwg
VDM2LCBUMzcsIFQzOCwgVDM5PiBUYWlsOwotfTsKLQotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRF
XyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVf
IFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNU
X1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVf
IFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVT
VF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQy
NCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9U
RU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBU
MjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1Rf
VEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzks
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MD4KLXN0cnVjdCBUZW1wbGF0ZXM0MCB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzk8VDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQx
NSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYs
IFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYs
IFQzNywgVDM4LCBUMzksIFQ0MD4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBU
MjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1Rf
VEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8g
VDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNU
X1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDE+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzNDEgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVm
IFRlbXBsYXRlczQwPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQz
MiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MT4gVGFpbDsKLX07
Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RF
U1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVf
IFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9U
RU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEw
LCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExB
VEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBH
VEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBM
QVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwg
R1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRF
XyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RF
U1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFU
RV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdU
RVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDI+Ci1zdHJ1Y3QgVGVtcGxhdGVz
NDIgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRl
czQxPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBU
MTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0Mj4gVGFpbDsK
LX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwg
R1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExB
VEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVT
VF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVN
UExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIw
LCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RF
TVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
NSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBM
QVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwg
R1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1Q
TEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAs
IEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0Mz4KLXN0cnVjdCBUZW1wbGF0ZXM0MyB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8
VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDI8VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICAgIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LAotICAg
ICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzks
IFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDM+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYs
IEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVN
UExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMx
LCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExB
VEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBH
VEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBM
QVRFXyBUNDQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDQgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQx
PiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQzPFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAg
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQ+IFRhaWw7Ci19OwotCi10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1Rf
VEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVN
UExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQx
LCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RF
TVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDU+Ci1zdHJ1Y3QgVGVtcGxhdGVzNDUgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ0PFQy
LCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0g
ICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0
NT4gVGFpbDsKLX07Ci0KLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBM
QVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywg
R1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1Q
TEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIs
IEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFU
RV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdU
RVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExB
VEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBH
VEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVf
IFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2Pgotc3RydWN0IFRlbXBsYXRlczQ2IHsKLSAg
dHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0NTxUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
ICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUs
IFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0LCBUNDUs
IFQ0Nj4gVGFpbDsKK3RlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gSGVhZF8sIEdURVNUX1RFTVBM
QVRFXy4uLiBUYWlsXz4KK3N0cnVjdCBUZW1wbGF0ZXMgeworICB1c2luZyBIZWFkID0gVGVtcGxh
dGVTZWw8SGVhZF8+OworICB1c2luZyBUYWlsID0gVGVtcGxhdGVzPFRhaWxfLi4uPjsKIH07CiAK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1
LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1Q
TEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBH
VEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVf
IFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVT
VF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRF
XyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RF
U1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBU
MzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1Rf
VEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8g
VDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNU
X1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVfIFQ0NSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3Pgotc3RydWN0IFRlbXBsYXRlczQ3
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNlbDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0
NjxUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LAotICAgICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0
LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0gICAgICBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0
LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwKLSAgICAgIFQ0MywgVDQ0
LCBUNDUsIFQ0NiwgVDQ3PiBUYWlsOwordGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBIZWFkXz4K
K3N0cnVjdCBUZW1wbGF0ZXM8SGVhZF8+IHsKKyAgdXNpbmcgSGVhZCA9IFRlbXBsYXRlU2VsPEhl
YWRfPjsKKyAgdXNpbmcgVGFpbCA9IE5vbmU7CiB9OwogCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExB
VEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVT
VF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFU
RV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RF
U1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFU
RV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdU
RVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8g
VDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNU
X1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVf
IFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVT
VF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQz
OSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9U
RU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBU
NDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1Rf
VEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OD4KLXN0cnVjdCBUZW1wbGF0ZXM0OCB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDc8
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4PiBUYWlsOworLy8gVHVwbGUtbGlrZSB0eXBlIGxpc3RzCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgSGVhZF8sIHR5cGVuYW1lLi4uIFRhaWxfPgorc3RydWN0IFR5cGVzIHsK
KyAgdXNpbmcgSGVhZCA9IEhlYWRfOworICB1c2luZyBUYWlsID0gVHlwZXM8VGFpbF8uLi4+Owog
fTsKIAotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVN
UExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1
LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExB
VEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBH
VEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNUX1RFTVBM
QVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MCwg
R1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0LCBHVEVTVF9URU1QTEFURV8gVDQ1LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDYsIEdURVNUX1RFTVBMQVRFXyBUNDcsIEdURVNUX1RFTVBMQVRF
XyBUNDgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0OT4KLXN0cnVjdCBUZW1wbGF0ZXM0OSB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVTZWw8VDE+IEhlYWQ7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDg8VDIs
IFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAg
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgICAgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1
LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsCi0gICAgICBUNDMsIFQ0NCwgVDQ1
LCBUNDYsIFQ0NywgVDQ4LCBUNDk+IFRhaWw7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgSGVhZF8+Citz
dHJ1Y3QgVHlwZXM8SGVhZF8+IHsKKyAgdXNpbmcgSGVhZCA9IEhlYWRfOworICB1c2luZyBUYWls
ID0gTm9uZTsKIH07CiAKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBM
QVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywg
R1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1Q
TEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIs
IEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVfIFQyNywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVTVF9URU1QTEFU
RV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRFXyBUMzIsIEdU
RVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RFU1RfVEVNUExB
VEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDM3LCBH
VEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRFXyBUNDIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RFU1RfVEVNUExBVEVf
IFQ0NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQ2LCBHVEVTVF9URU1QTEFURV8gVDQ3LCBHVEVT
VF9URU1QTEFURV8gVDQ4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDksIEdURVNUX1RFTVBMQVRF
XyBUNTA+Ci1zdHJ1Y3QgVGVtcGxhdGVzNTAgewotICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBI
ZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlczQ5PFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwKLSAgICAgIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
IFQ0MSwgVDQyLAotICAgICAgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5LCBUNTA+
IFRhaWw7CisvLyBIZWxwZXIgbWV0YWZ1bmN0aW9ucyB0byB0ZWxsIGFwYXJ0IGEgc2luZ2xlIHR5
cGUgZnJvbSB0eXBlcworLy8gZ2VuZXJhdGVkIGJ5IDo6dGVzdGluZzo6VHlwZXMKK3RlbXBsYXRl
IDx0eXBlbmFtZS4uLiBUcz4KK3N0cnVjdCBQcm94eVR5cGVMaXN0IHsKKyAgdXNpbmcgdHlwZSA9
IFR5cGVzPFRzLi4uPjsKIH07CiAKK3RlbXBsYXRlIDx0eXBlbmFtZT4KK3N0cnVjdCBpc19wcm94
eV90eXBlX2xpc3QgOiBzdGQ6OmZhbHNlX3R5cGUge307CiAKLS8vIFdlIGRvbid0IHdhbnQgdG8g
cmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVGVtcGxhdGVzTjwuLi4+IGRpcmVjdGx5LAotLy8g
YXMgdGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFRlbXBsYXRl
czwuLi4+IGlzIG11Y2gKLS8vIGVhc2llciB0byB3cml0ZSwgYnV0IGdlbmVyYXRlcyBob3JyaWJs
ZSBtZXNzYWdlcyB3aGVuIHRoZXJlIGlzIGEKLS8vIGNvbXBpbGVyIGVycm9yLCBhcyBnY2MgaW5z
aXN0cyBvbiBwcmludGluZyBvdXQgZWFjaCB0ZW1wbGF0ZQotLy8gYXJndW1lbnQsIGV2ZW4gaWYg
aXQgaGFzIHRoZSBkZWZhdWx0IHZhbHVlICh0aGlzIG1lYW5zIFRlbXBsYXRlczxsaXN0PgotLy8g
d2lsbCBhcHBlYXIgYXMgVGVtcGxhdGVzPGxpc3QsIE5vbmVULCBOb25lVCwgLi4uLCBOb25lVD4g
aW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlvbiBpcyB0byBj
b21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0vLyB1c2VyIHdv
dWxkIHdyaXRlIFRlbXBsYXRlczxUMSwgLi4uLCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxsIHRy
YW5zbGF0ZQotLy8gdGhhdCB0byBUZW1wbGF0ZXNOPFQxLCAuLi4sIFROPiBpbnRlcm5hbGx5IHRv
IG1ha2UgZXJyb3IgbWVzc2FnZXMKLS8vIHJlYWRhYmxlLiAgVGhlIHRyYW5zbGF0aW9uIGlzIGRv
bmUgYnkgdGhlICd0eXBlJyBtZW1iZXIgb2YgdGhlCi0vLyBUZW1wbGF0ZXMgdGVtcGxhdGUuCi10
ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxID0gTm9uZVQsIEdURVNUX1RFTVBMQVRFXyBUMiA9
IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUMyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8g
VDQgPSBOb25lVCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDUgPSBOb25lVCwgR1RFU1RfVEVNUExB
VEVfIFQ2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3ID0gTm9uZVQsIEdURVNUX1RF
TVBMQVRFXyBUOCA9IE5vbmVULAotICAgIEdURVNUX1RFTVBMQVRFXyBUOSA9IE5vbmVULCBHVEVT
VF9URU1QTEFURV8gVDEwID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMSA9IE5vbmVU
LCBHVEVTVF9URU1QTEFURV8gVDEyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMyA9
IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE0ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxNyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDE4ID0gTm9uZVQsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDIwID0gTm9uZVQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyMSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDIyID0gTm9u
ZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDI0
ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNSA9IE5vbmVULCBHVEVTVF9URU1QTEFU
RV8gVDI2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyNyA9IE5vbmVULCBHVEVTVF9U
RU1QTEFURV8gVDI4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOSA9IE5vbmVULCBH
VEVTVF9URU1QTEFURV8gVDMwID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSA9IE5v
bmVULCBHVEVTVF9URU1QTEFURV8gVDMyID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
MyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM0ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQzNSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM2ID0gTm9uZVQsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzNyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDM4ID0gTm9uZVQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzOSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDQwID0gTm9uZVQs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MSA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8gVDQyID0g
Tm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MyA9IE5vbmVULCBHVEVTVF9URU1QTEFURV8g
VDQ0ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NSA9IE5vbmVULCBHVEVTVF9URU1Q
TEFURV8gVDQ2ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NyA9IE5vbmVULCBHVEVT
VF9URU1QTEFURV8gVDQ4ID0gTm9uZVQsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0OSA9IE5vbmVU
LCBHVEVTVF9URU1QTEFURV8gVDUwID0gTm9uZVQ+Ci1zdHJ1Y3QgVGVtcGxhdGVzIHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXM1MDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAs
IFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAot
ICAgICAgVDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD4gdHlwZTsK
LX07Ci0KLXRlbXBsYXRlIDw+Ci1zdHJ1Y3QgVGVtcGxhdGVzPE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIHR5cGU7Ci19OwotdGVtcGxhdGUg
PEdURVNUX1RFTVBMQVRFXyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE8VDE+IHR5cGU7Ci19OwotdGVtcGxh
dGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyPgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjxU
MSwgVDI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzxUMSwgVDIsIFQzPiB0eXBlOwotfTsK
LXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1Rf
VEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUND4KLXN0cnVjdCBUZW1wbGF0ZXM8
VDEsIFQyLCBUMywgVDQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM0PFQxLCBUMiwgVDMsIFQ0PiB0
eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBU
MiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVN
UExBVEVfIFQ1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRl
bXBsYXRlczU8VDEsIFQyLCBUMywgVDQsIFQ1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9U
RU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8g
VDY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNjxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBl
ZGVmIFRlbXBsYXRlczc8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXM4PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzOTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwPgotc3RydWN0IFRlbXBsYXRl
czxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+
IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTA+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1Rf
VEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0
LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTE+Ci1zdHJ1Y3QgVGVtcGxhdGVz
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsK
LSAgdHlwZWRlZiBUZW1wbGF0ZXMxMTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5
LCBUMTAsIFQxMT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVT
VF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVf
IFQxMj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxMjxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyPiB0eXBlOwotfTsKLXRlbXBsYXRl
IDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVf
IFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9U
RU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgs
IEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1Q
TEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTM+
Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQx
MCwgVDExLCBUMTIsIFQxMywgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczEzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsCi0gICAgICBUMTM+IHR5cGU7Ci19OwotdGVt
cGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1Q
TEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdU
RVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRF
XyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNU
X1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMywgR1RFU1RfVEVNUExBVEVfIFQxND4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywg
VDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRl
czE0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywKLSAgICAgIFQxND4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBH
VEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExB
VEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBH
VEVTVF9URU1QTEFURV8gVDE1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczE1PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAg
IFQxNCwgVDE1PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNU
X1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
NCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8g
VDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNU
X1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNj4KLXN0cnVjdCBUZW1wbGF0
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgVDE1LCBUMTYsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVk
ZWYgVGVtcGxhdGVzMTY8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8
R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBU
MywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVN
UExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBH
VEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExB
VEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBH
VEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTc+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwg
VDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAg
IFQxNSwgVDE2LCBUMTcsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMx
NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMs
Ci0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTc+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVm
IFRlbXBsYXRlczE4PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4PiB0eXBlOwotfTsKLXRl
bXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVN
UExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBH
VEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFU
RV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVT
VF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQx
OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBU
MTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMxOTxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAg
ICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVT
VF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFU
RV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNU
X1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8g
VDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNU
X1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwPgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
MjA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwPiB0eXBlOwotfTsKLXRl
bXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVN
UExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBH
VEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFU
RV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVT
VF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQx
OCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9U
RU1QTEFURV8gVDIxPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBU
MTgsIFQxOSwgVDIwLCBUMjEsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAg
ICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczIxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYs
IFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFU
RV8gVDEsIEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRF
XyBUOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVT
VF9URU1QTEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRF
XyBUMTQsIEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RF
U1RfVEVNUExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDE5LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjI+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBU
MTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczIyPFQxLCBUMiwgVDMsIFQ0LCBUNSwg
VDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjI+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMz4KLXN0cnVjdCBU
ZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBs
YXRlczIzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIs
IFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1Q
TEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdU
RVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1Q
TEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcs
IEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVN
UExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIy
LCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI0
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywK
LSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdURVNUX1RFTVBM
QVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNCwgR1RF
U1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFURV8gVDEyLAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdURVNUX1RFTVBM
QVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExBVEVfIFQxNywg
R1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBHVEVTVF9URU1Q
TEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjIs
IEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyNT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcs
IFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMjU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNT4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RF
U1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExB
VEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVT
VF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVf
IFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVT
VF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQy
MSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9U
RU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBU
MjY+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBU
MjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRl
ZiBUZW1wbGF0ZXMyNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQx
MSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQy
MSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjY+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RF
TVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBU
NiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVN
UExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEs
IEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVN
UExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2
LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExB
VEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBH
VEVTVF9URU1QTEFURV8gVDI3Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25l
VD4gewotICB0eXBlZGVmIFRlbXBsYXRlczI3PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBU
OCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4
LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwKLSAgICAgIFQyNz4gdHlw
ZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIs
IEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBM
QVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RF
U1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RF
TVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQy
MCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9U
RU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQyOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwg
VDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywg
VDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVUPiB7Ci0g
IHR5cGVkZWYgVGVtcGxhdGVzMjg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwg
VDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwg
VDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjg+IHR5cGU7
Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBH
VEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFU
RV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNU
X1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1Q
TEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAs
IEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVN
UExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1
LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjk+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAot
ICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
Ci0gICAgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMyOTxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2
LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywK
LSAgICAgIFQyOCwgVDI5PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBH
VEVTVF9URU1QTEFURV8gVDMwPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUs
IFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwg
VDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQy
OCwgVDI5LAotICAgIFQzMCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlw
ZWRlZiBUZW1wbGF0ZXMzMDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAs
IFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzA+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBU
MywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAg
VDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQy
NiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4g
ewotICB0eXBlZGVmIFRlbXBsYXRlczMxPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBU
MjksIFQzMCwgVDMxPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzI+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwg
VDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5
LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAg
VDMwLCBUMzEsIFQzMiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzI8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAot
ICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBU
MjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMj4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzPgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAg
IFQzMCwgVDMxLCBUMzIsIFQzMywgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBO
b25lVCwgTm9uZVQsIE5vbmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzMzxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0g
ICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQy
NCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzM+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQy
LCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1Q
TEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdU
RVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQx
NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9U
RU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBU
MjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1Rf
VEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVN
UExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0Pgotc3RydWN0IFRlbXBsYXRlczxU
MSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQx
NCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQs
IFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBO
b25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25l
VCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
PiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzMzQ8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQ+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVN
UExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2
LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RF
TVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
MSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1Pgotc3RydWN0IFRlbXBsYXRlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwK
LSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQy
NSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUs
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewot
ICB0eXBlZGVmIFRlbXBsYXRlczM1PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDks
IFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjks
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzU+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRF
XyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1Rf
VEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBU
MTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1Rf
VEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVN
UExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2
LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RF
TVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQz
MSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2Pgot
c3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAs
IFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBU
MjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
LCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNjxUMSwgVDIsIFQzLCBUNCwg
VDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwg
VDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQy
NywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzY+IHR5
cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVfIFQy
LCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9URU1Q
TEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcsIEdU
RVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVfIFQx
NSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVTVF9U
RU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRFXyBU
MjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RFU1Rf
VEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBUMzAs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1RfVEVN
UExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8gVDM1
LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzc+Ci1zdHJ1Y3Qg
VGVtcGxhdGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBU
MTIsIFQxMywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwg
VDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25l
VCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwg
Tm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
NywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcs
IFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAg
IFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNz4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExB
VEVfIFQzOD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBU
MTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAg
ICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzODxUMSwgVDIsIFQz
LCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQs
IFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBU
MjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBU
MzYsIFQzNywgVDM4PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEsIEdU
RVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBMQVRF
XyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1QTEFU
RV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQsIEdU
RVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVNUExB
VEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5LCBH
VEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExBVEVf
IFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBHVEVT
VF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBMQVRF
XyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwgR1RF
U1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5Pgotc3RydWN0
IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQy
MiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIs
IFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgTm9uZVQsIE5vbmVULCBOb25lVCwK
LSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9u
ZVQ+IHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMzOTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywg
VDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQx
OCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQy
OCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzk+
IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVNUExBVEVf
IFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBHVEVTVF9U
RU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDcs
IEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVNUExBVEVf
IFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3LCBHVEVT
VF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RFTVBMQVRF
XyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyMiwgR1RF
U1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAotICAgIEdU
RVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBMQVRFXyBU
MzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwgR1RFU1Rf
VEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1QTEFURV8g
VDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcsIEdURVNU
X1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQ0MD4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTks
IFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBU
MzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgTm9u
ZVQsIE5vbmVULCBOb25lVCwKLSAgICBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQs
IE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQwPFQxLCBUMiwgVDMsIFQ0LCBU
NSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBU
MTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3
LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3
LCBUMzgsIFQzOSwgVDQwPiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBH
VEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBM
QVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwg
R1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDE+Ci1zdHJ1Y3QgVGVtcGxh
dGVzPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQx
MywgVDE0LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMs
IFQyNCwgVDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBU
MzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgTm9uZVQsIE5vbmVULAotICAg
IE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5
cGVkZWYgVGVtcGxhdGVzNDE8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEw
LCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIw
LCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMw
LCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsCi0gICAg
ICBUNDE+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
MiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBM
QVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwg
R1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1Q
TEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcs
IEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0Mj4KLXN0
cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBU
MTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIE5v
bmVULAotICAgIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVU
PiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDI8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4
LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgs
IFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgs
IFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBU
NDAsIFQ0MSwKLSAgICAgIFQ0Mj4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVf
IFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8g
VDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1Rf
VEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8g
VDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNU
X1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVf
IFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVT
VF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RF
TVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQy
OSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9U
RU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1Q
TEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDM+Ci1zdHJ1Y3QgVGVtcGxhdGVzPFQx
LCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0
LAotICAgIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsIFQyNywgVDI4LCBUMjksCi0gICAgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQz
NSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgTm9uZVQsIE5v
bmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBUZW1w
bGF0ZXM0MzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEy
LCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIy
LCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMy
LCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAgVDQy
LCBUNDM+IHR5cGU7Ci19OwotdGVtcGxhdGUgPEdURVNUX1RFTVBMQVRFXyBUMSwgR1RFU1RfVEVN
UExBVEVfIFQyLCBHVEVTVF9URU1QTEFURV8gVDMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0LCBH
VEVTVF9URU1QTEFURV8gVDUsIEdURVNUX1RFTVBMQVRFXyBUNiwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDcsIEdURVNUX1RFTVBMQVRFXyBUOCwgR1RFU1RfVEVNUExBVEVfIFQ5LAotICAgIEdURVNU
X1RFTVBMQVRFXyBUMTAsIEdURVNUX1RFTVBMQVRFXyBUMTEsIEdURVNUX1RFTVBMQVRFXyBUMTIs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQxMywgR1RFU1RfVEVNUExBVEVfIFQxNCwgR1RFU1RfVEVN
UExBVEVfIFQxNSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE2LCBHVEVTVF9URU1QTEFURV8gVDE3
LCBHVEVTVF9URU1QTEFURV8gVDE4LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTksIEdURVNUX1RF
TVBMQVRFXyBUMjAsIEdURVNUX1RFTVBMQVRFXyBUMjEsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQy
MiwgR1RFU1RfVEVNUExBVEVfIFQyMywgR1RFU1RfVEVNUExBVEVfIFQyNCwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDI1LCBHVEVTVF9URU1QTEFURV8gVDI2LCBHVEVTVF9URU1QTEFURV8gVDI3LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMjgsIEdURVNUX1RFTVBMQVRFXyBUMjksIEdURVNUX1RFTVBM
QVRFXyBUMzAsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzMSwgR1RFU1RfVEVNUExBVEVfIFQzMiwg
R1RFU1RfVEVNUExBVEVfIFQzMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDM0LCBHVEVTVF9URU1Q
TEFURV8gVDM1LCBHVEVTVF9URU1QTEFURV8gVDM2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzcs
IEdURVNUX1RFTVBMQVRFXyBUMzgsIEdURVNUX1RFTVBMQVRFXyBUMzksCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQ0MCwgR1RFU1RfVEVNUExBVEVfIFQ0MSwgR1RFU1RfVEVNUExBVEVfIFQ0MiwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQzLCBHVEVTVF9URU1QTEFURV8gVDQ0Pgotc3RydWN0IFRlbXBs
YXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBU
MTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAgIFQzMCwgVDMxLCBUMzIsIFQzMywg
VDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsIFQ0MiwgVDQzLCBUNDQsCi0g
ICAgTm9uZVQsIE5vbmVULCBOb25lVCwgTm9uZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVm
IFRlbXBsYXRlczQ0PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDEx
LCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIx
LCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMx
LCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAg
ICBUNDIsIFQ0MywgVDQ0PiB0eXBlOwotfTsKLXRlbXBsYXRlIDxHVEVTVF9URU1QTEFURV8gVDEs
IEdURVNUX1RFTVBMQVRFXyBUMiwgR1RFU1RfVEVNUExBVEVfIFQzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNCwgR1RFU1RfVEVNUExBVEVfIFQ1LCBHVEVTVF9URU1QTEFURV8gVDYsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQ3LCBHVEVTVF9URU1QTEFURV8gVDgsIEdURVNUX1RFTVBMQVRFXyBUOSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDEwLCBHVEVTVF9URU1QTEFURV8gVDExLCBHVEVTVF9URU1Q
TEFURV8gVDEyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTMsIEdURVNUX1RFTVBMQVRFXyBUMTQs
IEdURVNUX1RFTVBMQVRFXyBUMTUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxNiwgR1RFU1RfVEVN
UExBVEVfIFQxNywgR1RFU1RfVEVNUExBVEVfIFQxOCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDE5
LCBHVEVTVF9URU1QTEFURV8gVDIwLCBHVEVTVF9URU1QTEFURV8gVDIxLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMjIsIEdURVNUX1RFTVBMQVRFXyBUMjMsIEdURVNUX1RFTVBMQVRFXyBUMjQsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQyNSwgR1RFU1RfVEVNUExBVEVfIFQyNiwgR1RFU1RfVEVNUExB
VEVfIFQyNywKLSAgICBHVEVTVF9URU1QTEFURV8gVDI4LCBHVEVTVF9URU1QTEFURV8gVDI5LCBH
VEVTVF9URU1QTEFURV8gVDMwLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzEsIEdURVNUX1RFTVBM
QVRFXyBUMzIsIEdURVNUX1RFTVBMQVRFXyBUMzMsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNCwg
R1RFU1RfVEVNUExBVEVfIFQzNSwgR1RFU1RfVEVNUExBVEVfIFQzNiwKLSAgICBHVEVTVF9URU1Q
TEFURV8gVDM3LCBHVEVTVF9URU1QTEFURV8gVDM4LCBHVEVTVF9URU1QTEFURV8gVDM5LAotICAg
IEdURVNUX1RFTVBMQVRFXyBUNDAsIEdURVNUX1RFTVBMQVRFXyBUNDEsIEdURVNUX1RFTVBMQVRF
XyBUNDIsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0MywgR1RFU1RfVEVNUExBVEVfIFQ0NCwgR1RF
U1RfVEVNUExBVEVfIFQ0NT4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBU
NiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQx
NywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgs
IFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBU
MzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAgIFQ0NSwgTm9uZVQsIE5vbmVULCBOb25l
VCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDU8VDEsIFQyLCBUMywgVDQs
IFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUs
IFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBU
MjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBU
MzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0NT4gdHlwZTsK
LX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdU
RVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRF
XyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1Rf
VEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQx
MCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9U
RU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAot
ICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBM
QVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwg
R1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1Q
TEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUs
IEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFU
RV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdU
RVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExB
VEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBH
VEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQ0Nj4KLXN0cnVjdCBUZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1
LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYs
IFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBU
MjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4
LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAgIFQ0NSwgVDQ2LCBOb25lVCwgTm9u
ZVQsIE5vbmVULCBOb25lVD4gewotICB0eXBlZGVmIFRlbXBsYXRlczQ2PFQxLCBUMiwgVDMsIFQ0
LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICAgIFQxNCwgVDE1
LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywgVDI0LCBUMjUsIFQyNiwg
VDI3LAotICAgICAgVDI4LCBUMjksIFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwg
VDM3LCBUMzgsIFQzOSwgVDQwLCBUNDEsCi0gICAgICBUNDIsIFQ0MywgVDQ0LCBUNDUsIFQ0Nj4g
dHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8g
VDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RF
TVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywg
R1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExB
VEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBH
VEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8g
VDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNU
X1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVf
IFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVT
VF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRF
XyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RF
U1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQz
MCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9U
RU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBU
MzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1Rf
VEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8g
VDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNU
X1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUs
Ci0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RFU1RfVEVNUExBVEVfIFQ0Nz4KLXN0cnVjdCBU
ZW1wbGF0ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQx
MiwgVDEzLCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIs
IFQyMywgVDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBU
MzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0
LAotICAgIFQ0NSwgVDQ2LCBUNDcsIE5vbmVULCBOb25lVCwgTm9uZVQ+IHsKLSAgdHlwZWRlZiBU
ZW1wbGF0ZXM0NzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwg
VDEyLCBUMTMsCi0gICAgICBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwg
VDIyLCBUMjMsIFQyNCwgVDI1LCBUMjYsIFQyNywKLSAgICAgIFQyOCwgVDI5LCBUMzAsIFQzMSwg
VDMyLCBUMzMsIFQzNCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLAotICAgICAg
VDQyLCBUNDMsIFQ0NCwgVDQ1LCBUNDYsIFQ0Nz4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1Rf
VEVNUExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVf
IFQ2LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9U
RU1QTEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQx
MSwgR1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9U
RU1QTEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBU
MTYsIEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1Rf
VEVNUExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwK
LSAgICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1Q
TEFURV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYs
IEdURVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVN
UExBVEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMx
LCBHVEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RF
TVBMQVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0g
ICAgR1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExB
VEVfIFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBH
VEVTVF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBM
QVRFXyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0Niwg
R1RFU1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OD4KLXN0cnVjdCBUZW1wbGF0
ZXM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LCBUMTQsCi0gICAgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTksIFQyMCwgVDIxLCBUMjIsIFQyMywg
VDI0LCBUMjUsIFQyNiwgVDI3LCBUMjgsIFQyOSwKLSAgICBUMzAsIFQzMSwgVDMyLCBUMzMsIFQz
NCwgVDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwgVDQxLCBUNDIsIFQ0MywgVDQ0LAotICAg
IFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgTm9uZVQsIE5vbmVUPiB7Ci0gIHR5cGVkZWYgVGVtcGxhdGVz
NDg8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEz
LAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOSwgVDIwLCBUMjEsIFQyMiwgVDIz
LCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMz
LCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwKLSAgICAgIFQ0MiwgVDQz
LCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OD4gdHlwZTsKLX07Ci10ZW1wbGF0ZSA8R1RFU1RfVEVN
UExBVEVfIFQxLCBHVEVTVF9URU1QTEFURV8gVDIsIEdURVNUX1RFTVBMQVRFXyBUMywKLSAgICBH
VEVTVF9URU1QTEFURV8gVDQsIEdURVNUX1RFTVBMQVRFXyBUNSwgR1RFU1RfVEVNUExBVEVfIFQ2
LAotICAgIEdURVNUX1RFTVBMQVRFXyBUNywgR1RFU1RfVEVNUExBVEVfIFQ4LCBHVEVTVF9URU1Q
TEFURV8gVDksCi0gICAgR1RFU1RfVEVNUExBVEVfIFQxMCwgR1RFU1RfVEVNUExBVEVfIFQxMSwg
R1RFU1RfVEVNUExBVEVfIFQxMiwKLSAgICBHVEVTVF9URU1QTEFURV8gVDEzLCBHVEVTVF9URU1Q
TEFURV8gVDE0LCBHVEVTVF9URU1QTEFURV8gVDE1LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMTYs
IEdURVNUX1RFTVBMQVRFXyBUMTcsIEdURVNUX1RFTVBMQVRFXyBUMTgsCi0gICAgR1RFU1RfVEVN
UExBVEVfIFQxOSwgR1RFU1RfVEVNUExBVEVfIFQyMCwgR1RFU1RfVEVNUExBVEVfIFQyMSwKLSAg
ICBHVEVTVF9URU1QTEFURV8gVDIyLCBHVEVTVF9URU1QTEFURV8gVDIzLCBHVEVTVF9URU1QTEFU
RV8gVDI0LAotICAgIEdURVNUX1RFTVBMQVRFXyBUMjUsIEdURVNUX1RFTVBMQVRFXyBUMjYsIEdU
RVNUX1RFTVBMQVRFXyBUMjcsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQyOCwgR1RFU1RfVEVNUExB
VEVfIFQyOSwgR1RFU1RfVEVNUExBVEVfIFQzMCwKLSAgICBHVEVTVF9URU1QTEFURV8gVDMxLCBH
VEVTVF9URU1QTEFURV8gVDMyLCBHVEVTVF9URU1QTEFURV8gVDMzLAotICAgIEdURVNUX1RFTVBM
QVRFXyBUMzQsIEdURVNUX1RFTVBMQVRFXyBUMzUsIEdURVNUX1RFTVBMQVRFXyBUMzYsCi0gICAg
R1RFU1RfVEVNUExBVEVfIFQzNywgR1RFU1RfVEVNUExBVEVfIFQzOCwgR1RFU1RfVEVNUExBVEVf
IFQzOSwKLSAgICBHVEVTVF9URU1QTEFURV8gVDQwLCBHVEVTVF9URU1QTEFURV8gVDQxLCBHVEVT
VF9URU1QTEFURV8gVDQyLAotICAgIEdURVNUX1RFTVBMQVRFXyBUNDMsIEdURVNUX1RFTVBMQVRF
XyBUNDQsIEdURVNUX1RFTVBMQVRFXyBUNDUsCi0gICAgR1RFU1RfVEVNUExBVEVfIFQ0NiwgR1RF
U1RfVEVNUExBVEVfIFQ0NywgR1RFU1RfVEVNUExBVEVfIFQ0OCwKLSAgICBHVEVTVF9URU1QTEFU
RV8gVDQ5Pgotc3RydWN0IFRlbXBsYXRlczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgs
IFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwKLSAgICBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsIFQyOCwgVDI5LAotICAg
IFQzMCwgVDMxLCBUMzIsIFQzMywgVDM0LCBUMzUsIFQzNiwgVDM3LCBUMzgsIFQzOSwgVDQwLCBU
NDEsIFQ0MiwgVDQzLCBUNDQsCi0gICAgVDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIE5vbmVUPiB7
Ci0gIHR5cGVkZWYgVGVtcGxhdGVzNDk8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBU
OSwgVDEwLCBUMTEsIFQxMiwgVDEzLAotICAgICAgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQx
OSwgVDIwLCBUMjEsIFQyMiwgVDIzLCBUMjQsIFQyNSwgVDI2LCBUMjcsCi0gICAgICBUMjgsIFQy
OSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwgVDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAs
IFQ0MSwKLSAgICAgIFQ0MiwgVDQzLCBUNDQsIFQ0NSwgVDQ2LCBUNDcsIFQ0OCwgVDQ5PiB0eXBl
OwotfTsKLQotLy8gVGhlIFR5cGVMaXN0IHRlbXBsYXRlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVz
ZSBlaXRoZXIgYSBzaW5nbGUgdHlwZQotLy8gb3IgYSBUeXBlczwuLi4+IGxpc3QgaW4gVFlQRURf
VEVTVF9DQVNFKCkgYW5kCi0vLyBJTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUCgpLgordGVt
cGxhdGUgPHR5cGVuYW1lLi4uIFRzPgorc3RydWN0IGlzX3Byb3h5X3R5cGVfbGlzdDxQcm94eVR5
cGVMaXN0PFRzLi4uPj4gOiBzdGQ6OnRydWVfdHlwZSB7fTsKIAorLy8gR2VuZXJhdG9yIHdoaWNo
IGNvbmRpdGlvbmFsbHkgY3JlYXRlcyB0eXBlIGxpc3RzLgorLy8gSXQgcmVjb2duaXplcyBpZiBh
IHJlcXVlc3RlZCB0eXBlIGxpc3Qgc2hvdWxkIGJlIGNyZWF0ZWQKKy8vIGFuZCBwcmV2ZW50cyBj
cmVhdGluZyBhIG5ldyB0eXBlIGxpc3QgbmVzdGVkIHdpdGhpbiBhbm90aGVyIG9uZS4KIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotc3RydWN0IFR5cGVMaXN0IHsKLSAgdHlwZWRlZiBUeXBlczE8VD4g
dHlwZTsKLX07CitzdHJ1Y3QgR2VuZXJhdGVUeXBlTGlzdCB7CisgcHJpdmF0ZToKKyAgdXNpbmcg
cHJveHkgPSB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPGlzX3Byb3h5X3R5cGVfbGlzdDxUPjo6
dmFsdWUsIFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm94
eVR5cGVMaXN0PFQ+Pjo6dHlwZTsKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBU
MiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICB0eXBlbmFtZSBU
NiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwLAot
ICAgIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQx
NCwgdHlwZW5hbWUgVDE1LAotICAgIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFt
ZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwLAotICAgIHR5cGVuYW1lIFQyMSwgdHlw
ZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNCwgdHlwZW5hbWUgVDI1LAotICAg
IHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOSwg
dHlwZW5hbWUgVDMwLAotICAgIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBU
MzMsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgVDM1LAotICAgIHR5cGVuYW1lIFQzNiwgdHlwZW5h
bWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgVDQwLAotICAgIHR5
cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NCwgdHlw
ZW5hbWUgVDQ1LAotICAgIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgs
IHR5cGVuYW1lIFQ0OSwgdHlwZW5hbWUgVDUwPgotc3RydWN0IFR5cGVMaXN0PFR5cGVzPFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywKLSAgICBU
MTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwgVDI1
LCBUMjYsIFQyNywgVDI4LAotICAgIFQyOSwgVDMwLCBUMzEsIFQzMiwgVDMzLCBUMzQsIFQzNSwg
VDM2LCBUMzcsIFQzOCwgVDM5LCBUNDAsIFQ0MSwgVDQyLCBUNDMsCi0gICAgVDQ0LCBUNDUsIFQ0
NiwgVDQ3LCBUNDgsIFQ0OSwgVDUwPiA+IHsKLSAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlczxUMSwg
VDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLAotICAgICAgVDEz
LCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5LCBUMjAsIFQyMSwgVDIyLCBUMjMsIFQyNCwg
VDI1LCBUMjYsCi0gICAgICBUMjcsIFQyOCwgVDI5LCBUMzAsIFQzMSwgVDMyLCBUMzMsIFQzNCwg
VDM1LCBUMzYsIFQzNywgVDM4LCBUMzksIFQ0MCwKLSAgICAgIFQ0MSwgVDQyLCBUNDMsIFQ0NCwg
VDQ1LCBUNDYsIFQ0NywgVDQ4LCBUNDksIFQ1MD46OnR5cGUgdHlwZTsKKyBwdWJsaWM6CisgIHVz
aW5nIHR5cGUgPSB0eXBlbmFtZSBwcm94eTo6dHlwZTsKIH07CiAKLSNlbmRpZiAgLy8gR1RFU1Rf
SEFTX1RZUEVEX1RFU1QgfHwgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB9ICAvLyBuYW1lc3Bh
Y2UgaW50ZXJuYWwKKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRzPgordXNpbmcgVHlwZXMgPSBp
bnRlcm5hbDo6UHJveHlUeXBlTGlzdDxUcy4uLj47CisKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5n
CiAKLSNlbmRpZiAgLy8gR1RFU1RfSU5DTFVERV9HVEVTVF9JTlRFUk5BTF9HVEVTVF9UWVBFX1VU
SUxfSF8KKyNlbmRpZiAgLy8gR09PR0xFVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X1RZUEVfVVRJTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvaW5jbHVk
ZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9pbnRlcm5hbC9ndGVzdC10eXBlLXV0aWwuaC5wdW1wCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAxYTVkMzlkZmE2ZDI0YzdjNDFhMTZhMTVm
MmUyYTVjZTk0OWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3Qt
dHlwZS11dGlsLmgucHVtcAorKysgL2Rldi9udWxsCkBAIC0xLDMxNCArMCwwIEBACi0kJCAtKi0g
bW9kZTogYysrOyAtKi0KLSR2YXIgbiA9IDUwICAkJCBNYXhpbXVtIGxlbmd0aCBvZiB0eXBlIGxp
c3RzIHdlIHdhbnQgdG8gc3VwcG9ydC4KLS8vIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuCi0v
LyBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLS8vIFR5cGUgdXRpbGl0aWVzIG5lZWRlZCBmb3IgaW1wbGVtZW50aW5n
IHR5cGVkIGFuZCB0eXBlLXBhcmFtZXRlcml6ZWQKLS8vIHRlc3RzLiAgVGhpcyBmaWxlIGlzIGdl
bmVyYXRlZCBieSBhIFNDUklQVC4gIERPIE5PVCBFRElUIEJZIEhBTkQhCi0vLwotLy8gQ3VycmVu
dGx5IHdlIHN1cHBvcnQgYXQgbW9zdCAkbiB0eXBlcyBpbiBhIGxpc3QsIGFuZCBhdCBtb3N0ICRu
Ci0vLyB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdHMgaW4gb25lIHR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0IGNhc2UuCi0vLyBQbGVhc2UgY29udGFjdCBnb29nbGV0ZXN0ZnJhbWV3b3JrQGdvb2dsZWdy
b3Vwcy5jb20gaWYgeW91IG5lZWQKLS8vIG1vcmUuCi0KLS8vIEdPT0dMRVRFU1RfQ00wMDAxIERP
IE5PVCBERUxFVEUKLQotI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X1RZUEVfVVRJTF9IXwotI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNU
X1RZUEVfVVRJTF9IXwotCi0jaW5jbHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgot
Ci0vLyAjaWZkZWYgX19HTlVDX18gaXMgdG9vIGdlbmVyYWwgaGVyZS4gIEl0IGlzIHBvc3NpYmxl
IHRvIHVzZSBnY2Mgd2l0aG91dCB1c2luZwotLy8gbGlic3RkYysrICh3aGljaCBpcyB3aGVyZSBj
eHhhYmkuaCBjb21lcyBmcm9tKS4KLSMgaWYgR1RFU1RfSEFTX0NYWEFCSV9IXwotIyAgaW5jbHVk
ZSA8Y3h4YWJpLmg+Ci0jIGVsaWYgZGVmaW5lZChfX0hQX2FDQykKLSMgIGluY2x1ZGUgPGFjeHhf
ZGVtYW5nbGUuaD4KLSMgZW5kaWYgIC8vIEdURVNUX0hBU0hfQ1hYQUJJX0hfCi0KLW5hbWVzcGFj
ZSB0ZXN0aW5nIHsKLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLS8vIENhbm9uaWNhbGl6ZXMgYSBn
aXZlbiBuYW1lIHdpdGggcmVzcGVjdCB0byB0aGUgU3RhbmRhcmQgQysrIExpYnJhcnkuCi0vLyBU
aGlzIGhhbmRsZXMgcmVtb3ZpbmcgdGhlIGlubGluZSBuYW1lc3BhY2Ugd2l0aGluIGBzdGRgIHRo
YXQgaXMKLS8vIHVzZWQgYnkgdmFyaW91cyBzdGFuZGFyZCBsaWJyYXJpZXMgKGUuZy4sIGBzdGQ6
Ol9fMWApLiAgTmFtZXMgb3V0c2lkZQotLy8gb2YgbmFtZXNwYWNlIHN0ZCBhcmUgcmV0dXJuZWQg
dW5tb2RpZmllZC4KLWlubGluZSBzdGQ6OnN0cmluZyBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJz
aW9uaW5nKHN0ZDo6c3RyaW5nIHMpIHsKLSAgc3RhdGljIGNvbnN0IGNoYXIgcHJlZml4W10gPSAi
c3RkOjpfXyI7Ci0gIGlmIChzLmNvbXBhcmUoMCwgc3RybGVuKHByZWZpeCksIHByZWZpeCkgPT0g
MCkgewotICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgZW5kID0gcy5maW5kKCI6OiIsIHN0cmxl
bihwcmVmaXgpKTsKLSAgICBpZiAoZW5kICE9IHMubnBvcykgewotICAgICAgLy8gRXJhc2UgZXZl
cnl0aGluZyBiZXR3ZWVuIHRoZSBpbml0aWFsIGBzdGRgIGFuZCB0aGUgc2Vjb25kIGA6OmAuCi0g
ICAgICBzLmVyYXNlKHN0cmxlbigic3RkIiksIGVuZCAtIHN0cmxlbigic3RkIikpOwotICAgIH0K
LSAgfQotICByZXR1cm4gczsKLX0KLQotLy8gR2V0VHlwZU5hbWU8VD4oKSByZXR1cm5zIGEgaHVt
YW4tcmVhZGFibGUgbmFtZSBvZiB0eXBlIFQuCi0vLyBOQjogVGhpcyBmdW5jdGlvbiBpcyBhbHNv
IHVzZWQgaW4gR29vZ2xlIE1vY2ssIHNvIGRvbid0IG1vdmUgaXQgaW5zaWRlIG9mCi0vLyB0aGUg
dHlwZWQtdGVzdC1vbmx5IHNlY3Rpb24gYmVsb3cuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0
ZDo6c3RyaW5nIEdldFR5cGVOYW1lKCkgewotIyBpZiBHVEVTVF9IQVNfUlRUSQotCi0gIGNvbnN0
IGNoYXIqIGNvbnN0IG5hbWUgPSB0eXBlaWQoVCkubmFtZSgpOwotIyAgaWYgR1RFU1RfSEFTX0NY
WEFCSV9IXyB8fCBkZWZpbmVkKF9fSFBfYUNDKQotICBpbnQgc3RhdHVzID0gMDsKLSAgLy8gZ2Nj
J3MgaW1wbGVtZW50YXRpb24gb2YgdHlwZWlkKFQpLm5hbWUoKSBtYW5nbGVzIHRoZSB0eXBlIG5h
bWUsCi0gIC8vIHNvIHdlIGhhdmUgdG8gZGVtYW5nbGUgaXQuCi0jICAgaWYgR1RFU1RfSEFTX0NY
WEFCSV9IXwotICB1c2luZyBhYmk6Ol9fY3hhX2RlbWFuZ2xlOwotIyAgIGVuZGlmICAvLyBHVEVT
VF9IQVNfQ1hYQUJJX0hfCi0gIGNoYXIqIGNvbnN0IHJlYWRhYmxlX25hbWUgPSBfX2N4YV9kZW1h
bmdsZShuYW1lLCAwLCAwLCAmc3RhdHVzKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZV9zdHIo
c3RhdHVzID09IDAgPyByZWFkYWJsZV9uYW1lIDogbmFtZSk7Ci0gIGZyZWUocmVhZGFibGVfbmFt
ZSk7Ci0gIHJldHVybiBDYW5vbmljYWxpemVGb3JTdGRMaWJWZXJzaW9uaW5nKG5hbWVfc3RyKTsK
LSMgIGVsc2UKLSAgcmV0dXJuIG5hbWU7Ci0jICBlbmRpZiAgLy8gR1RFU1RfSEFTX0NYWEFCSV9I
XyB8fCBfX0hQX2FDQwotCi0jIGVsc2UKLQotICByZXR1cm4gIjx0eXBlPiI7Ci0KLSMgZW5kaWYg
IC8vIEdURVNUX0hBU19SVFRJCi19Ci0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVCB8fCBHVEVT
VF9IQVNfVFlQRURfVEVTVF9QCi0KLS8vIEFzc2VydHlUeXBlRXE8VDEsIFQyPjo6dHlwZSBpcyBk
ZWZpbmVkIGlmZiBUMSBhbmQgVDIgYXJlIHRoZSBzYW1lCi0vLyB0eXBlLiAgVGhpcyBjYW4gYmUg
dXNlZCBhcyBhIGNvbXBpbGUtdGltZSBhc3NlcnRpb24gdG8gZW5zdXJlIHRoYXQKLS8vIHR3byB0
eXBlcyBhcmUgZXF1YWwuCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci1z
dHJ1Y3QgQXNzZXJ0VHlwZUVxOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBBc3Nl
cnRUeXBlRXE8VCwgVD4gewotICB0eXBlZGVmIGJvb2wgdHlwZTsKLX07Ci0KLS8vIEEgdW5pcXVl
IHR5cGUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGFyZ3VtZW50cyBvZiBjbGFz
cwotLy8gdGVtcGxhdGUgVHlwZXMuICBUaGlzIGFsbG93cyB1cyB0byBzaW11bGF0ZSB2YXJpYWRp
YyB0ZW1wbGF0ZXMKLS8vIChlLmcuIFR5cGVzPGludD4sIFR5cGU8aW50LCBkb3VibGU+LCBhbmQg
ZXRjKSwgd2hpY2ggQysrIGRvZXNuJ3QKLS8vIHN1cHBvcnQgZGlyZWN0bHkuCi1zdHJ1Y3QgTm9u
ZSB7fTsKLQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1Y3QgdGVt
cGxhdGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdHlwZSBsaXN0cy4gIEluIHBhcnRpY3Vs
YXIsIFR5cGVzTjxUMSwgVDIsIC4uLiwgVE4+Ci0vLyByZXByZXNlbnRzIGEgdHlwZSBsaXN0IHdp
dGggTiB0eXBlcyAoVDEsIFQyLCAuLi4sIGFuZCBUTikgaW4gaXQuCi0vLyBFeGNlcHQgZm9yIFR5
cGVzMCwgZXZlcnkgc3RydWN0IGluIHRoZSBmYW1pbHkgaGFzIHR3byBtZW1iZXIgdHlwZXM6Ci0v
LyBIZWFkIGZvciB0aGUgZmlyc3QgdHlwZSBpbiB0aGUgbGlzdCwgYW5kIFRhaWwgZm9yIHRoZSBy
ZXN0IG9mIHRoZQotLy8gbGlzdC4KLQotLy8gVGhlIGVtcHR5IHR5cGUgbGlzdC4KLXN0cnVjdCBU
eXBlczAge307Ci0KLS8vIFR5cGUgbGlzdHMgb2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4K
LQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxPgotc3RydWN0IFR5cGVzMSB7Ci0gIHR5cGVkZWYgVDEg
SGVhZDsKLSAgdHlwZWRlZiBUeXBlczAgVGFpbDsKLX07Ci0KLSRyYW5nZSBpIDIuLm4KLQotJGZv
ciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2UgayAyLi5pCi10ZW1wbGF0ZSA8JGZvciBqLCBb
W3R5cGVuYW1lIFQkal1dPgotc3RydWN0IFR5cGVzJGkgewotICB0eXBlZGVmIFQxIEhlYWQ7Ci0g
IHR5cGVkZWYgVHlwZXMkKGktMSk8JGZvciBrLCBbW1Qka11dPiBUYWlsOwotfTsKLQotCi1dXQot
Ci19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLQotLy8gV2UgZG9uJ3Qgd2FudCB0byByZXF1aXJl
IHRoZSB1c2VycyB0byB3cml0ZSBUeXBlc048Li4uPiBkaXJlY3RseSwKLS8vIGFzIHRoYXQgd291
bGQgcmVxdWlyZSB0aGVtIHRvIGNvdW50IHRoZSBsZW5ndGguICBUeXBlczwuLi4+IGlzIG11Y2gK
LS8vIGVhc2llciB0byB3cml0ZSwgYnV0IGdlbmVyYXRlcyBob3JyaWJsZSBtZXNzYWdlcyB3aGVu
IHRoZXJlIGlzIGEKLS8vIGNvbXBpbGVyIGVycm9yLCBhcyBnY2MgaW5zaXN0cyBvbiBwcmludGlu
ZyBvdXQgZWFjaCB0ZW1wbGF0ZQotLy8gYXJndW1lbnQsIGV2ZW4gaWYgaXQgaGFzIHRoZSBkZWZh
dWx0IHZhbHVlICh0aGlzIG1lYW5zIFR5cGVzPGludD4KLS8vIHdpbGwgYXBwZWFyIGFzIFR5cGVz
PGludCwgTm9uZSwgTm9uZSwgLi4uLCBOb25lPiBpbiB0aGUgY29tcGlsZXIKLS8vIGVycm9ycyku
Ci0vLwotLy8gT3VyIHNvbHV0aW9uIGlzIHRvIGNvbWJpbmUgdGhlIGJlc3QgcGFydCBvZiB0aGUg
dHdvIGFwcHJvYWNoZXM6IGEKLS8vIHVzZXIgd291bGQgd3JpdGUgVHlwZXM8VDEsIC4uLiwgVE4+
LCBhbmQgR29vZ2xlIFRlc3Qgd2lsbCB0cmFuc2xhdGUKLS8vIHRoYXQgdG8gVHlwZXNOPFQxLCAu
Li4sIFROPiBpbnRlcm5hbGx5IHRvIG1ha2UgZXJyb3IgbWVzc2FnZXMKLS8vIHJlYWRhYmxlLiAg
VGhlIHRyYW5zbGF0aW9uIGlzIGRvbmUgYnkgdGhlICd0eXBlJyBtZW1iZXIgb2YgdGhlCi0vLyBU
eXBlcyB0ZW1wbGF0ZS4KLQotJHJhbmdlIGkgMS4ubgotdGVtcGxhdGUgPCRmb3IgaSwgW1t0eXBl
bmFtZSBUJGkgPSBpbnRlcm5hbDo6Tm9uZV1dPgotc3RydWN0IFR5cGVzIHsKLSAgdHlwZWRlZiBp
bnRlcm5hbDo6VHlwZXMkbjwkZm9yIGksIFtbVCRpXV0+IHR5cGU7Ci19OwotCi10ZW1wbGF0ZSA8
Pgotc3RydWN0IFR5cGVzPCRmb3IgaSwgW1tpbnRlcm5hbDo6Tm9uZV1dPiB7Ci0gIHR5cGVkZWYg
aW50ZXJuYWw6OlR5cGVzMCB0eXBlOwotfTsKLQotJHJhbmdlIGkgMS4ubi0xCi0kZm9yIGkgW1sK
LSRyYW5nZSBqIDEuLmkKLSRyYW5nZSBrIGkrMS4ubgotdGVtcGxhdGUgPCRmb3IgaiwgW1t0eXBl
bmFtZSBUJGpdXT4KLXN0cnVjdCBUeXBlczwkZm9yIGosIFtbVCRqXV0kZm9yIGtbWywgaW50ZXJu
YWw6Ok5vbmVdXT4gewotICB0eXBlZGVmIGludGVybmFsOjpUeXBlcyRpPCRmb3IgaiwgW1tUJGpd
XT4gdHlwZTsKLX07Ci0KLV1dCi0KLW5hbWVzcGFjZSBpbnRlcm5hbCB7Ci0KLSMgZGVmaW5lIEdU
RVNUX1RFTVBMQVRFXyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MKLQotLy8gVGhlIHRlbXBs
YXRlICJzZWxlY3RvciIgc3RydWN0IFRlbXBsYXRlU2VsPFRtcGw+IGlzIHVzZWQgdG8KLS8vIHJl
cHJlc2VudCBUbXBsLCB3aGljaCBtdXN0IGJlIGEgY2xhc3MgdGVtcGxhdGUgd2l0aCBvbmUgdHlw
ZQotLy8gcGFyYW1ldGVyLCBhcyBhIHR5cGUuICBUZW1wbGF0ZVNlbDxUbXBsPjo6QmluZDxUPjo6
dHlwZSBpcyBkZWZpbmVkCi0vLyBhcyB0aGUgdHlwZSBUbXBsPFQ+LiAgVGhpcyBhbGxvd3MgdXMg
dG8gYWN0dWFsbHkgaW5zdGFudGlhdGUgdGhlCi0vLyB0ZW1wbGF0ZSAic2VsZWN0ZWQiIGJ5IFRl
bXBsYXRlU2VsPFRtcGw+LgotLy8KLS8vIFRoaXMgdHJpY2sgaXMgbmVjZXNzYXJ5IGZvciBzaW11
bGF0aW5nIHR5cGVkZWYgZm9yIGNsYXNzIHRlbXBsYXRlcywKLS8vIHdoaWNoIEMrKyBkb2Vzbid0
IHN1cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8R1RFU1RfVEVNUExBVEVfIFRtcGw+Ci1zdHJ1
Y3QgVGVtcGxhdGVTZWwgewotICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgc3RydWN0IEJpbmQg
ewotICAgIHR5cGVkZWYgVG1wbDxUPiB0eXBlOwotICB9OwotfTsKLQotIyBkZWZpbmUgR1RFU1Rf
QklORF8oVG1wbFNlbCwgVCkgXAotICBUbXBsU2VsOjp0ZW1wbGF0ZSBCaW5kPFQ+Ojp0eXBlCi0K
LS8vIEEgdW5pcXVlIHN0cnVjdCB0ZW1wbGF0ZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciB0aGUKLS8vIGFyZ3VtZW50cyBvZiBjbGFzcyB0ZW1wbGF0ZSBUZW1wbGF0ZXMuICBUaGlzIGFs
bG93cyB1cyB0byBzaW11bGF0ZQotLy8gdmFyaWFkaWMgdGVtcGxhdGVzIChlLmcuIFRlbXBsYXRl
czxpbnQ+LCBUZW1wbGF0ZXM8aW50LCBkb3VibGU+LAotLy8gYW5kIGV0YyksIHdoaWNoIEMrKyBk
b2Vzbid0IHN1cHBvcnQgZGlyZWN0bHkuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXN0cnVjdCBO
b25lVCB7fTsKLQotLy8gVGhlIGZvbGxvd2luZyBmYW1pbHkgb2Ygc3RydWN0IGFuZCBzdHJ1Y3Qg
dGVtcGxhdGVzIGFyZSB1c2VkIHRvCi0vLyByZXByZXNlbnQgdGVtcGxhdGUgbGlzdHMuICBJbiBw
YXJ0aWN1bGFyLCBUZW1wbGF0ZXNOPFQxLCBUMiwgLi4uLAotLy8gVE4+IHJlcHJlc2VudHMgYSBs
aXN0IG9mIE4gdGVtcGxhdGVzIChUMSwgVDIsIC4uLiwgYW5kIFROKS4gIEV4Y2VwdAotLy8gZm9y
IFRlbXBsYXRlczAsIGV2ZXJ5IHN0cnVjdCBpbiB0aGUgZmFtaWx5IGhhcyB0d28gbWVtYmVyIHR5
cGVzOgotLy8gSGVhZCBmb3IgdGhlIHNlbGVjdG9yIG9mIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbiB0
aGUgbGlzdCwgYW5kIFRhaWwKLS8vIGZvciB0aGUgcmVzdCBvZiB0aGUgbGlzdC4KLQotLy8gVGhl
IGVtcHR5IHRlbXBsYXRlIGxpc3QuCi1zdHJ1Y3QgVGVtcGxhdGVzMCB7fTsKLQotLy8gVGVtcGxh
dGUgbGlzdHMgb2YgbGVuZ3RoIDEsIDIsIDMsIGFuZCBzbyBvbi4KLQotdGVtcGxhdGUgPEdURVNU
X1RFTVBMQVRFXyBUMT4KLXN0cnVjdCBUZW1wbGF0ZXMxIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZVNl
bDxUMT4gSGVhZDsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMwIFRhaWw7Ci19OwotCi0kcmFuZ2UgaSAy
Li5uCi0KLSRmb3IgaSBbWwotJHJhbmdlIGogMS4uaQotJHJhbmdlIGsgMi4uaQotdGVtcGxhdGUg
PCRmb3IgaiwgW1tHVEVTVF9URU1QTEFURV8gVCRqXV0+Ci1zdHJ1Y3QgVGVtcGxhdGVzJGkgewot
ICB0eXBlZGVmIFRlbXBsYXRlU2VsPFQxPiBIZWFkOwotICB0eXBlZGVmIFRlbXBsYXRlcyQoaS0x
KTwkZm9yIGssIFtbVCRrXV0+IFRhaWw7Ci19OwotCi0KLV1dCi0KLS8vIFdlIGRvbid0IHdhbnQg
dG8gcmVxdWlyZSB0aGUgdXNlcnMgdG8gd3JpdGUgVGVtcGxhdGVzTjwuLi4+IGRpcmVjdGx5LAot
Ly8gYXMgdGhhdCB3b3VsZCByZXF1aXJlIHRoZW0gdG8gY291bnQgdGhlIGxlbmd0aC4gIFRlbXBs
YXRlczwuLi4+IGlzIG11Y2gKLS8vIGVhc2llciB0byB3cml0ZSwgYnV0IGdlbmVyYXRlcyBob3Jy
aWJsZSBtZXNzYWdlcyB3aGVuIHRoZXJlIGlzIGEKLS8vIGNvbXBpbGVyIGVycm9yLCBhcyBnY2Mg
aW5zaXN0cyBvbiBwcmludGluZyBvdXQgZWFjaCB0ZW1wbGF0ZQotLy8gYXJndW1lbnQsIGV2ZW4g
aWYgaXQgaGFzIHRoZSBkZWZhdWx0IHZhbHVlICh0aGlzIG1lYW5zIFRlbXBsYXRlczxsaXN0Pgot
Ly8gd2lsbCBhcHBlYXIgYXMgVGVtcGxhdGVzPGxpc3QsIE5vbmVULCBOb25lVCwgLi4uLCBOb25l
VD4gaW4gdGhlIGNvbXBpbGVyCi0vLyBlcnJvcnMpLgotLy8KLS8vIE91ciBzb2x1dGlvbiBpcyB0
byBjb21iaW5lIHRoZSBiZXN0IHBhcnQgb2YgdGhlIHR3byBhcHByb2FjaGVzOiBhCi0vLyB1c2Vy
IHdvdWxkIHdyaXRlIFRlbXBsYXRlczxUMSwgLi4uLCBUTj4sIGFuZCBHb29nbGUgVGVzdCB3aWxs
IHRyYW5zbGF0ZQotLy8gdGhhdCB0byBUZW1wbGF0ZXNOPFQxLCAuLi4sIFROPiBpbnRlcm5hbGx5
IHRvIG1ha2UgZXJyb3IgbWVzc2FnZXMKLS8vIHJlYWRhYmxlLiAgVGhlIHRyYW5zbGF0aW9uIGlz
IGRvbmUgYnkgdGhlICd0eXBlJyBtZW1iZXIgb2YgdGhlCi0vLyBUZW1wbGF0ZXMgdGVtcGxhdGUu
Ci0KLSRyYW5nZSBpIDEuLm4KLXRlbXBsYXRlIDwkZm9yIGksIFtbR1RFU1RfVEVNUExBVEVfIFQk
aSA9IE5vbmVUXV0+Ci1zdHJ1Y3QgVGVtcGxhdGVzIHsKLSAgdHlwZWRlZiBUZW1wbGF0ZXMkbjwk
Zm9yIGksIFtbVCRpXV0+IHR5cGU7Ci19OwotCi10ZW1wbGF0ZSA8Pgotc3RydWN0IFRlbXBsYXRl
czwkZm9yIGksIFtbTm9uZVRdXT4gewotICB0eXBlZGVmIFRlbXBsYXRlczAgdHlwZTsKLX07Ci0K
LSRyYW5nZSBpIDEuLm4tMQotJGZvciBpIFtbCi0kcmFuZ2UgaiAxLi5pCi0kcmFuZ2UgayBpKzEu
Lm4KLXRlbXBsYXRlIDwkZm9yIGosIFtbR1RFU1RfVEVNUExBVEVfIFQkal1dPgotc3RydWN0IFRl
bXBsYXRlczwkZm9yIGosIFtbVCRqXV0kZm9yIGtbWywgTm9uZVRdXT4gewotICB0eXBlZGVmIFRl
bXBsYXRlcyRpPCRmb3IgaiwgW1tUJGpdXT4gdHlwZTsKLX07Ci0KLV1dCi0KLS8vIFRoZSBUeXBl
TGlzdCB0ZW1wbGF0ZSBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgZWl0aGVyIGEgc2luZ2xlIHR5
cGUKLS8vIG9yIGEgVHlwZXM8Li4uPiBsaXN0IGluIFRZUEVEX1RFU1RfQ0FTRSgpIGFuZAotLy8g
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoKS4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1zdHJ1Y3QgVHlwZUxpc3QgewotICB0eXBlZGVmIFR5cGVzMTxUPiB0eXBlOwotfTsKLQotCi0k
cmFuZ2UgaSAxLi5uCi10ZW1wbGF0ZSA8JGZvciBpLCBbW3R5cGVuYW1lIFQkaV1dPgotc3RydWN0
IFR5cGVMaXN0PFR5cGVzPCRmb3IgaSwgW1tUJGldXT4gPiB7Ci0gIHR5cGVkZWYgdHlwZW5hbWUg
VHlwZXM8JGZvciBpLCBbW1QkaV1dPjo6dHlwZSB0eXBlOwotfTsKLQotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFlQRURfVEVTVCB8fCBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KLX0gIC8vIG5hbWVz
cGFjZSBpbnRlcm5hbAotfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKLQotI2VuZGlmICAvLyBHVEVT
VF9JTkNMVURFX0dURVNUX0lOVEVSTkFMX0dURVNUX1RZUEVfVVRJTF9IXwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbTQvYWN4X3B0aHJlYWQubTQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tNC9hY3hfcHRocmVhZC5tNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmNmMjBkZTE0NGExMWJlMmFhNjAzYjA0ZWE1MTEyNDQxOTEwMzdiNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9tNC9hY3hfcHRocmVhZC5tNAorKysgL2Rldi9udWxsCkBAIC0xLDM2MyArMCwwIEBACi0jIFRo
aXMgd2FzIHJldHJpZXZlZCBmcm9tCi0jICAgIGh0dHA6Ly9zdm4uMHBvaW50ZXIuZGUvdmlld3Zj
L3RydW5rL2NvbW1vbi9hY3hfcHRocmVhZC5tND9yZXZpc2lvbj0xMjc3JnJvb3Q9YXZhaGkKLSMg
U2VlIGFsc28gKHBlcmhhcHMgZm9yIG5ldyB2ZXJzaW9ucz8pCi0jICAgIGh0dHA6Ly9zdm4uMHBv
aW50ZXIuZGUvdmlld3ZjL3RydW5rL2NvbW1vbi9hY3hfcHRocmVhZC5tND9yb290PWF2YWhpCi0j
Ci0jIFdlJ3ZlIHJld3JpdHRlbiB0aGUgaW5jb25zaXN0ZW5jeSBjaGVjayBjb2RlIChmcm9tIGF2
YWhpKSwgdG8gd29yawotIyBtb3JlIGJyb2FkbHkuICBJbiBwYXJ0aWN1bGFyLCBpdCBubyBsb25n
ZXIgYXNzdW1lcyBsZCBhY2NlcHRzIC16ZGVmcy4KLSMgVGhpcyBjYXVzZWQgYSByZXN0cnVjdGlu
ZyBvZiB0aGUgY29kZSwgYnV0IHRoZSBmdW5jdGlvbmFsaXR5IGhhcyBvbmx5Ci0jIGNoYW5nZWQg
YSBsaXR0bGUuCi0KLWRubCBAc3lub3BzaXMgQUNYX1BUSFJFQUQoW0FDVElPTi1JRi1GT1VORFss
IEFDVElPTi1JRi1OT1QtRk9VTkRdXSkKLWRubAotZG5sIEBzdW1tYXJ5IGZpZ3VyZSBvdXQgaG93
IHRvIGJ1aWxkIEMgcHJvZ3JhbXMgdXNpbmcgUE9TSVggdGhyZWFkcwotZG5sCi1kbmwgVGhpcyBt
YWNybyBmaWd1cmVzIG91dCBob3cgdG8gYnVpbGQgQyBwcm9ncmFtcyB1c2luZyBQT1NJWCB0aHJl
YWRzLgotZG5sIEl0IHNldHMgdGhlIFBUSFJFQURfTElCUyBvdXRwdXQgdmFyaWFibGUgdG8gdGhl
IHRocmVhZHMgbGlicmFyeSBhbmQKLWRubCBsaW5rZXIgZmxhZ3MsIGFuZCB0aGUgUFRIUkVBRF9D
RkxBR1Mgb3V0cHV0IHZhcmlhYmxlIHRvIGFueSBzcGVjaWFsCi1kbmwgQyBjb21waWxlciBmbGFn
cyB0aGF0IGFyZSBuZWVkZWQuIChUaGUgdXNlciBjYW4gYWxzbyBmb3JjZSBjZXJ0YWluCi1kbmwg
Y29tcGlsZXIgZmxhZ3MvbGlicyB0byBiZSB0ZXN0ZWQgYnkgc2V0dGluZyB0aGVzZSBlbnZpcm9u
bWVudAotZG5sIHZhcmlhYmxlcy4pCi1kbmwKLWRubCBBbHNvIHNldHMgUFRIUkVBRF9DQyB0byBh
bnkgc3BlY2lhbCBDIGNvbXBpbGVyIHRoYXQgaXMgbmVlZGVkIGZvcgotZG5sIG11bHRpLXRocmVh
ZGVkIHByb2dyYW1zIChkZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgQ0Mgb3RoZXJ3aXNlKS4KLWRu
bCAoVGhpcyBpcyBuZWNlc3Nhcnkgb24gQUlYIHRvIHVzZSB0aGUgc3BlY2lhbCBjY19yIGNvbXBp
bGVyIGFsaWFzLikKLWRubAotZG5sIE5PVEU6IFlvdSBhcmUgYXNzdW1lZCB0byBub3Qgb25seSBj
b21waWxlIHlvdXIgcHJvZ3JhbSB3aXRoIHRoZXNlCi1kbmwgZmxhZ3MsIGJ1dCBhbHNvIGxpbmsg
aXQgd2l0aCB0aGVtIGFzIHdlbGwuIGUuZy4geW91IHNob3VsZCBsaW5rCi1kbmwgd2l0aCAkUFRI
UkVBRF9DQyAkQ0ZMQUdTICRQVEhSRUFEX0NGTEFHUyAkTERGTEFHUyAuLi4gJFBUSFJFQURfTElC
UwotZG5sICRMSUJTCi1kbmwKLWRubCBJZiB5b3UgYXJlIG9ubHkgYnVpbGRpbmcgdGhyZWFkcyBw
cm9ncmFtcywgeW91IG1heSB3aXNoIHRvIHVzZQotZG5sIHRoZXNlIHZhcmlhYmxlcyBpbiB5b3Vy
IGRlZmF1bHQgTElCUywgQ0ZMQUdTLCBhbmQgQ0M6Ci1kbmwKLWRubCAgICAgICAgTElCUz0iJFBU
SFJFQURfTElCUyAkTElCUyIKLWRubCAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRQVEhSRUFEX0NG
TEFHUyIKLWRubCAgICAgICAgQ0M9IiRQVEhSRUFEX0NDIgotZG5sCi1kbmwgSW4gYWRkaXRpb24s
IGlmIHRoZSBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSB0aHJlYWQtYXR0cmlidXRlCi1kbmwgY29u
c3RhbnQgaGFzIGEgbm9uc3RhbmRhcmQgbmFtZSwgZGVmaW5lcyBQVEhSRUFEX0NSRUFURV9KT0lO
QUJMRSB0bwotZG5sIHRoYXQgbmFtZSAoZS5nLiBQVEhSRUFEX0NSRUFURV9VTkRFVEFDSEVEIG9u
IEFJWCkuCi1kbmwKLWRubCBBQ1RJT04tSUYtRk9VTkQgaXMgYSBsaXN0IG9mIHNoZWxsIGNvbW1h
bmRzIHRvIHJ1biBpZiBhIHRocmVhZHMKLWRubCBsaWJyYXJ5IGlzIGZvdW5kLCBhbmQgQUNUSU9O
LUlGLU5PVC1GT1VORCBpcyBhIGxpc3Qgb2YgY29tbWFuZHMgdG8KLWRubCBydW4gaXQgaWYgaXQg
aXMgbm90IGZvdW5kLiBJZiBBQ1RJT04tSUYtRk9VTkQgaXMgbm90IHNwZWNpZmllZCwgdGhlCi1k
bmwgZGVmYXVsdCBhY3Rpb24gd2lsbCBkZWZpbmUgSEFWRV9QVEhSRUFELgotZG5sCi1kbmwgUGxl
YXNlIGxldCB0aGUgYXV0aG9ycyBrbm93IGlmIHRoaXMgbWFjcm8gZmFpbHMgb24gYW55IHBsYXRm
b3JtLCBvcgotZG5sIGlmIHlvdSBoYXZlIGFueSBvdGhlciBzdWdnZXN0aW9ucyBvciBjb21tZW50
cy4gVGhpcyBtYWNybyB3YXMgYmFzZWQKLWRubCBvbiB3b3JrIGJ5IFNHSiBvbiBhdXRvY29uZiBz
Y3JpcHRzIGZvciBGRlRXICh3d3cuZmZ0dy5vcmcpICh3aXRoCi1kbmwgaGVscCBmcm9tIE0uIEZy
aWdvKSwgYXMgd2VsbCBhcyBhY19wdGhyZWFkIGFuZCBoYl9wdGhyZWFkIG1hY3JvcwotZG5sIHBv
c3RlZCBieSBBbGVqYW5kcm8gRm9yZXJvIEN1ZXJ2byB0byB0aGUgYXV0b2NvbmYgbWFjcm8gcmVw
b3NpdG9yeS4KLWRubCBXZSBhcmUgYWxzbyBncmF0ZWZ1bCBmb3IgdGhlIGhlbHBmdWwgZmVlZGJh
Y2sgb2YgbnVtZXJvdXMgdXNlcnMuCi1kbmwKLWRubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2Fn
ZXMKLWRubCBAYXV0aG9yIFN0ZXZlbiBHLiBKb2huc29uIDxzdGV2ZW5qQGFsdW0ubWl0LmVkdT4K
LWRubCBAdmVyc2lvbiAyMDA2LTA1LTI5Ci1kbmwgQGxpY2Vuc2UgR1BMV2l0aEFDRXhjZXB0aW9u
Ci1kbmwgCi1kbmwgQ2hlY2tzIGZvciBHQ0Mgc2hhcmVkL3B0aHJlYWQgaW5jb25zaXN0ZW5jeSBi
YXNlZCBvbiB3b3JrIGJ5Ci1kbmwgTWFyY2luIE93c2lhbnkgPG1hcmNpbkBvd3NpYW55LnBsPgot
Ci0KLUFDX0RFRlVOKFtBQ1hfUFRIUkVBRF0sIFsKLUFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9I
T1NUXSkKLUFDX0xBTkdfU0FWRQotQUNfTEFOR19DCi1hY3hfcHRocmVhZF9vaz1ubwotCi0jIFdl
IHVzZWQgdG8gY2hlY2sgZm9yIHB0aHJlYWQuaCBmaXJzdCwgYnV0IHRoaXMgZmFpbHMgaWYgcHRo
cmVhZC5oCi0jIHJlcXVpcmVzIHNwZWNpYWwgY29tcGlsZXIgZmxhZ3MgKGUuZy4gb24gVHJ1ZTY0
IG9yIFNlcXVlbnQpLgotIyBJdCBnZXRzIGNoZWNrZWQgZm9yIGluIHRoZSBsaW5rIHRlc3QgYW55
d2F5LgotCi0jIEZpcnN0IG9mIGFsbCwgY2hlY2sgaWYgdGhlIHVzZXIgaGFzIHNldCBhbnkgb2Yg
dGhlIFBUSFJFQURfTElCUywKLSMgZXRjZXRlcmEgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQg
aWYgdGhyZWFkcyBsaW5raW5nIHdvcmtzIHVzaW5nCi0jIHRoZW06Ci1pZiB0ZXN0IHgiJFBUSFJF
QURfTElCUyRQVEhSRUFEX0NGTEFHUyIgIT0geDsgdGhlbgotICAgICAgICBzYXZlX0NGTEFHUz0i
JENGTEFHUyIKLSAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRQVEhSRUFEX0NGTEFHUyIKLSAgICAg
ICAgc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgICAgTElCUz0iJFBUSFJFQURfTElCUyAkTElCUyIK
LSAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgcHRocmVhZF9qb2luIGluIExJQlM9JFBUSFJF
QURfTElCUyB3aXRoIENGTEFHUz0kUFRIUkVBRF9DRkxBR1NdKQotICAgICAgICBBQ19UUllfTElO
S19GVU5DKHB0aHJlYWRfam9pbiwgYWN4X3B0aHJlYWRfb2s9eWVzKQotICAgICAgICBBQ19NU0df
UkVTVUxUKCRhY3hfcHRocmVhZF9vaykKLSAgICAgICAgaWYgdGVzdCB4IiRhY3hfcHRocmVhZF9v
ayIgPSB4bm87IHRoZW4KLSAgICAgICAgICAgICAgICBQVEhSRUFEX0xJQlM9IiIKLSAgICAgICAg
ICAgICAgICBQVEhSRUFEX0NGTEFHUz0iIgotICAgICAgICBmaQotICAgICAgICBMSUJTPSIkc2F2
ZV9MSUJTIgotICAgICAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLWZpCi0KLSMgV2UgbXVzdCBj
aGVjayBmb3IgdGhlIHRocmVhZHMgbGlicmFyeSB1bmRlciBhIG51bWJlciBvZiBkaWZmZXJlbnQK
LSMgbmFtZXM7IHRoZSBvcmRlcmluZyBpcyB2ZXJ5IGltcG9ydGFudCBiZWNhdXNlIHNvbWUgc3lz
dGVtcwotIyAoZS5nLiBERUMpIGhhdmUgYm90aCAtbHB0aHJlYWQgYW5kIC1scHRocmVhZHMsIHdo
ZXJlIG9uZSBvZiB0aGUKLSMgbGlicmFyaWVzIGlzIGJyb2tlbiAobm9uLVBPU0lYKS4KLQotIyBD
cmVhdGUgYSBsaXN0IG9mIHRocmVhZCBmbGFncyB0byB0cnkuICBJdGVtcyBzdGFydGluZyB3aXRo
IGEgIi0iIGFyZQotIyBDIGNvbXBpbGVyIGZsYWdzLCBhbmQgb3RoZXIgaXRlbXMgYXJlIGxpYnJh
cnkgbmFtZXMsIGV4Y2VwdCBmb3IgIm5vbmUiCi0jIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlIHRy
eSB3aXRob3V0IGFueSBmbGFncyBhdCBhbGwsIGFuZCAicHRocmVhZC1jb25maWciCi0jIHdoaWNo
IGlzIGEgcHJvZ3JhbSByZXR1cm5pbmcgdGhlIGZsYWdzIGZvciB0aGUgUHRoIGVtdWxhdGlvbiBs
aWJyYXJ5LgotCi1hY3hfcHRocmVhZF9mbGFncz0icHRocmVhZHMgbm9uZSAtS3RocmVhZCAta3Ro
cmVhZCBsdGhyZWFkIC1wdGhyZWFkIC1wdGhyZWFkcyAtbXRocmVhZHMgcHRocmVhZCAtLXRocmVh
ZC1zYWZlIC1tdCBwdGhyZWFkLWNvbmZpZyIKLQotIyBUaGUgb3JkZXJpbmcgKmlzKiAoc29tZXRp
bWVzKSBpbXBvcnRhbnQuICBTb21lIG5vdGVzIG9uIHRoZQotIyBpbmRpdmlkdWFsIGl0ZW1zIGZv
bGxvdzoKLQotIyBwdGhyZWFkczogQUlYIChtdXN0IGNoZWNrIHRoaXMgYmVmb3JlIC1scHRocmVh
ZCkKLSMgbm9uZTogaW4gY2FzZSB0aHJlYWRzIGFyZSBpbiBsaWJjOyBzaG91bGQgYmUgdHJpZWQg
YmVmb3JlIC1LdGhyZWFkIGFuZAotIyAgICAgICBvdGhlciBjb21waWxlciBmbGFncyB0byBwcmV2
ZW50IGNvbnRpbnVhbCBjb21waWxlciB3YXJuaW5ncwotIyAtS3RocmVhZDogU2VxdWVudCAodGhy
ZWFkcyBpbiBsaWJjLCBidXQgLUt0aHJlYWQgbmVlZGVkIGZvciBwdGhyZWFkLmgpCi0jIC1rdGhy
ZWFkOiBGcmVlQlNEIGtlcm5lbCB0aHJlYWRzIChwcmVmZXJyZWQgdG8gLXB0aHJlYWQgc2luY2Ug
U01QLWFibGUpCi0jIGx0aHJlYWQ6IExpbnV4VGhyZWFkcyBwb3J0IG9uIEZyZWVCU0QgKGFsc28g
cHJlZmVycmVkIHRvIC1wdGhyZWFkKQotIyAtcHRocmVhZDogTGludXgvZ2NjIChrZXJuZWwgdGhy
ZWFkcyksIEJTRC9nY2MgKHVzZXJsYW5kIHRocmVhZHMpCi0jIC1wdGhyZWFkczogU29sYXJpcy9n
Y2MKLSMgLW10aHJlYWRzOiBNaW5ndzMyL2djYywgTHlueC9nY2MKLSMgLW10OiBTdW4gV29ya3No
b3AgQyAobWF5IG9ubHkgbGluayBTdW5PUyB0aHJlYWRzIFstbHRocmVhZF0sIGJ1dCBpdAotIyAg
ICAgIGRvZXNuJ3QgaHVydCB0byBjaGVjayBzaW5jZSB0aGlzIHNvbWV0aW1lcyBkZWZpbmVzIHB0
aHJlYWRzIHRvbzsKLSMgICAgICBhbHNvIGRlZmluZXMgLURfUkVFTlRSQU5UKQotIyAgICAgIC4u
LiAtbXQgaXMgYWxzbyB0aGUgcHRocmVhZHMgZmxhZyBmb3IgSFAvYUNDCi0jIHB0aHJlYWQ6IExp
bnV4LCBldGNldGVyYQotIyAtLXRocmVhZC1zYWZlOiBLQUkgQysrCi0jIHB0aHJlYWQtY29uZmln
OiB1c2UgcHRocmVhZC1jb25maWcgcHJvZ3JhbSAoZm9yIEdOVSBQdGggbGlicmFyeSkKLQotY2Fz
ZSAiJHtob3N0X2NwdX0tJHtob3N0X29zfSIgaW4KLSAgICAgICAgKnNvbGFyaXMqKQotCi0gICAg
ICAgICMgT24gU29sYXJpcyAoYXQgbGVhc3QsIGZvciBzb21lIHZlcnNpb25zKSwgbGliYyBjb250
YWlucyBzdHViYmVkCi0gICAgICAgICMgKG5vbi1mdW5jdGlvbmFsKSB2ZXJzaW9ucyBvZiB0aGUg
cHRocmVhZHMgcm91dGluZXMsIHNvIGxpbmstYmFzZWQKLSAgICAgICAgIyB0ZXN0cyB3aWxsIGVy
cm9uZW91c2x5IHN1Y2NlZWQuICAoV2UgbmVlZCB0byBsaW5rIHdpdGggLXB0aHJlYWRzLy1tdC8K
LSAgICAgICAgIyAtbHB0aHJlYWQuKSAgKFRoZSBzdHVicyBhcmUgbWlzc2luZyBwdGhyZWFkX2Ns
ZWFudXBfcHVzaCwgb3IgcmF0aGVyCi0gICAgICAgICMgYSBmdW5jdGlvbiBjYWxsZWQgYnkgdGhp
cyBtYWNybywgc28gd2UgY291bGQgY2hlY2sgZm9yIHRoYXQsIGJ1dAotICAgICAgICAjIHdobyBr
bm93cyB3aGV0aGVyIHRoZXknbGwgc3R1YiB0aGF0IHRvbyBpbiBhIGZ1dHVyZSBsaWJjLikgIFNv
LAotICAgICAgICAjIHdlJ2xsIGp1c3QgbG9vayBmb3IgLXB0aHJlYWRzIGFuZCAtbHB0aHJlYWQg
Zmlyc3Q6Ci0KLSAgICAgICAgYWN4X3B0aHJlYWRfZmxhZ3M9Ii1wdGhyZWFkcyBwdGhyZWFkIC1t
dCAtcHRocmVhZCAkYWN4X3B0aHJlYWRfZmxhZ3MiCi0gICAgICAgIDs7Ci1lc2FjCi0KLWlmIHRl
c3QgeCIkYWN4X3B0aHJlYWRfb2siID0geG5vOyB0aGVuCi1mb3IgZmxhZyBpbiAkYWN4X3B0aHJl
YWRfZmxhZ3M7IGRvCi0KLSAgICAgICAgY2FzZSAkZmxhZyBpbgotICAgICAgICAgICAgICAgIG5v
bmUpCi0gICAgICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHB0aHJlYWRzIHdv
cmsgd2l0aG91dCBhbnkgZmxhZ3NdKQotICAgICAgICAgICAgICAgIDs7Ci0KLSAgICAgICAgICAg
ICAgICAtKikKLSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgcHRocmVh
ZHMgd29yayB3aXRoICRmbGFnXSkKLSAgICAgICAgICAgICAgICBQVEhSRUFEX0NGTEFHUz0iJGZs
YWciCi0gICAgICAgICAgICAgICAgOzsKLQotCQlwdGhyZWFkLWNvbmZpZykKLQkJQUNfQ0hFQ0tf
UFJPRyhhY3hfcHRocmVhZF9jb25maWcsIHB0aHJlYWQtY29uZmlnLCB5ZXMsIG5vKQotCQlpZiB0
ZXN0IHgiJGFjeF9wdGhyZWFkX2NvbmZpZyIgPSB4bm87IHRoZW4gY29udGludWU7IGZpCi0JCVBU
SFJFQURfQ0ZMQUdTPSJgcHRocmVhZC1jb25maWcgLS1jZmxhZ3NgIgotCQlQVEhSRUFEX0xJQlM9
ImBwdGhyZWFkLWNvbmZpZyAtLWxkZmxhZ3NgIGBwdGhyZWFkLWNvbmZpZyAtLWxpYnNgIgotCQk7
OwotCi0gICAgICAgICAgICAgICAgKikKLSAgICAgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkco
W2ZvciB0aGUgcHRocmVhZHMgbGlicmFyeSAtbCRmbGFnXSkKLSAgICAgICAgICAgICAgICBQVEhS
RUFEX0xJQlM9Ii1sJGZsYWciCi0gICAgICAgICAgICAgICAgOzsKLSAgICAgICAgZXNhYwotCi0g
ICAgICAgIHNhdmVfTElCUz0iJExJQlMiCi0gICAgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgot
ICAgICAgICBMSUJTPSIkUFRIUkVBRF9MSUJTICRMSUJTIgotICAgICAgICBDRkxBR1M9IiRDRkxB
R1MgJFBUSFJFQURfQ0ZMQUdTIgotCi0gICAgICAgICMgQ2hlY2sgZm9yIHZhcmlvdXMgZnVuY3Rp
b25zLiAgV2UgbXVzdCBpbmNsdWRlIHB0aHJlYWQuaCwKLSAgICAgICAgIyBzaW5jZSBzb21lIGZ1
bmN0aW9ucyBtYXkgYmUgbWFjcm9zLiAgKE9uIHRoZSBTZXF1ZW50LCB3ZQotICAgICAgICAjIG5l
ZWQgYSBzcGVjaWFsIGZsYWcgLUt0aHJlYWQgdG8gbWFrZSB0aGlzIGhlYWRlciBjb21waWxlLikK
LSAgICAgICAgIyBXZSBjaGVjayBmb3IgcHRocmVhZF9qb2luIGJlY2F1c2UgaXQgaXMgaW4gLWxw
dGhyZWFkIG9uIElSSVgKLSAgICAgICAgIyB3aGlsZSBwdGhyZWFkX2NyZWF0ZSBpcyBpbiBsaWJj
LiAgV2UgY2hlY2sgZm9yIHB0aHJlYWRfYXR0cl9pbml0Ci0gICAgICAgICMgZHVlIHRvIERFQyBj
cmF6aW5lc3Mgd2l0aCAtbHB0aHJlYWRzLiAgV2UgY2hlY2sgZm9yCi0gICAgICAgICMgcHRocmVh
ZF9jbGVhbnVwX3B1c2ggYmVjYXVzZSBpdCBpcyBvbmUgb2YgdGhlIGZldyBwdGhyZWFkCi0gICAg
ICAgICMgZnVuY3Rpb25zIG9uIFNvbGFyaXMgdGhhdCBkb2Vzbid0IGhhdmUgYSBub24tZnVuY3Rp
b25hbCBsaWJjIHN0dWIuCi0gICAgICAgICMgV2UgdHJ5IHB0aHJlYWRfY3JlYXRlIG9uIGdlbmVy
YWwgcHJpbmNpcGxlcy4KLSAgICAgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxwdGhyZWFkLmg+
XSwKLSAgICAgICAgICAgICAgICAgICAgW3B0aHJlYWRfdCB0aDsgcHRocmVhZF9qb2luKHRoLCAw
KTsKLSAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfYXR0cl9pbml0KDApOyBwdGhyZWFkX2Ns
ZWFudXBfcHVzaCgwLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfY3JlYXRlKDAs
MCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotICAgICAgICAgICAgICAgICAgICBb
YWN4X3B0aHJlYWRfb2s9eWVzXSkKLQotICAgICAgICBMSUJTPSIkc2F2ZV9MSUJTIgotICAgICAg
ICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLQotICAgICAgICBBQ19NU0dfUkVTVUxUKCRhY3hfcHRo
cmVhZF9vaykKLSAgICAgICAgaWYgdGVzdCAieCRhY3hfcHRocmVhZF9vayIgPSB4eWVzOyB0aGVu
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGZpCi0KLSAgICAgICAgUFRIUkVBRF9M
SUJTPSIiCi0gICAgICAgIFBUSFJFQURfQ0ZMQUdTPSIiCi1kb25lCi1maQotCi0jIFZhcmlvdXMg
b3RoZXIgY2hlY2tzOgotaWYgdGVzdCAieCRhY3hfcHRocmVhZF9vayIgPSB4eWVzOyB0aGVuCi0g
ICAgICAgIHNhdmVfTElCUz0iJExJQlMiCi0gICAgICAgIExJQlM9IiRQVEhSRUFEX0xJQlMgJExJ
QlMiCi0gICAgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotICAgICAgICBDRkxBR1M9IiRDRkxB
R1MgJFBUSFJFQURfQ0ZMQUdTIgotCi0gICAgICAgICMgRGV0ZWN0IEFJWCBsb3NzYWdlOiBKT0lO
QUJMRSBhdHRyaWJ1dGUgaXMgY2FsbGVkIFVOREVUQUNIRUQuCi0JQUNfTVNHX0NIRUNLSU5HKFtm
b3Igam9pbmFibGUgcHRocmVhZCBhdHRyaWJ1dGVdKQotCWF0dHJfbmFtZT11bmtub3duCi0JZm9y
IGF0dHIgaW4gUFRIUkVBRF9DUkVBVEVfSk9JTkFCTEUgUFRIUkVBRF9DUkVBVEVfVU5ERVRBQ0hF
RDsgZG8KLQkgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxwdGhyZWFkLmg+XSwgW2ludCBhdHRy
PSRhdHRyOyByZXR1cm4gYXR0cjtdLAotICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHJfbmFt
ZT0kYXR0cjsgYnJlYWtdKQotCWRvbmUKLSAgICAgICAgQUNfTVNHX1JFU1VMVCgkYXR0cl9uYW1l
KQotICAgICAgICBpZiB0ZXN0ICIkYXR0cl9uYW1lIiAhPSBQVEhSRUFEX0NSRUFURV9KT0lOQUJM
RTsgdGhlbgotICAgICAgICAgICAgQUNfREVGSU5FX1VOUVVPVEVEKFBUSFJFQURfQ1JFQVRFX0pP
SU5BQkxFLCAkYXR0cl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZp
bmUgdG8gbmVjZXNzYXJ5IHN5bWJvbCBpZiB0aGlzIGNvbnN0YW50Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZXMgYSBub24tc3RhbmRhcmQgbmFtZSBvbiB5b3VyIHN5c3RlbS5d
KQotICAgICAgICBmaQotCi0gICAgICAgIEFDX01TR19DSEVDS0lORyhbaWYgbW9yZSBzcGVjaWFs
IGZsYWdzIGFyZSByZXF1aXJlZCBmb3IgcHRocmVhZHNdKQotICAgICAgICBmbGFnPW5vCi0gICAg
ICAgIGNhc2UgIiR7aG9zdF9jcHV9LSR7aG9zdF9vc30iIGluCi0gICAgICAgICAgICAqLWFpeCog
fCAqLWZyZWVic2QqIHwgKi1kYXJ3aW4qKSBmbGFnPSItRF9USFJFQURfU0FGRSI7OwotICAgICAg
ICAgICAgKnNvbGFyaXMqIHwgKi1vc2YqIHwgKi1ocHV4KikgZmxhZz0iLURfUkVFTlRSQU5UIjs7
Ci0gICAgICAgIGVzYWMKLSAgICAgICAgQUNfTVNHX1JFU1VMVCgke2ZsYWd9KQotICAgICAgICBp
ZiB0ZXN0ICJ4JGZsYWciICE9IHhubzsgdGhlbgotICAgICAgICAgICAgUFRIUkVBRF9DRkxBR1M9
IiRmbGFnICRQVEhSRUFEX0NGTEFHUyIKLSAgICAgICAgZmkKLQotICAgICAgICBMSUJTPSIkc2F2
ZV9MSUJTIgotICAgICAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKLSAgICAgICAgIyBNb3JlIEFJ
WCBsb3NzYWdlOiBtdXN0IGNvbXBpbGUgd2l0aCB4bGNfciBvciBjY19yCi0JaWYgdGVzdCB4IiRH
Q0MiICE9IHh5ZXM7IHRoZW4KLSAgICAgICAgICBBQ19DSEVDS19QUk9HUyhQVEhSRUFEX0NDLCB4
bGNfciBjY19yLCAke0NDfSkKLSAgICAgICAgZWxzZQotICAgICAgICAgIFBUSFJFQURfQ0M9JEND
Ci0JZmkKLQotCSMgVGhlIG5leHQgcGFydCB0cmllcyB0byBkZXRlY3QgR0NDIGluY29uc2lzdGVu
Y3kgd2l0aCAtc2hhcmVkIG9uIHNvbWUKLQkjIGFyY2hpdGVjdHVyZXMgYW5kIHN5c3RlbXMuIFRo
ZSBwcm9ibGVtIGlzIHRoYXQgaW4gY2VydGFpbgotCSMgY29uZmlndXJhdGlvbnMsIHdoZW4gLXNo
YXJlZCBpcyBzcGVjaWZpZWQsIEdDQyAiZm9yZ2V0cyIgdG8KLQkjIGludGVybmFsbHkgdXNlIHZh
cmlvdXMgZmxhZ3Mgd2hpY2ggYXJlIHN0aWxsIG5lY2Vzc2FyeS4KLQkKLQkjCi0JIyBQcmVwYXJl
IHRoZSBmbGFncwotCSMKLQlzYXZlX0NGTEFHUz0iJENGTEFHUyIKLQlzYXZlX0xJQlM9IiRMSUJT
IgotCXNhdmVfQ0M9IiRDQyIKLQkKLQkjIFRyeSB3aXRoIHRoZSBmbGFncyBkZXRlcm1pbmVkIGJ5
IHRoZSBlYXJsaWVyIGNoZWNrcy4KLQkjCi0JIyAtV2wsLXosZGVmcyBmb3JjZXMgbGluay10aW1l
IHN5bWJvbCByZXNvbHV0aW9uLCBzbyB0aGF0IHRoZQotCSMgbGlua2luZyBjaGVja3Mgd2l0aCAt
c2hhcmVkIGFjdHVhbGx5IGhhdmUgYW55IHZhbHVlCi0JIwotCSMgRklYTUU6IC1mUElDIGlzIHJl
cXVpcmVkIGZvciAtc2hhcmVkIG9uIG1hbnkgYXJjaGl0ZWN0dXJlcywKLQkjIHNvIHdlIHNwZWNp
ZnkgaXQgaGVyZSwgYnV0IHRoZSByaWdodCB3YXkgd291bGQgcHJvYmFibHkgYmUgdG8KLQkjIHBy
b3Blcmx5IGRldGVjdCB3aGV0aGVyIGl0IGlzIGFjdHVhbGx5IHJlcXVpcmVkLgotCUNGTEFHUz0i
LXNoYXJlZCAtZlBJQyAtV2wsLXosZGVmcyAkQ0ZMQUdTICRQVEhSRUFEX0NGTEFHUyIKLQlMSUJT
PSIkUFRIUkVBRF9MSUJTICRMSUJTIgotCUNDPSIkUFRIUkVBRF9DQyIKLQkKLQkjIEluIG9yZGVy
IG5vdCB0byBjcmVhdGUgc2V2ZXJhbCBsZXZlbHMgb2YgaW5kZW50YXRpb24sIHdlIHRlc3QKLQkj
IHRoZSB2YWx1ZSBvZiAiJGRvbmUiIHVudGlsIHdlIGZpbmQgdGhlIGN1cmUgb3IgcnVuIG91dCBv
ZiBpZGVhcy4KLQlkb25lPSJubyIKLQkKLQkjIEZpcnN0LCBtYWtlIHN1cmUgdGhlIENGTEFHUyB3
ZSBhZGRlZCBhcmUgYWN0dWFsbHkgYWNjZXB0ZWQgYnkgb3VyCi0JIyBjb21waWxlci4gIElmIG5v
dCAoYW5kIE9TIFgncyBsZCwgZm9yIGluc3RhbmNlLCBkb2VzIG5vdCBhY2NlcHQgLXopLAotCSMg
dGhlbiB3ZSBjYW4ndCBkbyB0aGlzIHRlc3QuCi0JaWYgdGVzdCB4IiRkb25lIiA9IHhubzsgdGhl
bgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBjaGVjayBmb3IgR0NDIHB0aHJlYWQv
c2hhcmVkIGluY29uc2lzdGVuY2llc10pCi0JICAgQUNfVFJZX0xJTksoLCwgLCBbZG9uZT15ZXNd
KQotCQotCSAgIGlmIHRlc3QgIngkZG9uZSIgPSB4eWVzIDsgdGhlbgotCSAgICAgIEFDX01TR19S
RVNVTFQoW25vXSkKLQkgICBlbHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLQkgICBm
aQotCWZpCi0JCi0JaWYgdGVzdCB4IiRkb25lIiA9IHhubzsgdGhlbgotCSAgIEFDX01TR19DSEVD
S0lORyhbd2hldGhlciAtcHRocmVhZCBpcyBzdWZmaWNpZW50IHdpdGggLXNoYXJlZF0pCi0JICAg
QUNfVFJZX0xJTksoWyNpbmNsdWRlIDxwdGhyZWFkLmg+XSwKLQkgICAgICBbcHRocmVhZF90IHRo
OyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAgIHB0aHJlYWRfYXR0cl9pbml0KDApOyBwdGhy
ZWFkX2NsZWFudXBfcHVzaCgwLCAwKTsKLQkgICAgICBwdGhyZWFkX2NyZWF0ZSgwLDAsMCwwKTsg
cHRocmVhZF9jbGVhbnVwX3BvcCgwKTsgXSwKLQkgICAgICBbZG9uZT15ZXNdKQotCSAgIAotCSAg
IGlmIHRlc3QgIngkZG9uZSIgPSB4eWVzOyB0aGVuCi0JICAgICAgQUNfTVNHX1JFU1VMVChbeWVz
XSkKLQkgICBlbHNlCi0JICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQotCSAgIGZpCi0JZmkKLQkK
LQkjCi0JIyBMaW51eCBnY2Mgb24gc29tZSBhcmNoaXRlY3R1cmVzIHN1Y2ggYXMgbWlwcy9taXBz
ZWwgZm9yZ2V0cwotCSMgYWJvdXQgLWxwdGhyZWFkCi0JIwotCWlmIHRlc3QgeCIkZG9uZSIgPSB4
bm87IHRoZW4KLQkgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxwdGhyZWFkIGZpeGVzIHRo
YXRdKQotCSAgIExJQlM9Ii1scHRocmVhZCAkUFRIUkVBRF9MSUJTICRzYXZlX0xJQlMiCi0JICAg
QUNfVFJZX0xJTksoWyNpbmNsdWRlIDxwdGhyZWFkLmg+XSwKLQkgICAgICBbcHRocmVhZF90IHRo
OyBwdGhyZWFkX2pvaW4odGgsIDApOwotCSAgICAgIHB0aHJlYWRfYXR0cl9pbml0KDApOyBwdGhy
ZWFkX2NsZWFudXBfcHVzaCgwLCAwKTsKLQkgICAgICBwdGhyZWFkX2NyZWF0ZSgwLDAsMCwwKTsg
cHRocmVhZF9jbGVhbnVwX3BvcCgwKTsgXSwKLQkgICAgICBbZG9uZT15ZXNdKQotCQotCSAgIGlm
IHRlc3QgIngkZG9uZSIgPSB4eWVzOyB0aGVuCi0JICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkK
LQkgICAgICBQVEhSRUFEX0xJQlM9Ii1scHRocmVhZCAkUFRIUkVBRF9MSUJTIgotCSAgIGVsc2UK
LQkgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0JICAgZmkKLQlmaQotCSMKLQkjIEZyZWVCU0Qg
NC4xMCBnY2MgZm9yZ2V0cyB0byB1c2UgLWxjX3IgaW5zdGVhZCBvZiAtbGMKLQkjCi0JaWYgdGVz
dCB4IiRkb25lIiA9IHhubzsgdGhlbgotCSAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbGNf
ciBmaXhlcyB0aGF0XSkKLQkgICBMSUJTPSItbGNfciAkUFRIUkVBRF9MSUJTICRzYXZlX0xJQlMi
Ci0JICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxwdGhyZWFkLmg+XSwKLQkgICAgICAgW3B0aHJl
YWRfdCB0aDsgcHRocmVhZF9qb2luKHRoLCAwKTsKLQkgICAgICAgIHB0aHJlYWRfYXR0cl9pbml0
KDApOyBwdGhyZWFkX2NsZWFudXBfcHVzaCgwLCAwKTsKLQkgICAgICAgIHB0aHJlYWRfY3JlYXRl
KDAsMCwwLDApOyBwdGhyZWFkX2NsZWFudXBfcG9wKDApOyBdLAotCSAgICAgICBbZG9uZT15ZXNd
KQotCQotCSAgIGlmIHRlc3QgIngkZG9uZSIgPSB4eWVzOyB0aGVuCi0JICAgICAgQUNfTVNHX1JF
U1VMVChbeWVzXSkKLQkgICAgICBQVEhSRUFEX0xJQlM9Ii1sY19yICRQVEhSRUFEX0xJQlMiCi0J
ICAgZWxzZQotCSAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLQkgICBmaQotCWZpCi0JaWYgdGVz
dCB4IiRkb25lIiA9IHhubzsgdGhlbgotCSAgICMgT0ssIHdlIGhhdmUgcnVuIG91dCBvZiBpZGVh
cwotCSAgIEFDX01TR19XQVJOKFtJbXBvc3NpYmxlIHRvIGRldGVybWluZSBob3cgdG8gdXNlIHB0
aHJlYWRzIHdpdGggc2hhcmVkIGxpYnJhcmllc10pCi0JCi0JICAgIyBzbyBpdCdzIG5vdCBzYWZl
IHRvIGFzc3VtZSB0aGF0IHdlIG1heSB1c2UgcHRocmVhZHMKLQkgICBhY3hfcHRocmVhZF9vaz1u
bwotCWZpCi0JCi0JQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCi0JTElCUz0iJHNhdmVfTElCUyIKLQlD
Qz0iJHNhdmVfQ0MiCi1lbHNlCi0gICAgICAgIFBUSFJFQURfQ0M9IiRDQyIKLWZpCi0KLUFDX1NV
QlNUKFBUSFJFQURfTElCUykKLUFDX1NVQlNUKFBUSFJFQURfQ0ZMQUdTKQotQUNfU1VCU1QoUFRI
UkVBRF9DQykKLQotIyBGaW5hbGx5LCBleGVjdXRlIEFDVElPTi1JRi1GT1VORC9BQ1RJT04tSUYt
Tk9ULUZPVU5EOgotaWYgdGVzdCB4IiRhY3hfcHRocmVhZF9vayIgPSB4eWVzOyB0aGVuCi0gICAg
ICAgIGlmZWxzZShbJDFdLCxBQ19ERUZJTkUoSEFWRV9QVEhSRUFELDEsW0RlZmluZSBpZiB5b3Ug
aGF2ZSBQT1NJWCB0aHJlYWRzIGxpYnJhcmllcyBhbmQgaGVhZGVyIGZpbGVzLl0pLFskMV0pCi0g
ICAgICAgIDoKLWVsc2UKLSAgICAgICAgYWN4X3B0aHJlYWRfb2s9bm8KLSAgICAgICAgJDIKLWZp
Ci1BQ19MQU5HX1JFU1RPUkUKLV0pZG5sIEFDWF9QVEhSRUFECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9tNC9ndGVzdC5tNCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200
L2d0ZXN0Lm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTk4YmE3NWE0ZDdmMmM0
ODY2MzJjNmRkZGMwZGU1MTc4ZDI5MGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L200L2d0ZXN0Lm00CisrKyAv
ZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotZG5sIEdURVNUX0xJQl9DSEVDSyhbbWluaW11bSB2
ZXJzaW9uIFssCi1kbmwgICAgICAgICAgICAgICAgICBhY3Rpb24gaWYgZm91bmQgWyxhY3Rpb24g
aWYgbm90IGZvdW5kXV1dKQotZG5sCi1kbmwgQ2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUg
R29vZ2xlIFRlc3QgbGlicmFyeSwgb3B0aW9uYWxseSBhdCBhIG1pbmltdW0KLWRubCB2ZXJzaW9u
LCBhbmQgaW5kaWNhdGUgYSB2aWFibGUgdmVyc2lvbiB3aXRoIHRoZSBIQVZFX0dURVNUIGZsYWcu
IEl0IGRlZmluZXMKLWRubCBzdGFuZGFyZCB2YXJpYWJsZXMgZm9yIHN1YnN0aXR1dGlvbiBpbmNs
dWRpbmcgR1RFU1RfQ1BQRkxBR1MsCi1kbmwgR1RFU1RfQ1hYRkxBR1MsIEdURVNUX0xERkxBR1Ms
IGFuZCBHVEVTVF9MSUJTLiBJdCBhbHNvIGRlZmluZXMKLWRubCBHVEVTVF9WRVJTSU9OIGFzIHRo
ZSB2ZXJzaW9uIG9mIEdvb2dsZSBUZXN0IGZvdW5kLiBGaW5hbGx5LCBpdCBwcm92aWRlcwotZG5s
IG9wdGlvbmFsIGN1c3RvbSBhY3Rpb24gc2xvdHMgaW4gdGhlIGV2ZW50IEdURVNUIGlzIGZvdW5k
IG9yIG5vdC4KLUFDX0RFRlVOKFtHVEVTVF9MSUJfQ0hFQ0tdLAotWwotZG5sIFByb3ZpZGUgYSBm
bGFnIHRvIGVuYWJsZSBvciBkaXNhYmxlIEdvb2dsZSBUZXN0IHVzYWdlLgotQUNfQVJHX0VOQUJM
RShbZ3Rlc3RdLAotICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWd0ZXN0XSwKLSAgICAgICAg
ICAgICAgICAgIFtFbmFibGUgdGVzdHMgdXNpbmcgdGhlIEdvb2dsZSBDKysgVGVzdGluZyBGcmFt
ZXdvcmsuCi0gICAgICAgICAgICAgICAgICAoRGVmYXVsdCBpcyBlbmFibGVkLildKV0sCi0gIFtd
LAotICBbZW5hYmxlX2d0ZXN0PV0pCi1BQ19BUkdfVkFSKFtHVEVTVF9DT05GSUddLAotICAgICAg
ICAgICBbVGhlIGV4YWN0IHBhdGggb2YgR29vZ2xlIFRlc3QncyAnZ3Rlc3QtY29uZmlnJyBzY3Jp
cHQuXSkKLUFDX0FSR19WQVIoW0dURVNUX0NQUEZMQUdTXSwKLSAgICAgICAgICAgW0MtbGlrZSBw
cmVwcm9jZXNzb3IgZmxhZ3MgZm9yIEdvb2dsZSBUZXN0Ll0pCi1BQ19BUkdfVkFSKFtHVEVTVF9D
WFhGTEFHU10sCi0gICAgICAgICAgIFtDKysgY29tcGlsZSBmbGFncyBmb3IgR29vZ2xlIFRlc3Qu
XSkKLUFDX0FSR19WQVIoW0dURVNUX0xERkxBR1NdLAotICAgICAgICAgICBbTGlua2VyIHBhdGgg
YW5kIG9wdGlvbiBmbGFncyBmb3IgR29vZ2xlIFRlc3QuXSkKLUFDX0FSR19WQVIoW0dURVNUX0xJ
QlNdLAotICAgICAgICAgICBbTGlicmFyeSBsaW5raW5nIGZsYWdzIGZvciBHb29nbGUgVGVzdC5d
KQotQUNfQVJHX1ZBUihbR1RFU1RfVkVSU0lPTl0sCi0gICAgICAgICAgIFtUaGUgdmVyc2lvbiBv
ZiBHb29nbGUgVGVzdCBhdmFpbGFibGUuXSkKLUhBVkVfR1RFU1Q9Im5vIgotQVNfSUYoW3Rlc3Qg
Ingke2VuYWJsZV9ndGVzdH0iICE9ICJ4bm8iXSwKLSAgW0FDX01TR19DSEVDS0lORyhbZm9yICdn
dGVzdC1jb25maWcnXSkKLSAgIEFTX0lGKFt0ZXN0ICJ4JHtlbmFibGVfZ3Rlc3R9IiAhPSAieHll
cyJdLAotICAgICBbQVNfSUYoW3Rlc3QgLXggIiR7ZW5hYmxlX2d0ZXN0fS9zY3JpcHRzL2d0ZXN0
LWNvbmZpZyJdLAotICAgICAgICBbR1RFU1RfQ09ORklHPSIke2VuYWJsZV9ndGVzdH0vc2NyaXB0
cy9ndGVzdC1jb25maWciXSwKLSAgICAgICAgW0dURVNUX0NPTkZJRz0iJHtlbmFibGVfZ3Rlc3R9
L2Jpbi9ndGVzdC1jb25maWciXSkKLSAgICAgIEFTX0lGKFt0ZXN0IC14ICIke0dURVNUX0NPTkZJ
R30iXSwgW10sCi0gICAgICAgIFtBQ19NU0dfUkVTVUxUKFtub10pCi0gICAgICAgICBBQ19NU0df
RVJST1IoW2RubAotVW5hYmxlIHRvIGxvY2F0ZSBlaXRoZXIgYSBidWlsdCBvciBpbnN0YWxsZWQg
R29vZ2xlIFRlc3QuCi1UaGUgc3BlY2lmaWMgbG9jYXRpb24gJyR7ZW5hYmxlX2d0ZXN0fScgd2Fz
IHByb3ZpZGVkIGZvciBhIGJ1aWx0IG9yIGluc3RhbGxlZAotR29vZ2xlIFRlc3QsIGJ1dCBubyAn
Z3Rlc3QtY29uZmlnJyBzY3JpcHQgY291bGQgYmUgZm91bmQgYXQgdGhpcyBsb2NhdGlvbi5dKQot
ICAgICAgICAgXSldLAotICAgICBbQUNfUEFUSF9QUk9HKFtHVEVTVF9DT05GSUddLCBbZ3Rlc3Qt
Y29uZmlnXSldKQotICAgQVNfSUYoW3Rlc3QgLXggIiR7R1RFU1RfQ09ORklHfSJdLAotICAgICBb
QUNfTVNHX1JFU1VMVChbJHtHVEVTVF9DT05GSUd9XSkKLSAgICAgIG00X2lmdmFsKFskMV0sCi0g
ICAgICAgIFtfZ3Rlc3RfbWluX3ZlcnNpb249Ii0tbWluLXZlcnNpb249JDEiCi0gICAgICAgICBB
Q19NU0dfQ0hFQ0tJTkcoW2ZvciBHb29nbGUgVGVzdCBhdCBsZWFzdCB2ZXJzaW9uID49ICQxXSld
LAotICAgICAgICBbX2d0ZXN0X21pbl92ZXJzaW9uPSItLW1pbi12ZXJzaW9uPTAiCi0gICAgICAg
ICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBHb29nbGUgVGVzdF0pXSkKLSAgICAgIEFTX0lGKFske0dU
RVNUX0NPTkZJR30gJHtfZ3Rlc3RfbWluX3ZlcnNpb259XSwKLSAgICAgICAgW0FDX01TR19SRVNV
TFQoW3llc10pCi0gICAgICAgICBIQVZFX0dURVNUPSd5ZXMnXSwKLSAgICAgICAgW0FDX01TR19S
RVNVTFQoW25vXSldKV0sCi0gICAgIFtBQ19NU0dfUkVTVUxUKFtub10pXSkKLSAgIEFTX0lGKFt0
ZXN0ICJ4JHtIQVZFX0dURVNUfSIgPSAieHllcyJdLAotICAgICBbR1RFU1RfQ1BQRkxBR1M9YCR7
R1RFU1RfQ09ORklHfSAtLWNwcGZsYWdzYAotICAgICAgR1RFU1RfQ1hYRkxBR1M9YCR7R1RFU1Rf
Q09ORklHfSAtLWN4eGZsYWdzYAotICAgICAgR1RFU1RfTERGTEFHUz1gJHtHVEVTVF9DT05GSUd9
IC0tbGRmbGFnc2AKLSAgICAgIEdURVNUX0xJQlM9YCR7R1RFU1RfQ09ORklHfSAtLWxpYnNgCi0g
ICAgICBHVEVTVF9WRVJTSU9OPWAke0dURVNUX0NPTkZJR30gLS12ZXJzaW9uYAotICAgICAgQUNf
REVGSU5FKFtIQVZFX0dURVNUXSxbMV0sW0RlZmluZWQgd2hlbiBHb29nbGUgVGVzdCBpcyBhdmFp
bGFibGUuXSldLAotICAgICBbQVNfSUYoW3Rlc3QgIngke2VuYWJsZV9ndGVzdH0iID0gInh5ZXMi
XSwKLSAgICAgICAgW0FDX01TR19FUlJPUihbZG5sCi1Hb29nbGUgVGVzdCB3YXMgZW5hYmxlZCwg
YnV0IG5vIHZpYWJsZSB2ZXJzaW9uIGNvdWxkIGJlIGZvdW5kLl0pCi0gICAgICAgICBdKV0pXSkK
LUFDX1NVQlNUKFtIQVZFX0dURVNUXSkKLUFNX0NPTkRJVElPTkFMKFtIQVZFX0dURVNUXSxbdGVz
dCAieCRIQVZFX0dURVNUIiA9ICJ4eWVzIl0pCi1BU19JRihbdGVzdCAieCRIQVZFX0dURVNUIiA9
ICJ4eWVzIl0sCi0gIFttNF9pZnZhbChbJDJdLCBbJDJdKV0sCi0gIFttNF9pZnZhbChbJDNdLCBb
JDNdKV0pCi1dKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9NYWtl
ZmlsZSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21ha2UvTWFrZWZpbGUKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlhYzc0NDkzYmE1NTI0NjU5N2U5MGI4OThmYWU4NDdhZTM1OGVh
YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbWFrZS9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDgyICsw
LDAgQEAKLSMgQSBzYW1wbGUgTWFrZWZpbGUgZm9yIGJ1aWxkaW5nIEdvb2dsZSBUZXN0IGFuZCB1
c2luZyBpdCBpbiB1c2VyCi0jIHRlc3RzLiAgUGxlYXNlIHR3ZWFrIGl0IHRvIHN1aXQgeW91ciBl
bnZpcm9ubWVudCBhbmQgcHJvamVjdC4gIFlvdQotIyBtYXkgd2FudCB0byBtb3ZlIGl0IHRvIHlv
dXIgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LgotIwotIyBTWU5PUFNJUzoKLSMKLSMgICBtYWtl
IFthbGxdICAtIG1ha2VzIGV2ZXJ5dGhpbmcuCi0jICAgbWFrZSBUQVJHRVQgLSBtYWtlcyB0aGUg
Z2l2ZW4gdGFyZ2V0LgotIyAgIG1ha2UgY2xlYW4gIC0gcmVtb3ZlcyBhbGwgZmlsZXMgZ2VuZXJh
dGVkIGJ5IG1ha2UuCi0KLSMgUGxlYXNlIHR3ZWFrIHRoZSBmb2xsb3dpbmcgdmFyaWFibGUgZGVm
aW5pdGlvbnMgYXMgbmVlZGVkIGJ5IHlvdXIKLSMgcHJvamVjdCwgZXhjZXB0IEdURVNUX0hFQURF
UlMsIHdoaWNoIHlvdSBjYW4gdXNlIGluIHlvdXIgb3duIHRhcmdldHMKLSMgYnV0IHNob3VsZG4n
dCBtb2RpZnkuCi0KLSMgUG9pbnRzIHRvIHRoZSByb290IG9mIEdvb2dsZSBUZXN0LCByZWxhdGl2
ZSB0byB3aGVyZSB0aGlzIGZpbGUgaXMuCi0jIFJlbWVtYmVyIHRvIHR3ZWFrIHRoaXMgaWYgeW91
IG1vdmUgdGhpcyBmaWxlLgotR1RFU1RfRElSID0gLi4KLQotIyBXaGVyZSB0byBmaW5kIHVzZXIg
Y29kZS4KLVVTRVJfRElSID0gLi4vc2FtcGxlcwotCi0jIEZsYWdzIHBhc3NlZCB0byB0aGUgcHJl
cHJvY2Vzc29yLgotIyBTZXQgR29vZ2xlIFRlc3QncyBoZWFkZXIgZGlyZWN0b3J5IGFzIGEgc3lz
dGVtIGRpcmVjdG9yeSwgc3VjaCB0aGF0Ci0jIHRoZSBjb21waWxlciBkb2Vzbid0IGdlbmVyYXRl
IHdhcm5pbmdzIGluIEdvb2dsZSBUZXN0IGhlYWRlcnMuCi1DUFBGTEFHUyArPSAtaXN5c3RlbSAk
KEdURVNUX0RJUikvaW5jbHVkZQotCi0jIEZsYWdzIHBhc3NlZCB0byB0aGUgQysrIGNvbXBpbGVy
LgotQ1hYRkxBR1MgKz0gLWcgLVdhbGwgLVdleHRyYSAtcHRocmVhZAotCi0jIEFsbCB0ZXN0cyBw
cm9kdWNlZCBieSB0aGlzIE1ha2VmaWxlLiAgUmVtZW1iZXIgdG8gYWRkIG5ldyB0ZXN0cyB5b3UK
LSMgY3JlYXRlZCB0byB0aGUgbGlzdC4KLVRFU1RTID0gc2FtcGxlMV91bml0dGVzdAotCi0jIEFs
bCBHb29nbGUgVGVzdCBoZWFkZXJzLiAgVXN1YWxseSB5b3Ugc2hvdWxkbid0IGNoYW5nZSB0aGlz
Ci0jIGRlZmluaXRpb24uCi1HVEVTVF9IRUFERVJTID0gJChHVEVTVF9ESVIpL2luY2x1ZGUvZ3Rl
c3QvKi5oIFwKLSAgICAgICAgICAgICAgICAkKEdURVNUX0RJUikvaW5jbHVkZS9ndGVzdC9pbnRl
cm5hbC8qLmgKLQotIyBIb3VzZS1rZWVwaW5nIGJ1aWxkIHRhcmdldHMuCi0KLWFsbCA6ICQoVEVT
VFMpCi0KLWNsZWFuIDoKLQlybSAtZiAkKFRFU1RTKSBndGVzdC5hIGd0ZXN0X21haW4uYSAqLm8K
LQotIyBCdWlsZHMgZ3Rlc3QuYSBhbmQgZ3Rlc3RfbWFpbi5hLgotCi0jIFVzdWFsbHkgeW91IHNo
b3VsZG4ndCB0d2VhayBzdWNoIGludGVybmFsIHZhcmlhYmxlcywgaW5kaWNhdGVkIGJ5IGEKLSMg
dHJhaWxpbmcgXy4KLUdURVNUX1NSQ1NfID0gJChHVEVTVF9ESVIpL3NyYy8qLmNjICQoR1RFU1Rf
RElSKS9zcmMvKi5oICQoR1RFU1RfSEVBREVSUykKLQotIyBGb3Igc2ltcGxpY2l0eSBhbmQgdG8g
YXZvaWQgZGVwZW5kaW5nIG9uIEdvb2dsZSBUZXN0J3MKLSMgaW1wbGVtZW50YXRpb24gZGV0YWls
cywgdGhlIGRlcGVuZGVuY2llcyBzcGVjaWZpZWQgYmVsb3cgYXJlCi0jIGNvbnNlcnZhdGl2ZSBh
bmQgbm90IG9wdGltaXplZC4gIFRoaXMgaXMgZmluZSBhcyBHb29nbGUgVGVzdAotIyBjb21waWxl
cyBmYXN0IGFuZCBmb3Igb3JkaW5hcnkgdXNlcnMgaXRzIHNvdXJjZSByYXJlbHkgY2hhbmdlcy4K
LWd0ZXN0LWFsbC5vIDogJChHVEVTVF9TUkNTXykKLQkkKENYWCkgJChDUFBGTEFHUykgLUkkKEdU
RVNUX0RJUikgJChDWFhGTEFHUykgLWMgXAotICAgICAgICAgICAgJChHVEVTVF9ESVIpL3NyYy9n
dGVzdC1hbGwuY2MKLQotZ3Rlc3RfbWFpbi5vIDogJChHVEVTVF9TUkNTXykKLQkkKENYWCkgJChD
UFBGTEFHUykgLUkkKEdURVNUX0RJUikgJChDWFhGTEFHUykgLWMgXAotICAgICAgICAgICAgJChH
VEVTVF9ESVIpL3NyYy9ndGVzdF9tYWluLmNjCi0KLWd0ZXN0LmEgOiBndGVzdC1hbGwubwotCSQo
QVIpICQoQVJGTEFHUykgJEAgJF4KLQotZ3Rlc3RfbWFpbi5hIDogZ3Rlc3QtYWxsLm8gZ3Rlc3Rf
bWFpbi5vCi0JJChBUikgJChBUkZMQUdTKSAkQCAkXgotCi0jIEJ1aWxkcyBhIHNhbXBsZSB0ZXN0
LiAgQSB0ZXN0IHNob3VsZCBsaW5rIHdpdGggZWl0aGVyIGd0ZXN0LmEgb3IKLSMgZ3Rlc3RfbWFp
bi5hLCBkZXBlbmRpbmcgb24gd2hldGhlciBpdCBkZWZpbmVzIGl0cyBvd24gbWFpbigpCi0jIGZ1
bmN0aW9uLgotCi1zYW1wbGUxLm8gOiAkKFVTRVJfRElSKS9zYW1wbGUxLmNjICQoVVNFUl9ESVIp
L3NhbXBsZTEuaCAkKEdURVNUX0hFQURFUlMpCi0JJChDWFgpICQoQ1BQRkxBR1MpICQoQ1hYRkxB
R1MpIC1jICQoVVNFUl9ESVIpL3NhbXBsZTEuY2MKLQotc2FtcGxlMV91bml0dGVzdC5vIDogJChV
U0VSX0RJUikvc2FtcGxlMV91bml0dGVzdC5jYyBcCi0gICAgICAgICAgICAgICAgICAgICAkKFVT
RVJfRElSKS9zYW1wbGUxLmggJChHVEVTVF9IRUFERVJTKQotCSQoQ1hYKSAkKENQUEZMQUdTKSAk
KENYWEZMQUdTKSAtYyAkKFVTRVJfRElSKS9zYW1wbGUxX3VuaXR0ZXN0LmNjCi0KLXNhbXBsZTFf
dW5pdHRlc3QgOiBzYW1wbGUxLm8gc2FtcGxlMV91bml0dGVzdC5vIGd0ZXN0X21haW4uYQotCSQo
Q1hYKSAkKENQUEZMQUdTKSAkKENYWEZMQUdTKSAtbHB0aHJlYWQgJF4gLW8gJEAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC5zbG4gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QtbWQuc2xuCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMzZiMzNiNjIxNWMzNzRhZmMxMTZiNTIwODRiMTZmNDE0ODgwNDdh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC5zbG4KKysrIC9kZXYvbnVsbApAQCAt
MSw1NSArMCwwIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3Jt
YXQgVmVyc2lvbiAxMS4wMAotIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAotUHJvamVjdCgiezhC
QzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdC1tZCIsICJndGVz
dC1tZC52Y3hwcm9qIiwgIntDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9Igot
RW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJndGVzdF9tYWluLW1kIiwgImd0ZXN0X21haW4tbWQudmN4cHJvaiIsICJ7M0FGNTRD
OEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMzfSIKLUVuZFByb2plY3QKLVByb2plY3QoIns4
QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3RfcHJvZF90ZXN0
LW1kIiwgImd0ZXN0X3Byb2RfdGVzdC1tZC52Y3hwcm9qIiwgInsyNDg0ODU1MS1FRjRGLTQ3RTgt
OUE5RC1FQTRENDlCQzNFQ0J9IgotRW5kUHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJndGVzdF91bml0dGVzdC1tZCIsICJndGVzdF91
bml0dGVzdC1tZC52Y3hwcm9qIiwgIns0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgx
QTJ9IgotRW5kUHJvamVjdAotR2xvYmFsCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3Vy
YXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KLQkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4z
MgotCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQKLQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2lu
MzIKLQkJUmVsZWFzZXx4NjQgPSBSZWxlYXNlfHg2NAotCUVuZEdsb2JhbFNlY3Rpb24KLQlHbG9i
YWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbgot
CQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMx
QkU4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjIt
NEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAot
CQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5EZWJ1Z3x4NjQuQnVpbGQu
MCA9IERlYnVnfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5S
ZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjIt
NEU3Ni1CNUZBLUMzQjQyM0IzMUJFOH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMgotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU4fS5SZWxlYXNlfHg2
NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNC
NDIzQjMxQkU4fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhB
LTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVi
dWd8V2luMzIKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uRGVidWd8
V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1G
NjhFRDk4NjIwMzN9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezNBRjU0QzhB
LTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4
NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uUmVsZWFzZXxXaW4z
Mi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1G
NjhFRDk4NjIwMzN9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezNB
RjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30uUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gUmVsZWFzZXx4NjQKLQkJezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzM30u
UmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgt
OUE5RC1FQTRENDlCQzNFQ0J9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0J
CXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LkRlYnVnfFdpbjMyLkJ1aWxk
LjAgPSBEZWJ1Z3xXaW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNC
fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0Ci0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgt
OUE5RC1FQTRENDlCQzNFQ0J9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXsyNDg0
ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2Zn
ID0gUmVsZWFzZXxXaW4zMgotCQl7MjQ4NDg1NTEtRUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNC
fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRG
LTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8
eDY0Ci0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9LlJlbGVhc2V8eDY0
LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBF
RDQ4MUEyfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUt
OTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8
V2luMzIKLQkJezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMn0uRGVidWd8eDY0
LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBF
RDQ4MUEyfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NAotCQl7NEQ5RkRGQjUtOTg2QS00
MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8
V2luMzIKLQkJezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMn0uUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0Mt
RjRFRTBFRDQ4MUEyfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7NEQ5
RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUEyfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0g
UmVsZWFzZXx4NjQKLQlFbmRHbG9iYWxTZWN0aW9uCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvblBy
b3BlcnRpZXMpID0gcHJlU29sdXRpb24KLQkJSGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFCi0JRW5k
R2xvYmFsU2VjdGlvbgotRW5kR2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9tc3ZjLzIwMTAvZ3Rlc3QtbWQudmN4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxNmE2ZmYxMmY3YjU3OTAxNWFiYjE0MTU4MGUyZjJkNGZkYTZmOWMzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAg
QEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBE
ZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91
cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0Nv
bmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJv
amVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRl
YnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAg
ICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+
Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgotICAg
ICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9y
bT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJv
amVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAgPENvbmZpZ3Vy
YXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRm
b3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPntDOEY2QzE3Mi01
NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTh9PC9Qcm9qZWN0R3VpZD4KLSAgICA8S2V5d29yZD5X
aW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFBy
b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9u
VHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxh
dGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJl
bD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8
L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0
ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4K
LSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+
Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8
UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5
cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRm
b3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNU
YXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
IiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9v
dERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4
aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
JykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAg
PEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBv
cnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJ
bXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51
c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNw
cC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRz
Ij4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1p
Y3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRh
UGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJV
c2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lv
bj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1
dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091
dERpcj4KLSAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAg
ICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQo
Q29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcikkKFByb2pl
Y3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgot
ICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChD
b25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5h
bWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9u
RGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGly
PgotICAgIDxJbnREaXI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRh
cmdldE5hbWU+Z3Rlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9w
ZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwv
VGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXph
dGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFY
PTEwO19ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4K
LSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1l
Q2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVu
dGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAg
ICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGlu
Y2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1l
TGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAg
PERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVk
ZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8
RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25G
b3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRl
Oy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxlPgot
ICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRF
QlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRp
b25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJy
YXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcZ3Rlc3QtYWxsLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4u
LjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4u
Oy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
Pi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgot
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRz
IiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgotICA8L0ltcG9y
dEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1tZC52Y3hwcm9qLmZp
bHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QtbWQudmN4cHJv
ai5maWx0ZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OWVkZWZmMjMwNmUxZmFj
OTNlNzdjNTUzZjA1NmI3MGZkMmE2ODU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdC1t
ZC52Y3hwcm9qLmZpbHRlcnMKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi3vu788P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9u
PSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1
aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZp
bGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0y
QTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7
Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0
ZXI+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlk
ZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlk
ZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4
dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGd0ZXN0LWFsbC5jYyI+Ci0gICAgICA8
RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1H
cm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LnNsbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2FjZDVjMGNlNmI5MzI4NmJhNTI3MGY4MzExZjdkNjQ5MjFlMDJlNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Quc2xuCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBA
QAotTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24g
MTEuMDAKLSMgVmlzdWFsIEMrKyBFeHByZXNzIDIwMTAKLVByb2plY3QoIns4QkM5Q0VCOC04QjRB
LTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3QiLCAiZ3Rlc3QudmN4cHJvaiIsICJ7
QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fSIKLUVuZFByb2plY3QKLVByb2pl
Y3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZ3Rlc3RfbWFp
biIsICJndGVzdF9tYWluLnZjeHByb2oiLCAiezNBRjU0QzhBLTEwQkYtNDMzMi05MTQ3LUY2OEVE
OTg2MjAzMn0iCi1FbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEt
MDBBMEM5MUJDOTQyfSIpID0gImd0ZXN0X3VuaXR0ZXN0IiwgImd0ZXN0X3VuaXR0ZXN0LnZjeHBy
b2oiLCAiezREOUZERkI1LTk4NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMX0iCi1FbmRQcm9qZWN0
Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImd0
ZXN0X3Byb2RfdGVzdCIsICJndGVzdF9wcm9kX3Rlc3QudmN4cHJvaiIsICJ7MjQ4NDg1NTEtRUY0
Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfSIKLUVuZFByb2plY3QKLUdsb2JhbAotCUdsb2JhbFNl
Y3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCi0JCURl
YnVnfFdpbjMyID0gRGVidWd8V2luMzIKLQkJRGVidWd8eDY0ID0gRGVidWd8eDY0Ci0JCVJlbGVh
c2V8V2luMzIgPSBSZWxlYXNlfFdpbjMyCi0JCVJlbGVhc2V8eDY0ID0gUmVsZWFzZXx4NjQKLQlF
bmRHbG9iYWxTZWN0aW9uCi0JR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRm
b3JtcykgPSBwb3N0U29sdXRpb24KLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0Iz
MUJFN30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKLQkJe0M4RjZDMTcyLTU2
RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdp
bjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9LkRlYnVnfHg2NC5B
Y3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0Iz
MUJFN30uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQKLQkJe0M4RjZDMTcyLTU2RjItNEU3
Ni1CNUZBLUMzQjQyM0IzMUJFN30uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdp
bjMyCi0JCXtDOEY2QzE3Mi01NkYyLTRFNzYtQjVGQS1DM0I0MjNCMzFCRTd9LlJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJe0M4RjZDMTcyLTU2RjItNEU3Ni1CNUZBLUMz
QjQyM0IzMUJFN30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQKLQkJe0M4RjZD
MTcyLTU2RjItNEU3Ni1CNUZBLUMzQjQyM0IzMUJFN30uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJl
bGVhc2V8eDY0Ci0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRlYnVn
fFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0
Ny1GNjhFRDk4NjIwMzJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgotCQl7M0FG
NTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMyfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0g
RGVidWd8eDY0Ci0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9LkRlYnVn
fHg2NC5CdWlsZC4wID0gRGVidWd8eDY0Ci0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhF
RDk4NjIwMzJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgotCQl7M0FG
NTRDOEEtMTBCRi00MzMyLTkxNDctRjY4RUQ5ODYyMDMyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAg
PSBSZWxlYXNlfFdpbjMyCi0JCXszQUY1NEM4QS0xMEJGLTQzMzItOTE0Ny1GNjhFRDk4NjIwMzJ9
LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0Ci0JCXszQUY1NEM4QS0xMEJGLTQz
MzItOTE0Ny1GNjhFRDk4NjIwMzJ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NAot
CQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4
MUExfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKLQkJezREOUZERkI1LTk4NkEt
NDEzOS04MjNDLUY0RUUwRUQ0ODFBMX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NAot
CQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5EZWJ1Z3x4NjQuQnVpbGQu
MCA9IERlYnVnfHg2NAotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5S
ZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKLQkJezREOUZERkI1LTk4NkEt
NDEzOS04MjNDLUY0RUUwRUQ0ODFBMX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMgotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRFRTBFRDQ4MUExfS5SZWxlYXNlfHg2
NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NAotCQl7NEQ5RkRGQjUtOTg2QS00MTM5LTgyM0MtRjRF
RTBFRDQ4MUExfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUx
LUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVi
dWd8V2luMzIKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uRGVidWd8
V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1F
QTRENDlCQzNFQ0F9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQKLQkJezI0ODQ4NTUx
LUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4
NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uUmVsZWFzZXxXaW4z
Mi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCi0JCXsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1F
QTRENDlCQzNFQ0F9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKLQkJezI0
ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gUmVsZWFzZXx4NjQKLQkJezI0ODQ4NTUxLUVGNEYtNDdFOC05QTlELUVBNEQ0OUJDM0VDQX0u
UmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0Ci0JRW5kR2xvYmFsU2VjdGlvbgotCUds
b2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCi0JCUhpZGVTb2x1
dGlvbk5vZGUgPSBGQUxTRQotCUVuZEdsb2JhbFNlY3Rpb24KLUVuZEdsb2JhbApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0LnZjeHByb2ogYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QudmN4cHJvagpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTQ2ZjVjN2FmMjQ1MzhkMzk4YzM2MjZjOGVjY2U5MTQ4Yzk2ZjAx
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3QudmN4cHJvagorKysgL2Rldi9udWxsCkBA
IC0xLDE0OSArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgotPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1s
bnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+
Ci0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2pl
Y3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0
aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9y
bT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZp
Z3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RD
b25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNl
fFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0g
ICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRp
b24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZv
cm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1H
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3Vp
ZD57QzhGNkMxNzItNTZGMi00RTc2LUI1RkEtQzNCNDIzQjMxQkU3fTwvUHJvamVjdEd1aWQ+Ci0g
ICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJv
cHMiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8
Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAg
PENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29s
c2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5T
dGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRp
Qnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1U
b29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29u
ZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZp
Z3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+
Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENv
bmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxD
aGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNl
dD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQ
cm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJbXBv
cnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2pl
Y3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIg
Q29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1w
b3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i
IC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hl
ZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBE
YXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQ
cm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVz
ZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9
IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Qcm9q
ZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAgIDxP
dXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmln
dXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3RO
YW1lKVw8L0ludERpcj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5h
bWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4kKE91dERpcil0ZW1wXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICA8L1Byb3BlcnR5R3Jv
dXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoU29sdXRp
b25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnRE
aXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0TmFt
ZT5ndGVzdGQ8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9y
bSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKXRlbXBc
JChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3Q8L1RhcmdldE5h
bWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxUYXJnZXRO
YW1lPmd0ZXN0ZDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0
eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElCOyUoUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxNaW5p
bWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVj
a3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVM
aWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdM
ZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0Ns
Q29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1E
ZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNh
YmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFi
bGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3Jh
bURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxl
PgotICAgIDxMaWIgLz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRp
b25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5
Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwz
PC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0
YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpYiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJ
TjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRp
VGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAg
ICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJu
aW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8
L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8
L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExp
YiAvPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3QtYWxsLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25h
bEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lv
blRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAx
MC9ndGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIw
MTAvZ3Rlc3QudmN4cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
OWVkZWZmMjMwNmUxZmFjOTNlNzdjNTUzZjA1NmI3MGZkMmE2ODU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21z
dmMvMjAxMC9ndGVzdC52Y3hwcm9qLmZpbHRlcnMKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3Qg
VG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2Rl
dmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3VwPgotICAgIDxGaWx0ZXIgSW5jbHVk
ZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1
LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVu
c2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+
Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgotICAg
ICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJG
Qn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5s
O2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8
SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXGd0ZXN0LWFsbC5j
YyI+Ci0gICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxl
PgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfbWFp
bi1tZC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21h
aW4tbWQudmN4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q3NzM4OTViNzAy
M2RlODQ3NDBkNjJiYmE2M2VjOTAwZjc0YzkyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rl
c3RfbWFpbi1tZC52Y3hwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLe+7vzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFy
Z2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0i
UHJvamVjdENvbmZpZ3VyYXRpb25zIj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVk
ZT0iRGVidWd8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZp
Z3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+
Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0
Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFBy
b2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZp
Z3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwv
UGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZp
Z3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVs
ZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAg
IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPnszQUY1NEM4QS0xMEJGLTQzMzIt
OTE0Ny1GNjhFRDk4NjIwMzN9PC9Qcm9qZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8
L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFy
Z2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0
aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0
ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29s
c2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmln
dXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3Vy
YXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0g
ICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29u
ZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGlj
TGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8
L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNl
dD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNp
b25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249
ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4K
LSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJv
amVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
IiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRm
b3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9J
bXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i
IC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9z
IiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQw
MjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikk
KFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAg
ICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8T3V0RGly
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJh
dGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8
L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxPdXRE
aXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0
aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50
RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X21haW5kPC9UYXJnZXROYW1lPgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIp
JChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0g
ICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0
TmFtZT5ndGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF9tYWluZDwvVGFyZ2V0TmFtZT4KLSAg
PC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8VGFyZ2V0TmFtZT5n
dGVzdF9tYWluPC9UYXJnZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJdGVtRGVmaW5p
dGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxl
ZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19W
QVJJQURJQ19NQVg9MTA7X0RFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1By
ZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmlt
YWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9C
YXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERl
YnVnRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAg
IDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWIg
Lz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+
Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtf
REVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2lj
UnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdE
TEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9Q
cmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2
ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYiAvPgot
ICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklB
RElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERM
TDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1By
ZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZl
bD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJ
bmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4u
XC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0g
IDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxD
bENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElD
X01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliIC8+Ci0gIDwv
SXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8
L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
KTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwv
SXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9
Imd0ZXN0LW1kLnZjeHByb2oiPgotICAgICAgPFByb2plY3Q+e2M4ZjZjMTcyLTU2ZjItNGU3Ni1i
NWZhLWMzYjQyM2IzMWJlOH08L1Byb2plY3Q+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICA8
L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRz
Ij4KLSAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3Rf
bWFpbi1tZC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIw
MTAvZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDcyNmM3NzNjY2IxNzc2YTU4ZDZmNGZkNjVhMTZjYjUwZjQyMmQxNTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X21haW4tbWQudmN4cHJvai5maWx0ZXJzCisrKyAvZGV2L251
bGwKQEAgLTEsMTggKzAsMCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cD4KLSAg
ICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmll
cj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmll
cj4KLSAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTth
c214PC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVh
ZGVyIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJELTRiMDQt
ODhFQi02MjVGQkU1MkVCRkJ9PC9VbmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+
aDtocHA7aHh4O2htO2lubDtpbmM7eHNkPC9FeHRlbnNpb25zPgotICAgIDwvRmlsdGVyPgotICA8
L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4u
XHNyY1xndGVzdF9tYWluLmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+
Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21z
dmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3Zj
LzIwMTAvZ3Rlc3RfbWFpbi52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZmIyNTg5N2M4YjFjMmRiYjNjZjZjMTNlOWI0MTkzZmM5YWUwNTBiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21z
dmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxNjIgKzAsMCBA
QAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERl
ZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2No
ZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3Vw
IExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29u
ZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9q
ZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVi
dWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAg
ICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
PldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9q
ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZv
cm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezNBRjU0QzhBLTEw
QkYtNDMzMi05MTQ3LUY2OEVEOTg2MjAzMn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldp
bjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+
TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0
Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwv
Q29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3Rl
clNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgot
ICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4K
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9y
bVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rh
cmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9
IkV4dGVuc2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290
RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8
SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0
PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENv
bmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0p
LnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9y
dEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
PgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMi
PgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQ
bGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVz
ZXJNYWNyb3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9u
PjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0
aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0
RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+
Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3Jt
KS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChPdXREaXIpdGVt
cFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0
Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKXRl
bXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbmQ8
L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAg
IDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25m
aWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0
TmFtZSlcPC9JbnREaXI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbjwvVGFyZ2V0TmFtZT4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+
Z3Rlc3RfbWFpbmQ8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfbWFpbjwvVGFyZ2V0TmFtZT4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4K
LSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztfTElCOyUo
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAg
IDxNaW5pbWFsUmVidWlsZD50cnVlPC9NaW5pbWFsUmVidWlsZD4KLSAgICAgIDxCYXNpY1J1bnRp
bWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1
bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdh
cm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQ
cm9qZWN0TmFtZSlkLmxpYjwvT3V0cHV0RmlsZT4KLSAgICA8L0xpYj4KLSAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0xJQjslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8QmFz
aWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5Pgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZv
cm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0g
ICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUo
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpYj4KLSAgICAgIDxPdXRwdXRGaWxlPiQoT3V0
RGlyKSQoUHJvamVjdE5hbWUpZC5saWI8L091dHB1dEZpbGU+Ci0gICAgPC9MaWI+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFY
PTEwO05ERUJVRztfTElCOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1l
TGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAg
PERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVk
ZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaWI+Ci0gICAgICA8T3V0cHV0
RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5saWI8L091dHB1dEZpbGU+Ci0gICAgPC9MaWI+
Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklB
RElDX01BWD0xMDtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwv
UnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
LSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZv
cm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGliPgotICAgICAg
PE91dHB1dEZpbGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSkubGliPC9PdXRwdXRGaWxlPgotICAg
IDwvTGliPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcZ3Rlc3RfbWFpbi5jYyI+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8QWRk
aXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xD
b21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8UHJvamVjdFJlZmVy
ZW5jZSBJbmNsdWRlPSJndGVzdC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PntjOGY2YzE3Mi01
NmYyLTRlNzYtYjVmYS1jM2I0MjNiMzFiZTd9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVy
ZW5jZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRo
KVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5z
aW9uVGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8y
MDEwL2d0ZXN0X21haW4udmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
bXN2Yy8yMDEwL2d0ZXN0X21haW4udmN4cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3MjZjNzczY2NiMTc3NmE1OGQ2ZjRmZDY1YTE2Y2I1MGY0MjJkMTU0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF9tYWluLnZjeHByb2ouZmlsdGVycworKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0
Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0g
ICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZp
ZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZp
ZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207
YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9Ikhl
YWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0
LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25z
Pmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwu
LlxzcmNcZ3Rlc3RfbWFpbi5jYyI+Ci0gICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVy
PgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9t
c3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgzMGU1ZGNlNDEwNjIzYzE1YjY4ZmVhNzE4ZWQ5NGM0NTdmMDcwZjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC1tZC52Y3hwcm9qCisrKyAv
ZGV2L251bGwKQEAgLTEsMTk5ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lv
bj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNi
dWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5E
ZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAg
IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1
ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmln
dXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0
Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFz
ZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAg
ICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+
Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAg
PFByb2plY3RHdWlkPnsyNDg0ODU1MS1FRjRGLTQ3RTgtOUE5RC1FQTRENDlCQzNFQ0J9PC9Qcm9q
ZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
RGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0
aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNl
dD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1Bs
YXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFi
ZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwv
Q29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3Rl
clNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJ
bXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgot
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFBy
b2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwv
SW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAg
ICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZv
cm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3RE
aXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxB
cHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVs
PSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCck
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFi
ZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Q
cm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAg
IDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29u
ZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpJChQcm9qZWN0TmFt
ZSlcPC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvTGlua0luY3JlbWVudGFs
PgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPE91dERp
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4kKFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3Vy
YXRpb24pXDwvT3V0RGlyPgotICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChPdXREaXIpJChQcm9qZWN0TmFtZSlc
PC9JbnREaXI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxzZTwvTGlua0luY3JlbWVudGFs
PgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIp
JChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0g
ICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8VGFyZ2V0
TmFtZT5ndGVzdF9wcm9kX3Rlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFt
ZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQo
T3V0RGlyKSQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3By
b2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfcHJvZF90ZXN0PC9UYXJnZXROYW1lPgotICA8L1By
b3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0
X3Byb2RfdGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJs
ZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtf
VkFSSUFESUNfTUFYPTEwO19ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwv
TWluaW1hbFJlYnVpbGQ+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVj
a3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVh
ZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVz
ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5r
PgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+Ci0gICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF9wcm9k
X3Rlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xl
PC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNo
aW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmlu
aXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZB
UklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFi
bGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZl
bDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1E
YXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRhYmFzZUZpbGU+JChPdXREaXIp
Z3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJTeXN0
ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdy
b3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAg
PFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7TkRFQlVHO19D
T05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFy
eT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
ICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9y
bWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3Rl
bT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09w
dGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJs
ZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRN
YWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURl
ZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+
TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9n
cmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBp
bGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lz
dGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+
Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgot
ICAgIDwvTGluaz4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbUdyb3VwPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF9wcm9kX3Rlc3QuY2MiPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAg
ICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAg
ICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
IDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0
aW9uLmNjIj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNs
dWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVk
ZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1
ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGls
ZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAgPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XHByb2R1Y3Rpb24uaCIgLz4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk
ZT0iZ3Rlc3RfbWFpbi1tZC52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJm
LTQzMzItOTE0Ny1mNjhlZDk4NjIwMzN9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5j
ZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxN
aWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9u
VGFyZ2V0cyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0X3Byb2RfdGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHByb2ouZmlsdGVycwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMzNjczMTBhZWU2MjZmNGVjOWMxZGZmZGE3MzNhNTBm
MmE1YzVlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfcHJvZF90ZXN0LW1kLnZjeHBy
b2ouZmlsdGVycworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIg
eG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAw
MyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgot
ICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUy
QTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVm
O29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAg
ICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmll
cj57OTM5OTUzODAtODlCRC00YjA0LTg4RUItNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmll
cj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9u
cz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0XGd0ZXN0X3Byb2RfdGVzdC5jYyI+Ci0gICAgICA8
RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmNjIj4KLSAgICAgIDxGaWx0ZXI+
U291cmNlIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgot
ICA8SXRlbUdyb3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0
aW9uLmgiPgotICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KLSAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0
X3Byb2RfdGVzdC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0
ZXN0X3Byb2RfdGVzdC52Y3hwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDJl
MTM1MTFkZjI4YTUzMjIyNDIwNTdlNzU0MWY5NjU2NzBkZGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMv
MjAxMC9ndGVzdF9wcm9kX3Rlc3QudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCww
IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3Qg
RGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9z
Y2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3Jv
dXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25maWd1cmF0
aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9D
b25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1By
b2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJE
ZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0g
ICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAg
ICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZv
cm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFBy
b2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxDb25maWd1
cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0
Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4KLSAgPFBy
b3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57MjQ4NDg1NTEt
RUY0Ri00N0U4LTlBOUQtRUE0RDQ5QkMzRUNBfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+
V2luMzJQcm9qPC9LZXl3b3JkPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVj
dD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Ci0gIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlv
blR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+
TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0
Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJv
cGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFw
cGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0
ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29s
c2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQ
YXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVu
c2lvblNldHRpbmdzIj4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVs
PSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCck
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFi
ZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0
R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVz
ZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlv
bj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3Vw
PgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQ
cm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJv
cHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxh
dGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8
L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAg
IDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0
LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9y
bSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNy
b3MiIC8+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAu
NDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFNvbHV0aW9uRGly
KSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgot
ICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gICAg
PExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgotICAgIDxMaW5rSW5jcmVt
ZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKFNvbHV0aW9uRGly
KSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwvT3V0RGlyPgot
ICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAg
ICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJ
bmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFt
ZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQo
T3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gIDwvUHJvcGVydHlHcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9u
TmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGly
PiQoT3V0RGlyKXRlbXBcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0
aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7JShQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPE1pbmlt
YWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNr
cz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxp
YnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21w
aWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5M
ZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRB
bmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGls
ZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRhYmFzZUZpbGU+JChPdXRE
aXIpZ3Rlc3RfcHJvZF90ZXN0LnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KLSAgICAgIDxTdWJT
eXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4
NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4K
LSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXph
dGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7X0RFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxCYXNpY1J1bnRp
bWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1
bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5n
TGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1h
dD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9D
bENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRy
dWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxl
PiQoT3V0RGlyKWd0ZXN0X3Byb2RfdGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+Ci0gICAg
ICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURl
ZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29tcGls
ZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEw
O05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGlt
ZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+VXNlPC9QcmVjb21waWxlZEhlYWRl
cj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8RGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3Jt
YXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOy4u
XC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxT
dWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50
cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVl
PC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4Njwv
VGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAg
PEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0NPTlNPTEU7JShQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAg
PFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xl
dmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+
UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xD
b21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVl
PC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1
YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVu
Y2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGlu
Zz4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RcZ3Rlc3RfcHJvZF90ZXN0LmNjIj4K
LSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRk
aXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Li47Li5caW5jbHVkZTslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgot
ICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3RccHJv
ZHVjdGlvbi5jYyI+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Li47Li5c
aW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4uLjsuLlxp
bmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVjb21w
aWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21waWxl
ZEhlYWRlcj4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uOy4uXGlu
Y2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4uLjsuLlxp
bmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNv
bXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICAgIDwvUHJlY29t
cGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdy
b3VwPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cdGVzdFxwcm9kdWN0aW9uLmgiIC8+
Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIElu
Y2x1ZGU9Imd0ZXN0X21haW4udmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57M2FmNTRjOGEtMTBi
Zi00MzMyLTkxNDctZjY4ZWQ5ODYyMDMyfTwvUHJvamVjdD4KLSAgICA8L1Byb2plY3RSZWZlcmVu
Y2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lv
blRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAx
MC9ndGVzdF9wcm9kX3Rlc3QudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFjMzY3MzEwYWVlNjI2ZjRlYzljMWRmZmRhNzMzYTUwZjJhNWM1
ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Byb2RfdGVzdC52Y3hwcm9qLmZpbHRl
cnMKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8
SXRlbUdyb3VwPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxV
bmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9V
bmlxdWVJZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRs
O2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRl
ciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1
MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAg
ICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAg
PC9GaWx0ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cLi5cdGVzdFxndGVzdF9wcm9kX3Rlc3QuY2MiPgotICAgICAgPEZpbHRlcj5T
b3VyY2UgRmlsZXM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXC4uXHRlc3RccHJvZHVjdGlvbi5jYyI+Ci0gICAgICA8RmlsdGVyPlNvdXJjZSBG
aWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1H
cm91cD4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHRlc3RccHJvZHVjdGlvbi5oIj4K
LSAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+Ci0g
IDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVz
dC1tZC52Y3hwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3Vu
aXR0ZXN0LW1kLnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzYjBkYzRl
MWE0ZTAzYWU4ZDYzZWZmMzZjNjdiZmU4MjM2NWYxODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEw
L2d0ZXN0X3VuaXR0ZXN0LW1kLnZjeHByb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxODggKzAsMCBA
QAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxQcm9qZWN0IERl
ZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2No
ZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdyb3Vw
IExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29u
ZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9q
ZWN0Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVi
dWd8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAg
ICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+Ci0gICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3Jt
PldpbjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9q
ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Ci0gICAgICA8Q29uZmlndXJh
dGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZv
cm0+Ci0gICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxQcm9w
ZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KLSAgICA8UHJvamVjdEd1aWQ+ezREOUZERkI1LTk4
NkEtNDEzOS04MjNDLUY0RUUwRUQ0ODFBMn08L1Byb2plY3RHdWlkPgotICAgIDxLZXl3b3JkPldp
bjMyUHJvajwvS2V5d29yZD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11
bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZv
cm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0
PgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3Bl
cnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAg
PENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8
Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgotICAgIDxQbGF0Zm9ybVRvb2xz
ZXQ+djEwMDwvUGxhdGZvcm1Ub29sc2V0PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0
eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBs
aWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8
L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNl
dD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNp
b25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4KLSAgPEltcG9ydEdy
b3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2Vy
Um9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249
ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9JbXBvcnRHcm91cD4K
LSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgotICAgIDxJbXBvcnQgUHJv
amVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
IiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRm
b3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgPC9J
bXBvcnRHcm91cD4KLSAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i
IC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9z
IiAvPgotICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQw
MjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+Ci0gICAgPE91dERpciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChTb2x1dGlvbkRpcikk
KFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9ybSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAg
ICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0lu
Y3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1
dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPElu
dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3Jl
bWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFNvbHV0aW9uTmFtZSlcJChQbGF0Zm9y
bSktJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KLSAgICA8SW50RGlyPiQoT3V0RGlyKSQoUHJv
amVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxUYXJnZXROYW1lPmd0ZXN0X3VuaXR0ZXN0PC9UYXJn
ZXROYW1lPgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8T3V0
RGlyPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29uZmlndXJh
dGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpcj4kKE91dERpcikkKFByb2plY3ROYW1lKVw8L0lu
dERpcj4KLSAgICA8VGFyZ2V0TmFtZT5ndGVzdF91bml0dGVzdDwvVGFyZ2V0TmFtZT4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3Rf
dW5pdHRlc3Q8L1RhcmdldE5hbWU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+Ci0gICAgPFRhcmdldE5hbWU+Z3Rlc3RfdW5pdHRlc3Q8L1RhcmdldE5hbWU+Ci0gIDwv
UHJvcGVydHlHcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxDbENvbXBpbGU+
Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNP
TEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgot
ICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgotICAgICAgPEJhc2lj
UnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAg
ICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0
aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5cLi47JShBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4K
LSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3Jt
YXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFByb2dyYW1EYXRh
YmFzZUZpbGU+JChPdXREaXIpZ3Rlc3RfdW5pdHRlc3QucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxl
PgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8VGFyZ2V0TWFj
aGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgotICAgIDwvTGluaz4KLSAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0g
ICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8UHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0xMDtfREVCVUc7X0NPTlNPTEU7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVj
a3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1l
TGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVy
PgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxEZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1h
dD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7Li5c
Li47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFBy
b2dyYW1EYXRhYmFzZUZpbGU+JChPdXREaXIpZ3Rlc3RfdW5pdHRlc3QucGRiPC9Qcm9ncmFtRGF0
YWJhc2VGaWxlPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgPC9M
aW5rPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
X1ZBUklBRElDX01BWD0xMDtOREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRp
VGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVz
ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2Fybmlu
Z0xldmVsPgotICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9E
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5r
PgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxP
cHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJs
ZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICAgIDxUYXJnZXRN
YWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19WQVJJQURJQ19NQVg9MTA7
TkRFQlVHO19DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50
aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAgICAgIDxE
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZv
cm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
Li5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAg
PFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2Vz
PnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRy
dWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgPC9MaW5rPgotICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0
XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPk1pblNwYWNlPC9PcHRp
bWl6YXRpb24+Ci0gICAgICA8T3B0aW1pemF0aW9uIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+TWluU3BhY2U8L09wdGltaXphdGlvbj4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0g
ICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxCYXNpY1J1bnRpbWVDaGVja3MgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkRlZmF1bHQ8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAg
ICAgIDxCYXNpY1J1bnRpbWVDaGVja3MgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5EZWZhdWx0PC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAg
IDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPgotICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxE
ZWJ1Z0luZm9ybWF0aW9uRm9ybWF0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25G
b3JtYXQ+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPlByb2dyYW1EYXRhYmFzZTwvRGVi
dWdJbmZvcm1hdGlvbkZvcm1hdD4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj4uLjsuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0g
ICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KLSAg
ICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3Vw
PgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imd0ZXN0X21h
aW4tbWQudmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57M2FmNTRjOGEtMTBiZi00MzMyLTkxNDct
ZjY4ZWQ5ODYyMDMzfTwvUHJvamVjdD4KLSAgICA8L1Byb2plY3RSZWZlcmVuY2U+Ci0gIDwvSXRl
bUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgot
ICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0
dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9tc3ZjLzIw
MTAvZ3Rlc3RfdW5pdHRlc3QtbWQudmN4cHJvai5maWx0ZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwNDdkYWU1MTNlODYwMTUzYTVjZWMyZjQ1YjQ4Y2RiYzc1ZjliNmNlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC1tZC52Y3hwcm9qLmZpbHRlcnMKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgotPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8v
c2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgotICA8SXRlbUdy
b3VwPgotICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KLSAgICAgIDxVbmlxdWVJ
ZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJ
ZGVudGlmaWVyPgotICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajti
YXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0ZXI+Ci0gICAgPEZpbHRlciBJbmNs
dWRlPSJIZWFkZXIgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5
QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0gICAgICA8RXh0
ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+Ci0gICAgPC9GaWx0
ZXI+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cLi5cdGVzdFxndGVzdF91bml0dGVzdC5jYyI+Ci0gICAgICA8RmlsdGVyPlNvdXJjZSBG
aWxlczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVj
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9tc3ZjLzIwMTAvZ3Rlc3RfdW5pdHRlc3QudmN4cHJvaiBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYzZhYmRlN2RhMTdlMjllZDI0NzZmNzBjNjk0MTVhZTk2OGYy
MWYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVzdF91bml0dGVzdC52Y3hwcm9qCisrKyAv
ZGV2L251bGwKQEAgLTEsMTgwICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Ci08UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lv
bj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNi
dWlsZC8yMDAzIj4KLSAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4K
LSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgotICAgICAg
PENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2lu
MzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RD
b25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+Ci0gICAgICA8Q29uZmlndXJhdGlvbj5E
ZWJ1ZzwvQ29uZmlndXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAg
IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1
ZGU9IlJlbGVhc2V8V2luMzIiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmln
dXJhdGlvbj4KLSAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+Ci0gICAgPC9Qcm9qZWN0
Q29uZmlndXJhdGlvbj4KLSAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFz
ZXx4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KLSAg
ICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+
Ci0gIDwvSXRlbUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAg
PFByb2plY3RHdWlkPns0RDlGREZCNS05ODZBLTQxMzktODIzQy1GNEVFMEVENDgxQTF9PC9Qcm9q
ZWN0R3VpZD4KLSAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+Ci0gIDwvUHJvcGVydHlH
cm91cD4KLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
RGVmYXVsdC5wcm9wcyIgLz4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRp
b24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0
aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNl
dD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1Bs
YXRmb3JtVG9vbHNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFi
ZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwv
Q29uZmlndXJhdGlvblR5cGU+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3Rl
clNldD4KLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMDA8L1BsYXRmb3JtVG9vbHNldD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gICAgPFBsYXRmb3JtVG9v
bHNldD52MTAwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+Ci0gIDxJ
bXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgotICA8L0ltcG9ydEdyb3VwPgot
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFBy
b2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwv
SW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAg
ICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9y
bSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZv
cm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3RE
aXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxB
cHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVs
PSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCck
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFi
ZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8UHJvcGVy
dHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KLSAgPFByb3BlcnR5R3JvdXA+Ci0gICAgPF9Q
cm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgotICAg
IDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29u
ZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChPdXREaXIpdGVtcFwkKFByb2pl
Y3ROYW1lKVw8L0ludERpcj4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9MaW5rSW5jcmVt
ZW50YWw+Ci0gICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KLSAgICA8
T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChTb2x1dGlvbk5hbWUpXCQoUGxhdGZvcm0pLSQoQ29u
ZmlndXJhdGlvbilcPC9PdXREaXI+Ci0gICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE91dERpcil0ZW1wXCQoUHJv
amVjdE5hbWUpXDwvSW50RGlyPgotICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+ZmFsc2U8L0xpbmtJ
bmNyZW1lbnRhbD4KLSAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5mYWxzZTwvTGlua0luY3JlbWVudGFs
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPE91dERpcj4kKFNv
bHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24pXDwv
T3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0ludERp
cj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0gICAgPE91dERpcj4k
KFNvbHV0aW9uRGlyKSQoU29sdXRpb25OYW1lKVwkKFBsYXRmb3JtKS0kKENvbmZpZ3VyYXRpb24p
XDwvT3V0RGlyPgotICAgIDxJbnREaXI+JChPdXREaXIpdGVtcFwkKFByb2plY3ROYW1lKVw8L0lu
dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAg
PENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4K
LSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19E
RUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+Ci0gICAgICA8TWluaW1hbFJlYnVpbGQ+dHJ1ZTwvTWluaW1hbFJlYnVpbGQ+Ci0g
ICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNo
ZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVM
aWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERlYnVn
SW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0
PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsuLlwu
LjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8UHJv
Z3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dyYW1EYXRh
YmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxU
YXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+Ci0gICAgPC9MaW5rPgotICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAg
IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfVkFSSUFESUNfTUFYPTEwO19ERUJVRztf
Q09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVu
dGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1
bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAg
PERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9u
Rm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVk
ZTsuLlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVy
YXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAg
ICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcilndGVzdF91bml0dGVzdC5wZGI8L1Byb2dy
YW1EYXRhYmFzZUZpbGU+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAg
ICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5X
SU4zMjtfVkFSSUFESUNfTUFYPTEwO05ERUJVRztfQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+
VXNlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJu
aW5nTGV2ZWw+Ci0gICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8
L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4uLlwuLlxpbmNsdWRlOy4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8
L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExp
bms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAg
PE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+Ci0gICAgICA8RW5h
YmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgotICAgICAgPFRhcmdl
dE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KLSAgICA8L0xpbms+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBp
bGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1ZBUklBRElDX01BWD0x
MDtOREVCVUc7X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRp
bWVMaWJyYXJ5PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFk
ZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPERl
YnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9y
bWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsu
LlwuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8
U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+
dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1
ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICA8L0xpbms+Ci0gIDwvSXRlbURlZmluaXRpb25H
cm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHRlc3Rc
Z3Rlc3RfdW5pdHRlc3QuY2MiPgotICAgICAgPE9wdGltaXphdGlvbiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+TWluU3BhY2U8L09wdGlt
aXphdGlvbj4KLSAgICAgIDxPcHRpbWl6YXRpb24gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5NaW5TcGFjZTwvT3B0aW1pemF0aW9uPgotICAg
ICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+RGVmYXVsdDwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAg
ICAgPEJhc2ljUnVudGltZUNoZWNrcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPkRlZmF1bHQ8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAg
IDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+Ci0gICAgICA8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPERl
YnVnSW5mb3JtYXRpb25Gb3JtYXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZv
cm1hdD4KLSAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1
Z0luZm9ybWF0aW9uRm9ybWF0PgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Li47Li5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPi4uOy4uXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAg
ICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAg
ICAgPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+
Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iZ3Rlc3RfbWFp
bi52Y3hwcm9qIj4KLSAgICAgIDxQcm9qZWN0PnszYWY1NGM4YS0xMGJmLTQzMzItOTE0Ny1mNjhl
ZDk4NjIwMzJ9PC9Qcm9qZWN0PgotICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KLSAgPC9JdGVtR3Jv
dXA+Ci0gIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRh
cmdldHMiIC8+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+Ci0gIDwv
SW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvbXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0
LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L21zdmMvMjAxMC9ndGVz
dF91bml0dGVzdC52Y3hwcm9qLmZpbHRlcnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA0N2RhZTUxM2U4NjAxNTNhNWNlYzJmNDViNDhjZGJjNzVmOWI2Y2UuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
bXN2Yy8yMDEwL2d0ZXN0X3VuaXR0ZXN0LnZjeHByb2ouZmlsdGVycworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv
c29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEZp
bHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRG
QzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+Ci0g
ICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwv
RXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBG
aWxlcyI+Ci0gICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTM5OTUzODAtODlCRC00YjA0LTg4RUIt
NjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4KLSAgICAgIDxFeHRlbnNpb25zPmg7aHBw
O2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4KLSAgICA8L0ZpbHRlcj4KLSAgPC9JdGVt
R3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlx0ZXN0
XGd0ZXN0X3VuaXR0ZXN0LmNjIj4KLSAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+
Ci0gICAgPC9DbENvbXBpbGU+Ci0gIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Nh
bXBsZXMvcHJpbWVfdGFibGVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3By
aW1lX3RhYmxlcy5oCmluZGV4IDUyM2M1MGI5YWZiMWEwOTE5MTY4MDk0ZDcxZmRmMzc2YjY0YWY2
YjIuLjNhMTAzNTJiYWFlNWJhNzFhY2I2MDdlNjcxZDliZjE1ZDE2ZTc5YWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvcHJpbWVfdGFibGVzLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9wcmltZV90YWJsZXMuaApAQCAtMzMsOCArMzMs
OCBAQAogLy8gcHJpbWUgYW5kIGRldGVybWluZXMgYSBuZXh0IHByaW1lIG51bWJlci4gVGhpcyBp
bnRlcmZhY2UgaXMgdXNlZAogLy8gaW4gR29vZ2xlIFRlc3Qgc2FtcGxlcyBkZW1vbnN0cmF0aW5n
IHVzZSBvZiBwYXJhbWV0ZXJpemVkIHRlc3RzLgogCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNfUFJJ
TUVfVEFCTEVTX0hfCi0jZGVmaW5lIEdURVNUX1NBTVBMRVNfUFJJTUVfVEFCTEVTX0hfCisjaWZu
ZGVmIEdPT0dMRVRFU1RfU0FNUExFU19QUklNRV9UQUJMRVNfSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9TQU1QTEVTX1BSSU1FX1RBQkxFU19IXwogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCkBAIC00
Myw3ICs0Myw3IEBAIGNsYXNzIFByaW1lVGFibGUgewogIHB1YmxpYzoKICAgdmlydHVhbCB+UHJp
bWVUYWJsZSgpIHt9CiAKLSAgLy8gUmV0dXJucyB0cnVlIGlmZiBuIGlzIGEgcHJpbWUgbnVtYmVy
LgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgbiBpcyBhIHByaW1lIG51bWJlci4K
ICAgdmlydHVhbCBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0ID0gMDsKIAogICAvLyBSZXR1cm5z
IHRoZSBzbWFsbGVzdCBwcmltZSBudW1iZXIgZ3JlYXRlciB0aGFuIHA7IG9yIHJldHVybnMgLTEK
QEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgUHJpbWVUYWJsZSB7CiAvLyBJbXBsZW1lbnRhdGlvbiAj
MSBjYWxjdWxhdGVzIHRoZSBwcmltZXMgb24tdGhlLWZseS4KIGNsYXNzIE9uVGhlRmx5UHJpbWVU
YWJsZSA6IHB1YmxpYyBQcmltZVRhYmxlIHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgYm9vbCBJc1By
aW1lKGludCBuKSBjb25zdCB7CisgIGJvb2wgSXNQcmltZShpbnQgbikgY29uc3Qgb3ZlcnJpZGUg
ewogICAgIGlmIChuIDw9IDEpIHJldHVybiBmYWxzZTsKIAogICAgIGZvciAoaW50IGkgPSAyOyBp
KmkgPD0gbjsgaSsrKSB7CkBAIC02NSwxMiArNjUsMTIgQEAgY2xhc3MgT25UaGVGbHlQcmltZVRh
YmxlIDogcHVibGljIFByaW1lVGFibGUgewogICAgIHJldHVybiB0cnVlOwogICB9CiAKLSAgdmly
dHVhbCBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25zdCB7Ci0gICAgZm9yIChpbnQgbiA9IHAg
KyAxOyBuID4gMDsgbisrKSB7CisgIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IG92ZXJy
aWRlIHsKKyAgICBpZiAocCA8IDApIHJldHVybiAtMTsKKworICAgIGZvciAoaW50IG4gPSBwICsg
MTs7IG4rKykgewogICAgICAgaWYgKElzUHJpbWUobikpIHJldHVybiBuOwogICAgIH0KLQotICAg
IHJldHVybiAtMTsKICAgfQogfTsKIApAQCAtODMsMTMgKzgzLDEzIEBAIGNsYXNzIFByZUNhbGN1
bGF0ZWRQcmltZVRhYmxlIDogcHVibGljIFByaW1lVGFibGUgewogICAgICAgOiBpc19wcmltZV9z
aXplXyhtYXggKyAxKSwgaXNfcHJpbWVfKG5ldyBib29sW21heCArIDFdKSB7CiAgICAgQ2FsY3Vs
YXRlUHJpbWVzVXBUbyhtYXgpOwogICB9Ci0gIHZpcnR1YWwgflByZUNhbGN1bGF0ZWRQcmltZVRh
YmxlKCkgeyBkZWxldGVbXSBpc19wcmltZV87IH0KKyAgflByZUNhbGN1bGF0ZWRQcmltZVRhYmxl
KCkgb3ZlcnJpZGUgeyBkZWxldGVbXSBpc19wcmltZV87IH0KIAotICB2aXJ0dWFsIGJvb2wgSXNQ
cmltZShpbnQgbikgY29uc3QgeworICBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0IG92ZXJyaWRl
IHsKICAgICByZXR1cm4gMCA8PSBuICYmIG4gPCBpc19wcmltZV9zaXplXyAmJiBpc19wcmltZV9b
bl07CiAgIH0KIAotICB2aXJ0dWFsIGludCBHZXROZXh0UHJpbWUoaW50IHApIGNvbnN0IHsKKyAg
aW50IEdldE5leHRQcmltZShpbnQgcCkgY29uc3Qgb3ZlcnJpZGUgewogICAgIGZvciAoaW50IG4g
PSBwICsgMTsgbiA8IGlzX3ByaW1lX3NpemVfOyBuKyspIHsKICAgICAgIGlmIChpc19wcmltZV9b
bl0pIHJldHVybiBuOwogICAgIH0KQEAgLTEyMyw0ICsxMjMsNCBAQCBjbGFzcyBQcmVDYWxjdWxh
dGVkUHJpbWVUYWJsZSA6IHB1YmxpYyBQcmltZVRhYmxlIHsKICAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGUmIHJocyk7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNU
X1NBTVBMRVNfUFJJTUVfVEFCTEVTX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfU0FNUExFU19Q
UklNRV9UQUJMRVNfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlMS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMS5j
YwppbmRleCAxM2NlYzFkMGZiZmFiZGFhZjFjNmM0MWIxYTg2YmMxZDA5MDg5ODNkLi4xZDQyNzU5
NzlmZjYxMTAxYmYxYWU5YzMyMDVmNDFmNDA4MzBjMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc2FtcGxlcy9zYW1wbGUxLmNjCkBAIC00MSw3ICs0MSw3IEBAIGludCBGYWN0b3JpYWwo
aW50IG4pIHsKICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBuIGlz
IGEgcHJpbWUgbnVtYmVyLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIG4gaXMgYSBw
cmltZSBudW1iZXIuCiBib29sIElzUHJpbWUoaW50IG4pIHsKICAgLy8gVHJpdmlhbCBjYXNlIDE6
IHNtYWxsIG51bWJlcnMKICAgaWYgKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUxLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuaAppbmRleCAyYzNlOWYwNWYxYTEwYTQ0MjVmNzdi
Mjg3MTZlODA1OTY4MjE5NjFmLi5iYTM5MmNmYmQyNjY4YjZhYmViMDliMTk0NzVjNTlhMDdlMDc4
OTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTEuaApAQCAtMjks
MTMgKzI5LDEzIEBACiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJhdGluZyB1c2luZyBH
b29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgogCi0jaWZuZGVmIEdURVNUX1NBTVBMRVNfU0FN
UExFMV9IXwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTFfSF8KKyNpZm5kZWYgR09PR0xF
VEVTVF9TQU1QTEVTX1NBTVBMRTFfSF8KKyNkZWZpbmUgR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBM
RTFfSF8KIAogLy8gUmV0dXJucyBuISAodGhlIGZhY3RvcmlhbCBvZiBuKS4gIEZvciBuZWdhdGl2
ZSBuLCBuISBpcyBkZWZpbmVkIHRvIGJlIDEuCiBpbnQgRmFjdG9yaWFsKGludCBuKTsKIAotLy8g
UmV0dXJucyB0cnVlIGlmZiBuIGlzIGEgcHJpbWUgbnVtYmVyLgorLy8gUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIG4gaXMgYSBwcmltZSBudW1iZXIuCiBib29sIElzUHJpbWUoaW50IG4pOwog
Ci0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFMV9IXworI2VuZGlmICAvLyBHT09HTEVU
RVNUX1NBTVBMRVNfU0FNUExFMV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2FtcGxlcy9zYW1wbGUxMF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NhbXBsZXMvc2FtcGxlMTBfdW5pdHRlc3QuY2MKaW5kZXggN2NlOTU1MGY4ODNhYTM0MmQyNWIw
NDg1OTNmYWE5NmNhYmQ4ZTFmYS4uMzZjZGFjMjI3OWFlZWE3MDJlMGQzNTIwYzc3MjU4ZTkyNzM3
MjZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUx
MF91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBs
ZTEwX3VuaXR0ZXN0LmNjCkBAIC03NCwxMiArNzQsMTIgQEAgaW50IFdhdGVyOjphbGxvY2F0ZWRf
ID0gMDsKIGNsYXNzIExlYWtDaGVja2VyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIg
ewogIHByaXZhdGU6CiAgIC8vIENhbGxlZCBiZWZvcmUgYSB0ZXN0IHN0YXJ0cy4KLSAgdmlydHVh
bCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKiB0ZXN0X2luZm8gKi8pIHsKKyAg
dm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSBvdmVycmlk
ZSB7CiAgICAgaW5pdGlhbGx5X2FsbG9jYXRlZF8gPSBXYXRlcjo6YWxsb2NhdGVkKCk7CiAgIH0K
IAogICAvLyBDYWxsZWQgYWZ0ZXIgYSB0ZXN0IGVuZHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RF
bmQoY29uc3QgVGVzdEluZm8mIC8qIHRlc3RfaW5mbyAqLykgeworICB2b2lkIE9uVGVzdEVuZChj
b25zdCBUZXN0SW5mbyYgLyogdGVzdF9pbmZvICovKSBvdmVycmlkZSB7CiAgICAgaW50IGRpZmZl
cmVuY2UgPSBXYXRlcjo6YWxsb2NhdGVkKCkgLSBpbml0aWFsbHlfYWxsb2NhdGVkXzsKIAogICAg
IC8vIFlvdSBjYW4gZ2VuZXJhdGUgYSBmYWlsdXJlIGluIGFueSBldmVudCBoYW5kbGVyIGV4Y2Vw
dApAQCAtMTAwLDcgKzEwMCw3IEBAIFRFU1QoTGlzdGVuZXJzVGVzdCwgRG9lc05vdExlYWspIHsK
IC8vIHNwZWNpZmllZC4KIFRFU1QoTGlzdGVuZXJzVGVzdCwgTGVha3NXYXRlcikgewogICBXYXRl
ciogd2F0ZXIgPSBuZXcgV2F0ZXI7Ci0gIEVYUEVDVF9UUlVFKHdhdGVyICE9IE5VTEwpOworICBF
WFBFQ1RfVFJVRSh3YXRlciAhPSBudWxscHRyKTsKIH0KIH0gIC8vIG5hbWVzcGFjZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuY2MKaW5kZXggZjNiNzIyZmNhY2Zl
ZWU3ZDg5MGIyZDFmMTliYzk3NDE1ZWNhNDlmNi4uZDhlODcyMzk2NWExZGMwMWVhN2Y2NTY2MTli
NzFmYjUwNjk4NDlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxl
cy9zYW1wbGUyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxl
Mi5jYwpAQCAtMzUsNyArMzUsNyBAQAogCiAvLyBDbG9uZXMgYSAwLXRlcm1pbmF0ZWQgQyBzdHJp
bmcsIGFsbG9jYXRpbmcgbWVtb3J5IHVzaW5nIG5ldy4KIGNvbnN0IGNoYXIqIE15U3RyaW5nOjpD
bG9uZUNTdHJpbmcoY29uc3QgY2hhciogYV9jX3N0cmluZykgewotICBpZiAoYV9jX3N0cmluZyA9
PSBOVUxMKSByZXR1cm4gTlVMTDsKKyAgaWYgKGFfY19zdHJpbmcgPT0gbnVsbHB0cikgcmV0dXJu
IG51bGxwdHI7CiAKICAgY29uc3Qgc2l6ZV90IGxlbiA9IHN0cmxlbihhX2Nfc3RyaW5nKTsKICAg
Y2hhciogY29uc3QgY2xvbmUgPSBuZXcgY2hhclsgbGVuICsgMSBdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaAppbmRleCA1OGYzNjBmNDVjNzY1OGMwMTk3ZTNmZmM2
NWVjOGIzNzVmYjMzNmIwLi4wZjk4Njg5NTlkMjE1NzYwZjQ1NjdmZTYxNjVlMDc3NzM5OTQ3NDMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTIuaApAQCAtMjksOCAr
MjksOCBAQAogCiAvLyBBIHNhbXBsZSBwcm9ncmFtIGRlbW9uc3RyYXRpbmcgdXNpbmcgR29vZ2xl
IEMrKyB0ZXN0aW5nIGZyYW1ld29yay4KIAotI2lmbmRlZiBHVEVTVF9TQU1QTEVTX1NBTVBMRTJf
SF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19TQU1QTEUyX0hfCisjaWZuZGVmIEdPT0dMRVRFU1Rf
U0FNUExFU19TQU1QTEUyX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUyX0hf
CiAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIApAQCAtNTAsMTUgKzUwLDE1IEBAIGNsYXNzIE15U3Ry
aW5nIHsKICAgLy8gQyd0b3JzCiAKICAgLy8gVGhlIGRlZmF1bHQgYyd0b3IgY29uc3RydWN0cyBh
IE5VTEwgc3RyaW5nLgotICBNeVN0cmluZygpIDogY19zdHJpbmdfKE5VTEwpIHt9CisgIE15U3Ry
aW5nKCkgOiBjX3N0cmluZ18obnVsbHB0cikge30KIAogICAvLyBDb25zdHJ1Y3RzIGEgTXlTdHJp
bmcgYnkgY2xvbmluZyBhIDAtdGVybWluYXRlZCBDIHN0cmluZy4KLSAgZXhwbGljaXQgTXlTdHJp
bmcoY29uc3QgY2hhciogYV9jX3N0cmluZykgOiBjX3N0cmluZ18oTlVMTCkgeworICBleHBsaWNp
dCBNeVN0cmluZyhjb25zdCBjaGFyKiBhX2Nfc3RyaW5nKSA6IGNfc3RyaW5nXyhudWxscHRyKSB7
CiAgICAgU2V0KGFfY19zdHJpbmcpOwogICB9CiAKICAgLy8gQ29weSBjJ3RvcgotICBNeVN0cmlu
Zyhjb25zdCBNeVN0cmluZyYgc3RyaW5nKSA6IGNfc3RyaW5nXyhOVUxMKSB7CisgIE15U3RyaW5n
KGNvbnN0IE15U3RyaW5nJiBzdHJpbmcpIDogY19zdHJpbmdfKG51bGxwdHIpIHsKICAgICBTZXQo
c3RyaW5nLmNfc3RyaW5nXyk7CiAgIH0KIApAQCAtNzEsMTMgKzcxLDEwIEBAIGNsYXNzIE15U3Ry
aW5nIHsKICAgLy8gR2V0cyB0aGUgMC10ZXJtaW5hdGVkIEMgc3RyaW5nIHRoaXMgTXlTdHJpbmcg
b2JqZWN0IHJlcHJlc2VudHMuCiAgIGNvbnN0IGNoYXIqIGNfc3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gY19zdHJpbmdfOyB9CiAKLSAgc2l6ZV90IExlbmd0aCgpIGNvbnN0IHsKLSAgICByZXR1cm4g
Y19zdHJpbmdfID09IE5VTEwgPyAwIDogc3RybGVuKGNfc3RyaW5nXyk7Ci0gIH0KKyAgc2l6ZV90
IExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGNfc3RyaW5nXyA9PSBudWxscHRyID8gMCA6IHN0cmxl
bihjX3N0cmluZ18pOyB9CiAKICAgLy8gU2V0cyB0aGUgMC10ZXJtaW5hdGVkIEMgc3RyaW5nIHRo
aXMgTXlTdHJpbmcgb2JqZWN0IHJlcHJlc2VudHMuCiAgIHZvaWQgU2V0KGNvbnN0IGNoYXIqIGNf
c3RyaW5nKTsKIH07CiAKLQotI2VuZGlmICAvLyBHVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KKyNl
bmRpZiAgLy8gR09PR0xFVEVTVF9TQU1QTEVTX1NBTVBMRTJfSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMl91bml0dGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMl91bml0dGVzdC5jYwppbmRleCAwODQ4ODI2
MTkyY2M2NmZjYjc5MDZlZjJjMGFhZWY2NmFmODQzZjkyLi40MWUzMWMxNzY3ZGVlNTVjYzVkNWMw
YmVhMmRmMjY3YzVkODExNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
YW1wbGVzL3NhbXBsZTJfdW5pdHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2FtcGxlcy9zYW1wbGUyX3VuaXR0ZXN0LmNjCkBAIC02Niw3ICs2Niw3IEBAIFRFU1QoTXlTdHJp
bmcsIERlZmF1bHRDb25zdHJ1Y3RvcikgewogICAvLyB3ZSBoYXZlIHRvIGxpdmUgd2l0aCB0aGlz
IGZhY3QuCiAgIC8vCiAgIC8vIDwvVGVjaG5pY2FsRGV0YWlscz4KLSAgRVhQRUNUX1NUUkVRKE5V
TEwsIHMuY19zdHJpbmcoKSk7CisgIEVYUEVDVF9TVFJFUShudWxscHRyLCBzLmNfc3RyaW5nKCkp
OwogCiAgIEVYUEVDVF9FUSgwdSwgcy5MZW5ndGgoKSk7CiB9CkBAIC0xMDEsNyArMTAxLDcgQEAg
VEVTVChNeVN0cmluZywgU2V0KSB7CiAgIEVYUEVDVF9FUSgwLCBzdHJjbXAocy5jX3N0cmluZygp
LCBrSGVsbG9TdHJpbmcpKTsKIAogICAvLyBDYW4gd2Ugc2V0IHRoZSBNeVN0cmluZyB0byBOVUxM
PwotICBzLlNldChOVUxMKTsKLSAgRVhQRUNUX1NUUkVRKE5VTEwsIHMuY19zdHJpbmcoKSk7Cisg
IHMuU2V0KG51bGxwdHIpOworICBFWFBFQ1RfU1RSRVEobnVsbHB0ciwgcy5jX3N0cmluZygpKTsK
IH0KIH0gIC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c2FtcGxlcy9zYW1wbGUzLWlubC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGUzLWlubC5oCmluZGV4IDFhMjljZTkyOTZhNjRkZmU5N2E5ZjdmZGM2ZGE4NjM4N2RjMGI3
NWIuLjY1OWUwZjBiYjVkZjYyOTA1YmIzNWY5YWIwMzhmMmMzOGQzYzBlNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlMy1pbmwuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTMtaW5sLmgKQEAgLTI5LDggKzI5LDgg
QEAKIAogLy8gQSBzYW1wbGUgcHJvZ3JhbSBkZW1vbnN0cmF0aW5nIHVzaW5nIEdvb2dsZSBDKysg
dGVzdGluZyBmcmFtZXdvcmsuCiAKLSNpZm5kZWYgR1RFU1RfU0FNUExFU19TQU1QTEUzX0lOTF9I
XwotI2RlZmluZSBHVEVTVF9TQU1QTEVTX1NBTVBMRTNfSU5MX0hfCisjaWZuZGVmIEdPT0dMRVRF
U1RfU0FNUExFU19TQU1QTEUzX0lOTF9IXworI2RlZmluZSBHT09HTEVURVNUX1NBTVBMRVNfU0FN
UExFM19JTkxfSF8KIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCkBAIC01OCw3ICs1OCw4IEBAIGNs
YXNzIFF1ZXVlTm9kZSB7CiAgcHJpdmF0ZToKICAgLy8gQ3JlYXRlcyBhIG5vZGUgd2l0aCBhIGdp
dmVuIGVsZW1lbnQgdmFsdWUuICBUaGUgbmV4dCBwb2ludGVyIGlzCiAgIC8vIHNldCB0byBOVUxM
LgotICBleHBsaWNpdCBRdWV1ZU5vZGUoY29uc3QgRSYgYW5fZWxlbWVudCkgOiBlbGVtZW50Xyhh
bl9lbGVtZW50KSwgbmV4dF8oTlVMTCkge30KKyAgZXhwbGljaXQgUXVldWVOb2RlKGNvbnN0IEUm
IGFuX2VsZW1lbnQpCisgICAgICA6IGVsZW1lbnRfKGFuX2VsZW1lbnQpLCBuZXh0XyhudWxscHRy
KSB7fQogCiAgIC8vIFdlIGRpc2FibGUgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBvcGVyYXRvciBh
bmQgY29weSBjJ3Rvci4KICAgY29uc3QgUXVldWVOb2RlJiBvcGVyYXRvciA9IChjb25zdCBRdWV1
ZU5vZGUmKTsKQEAgLTcyLDcgKzczLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEU+ICAvLyBFIGlz
IHRoZSBlbGVtZW50IHR5cGUuCiBjbGFzcyBRdWV1ZSB7CiAgcHVibGljOgogICAvLyBDcmVhdGVz
IGFuIGVtcHR5IHF1ZXVlLgotICBRdWV1ZSgpIDogaGVhZF8oTlVMTCksIGxhc3RfKE5VTEwpLCBz
aXplXygwKSB7fQorICBRdWV1ZSgpIDogaGVhZF8obnVsbHB0ciksIGxhc3RfKG51bGxwdHIpLCBz
aXplXygwKSB7fQogCiAgIC8vIEQndG9yLiAgQ2xlYXJzIHRoZSBxdWV1ZS4KICAgflF1ZXVlKCkg
eyBDbGVhcigpOyB9CkBAIC04NiwxMiArODcsMTIgQEAgY2xhc3MgUXVldWUgewogICAgICAgZm9y
ICg7IDspIHsKICAgICAgICAgZGVsZXRlIG5vZGU7CiAgICAgICAgIG5vZGUgPSBuZXh0OwotICAg
ICAgICBpZiAobm9kZSA9PSBOVUxMKSBicmVhazsKKyAgICAgICAgaWYgKG5vZGUgPT0gbnVsbHB0
cikgYnJlYWs7CiAgICAgICAgIG5leHQgPSBub2RlLT5uZXh0KCk7CiAgICAgICB9CiAKICAgICAg
IC8vIDIuIFJlc2V0cyB0aGUgbWVtYmVyIHZhcmlhYmxlcy4KLSAgICAgIGhlYWRfID0gbGFzdF8g
PSBOVUxMOworICAgICAgaGVhZF8gPSBsYXN0XyA9IG51bGxwdHI7CiAgICAgICBzaXplXyA9IDA7
CiAgICAgfQogICB9CkBAIC0xMjgsMTQgKzEyOSwxNCBAQCBjbGFzcyBRdWV1ZSB7CiAgIC8vIHRo
ZSBxdWV1ZSBpcyBlbXB0eS4KICAgRSogRGVxdWV1ZSgpIHsKICAgICBpZiAoc2l6ZV8gPT0gMCkg
ewotICAgICAgcmV0dXJuIE5VTEw7CisgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBjb25zdCBRdWV1ZU5vZGU8RT4qIGNvbnN0IG9sZF9oZWFkID0gaGVhZF87CiAgICAgaGVhZF8g
PSBoZWFkXy0+bmV4dF87CiAgICAgc2l6ZV8tLTsKICAgICBpZiAoc2l6ZV8gPT0gMCkgewotICAg
ICAgbGFzdF8gPSBOVUxMOworICAgICAgbGFzdF8gPSBudWxscHRyOwogICAgIH0KIAogICAgIEUq
IGVsZW1lbnQgPSBuZXcgRShvbGRfaGVhZC0+ZWxlbWVudCgpKTsKQEAgLTE1MCw3ICsxNTEsOCBA
QCBjbGFzcyBRdWV1ZSB7CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPgogICBRdWV1ZSogTWFwKEYg
ZnVuY3Rpb24pIGNvbnN0IHsKICAgICBRdWV1ZSogbmV3X3F1ZXVlID0gbmV3IFF1ZXVlKCk7Ci0g
ICAgZm9yIChjb25zdCBRdWV1ZU5vZGU8RT4qIG5vZGUgPSBoZWFkXzsgbm9kZSAhPSBOVUxMOyBu
b2RlID0gbm9kZS0+bmV4dF8pIHsKKyAgICBmb3IgKGNvbnN0IFF1ZXVlTm9kZTxFPiogbm9kZSA9
IGhlYWRfOyBub2RlICE9IG51bGxwdHI7CisgICAgICAgICBub2RlID0gbm9kZS0+bmV4dF8pIHsK
ICAgICAgIG5ld19xdWV1ZS0+RW5xdWV1ZShmdW5jdGlvbihub2RlLT5lbGVtZW50KCkpKTsKICAg
ICB9CiAKQEAgLTE2Nyw0ICsxNjksNCBAQCBjbGFzcyBRdWV1ZSB7CiAgIGNvbnN0IFF1ZXVlJiBv
cGVyYXRvciA9IChjb25zdCBRdWV1ZSYpOwogfTsKIAotI2VuZGlmICAvLyBHVEVTVF9TQU1QTEVT
X1NBTVBMRTNfSU5MX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEUzX0lO
TF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUz
X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGUzX3Vu
aXR0ZXN0LmNjCmluZGV4IGUwOTNjMjU4ODU3M2Y5NjI3MGE1ZWQ0MTI0NWFjN2U4OWY0ODUxMTgu
LmIxOTQxNmQ1M2M5NWYwODRlZmU1MWJmOGVmMjNjYzY5M2YzYzVkNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlM191bml0dGVzdC5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTNfdW5pdHRlc3QuY2MKQEAgLTcx
LDcgKzcxLDcgQEAgY2xhc3MgUXVldWVUZXN0U21wbDMgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
CiAgIC8vIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBlYWNoIHRl
c3QgaXMgcnVuLiAgWW91CiAgIC8vIHNob3VsZCBkZWZpbmUgaXQgaWYgeW91IG5lZWQgdG8gaW5p
dGlhbGl6ZSB0aGUgdmFyaWFibGVzLgogICAvLyBPdGhlcndpc2UsIHRoaXMgY2FuIGJlIHNraXBw
ZWQuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsK
ICAgICBxMV8uRW5xdWV1ZSgxKTsKICAgICBxMl8uRW5xdWV1ZSgyKTsKICAgICBxMl8uRW5xdWV1
ZSgzKTsKQEAgLTk5LDggKzk5LDggQEAgY2xhc3MgUXVldWVUZXN0U21wbDMgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAgICAgQVNTRVJUX0VRKHEtPlNpemUoKSwgbmV3X3EtPlNpemUoKSk7CiAK
ICAgICAvLyBWZXJpZmllcyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGVsZW1lbnRzIG9m
IHRoZSB0d28gcXVldWVzLgotICAgIGZvciAoIGNvbnN0IFF1ZXVlTm9kZTxpbnQ+ICogbjEgPSBx
LT5IZWFkKCksICogbjIgPSBuZXdfcS0+SGVhZCgpOwotICAgICAgICAgIG4xICE9IE5VTEw7IG4x
ID0gbjEtPm5leHQoKSwgbjIgPSBuMi0+bmV4dCgpICkgeworICAgIGZvciAoY29uc3QgUXVldWVO
b2RlPGludD4qbjEgPSBxLT5IZWFkKCksICpuMiA9IG5ld19xLT5IZWFkKCk7CisgICAgICAgICBu
MSAhPSBudWxscHRyOyBuMSA9IG4xLT5uZXh0KCksIG4yID0gbjItPm5leHQoKSkgewogICAgICAg
RVhQRUNUX0VRKDIgKiBuMS0+ZWxlbWVudCgpLCBuMi0+ZWxlbWVudCgpKTsKICAgICB9CiAKQEAg
LTEyNSwxNiArMTI1LDE2IEBAIFRFU1RfRihRdWV1ZVRlc3RTbXBsMywgRGVmYXVsdENvbnN0cnVj
dG9yKSB7CiAvLyBUZXN0cyBEZXF1ZXVlKCkuCiBURVNUX0YoUXVldWVUZXN0U21wbDMsIERlcXVl
dWUpIHsKICAgaW50ICogbiA9IHEwXy5EZXF1ZXVlKCk7Ci0gIEVYUEVDVF9UUlVFKG4gPT0gTlVM
TCk7CisgIEVYUEVDVF9UUlVFKG4gPT0gbnVsbHB0cik7CiAKICAgbiA9IHExXy5EZXF1ZXVlKCk7
Ci0gIEFTU0VSVF9UUlVFKG4gIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKG4gIT0gbnVsbHB0cik7
CiAgIEVYUEVDVF9FUSgxLCAqbik7CiAgIEVYUEVDVF9FUSgwdSwgcTFfLlNpemUoKSk7CiAgIGRl
bGV0ZSBuOwogCiAgIG4gPSBxMl8uRGVxdWV1ZSgpOwotICBBU1NFUlRfVFJVRShuICE9IE5VTEwp
OworICBBU1NFUlRfVFJVRShuICE9IG51bGxwdHIpOwogICBFWFBFQ1RfRVEoMiwgKm4pOwogICBF
WFBFQ1RfRVEoMXUsIHEyXy5TaXplKCkpOwogICBkZWxldGUgbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlNC5oIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmgKaW5kZXggZTI1NmY0MDY0ZmU5MWE3ZjAxYTk0NTUwZDMy
YzNiYjExYjBhNGZmZi4uMGM0ZWQ5MmU3MzhiYTYxZWQ2YjVmMjhmZDNiMGNiNGNhMmMyNjRiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU0LmgKQEAgLTI4LDggKzI4
LDggQEAKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIC8vIEEgc2FtcGxlIHByb2dyYW0gZGVtb25zdHJhdGlu
ZyB1c2luZyBHb29nbGUgQysrIHRlc3RpbmcgZnJhbWV3b3JrLgotI2lmbmRlZiBHVEVTVF9TQU1Q
TEVTX1NBTVBMRTRfSF8KLSNkZWZpbmUgR1RFU1RfU0FNUExFU19TQU1QTEU0X0hfCisjaWZuZGVm
IEdPT0dMRVRFU1RfU0FNUExFU19TQU1QTEU0X0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfU0FNUExF
U19TQU1QTEU0X0hfCiAKIC8vIEEgc2ltcGxlIG1vbm90b25pYyBjb3VudGVyLgogY2xhc3MgQ291
bnRlciB7CkBAIC01MCw0ICs1MCw0IEBAIGNsYXNzIENvdW50ZXIgewogICB2b2lkIFByaW50KCkg
Y29uc3Q7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX1NBTVBMRVNfU0FNUExFNF9IXworI2VuZGlm
ICAvLyBHT09HTEVURVNUX1NBTVBMRVNfU0FNUExFNF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU1X3VuaXR0ZXN0LmNjCmluZGV4IGQ4YTg3ODhjNmQw
ZmRhMjM4NjQ2ZmVhMjkwZTA5N2NjNzYyNzc4NTUuLjBhMjFkZDIxNTc3MDdmYjMyYzQ1OTI0OGIw
YzUzNDE2MDllYzA2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBs
ZXMvc2FtcGxlNV91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1w
bGVzL3NhbXBsZTVfdW5pdHRlc3QuY2MKQEAgLTYzLDE1ICs2MywxMyBAQCBjbGFzcyBRdWlja1Rl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgogICAvLyBSZW1lbWJlciB0
aGF0IFNldFVwKCkgaXMgcnVuIGltbWVkaWF0ZWx5IGJlZm9yZSBhIHRlc3Qgc3RhcnRzLgogICAv
LyBUaGlzIGlzIGEgZ29vZCBwbGFjZSB0byByZWNvcmQgdGhlIHN0YXJ0IHRpbWUuCi0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBzdGFydF90aW1lXyA9IHRpbWUoTlVMTCk7Ci0gIH0KKyAg
dm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgc3RhcnRfdGltZV8gPSB0aW1lKG51bGxwdHIpOyB9CiAK
ICAgLy8gVGVhckRvd24oKSBpcyBpbnZva2VkIGltbWVkaWF0ZWx5IGFmdGVyIGEgdGVzdCBmaW5p
c2hlcy4gIEhlcmUgd2UKICAgLy8gY2hlY2sgaWYgdGhlIHRlc3Qgd2FzIHRvbyBzbG93LgotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgLy8gR2V0cyB0aGUgdGltZSB3aGVuIHRoZSB0ZXN0IGZpbmlzaGVzCi0gICAgY29uc3QgdGlt
ZV90IGVuZF90aW1lID0gdGltZShOVUxMKTsKKyAgICBjb25zdCB0aW1lX3QgZW5kX3RpbWUgPSB0
aW1lKG51bGxwdHIpOwogCiAgICAgLy8gQXNzZXJ0cyB0aGF0IHRoZSB0ZXN0IHRvb2sgbm8gbW9y
ZSB0aGFuIH41IHNlY29uZHMuICBEaWQgeW91CiAgICAgLy8ga25vdyB0aGF0IHlvdSBjYW4gdXNl
IGFzc2VydGlvbnMgaW4gU2V0VXAoKSBhbmQgVGVhckRvd24oKSBhcwpAQCAtMTQyLDcgKzE0MCw3
IEBAIFRFU1RfRihJbnRlZ2VyRnVuY3Rpb25UZXN0LCBJc1ByaW1lKSB7CiAvLyBzdHVmZiBpbnNp
ZGUgdGhlIGJvZHkgb2YgdGhlIHRlc3QgZml4dHVyZSwgYXMgdXN1YWwuCiBjbGFzcyBRdWV1ZVRl
c3QgOiBwdWJsaWMgUXVpY2tUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICAvLyBGaXJzdCwgd2UgbmVlZCB0
byBzZXQgdXAgdGhlIHN1cGVyIGZpeHR1cmUgKFF1aWNrVGVzdCkuCiAgICAgUXVpY2tUZXN0OjpT
ZXRVcCgpOwogCkBAIC0xNzYsMTYgKzE3NCwxNiBAQCBURVNUX0YoUXVldWVUZXN0LCBEZWZhdWx0
Q29uc3RydWN0b3IpIHsKIC8vIFRlc3RzIERlcXVldWUoKS4KIFRFU1RfRihRdWV1ZVRlc3QsIERl
cXVldWUpIHsKICAgaW50KiBuID0gcTBfLkRlcXVldWUoKTsKLSAgRVhQRUNUX1RSVUUobiA9PSBO
VUxMKTsKKyAgRVhQRUNUX1RSVUUobiA9PSBudWxscHRyKTsKIAogICBuID0gcTFfLkRlcXVldWUo
KTsKLSAgRVhQRUNUX1RSVUUobiAhPSBOVUxMKTsKKyAgRVhQRUNUX1RSVUUobiAhPSBudWxscHRy
KTsKICAgRVhQRUNUX0VRKDEsICpuKTsKICAgRVhQRUNUX0VRKDB1LCBxMV8uU2l6ZSgpKTsKICAg
ZGVsZXRlIG47CiAKICAgbiA9IHEyXy5EZXF1ZXVlKCk7Ci0gIEVYUEVDVF9UUlVFKG4gIT0gTlVM
TCk7CisgIEVYUEVDVF9UUlVFKG4gIT0gbnVsbHB0cik7CiAgIEVYUEVDVF9FUSgyLCAqbik7CiAg
IEVYUEVDVF9FUSgxdSwgcTJfLlNpemUoKSk7CiAgIGRlbGV0ZSBuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1wbGU2X3VuaXR0ZXN0LmNjCmluZGV4IGRkZjJm
MWMxM2JiZTAzNDgxMzQ0OTM2YjBhNzJkYmIyYTBiMjg0MjQuLmRhMzE3ZWVkNWEwZDI1ODYwNWM4
OWUwZDg4ZmM0M2MxN2MxZWIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3NhbXBsZXMvc2FtcGxlNl91bml0dGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zYW1wbGVzL3NhbXBsZTZfdW5pdHRlc3QuY2MKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgUHJp
bWVUYWJsZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgIC8vIGltcGxlbWVudGVkIGJ5
IFQuCiAgIFByaW1lVGFibGVUZXN0KCkgOiB0YWJsZV8oQ3JlYXRlUHJpbWVUYWJsZTxUPigpKSB7
fQogCi0gIHZpcnR1YWwgflByaW1lVGFibGVUZXN0KCkgeyBkZWxldGUgdGFibGVfOyB9CisgIH5Q
cmltZVRhYmxlVGVzdCgpIG92ZXJyaWRlIHsgZGVsZXRlIHRhYmxlXzsgfQogCiAgIC8vIE5vdGUg
dGhhdCB3ZSB0ZXN0IGFuIGltcGxlbWVudGF0aW9uIHZpYSB0aGUgYmFzZSBpbnRlcmZhY2UKICAg
Ly8gaW5zdGVhZCBvZiB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIGNsYXNzLiAgVGhpcyBpcyBp
bXBvcnRhbnQKQEAgLTczLDggKzczLDYgQEAgY2xhc3MgUHJpbWVUYWJsZVRlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7CiAgIFByaW1lVGFibGUqIGNvbnN0IHRhYmxlXzsKIH07CiAKLSNpZiBH
VEVTVF9IQVNfVFlQRURfVEVTVAotCiB1c2luZyB0ZXN0aW5nOjpUeXBlczsKIAogLy8gR29vZ2xl
IFRlc3Qgb2ZmZXJzIHR3byB3YXlzIGZvciByZXVzaW5nIHRlc3RzIGZvciBkaWZmZXJlbnQgdHlw
ZXMuCkBAIC04NCw3ICs4Miw3IEBAIHVzaW5nIHRlc3Rpbmc6OlR5cGVzOwogCiAvLyBUbyB3cml0
ZSBhIHR5cGVkIHRlc3QgY2FzZSwgZmlyc3QgdXNlCiAvLwotLy8gICBUWVBFRF9URVNUX0NBU0Uo
VGVzdENhc2VOYW1lLCBUeXBlTGlzdCk7CisvLyAgIFRZUEVEX1RFU1RfU1VJVEUoVGVzdENhc2VO
YW1lLCBUeXBlTGlzdCk7CiAvLwogLy8gdG8gZGVjbGFyZSBpdCBhbmQgc3BlY2lmeSB0aGUgdHlw
ZSBwYXJhbWV0ZXJzLiAgQXMgd2l0aCBURVNUX0YsCiAvLyBUZXN0Q2FzZU5hbWUgbXVzdCBtYXRj
aCB0aGUgdGVzdCBmaXh0dXJlIG5hbWUuCkBAIC05Miw3ICs5MCw3IEBAIHVzaW5nIHRlc3Rpbmc6
OlR5cGVzOwogLy8gVGhlIGxpc3Qgb2YgdHlwZXMgd2Ugd2FudCB0byB0ZXN0LgogdHlwZWRlZiBU
eXBlczxPblRoZUZseVByaW1lVGFibGUsIFByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPiBJbXBsZW1l
bnRhdGlvbnM7CiAKLVRZUEVEX1RFU1RfQ0FTRShQcmltZVRhYmxlVGVzdCwgSW1wbGVtZW50YXRp
b25zKTsKK1RZUEVEX1RFU1RfU1VJVEUoUHJpbWVUYWJsZVRlc3QsIEltcGxlbWVudGF0aW9ucyk7
CiAKIC8vIFRoZW4gdXNlIFRZUEVEX1RFU1QoVGVzdENhc2VOYW1lLCBUZXN0TmFtZSkgdG8gZGVm
aW5lIGEgdHlwZWQgdGVzdCwKIC8vIHNpbWlsYXIgdG8gVEVTVF9GLgpAQCAtMTMxLDEzICsxMjks
OSBAQCBUWVBFRF9URVNUKFByaW1lVGFibGVUZXN0LCBDYW5HZXROZXh0UHJpbWUpIHsKIH0KIAog
Ly8gVGhhdCdzIGl0ISAgR29vZ2xlIFRlc3Qgd2lsbCByZXBlYXQgZWFjaCBUWVBFRF9URVNUIGZv
ciBlYWNoIHR5cGUKLS8vIGluIHRoZSB0eXBlIGxpc3Qgc3BlY2lmaWVkIGluIFRZUEVEX1RFU1Rf
Q0FTRS4gIFNpdCBiYWNrIGFuZCBiZQorLy8gaW4gdGhlIHR5cGUgbGlzdCBzcGVjaWZpZWQgaW4g
VFlQRURfVEVTVF9TVUlURS4gIFNpdCBiYWNrIGFuZCBiZQogLy8gaGFwcHkgdGhhdCB5b3UgZG9u
J3QgaGF2ZSB0byBkZWZpbmUgdGhlbSBtdWx0aXBsZSB0aW1lcy4KIAotI2VuZGlmICAvLyBHVEVT
VF9IQVNfVFlQRURfVEVTVAotCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAotCiB1c2luZyB0
ZXN0aW5nOjpUeXBlczsKIAogLy8gU29tZXRpbWVzLCBob3dldmVyLCB5b3UgZG9uJ3QgeWV0IGtu
b3cgYWxsIHRoZSB0eXBlcyB0aGF0IHlvdSB3YW50CkBAIC0xNjMsNyArMTU3LDcgQEAgY2xhc3Mg
UHJpbWVUYWJsZVRlc3QyIDogcHVibGljIFByaW1lVGFibGVUZXN0PFQ+IHsKIC8vIFRoZW4sIGRl
Y2xhcmUgdGhlIHRlc3QgY2FzZS4gIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdGVz
dAogLy8gZml4dHVyZSwgYW5kIGFsc28gdGhlIG5hbWUgb2YgdGhlIHRlc3QgY2FzZSAoYXMgdXN1
YWwpLiAgVGhlIF9QCiAvLyBzdWZmaXggaXMgZm9yICJwYXJhbWV0ZXJpemVkIiBvciAicGF0dGVy
biIuCi1UWVBFRF9URVNUX0NBU0VfUChQcmltZVRhYmxlVGVzdDIpOworVFlQRURfVEVTVF9TVUlU
RV9QKFByaW1lVGFibGVUZXN0Mik7CiAKIC8vIE5leHQsIHVzZSBUWVBFRF9URVNUX1AoVGVzdENh
c2VOYW1lLCBUZXN0TmFtZSkgdG8gZGVmaW5lIGEgdGVzdCwKIC8vIHNpbWlsYXIgdG8gd2hhdCB5
b3UgZG8gd2l0aCBURVNUX0YuCkBAIC0xOTYsNyArMTkwLDcgQEAgVFlQRURfVEVTVF9QKFByaW1l
VGFibGVUZXN0MiwgQ2FuR2V0TmV4dFByaW1lKSB7CiAKIC8vIFR5cGUtcGFyYW1ldGVyaXplZCB0
ZXN0cyBpbnZvbHZlIG9uZSBleHRyYSBzdGVwOiB5b3UgaGF2ZSB0bwogLy8gZW51bWVyYXRlIHRo
ZSB0ZXN0cyB5b3UgZGVmaW5lZDoKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAorUkVHSVNU
RVJfVFlQRURfVEVTVF9TVUlURV9QKAogICAgIFByaW1lVGFibGVUZXN0MiwgIC8vIFRoZSBmaXJz
dCBhcmd1bWVudCBpcyB0aGUgdGVzdCBjYXNlIG5hbWUuCiAgICAgLy8gVGhlIHJlc3Qgb2YgdGhl
IGFyZ3VtZW50cyBhcmUgdGhlIHRlc3QgbmFtZXMuCiAgICAgUmV0dXJuc0ZhbHNlRm9yTm9uUHJp
bWVzLCBSZXR1cm5zVHJ1ZUZvclByaW1lcywgQ2FuR2V0TmV4dFByaW1lKTsKQEAgLTIxNiw5ICsy
MTAsOCBAQCBSRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCgKIC8vIGRlZmluZWQgYXQgdGhlIHRp
bWUgd2Ugd3JpdGUgdGhlIFRZUEVEX1RFU1RfUCgpcy4KIHR5cGVkZWYgVHlwZXM8T25UaGVGbHlQ
cmltZVRhYmxlLCBQcmVDYWxjdWxhdGVkUHJpbWVUYWJsZT4KICAgICBQcmltZVRhYmxlSW1wbGVt
ZW50YXRpb25zOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoT25UaGVGbHlBbmRQcmVD
YWxjdWxhdGVkLCAgICAvLyBJbnN0YW5jZSBuYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQcmltZVRhYmxlVGVzdDIsICAgICAgICAgICAgIC8vIFRlc3QgY2FzZSBuYW1lCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQcmltZVRhYmxlSW1wbGVtZW50YXRpb25zKTsgIC8v
IFR5cGUgbGlzdAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE9uVGhlRmx5QW5kUHJl
Q2FsY3VsYXRlZCwgICAgLy8gSW5zdGFuY2UgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFByaW1lVGFibGVUZXN0MiwgICAgICAgICAgICAgLy8gVGVzdCBjYXNlIG5hbWUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmltZVRhYmxlSW1wbGVtZW50YXRpb25zKTsg
IC8vIFR5cGUgbGlzdAogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKIH0gIC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU3X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1w
bGU3X3VuaXR0ZXN0LmNjCmluZGV4IGMxYWU4YmRlZGM5YWZjOWExMWQwZDkyMDIxZWY3Njc3ZDM5
OGE5YzkuLmUwZWZjMjllNGEyYTk3N2UxYTUwYTQ1YmIzNzUyNDNjOTY4NTQ3ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlN191bml0dGVzdC5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTdfdW5pdHRlc3QuY2MK
QEAgLTY1LDExICs2NSwxMSBAQCBQcmltZVRhYmxlKiBDcmVhdGVQcmVDYWxjdWxhdGVkUHJpbWVU
YWJsZSgpIHsKIC8vIGNyZWF0ZSBhbmQgc3RvcmUgYW4gaW5zdGFuY2Ugb2YgUHJpbWVUYWJsZS4K
IGNsYXNzIFByaW1lVGFibGVUZXN0U21wbDcgOiBwdWJsaWMgVGVzdFdpdGhQYXJhbTxDcmVhdGVQ
cmltZVRhYmxlRnVuYyo+IHsKICBwdWJsaWM6Ci0gIHZpcnR1YWwgflByaW1lVGFibGVUZXN0U21w
bDcoKSB7IGRlbGV0ZSB0YWJsZV87IH0KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeyB0YWJsZV8g
PSAoKkdldFBhcmFtKCkpKCk7IH0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB+UHJp
bWVUYWJsZVRlc3RTbXBsNygpIG92ZXJyaWRlIHsgZGVsZXRlIHRhYmxlXzsgfQorICB2b2lkIFNl
dFVwKCkgb3ZlcnJpZGUgeyB0YWJsZV8gPSAoKkdldFBhcmFtKCkpKCk7IH0KKyAgdm9pZCBUZWFy
RG93bigpIG92ZXJyaWRlIHsKICAgICBkZWxldGUgdGFibGVfOwotICAgIHRhYmxlXyA9IE5VTEw7
CisgICAgdGFibGVfID0gbnVsbHB0cjsKICAgfQogCiAgcHJvdGVjdGVkOgpAQCAtMTEwLDggKzEx
MCw4IEBAIFRFU1RfUChQcmltZVRhYmxlVGVzdFNtcGw3LCBDYW5HZXROZXh0UHJpbWUpIHsKIC8v
CiAvLyBIZXJlLCB3ZSBpbnN0YW50aWF0ZSBvdXIgdGVzdHMgd2l0aCBhIGxpc3Qgb2YgdHdvIFBy
aW1lVGFibGUgb2JqZWN0CiAvLyBmYWN0b3J5IGZ1bmN0aW9uczoKLUlOU1RBTlRJQVRFX1RFU1Rf
Q0FTRV9QKE9uVGhlRmx5QW5kUHJlQ2FsY3VsYXRlZCwgUHJpbWVUYWJsZVRlc3RTbXBsNywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygmQ3JlYXRlT25UaGVGbHlQcmltZVRhYmxlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDcmVhdGVQcmVDYWxjdWxhdGVkUHJpbWVU
YWJsZTwxMDAwPikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKE9uVGhlRmx5QW5kUHJlQ2Fs
Y3VsYXRlZCwgUHJpbWVUYWJsZVRlc3RTbXBsNywKKyAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZXMoJkNyZWF0ZU9uVGhlRmx5UHJpbWVUYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNyZWF0ZVByZUNhbGN1bGF0ZWRQcmltZVRhYmxlPDEwMDA+KSk7CiAKIH0gIC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9z
YW1wbGU4X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2FtcGxlcy9zYW1w
bGU4X3VuaXR0ZXN0LmNjCmluZGV4IGNlNzVjZjAzMDg3MGMzNzZkZmVjNjAzMWRiMjQ3MTEwODcw
MzgzZjYuLjEwNDg4YjBlYTQ1MDlhNjU5MWYwNmIwNWFjNWFlMTQ0MzNiNjUyZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NhbXBsZXMvc2FtcGxlOF91bml0dGVzdC5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZThfdW5pdHRlc3QuY2MK
QEAgLTM3LDcgKzM3LDYgQEAKIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiBuYW1lc3BhY2Ug
ewotI2lmIEdURVNUX0hBU19DT01CSU5FCiAKIC8vIFN1cHBvc2Ugd2Ugd2FudCB0byBpbnRyb2R1
Y2UgYSBuZXcsIGltcHJvdmVkIGltcGxlbWVudGF0aW9uIG9mIFByaW1lVGFibGUKIC8vIHdoaWNo
IGNvbWJpbmVzIHNwZWVkIG9mIFByZWNhbGNQcmltZVRhYmxlIGFuZCB2ZXJzYXRpbGl0eSBvZgpA
QCAtNTAsMjQgKzQ5LDI1IEBAIGNsYXNzIEh5YnJpZFByaW1lVGFibGUgOiBwdWJsaWMgUHJpbWVU
YWJsZSB7CiAgcHVibGljOgogICBIeWJyaWRQcmltZVRhYmxlKGJvb2wgZm9yY2Vfb25fdGhlX2Zs
eSwgaW50IG1heF9wcmVjYWxjdWxhdGVkKQogICAgICAgOiBvbl90aGVfZmx5X2ltcGxfKG5ldyBP
blRoZUZseVByaW1lVGFibGUpLAotICAgICAgICBwcmVjYWxjX2ltcGxfKGZvcmNlX29uX3RoZV9m
bHkgPyBOVUxMIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFByZUNhbGN1bGF0ZWRQ
cmltZVRhYmxlKG1heF9wcmVjYWxjdWxhdGVkKSksCisgICAgICAgIHByZWNhbGNfaW1wbF8oZm9y
Y2Vfb25fdGhlX2ZseQorICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxwdHIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiBuZXcgUHJlQ2FsY3VsYXRlZFByaW1lVGFibGUobWF4X3By
ZWNhbGN1bGF0ZWQpKSwKICAgICAgICAgbWF4X3ByZWNhbGN1bGF0ZWRfKG1heF9wcmVjYWxjdWxh
dGVkKSB7fQotICB2aXJ0dWFsIH5IeWJyaWRQcmltZVRhYmxlKCkgeworICB+SHlicmlkUHJpbWVU
YWJsZSgpIG92ZXJyaWRlIHsKICAgICBkZWxldGUgb25fdGhlX2ZseV9pbXBsXzsKICAgICBkZWxl
dGUgcHJlY2FsY19pbXBsXzsKICAgfQogCi0gIHZpcnR1YWwgYm9vbCBJc1ByaW1lKGludCBuKSBj
b25zdCB7Ci0gICAgaWYgKHByZWNhbGNfaW1wbF8gIT0gTlVMTCAmJiBuIDwgbWF4X3ByZWNhbGN1
bGF0ZWRfKQorICBib29sIElzUHJpbWUoaW50IG4pIGNvbnN0IG92ZXJyaWRlIHsKKyAgICBpZiAo
cHJlY2FsY19pbXBsXyAhPSBudWxscHRyICYmIG4gPCBtYXhfcHJlY2FsY3VsYXRlZF8pCiAgICAg
ICByZXR1cm4gcHJlY2FsY19pbXBsXy0+SXNQcmltZShuKTsKICAgICBlbHNlCiAgICAgICByZXR1
cm4gb25fdGhlX2ZseV9pbXBsXy0+SXNQcmltZShuKTsKICAgfQogCi0gIHZpcnR1YWwgaW50IEdl
dE5leHRQcmltZShpbnQgcCkgY29uc3QgeworICBpbnQgR2V0TmV4dFByaW1lKGludCBwKSBjb25z
dCBvdmVycmlkZSB7CiAgICAgaW50IG5leHRfcHJpbWUgPSAtMTsKLSAgICBpZiAocHJlY2FsY19p
bXBsXyAhPSBOVUxMICYmIHAgPCBtYXhfcHJlY2FsY3VsYXRlZF8pCisgICAgaWYgKHByZWNhbGNf
aW1wbF8gIT0gbnVsbHB0ciAmJiBwIDwgbWF4X3ByZWNhbGN1bGF0ZWRfKQogICAgICAgbmV4dF9w
cmltZSA9IHByZWNhbGNfaW1wbF8tPkdldE5leHRQcmltZShwKTsKIAogICAgIHJldHVybiBuZXh0
X3ByaW1lICE9IC0xID8gbmV4dF9wcmltZSA6IG9uX3RoZV9mbHlfaW1wbF8tPkdldE5leHRQcmlt
ZShwKTsKQEAgLTg5LDI0ICs4OSwxNyBAQCB1c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7CiAvLyBQ
cmVDYWxjdWxhdGVkUHJpbWVUYWJsZSBkaXNhYmxlZC4gV2UgZG8gdGhpcyBieSBkZWZpbmluZyBm
aXh0dXJlIHdoaWNoIHdpbGwKIC8vIGFjY2VwdCBkaWZmZXJlbnQgY29tYmluYXRpb25zIG9mIHBh
cmFtZXRlcnMgZm9yIGluc3RhbnRpYXRpbmcgYQogLy8gSHlicmlkUHJpbWVUYWJsZSBpbnN0YW5j
ZS4KLWNsYXNzIFByaW1lVGFibGVUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08IDo6dGVzdGlu
Zzo6dHVwbGU8Ym9vbCwgaW50PiA+IHsKK2NsYXNzIFByaW1lVGFibGVUZXN0IDogcHVibGljIFRl
c3RXaXRoUGFyYW08IDo6c3RkOjp0dXBsZTxib29sLCBpbnQ+ID4gewogIHByb3RlY3RlZDoKLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIC8vIFRoaXMgY2FuIGJlIHdyaXR0ZW4gYXMKLSAg
ICAvLwotICAgIC8vIGJvb2wgZm9yY2Vfb25fdGhlX2ZseTsKLSAgICAvLyBpbnQgbWF4X3ByZWNh
bGN1bGF0ZWQ7Ci0gICAgLy8gdGllKGZvcmNlX29uX3RoZV9mbHksIG1heF9wcmVjYWxjdWxhdGVk
KSA9IEdldFBhcmFtKCk7Ci0gICAgLy8KLSAgICAvLyBvbmNlIHRoZSBHb29nbGUgQysrIFN0eWxl
IEd1aWRlIGFsbG93cyB1c2Ugb2YgOjpzdGQ6OnRyMTo6dGllLgotICAgIC8vCi0gICAgYm9vbCBm
b3JjZV9vbl90aGVfZmx5ID0gOjp0ZXN0aW5nOjpnZXQ8MD4oR2V0UGFyYW0oKSk7Ci0gICAgaW50
IG1heF9wcmVjYWxjdWxhdGVkID0gOjp0ZXN0aW5nOjpnZXQ8MT4oR2V0UGFyYW0oKSk7CisgIHZv
aWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgYm9vbCBmb3JjZV9vbl90aGVfZmx5OworICAgIGlu
dCBtYXhfcHJlY2FsY3VsYXRlZDsKKyAgICBzdGQ6OnRpZShmb3JjZV9vbl90aGVfZmx5LCBtYXhf
cHJlY2FsY3VsYXRlZCkgPSBHZXRQYXJhbSgpOwogICAgIHRhYmxlXyA9IG5ldyBIeWJyaWRQcmlt
ZVRhYmxlKGZvcmNlX29uX3RoZV9mbHksIG1heF9wcmVjYWxjdWxhdGVkKTsKICAgfQotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAg
ZGVsZXRlIHRhYmxlXzsKLSAgICB0YWJsZV8gPSBOVUxMOworICAgIHRhYmxlXyA9IG51bGxwdHI7
CiAgIH0KICAgSHlicmlkUHJpbWVUYWJsZSogdGFibGVfOwogfTsKQEAgLTE1NSwxOSArMTQ4LDcg
QEAgVEVTVF9QKFByaW1lVGFibGVUZXN0LCBDYW5HZXROZXh0UHJpbWUpIHsKIC8vIHdpbGwgcHV0
IHNvbWUgb2YgdGhlIHRlc3RlZCBudW1iZXJzIGJleW9uZCB0aGUgY2FwYWJpbGl0eSBvZiB0aGUK
IC8vIFByZWNhbGNQcmltZVRhYmxlIGluc3RhbmNlIGFuZCBzb21lIGluc2lkZSBpdCAoMTApLiBD
b21iaW5lIHdpbGwgcHJvZHVjZSBhbGwKIC8vIHBvc3NpYmxlIGNvbWJpbmF0aW9ucy4KLUlOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QKE1lYW5pbmdmdWxUZXN0UGFyYW1ldGVycywKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFByaW1lVGFibGVUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgQ29t
YmluZShCb29sKCksIFZhbHVlcygxLCAxMCkpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChN
ZWFuaW5nZnVsVGVzdFBhcmFtZXRlcnMsIFByaW1lVGFibGVUZXN0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbWJpbmUoQm9vbCgpLCBWYWx1ZXMoMSwgMTApKSk7CiAKLSNlbHNlCi0KLS8v
IEdvb2dsZSBUZXN0IG1heSBub3Qgc3VwcG9ydCBDb21iaW5lKCkgd2l0aCBzb21lIGNvbXBpbGVy
cy4gSWYgd2UKLS8vIHVzZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBjb21waWxlIG91dCBh
bGwgY29kZSByZWZlcnJpbmcgdG8KLS8vIHRoZSBndGVzdF9tYWluIGxpYnJhcnksIE1TVkMgbGlu
a2VyIHdpbGwgbm90IGxpbmsgdGhhdCBsaWJyYXJ5IGF0Ci0vLyBhbGwgYW5kIGNvbnNlcXVlbnRs
eSBjb21wbGFpbiBhYm91dCBtaXNzaW5nIGVudHJ5IHBvaW50IGRlZmluZWQgaW4KLS8vIHRoYXQg
bGlicmFyeSAoZmF0YWwgZXJyb3IgTE5LMTU2MTogZW50cnkgcG9pbnQgbXVzdCBiZQotLy8gZGVm
aW5lZCkuIFRoaXMgZHVtbXkgdGVzdCBrZWVwcyBndGVzdF9tYWluIGxpbmtlZCBpbi4KLVRFU1Qo
RHVtbXlUZXN0LCBDb21iaW5lSXNOb3RTdXBwb3J0ZWRPblRoaXNQbGF0Zm9ybSkge30KLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zYW1wbGVzL3NhbXBsZTlfdW5pdHRlc3QuY2MKaW5kZXggNTNm
OWFmNWJhMWRmYzI2OTU2NjA3OGYyMzZmNjk1NTk5ZGM1MmFkYS4uZTUwMmQwOGQ3M2U3ZDcwYmVk
ZTg2Y2JkNzExNzU0Y2QwOWRlODQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2FtcGxlcy9zYW1wbGU5X3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NhbXBsZXMvc2FtcGxlOV91bml0dGVzdC5jYwpAQCAtNDksMTYgKzQ5LDE2IEBAIG5hbWVz
cGFjZSB7CiBjbGFzcyBUZXJzZVByaW50ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5l
ciB7CiAgcHJpdmF0ZToKICAgLy8gQ2FsbGVkIGJlZm9yZSBhbnkgdGVzdCBhY3Rpdml0eSBzdGFy
dHMuCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8q
IHVuaXRfdGVzdCAqLykge30KKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qIHVuaXRfdGVzdCAqLykgb3ZlcnJpZGUge30KIAogICAvLyBDYWxsZWQgYWZ0ZXIgYWxs
IHRlc3QgYWN0aXZpdGllcyBoYXZlIGVuZGVkLgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3Jh
bUVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSB7CisgIHZvaWQgT25UZXN0UHJvZ3JhbUVu
ZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0KSBvdmVycmlkZSB7CiAgICAgZnByaW50ZihzdGRv
dXQsICJURVNUICVzXG4iLCB1bml0X3Rlc3QuUGFzc2VkKCkgPyAiUEFTU0VEIiA6ICJGQUlMRUQi
KTsKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgfQogCiAgIC8vIENhbGxlZCBiZWZvcmUgYSB0ZXN0
IHN0YXJ0cy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIHsKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBv
dmVycmlkZSB7CiAgICAgZnByaW50ZihzdGRvdXQsCiAgICAgICAgICAgICAiKioqIFRlc3QgJXMu
JXMgc3RhcnRpbmcuXG4iLAogICAgICAgICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCks
CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFRlcnNlUHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RF
dmVudExpc3RlbmVyIHsKICAgfQogCiAgIC8vIENhbGxlZCBhZnRlciBhIGZhaWxlZCBhc3NlcnRp
b24gb3IgYSBTVUNDRUVEKCkgaW52b2NhdGlvbi4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdFBhcnRS
ZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIHsKKyAgdm9pZCBP
blRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSBv
dmVycmlkZSB7CiAgICAgZnByaW50ZihzdGRvdXQsCiAgICAgICAgICAgICAiJXMgaW4gJXM6JWRc
biVzXG4iLAogICAgICAgICAgICAgdGVzdF9wYXJ0X3Jlc3VsdC5mYWlsZWQoKSA/ICIqKiogRmFp
bHVyZSIgOiAiU3VjY2VzcyIsCkBAIC03OCw3ICs3OCw3IEBAIGNsYXNzIFRlcnNlUHJpbnRlciA6
IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgfQogCiAgIC8vIENhbGxlZCBhZnRl
ciBhIHRlc3QgZW5kcy4KLSAgdmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvKSB7CisgIHZvaWQgT25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8p
IG92ZXJyaWRlIHsKICAgICBmcHJpbnRmKHN0ZG91dCwKICAgICAgICAgICAgICIqKiogVGVzdCAl
cy4lcyBlbmRpbmcuXG4iLAogICAgICAgICAgICAgdGVzdF9pbmZvLnRlc3RfY2FzZV9uYW1lKCks
CkBAIC0xMzUsMTAgKzEzNSwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK
ICAgLy8gVGhpcyBpcyBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBVbml0VGVzdCByZWZsZWN0aW9u
IEFQSSB0byBpbnNwZWN0IHRlc3QKICAgLy8gcmVzdWx0cy4gSGVyZSB3ZSBkaXNjb3VudCBmYWls
dXJlcyBmcm9tIHRoZSB0ZXN0cyB3ZSBleHBlY3RlZCB0byBmYWlsLgogICBpbnQgdW5leHBlY3Rl
ZGx5X2ZhaWxlZF90ZXN0cyA9IDA7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRv
dGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBjb25zdCBUZXN0Q2FzZSYgdGVzdF9j
YXNlID0gKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKTsKLSAgICBmb3IgKGludCBqID0gMDsgaiA8
IHRlc3RfY2FzZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraikgewotICAgICAgY29uc3QgVGVzdElu
Zm8mIHRlc3RfaW5mbyA9ICp0ZXN0X2Nhc2UuR2V0VGVzdEluZm8oaik7CisgIGZvciAoaW50IGkg
PSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAg
Y29uc3QgdGVzdGluZzo6VGVzdFN1aXRlJiB0ZXN0X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0
U3VpdGUoaSk7CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0X3N1aXRlLnRvdGFsX3Rlc3Rf
Y291bnQoKTsgKytqKSB7CisgICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvID0gKnRlc3Rf
c3VpdGUuR2V0VGVzdEluZm8oaik7CiAgICAgICAvLyBDb3VudHMgZmFpbGVkIHRlc3RzIHRoYXQg
d2VyZSBub3QgbWVhbnQgdG8gZmFpbCAodGhvc2Ugd2l0aG91dAogICAgICAgLy8gJ0ZhaWxzJyBp
biB0aGUgbmFtZSkuCiAgICAgICBpZiAodGVzdF9pbmZvLnJlc3VsdCgpLT5GYWlsZWQoKSAmJgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9SRUFETUUubWQgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTM1
OWZlZDkyMzJiNTA3YzQ0ZTU1YjQwMmFlNmU2NThiZjlhNjFmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9SRUFETUUubWQKQEAgLTAsMCArMSw1IEBA
CisjIFBsZWFzZSBOb3RlOgorCitGaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSBhcmUgbm8gbG9uZ2Vy
IHN1cHBvcnRlZCBieSB0aGUgbWFpbnRhaW5lcnMuIFRoZXkKK3JlcHJlc2VudCBtb3N0eSBoaXN0
b3JpY2FsIGFydGlmYWN0cyBhbmQgc3VwcG9ydGVkIGJ5IHRoZSBjb21tdW5pdHkgb25seS4gVGhl
cmUKK2lzIG5vIGd1YXJhbnRlZSB3aGF0c29ldmVyIHRoYXQgdGhlc2Ugc2NyaXB0cyBzdGlsbCB3
b3JrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9nZW5fZ3Rl
c3RfcHJlZF9pbXBsLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2NyaXB0cy9nZW5fZ3Rl
c3RfcHJlZF9pbXBsLnB5CmluZGV4IGI0M2VmZGY0MWU1YzAyNzQwZjcyYjM1NTMyYmU1Y2YwNDk3
OTQ4MzUuLmUwOWE2ZTAxNzc4ZDk3NGVhZDk3NmE1ZWRmNzlmYjVkNDM0YTM2MzIgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvZ2VuX2d0ZXN0X3ByZWRfaW1wbC5w
eQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3JpcHRzL2dlbl9ndGVzdF9wcmVkX2lt
cGwucHkKQEAgLTc4LDcgKzc4LDcgQEAgZGVmIEhlYWRlclByZWFtYmxlKG4pOgogICAgIH0KIAog
ICByZXR1cm4gKAotIiIiLy8gQ29weXJpZ2h0IDIwMDYsIEdvb2dsZSBJbmMuCisgICIiIi8vIENv
cHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgogLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTExMSw2ICsxMTEsOCBAQCBkZWYgSGVhZGVyUHJlYW1ibGUobik6CiAv
LyAnJShjb21tYW5kKXMnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKIC8vCiAvLyBJbXBsZW1lbnRz
IGEgZmFtaWx5IG9mIGdlbmVyaWMgcHJlZGljYXRlIGFzc2VydGlvbiBtYWNyb3MuCisvLyBHT09H
TEVURVNUX0NNMDAwMSBETyBOT1QgREVMRVRFCisKIAogI2lmbmRlZiBHVEVTVF9JTkNMVURFX0dU
RVNUX0dURVNUX1BSRURfSU1QTF9IXwogI2RlZmluZSBHVEVTVF9JTkNMVURFX0dURVNUX0dURVNU
X1BSRURfSU1QTF9IXwpAQCAtMjQ2LDggKzI0OCwxMCBAQCBBc3NlcnRpb25SZXN1bHQgQXNzZXJ0
UHJlZCUobilzSGVscGVyKGNvbnN0IGNoYXIqIHByZWRfdGV4dCIiIiAlIERFRlMKIAogICBpbXBs
ICs9ICcgPDwgIikgZXZhbHVhdGVzIHRvIGZhbHNlLCB3aGVyZSInCiAKLSAgaW1wbCArPSBJdGVy
KG4sICIiIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJcXG4iIDw8IGUlcyA8PCAi
IGV2YWx1YXRlcyB0byAiIDw8IHYlcyIiIikKKyAgaW1wbCArPSBJdGVyKAorICAgICAgbiwgIiIi
CisgICAgICA8PCAiXFxuIiA8PCBlJXMgPDwgIiBldmFsdWF0ZXMgdG8gIiA8PCA6OnRlc3Rpbmc6
OlByaW50VG9TdHJpbmcodiVzKSIiIgorICApCiAKICAgaW1wbCArPSAiIiI7CiB9CkBAIC0zMzMs
NyArMzM3LDcgQEAgZGVmIFVuaXRUZXN0UHJlYW1ibGUoKToKICAgICB9CiAKICAgcmV0dXJuICgK
LSIiIi8vIENvcHlyaWdodCAyMDA2LCBHb29nbGUgSW5jLgorICAiIiIvLyBDb3B5cmlnaHQgMjAw
NiwgR29vZ2xlIEluYy4KIC8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLwogLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC00MjcsNyArNDMxLDcgQEAgZGVmIFRlc3RzRm9yQXJpdHkobik6CiAgICAgfQogCiAgIHRl
c3RzID0gKAotIiIiLy8gU2FtcGxlIGZ1bmN0aW9ucy9mdW5jdG9ycyBmb3IgdGVzdGluZyAlKGFy
aXR5KXMgcHJlZGljYXRlIGFzc2VydGlvbnMuCisgICIiIi8vIFNhbXBsZSBmdW5jdGlvbnMvZnVu
Y3RvcnMgZm9yIHRlc3RpbmcgJShhcml0eSlzIHByZWRpY2F0ZSBhc3NlcnRpb25zLgogCiAvLyBB
ICUoYXJpdHkpcyBwcmVkaWNhdGUgZnVuY3Rpb24uCiB0ZW1wbGF0ZSA8JSh0eXBlcylzPgpAQCAt
NDM1LDkgKzQzOSw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uJShuKXMoJSh0dnMpcykgewogICByZXR1
cm4gJSh2X3N1bSlzID4gMDsKIH0KIAotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFy
ZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywgd2hpY2ggc29t
ZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBmdW5jdGlvbi4K
Ky8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGJlY2F1c2UgYSBjb21w
aWxlciBkb2Vzbid0IGhhdmUKKy8vIGEgY29udGV4dCB5ZXQgdG8ga25vdyB3aGljaCB0ZW1wbGF0
ZSBmdW5jdGlvbiBtdXN0IGJlIGluc3RhbnRpYXRlZC4KIGJvb2wgUHJlZEZ1bmN0aW9uJShuKXNJ
bnQoJShpbnRfdnMpcykgewogICByZXR1cm4gJSh2X3N1bSlzID4gMDsKIH0KQEAgLTUxMCw3ICs1
MTMsNyBAQCBzdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3IlKG4pcyB7CiAKIGNsYXNzIFByZWRpY2F0
ZSUobilzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1
YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3Rl
ZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsiIiIgJSBERUZTCiAK
QEAgLTUyMCw3ICs1MjMsNyBAQCBjbGFzcyBQcmVkaWNhdGUlKG4pc1Rlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAiIiIKIAogICB0ZXN0cyArPSAiIiIKLSAgdmlydHVhbCB2b2lkIFRlYXJE
b3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRo
YXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAv
LyBleGFjdGx5IG9uY2UuIiIiCiAKQEAgLTU0MCwxMCArNTQzLDEwIEBAIGNsYXNzIFByZWRpY2F0
ZSUobilzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgICB9CiAgIH0KIAotICAvLyB0
cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBydW4gdG8gZmluaXNoLgor
ICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRv
IHJ1biB0byBmaW5pc2guCiAgIHN0YXRpYyBib29sIGV4cGVjdGVkX3RvX2ZpbmlzaF87CiAKLSAg
Ly8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCisgIC8vIHRy
dWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24gZGlkIHJ1biB0byBmaW5pc2guCiAg
IHN0YXRpYyBib29sIGZpbmlzaGVkXzsKICIiIiAlIERFRlMKIApAQCAtNTcyLDEyICs1NzUsMTIg
QEAgdHlwZWRlZiBQcmVkaWNhdGUlKG4pc1Rlc3QgQVNTRVJUX1BSRUQlKG4pc1Rlc3Q7CiAgICAg
IiIiUmV0dXJucyB0aGUgdGVzdCBmb3IgYSBwcmVkaWNhdGUgYXNzZXJ0aW9uIG1hY3JvLgogCiAg
ICAgQXJnczoKLSAgICAgIHVzZV9mb3JtYXQ6ICAgICB0cnVlIGlmZiB0aGUgYXNzZXJ0aW9uIGlz
IGEgKl9QUkVEX0ZPUk1BVCouCi0gICAgICB1c2VfYXNzZXJ0OiAgICAgdHJ1ZSBpZmYgdGhlIGFz
c2VydGlvbiBpcyBhIEFTU0VSVF8qLgotICAgICAgZXhwZWN0X2ZhaWx1cmU6IHRydWUgaWZmIHRo
ZSBhc3NlcnRpb24gaXMgZXhwZWN0ZWQgdG8gZmFpbC4KLSAgICAgIHVzZV9mdW5jdG9yOiAgICB0
cnVlIGlmZiB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGFzc2VydGlvbiBpcworICAgICAgdXNl
X2Zvcm1hdDogICAgIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFzc2VydGlvbiBpcyBhICpfUFJF
RF9GT1JNQVQqLgorICAgICAgdXNlX2Fzc2VydDogICAgIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhl
IGFzc2VydGlvbiBpcyBhIEFTU0VSVF8qLgorICAgICAgZXhwZWN0X2ZhaWx1cmU6IHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIGFzc2VydGlvbiBpcyBleHBlY3RlZCB0byBmYWlsLgorICAgICAgdXNl
X2Z1bmN0b3I6ICAgIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRo
ZSBhc3NlcnRpb24gaXMKICAgICAgICAgICAgICAgICAgICAgICBhIGZ1bmN0b3IgKGFzIG9wcG9z
ZWQgdG8gYSBmdW5jdGlvbikKLSAgICAgIHVzZV91c2VyX3R5cGU6ICB0cnVlIGlmZiB0aGUgcHJl
ZGljYXRlIGZ1bmN0b3IvZnVuY3Rpb24gdGFrZXMKKyAgICAgIHVzZV91c2VyX3R5cGU6ICB0cnVl
IGlmIGFuZCBvbmx5IGlmIHRoZSBwcmVkaWNhdGUgZnVuY3Rvci9mdW5jdGlvbiB0YWtlcwogICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50KHMpIG9mIGEgdXNlci1kZWZpbmVkIHR5cGUuCiAK
ICAgICBFeGFtcGxlOgpAQCAtNTg4LDcgKzU5MSw3IEBAIHR5cGVkZWYgUHJlZGljYXRlJShuKXNU
ZXN0IEFTU0VSVF9QUkVEJShuKXNUZXN0OwogCiAgICAgaWYgdXNlX2Fzc2VydDoKICAgICAgIGFz
c3J0ID0gJ0FTU0VSVCcgICMgJ2Fzc2VydCcgaXMgcmVzZXJ2ZWQsIHNvIHdlIGNhbm5vdCB1c2UK
LSAgICAgICAgICAgICAgICAgICAgICAgICMgdGhhdCBpZGVudGlmaWVyIGhlcmUuCisgICAgICAj
IHRoYXQgaWRlbnRpZmllciBoZXJlLgogICAgIGVsc2U6CiAgICAgICBhc3NydCA9ICdFWFBFQ1Qn
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvcHVtcC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggNWVmYjY1M2MyMDdkMWYxYzJhZWNjNGQ2OTBiZjczMmUzYzFkNzFhYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zY3JpcHRzL3B1bXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NTUgKzAs
MCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDA4LCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIiIicHVt
cCB2MC4yLjAgLSBQcmV0dHkgVXNlZnVsIGZvciBNZXRhIFByb2dyYW1taW5nLgotCi1BIHRvb2wg
Zm9yIHByZXByb2Nlc3NvciBtZXRhIHByb2dyYW1taW5nLiAgVXNlZnVsIGZvciBnZW5lcmF0aW5n
Ci1yZXBldGl0aXZlIGJvaWxlcnBsYXRlIGNvZGUuICBFc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3Jp
dGluZyBDKysKLWNsYXNzZXMsIGZ1bmN0aW9ucywgbWFjcm9zLCBhbmQgdGVtcGxhdGVzIHRoYXQg
bmVlZCB0byB3b3JrIHdpdGgKLXZhcmlvdXMgbnVtYmVyIG9mIGFyZ3VtZW50cy4KLQotVVNBR0U6
Ci0gICAgICAgcHVtcC5weSBTT1VSQ0VfRklMRQotCi1FWEFNUExFUzoKLSAgICAgICBwdW1wLnB5
IGZvby5jYy5wdW1wCi0gICAgICAgICBDb252ZXJ0cyBmb28uY2MucHVtcCB0byBmb28uY2MuCi0K
LUdSQU1NQVI6Ci0gICAgICAgQ09ERSA6Oj0gQVRPTUlDX0NPREUqCi0gICAgICAgQVRPTUlDX0NP
REUgOjo9ICR2YXIgSUQgPSBFWFBSRVNTSU9OCi0gICAgICAgICAgIHwgJHZhciBJRCA9IFtbIENP
REUgXV0KLSAgICAgICAgICAgfCAkcmFuZ2UgSUQgRVhQUkVTU0lPTi4uRVhQUkVTU0lPTgotICAg
ICAgICAgICB8ICRmb3IgSUQgU0VQQVJBVE9SIFtbIENPREUgXV0KLSAgICAgICAgICAgfCAkKCQp
Ci0gICAgICAgICAgIHwgJElECi0gICAgICAgICAgIHwgJChFWFBSRVNTSU9OKQotICAgICAgICAg
ICB8ICRpZiBFWFBSRVNTSU9OIFtbIENPREUgXV0gRUxTRV9CUkFOQ0gKLSAgICAgICAgICAgfCBb
WyBDT0RFIF1dCi0gICAgICAgICAgIHwgUkFXX0NPREUKLSAgICAgICBTRVBBUkFUT1IgOjo9IFJB
V19DT0RFIHwgRU1QVFkKLSAgICAgICBFTFNFX0JSQU5DSCA6Oj0gJGVsc2UgW1sgQ09ERSBdXQot
ICAgICAgICAgICB8ICRlbGlmIEVYUFJFU1NJT04gW1sgQ09ERSBdXSBFTFNFX0JSQU5DSAotICAg
ICAgICAgICB8IEVNUFRZCi0gICAgICAgRVhQUkVTU0lPTiBoYXMgUHl0aG9uIHN5bnRheC4KLSIi
IgotCi1fX2F1dGhvcl9fID0gJ3dhbkBnb29nbGUuY29tIChaaGFueW9uZyBXYW4pJwotCi1pbXBv
cnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHN5cwotCi0KLVRPS0VOX1RBQkxFID0gWwotICAgIChy
ZS5jb21waWxlKHInXCR2YXJccysnKSwgJyR2YXInKSwKLSAgICAocmUuY29tcGlsZShyJ1wkZWxp
ZlxzKycpLCAnJGVsaWYnKSwKLSAgICAocmUuY29tcGlsZShyJ1wkZWxzZVxzKycpLCAnJGVsc2Un
KSwKLSAgICAocmUuY29tcGlsZShyJ1wkZm9yXHMrJyksICckZm9yJyksCi0gICAgKHJlLmNvbXBp
bGUocidcJGlmXHMrJyksICckaWYnKSwKLSAgICAocmUuY29tcGlsZShyJ1wkcmFuZ2VccysnKSwg
JyRyYW5nZScpLAotICAgIChyZS5jb21waWxlKHInXCRbX0EtWmEtel1cdyonKSwgJyRpZCcpLAot
ICAgIChyZS5jb21waWxlKHInXCRcKFwkXCknKSwgJyQoJCknKSwKLSAgICAocmUuY29tcGlsZShy
J1wkJyksICckJyksCi0gICAgKHJlLmNvbXBpbGUocidcW1xbXG4/JyksICdbWycpLAotICAgIChy
ZS5jb21waWxlKHInXF1cXVxuPycpLCAnXV0nKSwKLSAgICBdCi0KLQotY2xhc3MgQ3Vyc29yOgot
ICAiIiJSZXByZXNlbnRzIGEgcG9zaXRpb24gKGxpbmUgYW5kIGNvbHVtbikgaW4gYSB0ZXh0IGZp
bGUuIiIiCi0KLSAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmU9LTEsIGNvbHVtbj0tMSk6Ci0gICAg
c2VsZi5saW5lID0gbGluZQotICAgIHNlbGYuY29sdW1uID0gY29sdW1uCi0KLSAgZGVmIF9fZXFf
XyhzZWxmLCByaHMpOgotICAgIHJldHVybiBzZWxmLmxpbmUgPT0gcmhzLmxpbmUgYW5kIHNlbGYu
Y29sdW1uID09IHJocy5jb2x1bW4KLQotICBkZWYgX19uZV9fKHNlbGYsIHJocyk6Ci0gICAgcmV0
dXJuIG5vdCBzZWxmID09IHJocwotCi0gIGRlZiBfX2x0X18oc2VsZiwgcmhzKToKLSAgICByZXR1
cm4gc2VsZi5saW5lIDwgcmhzLmxpbmUgb3IgKAotICAgICAgICBzZWxmLmxpbmUgPT0gcmhzLmxp
bmUgYW5kIHNlbGYuY29sdW1uIDwgcmhzLmNvbHVtbikKLQotICBkZWYgX19sZV9fKHNlbGYsIHJo
cyk6Ci0gICAgcmV0dXJuIHNlbGYgPCByaHMgb3Igc2VsZiA9PSByaHMKLQotICBkZWYgX19ndF9f
KHNlbGYsIHJocyk6Ci0gICAgcmV0dXJuIHJocyA8IHNlbGYKLQotICBkZWYgX19nZV9fKHNlbGYs
IHJocyk6Ci0gICAgcmV0dXJuIHJocyA8PSBzZWxmCi0KLSAgZGVmIF9fc3RyX18oc2VsZik6Ci0g
ICAgaWYgc2VsZiA9PSBFb2YoKToKLSAgICAgIHJldHVybiAnRU9GJwotICAgIGVsc2U6Ci0gICAg
ICByZXR1cm4gJyVzKCVzKScgJSAoc2VsZi5saW5lICsgMSwgc2VsZi5jb2x1bW4pCi0KLSAgZGVm
IF9fYWRkX18oc2VsZiwgb2Zmc2V0KToKLSAgICByZXR1cm4gQ3Vyc29yKHNlbGYubGluZSwgc2Vs
Zi5jb2x1bW4gKyBvZmZzZXQpCi0KLSAgZGVmIF9fc3ViX18oc2VsZiwgb2Zmc2V0KToKLSAgICBy
ZXR1cm4gQ3Vyc29yKHNlbGYubGluZSwgc2VsZi5jb2x1bW4gLSBvZmZzZXQpCi0KLSAgZGVmIENs
b25lKHNlbGYpOgotICAgICIiIlJldHVybnMgYSBjb3B5IG9mIHNlbGYuIiIiCi0KLSAgICByZXR1
cm4gQ3Vyc29yKHNlbGYubGluZSwgc2VsZi5jb2x1bW4pCi0KLQotIyBTcGVjaWFsIGN1cnNvciB0
byBpbmRpY2F0ZSB0aGUgZW5kLW9mLWZpbGUuCi1kZWYgRW9mKCk6Ci0gICIiIlJldHVybnMgdGhl
IHNwZWNpYWwgY3Vyc29yIHRvIGRlbm90ZSB0aGUgZW5kLW9mLWZpbGUuIiIiCi0gIHJldHVybiBD
dXJzb3IoLTEsIC0xKQotCi0KLWNsYXNzIFRva2VuOgotICAiIiJSZXByZXNlbnRzIGEgdG9rZW4g
aW4gYSBQdW1wIHNvdXJjZSBmaWxlLiIiIgotCi0gIGRlZiBfX2luaXRfXyhzZWxmLCBzdGFydD1O
b25lLCBlbmQ9Tm9uZSwgdmFsdWU9Tm9uZSwgdG9rZW5fdHlwZT1Ob25lKToKLSAgICBpZiBzdGFy
dCBpcyBOb25lOgotICAgICAgc2VsZi5zdGFydCA9IEVvZigpCi0gICAgZWxzZToKLSAgICAgIHNl
bGYuc3RhcnQgPSBzdGFydAotICAgIGlmIGVuZCBpcyBOb25lOgotICAgICAgc2VsZi5lbmQgPSBF
b2YoKQotICAgIGVsc2U6Ci0gICAgICBzZWxmLmVuZCA9IGVuZAotICAgIHNlbGYudmFsdWUgPSB2
YWx1ZQotICAgIHNlbGYudG9rZW5fdHlwZSA9IHRva2VuX3R5cGUKLQotICBkZWYgX19zdHJfXyhz
ZWxmKToKLSAgICByZXR1cm4gJ1Rva2VuIEAlczogXCclc1wnIHR5cGU9JXMnICUgKAotICAgICAg
ICBzZWxmLnN0YXJ0LCBzZWxmLnZhbHVlLCBzZWxmLnRva2VuX3R5cGUpCi0KLSAgZGVmIENsb25l
KHNlbGYpOgotICAgICIiIlJldHVybnMgYSBjb3B5IG9mIHNlbGYuIiIiCi0KLSAgICByZXR1cm4g
VG9rZW4oc2VsZi5zdGFydC5DbG9uZSgpLCBzZWxmLmVuZC5DbG9uZSgpLCBzZWxmLnZhbHVlLAot
ICAgICAgICAgICAgICAgICBzZWxmLnRva2VuX3R5cGUpCi0KLQotZGVmIFN0YXJ0c1dpdGgobGlu
ZXMsIHBvcywgc3RyaW5nKToKLSAgIiIiUmV0dXJucyBUcnVlIGlmZiB0aGUgZ2l2ZW4gcG9zaXRp
b24gaW4gbGluZXMgc3RhcnRzIHdpdGggJ3N0cmluZycuIiIiCi0KLSAgcmV0dXJuIGxpbmVzW3Bv
cy5saW5lXVtwb3MuY29sdW1uOl0uc3RhcnRzd2l0aChzdHJpbmcpCi0KLQotZGVmIEZpbmRGaXJz
dEluTGluZShsaW5lLCB0b2tlbl90YWJsZSk6Ci0gIGJlc3RfbWF0Y2hfc3RhcnQgPSAtMQotICBm
b3IgKHJlZ2V4LCB0b2tlbl90eXBlKSBpbiB0b2tlbl90YWJsZToKLSAgICBtID0gcmVnZXguc2Vh
cmNoKGxpbmUpCi0gICAgaWYgbToKLSAgICAgICMgV2UgZm91bmQgcmVnZXggaW4gbGluZXMKLSAg
ICAgIGlmIGJlc3RfbWF0Y2hfc3RhcnQgPCAwIG9yIG0uc3RhcnQoKSA8IGJlc3RfbWF0Y2hfc3Rh
cnQ6Ci0gICAgICAgIGJlc3RfbWF0Y2hfc3RhcnQgPSBtLnN0YXJ0KCkKLSAgICAgICAgYmVzdF9t
YXRjaF9sZW5ndGggPSBtLmVuZCgpIC0gbS5zdGFydCgpCi0gICAgICAgIGJlc3RfbWF0Y2hfdG9r
ZW5fdHlwZSA9IHRva2VuX3R5cGUKLQotICBpZiBiZXN0X21hdGNoX3N0YXJ0IDwgMDoKLSAgICBy
ZXR1cm4gTm9uZQotCi0gIHJldHVybiAoYmVzdF9tYXRjaF9zdGFydCwgYmVzdF9tYXRjaF9sZW5n
dGgsIGJlc3RfbWF0Y2hfdG9rZW5fdHlwZSkKLQotCi1kZWYgRmluZEZpcnN0KGxpbmVzLCB0b2tl
bl90YWJsZSwgY3Vyc29yKToKLSAgIiIiRmluZHMgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYW55
IHN0cmluZyBpbiBzdHJpbmdzIGluIGxpbmVzLiIiIgotCi0gIHN0YXJ0ID0gY3Vyc29yLkNsb25l
KCkKLSAgY3VyX2xpbmVfbnVtYmVyID0gY3Vyc29yLmxpbmUKLSAgZm9yIGxpbmUgaW4gbGluZXNb
c3RhcnQubGluZTpdOgotICAgIGlmIGN1cl9saW5lX251bWJlciA9PSBzdGFydC5saW5lOgotICAg
ICAgbGluZSA9IGxpbmVbc3RhcnQuY29sdW1uOl0KLSAgICBtID0gRmluZEZpcnN0SW5MaW5lKGxp
bmUsIHRva2VuX3RhYmxlKQotICAgIGlmIG06Ci0gICAgICAjIFdlIGZvdW5kIGEgcmVnZXggaW4g
bGluZS4KLSAgICAgIChzdGFydF9jb2x1bW4sIGxlbmd0aCwgdG9rZW5fdHlwZSkgPSBtCi0gICAg
ICBpZiBjdXJfbGluZV9udW1iZXIgPT0gc3RhcnQubGluZToKLSAgICAgICAgc3RhcnRfY29sdW1u
ICs9IHN0YXJ0LmNvbHVtbgotICAgICAgZm91bmRfc3RhcnQgPSBDdXJzb3IoY3VyX2xpbmVfbnVt
YmVyLCBzdGFydF9jb2x1bW4pCi0gICAgICBmb3VuZF9lbmQgPSBmb3VuZF9zdGFydCArIGxlbmd0
aAotICAgICAgcmV0dXJuIE1ha2VUb2tlbihsaW5lcywgZm91bmRfc3RhcnQsIGZvdW5kX2VuZCwg
dG9rZW5fdHlwZSkKLSAgICBjdXJfbGluZV9udW1iZXIgKz0gMQotICAjIFdlIGZhaWxlZCB0byBm
aW5kIHN0ciBpbiBsaW5lcwotICByZXR1cm4gTm9uZQotCi0KLWRlZiBTdWJTdHJpbmcobGluZXMs
IHN0YXJ0LCBlbmQpOgotICAiIiJSZXR1cm5zIGEgc3Vic3RyaW5nIGluIGxpbmVzLiIiIgotCi0g
IGlmIGVuZCA9PSBFb2YoKToKLSAgICBlbmQgPSBDdXJzb3IobGVuKGxpbmVzKSAtIDEsIGxlbihs
aW5lc1stMV0pKQotCi0gIGlmIHN0YXJ0ID49IGVuZDoKLSAgICByZXR1cm4gJycKLQotICBpZiBz
dGFydC5saW5lID09IGVuZC5saW5lOgotICAgIHJldHVybiBsaW5lc1tzdGFydC5saW5lXVtzdGFy
dC5jb2x1bW46ZW5kLmNvbHVtbl0KLQotICByZXN1bHRfbGluZXMgPSAoW2xpbmVzW3N0YXJ0Lmxp
bmVdW3N0YXJ0LmNvbHVtbjpdXSArCi0gICAgICAgICAgICAgICAgICBsaW5lc1tzdGFydC5saW5l
ICsgMTplbmQubGluZV0gKwotICAgICAgICAgICAgICAgICAgW2xpbmVzW2VuZC5saW5lXVs6ZW5k
LmNvbHVtbl1dKQotICByZXR1cm4gJycuam9pbihyZXN1bHRfbGluZXMpCi0KLQotZGVmIFN0cmlw
TWV0YUNvbW1lbnRzKHN0cik6Ci0gICIiIlN0cmlwIG1ldGEgY29tbWVudHMgZnJvbSBlYWNoIGxp
bmUgaW4gdGhlIGdpdmVuIHN0cmluZy4iIiIKLQotICAjIEZpcnN0LCBjb21wbGV0ZWx5IHJlbW92
ZSBsaW5lcyBjb250YWluaW5nIG5vdGhpbmcgYnV0IGEgbWV0YQotICAjIGNvbW1lbnQsIGluY2x1
ZGluZyB0aGUgdHJhaWxpbmcgXG4uCi0gIHN0ciA9IHJlLnN1YihyJ15ccypcJFwkLipcbicsICcn
LCBzdHIpCi0KLSAgIyBUaGVuLCByZW1vdmUgbWV0YSBjb21tZW50cyBmcm9tIGNvbnRlbnRmdWwg
bGluZXMuCi0gIHJldHVybiByZS5zdWIocidccypcJFwkLionLCAnJywgc3RyKQotCi0KLWRlZiBN
YWtlVG9rZW4obGluZXMsIHN0YXJ0LCBlbmQsIHRva2VuX3R5cGUpOgotICAiIiJDcmVhdGVzIGEg
bmV3IGluc3RhbmNlIG9mIFRva2VuLiIiIgotCi0gIHJldHVybiBUb2tlbihzdGFydCwgZW5kLCBT
dWJTdHJpbmcobGluZXMsIHN0YXJ0LCBlbmQpLCB0b2tlbl90eXBlKQotCi0KLWRlZiBQYXJzZVRv
a2VuKGxpbmVzLCBwb3MsIHJlZ2V4LCB0b2tlbl90eXBlKToKLSAgbGluZSA9IGxpbmVzW3Bvcy5s
aW5lXVtwb3MuY29sdW1uOl0KLSAgbSA9IHJlZ2V4LnNlYXJjaChsaW5lKQotICBpZiBtIGFuZCBu
b3QgbS5zdGFydCgpOgotICAgIHJldHVybiBNYWtlVG9rZW4obGluZXMsIHBvcywgcG9zICsgbS5l
bmQoKSwgdG9rZW5fdHlwZSkKLSAgZWxzZToKLSAgICBwcmludCAnRVJST1I6ICVzIGV4cGVjdGVk
IGF0ICVzLicgJSAodG9rZW5fdHlwZSwgcG9zKQotICAgIHN5cy5leGl0KDEpCi0KLQotSURfUkVH
RVggPSByZS5jb21waWxlKHInW19BLVphLXpdXHcqJykKLUVRX1JFR0VYID0gcmUuY29tcGlsZShy
Jz0nKQotUkVTVF9PRl9MSU5FX1JFR0VYID0gcmUuY29tcGlsZShyJy4qPyg/PSR8XCRcJCknKQot
T1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYID0gcmUuY29tcGlsZShyJ1xzKicpCi1XSElURV9T
UEFDRV9SRUdFWCA9IHJlLmNvbXBpbGUocidccycpCi1ET1RfRE9UX1JFR0VYID0gcmUuY29tcGls
ZShyJ1wuXC4nKQotCi0KLWRlZiBTa2lwKGxpbmVzLCBwb3MsIHJlZ2V4KToKLSAgbGluZSA9IGxp
bmVzW3Bvcy5saW5lXVtwb3MuY29sdW1uOl0KLSAgbSA9IHJlLnNlYXJjaChyZWdleCwgbGluZSkK
LSAgaWYgbSBhbmQgbm90IG0uc3RhcnQoKToKLSAgICByZXR1cm4gcG9zICsgbS5lbmQoKQotICBl
bHNlOgotICAgIHJldHVybiBwb3MKLQotCi1kZWYgU2tpcFVudGlsKGxpbmVzLCBwb3MsIHJlZ2V4
LCB0b2tlbl90eXBlKToKLSAgbGluZSA9IGxpbmVzW3Bvcy5saW5lXVtwb3MuY29sdW1uOl0KLSAg
bSA9IHJlLnNlYXJjaChyZWdleCwgbGluZSkKLSAgaWYgbToKLSAgICByZXR1cm4gcG9zICsgbS5z
dGFydCgpCi0gIGVsc2U6Ci0gICAgcHJpbnQgKCdFUlJPUjogJXMgZXhwZWN0ZWQgb24gbGluZSAl
cyBhZnRlciBjb2x1bW4gJXMuJyAlCi0gICAgICAgICAgICh0b2tlbl90eXBlLCBwb3MubGluZSAr
IDEsIHBvcy5jb2x1bW4pKQotICAgIHN5cy5leGl0KDEpCi0KLQotZGVmIFBhcnNlRXhwVG9rZW5J
blBhcmVucyhsaW5lcywgcG9zKToKLSAgZGVmIFBhcnNlSW5QYXJlbnMocG9zKToKLSAgICBwb3Mg
PSBTa2lwKGxpbmVzLCBwb3MsIE9QVElPTkFMX1dISVRFX1NQQUNFU19SRUdFWCkKLSAgICBwb3Mg
PSBTa2lwKGxpbmVzLCBwb3MsIHInXCgnKQotICAgIHBvcyA9IFBhcnNlKHBvcykKLSAgICBwb3Mg
PSBTa2lwKGxpbmVzLCBwb3MsIHInXCknKQotICAgIHJldHVybiBwb3MKLQotICBkZWYgUGFyc2Uo
cG9zKToKLSAgICBwb3MgPSBTa2lwVW50aWwobGluZXMsIHBvcywgcidcKHxcKScsICcpJykKLSAg
ICBpZiBTdWJTdHJpbmcobGluZXMsIHBvcywgcG9zICsgMSkgPT0gJygnOgotICAgICAgcG9zID0g
UGFyc2UocG9zICsgMSkKLSAgICAgIHBvcyA9IFNraXAobGluZXMsIHBvcywgcidcKScpCi0gICAg
ICByZXR1cm4gUGFyc2UocG9zKQotICAgIGVsc2U6Ci0gICAgICByZXR1cm4gcG9zCi0KLSAgc3Rh
cnQgPSBwb3MuQ2xvbmUoKQotICBwb3MgPSBQYXJzZUluUGFyZW5zKHBvcykKLSAgcmV0dXJuIE1h
a2VUb2tlbihsaW5lcywgc3RhcnQsIHBvcywgJ2V4cCcpCi0KLQotZGVmIFJTdHJpcE5ld0xpbmVG
cm9tVG9rZW4odG9rZW4pOgotICBpZiB0b2tlbi52YWx1ZS5lbmRzd2l0aCgnXG4nKToKLSAgICBy
ZXR1cm4gVG9rZW4odG9rZW4uc3RhcnQsIHRva2VuLmVuZCwgdG9rZW4udmFsdWVbOi0xXSwgdG9r
ZW4udG9rZW5fdHlwZSkKLSAgZWxzZToKLSAgICByZXR1cm4gdG9rZW4KLQotCi1kZWYgVG9rZW5p
emVMaW5lcyhsaW5lcywgcG9zKToKLSAgd2hpbGUgVHJ1ZToKLSAgICBmb3VuZCA9IEZpbmRGaXJz
dChsaW5lcywgVE9LRU5fVEFCTEUsIHBvcykKLSAgICBpZiBub3QgZm91bmQ6Ci0gICAgICB5aWVs
ZCBNYWtlVG9rZW4obGluZXMsIHBvcywgRW9mKCksICdjb2RlJykKLSAgICAgIHJldHVybgotCi0g
ICAgaWYgZm91bmQuc3RhcnQgPT0gcG9zOgotICAgICAgcHJldl90b2tlbiA9IE5vbmUKLSAgICAg
IHByZXZfdG9rZW5fcnN0cmlwcGVkID0gTm9uZQotICAgIGVsc2U6Ci0gICAgICBwcmV2X3Rva2Vu
ID0gTWFrZVRva2VuKGxpbmVzLCBwb3MsIGZvdW5kLnN0YXJ0LCAnY29kZScpCi0gICAgICBwcmV2
X3Rva2VuX3JzdHJpcHBlZCA9IFJTdHJpcE5ld0xpbmVGcm9tVG9rZW4ocHJldl90b2tlbikKLQot
ICAgIGlmIGZvdW5kLnRva2VuX3R5cGUgPT0gJyR2YXInOgotICAgICAgaWYgcHJldl90b2tlbl9y
c3RyaXBwZWQ6Ci0gICAgICAgIHlpZWxkIHByZXZfdG9rZW5fcnN0cmlwcGVkCi0gICAgICB5aWVs
ZCBmb3VuZAotICAgICAgaWRfdG9rZW4gPSBQYXJzZVRva2VuKGxpbmVzLCBmb3VuZC5lbmQsIElE
X1JFR0VYLCAnaWQnKQotICAgICAgeWllbGQgaWRfdG9rZW4KLSAgICAgIHBvcyA9IFNraXAobGlu
ZXMsIGlkX3Rva2VuLmVuZCwgT1BUSU9OQUxfV0hJVEVfU1BBQ0VTX1JFR0VYKQotCi0gICAgICBl
cV90b2tlbiA9IFBhcnNlVG9rZW4obGluZXMsIHBvcywgRVFfUkVHRVgsICc9JykKLSAgICAgIHlp
ZWxkIGVxX3Rva2VuCi0gICAgICBwb3MgPSBTa2lwKGxpbmVzLCBlcV90b2tlbi5lbmQsIHInXHMq
JykKLQotICAgICAgaWYgU3ViU3RyaW5nKGxpbmVzLCBwb3MsIHBvcyArIDIpICE9ICdbWyc6Ci0g
ICAgICAgIGV4cF90b2tlbiA9IFBhcnNlVG9rZW4obGluZXMsIHBvcywgUkVTVF9PRl9MSU5FX1JF
R0VYLCAnZXhwJykKLSAgICAgICAgeWllbGQgZXhwX3Rva2VuCi0gICAgICAgIHBvcyA9IEN1cnNv
cihleHBfdG9rZW4uZW5kLmxpbmUgKyAxLCAwKQotICAgIGVsaWYgZm91bmQudG9rZW5fdHlwZSA9
PSAnJGZvcic6Ci0gICAgICBpZiBwcmV2X3Rva2VuX3JzdHJpcHBlZDoKLSAgICAgICAgeWllbGQg
cHJldl90b2tlbl9yc3RyaXBwZWQKLSAgICAgIHlpZWxkIGZvdW5kCi0gICAgICBpZF90b2tlbiA9
IFBhcnNlVG9rZW4obGluZXMsIGZvdW5kLmVuZCwgSURfUkVHRVgsICdpZCcpCi0gICAgICB5aWVs
ZCBpZF90b2tlbgotICAgICAgcG9zID0gU2tpcChsaW5lcywgaWRfdG9rZW4uZW5kLCBXSElURV9T
UEFDRV9SRUdFWCkKLSAgICBlbGlmIGZvdW5kLnRva2VuX3R5cGUgPT0gJyRyYW5nZSc6Ci0gICAg
ICBpZiBwcmV2X3Rva2VuX3JzdHJpcHBlZDoKLSAgICAgICAgeWllbGQgcHJldl90b2tlbl9yc3Ry
aXBwZWQKLSAgICAgIHlpZWxkIGZvdW5kCi0gICAgICBpZF90b2tlbiA9IFBhcnNlVG9rZW4obGlu
ZXMsIGZvdW5kLmVuZCwgSURfUkVHRVgsICdpZCcpCi0gICAgICB5aWVsZCBpZF90b2tlbgotICAg
ICAgcG9zID0gU2tpcChsaW5lcywgaWRfdG9rZW4uZW5kLCBPUFRJT05BTF9XSElURV9TUEFDRVNf
UkVHRVgpCi0KLSAgICAgIGRvdHNfcG9zID0gU2tpcFVudGlsKGxpbmVzLCBwb3MsIERPVF9ET1Rf
UkVHRVgsICcuLicpCi0gICAgICB5aWVsZCBNYWtlVG9rZW4obGluZXMsIHBvcywgZG90c19wb3Ms
ICdleHAnKQotICAgICAgeWllbGQgTWFrZVRva2VuKGxpbmVzLCBkb3RzX3BvcywgZG90c19wb3Mg
KyAyLCAnLi4nKQotICAgICAgcG9zID0gZG90c19wb3MgKyAyCi0gICAgICBuZXdfcG9zID0gQ3Vy
c29yKHBvcy5saW5lICsgMSwgMCkKLSAgICAgIHlpZWxkIE1ha2VUb2tlbihsaW5lcywgcG9zLCBu
ZXdfcG9zLCAnZXhwJykKLSAgICAgIHBvcyA9IG5ld19wb3MKLSAgICBlbGlmIGZvdW5kLnRva2Vu
X3R5cGUgPT0gJyQnOgotICAgICAgaWYgcHJldl90b2tlbjoKLSAgICAgICAgeWllbGQgcHJldl90
b2tlbgotICAgICAgeWllbGQgZm91bmQKLSAgICAgIGV4cF90b2tlbiA9IFBhcnNlRXhwVG9rZW5J
blBhcmVucyhsaW5lcywgZm91bmQuZW5kKQotICAgICAgeWllbGQgZXhwX3Rva2VuCi0gICAgICBw
b3MgPSBleHBfdG9rZW4uZW5kCi0gICAgZWxpZiAoZm91bmQudG9rZW5fdHlwZSA9PSAnXV0nIG9y
IGZvdW5kLnRva2VuX3R5cGUgPT0gJyRpZicgb3IKLSAgICAgICAgICBmb3VuZC50b2tlbl90eXBl
ID09ICckZWxpZicgb3IgZm91bmQudG9rZW5fdHlwZSA9PSAnJGVsc2UnKToKLSAgICAgIGlmIHBy
ZXZfdG9rZW5fcnN0cmlwcGVkOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuX3JzdHJpcHBlZAot
ICAgICAgeWllbGQgZm91bmQKLSAgICAgIHBvcyA9IGZvdW5kLmVuZAotICAgIGVsc2U6Ci0gICAg
ICBpZiBwcmV2X3Rva2VuOgotICAgICAgICB5aWVsZCBwcmV2X3Rva2VuCi0gICAgICB5aWVsZCBm
b3VuZAotICAgICAgcG9zID0gZm91bmQuZW5kCi0KLQotZGVmIFRva2VuaXplKHMpOgotICAiIiJB
IGdlbmVyYXRvciB0aGF0IHlpZWxkcyB0aGUgdG9rZW5zIGluIHRoZSBnaXZlbiBzdHJpbmcuIiIi
Ci0gIGlmIHMgIT0gJyc6Ci0gICAgbGluZXMgPSBzLnNwbGl0bGluZXMoVHJ1ZSkKLSAgICBmb3Ig
dG9rZW4gaW4gVG9rZW5pemVMaW5lcyhsaW5lcywgQ3Vyc29yKDAsIDApKToKLSAgICAgIHlpZWxk
IHRva2VuCi0KLQotY2xhc3MgQ29kZU5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBhdG9taWNf
Y29kZV9saXN0PU5vbmUpOgotICAgIHNlbGYuYXRvbWljX2NvZGUgPSBhdG9taWNfY29kZV9saXN0
Ci0KLQotY2xhc3MgVmFyTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGlkZW50aWZpZXI9Tm9u
ZSwgYXRvbWljX2NvZGU9Tm9uZSk6Ci0gICAgc2VsZi5pZGVudGlmaWVyID0gaWRlbnRpZmllcgot
ICAgIHNlbGYuYXRvbWljX2NvZGUgPSBhdG9taWNfY29kZQotCi0KLWNsYXNzIFJhbmdlTm9kZToK
LSAgZGVmIF9faW5pdF9fKHNlbGYsIGlkZW50aWZpZXI9Tm9uZSwgZXhwMT1Ob25lLCBleHAyPU5v
bmUpOgotICAgIHNlbGYuaWRlbnRpZmllciA9IGlkZW50aWZpZXIKLSAgICBzZWxmLmV4cDEgPSBl
eHAxCi0gICAgc2VsZi5leHAyID0gZXhwMgotCi0KLWNsYXNzIEZvck5vZGU6Ci0gIGRlZiBfX2lu
aXRfXyhzZWxmLCBpZGVudGlmaWVyPU5vbmUsIHNlcD1Ob25lLCBjb2RlPU5vbmUpOgotICAgIHNl
bGYuaWRlbnRpZmllciA9IGlkZW50aWZpZXIKLSAgICBzZWxmLnNlcCA9IHNlcAotICAgIHNlbGYu
Y29kZSA9IGNvZGUKLQotCi1jbGFzcyBFbHNlTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGVs
c2VfYnJhbmNoPU5vbmUpOgotICAgIHNlbGYuZWxzZV9icmFuY2ggPSBlbHNlX2JyYW5jaAotCi0K
LWNsYXNzIElmTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cD1Ob25lLCB0aGVuX2JyYW5j
aD1Ob25lLCBlbHNlX2JyYW5jaD1Ob25lKToKLSAgICBzZWxmLmV4cCA9IGV4cAotICAgIHNlbGYu
dGhlbl9icmFuY2ggPSB0aGVuX2JyYW5jaAotICAgIHNlbGYuZWxzZV9icmFuY2ggPSBlbHNlX2Jy
YW5jaAotCi0KLWNsYXNzIFJhd0NvZGVOb2RlOgotICBkZWYgX19pbml0X18oc2VsZiwgdG9rZW49
Tm9uZSk6Ci0gICAgc2VsZi5yYXdfY29kZSA9IHRva2VuCi0KLQotY2xhc3MgTGl0ZXJhbERvbGxh
ck5vZGU6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0b2tlbik6Ci0gICAgc2VsZi50b2tlbiA9IHRv
a2VuCi0KLQotY2xhc3MgRXhwTm9kZToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuLCBweXRo
b25fZXhwKToKLSAgICBzZWxmLnRva2VuID0gdG9rZW4KLSAgICBzZWxmLnB5dGhvbl9leHAgPSBw
eXRob25fZXhwCi0KLQotZGVmIFBvcEZyb250KGFfbGlzdCk6Ci0gIGhlYWQgPSBhX2xpc3RbMF0K
LSAgYV9saXN0WzoxXSA9IFtdCi0gIHJldHVybiBoZWFkCi0KLQotZGVmIFB1c2hGcm9udChhX2xp
c3QsIGVsZW0pOgotICBhX2xpc3RbOjBdID0gW2VsZW1dCi0KLQotZGVmIFBvcFRva2VuKGFfbGlz
dCwgdG9rZW5fdHlwZT1Ob25lKToKLSAgdG9rZW4gPSBQb3BGcm9udChhX2xpc3QpCi0gIGlmIHRv
a2VuX3R5cGUgaXMgbm90IE5vbmUgYW5kIHRva2VuLnRva2VuX3R5cGUgIT0gdG9rZW5fdHlwZToK
LSAgICBwcmludCAnRVJST1I6ICVzIGV4cGVjdGVkIGF0ICVzJyAlICh0b2tlbl90eXBlLCB0b2tl
bi5zdGFydCkKLSAgICBwcmludCAnRVJST1I6ICVzIGZvdW5kIGluc3RlYWQnICUgKHRva2VuLCkK
LSAgICBzeXMuZXhpdCgxKQotCi0gIHJldHVybiB0b2tlbgotCi0KLWRlZiBQZWVrVG9rZW4oYV9s
aXN0KToKLSAgaWYgbm90IGFfbGlzdDoKLSAgICByZXR1cm4gTm9uZQotCi0gIHJldHVybiBhX2xp
c3RbMF0KLQotCi1kZWYgUGFyc2VFeHBOb2RlKHRva2VuKToKLSAgcHl0aG9uX2V4cCA9IHJlLnN1
YihyJyhbX0EtWmEtel1cdyopJywgcidzZWxmLkdldFZhbHVlKCJcMSIpJywgdG9rZW4udmFsdWUp
Ci0gIHJldHVybiBFeHBOb2RlKHRva2VuLCBweXRob25fZXhwKQotCi0KLWRlZiBQYXJzZUVsc2VO
b2RlKHRva2Vucyk6Ci0gIGRlZiBQb3AodG9rZW5fdHlwZT1Ob25lKToKLSAgICByZXR1cm4gUG9w
VG9rZW4odG9rZW5zLCB0b2tlbl90eXBlKQotCi0gIG5leHQgPSBQZWVrVG9rZW4odG9rZW5zKQot
ICBpZiBub3QgbmV4dDoKLSAgICByZXR1cm4gTm9uZQotICBpZiBuZXh0LnRva2VuX3R5cGUgPT0g
JyRlbHNlJzoKLSAgICBQb3AoJyRlbHNlJykKLSAgICBQb3AoJ1tbJykKLSAgICBjb2RlX25vZGUg
PSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgICBQb3AoJ11dJykKLSAgICByZXR1cm4gY29kZV9u
b2RlCi0gIGVsaWYgbmV4dC50b2tlbl90eXBlID09ICckZWxpZic6Ci0gICAgUG9wKCckZWxpZicp
Ci0gICAgZXhwID0gUG9wKCdjb2RlJykKLSAgICBQb3AoJ1tbJykKLSAgICBjb2RlX25vZGUgPSBQ
YXJzZUNvZGVOb2RlKHRva2VucykKLSAgICBQb3AoJ11dJykKLSAgICBpbm5lcl9lbHNlX25vZGUg
PSBQYXJzZUVsc2VOb2RlKHRva2VucykKLSAgICByZXR1cm4gQ29kZU5vZGUoW0lmTm9kZShQYXJz
ZUV4cE5vZGUoZXhwKSwgY29kZV9ub2RlLCBpbm5lcl9lbHNlX25vZGUpXSkKLSAgZWxpZiBub3Qg
bmV4dC52YWx1ZS5zdHJpcCgpOgotICAgIFBvcCgnY29kZScpCi0gICAgcmV0dXJuIFBhcnNlRWxz
ZU5vZGUodG9rZW5zKQotICBlbHNlOgotICAgIHJldHVybiBOb25lCi0KLQotZGVmIFBhcnNlQXRv
bWljQ29kZU5vZGUodG9rZW5zKToKLSAgZGVmIFBvcCh0b2tlbl90eXBlPU5vbmUpOgotICAgIHJl
dHVybiBQb3BUb2tlbih0b2tlbnMsIHRva2VuX3R5cGUpCi0KLSAgaGVhZCA9IFBvcEZyb250KHRv
a2VucykKLSAgdCA9IGhlYWQudG9rZW5fdHlwZQotICBpZiB0ID09ICdjb2RlJzoKLSAgICByZXR1
cm4gUmF3Q29kZU5vZGUoaGVhZCkKLSAgZWxpZiB0ID09ICckdmFyJzoKLSAgICBpZF90b2tlbiA9
IFBvcCgnaWQnKQotICAgIFBvcCgnPScpCi0gICAgbmV4dCA9IFBlZWtUb2tlbih0b2tlbnMpCi0g
ICAgaWYgbmV4dC50b2tlbl90eXBlID09ICdleHAnOgotICAgICAgZXhwX3Rva2VuID0gUG9wKCkK
LSAgICAgIHJldHVybiBWYXJOb2RlKGlkX3Rva2VuLCBQYXJzZUV4cE5vZGUoZXhwX3Rva2VuKSkK
LSAgICBQb3AoJ1tbJykKLSAgICBjb2RlX25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAg
ICBQb3AoJ11dJykKLSAgICByZXR1cm4gVmFyTm9kZShpZF90b2tlbiwgY29kZV9ub2RlKQotICBl
bGlmIHQgPT0gJyRmb3InOgotICAgIGlkX3Rva2VuID0gUG9wKCdpZCcpCi0gICAgbmV4dF90b2tl
biA9IFBlZWtUb2tlbih0b2tlbnMpCi0gICAgaWYgbmV4dF90b2tlbi50b2tlbl90eXBlID09ICdj
b2RlJzoKLSAgICAgIHNlcF90b2tlbiA9IG5leHRfdG9rZW4KLSAgICAgIFBvcCgnY29kZScpCi0g
ICAgZWxzZToKLSAgICAgIHNlcF90b2tlbiA9IE5vbmUKLSAgICBQb3AoJ1tbJykKLSAgICBjb2Rl
X25vZGUgPSBQYXJzZUNvZGVOb2RlKHRva2VucykKLSAgICBQb3AoJ11dJykKLSAgICByZXR1cm4g
Rm9yTm9kZShpZF90b2tlbiwgc2VwX3Rva2VuLCBjb2RlX25vZGUpCi0gIGVsaWYgdCA9PSAnJGlm
JzoKLSAgICBleHBfdG9rZW4gPSBQb3AoJ2NvZGUnKQotICAgIFBvcCgnW1snKQotICAgIGNvZGVf
bm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgnXV0nKQotICAgIGVsc2Vfbm9k
ZSA9IFBhcnNlRWxzZU5vZGUodG9rZW5zKQotICAgIHJldHVybiBJZk5vZGUoUGFyc2VFeHBOb2Rl
KGV4cF90b2tlbiksIGNvZGVfbm9kZSwgZWxzZV9ub2RlKQotICBlbGlmIHQgPT0gJyRyYW5nZSc6
Ci0gICAgaWRfdG9rZW4gPSBQb3AoJ2lkJykKLSAgICBleHAxX3Rva2VuID0gUG9wKCdleHAnKQot
ICAgIFBvcCgnLi4nKQotICAgIGV4cDJfdG9rZW4gPSBQb3AoJ2V4cCcpCi0gICAgcmV0dXJuIFJh
bmdlTm9kZShpZF90b2tlbiwgUGFyc2VFeHBOb2RlKGV4cDFfdG9rZW4pLAotICAgICAgICAgICAg
ICAgICAgICAgUGFyc2VFeHBOb2RlKGV4cDJfdG9rZW4pKQotICBlbGlmIHQgPT0gJyRpZCc6Ci0g
ICAgcmV0dXJuIFBhcnNlRXhwTm9kZShUb2tlbihoZWFkLnN0YXJ0ICsgMSwgaGVhZC5lbmQsIGhl
YWQudmFsdWVbMTpdLCAnaWQnKSkKLSAgZWxpZiB0ID09ICckKCQpJzoKLSAgICByZXR1cm4gTGl0
ZXJhbERvbGxhck5vZGUoaGVhZCkKLSAgZWxpZiB0ID09ICckJzoKLSAgICBleHBfdG9rZW4gPSBQ
b3AoJ2V4cCcpCi0gICAgcmV0dXJuIFBhcnNlRXhwTm9kZShleHBfdG9rZW4pCi0gIGVsaWYgdCA9
PSAnW1snOgotICAgIGNvZGVfbm9kZSA9IFBhcnNlQ29kZU5vZGUodG9rZW5zKQotICAgIFBvcCgn
XV0nKQotICAgIHJldHVybiBjb2RlX25vZGUKLSAgZWxzZToKLSAgICBQdXNoRnJvbnQodG9rZW5z
LCBoZWFkKQotICAgIHJldHVybiBOb25lCi0KLQotZGVmIFBhcnNlQ29kZU5vZGUodG9rZW5zKToK
LSAgYXRvbWljX2NvZGVfbGlzdCA9IFtdCi0gIHdoaWxlIFRydWU6Ci0gICAgaWYgbm90IHRva2Vu
czoKLSAgICAgIGJyZWFrCi0gICAgYXRvbWljX2NvZGVfbm9kZSA9IFBhcnNlQXRvbWljQ29kZU5v
ZGUodG9rZW5zKQotICAgIGlmIGF0b21pY19jb2RlX25vZGU6Ci0gICAgICBhdG9taWNfY29kZV9s
aXN0LmFwcGVuZChhdG9taWNfY29kZV9ub2RlKQotICAgIGVsc2U6Ci0gICAgICBicmVhawotICBy
ZXR1cm4gQ29kZU5vZGUoYXRvbWljX2NvZGVfbGlzdCkKLQotCi1kZWYgUGFyc2VUb0FTVChwdW1w
X3NyY190ZXh0KToKLSAgIiIiQ29udmVydCB0aGUgZ2l2ZW4gUHVtcCBzb3VyY2UgdGV4dCBpbnRv
IGFuIEFTVC4iIiIKLSAgdG9rZW5zID0gbGlzdChUb2tlbml6ZShwdW1wX3NyY190ZXh0KSkKLSAg
Y29kZV9ub2RlID0gUGFyc2VDb2RlTm9kZSh0b2tlbnMpCi0gIHJldHVybiBjb2RlX25vZGUKLQot
Ci1jbGFzcyBFbnY6Ci0gIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICBzZWxmLnZhcmlhYmxlcyA9
IFtdCi0gICAgc2VsZi5yYW5nZXMgPSBbXQotCi0gIGRlZiBDbG9uZShzZWxmKToKLSAgICBjbG9u
ZSA9IEVudigpCi0gICAgY2xvbmUudmFyaWFibGVzID0gc2VsZi52YXJpYWJsZXNbOl0KLSAgICBj
bG9uZS5yYW5nZXMgPSBzZWxmLnJhbmdlc1s6XQotICAgIHJldHVybiBjbG9uZQotCi0gIGRlZiBQ
dXNoVmFyaWFibGUoc2VsZiwgdmFyLCB2YWx1ZSk6Ci0gICAgIyBJZiB2YWx1ZSBsb29rcyBsaWtl
IGFuIGludCwgc3RvcmUgaXQgYXMgYW4gaW50LgotICAgIHRyeToKLSAgICAgIGludF92YWx1ZSA9
IGludCh2YWx1ZSkKLSAgICAgIGlmICgnJXMnICUgaW50X3ZhbHVlKSA9PSB2YWx1ZToKLSAgICAg
ICAgdmFsdWUgPSBpbnRfdmFsdWUKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgcGFzcwot
ICAgIHNlbGYudmFyaWFibGVzWzowXSA9IFsodmFyLCB2YWx1ZSldCi0KLSAgZGVmIFBvcFZhcmlh
YmxlKHNlbGYpOgotICAgIHNlbGYudmFyaWFibGVzWzoxXSA9IFtdCi0KLSAgZGVmIFB1c2hSYW5n
ZShzZWxmLCB2YXIsIGxvd2VyLCB1cHBlcik6Ci0gICAgc2VsZi5yYW5nZXNbOjBdID0gWyh2YXIs
IGxvd2VyLCB1cHBlcildCi0KLSAgZGVmIFBvcFJhbmdlKHNlbGYpOgotICAgIHNlbGYucmFuZ2Vz
WzoxXSA9IFtdCi0KLSAgZGVmIEdldFZhbHVlKHNlbGYsIGlkZW50aWZpZXIpOgotICAgIGZvciAo
dmFyLCB2YWx1ZSkgaW4gc2VsZi52YXJpYWJsZXM6Ci0gICAgICBpZiBpZGVudGlmaWVyID09IHZh
cjoKLSAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAgICBwcmludCAnRVJST1I6IG1ldGEgdmFyaWFi
bGUgJXMgaXMgdW5kZWZpbmVkLicgJSAoaWRlbnRpZmllciwpCi0gICAgc3lzLmV4aXQoMSkKLQot
ICBkZWYgRXZhbEV4cChzZWxmLCBleHApOgotICAgIHRyeToKLSAgICAgIHJlc3VsdCA9IGV2YWwo
ZXhwLnB5dGhvbl9leHApCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgIHByaW50ICdF
UlJPUjogY2F1Z2h0IGV4Y2VwdGlvbiAlczogJXMnICUgKGUuX19jbGFzc19fLl9fbmFtZV9fLCBl
KQotICAgICAgcHJpbnQgKCdFUlJPUjogZmFpbGVkIHRvIGV2YWx1YXRlIG1ldGEgZXhwcmVzc2lv
biAlcyBhdCAlcycgJQotICAgICAgICAgICAgIChleHAucHl0aG9uX2V4cCwgZXhwLnRva2VuLnN0
YXJ0KSkKLSAgICAgIHN5cy5leGl0KDEpCi0gICAgcmV0dXJuIHJlc3VsdAotCi0gIGRlZiBHZXRS
YW5nZShzZWxmLCBpZGVudGlmaWVyKToKLSAgICBmb3IgKHZhciwgbG93ZXIsIHVwcGVyKSBpbiBz
ZWxmLnJhbmdlczoKLSAgICAgIGlmIGlkZW50aWZpZXIgPT0gdmFyOgotICAgICAgICByZXR1cm4g
KGxvd2VyLCB1cHBlcikKLQotICAgIHByaW50ICdFUlJPUjogcmFuZ2UgJXMgaXMgdW5kZWZpbmVk
LicgJSAoaWRlbnRpZmllciwpCi0gICAgc3lzLmV4aXQoMSkKLQotCi1jbGFzcyBPdXRwdXQ6Ci0g
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICBzZWxmLnN0cmluZyA9ICcnCi0KLSAgZGVmIEdldExh
c3RMaW5lKHNlbGYpOgotICAgIGluZGV4ID0gc2VsZi5zdHJpbmcucmZpbmQoJ1xuJykKLSAgICBp
ZiBpbmRleCA8IDA6Ci0gICAgICByZXR1cm4gJycKLQotICAgIHJldHVybiBzZWxmLnN0cmluZ1tp
bmRleCArIDE6XQotCi0gIGRlZiBBcHBlbmQoc2VsZiwgcyk6Ci0gICAgc2VsZi5zdHJpbmcgKz0g
cwotCi0KLWRlZiBSdW5BdG9taWNDb2RlKGVudiwgbm9kZSwgb3V0cHV0KToKLSAgaWYgaXNpbnN0
YW5jZShub2RlLCBWYXJOb2RlKToKLSAgICBpZGVudGlmaWVyID0gbm9kZS5pZGVudGlmaWVyLnZh
bHVlLnN0cmlwKCkKLSAgICByZXN1bHQgPSBPdXRwdXQoKQotICAgIFJ1bkF0b21pY0NvZGUoZW52
LkNsb25lKCksIG5vZGUuYXRvbWljX2NvZGUsIHJlc3VsdCkKLSAgICB2YWx1ZSA9IHJlc3VsdC5z
dHJpbmcKLSAgICBlbnYuUHVzaFZhcmlhYmxlKGlkZW50aWZpZXIsIHZhbHVlKQotICBlbGlmIGlz
aW5zdGFuY2Uobm9kZSwgUmFuZ2VOb2RlKToKLSAgICBpZGVudGlmaWVyID0gbm9kZS5pZGVudGlm
aWVyLnZhbHVlLnN0cmlwKCkKLSAgICBsb3dlciA9IGludChlbnYuRXZhbEV4cChub2RlLmV4cDEp
KQotICAgIHVwcGVyID0gaW50KGVudi5FdmFsRXhwKG5vZGUuZXhwMikpCi0gICAgZW52LlB1c2hS
YW5nZShpZGVudGlmaWVyLCBsb3dlciwgdXBwZXIpCi0gIGVsaWYgaXNpbnN0YW5jZShub2RlLCBG
b3JOb2RlKToKLSAgICBpZGVudGlmaWVyID0gbm9kZS5pZGVudGlmaWVyLnZhbHVlLnN0cmlwKCkK
LSAgICBpZiBub2RlLnNlcCBpcyBOb25lOgotICAgICAgc2VwID0gJycKLSAgICBlbHNlOgotICAg
ICAgc2VwID0gbm9kZS5zZXAudmFsdWUKLSAgICAobG93ZXIsIHVwcGVyKSA9IGVudi5HZXRSYW5n
ZShpZGVudGlmaWVyKQotICAgIGZvciBpIGluIHJhbmdlKGxvd2VyLCB1cHBlciArIDEpOgotICAg
ICAgbmV3X2VudiA9IGVudi5DbG9uZSgpCi0gICAgICBuZXdfZW52LlB1c2hWYXJpYWJsZShpZGVu
dGlmaWVyLCBpKQotICAgICAgUnVuQ29kZShuZXdfZW52LCBub2RlLmNvZGUsIG91dHB1dCkKLSAg
ICAgIGlmIGkgIT0gdXBwZXI6Ci0gICAgICAgIG91dHB1dC5BcHBlbmQoc2VwKQotICBlbGlmIGlz
aW5zdGFuY2Uobm9kZSwgUmF3Q29kZU5vZGUpOgotICAgIG91dHB1dC5BcHBlbmQobm9kZS5yYXdf
Y29kZS52YWx1ZSkKLSAgZWxpZiBpc2luc3RhbmNlKG5vZGUsIElmTm9kZSk6Ci0gICAgY29uZCA9
IGVudi5FdmFsRXhwKG5vZGUuZXhwKQotICAgIGlmIGNvbmQ6Ci0gICAgICBSdW5Db2RlKGVudi5D
bG9uZSgpLCBub2RlLnRoZW5fYnJhbmNoLCBvdXRwdXQpCi0gICAgZWxpZiBub2RlLmVsc2VfYnJh
bmNoIGlzIG5vdCBOb25lOgotICAgICAgUnVuQ29kZShlbnYuQ2xvbmUoKSwgbm9kZS5lbHNlX2Jy
YW5jaCwgb3V0cHV0KQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgRXhwTm9kZSk6Ci0gICAgdmFs
dWUgPSBlbnYuRXZhbEV4cChub2RlKQotICAgIG91dHB1dC5BcHBlbmQoJyVzJyAlICh2YWx1ZSwp
KQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgTGl0ZXJhbERvbGxhck5vZGUpOgotICAgIG91dHB1
dC5BcHBlbmQoJyQnKQotICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgQ29kZU5vZGUpOgotICAgIFJ1
bkNvZGUoZW52LkNsb25lKCksIG5vZGUsIG91dHB1dCkKLSAgZWxzZToKLSAgICBwcmludCAnQkFE
JwotICAgIHByaW50IG5vZGUKLSAgICBzeXMuZXhpdCgxKQotCi0KLWRlZiBSdW5Db2RlKGVudiwg
Y29kZV9ub2RlLCBvdXRwdXQpOgotICBmb3IgYXRvbWljX2NvZGUgaW4gY29kZV9ub2RlLmF0b21p
Y19jb2RlOgotICAgIFJ1bkF0b21pY0NvZGUoZW52LCBhdG9taWNfY29kZSwgb3V0cHV0KQotCi0K
LWRlZiBJc1NpbmdsZUxpbmVDb21tZW50KGN1cl9saW5lKToKLSAgcmV0dXJuICcvLycgaW4gY3Vy
X2xpbmUKLQotCi1kZWYgSXNJblByZXByb2Nlc3NvckRpcmVjdGl2ZShwcmV2X2xpbmVzLCBjdXJf
bGluZSk6Ci0gIGlmIGN1cl9saW5lLmxzdHJpcCgpLnN0YXJ0c3dpdGgoJyMnKToKLSAgICByZXR1
cm4gVHJ1ZQotICByZXR1cm4gcHJldl9saW5lcyBhbmQgcHJldl9saW5lc1stMV0uZW5kc3dpdGgo
J1xcJykKLQotCi1kZWYgV3JhcENvbW1lbnQobGluZSwgb3V0cHV0KToKLSAgbG9jID0gbGluZS5m
aW5kKCcvLycpCi0gIGJlZm9yZV9jb21tZW50ID0gbGluZVs6bG9jXS5yc3RyaXAoKQotICBpZiBi
ZWZvcmVfY29tbWVudCA9PSAnJzoKLSAgICBpbmRlbnQgPSBsb2MKLSAgZWxzZToKLSAgICBvdXRw
dXQuYXBwZW5kKGJlZm9yZV9jb21tZW50KQotICAgIGluZGVudCA9IGxlbihiZWZvcmVfY29tbWVu
dCkgLSBsZW4oYmVmb3JlX2NvbW1lbnQubHN0cmlwKCkpCi0gIHByZWZpeCA9IGluZGVudConICcg
KyAnLy8gJwotICBtYXhfbGVuID0gODAgLSBsZW4ocHJlZml4KQotICBjb21tZW50ID0gbGluZVts
b2MgKyAyOl0uc3RyaXAoKQotICBzZWdzID0gW3NlZyBmb3Igc2VnIGluIHJlLnNwbGl0KHInKFx3
K1xXKiknLCBjb21tZW50KSBpZiBzZWcgIT0gJyddCi0gIGN1cl9saW5lID0gJycKLSAgZm9yIHNl
ZyBpbiBzZWdzOgotICAgIGlmIGxlbigoY3VyX2xpbmUgKyBzZWcpLnJzdHJpcCgpKSA8IG1heF9s
ZW46Ci0gICAgICBjdXJfbGluZSArPSBzZWcKLSAgICBlbHNlOgotICAgICAgaWYgY3VyX2xpbmUu
c3RyaXAoKSAhPSAnJzoKLSAgICAgICAgb3V0cHV0LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5y
c3RyaXAoKSkKLSAgICAgIGN1cl9saW5lID0gc2VnLmxzdHJpcCgpCi0gIGlmIGN1cl9saW5lLnN0
cmlwKCkgIT0gJyc6Ci0gICAgb3V0cHV0LmFwcGVuZChwcmVmaXggKyBjdXJfbGluZS5zdHJpcCgp
KQotCi0KLWRlZiBXcmFwQ29kZShsaW5lLCBsaW5lX2NvbmNhdCwgb3V0cHV0KToKLSAgaW5kZW50
ID0gbGVuKGxpbmUpIC0gbGVuKGxpbmUubHN0cmlwKCkpCi0gIHByZWZpeCA9IGluZGVudConICcg
ICMgUHJlZml4IG9mIHRoZSBjdXJyZW50IGxpbmUKLSAgbWF4X2xlbiA9IDgwIC0gaW5kZW50IC0g
bGVuKGxpbmVfY29uY2F0KSAgIyBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgY3VycmVudCBsaW5lCi0g
IG5ld19wcmVmaXggPSBwcmVmaXggKyA0KicgJyAgIyBQcmVmaXggb2YgYSBjb250aW51YXRpb24g
bGluZQotICBuZXdfbWF4X2xlbiA9IG1heF9sZW4gLSA0ICAjIE1heGltdW0gbGVuZ3RoIG9mIGEg
Y29udGludWF0aW9uIGxpbmUKLSAgIyBQcmVmZXJzIHRvIHdyYXAgYSBsaW5lIGFmdGVyIGEgJywn
IG9yICc7Jy4KLSAgc2VncyA9IFtzZWcgZm9yIHNlZyBpbiByZS5zcGxpdChyJyhbXiw7XStbLDtd
PyknLCBsaW5lLnN0cmlwKCkpIGlmIHNlZyAhPSAnJ10KLSAgY3VyX2xpbmUgPSAnJyAgIyBUaGUg
Y3VycmVudCBsaW5lIHdpdGhvdXQgbGVhZGluZyBzcGFjZXMuCi0gIGZvciBzZWcgaW4gc2VnczoK
LSAgICAjIElmIHRoZSBsaW5lIGlzIHN0aWxsIHRvbyBsb25nLCB3cmFwIGF0IGEgc3BhY2UuCi0g
ICAgd2hpbGUgY3VyX2xpbmUgPT0gJycgYW5kIGxlbihzZWcuc3RyaXAoKSkgPiBtYXhfbGVuOgot
ICAgICAgc2VnID0gc2VnLmxzdHJpcCgpCi0gICAgICBzcGxpdF9hdCA9IHNlZy5yZmluZCgnICcs
IDAsIG1heF9sZW4pCi0gICAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIHNlZ1s6c3BsaXRfYXRd
LnN0cmlwKCkgKyBsaW5lX2NvbmNhdCkKLSAgICAgIHNlZyA9IHNlZ1tzcGxpdF9hdCArIDE6XQot
ICAgICAgcHJlZml4ID0gbmV3X3ByZWZpeAotICAgICAgbWF4X2xlbiA9IG5ld19tYXhfbGVuCi0K
LSAgICBpZiBsZW4oKGN1cl9saW5lICsgc2VnKS5yc3RyaXAoKSkgPCBtYXhfbGVuOgotICAgICAg
Y3VyX2xpbmUgPSAoY3VyX2xpbmUgKyBzZWcpLmxzdHJpcCgpCi0gICAgZWxzZToKLSAgICAgIG91
dHB1dC5hcHBlbmQocHJlZml4ICsgY3VyX2xpbmUucnN0cmlwKCkgKyBsaW5lX2NvbmNhdCkKLSAg
ICAgIHByZWZpeCA9IG5ld19wcmVmaXgKLSAgICAgIG1heF9sZW4gPSBuZXdfbWF4X2xlbgotICAg
ICAgY3VyX2xpbmUgPSBzZWcubHN0cmlwKCkKLSAgaWYgY3VyX2xpbmUuc3RyaXAoKSAhPSAnJzoK
LSAgICBvdXRwdXQuYXBwZW5kKHByZWZpeCArIGN1cl9saW5lLnN0cmlwKCkpCi0KLQotZGVmIFdy
YXBQcmVwcm9jZXNzb3JEaXJlY3RpdmUobGluZSwgb3V0cHV0KToKLSAgV3JhcENvZGUobGluZSwg
JyBcXCcsIG91dHB1dCkKLQotCi1kZWYgV3JhcFBsYWluQ29kZShsaW5lLCBvdXRwdXQpOgotICBX
cmFwQ29kZShsaW5lLCAnJywgb3V0cHV0KQotCi0KLWRlZiBJc011bHRpTGluZUlXWVVQcmFnbWEo
bGluZSk6Ci0gIHJldHVybiByZS5zZWFyY2gocicvXCogSVdZVSBwcmFnbWE6ICcsIGxpbmUpCi0K
LQotZGVmIElzSGVhZGVyR3VhcmRJbmNsdWRlT3JPbmVMaW5lSVdZVVByYWdtYShsaW5lKToKLSAg
cmV0dXJuIChyZS5tYXRjaChyJ14jKGlmbmRlZnxkZWZpbmV8ZW5kaWZccyovLylccypbXHdfXStc
cyokJywgbGluZSkgb3IKLSAgICAgICAgICByZS5tYXRjaChyJ14jaW5jbHVkZVxzJywgbGluZSkg
b3IKLSAgICAgICAgICAjIERvbid0IGJyZWFrIElXWVUgcHJhZ21hcywgZWl0aGVyOyB0aGF0IGNh
dXNlcyBpd3l1LnB5IHByb2JsZW1zLgotICAgICAgICAgIHJlLnNlYXJjaChyJy8vIElXWVUgcHJh
Z21hOiAnLCBsaW5lKSkKLQotCi1kZWYgV3JhcExvbmdMaW5lKGxpbmUsIG91dHB1dCk6Ci0gIGxp
bmUgPSBsaW5lLnJzdHJpcCgpCi0gIGlmIGxlbihsaW5lKSA8PSA4MDoKLSAgICBvdXRwdXQuYXBw
ZW5kKGxpbmUpCi0gIGVsaWYgSXNTaW5nbGVMaW5lQ29tbWVudChsaW5lKToKLSAgICBpZiBJc0hl
YWRlckd1YXJkSW5jbHVkZU9yT25lTGluZUlXWVVQcmFnbWEobGluZSk6Ci0gICAgICAjIFRoZSBz
dHlsZSBndWlkZSBtYWRlIGFuIGV4Y2VwdGlvbiB0byBhbGxvdyBsb25nIGhlYWRlciBndWFyZCBs
aW5lcywKLSAgICAgICMgaW5jbHVkZXMgYW5kIElXWVUgcHJhZ21hcy4KLSAgICAgIG91dHB1dC5h
cHBlbmQobGluZSkKLSAgICBlbHNlOgotICAgICAgV3JhcENvbW1lbnQobGluZSwgb3V0cHV0KQot
ICBlbGlmIElzSW5QcmVwcm9jZXNzb3JEaXJlY3RpdmUob3V0cHV0LCBsaW5lKToKLSAgICBpZiBJ
c0hlYWRlckd1YXJkSW5jbHVkZU9yT25lTGluZUlXWVVQcmFnbWEobGluZSk6Ci0gICAgICAjIFRo
ZSBzdHlsZSBndWlkZSBtYWRlIGFuIGV4Y2VwdGlvbiB0byBhbGxvdyBsb25nIGhlYWRlciBndWFy
ZCBsaW5lcywKLSAgICAgICMgaW5jbHVkZXMgYW5kIElXWVUgcHJhZ21hcy4KLSAgICAgIG91dHB1
dC5hcHBlbmQobGluZSkKLSAgICBlbHNlOgotICAgICAgV3JhcFByZXByb2Nlc3NvckRpcmVjdGl2
ZShsaW5lLCBvdXRwdXQpCi0gIGVsaWYgSXNNdWx0aUxpbmVJV1lVUHJhZ21hKGxpbmUpOgotICAg
IG91dHB1dC5hcHBlbmQobGluZSkKLSAgZWxzZToKLSAgICBXcmFwUGxhaW5Db2RlKGxpbmUsIG91
dHB1dCkKLQotCi1kZWYgQmVhdXRpZnlDb2RlKHN0cmluZyk6Ci0gIGxpbmVzID0gc3RyaW5nLnNw
bGl0bGluZXMoKQotICBvdXRwdXQgPSBbXQotICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICBXcmFw
TG9uZ0xpbmUobGluZSwgb3V0cHV0KQotICBvdXRwdXQyID0gW2xpbmUucnN0cmlwKCkgZm9yIGxp
bmUgaW4gb3V0cHV0XQotICByZXR1cm4gJ1xuJy5qb2luKG91dHB1dDIpICsgJ1xuJwotCi0KLWRl
ZiBDb252ZXJ0RnJvbVB1bXBTb3VyY2Uoc3JjX3RleHQpOgotICAiIiJSZXR1cm4gdGhlIHRleHQg
Z2VuZXJhdGVkIGZyb20gdGhlIGdpdmVuIFB1bXAgc291cmNlIHRleHQuIiIiCi0gIGFzdCA9IFBh
cnNlVG9BU1QoU3RyaXBNZXRhQ29tbWVudHMoc3JjX3RleHQpKQotICBvdXRwdXQgPSBPdXRwdXQo
KQotICBSdW5Db2RlKEVudigpLCBhc3QsIG91dHB1dCkKLSAgcmV0dXJuIEJlYXV0aWZ5Q29kZShv
dXRwdXQuc3RyaW5nKQotCi0KLWRlZiBtYWluKGFyZ3YpOgotICBpZiBsZW4oYXJndikgPT0gMToK
LSAgICBwcmludCBfX2RvY19fCi0gICAgc3lzLmV4aXQoMSkKLQotICBmaWxlX3BhdGggPSBhcmd2
Wy0xXQotICBvdXRwdXRfc3RyID0gQ29udmVydEZyb21QdW1wU291cmNlKGZpbGUoZmlsZV9wYXRo
LCAncicpLnJlYWQoKSkKLSAgaWYgZmlsZV9wYXRoLmVuZHN3aXRoKCcucHVtcCcpOgotICAgIG91
dHB1dF9maWxlX3BhdGggPSBmaWxlX3BhdGhbOi01XQotICBlbHNlOgotICAgIG91dHB1dF9maWxl
X3BhdGggPSAnLScKLSAgaWYgb3V0cHV0X2ZpbGVfcGF0aCA9PSAnLSc6Ci0gICAgcHJpbnQgb3V0
cHV0X3N0ciwKLSAgZWxzZToKLSAgICBvdXRwdXRfZmlsZSA9IGZpbGUob3V0cHV0X2ZpbGVfcGF0
aCwgJ3cnKQotICAgIG91dHB1dF9maWxlLndyaXRlKCcvLyBUaGlzIGZpbGUgd2FzIEdFTkVSQVRF
RCBieSBjb21tYW5kOlxuJykKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnLy8gICAgICVzICVzXG4n
ICUKLSAgICAgICAgICAgICAgICAgICAgICAob3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXyksIG9z
LnBhdGguYmFzZW5hbWUoZmlsZV9wYXRoKSkpCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJy8vIERP
IE5PVCBFRElUIEJZIEhBTkQhISFcblxuJykKLSAgICBvdXRwdXRfZmlsZS53cml0ZShvdXRwdXRf
c3RyKQotICAgIG91dHB1dF9maWxlLmNsb3NlKCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgotICBtYWluKHN5cy5hcmd2KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc2NyaXB0cy9ydW5fd2l0aF9wYXRoLnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc2Ny
aXB0cy9ydW5fd2l0aF9wYXRoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NmFiNGQzNGE0MWE0ZjE1NjdlNzNk
OGI2NDM2YjlhY2I1NzM0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9zY3JpcHRzL3J1bl93aXRoX3BhdGgucHkKQEAgLTAsMCArMSwzMiBAQAorIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisKKyIiIlJ1bnMgcHJvZ3JhbSBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgbGlu
ZSB3aXRoIHRoZSBzdWJzdGl0dXRlZCBQQVRILgorCisgICBUaGlzIHNjcmlwdCBpcyBuZWVkZWQg
Zm9yIHRvIHN1cHBvcnQgYnVpbGRpbmcgdW5kZXIgUHVsc2Ugd2hpY2ggaXMgdW5hYmxlCisgICB0
byBvdmVycmlkZSB0aGUgZXhpc3RpbmcgUEFUSCB2YXJpYWJsZS4KKyIiIgorCitpbXBvcnQgb3MK
K2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisKK1NVQlNUX1BBVEhfRU5WX1ZBUl9OQU1F
ID0gIlNVQlNUX1BBVEgiCisKK2RlZiBtYWluKCk6CisgIGlmIFNVQlNUX1BBVEhfRU5WX1ZBUl9O
QU1FIGluIG9zLmVudmlyb246CisgICAgb3MuZW52aXJvblsiUEFUSCJdID0gb3MuZW52aXJvbltT
VUJTVF9QQVRIX0VOVl9WQVJfTkFNRV0KKworICBleGl0X2NvZGUgPSBzdWJwcm9jZXNzLlBvcGVu
KHN5cy5hcmd2WzE6XSkud2FpdCgpCisKKyAgIyBleGl0X2NvZGUgaXMgbmVnYXRpdmUgKC1zaWdu
YWwpIGlmIHRoZSBwcm9jZXNzIGhhcyBiZWVuIHRlcm1pbmF0ZWQgYnkKKyAgIyBhIHNpZ25hbC4g
UmV0dXJuaW5nIG5lZ2F0aXZlIGV4aXQgY29kZSBpcyBub3QgcG9ydGFibGUgYW5kIHNvIHdlIHJl
dHVybgorICAjIDEwMCBpbnN0ZWFkLgorICBpZiBleGl0X2NvZGUgPCAwOgorICAgIGV4aXRfY29k
ZSA9IDEwMAorCisgIHN5cy5leGl0KGV4aXRfY29kZSkKKworaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKKyAgbWFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zY3Jp
cHRzL3VwbG9hZC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NjcmlwdHMvdXBsb2FkLnB5
CmluZGV4IGM4NTJlNGM5MWUwNmVmN2M0OWUwMzg2ODM1MDlmZmQ5NDk1YzgyMGYuLmViYTU3MTE0
MmY1Yjg3MTE4Mzg2ZWEyMDMwN2IwNDMzYWNhOTg2ZGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3NjcmlwdHMvdXBsb2FkLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3NjcmlwdHMvdXBsb2FkLnB5CkBAIC0xLDE4ICsxLDMzIEBACiAjIS91c3IvYmluL2VudiBw
eXRob24KICMKLSMgQ29weXJpZ2h0IDIwMDcgR29vZ2xlIEluYy4KKyMgQ29weXJpZ2h0IDIwMDcs
IEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCi0jIExpY2Vuc2VkIHVuZGVy
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vu
c2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CiAjCi0jICAgICBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisj
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KICMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0
byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBp
cyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMg
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1p
c3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAiIiJUb29sIGZvciB1cGxvYWRp
bmcgZGlmZnMgZnJvbSBhIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gdG8gdGhlIGNvZGVyZXZpZXcg
YXBwLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtYWxs
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWFsbC5jYwppbmRleCBiMjE3
YTE4MDA2YjBjOGJkYWY0YTlmOWI2ZDA2ZGU0ZmQ4YWQ5ZWVkLi5hZDI5MjkwNWNmMzgxZDY5ZWJh
OTAwOGY1MTk2Y2Y2NDc3YTU2YzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zcmMvZ3Rlc3QtYWxsLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1hbGwuY2MKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJzcmMvZ3Rlc3QuY2MiCiAjaW5j
bHVkZSAic3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MiCiAjaW5jbHVkZSAic3JjL2d0ZXN0LWZpbGVw
YXRoLmNjIgorI2luY2x1ZGUgInNyYy9ndGVzdC1tYXRjaGVycy5jYyIKICNpbmNsdWRlICJzcmMv
Z3Rlc3QtcG9ydC5jYyIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtcHJpbnRlcnMuY2MiCiAjaW5jbHVk
ZSAic3JjL2d0ZXN0LXRlc3QtcGFydC5jYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3NyYy9ndGVzdC1kZWF0aC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
c3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MKaW5kZXggYWM4NjYwMzU0Y2FmYWM1ODNhZGViMmYyMTMx
YmM2YWNhNzgzYzVhNy4uYzNkNmRmY2NhZDdjOTY4YjgzZjE5NzI3NDUwOGVmZDg0NWRlOTdhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3Qu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWRlYXRoLXRlc3QuY2MK
QEAgLTMxLDYgKzMxLDEwIEBACiAvLyBUaGlzIGZpbGUgaW1wbGVtZW50cyBkZWF0aCB0ZXN0cy4K
IAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCIKKworI2luY2x1ZGUgPGZ1bmN0
aW9uYWw+CisjaW5jbHVkZSA8dXRpbGl0eT4KKwogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0
ZXN0LXBvcnQuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9jdXN0b20vZ3Rlc3QuaCIKIApA
QCAtNjIsMTAgKzY2LDE2IEBACiAjIGVuZGlmICAvLyBHVEVTVF9PU19RTlgKIAogIyBpZiBHVEVT
VF9PU19GVUNIU0lBCisjICBpbmNsdWRlIDxsaWIvZmRpby9mZC5oPgogIyAgaW5jbHVkZSA8bGli
L2ZkaW8vaW8uaD4KICMgIGluY2x1ZGUgPGxpYi9mZGlvL3NwYXduLmg+CisjICBpbmNsdWRlIDxs
aWIvengvY2hhbm5lbC5oPgorIyAgaW5jbHVkZSA8bGliL3p4L3BvcnQuaD4KKyMgIGluY2x1ZGUg
PGxpYi96eC9wcm9jZXNzLmg+CisjICBpbmNsdWRlIDxsaWIvengvc29ja2V0Lmg+CiAjICBpbmNs
dWRlIDx6aXJjb24vcHJvY2Vzc2FyZ3MuaD4KICMgIGluY2x1ZGUgPHppcmNvbi9zeXNjYWxscy5o
PgorIyAgaW5jbHVkZSA8emlyY29uL3N5c2NhbGxzL3BvbGljeS5oPgogIyAgaW5jbHVkZSA8emly
Y29uL3N5c2NhbGxzL3BvcnQuaD4KICMgZW5kaWYgIC8vIEdURVNUX09TX0ZVQ0hTSUEKIApAQCAt
MTEzLDggKzEyMyw4IEBAIEdURVNUX0RFRklORV9zdHJpbmdfKAogICAgICJJbmRpY2F0ZXMgdGhl
IGZpbGUsIGxpbmUgbnVtYmVyLCB0ZW1wb3JhbCBpbmRleCBvZiAiCiAgICAgInRoZSBzaW5nbGUg
ZGVhdGggdGVzdCB0byBydW4sIGFuZCBhIGZpbGUgZGVzY3JpcHRvciB0byAiCiAgICAgIndoaWNo
IGEgc3VjY2VzcyBjb2RlIG1heSBiZSBzZW50LCBhbGwgc2VwYXJhdGVkIGJ5ICIKLSAgICAidGhl
ICd8JyBjaGFyYWN0ZXJzLiAgVGhpcyBmbGFnIGlzIHNwZWNpZmllZCBpZiBhbmQgb25seSBpZiB0
aGUgY3VycmVudCAiCi0gICAgInByb2Nlc3MgaXMgYSBzdWItcHJvY2VzcyBsYXVuY2hlZCBmb3Ig
cnVubmluZyBhIHRocmVhZC1zYWZlICIKKyAgICAidGhlICd8JyBjaGFyYWN0ZXJzLiAgVGhpcyBm
bGFnIGlzIHNwZWNpZmllZCBpZiBhbmQgb25seSBpZiB0aGUgIgorICAgICJjdXJyZW50IHByb2Nl
c3MgaXMgYSBzdWItcHJvY2VzcyBsYXVuY2hlZCBmb3IgcnVubmluZyBhIHRocmVhZC1zYWZlICIK
ICAgICAiZGVhdGggdGVzdC4gIEZPUiBJTlRFUk5BTCBVU0UgT05MWS4iKTsKIH0gIC8vIG5hbWVz
cGFjZSBpbnRlcm5hbAogCkBAIC0yMzgsNyArMjQ4LDcgQEAgc3RhdGljIHN0ZDo6c3RyaW5nIERl
YXRoVGVzdFRocmVhZFdhcm5pbmcoc2l6ZV90IHRocmVhZF9jb3VudCkgewogICAgIG1zZyA8PCAi
ZGV0ZWN0ZWQgIiA8PCB0aHJlYWRfY291bnQgPDwgIiB0aHJlYWRzLiI7CiAgIH0KICAgbXNnIDw8
ICIgU2VlICIKLSAgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3Qv
YmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzLyIKKyAgICAgICAgICJodHRwczovL2dpdGh1Yi5j
b20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZG9jcy8iCiAgICAgICAgICAiYWR2YW5j
ZWQubWQjZGVhdGgtdGVzdHMtYW5kLXRocmVhZHMiCiAgICAgICA8PCAiIGZvciBtb3JlIGV4cGxh
bmF0aW9uIGFuZCBzdWdnZXN0ZWQgc29sdXRpb25zLCBlc3BlY2lhbGx5IGlmIgogICAgICAgPDwg
IiB0aGlzIGlzIHRoZSBsYXN0IG1lc3NhZ2UgeW91IHNlZSBiZWZvcmUgeW91ciB0ZXN0IHRpbWVz
IG91dC4iOwpAQCAtMjY2LDggKzI3Niw2IEBAIHN0YXRpYyBjb25zdCBpbnQga0Z1Y2hzaWFSZWFk
UGlwZUZkID0gMzsKIC8vIHN0YXRlbWVudCwgd2hpY2ggaXMgbm90IGFsbG93ZWQ7IFRIUkVXIG1l
YW5zIHRoYXQgdGhlIHRlc3Qgc3RhdGVtZW50CiAvLyByZXR1cm5lZCBjb250cm9sIGJ5IHRocm93
aW5nIGFuIGV4Y2VwdGlvbi4gIElOX1BST0dSRVNTIG1lYW5zIHRoZSB0ZXN0CiAvLyBoYXMgbm90
IHlldCBjb25jbHVkZWQuCi0vLyBGSVhNRTogVW5pZnkgbmFtZXMgYW5kIHBvc3NpYmx5IHZhbHVl
cyBmb3IKLS8vIEFib3J0UmVhc29uLCBEZWF0aFRlc3RPdXRjb21lLCBhbmQgZmxhZyBjaGFyYWN0
ZXJzIGFib3ZlLgogZW51bSBEZWF0aFRlc3RPdXRjb21lIHsgSU5fUFJPR1JFU1MsIERJRUQsIExJ
VkVELCBSRVRVUk5FRCwgVEhSRVcgfTsKIAogLy8gUm91dGluZSBmb3IgYWJvcnRpbmcgdGhlIHBy
b2dyYW0gd2hpY2ggaXMgc2FmZSB0byBjYWxsIGZyb20gYW4KQEAgLTI4MSw3ICsyODksNyBAQCBz
dGF0aWMgdm9pZCBEZWF0aFRlc3RBYm9ydChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgewog
ICAvLyB0aGUgaGVhcCBmb3IgYW55IGFkZGl0aW9uYWwgbm9uLW1pbnVzY3VsZSBtZW1vcnkgcmVx
dWlyZW1lbnRzLgogICBjb25zdCBJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcqIGNvbnN0IGZsYWcg
PQogICAgICAgR2V0VW5pdFRlc3RJbXBsKCktPmludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWco
KTsKLSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRyKSB7CiAgICAg
RklMRSogcGFyZW50ID0gcG9zaXg6OkZET3BlbihmbGFnLT53cml0ZV9mZCgpLCAidyIpOwogICAg
IGZwdXRjKGtEZWF0aFRlc3RJbnRlcm5hbEVycm9yLCBwYXJlbnQpOwogICAgIGZwcmludGYocGFy
ZW50LCAiJXMiLCBtZXNzYWdlLmNfc3RyKCkpOwpAQCAtMzYxLDcgKzM2OSw3IEBAIHN0YXRpYyB2
b2lkIEZhaWxGcm9tSW50ZXJuYWxFcnJvcihpbnQgZmQpIHsKIC8vIGZvciB0aGUgY3VycmVudCB0
ZXN0LgogRGVhdGhUZXN0OjpEZWF0aFRlc3QoKSB7CiAgIFRlc3RJbmZvKiBjb25zdCBpbmZvID0g
R2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gIGlmIChpbmZvID09IE5V
TEwpIHsKKyAgaWYgKGluZm8gPT0gbnVsbHB0cikgewogICAgIERlYXRoVGVzdEFib3J0KCJDYW5u
b3QgcnVuIGEgZGVhdGggdGVzdCBvdXRzaWRlIG9mIGEgVEVTVCBvciAiCiAgICAgICAgICAgICAg
ICAgICAgIlRFU1RfRiBjb25zdHJ1Y3QiKTsKICAgfQpAQCAtMzY5LDEwICszNzcsMTEgQEAgRGVh
dGhUZXN0OjpEZWF0aFRlc3QoKSB7CiAKIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBkZWF0aCB0
ZXN0IGJ5IGRpc3BhdGNoaW5nIHRvIHRoZSBjdXJyZW50CiAvLyBkZWF0aCB0ZXN0IGZhY3Rvcnku
Ci1ib29sIERlYXRoVGVzdDo6Q3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUq
IHJlZ2V4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGlu
ZSwgRGVhdGhUZXN0KiogdGVzdCkgeworYm9vbCBEZWF0aFRlc3Q6OkNyZWF0ZShjb25zdCBjaGFy
KiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgIE1hdGNoZXI8Y29uc3Qgc3RkOjpz
dHJpbmcmPiBtYXRjaGVyLCBjb25zdCBjaGFyKiBmaWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkgewogICByZXR1cm4gR2V0VW5pdFRlc3RJbXBs
KCktPmRlYXRoX3Rlc3RfZmFjdG9yeSgpLT5DcmVhdGUoCi0gICAgICBzdGF0ZW1lbnQsIHJlZ2V4
LCBmaWxlLCBsaW5lLCB0ZXN0KTsKKyAgICAgIHN0YXRlbWVudCwgc3RkOjptb3ZlKG1hdGNoZXIp
LCBmaWxlLCBsaW5lLCB0ZXN0KTsKIH0KIAogY29uc3QgY2hhciogRGVhdGhUZXN0OjpMYXN0TWVz
c2FnZSgpIHsKQEAgLTM4OCw5ICszOTcsOSBAQCBzdGQ6OnN0cmluZyBEZWF0aFRlc3Q6Omxhc3Rf
ZGVhdGhfdGVzdF9tZXNzYWdlXzsKIC8vIFByb3ZpZGVzIGNyb3NzIHBsYXRmb3JtIGltcGxlbWVu
dGF0aW9uIGZvciBzb21lIGRlYXRoIGZ1bmN0aW9uYWxpdHkuCiBjbGFzcyBEZWF0aFRlc3RJbXBs
IDogcHVibGljIERlYXRoVGVzdCB7CiAgcHJvdGVjdGVkOgotICBEZWF0aFRlc3RJbXBsKGNvbnN0
IGNoYXIqIGFfc3RhdGVtZW50LCBjb25zdCBSRSogYV9yZWdleCkKKyAgRGVhdGhUZXN0SW1wbChj
b25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNo
ZXIpCiAgICAgICA6IHN0YXRlbWVudF8oYV9zdGF0ZW1lbnQpLAotICAgICAgICByZWdleF8oYV9y
ZWdleCksCisgICAgICAgIG1hdGNoZXJfKHN0ZDo6bW92ZShtYXRjaGVyKSksCiAgICAgICAgIHNw
YXduZWRfKGZhbHNlKSwKICAgICAgICAgc3RhdHVzXygtMSksCiAgICAgICAgIG91dGNvbWVfKElO
X1BST0dSRVNTKSwKQEAgLTM5OCwxMyArNDA3LDEyIEBAIGNsYXNzIERlYXRoVGVzdEltcGwgOiBw
dWJsaWMgRGVhdGhUZXN0IHsKICAgICAgICAgd3JpdGVfZmRfKC0xKSB7fQogCiAgIC8vIHJlYWRf
ZmRfIGlzIGV4cGVjdGVkIHRvIGJlIGNsb3NlZCBhbmQgY2xlYXJlZCBieSBhIGRlcml2ZWQgY2xh
c3MuCi0gIH5EZWF0aFRlc3RJbXBsKCkgeyBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhyZWFkX2Zk
XyA9PSAtMSk7IH0KKyAgfkRlYXRoVGVzdEltcGwoKSBvdmVycmlkZSB7IEdURVNUX0RFQVRIX1RF
U1RfQ0hFQ0tfKHJlYWRfZmRfID09IC0xKTsgfQogCi0gIHZvaWQgQWJvcnQoQWJvcnRSZWFzb24g
cmVhc29uKTsKLSAgdmlydHVhbCBib29sIFBhc3NlZChib29sIHN0YXR1c19vayk7CisgIHZvaWQg
QWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSBvdmVycmlkZTsKKyAgYm9vbCBQYXNzZWQoYm9vbCBz
dGF0dXNfb2spIG92ZXJyaWRlOwogCiAgIGNvbnN0IGNoYXIqIHN0YXRlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRlbWVudF87IH0KLSAgY29uc3QgUkUqIHJlZ2V4KCkgY29uc3QgeyByZXR1cm4g
cmVnZXhfOyB9CiAgIGJvb2wgc3Bhd25lZCgpIGNvbnN0IHsgcmV0dXJuIHNwYXduZWRfOyB9CiAg
IHZvaWQgc2V0X3NwYXduZWQoYm9vbCBpc19zcGF3bmVkKSB7IHNwYXduZWRfID0gaXNfc3Bhd25l
ZDsgfQogICBpbnQgc3RhdHVzKCkgY29uc3QgeyByZXR1cm4gc3RhdHVzXzsgfQpAQCAtNDIyLDEz
ICs0MzAsMTUgQEAgY2xhc3MgRGVhdGhUZXN0SW1wbCA6IHB1YmxpYyBEZWF0aFRlc3QgewogICAv
LyBjYXNlIG9mIHVuZXhwZWN0ZWQgY29kZXMuCiAgIHZvaWQgUmVhZEFuZEludGVycHJldFN0YXR1
c0J5dGUoKTsKIAorICAvLyBSZXR1cm5zIHN0ZGVyciBvdXRwdXQgZnJvbSB0aGUgY2hpbGQgcHJv
Y2Vzcy4KKyAgdmlydHVhbCBzdGQ6OnN0cmluZyBHZXRFcnJvckxvZ3MoKTsKKwogIHByaXZhdGU6
CiAgIC8vIFRoZSB0ZXh0dWFsIGNvbnRlbnQgb2YgdGhlIGNvZGUgdGhpcyBvYmplY3QgaXMgdGVz
dGluZy4gIFRoaXMgY2xhc3MKICAgLy8gZG9lc24ndCBvd24gdGhpcyBzdHJpbmcgYW5kIHNob3Vs
ZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCiAgIGNvbnN0IGNoYXIqIGNvbnN0IHN0YXRlbWVu
dF87Ci0gIC8vIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gd2hpY2ggdGVzdCBvdXRwdXQgbXVzdCBt
YXRjaC4gIERlYXRoVGVzdEltcGwKLSAgLy8gZG9lc24ndCBvd24gdGhpcyBvYmplY3QgYW5kIHNo
b3VsZCBub3QgYXR0ZW1wdCB0byBkZWxldGUgaXQuCi0gIGNvbnN0IFJFKiBjb25zdCByZWdleF87
CisgIC8vIEEgbWF0Y2hlciB0aGF0J3MgZXhwZWN0ZWQgdG8gbWF0Y2ggdGhlIHN0ZGVyciBvdXRw
dXQgYnkgdGhlIGNoaWxkIHByb2Nlc3MuCisgIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBt
YXRjaGVyXzsKICAgLy8gVHJ1ZSBpZiB0aGUgZGVhdGggdGVzdCBjaGlsZCBwcm9jZXNzIGhhcyBi
ZWVuIHN1Y2Nlc3NmdWxseSBzcGF3bmVkLgogICBib29sIHNwYXduZWRfOwogICAvLyBUaGUgZXhp
dCBzdGF0dXMgb2YgdGhlIGNoaWxkIHByb2Nlc3MuCkBAIC00OTAsNiArNTAwLDEwIEBAIHZvaWQg
RGVhdGhUZXN0SW1wbDo6UmVhZEFuZEludGVycHJldFN0YXR1c0J5dGUoKSB7CiAgIHNldF9yZWFk
X2ZkKC0xKTsKIH0KIAorc3RkOjpzdHJpbmcgRGVhdGhUZXN0SW1wbDo6R2V0RXJyb3JMb2dzKCkg
eworICByZXR1cm4gR2V0Q2FwdHVyZWRTdGRlcnIoKTsKK30KKwogLy8gU2lnbmFscyB0aGF0IHRo
ZSBkZWF0aCB0ZXN0IGNvZGUgd2hpY2ggc2hvdWxkIGhhdmUgZXhpdGVkLCBkaWRuJ3QuCiAvLyBT
aG91bGQgYmUgY2FsbGVkIG9ubHkgaW4gYSBkZWF0aCB0ZXN0IGNoaWxkIHByb2Nlc3MuCiAvLyBX
cml0ZXMgYSBzdGF0dXMgYnl0ZSB0byB0aGUgY2hpbGQncyBzdGF0dXMgZmlsZSBkZXNjcmlwdG9y
LCB0aGVuCkBAIC01NDMsMjIgKzU1NywyMSBAQCBzdGF0aWMgOjpzdGQ6OnN0cmluZyBGb3JtYXRE
ZWF0aFRlc3RPdXRwdXQoY29uc3QgOjpzdGQ6OnN0cmluZyYgb3V0cHV0KSB7CiAvLyAgICAgICAg
ICAgICBpbiB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSB3YWl0KDIpLiBPbiBXaW5kb3dzLCB0aGlz
IGlzIHRoZQogLy8gICAgICAgICAgICAgdmFsdWUgc3VwcGxpZWQgdG8gdGhlIEV4aXRQcm9jZXNz
KCkgQVBJIG9yIGEgbnVtZXJpYyBjb2RlCiAvLyAgICAgICAgICAgICBvZiB0aGUgZXhjZXB0aW9u
IHRoYXQgdGVybWluYXRlZCB0aGUgcHJvZ3JhbS4KLS8vICAgcmVnZXg6ICAgIEEgcmVndWxhciBl
eHByZXNzaW9uIG9iamVjdCB0byBiZSBhcHBsaWVkIHRvCi0vLyAgICAgICAgICAgICB0aGUgdGVz
dCdzIGNhcHR1cmVkIHN0YW5kYXJkIGVycm9yIG91dHB1dDsgdGhlIGRlYXRoIHRlc3QKLS8vICAg
ICAgICAgICAgIGZhaWxzIGlmIGl0IGRvZXMgbm90IG1hdGNoLgorLy8gICBtYXRjaGVyXzogQSBt
YXRjaGVyIHRoYXQncyBleHBlY3RlZCB0byBtYXRjaCB0aGUgc3RkZXJyIG91dHB1dCBieSB0aGUg
Y2hpbGQKKy8vICAgICAgICAgICAgIHByb2Nlc3MuCiAvLwogLy8gQXJndW1lbnQ6CiAvLyAgIHN0
YXR1c19vazogdHJ1ZSBpZiBleGl0X3N0YXR1cyBpcyBhY2NlcHRhYmxlIGluIHRoZSBjb250ZXh0
IG9mCiAvLyAgICAgICAgICAgICAgdGhpcyBwYXJ0aWN1bGFyIGRlYXRoIHRlc3QsIHdoaWNoIGZh
aWxzIGlmIGl0IGlzIGZhbHNlCiAvLwotLy8gUmV0dXJucyB0cnVlIGlmZiBhbGwgb2YgdGhlIGFi
b3ZlIGNvbmRpdGlvbnMgYXJlIG1ldC4gIE90aGVyd2lzZSwgdGhlCi0vLyBmaXJzdCBmYWlsaW5n
IGNvbmRpdGlvbiwgaW4gdGhlIG9yZGVyIGdpdmVuIGFib3ZlLCBpcyB0aGUgb25lIHRoYXQgaXMK
Ky8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBhbGwgb2YgdGhlIGFib3ZlIGNvbmRpdGlv
bnMgYXJlIG1ldC4gIE90aGVyd2lzZSwKKy8vIHRoZSBmaXJzdCBmYWlsaW5nIGNvbmRpdGlvbiwg
aW4gdGhlIG9yZGVyIGdpdmVuIGFib3ZlLCBpcyB0aGUgb25lIHRoYXQgaXMKIC8vIHJlcG9ydGVk
LiBBbHNvIHNldHMgdGhlIGxhc3QgZGVhdGggdGVzdCBtZXNzYWdlIHN0cmluZy4KIGJvb2wgRGVh
dGhUZXN0SW1wbDo6UGFzc2VkKGJvb2wgc3RhdHVzX29rKSB7CiAgIGlmICghc3Bhd25lZCgpKQog
ICAgIHJldHVybiBmYWxzZTsKIAotICBjb25zdCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdlID0g
R2V0Q2FwdHVyZWRTdGRlcnIoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZXJyb3JfbWVzc2FnZSA9
IEdldEVycm9yTG9ncygpOwogCiAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICBNZXNzYWdlIGJ1
ZmZlcjsKQEAgLTU3OSwxOCArNTkyLDE1IEBAIGJvb2wgRGVhdGhUZXN0SW1wbDo6UGFzc2VkKGJv
b2wgc3RhdHVzX29rKSB7CiAgICAgICBicmVhazsKICAgICBjYXNlIERJRUQ6CiAgICAgICBpZiAo
c3RhdHVzX29rKSB7Ci0jIGlmIEdURVNUX1VTRVNfUENSRQotICAgICAgICAvLyBQQ1JFIHJlZ2V4
ZXMgc3VwcG9ydCBlbWJlZGRlZCBOVUxzLgotICAgICAgICBjb25zdCBib29sIG1hdGNoZWQgPSBS
RTo6UGFydGlhbE1hdGNoKGVycm9yX21lc3NhZ2UsICpyZWdleCgpKTsKLSMgZWxzZQotICAgICAg
ICBjb25zdCBib29sIG1hdGNoZWQgPSBSRTo6UGFydGlhbE1hdGNoKGVycm9yX21lc3NhZ2UuY19z
dHIoKSwgKnJlZ2V4KCkpOwotIyBlbmRpZiAgLy8gR1RFU1RfVVNFU19QQ1JFCi0gICAgICAgIGlm
IChtYXRjaGVkKSB7CisgICAgICAgIGlmIChtYXRjaGVyXy5NYXRjaGVzKGVycm9yX21lc3NhZ2Up
KSB7CiAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgc3RkOjpvc3RyaW5nc3RyZWFtIHN0cmVhbTsKKyAgICAgICAgICBtYXRjaGVyXy5EZXNjcmli
ZVRvKCZzdHJlYW0pOwogICAgICAgICAgIGJ1ZmZlciA8PCAiICAgIFJlc3VsdDogZGllZCBidXQg
bm90IHdpdGggZXhwZWN0ZWQgZXJyb3IuXG4iCi0gICAgICAgICAgICAgICAgIDw8ICIgIEV4cGVj
dGVkOiAiIDw8IHJlZ2V4KCktPnBhdHRlcm4oKSA8PCAiXG4iCi0gICAgICAgICAgICAgICAgIDw8
ICJBY3R1YWwgbXNnOlxuIiA8PCBGb3JtYXREZWF0aFRlc3RPdXRwdXQoZXJyb3JfbWVzc2FnZSk7
CisgICAgICAgICAgICAgICAgIDw8ICIgIEV4cGVjdGVkOiAiIDw8IHN0cmVhbS5zdHIoKSA8PCAi
XG4iCisgICAgICAgICAgICAgICAgIDw8ICJBY3R1YWwgbXNnOlxuIgorICAgICAgICAgICAgICAg
ICA8PCBGb3JtYXREZWF0aFRlc3RPdXRwdXQoZXJyb3JfbWVzc2FnZSk7CiAgICAgICAgIH0KICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgIGJ1ZmZlciA8PCAiICAgIFJlc3VsdDogZGllZCBidXQgbm90
IHdpdGggZXhwZWN0ZWQgZXhpdCBjb2RlOlxuIgpAQCAtNjM5LDExICs2NDksMTEgQEAgYm9vbCBE
ZWF0aFRlc3RJbXBsOjpQYXNzZWQoYm9vbCBzdGF0dXNfb2spIHsKIC8vCiBjbGFzcyBXaW5kb3dz
RGVhdGhUZXN0IDogcHVibGljIERlYXRoVGVzdEltcGwgewogIHB1YmxpYzoKLSAgV2luZG93c0Rl
YXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwKLSAgICAgICAgICAgICAgICAgICBjb25z
dCBSRSogYV9yZWdleCwKLSAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlLAotICAg
ICAgICAgICAgICAgICAgIGludCBsaW5lKQotICAgICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVt
ZW50LCBhX3JlZ2V4KSwgZmlsZV8oZmlsZSksIGxpbmVfKGxpbmUpIHt9CisgIFdpbmRvd3NEZWF0
aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcm
PiBtYXRjaGVyLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5l
KQorICAgICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlcikp
LAorICAgICAgICBmaWxlXyhmaWxlKSwKKyAgICAgICAgbGluZV8obGluZSkge30KIAogICAvLyBB
bGwgb2YgdGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIERlYXRoVGVz
dC4KICAgdmlydHVhbCBpbnQgV2FpdCgpOwpAQCAtNzIwLDcgKzczMCw3IEBAIERlYXRoVGVzdDo6
VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKICAgY29uc3QgVGVzdElu
Zm8qIGNvbnN0IGluZm8gPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogICBjb25zdCBpbnQg
ZGVhdGhfdGVzdF9pbmRleCA9IGluZm8tPnJlc3VsdCgpLT5kZWF0aF90ZXN0X2NvdW50KCk7CiAK
LSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRyKSB7CiAgICAgLy8g
UGFyc2VJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWcoKSBoYXMgcGVyZm9ybWVkIGFsbCB0aGUgbmVj
ZXNzYXJ5CiAgICAgLy8gcHJvY2Vzc2luZy4KICAgICBzZXRfd3JpdGVfZmQoZmxhZy0+d3JpdGVf
ZmQoKSk7CkBAIC03MjksOCArNzM5LDggQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVh
dGhUZXN0OjpBc3N1bWVSb2xlKCkgewogCiAgIC8vIFdpbmRvd3NEZWF0aFRlc3QgdXNlcyBhbiBh
bm9ueW1vdXMgcGlwZSB0byBjb21tdW5pY2F0ZSByZXN1bHRzIG9mCiAgIC8vIGEgZGVhdGggdGVz
dC4KLSAgU0VDVVJJVFlfQVRUUklCVVRFUyBoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSA9IHsKLSAg
ICBzaXplb2YoU0VDVVJJVFlfQVRUUklCVVRFUyksIE5VTEwsIFRSVUUgfTsKKyAgU0VDVVJJVFlf
QVRUUklCVVRFUyBoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSA9IHtzaXplb2YoU0VDVVJJVFlfQVRU
UklCVVRFUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVsbHB0ciwgVFJVRX07CiAgIEhBTkRMRSByZWFkX2hhbmRsZSwgd3JpdGVfaGFuZGxlOwog
ICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXygKICAgICAgIDo6Q3JlYXRlUGlwZSgmcmVhZF9oYW5k
bGUsICZ3cml0ZV9oYW5kbGUsICZoYW5kbGVzX2FyZV9pbmhlcml0YWJsZSwKQEAgLTc0MSwxMyAr
NzUxLDEzIEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9s
ZSgpIHsKICAgd3JpdGVfaGFuZGxlXy5SZXNldCh3cml0ZV9oYW5kbGUpOwogICBldmVudF9oYW5k
bGVfLlJlc2V0KDo6Q3JlYXRlRXZlbnQoCiAgICAgICAmaGFuZGxlc19hcmVfaW5oZXJpdGFibGUs
Ci0gICAgICBUUlVFLCAgICAvLyBUaGUgZXZlbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc2V0IHRv
IG5vbi1zaWduYWxlZCBzdGF0ZS4KLSAgICAgIEZBTFNFLCAgIC8vIFRoZSBpbml0aWFsIHN0YXRl
IGlzIG5vbi1zaWduYWxsZWQuCi0gICAgICBOVUxMKSk7ICAvLyBUaGUgZXZlbiBpcyB1bm5hbWVk
LgotICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhldmVudF9oYW5kbGVfLkdldCgpICE9IE5VTEwp
OwotICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygi
LS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iICsKLSAgICAgIGlu
Zm8tPnRlc3RfY2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgICAgICBUUlVFLCAg
ICAgICAvLyBUaGUgZXZlbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc2V0IHRvIG5vbi1zaWduYWxl
ZCBzdGF0ZS4KKyAgICAgIEZBTFNFLCAgICAgIC8vIFRoZSBpbml0aWFsIHN0YXRlIGlzIG5vbi1z
aWduYWxsZWQuCisgICAgICBudWxscHRyKSk7ICAvLyBUaGUgZXZlbiBpcyB1bm5hbWVkLgorICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXyhldmVudF9oYW5kbGVfLkdldCgpICE9IG51bGxwdHIpOwor
ICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9IHN0ZDo6c3RyaW5nKCItLSIpICsgR1RF
U1RfRkxBR19QUkVGSVhfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRmls
dGVyRmxhZyArICI9IiArIGluZm8tPnRlc3Rfc3VpdGVfbmFtZSgpICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLiIgKyBpbmZvLT5uYW1lKCk7CiAgIGNvbnN0IHN0ZDo6c3Ry
aW5nIGludGVybmFsX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFH
X1BSRUZJWF8gKyBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnICsKICAgICAgICI9IiArIGZpbGVf
ICsgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmVfKSArICJ8IiArCkBAIC03NjAsMTAgKzc3
MCw5IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgp
IHsKICAgICAgICJ8IiArIFN0cmVhbWFibGVUb1N0cmluZyhyZWludGVycHJldF9jYXN0PHNpemVf
dD4oZXZlbnRfaGFuZGxlXy5HZXQoKSkpOwogCiAgIGNoYXIgZXhlY3V0YWJsZV9wYXRoW19NQVhf
UEFUSCArIDFdOyAgLy8gTk9MSU5UCi0gIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKAotICAgICAg
X01BWF9QQVRIICsgMSAhPSA6OkdldE1vZHVsZUZpbGVOYW1lQShOVUxMLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NQVhfUEFUSCkpOworICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLXyhfTUFYX1BBVEggKyAxICE9IDo6R2V0TW9kdWxlRmlsZU5hbWVB
KG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NQVhfUEFUSCkpOwog
CiAgIHN0ZDo6c3RyaW5nIGNvbW1hbmRfbGluZSA9CiAgICAgICBzdGQ6OnN0cmluZyg6OkdldENv
bW1hbmRMaW5lQSgpKSArICIgIiArIGZpbHRlcl9mbGFnICsgIiBcIiIgKwpAQCAtNzg0LDE3ICs3
OTMsMTYgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBXaW5kb3dzRGVhdGhUZXN0OjpBc3N1bWVSb2xl
KCkgewogICBzdGFydHVwX2luZm8uaFN0ZEVycm9yID0gOjpHZXRTdGRIYW5kbGUoU1REX0VSUk9S
X0hBTkRMRSk7CiAKICAgUFJPQ0VTU19JTkZPUk1BVElPTiBwcm9jZXNzX2luZm87Ci0gIEdURVNU
X0RFQVRIX1RFU1RfQ0hFQ0tfKDo6Q3JlYXRlUHJvY2Vzc0EoCi0gICAgICBleGVjdXRhYmxlX3Bh
dGgsCi0gICAgICBjb25zdF9jYXN0PGNoYXIqPihjb21tYW5kX2xpbmUuY19zdHIoKSksCi0gICAg
ICBOVUxMLCAgIC8vIFJldHVuZWQgcHJvY2VzcyBoYW5kbGUgaXMgbm90IGluaGVyaXRhYmxlLgot
ICAgICAgTlVMTCwgICAvLyBSZXR1bmVkIHRocmVhZCBoYW5kbGUgaXMgbm90IGluaGVyaXRhYmxl
LgotICAgICAgVFJVRSwgICAvLyBDaGlsZCBpbmhlcml0cyBhbGwgaW5oZXJpdGFibGUgaGFuZGxl
cyAoZm9yIHdyaXRlX2hhbmRsZV8pLgotICAgICAgMHgwLCAgICAvLyBEZWZhdWx0IGNyZWF0aW9u
IGZsYWdzLgotICAgICAgTlVMTCwgICAvLyBJbmhlcml0IHRoZSBwYXJlbnQncyBlbnZpcm9ubWVu
dC4KLSAgICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2Rpcigp
LAotICAgICAgJnN0YXJ0dXBfaW5mbywKLSAgICAgICZwcm9jZXNzX2luZm8pICE9IEZBTFNFKTsK
KyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oCisgICAgICA6OkNyZWF0ZVByb2Nlc3NBKAorICAg
ICAgICAgIGV4ZWN1dGFibGVfcGF0aCwgY29uc3RfY2FzdDxjaGFyKj4oY29tbWFuZF9saW5lLmNf
c3RyKCkpLAorICAgICAgICAgIG51bGxwdHIsICAvLyBSZXR1bmVkIHByb2Nlc3MgaGFuZGxlIGlz
IG5vdCBpbmhlcml0YWJsZS4KKyAgICAgICAgICBudWxscHRyLCAgLy8gUmV0dW5lZCB0aHJlYWQg
aGFuZGxlIGlzIG5vdCBpbmhlcml0YWJsZS4KKyAgICAgICAgICBUUlVFLCAgLy8gQ2hpbGQgaW5o
ZXJpdHMgYWxsIGluaGVyaXRhYmxlIGhhbmRsZXMgKGZvciB3cml0ZV9oYW5kbGVfKS4KKyAgICAg
ICAgICAweDAsICAgLy8gRGVmYXVsdCBjcmVhdGlvbiBmbGFncy4KKyAgICAgICAgICBudWxscHRy
LCAgLy8gSW5oZXJpdCB0aGUgcGFyZW50J3MgZW52aXJvbm1lbnQuCisgICAgICAgICAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPm9yaWdpbmFsX3dvcmtpbmdfZGlyKCksICZzdGFydHVwX2luZm8s
CisgICAgICAgICAgJnByb2Nlc3NfaW5mbykgIT0gRkFMU0UpOwogICBjaGlsZF9oYW5kbGVfLlJl
c2V0KHByb2Nlc3NfaW5mby5oUHJvY2Vzcyk7CiAgIDo6Q2xvc2VIYW5kbGUocHJvY2Vzc19pbmZv
LmhUaHJlYWQpOwogICBzZXRfc3Bhd25lZCh0cnVlKTsKQEAgLTgwNSwzOCArODEzLDM0IEBAIERl
YXRoVGVzdDo6VGVzdFJvbGUgV2luZG93c0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKIAogY2xh
c3MgRnVjaHNpYURlYXRoVGVzdCA6IHB1YmxpYyBEZWF0aFRlc3RJbXBsIHsKICBwdWJsaWM6Ci0g
IEZ1Y2hzaWFEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1lbnQsCi0gICAgICAgICAgICAg
ICAgICAgY29uc3QgUkUqIGFfcmVnZXgsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZmlsZSwKLSAgICAgICAgICAgICAgICAgICBpbnQgbGluZSkKLSAgICAgIDogRGVhdGhUZXN0SW1w
bChhX3N0YXRlbWVudCwgYV9yZWdleCksIGZpbGVfKGZpbGUpLCBsaW5lXyhsaW5lKSB7fQotICB2
aXJ0dWFsIH5GdWNoc2lhRGVhdGhUZXN0KCkgewotICAgIHp4X3N0YXR1c190IHN0YXR1cyA9IHp4
X2hhbmRsZV9jbG9zZShjaGlsZF9wcm9jZXNzXyk7Ci0gICAgR1RFU1RfREVBVEhfVEVTVF9DSEVD
S18oc3RhdHVzID09IFpYX09LKTsKLSAgICBzdGF0dXMgPSB6eF9oYW5kbGVfY2xvc2UocG9ydF8p
OwotICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7Ci0gIH0KKyAg
RnVjaHNpYURlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBz
dGQ6OnN0cmluZyY+IG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmls
ZSwgaW50IGxpbmUpCisgICAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92
ZShtYXRjaGVyKSksCisgICAgICAgIGZpbGVfKGZpbGUpLAorICAgICAgICBsaW5lXyhsaW5lKSB7
fQogCiAgIC8vIEFsbCBvZiB0aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5oZXJpdGVkIGZy
b20gRGVhdGhUZXN0LgotICB2aXJ0dWFsIGludCBXYWl0KCk7Ci0gIHZpcnR1YWwgVGVzdFJvbGUg
QXNzdW1lUm9sZSgpOworICBpbnQgV2FpdCgpIG92ZXJyaWRlOworICBUZXN0Um9sZSBBc3N1bWVS
b2xlKCkgb3ZlcnJpZGU7CisgIHN0ZDo6c3RyaW5nIEdldEVycm9yTG9ncygpIG92ZXJyaWRlOwog
CiAgcHJpdmF0ZToKICAgLy8gVGhlIG5hbWUgb2YgdGhlIGZpbGUgaW4gd2hpY2ggdGhlIGRlYXRo
IHRlc3QgaXMgbG9jYXRlZC4KICAgY29uc3QgY2hhciogY29uc3QgZmlsZV87CiAgIC8vIFRoZSBs
aW5lIG51bWJlciBvbiB3aGljaCB0aGUgZGVhdGggdGVzdCBpcyBsb2NhdGVkLgogICBjb25zdCBp
bnQgbGluZV87CisgIC8vIFRoZSBzdGRlcnIgZGF0YSBjYXB0dXJlZCBieSB0aGUgY2hpbGQgcHJv
Y2Vzcy4KKyAgc3RkOjpzdHJpbmcgY2FwdHVyZWRfc3RkZXJyXzsKIAotICB6eF9oYW5kbGVfdCBj
aGlsZF9wcm9jZXNzXyA9IFpYX0hBTkRMRV9JTlZBTElEOwotICB6eF9oYW5kbGVfdCBwb3J0XyA9
IFpYX0hBTkRMRV9JTlZBTElEOworICB6eDo6cHJvY2VzcyBjaGlsZF9wcm9jZXNzXzsKKyAgeng6
OmNoYW5uZWwgZXhjZXB0aW9uX2NoYW5uZWxfOworICB6eDo6c29ja2V0IHN0ZGVycl9zb2NrZXRf
OwogfTsKIAogLy8gVXRpbGl0eSBjbGFzcyBmb3IgYWNjdW11bGF0aW5nIGNvbW1hbmQtbGluZSBh
cmd1bWVudHMuCiBjbGFzcyBBcmd1bWVudHMgewogIHB1YmxpYzoKLSAgQXJndW1lbnRzKCkgewot
ICAgIGFyZ3NfLnB1c2hfYmFjayhOVUxMKTsKLSAgfQorICBBcmd1bWVudHMoKSB7IGFyZ3NfLnB1
c2hfYmFjayhudWxscHRyKTsgfQogCiAgIH5Bcmd1bWVudHMoKSB7CiAgICAgZm9yIChzdGQ6OnZl
Y3RvcjxjaGFyKj46Oml0ZXJhdG9yIGkgPSBhcmdzXy5iZWdpbigpOyBpICE9IGFyZ3NfLmVuZCgp
OwpAQCAtODcyLDUxICs4NzYsODYgQEAgY2xhc3MgQXJndW1lbnRzIHsKIC8vIHN0YXR1cywgb3Ig
MCBpZiBubyBjaGlsZCBwcm9jZXNzIGV4aXN0cy4gIEFzIGEgc2lkZSBlZmZlY3QsIHNldHMgdGhl
CiAvLyBvdXRjb21lIGRhdGEgbWVtYmVyLgogaW50IEZ1Y2hzaWFEZWF0aFRlc3Q6OldhaXQoKSB7
CisgIGNvbnN0IGludCBrUHJvY2Vzc0tleSA9IDA7CisgIGNvbnN0IGludCBrU29ja2V0S2V5ID0g
MTsKKyAgY29uc3QgaW50IGtFeGNlcHRpb25LZXkgPSAyOworCiAgIGlmICghc3Bhd25lZCgpKQog
ICAgIHJldHVybiAwOwogCi0gIC8vIFJlZ2lzdGVyIHRvIHdhaXQgZm9yIHRoZSBjaGlsZCBwcm9j
ZXNzIHRvIHRlcm1pbmF0ZS4KKyAgLy8gQ3JlYXRlIGEgcG9ydCB0byB3YWl0IGZvciBzb2NrZXQv
dGFzay9leGNlcHRpb24gZXZlbnRzLgogICB6eF9zdGF0dXNfdCBzdGF0dXNfeng7Ci0gIHN0YXR1
c196eCA9IHp4X29iamVjdF93YWl0X2FzeW5jKGNoaWxkX3Byb2Nlc3NfLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0XywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCAvKiBrZXkgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFpYX1BST0NFU1NfVEVSTUlOQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWlhfV0FJVF9BU1lOQ19PTkNFKTsKKyAgeng6OnBvcnQgcG9ydDsKKyAgc3RhdHVzX3p4ID0g
eng6OnBvcnQ6OmNyZWF0ZSgwLCAmcG9ydCk7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0
YXR1c196eCA9PSBaWF9PSyk7CiAKLSAgLy8gV2FpdCBmb3IgaXQgdG8gdGVybWluYXRlLCBvciBh
biBleGNlcHRpb24gdG8gYmUgcmVjZWl2ZWQuCi0gIHp4X3BvcnRfcGFja2V0X3QgcGFja2V0Owot
ICBzdGF0dXNfenggPSB6eF9wb3J0X3dhaXQocG9ydF8sIFpYX1RJTUVfSU5GSU5JVEUsICZwYWNr
ZXQpOworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciB0aGUgY2hpbGQgcHJvY2VzcyB0byB0ZXJt
aW5hdGUuCisgIHN0YXR1c196eCA9IGNoaWxkX3Byb2Nlc3NfLndhaXRfYXN5bmMoCisgICAgICBw
b3J0LCBrUHJvY2Vzc0tleSwgWlhfUFJPQ0VTU19URVJNSU5BVEVELCAwKTsKICAgR1RFU1RfREVB
VEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKIAotICBpZiAoWlhfUEtUX0lTX0VY
Q0VQVElPTihwYWNrZXQudHlwZSkpIHsKLSAgICAvLyBQcm9jZXNzIGVuY291bnRlcmVkIGFuIGV4
Y2VwdGlvbi4gS2lsbCBpdCBkaXJlY3RseSByYXRoZXIgdGhhbiBsZXR0aW5nCi0gICAgLy8gb3Ro
ZXIgaGFuZGxlcnMgcHJvY2VzcyB0aGUgZXZlbnQuCi0gICAgc3RhdHVzX3p4ID0genhfdGFza19r
aWxsKGNoaWxkX3Byb2Nlc3NfKTsKLSAgICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNf
enggPT0gWlhfT0spOworICAvLyBSZWdpc3RlciB0byB3YWl0IGZvciB0aGUgc29ja2V0IHRvIGJl
IHJlYWRhYmxlIG9yIGNsb3NlZC4KKyAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tldF8ud2FpdF9h
c3luYygKKyAgICAgIHBvcnQsIGtTb2NrZXRLZXksIFpYX1NPQ0tFVF9SRUFEQUJMRSB8IFpYX1NP
Q0tFVF9QRUVSX0NMT1NFRCwgMCk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196
eCA9PSBaWF9PSyk7CisKKyAgLy8gUmVnaXN0ZXIgdG8gd2FpdCBmb3IgYW4gZXhjZXB0aW9uLgor
ICBzdGF0dXNfenggPSBleGNlcHRpb25fY2hhbm5lbF8ud2FpdF9hc3luYygKKyAgICAgIHBvcnQs
IGtFeGNlcHRpb25LZXksIFpYX0NIQU5ORUxfUkVBREFCTEUsIDApOworICBHVEVTVF9ERUFUSF9U
RVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwogCi0gICAgLy8gTm93IHdhaXQgZm9yIHxj
aGlsZF9wcm9jZXNzX3wgdG8gdGVybWluYXRlLgotICAgIHp4X3NpZ25hbHNfdCBzaWduYWxzID0g
MDsKLSAgICBzdGF0dXNfenggPSB6eF9vYmplY3Rfd2FpdF9vbmUoCi0gICAgICAgIGNoaWxkX3By
b2Nlc3NfLCBaWF9QUk9DRVNTX1RFUk1JTkFURUQsIFpYX1RJTUVfSU5GSU5JVEUsICZzaWduYWxz
KTsKKyAgYm9vbCBwcm9jZXNzX3Rlcm1pbmF0ZWQgPSBmYWxzZTsKKyAgYm9vbCBzb2NrZXRfY2xv
c2VkID0gZmFsc2U7CisgIGRvIHsKKyAgICB6eF9wb3J0X3BhY2tldF90IHBhY2tldCA9IHt9Owor
ICAgIHN0YXR1c196eCA9IHBvcnQud2FpdCh6eDo6dGltZTo6aW5maW5pdGUoKSwgJnBhY2tldCk7
CiAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKLSAgICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzaWduYWxzICYgWlhfUFJPQ0VTU19URVJNSU5BVEVEKTsK
LSAgfSBlbHNlIHsKLSAgICAvLyBQcm9jZXNzIHRlcm1pbmF0ZWQuCi0gICAgR1RFU1RfREVBVEhf
VEVTVF9DSEVDS18oWlhfUEtUX0lTX1NJR05BTF9PTkUocGFja2V0LnR5cGUpKTsKLSAgICBHVEVT
VF9ERUFUSF9URVNUX0NIRUNLXyhwYWNrZXQuc2lnbmFsLm9ic2VydmVkICYgWlhfUFJPQ0VTU19U
RVJNSU5BVEVEKTsKLSAgfQorCisgICAgaWYgKHBhY2tldC5rZXkgPT0ga0V4Y2VwdGlvbktleSkg
eworICAgICAgLy8gUHJvY2VzcyBlbmNvdW50ZXJlZCBhbiBleGNlcHRpb24uIEtpbGwgaXQgZGly
ZWN0bHkgcmF0aGVyIHRoYW4KKyAgICAgIC8vIGxldHRpbmcgb3RoZXIgaGFuZGxlcnMgcHJvY2Vz
cyB0aGUgZXZlbnQuIFdlIHdpbGwgZ2V0IGEga1Byb2Nlc3NLZXkKKyAgICAgIC8vIGV2ZW50IHdo
ZW4gdGhlIHByb2Nlc3MgYWN0dWFsbHkgdGVybWluYXRlcy4KKyAgICAgIHN0YXR1c196eCA9IGNo
aWxkX3Byb2Nlc3NfLmtpbGwoKTsKKyAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1
c196eCA9PSBaWF9PSyk7CisgICAgfSBlbHNlIGlmIChwYWNrZXQua2V5ID09IGtQcm9jZXNzS2V5
KSB7CisgICAgICAvLyBQcm9jZXNzIHRlcm1pbmF0ZWQuCisgICAgICBHVEVTVF9ERUFUSF9URVNU
X0NIRUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOworICAgICAgR1RFU1Rf
REVBVEhfVEVTVF9DSEVDS18ocGFja2V0LnNpZ25hbC5vYnNlcnZlZCAmIFpYX1BST0NFU1NfVEVS
TUlOQVRFRCk7CisgICAgICBwcm9jZXNzX3Rlcm1pbmF0ZWQgPSB0cnVlOworICAgIH0gZWxzZSBp
ZiAocGFja2V0LmtleSA9PSBrU29ja2V0S2V5KSB7CisgICAgICBHVEVTVF9ERUFUSF9URVNUX0NI
RUNLXyhaWF9QS1RfSVNfU0lHTkFMX09ORShwYWNrZXQudHlwZSkpOworICAgICAgaWYgKHBhY2tl
dC5zaWduYWwub2JzZXJ2ZWQgJiBaWF9TT0NLRVRfUkVBREFCTEUpIHsKKyAgICAgICAgLy8gUmVh
ZCBkYXRhIGZyb20gdGhlIHNvY2tldC4KKyAgICAgICAgY29uc3RleHByIHNpemVfdCBrQnVmZmVy
U2l6ZSA9IDEwMjQ7CisgICAgICAgIGRvIHsKKyAgICAgICAgICBzaXplX3Qgb2xkX2xlbmd0aCA9
IGNhcHR1cmVkX3N0ZGVycl8ubGVuZ3RoKCk7CisgICAgICAgICAgc2l6ZV90IGJ5dGVzX3JlYWQg
PSAwOworICAgICAgICAgIGNhcHR1cmVkX3N0ZGVycl8ucmVzaXplKG9sZF9sZW5ndGggKyBrQnVm
ZmVyU2l6ZSk7CisgICAgICAgICAgc3RhdHVzX3p4ID0gc3RkZXJyX3NvY2tldF8ucmVhZCgKKyAg
ICAgICAgICAgICAgMCwgJmNhcHR1cmVkX3N0ZGVycl8uZnJvbnQoKSArIG9sZF9sZW5ndGgsIGtC
dWZmZXJTaXplLAorICAgICAgICAgICAgICAmYnl0ZXNfcmVhZCk7CisgICAgICAgICAgY2FwdHVy
ZWRfc3RkZXJyXy5yZXNpemUob2xkX2xlbmd0aCArIGJ5dGVzX3JlYWQpOworICAgICAgICB9IHdo
aWxlIChzdGF0dXNfenggPT0gWlhfT0spOworICAgICAgICBpZiAoc3RhdHVzX3p4ID09IFpYX0VS
Ul9QRUVSX0NMT1NFRCkgeworICAgICAgICAgIHNvY2tldF9jbG9zZWQgPSB0cnVlOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1c196eCA9
PSBaWF9FUlJfU0hPVUxEX1dBSVQpOworICAgICAgICAgIHN0YXR1c196eCA9IHN0ZGVycl9zb2Nr
ZXRfLndhaXRfYXN5bmMoCisgICAgICAgICAgICAgIHBvcnQsIGtTb2NrZXRLZXksIFpYX1NPQ0tF
VF9SRUFEQUJMRSB8IFpYX1NPQ0tFVF9QRUVSX0NMT1NFRCwgMCk7CisgICAgICAgICAgR1RFU1Rf
REVBVEhfVEVTVF9DSEVDS18oc3RhdHVzX3p4ID09IFpYX09LKTsKKyAgICAgICAgfQorICAgICAg
fSBlbHNlIHsKKyAgICAgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18ocGFja2V0LnNpZ25hbC5v
YnNlcnZlZCAmIFpYX1NPQ0tFVF9QRUVSX0NMT1NFRCk7CisgICAgICAgIHNvY2tldF9jbG9zZWQg
PSB0cnVlOworICAgICAgfQorICAgIH0KKyAgfSB3aGlsZSAoIXByb2Nlc3NfdGVybWluYXRlZCAm
JiAhc29ja2V0X2Nsb3NlZCk7CiAKICAgUmVhZEFuZEludGVycHJldFN0YXR1c0J5dGUoKTsKIAog
ICB6eF9pbmZvX3Byb2Nlc3NfdCBidWZmZXI7Ci0gIHN0YXR1c196eCA9IHp4X29iamVjdF9nZXRf
aW5mbygKLSAgICAgIGNoaWxkX3Byb2Nlc3NfLAotICAgICAgWlhfSU5GT19QUk9DRVNTLAotICAg
ICAgJmJ1ZmZlciwKLSAgICAgIHNpemVvZihidWZmZXIpLAotICAgICAgbnVsbHB0ciwKLSAgICAg
IG51bGxwdHIpOworICBzdGF0dXNfenggPSBjaGlsZF9wcm9jZXNzXy5nZXRfaW5mbygKKyAgICAg
IFpYX0lORk9fUFJPQ0VTUywgJmJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIG51bGxwdHIsIG51bGxw
dHIpOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXNfenggPT0gWlhfT0spOwogCiAg
IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGJ1ZmZlci5leGl0ZWQpOwpAQCAtOTM2LDIxICs5NzUs
MjAgQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBGdWNoc2lhRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkg
ewogICBjb25zdCBUZXN0SW5mbyogY29uc3QgaW5mbyA9IGltcGwtPmN1cnJlbnRfdGVzdF9pbmZv
KCk7CiAgIGNvbnN0IGludCBkZWF0aF90ZXN0X2luZGV4ID0gaW5mby0+cmVzdWx0KCktPmRlYXRo
X3Rlc3RfY291bnQoKTsKIAotICBpZiAoZmxhZyAhPSBOVUxMKSB7CisgIGlmIChmbGFnICE9IG51
bGxwdHIpIHsKICAgICAvLyBQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIGhhcyBwZXJm
b3JtZWQgYWxsIHRoZSBuZWNlc3NhcnkKICAgICAvLyBwcm9jZXNzaW5nLgogICAgIHNldF93cml0
ZV9mZChrRnVjaHNpYVJlYWRQaXBlRmQpOwogICAgIHJldHVybiBFWEVDVVRFX1RFU1Q7CiAgIH0K
IAotICBDYXB0dXJlU3RkZXJyKCk7CiAgIC8vIEZsdXNoIHRoZSBsb2cgYnVmZmVycyBzaW5jZSB0
aGUgbG9nIHN0cmVhbXMgYXJlIHNoYXJlZCB3aXRoIHRoZSBjaGlsZC4KICAgRmx1c2hJbmZvTG9n
KCk7CiAKICAgLy8gQnVpbGQgdGhlIGNoaWxkIHByb2Nlc3MgY29tbWFuZCBsaW5lLgotICBjb25z
dCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9Ci0gICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdU
RVNUX0ZMQUdfUFJFRklYXyArIGtGaWx0ZXJGbGFnICsgIj0iCi0gICAgICArIGluZm8tPnRlc3Rf
Y2FzZV9uYW1lKCkgKyAiLiIgKyBpbmZvLT5uYW1lKCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGZp
bHRlcl9mbGFnID0gc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtGaWx0ZXJGbGFnICsgIj0iICsgaW5mby0+
dGVzdF9zdWl0ZV9uYW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIu
IiArIGluZm8tPm5hbWUoKTsKICAgY29uc3Qgc3RkOjpzdHJpbmcgaW50ZXJuYWxfZmxhZyA9CiAg
ICAgICBzdGQ6OnN0cmluZygiLS0iKSArIEdURVNUX0ZMQUdfUFJFRklYXyArIGtJbnRlcm5hbFJ1
bkRlYXRoVGVzdEZsYWcgKyAiPSIKICAgICAgICsgZmlsZV8gKyAifCIKQEAgLTk2NCwzNSArMTAw
Miw2OCBAQCBEZWF0aFRlc3Q6OlRlc3RSb2xlIEZ1Y2hzaWFEZWF0aFRlc3Q6OkFzc3VtZVJvbGUo
KSB7CiAgIC8vIEJ1aWxkIHRoZSBwaXBlIGZvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGNoaWxk
LgogICB6eF9zdGF0dXNfdCBzdGF0dXM7CiAgIHp4X2hhbmRsZV90IGNoaWxkX3BpcGVfaGFuZGxl
OwotICB1aW50MzJfdCB0eXBlOwotICBzdGF0dXMgPSBmZGlvX3BpcGVfaGFsZigmY2hpbGRfcGlw
ZV9oYW5kbGUsICZ0eXBlKTsKLSAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhdHVzID49IDAp
OwotICBzZXRfcmVhZF9mZChzdGF0dXMpOworICBpbnQgY2hpbGRfcGlwZV9mZDsKKyAgc3RhdHVz
ID0gZmRpb19waXBlX2hhbGYoJmNoaWxkX3BpcGVfZmQsICZjaGlsZF9waXBlX2hhbmRsZSk7Cisg
IEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CisgIHNldF9yZWFkX2Zk
KGNoaWxkX3BpcGVfZmQpOwogCiAgIC8vIFNldCB0aGUgcGlwZSBoYW5kbGUgZm9yIHRoZSBjaGls
ZC4KLSAgZmRpb19zcGF3bl9hY3Rpb25fdCBhZGRfaGFuZGxlX2FjdGlvbiA9IHt9OwotICBhZGRf
aGFuZGxlX2FjdGlvbi5hY3Rpb24gPSBGRElPX1NQQVdOX0FDVElPTl9BRERfSEFORExFOwotICBh
ZGRfaGFuZGxlX2FjdGlvbi5oLmlkID0gUEFfSE5EKHR5cGUsIGtGdWNoc2lhUmVhZFBpcGVGZCk7
Ci0gIGFkZF9oYW5kbGVfYWN0aW9uLmguaGFuZGxlID0gY2hpbGRfcGlwZV9oYW5kbGU7CisgIGZk
aW9fc3Bhd25fYWN0aW9uX3Qgc3Bhd25fYWN0aW9uc1syXSA9IHt9OworICBmZGlvX3NwYXduX2Fj
dGlvbl90KiBhZGRfaGFuZGxlX2FjdGlvbiA9ICZzcGF3bl9hY3Rpb25zWzBdOworICBhZGRfaGFu
ZGxlX2FjdGlvbi0+YWN0aW9uID0gRkRJT19TUEFXTl9BQ1RJT05fQUREX0hBTkRMRTsKKyAgYWRk
X2hhbmRsZV9hY3Rpb24tPmguaWQgPSBQQV9ITkQoUEFfRkQsIGtGdWNoc2lhUmVhZFBpcGVGZCk7
CisgIGFkZF9oYW5kbGVfYWN0aW9uLT5oLmhhbmRsZSA9IGNoaWxkX3BpcGVfaGFuZGxlOworCisg
IC8vIENyZWF0ZSBhIHNvY2tldCBwYWlyIHdpbGwgYmUgdXNlZCB0byByZWNlaXZlIHRoZSBjaGls
ZCBwcm9jZXNzJyBzdGRlcnIuCisgIHp4Ojpzb2NrZXQgc3RkZXJyX3Byb2R1Y2VyX3NvY2tldDsK
KyAgc3RhdHVzID0KKyAgICAgIHp4Ojpzb2NrZXQ6OmNyZWF0ZSgwLCAmc3RkZXJyX3Byb2R1Y2Vy
X3NvY2tldCwgJnN0ZGVycl9zb2NrZXRfKTsKKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3Rh
dHVzID49IDApOworICBpbnQgc3RkZXJyX3Byb2R1Y2VyX2ZkID0gLTE7CisgIHN0YXR1cyA9Cisg
ICAgICBmZGlvX2ZkX2NyZWF0ZShzdGRlcnJfcHJvZHVjZXJfc29ja2V0LnJlbGVhc2UoKSwgJnN0
ZGVycl9wcm9kdWNlcl9mZCk7CisgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA+PSAw
KTsKIAotICAvLyBTcGF3biB0aGUgY2hpbGQgcHJvY2Vzcy4KLSAgc3RhdHVzID0gZmRpb19zcGF3
bl9ldGMoWlhfSEFORExFX0lOVkFMSUQsIEZESU9fU1BBV05fQ0xPTkVfQUxMLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcmdzLkFyZ3YoKVswXSwgYXJncy5Bcmd2KCksIG51bGxwdHIsIDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRfaGFuZGxlX2FjdGlvbiwgJmNoaWxkX3By
b2Nlc3NfLCBudWxscHRyKTsKKyAgLy8gTWFrZSB0aGUgc3RkZXJyIHNvY2tldCBub25ibG9ja2lu
Zy4KKyAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oZmNudGwoc3RkZXJyX3Byb2R1Y2VyX2ZkLCBG
X1NFVEZMLCAwKSA9PSAwKTsKKworICBmZGlvX3NwYXduX2FjdGlvbl90KiBhZGRfc3RkZXJyX2Fj
dGlvbiA9ICZzcGF3bl9hY3Rpb25zWzFdOworICBhZGRfc3RkZXJyX2FjdGlvbi0+YWN0aW9uID0g
RkRJT19TUEFXTl9BQ1RJT05fQ0xPTkVfRkQ7CisgIGFkZF9zdGRlcnJfYWN0aW9uLT5mZC5sb2Nh
bF9mZCA9IHN0ZGVycl9wcm9kdWNlcl9mZDsKKyAgYWRkX3N0ZGVycl9hY3Rpb24tPmZkLnRhcmdl
dF9mZCA9IFNUREVSUl9GSUxFTk87CisKKyAgLy8gQ3JlYXRlIGEgY2hpbGQgam9iLgorICB6eF9o
YW5kbGVfdCBjaGlsZF9qb2IgPSBaWF9IQU5ETEVfSU5WQUxJRDsKKyAgc3RhdHVzID0genhfam9i
X2NyZWF0ZSh6eF9qb2JfZGVmYXVsdCgpLCAwLCAmIGNoaWxkX2pvYik7CisgIEdURVNUX0RFQVRI
X1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CisgIHp4X3BvbGljeV9iYXNpY190IHBvbGlj
eTsKKyAgcG9saWN5LmNvbmRpdGlvbiA9IFpYX1BPTF9ORVdfQU5ZOworICBwb2xpY3kucG9saWN5
ID0gWlhfUE9MX0FDVElPTl9BTExPVzsKKyAgc3RhdHVzID0genhfam9iX3NldF9wb2xpY3koCisg
ICAgICBjaGlsZF9qb2IsIFpYX0pPQl9QT0xfUkVMQVRJVkUsIFpYX0pPQl9QT0xfQkFTSUMsICZw
b2xpY3ksIDEpOwogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGF0dXMgPT0gWlhfT0spOwog
Ci0gIC8vIENyZWF0ZSBhbiBleGNlcHRpb24gcG9ydCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB8Y2hp
bGRfcHJvY2Vzc198LCB0byBhbGxvdworICAvLyBDcmVhdGUgYW4gZXhjZXB0aW9uIGNoYW5uZWwg
YXR0YWNoZWQgdG8gdGhlIHxjaGlsZF9qb2J8LCB0byBhbGxvdwogICAvLyB1cyB0byBzdXBwcmVz
cyB0aGUgc3lzdGVtIGRlZmF1bHQgZXhjZXB0aW9uIGhhbmRsZXIgZnJvbSBmaXJpbmcuCi0gIHN0
YXR1cyA9IHp4X3BvcnRfY3JlYXRlKDAsICZwb3J0Xyk7CisgIHN0YXR1cyA9CisgICAgICB6eF90
YXNrX2NyZWF0ZV9leGNlcHRpb25fY2hhbm5lbCgKKyAgICAgICAgICBjaGlsZF9qb2IsIDAsIGV4
Y2VwdGlvbl9jaGFubmVsXy5yZXNldF9hbmRfZ2V0X2FkZHJlc3MoKSk7CiAgIEdURVNUX0RFQVRI
X1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7Ci0gIHN0YXR1cyA9IHp4X3Rhc2tfYmluZF9l
eGNlcHRpb25fcG9ydCgKLSAgICAgIGNoaWxkX3Byb2Nlc3NfLCBwb3J0XywgMCAvKiBrZXkgKi8s
IDAgLypvcHRpb25zICovKTsKKworICAvLyBTcGF3biB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgc3Rh
dHVzID0gZmRpb19zcGF3bl9ldGMoCisgICAgICBjaGlsZF9qb2IsIEZESU9fU1BBV05fQ0xPTkVf
QUxMLCBhcmdzLkFyZ3YoKVswXSwgYXJncy5Bcmd2KCksIG51bGxwdHIsCisgICAgICAyLCBzcGF3
bl9hY3Rpb25zLCBjaGlsZF9wcm9jZXNzXy5yZXNldF9hbmRfZ2V0X2FkZHJlc3MoKSwgbnVsbHB0
cik7CiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKHN0YXR1cyA9PSBaWF9PSyk7CiAKICAgc2V0
X3NwYXduZWQodHJ1ZSk7CiAgIHJldHVybiBPVkVSU0VFX1RFU1Q7CiB9CiAKK3N0ZDo6c3RyaW5n
IEZ1Y2hzaWFEZWF0aFRlc3Q6OkdldEVycm9yTG9ncygpIHsKKyAgcmV0dXJuIGNhcHR1cmVkX3N0
ZGVycl87Cit9CisKICNlbHNlICAvLyBXZSBhcmUgbmVpdGhlciBvbiBXaW5kb3dzLCBub3Igb24g
RnVjaHNpYS4KIAogLy8gRm9ya2luZ0RlYXRoVGVzdCBwcm92aWRlcyBpbXBsZW1lbnRhdGlvbnMg
Zm9yIG1vc3Qgb2YgdGhlIGFic3RyYWN0CkBAIC0xMDAwLDEwICsxMDcxLDEwIEBAIERlYXRoVGVz
dDo6VGVzdFJvbGUgRnVjaHNpYURlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKIC8vIGxlZnQgdW5k
ZWZpbmVkLgogY2xhc3MgRm9ya2luZ0RlYXRoVGVzdCA6IHB1YmxpYyBEZWF0aFRlc3RJbXBsIHsK
ICBwdWJsaWM6Ci0gIEZvcmtpbmdEZWF0aFRlc3QoY29uc3QgY2hhciogc3RhdGVtZW50LCBjb25z
dCBSRSogcmVnZXgpOworICBGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIHN0YXRlbWVudCwg
TWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIpOwogCiAgIC8vIEFsbCBvZiB0aGVz
ZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgaW5oZXJpdGVkIGZyb20gRGVhdGhUZXN0LgotICB2aXJ0
dWFsIGludCBXYWl0KCk7CisgIGludCBXYWl0KCkgb3ZlcnJpZGU7CiAKICBwcm90ZWN0ZWQ6CiAg
IHZvaWQgc2V0X2NoaWxkX3BpZChwaWRfdCBjaGlsZF9waWQpIHsgY2hpbGRfcGlkXyA9IGNoaWxk
X3BpZDsgfQpAQCAtMTAxNCw5ICsxMDg1LDkgQEAgY2xhc3MgRm9ya2luZ0RlYXRoVGVzdCA6IHB1
YmxpYyBEZWF0aFRlc3RJbXBsIHsKIH07CiAKIC8vIENvbnN0cnVjdHMgYSBGb3JraW5nRGVhdGhU
ZXN0LgotRm9ya2luZ0RlYXRoVGVzdDo6Rm9ya2luZ0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0
YXRlbWVudCwgY29uc3QgUkUqIGFfcmVnZXgpCi0gICAgOiBEZWF0aFRlc3RJbXBsKGFfc3RhdGVt
ZW50LCBhX3JlZ2V4KSwKLSAgICAgIGNoaWxkX3BpZF8oLTEpIHt9CitGb3JraW5nRGVhdGhUZXN0
OjpGb3JraW5nRGVhdGhUZXN0KGNvbnN0IGNoYXIqIGFfc3RhdGVtZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyPGNvbnN0IHN0ZDo6c3RyaW5nJj4gbWF0Y2hl
cikKKyAgICA6IERlYXRoVGVzdEltcGwoYV9zdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSks
IGNoaWxkX3BpZF8oLTEpIHt9CiAKIC8vIFdhaXRzIGZvciB0aGUgY2hpbGQgaW4gYSBkZWF0aCB0
ZXN0IHRvIGV4aXQsIHJldHVybmluZyBpdHMgZXhpdAogLy8gc3RhdHVzLCBvciAwIGlmIG5vIGNo
aWxkIHByb2Nlc3MgZXhpc3RzLiAgQXMgYSBzaWRlIGVmZmVjdCwgc2V0cyB0aGUKQEAgLTEwMzcs
OSArMTEwOCw5IEBAIGludCBGb3JraW5nRGVhdGhUZXN0OjpXYWl0KCkgewogLy8gaW4gdGhlIGNo
aWxkIHByb2Nlc3MuCiBjbGFzcyBOb0V4ZWNEZWF0aFRlc3QgOiBwdWJsaWMgRm9ya2luZ0RlYXRo
VGVzdCB7CiAgcHVibGljOgotICBOb0V4ZWNEZWF0aFRlc3QoY29uc3QgY2hhciogYV9zdGF0ZW1l
bnQsIGNvbnN0IFJFKiBhX3JlZ2V4KSA6Ci0gICAgICBGb3JraW5nRGVhdGhUZXN0KGFfc3RhdGVt
ZW50LCBhX3JlZ2V4KSB7IH0KLSAgdmlydHVhbCBUZXN0Um9sZSBBc3N1bWVSb2xlKCk7CisgIE5v
RXhlY0RlYXRoVGVzdChjb25zdCBjaGFyKiBhX3N0YXRlbWVudCwgTWF0Y2hlcjxjb25zdCBzdGQ6
OnN0cmluZyY+IG1hdGNoZXIpCisgICAgICA6IEZvcmtpbmdEZWF0aFRlc3QoYV9zdGF0ZW1lbnQs
IHN0ZDo6bW92ZShtYXRjaGVyKSkge30KKyAgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIG92ZXJyaWRl
OwogfTsKIAogLy8gVGhlIEFzc3VtZVJvbGUgcHJvY2VzcyBmb3IgYSBmb3JrLWFuZC1ydW4gZGVh
dGggdGVzdC4gIEl0IGltcGxlbWVudHMgYQpAQCAtMTA5MiwxMCArMTE2MywxMyBAQCBEZWF0aFRl
c3Q6OlRlc3RSb2xlIE5vRXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKIC8vIG9ubHkgdGhp
cyBzcGVjaWZpYyBkZWF0aCB0ZXN0IHRvIGJlIHJ1bi4KIGNsYXNzIEV4ZWNEZWF0aFRlc3QgOiBw
dWJsaWMgRm9ya2luZ0RlYXRoVGVzdCB7CiAgcHVibGljOgotICBFeGVjRGVhdGhUZXN0KGNvbnN0
IGNoYXIqIGFfc3RhdGVtZW50LCBjb25zdCBSRSogYV9yZWdleCwKLSAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgOgotICAgICAgRm9ya2luZ0RlYXRoVGVzdChhX3N0
YXRlbWVudCwgYV9yZWdleCksIGZpbGVfKGZpbGUpLCBsaW5lXyhsaW5lKSB7IH0KLSAgdmlydHVh
bCBUZXN0Um9sZSBBc3N1bWVSb2xlKCk7CisgIEV4ZWNEZWF0aFRlc3QoY29uc3QgY2hhciogYV9z
dGF0ZW1lbnQsIE1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLAorICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKQorICAgICAgOiBGb3JraW5nRGVhdGhU
ZXN0KGFfc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlcikpLAorICAgICAgICBmaWxlXyhmaWxl
KSwKKyAgICAgICAgbGluZV8obGluZSkge30KKyAgVGVzdFJvbGUgQXNzdW1lUm9sZSgpIG92ZXJy
aWRlOworCiAgcHJpdmF0ZToKICAgc3RhdGljIDo6c3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IEdl
dEFyZ3ZzRm9yRGVhdGhUZXN0Q2hpbGRQcm9jZXNzKCkgewogICAgIDo6c3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IGFyZ3MgPSBHZXRJbmplY3RhYmxlQXJndnMoKTsKQEAgLTExMTUsOSArMTE4OSw3
IEBAIGNsYXNzIEV4ZWNEZWF0aFRlc3QgOiBwdWJsaWMgRm9ya2luZ0RlYXRoVGVzdCB7CiAvLyBV
dGlsaXR5IGNsYXNzIGZvciBhY2N1bXVsYXRpbmcgY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KIGNs
YXNzIEFyZ3VtZW50cyB7CiAgcHVibGljOgotICBBcmd1bWVudHMoKSB7Ci0gICAgYXJnc18ucHVz
aF9iYWNrKE5VTEwpOwotICB9CisgIEFyZ3VtZW50cygpIHsgYXJnc18ucHVzaF9iYWNrKG51bGxw
dHIpOyB9CiAKICAgfkFyZ3VtZW50cygpIHsKICAgICBmb3IgKHN0ZDo6dmVjdG9yPGNoYXIqPjo6
aXRlcmF0b3IgaSA9IGFyZ3NfLmJlZ2luKCk7IGkgIT0gYXJnc18uZW5kKCk7CkBAIC0xMTUyLDcg
KzEyMjQsOSBAQCBzdHJ1Y3QgRXhlY0RlYXRoVGVzdEFyZ3MgewogICBpbnQgY2xvc2VfZmQ7ICAg
ICAgIC8vIEZpbGUgZGVzY3JpcHRvciB0byBjbG9zZTsgdGhlIHJlYWQgZW5kIG9mIGEgcGlwZQog
fTsKIAotIyAgaWYgIUdURVNUX09TX1FOWAorIyAgaWYgR1RFU1RfT1NfUU5YCitleHRlcm4gIkMi
IGNoYXIqKiBlbnZpcm9uOworIyAgZWxzZSAgLy8gR1RFU1RfT1NfUU5YCiAvLyBUaGUgbWFpbiBm
dW5jdGlvbiBmb3IgYSB0aHJlYWRzYWZlLXN0eWxlIGRlYXRoIHRlc3QgY2hpbGQgcHJvY2Vzcy4K
IC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIGEgY2xvbmUoKS1lZCBwcm9jZXNzIGFuZCB0
aHVzIG11c3QgYXZvaWQKIC8vIGFueSBwb3RlbnRpYWxseSB1bnNhZmUgb3BlcmF0aW9ucyBsaWtl
IG1hbGxvYyBvciBsaWJjIGZ1bmN0aW9ucy4KQEAgLTExNzIsMjEgKzEyNDYsMTggQEAgc3RhdGlj
IGludCBFeGVjRGVhdGhUZXN0Q2hpbGRNYWluKHZvaWQqIGNoaWxkX2FyZykgewogICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CiAgIH0KIAotICAvLyBXZSBjYW4gc2FmZWx5IGNhbGwgZXhlY3ZlKCkg
YXMgaXQncyBhIGRpcmVjdCBzeXN0ZW0gY2FsbC4gIFdlCisgIC8vIFdlIGNhbiBzYWZlbHkgY2Fs
bCBleGVjdigpIGFzIGl0J3MgYWxtb3N0IGEgZGlyZWN0IHN5c3RlbSBjYWxsLiBXZQogICAvLyBj
YW5ub3QgdXNlIGV4ZWN2cCgpIGFzIGl0J3MgYSBsaWJjIGZ1bmN0aW9uIGFuZCB0aHVzIHBvdGVu
dGlhbGx5Ci0gIC8vIHVuc2FmZS4gIFNpbmNlIGV4ZWN2ZSgpIGRvZXNuJ3Qgc2VhcmNoIHRoZSBQ
QVRILCB0aGUgdXNlciBtdXN0CisgIC8vIHVuc2FmZS4gIFNpbmNlIGV4ZWN2KCkgZG9lc24ndCBz
ZWFyY2ggdGhlIFBBVEgsIHRoZSB1c2VyIG11c3QKICAgLy8gaW52b2tlIHRoZSB0ZXN0IHByb2dy
YW0gdmlhIGEgdmFsaWQgcGF0aCB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0CiAgIC8vIG9uZSBwYXRo
IHNlcGFyYXRvci4KLSAgLy8gV2UgaGF2ZSByZXBsYWNlZCBleGVjdmUoKSB3aXRoIGV4ZWN2KCkg
Zm9yIFdlYktpdCB0byBhdm9pZCB1c2luZwotICAvLyBlbnZpcm9uLiBJdCBzaG91bGQgYmUgc2Fm
ZSBiZWNhdXNlIGV4ZWN2KCkgaXMganVzdCBhIHNpbXBsZSB3cmFwcGVyCi0gIC8vIG9mIGV4ZWN2
ZSgpLgogICBleGVjdihhcmdzLT5hcmd2WzBdLCBhcmdzLT5hcmd2KTsKICAgRGVhdGhUZXN0QWJv
cnQoc3RkOjpzdHJpbmcoImV4ZWN2KCIpICsgYXJncy0+YXJndlswXSArICIsIC4uLikgaW4gIiAr
CiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2RpciArICIgZmFpbGVkOiAiICsKICAgICAgICAg
ICAgICAgICAgR2V0TGFzdEVycm5vRGVzY3JpcHRpb24oKSk7CiAgIHJldHVybiBFWElUX0ZBSUxV
UkU7CiB9Ci0jICBlbmRpZiAgLy8gIUdURVNUX09TX1FOWAorIyAgZW5kaWYgIC8vIEdURVNUX09T
X1FOWAogCiAjICBpZiBHVEVTVF9IQVNfQ0xPTkUKIC8vIFR3byB1dGlsaXR5IHJvdXRpbmVzIHRo
YXQgdG9nZXRoZXIgZGV0ZXJtaW5lIHRoZSBkaXJlY3Rpb24gdGhlIHN0YWNrCkBAIC0xMjAwLDE1
ICsxMjcxLDI0IEBAIHN0YXRpYyBpbnQgRXhlY0RlYXRoVGVzdENoaWxkTWFpbih2b2lkKiBjaGls
ZF9hcmcpIHsKIC8vIGNvcnJlY3QgYW5zd2VyLgogc3RhdGljIHZvaWQgU3RhY2tMb3dlclRoYW5B
ZGRyZXNzKGNvbnN0IHZvaWQqIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sKiByZXN1bHQpIEdURVNUX05PX0lOTElORV87CisvLyBNYWtlIHN1cmUgc2FuaXRpemVy
cyBkbyBub3QgdGFtcGVyIHdpdGggdGhlIHN0YWNrIGhlcmUuCisvLyBJZGVhbGx5LCB3ZSB3YW50
IHRvIHVzZSBgX19idWlsdGluX2ZyYW1lX2FkZHJlc3NgIGluc3RlYWQgb2YgYSBsb2NhbCB2YXJp
YWJsZQorLy8gYWRkcmVzcyB3aXRoIHNhbml0aXplciBkaXNhYmxlZCwgYnV0IGl0IGRvZXMgbm90
IHdvcmsgd2hlbiB0aGUKKy8vIGNvbXBpbGVyIG9wdGltaXplcyB0aGUgc3RhY2sgZnJhbWUgb3V0
LCB3aGljaCBoYXBwZW5zIG9uIFBvd2VyUEMgdGFyZ2V0cy4KKy8vIEhXQWRkcmVzc1Nhbml0aXpl
ciBhZGQgYSByYW5kb20gdGFnIHRvIHRoZSBNU0Igb2YgdGhlIGxvY2FsIHZhcmlhYmxlIGFkZHJl
c3MsCisvLyBtYWtpbmcgY29tcGFyaXNvbiByZXN1bHQgdW5wcmVkaWN0YWJsZS4KK0dURVNUX0FU
VFJJQlVURV9OT19TQU5JVElaRV9BRERSRVNTXworR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpF
X0hXQUREUkVTU18KIHN0YXRpYyB2b2lkIFN0YWNrTG93ZXJUaGFuQWRkcmVzcyhjb25zdCB2b2lk
KiBwdHIsIGJvb2wqIHJlc3VsdCkgewotICBpbnQgZHVtbXk7Ci0gICpyZXN1bHQgPSAoJmR1bW15
IDwgcHRyKTsKKyAgaW50IGR1bW15ID0gMDsKKyAgKnJlc3VsdCA9IHN0ZDo6bGVzczxjb25zdCB2
b2lkKj4oKSgmZHVtbXksIHB0cik7CiB9CiAKIC8vIE1ha2Ugc3VyZSBBZGRyZXNzU2FuaXRpemVy
IGRvZXMgbm90IHRhbXBlciB3aXRoIHRoZSBzdGFjayBoZXJlLgogR1RFU1RfQVRUUklCVVRFX05P
X1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdBRERSRVNT
Xwogc3RhdGljIGJvb2wgU3RhY2tHcm93c0Rvd24oKSB7Ci0gIGludCBkdW1teTsKKyAgaW50IGR1
bW15ID0gMDsKICAgYm9vbCByZXN1bHQ7CiAgIFN0YWNrTG93ZXJUaGFuQWRkcmVzcygmZHVtbXks
ICZyZXN1bHQpOwogICByZXR1cm4gcmVzdWx0OwpAQCAtMTI1MSw3ICsxMzMxLDcgQEAgc3RhdGlj
IHBpZF90IEV4ZWNEZWF0aFRlc3RTcGF3bkNoaWxkKGNoYXIqIGNvbnN0KiBhcmd2LCBpbnQgY2xv
c2VfZmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZF9mbGFn
cyB8IEZEX0NMT0VYRUMpKTsKICAgc3RydWN0IGluaGVyaXRhbmNlIGluaGVyaXQgPSB7MH07CiAg
IC8vIHNwYXduIGlzIGEgc3lzdGVtIGNhbGwuCi0gIGNoaWxkX3BpZCA9IHNwYXduKGFyZ3MuYXJn
dlswXSwgMCwgTlVMTCwgJmluaGVyaXQsIGFyZ3MuYXJndiwgR2V0RW52aXJvbigpKTsKKyAgY2hp
bGRfcGlkID0gc3Bhd24oYXJncy5hcmd2WzBdLCAwLCBudWxscHRyLCAmaW5oZXJpdCwgYXJncy5h
cmd2LCBlbnZpcm9uKTsKICAgLy8gUmVzdG9yZXMgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rv
cnkuCiAgIEdURVNUX0RFQVRIX1RFU1RfQ0hFQ0tfKGZjaGRpcihjd2RfZmQpICE9IC0xKTsKICAg
R1RFU1RfREVBVEhfVEVTVF9DSEVDS19TWVNDQUxMXyhjbG9zZShjd2RfZmQpKTsKQEAgLTEyNzUs
OSArMTM1NSw5IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGlsZChjaGFyKiBj
b25zdCogYXJndiwgaW50IGNsb3NlX2ZkKSB7CiAKICAgaWYgKCF1c2VfZm9yaykgewogICAgIHN0
YXRpYyBjb25zdCBib29sIHN0YWNrX2dyb3dzX2Rvd24gPSBTdGFja0dyb3dzRG93bigpOwotICAg
IGNvbnN0IHNpemVfdCBzdGFja19zaXplID0gZ2V0cGFnZXNpemUoKTsKKyAgICBjb25zdCBhdXRv
IHN0YWNrX3NpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGdldHBhZ2VzaXplKCkgKiAyKTsKICAg
ICAvLyBNTUFQX0FOT05ZTU9VUyBpcyBub3QgZGVmaW5lZCBvbiBNYWMsIHNvIHdlIHVzZSBNQVBf
QU5PTiBpbnN0ZWFkLgotICAgIHZvaWQqIGNvbnN0IHN0YWNrID0gbW1hcChOVUxMLCBzdGFja19z
aXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgIHZvaWQqIGNvbnN0IHN0YWNrID0gbW1h
cChudWxscHRyLCBzdGFja19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNQVBfQU5PTiB8IE1BUF9QUklWQVRFLCAtMSwgMCk7CiAgICAg
R1RFU1RfREVBVEhfVEVTVF9DSEVDS18oc3RhY2sgIT0gTUFQX0ZBSUxFRCk7CiAKQEAgLTEyOTEs
OCArMTM3MSw5IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGlsZChjaGFyKiBj
b25zdCogYXJndiwgaW50IGNsb3NlX2ZkKSB7CiAgICAgdm9pZCogY29uc3Qgc3RhY2tfdG9wID0K
ICAgICAgICAgc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YWNrKSArCiAgICAgICAgICAgICAoc3RhY2tf
Z3Jvd3NfZG93biA/IHN0YWNrX3NpemUgLSBrTWF4U3RhY2tBbGlnbm1lbnQgOiAwKTsKLSAgICBH
VEVTVF9ERUFUSF9URVNUX0NIRUNLXyhzdGFja19zaXplID4ga01heFN0YWNrQWxpZ25tZW50ICYm
Ci0gICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHN0YWNrX3RvcCkgJSBrTWF4U3Rh
Y2tBbGlnbm1lbnQgPT0gMCk7CisgICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oCisgICAgICAg
IHN0YXRpY19jYXN0PHNpemVfdD4oc3RhY2tfc2l6ZSkgPiBrTWF4U3RhY2tBbGlnbm1lbnQgJiYK
KyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN0YWNrX3RvcCkgJSBrTWF4U3Rh
Y2tBbGlnbm1lbnQgPT0gMCk7CiAKICAgICBjaGlsZF9waWQgPSBjbG9uZSgmRXhlY0RlYXRoVGVz
dENoaWxkTWFpbiwgc3RhY2tfdG9wLCBTSUdDSExELCAmYXJncyk7CiAKQEAgLTEzMDksNyArMTM5
MCw3IEBAIHN0YXRpYyBwaWRfdCBFeGVjRGVhdGhUZXN0U3Bhd25DaGlsZChjaGFyKiBjb25zdCog
YXJndiwgaW50IGNsb3NlX2ZkKSB7CiAjICBlbmRpZiAgLy8gR1RFU1RfT1NfUU5YCiAjICBpZiBH
VEVTVF9PU19MSU5VWAogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLX1NZU0NBTExfKAotICAgICAg
c2lnYWN0aW9uKFNJR1BST0YsICZzYXZlZF9zaWdwcm9mX2FjdGlvbiwgTlVMTCkpOworICAgICAg
c2lnYWN0aW9uKFNJR1BST0YsICZzYXZlZF9zaWdwcm9mX2FjdGlvbiwgbnVsbHB0cikpOwogIyAg
ZW5kaWYgIC8vIEdURVNUX09TX0xJTlVYCiAKICAgR1RFU1RfREVBVEhfVEVTVF9DSEVDS18oY2hp
bGRfcGlkICE9IC0xKTsKQEAgLTEzMjcsNyArMTQwOCw3IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUg
RXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9sZSgpIHsKICAgY29uc3QgVGVzdEluZm8qIGNvbnN0IGlu
Zm8gPSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogICBjb25zdCBpbnQgZGVhdGhfdGVzdF9p
bmRleCA9IGluZm8tPnJlc3VsdCgpLT5kZWF0aF90ZXN0X2NvdW50KCk7CiAKLSAgaWYgKGZsYWcg
IT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRyKSB7CiAgICAgc2V0X3dyaXRlX2ZkKGZs
YWctPndyaXRlX2ZkKCkpOwogICAgIHJldHVybiBFWEVDVVRFX1RFU1Q7CiAgIH0KQEAgLTEzMzgs
OSArMTQxOSw5IEBAIERlYXRoVGVzdDo6VGVzdFJvbGUgRXhlY0RlYXRoVGVzdDo6QXNzdW1lUm9s
ZSgpIHsKICAgLy8gaXQgYmUgY2xvc2VkIHdoZW4gdGhlIGNoaWxkIHByb2Nlc3MgZG9lcyBhbiBl
eGVjOgogICBHVEVTVF9ERUFUSF9URVNUX0NIRUNLXyhmY250bChwaXBlX2ZkWzFdLCBGX1NFVEZE
LCAwKSAhPSAtMSk7CiAKLSAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsdGVyX2ZsYWcgPQotICAgICAg
c3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFHX1BSRUZJWF8gKyBrRmlsdGVyRmxhZyArICI9
IgotICAgICAgKyBpbmZvLT50ZXN0X2Nhc2VfbmFtZSgpICsgIi4iICsgaW5mby0+bmFtZSgpOwor
ICBjb25zdCBzdGQ6OnN0cmluZyBmaWx0ZXJfZmxhZyA9IHN0ZDo6c3RyaW5nKCItLSIpICsgR1RF
U1RfRkxBR19QUkVGSVhfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRmls
dGVyRmxhZyArICI9IiArIGluZm8tPnRlc3Rfc3VpdGVfbmFtZSgpICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLiIgKyBpbmZvLT5uYW1lKCk7CiAgIGNvbnN0IHN0ZDo6c3Ry
aW5nIGludGVybmFsX2ZsYWcgPQogICAgICAgc3RkOjpzdHJpbmcoIi0tIikgKyBHVEVTVF9GTEFH
X1BSRUZJWF8gKyBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnICsgIj0iCiAgICAgICArIGZpbGVf
ICsgInwiICsgU3RyZWFtYWJsZVRvU3RyaW5nKGxpbmVfKSArICJ8IgpAQCAtMTM3Myw3ICsxNDU0
LDggQEAgRGVhdGhUZXN0OjpUZXN0Um9sZSBFeGVjRGVhdGhUZXN0OjpBc3N1bWVSb2xlKCkgewog
Ly8gYnkgdGhlICJ0ZXN0IiBhcmd1bWVudCB0byBpdHMgYWRkcmVzcy4gIElmIHRoZSB0ZXN0IHNo
b3VsZCBiZQogLy8gc2tpcHBlZCwgc2V0cyB0aGF0IHBvaW50ZXIgdG8gTlVMTC4gIFJldHVybnMg
dHJ1ZSwgdW5sZXNzIHRoZQogLy8gZmxhZyBpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZS4KLWJv
b2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQs
IGNvbnN0IFJFKiByZWdleCwKK2Jvb2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShj
b25zdCBjaGFyKiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTWF0Y2hlcjxjb25zdCBzdGQ6OnN0cmluZyY+IG1hdGNoZXIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVhdGhUZXN0KiogdGVzdCkgewogICBVbml0
VGVzdEltcGwqIGNvbnN0IGltcGwgPSBHZXRVbml0VGVzdEltcGwoKTsKQEAgLTEzODIsNyArMTQ2
NCw3IEBAIGJvb2wgRGVmYXVsdERlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShjb25zdCBjaGFyKiBz
dGF0ZW1lbnQsIGNvbnN0IFJFKiByZWdleCwKICAgY29uc3QgaW50IGRlYXRoX3Rlc3RfaW5kZXgg
PSBpbXBsLT5jdXJyZW50X3Rlc3RfaW5mbygpCiAgICAgICAtPmluY3JlbWVudF9kZWF0aF90ZXN0
X2NvdW50KCk7CiAKLSAgaWYgKGZsYWcgIT0gTlVMTCkgeworICBpZiAoZmxhZyAhPSBudWxscHRy
KSB7CiAgICAgaWYgKGRlYXRoX3Rlc3RfaW5kZXggPiBmbGFnLT5pbmRleCgpKSB7CiAgICAgICBE
ZWF0aFRlc3Q6OnNldF9sYXN0X2RlYXRoX3Rlc3RfbWVzc2FnZSgKICAgICAgICAgICAiRGVhdGgg
dGVzdCBjb3VudCAoIiArIFN0cmVhbWFibGVUb1N0cmluZyhkZWF0aF90ZXN0X2luZGV4KQpAQCAt
MTM5Myw3ICsxNDc1LDcgQEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRlKGNv
bnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAogCiAgICAgaWYgKCEoZmxhZy0+
ZmlsZSgpID09IGZpbGUgJiYgZmxhZy0+bGluZSgpID09IGxpbmUgJiYKICAgICAgICAgICBmbGFn
LT5pbmRleCgpID09IGRlYXRoX3Rlc3RfaW5kZXgpKSB7Ci0gICAgICAqdGVzdCA9IE5VTEw7Cisg
ICAgICAqdGVzdCA9IG51bGxwdHI7CiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgIH0KQEAg
LTE0MDIsMjIgKzE0ODQsMjIgQEAgYm9vbCBEZWZhdWx0RGVhdGhUZXN0RmFjdG9yeTo6Q3JlYXRl
KGNvbnN0IGNoYXIqIHN0YXRlbWVudCwgY29uc3QgUkUqIHJlZ2V4LAogCiAgIGlmIChHVEVTVF9G
TEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJ0aHJlYWRzYWZlIiB8fAogICAgICAgR1RFU1RfRkxB
RyhkZWF0aF90ZXN0X3N0eWxlKSA9PSAiZmFzdCIpIHsKLSAgICAqdGVzdCA9IG5ldyBXaW5kb3dz
RGVhdGhUZXN0KHN0YXRlbWVudCwgcmVnZXgsIGZpbGUsIGxpbmUpOworICAgICp0ZXN0ID0gbmV3
IFdpbmRvd3NEZWF0aFRlc3Qoc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlciksIGZpbGUsIGxp
bmUpOwogICB9CiAKICMgZWxpZiBHVEVTVF9PU19GVUNIU0lBCiAKICAgaWYgKEdURVNUX0ZMQUco
ZGVhdGhfdGVzdF9zdHlsZSkgPT0gInRocmVhZHNhZmUiIHx8CiAgICAgICBHVEVTVF9GTEFHKGRl
YXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0ID0gbmV3IEZ1Y2hzaWFEZWF0
aFRlc3Qoc3RhdGVtZW50LCByZWdleCwgZmlsZSwgbGluZSk7CisgICAgKnRlc3QgPSBuZXcgRnVj
aHNpYURlYXRoVGVzdChzdGF0ZW1lbnQsIHN0ZDo6bW92ZShtYXRjaGVyKSwgZmlsZSwgbGluZSk7
CiAgIH0KIAogIyBlbHNlCiAKICAgaWYgKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF9zdHlsZSkgPT0g
InRocmVhZHNhZmUiKSB7Ci0gICAgKnRlc3QgPSBuZXcgRXhlY0RlYXRoVGVzdChzdGF0ZW1lbnQs
IHJlZ2V4LCBmaWxlLCBsaW5lKTsKKyAgICAqdGVzdCA9IG5ldyBFeGVjRGVhdGhUZXN0KHN0YXRl
bWVudCwgc3RkOjptb3ZlKG1hdGNoZXIpLCBmaWxlLCBsaW5lKTsKICAgfSBlbHNlIGlmIChHVEVT
VF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpID09ICJmYXN0IikgewotICAgICp0ZXN0ID0gbmV3IE5v
RXhlY0RlYXRoVGVzdChzdGF0ZW1lbnQsIHJlZ2V4KTsKKyAgICAqdGVzdCA9IG5ldyBOb0V4ZWNE
ZWF0aFRlc3Qoc3RhdGVtZW50LCBzdGQ6Om1vdmUobWF0Y2hlcikpOwogICB9CiAKICMgZW5kaWYg
IC8vIEdURVNUX09TX1dJTkRPV1MKQEAgLTE0NDcsOCArMTUyOSw2IEBAIHN0YXRpYyBpbnQgR2V0
U3RhdHVzRmlsZURlc2NyaXB0b3IodW5zaWduZWQgaW50IHBhcmVudF9wcm9jZXNzX2lkLAogICAg
ICAgICAgICAgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyhwYXJlbnRfcHJvY2Vzc19pZCkpOwog
ICB9CiAKLSAgLy8gRklYTUU6IFJlcGxhY2UgdGhlIGZvbGxvd2luZyBjaGVjayB3aXRoIGEKLSAg
Ly8gY29tcGlsZS10aW1lIGFzc2VydGlvbiB3aGVuIGF2YWlsYWJsZS4KICAgR1RFU1RfQ0hFQ0tf
KHNpemVvZihIQU5ETEUpIDw9IHNpemVvZihzaXplX3QpKTsKIAogICBjb25zdCBIQU5ETEUgd3Jp
dGVfaGFuZGxlID0KQEAgLTE1MDQsNyArMTU4NCw3IEBAIHN0YXRpYyBpbnQgR2V0U3RhdHVzRmls
ZURlc2NyaXB0b3IodW5zaWduZWQgaW50IHBhcmVudF9wcm9jZXNzX2lkLAogLy8gaW5pdGlhbGl6
ZWQgZnJvbSB0aGUgR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkgZmxhZyBpZgog
Ly8gdGhlIGZsYWcgaXMgc3BlY2lmaWVkOyBvdGhlcndpc2UgcmV0dXJucyBOVUxMLgogSW50ZXJu
YWxSdW5EZWF0aFRlc3RGbGFnKiBQYXJzZUludGVybmFsUnVuRGVhdGhUZXN0RmxhZygpIHsKLSAg
aWYgKEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpID09ICIiKSByZXR1cm4gTlVM
TDsKKyAgaWYgKEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpID09ICIiKSByZXR1
cm4gbnVsbHB0cjsKIAogICAvLyBHVEVTVF9IQVNfREVBVEhfVEVTVCBpbXBsaWVzIHRoYXQgd2Ug
aGF2ZSA6OnN0ZDo6c3RyaW5nLCBzbyB3ZQogICAvLyBjYW4gdXNlIGl0IGhlcmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGguY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtZmlsZXBhdGguY2MKaW5kZXggYTdlNjVjMDgy
YTc1ZmM2ZmIwMzhhMDIzZDViMWQzZTA5ZTQ3OWYxMS4uYWYyOTc2ODQwMzFjZDI1N2IzMjFmYTk4
NGJiNTcwYWY0YzlhMjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3Jj
L2d0ZXN0LWZpbGVwYXRoLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVz
dC1maWxlcGF0aC5jYwpAQCAtMzgsOSArMzgsNiBAQAogI2VsaWYgR1RFU1RfT1NfV0lORE9XUwog
IyBpbmNsdWRlIDxkaXJlY3QuaD4KICMgaW5jbHVkZSA8aW8uaD4KLSNlbGlmIEdURVNUX09TX1NZ
TUJJQU4KLS8vIFN5bWJpYW4gT3BlbkMgaGFzIFBBVEhfTUFYIGluIHN5cy9zeXNsaW1pdHMuaAot
IyBpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+CiAjZWxzZQogIyBpbmNsdWRlIDxsaW1pdHMuaD4K
ICMgaW5jbHVkZSA8Y2xpbWl0cz4gIC8vIFNvbWUgTGludXggZGlzdHJpYnV0aW9ucyBkZWZpbmUg
UEFUSF9NQVggaGVyZS4KQEAgLTk1LDEzICs5MiwxNCBAQCBzdGF0aWMgYm9vbCBJc1BhdGhTZXBh
cmF0b3IoY2hhciBjKSB7CiAKIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rv
cnksIG9yICIiIGlmIHVuc3VjY2Vzc2Z1bC4KIEZpbGVQYXRoIEZpbGVQYXRoOjpHZXRDdXJyZW50
RGlyKCkgewotI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1Nf
UEhPTkUgfHwgR1RFU1RfT1NfV0lORE9XU19SVAotICAvLyBXaW5kb3dzIENFIGRvZXNuJ3QgaGF2
ZSBhIGN1cnJlbnQgZGlyZWN0b3J5LCBzbyB3ZSBqdXN0IHJldHVybgorI2lmIEdURVNUX09TX1dJ
TkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgXAorICAgIEdURVNUX09T
X1dJTkRPV1NfUlQgfHwgR1RFU1RfT1NfRVNQODI2NiB8fCBHVEVTVF9PU19FU1AzMgorICAvLyBU
aGVzZSBwbGF0Zm9ybXMgZG8gbm90IGhhdmUgYSBjdXJyZW50IGRpcmVjdG9yeSwgc28gd2UganVz
dCByZXR1cm4KICAgLy8gc29tZXRoaW5nIHJlYXNvbmFibGUuCiAgIHJldHVybiBGaWxlUGF0aChr
Q3VycmVudERpcmVjdG9yeVN0cmluZyk7CiAjZWxpZiBHVEVTVF9PU19XSU5ET1dTCiAgIGNoYXIg
Y3dkW0dURVNUX1BBVEhfTUFYXyArIDFdID0geyAnXDAnIH07Ci0gIHJldHVybiBGaWxlUGF0aChf
Z2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkpID09IE5VTEwgPyAiIiA6IGN3ZCk7CisgIHJldHVybiBG
aWxlUGF0aChfZ2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkpID09IG51bGxwdHIgPyAiIiA6IGN3ZCk7
CiAjZWxzZQogICBjaGFyIGN3ZFtHVEVTVF9QQVRIX01BWF8gKyAxXSA9IHsgJ1wwJyB9OwogICBj
aGFyKiByZXN1bHQgPSBnZXRjd2QoY3dkLCBzaXplb2YoY3dkKSk7CkBAIC0xMDksOSArMTA3LDkg
QEAgRmlsZVBhdGggRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKSB7CiAgIC8vIGdldGN3ZCB3aWxs
IGxpa2VseSBmYWlsIGluIE5hQ2wgZHVlIHRvIHRoZSBzYW5kYm94LCBzbyByZXR1cm4gc29tZXRo
aW5nCiAgIC8vIHJlYXNvbmFibGUuIFRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIGEgc2hpbSBp
bXBsZW1lbnRhdGlvbiBmb3IgZ2V0Y3dkLAogICAvLyBob3dldmVyLCBzbyBmYWxsYmFjayBvbmx5
IHdoZW4gZmFpbHVyZSBpcyBkZXRlY3RlZC4KLSAgcmV0dXJuIEZpbGVQYXRoKHJlc3VsdCA9PSBO
VUxMID8ga0N1cnJlbnREaXJlY3RvcnlTdHJpbmcgOiBjd2QpOworICByZXR1cm4gRmlsZVBhdGgo
cmVzdWx0ID09IG51bGxwdHIgPyBrQ3VycmVudERpcmVjdG9yeVN0cmluZyA6IGN3ZCk7CiAjIGVu
ZGlmICAvLyBHVEVTVF9PU19OQUNMCi0gIHJldHVybiBGaWxlUGF0aChyZXN1bHQgPT0gTlVMTCA/
ICIiIDogY3dkKTsKKyAgcmV0dXJuIEZpbGVQYXRoKHJlc3VsdCA9PSBudWxscHRyID8gIiIgOiBj
d2QpOwogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQogfQogCkBAIC0xMzYsOCAr
MTM0LDggQEAgY29uc3QgY2hhciogRmlsZVBhdGg6OkZpbmRMYXN0UGF0aFNlcGFyYXRvcigpIGNv
bnN0IHsKICNpZiBHVEVTVF9IQVNfQUxUX1BBVEhfU0VQXwogICBjb25zdCBjaGFyKiBjb25zdCBs
YXN0X2FsdF9zZXAgPSBzdHJyY2hyKGNfc3RyKCksIGtBbHRlcm5hdGVQYXRoU2VwYXJhdG9yKTsK
ICAgLy8gQ29tcGFyaW5nIHR3byBwb2ludGVycyBvZiB3aGljaCBvbmx5IG9uZSBpcyBOVUxMIGlz
IHVuZGVmaW5lZC4KLSAgaWYgKGxhc3RfYWx0X3NlcCAhPSBOVUxMICYmCi0gICAgICAobGFzdF9z
ZXAgPT0gTlVMTCB8fCBsYXN0X2FsdF9zZXAgPiBsYXN0X3NlcCkpIHsKKyAgaWYgKGxhc3RfYWx0
X3NlcCAhPSBudWxscHRyICYmCisgICAgICAobGFzdF9zZXAgPT0gbnVsbHB0ciB8fCBsYXN0X2Fs
dF9zZXAgPiBsYXN0X3NlcCkpIHsKICAgICByZXR1cm4gbGFzdF9hbHRfc2VwOwogICB9CiAjZW5k
aWYKQEAgLTE2NSw3ICsxNjMsNyBAQCBGaWxlUGF0aCBGaWxlUGF0aDo6UmVtb3ZlRmlsZU5hbWUo
KSBjb25zdCB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGxhc3Rfc2VwID0gRmluZExhc3RQYXRoU2Vw
YXJhdG9yKCk7CiAgIHN0ZDo6c3RyaW5nIGRpcjsKICAgaWYgKGxhc3Rfc2VwKSB7Ci0gICAgZGly
ID0gc3RkOjpzdHJpbmcoY19zdHIoKSwgbGFzdF9zZXAgKyAxIC0gY19zdHIoKSk7CisgICAgZGly
ID0gc3RkOjpzdHJpbmcoY19zdHIoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihsYXN0X3NlcCArIDEg
LSBjX3N0cigpKSk7CiAgIH0gZWxzZSB7CiAgICAgZGlyID0ga0N1cnJlbnREaXJlY3RvcnlTdHJp
bmc7CiAgIH0KQEAgLTI1MCw5ICsyNDgsNiBAQCBib29sIEZpbGVQYXRoOjpEaXJlY3RvcnlFeGlz
dHMoKSBjb25zdCB7CiAvLyByb290IGRpcmVjdG9yeSBwZXIgZGlzayBkcml2ZS4pCiBib29sIEZp
bGVQYXRoOjpJc1Jvb3REaXJlY3RvcnkoKSBjb25zdCB7CiAjaWYgR1RFU1RfT1NfV0lORE9XUwot
ICAvLyBGSVhNRTogb24gV2luZG93cyBhIG5ldHdvcmsgc2hhcmUgbGlrZQotICAvLyBcXHNlcnZl
clxzaGFyZSBjYW4gYmUgYSByb290IGRpcmVjdG9yeSwgYWx0aG91Z2ggaXQgY2Fubm90IGJlIHRo
ZQotICAvLyBjdXJyZW50IGRpcmVjdG9yeS4gIEhhbmRsZSB0aGlzIHByb3Blcmx5LgogICByZXR1
cm4gcGF0aG5hbWVfLmxlbmd0aCgpID09IDMgJiYgSXNBYnNvbHV0ZVBhdGgoKTsKICNlbHNlCiAg
IHJldHVybiBwYXRobmFtZV8ubGVuZ3RoKCkgPT0gMSAmJiBJc1BhdGhTZXBhcmF0b3IocGF0aG5h
bWVfLmNfc3RyKClbMF0pOwpAQCAtMzI0LDEwICszMTksMTMgQEAgYm9vbCBGaWxlUGF0aDo6Q3Jl
YXRlRm9sZGVyKCkgY29uc3QgewogI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAgIEZpbGVQ
YXRoIHJlbW92ZWRfc2VwKHRoaXMtPlJlbW92ZVRyYWlsaW5nUGF0aFNlcGFyYXRvcigpKTsKICAg
TFBDV1NUUiB1bmljb2RlID0gU3RyaW5nOjpBbnNpVG9VdGYxNihyZW1vdmVkX3NlcC5jX3N0cigp
KTsKLSAgaW50IHJlc3VsdCA9IENyZWF0ZURpcmVjdG9yeSh1bmljb2RlLCBOVUxMKSA/IDAgOiAt
MTsKKyAgaW50IHJlc3VsdCA9IENyZWF0ZURpcmVjdG9yeSh1bmljb2RlLCBudWxscHRyKSA/IDAg
OiAtMTsKICAgZGVsZXRlIFtdIHVuaWNvZGU7CiAjZWxpZiBHVEVTVF9PU19XSU5ET1dTCiAgIGlu
dCByZXN1bHQgPSBfbWtkaXIocGF0aG5hbWVfLmNfc3RyKCkpOworI2VsaWYgR1RFU1RfT1NfRVNQ
ODI2NgorICAvLyBkbyBub3RoaW5nCisgIGludCByZXN1bHQgPSAwOwogI2Vsc2UKICAgaW50IHJl
c3VsdCA9IG1rZGlyKHBhdGhuYW1lXy5jX3N0cigpLCAwNzc3KTsKICNlbmRpZiAgLy8gR1RFU1Rf
T1NfV0lORE9XU19NT0JJTEUKQEAgLTM1MCwzNSArMzQ4LDIwIEBAIEZpbGVQYXRoIEZpbGVQYXRo
OjpSZW1vdmVUcmFpbGluZ1BhdGhTZXBhcmF0b3IoKSBjb25zdCB7CiAvLyBSZW1vdmVzIGFueSBy
ZWR1bmRhbnQgc2VwYXJhdG9ycyB0aGF0IG1pZ2h0IGJlIGluIHRoZSBwYXRobmFtZS4KIC8vIEZv
ciBleGFtcGxlLCAiYmFyLy8vZm9vIiBiZWNvbWVzICJiYXIvZm9vIi4gRG9lcyBub3QgZWxpbWlu
YXRlIG90aGVyCiAvLyByZWR1bmRhbmNpZXMgdGhhdCBtaWdodCBiZSBpbiBhIHBhdGhuYW1lIGlu
dm9sdmluZyAiLiIgb3IgIi4uIi4KLS8vIEZJWE1FOiBoYW5kbGUgV2luZG93cyBuZXR3b3JrIHNo
YXJlcyAoZS5nLiBcXHNlcnZlclxzaGFyZSkuCiB2b2lkIEZpbGVQYXRoOjpOb3JtYWxpemUoKSB7
Ci0gIGlmIChwYXRobmFtZV8uY19zdHIoKSA9PSBOVUxMKSB7Ci0gICAgcGF0aG5hbWVfID0gIiI7
Ci0gICAgcmV0dXJuOwotICB9Ci0gIGNvbnN0IGNoYXIqIHNyYyA9IHBhdGhuYW1lXy5jX3N0cigp
OwotICBjaGFyKiBjb25zdCBkZXN0ID0gbmV3IGNoYXJbcGF0aG5hbWVfLmxlbmd0aCgpICsgMV07
Ci0gIGNoYXIqIGRlc3RfcHRyID0gZGVzdDsKLSAgbWVtc2V0KGRlc3RfcHRyLCAwLCBwYXRobmFt
ZV8ubGVuZ3RoKCkgKyAxKTsKLQotICB3aGlsZSAoKnNyYyAhPSAnXDAnKSB7Ci0gICAgKmRlc3Rf
cHRyID0gKnNyYzsKLSAgICBpZiAoIUlzUGF0aFNlcGFyYXRvcigqc3JjKSkgewotICAgICAgc3Jj
Kys7CisgIGF1dG8gb3V0ID0gcGF0aG5hbWVfLmJlZ2luKCk7CisKKyAgZm9yIChjb25zdCBjaGFy
IGNoYXJhY3RlciA6IHBhdGhuYW1lXykgeworICAgIGlmICghSXNQYXRoU2VwYXJhdG9yKGNoYXJh
Y3RlcikpIHsKKyAgICAgICoob3V0KyspID0gY2hhcmFjdGVyOworICAgIH0gZWxzZSBpZiAob3V0
ID09IHBhdGhuYW1lXy5iZWdpbigpIHx8ICpzdGQ6OnByZXYob3V0KSAhPSBrUGF0aFNlcGFyYXRv
cikgeworICAgICAgKihvdXQrKykgPSBrUGF0aFNlcGFyYXRvcjsKICAgICB9IGVsc2UgewotI2lm
IEdURVNUX0hBU19BTFRfUEFUSF9TRVBfCi0gICAgICBpZiAoKmRlc3RfcHRyID09IGtBbHRlcm5h
dGVQYXRoU2VwYXJhdG9yKSB7Ci0gICAgICAgICpkZXN0X3B0ciA9IGtQYXRoU2VwYXJhdG9yOwot
ICAgICAgfQotI2VuZGlmCi0gICAgICB3aGlsZSAoSXNQYXRoU2VwYXJhdG9yKCpzcmMpKQotICAg
ICAgICBzcmMrKzsKKyAgICAgIGNvbnRpbnVlOwogICAgIH0KLSAgICBkZXN0X3B0cisrOwogICB9
Ci0gICpkZXN0X3B0ciA9ICdcMCc7Ci0gIHBhdGhuYW1lXyA9IGRlc3Q7Ci0gIGRlbGV0ZVtdIGRl
c3Q7CisKKyAgcGF0aG5hbWVfLmVyYXNlKG91dCwgcGF0aG5hbWVfLmVuZCgpKTsKIH0KIAogfSAg
Ly8gbmFtZXNwYWNlIGludGVybmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9zcmMvZ3Rlc3QtaW50ZXJuYWwtaW5sLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtaW50ZXJuYWwtaW5sLmgKaW5kZXggNDc5MDA0MTQ5YjQ4YzI4NTY0ZTIwNWUwMjEwYzZj
NDMxMDQxOGI1Yi4uY2ZmNTM0ZWU5ZWRlMzcyNGI5MjM1Nzk3NWE4OGFiY2E4NjI5N2Q3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LWludGVybmFsLWlubC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaApA
QCAtMzEsOCArMzEsOCBAQAogLy8gVGhpcyBmaWxlIGNvbnRhaW5zIHB1cmVseSBHb29nbGUgVGVz
dCdzIGludGVybmFsIGltcGxlbWVudGF0aW9uLiAgUGxlYXNlCiAvLyBETyBOT1QgI0lOQ0xVREUg
SVQgSU4gQSBVU0VSIFBST0dSQU0uCiAKLSNpZm5kZWYgR1RFU1RfU1JDX0dURVNUX0lOVEVSTkFM
X0lOTF9IXwotI2RlZmluZSBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCisjaWZuZGVm
IEdPT0dMRVRFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXworI2RlZmluZSBHT09HTEVURVNU
X1NSQ19HVEVTVF9JTlRFUk5BTF9JTkxfSF8KIAogI2lmbmRlZiBfV0lOMzJfV0NFCiAjIGluY2x1
ZGUgPGVycm5vLmg+CkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+ICAvLyBG
b3IgbWVtbW92ZS4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjc3RkaW50Pgor
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8dmVjdG9yPgog
CkBAIC04Miw5ICs4NCwxMSBAQCBjb25zdCBjaGFyIGtBbHNvUnVuRGlzYWJsZWRUZXN0c0ZsYWdb
XSA9ICJhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyI7CiBjb25zdCBjaGFyIGtCcmVha09uRmFpbHVy
ZUZsYWdbXSA9ICJicmVha19vbl9mYWlsdXJlIjsKIGNvbnN0IGNoYXIga0NhdGNoRXhjZXB0aW9u
c0ZsYWdbXSA9ICJjYXRjaF9leGNlcHRpb25zIjsKIGNvbnN0IGNoYXIga0NvbG9yRmxhZ1tdID0g
ImNvbG9yIjsKK2NvbnN0IGNoYXIga0ZhaWxGYXN0W10gPSAiZmFpbF9mYXN0IjsKIGNvbnN0IGNo
YXIga0ZpbHRlckZsYWdbXSA9ICJmaWx0ZXIiOwogY29uc3QgY2hhciBrTGlzdFRlc3RzRmxhZ1td
ID0gImxpc3RfdGVzdHMiOwogY29uc3QgY2hhciBrT3V0cHV0RmxhZ1tdID0gIm91dHB1dCI7Citj
b25zdCBjaGFyIGtCcmllZkZsYWdbXSA9ICJicmllZiI7CiBjb25zdCBjaGFyIGtQcmludFRpbWVG
bGFnW10gPSAicHJpbnRfdGltZSI7CiBjb25zdCBjaGFyIGtQcmludFVURjhGbGFnW10gPSAicHJp
bnRfdXRmOCI7CiBjb25zdCBjaGFyIGtSYW5kb21TZWVkRmxhZ1tdID0gInJhbmRvbV9zZWVkIjsK
QEAgLTk4LDE0ICsxMDIsMTQgQEAgY29uc3QgY2hhciBrRmxhZ2ZpbGVGbGFnW10gPSAiZmxhZ2Zp
bGUiOwogLy8gQSB2YWxpZCByYW5kb20gc2VlZCBtdXN0IGJlIGluIFsxLCBrTWF4UmFuZG9tU2Vl
ZF0uCiBjb25zdCBpbnQga01heFJhbmRvbVNlZWQgPSA5OTk5OTsKIAotLy8gZ19oZWxwX2ZsYWcg
aXMgdHJ1ZSBpZmYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVxdWl2YWxlbnQgZm9ybSBpcwotLy8g
c3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCisvLyBnX2hlbHBfZmxhZyBpcyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZSAtLWhlbHAgZmxhZyBvciBhbiBlcXVpdmFsZW50IGZvcm0KKy8vIGlz
IHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgogR1RFU1RfQVBJXyBleHRlcm4gYm9vbCBn
X2hlbHBfZmxhZzsKIAogLy8gUmV0dXJucyB0aGUgY3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25k
cy4KIEdURVNUX0FQSV8gVGltZUluTWlsbGlzIEdldFRpbWVJbk1pbGxpcygpOwogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIEdvb2dsZSBUZXN0IHNob3VsZCB1c2UgY29sb3JzIGluIHRoZSBvdXRwdXQu
CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgR29vZ2xlIFRlc3Qgc2hvdWxkIHVzZSBj
b2xvcnMgaW4gdGhlIG91dHB1dC4KIEdURVNUX0FQSV8gYm9vbCBTaG91bGRVc2VDb2xvcihib29s
IHN0ZG91dF9pc190dHkpOwogCiAvLyBGb3JtYXRzIHRoZSBnaXZlbiB0aW1lIGluIG1pbGxpc2Vj
b25kcyBhcyBzZWNvbmRzLgpAQCAtMTIyLDExICsxMjYsMTEgQEAgR1RFU1RfQVBJXyBzdGQ6OnN0
cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMShUaW1lSW5NaWxsaXMgbXMpOwog
Ly8gT24gc3VjY2Vzcywgc3RvcmVzIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBpbiAqdmFsdWUsIGFu
ZCByZXR1cm5zCiAvLyB0cnVlLiAgT24gZmFpbHVyZSwgcmV0dXJucyBmYWxzZSB3aXRob3V0IGNo
YW5naW5nICp2YWx1ZS4KIEdURVNUX0FQSV8gYm9vbCBQYXJzZUludDMyRmxhZygKLSAgICBjb25z
dCBjaGFyKiBzdHIsIGNvbnN0IGNoYXIqIGZsYWcsIEludDMyKiB2YWx1ZSk7CisgICAgY29uc3Qg
Y2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBpbnQzMl90KiB2YWx1ZSk7CiAKIC8vIFJldHVy
bnMgYSByYW5kb20gc2VlZCBpbiByYW5nZSBbMSwga01heFJhbmRvbVNlZWRdIGJhc2VkIG9uIHRo
ZQogLy8gZ2l2ZW4gLS1ndGVzdF9yYW5kb21fc2VlZCBmbGFnIHZhbHVlLgotaW5saW5lIGludCBH
ZXRSYW5kb21TZWVkRnJvbUZsYWcoSW50MzIgcmFuZG9tX3NlZWRfZmxhZykgeworaW5saW5lIGlu
dCBHZXRSYW5kb21TZWVkRnJvbUZsYWcoaW50MzJfdCByYW5kb21fc2VlZF9mbGFnKSB7CiAgIGNv
bnN0IHVuc2lnbmVkIGludCByYXdfc2VlZCA9IChyYW5kb21fc2VlZF9mbGFnID09IDApID8KICAg
ICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oR2V0VGltZUluTWlsbGlzKCkpIDoKICAgICAg
IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ocmFuZG9tX3NlZWRfZmxhZyk7CkBAIC0xNjIsMTAg
KzE2NiwxMiBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgICAgY29sb3JfID0gR1RFU1RfRkxB
Ryhjb2xvcik7CiAgICAgZGVhdGhfdGVzdF9zdHlsZV8gPSBHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rf
c3R5bGUpOwogICAgIGRlYXRoX3Rlc3RfdXNlX2ZvcmtfID0gR1RFU1RfRkxBRyhkZWF0aF90ZXN0
X3VzZV9mb3JrKTsKKyAgICBmYWlsX2Zhc3RfID0gR1RFU1RfRkxBRyhmYWlsX2Zhc3QpOwogICAg
IGZpbHRlcl8gPSBHVEVTVF9GTEFHKGZpbHRlcik7CiAgICAgaW50ZXJuYWxfcnVuX2RlYXRoX3Rl
c3RfID0gR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCk7CiAgICAgbGlzdF90ZXN0
c18gPSBHVEVTVF9GTEFHKGxpc3RfdGVzdHMpOwogICAgIG91dHB1dF8gPSBHVEVTVF9GTEFHKG91
dHB1dCk7CisgICAgYnJpZWZfID0gR1RFU1RfRkxBRyhicmllZik7CiAgICAgcHJpbnRfdGltZV8g
PSBHVEVTVF9GTEFHKHByaW50X3RpbWUpOwogICAgIHByaW50X3V0ZjhfID0gR1RFU1RfRkxBRyhw
cmludF91dGY4KTsKICAgICByYW5kb21fc2VlZF8gPSBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKTsK
QEAgLTE4NSw5ICsxOTEsMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXIgewogICAgIEdURVNUX0ZM
QUcoZGVhdGhfdGVzdF9zdHlsZSkgPSBkZWF0aF90ZXN0X3N0eWxlXzsKICAgICBHVEVTVF9GTEFH
KGRlYXRoX3Rlc3RfdXNlX2ZvcmspID0gZGVhdGhfdGVzdF91c2VfZm9ya187CiAgICAgR1RFU1Rf
RkxBRyhmaWx0ZXIpID0gZmlsdGVyXzsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFzdCkgPSBmYWls
X2Zhc3RfOwogICAgIEdURVNUX0ZMQUcoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3QpID0gaW50ZXJu
YWxfcnVuX2RlYXRoX3Rlc3RfOwogICAgIEdURVNUX0ZMQUcobGlzdF90ZXN0cykgPSBsaXN0X3Rl
c3RzXzsKICAgICBHVEVTVF9GTEFHKG91dHB1dCkgPSBvdXRwdXRfOworICAgIEdURVNUX0ZMQUco
YnJpZWYpID0gYnJpZWZfOwogICAgIEdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBwcmludF90aW1l
XzsKICAgICBHVEVTVF9GTEFHKHByaW50X3V0ZjgpID0gcHJpbnRfdXRmOF87CiAgICAgR1RFU1Rf
RkxBRyhyYW5kb21fc2VlZCkgPSByYW5kb21fc2VlZF87CkBAIC0yMDYsMTYgKzIxNCwxOCBAQCBj
bGFzcyBHVGVzdEZsYWdTYXZlciB7CiAgIHN0ZDo6c3RyaW5nIGNvbG9yXzsKICAgc3RkOjpzdHJp
bmcgZGVhdGhfdGVzdF9zdHlsZV87CiAgIGJvb2wgZGVhdGhfdGVzdF91c2VfZm9ya187CisgIGJv
b2wgZmFpbF9mYXN0XzsKICAgc3RkOjpzdHJpbmcgZmlsdGVyXzsKICAgc3RkOjpzdHJpbmcgaW50
ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfOwogICBib29sIGxpc3RfdGVzdHNfOwogICBzdGQ6OnN0cmlu
ZyBvdXRwdXRfOworICBib29sIGJyaWVmXzsKICAgYm9vbCBwcmludF90aW1lXzsKICAgYm9vbCBw
cmludF91dGY4XzsKLSAgaW50ZXJuYWw6OkludDMyIHJhbmRvbV9zZWVkXzsKLSAgaW50ZXJuYWw6
OkludDMyIHJlcGVhdF87CisgIGludDMyX3QgcmFuZG9tX3NlZWRfOworICBpbnQzMl90IHJlcGVh
dF87CiAgIGJvb2wgc2h1ZmZsZV87Ci0gIGludGVybmFsOjpJbnQzMiBzdGFja190cmFjZV9kZXB0
aF87CisgIGludDMyX3Qgc3RhY2tfdHJhY2VfZGVwdGhfOwogICBzdGQ6OnN0cmluZyBzdHJlYW1f
cmVzdWx0X3RvXzsKICAgYm9vbCB0aHJvd19vbl9mYWlsdXJlXzsKIH0gR1RFU1RfQVRUUklCVVRF
X1VOVVNFRF87CkBAIC0yMjYsMTEgKzIzNiwxMSBAQCBjbGFzcyBHVGVzdEZsYWdTYXZlciB7CiAv
LyBJZiB0aGUgY29kZV9wb2ludCBpcyBub3QgYSB2YWxpZCBVbmljb2RlIGNvZGUgcG9pbnQKIC8v
IChpLmUuIG91dHNpZGUgb2YgVW5pY29kZSByYW5nZSBVKzAgdG8gVSsxMEZGRkYpIGl0IHdpbGwg
YmUgY29udmVydGVkCiAvLyB0byAiKEludmFsaWQgVW5pY29kZSAweFhYWFhYWFhYKSIuCi1HVEVT
VF9BUElfIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOChVSW50MzIgY29kZV9wb2ludCk7CitH
VEVTVF9BUElfIHN0ZDo6c3RyaW5nIENvZGVQb2ludFRvVXRmOCh1aW50MzJfdCBjb2RlX3BvaW50
KTsKIAogLy8gQ29udmVydHMgYSB3aWRlIHN0cmluZyB0byBhIG5hcnJvdyBzdHJpbmcgaW4gVVRG
LTggZW5jb2RpbmcuCiAvLyBUaGUgd2lkZSBzdHJpbmcgaXMgYXNzdW1lZCB0byBoYXZlIHRoZSBm
b2xsb3dpbmcgZW5jb2Rpbmc6Ci0vLyAgIFVURi0xNiBpZiBzaXplb2Yod2NoYXJfdCkgPT0gMiAo
b24gV2luZG93cywgQ3lnd2luLCBTeW1iaWFuIE9TKQorLy8gICBVVEYtMTYgaWYgc2l6ZW9mKHdj
aGFyX3QpID09IDIgKG9uIFdpbmRvd3MsIEN5Z3dpbikKIC8vICAgVVRGLTMyIGlmIHNpemVvZih3
Y2hhcl90KSA9PSA0IChvbiBMaW51eCkKIC8vIFBhcmFtZXRlciBzdHIgcG9pbnRzIHRvIGEgbnVs
bC10ZXJtaW5hdGVkIHdpZGUgc3RyaW5nLgogLy8gUGFyYW1ldGVyIG51bV9jaGFycyBtYXkgYWRk
aXRpb25hbGx5IGxpbWl0IHRoZSBudW1iZXIKQEAgLTI1OSwxNCArMjY5LDE0IEBAIEdURVNUX0FQ
SV8gYm9vbCBTaG91bGRTaGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfc3RyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHNoYXJkX2luZGV4X3N0ciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3Qp
OwogCi0vLyBQYXJzZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHZhciBhcyBhbiBJbnQzMi4g
SWYgaXQgaXMgdW5zZXQsCi0vLyByZXR1cm5zIGRlZmF1bHRfdmFsLiBJZiBpdCBpcyBub3QgYW4g
SW50MzIsIHByaW50cyBhbiBlcnJvciBhbmQKKy8vIFBhcnNlcyB0aGUgZW52aXJvbm1lbnQgdmFy
aWFibGUgdmFyIGFzIGEgMzItYml0IGludGVnZXIuIElmIGl0IGlzIHVuc2V0LAorLy8gcmV0dXJu
cyBkZWZhdWx0X3ZhbC4gSWYgaXQgaXMgbm90IGEgMzItYml0IGludGVnZXIsIHByaW50cyBhbiBl
cnJvciBhbmQKIC8vIGFuZCBhYm9ydHMuCi1HVEVTVF9BUElfIEludDMyIEludDMyRnJvbUVudk9y
RGllKGNvbnN0IGNoYXIqIGVudl92YXIsIEludDMyIGRlZmF1bHRfdmFsKTsKK0dURVNUX0FQSV8g
aW50MzJfdCBJbnQzMkZyb21FbnZPckRpZShjb25zdCBjaGFyKiBlbnZfdmFyLCBpbnQzMl90IGRl
ZmF1bHRfdmFsKTsKIAogLy8gR2l2ZW4gdGhlIHRvdGFsIG51bWJlciBvZiBzaGFyZHMsIHRoZSBz
aGFyZCBpbmRleCwgYW5kIHRoZSB0ZXN0IGlkLAotLy8gcmV0dXJucyB0cnVlIGlmZiB0aGUgdGVz
dCBzaG91bGQgYmUgcnVuIG9uIHRoaXMgc2hhcmQuIFRoZSB0ZXN0IGlkIGlzCi0vLyBzb21lIGFy
Yml0cmFyeSBidXQgdW5pcXVlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGFzc2lnbmVkIHRvIGVhY2gg
dGVzdAorLy8gcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IHNob3VsZCBiZSBy
dW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQKKy8vIGlzIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1
bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWduZWQgdG8gZWFjaCB0ZXN0CiAvLyBtZXRo
b2QuIEFzc3VtZXMgdGhhdCAwIDw9IHNoYXJkX2luZGV4IDwgdG90YWxfc2hhcmRzLgogR1RFU1Rf
QVBJXyBib29sIFNob3VsZFJ1blRlc3RPblNoYXJkKAogICAgIGludCB0b3RhbF9zaGFyZHMsIGlu
dCBzaGFyZF9pbmRleCwgaW50IHRlc3RfaWQpOwpAQCAtMjk3LDcgKzMwNyw4IEBAIHZvaWQgRm9y
RWFjaChjb25zdCBDb250YWluZXImIGMsIEZ1bmN0b3IgZnVuY3RvcikgewogLy8gaW4gcmFuZ2Ug
WzAsIHYuc2l6ZSgpKS4KIHRlbXBsYXRlIDx0eXBlbmFtZSBFPgogaW5saW5lIEUgR2V0RWxlbWVu
dE9yKGNvbnN0IHN0ZDo6dmVjdG9yPEU+JiB2LCBpbnQgaSwgRSBkZWZhdWx0X3ZhbHVlKSB7Ci0g
IHJldHVybiAoaSA8IDAgfHwgaSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHYuc2l6ZSgpKSkgPyBkZWZh
dWx0X3ZhbHVlIDogdltpXTsKKyAgcmV0dXJuIChpIDwgMCB8fCBpID49IHN0YXRpY19jYXN0PGlu
dD4odi5zaXplKCkpKSA/IGRlZmF1bHRfdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZbc3RhdGljX2Nhc3Q8c2l6ZV90PihpKV07CiB9
CiAKIC8vIFBlcmZvcm1zIGFuIGluLXBsYWNlIHNodWZmbGUgb2YgYSByYW5nZSBvZiB0aGUgdmVj
dG9yJ3MgZWxlbWVudHMuCkBAIC0zMTksOCArMzMwLDExIEBAIHZvaWQgU2h1ZmZsZVJhbmdlKGlu
dGVybmFsOjpSYW5kb20qIHJhbmRvbSwgaW50IGJlZ2luLCBpbnQgZW5kLAogICAvLyBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL0Zpc2hlci1ZYXRlc19zaHVmZmxlCiAgIGZvciAoaW50IHJh
bmdlX3dpZHRoID0gZW5kIC0gYmVnaW47IHJhbmdlX3dpZHRoID49IDI7IHJhbmdlX3dpZHRoLS0p
IHsKICAgICBjb25zdCBpbnQgbGFzdF9pbl9yYW5nZSA9IGJlZ2luICsgcmFuZ2Vfd2lkdGggLSAx
OwotICAgIGNvbnN0IGludCBzZWxlY3RlZCA9IGJlZ2luICsgcmFuZG9tLT5HZW5lcmF0ZShyYW5n
ZV93aWR0aCk7Ci0gICAgc3RkOjpzd2FwKCgqdilbc2VsZWN0ZWRdLCAoKnYpW2xhc3RfaW5fcmFu
Z2VdKTsKKyAgICBjb25zdCBpbnQgc2VsZWN0ZWQgPQorICAgICAgICBiZWdpbiArCisgICAgICAg
IHN0YXRpY19jYXN0PGludD4ocmFuZG9tLT5HZW5lcmF0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
cmFuZ2Vfd2lkdGgpKSk7CisgICAgc3RkOjpzd2FwKCgqdilbc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
ZWxlY3RlZCldLAorICAgICAgICAgICAgICAoKnYpW3N0YXRpY19jYXN0PHNpemVfdD4obGFzdF9p
bl9yYW5nZSldKTsKICAgfQogfQogCkBAIC0zNDcsNyArMzYxLDcgQEAgY2xhc3MgVGVzdFByb3Bl
cnR5S2V5SXMgewogICAvLyBUZXN0UHJvcGVydHlLZXlJcyBoYXMgTk8gZGVmYXVsdCBjb25zdHJ1
Y3Rvci4KICAgZXhwbGljaXQgVGVzdFByb3BlcnR5S2V5SXMoY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSkgOiBrZXlfKGtleSkge30KIAotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IG5hbWUg
b2YgdGVzdCBwcm9wZXJ0eSBtYXRjaGVzIG9uIGtleV8uCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdGVzdCBuYW1lIG9mIHRlc3QgcHJvcGVydHkgbWF0Y2hlcyBvbiBrZXlf
LgogICBib29sIG9wZXJhdG9yKCkoY29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KSBj
b25zdCB7CiAgICAgcmV0dXJuIHRlc3RfcHJvcGVydHkua2V5KCkgPT0ga2V5XzsKICAgfQpAQCAt
MzgwLDE3ICszOTQsMTAgQEAgY2xhc3MgR1RFU1RfQVBJXyBVbml0VGVzdE9wdGlvbnMgewogCiAg
IC8vIEZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyB0aGUgZ3Rlc3RfZmlsdGVyIGZsYWcuCiAKLSAg
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgd2lsZGNhcmQgcGF0dGVybiBtYXRjaGVzIHRoZSBzdHJp
bmcuICBUaGUKLSAgLy8gZmlyc3QgJzonIG9yICdcMCcgY2hhcmFjdGVyIGluIHBhdHRlcm4gbWFy
a3MgdGhlIGVuZCBvZiBpdC4KLSAgLy8KLSAgLy8gVGhpcyByZWN1cnNpdmUgYWxnb3JpdGhtIGlz
bid0IHZlcnkgZWZmaWNpZW50LCBidXQgaXMgY2xlYXIgYW5kCi0gIC8vIHdvcmtzIHdlbGwgZW5v
dWdoIGZvciBtYXRjaGluZyB0ZXN0IG5hbWVzLCB3aGljaCBhcmUgc2hvcnQuCi0gIHN0YXRpYyBi
b29sIFBhdHRlcm5NYXRjaGVzU3RyaW5nKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNvbnN0IGNoYXIg
KnN0cik7Ci0KLSAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVy
IG1hdGNoZXMgdGhlIHRlc3QgY2FzZQotICAvLyBuYW1lIGFuZCB0aGUgdGVzdCBuYW1lLgotICBz
dGF0aWMgYm9vbCBGaWx0ZXJNYXRjaGVzVGVzdChjb25zdCBzdGQ6OnN0cmluZyAmdGVzdF9jYXNl
X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICZ0ZXN0X25hbWUpOworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVzZXIt
c3BlY2lmaWVkIGZpbHRlciBtYXRjaGVzIHRoZSB0ZXN0CisgIC8vIHN1aXRlIG5hbWUgYW5kIHRo
ZSB0ZXN0IG5hbWUuCisgIHN0YXRpYyBib29sIEZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6
c3RyaW5nJiB0ZXN0X3N1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X25hbWUpOwogCiAjaWYgR1RFU1RfT1NfV0lORE9XUwog
ICAvLyBGdW5jdGlvbiBmb3Igc3VwcG9ydGluZyB0aGUgZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9uIGZs
YWcuCkBAIC00NDIsOCArNDQ5LDggQEAgY2xhc3MgT3NTdGFja1RyYWNlR2V0dGVyIDogcHVibGlj
IE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSB7CiAgcHVibGljOgogICBPc1N0YWNrVHJhY2VH
ZXR0ZXIoKSB7fQogCi0gIHZpcnR1YWwgc3RkOjpzdHJpbmcgQ3VycmVudFN0YWNrVHJhY2UoaW50
IG1heF9kZXB0aCwgaW50IHNraXBfY291bnQpOwotICB2aXJ0dWFsIHZvaWQgVXBvbkxlYXZpbmdH
VGVzdCgpOworICBzdGQ6OnN0cmluZyBDdXJyZW50U3RhY2tUcmFjZShpbnQgbWF4X2RlcHRoLCBp
bnQgc2tpcF9jb3VudCkgb3ZlcnJpZGU7CisgIHZvaWQgVXBvbkxlYXZpbmdHVGVzdCgpIG92ZXJy
aWRlOwogCiAgcHJpdmF0ZToKICNpZiBHVEVTVF9IQVNfQUJTTApAQCAtNDc0LDcgKzQ4MSw3IEBA
IGNsYXNzIERlZmF1bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyCiAgIGV4cGxpY2l0IERl
ZmF1bHRHbG9iYWxUZXN0UGFydFJlc3VsdFJlcG9ydGVyKFVuaXRUZXN0SW1wbCogdW5pdF90ZXN0
KTsKICAgLy8gSW1wbGVtZW50cyB0aGUgVGVzdFBhcnRSZXN1bHRSZXBvcnRlckludGVyZmFjZS4g
UmVwb3J0cyB0aGUgdGVzdCBwYXJ0CiAgIC8vIHJlc3VsdCBpbiB0aGUgY3VycmVudCB0ZXN0Lgot
ICB2aXJ0dWFsIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQm
IHJlc3VsdCk7CisgIHZvaWQgUmVwb3J0VGVzdFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1
bHQmIHJlc3VsdCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgogICBVbml0VGVzdEltcGwqIGNvbnN0
IHVuaXRfdGVzdF87CkBAIC00OTAsNyArNDk3LDcgQEAgY2xhc3MgRGVmYXVsdFBlclRocmVhZFRl
c3RQYXJ0UmVzdWx0UmVwb3J0ZXIKICAgZXhwbGljaXQgRGVmYXVsdFBlclRocmVhZFRlc3RQYXJ0
UmVzdWx0UmVwb3J0ZXIoVW5pdFRlc3RJbXBsKiB1bml0X3Rlc3QpOwogICAvLyBJbXBsZW1lbnRz
IHRoZSBUZXN0UGFydFJlc3VsdFJlcG9ydGVySW50ZXJmYWNlLiBUaGUgaW1wbGVtZW50YXRpb24g
anVzdAogICAvLyBkZWxlZ2F0ZXMgdG8gdGhlIGN1cnJlbnQgZ2xvYmFsIHRlc3QgcGFydCByZXN1
bHQgcmVwb3J0ZXIgb2YgKnVuaXRfdGVzdF8uCi0gIHZpcnR1YWwgdm9pZCBSZXBvcnRUZXN0UGFy
dFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKKyAgdm9pZCBSZXBvcnRUZXN0
UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVycmlkZTsKIAogIHBy
aXZhdGU6CiAgIFVuaXRUZXN0SW1wbCogY29uc3QgdW5pdF90ZXN0XzsKQEAgLTUyOCwyMiArNTM1
LDI1IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgdm9pZCBTZXRUZXN0UGFy
dFJlc3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCgKICAgICAgIFRlc3RQYXJ0UmVzdWx0UmVw
b3J0ZXJJbnRlcmZhY2UqIHJlcG9ydGVyKTsKIAotICAvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3Vj
Y2Vzc2Z1bCB0ZXN0IGNhc2VzLgotICBpbnQgc3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBj
b25zdDsKKyAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBzdWl0ZXMuCisg
IGludCBzdWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291bnQoKSBjb25zdDsKIAotICAvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgZmFpbGVkIHRlc3QgY2FzZXMuCi0gIGludCBmYWlsZWRfdGVzdF9jYXNlX2Nv
dW50KCkgY29uc3Q7CisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBzdWl0ZXMu
CisgIGludCBmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhl
IG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLSAgaW50IHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgp
IGNvbnN0OworICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzLgorICBpbnQg
dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0OwogCi0gIC8vIEdldHMgdGhlIG51bWJlciBv
ZiBhbGwgdGVzdCBjYXNlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKKyAgLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25l
IHRlc3QKICAgLy8gdGhhdCBzaG91bGQgcnVuLgotICBpbnQgdGVzdF9jYXNlX3RvX3J1bl9jb3Vu
dCgpIGNvbnN0OworICBpbnQgdGVzdF9zdWl0ZV90b19ydW5fY291bnQoKSBjb25zdDsKIAogICAv
LyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCB0ZXN0cy4KICAgaW50IHN1Y2Nlc3NmdWxf
dGVzdF9jb3VudCgpIGNvbnN0OwogCisgIC8vIEdldHMgdGhlIG51bWJlciBvZiBza2lwcGVkIHRl
c3RzLgorICBpbnQgc2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3Q7CisKICAgLy8gR2V0cyB0aGUg
bnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4KICAgaW50IGZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3Q7
CiAKQEAgLTU2OSwyNyArNTc5LDMzIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsK
ICAgLy8gR2V0cyB0aGUgZWxhcHNlZCB0aW1lLCBpbiBtaWxsaXNlY29uZHMuCiAgIFRpbWVJbk1p
bGxpcyBlbGFwc2VkX3RpbWUoKSBjb25zdCB7IHJldHVybiBlbGFwc2VkX3RpbWVfOyB9CiAKLSAg
Ly8gUmV0dXJucyB0cnVlIGlmZiB0aGUgdW5pdCB0ZXN0IHBhc3NlZCAoaS5lLiBhbGwgdGVzdCBj
YXNlcyBwYXNzZWQpLgorICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVuaXQg
dGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3Qgc3VpdGVzCisgIC8vIHBhc3NlZCkuCiAgIGJvb2wg
UGFzc2VkKCkgY29uc3QgeyByZXR1cm4gIUZhaWxlZCgpOyB9CiAKLSAgLy8gUmV0dXJucyB0cnVl
IGlmZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRlc3QgY2FzZSBmYWlsZWQKLSAg
Ly8gb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCisgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdW5pdCB0ZXN0IGZhaWxlZCAoaS5lLiBzb21lIHRl
c3Qgc3VpdGUKKyAgLy8gZmFpbGVkIG9yIHNvbWV0aGluZyBvdXRzaWRlIG9mIGFsbCB0ZXN0cyBm
YWlsZWQpLgogICBib29sIEZhaWxlZCgpIGNvbnN0IHsKLSAgICByZXR1cm4gZmFpbGVkX3Rlc3Rf
Y2FzZV9jb3VudCgpID4gMCB8fCBhZF9ob2NfdGVzdF9yZXN1bHQoKS0+RmFpbGVkKCk7CisgICAg
cmV0dXJuIGZhaWxlZF90ZXN0X3N1aXRlX2NvdW50KCkgPiAwIHx8IGFkX2hvY190ZXN0X3Jlc3Vs
dCgpLT5GYWlsZWQoKTsKICAgfQogCi0gIC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25n
IGFsbCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rl
c3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBO
VUxMLgotICBjb25zdCBUZXN0Q2FzZSogR2V0VGVzdENhc2UoaW50IGkpIGNvbnN0IHsKLSAgICBj
b25zdCBpbnQgaW5kZXggPSBHZXRFbGVtZW50T3IodGVzdF9jYXNlX2luZGljZXNfLCBpLCAtMSk7
Ci0gICAgcmV0dXJuIGluZGV4IDwgMCA/IE5VTEwgOiB0ZXN0X2Nhc2VzX1tpXTsKKyAgLy8gR2V0
cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0ZXMuIGkgY2FuIHJh
bmdlIGZyb20gMCB0bworICAvLyB0b3RhbF90ZXN0X3N1aXRlX2NvdW50KCkgLSAxLiBJZiBpIGlz
IG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCisgIGNvbnN0IFRlc3RTdWl0ZSogR2V0
VGVzdFN1aXRlKGludCBpKSBjb25zdCB7CisgICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVu
dE9yKHRlc3Rfc3VpdGVfaW5kaWNlc18sIGksIC0xKTsKKyAgICByZXR1cm4gaW5kZXggPCAwID8g
bnVsbHB0ciA6IHRlc3Rfc3VpdGVzX1tzdGF0aWNfY2FzdDxzaXplX3Q+KGkpXTsKICAgfQogCi0g
IC8vIEdldHMgdGhlIGktdGggdGVzdCBjYXNlIGFtb25nIGFsbCB0aGUgdGVzdCBjYXNlcy4gaSBj
YW4gcmFuZ2UgZnJvbSAwIHRvCi0gIC8vIHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYg
aSBpcyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgotICBUZXN0Q2FzZSogR2V0TXV0
YWJsZVRlc3RDYXNlKGludCBpKSB7Ci0gICAgY29uc3QgaW50IGluZGV4ID0gR2V0RWxlbWVudE9y
KHRlc3RfY2FzZV9pbmRpY2VzXywgaSwgLTEpOwotICAgIHJldHVybiBpbmRleCA8IDAgPyBOVUxM
IDogdGVzdF9jYXNlc19baW5kZXhdOworICAvLyAgTGVnYWN5IEFQSSBpcyBkZXByZWNhdGVkIGJ1
dCBzdGlsbCBhdmFpbGFibGUKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VB
UElfCisgIGNvbnN0IFRlc3RDYXNlKiBHZXRUZXN0Q2FzZShpbnQgaSkgY29uc3QgeyByZXR1cm4g
R2V0VGVzdFN1aXRlKGkpOyB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KKworICAvLyBHZXRzIHRoZSBpLXRoIHRlc3Qgc3VpdGUgYW1vbmcgYWxsIHRoZSB0
ZXN0IHN1aXRlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCisgIC8vIHRvdGFsX3Rlc3Rfc3VpdGVf
Y291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KKyAg
VGVzdFN1aXRlKiBHZXRNdXRhYmxlU3VpdGVDYXNlKGludCBpKSB7CisgICAgY29uc3QgaW50IGlu
ZGV4ID0gR2V0RWxlbWVudE9yKHRlc3Rfc3VpdGVfaW5kaWNlc18sIGksIC0xKTsKKyAgICByZXR1
cm4gaW5kZXggPCAwID8gbnVsbHB0ciA6IHRlc3Rfc3VpdGVzX1tzdGF0aWNfY2FzdDxzaXplX3Q+
KGluZGV4KV07CiAgIH0KIAogICAvLyBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGV2ZW50IGxpc3Rl
bmVyIGxpc3QuCkBAIC02MjYsMzEgKzY0Miw0MCBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0
SW1wbCB7CiAgIC8vIHRyYWNlIGJ1dCBCYXIoKSBhbmQgQ3VycmVudE9zU3RhY2tUcmFjZUV4Y2Vw
dFRvcCgpIHdvbid0LgogICBzdGQ6OnN0cmluZyBDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9w
KGludCBza2lwX2NvdW50KSBHVEVTVF9OT19JTkxJTkVfOwogCi0gIC8vIEZpbmRzIGFuZCByZXR1
cm5zIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9uZSBkb2Vzbid0CisgIC8v
IEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdFN1aXRlIHdpdGggdGhlIGdpdmVuIG5hbWUuICBJZiBv
bmUgZG9lc24ndAogICAvLyBleGlzdCwgY3JlYXRlcyBvbmUgYW5kIHJldHVybnMgaXQuCiAgIC8v
CiAgIC8vIEFyZ3VtZW50czoKICAgLy8KLSAgLy8gICB0ZXN0X2Nhc2VfbmFtZTogbmFtZSBvZiB0
aGUgdGVzdCBjYXNlCi0gIC8vICAgdHlwZV9wYXJhbTogICAgIHRoZSBuYW1lIG9mIHRoZSB0ZXN0
J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKLSAgLy8gICAgICAgICAgICAgICAgICAgdGhp
cyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0LgotICAvLyAgIHNl
dF91cF90YzogICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHRl
c3QgY2FzZQotICAvLyAgIHRlYXJfZG93bl90YzogICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0
aGF0IHRlYXJzIGRvd24gdGhlIHRlc3QgY2FzZQotICBUZXN0Q2FzZSogR2V0VGVzdENhc2UoY29u
c3QgY2hhciogdGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiB0eXBlX3BhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6U2V0VXBUZXN0
Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDo6VGVhckRv
d25UZXN0Q2FzZUZ1bmMgdGVhcl9kb3duX3RjKTsKKyAgLy8gICB0ZXN0X3N1aXRlX25hbWU6IG5h
bWUgb2YgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0eXBlX3BhcmFtOiAgICAgIHRoZSBuYW1lIG9m
IHRoZSB0ZXN0J3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYKKyAgLy8gICAgICAgICAgICAg
ICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdC4K
KyAgLy8gICBzZXRfdXBfdGM6ICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0
cyB1cCB0aGUgdGVzdCBzdWl0ZQorICAvLyAgIHRlYXJfZG93bl90YzogICAgcG9pbnRlciB0byB0
aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1aXRlCisgIFRlc3RTdWl0ZSog
R2V0VGVzdFN1aXRlKGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogdHlw
ZV9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlNldFVwVGVzdFN1
aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsOjpU
ZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjKTsKKworLy8gIExlZ2FjeSBBUEkgaXMg
ZGVwcmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdB
Q1lfVEVTVF9DQVNFQVBJXworICBUZXN0Q2FzZSogR2V0VGVzdENhc2UoY29uc3QgY2hhciogdGVz
dF9jYXNlX25hbWUsIGNvbnN0IGNoYXIqIHR5cGVfcGFyYW0sCisgICAgICAgICAgICAgICAgICAg
ICAgICBpbnRlcm5hbDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGludGVybmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3Rj
KSB7CisgICAgcmV0dXJuIEdldFRlc3RTdWl0ZSh0ZXN0X2Nhc2VfbmFtZSwgdHlwZV9wYXJhbSwg
c2V0X3VwX3RjLCB0ZWFyX2Rvd25fdGMpOworICB9CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogICAvLyBBZGRzIGEgVGVzdEluZm8gdG8gdGhlIHVuaXQg
dGVzdC4KICAgLy8KICAgLy8gQXJndW1lbnRzOgogICAvLwotICAvLyAgIHNldF91cF90YzogICAg
cG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IGNhc2UKLSAgLy8g
ICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0
aGUgdGVzdCBjYXNlCisgIC8vICAgc2V0X3VwX3RjOiAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlv
biB0aGF0IHNldHMgdXAgdGhlIHRlc3Qgc3VpdGUKKyAgLy8gICB0ZWFyX2Rvd25fdGM6IHBvaW50
ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBzdWl0ZQogICAvLyAg
IHRlc3RfaW5mbzogICAgdGhlIFRlc3RJbmZvIG9iamVjdAotICB2b2lkIEFkZFRlc3RJbmZvKFRl
c3Q6OlNldFVwVGVzdENhc2VGdW5jIHNldF91cF90YywKLSAgICAgICAgICAgICAgICAgICBUZXN0
OjpUZWFyRG93blRlc3RDYXNlRnVuYyB0ZWFyX2Rvd25fdGMsCisgIHZvaWQgQWRkVGVzdEluZm8o
aW50ZXJuYWw6OlNldFVwVGVzdFN1aXRlRnVuYyBzZXRfdXBfdGMsCisgICAgICAgICAgICAgICAg
ICAgaW50ZXJuYWw6OlRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMsCiAgICAgICAg
ICAgICAgICAgICAgVGVzdEluZm8qIHRlc3RfaW5mbykgeworI2lmIEdURVNUX0hBU19ERUFUSF9U
RVNUCiAgICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCB0aHJlYWQtc2FmZSBkZWF0aCB0ZXN0cywg
d2UgbmVlZCB0bwogICAgIC8vIHJlbWVtYmVyIHRoZSBvcmlnaW5hbCB3b3JraW5nIGRpcmVjdG9y
eSB3aGVuIHRoZSB0ZXN0IHByb2dyYW0KICAgICAvLyB3YXMgZmlyc3QgaW52b2tlZC4gIFdlIGNh
bm5vdCBkbyB0aGlzIGluIFJVTl9BTExfVEVTVFMoKSwgYXMKQEAgLTY2MywyMiArNjg4LDMzIEBA
IGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgICAgIEdURVNUX0NIRUNLXyghb3Jp
Z2luYWxfd29ya2luZ19kaXJfLklzRW1wdHkoKSkKICAgICAgICAgICA8PCAiRmFpbGVkIHRvIGdl
dCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4iOwogICAgIH0KKyNlbmRpZiAgLy8gR1RF
U1RfSEFTX0RFQVRIX1RFU1QKIAotICAgIEdldFRlc3RDYXNlKHRlc3RfaW5mby0+dGVzdF9jYXNl
X25hbWUoKSwKLSAgICAgICAgICAgICAgICB0ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSwKLSAgICAg
ICAgICAgICAgICBzZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAgdGVhcl9kb3duX3RjKS0+QWRk
VGVzdEluZm8odGVzdF9pbmZvKTsKKyAgICBHZXRUZXN0U3VpdGUodGVzdF9pbmZvLT50ZXN0X3N1
aXRlX25hbWUoKSwgdGVzdF9pbmZvLT50eXBlX3BhcmFtKCksCisgICAgICAgICAgICAgICAgIHNl
dF91cF90YywgdGVhcl9kb3duX3RjKQorICAgICAgICAtPkFkZFRlc3RJbmZvKHRlc3RfaW5mbyk7
CiAgIH0KIAotICAvLyBSZXR1cm5zIFBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IG9iamVj
dCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKKyAgLy8gUmV0dXJucyBQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlUmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8ga2VlcCB0cmFjayBvZgogICAvLyB2YWx1ZS1wYXJh
bWV0ZXJpemVkIHRlc3RzIGFuZCBpbnN0YW50aWF0ZSBhbmQgcmVnaXN0ZXIgdGhlbS4KLSAgaW50
ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5JiBwYXJhbWV0ZXJpemVkX3Rlc3Rf
cmVnaXN0cnkoKSB7CisgIGludGVybmFsOjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkm
IHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpIHsKICAgICByZXR1cm4gcGFyYW1ldGVyaXpl
ZF90ZXN0X3JlZ2lzdHJ5XzsKICAgfQogCi0gIC8vIFNldHMgdGhlIFRlc3RDYXNlIG9iamVjdCBm
b3IgdGhlIHRlc3QgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nLgotICB2b2lkIHNldF9jdXJyZW50
X3Rlc3RfY2FzZShUZXN0Q2FzZSogYV9jdXJyZW50X3Rlc3RfY2FzZSkgewotICAgIGN1cnJlbnRf
dGVzdF9jYXNlXyA9IGFfY3VycmVudF90ZXN0X2Nhc2U7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiogaWdub3JlZF9wYXJhbWV0ZXJpemVkX3Rlc3Rfc3VpdGVzKCkgeworICAgIHJldHVybiAmaWdu
b3JlZF9wYXJhbWV0ZXJpemVkX3Rlc3Rfc3VpdGVzXzsKKyAgfQorCisgIC8vIFJldHVybnMgVHlw
ZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGVSZWdpc3RyeSBvYmplY3QgdXNlZCB0byBrZWVwIHRyYWNr
IG9mCisgIC8vIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cyBhbmQgaW5zdGFudGlhdGlvbnMgb2Yg
dGhlbS4KKyAgaW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkmCisg
IHR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCkgeworICAgIHJldHVybiB0eXBlX3Bh
cmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV87CisgIH0KKworICAvLyBTZXRzIHRoZSBUZXN0U3Vp
dGUgb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcuCisgIHZvaWQg
c2V0X2N1cnJlbnRfdGVzdF9zdWl0ZShUZXN0U3VpdGUqIGFfY3VycmVudF90ZXN0X3N1aXRlKSB7
CisgICAgY3VycmVudF90ZXN0X3N1aXRlXyA9IGFfY3VycmVudF90ZXN0X3N1aXRlOwogICB9CiAK
ICAgLy8gU2V0cyB0aGUgVGVzdEluZm8gb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVu
dGx5IHJ1bm5pbmcuICBJZgpAQCAtNjg5LDcgKzcyNSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5p
dFRlc3RJbXBsIHsKICAgfQogCiAgIC8vIFJlZ2lzdGVycyBhbGwgcGFyYW1ldGVyaXplZCB0ZXN0
cyBkZWZpbmVkIHVzaW5nIFRFU1RfUCBhbmQKLSAgLy8gSU5TVEFOVElBVEVfVEVTVF9DQVNFX1As
IGNyZWF0aW5nIHJlZ3VsYXIgdGVzdHMgZm9yIGVhY2ggdGVzdC9wYXJhbWV0ZXIKKyAgLy8gSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QLCBjcmVhdGluZyByZWd1bGFyIHRlc3RzIGZvciBlYWNoIHRl
c3QvcGFyYW1ldGVyCiAgIC8vIGNvbWJpbmF0aW9uLiBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVk
IG1vcmUgdGhlbiBvbmNlOyBpdCBoYXMgZ3VhcmRzCiAgIC8vIHByb3RlY3RpbmcgZnJvbSByZWdp
c3RlcmluZyB0aGUgdGVzdHMgbW9yZSB0aGVuIG9uY2UuICBJZgogICAvLyB2YWx1ZS1wYXJhbWV0
ZXJpemVkIHRlc3RzIGFyZSBkaXNhYmxlZCwgUmVnaXN0ZXJQYXJhbWV0ZXJpemVkVGVzdHMgaXMK
QEAgLTcwNCw3ICs3NDAsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1wbCB7CiAKICAg
Ly8gQ2xlYXJzIHRoZSByZXN1bHRzIG9mIGFsbCB0ZXN0cywgZXhjZXB0IHRoZSBhZCBob2MgdGVz
dHMuCiAgIHZvaWQgQ2xlYXJOb25BZEhvY1Rlc3RSZXN1bHQoKSB7Ci0gICAgRm9yRWFjaCh0ZXN0
X2Nhc2VzXywgVGVzdENhc2U6OkNsZWFyVGVzdENhc2VSZXN1bHQpOworICAgIEZvckVhY2godGVz
dF9zdWl0ZXNfLCBUZXN0U3VpdGU6OkNsZWFyVGVzdFN1aXRlUmVzdWx0KTsKICAgfQogCiAgIC8v
IENsZWFycyB0aGUgcmVzdWx0cyBvZiBhZC1ob2MgdGVzdCBhc3NlcnRpb25zLgpAQCAtNzEzLDcg
Kzc0OSw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgfQogCiAgIC8vIEFk
ZHMgYSBUZXN0UHJvcGVydHkgdG8gdGhlIGN1cnJlbnQgVGVzdFJlc3VsdCBvYmplY3Qgd2hlbiBp
bnZva2VkIGluIGEKLSAgLy8gY29udGV4dCBvZiBhIHRlc3Qgb3IgYSB0ZXN0IGNhc2UsIG9yIHRv
IHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0LiBJZiB0aGUKKyAgLy8gY29udGV4dCBvZiBhIHRlc3Qg
b3IgYSB0ZXN0IHN1aXRlLCBvciB0byB0aGUgZ2xvYmFsIHByb3BlcnR5IHNldC4gSWYgdGhlCiAg
IC8vIHJlc3VsdCBhbHJlYWR5IGNvbnRhaW5zIGEgcHJvcGVydHkgd2l0aCB0aGUgc2FtZSBrZXks
IHRoZSB2YWx1ZSB3aWxsIGJlCiAgIC8vIHVwZGF0ZWQuCiAgIHZvaWQgUmVjb3JkUHJvcGVydHko
Y29uc3QgVGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KTsKQEAgLTcyNSw3ICs3NjEsNyBAQCBj
bGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1wbCB7CiAKICAgLy8gTWF0Y2hlcyB0aGUgZnVsbCBu
YW1lIG9mIGVhY2ggdGVzdCBhZ2FpbnN0IHRoZSB1c2VyLXNwZWNpZmllZAogICAvLyBmaWx0ZXIg
dG8gZGVjaWRlIHdoZXRoZXIgdGhlIHRlc3Qgc2hvdWxkIHJ1biwgdGhlbiByZWNvcmRzIHRoZQot
ICAvLyByZXN1bHQgaW4gZWFjaCBUZXN0Q2FzZSBhbmQgVGVzdEluZm8gb2JqZWN0LgorICAvLyBy
ZXN1bHQgaW4gZWFjaCBUZXN0U3VpdGUgYW5kIFRlc3RJbmZvIG9iamVjdC4KICAgLy8gSWYgc2hh
cmRfdGVzdHMgPT0gSE9OT1JfU0hBUkRJTkdfUFJPVE9DT0wsIGZ1cnRoZXIgZmlsdGVycyB0ZXN0
cwogICAvLyBiYXNlZCBvbiBzaGFyZGluZyB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50Lgog
ICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGVzdHMgdGhhdCBzaG91bGQgcnVuLgpAQCAtNzM0
LDcgKzc3MCw3IEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAgLy8gUHJpbnRz
IHRoZSBuYW1lcyBvZiB0aGUgdGVzdHMgbWF0Y2hpbmcgdGhlIHVzZXItc3BlY2lmaWVkIGZpbHRl
ciBmbGFnLgogICB2b2lkIExpc3RUZXN0c01hdGNoaW5nRmlsdGVyKCk7CiAKLSAgY29uc3QgVGVz
dENhc2UqIGN1cnJlbnRfdGVzdF9jYXNlKCkgY29uc3QgeyByZXR1cm4gY3VycmVudF90ZXN0X2Nh
c2VfOyB9CisgIGNvbnN0IFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlKCkgY29uc3QgeyBy
ZXR1cm4gY3VycmVudF90ZXN0X3N1aXRlXzsgfQogICBUZXN0SW5mbyogY3VycmVudF90ZXN0X2lu
Zm8oKSB7IHJldHVybiBjdXJyZW50X3Rlc3RfaW5mb187IH0KICAgY29uc3QgVGVzdEluZm8qIGN1
cnJlbnRfdGVzdF9pbmZvKCkgY29uc3QgeyByZXR1cm4gY3VycmVudF90ZXN0X2luZm9fOyB9CiAK
QEAgLTc5NSwxMSArODMxLDExIEBAIGNsYXNzIEdURVNUX0FQSV8gVW5pdFRlc3RJbXBsIHsKICAg
Ly8gR2V0cyB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCiAgIGludGVybmFsOjpSYW5kb20q
IHJhbmRvbSgpIHsgcmV0dXJuICZyYW5kb21fOyB9CiAKLSAgLy8gU2h1ZmZsZXMgYWxsIHRlc3Qg
Y2FzZXMsIGFuZCB0aGUgdGVzdHMgd2l0aGluIGVhY2ggdGVzdCBjYXNlLAorICAvLyBTaHVmZmxl
cyBhbGwgdGVzdCBzdWl0ZXMsIGFuZCB0aGUgdGVzdHMgd2l0aGluIGVhY2ggdGVzdCBzdWl0ZSwK
ICAgLy8gbWFraW5nIHN1cmUgdGhhdCBkZWF0aCB0ZXN0cyBhcmUgc3RpbGwgcnVuIGZpcnN0Lgog
ICB2b2lkIFNodWZmbGVUZXN0cygpOwogCi0gIC8vIFJlc3RvcmVzIHRoZSB0ZXN0IGNhc2VzIGFu
ZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCisgIC8vIFJl
c3RvcmVzIHRoZSB0ZXN0IHN1aXRlcyBhbmQgdGVzdHMgdG8gdGhlaXIgb3JkZXIgYmVmb3JlIHRo
ZSBmaXJzdCBzaHVmZmxlLgogICB2b2lkIFVuc2h1ZmZsZVRlc3RzKCk7CiAKICAgLy8gUmV0dXJu
cyB0aGUgdmFsdWUgb2YgR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRpb25zKSBhdCB0aGUgbW9tZW50
CkBAIC04MzksMzEgKzg3NSwzNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0SW1wbCB7CiAg
IC8vIGJlZm9yZS9hZnRlciB0aGUgdGVzdHMgYXJlIHJ1bi4KICAgc3RkOjp2ZWN0b3I8RW52aXJv
bm1lbnQqPiBlbnZpcm9ubWVudHNfOwogCi0gIC8vIFRoZSB2ZWN0b3Igb2YgVGVzdENhc2VzIGlu
IHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKKyAgLy8gVGhlIHZlY3RvciBvZiBU
ZXN0U3VpdGVzIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLiAgSXQgb3ducyB0aGUKICAgLy8gZWxl
bWVudHMgaW4gdGhlIHZlY3Rvci4KLSAgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiB0ZXN0X2Nhc2Vz
XzsKKyAgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4gdGVzdF9zdWl0ZXNfOwogCi0gIC8vIFByb3Zp
ZGVzIGEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gZm9yIHRoZSB0ZXN0IGNhc2UgbGlzdCB0byBhbGxv
dwotICAvLyBlYXN5IHNodWZmbGluZyBhbmQgcmVzdG9yaW5nIHRoZSB0ZXN0IGNhc2Ugb3JkZXIu
ICBUaGUgaS10aAotICAvLyBlbGVtZW50IG9mIHRoaXMgdmVjdG9yIGlzIHRoZSBpbmRleCBvZiB0
aGUgaS10aCB0ZXN0IGNhc2UgaW4gdGhlCisgIC8vIFByb3ZpZGVzIGEgbGV2ZWwgb2YgaW5kaXJl
Y3Rpb24gZm9yIHRoZSB0ZXN0IHN1aXRlIGxpc3QgdG8gYWxsb3cKKyAgLy8gZWFzeSBzaHVmZmxp
bmcgYW5kIHJlc3RvcmluZyB0aGUgdGVzdCBzdWl0ZSBvcmRlci4gIFRoZSBpLXRoCisgIC8vIGVs
ZW1lbnQgb2YgdGhpcyB2ZWN0b3IgaXMgdGhlIGluZGV4IG9mIHRoZSBpLXRoIHRlc3Qgc3VpdGUg
aW4gdGhlCiAgIC8vIHNodWZmbGVkIG9yZGVyLgotICBzdGQ6OnZlY3RvcjxpbnQ+IHRlc3RfY2Fz
ZV9pbmRpY2VzXzsKKyAgc3RkOjp2ZWN0b3I8aW50PiB0ZXN0X3N1aXRlX2luZGljZXNfOwogCiAg
IC8vIFBhcmFtZXRlcml6ZWRUZXN0UmVnaXN0cnkgb2JqZWN0IHVzZWQgdG8gcmVnaXN0ZXIgdmFs
dWUtcGFyYW1ldGVyaXplZAogICAvLyB0ZXN0cy4KLSAgaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRU
ZXN0Q2FzZVJlZ2lzdHJ5IHBhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeV87CisgIGludGVybmFs
OjpQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkgcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lz
dHJ5XzsKKyAgaW50ZXJuYWw6OlR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnkKKyAg
ICAgIHR5cGVfcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5XzsKKworICAvLyBUaGUgc2V0IGhv
bGRpbmcgdGhlIG5hbWUgb2YgcGFyYW1ldGVyaXplZAorICAvLyB0ZXN0IHN1aXRlcyB0aGF0IG1h
eSBnbyB1bmluc3RhbnRpYXRlZC4KKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGlnbm9yZWRfcGFy
YW1ldGVyaXplZF90ZXN0X3N1aXRlc187CiAKICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgUmVnaXN0
ZXJQYXJhbWV0ZXJpemVkVGVzdHMoKSBoYXMgYmVlbiBjYWxsZWQgYWxyZWFkeS4KICAgYm9vbCBw
YXJhbWV0ZXJpemVkX3Rlc3RzX3JlZ2lzdGVyZWRfOwogCi0gIC8vIEluZGV4IG9mIHRoZSBsYXN0
IGRlYXRoIHRlc3QgY2FzZSByZWdpc3RlcmVkLiAgSW5pdGlhbGx5IC0xLgotICBpbnQgbGFzdF9k
ZWF0aF90ZXN0X2Nhc2VfOworICAvLyBJbmRleCBvZiB0aGUgbGFzdCBkZWF0aCB0ZXN0IHN1aXRl
IHJlZ2lzdGVyZWQuICBJbml0aWFsbHkgLTEuCisgIGludCBsYXN0X2RlYXRoX3Rlc3Rfc3VpdGVf
OwogCi0gIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBUZXN0Q2FzZSBmb3IgdGhlIGN1cnJlbnRseSBy
dW5uaW5nIHRlc3QuICBJdAotICAvLyBjaGFuZ2VzIGFzIEdvb2dsZSBUZXN0IGdvZXMgdGhyb3Vn
aCBvbmUgdGVzdCBjYXNlIGFmdGVyIGFub3RoZXIuCisgIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBU
ZXN0U3VpdGUgZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LiAgSXQKKyAgLy8gY2hhbmdl
cyBhcyBHb29nbGUgVGVzdCBnb2VzIHRocm91Z2ggb25lIHRlc3Qgc3VpdGUgYWZ0ZXIgYW5vdGhl
ci4KICAgLy8gV2hlbiBubyB0ZXN0IGlzIHJ1bm5pbmcsIHRoaXMgaXMgc2V0IHRvIE5VTEwgYW5k
IEdvb2dsZSBUZXN0CiAgIC8vIHN0b3JlcyBhc3NlcnRpb24gcmVzdWx0cyBpbiBhZF9ob2NfdGVz
dF9yZXN1bHRfLiAgSW5pdGlhbGx5IE5VTEwuCi0gIFRlc3RDYXNlKiBjdXJyZW50X3Rlc3RfY2Fz
ZV87CisgIFRlc3RTdWl0ZSogY3VycmVudF90ZXN0X3N1aXRlXzsKIAogICAvLyBUaGlzIHBvaW50
cyB0byB0aGUgVGVzdEluZm8gZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0ZXN0LiAgSXQKICAg
Ly8gY2hhbmdlcyBhcyBHb29nbGUgVGVzdCBnb2VzIHRocm91Z2ggb25lIHRlc3QgYWZ0ZXIgYW5v
dGhlci4gIFdoZW4KQEAgLTg5MSw3ICs5MzMsNyBAQCBjbGFzcyBHVEVTVF9BUElfIFVuaXRUZXN0
SW1wbCB7CiAgIC8vIGRlc2lyZWQuCiAgIE9zU3RhY2tUcmFjZUdldHRlckludGVyZmFjZSogb3Nf
c3RhY2tfdHJhY2VfZ2V0dGVyXzsKIAotICAvLyBUcnVlIGlmZiBQb3N0RmxhZ1BhcnNpbmdJbml0
KCkgaGFzIGJlZW4gY2FsbGVkLgorICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIFBvc3RGbGFnUGFy
c2luZ0luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCiAgIGJvb2wgcG9zdF9mbGFnX3BhcnNlX2luaXRf
cGVyZm9ybWVkXzsKIAogICAvLyBUaGUgcmFuZG9tIG51bWJlciBzZWVkIHVzZWQgYXQgdGhlIGJl
Z2lubmluZyBvZiB0aGUgdGVzdCBydW4uCkBAIC05MTAsOCArOTUyLDggQEAgY2xhc3MgR1RFU1Rf
QVBJXyBVbml0VGVzdEltcGwgewogI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCiAgIC8vIFRoZSBk
ZWNvbXBvc2VkIGNvbXBvbmVudHMgb2YgdGhlIGd0ZXN0X2ludGVybmFsX3J1bl9kZWF0aF90ZXN0
IGZsYWcsCiAgIC8vIHBhcnNlZCB3aGVuIFJVTl9BTExfVEVTVFMgaXMgY2FsbGVkLgotICBpbnRl
cm5hbDo6c2NvcGVkX3B0cjxJbnRlcm5hbFJ1bkRlYXRoVGVzdEZsYWc+IGludGVybmFsX3J1bl9k
ZWF0aF90ZXN0X2ZsYWdfOwotICBpbnRlcm5hbDo6c2NvcGVkX3B0cjxpbnRlcm5hbDo6RGVhdGhU
ZXN0RmFjdG9yeT4gZGVhdGhfdGVzdF9mYWN0b3J5XzsKKyAgc3RkOjp1bmlxdWVfcHRyPEludGVy
bmFsUnVuRGVhdGhUZXN0RmxhZz4gaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ187CisgIHN0
ZDo6dW5pcXVlX3B0cjxpbnRlcm5hbDo6RGVhdGhUZXN0RmFjdG9yeT4gZGVhdGhfdGVzdF9mYWN0
b3J5XzsKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0RFQVRIX1RFU1QKIAogICAvLyBBIHBlci10aHJl
YWQgc3RhY2sgb2YgdHJhY2VzIGNyZWF0ZWQgYnkgdGhlIFNDT1BFRF9UUkFDRSgpIG1hY3JvLgpA
QCAtOTc4LDI0ICsxMDIwLDExIEBAIGJvb2wgUGFyc2VOYXR1cmFsTnVtYmVyKGNvbnN0IDo6c3Rk
OjpzdHJpbmcmIHN0ciwgSW50ZWdlciogbnVtYmVyKSB7CiAgIGNoYXIqIGVuZDsKICAgLy8gQmln
Z2VzdENvbnZlcnRpYmxlIGlzIHRoZSBsYXJnZXN0IGludGVnZXIgdHlwZSB0aGF0IHN5c3RlbS1w
cm92aWRlZAogICAvLyBzdHJpbmctdG8tbnVtYmVyIGNvbnZlcnNpb24gcm91dGluZXMgY2FuIHJl
dHVybi4KKyAgdXNpbmcgQmlnZ2VzdENvbnZlcnRpYmxlID0gdW5zaWduZWQgbG9uZyBsb25nOyAg
Ly8gTk9MSU5UCiAKLSMgaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhZGVmaW5lZChfX0dOVUNfXykK
LQotICAvLyBNU1ZDIGFuZCBDKysgQnVpbGRlciBkZWZpbmUgX19pbnQ2NCBpbnN0ZWFkIG9mIHRo
ZSBzdGFuZGFyZCBsb25nIGxvbmcuCi0gIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBCaWdnZXN0
Q29udmVydGlibGU7Ci0gIGNvbnN0IEJpZ2dlc3RDb252ZXJ0aWJsZSBwYXJzZWQgPSBfc3RydG91
aTY0KHN0ci5jX3N0cigpLCAmZW5kLCAxMCk7Ci0KLSMgZWxzZQotCi0gIHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBsb25nIEJpZ2dlc3RDb252ZXJ0aWJsZTsgIC8vIE5PTElOVAotICBjb25zdCBCaWdn
ZXN0Q29udmVydGlibGUgcGFyc2VkID0gc3RydG91bGwoc3RyLmNfc3RyKCksICZlbmQsIDEwKTsK
LQotIyBlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUyAmJiAhZGVmaW5lZChfX0dOVUNfXykKLQor
ICBjb25zdCBCaWdnZXN0Q29udmVydGlibGUgcGFyc2VkID0gc3RydG91bGwoc3RyLmNfc3RyKCks
ICZlbmQsIDEwKTsgIC8vIE5PTElOVAogICBjb25zdCBib29sIHBhcnNlX3N1Y2Nlc3MgPSAqZW5k
ID09ICdcMCcgJiYgZXJybm8gPT0gMDsKIAotICAvLyBGSVhNRTogQ29udmVydCB0aGlzIHRvIGNv
bXBpbGUgdGltZSBhc3NlcnRpb24gd2hlbiBpdCBpcwotICAvLyBhdmFpbGFibGUuCiAgIEdURVNU
X0NIRUNLXyhzaXplb2YoSW50ZWdlcikgPD0gc2l6ZW9mKHBhcnNlZCkpOwogCiAgIGNvbnN0IElu
dGVnZXIgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SW50ZWdlcj4ocGFyc2VkKTsKQEAgLTEwNTksMTgg
KzEwODgsMTggQEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZl
bnRMaXN0ZW5lciB7CiAgICAgICBNYWtlQ29ubmVjdGlvbigpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgflNvY2tldFdyaXRlcigpIHsKKyAgICB+U29ja2V0V3JpdGVyKCkgb3ZlcnJpZGUgewogICAg
ICAgaWYgKHNvY2tmZF8gIT0gLTEpCiAgICAgICAgIENsb3NlQ29ubmVjdGlvbigpOwogICAgIH0K
IAogICAgIC8vIFNlbmRzIGEgc3RyaW5nIHRvIHRoZSBzb2NrZXQuCi0gICAgdmlydHVhbCB2b2lk
IFNlbmQoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKKyAgICB2b2lkIFNlbmQoY29uc3Qg
c3RkOjpzdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlIHsKICAgICAgIEdURVNUX0NIRUNLXyhzb2Nr
ZmRfICE9IC0xKQogICAgICAgICAgIDw8ICJTZW5kKCkgY2FuIGJlIGNhbGxlZCBvbmx5IHdoZW4g
dGhlcmUgaXMgYSBjb25uZWN0aW9uLiI7CiAKLSAgICAgIGNvbnN0IGludCBsZW4gPSBzdGF0aWNf
Y2FzdDxpbnQ+KG1lc3NhZ2UubGVuZ3RoKCkpOwotICAgICAgaWYgKHdyaXRlKHNvY2tmZF8sIG1l
c3NhZ2UuY19zdHIoKSwgbGVuKSAhPSBsZW4pIHsKKyAgICAgIGNvbnN0IGF1dG8gbGVuID0gc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtZXNzYWdlLmxlbmd0aCgpKTsKKyAgICAgIGlmICh3cml0ZShzb2Nr
ZmRfLCBtZXNzYWdlLmNfc3RyKCksIGxlbikgIT0gc3RhdGljX2Nhc3Q8c3NpemVfdD4obGVuKSkg
ewogICAgICAgICBHVEVTVF9MT0dfKFdBUk5JTkcpCiAgICAgICAgICAgICA8PCAic3RyZWFtX3Jl
c3VsdF90bzogZmFpbGVkIHRvIHN0cmVhbSB0byAiCiAgICAgICAgICAgICA8PCBob3N0X25hbWVf
IDw8ICI6IiA8PCBwb3J0X251bV87CkBAIC0xMDgyLDcgKzExMTEsNyBAQCBjbGFzcyBTdHJlYW1p
bmdMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICB2b2lkIE1h
a2VDb25uZWN0aW9uKCk7CiAKICAgICAvLyBDbG9zZXMgdGhlIHNvY2tldC4KLSAgICB2b2lkIENs
b3NlQ29ubmVjdGlvbigpIHsKKyAgICB2b2lkIENsb3NlQ29ubmVjdGlvbigpIG92ZXJyaWRlIHsK
ICAgICAgIEdURVNUX0NIRUNLXyhzb2NrZmRfICE9IC0xKQogICAgICAgICAgIDw8ICJDbG9zZUNv
bm5lY3Rpb24oKSBjYW4gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNvbm5lY3Rpb24u
IjsKIApAQCAtMTEwOCwxMSArMTEzNywxMSBAQCBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lciA6IHB1
YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgZXhwbGljaXQgU3RyZWFtaW5nTGlzdGVu
ZXIoQWJzdHJhY3RTb2NrZXRXcml0ZXIqIHNvY2tldF93cml0ZXIpCiAgICAgICA6IHNvY2tldF93
cml0ZXJfKHNvY2tldF93cml0ZXIpIHsgU3RhcnQoKTsgfQogCi0gIHZvaWQgT25UZXN0UHJvZ3Jh
bVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8pIHsKKyAgdm9pZCBPblRlc3RQ
cm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLykgb3ZlcnJpZGUgewog
ICAgIFNlbmRMbigiZXZlbnQ9VGVzdFByb2dyYW1TdGFydCIpOwogICB9CiAKLSAgdm9pZCBPblRl
c3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIHsKKyAgdm9pZCBPblRlc3RQ
cm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlIHsKICAgICAvLyBO
b3RlIHRoYXQgR29vZ2xlIFRlc3QgY3VycmVudCBvbmx5IHJlcG9ydCBlbGFwc2VkIHRpbWUgZm9y
IGVhY2gKICAgICAvLyB0ZXN0IGl0ZXJhdGlvbiwgbm90IGZvciB0aGUgZW50aXJlIHRlc3QgcHJv
Z3JhbS4KICAgICBTZW5kTG4oImV2ZW50PVRlc3RQcm9ncmFtRW5kJnBhc3NlZD0iICsgRm9ybWF0
Qm9vbCh1bml0X3Rlc3QuUGFzc2VkKCkpKTsKQEAgLTExMjEsNDIgKzExNTAsNDcgQEAgY2xhc3Mg
U3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAgICAg
c29ja2V0X3dyaXRlcl8tPkNsb3NlQ29ubmVjdGlvbigpOwogICB9CiAKLSAgdm9pZCBPblRlc3RJ
dGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyogdW5pdF90ZXN0ICovLCBpbnQgaXRlcmF0
aW9uKSB7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVu
aXRfdGVzdCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9uKSBv
dmVycmlkZSB7CiAgICAgU2VuZExuKCJldmVudD1UZXN0SXRlcmF0aW9uU3RhcnQmaXRlcmF0aW9u
PSIgKwogICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcoaXRlcmF0aW9uKSk7CiAgIH0KIAot
ICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQg
LyogaXRlcmF0aW9uICovKSB7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAvKiBpdGVyYXRp
b24gKi8pIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oImV2ZW50PVRlc3RJdGVyYXRpb25FbmQmcGFz
c2VkPSIgKwogICAgICAgICAgICBGb3JtYXRCb29sKHVuaXRfdGVzdC5QYXNzZWQoKSkgKyAiJmVs
YXBzZWRfdGltZT0iICsKICAgICAgICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHVuaXRfdGVzdC5l
bGFwc2VkX3RpbWUoKSkgKyAibXMiKTsKICAgfQogCi0gIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNv
bnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKKyAgLy8gTm90ZSB0aGF0ICJldmVudD1UZXN0Q2Fz
ZVN0YXJ0IiBpcyBhIHdpcmUgZm9ybWF0IGFuZCBoYXMgdG8gcmVtYWluCisgIC8vICJjYXNlIiBm
b3IgY29tcGF0aWJpbHR5CisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiB0
ZXN0X2Nhc2UpIG92ZXJyaWRlIHsKICAgICBTZW5kTG4oc3RkOjpzdHJpbmcoImV2ZW50PVRlc3RD
YXNlU3RhcnQmbmFtZT0iKSArIHRlc3RfY2FzZS5uYW1lKCkpOwogICB9CiAKLSAgdm9pZCBPblRl
c3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpIHsKLSAgICBTZW5kTG4oImV2ZW50
PVRlc3RDYXNlRW5kJnBhc3NlZD0iICsgRm9ybWF0Qm9vbCh0ZXN0X2Nhc2UuUGFzc2VkKCkpCi0g
ICAgICAgICAgICsgIiZlbGFwc2VkX3RpbWU9IiArIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nh
c2UuZWxhcHNlZF90aW1lKCkpCi0gICAgICAgICAgICsgIm1zIik7CisgIC8vIE5vdGUgdGhhdCAi
ZXZlbnQ9VGVzdENhc2VFbmQiIGlzIGEgd2lyZSBmb3JtYXQgYW5kIGhhcyB0byByZW1haW4KKyAg
Ly8gImNhc2UiIGZvciBjb21wYXRpYmlsdHkKKyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRl
c3RDYXNlJiB0ZXN0X2Nhc2UpIG92ZXJyaWRlIHsKKyAgICBTZW5kTG4oImV2ZW50PVRlc3RDYXNl
RW5kJnBhc3NlZD0iICsgRm9ybWF0Qm9vbCh0ZXN0X2Nhc2UuUGFzc2VkKCkpICsKKyAgICAgICAg
ICAgIiZlbGFwc2VkX3RpbWU9IiArIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X2Nhc2UuZWxhcHNl
ZF90aW1lKCkpICsKKyAgICAgICAgICAgIm1zIik7CiAgIH0KIAotICB2b2lkIE9uVGVzdFN0YXJ0
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBU
ZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZSB7CiAgICAgU2VuZExuKHN0ZDo6c3RyaW5nKCJl
dmVudD1UZXN0U3RhcnQmbmFtZT0iKSArIHRlc3RfaW5mby5uYW1lKCkpOwogICB9CiAKLSAgdm9p
ZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgeworICB2b2lkIE9uVGVzdEVu
ZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVycmlkZSB7CiAgICAgU2VuZExuKCJldmVu
dD1UZXN0RW5kJnBhc3NlZD0iICsKICAgICAgICAgICAgRm9ybWF0Qm9vbCgodGVzdF9pbmZvLnJl
c3VsdCgpKS0+UGFzc2VkKCkpICsKICAgICAgICAgICAgIiZlbGFwc2VkX3RpbWU9IiArCiAgICAg
ICAgICAgIFN0cmVhbWFibGVUb1N0cmluZygodGVzdF9pbmZvLnJlc3VsdCgpKS0+ZWxhcHNlZF90
aW1lKCkpICsgIm1zIik7CiAgIH0KIAotICB2b2lkIE9uVGVzdFBhcnRSZXN1bHQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHRlc3RfcGFydF9yZXN1bHQpIHsKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0
KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0X3BhcnRfcmVzdWx0KSBvdmVycmlkZSB7CiAgICAg
Y29uc3QgY2hhciogZmlsZV9uYW1lID0gdGVzdF9wYXJ0X3Jlc3VsdC5maWxlX25hbWUoKTsKLSAg
ICBpZiAoZmlsZV9uYW1lID09IE5VTEwpCi0gICAgICBmaWxlX25hbWUgPSAiIjsKKyAgICBpZiAo
ZmlsZV9uYW1lID09IG51bGxwdHIpIGZpbGVfbmFtZSA9ICIiOwogICAgIFNlbmRMbigiZXZlbnQ9
VGVzdFBhcnRSZXN1bHQmZmlsZT0iICsgVXJsRW5jb2RlKGZpbGVfbmFtZSkgKwogICAgICAgICAg
ICAiJmxpbmU9IiArIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3BhcnRfcmVzdWx0LmxpbmVfbnVt
YmVyKCkpICsKICAgICAgICAgICAgIiZtZXNzYWdlPSIgKyBVcmxFbmNvZGUodGVzdF9wYXJ0X3Jl
c3VsdC5tZXNzYWdlKCkpKTsKQEAgLTExNzIsNyArMTIwNiw3IEBAIGNsYXNzIFN0cmVhbWluZ0xp
c3RlbmVyIDogcHVibGljIEVtcHR5VGVzdEV2ZW50TGlzdGVuZXIgewogCiAgIHN0ZDo6c3RyaW5n
IEZvcm1hdEJvb2woYm9vbCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPyAiMSIgOiAiMCI7IH0KIAot
ICBjb25zdCBzY29wZWRfcHRyPEFic3RyYWN0U29ja2V0V3JpdGVyPiBzb2NrZXRfd3JpdGVyXzsK
KyAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U29ja2V0V3JpdGVyPiBzb2NrZXRfd3Jp
dGVyXzsKIAogICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFN0cmVhbWluZ0xpc3Rl
bmVyKTsKIH07ICAvLyBjbGFzcyBTdHJlYW1pbmdMaXN0ZW5lcgpAQCAtMTE4NCw0ICsxMjE4LDQg
QEAgY2xhc3MgU3RyZWFtaW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRMaXN0ZW5l
ciB7CiAKIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKSAgLy8gIDQyNTEKIAotI2Vu
ZGlmICAvLyBHVEVTVF9TUkNfR1RFU1RfSU5URVJOQUxfSU5MX0hfCisjZW5kaWYgIC8vIEdPT0dM
RVRFU1RfU1JDX0dURVNUX0lOVEVSTkFMX0lOTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LW1hdGNoZXJzLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3Qvc3JjL2d0ZXN0LW1hdGNoZXJzLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MTA0ZWJhYjFiYTlhZjA2MzI3
ZmM5NGMwYTAzOGI2ODA2ZDQyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtbWF0Y2hlcnMuY2MKQEAgLTAsMCArMSw5NyBAQAorLy8gQ29weXJp
Z2h0IDIwMDcsIEdvb2dsZSBJbmMuCisvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRp
b24uCisvLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisv
LyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisvLyBUaGUgR29vZ2xlIEMrKyBU
ZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3QpCisvLworLy8gVGhpcyBm
aWxlIGltcGxlbWVudHMganVzdCBlbm91Z2ggb2YgdGhlIG1hdGNoZXIgaW50ZXJmYWNlIHRvIGFs
bG93CisvLyBFWFBFQ1RfREVBVEggYW5kIGZyaWVuZHMgdG8gYWNjZXB0IGEgbWF0Y2hlciBhcmd1
bWVudC4KKworI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWludGVybmFsLmgiCisjaW5j
bHVkZSAiZ3Rlc3QvaW50ZXJuYWwvZ3Rlc3QtcG9ydC5oIgorI2luY2x1ZGUgImd0ZXN0L2d0ZXN0
LW1hdGNoZXJzLmgiCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSB0ZXN0aW5nIHsK
KworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgY29uc3Qgc3RkOjpzdHJp
bmcmIHdob3NlIHZhbHVlIGlzCisvLyBlcXVhbCB0byBzLgorTWF0Y2hlcjxjb25zdCBzdGQ6OnN0
cmluZyY+OjpNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSB7ICp0aGlzID0gRXEocyk7IH0K
KworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgY29uc3Qgc3RkOjpzdHJp
bmcmIHdob3NlIHZhbHVlIGlzCisvLyBlcXVhbCB0byBzLgorTWF0Y2hlcjxjb25zdCBzdGQ6OnN0
cmluZyY+OjpNYXRjaGVyKGNvbnN0IGNoYXIqIHMpIHsKKyAgKnRoaXMgPSBFcShzdGQ6OnN0cmlu
ZyhzKSk7Cit9CisKKy8vIENvbnN0cnVjdHMgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN0ZDo6
c3RyaW5nIHdob3NlIHZhbHVlIGlzIGVxdWFsIHRvCisvLyBzLgorTWF0Y2hlcjxzdGQ6OnN0cmlu
Zz46Ok1hdGNoZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsgKnRoaXMgPSBFcShzKTsgfQorCisv
LyBDb25zdHJ1Y3RzIGEgbWF0Y2hlciB0aGF0IG1hdGNoZXMgYSBzdGQ6OnN0cmluZyB3aG9zZSB2
YWx1ZSBpcyBlcXVhbCB0bworLy8gcy4KK01hdGNoZXI8c3RkOjpzdHJpbmc+OjpNYXRjaGVyKGNv
bnN0IGNoYXIqIHMpIHsgKnRoaXMgPSBFcShzdGQ6OnN0cmluZyhzKSk7IH0KKworI2lmIEdURVNU
X0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBt
YXRjaGVzIGEgY29uc3QgU3RyaW5nVmlldyYgd2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMu
CitNYXRjaGVyPGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3Jj46Ok1hdGNoZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHMpIHsKKyAgKnRoaXMgPSBFcShzKTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1h
dGNoZXIgdGhhdCBtYXRjaGVzIGEgY29uc3QgU3RyaW5nVmlldyYgd2hvc2UgdmFsdWUgaXMKKy8v
IGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3Jj46Ok1hdGNo
ZXIoY29uc3QgY2hhciogcykgeworICAqdGhpcyA9IEVxKHN0ZDo6c3RyaW5nKHMpKTsKK30KKwor
Ly8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVzIGEgY29uc3QgU3RyaW5nVmlldyYg
d2hvc2UgdmFsdWUgaXMKKy8vIGVxdWFsIHRvIHMuCitNYXRjaGVyPGNvbnN0IGludGVybmFsOjpT
dHJpbmdWaWV3Jj46Ok1hdGNoZXIoaW50ZXJuYWw6OlN0cmluZ1ZpZXcgcykgeworICAqdGhpcyA9
IEVxKHN0ZDo6c3RyaW5nKHMpKTsKK30KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBt
YXRjaGVzIGEgU3RyaW5nVmlldyB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0bworLy8gcy4KK01hdGNo
ZXI8aW50ZXJuYWw6OlN0cmluZ1ZpZXc+OjpNYXRjaGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSB7
ICp0aGlzID0gRXEocyk7IH0KKworLy8gQ29uc3RydWN0cyBhIG1hdGNoZXIgdGhhdCBtYXRjaGVz
IGEgU3RyaW5nVmlldyB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0bworLy8gcy4KK01hdGNoZXI8aW50
ZXJuYWw6OlN0cmluZ1ZpZXc+OjpNYXRjaGVyKGNvbnN0IGNoYXIqIHMpIHsKKyAgKnRoaXMgPSBF
cShzdGQ6OnN0cmluZyhzKSk7Cit9CisKKy8vIENvbnN0cnVjdHMgYSBtYXRjaGVyIHRoYXQgbWF0
Y2hlcyBhIFN0cmluZ1ZpZXcgd2hvc2UgdmFsdWUgaXMgZXF1YWwgdG8KKy8vIHMuCitNYXRjaGVy
PGludGVybmFsOjpTdHJpbmdWaWV3Pjo6TWF0Y2hlcihpbnRlcm5hbDo6U3RyaW5nVmlldyBzKSB7
CisgICp0aGlzID0gRXEoc3RkOjpzdHJpbmcocykpOworfQorI2VuZGlmICAvLyBHVEVTVF9JTlRF
Uk5BTF9IQVNfU1RSSU5HX1ZJRVcKKworfSAgLy8gbmFtZXNwYWNlIHRlc3RpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1wb3J0LmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MKaW5kZXggZmVjYjVkMTFjMjEyOTZhOTE4
MWExMTI4MDIyNjA2N2I2NDNlZGQwNS4uM2YzOWY3MWMwNzQ1OWI1YzAxMTA1Nzc3MTEzNGU1YzJi
OThjZTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBv
cnQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBvcnQuY2MKQEAg
LTMxLDE2ICszMSwyMSBAQAogI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIK
IAogI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVk
ZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxmc3RyZWFtPgorI2luY2x1ZGUgPG1lbW9yeT4KIAogI2lm
IEdURVNUX09TX1dJTkRPV1MKICMgaW5jbHVkZSA8d2luZG93cy5oPgogIyBpbmNsdWRlIDxpby5o
PgogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgogIyBpbmNsdWRlIDxtYXA+ICAvLyBVc2VkIGluIFRo
cmVhZExvY2FsLgorIyBpZmRlZiBfTVNDX1ZFUgorIyAgaW5jbHVkZSA8Y3J0ZGJnLmg+CisjIGVu
ZGlmICAvLyBfTVNDX1ZFUgogI2Vsc2UKICMgaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYgIC8v
IEdURVNUX09TX1dJTkRPV1MKQEAgLTUxLDYgKzU2LDE0IEBACiAjIGluY2x1ZGUgPG1hY2gvdm1f
bWFwLmg+CiAjZW5kaWYgIC8vIEdURVNUX09TX01BQwogCisjaWYgR1RFU1RfT1NfRFJBR09ORkxZ
IHx8IEdURVNUX09TX0ZSRUVCU0QgfHwgR1RFU1RfT1NfR05VX0tGUkVFQlNEIHx8IFwKKyAgICBH
VEVTVF9PU19ORVRCU0QgfHwgR1RFU1RfT1NfT1BFTkJTRAorIyBpbmNsdWRlIDxzeXMvc3lzY3Rs
Lmg+CisjIGlmIEdURVNUX09TX0RSQUdPTkZMWSB8fCBHVEVTVF9PU19GUkVFQlNEIHx8IEdURVNU
X09TX0dOVV9LRlJFRUJTRAorIyAgaW5jbHVkZSA8c3lzL3VzZXIuaD4KKyMgZW5kaWYKKyNlbmRp
ZgorCiAjaWYgR1RFU1RfT1NfUU5YCiAjIGluY2x1ZGUgPGRldmN0bC5oPgogIyBpbmNsdWRlIDxm
Y250bC5oPgpAQCAtMTA1LDcgKzExOCw3IEBAIFQgUmVhZFByb2NGaWxlRmllbGQoY29uc3Qgc3Rk
OjpzdHJpbmcmIGZpbGVuYW1lLCBpbnQgZmllbGQpIHsKIHNpemVfdCBHZXRUaHJlYWRDb3VudCgp
IHsKICAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZW5hbWUgPQogICAgICAgKE1lc3NhZ2UoKSA8PCAi
L3Byb2MvIiA8PCBnZXRwaWQoKSA8PCAiL3N0YXQiKS5HZXRTdHJpbmcoKTsKLSAgcmV0dXJuIFJl
YWRQcm9jRmlsZUZpZWxkPGludD4oZmlsZW5hbWUsIDE5KTsKKyAgcmV0dXJuIFJlYWRQcm9jRmls
ZUZpZWxkPHNpemVfdD4oZmlsZW5hbWUsIDE5KTsKIH0KIAogI2VsaWYgR1RFU1RfT1NfTUFDCkBA
IC0xMjcsNiArMTQwLDgyIEBAIHNpemVfdCBHZXRUaHJlYWRDb3VudCgpIHsKICAgfQogfQogCisj
ZWxpZiBHVEVTVF9PU19EUkFHT05GTFkgfHwgR1RFU1RfT1NfRlJFRUJTRCB8fCBHVEVTVF9PU19H
TlVfS0ZSRUVCU0QgfHwgXAorICAgICAgR1RFU1RfT1NfTkVUQlNECisKKyNpZiBHVEVTVF9PU19O
RVRCU0QKKyN1bmRlZiBLRVJOX1BST0MKKyNkZWZpbmUgS0VSTl9QUk9DIEtFUk5fUFJPQzIKKyNk
ZWZpbmUga2luZm9fcHJvYyBraW5mb19wcm9jMgorI2VuZGlmCisKKyNpZiBHVEVTVF9PU19EUkFH
T05GTFkKKyNkZWZpbmUgS1BfTkxXUChrcCkgKGtwLmtwX250aHJlYWRzKQorI2VsaWYgR1RFU1Rf
T1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QKKyNkZWZpbmUgS1BfTkxXUChrcCkg
KGtwLmtpX251bXRocmVhZHMpCisjZWxpZiBHVEVTVF9PU19ORVRCU0QKKyNkZWZpbmUgS1BfTkxX
UChrcCkgKGtwLnBfbmx3cHMpCisjZW5kaWYKKworLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRo
cmVhZHMgcnVubmluZyBpbiB0aGUgcHJvY2Vzcywgb3IgMCB0byBpbmRpY2F0ZSB0aGF0CisvLyB3
ZSBjYW5ub3QgZGV0ZWN0IGl0Lgorc2l6ZV90IEdldFRocmVhZENvdW50KCkgeworICBpbnQgbWli
W10gPSB7CisgICAgQ1RMX0tFUk4sCisgICAgS0VSTl9QUk9DLAorICAgIEtFUk5fUFJPQ19QSUQs
CisgICAgZ2V0cGlkKCksCisjaWYgR1RFU1RfT1NfTkVUQlNECisgICAgc2l6ZW9mKHN0cnVjdCBr
aW5mb19wcm9jKSwKKyAgICAxLAorI2VuZGlmCisgIH07CisgIHVfaW50IG1pYmxlbiA9IHNpemVv
ZihtaWIpIC8gc2l6ZW9mKG1pYlswXSk7CisgIHN0cnVjdCBraW5mb19wcm9jIGluZm87CisgIHNp
emVfdCBzaXplID0gc2l6ZW9mKGluZm8pOworICBpZiAoc3lzY3RsKG1pYiwgbWlibGVuLCAmaW5m
bywgJnNpemUsIE5VTEwsIDApKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgcmV0dXJuIHN0YXRp
Y19jYXN0PHNpemVfdD4oS1BfTkxXUChpbmZvKSk7Cit9CisjZWxpZiBHVEVTVF9PU19PUEVOQlNE
CisKKy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0aHJlYWRzIHJ1bm5pbmcgaW4gdGhlIHByb2Nl
c3MsIG9yIDAgdG8gaW5kaWNhdGUgdGhhdAorLy8gd2UgY2Fubm90IGRldGVjdCBpdC4KK3NpemVf
dCBHZXRUaHJlYWRDb3VudCgpIHsKKyAgaW50IG1pYltdID0geworICAgIENUTF9LRVJOLAorICAg
IEtFUk5fUFJPQywKKyAgICBLRVJOX1BST0NfUElEIHwgS0VSTl9QUk9DX1NIT1dfVEhSRUFEUywK
KyAgICBnZXRwaWQoKSwKKyAgICBzaXplb2Yoc3RydWN0IGtpbmZvX3Byb2MpLAorICAgIDAsCisg
IH07CisgIHVfaW50IG1pYmxlbiA9IHNpemVvZihtaWIpIC8gc2l6ZW9mKG1pYlswXSk7CisKKyAg
Ly8gZ2V0IG51bWJlciBvZiBzdHJ1Y3RzCisgIHNpemVfdCBzaXplOworICBpZiAoc3lzY3RsKG1p
YiwgbWlibGVuLCBOVUxMLCAmc2l6ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQor
CisgIG1pYls1XSA9IHN0YXRpY19jYXN0PGludD4oc2l6ZSAvIHN0YXRpY19jYXN0PHNpemVfdD4o
bWliWzRdKSk7CisKKyAgLy8gcG9wdWxhdGUgYXJyYXkgb2Ygc3RydWN0cworICBzdHJ1Y3Qga2lu
Zm9fcHJvYyBpbmZvW21pYls1XV07CisgIGlmIChzeXNjdGwobWliLCBtaWJsZW4sICZpbmZvLCAm
c2l6ZSwgTlVMTCwgMCkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIC8vIGV4Y2x1ZGUgZW1w
dHkgbWVtYmVycworICBzaXplX3QgbnRocmVhZHMgPSAwOworICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemUgLyBzdGF0aWNfY2FzdDxzaXplX3Q+KG1pYls0XSk7IGkrKykgeworICAgIGlmIChp
bmZvW2ldLnBfdGlkICE9IC0xKQorICAgICAgbnRocmVhZHMrKzsKKyAgfQorICByZXR1cm4gbnRo
cmVhZHM7Cit9CisKICNlbGlmIEdURVNUX09TX1FOWAogCiAvLyBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgdGhyZWFkcyBydW5uaW5nIGluIHRoZSBwcm9jZXNzLCBvciAwIHRvIGluZGljYXRlIHRoYXQK
QEAgLTEzOCw3ICsyMjcsNyBAQCBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAgIH0KICAgcHJv
Y2ZzX2luZm8gcHJvY2Vzc19pbmZvOwogICBjb25zdCBpbnQgc3RhdHVzID0KLSAgICAgIGRldmN0
bChmZCwgRENNRF9QUk9DX0lORk8sICZwcm9jZXNzX2luZm8sIHNpemVvZihwcm9jZXNzX2luZm8p
LCBOVUxMKTsKKyAgICAgIGRldmN0bChmZCwgRENNRF9QUk9DX0lORk8sICZwcm9jZXNzX2luZm8s
IHNpemVvZihwcm9jZXNzX2luZm8pLCBudWxscHRyKTsKICAgY2xvc2UoZmQpOwogICBpZiAoc3Rh
dHVzID09IEVPSykgewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3NfaW5m
by5udW1fdGhyZWFkcyk7CkBAIC0xNTIsNyArMjQxLDcgQEAgc2l6ZV90IEdldFRocmVhZENvdW50
KCkgewogc2l6ZV90IEdldFRocmVhZENvdW50KCkgewogICBzdHJ1Y3QgcHJvY2VudHJ5NjQgZW50
cnk7CiAgIHBpZF90IHBpZCA9IGdldHBpZCgpOwotICBpbnQgc3RhdHVzID0gZ2V0cHJvY3M2NCgm
ZW50cnksIHNpemVvZihlbnRyeSksIE5VTEwsIDAsICZwaWQsIDEpOworICBpbnQgc3RhdHVzID0g
Z2V0cHJvY3M2NCgmZW50cnksIHNpemVvZihlbnRyeSksIG51bGxwdHIsIDAsICZwaWQsIDEpOwog
ICBpZiAoc3RhdHVzID09IDEpIHsKICAgICByZXR1cm4gZW50cnkucGlfdGhjb3VudDsKICAgfSBl
bHNlIHsKQEAgLTE5Miw3ICsyODEsNyBAQCBzaXplX3QgR2V0VGhyZWFkQ291bnQoKSB7CiAjaWYg
R1RFU1RfSVNfVEhSRUFEU0FGRSAmJiBHVEVTVF9PU19XSU5ET1dTCiAKIHZvaWQgU2xlZXBNaWxs
aXNlY29uZHMoaW50IG4pIHsKLSAgOjpTbGVlcChuKTsKKyAgOjpTbGVlcChzdGF0aWNfY2FzdDxE
V09SRD4obikpOwogfQogCiBBdXRvSGFuZGxlOjpBdXRvSGFuZGxlKCkKQEAgLTIzMCwxNSArMzE5
LDE1IEBAIHZvaWQgQXV0b0hhbmRsZTo6UmVzZXQoSEFORExFIGhhbmRsZSkgewogYm9vbCBBdXRv
SGFuZGxlOjpJc0Nsb3NlYWJsZSgpIGNvbnN0IHsKICAgLy8gRGlmZmVyZW50IFdpbmRvd3MgQVBJ
cyBtYXkgdXNlIGVpdGhlciBvZiB0aGVzZSB2YWx1ZXMgdG8gcmVwcmVzZW50IGFuCiAgIC8vIGlu
dmFsaWQgaGFuZGxlLgotICByZXR1cm4gaGFuZGxlXyAhPSBOVUxMICYmIGhhbmRsZV8gIT0gSU5W
QUxJRF9IQU5ETEVfVkFMVUU7CisgIHJldHVybiBoYW5kbGVfICE9IG51bGxwdHIgJiYgaGFuZGxl
XyAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKIH0KIAogTm90aWZpY2F0aW9uOjpOb3RpZmljYXRp
b24oKQotICAgIDogZXZlbnRfKDo6Q3JlYXRlRXZlbnQoTlVMTCwgICAvLyBEZWZhdWx0IHNlY3Vy
aXR5IGF0dHJpYnV0ZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLCAgIC8vIERv
IG5vdCByZXNldCBhdXRvbWF0aWNhbGx5LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM
U0UsICAvLyBJbml0aWFsbHkgdW5zZXQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
KSkgeyAgLy8gQW5vbnltb3VzIGV2ZW50LgotICBHVEVTVF9DSEVDS18oZXZlbnRfLkdldCgpICE9
IE5VTEwpOworICAgIDogZXZlbnRfKDo6Q3JlYXRlRXZlbnQobnVsbHB0ciwgICAgIC8vIERlZmF1
bHQgc2VjdXJpdHkgYXR0cmlidXRlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUs
ICAgICAgICAvLyBEbyBub3QgcmVzZXQgYXV0b21hdGljYWxseS4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLCAgICAgICAvLyBJbml0aWFsbHkgdW5zZXQuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudWxscHRyKSkgeyAgLy8gQW5vbnltb3VzIGV2ZW50LgorICBHVEVTVF9D
SEVDS18oZXZlbnRfLkdldCgpICE9IG51bGxwdHIpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbjo6
Tm90aWZ5KCkgewpAQCAtMjYxLDEzICszNTAsMTAgQEAgTXV0ZXg6Ok11dGV4KCkKIE11dGV4Ojp+
TXV0ZXgoKSB7CiAgIC8vIFN0YXRpYyBtdXRleGVzIGFyZSBsZWFrZWQgaW50ZW50aW9uYWxseS4g
SXQgaXMgbm90IHRocmVhZC1zYWZlIHRvIHRyeQogICAvLyB0byBjbGVhbiB0aGVtIHVwLgotICAv
LyBGSVhNRTogU3dpdGNoIHRvIFNsaW0gUmVhZGVyL1dyaXRlciAoU1JXKSBMb2Nrcywgd2hpY2gg
cmVxdWlyZXMKLSAgLy8gbm90aGluZyB0byBjbGVhbiBpdCB1cCBidXQgaXMgYXZhaWxhYmxlIG9u
bHkgb24gVmlzdGEgYW5kIGxhdGVyLgotICAvLyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9l
bi11cy93aW5kb3dzL2Rlc2t0b3AvU3luYy9zbGltLXJlYWRlci13cml0ZXItLXNydy0tbG9ja3MK
ICAgaWYgKHR5cGVfID09IGtEeW5hbWljKSB7CiAgICAgOjpEZWxldGVDcml0aWNhbFNlY3Rpb24o
Y3JpdGljYWxfc2VjdGlvbl8pOwogICAgIGRlbGV0ZSBjcml0aWNhbF9zZWN0aW9uXzsKLSAgICBj
cml0aWNhbF9zZWN0aW9uXyA9IE5VTEw7CisgICAgY3JpdGljYWxfc2VjdGlvbl8gPSBudWxscHRy
OwogICB9CiB9CiAKQEAgLTI5Niw2ICszODIsNyBAQCB2b2lkIE11dGV4OjpBc3NlcnRIZWxkKCkg
ewogCiBuYW1lc3BhY2UgewogCisjaWZkZWYgX01TQ19WRVIKIC8vIFVzZSB0aGUgUkFJSSBpZGlv
bSB0byBmbGFnIG1lbSBhbGxvY3MgdGhhdCBhcmUgaW50ZW50aW9uYWxseSBuZXZlcgogLy8gZGVh
bGxvY2F0ZWQuIFRoZSBtb3RpdmF0aW9uIGlzIHRvIHNpbGVuY2UgdGhlIGZhbHNlIHBvc2l0aXZl
IG1lbSBsZWFrcwogLy8gdGhhdCBhcmUgcmVwb3J0ZWQgYnkgdGhlIGRlYnVnIHZlcnNpb24gb2Yg
TVMncyBDUlQgd2hpY2ggY2FuIG9ubHkgZGV0ZWN0CkBAIC0zMDgsMTkgKzM5NSwxNSBAQCBjbGFz
cyBNZW1vcnlJc05vdERlYWxsb2NhdGVkCiB7CiAgcHVibGljOgogICBNZW1vcnlJc05vdERlYWxs
b2NhdGVkKCkgOiBvbGRfY3J0ZGJnX2ZsYWdfKDApIHsKLSNpZmRlZiBfTVNDX1ZFUgogICAgIG9s
ZF9jcnRkYmdfZmxhZ18gPSBfQ3J0U2V0RGJnRmxhZyhfQ1JUREJHX1JFUE9SVF9GTEFHKTsKICAg
ICAvLyBTZXQgaGVhcCBhbGxvY2F0aW9uIGJsb2NrIHR5cGUgdG8gX0lHTk9SRV9CTE9DSyBzbyB0
aGF0IE1TIGRlYnVnIENSVAogICAgIC8vIGRvZXNuJ3QgcmVwb3J0IG1lbSBsZWFrIGlmIHRoZXJl
J3Mgbm8gbWF0Y2hpbmcgZGVhbGxvY2F0aW9uLgogICAgIF9DcnRTZXREYmdGbGFnKG9sZF9jcnRk
YmdfZmxhZ18gJiB+X0NSVERCR19BTExPQ19NRU1fREYpOwotI2VuZGlmICAvLyAgX01TQ19WRVIK
ICAgfQogCiAgIH5NZW1vcnlJc05vdERlYWxsb2NhdGVkKCkgewotI2lmZGVmIF9NU0NfVkVSCiAg
ICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgX0NSVERCR19BTExPQ19NRU1fREYgZmxhZwogICAg
IF9DcnRTZXREYmdGbGFnKG9sZF9jcnRkYmdfZmxhZ18pOwotI2VuZGlmICAvLyAgX01TQ19WRVIK
ICAgfQogCiAgcHJpdmF0ZToKQEAgLTMyOCw2ICs0MTEsNyBAQCBjbGFzcyBNZW1vcnlJc05vdERl
YWxsb2NhdGVkCiAKICAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhNZW1vcnlJc05v
dERlYWxsb2NhdGVkKTsKIH07CisjZW5kaWYgIC8vIF9NU0NfVkVSCiAKIH0gIC8vIG5hbWVzcGFj
ZQogCkBAIC0zNDMsNyArNDI3LDkgQEAgdm9pZCBNdXRleDo6VGhyZWFkU2FmZUxhenlJbml0KCkg
ewogICAgICAgICBvd25lcl90aHJlYWRfaWRfID0gMDsKICAgICAgICAgewogICAgICAgICAgIC8v
IFVzZSBSQUlJIHRvIGZsYWcgdGhhdCBmb2xsb3dpbmcgbWVtIGFsbG9jIGlzIG5ldmVyIGRlYWxs
b2NhdGVkLgorI2lmZGVmIF9NU0NfVkVSCiAgICAgICAgICAgTWVtb3J5SXNOb3REZWFsbG9jYXRl
ZCBtZW1vcnlfaXNfbm90X2RlYWxsb2NhdGVkOworI2VuZGlmICAvLyBfTVNDX1ZFUgogICAgICAg
ICAgIGNyaXRpY2FsX3NlY3Rpb25fID0gbmV3IENSSVRJQ0FMX1NFQ1RJT047CiAgICAgICAgIH0K
ICAgICAgICAgOjpJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb25fKTsK
QEAgLTM4NCwxNyArNDcwLDE2IEBAIGNsYXNzIFRocmVhZFdpdGhQYXJhbVN1cHBvcnQgOiBwdWJs
aWMgVGhyZWFkV2l0aFBhcmFtQmFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5v
dGlmaWNhdGlvbiogdGhyZWFkX2Nhbl9zdGFydCkgewogICAgIFRocmVhZE1haW5QYXJhbSogcGFy
YW0gPSBuZXcgVGhyZWFkTWFpblBhcmFtKHJ1bm5hYmxlLCB0aHJlYWRfY2FuX3N0YXJ0KTsKICAg
ICBEV09SRCB0aHJlYWRfaWQ7Ci0gICAgLy8gRklYTUU6IENvbnNpZGVyIHRvIHVzZSBfYmVnaW50
aHJlYWRleCBpbnN0ZWFkLgogICAgIEhBTkRMRSB0aHJlYWRfaGFuZGxlID0gOjpDcmVhdGVUaHJl
YWQoCi0gICAgICAgIE5VTEwsICAgIC8vIERlZmF1bHQgc2VjdXJpdHkuCi0gICAgICAgIDAsICAg
ICAgIC8vIERlZmF1bHQgc3RhY2sgc2l6ZS4KKyAgICAgICAgbnVsbHB0ciwgIC8vIERlZmF1bHQg
c2VjdXJpdHkuCisgICAgICAgIDAsICAgICAgICAvLyBEZWZhdWx0IHN0YWNrIHNpemUuCiAgICAg
ICAgICZUaHJlYWRXaXRoUGFyYW1TdXBwb3J0OjpUaHJlYWRNYWluLAotICAgICAgICBwYXJhbSwg
ICAvLyBQYXJhbWV0ZXIgdG8gVGhyZWFkTWFpblN0YXRpYwotICAgICAgICAweDAsICAgICAvLyBE
ZWZhdWx0IGNyZWF0aW9uIGZsYWdzLgorICAgICAgICBwYXJhbSwgICAgICAgIC8vIFBhcmFtZXRl
ciB0byBUaHJlYWRNYWluU3RhdGljCisgICAgICAgIDB4MCwgICAgICAgICAgLy8gRGVmYXVsdCBj
cmVhdGlvbiBmbGFncy4KICAgICAgICAgJnRocmVhZF9pZCk7ICAvLyBOZWVkIGEgdmFsaWQgcG9p
bnRlciBmb3IgdGhlIGNhbGwgdG8gd29yayB1bmRlciBXaW45OC4KLSAgICBHVEVTVF9DSEVDS18o
dGhyZWFkX2hhbmRsZSAhPSBOVUxMKSA8PCAiQ3JlYXRlVGhyZWFkIGZhaWxlZCB3aXRoIGVycm9y
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA6OkdldExhc3RF
cnJvcigpIDw8ICIuIjsKLSAgICBpZiAodGhyZWFkX2hhbmRsZSA9PSBOVUxMKSB7CisgICAgR1RF
U1RfQ0hFQ0tfKHRocmVhZF9oYW5kbGUgIT0gbnVsbHB0cikKKyAgICAgICAgPDwgIkNyZWF0ZVRo
cmVhZCBmYWlsZWQgd2l0aCBlcnJvciAiIDw8IDo6R2V0TGFzdEVycm9yKCkgPDwgIi4iOworICAg
IGlmICh0aHJlYWRfaGFuZGxlID09IG51bGxwdHIpIHsKICAgICAgIGRlbGV0ZSBwYXJhbTsKICAg
ICB9CiAgICAgcmV0dXJuIHRocmVhZF9oYW5kbGU7CkBAIC00MDYsMTUgKzQ5MSwxNSBAQCBjbGFz
cyBUaHJlYWRXaXRoUGFyYW1TdXBwb3J0IDogcHVibGljIFRocmVhZFdpdGhQYXJhbUJhc2Ugewog
ICAgICAgICA6IHJ1bm5hYmxlXyhydW5uYWJsZSksCiAgICAgICAgICAgdGhyZWFkX2Nhbl9zdGFy
dF8odGhyZWFkX2Nhbl9zdGFydCkgewogICAgIH0KLSAgICBzY29wZWRfcHRyPFJ1bm5hYmxlPiBy
dW5uYWJsZV87CisgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bm5hYmxlPiBydW5uYWJsZV87CiAgICAg
Ly8gRG9lcyBub3Qgb3duLgogICAgIE5vdGlmaWNhdGlvbiogdGhyZWFkX2Nhbl9zdGFydF87CiAg
IH07CiAKICAgc3RhdGljIERXT1JEIFdJTkFQSSBUaHJlYWRNYWluKHZvaWQqIHB0cikgewogICAg
IC8vIFRyYW5zZmVycyBvd25lcnNoaXAuCi0gICAgc2NvcGVkX3B0cjxUaHJlYWRNYWluUGFyYW0+
IHBhcmFtKHN0YXRpY19jYXN0PFRocmVhZE1haW5QYXJhbSo+KHB0cikpOwotICAgIGlmIChwYXJh
bS0+dGhyZWFkX2Nhbl9zdGFydF8gIT0gTlVMTCkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFk
TWFpblBhcmFtPiBwYXJhbShzdGF0aWNfY2FzdDxUaHJlYWRNYWluUGFyYW0qPihwdHIpKTsKKyAg
ICBpZiAocGFyYW0tPnRocmVhZF9jYW5fc3RhcnRfICE9IG51bGxwdHIpCiAgICAgICBwYXJhbS0+
dGhyZWFkX2Nhbl9zdGFydF8tPldhaXRGb3JOb3RpZmljYXRpb24oKTsKICAgICBwYXJhbS0+cnVu
bmFibGVfLT5SdW4oKTsKICAgICByZXR1cm4gMDsKQEAgLTQ1Myw2ICs1MzgsOSBAQCBjbGFzcyBU
aHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbCB7CiAgIC8vIFJldHVybnMgYSB2YWx1ZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0aHJlYWQgZnJvbSBvdGhlciB0aHJlYWRzLgogICBzdGF0
aWMgVGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2UqIEdldFZhbHVlT25DdXJyZW50VGhyZWFkKAog
ICAgICAgY29uc3QgVGhyZWFkTG9jYWxCYXNlKiB0aHJlYWRfbG9jYWxfaW5zdGFuY2UpIHsKKyNp
ZmRlZiBfTVNDX1ZFUgorICAgIE1lbW9yeUlzTm90RGVhbGxvY2F0ZWQgbWVtb3J5X2lzX25vdF9k
ZWFsbG9jYXRlZDsKKyNlbmRpZiAgLy8gX01TQ19WRVIKICAgICBEV09SRCBjdXJyZW50X3RocmVh
ZCA9IDo6R2V0Q3VycmVudFRocmVhZElkKCk7CiAgICAgTXV0ZXhMb2NrIGxvY2soJm11dGV4Xyk7
CiAgICAgVGhyZWFkSWRUb1RocmVhZExvY2FscyogY29uc3QgdGhyZWFkX3RvX3RocmVhZF9sb2Nh
bHMgPQpAQCAtNDcyLDcgKzU2MCw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsK
ICAgICAgICAgICB0aHJlYWRfbG9jYWxfdmFsdWVzCiAgICAgICAgICAgICAgIC5pbnNlcnQoc3Rk
OjptYWtlX3BhaXIoCiAgICAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfaW5zdGFuY2UsCi0g
ICAgICAgICAgICAgICAgICBsaW5rZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPigK
KyAgICAgICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxUaHJlYWRMb2NhbFZhbHVlSG9sZGVy
QmFzZT4oCiAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2luc3RhbmNlLT5OZXdW
YWx1ZUZvckN1cnJlbnRUaHJlYWQoKSkpKQogICAgICAgICAgICAgICAuZmlyc3Q7CiAgICAgfQpA
QCAtNDgxLDcgKzU2OSw3IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBsIHsKIAogICBz
dGF0aWMgdm9pZCBPblRocmVhZExvY2FsRGVzdHJveWVkKAogICAgICAgY29uc3QgVGhyZWFkTG9j
YWxCYXNlKiB0aHJlYWRfbG9jYWxfaW5zdGFuY2UpIHsKLSAgICBzdGQ6OnZlY3RvcjxsaW5rZWRf
cHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPiA+IHZhbHVlX2hvbGRlcnM7CisgICAgc3Rk
Ojp2ZWN0b3I8c3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPiA+IHZh
bHVlX2hvbGRlcnM7CiAgICAgLy8gQ2xlYW4gdXAgdGhlIFRocmVhZExvY2FsVmFsdWVzIGRhdGEg
c3RydWN0dXJlIHdoaWxlIGhvbGRpbmcgdGhlIGxvY2ssIGJ1dAogICAgIC8vIGRlZmVyIHRoZSBk
ZXN0cnVjdGlvbiBvZiB0aGUgVGhyZWFkTG9jYWxWYWx1ZUhvbGRlckJhc2VzLgogICAgIHsKQEAg
LTUwOSw3ICs1OTcsNyBAQCBjbGFzcyBUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbCB7CiAKICAgc3Rh
dGljIHZvaWQgT25UaHJlYWRFeGl0KERXT1JEIHRocmVhZF9pZCkgewogICAgIEdURVNUX0NIRUNL
Xyh0aHJlYWRfaWQgIT0gMCkgPDwgOjpHZXRMYXN0RXJyb3IoKTsKLSAgICBzdGQ6OnZlY3Rvcjxs
aW5rZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPiA+IHZhbHVlX2hvbGRlcnM7Cisg
ICAgc3RkOjp2ZWN0b3I8c3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNl
PiA+IHZhbHVlX2hvbGRlcnM7CiAgICAgLy8gQ2xlYW4gdXAgdGhlIFRocmVhZElkVG9UaHJlYWRM
b2NhbHMgZGF0YSBzdHJ1Y3R1cmUgd2hpbGUgaG9sZGluZyB0aGUKICAgICAvLyBsb2NrLCBidXQg
ZGVmZXIgdGhlIGRlc3RydWN0aW9uIG9mIHRoZSBUaHJlYWRMb2NhbFZhbHVlSG9sZGVyQmFzZXMu
CiAgICAgewpAQCAtNTM2LDcgKzYyNCw4IEBAIGNsYXNzIFRocmVhZExvY2FsUmVnaXN0cnlJbXBs
IHsKICBwcml2YXRlOgogICAvLyBJbiBhIHBhcnRpY3VsYXIgdGhyZWFkLCBtYXBzIGEgVGhyZWFk
TG9jYWwgb2JqZWN0IHRvIGl0cyB2YWx1ZS4KICAgdHlwZWRlZiBzdGQ6Om1hcDxjb25zdCBUaHJl
YWRMb2NhbEJhc2UqLAotICAgICAgICAgICAgICAgICAgIGxpbmtlZF9wdHI8VGhyZWFkTG9jYWxW
YWx1ZUhvbGRlckJhc2U+ID4gVGhyZWFkTG9jYWxWYWx1ZXM7CisgICAgICAgICAgICAgICAgICAg
c3RkOjpzaGFyZWRfcHRyPFRocmVhZExvY2FsVmFsdWVIb2xkZXJCYXNlPiA+CisgICAgICBUaHJl
YWRMb2NhbFZhbHVlczsKICAgLy8gU3RvcmVzIGFsbCBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzIGhh
dmluZyB2YWx1ZXMgaW4gYSB0aHJlYWQsIGluZGV4ZWQgYnkKICAgLy8gdGhyZWFkJ3MgSUQuCiAg
IHR5cGVkZWYgc3RkOjptYXA8RFdPUkQsIFRocmVhZExvY2FsVmFsdWVzPiBUaHJlYWRJZFRvVGhy
ZWFkTG9jYWxzOwpAQCAtNTUxLDE4ICs2NDAsMTcgQEAgY2xhc3MgVGhyZWFkTG9jYWxSZWdpc3Ry
eUltcGwgewogICAgIEhBTkRMRSB0aHJlYWQgPSA6Ok9wZW5UaHJlYWQoU1lOQ0hST05JWkUgfCBU
SFJFQURfUVVFUllfSU5GT1JNQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZF9pZCk7Ci0g
ICAgR1RFU1RfQ0hFQ0tfKHRocmVhZCAhPSBOVUxMKTsKKyAgICBHVEVTVF9DSEVDS18odGhyZWFk
ICE9IG51bGxwdHIpOwogICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBhIHZhbGlkIHRocmVhZCBJRCBw
b2ludGVyIGludG8gQ3JlYXRlVGhyZWFkIGZvciBpdAogICAgIC8vIHRvIHdvcmsgY29ycmVjdGx5
IHVuZGVyIFdpbjk4LgogICAgIERXT1JEIHdhdGNoZXJfdGhyZWFkX2lkOwogICAgIEhBTkRMRSB3
YXRjaGVyX3RocmVhZCA9IDo6Q3JlYXRlVGhyZWFkKAotICAgICAgICBOVUxMLCAgIC8vIERlZmF1
bHQgc2VjdXJpdHkuCi0gICAgICAgIDAsICAgICAgLy8gRGVmYXVsdCBzdGFjayBzaXplCisgICAg
ICAgIG51bGxwdHIsICAvLyBEZWZhdWx0IHNlY3VyaXR5LgorICAgICAgICAwLCAgICAgICAgLy8g
RGVmYXVsdCBzdGFjayBzaXplCiAgICAgICAgICZUaHJlYWRMb2NhbFJlZ2lzdHJ5SW1wbDo6V2F0
Y2hlclRocmVhZEZ1bmMsCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TFBWT0lEPihuZXcgVGhy
ZWFkSWRBbmRIYW5kbGUodGhyZWFkX2lkLCB0aHJlYWQpKSwKLSAgICAgICAgQ1JFQVRFX1NVU1BF
TkRFRCwKLSAgICAgICAgJndhdGNoZXJfdGhyZWFkX2lkKTsKLSAgICBHVEVTVF9DSEVDS18od2F0
Y2hlcl90aHJlYWQgIT0gTlVMTCk7CisgICAgICAgIENSRUFURV9TVVNQRU5ERUQsICZ3YXRjaGVy
X3RocmVhZF9pZCk7CisgICAgR1RFU1RfQ0hFQ0tfKHdhdGNoZXJfdGhyZWFkICE9IG51bGxwdHIp
OwogICAgIC8vIEdpdmUgdGhlIHdhdGNoZXIgdGhyZWFkIHRoZSBzYW1lIHByaW9yaXR5IGFzIG91
cnMgdG8gYXZvaWQgYmVpbmcKICAgICAvLyBibG9ja2VkIGJ5IGl0LgogICAgIDo6U2V0VGhyZWFk
UHJpb3JpdHkod2F0Y2hlcl90aHJlYWQsCkBAIC01ODcsNyArNjc1LDkgQEAgY2xhc3MgVGhyZWFk
TG9jYWxSZWdpc3RyeUltcGwgewogICAvLyBSZXR1cm5zIG1hcCBvZiB0aHJlYWQgbG9jYWwgaW5z
dGFuY2VzLgogICBzdGF0aWMgVGhyZWFkSWRUb1RocmVhZExvY2FscyogR2V0VGhyZWFkTG9jYWxz
TWFwTG9ja2VkKCkgewogICAgIG11dGV4Xy5Bc3NlcnRIZWxkKCk7CisjaWZkZWYgX01TQ19WRVIK
ICAgICBNZW1vcnlJc05vdERlYWxsb2NhdGVkIG1lbW9yeV9pc19ub3RfZGVhbGxvY2F0ZWQ7Cisj
ZW5kaWYgIC8vIF9NU0NfVkVSCiAgICAgc3RhdGljIFRocmVhZElkVG9UaHJlYWRMb2NhbHMqIG1h
cCA9IG5ldyBUaHJlYWRJZFRvVGhyZWFkTG9jYWxzKCk7CiAgICAgcmV0dXJuIG1hcDsKICAgfQpA
QCAtNjMwLDcgKzcyMCw3IEBAIFJFOjp+UkUoKSB7CiAgIGZyZWUoY29uc3RfY2FzdDxjaGFyKj4o
cGF0dGVybl8pKTsKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiByZWd1bGFyIGV4cHJlc3Npb24g
cmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBp
ZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyB0aGUgZW50aXJlIHN0ci4KIGJvb2wgUkU6
OkZ1bGxNYXRjaChjb25zdCBjaGFyKiBzdHIsIGNvbnN0IFJFJiByZSkgewogICBpZiAoIXJlLmlz
X3ZhbGlkXykgcmV0dXJuIGZhbHNlOwogCkBAIC02MzgsOCArNzI4LDggQEAgYm9vbCBSRTo6RnVs
bE1hdGNoKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgUkUmIHJlKSB7CiAgIHJldHVybiByZWdleGVj
KCZyZS5mdWxsX3JlZ2V4Xywgc3RyLCAxLCAmbWF0Y2gsIDApID09IDA7CiB9CiAKLS8vIFJldHVy
bnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2Yg
c3RyCi0vLyAoaW5jbHVkaW5nIHN0ciBpdHNlbGYpLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBv
bmx5IGlmIHJlZ3VsYXIgZXhwcmVzc2lvbiByZSBtYXRjaGVzIGEgc3Vic3RyaW5nIG9mCisvLyBz
dHIgKGluY2x1ZGluZyBzdHIgaXRzZWxmKS4KIGJvb2wgUkU6OlBhcnRpYWxNYXRjaChjb25zdCBj
aGFyKiBzdHIsIGNvbnN0IFJFJiByZSkgewogICBpZiAoIXJlLmlzX3ZhbGlkXykgcmV0dXJuIGZh
bHNlOwogCkBAIC02NzksMTQgKzc2OSwxNCBAQCB2b2lkIFJFOjpJbml0KGNvbnN0IGNoYXIqIHJl
Z2V4KSB7CiAKICNlbGlmIEdURVNUX1VTRVNfU0lNUExFX1JFCiAKLS8vIFJldHVybnMgdHJ1ZSBp
ZmYgY2ggYXBwZWFycyBhbnl3aGVyZSBpbiBzdHIgKGV4Y2x1ZGluZyB0aGUKKy8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiBjaCBhcHBlYXJzIGFueXdoZXJlIGluIHN0ciAoZXhjbHVkaW5n
IHRoZQogLy8gdGVybWluYXRpbmcgJ1wwJyBjaGFyYWN0ZXIpLgogYm9vbCBJc0luU2V0KGNoYXIg
Y2gsIGNvbnN0IGNoYXIqIHN0cikgewotICByZXR1cm4gY2ggIT0gJ1wwJyAmJiBzdHJjaHIoc3Ry
LCBjaCkgIT0gTlVMTDsKKyAgcmV0dXJuIGNoICE9ICdcMCcgJiYgc3RyY2hyKHN0ciwgY2gpICE9
IG51bGxwdHI7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgY2ggYmVsb25ncyB0byB0aGUgZ2l2
ZW4gY2xhc3NpZmljYXRpb24uICBVbmxpa2UKLS8vIHNpbWlsYXIgZnVuY3Rpb25zIGluIDxjdHlw
ZS5oPiwgdGhlc2UgYXJlbid0IGFmZmVjdGVkIGJ5IHRoZQorLy8gUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIGNoIGJlbG9uZ3MgdG8gdGhlIGdpdmVuIGNsYXNzaWZpY2F0aW9uLgorLy8gVW5s
aWtlIHNpbWlsYXIgZnVuY3Rpb25zIGluIDxjdHlwZS5oPiwgdGhlc2UgYXJlbid0IGFmZmVjdGVk
IGJ5IHRoZQogLy8gY3VycmVudCBsb2NhbGUuCiBib29sIElzQXNjaWlEaWdpdChjaGFyIGNoKSB7
IHJldHVybiAnMCcgPD0gY2ggJiYgY2ggPD0gJzknOyB9CiBib29sIElzQXNjaWlQdW5jdChjaGFy
IGNoKSB7CkBAIC02OTksMTMgKzc4OSwxMyBAQCBib29sIElzQXNjaWlXb3JkQ2hhcihjaGFyIGNo
KSB7CiAgICAgICAoJzAnIDw9IGNoICYmIGNoIDw9ICc5JykgfHwgY2ggPT0gJ18nOwogfQogCi0v
LyBSZXR1cm5zIHRydWUgaWZmICJcXGMiIGlzIGEgc3VwcG9ydGVkIGVzY2FwZSBzZXF1ZW5jZS4K
Ky8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiAiXFxjIiBpcyBhIHN1cHBvcnRlZCBlc2Nh
cGUgc2VxdWVuY2UuCiBib29sIElzVmFsaWRFc2NhcGUoY2hhciBjKSB7CiAgIHJldHVybiAoSXNB
c2NpaVB1bmN0KGMpIHx8IElzSW5TZXQoYywgImREZm5yc1N0dndXIikpOwogfQogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSBnaXZlbiBhdG9tIChzcGVjaWZpZWQgYnkgZXNjYXBlZCBhbmQgcGF0
dGVybikKLS8vIG1hdGNoZXMgY2guICBUaGUgcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiB0aGUgYXRv
bSBpcyBpbnZhbGlkLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZlbiBh
dG9tIChzcGVjaWZpZWQgYnkgZXNjYXBlZCBhbmQKKy8vIHBhdHRlcm4pIG1hdGNoZXMgY2guICBU
aGUgcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiB0aGUgYXRvbSBpcyBpbnZhbGlkLgogYm9vbCBBdG9t
TWF0Y2hlc0NoYXIoYm9vbCBlc2NhcGVkLCBjaGFyIHBhdHRlcm5fY2hhciwgY2hhciBjaCkgewog
ICBpZiAoZXNjYXBlZCkgeyAgLy8gIlxccCIgd2hlcmUgcCBpcyBwYXR0ZXJuX2NoYXIuCiAgICAg
c3dpdGNoIChwYXR0ZXJuX2NoYXIpIHsKQEAgLTczNiwxNyArODI2LDE0IEBAIHN0YXRpYyBzdGQ6
OnN0cmluZyBGb3JtYXRSZWdleFN5bnRheEVycm9yKGNvbnN0IGNoYXIqIHJlZ2V4LCBpbnQgaW5k
ZXgpIHsKIC8vIEdlbmVyYXRlcyBub24tZmF0YWwgZmFpbHVyZXMgYW5kIHJldHVybnMgZmFsc2Ug
aWYgcmVnZXggaXMgaW52YWxpZDsKIC8vIG90aGVyd2lzZSByZXR1cm5zIHRydWUuCiBib29sIFZh
bGlkYXRlUmVnZXgoY29uc3QgY2hhciogcmVnZXgpIHsKLSAgaWYgKHJlZ2V4ID09IE5VTEwpIHsK
LSAgICAvLyBGSVhNRTogZml4IHRoZSBzb3VyY2UgZmlsZSBsb2NhdGlvbiBpbiB0aGUKLSAgICAv
LyBhc3NlcnRpb24gZmFpbHVyZXMgdG8gbWF0Y2ggd2hlcmUgdGhlIHJlZ2V4IGlzIHVzZWQgaW4g
dXNlcgotICAgIC8vIGNvZGUuCisgIGlmIChyZWdleCA9PSBudWxscHRyKSB7CiAgICAgQUREX0ZB
SUxVUkUoKSA8PCAiTlVMTCBpcyBub3QgYSB2YWxpZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9u
LiI7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKICAgYm9vbCBpc192YWxpZCA9IHRydWU7CiAK
LSAgLy8gVHJ1ZSBpZmYgPywgKiwgb3IgKyBjYW4gZm9sbG93IHRoZSBwcmV2aW91cyBhdG9tLgor
ICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmID8sICosIG9yICsgY2FuIGZvbGxvdyB0aGUgcHJldmlv
dXMgYXRvbS4KICAgYm9vbCBwcmV2X3JlcGVhdGFibGUgPSBmYWxzZTsKICAgZm9yIChpbnQgaSA9
IDA7IHJlZ2V4W2ldOyBpKyspIHsKICAgICBpZiAocmVnZXhbaV0gPT0gJ1xcJykgeyAgLy8gQW4g
ZXNjYXBlIHNlcXVlbmNlCkBAIC04MjIsOCArOTA5LDggQEAgYm9vbCBNYXRjaFJlcGV0aXRpb25B
bmRSZWdleEF0SGVhZCgKICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZm
IHJlZ2V4IG1hdGNoZXMgYSBwcmVmaXggb2Ygc3RyLiAgcmVnZXggbXVzdCBiZSBhCi0vLyB2YWxp
ZCBzaW1wbGUgcmVndWxhciBleHByZXNzaW9uIGFuZCBub3Qgc3RhcnQgd2l0aCAiXiIsIG9yIHRo
ZQorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHJlZ2V4IG1hdGNoZXMgYSBwcmVmaXgg
b2Ygc3RyLiByZWdleCBtdXN0CisvLyBiZSBhIHZhbGlkIHNpbXBsZSByZWd1bGFyIGV4cHJlc3Np
b24gYW5kIG5vdCBzdGFydCB3aXRoICJeIiwgb3IgdGhlCiAvLyByZXN1bHQgaXMgdW5kZWZpbmVk
LgogYm9vbCBNYXRjaFJlZ2V4QXRIZWFkKGNvbnN0IGNoYXIqIHJlZ2V4LCBjb25zdCBjaGFyKiBz
dHIpIHsKICAgaWYgKCpyZWdleCA9PSAnXDAnKSAgLy8gQW4gZW1wdHkgcmVnZXggbWF0Y2hlcyBh
IHByZWZpeCBvZiBhbnl0aGluZy4KQEAgLTg1Myw4ICs5NDAsOCBAQCBib29sIE1hdGNoUmVnZXhB
dEhlYWQoY29uc3QgY2hhciogcmVnZXgsIGNvbnN0IGNoYXIqIHN0cikgewogICB9CiB9CiAKLS8v
IFJldHVybnMgdHJ1ZSBpZmYgcmVnZXggbWF0Y2hlcyBhbnkgc3Vic3RyaW5nIG9mIHN0ci4gIHJl
Z2V4IG11c3QgYmUKLS8vIGEgdmFsaWQgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgdGhl
IHJlc3VsdCBpcyB1bmRlZmluZWQuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVn
ZXggbWF0Y2hlcyBhbnkgc3Vic3RyaW5nIG9mIHN0ci4gIHJlZ2V4IG11c3QKKy8vIGJlIGEgdmFs
aWQgc2ltcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQu
CiAvLwogLy8gVGhlIGFsZ29yaXRobSBpcyByZWN1cnNpdmUsIGJ1dCB0aGUgcmVjdXJzaW9uIGRl
cHRoIGRvZXNuJ3QgZXhjZWVkCiAvLyB0aGUgcmVnZXggbGVuZ3RoLCBzbyB3ZSB3b24ndCBuZWVk
IHRvIHdvcnJ5IGFib3V0IHJ1bm5pbmcgb3V0IG9mCkBAIC04NjIsOCArOTQ5LDcgQEAgYm9vbCBN
YXRjaFJlZ2V4QXRIZWFkKGNvbnN0IGNoYXIqIHJlZ2V4LCBjb25zdCBjaGFyKiBzdHIpIHsKIC8v
IGV4cG9uZW50aWFsIHdpdGggcmVzcGVjdCB0byB0aGUgcmVnZXggbGVuZ3RoICsgdGhlIHN0cmlu
ZyBsZW5ndGgsCiAvLyBidXQgdXN1YWxseSBpdCdzIG11c3QgZmFzdGVyIChvZnRlbiBjbG9zZSB0
byBsaW5lYXIpLgogYm9vbCBNYXRjaFJlZ2V4QW55d2hlcmUoY29uc3QgY2hhciogcmVnZXgsIGNv
bnN0IGNoYXIqIHN0cikgewotICBpZiAocmVnZXggPT0gTlVMTCB8fCBzdHIgPT0gTlVMTCkKLSAg
ICByZXR1cm4gZmFsc2U7CisgIGlmIChyZWdleCA9PSBudWxscHRyIHx8IHN0ciA9PSBudWxscHRy
KSByZXR1cm4gZmFsc2U7CiAKICAgaWYgKCpyZWdleCA9PSAnXicpCiAgICAgcmV0dXJuIE1hdGNo
UmVnZXhBdEhlYWQocmVnZXggKyAxLCBzdHIpOwpAQCAtODgzLDIxICs5NjksMjEgQEAgUkU6On5S
RSgpIHsKICAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihmdWxsX3BhdHRlcm5fKSk7CiB9CiAKLS8v
IFJldHVybnMgdHJ1ZSBpZmYgcmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgdGhlIGVudGly
ZSBzdHIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgcmVndWxhciBleHByZXNzaW9u
IHJlIG1hdGNoZXMgdGhlIGVudGlyZSBzdHIuCiBib29sIFJFOjpGdWxsTWF0Y2goY29uc3QgY2hh
ciogc3RyLCBjb25zdCBSRSYgcmUpIHsKICAgcmV0dXJuIHJlLmlzX3ZhbGlkXyAmJiBNYXRjaFJl
Z2V4QW55d2hlcmUocmUuZnVsbF9wYXR0ZXJuXywgc3RyKTsKIH0KIAotLy8gUmV0dXJucyB0cnVl
IGlmZiByZWd1bGFyIGV4cHJlc3Npb24gcmUgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiBzdHIKLS8v
IChpbmNsdWRpbmcgc3RyIGl0c2VsZikuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYg
cmVndWxhciBleHByZXNzaW9uIHJlIG1hdGNoZXMgYSBzdWJzdHJpbmcgb2YKKy8vIHN0ciAoaW5j
bHVkaW5nIHN0ciBpdHNlbGYpLgogYm9vbCBSRTo6UGFydGlhbE1hdGNoKGNvbnN0IGNoYXIqIHN0
ciwgY29uc3QgUkUmIHJlKSB7CiAgIHJldHVybiByZS5pc192YWxpZF8gJiYgTWF0Y2hSZWdleEFu
eXdoZXJlKHJlLnBhdHRlcm5fLCBzdHIpOwogfQogCiAvLyBJbml0aWFsaXplcyBhbiBSRSBmcm9t
IGl0cyBzdHJpbmcgcmVwcmVzZW50YXRpb24uCiB2b2lkIFJFOjpJbml0KGNvbnN0IGNoYXIqIHJl
Z2V4KSB7Ci0gIHBhdHRlcm5fID0gZnVsbF9wYXR0ZXJuXyA9IE5VTEw7Ci0gIGlmIChyZWdleCAh
PSBOVUxMKSB7CisgIHBhdHRlcm5fID0gZnVsbF9wYXR0ZXJuXyA9IG51bGxwdHI7CisgIGlmIChy
ZWdleCAhPSBudWxscHRyKSB7CiAgICAgcGF0dGVybl8gPSBwb3NpeDo6U3RyRHVwKHJlZ2V4KTsK
ICAgfQogCkBAIC05MzUsNyArMTAyMSw3IEBAIGNvbnN0IGNoYXIga1Vua25vd25GaWxlW10gPSAi
dW5rbm93biBmaWxlIjsKIC8vIEZvcm1hdHMgYSBzb3VyY2UgZmlsZSBwYXRoIGFuZCBhIGxpbmUg
bnVtYmVyIGFzIHRoZXkgd291bGQgYXBwZWFyCiAvLyBpbiBhbiBlcnJvciBtZXNzYWdlIGZyb20g
dGhlIGNvbXBpbGVyIHVzZWQgdG8gY29tcGlsZSB0aGlzIGNvZGUuCiBHVEVTVF9BUElfIDo6c3Rk
OjpzdHJpbmcgRm9ybWF0RmlsZUxvY2F0aW9uKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lKSB7
Ci0gIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IE5VTEwgPyBrVW5rbm93bkZp
bGUgOiBmaWxlKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcgZmlsZV9uYW1lKGZpbGUgPT0gbnVsbHB0
ciA/IGtVbmtub3duRmlsZSA6IGZpbGUpOwogCiAgIGlmIChsaW5lIDwgMCkgewogICAgIHJldHVy
biBmaWxlX25hbWUgKyAiOiI7CkBAIC05NTQsNyArMTA0MCw3IEBAIEdURVNUX0FQSV8gOjpzdGQ6
OnN0cmluZyBGb3JtYXRGaWxlTG9jYXRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUpIHsK
IC8vIHRvIHRoZSBmaWxlIGxvY2F0aW9uIGl0IHByb2R1Y2VzLCB1bmxpa2UgRm9ybWF0RmlsZUxv
Y2F0aW9uKCkuCiBHVEVTVF9BUElfIDo6c3RkOjpzdHJpbmcgRm9ybWF0Q29tcGlsZXJJbmRlcGVu
ZGVudEZpbGVMb2NhdGlvbigKICAgICBjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSkgewotICBj
b25zdCBzdGQ6OnN0cmluZyBmaWxlX25hbWUoZmlsZSA9PSBOVUxMID8ga1Vua25vd25GaWxlIDog
ZmlsZSk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGZpbGVfbmFtZShmaWxlID09IG51bGxwdHIgPyBr
VW5rbm93bkZpbGUgOiBmaWxlKTsKIAogICBpZiAobGluZSA8IDApCiAgICAgcmV0dXJuIGZpbGVf
bmFtZTsKQEAgLTEwMjEsMjAgKzExMDcsMjIgQEAgY2xhc3MgQ2FwdHVyZWRTdHJlYW0gewogICAg
IC8vIGNvZGUgYXMgcGFydCBvZiBhIHJlZ3VsYXIgc3RhbmRhbG9uZSBleGVjdXRhYmxlLCB3aGlj
aCBkb2Vzbid0CiAgICAgLy8gcnVuIGluIGEgRGFsdmlrIHByb2Nlc3MgKGUuZy4gd2hlbiBydW5u
aW5nIGl0IHRocm91Z2ggJ2FkYiBzaGVsbCcpLgogICAgIC8vCi0gICAgLy8gVGhlIGxvY2F0aW9u
IC9zZGNhcmQgaXMgZGlyZWN0bHkgYWNjZXNzaWJsZSBmcm9tIG5hdGl2ZSBjb2RlCi0gICAgLy8g
YW5kIGlzIHRoZSBvbmx5IGxvY2F0aW9uICh1bm9mZmljaWFsbHkpIHN1cHBvcnRlZCBieSB0aGUg
QW5kcm9pZAotICAgIC8vIHRlYW0uIEl0J3MgZ2VuZXJhbGx5IGEgc3ltbGluayB0byB0aGUgcmVh
bCBTRCBDYXJkIG1vdW50IHBvaW50Ci0gICAgLy8gd2hpY2ggY2FuIGJlIC9tbnQvc2RjYXJkLCAv
bW50L3NkY2FyZDAsIC9zeXN0ZW0vbWVkaWEvc2RjYXJkLCBvcgotICAgIC8vIG90aGVyIE9FTS1j
dXN0b21pemVkIGxvY2F0aW9ucy4gTmV2ZXIgcmVseSBvbiB0aGVzZSwgYW5kIGFsd2F5cwotICAg
IC8vIHVzZSAvc2RjYXJkLgotICAgIGNoYXIgbmFtZV90ZW1wbGF0ZVtdID0gIi9zZGNhcmQvZ3Rl
c3RfY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7CisgICAgLy8gVGhlIGxvY2F0aW9uIC9kYXRhL2xv
Y2FsL3RtcCBpcyBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gbmF0aXZlIGNvZGUuCisgICAgLy8g
Jy9zZGNhcmQnIGFuZCBvdGhlciB2YXJpYW50cyBjYW5ub3QgYmUgcmVsaWVkIG9uLCBhcyB0aGV5
IGFyZSBub3QKKyAgICAvLyBndWFyYW50ZWVkIHRvIGJlIG1vdW50ZWQsIG9yIG1heSBoYXZlIGEg
ZGVsYXkgaW4gbW91bnRpbmcuCisgICAgY2hhciBuYW1lX3RlbXBsYXRlW10gPSAiL2RhdGEvbG9j
YWwvdG1wL2d0ZXN0X2NhcHR1cmVkX3N0cmVhbS5YWFhYWFgiOwogIyAgZWxzZQogICAgIGNoYXIg
bmFtZV90ZW1wbGF0ZVtdID0gIi90bXAvY2FwdHVyZWRfc3RyZWFtLlhYWFhYWCI7CiAjICBlbmRp
ZiAgLy8gR1RFU1RfT1NfTElOVVhfQU5EUk9JRAogICAgIGNvbnN0IGludCBjYXB0dXJlZF9mZCA9
IG1rc3RlbXAobmFtZV90ZW1wbGF0ZSk7CisgICAgaWYgKGNhcHR1cmVkX2ZkID09IC0xKSB7Cisg
ICAgICBHVEVTVF9MT0dfKFdBUk5JTkcpCisgICAgICAgICAgPDwgIkZhaWxlZCB0byBjcmVhdGUg
dG1wIGZpbGUgIiA8PCBuYW1lX3RlbXBsYXRlCisgICAgICAgICAgPDwgIiBmb3IgdGVzdDsgZG9l
cyB0aGUgdGVzdCBoYXZlIGFjY2VzcyB0byB0aGUgL3RtcCBkaXJlY3Rvcnk/IjsKKyAgICB9CiAg
ICAgZmlsZW5hbWVfID0gbmFtZV90ZW1wbGF0ZTsKICMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1MKLSAgICBmZmx1c2goTlVMTCk7CisgICAgZmZsdXNoKG51bGxwdHIpOwogICAgIGR1cDIoY2Fw
dHVyZWRfZmQsIGZkXyk7CiAgICAgY2xvc2UoY2FwdHVyZWRfZmQpOwogICB9CkBAIC0xMDQ2LDEz
ICsxMTM0LDE3IEBAIGNsYXNzIENhcHR1cmVkU3RyZWFtIHsKICAgc3RkOjpzdHJpbmcgR2V0Q2Fw
dHVyZWRTdHJpbmcoKSB7CiAgICAgaWYgKHVuY2FwdHVyZWRfZmRfICE9IC0xKSB7CiAgICAgICAv
LyBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgc3RyZWFtLgotICAgICAgZmZsdXNoKE5VTEwpOworICAg
ICAgZmZsdXNoKG51bGxwdHIpOwogICAgICAgZHVwMih1bmNhcHR1cmVkX2ZkXywgZmRfKTsKICAg
ICAgIGNsb3NlKHVuY2FwdHVyZWRfZmRfKTsKICAgICAgIHVuY2FwdHVyZWRfZmRfID0gLTE7CiAg
ICAgfQogCiAgICAgRklMRSogY29uc3QgZmlsZSA9IHBvc2l4OjpGT3BlbihmaWxlbmFtZV8uY19z
dHIoKSwgInIiKTsKKyAgICBpZiAoZmlsZSA9PSBudWxscHRyKSB7CisgICAgICBHVEVTVF9MT0df
KEZBVEFMKSA8PCAiRmFpbGVkIHRvIG9wZW4gdG1wIGZpbGUgIiA8PCBmaWxlbmFtZV8KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDw8ICIgZm9yIGNhcHR1cmluZyBzdHJlYW0uIjsKKyAgICB9CiAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgY29udGVudCA9IFJlYWRFbnRpcmVGaWxlKGZpbGUpOwogICAg
IHBvc2l4OjpGQ2xvc2UoZmlsZSk7CiAgICAgcmV0dXJuIGNvbnRlbnQ7CkBAIC0xMDY5LDEzICsx
MTYxLDEzIEBAIGNsYXNzIENhcHR1cmVkU3RyZWFtIHsKIAogR1RFU1RfRElTQUJMRV9NU0NfREVQ
UkVDQVRFRF9QT1BfKCkKIAotc3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZGVy
ciA9IE5VTEw7Ci1zdGF0aWMgQ2FwdHVyZWRTdHJlYW0qIGdfY2FwdHVyZWRfc3Rkb3V0ID0gTlVM
TDsKK3N0YXRpYyBDYXB0dXJlZFN0cmVhbSogZ19jYXB0dXJlZF9zdGRlcnIgPSBudWxscHRyOwor
c3RhdGljIENhcHR1cmVkU3RyZWFtKiBnX2NhcHR1cmVkX3N0ZG91dCA9IG51bGxwdHI7CiAKIC8v
IFN0YXJ0cyBjYXB0dXJpbmcgYW4gb3V0cHV0IHN0cmVhbSAoc3Rkb3V0L3N0ZGVycikuCiBzdGF0
aWMgdm9pZCBDYXB0dXJlU3RyZWFtKGludCBmZCwgY29uc3QgY2hhciogc3RyZWFtX25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENhcHR1cmVkU3RyZWFtKiogc3RyZWFtKSB7Ci0gIGlm
ICgqc3RyZWFtICE9IE5VTEwpIHsKKyAgaWYgKCpzdHJlYW0gIT0gbnVsbHB0cikgewogICAgIEdU
RVNUX0xPR18oRkFUQUwpIDw8ICJPbmx5IG9uZSAiIDw8IHN0cmVhbV9uYW1lCiAgICAgICAgICAg
ICAgICAgICAgICAgPDwgIiBjYXB0dXJlciBjYW4gZXhpc3QgYXQgYSB0aW1lLiI7CiAgIH0KQEAg
LTEwODcsNyArMTE3OSw3IEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRDYXB0dXJlZFN0cmVhbShD
YXB0dXJlZFN0cmVhbSoqIGNhcHR1cmVkX3N0cmVhbSkgewogICBjb25zdCBzdGQ6OnN0cmluZyBj
b250ZW50ID0gKCpjYXB0dXJlZF9zdHJlYW0pLT5HZXRDYXB0dXJlZFN0cmluZygpOwogCiAgIGRl
bGV0ZSAqY2FwdHVyZWRfc3RyZWFtOwotICAqY2FwdHVyZWRfc3RyZWFtID0gTlVMTDsKKyAgKmNh
cHR1cmVkX3N0cmVhbSA9IG51bGxwdHI7CiAKICAgcmV0dXJuIGNvbnRlbnQ7CiB9CkBAIC0xMTQ2
LDEwICsxMjM4LDExIEBAIHN0ZDo6c3RyaW5nIFJlYWRFbnRpcmVGaWxlKEZJTEUqIGZpbGUpIHsK
IH0KIAogI2lmIEdURVNUX0hBU19ERUFUSF9URVNUCi1zdGF0aWMgY29uc3Qgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+KiBnX2luamVjdGVkX3Rlc3RfYXJndnMgPSBOVUxMOyAgLy8gT3duZWQuCitz
dGF0aWMgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KiBnX2luamVjdGVkX3Rlc3RfYXJn
dnMgPQorICAgIG51bGxwdHI7ICAvLyBPd25lZC4KIAogc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+
IEdldEluamVjdGFibGVBcmd2cygpIHsKLSAgaWYgKGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyAhPSBO
VUxMKSB7CisgIGlmIChnX2luamVjdGVkX3Rlc3RfYXJndnMgIT0gbnVsbHB0cikgewogICAgIHJl
dHVybiAqZ19pbmplY3RlZF90ZXN0X2FyZ3ZzOwogICB9CiAgIHJldHVybiBHZXRBcmd2cygpOwpA
QCAtMTE2NSwxNiArMTI1OCw5IEBAIHZvaWQgU2V0SW5qZWN0YWJsZUFyZ3ZzKGNvbnN0IHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiYgbmV3X2FyZ3ZzKSB7CiAgICAgICBuZXcgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+KG5ld19hcmd2cy5iZWdpbigpLCBuZXdfYXJndnMuZW5kKCkpKTsKIH0KIAot
I2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi12b2lkIFNldEluamVjdGFibGVBcmd2cyhjb25z
dCBzdGQ6OnZlY3RvcjwgOjpzdHJpbmc+JiBuZXdfYXJndnMpIHsKLSAgU2V0SW5qZWN0YWJsZUFy
Z3ZzKAotICAgICAgbmV3IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPihuZXdfYXJndnMuYmVnaW4o
KSwgbmV3X2FyZ3ZzLmVuZCgpKSk7Ci19Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfU1RS
SU5HCi0KIHZvaWQgQ2xlYXJJbmplY3RhYmxlQXJndnMoKSB7CiAgIGRlbGV0ZSBnX2luamVjdGVk
X3Rlc3RfYXJndnM7Ci0gIGdfaW5qZWN0ZWRfdGVzdF9hcmd2cyA9IE5VTEw7CisgIGdfaW5qZWN0
ZWRfdGVzdF9hcmd2cyA9IG51bGxwdHI7CiB9CiAjZW5kaWYgIC8vIEdURVNUX0hBU19ERUFUSF9U
RVNUCiAKQEAgLTEyMDUsOSArMTI5MSw5IEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBGbGFnVG9FbnZW
YXIoY29uc3QgY2hhciogZmxhZykgewogLy8gUGFyc2VzICdzdHInIGZvciBhIDMyLWJpdCBzaWdu
ZWQgaW50ZWdlci4gIElmIHN1Y2Nlc3NmdWwsIHdyaXRlcwogLy8gdGhlIHJlc3VsdCB0byAqdmFs
dWUgYW5kIHJldHVybnMgdHJ1ZTsgb3RoZXJ3aXNlIGxlYXZlcyAqdmFsdWUKIC8vIHVuY2hhbmdl
ZCBhbmQgcmV0dXJucyBmYWxzZS4KLWJvb2wgUGFyc2VJbnQzMihjb25zdCBNZXNzYWdlJiBzcmNf
dGV4dCwgY29uc3QgY2hhciogc3RyLCBJbnQzMiogdmFsdWUpIHsKK2Jvb2wgUGFyc2VJbnQzMihj
b25zdCBNZXNzYWdlJiBzcmNfdGV4dCwgY29uc3QgY2hhciogc3RyLCBpbnQzMl90KiB2YWx1ZSkg
ewogICAvLyBQYXJzZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGFzIGEgZGVjaW1hbCBpbnRl
Z2VyLgotICBjaGFyKiBlbmQgPSBOVUxMOworICBjaGFyKiBlbmQgPSBudWxscHRyOwogICBjb25z
dCBsb25nIGxvbmdfdmFsdWUgPSBzdHJ0b2woc3RyLCAmZW5kLCAxMCk7ICAvLyBOT0xJTlQKIAog
ICAvLyBIYXMgc3RydG9sKCkgY29uc3VtZWQgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZz8K
QEAgLTEyMjIsMTMgKzEzMDgsMTMgQEAgYm9vbCBQYXJzZUludDMyKGNvbnN0IE1lc3NhZ2UmIHNy
Y190ZXh0LCBjb25zdCBjaGFyKiBzdHIsIEludDMyKiB2YWx1ZSkgewogICAgIHJldHVybiBmYWxz
ZTsKICAgfQogCi0gIC8vIElzIHRoZSBwYXJzZWQgdmFsdWUgaW4gdGhlIHJhbmdlIG9mIGFuIElu
dDMyPwotICBjb25zdCBJbnQzMiByZXN1bHQgPSBzdGF0aWNfY2FzdDxJbnQzMj4obG9uZ192YWx1
ZSk7CisgIC8vIElzIHRoZSBwYXJzZWQgdmFsdWUgaW4gdGhlIHJhbmdlIG9mIGFuIGludDMyX3Q/
CisgIGNvbnN0IGF1dG8gcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4obG9uZ192YWx1ZSk7
CiAgIGlmIChsb25nX3ZhbHVlID09IExPTkdfTUFYIHx8IGxvbmdfdmFsdWUgPT0gTE9OR19NSU4g
fHwKICAgICAgIC8vIFRoZSBwYXJzZWQgdmFsdWUgb3ZlcmZsb3dzIGFzIGEgbG9uZy4gIChzdHJ0
b2woKSByZXR1cm5zCiAgICAgICAvLyBMT05HX01BWCBvciBMT05HX01JTiB3aGVuIHRoZSBpbnB1
dCBvdmVyZmxvd3MuKQogICAgICAgcmVzdWx0ICE9IGxvbmdfdmFsdWUKLSAgICAgIC8vIFRoZSBw
YXJzZWQgdmFsdWUgb3ZlcmZsb3dzIGFzIGFuIEludDMyLgorICAgICAgLy8gVGhlIHBhcnNlZCB2
YWx1ZSBvdmVyZmxvd3MgYXMgYW4gaW50MzJfdC4KICAgICAgICkgewogICAgIE1lc3NhZ2UgbXNn
OwogICAgIG1zZyA8PCAiV0FSTklORzogIiA8PCBzcmNfdGV4dApAQCAtMTI0NiwzMyArMTMzMiwz
MyBAQCBib29sIFBhcnNlSW50MzIoY29uc3QgTWVzc2FnZSYgc3JjX3RleHQsIGNvbnN0IGNoYXIq
IHN0ciwgSW50MzIqIHZhbHVlKSB7CiAvLyBSZWFkcyBhbmQgcmV0dXJucyB0aGUgQm9vbGVhbiBl
bnZpcm9ubWVudCB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvCiAvLyB0aGUgZ2l2ZW4gZmxhZzsg
aWYgaXQncyBub3Qgc2V0LCByZXR1cm5zIGRlZmF1bHRfdmFsdWUuCiAvLwotLy8gVGhlIHZhbHVl
IGlzIGNvbnNpZGVyZWQgdHJ1ZSBpZmYgaXQncyBub3QgIjAiLgorLy8gVGhlIHZhbHVlIGlzIGNv
bnNpZGVyZWQgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdCdzIG5vdCAiMCIuCiBib29sIEJvb2xGcm9t
R1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgYm9vbCBkZWZhdWx0X3ZhbHVlKSB7CiAjaWYgZGVm
aW5lZChHVEVTVF9HRVRfQk9PTF9GUk9NX0VOVl8pCiAgIHJldHVybiBHVEVTVF9HRVRfQk9PTF9G
Uk9NX0VOVl8oZmxhZywgZGVmYXVsdF92YWx1ZSk7CiAjZWxzZQogICBjb25zdCBzdGQ6OnN0cmlu
ZyBlbnZfdmFyID0gRmxhZ1RvRW52VmFyKGZsYWcpOwogICBjb25zdCBjaGFyKiBjb25zdCBzdHJp
bmdfdmFsdWUgPSBwb3NpeDo6R2V0RW52KGVudl92YXIuY19zdHIoKSk7Ci0gIHJldHVybiBzdHJp
bmdfdmFsdWUgPT0gTlVMTCA/Ci0gICAgICBkZWZhdWx0X3ZhbHVlIDogc3RyY21wKHN0cmluZ192
YWx1ZSwgIjAiKSAhPSAwOworICByZXR1cm4gc3RyaW5nX3ZhbHVlID09IG51bGxwdHIgPyBkZWZh
dWx0X3ZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHN0cmNtcChzdHJp
bmdfdmFsdWUsICIwIikgIT0gMDsKICNlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9HRVRfQk9PTF9G
Uk9NX0VOVl8pCiB9CiAKIC8vIFJlYWRzIGFuZCByZXR1cm5zIGEgMzItYml0IGludGVnZXIgc3Rv
cmVkIGluIHRoZSBlbnZpcm9ubWVudAogLy8gdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byB0aGUg
Z2l2ZW4gZmxhZzsgaWYgaXQgaXNuJ3Qgc2V0IG9yCiAvLyBkb2Vzbid0IHJlcHJlc2VudCBhIHZh
bGlkIDMyLWJpdCBpbnRlZ2VyLCByZXR1cm5zIGRlZmF1bHRfdmFsdWUuCi1JbnQzMiBJbnQzMkZy
b21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBJbnQzMiBkZWZhdWx0X3ZhbHVlKSB7CitpbnQz
Ml90IEludDMyRnJvbUdUZXN0RW52KGNvbnN0IGNoYXIqIGZsYWcsIGludDMyX3QgZGVmYXVsdF92
YWx1ZSkgewogI2lmIGRlZmluZWQoR1RFU1RfR0VUX0lOVDMyX0ZST01fRU5WXykKICAgcmV0dXJu
IEdURVNUX0dFVF9JTlQzMl9GUk9NX0VOVl8oZmxhZywgZGVmYXVsdF92YWx1ZSk7CiAjZWxzZQog
ICBjb25zdCBzdGQ6OnN0cmluZyBlbnZfdmFyID0gRmxhZ1RvRW52VmFyKGZsYWcpOwogICBjb25z
dCBjaGFyKiBjb25zdCBzdHJpbmdfdmFsdWUgPSBwb3NpeDo6R2V0RW52KGVudl92YXIuY19zdHIo
KSk7Ci0gIGlmIChzdHJpbmdfdmFsdWUgPT0gTlVMTCkgeworICBpZiAoc3RyaW5nX3ZhbHVlID09
IG51bGxwdHIpIHsKICAgICAvLyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldC4K
ICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZTsKICAgfQogCi0gIEludDMyIHJlc3VsdCA9IGRlZmF1
bHRfdmFsdWU7CisgIGludDMyX3QgcmVzdWx0ID0gZGVmYXVsdF92YWx1ZTsKICAgaWYgKCFQYXJz
ZUludDMyKE1lc3NhZ2UoKSA8PCAiRW52aXJvbm1lbnQgdmFyaWFibGUgIiA8PCBlbnZfdmFyLAog
ICAgICAgICAgICAgICAgICAgc3RyaW5nX3ZhbHVlLCAmcmVzdWx0KSkgewogICAgIHByaW50Zigi
VGhlIGRlZmF1bHQgdmFsdWUgJXMgaXMgdXNlZC5cbiIsCkBAIC0xMjk2LDcgKzEzODIsNyBAQCBJ
bnQzMiBJbnQzMkZyb21HVGVzdEVudihjb25zdCBjaGFyKiBmbGFnLCBJbnQzMiBkZWZhdWx0X3Zh
bHVlKSB7CiBzdGQ6OnN0cmluZyBPdXRwdXRGbGFnQWxzb0NoZWNrRW52VmFyKCl7CiAgIHN0ZDo6
c3RyaW5nIGRlZmF1bHRfdmFsdWVfZm9yX291dHB1dF9mbGFnID0gIiI7CiAgIGNvbnN0IGNoYXIq
IHhtbF9vdXRwdXRfZmlsZV9lbnYgPSBwb3NpeDo6R2V0RW52KCJYTUxfT1VUUFVUX0ZJTEUiKTsK
LSAgaWYgKE5VTEwgIT0geG1sX291dHB1dF9maWxlX2VudikgeworICBpZiAobnVsbHB0ciAhPSB4
bWxfb3V0cHV0X2ZpbGVfZW52KSB7CiAgICAgZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWcg
PSBzdGQ6OnN0cmluZygieG1sOiIpICsgeG1sX291dHB1dF9maWxlX2VudjsKICAgfQogICByZXR1
cm4gZGVmYXVsdF92YWx1ZV9mb3Jfb3V0cHV0X2ZsYWc7CkBAIC0xMzEwLDcgKzEzOTYsNyBAQCBj
b25zdCBjaGFyKiBTdHJpbmdGcm9tR1Rlc3RFbnYoY29uc3QgY2hhciogZmxhZywgY29uc3QgY2hh
ciogZGVmYXVsdF92YWx1ZSkgewogI2Vsc2UKICAgY29uc3Qgc3RkOjpzdHJpbmcgZW52X3ZhciA9
IEZsYWdUb0VudlZhcihmbGFnKTsKICAgY29uc3QgY2hhciogY29uc3QgdmFsdWUgPSBwb3NpeDo6
R2V0RW52KGVudl92YXIuY19zdHIoKSk7Ci0gIHJldHVybiB2YWx1ZSA9PSBOVUxMID8gZGVmYXVs
dF92YWx1ZSA6IHZhbHVlOworICByZXR1cm4gdmFsdWUgPT0gbnVsbHB0ciA/IGRlZmF1bHRfdmFs
dWUgOiB2YWx1ZTsKICNlbmRpZiAgLy8gZGVmaW5lZChHVEVTVF9HRVRfU1RSSU5HX0ZST01fRU5W
XykKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXBy
aW50ZXJzLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXByaW50ZXJzLmNj
CmluZGV4IGRlNGQyNDVlOWZjODg5N2FmMjEzNzY3OWQ5MTNkNjY1ZmQ4NDM2ZTEuLjFiNjhmY2I1
MDA1NTBmOGQwODQ2YjE1ODQ1NWExMjZiYmM0YmZkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC1wcmludGVycy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QtcHJpbnRlcnMuY2MKQEAgLTQyLDExICs0MiwxNiBAQAogLy8gZGVm
aW5lcyBGb28uCiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC1wcmludGVycy5oIgorCiAjaW5jbHVk
ZSA8c3RkaW8uaD4KKwogI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxjc3RkaW50PgogI2lu
Y2x1ZGUgPGN3Y2hhcj4KICNpbmNsdWRlIDxvc3RyZWFtPiAgLy8gTk9MSU5UCiAjaW5jbHVkZSA8
c3RyaW5nPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorCiAjaW5jbHVkZSAiZ3Rlc3QvaW50ZXJu
YWwvZ3Rlc3QtcG9ydC5oIgogI2luY2x1ZGUgInNyYy9ndGVzdC1pbnRlcm5hbC1pbmwuaCIKIApA
QCAtNTksNiArNjQsNyBAQCB1c2luZyA6OnN0ZDo6b3N0cmVhbTsKIC8vIFByaW50cyBhIHNlZ21l
bnQgb2YgYnl0ZXMgaW4gdGhlIGdpdmVuIG9iamVjdC4KIEdURVNUX0FUVFJJQlVURV9OT19TQU5J
VElaRV9NRU1PUllfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfQUREUkVTU18KK0dURVNU
X0FUVFJJQlVURV9OT19TQU5JVElaRV9IV0FERFJFU1NfCiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FO
SVRJWkVfVEhSRUFEXwogdm9pZCBQcmludEJ5dGVTZWdtZW50SW5PYmplY3RUbyhjb25zdCB1bnNp
Z25lZCBjaGFyKiBvYmpfYnl0ZXMsIHNpemVfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGNvdW50LCBvc3RyZWFtKiBvcykgewpAQCAtODksNyArOTUsNiBA
QCB2b2lkIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1wbChjb25zdCB1bnNpZ25lZCBjaGFyKiBvYmpf
Ynl0ZXMsIHNpemVfdCBjb3VudCwKICAgLy8gSWYgdGhlIG9iamVjdCBzaXplIGlzIGJpZ2dlciB0
aGFuIGtUaHJlc2hvbGQsIHdlJ2xsIGhhdmUgdG8gb21pdAogICAvLyBzb21lIGRldGFpbHMgYnkg
cHJpbnRpbmcgb25seSB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0IGtDaHVua1NpemUKICAgLy8gYnl0
ZXMuCi0gIC8vIEZJWE1FOiBsZXQgdGhlIHVzZXIgY29udHJvbCB0aGUgdGhyZXNob2xkIHVzaW5n
IGEgZmxhZy4KICAgaWYgKGNvdW50IDwga1RocmVzaG9sZCkgewogICAgIFByaW50Qnl0ZVNlZ21l
bnRJbk9iamVjdFRvKG9ial9ieXRlcywgMCwgY291bnQsIG9zKTsKICAgfSBlbHNlIHsKQEAgLTEw
Miw5ICsxMDcsMTkgQEAgdm9pZCBQcmludEJ5dGVzSW5PYmplY3RUb0ltcGwoY29uc3QgdW5zaWdu
ZWQgY2hhciogb2JqX2J5dGVzLCBzaXplX3QgY291bnQsCiAgICpvcyA8PCAiPiI7CiB9CiAKKy8v
IEhlbHBlcnMgZm9yIHdpZGVuaW5nIGEgY2hhcmFjdGVyIHRvIGNoYXIzMl90LiBTaW5jZSB0aGUg
c3RhbmRhcmQgZG9lcyBub3QKKy8vIHNwZWNpZnkgaWYgY2hhciAvIHdjaGFyX3QgaXMgc2lnbmVk
IG9yIHVuc2lnbmVkLCBpdCBpcyBpbXBvcnRhbnQgdG8gZmlyc3QKKy8vIGNvbnZlcnQgaXQgdG8g
dGhlIHVuc2lnbmVkIHR5cGUgb2YgdGhlIHNhbWUgd2lkdGggYmVmb3JlIHdpZGVuaW5nIGl0IHRv
CisvLyBjaGFyMzJfdC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KK2NoYXIzMl90IFRv
Q2hhcjMyKENoYXJUeXBlIGluKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyMzJfdD4oCisg
ICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBzdGQ6Om1ha2VfdW5zaWduZWQ8Q2hhclR5cGU+Ojp0
eXBlPihpbikpOworfQorCiB9ICAvLyBuYW1lc3BhY2UKIAotbmFtZXNwYWNlIGludGVybmFsMiB7
CituYW1lc3BhY2UgaW50ZXJuYWwgewogCiAvLyBEZWxlZ2F0ZXMgdG8gUHJpbnRCeXRlc0luT2Jq
ZWN0VG9JbXBsKCkgdG8gcHJpbnQgdGhlIGJ5dGVzIGluIHRoZQogLy8gZ2l2ZW4gb2JqZWN0LiAg
VGhlIGRlbGVnYXRpb24gc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24sIHdoaWNoCkBAIC0x
MTYsMTAgKzEzMSw2IEBAIHZvaWQgUHJpbnRCeXRlc0luT2JqZWN0VG8oY29uc3QgdW5zaWduZWQg
Y2hhciogb2JqX2J5dGVzLCBzaXplX3QgY291bnQsCiAgIFByaW50Qnl0ZXNJbk9iamVjdFRvSW1w
bChvYmpfYnl0ZXMsIGNvdW50LCBvcyk7CiB9CiAKLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbDIK
LQotbmFtZXNwYWNlIGludGVybmFsIHsKLQogLy8gRGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBh
IGNoYXIgKG9yIHdjaGFyX3QpLCB3ZSBwcmludCBpdCBpbiBvbmUKIC8vIG9mIHRocmVlIGZvcm1h
dHM6CiAvLyAgIC0gYXMgaXMgaWYgaXQncyBhIHByaW50YWJsZSBBU0NJSSAoZS5nLiAnYScsICcy
JywgJyAnKSwKQEAgLTEzNCwxNyArMTQ1LDE1IEBAIGVudW0gQ2hhckZvcm1hdCB7CiAvLyBSZXR1
cm5zIHRydWUgaWYgYyBpcyBhIHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXIuICBXZSB0ZXN0IHRo
ZQogLy8gdmFsdWUgb2YgYyBkaXJlY3RseSBpbnN0ZWFkIG9mIGNhbGxpbmcgaXNwcmludCgpLCB3
aGljaCBpcyBidWdneSBvbgogLy8gV2luZG93cyBNb2JpbGUuCi1pbmxpbmUgYm9vbCBJc1ByaW50
YWJsZUFzY2lpKHdjaGFyX3QgYykgewotICByZXR1cm4gMHgyMCA8PSBjICYmIGMgPD0gMHg3RTsK
LX0KK2lubGluZSBib29sIElzUHJpbnRhYmxlQXNjaWkoY2hhcjMyX3QgYykgeyByZXR1cm4gMHgy
MCA8PSBjICYmIGMgPD0gMHg3RTsgfQogCi0vLyBQcmludHMgYSB3aWRlIG9yIG5hcnJvdyBjaGFy
IGMgYXMgYSBjaGFyYWN0ZXIgbGl0ZXJhbCB3aXRob3V0IHRoZQotLy8gcXVvdGVzLCBlc2NhcGlu
ZyBpdCB3aGVuIG5lY2Vzc2FyeTsgcmV0dXJucyBob3cgYyB3YXMgZm9ybWF0dGVkLgotLy8gVGhl
IHRlbXBsYXRlIGFyZ3VtZW50IFVuc2lnbmVkQ2hhciBpcyB0aGUgdW5zaWduZWQgdmVyc2lvbiBv
ZiBDaGFyLAotLy8gd2hpY2ggaXMgdGhlIHR5cGUgb2YgYy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBV
bnNpZ25lZENoYXIsIHR5cGVuYW1lIENoYXI+CisvLyBQcmludHMgYyAob2YgdHlwZSBjaGFyLCBj
aGFyOF90LCBjaGFyMTZfdCwgY2hhcjMyX3QsIG9yIHdjaGFyX3QpIGFzIGEKKy8vIGNoYXJhY3Rl
ciBsaXRlcmFsIHdpdGhvdXQgdGhlIHF1b3RlcywgZXNjYXBpbmcgaXQgd2hlbiBuZWNlc3Nhcnk7
IHJldHVybnMgaG93CisvLyBjIHdhcyBmb3JtYXR0ZWQuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hh
cj4KIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRvKENoYXIgYywgb3N0cmVh
bSogb3MpIHsKLSAgc3dpdGNoIChzdGF0aWNfY2FzdDx3Y2hhcl90PihjKSkgeworICBjb25zdCBj
aGFyMzJfdCB1X2MgPSBUb0NoYXIzMihjKTsKKyAgc3dpdGNoICh1X2MpIHsKICAgICBjYXNlIEwn
XDAnOgogICAgICAgKm9zIDw8ICJcXDAiOwogICAgICAgYnJlYWs7CkBAIC0xNzYsMTMgKzE4NSwx
MiBAQCBzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzQ2hhckxpdGVyYWxUbyhDaGFyIGMsIG9zdHJl
YW0qIG9zKSB7CiAgICAgICAqb3MgPDwgIlxcdiI7CiAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgotICAgICAgaWYgKElzUHJpbnRhYmxlQXNjaWkoYykpIHsKKyAgICAgIGlmIChJc1ByaW50YWJs
ZUFzY2lpKHVfYykpIHsKICAgICAgICAgKm9zIDw8IHN0YXRpY19jYXN0PGNoYXI+KGMpOwogICAg
ICAgICByZXR1cm4ga0FzSXM7CiAgICAgICB9IGVsc2UgewogICAgICAgICBvc3RyZWFtOjpmbXRm
bGFncyBmbGFncyA9IG9zLT5mbGFncygpOwotICAgICAgICAqb3MgPDwgIlxceCIgPDwgc3RkOjpo
ZXggPDwgc3RkOjp1cHBlcmNhc2UKLSAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4oc3Rh
dGljX2Nhc3Q8VW5zaWduZWRDaGFyPihjKSk7CisgICAgICAgICpvcyA8PCAiXFx4IiA8PCBzdGQ6
OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGF0aWNfY2FzdDxpbnQ+KHVfYyk7CiAgICAgICAg
IG9zLT5mbGFncyhmbGFncyk7CiAgICAgICAgIHJldHVybiBrSGV4RXNjYXBlOwogICAgICAgfQpA
QCAtMTkwLDkgKzE5OCw5IEBAIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNDaGFyTGl0ZXJhbFRv
KENoYXIgYywgb3N0cmVhbSogb3MpIHsKICAgcmV0dXJuIGtTcGVjaWFsRXNjYXBlOwogfQogCi0v
LyBQcmludHMgYSB3Y2hhcl90IGMgYXMgaWYgaXQncyBwYXJ0IG9mIGEgc3RyaW5nIGxpdGVyYWws
IGVzY2FwaW5nIGl0IHdoZW4KKy8vIFByaW50cyBhIGNoYXIzMl90IGMgYXMgaWYgaXQncyBwYXJ0
IG9mIGEgc3RyaW5nIGxpdGVyYWwsIGVzY2FwaW5nIGl0IHdoZW4KIC8vIG5lY2Vzc2FyeTsgcmV0
dXJucyBob3cgYyB3YXMgZm9ybWF0dGVkLgotc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmlu
Z0xpdGVyYWxUbyh3Y2hhcl90IGMsIG9zdHJlYW0qIG9zKSB7CitzdGF0aWMgQ2hhckZvcm1hdCBQ
cmludEFzU3RyaW5nTGl0ZXJhbFRvKGNoYXIzMl90IGMsIG9zdHJlYW0qIG9zKSB7CiAgIHN3aXRj
aCAoYykgewogICAgIGNhc2UgTCdcJyc6CiAgICAgICAqb3MgPDwgIiciOwpAQCAtMjAxLDI2ICsy
MDksNjggQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyh3Y2hhcl90
IGMsIG9zdHJlYW0qIG9zKSB7CiAgICAgICAqb3MgPDwgIlxcXCIiOwogICAgICAgcmV0dXJuIGtT
cGVjaWFsRXNjYXBlOwogICAgIGRlZmF1bHQ6Ci0gICAgICByZXR1cm4gUHJpbnRBc0NoYXJMaXRl
cmFsVG88d2NoYXJfdD4oYywgb3MpOworICAgICAgcmV0dXJuIFByaW50QXNDaGFyTGl0ZXJhbFRv
KGMsIG9zKTsKICAgfQogfQogCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4
KGNoYXIpIHsKKyAgcmV0dXJuICIiOworfQorCitzdGF0aWMgY29uc3QgY2hhciogR2V0Q2hhcldp
ZHRoUHJlZml4KHNpZ25lZCBjaGFyKSB7CisgIHJldHVybiAiIjsKK30KKworc3RhdGljIGNvbnN0
IGNoYXIqIEdldENoYXJXaWR0aFByZWZpeCh1bnNpZ25lZCBjaGFyKSB7CisgIHJldHVybiAiIjsK
K30KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lk
dGhQcmVmaXgoY2hhcjhfdCkgeworICByZXR1cm4gInU4IjsKK30KKyNlbmRpZgorCitzdGF0aWMg
Y29uc3QgY2hhciogR2V0Q2hhcldpZHRoUHJlZml4KGNoYXIxNl90KSB7CisgIHJldHVybiAidSI7
Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBHZXRDaGFyV2lkdGhQcmVmaXgoY2hhcjMyX3QpIHsK
KyAgcmV0dXJuICJVIjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIEdldENoYXJXaWR0aFByZWZp
eCh3Y2hhcl90KSB7CisgIHJldHVybiAiTCI7Cit9CisKIC8vIFByaW50cyBhIGNoYXIgYyBhcyBp
ZiBpdCdzIHBhcnQgb2YgYSBzdHJpbmcgbGl0ZXJhbCwgZXNjYXBpbmcgaXQgd2hlbgogLy8gbmVj
ZXNzYXJ5OyByZXR1cm5zIGhvdyBjIHdhcyBmb3JtYXR0ZWQuCiBzdGF0aWMgQ2hhckZvcm1hdCBQ
cmludEFzU3RyaW5nTGl0ZXJhbFRvKGNoYXIgYywgb3N0cmVhbSogb3MpIHsKLSAgcmV0dXJuIFBy
aW50QXNTdHJpbmdMaXRlcmFsVG8oCi0gICAgICBzdGF0aWNfY2FzdDx3Y2hhcl90PihzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBjaGFyPihjKSksIG9zKTsKKyAgcmV0dXJuIFByaW50QXNTdHJpbmdMaXRl
cmFsVG8oVG9DaGFyMzIoYyksIG9zKTsKK30KKworI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3N0YXRp
YyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8oY2hhcjhfdCBjLCBvc3RyZWFtKiBv
cykgeworICByZXR1cm4gUHJpbnRBc1N0cmluZ0xpdGVyYWxUbyhUb0NoYXIzMihjKSwgb3MpOwor
fQorI2VuZGlmCisKK3N0YXRpYyBDaGFyRm9ybWF0IFByaW50QXNTdHJpbmdMaXRlcmFsVG8oY2hh
cjE2X3QgYywgb3N0cmVhbSogb3MpIHsKKyAgcmV0dXJuIFByaW50QXNTdHJpbmdMaXRlcmFsVG8o
VG9DaGFyMzIoYyksIG9zKTsKIH0KIAotLy8gUHJpbnRzIGEgd2lkZSBvciBuYXJyb3cgY2hhcmFj
dGVyIGMgYW5kIGl0cyBjb2RlLiAgJ1wwJyBpcyBwcmludGVkCi0vLyBhcyAiJ1xcMCciLCBvdGhl
ciB1bnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBhbHNvIHByb3Blcmx5IGVzY2FwZWQKLS8vIHVz
aW5nIHRoZSBzdGFuZGFyZCBDKysgZXNjYXBlIHNlcXVlbmNlLiAgVGhlIHRlbXBsYXRlIGFyZ3Vt
ZW50Ci0vLyBVbnNpZ25lZENoYXIgaXMgdGhlIHVuc2lnbmVkIHZlcnNpb24gb2YgQ2hhciwgd2hp
Y2ggaXMgdGhlIHR5cGUgb2YgYy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBVbnNpZ25lZENoYXIsIHR5
cGVuYW1lIENoYXI+CitzdGF0aWMgQ2hhckZvcm1hdCBQcmludEFzU3RyaW5nTGl0ZXJhbFRvKHdj
aGFyX3QgYywgb3N0cmVhbSogb3MpIHsKKyAgcmV0dXJuIFByaW50QXNTdHJpbmdMaXRlcmFsVG8o
VG9DaGFyMzIoYyksIG9zKTsKK30KKworLy8gUHJpbnRzIGEgY2hhcmFjdGVyIGMgKG9mIHR5cGUg
Y2hhciwgY2hhcjhfdCwgY2hhcjE2X3QsIGNoYXIzMl90LCBvciB3Y2hhcl90KQorLy8gYW5kIGl0
cyBjb2RlLiAnXDAnIGlzIHByaW50ZWQgYXMgIidcXDAnIiwgb3RoZXIgdW5wcmludGFibGUgY2hh
cmFjdGVycyBhcmUKKy8vIGFsc28gcHJvcGVybHkgZXNjYXBlZCB1c2luZyB0aGUgc3RhbmRhcmQg
QysrIGVzY2FwZSBzZXF1ZW5jZS4KK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyPgogdm9pZCBQcmlu
dENoYXJBbmRDb2RlVG8oQ2hhciBjLCBvc3RyZWFtKiBvcykgewogICAvLyBGaXJzdCwgcHJpbnQg
YyBhcyBhIGxpdGVyYWwgaW4gdGhlIG1vc3QgcmVhZGFibGUgZm9ybSB3ZSBjYW4gZmluZC4KLSAg
Km9zIDw8ICgoc2l6ZW9mKGMpID4gMSkgPyAiTCciIDogIiciKTsKLSAgY29uc3QgQ2hhckZvcm1h
dCBmb3JtYXQgPSBQcmludEFzQ2hhckxpdGVyYWxUbzxVbnNpZ25lZENoYXI+KGMsIG9zKTsKKyAg
Km9zIDw8IEdldENoYXJXaWR0aFByZWZpeChjKSA8PCAiJyI7CisgIGNvbnN0IENoYXJGb3JtYXQg
Zm9ybWF0ID0gUHJpbnRBc0NoYXJMaXRlcmFsVG8oYywgb3MpOwogICAqb3MgPDwgIiciOwogCiAg
IC8vIFRvIGFpZCB1c2VyIGRlYnVnZ2luZywgd2UgYWxzbyBwcmludCBjJ3MgY29kZSBpbiBkZWNp
bWFsLCB1bmxlc3MKQEAgLTIzNiwzNiArMjg2LDM3IEBAIHZvaWQgUHJpbnRDaGFyQW5kQ29kZVRv
KENoYXIgYywgb3N0cmVhbSogb3MpIHsKICAgaWYgKGZvcm1hdCA9PSBrSGV4RXNjYXBlIHx8ICgx
IDw9IGMgJiYgYyA8PSA5KSkgewogICAgIC8vIERvIG5vdGhpbmcuCiAgIH0gZWxzZSB7Ci0gICAg
Km9zIDw8ICIsIDB4IiA8PCBTdHJpbmc6OkZvcm1hdEhleEludChzdGF0aWNfY2FzdDxVbnNpZ25l
ZENoYXI+KGMpKTsKKyAgICAqb3MgPDwgIiwgMHgiIDw8IFN0cmluZzo6Rm9ybWF0SGV4SW50KHN0
YXRpY19jYXN0PGludD4oYykpOwogICB9CiAgICpvcyA8PCAiKSI7CiB9CiAKLXZvaWQgUHJpbnRU
byh1bnNpZ25lZCBjaGFyIGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludENoYXJBbmRD
b2RlVG88dW5zaWduZWQgY2hhcj4oYywgb3MpOwotfQotdm9pZCBQcmludFRvKHNpZ25lZCBjaGFy
IGMsIDo6c3RkOjpvc3RyZWFtKiBvcykgewotICBQcmludENoYXJBbmRDb2RlVG88dW5zaWduZWQg
Y2hhcj4oYywgb3MpOwotfQordm9pZCBQcmludFRvKHVuc2lnbmVkIGNoYXIgYywgOjpzdGQ6Om9z
dHJlYW0qIG9zKSB7IFByaW50Q2hhckFuZENvZGVUbyhjLCBvcyk7IH0KK3ZvaWQgUHJpbnRUbyhz
aWduZWQgY2hhciBjLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsgUHJpbnRDaGFyQW5kQ29kZVRvKGMs
IG9zKTsgfQogCiAvLyBQcmludHMgYSB3Y2hhcl90IGFzIGEgc3ltYm9sIGlmIGl0IGlzIHByaW50
YWJsZSBvciBhcyBpdHMgaW50ZXJuYWwKIC8vIGNvZGUgb3RoZXJ3aXNlIGFuZCBhbHNvIGFzIGl0
cyBjb2RlLiAgTCdcMCcgaXMgcHJpbnRlZCBhcyAiTCdcXDAnIi4KLXZvaWQgUHJpbnRUbyh3Y2hh
cl90IHdjLCBvc3RyZWFtKiBvcykgewotICBQcmludENoYXJBbmRDb2RlVG88d2NoYXJfdD4od2Ms
IG9zKTsKK3ZvaWQgUHJpbnRUbyh3Y2hhcl90IHdjLCBvc3RyZWFtKiBvcykgeyBQcmludENoYXJB
bmRDb2RlVG8od2MsIG9zKTsgfQorCisvLyBUT0RPKGRjaGVuZyk6IENvbnNpZGVyIG1ha2luZyB0
aGlzIGRlbGVnYXRlIHRvIFByaW50Q2hhckFuZENvZGVUbygpIGFzIHdlbGwuCit2b2lkIFByaW50
VG8oY2hhcjMyX3QgYywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICpvcyA8PCBzdGQ6OmhleCA8
PCAiVSsiIDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpIDw8IHN0ZDo6c2V0
dyg0KQorICAgICAgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGMpOwogfQogCiAvLyBQcmludHMg
dGhlIGdpdmVuIGFycmF5IG9mIGNoYXJhY3RlcnMgdG8gdGhlIG9zdHJlYW0uICBDaGFyVHlwZSBt
dXN0IGJlIGVpdGhlcgotLy8gY2hhciBvciB3Y2hhcl90LgorLy8gY2hhciwgY2hhcjhfdCwgY2hh
cjE2X3QsIGNoYXIzMl90LCBvciB3Y2hhcl90LgogLy8gVGhlIGFycmF5IHN0YXJ0cyBhdCBiZWdp
biwgdGhlIGxlbmd0aCBpcyBsZW4sIGl0IG1heSBpbmNsdWRlICdcMCcgY2hhcmFjdGVycwogLy8g
YW5kIG1heSBub3QgYmUgTlVMLXRlcm1pbmF0ZWQuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5
cGU+CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfTUVNT1JZXwogR1RFU1RfQVRUUklCVVRF
X05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfSFdBRERS
RVNTXwogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RIUkVBRF8KIHN0YXRpYyBDaGFyRm9y
bWF0IFByaW50Q2hhcnNBc1N0cmluZ1RvKAogICAgIGNvbnN0IENoYXJUeXBlKiBiZWdpbiwgc2l6
ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKLSAgY29uc3QgY2hhciogY29uc3Qga1F1b3RlQmVnaW4g
PSBzaXplb2YoQ2hhclR5cGUpID09IDEgPyAiXCIiIDogIkxcIiI7Ci0gICpvcyA8PCBrUXVvdGVC
ZWdpbjsKKyAgY29uc3QgY2hhciogY29uc3QgcXVvdGVfcHJlZml4ID0gR2V0Q2hhcldpZHRoUHJl
Zml4KCpiZWdpbik7CisgICpvcyA8PCBxdW90ZV9wcmVmaXggPDwgIlwiIjsKICAgYm9vbCBpc19w
cmV2aW91c19oZXggPSBmYWxzZTsKICAgQ2hhckZvcm1hdCBwcmludF9mb3JtYXQgPSBrQXNJczsK
ICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGxlbjsgKytpbmRleCkgewpAQCAtMjc0
LDcgKzMyNSw3IEBAIHN0YXRpYyBDaGFyRm9ybWF0IFByaW50Q2hhcnNBc1N0cmluZ1RvKAogICAg
ICAgLy8gUHJldmlvdXMgY2hhcmFjdGVyIGlzIG9mICdceC4uJyBmb3JtIGFuZCB0aGlzIGNoYXJh
Y3RlciBjYW4gYmUKICAgICAgIC8vIGludGVycHJldGVkIGFzIGFub3RoZXIgaGV4YWRlY2ltYWwg
ZGlnaXQgaW4gaXRzIG51bWJlci4gQnJlYWsgc3RyaW5nIHRvCiAgICAgICAvLyBkaXNhbWJpZ3Vh
dGUuCi0gICAgICAqb3MgPDwgIlwiICIgPDwga1F1b3RlQmVnaW47CisgICAgICAqb3MgPDwgIlwi
ICIgPDwgcXVvdGVfcHJlZml4IDw8ICJcIiI7CiAgICAgfQogICAgIGlzX3ByZXZpb3VzX2hleCA9
IFByaW50QXNTdHJpbmdMaXRlcmFsVG8oY3VyLCBvcykgPT0ga0hleEVzY2FwZTsKICAgICAvLyBS
ZW1lbWJlciBpZiBhbnkgY2hhcmFjdGVycyByZXF1aXJlZCBoZXggZXNjYXBpbmcuCkBAIC0yOTEs
NiArMzQyLDcgQEAgc3RhdGljIENoYXJGb3JtYXQgUHJpbnRDaGFyc0FzU3RyaW5nVG8oCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+CiBHVEVTVF9BVFRSSUJVVEVfTk9fU0FOSVRJWkVfTUVN
T1JZXwogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX0FERFJFU1NfCitHVEVTVF9BVFRSSUJV
VEVfTk9fU0FOSVRJWkVfSFdBRERSRVNTXwogR1RFU1RfQVRUUklCVVRFX05PX1NBTklUSVpFX1RI
UkVBRF8KIHN0YXRpYyB2b2lkIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KAogICAgIGNvbnN0IENo
YXJUeXBlKiBiZWdpbiwgc2l6ZV90IGxlbiwgb3N0cmVhbSogb3MpIHsKQEAgLTMxOSwyMiArMzcx
LDU3IEBAIHZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25zdCBjaGFyKiBiZWdpbiwgc2l6ZV90
IGxlbiwgb3N0cmVhbSogb3MpIHsKICAgVW5pdmVyc2FsUHJpbnRDaGFyQXJyYXkoYmVnaW4sIGxl
biwgb3MpOwogfQogCisjaWZkZWYgX19jcHBfY2hhcjhfdAorLy8gUHJpbnRzIGEgKGNvbnN0KSBj
aGFyOF90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGluZyBhdCBhZGRyZXNzCisvLyAn
YmVnaW4nLgordm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0IGNoYXI4X3QqIGJlZ2luLCBz
aXplX3QgbGVuLCBvc3RyZWFtKiBvcykgeworICBVbml2ZXJzYWxQcmludENoYXJBcnJheShiZWdp
biwgbGVuLCBvcyk7Cit9CisjZW5kaWYKKworLy8gUHJpbnRzIGEgKGNvbnN0KSBjaGFyMTZfdCBh
cnJheSBvZiAnbGVuJyBlbGVtZW50cywgc3RhcnRpbmcgYXQgYWRkcmVzcworLy8gJ2JlZ2luJy4K
K3ZvaWQgVW5pdmVyc2FsUHJpbnRBcnJheShjb25zdCBjaGFyMTZfdCogYmVnaW4sIHNpemVfdCBs
ZW4sIG9zdHJlYW0qIG9zKSB7CisgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4s
IG9zKTsKK30KKworLy8gUHJpbnRzIGEgKGNvbnN0KSBjaGFyMzJfdCBhcnJheSBvZiAnbGVuJyBl
bGVtZW50cywgc3RhcnRpbmcgYXQgYWRkcmVzcworLy8gJ2JlZ2luJy4KK3ZvaWQgVW5pdmVyc2Fs
UHJpbnRBcnJheShjb25zdCBjaGFyMzJfdCogYmVnaW4sIHNpemVfdCBsZW4sIG9zdHJlYW0qIG9z
KSB7CisgIFVuaXZlcnNhbFByaW50Q2hhckFycmF5KGJlZ2luLCBsZW4sIG9zKTsKK30KKwogLy8g
UHJpbnRzIGEgKGNvbnN0KSB3Y2hhcl90IGFycmF5IG9mICdsZW4nIGVsZW1lbnRzLCBzdGFydGlu
ZyBhdCBhZGRyZXNzCiAvLyAnYmVnaW4nLgogdm9pZCBVbml2ZXJzYWxQcmludEFycmF5KGNvbnN0
IHdjaGFyX3QqIGJlZ2luLCBzaXplX3QgbGVuLCBvc3RyZWFtKiBvcykgewogICBVbml2ZXJzYWxQ
cmludENoYXJBcnJheShiZWdpbiwgbGVuLCBvcyk7CiB9CiAKLS8vIFByaW50cyB0aGUgZ2l2ZW4g
QyBzdHJpbmcgdG8gdGhlIG9zdHJlYW0uCi12b2lkIFByaW50VG8oY29uc3QgY2hhciogcywgb3N0
cmVhbSogb3MpIHsKLSAgaWYgKHMgPT0gTlVMTCkgeworbmFtZXNwYWNlIHsKKworLy8gUHJpbnRz
IGEgbnVsbC10ZXJtaW5hdGVkIEMtc3R5bGUgc3RyaW5nIHRvIHRoZSBvc3RyZWFtLgordGVtcGxh
dGUgPHR5cGVuYW1lIENoYXI+Cit2b2lkIFByaW50Q1N0cmluZ1RvKGNvbnN0IENoYXIqIHMsIG9z
dHJlYW0qIG9zKSB7CisgIGlmIChzID09IG51bGxwdHIpIHsKICAgICAqb3MgPDwgIk5VTEwiOwog
ICB9IGVsc2UgewogICAgICpvcyA8PCBJbXBsaWNpdENhc3RfPGNvbnN0IHZvaWQqPihzKSA8PCAi
IHBvaW50aW5nIHRvICI7Ci0gICAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocywgc3RybGVuKHMpLCBv
cyk7CisgICAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocywgc3RkOjpjaGFyX3RyYWl0czxDaGFyPjo6
bGVuZ3RoKHMpLCBvcyk7CiAgIH0KIH0KIAorfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit2
b2lkIFByaW50VG8oY29uc3QgY2hhciogcywgb3N0cmVhbSogb3MpIHsgUHJpbnRDU3RyaW5nVG8o
cywgb3MpOyB9CisKKyNpZmRlZiBfX2NwcF9jaGFyOF90Cit2b2lkIFByaW50VG8oY29uc3QgY2hh
cjhfdCogcywgb3N0cmVhbSogb3MpIHsgUHJpbnRDU3RyaW5nVG8ocywgb3MpOyB9CisjZW5kaWYK
Kwordm9pZCBQcmludFRvKGNvbnN0IGNoYXIxNl90KiBzLCBvc3RyZWFtKiBvcykgeyBQcmludENT
dHJpbmdUbyhzLCBvcyk7IH0KKwordm9pZCBQcmludFRvKGNvbnN0IGNoYXIzMl90KiBzLCBvc3Ry
ZWFtKiBvcykgeyBQcmludENTdHJpbmdUbyhzLCBvcyk7IH0KKwogLy8gTVNWQyBjb21waWxlciBj
YW4gYmUgY29uZmlndXJlZCB0byBkZWZpbmUgd2hhcl90IGFzIGEgdHlwZWRlZgogLy8gb2YgdW5z
aWduZWQgc2hvcnQuIERlZmluaW5nIGFuIG92ZXJsb2FkIGZvciBjb25zdCB3Y2hhcl90KiBpbiB0
aGF0IGNhc2UKIC8vIHdvdWxkIGNhdXNlIHBvaW50ZXJzIHRvIHVuc2lnbmVkIHNob3J0cyBiZSBw
cmludGVkIGFzIHdpZGUgc3RyaW5ncywKQEAgLTM0MywxNCArNDMwLDcgQEAgdm9pZCBQcmludFRv
KGNvbnN0IGNoYXIqIHMsIG9zdHJlYW0qIG9zKSB7CiAvLyB3Y2hhcl90IGlzIGltcGxlbWVudGVk
IGFzIGEgbmF0aXZlIHR5cGUuCiAjaWYgIWRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX05B
VElWRV9XQ0hBUl9UX0RFRklORUQpCiAvLyBQcmludHMgdGhlIGdpdmVuIHdpZGUgQyBzdHJpbmcg
dG8gdGhlIG9zdHJlYW0uCi12b2lkIFByaW50VG8oY29uc3Qgd2NoYXJfdCogcywgb3N0cmVhbSog
b3MpIHsKLSAgaWYgKHMgPT0gTlVMTCkgewotICAgICpvcyA8PCAiTlVMTCI7Ci0gIH0gZWxzZSB7
Ci0gICAgKm9zIDw8IEltcGxpY2l0Q2FzdF88Y29uc3Qgdm9pZCo+KHMpIDw8ICIgcG9pbnRpbmcg
dG8gIjsKLSAgICBQcmludENoYXJzQXNTdHJpbmdUbyhzLCBzdGQ6Ondjc2xlbihzKSwgb3MpOwot
ICB9Ci19Cit2b2lkIFByaW50VG8oY29uc3Qgd2NoYXJfdCogcywgb3N0cmVhbSogb3MpIHsgUHJp
bnRDU3RyaW5nVG8ocywgb3MpOyB9CiAjZW5kaWYgIC8vIHdjaGFyX3QgaXMgbmF0aXZlCiAKIG5h
bWVzcGFjZSB7CkBAIC00MjAsMzEgKzUwMCwyNyBAQCB2b2lkIENvbmRpdGlvbmFsUHJpbnRBc1Rl
eHQoY29uc3QgY2hhciogc3RyLCBzaXplX3QgbGVuZ3RoLCBvc3RyZWFtKiBvcykgewogCiB9ICAv
LyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKLS8vIFByaW50cyBhIDo6c3RyaW5nIG9iamVjdC4KLSNp
ZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotdm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3Ry
aW5nJiBzLCBvc3RyZWFtKiBvcykgewordm9pZCBQcmludFN0cmluZ1RvKGNvbnN0IDo6c3RkOjpz
dHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7CiAgIGlmIChQcmludENoYXJzQXNTdHJpbmdUbyhzLmRh
dGEoKSwgcy5zaXplKCksIG9zKSA9PSBrSGV4RXNjYXBlKSB7CiAgICAgaWYgKEdURVNUX0ZMQUco
cHJpbnRfdXRmOCkpIHsKICAgICAgIENvbmRpdGlvbmFsUHJpbnRBc1RleHQocy5kYXRhKCksIHMu
c2l6ZSgpLCBvcyk7CiAgICAgfQogICB9CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxf
U1RSSU5HCiAKLXZvaWQgUHJpbnRTdHJpbmdUbyhjb25zdCA6OnN0ZDo6c3RyaW5nJiBzLCBvc3Ry
ZWFtKiBvcykgewotICBpZiAoUHJpbnRDaGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgp
LCBvcykgPT0ga0hleEVzY2FwZSkgewotICAgIGlmIChHVEVTVF9GTEFHKHByaW50X3V0ZjgpKSB7
Ci0gICAgICBDb25kaXRpb25hbFByaW50QXNUZXh0KHMuZGF0YSgpLCBzLnNpemUoKSwgb3MpOwot
ICAgIH0KLSAgfQorI2lmZGVmIF9fY3BwX2NoYXI4X3QKK3ZvaWQgUHJpbnRVOFN0cmluZ1RvKGNv
bnN0IDo6c3RkOjp1OHN0cmluZyYgcywgb3N0cmVhbSogb3MpIHsKKyAgUHJpbnRDaGFyc0FzU3Ry
aW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7Cit9CisjZW5kaWYKKwordm9pZCBQcmludFUx
NlN0cmluZ1RvKGNvbnN0IDo6c3RkOjp1MTZzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7CisgIFBy
aW50Q2hhcnNBc1N0cmluZ1RvKHMuZGF0YSgpLCBzLnNpemUoKSwgb3MpOwogfQogCi0vLyBQcmlu
dHMgYSA6OndzdHJpbmcgb2JqZWN0LgotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotdm9p
ZCBQcmludFdpZGVTdHJpbmdUbyhjb25zdCA6OndzdHJpbmcmIHMsIG9zdHJlYW0qIG9zKSB7Cit2
b2lkIFByaW50VTMyU3RyaW5nVG8oY29uc3QgOjpzdGQ6OnUzMnN0cmluZyYgcywgb3N0cmVhbSog
b3MpIHsKICAgUHJpbnRDaGFyc0FzU3RyaW5nVG8ocy5kYXRhKCksIHMuc2l6ZSgpLCBvcyk7CiB9
Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwogCiAjaWYgR1RFU1RfSEFTX1NU
RF9XU1RSSU5HCiB2b2lkIFByaW50V2lkZVN0cmluZ1RvKGNvbnN0IDo6c3RkOjp3c3RyaW5nJiBz
LCBvc3RyZWFtKiBvcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3Jj
L2d0ZXN0LXRlc3QtcGFydC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC10
ZXN0LXBhcnQuY2MKaW5kZXggYzg4ODYwZDkyMzg1NjE5ZWE2NzY0ODg0NTgzOWQxNDU4M2YxMTE0
Ni4uYTkzODY4M2NlZGVkMmYzNDY5N2VmZDgzMDVhNjczNjgwNjRkMDE5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXRlc3QtcGFydC5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdGVzdC1wYXJ0LmNjCkBAIC0zMSw2ICszMSw4
IEBACiAvLyBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yayAoR29v
Z2xlIFRlc3QpCiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC10ZXN0LXBhcnQuaCIKKworI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LXBvcnQuaCIKICNpbmNsdWRlICJzcmMvZ3Rlc3QtaW50
ZXJuYWwtaW5sLmgiCiAKIG5hbWVzcGFjZSB0ZXN0aW5nIHsKQEAgLTQxLDE4ICs0MywyMyBAQCB1
c2luZyBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsOwogLy8gaW4gaXQuCiBzdGQ6OnN0cmluZyBU
ZXN0UGFydFJlc3VsdDo6RXh0cmFjdFN1bW1hcnkoY29uc3QgY2hhciogbWVzc2FnZSkgewogICBj
b25zdCBjaGFyKiBjb25zdCBzdGFja190cmFjZSA9IHN0cnN0cihtZXNzYWdlLCBpbnRlcm5hbDo6
a1N0YWNrVHJhY2VNYXJrZXIpOwotICByZXR1cm4gc3RhY2tfdHJhY2UgPT0gTlVMTCA/IG1lc3Nh
Z2UgOgotICAgICAgc3RkOjpzdHJpbmcobWVzc2FnZSwgc3RhY2tfdHJhY2UpOworICByZXR1cm4g
c3RhY2tfdHJhY2UgPT0gbnVsbHB0ciA/IG1lc3NhZ2UgOiBzdGQ6OnN0cmluZyhtZXNzYWdlLCBz
dGFja190cmFjZSk7CiB9CiAKIC8vIFByaW50cyBhIFRlc3RQYXJ0UmVzdWx0IG9iamVjdC4KIHN0
ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBUZXN0UGFydFJl
c3VsdCYgcmVzdWx0KSB7Ci0gIHJldHVybiBvcwotICAgICAgPDwgcmVzdWx0LmZpbGVfbmFtZSgp
IDw8ICI6IiA8PCByZXN1bHQubGluZV9udW1iZXIoKSA8PCAiOiAiCi0gICAgICA8PCAocmVzdWx0
LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOgotICAgICAg
ICAgIHJlc3VsdC50eXBlKCkgPT0gVGVzdFBhcnRSZXN1bHQ6OmtGYXRhbEZhaWx1cmUgPyAiRmF0
YWwgZmFpbHVyZSIgOgotICAgICAgICAgICJOb24tZmF0YWwgZmFpbHVyZSIpIDw8ICI6XG4iCi0g
ICAgICA8PCByZXN1bHQubWVzc2FnZSgpIDw8IHN0ZDo6ZW5kbDsKKyAgcmV0dXJuIG9zIDw8IGlu
dGVybmFsOjpGb3JtYXRGaWxlTG9jYXRpb24ocmVzdWx0LmZpbGVfbmFtZSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQubGluZV9udW1iZXIoKSkK
KyAgICAgICAgICAgIDw8ICIgIgorICAgICAgICAgICAgPDwgKHJlc3VsdC50eXBlKCkgPT0gVGVz
dFBhcnRSZXN1bHQ6OmtTdWNjZXNzCisgICAgICAgICAgICAgICAgICAgID8gIlN1Y2Nlc3MiCisg
ICAgICAgICAgICAgICAgICAgIDogcmVzdWx0LnR5cGUoKSA9PSBUZXN0UGFydFJlc3VsdDo6a1Nr
aXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiU2tpcHBlZCIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiByZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0UmVzdWx0OjprRmF0YWxGYWls
dXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gIkZhdGFsIGZhaWx1cmUiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIk5vbi1mYXRhbCBmYWlsdXJlIikKKyAg
ICAgICAgICAgIDw8ICI6XG4iCisgICAgICAgICAgICA8PCByZXN1bHQubWVzc2FnZSgpIDw8IHN0
ZDo6ZW5kbDsKIH0KIAogLy8gQXBwZW5kcyBhIFRlc3RQYXJ0UmVzdWx0IHRvIHRoZSBhcnJheS4K
QEAgLTY3LDcgKzc0LDcgQEAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIFRlc3RQYXJ0UmVzdWx0QXJy
YXk6OkdldFRlc3RQYXJ0UmVzdWx0KGludCBpbmRleCkgY29uc3QgewogICAgIGludGVybmFsOjpw
b3NpeDo6QWJvcnQoKTsKICAgfQogCi0gIHJldHVybiBhcnJheV9baW5kZXhdOworICByZXR1cm4g
YXJyYXlfW3N0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpXTsKIH0KIAogLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIFRlc3RQYXJ0UmVzdWx0IG9iamVjdHMgaW4gdGhlIGFycmF5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LXR5cGVkLXRlc3QuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYwppbmRleCAxZGMyYWQz
OGJhYjk4YmMxNDZjMTYxNThhNDdkYTFlMzk0YmYzODVmLi5jMDJjM2RmNjU5OTUyN2FmODc4ZDI4
ZjRhYTIzMTFhNjFhNjVjNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9z
cmMvZ3Rlc3QtdHlwZWQtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMv
Z3Rlc3QtdHlwZWQtdGVzdC5jYwpAQCAtMzUsOCArMzUsNiBAQAogbmFtZXNwYWNlIHRlc3Rpbmcg
ewogbmFtZXNwYWNlIGludGVybmFsIHsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQog
Ly8gU2tpcHMgdG8gdGhlIGZpcnN0IG5vbi1zcGFjZSBjaGFyIGluIHN0ci4gUmV0dXJucyBhbiBl
bXB0eSBzdHJpbmcgaWYgc3RyCiAvLyBjb250YWlucyBvbmx5IHdoaXRlc3BhY2UgY2hhcmFjdGVy
cy4KIHN0YXRpYyBjb25zdCBjaGFyKiBTa2lwU3BhY2VzKGNvbnN0IGNoYXIqIHN0cikgewpAQCAt
NDgsNyArNDYsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogU2tpcFNwYWNlcyhjb25zdCBjaGFyKiBz
dHIpIHsKIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gU3BsaXRJbnRvVGVzdE5hbWVz
KGNvbnN0IGNoYXIqIHNyYykgewogICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gbmFtZV92ZWM7
CiAgIHNyYyA9IFNraXBTcGFjZXMoc3JjKTsKLSAgZm9yICg7IHNyYyAhPSBOVUxMOyBzcmMgPSBT
a2lwQ29tbWEoc3JjKSkgeworICBmb3IgKDsgc3JjICE9IG51bGxwdHI7IHNyYyA9IFNraXBDb21t
YShzcmMpKSB7CiAgICAgbmFtZV92ZWMucHVzaF9iYWNrKFN0cmlwVHJhaWxpbmdTcGFjZXMoR2V0
UHJlZml4VW50aWxDb21tYShzcmMpKSk7CiAgIH0KICAgcmV0dXJuIG5hbWVfdmVjOwpAQCAtNTcs
OCArNTUsMTEgQEAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTcGxpdEludG9UZXN0
TmFtZXMoY29uc3QgY2hhciogc3JjKSB7CiAvLyBWZXJpZmllcyB0aGF0IHJlZ2lzdGVyZWRfdGVz
dHMgbWF0Y2ggdGhlIHRlc3QgbmFtZXMgaW4KIC8vIHJlZ2lzdGVyZWRfdGVzdHNfOyByZXR1cm5z
IHJlZ2lzdGVyZWRfdGVzdHMgaWYgc3VjY2Vzc2Z1bCwgb3IKIC8vIGFib3J0cyB0aGUgcHJvZ3Jh
bSBvdGhlcndpc2UuCi1jb25zdCBjaGFyKiBUeXBlZFRlc3RDYXNlUFN0YXRlOjpWZXJpZnlSZWdp
c3RlcmVkVGVzdE5hbWVzKAotICAgIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBj
aGFyKiByZWdpc3RlcmVkX3Rlc3RzKSB7Citjb25zdCBjaGFyKiBUeXBlZFRlc3RTdWl0ZVBTdGF0
ZTo6VmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKKyAgICBjb25zdCBjaGFyKiB0ZXN0X3N1aXRl
X25hbWUsIGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLAorICAgIGNvbnN0IGNoYXIqIHJlZ2lz
dGVyZWRfdGVzdHMpIHsKKyAgUmVnaXN0ZXJUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSh0ZXN0
X3N1aXRlX25hbWUsIENvZGVMb2NhdGlvbihmaWxlLCBsaW5lKSk7CisKICAgdHlwZWRlZiBSZWdp
c3RlcmVkVGVzdHNNYXA6OmNvbnN0X2l0ZXJhdG9yIFJlZ2lzdGVyZWRUZXN0SXRlcjsKICAgcmVn
aXN0ZXJlZF8gPSB0cnVlOwogCkBAIC03NSwyMSArNzYsMTEgQEAgY29uc3QgY2hhciogVHlwZWRU
ZXN0Q2FzZVBTdGF0ZTo6VmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygKICAgICAgIGNvbnRpbnVl
OwogICAgIH0KIAotICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKLSAgICBmb3IgKFJlZ2lzdGVyZWRU
ZXN0SXRlciBpdCA9IHJlZ2lzdGVyZWRfdGVzdHNfLmJlZ2luKCk7Ci0gICAgICAgICBpdCAhPSBy
ZWdpc3RlcmVkX3Rlc3RzXy5lbmQoKTsKLSAgICAgICAgICsraXQpIHsKLSAgICAgIGlmIChuYW1l
ID09IGl0LT5maXJzdCkgewotICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwot
ICAgICAgfQotICAgIH0KLQotICAgIGlmIChmb3VuZCkgeworICAgIGlmIChyZWdpc3RlcmVkX3Rl
c3RzXy5jb3VudChuYW1lKSAhPSAwKSB7CiAgICAgICB0ZXN0cy5pbnNlcnQobmFtZSk7CiAgICAg
fSBlbHNlIHsKICAgICAgIGVycm9ycyA8PCAiTm8gdGVzdCBuYW1lZCAiIDw8IG5hbWUKLSAgICAg
ICAgICAgICA8PCAiIGNhbiBiZSBmb3VuZCBpbiB0aGlzIHRlc3QgY2FzZS5cbiI7CisgICAgICAg
ICAgICAgPDwgIiBjYW4gYmUgZm91bmQgaW4gdGhpcyB0ZXN0IHN1aXRlLlxuIjsKICAgICB9CiAg
IH0KIApAQCAtMTEyLDcgKzEwMyw1IEBAIGNvbnN0IGNoYXIqIFR5cGVkVGVzdENhc2VQU3RhdGU6
OlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoCiAgIHJldHVybiByZWdpc3RlcmVkX3Rlc3RzOwog
fQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogfSAgLy8gbmFtZXNwYWNl
IGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3Jj
L2d0ZXN0LmNjCmluZGV4IDk2YjA3YzY4YWJiMDVhMmRiZTFiZTA5ZjFjMzUzNWJjZjc5ZDAwMzAu
LjkwODlmNTBkNDkyYzdjOGM4NjVkMzY4NDY5ODQzOWQ1ODA4MjhlNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3NyYy9ndGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC9zcmMvZ3Rlc3QuY2MKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJndGVzdC9n
dGVzdC1zcGkuaCIKIAogI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8bWF0aC5oPgogI2lu
Y2x1ZGUgPHN0ZGFyZy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+
CkBAIC00NCw2ICs0Myw5IEBACiAjaW5jbHVkZSA8d2N0eXBlLmg+CiAKICNpbmNsdWRlIDxhbGdv
cml0aG0+CisjaW5jbHVkZSA8Y2hyb25vPiAgLy8gTk9MSU5UCisjaW5jbHVkZSA8Y21hdGg+Cisj
aW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxpb21hbmlwPgogI2luY2x1ZGUgPGxpbWl0cz4K
ICNpbmNsdWRlIDxsaXN0PgpAQCAtNTQsMTAgKzU2LDYgQEAKIAogI2lmIEdURVNUX09TX0xJTlVY
CiAKLS8vIEZJWE1FOiBVc2UgYXV0b2NvbmYgdG8gZGV0ZWN0IGF2YWlsYWJpbGl0eSBvZgotLy8g
Z2V0dGltZW9mZGF5KCkuCi0jIGRlZmluZSBHVEVTVF9IQVNfR0VUVElNRU9GREFZXyAxCi0KICMg
aW5jbHVkZSA8ZmNudGwuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxsaW1pdHMuaD4gIC8vIE5P
TElOVAogIyBpbmNsdWRlIDxzY2hlZC5oPiAgLy8gTk9MSU5UCkBAIC02OCwxMiArNjYsNyBAQAog
IyBpbmNsdWRlIDx1bmlzdGQuaD4gIC8vIE5PTElOVAogIyBpbmNsdWRlIDxzdHJpbmc+CiAKLSNl
bGlmIEdURVNUX09TX1NZTUJJQU4KLSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEK
LSMgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5PTElOVAotCiAjZWxpZiBHVEVTVF9PU19aT1MK
LSMgZGVmaW5lIEdURVNUX0hBU19HRVRUSU1FT0ZEQVlfIDEKICMgaW5jbHVkZSA8c3lzL3RpbWUu
aD4gIC8vIE5PTElOVAogCiAvLyBPbiB6L09TIHdlIGFkZGl0aW9uYWxseSBuZWVkIHN0cmluZ3Mu
aCBmb3Igc3RyY2FzZWNtcC4KQEAgLTg2LDM0ICs3OSwyNCBAQAogCiAjZWxpZiBHVEVTVF9PU19X
SU5ET1dTICAvLyBXZSBhcmUgb24gV2luZG93cyBwcm9wZXIuCiAKKyMgaW5jbHVkZSA8d2luZG93
cy5oPiAgLy8gTk9MSU5UCisjIHVuZGVmIG1pbgorCisjaWZkZWYgX01TQ19WRVIKKyMgaW5jbHVk
ZSA8Y3J0ZGJnLmg+ICAvLyBOT0xJTlQKKyNlbmRpZgorCiAjIGluY2x1ZGUgPGlvLmg+ICAvLyBO
T0xJTlQKICMgaW5jbHVkZSA8c3lzL3RpbWViLmg+ICAvLyBOT0xJTlQKICMgaW5jbHVkZSA8c3lz
L3R5cGVzLmg+ICAvLyBOT0xJTlQKICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4gIC8vIE5PTElOVAog
CiAjIGlmIEdURVNUX09TX1dJTkRPV1NfTUlOR1cKLS8vIE1pbkdXIGhhcyBnZXR0aW1lb2ZkYXko
KSBidXQgbm90IF9mdGltZTY0KCkuCi0vLyBGSVhNRTogVXNlIGF1dG9jb25mIHRvIGRldGVjdCBh
dmFpbGFiaWxpdHkgb2YKLS8vICAgZ2V0dGltZW9mZGF5KCkuCi0vLyBGSVhNRTogVGhlcmUgYXJl
IG90aGVyIHdheXMgdG8gZ2V0IHRoZSB0aW1lIG9uCi0vLyAgIFdpbmRvd3MsIGxpa2UgR2V0VGlj
a0NvdW50KCkgb3IgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKS4gIE1pbkdXCi0vLyAgIHN1cHBv
cnRzIHRoZXNlLiAgY29uc2lkZXIgdXNpbmcgdGhlbSBpbnN0ZWFkLgotIyAgZGVmaW5lIEdURVNU
X0hBU19HRVRUSU1FT0ZEQVlfIDEKICMgIGluY2x1ZGUgPHN5cy90aW1lLmg+ICAvLyBOT0xJTlQK
ICMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTUlOR1cKIAotLy8gY3BwbGludCB0aGlua3Mg
dGhhdCB0aGUgaGVhZGVyIGlzIGFscmVhZHkgaW5jbHVkZWQsIHNvIHdlIHdhbnQgdG8KLS8vIHNp
bGVuY2UgaXQuCi0jIGluY2x1ZGUgPHdpbmRvd3MuaD4gIC8vIE5PTElOVAotIyB1bmRlZiBtaW4K
LQogI2Vsc2UKIAotLy8gQXNzdW1lIG90aGVyIHBsYXRmb3JtcyBoYXZlIGdldHRpbWVvZmRheSgp
LgotLy8gRklYTUU6IFVzZSBhdXRvY29uZiB0byBkZXRlY3QgYXZhaWxhYmlsaXR5IG9mCi0vLyAg
IGdldHRpbWVvZmRheSgpLgotIyBkZWZpbmUgR1RFU1RfSEFTX0dFVFRJTUVPRkRBWV8gMQotCiAv
LyBjcHBsaW50IHRoaW5rcyB0aGF0IHRoZSBoZWFkZXIgaXMgYWxyZWFkeSBpbmNsdWRlZCwgc28g
d2Ugd2FudCB0bwogLy8gc2lsZW5jZSBpdC4KICMgaW5jbHVkZSA8c3lzL3RpbWUuaD4gIC8vIE5P
TElOVApAQCAtMTYwLDE0ICsxNDMsMTQgQEAgdXNpbmcgaW50ZXJuYWw6OlNodWZmbGU7CiAKIC8v
IENvbnN0YW50cy4KIAotLy8gQSB0ZXN0IHdob3NlIHRlc3QgY2FzZSBuYW1lIG9yIHRlc3QgbmFt
ZSBtYXRjaGVzIHRoaXMgZmlsdGVyIGlzCisvLyBBIHRlc3Qgd2hvc2UgdGVzdCBzdWl0ZSBuYW1l
IG9yIHRlc3QgbmFtZSBtYXRjaGVzIHRoaXMgZmlsdGVyIGlzCiAvLyBkaXNhYmxlZCBhbmQgbm90
IHJ1bi4KIHN0YXRpYyBjb25zdCBjaGFyIGtEaXNhYmxlVGVzdEZpbHRlcltdID0gIkRJU0FCTEVE
Xyo6Ki9ESVNBQkxFRF8qIjsKIAotLy8gQSB0ZXN0IGNhc2Ugd2hvc2UgbmFtZSBtYXRjaGVzIHRo
aXMgZmlsdGVyIGlzIGNvbnNpZGVyZWQgYSBkZWF0aAotLy8gdGVzdCBjYXNlIGFuZCB3aWxsIGJl
IHJ1biBiZWZvcmUgdGVzdCBjYXNlcyB3aG9zZSBuYW1lIGRvZXNuJ3QKKy8vIEEgdGVzdCBzdWl0
ZSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyBmaWx0ZXIgaXMgY29uc2lkZXJlZCBhIGRlYXRoCisv
LyB0ZXN0IHN1aXRlIGFuZCB3aWxsIGJlIHJ1biBiZWZvcmUgdGVzdCBzdWl0ZXMgd2hvc2UgbmFt
ZSBkb2Vzbid0CiAvLyBtYXRjaCB0aGlzIGZpbHRlci4KLXN0YXRpYyBjb25zdCBjaGFyIGtEZWF0
aFRlc3RDYXNlRmlsdGVyW10gPSAiKkRlYXRoVGVzdDoqRGVhdGhUZXN0LyoiOworc3RhdGljIGNv
bnN0IGNoYXIga0RlYXRoVGVzdFN1aXRlRmlsdGVyW10gPSAiKkRlYXRoVGVzdDoqRGVhdGhUZXN0
LyoiOwogCiAvLyBBIHRlc3QgZmlsdGVyIHRoYXQgbWF0Y2hlcyBldmVyeXRoaW5nLgogc3RhdGlj
IGNvbnN0IGNoYXIga1VuaXZlcnNhbEZpbHRlcltdID0gIioiOwpAQCAtMTkwLDIwICsxNzMsMjAg
QEAgbmFtZXNwYWNlIGludGVybmFsIHsKIC8vIHN0YWNrIHRyYWNlLgogY29uc3QgY2hhciBrU3Rh
Y2tUcmFjZU1hcmtlcltdID0gIlxuU3RhY2sgdHJhY2U6XG4iOwogCi0vLyBnX2hlbHBfZmxhZyBp
cyB0cnVlIGlmZiB0aGUgLS1oZWxwIGZsYWcgb3IgYW4gZXF1aXZhbGVudCBmb3JtIGlzCi0vLyBz
cGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy8vIGdfaGVscF9mbGFnIGlzIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIC0taGVscCBmbGFnIG9yIGFuIGVxdWl2YWxlbnQgZm9ybQorLy8gaXMg
c3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBib29sIGdfaGVscF9mbGFnID0gZmFsc2U7
CiAKIC8vIFV0aWx0eSBmdW5jdGlvbiB0byBPcGVuIEZpbGUgZm9yIFdyaXRpbmcKIHN0YXRpYyBG
SUxFKiBPcGVuRmlsZUZvcldyaXRpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9maWxlKSB7
Ci0gIEZJTEUqIGZpbGVvdXQgPSBOVUxMOworICBGSUxFKiBmaWxlb3V0ID0gbnVsbHB0cjsKICAg
RmlsZVBhdGggb3V0cHV0X2ZpbGVfcGF0aChvdXRwdXRfZmlsZSk7CiAgIEZpbGVQYXRoIG91dHB1
dF9kaXIob3V0cHV0X2ZpbGVfcGF0aC5SZW1vdmVGaWxlTmFtZSgpKTsKIAogICBpZiAob3V0cHV0
X2Rpci5DcmVhdGVEaXJlY3Rvcmllc1JlY3Vyc2l2ZWx5KCkpIHsKICAgICBmaWxlb3V0ID0gcG9z
aXg6OkZPcGVuKG91dHB1dF9maWxlLmNfc3RyKCksICJ3Iik7CiAgIH0KLSAgaWYgKGZpbGVvdXQg
PT0gTlVMTCkgeworICBpZiAoZmlsZW91dCA9PSBudWxscHRyKSB7CiAgICAgR1RFU1RfTE9HXyhG
QVRBTCkgPDwgIlVuYWJsZSB0byBvcGVuIGZpbGUgXCIiIDw8IG91dHB1dF9maWxlIDw8ICJcIiI7
CiAgIH0KICAgcmV0dXJuIGZpbGVvdXQ7CkBAIC0yMTYsMjcgKzE5OSw0MSBAQCBzdGF0aWMgRklM
RSogT3BlbkZpbGVGb3JXcml0aW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZmlsZSkgewog
c3RhdGljIGNvbnN0IGNoYXIqIEdldERlZmF1bHRGaWx0ZXIoKSB7CiAgIGNvbnN0IGNoYXIqIGNv
bnN0IHRlc3RicmlkZ2VfdGVzdF9vbmx5ID0KICAgICAgIGludGVybmFsOjpwb3NpeDo6R2V0RW52
KCJURVNUQlJJREdFX1RFU1RfT05MWSIpOwotICBpZiAodGVzdGJyaWRnZV90ZXN0X29ubHkgIT0g
TlVMTCkgeworICBpZiAodGVzdGJyaWRnZV90ZXN0X29ubHkgIT0gbnVsbHB0cikgewogICAgIHJl
dHVybiB0ZXN0YnJpZGdlX3Rlc3Rfb25seTsKICAgfQogICByZXR1cm4ga1VuaXZlcnNhbEZpbHRl
cjsKIH0KIAorLy8gQmF6ZWwgcGFzc2VzIGluIHRoZSBhcmd1bWVudCB0byAnLS10ZXN0X3J1bm5l
cl9mYWlsX2Zhc3QnIHZpYSB0aGUKKy8vIFRFU1RCUklER0VfVEVTVF9SVU5ORVJfRkFJTF9GQVNU
IGVudmlyb25tZW50IHZhcmlhYmxlLgorc3RhdGljIGJvb2wgR2V0RGVmYXVsdEZhaWxGYXN0KCkg
eworICBjb25zdCBjaGFyKiBjb25zdCB0ZXN0YnJpZGdlX3Rlc3RfcnVubmVyX2ZhaWxfZmFzdCA9
CisgICAgICBpbnRlcm5hbDo6cG9zaXg6OkdldEVudigiVEVTVEJSSURHRV9URVNUX1JVTk5FUl9G
QUlMX0ZBU1QiKTsKKyAgaWYgKHRlc3RicmlkZ2VfdGVzdF9ydW5uZXJfZmFpbF9mYXN0ICE9IG51
bGxwdHIpIHsKKyAgICByZXR1cm4gc3RyY21wKHRlc3RicmlkZ2VfdGVzdF9ydW5uZXJfZmFpbF9m
YXN0LCAiMSIpID09IDA7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQorCitHVEVTVF9ERUZJTkVf
Ym9vbF8oCisgICAgZmFpbF9mYXN0LCBpbnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigiZmFpbF9m
YXN0IiwgR2V0RGVmYXVsdEZhaWxGYXN0KCkpLAorICAgICJUcnVlIGlmIGFuZCBvbmx5IGlmIGEg
dGVzdCBmYWlsdXJlIHNob3VsZCBzdG9wIGZ1cnRoZXIgdGVzdCBleGVjdXRpb24uIik7CisKIEdU
RVNUX0RFRklORV9ib29sXygKICAgICBhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cywKICAgICBpbnRl
cm5hbDo6Qm9vbEZyb21HVGVzdEVudigiYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLCBmYWxzZSks
CiAgICAgIlJ1biBkaXNhYmxlZCB0ZXN0cyB0b28sIGluIGFkZGl0aW9uIHRvIHRoZSB0ZXN0cyBu
b3JtYWxseSBiZWluZyBydW4uIik7CiAKIEdURVNUX0RFRklORV9ib29sXygKLSAgICBicmVha19v
bl9mYWlsdXJlLAotICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJicmVha19vbl9mYWls
dXJlIiwgZmFsc2UpLAotICAgICJUcnVlIGlmZiBhIGZhaWxlZCBhc3NlcnRpb24gc2hvdWxkIGJl
IGEgZGVidWdnZXIgYnJlYWstcG9pbnQuIik7CisgICAgYnJlYWtfb25fZmFpbHVyZSwgaW50ZXJu
YWw6OkJvb2xGcm9tR1Rlc3RFbnYoImJyZWFrX29uX2ZhaWx1cmUiLCBmYWxzZSksCisgICAgIlRy
dWUgaWYgYW5kIG9ubHkgaWYgYSBmYWlsZWQgYXNzZXJ0aW9uIHNob3VsZCBiZSBhIGRlYnVnZ2Vy
ICIKKyAgICAiYnJlYWstcG9pbnQuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAgICBjYXRj
aF9leGNlcHRpb25zLAotICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJjYXRjaF9leGNl
cHRpb25zIiwgdHJ1ZSksCi0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHNob3Vs
ZCBjYXRjaCBleGNlcHRpb25zIGFuZCB0cmVhdCB0aGVtIGFzIHRlc3QgZmFpbHVyZXMuIik7CitH
VEVTVF9ERUZJTkVfYm9vbF8oY2F0Y2hfZXhjZXB0aW9ucywKKyAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigiY2F0Y2hfZXhjZXB0aW9ucyIsIHRydWUpLAorICAg
ICAgICAgICAgICAgICAgICJUcnVlIGlmIGFuZCBvbmx5IGlmICIgR1RFU1RfTkFNRV8KKyAgICAg
ICAgICAgICAgICAgICAiIHNob3VsZCBjYXRjaCBleGNlcHRpb25zIGFuZCB0cmVhdCB0aGVtIGFz
IHRlc3QgZmFpbHVyZXMuIik7CiAKIEdURVNUX0RFRklORV9zdHJpbmdfKAogICAgIGNvbG9yLApA
QCAtMjg0LDE2ICsyODEsMTYgQEAgR1RFU1RfREVGSU5FX3N0cmluZ18oCiAgICAgImRpZ2l0cy4i
KTsKIAogR1RFU1RfREVGSU5FX2Jvb2xfKAotICAgIHByaW50X3RpbWUsCi0gICAgaW50ZXJuYWw6
OkJvb2xGcm9tR1Rlc3RFbnYoInByaW50X3RpbWUiLCB0cnVlKSwKLSAgICAiVHJ1ZSBpZmYgIiBH
VEVTVF9OQU1FXwotICAgICIgc2hvdWxkIGRpc3BsYXkgZWxhcHNlZCB0aW1lIGluIHRleHQgb3V0
cHV0LiIpOworICAgIGJyaWVmLCBpbnRlcm5hbDo6Qm9vbEZyb21HVGVzdEVudigiYnJpZWYiLCBm
YWxzZSksCisgICAgIlRydWUgaWYgb25seSB0ZXN0IGZhaWx1cmVzIHNob3VsZCBiZSBkaXNwbGF5
ZWQgaW4gdGV4dCBvdXRwdXQuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAgICBwcmludF91
dGY4LAotICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJwcmludF91dGY4IiwgdHJ1ZSks
Ci0gICAgIlRydWUgaWZmICIgR1RFU1RfTkFNRV8KLSAgICAiIHByaW50cyBVVEY4IGNoYXJhY3Rl
cnMgYXMgdGV4dC4iKTsKK0dURVNUX0RFRklORV9ib29sXyhwcmludF90aW1lLCBpbnRlcm5hbDo6
Qm9vbEZyb21HVGVzdEVudigicHJpbnRfdGltZSIsIHRydWUpLAorICAgICAgICAgICAgICAgICAg
ICJUcnVlIGlmIGFuZCBvbmx5IGlmICIgR1RFU1RfTkFNRV8KKyAgICAgICAgICAgICAgICAgICAi
IHNob3VsZCBkaXNwbGF5IGVsYXBzZWQgdGltZSBpbiB0ZXh0IG91dHB1dC4iKTsKKworR1RFU1Rf
REVGSU5FX2Jvb2xfKHByaW50X3V0ZjgsIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJwcmlu
dF91dGY4IiwgdHJ1ZSksCisgICAgICAgICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYg
IiBHVEVTVF9OQU1FXworICAgICAgICAgICAgICAgICAgICIgcHJpbnRzIFVURjggY2hhcmFjdGVy
cyBhcyB0ZXh0LiIpOwogCiBHVEVTVF9ERUZJTkVfaW50MzJfKAogICAgIHJhbmRvbV9zZWVkLApA
QCAtMzA3LDE2ICszMDQsMTQgQEAgR1RFU1RfREVGSU5FX2ludDMyXygKICAgICAiSG93IG1hbnkg
dGltZXMgdG8gcmVwZWF0IGVhY2ggdGVzdC4gIFNwZWNpZnkgYSBuZWdhdGl2ZSBudW1iZXIgIgog
ICAgICJmb3IgcmVwZWF0aW5nIGZvcmV2ZXIuICBVc2VmdWwgZm9yIHNoYWtpbmcgb3V0IGZsYWt5
IHRlc3RzLiIpOwogCi1HVEVTVF9ERUZJTkVfYm9vbF8oCi0gICAgc2hvd19pbnRlcm5hbF9zdGFj
a19mcmFtZXMsIGZhbHNlLAotICAgICJUcnVlIGlmZiAiIEdURVNUX05BTUVfICIgc2hvdWxkIGlu
Y2x1ZGUgaW50ZXJuYWwgc3RhY2sgZnJhbWVzIHdoZW4gIgotICAgICJwcmludGluZyB0ZXN0IGZh
aWx1cmUgc3RhY2sgdHJhY2VzLiIpOworR1RFU1RfREVGSU5FX2Jvb2xfKHNob3dfaW50ZXJuYWxf
c3RhY2tfZnJhbWVzLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAiVHJ1ZSBpZiBhbmQgb25s
eSBpZiAiIEdURVNUX05BTUVfCisgICAgICAgICAgICAgICAgICAgIiBzaG91bGQgaW5jbHVkZSBp
bnRlcm5hbCBzdGFjayBmcmFtZXMgd2hlbiAiCisgICAgICAgICAgICAgICAgICAgInByaW50aW5n
IHRlc3QgZmFpbHVyZSBzdGFjayB0cmFjZXMuIik7CiAKLUdURVNUX0RFRklORV9ib29sXygKLSAg
ICBzaHVmZmxlLAotICAgIGludGVybmFsOjpCb29sRnJvbUdUZXN0RW52KCJzaHVmZmxlIiwgZmFs
c2UpLAotICAgICJUcnVlIGlmZiAiIEdURVNUX05BTUVfCi0gICAgIiBzaG91bGQgcmFuZG9taXpl
IHRlc3RzJyBvcmRlciBvbiBldmVyeSBydW4uIik7CitHVEVTVF9ERUZJTkVfYm9vbF8oc2h1ZmZs
ZSwgaW50ZXJuYWw6OkJvb2xGcm9tR1Rlc3RFbnYoInNodWZmbGUiLCBmYWxzZSksCisgICAgICAg
ICAgICAgICAgICAgIlRydWUgaWYgYW5kIG9ubHkgaWYgIiBHVEVTVF9OQU1FXworICAgICAgICAg
ICAgICAgICAgICIgc2hvdWxkIHJhbmRvbWl6ZSB0ZXN0cycgb3JkZXIgb24gZXZlcnkgcnVuLiIp
OwogCiBHVEVTVF9ERUZJTkVfaW50MzJfKAogICAgIHN0YWNrX3RyYWNlX2RlcHRoLApAQCAtMzUw
LDEwICszNDUsMTAgQEAgbmFtZXNwYWNlIGludGVybmFsIHsKIC8vIEdlbmVyYXRlcyBhIHJhbmRv
bSBudW1iZXIgZnJvbSBbMCwgcmFuZ2UpLCB1c2luZyBhIExpbmVhcgogLy8gQ29uZ3J1ZW50aWFs
IEdlbmVyYXRvciAoTENHKS4gIENyYXNoZXMgaWYgJ3JhbmdlJyBpcyAwIG9yIGdyZWF0ZXIKIC8v
IHRoYW4ga01heFJhbmdlLgotVUludDMyIFJhbmRvbTo6R2VuZXJhdGUoVUludDMyIHJhbmdlKSB7
Cit1aW50MzJfdCBSYW5kb206OkdlbmVyYXRlKHVpbnQzMl90IHJhbmdlKSB7CiAgIC8vIFRoZXNl
IGNvbnN0YW50cyBhcmUgdGhlIHNhbWUgYXMgYXJlIHVzZWQgaW4gZ2xpYmMncyByYW5kKDMpLgog
ICAvLyBVc2Ugd2lkZXIgdHlwZXMgdGhhbiBuZWNlc3NhcnkgdG8gcHJldmVudCB1bnNpZ25lZCBv
dmVyZmxvdyBkaWFnbm9zdGljcy4KLSAgc3RhdGVfID0gc3RhdGljX2Nhc3Q8VUludDMyPigxMTAz
NTE1MjQ1VUxMKnN0YXRlXyArIDEyMzQ1VSkgJSBrTWF4UmFuZ2U7CisgIHN0YXRlXyA9IHN0YXRp
Y19jYXN0PHVpbnQzMl90PigxMTAzNTE1MjQ1VUxMKnN0YXRlXyArIDEyMzQ1VSkgJSBrTWF4UmFu
Z2U7CiAKICAgR1RFU1RfQ0hFQ0tfKHJhbmdlID4gMCkKICAgICAgIDw8ICJDYW5ub3QgZ2VuZXJh
dGUgYSBudW1iZXIgaW4gdGhlIHJhbmdlIFswLCAwKS4iOwpAQCAtMzY3LDE2ICszNjIsMTYgQEAg
VUludDMyIFJhbmRvbTo6R2VuZXJhdGUoVUludDMyIHJhbmdlKSB7CiAgIHJldHVybiBzdGF0ZV8g
JSByYW5nZTsKIH0KIAotLy8gR1Rlc3RJc0luaXRpYWxpemVkKCkgcmV0dXJucyB0cnVlIGlmZiB0
aGUgdXNlciBoYXMgaW5pdGlhbGl6ZWQKKy8vIEdUZXN0SXNJbml0aWFsaXplZCgpIHJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdXNlciBoYXMgaW5pdGlhbGl6ZWQKIC8vIEdvb2dsZSBU
ZXN0LiAgVXNlZnVsIGZvciBjYXRjaGluZyB0aGUgdXNlciBtaXN0YWtlIG9mIG5vdCBpbml0aWFs
aXppbmcKIC8vIEdvb2dsZSBUZXN0IGJlZm9yZSBjYWxsaW5nIFJVTl9BTExfVEVTVFMoKS4KIHN0
YXRpYyBib29sIEdUZXN0SXNJbml0aWFsaXplZCgpIHsgcmV0dXJuIEdldEFyZ3ZzKCkuc2l6ZSgp
ID4gMDsgfQogCi0vLyBJdGVyYXRlcyBvdmVyIGEgdmVjdG9yIG9mIFRlc3RDYXNlcywga2VlcGlu
ZyBhIHJ1bm5pbmcgc3VtIG9mIHRoZQorLy8gSXRlcmF0ZXMgb3ZlciBhIHZlY3RvciBvZiBUZXN0
U3VpdGVzLCBrZWVwaW5nIGEgcnVubmluZyBzdW0gb2YgdGhlCiAvLyByZXN1bHRzIG9mIGNhbGxp
bmcgYSBnaXZlbiBpbnQtcmV0dXJuaW5nIG1ldGhvZCBvbiBlYWNoLgogLy8gUmV0dXJucyB0aGUg
c3VtLgotc3RhdGljIGludCBTdW1PdmVyVGVzdENhc2VMaXN0KGNvbnN0IHN0ZDo6dmVjdG9yPFRl
c3RDYXNlKj4mIGNhc2VfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
KFRlc3RDYXNlOjoqbWV0aG9kKSgpIGNvbnN0KSB7CitzdGF0aWMgaW50IFN1bU92ZXJUZXN0U3Vp
dGVMaXN0KGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiBjYXNlX2xpc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoVGVzdFN1aXRlOjoqbWV0aG9kKSgpIGNvbnN0
KSB7CiAgIGludCBzdW0gPSAwOwogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhc2VfbGlzdC5z
aXplKCk7IGkrKykgewogICAgIHN1bSArPSAoY2FzZV9saXN0W2ldLT4qbWV0aG9kKSgpOwpAQCAt
Mzg0LDIwICszNzksMjAgQEAgc3RhdGljIGludCBTdW1PdmVyVGVzdENhc2VMaXN0KGNvbnN0IHN0
ZDo6dmVjdG9yPFRlc3RDYXNlKj4mIGNhc2VfbGlzdCwKICAgcmV0dXJuIHN1bTsKIH0KIAotLy8g
UmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBjYXNlIHBhc3NlZC4KLXN0YXRpYyBib29sIFRlc3RD
YXNlUGFzc2VkKGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UpIHsKLSAgcmV0dXJuIHRlc3RfY2Fz
ZS0+c2hvdWxkX3J1bigpICYmIHRlc3RfY2FzZS0+UGFzc2VkKCk7CisvLyBSZXR1cm5zIHRydWUg
aWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgc3VpdGUgcGFzc2VkLgorc3RhdGljIGJvb2wgVGVzdFN1
aXRlUGFzc2VkKGNvbnN0IFRlc3RTdWl0ZSogdGVzdF9zdWl0ZSkgeworICByZXR1cm4gdGVzdF9z
dWl0ZS0+c2hvdWxkX3J1bigpICYmIHRlc3Rfc3VpdGUtPlBhc3NlZCgpOwogfQogCi0vLyBSZXR1
cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGNhc2UgZmFpbGVkLgotc3RhdGljIGJvb2wgVGVzdENhc2VG
YWlsZWQoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewotICByZXR1cm4gdGVzdF9jYXNlLT5z
aG91bGRfcnVuKCkgJiYgdGVzdF9jYXNlLT5GYWlsZWQoKTsKKy8vIFJldHVybnMgdHJ1ZSBpZiBh
bmQgb25seSBpZiB0aGUgdGVzdCBzdWl0ZSBmYWlsZWQuCitzdGF0aWMgYm9vbCBUZXN0U3VpdGVG
YWlsZWQoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7CisgIHJldHVybiB0ZXN0X3N1aXRl
LT5zaG91bGRfcnVuKCkgJiYgdGVzdF9zdWl0ZS0+RmFpbGVkKCk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGVzdF9jYXNlIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSB0ZXN0IHRoYXQgc2hvdWxk
Ci0vLyBydW4uCi1zdGF0aWMgYm9vbCBTaG91bGRSdW5UZXN0Q2FzZShjb25zdCBUZXN0Q2FzZSog
dGVzdF9jYXNlKSB7Ci0gIHJldHVybiB0ZXN0X2Nhc2UtPnNob3VsZF9ydW4oKTsKKy8vIFJldHVy
bnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0ZXN0X3N1aXRlIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSB0
ZXN0IHRoYXQKKy8vIHNob3VsZCBydW4uCitzdGF0aWMgYm9vbCBTaG91bGRSdW5UZXN0U3VpdGUo
Y29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7CisgIHJldHVybiB0ZXN0X3N1aXRlLT5zaG91
bGRfcnVuKCk7CiB9CiAKIC8vIEFzc2VydEhlbHBlciBjb25zdHJ1Y3Rvci4KQEAgLTQyMyw4ICs0
MTgsMTYxIEBAIHZvaWQgQXNzZXJ0SGVscGVyOjpvcGVyYXRvcj0oY29uc3QgTWVzc2FnZSYgbWVz
c2FnZSkgY29uc3QgewogICAgICAgICAgICAgICAgICAgICAgICk7ICAvLyBOT0xJTlQKIH0KIAot
Ly8gTXV0ZXggZm9yIGxpbmtlZCBwb2ludGVycy4KLUdURVNUX0FQSV8gR1RFU1RfREVGSU5FX1NU
QVRJQ19NVVRFWF8oZ19saW5rZWRfcHRyX211dGV4KTsKK25hbWVzcGFjZSB7CisKKy8vIFdoZW4g
VEVTVF9QIGlzIGZvdW5kIHdpdGhvdXQgYSBtYXRjaGluZyBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AKKy8vIHRvIGNyZWF0ZXMgdGVzdCBjYXNlcyBmb3IgaXQsIGEgc3ludGV0aWMgdGVzdCBjYXNl
IGlzCisvLyBpbnNlcnRlZCB0byByZXBvcnQgZXRoZXIgYW4gZXJyb3Igb3IgYSBsb2cgbWVzc2Fn
ZS4KKy8vCisvLyBUaGlzIGNvbmZpZ3VyYXRpb24gYml0IHdpbGwgbGlrZWx5IGJlIHJlbW92ZWQg
YXQgc29tZSBwb2ludC4KK2NvbnN0ZXhwciBib29sIGtFcnJvck9uVW5pbnN0YW50aWF0ZWRQYXJh
bWV0ZXJpemVkVGVzdCA9IHRydWU7Citjb25zdGV4cHIgYm9vbCBrRXJyb3JPblVuaW5zdGFudGlh
dGVkVHlwZVBhcmFtZXRlcml6ZWRUZXN0ID0gdHJ1ZTsKKworLy8gQSB0ZXN0IHRoYXQgZmFpbHMg
YXQgYSBnaXZlbiBmaWxlL2xpbmUgbG9jYXRpb24gd2l0aCBhIGdpdmVuIG1lc3NhZ2UuCitjbGFz
cyBGYWlsdXJlVGVzdCA6IHB1YmxpYyBUZXN0IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IEZhaWx1
cmVUZXN0KGNvbnN0IENvZGVMb2NhdGlvbiYgbG9jLCBzdGQ6OnN0cmluZyBlcnJvcl9tZXNzYWdl
LAorICAgICAgICAgICAgICAgICAgICAgICBib29sIGFzX2Vycm9yKQorICAgICAgOiBsb2NfKGxv
YyksCisgICAgICAgIGVycm9yX21lc3NhZ2VfKHN0ZDo6bW92ZShlcnJvcl9tZXNzYWdlKSksCisg
ICAgICAgIGFzX2Vycm9yXyhhc19lcnJvcikge30KKworICB2b2lkIFRlc3RCb2R5KCkgb3ZlcnJp
ZGUgeworICAgIGlmIChhc19lcnJvcl8pIHsKKyAgICAgIEFzc2VydEhlbHBlcihUZXN0UGFydFJl
c3VsdDo6a05vbkZhdGFsRmFpbHVyZSwgbG9jXy5maWxlLmNfc3RyKCksCisgICAgICAgICAgICAg
ICAgICAgbG9jXy5saW5lLCAiIikgPSBNZXNzYWdlKCkgPDwgZXJyb3JfbWVzc2FnZV87CisgICAg
fSBlbHNlIHsKKyAgICAgIHN0ZDo6Y291dCA8PCBlcnJvcl9tZXNzYWdlXyA8PCBzdGQ6OmVuZGw7
CisgICAgfQorICB9CisKKyBwcml2YXRlOgorICBjb25zdCBDb2RlTG9jYXRpb24gbG9jXzsKKyAg
Y29uc3Qgc3RkOjpzdHJpbmcgZXJyb3JfbWVzc2FnZV87CisgIGNvbnN0IGJvb2wgYXNfZXJyb3Jf
OworfTsKKworCit9ICAvLyBuYW1lc3BhY2UKKworc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiBHZXRJ
Z25vcmVkUGFyYW1ldGVyaXplZFRlc3RTdWl0ZXMoKSB7CisgIHJldHVybiBVbml0VGVzdDo6R2V0
SW5zdGFuY2UoKS0+aW1wbCgpLT5pZ25vcmVkX3BhcmFtZXRlcml6ZWRfdGVzdF9zdWl0ZXMoKTsK
K30KKworLy8gQWRkIGEgZ2l2ZW4gdGVzdF9zdWl0IHRvIHRoZSBsaXN0IG9mIHRoZW0gYWxsb3cg
dG8gZ28gdW4taW5zdGFudGlhdGVkLgorTWFya0FzSWdub3JlZDo6TWFya0FzSWdub3JlZChjb25z
dCBjaGFyKiB0ZXN0X3N1aXRlKSB7CisgIEdldElnbm9yZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRl
cygpLT5pbnNlcnQodGVzdF9zdWl0ZSk7Cit9CisKKy8vIElmIHRoaXMgcGFyYW1ldGVyaXplZCB0
ZXN0IHN1aXRlIGhhcyBubyBpbnN0YW50aWF0aW9ucyAoYW5kIHRoYXQKKy8vIGhhcyBub3QgYmVl
biBtYXJrZWQgYXMgb2theSksIGVtaXQgYSB0ZXN0IGNhc2UgcmVwb3J0aW5nIHRoYXQuCit2b2lk
IEluc2VydFN5bnRoZXRpY1Rlc3RDYXNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lLCBDb2RlTG9j
YXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFzX3Rl
c3RfcCkgeworICBjb25zdCBhdXRvJiBpZ25vcmVkID0gKkdldElnbm9yZWRQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlcygpOworICBpZiAoaWdub3JlZC5maW5kKG5hbWUpICE9IGlnbm9yZWQuZW5kKCkp
IHJldHVybjsKKworICBjb25zdCBjaGFyIGtNaXNzaW5nSW5zdGFudGlhdGlvbltdID0gIC8vCisg
ICAgICAiIGlzIGRlZmluZWQgdmlhIFRFU1RfUCwgYnV0IG5ldmVyIGluc3RhbnRpYXRlZC4gTm9u
ZSBvZiB0aGUgdGVzdCBjYXNlcyAiCisgICAgICAid2lsbCBydW4uIEVpdGhlciBubyBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AgaXMgcHJvdmlkZWQgb3IgdGhlIG9ubHkgIgorICAgICAgIm9uZXMg
cHJvdmlkZWQgZXhwYW5kIHRvIG5vdGhpbmcuIgorICAgICAgIlxuXG4iCisgICAgICAiSWRlYWxs
eSwgVEVTVF9QIGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVkZWQgYXMgcGFy
dCBvZiAiCisgICAgICAiYmluYXJpZXMgdGhhdCBpbnRlbmQgdG8gdXNlIHRoZW0uIChBcyBvcHBv
c2VkIHRvLCBmb3IgZXhhbXBsZSwgYmVpbmcgIgorICAgICAgInBsYWNlZCBpbiBhIGxpYnJhcnkg
dGhhdCBtYXkgYmUgbGlua2VkIGluIHRvIGdldCBvdGhlciB1dGlsaXRpZXMuKSI7CisKKyAgY29u
c3QgY2hhciBrTWlzc2luZ1Rlc3RDYXNlW10gPSAgLy8KKyAgICAgICIgaXMgaW5zdGFudGlhdGVk
IHZpYSBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AsIGJ1dCBubyB0ZXN0cyBhcmUgIgorICAgICAg
ImRlZmluZWQgdmlhIFRFU1RfUCAuIE5vIHRlc3QgY2FzZXMgd2lsbCBydW4uIgorICAgICAgIlxu
XG4iCisgICAgICAiSWRlYWxseSwgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHNob3VsZCBvbmx5
IGV2ZXIgYmUgaW52b2tlZCBmcm9tICIKKyAgICAgICJjb2RlIHRoYXQgYWx3YXlzIGRlcGVuZCBv
biBjb2RlIHRoYXQgcHJvdmlkZXMgVEVTVF9QLiBGYWlsaW5nIHRvIGRvICIKKyAgICAgICJzbyBp
cyBvZnRlbiBhbiBpbmRpY2F0aW9uIG9mIGRlYWQgY29kZSwgZS5nLiB0aGUgbGFzdCBURVNUX1Ag
d2FzICIKKyAgICAgICJyZW1vdmVkIGJ1dCB0aGUgcmVzdCBnb3QgbGVmdCBiZWhpbmQuIjsKKwor
ICBzdGQ6OnN0cmluZyBtZXNzYWdlID0KKyAgICAgICJQYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUg
IiArIG5hbWUgKworICAgICAgKGhhc190ZXN0X3AgPyBrTWlzc2luZ0luc3RhbnRpYXRpb24gOiBr
TWlzc2luZ1Rlc3RDYXNlKSArCisgICAgICAiXG5cbiIKKyAgICAgICJUbyBzdXBwcmVzcyB0aGlz
IGVycm9yIGZvciB0aGlzIHRlc3Qgc3VpdGUsIGluc2VydCB0aGUgZm9sbG93aW5nIGxpbmUgIgor
ICAgICAgIihpbiBhIG5vbi1oZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBp
bjoiCisgICAgICAiXG5cbiIKKyAgICAgICJHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJB
TUVURVJJWkVEX1RFU1QoIiArIG5hbWUgKyAiKTsiOworCisgIHN0ZDo6c3RyaW5nIGZ1bGxfbmFt
ZSA9ICJVbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0U3VpdGU8IiArIG5hbWUgKyAiPiI7
CisgIFJlZ2lzdGVyVGVzdCggIC8vCisgICAgICAiR29vZ2xlVGVzdFZlcmlmaWNhdGlvbiIsIGZ1
bGxfbmFtZS5jX3N0cigpLAorICAgICAgbnVsbHB0ciwgIC8vIE5vIHR5cGUgcGFyYW1ldGVyLgor
ICAgICAgbnVsbHB0ciwgIC8vIE5vIHZhbHVlIHBhcmFtZXRlci4KKyAgICAgIGxvY2F0aW9uLmZp
bGUuY19zdHIoKSwgbG9jYXRpb24ubGluZSwgW21lc3NhZ2UsIGxvY2F0aW9uXSB7CisgICAgICAg
IHJldHVybiBuZXcgRmFpbHVyZVRlc3QobG9jYXRpb24sIG1lc3NhZ2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga0Vycm9yT25Vbmluc3RhbnRpYXRlZFBhcmFtZXRlcml6ZWRUZXN0
KTsKKyAgICAgIH0pOworfQorCit2b2lkIFJlZ2lzdGVyVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3Vp
dGUoY29uc3QgY2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbiBjb2RlX2xvY2F0aW9uKSB7CisgIEdldFVuaXRU
ZXN0SW1wbCgpLT50eXBlX3BhcmFtZXRlcml6ZWRfdGVzdF9yZWdpc3RyeSgpLlJlZ2lzdGVyVGVz
dFN1aXRlKAorICAgICAgdGVzdF9zdWl0ZV9uYW1lLCBjb2RlX2xvY2F0aW9uKTsKK30KKwordm9p
ZCBSZWdpc3RlclR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlSW5zdGFudGlhdGlvbihjb25zdCBj
aGFyKiBjYXNlX25hbWUpIHsKKyAgR2V0VW5pdFRlc3RJbXBsKCkKKyAgICAgIC0+dHlwZV9wYXJh
bWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKQorICAgICAgLlJlZ2lzdGVySW5zdGFudGlhdGlvbihj
YXNlX25hbWUpOworfQorCit2b2lkIFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlUmVnaXN0cnk6
OlJlZ2lzdGVyVGVzdFN1aXRlKAorICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVfbmFtZSwgQ29k
ZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24pIHsKKyAgc3VpdGVzXy5lbXBsYWNlKHN0ZDo6c3RyaW5n
KHRlc3Rfc3VpdGVfbmFtZSksCisgICAgICAgICAgICAgICAgIFR5cGVQYXJhbWV0ZXJpemVkVGVz
dFN1aXRlSW5mbyhjb2RlX2xvY2F0aW9uKSk7Cit9CisKK3ZvaWQgVHlwZVBhcmFtZXRlcml6ZWRU
ZXN0U3VpdGVSZWdpc3RyeTo6UmVnaXN0ZXJJbnN0YW50aWF0aW9uKAorICAgICAgICBjb25zdCBj
aGFyKiB0ZXN0X3N1aXRlX25hbWUpIHsKKyAgYXV0byBpdCA9IHN1aXRlc18uZmluZChzdGQ6OnN0
cmluZyh0ZXN0X3N1aXRlX25hbWUpKTsKKyAgaWYgKGl0ICE9IHN1aXRlc18uZW5kKCkpIHsKKyAg
ICBpdC0+c2Vjb25kLmluc3RhbnRpYXRlZCA9IHRydWU7CisgIH0gZWxzZSB7CisgICAgR1RFU1Rf
TE9HXyhFUlJPUikgPDwgIlVua25vd24gdHlwZSBwYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdCAnIgor
ICAgICAgICAgICAgICAgICAgICAgIDw8IHRlc3Rfc3VpdGVfbmFtZSA8PCAiJyI7CisgIH0KK30K
Kwordm9pZCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5OjpDaGVja0Zvckluc3Rh
bnRpYXRpb25zKCkgeworICBjb25zdCBhdXRvJiBpZ25vcmVkID0gKkdldElnbm9yZWRQYXJhbWV0
ZXJpemVkVGVzdFN1aXRlcygpOworICBmb3IgKGNvbnN0IGF1dG8mIHRlc3RjYXNlIDogc3VpdGVz
XykgeworICAgIGlmICh0ZXN0Y2FzZS5zZWNvbmQuaW5zdGFudGlhdGVkKSBjb250aW51ZTsKKyAg
ICBpZiAoaWdub3JlZC5maW5kKHRlc3RjYXNlLmZpcnN0KSAhPSBpZ25vcmVkLmVuZCgpKSBjb250
aW51ZTsKKworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2UgPQorICAgICAgICAiVHlwZSBwYXJhbWV0
ZXJpemVkIHRlc3Qgc3VpdGUgIiArIHRlc3RjYXNlLmZpcnN0ICsKKyAgICAgICAgIiBpcyBkZWZp
bmVkIHZpYSBSRUdJU1RFUl9UWVBFRF9URVNUX1NVSVRFX1AsIGJ1dCBuZXZlciBpbnN0YW50aWF0
ZWQgIgorICAgICAgICAidmlhIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUC4gTm9uZSBv
ZiB0aGUgdGVzdCBjYXNlcyB3aWxsIHJ1bi4iCisgICAgICAgICJcblxuIgorICAgICAgICAiSWRl
YWxseSwgVFlQRURfVEVTVF9QIGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVk
ZWQgYXMgIgorICAgICAgICAicGFydCBvZiBiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhl
bS4gKEFzIG9wcG9zZWQgdG8sIGZvciAiCisgICAgICAgICJleGFtcGxlLCBiZWluZyBwbGFjZWQg
aW4gYSBsaWJyYXJ5IHRoYXQgbWF5IGJlIGxpbmtlZCBpbiB0byBnZXQgb3RoZXIgIgorICAgICAg
ICAidXRpbGl0aWVzLikiCisgICAgICAgICJcblxuIgorICAgICAgICAiVG8gc3VwcHJlc3MgdGhp
cyBlcnJvciBmb3IgdGhpcyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lICIK
KyAgICAgICAgIihpbiBhIG5vbi1oZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5l
ZCBpbjoiCisgICAgICAgICJcblxuIgorICAgICAgICAiR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFU
RURfUEFSQU1FVEVSSVpFRF9URVNUKCIgKworICAgICAgICB0ZXN0Y2FzZS5maXJzdCArICIpOyI7
CisKKyAgICBzdGQ6OnN0cmluZyBmdWxsX25hbWUgPQorICAgICAgICAiVW5pbnN0YW50aWF0ZWRU
eXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTwiICsgdGVzdGNhc2UuZmlyc3QgKyAiPiI7CisgICAg
UmVnaXN0ZXJUZXN0KCAgLy8KKyAgICAgICAgIkdvb2dsZVRlc3RWZXJpZmljYXRpb24iLCBmdWxs
X25hbWUuY19zdHIoKSwKKyAgICAgICAgbnVsbHB0ciwgIC8vIE5vIHR5cGUgcGFyYW1ldGVyLgor
ICAgICAgICBudWxscHRyLCAgLy8gTm8gdmFsdWUgcGFyYW1ldGVyLgorICAgICAgICB0ZXN0Y2Fz
ZS5zZWNvbmQuY29kZV9sb2NhdGlvbi5maWxlLmNfc3RyKCksCisgICAgICAgIHRlc3RjYXNlLnNl
Y29uZC5jb2RlX2xvY2F0aW9uLmxpbmUsIFttZXNzYWdlLCB0ZXN0Y2FzZV0geworICAgICAgICAg
IHJldHVybiBuZXcgRmFpbHVyZVRlc3QodGVzdGNhc2Uuc2Vjb25kLmNvZGVfbG9jYXRpb24sIG1l
c3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRXJyb3JPblVuaW5zdGFu
dGlhdGVkVHlwZVBhcmFtZXRlcml6ZWRUZXN0KTsKKyAgICAgICAgfSk7CisgIH0KK30KIAogLy8g
QSBjb3B5IG9mIGFsbCBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiAgU2V0IGJ5IEluaXRHb29nbGVU
ZXN0KCkuCiBzdGF0aWMgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZ19hcmd2czsKQEAgLTQ0
NSw3ICs1OTMsNyBAQCBzdGF0aWMgOjpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZ19hcmd2czsK
IEZpbGVQYXRoIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpIHsKICAgRmlsZVBhdGggcmVzdWx0
OwogCi0jaWYgR1RFU1RfT1NfV0lORE9XUworI2lmIEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1Rf
T1NfT1MyCiAgIHJlc3VsdC5TZXQoRmlsZVBhdGgoR2V0QXJndnMoKVswXSkuUmVtb3ZlRXh0ZW5z
aW9uKCJleGUiKSk7CiAjZWxzZQogICByZXN1bHQuU2V0KEZpbGVQYXRoKEdldEFyZ3ZzKClbMF0p
KTsKQEAgLTQ2MCw5ICs2MDgsMTAgQEAgRmlsZVBhdGggR2V0Q3VycmVudEV4ZWN1dGFibGVOYW1l
KCkgewogc3RkOjpzdHJpbmcgVW5pdFRlc3RPcHRpb25zOjpHZXRPdXRwdXRGb3JtYXQoKSB7CiAg
IGNvbnN0IGNoYXIqIGNvbnN0IGd0ZXN0X291dHB1dF9mbGFnID0gR1RFU1RfRkxBRyhvdXRwdXQp
LmNfc3RyKCk7CiAgIGNvbnN0IGNoYXIqIGNvbnN0IGNvbG9uID0gc3RyY2hyKGd0ZXN0X291dHB1
dF9mbGFnLCAnOicpOwotICByZXR1cm4gKGNvbG9uID09IE5VTEwpID8KLSAgICAgIHN0ZDo6c3Ry
aW5nKGd0ZXN0X291dHB1dF9mbGFnKSA6Ci0gICAgICBzdGQ6OnN0cmluZyhndGVzdF9vdXRwdXRf
ZmxhZywgY29sb24gLSBndGVzdF9vdXRwdXRfZmxhZyk7CisgIHJldHVybiAoY29sb24gPT0gbnVs
bHB0cikKKyAgICAgICAgICAgICA/IHN0ZDo6c3RyaW5nKGd0ZXN0X291dHB1dF9mbGFnKQorICAg
ICAgICAgICAgIDogc3RkOjpzdHJpbmcoZ3Rlc3Rfb3V0cHV0X2ZsYWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvbG9uIC0gZ3Rlc3Rfb3V0cHV0X2Zs
YWcpKTsKIH0KIAogLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIG91dHB1dCBm
aWxlLCBvciB0aGUgZGVmYXVsdCBpZiBub25lCkBAIC00NzUsNyArNjI0LDcgQEAgc3RkOjpzdHJp
bmcgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091dHB1dEZpbGUoKSB7CiAgICAg
Zm9ybWF0ID0gc3RkOjpzdHJpbmcoa0RlZmF1bHRPdXRwdXRGb3JtYXQpOwogCiAgIGNvbnN0IGNo
YXIqIGNvbnN0IGNvbG9uID0gc3RyY2hyKGd0ZXN0X291dHB1dF9mbGFnLCAnOicpOwotICBpZiAo
Y29sb24gPT0gTlVMTCkKKyAgaWYgKGNvbG9uID09IG51bGxwdHIpCiAgICAgcmV0dXJuIGludGVy
bmFsOjpGaWxlUGF0aDo6TWFrZUZpbGVOYW1lKAogICAgICAgICBpbnRlcm5hbDo6RmlsZVBhdGgo
CiAgICAgICAgICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+b3JpZ2luYWxfd29ya2luZ19k
aXIoKSksCkBAIC00ODQsMTAgKzYzMyw2IEBAIHN0ZDo6c3RyaW5nIFVuaXRUZXN0T3B0aW9uczo6
R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCkgewogCiAgIGludGVybmFsOjpGaWxlUGF0aCBv
dXRwdXRfbmFtZShjb2xvbiArIDEpOwogICBpZiAoIW91dHB1dF9uYW1lLklzQWJzb2x1dGVQYXRo
KCkpCi0gICAgLy8gRklYTUU6IG9uIFdpbmRvd3MgXHNvbWVccGF0aCBpcyBub3QgYW4gYWJzb2x1
dGUKLSAgICAvLyBwYXRoIChhcyBpdHMgbWVhbmluZyBkZXBlbmRzIG9uIHRoZSBjdXJyZW50IGRy
aXZlKSwgeWV0IHRoZQotICAgIC8vIGZvbGxvd2luZyBsb2dpYyBmb3IgdHVybmluZyBpdCBpbnRv
IGFuIGFic29sdXRlIHBhdGggaXMgd3JvbmcuCi0gICAgLy8gRml4IGl0LgogICAgIG91dHB1dF9u
YW1lID0gaW50ZXJuYWw6OkZpbGVQYXRoOjpDb25jYXRQYXRocygKICAgICAgICAgaW50ZXJuYWw6
OkZpbGVQYXRoKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2Rpcigp
KSwKICAgICAgICAgaW50ZXJuYWw6OkZpbGVQYXRoKGNvbG9uICsgMSkpOwpAQCAtNTAxLDU0ICs2
NDYsODkgQEAgc3RkOjpzdHJpbmcgVW5pdFRlc3RPcHRpb25zOjpHZXRBYnNvbHV0ZVBhdGhUb091
dHB1dEZpbGUoKSB7CiAgIHJldHVybiByZXN1bHQuc3RyaW5nKCk7CiB9CiAKLS8vIFJldHVybnMg
dHJ1ZSBpZmYgdGhlIHdpbGRjYXJkIHBhdHRlcm4gbWF0Y2hlcyB0aGUgc3RyaW5nLiAgVGhlCi0v
LyBmaXJzdCAnOicgb3IgJ1wwJyBjaGFyYWN0ZXIgaW4gcGF0dGVybiBtYXJrcyB0aGUgZW5kIG9m
IGl0LgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB3aWxkY2FyZCBwYXR0ZXJu
IG1hdGNoZXMgdGhlIHN0cmluZy4gRWFjaAorLy8gcGF0dGVybiBjb25zaXN0cyBvZiByZWd1bGFy
IGNoYXJhY3RlcnMsIHNpbmdsZS1jaGFyYWN0ZXIgd2lsZGNhcmRzICg/KSwgYW5kCisvLyBtdWx0
aS1jaGFyYWN0ZXIgd2lsZGNhcmRzICgqKS4KIC8vCi0vLyBUaGlzIHJlY3Vyc2l2ZSBhbGdvcml0
aG0gaXNuJ3QgdmVyeSBlZmZpY2llbnQsIGJ1dCBpcyBjbGVhciBhbmQKLS8vIHdvcmtzIHdlbGwg
ZW5vdWdoIGZvciBtYXRjaGluZyB0ZXN0IG5hbWVzLCB3aGljaCBhcmUgc2hvcnQuCi1ib29sIFVu
aXRUZXN0T3B0aW9uczo6UGF0dGVybk1hdGNoZXNTdHJpbmcoY29uc3QgY2hhciAqcGF0dGVybiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpz
dHIpIHsKLSAgc3dpdGNoICgqcGF0dGVybikgewotICAgIGNhc2UgJ1wwJzoKLSAgICBjYXNlICc6
JzogIC8vIEVpdGhlciAnOicgb3IgJ1wwJyBtYXJrcyB0aGUgZW5kIG9mIHRoZSBwYXR0ZXJuLgot
ICAgICAgcmV0dXJuICpzdHIgPT0gJ1wwJzsKLSAgICBjYXNlICc/JzogIC8vIE1hdGNoZXMgYW55
IHNpbmdsZSBjaGFyYWN0ZXIuCi0gICAgICByZXR1cm4gKnN0ciAhPSAnXDAnICYmIFBhdHRlcm5N
YXRjaGVzU3RyaW5nKHBhdHRlcm4gKyAxLCBzdHIgKyAxKTsKLSAgICBjYXNlICcqJzogIC8vIE1h
dGNoZXMgYW55IHN0cmluZyAocG9zc2libHkgZW1wdHkpIG9mIGNoYXJhY3RlcnMuCi0gICAgICBy
ZXR1cm4gKCpzdHIgIT0gJ1wwJyAmJiBQYXR0ZXJuTWF0Y2hlc1N0cmluZyhwYXR0ZXJuLCBzdHIg
KyAxKSkgfHwKLSAgICAgICAgICBQYXR0ZXJuTWF0Y2hlc1N0cmluZyhwYXR0ZXJuICsgMSwgc3Ry
KTsKLSAgICBkZWZhdWx0OiAgLy8gTm9uLXNwZWNpYWwgY2hhcmFjdGVyLiAgTWF0Y2hlcyBpdHNl
bGYuCi0gICAgICByZXR1cm4gKnBhdHRlcm4gPT0gKnN0ciAmJgotICAgICAgICAgIFBhdHRlcm5N
YXRjaGVzU3RyaW5nKHBhdHRlcm4gKyAxLCBzdHIgKyAxKTsKLSAgfQotfQotCi1ib29sIFVuaXRU
ZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcigKLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwg
Y29uc3QgY2hhciogZmlsdGVyKSB7Ci0gIGNvbnN0IGNoYXIgKmN1cl9wYXR0ZXJuID0gZmlsdGVy
OwotICBmb3IgKDs7KSB7Ci0gICAgaWYgKFBhdHRlcm5NYXRjaGVzU3RyaW5nKGN1cl9wYXR0ZXJu
LCBuYW1lLmNfc3RyKCkpKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKKy8vIFRoaXMgZnVuY3Rpb24g
aW1wbGVtZW50cyBhIGxpbmVhci10aW1lIHN0cmluZyBnbG9iYmluZyBhbGdvcml0aG0gYmFzZWQg
b24KKy8vIGh0dHBzOi8vcmVzZWFyY2guc3d0Y2guY29tL2dsb2IuCitzdGF0aWMgYm9vbCBQYXR0
ZXJuTWF0Y2hlc1N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgbmFtZV9zdHIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwYXR0ZXJuLCBjb25zdCBjaGFyKiBw
YXR0ZXJuX2VuZCkgeworICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZV9zdHIuY19zdHIoKTsKKyAg
Y29uc3QgY2hhciogY29uc3QgbmFtZV9iZWdpbiA9IG5hbWU7CisgIGNvbnN0IGNoYXIqIGNvbnN0
IG5hbWVfZW5kID0gbmFtZSArIG5hbWVfc3RyLnNpemUoKTsKKworICBjb25zdCBjaGFyKiBwYXR0
ZXJuX25leHQgPSBwYXR0ZXJuOworICBjb25zdCBjaGFyKiBuYW1lX25leHQgPSBuYW1lOworCisg
IHdoaWxlIChwYXR0ZXJuIDwgcGF0dGVybl9lbmQgfHwgbmFtZSA8IG5hbWVfZW5kKSB7CisgICAg
aWYgKHBhdHRlcm4gPCBwYXR0ZXJuX2VuZCkgeworICAgICAgc3dpdGNoICgqcGF0dGVybikgewor
ICAgICAgICBkZWZhdWx0OiAgLy8gTWF0Y2ggYW4gb3JkaW5hcnkgY2hhcmFjdGVyLgorICAgICAg
ICAgIGlmIChuYW1lIDwgbmFtZV9lbmQgJiYgKm5hbWUgPT0gKnBhdHRlcm4pIHsKKyAgICAgICAg
ICAgICsrcGF0dGVybjsKKyAgICAgICAgICAgICsrbmFtZTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnPyc6ICAvLyBN
YXRjaCBhbnkgc2luZ2xlIGNoYXJhY3Rlci4KKyAgICAgICAgICBpZiAobmFtZSA8IG5hbWVfZW5k
KSB7CisgICAgICAgICAgICArK3BhdHRlcm47CisgICAgICAgICAgICArK25hbWU7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgJyonOgorICAgICAgICAgIC8vIE1hdGNoIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzLiBTdGFy
dCBieSBza2lwcGluZyBvdmVyIHRoZSB3aWxkY2FyZAorICAgICAgICAgIC8vIGFuZCBtYXRjaGlu
ZyB6ZXJvIGNoYXJhY3RlcnMgZnJvbSBuYW1lLiBJZiB0aGF0IGZhaWxzLCByZXN0YXJ0IGFuZAor
ICAgICAgICAgIC8vIG1hdGNoIG9uZSBtb3JlIGNoYXJhY3RlciB0aGFuIHRoZSBsYXN0IGF0dGVt
cHQuCisgICAgICAgICAgcGF0dGVybl9uZXh0ID0gcGF0dGVybjsKKyAgICAgICAgICBuYW1lX25l
eHQgPSBuYW1lICsgMTsKKyAgICAgICAgICArK3BhdHRlcm47CisgICAgICAgICAgY29udGludWU7
CisgICAgICB9CisgICAgfQorICAgIC8vIEZhaWxlZCB0byBtYXRjaCBhIGNoYXJhY3Rlci4gUmVz
dGFydCBpZiBwb3NzaWJsZS4KKyAgICBpZiAobmFtZV9iZWdpbiA8IG5hbWVfbmV4dCAmJiBuYW1l
X25leHQgPD0gbmFtZV9lbmQpIHsKKyAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuX25leHQ7CisgICAg
ICBuYW1lID0gbmFtZV9uZXh0OworICAgICAgY29udGludWU7CiAgICAgfQorICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIC8vIEZpbmRzIHRoZSBuZXh0IHBh
dHRlcm4gaW4gdGhlIGZpbHRlci4KLSAgICBjdXJfcGF0dGVybiA9IHN0cmNocihjdXJfcGF0dGVy
biwgJzonKTsKK2Jvb2wgVW5pdFRlc3RPcHRpb25zOjpNYXRjaGVzRmlsdGVyKGNvbnN0IHN0ZDo6
c3RyaW5nJiBuYW1lX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZpbHRlcikgeworICAvLyBUaGUgZmlsdGVyIGlzIGEgbGlzdCBvZiBwYXR0ZXJu
cyBzZXBhcmF0ZWQgYnkgY29sb25zICg6KS4KKyAgY29uc3QgY2hhciogcGF0dGVybiA9IGZpbHRl
cjsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICAvLyBGaW5kIHRoZSBib3VuZHMgb2YgdGhpcyBwYXR0
ZXJuLgorICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5leHRfc2VwID0gc3RyY2hyKHBhdHRlcm4sICc6
Jyk7CisgICAgY29uc3QgY2hhciogY29uc3QgcGF0dGVybl9lbmQgPQorICAgICAgICBuZXh0X3Nl
cCAhPSBudWxscHRyID8gbmV4dF9zZXAgOiBwYXR0ZXJuICsgc3RybGVuKHBhdHRlcm4pOwogCi0g
ICAgLy8gUmV0dXJucyBpZiBubyBtb3JlIHBhdHRlcm4gY2FuIGJlIGZvdW5kLgotICAgIGlmIChj
dXJfcGF0dGVybiA9PSBOVUxMKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gQ2hlY2sg
aWYgdGhpcyBwYXR0ZXJuIG1hdGNoZXMgbmFtZV9zdHIuCisgICAgaWYgKFBhdHRlcm5NYXRjaGVz
U3RyaW5nKG5hbWVfc3RyLCBwYXR0ZXJuLCBwYXR0ZXJuX2VuZCkpIHsKKyAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIC8vIFNraXBzIHRoZSBwYXR0ZXJuIHNlcGFyYXRlciAodGhlICc6
JyBjaGFyYWN0ZXIpLgotICAgIGN1cl9wYXR0ZXJuKys7CisgICAgLy8gR2l2ZSB1cCBvbiB0aGlz
IHBhdHRlcm4uIEhvd2V2ZXIsIGlmIHdlIGZvdW5kIGEgcGF0dGVybiBzZXBhcmF0b3IgKDopLAor
ICAgIC8vIGFkdmFuY2UgdG8gdGhlIG5leHQgcGF0dGVybiAoc2tpcHBpbmcgb3ZlciB0aGUgc2Vw
YXJhdG9yKSBhbmQgcmVzdGFydC4KKyAgICBpZiAobmV4dF9zZXAgPT0gbnVsbHB0cikgeworICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBwYXR0ZXJuID0gbmV4dF9zZXAgKyAxOwogICB9
CisgIHJldHVybiB0cnVlOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1c2VyLXNwZWNp
ZmllZCBmaWx0ZXIgbWF0Y2hlcyB0aGUgdGVzdCBjYXNlCi0vLyBuYW1lIGFuZCB0aGUgdGVzdCBu
YW1lLgotYm9vbCBVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNoZXNUZXN0KGNvbnN0IHN0ZDo6
c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdGVzdF9uYW1lKSB7Ci0gIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBmdWxsX25hbWUgPSB0ZXN0X2Nhc2VfbmFtZSArICIuIiArIHRlc3RfbmFtZS5jX3N0cigp
OworLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB1c2VyLXNwZWNpZmllZCBmaWx0
ZXIgbWF0Y2hlcyB0aGUgdGVzdAorLy8gc3VpdGUgbmFtZSBhbmQgdGhlIHRlc3QgbmFtZS4KK2Jv
b2wgVW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJNYXRjaGVzVGVzdChjb25zdCBzdGQ6OnN0cmluZyYg
dGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0X25hbWUpIHsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIGZ1
bGxfbmFtZSA9IHRlc3Rfc3VpdGVfbmFtZSArICIuIiArIHRlc3RfbmFtZS5jX3N0cigpOwogCiAg
IC8vIFNwbGl0IC0tZ3Rlc3RfZmlsdGVyIGF0ICctJywgaWYgdGhlcmUgaXMgb25lLCB0byBzZXBh
cmF0ZSBpbnRvCiAgIC8vIHBvc2l0aXZlIGZpbHRlciBhbmQgbmVnYXRpdmUgZmlsdGVyIHBvcnRp
b25zCkBAIC01NTYsNyArNzM2LDcgQEAgYm9vbCBVbml0VGVzdE9wdGlvbnM6OkZpbHRlck1hdGNo
ZXNUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZ0ZXN0X2Nhc2VfbmFtZSwKICAgY29uc3QgY2hhciog
Y29uc3QgZGFzaCA9IHN0cmNocihwLCAnLScpOwogICBzdGQ6OnN0cmluZyBwb3NpdGl2ZTsKICAg
c3RkOjpzdHJpbmcgbmVnYXRpdmU7Ci0gIGlmIChkYXNoID09IE5VTEwpIHsKKyAgaWYgKGRhc2gg
PT0gbnVsbHB0cikgewogICAgIHBvc2l0aXZlID0gR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCk7
ICAvLyBXaG9sZSBzdHJpbmcgaXMgYSBwb3NpdGl2ZSBmaWx0ZXIKICAgICBuZWdhdGl2ZSA9ICIi
OwogICB9IGVsc2UgewpAQCAtNzAxLDcgKzg4MSw3IEBAIHN0YXRpYyBBc3NlcnRpb25SZXN1bHQg
SGFzT25lRmFpbHVyZShjb25zdCBjaGFyKiAvKiByZXN1bHRzX2V4cHIgKi8sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8PCByOwogICB9CiAKLSAgaWYgKHN0cnN0cihyLm1lc3NhZ2Uo
KSwgc3Vic3RyLmNfc3RyKCkpID09IE5VTEwpIHsKKyAgaWYgKHN0cnN0cihyLm1lc3NhZ2UoKSwg
c3Vic3RyLmNfc3RyKCkpID09IG51bGxwdHIpIHsKICAgICByZXR1cm4gQXNzZXJ0aW9uRmFpbHVy
ZSgpIDw8ICJFeHBlY3RlZDogIiA8PCBleHBlY3RlZCA8PCAiIGNvbnRhaW5pbmcgXCIiCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdWJzdHIgPDwgIlwiXG4iCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8PCAiICBBY3R1YWw6XG4iCkBAIC03NzAsNjEgKzk1MCw2NiBA
QCB2b2lkIFVuaXRUZXN0SW1wbDo6U2V0VGVzdFBhcnRSZXN1bHRSZXBvcnRlckZvckN1cnJlbnRU
aHJlYWQoCiAgIHBlcl90aHJlYWRfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRlcl8uc2V0KHJlcG9y
dGVyKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBjYXNlcy4K
LWludCBVbml0VGVzdEltcGw6OnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3Qgewot
ICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywgVGVzdENhc2VQYXNzZWQpOworLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRlc3RJbXBsOjpz
dWNjZXNzZnVsX3Rlc3Rfc3VpdGVfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBDb3VudElmKHRl
c3Rfc3VpdGVzXywgVGVzdFN1aXRlUGFzc2VkKTsKIH0KIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9m
IGZhaWxlZCB0ZXN0IGNhc2VzLgotaW50IFVuaXRUZXN0SW1wbDo6ZmFpbGVkX3Rlc3RfY2FzZV9j
b3VudCgpIGNvbnN0IHsKLSAgcmV0dXJuIENvdW50SWYodGVzdF9jYXNlc18sIFRlc3RDYXNlRmFp
bGVkKTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBzdWl0ZXMuCitpbnQgVW5p
dFRlc3RJbXBsOjpmYWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIENv
dW50SWYodGVzdF9zdWl0ZXNfLCBUZXN0U3VpdGVGYWlsZWQpOwogfQogCi0vLyBHZXRzIHRoZSBu
dW1iZXIgb2YgYWxsIHRlc3QgY2FzZXMuCi1pbnQgVW5pdFRlc3RJbXBsOjp0b3RhbF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHRlc3RfY2FzZXNf
LnNpemUoKSk7CisvLyBHZXRzIHRoZSBudW1iZXIgb2YgYWxsIHRlc3Qgc3VpdGVzLgoraW50IFVu
aXRUZXN0SW1wbDo6dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4odGVzdF9zdWl0ZXNfLnNpemUoKSk7CiB9CiAKLS8vIEdldHMgdGhlIG51
bWJlciBvZiBhbGwgdGVzdCBjYXNlcyB0aGF0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRlc3QKKy8v
IEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBzdWl0ZXMgdGhhdCBjb250YWluIGF0IGxlYXN0
IG9uZSB0ZXN0CiAvLyB0aGF0IHNob3VsZCBydW4uCi1pbnQgVW5pdFRlc3RJbXBsOjp0ZXN0X2Nh
c2VfdG9fcnVuX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gQ291bnRJZih0ZXN0X2Nhc2VzXywg
U2hvdWxkUnVuVGVzdENhc2UpOworaW50IFVuaXRUZXN0SW1wbDo6dGVzdF9zdWl0ZV90b19ydW5f
Y291bnQoKSBjb25zdCB7CisgIHJldHVybiBDb3VudElmKHRlc3Rfc3VpdGVzXywgU2hvdWxkUnVu
VGVzdFN1aXRlKTsKIH0KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMu
CiBpbnQgVW5pdFRlc3RJbXBsOjpzdWNjZXNzZnVsX3Rlc3RfY291bnQoKSBjb25zdCB7Ci0gIHJl
dHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNfLCAmVGVzdENhc2U6OnN1Y2Nlc3Nm
dWxfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRl
c18sICZUZXN0U3VpdGU6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCk7Cit9CisKKy8vIEdldHMgdGhl
IG51bWJlciBvZiBza2lwcGVkIHRlc3RzLgoraW50IFVuaXRUZXN0SW1wbDo6c2tpcHBlZF90ZXN0
X2NvdW50KCkgY29uc3QgeworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3QodGVzdF9zdWl0
ZXNfLCAmVGVzdFN1aXRlOjpza2lwcGVkX3Rlc3RfY291bnQpOwogfQogCiAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZmFpbGVkIHRlc3RzLgogaW50IFVuaXRUZXN0SW1wbDo6ZmFpbGVkX3Rlc3RfY291
bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNfLCAm
VGVzdENhc2U6OmZhaWxlZF90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVM
aXN0KHRlc3Rfc3VpdGVzXywgJlRlc3RTdWl0ZTo6ZmFpbGVkX3Rlc3RfY291bnQpOwogfQogCiAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgdGhhdCB3aWxsIGJlIHJlcG9ydGVk
IGluIHRoZSBYTUwgcmVwb3J0LgogaW50IFVuaXRUZXN0SW1wbDo6cmVwb3J0YWJsZV9kaXNhYmxl
ZF90ZXN0X2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RDYXNlTGlzdCh0ZXN0
X2Nhc2VzXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRlc3RDYXNlOjpyZXBvcnRh
YmxlX2Rpc2FibGVkX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0ZUxpc3Qo
dGVzdF9zdWl0ZXNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRlc3RTdWl0ZTo6
cmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KTsKIH0KIAogLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGRpc2FibGVkIHRlc3RzLgogaW50IFVuaXRUZXN0SW1wbDo6ZGlzYWJsZWRfdGVzdF9jb3Vu
dCgpIGNvbnN0IHsKLSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZU
ZXN0Q2FzZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCk7CisgIHJldHVybiBTdW1PdmVyVGVzdFN1aXRl
TGlzdCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OmRpc2FibGVkX3Rlc3RfY291bnQpOwogfQog
CiAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdGVzdHMgdG8gYmUgcHJpbnRlZCBpbiB0aGUgWE1MIHJl
cG9ydC4KIGludCBVbml0VGVzdEltcGw6OnJlcG9ydGFibGVfdGVzdF9jb3VudCgpIGNvbnN0IHsK
LSAgcmV0dXJuIFN1bU92ZXJUZXN0Q2FzZUxpc3QodGVzdF9jYXNlc18sICZUZXN0Q2FzZTo6cmVw
b3J0YWJsZV90ZXN0X2NvdW50KTsKKyAgcmV0dXJuIFN1bU92ZXJUZXN0U3VpdGVMaXN0KHRlc3Rf
c3VpdGVzXywgJlRlc3RTdWl0ZTo6cmVwb3J0YWJsZV90ZXN0X2NvdW50KTsKIH0KIAogLy8gR2V0
cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0cy4KIGludCBVbml0VGVzdEltcGw6OnRvdGFsX3Rlc3Rf
Y291bnQoKSBjb25zdCB7Ci0gIHJldHVybiBTdW1PdmVyVGVzdENhc2VMaXN0KHRlc3RfY2FzZXNf
LCAmVGVzdENhc2U6OnRvdGFsX3Rlc3RfY291bnQpOworICByZXR1cm4gU3VtT3ZlclRlc3RTdWl0
ZUxpc3QodGVzdF9zdWl0ZXNfLCAmVGVzdFN1aXRlOjp0b3RhbF90ZXN0X2NvdW50KTsKIH0KIAog
Ly8gR2V0cyB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgc2hvdWxkIHJ1bi4KIGludCBVbml0VGVz
dEltcGw6OnRlc3RfdG9fcnVuX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gU3VtT3ZlclRlc3RD
YXNlTGlzdCh0ZXN0X2Nhc2VzXywgJlRlc3RDYXNlOjp0ZXN0X3RvX3J1bl9jb3VudCk7CisgIHJl
dHVybiBTdW1PdmVyVGVzdFN1aXRlTGlzdCh0ZXN0X3N1aXRlc18sICZUZXN0U3VpdGU6OnRlc3Rf
dG9fcnVuX2NvdW50KTsKIH0KIAogLy8gUmV0dXJucyB0aGUgY3VycmVudCBPUyBzdGFjayB0cmFj
ZSBhcyBhbiBzdGQ6OnN0cmluZy4KQEAgLTg0Niw0OCArMTAzMSwzMCBAQCBzdGQ6OnN0cmluZyBV
bml0VGVzdEltcGw6OkN1cnJlbnRPc1N0YWNrVHJhY2VFeGNlcHRUb3AoaW50IHNraXBfY291bnQp
IHsKICAgICAgICk7ICAvLyBOT0xJTlQKIH0KIAotLy8gUmV0dXJucyB0aGUgY3VycmVudCB0aW1l
IGluIG1pbGxpc2Vjb25kcy4KKy8vIEEgaGVscGVyIGNsYXNzIGZvciBtZWFzdXJpbmcgZWxhcHNl
ZCB0aW1lcy4KK2NsYXNzIFRpbWVyIHsKKyBwdWJsaWM6CisgIFRpbWVyKCkgOiBzdGFydF8oc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpIHt9CisKKyAgLy8gUmV0dXJuIHRpbWUgZWxh
cHNlZCBpbiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIHRpbWVyIHdhcyBjcmVhdGVkLgorICBUaW1l
SW5NaWxsaXMgRWxhcHNlZCgpIHsKKyAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nh
c3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisgICAgICAgICAgICAgICBzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIHN0YXJ0XykKKyAgICAgICAgLmNvdW50KCk7CisgIH0K
KworIHByaXZhdGU6CisgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2s+IHN0YXJ0XzsKK307CisKKy8vIFJldHVybnMgYSB0aW1lc3RhbXAgYXMgbWlsbGlz
ZWNvbmRzIHNpbmNlIHRoZSBlcG9jaC4gTm90ZSB0aGlzIHRpbWUgbWF5IGp1bXAKKy8vIGFyb3Vu
ZCBzdWJqZWN0IHRvIGFkanVzdG1lbnRzIGJ5IHRoZSBzeXN0ZW0sIHRvIG1lYXN1cmUgZWxhcHNl
ZCB0aW1lIHVzZQorLy8gVGltZXIgaW5zdGVhZC4KIFRpbWVJbk1pbGxpcyBHZXRUaW1lSW5NaWxs
aXMoKSB7Ci0jaWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgfHwgZGVmaW5lZChfX0JPUkxBTkRD
X18pCi0gIC8vIERpZmZlcmVuY2UgYmV0d2VlbiAxOTcwLTAxLTAxIGFuZCAxNjAxLTAxLTAxIGlu
IG1pbGxpc2Vjb25kcy4KLSAgLy8gaHR0cDovL2FuYWxvZ291cy5ibG9nc3BvdC5jb20vMjAwNS8w
NC9lcG9jaC5odG1sCi0gIGNvbnN0IFRpbWVJbk1pbGxpcyBrSmF2YUVwb2NoVG9XaW5GaWxlVGlt
ZURlbHRhID0KLSAgICBzdGF0aWNfY2FzdDxUaW1lSW5NaWxsaXM+KDExNjQ0NDczNlVMKSAqIDEw
MDAwMFVMOwotICBjb25zdCBEV09SRCBrVGVudGhNaWNyb3NJbk1pbGxpU2Vjb25kID0gMTAwMDA7
Ci0KLSAgU1lTVEVNVElNRSBub3dfc3lzdGltZTsKLSAgRklMRVRJTUUgbm93X2ZpbGV0aW1lOwot
ICBVTEFSR0VfSU5URUdFUiBub3dfaW50NjQ7Ci0gIC8vIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBq
dXN0IHVzZQotICAvLyAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCk/Ci0gIEdldFN5c3RlbVRp
bWUoJm5vd19zeXN0aW1lKTsKLSAgaWYgKFN5c3RlbVRpbWVUb0ZpbGVUaW1lKCZub3dfc3lzdGlt
ZSwgJm5vd19maWxldGltZSkpIHsKLSAgICBub3dfaW50NjQuTG93UGFydCA9IG5vd19maWxldGlt
ZS5kd0xvd0RhdGVUaW1lOwotICAgIG5vd19pbnQ2NC5IaWdoUGFydCA9IG5vd19maWxldGltZS5k
d0hpZ2hEYXRlVGltZTsKLSAgICBub3dfaW50NjQuUXVhZFBhcnQgPSAobm93X2ludDY0LlF1YWRQ
YXJ0IC8ga1RlbnRoTWljcm9zSW5NaWxsaVNlY29uZCkgLQotICAgICAga0phdmFFcG9jaFRvV2lu
RmlsZVRpbWVEZWx0YTsKLSAgICByZXR1cm4gbm93X2ludDY0LlF1YWRQYXJ0OwotICB9Ci0gIHJl
dHVybiAwOwotI2VsaWYgR1RFU1RfT1NfV0lORE9XUyAmJiAhR1RFU1RfSEFTX0dFVFRJTUVPRkRB
WV8KLSAgX190aW1lYjY0IG5vdzsKLQotICAvLyBNU1ZDIDggZGVwcmVjYXRlcyBfZnRpbWU2NCgp
LCBzbyB3ZSB3YW50IHRvIHN1cHByZXNzIHdhcm5pbmcgNDk5NgotICAvLyAoZGVwcmVjYXRlZCBm
dW5jdGlvbikgdGhlcmUuCi0gIC8vIEZJWE1FOiBVc2UgR2V0VGlja0NvdW50KCk/ICBPciB1c2UK
LSAgLy8gICBTeXN0ZW1UaW1lVG9GaWxlVGltZSgpCi0gIEdURVNUX0RJU0FCTEVfTVNDX0RFUFJF
Q0FURURfUFVTSF8oKQotICBfZnRpbWU2NCgmbm93KTsKLSAgR1RFU1RfRElTQUJMRV9NU0NfREVQ
UkVDQVRFRF9QT1BfKCkKLQotICByZXR1cm4gc3RhdGljX2Nhc3Q8VGltZUluTWlsbGlzPihub3cu
dGltZSkgKiAxMDAwICsgbm93Lm1pbGxpdG07Ci0jZWxpZiBHVEVTVF9IQVNfR0VUVElNRU9GREFZ
XwotICBzdHJ1Y3QgdGltZXZhbCBub3c7Ci0gIGdldHRpbWVvZmRheSgmbm93LCBOVUxMKTsKLSAg
cmV0dXJuIHN0YXRpY19jYXN0PFRpbWVJbk1pbGxpcz4obm93LnR2X3NlYykgKiAxMDAwICsgbm93
LnR2X3VzZWMgLyAxMDAwOwotI2Vsc2UKLSMgZXJyb3IgIkRvbid0IGtub3cgaG93IHRvIGdldCB0
aGUgY3VycmVudCB0aW1lIG9uIHlvdXIgc3lzdGVtLiIKLSNlbmRpZgorICByZXR1cm4gc3RkOjpj
aHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisgICAgICAg
ICAgICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLQorICAgICAgICAgICAgIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OmZyb21fdGltZV90KDApKQorICAgICAgLmNvdW50KCk7
CiB9CiAKIC8vIFV0aWxpdGllcwpAQCAtOTAwLDExICsxMDY3LDEwIEBAIFRpbWVJbk1pbGxpcyBH
ZXRUaW1lSW5NaWxsaXMoKSB7CiAvLyB2YWx1ZSB1c2luZyBkZWxldGVbXS4gUmV0dXJucyB0aGUg
d2lkZSBzdHJpbmcsIG9yIE5VTEwgaWYgdGhlCiAvLyBpbnB1dCBpcyBOVUxMLgogTFBDV1NUUiBT
dHJpbmc6OkFuc2lUb1V0ZjE2KGNvbnN0IGNoYXIqIGFuc2kpIHsKLSAgaWYgKCFhbnNpKSByZXR1
cm4gTlVMTDsKKyAgaWYgKCFhbnNpKSByZXR1cm4gbnVsbHB0cjsKICAgY29uc3QgaW50IGxlbmd0
aCA9IHN0cmxlbihhbnNpKTsKICAgY29uc3QgaW50IHVuaWNvZGVfbGVuZ3RoID0KLSAgICAgIE11
bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBhbnNpLCBsZW5ndGgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwsIDApOworICAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1As
IDAsIGFuc2ksIGxlbmd0aCwgbnVsbHB0ciwgMCk7CiAgIFdDSEFSKiB1bmljb2RlID0gbmV3IFdD
SEFSW3VuaWNvZGVfbGVuZ3RoICsgMV07CiAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAw
LCBhbnNpLCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSwgdW5pY29kZV9s
ZW5ndGgpOwpAQCAtOTE3LDMzICsxMDgzLDMzIEBAIExQQ1dTVFIgU3RyaW5nOjpBbnNpVG9VdGYx
Nihjb25zdCBjaGFyKiBhbnNpKSB7CiAvLyB2YWx1ZSB1c2luZyBkZWxldGVbXS4gUmV0dXJucyB0
aGUgQU5TSSBzdHJpbmcsIG9yIE5VTEwgaWYgdGhlCiAvLyBpbnB1dCBpcyBOVUxMLgogY29uc3Qg
Y2hhciogU3RyaW5nOjpVdGYxNlRvQW5zaShMUENXU1RSIHV0ZjE2X3N0cikgIHsKLSAgaWYgKCF1
dGYxNl9zdHIpIHJldHVybiBOVUxMOwotICBjb25zdCBpbnQgYW5zaV9sZW5ndGggPQotICAgICAg
V2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIE5VTEwpOworICBpZiAoIXV0ZjE2X3N0cikg
cmV0dXJuIG51bGxwdHI7CisgIGNvbnN0IGludCBhbnNpX2xlbmd0aCA9IFdpZGVDaGFyVG9NdWx0
aUJ5dGUoQ1BfQUNQLCAwLCB1dGYxNl9zdHIsIC0xLCBudWxscHRyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG51bGxwdHIsIG51bGxwdHIpOwogICBj
aGFyKiBhbnNpID0gbmV3IGNoYXJbYW5zaV9sZW5ndGggKyAxXTsKLSAgV2lkZUNoYXJUb011bHRp
Qnl0ZShDUF9BQ1AsIDAsIHV0ZjE2X3N0ciwgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgYW5z
aSwgYW5zaV9sZW5ndGgsIE5VTEwsIE5VTEwpOworICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FD
UCwgMCwgdXRmMTZfc3RyLCAtMSwgYW5zaSwgYW5zaV9sZW5ndGgsIG51bGxwdHIsCisgICAgICAg
ICAgICAgICAgICAgICAgbnVsbHB0cik7CiAgIGFuc2lbYW5zaV9sZW5ndGhdID0gMDsKICAgcmV0
dXJuIGFuc2k7CiB9CiAKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKIAotLy8g
Q29tcGFyZXMgdHdvIEMgc3RyaW5ncy4gIFJldHVybnMgdHJ1ZSBpZmYgdGhleSBoYXZlIHRoZSBz
YW1lIGNvbnRlbnQuCisvLyBDb21wYXJlcyB0d28gQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlm
IGFuZCBvbmx5IGlmIHRoZXkgaGF2ZSB0aGUgc2FtZQorLy8gY29udGVudC4KIC8vCiAvLyBVbmxp
a2Ugc3RyY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFyZ3VtZW50KHMpLiAg
QSBOVUxMCiAvLyBDIHN0cmluZyBpcyBjb25zaWRlcmVkIGRpZmZlcmVudCB0byBhbnkgbm9uLU5V
TEwgQyBzdHJpbmcsCiAvLyBpbmNsdWRpbmcgdGhlIGVtcHR5IHN0cmluZy4KIGJvb2wgU3RyaW5n
OjpDU3RyaW5nRXF1YWxzKGNvbnN0IGNoYXIgKiBsaHMsIGNvbnN0IGNoYXIgKiByaHMpIHsKLSAg
aWYgKCBsaHMgPT0gTlVMTCApIHJldHVybiByaHMgPT0gTlVMTDsKKyAgaWYgKGxocyA9PSBudWxs
cHRyKSByZXR1cm4gcmhzID09IG51bGxwdHI7CiAKLSAgaWYgKCByaHMgPT0gTlVMTCApIHJldHVy
biBmYWxzZTsKKyAgaWYgKHJocyA9PSBudWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgcmV0dXJu
IHN0cmNtcChsaHMsIHJocykgPT0gMDsKIH0KIAotI2lmIEdURVNUX0hBU19TVERfV1NUUklORyB8
fCBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKKyNpZiBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAog
Ly8gQ29udmVydHMgYW4gYXJyYXkgb2Ygd2lkZSBjaGFycyB0byBhIG5hcnJvdyBzdHJpbmcgdXNp
bmcgdGhlIFVURi04CiAvLyBlbmNvZGluZywgYW5kIHN0cmVhbXMgdGhlIHJlc3VsdCB0byB0aGUg
Z2l2ZW4gTWVzc2FnZSBvYmplY3QuCkBAIC05NjEsNyArMTEyNyw3IEBAIHN0YXRpYyB2b2lkIFN0
cmVhbVdpZGVDaGFyc1RvTWVzc2FnZShjb25zdCB3Y2hhcl90KiB3c3RyLCBzaXplX3QgbGVuZ3Ro
LAogICB9CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HIHx8IEdURVNUX0hB
U19HTE9CQUxfV1NUUklORworI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1dTVFJJTkcKIAogdm9p
ZCBTcGxpdFN0cmluZyhjb25zdCA6OnN0ZDo6c3RyaW5nJiBzdHIsIGNoYXIgZGVsaW1pdGVyLAog
ICAgICAgICAgICAgICAgICA6OnN0ZDo6dmVjdG9yPCA6OnN0ZDo6c3RyaW5nPiogZGVzdCkgewpA
QCAtMTAxMSwxNSArMTE3Nyw2IEBAIE1lc3NhZ2UmIE1lc3NhZ2U6Om9wZXJhdG9yIDw8KGNvbnN0
IDo6c3RkOjp3c3RyaW5nJiB3c3RyKSB7CiB9CiAjZW5kaWYgIC8vIEdURVNUX0hBU19TVERfV1NU
UklORwogCi0jaWYgR1RFU1RfSEFTX0dMT0JBTF9XU1RSSU5HCi0vLyBDb252ZXJ0cyB0aGUgZ2l2
ZW4gd2lkZSBzdHJpbmcgdG8gYSBuYXJyb3cgc3RyaW5nIHVzaW5nIHRoZSBVVEYtOAotLy8gZW5j
b2RpbmcsIGFuZCBzdHJlYW1zIHRoZSByZXN1bHQgdG8gdGhpcyBNZXNzYWdlIG9iamVjdC4KLU1l
c3NhZ2UmIE1lc3NhZ2U6Om9wZXJhdG9yIDw8KGNvbnN0IDo6d3N0cmluZyYgd3N0cikgewotICBp
bnRlcm5hbDo6U3RyZWFtV2lkZUNoYXJzVG9NZXNzYWdlKHdzdHIuY19zdHIoKSwgd3N0ci5sZW5n
dGgoKSwgdGhpcyk7Ci0gIHJldHVybiAqdGhpczsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0dM
T0JBTF9XU1RSSU5HCi0KIC8vIEdldHMgdGhlIHRleHQgc3RyZWFtZWQgdG8gdGhpcyBvYmplY3Qg
c28gZmFyIGFzIGFuIHN0ZDo6c3RyaW5nLgogLy8gRWFjaCAnXDAnIGNoYXJhY3RlciBpbiB0aGUg
YnVmZmVyIGlzIHJlcGxhY2VkIHdpdGggIlxcMCIuCiBzdGQ6OnN0cmluZyBNZXNzYWdlOjpHZXRT
dHJpbmcoKSBjb25zdCB7CkBAIC0xMDMwLDEwICsxMTg3LDkgQEAgc3RkOjpzdHJpbmcgTWVzc2Fn
ZTo6R2V0U3RyaW5nKCkgY29uc3QgewogLy8gVXNlZCBpbiBFWFBFQ1RfVFJVRS9GQUxTRShhc3Nl
cnRpb25fcmVzdWx0KS4KIEFzc2VydGlvblJlc3VsdDo6QXNzZXJ0aW9uUmVzdWx0KGNvbnN0IEFz
c2VydGlvblJlc3VsdCYgb3RoZXIpCiAgICAgOiBzdWNjZXNzXyhvdGhlci5zdWNjZXNzXyksCi0g
ICAgICBtZXNzYWdlXyhvdGhlci5tZXNzYWdlXy5nZXQoKSAhPSBOVUxMID8KLSAgICAgICAgICAg
ICAgIG5ldyA6OnN0ZDo6c3RyaW5nKCpvdGhlci5tZXNzYWdlXykgOgotICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8IDo6c3RkOjpzdHJpbmcqPihOVUxMKSkgewotfQorICAgICAgbWVzc2FnZV8o
b3RoZXIubWVzc2FnZV8uZ2V0KCkgIT0gbnVsbHB0cgorICAgICAgICAgICAgICAgICAgID8gbmV3
IDo6c3RkOjpzdHJpbmcoKm90aGVyLm1lc3NhZ2VfKQorICAgICAgICAgICAgICAgICAgIDogc3Rh
dGljX2Nhc3Q8IDo6c3RkOjpzdHJpbmcqPihudWxscHRyKSkge30KIAogLy8gU3dhcHMgdHdvIEFz
c2VydGlvblJlc3VsdHMuCiB2b2lkIEFzc2VydGlvblJlc3VsdDo6c3dhcChBc3NlcnRpb25SZXN1
bHQmIG90aGVyKSB7CkBAIC0xMDQ1LDggKzEyMDEsNyBAQCB2b2lkIEFzc2VydGlvblJlc3VsdDo6
c3dhcChBc3NlcnRpb25SZXN1bHQmIG90aGVyKSB7CiAvLyBSZXR1cm5zIHRoZSBhc3NlcnRpb24n
cyBuZWdhdGlvbi4gVXNlZCB3aXRoIEVYUEVDVC9BU1NFUlRfRkFMU0UuCiBBc3NlcnRpb25SZXN1
bHQgQXNzZXJ0aW9uUmVzdWx0OjpvcGVyYXRvciEoKSBjb25zdCB7CiAgIEFzc2VydGlvblJlc3Vs
dCBuZWdhdGlvbighc3VjY2Vzc18pOwotICBpZiAobWVzc2FnZV8uZ2V0KCkgIT0gTlVMTCkKLSAg
ICBuZWdhdGlvbiA8PCAqbWVzc2FnZV87CisgIGlmIChtZXNzYWdlXy5nZXQoKSAhPSBudWxscHRy
KSBuZWdhdGlvbiA8PCAqbWVzc2FnZV87CiAgIHJldHVybiBuZWdhdGlvbjsKIH0KIApAQCAtMTI3
Miw5ICsxNDI3LDEwIEBAIHN0ZDo6c3RyaW5nIENyZWF0ZVVuaWZpZWREaWZmKGNvbnN0IHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiYgbGVmdCwKICAgICBmb3IgKDsgZWRpdF9pIDwgZWRpdHMuc2l6
ZSgpOyArK2VkaXRfaSkgewogICAgICAgaWYgKG5fc3VmZml4ID49IGNvbnRleHQpIHsKICAgICAg
ICAgLy8gQ29udGludWUgb25seSBpZiB0aGUgbmV4dCBodW5rIGlzIHZlcnkgY2xvc2UuCi0gICAg
ICAgIHN0ZDo6dmVjdG9yPEVkaXRUeXBlPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBlZGl0cy5iZWdp
bigpICsgZWRpdF9pOworICAgICAgICBhdXRvIGl0ID0gZWRpdHMuYmVnaW4oKSArIHN0YXRpY19j
YXN0PGludD4oZWRpdF9pKTsKICAgICAgICAgd2hpbGUgKGl0ICE9IGVkaXRzLmVuZCgpICYmICpp
dCA9PSBrTWF0Y2gpICsraXQ7Ci0gICAgICAgIGlmIChpdCA9PSBlZGl0cy5lbmQoKSB8fCAoaXQg
LSBlZGl0cy5iZWdpbigpKSAtIGVkaXRfaSA+PSBjb250ZXh0KSB7CisgICAgICAgIGlmIChpdCA9
PSBlZGl0cy5lbmQoKSB8fAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihpdCAtIGVk
aXRzLmJlZ2luKCkpIC0gZWRpdF9pID49IGNvbnRleHQpIHsKICAgICAgICAgICAvLyBUaGVyZSBp
cyBubyBuZXh0IGVkaXQgb3IgaXQgaXMgdG9vIGZhciBhd2F5LgogICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC0xMzUwLDcgKzE1MDYsNyBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
U3BsaXRFc2NhcGVkU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpIHsKIC8vICAgbGhzX3Zh
bHVlOiAgICAgICI1IgogLy8gICByaHNfdmFsdWU6ICAgICAgIjYiCiAvLwotLy8gVGhlIGlnbm9y
aW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWZmIHRoZSBhc3NlcnRpb24gaXMgYQorLy8gVGhl
IGlnbm9yaW5nX2Nhc2UgcGFyYW1ldGVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGFzc2Vy
dGlvbiBpcyBhCiAvLyAqX1NUUkNBU0VFUSouICBXaGVuIGl0J3MgdHJ1ZSwgdGhlIHN0cmluZyAi
SWdub3JpbmcgY2FzZSIgd2lsbAogLy8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgbWVzc2FnZS4KIEFz
c2VydGlvblJlc3VsdCBFcUZhaWx1cmUoY29uc3QgY2hhciogbGhzX2V4cHJlc3Npb24sCkBAIC0x
NDEzLDggKzE1NjksMzEgQEAgQXNzZXJ0aW9uUmVzdWx0IERvdWJsZU5lYXJQcmVkRm9ybWF0KGNv
bnN0IGNoYXIqIGV4cHIxLAogICBjb25zdCBkb3VibGUgZGlmZiA9IGZhYnModmFsMSAtIHZhbDIp
OwogICBpZiAoZGlmZiA8PSBhYnNfZXJyb3IpIHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7CiAK
LSAgLy8gRklYTUU6IGRvIG5vdCBwcmludCB0aGUgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiBpZiBp
dCdzCi0gIC8vIGFscmVhZHkgYSBsaXRlcmFsLgorICAvLyBGaW5kIHRoZSB2YWx1ZSB3aGljaCBp
cyBjbG9zZXN0IHRvIHplcm8uCisgIGNvbnN0IGRvdWJsZSBtaW5fYWJzID0gc3RkOjptaW4oZmFi
cyh2YWwxKSwgZmFicyh2YWwyKSk7CisgIC8vIEZpbmQgdGhlIGRpc3RhbmNlIHRvIHRoZSBuZXh0
IGRvdWJsZSBmcm9tIHRoYXQgdmFsdWUuCisgIGNvbnN0IGRvdWJsZSBlcHNpbG9uID0KKyAgICAg
IG5leHRhZnRlcihtaW5fYWJzLCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5
KCkpIC0gbWluX2FiczsKKyAgLy8gRGV0ZWN0IHRoZSBjYXNlIHdoZXJlIGFic19lcnJvciBpcyBz
byBzbWFsbCB0aGF0IEVYUEVDVF9ORUFSIGlzCisgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFz
IEVYUEVDVF9FUVVBTCwgYW5kIGdpdmUgYW4gaW5mb3JtYXRpdmUgZXJyb3IKKyAgLy8gbWVzc2Fn
ZSBzbyB0aGF0IHRoZSBzaXR1YXRpb24gY2FuIGJlIG1vcmUgZWFzaWx5IHVuZGVyc3Rvb2Qgd2l0
aG91dAorICAvLyByZXF1aXJpbmcgZXhvdGljIGZsb2F0aW5nLXBvaW50IGtub3dsZWRnZS4KKyAg
Ly8gRG9uJ3QgZG8gYW4gZXBzaWxvbiBjaGVjayBpZiBhYnNfZXJyb3IgaXMgemVybyBiZWNhdXNl
IHRoYXQgaW1wbGllcworICAvLyB0aGF0IGFuIGVxdWFsaXR5IGNoZWNrIHdhcyBhY3R1YWxseSBp
bnRlbmRlZC4KKyAgaWYgKCEoc3RkOjppc25hbikodmFsMSkgJiYgIShzdGQ6OmlzbmFuKSh2YWwy
KSAmJiBhYnNfZXJyb3IgPiAwICYmCisgICAgICBhYnNfZXJyb3IgPCBlcHNpbG9uKSB7CisgICAg
cmV0dXJuIEFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgICA8PCAiVGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiAiIDw8IGV4cHIxIDw8ICIgYW5kICIgPDwgZXhwcjIgPDwgIiBpcyAiCisgICAgICAg
ICAgIDw8IGRpZmYgPDwgIiwgd2hlcmVcbiIKKyAgICAgICAgICAgPDwgZXhwcjEgPDwgIiBldmFs
dWF0ZXMgdG8gIiA8PCB2YWwxIDw8ICIsXG4iCisgICAgICAgICAgIDw8IGV4cHIyIDw8ICIgZXZh
bHVhdGVzIHRvICIgPDwgdmFsMiA8PCAiLlxuVGhlIGFic19lcnJvciBwYXJhbWV0ZXIgIgorICAg
ICAgICAgICA8PCBhYnNfZXJyb3JfZXhwciA8PCAiIGV2YWx1YXRlcyB0byAiIDw8IGFic19lcnJv
cgorICAgICAgICAgICA8PCAiIHdoaWNoIGlzIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBkaXN0
YW5jZSBiZXR3ZWVuIGRvdWJsZXMgZm9yICIKKyAgICAgICAgICAgICAgIm51bWJlcnMgb2YgdGhp
cyBtYWduaXR1ZGUgd2hpY2ggaXMgIgorICAgICAgICAgICA8PCBlcHNpbG9uCisgICAgICAgICAg
IDw8ICIsIHRodXMgbWFraW5nIHRoaXMgRVhQRUNUX05FQVIgY2hlY2sgZXF1aXZhbGVudCB0byAi
CisgICAgICAgICAgICAgICJFWFBFQ1RfRVFVQUwuIENvbnNpZGVyIHVzaW5nIEVYUEVDVF9ET1VC
TEVfRVEgaW5zdGVhZC4iOworICB9CiAgIHJldHVybiBBc3NlcnRpb25GYWlsdXJlKCkKICAgICAg
IDw8ICJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuICIgPDwgZXhwcjEgPDwgIiBhbmQgIiA8PCBleHBy
MgogICAgICAgPDwgIiBpcyAiIDw8IGRpZmYgPDwgIiwgd2hpY2ggZXhjZWVkcyAiIDw8IGFic19l
cnJvcl9leHByIDw8ICIsIHdoZXJlXG4iCkBAIC0xNDc3LDU3ICsxNjU2LDYgQEAgQXNzZXJ0aW9u
UmVzdWx0IERvdWJsZUxFKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHByMiwKIAog
bmFtZXNwYWNlIGludGVybmFsIHsKIAotLy8gVGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VS
VHxFWFBFQ1R9X0VRIHdpdGggaW50IG9yIGVudW0KLS8vIGFyZ3VtZW50cy4KLUFzc2VydGlvblJl
c3VsdCBDbXBIZWxwZXJFUShjb25zdCBjaGFyKiBsaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByaHNfZXhwcmVzc2lvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCaWdnZXN0SW50IGxocywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCaWdnZXN0SW50IHJocykgewotICBpZiAobGhzID09IHJocykgewotICAgIHJldHVybiBB
c3NlcnRpb25TdWNjZXNzKCk7Ci0gIH0KLQotICByZXR1cm4gRXFGYWlsdXJlKGxoc19leHByZXNz
aW9uLAotICAgICAgICAgICAgICAgICAgIHJoc19leHByZXNzaW9uLAotICAgICAgICAgICAgICAg
ICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShsaHMsIHJocyksCi0gICAgICAg
ICAgICAgICAgICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHJocywgbGhzKSwK
LSAgICAgICAgICAgICAgICAgICBmYWxzZSk7Ci19Ci0KLS8vIEEgbWFjcm8gZm9yIGltcGxlbWVu
dGluZyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBuZWVkZWQgdG8gaW1wbGVtZW50Ci0vLyBBU1NFUlRf
Pz8gYW5kIEVYUEVDVF8/PyB3aXRoIGludGVnZXIgb3IgZW51bSBhcmd1bWVudHMuICBJdCBpcyBo
ZXJlCi0vLyBqdXN0IHRvIGF2b2lkIGNvcHktYW5kLXBhc3RlIG9mIHNpbWlsYXIgY29kZS4KLSNk
ZWZpbmUgR1RFU1RfSU1QTF9DTVBfSEVMUEVSXyhvcF9uYW1lLCBvcClcCi1Bc3NlcnRpb25SZXN1
bHQgQ21wSGVscGVyIyNvcF9uYW1lKGNvbnN0IGNoYXIqIGV4cHIxLCBjb25zdCBjaGFyKiBleHBy
MiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWdnZXN0SW50IHZhbDEs
IEJpZ2dlc3RJbnQgdmFsMikge1wKLSAgaWYgKHZhbDEgb3AgdmFsMikge1wKLSAgICByZXR1cm4g
QXNzZXJ0aW9uU3VjY2VzcygpO1wKLSAgfSBlbHNlIHtcCi0gICAgcmV0dXJuIEFzc2VydGlvbkZh
aWx1cmUoKSBcCi0gICAgICAgIDw8ICJFeHBlY3RlZDogKCIgPDwgZXhwcjEgPDwgIikgIiAjb3Ag
IiAoIiA8PCBleHByMlwKLSAgICAgICAgPDwgIiksIGFjdHVhbDogIiA8PCBGb3JtYXRGb3JDb21w
YXJpc29uRmFpbHVyZU1lc3NhZ2UodmFsMSwgdmFsMilcCi0gICAgICAgIDw8ICIgdnMgIiA8PCBG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UodmFsMiwgdmFsMSk7XAotICB9XAotfQot
Ci0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rpb24gZm9yIHtBU1NFUlR8RVhQRUNUfV9O
RSB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMuCi1HVEVTVF9JTVBMX0NNUF9IRUxQRVJf
KE5FLCAhPSkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBlciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxF
WFBFQ1R9X0xFIHdpdGggaW50IG9yCi0vLyBlbnVtIGFyZ3VtZW50cy4KLUdURVNUX0lNUExfQ01Q
X0hFTFBFUl8oTEUsIDw9KQotLy8gSW1wbGVtZW50cyB0aGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7
QVNTRVJUfEVYUEVDVH1fTFQgd2l0aCBpbnQgb3IKLS8vIGVudW0gYXJndW1lbnRzLgotR1RFU1Rf
SU1QTF9DTVBfSEVMUEVSXyhMVCwgPCApCi0vLyBJbXBsZW1lbnRzIHRoZSBoZWxwZXIgZnVuY3Rp
b24gZm9yIHtBU1NFUlR8RVhQRUNUfV9HRSB3aXRoIGludCBvcgotLy8gZW51bSBhcmd1bWVudHMu
Ci1HVEVTVF9JTVBMX0NNUF9IRUxQRVJfKEdFLCA+PSkKLS8vIEltcGxlbWVudHMgdGhlIGhlbHBl
ciBmdW5jdGlvbiBmb3Ige0FTU0VSVHxFWFBFQ1R9X0dUIHdpdGggaW50IG9yCi0vLyBlbnVtIGFy
Z3VtZW50cy4KLUdURVNUX0lNUExfQ01QX0hFTFBFUl8oR1QsID4gKQotCi0jdW5kZWYgR1RFU1Rf
SU1QTF9DTVBfSEVMUEVSXwotCiAvLyBUaGUgaGVscGVyIGZ1bmN0aW9uIGZvciB7QVNTRVJUfEVY
UEVDVH1fU1RSRVEuCiBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyU1RSRVEoY29uc3QgY2hhciog
bGhzX2V4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciogcmhzX2V4cHJlc3Npb24sCkBAIC0xNTk1LDIyICsxNzIzLDIwIEBAIG5hbWVzcGFjZSB7CiAK
IC8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGltcGxlbWVudGluZyBJc1N1YlN0cmluZygpIGFuZCBJ
c05vdFN1YnN0cmluZygpLgogCi0vLyBUaGlzIGdyb3VwIG9mIG92ZXJsb2FkZWQgZnVuY3Rpb25z
IHJldHVybiB0cnVlIGlmZiBuZWVkbGUgaXMgYQotLy8gc3Vic3RyaW5nIG9mIGhheXN0YWNrLiAg
TlVMTCBpcyBjb25zaWRlcmVkIGEgc3Vic3RyaW5nIG9mIGl0c2VsZgotLy8gb25seS4KKy8vIFRo
aXMgZ3JvdXAgb2Ygb3ZlcmxvYWRlZCBmdW5jdGlvbnMgcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkg
aWYgbmVlZGxlCisvLyBpcyBhIHN1YnN0cmluZyBvZiBoYXlzdGFjay4gIE5VTEwgaXMgY29uc2lk
ZXJlZCBhIHN1YnN0cmluZyBvZgorLy8gaXRzZWxmIG9ubHkuCiAKIGJvb2wgSXNTdWJzdHJpbmdQ
cmVkKGNvbnN0IGNoYXIqIG5lZWRsZSwgY29uc3QgY2hhciogaGF5c3RhY2spIHsKLSAgaWYgKG5l
ZWRsZSA9PSBOVUxMIHx8IGhheXN0YWNrID09IE5VTEwpCi0gICAgcmV0dXJuIG5lZWRsZSA9PSBo
YXlzdGFjazsKKyAgaWYgKG5lZWRsZSA9PSBudWxscHRyIHx8IGhheXN0YWNrID09IG51bGxwdHIp
IHJldHVybiBuZWVkbGUgPT0gaGF5c3RhY2s7CiAKLSAgcmV0dXJuIHN0cnN0cihoYXlzdGFjaywg
bmVlZGxlKSAhPSBOVUxMOworICByZXR1cm4gc3Ryc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IG51
bGxwdHI7CiB9CiAKIGJvb2wgSXNTdWJzdHJpbmdQcmVkKGNvbnN0IHdjaGFyX3QqIG5lZWRsZSwg
Y29uc3Qgd2NoYXJfdCogaGF5c3RhY2spIHsKLSAgaWYgKG5lZWRsZSA9PSBOVUxMIHx8IGhheXN0
YWNrID09IE5VTEwpCi0gICAgcmV0dXJuIG5lZWRsZSA9PSBoYXlzdGFjazsKKyAgaWYgKG5lZWRs
ZSA9PSBudWxscHRyIHx8IGhheXN0YWNrID09IG51bGxwdHIpIHJldHVybiBuZWVkbGUgPT0gaGF5
c3RhY2s7CiAKLSAgcmV0dXJuIHdjc3N0cihoYXlzdGFjaywgbmVlZGxlKSAhPSBOVUxMOworICBy
ZXR1cm4gd2Nzc3RyKGhheXN0YWNrLCBuZWVkbGUpICE9IG51bGxwdHI7CiB9CiAKIC8vIFN0cmlu
Z1R5cGUgaGVyZSBjYW4gYmUgZWl0aGVyIDo6c3RkOjpzdHJpbmcgb3IgOjpzdGQ6OndzdHJpbmcu
CkBAIC0xNzI0LDEyICsxODUwLDEyIEBAIEFzc2VydGlvblJlc3VsdCBIUkVTVUxURmFpbHVyZUhl
bHBlcihjb25zdCBjaGFyKiBleHByLAogICAvLyBHZXRzIHRoZSBzeXN0ZW0ncyBodW1hbiByZWFk
YWJsZSBtZXNzYWdlIHN0cmluZyBmb3IgdGhpcyBIUkVTVUxULgogICBjaGFyIGVycm9yX3RleHRb
a0J1ZlNpemVdID0geyAnXDAnIH07CiAgIERXT1JEIG1lc3NhZ2VfbGVuZ3RoID0gOjpGb3JtYXRN
ZXNzYWdlQShrRmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLCAgLy8gbm8gc291cmNlLCB3ZSdyZSBhc2tpbmcgc3lzdGVtCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBociwgIC8vIHRoZSBlcnJvcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIC8vIG5vIGxpbmUgd2lkdGggcmVzdHJp
Y3Rpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgIC8v
IG5vIHNvdXJjZSwgd2UncmUgYXNraW5nIHN5c3RlbQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RFdPUkQ+KGhyKSwgIC8vIHRoZSBlcnJvcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAvLyBubyBsaW5l
IHdpZHRoIHJlc3RyaWN0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfdGV4dCwgIC8vIG91dHB1dCBidWZmZXIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtCdWZTaXplLCAgLy8gYnVmIHNpemUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOyAgLy8gbm8gYXJndW1lbnRzIGZv
ciBpbnNlcnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVm
U2l6ZSwgICAgLy8gYnVmIHNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bGxwdHIpOyAgLy8gbm8gYXJndW1lbnRzIGZvciBpbnNlcnRzCiAgIC8vIFRyaW1z
IHRhaWxpbmcgd2hpdGUgc3BhY2UgKEZvcm1hdE1lc3NhZ2UgbGVhdmVzIGEgdHJhaWxpbmcgQ1It
TEYpCiAgIGZvciAoOyBtZXNzYWdlX2xlbmd0aCAmJiBJc1NwYWNlKGVycm9yX3RleHRbbWVzc2Fn
ZV9sZW5ndGggLSAxXSk7CiAgICAgICAgICAgLS1tZXNzYWdlX2xlbmd0aCkgewpAQCAtMTc3NSwz
NSArMTkwMSwzNSBAQCBBc3NlcnRpb25SZXN1bHQgSXNIUkVTVUxURmFpbHVyZShjb25zdCBjaGFy
KiBleHByLCBsb25nIGhyKSB7ICAvLyBOT0xJTlQKIC8vICAxNyAtIDIxIGJpdHMgICAgICAgMTEx
MTB4eHggMTB4eHh4eHggMTB4eHh4eHggMTB4eHh4eHgKIAogLy8gVGhlIG1heGltdW0gY29kZS1w
b2ludCBhIG9uZS1ieXRlIFVURi04IHNlcXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50
MzIga01heENvZGVQb2ludDEgPSAoc3RhdGljX2Nhc3Q8VUludDMyPigxKSA8PCAgNykgLSAxOwor
Y29uc3RleHByIHVpbnQzMl90IGtNYXhDb2RlUG9pbnQxID0gKHN0YXRpY19jYXN0PHVpbnQzMl90
PigxKSA8PCAgNykgLSAxOwogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50IGEgdHdvLWJ5dGUg
VVRGLTggc2VxdWVuY2UgY2FuIHJlcHJlc2VudC4KLWNvbnN0IFVJbnQzMiBrTWF4Q29kZVBvaW50
MiA9IChzdGF0aWNfY2FzdDxVSW50MzI+KDEpIDw8ICg1ICsgNikpIC0gMTsKK2NvbnN0ZXhwciB1
aW50MzJfdCBrTWF4Q29kZVBvaW50MiA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgKDUg
KyA2KSkgLSAxOwogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50IGEgdGhyZWUtYnl0ZSBVVEYt
OCBzZXF1ZW5jZSBjYW4gcmVwcmVzZW50LgotY29uc3QgVUludDMyIGtNYXhDb2RlUG9pbnQzID0g
KHN0YXRpY19jYXN0PFVJbnQzMj4oMSkgPDwgKDQgKyAyKjYpKSAtIDE7Citjb25zdGV4cHIgdWlu
dDMyX3Qga01heENvZGVQb2ludDMgPSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEpIDw8ICg0ICsg
Mio2KSkgLSAxOwogCiAvLyBUaGUgbWF4aW11bSBjb2RlLXBvaW50IGEgZm91ci1ieXRlIFVURi04
IHNlcXVlbmNlIGNhbiByZXByZXNlbnQuCi1jb25zdCBVSW50MzIga01heENvZGVQb2ludDQgPSAo
c3RhdGljX2Nhc3Q8VUludDMyPigxKSA8PCAoMyArIDMqNikpIC0gMTsKK2NvbnN0ZXhwciB1aW50
MzJfdCBrTWF4Q29kZVBvaW50NCA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4oMSkgPDwgKDMgKyAz
KjYpKSAtIDE7CiAKIC8vIENob3BzIG9mZiB0aGUgbiBsb3dlc3QgYml0cyBmcm9tIGEgYml0IHBh
dHRlcm4uICBSZXR1cm5zIHRoZSBuCiAvLyBsb3dlc3QgYml0cy4gIEFzIGEgc2lkZSBlZmZlY3Qs
IHRoZSBvcmlnaW5hbCBiaXQgcGF0dGVybiB3aWxsIGJlCiAvLyBzaGlmdGVkIHRvIHRoZSByaWdo
dCBieSBuIGJpdHMuCi1pbmxpbmUgVUludDMyIENob3BMb3dCaXRzKFVJbnQzMiogYml0cywgaW50
IG4pIHsKLSAgY29uc3QgVUludDMyIGxvd19iaXRzID0gKmJpdHMgJiAoKHN0YXRpY19jYXN0PFVJ
bnQzMj4oMSkgPDwgbikgLSAxKTsKK2lubGluZSB1aW50MzJfdCBDaG9wTG93Qml0cyh1aW50MzJf
dCogYml0cywgaW50IG4pIHsKKyAgY29uc3QgdWludDMyX3QgbG93X2JpdHMgPSAqYml0cyAmICgo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KDEpIDw8IG4pIC0gMSk7CiAgICpiaXRzID4+PSBuOwogICBy
ZXR1cm4gbG93X2JpdHM7CiB9CiAKIC8vIENvbnZlcnRzIGEgVW5pY29kZSBjb2RlIHBvaW50IHRv
IGEgbmFycm93IHN0cmluZyBpbiBVVEYtOCBlbmNvZGluZy4KLS8vIGNvZGVfcG9pbnQgcGFyYW1l
dGVyIGlzIG9mIHR5cGUgVUludDMyIGJlY2F1c2Ugd2NoYXJfdCBtYXkgbm90IGJlCisvLyBjb2Rl
X3BvaW50IHBhcmFtZXRlciBpcyBvZiB0eXBlIHVpbnQzMl90IGJlY2F1c2Ugd2NoYXJfdCBtYXkg
bm90IGJlCiAvLyB3aWRlIGVub3VnaCB0byBjb250YWluIGEgY29kZSBwb2ludC4KIC8vIElmIHRo
ZSBjb2RlX3BvaW50IGlzIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludAogLy8gKGkuZS4g
b3V0c2lkZSBvZiBVbmljb2RlIHJhbmdlIFUrMCB0byBVKzEwRkZGRikgaXQgd2lsbCBiZSBjb252
ZXJ0ZWQKIC8vIHRvICIoSW52YWxpZCBVbmljb2RlIDB4WFhYWFhYWFgpIi4KLXN0ZDo6c3RyaW5n
IENvZGVQb2ludFRvVXRmOChVSW50MzIgY29kZV9wb2ludCkgeworc3RkOjpzdHJpbmcgQ29kZVBv
aW50VG9VdGY4KHVpbnQzMl90IGNvZGVfcG9pbnQpIHsKICAgaWYgKGNvZGVfcG9pbnQgPiBrTWF4
Q29kZVBvaW50NCkgewotICAgIHJldHVybiAiKEludmFsaWQgVW5pY29kZSAweCIgKyBTdHJpbmc6
OkZvcm1hdEhleEludChjb2RlX3BvaW50KSArICIpIjsKKyAgICByZXR1cm4gIihJbnZhbGlkIFVu
aWNvZGUgMHgiICsgU3RyaW5nOjpGb3JtYXRIZXhVSW50MzIoY29kZV9wb2ludCkgKyAiKSI7CiAg
IH0KIAogICBjaGFyIHN0cls1XTsgIC8vIEJpZyBlbm91Z2ggZm9yIHRoZSBsYXJnZXN0IHZhbGlk
IGNvZGUgcG9pbnQuCkBAIC0xODMxLDcgKzE5NTcsNyBAQCBzdGQ6OnN0cmluZyBDb2RlUG9pbnRU
b1V0ZjgoVUludDMyIGNvZGVfcG9pbnQpIHsKIAogLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rp
b25zIG9ubHkgbWFrZSBzZW5zZSBpZiB0aGUgc3lzdGVtCiAvLyB1c2VzIFVURi0xNiBmb3Igd2lk
ZSBzdHJpbmcgZW5jb2RpbmcuIEFsbCBzdXBwb3J0ZWQgc3lzdGVtcwotLy8gd2l0aCAxNiBiaXQg
d2NoYXJfdCAoV2luZG93cywgQ3lnd2luLCBTeW1iaWFuIE9TKSBkbyB1c2UgVVRGLTE2LgorLy8g
d2l0aCAxNiBiaXQgd2NoYXJfdCAoV2luZG93cywgQ3lnd2luKSBkbyB1c2UgVVRGLTE2LgogCiAv
LyBEZXRlcm1pbmVzIGlmIHRoZSBhcmd1bWVudHMgY29uc3RpdHV0ZSBVVEYtMTYgc3Vycm9nYXRl
IHBhaXIKIC8vIGFuZCB0aHVzIHNob3VsZCBiZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIFVuaWNv
ZGUgY29kZSBwb2ludApAQCAtMTg0MiwxOSArMTk2OCwyMiBAQCBpbmxpbmUgYm9vbCBJc1V0ZjE2
U3Vycm9nYXRlUGFpcih3Y2hhcl90IGZpcnN0LCB3Y2hhcl90IHNlY29uZCkgewogfQogCiAvLyBD
cmVhdGVzIGEgVW5pY29kZSBjb2RlIHBvaW50IGZyb20gVVRGMTYgc3Vycm9nYXRlIHBhaXIuCi1p
bmxpbmUgVUludDMyIENyZWF0ZUNvZGVQb2ludEZyb21VdGYxNlN1cnJvZ2F0ZVBhaXIod2NoYXJf
dCBmaXJzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3Y2hhcl90IHNlY29uZCkgewotICBjb25zdCBVSW50MzIgbWFzayA9ICgxIDw8IDEwKSAt
IDE7Ci0gIHJldHVybiAoc2l6ZW9mKHdjaGFyX3QpID09IDIpID8KLSAgICAgICgoKGZpcnN0ICYg
bWFzaykgPDwgMTApIHwgKHNlY29uZCAmIG1hc2spKSArIDB4MTAwMDAgOgotICAgICAgLy8gVGhp
cyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCB3aGVuIHRoZSBjb25kaXRpb24gaXMKLSAg
ICAgIC8vIGZhbHNlLCBidXQgd2UgcHJvdmlkZSBhIHNlbnNpYmxlIGRlZmF1bHQgaW4gY2FzZSBp
dCBpcy4KLSAgICAgIHN0YXRpY19jYXN0PFVJbnQzMj4oZmlyc3QpOworaW5saW5lIHVpbnQzMl90
IENyZWF0ZUNvZGVQb2ludEZyb21VdGYxNlN1cnJvZ2F0ZVBhaXIod2NoYXJfdCBmaXJzdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdjaGFy
X3Qgc2Vjb25kKSB7CisgIGNvbnN0IGF1dG8gZmlyc3RfdSA9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihmaXJzdCk7CisgIGNvbnN0IGF1dG8gc2Vjb25kX3UgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
c2Vjb25kKTsKKyAgY29uc3QgdWludDMyX3QgbWFzayA9ICgxIDw8IDEwKSAtIDE7CisgIHJldHVy
biAoc2l6ZW9mKHdjaGFyX3QpID09IDIpCisgICAgICAgICAgICAgPyAoKChmaXJzdF91ICYgbWFz
aykgPDwgMTApIHwgKHNlY29uZF91ICYgbWFzaykpICsgMHgxMDAwMAorICAgICAgICAgICAgIDoK
KyAgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4g
dGhlIGNvbmRpdGlvbiBpcworICAgICAgICAgICAgIC8vIGZhbHNlLCBidXQgd2UgcHJvdmlkZSBh
IHNlbnNpYmxlIGRlZmF1bHQgaW4gY2FzZSBpdCBpcy4KKyAgICAgICAgICAgICBmaXJzdF91Owog
fQogCiAvLyBDb252ZXJ0cyBhIHdpZGUgc3RyaW5nIHRvIGEgbmFycm93IHN0cmluZyBpbiBVVEYt
OCBlbmNvZGluZy4KIC8vIFRoZSB3aWRlIHN0cmluZyBpcyBhc3N1bWVkIHRvIGhhdmUgdGhlIGZv
bGxvd2luZyBlbmNvZGluZzoKLS8vICAgVVRGLTE2IGlmIHNpemVvZih3Y2hhcl90KSA9PSAyIChv
biBXaW5kb3dzLCBDeWd3aW4sIFN5bWJpYW4gT1MpCisvLyAgIFVURi0xNiBpZiBzaXplb2Yod2No
YXJfdCkgPT0gMiAob24gV2luZG93cywgQ3lnd2luKQogLy8gICBVVEYtMzIgaWYgc2l6ZW9mKHdj
aGFyX3QpID09IDQgKG9uIExpbnV4KQogLy8gUGFyYW1ldGVyIHN0ciBwb2ludHMgdG8gYSBudWxs
LXRlcm1pbmF0ZWQgd2lkZSBzdHJpbmcuCiAvLyBQYXJhbWV0ZXIgbnVtX2NoYXJzIG1heSBhZGRp
dGlvbmFsbHkgbGltaXQgdGhlIG51bWJlcgpAQCAtMTg3MSw3ICsyMDAwLDcgQEAgc3RkOjpzdHJp
bmcgV2lkZVN0cmluZ1RvVXRmOChjb25zdCB3Y2hhcl90KiBzdHIsIGludCBudW1fY2hhcnMpIHsK
IAogICA6OnN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCBu
dW1fY2hhcnM7ICsraSkgewotICAgIFVJbnQzMiB1bmljb2RlX2NvZGVfcG9pbnQ7CisgICAgdWlu
dDMyX3QgdW5pY29kZV9jb2RlX3BvaW50OwogCiAgICAgaWYgKHN0cltpXSA9PSBMJ1wwJykgewog
ICAgICAgYnJlYWs7CkBAIC0xODgwLDcgKzIwMDksNyBAQCBzdGQ6OnN0cmluZyBXaWRlU3RyaW5n
VG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwgaW50IG51bV9jaGFycykgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJb
aSArIDFdKTsKICAgICAgIGkrKzsKICAgICB9IGVsc2UgewotICAgICAgdW5pY29kZV9jb2RlX3Bv
aW50ID0gc3RhdGljX2Nhc3Q8VUludDMyPihzdHJbaV0pOworICAgICAgdW5pY29kZV9jb2RlX3Bv
aW50ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHN0cltpXSk7CiAgICAgfQogCiAgICAgc3RyZWFt
IDw8IENvZGVQb2ludFRvVXRmOCh1bmljb2RlX2NvZGVfcG9pbnQpOwpAQCAtMTg5MSwyMSArMjAy
MCwyMSBAQCBzdGQ6OnN0cmluZyBXaWRlU3RyaW5nVG9VdGY4KGNvbnN0IHdjaGFyX3QqIHN0ciwg
aW50IG51bV9jaGFycykgewogLy8gQ29udmVydHMgYSB3aWRlIEMgc3RyaW5nIHRvIGFuIHN0ZDo6
c3RyaW5nIHVzaW5nIHRoZSBVVEYtOCBlbmNvZGluZy4KIC8vIE5VTEwgd2lsbCBiZSBjb252ZXJ0
ZWQgdG8gIihudWxsKSIuCiBzdGQ6OnN0cmluZyBTdHJpbmc6OlNob3dXaWRlQ1N0cmluZyhjb25z
dCB3Y2hhcl90ICogd2lkZV9jX3N0cikgewotICBpZiAod2lkZV9jX3N0ciA9PSBOVUxMKSAgcmV0
dXJuICIobnVsbCkiOworICBpZiAod2lkZV9jX3N0ciA9PSBudWxscHRyKSByZXR1cm4gIihudWxs
KSI7CiAKICAgcmV0dXJuIGludGVybmFsOjpXaWRlU3RyaW5nVG9VdGY4KHdpZGVfY19zdHIsIC0x
KTsKIH0KIAotLy8gQ29tcGFyZXMgdHdvIHdpZGUgQyBzdHJpbmdzLiAgUmV0dXJucyB0cnVlIGlm
ZiB0aGV5IGhhdmUgdGhlIHNhbWUKLS8vIGNvbnRlbnQuCisvLyBDb21wYXJlcyB0d28gd2lkZSBD
IHN0cmluZ3MuICBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhleSBoYXZlIHRoZQorLy8g
c2FtZSBjb250ZW50LgogLy8KIC8vIFVubGlrZSB3Y3NjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4g
aGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBBIE5VTEwKIC8vIEMgc3RyaW5nIGlzIGNvbnNpZGVy
ZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVMTCBDIHN0cmluZywKIC8vIGluY2x1ZGluZyB0aGUg
ZW1wdHkgc3RyaW5nLgogYm9vbCBTdHJpbmc6OldpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFy
X3QgKiBsaHMsIGNvbnN0IHdjaGFyX3QgKiByaHMpIHsKLSAgaWYgKGxocyA9PSBOVUxMKSByZXR1
cm4gcmhzID09IE5VTEw7CisgIGlmIChsaHMgPT0gbnVsbHB0cikgcmV0dXJuIHJocyA9PSBudWxs
cHRyOwogCi0gIGlmIChyaHMgPT0gTlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAocmhzID09IG51
bGxwdHIpIHJldHVybiBmYWxzZTsKIAogICByZXR1cm4gd2NzY21wKGxocywgcmhzKSA9PSAwOwog
fQpAQCAtMTk0MSwzNyArMjA3MCwzNSBAQCBBc3NlcnRpb25SZXN1bHQgQ21wSGVscGVyU1RSTkUo
Y29uc3QgY2hhciogczFfZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAiIHZzICIgPDwgUHJpbnRUb1N0cmluZyhzMik7CiB9CiAKLS8vIENvbXBhcmVzIHR3byBDIHN0
cmluZ3MsIGlnbm9yaW5nIGNhc2UuICBSZXR1cm5zIHRydWUgaWZmIHRoZXkgaGF2ZQorLy8gQ29t
cGFyZXMgdHdvIEMgc3RyaW5ncywgaWdub3JpbmcgY2FzZS4gIFJldHVybnMgdHJ1ZSBpZiBhbmQg
b25seSBpZiB0aGV5IGhhdmUKIC8vIHRoZSBzYW1lIGNvbnRlbnQuCiAvLwogLy8gVW5saWtlIHN0
cmNhc2VjbXAoKSwgdGhpcyBmdW5jdGlvbiBjYW4gaGFuZGxlIE5VTEwgYXJndW1lbnQocykuICBB
CiAvLyBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFueSBub24tTlVM
TCBDIHN0cmluZywKIC8vIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgogYm9vbCBTdHJpbmc6
OkNhc2VJbnNlbnNpdGl2ZUNTdHJpbmdFcXVhbHMoY29uc3QgY2hhciAqIGxocywgY29uc3QgY2hh
ciAqIHJocykgewotICBpZiAobGhzID09IE5VTEwpCi0gICAgcmV0dXJuIHJocyA9PSBOVUxMOwot
ICBpZiAocmhzID09IE5VTEwpCi0gICAgcmV0dXJuIGZhbHNlOworICBpZiAobGhzID09IG51bGxw
dHIpIHJldHVybiByaHMgPT0gbnVsbHB0cjsKKyAgaWYgKHJocyA9PSBudWxscHRyKSByZXR1cm4g
ZmFsc2U7CiAgIHJldHVybiBwb3NpeDo6U3RyQ2FzZUNtcChsaHMsIHJocykgPT0gMDsKIH0KIAot
ICAvLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MsIGlnbm9yaW5nIGNhc2UuICBSZXR1cm5z
IHRydWUgaWZmIHRoZXkKLSAgLy8gaGF2ZSB0aGUgc2FtZSBjb250ZW50LgotICAvLwotICAvLyBV
bmxpa2Ugd2NzY2FzZWNtcCgpLCB0aGlzIGZ1bmN0aW9uIGNhbiBoYW5kbGUgTlVMTCBhcmd1bWVu
dChzKS4KLSAgLy8gQSBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRvIGFu
eSBub24tTlVMTCB3aWRlIEMgc3RyaW5nLAotICAvLyBpbmNsdWRpbmcgdGhlIGVtcHR5IHN0cmlu
Zy4KLSAgLy8gTkI6IFRoZSBpbXBsZW1lbnRhdGlvbnMgb24gZGlmZmVyZW50IHBsYXRmb3JtcyBz
bGlnaHRseSBkaWZmZXIuCi0gIC8vIE9uIHdpbmRvd3MsIHRoaXMgbWV0aG9kIHVzZXMgX3djc2lj
bXAgd2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFCi0gIC8vIGVudmlyb25tZW50
IHZhcmlhYmxlLiBPbiBHTlUgcGxhdGZvcm0gdGhpcyBtZXRob2QgdXNlcyB3Y3NjYXNlY21wCi0g
IC8vIHdoaWNoIGNvbXBhcmVzIGFjY29yZGluZyB0byBMQ19DVFlQRSBjYXRlZ29yeSBvZiB0aGUg
Y3VycmVudCBsb2NhbGUuCi0gIC8vIE9uIE1hY09TIFgsIGl0IHVzZXMgdG93bG93ZXIsIHdoaWNo
IGFsc28gdXNlcyBMQ19DVFlQRSBjYXRlZ29yeSBvZiB0aGUKLSAgLy8gY3VycmVudCBsb2NhbGUu
CisvLyBDb21wYXJlcyB0d28gd2lkZSBDIHN0cmluZ3MsIGlnbm9yaW5nIGNhc2UuICBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhleQorLy8gaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorLy8K
Ky8vIFVubGlrZSB3Y3NjYXNlY21wKCksIHRoaXMgZnVuY3Rpb24gY2FuIGhhbmRsZSBOVUxMIGFy
Z3VtZW50KHMpLgorLy8gQSBOVUxMIEMgc3RyaW5nIGlzIGNvbnNpZGVyZWQgZGlmZmVyZW50IHRv
IGFueSBub24tTlVMTCB3aWRlIEMgc3RyaW5nLAorLy8gaW5jbHVkaW5nIHRoZSBlbXB0eSBzdHJp
bmcuCisvLyBOQjogVGhlIGltcGxlbWVudGF0aW9ucyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zIHNs
aWdodGx5IGRpZmZlci4KKy8vIE9uIHdpbmRvd3MsIHRoaXMgbWV0aG9kIHVzZXMgX3djc2ljbXAg
d2hpY2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFCisvLyBlbnZpcm9ubWVudCB2YXJp
YWJsZS4gT24gR05VIHBsYXRmb3JtIHRoaXMgbWV0aG9kIHVzZXMgd2NzY2FzZWNtcAorLy8gd2hp
Y2ggY29tcGFyZXMgYWNjb3JkaW5nIHRvIExDX0NUWVBFIGNhdGVnb3J5IG9mIHRoZSBjdXJyZW50
IGxvY2FsZS4KKy8vIE9uIE1hY09TIFgsIGl0IHVzZXMgdG93bG93ZXIsIHdoaWNoIGFsc28gdXNl
cyBMQ19DVFlQRSBjYXRlZ29yeSBvZiB0aGUKKy8vIGN1cnJlbnQgbG9jYWxlLgogYm9vbCBTdHJp
bmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3RyaW5nRXF1YWxzKGNvbnN0IHdjaGFyX3QqIGxocywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3Y2hh
cl90KiByaHMpIHsKLSAgaWYgKGxocyA9PSBOVUxMKSByZXR1cm4gcmhzID09IE5VTEw7CisgIGlm
IChsaHMgPT0gbnVsbHB0cikgcmV0dXJuIHJocyA9PSBudWxscHRyOwogCi0gIGlmIChyaHMgPT0g
TlVMTCkgcmV0dXJuIGZhbHNlOworICBpZiAocmhzID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsK
IAogI2lmIEdURVNUX09TX1dJTkRPV1MKICAgcmV0dXJuIF93Y3NpY21wKGxocywgcmhzKSA9PSAw
OwpAQCAtMTk4MiwxNCArMjEwOSwxNCBAQCBib29sIFN0cmluZzo6Q2FzZUluc2Vuc2l0aXZlV2lk
ZUNTdHJpbmdFcXVhbHMoY29uc3Qgd2NoYXJfdCogbGhzLAogICAvLyBPdGhlciB1bmtub3duIE9T
ZXMgbWF5IG5vdCBkZWZpbmUgaXQgZWl0aGVyLgogICB3aW50X3QgbGVmdCwgcmlnaHQ7CiAgIGRv
IHsKLSAgICBsZWZ0ID0gdG93bG93ZXIoKmxocysrKTsKLSAgICByaWdodCA9IHRvd2xvd2VyKCpy
aHMrKyk7CisgICAgbGVmdCA9IHRvd2xvd2VyKHN0YXRpY19jYXN0PHdpbnRfdD4oKmxocysrKSk7
CisgICAgcmlnaHQgPSB0b3dsb3dlcihzdGF0aWNfY2FzdDx3aW50X3Q+KCpyaHMrKykpOwogICB9
IHdoaWxlIChsZWZ0ICYmIGxlZnQgPT0gcmlnaHQpOwogICByZXR1cm4gbGVmdCA9PSByaWdodDsK
ICNlbmRpZiAgLy8gT1Mgc2VsZWN0b3IKIH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiBzdHIgZW5k
cyB3aXRoIHRoZSBnaXZlbiBzdWZmaXgsIGlnbm9yaW5nIGNhc2UuCisvLyBSZXR1cm5zIHRydWUg
aWYgYW5kIG9ubHkgaWYgc3RyIGVuZHMgd2l0aCB0aGUgZ2l2ZW4gc3VmZml4LCBpZ25vcmluZyBj
YXNlLgogLy8gQW55IHN0cmluZyBpcyBjb25zaWRlcmVkIHRvIGVuZCB3aXRoIGFuIGVtcHR5IHN1
ZmZpeC4KIGJvb2wgU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSgKICAgICBjb25zdCBz
dGQ6OnN0cmluZyYgc3RyLCBjb25zdCBzdGQ6OnN0cmluZyYgc3VmZml4KSB7CkBAIC0yMDAyLDE4
ICsyMTI5LDI4IEBAIGJvb2wgU3RyaW5nOjpFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSgKIAogLy8g
Rm9ybWF0cyBhbiBpbnQgdmFsdWUgYXMgIiUwMmQiLgogc3RkOjpzdHJpbmcgU3RyaW5nOjpGb3Jt
YXRJbnRXaWR0aDIoaW50IHZhbHVlKSB7CisgIHJldHVybiBGb3JtYXRJbnRXaWR0aE4odmFsdWUs
IDIpOworfQorCisvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSB0byBnaXZlbiB3aWR0aCB3aXRoIGxl
YWRpbmcgemVyb3MuCitzdGQ6OnN0cmluZyBTdHJpbmc6OkZvcm1hdEludFdpZHRoTihpbnQgdmFs
dWUsIGludCB3aWR0aCkgewogICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLSAgc3MgPDwgc3RkOjpz
ZXRmaWxsKCcwJykgPDwgc3RkOjpzZXR3KDIpIDw8IHZhbHVlOworICBzcyA8PCBzdGQ6OnNldGZp
bGwoJzAnKSA8PCBzdGQ6OnNldHcod2lkdGgpIDw8IHZhbHVlOwogICByZXR1cm4gc3Muc3RyKCk7
CiB9CiAKIC8vIEZvcm1hdHMgYW4gaW50IHZhbHVlIGFzICIlWCIuCi1zdGQ6OnN0cmluZyBTdHJp
bmc6OkZvcm1hdEhleEludChpbnQgdmFsdWUpIHsKK3N0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0
SGV4VUludDMyKHVpbnQzMl90IHZhbHVlKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwogICBz
cyA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCB2YWx1ZTsKICAgcmV0dXJuIHNzLnN0
cigpOwogfQogCisvLyBGb3JtYXRzIGFuIGludCB2YWx1ZSBhcyAiJVgiLgorc3RkOjpzdHJpbmcg
U3RyaW5nOjpGb3JtYXRIZXhJbnQoaW50IHZhbHVlKSB7CisgIHJldHVybiBGb3JtYXRIZXhVSW50
MzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlKSk7Cit9CisKIC8vIEZvcm1hdHMgYSBieXRl
IGFzICIlMDJYIi4KIHN0ZDo6c3RyaW5nIFN0cmluZzo6Rm9ybWF0Qnl0ZSh1bnNpZ25lZCBjaGFy
IHZhbHVlKSB7CiAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwpAQCAtMjAzMCw3ICsyMTY3LDcgQEAg
c3RkOjpzdHJpbmcgU3RyaW5nU3RyZWFtVG9TdHJpbmcoOjpzdGQ6OnN0cmluZ3N0cmVhbSogc3Mp
IHsKICAgY29uc3QgY2hhciogY29uc3QgZW5kID0gc3RhcnQgKyBzdHIubGVuZ3RoKCk7CiAKICAg
c3RkOjpzdHJpbmcgcmVzdWx0OwotICByZXN1bHQucmVzZXJ2ZSgyICogKGVuZCAtIHN0YXJ0KSk7
CisgIHJlc3VsdC5yZXNlcnZlKHN0YXRpY19jYXN0PHNpemVfdD4oMiAqIChlbmQgLSBzdGFydCkp
KTsKICAgZm9yIChjb25zdCBjaGFyKiBjaCA9IHN0YXJ0OyBjaCAhPSBlbmQ7ICsrY2gpIHsKICAg
ICBpZiAoKmNoID09ICdcMCcpIHsKICAgICAgIHJlc3VsdCArPSAiXFwwIjsgIC8vIFJlcGxhY2Vz
IE5VTCB3aXRoICJcXDAiOwpAQCAtMjA1MCw3ICsyMTg3LDkgQEAgc3RkOjpzdHJpbmcgQXBwZW5k
VXNlck1lc3NhZ2UoY29uc3Qgc3RkOjpzdHJpbmcmIGd0ZXN0X21zZywKICAgaWYgKHVzZXJfbXNn
X3N0cmluZy5lbXB0eSgpKSB7CiAgICAgcmV0dXJuIGd0ZXN0X21zZzsKICAgfQotCisgIGlmIChn
dGVzdF9tc2cuZW1wdHkoKSkgeworICAgIHJldHVybiB1c2VyX21zZ19zdHJpbmc7CisgIH0KICAg
cmV0dXJuIGd0ZXN0X21zZyArICJcbiIgKyB1c2VyX21zZ19zdHJpbmc7CiB9CiAKQEAgLTIwNjAs
OSArMjE5OSw3IEBAIHN0ZDo6c3RyaW5nIEFwcGVuZFVzZXJNZXNzYWdlKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBndGVzdF9tc2csCiAKIC8vIENyZWF0ZXMgYW4gZW1wdHkgVGVzdFJlc3VsdC4KIFRlc3RS
ZXN1bHQ6OlRlc3RSZXN1bHQoKQotICAgIDogZGVhdGhfdGVzdF9jb3VudF8oMCksCi0gICAgICBl
bGFwc2VkX3RpbWVfKDApIHsKLX0KKyAgICA6IGRlYXRoX3Rlc3RfY291bnRfKDApLCBzdGFydF90
aW1lc3RhbXBfKDApLCBlbGFwc2VkX3RpbWVfKDApIHt9CiAKIC8vIEQndG9yLgogVGVzdFJlc3Vs
dDo6flRlc3RSZXN1bHQoKSB7CkBAIC0yMDc0LDcgKzIyMTEsNyBAQCBUZXN0UmVzdWx0Ojp+VGVz
dFJlc3VsdCgpIHsKIGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiBUZXN0UmVzdWx0OjpHZXRUZXN0UGFy
dFJlc3VsdChpbnQgaSkgY29uc3QgewogICBpZiAoaSA8IDAgfHwgaSA+PSB0b3RhbF9wYXJ0X2Nv
dW50KCkpCiAgICAgaW50ZXJuYWw6OnBvc2l4OjpBYm9ydCgpOwotICByZXR1cm4gdGVzdF9wYXJ0
X3Jlc3VsdHNfLmF0KGkpOworICByZXR1cm4gdGVzdF9wYXJ0X3Jlc3VsdHNfLmF0KHN0YXRpY19j
YXN0PHNpemVfdD4oaSkpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgcHJvcGVydHku
IGkgY2FuIHJhbmdlIGZyb20gMCB0bwpAQCAtMjA4Myw3ICsyMjIwLDcgQEAgY29uc3QgVGVzdFBh
cnRSZXN1bHQmIFRlc3RSZXN1bHQ6OkdldFRlc3RQYXJ0UmVzdWx0KGludCBpKSBjb25zdCB7CiBj
b25zdCBUZXN0UHJvcGVydHkmIFRlc3RSZXN1bHQ6OkdldFRlc3RQcm9wZXJ0eShpbnQgaSkgY29u
c3QgewogICBpZiAoaSA8IDAgfHwgaSA+PSB0ZXN0X3Byb3BlcnR5X2NvdW50KCkpCiAgICAgaW50
ZXJuYWw6OnBvc2l4OjpBYm9ydCgpOwotICByZXR1cm4gdGVzdF9wcm9wZXJ0aWVzXy5hdChpKTsK
KyAgcmV0dXJuIHRlc3RfcHJvcGVydGllc18uYXQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpKSk7CiB9
CiAKIC8vIENsZWFycyB0aGUgdGVzdCBwYXJ0IHJlc3VsdHMuCkBAIC0yMTMxLDIwICsyMjY4LDIx
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBrUmVzZXJ2ZWRUZXN0U3VpdGVzQXR0cmlidXRl
c1tdID0gewogLy8gVGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgYXR0cmlidXRlcyB1c2VkIGluIHRoZSA8
dGVzdHN1aXRlPiBlbGVtZW50IG9mIFhNTAogLy8gb3V0cHV0Lgogc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IGtSZXNlcnZlZFRlc3RTdWl0ZUF0dHJpYnV0ZXNbXSA9IHsKLSAgImRpc2FibGVkIiwK
LSAgImVycm9ycyIsCi0gICJmYWlsdXJlcyIsCi0gICJuYW1lIiwKLSAgInRlc3RzIiwKLSAgInRp
bWUiCi19OworICAgICJkaXNhYmxlZCIsICJlcnJvcnMiLCAiZmFpbHVyZXMiLCAgIm5hbWUiLAor
ICAgICJ0ZXN0cyIsICAgICJ0aW1lIiwgICAidGltZXN0YW1wIiwgInNraXBwZWQifTsKIAogLy8g
VGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgYXR0cmlidXRlcyB1c2VkIGluIHRoZSA8dGVzdGNhc2U+IGVs
ZW1lbnQgb2YgWE1MIG91dHB1dC4KIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBrUmVzZXJ2ZWRU
ZXN0Q2FzZUF0dHJpYnV0ZXNbXSA9IHsKLSAgICAiY2xhc3NuYW1lIiwgICJuYW1lIiwgICAgICAg
ICJzdGF0dXMiLCAidGltZSIsCi0gICAgInR5cGVfcGFyYW0iLCAidmFsdWVfcGFyYW0iLCAiZmls
ZSIsICAgImxpbmUifTsKKyAgICAiY2xhc3NuYW1lIiwgICAibmFtZSIsICJzdGF0dXMiLCAidGlt
ZSIsICAidHlwZV9wYXJhbSIsCisgICAgInZhbHVlX3BhcmFtIiwgImZpbGUiLCAibGluZSJ9Owog
Ci10ZW1wbGF0ZSA8aW50IGtTaXplPgorLy8gVXNlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHNldCBm
b3IgYWxsb3dlZCBvdXRwdXQgdG8gZW5zdXJlIGV4aXN0aW5nIHRlc3RzIGNhbgorLy8gc3RpbGwg
UmVjb3JkUHJvcGVydHkoInJlc3VsdCIpIG9yICJSZWNvcmRQcm9wZXJ0eSh0aW1lc3RhbXAiKQor
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtSZXNlcnZlZE91dHB1dFRlc3RDYXNlQXR0cmlidXRl
c1tdID0geworICAgICJjbGFzc25hbWUiLCAgICJuYW1lIiwgInN0YXR1cyIsICJ0aW1lIiwgICAi
dHlwZV9wYXJhbSIsCisgICAgInZhbHVlX3BhcmFtIiwgImZpbGUiLCAibGluZSIsICAgInJlc3Vs
dCIsICJ0aW1lc3RhbXAifTsKKwordGVtcGxhdGUgPHNpemVfdCBrU2l6ZT4KIHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiBBcnJheUFzVmVjdG9yKGNvbnN0IGNoYXIqIGNvbnN0ICgmYXJyYXkpW2tT
aXplXSkgewogICByZXR1cm4gc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+KGFycmF5LCBhcnJheSAr
IGtTaXplKTsKIH0KQEAgLTIxNjQsNiArMjMwMiwyMiBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8c3Rk
OjpzdHJpbmc+IEdldFJlc2VydmVkQXR0cmlidXRlc0ZvckVsZW1lbnQoCiAgIHJldHVybiBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4oKTsKIH0KIAorLy8gVE9ETyhqZGVzcHJleik6IE1lcmdlIHRo
ZSB0d28gZ2V0UmVzZXJ2ZWQgYXR0cmlidXRlcyBvbmNlIHNraXAgaXMgaW1wcm92ZWQKK3N0YXRp
YyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gR2V0UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVzRm9y
RWxlbWVudCgKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgeG1sX2VsZW1lbnQpIHsKKyAgaWYgKHht
bF9lbGVtZW50ID09ICJ0ZXN0c3VpdGVzIikgeworICAgIHJldHVybiBBcnJheUFzVmVjdG9yKGtS
ZXNlcnZlZFRlc3RTdWl0ZXNBdHRyaWJ1dGVzKTsKKyAgfSBlbHNlIGlmICh4bWxfZWxlbWVudCA9
PSAidGVzdHN1aXRlIikgeworICAgIHJldHVybiBBcnJheUFzVmVjdG9yKGtSZXNlcnZlZFRlc3RT
dWl0ZUF0dHJpYnV0ZXMpOworICB9IGVsc2UgaWYgKHhtbF9lbGVtZW50ID09ICJ0ZXN0Y2FzZSIp
IHsKKyAgICByZXR1cm4gQXJyYXlBc1ZlY3RvcihrUmVzZXJ2ZWRPdXRwdXRUZXN0Q2FzZUF0dHJp
YnV0ZXMpOworICB9IGVsc2UgeworICAgIEdURVNUX0NIRUNLXyhmYWxzZSkgPDwgIlVucmVjb2du
aXplZCB4bWxfZWxlbWVudCBwcm92aWRlZDogIiA8PCB4bWxfZWxlbWVudDsKKyAgfQorICAvLyBU
aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgYnV0IHNvbWUgY29tcGlsZXJzIG1heSBub3QgcmVhbGl6
ZXMgdGhhdC4KKyAgcmV0dXJuIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPigpOworfQorCiBzdGF0
aWMgc3RkOjpzdHJpbmcgRm9ybWF0V29yZExpc3QoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+JiB3b3JkcykgewogICBNZXNzYWdlIHdvcmRfbGlzdDsKICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3b3Jkcy5zaXplKCk7ICsraSkgewpAQCAtMjIwNyw3ICsyMzYxLDE3IEBAIHZvaWQgVGVz
dFJlc3VsdDo6Q2xlYXIoKSB7CiAgIGVsYXBzZWRfdGltZV8gPSAwOwogfQogCi0vLyBSZXR1cm5z
IHRydWUgaWZmIHRoZSB0ZXN0IGZhaWxlZC4KKy8vIFJldHVybnMgdHJ1ZSBvZmYgdGhlIHRlc3Qg
cGFydCB3YXMgc2tpcHBlZC4KK3N0YXRpYyBib29sIFRlc3RQYXJ0U2tpcHBlZChjb25zdCBUZXN0
UGFydFJlc3VsdCYgcmVzdWx0KSB7CisgIHJldHVybiByZXN1bHQuc2tpcHBlZCgpOworfQorCisv
LyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3Qgd2FzIHNraXBwZWQuCitib29s
IFRlc3RSZXN1bHQ6OlNraXBwZWQoKSBjb25zdCB7CisgIHJldHVybiAhRmFpbGVkKCkgJiYgQ291
bnRJZih0ZXN0X3BhcnRfcmVzdWx0c18sIFRlc3RQYXJ0U2tpcHBlZCkgPiAwOworfQorCisvLyBS
ZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZmFpbGVkLgogYm9vbCBUZXN0UmVz
dWx0OjpGYWlsZWQoKSBjb25zdCB7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxfcGFydF9j
b3VudCgpOyArK2kpIHsKICAgICBpZiAoR2V0VGVzdFBhcnRSZXN1bHQoaSkuZmFpbGVkKCkpCkBA
IC0yMjE2LDIyICsyMzgwLDIyIEBAIGJvb2wgVGVzdFJlc3VsdDo6RmFpbGVkKCkgY29uc3Qgewog
ICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBm
YXRhbGx5IGZhaWxlZC4KKy8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBw
YXJ0IGZhdGFsbHkgZmFpbGVkLgogc3RhdGljIGJvb2wgVGVzdFBhcnRGYXRhbGx5RmFpbGVkKGNv
bnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIHsKICAgcmV0dXJuIHJlc3VsdC5mYXRhbGx5X2Zh
aWxlZCgpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IGZhdGFsbHkgZmFpbGVk
LgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0IGZhdGFsbHkgZmFpbGVk
LgogYm9vbCBUZXN0UmVzdWx0OjpIYXNGYXRhbEZhaWx1cmUoKSBjb25zdCB7CiAgIHJldHVybiBD
b3VudElmKHRlc3RfcGFydF9yZXN1bHRzXywgVGVzdFBhcnRGYXRhbGx5RmFpbGVkKSA+IDA7CiB9
CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgcGFydCBub24tZmF0YWxseSBmYWlsZWQu
CisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgcGFydCBub24tZmF0YWxs
eSBmYWlsZWQuCiBzdGF0aWMgYm9vbCBUZXN0UGFydE5vbmZhdGFsbHlGYWlsZWQoY29uc3QgVGVz
dFBhcnRSZXN1bHQmIHJlc3VsdCkgewogICByZXR1cm4gcmVzdWx0Lm5vbmZhdGFsbHlfZmFpbGVk
KCk7CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHRlc3QgaGFzIGEgbm9uLWZhdGFsIGZh
aWx1cmUuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgaGFzIGEgbm9u
LWZhdGFsIGZhaWx1cmUuCiBib29sIFRlc3RSZXN1bHQ6Okhhc05vbmZhdGFsRmFpbHVyZSgpIGNv
bnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9wYXJ0X3Jlc3VsdHNfLCBUZXN0UGFydE5vbmZh
dGFsbHlGYWlsZWQpID4gMDsKIH0KQEAgLTIyOTQsMjUgKzI0NTgsMjUgQEAgdm9pZCBSZXBvcnRG
YWlsdXJlSW5Vbmtub3duTG9jYXRpb24oVGVzdFBhcnRSZXN1bHQ6OlR5cGUgcmVzdWx0X3R5cGUs
CiAgIC8vIEFkZFRlc3RQYXJ0UmVzdWx0LgogICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+QWRk
VGVzdFBhcnRSZXN1bHQoCiAgICAgICByZXN1bHRfdHlwZSwKLSAgICAgIE5VTEwsICAvLyBObyBp
bmZvIGFib3V0IHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgZXhjZXB0aW9uIG9jY3VycmVkLgot
ICAgICAgLTEsICAgIC8vIFdlIGhhdmUgbm8gaW5mbyBvbiB3aGljaCBsaW5lIGNhdXNlZCB0aGUg
ZXhjZXB0aW9uLgorICAgICAgbnVsbHB0ciwgIC8vIE5vIGluZm8gYWJvdXQgdGhlIHNvdXJjZSBm
aWxlIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuCisgICAgICAtMSwgICAgICAgLy8gV2Ug
aGF2ZSBubyBpbmZvIG9uIHdoaWNoIGxpbmUgY2F1c2VkIHRoZSBleGNlcHRpb24uCiAgICAgICBt
ZXNzYWdlLAotICAgICAgIiIpOyAgIC8vIE5vIHN0YWNrIHRyYWNlLCBlaXRoZXIuCisgICAgICAi
Iik7ICAvLyBObyBzdGFjayB0cmFjZSwgZWl0aGVyLgogfQogCiB9ICAvLyBuYW1lc3BhY2UgaW50
ZXJuYWwKIAotLy8gR29vZ2xlIFRlc3QgcmVxdWlyZXMgYWxsIHRlc3RzIGluIHRoZSBzYW1lIHRl
c3QgY2FzZSB0byB1c2UgdGhlIHNhbWUgdGVzdAorLy8gR29vZ2xlIFRlc3QgcmVxdWlyZXMgYWxs
IHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgdG8gdXNlIHRoZSBzYW1lIHRlc3QKIC8vIGZp
eHR1cmUgY2xhc3MuICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgY3VycmVudCB0ZXN0IGhh
cyB0aGUKLS8vIHNhbWUgZml4dHVyZSBjbGFzcyBhcyB0aGUgZmlyc3QgdGVzdCBpbiB0aGUgY3Vy
cmVudCB0ZXN0IGNhc2UuICBJZgorLy8gc2FtZSBmaXh0dXJlIGNsYXNzIGFzIHRoZSBmaXJzdCB0
ZXN0IGluIHRoZSBjdXJyZW50IHRlc3Qgc3VpdGUuICBJZgogLy8geWVzLCBpdCByZXR1cm5zIHRy
dWU7IG90aGVyd2lzZSBpdCBnZW5lcmF0ZXMgYSBHb29nbGUgVGVzdCBmYWlsdXJlIGFuZAogLy8g
cmV0dXJucyBmYWxzZS4KIGJvb2wgVGVzdDo6SGFzU2FtZUZpeHR1cmVDbGFzcygpIHsKICAgaW50
ZXJuYWw6OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdElt
cGwoKTsKLSAgY29uc3QgVGVzdENhc2UqIGNvbnN0IHRlc3RfY2FzZSA9IGltcGwtPmN1cnJlbnRf
dGVzdF9jYXNlKCk7CisgIGNvbnN0IFRlc3RTdWl0ZSogY29uc3QgdGVzdF9zdWl0ZSA9IGltcGwt
PmN1cnJlbnRfdGVzdF9zdWl0ZSgpOwogCi0gIC8vIEluZm8gYWJvdXQgdGhlIGZpcnN0IHRlc3Qg
aW4gdGhlIGN1cnJlbnQgdGVzdCBjYXNlLgotICBjb25zdCBUZXN0SW5mbyogY29uc3QgZmlyc3Rf
dGVzdF9pbmZvID0gdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpWzBdOworICAvLyBJbmZvIGFi
b3V0IHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHRlc3Qgc3VpdGUuCisgIGNvbnN0IFRl
c3RJbmZvKiBjb25zdCBmaXJzdF90ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT50ZXN0X2luZm9fbGlz
dCgpWzBdOwogICBjb25zdCBpbnRlcm5hbDo6VHlwZUlkIGZpcnN0X2ZpeHR1cmVfaWQgPSBmaXJz
dF90ZXN0X2luZm8tPmZpeHR1cmVfY2xhc3NfaWRfOwogICBjb25zdCBjaGFyKiBjb25zdCBmaXJz
dF90ZXN0X25hbWUgPSBmaXJzdF90ZXN0X2luZm8tPm5hbWUoKTsKIApAQCAtMjMyOCw3ICsyNDky
LDcgQEAgYm9vbCBUZXN0OjpIYXNTYW1lRml4dHVyZUNsYXNzKCkgewogICAgIGNvbnN0IGJvb2wg
dGhpc19pc19URVNUID0gdGhpc19maXh0dXJlX2lkID09IGludGVybmFsOjpHZXRUZXN0VHlwZUlk
KCk7CiAKICAgICBpZiAoZmlyc3RfaXNfVEVTVCB8fCB0aGlzX2lzX1RFU1QpIHsKLSAgICAgIC8v
IEJvdGggVEVTVCBhbmQgVEVTVF9GIGFwcGVhciBpbiBzYW1lIHRlc3QgY2FzZSwgd2hpY2ggaXMg
aW5jb3JyZWN0LgorICAgICAgLy8gQm90aCBURVNUIGFuZCBURVNUX0YgYXBwZWFyIGluIHNhbWUg
dGVzdCBzdWl0ZSwgd2hpY2ggaXMgaW5jb3JyZWN0LgogICAgICAgLy8gVGVsbCB0aGUgdXNlciBo
b3cgdG8gZml4IHRoaXMuCiAKICAgICAgIC8vIEdldHMgdGhlIG5hbWUgb2YgdGhlIFRFU1QgYW5k
IHRoZSBuYW1lIG9mIHRoZSBURVNUX0YuICBOb3RlCkBAIC0yMzQwLDkgKzI1MDQsOSBAQCBib29s
IFRlc3Q6Okhhc1NhbWVGaXh0dXJlQ2xhc3MoKSB7CiAgICAgICAgICAgZmlyc3RfaXNfVEVTVCA/
IHRoaXNfdGVzdF9uYW1lIDogZmlyc3RfdGVzdF9uYW1lOwogCiAgICAgICBBRERfRkFJTFVSRSgp
Ci0gICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IGNhc2UgbXVzdCB1c2Ug
dGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICAgICAgPDwgImNsYXNzLCBzbyBtaXhpbmcg
VEVTVF9GIGFuZCBURVNUIGluIHRoZSBzYW1lIHRlc3QgY2FzZSBpc1xuIgotICAgICAgICAgIDw8
ICJpbGxlZ2FsLiAgSW4gdGVzdCBjYXNlICIgPDwgdGhpc190ZXN0X2luZm8tPnRlc3RfY2FzZV9u
YW1lKCkKKyAgICAgICAgICA8PCAiQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgbXVz
dCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCisgICAgICAgICAgPDwgImNsYXNzLCBzbyBt
aXhpbmcgVEVTVF9GIGFuZCBURVNUIGluIHRoZSBzYW1lIHRlc3Qgc3VpdGUgaXNcbiIKKyAgICAg
ICAgICA8PCAiaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgIiA8PCB0aGlzX3Rlc3RfaW5mby0+dGVz
dF9zdWl0ZV9uYW1lKCkKICAgICAgICAgICA8PCAiLFxuIgogICAgICAgICAgIDw8ICJ0ZXN0ICIg
PDwgVEVTVF9GX25hbWUgPDwgIiBpcyBkZWZpbmVkIHVzaW5nIFRFU1RfRiBidXRcbiIKICAgICAg
ICAgICA8PCAidGVzdCAiIDw8IFRFU1RfbmFtZSA8PCAiIGlzIGRlZmluZWQgdXNpbmcgVEVTVC4g
IFlvdSBwcm9iYWJseVxuIgpAQCAtMjM1MiwxNSArMjUxNiwxNSBAQCBib29sIFRlc3Q6Okhhc1Nh
bWVGaXh0dXJlQ2xhc3MoKSB7CiAgICAgICAvLyBUd28gZml4dHVyZSBjbGFzc2VzIHdpdGggdGhl
IHNhbWUgbmFtZSBhcHBlYXIgaW4gdHdvIGRpZmZlcmVudAogICAgICAgLy8gbmFtZXNwYWNlcywg
d2hpY2ggaXMgbm90IGFsbG93ZWQuIFRlbGwgdGhlIHVzZXIgaG93IHRvIGZpeCB0aGlzLgogICAg
ICAgQUREX0ZBSUxVUkUoKQotICAgICAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVz
dCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgotICAgICAgICAgIDw8ICJj
bGFzcy4gIEhvd2V2ZXIsIGluIHRlc3QgY2FzZSAiCi0gICAgICAgICAgPDwgdGhpc190ZXN0X2lu
Zm8tPnRlc3RfY2FzZV9uYW1lKCkgPDwgIixcbiIKLSAgICAgICAgICA8PCAieW91IGRlZmluZWQg
dGVzdCAiIDw8IGZpcnN0X3Rlc3RfbmFtZQotICAgICAgICAgIDw8ICIgYW5kIHRlc3QgIiA8PCB0
aGlzX3Rlc3RfbmFtZSA8PCAiXG4iCisgICAgICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2Ft
ZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZVxuIgorICAgICAgICAg
IDw8ICJjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qgc3VpdGUgIgorICAgICAgICAgIDw8IHRoaXNf
dGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSA8PCAiLFxuIgorICAgICAgICAgIDw8ICJ5b3Ug
ZGVmaW5lZCB0ZXN0ICIgPDwgZmlyc3RfdGVzdF9uYW1lIDw8ICIgYW5kIHRlc3QgIgorICAgICAg
ICAgIDw8IHRoaXNfdGVzdF9uYW1lIDw8ICJcbiIKICAgICAgICAgICA8PCAidXNpbmcgdHdvIGRp
ZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMgY2FuIGhhcHBlbiBpZlxuIgogICAg
ICAgICAgIDw8ICJ0aGUgdHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMg
b3IgdHJhbnNsYXRpb25cbiIKICAgICAgICAgICA8PCAidW5pdHMgYW5kIGhhdmUgdGhlIHNhbWUg
bmFtZS4gIFlvdSBzaG91bGQgcHJvYmFibHkgcmVuYW1lIG9uZVxuIgotICAgICAgICAgIDw8ICJv
ZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50IHRlc3QgY2FzZXMu
IjsKKyAgICAgICAgICA8PCAib2YgdGhlIGNsYXNzZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRp
ZmZlcmVudCB0ZXN0IHN1aXRlcy4iOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiAgIH0KQEAg
LTIzOTMsNyArMjU1Nyw3IEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiBzdGF0aWMgc3RkOjpzdHJp
bmcgRm9ybWF0Q3h4RXhjZXB0aW9uTWVzc2FnZShjb25zdCBjaGFyKiBkZXNjcmlwdGlvbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGxv
Y2F0aW9uKSB7CiAgIE1lc3NhZ2UgbWVzc2FnZTsKLSAgaWYgKGRlc2NyaXB0aW9uICE9IE5VTEwp
IHsKKyAgaWYgKGRlc2NyaXB0aW9uICE9IG51bGxwdHIpIHsKICAgICBtZXNzYWdlIDw8ICJDKysg
ZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gXCIiIDw8IGRlc2NyaXB0aW9uIDw8ICJcIiI7CiAg
IH0gZWxzZSB7CiAgICAgbWVzc2FnZSA8PCAiVW5rbm93biBDKysgZXhjZXB0aW9uIjsKQEAgLTI0
OTEsNyArMjY1NSw3IEBAIFJlc3VsdCBIYW5kbGVFeGNlcHRpb25zSW5NZXRob2RJZlN1cHBvcnRl
ZCgKICAgICB9IGNhdGNoICguLi4pIHsgIC8vIE5PTElOVAogICAgICAgaW50ZXJuYWw6OlJlcG9y
dEZhaWx1cmVJblVua25vd25Mb2NhdGlvbigKICAgICAgICAgICBUZXN0UGFydFJlc3VsdDo6a0Zh
dGFsRmFpbHVyZSwKLSAgICAgICAgICBGb3JtYXRDeHhFeGNlcHRpb25NZXNzYWdlKE5VTEwsIGxv
Y2F0aW9uKSk7CisgICAgICAgICAgRm9ybWF0Q3h4RXhjZXB0aW9uTWVzc2FnZShudWxscHRyLCBs
b2NhdGlvbikpOwogICAgIH0KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzdWx0PigwKTsKICNl
bHNlCkBAIC0yNTExLDggKzI2NzUsOSBAQCB2b2lkIFRlc3Q6OlJ1bigpIHsKICAgaW50ZXJuYWw6
OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKTsK
ICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKICAg
aW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkKHRoaXMsICZUZXN0
OjpTZXRVcCwgIlNldFVwKCkiKTsKLSAgLy8gV2Ugd2lsbCBydW4gdGhlIHRlc3Qgb25seSBpZiBT
ZXRVcCgpIHdhcyBzdWNjZXNzZnVsLgotICBpZiAoIUhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgIC8v
IFdlIHdpbGwgcnVuIHRoZSB0ZXN0IG9ubHkgaWYgU2V0VXAoKSB3YXMgc3VjY2Vzc2Z1bCBhbmQg
ZGlkbid0IGNhbGwKKyAgLy8gR1RFU1RfU0tJUCgpLgorICBpZiAoIUhhc0ZhdGFsRmFpbHVyZSgp
ICYmICFJc1NraXBwZWQoKSkgewogICAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5V
cG9uTGVhdmluZ0dUZXN0KCk7CiAgICAgaW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhv
ZElmU3VwcG9ydGVkKAogICAgICAgICB0aGlzLCAmVGVzdDo6VGVzdEJvZHksICJ0aGUgdGVzdCBi
b2R5Iik7CkBAIC0yNTI2LDM3ICsyNjkxLDQyIEBAIHZvaWQgVGVzdDo6UnVuKCkgewogICAgICAg
dGhpcywgJlRlc3Q6OlRlYXJEb3duLCAiVGVhckRvd24oKSIpOwogfQogCi0vLyBSZXR1cm5zIHRy
dWUgaWZmIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEgZmF0YWwgZmFpbHVyZS4KKy8vIFJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIGZhdGFsIGZhaWx1cmUu
CiBib29sIFRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpIHsKICAgcmV0dXJuIGludGVybmFsOjpHZXRV
bml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0X3Jlc3VsdCgpLT5IYXNGYXRhbEZhaWx1cmUoKTsK
IH0KIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgY3VycmVudCB0ZXN0IGhhcyBhIG5vbi1mYXRh
bCBmYWlsdXJlLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJyZW50IHRl
c3QgaGFzIGEgbm9uLWZhdGFsIGZhaWx1cmUuCiBib29sIFRlc3Q6Okhhc05vbmZhdGFsRmFpbHVy
ZSgpIHsKICAgcmV0dXJuIGludGVybmFsOjpHZXRVbml0VGVzdEltcGwoKS0+Y3VycmVudF90ZXN0
X3Jlc3VsdCgpLT4KICAgICAgIEhhc05vbmZhdGFsRmFpbHVyZSgpOwogfQogCisvLyBSZXR1cm5z
IHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cnJlbnQgdGVzdCB3YXMgc2tpcHBlZC4KK2Jvb2wg
VGVzdDo6SXNTa2lwcGVkKCkgeworICByZXR1cm4gaW50ZXJuYWw6OkdldFVuaXRUZXN0SW1wbCgp
LT5jdXJyZW50X3Rlc3RfcmVzdWx0KCktPlNraXBwZWQoKTsKK30KKwogLy8gY2xhc3MgVGVzdElu
Zm8KIAogLy8gQ29uc3RydWN0cyBhIFRlc3RJbmZvIG9iamVjdC4gSXQgYXNzdW1lcyBvd25lcnNo
aXAgb2YgdGhlIHRlc3QgZmFjdG9yeQogLy8gb2JqZWN0LgotVGVzdEluZm86OlRlc3RJbmZvKGNv
bnN0IHN0ZDo6c3RyaW5nJiBhX3Rlc3RfY2FzZV9uYW1lLAotICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0ZDo6c3RyaW5nJiBhX25hbWUsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
YV90eXBlX3BhcmFtLAorVGVzdEluZm86OlRlc3RJbmZvKGNvbnN0IHN0ZDo6c3RyaW5nJiBhX3Rl
c3Rfc3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgYV9u
YW1lLCBjb25zdCBjaGFyKiBhX3R5cGVfcGFyYW0sCiAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogYV92YWx1ZV9wYXJhbSwKICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6Q29kZUxv
Y2F0aW9uIGFfY29kZV9sb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6VHlw
ZUlkIGZpeHR1cmVfY2xhc3NfaWQsCiAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OlRlc3RG
YWN0b3J5QmFzZSogZmFjdG9yeSkKLSAgICA6IHRlc3RfY2FzZV9uYW1lXyhhX3Rlc3RfY2FzZV9u
YW1lKSwKKyAgICA6IHRlc3Rfc3VpdGVfbmFtZV8oYV90ZXN0X3N1aXRlX25hbWUpLAogICAgICAg
bmFtZV8oYV9uYW1lKSwKLSAgICAgIHR5cGVfcGFyYW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBzdGQ6
OnN0cmluZyhhX3R5cGVfcGFyYW0pIDogTlVMTCksCi0gICAgICB2YWx1ZV9wYXJhbV8oYV92YWx1
ZV9wYXJhbSA/IG5ldyBzdGQ6OnN0cmluZyhhX3ZhbHVlX3BhcmFtKSA6IE5VTEwpLAorICAgICAg
dHlwZV9wYXJhbV8oYV90eXBlX3BhcmFtID8gbmV3IHN0ZDo6c3RyaW5nKGFfdHlwZV9wYXJhbSkg
OiBudWxscHRyKSwKKyAgICAgIHZhbHVlX3BhcmFtXyhhX3ZhbHVlX3BhcmFtID8gbmV3IHN0ZDo6
c3RyaW5nKGFfdmFsdWVfcGFyYW0pIDogbnVsbHB0ciksCiAgICAgICBsb2NhdGlvbl8oYV9jb2Rl
X2xvY2F0aW9uKSwKICAgICAgIGZpeHR1cmVfY2xhc3NfaWRfKGZpeHR1cmVfY2xhc3NfaWQpLAog
ICAgICAgc2hvdWxkX3J1bl8oZmFsc2UpLAogICAgICAgaXNfZGlzYWJsZWRfKGZhbHNlKSwKICAg
ICAgIG1hdGNoZXNfZmlsdGVyXyhmYWxzZSksCisgICAgICBpc19pbl9hbm90aGVyX3NoYXJkXyhm
YWxzZSksCiAgICAgICBmYWN0b3J5XyhmYWN0b3J5KSwKICAgICAgIHJlc3VsdF8oKSB7fQogCkBA
IC0yNTcwLDcgKzI3NDAsNyBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgewogLy8KIC8vIEFyZ3VtZW50
czoKIC8vCi0vLyAgIHRlc3RfY2FzZV9uYW1lOiAgIG5hbWUgb2YgdGhlIHRlc3QgY2FzZQorLy8g
ICB0ZXN0X3N1aXRlX25hbWU6ICBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlCiAvLyAgIG5hbWU6ICAg
ICAgICAgICAgIG5hbWUgb2YgdGhlIHRlc3QKIC8vICAgdHlwZV9wYXJhbTogICAgICAgdGhlIG5h
bWUgb2YgdGhlIHRlc3QncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgogLy8gICAgICAgICAg
ICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3QuCkBAIC0yNTc4LDQwICsyNzQ4LDM1IEBAIG5hbWVzcGFjZSBpbnRlcm5hbCB7CiAvLyAgICAg
ICAgICAgICAgICAgICAgIG9yIE5VTEwgaWYgdGhpcyBpcyBub3QgYSB2YWx1ZS1wYXJhbWV0ZXJp
emVkIHRlc3QuCiAvLyAgIGNvZGVfbG9jYXRpb246ICAgIGNvZGUgbG9jYXRpb24gd2hlcmUgdGhl
IHRlc3QgaXMgZGVmaW5lZAogLy8gICBmaXh0dXJlX2NsYXNzX2lkOiBJRCBvZiB0aGUgdGVzdCBm
aXh0dXJlIGNsYXNzCi0vLyAgIHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0
aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93bl90YzogICAgIHBv
aW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0aGUgdGVzdCBjYXNlCisvLyAg
IHNldF91cF90YzogICAgICAgIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0
aGUgdGVzdCBzdWl0ZQorLy8gICB0ZWFyX2Rvd25fdGM6ICAgICBwb2ludGVyIHRvIHRoZSBmdW5j
dGlvbiB0aGF0IHRlYXJzIGRvd24gdGhlIHRlc3Qgc3VpdGUKIC8vICAgZmFjdG9yeTogICAgICAg
ICAgcG9pbnRlciB0byB0aGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgYSB0ZXN0IG9iamVjdC4KIC8v
ICAgICAgICAgICAgICAgICAgICAgVGhlIG5ld2x5IGNyZWF0ZWQgVGVzdEluZm8gaW5zdGFuY2Ug
d2lsbCBhc3N1bWUKIC8vICAgICAgICAgICAgICAgICAgICAgb3duZXJzaGlwIG9mIHRoZSBmYWN0
b3J5IG9iamVjdC4KIFRlc3RJbmZvKiBNYWtlQW5kUmVnaXN0ZXJUZXN0SW5mbygKLSAgICBjb25z
dCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKLSAgICBjb25zdCBjaGFyKiBuYW1lLAotICAgIGNvbnN0
IGNoYXIqIHR5cGVfcGFyYW0sCi0gICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0sCi0gICAgQ29k
ZUxvY2F0aW9uIGNvZGVfbG9jYXRpb24sCi0gICAgVHlwZUlkIGZpeHR1cmVfY2xhc3NfaWQsCi0g
ICAgU2V0VXBUZXN0Q2FzZUZ1bmMgc2V0X3VwX3RjLAotICAgIFRlYXJEb3duVGVzdENhc2VGdW5j
IHRlYXJfZG93bl90YywKLSAgICBUZXN0RmFjdG9yeUJhc2UqIGZhY3RvcnkpIHsKKyAgICBjb25z
dCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHR5
cGVfcGFyYW0sCisgICAgY29uc3QgY2hhciogdmFsdWVfcGFyYW0sIENvZGVMb2NhdGlvbiBjb2Rl
X2xvY2F0aW9uLAorICAgIFR5cGVJZCBmaXh0dXJlX2NsYXNzX2lkLCBTZXRVcFRlc3RTdWl0ZUZ1
bmMgc2V0X3VwX3RjLAorICAgIFRlYXJEb3duVGVzdFN1aXRlRnVuYyB0ZWFyX2Rvd25fdGMsIFRl
c3RGYWN0b3J5QmFzZSogZmFjdG9yeSkgewogICBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0K
LSAgICAgIG5ldyBUZXN0SW5mbyh0ZXN0X2Nhc2VfbmFtZSwgbmFtZSwgdHlwZV9wYXJhbSwgdmFs
dWVfcGFyYW0sCisgICAgICBuZXcgVGVzdEluZm8odGVzdF9zdWl0ZV9uYW1lLCBuYW1lLCB0eXBl
X3BhcmFtLCB2YWx1ZV9wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb2RlX2xvY2F0aW9uLCBm
aXh0dXJlX2NsYXNzX2lkLCBmYWN0b3J5KTsKICAgR2V0VW5pdFRlc3RJbXBsKCktPkFkZFRlc3RJ
bmZvKHNldF91cF90YywgdGVhcl9kb3duX3RjLCB0ZXN0X2luZm8pOwogICByZXR1cm4gdGVzdF9p
bmZvOwogfQogCi12b2lkIFJlcG9ydEludmFsaWRUZXN0Q2FzZVR5cGUoY29uc3QgY2hhciogdGVz
dF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9u
IGNvZGVfbG9jYXRpb24pIHsKK3ZvaWQgUmVwb3J0SW52YWxpZFRlc3RTdWl0ZVR5cGUoY29uc3Qg
Y2hhciogdGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b2RlTG9jYXRpb24gY29kZV9sb2NhdGlvbikgewogICBNZXNzYWdlIGVycm9yczsKICAgZXJyb3Jz
Ci0gICAgICA8PCAiQXR0ZW1wdGVkIHJlZGVmaW5pdGlvbiBvZiB0ZXN0IGNhc2UgIiA8PCB0ZXN0
X2Nhc2VfbmFtZSA8PCAiLlxuIgotICAgICAgPDwgIkFsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0
IGNhc2UgbXVzdCB1c2UgdGhlIHNhbWUgdGVzdCBmaXh0dXJlXG4iCi0gICAgICA8PCAiY2xhc3Mu
ICBIb3dldmVyLCBpbiB0ZXN0IGNhc2UgIiA8PCB0ZXN0X2Nhc2VfbmFtZSA8PCAiLCB5b3UgdHJp
ZWRcbiIKKyAgICAgIDw8ICJBdHRlbXB0ZWQgcmVkZWZpbml0aW9uIG9mIHRlc3Qgc3VpdGUgIiA8
PCB0ZXN0X3N1aXRlX25hbWUgPDwgIi5cbiIKKyAgICAgIDw8ICJBbGwgdGVzdHMgaW4gdGhlIHNh
bWUgdGVzdCBzdWl0ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmVcbiIKKyAgICAgIDw8
ICJjbGFzcy4gIEhvd2V2ZXIsIGluIHRlc3Qgc3VpdGUgIiA8PCB0ZXN0X3N1aXRlX25hbWUgPDwg
IiwgeW91IHRyaWVkXG4iCiAgICAgICA8PCAidG8gZGVmaW5lIGEgdGVzdCB1c2luZyBhIGZpeHR1
cmUgY2xhc3MgZGlmZmVyZW50IGZyb20gdGhlIG9uZVxuIgogICAgICAgPDwgInVzZWQgZWFybGll
ci4gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSB0d28gZml4dHVyZSBjbGFzc2VzIGFyZVxuIgogICAg
ICAgPDwgImZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgYW5kIGhhdmUgdGhlIHNhbWUgbmFtZS4g
WW91IHNob3VsZFxuIgogICAgICAgPDwgInByb2JhYmx5IHJlbmFtZSBvbmUgb2YgdGhlIGNsYXNz
ZXMgdG8gcHV0IHRoZSB0ZXN0cyBpbnRvIGRpZmZlcmVudFxuIgotICAgICAgPDwgInRlc3QgY2Fz
ZXMuIjsKKyAgICAgIDw8ICJ0ZXN0IHN1aXRlcy4iOwogCiAgIEdURVNUX0xPR18oRVJST1IpIDw8
IEZvcm1hdEZpbGVMb2NhdGlvbihjb2RlX2xvY2F0aW9uLmZpbGUuY19zdHIoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVfbG9jYXRpb24ubGluZSkKQEAg
LTI2MjQsNyArMjc4OSw3IEBAIG5hbWVzcGFjZSB7CiAvLyBBIHByZWRpY2F0ZSB0aGF0IGNoZWNr
cyB0aGUgdGVzdCBuYW1lIG9mIGEgVGVzdEluZm8gYWdhaW5zdCBhIGtub3duCiAvLyB2YWx1ZS4K
IC8vCi0vLyBUaGlzIGlzIHVzZWQgZm9yIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUZXN0Q2FzZSBj
bGFzcyBvbmx5LiAgV2UgcHV0CisvLyBUaGlzIGlzIHVzZWQgZm9yIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBUZXN0U3VpdGUgY2xhc3Mgb25seS4gIFdlIHB1dAogLy8gaXQgaW4gdGhlIGFub255bW91
cyBuYW1lc3BhY2UgdG8gcHJldmVudCBwb2xsdXRpbmcgdGhlIG91dGVyCiAvLyBuYW1lc3BhY2Uu
CiAvLwpAQCAtMjYzNyw3ICsyODAyLDcgQEAgY2xhc3MgVGVzdE5hbWVJcyB7CiAgIGV4cGxpY2l0
IFRlc3ROYW1lSXMoY29uc3QgY2hhciogbmFtZSkKICAgICAgIDogbmFtZV8obmFtZSkge30KIAot
ICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB0ZXN0IG5hbWUgb2YgdGVzdF9pbmZvIG1hdGNoZXMg
bmFtZV8uCisgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBuYW1lIG9m
IHRlc3RfaW5mbyBtYXRjaGVzIG5hbWVfLgogICBib29sIG9wZXJhdG9yKCkoY29uc3QgVGVzdElu
Zm8gKiB0ZXN0X2luZm8pIGNvbnN0IHsKICAgICByZXR1cm4gdGVzdF9pbmZvICYmIHRlc3RfaW5m
by0+bmFtZSgpID09IG5hbWVfOwogICB9CkBAIC0yNjUxLDExICsyODE2LDEyIEBAIGNsYXNzIFRl
c3ROYW1lSXMgewogbmFtZXNwYWNlIGludGVybmFsIHsKIAogLy8gVGhpcyBtZXRob2QgZXhwYW5k
cyBhbGwgcGFyYW1ldGVyaXplZCB0ZXN0cyByZWdpc3RlcmVkIHdpdGggbWFjcm9zIFRFU1RfUAot
Ly8gYW5kIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QIGludG8gcmVndWxhciB0ZXN0cyBhbmQgcmVn
aXN0ZXJzIHRob3NlLgorLy8gYW5kIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBpbnRvIHJlZ3Vs
YXIgdGVzdHMgYW5kIHJlZ2lzdGVycyB0aG9zZS4KIC8vIFRoaXMgd2lsbCBiZSBkb25lIGp1c3Qg
b25jZSBkdXJpbmcgdGhlIHByb2dyYW0gcnVudGltZS4KIHZvaWQgVW5pdFRlc3RJbXBsOjpSZWdp
c3RlclBhcmFtZXRlcml6ZWRUZXN0cygpIHsKICAgaWYgKCFwYXJhbWV0ZXJpemVkX3Rlc3RzX3Jl
Z2lzdGVyZWRfKSB7CiAgICAgcGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5Xy5SZWdpc3RlclRl
c3RzKCk7CisgICAgdHlwZV9wYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnlfLkNoZWNrRm9ySW5z
dGFudGlhdGlvbnMoKTsKICAgICBwYXJhbWV0ZXJpemVkX3Rlc3RzX3JlZ2lzdGVyZWRfID0gdHJ1
ZTsKICAgfQogfQpAQCAtMjY3Niw3ICsyODQyLDggQEAgdm9pZCBUZXN0SW5mbzo6UnVuKCkgewog
ICAvLyBOb3RpZmllcyB0aGUgdW5pdCB0ZXN0IGV2ZW50IGxpc3RlbmVycyB0aGF0IGEgdGVzdCBp
cyBhYm91dCB0byBzdGFydC4KICAgcmVwZWF0ZXItPk9uVGVzdFN0YXJ0KCp0aGlzKTsKIAotICBj
b25zdCBUaW1lSW5NaWxsaXMgc3RhcnQgPSBpbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzKCk7Cisg
IHJlc3VsdF8uc2V0X3N0YXJ0X3RpbWVzdGFtcChpbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzKCkp
OworICBpbnRlcm5hbDo6VGltZXIgdGltZXI7CiAKICAgaW1wbC0+b3Nfc3RhY2tfdHJhY2VfZ2V0
dGVyKCktPlVwb25MZWF2aW5nR1Rlc3QoKTsKIApAQCAtMjY4NSwxNTQgKzI4NTIsMjMzIEBAIHZv
aWQgVGVzdEluZm86OlJ1bigpIHsKICAgICAgIGZhY3RvcnlfLCAmaW50ZXJuYWw6OlRlc3RGYWN0
b3J5QmFzZTo6Q3JlYXRlVGVzdCwKICAgICAgICJ0aGUgdGVzdCBmaXh0dXJlJ3MgY29uc3RydWN0
b3IiKTsKIAotICAvLyBSdW5zIHRoZSB0ZXN0IGlmIHRoZSBjb25zdHJ1Y3RvciBkaWRuJ3QgZ2Vu
ZXJhdGUgYSBmYXRhbCBmYWlsdXJlLgorICAvLyBSdW5zIHRoZSB0ZXN0IGlmIHRoZSBjb25zdHJ1
Y3RvciBkaWRuJ3QgZ2VuZXJhdGUgYSBmYXRhbCBmYWlsdXJlIG9yIGludm9rZQorICAvLyBHVEVT
VF9TS0lQKCkuCiAgIC8vIE5vdGUgdGhhdCB0aGUgb2JqZWN0IHdpbGwgbm90IGJlIG51bGwKLSAg
aWYgKCFUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICBpZiAoIVRlc3Q6Okhhc0ZhdGFsRmFp
bHVyZSgpICYmICFUZXN0OjpJc1NraXBwZWQoKSkgewogICAgIC8vIFRoaXMgZG9lc24ndCB0aHJv
dyBhcyBhbGwgdXNlciBjb2RlIHRoYXQgY2FuIHRocm93IGFyZSB3cmFwcGVkIGludG8KICAgICAv
LyBleGNlcHRpb24gaGFuZGxpbmcgY29kZS4KICAgICB0ZXN0LT5SdW4oKTsKICAgfQogCisgIGlm
ICh0ZXN0ICE9IG51bGxwdHIpIHsKICAgICAvLyBEZWxldGVzIHRoZSB0ZXN0IG9iamVjdC4KICAg
ICBpbXBsLT5vc19zdGFja190cmFjZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogICAg
IGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25zSW5NZXRob2RJZlN1cHBvcnRlZCgKICAgICAgICAg
dGVzdCwgJlRlc3Q6OkRlbGV0ZVNlbGZfLCAidGhlIHRlc3QgZml4dHVyZSdzIGRlc3RydWN0b3Ii
KTsKKyAgfQogCi0gIHJlc3VsdF8uc2V0X2VsYXBzZWRfdGltZShpbnRlcm5hbDo6R2V0VGltZUlu
TWlsbGlzKCkgLSBzdGFydCk7CisgIHJlc3VsdF8uc2V0X2VsYXBzZWRfdGltZSh0aW1lci5FbGFw
c2VkKCkpOwogCiAgIC8vIE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXIgdGhh
dCBhIHRlc3QgaGFzIGp1c3QgZmluaXNoZWQuCiAgIHJlcGVhdGVyLT5PblRlc3RFbmQoKnRoaXMp
OwogCiAgIC8vIFRlbGxzIFVuaXRUZXN0IHRvIHN0b3AgYXNzb2NpYXRpbmcgYXNzZXJ0aW9uIHJl
c3VsdHMgdG8gdGhpcwogICAvLyB0ZXN0LgotICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8o
TlVMTCk7CisgIGltcGwtPnNldF9jdXJyZW50X3Rlc3RfaW5mbyhudWxscHRyKTsKIH0KIAotLy8g
Y2xhc3MgVGVzdENhc2UKKy8vIFNraXAgYW5kIHJlY29yZHMgYSBza2lwcGVkIHRlc3QgcmVzdWx0
IGZvciB0aGlzIG9iamVjdC4KK3ZvaWQgVGVzdEluZm86OlNraXAoKSB7CisgIGlmICghc2hvdWxk
X3J1bl8pIHJldHVybjsKIAotLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMg
aW4gdGhpcyB0ZXN0IGNhc2UuCi1pbnQgVGVzdENhc2U6OnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgp
IGNvbnN0IHsKKyAgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFs
OjpHZXRVbml0VGVzdEltcGwoKTsKKyAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9pbmZvKHRoaXMp
OworCisgIFRlc3RFdmVudExpc3RlbmVyKiByZXBlYXRlciA9IFVuaXRUZXN0OjpHZXRJbnN0YW5j
ZSgpLT5saXN0ZW5lcnMoKS5yZXBlYXRlcigpOworCisgIC8vIE5vdGlmaWVzIHRoZSB1bml0IHRl
c3QgZXZlbnQgbGlzdGVuZXJzIHRoYXQgYSB0ZXN0IGlzIGFib3V0IHRvIHN0YXJ0LgorICByZXBl
YXRlci0+T25UZXN0U3RhcnQoKnRoaXMpOworCisgIGNvbnN0IFRlc3RQYXJ0UmVzdWx0IHRlc3Rf
cGFydF9yZXN1bHQgPQorICAgICAgVGVzdFBhcnRSZXN1bHQoVGVzdFBhcnRSZXN1bHQ6OmtTa2lw
LCB0aGlzLT5maWxlKCksIHRoaXMtPmxpbmUoKSwgIiIpOworICBpbXBsLT5HZXRUZXN0UGFydFJl
c3VsdFJlcG9ydGVyRm9yQ3VycmVudFRocmVhZCgpLT5SZXBvcnRUZXN0UGFydFJlc3VsdCgKKyAg
ICAgIHRlc3RfcGFydF9yZXN1bHQpOworCisgIC8vIE5vdGlmaWVzIHRoZSB1bml0IHRlc3QgZXZl
bnQgbGlzdGVuZXIgdGhhdCBhIHRlc3QgaGFzIGp1c3QgZmluaXNoZWQuCisgIHJlcGVhdGVyLT5P
blRlc3RFbmQoKnRoaXMpOworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2luZm8obnVsbHB0cik7
Cit9CisKKy8vIGNsYXNzIFRlc3RTdWl0ZQorCisvLyBHZXRzIHRoZSBudW1iZXIgb2Ygc3VjY2Vz
c2Z1bCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1aXRlOjpzdWNjZXNzZnVs
X3Rlc3RfY291bnQoKSBjb25zdCB7CiAgIHJldHVybiBDb3VudElmKHRlc3RfaW5mb19saXN0Xywg
VGVzdFBhc3NlZCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdHMgaW4g
dGhpcyB0ZXN0IGNhc2UuCi1pbnQgVGVzdENhc2U6OmZhaWxlZF90ZXN0X2NvdW50KCkgY29uc3Qg
eworLy8gR2V0cyB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1
aXRlLgoraW50IFRlc3RTdWl0ZTo6c2tpcHBlZF90ZXN0X2NvdW50KCkgY29uc3QgeworICByZXR1
cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3RTa2lwcGVkKTsKK30KKworLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3VpdGUuCitpbnQgVGVzdFN1
aXRlOjpmYWlsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9p
bmZvX2xpc3RfLCBUZXN0RmFpbGVkKTsKIH0KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGRpc2Fi
bGVkIHRlc3RzIHRoYXQgd2lsbCBiZSByZXBvcnRlZCBpbiB0aGUgWE1MIHJlcG9ydC4KLWludCBU
ZXN0Q2FzZTo6cmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgeworaW50IFRl
c3RTdWl0ZTo6cmVwb3J0YWJsZV9kaXNhYmxlZF90ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1
cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRlc3RSZXBvcnRhYmxlRGlzYWJsZWQpOwogfQog
Ci0vLyBHZXRzIHRoZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IGNhc2Uu
Ci1pbnQgVGVzdENhc2U6OmRpc2FibGVkX3Rlc3RfY291bnQoKSBjb25zdCB7CisvLyBHZXRzIHRo
ZSBudW1iZXIgb2YgZGlzYWJsZWQgdGVzdHMgaW4gdGhpcyB0ZXN0IHN1aXRlLgoraW50IFRlc3RT
dWl0ZTo6ZGlzYWJsZWRfdGVzdF9jb3VudCgpIGNvbnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVz
dF9pbmZvX2xpc3RfLCBUZXN0RGlzYWJsZWQpOwogfQogCiAvLyBHZXRzIHRoZSBudW1iZXIgb2Yg
dGVzdHMgdG8gYmUgcHJpbnRlZCBpbiB0aGUgWE1MIHJlcG9ydC4KLWludCBUZXN0Q2FzZTo6cmVw
b3J0YWJsZV90ZXN0X2NvdW50KCkgY29uc3QgeworaW50IFRlc3RTdWl0ZTo6cmVwb3J0YWJsZV90
ZXN0X2NvdW50KCkgY29uc3QgewogICByZXR1cm4gQ291bnRJZih0ZXN0X2luZm9fbGlzdF8sIFRl
c3RSZXBvcnRhYmxlKTsKIH0KIAotLy8gR2V0IHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UgdGhhdCBzaG91bGQgcnVuLgotaW50IFRlc3RDYXNlOjp0ZXN0X3RvX3J1bl9jb3Vu
dCgpIGNvbnN0IHsKKy8vIEdldCB0aGUgbnVtYmVyIG9mIHRlc3RzIGluIHRoaXMgdGVzdCBzdWl0
ZSB0aGF0IHNob3VsZCBydW4uCitpbnQgVGVzdFN1aXRlOjp0ZXN0X3RvX3J1bl9jb3VudCgpIGNv
bnN0IHsKICAgcmV0dXJuIENvdW50SWYodGVzdF9pbmZvX2xpc3RfLCBTaG91bGRSdW5UZXN0KTsK
IH0KIAogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0cy4KLWludCBUZXN0Q2FzZTo6dG90
YWxfdGVzdF9jb3VudCgpIGNvbnN0IHsKK2ludCBUZXN0U3VpdGU6OnRvdGFsX3Rlc3RfY291bnQo
KSBjb25zdCB7CiAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHRlc3RfaW5mb19saXN0Xy5zaXpl
KCkpOwogfQogCi0vLyBDcmVhdGVzIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKy8v
IENyZWF0ZXMgYSBUZXN0U3VpdGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KIC8vCiAvLyBBcmd1bWVu
dHM6CiAvLwotLy8gICBuYW1lOiAgICAgICAgIG5hbWUgb2YgdGhlIHRlc3QgY2FzZQotLy8gICBh
X3R5cGVfcGFyYW06IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UncyB0eXBlIHBhcmFtZXRlciwg
b3IgTlVMTCBpZgotLy8gICAgICAgICAgICAgICAgIHRoaXMgaXMgbm90IGEgdHlwZWQgb3IgYSB0
eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlLgotLy8gICBzZXRfdXBfdGM6ICAgIHBvaW50ZXIg
dG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBjYXNlCi0vLyAgIHRlYXJfZG93
bl90YzogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNh
c2UKLVRlc3RDYXNlOjpUZXN0Q2FzZShjb25zdCBjaGFyKiBhX25hbWUsIGNvbnN0IGNoYXIqIGFf
dHlwZV9wYXJhbSwKLSAgICAgICAgICAgICAgICAgICBUZXN0OjpTZXRVcFRlc3RDYXNlRnVuYyBz
ZXRfdXBfdGMsCi0gICAgICAgICAgICAgICAgICAgVGVzdDo6VGVhckRvd25UZXN0Q2FzZUZ1bmMg
dGVhcl9kb3duX3RjKQorLy8gICBhX25hbWU6ICAgICAgIG5hbWUgb2YgdGhlIHRlc3Qgc3VpdGUK
Ky8vICAgYV90eXBlX3BhcmFtOiB0aGUgbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZSdzIHR5cGUgcGFy
YW1ldGVyLCBvciBOVUxMIGlmCisvLyAgICAgICAgICAgICAgICAgdGhpcyBpcyBub3QgYSB0eXBl
ZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IHN1aXRlLgorLy8gICBzZXRfdXBfdGM6ICAg
IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgdGVzdCBzdWl0ZQorLy8g
ICB0ZWFyX2Rvd25fdGM6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgdGVhcnMgZG93biB0
aGUgdGVzdCBzdWl0ZQorVGVzdFN1aXRlOjpUZXN0U3VpdGUoY29uc3QgY2hhciogYV9uYW1lLCBj
b25zdCBjaGFyKiBhX3R5cGVfcGFyYW0sCisgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDo6
U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICAgICAgICAgICAgICAgICAgIGludGVy
bmFsOjpUZWFyRG93blRlc3RTdWl0ZUZ1bmMgdGVhcl9kb3duX3RjKQogICAgIDogbmFtZV8oYV9u
YW1lKSwKLSAgICAgIHR5cGVfcGFyYW1fKGFfdHlwZV9wYXJhbSA/IG5ldyBzdGQ6OnN0cmluZyhh
X3R5cGVfcGFyYW0pIDogTlVMTCksCisgICAgICB0eXBlX3BhcmFtXyhhX3R5cGVfcGFyYW0gPyBu
ZXcgc3RkOjpzdHJpbmcoYV90eXBlX3BhcmFtKSA6IG51bGxwdHIpLAogICAgICAgc2V0X3VwX3Rj
XyhzZXRfdXBfdGMpLAogICAgICAgdGVhcl9kb3duX3RjXyh0ZWFyX2Rvd25fdGMpLAogICAgICAg
c2hvdWxkX3J1bl8oZmFsc2UpLAotICAgICAgZWxhcHNlZF90aW1lXygwKSB7Ci19CisgICAgICBz
dGFydF90aW1lc3RhbXBfKDApLAorICAgICAgZWxhcHNlZF90aW1lXygwKSB7fQogCi0vLyBEZXN0
cnVjdG9yIG9mIFRlc3RDYXNlLgotVGVzdENhc2U6On5UZXN0Q2FzZSgpIHsKKy8vIERlc3RydWN0
b3Igb2YgVGVzdFN1aXRlLgorVGVzdFN1aXRlOjp+VGVzdFN1aXRlKCkgewogICAvLyBEZWxldGVz
IGV2ZXJ5IFRlc3QgaW4gdGhlIGNvbGxlY3Rpb24uCiAgIEZvckVhY2godGVzdF9pbmZvX2xpc3Rf
LCBpbnRlcm5hbDo6RGVsZXRlPFRlc3RJbmZvPik7CiB9CiAKIC8vIFJldHVybnMgdGhlIGktdGgg
dGVzdCBhbW9uZyBhbGwgdGhlIHRlc3RzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KIC8vIHRvdGFs
X3Rlc3RfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVM
TC4KLWNvbnN0IFRlc3RJbmZvKiBUZXN0Q2FzZTo6R2V0VGVzdEluZm8oaW50IGkpIGNvbnN0IHsK
K2NvbnN0IFRlc3RJbmZvKiBUZXN0U3VpdGU6OkdldFRlc3RJbmZvKGludCBpKSBjb25zdCB7CiAg
IGNvbnN0IGludCBpbmRleCA9IEdldEVsZW1lbnRPcih0ZXN0X2luZGljZXNfLCBpLCAtMSk7Ci0g
IHJldHVybiBpbmRleCA8IDAgPyBOVUxMIDogdGVzdF9pbmZvX2xpc3RfW2luZGV4XTsKKyAgcmV0
dXJuIGluZGV4IDwgMCA/IG51bGxwdHIgOiB0ZXN0X2luZm9fbGlzdF9bc3RhdGljX2Nhc3Q8c2l6
ZV90PihpbmRleCldOwogfQogCiAvLyBSZXR1cm5zIHRoZSBpLXRoIHRlc3QgYW1vbmcgYWxsIHRo
ZSB0ZXN0cy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCiAvLyB0b3RhbF90ZXN0X2NvdW50KCkgLSAx
LiBJZiBpIGlzIG5vdCBpbiB0aGF0IHJhbmdlLCByZXR1cm5zIE5VTEwuCi1UZXN0SW5mbyogVGVz
dENhc2U6OkdldE11dGFibGVUZXN0SW5mbyhpbnQgaSkgeworVGVzdEluZm8qIFRlc3RTdWl0ZTo6
R2V0TXV0YWJsZVRlc3RJbmZvKGludCBpKSB7CiAgIGNvbnN0IGludCBpbmRleCA9IEdldEVsZW1l
bnRPcih0ZXN0X2luZGljZXNfLCBpLCAtMSk7Ci0gIHJldHVybiBpbmRleCA8IDAgPyBOVUxMIDog
dGVzdF9pbmZvX2xpc3RfW2luZGV4XTsKKyAgcmV0dXJuIGluZGV4IDwgMCA/IG51bGxwdHIgOiB0
ZXN0X2luZm9fbGlzdF9bc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwogfQogCi0vLyBBZGRz
IGEgdGVzdCB0byB0aGlzIHRlc3QgY2FzZS4gIFdpbGwgZGVsZXRlIHRoZSB0ZXN0IHVwb24KLS8v
IGRlc3RydWN0aW9uIG9mIHRoZSBUZXN0Q2FzZSBvYmplY3QuCi12b2lkIFRlc3RDYXNlOjpBZGRU
ZXN0SW5mbyhUZXN0SW5mbyAqIHRlc3RfaW5mbykgeworLy8gQWRkcyBhIHRlc3QgdG8gdGhpcyB0
ZXN0IHN1aXRlLiAgV2lsbCBkZWxldGUgdGhlIHRlc3QgdXBvbgorLy8gZGVzdHJ1Y3Rpb24gb2Yg
dGhlIFRlc3RTdWl0ZSBvYmplY3QuCit2b2lkIFRlc3RTdWl0ZTo6QWRkVGVzdEluZm8oVGVzdElu
Zm8qIHRlc3RfaW5mbykgewogICB0ZXN0X2luZm9fbGlzdF8ucHVzaF9iYWNrKHRlc3RfaW5mbyk7
CiAgIHRlc3RfaW5kaWNlc18ucHVzaF9iYWNrKHN0YXRpY19jYXN0PGludD4odGVzdF9pbmRpY2Vz
Xy5zaXplKCkpKTsKIH0KIAotLy8gUnVucyBldmVyeSB0ZXN0IGluIHRoaXMgVGVzdENhc2UuCi12
b2lkIFRlc3RDYXNlOjpSdW4oKSB7CisvLyBSdW5zIGV2ZXJ5IHRlc3QgaW4gdGhpcyBUZXN0U3Vp
dGUuCit2b2lkIFRlc3RTdWl0ZTo6UnVuKCkgewogICBpZiAoIXNob3VsZF9ydW5fKSByZXR1cm47
CiAKICAgaW50ZXJuYWw6OlVuaXRUZXN0SW1wbCogY29uc3QgaW1wbCA9IGludGVybmFsOjpHZXRV
bml0VGVzdEltcGwoKTsKLSAgaW1wbC0+c2V0X2N1cnJlbnRfdGVzdF9jYXNlKHRoaXMpOworICBp
bXBsLT5zZXRfY3VycmVudF90ZXN0X3N1aXRlKHRoaXMpOwogCiAgIFRlc3RFdmVudExpc3RlbmVy
KiByZXBlYXRlciA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5yZXBlYXRl
cigpOwogCisgIC8vIENhbGwgYm90aCBsZWdhY3kgYW5kIHRoZSBuZXcgQVBJCisgIHJlcGVhdGVy
LT5PblRlc3RTdWl0ZVN0YXJ0KCp0aGlzKTsKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQg
YnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FT
RUFQSV8KICAgcmVwZWF0ZXItPk9uVGVzdENhc2VTdGFydCgqdGhpcyk7CisjZW5kaWYgIC8vICBH
VEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKwogICBpbXBsLT5vc19zdGFja190cmFj
ZV9nZXR0ZXIoKS0+VXBvbkxlYXZpbmdHVGVzdCgpOwogICBpbnRlcm5hbDo6SGFuZGxlRXhjZXB0
aW9uc0luTWV0aG9kSWZTdXBwb3J0ZWQoCi0gICAgICB0aGlzLCAmVGVzdENhc2U6OlJ1blNldFVw
VGVzdENhc2UsICJTZXRVcFRlc3RDYXNlKCkiKTsKKyAgICAgIHRoaXMsICZUZXN0U3VpdGU6OlJ1
blNldFVwVGVzdFN1aXRlLCAiU2V0VXBUZXN0U3VpdGUoKSIpOwogCi0gIGNvbnN0IGludGVybmFs
OjpUaW1lSW5NaWxsaXMgc3RhcnQgPSBpbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzKCk7CisgIHN0
YXJ0X3RpbWVzdGFtcF8gPSBpbnRlcm5hbDo6R2V0VGltZUluTWlsbGlzKCk7CisgIGludGVybmFs
OjpUaW1lciB0aW1lcjsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbF90ZXN0X2NvdW50KCk7
IGkrKykgewogICAgIEdldE11dGFibGVUZXN0SW5mbyhpKS0+UnVuKCk7CisgICAgaWYgKEdURVNU
X0ZMQUcoZmFpbF9mYXN0KSAmJiBHZXRNdXRhYmxlVGVzdEluZm8oaSktPnJlc3VsdCgpLT5GYWls
ZWQoKSkgeworICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdG90YWxfdGVzdF9jb3VudCgp
OyBqKyspIHsKKyAgICAgICAgR2V0TXV0YWJsZVRlc3RJbmZvKGopLT5Ta2lwKCk7CisgICAgICB9
CisgICAgICBicmVhazsKKyAgICB9CiAgIH0KLSAgZWxhcHNlZF90aW1lXyA9IGludGVybmFsOjpH
ZXRUaW1lSW5NaWxsaXMoKSAtIHN0YXJ0OworICBlbGFwc2VkX3RpbWVfID0gdGltZXIuRWxhcHNl
ZCgpOwogCiAgIGltcGwtPm9zX3N0YWNrX3RyYWNlX2dldHRlcigpLT5VcG9uTGVhdmluZ0dUZXN0
KCk7CiAgIGludGVybmFsOjpIYW5kbGVFeGNlcHRpb25zSW5NZXRob2RJZlN1cHBvcnRlZCgKLSAg
ICAgIHRoaXMsICZUZXN0Q2FzZTo6UnVuVGVhckRvd25UZXN0Q2FzZSwgIlRlYXJEb3duVGVzdENh
c2UoKSIpOworICAgICAgdGhpcywgJlRlc3RTdWl0ZTo6UnVuVGVhckRvd25UZXN0U3VpdGUsICJU
ZWFyRG93blRlc3RTdWl0ZSgpIik7CiAKKyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5l
dyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVzdFN1aXRlRW5kKCp0aGlzKTsKKy8vICBMZWdhY3kgQVBJ
IGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVf
TEVHQUNZX1RFU1RfQ0FTRUFQSV8KICAgcmVwZWF0ZXItPk9uVGVzdENhc2VFbmQoKnRoaXMpOwot
ICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X2Nhc2UoTlVMTCk7CisjZW5kaWYgIC8vICBHVEVTVF9S
RU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0X3N1
aXRlKG51bGxwdHIpOwogfQogCi0vLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3RzIGlu
IHRoaXMgdGVzdCBjYXNlLgotdm9pZCBUZXN0Q2FzZTo6Q2xlYXJSZXN1bHQoKSB7CisvLyBTa2lw
cyBhbGwgdGVzdHMgdW5kZXIgdGhpcyBUZXN0U3VpdGUuCit2b2lkIFRlc3RTdWl0ZTo6U2tpcCgp
IHsKKyAgaWYgKCFzaG91bGRfcnVuXykgcmV0dXJuOworCisgIGludGVybmFsOjpVbml0VGVzdElt
cGwqIGNvbnN0IGltcGwgPSBpbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCk7CisgIGltcGwtPnNl
dF9jdXJyZW50X3Rlc3Rfc3VpdGUodGhpcyk7CisKKyAgVGVzdEV2ZW50TGlzdGVuZXIqIHJlcGVh
dGVyID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmxpc3RlbmVycygpLnJlcGVhdGVyKCk7CisK
KyAgLy8gQ2FsbCBib3RoIGxlZ2FjeSBhbmQgdGhlIG5ldyBBUEkKKyAgcmVwZWF0ZXItPk9uVGVz
dFN1aXRlU3RhcnQoKnRoaXMpOworLy8gIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBidXQgc3Rp
bGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwor
ICByZXBlYXRlci0+T25UZXN0Q2FzZVN0YXJ0KCp0aGlzKTsKKyNlbmRpZiAgLy8gIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxf
dGVzdF9jb3VudCgpOyBpKyspIHsKKyAgICBHZXRNdXRhYmxlVGVzdEluZm8oaSktPlNraXAoKTsK
KyAgfQorCisgIC8vIENhbGwgYm90aCBsZWdhY3kgYW5kIHRoZSBuZXcgQVBJCisgIHJlcGVhdGVy
LT5PblRlc3RTdWl0ZUVuZCgqdGhpcyk7CisgIC8vIExlZ2FjeSBBUEkgaXMgZGVwcmVjYXRlZCBi
dXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNF
QVBJXworICByZXBlYXRlci0+T25UZXN0Q2FzZUVuZCgqdGhpcyk7CisjZW5kaWYgIC8vICBHVEVT
VF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KKworICBpbXBsLT5zZXRfY3VycmVudF90ZXN0
X3N1aXRlKG51bGxwdHIpOworfQorCisvLyBDbGVhcnMgdGhlIHJlc3VsdHMgb2YgYWxsIHRlc3Rz
IGluIHRoaXMgdGVzdCBzdWl0ZS4KK3ZvaWQgVGVzdFN1aXRlOjpDbGVhclJlc3VsdCgpIHsKICAg
YWRfaG9jX3Rlc3RfcmVzdWx0Xy5DbGVhcigpOwogICBGb3JFYWNoKHRlc3RfaW5mb19saXN0Xywg
VGVzdEluZm86OkNsZWFyVGVzdFJlc3VsdCk7CiB9CiAKLS8vIFNodWZmbGVzIHRoZSB0ZXN0cyBp
biB0aGlzIHRlc3QgY2FzZS4KLXZvaWQgVGVzdENhc2U6OlNodWZmbGVUZXN0cyhpbnRlcm5hbDo6
UmFuZG9tKiByYW5kb20pIHsKKy8vIFNodWZmbGVzIHRoZSB0ZXN0cyBpbiB0aGlzIHRlc3Qgc3Vp
dGUuCit2b2lkIFRlc3RTdWl0ZTo6U2h1ZmZsZVRlc3RzKGludGVybmFsOjpSYW5kb20qIHJhbmRv
bSkgewogICBTaHVmZmxlKHJhbmRvbSwgJnRlc3RfaW5kaWNlc18pOwogfQogCiAvLyBSZXN0b3Jl
cyB0aGUgdGVzdCBvcmRlciB0byBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUuCi12b2lkIFRlc3RD
YXNlOjpVbnNodWZmbGVUZXN0cygpIHsKK3ZvaWQgVGVzdFN1aXRlOjpVbnNodWZmbGVUZXN0cygp
IHsKICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2luZGljZXNfLnNpemUoKTsgaSsrKSB7
CiAgICAgdGVzdF9pbmRpY2VzX1tpXSA9IHN0YXRpY19jYXN0PGludD4oaSk7CiAgIH0KQEAgLTI4
NTUsOSArMzEwMSw5IEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRUZXN0Q291bnQoaW50IHRl
c3RfY291bnQpIHsKICAgcmV0dXJuIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9jb3VudCwgInRl
c3QiLCAidGVzdHMiKTsKIH0KIAotLy8gRm9ybWF0cyB0aGUgY291bnQgb2YgdGVzdCBjYXNlcy4K
LXN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRUZXN0Q2FzZUNvdW50KGludCB0ZXN0X2Nhc2VfY291
bnQpIHsKLSAgcmV0dXJuIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9jYXNlX2NvdW50LCAidGVz
dCBjYXNlIiwgInRlc3QgY2FzZXMiKTsKKy8vIEZvcm1hdHMgdGhlIGNvdW50IG9mIHRlc3Qgc3Vp
dGVzLgorc3RhdGljIHN0ZDo6c3RyaW5nIEZvcm1hdFRlc3RTdWl0ZUNvdW50KGludCB0ZXN0X3N1
aXRlX2NvdW50KSB7CisgIHJldHVybiBGb3JtYXRDb3VudGFibGVOb3VuKHRlc3Rfc3VpdGVfY291
bnQsICJ0ZXN0IHN1aXRlIiwgInRlc3Qgc3VpdGVzIik7CiB9CiAKIC8vIENvbnZlcnRzIGEgVGVz
dFBhcnRSZXN1bHQ6OlR5cGUgZW51bSB0byBodW1hbi1mcmllbmRseSBzdHJpbmcKQEAgLTI4NjYs
NiArMzExMiw4IEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRUZXN0Q2FzZUNvdW50KGludCB0
ZXN0X2Nhc2VfY291bnQpIHsKIC8vIGJldHdlZW4gdGhlIHR3byB3aGVuIHZpZXdpbmcgdGhlIHRl
c3QgcmVzdWx0Lgogc3RhdGljIGNvbnN0IGNoYXIgKiBUZXN0UGFydFJlc3VsdFR5cGVUb1N0cmlu
ZyhUZXN0UGFydFJlc3VsdDo6VHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgVGVzdFBhcnRSZXN1bHQ6OmtTa2lwOgorICAgICAgcmV0dXJuICJTa2lwcGVkXG4iOwogICAg
IGNhc2UgVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzOgogICAgICAgcmV0dXJuICJTdWNjZXNzIjsK
IApAQCAtMjg4Miw2ICszMTMwLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBUZXN0UGFydFJlc3Vs
dFR5cGVUb1N0cmluZyhUZXN0UGFydFJlc3VsdDo6VHlwZSB0eXBlKSB7CiB9CiAKIG5hbWVzcGFj
ZSBpbnRlcm5hbCB7CituYW1lc3BhY2UgeworZW51bSBjbGFzcyBHVGVzdENvbG9yIHsga0RlZmF1
bHQsIGtSZWQsIGtHcmVlbiwga1llbGxvdyB9OworfSAgLy8gbmFtZXNwYWNlCiAKIC8vIFByaW50
cyBhIFRlc3RQYXJ0UmVzdWx0IHRvIGFuIHN0ZDo6c3RyaW5nLgogc3RhdGljIHN0ZDo6c3RyaW5n
IFByaW50VGVzdFBhcnRSZXN1bHRUb1N0cmluZygKQEAgLTI5MTMsMjMgKzMxNjQsMTggQEAgc3Rh
dGljIHZvaWQgUHJpbnRUZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgdGVzdF9w
YXJ0X3Jlc3VsdCkgewogfQogCiAvLyBjbGFzcyBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIK
LQotZW51bSBHVGVzdENvbG9yIHsKLSAgQ09MT1JfREVGQVVMVCwKLSAgQ09MT1JfUkVELAotICBD
T0xPUl9HUkVFTiwKLSAgQ09MT1JfWUVMTE9XCi19OwotCiAjaWYgR1RFU1RfT1NfV0lORE9XUyAm
JiAhR1RFU1RfT1NfV0lORE9XU19NT0JJTEUgJiYgXAogICAgICFHVEVTVF9PU19XSU5ET1dTX1BI
T05FICYmICFHVEVTVF9PU19XSU5ET1dTX1JUICYmICFHVEVTVF9PU19XSU5ET1dTX01JTkdXCiAK
IC8vIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdHRyaWJ1dGUgZm9yIHRoZSBnaXZlbiBjb2xvci4K
IHN0YXRpYyBXT1JEIEdldENvbG9yQXR0cmlidXRlKEdUZXN0Q29sb3IgY29sb3IpIHsKICAgc3dp
dGNoIChjb2xvcikgewotICAgIGNhc2UgQ09MT1JfUkVEOiAgICByZXR1cm4gRk9SRUdST1VORF9S
RUQ7Ci0gICAgY2FzZSBDT0xPUl9HUkVFTjogIHJldHVybiBGT1JFR1JPVU5EX0dSRUVOOwotICAg
IGNhc2UgQ09MT1JfWUVMTE9XOiByZXR1cm4gRk9SRUdST1VORF9SRUQgfCBGT1JFR1JPVU5EX0dS
RUVOOworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1JlZDoKKyAgICAgIHJldHVybiBGT1JFR1JPVU5E
X1JFRDsKKyAgICBjYXNlIEdUZXN0Q29sb3I6OmtHcmVlbjoKKyAgICAgIHJldHVybiBGT1JFR1JP
VU5EX0dSRUVOOworICAgIGNhc2UgR1Rlc3RDb2xvcjo6a1llbGxvdzoKKyAgICAgIHJldHVybiBG
T1JFR1JPVU5EX1JFRCB8IEZPUkVHUk9VTkRfR1JFRU47CiAgICAgZGVmYXVsdDogICAgICAgICAg
IHJldHVybiAwOwogICB9CiB9CkBAIC0yOTY3LDIwICszMjEzLDI0IEBAIHN0YXRpYyBXT1JEIEdl
dE5ld0NvbG9yKEdUZXN0Q29sb3IgY29sb3IsIFdPUkQgb2xkX2NvbG9yX2F0dHJzKSB7CiAKICNl
bHNlCiAKLS8vIFJldHVybnMgdGhlIEFOU0kgY29sb3IgY29kZSBmb3IgdGhlIGdpdmVuIGNvbG9y
LiAgQ09MT1JfREVGQVVMVCBpcworLy8gUmV0dXJucyB0aGUgQU5TSSBjb2xvciBjb2RlIGZvciB0
aGUgZ2l2ZW4gY29sb3IuIEdUZXN0Q29sb3I6OmtEZWZhdWx0IGlzCiAvLyBhbiBpbnZhbGlkIGlu
cHV0Lgogc3RhdGljIGNvbnN0IGNoYXIqIEdldEFuc2lDb2xvckNvZGUoR1Rlc3RDb2xvciBjb2xv
cikgewogICBzd2l0Y2ggKGNvbG9yKSB7Ci0gICAgY2FzZSBDT0xPUl9SRUQ6ICAgICByZXR1cm4g
IjEiOwotICAgIGNhc2UgQ09MT1JfR1JFRU46ICAgcmV0dXJuICIyIjsKLSAgICBjYXNlIENPTE9S
X1lFTExPVzogIHJldHVybiAiMyI7Ci0gICAgZGVmYXVsdDogICAgICAgICAgICByZXR1cm4gTlVM
TDsKLSAgfTsKKyAgICBjYXNlIEdUZXN0Q29sb3I6OmtSZWQ6CisgICAgICByZXR1cm4gIjEiOwor
ICAgIGNhc2UgR1Rlc3RDb2xvcjo6a0dyZWVuOgorICAgICAgcmV0dXJuICIyIjsKKyAgICBjYXNl
IEdUZXN0Q29sb3I6OmtZZWxsb3c6CisgICAgICByZXR1cm4gIjMiOworICAgIGRlZmF1bHQ6Cisg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQogfQogCiAjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1MgJiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgR29v
Z2xlIFRlc3Qgc2hvdWxkIHVzZSBjb2xvcnMgaW4gdGhlIG91dHB1dC4KKy8vIFJldHVybnMgdHJ1
ZSBpZiBhbmQgb25seSBpZiBHb29nbGUgVGVzdCBzaG91bGQgdXNlIGNvbG9ycyBpbiB0aGUgb3V0
cHV0LgogYm9vbCBTaG91bGRVc2VDb2xvcihib29sIHN0ZG91dF9pc190dHkpIHsKICAgY29uc3Qg
Y2hhciogY29uc3QgZ3Rlc3RfY29sb3IgPSBHVEVTVF9GTEFHKGNvbG9yKS5jX3N0cigpOwogCkBA
IC0zMDIxLDE5ICszMjcxLDIwIEBAIGJvb2wgU2hvdWxkVXNlQ29sb3IoYm9vbCBzdGRvdXRfaXNf
dHR5KSB7CiAvLyBjYW5ub3Qgc2ltcGx5IGVtaXQgc3BlY2lhbCBjaGFyYWN0ZXJzIGFuZCBoYXZl
IHRoZSB0ZXJtaW5hbCBjaGFuZ2UgY29sb3JzLgogLy8gVGhpcyByb3V0aW5lIG11c3QgYWN0dWFs
bHkgZW1pdCB0aGUgY2hhcmFjdGVycyByYXRoZXIgdGhhbiByZXR1cm4gYSBzdHJpbmcKIC8vIHRo
YXQgd291bGQgYmUgY29sb3JlZCB3aGVuIHByaW50ZWQsIGFzIGNhbiBiZSBkb25lIG9uIExpbnV4
Lgotc3RhdGljIHZvaWQgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yIGNvbG9yLCBjb25zdCBjaGFy
KiBmbXQsIC4uLikgeworCitHVEVTVF9BVFRSSUJVVEVfUFJJTlRGXygyLCAzKQorc3RhdGljIHZv
aWQgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yIGNvbG9yLCBjb25zdCBjaGFyICpmbXQsIC4uLikg
ewogICB2YV9saXN0IGFyZ3M7CiAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7CiAKLSNpZiBHVEVTVF9P
U19XSU5ET1dTX01PQklMRSB8fCBHVEVTVF9PU19TWU1CSUFOIHx8IEdURVNUX09TX1pPUyB8fCBc
Ci0gICAgR1RFU1RfT1NfSU9TIHx8IEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgR1RFU1RfT1Nf
V0lORE9XU19SVAorI2lmIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNUX09TX1pPUyB8
fCBHVEVTVF9PU19JT1MgfHwgXAorICAgIEdURVNUX09TX1dJTkRPV1NfUEhPTkUgfHwgR1RFU1Rf
T1NfV0lORE9XU19SVCB8fCBkZWZpbmVkKEVTUF9QTEFURk9STSkKICAgY29uc3QgYm9vbCB1c2Vf
Y29sb3IgPSBBbHdheXNGYWxzZSgpOwogI2Vsc2UKICAgc3RhdGljIGNvbnN0IGJvb2wgaW5fY29s
b3JfbW9kZSA9CiAgICAgICBTaG91bGRVc2VDb2xvcihwb3NpeDo6SXNBVFRZKHBvc2l4OjpGaWxl
Tm8oc3Rkb3V0KSkgIT0gMCk7Ci0gIGNvbnN0IGJvb2wgdXNlX2NvbG9yID0gaW5fY29sb3JfbW9k
ZSAmJiAoY29sb3IgIT0gQ09MT1JfREVGQVVMVCk7Ci0jZW5kaWYgIC8vIEdURVNUX09TX1dJTkRP
V1NfTU9CSUxFIHx8IEdURVNUX09TX1NZTUJJQU4gfHwgR1RFU1RfT1NfWk9TCi0gIC8vIFRoZSAn
IT0gMCcgY29tcGFyaXNvbiBpcyBuZWNlc3NhcnkgdG8gc2F0aXNmeSBNU1ZDIDcuMS4KKyAgY29u
c3QgYm9vbCB1c2VfY29sb3IgPSBpbl9jb2xvcl9tb2RlICYmIChjb2xvciAhPSBHVGVzdENvbG9y
OjprRGVmYXVsdCk7CisjZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1NfTU9CSUxFIHx8IEdURVNU
X09TX1pPUwogCiAgIGlmICghdXNlX2NvbG9yKSB7CiAgICAgdnByaW50ZihmbXQsIGFyZ3MpOwpA
QCAtMzA3OSwxNCArMzMzMCwxMyBAQCBzdGF0aWMgdm9pZCBQcmludEZ1bGxUZXN0Q29tbWVudElm
UHJlc2VudChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CiAgIGNvbnN0IGNoYXIqIGNvbnN0
IHR5cGVfcGFyYW0gPSB0ZXN0X2luZm8udHlwZV9wYXJhbSgpOwogICBjb25zdCBjaGFyKiBjb25z
dCB2YWx1ZV9wYXJhbSA9IHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpOwogCi0gIGlmICh0eXBlX3Bh
cmFtICE9IE5VTEwgfHwgdmFsdWVfcGFyYW0gIT0gTlVMTCkgeworICBpZiAodHlwZV9wYXJhbSAh
PSBudWxscHRyIHx8IHZhbHVlX3BhcmFtICE9IG51bGxwdHIpIHsKICAgICBwcmludGYoIiwgd2hl
cmUgIik7Ci0gICAgaWYgKHR5cGVfcGFyYW0gIT0gTlVMTCkgeworICAgIGlmICh0eXBlX3BhcmFt
ICE9IG51bGxwdHIpIHsKICAgICAgIHByaW50ZigiJXMgPSAlcyIsIGtUeXBlUGFyYW1MYWJlbCwg
dHlwZV9wYXJhbSk7Ci0gICAgICBpZiAodmFsdWVfcGFyYW0gIT0gTlVMTCkKLSAgICAgICAgcHJp
bnRmKCIgYW5kICIpOworICAgICAgaWYgKHZhbHVlX3BhcmFtICE9IG51bGxwdHIpIHByaW50Zigi
IGFuZCAiKTsKICAgICB9Ci0gICAgaWYgKHZhbHVlX3BhcmFtICE9IE5VTEwpIHsKKyAgICBpZiAo
dmFsdWVfcGFyYW0gIT0gbnVsbHB0cikgewogICAgICAgcHJpbnRmKCIlcyA9ICVzIiwga1ZhbHVl
UGFyYW1MYWJlbCwgdmFsdWVfcGFyYW0pOwogICAgIH0KICAgfQpAQCAtMzA5OCwyNyArMzM0OCw0
MCBAQCBzdGF0aWMgdm9pZCBQcmludEZ1bGxUZXN0Q29tbWVudElmUHJlc2VudChjb25zdCBUZXN0
SW5mbyYgdGVzdF9pbmZvKSB7CiBjbGFzcyBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIgOiBw
dWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewogIHB1YmxpYzoKICAgUHJldHR5VW5pdFRlc3RSZXN1
bHRQcmludGVyKCkge30KLSAgc3RhdGljIHZvaWQgUHJpbnRUZXN0TmFtZShjb25zdCBjaGFyICog
dGVzdF9jYXNlLCBjb25zdCBjaGFyICogdGVzdCkgewotICAgIHByaW50ZigiJXMuJXMiLCB0ZXN0
X2Nhc2UsIHRlc3QpOworICBzdGF0aWMgdm9pZCBQcmludFRlc3ROYW1lKGNvbnN0IGNoYXIqIHRl
c3Rfc3VpdGUsIGNvbnN0IGNoYXIqIHRlc3QpIHsKKyAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9z
dWl0ZSwgdGVzdCk7CiAgIH0KIAogICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgb3ZlcnJpZGUg
d2hhdCdzIGluIHRoZSBUZXN0RXZlbnRMaXN0ZW5lciBjbGFzcy4KLSAgdmlydHVhbCB2b2lkIE9u
VGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmly
dHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3Qs
IGludCBpdGVyYXRpb24pOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpOwotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVu
dHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykge30KLSAgdmlydHVhbCB2
b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKTsKLSAgdmlydHVh
bCB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pOwotICB2aXJ0dWFs
IHZvaWQgT25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KTsKLSAg
dmlydHVhbCB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmly
dHVhbCB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZp
cnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVu
aXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7fQotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0
aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pOwotICB2aXJ0
dWFsIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykg
e30KKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0
Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRl
c3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25FbnZpcm9u
bWVudHNTZXRVcFN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworICB2
b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8p
IG92ZXJyaWRlIHt9CisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwor
ICB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYgdGVzdF9jYXNlKSBvdmVycmlk
ZTsKKyNlbHNlCisgIHZvaWQgT25UZXN0U3VpdGVTdGFydChjb25zdCBUZXN0U3VpdGUmIHRlc3Rf
c3VpdGUpIG92ZXJyaWRlOworI2VuZGlmICAvLyBPblRlc3RDYXNlU3RhcnQKKworICB2b2lkIE9u
VGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlOworCisgIHZvaWQg
T25UZXN0UGFydFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgcmVzdWx0KSBvdmVycmlkZTsK
KyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgb3ZlcnJpZGU7Cisj
aWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworICB2b2lkIE9uVGVzdENh
c2VFbmQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgb3ZlcnJpZGU7CisjZWxzZQorICB2b2lk
IE9uVGVzdFN1aXRlRW5kKGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgb3ZlcnJpZGU7Cisj
ZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCisgIHZvaWQgT25F
bnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJy
aWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8q
dW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0
IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pIG92ZXJyaWRlOworICB2b2lkIE9u
VGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9
CiAKICBwcml2YXRlOgogICBzdGF0aWMgdm9pZCBQcmludEZhaWxlZFRlc3RzKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QpOworICBzdGF0aWMgdm9pZCBQcmludEZhaWxlZFRlc3RTdWl0ZXMoY29u
c3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CisgIHN0YXRpYyB2b2lkIFByaW50U2tpcHBlZFRlc3Rz
KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpOwogfTsKIAogICAvLyBGaXJlZCBiZWZvcmUgZWFj
aCBpdGVyYXRpb24gb2YgdGVzdHMgc3RhcnRzLgpAQCAtMzEzMiw1NCArMzM5NSw2OSBAQCB2b2lk
IFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0SXRlcmF0aW9uU3RhcnQoCiAgIC8v
IFByaW50cyB0aGUgZmlsdGVyIGlmIGl0J3Mgbm90ICouICBUaGlzIHJlbWluZHMgdGhlIHVzZXIg
dGhhdCBzb21lCiAgIC8vIHRlc3RzIG1heSBiZSBza2lwcGVkLgogICBpZiAoIVN0cmluZzo6Q1N0
cmluZ0VxdWFscyhmaWx0ZXIsIGtVbml2ZXJzYWxGaWx0ZXIpKSB7Ci0gICAgQ29sb3JlZFByaW50
ZihDT0xPUl9ZRUxMT1csCi0gICAgICAgICAgICAgICAgICAiTm90ZTogJXMgZmlsdGVyID0gJXNc
biIsIEdURVNUX05BTUVfLCBmaWx0ZXIpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6
a1llbGxvdywgIk5vdGU6ICVzIGZpbHRlciA9ICVzXG4iLCBHVEVTVF9OQU1FXywKKyAgICAgICAg
ICAgICAgICAgIGZpbHRlcik7CiAgIH0KIAogICBpZiAoaW50ZXJuYWw6OlNob3VsZFNoYXJkKGtU
ZXN0VG90YWxTaGFyZHMsIGtUZXN0U2hhcmRJbmRleCwgZmFsc2UpKSB7Ci0gICAgY29uc3QgSW50
MzIgc2hhcmRfaW5kZXggPSBJbnQzMkZyb21FbnZPckRpZShrVGVzdFNoYXJkSW5kZXgsIC0xKTsK
LSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICJOb3Rl
OiBUaGlzIGlzIHRlc3Qgc2hhcmQgJWQgb2YgJXMuXG4iLAorICAgIGNvbnN0IGludDMyX3Qgc2hh
cmRfaW5kZXggPSBJbnQzMkZyb21FbnZPckRpZShrVGVzdFNoYXJkSW5kZXgsIC0xKTsKKyAgICBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtZZWxsb3csICJOb3RlOiBUaGlzIGlzIHRlc3Qgc2hh
cmQgJWQgb2YgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihzaGFy
ZF9pbmRleCkgKyAxLAogICAgICAgICAgICAgICAgICAgaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYo
a1Rlc3RUb3RhbFNoYXJkcykpOwogICB9CiAKICAgaWYgKEdURVNUX0ZMQUcoc2h1ZmZsZSkpIHsK
LSAgICBDb2xvcmVkUHJpbnRmKENPTE9SX1lFTExPVywKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0
Q29sb3I6OmtZZWxsb3csCiAgICAgICAgICAgICAgICAgICAiTm90ZTogUmFuZG9taXppbmcgdGVz
dHMnIG9yZGVycyB3aXRoIGEgc2VlZCBvZiAlZCAuXG4iLAogICAgICAgICAgICAgICAgICAgdW5p
dF90ZXN0LnJhbmRvbV9zZWVkKCkpOwogICB9CiAKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVF
TiwgICJbPT09PT09PT09PV0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dyZWVu
LCAiWz09PT09PT09PT1dICIpOwogICBwcmludGYoIlJ1bm5pbmcgJXMgZnJvbSAlcy5cbiIsCiAg
ICAgICAgICBGb3JtYXRUZXN0Q291bnQodW5pdF90ZXN0LnRlc3RfdG9fcnVuX2NvdW50KCkpLmNf
c3RyKCksCi0gICAgICAgICBGb3JtYXRUZXN0Q2FzZUNvdW50KHVuaXRfdGVzdC50ZXN0X2Nhc2Vf
dG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOworICAgICAgICAgRm9ybWF0VGVzdFN1aXRlQ291bnQo
dW5pdF90ZXN0LnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOwogICBmZmx1c2go
c3Rkb3V0KTsKIH0KIAogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uRW52aXJv
bm1lbnRzU2V0VXBTdGFydCgKICAgICBjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgewot
ICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAgIlstLS0tLS0tLS0tXSAiKTsKKyAgQ29sb3Jl
ZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJbLS0tLS0tLS0tLV0gIik7CiAgIHByaW50Zigi
R2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgc2V0LXVwLlxuIik7CiAgIGZmbHVzaChzdGRvdXQpOwog
fQogCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogdm9pZCBQcmV0
dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0Q2FzZSYg
dGVzdF9jYXNlKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9CiAgICAgICBGb3JtYXRD
b3VudGFibGVOb3VuKHRlc3RfY2FzZS50ZXN0X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0
cyIpOwotICBDb2xvcmVkUHJpbnRmKENPTE9SX0dSRUVOLCAiWy0tLS0tLS0tLS1dICIpOworICBD
b2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKICAgcHJp
bnRmKCIlcyBmcm9tICVzIiwgY291bnRzLmNfc3RyKCksIHRlc3RfY2FzZS5uYW1lKCkpOwotICBp
ZiAodGVzdF9jYXNlLnR5cGVfcGFyYW0oKSA9PSBOVUxMKSB7CisgIGlmICh0ZXN0X2Nhc2UudHlw
ZV9wYXJhbSgpID09IG51bGxwdHIpIHsKICAgICBwcmludGYoIlxuIik7CiAgIH0gZWxzZSB7CiAg
ICAgcHJpbnRmKCIsIHdoZXJlICVzID0gJXNcbiIsIGtUeXBlUGFyYW1MYWJlbCwgdGVzdF9jYXNl
LnR5cGVfcGFyYW0oKSk7CiAgIH0KICAgZmZsdXNoKHN0ZG91dCk7CiB9CisjZWxzZQordm9pZCBQ
cmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN1aXRlU3RhcnQoCisgICAgY29uc3Qg
VGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSB7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGNvdW50cyA9Cisg
ICAgICBGb3JtYXRDb3VudGFibGVOb3VuKHRlc3Rfc3VpdGUudGVzdF90b19ydW5fY291bnQoKSwg
InRlc3QiLCAidGVzdHMiKTsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3JlZW4sICJb
LS0tLS0tLS0tLV0gIik7CisgIHByaW50ZigiJXMgZnJvbSAlcyIsIGNvdW50cy5jX3N0cigpLCB0
ZXN0X3N1aXRlLm5hbWUoKSk7CisgIGlmICh0ZXN0X3N1aXRlLnR5cGVfcGFyYW0oKSA9PSBudWxs
cHRyKSB7CisgICAgcHJpbnRmKCJcbiIpOworICB9IGVsc2UgeworICAgIHByaW50ZigiLCB3aGVy
ZSAlcyA9ICVzXG4iLCBrVHlwZVBhcmFtTGFiZWwsIHRlc3Rfc3VpdGUudHlwZV9wYXJhbSgpKTsK
KyAgfQorICBmZmx1c2goc3Rkb3V0KTsKK30KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FD
WV9URVNUX0NBU0VBUElfCiAKIHZvaWQgUHJldHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRl
c3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gIENvbG9yZWRQcmludGYoQ09M
T1JfR1JFRU4sICAiWyBSVU4gICAgICBdICIpOwotICBQcmludFRlc3ROYW1lKHRlc3RfaW5mby50
ZXN0X2Nhc2VfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKKyAgQ29sb3JlZFByaW50ZihHVGVz
dENvbG9yOjprR3JlZW4sICJbIFJVTiAgICAgIF0gIik7CisgIFByaW50VGVzdE5hbWUodGVzdF9p
bmZvLnRlc3Rfc3VpdGVfbmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKICAgcHJpbnRmKCJcbiIp
OwogICBmZmx1c2goc3Rkb3V0KTsKIH0KQEAgLTMxODcsMjIgKzM0NjUsMjcgQEAgdm9pZCBQcmV0
dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiB0ZXN0
X2luZm8pIHsKIC8vIENhbGxlZCBhZnRlciBhbiBhc3NlcnRpb24gZmFpbHVyZS4KIHZvaWQgUHJl
dHR5VW5pdFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RQYXJ0UmVzdWx0KAogICAgIGNvbnN0IFRl
c3RQYXJ0UmVzdWx0JiByZXN1bHQpIHsKLSAgLy8gSWYgdGhlIHRlc3QgcGFydCBzdWNjZWVkZWQs
IHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCi0gIGlmIChyZXN1bHQudHlwZSgpID09IFRl
c3RQYXJ0UmVzdWx0OjprU3VjY2VzcykKLSAgICByZXR1cm47Ci0KLSAgLy8gUHJpbnQgZmFpbHVy
ZSBtZXNzYWdlIGZyb20gdGhlIGFzc2VydGlvbiAoZS5nLiBleHBlY3RlZCB0aGlzIGFuZCBnb3Qg
dGhhdCkuCi0gIFByaW50VGVzdFBhcnRSZXN1bHQocmVzdWx0KTsKLSAgZmZsdXNoKHN0ZG91dCk7
CisgIHN3aXRjaCAocmVzdWx0LnR5cGUoKSkgeworICAgIC8vIElmIHRoZSB0ZXN0IHBhcnQgc3Vj
Y2VlZGVkLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLgorICAgIGNhc2UgVGVzdFBhcnRS
ZXN1bHQ6OmtTdWNjZXNzOgorICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAvLyBQ
cmludCBmYWlsdXJlIG1lc3NhZ2UgZnJvbSB0aGUgYXNzZXJ0aW9uCisgICAgICAvLyAoZS5nLiBl
eHBlY3RlZCB0aGlzIGFuZCBnb3QgdGhhdCkuCisgICAgICBQcmludFRlc3RQYXJ0UmVzdWx0KHJl
c3VsdCk7CisgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgfQogfQogCiB2b2lkIFByZXR0eVVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsK
ICAgaWYgKHRlc3RfaW5mby5yZXN1bHQoKS0+UGFzc2VkKCkpIHsKLSAgICBDb2xvcmVkUHJpbnRm
KENPTE9SX0dSRUVOLCAiWyAgICAgICBPSyBdICIpOworICAgIENvbG9yZWRQcmludGYoR1Rlc3RD
b2xvcjo6a0dyZWVuLCAiWyAgICAgICBPSyBdICIpOworICB9IGVsc2UgaWYgKHRlc3RfaW5mby5y
ZXN1bHQoKS0+U2tpcHBlZCgpKSB7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprR3Jl
ZW4sICJbICBTS0lQUEVEIF0gIik7CiAgIH0gZWxzZSB7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xP
Ul9SRUQsICJbICBGQUlMRUQgIF0gIik7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjpr
UmVkLCAiWyAgRkFJTEVEICBdICIpOwogICB9Ci0gIFByaW50VGVzdE5hbWUodGVzdF9pbmZvLnRl
c3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICBQcmludFRlc3ROYW1lKHRlc3Rf
aW5mby50ZXN0X3N1aXRlX25hbWUoKSwgdGVzdF9pbmZvLm5hbWUoKSk7CiAgIGlmICh0ZXN0X2lu
Zm8ucmVzdWx0KCktPkZhaWxlZCgpKQogICAgIFByaW50RnVsbFRlc3RDb21tZW50SWZQcmVzZW50
KHRlc3RfaW5mbyk7CiAKQEAgLTMyMTUsMjEgKzM0OTgsMzMgQEAgdm9pZCBQcmV0dHlVbml0VGVz
dFJlc3VsdFByaW50ZXI6Ok9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7CiAg
IGZmbHVzaChzdGRvdXQpOwogfQogCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9D
QVNFQVBJXwogdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdENhc2VFbmQo
Y29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgewogICBpZiAoIUdURVNUX0ZMQUcocHJpbnRfdGlt
ZSkpIHJldHVybjsKIAogICBjb25zdCBzdGQ6OnN0cmluZyBjb3VudHMgPQogICAgICAgRm9ybWF0
Q291bnRhYmxlTm91bih0ZXN0X2Nhc2UudGVzdF90b19ydW5fY291bnQoKSwgInRlc3QiLCAidGVz
dHMiKTsKLSAgQ29sb3JlZFByaW50ZihDT0xPUl9HUkVFTiwgIlstLS0tLS0tLS0tXSAiKTsKLSAg
cHJpbnRmKCIlcyBmcm9tICVzICglcyBtcyB0b3RhbClcblxuIiwKLSAgICAgICAgIGNvdW50cy5j
X3N0cigpLCB0ZXN0X2Nhc2UubmFtZSgpLAorICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtH
cmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzICglcyBtcyB0b3Rh
bClcblxuIiwgY291bnRzLmNfc3RyKCksIHRlc3RfY2FzZS5uYW1lKCksCiAgICAgICAgICBpbnRl
cm5hbDo6U3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfY2FzZS5lbGFwc2VkX3RpbWUoKSkuY19zdHIo
KSk7CiAgIGZmbHVzaChzdGRvdXQpOwogfQorI2Vsc2UKK3ZvaWQgUHJldHR5VW5pdFRlc3RSZXN1
bHRQcmludGVyOjpPblRlc3RTdWl0ZUVuZChjb25zdCBUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIHsK
KyAgaWYgKCFHVEVTVF9GTEFHKHByaW50X3RpbWUpKSByZXR1cm47CisKKyAgY29uc3Qgc3RkOjpz
dHJpbmcgY291bnRzID0KKyAgICAgIEZvcm1hdENvdW50YWJsZU5vdW4odGVzdF9zdWl0ZS50ZXN0
X3RvX3J1bl9jb3VudCgpLCAidGVzdCIsICJ0ZXN0cyIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0
Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0tXSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzICgl
cyBtcyB0b3RhbClcblxuIiwgY291bnRzLmNfc3RyKCksIHRlc3Rfc3VpdGUubmFtZSgpLAorICAg
ICAgICAgaW50ZXJuYWw6OlN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLmVsYXBzZWRfdGlt
ZSgpKS5jX3N0cigpKTsKKyAgZmZsdXNoKHN0ZG91dCk7Cit9CisjZW5kaWYgIC8vIEdURVNUX1JF
TU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwogCiB2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KAogICAgIGNvbnN0IFVuaXRUZXN0JiAv
KnVuaXRfdGVzdCovKSB7Ci0gIENvbG9yZWRQcmludGYoQ09MT1JfR1JFRU4sICAiWy0tLS0tLS0t
LS1dICIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlstLS0tLS0tLS0t
XSAiKTsKICAgcHJpbnRmKCJHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0ZWFyLWRvd25cbiIpOwog
ICBmZmx1c2goc3Rkb3V0KTsKIH0KQEAgLTMyMzcsMjMgKzM1MzIsNzAgQEAgdm9pZCBQcmV0dHlV
bml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCgKIC8vIElu
dGVybmFsIGhlbHBlciBmb3IgcHJpbnRpbmcgdGhlIGxpc3Qgb2YgZmFpbGVkIHRlc3RzLgogdm9p
ZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5p
dFRlc3QmIHVuaXRfdGVzdCkgewogICBjb25zdCBpbnQgZmFpbGVkX3Rlc3RfY291bnQgPSB1bml0
X3Rlc3QuZmFpbGVkX3Rlc3RfY291bnQoKTsKLSAgaWYgKGZhaWxlZF90ZXN0X2NvdW50ID09IDAp
IHsKKyAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLCAiWyAgRkFJTEVEICBdICIpOwor
ICBwcmludGYoIiVzLCBsaXN0ZWQgYmVsb3c6XG4iLCBGb3JtYXRUZXN0Q291bnQoZmFpbGVkX3Rl
c3RfY291bnQpLmNfc3RyKCkpOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRv
dGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAgY29uc3QgVGVzdFN1aXRlJiB0ZXN0
X3N1aXRlID0gKnVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7CisgICAgaWYgKCF0ZXN0X3N1aXRl
LnNob3VsZF9ydW4oKSB8fCAodGVzdF9zdWl0ZS5mYWlsZWRfdGVzdF9jb3VudCgpID09IDApKSB7
CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0X3N1
aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytqKSB7CisgICAgICBjb25zdCBUZXN0SW5mbyYgdGVz
dF9pbmZvID0gKnRlc3Rfc3VpdGUuR2V0VGVzdEluZm8oaik7CisgICAgICBpZiAoIXRlc3RfaW5m
by5zaG91bGRfcnVuKCkgfHwgIXRlc3RfaW5mby5yZXN1bHQoKS0+RmFpbGVkKCkpIHsKKyAgICAg
ICAgY29udGludWU7CisgICAgICB9CisgICAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtS
ZWQsICJbICBGQUlMRUQgIF0gIik7CisgICAgICBwcmludGYoIiVzLiVzIiwgdGVzdF9zdWl0ZS5u
YW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJZlBy
ZXNlbnQodGVzdF9pbmZvKTsKKyAgICAgIHByaW50ZigiXG4iKTsKKyAgICB9CisgIH0KKyAgcHJp
bnRmKCJcbiUyZCBGQUlMRUQgJXNcbiIsIGZhaWxlZF90ZXN0X2NvdW50LAorICAgICAgICAgZmFp
bGVkX3Rlc3RfY291bnQgPT0gMSA/ICJURVNUIiA6ICJURVNUUyIpOworfQorCisvLyBJbnRlcm5h
bCBoZWxwZXIgZm9yIHByaW50aW5nIHRoZSBsaXN0IG9mIHRlc3Qgc3VpdGUgZmFpbHVyZXMgbm90
IGNvdmVyZWQgYnkKKy8vIFByaW50RmFpbGVkVGVzdHMuCit2b2lkIFByZXR0eVVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6UHJpbnRGYWlsZWRUZXN0U3VpdGVzKAorICAgIGNvbnN0IFVuaXRUZXN0JiB1
bml0X3Rlc3QpIHsKKyAgaW50IHN1aXRlX2ZhaWx1cmVfY291bnQgPSAwOworICBmb3IgKGludCBp
ID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCk7ICsraSkgeworICAg
IGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSA9ICp1bml0X3Rlc3QuR2V0VGVzdFN1aXRlKGkp
OworICAgIGlmICghdGVzdF9zdWl0ZS5zaG91bGRfcnVuKCkpIHsKKyAgICAgIGNvbnRpbnVlOwor
ICAgIH0KKyAgICBpZiAodGVzdF9zdWl0ZS5hZF9ob2NfdGVzdF9yZXN1bHQoKS5GYWlsZWQoKSkg
eworICAgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLCAiWyAgRkFJTEVEICBdICIp
OworICAgICAgcHJpbnRmKCIlczogU2V0VXBUZXN0U3VpdGUgb3IgVGVhckRvd25UZXN0U3VpdGVc
biIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKKyAgICAgICsrc3VpdGVfZmFpbHVyZV9jb3VudDsKKyAg
ICB9CisgIH0KKyAgaWYgKHN1aXRlX2ZhaWx1cmVfY291bnQgPiAwKSB7CisgICAgcHJpbnRmKCJc
biUyZCBGQUlMRUQgVEVTVCAlc1xuIiwgc3VpdGVfZmFpbHVyZV9jb3VudCwKKyAgICAgICAgICAg
c3VpdGVfZmFpbHVyZV9jb3VudCA9PSAxID8gIlNVSVRFIiA6ICJTVUlURVMiKTsKKyAgfQorfQor
CisvLyBJbnRlcm5hbCBoZWxwZXIgZm9yIHByaW50aW5nIHRoZSBsaXN0IG9mIHNraXBwZWQgdGVz
dHMuCit2b2lkIFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRTa2lwcGVkVGVzdHMo
Y29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgeworICBjb25zdCBpbnQgc2tpcHBlZF90ZXN0X2Nv
dW50ID0gdW5pdF90ZXN0LnNraXBwZWRfdGVzdF9jb3VudCgpOworICBpZiAoc2tpcHBlZF90ZXN0
X2NvdW50ID09IDApIHsKICAgICByZXR1cm47CiAgIH0KIAotICBmb3IgKGludCBpID0gMDsgaSA8
IHVuaXRfdGVzdC50b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsgKytpKSB7Ci0gICAgY29uc3QgVGVz
dENhc2UmIHRlc3RfY2FzZSA9ICp1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Ci0gICAgaWYgKCF0
ZXN0X2Nhc2Uuc2hvdWxkX3J1bigpIHx8ICh0ZXN0X2Nhc2UuZmFpbGVkX3Rlc3RfY291bnQoKSA9
PSAwKSkgeworICBmb3IgKGludCBpID0gMDsgaSA8IHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRl
X2NvdW50KCk7ICsraSkgeworICAgIGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSA9ICp1bml0
X3Rlc3QuR2V0VGVzdFN1aXRlKGkpOworICAgIGlmICghdGVzdF9zdWl0ZS5zaG91bGRfcnVuKCkg
fHwgKHRlc3Rfc3VpdGUuc2tpcHBlZF90ZXN0X2NvdW50KCkgPT0gMCkpIHsKICAgICAgIGNvbnRp
bnVlOwogICAgIH0KLSAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RfY2FzZS50b3RhbF90ZXN0
X2NvdW50KCk7ICsraikgewotICAgICAgY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbyA9ICp0ZXN0
X2Nhc2UuR2V0VGVzdEluZm8oaik7Ci0gICAgICBpZiAoIXRlc3RfaW5mby5zaG91bGRfcnVuKCkg
fHwgdGVzdF9pbmZvLnJlc3VsdCgpLT5QYXNzZWQoKSkgeworICAgIGZvciAoaW50IGogPSAwOyBq
IDwgdGVzdF9zdWl0ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraikgeworICAgICAgY29uc3QgVGVz
dEluZm8mIHRlc3RfaW5mbyA9ICp0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGopOworICAgICAgaWYg
KCF0ZXN0X2luZm8uc2hvdWxkX3J1bigpIHx8ICF0ZXN0X2luZm8ucmVzdWx0KCktPlNraXBwZWQo
KSkgewogICAgICAgICBjb250aW51ZTsKICAgICAgIH0KLSAgICAgIENvbG9yZWRQcmludGYoQ09M
T1JfUkVELCAiWyAgRkFJTEVEICBdICIpOwotICAgICAgcHJpbnRmKCIlcy4lcyIsIHRlc3RfY2Fz
ZS5uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwotICAgICAgUHJpbnRGdWxsVGVzdENvbW1lbnRJ
ZlByZXNlbnQodGVzdF9pbmZvKTsKKyAgICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a0dy
ZWVuLCAiWyAgU0tJUFBFRCBdICIpOworICAgICAgcHJpbnRmKCIlcy4lcyIsIHRlc3Rfc3VpdGUu
bmFtZSgpLCB0ZXN0X2luZm8ubmFtZSgpKTsKICAgICAgIHByaW50ZigiXG4iKTsKICAgICB9CiAg
IH0KQEAgLTMyNjEsMzcgKzM2MDMsMzcgQEAgdm9pZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50
ZXI6OlByaW50RmFpbGVkVGVzdHMoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCkgewogCiB2b2lk
IFByZXR0eVVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVu
aXRUZXN0JiB1bml0X3Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCAvKml0ZXJhdGlvbiovKSB7Ci0gIENvbG9yZWRQcmludGYoQ09M
T1JfR1JFRU4sICAiWz09PT09PT09PT1dICIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6
OmtHcmVlbiwgIls9PT09PT09PT09XSAiKTsKICAgcHJpbnRmKCIlcyBmcm9tICVzIHJhbi4iLAog
ICAgICAgICAgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC50ZXN0X3RvX3J1bl9jb3VudCgpKS5j
X3N0cigpLAotICAgICAgICAgRm9ybWF0VGVzdENhc2VDb3VudCh1bml0X3Rlc3QudGVzdF9jYXNl
X3RvX3J1bl9jb3VudCgpKS5jX3N0cigpKTsKKyAgICAgICAgIEZvcm1hdFRlc3RTdWl0ZUNvdW50
KHVuaXRfdGVzdC50ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpKS5jX3N0cigpKTsKICAgaWYgKEdU
RVNUX0ZMQUcocHJpbnRfdGltZSkpIHsKICAgICBwcmludGYoIiAoJXMgbXMgdG90YWwpIiwKICAg
ICAgICAgICAgaW50ZXJuYWw6OlN0cmVhbWFibGVUb1N0cmluZyh1bml0X3Rlc3QuZWxhcHNlZF90
aW1lKCkpLmNfc3RyKCkpOwogICB9CiAgIHByaW50ZigiXG4iKTsKLSAgQ29sb3JlZFByaW50ZihD
T0xPUl9HUkVFTiwgICJbICBQQVNTRUQgIF0gIik7CisgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xv
cjo6a0dyZWVuLCAiWyAgUEFTU0VEICBdICIpOwogICBwcmludGYoIiVzLlxuIiwgRm9ybWF0VGVz
dENvdW50KHVuaXRfdGVzdC5zdWNjZXNzZnVsX3Rlc3RfY291bnQoKSkuY19zdHIoKSk7CiAKLSAg
aW50IG51bV9mYWlsdXJlcyA9IHVuaXRfdGVzdC5mYWlsZWRfdGVzdF9jb3VudCgpOworICBjb25z
dCBpbnQgc2tpcHBlZF90ZXN0X2NvdW50ID0gdW5pdF90ZXN0LnNraXBwZWRfdGVzdF9jb3VudCgp
OworICBpZiAoc2tpcHBlZF90ZXN0X2NvdW50ID4gMCkgeworICAgIENvbG9yZWRQcmludGYoR1Rl
c3RDb2xvcjo6a0dyZWVuLCAiWyAgU0tJUFBFRCBdICIpOworICAgIHByaW50ZigiJXMsIGxpc3Rl
ZCBiZWxvdzpcbiIsIEZvcm1hdFRlc3RDb3VudChza2lwcGVkX3Rlc3RfY291bnQpLmNfc3RyKCkp
OworICAgIFByaW50U2tpcHBlZFRlc3RzKHVuaXRfdGVzdCk7CisgIH0KKwogICBpZiAoIXVuaXRf
dGVzdC5QYXNzZWQoKSkgewotICAgIGNvbnN0IGludCBmYWlsZWRfdGVzdF9jb3VudCA9IHVuaXRf
dGVzdC5mYWlsZWRfdGVzdF9jb3VudCgpOwotICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELCAg
IlsgIEZBSUxFRCAgXSAiKTsKLSAgICBwcmludGYoIiVzLCBsaXN0ZWQgYmVsb3c6XG4iLCBGb3Jt
YXRUZXN0Q291bnQoZmFpbGVkX3Rlc3RfY291bnQpLmNfc3RyKCkpOwogICAgIFByaW50RmFpbGVk
VGVzdHModW5pdF90ZXN0KTsKLSAgICBwcmludGYoIlxuJTJkIEZBSUxFRCAlc1xuIiwgbnVtX2Zh
aWx1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2ZhaWx1cmVzID09IDEgPyAiVEVT
VCIgOiAiVEVTVFMiKTsKKyAgICBQcmludEZhaWxlZFRlc3RTdWl0ZXModW5pdF90ZXN0KTsKICAg
fQogCiAgIGludCBudW1fZGlzYWJsZWQgPSB1bml0X3Rlc3QucmVwb3J0YWJsZV9kaXNhYmxlZF90
ZXN0X2NvdW50KCk7CiAgIGlmIChudW1fZGlzYWJsZWQgJiYgIUdURVNUX0ZMQUcoYWxzb19ydW5f
ZGlzYWJsZWRfdGVzdHMpKSB7Ci0gICAgaWYgKCFudW1fZmFpbHVyZXMpIHsKKyAgICBpZiAodW5p
dF90ZXN0LlBhc3NlZCgpKSB7CiAgICAgICBwcmludGYoIlxuIik7ICAvLyBBZGQgYSBzcGFjZXIg
aWYgbm8gRkFJTFVSRSBiYW5uZXIgaXMgZGlzcGxheWVkLgogICAgIH0KLSAgICBDb2xvcmVkUHJp
bnRmKENPTE9SX1lFTExPVywKLSAgICAgICAgICAgICAgICAgICIgIFlPVSBIQVZFICVkIERJU0FC
TEVEICVzXG5cbiIsCi0gICAgICAgICAgICAgICAgICBudW1fZGlzYWJsZWQsCi0gICAgICAgICAg
ICAgICAgICBudW1fZGlzYWJsZWQgPT0gMSA/ICJURVNUIiA6ICJURVNUUyIpOworICAgIENvbG9y
ZWRQcmludGYoR1Rlc3RDb2xvcjo6a1llbGxvdywgIiAgWU9VIEhBVkUgJWQgRElTQUJMRUQgJXNc
blxuIiwKKyAgICAgICAgICAgICAgICAgIG51bV9kaXNhYmxlZCwgbnVtX2Rpc2FibGVkID09IDEg
PyAiVEVTVCIgOiAiVEVTVFMiKTsKICAgfQogICAvLyBFbnN1cmUgdGhhdCBHb29nbGUgVGVzdCBv
dXRwdXQgaXMgcHJpbnRlZCBiZWZvcmUsIGUuZy4sIGhlYXBjaGVja2VyIG91dHB1dC4KICAgZmZs
dXNoKHN0ZG91dCk7CkBAIC0zMjk5LDEzICszNjQxLDExNyBAQCB2b2lkIFByZXR0eVVuaXRUZXN0
UmVzdWx0UHJpbnRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rl
c3QsCiAKIC8vIEVuZCBQcmV0dHlVbml0VGVzdFJlc3VsdFByaW50ZXIKIAorLy8gVGhpcyBjbGFz
cyBpbXBsZW1lbnRzIHRoZSBUZXN0RXZlbnRMaXN0ZW5lciBpbnRlcmZhY2UuCisvLworLy8gQ2xh
c3MgQnJpZWZVbml0VGVzdFJlc3VsdFByaW50ZXIgaXMgY29weWFibGUuCitjbGFzcyBCcmllZlVu
aXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CisgcHVibGlj
OgorICBCcmllZlVuaXRUZXN0UmVzdWx0UHJpbnRlcigpIHt9CisgIHN0YXRpYyB2b2lkIFByaW50
VGVzdE5hbWUoY29uc3QgY2hhciogdGVzdF9zdWl0ZSwgY29uc3QgY2hhciogdGVzdCkgeworICAg
IHByaW50ZigiJXMuJXMiLCB0ZXN0X3N1aXRlLCB0ZXN0KTsKKyAgfQorCisgIC8vIFRoZSBmb2xs
b3dpbmcgbWV0aG9kcyBvdmVycmlkZSB3aGF0J3MgaW4gdGhlIFRlc3RFdmVudExpc3RlbmVyIGNs
YXNzLgorICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rl
c3QqLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgLypp
dGVyYXRpb24qLykgb3ZlcnJpZGUge30KKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwU3RhcnQo
Y29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZp
cm9ubWVudHNTZXRVcEVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUg
e30KKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25U
ZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBvdmVycmlkZSB7fQor
I2Vsc2UKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgLyp0ZXN0X3N1
aXRlKi8pIG92ZXJyaWRlIHt9CisjZW5kaWYgIC8vIE9uVGVzdENhc2VTdGFydAorCisgIHZvaWQg
T25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZvKi8pIG92ZXJyaWRlIHt9CisK
KyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiByZXN1bHQpIG92
ZXJyaWRlOworICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKSBvdmVy
cmlkZTsKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQg
T25UZXN0Q2FzZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgb3ZlcnJpZGUge30K
KyNlbHNlCisgIHZvaWQgT25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3Vp
dGUqLykgb3ZlcnJpZGUge30KKyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NB
U0VBUElfCisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5pdFRl
c3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHt9CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFy
RG93bkVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KKyAgdm9p
ZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJh
dGlvbikgb3ZlcnJpZGU7CisgIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYg
Lyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUge30KK307CisKKy8vIENhbGxlZCBhZnRlciBhbiBhc3Nl
cnRpb24gZmFpbHVyZS4KK3ZvaWQgQnJpZWZVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok9uVGVzdFBh
cnRSZXN1bHQoCisgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCkgeworICBzd2l0Y2gg
KHJlc3VsdC50eXBlKCkpIHsKKyAgICAvLyBJZiB0aGUgdGVzdCBwYXJ0IHN1Y2NlZWRlZCwgd2Ug
ZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZy4KKyAgICBjYXNlIFRlc3RQYXJ0UmVzdWx0OjprU3Vj
Y2VzczoKKyAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgLy8gUHJpbnQgZmFpbHVy
ZSBtZXNzYWdlIGZyb20gdGhlIGFzc2VydGlvbgorICAgICAgLy8gKGUuZy4gZXhwZWN0ZWQgdGhp
cyBhbmQgZ290IHRoYXQpLgorICAgICAgUHJpbnRUZXN0UGFydFJlc3VsdChyZXN1bHQpOworICAg
ICAgZmZsdXNoKHN0ZG91dCk7CisgIH0KK30KKwordm9pZCBCcmllZlVuaXRUZXN0UmVzdWx0UHJp
bnRlcjo6T25UZXN0RW5kKGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKKyAgaWYgKHRlc3Rf
aW5mby5yZXN1bHQoKS0+RmFpbGVkKCkpIHsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6
OmtSZWQsICJbICBGQUlMRUQgIF0gIik7CisgICAgUHJpbnRUZXN0TmFtZSh0ZXN0X2luZm8udGVz
dF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICAgIFByaW50RnVsbFRlc3RDb21t
ZW50SWZQcmVzZW50KHRlc3RfaW5mbyk7CisKKyAgICBpZiAoR1RFU1RfRkxBRyhwcmludF90aW1l
KSkgeworICAgICAgcHJpbnRmKCIgKCVzIG1zKVxuIiwKKyAgICAgICAgICAgICBpbnRlcm5hbDo6
U3RyZWFtYWJsZVRvU3RyaW5nKHRlc3RfaW5mby5yZXN1bHQoKS0+ZWxhcHNlZF90aW1lKCkpCisg
ICAgICAgICAgICAgICAgIC5jX3N0cigpKTsKKyAgICB9IGVsc2UgeworICAgICAgcHJpbnRmKCJc
biIpOworICAgIH0KKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgfQorfQorCit2b2lkIEJyaWVmVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIHVu
aXRfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgLyppdGVyYXRpb24qLykgeworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtH
cmVlbiwgIls9PT09PT09PT09XSAiKTsKKyAgcHJpbnRmKCIlcyBmcm9tICVzIHJhbi4iLAorICAg
ICAgICAgRm9ybWF0VGVzdENvdW50KHVuaXRfdGVzdC50ZXN0X3RvX3J1bl9jb3VudCgpKS5jX3N0
cigpLAorICAgICAgICAgRm9ybWF0VGVzdFN1aXRlQ291bnQodW5pdF90ZXN0LnRlc3Rfc3VpdGVf
dG9fcnVuX2NvdW50KCkpLmNfc3RyKCkpOworICBpZiAoR1RFU1RfRkxBRyhwcmludF90aW1lKSkg
eworICAgIHByaW50ZigiICglcyBtcyB0b3RhbCkiLAorICAgICAgICAgICBpbnRlcm5hbDo6U3Ry
ZWFtYWJsZVRvU3RyaW5nKHVuaXRfdGVzdC5lbGFwc2VkX3RpbWUoKSkuY19zdHIoKSk7CisgIH0K
KyAgcHJpbnRmKCJcbiIpOworICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtHcmVlbiwgIlsg
IFBBU1NFRCAgXSAiKTsKKyAgcHJpbnRmKCIlcy5cbiIsIEZvcm1hdFRlc3RDb3VudCh1bml0X3Rl
c3Quc3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpLmNfc3RyKCkpOworCisgIGNvbnN0IGludCBza2lw
cGVkX3Rlc3RfY291bnQgPSB1bml0X3Rlc3Quc2tpcHBlZF90ZXN0X2NvdW50KCk7CisgIGlmIChz
a2lwcGVkX3Rlc3RfY291bnQgPiAwKSB7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENvbG9yOjpr
R3JlZW4sICJbICBTS0lQUEVEIF0gIik7CisgICAgcHJpbnRmKCIlcy5cbiIsIEZvcm1hdFRlc3RD
b3VudChza2lwcGVkX3Rlc3RfY291bnQpLmNfc3RyKCkpOworICB9CisKKyAgaW50IG51bV9kaXNh
YmxlZCA9IHVuaXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKTsKKyAgaWYg
KG51bV9kaXNhYmxlZCAmJiAhR1RFU1RfRkxBRyhhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cykpIHsK
KyAgICBpZiAodW5pdF90ZXN0LlBhc3NlZCgpKSB7CisgICAgICBwcmludGYoIlxuIik7ICAvLyBB
ZGQgYSBzcGFjZXIgaWYgbm8gRkFJTFVSRSBiYW5uZXIgaXMgZGlzcGxheWVkLgorICAgIH0KKyAg
ICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtZZWxsb3csICIgIFlPVSBIQVZFICVkIERJU0FC
TEVEICVzXG5cbiIsCisgICAgICAgICAgICAgICAgICBudW1fZGlzYWJsZWQsIG51bV9kaXNhYmxl
ZCA9PSAxID8gIlRFU1QiIDogIlRFU1RTIik7CisgIH0KKyAgLy8gRW5zdXJlIHRoYXQgR29vZ2xl
IFRlc3Qgb3V0cHV0IGlzIHByaW50ZWQgYmVmb3JlLCBlLmcuLCBoZWFwY2hlY2tlciBvdXRwdXQu
CisgIGZmbHVzaChzdGRvdXQpOworfQorCisvLyBFbmQgQnJpZWZVbml0VGVzdFJlc3VsdFByaW50
ZXIKKwogLy8gY2xhc3MgVGVzdEV2ZW50UmVwZWF0ZXIKIC8vCiAvLyBUaGlzIGNsYXNzIGZvcndh
cmRzIGV2ZW50cyB0byBvdGhlciBldmVudCBsaXN0ZW5lcnMuCiBjbGFzcyBUZXN0RXZlbnRSZXBl
YXRlciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CiAgcHVibGljOgogICBUZXN0RXZlbnRS
ZXBlYXRlcigpIDogZm9yd2FyZGluZ19lbmFibGVkXyh0cnVlKSB7fQotICB2aXJ0dWFsIH5UZXN0
RXZlbnRSZXBlYXRlcigpOworICB+VGVzdEV2ZW50UmVwZWF0ZXIoKSBvdmVycmlkZTsKICAgdm9p
ZCBBcHBlbmQoVGVzdEV2ZW50TGlzdGVuZXIgKmxpc3RlbmVyKTsKICAgVGVzdEV2ZW50TGlzdGVu
ZXIqIFJlbGVhc2UoVGVzdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKTsKIApAQCAtMzMxNCwxOSAr
Mzc2MCwyNyBAQCBjbGFzcyBUZXN0RXZlbnRSZXBlYXRlciA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0
ZW5lciB7CiAgIGJvb2wgZm9yd2FyZGluZ19lbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZm9yd2Fy
ZGluZ19lbmFibGVkXzsgfQogICB2b2lkIHNldF9mb3J3YXJkaW5nX2VuYWJsZWQoYm9vbCBlbmFi
bGUpIHsgZm9yd2FyZGluZ19lbmFibGVkXyA9IGVuYWJsZTsgfQogCi0gIHZpcnR1YWwgdm9pZCBP
blRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwg
dm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQg
aXRlcmF0aW9uKTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzU2V0
VXBFbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RD
YXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSk7Ci0gIHZpcnR1YWwgdm9pZCBPblRl
c3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dFBhcnRSZXN1bHQoY29uc3QgVGVzdFBhcnRSZXN1bHQmIHJlc3VsdCk7Ci0gIHZpcnR1YWwgdm9p
ZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbyk7Ci0gIHZpcnR1YWwgdm9pZCBP
blRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpOwotICB2aXJ0dWFsIHZvaWQg
T25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpOwot
ICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0KTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0
VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKTsKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFBy
b2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCk7CisgIHZvaWQgT25UZXN0UHJvZ3Jh
bVN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uVGVz
dEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24p
IG92ZXJyaWRlOworICB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBTdGFydChjb25zdCBVbml0VGVz
dCYgdW5pdF90ZXN0KSBvdmVycmlkZTsKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNv
bnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworLy8gIExlZ2FjeSBBUEkgaXMgZGVw
cmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXworICB2b2lkIE9uVGVzdENhc2VTdGFydChjb25zdCBUZXN0U3VpdGUmIHBh
cmFtZXRlcikgb3ZlcnJpZGU7CisjZW5kaWYgIC8vICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1Rf
Q0FTRUFQSV8KKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IFRlc3RTdWl0ZSYgcGFyYW1l
dGVyKSBvdmVycmlkZTsKKyAgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYgdGVzdF9p
bmZvKSBvdmVycmlkZTsKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVz
dWx0JiByZXN1bHQpIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdEVuZChjb25zdCBUZXN0SW5mbyYg
dGVzdF9pbmZvKSBvdmVycmlkZTsKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
KyAgdm9pZCBPblRlc3RDYXNlRW5kKGNvbnN0IFRlc3RDYXNlJiBwYXJhbWV0ZXIpIG92ZXJyaWRl
OworI2VuZGlmICAvLyAgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQg
T25UZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiBwYXJhbWV0ZXIpIG92ZXJyaWRlOworICB2
b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgdW5pdF90ZXN0
KSBvdmVycmlkZTsKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRU
ZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOworICB2b2lkIE9uVGVzdEl0ZXJhdGlvbkVuZChjb25z
dCBVbml0VGVzdCYgdW5pdF90ZXN0LCBpbnQgaXRlcmF0aW9uKSBvdmVycmlkZTsKKyAgdm9pZCBP
blRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QpIG92ZXJyaWRlOwogCiAg
cHJpdmF0ZToKICAgLy8gQ29udHJvbHMgd2hldGhlciBldmVudHMgd2lsbCBiZSBmb3J3YXJkZWQg
dG8gbGlzdGVuZXJzXy4gU2V0IHRvIGZhbHNlCkBAIC0zMzQ2LDE2ICszODAwLDE1IEBAIHZvaWQg
VGVzdEV2ZW50UmVwZWF0ZXI6OkFwcGVuZChUZXN0RXZlbnRMaXN0ZW5lciAqbGlzdGVuZXIpIHsK
ICAgbGlzdGVuZXJzXy5wdXNoX2JhY2sobGlzdGVuZXIpOwogfQogCi0vLyBGSVhNRTogRmFjdG9y
IHRoZSBzZWFyY2ggZnVuY3Rpb25hbGl0eSBpbnRvIFZlY3Rvcjo6RmluZC4KIFRlc3RFdmVudExp
c3RlbmVyKiBUZXN0RXZlbnRSZXBlYXRlcjo6UmVsZWFzZShUZXN0RXZlbnRMaXN0ZW5lciAqbGlz
dGVuZXIpIHsKICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNfLnNpemUoKTsgKytp
KSB7CiAgICAgaWYgKGxpc3RlbmVyc19baV0gPT0gbGlzdGVuZXIpIHsKLSAgICAgIGxpc3RlbmVy
c18uZXJhc2UobGlzdGVuZXJzXy5iZWdpbigpICsgaSk7CisgICAgICBsaXN0ZW5lcnNfLmVyYXNl
KGxpc3RlbmVyc18uYmVnaW4oKSArIHN0YXRpY19jYXN0PGludD4oaSkpOwogICAgICAgcmV0dXJu
IGxpc3RlbmVyOwogICAgIH0KICAgfQogCi0gIHJldHVybiBOVUxMOworICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogLy8gU2luY2UgbW9zdCBtZXRob2RzIGFyZSB2ZXJ5IHNpbWlsYXIsIHVzZSBtYWNy
b3MgdG8gcmVkdWNlIGJvaWxlcnBsYXRlLgpAQCAtMzM3MCwyNSArMzgyMywzMyBAQCB2b2lkIFRl
c3RFdmVudFJlcGVhdGVyOjpOYW1lKGNvbnN0IFR5cGUmIHBhcmFtZXRlcikgeyBcCiB9CiAvLyBU
aGlzIGRlZmluZXMgYSBtZW1iZXIgdGhhdCBmb3J3YXJkcyB0aGUgY2FsbCB0byBhbGwgbGlzdGVu
ZXJzIGluIHJldmVyc2UKIC8vIG9yZGVyLgotI2RlZmluZSBHVEVTVF9SRVZFUlNFX1JFUEVBVEVS
X01FVEhPRF8oTmFtZSwgVHlwZSkgXAotdm9pZCBUZXN0RXZlbnRSZXBlYXRlcjo6TmFtZShjb25z
dCBUeXBlJiBwYXJhbWV0ZXIpIHsgXAotICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgeyBcCi0g
ICAgZm9yIChpbnQgaSA9IHN0YXRpY19jYXN0PGludD4obGlzdGVuZXJzXy5zaXplKCkpIC0gMTsg
aSA+PSAwOyBpLS0pIHsgXAotICAgICAgbGlzdGVuZXJzX1tpXS0+TmFtZShwYXJhbWV0ZXIpOyBc
Ci0gICAgfSBcCi0gIH0gXAotfQorI2RlZmluZSBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhP
RF8oTmFtZSwgVHlwZSkgICAgICBcCisgIHZvaWQgVGVzdEV2ZW50UmVwZWF0ZXI6Ok5hbWUoY29u
c3QgVHlwZSYgcGFyYW1ldGVyKSB7IFwKKyAgICBpZiAoZm9yd2FyZGluZ19lbmFibGVkXykgeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZm9yIChzaXplX3QgaSA9IGxpc3RlbmVy
c18uc2l6ZSgpOyBpICE9IDA7IGktLSkgeyBcCisgICAgICAgIGxpc3RlbmVyc19baSAtIDFdLT5O
YW1lKHBhcmFtZXRlcik7ICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KIAogR1RFU1RfUkVQRUFURVJf
TUVUSE9EXyhPblRlc3RQcm9ncmFtU3RhcnQsIFVuaXRUZXN0KQogR1RFU1RfUkVQRUFURVJfTUVU
SE9EXyhPbkVudmlyb25tZW50c1NldFVwU3RhcnQsIFVuaXRUZXN0KQotR1RFU1RfUkVQRUFURVJf
TUVUSE9EXyhPblRlc3RDYXNlU3RhcnQsIFRlc3RDYXNlKQorLy8gIExlZ2FjeSBBUEkgaXMgZGVw
cmVjYXRlZCBidXQgc3RpbGwgYXZhaWxhYmxlCisjaWZuZGVmIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXworR1RFU1RfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RDYXNlU3RhcnQsIFRl
c3RTdWl0ZSkKKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXwor
R1RFU1RfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RTdWl0ZVN0YXJ0LCBUZXN0U3VpdGUpCiBHVEVT
VF9SRVBFQVRFUl9NRVRIT0RfKE9uVGVzdFN0YXJ0LCBUZXN0SW5mbykKIEdURVNUX1JFUEVBVEVS
X01FVEhPRF8oT25UZXN0UGFydFJlc3VsdCwgVGVzdFBhcnRSZXN1bHQpCiBHVEVTVF9SRVBFQVRF
Ul9NRVRIT0RfKE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCwgVW5pdFRlc3QpCiBHVEVTVF9S
RVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25FbnZpcm9ubWVudHNTZXRVcEVuZCwgVW5pdFRlc3Qp
CiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25FbnZpcm9ubWVudHNUZWFyRG93bkVu
ZCwgVW5pdFRlc3QpCiBHVEVTVF9SRVZFUlNFX1JFUEVBVEVSX01FVEhPRF8oT25UZXN0RW5kLCBU
ZXN0SW5mbykKLUdURVNUX1JFVkVSU0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RDYXNlRW5kLCBU
ZXN0Q2FzZSkKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJs
ZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KK0dURVNUX1JFVkVS
U0VfUkVQRUFURVJfTUVUSE9EXyhPblRlc3RDYXNlRW5kLCBUZXN0U3VpdGUpCisjZW5kaWYgIC8v
ICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KK0dURVNUX1JFVkVSU0VfUkVQRUFU
RVJfTUVUSE9EXyhPblRlc3RTdWl0ZUVuZCwgVGVzdFN1aXRlKQogR1RFU1RfUkVWRVJTRV9SRVBF
QVRFUl9NRVRIT0RfKE9uVGVzdFByb2dyYW1FbmQsIFVuaXRUZXN0KQogCiAjdW5kZWYgR1RFU1Rf
UkVQRUFURVJfTUVUSE9EXwpAQCAtMzQwNiw4ICszODY3LDggQEAgdm9pZCBUZXN0RXZlbnRSZXBl
YXRlcjo6T25UZXN0SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwKIHZv
aWQgVGVzdEV2ZW50UmVwZWF0ZXI6Ok9uVGVzdEl0ZXJhdGlvbkVuZChjb25zdCBVbml0VGVzdCYg
dW5pdF90ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBpdGVyYXRpb24pIHsKICAgaWYgKGZvcndhcmRpbmdfZW5hYmxlZF8pIHsKLSAgICBmb3IgKGlu
dCBpID0gc3RhdGljX2Nhc3Q8aW50PihsaXN0ZW5lcnNfLnNpemUoKSkgLSAxOyBpID49IDA7IGkt
LSkgewotICAgICAgbGlzdGVuZXJzX1tpXS0+T25UZXN0SXRlcmF0aW9uRW5kKHVuaXRfdGVzdCwg
aXRlcmF0aW9uKTsKKyAgICBmb3IgKHNpemVfdCBpID0gbGlzdGVuZXJzXy5zaXplKCk7IGkgPiAw
OyBpLS0pIHsKKyAgICAgIGxpc3RlbmVyc19baSAtIDFdLT5PblRlc3RJdGVyYXRpb25FbmQodW5p
dF90ZXN0LCBpdGVyYXRpb24pOwogICAgIH0KICAgfQogfQpAQCAtMzQxOSwxMiArMzg4MCwxMiBA
QCBjbGFzcyBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXIgOiBwdWJsaWMgRW1wdHlUZXN0RXZlbnRM
aXN0ZW5lciB7CiAgcHVibGljOgogICBleHBsaWNpdCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXIo
Y29uc3QgY2hhciogb3V0cHV0X2ZpbGUpOwogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRp
b25FbmQoY29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7Ci0gIHZvaWQg
TGlzdFRlc3RzTWF0Y2hpbmdGaWx0ZXIoY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVz
dF9jYXNlcyk7CisgIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0
X3Rlc3QsIGludCBpdGVyYXRpb24pIG92ZXJyaWRlOworICB2b2lkIExpc3RUZXN0c01hdGNoaW5n
RmlsdGVyKGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcyk7CiAKICAg
Ly8gUHJpbnRzIGFuIFhNTCBzdW1tYXJ5IG9mIGFsbCB1bml0IHRlc3RzLgogICBzdGF0aWMgdm9p
ZCBQcmludFhtbFRlc3RzTGlzdChzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNl
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRl
c3RTdWl0ZSo+JiB0ZXN0X3N1aXRlcyk7CiAKICBwcml2YXRlOgogICAvLyBJcyBjIGEgd2hpdGVz
cGFjZSBjaGFyYWN0ZXIgdGhhdCBpcyBub3JtYWxpemVkIHRvIGEgc3BhY2UgY2hhcmFjdGVyCkBA
IC0zNDY3LDE0ICszOTI4LDI0IEBAIGNsYXNzIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1
YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgLy8gU3RyZWFtcyBhbiBYTUwgQ0RBVEEg
c2VjdGlvbiwgZXNjYXBpbmcgaW52YWxpZCBDREFUQSBzZXF1ZW5jZXMgYXMgbmVlZGVkLgogICBz
dGF0aWMgdm9pZCBPdXRwdXRYbWxDRGF0YVNlY3Rpb24oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwg
Y29uc3QgY2hhciogZGF0YSk7CiAKKyAgLy8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgWE1MIHN0YW56
YSBjb250YWluaW5nIHRoZSBnaXZlbiB0ZXN0IHJlc3VsdC4KKyAgLy8KKyAgLy8gUmVxdWlyZXM6
IHJlc3VsdC5GYWlsZWQoKQorICBzdGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0U3VpdGVGb3JUZXN0
UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KTsKKworICAvLyBT
dHJlYW1zIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RSZXN1bHQgb2JqZWN0LgorICBz
dGF0aWMgdm9pZCBPdXRwdXRYbWxUZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0
KTsKKwogICAvLyBTdHJlYW1zIGFuIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9i
amVjdC4KICAgc3RhdGljIHZvaWQgT3V0cHV0WG1sVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0
cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGVzdF9j
YXNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRl
c3Rfc3VpdGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVz
dEluZm8mIHRlc3RfaW5mbyk7CiAKLSAgLy8gUHJpbnRzIGFuIFhNTCByZXByZXNlbnRhdGlvbiBv
ZiBhIFRlc3RDYXNlIG9iamVjdAotICBzdGF0aWMgdm9pZCBQcmludFhtbFRlc3RDYXNlKDo6c3Rk
Ojpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VGVzdENhc2UmIHRlc3RfY2FzZSk7CisgIC8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24g
b2YgYSBUZXN0U3VpdGUgb2JqZWN0CisgIHN0YXRpYyB2b2lkIFByaW50WG1sVGVzdFN1aXRlKDo6
c3RkOjpvc3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSk7CiAKICAgLy8gUHJpbnRzIGFuIFhNTCBzdW1tYXJ5
IG9mIHVuaXRfdGVzdCB0byBvdXRwdXQgc3RyZWFtIG91dC4KICAgc3RhdGljIHZvaWQgUHJpbnRY
bWxVbml0VGVzdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLApAQCAtMzUxNiwxMCArMzk4NywxMCBA
QCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0
IFVuaXRUZXN0JiB1bml0X3Rlc3QsCiB9CiAKIHZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpMaXN0VGVzdHNNYXRjaGluZ0ZpbHRlcigKLSAgICBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0Q2Fz
ZSo+JiB0ZXN0X2Nhc2VzKSB7CisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4mIHRl
c3Rfc3VpdGVzKSB7CiAgIEZJTEUqIHhtbG91dCA9IE9wZW5GaWxlRm9yV3JpdGluZyhvdXRwdXRf
ZmlsZV8pOwogICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07Ci0gIFByaW50WG1sVGVzdHNMaXN0
KCZzdHJlYW0sIHRlc3RfY2FzZXMpOworICBQcmludFhtbFRlc3RzTGlzdCgmc3RyZWFtLCB0ZXN0
X3N1aXRlcyk7CiAgIGZwcmludGYoeG1sb3V0LCAiJXMiLCBTdHJpbmdTdHJlYW1Ub1N0cmluZygm
c3RyZWFtKS5jX3N0cigpKTsKICAgZmNsb3NlKHhtbG91dCk7CiB9CkBAIC0zNTM0LDggKzQwMDUs
NiBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6TGlzdFRlc3RzTWF0Y2hpbmdGaWx0
ZXIoCiAvLyBtb2R1bGUgd2lsbCBjb25zaXN0IG9mIG9yZGluYXJ5IEVuZ2xpc2ggdGV4dC4KIC8v
IElmIHRoaXMgbW9kdWxlIGlzIGV2ZXIgbW9kaWZpZWQgdG8gcHJvZHVjZSB2ZXJzaW9uIDEuMSBY
TUwgb3V0cHV0LAogLy8gbW9zdCBpbnZhbGlkIGNoYXJhY3RlcnMgY2FuIGJlIHJldGFpbmVkIHVz
aW5nIGNoYXJhY3RlciByZWZlcmVuY2VzLgotLy8gRklYTUU6IEl0IG1pZ2h0IGJlIG5pY2UgdG8g
aGF2ZSBhIG1pbmltYWxseSBpbnZhc2l2ZSwgaHVtYW4tcmVhZGFibGUKLS8vIGVzY2FwaW5nIHNj
aGVtZSBmb3IgaW52YWxpZCBjaGFyYWN0ZXJzLCByYXRoZXIgdGhhbiBkcm9wcGluZyB0aGVtLgog
c3RkOjpzdHJpbmcgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVyOjpFc2NhcGVYbWwoCiAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHN0ciwgYm9vbCBpc19hdHRyaWJ1dGUpIHsKICAgTWVzc2FnZSBtOwpA
QCAtMzYwMCw3ICs0MDY5LDcgQEAgc3RkOjpzdHJpbmcgWG1sVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpSZW1vdmVJbnZhbGlkWG1sQ2hhcmFjdGVycygKIC8vIFRoaXMgaXMgaG93IEdvb2dsZSBUZXN0
IGNvbmNlcHRzIG1hcCB0byB0aGUgRFREOgogLy8KIC8vIDx0ZXN0c3VpdGVzIG5hbWU9IkFsbFRl
c3RzIj4gICAgICAgIDwtLSBjb3JyZXNwb25kcyB0byBhIFVuaXRUZXN0IG9iamVjdAotLy8gICA8
dGVzdHN1aXRlIG5hbWU9InRlc3RjYXNlLW5hbWUiPiAgPC0tIGNvcnJlc3BvbmRzIHRvIGEgVGVz
dENhc2Ugb2JqZWN0CisvLyAgIDx0ZXN0c3VpdGUgbmFtZT0idGVzdGNhc2UtbmFtZSI+ICA8LS0g
Y29ycmVzcG9uZHMgdG8gYSBUZXN0U3VpdGUgb2JqZWN0CiAvLyAgICAgPHRlc3RjYXNlIG5hbWU9
InRlc3QtbmFtZSI+ICAgICA8LS0gY29ycmVzcG9uZHMgdG8gYSBUZXN0SW5mbyBvYmplY3QKIC8v
ICAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Ii4uLiI+Li4uPC9mYWlsdXJlPgogLy8gICAgICAgPGZh
aWx1cmUgbWVzc2FnZT0iLi4uIj4uLi48L2ZhaWx1cmU+CkBAIC0zNjI0LDEyICs0MDkzLDExIEBA
IHN0YXRpYyBib29sIFBvcnRhYmxlTG9jYWx0aW1lKHRpbWVfdCBzZWNvbmRzLCBzdHJ1Y3QgdG0q
IG91dCkgewogICAvLyBNSU5HVyA8dGltZS5oPiBwcm92aWRlcyBuZWl0aGVyIGxvY2FsdGltZV9y
IG5vciBsb2NhbHRpbWVfcywgYnV0IHVzZXMKICAgLy8gV2luZG93cycgbG9jYWx0aW1lKCksIHdo
aWNoIGhhcyBhIHRocmVhZC1sb2NhbCB0bSBidWZmZXIuCiAgIHN0cnVjdCB0bSogdG1fcHRyID0g
bG9jYWx0aW1lKCZzZWNvbmRzKTsgIC8vIE5PTElOVAotICBpZiAodG1fcHRyID09IE5VTEwpCi0g
ICAgcmV0dXJuIGZhbHNlOworICBpZiAodG1fcHRyID09IG51bGxwdHIpIHJldHVybiBmYWxzZTsK
ICAgKm91dCA9ICp0bV9wdHI7CiAgIHJldHVybiB0cnVlOwogI2Vsc2UKLSAgcmV0dXJuIGxvY2Fs
dGltZV9yKCZzZWNvbmRzLCBvdXQpICE9IE5VTEw7CisgIHJldHVybiBsb2NhbHRpbWVfcigmc2Vj
b25kcywgb3V0KSAhPSBudWxscHRyOwogI2VuZGlmCiB9CiAKQEAgLTM2MzksMTMgKzQxMDcsMTQg
QEAgc3RkOjpzdHJpbmcgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEoVGltZUluTWls
bGlzIG1zKSB7CiAgIHN0cnVjdCB0bSB0aW1lX3N0cnVjdDsKICAgaWYgKCFQb3J0YWJsZUxvY2Fs
dGltZShzdGF0aWNfY2FzdDx0aW1lX3Q+KG1zIC8gMTAwMCksICZ0aW1lX3N0cnVjdCkpCiAgICAg
cmV0dXJuICIiOwotICAvLyBZWVlZLU1NLUREVGhoOm1tOnNzCisgIC8vIFlZWVktTU0tRERUaGg6
bW06c3Muc3NzCiAgIHJldHVybiBTdHJlYW1hYmxlVG9TdHJpbmcodGltZV9zdHJ1Y3QudG1feWVh
ciArIDE5MDApICsgIi0iICsKICAgICAgIFN0cmluZzo6Rm9ybWF0SW50V2lkdGgyKHRpbWVfc3Ry
dWN0LnRtX21vbiArIDEpICsgIi0iICsKICAgICAgIFN0cmluZzo6Rm9ybWF0SW50V2lkdGgyKHRp
bWVfc3RydWN0LnRtX21kYXkpICsgIlQiICsKICAgICAgIFN0cmluZzo6Rm9ybWF0SW50V2lkdGgy
KHRpbWVfc3RydWN0LnRtX2hvdXIpICsgIjoiICsKICAgICAgIFN0cmluZzo6Rm9ybWF0SW50V2lk
dGgyKHRpbWVfc3RydWN0LnRtX21pbikgKyAiOiIgKwotICAgICAgU3RyaW5nOjpGb3JtYXRJbnRX
aWR0aDIodGltZV9zdHJ1Y3QudG1fc2VjKTsKKyAgICAgIFN0cmluZzo6Rm9ybWF0SW50V2lkdGgy
KHRpbWVfc3RydWN0LnRtX3NlYykgKyAiLiIgKworICAgICAgU3RyaW5nOjpGb3JtYXRJbnRXaWR0
aE4oc3RhdGljX2Nhc3Q8aW50PihtcyAlIDEwMDApLCAzKTsKIH0KIAogLy8gU3RyZWFtcyBhbiBY
TUwgQ0RBVEEgc2VjdGlvbiwgZXNjYXBpbmcgaW52YWxpZCBDREFUQSBzZXF1ZW5jZXMgYXMgbmVl
ZGVkLgpAQCAtMzY1NSw3ICs0MTI0LDcgQEAgdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6
Ok91dHB1dFhtbENEYXRhU2VjdGlvbig6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAogICAqc3RyZWFt
IDw8ICI8IVtDREFUQVsiOwogICBmb3IgKDs7KSB7CiAgICAgY29uc3QgY2hhciogY29uc3QgbmV4
dF9zZWdtZW50ID0gc3Ryc3RyKHNlZ21lbnQsICJdXT4iKTsKLSAgICBpZiAobmV4dF9zZWdtZW50
ICE9IE5VTEwpIHsKKyAgICBpZiAobmV4dF9zZWdtZW50ICE9IG51bGxwdHIpIHsKICAgICAgIHN0
cmVhbS0+d3JpdGUoCiAgICAgICAgICAgc2VnbWVudCwgc3RhdGljX2Nhc3Q8c3RkOjpzdHJlYW1z
aXplPihuZXh0X3NlZ21lbnQgLSBzZWdtZW50KSk7CiAgICAgICAqc3RyZWFtIDw8ICJdXT5dXSZn
dDs8IVtDREFUQVsiOwpAQCAtMzY3NCw3ICs0MTQzLDcgQEAgdm9pZCBYbWxVbml0VGVzdFJlc3Vs
dFByaW50ZXI6Ok91dHB1dFhtbEF0dHJpYnV0ZSgKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFt
ZSwKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKICAgY29uc3Qgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+JiBhbGxvd2VkX25hbWVzID0KLSAgICAgIEdldFJlc2VydmVkQXR0cmlidXRl
c0ZvckVsZW1lbnQoZWxlbWVudF9uYW1lKTsKKyAgICAgIEdldFJlc2VydmVkT3V0cHV0QXR0cmli
dXRlc0ZvckVsZW1lbnQoZWxlbWVudF9uYW1lKTsKIAogICBHVEVTVF9DSEVDS18oc3RkOjpmaW5k
KGFsbG93ZWRfbmFtZXMuYmVnaW4oKSwgYWxsb3dlZF9uYW1lcy5lbmQoKSwgbmFtZSkgIT0KICAg
ICAgICAgICAgICAgICAgICBhbGxvd2VkX25hbWVzLmVuZCgpKQpAQCAtMzY4NCw0NyArNDE1Myw5
NyBAQCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sQXR0cmlidXRlKAog
ICAqc3RyZWFtIDw8ICIgIiA8PCBuYW1lIDw8ICI9XCIiIDw8IEVzY2FwZVhtbEF0dHJpYnV0ZSh2
YWx1ZSkgPDwgIlwiIjsKIH0KIAorLy8gU3RyZWFtcyBhIHRlc3Qgc3VpdGUgWE1MIHN0YW56YSBj
b250YWluaW5nIHRoZSBnaXZlbiB0ZXN0IHJlc3VsdC4KK3ZvaWQgWG1sVW5pdFRlc3RSZXN1bHRQ
cmludGVyOjpPdXRwdXRYbWxUZXN0U3VpdGVGb3JUZXN0UmVzdWx0KAorICAgIDo6c3RkOjpvc3Ry
ZWFtKiBzdHJlYW0sIGNvbnN0IFRlc3RSZXN1bHQmIHJlc3VsdCkgeworICAvLyBPdXRwdXQgdGhl
IGJvaWxlcnBsYXRlIGZvciBhIG1pbmltYWwgdGVzdCBzdWl0ZSB3aXRoIG9uZSB0ZXN0LgorICAq
c3RyZWFtIDw8ICIgIDx0ZXN0c3VpdGUiOworICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCAi
dGVzdHN1aXRlIiwgIm5hbWUiLCAiTm9uVGVzdFN1aXRlRmFpbHVyZSIpOworICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgInRlc3RzIiwgIjEiKTsKKyAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwgInRlc3RzdWl0ZSIsICJmYWlsdXJlcyIsICIxIik7CisgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZGlzYWJsZWQiLCAiMCIpOworICBP
dXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgInNraXBwZWQiLCAiMCIpOwor
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCAidGVzdHN1aXRlIiwgImVycm9ycyIsICIwIik7
CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAidGltZSIsCisgICAg
ICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHMocmVzdWx0LmVsYXBz
ZWRfdGltZSgpKSk7CisgIE91dHB1dFhtbEF0dHJpYnV0ZSgKKyAgICAgIHN0cmVhbSwgInRlc3Rz
dWl0ZSIsICJ0aW1lc3RhbXAiLAorICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2
MDEocmVzdWx0LnN0YXJ0X3RpbWVzdGFtcCgpKSk7CisgICpzdHJlYW0gPDwgIj4iOworCisgIC8v
IE91dHB1dCB0aGUgYm9pbGVycGxhdGUgZm9yIGEgbWluaW1hbCB0ZXN0IGNhc2Ugd2l0aCBhIHNp
bmdsZSB0ZXN0LgorICAqc3RyZWFtIDw8ICIgICAgPHRlc3RjYXNlIjsKKyAgT3V0cHV0WG1sQXR0
cmlidXRlKHN0cmVhbSwgInRlc3RjYXNlIiwgIm5hbWUiLCAiIik7CisgIE91dHB1dFhtbEF0dHJp
YnV0ZShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJzdGF0dXMiLCAicnVuIik7CisgIE91dHB1dFhtbEF0
dHJpYnV0ZShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJyZXN1bHQiLCAiY29tcGxldGVkIik7CisgIE91
dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJjbGFzc25hbWUiLCAiIik7Cisg
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJ0aW1lIiwKKyAgICAgICAg
ICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhyZXN1bHQuZWxhcHNlZF90
aW1lKCkpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRlKAorICAgICAgc3RyZWFtLCAidGVzdGNhc2Ui
LCAidGltZXN0YW1wIiwKKyAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKHJl
c3VsdC5zdGFydF90aW1lc3RhbXAoKSkpOworCisgIC8vIE91dHB1dCB0aGUgYWN0dWFsIHRlc3Qg
cmVzdWx0LgorICBPdXRwdXRYbWxUZXN0UmVzdWx0KHN0cmVhbSwgcmVzdWx0KTsKKworICAvLyBD
b21wbGV0ZSB0aGUgdGVzdCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCAiICA8L3Rlc3RzdWl0ZT5cbiI7
Cit9CisKIC8vIFByaW50cyBhbiBYTUwgcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0SW5mbyBvYmpl
Y3QuCi0vLyBGSVhNRTogVGhlcmUgaXMgYWxzbyB2YWx1ZSBpbiBwcmludGluZyBwcm9wZXJ0aWVz
IHdpdGggdGhlIHBsYWluIHByaW50ZXIuCiB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6
T3V0cHV0WG1sVGVzdEluZm8oOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2Vf
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdEluZm8mIHRlc3RfaW5mbykgewogICBjb25z
dCBUZXN0UmVzdWx0JiByZXN1bHQgPSAqdGVzdF9pbmZvLnJlc3VsdCgpOwotICBjb25zdCBzdGQ6
OnN0cmluZyBrVGVzdGNhc2UgPSAidGVzdGNhc2UiOworICBjb25zdCBzdGQ6OnN0cmluZyBrVGVz
dHN1aXRlID0gInRlc3RjYXNlIjsKIAogICBpZiAodGVzdF9pbmZvLmlzX2luX2Fub3RoZXJfc2hh
cmQoKSkgewogICAgIHJldHVybjsKICAgfQogCiAgICpzdHJlYW0gPDwgIiAgICA8dGVzdGNhc2Ui
OwotICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJuYW1lIiwgdGVzdF9p
bmZvLm5hbWUoKSk7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJu
YW1lIiwgdGVzdF9pbmZvLm5hbWUoKSk7CiAKLSAgaWYgKHRlc3RfaW5mby52YWx1ZV9wYXJhbSgp
ICE9IE5VTEwpIHsKLSAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJ2
YWx1ZV9wYXJhbSIsCisgIGlmICh0ZXN0X2luZm8udmFsdWVfcGFyYW0oKSAhPSBudWxscHRyKSB7
CisgICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgInZhbHVlX3BhcmFt
IiwKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnZhbHVlX3BhcmFtKCkpOwogICB9
Ci0gIGlmICh0ZXN0X2luZm8udHlwZV9wYXJhbSgpICE9IE5VTEwpIHsKLSAgICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJ0eXBlX3BhcmFtIiwgdGVzdF9pbmZvLnR5cGVf
cGFyYW0oKSk7CisgIGlmICh0ZXN0X2luZm8udHlwZV9wYXJhbSgpICE9IG51bGxwdHIpIHsKKyAg
ICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidHlwZV9wYXJhbSIsCisg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5mby50eXBlX3BhcmFtKCkpOwogICB9CiAgIGlm
IChHVEVTVF9GTEFHKGxpc3RfdGVzdHMpKSB7Ci0gICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVh
bSwga1Rlc3RjYXNlLCAiZmlsZSIsIHRlc3RfaW5mby5maWxlKCkpOwotICAgIE91dHB1dFhtbEF0
dHJpYnV0ZShzdHJlYW0sIGtUZXN0Y2FzZSwgImxpbmUiLAorICAgIE91dHB1dFhtbEF0dHJpYnV0
ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSk7CisgICAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImxpbmUiLAogICAgICAgICAgICAg
ICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9pbmZvLmxpbmUoKSkpOwogICAgICpz
dHJlYW0gPDwgIiAvPlxuIjsKICAgICByZXR1cm47CiAgIH0KIAotICBPdXRwdXRYbWxBdHRyaWJ1
dGUoc3RyZWFtLCBrVGVzdGNhc2UsICJzdGF0dXMiLAorICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3Ry
ZWFtLCBrVGVzdHN1aXRlLCAic3RhdHVzIiwKICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5m
by5zaG91bGRfcnVuKCkgPyAicnVuIiA6ICJub3RydW4iKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwga1Rlc3RjYXNlLCAidGltZSIsCisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0s
IGtUZXN0c3VpdGUsICJyZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLnNo
b3VsZF9ydW4oKQorICAgICAgICAgICAgICAgICAgICAgICAgID8gKHJlc3VsdC5Ta2lwcGVkKCkg
PyAic2tpcHBlZCIgOiAiY29tcGxldGVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICA6ICJz
dXBwcmVzc2VkIik7CisgIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0
aW1lIiwKICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyhy
ZXN1bHQuZWxhcHNlZF90aW1lKCkpKTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rl
c3RjYXNlLCAiY2xhc3NuYW1lIiwgdGVzdF9jYXNlX25hbWUpOworICBPdXRwdXRYbWxBdHRyaWJ1
dGUoCisgICAgICBzdHJlYW0sIGtUZXN0c3VpdGUsICJ0aW1lc3RhbXAiLAorICAgICAgRm9ybWF0
RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEocmVzdWx0LnN0YXJ0X3RpbWVzdGFtcCgpKSk7Cisg
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJjbGFzc25hbWUiLCB0ZXN0
X3N1aXRlX25hbWUpOwogCisgIE91dHB1dFhtbFRlc3RSZXN1bHQoc3RyZWFtLCByZXN1bHQpOwor
fQorCit2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVzdFJlc3VsdCg6
OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0KSB7CiAgIGludCBmYWls
dXJlcyA9IDA7CisgIGludCBza2lwcyA9IDA7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0
LnRvdGFsX3BhcnRfY291bnQoKTsgKytpKSB7CiAgICAgY29uc3QgVGVzdFBhcnRSZXN1bHQmIHBh
cnQgPSByZXN1bHQuR2V0VGVzdFBhcnRSZXN1bHQoaSk7CiAgICAgaWYgKHBhcnQuZmFpbGVkKCkp
IHsKLSAgICAgIGlmICgrK2ZhaWx1cmVzID09IDEpIHsKKyAgICAgIGlmICgrK2ZhaWx1cmVzID09
IDEgJiYgc2tpcHMgPT0gMCkgewogICAgICAgICAqc3RyZWFtIDw8ICI+XG4iOwogICAgICAgfQog
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbG9jYXRpb24gPQpAQCAtMzczMiwxOCArNDI1MSwzMSBA
QCB2b2lkIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0WG1sVGVzdEluZm8oOjpzdGQ6
Om9zdHJlYW0qIHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJ0LmxpbmVfbnVtYmVyKCkpOwogICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcgc3VtbWFyeSA9IGxvY2F0aW9uICsgIlxuIiArIHBhcnQuc3VtbWFyeSgpOwogICAg
ICAgKnN0cmVhbSA8PCAiICAgICAgPGZhaWx1cmUgbWVzc2FnZT1cIiIKLSAgICAgICAgICAgICAg
PDwgRXNjYXBlWG1sQXR0cmlidXRlKHN1bW1hcnkuY19zdHIoKSkKKyAgICAgICAgICAgICAgPDwg
RXNjYXBlWG1sQXR0cmlidXRlKHN1bW1hcnkpCiAgICAgICAgICAgICAgIDw8ICJcIiB0eXBlPVwi
XCI+IjsKICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGRldGFpbCA9IGxvY2F0aW9uICsgIlxuIiAr
IHBhcnQubWVzc2FnZSgpOwogICAgICAgT3V0cHV0WG1sQ0RhdGFTZWN0aW9uKHN0cmVhbSwgUmVt
b3ZlSW52YWxpZFhtbENoYXJhY3RlcnMoZGV0YWlsKS5jX3N0cigpKTsKICAgICAgICpzdHJlYW0g
PDwgIjwvZmFpbHVyZT5cbiI7CisgICAgfSBlbHNlIGlmIChwYXJ0LnNraXBwZWQoKSkgeworICAg
ICAgaWYgKCsrc2tpcHMgPT0gMSAmJiBmYWlsdXJlcyA9PSAwKSB7CisgICAgICAgICpzdHJlYW0g
PDwgIj5cbiI7CisgICAgICB9CisgICAgICBjb25zdCBzdGQ6OnN0cmluZyBsb2NhdGlvbiA9Cisg
ICAgICAgICAgaW50ZXJuYWw6OkZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24o
cGFydC5maWxlX25hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJ0LmxpbmVfbnVtYmVyKCkpOworICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcgc3VtbWFyeSA9IGxvY2F0aW9uICsgIlxuIiArIHBhcnQuc3VtbWFyeSgpOworICAg
ICAgKnN0cmVhbSA8PCAiICAgICAgPHNraXBwZWQgbWVzc2FnZT1cIiIKKyAgICAgICAgICAgICAg
PDwgRXNjYXBlWG1sQXR0cmlidXRlKHN1bW1hcnkuY19zdHIoKSkgPDwgIlwiPiI7CisgICAgICBj
b25zdCBzdGQ6OnN0cmluZyBkZXRhaWwgPSBsb2NhdGlvbiArICJcbiIgKyBwYXJ0Lm1lc3NhZ2Uo
KTsKKyAgICAgIE91dHB1dFhtbENEYXRhU2VjdGlvbihzdHJlYW0sIFJlbW92ZUludmFsaWRYbWxD
aGFyYWN0ZXJzKGRldGFpbCkuY19zdHIoKSk7CisgICAgICAqc3RyZWFtIDw8ICI8L3NraXBwZWQ+
XG4iOwogICAgIH0KICAgfQogCi0gIGlmIChmYWlsdXJlcyA9PSAwICYmIHJlc3VsdC50ZXN0X3By
b3BlcnR5X2NvdW50KCkgPT0gMCkgeworICBpZiAoZmFpbHVyZXMgPT0gMCAmJiBza2lwcyA9PSAw
ICYmIHJlc3VsdC50ZXN0X3Byb3BlcnR5X2NvdW50KCkgPT0gMCkgewogICAgICpzdHJlYW0gPDwg
IiAvPlxuIjsKICAgfSBlbHNlIHsKLSAgICBpZiAoZmFpbHVyZXMgPT0gMCkgeworICAgIGlmIChm
YWlsdXJlcyA9PSAwICYmIHNraXBzID09IDApIHsKICAgICAgICpzdHJlYW0gPDwgIj5cbiI7CiAg
ICAgfQogICAgIE91dHB1dFhtbFRlc3RQcm9wZXJ0aWVzKHN0cmVhbSwgcmVzdWx0KTsKQEAgLTM3
NTEsMjkgKzQyODMsMzYgQEAgdm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6Ok91dHB1dFht
bFRlc3RJbmZvKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgIH0KIH0KIAotLy8gUHJpbnRzIGFu
IFhNTCByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RDYXNlIG9iamVjdAotdm9pZCBYbWxVbml0VGVz
dFJlc3VsdFByaW50ZXI6OlByaW50WG1sVGVzdENhc2Uoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0
Q2FzZSYgdGVzdF9jYXNlKSB7CisvLyBQcmludHMgYW4gWE1MIHJlcHJlc2VudGF0aW9uIG9mIGEg
VGVzdFN1aXRlIG9iamVjdAordm9pZCBYbWxVbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50WG1s
VGVzdFN1aXRlKHN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSkgewog
ICBjb25zdCBzdGQ6OnN0cmluZyBrVGVzdHN1aXRlID0gInRlc3RzdWl0ZSI7CiAgICpzdHJlYW0g
PDwgIiAgPCIgPDwga1Rlc3RzdWl0ZTsKLSAgT3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rl
c3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2Nhc2UubmFtZSgpKTsKKyAgT3V0cHV0WG1sQXR0cmlidXRl
KHN0cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X3N1aXRlLm5hbWUoKSk7CiAgIE91dHB1
dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIsCi0gICAgICAgICAgICAg
ICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLnJlcG9ydGFibGVfdGVzdF9jb3Vu
dCgpKSk7CisgICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9zdWl0
ZS5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSkpOwogICBpZiAoIUdURVNUX0ZMQUcobGlzdF90ZXN0
cykpIHsKICAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAiZmFpbHVy
ZXMiLAotICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNl
LmZhaWxlZF90ZXN0X2NvdW50KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtYWJs
ZVRvU3RyaW5nKHRlc3Rfc3VpdGUuZmFpbGVkX3Rlc3RfY291bnQoKSkpOwogICAgIE91dHB1dFht
bEF0dHJpYnV0ZSgKICAgICAgICAgc3RyZWFtLCBrVGVzdHN1aXRlLCAiZGlzYWJsZWQiLAotICAg
ICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodGVzdF9jYXNlLnJlcG9ydGFibGVfZGlzYWJsZWRfdGVz
dF9jb3VudCgpKSk7CisgICAgICAgIFN0cmVhbWFibGVUb1N0cmluZyh0ZXN0X3N1aXRlLnJlcG9y
dGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpKSk7CisgICAgT3V0cHV0WG1sQXR0cmlidXRlKHN0
cmVhbSwga1Rlc3RzdWl0ZSwgInNraXBwZWQiLAorICAgICAgICAgICAgICAgICAgICAgICBTdHJl
YW1hYmxlVG9TdHJpbmcodGVzdF9zdWl0ZS5za2lwcGVkX3Rlc3RfY291bnQoKSkpOworCiAgICAg
T3V0cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZSwgImVycm9ycyIsICIwIik7CisK
ICAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh0ZXN0X2Nhc2Uu
ZWxhcHNlZF90aW1lKCkpKTsKLSAgICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0aWVzQXNYbWxBdHRy
aWJ1dGVzKHRlc3RfY2FzZS5hZF9ob2NfdGVzdF9yZXN1bHQoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25kcyh0ZXN0X3N1aXRlLmVsYXBzZWRfdGlt
ZSgpKSk7CisgICAgT3V0cHV0WG1sQXR0cmlidXRlKAorICAgICAgICBzdHJlYW0sIGtUZXN0c3Vp
dGUsICJ0aW1lc3RhbXAiLAorICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYw
MSh0ZXN0X3N1aXRlLnN0YXJ0X3RpbWVzdGFtcCgpKSk7CisgICAgKnN0cmVhbSA8PCBUZXN0UHJv
cGVydGllc0FzWG1sQXR0cmlidXRlcyh0ZXN0X3N1aXRlLmFkX2hvY190ZXN0X3Jlc3VsdCgpKTsK
ICAgfQogICAqc3RyZWFtIDw8ICI+XG4iOwotICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2Fz
ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgewotICAgIGlmICh0ZXN0X2Nhc2UuR2V0VGVzdElu
Zm8oaSktPmlzX3JlcG9ydGFibGUoKSkKLSAgICAgIE91dHB1dFhtbFRlc3RJbmZvKHN0cmVhbSwg
dGVzdF9jYXNlLm5hbWUoKSwgKnRlc3RfY2FzZS5HZXRUZXN0SW5mbyhpKSk7CisgIGZvciAoaW50
IGkgPSAwOyBpIDwgdGVzdF9zdWl0ZS50b3RhbF90ZXN0X2NvdW50KCk7ICsraSkgeworICAgIGlm
ICh0ZXN0X3N1aXRlLkdldFRlc3RJbmZvKGkpLT5pc19yZXBvcnRhYmxlKCkpCisgICAgICBPdXRw
dXRYbWxUZXN0SW5mbyhzdHJlYW0sIHRlc3Rfc3VpdGUubmFtZSgpLCAqdGVzdF9zdWl0ZS5HZXRU
ZXN0SW5mbyhpKSk7CiAgIH0KICAgKnN0cmVhbSA8PCAiICA8LyIgPDwga1Rlc3RzdWl0ZSA8PCAi
PlxuIjsKIH0KQEAgLTM3OTQsMTEgKzQzMzMsMTEgQEAgdm9pZCBYbWxVbml0VGVzdFJlc3VsdFBy
aW50ZXI6OlByaW50WG1sVW5pdFRlc3Qoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgICAgICBzdHJl
YW0sIGtUZXN0c3VpdGVzLCAiZGlzYWJsZWQiLAogICAgICAgU3RyZWFtYWJsZVRvU3RyaW5nKHVu
aXRfdGVzdC5yZXBvcnRhYmxlX2Rpc2FibGVkX3Rlc3RfY291bnQoKSkpOwogICBPdXRwdXRYbWxB
dHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRlcywgImVycm9ycyIsICIwIik7CisgIE91dHB1dFht
bEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAidGltZSIsCisgICAgICAgICAgICAgICAg
ICAgICBGb3JtYXRUaW1lSW5NaWxsaXNBc1NlY29uZHModW5pdF90ZXN0LmVsYXBzZWRfdGltZSgp
KSk7CiAgIE91dHB1dFhtbEF0dHJpYnV0ZSgKICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0
aW1lc3RhbXAiLAogICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEodW5pdF90
ZXN0LnN0YXJ0X3RpbWVzdGFtcCgpKSk7Ci0gIE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtU
ZXN0c3VpdGVzLCAidGltZSIsCi0gICAgICAgICAgICAgICAgICAgICBGb3JtYXRUaW1lSW5NaWxs
aXNBc1NlY29uZHModW5pdF90ZXN0LmVsYXBzZWRfdGltZSgpKSk7CiAKICAgaWYgKEdURVNUX0ZM
QUcoc2h1ZmZsZSkpIHsKICAgICBPdXRwdXRYbWxBdHRyaWJ1dGUoc3RyZWFtLCBrVGVzdHN1aXRl
cywgInJhbmRvbV9zZWVkIiwKQEAgLTM4MDksMzEgKzQzNDgsMzggQEAgdm9pZCBYbWxVbml0VGVz
dFJlc3VsdFByaW50ZXI6OlByaW50WG1sVW5pdFRlc3Qoc3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAg
IE91dHB1dFhtbEF0dHJpYnV0ZShzdHJlYW0sIGtUZXN0c3VpdGVzLCAibmFtZSIsICJBbGxUZXN0
cyIpOwogICAqc3RyZWFtIDw8ICI+XG4iOwogCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90
ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBpZiAodW5pdF90ZXN0Lkdl
dFRlc3RDYXNlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDApCi0gICAgICBQcmludFht
bFRlc3RDYXNlKHN0cmVhbSwgKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKSk7CisgIGZvciAoaW50
IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7Cisg
ICAgaWYgKHVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSktPnJlcG9ydGFibGVfdGVzdF9jb3VudCgp
ID4gMCkKKyAgICAgIFByaW50WG1sVGVzdFN1aXRlKHN0cmVhbSwgKnVuaXRfdGVzdC5HZXRUZXN0
U3VpdGUoaSkpOwogICB9CisKKyAgLy8gSWYgdGhlcmUgd2FzIGEgdGVzdCBmYWlsdXJlIG91dHNp
ZGUgb2Ygb25lIG9mIHRoZSB0ZXN0IHN1aXRlcyAobGlrZSBpbiBhCisgIC8vIHRlc3QgZW52aXJv
bm1lbnQpIGluY2x1ZGUgdGhhdCBpbiB0aGUgb3V0cHV0LgorICBpZiAodW5pdF90ZXN0LmFkX2hv
Y190ZXN0X3Jlc3VsdCgpLkZhaWxlZCgpKSB7CisgICAgT3V0cHV0WG1sVGVzdFN1aXRlRm9yVGVz
dFJlc3VsdChzdHJlYW0sIHVuaXRfdGVzdC5hZF9ob2NfdGVzdF9yZXN1bHQoKSk7CisgIH0KKwog
ICAqc3RyZWFtIDw8ICI8LyIgPDwga1Rlc3RzdWl0ZXMgPDwgIj5cbiI7CiB9CiAKIHZvaWQgWG1s
VW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludFhtbFRlc3RzTGlzdCgKLSAgICBzdGQ6Om9zdHJl
YW0qIHN0cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdENhc2UqPiYgdGVzdF9jYXNlcykgewor
ICAgIHN0ZDo6b3N0cmVhbSogc3RyZWFtLCBjb25zdCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYg
dGVzdF9zdWl0ZXMpIHsKICAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZXMgPSAidGVzdHN1
aXRlcyI7CiAKICAgKnN0cmVhbSA8PCAiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwi
VVRGLThcIj8+XG4iOwogICAqc3RyZWFtIDw8ICI8IiA8PCBrVGVzdHN1aXRlczsKIAogICBpbnQg
dG90YWxfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RfY2FzZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICB0b3RhbF90ZXN0cyArPSB0ZXN0X2Nhc2VzW2ldLT50b3RhbF90ZXN0
X2NvdW50KCk7CisgIGZvciAoYXV0byB0ZXN0X3N1aXRlIDogdGVzdF9zdWl0ZXMpIHsKKyAgICB0
b3RhbF90ZXN0cyArPSB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCk7CiAgIH0KICAgT3V0
cHV0WG1sQXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJ0ZXN0cyIsCiAgICAgICAgICAg
ICAgICAgICAgICBTdHJlYW1hYmxlVG9TdHJpbmcodG90YWxfdGVzdHMpKTsKICAgT3V0cHV0WG1s
QXR0cmlidXRlKHN0cmVhbSwga1Rlc3RzdWl0ZXMsICJuYW1lIiwgIkFsbFRlc3RzIik7CiAgICpz
dHJlYW0gPDwgIj5cbiI7CiAKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzLnNp
emUoKTsgKytpKSB7Ci0gICAgUHJpbnRYbWxUZXN0Q2FzZShzdHJlYW0sICp0ZXN0X2Nhc2VzW2ld
KTsKKyAgZm9yIChhdXRvIHRlc3Rfc3VpdGUgOiB0ZXN0X3N1aXRlcykgeworICAgIFByaW50WG1s
VGVzdFN1aXRlKHN0cmVhbSwgKnRlc3Rfc3VpdGUpOwogICB9CiAgICpzdHJlYW0gPDwgIjwvIiA8
PCBrVGVzdHN1aXRlcyA8PCAiPlxuIjsKIH0KQEAgLTM4NzgsMTEgKzQ0MjQsMTEgQEAgY2xhc3Mg
SnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVy
IHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IEpzb25Vbml0VGVzdFJlc3VsdFByaW50ZXIoY29uc3Qg
Y2hhciogb3V0cHV0X2ZpbGUpOwogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQo
Y29uc3QgVW5pdFRlc3QmIHVuaXRfdGVzdCwgaW50IGl0ZXJhdGlvbik7CisgIHZvaWQgT25UZXN0
SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiB1bml0X3Rlc3QsIGludCBpdGVyYXRpb24pIG92
ZXJyaWRlOwogCiAgIC8vIFByaW50cyBhbiBKU09OIHN1bW1hcnkgb2YgYWxsIHVuaXQgdGVzdHMu
CiAgIHN0YXRpYyB2b2lkIFByaW50SnNvblRlc3RMaXN0KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RD
YXNlKj4mIHRlc3RfY2FzZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBzdGQ6OnZlY3RvcjxUZXN0U3VpdGUqPiYgdGVzdF9zdWl0ZXMpOwogCiAgcHJpdmF0ZToKICAg
Ly8gUmV0dXJucyBhbiBKU09OLWVzY2FwZWQgY29weSBvZiB0aGUgaW5wdXQgc3RyaW5nIHN0ci4K
QEAgLTM5MDMsMTQgKzQ0NDksMjQgQEAgY2xhc3MgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlciA6
IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3RlbmVyIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdGQ6OnN0cmluZyYgaW5kZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgY29tbWEgPSB0cnVlKTsKIAorICAvLyBTdHJlYW1zIGEgdGVzdCBzdWl0ZSBKU09O
IHN0YW56YSBjb250YWluaW5nIHRoZSBnaXZlbiB0ZXN0IHJlc3VsdC4KKyAgLy8KKyAgLy8gUmVx
dWlyZXM6IHJlc3VsdC5GYWlsZWQoKQorICBzdGF0aWMgdm9pZCBPdXRwdXRKc29uVGVzdFN1aXRl
Rm9yVGVzdFJlc3VsdCg6OnN0ZDo6b3N0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpOwor
CisgIC8vIFN0cmVhbXMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdFJlc3VsdCBvYmpl
Y3QuCisgIHN0YXRpYyB2b2lkIE91dHB1dEpzb25UZXN0UmVzdWx0KDo6c3RkOjpvc3RyZWFtKiBz
dHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RSZXN1
bHQmIHJlc3VsdCk7CisKICAgLy8gU3RyZWFtcyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBU
ZXN0SW5mbyBvYmplY3QuCiAgIHN0YXRpYyB2b2lkIE91dHB1dEpzb25UZXN0SW5mbyg6OnN0ZDo6
b3N0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogdGVzdF9jYXNlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiB0ZXN0X3N1aXRlX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBUZXN0SW5mbyYgdGVzdF9pbmZvKTsKIAotICAvLyBQcmludHMgYSBKU09OIHJl
cHJlc2VudGF0aW9uIG9mIGEgVGVzdENhc2Ugb2JqZWN0Ci0gIHN0YXRpYyB2b2lkIFByaW50SnNv
blRlc3RDYXNlKDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFRlc3RDYXNlJiB0ZXN0X2Nhc2UpOworICAvLyBQcmludHMgYSBKU09O
IHJlcHJlc2VudGF0aW9uIG9mIGEgVGVzdFN1aXRlIG9iamVjdAorICBzdGF0aWMgdm9pZCBQcmlu
dEpzb25UZXN0U3VpdGUoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFRlc3RTdWl0ZSYgdGVzdF9zdWl0ZSk7CiAKICAgLy8gUHJp
bnRzIGEgSlNPTiBzdW1tYXJ5IG9mIHVuaXRfdGVzdCB0byBvdXRwdXQgc3RyZWFtIG91dC4KICAg
c3RhdGljIHZvaWQgUHJpbnRKc29uVW5pdFRlc3QoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKQEAg
LTQwMDksNyArNDU2NSw3IEBAIHN0YXRpYyBzdGQ6OnN0cmluZyBGb3JtYXRFcG9jaFRpbWVJbk1p
bGxpc0FzUkZDMzMzOShUaW1lSW5NaWxsaXMgbXMpIHsKICAgICAgIFN0cmluZzo6Rm9ybWF0SW50
V2lkdGgyKHRpbWVfc3RydWN0LnRtX3NlYykgKyAiWiI7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3Rk
OjpzdHJpbmcgSW5kZW50KGludCB3aWR0aCkgeworc3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyBJ
bmRlbnQoc2l6ZV90IHdpZHRoKSB7CiAgIHJldHVybiBzdGQ6OnN0cmluZyh3aWR0aCwgJyAnKTsK
IH0KIApAQCAtNDAyMSw3ICs0NTc3LDcgQEAgdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVy
OjpPdXRwdXRKc29uS2V5KAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBpbmRlbnQsCiAgICAgYm9v
bCBjb21tYSkgewogICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGFsbG93ZWRfbmFt
ZXMgPQotICAgICAgR2V0UmVzZXJ2ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChlbGVtZW50X25hbWUp
OworICAgICAgR2V0UmVzZXJ2ZWRPdXRwdXRBdHRyaWJ1dGVzRm9yRWxlbWVudChlbGVtZW50X25h
bWUpOwogCiAgIEdURVNUX0NIRUNLXyhzdGQ6OmZpbmQoYWxsb3dlZF9uYW1lcy5iZWdpbigpLCBh
bGxvd2VkX25hbWVzLmVuZCgpLCBuYW1lKSAhPQogICAgICAgICAgICAgICAgICAgIGFsbG93ZWRf
bmFtZXMuZW5kKCkpCkBAIC00MDQxLDcgKzQ1OTcsNyBAQCB2b2lkIEpzb25Vbml0VGVzdFJlc3Vs
dFByaW50ZXI6Ok91dHB1dEpzb25LZXkoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGluZGVudCwK
ICAgICBib29sIGNvbW1hKSB7CiAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgYWxs
b3dlZF9uYW1lcyA9Ci0gICAgICBHZXRSZXNlcnZlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVsZW1l
bnRfbmFtZSk7CisgICAgICBHZXRSZXNlcnZlZE91dHB1dEF0dHJpYnV0ZXNGb3JFbGVtZW50KGVs
ZW1lbnRfbmFtZSk7CiAKICAgR1RFU1RfQ0hFQ0tfKHN0ZDo6ZmluZChhbGxvd2VkX25hbWVzLmJl
Z2luKCksIGFsbG93ZWRfbmFtZXMuZW5kKCksIG5hbWUpICE9CiAgICAgICAgICAgICAgICAgICAg
YWxsb3dlZF9uYW1lcy5lbmQoKSkKQEAgLTQwNTMsMzkgKzQ2MDksOTcgQEAgdm9pZCBKc29uVW5p
dFRlc3RSZXN1bHRQcmludGVyOjpPdXRwdXRKc29uS2V5KAogICAgICpzdHJlYW0gPDwgIixcbiI7
CiB9CiAKKy8vIFN0cmVhbXMgYSB0ZXN0IHN1aXRlIEpTT04gc3RhbnphIGNvbnRhaW5pbmcgdGhl
IGdpdmVuIHRlc3QgcmVzdWx0Lgordm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpPdXRw
dXRKc29uVGVzdFN1aXRlRm9yVGVzdFJlc3VsdCgKKyAgICA6OnN0ZDo6b3N0cmVhbSogc3RyZWFt
LCBjb25zdCBUZXN0UmVzdWx0JiByZXN1bHQpIHsKKyAgLy8gT3V0cHV0IHRoZSBib2lsZXJwbGF0
ZSBmb3IgYSBuZXcgdGVzdCBzdWl0ZS4KKyAgKnN0cmVhbSA8PCBJbmRlbnQoNCkgPDwgIntcbiI7
CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwgIm5hbWUiLCAiTm9uVGVzdFN1
aXRlRmFpbHVyZSIsIEluZGVudCg2KSk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1
aXRlIiwgInRlc3RzIiwgMSwgSW5kZW50KDYpKTsKKyAgaWYgKCFHVEVTVF9GTEFHKGxpc3RfdGVz
dHMpKSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0c3VpdGUiLCAiZmFpbHVyZXMi
LCAxLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwg
ImRpc2FibGVkIiwgMCwgSW5kZW50KDYpKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRl
c3RzdWl0ZSIsICJza2lwcGVkIiwgMCwgSW5kZW50KDYpKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0
cmVhbSwgInRlc3RzdWl0ZSIsICJlcnJvcnMiLCAwLCBJbmRlbnQoNikpOworICAgIE91dHB1dEpz
b25LZXkoc3RyZWFtLCAidGVzdHN1aXRlIiwgInRpbWUiLAorICAgICAgICAgICAgICAgICAgRm9y
bWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbihyZXN1bHQuZWxhcHNlZF90aW1lKCkpLAorICAgICAg
ICAgICAgICAgICAgSW5kZW50KDYpKTsKKyAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3Rz
dWl0ZSIsICJ0aW1lc3RhbXAiLAorICAgICAgICAgICAgICAgICAgRm9ybWF0RXBvY2hUaW1lSW5N
aWxsaXNBc1JGQzMzMzkocmVzdWx0LnN0YXJ0X3RpbWVzdGFtcCgpKSwKKyAgICAgICAgICAgICAg
ICAgIEluZGVudCg2KSk7CisgIH0KKyAgKnN0cmVhbSA8PCBJbmRlbnQoNikgPDwgIlwidGVzdHN1
aXRlXCI6IFtcbiI7CisKKyAgLy8gT3V0cHV0IHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBuZXcgdGVz
dCBjYXNlLgorICAqc3RyZWFtIDw8IEluZGVudCg4KSA8PCAie1xuIjsKKyAgT3V0cHV0SnNvbktl
eShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJuYW1lIiwgIiIsIEluZGVudCgxMCkpOworICBPdXRwdXRK
c29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgInN0YXR1cyIsICJSVU4iLCBJbmRlbnQoMTApKTsK
KyAgT3V0cHV0SnNvbktleShzdHJlYW0sICJ0ZXN0Y2FzZSIsICJyZXN1bHQiLCAiQ09NUExFVEVE
IiwgSW5kZW50KDEwKSk7CisgIE91dHB1dEpzb25LZXkoc3RyZWFtLCAidGVzdGNhc2UiLCAidGlt
ZXN0YW1wIiwKKyAgICAgICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzUkZDMzMz
OShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpLAorICAgICAgICAgICAgICAgIEluZGVudCgxMCkp
OworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwgInRlc3RjYXNlIiwgInRpbWUiLAorICAgICAgICAg
ICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzRHVyYXRpb24ocmVzdWx0LmVsYXBzZWRfdGltZSgp
KSwKKyAgICAgICAgICAgICAgICBJbmRlbnQoMTApKTsKKyAgT3V0cHV0SnNvbktleShzdHJlYW0s
ICJ0ZXN0Y2FzZSIsICJjbGFzc25hbWUiLCAiIiwgSW5kZW50KDEwKSwgZmFsc2UpOworICAqc3Ry
ZWFtIDw8IFRlc3RQcm9wZXJ0aWVzQXNKc29uKHJlc3VsdCwgSW5kZW50KDEwKSk7CisKKyAgLy8g
T3V0cHV0IHRoZSBhY3R1YWwgdGVzdCByZXN1bHQuCisgIE91dHB1dEpzb25UZXN0UmVzdWx0KHN0
cmVhbSwgcmVzdWx0KTsKKworICAvLyBGaW5pc2ggdGhlIHRlc3Qgc3VpdGUuCisgICpzdHJlYW0g
PDwgIlxuIiA8PCBJbmRlbnQoNikgPDwgIl1cbiIgPDwgSW5kZW50KDQpIDw8ICJ9IjsKK30KKwog
Ly8gUHJpbnRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RJbmZvIG9iamVjdC4KIHZv
aWQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0SnNvblRlc3RJbmZvKDo6c3RkOjpv
c3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiB0ZXN0X2Nhc2VfbmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRlc3Rfc3VpdGVf
bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIHsKICAgY29uc3QgVGVzdFJlc3VsdCYgcmVzdWx0
ID0gKnRlc3RfaW5mby5yZXN1bHQoKTsKLSAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RjYXNlID0g
InRlc3RjYXNlIjsKKyAgY29uc3Qgc3RkOjpzdHJpbmcga1Rlc3RzdWl0ZSA9ICJ0ZXN0Y2FzZSI7
CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQgPSBJbmRlbnQoMTApOwogCiAgICpzdHJlYW0g
PDwgSW5kZW50KDgpIDw8ICJ7XG4iOwotICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNl
LCAibmFtZSIsIHRlc3RfaW5mby5uYW1lKCksIGtJbmRlbnQpOworICBPdXRwdXRKc29uS2V5KHN0
cmVhbSwga1Rlc3RzdWl0ZSwgIm5hbWUiLCB0ZXN0X2luZm8ubmFtZSgpLCBrSW5kZW50KTsKIAot
ICBpZiAodGVzdF9pbmZvLnZhbHVlX3BhcmFtKCkgIT0gTlVMTCkgewotICAgIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJ2YWx1ZV9wYXJhbSIsCi0gICAgICAgICAgICAgICAgICB0
ZXN0X2luZm8udmFsdWVfcGFyYW0oKSwga0luZGVudCk7CisgIGlmICh0ZXN0X2luZm8udmFsdWVf
cGFyYW0oKSAhPSBudWxscHRyKSB7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3Vp
dGUsICJ2YWx1ZV9wYXJhbSIsIHRlc3RfaW5mby52YWx1ZV9wYXJhbSgpLAorICAgICAgICAgICAg
ICAgICAga0luZGVudCk7CiAgIH0KLSAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0gTlVM
TCkgewotICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJ0eXBlX3BhcmFtIiwg
dGVzdF9pbmZvLnR5cGVfcGFyYW0oKSwKKyAgaWYgKHRlc3RfaW5mby50eXBlX3BhcmFtKCkgIT0g
bnVsbHB0cikgeworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAidHlwZV9w
YXJhbSIsIHRlc3RfaW5mby50eXBlX3BhcmFtKCksCiAgICAgICAgICAgICAgICAgICBrSW5kZW50
KTsKICAgfQogICBpZiAoR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgewotICAgIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSwga0luZGVudCk7
Ci0gICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0Y2FzZSwgImxpbmUiLCB0ZXN0X2luZm8u
bGluZSgpLCBrSW5kZW50LCBmYWxzZSk7CisgICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0
c3VpdGUsICJmaWxlIiwgdGVzdF9pbmZvLmZpbGUoKSwga0luZGVudCk7CisgICAgT3V0cHV0SnNv
bktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJsaW5lIiwgdGVzdF9pbmZvLmxpbmUoKSwga0luZGVu
dCwgZmFsc2UpOwogICAgICpzdHJlYW0gPDwgIlxuIiA8PCBJbmRlbnQoOCkgPDwgIn0iOwogICAg
IHJldHVybjsKICAgfQogCi0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdGNhc2UsICJzdGF0
dXMiLAorICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInN0YXR1cyIsCiAgICAg
ICAgICAgICAgICAgdGVzdF9pbmZvLnNob3VsZF9ydW4oKSA/ICJSVU4iIDogIk5PVFJVTiIsIGtJ
bmRlbnQpOwotICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RjYXNlLCAidGltZSIsCisgIE91
dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAicmVzdWx0IiwKKyAgICAgICAgICAgICAg
ICB0ZXN0X2luZm8uc2hvdWxkX3J1bigpCisgICAgICAgICAgICAgICAgICAgID8gKHJlc3VsdC5T
a2lwcGVkKCkgPyAiU0tJUFBFRCIgOiAiQ09NUExFVEVEIikKKyAgICAgICAgICAgICAgICAgICAg
OiAiU1VQUFJFU1NFRCIsCisgICAgICAgICAgICAgICAga0luZGVudCk7CisgIE91dHB1dEpzb25L
ZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGltZXN0YW1wIiwKKyAgICAgICAgICAgICAgICBGb3Jt
YXRFcG9jaFRpbWVJbk1pbGxpc0FzUkZDMzMzOShyZXN1bHQuc3RhcnRfdGltZXN0YW1wKCkpLAor
ICAgICAgICAgICAgICAgIGtJbmRlbnQpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3Rz
dWl0ZSwgInRpbWUiLAogICAgICAgICAgICAgICAgIEZvcm1hdFRpbWVJbk1pbGxpc0FzRHVyYXRp
b24ocmVzdWx0LmVsYXBzZWRfdGltZSgpKSwga0luZGVudCk7Ci0gIE91dHB1dEpzb25LZXkoc3Ry
ZWFtLCBrVGVzdGNhc2UsICJjbGFzc25hbWUiLCB0ZXN0X2Nhc2VfbmFtZSwga0luZGVudCwgZmFs
c2UpOworICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImNsYXNzbmFtZSIsIHRl
c3Rfc3VpdGVfbmFtZSwga0luZGVudCwKKyAgICAgICAgICAgICAgICBmYWxzZSk7CiAgICpzdHJl
YW0gPDwgVGVzdFByb3BlcnRpZXNBc0pzb24ocmVzdWx0LCBrSW5kZW50KTsKIAorICBPdXRwdXRK
c29uVGVzdFJlc3VsdChzdHJlYW0sIHJlc3VsdCk7Cit9CisKK3ZvaWQgSnNvblVuaXRUZXN0UmVz
dWx0UHJpbnRlcjo6T3V0cHV0SnNvblRlc3RSZXN1bHQoOjpzdGQ6Om9zdHJlYW0qIHN0cmVhbSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVGVzdFJlc3VsdCYgcmVzdWx0KSB7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIGtJbmRlbnQgPSBJ
bmRlbnQoMTApOworCiAgIGludCBmYWlsdXJlcyA9IDA7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwg
cmVzdWx0LnRvdGFsX3BhcnRfY291bnQoKTsgKytpKSB7CiAgICAgY29uc3QgVGVzdFBhcnRSZXN1
bHQmIHBhcnQgPSByZXN1bHQuR2V0VGVzdFBhcnRSZXN1bHQoaSk7CkBAIC00MTEwLDQwICs0NzI0
LDQ0IEBAIHZvaWQgSnNvblVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6T3V0cHV0SnNvblRlc3RJbmZv
KDo6c3RkOjpvc3RyZWFtKiBzdHJlYW0sCiAgICpzdHJlYW0gPDwgIlxuIiA8PCBJbmRlbnQoOCkg
PDwgIn0iOwogfQogCi0vLyBQcmludHMgYW4gSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhIFRlc3RD
YXNlIG9iamVjdAotdm9pZCBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyOjpQcmludEpzb25UZXN0
Q2FzZShzdGQ6Om9zdHJlYW0qIHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGVzdENhc2UmIHRlc3RfY2FzZSkgeworLy8gUHJp
bnRzIGFuIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSBUZXN0U3VpdGUgb2JqZWN0Cit2b2lkIEpz
b25Vbml0VGVzdFJlc3VsdFByaW50ZXI6OlByaW50SnNvblRlc3RTdWl0ZSgKKyAgICBzdGQ6Om9z
dHJlYW0qIHN0cmVhbSwgY29uc3QgVGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSB7CiAgIGNvbnN0IHN0
ZDo6c3RyaW5nIGtUZXN0c3VpdGUgPSAidGVzdHN1aXRlIjsKICAgY29uc3Qgc3RkOjpzdHJpbmcg
a0luZGVudCA9IEluZGVudCg2KTsKIAogICAqc3RyZWFtIDw8IEluZGVudCg0KSA8PCAie1xuIjsK
LSAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJuYW1lIiwgdGVzdF9jYXNlLm5h
bWUoKSwga0luZGVudCk7Ci0gIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVzdHN1aXRlLCAidGVz
dHMiLCB0ZXN0X2Nhc2UucmVwb3J0YWJsZV90ZXN0X2NvdW50KCksCisgIE91dHB1dEpzb25LZXko
c3RyZWFtLCBrVGVzdHN1aXRlLCAibmFtZSIsIHRlc3Rfc3VpdGUubmFtZSgpLCBrSW5kZW50KTsK
KyAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGUsICJ0ZXN0cyIsIHRlc3Rfc3VpdGUu
cmVwb3J0YWJsZV90ZXN0X2NvdW50KCksCiAgICAgICAgICAgICAgICAga0luZGVudCk7CiAgIGlm
ICghR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSkgewotICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBr
VGVzdHN1aXRlLCAiZmFpbHVyZXMiLCB0ZXN0X2Nhc2UuZmFpbGVkX3Rlc3RfY291bnQoKSwKLSAg
ICAgICAgICAgICAgICAgIGtJbmRlbnQpOworICAgIE91dHB1dEpzb25LZXkoc3RyZWFtLCBrVGVz
dHN1aXRlLCAiZmFpbHVyZXMiLAorICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZS5mYWlsZWRf
dGVzdF9jb3VudCgpLCBrSW5kZW50KTsKICAgICBPdXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3Rz
dWl0ZSwgImRpc2FibGVkIiwKLSAgICAgICAgICAgICAgICAgIHRlc3RfY2FzZS5yZXBvcnRhYmxl
X2Rpc2FibGVkX3Rlc3RfY291bnQoKSwga0luZGVudCk7CisgICAgICAgICAgICAgICAgICB0ZXN0
X3N1aXRlLnJlcG9ydGFibGVfZGlzYWJsZWRfdGVzdF9jb3VudCgpLCBrSW5kZW50KTsKICAgICBP
dXRwdXRKc29uS2V5KHN0cmVhbSwga1Rlc3RzdWl0ZSwgImVycm9ycyIsIDAsIGtJbmRlbnQpOwor
ICAgIE91dHB1dEpzb25LZXkoCisgICAgICAgIHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWVzdGFt
cCIsCisgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNSRkMzMzM5KHRlc3Rfc3VpdGUu
c3RhcnRfdGltZXN0YW1wKCkpLAorICAgICAgICBrSW5kZW50KTsKICAgICBPdXRwdXRKc29uS2V5
KHN0cmVhbSwga1Rlc3RzdWl0ZSwgInRpbWUiLAotICAgICAgICAgICAgICAgICAgRm9ybWF0VGlt
ZUluTWlsbGlzQXNEdXJhdGlvbih0ZXN0X2Nhc2UuZWxhcHNlZF90aW1lKCkpLAorICAgICAgICAg
ICAgICAgICAgRm9ybWF0VGltZUluTWlsbGlzQXNEdXJhdGlvbih0ZXN0X3N1aXRlLmVsYXBzZWRf
dGltZSgpKSwKICAgICAgICAgICAgICAgICAgIGtJbmRlbnQsIGZhbHNlKTsKLSAgICAqc3RyZWFt
IDw8IFRlc3RQcm9wZXJ0aWVzQXNKc29uKHRlc3RfY2FzZS5hZF9ob2NfdGVzdF9yZXN1bHQoKSwg
a0luZGVudCkKKyAgICAqc3RyZWFtIDw8IFRlc3RQcm9wZXJ0aWVzQXNKc29uKHRlc3Rfc3VpdGUu
YWRfaG9jX3Rlc3RfcmVzdWx0KCksIGtJbmRlbnQpCiAgICAgICAgICAgICA8PCAiLFxuIjsKICAg
fQogCiAgICpzdHJlYW0gPDwga0luZGVudCA8PCAiXCIiIDw8IGtUZXN0c3VpdGUgPDwgIlwiOiBb
XG4iOwogCiAgIGJvb2wgY29tbWEgPSBmYWxzZTsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0
X2Nhc2UudG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKLSAgICBpZiAodGVzdF9jYXNlLkdldFRl
c3RJbmZvKGkpLT5pc19yZXBvcnRhYmxlKCkpIHsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0
X3N1aXRlLnRvdGFsX3Rlc3RfY291bnQoKTsgKytpKSB7CisgICAgaWYgKHRlc3Rfc3VpdGUuR2V0
VGVzdEluZm8oaSktPmlzX3JlcG9ydGFibGUoKSkgewogICAgICAgaWYgKGNvbW1hKSB7CiAgICAg
ICAgICpzdHJlYW0gPDwgIixcbiI7CiAgICAgICB9IGVsc2UgewogICAgICAgICBjb21tYSA9IHRy
dWU7CiAgICAgICB9Ci0gICAgICBPdXRwdXRKc29uVGVzdEluZm8oc3RyZWFtLCB0ZXN0X2Nhc2Uu
bmFtZSgpLCAqdGVzdF9jYXNlLkdldFRlc3RJbmZvKGkpKTsKKyAgICAgIE91dHB1dEpzb25UZXN0
SW5mbyhzdHJlYW0sIHRlc3Rfc3VpdGUubmFtZSgpLCAqdGVzdF9zdWl0ZS5HZXRUZXN0SW5mbyhp
KSk7CiAgICAgfQogICB9CiAgICpzdHJlYW0gPDwgIlxuIiA8PCBrSW5kZW50IDw8ICJdXG4iIDw8
IEluZGVudCg0KSA8PCAifSI7CkBAIC00MTgxLDM5ICs0Nzk5LDQ1IEBAIHZvaWQgSnNvblVuaXRU
ZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVW5pdFRlc3Qoc3RkOjpvc3RyZWFtKiBzdHJlYW0s
CiAgICpzdHJlYW0gPDwga0luZGVudCA8PCAiXCIiIDw8IGtUZXN0c3VpdGVzIDw8ICJcIjogW1xu
IjsKIAogICBib29sIGNvbW1hID0gZmFsc2U7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90
ZXN0LnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICBpZiAodW5pdF90ZXN0Lkdl
dFRlc3RDYXNlKGkpLT5yZXBvcnRhYmxlX3Rlc3RfY291bnQoKSA+IDApIHsKKyAgZm9yIChpbnQg
aSA9IDA7IGkgPCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpIHsKKyAg
ICBpZiAodW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKS0+cmVwb3J0YWJsZV90ZXN0X2NvdW50KCkg
PiAwKSB7CiAgICAgICBpZiAoY29tbWEpIHsKICAgICAgICAgKnN0cmVhbSA8PCAiLFxuIjsKICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbW1hID0gdHJ1ZTsKICAgICAgIH0KLSAgICAgIFByaW50
SnNvblRlc3RDYXNlKHN0cmVhbSwgKnVuaXRfdGVzdC5HZXRUZXN0Q2FzZShpKSk7CisgICAgICBQ
cmludEpzb25UZXN0U3VpdGUoc3RyZWFtLCAqdW5pdF90ZXN0LkdldFRlc3RTdWl0ZShpKSk7CiAg
ICAgfQogICB9CiAKKyAgLy8gSWYgdGhlcmUgd2FzIGEgdGVzdCBmYWlsdXJlIG91dHNpZGUgb2Yg
b25lIG9mIHRoZSB0ZXN0IHN1aXRlcyAobGlrZSBpbiBhCisgIC8vIHRlc3QgZW52aXJvbm1lbnQp
IGluY2x1ZGUgdGhhdCBpbiB0aGUgb3V0cHV0LgorICBpZiAodW5pdF90ZXN0LmFkX2hvY190ZXN0
X3Jlc3VsdCgpLkZhaWxlZCgpKSB7CisgICAgT3V0cHV0SnNvblRlc3RTdWl0ZUZvclRlc3RSZXN1
bHQoc3RyZWFtLCB1bml0X3Rlc3QuYWRfaG9jX3Rlc3RfcmVzdWx0KCkpOworICB9CisKICAgKnN0
cmVhbSA8PCAiXG4iIDw8IGtJbmRlbnQgPDwgIl1cbiIgPDwgIn1cbiI7CiB9CiAKIHZvaWQgSnNv
blVuaXRUZXN0UmVzdWx0UHJpbnRlcjo6UHJpbnRKc29uVGVzdExpc3QoCi0gICAgc3RkOjpvc3Ry
ZWFtKiBzdHJlYW0sIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj4mIHRlc3RfY2FzZXMpIHsK
KyAgICBzdGQ6Om9zdHJlYW0qIHN0cmVhbSwgY29uc3Qgc3RkOjp2ZWN0b3I8VGVzdFN1aXRlKj4m
IHRlc3Rfc3VpdGVzKSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGtUZXN0c3VpdGVzID0gInRlc3Rz
dWl0ZXMiOwogICBjb25zdCBzdGQ6OnN0cmluZyBrSW5kZW50ID0gSW5kZW50KDIpOwogICAqc3Ry
ZWFtIDw8ICJ7XG4iOwogICBpbnQgdG90YWxfdGVzdHMgPSAwOwotICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRlc3RfY2FzZXMuc2l6ZSgpOyArK2kpIHsKLSAgICB0b3RhbF90ZXN0cyArPSB0ZXN0
X2Nhc2VzW2ldLT50b3RhbF90ZXN0X2NvdW50KCk7CisgIGZvciAoYXV0byB0ZXN0X3N1aXRlIDog
dGVzdF9zdWl0ZXMpIHsKKyAgICB0b3RhbF90ZXN0cyArPSB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0
X2NvdW50KCk7CiAgIH0KICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtUZXN0c3VpdGVzLCAidGVz
dHMiLCB0b3RhbF90ZXN0cywga0luZGVudCk7CiAKICAgT3V0cHV0SnNvbktleShzdHJlYW0sIGtU
ZXN0c3VpdGVzLCAibmFtZSIsICJBbGxUZXN0cyIsIGtJbmRlbnQpOwogICAqc3RyZWFtIDw8IGtJ
bmRlbnQgPDwgIlwiIiA8PCBrVGVzdHN1aXRlcyA8PCAiXCI6IFtcbiI7CiAKLSAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzLnNpemUoKTsgKytpKSB7CisgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdGVzdF9zdWl0ZXMuc2l6ZSgpOyArK2kpIHsKICAgICBpZiAoaSAhPSAwKSB7CiAg
ICAgICAqc3RyZWFtIDw8ICIsXG4iOwogICAgIH0KLSAgICBQcmludEpzb25UZXN0Q2FzZShzdHJl
YW0sICp0ZXN0X2Nhc2VzW2ldKTsKKyAgICBQcmludEpzb25UZXN0U3VpdGUoc3RyZWFtLCAqdGVz
dF9zdWl0ZXNbaV0pOwogICB9CiAKICAgKnN0cmVhbSA8PCAiXG4iCkBAIC00MjY5LDcgKzQ4OTMs
NyBAQCB2b2lkIFN0cmVhbWluZ0xpc3RlbmVyOjpTb2NrZXRXcml0ZXI6Ok1ha2VDb25uZWN0aW9u
KCkgewogICBtZW1zZXQoJmhpbnRzLCAwLCBzaXplb2YoaGludHMpKTsKICAgaGludHMuYWlfZmFt
aWx5ID0gQUZfVU5TUEVDOyAgICAvLyBUbyBhbGxvdyBib3RoIElQdjQgYW5kIElQdjYgYWRkcmVz
c2VzLgogICBoaW50cy5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOwotICBhZGRyaW5mbyogc2Vy
dmluZm8gPSBOVUxMOworICBhZGRyaW5mbyogc2VydmluZm8gPSBudWxscHRyOwogCiAgIC8vIFVz
ZSB0aGUgZ2V0YWRkcmluZm8oKSB0byBnZXQgYSBsaW5rZWQgbGlzdCBvZiBJUCBhZGRyZXNzZXMg
Zm9yCiAgIC8vIHRoZSBnaXZlbiBob3N0IG5hbWUuCkBAIC00MjgxLDcgKzQ5MDUsNyBAQCB2b2lk
IFN0cmVhbWluZ0xpc3RlbmVyOjpTb2NrZXRXcml0ZXI6Ok1ha2VDb25uZWN0aW9uKCkgewogICB9
CiAKICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgcmVzdWx0cyBhbmQgY29ubmVjdCB0byB0aGUg
Zmlyc3Qgd2UgY2FuLgotICBmb3IgKGFkZHJpbmZvKiBjdXJfYWRkciA9IHNlcnZpbmZvOyBzb2Nr
ZmRfID09IC0xICYmIGN1cl9hZGRyICE9IE5VTEw7CisgIGZvciAoYWRkcmluZm8qIGN1cl9hZGRy
ID0gc2VydmluZm87IHNvY2tmZF8gPT0gLTEgJiYgY3VyX2FkZHIgIT0gbnVsbHB0cjsKICAgICAg
ICBjdXJfYWRkciA9IGN1cl9hZGRyLT5haV9uZXh0KSB7CiAgICAgc29ja2ZkXyA9IHNvY2tldCgK
ICAgICAgICAgY3VyX2FkZHItPmFpX2ZhbWlseSwgY3VyX2FkZHItPmFpX3NvY2t0eXBlLCBjdXJf
YWRkci0+YWlfcHJvdG9jb2wpOwpAQCAtNDM5MSw2ICs1MDE1LDcgQEAgY2xhc3MgU2NvcGVkUHJl
bWF0dXJlRXhpdEZpbGUgewogICB9CiAKICAgflNjb3BlZFByZW1hdHVyZUV4aXRGaWxlKCkgewor
I2lmICFkZWZpbmVkIEdURVNUX09TX0VTUDgyNjYKICAgICBpZiAoIXByZW1hdHVyZV9leGl0X2Zp
bGVwYXRoXy5lbXB0eSgpKSB7CiAgICAgICBpbnQgcmV0dmFsID0gcmVtb3ZlKHByZW1hdHVyZV9l
eGl0X2ZpbGVwYXRoXy5jX3N0cigpKTsKICAgICAgIGlmIChyZXR2YWwpIHsKQEAgLTQzOTksNiAr
NTAyNCw3IEBAIGNsYXNzIFNjb3BlZFByZW1hdHVyZUV4aXRGaWxlIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgcmV0dmFsOwogICAgICAgfQogICAgIH0KKyNlbmRpZgogICB9CiAKICBw
cml2YXRlOgpAQCAtNDQxMyw5ICs1MDM5LDggQEAgY2xhc3MgU2NvcGVkUHJlbWF0dXJlRXhpdEZp
bGUgewogCiBUZXN0RXZlbnRMaXN0ZW5lcnM6OlRlc3RFdmVudExpc3RlbmVycygpCiAgICAgOiBy
ZXBlYXRlcl8obmV3IGludGVybmFsOjpUZXN0RXZlbnRSZXBlYXRlcigpKSwKLSAgICAgIGRlZmF1
bHRfcmVzdWx0X3ByaW50ZXJfKE5VTEwpLAotICAgICAgZGVmYXVsdF94bWxfZ2VuZXJhdG9yXyhO
VUxMKSB7Ci19CisgICAgICBkZWZhdWx0X3Jlc3VsdF9wcmludGVyXyhudWxscHRyKSwKKyAgICAg
IGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8obnVsbHB0cikge30KIAogVGVzdEV2ZW50TGlzdGVuZXJz
Ojp+VGVzdEV2ZW50TGlzdGVuZXJzKCkgeyBkZWxldGUgcmVwZWF0ZXJfOyB9CiAKQEAgLTQ0MzIs
OSArNTA1Nyw5IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpBcHBlbmQoVGVzdEV2ZW50TGlz
dGVuZXIqIGxpc3RlbmVyKSB7CiAvLyBOVUxMIGlmIHRoZSBsaXN0ZW5lciBpcyBub3QgZm91bmQg
aW4gdGhlIGxpc3QuCiBUZXN0RXZlbnRMaXN0ZW5lciogVGVzdEV2ZW50TGlzdGVuZXJzOjpSZWxl
YXNlKFRlc3RFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikgewogICBpZiAobGlzdGVuZXIgPT0gZGVm
YXVsdF9yZXN1bHRfcHJpbnRlcl8pCi0gICAgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl8gPSBOVUxM
OworICAgIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfID0gbnVsbHB0cjsKICAgZWxzZSBpZiAobGlz
dGVuZXIgPT0gZGVmYXVsdF94bWxfZ2VuZXJhdG9yXykKLSAgICBkZWZhdWx0X3htbF9nZW5lcmF0
b3JfID0gTlVMTDsKKyAgICBkZWZhdWx0X3htbF9nZW5lcmF0b3JfID0gbnVsbHB0cjsKICAgcmV0
dXJuIHJlcGVhdGVyXy0+UmVsZWFzZShsaXN0ZW5lcik7CiB9CiAKQEAgLTQ0NTMsOCArNTA3OCw3
IEBAIHZvaWQgVGVzdEV2ZW50TGlzdGVuZXJzOjpTZXREZWZhdWx0UmVzdWx0UHJpbnRlcihUZXN0
RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpIHsKICAgICAvLyBsaXN0LgogICAgIGRlbGV0ZSBSZWxl
YXNlKGRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfKTsKICAgICBkZWZhdWx0X3Jlc3VsdF9wcmludGVy
XyA9IGxpc3RlbmVyOwotICAgIGlmIChsaXN0ZW5lciAhPSBOVUxMKQotICAgICAgQXBwZW5kKGxp
c3RlbmVyKTsKKyAgICBpZiAobGlzdGVuZXIgIT0gbnVsbHB0cikgQXBwZW5kKGxpc3RlbmVyKTsK
ICAgfQogfQogCkBAIC00NDY5LDggKzUwOTMsNyBAQCB2b2lkIFRlc3RFdmVudExpc3RlbmVyczo6
U2V0RGVmYXVsdFhtbEdlbmVyYXRvcihUZXN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpIHsKICAg
ICAvLyBsaXN0LgogICAgIGRlbGV0ZSBSZWxlYXNlKGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8pOwog
ICAgIGRlZmF1bHRfeG1sX2dlbmVyYXRvcl8gPSBsaXN0ZW5lcjsKLSAgICBpZiAobGlzdGVuZXIg
IT0gTlVMTCkKLSAgICAgIEFwcGVuZChsaXN0ZW5lcik7CisgICAgaWYgKGxpc3RlbmVyICE9IG51
bGxwdHIpIEFwcGVuZChsaXN0ZW5lcik7CiAgIH0KIH0KIApAQCAtNDQ5NCw1MiArNTExNyw2NiBA
QCB2b2lkIFRlc3RFdmVudExpc3RlbmVyczo6U3VwcHJlc3NFdmVudEZvcndhcmRpbmcoKSB7CiAv
LyBjYWxsIHRoaXMgYmVmb3JlIG1haW4oKSBzdGFydHMsIGZyb20gd2hpY2ggcG9pbnQgb24gdGhl
IHJldHVybgogLy8gdmFsdWUgd2lsbCBuZXZlciBjaGFuZ2UuCiBVbml0VGVzdCogVW5pdFRlc3Q6
OkdldEluc3RhbmNlKCkgewotICAvLyBXaGVuIGNvbXBpbGVkIHdpdGggTVNWQyA3LjEgaW4gb3B0
aW1pemVkIG1vZGUsIGRlc3Ryb3lpbmcgdGhlCi0gIC8vIFVuaXRUZXN0IG9iamVjdCB1cG9uIGV4
aXRpbmcgdGhlIHByb2dyYW0gbWVzc2VzIHVwIHRoZSBleGl0IGNvZGUsCi0gIC8vIGNhdXNpbmcg
c3VjY2Vzc2Z1bCB0ZXN0cyB0byBhcHBlYXIgZmFpbGVkLiAgV2UgaGF2ZSB0byB1c2UgYQotICAv
LyBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gaW4gdGhpcyBjYXNlIHRvIGJ5cGFzcyB0aGUgY29t
cGlsZXIgYnVnLgotICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIG1ha2VzIHRoZSBjb21waWxlciBo
YXBweSwgYXQgdGhlIGNvc3Qgb2YKLSAgLy8gbGVha2luZyB0aGUgVW5pdFRlc3Qgb2JqZWN0Lgot
CiAgIC8vIENvZGVHZWFyIEMrK0J1aWxkZXIgaW5zaXN0cyBvbiBhIHB1YmxpYyBkZXN0cnVjdG9y
IGZvciB0aGUKICAgLy8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gIFVzZSB0aGlzIGltcGxlbWVu
dGF0aW9uIHRvIGtlZXAgZ29vZCBPTwogICAvLyBkZXNpZ24gd2l0aCBwcml2YXRlIGRlc3RydWN0
b3IuCiAKLSNpZiAoX01TQ19WRVIgPT0gMTMxMCAmJiAhZGVmaW5lZChfREVCVUcpKSB8fCBkZWZp
bmVkKF9fQk9STEFORENfXykKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykKICAgc3RhdGljIFVu
aXRUZXN0KiBjb25zdCBpbnN0YW5jZSA9IG5ldyBVbml0VGVzdDsKICAgcmV0dXJuIGluc3RhbmNl
OwogI2Vsc2UKICAgc3RhdGljIFVuaXRUZXN0IGluc3RhbmNlOwogICByZXR1cm4gJmluc3RhbmNl
OwotI2VuZGlmICAvLyAoX01TQ19WRVIgPT0gMTMxMCAmJiAhZGVmaW5lZChfREVCVUcpKSB8fCBk
ZWZpbmVkKF9fQk9STEFORENfXykKKyNlbmRpZiAgLy8gZGVmaW5lZChfX0JPUkxBTkRDX18pCiB9
CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIHRlc3QgY2FzZXMuCi1pbnQgVW5p
dFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gaW1w
bCgpLT5zdWNjZXNzZnVsX3Rlc3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUgbnVtYmVyIG9m
IHN1Y2Nlc3NmdWwgdGVzdCBzdWl0ZXMuCitpbnQgVW5pdFRlc3Q6OnN1Y2Nlc3NmdWxfdGVzdF9z
dWl0ZV9jb3VudCgpIGNvbnN0IHsKKyAgcmV0dXJuIGltcGwoKS0+c3VjY2Vzc2Z1bF90ZXN0X3N1
aXRlX2NvdW50KCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBmYWlsZWQgdGVzdCBjYXNl
cy4KLWludCBVbml0VGVzdDo6ZmFpbGVkX3Rlc3RfY2FzZV9jb3VudCgpIGNvbnN0IHsKLSAgcmV0
dXJuIGltcGwoKS0+ZmFpbGVkX3Rlc3RfY2FzZV9jb3VudCgpOworLy8gR2V0cyB0aGUgbnVtYmVy
IG9mIGZhaWxlZCB0ZXN0IHN1aXRlcy4KK2ludCBVbml0VGVzdDo6ZmFpbGVkX3Rlc3Rfc3VpdGVf
Y291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPmZhaWxlZF90ZXN0X3N1aXRlX2NvdW50
KCk7CiB9CiAKLS8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBjYXNlcy4KLWludCBVbml0
VGVzdDo6dG90YWxfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgewotICByZXR1cm4gaW1wbCgpLT50
b3RhbF90ZXN0X2Nhc2VfY291bnQoKTsKKy8vIEdldHMgdGhlIG51bWJlciBvZiBhbGwgdGVzdCBz
dWl0ZXMuCitpbnQgVW5pdFRlc3Q6OnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSBjb25zdCB7Cisg
IHJldHVybiBpbXBsKCktPnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsKIH0KIAotLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IGNhc2VzIHRoYXQgY29udGFpbiBhdCBsZWFzdCBvbmUgdGVz
dAorLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGFsbCB0ZXN0IHN1aXRlcyB0aGF0IGNvbnRhaW4gYXQg
bGVhc3Qgb25lIHRlc3QKIC8vIHRoYXQgc2hvdWxkIHJ1bi4KK2ludCBVbml0VGVzdDo6dGVzdF9z
dWl0ZV90b19ydW5fY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnRlc3Rfc3VpdGVf
dG9fcnVuX2NvdW50KCk7Cit9CisKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8K
K2ludCBVbml0VGVzdDo6c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSBjb25zdCB7CisgIHJl
dHVybiBpbXBsKCktPnN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpOworfQoraW50IFVuaXRU
ZXN0OjpmYWlsZWRfdGVzdF9jYXNlX2NvdW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgpLT5m
YWlsZWRfdGVzdF9zdWl0ZV9jb3VudCgpOworfQoraW50IFVuaXRUZXN0Ojp0b3RhbF90ZXN0X2Nh
c2VfY291bnQoKSBjb25zdCB7CisgIHJldHVybiBpbXBsKCktPnRvdGFsX3Rlc3Rfc3VpdGVfY291
bnQoKTsKK30KIGludCBVbml0VGVzdDo6dGVzdF9jYXNlX3RvX3J1bl9jb3VudCgpIGNvbnN0IHsK
LSAgcmV0dXJuIGltcGwoKS0+dGVzdF9jYXNlX3RvX3J1bl9jb3VudCgpOworICByZXR1cm4gaW1w
bCgpLT50ZXN0X3N1aXRlX3RvX3J1bl9jb3VudCgpOwogfQorI2VuZGlmICAvLyAgR1RFU1RfUkVN
T1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKIC8vIEdldHMgdGhlIG51bWJlciBvZiBzdWNjZXNz
ZnVsIHRlc3RzLgogaW50IFVuaXRUZXN0OjpzdWNjZXNzZnVsX3Rlc3RfY291bnQoKSBjb25zdCB7
CiAgIHJldHVybiBpbXBsKCktPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpOwogfQogCisvLyBHZXRz
IHRoZSBudW1iZXIgb2Ygc2tpcHBlZCB0ZXN0cy4KK2ludCBVbml0VGVzdDo6c2tpcHBlZF90ZXN0
X2NvdW50KCkgY29uc3QgeworICByZXR1cm4gaW1wbCgpLT5za2lwcGVkX3Rlc3RfY291bnQoKTsK
K30KKwogLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4KIGludCBVbml0VGVzdDo6
ZmFpbGVkX3Rlc3RfY291bnQoKSBjb25zdCB7IHJldHVybiBpbXBsKCktPmZhaWxlZF90ZXN0X2Nv
dW50KCk7IH0KIApAQCAtNDU3NSwyOSArNTIxMiwzNyBAQCBpbnRlcm5hbDo6VGltZUluTWlsbGlz
IFVuaXRUZXN0OjplbGFwc2VkX3RpbWUoKSBjb25zdCB7CiAgIHJldHVybiBpbXBsKCktPmVsYXBz
ZWRfdGltZSgpOwogfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgcGFzc2Vk
IChpLmUuIGFsbCB0ZXN0IGNhc2VzIHBhc3NlZCkuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhlIHVuaXQgdGVzdCBwYXNzZWQgKGkuZS4gYWxsIHRlc3Qgc3VpdGVzCisvLyBwYXNz
ZWQpLgogYm9vbCBVbml0VGVzdDo6UGFzc2VkKCkgY29uc3QgeyByZXR1cm4gaW1wbCgpLT5QYXNz
ZWQoKTsgfQogCi0vLyBSZXR1cm5zIHRydWUgaWZmIHRoZSB1bml0IHRlc3QgZmFpbGVkIChpLmUu
IHNvbWUgdGVzdCBjYXNlIGZhaWxlZAotLy8gb3Igc29tZXRoaW5nIG91dHNpZGUgb2YgYWxsIHRl
c3RzIGZhaWxlZCkuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHVuaXQgdGVz
dCBmYWlsZWQgKGkuZS4gc29tZSB0ZXN0IHN1aXRlCisvLyBmYWlsZWQgb3Igc29tZXRoaW5nIG91
dHNpZGUgb2YgYWxsIHRlc3RzIGZhaWxlZCkuCiBib29sIFVuaXRUZXN0OjpGYWlsZWQoKSBjb25z
dCB7IHJldHVybiBpbXBsKCktPkZhaWxlZCgpOyB9CiAKLS8vIEdldHMgdGhlIGktdGggdGVzdCBj
YXNlIGFtb25nIGFsbCB0aGUgdGVzdCBjYXNlcy4gaSBjYW4gcmFuZ2UgZnJvbSAwIHRvCi0vLyB0
b3RhbF90ZXN0X2Nhc2VfY291bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJl
dHVybnMgTlVMTC4KKy8vIEdldHMgdGhlIGktdGggdGVzdCBzdWl0ZSBhbW9uZyBhbGwgdGhlIHRl
c3Qgc3VpdGVzLiBpIGNhbiByYW5nZSBmcm9tIDAgdG8KKy8vIHRvdGFsX3Rlc3Rfc3VpdGVfY291
bnQoKSAtIDEuIElmIGkgaXMgbm90IGluIHRoYXQgcmFuZ2UsIHJldHVybnMgTlVMTC4KK2NvbnN0
IFRlc3RTdWl0ZSogVW5pdFRlc3Q6OkdldFRlc3RTdWl0ZShpbnQgaSkgY29uc3QgeworICByZXR1
cm4gaW1wbCgpLT5HZXRUZXN0U3VpdGUoaSk7Cit9CisKKy8vICBMZWdhY3kgQVBJIGlzIGRlcHJl
Y2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KIGNvbnN0IFRlc3RDYXNlKiBVbml0VGVzdDo6R2V0VGVzdENhc2UoaW50IGkp
IGNvbnN0IHsKICAgcmV0dXJuIGltcGwoKS0+R2V0VGVzdENhc2UoaSk7CiB9CisjZW5kaWYgIC8v
ICBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIAogLy8gUmV0dXJucyB0aGUgVGVz
dFJlc3VsdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRlc3QgZmFpbHVyZXMgYW5kCi0vLyBw
cm9wZXJ0aWVzIGxvZ2dlZCBvdXRzaWRlIG9mIGluZGl2aWR1YWwgdGVzdCBjYXNlcy4KKy8vIHBy
b3BlcnRpZXMgbG9nZ2VkIG91dHNpZGUgb2YgaW5kaXZpZHVhbCB0ZXN0IHN1aXRlcy4KIGNvbnN0
IFRlc3RSZXN1bHQmIFVuaXRUZXN0OjphZF9ob2NfdGVzdF9yZXN1bHQoKSBjb25zdCB7CiAgIHJl
dHVybiAqaW1wbCgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKTsKIH0KIAotLy8gR2V0cyB0aGUgaS10
aCB0ZXN0IGNhc2UgYW1vbmcgYWxsIHRoZSB0ZXN0IGNhc2VzLiBpIGNhbiByYW5nZSBmcm9tIDAg
dG8KLS8vIHRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpIC0gMS4gSWYgaSBpcyBub3QgaW4gdGhhdCBy
YW5nZSwgcmV0dXJucyBOVUxMLgotVGVzdENhc2UqIFVuaXRUZXN0OjpHZXRNdXRhYmxlVGVzdENh
c2UoaW50IGkpIHsKLSAgcmV0dXJuIGltcGwoKS0+R2V0TXV0YWJsZVRlc3RDYXNlKGkpOworLy8g
R2V0cyB0aGUgaS10aCB0ZXN0IHN1aXRlIGFtb25nIGFsbCB0aGUgdGVzdCBzdWl0ZXMuIGkgY2Fu
IHJhbmdlIGZyb20gMCB0bworLy8gdG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpIC0gMS4gSWYgaSBp
cyBub3QgaW4gdGhhdCByYW5nZSwgcmV0dXJucyBOVUxMLgorVGVzdFN1aXRlKiBVbml0VGVzdDo6
R2V0TXV0YWJsZVRlc3RTdWl0ZShpbnQgaSkgeworICByZXR1cm4gaW1wbCgpLT5HZXRNdXRhYmxl
U3VpdGVDYXNlKGkpOwogfQogCiAvLyBSZXR1cm5zIHRoZSBsaXN0IG9mIGV2ZW50IGxpc3RlbmVy
cyB0aGF0IGNhbiBiZSB1c2VkIHRvIHRyYWNrIGV2ZW50cwpAQCAtNDYxNyw4ICs1MjYyLDggQEAg
VGVzdEV2ZW50TGlzdGVuZXJzJiBVbml0VGVzdDo6bGlzdGVuZXJzKCkgewogLy8gV2UgZG9uJ3Qg
cHJvdGVjdCB0aGlzIHVuZGVyIG11dGV4XywgYXMgd2Ugb25seSBzdXBwb3J0IGNhbGxpbmcgaXQK
IC8vIGZyb20gdGhlIG1haW4gdGhyZWFkLgogRW52aXJvbm1lbnQqIFVuaXRUZXN0OjpBZGRFbnZp
cm9ubWVudChFbnZpcm9ubWVudCogZW52KSB7Ci0gIGlmIChlbnYgPT0gTlVMTCkgewotICAgIHJl
dHVybiBOVUxMOworICBpZiAoZW52ID09IG51bGxwdHIpIHsKKyAgICByZXR1cm4gbnVsbHB0cjsK
ICAgfQogCiAgIGltcGxfLT5lbnZpcm9ubWVudHMoKS5wdXNoX2JhY2soZW52KTsKQEAgLTQ2NDIs
MjUgKzUyODcsMjQgQEAgdm9pZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCiAgIGlmIChp
bXBsXy0+Z3Rlc3RfdHJhY2Vfc3RhY2soKS5zaXplKCkgPiAwKSB7CiAgICAgbXNnIDw8ICJcbiIg
PDwgR1RFU1RfTkFNRV8gPDwgIiB0cmFjZToiOwogCi0gICAgZm9yIChpbnQgaSA9IHN0YXRpY19j
YXN0PGludD4oaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNrKCkuc2l6ZSgpKTsKLSAgICAgICAgIGkg
PiAwOyAtLWkpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gaW1wbF8tPmd0ZXN0X3RyYWNlX3N0YWNr
KCkuc2l6ZSgpOyBpID4gMDsgLS1pKSB7CiAgICAgICBjb25zdCBpbnRlcm5hbDo6VHJhY2VJbmZv
JiB0cmFjZSA9IGltcGxfLT5ndGVzdF90cmFjZV9zdGFjaygpW2kgLSAxXTsKICAgICAgIG1zZyA8
PCAiXG4iIDw8IGludGVybmFsOjpGb3JtYXRGaWxlTG9jYXRpb24odHJhY2UuZmlsZSwgdHJhY2Uu
bGluZSkKICAgICAgICAgICA8PCAiICIgPDwgdHJhY2UubWVzc2FnZTsKICAgICB9CiAgIH0KIAot
ICBpZiAob3Nfc3RhY2tfdHJhY2UuY19zdHIoKSAhPSBOVUxMICYmICFvc19zdGFja190cmFjZS5l
bXB0eSgpKSB7CisgIGlmIChvc19zdGFja190cmFjZS5jX3N0cigpICE9IG51bGxwdHIgJiYgIW9z
X3N0YWNrX3RyYWNlLmVtcHR5KCkpIHsKICAgICBtc2cgPDwgaW50ZXJuYWw6OmtTdGFja1RyYWNl
TWFya2VyIDw8IG9zX3N0YWNrX3RyYWNlOwogICB9CiAKLSAgY29uc3QgVGVzdFBhcnRSZXN1bHQg
cmVzdWx0ID0KLSAgICBUZXN0UGFydFJlc3VsdChyZXN1bHRfdHlwZSwgZmlsZV9uYW1lLCBsaW5l
X251bWJlciwKLSAgICAgICAgICAgICAgICAgICBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7Cisg
IGNvbnN0IFRlc3RQYXJ0UmVzdWx0IHJlc3VsdCA9IFRlc3RQYXJ0UmVzdWx0KAorICAgICAgcmVz
dWx0X3R5cGUsIGZpbGVfbmFtZSwgbGluZV9udW1iZXIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigp
KTsKICAgaW1wbF8tPkdldFRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJGb3JDdXJyZW50VGhyZWFkKCkt
PgogICAgICAgUmVwb3J0VGVzdFBhcnRSZXN1bHQocmVzdWx0KTsKIAotICBpZiAocmVzdWx0X3R5
cGUgIT0gVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzKSB7CisgIGlmIChyZXN1bHRfdHlwZSAhPSBU
ZXN0UGFydFJlc3VsdDo6a1N1Y2Nlc3MgJiYKKyAgICAgIHJlc3VsdF90eXBlICE9IFRlc3RQYXJ0
UmVzdWx0OjprU2tpcCkgewogICAgIC8vIGd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUgdGFrZXMgcHJl
Y2VkZW5jZSBvdmVyCiAgICAgLy8gZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZS4gIFRoaXMgYWxsb3dz
IGEgdXNlciB0byBzZXQgdGhlIGxhdHRlcgogICAgIC8vIGluIHRoZSBjb2RlIChwZXJoYXBzIGlu
IG9yZGVyIHRvIHVzZSBHb29nbGUgVGVzdCBhc3NlcnRpb25zCkBAIC00Njc4LDExICs1MzIyLDEw
IEBAIHZvaWQgVW5pdFRlc3Q6OkFkZFRlc3RQYXJ0UmVzdWx0KAogICAgICAgLy8gd2l0aCBjbGFu
Zy9nY2Mgd2UgY2FuIGFjaGlldmUgdGhlIHNhbWUgZWZmZWN0IG9uIHg4NiBieSBpbnZva2luZyBp
bnQzCiAgICAgICBhc20oImludDMiKTsKICNlbHNlCi0gICAgICAvLyBEZXJlZmVyZW5jZSBOVUxM
IHRocm91Z2ggYSB2b2xhdGlsZSBwb2ludGVyIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyCisgICAg
ICAvLyBEZXJlZmVyZW5jZSBudWxscHRyIHRocm91Z2ggYSB2b2xhdGlsZSBwb2ludGVyIHRvIHBy
ZXZlbnQgdGhlIGNvbXBpbGVyCiAgICAgICAvLyBmcm9tIHJlbW92aW5nLiBXZSB1c2UgdGhpcyBy
YXRoZXIgdGhhbiBhYm9ydCgpIG9yIF9fYnVpbHRpbl90cmFwKCkgZm9yCi0gICAgICAvLyBwb3J0
YWJpbGl0eTogU3ltYmlhbiBkb2Vzbid0IGltcGxlbWVudCBhYm9ydCgpIHdlbGwsIGFuZCBzb21l
IGRlYnVnZ2VycwotICAgICAgLy8gZG9uJ3QgY29ycmVjdGx5IHRyYXAgYWJvcnQoKS4KLSAgICAg
ICpzdGF0aWNfY2FzdDx2b2xhdGlsZSBpbnQqPihOVUxMKSA9IDE7CisgICAgICAvLyBwb3J0YWJp
bGl0eTogc29tZSBkZWJ1Z2dlcnMgZG9uJ3QgY29ycmVjdGx5IHRyYXAgYWJvcnQoKS4KKyAgICAg
ICpzdGF0aWNfY2FzdDx2b2xhdGlsZSBpbnQqPihudWxscHRyKSA9IDE7CiAjZW5kaWYgIC8vIEdU
RVNUX09TX1dJTkRPV1MKICAgICB9IGVsc2UgaWYgKEdURVNUX0ZMQUcodGhyb3dfb25fZmFpbHVy
ZSkpIHsKICNpZiBHVEVTVF9IQVNfRVhDRVBUSU9OUwpAQCAtNDY5Nyw4ICs1MzQwLDggQEAgdm9p
ZCBVbml0VGVzdDo6QWRkVGVzdFBhcnRSZXN1bHQoCiB9CiAKIC8vIEFkZHMgYSBUZXN0UHJvcGVy
dHkgdG8gdGhlIGN1cnJlbnQgVGVzdFJlc3VsdCBvYmplY3Qgd2hlbiBpbnZva2VkIGZyb20KLS8v
IGluc2lkZSBhIHRlc3QsIHRvIGN1cnJlbnQgVGVzdENhc2UncyBhZF9ob2NfdGVzdF9yZXN1bHRf
IHdoZW4gaW52b2tlZAotLy8gZnJvbSBTZXRVcFRlc3RDYXNlIG9yIFRlYXJEb3duVGVzdENhc2Us
IG9yIHRvIHRoZSBnbG9iYWwgcHJvcGVydHkgc2V0CisvLyBpbnNpZGUgYSB0ZXN0LCB0byBjdXJy
ZW50IFRlc3RTdWl0ZSdzIGFkX2hvY190ZXN0X3Jlc3VsdF8gd2hlbiBpbnZva2VkCisvLyBmcm9t
IFNldFVwVGVzdFN1aXRlIG9yIFRlYXJEb3duVGVzdFN1aXRlLCBvciB0byB0aGUgZ2xvYmFsIHBy
b3BlcnR5IHNldAogLy8gd2hlbiBpbnZva2VkIGVsc2V3aGVyZS4gIElmIHRoZSByZXN1bHQgYWxy
ZWFkeSBjb250YWlucyBhIHByb3BlcnR5IHdpdGgKIC8vIHRoZSBzYW1lIGtleSwgdGhlIHZhbHVl
IHdpbGwgYmUgdXBkYXRlZC4KIHZvaWQgVW5pdFRlc3Q6OlJlY29yZFByb3BlcnR5KGNvbnN0IHN0
ZDo6c3RyaW5nJiBrZXksCkBAIC00NzM3LDggKzUzODAsOSBAQCBpbnQgVW5pdFRlc3Q6OlJ1bigp
IHsKICAgLy8gdGhhdCB1bmRlcnN0YW5kcyB0aGUgcHJlbWF0dXJlLWV4aXQtZmlsZSBwcm90b2Nv
bCB0byByZXBvcnQgdGhlCiAgIC8vIHRlc3QgYXMgaGF2aW5nIGZhaWxlZC4KICAgY29uc3QgaW50
ZXJuYWw6OlNjb3BlZFByZW1hdHVyZUV4aXRGaWxlIHByZW1hdHVyZV9leGl0X2ZpbGUoCi0gICAg
ICBpbl9kZWF0aF90ZXN0X2NoaWxkX3Byb2Nlc3MgPwotICAgICAgTlVMTCA6IGludGVybmFsOjpw
b3NpeDo6R2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUiKSk7CisgICAgICBpbl9kZWF0
aF90ZXN0X2NoaWxkX3Byb2Nlc3MKKyAgICAgICAgICA/IG51bGxwdHIKKyAgICAgICAgICA6IGlu
dGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNUX1BSRU1BVFVSRV9FWElUX0ZJTEUiKSk7CiAKICAg
Ly8gQ2FwdHVyZXMgdGhlIHZhbHVlIG9mIEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykuICBU
aGlzIHZhbHVlIHdpbGwgYmUKICAgLy8gdXNlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBwcm9n
cmFtLgpAQCAtNDc2MywyMiArNTQwNywyNiBAQCBpbnQgVW5pdFRlc3Q6OlJ1bigpIHsKICAgICBf
c2V0X2Vycm9yX21vZGUoX09VVF9UT19TVERFUlIpOwogIyBlbmRpZgogCi0jIGlmIF9NU0NfVkVS
ID49IDE0MDAgJiYgIUdURVNUX09TX1dJTkRPV1NfTU9CSUxFCisjIGlmIGRlZmluZWQoX01TQ19W
RVIpICYmICFHVEVTVF9PU19XSU5ET1dTX01PQklMRQogICAgIC8vIEluIHRoZSBkZWJ1ZyB2ZXJz
aW9uLCBWaXN1YWwgU3R1ZGlvIHBvcHMgdXAgYSBzZXBhcmF0ZSBkaWFsb2cKICAgICAvLyBvZmZl
cmluZyBhIGNob2ljZSB0byBkZWJ1ZyB0aGUgYWJvcnRlZCBwcm9ncmFtLiBXZSBuZWVkIHRvIHN1
cHByZXNzCiAgICAgLy8gdGhpcyBkaWFsb2cgb3IgaXQgd2lsbCBwb3AgdXAgZm9yIGV2ZXJ5IEVY
UEVDVC9BU1NFUlRfREVBVEggc3RhdGVtZW50CiAgICAgLy8gZXhlY3V0ZWQuIEdvb2dsZSBUZXN0
IHdpbGwgbm90aWZ5IHRoZSB1c2VyIG9mIGFueSB1bmV4cGVjdGVkCiAgICAgLy8gZmFpbHVyZSB2
aWEgc3RkZXJyLgotICAgIC8vCi0gICAgLy8gVkMrKyBkb2Vzbid0IGRlZmluZSBfc2V0X2Fib3J0
X2JlaGF2aW9yKCkgcHJpb3IgdG8gdGhlIHZlcnNpb24gOC4wLgotICAgIC8vIFVzZXJzIG9mIHBy
aW9yIFZDIHZlcnNpb25zIHNoYWxsIHN1ZmZlciB0aGUgYWdvbnkgYW5kIHBhaW4gb2YKLSAgICAv
LyBjbGlja2luZyB0aHJvdWdoIHRoZSBjb3VudGxlc3MgZGVidWcgZGlhbG9ncy4KLSAgICAvLyBG
SVhNRTogZmluZCBhIHdheSB0byBzdXBwcmVzcyB0aGUgYWJvcnQgZGlhbG9nKCkgaW4gdGhlCi0g
ICAgLy8gZGVidWcgbW9kZSB3aGVuIGNvbXBpbGVkIHdpdGggVkMgNy4xIG9yIGxvd2VyLgogICAg
IGlmICghR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkKICAgICAgIF9zZXRfYWJvcnRfYmVo
YXZpb3IoCiAgICAgICAgICAgMHgwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIENsZWFyIHRoZSBmb2xsb3dpbmcgZmxhZ3M6CiAgICAgICAgICAgX1dSSVRFX0FCT1JUX01T
RyB8IF9DQUxMX1JFUE9SVEZBVUxUKTsgIC8vIHBvcC11cCB3aW5kb3csIGNvcmUgZHVtcC4KKwor
ICAgIC8vIEluIGRlYnVnIG1vZGUsIHRoZSBXaW5kb3dzIENSVCBjYW4gY3Jhc2ggd2l0aCBhbiBh
c3NlcnRpb24gb3ZlciBpbnZhbGlkCisgICAgLy8gaW5wdXQgKGUuZy4gcGFzc2luZyBhbiBpbnZh
bGlkIGZpbGUgZGVzY3JpcHRvcikuICBUaGUgZGVmYXVsdCBoYW5kbGluZworICAgIC8vIGZvciB0
aGVzZSBhc3NlcnRpb25zIGlzIHRvIHBvcCB1cCBhIGRpYWxvZyBhbmQgd2FpdCBmb3IgdXNlciBp
bnB1dC4KKyAgICAvLyBJbnN0ZWFkIGFzayB0aGUgQ1JUIHRvIGR1bXAgc3VjaCBhc3NlcnRpb25z
IHRvIHN0ZGVyciBub24taW50ZXJhY3RpdmVseS4KKyAgICBpZiAoIUlzRGVidWdnZXJQcmVzZW50
KCkpIHsKKyAgICAgICh2b2lkKV9DcnRTZXRSZXBvcnRNb2RlKF9DUlRfQVNTRVJULAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX0NSVERCR19NT0RFX0ZJTEUgfCBfQ1JUREJHX01PREVf
REVCVUcpOworICAgICAgKHZvaWQpX0NydFNldFJlcG9ydEZpbGUoX0NSVF9BU1NFUlQsIF9DUlRE
QkdfRklMRV9TVERFUlIpOworICAgIH0KICMgZW5kaWYKICAgfQogI2VuZGlmICAvLyBHVEVTVF9P
U19XSU5ET1dTCkBAIC00Nzk1LDEzICs1NDQzLDIyIEBAIGNvbnN0IGNoYXIqIFVuaXRUZXN0Ojpv
cmlnaW5hbF93b3JraW5nX2RpcigpIGNvbnN0IHsKICAgcmV0dXJuIGltcGxfLT5vcmlnaW5hbF93
b3JraW5nX2Rpcl8uY19zdHIoKTsKIH0KIAotLy8gUmV0dXJucyB0aGUgVGVzdENhc2Ugb2JqZWN0
IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcsCisvLyBSZXR1cm5zIHRoZSBU
ZXN0U3VpdGUgb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmcsCiAv
LyBvciBOVUxMIGlmIG5vIHRlc3QgaXMgcnVubmluZy4KK2NvbnN0IFRlc3RTdWl0ZSogVW5pdFRl
c3Q6OmN1cnJlbnRfdGVzdF9zdWl0ZSgpIGNvbnN0CisgICAgR1RFU1RfTE9DS19FWENMVURFRF8o
bXV0ZXhfKSB7CisgIGludGVybmFsOjpNdXRleExvY2sgbG9jaygmbXV0ZXhfKTsKKyAgcmV0dXJu
IGltcGxfLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKK30KKworLy8gTGVnYWN5IEFQSSBpcyBzdGls
bCBhdmFpbGFibGUgYnV0IGRlcHJlY2F0ZWQKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9U
RVNUX0NBU0VBUElfCiBjb25zdCBUZXN0Q2FzZSogVW5pdFRlc3Q6OmN1cnJlbnRfdGVzdF9jYXNl
KCkgY29uc3QKICAgICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKICAgaW50ZXJuYWw6
Ok11dGV4TG9jayBsb2NrKCZtdXRleF8pOwotICByZXR1cm4gaW1wbF8tPmN1cnJlbnRfdGVzdF9j
YXNlKCk7CisgIHJldHVybiBpbXBsXy0+Y3VycmVudF90ZXN0X3N1aXRlKCk7CiB9CisjZW5kaWYK
IAogLy8gUmV0dXJucyB0aGUgVGVzdEluZm8gb2JqZWN0IGZvciB0aGUgdGVzdCB0aGF0J3MgY3Vy
cmVudGx5IHJ1bm5pbmcsCiAvLyBvciBOVUxMIGlmIG5vIHRlc3QgaXMgcnVubmluZy4KQEAgLTQ4
MTQsMTEgKzU0NzEsMTAgQEAgY29uc3QgVGVzdEluZm8qIFVuaXRUZXN0OjpjdXJyZW50X3Rlc3Rf
aW5mbygpIGNvbnN0CiAvLyBSZXR1cm5zIHRoZSByYW5kb20gc2VlZCB1c2VkIGF0IHRoZSBzdGFy
dCBvZiB0aGUgY3VycmVudCB0ZXN0IHJ1bi4KIGludCBVbml0VGVzdDo6cmFuZG9tX3NlZWQoKSBj
b25zdCB7IHJldHVybiBpbXBsXy0+cmFuZG9tX3NlZWQoKTsgfQogCi0vLyBSZXR1cm5zIFBhcmFt
ZXRlcml6ZWRUZXN0Q2FzZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtlZXAgdHJhY2sgb2YKKy8v
IFJldHVybnMgUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVJlZ2lzdHJ5IG9iamVjdCB1c2VkIHRvIGtl
ZXAgdHJhY2sgb2YKIC8vIHZhbHVlLXBhcmFtZXRlcml6ZWQgdGVzdHMgYW5kIGluc3RhbnRpYXRl
IGFuZCByZWdpc3RlciB0aGVtLgotaW50ZXJuYWw6OlBhcmFtZXRlcml6ZWRUZXN0Q2FzZVJlZ2lz
dHJ5JgotICAgIFVuaXRUZXN0OjpwYXJhbWV0ZXJpemVkX3Rlc3RfcmVnaXN0cnkoKQotICAgICAg
ICBHVEVTVF9MT0NLX0VYQ0xVREVEXyhtdXRleF8pIHsKK2ludGVybmFsOjpQYXJhbWV0ZXJpemVk
VGVzdFN1aXRlUmVnaXN0cnkmCitVbml0VGVzdDo6cGFyYW1ldGVyaXplZF90ZXN0X3JlZ2lzdHJ5
KCkgR1RFU1RfTE9DS19FWENMVURFRF8obXV0ZXhfKSB7CiAgIHJldHVybiBpbXBsXy0+cGFyYW1l
dGVyaXplZF90ZXN0X3JlZ2lzdHJ5KCk7CiB9CiAKQEAgLTQ4NTIsMjMgKzU1MDgsMjIgQEAgbmFt
ZXNwYWNlIGludGVybmFsIHsKIFVuaXRUZXN0SW1wbDo6VW5pdFRlc3RJbXBsKFVuaXRUZXN0KiBw
YXJlbnQpCiAgICAgOiBwYXJlbnRfKHBhcmVudCksCiAgICAgICBHVEVTVF9ESVNBQkxFX01TQ19X
QVJOSU5HU19QVVNIXyg0MzU1IC8qIHVzaW5nIHRoaXMgaW4gaW5pdGlhbGl6ZXIgKi8pCi0gICAg
ICBkZWZhdWx0X2dsb2JhbF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXyh0aGlzKSwKKyAgICAg
ICAgICBkZWZhdWx0X2dsb2JhbF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXyh0aGlzKSwKICAg
ICAgIGRlZmF1bHRfcGVyX3RocmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXyh0aGlzKSwK
LSAgICAgIEdURVNUX0RJU0FCTEVfTVNDX1dBUk5JTkdTX1BPUF8oKQotICAgICAgZ2xvYmFsX3Rl
c3RfcGFydF9yZXN1bHRfcmVwb3Rlcl8oCisgICAgICBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5H
U19QT1BfKCkgZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3Rlcl8oCiAgICAgICAgICAgJmRl
ZmF1bHRfZ2xvYmFsX3Rlc3RfcGFydF9yZXN1bHRfcmVwb3J0ZXJfKSwKICAgICAgIHBlcl90aHJl
YWRfdGVzdF9wYXJ0X3Jlc3VsdF9yZXBvcnRlcl8oCiAgICAgICAgICAgJmRlZmF1bHRfcGVyX3Ro
cmVhZF90ZXN0X3BhcnRfcmVzdWx0X3JlcG9ydGVyXyksCiAgICAgICBwYXJhbWV0ZXJpemVkX3Rl
c3RfcmVnaXN0cnlfKCksCiAgICAgICBwYXJhbWV0ZXJpemVkX3Rlc3RzX3JlZ2lzdGVyZWRfKGZh
bHNlKSwKLSAgICAgIGxhc3RfZGVhdGhfdGVzdF9jYXNlXygtMSksCi0gICAgICBjdXJyZW50X3Rl
c3RfY2FzZV8oTlVMTCksCi0gICAgICBjdXJyZW50X3Rlc3RfaW5mb18oTlVMTCksCisgICAgICBs
YXN0X2RlYXRoX3Rlc3Rfc3VpdGVfKC0xKSwKKyAgICAgIGN1cnJlbnRfdGVzdF9zdWl0ZV8obnVs
bHB0ciksCisgICAgICBjdXJyZW50X3Rlc3RfaW5mb18obnVsbHB0ciksCiAgICAgICBhZF9ob2Nf
dGVzdF9yZXN1bHRfKCksCi0gICAgICBvc19zdGFja190cmFjZV9nZXR0ZXJfKE5VTEwpLAorICAg
ICAgb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXyhudWxscHRyKSwKICAgICAgIHBvc3RfZmxhZ19wYXJz
ZV9pbml0X3BlcmZvcm1lZF8oZmFsc2UpLAogICAgICAgcmFuZG9tX3NlZWRfKDApLCAgLy8gV2ls
bCBiZSBvdmVycmlkZGVuIGJ5IHRoZSBmbGFnIGJlZm9yZSBmaXJzdCB1c2UuCi0gICAgICByYW5k
b21fKDApLCAgLy8gV2lsbCBiZSByZXNlZWRlZCBiZWZvcmUgZmlyc3QgdXNlLgorICAgICAgcmFu
ZG9tXygwKSwgICAgICAgLy8gV2lsbCBiZSByZXNlZWRlZCBiZWZvcmUgZmlyc3QgdXNlLgogICAg
ICAgc3RhcnRfdGltZXN0YW1wXygwKSwKICAgICAgIGVsYXBzZWRfdGltZV8oMCksCiAjaWYgR1RF
U1RfSEFTX0RFQVRIX1RFU1QKQEAgLTQ4ODAsOCArNTUzNSw4IEBAIFVuaXRUZXN0SW1wbDo6VW5p
dFRlc3RJbXBsKFVuaXRUZXN0KiBwYXJlbnQpCiB9CiAKIFVuaXRUZXN0SW1wbDo6flVuaXRUZXN0
SW1wbCgpIHsKLSAgLy8gRGVsZXRlcyBldmVyeSBUZXN0Q2FzZS4KLSAgRm9yRWFjaCh0ZXN0X2Nh
c2VzXywgaW50ZXJuYWw6OkRlbGV0ZTxUZXN0Q2FzZT4pOworICAvLyBEZWxldGVzIGV2ZXJ5IFRl
c3RTdWl0ZS4KKyAgRm9yRWFjaCh0ZXN0X3N1aXRlc18sIGludGVybmFsOjpEZWxldGU8VGVzdFN1
aXRlPik7CiAKICAgLy8gRGVsZXRlcyBldmVyeSBFbnZpcm9ubWVudC4KICAgRm9yRWFjaChlbnZp
cm9ubWVudHNfLCBpbnRlcm5hbDo6RGVsZXRlPEVudmlyb25tZW50Pik7CkBAIC00ODkwLDIwICs1
NTQ1LDIwIEBAIFVuaXRUZXN0SW1wbDo6flVuaXRUZXN0SW1wbCgpIHsKIH0KIAogLy8gQWRkcyBh
IFRlc3RQcm9wZXJ0eSB0byB0aGUgY3VycmVudCBUZXN0UmVzdWx0IG9iamVjdCB3aGVuIGludm9r
ZWQgaW4gYQotLy8gY29udGV4dCBvZiBhIHRlc3QsIHRvIGN1cnJlbnQgdGVzdCBjYXNlJ3MgYWRf
aG9jX3Rlc3RfcmVzdWx0IHdoZW4gaW52b2tlCi0vLyBmcm9tIFNldFVwVGVzdENhc2UvVGVhckRv
d25UZXN0Q2FzZSwgb3IgdG8gdGhlIGdsb2JhbCBwcm9wZXJ0eSBzZXQKKy8vIGNvbnRleHQgb2Yg
YSB0ZXN0LCB0byBjdXJyZW50IHRlc3Qgc3VpdGUncyBhZF9ob2NfdGVzdF9yZXN1bHQgd2hlbiBp
bnZva2UKKy8vIGZyb20gU2V0VXBUZXN0U3VpdGUvVGVhckRvd25UZXN0U3VpdGUsIG9yIHRvIHRo
ZSBnbG9iYWwgcHJvcGVydHkgc2V0CiAvLyBvdGhlcndpc2UuICBJZiB0aGUgcmVzdWx0IGFscmVh
ZHkgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIGtleSwKIC8vIHRoZSB2YWx1ZSB3
aWxsIGJlIHVwZGF0ZWQuCiB2b2lkIFVuaXRUZXN0SW1wbDo6UmVjb3JkUHJvcGVydHkoY29uc3Qg
VGVzdFByb3BlcnR5JiB0ZXN0X3Byb3BlcnR5KSB7CiAgIHN0ZDo6c3RyaW5nIHhtbF9lbGVtZW50
OwogICBUZXN0UmVzdWx0KiB0ZXN0X3Jlc3VsdDsgIC8vIFRlc3RSZXN1bHQgYXBwcm9wcmlhdGUg
Zm9yIHByb3BlcnR5IHJlY29yZGluZy4KIAotICBpZiAoY3VycmVudF90ZXN0X2luZm9fICE9IE5V
TEwpIHsKKyAgaWYgKGN1cnJlbnRfdGVzdF9pbmZvXyAhPSBudWxscHRyKSB7CiAgICAgeG1sX2Vs
ZW1lbnQgPSAidGVzdGNhc2UiOwogICAgIHRlc3RfcmVzdWx0ID0gJihjdXJyZW50X3Rlc3RfaW5m
b18tPnJlc3VsdF8pOwotICB9IGVsc2UgaWYgKGN1cnJlbnRfdGVzdF9jYXNlXyAhPSBOVUxMKSB7
CisgIH0gZWxzZSBpZiAoY3VycmVudF90ZXN0X3N1aXRlXyAhPSBudWxscHRyKSB7CiAgICAgeG1s
X2VsZW1lbnQgPSAidGVzdHN1aXRlIjsKLSAgICB0ZXN0X3Jlc3VsdCA9ICYoY3VycmVudF90ZXN0
X2Nhc2VfLT5hZF9ob2NfdGVzdF9yZXN1bHRfKTsKKyAgICB0ZXN0X3Jlc3VsdCA9ICYoY3VycmVu
dF90ZXN0X3N1aXRlXy0+YWRfaG9jX3Rlc3RfcmVzdWx0Xyk7CiAgIH0gZWxzZSB7CiAgICAgeG1s
X2VsZW1lbnQgPSAidGVzdHN1aXRlcyI7CiAgICAgdGVzdF9yZXN1bHQgPSAmYWRfaG9jX3Rlc3Rf
cmVzdWx0XzsKQEAgLTQ5MTUsNyArNTU3MCw3IEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpSZWNvcmRQ
cm9wZXJ0eShjb25zdCBUZXN0UHJvcGVydHkmIHRlc3RfcHJvcGVydHkpIHsKIC8vIERpc2FibGVz
IGV2ZW50IGZvcndhcmRpbmcgaWYgdGhlIGNvbnRyb2wgaXMgY3VycmVudGx5IGluIGEgZGVhdGgg
dGVzdAogLy8gc3VicHJvY2Vzcy4gTXVzdCBub3QgYmUgY2FsbGVkIGJlZm9yZSBJbml0R29vZ2xl
VGVzdC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpTdXBwcmVzc1Rlc3RFdmVudHNJZkluU3VicHJvY2Vz
cygpIHsKLSAgaWYgKGludGVybmFsX3J1bl9kZWF0aF90ZXN0X2ZsYWdfLmdldCgpICE9IE5VTEwp
CisgIGlmIChpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBudWxscHRyKQog
ICAgIGxpc3RlbmVycygpLT5TdXBwcmVzc0V2ZW50Rm9yd2FyZGluZygpOwogfQogI2VuZGlmICAv
LyBHVEVTVF9IQVNfREVBVEhfVEVTVApAQCAtNDk4Myw2ICs1NjM4LDEwIEBAIHZvaWQgVW5pdFRl
c3RJbXBsOjpQb3N0RmxhZ1BhcnNpbmdJbml0KCkgewogICAgIC8vIHRvIHNodXQgZG93biB0aGUg
ZGVmYXVsdCBYTUwgb3V0cHV0IGJlZm9yZSBpbnZva2luZyBSVU5fQUxMX1RFU1RTLgogICAgIENv
bmZpZ3VyZVhtbE91dHB1dCgpOwogCisgICAgaWYgKEdURVNUX0ZMQUcoYnJpZWYpKSB7CisgICAg
ICBsaXN0ZW5lcnMoKS0+U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIobmV3IEJyaWVmVW5pdFRlc3RS
ZXN1bHRQcmludGVyKTsKKyAgICB9CisKICNpZiBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCiAg
ICAgLy8gQ29uZmlndXJlcyBsaXN0ZW5lcnMgZm9yIHN0cmVhbWluZyB0ZXN0IHJlc3VsdHMgdG8g
dGhlIHNwZWNpZmllZCBzZXJ2ZXIuCiAgICAgQ29uZmlndXJlU3RyZWFtaW5nT3V0cHV0KCk7CkBA
IC00OTk3LDc0ICs1NjU2LDczIEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpQb3N0RmxhZ1BhcnNpbmdJ
bml0KCkgewogICB9CiB9CiAKLS8vIEEgcHJlZGljYXRlIHRoYXQgY2hlY2tzIHRoZSBuYW1lIG9m
IGEgVGVzdENhc2UgYWdhaW5zdCBhIGtub3duCisvLyBBIHByZWRpY2F0ZSB0aGF0IGNoZWNrcyB0
aGUgbmFtZSBvZiBhIFRlc3RTdWl0ZSBhZ2FpbnN0IGEga25vd24KIC8vIHZhbHVlLgogLy8KIC8v
IFRoaXMgaXMgdXNlZCBmb3IgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVuaXRUZXN0IGNsYXNzIG9u
bHkuICBXZSBwdXQKIC8vIGl0IGluIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlIHRvIHByZXZlbnQg
cG9sbHV0aW5nIHRoZSBvdXRlcgogLy8gbmFtZXNwYWNlLgogLy8KLS8vIFRlc3RDYXNlTmFtZUlz
IGlzIGNvcHlhYmxlLgotY2xhc3MgVGVzdENhc2VOYW1lSXMgeworLy8gVGVzdFN1aXRlTmFtZUlz
IGlzIGNvcHlhYmxlLgorY2xhc3MgVGVzdFN1aXRlTmFtZUlzIHsKICBwdWJsaWM6CiAgIC8vIENv
bnN0cnVjdG9yLgotICBleHBsaWNpdCBUZXN0Q2FzZU5hbWVJcyhjb25zdCBzdGQ6OnN0cmluZyYg
bmFtZSkKLSAgICAgIDogbmFtZV8obmFtZSkge30KKyAgZXhwbGljaXQgVGVzdFN1aXRlTmFtZUlz
KGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSA6IG5hbWVfKG5hbWUpIHt9CiAKLSAgLy8gUmV0dXJu
cyB0cnVlIGlmZiB0aGUgbmFtZSBvZiB0ZXN0X2Nhc2UgbWF0Y2hlcyBuYW1lXy4KLSAgYm9vbCBv
cGVyYXRvcigpKGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UpIGNvbnN0IHsKLSAgICByZXR1cm4g
dGVzdF9jYXNlICE9IE5VTEwgJiYgc3RyY21wKHRlc3RfY2FzZS0+bmFtZSgpLCBuYW1lXy5jX3N0
cigpKSA9PSAwOworICAvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIG5hbWUgb2Yg
dGVzdF9zdWl0ZSBtYXRjaGVzIG5hbWVfLgorICBib29sIG9wZXJhdG9yKCkoY29uc3QgVGVzdFN1
aXRlKiB0ZXN0X3N1aXRlKSBjb25zdCB7CisgICAgcmV0dXJuIHRlc3Rfc3VpdGUgIT0gbnVsbHB0
ciAmJgorICAgICAgICAgICBzdHJjbXAodGVzdF9zdWl0ZS0+bmFtZSgpLCBuYW1lXy5jX3N0cigp
KSA9PSAwOwogICB9CiAKICBwcml2YXRlOgogICBzdGQ6OnN0cmluZyBuYW1lXzsKIH07CiAKLS8v
IEZpbmRzIGFuZCByZXR1cm5zIGEgVGVzdENhc2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIG9u
ZSBkb2Vzbid0CisvLyBGaW5kcyBhbmQgcmV0dXJucyBhIFRlc3RTdWl0ZSB3aXRoIHRoZSBnaXZl
biBuYW1lLiAgSWYgb25lIGRvZXNuJ3QKIC8vIGV4aXN0LCBjcmVhdGVzIG9uZSBhbmQgcmV0dXJu
cyBpdC4gIEl0J3MgdGhlIENBTExFUidTCiAvLyBSRVNQT05TSUJJTElUWSB0byBlbnN1cmUgdGhh
dCB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIFdIRU4gVEhFCiAvLyBURVNUUyBBUkUgTk9U
IFNIVUZGTEVELgogLy8KIC8vIEFyZ3VtZW50czoKIC8vCi0vLyAgIHRlc3RfY2FzZV9uYW1lOiBu
YW1lIG9mIHRoZSB0ZXN0IGNhc2UKLS8vICAgdHlwZV9wYXJhbTogICAgIHRoZSBuYW1lIG9mIHRo
ZSB0ZXN0IGNhc2UncyB0eXBlIHBhcmFtZXRlciwgb3IgTlVMTCBpZgotLy8gICAgICAgICAgICAg
ICAgICAgdGhpcyBpcyBub3QgYSB0eXBlZCBvciBhIHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0IGNh
c2UuCi0vLyAgIHNldF91cF90YzogICAgICBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHNl
dHMgdXAgdGhlIHRlc3QgY2FzZQotLy8gICB0ZWFyX2Rvd25fdGM6ICAgcG9pbnRlciB0byB0aGUg
ZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IGNhc2UKLVRlc3RDYXNlKiBVbml0VGVz
dEltcGw6OkdldFRlc3RDYXNlKGNvbnN0IGNoYXIqIHRlc3RfY2FzZV9uYW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3Q6OlNldFVwVGVzdENhc2VGdW5jIHNl
dF91cF90YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3Q6OlRlYXJE
b3duVGVzdENhc2VGdW5jIHRlYXJfZG93bl90YykgewotICAvLyBDYW4gd2UgZmluZCBhIFRlc3RD
YXNlIHdpdGggdGhlIGdpdmVuIG5hbWU/Ci0gIGNvbnN0IHN0ZDo6dmVjdG9yPFRlc3RDYXNlKj46
OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgdGVzdF9jYXNlID0KLSAgICAgIHN0ZDo6ZmluZF9pZih0
ZXN0X2Nhc2VzXy5yYmVnaW4oKSwgdGVzdF9jYXNlc18ucmVuZCgpLAotICAgICAgICAgICAgICAg
ICAgIFRlc3RDYXNlTmFtZUlzKHRlc3RfY2FzZV9uYW1lKSk7Ci0KLSAgaWYgKHRlc3RfY2FzZSAh
PSB0ZXN0X2Nhc2VzXy5yZW5kKCkpCi0gICAgcmV0dXJuICp0ZXN0X2Nhc2U7CisvLyAgIHRlc3Rf
c3VpdGVfbmFtZTogbmFtZSBvZiB0aGUgdGVzdCBzdWl0ZQorLy8gICB0eXBlX3BhcmFtOiAgICAg
IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IHN1aXRlJ3MgdHlwZSBwYXJhbWV0ZXIsIG9yIE5VTEwgaWYK
Ky8vICAgICAgICAgICAgICAgICAgICB0aGlzIGlzIG5vdCBhIHR5cGVkIG9yIGEgdHlwZS1wYXJh
bWV0ZXJpemVkIHRlc3Qgc3VpdGUuCisvLyAgIHNldF91cF90YzogICAgICAgcG9pbnRlciB0byB0
aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHVwIHRoZSB0ZXN0IHN1aXRlCisvLyAgIHRlYXJfZG93bl90
YzogICAgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCB0ZWFycyBkb3duIHRoZSB0ZXN0IHN1
aXRlCitUZXN0U3VpdGUqIFVuaXRUZXN0SW1wbDo6R2V0VGVzdFN1aXRlKAorICAgIGNvbnN0IGNo
YXIqIHRlc3Rfc3VpdGVfbmFtZSwgY29uc3QgY2hhciogdHlwZV9wYXJhbSwKKyAgICBpbnRlcm5h
bDo6U2V0VXBUZXN0U3VpdGVGdW5jIHNldF91cF90YywKKyAgICBpbnRlcm5hbDo6VGVhckRvd25U
ZXN0U3VpdGVGdW5jIHRlYXJfZG93bl90YykgeworICAvLyBDYW4gd2UgZmluZCBhIFRlc3RTdWl0
ZSB3aXRoIHRoZSBnaXZlbiBuYW1lPworICBjb25zdCBhdXRvIHRlc3Rfc3VpdGUgPQorICAgICAg
c3RkOjpmaW5kX2lmKHRlc3Rfc3VpdGVzXy5yYmVnaW4oKSwgdGVzdF9zdWl0ZXNfLnJlbmQoKSwK
KyAgICAgICAgICAgICAgICAgICBUZXN0U3VpdGVOYW1lSXModGVzdF9zdWl0ZV9uYW1lKSk7CisK
KyAgaWYgKHRlc3Rfc3VpdGUgIT0gdGVzdF9zdWl0ZXNfLnJlbmQoKSkgcmV0dXJuICp0ZXN0X3N1
aXRlOwogCiAgIC8vIE5vLiAgTGV0J3MgY3JlYXRlIG9uZS4KLSAgVGVzdENhc2UqIGNvbnN0IG5l
d190ZXN0X2Nhc2UgPQotICAgICAgbmV3IFRlc3RDYXNlKHRlc3RfY2FzZV9uYW1lLCB0eXBlX3Bh
cmFtLCBzZXRfdXBfdGMsIHRlYXJfZG93bl90Yyk7Ci0KLSAgLy8gSXMgdGhpcyBhIGRlYXRoIHRl
c3QgY2FzZT8KLSAgaWYgKGludGVybmFsOjpVbml0VGVzdE9wdGlvbnM6Ok1hdGNoZXNGaWx0ZXIo
dGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtEZWF0aFRlc3RDYXNlRmlsdGVyKSkgewotICAgIC8vIFllcy4gIEluc2VydHMgdGhl
IHRlc3QgY2FzZSBhZnRlciB0aGUgbGFzdCBkZWF0aCB0ZXN0IGNhc2UKLSAgICAvLyBkZWZpbmVk
IHNvIGZhci4gIFRoaXMgb25seSB3b3JrcyB3aGVuIHRoZSB0ZXN0IGNhc2VzIGhhdmVuJ3QKKyAg
YXV0byogY29uc3QgbmV3X3Rlc3Rfc3VpdGUgPQorICAgICAgbmV3IFRlc3RTdWl0ZSh0ZXN0X3N1
aXRlX25hbWUsIHR5cGVfcGFyYW0sIHNldF91cF90YywgdGVhcl9kb3duX3RjKTsKKworICAvLyBJ
cyB0aGlzIGEgZGVhdGggdGVzdCBzdWl0ZT8KKyAgaWYgKGludGVybmFsOjpVbml0VGVzdE9wdGlv
bnM6Ok1hdGNoZXNGaWx0ZXIodGVzdF9zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrRGVhdGhUZXN0U3VpdGVGaWx0ZXIpKSB7CisgICAg
Ly8gWWVzLiAgSW5zZXJ0cyB0aGUgdGVzdCBzdWl0ZSBhZnRlciB0aGUgbGFzdCBkZWF0aCB0ZXN0
IHN1aXRlCisgICAgLy8gZGVmaW5lZCBzbyBmYXIuICBUaGlzIG9ubHkgd29ya3Mgd2hlbiB0aGUg
dGVzdCBzdWl0ZXMgaGF2ZW4ndAogICAgIC8vIGJlZW4gc2h1ZmZsZWQuICBPdGhlcndpc2Ugd2Ug
bWF5IGVuZCB1cCBydW5uaW5nIGEgZGVhdGggdGVzdAogICAgIC8vIGFmdGVyIGEgbm9uLWRlYXRo
IHRlc3QuCi0gICAgKytsYXN0X2RlYXRoX3Rlc3RfY2FzZV87Ci0gICAgdGVzdF9jYXNlc18uaW5z
ZXJ0KHRlc3RfY2FzZXNfLmJlZ2luKCkgKyBsYXN0X2RlYXRoX3Rlc3RfY2FzZV8sCi0gICAgICAg
ICAgICAgICAgICAgICAgIG5ld190ZXN0X2Nhc2UpOworICAgICsrbGFzdF9kZWF0aF90ZXN0X3N1
aXRlXzsKKyAgICB0ZXN0X3N1aXRlc18uaW5zZXJ0KHRlc3Rfc3VpdGVzXy5iZWdpbigpICsgbGFz
dF9kZWF0aF90ZXN0X3N1aXRlXywKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld190ZXN0X3N1
aXRlKTsKICAgfSBlbHNlIHsKICAgICAvLyBOby4gIEFwcGVuZHMgdG8gdGhlIGVuZCBvZiB0aGUg
bGlzdC4KLSAgICB0ZXN0X2Nhc2VzXy5wdXNoX2JhY2sobmV3X3Rlc3RfY2FzZSk7CisgICAgdGVz
dF9zdWl0ZXNfLnB1c2hfYmFjayhuZXdfdGVzdF9zdWl0ZSk7CiAgIH0KIAotICB0ZXN0X2Nhc2Vf
aW5kaWNlc18ucHVzaF9iYWNrKHN0YXRpY19jYXN0PGludD4odGVzdF9jYXNlX2luZGljZXNfLnNp
emUoKSkpOwotICByZXR1cm4gbmV3X3Rlc3RfY2FzZTsKKyAgdGVzdF9zdWl0ZV9pbmRpY2VzXy5w
dXNoX2JhY2soc3RhdGljX2Nhc3Q8aW50Pih0ZXN0X3N1aXRlX2luZGljZXNfLnNpemUoKSkpOwor
ICByZXR1cm4gbmV3X3Rlc3Rfc3VpdGU7CiB9CiAKIC8vIEhlbHBlcnMgZm9yIHNldHRpbmcgdXAg
LyB0ZWFyaW5nIGRvd24gdGhlIGdpdmVuIGVudmlyb25tZW50LiAgVGhleQpAQCAtNTA4Miw3ICs1
NzQwLDggQEAgc3RhdGljIHZvaWQgVGVhckRvd25FbnZpcm9ubWVudChFbnZpcm9ubWVudCogZW52
KSB7IGVudi0+VGVhckRvd24oKTsgfQogLy8gQWxsIG90aGVyIGZ1bmN0aW9ucyBjYWxsZWQgZnJv
bSBSdW5BbGxUZXN0cygpIG1heSBzYWZlbHkgYXNzdW1lIHRoYXQKIC8vIHBhcmFtZXRlcml6ZWQg
dGVzdHMgYXJlIHJlYWR5IHRvIGJlIGNvdW50ZWQgYW5kIHJ1bi4KIGJvb2wgVW5pdFRlc3RJbXBs
OjpSdW5BbGxUZXN0cygpIHsKLSAgLy8gVHJ1ZSBpZmYgR29vZ2xlIFRlc3QgaXMgaW5pdGlhbGl6
ZWQgYmVmb3JlIFJVTl9BTExfVEVTVFMoKSBpcyBjYWxsZWQuCisgIC8vIFRydWUgaWYgYW5kIG9u
bHkgaWYgR29vZ2xlIFRlc3QgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIFJVTl9BTExfVEVTVFMoKSBp
cworICAvLyBjYWxsZWQuCiAgIGNvbnN0IGJvb2wgZ3Rlc3RfaXNfaW5pdGlhbGl6ZWRfYmVmb3Jl
X3J1bl9hbGxfdGVzdHMgPSBHVGVzdElzSW5pdGlhbGl6ZWQoKTsKIAogICAvLyBEbyBub3QgcnVu
IGFueSB0ZXN0IGlmIHRoZSAtLWhlbHAgZmxhZyB3YXMgc3BlY2lmaWVkLgpAQCAtNTA5OCwxMiAr
NTc1NywxMyBAQCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVzdHMoKSB7CiAgIC8vIHByb3Rv
Y29sLgogICBpbnRlcm5hbDo6V3JpdGVUb1NoYXJkU3RhdHVzRmlsZUlmTmVlZGVkKCk7CiAKLSAg
Ly8gVHJ1ZSBpZmYgd2UgYXJlIGluIGEgc3VicHJvY2VzcyBmb3IgcnVubmluZyBhIHRocmVhZC1z
YWZlLXN0eWxlCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgd2UgYXJlIGluIGEgc3VicHJvY2Vz
cyBmb3IgcnVubmluZyBhIHRocmVhZC1zYWZlLXN0eWxlCiAgIC8vIGRlYXRoIHRlc3QuCiAgIGJv
b2wgaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA9IGZhbHNlOwogCiAjaWYgR1RFU1RfSEFT
X0RFQVRIX1RFU1QKLSAgaW5fc3VicHJvY2Vzc19mb3JfZGVhdGhfdGVzdCA9IChpbnRlcm5hbF9y
dW5fZGVhdGhfdGVzdF9mbGFnXy5nZXQoKSAhPSBOVUxMKTsKKyAgaW5fc3VicHJvY2Vzc19mb3Jf
ZGVhdGhfdGVzdCA9CisgICAgICAoaW50ZXJuYWxfcnVuX2RlYXRoX3Rlc3RfZmxhZ18uZ2V0KCkg
IT0gbnVsbHB0cik7CiAjIGlmIGRlZmluZWQoR1RFU1RfRVhUUkFfREVBVEhfVEVTVF9DSElMRF9T
RVRVUF8pCiAgIGlmIChpbl9zdWJwcm9jZXNzX2Zvcl9kZWF0aF90ZXN0KSB7CiAgICAgR1RFU1Rf
RVhUUkFfREVBVEhfVEVTVF9DSElMRF9TRVRVUF8oKTsKQEAgLTUxMzAsNyArNTc5MCw3IEBAIGJv
b2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgcmFuZG9tX3NlZWRfID0gR1RFU1Rf
RkxBRyhzaHVmZmxlKSA/CiAgICAgICBHZXRSYW5kb21TZWVkRnJvbUZsYWcoR1RFU1RfRkxBRyhy
YW5kb21fc2VlZCkpIDogMDsKIAotICAvLyBUcnVlIGlmZiBhdCBsZWFzdCBvbmUgdGVzdCBoYXMg
ZmFpbGVkLgorICAvLyBUcnVlIGlmIGFuZCBvbmx5IGlmIGF0IGxlYXN0IG9uZSB0ZXN0IGhhcyBm
YWlsZWQuCiAgIGJvb2wgZmFpbGVkID0gZmFsc2U7CiAKICAgVGVzdEV2ZW50TGlzdGVuZXIqIHJl
cGVhdGVyID0gbGlzdGVuZXJzKCktPnJlcGVhdGVyKCk7CkBAIC01MTQyLDE3ICs1ODAyLDE3IEBA
IGJvb2wgVW5pdFRlc3RJbXBsOjpSdW5BbGxUZXN0cygpIHsKICAgLy8gd2hlbiB3ZSBhcmUgaW5z
aWRlIHRoZSBzdWJwcm9jZXNzIG9mIGEgZGVhdGggdGVzdC4KICAgY29uc3QgaW50IHJlcGVhdCA9
IGluX3N1YnByb2Nlc3NfZm9yX2RlYXRoX3Rlc3QgPyAxIDogR1RFU1RfRkxBRyhyZXBlYXQpOwog
ICAvLyBSZXBlYXRzIGZvcmV2ZXIgaWYgdGhlIHJlcGVhdCBjb3VudCBpcyBuZWdhdGl2ZS4KLSAg
Y29uc3QgYm9vbCBmb3JldmVyID0gcmVwZWF0IDwgMDsKLSAgZm9yIChpbnQgaSA9IDA7IGZvcmV2
ZXIgfHwgaSAhPSByZXBlYXQ7IGkrKykgeworICBjb25zdCBib29sIGd0ZXN0X3JlcGVhdF9mb3Jl
dmVyID0gcmVwZWF0IDwgMDsKKyAgZm9yIChpbnQgaSA9IDA7IGd0ZXN0X3JlcGVhdF9mb3JldmVy
IHx8IGkgIT0gcmVwZWF0OyBpKyspIHsKICAgICAvLyBXZSB3YW50IHRvIHByZXNlcnZlIGZhaWx1
cmVzIGdlbmVyYXRlZCBieSBhZC1ob2MgdGVzdAogICAgIC8vIGFzc2VydGlvbnMgZXhlY3V0ZWQg
YmVmb3JlIFJVTl9BTExfVEVTVFMoKS4KICAgICBDbGVhck5vbkFkSG9jVGVzdFJlc3VsdCgpOwog
Ci0gICAgY29uc3QgVGltZUluTWlsbGlzIHN0YXJ0ID0gR2V0VGltZUluTWlsbGlzKCk7CisgICAg
VGltZXIgdGltZXI7CiAKLSAgICAvLyBTaHVmZmxlcyB0ZXN0IGNhc2VzIGFuZCB0ZXN0cyBpZiBy
ZXF1ZXN0ZWQuCisgICAgLy8gU2h1ZmZsZXMgdGVzdCBzdWl0ZXMgYW5kIHRlc3RzIGlmIHJlcXVl
c3RlZC4KICAgICBpZiAoaGFzX3Rlc3RzX3RvX3J1biAmJiBHVEVTVF9GTEFHKHNodWZmbGUpKSB7
Ci0gICAgICByYW5kb20oKS0+UmVzZWVkKHJhbmRvbV9zZWVkXyk7CisgICAgICByYW5kb20oKS0+
UmVzZWVkKHN0YXRpY19jYXN0PHVpbnQzMl90PihyYW5kb21fc2VlZF8pKTsKICAgICAgIC8vIFRo
aXMgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIGNhbGxpbmcgT25UZXN0SXRlcmF0aW9uU3RhcnQoKSwK
ICAgICAgIC8vIHN1Y2ggdGhhdCBhIHRlc3QgZXZlbnQgbGlzdGVuZXIgY2FuIHNlZSB0aGUgYWN0
dWFsIHRlc3Qgb3JkZXIKICAgICAgIC8vIGluIHRoZSBldmVudC4KQEAgLTUxNjIsMTkgKzU4MjIs
NDggQEAgYm9vbCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogICAgIC8vIFRlbGxzIHRo
ZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXJzIHRoYXQgdGhlIHRlc3RzIGFyZSBhYm91dCB0byBz
dGFydC4KICAgICByZXBlYXRlci0+T25UZXN0SXRlcmF0aW9uU3RhcnQoKnBhcmVudF8sIGkpOwog
Ci0gICAgLy8gUnVucyBlYWNoIHRlc3QgY2FzZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdGVz
dCB0byBydW4uCisgICAgLy8gUnVucyBlYWNoIHRlc3Qgc3VpdGUgaWYgdGhlcmUgaXMgYXQgbGVh
c3Qgb25lIHRlc3QgdG8gcnVuLgogICAgIGlmIChoYXNfdGVzdHNfdG9fcnVuKSB7CiAgICAgICAv
LyBTZXRzIHVwIGFsbCBlbnZpcm9ubWVudHMgYmVmb3JlaGFuZC4KICAgICAgIHJlcGVhdGVyLT5P
bkVudmlyb25tZW50c1NldFVwU3RhcnQoKnBhcmVudF8pOwogICAgICAgRm9yRWFjaChlbnZpcm9u
bWVudHNfLCBTZXRVcEVudmlyb25tZW50KTsKICAgICAgIHJlcGVhdGVyLT5PbkVudmlyb25tZW50
c1NldFVwRW5kKCpwYXJlbnRfKTsKIAotICAgICAgLy8gUnVucyB0aGUgdGVzdHMgb25seSBpZiB0
aGVyZSB3YXMgbm8gZmF0YWwgZmFpbHVyZSBkdXJpbmcgZ2xvYmFsCi0gICAgICAvLyBzZXQtdXAu
Ci0gICAgICBpZiAoIVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7Ci0gICAgICAgIGZvciAoaW50
IHRlc3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwgdG90YWxfdGVzdF9jYXNlX2NvdW50KCk7Cisg
ICAgICAvLyBSdW5zIHRoZSB0ZXN0cyBvbmx5IGlmIHRoZXJlIHdhcyBubyBmYXRhbCBmYWlsdXJl
IG9yIHNraXAgdHJpZ2dlcmVkCisgICAgICAvLyBkdXJpbmcgZ2xvYmFsIHNldC11cC4KKyAgICAg
IGlmIChUZXN0OjpJc1NraXBwZWQoKSkgeworICAgICAgICAvLyBFbWl0IGRpYWdub3N0aWNzIHdo
ZW4gZ2xvYmFsIHNldC11cCBjYWxscyBza2lwLCBhcyBpdCB3aWxsIG5vdCBiZQorICAgICAgICAv
LyBlbWl0dGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIFRlc3RSZXN1bHQmIHRlc3RfcmVzdWx0ID0K
KyAgICAgICAgICAgICppbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsKCktPmN1cnJlbnRfdGVzdF9y
ZXN1bHQoKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0X3Jlc3VsdC50b3RhbF9w
YXJ0X2NvdW50KCk7ICsraikgeworICAgICAgICAgIGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiB0ZXN0
X3BhcnRfcmVzdWx0ID0KKyAgICAgICAgICAgICAgdGVzdF9yZXN1bHQuR2V0VGVzdFBhcnRSZXN1
bHQoaik7CisgICAgICAgICAgaWYgKHRlc3RfcGFydF9yZXN1bHQudHlwZSgpID09IFRlc3RQYXJ0
UmVzdWx0OjprU2tpcCkgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHJlc3VsdCA9
IHRlc3RfcGFydF9yZXN1bHQubWVzc2FnZSgpOworICAgICAgICAgICAgcHJpbnRmKCIlc1xuIiwg
cmVzdWx0LmNfc3RyKCkpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmZmx1c2go
c3Rkb3V0KTsKKyAgICAgIH0gZWxzZSBpZiAoIVRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7Cisg
ICAgICAgIGZvciAoaW50IHRlc3RfaW5kZXggPSAwOyB0ZXN0X2luZGV4IDwgdG90YWxfdGVzdF9z
dWl0ZV9jb3VudCgpOworICAgICAgICAgICAgIHRlc3RfaW5kZXgrKykgeworICAgICAgICAgIEdl
dE11dGFibGVTdWl0ZUNhc2UodGVzdF9pbmRleCktPlJ1bigpOworICAgICAgICAgIGlmIChHVEVT
VF9GTEFHKGZhaWxfZmFzdCkgJiYKKyAgICAgICAgICAgICAgR2V0TXV0YWJsZVN1aXRlQ2FzZSh0
ZXN0X2luZGV4KS0+RmFpbGVkKCkpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSB0ZXN0X2lu
ZGV4ICsgMTsgaiA8IHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgaisrKSB7CisgICAgICAgICAg
ICAgIEdldE11dGFibGVTdWl0ZUNhc2UoaiktPlNraXAoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSBlbHNlIGlmIChU
ZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSBmYXRh
bCBmYWlsdXJlIGR1cmluZyB0aGUgZ2xvYmFsIHNldHVwIHRoZW4gd2Uga25vdyB3ZQorICAgICAg
ICAvLyBhcmVuJ3QgZ29pbmcgdG8gcnVuIGFueSB0ZXN0cy4gRXhwbGljaXRseSBtYXJrIGFsbCBv
ZiB0aGUgdGVzdHMgYXMKKyAgICAgICAgLy8gc2tpcHBlZCB0byBtYWtlIHRoaXMgb2J2aW91cyBp
biB0aGUgb3V0cHV0LgorICAgICAgICBmb3IgKGludCB0ZXN0X2luZGV4ID0gMDsgdGVzdF9pbmRl
eCA8IHRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsKICAgICAgICAgICAgICB0ZXN0X2luZGV4Kysp
IHsKLSAgICAgICAgICBHZXRNdXRhYmxlVGVzdENhc2UodGVzdF9pbmRleCktPlJ1bigpOworICAg
ICAgICAgIEdldE11dGFibGVTdWl0ZUNhc2UodGVzdF9pbmRleCktPlNraXAoKTsKICAgICAgICAg
fQogICAgICAgfQogCkBAIC01MTg1LDcgKzU4NzQsNyBAQCBib29sIFVuaXRUZXN0SW1wbDo6UnVu
QWxsVGVzdHMoKSB7CiAgICAgICByZXBlYXRlci0+T25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCgq
cGFyZW50Xyk7CiAgICAgfQogCi0gICAgZWxhcHNlZF90aW1lXyA9IEdldFRpbWVJbk1pbGxpcygp
IC0gc3RhcnQ7CisgICAgZWxhcHNlZF90aW1lXyA9IHRpbWVyLkVsYXBzZWQoKTsKIAogICAgIC8v
IFRlbGxzIHRoZSB1bml0IHRlc3QgZXZlbnQgbGlzdGVuZXIgdGhhdCB0aGUgdGVzdHMgaGF2ZSBq
dXN0IGZpbmlzaGVkLgogICAgIHJlcGVhdGVyLT5PblRlc3RJdGVyYXRpb25FbmQoKnBhcmVudF8s
IGkpOwpAQCAtNTIxMywxNCArNTkwMiwxNCBAQCBib29sIFVuaXRUZXN0SW1wbDo6UnVuQWxsVGVz
dHMoKSB7CiAKICAgaWYgKCFndGVzdF9pc19pbml0aWFsaXplZF9iZWZvcmVfcnVuX2FsbF90ZXN0
cykgewogICAgIENvbG9yZWRQcmludGYoCi0gICAgICAgIENPTE9SX1JFRCwKKyAgICAgICAgR1Rl
c3RDb2xvcjo6a1JlZCwKICAgICAgICAgIlxuSU1QT1JUQU5UIE5PVElDRSAtIERPIE5PVCBJR05P
UkU6XG4iCiAgICAgICAgICJUaGlzIHRlc3QgcHJvZ3JhbSBkaWQgTk9UIGNhbGwgIiBHVEVTVF9J
TklUX0dPT0dMRV9URVNUX05BTUVfCiAgICAgICAgICIoKSBiZWZvcmUgY2FsbGluZyBSVU5fQUxM
X1RFU1RTKCkuIFRoaXMgaXMgSU5WQUxJRC4gU29vbiAiIEdURVNUX05BTUVfCiAgICAgICAgICIg
d2lsbCBzdGFydCB0byBlbmZvcmNlIHRoZSB2YWxpZCB1c2FnZS4gIgogICAgICAgICAiUGxlYXNl
IGZpeCBpdCBBU0FQLCBvciBJVCBXSUxMIFNUQVJUIFRPIEZBSUwuXG4iKTsgIC8vIE5PTElOVAog
I2lmIEdURVNUX0ZPUl9HT09HTEVfCi0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsCisgICAg
Q29sb3JlZFByaW50ZihHVGVzdENvbG9yOjprUmVkLAogICAgICAgICAgICAgICAgICAgIkZvciBt
b3JlIGRldGFpbHMsIHNlZSBodHRwOi8vd2lraS9NYWluL1ZhbGlkR1VuaXRNYWluLlxuIik7CiAj
ZW5kaWYgIC8vIEdURVNUX0ZPUl9HT09HTEVfCiAgIH0KQEAgLTUyMzQsMTAgKzU5MjMsMTAgQEAg
Ym9vbCBVbml0VGVzdEltcGw6OlJ1bkFsbFRlc3RzKCkgewogLy8gYmUgY3JlYXRlZCwgcHJpbnRz
IGFuIGVycm9yIGFuZCBleGl0cy4KIHZvaWQgV3JpdGVUb1NoYXJkU3RhdHVzRmlsZUlmTmVlZGVk
KCkgewogICBjb25zdCBjaGFyKiBjb25zdCB0ZXN0X3NoYXJkX2ZpbGUgPSBwb3NpeDo6R2V0RW52
KGtUZXN0U2hhcmRTdGF0dXNGaWxlKTsKLSAgaWYgKHRlc3Rfc2hhcmRfZmlsZSAhPSBOVUxMKSB7
CisgIGlmICh0ZXN0X3NoYXJkX2ZpbGUgIT0gbnVsbHB0cikgewogICAgIEZJTEUqIGNvbnN0IGZp
bGUgPSBwb3NpeDo6Rk9wZW4odGVzdF9zaGFyZF9maWxlLCAidyIpOwotICAgIGlmIChmaWxlID09
IE5VTEwpIHsKLSAgICAgIENvbG9yZWRQcmludGYoQ09MT1JfUkVELAorICAgIGlmIChmaWxlID09
IG51bGxwdHIpIHsKKyAgICAgIENvbG9yZWRQcmludGYoR1Rlc3RDb2xvcjo6a1JlZCwKICAgICAg
ICAgICAgICAgICAgICAgIkNvdWxkIG5vdCB3cml0ZSB0byB0aGUgdGVzdCBzaGFyZCBzdGF0dXMg
ZmlsZSBcIiVzXCIgIgogICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVkIGJ5IHRoZSAlcyBl
bnZpcm9ubWVudCB2YXJpYWJsZS5cbiIsCiAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc2hhcmRf
ZmlsZSwga1Rlc3RTaGFyZFN0YXR1c0ZpbGUpOwpAQCAtNTI2MSw4ICs1OTUwLDggQEAgYm9vbCBT
aG91bGRTaGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfZW52LAogICAgIHJldHVybiBmYWxz
ZTsKICAgfQogCi0gIGNvbnN0IEludDMyIHRvdGFsX3NoYXJkcyA9IEludDMyRnJvbUVudk9yRGll
KHRvdGFsX3NoYXJkc19lbnYsIC0xKTsKLSAgY29uc3QgSW50MzIgc2hhcmRfaW5kZXggPSBJbnQz
MkZyb21FbnZPckRpZShzaGFyZF9pbmRleF9lbnYsIC0xKTsKKyAgY29uc3QgaW50MzJfdCB0b3Rh
bF9zaGFyZHMgPSBJbnQzMkZyb21FbnZPckRpZSh0b3RhbF9zaGFyZHNfZW52LCAtMSk7CisgIGNv
bnN0IGludDMyX3Qgc2hhcmRfaW5kZXggPSBJbnQzMkZyb21FbnZPckRpZShzaGFyZF9pbmRleF9l
bnYsIC0xKTsKIAogICBpZiAodG90YWxfc2hhcmRzID09IC0xICYmIHNoYXJkX2luZGV4ID09IC0x
KSB7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTI3MSw3ICs1OTYwLDcgQEAgYm9vbCBTaG91bGRT
aGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfZW52LAogICAgICAgPDwgIkludmFsaWQgZW52
aXJvbm1lbnQgdmFyaWFibGVzOiB5b3UgaGF2ZSAiCiAgICAgICA8PCBrVGVzdFNoYXJkSW5kZXgg
PDwgIiA9ICIgPDwgc2hhcmRfaW5kZXgKICAgICAgIDw8ICIsIGJ1dCBoYXZlIGxlZnQgIiA8PCBr
VGVzdFRvdGFsU2hhcmRzIDw8ICIgdW5zZXQuXG4iOwotICAgIENvbG9yZWRQcmludGYoQ09MT1Jf
UkVELCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CisgICAgQ29sb3JlZFByaW50ZihHVGVzdENv
bG9yOjprUmVkLCAiJXMiLCBtc2cuR2V0U3RyaW5nKCkuY19zdHIoKSk7CiAgICAgZmZsdXNoKHN0
ZG91dCk7CiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICB9IGVsc2UgaWYgKHRvdGFsX3NoYXJk
cyAhPSAtMSAmJiBzaGFyZF9pbmRleCA9PSAtMSkgewpAQCAtNTI3OSw3ICs1OTY4LDcgQEAgYm9v
bCBTaG91bGRTaGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfZW52LAogICAgICAgPDwgIklu
dmFsaWQgZW52aXJvbm1lbnQgdmFyaWFibGVzOiB5b3UgaGF2ZSAiCiAgICAgICA8PCBrVGVzdFRv
dGFsU2hhcmRzIDw8ICIgPSAiIDw8IHRvdGFsX3NoYXJkcwogICAgICAgPDwgIiwgYnV0IGhhdmUg
bGVmdCAiIDw8IGtUZXN0U2hhcmRJbmRleCA8PCAiIHVuc2V0LlxuIjsKLSAgICBDb2xvcmVkUHJp
bnRmKENPTE9SX1JFRCwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOworICAgIENvbG9yZWRQcmlu
dGYoR1Rlc3RDb2xvcjo6a1JlZCwgIiVzIiwgbXNnLkdldFN0cmluZygpLmNfc3RyKCkpOwogICAg
IGZmbHVzaChzdGRvdXQpOwogICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgfSBlbHNlIGlmIChz
aGFyZF9pbmRleCA8IDAgfHwgc2hhcmRfaW5kZXggPj0gdG90YWxfc2hhcmRzKSB7CkBAIC01Mjg4
LDcgKzU5NzcsNyBAQCBib29sIFNob3VsZFNoYXJkKGNvbnN0IGNoYXIqIHRvdGFsX3NoYXJkc19l
bnYsCiAgICAgICA8PCBrVGVzdFNoYXJkSW5kZXggPDwgIiA8ICIgPDwga1Rlc3RUb3RhbFNoYXJk
cwogICAgICAgPDwgIiwgYnV0IHlvdSBoYXZlICIgPDwga1Rlc3RTaGFyZEluZGV4IDw8ICI9IiA8
PCBzaGFyZF9pbmRleAogICAgICAgPDwgIiwgIiA8PCBrVGVzdFRvdGFsU2hhcmRzIDw8ICI9IiA8
PCB0b3RhbF9zaGFyZHMgPDwgIi5cbiI7Ci0gICAgQ29sb3JlZFByaW50ZihDT0xPUl9SRUQsIG1z
Zy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKKyAgICBDb2xvcmVkUHJpbnRmKEdUZXN0Q29sb3I6OmtS
ZWQsICIlcyIsIG1zZy5HZXRTdHJpbmcoKS5jX3N0cigpKTsKICAgICBmZmx1c2goc3Rkb3V0KTsK
ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgIH0KQEAgLTUyOTksMTMgKzU5ODgsMTMgQEAgYm9v
bCBTaG91bGRTaGFyZChjb25zdCBjaGFyKiB0b3RhbF9zaGFyZHNfZW52LAogLy8gUGFyc2VzIHRo
ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YXIgYXMgYW4gSW50MzIuIElmIGl0IGlzIHVuc2V0LAog
Ly8gcmV0dXJucyBkZWZhdWx0X3ZhbC4gSWYgaXQgaXMgbm90IGFuIEludDMyLCBwcmludHMgYW4g
ZXJyb3IKIC8vIGFuZCBhYm9ydHMuCi1JbnQzMiBJbnQzMkZyb21FbnZPckRpZShjb25zdCBjaGFy
KiB2YXIsIEludDMyIGRlZmF1bHRfdmFsKSB7CitpbnQzMl90IEludDMyRnJvbUVudk9yRGllKGNv
bnN0IGNoYXIqIHZhciwgaW50MzJfdCBkZWZhdWx0X3ZhbCkgewogICBjb25zdCBjaGFyKiBzdHJf
dmFsID0gcG9zaXg6OkdldEVudih2YXIpOwotICBpZiAoc3RyX3ZhbCA9PSBOVUxMKSB7CisgIGlm
IChzdHJfdmFsID09IG51bGxwdHIpIHsKICAgICByZXR1cm4gZGVmYXVsdF92YWw7CiAgIH0KIAot
ICBJbnQzMiByZXN1bHQ7CisgIGludDMyX3QgcmVzdWx0OwogICBpZiAoIVBhcnNlSW50MzIoTWVz
c2FnZSgpIDw8ICJUaGUgdmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyaWFibGUgIiA8PCB2YXIsCiAg
ICAgICAgICAgICAgICAgICBzdHJfdmFsLCAmcmVzdWx0KSkgewogICAgIGV4aXQoRVhJVF9GQUlM
VVJFKTsKQEAgLTUzMTQsOCArNjAwMyw4IEBAIEludDMyIEludDMyRnJvbUVudk9yRGllKGNvbnN0
IGNoYXIqIHZhciwgSW50MzIgZGVmYXVsdF92YWwpIHsKIH0KIAogLy8gR2l2ZW4gdGhlIHRvdGFs
IG51bWJlciBvZiBzaGFyZHMsIHRoZSBzaGFyZCBpbmRleCwgYW5kIHRoZSB0ZXN0IGlkLAotLy8g
cmV0dXJucyB0cnVlIGlmZiB0aGUgdGVzdCBzaG91bGQgYmUgcnVuIG9uIHRoaXMgc2hhcmQuIFRo
ZSB0ZXN0IGlkIGlzCi0vLyBzb21lIGFyYml0cmFyeSBidXQgdW5pcXVlIG5vbi1uZWdhdGl2ZSBp
bnRlZ2VyIGFzc2lnbmVkIHRvIGVhY2ggdGVzdAorLy8gcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5
IGlmIHRoZSB0ZXN0IHNob3VsZCBiZSBydW4gb24gdGhpcyBzaGFyZC4gVGhlIHRlc3QgaWQKKy8v
IGlzIHNvbWUgYXJiaXRyYXJ5IGJ1dCB1bmlxdWUgbm9uLW5lZ2F0aXZlIGludGVnZXIgYXNzaWdu
ZWQgdG8gZWFjaCB0ZXN0CiAvLyBtZXRob2QuIEFzc3VtZXMgdGhhdCAwIDw9IHNoYXJkX2luZGV4
IDwgdG90YWxfc2hhcmRzLgogYm9vbCBTaG91bGRSdW5UZXN0T25TaGFyZChpbnQgdG90YWxfc2hh
cmRzLCBpbnQgc2hhcmRfaW5kZXgsIGludCB0ZXN0X2lkKSB7CiAgIHJldHVybiAodGVzdF9pZCAl
IHRvdGFsX3NoYXJkcykgPT0gc2hhcmRfaW5kZXg7CkBAIC01MzIzLDE1ICs2MDEyLDE1IEBAIGJv
b2wgU2hvdWxkUnVuVGVzdE9uU2hhcmQoaW50IHRvdGFsX3NoYXJkcywgaW50IHNoYXJkX2luZGV4
LCBpbnQgdGVzdF9pZCkgewogCiAvLyBDb21wYXJlcyB0aGUgbmFtZSBvZiBlYWNoIHRlc3Qgd2l0
aCB0aGUgdXNlci1zcGVjaWZpZWQgZmlsdGVyIHRvCiAvLyBkZWNpZGUgd2hldGhlciB0aGUgdGVz
dCBzaG91bGQgYmUgcnVuLCB0aGVuIHJlY29yZHMgdGhlIHJlc3VsdCBpbgotLy8gZWFjaCBUZXN0
Q2FzZSBhbmQgVGVzdEluZm8gb2JqZWN0LgorLy8gZWFjaCBUZXN0U3VpdGUgYW5kIFRlc3RJbmZv
IG9iamVjdC4KIC8vIElmIHNoYXJkX3Rlc3RzID09IHRydWUsIGZ1cnRoZXIgZmlsdGVycyB0ZXN0
cyBiYXNlZCBvbiBzaGFyZGluZwogLy8gdmFyaWFibGVzIGluIHRoZSBlbnZpcm9ubWVudCAtIHNl
ZQogLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2Jsb2IvbWFzdGVyL2dv
b2dsZXRlc3QvZG9jcy9hZHZhbmNlZC5tZAogLy8gLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGVz
dHMgdGhhdCBzaG91bGQgcnVuLgogaW50IFVuaXRUZXN0SW1wbDo6RmlsdGVyVGVzdHMoUmVhY3Rp
b25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7Ci0gIGNvbnN0IEludDMyIHRvdGFsX3NoYXJkcyA9
IHNoYXJkX3Rlc3RzID09IEhPTk9SX1NIQVJESU5HX1BST1RPQ09MID8KKyAgY29uc3QgaW50MzJf
dCB0b3RhbF9zaGFyZHMgPSBzaGFyZF90ZXN0cyA9PSBIT05PUl9TSEFSRElOR19QUk9UT0NPTCA/
CiAgICAgICBJbnQzMkZyb21FbnZPckRpZShrVGVzdFRvdGFsU2hhcmRzLCAtMSkgOiAtMTsKLSAg
Y29uc3QgSW50MzIgc2hhcmRfaW5kZXggPSBzaGFyZF90ZXN0cyA9PSBIT05PUl9TSEFSRElOR19Q
Uk9UT0NPTCA/CisgIGNvbnN0IGludDMyX3Qgc2hhcmRfaW5kZXggPSBzaGFyZF90ZXN0cyA9PSBI
T05PUl9TSEFSRElOR19QUk9UT0NPTCA/CiAgICAgICBJbnQzMkZyb21FbnZPckRpZShrVGVzdFNo
YXJkSW5kZXgsIC0xKSA6IC0xOwogCiAgIC8vIG51bV9ydW5uYWJsZV90ZXN0cyBhcmUgdGhlIG51
bWJlciBvZiB0ZXN0cyB0aGF0IHdpbGwKQEAgLTUzNDAsMjYgKzYwMjksMjMgQEAgaW50IFVuaXRU
ZXN0SW1wbDo6RmlsdGVyVGVzdHMoUmVhY3Rpb25Ub1NoYXJkaW5nIHNoYXJkX3Rlc3RzKSB7CiAg
IC8vIHRoaXMgc2hhcmQuCiAgIGludCBudW1fcnVubmFibGVfdGVzdHMgPSAwOwogICBpbnQgbnVt
X3NlbGVjdGVkX3Rlc3RzID0gMDsKLSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2Vz
Xy5zaXplKCk7IGkrKykgewotICAgIFRlc3RDYXNlKiBjb25zdCB0ZXN0X2Nhc2UgPSB0ZXN0X2Nh
c2VzX1tpXTsKLSAgICBjb25zdCBzdGQ6OnN0cmluZyAmdGVzdF9jYXNlX25hbWUgPSB0ZXN0X2Nh
c2UtPm5hbWUoKTsKLSAgICB0ZXN0X2Nhc2UtPnNldF9zaG91bGRfcnVuKGZhbHNlKTsKKyAgZm9y
IChhdXRvKiB0ZXN0X3N1aXRlIDogdGVzdF9zdWl0ZXNfKSB7CisgICAgY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3Rfc3VpdGVfbmFtZSA9IHRlc3Rfc3VpdGUtPm5hbWUoKTsKKyAgICB0ZXN0X3N1aXRl
LT5zZXRfc2hvdWxkX3J1bihmYWxzZSk7CiAKLSAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHRl
c3RfY2FzZS0+dGVzdF9pbmZvX2xpc3QoKS5zaXplKCk7IGorKykgewotICAgICAgVGVzdEluZm8q
IGNvbnN0IHRlc3RfaW5mbyA9IHRlc3RfY2FzZS0+dGVzdF9pbmZvX2xpc3QoKVtqXTsKKyAgICBm
b3IgKHNpemVfdCBqID0gMDsgaiA8IHRlc3Rfc3VpdGUtPnRlc3RfaW5mb19saXN0KCkuc2l6ZSgp
OyBqKyspIHsKKyAgICAgIFRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT50
ZXN0X2luZm9fbGlzdCgpW2pdOwogICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgdGVzdF9uYW1lKHRl
c3RfaW5mby0+bmFtZSgpKTsKLSAgICAgIC8vIEEgdGVzdCBpcyBkaXNhYmxlZCBpZiB0ZXN0IGNh
c2UgbmFtZSBvciB0ZXN0IG5hbWUgbWF0Y2hlcworICAgICAgLy8gQSB0ZXN0IGlzIGRpc2FibGVk
IGlmIHRlc3Qgc3VpdGUgbmFtZSBvciB0ZXN0IG5hbWUgbWF0Y2hlcwogICAgICAgLy8ga0Rpc2Fi
bGVUZXN0RmlsdGVyLgotICAgICAgY29uc3QgYm9vbCBpc19kaXNhYmxlZCA9Ci0gICAgICAgICAg
aW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcih0ZXN0X2Nhc2VfbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtEaXNh
YmxlVGVzdEZpbHRlcikgfHwKLSAgICAgICAgICBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpN
YXRjaGVzRmlsdGVyKHRlc3RfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtEaXNhYmxlVGVzdEZpbHRlcik7CisgICAgICBjb25zdCBib29s
IGlzX2Rpc2FibGVkID0gaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcigK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZV9uYW1lLCBrRGlz
YWJsZVRlc3RGaWx0ZXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJu
YWw6OlVuaXRUZXN0T3B0aW9uczo6TWF0Y2hlc0ZpbHRlcigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9uYW1lLCBrRGlzYWJsZVRlc3RGaWx0ZXIpOwogICAgICAgdGVz
dF9pbmZvLT5pc19kaXNhYmxlZF8gPSBpc19kaXNhYmxlZDsKIAotICAgICAgY29uc3QgYm9vbCBt
YXRjaGVzX2ZpbHRlciA9Ci0gICAgICAgICAgaW50ZXJuYWw6OlVuaXRUZXN0T3B0aW9uczo6Rmls
dGVyTWF0Y2hlc1Rlc3QodGVzdF9jYXNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9uYW1lKTsKKyAgICAgIGNvbnN0IGJv
b2wgbWF0Y2hlc19maWx0ZXIgPSBpbnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOjpGaWx0ZXJNYXRj
aGVzVGVzdCgKKyAgICAgICAgICB0ZXN0X3N1aXRlX25hbWUsIHRlc3RfbmFtZSk7CiAgICAgICB0
ZXN0X2luZm8tPm1hdGNoZXNfZmlsdGVyXyA9IG1hdGNoZXNfZmlsdGVyOwogCiAgICAgICBjb25z
dCBib29sIGlzX3J1bm5hYmxlID0KQEAgLTUzNzYsNyArNjA2Miw3IEBAIGludCBVbml0VGVzdElt
cGw6OkZpbHRlclRlc3RzKFJlYWN0aW9uVG9TaGFyZGluZyBzaGFyZF90ZXN0cykgewogICAgICAg
bnVtX3NlbGVjdGVkX3Rlc3RzICs9IGlzX3NlbGVjdGVkOwogCiAgICAgICB0ZXN0X2luZm8tPnNo
b3VsZF9ydW5fID0gaXNfc2VsZWN0ZWQ7Ci0gICAgICB0ZXN0X2Nhc2UtPnNldF9zaG91bGRfcnVu
KHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpIHx8IGlzX3NlbGVjdGVkKTsKKyAgICAgIHRlc3Rfc3Vp
dGUtPnNldF9zaG91bGRfcnVuKHRlc3Rfc3VpdGUtPnNob3VsZF9ydW4oKSB8fCBpc19zZWxlY3Rl
ZCk7CiAgICAgfQogICB9CiAgIHJldHVybiBudW1fc2VsZWN0ZWRfdGVzdHM7CkBAIC01Mzg3LDcg
KzYwNzMsNyBAQCBpbnQgVW5pdFRlc3RJbXBsOjpGaWx0ZXJUZXN0cyhSZWFjdGlvblRvU2hhcmRp
bmcgc2hhcmRfdGVzdHMpIHsKIC8vIG1heF9sZW5ndGggY2hhcmFjdGVycywgb25seSBwcmludHMg
dGhlIGZpcnN0IG1heF9sZW5ndGggY2hhcmFjdGVycwogLy8gYW5kICIuLi4iLgogc3RhdGljIHZv
aWQgUHJpbnRPbk9uZUxpbmUoY29uc3QgY2hhciogc3RyLCBpbnQgbWF4X2xlbmd0aCkgewotICBp
ZiAoc3RyICE9IE5VTEwpIHsKKyAgaWYgKHN0ciAhPSBudWxscHRyKSB7CiAgICAgZm9yIChpbnQg
aSA9IDA7ICpzdHIgIT0gJ1wwJzsgKytzdHIpIHsKICAgICAgIGlmIChpID49IG1heF9sZW5ndGgp
IHsKICAgICAgICAgcHJpbnRmKCIuLi4iKTsKQEAgLTU0MDksMjcgKzYwOTUsMjUgQEAgdm9pZCBV
bml0VGVzdEltcGw6Okxpc3RUZXN0c01hdGNoaW5nRmlsdGVyKCkgewogICAvLyBQcmludCBhdCBt
b3N0IHRoaXMgbWFueSBjaGFyYWN0ZXJzIGZvciBlYWNoIHR5cGUvdmFsdWUgcGFyYW1ldGVyLgog
ICBjb25zdCBpbnQga01heFBhcmFtTGVuZ3RoID0gMjUwOwogCi0gIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdGVzdF9jYXNlc18uc2l6ZSgpOyBpKyspIHsKLSAgICBjb25zdCBUZXN0Q2FzZSogY29u
c3QgdGVzdF9jYXNlID0gdGVzdF9jYXNlc19baV07Ci0gICAgYm9vbCBwcmludGVkX3Rlc3RfY2Fz
ZV9uYW1lID0gZmFsc2U7CisgIGZvciAoYXV0byogdGVzdF9zdWl0ZSA6IHRlc3Rfc3VpdGVzXykg
eworICAgIGJvb2wgcHJpbnRlZF90ZXN0X3N1aXRlX25hbWUgPSBmYWxzZTsKIAotICAgIGZvciAo
c2l6ZV90IGogPSAwOyBqIDwgdGVzdF9jYXNlLT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisr
KSB7Ci0gICAgICBjb25zdCBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KLSAgICAgICAgICB0
ZXN0X2Nhc2UtPnRlc3RfaW5mb19saXN0KClbal07CisgICAgZm9yIChzaXplX3QgaiA9IDA7IGog
PCB0ZXN0X3N1aXRlLT50ZXN0X2luZm9fbGlzdCgpLnNpemUoKTsgaisrKSB7CisgICAgICBjb25z
dCBUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0gdGVzdF9zdWl0ZS0+dGVzdF9pbmZvX2xpc3Qo
KVtqXTsKICAgICAgIGlmICh0ZXN0X2luZm8tPm1hdGNoZXNfZmlsdGVyXykgewotICAgICAgICBp
ZiAoIXByaW50ZWRfdGVzdF9jYXNlX25hbWUpIHsKLSAgICAgICAgICBwcmludGVkX3Rlc3RfY2Fz
ZV9uYW1lID0gdHJ1ZTsKLSAgICAgICAgICBwcmludGYoIiVzLiIsIHRlc3RfY2FzZS0+bmFtZSgp
KTsKLSAgICAgICAgICBpZiAodGVzdF9jYXNlLT50eXBlX3BhcmFtKCkgIT0gTlVMTCkgeworICAg
ICAgICBpZiAoIXByaW50ZWRfdGVzdF9zdWl0ZV9uYW1lKSB7CisgICAgICAgICAgcHJpbnRlZF90
ZXN0X3N1aXRlX25hbWUgPSB0cnVlOworICAgICAgICAgIHByaW50ZigiJXMuIiwgdGVzdF9zdWl0
ZS0+bmFtZSgpKTsKKyAgICAgICAgICBpZiAodGVzdF9zdWl0ZS0+dHlwZV9wYXJhbSgpICE9IG51
bGxwdHIpIHsKICAgICAgICAgICAgIHByaW50ZigiICAjICVzID0gIiwga1R5cGVQYXJhbUxhYmVs
KTsKICAgICAgICAgICAgIC8vIFdlIHByaW50IHRoZSB0eXBlIHBhcmFtZXRlciBvbiBhIHNpbmds
ZSBsaW5lIHRvIG1ha2UKICAgICAgICAgICAgIC8vIHRoZSBvdXRwdXQgZWFzeSB0byBwYXJzZSBi
eSBhIHByb2dyYW0uCi0gICAgICAgICAgICBQcmludE9uT25lTGluZSh0ZXN0X2Nhc2UtPnR5cGVf
cGFyYW0oKSwga01heFBhcmFtTGVuZ3RoKTsKKyAgICAgICAgICAgIFByaW50T25PbmVMaW5lKHRl
c3Rfc3VpdGUtPnR5cGVfcGFyYW0oKSwga01heFBhcmFtTGVuZ3RoKTsKICAgICAgICAgICB9CiAg
ICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgICB9CiAgICAgICAgIHByaW50ZigiICAlcyIs
IHRlc3RfaW5mby0+bmFtZSgpKTsKLSAgICAgICAgaWYgKHRlc3RfaW5mby0+dmFsdWVfcGFyYW0o
KSAhPSBOVUxMKSB7CisgICAgICAgIGlmICh0ZXN0X2luZm8tPnZhbHVlX3BhcmFtKCkgIT0gbnVs
bHB0cikgewogICAgICAgICAgIHByaW50ZigiICAjICVzID0gIiwga1ZhbHVlUGFyYW1MYWJlbCk7
CiAgICAgICAgICAgLy8gV2UgcHJpbnQgdGhlIHZhbHVlIHBhcmFtZXRlciBvbiBhIHNpbmdsZSBs
aW5lIHRvIG1ha2UgdGhlCiAgICAgICAgICAgLy8gb3V0cHV0IGVhc3kgdG8gcGFyc2UgYnkgYSBw
cm9ncmFtLgpAQCAtNTQ0OCwxMSArNjEzMiwxMSBAQCB2b2lkIFVuaXRUZXN0SW1wbDo6TGlzdFRl
c3RzTWF0Y2hpbmdGaWx0ZXIoKSB7CiAgICAgaWYgKG91dHB1dF9mb3JtYXQgPT0gInhtbCIpIHsK
ICAgICAgIFhtbFVuaXRUZXN0UmVzdWx0UHJpbnRlcigKICAgICAgICAgICBVbml0VGVzdE9wdGlv
bnM6OkdldEFic29sdXRlUGF0aFRvT3V0cHV0RmlsZSgpLmNfc3RyKCkpCi0gICAgICAgICAgLlBy
aW50WG1sVGVzdHNMaXN0KCZzdHJlYW0sIHRlc3RfY2FzZXNfKTsKKyAgICAgICAgICAuUHJpbnRY
bWxUZXN0c0xpc3QoJnN0cmVhbSwgdGVzdF9zdWl0ZXNfKTsKICAgICB9IGVsc2UgaWYgKG91dHB1
dF9mb3JtYXQgPT0gImpzb24iKSB7CiAgICAgICBKc29uVW5pdFRlc3RSZXN1bHRQcmludGVyKAog
ICAgICAgICAgIFVuaXRUZXN0T3B0aW9uczo6R2V0QWJzb2x1dGVQYXRoVG9PdXRwdXRGaWxlKCku
Y19zdHIoKSkKLSAgICAgICAgICAuUHJpbnRKc29uVGVzdExpc3QoJnN0cmVhbSwgdGVzdF9jYXNl
c18pOworICAgICAgICAgIC5QcmludEpzb25UZXN0TGlzdCgmc3RyZWFtLCB0ZXN0X3N1aXRlc18p
OwogICAgIH0KICAgICBmcHJpbnRmKGZpbGVvdXQsICIlcyIsIFN0cmluZ1N0cmVhbVRvU3RyaW5n
KCZzdHJlYW0pLmNfc3RyKCkpOwogICAgIGZjbG9zZShmaWxlb3V0KTsKQEAgLTU0NzYsNyArNjE2
MCw3IEBAIHZvaWQgVW5pdFRlc3RJbXBsOjpzZXRfb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKAogLy8g
b3RoZXJ3aXNlLCBjcmVhdGVzIGFuIE9zU3RhY2tUcmFjZUdldHRlciwgbWFrZXMgaXQgdGhlIGN1
cnJlbnQKIC8vIGdldHRlciwgYW5kIHJldHVybnMgaXQuCiBPc1N0YWNrVHJhY2VHZXR0ZXJJbnRl
cmZhY2UqIFVuaXRUZXN0SW1wbDo6b3Nfc3RhY2tfdHJhY2VfZ2V0dGVyKCkgewotICBpZiAob3Nf
c3RhY2tfdHJhY2VfZ2V0dGVyXyA9PSBOVUxMKSB7CisgIGlmIChvc19zdGFja190cmFjZV9nZXR0
ZXJfID09IG51bGxwdHIpIHsKICNpZmRlZiBHVEVTVF9PU19TVEFDS19UUkFDRV9HRVRURVJfCiAg
ICAgb3Nfc3RhY2tfdHJhY2VfZ2V0dGVyXyA9IG5ldyBHVEVTVF9PU19TVEFDS19UUkFDRV9HRVRU
RVJfOwogI2Vsc2UKQEAgLTU0ODksMzggKzYxNzMsMzggQEAgT3NTdGFja1RyYWNlR2V0dGVySW50
ZXJmYWNlKiBVbml0VGVzdEltcGw6Om9zX3N0YWNrX3RyYWNlX2dldHRlcigpIHsKIAogLy8gUmV0
dXJucyB0aGUgbW9zdCBzcGVjaWZpYyBUZXN0UmVzdWx0IGN1cnJlbnRseSBydW5uaW5nLgogVGVz
dFJlc3VsdCogVW5pdFRlc3RJbXBsOjpjdXJyZW50X3Rlc3RfcmVzdWx0KCkgewotICBpZiAoY3Vy
cmVudF90ZXN0X2luZm9fICE9IE5VTEwpIHsKKyAgaWYgKGN1cnJlbnRfdGVzdF9pbmZvXyAhPSBu
dWxscHRyKSB7CiAgICAgcmV0dXJuICZjdXJyZW50X3Rlc3RfaW5mb18tPnJlc3VsdF87CiAgIH0K
LSAgaWYgKGN1cnJlbnRfdGVzdF9jYXNlXyAhPSBOVUxMKSB7Ci0gICAgcmV0dXJuICZjdXJyZW50
X3Rlc3RfY2FzZV8tPmFkX2hvY190ZXN0X3Jlc3VsdF87CisgIGlmIChjdXJyZW50X3Rlc3Rfc3Vp
dGVfICE9IG51bGxwdHIpIHsKKyAgICByZXR1cm4gJmN1cnJlbnRfdGVzdF9zdWl0ZV8tPmFkX2hv
Y190ZXN0X3Jlc3VsdF87CiAgIH0KICAgcmV0dXJuICZhZF9ob2NfdGVzdF9yZXN1bHRfOwogfQog
Ci0vLyBTaHVmZmxlcyBhbGwgdGVzdCBjYXNlcywgYW5kIHRoZSB0ZXN0cyB3aXRoaW4gZWFjaCB0
ZXN0IGNhc2UsCisvLyBTaHVmZmxlcyBhbGwgdGVzdCBzdWl0ZXMsIGFuZCB0aGUgdGVzdHMgd2l0
aGluIGVhY2ggdGVzdCBzdWl0ZSwKIC8vIG1ha2luZyBzdXJlIHRoYXQgZGVhdGggdGVzdHMgYXJl
IHN0aWxsIHJ1biBmaXJzdC4KIHZvaWQgVW5pdFRlc3RJbXBsOjpTaHVmZmxlVGVzdHMoKSB7Ci0g
IC8vIFNodWZmbGVzIHRoZSBkZWF0aCB0ZXN0IGNhc2VzLgotICBTaHVmZmxlUmFuZ2UocmFuZG9t
KCksIDAsIGxhc3RfZGVhdGhfdGVzdF9jYXNlXyArIDEsICZ0ZXN0X2Nhc2VfaW5kaWNlc18pOwor
ICAvLyBTaHVmZmxlcyB0aGUgZGVhdGggdGVzdCBzdWl0ZXMuCisgIFNodWZmbGVSYW5nZShyYW5k
b20oKSwgMCwgbGFzdF9kZWF0aF90ZXN0X3N1aXRlXyArIDEsICZ0ZXN0X3N1aXRlX2luZGljZXNf
KTsKIAotICAvLyBTaHVmZmxlcyB0aGUgbm9uLWRlYXRoIHRlc3QgY2FzZXMuCi0gIFNodWZmbGVS
YW5nZShyYW5kb20oKSwgbGFzdF9kZWF0aF90ZXN0X2Nhc2VfICsgMSwKLSAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PGludD4odGVzdF9jYXNlc18uc2l6ZSgpKSwgJnRlc3RfY2FzZV9pbmRpY2Vz
Xyk7CisgIC8vIFNodWZmbGVzIHRoZSBub24tZGVhdGggdGVzdCBzdWl0ZXMuCisgIFNodWZmbGVS
YW5nZShyYW5kb20oKSwgbGFzdF9kZWF0aF90ZXN0X3N1aXRlXyArIDEsCisgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxpbnQ+KHRlc3Rfc3VpdGVzXy5zaXplKCkpLCAmdGVzdF9zdWl0ZV9pbmRp
Y2VzXyk7CiAKLSAgLy8gU2h1ZmZsZXMgdGhlIHRlc3RzIGluc2lkZSBlYWNoIHRlc3QgY2FzZS4K
LSAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0ZXN0X2Nhc2VzXy5zaXplKCk7IGkrKykgewotICAg
IHRlc3RfY2FzZXNfW2ldLT5TaHVmZmxlVGVzdHMocmFuZG9tKCkpOworICAvLyBTaHVmZmxlcyB0
aGUgdGVzdHMgaW5zaWRlIGVhY2ggdGVzdCBzdWl0ZS4KKyAgZm9yIChhdXRvJiB0ZXN0X3N1aXRl
IDogdGVzdF9zdWl0ZXNfKSB7CisgICAgdGVzdF9zdWl0ZS0+U2h1ZmZsZVRlc3RzKHJhbmRvbSgp
KTsKICAgfQogfQogCi0vLyBSZXN0b3JlcyB0aGUgdGVzdCBjYXNlcyBhbmQgdGVzdHMgdG8gdGhl
aXIgb3JkZXIgYmVmb3JlIHRoZSBmaXJzdCBzaHVmZmxlLgorLy8gUmVzdG9yZXMgdGhlIHRlc3Qg
c3VpdGVzIGFuZCB0ZXN0cyB0byB0aGVpciBvcmRlciBiZWZvcmUgdGhlIGZpcnN0IHNodWZmbGUu
CiB2b2lkIFVuaXRUZXN0SW1wbDo6VW5zaHVmZmxlVGVzdHMoKSB7Ci0gIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdGVzdF9jYXNlc18uc2l6ZSgpOyBpKyspIHsKLSAgICAvLyBVbnNodWZmbGVzIHRo
ZSB0ZXN0cyBpbiBlYWNoIHRlc3QgY2FzZS4KLSAgICB0ZXN0X2Nhc2VzX1tpXS0+VW5zaHVmZmxl
VGVzdHMoKTsKLSAgICAvLyBSZXNldHMgdGhlIGluZGV4IG9mIGVhY2ggdGVzdCBjYXNlLgotICAg
IHRlc3RfY2FzZV9pbmRpY2VzX1tpXSA9IHN0YXRpY19jYXN0PGludD4oaSk7CisgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdGVzdF9zdWl0ZXNfLnNpemUoKTsgaSsrKSB7CisgICAgLy8gVW5zaHVm
ZmxlcyB0aGUgdGVzdHMgaW4gZWFjaCB0ZXN0IHN1aXRlLgorICAgIHRlc3Rfc3VpdGVzX1tpXS0+
VW5zaHVmZmxlVGVzdHMoKTsKKyAgICAvLyBSZXNldHMgdGhlIGluZGV4IG9mIGVhY2ggdGVzdCBz
dWl0ZS4KKyAgICB0ZXN0X3N1aXRlX2luZGljZXNfW2ldID0gc3RhdGljX2Nhc3Q8aW50PihpKTsK
ICAgfQogfQogCkBAIC01NTc5LDEyICs2MjYzLDEyIEBAIGJvb2wgU2tpcFByZWZpeChjb25zdCBj
aGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIqKiBwc3RyKSB7CiBzdGF0aWMgY29uc3QgY2hhciogUGFy
c2VGbGFnVmFsdWUoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVmX29wdGlvbmFsKSB7CiAgIC8vIHN0ciBh
bmQgZmxhZyBtdXN0IG5vdCBiZSBOVUxMLgotICBpZiAoc3RyID09IE5VTEwgfHwgZmxhZyA9PSBO
VUxMKSByZXR1cm4gTlVMTDsKKyAgaWYgKHN0ciA9PSBudWxscHRyIHx8IGZsYWcgPT0gbnVsbHB0
cikgcmV0dXJuIG51bGxwdHI7CiAKICAgLy8gVGhlIGZsYWcgbXVzdCBzdGFydCB3aXRoICItLSIg
Zm9sbG93ZWQgYnkgR1RFU1RfRkxBR19QUkVGSVhfLgogICBjb25zdCBzdGQ6OnN0cmluZyBmbGFn
X3N0ciA9IHN0ZDo6c3RyaW5nKCItLSIpICsgR1RFU1RfRkxBR19QUkVGSVhfICsgZmxhZzsKICAg
Y29uc3Qgc2l6ZV90IGZsYWdfbGVuID0gZmxhZ19zdHIubGVuZ3RoKCk7Ci0gIGlmIChzdHJuY21w
KHN0ciwgZmxhZ19zdHIuY19zdHIoKSwgZmxhZ19sZW4pICE9IDApIHJldHVybiBOVUxMOworICBp
ZiAoc3RybmNtcChzdHIsIGZsYWdfc3RyLmNfc3RyKCksIGZsYWdfbGVuKSAhPSAwKSByZXR1cm4g
bnVsbHB0cjsKIAogICAvLyBTa2lwcyB0aGUgZmxhZyBuYW1lLgogICBjb25zdCBjaGFyKiBmbGFn
X2VuZCA9IHN0ciArIGZsYWdfbGVuOwpAQCAtNTU5Nyw3ICs2MjgxLDcgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIFBhcnNlRmxhZ1ZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywK
ICAgLy8gSWYgZGVmX29wdGlvbmFsIGlzIHRydWUgYW5kIHRoZXJlIGFyZSBtb3JlIGNoYXJhY3Rl
cnMgYWZ0ZXIgdGhlCiAgIC8vIGZsYWcgbmFtZSwgb3IgaWYgZGVmX29wdGlvbmFsIGlzIGZhbHNl
LCB0aGVyZSBtdXN0IGJlIGEgJz0nIGFmdGVyCiAgIC8vIHRoZSBmbGFnIG5hbWUuCi0gIGlmIChm
bGFnX2VuZFswXSAhPSAnPScpIHJldHVybiBOVUxMOworICBpZiAoZmxhZ19lbmRbMF0gIT0gJz0n
KSByZXR1cm4gbnVsbHB0cjsKIAogICAvLyBSZXR1cm5zIHRoZSBzdHJpbmcgYWZ0ZXIgIj0iLgog
ICByZXR1cm4gZmxhZ19lbmQgKyAxOwpAQCAtNTYxOCwzMiArNjMwMiwzMCBAQCBzdGF0aWMgYm9v
bCBQYXJzZUJvb2xGbGFnKGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgYm9vbCog
dmFsdWUpIHsKICAgY29uc3QgY2hhciogY29uc3QgdmFsdWVfc3RyID0gUGFyc2VGbGFnVmFsdWUo
c3RyLCBmbGFnLCB0cnVlKTsKIAogICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgot
ICBpZiAodmFsdWVfc3RyID09IE5VTEwpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9
PSBudWxscHRyKSByZXR1cm4gZmFsc2U7CiAKICAgLy8gQ29udmVydHMgdGhlIHN0cmluZyB2YWx1
ZSB0byBhIGJvb2wuCiAgICp2YWx1ZSA9ICEoKnZhbHVlX3N0ciA9PSAnMCcgfHwgKnZhbHVlX3N0
ciA9PSAnZicgfHwgKnZhbHVlX3N0ciA9PSAnRicpOwogICByZXR1cm4gdHJ1ZTsKIH0KIAotLy8g
UGFyc2VzIGEgc3RyaW5nIGZvciBhbiBJbnQzMiBmbGFnLCBpbiB0aGUgZm9ybSBvZgotLy8gIi0t
ZmxhZz12YWx1ZSIuCisvLyBQYXJzZXMgYSBzdHJpbmcgZm9yIGFuIGludDMyX3QgZmxhZywgaW4g
dGhlIGZvcm0gb2YgIi0tZmxhZz12YWx1ZSIuCiAvLwogLy8gT24gc3VjY2Vzcywgc3RvcmVzIHRo
ZSB2YWx1ZSBvZiB0aGUgZmxhZyBpbiAqdmFsdWUsIGFuZCByZXR1cm5zCiAvLyB0cnVlLiAgT24g
ZmFpbHVyZSwgcmV0dXJucyBmYWxzZSB3aXRob3V0IGNoYW5naW5nICp2YWx1ZS4KLWJvb2wgUGFy
c2VJbnQzMkZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBmbGFnLCBJbnQzMiogdmFs
dWUpIHsKK2Jvb2wgUGFyc2VJbnQzMkZsYWcoY29uc3QgY2hhciogc3RyLCBjb25zdCBjaGFyKiBm
bGFnLCBpbnQzMl90KiB2YWx1ZSkgewogICAvLyBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBh
cyBhIHN0cmluZy4KICAgY29uc3QgY2hhciogY29uc3QgdmFsdWVfc3RyID0gUGFyc2VGbGFnVmFs
dWUoc3RyLCBmbGFnLCBmYWxzZSk7CiAKICAgLy8gQWJvcnRzIGlmIHRoZSBwYXJzaW5nIGZhaWxl
ZC4KLSAgaWYgKHZhbHVlX3N0ciA9PSBOVUxMKSByZXR1cm4gZmFsc2U7CisgIGlmICh2YWx1ZV9z
dHIgPT0gbnVsbHB0cikgcmV0dXJuIGZhbHNlOwogCiAgIC8vIFNldHMgKnZhbHVlIHRvIHRoZSB2
YWx1ZSBvZiB0aGUgZmxhZy4KICAgcmV0dXJuIFBhcnNlSW50MzIoTWVzc2FnZSgpIDw8ICJUaGUg
dmFsdWUgb2YgZmxhZyAtLSIgPDwgZmxhZywKICAgICAgICAgICAgICAgICAgICAgdmFsdWVfc3Ry
LCB2YWx1ZSk7CiB9CiAKLS8vIFBhcnNlcyBhIHN0cmluZyBmb3IgYSBzdHJpbmcgZmxhZywgaW4g
dGhlIGZvcm0gb2YKLS8vICItLWZsYWc9dmFsdWUiLgorLy8gUGFyc2VzIGEgc3RyaW5nIGZvciBh
IHN0cmluZyBmbGFnLCBpbiB0aGUgZm9ybSBvZiAiLS1mbGFnPXZhbHVlIi4KIC8vCiAvLyBPbiBz
dWNjZXNzLCBzdG9yZXMgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGluICp2YWx1ZSwgYW5kIHJldHVy
bnMKIC8vIHRydWUuICBPbiBmYWlsdXJlLCByZXR1cm5zIGZhbHNlIHdpdGhvdXQgY2hhbmdpbmcg
KnZhbHVlLgpAQCAtNTY1Myw3ICs2MzM1LDcgQEAgc3RhdGljIGJvb2wgUGFyc2VTdHJpbmdGbGFn
KGNvbnN0IGNoYXIqIHN0ciwgY29uc3QgY2hhciogZmxhZywgU3RyaW5nKiB2YWx1ZSkgewogICBj
b25zdCBjaGFyKiBjb25zdCB2YWx1ZV9zdHIgPSBQYXJzZUZsYWdWYWx1ZShzdHIsIGZsYWcsIGZh
bHNlKTsKIAogICAvLyBBYm9ydHMgaWYgdGhlIHBhcnNpbmcgZmFpbGVkLgotICBpZiAodmFsdWVf
c3RyID09IE5VTEwpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlX3N0ciA9PSBudWxscHRyKSBy
ZXR1cm4gZmFsc2U7CiAKICAgLy8gU2V0cyAqdmFsdWUgdG8gdGhlIHZhbHVlIG9mIHRoZSBmbGFn
LgogICAqdmFsdWUgPSB2YWx1ZV9zdHI7CkBAIC01Njg0LDEwICs2MzY2LDggQEAgc3RhdGljIGJv
b2wgSGFzR29vZ2xlVGVzdEZsYWdQcmVmaXgoY29uc3QgY2hhciogc3RyKSB7CiAvLyAgIEBZICAg
IGNoYW5nZXMgdGhlIGNvbG9yIHRvIHllbGxvdy4KIC8vICAgQEQgICAgY2hhbmdlcyB0byB0aGUg
ZGVmYXVsdCB0ZXJtaW5hbCB0ZXh0IGNvbG9yLgogLy8KLS8vIEZJWE1FOiBXcml0ZSB0ZXN0cyBm
b3IgdGhpcyBvbmNlIHdlIGFkZCBzdGRvdXQKLS8vIGNhcHR1cmluZyB0byBHb29nbGUgVGVzdC4K
IHN0YXRpYyB2b2lkIFByaW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0cikgewotICBHVGVz
dENvbG9yIGNvbG9yID0gQ09MT1JfREVGQVVMVDsgIC8vIFRoZSBjdXJyZW50IGNvbG9yLgorICBH
VGVzdENvbG9yIGNvbG9yID0gR1Rlc3RDb2xvcjo6a0RlZmF1bHQ7ICAvLyBUaGUgY3VycmVudCBj
b2xvci4KIAogICAvLyBDb25jZXB0dWFsbHksIHdlIHNwbGl0IHRoZSBzdHJpbmcgaW50byBzZWdt
ZW50cyBkaXZpZGVkIGJ5IGVzY2FwZQogICAvLyBzZXF1ZW5jZXMuICBUaGVuIHdlIHByaW50IG9u
ZSBzZWdtZW50IGF0IGEgdGltZS4gIEF0IHRoZSBlbmQgb2YKQEAgLTU2OTUsNyArNjM3NSw3IEBA
IHN0YXRpYyB2b2lkIFByaW50Q29sb3JFbmNvZGVkKGNvbnN0IGNoYXIqIHN0cikgewogICAvLyBu
ZXh0IHNlZ21lbnQuCiAgIGZvciAoOzspIHsKICAgICBjb25zdCBjaGFyKiBwID0gc3RyY2hyKHN0
ciwgJ0AnKTsKLSAgICBpZiAocCA9PSBOVUxMKSB7CisgICAgaWYgKHAgPT0gbnVsbHB0cikgewog
ICAgICAgQ29sb3JlZFByaW50Zihjb2xvciwgIiVzIiwgc3RyKTsKICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC01NzA3LDEzICs2Mzg3LDEzIEBAIHN0YXRpYyB2b2lkIFByaW50Q29sb3JFbmNvZGVk
KGNvbnN0IGNoYXIqIHN0cikgewogICAgIGlmIChjaCA9PSAnQCcpIHsKICAgICAgIENvbG9yZWRQ
cmludGYoY29sb3IsICJAIik7CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnRCcpIHsKLSAgICAgIGNv
bG9yID0gQ09MT1JfREVGQVVMVDsKKyAgICAgIGNvbG9yID0gR1Rlc3RDb2xvcjo6a0RlZmF1bHQ7
CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnUicpIHsKLSAgICAgIGNvbG9yID0gQ09MT1JfUkVEOwor
ICAgICAgY29sb3IgPSBHVGVzdENvbG9yOjprUmVkOwogICAgIH0gZWxzZSBpZiAoY2ggPT0gJ0cn
KSB7Ci0gICAgICBjb2xvciA9IENPTE9SX0dSRUVOOworICAgICAgY29sb3IgPSBHVGVzdENvbG9y
OjprR3JlZW47CiAgICAgfSBlbHNlIGlmIChjaCA9PSAnWScpIHsKLSAgICAgIGNvbG9yID0gQ09M
T1JfWUVMTE9XOworICAgICAgY29sb3IgPSBHVGVzdENvbG9yOjprWWVsbG93OwogICAgIH0gZWxz
ZSB7CiAgICAgICAtLXN0cjsKICAgICB9CkBAIC01NzIxLDk4ICs2NDAxLDEyNiBAQCBzdGF0aWMg
dm9pZCBQcmludENvbG9yRW5jb2RlZChjb25zdCBjaGFyKiBzdHIpIHsKIH0KIAogc3RhdGljIGNv
bnN0IGNoYXIga0NvbG9yRW5jb2RlZEhlbHBNZXNzYWdlW10gPQotIlRoaXMgcHJvZ3JhbSBjb250
YWlucyB0ZXN0cyB3cml0dGVuIHVzaW5nICIgR1RFU1RfTkFNRV8gIi4gWW91IGNhbiB1c2UgdGhl
XG4iCi0iZm9sbG93aW5nIGNvbW1hbmQgbGluZSBmbGFncyB0byBjb250cm9sIGl0cyBiZWhhdmlv
cjpcbiIKLSJcbiIKLSJUZXN0IFNlbGVjdGlvbjpcbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJF
RklYXyAibGlzdF90ZXN0c0BEXG4iCi0iICAgICAgTGlzdCB0aGUgbmFtZXMgb2YgYWxsIHRlc3Rz
IGluc3RlYWQgb2YgcnVubmluZyB0aGVtLiBUaGUgbmFtZSBvZlxuIgotIiAgICAgIFRFU1QoRm9v
LCBCYXIpIGlzIFwiRm9vLkJhclwiLlxuIgotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJm
aWx0ZXI9QFlQT1NUSVZFX1BBVFRFUk5TIgorICAgICJUaGlzIHByb2dyYW0gY29udGFpbnMgdGVz
dHMgd3JpdHRlbiB1c2luZyAiIEdURVNUX05BTUVfCisgICAgIi4gWW91IGNhbiB1c2UgdGhlXG4i
CisgICAgImZvbGxvd2luZyBjb21tYW5kIGxpbmUgZmxhZ3MgdG8gY29udHJvbCBpdHMgYmVoYXZp
b3I6XG4iCisgICAgIlxuIgorICAgICJUZXN0IFNlbGVjdGlvbjpcbiIKKyAgICAiICBARy0tIiBH
VEVTVF9GTEFHX1BSRUZJWF8KKyAgICAibGlzdF90ZXN0c0BEXG4iCisgICAgIiAgICAgIExpc3Qg
dGhlIG5hbWVzIG9mIGFsbCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlbS4gVGhlIG5hbWUg
b2ZcbiIKKyAgICAiICAgICAgVEVTVChGb28sIEJhcikgaXMgXCJGb28uQmFyXCIuXG4iCisgICAg
IiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCisgICAgImZpbHRlcj1AWVBPU0lUSVZFX1BBVFRF
Uk5TIgogICAgICJbQEctQFlORUdBVElWRV9QQVRURVJOU11ARFxuIgotIiAgICAgIFJ1biBvbmx5
IHRoZSB0ZXN0cyB3aG9zZSBuYW1lIG1hdGNoZXMgb25lIG9mIHRoZSBwb3NpdGl2ZSBwYXR0ZXJu
cyBidXRcbiIKLSIgICAgICBub25lIG9mIHRoZSBuZWdhdGl2ZSBwYXR0ZXJucy4gJz8nIG1hdGNo
ZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXI7ICcqJ1xuIgotIiAgICAgIG1hdGNoZXMgYW55IHN1YnN0
cmluZzsgJzonIHNlcGFyYXRlcyB0d28gcGF0dGVybnMuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFH
X1BSRUZJWF8gImFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzQERcbiIKLSIgICAgICBSdW4gYWxsIGRp
c2FibGVkIHRlc3RzIHRvby5cbiIKLSJcbiIKLSJUZXN0IEV4ZWN1dGlvbjpcbiIKLSIgIEBHLS0i
IEdURVNUX0ZMQUdfUFJFRklYXyAicmVwZWF0PUBZW0NPVU5UXUBEXG4iCi0iICAgICAgUnVuIHRo
ZSB0ZXN0cyByZXBlYXRlZGx5OyB1c2UgYSBuZWdhdGl2ZSBjb3VudCB0byByZXBlYXQgZm9yZXZl
ci5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAic2h1ZmZsZUBEXG4iCi0iICAgICAg
UmFuZG9taXplIHRlc3RzJyBvcmRlcnMgb24gZXZlcnkgaXRlcmF0aW9uLlxuIgotIiAgQEctLSIg
R1RFU1RfRkxBR19QUkVGSVhfICJyYW5kb21fc2VlZD1AWVtOVU1CRVJdQERcbiIKLSIgICAgICBS
YW5kb20gbnVtYmVyIHNlZWQgdG8gdXNlIGZvciBzaHVmZmxpbmcgdGVzdCBvcmRlcnMgKGJldHdl
ZW4gMSBhbmRcbiIKLSIgICAgICA5OTk5OSwgb3IgMCB0byB1c2UgYSBzZWVkIGJhc2VkIG9uIHRo
ZSBjdXJyZW50IHRpbWUpLlxuIgotIlxuIgotIlRlc3QgT3V0cHV0OlxuIgotIiAgQEctLSIgR1RF
U1RfRkxBR19QUkVGSVhfICJjb2xvcj1AWShAR3llc0BZfEBHbm9AWXxAR2F1dG9AWSlARFxuIgot
IiAgICAgIEVuYWJsZS9kaXNhYmxlIGNvbG9yZWQgb3V0cHV0LiBUaGUgZGVmYXVsdCBpcyBAR2F1
dG9ARC5cbiIKLSIgIC1ARy0iIEdURVNUX0ZMQUdfUFJFRklYXyAicHJpbnRfdGltZT0wQERcbiIK
LSIgICAgICBEb24ndCBwcmludCB0aGUgZWxhcHNlZCB0aW1lIG9mIGVhY2ggdGVzdC5cbiIKLSIg
IEBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAib3V0cHV0PUBZKEBHanNvbkBZfEBHeG1sQFkpW0BH
OkBZRElSRUNUT1JZX1BBVEhARyIKLSAgICBHVEVTVF9QQVRIX1NFUF8gIkBZfEBHOkBZRklMRV9Q
QVRIXUBEXG4iCi0iICAgICAgR2VuZXJhdGUgYSBKU09OIG9yIFhNTCByZXBvcnQgaW4gdGhlIGdp
dmVuIGRpcmVjdG9yeSBvciB3aXRoIHRoZSBnaXZlblxuIgotIiAgICAgIGZpbGUgbmFtZS4gQFlG
SUxFX1BBVEhARCBkZWZhdWx0cyB0byBAR3Rlc3RfZGV0YWlscy54bWxARC5cbiIKKyAgICAiICAg
ICAgUnVuIG9ubHkgdGhlIHRlc3RzIHdob3NlIG5hbWUgbWF0Y2hlcyBvbmUgb2YgdGhlIHBvc2l0
aXZlIHBhdHRlcm5zICIKKyAgICAiYnV0XG4iCisgICAgIiAgICAgIG5vbmUgb2YgdGhlIG5lZ2F0
aXZlIHBhdHRlcm5zLiAnPycgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlcjsgIgorICAgICIn
KidcbiIKKyAgICAiICAgICAgbWF0Y2hlcyBhbnkgc3Vic3RyaW5nOyAnOicgc2VwYXJhdGVzIHR3
byBwYXR0ZXJucy5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiYWxz
b19ydW5fZGlzYWJsZWRfdGVzdHNARFxuIgorICAgICIgICAgICBSdW4gYWxsIGRpc2FibGVkIHRl
c3RzIHRvby5cbiIKKyAgICAiXG4iCisgICAgIlRlc3QgRXhlY3V0aW9uOlxuIgorICAgICIgIEBH
LS0iIEdURVNUX0ZMQUdfUFJFRklYXworICAgICJyZXBlYXQ9QFlbQ09VTlRdQERcbiIKKyAgICAi
ICAgICAgUnVuIHRoZSB0ZXN0cyByZXBlYXRlZGx5OyB1c2UgYSBuZWdhdGl2ZSBjb3VudCB0byBy
ZXBlYXQgZm9yZXZlci5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAi
c2h1ZmZsZUBEXG4iCisgICAgIiAgICAgIFJhbmRvbWl6ZSB0ZXN0cycgb3JkZXJzIG9uIGV2ZXJ5
IGl0ZXJhdGlvbi5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAicmFu
ZG9tX3NlZWQ9QFlbTlVNQkVSXUBEXG4iCisgICAgIiAgICAgIFJhbmRvbSBudW1iZXIgc2VlZCB0
byB1c2UgZm9yIHNodWZmbGluZyB0ZXN0IG9yZGVycyAoYmV0d2VlbiAxIGFuZFxuIgorICAgICIg
ICAgICA5OTk5OSwgb3IgMCB0byB1c2UgYSBzZWVkIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUp
LlxuIgorICAgICJcbiIKKyAgICAiVGVzdCBPdXRwdXQ6XG4iCisgICAgIiAgQEctLSIgR1RFU1Rf
RkxBR19QUkVGSVhfCisgICAgImNvbG9yPUBZKEBHeWVzQFl8QEdub0BZfEBHYXV0b0BZKUBEXG4i
CisgICAgIiAgICAgIEVuYWJsZS9kaXNhYmxlIGNvbG9yZWQgb3V0cHV0LiBUaGUgZGVmYXVsdCBp
cyBAR2F1dG9ARC5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAiYnJp
ZWY9MUBEXG4iCisgICAgIiAgICAgIE9ubHkgcHJpbnQgdGVzdCBmYWlsdXJlcy5cbiIKKyAgICAi
ICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAicHJpbnRfdGltZT0wQERcbiIKKyAgICAi
ICAgICAgRG9uJ3QgcHJpbnQgdGhlIGVsYXBzZWQgdGltZSBvZiBlYWNoIHRlc3QuXG4iCisgICAg
IiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCisgICAgIm91dHB1dD1AWShAR2pzb25AWXxAR3ht
bEBZKVtARzpAWURJUkVDVE9SWV9QQVRIQEciIEdURVNUX1BBVEhfU0VQXworICAgICJAWXxARzpA
WUZJTEVfUEFUSF1ARFxuIgorICAgICIgICAgICBHZW5lcmF0ZSBhIEpTT04gb3IgWE1MIHJlcG9y
dCBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IG9yIHdpdGggdGhlICIKKyAgICAiZ2l2ZW5cbiIKKyAg
ICAiICAgICAgZmlsZSBuYW1lLiBAWUZJTEVfUEFUSEBEIGRlZmF1bHRzIHRvIEBHdGVzdF9kZXRh
aWwueG1sQEQuXG4iCiAjIGlmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSIgIEBHLS0iIEdU
RVNUX0ZMQUdfUFJFRklYXyAic3RyZWFtX3Jlc3VsdF90bz1AWUhPU1RARzpAWVBPUlRARFxuIgot
IiAgICAgIFN0cmVhbSB0ZXN0IHJlc3VsdHMgdG8gdGhlIGdpdmVuIHNlcnZlci5cbiIKKyAgICAi
ICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8KKyAgICAic3RyZWFtX3Jlc3VsdF90bz1AWUhPU1RA
RzpAWVBPUlRARFxuIgorICAgICIgICAgICBTdHJlYW0gdGVzdCByZXN1bHRzIHRvIHRoZSBnaXZl
biBzZXJ2ZXIuXG4iCiAjIGVuZGlmICAvLyBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCi0iXG4i
Ci0iQXNzZXJ0aW9uIEJlaGF2aW9yOlxuIgorICAgICJcbiIKKyAgICAiQXNzZXJ0aW9uIEJlaGF2
aW9yOlxuIgogIyBpZiBHVEVTVF9IQVNfREVBVEhfVEVTVCAmJiAhR1RFU1RfT1NfV0lORE9XUwot
IiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfICJkZWF0aF90ZXN0X3N0eWxlPUBZKEBHZmFzdEBZ
fEBHdGhyZWFkc2FmZUBZKUBEXG4iCi0iICAgICAgU2V0IHRoZSBkZWZhdWx0IGRlYXRoIHRlc3Qg
c3R5bGUuXG4iCisgICAgIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCisgICAgImRlYXRoX3Rl
c3Rfc3R5bGU9QFkoQEdmYXN0QFl8QEd0aHJlYWRzYWZlQFkpQERcbiIKKyAgICAiICAgICAgU2V0
IHRoZSBkZWZhdWx0IGRlYXRoIHRlc3Qgc3R5bGUuXG4iCiAjIGVuZGlmICAvLyBHVEVTVF9IQVNf
REVBVEhfVEVTVCAmJiAhR1RFU1RfT1NfV0lORE9XUwotIiAgQEctLSIgR1RFU1RfRkxBR19QUkVG
SVhfICJicmVha19vbl9mYWlsdXJlQERcbiIKLSIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJl
cyBpbnRvIGRlYnVnZ2VyIGJyZWFrLXBvaW50cy5cbiIKLSIgIEBHLS0iIEdURVNUX0ZMQUdfUFJF
RklYXyAidGhyb3dfb25fZmFpbHVyZUBEXG4iCi0iICAgICAgVHVybiBhc3NlcnRpb24gZmFpbHVy
ZXMgaW50byBDKysgZXhjZXB0aW9ucyBmb3IgdXNlIGJ5IGFuIGV4dGVybmFsXG4iCi0iICAgICAg
dGVzdCBmcmFtZXdvcmsuXG4iCi0iICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImNhdGNoX2V4
Y2VwdGlvbnM9MEBEXG4iCi0iICAgICAgRG8gbm90IHJlcG9ydCBleGNlcHRpb25zIGFzIHRlc3Qg
ZmFpbHVyZXMuIEluc3RlYWQsIGFsbG93IHRoZW1cbiIKLSIgICAgICB0byBjcmFzaCB0aGUgcHJv
Z3JhbSBvciB0aHJvdyBhIHBvcC11cCAob24gV2luZG93cykuXG4iCi0iXG4iCi0iRXhjZXB0IGZv
ciBARy0tIiBHVEVTVF9GTEFHX1BSRUZJWF8gImxpc3RfdGVzdHNARCwgeW91IGNhbiBhbHRlcm5h
dGl2ZWx5IHNldCAiCisgICAgIiAgQEctLSIgR1RFU1RfRkxBR19QUkVGSVhfCisgICAgImJyZWFr
X29uX2ZhaWx1cmVARFxuIgorICAgICIgICAgICBUdXJuIGFzc2VydGlvbiBmYWlsdXJlcyBpbnRv
IGRlYnVnZ2VyIGJyZWFrLXBvaW50cy5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BSRUZJ
WF8KKyAgICAidGhyb3dfb25fZmFpbHVyZUBEXG4iCisgICAgIiAgICAgIFR1cm4gYXNzZXJ0aW9u
IGZhaWx1cmVzIGludG8gQysrIGV4Y2VwdGlvbnMgZm9yIHVzZSBieSBhbiBleHRlcm5hbFxuIgor
ICAgICIgICAgICB0ZXN0IGZyYW1ld29yay5cbiIKKyAgICAiICBARy0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8KKyAgICAiY2F0Y2hfZXhjZXB0aW9ucz0wQERcbiIKKyAgICAiICAgICAgRG8gbm90IHJl
cG9ydCBleGNlcHRpb25zIGFzIHRlc3QgZmFpbHVyZXMuIEluc3RlYWQsIGFsbG93IHRoZW1cbiIK
KyAgICAiICAgICAgdG8gY3Jhc2ggdGhlIHByb2dyYW0gb3IgdGhyb3cgYSBwb3AtdXAgKG9uIFdp
bmRvd3MpLlxuIgorICAgICJcbiIKKyAgICAiRXhjZXB0IGZvciBARy0tIiBHVEVTVF9GTEFHX1BS
RUZJWF8KKyAgICAibGlzdF90ZXN0c0BELCB5b3UgY2FuIGFsdGVybmF0aXZlbHkgc2V0ICIKICAg
ICAidGhlIGNvcnJlc3BvbmRpbmdcbiIKLSJlbnZpcm9ubWVudCB2YXJpYWJsZSBvZiBhIGZsYWcg
KGFsbCBsZXR0ZXJzIGluIHVwcGVyLWNhc2UpLiBGb3IgZXhhbXBsZSwgdG9cbiIKLSJkaXNhYmxl
IGNvbG9yZWQgdGV4dCBvdXRwdXQsIHlvdSBjYW4gZWl0aGVyIHNwZWNpZnkgQEctLSIgR1RFU1Rf
RkxBR19QUkVGSVhfCisgICAgImVudmlyb25tZW50IHZhcmlhYmxlIG9mIGEgZmxhZyAoYWxsIGxl
dHRlcnMgaW4gdXBwZXItY2FzZSkuIEZvciBleGFtcGxlLCAiCisgICAgInRvXG4iCisgICAgImRp
c2FibGUgY29sb3JlZCB0ZXh0IG91dHB1dCwgeW91IGNhbiBlaXRoZXIgc3BlY2lmeSAiCisgICAg
IkBHLS0iIEdURVNUX0ZMQUdfUFJFRklYXwogICAgICJjb2xvcj1ub0BEIG9yIHNldFxuIgotInRo
ZSBARyIgR1RFU1RfRkxBR19QUkVGSVhfVVBQRVJfICJDT0xPUkBEIGVudmlyb25tZW50IHZhcmlh
YmxlIHRvIEBHbm9ARC5cbiIKLSJcbiIKLSJGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHJl
YWQgdGhlICIgR1RFU1RfTkFNRV8gIiBkb2N1bWVudGF0aW9uIGF0XG4iCi0iQEciIEdURVNUX1BS
T0pFQ1RfVVJMXyAiQEQuIElmIHlvdSBmaW5kIGEgYnVnIGluICIgR1RFU1RfTkFNRV8gIlxuIgot
Iihub3Qgb25lIGluIHlvdXIgb3duIGNvZGUgb3IgdGVzdHMpLCBwbGVhc2UgcmVwb3J0IGl0IHRv
XG4iCi0iQEc8IiBHVEVTVF9ERVZfRU1BSUxfICI+QEQuXG4iOworICAgICJ0aGUgQEciIEdURVNU
X0ZMQUdfUFJFRklYX1VQUEVSXworICAgICJDT0xPUkBEIGVudmlyb25tZW50IHZhcmlhYmxlIHRv
IEBHbm9ARC5cbiIKKyAgICAiXG4iCisgICAgIkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ug
cmVhZCB0aGUgIiBHVEVTVF9OQU1FXworICAgICIgZG9jdW1lbnRhdGlvbiBhdFxuIgorICAgICJA
RyIgR1RFU1RfUFJPSkVDVF9VUkxfICJARC4gSWYgeW91IGZpbmQgYSBidWcgaW4gIiBHVEVTVF9O
QU1FXworICAgICJcbiIKKyAgICAiKG5vdCBvbmUgaW4geW91ciBvd24gY29kZSBvciB0ZXN0cyks
IHBsZWFzZSByZXBvcnQgaXQgdG9cbiIKKyAgICAiQEc8IiBHVEVTVF9ERVZfRU1BSUxfICI+QEQu
XG4iOwogCiBzdGF0aWMgYm9vbCBQYXJzZUdvb2dsZVRlc3RGbGFnKGNvbnN0IGNoYXIqIGNvbnN0
IGFyZykgewogICByZXR1cm4gUGFyc2VCb29sRmxhZyhhcmcsIGtBbHNvUnVuRGlzYWJsZWRUZXN0
c0ZsYWcsCiAgICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGFsc29fcnVuX2Rpc2Fi
bGVkX3Rlc3RzKSkgfHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrQnJlYWtPbkZhaWx1cmVG
bGFnLAotICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSkg
fHwKLSAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrQ2F0Y2hFeGNlcHRpb25zRmxhZywKLSAgICAg
ICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykpIHx8Ci0gICAgICBQ
YXJzZVN0cmluZ0ZsYWcoYXJnLCBrQ29sb3JGbGFnLCAmR1RFU1RfRkxBRyhjb2xvcikpIHx8Ci0g
ICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrRGVhdGhUZXN0U3R5bGVGbGFnLAotICAgICAgICAg
ICAgICAgICAgICAgICZHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rfc3R5bGUpKSB8fAotICAgICAgUGFy
c2VCb29sRmxhZyhhcmcsIGtEZWF0aFRlc3RVc2VGb3JrLAotICAgICAgICAgICAgICAgICAgICAm
R1RFU1RfRkxBRyhkZWF0aF90ZXN0X3VzZV9mb3JrKSkgfHwKLSAgICAgIFBhcnNlU3RyaW5nRmxh
ZyhhcmcsIGtGaWx0ZXJGbGFnLCAmR1RFU1RfRkxBRyhmaWx0ZXIpKSB8fAotICAgICAgUGFyc2VT
dHJpbmdGbGFnKGFyZywga0ludGVybmFsUnVuRGVhdGhUZXN0RmxhZywKLSAgICAgICAgICAgICAg
ICAgICAgICAmR1RFU1RfRkxBRyhpbnRlcm5hbF9ydW5fZGVhdGhfdGVzdCkpIHx8Ci0gICAgICBQ
YXJzZUJvb2xGbGFnKGFyZywga0xpc3RUZXN0c0ZsYWcsICZHVEVTVF9GTEFHKGxpc3RfdGVzdHMp
KSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywga091dHB1dEZsYWcsICZHVEVTVF9GTEFH
KG91dHB1dCkpIHx8Ci0gICAgICBQYXJzZUJvb2xGbGFnKGFyZywga1ByaW50VGltZUZsYWcsICZH
VEVTVF9GTEFHKHByaW50X3RpbWUpKSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtQcmlu
dFVURjhGbGFnLCAmR1RFU1RfRkxBRyhwcmludF91dGY4KSkgfHwKLSAgICAgIFBhcnNlSW50MzJG
bGFnKGFyZywga1JhbmRvbVNlZWRGbGFnLCAmR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpIHx8Ci0g
ICAgICBQYXJzZUludDMyRmxhZyhhcmcsIGtSZXBlYXRGbGFnLCAmR1RFU1RfRkxBRyhyZXBlYXQp
KSB8fAotICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtTaHVmZmxlRmxhZywgJkdURVNUX0ZMQUco
c2h1ZmZsZSkpIHx8Ci0gICAgICBQYXJzZUludDMyRmxhZyhhcmcsIGtTdGFja1RyYWNlRGVwdGhG
bGFnLAotICAgICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgp
KSB8fAotICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywga1N0cmVhbVJlc3VsdFRvRmxhZywKLSAg
ICAgICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKSkgfHwKLSAg
ICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrVGhyb3dPbkZhaWx1cmVGbGFnLAotICAgICAgICAgICAg
ICAgICAgICAmR1RFU1RfRkxBRyh0aHJvd19vbl9mYWlsdXJlKSk7CisgICAgICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga0JyZWFrT25GYWlsdXJlRmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAg
JkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSkpIHx8CisgICAgICAgICBQYXJzZUJvb2xGbGFn
KGFyZywga0NhdGNoRXhjZXB0aW9uc0ZsYWcsCisgICAgICAgICAgICAgICAgICAgICAgICZHVEVT
VF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpKSB8fAorICAgICAgICAgUGFyc2VTdHJpbmdGbGFnKGFy
Zywga0NvbG9yRmxhZywgJkdURVNUX0ZMQUcoY29sb3IpKSB8fAorICAgICAgICAgUGFyc2VTdHJp
bmdGbGFnKGFyZywga0RlYXRoVGVzdFN0eWxlRmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAmR1RFU1RfRkxBRyhkZWF0aF90ZXN0X3N0eWxlKSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZs
YWcoYXJnLCBrRGVhdGhUZXN0VXNlRm9yaywKKyAgICAgICAgICAgICAgICAgICAgICAgJkdURVNU
X0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpIHx8CisgICAgICAgICBQYXJzZUJvb2xGbGFnKGFy
Zywga0ZhaWxGYXN0LCAmR1RFU1RfRkxBRyhmYWlsX2Zhc3QpKSB8fAorICAgICAgICAgUGFyc2VT
dHJpbmdGbGFnKGFyZywga0ZpbHRlckZsYWcsICZHVEVTVF9GTEFHKGZpbHRlcikpIHx8CisgICAg
ICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrSW50ZXJuYWxSdW5EZWF0aFRlc3RGbGFnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICZHVEVTVF9GTEFHKGludGVybmFsX3J1bl9kZWF0aF90ZXN0
KSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrTGlzdFRlc3RzRmxhZywgJkdURVNU
X0ZMQUcobGlzdF90ZXN0cykpIHx8CisgICAgICAgICBQYXJzZVN0cmluZ0ZsYWcoYXJnLCBrT3V0
cHV0RmxhZywgJkdURVNUX0ZMQUcob3V0cHV0KSkgfHwKKyAgICAgICAgIFBhcnNlQm9vbEZsYWco
YXJnLCBrQnJpZWZGbGFnLCAmR1RFU1RfRkxBRyhicmllZikpIHx8CisgICAgICAgICBQYXJzZUJv
b2xGbGFnKGFyZywga1ByaW50VGltZUZsYWcsICZHVEVTVF9GTEFHKHByaW50X3RpbWUpKSB8fAor
ICAgICAgICAgUGFyc2VCb29sRmxhZyhhcmcsIGtQcmludFVURjhGbGFnLCAmR1RFU1RfRkxBRyhw
cmludF91dGY4KSkgfHwKKyAgICAgICAgIFBhcnNlSW50MzJGbGFnKGFyZywga1JhbmRvbVNlZWRG
bGFnLCAmR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkpIHx8CisgICAgICAgICBQYXJzZUludDMyRmxh
ZyhhcmcsIGtSZXBlYXRGbGFnLCAmR1RFU1RfRkxBRyhyZXBlYXQpKSB8fAorICAgICAgICAgUGFy
c2VCb29sRmxhZyhhcmcsIGtTaHVmZmxlRmxhZywgJkdURVNUX0ZMQUcoc2h1ZmZsZSkpIHx8Cisg
ICAgICAgICBQYXJzZUludDMyRmxhZyhhcmcsIGtTdGFja1RyYWNlRGVwdGhGbGFnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJkdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpKSB8fAorICAg
ICAgICAgUGFyc2VTdHJpbmdGbGFnKGFyZywga1N0cmVhbVJlc3VsdFRvRmxhZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAmR1RFU1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKSkgfHwKKyAgICAg
ICAgIFBhcnNlQm9vbEZsYWcoYXJnLCBrVGhyb3dPbkZhaWx1cmVGbGFnLCAmR1RFU1RfRkxBRyh0
aHJvd19vbl9mYWlsdXJlKSk7CiB9CiAKICNpZiBHVEVTVF9VU0VfT1dOX0ZMQUdGSUxFX0ZMQUdf
CkBAIC01ODk1LDcgKzY2MDMsNyBAQCB2b2lkIFBhcnNlR29vZ2xlVGVzdEZsYWdzT25seUltcGwo
aW50KiBhcmdjLCBDaGFyVHlwZSoqIGFyZ3YpIHsKIHZvaWQgUGFyc2VHb29nbGVUZXN0RmxhZ3NP
bmx5KGludCogYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgUGFyc2VHb29nbGVUZXN0RmxhZ3NPbmx5
SW1wbChhcmdjLCBhcmd2KTsKIAotICAvLyBGaXggdGhlIHZhbHVlIG9mICpfTlNHZXRBcmdjKCkg
b24gbWFjT1MsIGJ1dCBpZmYKKyAgLy8gRml4IHRoZSB2YWx1ZSBvZiAqX05TR2V0QXJnYygpIG9u
IG1hY09TLCBidXQgaWYgYW5kIG9ubHkgaWYKICAgLy8gKl9OU0dldEFyZ3YoKSA9PSBhcmd2CiAg
IC8vIE9ubHkgYXBwbGljYWJsZSB0byBjaGFyKiogdmVyc2lvbiBvZiBhcmd2CiAjaWYgR1RFU1Rf
T1NfTUFDCkBAIC01OTYzLDIzICs2NjcxLDUwIEBAIHZvaWQgSW5pdEdvb2dsZVRlc3QoaW50KiBh
cmdjLCB3Y2hhcl90KiogYXJndikgewogI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9J
TklUX0dPT0dMRV9URVNUX0ZVTkNUSU9OXykKIH0KIAorLy8gVGhpcyBvdmVybG9hZGVkIHZlcnNp
b24gY2FuIGJlIHVzZWQgb24gQXJkdWluby9lbWJlZGRlZCBwbGF0Zm9ybXMgd2hlcmUKKy8vIHRo
ZXJlIGlzIG5vIGFyZ2MvYXJndi4KK3ZvaWQgSW5pdEdvb2dsZVRlc3QoKSB7CisgIC8vIFNpbmNl
IEFyZHVpbm8gZG9lc24ndCBoYXZlIGEgY29tbWFuZCBsaW5lLCBmYWtlIG91dCB0aGUgYXJnYy9h
cmd2IGFyZ3VtZW50cworICBpbnQgYXJnYyA9IDE7CisgIGNvbnN0IGF1dG8gYXJnMCA9ICJkdW1t
eSI7CisgIGNoYXIqIGFyZ3YwID0gY29uc3RfY2FzdDxjaGFyKj4oYXJnMCk7CisgIGNoYXIqKiBh
cmd2ID0gJmFyZ3YwOworCisjaWYgZGVmaW5lZChHVEVTVF9DVVNUT01fSU5JVF9HT09HTEVfVEVT
VF9GVU5DVElPTl8pCisgIEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZVTkNUSU9OXygm
YXJnYywgYXJndik7CisjZWxzZSAgLy8gZGVmaW5lZChHVEVTVF9DVVNUT01fSU5JVF9HT09HTEVf
VEVTVF9GVU5DVElPTl8pCisgIGludGVybmFsOjpJbml0R29vZ2xlVGVzdEltcGwoJmFyZ2MsIGFy
Z3YpOworI2VuZGlmICAvLyBkZWZpbmVkKEdURVNUX0NVU1RPTV9JTklUX0dPT0dMRV9URVNUX0ZV
TkNUSU9OXykKK30KKwogc3RkOjpzdHJpbmcgVGVtcERpcigpIHsKICNpZiBkZWZpbmVkKEdURVNU
X0NVU1RPTV9URU1QRElSX0ZVTkNUSU9OXykKICAgcmV0dXJuIEdURVNUX0NVU1RPTV9URU1QRElS
X0ZVTkNUSU9OXygpOwotI2VuZGlmCi0KLSNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQorI2Vs
aWYgR1RFU1RfT1NfV0lORE9XU19NT0JJTEUKICAgcmV0dXJuICJcXHRlbXBcXCI7CiAjZWxpZiBH
VEVTVF9PU19XSU5ET1dTCiAgIGNvbnN0IGNoYXIqIHRlbXBfZGlyID0gaW50ZXJuYWw6OnBvc2l4
OjpHZXRFbnYoIlRFTVAiKTsKLSAgaWYgKHRlbXBfZGlyID09IE5VTEwgfHwgdGVtcF9kaXJbMF0g
PT0gJ1wwJykKKyAgaWYgKHRlbXBfZGlyID09IG51bGxwdHIgfHwgdGVtcF9kaXJbMF0gPT0gJ1ww
JykgewogICAgIHJldHVybiAiXFx0ZW1wXFwiOwotICBlbHNlIGlmICh0ZW1wX2RpcltzdHJsZW4o
dGVtcF9kaXIpIC0gMV0gPT0gJ1xcJykKKyAgfSBlbHNlIGlmICh0ZW1wX2RpcltzdHJsZW4odGVt
cF9kaXIpIC0gMV0gPT0gJ1xcJykgewogICAgIHJldHVybiB0ZW1wX2RpcjsKLSAgZWxzZQorICB9
IGVsc2UgewogICAgIHJldHVybiBzdGQ6OnN0cmluZyh0ZW1wX2RpcikgKyAiXFwiOworICB9CiAj
ZWxpZiBHVEVTVF9PU19MSU5VWF9BTkRST0lECi0gIHJldHVybiAiL3NkY2FyZC8iOworICBjb25z
dCBjaGFyKiB0ZW1wX2RpciA9IGludGVybmFsOjpwb3NpeDo6R2V0RW52KCJURVNUX1RNUERJUiIp
OworICBpZiAodGVtcF9kaXIgPT0gbnVsbHB0ciB8fCB0ZW1wX2RpclswXSA9PSAnXDAnKSB7Cisg
ICAgcmV0dXJuICIvZGF0YS9sb2NhbC90bXAvIjsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gdGVt
cF9kaXI7CisgIH0KKyNlbGlmIEdURVNUX09TX0xJTlVYCisgIGNvbnN0IGNoYXIqIHRlbXBfZGly
ID0gaW50ZXJuYWw6OnBvc2l4OjpHZXRFbnYoIlRFU1RfVE1QRElSIik7CisgIGlmICh0ZW1wX2Rp
ciA9PSBudWxscHRyIHx8IHRlbXBfZGlyWzBdID09ICdcMCcpIHsKKyAgICByZXR1cm4gIi90bXAv
IjsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gdGVtcF9kaXI7CisgIH0KICNlbHNlCiAgIHJldHVy
biAiL3RtcC8iOwogI2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTX01PQklMRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qvc3JjL2d0ZXN0X21haW4uY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFpbi5jYwppbmRleCAyMTEzZjYyMWU2NTQzMGU1NTcw
ZGZiMjAxNTg4NGEyZDRmNGNmMGIzLi40NmIyN2MzZDdkNTY1NDY2ODkwNmJmZjVmNWJhMWEyNjY4
ODFmNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFp
bi5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9zcmMvZ3Rlc3RfbWFpbi5jYwpAQCAt
MjcsMTEgKzI3LDI4IEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpbmNs
dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KICNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IgogCisjaWYgR1RFU1RfT1NfRVNQODI2NiB8fCBHVEVTVF9PU19FU1AzMgorI2lmIEdURVNUX09T
X0VTUDgyNjYKK2V4dGVybiAiQyIgeworI2VuZGlmCit2b2lkIHNldHVwKCkgeworICB0ZXN0aW5n
OjpJbml0R29vZ2xlVGVzdCgpOworfQorCit2b2lkIGxvb3AoKSB7IFJVTl9BTExfVEVTVFMoKTsg
fQorCisjaWYgR1RFU1RfT1NfRVNQODI2NgorfQorI2VuZGlmCisKKyNlbHNlCisKIEdURVNUX0FQ
SV8gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIHByaW50ZigiUnVubmluZyBt
YWluKCkgZnJvbSAlc1xuIiwgX19GSUxFX18pOwogICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgm
YXJnYywgYXJndik7CiAgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7CiB9CisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvQlVJTEQuYmF6ZWwgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L0JVSUxELmJhemVsCmluZGV4IGE5MzBkNjVlMDQ0MDE0NDQx
NmFlODhhYjI3NThmZDkzNDBhMDkzN2IuLmU3OWI4NzVjYzdkMWYyY2I1NzhmNzliMDJhZWRkYmY2
YzNkYWI3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvQlVJTEQu
YmF6ZWwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9CVUlMRC5iYXplbApAQCAt
MjgsMjggKzI4LDE2IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogIwotIyBBdXRo
b3I6IG1pc3RlcmdAZ29vZ2xlLmNvbSAoR2VubmFkaXkgQ2l2aWwpCi0jCiAjIEJhemVsIEJVSUxE
IGZvciBUaGUgR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xlIFRlc3QpCiAKLWxp
Y2Vuc2VzKFsibm90aWNlIl0pCitsb2FkKCJAcnVsZXNfY2MvL2NjOmRlZnMuYnpsIiwgImNjX2Jp
bmFyeSIsICJjY190ZXN0IikKK2xvYWQoIkBydWxlc19weXRob24vL3B5dGhvbjpkZWZzLmJ6bCIs
ICJweV9saWJyYXJ5IiwgInB5X3Rlc3QiKQogCi1jb25maWdfc2V0dGluZygKLSAgICBuYW1lID0g
IndpbmRvd3MiLAotICAgIHZhbHVlcyA9IHsiY3B1IjogIng2NF93aW5kb3dzIn0sCi0pCi0KLWNv
bmZpZ19zZXR0aW5nKAotICAgIG5hbWUgPSAid2luZG93c19tc3ZjIiwKLSAgICB2YWx1ZXMgPSB7
ImNwdSI6ICJ4NjRfd2luZG93c19tc3ZjIn0sCi0pCitsaWNlbnNlcyhbIm5vdGljZSJdKQogCi1j
b25maWdfc2V0dGluZygKLSAgICBuYW1lID0gImhhc19hYnNsIiwKLSAgICB2YWx1ZXMgPSB7ImRl
ZmluZSI6ICJhYnNsPTEifSwKLSkKK3BhY2thZ2UoZGVmYXVsdF92aXNpYmlsaXR5ID0gWyIvLzpf
X3N1YnBhY2thZ2VzX18iXSkKIAotI29uIHdpbmRvd3MgZXhjbHVkZSBndGVzdC10dXBsZS5oIGFu
ZCBnb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MKKyNvbiB3aW5kb3dzIGV4Y2x1ZGUgZ3Rlc3QtdHVw
bGUuaAogY2NfdGVzdCgKICAgICBuYW1lID0gImd0ZXN0X2FsbF90ZXN0IiwKICAgICBzaXplID0g
InNtYWxsIiwKQEAgLTYyLDQxICs1MCw0MyBAQCBjY190ZXN0KAogICAgICAgICBdLAogICAgICAg
ICBleGNsdWRlID0gWwogICAgICAgICAgICAgImd0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjIiwK
LSAgICAgICAgICAgICJnb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MiLAogICAgICAgICAgICAgImdv
b2dsZXRlc3Qvc3JjL2d0ZXN0LWFsbC5jYyIsCiAgICAgICAgICAgICAiZ3Rlc3RfYWxsX3Rlc3Qu
Y2MiLAogICAgICAgICAgICAgImd0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYyIsCiAgICAgICAg
ICAgICAiZ3Rlc3QtbGlzdGVuZXJfdGVzdC5jYyIsCiAgICAgICAgICAgICAiZ3Rlc3QtdW5pdHRl
c3QtYXBpX3Rlc3QuY2MiLAogICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0
LmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QyLXRlc3QuY2MiLAogICAg
ICAgICAgICAgImdvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0Xy5jYyIsCiAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1jb2xvci10ZXN0Xy5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVz
dC1lbnYtdmFyLXRlc3RfLmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0LWZhaWxmYXN0LXVu
aXR0ZXN0Xy5jYyIsCiAgICAgICAgICAgICAiZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3RfLmNj
IiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8u
Y2MiLAogICAgICAgICAgICAgImdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdF8u
Y2MiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MiLAotICAgICAg
ICAgICAgICJnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYyIsCi0gICAgICAgICAgICAgImdvb2ds
ZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0
LXNodWZmbGUtdGVzdF8uY2MiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0LXVuaW5pdGlhbGl6
ZWQtdGVzdF8uY2MiLAotICAgICAgICAgICAgICJnb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVz
dC5jYyIsCi0gICAgICAgICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0IiwKLSAgICAg
ICAgICAgICAiZ29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3RfLmNjIiwKLSAgICAgICAg
ICAgICAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MiLAotICAg
ICAgICAgICAgICJnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0Xy5jYyIs
Ci0KKyAgICAgICAgICAgICJnb29nbGV0ZXN0LWxpc3RlbmVyLXRlc3QuY2MiLAorICAgICAgICAg
ICAgImdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0
LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0ZXN0LXNodWZm
bGUtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3VpdGUtdGVz
dF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0Xy5jYyIs
CisgICAgICAgICAgICAiZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MiLAorICAgICAg
ICAgICAgImdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0IiwKKyAgICAgICAgICAgICJnb29nbGV0
ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MiLAorICAgICAgICAgICAgImdvb2dsZXRlc3Qt
cGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjIiwKKyAgICAgICAgICAgICJnb29nbGV0
ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0Xy5jYyIsCiAgICAgICAgIF0sCiAgICAg
KSArIHNlbGVjdCh7CiAgICAgICAgICIvLzp3aW5kb3dzIjogW10sCi0gICAgICAgICIvLzp3aW5k
b3dzX21zdmMiOiBbXSwKLSAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWwotICAgICAg
ICAgICAgImdvb2dsZXRlc3QtdHVwbGUtdGVzdC5jYyIsCi0gICAgICAgIF0sCisgICAgICAgICIv
L2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFtdLAogICAgIH0pLAogICAgIGNvcHRzID0gc2VsZWN0KHsK
ICAgICAgICAgIi8vOndpbmRvd3MiOiBbIi1ER1RFU1RfVVNFX09XTl9UUjFfVFVQTEU9MCJdLAot
ICAgICAgICAiLy86d2luZG93c19tc3ZjIjogWyItREdURVNUX1VTRV9PV05fVFIxX1RVUExFPTAi
XSwKICAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWyItREdURVNUX1VTRV9PV05fVFIx
X1RVUExFPTEiXSwKKyAgICB9KSArIHNlbGVjdCh7CisgICAgICAgICMgRW5zdXJlIE1TVkMgdHJl
YXRzIHNvdXJjZSBmaWxlcyBhcyBVVEYtOCBlbmNvZGVkLgorICAgICAgICAiLy86bXN2Y19jb21w
aWxlciI6IFsiLXV0Zi04Il0sCisgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6IFtdLAog
ICAgIH0pLAogICAgIGluY2x1ZGVzID0gWwogICAgICAgICAiZ29vZ2xldGVzdCIsCkBAIC0xMDYs
MTUgKzk2LDExIEBAIGNjX3Rlc3QoCiAgICAgXSwKICAgICBsaW5rb3B0cyA9IHNlbGVjdCh7CiAg
ICAgICAgICIvLzp3aW5kb3dzIjogW10sCi0gICAgICAgICIvLzp3aW5kb3dzX21zdmMiOiBbXSwK
LSAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWwotICAgICAgICAgICAgIi1wdGhyZWFk
IiwKLSAgICAgICAgXSwKKyAgICAgICAgIi8vY29uZGl0aW9uczpkZWZhdWx0IjogWyItcHRocmVh
ZCJdLAogICAgIH0pLAogICAgIGRlcHMgPSBbIi8vOmd0ZXN0X21haW4iXSwKICkKIAotCiAjIFRl
c3RzIGRlYXRoIHRlc3RzLgogY2NfdGVzdCgKICAgICBuYW1lID0gImdvb2dsZXRlc3QtZGVhdGgt
dGVzdC10ZXN0IiwKQEAgLTE3NSw2ICsxNjEsNyBAQCBweV9saWJyYXJ5KAogICAgIG5hbWUgPSAi
Z3Rlc3RfdGVzdF91dGlscyIsCiAgICAgdGVzdG9ubHkgPSAxLAogICAgIHNyY3MgPSBbImd0ZXN0
X3Rlc3RfdXRpbHMucHkiXSwKKyAgICBpbXBvcnRzID0gWyIuIl0sCiApCiAKIGNjX2JpbmFyeSgK
QEAgLTE5OSwxMyArMTg2LDEyIEBAIGNjX2JpbmFyeSgKICAgICBkZXBzID0gWyIvLzpndGVzdCJd
LAogKQogCi0KIHB5X3Rlc3QoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LW91dHB1dC10ZXN0IiwK
ICAgICBzaXplID0gInNtYWxsIiwKICAgICBzcmNzID0gWyJnb29nbGV0ZXN0LW91dHB1dC10ZXN0
LnB5Il0sCiAgICAgYXJncyA9IHNlbGVjdCh7Ci0gICAgICAgICI6aGFzX2Fic2wiOiBbXSwKKyAg
ICAgICAgIi8vOmhhc19hYnNsIjogW10sCiAgICAgICAgICIvL2NvbmRpdGlvbnM6ZGVmYXVsdCI6
IFsiLS1ub19zdGFja3RyYWNlX3N1cHBvcnQiXSwKICAgICB9KSwKICAgICBkYXRhID0gWwpAQCAt
MjQ1LDYgKzIzMSwyMSBAQCBweV90ZXN0KAogICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxz
Il0sCiApCiAKK2NjX2JpbmFyeSgKKyAgICBuYW1lID0gImdvb2dsZXRlc3QtZmFpbGZhc3QtdW5p
dHRlc3RfIiwKKyAgICB0ZXN0b25seSA9IDEsCisgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1mYWls
ZmFzdC11bml0dGVzdF8uY2MiXSwKKyAgICBkZXBzID0gWyIvLzpndGVzdCJdLAorKQorCitweV90
ZXN0KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdCIsCisgICAgc2l6
ZSA9ICJtZWRpdW0iLAorICAgIHNyY3MgPSBbImdvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3Qu
cHkiXSwKKyAgICBkYXRhID0gWyI6Z29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8iXSwKKyAg
ICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQorCiBjY19iaW5hcnkoCiAgICAgbmFt
ZSA9ICJnb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdF8iLAogICAgIHRlc3Rvbmx5ID0gMSwKQEAg
LTI2MCw2ICsyNjEsMjAgQEAgcHlfdGVzdCgKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGls
cyJdLAogKQogCitjY19iaW5hcnkoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWdsb2JhbC1lbnZp
cm9ubWVudC11bml0dGVzdF8iLAorICAgIHRlc3Rvbmx5ID0gMSwKKyAgICBzcmNzID0gWyJnb29n
bGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8uY2MiXSwKKyAgICBkZXBzID0gWyIv
LzpndGVzdCJdLAorKQorCitweV90ZXN0KAorICAgIG5hbWUgPSAiZ29vZ2xldGVzdC1nbG9iYWwt
ZW52aXJvbm1lbnQtdW5pdHRlc3QiLAorICAgIHNpemUgPSAibWVkaXVtIiwKKyAgICBzcmNzID0g
WyJnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdC5weSJdLAorICAgIGRhdGEg
PSBbIjpnb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9ubWVudC11bml0dGVzdF8iXSwKKyAgICBkZXBz
ID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAorKQogCiBjY19iaW5hcnkoCiAgICAgbmFtZSA9ICJn
b29nbGV0ZXN0LWJyZWFrLW9uLWZhaWx1cmUtdW5pdHRlc3RfIiwKQEAgLTI2OCw4ICsyODMsNiBA
QCBjY19iaW5hcnkoCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3QiXSwKICkKIAotCi0KIHB5X3Rlc3Qo
CiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWJyZWFrLW9uLWZhaWx1cmUtdW5pdHRlc3QiLAogICAg
IHNpemUgPSAic21hbGwiLApAQCAtMjc4LDcgKzI5MSw2IEBAIHB5X3Rlc3QoCiAgICAgZGVwcyA9
IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkKIAotCiBjY190ZXN0KAogICAgIG5hbWUgPSAiZ3Rl
c3RfYXNzZXJ0X2J5X2V4Y2VwdGlvbl90ZXN0IiwKICAgICBzaXplID0gInNtYWxsIiwKQEAgLTI4
Niw4ICsyOTgsNiBAQCBjY190ZXN0KAogICAgIGRlcHMgPSBbIi8vOmd0ZXN0Il0sCiApCiAKLQot
CiBjY19iaW5hcnkoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVz
dF8iLAogICAgIHRlc3Rvbmx5ID0gMSwKQEAgLTMwMyw3ICszMTMsNiBAQCBweV90ZXN0KAogICAg
IGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCiApCiAKLQogY2NfYmluYXJ5KAogICAgIG5h
bWUgPSAiZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0XyIsCiAgICAgdGVzdG9ubHkgPSAx
LApAQCAtMzExLDYgKzMyMCwzOCBAQCBjY19iaW5hcnkoCiAgICAgZGVwcyA9IFsiLy86Z3Rlc3Qi
XSwKICkKIAorY2NfdGVzdCgKKyAgICBuYW1lID0gImd0ZXN0X3NraXBfdGVzdCIsCisgICAgc2l6
ZSA9ICJzbWFsbCIsCisgICAgc3JjcyA9IFsiZ3Rlc3Rfc2tpcF90ZXN0LmNjIl0sCisgICAgZGVw
cyA9IFsiLy86Z3Rlc3RfbWFpbiJdLAorKQorCitjY190ZXN0KAorICAgIG5hbWUgPSAiZ3Rlc3Rf
c2tpcF9pbl9lbnZpcm9ubWVudF9zZXR1cF90ZXN0IiwKKyAgICBzaXplID0gInNtYWxsIiwKKyAg
ICBzcmNzID0gWyJndGVzdF9za2lwX2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QuY2MiXSwKKyAg
ICBkZXBzID0gWyIvLzpndGVzdF9tYWluIl0sCispCisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJn
dGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0IiwKKyAgICBzaXplID0gInNtYWxsIiwKKyAgICBz
cmNzID0gWyJndGVzdF9za2lwX2NoZWNrX291dHB1dF90ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsi
Omd0ZXN0X3NraXBfdGVzdCJdLAorICAgIGRlcHMgPSBbIjpndGVzdF90ZXN0X3V0aWxzIl0sCisp
CisKK3B5X3Rlc3QoCisgICAgbmFtZSA9ICJndGVzdF9za2lwX2Vudmlyb25tZW50X2NoZWNrX291
dHB1dF90ZXN0IiwKKyAgICBzaXplID0gInNtYWxsIiwKKyAgICBzcmNzID0gWyJndGVzdF9za2lw
X2Vudmlyb25tZW50X2NoZWNrX291dHB1dF90ZXN0LnB5Il0sCisgICAgZGF0YSA9IFsKKyAgICAg
ICAgIjpndGVzdF9za2lwX2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QiLAorICAgIF0sCisgICAg
ZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKKykKKwogcHlfdGVzdCgKICAgICBuYW1lID0g
Imdvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdCIsCiAgICAgc2l6ZSA9ICJzbWFsbCIsCkBA
IC0zODEsNyArNDIyLDcgQEAgcHlfdGVzdCgKICAgICAgICAgImd0ZXN0X3htbF90ZXN0X3V0aWxz
LnB5IiwKICAgICBdLAogICAgIGFyZ3MgPSBzZWxlY3QoewotICAgICAgICAiOmhhc19hYnNsIjog
W10sCisgICAgICAgICIvLzpoYXNfYWJzbCI6IFtdLAogICAgICAgICAiLy9jb25kaXRpb25zOmRl
ZmF1bHQiOiBbIi0tbm9fc3RhY2t0cmFjZV9zdXBwb3J0Il0sCiAgICAgfSksCiAgICAgZGF0YSA9
IFsKQEAgLTQyMSw2ICs0NjIsMjEgQEAgcHlfdGVzdCgKICAgICBkZXBzID0gWyI6Z3Rlc3RfdGVz
dF91dGlscyJdLAogKQogCitjY19iaW5hcnkoCisgICAgbmFtZSA9ICJnb29nbGV0ZXN0LXNldHVw
dGVzdHN1aXRlLXRlc3RfIiwKKyAgICB0ZXN0b25seSA9IDEsCisgICAgc3JjcyA9IFsiZ29vZ2xl
dGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYyJdLAorICAgIGRlcHMgPSBbIi8vOmd0ZXN0X21h
aW4iXSwKKykKKworcHlfdGVzdCgKKyAgICBuYW1lID0gImdvb2dsZXRlc3Qtc2V0dXB0ZXN0c3Vp
dGUtdGVzdCIsCisgICAgc2l6ZSA9ICJtZWRpdW0iLAorICAgIHNyY3MgPSBbImdvb2dsZXRlc3Qt
c2V0dXB0ZXN0c3VpdGUtdGVzdC5weSJdLAorICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LXNldHVw
dGVzdHN1aXRlLXRlc3RfIl0sCisgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKKykK
KwogY2NfYmluYXJ5KAogICAgIG5hbWUgPSAiZ29vZ2xldGVzdC11bmluaXRpYWxpemVkLXRlc3Rf
IiwKICAgICB0ZXN0b25seSA9IDEsCkBAIC00NTIsNyArNTA4LDYgQEAgcHlfdGVzdCgKICAgICBk
ZXBzID0gWyI6Z3Rlc3RfdGVzdF91dGlscyJdLAogKQogCi0KIHB5X3Rlc3QoCiAgICAgbmFtZSA9
ICJnb29nbGV0ZXN0LWpzb24tb3V0ZmlsZXMtdGVzdCIsCiAgICAgc2l6ZSA9ICJzbWFsbCIsCkBA
IC00NzQsMTggKzUyOSwxOSBAQCBweV90ZXN0KAogICAgICAgICAiZ29vZ2xldGVzdC1qc29uLW91
dHB1dC11bml0dGVzdC5weSIsCiAgICAgICAgICJndGVzdF9qc29uX3Rlc3RfdXRpbHMucHkiLAog
ICAgIF0sCisgICAgYXJncyA9IHNlbGVjdCh7CisgICAgICAgICIvLzpoYXNfYWJzbCI6IFtdLAor
ICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi0tbm9fc3RhY2t0cmFjZV9zdXBwb3J0
Il0sCisgICAgfSksCiAgICAgZGF0YSA9IFsKICAgICAgICAgIyBXZSBpbnZva2UgZ3Rlc3Rfbm9f
dGVzdF91bml0dGVzdCB0byB2ZXJpZnkgdGhlIEpTT04gb3V0cHV0CiAgICAgICAgICMgd2hlbiB0
aGUgdGVzdCBwcm9ncmFtIGNvbnRhaW5zIG5vIHRlc3QgZGVmaW5pdGlvbi4KICAgICAgICAgIjpn
dGVzdF9ub190ZXN0X3VuaXR0ZXN0IiwKICAgICAgICAgIjpndGVzdF94bWxfb3V0cHV0X3VuaXR0
ZXN0XyIsCiAgICAgXSwKLSAgICBhcmdzID0gc2VsZWN0KHsKLSAgICAgICAgIjpoYXNfYWJzbCI6
IFtdLAotICAgICAgICAiLy9jb25kaXRpb25zOmRlZmF1bHQiOiBbIi0tbm9fc3RhY2t0cmFjZV9z
dXBwb3J0Il0sCi0gICAgfSksCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRpbHMiXSwKICkK
KwogIyBWZXJpZmllcyBpbnRlcmFjdGlvbiBvZiBkZWF0aCB0ZXN0cyBhbmQgZXhjZXB0aW9ucy4K
IGNjX3Rlc3QoCiAgICAgbmFtZSA9ICJnb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfY2F0Y2hfdGVz
dCIsCkBAIC01MTUsNiArNTcxLDEwIEBAIHB5X3Rlc3QoCiAgICAgc2l6ZSA9ICJzbWFsbCIsCiAg
ICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdC5weSJd
LAogICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0
XyJdLAorICAgIHRhZ3MgPSBbCisgICAgICAgICJub190ZXN0X21zdmMyMDE1IiwKKyAgICAgICAg
Im5vX3Rlc3RfbXN2YzIwMTciLAorICAgIF0sCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rlc3RfdXRp
bHMiXSwKICkKIApAQCAtNTIzLDUgKzU4Myw5IEBAIHB5X3Rlc3QoCiAgICAgc2l6ZSA9ICJzbWFs
bCIsCiAgICAgc3JjcyA9IFsiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVz
dC5weSJdLAogICAgIGRhdGEgPSBbIjpnb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1l
Mi10ZXN0XyJdLAorICAgIHRhZ3MgPSBbCisgICAgICAgICJub190ZXN0X21zdmMyMDE1IiwKKyAg
ICAgICAgIm5vX3Rlc3RfbXN2YzIwMTciLAorICAgIF0sCiAgICAgZGVwcyA9IFsiOmd0ZXN0X3Rl
c3RfdXRpbHMiXSwKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0LnB5CmluZGV4IDVkNDlj
MTAyM2M1MGVmMTY4MzNlNmI4ZTJhOGU2MjAyNDg0MzJhYzMuLjk0YTViMzNmMjMwNTA5MjU5Mzc1
NWMzYWI4NmFhNWY2YzMyOWUyYTAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3QucHkKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWNhdGNoLWV4Y2VwdGlvbnMtdGVzdC5weQpA
QCAtODksOSArODksOSBAQCBpZiBTVVBQT1JUU19TRUhfRVhDRVBUSU9OUzoKICAgICAgIHNlbGYu
YXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gJwogICAgICAgICAg
ICAgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGRlc3RydWN0b3InCiAgICAgICAgICAg
ICAgICAgICAgaW4gdGVzdF9vdXRwdXQpCi0gICAgICBzZWxmLmFzc2VydF8oJ1NFSCBleGNlcHRp
b24gd2l0aCBjb2RlIDB4MmEgdGhyb3duIGluIFNldFVwVGVzdENhc2UoKScKKyAgICAgIHNlbGYu
YXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gU2V0VXBUZXN0
U3VpdGUoKScKICAgICAgICAgICAgICAgICAgICBpbiB0ZXN0X291dHB1dCkKLSAgICAgIHNlbGYu
YXNzZXJ0XygnU0VIIGV4Y2VwdGlvbiB3aXRoIGNvZGUgMHgyYSB0aHJvd24gaW4gVGVhckRvd25U
ZXN0Q2FzZSgpJworICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29kZSAw
eDJhIHRocm93biBpbiBUZWFyRG93blRlc3RTdWl0ZSgpJwogICAgICAgICAgICAgICAgICAgIGlu
IHRlc3Rfb3V0cHV0KQogICAgICAgc2VsZi5hc3NlcnRfKCdTRUggZXhjZXB0aW9uIHdpdGggY29k
ZSAweDJhIHRocm93biBpbiBTZXRVcCgpJwogICAgICAgICAgICAgICAgICAgIGluIHRlc3Rfb3V0
cHV0KQpAQCAtMTE3LDEwICsxMTcsMTEgQEAgY2xhc3MgQ2F0Y2hDeHhFeGNlcHRpb25zVGVzdChn
dGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgIiIiCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4
RXhjZXB0aW9uc0luRml4dHVyZUNvbnN0cnVjdG9yKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0Xygn
QysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICcKLSAgICAgICAgICAgICAgICAgJyJTdGFu
ZGFyZCBDKysgZXhjZXB0aW9uIiB0aHJvd24gJwotICAgICAgICAgICAgICAgICAnaW4gdGhlIHRl
c3QgZml4dHVyZVwncyBjb25zdHJ1Y3RvcicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0aW9uIHdp
dGggZGVzY3JpcHRpb24gJworICAgICAgICAnIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iIHRocm93
biAnCisgICAgICAgICdpbiB0aGUgdGVzdCBmaXh0dXJlXCdzIGNvbnN0cnVjdG9yJyBpbiBFWF9C
SU5BUllfT1VUUFVULAorICAgICAgICBFWF9CSU5BUllfT1VUUFVUKQogICAgIHNlbGYuYXNzZXJ0
XygndW5leHBlY3RlZCcgbm90IGluIEVYX0JJTkFSWV9PVVRQVVQsCiAgICAgICAgICAgICAgICAg
ICdUaGlzIGZhaWx1cmUgYmVsb25ncyBpbiB0aGlzIHRlc3Qgb25seSBpZiAnCiAgICAgICAgICAg
ICAgICAgICciQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QiIChubyBxdW90ZXMpICcKQEAg
LTEzMCw4OCArMTMxLDkwIEBAIGNsYXNzIENhdGNoQ3h4RXhjZXB0aW9uc1Rlc3QoZ3Rlc3RfdGVz
dF91dGlscy5UZXN0Q2FzZSk6CiAgICAgICBFWF9CSU5BUllfT1VUUFVUKToKIAogICAgIGRlZiB0
ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJbkZpeHR1cmVEZXN0cnVjdG9yKHNlbGYpOgotICAgICAg
c2VsZi5hc3NlcnRfKCdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gJwotICAgICAgICAg
ICAgICAgICAgICciU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIgdGhyb3duICcKLSAgICAgICAgICAg
ICAgICAgICAnaW4gdGhlIHRlc3QgZml4dHVyZVwncyBkZXN0cnVjdG9yJwotICAgICAgICAgICAg
ICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2Vw
dGlvbkluRGVzdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAgICAg
ICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgICAgaW4gRVhfQklO
QVJZX09VVFBVVCkKKyAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgICAnQysrIGV4Y2Vw
dGlvbiB3aXRoIGRlc2NyaXB0aW9uICcKKyAgICAgICAgICAnIlN0YW5kYXJkIEMrKyBleGNlcHRp
b24iIHRocm93biAnCisgICAgICAgICAgJ2luIHRoZSB0ZXN0IGZpeHR1cmVcJ3MgZGVzdHJ1Y3Rv
cicgaW4gRVhfQklOQVJZX09VVFBVVCwKKyAgICAgICAgICBFWF9CSU5BUllfT1VUUFVUKQorICAg
ICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAgICdDeHhFeGNlcHRpb25JbkRlc3RydWN0b3JU
ZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVk
LicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKIAogICBkZWYgdGVzdENh
dGNoZXNDeHhFeGNlcHRpb25zSW5TZXRVcFRlc3RDYXNlKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0
XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9u
IicKLSAgICAgICAgICAgICAgICAgJyB0aHJvd24gaW4gU2V0VXBUZXN0Q2FzZSgpJwotICAgICAg
ICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhj
ZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdENhc2UoKSAnCi0gICAgICAgICAg
ICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5B
UllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNl
VGVzdCBjb25zdHJ1Y3RvciAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQu
JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQotICAgIHNlbGYuYXNzZXJ0
XygnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCBkZXN0cnVjdG9yICcKLSAgICAgICAg
ICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJ
TkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENh
c2VUZXN0OjpTZXRVcCgpICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4n
Ci0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRf
KCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0OjpUZWFyRG93bigpICcKLSAgICAgICAg
ICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJ
TkFSWV9PVVRQVVQpCi0gICAgc2VsZi5hc3NlcnRfKCdDeHhFeGNlcHRpb25JblNldFVwVGVzdENh
c2VUZXN0IHRlc3QgYm9keSAnCi0gICAgICAgICAgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQu
JwotICAgICAgICAgICAgICAgICBpbiBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0
VHJ1ZSgKKyAgICAgICAgJ0MrKyBleGNlcHRpb24gd2l0aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQg
QysrIGV4Y2VwdGlvbiInCisgICAgICAgICcgdGhyb3duIGluIFNldFVwVGVzdFN1aXRlKCknIGlu
IEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVl
KAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRlYXJEb3duVGVzdFN1
aXRlKCkgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBV
VCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhF
eGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCBjb25zdHJ1Y3RvciAnCisgICAgICAgICdjYWxs
ZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQor
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3Vp
dGVUZXN0IGRlc3RydWN0b3IgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4gRVhf
QklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisg
ICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6U2V0VXAoKSAnCisgICAg
ICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllf
T1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluU2V0
VXBUZXN0U3VpdGVUZXN0OjpUZWFyRG93bigpICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3Rl
ZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3Nl
cnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgdGVzdCBi
b2R5ICcKKyAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQs
IEVYX0JJTkFSWV9PVVRQVVQpCiAKICAgZGVmIHRlc3RDYXRjaGVzQ3h4RXhjZXB0aW9uc0luVGVh
ckRvd25UZXN0Q2FzZShzZWxmKToKLSAgICBzZWxmLmFzc2VydF8oJ0MrKyBleGNlcHRpb24gd2l0
aCBkZXNjcmlwdGlvbiAiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiInCi0gICAgICAgICAgICAgICAg
ICcgdGhyb3duIGluIFRlYXJEb3duVGVzdENhc2UoKScKLSAgICAgICAgICAgICAgICAgaW4gRVhf
QklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDKysgZXhjZXB0
aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iJworICAgICAgICAn
IHRocm93biBpbiBUZWFyRG93blRlc3RTdWl0ZSgpJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9C
SU5BUllfT1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJblNldFVwKHNl
bGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJT
dGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAgICAgICAgICAgJyB0aHJvd24gaW4gU2V0
VXAoKScKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFz
c2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgJwotICAg
ICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4g
RVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluU2V0VXBU
ZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicK
LSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8o
J0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93bigpICcKLSAgICAgICAgICAgICAgICAg
J2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQ
VVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRl
c2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4g
U2V0VXAoKScgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxm
LmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRvd25U
ZXN0U3VpdGUoKSAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllf
T1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAg
J0N4eEV4Y2VwdGlvbkluU2V0VXBUZXN0IGRlc3RydWN0b3IgJworICAgICAgICAnY2FsbGVkIGFz
IGV4cGVjdGVkLicgaW4gRVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBz
ZWxmLmFzc2VydFRydWUoCisgICAgICAgICdDeHhFeGNlcHRpb25JblNldFVwVGVzdDo6VGVhckRv
d24oKSAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVU
LCBFWF9CSU5BUllfT1VUUFVUKQogICAgIHNlbGYuYXNzZXJ0XygndW5leHBlY3RlZCcgbm90IGlu
IEVYX0JJTkFSWV9PVVRQVVQsCiAgICAgICAgICAgICAgICAgICdUaGlzIGZhaWx1cmUgYmVsb25n
cyBpbiB0aGlzIHRlc3Qgb25seSBpZiAnCiAgICAgICAgICAgICAgICAgICciQ3h4RXhjZXB0aW9u
SW5TZXRVcFRlc3QiIChubyBxdW90ZXMpICcKICAgICAgICAgICAgICAgICAgJ2FwcGVhcnMgb24g
dGhlIHNhbWUgbGluZSBhcyB3b3JkcyAiY2FsbGVkIHVuZXhwZWN0ZWRseSInKQogCiAgIGRlZiB0
ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlvbnNJblRlYXJEb3duKHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0
XygnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9u
IicKLSAgICAgICAgICAgICAgICAgJyB0aHJvd24gaW4gVGVhckRvd24oKScKLSAgICAgICAgICAg
ICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlv
bkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgJwotICAgICAgICAgICAgICAgICAn
Y2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBV
VCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0IGRlc3RydWN0
b3IgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAg
ICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAg
ICdDKysgZXhjZXB0aW9uIHdpdGggZGVzY3JpcHRpb24gIlN0YW5kYXJkIEMrKyBleGNlcHRpb24i
JworICAgICAgICAnIHRocm93biBpbiBUZWFyRG93bigpJyBpbiBFWF9CSU5BUllfT1VUUFVULCBF
WF9CSU5BUllfT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2Vw
dGlvbkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RTdWl0ZSgpICcKKyAgICAgICAgJ2NhbGxl
ZCBhcyBleHBlY3RlZC4nIGluIEVYX0JJTkFSWV9PVVRQVVQsIEVYX0JJTkFSWV9PVVRQVVQpCisg
ICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAnQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3Qg
ZGVzdHJ1Y3RvciAnCisgICAgICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllf
T1VUUFVULCBFWF9CSU5BUllfT1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hlc0N4eEV4Y2VwdGlv
bnNJblRlc3RCb2R5KHNlbGYpOgotICAgIHNlbGYuYXNzZXJ0XygnQysrIGV4Y2VwdGlvbiB3aXRo
IGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIicKLSAgICAgICAgICAgICAgICAg
JyB0aHJvd24gaW4gdGhlIHRlc3QgYm9keScKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpU
ZWFyRG93blRlc3RDYXNlKCkgJwotICAgICAgICAgICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVk
LicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZX09VVFBVVCkKLSAgICBzZWxmLmFzc2Vy
dF8oJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0IGRlc3RydWN0b3IgJwotICAgICAgICAgICAg
ICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicKLSAgICAgICAgICAgICAgICAgaW4gRVhfQklOQVJZ
X09VVFBVVCkKLSAgICBzZWxmLmFzc2VydF8oJ0N4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpU
ZWFyRG93bigpICcKLSAgICAgICAgICAgICAgICAgJ2NhbGxlZCBhcyBleHBlY3RlZC4nCi0gICAg
ICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5hc3NlcnRUcnVlKAor
ICAgICAgICAnQysrIGV4Y2VwdGlvbiB3aXRoIGRlc2NyaXB0aW9uICJTdGFuZGFyZCBDKysgZXhj
ZXB0aW9uIicKKyAgICAgICAgJyB0aHJvd24gaW4gdGhlIHRlc3QgYm9keScgaW4gRVhfQklOQVJZ
X09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAg
ICdDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd25UZXN0U3VpdGUoKSAnCisgICAg
ICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllf
T1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKKyAgICAgICAgJ0N4eEV4Y2VwdGlvbkluVGVz
dEJvZHlUZXN0IGRlc3RydWN0b3IgJworICAgICAgICAnY2FsbGVkIGFzIGV4cGVjdGVkLicgaW4g
RVhfQklOQVJZX09VVFBVVCwgRVhfQklOQVJZX09VVFBVVCkKKyAgICBzZWxmLmFzc2VydFRydWUo
CisgICAgICAgICdDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdDo6VGVhckRvd24oKSAnCisgICAg
ICAgICdjYWxsZWQgYXMgZXhwZWN0ZWQuJyBpbiBFWF9CSU5BUllfT1VUUFVULCBFWF9CSU5BUllf
T1VUUFVUKQogCiAgIGRlZiB0ZXN0Q2F0Y2hlc05vblN0ZEN4eEV4Y2VwdGlvbnMoc2VsZik6Ci0g
ICAgc2VsZi5hc3NlcnRfKCdVbmtub3duIEMrKyBleGNlcHRpb24gdGhyb3duIGluIHRoZSB0ZXN0
IGJvZHknCi0gICAgICAgICAgICAgICAgIGluIEVYX0JJTkFSWV9PVVRQVVQpCisgICAgc2VsZi5h
c3NlcnRUcnVlKAorICAgICAgICAnVW5rbm93biBDKysgZXhjZXB0aW9uIHRocm93biBpbiB0aGUg
dGVzdCBib2R5JyBpbiBFWF9CSU5BUllfT1VUUFVULAorICAgICAgICBFWF9CSU5BUllfT1VUUFVU
KQogCiAgIGRlZiB0ZXN0VW5oYW5kbGVkQ3h4RXhjZXB0aW9uc0Fib3J0VGhlUHJvZ3JhbShzZWxm
KToKICAgICAjIEZpbHRlcnMgb3V0IFNFSCBleGNlcHRpb24gdGVzdHMgb24gV2luZG93cy4gVW5o
YW5kbGVkIFNFSCBleGNlcHRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3QtY2F0Y2gtZXhjZXB0aW9ucy10ZXN0Xy5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjCmlu
ZGV4IDA5ZGFlNzAwMzBhMzNhZWFiYTA2MGFhZWY5N2E5NzlhOGY1ODA0YWUuLjhjMTI3ZDQwYjEx
ZDRkNzJhM2ZhYWU4MGJhZmJiNzQ2ZDFhYTQxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25zLXRlc3RfLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1jYXRjaC1leGNlcHRpb25z
LXRlc3RfLmNjCkBAIC02NCwxOSArNjQsMjAgQEAgY2xhc3MgU2VoRXhjZXB0aW9uSW5EZXN0cnVj
dG9yVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogVEVTVF9GKFNlaEV4Y2VwdGlvbkluRGVzdHJ1Y3Rv
clRlc3QsIFRocm93c0V4Y2VwdGlvbkluRGVzdHJ1Y3Rvcikge30KIAotY2xhc3MgU2VoRXhjZXB0
aW9uSW5TZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKK2NsYXNzIFNlaEV4Y2VwdGlv
bkluU2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3QgewogIHB1YmxpYzoKLSAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsgUmFpc2VFeGNlcHRpb24oNDIsIDAsIDAsIE5VTEwpOyB9
CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeyBSYWlzZUV4Y2VwdGlvbig0MiwgMCwg
MCwgTlVMTCk7IH0KIH07CiAKLVRFU1RfRihTZWhFeGNlcHRpb25JblNldFVwVGVzdENhc2VUZXN0
LCBUaHJvd3NFeGNlcHRpb25JblNldFVwVGVzdENhc2UpIHt9CitURVNUX0YoU2VoRXhjZXB0aW9u
SW5TZXRVcFRlc3RTdWl0ZVRlc3QsIFRocm93c0V4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGUpIHt9
CiAKLWNsYXNzIFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0Q2FzZVRlc3QgOiBwdWJsaWMgVGVz
dCB7CitjbGFzcyBTZWhFeGNlcHRpb25JblRlYXJEb3duVGVzdFN1aXRlVGVzdCA6IHB1YmxpYyBU
ZXN0IHsKICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IFJhaXNl
RXhjZXB0aW9uKDQyLCAwLCAwLCBOVUxMKTsgfQorICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RT
dWl0ZSgpIHsgUmFpc2VFeGNlcHRpb24oNDIsIDAsIDAsIE5VTEwpOyB9CiB9OwogCi1URVNUX0Yo
U2VoRXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNlVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5UZWFy
RG93blRlc3RDYXNlKSB7fQorVEVTVF9GKFNlaEV4Y2VwdGlvbkluVGVhckRvd25UZXN0U3VpdGVU
ZXN0LAorICAgICAgIFRocm93c0V4Y2VwdGlvbkluVGVhckRvd25UZXN0U3VpdGUpIHt9CiAKIGNs
YXNzIFNlaEV4Y2VwdGlvbkluU2V0VXBUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
QEAgLTEwOSwyNCArMTEwLDI0IEBAIGNsYXNzIEN4eEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0
IDogcHVibGljIFRlc3QgewogICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5k
YXJkIEMrKyBleGNlcHRpb24iKSk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RD
YXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYo
IiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0OjpUZWFyRG93
blRlc3RDYXNlKCkgIgorICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6
OlRlYXJEb3duVGVzdFN1aXRlKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxu
Iik7CiAgIH0KIAogIHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0
KCkgeworICB+Q3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QoKSBvdmVycmlkZSB7CiAgICAg
QUREX0ZBSUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3QgZGVzdHJ1Y3Rv
ciAiCiAgICAgICAgICAgICAgICAgICA8PCAiY2FsbGVkIHVuZXhwZWN0ZWRseS4iOwogICB9CiAK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewogICAg
IEFERF9GQUlMVVJFKCkgPDwgIkN4eEV4Y2VwdGlvbkluQ29uc3RydWN0b3JUZXN0OjpTZXRVcCgp
ICIKICAgICAgICAgICAgICAgICAgIDw8ICJjYWxsZWQgdW5leHBlY3RlZGx5LiI7CiAgIH0KIAot
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7
CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiQ3h4RXhjZXB0aW9uSW5Db25zdHJ1Y3RvclRlc3Q6OlRl
YXJEb3duKCkgIgogICAgICAgICAgICAgICAgICAgPDwgImNhbGxlZCB1bmV4cGVjdGVkbHkuIjsK
ICAgfQpAQCAtMTM3LDk3ICsxMzgsNzggQEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluQ29uc3RydWN0
b3JUZXN0LCBUaHJvd3NFeGNlcHRpb25JbkNvbnN0cnVjdG9yKSB7CiAgICAgICAgICAgICAgICAg
PDwgImNhbGxlZCB1bmV4cGVjdGVkbHkuIjsKIH0KIAotLy8gRXhjZXB0aW9ucyBpbiBkZXN0cnVj
dG9ycyBhcmUgbm90IHN1cHBvcnRlZCBpbiBDKysxMS4KLSNpZiAhR1RFU1RfTEFOR19DWFgxMQot
Y2xhc3MgQ3h4RXhjZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCA6IHB1YmxpYyBUZXN0IHsKK2NsYXNz
IEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0U3VpdGVUZXN0IDogcHVibGljIFRlc3QgewogIHB1Ymxp
YzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgQ3h4RXhjZXB0aW9uSW5T
ZXRVcFRlc3RTdWl0ZVRlc3QoKSB7CiAgICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhF
eGNlcHRpb25JbkRlc3RydWN0b3JUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgorICAgICAgICAg
ICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgY29uc3RydWN0b3IgIgogICAgICAg
ICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAotIHByb3RlY3RlZDoKLSAgfkN4
eEV4Y2VwdGlvbkluRGVzdHJ1Y3RvclRlc3QoKSB7Ci0gICAgR1RFU1RfU1VQUFJFU1NfVU5SRUFD
SEFCTEVfQ09ERV9XQVJOSU5HX0JFTE9XXygKLSAgICAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vy
cm9yKCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIikpOwotICB9Ci19OwotCi1URVNUX0YoQ3h4RXhj
ZXB0aW9uSW5EZXN0cnVjdG9yVGVzdCwgVGhyb3dzRXhjZXB0aW9uSW5EZXN0cnVjdG9yKSB7fQot
I2VuZGlmICAvLyBDKysxMSBtb2RlCi0KLWNsYXNzIEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2Fz
ZVRlc3QgOiBwdWJsaWMgVGVzdCB7Ci0gcHVibGljOgotICBDeHhFeGNlcHRpb25JblNldFVwVGVz
dENhc2VUZXN0KCkgewotICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhjZXB0aW9u
SW5TZXRVcFRlc3RDYXNlVGVzdCBjb25zdHJ1Y3RvciAiCi0gICAgICAgICAgICJjYWxsZWQgYXMg
ZXhwZWN0ZWQuXG4iKTsKLSAgfQotCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7Cisg
IHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIHRocm93IHN0ZDo6cnVudGltZV9l
cnJvcigiU3RhbmRhcmQgQysrIGV4Y2VwdGlvbiIpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVh
ckRvd25UZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAg
ICAgcHJpbnRmKCIlcyIsCi0gICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVwVGVzdENhc2VU
ZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgorICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5TZXRV
cFRlc3RTdWl0ZVRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgIgogICAgICAgICAgICAiY2FsbGVk
IGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAogIHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlvbklu
U2V0VXBUZXN0Q2FzZVRlc3QoKSB7CisgIH5DeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVz
dCgpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4eEV4Y2VwdGlv
bkluU2V0VXBUZXN0Q2FzZVRlc3QgZGVzdHJ1Y3RvciAiCisgICAgICAgICAgICJDeHhFeGNlcHRp
b25JblNldFVwVGVzdFN1aXRlVGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgImNhbGxlZCBh
cyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAotICAgICAgICAgICAiQ3h4RXhj
ZXB0aW9uSW5TZXRVcFRlc3RDYXNlVGVzdDo6U2V0VXAoKSAiCisgICAgICAgICAgICJDeHhFeGNl
cHRpb25JblNldFVwVGVzdFN1aXRlVGVzdDo6U2V0VXAoKSAiCiAgICAgICAgICAgICJjYWxsZWQg
YXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAg
dm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAg
IkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0Q2FzZVRlc3Q6OlRlYXJEb3duKCkgIgorICAgICAgICAg
ICAiQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3Q6OlRlYXJEb3duKCkgIgogICAgICAg
ICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIH07CiAKLVRFU1RfRihDeHhFeGNl
cHRpb25JblNldFVwVGVzdENhc2VUZXN0LCBUaHJvd3NFeGNlcHRpb25JblNldFVwVGVzdENhc2Up
IHsKK1RFU1RfRihDeHhFeGNlcHRpb25JblNldFVwVGVzdFN1aXRlVGVzdCwgVGhyb3dzRXhjZXB0
aW9uSW5TZXRVcFRlc3RTdWl0ZSkgewogICBwcmludGYoIiVzIiwKLSAgICAgICAgICJDeHhFeGNl
cHRpb25JblNldFVwVGVzdENhc2VUZXN0IHRlc3QgYm9keSAiCisgICAgICAgICAiQ3h4RXhjZXB0
aW9uSW5TZXRVcFRlc3RTdWl0ZVRlc3QgdGVzdCBib2R5ICIKICAgICAgICAgICJjYWxsZWQgYXMg
ZXhwZWN0ZWQuXG4iKTsKIH0KIAotY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3RDYXNl
VGVzdCA6IHB1YmxpYyBUZXN0IHsKK2NsYXNzIEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0U3Vp
dGVUZXN0IDogcHVibGljIFRlc3QgewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25U
ZXN0Q2FzZSgpIHsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgdGhy
b3cgc3RkOjpydW50aW1lX2Vycm9yKCJTdGFuZGFyZCBDKysgZXhjZXB0aW9uIik7CiAgIH0KIH07
CiAKLVRFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdENhc2VUZXN0LCBUaHJvd3NFeGNl
cHRpb25JblRlYXJEb3duVGVzdENhc2UpIHt9CitURVNUX0YoQ3h4RXhjZXB0aW9uSW5UZWFyRG93
blRlc3RTdWl0ZVRlc3QsCisgICAgICAgVGhyb3dzRXhjZXB0aW9uSW5UZWFyRG93blRlc3RTdWl0
ZSkge30KIAogY2xhc3MgQ3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAg
cHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9p
ZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwKLSAgICAgICAgICAgIkN4
eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpUZWFyRG93blRlc3RDYXNlKCkgIgorICAgICAgICAgICAi
Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlKCkgIgogICAgICAgICAg
ICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAogIHByb3RlY3RlZDoKLSAgfkN4eEV4
Y2VwdGlvbkluU2V0VXBUZXN0KCkgeworICB+Q3h4RXhjZXB0aW9uSW5TZXRVcFRlc3QoKSBvdmVy
cmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAgICJDeHhFeGNlcHRpb25JblNldFVw
VGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeyB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3Io
IlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyB0
aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsgfQogCi0g
IHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsK
ICAgICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0OjpU
ZWFyRG93bigpICIKICAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwpAQCAtMjQx
LDIwICsyMjMsMjAgQEAgVEVTVF9GKEN4eEV4Y2VwdGlvbkluU2V0VXBUZXN0LCBUaHJvd3NFeGNl
cHRpb25JblNldFVwKSB7CiAKIGNsYXNzIEN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0IDogcHVi
bGljIFRlc3QgewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsK
KyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgcHJpbnRmKCIlcyIsCi0g
ICAgICAgICAgICJDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdDo6VGVhckRvd25UZXN0Q2FzZSgp
ICIKKyAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluVGVhckRvd25UZXN0OjpUZWFyRG93blRlc3RT
dWl0ZSgpICIKICAgICAgICAgICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKICBw
cm90ZWN0ZWQ6Ci0gIH5DeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCgpIHsKKyAgfkN4eEV4Y2Vw
dGlvbkluVGVhckRvd25UZXN0KCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAogICAgICAg
ICAgICAiQ3h4RXhjZXB0aW9uSW5UZWFyRG93blRlc3QgZGVzdHJ1Y3RvciAiCiAgICAgICAgICAg
ICJjYWxsZWQgYXMgZXhwZWN0ZWQuXG4iKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93
bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICB0aHJvdyBzdGQ6OnJ1bnRp
bWVfZXJyb3IoIlN0YW5kYXJkIEMrKyBleGNlcHRpb24iKTsKICAgfQogfTsKQEAgLTI2MywyMCAr
MjQ1LDIwIEBAIFRFU1RfRihDeHhFeGNlcHRpb25JblRlYXJEb3duVGVzdCwgVGhyb3dzRXhjZXB0
aW9uSW5UZWFyRG93bikge30KIAogY2xhc3MgQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkg
eworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICBwcmludGYoIiVzIiwK
LSAgICAgICAgICAgIkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0OjpUZWFyRG93blRlc3RDYXNl
KCkgIgorICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duVGVz
dFN1aXRlKCkgIgogICAgICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CiAgIH0KIAog
IHByb3RlY3RlZDoKLSAgfkN4eEV4Y2VwdGlvbkluVGVzdEJvZHlUZXN0KCkgeworICB+Q3h4RXhj
ZXB0aW9uSW5UZXN0Qm9keVRlc3QoKSBvdmVycmlkZSB7CiAgICAgcHJpbnRmKCIlcyIsCiAgICAg
ICAgICAgICJDeHhFeGNlcHRpb25JblRlc3RCb2R5VGVzdCBkZXN0cnVjdG9yICIKICAgICAgICAg
ICAgImNhbGxlZCBhcyBleHBlY3RlZC5cbiIpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJE
b3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIHByaW50ZigiJXMiLAog
ICAgICAgICAgICAiQ3h4RXhjZXB0aW9uSW5UZXN0Qm9keVRlc3Q6OlRlYXJEb3duKCkgIgogICAg
ICAgICAgICAiY2FsbGVkIGFzIGV4cGVjdGVkLlxuIik7CkBAIC0yOTYsNyArMjc4LDcgQEAgVEVT
VChDeHhFeGNlcHRpb25UZXN0LCBUaHJvd3NOb25TdGRDeHhFeGNlcHRpb24pIHsKIC8vIG9uZXMu
CiB2b2lkIFRlcm1pbmF0ZUhhbmRsZXIoKSB7CiAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsICJV
bmhhbmRsZWQgQysrIGV4Y2VwdGlvbiB0ZXJtaW5hdGluZyB0aGUgcHJvZ3JhbS4iKTsKLSAgZmZs
dXNoKE5VTEwpOworICBmZmx1c2gobnVsbHB0cik7CiAgIGV4aXQoMyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRl
c3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVz
dC10ZXN0LmNjCmluZGV4IGMwYzMwMjZmYjU4OTU2NjBhZDJjOWQ2NWZiZDk5YjVmYWY5YWQ0OGMu
LmMwYjNkMWYyMWQwNGQzZGU3NzgwMzgzNjcwNGNiN2Y0N2QyYWRmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0LXRlc3QuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3Qt
dGVzdC5jYwpAQCAtMzEsNiArMzEsNyBAQAogLy8gVGVzdHMgZm9yIGRlYXRoIHRlc3RzLgogCiAj
aW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QtZGVhdGgtdGVzdC5oIgorCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rl
c3QuaCIKICNpbmNsdWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC1maWxlcGF0aC5oIgogCkBAIC00
MCw3ICs0MSw5IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlOwogI2lmIEdU
RVNUX0hBU19ERUFUSF9URVNUCiAKICMgaWYgR1RFU1RfT1NfV0lORE9XUworIyAgaW5jbHVkZSA8
ZmNudGwuaD4gICAgICAgICAgIC8vIEZvciBPX0JJTkFSWQogIyAgaW5jbHVkZSA8ZGlyZWN0Lmg+
ICAgICAgICAgIC8vIEZvciBjaGRpcigpLgorIyAgaW5jbHVkZSA8aW8uaD4KICMgZWxzZQogIyAg
aW5jbHVkZSA8dW5pc3RkLmg+CiAjICBpbmNsdWRlIDxzeXMvd2FpdC5oPiAgICAgICAgLy8gRm9y
IHdhaXRwaWQuCkBAIC01OSw2ICs2Miw4IEBAIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpBbHdh
eXNUcnVlOwogCiBuYW1lc3BhY2UgcG9zaXggPSA6OnRlc3Rpbmc6OmludGVybmFsOjpwb3NpeDsK
IAordXNpbmcgdGVzdGluZzo6Q29udGFpbnNSZWdleDsKK3VzaW5nIHRlc3Rpbmc6Ok1hdGNoZXI7
CiB1c2luZyB0ZXN0aW5nOjpNZXNzYWdlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkRlYXRo
VGVzdDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpEZWF0aFRlc3RGYWN0b3J5OwpAQCAtOTcs
NiArMTAyLDggQEAgY2xhc3MgUmVwbGFjZURlYXRoVGVzdEZhY3RvcnkgewogfSAgLy8gbmFtZXNw
YWNlIGludGVybmFsCiB9ICAvLyBuYW1lc3BhY2UgdGVzdGluZwogCituYW1lc3BhY2UgeworCiB2
b2lkIERpZVdpdGhNZXNzYWdlKGNvbnN0IDo6c3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKICAgZnBy
aW50ZihzdGRlcnIsICIlcyIsIG1lc3NhZ2UuY19zdHIoKSk7CiAgIGZmbHVzaChzdGRlcnIpOyAg
Ly8gTWFrZSBzdXJlIHRoZSB0ZXh0IGlzIHByaW50ZWQgYmVmb3JlIHRoZSBwcm9jZXNzIGV4aXRz
LgpAQCAtMTIzLDkgKzEzMCw3IEBAIGNsYXNzIFRlc3RGb3JEZWF0aFRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgogICBUZXN0Rm9yRGVhdGhUZXN0KCkgOiBvcmlnaW5h
bF9kaXJfKEZpbGVQYXRoOjpHZXRDdXJyZW50RGlyKCkpIHt9CiAKLSAgdmlydHVhbCB+VGVzdEZv
ckRlYXRoVGVzdCgpIHsKLSAgICBwb3NpeDo6Q2hEaXIob3JpZ2luYWxfZGlyXy5jX3N0cigpKTsK
LSAgfQorICB+VGVzdEZvckRlYXRoVGVzdCgpIG92ZXJyaWRlIHsgcG9zaXg6OkNoRGlyKG9yaWdp
bmFsX2Rpcl8uY19zdHIoKSk7IH0KIAogICAvLyBBIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gdGhh
dCdzIGV4cGVjdGVkIHRvIGRpZS4KICAgc3RhdGljIHZvaWQgU3RhdGljTWVtYmVyRnVuY3Rpb24o
KSB7IERpZUluc2lkZSgiU3RhdGljTWVtYmVyRnVuY3Rpb24iKTsgfQpAQCAtMTM2LDcgKzE0MSw3
IEBAIGNsYXNzIFRlc3RGb3JEZWF0aFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgICAg
ICBEaWVJbnNpZGUoIk1lbWJlckZ1bmN0aW9uIik7CiAgIH0KIAotICAvLyBUcnVlIGlmZiBNZW1i
ZXJGdW5jdGlvbigpIHNob3VsZCBkaWUuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgTWVtYmVy
RnVuY3Rpb24oKSBzaG91bGQgZGllLgogICBib29sIHNob3VsZF9kaWVfOwogICBjb25zdCBGaWxl
UGF0aCBvcmlnaW5hbF9kaXJfOwogfTsKQEAgLTE1Myw3ICsxNTgsNyBAQCBjbGFzcyBNYXlEaWUg
ewogICB9CiAKICBwcml2YXRlOgotICAvLyBUcnVlIGlmZiBNZW1iZXJGdW5jdGlvbigpIHNob3Vs
ZCBkaWUuCisgIC8vIFRydWUgaWYgYW5kIG9ubHkgaWYgTWVtYmVyRnVuY3Rpb24oKSBzaG91bGQg
ZGllLgogICBib29sIHNob3VsZF9kaWVfOwogfTsKIApAQCAtMTk5LDYgKzIwNCwyNiBAQCBpbnQg
RGllSW5EZWJ1Z0Vsc2UxMihpbnQqIHNpZGVlZmZlY3QpIHsKICAgcmV0dXJuIDEyOwogfQogCisj
IGlmIEdURVNUX09TX1dJTkRPV1MKKworLy8gRGVhdGggaW4gZGJnIGR1ZSB0byBXaW5kb3dzIENS
VCBhc3NlcnRpb24gZmFpbHVyZSwgbm90IG9wdC4KK2ludCBEaWVJbkNSVERlYnVnRWxzZTEyKGlu
dCogc2lkZWVmZmVjdCkgeworICBpZiAoc2lkZWVmZmVjdCkgKnNpZGVlZmZlY3QgPSAxMjsKKwor
ICAvLyBDcmVhdGUgYW4gaW52YWxpZCBmZCBieSBjbG9zaW5nIGEgdmFsaWQgb25lCisgIGludCBm
ZHBpcGVbMl07CisgIEVYUEVDVF9FUShfcGlwZShmZHBpcGUsIDI1NiwgT19CSU5BUlkpLCAwKTsK
KyAgRVhQRUNUX0VRKF9jbG9zZShmZHBpcGVbMF0pLCAwKTsKKyAgRVhQRUNUX0VRKF9jbG9zZShm
ZHBpcGVbMV0pLCAwKTsKKworICAvLyBfZHVwKCkgc2hvdWxkIGNyYXNoIGluIGRlYnVnIG1vZGUK
KyAgRVhQRUNUX0VRKF9kdXAoZmRwaXBlWzBdKSwgLTEpOworCisgIHJldHVybiAxMjsKK30KKwor
I2VuZGlmICAvLyBHVEVTVF9PU19XSU5ET1dTCisKICMgaWYgR1RFU1RfT1NfV0lORE9XUyB8fCBH
VEVTVF9PU19GVUNIU0lBCiAKIC8vIFRlc3RzIHRoZSBFeGl0ZWRXaXRoQ29kZSBwcmVkaWNhdGUu
CkBAIC0yNzMsNiArMjk4LDEzIEBAIFRFU1QoRXhpdFN0YXR1c1ByZWRpY2F0ZVRlc3QsIEtpbGxl
ZEJ5U2lnbmFsKSB7CiAKICMgZW5kaWYgIC8vIEdURVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1Nf
RlVDSFNJQQogCisvLyBUaGUgZm9sbG93aW5nIGNvZGUgaW50ZW50aW9uYWxseSB0ZXN0cyBhIHN1
Ym9wdGltYWwgc3ludGF4LgorI2lmZGVmIF9fR05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkYW5nbGluZy1lbHNlIgor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VtcHR5LWJvZHkiCisjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcHJhZ21hcyIKKyNlbmRpZgogLy8gVGVzdHMgdGhhdCB0
aGUgZGVhdGggdGVzdCBtYWNyb3MgZXhwYW5kIHRvIGNvZGUgd2hpY2ggbWF5IG9yIG1heSBub3QK
IC8vIGJlIGZvbGxvd2VkIGJ5IG9wZXJhdG9yPDwsIGFuZCB0aGF0IGluIGVpdGhlciBjYXNlIHRo
ZSBjb21wbGV0ZSB0ZXh0CiAvLyBjb21wcmlzZXMgb25seSBhIHNpbmdsZSBDKysgc3RhdGVtZW50
LgpAQCAtMjk2LDYgKzMyOCwxMSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgU2luZ2xlU3Rh
dGVtZW50KSB7CiAgIGVsc2UKICAgICBFWFBFQ1RfREVBVEgoX2V4aXQoMSksICIiKSA8PCAxIDw8
IDIgPDwgMzsKIH0KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
KyNlbmRpZgorCisjIGlmIEdURVNUX1VTRVNfUENSRQogCiB2b2lkIERpZVdpdGhFbWJlZGRlZE51
bCgpIHsKICAgZnByaW50ZihzdGRlcnIsICJIZWxsbyVjbXkgbnVsbCB3b3JsZC5cbiIsICdcMCcp
OwpAQCAtMzAzLDggKzM0MCw2IEBAIHZvaWQgRGllV2l0aEVtYmVkZGVkTnVsKCkgewogICBfZXhp
dCgxKTsKIH0KIAotIyBpZiBHVEVTVF9VU0VTX1BDUkUKLQogLy8gVGVzdHMgdGhhdCBFWFBFQ1Rf
REVBVEggYW5kIEFTU0VSVF9ERUFUSCB3b3JrIHdoZW4gdGhlIGVycm9yCiAvLyBtZXNzYWdlIGhh
cyBhIE5VTCBjaGFyYWN0ZXIgaW4gaXQuCiBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgRW1iZWRk
ZWROdWxJbk1lc3NhZ2UpIHsKQEAgLTM2NiwxNyArNDAxLDE5IEBAIHZvaWQgU2lncHJvZkFjdGlv
bihpbnQsIHNpZ2luZm9fdCosIHZvaWQqKSB7IC8qIG5vIG9wICovIH0KIAogLy8gU2V0cyBTSUdQ
Uk9GIGFjdGlvbiBhbmQgSVRJTUVSX1BST0YgdGltZXIgKGludGVydmFsOiAxbXMpLgogdm9pZCBT
ZXRTaWdwcm9mQWN0aW9uQW5kVGltZXIoKSB7Ci0gIHN0cnVjdCBpdGltZXJ2YWwgdGltZXI7Ci0g
IHRpbWVyLml0X2ludGVydmFsLnR2X3NlYyA9IDA7Ci0gIHRpbWVyLml0X2ludGVydmFsLnR2X3Vz
ZWMgPSAxOwotICB0aW1lci5pdF92YWx1ZSA9IHRpbWVyLml0X2ludGVydmFsOwotICBBU1NFUlRf
RVEoMCwgc2V0aXRpbWVyKElUSU1FUl9QUk9GLCAmdGltZXIsIE5VTEwpKTsKICAgc3RydWN0IHNp
Z2FjdGlvbiBzaWduYWxfYWN0aW9uOwogICBtZW1zZXQoJnNpZ25hbF9hY3Rpb24sIDAsIHNpemVv
ZihzaWduYWxfYWN0aW9uKSk7CiAgIHNpZ2VtcHR5c2V0KCZzaWduYWxfYWN0aW9uLnNhX21hc2sp
OwogICBzaWduYWxfYWN0aW9uLnNhX3NpZ2FjdGlvbiA9IFNpZ3Byb2ZBY3Rpb247CiAgIHNpZ25h
bF9hY3Rpb24uc2FfZmxhZ3MgPSBTQV9SRVNUQVJUIHwgU0FfU0lHSU5GTzsKLSAgQVNTRVJUX0VR
KDAsIHNpZ2FjdGlvbihTSUdQUk9GLCAmc2lnbmFsX2FjdGlvbiwgTlVMTCkpOworICBBU1NFUlRf
RVEoMCwgc2lnYWN0aW9uKFNJR1BST0YsICZzaWduYWxfYWN0aW9uLCBudWxscHRyKSk7CisgIC8v
IHRpbWVyIGNvbWVzIHNlY29uZCwgdG8gYXZvaWQgU0lHUFJPRiBwcmVtYXR1cmUgZGVsaXZlcnks
IGFzIHN1Z2dlc3RlZCBhdAorICAvLyBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMv
bWFudWFsL2h0bWxfbm9kZS9TZXR0aW5nLWFuLUFsYXJtLmh0bWwKKyAgc3RydWN0IGl0aW1lcnZh
bCB0aW1lcjsKKyAgdGltZXIuaXRfaW50ZXJ2YWwudHZfc2VjID0gMDsKKyAgdGltZXIuaXRfaW50
ZXJ2YWwudHZfdXNlYyA9IDE7CisgIHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7
CisgIEFTU0VSVF9FUSgwLCBzZXRpdGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgbnVsbHB0cikp
OwogfQogCiAvLyBEaXNhYmxlcyBJVElNRVJfUFJPRiB0aW1lciBhbmQgaWdub3JlcyBTSUdQUk9G
IHNpZ25hbC4KQEAgLTM4NSw3ICs0MjIsNyBAQCB2b2lkIERpc2FibGVTaWdwcm9mQWN0aW9uQW5k
VGltZXIoc3RydWN0IHNpZ2FjdGlvbiogb2xkX3NpZ25hbF9hY3Rpb24pIHsKICAgdGltZXIuaXRf
aW50ZXJ2YWwudHZfc2VjID0gMDsKICAgdGltZXIuaXRfaW50ZXJ2YWwudHZfdXNlYyA9IDA7CiAg
IHRpbWVyLml0X3ZhbHVlID0gdGltZXIuaXRfaW50ZXJ2YWw7Ci0gIEFTU0VSVF9FUSgwLCBzZXRp
dGltZXIoSVRJTUVSX1BST0YsICZ0aW1lciwgTlVMTCkpOworICBBU1NFUlRfRVEoMCwgc2V0aXRp
bWVyKElUSU1FUl9QUk9GLCAmdGltZXIsIG51bGxwdHIpKTsKICAgc3RydWN0IHNpZ2FjdGlvbiBz
aWduYWxfYWN0aW9uOwogICBtZW1zZXQoJnNpZ25hbF9hY3Rpb24sIDAsIHNpemVvZihzaWduYWxf
YWN0aW9uKSk7CiAgIHNpZ2VtcHR5c2V0KCZzaWduYWxfYWN0aW9uLnNhX21hc2spOwpAQCAtNDUy
LDIxICs0ODksMTcgQEAgVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIE1peGVkU3R5bGVzKSB7CiAK
ICMgaWYgR1RFU1RfSEFTX0NMT05FICYmIEdURVNUX0hBU19QVEhSRUFECiAKLW5hbWVzcGFjZSB7
Ci0KIGJvb2wgcHRocmVhZF9mbGFnOwogCiB2b2lkIFNldFB0aHJlYWRGbGFnKCkgewogICBwdGhy
ZWFkX2ZsYWcgPSB0cnVlOwogfQogCi19ICAvLyBuYW1lc3BhY2UKLQogVEVTVF9GKFRlc3RGb3JE
ZWF0aFRlc3QsIERvZXNOb3RFeGVjdXRlQXRmb3JrSG9va3MpIHsKICAgaWYgKCF0ZXN0aW5nOjpH
VEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKSB7CiAgICAgdGVzdGluZzo6R1RFU1RfRkxB
RyhkZWF0aF90ZXN0X3N0eWxlKSA9ICJ0aHJlYWRzYWZlIjsKICAgICBwdGhyZWFkX2ZsYWcgPSBm
YWxzZTsKLSAgICBBU1NFUlRfRVEoMCwgcHRocmVhZF9hdGZvcmsoJlNldFB0aHJlYWRGbGFnLCBO
VUxMLCBOVUxMKSk7CisgICAgQVNTRVJUX0VRKDAsIHB0aHJlYWRfYXRmb3JrKCZTZXRQdGhyZWFk
RmxhZywgbnVsbHB0ciwgbnVsbHB0cikpOwogICAgIEFTU0VSVF9ERUFUSChfZXhpdCgxKSwgIiIp
OwogICAgIEFTU0VSVF9GQUxTRShwdGhyZWFkX2ZsYWcpOwogICB9CkBAIC00OTQsMTggKzUyNywx
NSBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwgQWNjZXB0c0FueXRoaW5nQ29udmVydGlibGVU
b1JFKSB7CiAgIGNvbnN0IHRlc3Rpbmc6OmludGVybmFsOjpSRSByZWdleChyZWdleF9jX3N0cik7
CiAgIEVYUEVDVF9ERUFUSChHbG9iYWxGdW5jdGlvbigpLCByZWdleCk7CiAKLSMgaWYgR1RFU1Rf
SEFTX0dMT0JBTF9TVFJJTkcKLQotICBjb25zdCA6OnN0cmluZyByZWdleF9zdHIocmVnZXhfY19z
dHIpOwotICBFWFBFQ1RfREVBVEgoR2xvYmFsRnVuY3Rpb24oKSwgcmVnZXhfc3RyKTsKLQotIyBl
bmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLQogIyBpZiAhR1RFU1RfVVNFU19QQ1JF
CiAKICAgY29uc3QgOjpzdGQ6OnN0cmluZyByZWdleF9zdGRfc3RyKHJlZ2V4X2Nfc3RyKTsKICAg
RVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIHJlZ2V4X3N0ZF9zdHIpOwogCisgIC8vIFRo
aXMgb25lIGlzIHRyaWNreTsgYSB0ZW1wb3JhcnkgcG9pbnRlciBpbnRvIGFub3RoZXIgdGVtcG9y
YXJ5LiAgUmVmZXJlbmNlCisgIC8vIGxpZmV0aW1lIGV4dGVuc2lvbiBvZiB0aGUgcG9pbnRlciBp
cyBub3Qgc3VmZmljaWVudC4KKyAgRVhQRUNUX0RFQVRIKEdsb2JhbEZ1bmN0aW9uKCksIDo6c3Rk
OjpzdHJpbmcocmVnZXhfY19zdHIpLmNfc3RyKCkpOworCiAjIGVuZGlmICAvLyAhR1RFU1RfVVNF
U19QQ1JFCiB9CiAKQEAgLTU1NSw4ICs1ODUsOCBAQCBURVNUX0YoVGVzdEZvckRlYXRoVGVzdCwg
RXJyb3JNZXNzYWdlTWlzbWF0Y2gpIHsKICAgfSwgImRpZWQgYnV0IG5vdCB3aXRoIGV4cGVjdGVk
IGVycm9yIik7CiB9CiAKLS8vIE9uIGV4aXQsICphYm9ydGVkIHdpbGwgYmUgdHJ1ZSBpZmYgdGhl
IEVYUEVDVF9ERUFUSCgpIHN0YXRlbWVudAotLy8gYWJvcnRlZCB0aGUgZnVuY3Rpb24uCisvLyBP
biBleGl0LCAqYWJvcnRlZCB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIEVYUEVDVF9E
RUFUSCgpCisvLyBzdGF0ZW1lbnQgYWJvcnRlZCB0aGUgZnVuY3Rpb24uCiB2b2lkIEV4cGVjdERl
YXRoVGVzdEhlbHBlcihib29sKiBhYm9ydGVkKSB7CiAgICphYm9ydGVkID0gdHJ1ZTsKICAgRVhQ
RUNUX0RFQVRIKERpZUlmKGZhbHNlKSwgIkRpZUlmIik7ICAvLyBUaGlzIGFzc2VydGlvbiBzaG91
bGQgZmFpbC4KQEAgLTYzNiw2ICs2NjYsNDAgQEAgVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIFRl
c3RFeHBlY3REZWJ1Z0RlYXRoKSB7CiAjIGVuZGlmCiB9CiAKKyMgaWYgR1RFU1RfT1NfV0lORE9X
UworCisvLyBUZXN0cyB0aGF0IEVYUEVDVF9ERUJVR19ERUFUSCB3b3JrcyBhcyBleHBlY3RlZCB3
aGVuIGluIGRlYnVnIG1vZGUKKy8vIHRoZSBXaW5kb3dzIENSVCBjcmFzaGVzIHRoZSBwcm9jZXNz
IHdpdGggYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCisvLyAxLiBBc3NlcnRzIG9uIGRlYXRoLgorLy8g
Mi4gSGFzIG5vIHNpZGUgZWZmZWN0IChkb2Vzbid0IHBvcCB1cCBhIHdpbmRvdyBvciB3YWl0IGZv
ciB1c2VyIGlucHV0KS4KKy8vCisvLyBBbmQgaW4gb3B0IG1vZGUsIGl0OgorLy8gMS4gIEhhcyBz
aWRlIGVmZmVjdHMgYnV0IGRvZXMgbm90IGFzc2VydC4KK1RFU1RfRihUZXN0Rm9yRGVhdGhUZXN0
LCBDUlREZWJ1Z0RlYXRoKSB7CisgIGludCBzaWRlZWZmZWN0ID0gMDsKKworICAvLyBQdXQgdGhl
IHJlZ2V4IGluIGEgbG9jYWwgdmFyaWFibGUgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBhbiAi
dW51c2VkIgorICAvLyB3YXJuaW5nIGluIG9wdCBtb2RlLgorICBjb25zdCBjaGFyKiByZWdleCA9
ICJkdXAuKiA6IEFzc2VydGlvbiBmYWlsZWQiOworCisgIEVYUEVDVF9ERUJVR19ERUFUSChEaWVJ
bkNSVERlYnVnRWxzZTEyKCZzaWRlZWZmZWN0KSwgcmVnZXgpCisgICAgICA8PCAiTXVzdCBhY2Nl
cHQgYSBzdHJlYW1lZCBtZXNzYWdlIjsKKworIyBpZmRlZiBOREVCVUcKKworICAvLyBDaGVja3Mg
dGhhdCB0aGUgYXNzaWdubWVudCBvY2N1cnMgaW4gb3B0IG1vZGUgKHNpZGVlZmZlY3QpLgorICBF
WFBFQ1RfRVEoMTIsIHNpZGVlZmZlY3QpOworCisjIGVsc2UKKworICAvLyBDaGVja3MgdGhhdCB0
aGUgYXNzaWdubWVudCBkb2VzIG5vdCBvY2N1ciBpbiBkYmcgbW9kZSAobm8gc2lkZWVmZmVjdCku
CisgIEVYUEVDVF9FUSgwLCBzaWRlZWZmZWN0KTsKKworIyBlbmRpZgorfQorCisjIGVuZGlmICAv
LyBHVEVTVF9PU19XSU5ET1dTCisKIC8vIFRlc3RzIHRoYXQgQVNTRVJUX0RFQlVHX0RFQVRIIHdv
cmtzIGFzIGV4cGVjdGVkLCB0aGF0IGlzLCB5b3UgY2FuIHN0cmVhbSBhCiAvLyBtZXNzYWdlIHRv
IGl0LCBhbmQgaW4gZGVidWcgbW9kZSBpdDoKIC8vIDEuIEFzc2VydHMgb24gZGVhdGguCkBAIC04
NzYsOSArOTQwLDkgQEAgVEVTVF9GKFRlc3RGb3JEZWF0aFRlc3QsIERlYXRoVGVzdE11bHRpTGlu
ZU1hdGNoUGFzcykgewogY2xhc3MgTW9ja0RlYXRoVGVzdEZhY3RvcnkgOiBwdWJsaWMgRGVhdGhU
ZXN0RmFjdG9yeSB7CiAgcHVibGljOgogICBNb2NrRGVhdGhUZXN0RmFjdG9yeSgpOwotICB2aXJ0
dWFsIGJvb2wgQ3JlYXRlKGNvbnN0IGNoYXIqIHN0YXRlbWVudCwKLSAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCA6OnRlc3Rpbmc6OmludGVybmFsOjpSRSogcmVnZXgsCi0gICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIERlYXRoVGVzdCoqIHRlc3QpOwor
ICBib29sIENyZWF0ZShjb25zdCBjaGFyKiBzdGF0ZW1lbnQsCisgICAgICAgICAgICAgIHRlc3Rp
bmc6Ok1hdGNoZXI8Y29uc3Qgc3RkOjpzdHJpbmcmPiBtYXRjaGVyLCBjb25zdCBjaGFyKiBmaWxl
LAorICAgICAgICAgICAgICBpbnQgbGluZSwgRGVhdGhUZXN0KiogdGVzdCkgb3ZlcnJpZGU7CiAK
ICAgLy8gU2V0cyB0aGUgcGFyYW1ldGVycyBmb3Igc3Vic2VxdWVudCBjYWxscyB0byBDcmVhdGUu
CiAgIHZvaWQgU2V0UGFyYW1ldGVycyhib29sIGNyZWF0ZSwgRGVhdGhUZXN0OjpUZXN0Um9sZSBy
b2xlLApAQCAtODg4LDEwICs5NTIsMTIgQEAgY2xhc3MgTW9ja0RlYXRoVGVzdEZhY3RvcnkgOiBw
dWJsaWMgRGVhdGhUZXN0RmFjdG9yeSB7CiAgIGludCBBc3N1bWVSb2xlQ2FsbHMoKSBjb25zdCB7
IHJldHVybiBhc3N1bWVfcm9sZV9jYWxsc187IH0KICAgaW50IFdhaXRDYWxscygpIGNvbnN0IHsg
cmV0dXJuIHdhaXRfY2FsbHNfOyB9CiAgIHNpemVfdCBQYXNzZWRDYWxscygpIGNvbnN0IHsgcmV0
dXJuIHBhc3NlZF9hcmdzXy5zaXplKCk7IH0KLSAgYm9vbCBQYXNzZWRBcmd1bWVudChpbnQgbikg
Y29uc3QgeyByZXR1cm4gcGFzc2VkX2FyZ3NfW25dOyB9CisgIGJvb2wgUGFzc2VkQXJndW1lbnQo
aW50IG4pIGNvbnN0IHsKKyAgICByZXR1cm4gcGFzc2VkX2FyZ3NfW3N0YXRpY19jYXN0PHNpemVf
dD4obildOworICB9CiAgIHNpemVfdCBBYm9ydENhbGxzKCkgY29uc3QgeyByZXR1cm4gYWJvcnRf
YXJnc18uc2l6ZSgpOyB9CiAgIERlYXRoVGVzdDo6QWJvcnRSZWFzb24gQWJvcnRBcmd1bWVudChp
bnQgbikgY29uc3QgewotICAgIHJldHVybiBhYm9ydF9hcmdzX1tuXTsKKyAgICByZXR1cm4gYWJv
cnRfYXJnc19bc3RhdGljX2Nhc3Q8c2l6ZV90PihuKV07CiAgIH0KICAgYm9vbCBUZXN0RGVsZXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIHRlc3RfZGVsZXRlZF87IH0KIApAQCAtOTMzLDIyICs5OTksMjAg
QEAgY2xhc3MgTW9ja0RlYXRoVGVzdCA6IHB1YmxpYyBEZWF0aFRlc3QgewogICAgICAgICAgICAg
ICAgIFRlc3RSb2xlIHJvbGUsIGludCBzdGF0dXMsIGJvb2wgcGFzc2VkKSA6CiAgICAgICBwYXJl
bnRfKHBhcmVudCksIHJvbGVfKHJvbGUpLCBzdGF0dXNfKHN0YXR1cyksIHBhc3NlZF8ocGFzc2Vk
KSB7CiAgIH0KLSAgdmlydHVhbCB+TW9ja0RlYXRoVGVzdCgpIHsKLSAgICBwYXJlbnRfLT50ZXN0
X2RlbGV0ZWRfID0gdHJ1ZTsKLSAgfQotICB2aXJ0dWFsIFRlc3RSb2xlIEFzc3VtZVJvbGUoKSB7
CisgIH5Nb2NrRGVhdGhUZXN0KCkgb3ZlcnJpZGUgeyBwYXJlbnRfLT50ZXN0X2RlbGV0ZWRfID0g
dHJ1ZTsgfQorICBUZXN0Um9sZSBBc3N1bWVSb2xlKCkgb3ZlcnJpZGUgewogICAgICsrcGFyZW50
Xy0+YXNzdW1lX3JvbGVfY2FsbHNfOwogICAgIHJldHVybiByb2xlXzsKICAgfQotICB2aXJ0dWFs
IGludCBXYWl0KCkgeworICBpbnQgV2FpdCgpIG92ZXJyaWRlIHsKICAgICArK3BhcmVudF8tPndh
aXRfY2FsbHNfOwogICAgIHJldHVybiBzdGF0dXNfOwogICB9Ci0gIHZpcnR1YWwgYm9vbCBQYXNz
ZWQoYm9vbCBleGl0X3N0YXR1c19vaykgeworICBib29sIFBhc3NlZChib29sIGV4aXRfc3RhdHVz
X29rKSBvdmVycmlkZSB7CiAgICAgcGFyZW50Xy0+cGFzc2VkX2FyZ3NfLnB1c2hfYmFjayhleGl0
X3N0YXR1c19vayk7CiAgICAgcmV0dXJuIHBhc3NlZF87CiAgIH0KLSAgdmlydHVhbCB2b2lkIEFi
b3J0KEFib3J0UmVhc29uIHJlYXNvbikgeworICB2b2lkIEFib3J0KEFib3J0UmVhc29uIHJlYXNv
bikgb3ZlcnJpZGUgewogICAgIHBhcmVudF8tPmFib3J0X2FyZ3NfLnB1c2hfYmFjayhyZWFzb24p
OwogICB9CiAKQEAgLTk5MiwxNiArMTA1NiwxNCBAQCB2b2lkIE1vY2tEZWF0aFRlc3RGYWN0b3J5
OjpTZXRQYXJhbWV0ZXJzKGJvb2wgY3JlYXRlLAogLy8gU2V0cyB0ZXN0IHRvIE5VTEwgKGlmIGNy
ZWF0ZV8gaXMgZmFsc2UpIG9yIHRvIHRoZSBhZGRyZXNzIG9mIGEgbmV3CiAvLyBNb2NrRGVhdGhU
ZXN0IG9iamVjdCB3aXRoIHBhcmFtZXRlcnMgdGFrZW4gZnJvbSB0aGUgbGFzdCBjYWxsCiAvLyB0
byBTZXRQYXJhbWV0ZXJzIChpZiBjcmVhdGVfIGlzIHRydWUpLiAgQWx3YXlzIHJldHVybnMgdHJ1
ZS4KLWJvb2wgTW9ja0RlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZShjb25zdCBjaGFyKiAvKnN0YXRl
bWVudCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IDo6dGVzdGlu
Zzo6aW50ZXJuYWw6OlJFKiAvKnJlZ2V4Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogLypmaWxlKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IC8qbGluZSovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl
YXRoVGVzdCoqIHRlc3QpIHsKK2Jvb2wgTW9ja0RlYXRoVGVzdEZhY3Rvcnk6OkNyZWF0ZSgKKyAg
ICBjb25zdCBjaGFyKiAvKnN0YXRlbWVudCovLCB0ZXN0aW5nOjpNYXRjaGVyPGNvbnN0IHN0ZDo6
c3RyaW5nJj4gLyptYXRjaGVyKi8sCisgICAgY29uc3QgY2hhciogLypmaWxlKi8sIGludCAvKmxp
bmUqLywgRGVhdGhUZXN0KiogdGVzdCkgewogICB0ZXN0X2RlbGV0ZWRfID0gZmFsc2U7CiAgIGlm
IChjcmVhdGVfKSB7CiAgICAgKnRlc3QgPSBuZXcgTW9ja0RlYXRoVGVzdCh0aGlzLCByb2xlXywg
c3RhdHVzXywgcGFzc2VkXyk7CiAgIH0gZWxzZSB7Ci0gICAgKnRlc3QgPSBOVUxMOworICAgICp0
ZXN0ID0gbnVsbHB0cjsKICAgfQogICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEwMTQsMTYgKzEwNzYs
MTYgQEAgY2xhc3MgTWFjcm9Mb2dpY0RlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
ICAgc3RhdGljIHRlc3Rpbmc6OmludGVybmFsOjpSZXBsYWNlRGVhdGhUZXN0RmFjdG9yeSogcmVw
bGFjZXJfOwogICBzdGF0aWMgTW9ja0RlYXRoVGVzdEZhY3RvcnkqIGZhY3RvcnlfOwogCi0gIHN0
YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRl
KCkgewogICAgIGZhY3RvcnlfID0gbmV3IE1vY2tEZWF0aFRlc3RGYWN0b3J5OwogICAgIHJlcGxh
Y2VyXyA9IG5ldyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVwbGFjZURlYXRoVGVzdEZhY3RvcnkoZmFj
dG9yeV8pOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3Rh
dGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgZGVsZXRlIHJlcGxhY2VyXzsKLSAg
ICByZXBsYWNlcl8gPSBOVUxMOworICAgIHJlcGxhY2VyXyA9IG51bGxwdHI7CiAgICAgZGVsZXRl
IGZhY3RvcnlfOwotICAgIGZhY3RvcnlfID0gTlVMTDsKKyAgICBmYWN0b3J5XyA9IG51bGxwdHI7
CiAgIH0KIAogICAvLyBSdW5zIGEgZGVhdGggdGVzdCB0aGF0IGJyZWFrcyB0aGUgcnVsZXMgYnkg
cmV0dXJuaW5nLiAgU3VjaCBhIGRlYXRoCkBAIC0xMDM3LDEwICsxMDk5LDkgQEAgY2xhc3MgTWFj
cm9Mb2dpY0RlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICAgfQogfTsKIAotdGVz
dGluZzo6aW50ZXJuYWw6OlJlcGxhY2VEZWF0aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2ljRGVhdGhU
ZXN0OjpyZXBsYWNlcl8KLSAgICA9IE5VTEw7Ci1Nb2NrRGVhdGhUZXN0RmFjdG9yeSogTWFjcm9M
b2dpY0RlYXRoVGVzdDo6ZmFjdG9yeV8gPSBOVUxMOwotCit0ZXN0aW5nOjppbnRlcm5hbDo6UmVw
bGFjZURlYXRoVGVzdEZhY3RvcnkqIE1hY3JvTG9naWNEZWF0aFRlc3Q6OnJlcGxhY2VyXyA9Cisg
ICAgbnVsbHB0cjsKK01vY2tEZWF0aFRlc3RGYWN0b3J5KiBNYWNyb0xvZ2ljRGVhdGhUZXN0Ojpm
YWN0b3J5XyA9IG51bGxwdHI7CiAKIC8vIFRlc3QgdGhhdCBub3RoaW5nIGhhcHBlbnMgd2hlbiB0
aGUgZmFjdG9yeSBkb2Vzbid0IHJldHVybiBhIERlYXRoVGVzdDoKIFRFU1RfRihNYWNyb0xvZ2lj
RGVhdGhUZXN0LCBOb3RoaW5nSGFwcGVucykgewpAQCAtMTI3OSw5ICsxMzQwLDYgQEAgVEVTVChQ
YXJzZU5hdHVyYWxOdW1iZXJUZXN0LCBXb3Jrc0ZvclNob3J0ZXJJbnRlZ2VycykgewogCiAjIGlm
IEdURVNUX09TX1dJTkRPV1MKIFRFU1QoRW52aXJvbm1lbnRUZXN0LCBIYW5kbGVGaXRzSW50b1Np
emVUKSB7Ci0gIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB0ZXN0IGFmdGVyIHRoaXMgY29uZGl0aW9u
IGlzIHZlcmlmaWVkCi0gIC8vIGluIGEgc3RhdGljIGFzc2VydGlvbiBpbiBndGVzdC1kZWF0aC10
ZXN0LmNjIGluIHRoZSBmdW5jdGlvbgotICAvLyBHZXRTdGF0dXNGaWxlRGVzY3JpcHRvci4KICAg
QVNTRVJUX1RSVUUoc2l6ZW9mKEhBTkRMRSkgPD0gc2l6ZW9mKHNpemVfdCkpOwogfQogIyBlbmRp
ZiAgLy8gR1RFU1RfT1NfV0lORE9XUwpAQCAtMTMxOSw4ICsxMzc3LDUzIEBAIFRFU1QoSW5EZWF0
aFRlc3RDaGlsZERlYXRoVGVzdCwgUmVwb3J0c0RlYXRoVGVzdENvcnJlY3RseUluVGhyZWFkU2Fm
ZVN0eWxlKSB7CiAgIH0sICJJbnNpZGUiKTsKIH0KIAordm9pZCBEaWVXaXRoTWVzc2FnZShjb25z
dCBjaGFyKiBtZXNzYWdlKSB7CisgIGZwdXRzKG1lc3NhZ2UsIHN0ZGVycik7CisgIGZmbHVzaChz
dGRlcnIpOyAgLy8gTWFrZSBzdXJlIHRoZSB0ZXh0IGlzIHByaW50ZWQgYmVmb3JlIHRoZSBwcm9j
ZXNzIGV4aXRzLgorICBfZXhpdCgxKTsKK30KKworVEVTVChNYXRjaGVyRGVhdGhUZXN0LCBEb2Vz
Tm90QnJlYWtCYXJlUmVnZXhNYXRjaGluZykgeworICAvLyBnb29nbGV0ZXN0IHRlc3RzIHRoaXMs
IG9mIGNvdXJzZTsgaGVyZSB3ZSBlbnN1cmUgdGhhdCBpbmNsdWRpbmcgZ29vZ2xlbW9jaworICAv
LyBoYXMgbm90IGJyb2tlbiBpdC4KKyNpZiBHVEVTVF9VU0VTX1BPU0lYX1JFCisgIEVYUEVDVF9E
RUFUSChEaWVXaXRoTWVzc2FnZSgiTywgSSBkaWUsIEhvcmF0aW8uIiksICJJIGRbYWVpb3VdZSIp
OworI2Vsc2UKKyAgRVhQRUNUX0RFQVRIKERpZVdpdGhNZXNzYWdlKCJPLCBJIGRpZSwgSG9yYXRp
by4iKSwgIkkgZGk/ZSIpOworI2VuZGlmCit9CisKK1RFU1QoTWF0Y2hlckRlYXRoVGVzdCwgTW9u
b21vcnBoaWNNYXRjaGVyTWF0Y2hlcykgeworICBFWFBFQ1RfREVBVEgoRGllV2l0aE1lc3NhZ2Uo
IkJlaGluZCBPLCBJIGFtIHNsYWluISIpLAorICAgICAgICAgICAgICAgTWF0Y2hlcjxjb25zdCBz
dGQ6OnN0cmluZyY+KENvbnRhaW5zUmVnZXgoIkkgYW0gc2xhaW4iKSkpOworfQorCitURVNUKE1h
dGNoZXJEZWF0aFRlc3QsIE1vbm9tb3JwaGljTWF0Y2hlckRvZXNOb3RNYXRjaCkgeworICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRSgKKyAgICAgIEVYUEVDVF9ERUFUSCgKKyAgICAgICAgICBEaWVX
aXRoTWVzc2FnZSgiQmVoaW5kIE8sIEkgYW0gc2xhaW4hIiksCisgICAgICAgICAgTWF0Y2hlcjxj
b25zdCBzdGQ6OnN0cmluZyY+KENvbnRhaW5zUmVnZXgoIk93LCBJIGFtIHNsYWluIikpKSwKKyAg
ICAgICJFeHBlY3RlZDogY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIFwiT3csIEkgYW0gc2xh
aW5cIiIpOworfQorCitURVNUKE1hdGNoZXJEZWF0aFRlc3QsIFBvbHltb3JwaGljTWF0Y2hlck1h
dGNoZXMpIHsKKyAgRVhQRUNUX0RFQVRIKERpZVdpdGhNZXNzYWdlKCJUaGUgcmVzdCBpcyBzaWxl
bmNlLiIpLAorICAgICAgICAgICAgICAgQ29udGFpbnNSZWdleCgicmVzdCBpcyBzaWxlbmNlIikp
OworfQorCitURVNUKE1hdGNoZXJEZWF0aFRlc3QsIFBvbHltb3JwaGljTWF0Y2hlckRvZXNOb3RN
YXRjaCkgeworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSgKKyAgICAgIEVYUEVDVF9ERUFUSChE
aWVXaXRoTWVzc2FnZSgiVGhlIHJlc3QgaXMgc2lsZW5jZS4iKSwKKyAgICAgICAgICAgICAgICAg
ICBDb250YWluc1JlZ2V4KCJyZXN0IGlzIHNjaWVuY2UiKSksCisgICAgICAiRXhwZWN0ZWQ6IGNv
bnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBcInJlc3QgaXMgc2NpZW5jZVwiIik7Cit9CisKK30g
IC8vIG5hbWVzcGFjZQorCiAjZWxzZSAgLy8gIUdURVNUX0hBU19ERUFUSF9URVNUIGZvbGxvd3MK
IAorbmFtZXNwYWNlIHsKKwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNhcHR1cmVTdGRlcnI7
CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6R2V0Q2FwdHVyZWRTdGRlcnI7CiAKQEAgLTEzNjks
OCArMTQ3MiwxOSBAQCBURVNUKENvbmRpdGlvbmFsRGVhdGhNYWNyb3NUZXN0LCBBc3NlcnREZWF0
RG9lc05vdFJldHVybmhJZlVuc3VwcG9ydGVkKSB7CiAgIEVYUEVDVF9FUSgxLCBuKTsKIH0KIAor
fSAgLy8gbmFtZXNwYWNlCisKICNlbmRpZiAgLy8gIUdURVNUX0hBU19ERUFUSF9URVNUCiAKK25h
bWVzcGFjZSB7CisKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRpb25hbGx5IHRlc3RzIGEg
c3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RhbmdsaW5nLWVsc2Ui
CisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1wdHktYm9keSIKKyNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2VuZGlmCiAvLyBUZXN0cyB0aGF0
IHRoZSBkZWF0aCB0ZXN0IG1hY3JvcyBleHBhbmQgdG8gY29kZSB3aGljaCBtYXkgb3IgbWF5IG5v
dAogLy8gYmUgZm9sbG93ZWQgYnkgb3BlcmF0b3I8PCwgYW5kIHRoYXQgaW4gZWl0aGVyIGNhc2Ug
dGhlIGNvbXBsZXRlIHRleHQKIC8vIGNvbXByaXNlcyBvbmx5IGEgc2luZ2xlIEMrKyBzdGF0ZW1l
bnQuCkBAIC0xMzk2LDYgKzE1MTAsOSBAQCBURVNUKENvbmRpdGlvbmFsRGVhdGhNYWNyb3NTeW50
YXhEZWF0aFRlc3QsIFNpbmdsZVN0YXRlbWVudCkgewogICBlbHNlCiAgICAgRVhQRUNUX0RFQVRI
X0lGX1NVUFBPUlRFRChfZXhpdCgxKSwgIiIpIDw8IDEgPDwgMiA8PCAzOwogfQorI2lmZGVmIF9f
R05VQ19fCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAKIC8vIFRlc3RzIHRo
YXQgY29uZGl0aW9uYWwgZGVhdGggdGVzdCBtYWNyb3MgZXhwYW5kIHRvIGNvZGUgd2hpY2ggaW50
ZXJhY3RzCiAvLyB3ZWxsIHdpdGggc3dpdGNoIHN0YXRlbWVudHMuCkBAIC0xNDIxLDMgKzE1Mzgs
NSBAQCBURVNUKENvbmRpdGlvbmFsRGVhdGhNYWNyb3NTeW50YXhEZWF0aFRlc3QsIFN3aXRjaFN0
YXRlbWVudCkgewogVEVTVChOb3RBRGVhdGhUZXN0LCBUZXN0KSB7CiAgIFNVQ0NFRUQoKTsKIH0K
KworfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWRlYXRoLXRlc3RfZXhfdGVzdC5jYwppbmRleCBiOGI5NDcw
ZmM4OGFkMTdhYWViNjY0ZDQ3YzI3MGNmY2FhNzMxYmVmLi43MjE5NjgwZDA3NDk3Nzc3ODRmNjQ1
MTQ3YjUwMzk1ZGIwOWJhOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1kZWF0aC10ZXN0X2V4X3Rlc3QuY2MKQEAgLTU5LDcg
KzU5LDcgQEAgVEVTVChDeHhFeGNlcHRpb25EZWF0aFRlc3QsIEV4Y2VwdGlvbklzRmFpbHVyZSkg
ewogCiBjbGFzcyBUZXN0RXhjZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKICBwdWJs
aWM6Ci0gIHZpcnR1YWwgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IHRocm93KCkgeyByZXR1cm4g
ImV4Y2VwdGlvbmFsIG1lc3NhZ2UiOyB9CisgIGNvbnN0IGNoYXIqIHdoYXQoKSBjb25zdCBub2V4
Y2VwdCBvdmVycmlkZSB7IHJldHVybiAiZXhjZXB0aW9uYWwgbWVzc2FnZSI7IH0KIH07CiAKIFRF
U1QoQ3h4RXhjZXB0aW9uRGVhdGhUZXN0LCBQcmludHNNZXNzYWdlRm9yU3RkRXhjZXB0aW9ucykg
ewpAQCAtNjgsNyArNjgsNyBAQCBURVNUKEN4eEV4Y2VwdGlvbkRlYXRoVGVzdCwgUHJpbnRzTWVz
c2FnZUZvclN0ZEV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2Vw
dGlvbmFsIG1lc3NhZ2UiKTsKICAgLy8gVmVyaWZpZXMgdGhhdCB0aGUgbG9jYXRpb24gaXMgbWVu
dGlvbmVkIGluIHRoZSBmYWlsdXJlIHRleHQuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9ERUFUSCh0aHJvdyBUZXN0RXhjZXB0aW9uKCksICIiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgImdvb2dsZXRlc3QtZGVhdGgtdGVzdF9leF90ZXN0LmNjIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fRklMRV9fKTsKIH0KICMgZW5kaWYgIC8vIEdURVNUX0hBU19FWENF
UFRJT05TCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1lbnYtdmFyLXRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtZW52LXZhci10ZXN0LnB5CmluZGV4IGUxZWZlZWUxZWFiOGM2ZGFjYjVkMjkyNmY0YjVj
OTA4MDkzOGRiMTMuLjAyYzM2NTVjMzk4MjY4OTY1YTI4NTE2MjM1MjMxNzUyMTliYWM1NmMgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFy
LXRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWVu
di12YXItdGVzdC5weQpAQCAtNDUsOCArNDUsOCBAQCBlbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5
KCkKIAogZGVmIEFzc2VydEVxKGV4cGVjdGVkLCBhY3R1YWwpOgogICBpZiBleHBlY3RlZCAhPSBh
Y3R1YWw6Ci0gICAgcHJpbnQgJ0V4cGVjdGVkOiAlcycgJSAoZXhwZWN0ZWQsKQotICAgIHByaW50
ICcgIEFjdHVhbDogJXMnICUgKGFjdHVhbCwpCisgICAgcHJpbnQoJ0V4cGVjdGVkOiAlcycgJSAo
ZXhwZWN0ZWQsKSkKKyAgICBwcmludCgnICBBY3R1YWw6ICVzJyAlIChhY3R1YWwsKSkKICAgICBy
YWlzZSBBc3NlcnRpb25FcnJvcgogCiAKQEAgLTg1LDkgKzg1LDEyIEBAIGNsYXNzIEdUZXN0RW52
VmFyVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKIAogICAgIFRlc3RGbGFnKCdicmVh
a19vbl9mYWlsdXJlJywgJzEnLCAnMCcpCiAgICAgVGVzdEZsYWcoJ2NvbG9yJywgJ3llcycsICdh
dXRvJykKKyAgICBTZXRFbnZWYXIoJ1RFU1RCUklER0VfVEVTVF9SVU5ORVJfRkFJTF9GQVNUJywg
Tm9uZSkgICMgRm9yICdmYWlsX2Zhc3QnIHRlc3QKKyAgICBUZXN0RmxhZygnZmFpbF9mYXN0Jywg
JzEnLCAnMCcpCiAgICAgVGVzdEZsYWcoJ2ZpbHRlcicsICdGb29UZXN0LkJhcicsICcqJykKICAg
ICBTZXRFbnZWYXIoJ1hNTF9PVVRQVVRfRklMRScsIE5vbmUpICAjIEZvciAnb3V0cHV0JyB0ZXN0
CiAgICAgVGVzdEZsYWcoJ291dHB1dCcsICd4bWw6dG1wL2Zvby54bWwnLCAnJykKKyAgICBUZXN0
RmxhZygnYnJpZWYnLCAnMScsICcwJykKICAgICBUZXN0RmxhZygncHJpbnRfdGltZScsICcwJywg
JzEnKQogICAgIFRlc3RGbGFnKCdyZXBlYXQnLCAnOTk5JywgJzEnKQogICAgIFRlc3RGbGFnKCd0
aHJvd19vbl9mYWlsdXJlJywgJzEnLCAnMCcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZW52LXZhci10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjCmluZGV4IGZkMmFhODJm
NzRmYWEyMTIwMWU3OWFlMGU1YzNiNTY4NTUzZGYzMzcuLjUyZjk1ODY0ZTFlNWZmNGJkOGYxYzdl
OTllMTUzMTA2OTQxODE3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1lbnYtdmFyLXRlc3RfLmNjCkBAIC03Miw2ICs3MiwxMSBAQCB2
b2lkIFByaW50RmxhZyhjb25zdCBjaGFyKiBmbGFnKSB7CiAgICAgcmV0dXJuOwogICB9CiAKKyAg
aWYgKHN0cmNtcChmbGFnLCAiZmFpbF9mYXN0IikgPT0gMCkgeworICAgIGNvdXQgPDwgR1RFU1Rf
RkxBRyhmYWlsX2Zhc3QpOworICAgIHJldHVybjsKKyAgfQorCiAgIGlmIChzdHJjbXAoZmxhZywg
ImZpbHRlciIpID09IDApIHsKICAgICBjb3V0IDw8IEdURVNUX0ZMQUcoZmlsdGVyKTsKICAgICBy
ZXR1cm47CkBAIC04Miw2ICs4NywxMSBAQCB2b2lkIFByaW50RmxhZyhjb25zdCBjaGFyKiBmbGFn
KSB7CiAgICAgcmV0dXJuOwogICB9CiAKKyAgaWYgKHN0cmNtcChmbGFnLCAiYnJpZWYiKSA9PSAw
KSB7CisgICAgY291dCA8PCBHVEVTVF9GTEFHKGJyaWVmKTsKKyAgICByZXR1cm47CisgIH0KKwog
ICBpZiAoc3RyY21wKGZsYWcsICJwcmludF90aW1lIikgPT0gMCkgewogICAgIGNvdXQgPDwgR1RF
U1RfRkxBRyhwcmludF90aW1lKTsKICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3QucHkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2FlYjJkZmZlYWU0MmZjMDMzOGExZWRhOTljZDRkNDM1Yjc5YTdiMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1m
YWlsZmFzdC11bml0dGVzdC5weQpAQCAtMCwwICsxLDQxMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjCisjIENvcHlyaWdodCAyMDIwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0IGZhaWxf
ZmFzdC4KKworQSB1c2VyIGNhbiBzcGVjaWZ5IGlmIGEgR29vZ2xlIFRlc3QgcHJvZ3JhbSBzaG91
bGQgY29udGludWUgdGVzdCBleGVjdXRpb24KK2FmdGVyIGEgdGVzdCBmYWlsdXJlIHZpYSB0aGUg
R1RFU1RfRkFJTF9GQVNUIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZQorLS1ndGVzdF9mYWls
X2Zhc3QgZmxhZy4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGZsYWcgY2FuIGFsc28gYmUgY2hh
bmdlZAorYnkgQmF6ZWwgZmFpbCBmYXN0IGVudmlyb25tZW50IHZhcmlhYmxlIFRFU1RCUklER0Vf
VEVTVF9SVU5ORVJfRkFJTF9GQVNULgorCitUaGlzIHNjcmlwdCB0ZXN0cyBzdWNoIGZ1bmN0aW9u
YWxpdHkgYnkgaW52b2tpbmcgZ29vZ2xldGVzdC1mYWlsZmFzdC11bml0dGVzdF8KKyhhIHByb2dy
YW0gd3JpdHRlbiB3aXRoIEdvb2dsZSBUZXN0KSB3aXRoIGRpZmZlcmVudCBlbnZpcm9ubWVudHMg
YW5kIGNvbW1hbmQKK2xpbmUgZmxhZ3MuCisiIiIKKworaW1wb3J0IG9zCitpbXBvcnQgZ3Rlc3Rf
dGVzdF91dGlscworCisjIENvbnN0YW50cy4KKworIyBCYXplbCB0ZXN0YnJpZGdlIGVudmlyb25t
ZW50IHZhcmlhYmxlIGZvciBmYWlsIGZhc3QKK0JBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSID0gJ1RF
U1RCUklER0VfVEVTVF9SVU5ORVJfRkFJTF9GQVNUJworCisjIFRoZSBlbnZpcm9ubWVudCB2YXJp
YWJsZSBmb3Igc3BlY2lmeWluZyBmYWlsIGZhc3QuCitGQUlMX0ZBU1RfRU5WX1ZBUiA9ICdHVEVT
VF9GQUlMX0ZBU1QnCisKKyMgVGhlIGNvbW1hbmQgbGluZSBmbGFnIGZvciBzcGVjaWZ5aW5nIGZh
aWwgZmFzdC4KK0ZBSUxfRkFTVF9GTEFHID0gJ2d0ZXN0X2ZhaWxfZmFzdCcKKworIyBUaGUgY29t
bWFuZCBsaW5lIGZsYWcgdG8gcnVuIGRpc2FibGVkIHRlc3RzLgorUlVOX0RJU0FCTEVEX0ZMQUcg
PSAnZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMnCisKKyMgVGhlIGNvbW1hbmQgbGluZSBm
bGFnIGZvciBzcGVjaWZ5aW5nIGEgZmlsdGVyLgorRklMVEVSX0ZMQUcgPSAnZ3Rlc3RfZmlsdGVy
JworCisjIENvbW1hbmQgdG8gcnVuIHRoZSBnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XyBw
cm9ncmFtLgorQ09NTUFORCA9IGd0ZXN0X3Rlc3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRo
KAorICAgICdnb29nbGV0ZXN0LWZhaWxmYXN0LXVuaXR0ZXN0XycpCisKKyMgVGhlIGNvbW1hbmQg
bGluZSBmbGFnIHRvIHRlbGwgR29vZ2xlIFRlc3QgdG8gb3V0cHV0IHRoZSBsaXN0IG9mIHRlc3Rz
IGl0CisjIHdpbGwgcnVuLgorTElTVF9URVNUU19GTEFHID0gJy0tZ3Rlc3RfbGlzdF90ZXN0cycK
KworIyBJbmRpY2F0ZXMgd2hldGhlciBHb29nbGUgVGVzdCBzdXBwb3J0cyBkZWF0aCB0ZXN0cy4K
K1NVUFBPUlRTX0RFQVRIX1RFU1RTID0gJ0hhc0RlYXRoVGVzdCcgaW4gZ3Rlc3RfdGVzdF91dGls
cy5TdWJwcm9jZXNzKAorICAgIFtDT01NQU5ELCBMSVNUX1RFU1RTX0ZMQUddKS5vdXRwdXQKKwor
IyBVdGlsaXRpZXMuCisKK2Vudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQorCisKK2RlZiBTZXRF
bnZWYXIoZW52X3ZhciwgdmFsdWUpOgorICAiIiJTZXRzIHRoZSBlbnYgdmFyaWFibGUgdG8gJ3Zh
bHVlJzsgdW5zZXRzIGl0IHdoZW4gJ3ZhbHVlJyBpcyBOb25lLiIiIgorCisgIGlmIHZhbHVlIGlz
IG5vdCBOb25lOgorICAgIGVudmlyb25bZW52X3Zhcl0gPSB2YWx1ZQorICBlbGlmIGVudl92YXIg
aW4gZW52aXJvbjoKKyAgICBkZWwgZW52aXJvbltlbnZfdmFyXQorCisKK2RlZiBSdW5BbmRSZXR1
cm5PdXRwdXQodGVzdF9zdWl0ZT1Ob25lLCBmYWlsX2Zhc3Q9Tm9uZSwgcnVuX2Rpc2FibGVkPUZh
bHNlKToKKyAgIiIiUnVucyB0aGUgdGVzdCBwcm9ncmFtIGFuZCByZXR1cm5zIGl0cyBvdXRwdXQu
IiIiCisKKyAgYXJncyA9IFtdCisgIHhtbF9wYXRoID0gb3MucGF0aC5qb2luKGd0ZXN0X3Rlc3Rf
dXRpbHMuR2V0VGVtcERpcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnLkdUZXN0RmFp
bEZhc3RVbml0VGVzdC54bWwnKQorICBhcmdzICs9IFsnLS1ndGVzdF9vdXRwdXQ9eG1sOicgKyB4
bWxfcGF0aF0KKyAgaWYgZmFpbF9mYXN0IGlzIG5vdCBOb25lOgorICAgIGlmIGlzaW5zdGFuY2Uo
ZmFpbF9mYXN0LCBzdHIpOgorICAgICAgYXJncyArPSBbJy0tJXM9JXMnICUgKEZBSUxfRkFTVF9G
TEFHLCBmYWlsX2Zhc3QpXQorICAgIGVsaWYgZmFpbF9mYXN0OgorICAgICAgYXJncyArPSBbJy0t
JXMnICUgRkFJTF9GQVNUX0ZMQUddCisgICAgZWxzZToKKyAgICAgIGFyZ3MgKz0gWyctLW5vJXMn
ICUgRkFJTF9GQVNUX0ZMQUddCisgIGlmIHRlc3Rfc3VpdGU6CisgICAgYXJncyArPSBbJy0tJXM9
JXMuKicgJSAoRklMVEVSX0ZMQUcsIHRlc3Rfc3VpdGUpXQorICBpZiBydW5fZGlzYWJsZWQ6Cisg
ICAgYXJncyArPSBbJy0tJXMnICUgUlVOX0RJU0FCTEVEX0ZMQUddCisgIHR4dF9vdXQgPSBndGVz
dF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoW0NPTU1BTkRdICsgYXJncywgZW52PWVudmlyb24pLm91
dHB1dAorICB3aXRoIG9wZW4oeG1sX3BhdGgpIGFzIHhtbF9maWxlOgorICAgIHJldHVybiB0eHRf
b3V0LCB4bWxfZmlsZS5yZWFkKCkKKworCisjIFRoZSB1bml0IHRlc3QuCitjbGFzcyBHVGVzdEZh
aWxGYXN0VW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CisgICIiIlRlc3RzIHRo
ZSBlbnYgdmFyaWFibGUgb3IgdGhlIGNvbW1hbmQgbGluZSBmbGFnIGZvciBmYWlsX2Zhc3QuIiIi
CisKKyAgZGVmIHRlc3REZWZhdWx0QmVoYXZpb3Ioc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIG5vdCBzcGVjaWZ5aW5nIHRoZSBmYWlsX2Zhc3QuIiIiCisKKyAgICB0eHQsIF8g
PSBSdW5BbmRSZXR1cm5PdXRwdXQoKQorICAgIHNlbGYuYXNzZXJ0SW4oJzIyIEZBSUxFRCBURVNU
JywgdHh0KQorCisgIGRlZiB0ZXN0R29vZ2xldGVzdEZsYWcoc2VsZik6CisgICAgdHh0LCBfID0g
UnVuQW5kUmV0dXJuT3V0cHV0KHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLCBmYWlsX2Zhc3Q9
VHJ1ZSkKKyAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywgdHh0KQorICAgIHNlbGYu
YXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRlc3RzJywgdHh0KQorCisgICAgdHh0LCBfID0gUnVu
QW5kUmV0dXJuT3V0cHV0KHRlc3Rfc3VpdGU9J0hhc1NpbXBsZVRlc3QnLCBmYWlsX2Zhc3Q9RmFs
c2UpCisgICAgc2VsZi5hc3NlcnRJbignNCBGQUlMRUQgVEVTVCcsIHR4dCkKKyAgICBzZWxmLmFz
c2VydE5vdEluKCdbICBTS0lQUEVEIF0nLCB0eHQpCisKKyAgZGVmIHRlc3RHb29nbGV0ZXN0RW52
VmFyKHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzcGVjaWZ5aW5nIGZhaWxf
ZmFzdCB2aWEgR29vZ2xldGVzdCBlbnYgdmFyLiIiIgorCisgICAgdHJ5OgorICAgICAgU2V0RW52
VmFyKEZBSUxfRkFTVF9FTlZfVkFSLCAnMScpCisgICAgICB0eHQsIF8gPSBSdW5BbmRSZXR1cm5P
dXRwdXQoJ0hhc1NpbXBsZVRlc3QnKQorICAgICAgc2VsZi5hc3NlcnRJbignMSBGQUlMRUQgVEVT
VCcsIHR4dCkKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQgXSAzIHRlc3RzJywgdHh0
KQorCisgICAgICBTZXRFbnZWYXIoRkFJTF9GQVNUX0VOVl9WQVIsICcwJykKKyAgICAgIHR4dCwg
XyA9IFJ1bkFuZFJldHVybk91dHB1dCgnSGFzU2ltcGxlVGVzdCcpCisgICAgICBzZWxmLmFzc2Vy
dEluKCc0IEZBSUxFRCBURVNUJywgdHh0KQorICAgICAgc2VsZi5hc3NlcnROb3RJbignWyAgU0tJ
UFBFRCBdJywgdHh0KQorICAgIGZpbmFsbHk6CisgICAgICBTZXRFbnZWYXIoRkFJTF9GQVNUX0VO
Vl9WQVIsIE5vbmUpCisKKyAgZGVmIHRlc3RCYXplbEVudlZhcihzZWxmKToKKyAgICAiIiJUZXN0
cyB0aGUgYmVoYXZpb3Igb2Ygc3BlY2lmeWluZyBmYWlsX2Zhc3QgdmlhIEJhemVsIHRlc3Ricmlk
Z2UuIiIiCisKKyAgICB0cnk6CisgICAgICBTZXRFbnZWYXIoQkFaRUxfRkFJTF9GQVNUX0VOVl9W
QVIsICcxJykKKyAgICAgIHR4dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1dCgnSGFzU2ltcGxlVGVz
dCcpCisgICAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywgdHh0KQorICAgICAgc2Vs
Zi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisKKyAgICAgIFNldEVudlZh
cihCQVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwgJzAnKQorICAgICAgdHh0LCBfID0gUnVuQW5kUmV0
dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JykKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJzQgRkFJTEVE
IFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydE5vdEluKCdbICBTS0lQUEVEIF0nLCB0eHQp
CisgICAgZmluYWxseToKKyAgICAgIFNldEVudlZhcihCQVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwg
Tm9uZSkKKworICBkZWYgdGVzdEZsYWdPdmVycmlkZXNFbnZWYXIoc2VsZik6CisgICAgIiIiVGVz
dHMgcHJlY2VkZW5jZSBvZiBmbGFnIG92ZXIgZW52IHZhci4iIiIKKworICAgIHRyeToKKyAgICAg
IFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgJzAnKQorICAgICAgdHh0LCBfID0gUnVuQW5k
UmV0dXJuT3V0cHV0KCdIYXNTaW1wbGVUZXN0JywgVHJ1ZSkKKyAgICAgIHNlbGYuYXNzZXJ0SW4o
JzEgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAgICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0g
MyB0ZXN0cycsIHR4dCkKKyAgICBmaW5hbGx5OgorICAgICAgU2V0RW52VmFyKEZBSUxfRkFTVF9F
TlZfVkFSLCBOb25lKQorCisgIGRlZiB0ZXN0R29vZ2xldGVzdEVudlZhck92ZXJyaWRlc0JhemVs
RW52VmFyKHNlbGYpOgorICAgICIiIlRlc3RzIHRoYXQgdGhlIEdvb2dsZXRlc3QgbmF0aXZlIGVu
diB2YXIgb3ZlciBCYXplbCB0ZXN0YnJpZGdlLiIiIgorCisgICAgdHJ5OgorICAgICAgU2V0RW52
VmFyKEJBWkVMX0ZBSUxfRkFTVF9FTlZfVkFSLCAnMCcpCisgICAgICBTZXRFbnZWYXIoRkFJTF9G
QVNUX0VOVl9WQVIsICcxJykKKyAgICAgIHR4dCwgXyA9IFJ1bkFuZFJldHVybk91dHB1dCgnSGFz
U2ltcGxlVGVzdCcpCisgICAgICBzZWxmLmFzc2VydEluKCcxIEZBSUxFRCBURVNUJywgdHh0KQor
ICAgICAgc2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDMgdGVzdHMnLCB0eHQpCisgICAgZmlu
YWxseToKKyAgICAgIFNldEVudlZhcihGQUlMX0ZBU1RfRU5WX1ZBUiwgTm9uZSkKKyAgICAgIFNl
dEVudlZhcihCQVpFTF9GQUlMX0ZBU1RfRU5WX1ZBUiwgTm9uZSkKKworICBkZWYgdGVzdEV2ZW50
TGlzdGVuZXIoc2VsZik6CisgICAgdHh0LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KHRlc3Rfc3Vp
dGU9J0hhc1NraXBUZXN0JywgZmFpbF9mYXN0PVRydWUpCisgICAgc2VsZi5hc3NlcnRJbignMSBG
QUlMRUQgVEVTVCcsIHR4dCkKKyAgICBzZWxmLmFzc2VydEluKCdbICBTS0lQUEVEIF0gMyB0ZXN0
cycsIHR4dCkKKyAgICBmb3IgZXhwZWN0ZWRfY291bnQsIGNhbGxiYWNrIGluIFsoMSwgJ09uVGVz
dFN1aXRlU3RhcnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwg
J09uVGVzdFN0YXJ0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDUs
ICdPblRlc3RFbmQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwg
J09uVGVzdFBhcnRSZXN1bHQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoMSwgJ09uVGVzdFN1aXRlRW5kJyldOgorICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAg
ICAgICBleHBlY3RlZF9jb3VudCwgdHh0LmNvdW50KGNhbGxiYWNrKSwKKyAgICAgICAgICAnRXhw
ZWN0ZWQgJWQgY2FsbHMgdG8gY2FsbGJhY2sgJXMgbWF0Y2ggY291bnQgb24gb3V0cHV0OiAlcyAn
ICUKKyAgICAgICAgICAoZXhwZWN0ZWRfY291bnQsIGNhbGxiYWNrLCB0eHQpKQorCisgICAgdHh0
LCBfID0gUnVuQW5kUmV0dXJuT3V0cHV0KHRlc3Rfc3VpdGU9J0hhc1NraXBUZXN0JywgZmFpbF9m
YXN0PUZhbHNlKQorICAgIHNlbGYuYXNzZXJ0SW4oJzMgRkFJTEVEIFRFU1QnLCB0eHQpCisgICAg
c2VsZi5hc3NlcnRJbignWyAgU0tJUFBFRCBdIDEgdGVzdCcsIHR4dCkKKyAgICBmb3IgZXhwZWN0
ZWRfY291bnQsIGNhbGxiYWNrIGluIFsoMSwgJ09uVGVzdFN1aXRlU3RhcnQnKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09uVGVzdFN0YXJ0JyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDUsICdPblRlc3RFbmQnKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSwgJ09uVGVzdFBhcnRSZXN1bHQnKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgJ09uVGVzdFN1aXRlRW5kJyld
OgorICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICBleHBlY3RlZF9jb3VudCwgdHh0
LmNvdW50KGNhbGxiYWNrKSwKKyAgICAgICAgICAnRXhwZWN0ZWQgJWQgY2FsbHMgdG8gY2FsbGJh
Y2sgJXMgbWF0Y2ggY291bnQgb24gb3V0cHV0OiAlcyAnICUKKyAgICAgICAgICAoZXhwZWN0ZWRf
Y291bnQsIGNhbGxiYWNrLCB0eHQpKQorCisgIGRlZiBhc3NlcnRYbWxSZXN1bHRDb3VudChzZWxm
LCByZXN1bHQsIGNvdW50LCB4bWwpOgorICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgIGNv
dW50LCB4bWwuY291bnQoJ3Jlc3VsdD0iJXMiJyAlIHJlc3VsdCksCisgICAgICAgICdFeHBlY3Rl
ZCBcJ3Jlc3VsdD0iJXMiXCcgbWF0Y2ggY291bnQgb2YgJXM6ICVzICcgJQorICAgICAgICAocmVz
dWx0LCBjb3VudCwgeG1sKSkKKworICBkZWYgYXNzZXJ0WG1sU3RhdHVzQ291bnQoc2VsZiwgc3Rh
dHVzLCBjb3VudCwgeG1sKToKKyAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICBjb3VudCwg
eG1sLmNvdW50KCdzdGF0dXM9IiVzIicgJSBzdGF0dXMpLAorICAgICAgICAnRXhwZWN0ZWQgXCdz
dGF0dXM9IiVzIlwnIG1hdGNoIGNvdW50IG9mICVzOiAlcyAnICUKKyAgICAgICAgKHN0YXR1cywg
Y291bnQsIHhtbCkpCisKKyAgZGVmIGFzc2VydEZhaWxGYXN0WG1sQW5kVHh0T3V0cHV0KHNlbGYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsX2Zhc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmFpbHVyZV9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNraXBwZWRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdXBwcmVzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuX2Rpc2FibGVkPUZhbHNlKToKKyAgICAiIiJBc3NlcnQgWE1MIGFuZCB0ZXh0IG91dHB1
dCBvZiBhIHRlc3QgZXhlY3V0aW9uLiIiIgorCisgICAgdHh0LCB4bWwgPSBSdW5BbmRSZXR1cm5P
dXRwdXQodGVzdF9zdWl0ZSwgZmFpbF9mYXN0LCBydW5fZGlzYWJsZWQpCisgICAgaWYgZmFpbHVy
ZV9jb3VudCA+IDA6CisgICAgICBzZWxmLmFzc2VydEluKCclcyBGQUlMRUQgVEVTVCcgJSBmYWls
dXJlX2NvdW50LCB0eHQpCisgICAgaWYgc3VwcHJlc3NlZF9jb3VudCA+IDA6CisgICAgICBzZWxm
LmFzc2VydEluKCclcyBESVNBQkxFRCBURVNUJyAlIHN1cHByZXNzZWRfY291bnQsIHR4dCkKKyAg
ICBpZiBza2lwcGVkX2NvdW50ID4gMDoKKyAgICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFNLSVBQRUQg
XSAlcyB0ZXN0cycgJSBza2lwcGVkX2NvdW50LCB0eHQpCisgICAgc2VsZi5hc3NlcnRYbWxTdGF0
dXNDb3VudCgncnVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZF9jb3Vu
dCArIGZhaWx1cmVfY291bnQgKyBza2lwcGVkX2NvdW50LCB4bWwpCisgICAgc2VsZi5hc3NlcnRY
bWxTdGF0dXNDb3VudCgnbm90cnVuJywgc3VwcHJlc3NlZF9jb3VudCwgeG1sKQorICAgIHNlbGYu
YXNzZXJ0WG1sUmVzdWx0Q291bnQoJ2NvbXBsZXRlZCcsIHBhc3NlZF9jb3VudCArIGZhaWx1cmVf
Y291bnQsIHhtbCkKKyAgICBzZWxmLmFzc2VydFhtbFJlc3VsdENvdW50KCdza2lwcGVkJywgc2tp
cHBlZF9jb3VudCwgeG1sKQorICAgIHNlbGYuYXNzZXJ0WG1sUmVzdWx0Q291bnQoJ3N1cHByZXNz
ZWQnLCBzdXBwcmVzc2VkX2NvdW50LCB4bWwpCisKKyAgZGVmIGFzc2VydEZhaWxGYXN0QmVoYXZp
b3Ioc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
a2lwcGVkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc2VkX2Nv
dW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5fZGlzYWJsZWQ9RmFsc2UpOgor
ICAgICIiIkFzc2VydCAtLWZhaWxfZmFzdCB2aWEgZmxhZy4iIiIKKworICAgIGZvciBmYWlsX2Zh
c3QgaW4gKCd0cnVlJywgJzEnLCAndCcsIFRydWUpOgorICAgICAgc2VsZi5hc3NlcnRGYWlsRmFz
dFhtbEFuZFR4dE91dHB1dChmYWlsX2Zhc3QsIHRlc3Rfc3VpdGUsIHBhc3NlZF9jb3VudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZV9jb3VudCwgc2tp
cHBlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vw
cHJlc3NlZF9jb3VudCwgcnVuX2Rpc2FibGVkKQorCisgIGRlZiBhc3NlcnROb3RGYWlsRmFzdEJl
aGF2aW9yKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZF9jb3VudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZV9jb3VudCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2tpcHBlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3VwcHJlc3NlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuX2Rpc2FibGVkPUZhbHNlKToKKyAgICAiIiJBc3NlcnQgLS1ub2ZhaWxfZmFzdCB2aWEgZmxh
Zy4iIiIKKworICAgIGZvciBmYWlsX2Zhc3QgaW4gKCdmYWxzZScsICcwJywgJ2YnLCBGYWxzZSk6
CisgICAgICBzZWxmLmFzc2VydEZhaWxGYXN0WG1sQW5kVHh0T3V0cHV0KGZhaWxfZmFzdCwgdGVz
dF9zdWl0ZSwgcGFzc2VkX2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmYWlsdXJlX2NvdW50LCBza2lwcGVkX2NvdW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc2VkX2NvdW50LCBydW5fZGlzYWJsZWQpCisK
KyAgZGVmIHRlc3RGbGFnX0hhc0ZpeHR1cmVUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5kIFRFU1RfRi4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxG
YXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0ZpeHR1cmVUZXN0JywKKyAgICAg
ICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgc2tp
cHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisgICAgc2VsZi5hc3Nl
cnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNGaXh0dXJlVGVz
dCcsCisgICAgICAgIHBhc3NlZF9jb3VudD0xLAorICAgICAgICBmYWlsdXJlX2NvdW50PTQsCisg
ICAgICAgIHNraXBwZWRfY291bnQ9MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD0wKQorCisg
IGRlZiB0ZXN0RmxhZ19IYXNTaW1wbGVUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhh
dmlvciBvZiBmYWlsX2Zhc3QgYW5kIFRFU1QuIiIiCisgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJl
aGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNTaW1wbGVUZXN0JywKKyAgICAgICAgcGFz
c2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9j
b3VudD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisgICAgc2VsZi5hc3NlcnROb3RG
YWlsRmFzdEJlaGF2aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdIYXNTaW1wbGVUZXN0JywKKyAg
ICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAg
c2tpcHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisKKyAgZGVmIHRl
c3RGbGFnX0hhc1BhcmFtZXRlcnNUZXN0KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBmYWlsX2Zhc3QgYW5kIFRFU1RfUC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVo
YXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc1BhcmFtZXRlcnNTdWl0ZS9IYXNQYXJhbWV0
ZXJzVGVzdCcsCisgICAgICAgIHBhc3NlZF9jb3VudD0wLAorICAgICAgICBmYWlsdXJlX2NvdW50
PTEsCisgICAgICAgIHNraXBwZWRfY291bnQ9MywKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD0w
KQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAgICAgICAgdGVzdF9zdWl0
ZT0nSGFzUGFyYW1ldGVyc1N1aXRlL0hhc1BhcmFtZXRlcnNUZXN0JywKKyAgICAgICAgcGFzc2Vk
X2NvdW50PTAsCisgICAgICAgIGZhaWx1cmVfY291bnQ9NCwKKyAgICAgICAgc2tpcHBlZF9jb3Vu
dD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTApCisKKyAgZGVmIHRlc3RGbGFnX0hhc0Rp
c2FibGVkVGVzdChzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgZmFpbF9mYXN0
IGFuZCBEaXNhYmxlZCB0ZXN0IGNhc2VzLiIiIgorICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhh
dmlvcigKKyAgICAgICAgdGVzdF9zdWl0ZT0nSGFzRGlzYWJsZWRUZXN0JywKKyAgICAgICAgcGFz
c2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgc2tpcHBlZF9j
b3VudD0yLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTEsCisgICAgICAgIHJ1bl9kaXNhYmxl
ZD1GYWxzZSkKKyAgICBzZWxmLmFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRl
c3Rfc3VpdGU9J0hhc0Rpc2FibGVkVGVzdCcsCisgICAgICAgIHBhc3NlZF9jb3VudD0xLAorICAg
ICAgICBmYWlsdXJlX2NvdW50PTMsCisgICAgICAgIHNraXBwZWRfY291bnQ9MCwKKyAgICAgICAg
c3VwcHJlc3NlZF9jb3VudD0xLAorICAgICAgICBydW5fZGlzYWJsZWQ9RmFsc2UpCisKKyAgZGVm
IHRlc3RGbGFnX0hhc0Rpc2FibGVkUnVuRGlzYWJsZWRUZXN0KHNlbGYpOgorICAgICIiIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5kIERpc2FibGVkIHRlc3QgY2FzZXMgZW5hYmxl
ZC4iIiIKKyAgICBzZWxmLmFzc2VydEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3Vp
dGU9J0hhc0Rpc2FibGVkVGVzdCcsCisgICAgICAgIHBhc3NlZF9jb3VudD0xLAorICAgICAgICBm
YWlsdXJlX2NvdW50PTEsCisgICAgICAgIHNraXBwZWRfY291bnQ9MywKKyAgICAgICAgc3VwcHJl
c3NlZF9jb3VudD0wLAorICAgICAgICBydW5fZGlzYWJsZWQ9VHJ1ZSkKKyAgICBzZWxmLmFzc2Vy
dE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0Rpc2FibGVkVGVz
dCcsCisgICAgICAgIHBhc3NlZF9jb3VudD0xLAorICAgICAgICBmYWlsdXJlX2NvdW50PTQsCisg
ICAgICAgIHNraXBwZWRfY291bnQ9MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD0wLAorICAg
ICAgICBydW5fZGlzYWJsZWQ9VHJ1ZSkKKworICBkZWYgdGVzdEZsYWdfSGFzRGlzYWJsZWRTdWl0
ZVRlc3Qoc2VsZik6CisgICAgIiIiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIGZhaWxfZmFzdCBhbmQg
RGlzYWJsZWQgdGVzdCBzdWl0ZXMuIiIiCisgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2aW9y
KAorICAgICAgICB0ZXN0X3N1aXRlPSdESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlJywKKyAgICAg
ICAgcGFzc2VkX2NvdW50PTAsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MCwKKyAgICAgICAgc2tp
cHBlZF9jb3VudD0wLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTUsCisgICAgICAgIHJ1bl9k
aXNhYmxlZD1GYWxzZSkKKyAgICBzZWxmLmFzc2VydE5vdEZhaWxGYXN0QmVoYXZpb3IoCisgICAg
ICAgIHRlc3Rfc3VpdGU9J0RJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUnLAorICAgICAgICBwYXNz
ZWRfY291bnQ9MCwKKyAgICAgICAgZmFpbHVyZV9jb3VudD0wLAorICAgICAgICBza2lwcGVkX2Nv
dW50PTAsCisgICAgICAgIHN1cHByZXNzZWRfY291bnQ9NSwKKyAgICAgICAgcnVuX2Rpc2FibGVk
PUZhbHNlKQorCisgIGRlZiB0ZXN0RmxhZ19IYXNEaXNhYmxlZFN1aXRlUnVuRGlzYWJsZWRUZXN0
KHNlbGYpOgorICAgICIiIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBmYWlsX2Zhc3QgYW5kIERpc2Fi
bGVkIHRlc3Qgc3VpdGVzIGVuYWJsZWQuIiIiCisgICAgc2VsZi5hc3NlcnRGYWlsRmFzdEJlaGF2
aW9yKAorICAgICAgICB0ZXN0X3N1aXRlPSdESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlJywKKyAg
ICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAg
c2tpcHBlZF9jb3VudD0zLAorICAgICAgICBzdXBwcmVzc2VkX2NvdW50PTAsCisgICAgICAgIHJ1
bl9kaXNhYmxlZD1UcnVlKQorICAgIHNlbGYuYXNzZXJ0Tm90RmFpbEZhc3RCZWhhdmlvcigKKyAg
ICAgICAgdGVzdF9zdWl0ZT0nRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZScsCisgICAgICAgIHBh
c3NlZF9jb3VudD0xLAorICAgICAgICBmYWlsdXJlX2NvdW50PTQsCisgICAgICAgIHNraXBwZWRf
Y291bnQ9MCwKKyAgICAgICAgc3VwcHJlc3NlZF9jb3VudD0wLAorICAgICAgICBydW5fZGlzYWJs
ZWQ9VHJ1ZSkKKworICBpZiBTVVBQT1JUU19ERUFUSF9URVNUUzoKKworICAgIGRlZiB0ZXN0Rmxh
Z19IYXNEZWF0aFRlc3Qoc2VsZik6CisgICAgICAiIiJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgZmFp
bF9mYXN0IGFuZCBkZWF0aCB0ZXN0cy4iIiIKKyAgICAgIHNlbGYuYXNzZXJ0RmFpbEZhc3RCZWhh
dmlvcigKKyAgICAgICAgICB0ZXN0X3N1aXRlPSdIYXNEZWF0aFRlc3QnLAorICAgICAgICAgIHBh
c3NlZF9jb3VudD0xLAorICAgICAgICAgIGZhaWx1cmVfY291bnQ9MSwKKyAgICAgICAgICBza2lw
cGVkX2NvdW50PTMsCisgICAgICAgICAgc3VwcHJlc3NlZF9jb3VudD0wKQorICAgICAgc2VsZi5h
c3NlcnROb3RGYWlsRmFzdEJlaGF2aW9yKAorICAgICAgICAgIHRlc3Rfc3VpdGU9J0hhc0RlYXRo
VGVzdCcsCisgICAgICAgICAgcGFzc2VkX2NvdW50PTEsCisgICAgICAgICAgZmFpbHVyZV9jb3Vu
dD00LAorICAgICAgICAgIHNraXBwZWRfY291bnQ9MCwKKyAgICAgICAgICBzdXBwcmVzc2VkX2Nv
dW50PTApCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgZ3Rlc3RfdGVzdF91dGls
cy5NYWluKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1mYWlsZmFzdC11bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMmM5NTFiYzAw
ODM5OTRiMDY2YzJkODZhZTkyYmUzMjI4MWM2ODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmFpbGZhc3QtdW5pdHRlc3RfLmNjCkBA
IC0wLDAgKzEsMTY3IEBACisvLyBDb3B5cmlnaHQgMjAwNSwgR29vZ2xlIEluYy4KKy8vIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBt
ZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
Ly8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKworLy8gVW5pdCB0ZXN0IGZvciBHb29nbGUgVGVzdCB0ZXN0IGZpbHRlcnMuCisvLwor
Ly8gQSB1c2VyIGNhbiBzcGVjaWZ5IHdoaWNoIHRlc3QocykgaW4gYSBHb29nbGUgVGVzdCBwcm9n
cmFtIHRvIHJ1biB2aWEKKy8vIGVpdGhlciB0aGUgR1RFU1RfRklMVEVSIGVudmlyb25tZW50IHZh
cmlhYmxlIG9yIHRoZSAtLWd0ZXN0X2ZpbHRlcgorLy8gZmxhZy4gIFRoaXMgaXMgdXNlZCBmb3Ig
dGVzdGluZyBzdWNoIGZ1bmN0aW9uYWxpdHkuCisvLworLy8gVGhlIHByb2dyYW0gd2lsbCBiZSBp
bnZva2VkIGZyb20gYSBQeXRob24gdW5pdCB0ZXN0LiAgRG9uJ3QgcnVuIGl0CisvLyBkaXJlY3Rs
eS4KKworI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisKK25hbWVzcGFjZSB7CisKKy8vIFRlc3Qg
SGFzRml4dHVyZVRlc3QuCisKK2NsYXNzIEhhc0ZpeHR1cmVUZXN0IDogcHVibGljIHRlc3Rpbmc6
OlRlc3Qge307CisKK1RFU1RfRihIYXNGaXh0dXJlVGVzdCwgVGVzdDApIHt9CisKK1RFU1RfRihI
YXNGaXh0dXJlVGVzdCwgVGVzdDEpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0K
KworVEVTVF9GKEhhc0ZpeHR1cmVUZXN0LCBUZXN0MikgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZh
aWx1cmUuIjsgfQorCitURVNUX0YoSGFzRml4dHVyZVRlc3QsIFRlc3QzKSB7IEZBSUwoKSA8PCAi
RXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1RfRihIYXNGaXh0dXJlVGVzdCwgVGVzdDQpIHsg
RkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworLy8gVGVzdCBIYXNTaW1wbGVUZXN0
LgorCitURVNUKEhhc1NpbXBsZVRlc3QsIFRlc3QwKSB7fQorCitURVNUKEhhc1NpbXBsZVRlc3Qs
IFRlc3QxKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoSGFzU2lt
cGxlVGVzdCwgVGVzdDIpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVT
VChIYXNTaW1wbGVUZXN0LCBUZXN0MykgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsg
fQorCitURVNUKEhhc1NpbXBsZVRlc3QsIFRlc3Q0KSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFp
bHVyZS4iOyB9CisKKy8vIFRlc3QgSGFzRGlzYWJsZWRUZXN0LgorCitURVNUKEhhc0Rpc2FibGVk
VGVzdCwgVGVzdDApIHt9CisKK1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBESVNBQkxFRF9UZXN0MSkg
eyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKEhhc0Rpc2FibGVkVGVz
dCwgVGVzdDIpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNE
aXNhYmxlZFRlc3QsIFRlc3QzKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisK
K1RFU1QoSGFzRGlzYWJsZWRUZXN0LCBUZXN0NCkgeyBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1
cmUuIjsgfQorCisvLyBUZXN0IEhhc0RlYXRoVGVzdAorCitURVNUKEhhc0RlYXRoVGVzdCwgVGVz
dDApIHsgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChleGl0KDEpLCAiLioiKTsgfQorCitURVNU
KEhhc0RlYXRoVGVzdCwgVGVzdDEpIHsKKyAgRVhQRUNUX0RFQVRIX0lGX1NVUFBPUlRFRChGQUlM
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIiwgIi4qIik7Cit9CisKK1RFU1QoSGFzRGVhdGhUZXN0
LCBUZXN0MikgeworICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKEZBSUwoKSA8PCAiRXhwZWN0
ZWQgZmFpbHVyZS4iLCAiLioiKTsKK30KKworVEVTVChIYXNEZWF0aFRlc3QsIFRlc3QzKSB7Cisg
IEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQoRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiIs
ICIuKiIpOworfQorCitURVNUKEhhc0RlYXRoVGVzdCwgVGVzdDQpIHsKKyAgRVhQRUNUX0RFQVRI
X0lGX1NVUFBPUlRFRChGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUuIiwgIi4qIik7Cit9CisK
Ky8vIFRlc3QgRElTQUJMRURfSGFzRGlzYWJsZWRTdWl0ZQorCitURVNUKERJU0FCTEVEX0hhc0Rp
c2FibGVkU3VpdGUsIFRlc3QwKSB7fQorCitURVNUKERJU0FCTEVEX0hhc0Rpc2FibGVkU3VpdGUs
IFRlc3QxKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1QoRElTQUJM
RURfSGFzRGlzYWJsZWRTdWl0ZSwgVGVzdDIpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJl
LiI7IH0KKworVEVTVChESVNBQkxFRF9IYXNEaXNhYmxlZFN1aXRlLCBUZXN0MykgeyBGQUlMKCkg
PDwgIkV4cGVjdGVkIGZhaWx1cmUuIjsgfQorCitURVNUKERJU0FCTEVEX0hhc0Rpc2FibGVkU3Vp
dGUsIFRlc3Q0KSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKKy8vIFRlc3Qg
SGFzUGFyYW1ldGVyc1Rlc3QKKworY2xhc3MgSGFzUGFyYW1ldGVyc1Rlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworCitURVNUX1AoSGFzUGFyYW1ldGVyc1Rlc3Qs
IFRlc3QxKSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZS4iOyB9CisKK1RFU1RfUChIYXNQ
YXJhbWV0ZXJzVGVzdCwgVGVzdDIpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0K
KworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEhhc1BhcmFtZXRlcnNTdWl0ZSwgSGFzUGFyYW1l
dGVyc1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6VmFsdWVzKDEsIDIp
KTsKKworY2xhc3MgTXlUZXN0TGlzdGVuZXIgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbXB0eVRlc3RF
dmVudExpc3RlbmVyIHsKKyAgdm9pZCBPblRlc3RTdWl0ZVN0YXJ0KGNvbnN0IDo6dGVzdGluZzo6
VGVzdFN1aXRlJiB0ZXN0X3N1aXRlKSBvdmVycmlkZSB7CisgICAgcHJpbnRmKCJXZSBhcmUgaW4g
T25UZXN0U3VpdGVTdGFydCBvZiAlcy5cbiIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKKyAgfQorCisg
IHZvaWQgT25UZXN0U3RhcnQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyYgdGVzdF9pbmZvKSBv
dmVycmlkZSB7CisgICAgcHJpbnRmKCJXZSBhcmUgaW4gT25UZXN0U3RhcnQgb2YgJXMuJXMuXG4i
LCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksCisgICAgICAgICAgIHRlc3RfaW5mby5uYW1l
KCkpOworICB9CisKKyAgdm9pZCBPblRlc3RQYXJ0UmVzdWx0KAorICAgICAgY29uc3QgOjp0ZXN0
aW5nOjpUZXN0UGFydFJlc3VsdCYgdGVzdF9wYXJ0X3Jlc3VsdCkgb3ZlcnJpZGUgeworICAgIHBy
aW50ZigiV2UgYXJlIGluIE9uVGVzdFBhcnRSZXN1bHQgJXM6JWQuXG4iLCB0ZXN0X3BhcnRfcmVz
dWx0LmZpbGVfbmFtZSgpLAorICAgICAgICAgICB0ZXN0X3BhcnRfcmVzdWx0LmxpbmVfbnVtYmVy
KCkpOworICB9CisKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyYg
dGVzdF9pbmZvKSBvdmVycmlkZSB7CisgICAgcHJpbnRmKCJXZSBhcmUgaW4gT25UZXN0RW5kIG9m
ICVzLiVzLlxuIiwgdGVzdF9pbmZvLnRlc3Rfc3VpdGVfbmFtZSgpLAorICAgICAgICAgICB0ZXN0
X2luZm8ubmFtZSgpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0U3VpdGVFbmQoY29uc3QgOjp0ZXN0
aW5nOjpUZXN0U3VpdGUmIHRlc3Rfc3VpdGUpIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIldlIGFy
ZSBpbiBPblRlc3RTdWl0ZUVuZCBvZiAlcy5cbiIsIHRlc3Rfc3VpdGUubmFtZSgpKTsKKyAgfQor
fTsKKworVEVTVChIYXNTa2lwVGVzdCwgVGVzdDApIHsgU1VDQ0VFRCgpIDw8ICJFeHBlY3RlZCBz
dWNjZXNzLiI7IH0KKworVEVTVChIYXNTa2lwVGVzdCwgVGVzdDEpIHsgR1RFU1RfU0tJUCgpIDw8
ICJFeHBlY3RlZCBza2lwLiI7IH0KKworVEVTVChIYXNTa2lwVGVzdCwgVGVzdDIpIHsgRkFJTCgp
IDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNTa2lwVGVzdCwgVGVzdDMpIHsg
RkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworVEVTVChIYXNTa2lwVGVzdCwgVGVz
dDQpIHsgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlLiI7IH0KKworfSAgLy8gbmFtZXNwYWNl
CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRH
b29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKS0+bGlzdGVuZXJzKCkuQXBwZW5kKG5ldyBNeVRlc3RMaXN0ZW5lcigpKTsKKyAgcmV0dXJu
IFJVTl9BTExfVEVTVFMoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1maWxlcGF0aC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKaW5kZXggMzdmMDJmYjRiZDc3OTdk
MTRkMzgzYTA1ZmExOTdjMzZiMzE4MjVmMi4uYWFmYWQzNmYzZmVmNDQ5ZjQ2YmE3N2RiMjBlY2M5
NjZiNTcyMGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbGVwYXRoLXRlc3QuY2MKQEAgLTUwLDggKzUwLDYgQEAgbmFtZXNwYWNl
IGludGVybmFsIHsKIG5hbWVzcGFjZSB7CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTX01PQklMRQot
Ly8gRklYTUU6IE1vdmUgdGhlc2UgdG8gdGhlIFBPU0lYIGFkYXB0ZXIgc2VjdGlvbiBpbgotLy8g
Z3Rlc3QtcG9ydC5oLgogCiAvLyBXaW5kb3dzIENFIGRvZXNuJ3QgaGF2ZSB0aGUgcmVtb3ZlIEMg
ZnVuY3Rpb24uCiBpbnQgcmVtb3ZlKGNvbnN0IGNoYXIqIHBhdGgpIHsKQEAgLTgwLDcgKzc4LDcg
QEAgVEVTVChHZXRDdXJyZW50RGlyVGVzdCwgUmV0dXJuc0N1cnJlbnREaXIpIHsKICAgY29uc3Qg
RmlsZVBhdGggY3dkID0gRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKTsKICAgcG9zaXg6OkNoRGly
KG9yaWdpbmFsX2Rpci5jX3N0cigpKTsKIAotIyBpZiBHVEVTVF9PU19XSU5ET1dTCisjIGlmIEdU
RVNUX09TX1dJTkRPV1MgfHwgR1RFU1RfT1NfT1MyCiAKICAgLy8gU2tpcHMgdGhlICI6Ii4KICAg
Y29uc3QgY2hhciogY29uc3QgY3dkX3dpdGhvdXRfZHJpdmUgPSBzdHJjaHIoY3dkLmNfc3RyKCks
ICc6Jyk7CkBAIC00NzksNyArNDc3LDcgQEAgVEVTVChBc3NpZ25tZW50T3BlcmF0b3JUZXN0LCBD
b25zdEFzc2lnbmVkVG9Ob25Db25zdCkgewogCiBjbGFzcyBEaXJlY3RvcnlDcmVhdGlvblRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Cisg
IHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgdGVzdGRhdGFfcGF0aF8uU2V0KEZpbGVQYXRo
KAogICAgICAgICBUZW1wRGlyKCkgKyBHZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5zdHJpbmco
KSArCiAgICAgICAgICJfZGlyZWN0b3J5X2NyZWF0aW9uIiBHVEVTVF9QQVRIX1NFUF8gInRlc3Qi
IEdURVNUX1BBVEhfU0VQXykpOwpAQCAtNDk2LDcgKzQ5NCw3IEBAIGNsYXNzIERpcmVjdG9yeUNy
ZWF0aW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBwb3NpeDo6Um1EaXIodGVzdGRhdGFfcGF0
aF8uY19zdHIoKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQg
VGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgcmVtb3ZlKHRlc3RkYXRhX2ZpbGVfLmNfc3RyKCkp
OwogICAgIHJlbW92ZSh1bmlxdWVfZmlsZTBfLmNfc3RyKCkpOwogICAgIHJlbW92ZSh1bmlxdWVf
ZmlsZTFfLmNfc3RyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LWZpbHRlci11bml0dGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1maWx0ZXItdW5pdHRlc3QucHkKaW5kZXggZGMwYjViZDlhNWNmYzVi
ZmU4YzY4YWYxYjY0Nzg5OWUxZmViZGE2Ny4uNmIzMmYyZDIxOTk3MTg5YTNjZDllYWYzMTNkNDcw
YmRkODRmY2MxMSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LWZpbHRlci11bml0dGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0ZXN0LnB5CkBAIC00Miw3ICs0MiwxMCBAQCB3ZSB0
ZXN0IHRoYXQgaGVyZSBhbHNvLgogCiBpbXBvcnQgb3MKIGltcG9ydCByZQotaW1wb3J0IHNldHMK
K3RyeToKKyAgZnJvbSBzZXRzIGltcG9ydCBTZXQgYXMgc2V0ICAjIEZvciBQeXRob24gMi4zIGNv
bXBhdGliaWxpdHkKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgcGFzcwogaW1wb3J0IHN5cwogaW1w
b3J0IGd0ZXN0X3Rlc3RfdXRpbHMKIApAQCAtNTcsNyArNjAsNyBAQCBDQU5fUEFTU19FTVBUWV9F
TlYgPSBGYWxzZQogaWYgc3lzLmV4ZWN1dGFibGU6CiAgIG9zLmVudmlyb25bJ0VNUFRZX1ZBUidd
ID0gJycKICAgY2hpbGQgPSBndGVzdF90ZXN0X3V0aWxzLlN1YnByb2Nlc3MoCi0gICAgICBbc3lz
LmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgb3M7IHByaW50IFwnRU1QVFlfVkFSXCcgaW4gb3Mu
ZW52aXJvbiddKQorICAgICAgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IG9zOyBwcmlu
dChcJ0VNUFRZX1ZBUlwnIGluIG9zLmVudmlyb24pJ10pCiAgIENBTl9QQVNTX0VNUFRZX0VOViA9
IGV2YWwoY2hpbGQub3V0cHV0KQogCiAKQEAgLTcyLDcgKzc1LDcgQEAgaWYgc3lzLmV4ZWN1dGFi
bGU6CiAgIG9zLmVudmlyb25bJ1VOU0VUX1ZBUiddID0gJ1gnCiAgIGRlbCBvcy5lbnZpcm9uWydV
TlNFVF9WQVInXQogICBjaGlsZCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcygKLSAgICAg
IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBvczsgcHJpbnQgXCdVTlNFVF9WQVJcJyBu
b3QgaW4gb3MuZW52aXJvbicKKyAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBv
czsgcHJpbnQoXCdVTlNFVF9WQVJcJyBub3QgaW4gb3MuZW52aXJvbiknCiAgICAgICBdKQogICBD
QU5fVU5TRVRfRU5WID0gZXZhbChjaGlsZC5vdXRwdXQpCiAKQEAgLTI0NSwxNCArMjQ4LDE0IEBA
IGNsYXNzIEdUZXN0RmlsdGVyVW5pdFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAg
ICAgZm9yIHNsaWNlX3ZhciBpbiBsaXN0X29mX3NldHM6CiAgICAgICBmdWxsX3BhcnRpdGlvbi5l
eHRlbmQoc2xpY2VfdmFyKQogICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNldF92YXIpLCBsZW4o
ZnVsbF9wYXJ0aXRpb24pKQotICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0cy5TZXQoc2V0X3Zhciks
IHNldHMuU2V0KGZ1bGxfcGFydGl0aW9uKSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNldChzZXRf
dmFyKSwgc2V0KGZ1bGxfcGFydGl0aW9uKSkKIAogICBkZWYgQWRqdXN0Rm9yUGFyYW1ldGVyaXpl
ZFRlc3RzKHNlbGYsIHRlc3RzX3RvX3J1bik6CiAgICAgIiIiQWRqdXN0IHRlc3RzX3RvX3J1biBp
biBjYXNlIHZhbHVlIHBhcmFtZXRlcml6ZWQgdGVzdHMgYXJlIGRpc2FibGVkLiIiIgogCiAgICAg
Z2xvYmFsIHBhcmFtX3Rlc3RzX3ByZXNlbnQKICAgICBpZiBub3QgcGFyYW1fdGVzdHNfcHJlc2Vu
dDoKLSAgICAgIHJldHVybiBsaXN0KHNldHMuU2V0KHRlc3RzX3RvX3J1bikgLSBzZXRzLlNldChQ
QVJBTV9URVNUUykpCisgICAgICByZXR1cm4gbGlzdChzZXQodGVzdHNfdG9fcnVuKSAtIHNldChQ
QVJBTV9URVNUUykpCiAgICAgZWxzZToKICAgICAgIHJldHVybiB0ZXN0c190b19ydW4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWZpbHRlci11
bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmls
dGVyLXVuaXR0ZXN0Xy5jYwppbmRleCBkMzM1YjYwMzkxZDFkNDY4YTQxMTYxYjM4YzE0ZWNjYmYx
ZDEzODA1Li5kMzBlYzljNzhiNTY1ZDhlODE4MDE3M2Q4ZmM0ZThhZWZhZDg4YWVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmlsdGVyLXVuaXR0
ZXN0Xy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZmls
dGVyLXVuaXR0ZXN0Xy5jYwpAQCAtMTI1LDggKzEyNSw4IEBAIFRFU1RfUChQYXJhbVRlc3QsIFRl
c3RYKSB7CiBURVNUX1AoUGFyYW1UZXN0LCBUZXN0WSkgewogfQogCi1JTlNUQU5USUFURV9URVNU
X0NBU0VfUChTZXFQLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcygxLCAyKSk7Ci1JTlNUQU5U
SUFURV9URVNUX0NBU0VfUChTZXFRLCBQYXJhbVRlc3QsIHRlc3Rpbmc6OlZhbHVlcyg1LCA2KSk7
CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoU2VxUCwgUGFyYW1UZXN0LCB0ZXN0aW5nOjpWYWx1
ZXMoMSwgMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcVEsIFBhcmFtVGVzdCwgdGVz
dGluZzo6VmFsdWVzKDUsIDYpKTsKIAogfSAgLy8gbmFtZXNwYWNlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1nbG9iYWwtZW52aXJvbm1lbnQt
dW5pdHRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xv
YmFsLWVudmlyb25tZW50LXVuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYmE2Mjg1MzVjZTMyZGQ0
NGZhZjFkNWZjNDdlOGEyZmJmMjUzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0LnB5
CkBAIC0wLDAgKzEsNzIgQEAKKyMgQ29weXJpZ2h0IDIwMjEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisiIiJVbml0IHRlc3QgZm9yIEdvb2dsZSBU
ZXN0J3MgZ2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgYmVoYXZpb3IuCisKK0EgdXNlciBjYW4gc3Bl
Y2lmeSBhIGdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHZpYQordGVzdGluZzo6QWRkR2xvYmFsVGVz
dEVudmlyb25tZW50LiBGYWlsdXJlcyBpbiB0aGUgZ2xvYmFsIGVudmlyb25tZW50IHNob3VsZAor
cmVzdWx0IGluIGFsbCB1bml0IHRlc3RzIGJlaW5nIHNraXBwZWQuCisKK1RoaXMgc2NyaXB0IHRl
c3RzIHN1Y2ggZnVuY3Rpb25hbGl0eSBieSBpbnZva2luZworZ29vZ2xldGVzdC1nbG9iYWwtZW52
aXJvbm1lbnQtdW5pdHRlc3RfIChhIHByb2dyYW0gd3JpdHRlbiB3aXRoIEdvb2dsZSBUZXN0KS4K
KyIiIgorCitpbXBvcnQgZ3Rlc3RfdGVzdF91dGlscworCisKK2RlZiBSdW5BbmRSZXR1cm5PdXRw
dXQoKToKKyAgIiIiUnVucyB0aGUgdGVzdCBwcm9ncmFtIGFuZCByZXR1cm5zIGl0cyBvdXRwdXQu
IiIiCisKKyAgcmV0dXJuIGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhbCisgICAgICBndGVz
dF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRhYmxlUGF0aCgKKyAgICAgICAgICAnZ29vZ2xldGVz
dC1nbG9iYWwtZW52aXJvbm1lbnQtdW5pdHRlc3RfJykKKyAgXSkub3V0cHV0CisKKworY2xhc3Mg
R1Rlc3RHbG9iYWxFbnZpcm9ubWVudFVuaXRUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2Up
OgorICAiIiJUZXN0cyBnbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBmYWlsdXJlcy4iIiIKKworICBk
ZWYgdGVzdEVudmlyb25tZW50U2V0VXBGYWlscyhzZWxmKToKKyAgICAiIiJUZXN0cyB0aGUgYmVo
YXZpb3Igb2Ygbm90IHNwZWNpZnlpbmcgdGhlIGZhaWxfZmFzdC4iIiIKKworICAgICMgUnVuIHRo
ZSB0ZXN0LgorICAgIHR4dCA9IFJ1bkFuZFJldHVybk91dHB1dCgpCisKKyAgICAjIFdlIHNob3Vs
ZCBzZWUgdGhlIHRleHQgb2YgdGhlIGdsb2JhbCBlbnZpcm9ubWVudCBzZXR1cCBlcnJvci4KKyAg
ICBzZWxmLmFzc2VydEluKCdDYW5uZWQgZW52aXJvbm1lbnQgc2V0dXAgZXJyb3InLCB0eHQpCisK
KyAgICAjIE91ciB0ZXN0IHNob3VsZCBoYXZlIGJlZW4gc2tpcHBlZCBkdWUgdG8gdGhlIGVycm9y
LCBhbmQgbm90IHRyZWF0ZWQgYXMgYQorICAgICMgcGFzcy4KKyAgICBzZWxmLmFzc2VydEluKCdb
ICBTS0lQUEVEIF0gMSB0ZXN0JywgdHh0KQorICAgIHNlbGYuYXNzZXJ0SW4oJ1sgIFBBU1NFRCAg
XSAwIHRlc3RzJywgdHh0KQorCisgICAgIyBUaGUgdGVzdCBjYXNlIHNob3VsZG4ndCBoYXZlIGJl
ZW4gcnVuLgorICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ1VuZXhwZWN0ZWQgY2FsbCcsIHR4dCkKKwor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBndGVzdF90ZXN0X3V0aWxzLk1haW4oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWdsb2Jh
bC1lbnZpcm9ubWVudC11bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtZ2xvYmFsLWVudmlyb25tZW50LXVuaXR0ZXN0Xy5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NDAxYjJmYWMyNWQxN2RkN2ZlNWFiNzg4YjExNzRmNmI5MjkzYzAzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWdsb2JhbC1lbnZpcm9u
bWVudC11bml0dGVzdF8uY2MKQEAgLTAsMCArMSw1OCBAQAorLy8gQ29weXJpZ2h0IDIwMDUsIEdv
b2dsZSBJbmMuCisvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisv
LyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisv
LyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisvLyBVbml0IHRlc3QgZm9yIEdvb2dsZSBUZXN0IGds
b2JhbCB0ZXN0IGVudmlyb25tZW50cy4KKy8vCisvLyBUaGUgcHJvZ3JhbSB3aWxsIGJlIGludm9r
ZWQgZnJvbSBhIFB5dGhvbiB1bml0IHRlc3QuICBEb24ndCBydW4gaXQKKy8vIGRpcmVjdGx5Lgor
CisjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKKworbmFtZXNwYWNlIHsKKworLy8gQW4gZW52aXJv
bm1lbnQgdGhhdCBhbHdheXMgZmFpbHMgaW4gaXRzIFNldFVwIG1ldGhvZC4KK2NsYXNzIEZhaWxp
bmdFbnZpcm9ubWVudCBmaW5hbCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBw
dWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IEZBSUwoKSA8PCAiQ2FubmVkIGVudmly
b25tZW50IHNldHVwIGVycm9yIjsgfQorfTsKKworLy8gUmVnaXN0ZXIgdGhlIGVudmlyb25tZW50
LgorYXV0byogY29uc3QgZ19lbnZpcm9ubWVudF8gPQorICAgIDo6dGVzdGluZzo6QWRkR2xvYmFs
VGVzdEVudmlyb25tZW50KG5ldyBGYWlsaW5nRW52aXJvbm1lbnQpOworCisvLyBBIHRlc3QgdGhh
dCBkb2Vzbid0IGFjdHVhbGx5IHJ1bi4KK1RFU1QoU29tZVRlc3QsIERvZXNGb28pIHsgRkFJTCgp
IDw8ICJVbmV4cGVjdGVkIGNhbGwiOyB9CisKK30gIC8vIG5hbWVzcGFjZQorCitpbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJn
YywgYXJndik7CisKKyAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVzLXRlc3Qu
cHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRmaWxl
cy10ZXN0LnB5CmluZGV4IGM5OWJlNDhlOGFjMzY1MDllZDMyZWEyZmI4ZTRmYTFlYTdmYzgzNjQu
LjhlZjQ3YjhmOTc0NjNjMmUzYWQ0NDIyNTQ3OWQzYmMwNjMzODc5MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dGZpbGVzLXRlc3Qu
cHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0
ZmlsZXMtdGVzdC5weQpAQCAtNDAsMjQgKzQwLDQxIEBAIEdURVNUX09VVFBVVF8xX1RFU1QgPSAn
Z3Rlc3RfeG1sX291dGZpbGUxX3Rlc3RfJwogR1RFU1RfT1VUUFVUXzJfVEVTVCA9ICdndGVzdF94
bWxfb3V0ZmlsZTJfdGVzdF8nCiAKIEVYUEVDVEVEXzEgPSB7Ci0gICAgdSd0ZXN0cyc6IDEsCi0g
ICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJvcnMnOiAw
LAotICAgIHUndGltZSc6IHUnKicsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUnbmFt
ZSc6IHUnQWxsVGVzdHMnLAorICAgIHUndGVzdHMnOgorICAgICAgICAxLAorICAgIHUnZmFpbHVy
ZXMnOgorICAgICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAgIHUnZXJy
b3JzJzoKKyAgICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAgIHUndGlt
ZXN0YW1wJzoKKyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3Rz
JywKICAgICB1J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25hbWUnOiB1J1Byb3BlcnR5T25l
JywKLSAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAg
ICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMnOiAwLAotICAgICAgICB1J3RpbWUn
OiB1JyonLAorICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eU9uZScsCisg
ICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6Cisg
ICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAg
ICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAg
ICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAogICAg
ICAgICB1J3Rlc3RzdWl0ZSc6IFt7CiAgICAgICAgICAgICB1J25hbWUnOiB1J1Rlc3RTb21lUHJv
cGVydGllcycsCiAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUn
cmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAg
ICAgICAgIHUndGltZXN0YW1wJzogdScqJywKICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQ
cm9wZXJ0eU9uZScsCiAgICAgICAgICAgICB1J1NldFVwUHJvcCc6IHUnMScsCiAgICAgICAgICAg
ICB1J1Rlc3RTb21lUHJvcGVydHknOiB1JzEnLApAQCAtNjcsMjMgKzg0LDQwIEBAIEVYUEVDVEVE
XzEgPSB7CiB9CiAKIEVYUEVDVEVEXzIgPSB7Ci0gICAgdSd0ZXN0cyc6IDEsCi0gICAgdSdmYWls
dXJlcyc6IDAsCi0gICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJvcnMnOiAwLAotICAgIHUn
dGltZSc6IHUnKicsCi0gICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUnbmFtZSc6IHUnQWxs
VGVzdHMnLAorICAgIHUndGVzdHMnOgorICAgICAgICAxLAorICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAwLAorICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAwLAorICAgIHUnZXJyb3JzJzoKKyAg
ICAgICAgMCwKKyAgICB1J3RpbWUnOgorICAgICAgICB1JyonLAorICAgIHUndGltZXN0YW1wJzoK
KyAgICAgICAgdScqJywKKyAgICB1J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKICAgICB1
J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25hbWUnOiB1J1Byb3BlcnR5VHdvJywKLSAgICAg
ICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICB1J2Rpc2Fi
bGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMnOiAwLAotICAgICAgICB1J3RpbWUnOiB1JyonLAor
ICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdQcm9wZXJ0eVR3bycsCisgICAgICAgIHUn
dGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAg
ICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJy
b3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1Jyon
LAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAogICAgICAgICB1J3Rl
c3RzdWl0ZSc6IFt7CiAgICAgICAgICAgICB1J25hbWUnOiB1J1Rlc3RTb21lUHJvcGVydGllcycs
CiAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0Jzog
dSdDT01QTEVURUQnLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVR3
bycsCiAgICAgICAgICAgICB1J1NldFVwUHJvcCc6IHUnMicsCkBAIC0xMzYsMTEgKzE3MCw2IEBA
IGNsYXNzIEdUZXN0SnNvbk91dEZpbGVzVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToK
ICAgICBzZWxmLmFzc2VydF8ocC5leGl0ZWQpCiAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgcC5l
eGl0X2NvZGUpCiAKLSAgICAjIEZJWE1FOiBsaWJ0b29sIGNhdXNlcyB0aGUgYnVpbHQgdGVzdCBi
aW5hcnkgdG8gYmUKLSAgICAjICAgbmFtZWQgbHQtZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfIGlu
c3RlYWQgb2YKLSAgICAjICAgZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3RfLiAgVG8gYWNjb3VudCBm
b3IgdGhpcyBwb3NzaWJpbGl0eSwgd2UKLSAgICAjICAgYWxsb3cgYm90aCBuYW1lcyBpbiB0aGUg
Zm9sbG93aW5nIGNvZGUuICBXZSBzaG91bGQgcmVtb3ZlIHRoaXMKLSAgICAjICAgd2hlbiBsaWJ0
b29sIHJlcGxhY2VtZW50IHRvb2wgaXMgcmVhZHkuCiAgICAgb3V0cHV0X2ZpbGVfbmFtZTEgPSB0
ZXN0X25hbWUgKyAnLmpzb24nCiAgICAgb3V0cHV0X2ZpbGUxID0gb3MucGF0aC5qb2luKHNlbGYu
b3V0cHV0X2Rpcl8sIG91dHB1dF9maWxlX25hbWUxKQogICAgIG91dHB1dF9maWxlX25hbWUyID0g
J2x0LScgKyBvdXRwdXRfZmlsZV9uYW1lMQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWpzb24tb3V0cHV0LXVuaXR0ZXN0LnB5Cmlu
ZGV4IDU3ZGNkNWZhMWM0NjM5ZjE1MmZiNTRlNTBmYjljMDU5OGEwZTQ2YTAuLjQxYzg1NjUxNDQ5
OTg0YTdiMTQxOGRiMmVkNThiNTFmZDM2YTA1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1qc29uLW91dHB1dC11bml0dGVzdC5weQorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtanNvbi1vdXRwdXQtdW5pdHRl
c3QucHkKQEAgLTU3LDM4NCArNTcsNjE0IEBAIGVsc2U6CiAgIFNUQUNLX1RSQUNFX1RFTVBMQVRF
ID0gJycKIAogRVhQRUNURURfTk9OX0VNUFRZID0gewotICAgIHUndGVzdHMnOiAyMywKLSAgICB1
J2ZhaWx1cmVzJzogNCwKLSAgICB1J2Rpc2FibGVkJzogMiwKLSAgICB1J2Vycm9ycyc6IDAsCi0g
ICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUndGltZSc6IHUnKicsCi0gICAgdSdhZF9ob2Nf
cHJvcGVydHknOiB1JzQyJywKLSAgICB1J25hbWUnOiB1J0FsbFRlc3RzJywKLSAgICB1J3Rlc3Rz
dWl0ZXMnOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2Vzc2Z1bFRl
c3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzog
MCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAw
LAorICAgIHUndGVzdHMnOgorICAgICAgICAyNiwKKyAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAg
NSwKKyAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgMiwKKyAgICB1J2Vycm9ycyc6CisgICAgICAg
IDAsCisgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICB1JyonLAorICAgIHUndGltZSc6CisgICAg
ICAgIHUnKicsCisgICAgdSdhZF9ob2NfcHJvcGVydHknOgorICAgICAgICB1JzQyJywKKyAgICB1
J25hbWUnOgorICAgICAgICB1J0FsbFRlc3RzJywKKyAgICB1J3Rlc3RzdWl0ZXMnOiBbeworICAg
ICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdTdWNjZXNzZnVsVGVzdCcsCisgICAgICAgIHUn
dGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAg
ICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJy
b3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1Jyon
LAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rl
c3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J1N1Y2NlZWRzJywKKyAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRF
RCcsCisgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAn
OiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1N1Y2Nlc3NmdWxUZXN0JworICAg
ICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnRmFpbGVk
VGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWls
dXJlcyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAg
IDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6
CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1
JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOgorICAg
ICAgICAgICAgICAgIHUnRmFpbHMnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAg
ICAgICAgIHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1
J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKics
CisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAg
ICAgICAgIHUnY2xhc3NuYW1lJzoKKyAgICAgICAgICAgICAgICB1J0ZhaWxlZFRlc3QnLAorICAg
ICAgICAgICAgdSdmYWlsdXJlcyc6IFt7CisgICAgICAgICAgICAgICAgdSdmYWlsdXJlJzogdSdn
dGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAg
ICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisg
ICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdEaXNhYmxlZFRlc3QnLAor
ICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMnOgor
ICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAxLAorICAg
ICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAg
ICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdESVNBQkxFRF90
ZXN0X25vdF9ydW4nLAorICAgICAgICAgICAgdSdzdGF0dXMnOiB1J05PVFJVTicsCisgICAgICAg
ICAgICB1J3Jlc3VsdCc6IHUnU1VQUFJFU1NFRCcsCisgICAgICAgICAgICB1J3RpbWUnOiB1Jyon
LAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25h
bWUnOiB1J0Rpc2FibGVkVGVzdCcKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFt
ZSc6CisgICAgICAgICAgICB1J1NraXBwZWRUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAg
ICAgICAgICAzLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAg
IHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAg
ICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUn
dGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sK
KyAgICAgICAgICAgIHUnbmFtZSc6IHUnU2tpcHBlZCcsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdTS0lQUEVEJywKKyAgICAgICAgICAg
IHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAg
ICAgICB1J2NsYXNzbmFtZSc6IHUnU2tpcHBlZFRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHUnbmFtZSc6IHUnU2tpcHBlZFdpdGhNZXNzYWdlJywKKyAgICAgICAgICAgIHUnc3RhdHVz
JzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J1NLSVBQRUQnLAorICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAg
ICAgICAgIHUnY2xhc3NuYW1lJzogdSdTa2lwcGVkVGVzdCcKKyAgICAgICAgfSwgeworICAgICAg
ICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgICAgICB1J1NraXBwZWRBZnRlckZhaWx1cmUnLAor
ICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAg
ICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAg
ICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFt
cCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAg
ICAgICAgICAgICAgICB1J1NraXBwZWRUZXN0JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBb
eworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxp
dHkgb2YgdGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnICAx
XG4gIDInICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgdSd0eXBlJzog
dScnCisgICAgICAgICAgICB9XQorICAgICAgICB9XQorICAgIH0sIHsKKyAgICAgICAgdSduYW1l
JzoKKyAgICAgICAgICAgIHUnTWl4ZWRSZXN1bHRUZXN0JywKKyAgICAgICAgdSd0ZXN0cyc6Cisg
ICAgICAgICAgICAzLAorICAgICAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgICAgIDEsCisgICAg
ICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdlcnJvcnMnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAg
IHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzog
W3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnU3VjY2VlZHMnLAorICAgICAgICAgICAgdSdzdGF0
dXMnOiB1J1JVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnQ09NUExFVEVEJywKKyAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisg
ICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JworICAgICAgICB9LCB7
CisgICAgICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgICAgIHUnRmFpbHMnLAorICAgICAg
ICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAgICAgIHUn
cmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3Rp
bWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6Cisg
ICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAgICAgICAg
ICAgICAgICB1J01peGVkUmVzdWx0VGVzdCcsCisgICAgICAgICAgICB1J2ZhaWx1cmVzJzogW3sK
KyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Rf
LmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5
IG9mIHRoZXNlIHZhbHVlczpcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMVxu
ICAyJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlwZSc6IHUn
JworICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6IHUnZ3Rlc3Rf
eG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnICAyXG4gIDMnICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAg
ICAgICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAgICB9LCB7CisgICAg
ICAgICAgICB1J25hbWUnOiB1J0RJU0FCTEVEX3Rlc3QnLAorICAgICAgICAgICAgdSdzdGF0dXMn
OiB1J05PVFJVTicsCisgICAgICAgICAgICB1J3Jlc3VsdCc6IHUnU1VQUFJFU1NFRCcsCisgICAg
ICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAor
ICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J01peGVkUmVzdWx0VGVzdCcKKyAgICAgICAgfV0K
KyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1htbFF1b3RpbmdUZXN0
JywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2ZhaWx1cmVz
JzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwK
KyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAg
ICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKics
CisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6CisgICAgICAg
ICAgICAgICAgdSdPdXRwdXRzQ0RhdGEnLAorICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAg
ICAgICAgICAgIHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAg
ICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUn
KicsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAg
ICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAgICAgICAgICAgICAgICB1J1htbFF1b3RpbmdUZXN0
JywKKyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVy
ZSc6IHUnZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHUnRmFpbGVkXG5YTUwgb3V0cHV0OiA8P3htbCBlbmNvZGluZz0idXRmLTgi
PicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jzx0b3A+PCFbQ0RBVEFbY2RhdGEgdGV4
dF1dPjwvdG9wPicgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQUNLX1RSQUNFX1RF
TVBMQVRFLAorICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJworICAgICAgICAgICAgfV0KKyAg
ICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J0ludmFs
aWRDaGFyYWN0ZXJzVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAg
ICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Rpc2FibGVkJzoK
KyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAg
ICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6Cisg
ICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CisgICAgICAgICAgICB1
J25hbWUnOgorICAgICAgICAgICAgICAgIHUnSW52YWxpZENoYXJhY3RlcnNJbk1lc3NhZ2UnLAor
ICAgICAgICAgICAgdSdzdGF0dXMnOgorICAgICAgICAgICAgICAgIHUnUlVOJywKKyAgICAgICAg
ICAgIHUncmVzdWx0JzoKKyAgICAgICAgICAgICAgICB1J0NPTVBMRVRFRCcsCisgICAgICAgICAg
ICB1J3RpbWUnOgorICAgICAgICAgICAgICAgIHUnKicsCisgICAgICAgICAgICB1J3RpbWVzdGFt
cCc6CisgICAgICAgICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzoKKyAg
ICAgICAgICAgICAgICB1J0ludmFsaWRDaGFyYWN0ZXJzVGVzdCcsCisgICAgICAgICAgICB1J2Zh
aWx1cmVzJzogW3sKKyAgICAgICAgICAgICAgICB1J2ZhaWx1cmUnOiB1J2d0ZXN0X3htbF9vdXRw
dXRfdW5pdHRlc3RfLmNjOipcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0ZhaWxl
ZFxuSW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHUnIFtceDAxXHgwMl0nICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCisgICAgICAgICAg
ICAgICAgdSd0eXBlJzogdScnCisgICAgICAgICAgICB9XQorICAgICAgICB9XQorICAgIH0sIHsK
KyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywK
KyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICA0LAorICAgICAgICB1J2ZhaWx1cmVzJzoK
KyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAgICAgMCwKKyAg
ICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1lJzoKKyAgICAg
ICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgIHUnKicsCisg
ICAgICAgIHUnU2V0VXBUZXN0U3VpdGUnOgorICAgICAgICAgICAgdSd5ZXMnLAorICAgICAgICB1
J1RlYXJEb3duVGVzdFN1aXRlJzoKKyAgICAgICAgICAgIHUnYXllJywKKyAgICAgICAgdSd0ZXN0
c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdPbmVQcm9wZXJ0eScsCisgICAgICAg
ICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVU
RUQnLAorICAgICAgICAgICAgdSd0aW1lJzogdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1w
JzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rl
c3QnLAorICAgICAgICAgICAgdSdrZXlfMSc6IHUnMScKKyAgICAgICAgfSwgeworICAgICAgICAg
ICAgdSduYW1lJzogdSdJbnRWYWx1ZWRQcm9wZXJ0eScsCisgICAgICAgICAgICB1J3N0YXR1cyc6
IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAg
ICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycsCi0gICAg
ICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU3VjY2Vz
c2Z1bFRlc3QnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J0ZhaWxlZFRlc3QnLAotICAgICAgICAg
ICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAgICAgICAg
IHUnZGlzYWJsZWQnOiAwLAotICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAg
dSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5
UmVjb3JkaW5nVGVzdCcsCisgICAgICAgICAgICB1J2tleV9pbnQnOiB1JzEnCisgICAgICAgIH0s
IHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnVGhyZWVQcm9wZXJ0aWVzJywKKyAgICAgICAgICAg
IHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcs
CiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUnOiBb
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J0ZhaWxz
JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAg
ICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzog
dSdGYWlsZWRUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1
cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2d0ZXN0X3htbF9vdXRwdXRf
dW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdFeHBl
Y3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHUnICAxXG4gIDInICsgU1RBQ0tfVFJBQ0VfVEVNUExBVEUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdSd0eXBlJzogdScnCi0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnRGlzYWJsZWRU
ZXN0JywKLSAgICAgICAgICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6
IDAsCi0gICAgICAgICAgICB1J2Rpc2FibGVkJzogMSwKLSAgICAgICAgICAgIHUnZXJyb3JzJzog
MCwKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3Nu
YW1lJzogdSdQcm9wZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdrZXlfMSc6IHUn
MScsCisgICAgICAgICAgICB1J2tleV8yJzogdScyJywKKyAgICAgICAgICAgIHUna2V5XzMnOiB1
JzMnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUnbmFtZSc6IHUnVHdvVmFsdWVzRm9yT25l
S2V5VXNlc0xhc3RWYWx1ZScsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAg
ICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScq
JywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgdSduYW1lJzogdSdESVNBQkxFRF90ZXN0X25vdF9ydW4nLAotICAgICAg
ICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnTk9UUlVOJywKLSAgICAgICAgICAgICAgICAgICAg
dSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J0Rpc2Fi
bGVkVGVzdCcKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JywKLSAgICAg
ICAgICAgIHUndGVzdHMnOiAzLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDEsCi0gICAgICAg
ICAgICB1J2Rpc2FibGVkJzogMSwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAg
ICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdQcm9w
ZXJ0eVJlY29yZGluZ1Rlc3QnLAorICAgICAgICAgICAgdSdrZXlfMSc6IHUnMicKKyAgICAgICAg
fV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J05vRml4dHVyZVRl
c3QnLAorICAgICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDMsCisgICAgICAgIHUnZmFpbHVy
ZXMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgor
ICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScq
JywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdSZWNv
cmRQcm9wZXJ0eScsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAg
IHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAg
ICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgdSduYW1lJzogdSdTdWNjZWVkcycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3Rh
dHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JwotICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUn
OiB1J0ZhaWxzJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAg
ICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xh
c3NuYW1lJzogdSdNaXhlZFJlc3VsdFRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1
cmVzJzogWwotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHUnZmFpbHVyZSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rl
c3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1J0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczpcbicKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFU
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdSdmYWlsdXJlJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSdndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqXG4nCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHUnRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOlxuJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1JyAgMlxuICAzJyArIFNUQUNLX1RSQUNF
X1RFTVBMQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6
IHUnRElTQUJMRURfdGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdOT1RS
VU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAg
ICAgICB1J2NsYXNzbmFtZSc6IHUnTWl4ZWRSZXN1bHRUZXN0JwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1l
JzogdSdYbWxRdW90aW5nVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAg
ICAgIHUnZmFpbHVyZXMnOiAxLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAg
ICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAg
ICAgICAgICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAgICB1J2tl
eSc6IHUnMScKKyAgICAgICAgfSwgeworICAgICAgICAgICAgdSduYW1lJzogdSdFeHRlcm5hbFV0
aWxpdHlUaGF0Q2FsbHNSZWNvcmRJbnRWYWx1ZWRQcm9wZXJ0eScsCisgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdPdXRwdXRzQ0Rh
dGEnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUn
OiB1J1htbFF1b3RpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdmYWlsdXJlcyc6IFsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
J2ZhaWx1cmUnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J2d0ZXN0X3htbF9v
dXRwdXRfdW5pdHRlc3RfLmNjOipcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dSdGYWlsZWRcblhNTCBvdXRwdXQ6IDw/eG1sIGVuY29kaW5nPSJ1dGYtOCI+JwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1Jzx0b3A+PCFbQ0RBVEFbY2RhdGEgdGV4dF1dPjwvdG9w
PicgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFDS19UUkFDRV9URU1QTEFU
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3R5cGUnOiB1JycKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1l
JzogdSdJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDEsCi0g
ICAgICAgICAgICB1J2ZhaWx1cmVzJzogMSwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAot
ICAgICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1Jyon
LAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAorICAgICAgICAg
ICAgdSdrZXlfZm9yX3V0aWxpdHlfaW50JzogdScxJworICAgICAgICB9LCB7CisgICAgICAgICAg
ICB1J25hbWUnOiB1J0V4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1ZhbHVlZFBy
b3BlcnR5JywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdy
ZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgdSd0ZXN0c3VpdGUnOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB1J25hbWUnOiB1J0ludmFsaWRDaGFyYWN0ZXJzSW5NZXNzYWdlJywKLSAgICAgICAgICAg
ICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6
IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdJbnZhbGlkQ2hhcmFj
dGVyc1Rlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2ZhaWx1cmVzJzogWwotICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnZ3Rlc3RfeG1sX291dHB1dF91bml0
dGVzdF8uY2M6KlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J0ZhaWxlZFxu
SW52YWxpZCBjaGFyYWN0ZXJzIGluIGJyYWNrZXRzJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1JyBbXHgwMVx4MDJdJyArIFNUQUNLX1RSQUNFX1RFTVBMQVRFLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHUndHlwZSc6IHUnJwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
XQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1Byb3BlcnR5
UmVjb3JkaW5nVGVzdCcsCi0gICAgICAgICAgICB1J3Rlc3RzJzogNCwKLSAgICAgICAgICAgIHUn
ZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1
J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAg
ICB1J2NsYXNzbmFtZSc6IHUnTm9GaXh0dXJlVGVzdCcsCisgICAgICAgICAgICB1J2tleV9mb3Jf
dXRpbGl0eV9zdHJpbmcnOiB1JzEnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25h
bWUnOgorICAgICAgICAgICAgdSdUeXBlZFRlc3QvMCcsCisgICAgICAgIHUndGVzdHMnOgorICAg
ICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAg
ICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAg
ICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1
J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7
CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScsCisgICAgICAg
ICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVO
JywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0
aW1lJzogdScqJywKLSAgICAgICAgICAgIHUnU2V0VXBUZXN0Q2FzZSc6IHUneWVzJywKLSAgICAg
ICAgICAgIHUnVGVhckRvd25UZXN0Q2FzZSc6IHUnYXllJywKLSAgICAgICAgICAgIHUndGVzdHN1
aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzog
dSdPbmVQcm9wZXJ0eScsCi0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAot
ICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1
J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAg
ICAgdSdrZXlfMSc6IHUnMScKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdJbnRWYWx1ZWRQcm9wZXJ0eScsCi0gICAg
ICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVy
dHlSZWNvcmRpbmdUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfaW50JzogdScxJwot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB1J25hbWUnOiB1J1RocmVlUHJvcGVydGllcycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3Rh
dHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnUHJvcGVydHlSZWNvcmRpbmdUZXN0JywKLSAg
ICAgICAgICAgICAgICAgICAgdSdrZXlfMSc6IHUnMScsCi0gICAgICAgICAgICAgICAgICAgIHUn
a2V5XzInOiB1JzInLAotICAgICAgICAgICAgICAgICAgICB1J2tleV8zJzogdSczJwotICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25h
bWUnOiB1J1R3b1ZhbHVlc0Zvck9uZUtleVVzZXNMYXN0VmFsdWUnLAotICAgICAgICAgICAgICAg
ICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScq
JywKLSAgICAgICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1Byb3BlcnR5UmVjb3JkaW5n
VGVzdCcsCi0gICAgICAgICAgICAgICAgICAgIHUna2V5XzEnOiB1JzInCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1
J25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgdSd0ZXN0cyc6IDMsCi0gICAg
ICAgICAgICB1J2ZhaWx1cmVzJzogMCwKLSAgICAgICAgICAgIHUnZGlzYWJsZWQnOiAwLAotICAg
ICAgICAgICAgdSdlcnJvcnMnOiAwLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAor
ICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1R5cGVkVGVzdC8wJworICAgICAgICB9XQorICAg
IH0sIHsKKyAgICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgIHUnVHlwZWRUZXN0LzEnLAorICAg
ICAgICB1J3Rlc3RzJzoKKyAgICAgICAgICAgIDEsCisgICAgICAgIHUnZmFpbHVyZXMnOgorICAg
ICAgICAgICAgMCwKKyAgICAgICAgdSdkaXNhYmxlZCc6CisgICAgICAgICAgICAwLAorICAgICAg
ICB1J2Vycm9ycyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAg
ICAgdScqJywKKyAgICAgICAgdSd0aW1lc3RhbXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAg
ICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUnLAorICAgICAgICAgICAgdSd0eXBlX3BhcmFtJzogdSdsb25nJywKKyAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRF
RCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgdSd0ZXN0c3VpdGUn
OiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1J25hbWUnOiB1J1Jl
Y29yZFByb3BlcnR5JywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0g
ICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUn
Y2xhc3NuYW1lJzogdSdOb0ZpeHR1cmVUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXkn
OiB1JzEnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIHUnbmFtZSc6IHUnRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkSW50VmFs
dWVkUHJvcGVydHknLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAg
ICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdj
bGFzc25hbWUnOiB1J05vRml4dHVyZVRlc3QnLAotICAgICAgICAgICAgICAgICAgICB1J2tleV9m
b3JfdXRpbGl0eV9pbnQnOiB1JzEnCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB1J0V4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1ZhbHVlZFByb3BlcnR5JywK
LSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1J1JVTicsCi0gICAgICAgICAgICAgICAg
ICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdO
b0ZpeHR1cmVUZXN0JywKLSAgICAgICAgICAgICAgICAgICAgdSdrZXlfZm9yX3V0aWxpdHlfc3Ry
aW5nJzogdScxJwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzogdSdUeXBlZFRlc3QvMCcsCi0gICAgICAg
ICAgICB1J3Rlc3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAg
ICAgdSdkaXNhYmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAg
ICB1J3RpbWVzdGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlwZWRU
ZXN0LzEnCisgICAgICAgIH1dCisgICAgfSwgeworICAgICAgICB1J25hbWUnOgorICAgICAgICAg
ICAgdSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCcsCisgICAgICAgIHUndGVz
dHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3Jz
JzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAor
ICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3Rz
dWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1R5cGVQYXJhbUF0dHJpYnV0ZScs
CisgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcsCisgICAgICAgICAgICB1J3N0YXR1
cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAg
ICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcsCi0g
ICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAg
ICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnVHlw
ZWRUZXN0LzAnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICB1J25hbWUnOiB1J1R5cGVkVGVzdC8xJywKLSAgICAgICAg
ICAgIHUndGVzdHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAg
ICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAg
IHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUv
VHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCcKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAg
ICAgIHUnbmFtZSc6CisgICAgICAgICAgICB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZS8xJywKKyAgICAgICAgdSd0ZXN0cyc6CisgICAgICAgICAgICAxLAorICAgICAgICB1J2Zh
aWx1cmVzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZGlzYWJsZWQnOgorICAgICAgICAg
ICAgMCwKKyAgICAgICAgdSdlcnJvcnMnOgorICAgICAgICAgICAgMCwKKyAgICAgICAgdSd0aW1l
JzoKKyAgICAgICAgICAgIHUnKicsCisgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAg
IHUnKicsCisgICAgICAgIHUndGVzdHN1aXRlJzogW3sKKyAgICAgICAgICAgIHUnbmFtZSc6IHUn
SGFzVHlwZVBhcmFtQXR0cmlidXRlJywKKyAgICAgICAgICAgIHUndHlwZV9wYXJhbSc6IHUnbG9u
ZycsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0
JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAg
IHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
dSduYW1lJzogdSdIYXNUeXBlUGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1
J3R5cGVfcGFyYW0nOiB1J2xvbmcnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUn
UlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAg
ICAgICAgdSdjbGFzc25hbWUnOiB1J1R5cGVkVGVzdC8xJwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdSduYW1lJzog
dSdTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8wJywKLSAgICAgICAgICAgIHUndGVz
dHMnOiAxLAotICAgICAgICAgICAgdSdmYWlsdXJlcyc6IDAsCi0gICAgICAgICAgICB1J2Rpc2Fi
bGVkJzogMCwKLSAgICAgICAgICAgIHUnZXJyb3JzJzogMCwKKyAgICAgICAgICAgIHUndGltZXN0
YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVHlwZVBhcmFt
ZXRlcml6ZWRUZXN0U3VpdGUvMScKKyAgICAgICAgfV0KKyAgICB9LCB7CisgICAgICAgIHUnbmFt
ZSc6CisgICAgICAgICAgICB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcsCisgICAgICAgIHUndGVz
dHMnOgorICAgICAgICAgICAgNCwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3Jz
JzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUndGltZSc6CisgICAgICAgICAgICB1JyonLAor
ICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3Rlc3Rz
dWl0ZSc6IFt7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUv
MCcsCisgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCisgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01QTEVURUQnLAogICAg
ICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1aXRlJzogWwotICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzogdSdIYXNUeXBlUGFy
YW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5cGVfcGFyYW0nOiB1J2ludCcs
Ci0gICAgICAgICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAg
ICAgICB1J3RpbWUnOiB1JyonLAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUn
U2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMCcKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHUnbmFtZSc6
IHUnU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UvMScsCi0gICAgICAgICAgICB1J3Rl
c3RzJzogMSwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNh
YmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVz
dGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFy
YW1UZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0hhc1ZhbHVlUGFy
YW1BdHRyaWJ1dGUvMScsCisgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSc0MicsCisgICAg
ICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUncmVzdWx0JzogdSdDT01Q
TEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgIHUndGVzdHN1
aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdSduYW1lJzog
dSdIYXNUeXBlUGFyYW1BdHRyaWJ1dGUnLAotICAgICAgICAgICAgICAgICAgICB1J3R5cGVfcGFy
YW0nOiB1J2xvbmcnLAotICAgICAgICAgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKLSAg
ICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAgICAgICAgICAgICAgICAgdSdj
bGFzc25hbWUnOiB1J1NpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzEnCi0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAg
ICAgICB1J25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcsCi0gICAgICAgICAgICB1J3Rl
c3RzJzogNCwKLSAgICAgICAgICAgIHUnZmFpbHVyZXMnOiAwLAotICAgICAgICAgICAgdSdkaXNh
YmxlZCc6IDAsCi0gICAgICAgICAgICB1J2Vycm9ycyc6IDAsCisgICAgICAgICAgICB1J3RpbWVz
dGFtcCc6IHUnKicsCisgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFy
YW1UZXN0JworICAgICAgICB9LCB7CisgICAgICAgICAgICB1J25hbWUnOiB1J0Fub3RoZXJUZXN0
VGhhdEhhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMCcsCisgICAgICAgICAgICB1J3ZhbHVlX3BhcmFt
JzogdSczMycsCisgICAgICAgICAgICB1J3N0YXR1cyc6IHUnUlVOJywKKyAgICAgICAgICAgIHUn
cmVzdWx0JzogdSdDT01QTEVURUQnLAogICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAg
ICAgICAgIHUndGVzdHN1aXRlJzogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgdSduYW1lJzogdSdIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAnLAotICAgICAgICAgICAg
ICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSczMycsCi0gICAgICAgICAgICAgICAgICAgIHUnc3Rh
dHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1JyonLAotICAgICAg
ICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1UZXN0JwotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1
J25hbWUnOiB1J0hhc1ZhbHVlUGFyYW1BdHRyaWJ1dGUvMScsCi0gICAgICAgICAgICAgICAgICAg
IHUndmFsdWVfcGFyYW0nOiB1JzQyJywKLSAgICAgICAgICAgICAgICAgICAgdSdzdGF0dXMnOiB1
J1JVTicsCi0gICAgICAgICAgICAgICAgICAgIHUndGltZSc6IHUnKicsCi0gICAgICAgICAgICAg
ICAgICAgIHUnY2xhc3NuYW1lJzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCi0gICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHUnbmFtZSc6
IHUnQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8wJywKLSAgICAgICAgICAg
ICAgICAgICAgdSd2YWx1ZV9wYXJhbSc6IHUnMzMnLAotICAgICAgICAgICAgICAgICAgICB1J3N0
YXR1cyc6IHUnUlVOJywKLSAgICAgICAgICAgICAgICAgICAgdSd0aW1lJzogdScqJywKLSAgICAg
ICAgICAgICAgICAgICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
dSduYW1lJzogdSdBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEnLAotICAg
ICAgICAgICAgICAgICAgICB1J3ZhbHVlX3BhcmFtJzogdSc0MicsCi0gICAgICAgICAgICAgICAg
ICAgIHUnc3RhdHVzJzogdSdSVU4nLAotICAgICAgICAgICAgICAgICAgICB1J3RpbWUnOiB1Jyon
LAotICAgICAgICAgICAgICAgICAgICB1J2NsYXNzbmFtZSc6IHUnU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0JwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfQotICAgIF0K
KyAgICAgICAgICAgIHUndGltZXN0YW1wJzogdScqJywKKyAgICAgICAgICAgIHUnY2xhc3NuYW1l
JzogdSdTaW5nbGUvVmFsdWVQYXJhbVRlc3QnCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHUn
bmFtZSc6IHUnQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0ZS8xJywKKyAgICAg
ICAgICAgIHUndmFsdWVfcGFyYW0nOiB1JzQyJywKKyAgICAgICAgICAgIHUnc3RhdHVzJzogdSdS
VU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCisgICAgICAgICAgICB1
J3RpbWUnOiB1JyonLAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAorICAgICAgICAg
ICAgdSdjbGFzc25hbWUnOiB1J1NpbmdsZS9WYWx1ZVBhcmFtVGVzdCcKKyAgICAgICAgfV0KKyAg
ICB9XQogfQogCiBFWFBFQ1RFRF9GSUxURVJFRCA9IHsKLSAgICB1J3Rlc3RzJzogMSwKLSAgICB1
J2ZhaWx1cmVzJzogMCwKLSAgICB1J2Rpc2FibGVkJzogMCwKLSAgICB1J2Vycm9ycyc6IDAsCi0g
ICAgdSd0aW1lJzogdScqJywKLSAgICB1J3RpbWVzdGFtcCc6IHUnKicsCi0gICAgdSduYW1lJzog
dSdBbGxUZXN0cycsCi0gICAgdSdhZF9ob2NfcHJvcGVydHknOiB1JzQyJywKKyAgICB1J3Rlc3Rz
JzoKKyAgICAgICAgMSwKKyAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgMCwKKyAgICB1J2Rpc2Fi
bGVkJzoKKyAgICAgICAgMCwKKyAgICB1J2Vycm9ycyc6CisgICAgICAgIDAsCisgICAgdSd0aW1l
JzoKKyAgICAgICAgdScqJywKKyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKicsCisgICAg
dSduYW1lJzoKKyAgICAgICAgdSdBbGxUZXN0cycsCisgICAgdSdhZF9ob2NfcHJvcGVydHknOgor
ICAgICAgICB1JzQyJywKICAgICB1J3Rlc3RzdWl0ZXMnOiBbewotICAgICAgICB1J25hbWUnOiB1
J1N1Y2Nlc3NmdWxUZXN0JywKLSAgICAgICAgdSd0ZXN0cyc6IDEsCi0gICAgICAgIHUnZmFpbHVy
ZXMnOiAwLAotICAgICAgICB1J2Rpc2FibGVkJzogMCwKLSAgICAgICAgdSdlcnJvcnMnOiAwLAot
ICAgICAgICB1J3RpbWUnOiB1JyonLAorICAgICAgICB1J25hbWUnOgorICAgICAgICAgICAgdSdT
dWNjZXNzZnVsVGVzdCcsCisgICAgICAgIHUndGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAg
ICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAg
ICAgICAgICAgIDAsCisgICAgICAgIHUnZXJyb3JzJzoKKyAgICAgICAgICAgIDAsCisgICAgICAg
IHUndGltZSc6CisgICAgICAgICAgICB1JyonLAorICAgICAgICB1J3RpbWVzdGFtcCc6CisgICAg
ICAgICAgICB1JyonLAogICAgICAgICB1J3Rlc3RzdWl0ZSc6IFt7CiAgICAgICAgICAgICB1J25h
bWUnOiB1J1N1Y2NlZWRzJywKICAgICAgICAgICAgIHUnc3RhdHVzJzogdSdSVU4nLAorICAgICAg
ICAgICAgdSdyZXN1bHQnOiB1J0NPTVBMRVRFRCcsCiAgICAgICAgICAgICB1J3RpbWUnOiB1Jyon
LAorICAgICAgICAgICAgdSd0aW1lc3RhbXAnOiB1JyonLAogICAgICAgICAgICAgdSdjbGFzc25h
bWUnOiB1J1N1Y2Nlc3NmdWxUZXN0JywKICAgICAgICAgfV0KICAgICB9XSwKIH0KIAotRVhQRUNU
RURfRU1QVFkgPSB7Ci0gICAgdSd0ZXN0cyc6IDAsCi0gICAgdSdmYWlsdXJlcyc6IDAsCi0gICAg
dSdkaXNhYmxlZCc6IDAsCi0gICAgdSdlcnJvcnMnOiAwLAotICAgIHUndGltZSc6IHUnKicsCi0g
ICAgdSd0aW1lc3RhbXAnOiB1JyonLAotICAgIHUnbmFtZSc6IHUnQWxsVGVzdHMnLAotICAgIHUn
dGVzdHN1aXRlcyc6IFtdLAorRVhQRUNURURfTk9fVEVTVCA9IHsKKyAgICB1J3Rlc3RzJzoKKyAg
ICAgICAgMCwKKyAgICB1J2ZhaWx1cmVzJzoKKyAgICAgICAgMCwKKyAgICB1J2Rpc2FibGVkJzoK
KyAgICAgICAgMCwKKyAgICB1J2Vycm9ycyc6CisgICAgICAgIDAsCisgICAgdSd0aW1lJzoKKyAg
ICAgICAgdScqJywKKyAgICB1J3RpbWVzdGFtcCc6CisgICAgICAgIHUnKicsCisgICAgdSduYW1l
JzoKKyAgICAgICAgdSdBbGxUZXN0cycsCisgICAgdSd0ZXN0c3VpdGVzJzogW3sKKyAgICAgICAg
dSduYW1lJzoKKyAgICAgICAgICAgIHUnTm9uVGVzdFN1aXRlRmFpbHVyZScsCisgICAgICAgIHUn
dGVzdHMnOgorICAgICAgICAgICAgMSwKKyAgICAgICAgdSdmYWlsdXJlcyc6CisgICAgICAgICAg
ICAxLAorICAgICAgICB1J2Rpc2FibGVkJzoKKyAgICAgICAgICAgIDAsCisgICAgICAgIHUnc2tp
cHBlZCc6CisgICAgICAgICAgICAwLAorICAgICAgICB1J2Vycm9ycyc6CisgICAgICAgICAgICAw
LAorICAgICAgICB1J3RpbWUnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0aW1lc3Rh
bXAnOgorICAgICAgICAgICAgdScqJywKKyAgICAgICAgdSd0ZXN0c3VpdGUnOiBbeworICAgICAg
ICAgICAgdSduYW1lJzoKKyAgICAgICAgICAgICAgICB1JycsCisgICAgICAgICAgICB1J3N0YXR1
cyc6CisgICAgICAgICAgICAgICAgdSdSVU4nLAorICAgICAgICAgICAgdSdyZXN1bHQnOgorICAg
ICAgICAgICAgICAgIHUnQ09NUExFVEVEJywKKyAgICAgICAgICAgIHUndGltZSc6CisgICAgICAg
ICAgICAgICAgdScqJywKKyAgICAgICAgICAgIHUndGltZXN0YW1wJzoKKyAgICAgICAgICAgICAg
ICB1JyonLAorICAgICAgICAgICAgdSdjbGFzc25hbWUnOgorICAgICAgICAgICAgICAgIHUnJywK
KyAgICAgICAgICAgIHUnZmFpbHVyZXMnOiBbeworICAgICAgICAgICAgICAgIHUnZmFpbHVyZSc6
IHUnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdC5jYzoqXG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdSdFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6XG4nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdScgIDFcbiAgMicgKyBTVEFDS19UUkFDRV9URU1QTEFURSwKKyAg
ICAgICAgICAgICAgICB1J3R5cGUnOiB1JycsCisgICAgICAgICAgICB9XQorICAgICAgICB9XQor
ICAgIH1dLAogfQogCiBHVEVTVF9QUk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRl
c3RFeGVjdXRhYmxlUGF0aChHVEVTVF9QUk9HUkFNX05BTUUpCkBAIC00NTksMTQgKzY4OSwxNCBA
QCBjbGFzcyBHVGVzdEpzb25PdXRwdXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNl
KToKICAgICAgICIiIgogICAgICAgc2VsZi5fVGVzdEpzb25PdXRwdXQoR1RFU1RfUFJPR1JBTV9O
QU1FLCBFWFBFQ1RFRF9OT05fRU1QVFksIDEpCiAKLSAgZGVmIHRlc3RFbXB0eUpzb25PdXRwdXQo
c2VsZik6CisgIGRlZiB0ZXN0Tm9UZXN0SnNvbk91dHB1dChzZWxmKToKICAgICAiIiJWZXJpZmll
cyBKU09OIG91dHB1dCBmb3IgYSBHb29nbGUgVGVzdCBiaW5hcnkgd2l0aG91dCBhY3R1YWwgdGVz
dHMuCiAKLSAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIGVtcHR5IEpT
T04gb3V0cHV0LCBhbmQKLSAgICB0ZXN0cyB0aGF0IHRoZSBKU09OIG91dHB1dCBpcyBleHBlY3Rl
ZC4KKyAgICBSdW5zIGEgdGVzdCBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIGFuIEpTT04gb3V0cHV0
IGZvciBhIGJpbmFyeSB3aXRoIG5vCisgICAgdGVzdHMsIGFuZCB0ZXN0cyB0aGF0IHRoZSBKU09O
IG91dHB1dCBpcyBleHBlY3RlZC4KICAgICAiIiIKIAotICAgIHNlbGYuX1Rlc3RKc29uT3V0cHV0
KCdndGVzdF9ub190ZXN0X3VuaXR0ZXN0JywgRVhQRUNURURfRU1QVFksIDApCisgICAgc2VsZi5f
VGVzdEpzb25PdXRwdXQoJ2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9OT19URVNU
LCAwKQogCiAgIGRlZiB0ZXN0VGltZXN0YW1wVmFsdWUoc2VsZik6CiAgICAgIiIiQ2hlY2tzIHdo
ZXRoZXIgdGhlIHRpbWVzdGFtcCBhdHRyaWJ1dGUgaW4gdGhlIEpTT04gb3V0cHV0IGlzIHZhbGlk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxp
bmtlZC1wdHItdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC1saW5rZWQtcHRyLXRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhMDBm
MzQyOTZiZDU3OTRjMTY0NDc5ZjIyYTg4ZGQ0ZjczNjAwMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LWxpbmtlZC1wdHItdGVzdC5jYworKysgL2Rldi9udWxsCkBAIC0xLDE1MSArMCww
IEBACi0vLyBDb3B5cmlnaHQgMjAwMywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpbmNs
dWRlIDxzdGRsaWIuaD4KLQotI2luY2x1ZGUgImd0ZXN0L2ludGVybmFsL2d0ZXN0LWxpbmtlZF9w
dHIuaCIKLSNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgotCi1uYW1lc3BhY2UgewotCi11c2luZyB0
ZXN0aW5nOjpNZXNzYWdlOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OmxpbmtlZF9wdHI7Ci0K
LWludCBudW07Ci1NZXNzYWdlKiBoaXN0b3J5ID0gTlVMTDsKLQotLy8gQ2xhc3Mgd2hpY2ggdHJh
Y2tzIGFsbG9jYXRpb24vZGVhbGxvY2F0aW9uCi1jbGFzcyBBIHsKLSBwdWJsaWM6Ci0gIEEoKTog
bXludW0obnVtKyspIHsgKmhpc3RvcnkgPDwgIkEiIDw8IG15bnVtIDw8ICIgY3RvclxuIjsgfQot
ICB2aXJ0dWFsIH5BKCkgeyAqaGlzdG9yeSA8PCAiQSIgPDwgbXludW0gPDwgIiBkdG9yXG4iOyB9
Ci0gIHZpcnR1YWwgdm9pZCBVc2UoKSB7ICpoaXN0b3J5IDw8ICJBIiA8PCBteW51bSA8PCAiIHVz
ZVxuIjsgfQotIHByb3RlY3RlZDoKLSAgaW50IG15bnVtOwotfTsKLQotLy8gU3ViY2xhc3MKLWNs
YXNzIEIgOiBwdWJsaWMgQSB7Ci0gcHVibGljOgotICBCKCkgeyAqaGlzdG9yeSA8PCAiQiIgPDwg
bXludW0gPDwgIiBjdG9yXG4iOyB9Ci0gIH5CKCkgeyAqaGlzdG9yeSA8PCAiQiIgPDwgbXludW0g
PDwgIiBkdG9yXG4iOyB9Ci0gIHZpcnR1YWwgdm9pZCBVc2UoKSB7ICpoaXN0b3J5IDw8ICJCIiA8
PCBteW51bSA8PCAiIHVzZVxuIjsgfQotfTsKLQotY2xhc3MgTGlua2VkUHRyVGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKLSBwdWJsaWM6Ci0gIExpbmtlZFB0clRlc3QoKSB7Ci0gICAgbnVt
ID0gMDsKLSAgICBoaXN0b3J5ID0gbmV3IE1lc3NhZ2U7Ci0gIH0KLQotICB2aXJ0dWFsIH5MaW5r
ZWRQdHJUZXN0KCkgewotICAgIGRlbGV0ZSBoaXN0b3J5OwotICAgIGhpc3RvcnkgPSBOVUxMOwot
ICB9Ci19OwotCi1URVNUX0YoTGlua2VkUHRyVGVzdCwgR2VuZXJhbFRlc3QpIHsKLSAgewotICAg
IGxpbmtlZF9wdHI8QT4gYTAsIGExLCBhMjsKLSAgICAvLyBVc2UgZXhwbGljaXQgZnVuY3Rpb24g
Y2FsbCBub3RhdGlvbiBoZXJlIHRvIHN1cHByZXNzIHNlbGYtYXNzaWduIHdhcm5pbmcuCi0gICAg
YTAub3BlcmF0b3I9KGEwKTsKLSAgICBhMSA9IGEyOwotICAgIEFTU0VSVF9FUShhMC5nZXQoKSwg
c3RhdGljX2Nhc3Q8QSo+KE5VTEwpKTsKLSAgICBBU1NFUlRfRVEoYTEuZ2V0KCksIHN0YXRpY19j
YXN0PEEqPihOVUxMKSk7Ci0gICAgQVNTRVJUX0VRKGEyLmdldCgpLCBzdGF0aWNfY2FzdDxBKj4o
TlVMTCkpOwotICAgIEFTU0VSVF9UUlVFKGEwID09IE5VTEwpOwotICAgIEFTU0VSVF9UUlVFKGEx
ID09IE5VTEwpOwotICAgIEFTU0VSVF9UUlVFKGEyID09IE5VTEwpOwotCi0gICAgewotICAgICAg
bGlua2VkX3B0cjxBPiBhMyhuZXcgQSk7Ci0gICAgICBhMCA9IGEzOwotICAgICAgQVNTRVJUX1RS
VUUoYTAgPT0gYTMpOwotICAgICAgQVNTRVJUX1RSVUUoYTAgIT0gTlVMTCk7Ci0gICAgICBBU1NF
UlRfVFJVRShhMC5nZXQoKSA9PSBhMyk7Ci0gICAgICBBU1NFUlRfVFJVRShhMCA9PSBhMy5nZXQo
KSk7Ci0gICAgICBsaW5rZWRfcHRyPEE+IGE0KGEwKTsKLSAgICAgIGExID0gYTQ7Ci0gICAgICBs
aW5rZWRfcHRyPEE+IGE1KG5ldyBBKTsKLSAgICAgIEFTU0VSVF9UUlVFKGE1LmdldCgpICE9IGEz
KTsKLSAgICAgIEFTU0VSVF9UUlVFKGE1ICE9IGEzLmdldCgpKTsKLSAgICAgIGEyID0gYTU7Ci0g
ICAgICBsaW5rZWRfcHRyPEI+IGIwKG5ldyBCKTsKLSAgICAgIGxpbmtlZF9wdHI8QT4gYTYoYjAp
OwotICAgICAgQVNTRVJUX1RSVUUoYjAgPT0gYTYpOwotICAgICAgQVNTRVJUX1RSVUUoYTYgPT0g
YjApOwotICAgICAgQVNTRVJUX1RSVUUoYjAgIT0gTlVMTCk7Ci0gICAgICBhNSA9IGIwOwotICAg
ICAgYTUgPSBiMDsKLSAgICAgIGEzLT5Vc2UoKTsKLSAgICAgIGE0LT5Vc2UoKTsKLSAgICAgIGE1
LT5Vc2UoKTsKLSAgICAgIGE2LT5Vc2UoKTsKLSAgICAgIGIwLT5Vc2UoKTsKLSAgICAgICgqYjAp
LlVzZSgpOwotICAgICAgYjAuZ2V0KCktPlVzZSgpOwotICAgIH0KLQotICAgIGEwLT5Vc2UoKTsK
LSAgICBhMS0+VXNlKCk7Ci0gICAgYTItPlVzZSgpOwotCi0gICAgYTEgPSBhMjsKLSAgICBhMi5y
ZXNldChuZXcgQSk7Ci0gICAgYTAucmVzZXQoKTsKLQotICAgIGxpbmtlZF9wdHI8QT4gYTc7Ci0g
IH0KLQotICBBU1NFUlRfU1RSRVEoCi0gICAgIkEwIGN0b3JcbiIKLSAgICAiQTEgY3RvclxuIgot
ICAgICJBMiBjdG9yXG4iCi0gICAgIkIyIGN0b3JcbiIKLSAgICAiQTAgdXNlXG4iCi0gICAgIkEw
IHVzZVxuIgotICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIHVzZVxuIgot
ICAgICJCMiB1c2VcbiIKLSAgICAiQjIgdXNlXG4iCi0gICAgIkIyIGR0b3JcbiIKLSAgICAiQTIg
ZHRvclxuIgotICAgICJBMCB1c2VcbiIKLSAgICAiQTAgdXNlXG4iCi0gICAgIkExIHVzZVxuIgot
ICAgICJBMyBjdG9yXG4iCi0gICAgIkEwIGR0b3JcbiIKLSAgICAiQTMgZHRvclxuIgotICAgICJB
MSBkdG9yXG4iLAotICAgIGhpc3RvcnktPkdldFN0cmluZygpLmNfc3RyKCkpOwotfQotCi19ICAv
LyBVbm5hbWVkIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LWxpc3QtdGVzdHMtdW5pdHRlc3RfLmNjCmluZGV4IGY0
NzNjN2QxYTQ1ZjFmMTk2YjEzNzQ4M2IwNTNjYTU5ODAwN2QyODguLjQ5M2M2ZjAwNDY0YTkwZDYz
NWQ4ZGYwOTZiZmZlYzUxNzNlNmU0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0LXRlc3RzLXVuaXR0ZXN0Xy5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdC10ZXN0cy11bml0dGVzdF8uY2MK
QEAgLTk5LDcgKzk5LDcgQEAgVEVTVF9QKFZhbHVlUGFyYW1UZXN0LCBUZXN0QSkgewogVEVTVF9Q
KFZhbHVlUGFyYW1UZXN0LCBUZXN0QikgewogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUCgK
K0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgKICAgICBNeUluc3RhbnRpYXRpb24sIFZhbHVlUGFy
YW1UZXN0LAogICAgIHRlc3Rpbmc6OlZhbHVlcyhNeVR5cGUoIm9uZSBsaW5lIiksCiAgICAgICAg
ICAgICAgICAgICAgIE15VHlwZSgidHdvXG5saW5lcyIpLApAQCAtMTIzLDcgKzEyMyw3IEBAIGNs
YXNzIE15QXJyYXkgewogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczxWZXJ5TG9vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29nTmFtZSwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICBpbnQqLCBN
eUFycmF5PGJvb2wsIDQyPiA+IE15VHlwZXM7CiAKLVRZUEVEX1RFU1RfQ0FTRShUeXBlZFRlc3Qs
IE15VHlwZXMpOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRlc3QsIE15VHlwZXMpOwogCiBUWVBF
RF9URVNUKFR5cGVkVGVzdCwgVGVzdEEpIHsKIH0KQEAgLTEzNyw3ICsxMzcsNyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVQYXJhbVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1UZXN0KTsKK1RZUEVEX1RFU1Rf
U1VJVEVfUChUeXBlUGFyYW1UZXN0KTsKIAogVFlQRURfVEVTVF9QKFR5cGVQYXJhbVRlc3QsIFRl
c3RBKSB7CiB9CkBAIC0xNDUsOSArMTQ1LDkgQEAgVFlQRURfVEVTVF9QKFR5cGVQYXJhbVRlc3Qs
IFRlc3RBKSB7CiBUWVBFRF9URVNUX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEIpIHsKIH0KIAotUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtVGVzdCwgVGVzdEEsIFRlc3RCKTsKK1JF
R0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1UZXN0LCBUZXN0QSwgVGVzdEIpOwog
Ci1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0VfUChNeSwgVHlwZVBhcmFtVGVzdCwgTXlUeXBl
cyk7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIFR5cGVQYXJhbVRlc3QsIE15
VHlwZXMpOwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgOjp0ZXN0aW5n
OjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbGlzdGVuZXItdGVzdC5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCmluZGV4IDgzNTU1
OTcxNTFkMDlkNmMzMTU2NzFmNDJkYjY2Y2M0YmQ0ODUwZmQuLjEwNDU3YWZlMzlhN2RiZDFmYTBm
NzMzOTI4Njc4NzI4ZGNkMWI5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1saXN0ZW5lci10ZXN0LmNjCkBAIC0zNSwxOSArMzUsMjAg
QEAKICNpbmNsdWRlIDx2ZWN0b3I+CiAKICNpbmNsdWRlICJndGVzdC9ndGVzdC5oIgorI2luY2x1
ZGUgImd0ZXN0L2ludGVybmFsL2N1c3RvbS9ndGVzdC5oIgogCiB1c2luZyA6OnRlc3Rpbmc6OkFk
ZEdsb2JhbFRlc3RFbnZpcm9ubWVudDsKIHVzaW5nIDo6dGVzdGluZzo6RW52aXJvbm1lbnQ7CiB1
c2luZyA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0OwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0Owot
dXNpbmcgOjp0ZXN0aW5nOjpUZXN0Q2FzZTsKK3VzaW5nIDo6dGVzdGluZzo6VGVzdFN1aXRlOwog
dXNpbmcgOjp0ZXN0aW5nOjpUZXN0RXZlbnRMaXN0ZW5lcjsKIHVzaW5nIDo6dGVzdGluZzo6VGVz
dEluZm87CiB1c2luZyA6OnRlc3Rpbmc6OlRlc3RQYXJ0UmVzdWx0OwogdXNpbmcgOjp0ZXN0aW5n
OjpVbml0VGVzdDsKIAogLy8gVXNlZCBieSB0ZXN0cyB0byByZWdpc3RlciB0aGVpciBldmVudHMu
Ci1zdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4qIGdfZXZlbnRzID0gTlVMTDsKK3N0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiogZ19ldmVudHMgPSBudWxscHRyOwogCiBuYW1lc3BhY2UgdGVzdGluZyB7
CiBuYW1lc3BhY2UgaW50ZXJuYWwgewpAQCAtNTcsNjMgKzU4LDY2IEBAIGNsYXNzIEV2ZW50UmVj
b3JkaW5nTGlzdGVuZXIgOiBwdWJsaWMgVGVzdEV2ZW50TGlzdGVuZXIgewogICBleHBsaWNpdCBF
dmVudFJlY29yZGluZ0xpc3RlbmVyKGNvbnN0IGNoYXIqIG5hbWUpIDogbmFtZV8obmFtZSkge30K
IAogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBV
bml0VGVzdCYgLyp1bml0X3Rlc3QqLykgeworICB2b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25z
dCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNo
X2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFByb2dyYW1TdGFydCIpKTsKICAgfQogCi0g
IHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRp
b24pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlcmF0aW9uKSBvdmVy
cmlkZSB7CiAgICAgTWVzc2FnZSBtZXNzYWdlOwogICAgIG1lc3NhZ2UgPDwgR2V0RnVsbE1ldGhv
ZE5hbWUoIk9uVGVzdEl0ZXJhdGlvblN0YXJ0IikKICAgICAgICAgICAgIDw8ICIoIiA8PCBpdGVy
YXRpb24gPDwgIikiOwogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmco
KSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0
YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVu
dHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
IikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uRW52aXJvbm1lbnRzU2V0VXBFbmQoY29uc3Qg
VW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5k
KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcEVuZCIpKTsK
ICAgfQotCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RDYXNlU3RhcnQoY29uc3QgVGVzdENhc2UmIC8q
dGVzdF9jYXNlKi8pIHsKKyNpZm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElf
CisgIHZvaWQgT25UZXN0Q2FzZVN0YXJ0KGNvbnN0IFRlc3RDYXNlJiAvKnRlc3RfY2FzZSovKSBv
dmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25U
ZXN0Q2FzZVN0YXJ0IikpOwogICB9CisjZW5kaWYgIC8vIEdURVNUX1JFTU9WRV9MRUdBQ1lfVEVT
VF9DQVNFQVBJXwogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChjb25zdCBUZXN0SW5mbyYg
Lyp0ZXN0X2luZm8qLykgeworICB2b2lkIE9uVGVzdFN0YXJ0KGNvbnN0IFRlc3RJbmZvJiAvKnRl
c3RfaW5mbyovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0
aG9kTmFtZSgiT25UZXN0U3RhcnQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0UGFy
dFJlc3VsdChjb25zdCBUZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIHsKKyAg
dm9pZCBPblRlc3RQYXJ0UmVzdWx0KGNvbnN0IFRlc3RQYXJ0UmVzdWx0JiAvKnRlc3RfcGFydF9y
ZXN1bHQqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhv
ZE5hbWUoIk9uVGVzdFBhcnRSZXN1bHQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0
RW5kKGNvbnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSB7CisgIHZvaWQgT25UZXN0RW5kKGNv
bnN0IFRlc3RJbmZvJiAvKnRlc3RfaW5mbyovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1
c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0RW5kIikpOwogICB9CiAKLSAgdmlydHVh
bCB2b2lkIE9uVGVzdENhc2VFbmQoY29uc3QgVGVzdENhc2UmIC8qdGVzdF9jYXNlKi8pIHsKKyNp
Zm5kZWYgR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCisgIHZvaWQgT25UZXN0Q2Fz
ZUVuZChjb25zdCBUZXN0Q2FzZSYgLyp0ZXN0X2Nhc2UqLykgb3ZlcnJpZGUgewogICAgIGdfZXZl
bnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdENhc2VFbmQiKSk7CiAgIH0K
KyNlbmRpZiAgLy8gR1RFU1RfUkVNT1ZFX0xFR0FDWV9URVNUX0NBU0VBUElfCiAKLSAgdmlydHVh
bCB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgeworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydChjb25zdCBVbml0
VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNoX2JhY2so
R2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIpKTsKICAgfQog
Ci0gIHZpcnR1YWwgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duRW5kKGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZChjb25z
dCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIGdfZXZlbnRzLT5wdXNo
X2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiKSk7CiAg
IH0KIAotICB2aXJ0dWFsIHZvaWQgT25UZXN0SXRlcmF0aW9uRW5kKGNvbnN0IFVuaXRUZXN0JiAv
KnVuaXRfdGVzdCovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVy
YXRpb24pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJy
aWRlIHsKICAgICBNZXNzYWdlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZSA8PCBHZXRGdWxsTWV0aG9k
TmFtZSgiT25UZXN0SXRlcmF0aW9uRW5kIikKICAgICAgICAgICAgIDw8ICIoIiAgPDwgaXRlcmF0
aW9uIDw8ICIpIjsKICAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKG1lc3NhZ2UuR2V0U3RyaW5nKCkp
OwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVzdFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3Qm
IC8qdW5pdF90ZXN0Ki8pIHsKKyAgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0
JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRG
dWxsTWV0aG9kTmFtZSgiT25UZXN0UHJvZ3JhbUVuZCIpKTsKICAgfQogCkBAIC0xMjUsMzQgKzEy
OSw5OCBAQCBjbGFzcyBFdmVudFJlY29yZGluZ0xpc3RlbmVyIDogcHVibGljIFRlc3RFdmVudExp
c3RlbmVyIHsKICAgc3RkOjpzdHJpbmcgbmFtZV87CiB9OwogCi1jbGFzcyBFbnZpcm9ubWVudElu
dm9jYXRpb25DYXRjaGVyIDogcHVibGljIEVudmlyb25tZW50IHsKKy8vIFRoaXMgbGlzdGVuZXIg
aXMgdXNpbmcgT25UZXN0U3VpdGVTdGFydCwgT25UZXN0U3VpdGVFbmQgQVBJCitjbGFzcyBFdmVu
dFJlY29yZGluZ0xpc3RlbmVyMiA6IHB1YmxpYyBUZXN0RXZlbnRMaXN0ZW5lciB7CisgcHVibGlj
OgorICBleHBsaWNpdCBFdmVudFJlY29yZGluZ0xpc3RlbmVyMihjb25zdCBjaGFyKiBuYW1lKSA6
IG5hbWVfKG5hbWUpIHt9CisKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsK
LSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVudDo6U2V0VXAiKTsKKyAgdm9pZCBP
blRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRl
IHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQcm9n
cmFtU3RhcnQiKSk7CisgIH0KKworICB2b2lkIE9uVGVzdEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVu
aXRUZXN0JiAvKnVuaXRfdGVzdCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBp
dGVyYXRpb24pIG92ZXJyaWRlIHsKKyAgICBNZXNzYWdlIG1lc3NhZ2U7CisgICAgbWVzc2FnZSA8
PCBHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0SXRlcmF0aW9uU3RhcnQiKSA8PCAiKCIgPDwgaXRl
cmF0aW9uCisgICAgICAgICAgICA8PCAiKSI7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhtZXNz
YWdlLkdldFN0cmluZygpKTsKKyAgfQorCisgIHZvaWQgT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0
KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CisgICAgZ19ldmVudHMt
PnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0Iikp
OworICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1NldFVwRW5kKGNvbnN0IFVuaXRUZXN0JiAv
KnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxs
TWV0aG9kTmFtZSgiT25FbnZpcm9ubWVudHNTZXRVcEVuZCIpKTsKKyAgfQorCisgIHZvaWQgT25U
ZXN0U3VpdGVTdGFydChjb25zdCBUZXN0U3VpdGUmIC8qdGVzdF9zdWl0ZSovKSBvdmVycmlkZSB7
CisgICAgZ19ldmVudHMtPnB1c2hfYmFjayhHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0U3VpdGVT
dGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0U3RhcnQoY29uc3QgVGVzdEluZm8mIC8qdGVz
dF9pbmZvKi8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPblRlc3RTdGFydCIpKTsKKyAgfQorCisgIHZvaWQgT25UZXN0UGFydFJlc3VsdChj
b25zdCBUZXN0UGFydFJlc3VsdCYgLyp0ZXN0X3BhcnRfcmVzdWx0Ki8pIG92ZXJyaWRlIHsKKyAg
ICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQYXJ0UmVzdWx0
IikpOworICB9CisKKyAgdm9pZCBPblRlc3RFbmQoY29uc3QgVGVzdEluZm8mIC8qdGVzdF9pbmZv
Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1l
KCJPblRlc3RFbmQiKSk7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAg
Z19ldmVudHMtPnB1c2hfYmFjaygiRW52aXJvbm1lbnQ6OlRlYXJEb3duIik7CisgIHZvaWQgT25U
ZXN0U3VpdGVFbmQoY29uc3QgVGVzdFN1aXRlJiAvKnRlc3Rfc3VpdGUqLykgb3ZlcnJpZGUgewor
ICAgIGdfZXZlbnRzLT5wdXNoX2JhY2soR2V0RnVsbE1ldGhvZE5hbWUoIk9uVGVzdFN1aXRlRW5k
IikpOwogICB9CisKKyAgdm9pZCBPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQoY29uc3QgVW5p
dFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNr
KEdldEZ1bGxNZXRob2ROYW1lKCJPbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiKSk7CisgIH0K
KworICB2b2lkIE9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRo
b2ROYW1lKCJPbkVudmlyb25tZW50c1RlYXJEb3duRW5kIikpOworICB9CisKKyAgdm9pZCBPblRl
c3RJdGVyYXRpb25FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBpdGVyYXRpb24pIG92ZXJyaWRlIHsKKyAgICBNZXNzYWdlIG1l
c3NhZ2U7CisgICAgbWVzc2FnZSA8PCBHZXRGdWxsTWV0aG9kTmFtZSgiT25UZXN0SXRlcmF0aW9u
RW5kIikgPDwgIigiIDw8IGl0ZXJhdGlvbgorICAgICAgICAgICAgPDwgIikiOworICAgIGdfZXZl
bnRzLT5wdXNoX2JhY2sobWVzc2FnZS5HZXRTdHJpbmcoKSk7CisgIH0KKworICB2b2lkIE9uVGVz
dFByb2dyYW1FbmQoY29uc3QgVW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAg
ICBnX2V2ZW50cy0+cHVzaF9iYWNrKEdldEZ1bGxNZXRob2ROYW1lKCJPblRlc3RQcm9ncmFtRW5k
IikpOworICB9CisKKyBwcml2YXRlOgorICBzdGQ6OnN0cmluZyBHZXRGdWxsTWV0aG9kTmFtZShj
b25zdCBjaGFyKiBuYW1lKSB7IHJldHVybiBuYW1lXyArICIuIiArIG5hbWU7IH0KKworICBzdGQ6
OnN0cmluZyBuYW1lXzsKK307CisKK2NsYXNzIEVudmlyb25tZW50SW52b2NhdGlvbkNhdGNoZXIg
OiBwdWJsaWMgRW52aXJvbm1lbnQgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJy
aWRlIHsgZ19ldmVudHMtPnB1c2hfYmFjaygiRW52aXJvbm1lbnQ6OlNldFVwIik7IH0KKworICB2
b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBnX2V2ZW50cy0+cHVzaF9iYWNrKCJFbnZpcm9ubWVu
dDo6VGVhckRvd24iKTsgfQogfTsKIAogY2xhc3MgTGlzdGVuZXJUZXN0IDogcHVibGljIFRlc3Qg
ewogIHByb3RlY3RlZDoKLSAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKLSAgICBnX2V2
ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdENhc2UiKTsKKyAgc3RhdGlj
IHZvaWQgU2V0VXBUZXN0U3VpdGUoKSB7CisgICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVu
ZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIpOwogICB9CiAKLSAgc3RhdGljIHZvaWQgVGVhckRvd25U
ZXN0Q2FzZSgpIHsKLSAgICBnX2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlRlYXJE
b3duVGVzdENhc2UiKTsKKyAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAg
Z19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSIpOwog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIGdfZXZlbnRzLT5wdXNoX2JhY2so
Ikxpc3RlbmVyVGVzdDo6U2V0VXAiKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBn
X2V2ZW50cy0+cHVzaF9iYWNrKCJMaXN0ZW5lclRlc3Q6OlNldFVwIik7IH0KIAotICB2aXJ0dWFs
IHZvaWQgVGVhckRvd24oKSB7Ci0gICAgZ19ldmVudHMtPnB1c2hfYmFjaygiTGlzdGVuZXJUZXN0
OjpUZWFyRG93biIpOwotICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGdfZXZlbnRz
LT5wdXNoX2JhY2soIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iKTsgfQogfTsKIAogVEVTVF9GKExp
c3RlbmVyVGVzdCwgRG9lc0ZvbykgewpAQCAtMTczLDYgKzI0MSw3IEBAIFRFU1RfRihMaXN0ZW5l
clRlc3QsIERvZXNCYXIpIHsKIAogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6RW52aXJvbm1l
bnRJbnZvY2F0aW9uQ2F0Y2hlcjsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OkV2ZW50UmVj
b3JkaW5nTGlzdGVuZXI7Cit1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpFdmVudFJlY29yZGlu
Z0xpc3RlbmVyMjsKIAogdm9pZCBWZXJpZnlSZXN1bHRzKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPiYgZGF0YSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjb25zdCogZXhw
ZWN0ZWRfZGF0YSwKQEAgLTIwNyw2ICsyNzYsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpIHsKICAgICAgIG5ldyBFdmVudFJlY29yZGluZ0xpc3RlbmVyKCIxc3QiKSk7CiAgIFVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5saXN0ZW5lcnMoKS5BcHBlbmQoCiAgICAgICBuZXcgRXZl
bnRSZWNvcmRpbmdMaXN0ZW5lcigiMm5kIikpOworICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+
bGlzdGVuZXJzKCkuQXBwZW5kKAorICAgICAgbmV3IEV2ZW50UmVjb3JkaW5nTGlzdGVuZXIyKCIz
cmQiKSk7CiAKICAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBFbnZpcm9ubWVudEludm9j
YXRpb25DYXRjaGVyKTsKIApAQCAtMjE2LDg4ICsyODcsMjI0IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyICoqYXJndikgewogICA6OnRlc3Rpbmc6OkdURVNUX0ZMQUcocmVwZWF0KSA9IDI7CiAg
IGludCByZXRfdmFsID0gUlVOX0FMTF9URVNUUygpOwogCi0gIGNvbnN0IGNoYXIqIGNvbnN0IGV4
cGVjdGVkX2V2ZW50c1tdID0gewotICAgICIxc3QuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKLSAgICAi
Mm5kLk9uVGVzdFByb2dyYW1TdGFydCIsCi0gICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFydCgw
KSIsCi0gICAgIjJuZC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCi0gICAgIjFzdC5PbkVudmly
b25tZW50c1NldFVwU3RhcnQiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwK
LSAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0VXBF
bmQiLAotICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCi0gICAgIjFzdC5PblRlc3RD
YXNlU3RhcnQiLAotICAgICIybmQuT25UZXN0Q2FzZVN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0
OjpTZXRVcFRlc3RDYXNlIiwKLSAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKLSAgICAiMm5kLk9uVGVz
dFN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCi0gICAgIkxpc3RlbmVyVGVzdDo6
KiBUZXN0IEJvZHkiLAotICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIsCi0gICAgIjJuZC5PblRl
c3RQYXJ0UmVzdWx0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCi0gICAgIjJuZC5P
blRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0RW5kIiwKLSAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwK
LSAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCi0gICAg
Ikxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAotICAgICIxc3QuT25UZXN0UGFydFJlc3VsdCIs
Ci0gICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93
biIsCi0gICAgIjJuZC5PblRlc3RFbmQiLAotICAgICIxc3QuT25UZXN0RW5kIiwKLSAgICAiTGlz
dGVuZXJUZXN0OjpUZWFyRG93blRlc3RDYXNlIiwKLSAgICAiMm5kLk9uVGVzdENhc2VFbmQiLAot
ICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3du
U3RhcnQiLAotICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKLSAgICAiRW52
aXJvbm1lbnQ6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQi
LAotICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0gICAgIjJuZC5PblRlc3RJ
dGVyYXRpb25FbmQoMCkiLAotICAgICIxc3QuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKLSAgICAi
MXN0Lk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0
YXJ0KDEpIiwKLSAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCi0gICAgIjJuZC5P
bkVudmlyb25tZW50c1NldFVwU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAotICAg
ICIybmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1Nl
dFVwRW5kIiwKLSAgICAiMXN0Lk9uVGVzdENhc2VTdGFydCIsCi0gICAgIjJuZC5PblRlc3RDYXNl
U3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwVGVzdENhc2UiLAotICAgICIxc3QuT25U
ZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlNl
dFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0gICAgIjFzdC5PblRlc3RQ
YXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAotICAgICJMaXN0ZW5lclRl
c3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAgIjFzdC5PblRlc3RFbmQi
LAotICAgICIxc3QuT25UZXN0U3RhcnQiLAotICAgICIybmQuT25UZXN0U3RhcnQiLAotICAgICJM
aXN0ZW5lclRlc3Q6OlNldFVwIiwKLSAgICAiTGlzdGVuZXJUZXN0OjoqIFRlc3QgQm9keSIsCi0g
ICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKLSAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAot
ICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duIiwKLSAgICAiMm5kLk9uVGVzdEVuZCIsCi0gICAg
IjFzdC5PblRlc3RFbmQiLAotICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdENhc2UiLAot
ICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCi0gICAgIjFzdC5PblRlc3RDYXNlRW5kIiwKLSAgICAi
MXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCi0gICAgIjJuZC5PbkVudmlyb25tZW50
c1RlYXJEb3duU3RhcnQiLAotICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAotICAgICIybmQu
T25FbnZpcm9ubWVudHNUZWFyRG93bkVuZCIsCi0gICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJE
b3duRW5kIiwKLSAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCi0gICAgIjFzdC5PblRl
c3RJdGVyYXRpb25FbmQoMSkiLAotICAgICIybmQuT25UZXN0UHJvZ3JhbUVuZCIsCi0gICAgIjFz
dC5PblRlc3RQcm9ncmFtRW5kIgotICB9OworI2lmbmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RF
U1RfQ0FTRUFQSV8KKworICAvLyBUaGUgZGVwcmVjYXRlZCBPblRlc3RTdWl0ZVN0YXJ0L09uVGVz
dENhc2VTdGFydCBldmVudHMgYXJlIGluY2x1ZGVkCisgIGNvbnN0IGNoYXIqIGNvbnN0IGV4cGVj
dGVkX2V2ZW50c1tdID0geyIxc3QuT25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1T
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25U
ZXN0SXRlcmF0aW9uU3RhcnQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVu
dHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjJuZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1l
bnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Mm5kLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdENhc2VTdGFy
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0
Q2FzZVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxp
c3RlbmVyVGVzdDo6U2V0VXBUZXN0U3VpdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBC
b2R5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRl
c3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RTdGFydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3Rh
cnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJU
ZXN0OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJM
aXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVh
ckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQu
T25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFz
dC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
TGlzdGVuZXJUZXN0OjpUZWFyRG93blRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVFbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdENhc2VFbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdENhc2VFbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRz
VGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlRl
YXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5P
bkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1RlYXJEb3du
RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRl
c3RJdGVyYXRpb25FbmQoMCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25TdGFy
dCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25U
ZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1l
bnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50OjpTZXRVcCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVu
dHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25FbnZpcm9ubWVudHNTZXRVcEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0U3VpdGVTdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZVN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RDYXNlU3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRV
cFRlc3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRS
ZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBU
ZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0
Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRl
YXJEb3duVGVzdFN1aXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjNyZC5PblRlc3RTdWl0ZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIybmQuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIxc3QuT25UZXN0Q2FzZUVuZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6VGVhckRvd24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVh
ckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5k
Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgx
KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0
SXRlcmF0aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFByb2dyYW1FbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFByb2dyYW1FbmQi
fTsKKyNlbHNlCisgIGNvbnN0IGNoYXIqIGNvbnN0IGV4cGVjdGVkX2V2ZW50c1tdID0geyIxc3Qu
T25UZXN0UHJvZ3JhbVN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RQcm9ncmFtU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFByb2dyYW1TdGFydCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0aW9uU3RhcnQoMCki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEl0
ZXJhdGlvblN0YXJ0KDApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjNyZC5PblRlc3RJdGVyYXRpb25TdGFydCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1Nl
dFVwU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3Jk
Lk9uRW52aXJvbm1lbnRzU2V0VXBTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJFbnZpcm9ubWVudDo6U2V0VXAiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzU2V0
VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9u
RW52aXJvbm1lbnRzU2V0VXBFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiM3JkLk9uVGVzdFN1aXRlU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcFRlc3RTdWl0ZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0U3RhcnQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdGFy
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRl
c3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxp
c3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdFBhcnRSZXN1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFy
RG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQuT25U
ZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5P
blRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0
Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIx
c3QuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMm5kLk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjNyZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlNldFVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6KiBUZXN0IEJvZHkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdFBhcnRSZXN1bHQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdFBhcnRS
ZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9u
VGVzdFBhcnRSZXN1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIzcmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjJuZC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OlRlYXJEb3duVGVzdFN1aXRlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZUVu
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25FbnZp
cm9ubWVudHNUZWFyRG93blN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25T
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbnZpcm9u
bWVudDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiM3JkLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMm5kLk9uRW52aXJvbm1lbnRzVGVhckRvd25FbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRz
VGVhckRvd25FbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
M3JkLk9uVGVzdEl0ZXJhdGlvbkVuZCgwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIybmQuT25UZXN0SXRlcmF0aW9uRW5kKDApIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RJdGVyYXRpb25FbmQoMCkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVzdEl0ZXJh
dGlvblN0YXJ0KDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjJuZC5PblRlc3RJdGVyYXRpb25TdGFydCgxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIzcmQuT25UZXN0SXRlcmF0aW9uU3RhcnQoMSkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uRW52aXJvbm1lbnRzU2V0VXBT
dGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25F
bnZpcm9ubWVudHNTZXRVcFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVwU3RhcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRW52aXJvbm1lbnQ6OlNldFVwIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1NldFVw
RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVu
dmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjFzdC5PbkVudmlyb25tZW50c1NldFVwRW5kIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RTdWl0ZVN0YXJ0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6U2V0VXBUZXN0U3Vp
dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXN0Lk9uVGVz
dFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5P
blRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz
cmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PblRlc3RQYXJ0UmVzdWx0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PblRlc3RQYXJ0
UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpc3Rl
bmVyVGVzdDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiMXN0Lk9uVGVzdFN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjJuZC5PblRlc3RTdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIzcmQuT25UZXN0U3RhcnQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpTZXRVcCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXN0ZW5lclRlc3Q6OiogVGVzdCBCb2R5
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQ
YXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJu
ZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjNyZC5PblRlc3RQYXJ0UmVzdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkxpc3RlbmVyVGVzdDo6VGVhckRvd24iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiM3JkLk9uVGVzdEVuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIybmQuT25UZXN0RW5kIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5PblRlc3RFbmQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlzdGVuZXJUZXN0OjpUZWFyRG93blRl
c3RTdWl0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzcmQu
T25UZXN0U3VpdGVFbmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiMXN0Lk9uRW52aXJvbm1lbnRzVGVhckRvd25TdGFydCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIybmQuT25FbnZpcm9ubWVudHNUZWFyRG93blN0YXJ0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25t
ZW50c1RlYXJEb3duU3RhcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiRW52aXJvbm1lbnQ6OlRlYXJEb3duIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjNyZC5PbkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjJuZC5PbkVudmlyb25tZW50c1RlYXJE
b3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjFzdC5P
bkVudmlyb25tZW50c1RlYXJEb3duRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjNyZC5PblRlc3RJdGVyYXRpb25FbmQoMSkiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiMm5kLk9uVGVzdEl0ZXJhdGlvbkVuZCgxKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxc3QuT25UZXN0SXRlcmF0
aW9uRW5kKDEpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNy
ZC5PblRlc3RQcm9ncmFtRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIjJuZC5PblRlc3RQcm9ncmFtRW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjFzdC5PblRlc3RQcm9ncmFtRW5kIn07CisjZW5kaWYgIC8vIEdURVNU
X1JFTU9WRV9MRUdBQ1lfVEVTVF9DQVNFQVBJXworCiAgIFZlcmlmeVJlc3VsdHMoZXZlbnRzLAog
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V2ZW50cywKICAgICAgICAgICAgICAgICBzaXplb2Yo
ZXhwZWN0ZWRfZXZlbnRzKS9zaXplb2YoZXhwZWN0ZWRfZXZlbnRzWzBdKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNj
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW1lc3NhZ2UtdGVzdC5j
YwppbmRleCBjNjQ0NTg1M2U0MzNkM2MxNDM0NTI1NzM5MWE2Yjk4OGE5ZDM4MGVmLi45NjJkNTE5
MTE0ZTZlNGUzZGMzZGYxOWZkZTc1NDU1NzFiYzAzMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtbWVzc2FnZS10ZXN0LmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1tZXNzYWdlLXRlc3QuY2MKQEAgLTg1
LDcgKzg1LDcgQEAgVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc1BvaW50ZXIpIHsKIAogLy8gVGVz
dHMgc3RyZWFtaW5nIGEgTlVMTCBub24tY2hhciBwb2ludGVyLgogVEVTVChNZXNzYWdlVGVzdCwg
U3RyZWFtc051bGxQb2ludGVyKSB7Ci0gIGludCogcCA9IE5VTEw7CisgIGludCogcCA9IG51bGxw
dHI7CiAgIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBwKS5HZXRTdHJpbmcoKSk7
CiB9CiAKQEAgLTk2LDcgKzk2LDcgQEAgVEVTVChNZXNzYWdlVGVzdCwgU3RyZWFtc0NTdHJpbmcp
IHsKIAogLy8gVGVzdHMgc3RyZWFtaW5nIGEgTlVMTCBDIHN0cmluZy4KIFRFU1QoTWVzc2FnZVRl
c3QsIFN0cmVhbXNOdWxsQ1N0cmluZykgewotICBjaGFyKiBwID0gTlVMTDsKKyAgY2hhciogcCA9
IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiKG51bGwpIiwgKE1lc3NhZ2UoKSA8PCBwKS5HZXRTdHJp
bmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29v
Z2xldGVzdC1vcHRpb25zLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3Qtb3B0aW9ucy10ZXN0LmNjCmluZGV4IGVkZDRlYmEzYmQzMTA5NTk1MGE4ZDk4Y2Yz
ZGFmNmYzNGQ2NDk2OWYuLmYwN2IzMTZkYjNiOTQxMDUzMDNiMjI3NWViM2Y5ZGM2ZDExMTkwOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vcHRp
b25zLXRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LW9wdGlvbnMtdGVzdC5jYwpAQCAtMTAyLDEwICsxMDIsMTUgQEAgVEVTVChPdXRwdXRGaWxlSGVs
cGVyc1Rlc3QsIEdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSkgewogICAgICAgX3N0cmNtcGkoImd0
ZXN0LW9wdGlvbnMtZXhfdGVzdCIsIGV4ZV9zdHIuY19zdHIoKSkgPT0gMCB8fAogICAgICAgX3N0
cmNtcGkoImd0ZXN0X2FsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8CiAgICAgICBf
c3RyY21waSgiZ3Rlc3RfZGxsX3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDA7CisjZWxpZiBH
VEVTVF9PU19PUzIKKyAgY29uc3QgYm9vbCBzdWNjZXNzID0KKyAgICAgIHN0cmNhc2VjbXAoImdv
b2dsZXRlc3Qtb3B0aW9ucy10ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9PSAwIHx8CisgICAgICBz
dHJjYXNlY21wKCJndGVzdC1vcHRpb25zLWV4X3Rlc3QiLCBleGVfc3RyLmNfc3RyKCkpID09IDAg
fHwKKyAgICAgIHN0cmNhc2VjbXAoImd0ZXN0X2FsbF90ZXN0IiwgZXhlX3N0ci5jX3N0cigpKSA9
PSAwIHx8CisgICAgICBzdHJjYXNlY21wKCJndGVzdF9kbGxfdGVzdCIsIGV4ZV9zdHIuY19zdHIo
KSkgPT0gMDsKICNlbGlmIEdURVNUX09TX0ZVQ0hTSUEKICAgY29uc3QgYm9vbCBzdWNjZXNzID0g
ZXhlX3N0ciA9PSAiYXBwIjsKICNlbHNlCi0gIC8vIEZJWE1FOiByZW1vdmUgdGhlIGhhcmQtY29k
ZWQgImx0LSIgcHJlZml4IHdoZW4gbGlidG9vbCByZXBsYWNlbWVudCBpcyByZWFkeQogICBjb25z
dCBib29sIHN1Y2Nlc3MgPQogICAgICAgZXhlX3N0ciA9PSAiZ29vZ2xldGVzdC1vcHRpb25zLXRl
c3QiIHx8CiAgICAgICBleGVfc3RyID09ICJndGVzdF9hbGxfdGVzdCIgfHwKQEAgLTEyMCw3ICsx
MjUsNyBAQCBURVNUKE91dHB1dEZpbGVIZWxwZXJzVGVzdCwgR2V0Q3VycmVudEV4ZWN1dGFibGVO
YW1lKSB7CiAKIGNsYXNzIFhtbE91dHB1dENoYW5nZURpclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAg
cHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVy
cmlkZSB7CiAgICAgb3JpZ2luYWxfd29ya2luZ19kaXJfID0gRmlsZVBhdGg6OkdldEN1cnJlbnRE
aXIoKTsKICAgICBwb3NpeDo6Q2hEaXIoIi4uIik7CiAgICAgLy8gVGhpcyB3aWxsIG1ha2UgdGhl
IHRlc3QgZmFpbCBpZiBydW4gZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkuCkBAIC0xMjgsNyArMTMz
LDcgQEAgY2xhc3MgWG1sT3V0cHV0Q2hhbmdlRGlyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICAg
ICAgICAgICAgRmlsZVBhdGg6OkdldEN1cnJlbnREaXIoKS5zdHJpbmcoKSk7CiAgIH0KIAotICB2
aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAg
ICAgcG9zaXg6OkNoRGlyKG9yaWdpbmFsX3dvcmtpbmdfZGlyXy5zdHJpbmcoKS5jX3N0cigpKTsK
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QtZ29sZGVuLWxpbi50eHQKaW5kZXggODZkYTg0NWI3
ZDA0ZWExZjJiNTUzNDYwNGVlOWMwZDJiNWY4NTkxNi4uM2ZhYjNiOTdkOGYxYTIyYjY0MWQ3NTVh
YjgzNTllNWIwM2M5MjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LWdvbGRlbi1saW4udHh0CisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dApA
QCAtMTIsNyArMTIsNyBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6CiAgIDMK
IFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIAotG1swOzMybVs9PT09PT09PT09XSAbW21SdW5uaW5n
IDc2IHRlc3RzIGZyb20gMzQgdGVzdCBjYXNlcy4KKxtbMDszMm1bPT09PT09PT09PV0gG1ttUnVu
bmluZyA4OCB0ZXN0cyBmcm9tIDQxIHRlc3Qgc3VpdGVzLgogG1swOzMybVstLS0tLS0tLS0tXSAb
W21HbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBzZXQtdXAuCiBGb29FbnZpcm9ubWVudDo6U2V0VXAo
KSBjYWxsZWQuCiBCYXJFbnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuCkBAIC0zODAsNjYgKzM4
MCw3NCBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbUFk
ZEZhaWx1cmVBdFRlc3QuTWVzc2FnZUNvbnRhaW5zU3BlY2lmaWVkRmlsZUFuZExpbmVOdW1iZXIK
IGZvby5jYzo0MjogRmFpbHVyZQogRmFpbGVkCi1FeHBlY3RlZCBmYWlsdXJlIGluIGZvby5jYwor
RXhwZWN0ZWQgbm9uZmF0YWwgZmFpbHVyZSBpbiBmb28uY2MKIFN0YWNrIHRyYWNlOiAob21pdHRl
ZCkKIAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21BZGRGYWlsdXJlQXRUZXN0Lk1lc3NhZ2VDb250
YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCi0bWzA7MzJtWy0tLS0tLS0tLS1dIBtbbTQg
dGVzdHMgZnJvbSBNaXhlZFVwVGVzdENhc2VUZXN0Ci0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU1p
eGVkVXBUZXN0Q2FzZVRlc3QuRmlyc3RUZXN0RnJvbU5hbWVzcGFjZUZvbwotG1swOzMybVsgICAg
ICAgT0sgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LkZpcnN0VGVzdEZyb21OYW1lc3BhY2VGb28K
LRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5TZWNvbmRUZXN0RnJv
bU5hbWVzcGFjZUZvbwotG1swOzMybVsgICAgICAgT0sgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0
LlNlY29uZFRlc3RGcm9tTmFtZXNwYWNlRm9vCi0bWzA7MzJtWyBSVU4gICAgICBdIBtbbU1peGVk
VXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3VsZEZhaWwKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0
ZXN0IGZyb20gR3Rlc3RGYWlsQXRUZXN0CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUd0ZXN0RmFp
bEF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxlQW5kTGluZU51bWJlcgorZm9vLmNj
OjQyOiBGYWlsdXJlCitGYWlsZWQKK0V4cGVjdGVkIGZhdGFsIGZhaWx1cmUgaW4gZm9vLmNjCitT
dGFjayB0cmFjZTogKG9taXR0ZWQpCisKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttR3Rlc3RGYWls
QXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyCisbWzA7MzJt
Wy0tLS0tLS0tLS1dIBtbbTQgdGVzdHMgZnJvbSBNaXhlZFVwVGVzdFN1aXRlVGVzdAorG1swOzMy
bVsgUlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5GaXJzdFRlc3RGcm9tTmFtZXNw
YWNlRm9vCisbWzA7MzJtWyAgICAgICBPSyBdIBtbbU1peGVkVXBUZXN0U3VpdGVUZXN0LkZpcnN0
VGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RT
dWl0ZVRlc3QuU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDszMm1bICAgICAgIE9LIF0g
G1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuU2Vjb25kVGVzdEZyb21OYW1lc3BhY2VGb28KKxtbMDsz
Mm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuVGhpc1Nob3VsZEZhaWwKIGd0
ZXN0LmNjOiM6IEZhaWx1cmUKIEZhaWxlZAotQWxsIHRlc3RzIGluIHRoZSBzYW1lIHRlc3QgY2Fz
ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKLWNsYXNzLiAgSG93ZXZlciwgaW4gdGVz
dCBjYXNlIE1peGVkVXBUZXN0Q2FzZVRlc3QsCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBz
dWl0ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLiAgSG93ZXZlciwgaW4g
dGVzdCBzdWl0ZSBNaXhlZFVwVGVzdFN1aXRlVGVzdCwKIHlvdSBkZWZpbmVkIHRlc3QgRmlyc3RU
ZXN0RnJvbU5hbWVzcGFjZUZvbyBhbmQgdGVzdCBUaGlzU2hvdWxkRmFpbAogdXNpbmcgdHdvIGRp
ZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMgY2FuIGhhcHBlbiBpZgogdGhlIHR3
byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIG9yIHRyYW5zbGF0aW9uCiB1
bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNob3VsZCBwcm9iYWJseSByZW5hbWUg
b25lCi1vZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50IHRlc3Qg
Y2FzZXMuCitvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8gZGlmZmVyZW50IHRl
c3Qgc3VpdGVzLgogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCi0bWzA7MzFtWyAgRkFJTEVEICBd
IBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhpc1Nob3VsZEZhaWwKLRtbMDszMm1bIFJVTiAgICAg
IF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbworG1swOzMxbVsgIEZB
SUxFRCAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbAorG1swOzMybVsg
UlVOICAgICAgXSAbW21NaXhlZFVwVGVzdFN1aXRlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbwogZ3Rl
c3QuY2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNl
IG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0
IGNhc2UgTWl4ZWRVcFRlc3RDYXNlVGVzdCwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1
aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0
ZXN0IHN1aXRlIE1peGVkVXBUZXN0U3VpdGVUZXN0LAogeW91IGRlZmluZWQgdGVzdCBGaXJzdFRl
c3RGcm9tTmFtZXNwYWNlRm9vIGFuZCB0ZXN0IFRoaXNTaG91bGRGYWlsVG9vCiB1c2luZyB0d28g
ZGlmZmVyZW50IHRlc3QgZml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCiB0aGUg
dHdvIGNsYXNzZXMgYXJlIGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24K
IHVuaXRzIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFt
ZSBvbmUKLW9mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVz
dCBjYXNlcy4KK29mIHRoZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQg
dGVzdCBzdWl0ZXMuCiBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBGQUlMRUQg
IF0gG1ttTWl4ZWRVcFRlc3RDYXNlVGVzdC5UaGlzU2hvdWxkRmFpbFRvbwotG1swOzMybVstLS0t
LS0tLS0tXSAbW20yIHRlc3RzIGZyb20gTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRl
c3QKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFt
ZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtbMDszMm1bICAgICAg
IE9LIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVz
dFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKLRtbMDszMm1bIFJVTiAgICAgIF0gG1ttTWl4ZWRVcFRl
c3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3Vs
ZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVRlc3QuVGhpc1No
b3VsZEZhaWxUb28KKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIE1peGVkVXBU
ZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdAorG1swOzMybVsgUlVOICAgICAgXSAbW21NaXhl
ZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFt
ZVNob3VsZEZhaWwKKxtbMDszMm1bICAgICAgIE9LIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhT
YW1lVGVzdE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCisbWzA7
MzJtWyBSVU4gICAgICBdIBtbbU1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5U
aGVTZWNvbmRUZXN0V2l0aFRoaXNOYW1lU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQog
RmFpbGVkCi1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1l
IHRlc3QgZml4dHVyZQotY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IGNhc2UgTWl4ZWRVcFRlc3RD
YXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0
ZSBtdXN0IHVzZSB0aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLiAgSG93ZXZlciwgaW4gdGVz
dCBzdWl0ZSBNaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCiB5b3UgZGVmaW5l
ZCB0ZXN0IFRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsIGFuZCB0ZXN0IFRoZVNl
Y29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiB1c2luZyB0d28gZGlmZmVyZW50IHRlc3Qg
Zml4dHVyZSBjbGFzc2VzLiAgVGhpcyBjYW4gaGFwcGVuIGlmCiB0aGUgdHdvIGNsYXNzZXMgYXJl
IGZyb20gZGlmZmVyZW50IG5hbWVzcGFjZXMgb3IgdHJhbnNsYXRpb24KIHVuaXRzIGFuZCBoYXZl
IHRoZSBzYW1lIG5hbWUuICBZb3Ugc2hvdWxkIHByb2JhYmx5IHJlbmFtZSBvbmUKLW9mIHRoZSBj
bGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBjYXNlcy4KK29mIHRo
ZSBjbGFzc2VzIHRvIHB1dCB0aGUgdGVzdHMgaW50byBkaWZmZXJlbnQgdGVzdCBzdWl0ZXMuCiBT
dGFjayB0cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRl
c3RDYXNlV2l0aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3Vs
ZEZhaWwKKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVz
dE5hbWVUZXN0LlRoZVNlY29uZFRlc3RXaXRoVGhpc05hbWVTaG91bGRGYWlsCiAbWzA7MzJtWy0t
LS0tLS0tLS1dIBtbbTIgdGVzdHMgZnJvbSBURVNUX0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0
X2Nhc2UKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttVEVTVF9GX2JlZm9yZV9URVNUX2luX3NhbWVf
dGVzdF9jYXNlLkRlZmluZWRVc2luZ1RFU1RfRgogG1swOzMybVsgICAgICAgT0sgXSAbW21URVNU
X0ZfYmVmb3JlX1RFU1RfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9GCiAbWzA7
MzJtWyBSVU4gICAgICBdIBtbbVRFU1RfRl9iZWZvcmVfVEVTVF9pbl9zYW1lX3Rlc3RfY2FzZS5E
ZWZpbmVkVXNpbmdURVNUQW5kU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQogRmFpbGVk
Ci1BbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3Qg
Zml4dHVyZQotY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVz
dCBjYXNlIGlzCi1pbGxlZ2FsLiAgSW4gdGVzdCBjYXNlIFRFU1RfRl9iZWZvcmVfVEVTVF9pbl9z
YW1lX3Rlc3RfY2FzZSwKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNl
IHRoZSBzYW1lIHRlc3QgZml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1Qg
aW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgVEVTVF9G
X2JlZm9yZV9URVNUX2luX3NhbWVfdGVzdF9jYXNlLAogdGVzdCBEZWZpbmVkVXNpbmdURVNUX0Yg
aXMgZGVmaW5lZCB1c2luZyBURVNUX0YgYnV0CiB0ZXN0IERlZmluZWRVc2luZ1RFU1RBbmRTaG91
bGRGYWlsIGlzIGRlZmluZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseQogd2FudCB0byBjaGFu
Z2UgdGhlIFRFU1QgdG8gVEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhlciB0ZXN0CkBAIC00NTMs
OSArNDYxLDkgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogG1swOzMybVsgUlVOICAgICAgXSAb
W21URVNUX2JlZm9yZV9URVNUX0ZfaW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVF9G
QW5kU2hvdWxkRmFpbAogZ3Rlc3QuY2M6IzogRmFpbHVyZQogRmFpbGVkCi1BbGwgdGVzdHMgaW4g
dGhlIHNhbWUgdGVzdCBjYXNlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3QgZml4dHVyZQotY2xhc3Ms
IHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVzdCBjYXNlIGlzCi1pbGxl
Z2FsLiAgSW4gdGVzdCBjYXNlIFRFU1RfYmVmb3JlX1RFU1RfRl9pbl9zYW1lX3Rlc3RfY2FzZSwK
K0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBzYW1lIHRlc3Qg
Zml4dHVyZQorY2xhc3MsIHNvIG1peGluZyBURVNUX0YgYW5kIFRFU1QgaW4gdGhlIHNhbWUgdGVz
dCBzdWl0ZSBpcworaWxsZWdhbC4gIEluIHRlc3Qgc3VpdGUgVEVTVF9iZWZvcmVfVEVTVF9GX2lu
X3NhbWVfdGVzdF9jYXNlLAogdGVzdCBEZWZpbmVkVXNpbmdURVNUX0ZBbmRTaG91bGRGYWlsIGlz
IGRlZmluZWQgdXNpbmcgVEVTVF9GIGJ1dAogdGVzdCBEZWZpbmVkVXNpbmdURVNUIGlzIGRlZmlu
ZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseQogd2FudCB0byBjaGFuZ2UgdGhlIFRFU1QgdG8g
VEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhlciB0ZXN0CkBAIC04NzAsNiArODc4LDg0IEBAIEV4
cGVjdGVkIG5vbi1mYXRhbCBmYWlsdXJlLgogU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCiAbWzA7
MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZha2VUZXN0UGFydFJlc3VsdFJlcG9ydGVyVGVzdC5J
bnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAorG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3Rz
IGZyb20gRHluYW1pY0ZpeHR1cmUKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZQorG1sw
OzMybVsgUlVOICAgICAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdFBhc3MKK0R5bmFt
aWNGaXh0dXJlKCkKK0R5bmFtaWNGaXh0dXJlOjpTZXRVcAorRHluYW1pY0ZpeHR1cmU6OlRlYXJE
b3duCit+RHluYW1pY0ZpeHR1cmUoKQorG1swOzMybVsgICAgICAgT0sgXSAbW21EeW5hbWljRml4
dHVyZS5EeW5hbWljVGVzdFBhc3MKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttRHluYW1pY0ZpeHR1
cmUuRHluYW1pY1Rlc3RGYWlsCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0
VXAKK2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKK1ZhbHVlIG9mOiBQYXNz
CisgIEFjdHVhbDogZmFsc2UKK0V4cGVjdGVkOiB0cnVlCitTdGFjayB0cmFjZTogKG9taXR0ZWQp
CisKK0R5bmFtaWNGaXh0dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttRHluYW1pY0ZpeHR1cmUuRHluYW1pY1Rlc3RGYWlsCitEeW5hbWljRml4
dHVyZTo6VGVhckRvd25UZXN0U3VpdGUKKxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0ZXN0IGZy
b20gRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZQorRHluYW1pY0ZpeHR1cmU6OlNldFVwVGVzdFN1
aXRlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUR5bmFtaWNGaXh0dXJlQW5vdGhlck5hbWUuRHlu
YW1pY1Rlc3RQYXNzCitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0VXAKK0R5
bmFtaWNGaXh0dXJlOjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1bICAgICAg
IE9LIF0gG1ttRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFtZS5EeW5hbWljVGVzdFBhc3MKK0R5bmFt
aWNGaXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRl
c3RzIGZyb20gQmFkRHluYW1pY0ZpeHR1cmUxCitEeW5hbWljRml4dHVyZTo6U2V0VXBUZXN0U3Vp
dGUKKxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUxLkZpeHR1cmVCYXNl
CitEeW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0VXAKK0R5bmFtaWNGaXh0dXJl
OjpUZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1bICAgICAgIE9LIF0gG1ttQmFk
RHluYW1pY0ZpeHR1cmUxLkZpeHR1cmVCYXNlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUJhZER5
bmFtaWNGaXh0dXJlMS5UZXN0QmFzZQorRHluYW1pY0ZpeHR1cmUoKQorZ3Rlc3QuY2M6IzogRmFp
bHVyZQorRmFpbGVkCitBbGwgdGVzdHMgaW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBtdXN0IHVzZSB0
aGUgc2FtZSB0ZXN0IGZpeHR1cmUKK2NsYXNzLCBzbyBtaXhpbmcgVEVTVF9GIGFuZCBURVNUIGlu
IHRoZSBzYW1lIHRlc3Qgc3VpdGUgaXMKK2lsbGVnYWwuICBJbiB0ZXN0IHN1aXRlIEJhZER5bmFt
aWNGaXh0dXJlMSwKK3Rlc3QgRml4dHVyZUJhc2UgaXMgZGVmaW5lZCB1c2luZyBURVNUX0YgYnV0
Cit0ZXN0IFRlc3RCYXNlIGlzIGRlZmluZWQgdXNpbmcgVEVTVC4gIFlvdSBwcm9iYWJseQord2Fu
dCB0byBjaGFuZ2UgdGhlIFRFU1QgdG8gVEVTVF9GIG9yIG1vdmUgaXQgdG8gYW5vdGhlciB0ZXN0
CitjYXNlLgorU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCit+RHluYW1pY0ZpeHR1cmUoKQorG1sw
OzMxbVsgIEZBSUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTEuVGVzdEJhc2UKK0R5bmFtaWNG
aXh0dXJlOjpUZWFyRG93blRlc3RTdWl0ZQorG1swOzMybVstLS0tLS0tLS0tXSAbW20yIHRlc3Rz
IGZyb20gQmFkRHluYW1pY0ZpeHR1cmUyCitEeW5hbWljRml4dHVyZTo6U2V0VXBUZXN0U3VpdGUK
KxtbMDszMm1bIFJVTiAgICAgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUyLkZpeHR1cmVCYXNlCitE
eW5hbWljRml4dHVyZSgpCitEeW5hbWljRml4dHVyZTo6U2V0VXAKK0R5bmFtaWNGaXh0dXJlOjpU
ZWFyRG93bgorfkR5bmFtaWNGaXh0dXJlKCkKKxtbMDszMm1bICAgICAgIE9LIF0gG1ttQmFkRHlu
YW1pY0ZpeHR1cmUyLkZpeHR1cmVCYXNlCisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUJhZER5bmFt
aWNGaXh0dXJlMi5EZXJpdmVkCitEeW5hbWljRml4dHVyZSgpCitndGVzdC5jYzojOiBGYWlsdXJl
CitGYWlsZWQKK0FsbCB0ZXN0cyBpbiB0aGUgc2FtZSB0ZXN0IHN1aXRlIG11c3QgdXNlIHRoZSBz
YW1lIHRlc3QgZml4dHVyZQorY2xhc3MuICBIb3dldmVyLCBpbiB0ZXN0IHN1aXRlIEJhZER5bmFt
aWNGaXh0dXJlMiwKK3lvdSBkZWZpbmVkIHRlc3QgRml4dHVyZUJhc2UgYW5kIHRlc3QgRGVyaXZl
ZAordXNpbmcgdHdvIGRpZmZlcmVudCB0ZXN0IGZpeHR1cmUgY2xhc3Nlcy4gIFRoaXMgY2FuIGhh
cHBlbiBpZgordGhlIHR3byBjbGFzc2VzIGFyZSBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIG9y
IHRyYW5zbGF0aW9uCit1bml0cyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lLiAgWW91IHNob3VsZCBw
cm9iYWJseSByZW5hbWUgb25lCitvZiB0aGUgY2xhc3NlcyB0byBwdXQgdGhlIHRlc3RzIGludG8g
ZGlmZmVyZW50IHRlc3Qgc3VpdGVzLgorU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCit+RHluYW1p
Y0ZpeHR1cmUoKQorG1swOzMxbVsgIEZBSUxFRCAgXSAbW21CYWREeW5hbWljRml4dHVyZTIuRGVy
aXZlZAorRHluYW1pY0ZpeHR1cmU6OlRlYXJEb3duVGVzdFN1aXRlCiAbWzA7MzJtWy0tLS0tLS0t
LS1dIBtbbTEgdGVzdCBmcm9tIFByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWlsaW5nUGFyYW1UZXN0
CiAbWzA7MzJtWyBSVU4gICAgICBdIBtbbVByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWlsaW5nUGFy
YW1UZXN0LkZhaWxzLzAKIGdvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjOiM6IEZhaWx1cmUKQEAg
LTg4MCw2ICs5NjYsOSBAQCBFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6CiBTdGFj
ayB0cmFjZTogKG9taXR0ZWQpCiAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttUHJpbnRpbmdGYWls
aW5nUGFyYW1zL0ZhaWxpbmdQYXJhbVRlc3QuRmFpbHMvMCwgd2hlcmUgR2V0UGFyYW0oKSA9IDIK
KxtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMSB0ZXN0IGZyb20gRW1wdHlCYXNlbmFtZVBhcmFtSW5z
dAorG1swOzMybVsgUlVOICAgICAgXSAbW21FbXB0eUJhc2VuYW1lUGFyYW1JbnN0LlBhc3Nlcy8w
CisbWzA7MzJtWyAgICAgICBPSyBdIBtbbUVtcHR5QmFzZW5hbWVQYXJhbUluc3QuUGFzc2VzLzAK
IBtbMDszMm1bLS0tLS0tLS0tLV0gG1ttMiB0ZXN0cyBmcm9tIFByaW50aW5nU3RyaW5ncy9QYXJh
bVRlc3QKIBtbMDszMm1bIFJVTiAgICAgIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVzdC5T
dWNjZXNzL2EKIBtbMDszMm1bICAgICAgIE9LIF0gG1ttUHJpbnRpbmdTdHJpbmdzL1BhcmFtVGVz
dC5TdWNjZXNzL2EKQEAgLTg5Myw2ICs5ODIsNDMgQEAgRXhwZWN0ZWQgZmFpbHVyZQogU3RhY2sg
dHJhY2U6IChvbWl0dGVkKQogCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVByaW50aW5nU3RyaW5n
cy9QYXJhbVRlc3QuRmFpbHVyZS9hLCB3aGVyZSBHZXRQYXJhbSgpID0gImEiCisbWzA7MzJtWy0t
LS0tLS0tLS1dIBtbbTMgdGVzdHMgZnJvbSBHb29nbGVUZXN0VmVyaWZpY2F0aW9uCisbWzA7MzJt
WyBSVU4gICAgICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJh
bWV0ZXJpemVkVGVzdFN1aXRlPE5vVGVzdHM+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzoj
OiBGYWlsdXJlCitQYXJhbWV0ZXJpemVkIHRlc3Qgc3VpdGUgTm9UZXN0cyBpcyBpbnN0YW50aWF0
ZWQgdmlhIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCwgYnV0IG5vIHRlc3RzIGFyZSBkZWZpbmVk
IHZpYSBURVNUX1AgLiBObyB0ZXN0IGNhc2VzIHdpbGwgcnVuLgorCitJZGVhbGx5LCBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1Agc2hvdWxkIG9ubHkgZXZlciBiZSBpbnZva2VkIGZyb20gY29kZSB0
aGF0IGFsd2F5cyBkZXBlbmQgb24gY29kZSB0aGF0IHByb3ZpZGVzIFRFU1RfUC4gRmFpbGluZyB0
byBkbyBzbyBpcyBvZnRlbiBhbiBpbmRpY2F0aW9uIG9mIGRlYWQgY29kZSwgZS5nLiB0aGUgbGFz
dCBURVNUX1Agd2FzIHJlbW92ZWQgYnV0IHRoZSByZXN0IGdvdCBsZWZ0IGJlaGluZC4KKworVG8g
c3VwcHJlc3MgdGhpcyBlcnJvciBmb3IgdGhpcyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxv
d2luZyBsaW5lIChpbiBhIG5vbi1oZWFkZXIpIGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5l
ZCBpbjoKKworR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKE5v
VGVzdHMpOworU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVEICBdIBtb
bUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1
aXRlPE5vVGVzdHM+CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRp
b24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5vdEluc3RhbnRp
YXRlZFRlc3Q+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzojOiBGYWlsdXJlCitQYXJhbWV0
ZXJpemVkIHRlc3Qgc3VpdGUgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCBpcyBkZWZpbmVkIHZp
YSBURVNUX1AsIGJ1dCBuZXZlciBpbnN0YW50aWF0ZWQuIE5vbmUgb2YgdGhlIHRlc3QgY2FzZXMg
d2lsbCBydW4uIEVpdGhlciBubyBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AgaXMgcHJvdmlkZWQg
b3IgdGhlIG9ubHkgb25lcyBwcm92aWRlZCBleHBhbmQgdG8gbm90aGluZy4KKworSWRlYWxseSwg
VEVTVF9QIGRlZmluaXRpb25zIHNob3VsZCBvbmx5IGV2ZXIgYmUgaW5jbHVkZWQgYXMgcGFydCBv
ZiBiaW5hcmllcyB0aGF0IGludGVuZCB0byB1c2UgdGhlbS4gKEFzIG9wcG9zZWQgdG8sIGZvciBl
eGFtcGxlLCBiZWluZyBwbGFjZWQgaW4gYSBsaWJyYXJ5IHRoYXQgbWF5IGJlIGxpbmtlZCBpbiB0
byBnZXQgb3RoZXIgdXRpbGl0aWVzLikKKworVG8gc3VwcHJlc3MgdGhpcyBlcnJvciBmb3IgdGhp
cyB0ZXN0IHN1aXRlLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lIChpbiBhIG5vbi1oZWFkZXIp
IGluIHRoZSBuYW1lc3BhY2UgaXQgaXMgZGVmaW5lZCBpbjoKKworR1RFU1RfQUxMT1dfVU5JTlNU
QU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKERldGVjdE5vdEluc3RhbnRpYXRlZFRlc3QpOwor
U3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2dsZVRl
c3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVj
dE5vdEluc3RhbnRpYXRlZFRlc3Q+CisbWzA7MzJtWyBSVU4gICAgICBdIBtbbUdvb2dsZVRlc3RW
ZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTxEZXRl
Y3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+Citnb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYzoj
OiBGYWlsdXJlCitUeXBlIHBhcmFtZXRlcml6ZWQgdGVzdCBzdWl0ZSBEZXRlY3ROb3RJbnN0YW50
aWF0ZWRUeXBlc1Rlc3QgaXMgZGVmaW5lZCB2aWEgUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9Q
LCBidXQgbmV2ZXIgaW5zdGFudGlhdGVkIHZpYSBJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRF
X1AuIE5vbmUgb2YgdGhlIHRlc3QgY2FzZXMgd2lsbCBydW4uCisKK0lkZWFsbHksIFRZUEVEX1RF
U1RfUCBkZWZpbml0aW9ucyBzaG91bGQgb25seSBldmVyIGJlIGluY2x1ZGVkIGFzIHBhcnQgb2Yg
YmluYXJpZXMgdGhhdCBpbnRlbmQgdG8gdXNlIHRoZW0uIChBcyBvcHBvc2VkIHRvLCBmb3IgZXhh
bXBsZSwgYmVpbmcgcGxhY2VkIGluIGEgbGlicmFyeSB0aGF0IG1heSBiZSBsaW5rZWQgaW4gdG8g
Z2V0IG90aGVyIHV0aWxpdGllcy4pCisKK1RvIHN1cHByZXNzIHRoaXMgZXJyb3IgZm9yIHRoaXMg
dGVzdCBzdWl0ZSwgaW5zZXJ0IHRoZSBmb2xsb3dpbmcgbGluZSAoaW4gYSBub24taGVhZGVyKSBp
biB0aGUgbmFtZXNwYWNlIGl0IGlzIGRlZmluZWQgaW46CisKK0dURVNUX0FMTE9XX1VOSU5TVEFO
VElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Qp
OworU3RhY2sgdHJhY2U6IChvbWl0dGVkKQorCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2ds
ZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0
ZTxEZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+CiAbWzA7MzJtWy0tLS0tLS0tLS1dIBtb
bUdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgogQmFyRW52aXJvbm1lbnQ6OlRlYXJE
b3duKCkgY2FsbGVkLgogZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2M6IzogRmFpbHVyZQpAQCAt
OTA2LDkgKzEwMzIsOSBAQCBGYWlsZWQKIEV4cGVjdGVkIGZhdGFsIGZhaWx1cmUuCiBTdGFjayB0
cmFjZTogKG9taXR0ZWQpCiAKLRtbMDszMm1bPT09PT09PT09PV0gG1ttNzYgdGVzdHMgZnJvbSAz
NCB0ZXN0IGNhc2VzIHJhbi4KLRtbMDszMm1bICBQQVNTRUQgIF0gG1ttMjYgdGVzdHMuCi0bWzA7
MzFtWyAgRkFJTEVEICBdIBtbbTUwIHRlc3RzLCBsaXN0ZWQgYmVsb3c6CisbWzA7MzJtWz09PT09
PT09PT1dIBtbbTg4IHRlc3RzIGZyb20gNDEgdGVzdCBzdWl0ZXMgcmFuLgorG1swOzMybVsgIFBB
U1NFRCAgXSAbW20zMSB0ZXN0cy4KKxtbMDszMW1bICBGQUlMRUQgIF0gG1ttNTcgdGVzdHMsIGxp
c3RlZCBiZWxvdzoKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uZmF0YWxGYWlsdXJlVGVzdC5F
c2NhcGVzU3RyaW5nT3BlcmFuZHMKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uZmF0YWxGYWls
dXJlVGVzdC5EaWZmRm9yTG9uZ1N0cmluZ3MKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttRmF0YWxG
YWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKQEAgLTkyOCw5ICsxMDU0LDEwIEBA
IFN0YWNrIHRyYWNlOiAob21pdHRlZCkKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttTm9uRmF0YWxG
YWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKIBtbMDszMW1bICBGQUlMRUQgIF0gG1tt
RmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QuRmFpbHVyZUluU2V0VXAKIBtbMDszMW1bICBGQUlMRUQg
IF0gG1ttQWRkRmFpbHVyZUF0VGVzdC5NZXNzYWdlQ29udGFpbnNTcGVjaWZpZWRGaWxlQW5kTGlu
ZU51bWJlcgotG1swOzMxbVsgIEZBSUxFRCAgXSAbW21NaXhlZFVwVGVzdENhc2VUZXN0LlRoaXNT
aG91bGRGYWlsCi0bWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0Q2FzZVRlc3QuVGhp
c1Nob3VsZEZhaWxUb28KLRtbMDszMW1bICBGQUlMRUQgIF0gG1ttTWl4ZWRVcFRlc3RDYXNlV2l0
aFNhbWVUZXN0TmFtZVRlc3QuVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwKKxtb
MDszMW1bICBGQUlMRUQgIF0gG1ttR3Rlc3RGYWlsQXRUZXN0Lk1lc3NhZ2VDb250YWluc1NwZWNp
ZmllZEZpbGVBbmRMaW5lTnVtYmVyCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBUZXN0
U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1peGVkVXBU
ZXN0U3VpdGVUZXN0LlRoaXNTaG91bGRGYWlsVG9vCisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbU1p
eGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdC5UaGVTZWNvbmRUZXN0V2l0aFRoaXNO
YW1lU2hvdWxkRmFpbAogG1swOzMxbVsgIEZBSUxFRCAgXSAbW21URVNUX0ZfYmVmb3JlX1RFU1Rf
aW5fc2FtZV90ZXN0X2Nhc2UuRGVmaW5lZFVzaW5nVEVTVEFuZFNob3VsZEZhaWwKIBtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttVEVTVF9iZWZvcmVfVEVTVF9GX2luX3NhbWVfdGVzdF9jYXNlLkRlZmlu
ZWRVc2luZ1RFU1RfRkFuZFNob3VsZEZhaWwKIBtbMDszMW1bICBGQUlMRUQgIF0gG1ttRXhwZWN0
Tm9uZmF0YWxGYWlsdXJlVGVzdC5GYWlsc1doZW5UaGVyZUlzTm9Ob25mYXRhbEZhaWx1cmUKQEAg
LTk1NywxNCArMTA4NCwyMCBAQCBTdGFjayB0cmFjZTogKG9taXR0ZWQpCiAbWzA7MzFtWyAgRkFJ
TEVEICBdIBtbbUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhwZWN0RmF0YWxGYWlsdXJl
CiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUV4cGVjdEZhaWx1cmVXaXRoVGhyZWFkc1Rlc3QuRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVNjb3BlZEZha2VUZXN0
UGFydFJlc3VsdFJlcG9ydGVyVGVzdC5JbnRlcmNlcHRPbmx5Q3VycmVudFRocmVhZAorG1swOzMx
bVsgIEZBSUxFRCAgXSAbW21EeW5hbWljRml4dHVyZS5EeW5hbWljVGVzdEZhaWwKKxtbMDszMW1b
ICBGQUlMRUQgIF0gG1ttQmFkRHluYW1pY0ZpeHR1cmUxLlRlc3RCYXNlCisbWzA7MzFtWyAgRkFJ
TEVEICBdIBtbbUJhZER5bmFtaWNGaXh0dXJlMi5EZXJpdmVkCiAbWzA7MzFtWyAgRkFJTEVEICBd
IBtbbVByaW50aW5nRmFpbGluZ1BhcmFtcy9GYWlsaW5nUGFyYW1UZXN0LkZhaWxzLzAsIHdoZXJl
IEdldFBhcmFtKCkgPSAyCiAbWzA7MzFtWyAgRkFJTEVEICBdIBtbbVByaW50aW5nU3RyaW5ncy9Q
YXJhbVRlc3QuRmFpbHVyZS9hLCB3aGVyZSBHZXRQYXJhbSgpID0gImEiCisbWzA7MzFtWyAgRkFJ
TEVEICBdIBtbbUdvb2dsZVRlc3RWZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJp
emVkVGVzdFN1aXRlPE5vVGVzdHM+CisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2dsZVRlc3RW
ZXJpZmljYXRpb24uVW5pbnN0YW50aWF0ZWRQYXJhbWV0ZXJpemVkVGVzdFN1aXRlPERldGVjdE5v
dEluc3RhbnRpYXRlZFRlc3Q+CisbWzA7MzFtWyAgRkFJTEVEICBdIBtbbUdvb2dsZVRlc3RWZXJp
ZmljYXRpb24uVW5pbnN0YW50aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZTxEZXRlY3RO
b3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3Q+CiAKLTUwIEZBSUxFRCBURVNUUworNTcgRkFJTEVEIFRF
U1RTCiAbWzA7MzNtICBZT1UgSEFWRSAxIERJU0FCTEVEIFRFU1QKIAogG1ttTm90ZTogR29vZ2xl
IFRlc3QgZmlsdGVyID0gRmF0YWxGYWlsdXJlVGVzdC4qOkxvZ2dpbmdUZXN0LioKLVs9PT09PT09
PT09XSBSdW5uaW5nIDQgdGVzdHMgZnJvbSAyIHRlc3QgY2FzZXMuCitbPT09PT09PT09PV0gUnVu
bmluZyA0IHRlc3RzIGZyb20gMiB0ZXN0IHN1aXRlcy4KIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVz
dCBlbnZpcm9ubWVudCBzZXQtdXAuCiBbLS0tLS0tLS0tLV0gMyB0ZXN0cyBmcm9tIEZhdGFsRmFp
bHVyZVRlc3QKIFsgUlVOICAgICAgXSBGYXRhbEZhaWx1cmVUZXN0LkZhdGFsRmFpbHVyZUluU3Vi
cm91dGluZQpAQCAtMTAxNyw3ICsxMTUwLDcgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogWy0t
LS0tLS0tLS1dIDEgdGVzdCBmcm9tIExvZ2dpbmdUZXN0ICg/IG1zIHRvdGFsKQogCiBbLS0tLS0t
LS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duCi1bPT09PT09PT09PV0gNCB0
ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcyByYW4uICg/IG1zIHRvdGFsKQorWz09PT09PT09PT1dIDQg
dGVzdHMgZnJvbSAyIHRlc3Qgc3VpdGVzIHJhbi4gKD8gbXMgdG90YWwpCiBbICBQQVNTRUQgIF0g
MCB0ZXN0cy4KIFsgIEZBSUxFRCAgXSA0IHRlc3RzLCBsaXN0ZWQgYmVsb3c6CiBbICBGQUlMRUQg
IF0gRmF0YWxGYWlsdXJlVGVzdC5GYXRhbEZhaWx1cmVJblN1YnJvdXRpbmUKQEAgLTEwMjcsMjEg
KzExNjAsMjEgQEAgU3RhY2sgdHJhY2U6IChvbWl0dGVkKQogCiAgNCBGQUlMRUQgVEVTVFMKIE5v
dGU6IEdvb2dsZSBUZXN0IGZpbHRlciA9ICpESVNBQkxFRF8qCi1bPT09PT09PT09PV0gUnVubmlu
ZyAxIHRlc3QgZnJvbSAxIHRlc3QgY2FzZS4KK1s9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBm
cm9tIDEgdGVzdCBzdWl0ZS4KIFstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCBz
ZXQtdXAuCiBbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gRGlzYWJsZWRUZXN0c1dhcm5pbmdUZXN0
CiBbIFJVTiAgICAgIF0gRGlzYWJsZWRUZXN0c1dhcm5pbmdUZXN0LkRJU0FCTEVEX0Fsc29SdW5E
aXNhYmxlZFRlc3RzRmxhZ1N1cHByZXNzZXNXYXJuaW5nCiBbICAgICAgIE9LIF0gRGlzYWJsZWRU
ZXN0c1dhcm5pbmdUZXN0LkRJU0FCTEVEX0Fsc29SdW5EaXNhYmxlZFRlc3RzRmxhZ1N1cHByZXNz
ZXNXYXJuaW5nCiBbLS0tLS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3du
Ci1bPT09PT09PT09PV0gMSB0ZXN0IGZyb20gMSB0ZXN0IGNhc2UgcmFuLgorWz09PT09PT09PT1d
IDEgdGVzdCBmcm9tIDEgdGVzdCBzdWl0ZSByYW4uCiBbICBQQVNTRUQgIF0gMSB0ZXN0LgogTm90
ZTogR29vZ2xlIFRlc3QgZmlsdGVyID0gUGFzc2luZ1Rlc3QuKgogTm90ZTogVGhpcyBpcyB0ZXN0
IHNoYXJkIDIgb2YgMi4KLVs9PT09PT09PT09XSBSdW5uaW5nIDEgdGVzdCBmcm9tIDEgdGVzdCBj
YXNlLgorWz09PT09PT09PT1dIFJ1bm5pbmcgMSB0ZXN0IGZyb20gMSB0ZXN0IHN1aXRlLgogWy0t
LS0tLS0tLS1dIEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHNldC11cC4KIFstLS0tLS0tLS0tXSAx
IHRlc3QgZnJvbSBQYXNzaW5nVGVzdAogWyBSVU4gICAgICBdIFBhc3NpbmdUZXN0LlBhc3NpbmdU
ZXN0MgogWyAgICAgICBPSyBdIFBhc3NpbmdUZXN0LlBhc3NpbmdUZXN0MgogWy0tLS0tLS0tLS1d
IEdsb2JhbCB0ZXN0IGVudmlyb25tZW50IHRlYXItZG93bgotWz09PT09PT09PT1dIDEgdGVzdCBm
cm9tIDEgdGVzdCBjYXNlIHJhbi4KK1s9PT09PT09PT09XSAxIHRlc3QgZnJvbSAxIHRlc3Qgc3Vp
dGUgcmFuLgogWyAgUEFTU0VEICBdIDEgdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC5weQppbmRleCAyZDY5ZTM1M2Ex
OWUzNjk0NjUzM2JmNWY3ZTBhMmM5MjQ2ZjdkY2U3Li4wOTAyOGY2NmY5MGJmMjM4MmJiNzhjNzli
YjRlM2MzOWFkYzMwMTcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0LnB5CkBAIC0yOSw3ICsyOSw3IEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0iIiJUZXN0cyB0aGUgdGV4dCBvdXRwdXQgb2YgR29v
Z2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yay4KK3IiIiJUZXN0cyB0aGUgdGV4
dCBvdXRwdXQgb2YgR29vZ2xlIEMrKyBUZXN0aW5nIGFuZCBNb2NraW5nIEZyYW1ld29yay4KIAog
VG8gdXBkYXRlIHRoZSBnb2xkZW4gZmlsZToKIGdvb2dsZXRlc3Rfb3V0cHV0X3Rlc3QucHkgLS1i
dWlsZF9kaXI9QlVJTEQvRElSIC0tZ2VuZ29sZGVuCkBAIC01NSw3ICs1NSw2IEBAIE5PX1NUQUNL
VFJBQ0VfU1VQUE9SVF9GTEFHID0gJy0tbm9fc3RhY2t0cmFjZV9zdXBwb3J0JwogSVNfTElOVVgg
PSBvcy5uYW1lID09ICdwb3NpeCcgYW5kIG9zLnVuYW1lKClbMF0gPT0gJ0xpbnV4JwogSVNfV0lO
RE9XUyA9IG9zLm5hbWUgPT0gJ250JwogCi0jIEZJWE1FOiByZW1vdmUgdGhlIF9saW4gc3VmZml4
LgogR09MREVOX05BTUUgPSAnZ29vZ2xldGVzdC1vdXRwdXQtdGVzdC1nb2xkZW4tbGluLnR4dCcK
IAogUFJPR1JBTV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgo
J2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfJykKQEAgLTI4Nyw3ICsyODYsNyBAQCBjbGFzcyBHVGVz
dE91dHB1dFRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgIyBzZXF1ZW5jZXMg
d2hlbiB3ZSByZWFkIHRoZSBnb2xkZW4gZmlsZSBpcnJlc3BlY3RpdmUgb2YgYW4gb3BlcmF0aW5n
CiAgICAgIyBzeXN0ZW0gdXNlZC4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIHN0cmlwIHRob3NlIFxy
J3MgZnJvbSBuZXdsaW5lcwogICAgICMgdW5jb25kaXRpb25hbGx5LgotICAgIGdvbGRlbiA9IFRv
VW5peExpbmVFbmRpbmcoZ29sZGVuX2ZpbGUucmVhZCgpKQorICAgIGdvbGRlbiA9IFRvVW5peExp
bmVFbmRpbmcoZ29sZGVuX2ZpbGUucmVhZCgpLmRlY29kZSgpKQogICAgIGdvbGRlbl9maWxlLmNs
b3NlKCkKIAogICAgICMgV2Ugd2FudCB0aGUgdGVzdCB0byBwYXNzIHJlZ2FyZGxlc3Mgb2YgY2Vy
dGFpbiBmZWF0dXJlcyBiZWluZwpAQCAtMzMyLDcgKzMzMSw3IEBAIGlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CiAgICAgaWYgQ0FOX0dFTkVSQVRFX0dPTERFTl9GSUxFOgogICAgICAgb3V0cHV0
ID0gR2V0T3V0cHV0T2ZBbGxDb21tYW5kcygpCiAgICAgICBnb2xkZW5fZmlsZSA9IG9wZW4oR09M
REVOX1BBVEgsICd3YicpCi0gICAgICBnb2xkZW5fZmlsZS53cml0ZShvdXRwdXQpCisgICAgICBn
b2xkZW5fZmlsZS53cml0ZShvdXRwdXQuZW5jb2RlKCkpCiAgICAgICBnb2xkZW5fZmlsZS5jbG9z
ZSgpCiAgICAgZWxzZToKICAgICAgIG1lc3NhZ2UgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LW91dHB1dC10ZXN0Xy5jYwppbmRleCBmNjUy
NWVjOTcwZGU1NDIxZTBlMzNiNmZmNmQyY2M2YzhkMDUxNjQ4Li45NzAwOWI1ZjZhYWRhMTY1YTc3
NjE3ZTM5M2E5MzEwMjUxNWExOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2dvb2dsZXRlc3Qtb3V0cHV0LXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1vdXRwdXQtdGVzdF8uY2MKQEAgLTkyLDkgKzkyLDE3IEBA
IFRFU1RfUChGYWlsaW5nUGFyYW1UZXN0LCBGYWlscykgewogCiAvLyBUaGlzIGdlbmVyYXRlcyBh
IHRlc3Qgd2hpY2ggd2lsbCBmYWlsLiBHb29nbGUgVGVzdCBpcyBleHBlY3RlZCB0byBwcmludAog
Ly8gaXRzIHBhcmFtZXRlciB3aGVuIGl0IG91dHB1dHMgdGhlIGxpc3Qgb2YgYWxsIGZhaWxlZCB0
ZXN0cy4KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFByaW50aW5nRmFpbGluZ1BhcmFtcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIEZhaWxpbmdQYXJhbVRlc3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFBy
aW50aW5nRmFpbGluZ1BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBGYWlsaW5nUGFy
YW1UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcygyKSk7CisK
Ky8vIFRlc3RzIHRoYXQgYW4gZW1wdHkgdmFsdWUgZm9yIHRoZSB0ZXN0IHN1aXRlIGJhc2VuYW1l
IHlpZWxkcyBqdXN0CisvLyB0aGUgdGVzdCBuYW1lIHdpdGhvdXQgYW55IHByaW9yIC8KK2NsYXNz
IEVtcHR5QmFzZW5hbWVQYXJhbUluc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxp
bnQ+IHt9OworCitURVNUX1AoRW1wdHlCYXNlbmFtZVBhcmFtSW5zdCwgUGFzc2VzKSB7IEVYUEVD
VF9FUSgxLCBHZXRQYXJhbSgpKTsgfQorCitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoLCBFbXB0
eUJhc2VuYW1lUGFyYW1JbnN0LCB0ZXN0aW5nOjpWYWx1ZXMoMSkpOwogCiBzdGF0aWMgY29uc3Qg
Y2hhciBrR29sZGVuU3RyaW5nW10gPSAiXCJMaW5lXDAgMVwiXG5MaW5lIDIiOwogCkBAIC0xNzQs
NyArMTgyLDcgQEAgVEVTVChTQ09QRURfVFJBQ0VUZXN0LCBBY2NlcHRlZFZhbHVlcykgewogICBT
Q09QRURfVFJBQ0UoImxpdGVyYWwgc3RyaW5nIik7CiAgIFNDT1BFRF9UUkFDRShzdGQ6OnN0cmlu
Zygic3RkOjpzdHJpbmciKSk7CiAgIFNDT1BFRF9UUkFDRSgxMzM3KTsgIC8vIHN0cmVhbWFibGUg
dHlwZQotICBjb25zdCBjaGFyKiBudWxsX3ZhbHVlID0gTlVMTDsKKyAgY29uc3QgY2hhciogbnVs
bF92YWx1ZSA9IG51bGxwdHI7CiAgIFNDT1BFRF9UUkFDRShudWxsX3ZhbHVlKTsKIAogICBBRERf
RkFJTFVSRSgpIDw8ICJKdXN0IGNoZWNraW5nIHRoYXQgYWxsIHRoZXNlIHZhbHVlcyB3b3JrIGZp
bmUuIjsKQEAgLTMwNiw5ICszMTQsOCBAQCBURVNUKFNDT1BFRF9UUkFDRVRlc3QsIFdvcmtzQ29u
Y3VycmVudGx5KSB7CiAgIHByaW50ZigiKGV4cGVjdGluZyA2IGZhaWx1cmVzKVxuIik7CiAKICAg
Q2hlY2tQb2ludHMgY2hlY2tfcG9pbnRzOwotICBUaHJlYWRXaXRoUGFyYW08Q2hlY2tQb2ludHMq
PiB0aHJlYWQoJlRocmVhZFdpdGhTY29wZWRUcmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZjaGVja19wb2ludHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKKyAgVGhyZWFkV2l0aFBhcmFtPENoZWNrUG9pbnRzKj4gdGhy
ZWFkKCZUaHJlYWRXaXRoU2NvcGVkVHJhY2UsICZjaGVja19wb2ludHMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAgY2hlY2tfcG9pbnRzLm4xLldh
aXRGb3JOb3RpZmljYXRpb24oKTsKIAogICB7CkBAIC0zNjUsMTUgKzM3MiwxMyBAQCBjbGFzcyBO
b25GYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwgaW4gdGhl
IHRlc3QgZml4dHVyZSBjJ3Rvci4iOwogICB9CiAKLSAgfk5vbkZhdGFsRmFpbHVyZUluRml4dHVy
ZUNvbnN0cnVjdG9yVGVzdCgpIHsKKyAgfk5vbkZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVj
dG9yVGVzdCgpIG92ZXJyaWRlIHsKICAgICBBRERfRkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWls
dXJlICM1LCBpbiB0aGUgdGVzdCBmaXh0dXJlIGQndG9yLiI7CiAgIH0KIAotICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKSB7Ci0gICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwg
aW4gU2V0VXAoKS4iOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IEFERF9GQUlMVVJF
KCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIFNldFVwKCkuIjsgfQogCi0gIHZpcnR1YWwg
dm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBBRERf
RkFJTFVSRSgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICM0LCBpbiBUZWFyRG93bi4iOwogICB9CiB9
OwpAQCAtMzkwLDE3ICszOTUsMTcgQEAgY2xhc3MgRmF0YWxGYWlsdXJlSW5GaXh0dXJlQ29uc3Ry
dWN0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIEluaXQoKTsKICAgfQogCi0g
IH5GYXRhbEZhaWx1cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QoKSB7CisgIH5GYXRhbEZhaWx1
cmVJbkZpeHR1cmVDb25zdHJ1Y3RvclRlc3QoKSBvdmVycmlkZSB7CiAgICAgQUREX0ZBSUxVUkUo
KSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMiwgaW4gdGhlIHRlc3QgZml4dHVyZSBkJ3Rvci4iOwog
ICB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
ewogICAgIEFERF9GQUlMVVJFKCkgPDwgIlVORVhQRUNURUQgZmFpbHVyZSBpbiBTZXRVcCgpLiAg
IgogICAgICAgICAgICAgICAgICAgPDwgIldlIHNob3VsZCBuZXZlciBnZXQgaGVyZSwgYXMgdGhl
IHRlc3QgZml4dHVyZSBjJ3RvciAiCiAgICAgICAgICAgICAgICAgICA8PCAiaGFkIGEgZmF0YWwg
ZmFpbHVyZS4iOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRl
YXJEb3duKCkgb3ZlcnJpZGUgewogICAgIEFERF9GQUlMVVJFKCkgPDwgIlVORVhQRUNURUQgZmFp
bHVyZSBpbiBUZWFyRG93bigpLiAgIgogICAgICAgICAgICAgICAgICAgPDwgIldlIHNob3VsZCBu
ZXZlciBnZXQgaGVyZSwgYXMgdGhlIHRlc3QgZml4dHVyZSBjJ3RvciAiCiAgICAgICAgICAgICAg
ICAgICA8PCAiaGFkIGEgZmF0YWwgZmFpbHVyZS4iOwpAQCAtNDIxLDE4ICs0MjYsMTUgQEAgVEVT
VF9GKEZhdGFsRmFpbHVyZUluRml4dHVyZUNvbnN0cnVjdG9yVGVzdCwgRmFpbHVyZUluQ29uc3Ry
dWN0b3IpIHsKIC8vIFRlc3RzIG5vbi1mYXRhbCBmYWlsdXJlcyBpbiBTZXRVcCgpLgogY2xhc3Mg
Tm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJv
dGVjdGVkOgotICB2aXJ0dWFsIH5Ob25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIHsKLSAgICBE
ZWluaXQoKTsKLSAgfQorICB+Tm9uRmF0YWxGYWlsdXJlSW5TZXRVcFRlc3QoKSBvdmVycmlkZSB7
IERlaW5pdCgpOyB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkg
b3ZlcnJpZGUgewogICAgIHByaW50ZigiKGV4cGVjdGluZyA0IGZhaWx1cmVzKVxuIik7CiAgICAg
QUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMSwgaW4gU2V0VXAoKS4iOwogICB9
CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIEZBSUwoKSA8PCAiRXhwZWN0ZWQg
ZmFpbHVyZSAjMywgaW4gVGVhckRvd24oKS4iOwotICB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVy
cmlkZSB7IEZBSUwoKSA8PCAiRXhwZWN0ZWQgZmFpbHVyZSAjMywgaW4gVGVhckRvd24oKS4iOyB9
CisKICBwcml2YXRlOgogICB2b2lkIERlaW5pdCgpIHsKICAgICBGQUlMKCkgPDwgIkV4cGVjdGVk
IGZhaWx1cmUgIzQsIGluIHRoZSB0ZXN0IGZpeHR1cmUgZCd0b3IuIjsKQEAgLTQ0NiwxOCArNDQ4
LDE1IEBAIFRFU1RfRihOb25GYXRhbEZhaWx1cmVJblNldFVwVGVzdCwgRmFpbHVyZUluU2V0VXAp
IHsKIC8vIFRlc3RzIGZhdGFsIGZhaWx1cmVzIGluIFNldFVwKCkuCiBjbGFzcyBGYXRhbEZhaWx1
cmVJblNldFVwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZp
cnR1YWwgfkZhdGFsRmFpbHVyZUluU2V0VXBUZXN0KCkgewotICAgIERlaW5pdCgpOwotICB9Cisg
IH5GYXRhbEZhaWx1cmVJblNldFVwVGVzdCgpIG92ZXJyaWRlIHsgRGVpbml0KCk7IH0KIAotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgcHJp
bnRmKCIoZXhwZWN0aW5nIDMgZmFpbHVyZXMpXG4iKTsKICAgICBGQUlMKCkgPDwgIkV4cGVjdGVk
IGZhaWx1cmUgIzEsIGluIFNldFVwKCkuIjsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93
bigpIHsKLSAgICBGQUlMKCkgPDwgIkV4cGVjdGVkIGZhaWx1cmUgIzIsIGluIFRlYXJEb3duKCku
IjsKLSAgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBGQUlMKCkgPDwgIkV4cGVjdGVk
IGZhaWx1cmUgIzIsIGluIFRlYXJEb3duKCkuIjsgfQorCiAgcHJpdmF0ZToKICAgdm9pZCBEZWlu
aXQoKSB7CiAgICAgRkFJTCgpIDw8ICJFeHBlY3RlZCBmYWlsdXJlICMzLCBpbiB0aGUgdGVzdCBm
aXh0dXJlIGQndG9yLiI7CkBAIC00NzAsMTA5ICs0NjksNTUgQEAgVEVTVF9GKEZhdGFsRmFpbHVy
ZUluU2V0VXBUZXN0LCBGYWlsdXJlSW5TZXRVcCkgewogfQogCiBURVNUKEFkZEZhaWx1cmVBdFRl
c3QsIE1lc3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyKSB7Ci0gIEFERF9G
QUlMVVJFX0FUKCJmb28uY2MiLCA0MikgPDwgIkV4cGVjdGVkIGZhaWx1cmUgaW4gZm9vLmNjIjsK
LX0KLQotI2lmIEdURVNUX0lTX1RIUkVBRFNBRkUKLQotLy8gQSB1bmFyeSBmdW5jdGlvbiB0aGF0
IG1heSBkaWUuCi12b2lkIERpZUlmKGJvb2wgc2hvdWxkX2RpZSkgewotICBHVEVTVF9DSEVDS18o
IXNob3VsZF9kaWUpIDw8ICIgLSBkZWF0aCBpbnNpZGUgRGllSWYoKS4iOworICBBRERfRkFJTFVS
RV9BVCgiZm9vLmNjIiwgNDIpIDw8ICJFeHBlY3RlZCBub25mYXRhbCBmYWlsdXJlIGluIGZvby5j
YyI7CiB9CiAKLS8vIFRlc3RzIHJ1bm5pbmcgZGVhdGggdGVzdHMgaW4gYSBtdWx0aS10aHJlYWRl
ZCBjb250ZXh0LgotCi0vLyBVc2VkIGZvciBjb29yZGluYXRpb24gYmV0d2VlbiB0aGUgbWFpbiBh
bmQgdGhlIHNwYXduIHRocmVhZC4KLXN0cnVjdCBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMgewot
ICBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMoKSB7fQotCi0gIE5vdGlmaWNhdGlvbiBzcGF3bl90
aHJlYWRfc3RhcnRlZDsKLSAgTm90aWZpY2F0aW9uIHNwYXduX3RocmVhZF9va190b190ZXJtaW5h
dGU7Ci0KLSBwcml2YXRlOgotICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFNwYXdu
VGhyZWFkTm90aWZpY2F0aW9ucyk7Ci19OwotCi0vLyBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0
ZWQgaW4gdGhlIHRocmVhZCBzcGF3biBieSB0aGUKLS8vIE11bHRpcGxlVGhyZWFkcyB0ZXN0IChi
ZWxvdykuCi1zdGF0aWMgdm9pZCBUaHJlYWRSb3V0aW5lKFNwYXduVGhyZWFkTm90aWZpY2F0aW9u
cyogbm90aWZpY2F0aW9ucykgewotICAvLyBTaWduYWxzIHRoZSBtYWluIHRocmVhZCB0aGF0IHRo
aXMgdGhyZWFkIGhhcyBzdGFydGVkLgotICBub3RpZmljYXRpb25zLT5zcGF3bl90aHJlYWRfc3Rh
cnRlZC5Ob3RpZnkoKTsKLQotICAvLyBXYWl0cyBmb3IgcGVybWlzc2lvbiB0byBmaW5pc2ggZnJv
bSB0aGUgbWFpbiB0aHJlYWQuCi0gIG5vdGlmaWNhdGlvbnMtPnNwYXduX3RocmVhZF9va190b190
ZXJtaW5hdGUuV2FpdEZvck5vdGlmaWNhdGlvbigpOworVEVTVChHdGVzdEZhaWxBdFRlc3QsIE1l
c3NhZ2VDb250YWluc1NwZWNpZmllZEZpbGVBbmRMaW5lTnVtYmVyKSB7CisgIEdURVNUX0ZBSUxf
QVQoImZvby5jYyIsIDQyKSA8PCAiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZSBpbiBmb28uY2MiOwog
fQogCi0vLyBUaGlzIGlzIGEgZGVhdGgtdGVzdCB0ZXN0LCBidXQgaXQncyBub3QgbmFtZWQgd2l0
aCBhIERlYXRoVGVzdAotLy8gc3VmZml4LiAgSXQgc3RhcnRzIHRocmVhZHMgd2hpY2ggbWlnaHQg
aW50ZXJmZXJlIHdpdGggbGF0ZXIKLS8vIGRlYXRoIHRlc3RzLCBzbyBpdCBtdXN0IHJ1biBhZnRl
ciBhbGwgb3RoZXIgZGVhdGggdGVzdHMuCi1jbGFzcyBEZWF0aFRlc3RBbmRNdWx0aVRocmVhZHNU
ZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3RlY3RlZDoKLSAgLy8gU3RhcnRzIGEg
dGhyZWFkIGFuZCB3YWl0cyBmb3IgaXQgdG8gYmVnaW4uCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgp
IHsKLSAgICB0aHJlYWRfLnJlc2V0KG5ldyBUaHJlYWRXaXRoUGFyYW08U3Bhd25UaHJlYWROb3Rp
ZmljYXRpb25zKj4oCi0gICAgICAgICZUaHJlYWRSb3V0aW5lLCAmbm90aWZpY2F0aW9uc18sIE5V
TEwpKTsKLSAgICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJlYWRfc3RhcnRlZC5XYWl0Rm9yTm90
aWZpY2F0aW9uKCk7Ci0gIH0KLSAgLy8gVGVsbHMgdGhlIHRocmVhZCB0byBmaW5pc2gsIGFuZCBy
ZWFwcyBpdC4KLSAgLy8gRGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSB0aHJlYWQgbGli
cmFyeSBpbiB1c2UsCi0gIC8vIGEgbWFuYWdlciB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgbGVmdCBy
dW5uaW5nIHRoYXQgd2lsbCBpbnRlcmZlcmUKLSAgLy8gd2l0aCBsYXRlciBkZWF0aCB0ZXN0cy4g
IFRoaXMgaXMgdW5mb3J0dW5hdGUsIGJ1dCB0aGlzIGNsYXNzCi0gIC8vIGNsZWFucyB1cCBhZnRl
ciBpdHNlbGYgYXMgYmVzdCBpdCBjYW4uCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAg
ICBub3RpZmljYXRpb25zXy5zcGF3bl90aHJlYWRfb2tfdG9fdGVybWluYXRlLk5vdGlmeSgpOwot
ICB9Ci0KLSBwcml2YXRlOgotICBTcGF3blRocmVhZE5vdGlmaWNhdGlvbnMgbm90aWZpY2F0aW9u
c187Ci0gIHRlc3Rpbmc6OmludGVybmFsOjpzY29wZWRfcHRyPFRocmVhZFdpdGhQYXJhbTxTcGF3
blRocmVhZE5vdGlmaWNhdGlvbnMqPiA+Ci0gICAgICB0aHJlYWRfOwotfTsKLQotI2VuZGlmICAv
LyBHVEVTVF9JU19USFJFQURTQUZFCi0KLS8vIFRoZSBNaXhlZFVwVGVzdENhc2VUZXN0IHRlc3Qg
Y2FzZSB2ZXJpZmllcyB0aGF0IEdvb2dsZSBUZXN0IHdpbGwgZmFpbCBhCisvLyBUaGUgTWl4ZWRV
cFRlc3RTdWl0ZVRlc3QgdGVzdCBjYXNlIHZlcmlmaWVzIHRoYXQgR29vZ2xlIFRlc3Qgd2lsbCBm
YWlsIGEKIC8vIHRlc3QgaWYgaXQgdXNlcyBhIGRpZmZlcmVudCBmaXh0dXJlIGNsYXNzIHRoYW4g
d2hhdCBvdGhlciB0ZXN0cyBpbgogLy8gdGhlIHNhbWUgdGVzdCBjYXNlIHVzZS4gIEl0IGRlbGli
ZXJhdGVseSBjb250YWlucyB0d28gZml4dHVyZQogLy8gY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5h
bWUgYnV0IGRlZmluZWQgaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMuCiAKLS8vIFRoZSBNaXhlZFVw
VGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCB0ZXN0IGNhc2UgdmVyaWZpZXMgdGhhdAorLy8g
VGhlIE1peGVkVXBUZXN0U3VpdGVXaXRoU2FtZVRlc3ROYW1lVGVzdCB0ZXN0IGNhc2UgdmVyaWZp
ZXMgdGhhdAogLy8gd2hlbiB0aGUgdXNlciBkZWZpbmVzIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1l
IHRlc3QgY2FzZSBuYW1lIEFORAogLy8gc2FtZSB0ZXN0IG5hbWUgKGJ1dCBpbiBkaWZmZXJlbnQg
bmFtZXNwYWNlcyksIHRoZSBzZWNvbmQgdGVzdCB3aWxsCiAvLyBmYWlsLgogCiBuYW1lc3BhY2Ug
Zm9vIHsKIAotY2xhc3MgTWl4ZWRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKK2NsYXNzIE1peGVkVXBUZXN0U3VpdGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
fTsKIAotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVRlc3QsIEZpcnN0VGVzdEZyb21OYW1lc3BhY2VG
b28pIHt9Ci1URVNUX0YoTWl4ZWRVcFRlc3RDYXNlVGVzdCwgU2Vjb25kVGVzdEZyb21OYW1lc3Bh
Y2VGb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIEZpcnN0VGVzdEZyb21OYW1l
c3BhY2VGb28pIHt9CitURVNUX0YoTWl4ZWRVcFRlc3RTdWl0ZVRlc3QsIFNlY29uZFRlc3RGcm9t
TmFtZXNwYWNlRm9vKSB7fQogCi1jbGFzcyBNaXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1l
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK2NsYXNzIE1peGVkVXBUZXN0U3VpdGVXaXRo
U2FtZVRlc3ROYW1lVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKLVRFU1RfRihN
aXhlZFVwVGVzdENhc2VXaXRoU2FtZVRlc3ROYW1lVGVzdCwKK1RFU1RfRihNaXhlZFVwVGVzdFN1
aXRlV2l0aFNhbWVUZXN0TmFtZVRlc3QsCiAgICAgICAgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFt
ZVNob3VsZEZhaWwpIHt9CiAKIH0gIC8vIG5hbWVzcGFjZSBmb28KIAogbmFtZXNwYWNlIGJhciB7
CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Citj
bGFzcyBNaXhlZFVwVGVzdFN1aXRlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAK
IC8vIFRoZSBmb2xsb3dpbmcgdHdvIHRlc3RzIGFyZSBleHBlY3RlZCB0byBmYWlsLiAgV2UgcmVs
eSBvbiB0aGUKIC8vIGdvbGRlbiBmaWxlIHRvIGNoZWNrIHRoYXQgR29vZ2xlIFRlc3QgZ2VuZXJh
dGVzIHRoZSByaWdodCBlcnJvciBtZXNzYWdlLgotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVRlc3Qs
IFRoaXNTaG91bGRGYWlsKSB7fQotVEVTVF9GKE1peGVkVXBUZXN0Q2FzZVRlc3QsIFRoaXNTaG91
bGRGYWlsVG9vKSB7fQorVEVTVF9GKE1peGVkVXBUZXN0U3VpdGVUZXN0LCBUaGlzU2hvdWxkRmFp
bCkge30KK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlVGVzdCwgVGhpc1Nob3VsZEZhaWxUb28pIHt9
CiAKLWNsYXNzIE1peGVkVXBUZXN0Q2FzZVdpdGhTYW1lVGVzdE5hbWVUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgeworY2xhc3MgTWl4ZWRVcFRlc3RTdWl0ZVdpdGhTYW1lVGVzdE5hbWVUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAogLy8gRXhwZWN0ZWQgdG8gZmFpbC4gIFdl
IHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIGNoZWNrIHRoYXQgR29vZ2xlIFRlc3QKIC8vIGdl
bmVyYXRlcyB0aGUgcmlnaHQgZXJyb3IgbWVzc2FnZS4KLVRFU1RfRihNaXhlZFVwVGVzdENhc2VX
aXRoU2FtZVRlc3ROYW1lVGVzdCwKK1RFU1RfRihNaXhlZFVwVGVzdFN1aXRlV2l0aFNhbWVUZXN0
TmFtZVRlc3QsCiAgICAgICAgVGhlU2Vjb25kVGVzdFdpdGhUaGlzTmFtZVNob3VsZEZhaWwpIHt9
CiAKIH0gIC8vIG5hbWVzcGFjZSBiYXIKQEAgLTc4MywxOSArNzI4LDI3IEBAIFRFU1RfUChQYXJh
bVRlc3QsIEZhaWx1cmUpIHsKICAgRVhQRUNUX0VRKCJiIiwgR2V0UGFyYW0oKSkgPDwgIkV4cGVj
dGVkIGZhaWx1cmUiOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChQcmludGluZ1N0cmlu
Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICBQYXJhbVRlc3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0aW5nOjpWYWx1ZXMoc3RkOjpzdHJpbmcoImEiKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBQYXJhbU5hbWVGdW5jKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChQcmlu
dGluZ1N0cmluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1UZXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlZhbHVlcyhzdGQ6OnN0cmluZygiYSIpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU5hbWVGdW5jKTsKIAotLy8gVGhpcyAjaWZkZWYg
YmxvY2sgdGVzdHMgdGhlIG91dHB1dCBvZiB0eXBlZCB0ZXN0cy4KLSNpZiBHVEVTVF9IQVNfVFlQ
RURfVEVTVAorLy8gVGhlIGNhc2Ugd2hlcmUgYSBzdWl0ZSBoYXMgSU5TVEFOVElBVEVfVEVTVF9T
VUlURV9QIGJ1dCBub3QgVEVTVF9QLgordXNpbmcgTm9UZXN0cyA9IFBhcmFtVGVzdDsKK0lOU1RB
TlRJQVRFX1RFU1RfU1VJVEVfUChUaGlzSXNPZGQsIE5vVGVzdHMsIDo6dGVzdGluZzo6VmFsdWVz
KCJIZWxsbyIpKTsKKworLy8gZmFpbHMgdW5kZXIga0Vycm9yT25Vbmluc3RhbnRpYXRlZFBhcmFt
ZXRlcml6ZWRUZXN0PXRydWUKK2NsYXNzIERldGVjdE5vdEluc3RhbnRpYXRlZFRlc3QgOiBwdWJs
aWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OworVEVTVF9QKERldGVjdE5vdEluc3Rh
bnRpYXRlZFRlc3QsIFVzZWQpIHsgfQorCisvLyBUaGlzIHdvdWxkIG1ha2UgdGhlIHRlc3QgZmFp
bHVyZSBmcm9tIHRoZSBhYm92ZSBnbyBhd2F5LgorLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9Q
KEZpeCwgRGV0ZWN0Tm90SW5zdGFudGlhdGVkVGVzdCwgdGVzdGluZzo6VmFsdWVzKDEpKTsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0LCB0ZXN0aW5nOjpUeXBlczxp
bnQ+KTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0LCB0ZXN0aW5nOjpUeXBlczxpbnQ+KTsK
IAogVFlQRURfVEVTVChUeXBlZFRlc3QsIFN1Y2Nlc3MpIHsKICAgRVhQRUNUX0VRKDAsIFR5cGVQ
YXJhbSgpKTsKQEAgLTgxNCwyOSArNzY3LDI0IEBAIGNsYXNzIFR5cGVkVGVzdE5hbWVzIHsKICBw
dWJsaWM6CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0
TmFtZShpbnQgaSkgewotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGNoYXI+
Ojp2YWx1ZSkKKyAgICBpZiAoc3RkOjppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkKICAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZygiY2hhciIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwot
ICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGludD46OnZhbHVlKQorICAgIGlm
IChzdGQ6OmlzX3NhbWU8VCwgaW50Pjo6dmFsdWUpCiAgICAgICByZXR1cm4gc3RkOjpzdHJpbmco
ImludCIpICsgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICB9CiB9OwogCi1UWVBFRF9U
RVNUX0NBU0UoVHlwZWRUZXN0V2l0aE5hbWVzLCBUeXBlc0ZvclRlc3RXaXRoTmFtZXMsIFR5cGVk
VGVzdE5hbWVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoVHlwZWRUZXN0V2l0aE5hbWVzLCBUeXBlc0Zv
clRlc3RXaXRoTmFtZXMsIFR5cGVkVGVzdE5hbWVzKTsKIAogVFlQRURfVEVTVChUeXBlZFRlc3RX
aXRoTmFtZXMsIFN1Y2Nlc3MpIHt9CiAKIFRZUEVEX1RFU1QoVHlwZWRUZXN0V2l0aE5hbWVzLCBG
YWlsdXJlKSB7IEZBSUwoKTsgfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0K
LS8vIFRoaXMgI2lmZGVmIGJsb2NrIHRlc3RzIHRoZSBvdXRwdXQgb2YgdHlwZS1wYXJhbWV0ZXJp
emVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3RQIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAot
VFlQRURfVEVTVF9DQVNFX1AoVHlwZWRUZXN0UCk7CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZWRU
ZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQLCBTdWNjZXNzKSB7CiAgIEVYUEVDVF9F
USgwVSwgVHlwZVBhcmFtKCkpOwpAQCAtODQ2LDI4ICs3OTQsNDEgQEAgVFlQRURfVEVTVF9QKFR5
cGVkVGVzdFAsIEZhaWx1cmUpIHsKICAgRVhQRUNUX0VRKDFVLCBUeXBlUGFyYW0oKSkgPDwgIkV4
cGVjdGVkIGZhaWx1cmUiOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRl
c3RQLCBTdWNjZXNzLCBGYWlsdXJlKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBl
ZFRlc3RQLCBTdWNjZXNzLCBGYWlsdXJlKTsKIAogdHlwZWRlZiB0ZXN0aW5nOjpUeXBlczx1bnNp
Z25lZCBjaGFyLCB1bnNpZ25lZCBpbnQ+IFVuc2lnbmVkVHlwZXM7Ci1JTlNUQU5USUFURV9UWVBF
RF9URVNUX0NBU0VfUChVbnNpZ25lZCwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBlcyk7CitJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoVW5zaWduZWQsIFR5cGVkVGVzdFAsIFVuc2lnbmVk
VHlwZXMpOwogCiBjbGFzcyBUeXBlZFRlc3RQTmFtZXMgewogIHB1YmxpYzoKICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1lKGludCBpKSB7Ci0gICAg
aWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VCwgdW5zaWduZWQgY2hhcj46OnZhbHVlKSB7
CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCB1bnNpZ25lZCBjaGFyPjo6dmFsdWUpIHsKICAgICAg
IHJldHVybiBzdGQ6OnN0cmluZygidW5zaWduZWRDaGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmcoaSk7CiAgICAgfQotICAgIGlmICh0ZXN0aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIHVu
c2lnbmVkIGludD46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxULCB1bnNpZ25lZCBp
bnQ+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJ1bnNpZ25lZEludCIpICsg
Ojp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0KICAgfQogfTsKIAotSU5TVEFOVElB
VEVfVFlQRURfVEVTVF9DQVNFX1AoVW5zaWduZWRDdXN0b21OYW1lLCBUeXBlZFRlc3RQLCBVbnNp
Z25lZFR5cGVzLAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKFVuc2lnbmVkQ3VzdG9t
TmFtZSwgVHlwZWRUZXN0UCwgVW5zaWduZWRUeXBlcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFR5cGVkVGVzdFBOYW1lcyk7CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RF
U1RfUAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBEZXRlY3ROb3RJbnN0YW50aWF0ZWRU
eXBlc1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJVEVfUChE
ZXRlY3ROb3RJbnN0YW50aWF0ZWRUeXBlc1Rlc3QpOworVFlQRURfVEVTVF9QKERldGVjdE5vdElu
c3RhbnRpYXRlZFR5cGVzVGVzdCwgVXNlZCkgeworICBUeXBlUGFyYW0gaW5zdGFudGlhdGU7Cisg
ICh2b2lkKWluc3RhbnRpYXRlOworfQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKERldGVj
dE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCwgVXNlZCk7CisKKy8vIGtFcnJvck9uVW5pbnN0YW50
aWF0ZWRUeXBlUGFyYW1ldGVyaXplZFRlc3Q9dHJ1ZSB3b3VsZCBtYWtlIHRoZSBhYm92ZSBmYWls
LgorLy8gQWRkaW5nIHRoZSBmb2xsb3dpbmcgd291bGQgbWFrZSB0aGF0IHRlc3QgZmFpbHVyZSBn
byBhd2F5LgorLy8KKy8vIHR5cGVkZWYgOjp0ZXN0aW5nOjpUeXBlczxjaGFyLCBpbnQsIHVuc2ln
bmVkIGludD4gTXlUeXBlczsKKy8vIElOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChBbGws
IERldGVjdE5vdEluc3RhbnRpYXRlZFR5cGVzVGVzdCwgTXlUeXBlcyk7CiAKICNpZiBHVEVTVF9I
QVNfREVBVEhfVEVTVAogCkBAIC04NzcsOCArODM4LDYgQEAgSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9DQVNFX1AoVW5zaWduZWRDdXN0b21OYW1lLCBUeXBlZFRlc3RQLCBVbnNpZ25lZFR5cGVzLAog
VEVTVChBRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCkgewogfQogCi0jIGlmIEdURVNUX0hBU19U
WVBFRF9URVNUCi0KIC8vIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRvIHZlcmlmeSB0aGF0
IHR5cGVkIHRlc3RzIHdob3NlIHRlc3QKIC8vIGNhc2UgbmFtZSBlbmRzIHdpdGggRGVhdGhUZXN0
IGFyZSBydW4gZmlyc3QuCiAKQEAgLTg4NywxNSArODQ2LDExIEBAIGNsYXNzIEFUeXBlZERlYXRo
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIH07CiAKIHR5cGVkZWYgdGVzdGluZzo6VHlw
ZXM8aW50LCBkb3VibGU+IE51bWVyaWNUeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShBVHlwZWREZWF0
aFRlc3QsIE51bWVyaWNUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKEFUeXBlZERlYXRoVGVzdCwg
TnVtZXJpY1R5cGVzKTsKIAogVFlQRURfVEVTVChBVHlwZWREZWF0aFRlc3QsIFNob3VsZFJ1bkZp
cnN0KSB7CiB9CiAKLSMgZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KLSMgaWYgR1RF
U1RfSEFTX1RZUEVEX1RFU1RfUAotCiAKIC8vIFdlIHJlbHkgb24gdGhlIGdvbGRlbiBmaWxlIHRv
IHZlcmlmeSB0aGF0IHR5cGUtcGFyYW1ldGVyaXplZCB0ZXN0cwogLy8gd2hvc2UgdGVzdCBjYXNl
IG5hbWUgZW5kcyB3aXRoIERlYXRoVGVzdCBhcmUgcnVuIGZpcnN0LgpAQCAtOTA0LDE2ICs4NTks
MTQgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBBVHlwZVBhcmFtRGVhdGhUZXN0IDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoQVR5cGVQYXJh
bURlYXRoVGVzdCk7CitUWVBFRF9URVNUX1NVSVRFX1AoQVR5cGVQYXJhbURlYXRoVGVzdCk7CiAK
IFRZUEVEX1RFU1RfUChBVHlwZVBhcmFtRGVhdGhUZXN0LCBTaG91bGRSdW5GaXJzdCkgewogfQog
Ci1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChBVHlwZVBhcmFtRGVhdGhUZXN0LCBTaG91bGRS
dW5GaXJzdCk7Ci0KLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBBVHlwZVBhcmFt
RGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOworUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKEFU
eXBlUGFyYW1EZWF0aFRlc3QsIFNob3VsZFJ1bkZpcnN0KTsKIAotIyBlbmRpZiAgLy8gR1RFU1Rf
SEFTX1RZUEVEX1RFU1RfUAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBBVHlw
ZVBhcmFtRGVhdGhUZXN0LCBOdW1lcmljVHlwZXMpOwogCiAjZW5kaWYgIC8vIEdURVNUX0hBU19E
RUFUSF9URVNUCiAKQEAgLTk2Niw3ICs5MTksNyBAQCBURVNUX0YoRXhwZWN0RmFpbHVyZVRlc3Qs
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZSkgewogY2xhc3MgRXhwZWN0RmFpbHVyZVdpdGhUaHJlYWRz
VGVzdCA6IHB1YmxpYyBFeHBlY3RGYWlsdXJlVGVzdCB7CiAgcHJvdGVjdGVkOgogICBzdGF0aWMg
dm9pZCBBZGRGYWlsdXJlSW5PdGhlclRocmVhZChGYWlsdXJlTW9kZSBmYWlsdXJlKSB7Ci0gICAg
VGhyZWFkV2l0aFBhcmFtPEZhaWx1cmVNb2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUsIGZhaWx1cmUs
IE5VTEwpOworICAgIFRocmVhZFdpdGhQYXJhbTxGYWlsdXJlTW9kZT4gdGhyZWFkKCZBZGRGYWls
dXJlLCBmYWlsdXJlLCBudWxscHRyKTsKICAgICB0aHJlYWQuSm9pbigpOwogICB9CiB9OwpAQCAt
MTAzNCwxNiArOTg3LDY0IEBAIFRFU1RfRihFeHBlY3RGYWlsdXJlVGVzdCwgRXhwZWN0Tm9uRmF0
YWxGYWlsdXJlT25BbGxUaHJlYWRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJTb21lIG90aGVyIG5vbi1mYXRhbCBmYWlsdXJlLiIpOwogfQogCitjbGFzcyBE
eW5hbWljRml4dHVyZSA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIER5
bmFtaWNGaXh0dXJlKCkgeyBwcmludGYoIkR5bmFtaWNGaXh0dXJlKClcbiIpOyB9CisgIH5EeW5h
bWljRml4dHVyZSgpIG92ZXJyaWRlIHsgcHJpbnRmKCJ+RHluYW1pY0ZpeHR1cmUoKVxuIik7IH0K
KyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgcHJpbnRmKCJEeW5hbWljRml4dHVyZTo6U2V0VXBc
biIpOyB9CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IHByaW50ZigiRHluYW1pY0ZpeHR1
cmU6OlRlYXJEb3duXG4iKTsgfQorCisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgeyBw
cmludGYoIkR5bmFtaWNGaXh0dXJlOjpTZXRVcFRlc3RTdWl0ZVxuIik7IH0KKyAgc3RhdGljIHZv
aWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CisgICAgcHJpbnRmKCJEeW5hbWljRml4dHVyZTo6VGVh
ckRvd25UZXN0U3VpdGVcbiIpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBQYXNzPgorY2xh
c3MgRHluYW1pY1Rlc3QgOiBwdWJsaWMgRHluYW1pY0ZpeHR1cmUgeworIHB1YmxpYzoKKyAgdm9p
ZCBUZXN0Qm9keSgpIG92ZXJyaWRlIHsgRVhQRUNUX1RSVUUoUGFzcyk7IH0KK307CisKK2F1dG8g
ZHluYW1pY190ZXN0ID0gKAorICAgIC8vIFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1l
IGZpeHR1cmUgY29ycmVjdGx5LgorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVzdCgKKyAgICAgICAg
IkR5bmFtaWNGaXh0dXJlIiwgIkR5bmFtaWNUZXN0UGFzcyIsIG51bGxwdHIsIG51bGxwdHIsIF9f
RklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5hbWljRml4dHVyZSogeyByZXR1
cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKyAgICB0ZXN0aW5nOjpSZWdpc3RlclRlc3Qo
CisgICAgICAgICJEeW5hbWljRml4dHVyZSIsICJEeW5hbWljVGVzdEZhaWwiLCBudWxscHRyLCBu
dWxscHRyLCBfX0ZJTEVfXywKKyAgICAgICAgX19MSU5FX18sIFtdKCkgLT4gRHluYW1pY0ZpeHR1
cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVzdDxmYWxzZT47IH0pLAorCisgICAgLy8gUmVnaXN0
ZXIgdGhlIHNhbWUgZml4dHVyZSB3aXRoIGFub3RoZXIgbmFtZS4gVGhhdCdzIGZpbmUuCisgICAg
dGVzdGluZzo6UmVnaXN0ZXJUZXN0KAorICAgICAgICAiRHluYW1pY0ZpeHR1cmVBbm90aGVyTmFt
ZSIsICJEeW5hbWljVGVzdFBhc3MiLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICBfX0ZJTEVf
XywgX19MSU5FX18sCisgICAgICAgIFtdKCkgLT4gRHluYW1pY0ZpeHR1cmUqIHsgcmV0dXJuIG5l
dyBEeW5hbWljVGVzdDx0cnVlPjsgfSksCisKKyAgICAvLyBSZWdpc3RlciB0d28gdGVzdHMgd2l0
aCB0aGUgc2FtZSBmaXh0dXJlIGluY29ycmVjdGx5LgorICAgIHRlc3Rpbmc6OlJlZ2lzdGVyVGVz
dCgKKyAgICAgICAgIkJhZER5bmFtaWNGaXh0dXJlMSIsICJGaXh0dXJlQmFzZSIsIG51bGxwdHIs
IG51bGxwdHIsIF9fRklMRV9fLAorICAgICAgICBfX0xJTkVfXywgW10oKSAtPiBEeW5hbWljRml4
dHVyZSogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKyAgICB0ZXN0aW5nOjpS
ZWdpc3RlclRlc3QoCisgICAgICAgICJCYWREeW5hbWljRml4dHVyZTEiLCAiVGVzdEJhc2UiLCBu
dWxscHRyLCBudWxscHRyLCBfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgIFtdKCkgLT4gdGVz
dGluZzo6VGVzdCogeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRydWU+OyB9KSwKKworICAgIC8v
IFJlZ2lzdGVyIHR3byB0ZXN0cyB3aXRoIHRoZSBzYW1lIGZpeHR1cmUgaW5jb3JyZWN0bHkgYnkg
b21taXRpbmcgdGhlCisgICAgLy8gcmV0dXJuIHR5cGUuCisgICAgdGVzdGluZzo6UmVnaXN0ZXJU
ZXN0KAorICAgICAgICAiQmFkRHluYW1pY0ZpeHR1cmUyIiwgIkZpeHR1cmVCYXNlIiwgbnVsbHB0
ciwgbnVsbHB0ciwgX19GSUxFX18sCisgICAgICAgIF9fTElORV9fLCBbXSgpIC0+IER5bmFtaWNG
aXh0dXJlKiB7IHJldHVybiBuZXcgRHluYW1pY1Rlc3Q8dHJ1ZT47IH0pLAorICAgIHRlc3Rpbmc6
OlJlZ2lzdGVyVGVzdCgiQmFkRHluYW1pY0ZpeHR1cmUyIiwgIkRlcml2ZWQiLCBudWxscHRyLCBu
dWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtdKCkgeyByZXR1cm4gbmV3IER5bmFtaWNUZXN0PHRy
dWU+OyB9KSk7CiAKIC8vIFR3byB0ZXN0IGVudmlyb25tZW50cyBmb3IgdGVzdGluZyB0ZXN0aW5n
OjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoKS4KIAogY2xhc3MgRm9vRW52aXJvbm1lbnQgOiBw
dWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFNl
dFVwKCkgewotICAgIHByaW50ZigiJXMiLCAiRm9vRW52aXJvbm1lbnQ6OlNldFVwKCkgY2FsbGVk
LlxuIik7Ci0gIH0KKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsgcHJpbnRmKCIlcyIsICJGb29F
bnZpcm9ubWVudDo6U2V0VXAoKSBjYWxsZWQuXG4iKTsgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFy
RG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBwcmludGYoIiVzIiwg
IkZvb0Vudmlyb25tZW50OjpUZWFyRG93bigpIGNhbGxlZC5cbiIpOwogICAgIEZBSUwoKSA8PCAi
RXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iOwogICB9CkBAIC0xMDUxLDExICsxMDUyLDkgQEAgY2xh
c3MgRm9vRW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewogCiBjbGFz
cyBCYXJFbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgcHVibGlj
OgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7Ci0gICAgcHJpbnRmKCIlcyIsICJCYXJFbnZpcm9u
bWVudDo6U2V0VXAoKSBjYWxsZWQuXG4iKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
eyBwcmludGYoIiVzIiwgIkJhckVudmlyb25tZW50OjpTZXRVcCgpIGNhbGxlZC5cbiIpOyB9CiAK
LSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUg
ewogICAgIHByaW50ZigiJXMiLCAiQmFyRW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgY2FsbGVkLlxu
Iik7CiAgICAgQUREX0ZBSUxVUkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuIjsK
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LWludmFsaWQtbmFtZTEtdGVzdF8uY2MKaW5k
ZXggNWE5NTE1NWIyM2E3ODcxZGI1ZDI1NDlhMGU5ZjkwNTA3NWE5Mzk5NC4uOTU1ZDY5OTkwMGQ4
Y2Q4ZWIxOWIyNTFkMzVkNmQ1ZjdlZTgyZTYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMS10ZXN0Xy5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVz
dC1pbnZhbGlkLW5hbWUxLXRlc3RfLmNjCkBAIC0zNiwxMCArMzYsMTAgQEAgY2xhc3MgRHVtbXlU
ZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdFdpdGhQYXJhbTxjb25zdCBjaGFyICo+IHt9Owog
VEVTVF9QKER1bW15VGVzdCwgRHVtbXkpIHsKIH0KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1Ao
SW52YWxpZFRlc3ROYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoIkludmFsaWRXaXRoUXVvdGVz
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJh
bU5hbWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoSW52YWxpZFRlc3ROYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIER1bW15VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OlZhbHVlcygiSW52YWxpZFdpdGhRdW90ZXMiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7CiAKIH0gIC8v
IG5hbWVzcGFjZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUyLXRlc3RfLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3QtaW52YWxpZC1uYW1lMi10ZXN0
Xy5jYwppbmRleCBlZjA5MzQ5MGU5ZGEyZjAyZWQyOGEyZDA3MTI0NDVlMjQxN2NiZGEzLi43NjM3
MWRmNTRmMGIzZTJmMjc3MzY0ZGQ4YTIyZDAyODIzYzJlZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC1pbnZhbGlkLW5hbWUy
LXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1w
YXJhbS10ZXN0LWludmFsaWQtbmFtZTItdGVzdF8uY2MKQEAgLTQxLDEwICs0MSwxMCBAQCBzdGQ6
OnN0cmluZyBTdHJpbmdQYXJhbVRlc3RTdWZmaXgoCiBURVNUX1AoRHVtbXlUZXN0LCBEdW1teSkg
ewogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChEdXBsaWNhdGVUZXN0TmFtZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBEdW1teVRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICA6
OnRlc3Rpbmc6OlZhbHVlcygiYSIsICJiIiwgImEiLCAiYyIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgU3RyaW5nUGFyYW1UZXN0U3VmZml4KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChE
dXBsaWNhdGVUZXN0TmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlUZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzKCJhIiwgImIiLCAiYSIs
ICJjIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUGFyYW1UZXN0U3VmZml4KTsK
IH0gIC8vIG5hbWVzcGFjZQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdC10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBh
cmFtLXRlc3QtdGVzdC5jYwppbmRleCBmNzg5Y2FiMjcwNzQxNGM0NjQ4NDk2ZDdiOWZiYWI0ZmU1
MzFmMGI3Li5jODUyMjIwZTI3ZWQyMTMwM2QxYzRhMmU4OTU1ODgwNmZjYjc2OTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJh
bS10ZXN0LXRlc3QuY2MKQEAgLTM3LDYgKzM3LDcgQEAKICMgaW5jbHVkZSA8YWxnb3JpdGhtPgog
IyBpbmNsdWRlIDxpb3N0cmVhbT4KICMgaW5jbHVkZSA8bGlzdD4KKyMgaW5jbHVkZSA8c2V0Pgog
IyBpbmNsdWRlIDxzc3RyZWFtPgogIyBpbmNsdWRlIDxzdHJpbmc+CiAjIGluY2x1ZGUgPHZlY3Rv
cj4KQEAgLTQ5LDE5ICs1MCwxMyBAQCB1c2luZyA6OnN0ZDo6c29ydDsKIAogdXNpbmcgOjp0ZXN0
aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQ7CiB1c2luZyA6OnRlc3Rpbmc6OkJvb2w7Cit1
c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7CiB1c2luZyA6OnRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2lu
ZyA6OnRlc3Rpbmc6OlJhbmdlOwogdXNpbmcgOjp0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtOwogdXNp
bmcgOjp0ZXN0aW5nOjpWYWx1ZXM7CiB1c2luZyA6OnRlc3Rpbmc6OlZhbHVlc0luOwogCi0jIGlm
IEdURVNUX0hBU19DT01CSU5FCi11c2luZyA6OnRlc3Rpbmc6OkNvbWJpbmU7Ci11c2luZyA6OnRl
c3Rpbmc6OmdldDsKLXVzaW5nIDo6dGVzdGluZzo6bWFrZV90dXBsZTsKLXVzaW5nIDo6dGVzdGlu
Zzo6dHVwbGU7Ci0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCiB1c2luZyA6OnRlc3Rp
bmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6
OlVuaXRUZXN0T3B0aW9uczsKIApAQCAtNzMsNDkgKzY4LDkgQEAgdXNpbmcgOjp0ZXN0aW5nOjpp
bnRlcm5hbDo6VW5pdFRlc3RPcHRpb25zOwogLy8gRVhQRUNUX1RIQVQoKSBhbmQgdGhlIG1hdGNo
ZXJzIGtub3cgaG93IHRvIHByaW50IHR1cGxlcy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogOjpz
dGQ6OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IFQmIHZhbHVlKSB7Ci0gIDo6c3RkOjpzdHJpbmdz
dHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgdmFsdWU7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7
Ci19Ci0KLSMgaWYgR1RFU1RfSEFTX0NPTUJJTkUKLQotLy8gVGhlc2Ugb3ZlcmxvYWRzIGFsbG93
IHByaW50aW5nIHR1cGxlcyBpbiBvdXIgdGVzdHMuICBXZSBjYW5ub3QKLS8vIGRlZmluZSBhbiBv
cGVyYXRvcjw8IGZvciB0dXBsZXMsIGFzIHRoYXQgZGVmaW5pdGlvbiBuZWVkcyB0byBiZSBpbgot
Ly8gdGhlIHN0ZCBuYW1lc3BhY2UgaW4gb3JkZXIgdG8gYmUgcGlja2VkIHVwIGJ5IEdvb2dsZSBU
ZXN0IHZpYQotLy8gQXJndW1lbnQtRGVwZW5kZW50IExvb2t1cCwgeWV0IGRlZmluaW5nIGFueXRo
aW5nIGluIHRoZSBzdGQKLS8vIG5hbWVzcGFjZSBpbiBub24tU1RMIGNvZGUgaXMgdW5kZWZpbmVk
IGJlaGF2aW9yLgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotOjpzdGQ6
OnN0cmluZyBQcmludFZhbHVlKGNvbnN0IHR1cGxlPFQxLCBUMj4mIHZhbHVlKSB7Ci0gIDo6c3Rk
OjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDwwPih2YWx1ZSkg
PDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpIDw8ICIpIjsKLSAgcmV0dXJuIHN0cmVhbS5zdHIoKTsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+Ci06
OnN0ZDo6c3RyaW5nIFByaW50VmFsdWUoY29uc3QgdHVwbGU8VDEsIFQyLCBUMz4mIHZhbHVlKSB7
Ci0gIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDww
Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0
PDI+KHZhbHVlKSA8PCAiKSI7Ci0gIHJldHVybiBzdHJlYW0uc3RyKCk7CisgIHJldHVybiB0ZXN0
aW5nOjpQcmludFRvU3RyaW5nKHZhbHVlKTsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwKLSAgICAg
ICAgICB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwg
dHlwZW5hbWUgVDEwPgotOjpzdGQ6OnN0cmluZyBQcmludFZhbHVlKAotICAgIGNvbnN0IHR1cGxl
PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4mIHZhbHVlKSB7Ci0gIDo6
c3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotICBzdHJlYW0gPDwgIigiIDw8IGdldDwwPih2YWx1
ZSkgPDwgIiwgIiA8PCBnZXQ8MT4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0PDI+KHZh
bHVlKSA8PCAiLCAiIDw8IGdldDwzPih2YWx1ZSkKLSAgICAgICAgIDw8ICIsICI8PCBnZXQ8ND4o
dmFsdWUpIDw8ICIsICIgPDwgZ2V0PDU+KHZhbHVlKQotICAgICAgICAgPDwgIiwgIjw8IGdldDw2
Pih2YWx1ZSkgPDwgIiwgIiA8PCBnZXQ8Nz4odmFsdWUpCi0gICAgICAgICA8PCAiLCAiPDwgZ2V0
PDg+KHZhbHVlKSA8PCAiLCAiIDw8IGdldDw5Pih2YWx1ZSkgPDwgIikiOwotICByZXR1cm4gc3Ry
ZWFtLnN0cigpOwotfQotCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNfQ09NQklORQotCiAvLyBWZXJp
ZmllcyB0aGF0IGEgc2VxdWVuY2UgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0b3IgYW5kIGFjY2Vz
c2VkCiAvLyB2aWEgdGhlIGl0ZXJhdG9yIG9iamVjdCBtYXRjaGVzIHRoZSBleHBlY3RlZCBvbmUg
dXNpbmcgR29vZ2xlIFRlc3QKIC8vIGFzc2VydGlvbnMuCkBAIC00NTAsMzEgKzQwNSwyOCBAQCBU
RVNUKEJvb2xUZXN0LCBCb29sV29ya3MpIHsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0
ZWRfdmFsdWVzKTsKIH0KIAotIyBpZiBHVEVTVF9IQVNfQ09NQklORQotCiAvLyBUZXN0cyB0aGF0
IENvbWJpbmUoKSB3aXRoIHR3byBwYXJhbWV0ZXJzIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgc2Vx
dWVuY2UuCiBURVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aFR3b1BhcmFtZXRlcnMpIHsKICAg
Y29uc3QgY2hhciogZm9vID0gImZvbyI7CiAgIGNvbnN0IGNoYXIqIGJhciA9ICJiYXIiOwotICBj
b25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxjb25zdCBjaGFyKiwgaW50PiA+IGdlbiA9CisgIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8Y29uc3QgY2hhciosIGludD4gPiBnZW4gPQog
ICAgICAgQ29tYmluZShWYWx1ZXMoZm9vLCBiYXIpLCBWYWx1ZXMoMywgNCkpOwogCi0gIHR1cGxl
PGNvbnN0IGNoYXIqLCBpbnQ+IGV4cGVjdGVkX3ZhbHVlc1tdID0gewotICAgIG1ha2VfdHVwbGUo
Zm9vLCAzKSwgbWFrZV90dXBsZShmb28sIDQpLAotICAgIG1ha2VfdHVwbGUoYmFyLCAzKSwgbWFr
ZV90dXBsZShiYXIsIDQpfTsKKyAgc3RkOjp0dXBsZTxjb25zdCBjaGFyKiwgaW50PiBleHBlY3Rl
ZF92YWx1ZXNbXSA9IHsKKyAgICAgIHN0ZDo6bWFrZV90dXBsZShmb28sIDMpLCBzdGQ6Om1ha2Vf
dHVwbGUoZm9vLCA0KSwgc3RkOjptYWtlX3R1cGxlKGJhciwgMyksCisgICAgICBzdGQ6Om1ha2Vf
dHVwbGUoYmFyLCA0KX07CiAgIFZlcmlmeUdlbmVyYXRvcihnZW4sIGV4cGVjdGVkX3ZhbHVlcyk7
CiB9CiAKIC8vIFRlc3RzIHRoYXQgQ29tYmluZSgpIHdpdGggdGhyZWUgcGFyYW1ldGVycyBnZW5l
cmF0ZXMgdGhlIGV4cGVjdGVkIHNlcXVlbmNlLgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdp
dGhUaHJlZVBhcmFtZXRlcnMpIHsKLSAgY29uc3QgUGFyYW1HZW5lcmF0b3I8dHVwbGU8aW50LCBp
bnQsIGludD4gPiBnZW4gPSBDb21iaW5lKFZhbHVlcygwLCAxKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygzLCA0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlcyg1LCA2KSk7Ci0gIHR1cGxlPGludCwgaW50LCBpbnQ+IGV4cGVjdGVkX3ZhbHVl
c1tdID0gewotICAgIG1ha2VfdHVwbGUoMCwgMywgNSksIG1ha2VfdHVwbGUoMCwgMywgNiksCi0g
ICAgbWFrZV90dXBsZSgwLCA0LCA1KSwgbWFrZV90dXBsZSgwLCA0LCA2KSwKLSAgICBtYWtlX3R1
cGxlKDEsIDMsIDUpLCBtYWtlX3R1cGxlKDEsIDMsIDYpLAotICAgIG1ha2VfdHVwbGUoMSwgNCwg
NSksIG1ha2VfdHVwbGUoMSwgNCwgNil9OworICBjb25zdCBQYXJhbUdlbmVyYXRvcjxzdGQ6OnR1
cGxlPGludCwgaW50LCBpbnQ+ID4gZ2VuID0KKyAgICAgIENvbWJpbmUoVmFsdWVzKDAsIDEpLCBW
YWx1ZXMoMywgNCksIFZhbHVlcyg1LCA2KSk7CisgIHN0ZDo6dHVwbGU8aW50LCBpbnQsIGludD4g
ZXhwZWN0ZWRfdmFsdWVzW10gPSB7CisgICAgICBzdGQ6Om1ha2VfdHVwbGUoMCwgMywgNSksIHN0
ZDo6bWFrZV90dXBsZSgwLCAzLCA2KSwKKyAgICAgIHN0ZDo6bWFrZV90dXBsZSgwLCA0LCA1KSwg
c3RkOjptYWtlX3R1cGxlKDAsIDQsIDYpLAorICAgICAgc3RkOjptYWtlX3R1cGxlKDEsIDMsIDUp
LCBzdGQ6Om1ha2VfdHVwbGUoMSwgMywgNiksCisgICAgICBzdGQ6Om1ha2VfdHVwbGUoMSwgNCwg
NSksIHN0ZDo6bWFrZV90dXBsZSgxLCA0LCA2KX07CiAgIFZlcmlmeUdlbmVyYXRvcihnZW4sIGV4
cGVjdGVkX3ZhbHVlcyk7CiB9CiAKQEAgLTQ4MiwxMCArNDM0LDExIEBAIFRFU1QoQ29tYmluZVRl
c3QsIENvbWJpbmVXaXRoVGhyZWVQYXJhbWV0ZXJzKSB7CiAvLyBzZXF1ZW5jZSBnZW5lcmF0ZXMg
YSBzZXF1ZW5jZSB3aXRoIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZXF1YWwgdG8gdGhlCiAvLyBu
dW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUgc2Vjb25k
IHBhcmFtZXRlci4KIFRFU1QoQ29tYmluZVRlc3QsIENvbWJpbmVXaXRoRmlyc3RQYXJhbWV0ZXJT
aW5nbGVWYWx1ZSkgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBn
ZW4gPSBDb21iaW5lKFZhbHVlcyg0MiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDAsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5l
cmF0b3I8c3RkOjp0dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMo
NDIpLCBWYWx1ZXMoMCwgMSkpOwogCi0gIHR1cGxlPGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNb
XSA9IHttYWtlX3R1cGxlKDQyLCAwKSwgbWFrZV90dXBsZSg0MiwgMSl9OworICBzdGQ6OnR1cGxl
PGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoNDIsIDApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfdHVw
bGUoNDIsIDEpfTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0K
IApAQCAtNDkzLDI2ICs0NDYsMjcgQEAgVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhGaXJz
dFBhcmFtZXRlclNpbmdsZVZhbHVlKSB7CiAvLyBzZXF1ZW5jZSBnZW5lcmF0ZXMgYSBzZXF1ZW5j
ZSB3aXRoIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZXF1YWwgdG8gdGhlCiAvLyBudW1iZXIgb2Yg
ZWxlbWVudHMgaW4gdGhlIHNlcXVlbmNlIGdlbmVyYXRlZCBieSB0aGUgZmlyc3QgcGFyYW1ldGVy
LgogVEVTVChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJTaW5nbGVWYWx1
ZSkgewotICBjb25zdCBQYXJhbUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBnZW4gPSBDb21i
aW5lKFZhbHVlcygwLCAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3Rk
Ojp0dXBsZTxpbnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFZh
bHVlcyg0MikpOwogCi0gIHR1cGxlPGludCwgaW50PiBleHBlY3RlZF92YWx1ZXNbXSA9IHttYWtl
X3R1cGxlKDAsIDQyKSwgbWFrZV90dXBsZSgxLCA0Mil9OworICBzdGQ6OnR1cGxlPGludCwgaW50
PiBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoMCwgNDIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfdHVwbGUoMSwgNDIp
fTsKICAgVmVyaWZ5R2VuZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAogLy8gVGVz
dHMgdGhhdCB3aGVuIHRoZSBmaXJzdCBwYXJhbWV0ZXIgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVu
Y2UsCiAvLyBDb21iaW5lKCkgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2UsIHRvby4KIFRFU1Qo
Q29tYmluZVRlc3QsIENvbWJpbmVXaXRoRmlyc3RQYXJhbWV0ZXJFbXB0eVJhbmdlKSB7Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGludCwgaW50PiA+IGdlbiA9IENvbWJpbmUoUmFuZ2Uo
MCwgMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVzKDAsIDEpKTsKKyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8c3RkOjp0dXBsZTxp
bnQsIGludD4gPiBnZW4gPQorICAgICAgQ29tYmluZShSYW5nZSgwLCAwKSwgVmFsdWVzKDAsIDEp
KTsKICAgVmVyaWZ5R2VuZXJhdG9ySXNFbXB0eShnZW4pOwogfQogCiAvLyBUZXN0cyB0aGF0IHdo
ZW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2UsCiAvLyBD
b21iaW5lKCkgcHJvZHVjZXMgYW4gZW1wdHkgc2VxdWVuY2UsIHRvby4KIFRFU1QoQ29tYmluZVRl
c3QsIENvbWJpbmVXaXRoU2Vjb25kUGFyYW1ldGVyRW1wdHlSYW5nZSkgewotICBjb25zdCBQYXJh
bUdlbmVyYXRvcjx0dXBsZTxpbnQsIGludD4gPiBnZW4gPSBDb21iaW5lKFZhbHVlcygwLCAxKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
YW5nZSgxLCAxKSk7CisgIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHN0ZDo6dHVwbGU8aW50LCBpbnQ+
ID4gZ2VuID0KKyAgICAgIENvbWJpbmUoVmFsdWVzKDAsIDEpLCBSYW5nZSgxLCAxKSk7CiAgIFZl
cmlmeUdlbmVyYXRvcklzRW1wdHkoZ2VuKTsKIH0KIApAQCAtNTIxLDQ0ICs0NzUsNDEgQEAgVEVT
VChDb21iaW5lVGVzdCwgQ29tYmluZVdpdGhTZWNvbmRQYXJhbWV0ZXJFbXB0eVJhbmdlKSB7CiBU
RVNUKENvbWJpbmVUZXN0LCBDb21iaW5lV2l0aE1heE51bWJlck9mUGFyYW1ldGVycykgewogICBj
b25zdCBjaGFyKiBmb28gPSAiZm9vIjsKICAgY29uc3QgY2hhciogYmFyID0gImJhciI7Ci0gIGNv
bnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgaW50PiA+
IGdlbiA9IENvbWJpbmUoVmFsdWVzKGZvbywgYmFyKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoMSksIFZhbHVlcygyKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1
ZXMoMyksIFZhbHVlcyg0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoNSksIFZhbHVlcyg2KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNyksIFZhbHVlcyg4
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWYWx1ZXMoOSkpOwotCi0gIHR1cGxlPGNvbnN0IGNoYXIqLCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQsIGludCwgaW50PgotICAgICAgZXhwZWN0ZWRfdmFsdWVzW10gPSB7bWFr
ZV90dXBsZShmb28sIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWFrZV90dXBsZShiYXIsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpfTsK
KyAgY29uc3QgUGFyYW1HZW5lcmF0b3I8CisgICAgICBzdGQ6OnR1cGxlPGNvbnN0IGNoYXIqLCBp
bnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50PiA+CisgICAgICBnZW4g
PQorICAgICAgICAgIENvbWJpbmUoVmFsdWVzKGZvbywgYmFyKSwgVmFsdWVzKDEpLCBWYWx1ZXMo
MiksIFZhbHVlcygzKSwgVmFsdWVzKDQpLAorICAgICAgICAgICAgICAgICAgVmFsdWVzKDUpLCBW
YWx1ZXMoNiksIFZhbHVlcyg3KSwgVmFsdWVzKDgpLCBWYWx1ZXMoOSkpOworCisgIHN0ZDo6dHVw
bGU8Y29uc3QgY2hhciosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBp
bnQ+CisgICAgICBleHBlY3RlZF92YWx1ZXNbXSA9IHtzdGQ6Om1ha2VfdHVwbGUoZm9vLCAxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6
bWFrZV90dXBsZShiYXIsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpfTsKICAgVmVyaWZ5R2Vu
ZXJhdG9yKGdlbiwgZXhwZWN0ZWRfdmFsdWVzKTsKIH0KIAotI2lmIEdURVNUX0xBTkdfQ1hYMTEK
LQogY2xhc3MgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZyB7CiAgcHVibGljOgogICBO
b25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSA6IHN0
cl8ocykge30KKyAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZygpID0gZGVsZXRlOwor
ICBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nKGNvbnN0IE5vbkRlZmF1bHRDb25zdHJ1
Y3RBc3NpZ25TdHJpbmcmKSA9CisgICAgICBkZWZhdWx0OworICBOb25EZWZhdWx0Q29uc3RydWN0
QXNzaWduU3RyaW5nJiBvcGVyYXRvcj0oCisgICAgICBjb25zdCBOb25EZWZhdWx0Q29uc3RydWN0
QXNzaWduU3RyaW5nJikgPSBkZWxldGU7CisgIH5Ob25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3Ry
aW5nKCkgPSBkZWZhdWx0OwogCiAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIoKSBjb25zdCB7IHJl
dHVybiBzdHJfOyB9CiAKICBwcml2YXRlOgogICBzdGQ6OnN0cmluZyBzdHJfOwotCi0gIC8vIE5v
dCBkZWZhdWx0IGNvbnN0cnVjdGlibGUKLSAgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmlu
ZygpOwotICAvLyBOb3QgYXNzaWduYWJsZQotICB2b2lkIG9wZXJhdG9yPShjb25zdCBOb25EZWZh
dWx0Q29uc3RydWN0QXNzaWduU3RyaW5nJik7CiB9OwogCiBURVNUKENvbWJpbmVUZXN0LCBOb25E
ZWZhdWx0Q29uc3RydWN0QXNzaWduKSB7Ci0gIGNvbnN0IFBhcmFtR2VuZXJhdG9yPHR1cGxlPGlu
dCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZz4gPiBnZW4gPQorICBjb25zdCBQYXJh
bUdlbmVyYXRvcjxzdGQ6OnR1cGxlPGludCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmlu
Zz4gPiBnZW4gPQogICAgICAgQ29tYmluZShWYWx1ZXMoMCwgMSksIFZhbHVlcyhOb25EZWZhdWx0
Q29uc3RydWN0QXNzaWduU3RyaW5nKCJBIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ25TdHJpbmcoIkIiKSkpOwogCi0gIFBhcmFt
R2VuZXJhdG9yPHR1cGxlPGludCwgTm9uRGVmYXVsdENvbnN0cnVjdEFzc2lnblN0cmluZz4gPjo6
aXRlcmF0b3IgaXQgPQotICAgICAgZ2VuLmJlZ2luKCk7CisgIFBhcmFtR2VuZXJhdG9yPHN0ZDo6
dHVwbGU8aW50LCBOb25EZWZhdWx0Q29uc3RydWN0QXNzaWduU3RyaW5nPiA+OjppdGVyYXRvcgor
ICAgICAgaXQgPSBnZW4uYmVnaW4oKTsKIAogICBFWFBFQ1RfRVEoMCwgc3RkOjpnZXQ8MD4oKml0
KSk7CiAgIEVYUEVDVF9FUSgiQSIsIHN0ZDo6Z2V0PDE+KCppdCkuc3RyKCkpOwpAQCAtNTc5LDgg
KzUzMCw2IEBAIFRFU1QoQ29tYmluZVRlc3QsIE5vbkRlZmF1bHRDb25zdHJ1Y3RBc3NpZ24pIHsK
ICAgRVhQRUNUX1RSVUUoaXQgPT0gZ2VuLmVuZCgpKTsKIH0KIAotI2VuZGlmICAgLy8gR1RFU1Rf
TEFOR19DWFgxMQotIyBlbmRpZiAgLy8gR1RFU1RfSEFTX0NPTUJJTkUKIAogLy8gVGVzdHMgdGhh
dCBhbiBnZW5lcmF0b3IgcHJvZHVjZXMgY29ycmVjdCBzZXF1ZW5jZSBhZnRlciBiZWluZwogLy8g
YXNzaWduZWQgZnJvbSBhbm90aGVyIGdlbmVyYXRvci4KQEAgLTU5NSwxMiArNTQ0LDEyIEBAIFRF
U1QoUGFyYW1HZW5lcmF0b3JUZXN0LCBBc3NpZ25tZW50V29ya3MpIHsKIAogLy8gVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIHRlc3RzIGFyZSBleHBhbmRlZCBhbmQgcnVuIGFzIHNwZWNpZmll
ZDoKIC8vIG9uZSB0ZXN0IHBlciBlbGVtZW50IGZyb20gdGhlIHNlcXVlbmNlIHByb2R1Y2VkIGJ5
IHRoZSBnZW5lcmF0b3IKLS8vIHNwZWNpZmllZCBpbiBJTlNUQU5USUFURV9URVNUX0NBU0VfUC4g
SXQgYWxzbyB2ZXJpZmllcyB0aGF0IHRoZSB0ZXN0J3MKKy8vIHNwZWNpZmllZCBpbiBJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AuIEl0IGFsc28gdmVyaWZpZXMgdGhhdCB0aGUgdGVzdCdzCiAvLyBm
aXh0dXJlIGNvbnN0cnVjdG9yLCBTZXRVcCgpLCBhbmQgVGVhckRvd24oKSBoYXZlIHJ1biBhbmQg
aGF2ZSBiZWVuCiAvLyBzdXBwbGllZCB3aXRoIHRoZSBjb3JyZWN0IHBhcmFtZXRlcnMuCiAKIC8v
IFRoZSB1c2Ugb2YgZW52aXJvbm1lbnQgb2JqZWN0IGFsbG93cyBkZXRlY3Rpb24gb2YgdGhlIGNh
c2Ugd2hlcmUgbm8gdGVzdAotLy8gY2FzZSBmdW5jdGlvbmFsaXR5IGlzIHJ1biBhdCBhbGwuIElu
IHRoaXMgY2FzZSBUZXN0Q2FzZVRlYXJEb3duIHdpbGwgbm90CisvLyBjYXNlIGZ1bmN0aW9uYWxp
dHkgaXMgcnVuIGF0IGFsbC4gSW4gdGhpcyBjYXNlIFRlYXJEb3duVGVzdFN1aXRlIHdpbGwgbm90
CiAvLyBiZSBhYmxlIHRvIGRldGVjdCBtaXNzaW5nIHRlc3RzLCBuYXR1cmFsbHkuCiB0ZW1wbGF0
ZSA8aW50IGtFeHBlY3RlZENhbGxzPgogY2xhc3MgVGVzdEdlbmVyYXRpb25FbnZpcm9ubWVudCA6
IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKQEAgLTYxNSw3ICs1NjQsNyBAQCBjbGFz
cyBUZXN0R2VuZXJhdGlvbkVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1l
bnQgewogICB2b2lkIFRlYXJEb3duRXhlY3V0ZWQoKSB7IHRlYXJfZG93bl9jb3VudF8rKzsgfQog
ICB2b2lkIFRlc3RCb2R5RXhlY3V0ZWQoKSB7IHRlc3RfYm9keV9jb3VudF8rKzsgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICAvLyBJZiBhbGwgTXVsdGlwbGVUZXN0R2VuZXJhdGlvblRlc3QgdGVzdHMgaGF2ZSBiZWVuIGRl
LXNlbGVjdGVkCiAgICAgLy8gYnkgdGhlIGZpbHRlciBmbGFnLCB0aGUgZm9sbG93aW5nIGNoZWNr
cyBtYWtlIG5vIHNlbnNlLgogICAgIGJvb2wgcGVyZm9ybV9jaGVjayA9IGZhbHNlOwpAQCAtNjcy
LDE2ICs2MjEsMTYgQEAgY2xhc3MgVGVzdEdlbmVyYXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRo
UGFyYW08aW50PiB7CiAgICAgRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPkZpeHR1cmVDb25zdHJ1
Y3RvckV4ZWN1dGVkKCk7CiAgICAgY3VycmVudF9wYXJhbWV0ZXJfID0gR2V0UGFyYW0oKTsKICAg
fQotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAg
ICAgRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPlNldFVwRXhlY3V0ZWQoKTsKICAgICBFWFBFQ1Rf
RVEoY3VycmVudF9wYXJhbWV0ZXJfLCBHZXRQYXJhbSgpKTsKICAgfQotICB2aXJ0dWFsIHZvaWQg
VGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAgRW52aXJvbm1l
bnQ6Okluc3RhbmNlKCktPlRlYXJEb3duRXhlY3V0ZWQoKTsKICAgICBFWFBFQ1RfRVEoY3VycmVu
dF9wYXJhbWV0ZXJfLCBHZXRQYXJhbSgpKTsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFNldFVwVGVz
dENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIGJvb2wgYWxs
X3Rlc3RzX2luX3Rlc3RfY2FzZV9zZWxlY3RlZCA9IHRydWU7CiAKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IFBBUkFNRVRFUl9DT1VOVDsgKytpKSB7CkBAIC03MDIsNyArNjUxLDcgQEAgY2xhc3Mg
VGVzdEdlbmVyYXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7CiAgICAgY29s
bGVjdGVkX3BhcmFtZXRlcnNfLmNsZWFyKCk7CiAgIH0KIAotICBzdGF0aWMgdm9pZCBUZWFyRG93
blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKICAgICB2
ZWN0b3I8aW50PiBleHBlY3RlZF92YWx1ZXModGVzdF9nZW5lcmF0aW9uX3BhcmFtcywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9nZW5lcmF0aW9uX3BhcmFtcyArIFBBUkFN
RVRFUl9DT1VOVCk7CiAgICAgLy8gVGVzdCBleGVjdXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRl
ZWQgYnkgR29vZ2xlIFRlc3QsCkBAIC03MjgsMTcgKzY3NywxNyBAQCBURVNUX1AoVGVzdEdlbmVy
YXRpb25UZXN0LCBUZXN0c0V4cGFuZGVkQW5kUnVuKSB7CiAgIEVYUEVDVF9FUShjdXJyZW50X3Bh
cmFtZXRlcl8sIEdldFBhcmFtKCkpOwogICBjb2xsZWN0ZWRfcGFyYW1ldGVyc18ucHVzaF9iYWNr
KEdldFBhcmFtKCkpOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoVGVzdEV4cGFuc2lvbk1v
ZHVsZSwgVGVzdEdlbmVyYXRpb25UZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVz
SW4odGVzdF9nZW5lcmF0aW9uX3BhcmFtcykpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFRl
c3RFeHBhbnNpb25Nb2R1bGUsIFRlc3RHZW5lcmF0aW9uVGVzdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBWYWx1ZXNJbih0ZXN0X2dlbmVyYXRpb25fcGFyYW1zKSk7CiAKIC8vIFRoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0IHRoZSBlbGVtZW50IHNlcXVlbmNlICh0aGlyZCBwYXJhbWV0ZXIgb2YK
LS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKSBpcyBldmFsdWF0ZWQgaW4gSW5pdEdvb2dsZVRl
c3QoKSBhbmQgbmVpdGhlciBhdAotLy8gdGhlIGNhbGwgc2l0ZSBvZiBJTlNUQU5USUFURV9URVNU
X0NBU0VfUCBub3IgaW4gUlVOX0FMTF9URVNUUygpLiAgRm9yCisvLyBJTlNUQU5USUFURV9URVNU
X1NVSVRFX1ApIGlzIGV2YWx1YXRlZCBpbiBJbml0R29vZ2xlVGVzdCgpIGFuZCBuZWl0aGVyIGF0
CisvLyB0aGUgY2FsbCBzaXRlIG9mIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCBub3IgaW4gUlVO
X0FMTF9URVNUUygpLiAgRm9yCiAvLyB0aGF0LCB3ZSBkZWNsYXJlIHBhcmFtX3ZhbHVlXyB0byBi
ZSBhIHN0YXRpYyBtZW1iZXIgb2YKIC8vIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0IGFuZCBpbml0
aWFsaXplIGl0IHRvIDAuICBXZSBzZXQgaXQgdG8gMSBpbgogLy8gbWFpbigpLCBqdXN0IGJlZm9y
ZSBpbnZvY2F0aW9uIG9mIEluaXRHb29nbGVUZXN0KCkuICBBZnRlciBjYWxsaW5nCiAvLyBJbml0
R29vZ2xlVGVzdCgpLCB3ZSBzZXQgdGhlIHZhbHVlIHRvIDIuICBJZiB0aGUgc2VxdWVuY2UgaXMg
ZXZhbHVhdGVkCi0vLyBiZWZvcmUgb3IgYWZ0ZXIgSW5pdEdvb2dsZVRlc3QsIElOU1RBTlRJQVRF
X1RFU1RfQ0FTRV9QIHdpbGwgY3JlYXRlIGEKKy8vIGJlZm9yZSBvciBhZnRlciBJbml0R29vZ2xl
VGVzdCwgSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QIHdpbGwgY3JlYXRlIGEKIC8vIHRlc3Qgd2l0
aCBwYXJhbWV0ZXIgb3RoZXIgdGhhbiAxLCBhbmQgdGhlIHRlc3QgYm9keSB3aWxsIGZhaWwgdGhl
CiAvLyBhc3NlcnRpb24uCiBjbGFzcyBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCA6IHB1YmxpYyBU
ZXN0V2l0aFBhcmFtPGludD4gewpAQCAtNzU0LDkgKzcwMyw4IEBAIGludCBHZW5lcmF0b3JFdmFs
dWF0aW9uVGVzdDo6cGFyYW1fdmFsdWVfID0gMDsKIFRFU1RfUChHZW5lcmF0b3JFdmFsdWF0aW9u
VGVzdCwgR2VuZXJhdG9yc0V2YWx1YXRlZEluTWFpbikgewogICBFWFBFQ1RfRVEoMSwgR2V0UGFy
YW0oKSk7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChHZW5FdmFsTW9kdWxlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXMoR2VuZXJhdG9yRXZhbHVhdGlvblRlc3Q6OnBhcmFtX3ZhbHVlKCkp
KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChHZW5FdmFsTW9kdWxlLCBHZW5lcmF0b3JFdmFs
dWF0aW9uVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoR2VuZXJhdG9yRXZh
bHVhdGlvblRlc3Q6OnBhcmFtX3ZhbHVlKCkpKTsKIAogLy8gVGVzdHMgdGhhdCBnZW5lcmF0b3Jz
IGRlZmluZWQgaW4gYSBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdCBhcmUKIC8vIGZ1bmN0aW9u
YWwuIEdlbmVyYXRvciBleHRlcm5fZ2VuIGlzIGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90
ZXN0Mi5jYy4KQEAgLTc2Nyw5ICs3MTUsOCBAQCBURVNUX1AoRXh0ZXJuYWxHZW5lcmF0b3JUZXN0
LCBFeHRlcm5hbEdlbmVyYXRvcikgewogICAvLyB3aGljaCB3ZSB2ZXJpZnkgaGVyZS4KICAgRVhQ
RUNUX0VRKEdldFBhcmFtKCksIDMzKTsKIH0KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEV4dGVy
bmFsR2VuZXJhdG9yTW9kdWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxHZW5l
cmF0b3JUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuX2dlbik7CitJTlNUQU5U
SUFURV9URVNUX1NVSVRFX1AoRXh0ZXJuYWxHZW5lcmF0b3JNb2R1bGUsIEV4dGVybmFsR2VuZXJh
dG9yVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5fZ2VuKTsKIAogLy8gVGVz
dHMgdGhhdCBhIHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBkZWZpbmVkIGluIG9uZSB0
cmFuc2xhdGlvbgogLy8gdW5pdCBhbmQgaW5zdGFudGlhdGVkIGluIGFub3RoZXIuIFRoaXMgdGVz
dCB3aWxsIGJlIGluc3RhbnRpYXRlZCBpbgpAQCAtNzg0LDIwICs3MzEsMTkgQEAgVEVTVF9QKEV4
dGVybmFsSW5zdGFudGlhdGlvblRlc3QsIElzTXVsdGlwbGVPZjMzKSB7CiBjbGFzcyBNdWx0aXBs
ZUluc3RhbnRpYXRpb25UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKIFRFU1Rf
UChNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBBbGxvd3NNdWx0aXBsZUluc3RhbmNlcykgewog
fQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2UxLCBNdWx0aXBsZUluc3RhbnRpYXRp
b25UZXN0LCBWYWx1ZXMoMSwgMikpOwotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2Uy
LCBNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBSYW5nZSgzLCA1KSk7CitJTlNUQU5USUFURV9U
RVNUX1NVSVRFX1AoU2VxdWVuY2UxLCBNdWx0aXBsZUluc3RhbnRpYXRpb25UZXN0LCBWYWx1ZXMo
MSwgMikpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlMiwgTXVsdGlwbGVJbnN0
YW50aWF0aW9uVGVzdCwgUmFuZ2UoMywgNSkpOwogCiAvLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVy
aXplZCB0ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAogLy8gaW4gbXVsdGlwbGUgdHJhbnNs
YXRpb24gdW5pdHMuIFRoaXMgdGVzdCB3aWxsIGJlIGluc3RhbnRpYXRlZAogLy8gaGVyZSBhbmQg
aW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0Mi5jYy4KIC8vIEluc3RhbnRpYXRpb25Jbk11bHRpcGxl
VHJhbnNsYXRpb25Vbml0c1Rlc3QgZml4dHVyZSBjbGFzcwogLy8gaXMgZGVmaW5lZCBpbiBndGVz
dC1wYXJhbS10ZXN0X3Rlc3QuaC4KLVRFU1RfUChJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRyYW5z
bGFpb25Vbml0c1Rlc3QsIElzTXVsdGlwbGVPZjQyKSB7CitURVNUX1AoSW5zdGFudGlhdGlvbklu
TXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwgSXNNdWx0aXBsZU9mNDIpIHsKICAgRVhQRUNU
X0VRKDAsIEdldFBhcmFtKCkgJSA0Mik7CiB9Ci1JTlNUQU5USUFURV9URVNUX0NBU0VfUChTZXF1
ZW5jZTEsCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW50aWF0aW9uSW5NdWx0aXBsZVRy
YW5zbGFpb25Vbml0c1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIsIDQy
KjIpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXF1ZW5jZTEsIEluc3RhbnRpYXRpb25J
bk11bHRpcGxlVHJhbnNsYXRpb25Vbml0c1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
VmFsdWVzKDQyLCA0MiAqIDIpKTsKIAogLy8gVGVzdHMgdGhhdCBlYWNoIGl0ZXJhdGlvbiBvZiBw
YXJhbWV0ZXJpemVkIHRlc3QgcnVucyBpbiBhIHNlcGFyYXRlIHRlc3QKIC8vIG9iamVjdC4KQEAg
LTgwNSw3ICs3NTEsNyBAQCBjbGFzcyBTZXBhcmF0ZUluc3RhbmNlVGVzdCA6IHB1YmxpYyBUZXN0
V2l0aFBhcmFtPGludD4gewogIHB1YmxpYzoKICAgU2VwYXJhdGVJbnN0YW5jZVRlc3QoKSA6IGNv
dW50XygwKSB7fQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRp
YyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIEVYUEVDVF9HRShnbG9iYWxfY291bnRf
LCAyKQogICAgICAgICA8PCAiSWYgc29tZSAoYnV0IG5vdCBhbGwpIFNlcGFyYXRlSW5zdGFuY2VU
ZXN0IHRlc3RzIGhhdmUgYmVlbiAiCiAgICAgICAgIDw8ICJmaWx0ZXJlZCBvdXQgdGhpcyB0ZXN0
IHdpbGwgZmFpbC4gTWFrZSBzdXJlIHRoYXQgYWxsICIKQEAgLTgyMywyMCArNzY5LDIwIEBAIFRF
U1RfUChTZXBhcmF0ZUluc3RhbmNlVGVzdCwgVGVzdHNSdW5JblNlcGFyYXRlSW5zdGFuY2VzKSB7
CiAgIEVYUEVDVF9FUSgwLCBjb3VudF8rKyk7CiAgIGdsb2JhbF9jb3VudF8rKzsKIH0KLUlOU1RB
TlRJQVRFX1RFU1RfQ0FTRV9QKEZvdXJFbGVtU2VxdWVuY2UsIFNlcGFyYXRlSW5zdGFuY2VUZXN0
LCBSYW5nZSgxLCA0KSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoRm91ckVsZW1TZXF1ZW5j
ZSwgU2VwYXJhdGVJbnN0YW5jZVRlc3QsIFJhbmdlKDEsIDQpKTsKIAogLy8gVGVzdHMgdGhhdCBh
bGwgaW5zdGFudGlhdGlvbnMgb2YgYSB0ZXN0IGhhdmUgbmFtZWQgYXBwcm9wcmlhdGVseS4gVGVz
dAotLy8gZGVmaW5lZCB3aXRoIFRFU1RfUChUZXN0Q2FzZU5hbWUsIFRlc3ROYW1lKSBhbmQgaW5z
dGFudGlhdGVkIHdpdGgKLS8vIElOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNlcXVlbmNlTmFtZSwg
VGVzdENhc2VOYW1lLCBnZW5lcmF0b3IpIG11c3QgYmUgbmFtZWQKLS8vIFNlcXVlbmNlTmFtZS9U
ZXN0Q2FzZU5hbWUuVGVzdE5hbWUvaSwgd2hlcmUgaSBpcyB0aGUgMC1iYXNlZCBpbmRleCBvZiB0
aGUKLS8vIHNlcXVlbmNlIGVsZW1lbnQgdXNlZCB0byBpbnN0YW50aWF0ZSB0aGUgdGVzdC4KKy8v
IGRlZmluZWQgd2l0aCBURVNUX1AoVGVzdFN1aXRlTmFtZSwgVGVzdE5hbWUpIGFuZCBpbnN0YW50
aWF0ZWQgd2l0aAorLy8gSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFNlcXVlbmNlTmFtZSwgVGVz
dFN1aXRlTmFtZSwgZ2VuZXJhdG9yKSBtdXN0IGJlCisvLyBuYW1lZCBTZXF1ZW5jZU5hbWUvVGVz
dFN1aXRlTmFtZS5UZXN0TmFtZS9pLCB3aGVyZSBpIGlzIHRoZSAwLWJhc2VkIGluZGV4IG9mCisv
LyB0aGUgc2VxdWVuY2UgZWxlbWVudCB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSB0ZXN0LgogY2xh
c3MgTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPGludD4ge307CiAKIFRFU1RfUChO
YW1pbmdUZXN0LCBUZXN0c1JlcG9ydENvcnJlY3ROYW1lc0FuZFBhcmFtZXRlcnMpIHsKICAgY29u
c3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KICAgICAgOjp0ZXN0aW5n
OjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKIAotICBFWFBF
Q1RfU1RSRVEoIlplcm9Ub0ZpdmVTZXF1ZW5jZS9OYW1pbmdUZXN0IiwgdGVzdF9pbmZvLT50ZXN0
X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJaZXJvVG9GaXZlU2VxdWVuY2UvTmFtaW5n
VGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogCiAgIE1lc3NhZ2UgaW5kZXhf
c3RyZWFtOwogICBpbmRleF9zdHJlYW0gPDwgIlRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5kUGFy
YW1ldGVycy8iIDw8IEdldFBhcmFtKCk7CkBAIC04NDUsNyArNzkxLDcgQEAgVEVTVF9QKE5hbWlu
Z1Rlc3QsIFRlc3RzUmVwb3J0Q29ycmVjdE5hbWVzQW5kUGFyYW1ldGVycykgewogICBFWFBFQ1Rf
RVEoOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKEdldFBhcmFtKCkpLCB0ZXN0X2luZm8tPnZhbHVl
X3BhcmFtKCkpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChaZXJvVG9GaXZlU2VxdWVu
Y2UsIE5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCha
ZXJvVG9GaXZlU2VxdWVuY2UsIE5hbWluZ1Rlc3QsIFJhbmdlKDAsIDUpKTsKIAogLy8gVGVzdHMg
dGhhdCBtYWNyb3MgaW4gdGVzdCBuYW1lcyBhcmUgZXhwYW5kZWQgY29ycmVjdGx5LgogY2xhc3Mg
TWFjcm9OYW1pbmdUZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7fTsKQEAgLTg1Nywx
MSArODAzLDExIEBAIFRFU1RfUChQUkVGSVhfV0lUSF9NQUNSTyhOYW1pbmdUZXN0KSwgUFJFRklY
X1dJVEhfRk9PKFNvbWVUZXN0TmFtZSkpIHsKICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyog
Y29uc3QgdGVzdF9pbmZvID0KICAgICAgOjp0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2Uo
KS0+Y3VycmVudF90ZXN0X2luZm8oKTsKIAotICBFWFBFQ1RfU1RSRVEoIkZvcnR5VHdvL01hY3Jv
TmFtaW5nVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7Ci0gIEVYUEVDVF9TVFJF
USgiRm9vU29tZVRlc3ROYW1lIiwgdGVzdF9pbmZvLT5uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEo
IkZvcnR5VHdvL01hY3JvTmFtaW5nVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkp
OworICBFWFBFQ1RfU1RSRVEoIkZvb1NvbWVUZXN0TmFtZS8wIiwgdGVzdF9pbmZvLT5uYW1lKCkp
OwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChGb3J0eVR3bywgTWFjcm9OYW1pbmdUZXN0
LCBWYWx1ZXMoNDIpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChGb3J0eVR3bywgTWFjcm9O
YW1pbmdUZXN0LCBWYWx1ZXMoNDIpKTsKIAogLy8gVGVzdHMgdGhlIHNhbWUgdGhpbmcgZm9yIG5v
bi1wYXJhbWV0cml6ZWQgdGVzdHMuCiBjbGFzcyBNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0cml6
ZWQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OwpAQCAtODcxLDEwICs4MTcsNDAgQEAgVEVT
VF9GKFBSRUZJWF9XSVRIX01BQ1JPKE5hbWluZ1Rlc3ROb25QYXJhbWV0cml6ZWQpLAogICBjb25z
dCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQogICAgICA6OnRlc3Rpbmc6
OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwogCi0gIEVYUEVD
VF9TVFJFUSgiTWFjcm9OYW1pbmdUZXN0Tm9uUGFyYW1ldHJpemVkIiwgdGVzdF9pbmZvLT50ZXN0
X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJNYWNyb05hbWluZ1Rlc3ROb25QYXJhbWV0
cml6ZWQiLCB0ZXN0X2luZm8tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1NUUkVRKCJG
b29Tb21lVGVzdE5hbWUiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKK1RFU1QoTWFjcm9OYW1l
aW5nLCBMb29rdXBOYW1lcykgeworICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4ga25vd19zdWl0ZV9u
YW1lcywga25vd190ZXN0X25hbWVzOworCisgIGF1dG8gaW5zID0gdGVzdGluZzo6VW5pdFRlc3Q6
OkdldEluc3RhbmNlKCk7CisgIGludCB0cyA9IDA7CisgIHdoaWxlIChjb25zdCB0ZXN0aW5nOjpU
ZXN0U3VpdGUqIHN1aXRlID0gaW5zLT5HZXRUZXN0U3VpdGUodHMrKykpIHsKKyAgICBrbm93X3N1
aXRlX25hbWVzLmluc2VydChzdWl0ZS0+bmFtZSgpKTsKKworICAgIGludCB0aSA9IDA7CisgICAg
d2hpbGUgKGNvbnN0IHRlc3Rpbmc6OlRlc3RJbmZvKiBpbmZvID0gc3VpdGUtPkdldFRlc3RJbmZv
KHRpKyspKSB7CisgICAgICBrbm93X3Rlc3RfbmFtZXMuaW5zZXJ0KHN0ZDo6c3RyaW5nKHN1aXRl
LT5uYW1lKCkpICsgIi4iICsgaW5mby0+bmFtZSgpKTsKKyAgICB9CisgIH0KKworICAvLyBDaGVj
ayB0aGF0IHRoZSBleHBlY3RlZCBmb3JtIG9mIHRoZSB0ZXN0IHN1aXQgbmFtZSBhY3R1YWx5IGV4
aXN0cy4KKyAgRVhQRUNUX05FKCAgLy8KKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZmluZCgiRm9y
dHlUd28vTWFjcm9OYW1pbmdUZXN0IiksCisgICAgICBrbm93X3N1aXRlX25hbWVzLmVuZCgpKTsK
KyAgRVhQRUNUX05FKAorICAgICAga25vd19zdWl0ZV9uYW1lcy5maW5kKCJNYWNyb05hbWluZ1Rl
c3ROb25QYXJhbWV0cml6ZWQiKSwKKyAgICAgIGtub3dfc3VpdGVfbmFtZXMuZW5kKCkpOworICAv
LyBDaGVjayB0aGF0IHRoZSBleHBlY3RlZCBmb3JtIG9mIHRoZSB0ZXN0IG5hbWUgYWN0dWFseSBl
eGlzdHMuCisgIEVYUEVDVF9ORSggIC8vCisgICAgICBrbm93X3Rlc3RfbmFtZXMuZmluZCgiRm9y
dHlUd28vTWFjcm9OYW1pbmdUZXN0LkZvb1NvbWVUZXN0TmFtZS8wIiksCisgICAgICBrbm93X3Rl
c3RfbmFtZXMuZW5kKCkpOworICBFWFBFQ1RfTkUoCisgICAgICBrbm93X3Rlc3RfbmFtZXMuZmlu
ZCgiTWFjcm9OYW1pbmdUZXN0Tm9uUGFyYW1ldHJpemVkLkZvb1NvbWVUZXN0TmFtZSIpLAorICAg
ICAga25vd190ZXN0X25hbWVzLmVuZCgpKTsKK30KKwogLy8gVGVzdHMgdGhhdCB1c2VyIHN1cHBs
aWVkIGN1c3RvbSBwYXJhbWV0ZXIgbmFtZXMgYXJlIHdvcmtpbmcgY29ycmVjdGx5LgogLy8gUnVu
cyB0aGUgdGVzdCB3aXRoIGEgYnVpbHRpbiBoZWxwZXIgbWV0aG9kIHdoaWNoIHVzZXMgUHJpbnRU
b1N0cmluZywKIC8vIGFzIHdlbGwgYXMgYSBjdXN0b20gZnVuY3Rpb24gYW5kIGN1c3RvbSBmdW5j
dG9yIHRvIGVuc3VyZSBhbGwgcG9zc2libGUKQEAgLTg4OCwxNyArODY0LDE0IEBAIHN0cnVjdCBD
dXN0b21QYXJhbU5hbWVGdW5jdG9yIHsKICAgfQogfTsKIAotSU5TVEFOVElBVEVfVEVTVF9DQVNF
X1AoQ3VzdG9tUGFyYW1OYW1lRnVuY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3Rv
bUZ1bmN0b3JOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKHN0ZDo6
c3RyaW5nKCJGdW5jdG9yTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBh
cmFtTmFtZUZ1bmN0b3IoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoQ3VzdG9tUGFyYW1O
YW1lRnVuY3RvciwgQ3VzdG9tRnVuY3Rvck5hbWluZ1Rlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVzKHN0ZDo6c3RyaW5nKCJGdW5jdG9yTmFtZSIpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBDdXN0b21QYXJhbU5hbWVGdW5jdG9yKCkpOwogCi1JTlNUQU5USUFURV9URVNU
X0NBU0VfUChBbGxBbGxvd2VkQ2hhcmFjdGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1
c3RvbUZ1bmN0b3JOYW1pbmdUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKCJh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiMDEyMzQ1Njc4OTBfIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21Q
YXJhbU5hbWVGdW5jdG9yKCkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKEFsbEFsbG93ZWRD
aGFyYWN0ZXJzLCBDdXN0b21GdW5jdG9yTmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZXMoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiwgIjAxMjM0NTY3
ODkwXyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0b3Io
KSk7CiAKIGlubGluZSBzdGQ6OnN0cmluZyBDdXN0b21QYXJhbU5hbWVGdW5jdGlvbigKICAgICBj
b25zdCA6OnRlc3Rpbmc6OlRlc3RQYXJhbUluZm88c3RkOjpzdHJpbmc+JiBpbmYpIHsKQEAgLTkw
OCw0NSArODgxLDQxIEBAIGlubGluZSBzdGQ6OnN0cmluZyBDdXN0b21QYXJhbU5hbWVGdW5jdGlv
bigKIGNsYXNzIEN1c3RvbUZ1bmN0aW9uTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFt
PHN0ZDo6c3RyaW5nPiB7fTsKIFRFU1RfUChDdXN0b21GdW5jdGlvbk5hbWluZ1Rlc3QsIEN1c3Rv
bVRlc3ROYW1lcykge30KIAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoQ3VzdG9tUGFyYW1OYW1l
RnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GdW5jdGlvbk5hbWluZ1Rl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkZ1bmN0aW9u
TmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbVBhcmFtTmFtZUZ1bmN0aW9u
KTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVGdW5jdGlvbiwgQ3Vz
dG9tRnVuY3Rpb25OYW1pbmdUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhz
dGQ6OnN0cmluZygiRnVuY3Rpb25OYW1lIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEN1
c3RvbVBhcmFtTmFtZUZ1bmN0aW9uKTsKIAotI2lmIEdURVNUX0xBTkdfQ1hYMTEKK0lOU1RBTlRJ
QVRFX1RFU1RfU1VJVEVfUChDdXN0b21QYXJhbU5hbWVGdW5jdGlvblAsIEN1c3RvbUZ1bmN0aW9u
TmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmco
IkZ1bmN0aW9uTmFtZVAiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJkN1c3RvbVBhcmFt
TmFtZUZ1bmN0aW9uKTsKIAogLy8gVGVzdCBjdXN0b20gbmFtaW5nIHdpdGggYSBsYW1iZGEKIAog
Y2xhc3MgQ3VzdG9tTGFtYmRhTmFtaW5nVGVzdCA6IHB1YmxpYyBUZXN0V2l0aFBhcmFtPHN0ZDo6
c3RyaW5nPiB7fTsKIFRFU1RfUChDdXN0b21MYW1iZGFOYW1pbmdUZXN0LCBDdXN0b21UZXN0TmFt
ZXMpIHt9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEN1c3RvbVBhcmFtTmFtZUxhbWJkYSwg
Q3VzdG9tTGFtYmRhTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhz
dGQ6OnN0cmluZygiTGFtYmRhTmFtZSIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFtdKGNv
bnN0IDo6dGVzdGluZzo6VGVzdFBhcmFtSW5mbzxzdGQ6OnN0cmluZz4mIGluZikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5mLnBhcmFtOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0KLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQorSU5TVEFOVElBVEVfVEVT
VF9TVUlURV9QKEN1c3RvbVBhcmFtTmFtZUxhbWJkYSwgQ3VzdG9tTGFtYmRhTmFtaW5nVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc3RkOjpzdHJpbmcoIkxhbWJkYU5hbWUi
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgOjp0ZXN0aW5nOjpUZXN0UGFy
YW1JbmZvPHN0ZDo6c3RyaW5nPiYgaW5mKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gaW5mLnBhcmFtOworICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogCiBURVNUKEN1
c3RvbU5hbWluZ1Rlc3QsIENoZWNrTmFtZVJlZ2lzdHJ5KSB7CiAgIDo6dGVzdGluZzo6VW5pdFRl
c3QqIHVuaXRfdGVzdCA9IDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7CiAgIHN0
ZDo6c2V0PHN0ZDo6c3RyaW5nPiB0ZXN0X25hbWVzOwotICBmb3IgKGludCBjYXNlX251bSA9IDA7
Ci0gICAgICAgY2FzZV9udW0gPCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY2FzZV9jb3VudCgpOwot
ICAgICAgICsrY2FzZV9udW0pIHsKLSAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RDYXNlKiB0ZXN0
X2Nhc2UgPSB1bml0X3Rlc3QtPkdldFRlc3RDYXNlKGNhc2VfbnVtKTsKLSAgICBmb3IgKGludCB0
ZXN0X251bSA9IDA7Ci0gICAgICAgICB0ZXN0X251bSA8IHRlc3RfY2FzZS0+dG90YWxfdGVzdF9j
b3VudCgpOworICBmb3IgKGludCBzdWl0ZV9udW0gPSAwOyBzdWl0ZV9udW0gPCB1bml0X3Rlc3Qt
PnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsKKyAgICAgICArK3N1aXRlX251bSkgeworICAgIGNv
bnN0IDo6dGVzdGluZzo6VGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0gdW5pdF90ZXN0LT5HZXRUZXN0
U3VpdGUoc3VpdGVfbnVtKTsKKyAgICBmb3IgKGludCB0ZXN0X251bSA9IDA7IHRlc3RfbnVtIDwg
dGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpOwogICAgICAgICAgKyt0ZXN0X251bSkgewot
ICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogdGVzdF9pbmZvID0gdGVzdF9jYXNlLT5H
ZXRUZXN0SW5mbyh0ZXN0X251bSk7CisgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiB0
ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT5HZXRUZXN0SW5mbyh0ZXN0X251bSk7CiAgICAgICB0ZXN0
X25hbWVzLmluc2VydChzdGQ6OnN0cmluZyh0ZXN0X2luZm8tPm5hbWUoKSkpOwogICAgIH0KICAg
fQogICBFWFBFQ1RfRVEoMXUsIHRlc3RfbmFtZXMuY291bnQoIkN1c3RvbVRlc3ROYW1lcy9GdW5j
dG9yTmFtZSIpKTsKICAgRVhQRUNUX0VRKDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0b21UZXN0
TmFtZXMvRnVuY3Rpb25OYW1lIikpOwotI2lmIEdURVNUX0xBTkdfQ1hYMTEKKyAgRVhQRUNUX0VR
KDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0b21UZXN0TmFtZXMvRnVuY3Rpb25OYW1lUCIpKTsK
ICAgRVhQRUNUX0VRKDF1LCB0ZXN0X25hbWVzLmNvdW50KCJDdXN0b21UZXN0TmFtZXMvTGFtYmRh
TmFtZSIpKTsKLSNlbmRpZiAgLy8gR1RFU1RfTEFOR19DWFgxMQogfQogCiAvLyBUZXN0IGEgbnVt
ZXJpYyBuYW1lIHRvIGVuc3VyZSBQcmludFRvU3RyaW5nUGFyYW1OYW1lIHdvcmtzIGNvcnJlY3Rs
eS4KQEAgLTk2MSwxMCArOTMwLDggQEAgVEVTVF9QKEN1c3RvbUludGVnZXJOYW1pbmdUZXN0LCBU
ZXN0c1JlcG9ydENvcnJlY3ROYW1lcykgewogICBFWFBFQ1RfU1RSRVEodGVzdF9uYW1lX3N0cmVh
bS5HZXRTdHJpbmcoKS5jX3N0cigpLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKLUlOU1RBTlRJ
QVRFX1RFU1RfQ0FTRV9QKFByaW50VG9TdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBD
dXN0b21JbnRlZ2VyTmFtaW5nVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJhbmdlKDAs
IDUpLAotICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nUGFy
YW1OYW1lKCkpOworSU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFByaW50VG9TdHJpbmcsIEN1c3Rv
bUludGVnZXJOYW1pbmdUZXN0LCBSYW5nZSgwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJhbU5hbWUoKSk7CiAKIC8vIFRlc3QgYSBjdXN0
b20gc3RydWN0IHdpdGggUHJpbnRUb1N0cmluZy4KIApAQCAtOTg4LDEwICs5NTUsOSBAQCBURVNU
X1AoQ3VzdG9tU3RydWN0TmFtaW5nVGVzdCwgVGVzdHNSZXBvcnRDb3JyZWN0TmFtZXMpIHsKICAg
RVhQRUNUX1NUUkVRKHRlc3RfbmFtZV9zdHJlYW0uR2V0U3RyaW5nKCkuY19zdHIoKSwgdGVzdF9p
bmZvLT5uYW1lKCkpOwogfQogCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChQcmludFRvU3RyaW5n
LAotICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tU3RydWN0TmFtaW5nVGVzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIFZhbHVlcyhDdXN0b21TdHJ1Y3QoMCksIEN1c3RvbVN0cnVjdCgx
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmdQYXJh
bU5hbWUoKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoUHJpbnRUb1N0cmluZywgQ3VzdG9t
U3RydWN0TmFtaW5nVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoQ3VzdG9t
U3RydWN0KDApLCBDdXN0b21TdHJ1Y3QoMSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIDo6
dGVzdGluZzo6UHJpbnRUb1N0cmluZ1BhcmFtTmFtZSgpKTsKIAogLy8gVGVzdCB0aGF0IHVzaW5n
IGEgc3RhdGVmdWwgcGFyYW1ldGVyIG5hbWluZyBmdW5jdGlvbiB3b3JrcyBhcyBleHBlY3RlZC4K
IApAQCAtMTAyMCwxMCArOTg2LDggQEAgVEVTVF9QKFN0YXRlZnVsTmFtaW5nVGVzdCwgVGVzdHNS
ZXBvcnRDb3JyZWN0TmFtZXMpIHsKICAgRVhQRUNUX1NUUkVRKHRlc3RfbmFtZV9zdHJlYW0uR2V0
U3RyaW5nKCkuY19zdHIoKSwgdGVzdF9pbmZvLT5uYW1lKCkpOwogfQogCi1JTlNUQU5USUFURV9U
RVNUX0NBU0VfUChTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBTdGF0ZWZ1bE5hbWluZ1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBSYW5nZSgwLCA1
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlZnVsTmFtaW5nRnVuY3RvcigpKTsKK0lO
U1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTdGF0ZWZ1bE5hbWluZ0Z1bmN0b3IsIFN0YXRlZnVsTmFt
aW5nVGVzdCwgUmFuZ2UoMCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGVmdWxO
YW1pbmdGdW5jdG9yKCkpOwogCiAvLyBDbGFzcyB0aGF0IGNhbm5vdCBiZSBzdHJlYW1lZCBpbnRv
IGFuIG9zdHJlYW0uICBJdCBuZWVkcyB0byBiZSBjb3B5YWJsZQogLy8gKGFuZCwgaW4gY2FzZSBv
ZiBNU1ZDLCBhbHNvIGFzc2lnbmFibGUpIGluIG9yZGVyIHRvIGJlIGEgdGVzdCBwYXJhbWV0ZXIK
QEAgLTEwMzIsNiArOTk2LDggQEAgSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU3RhdGVmdWxOYW1p
bmdGdW5jdG9yLAogY2xhc3MgVW5zdHJlYW1hYmxlIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IFVu
c3RyZWFtYWJsZShpbnQgdmFsdWUpIDogdmFsdWVfKHZhbHVlKSB7fQorICAvLyAtV3VudXNlZC1w
cml2YXRlLWZpZWxkOiBkdW1teSBhY2Nlc3NvciBmb3IgYHZhbHVlX2AuCisgIGNvbnN0IGludCYg
ZHVtbXlfdmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZV87IH0KIAogIHByaXZhdGU6CiAgIGlu
dCB2YWx1ZV87CkBAIC0xMDQ2LDkgKzEwMTIsOCBAQCBURVNUX1AoQ29tbWVudFRlc3QsIFRlc3Rz
Q29ycmVjdGx5UmVwb3J0VW5zdHJlYW1hYmxlUGFyYW1zKSB7CiAgIEVYUEVDVF9FUSg6OnRlc3Rp
bmc6OlByaW50VG9TdHJpbmcoR2V0UGFyYW0oKSksIHRlc3RfaW5mby0+dmFsdWVfcGFyYW0oKSk7
CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEluc3RhbnRpYXRpb25XaXRoQ29tbWVudHMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50VGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlcyhVbnN0cmVhbWFibGUoMSkpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVf
UChJbnN0YW50aWF0aW9uV2l0aENvbW1lbnRzLCBDb21tZW50VGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZXMoVW5zdHJlYW1hYmxlKDEpKSk7CiAKIC8vIFZlcmlmeSB0aGF0IHdl
IGNhbiBjcmVhdGUgYSBoaWVyYXJjaHkgb2YgdGVzdCBmaXh0dXJlcywgd2hlcmUgdGhlIGJhc2UK
IC8vIGNsYXNzIGZpeHR1cmUgaXMgbm90IHBhcmFtZXRlcml6ZWQgYW5kIHRoZSBkZXJpdmVkIGNs
YXNzIGlzLiBJbiB0aGlzIGNhc2UKQEAgLTEwODgsMTkgKzEwNTMsNjQgQEAgVEVTVF9GKFBhcmFt
ZXRlcml6ZWREZWF0aFRlc3QsIEdldFBhcmFtRGllc0Zyb21UZXN0RikgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuKiB2YWx1ZS1wYXJhbWV0ZXJpemVkIHRlc3QgLioiKTsKIH0KIAot
SU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoUmFuZ2VaZXJvVG9GaXZlLCBQYXJhbWV0ZXJpemVkRGVy
aXZlZFRlc3QsIFJhbmdlKDAsIDUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChSYW5nZVpl
cm9Ub0ZpdmUsIFBhcmFtZXRlcml6ZWREZXJpdmVkVGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBSYW5nZSgwLCA1KSk7CisKKy8vIFRlc3RzIHBhcmFtIGdlbmVyYXRvciB3b3JraW5nIHdp
dGggRW51bXMKK2VudW0gTXlFbnVtcyB7CisgIEVOVU0xID0gMSwKKyAgRU5VTTIgPSAzLAorICBF
TlVNMyA9IDgsCit9OworCitjbGFzcyBNeUVudW1UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RX
aXRoUGFyYW08TXlFbnVtcz4ge307CisKK1RFU1RfUChNeUVudW1UZXN0LCBDaGVja3NQYXJhbU1v
cmVUaGFuWmVybykgeyBFWFBFQ1RfR0UoMTAsIEdldFBhcmFtKCkpOyB9CitJTlNUQU5USUFURV9U
RVNUX1NVSVRFX1AoTXlFbnVtVGVzdHMsIE15RW51bVRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoRU5VTTEsIEVOVU0yLCAwKSk7CisKK25hbWVzcGFjZSB3
b3Jrc19oZXJlIHsKKy8vIE5ldmVyIHVzZWQgbm90IGluc3RhbnRpYXRlZCwgdGhpcyBzaG91bGQg
d29yay4KK2NsYXNzIE5vdFVzZWRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08
aW50PiB7fTsKKworLy8vLy8vLworLy8gTmV2ZXIgdXNlZCBub3QgaW5zdGFudGlhdGVkLCB0aGlz
IHNob3VsZCB3b3JrLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBOb3RVc2VkVHlwZVRl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7fTsKK1RZUEVEX1RFU1RfU1VJVEVfUChOb3RVc2Vk
VHlwZVRlc3QpOworCisvLyBVc2VkIGJ1dCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHdvdWxkIGZh
aWwuIGJ1dC4uLgorY2xhc3MgTm90SW5zdGFudGlhdGVkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0V2l0aFBhcmFtPGludD4ge307CisvLyAuLi4gd2UgbWFyayBpcyBhcyBhbGxvd2VkLgorR1RF
U1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKE5vdEluc3RhbnRpYXRl
ZFRlc3QpOworCitURVNUX1AoTm90SW5zdGFudGlhdGVkVGVzdCwgVXNlZCkgeyB9CisKK3VzaW5n
IE90aGVyTmFtZSA9IE5vdEluc3RhbnRpYXRlZFRlc3Q7CitHVEVTVF9BTExPV19VTklOU1RBTlRJ
QVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoT3RoZXJOYW1lKTsKK1RFU1RfUChPdGhlck5hbWUsIFVz
ZWQpIHsgfQorCisvLyBVc2VkIGJ1dCBub3QgaW5zdGFudGlhdGVkLCB0aGlzIHdvdWxkIGZhaWwu
IGJ1dC4uLgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBOb3RJbnN0YW50aWF0ZWRUeXBl
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworVFlQRURfVEVTVF9TVUlURV9QKE5vdElu
c3RhbnRpYXRlZFR5cGVUZXN0KTsKKy8vIC4uLiB3ZSBtYXJrIGlzIGFzIGFsbG93ZWQuCitHVEVT
VF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTm90SW5zdGFudGlhdGVk
VHlwZVRlc3QpOwogCitUWVBFRF9URVNUX1AoTm90SW5zdGFudGlhdGVkVHlwZVRlc3QsIFVzZWQp
IHsgfQorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKE5vdEluc3RhbnRpYXRlZFR5cGVUZXN0
LCBVc2VkKTsKK30gIC8vIG5hbWVzcGFjZSB3b3Jrc19oZXJlCiAKIGludCBtYWluKGludCBhcmdj
LCBjaGFyICoqYXJndikgewotICAvLyBVc2VkIGluIFRlc3RHZW5lcmF0aW9uVGVzdCB0ZXN0IGNh
c2UuCisgIC8vIFVzZWQgaW4gVGVzdEdlbmVyYXRpb25UZXN0IHRlc3Qgc3VpdGUuCiAgIEFkZEds
b2JhbFRlc3RFbnZpcm9ubWVudChUZXN0R2VuZXJhdGlvblRlc3Q6OkVudmlyb25tZW50OjpJbnN0
YW5jZSgpKTsKLSAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IGNhc2Uu
IFRlc3RzIHRoYXQgdGhlIHVwZGF0ZWQgdmFsdWUKKyAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFs
dWF0aW9uVGVzdCB0ZXN0IHN1aXRlLiBUZXN0cyB0aGF0IHRoZSB1cGRhdGVkIHZhbHVlCiAgIC8v
IHdpbGwgYmUgcGlja2VkIHVwIGZvciBpbnN0YW50aWF0aW5nIHRlc3RzIGluIEdlbmVyYXRvckV2
YWx1YXRpb25UZXN0LgogICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6c2V0X3BhcmFtX3ZhbHVl
KDEpOwogCiAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOwogCi0gIC8v
IFVzZWQgaW4gR2VuZXJhdG9yRXZhbHVhdGlvblRlc3QgdGVzdCBjYXNlLiBUZXN0cyB0aGF0IHZh
bHVlIHVwZGF0ZWQKKyAgLy8gVXNlZCBpbiBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdCB0ZXN0IHN1
aXRlLiBUZXN0cyB0aGF0IHZhbHVlIHVwZGF0ZWQKICAgLy8gaGVyZSB3aWxsIE5PVCBiZSB1c2Vk
IGZvciBpbnN0YW50aWF0aW5nIHRlc3RzIGluCiAgIC8vIEdlbmVyYXRvckV2YWx1YXRpb25UZXN0
LgogICBHZW5lcmF0b3JFdmFsdWF0aW9uVGVzdDo6c2V0X3BhcmFtX3ZhbHVlKDIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRlc3Qt
dGVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBhcmFtLXRl
c3QtdGVzdC5oCmluZGV4IDYzMmE2MWY0OTI2YmE5MjI1MTU5ZGI0Njk4MTBlNDFjYWMwZDIwYzcu
Ljg5MTkzNzUzOGQwMTI2ZTk0Y2QzZDk0N2FkZWMzMWE1NjEzNGFmYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0tdGVzdC10
ZXN0LmgKQEAgLTMyLDggKzMyLDggQEAKIC8vIFRoaXMgaGVhZGVyIGZpbGUgcHJvdmlkZXMgY2xh
c3NlcyBhbmQgZnVuY3Rpb25zIHVzZWQgaW50ZXJuYWxseQogLy8gZm9yIHRlc3RpbmcgR29vZ2xl
IFRlc3QgaXRzZWxmLgogCi0jaWZuZGVmIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9URVNU
X0hfCi0jZGVmaW5lIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9URVNUX0hfCisjaWZuZGVm
IEdPT0dMRVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1RfVEVTVF9IXworI2RlZmluZSBH
T09HTEVURVNUX1RFU1RfR09PR0xFVEVTVF9QQVJBTV9URVNUX1RFU1RfSF8KIAogI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCiAKQEAgLTQ0LDggKzQ0LDggQEAgY2xhc3MgRXh0ZXJuYWxJbnN0YW50
aWF0aW9uVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7CiAKIC8v
IFRlc3QgZml4dHVyZSBmb3IgdGVzdGluZyBpbnN0YW50aWF0aW9uIG9mIGEgdGVzdCBpbiBtdWx0
aXBsZQogLy8gdHJhbnNsYXRpb24gdW5pdHMuCi1jbGFzcyBJbnN0YW50aWF0aW9uSW5NdWx0aXBs
ZVRyYW5zbGFpb25Vbml0c1Rlc3QKK2NsYXNzIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNs
YXRpb25Vbml0c1Rlc3QKICAgICA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50
PiB7CiB9OwogCi0jZW5kaWYgIC8vIEdURVNUX1RFU1RfR1RFU1RfUEFSQU1fVEVTVF9URVNUX0hf
CisjZW5kaWYgIC8vIEdPT0dMRVRFU1RfVEVTVF9HT09HTEVURVNUX1BBUkFNX1RFU1RfVEVTVF9I
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBh
cmFtLXRlc3QyLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtcGFyYW0tdGVzdDItdGVzdC5jYwppbmRleCAyNWJiOTQ1YzJmOGVkMjlmZDkwODU2YjIzZTAz
YzAxZTJhODQzMDYwLi4yYTI5ZmIxZDA2ODZlMmE0ZWM3YzY3Yzg5MTJmZjZhMzhmODljY2QwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcGFyYW0t
dGVzdDItdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtcGFyYW0tdGVzdDItdGVzdC5jYwpAQCAtNDYsMTYgKzQ2LDE2IEBAIFBhcmFtR2VuZXJhdG9y
PGludD4gZXh0ZXJuX2dlbiA9IFZhbHVlcygzMyk7CiAvLyBhbmQgaW5zdGFudGlhdGVkIGluIGFu
b3RoZXIuIFRoZSB0ZXN0IGlzIGRlZmluZWQgaW4KIC8vIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10
ZXN0LmNjIGFuZCBFeHRlcm5hbEluc3RhbnRpYXRpb25UZXN0IGZpeHR1cmUgY2xhc3MgaXMKIC8v
IGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0tdGVzdF90ZXN0LmguCi1JTlNUQU5USUFURV9URVNUX0NB
U0VfUChNdWx0aXBsZXNPZjMzLAotICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJbnN0
YW50aWF0aW9uVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcygzMywgNjYpKTsK
K0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChNdWx0aXBsZXNPZjMzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIEV4dGVybmFsSW5zdGFudGlhdGlvblRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVzKDMzLCA2NikpOwogCiAvLyBUZXN0cyB0aGF0IGEgcGFyYW1ldGVyaXplZCB0
ZXN0IGNhc2UgY2FuIGJlIGluc3RhbnRpYXRlZAogLy8gaW4gbXVsdGlwbGUgdHJhbnNsYXRpb24g
dW5pdHMuIEFub3RoZXIgaW5zdGFudGlhdGlvbiBpcyBkZWZpbmVkCiAvLyBpbiBnb29nbGV0ZXN0
LXBhcmFtLXRlc3QtdGVzdC5jYyBhbmQKLS8vIEluc3RhbnRpYXRpb25Jbk11bHRpcGxlVHJhbnNs
YWlvblVuaXRzVGVzdCBmaXh0dXJlIGlzIGRlZmluZWQgaW4KKy8vIEluc3RhbnRpYXRpb25Jbk11
bHRpcGxlVHJhbnNsYXRpb25Vbml0c1Rlc3QgZml4dHVyZSBpcyBkZWZpbmVkIGluCiAvLyBndGVz
dC1wYXJhbS10ZXN0X3Rlc3QuaAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2UyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhaW9u
VW5pdHNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDQyKjMsIDQyKjQsIDQy
KjUpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTZXF1ZW5jZTIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhdGlvblVuaXRzVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoNDIqMywgNDIqNCwgNDIqNSkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcG9ydC10
ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXBvcnQtdGVz
dC5jYwppbmRleCAzOTkzMTZmOTViNjM3YWNhOTJmYjVhMTU0NGVjN2ZjMjdjMmVmYjI3Li4xZTBj
ODYxNjMyMmE3MjdlOTBkYWI0ZWYxOTRjY2JiMDM1YzEyMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcG9ydC10ZXN0LmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MKQEAgLTM3LDYg
KzM3LDcgQEAKICNlbmRpZiAgLy8gR1RFU1RfT1NfTUFDCiAKICNpbmNsdWRlIDxsaXN0PgorI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx1dGlsaXR5PiAgLy8gRm9yIHN0ZDo6cGFpciBhbmQg
c3RkOjptYWtlX3BhaXIuCiAjaW5jbHVkZSA8dmVjdG9yPgogCkBAIC04OSwxMCArOTAsMTAgQEAg
VEVTVChJc1hEaWdpdFRlc3QsIFJldHVybnNGYWxzZUZvcldpZGVOb25Bc2NpaSkgewogCiBjbGFz
cyBCYXNlIHsKICBwdWJsaWM6Ci0gIC8vIENvcHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQg
b3BlcmF0b3IgZG8gZXhhY3RseSB3aGF0IHdlIG5lZWQsIHNvIHdlCi0gIC8vIHVzZSB0aGVtLgog
ICBCYXNlKCkgOiBtZW1iZXJfKDApIHt9CiAgIGV4cGxpY2l0IEJhc2UoaW50IG4pIDogbWVtYmVy
XyhuKSB7fQorICBCYXNlKGNvbnN0IEJhc2UmKSA9IGRlZmF1bHQ7CisgIEJhc2UmIG9wZXJhdG9y
PShjb25zdCBCYXNlJikgPSBkZWZhdWx0OwogICB2aXJ0dWFsIH5CYXNlKCkge30KICAgaW50IG1l
bWJlcigpIHsgcmV0dXJuIG1lbWJlcl87IH0KIApAQCAtMjAwLDMyICsyMDEsMTMgQEAgVEVTVChJ
bXBsaWNpdENhc3RUZXN0LCBDYW5Vc2VJbXBsaWNpdENvbnN0cnVjdG9yKSB7CiAgIEVYUEVDVF9U
UlVFKGNvbnZlcnRlZCk7CiB9CiAKLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0LCBXb3Jrc0ZvclNU
TENvbnRhaW5lckl0ZXJhdG9ycykgewotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50LAotICAgICAg
SXRlcmF0b3JUcmFpdHM8IDo6c3RkOjp2ZWN0b3I8aW50Pjo6Y29uc3RfaXRlcmF0b3I+Ojp2YWx1
ZV90eXBlPigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8Ym9vbCwKLSAgICAgIEl0ZXJhdG9yVHJh
aXRzPCA6OnN0ZDo6bGlzdDxib29sPjo6aXRlcmF0b3I+Ojp2YWx1ZV90eXBlPigpOwotfQotCi1U
RVNUKEl0ZXJhdG9yVHJhaXRzVGVzdCwgV29ya3NGb3JQb2ludGVyVG9Ob25Db25zdCkgewotICBT
dGF0aWNBc3NlcnRUeXBlRXE8Y2hhciwgSXRlcmF0b3JUcmFpdHM8Y2hhcio+Ojp2YWx1ZV90eXBl
PigpOwotICBTdGF0aWNBc3NlcnRUeXBlRXE8Y29uc3Qgdm9pZCosIEl0ZXJhdG9yVHJhaXRzPGNv
bnN0IHZvaWQqKj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLVRFU1QoSXRlcmF0b3JUcmFpdHNUZXN0
LCBXb3Jrc0ZvclBvaW50ZXJUb0NvbnN0KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxjaGFyLCBJ
dGVyYXRvclRyYWl0czxjb25zdCBjaGFyKj46OnZhbHVlX3R5cGU+KCk7Ci0gIFN0YXRpY0Fzc2Vy
dFR5cGVFcTxjb25zdCB2b2lkKiwKLSAgICAgIEl0ZXJhdG9yVHJhaXRzPGNvbnN0IHZvaWQqIGNv
bnN0Kj46OnZhbHVlX3R5cGU+KCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgdGhlIGVsZW1lbnRfdHlw
ZSB0eXBlZGVmIGlzIGF2YWlsYWJsZSBpbiBzY29wZWRfcHRyIGFuZCByZWZlcnMKLS8vIHRvIHRo
ZSBwYXJhbWV0ZXIgdHlwZS4KLVRFU1QoU2NvcGVkUHRyVGVzdCwgRGVmaW5lc0VsZW1lbnRUeXBl
KSB7Ci0gIFN0YXRpY0Fzc2VydFR5cGVFcTxpbnQsIDo6dGVzdGluZzo6aW50ZXJuYWw6OnNjb3Bl
ZF9wdHI8aW50Pjo6ZWxlbWVudF90eXBlPigpOwotfQotCi0vLyBGSVhNRTogSW1wbGVtZW50IFRI
RSBSRVNUIG9mIHNjb3BlZF9wdHIgdGVzdHMuCi0KKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRl
bnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RhbmdsaW5nLWVsc2UiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1w
dHktYm9keSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2Vu
ZGlmCiBURVNUKEd0ZXN0Q2hlY2tTeW50YXhUZXN0LCBCZWhhdmVzTGlrZUFTaW5nbGVTdGF0ZW1l
bnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCiAgICAgR1RFU1RfQ0hFQ0tfKGZhbHNlKSA8PCAi
VGhpcyBzaG91bGQgbmV2ZXIgYmUgZXhlY3V0ZWQ7ICIKQEAgLTI0MSw2ICsyMjMsOSBAQCBURVNU
KEd0ZXN0Q2hlY2tTeW50YXhUZXN0LCBCZWhhdmVzTGlrZUFTaW5nbGVTdGF0ZW1lbnQpIHsKICAg
ZWxzZQogICAgIEdURVNUX0NIRUNLXyh0cnVlKSA8PCAiIjsKIH0KKyNpZmRlZiBfX0dOVUNfXwor
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogCiBURVNUKEd0ZXN0Q2hlY2tTeW50
YXhUZXN0LCBXb3Jrc1dpdGhTd2l0Y2gpIHsKICAgc3dpdGNoICgwKSB7CkBAIC0yNjIsOSArMjQ3
LDkgQEAgVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzRmlsZUxvY2F0aW9uKSB7
CiB9CiAKIFRFU1QoRm9ybWF0RmlsZUxvY2F0aW9uVGVzdCwgRm9ybWF0c1Vua25vd25GaWxlKSB7
Ci0gIEVYUEVDVF9QUkVEX0ZPUk1BVDIoCi0gICAgICBJc1N1YnN0cmluZywgInVua25vd24gZmls
ZSIsIEZvcm1hdEZpbGVMb2NhdGlvbihOVUxMLCA0MikpOwotICBFWFBFQ1RfUFJFRF9GT1JNQVQy
KElzU3Vic3RyaW5nLCAiNDIiLCBGb3JtYXRGaWxlTG9jYXRpb24oTlVMTCwgNDIpKTsKKyAgRVhQ
RUNUX1BSRURfRk9STUFUMihJc1N1YnN0cmluZywgInVua25vd24gZmlsZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQyKSk7CisgIEVYUEVDVF9Q
UkVEX0ZPUk1BVDIoSXNTdWJzdHJpbmcsICI0MiIsIEZvcm1hdEZpbGVMb2NhdGlvbihudWxscHRy
LCA0MikpOwogfQogCiBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25M
aW5lKSB7CkBAIC0yNzIsNyArMjU3LDcgQEAgVEVTVChGb3JtYXRGaWxlTG9jYXRpb25UZXN0LCBG
b3JtYXRzVWtub3duTGluZSkgewogfQogCiBURVNUKEZvcm1hdEZpbGVMb2NhdGlvblRlc3QsIEZv
cm1hdHNVa25vd25GaWxlQW5kTGluZSkgewotICBFWFBFQ1RfRVEoInVua25vd24gZmlsZToiLCBG
b3JtYXRGaWxlTG9jYXRpb24oTlVMTCwgLTEpKTsKKyAgRVhQRUNUX0VRKCJ1bmtub3duIGZpbGU6
IiwgRm9ybWF0RmlsZUxvY2F0aW9uKG51bGxwdHIsIC0xKSk7CiB9CiAKIC8vIFZlcmlmaWVzIGJl
aGF2aW9yIG9mIEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb24uCkBAIC0yODIs
NyArMjY3LDcgQEAgVEVTVChGb3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0aW9uVGVz
dCwgRm9ybWF0c0ZpbGVMb2NhdGlvbikgewogCiBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRl
bnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVWtub3duRmlsZSkgewogICBFWFBFQ1RfRVEoInVu
a25vd24gZmlsZTo0MiIsCi0gICAgICAgICAgICBGb3JtYXRDb21waWxlckluZGVwZW5kZW50Rmls
ZUxvY2F0aW9uKE5VTEwsIDQyKSk7CisgICAgICAgICAgICBGb3JtYXRDb21waWxlckluZGVwZW5k
ZW50RmlsZUxvY2F0aW9uKG51bGxwdHIsIDQyKSk7CiB9CiAKIFRFU1QoRm9ybWF0Q29tcGlsZXJJ
bmRlcGVuZGVudEZpbGVMb2NhdGlvblRlc3QsIEZvcm1hdHNVa25vd25MaW5lKSB7CkBAIC0yOTAs
MTUgKzI3NSwxNyBAQCBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBlbmRlbnRGaWxlTG9jYXRpb25U
ZXN0LCBGb3JtYXRzVWtub3duTGluZSkgewogfQogCiBURVNUKEZvcm1hdENvbXBpbGVySW5kZXBl
bmRlbnRGaWxlTG9jYXRpb25UZXN0LCBGb3JtYXRzVWtub3duRmlsZUFuZExpbmUpIHsKLSAgRVhQ
RUNUX0VRKCJ1bmtub3duIGZpbGUiLCBGb3JtYXRDb21waWxlckluZGVwZW5kZW50RmlsZUxvY2F0
aW9uKE5VTEwsIC0xKSk7CisgIEVYUEVDVF9FUSgidW5rbm93biBmaWxlIiwgRm9ybWF0Q29tcGls
ZXJJbmRlcGVuZGVudEZpbGVMb2NhdGlvbihudWxscHRyLCAtMSkpOwogfQogCi0jaWYgR1RFU1Rf
T1NfTElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX1FOWCB8fCBHVEVTVF9PU19GVUNI
U0lBCisjaWYgR1RFU1RfT1NfTElOVVggfHwgR1RFU1RfT1NfTUFDIHx8IEdURVNUX09TX1FOWCB8
fCBHVEVTVF9PU19GVUNIU0lBIHx8IFwKKyAgICBHVEVTVF9PU19EUkFHT05GTFkgfHwgR1RFU1Rf
T1NfRlJFRUJTRCB8fCBHVEVTVF9PU19HTlVfS0ZSRUVCU0QgfHwgXAorICAgIEdURVNUX09TX05F
VEJTRCB8fCBHVEVTVF9PU19PUEVOQlNECiB2b2lkKiBUaHJlYWRGdW5jKHZvaWQqIGRhdGEpIHsK
ICAgaW50ZXJuYWw6Ok11dGV4KiBtdXRleCA9IHN0YXRpY19jYXN0PGludGVybmFsOjpNdXRleCo+
KGRhdGEpOwogICBtdXRleC0+TG9jaygpOwogICBtdXRleC0+VW5sb2NrKCk7Ci0gIHJldHVybiBO
VUxMOworICByZXR1cm4gbnVsbHB0cjsKIH0KIAogVEVTVChHZXRUaHJlYWRDb3VudFRlc3QsIFJl
dHVybnNDb3JyZWN0VmFsdWUpIHsKQEAgLTM4NiwyMSArMzczLDE0IEBAIFRFU1QoUmVnZXhFbmdp
bmVTZWxlY3Rpb25UZXN0LCBTZWxlY3RzQ29ycmVjdFJlZ2V4RW5naW5lKSB7CiAKICNpZiBHVEVT
VF9VU0VTX1BPU0lYX1JFCiAKLSMgaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQogdGVtcGxhdGUg
PHR5cGVuYW1lIFN0cj4KIGNsYXNzIFJFVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qge307
CiAKIC8vIERlZmluZXMgU3RyaW5nVHlwZXMgYXMgdGhlIGxpc3Qgb2YgYWxsIHN0cmluZyB0eXBl
cyB0aGF0IGNsYXNzIFJFCiAvLyBzdXBwb3J0cy4KLXR5cGVkZWYgdGVzdGluZzo6VHlwZXM8Ci0g
ICAgOjpzdGQ6OnN0cmluZywKLSMgIGlmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0gICAgOjpz
dHJpbmcsCi0jICBlbmRpZiAgLy8gR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLSAgICBjb25zdCBj
aGFyKj4gU3RyaW5nVHlwZXM7Cit0eXBlZGVmIHRlc3Rpbmc6OlR5cGVzPCA6OnN0ZDo6c3RyaW5n
LCBjb25zdCBjaGFyKj4gU3RyaW5nVHlwZXM7CiAKLVRZUEVEX1RFU1RfQ0FTRShSRVRlc3QsIFN0
cmluZ1R5cGVzKTsKK1RZUEVEX1RFU1RfU1VJVEUoUkVUZXN0LCBTdHJpbmdUeXBlcyk7CiAKIC8v
IFRlc3RzIFJFJ3MgaW1wbGljaXQgY29uc3RydWN0b3JzLgogVFlQRURfVEVTVChSRVRlc3QsIElt
cGxpY2l0Q29uc3RydWN0b3JXb3JrcykgewpAQCAtNDQ4LDggKzQyOCw2IEBAIFRZUEVEX1RFU1Qo
UkVUZXN0LCBQYXJ0aWFsTWF0Y2hXb3JrcykgewogICBFWFBFQ1RfRkFMU0UoUkU6OlBhcnRpYWxN
YXRjaChUeXBlUGFyYW0oInp6YSIpLCByZSkpOwogfQogCi0jIGVuZGlmICAvLyBHVEVTVF9IQVNf
VFlQRURfVEVTVAotCiAjZWxpZiBHVEVTVF9VU0VTX1NJTVBMRV9SRQogCiBURVNUKElzSW5TZXRU
ZXN0LCBOdWxDaGFySXNOb3RJbkFueVNldCkgewpAQCAtOTY1LDcgKzk0Myw3IEBAIFRFU1QoVGhy
ZWFkTG9jYWxUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3JJbml0aWFsaXplc1RvRGVmYXVsdFZhbHVl
cykgewogICBFWFBFQ1RfRVEoMCwgdDEuZ2V0KCkpOwogCiAgIFRocmVhZExvY2FsPHZvaWQqPiB0
MjsKLSAgRVhQRUNUX1RSVUUodDIuZ2V0KCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKHQyLmdl
dCgpID09IG51bGxwdHIpOwogfQogCiBURVNUKFRocmVhZExvY2FsVGVzdCwgU2luZ2xlUGFyYW1D
b25zdHJ1Y3RvckluaXRpYWxpemVzVG9QYXJhbSkgewpAQCAtMTAxNSw3ICs5OTMsNyBAQCB2b2lk
IEFkZFR3byhpbnQqIHBhcmFtKSB7ICpwYXJhbSArPSAyOyB9CiAKIFRFU1QoVGhyZWFkV2l0aFBh
cmFtVGVzdCwgQ29uc3RydWN0b3JFeGVjdXRlc1RocmVhZEZ1bmMpIHsKICAgaW50IGkgPSA0MDsK
LSAgVGhyZWFkV2l0aFBhcmFtPGludCo+IHRocmVhZCgmQWRkVHdvLCAmaSwgTlVMTCk7CisgIFRo
cmVhZFdpdGhQYXJhbTxpbnQqPiB0aHJlYWQoJkFkZFR3bywgJmksIG51bGxwdHIpOwogICB0aHJl
YWQuSm9pbigpOwogICBFWFBFQ1RfRVEoNDIsIGkpOwogfQpAQCAtMTA1NSwxMCArMTAzMywxMCBA
QCBjbGFzcyBBdG9taWNDb3VudGVyV2l0aE11dGV4IHsKICAgICAgIC8vIGZ1bmN0aW9uYWxpdHkg
YXMgd2UgYXJlIHRlc3RpbmcgdGhlbSBoZXJlLgogICAgICAgcHRocmVhZF9tdXRleF90IG1lbW9y
eV9iYXJyaWVyX211dGV4OwogICAgICAgR1RFU1RfQ0hFQ0tfUE9TSVhfU1VDQ0VTU18oCi0gICAg
ICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZtZW1vcnlfYmFycmllcl9tdXRleCwgTlVMTCkpOwor
ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmbWVtb3J5X2JhcnJpZXJfbXV0ZXgsIG51bGxw
dHIpKTsKICAgICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfbG9j
aygmbWVtb3J5X2JhcnJpZXJfbXV0ZXgpKTsKIAotICAgICAgU2xlZXBNaWxsaXNlY29uZHMocmFu
ZG9tXy5HZW5lcmF0ZSgzMCkpOworICAgICAgU2xlZXBNaWxsaXNlY29uZHMoc3RhdGljX2Nhc3Q8
aW50PihyYW5kb21fLkdlbmVyYXRlKDMwKSkpOwogCiAgICAgICBHVEVTVF9DSEVDS19QT1NJWF9T
VUNDRVNTXyhwdGhyZWFkX211dGV4X3VubG9jaygmbWVtb3J5X2JhcnJpZXJfbXV0ZXgpKTsKICAg
ICAgIEdURVNUX0NIRUNLX1BPU0lYX1NVQ0NFU1NfKHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbWVt
b3J5X2JhcnJpZXJfbXV0ZXgpKTsKQEAgLTEwNjYsNyArMTA0NCw3IEBAIGNsYXNzIEF0b21pY0Nv
dW50ZXJXaXRoTXV0ZXggewogICAgICAgLy8gT24gV2luZG93cywgcGVyZm9ybWluZyBhbiBpbnRl
cmxvY2tlZCBhY2Nlc3MgcHV0cyB1cCBhIG1lbW9yeSBiYXJyaWVyLgogICAgICAgdm9sYXRpbGUg
TE9ORyBkdW1teSA9IDA7CiAgICAgICA6OkludGVybG9ja2VkSW5jcmVtZW50KCZkdW1teSk7Ci0g
ICAgICBTbGVlcE1pbGxpc2Vjb25kcyhyYW5kb21fLkdlbmVyYXRlKDMwKSk7CisgICAgICBTbGVl
cE1pbGxpc2Vjb25kcyhzdGF0aWNfY2FzdDxpbnQ+KHJhbmRvbV8uR2VuZXJhdGUoMzApKSk7CiAg
ICAgICA6OkludGVybG9ja2VkSW5jcmVtZW50KCZkdW1teSk7CiAjZWxzZQogIyBlcnJvciAiTWVt
b3J5IGJhcnJpZXIgbm90IGltcGxlbWVudGVkIG9uIHRoaXMgcGxhdGZvcm0uIgpAQCAtMTA5NSw3
ICsxMDczLDcgQEAgVEVTVChNdXRleFRlc3QsIE9ubHlPbmVUaHJlYWRDYW5Mb2NrQXRBVGltZSkg
ewogICB0eXBlZGVmIFRocmVhZFdpdGhQYXJhbTxwYWlyPEF0b21pY0NvdW50ZXJXaXRoTXV0ZXgq
LCBpbnQ+ID4gVGhyZWFkVHlwZTsKICAgY29uc3QgaW50IGtDeWNsZUNvdW50ID0gMjA7CiAgIGNv
bnN0IGludCBrVGhyZWFkQ291bnQgPSA3OwotICBzY29wZWRfcHRyPFRocmVhZFR5cGU+IGNvdW50
aW5nX3RocmVhZHNba1RocmVhZENvdW50XTsKKyAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFR5cGU+
IGNvdW50aW5nX3RocmVhZHNba1RocmVhZENvdW50XTsKICAgTm90aWZpY2F0aW9uIHRocmVhZHNf
Y2FuX3N0YXJ0OwogICAvLyBDcmVhdGVzIGFuZCBydW5zIGtUaHJlYWRDb3VudCB0aHJlYWRzIHRo
YXQgaW5jcmVtZW50IGxvY2tlZF9jb3VudGVyCiAgIC8vIGtDeWNsZUNvdW50IHRpbWVzIGVhY2gu
CkBAIC0xMTE4LDcgKzEwOTYsNyBAQCBURVNUKE11dGV4VGVzdCwgT25seU9uZVRocmVhZENhbkxv
Y2tBdEFUaW1lKSB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBSdW5Gcm9tVGhyZWFk
KHZvaWQgKGZ1bmMpKFQpLCBUIHBhcmFtKSB7Ci0gIFRocmVhZFdpdGhQYXJhbTxUPiB0aHJlYWQo
ZnVuYywgcGFyYW0sIE5VTEwpOworICBUaHJlYWRXaXRoUGFyYW08VD4gdGhyZWFkKGZ1bmMsIHBh
cmFtLCBudWxscHRyKTsKICAgdGhyZWFkLkpvaW4oKTsKIH0KIApAQCAtMTIwOCw4ICsxMTg2LDYg
QEAgY2xhc3MgRGVzdHJ1Y3RvclRyYWNrZXIgewogICAgIHJldHVybiBEZXN0cnVjdG9yQ2FsbDo6
TGlzdCgpLnNpemUoKSAtIDE7CiAgIH0KICAgY29uc3Qgc2l6ZV90IGluZGV4XzsKLQotICBHVEVT
VF9ESVNBTExPV19BU1NJR05fKERlc3RydWN0b3JUcmFja2VyKTsKIH07CiAKIHR5cGVkZWYgVGhy
ZWFkTG9jYWw8RGVzdHJ1Y3RvclRyYWNrZXI+KiBUaHJlYWRQYXJhbTsKQEAgLTEyNTAsOCArMTIy
Niw4IEBAIFRFU1QoVGhyZWFkTG9jYWxUZXN0LCBEZXN0cm95c01hbmFnZWRPYmplY3RBdFRocmVh
ZEV4aXQpIHsKICAgICBBU1NFUlRfRVEoMFUsIERlc3RydWN0b3JDYWxsOjpMaXN0KCkuc2l6ZSgp
KTsKIAogICAgIC8vIFRoaXMgY3JlYXRlcyBhbm90aGVyIERlc3RydWN0b3JUcmFja2VyIG9iamVj
dCBpbiB0aGUgbmV3IHRocmVhZC4KLSAgICBUaHJlYWRXaXRoUGFyYW08VGhyZWFkUGFyYW0+IHRo
cmVhZCgKLSAgICAgICAgJkNhbGxUaHJlYWRMb2NhbEdldCwgJnRocmVhZF9sb2NhbF90cmFja2Vy
LCBOVUxMKTsKKyAgICBUaHJlYWRXaXRoUGFyYW08VGhyZWFkUGFyYW0+IHRocmVhZCgmQ2FsbFRo
cmVhZExvY2FsR2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0
aHJlYWRfbG9jYWxfdHJhY2tlciwgbnVsbHB0cik7CiAgICAgdGhyZWFkLkpvaW4oKTsKIAogICAg
IC8vIFRoZSB0aHJlYWQgaGFzIGV4aXRlZCwgYW5kIHdlIHNob3VsZCBoYXZlIGEgRGVzdHJveWVk
VHJhY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0
ZXN0LXByaW50ZXJzLXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtcHJpbnRlcnMtdGVzdC5jYwppbmRleCBlYTgzNjlkMjdlNTA0NzBmMWVhYmUzYWYyODA0
ZDM0NTQ5M2FkZWQ5Li4wNDYzNWU1OGFlMjNhNmM0ZGU2OGExODdhNTZjNjMyMmMzODE1Y2RkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3QtcHJpbnRl
cnMtdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
cHJpbnRlcnMtdGVzdC5jYwpAQCAtMzIsMzQgKzMyLDI3IEBACiAvLwogLy8gVGhpcyBmaWxlIHRl
c3RzIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4KIAotI2luY2x1ZGUgPGN0eXBlLmg+Ci0j
aW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgorI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPGNz
dHJpbmc+CiAjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8Zm9yd2FyZF9saXN0PgorI2luY2x1
ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxsaXN0PgogI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVkZSA8c3Ry
aW5nPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4K
ICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImd0ZXN0
L2d0ZXN0LXByaW50ZXJzLmgiCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKIAotI2lmIEdURVNU
X0hBU19VTk9SREVSRURfTUFQXwotIyBpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPiAgLy8gTk9MSU5U
Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19VTk9SREVSRURfTUFQXwotCi0jaWYgR1RFU1RfSEFTX1VO
T1JERVJFRF9TRVRfCi0jIGluY2x1ZGUgPHVub3JkZXJlZF9zZXQ+ICAvLyBOT0xJTlQKLSNlbmRp
ZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9TRVRfCi0KLSNpZiBHVEVTVF9IQVNfU1REX0ZPUldB
UkRfTElTVF8KLSMgaW5jbHVkZSA8Zm9yd2FyZF9saXN0PiAvLyBOT0xJTlQKLSNlbmRpZiAgLy8g
R1RFU1RfSEFTX1NURF9GT1JXQVJEX0xJU1RfCi0KIC8vIFNvbWUgdXNlci1kZWZpbmVkIHR5cGVz
IGZvciB0ZXN0aW5nIHRoZSB1bml2ZXJzYWwgdmFsdWUgcHJpbnRlci4KIAogLy8gQW4gYW5vbnlt
b3VzIGVudW0gdHlwZS4KQEAgLTk4LDYgKzkxLDE4IEBAIGNsYXNzIEJpZ2dlc3RJbnRDb252ZXJ0
aWJsZSB7CiAgIG9wZXJhdG9yIDo6dGVzdGluZzo6aW50ZXJuYWw6OkJpZ2dlc3RJbnQoKSBjb25z
dCB7IHJldHVybiA0MjsgfQogfTsKIAorLy8gQSBwYXJlbnQgY2xhc3Mgd2l0aCB0d28gY2hpbGQg
Y2xhc3Nlcy4gVGhlIHBhcmVudCBhbmQgb25lIG9mIHRoZSBraWRzIGhhdmUKKy8vIHN0cmVhbSBv
cGVyYXRvcnMuCitjbGFzcyBQYXJlbnRDbGFzcyB7fTsKK2NsYXNzIENoaWxkQ2xhc3NXaXRoU3Ry
ZWFtT3BlcmF0b3IgOiBwdWJsaWMgUGFyZW50Q2xhc3Mge307CitjbGFzcyBDaGlsZENsYXNzV2l0
aG91dFN0cmVhbU9wZXJhdG9yIDogcHVibGljIFBhcmVudENsYXNzIHt9Oworc3RhdGljIHZvaWQg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBQYXJlbnRDbGFzcyYpIHsKKyAgb3Mg
PDwgIlBhcmVudENsYXNzIjsKK30KK3N0YXRpYyB2b2lkIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFt
JiBvcywgY29uc3QgQ2hpbGRDbGFzc1dpdGhTdHJlYW1PcGVyYXRvciYpIHsKKyAgb3MgPDwgIkNo
aWxkQ2xhc3NXaXRoU3RyZWFtT3BlcmF0b3IiOworfQorCiAvLyBBIHVzZXItZGVmaW5lZCB1bnBy
aW50YWJsZSBjbGFzcyB0ZW1wbGF0ZSBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogY2xhc3MgVW5wcmludGFibGVUZW1wbGF0ZUluR2xvYmFsIHsKQEAgLTE4
NSw2ICsxOTAsMTcgQEAgaW5saW5lIDo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpv
c3RyZWFtJiBvcywKICAgcmV0dXJuIG9zIDw8ICJTdHJlYW1hYmxlVGVtcGxhdGVJbkZvbzogIiA8
PCB4LnZhbHVlKCk7CiB9CiAKKy8vIEEgdXNlci1kZWZpbmVkIHN0cmVhbWFibGUgdHlwZSBpbiBh
IHVzZXIgbmFtZXNwYWNlIHdob3NlIG9wZXJhdG9yPDwgaXMKKy8vIHRlbXBsYXRlZCBvbiB0aGUg
dHlwZSBvZiB0aGUgb3V0cHV0IHN0cmVhbS4KK3N0cnVjdCBUZW1wbGF0ZWRTdHJlYW1hYmxlSW5G
b28ge307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBPdXRwdXRTdHJlYW0+CitPdXRwdXRTdHJlYW0m
IG9wZXJhdG9yPDwoT3V0cHV0U3RyZWFtJiBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28mIC8qdHMqLykgeworICBvcyA8PCAiVGVtcGxh
dGVkU3RyZWFtYWJsZUluRm9vIjsKKyAgcmV0dXJuIG9zOworfQorCiAvLyBBIHVzZXItZGVmaW5l
ZCBzdHJlYW1hYmxlIGJ1dCByZWN1cnNpdmx5LWRlZmluZWQgY29udGFpbmVyIHR5cGUgaW4KIC8v
IGEgdXNlciBuYW1lc3BhY2UsIGl0IG1pbWljcyB0aGVyZWZvcmUgc3RkOjpmaWxlc3lzdGVtOjpw
YXRoIG9yCiAvLyBib29zdDo6ZmlsZXN5c3RlbTo6cGF0aC4KQEAgLTE5Miw4ICsyMDgsMTQgQEAg
Y2xhc3MgUGF0aExpa2UgewogIHB1YmxpYzoKICAgc3RydWN0IGl0ZXJhdG9yIHsKICAgICB0eXBl
ZGVmIFBhdGhMaWtlIHZhbHVlX3R5cGU7CisKKyAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygpOwor
ICAgIFBhdGhMaWtlJiBvcGVyYXRvciooKTsKICAgfTsKIAorICB1c2luZyB2YWx1ZV90eXBlID0g
Y2hhcjsKKyAgdXNpbmcgY29uc3RfaXRlcmF0b3IgPSBpdGVyYXRvcjsKKwogICBQYXRoTGlrZSgp
IHt9CiAKICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigpOyB9CkBA
IC0yMDcsNiArMjI5LDMzIEBAIGNsYXNzIFBhdGhMaWtlIHsKIH0gIC8vIG5hbWVzcGFjZSBmb28K
IAogbmFtZXNwYWNlIHRlc3RpbmcgeworbmFtZXNwYWNlIHsKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PgorY2xhc3MgV3JhcHBlciB7CisgcHVibGljOgorICBleHBsaWNpdCBXcmFwcGVyKFQmJiB2YWx1
ZSkgOiB2YWx1ZV8oc3RkOjpmb3J3YXJkPFQ+KHZhbHVlKSkge30KKworICBjb25zdCBUJiB2YWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQorCisgcHJpdmF0ZToKKyAgVCB2YWx1ZV87Cit9
OworCit9ICAvLyBuYW1lc3BhY2UKKworbmFtZXNwYWNlIGludGVybmFsIHsKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgorY2xhc3MgVW5pdmVyc2FsUHJpbnRlcjxXcmFwcGVyPFQ+PiB7CisgcHVibGlj
OgorICBzdGF0aWMgdm9pZCBQcmludChjb25zdCBXcmFwcGVyPFQ+JiB3LCA6OnN0ZDo6b3N0cmVh
bSogb3MpIHsKKyAgICAqb3MgPDwgIldyYXBwZXIoIjsKKyAgICBVbml2ZXJzYWxQcmludCh3LnZh
bHVlKCksIG9zKTsKKyAgICAqb3MgPDwgJyknOworICB9Cit9OworfSAgLy8gbmFtZXNwYWNlIGlu
dGVybmFsCisKKwogbmFtZXNwYWNlIGd0ZXN0X3ByaW50ZXJzX3Rlc3QgewogCiB1c2luZyA6OnN0
ZDo6ZGVxdWU7CkBAIC0yMjIsMTUgKzI3MSwxMiBAQCB1c2luZyA6OnRlc3Rpbmc6OlByaW50VG9T
dHJpbmc7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpGb3JtYXRGb3JDb21wYXJpc29uRmFp
bHVyZU1lc3NhZ2U7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpJbXBsaWNpdENhc3RfOwog
dXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6TmF0aXZlQXJyYXk7Ci11c2luZyA6OnRlc3Rpbmc6
OmludGVybmFsOjpSRTsKIHVzaW5nIDo6dGVzdGluZzo6aW50ZXJuYWw6OlJlbGF0aW9uVG9Tb3Vy
Y2VSZWZlcmVuY2U7CiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpTdHJpbmdzOwogdXNpbmcg
Ojp0ZXN0aW5nOjppbnRlcm5hbDo6VW5pdmVyc2FsUHJpbnQ7CiB1c2luZyA6OnRlc3Rpbmc6Omlu
dGVybmFsOjpVbml2ZXJzYWxQcmludGVyOwogdXNpbmcgOjp0ZXN0aW5nOjppbnRlcm5hbDo6VW5p
dmVyc2FsVGVyc2VQcmludDsKLSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFIHx8IEdURVNUX0hBU19T
VERfVFVQTEVfCiB1c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpVbml2ZXJzYWxUZXJzZVByaW50
VHVwbGVGaWVsZHNUb1N0cmluZ3M7Ci0jZW5kaWYKIAogLy8gUHJpbnRzIGEgdmFsdWUgdG8gYSBz
dHJpbmcgdXNpbmcgdGhlIHVuaXZlcnNhbCB2YWx1ZSBwcmludGVyLiAgVGhpcwogLy8gaXMgYSBo
ZWxwZXIgZm9yIHRlc3RpbmcgVW5pdmVyc2FsUHJpbnRlcjxUPjo6UHJpbnQoKSBmb3IgdmFyaW91
cyB0eXBlcy4KQEAgLTMxNSw2ICszNjEsMjAgQEAgVEVTVChQcmludENoYXJUZXN0LCBVbnNpZ25l
ZENoYXIpIHsKICAgICAgICAgICAgIFByaW50KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KCdi
JykpKTsKIH0KIAorVEVTVChQcmludENoYXJUZXN0LCBDaGFyMTYpIHsKKyAgRVhQRUNUX0VRKCJV
KzAwNDEiLCBQcmludCh1J0EnKSk7Cit9CisKK1RFU1QoUHJpbnRDaGFyVGVzdCwgQ2hhcjMyKSB7
CisgIEVYUEVDVF9FUSgiVSswMDQxIiwgUHJpbnQoVSdBJykpOworfQorCisjaWZkZWYgX19jcHBf
Y2hhcjhfdAorVEVTVChQcmludENoYXJUZXN0LCBDaGFyOCkgeworICBFWFBFQ1RfRVEoIlUrMDA0
MSIsIFByaW50KHU4J0EnKSk7Cit9CisjZW5kaWYKKwogLy8gVGVzdHMgcHJpbnRpbmcgb3RoZXIg
c2ltcGxlLCBidWlsdC1pbiB0eXBlcy4KIAogLy8gYm9vbC4KQEAgLTM0NSwyMyArNDA1LDM5IEBA
IFRFU1QoUHJpbnRCdWlsdEluVHlwZVRlc3QsIFdjaGFyX3QpIHsKICAgRVhQRUNUX0VRKCJMJ1xc
eEM3NEQnICg1MTAyMSkiLCBQcmludChzdGF0aWNfY2FzdDx3Y2hhcl90PigweEM3NEQpKSk7CiB9
CiAKLS8vIFRlc3QgdGhhdCBJbnQ2NCBwcm92aWRlcyBtb3JlIHN0b3JhZ2UgdGhhbiB3Y2hhcl90
LgorLy8gVGVzdCB0aGF0IGludDY0X3QgcHJvdmlkZXMgbW9yZSBzdG9yYWdlIHRoYW4gd2NoYXJf
dC4KIFRFU1QoUHJpbnRUeXBlU2l6ZVRlc3QsIFdjaGFyX3QpIHsKLSAgRVhQRUNUX0xUKHNpemVv
Zih3Y2hhcl90KSwgc2l6ZW9mKHRlc3Rpbmc6OmludGVybmFsOjpJbnQ2NCkpOworICBFWFBFQ1Rf
TFQoc2l6ZW9mKHdjaGFyX3QpLCBzaXplb2YoaW50NjRfdCkpOwogfQogCiAvLyBWYXJpb3VzIGlu
dGVnZXIgdHlwZXMuCiBURVNUKFByaW50QnVpbHRJblR5cGVUZXN0LCBJbnRlZ2VyKSB7CiAgIEVY
UEVDVF9FUSgiJ1xceEZGJyAoMjU1KSIsIFByaW50KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KDI1NSkpKTsgIC8vIHVpbnQ4CiAgIEVYUEVDVF9FUSgiJ1xceDgwJyAoLTEyOCkiLCBQcmludChz
dGF0aWNfY2FzdDxzaWduZWQgY2hhcj4oLTEyOCkpKTsgIC8vIGludDgKLSAgRVhQRUNUX0VRKCI2
NTUzNSIsIFByaW50KFVTSFJUX01BWCkpOyAgLy8gdWludDE2Ci0gIEVYUEVDVF9FUSgiLTMyNzY4
IiwgUHJpbnQoU0hSVF9NSU4pKTsgIC8vIGludDE2Ci0gIEVYUEVDVF9FUSgiNDI5NDk2NzI5NSIs
IFByaW50KFVJTlRfTUFYKSk7ICAvLyB1aW50MzIKLSAgRVhQRUNUX0VRKCItMjE0NzQ4MzY0OCIs
IFByaW50KElOVF9NSU4pKTsgIC8vIGludDMyCisgIEVYUEVDVF9FUSgiNjU1MzUiLCBQcmludChz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpKTsgIC8vIHVpbnQxNgorICBFWFBF
Q1RfRVEoIi0zMjc2OCIsIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MTZfdD46Om1pbigp
KSk7ICAvLyBpbnQxNgorICBFWFBFQ1RfRVEoIjQyOTQ5NjcyOTUiLAorICAgICAgICAgICAgUHJp
bnQoc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSk7ICAvLyB1aW50MzIKKyAg
RVhQRUNUX0VRKCItMjE0NzQ4MzY0OCIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyX3Q+OjptaW4oKSkpOyAgLy8gaW50MzIKICAgRVhQRUNUX0VRKCIxODQ0Njc0
NDA3MzcwOTU1MTYxNSIsCi0gICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDx0ZXN0aW5nOjpp
bnRlcm5hbDo6VUludDY0PigtMSkpKTsgIC8vIHVpbnQ2NAorICAgICAgICAgICAgUHJpbnQoc3Rk
OjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKSk7ICAvLyB1aW50NjQKICAgRVhQRUNU
X0VRKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIsCi0gICAgICAgICAgICBQcmludChzdGF0aWNfY2Fz
dDx0ZXN0aW5nOjppbnRlcm5hbDo6SW50NjQ+KDEpIDw8IDYzKSk7ICAvLyBpbnQ2NAorICAgICAg
ICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkpKTsgIC8vIGlu
dDY0CisjaWZkZWYgX19jcHBfY2hhcjhfdAorICBFWFBFQ1RfRVEoIlUrMDAwMCIsCisgICAgICAg
ICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRzPGNoYXI4X3Q+OjptaW4oKSkpOyAgLy8gY2hh
cjhfdAorICBFWFBFQ1RfRVEoIlUrMDBGRiIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVy
aWNfbGltaXRzPGNoYXI4X3Q+OjptYXgoKSkpOyAgLy8gY2hhcjhfdAorI2VuZGlmCisgIEVYUEVD
VF9FUSgiVSswMDAwIiwKKyAgICAgICAgICAgIFByaW50KHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hh
cjE2X3Q+OjptaW4oKSkpOyAgLy8gY2hhcjE2X3QKKyAgRVhQRUNUX0VRKCJVK0ZGRkYiLAorICAg
ICAgICAgICAgUHJpbnQoc3RkOjpudW1lcmljX2xpbWl0czxjaGFyMTZfdD46Om1heCgpKSk7ICAv
LyBjaGFyMTZfdAorICBFWFBFQ1RfRVEoIlUrMDAwMCIsCisgICAgICAgICAgICBQcmludChzdGQ6
Om51bWVyaWNfbGltaXRzPGNoYXIzMl90Pjo6bWluKCkpKTsgIC8vIGNoYXIzMl90CisgIEVYUEVD
VF9FUSgiVStGRkZGRkZGRiIsCisgICAgICAgICAgICBQcmludChzdGQ6Om51bWVyaWNfbGltaXRz
PGNoYXIzMl90Pjo6bWF4KCkpKTsgIC8vIGNoYXIzMl90CiB9CiAKIC8vIFNpemUgdHlwZXMuCkBA
IC00MDUsNyArNDgxLDcgQEAgVEVTVChQcmludENTdHJpbmdUZXN0LCBOb25Db25zdCkgewogCiAv
LyBOVUxMIEMgc3RyaW5nLgogVEVTVChQcmludENTdHJpbmdUZXN0LCBOdWxsKSB7Ci0gIGNvbnN0
IGNoYXIqIHAgPSBOVUxMOworICBjb25zdCBjaGFyKiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VR
KCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00MTcsNiArNDkzLDkyIEBAIFRFU1QoUHJpbnRD
U3RyaW5nVGVzdCwgRXNjYXBlc1Byb3Blcmx5KSB7CiAgICAgICAgICAgICBQcmludChwKSk7CiB9
CiAKKyNpZmRlZiBfX2NwcF9jaGFyOF90CisvLyBjb25zdCBjaGFyOF90Ki4KK1RFU1QoUHJpbnRV
OFN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNoYXI4X3QqIHAgPSB1OCLnlYwiOworICBF
WFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1OFwiXFx4RTdcXHg5NVxc
eDhDXCIiLCBQcmludChwKSk7Cit9CisKKy8vIGNoYXI4X3QqLgorVEVTVChQcmludFU4U3RyaW5n
VGVzdCwgTm9uQ29uc3QpIHsKKyAgY2hhcjhfdCBwW10gPSB1OCLkuJYiOworICBFWFBFQ1RfRVEo
UHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1OFwiXFx4RTRcXHhCOFxceDk2XCIiLAor
ICAgICAgICAgICAgUHJpbnQoc3RhdGljX2Nhc3Q8Y2hhcjhfdCo+KHApKSk7Cit9CisKKy8vIE5V
TEwgdTggc3RyaW5nLgorVEVTVChQcmludFU4U3RyaW5nVGVzdCwgTnVsbCkgeworICBjb25zdCBj
aGFyOF90KiBwID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOworfQor
CisvLyBUZXN0cyB0aGF0IHU4IHN0cmluZ3MgYXJlIGVzY2FwZWQgcHJvcGVybHkuCitURVNUKFBy
aW50VThTdHJpbmdUZXN0LCBFc2NhcGVzUHJvcGVybHkpIHsKKyAgY29uc3QgY2hhcjhfdCogcCA9
IHU4IidcIj9cXFxhXGJcZlxuXHJcdFx2XHg3Rlx4RkYgaGVsbG8g5LiW55WMIjsKKyAgRVhQRUNU
X0VRKFByaW50UG9pbnRlcihwKSArCisgICAgICAgICAgICAgICAgIiBwb2ludGluZyB0byB1OFwi
J1xcXCI/XFxcXFxcYVxcYlxcZlxcblxcclxcdFxcdlxceDdGXFx4RkYgIgorICAgICAgICAgICAg
ICAgICJoZWxsbyBcXHhFNFxceEI4XFx4OTZcXHhFN1xceDk1XFx4OENcIiIsCisgICAgICAgICAg
ICBQcmludChwKSk7Cit9CisjZW5kaWYKKworLy8gY29uc3QgY2hhcjE2X3QqLgorVEVTVChQcmlu
dFUxNlN0cmluZ1Rlc3QsIENvbnN0KSB7CisgIGNvbnN0IGNoYXIxNl90KiBwID0gdSLnlYwiOwor
ICBFWFBFQ1RfRVEoUHJpbnRQb2ludGVyKHApICsgIiBwb2ludGluZyB0byB1XCJcXHg3NTRDXCIi
LCBQcmludChwKSk7Cit9CisKKy8vIGNoYXIxNl90Ki4KK1RFU1QoUHJpbnRVMTZTdHJpbmdUZXN0
LCBOb25Db25zdCkgeworICBjaGFyMTZfdCBwW10gPSB1IuS4liI7CisgIEVYUEVDVF9FUShQcmlu
dFBvaW50ZXIocCkgKyAiIHBvaW50aW5nIHRvIHVcIlxceDRFMTZcIiIsCisgICAgICAgICAgICBQ
cmludChzdGF0aWNfY2FzdDxjaGFyMTZfdCo+KHApKSk7Cit9CisKKy8vIE5VTEwgdTE2IHN0cmlu
Zy4KK1RFU1QoUHJpbnRVMTZTdHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXIxNl90KiBw
ID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOworfQorCisvLyBUZXN0
cyB0aGF0IHUxNiBzdHJpbmdzIGFyZSBlc2NhcGVkIHByb3Blcmx5LgorVEVTVChQcmludFUxNlN0
cmluZ1Rlc3QsIEVzY2FwZXNQcm9wZXJseSkgeworICBjb25zdCBjaGFyMTZfdCogcCA9IHUiJ1wi
P1xcXGFcYlxmXG5cclx0XHZceDdGXHhGRiBoZWxsbyDkuJbnlYwiOworICBFWFBFQ1RfRVEoUHJp
bnRQb2ludGVyKHApICsKKyAgICAgICAgICAgICAgICAiIHBvaW50aW5nIHRvIHVcIidcXFwiP1xc
XFxcXGFcXGJcXGZcXG5cXHJcXHRcXHZcXHg3RlxceEZGICIKKyAgICAgICAgICAgICAgICAiaGVs
bG8gXFx4NEUxNlxceDc1NENcIiIsCisgICAgICAgICAgICBQcmludChwKSk7Cit9CisKKy8vIGNv
bnN0IGNoYXIzMl90Ki4KK1RFU1QoUHJpbnRVMzJTdHJpbmdUZXN0LCBDb25zdCkgeworICBjb25z
dCBjaGFyMzJfdCogcCA9IFUi8J+Xuu+4jyI7CisgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCkg
KyAiIHBvaW50aW5nIHRvIFVcIlxceDFGNUZBXFx4RkUwRlwiIiwgUHJpbnQocCkpOworfQorCisv
LyBjaGFyMzJfdCouCitURVNUKFByaW50VTMyU3RyaW5nVGVzdCwgTm9uQ29uc3QpIHsKKyAgY2hh
cjMyX3QgcFtdID0gVSLwn4yMIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArICIgcG9p
bnRpbmcgdG8gVVwiXFx4MUYzMENcIiIsCisgICAgICAgICAgICBQcmludChzdGF0aWNfY2FzdDxj
aGFyMzJfdCo+KHApKSk7Cit9CisKKy8vIE5VTEwgdTMyIHN0cmluZy4KK1RFU1QoUHJpbnRVMzJT
dHJpbmdUZXN0LCBOdWxsKSB7CisgIGNvbnN0IGNoYXIzMl90KiBwID0gbnVsbHB0cjsKKyAgRVhQ
RUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOworfQorCisvLyBUZXN0cyB0aGF0IHUzMiBzdHJpbmdz
IGFyZSBlc2NhcGVkIHByb3Blcmx5LgorVEVTVChQcmludFUzMlN0cmluZ1Rlc3QsIEVzY2FwZXNQ
cm9wZXJseSkgeworICBjb25zdCBjaGFyMzJfdCogcCA9IFUiJ1wiP1xcXGFcYlxmXG5cclx0XHZc
eDdGXHhGRiBoZWxsbyDwn5e677iPIjsKKyAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSArCisg
ICAgICAgICAgICAgICAgIiBwb2ludGluZyB0byBVXCInXFxcIj9cXFxcXFxhXFxiXFxmXFxuXFxy
XFx0XFx2XFx4N0ZcXHhGRiAiCisgICAgICAgICAgICAgICAgImhlbGxvIFxceDFGNUZBXFx4RkUw
RlwiIiwKKyAgICAgICAgICAgIFByaW50KHApKTsKK30KKwogLy8gTVNWQyBjb21waWxlciBjYW4g
YmUgY29uZmlndXJlZCB0byBkZWZpbmUgd2hhcl90IGFzIGEgdHlwZWRlZgogLy8gb2YgdW5zaWdu
ZWQgc2hvcnQuIERlZmluaW5nIGFuIG92ZXJsb2FkIGZvciBjb25zdCB3Y2hhcl90KiBpbiB0aGF0
IGNhc2UKIC8vIHdvdWxkIGNhdXNlIHBvaW50ZXJzIHRvIHVuc2lnbmVkIHNob3J0cyBiZSBwcmlu
dGVkIGFzIHdpZGUgc3RyaW5ncywKQEAgLTQ0MCw3ICs2MDIsNyBAQCBURVNUKFByaW50V2lkZUNT
dHJpbmdUZXN0LCBOb25Db25zdCkgewogCiAvLyBOVUxMIHdpZGUgQyBzdHJpbmcuCiBURVNUKFBy
aW50V2lkZUNTdHJpbmdUZXN0LCBOdWxsKSB7Ci0gIGNvbnN0IHdjaGFyX3QqIHAgPSBOVUxMOwor
ICBjb25zdCB3Y2hhcl90KiBwID0gbnVsbHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQo
cCkpOwogfQogCkBAIC00NjAsNyArNjIyLDcgQEAgVEVTVChQcmludFdpZGVDU3RyaW5nVGVzdCwg
RXNjYXBlc1Byb3Blcmx5KSB7CiBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBTaWduZWRDaGFy
KSB7CiAgIHNpZ25lZCBjaGFyKiBwID0gcmVpbnRlcnByZXRfY2FzdDxzaWduZWQgY2hhcio+KDB4
MTIzNCk7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIocCksIFByaW50KHApKTsKLSAgcCA9IE5V
TEw7CisgIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoIk5VTEwiLCBQcmludChwKSk7CiB9CiAK
QEAgLTQ2OCw3ICs2MzAsNyBAQCBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBTaWduZWRDaGFy
KSB7CiBURVNUKFByaW50Q2hhclBvaW50ZXJUZXN0LCBDb25zdFNpZ25lZENoYXIpIHsKICAgc2ln
bmVkIGNoYXIqIHAgPSByZWludGVycHJldF9jYXN0PHNpZ25lZCBjaGFyKj4oMHgxMjM0KTsKICAg
RVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsKKyAgcCA9
IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAtNDc2LDcg
KzYzOCw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0U2lnbmVkQ2hhcikgewog
VEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgVW5zaWduZWRDaGFyKSB7CiAgIHVuc2lnbmVkIGNo
YXIqIHAgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPigweDEyMzQpOwogICBFWFBF
Q1RfRVEoUHJpbnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVs
bHB0cjsKICAgRVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC00ODQsNyArNjQ2
LDcgQEAgVEVTVChQcmludENoYXJQb2ludGVyVGVzdCwgVW5zaWduZWRDaGFyKSB7CiBURVNUKFBy
aW50Q2hhclBvaW50ZXJUZXN0LCBDb25zdFVuc2lnbmVkQ2hhcikgewogICBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oMHgxMjM0
KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsK
KyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAt
NDk0LDcgKzY1Niw3IEBAIFRFU1QoUHJpbnRDaGFyUG9pbnRlclRlc3QsIENvbnN0VW5zaWduZWRD
aGFyKSB7CiBURVNUKFByaW50UG9pbnRlclRvQnVpbHRJblR5cGVUZXN0LCBCb29sKSB7CiAgIGJv
b2wqIHAgPSByZWludGVycHJldF9jYXN0PGJvb2wqPigweEFCQ0QpOwogICBFWFBFQ1RfRVEoUHJp
bnRQb2ludGVyKHApLCBQcmludChwKSk7Ci0gIHAgPSBOVUxMOworICBwID0gbnVsbHB0cjsKICAg
RVhQRUNUX0VRKCJOVUxMIiwgUHJpbnQocCkpOwogfQogCkBAIC01MDIsNyArNjY0LDcgQEAgVEVT
VChQcmludFBvaW50ZXJUb0J1aWx0SW5UeXBlVGVzdCwgQm9vbCkgewogVEVTVChQcmludFBvaW50
ZXJUb0J1aWx0SW5UeXBlVGVzdCwgVm9pZCkgewogICB2b2lkKiBwID0gcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oMHhBQkNEKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkp
OwotICBwID0gTlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50
KHApKTsKIH0KIApAQCAtNTEwLDcgKzY3Miw3IEBAIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdElu
VHlwZVRlc3QsIFZvaWQpIHsKIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRlc3QsIENv
bnN0Vm9pZCkgewogICBjb25zdCB2b2lkKiBwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lk
Kj4oMHhBQkNEKTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBw
ID0gTlVMTDsKKyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsK
IH0KIApAQCAtNTE4LDcgKzY4MCw3IEBAIFRFU1QoUHJpbnRQb2ludGVyVG9CdWlsdEluVHlwZVRl
c3QsIENvbnN0Vm9pZCkgewogVEVTVChQcmludFBvaW50ZXJUb1BvaW50ZXJUZXN0LCBJbnRQb2lu
dGVyUG9pbnRlcikgewogICBpbnQqKiBwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQqKj4oMHhBQkNE
KTsKICAgRVhQRUNUX0VRKFByaW50UG9pbnRlcihwKSwgUHJpbnQocCkpOwotICBwID0gTlVMTDsK
KyAgcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIFByaW50KHApKTsKIH0KIApAQCAt
NjI3LDIxICs3ODksNjYgQEAgVEVTVChQcmludEFycmF5VGVzdCwgQ2hhckFycmF5V2l0aE5vVGVy
bWluYXRpbmdOdWwpIHsKICAgRVhQRUNUX0VRKCJcIkhcXDBpXCIgKG5vIHRlcm1pbmF0aW5nIE5V
TCkiLCBQcmludEFycmF5SGVscGVyKGEpKTsKIH0KIAotLy8gY29uc3QgY2hhciBhcnJheSB3aXRo
IHRlcm1pbmF0aW5nIE5VTC4KLVRFU1QoUHJpbnRBcnJheVRlc3QsIENvbnN0Q2hhckFycmF5V2l0
aFRlcm1pbmF0aW5nTnVsKSB7CisvLyBjaGFyIGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgor
VEVTVChQcmludEFycmF5VGVzdCwgQ2hhckFycmF5V2l0aFRlcm1pbmF0aW5nTnVsKSB7CiAgIGNv
bnN0IGNoYXIgYVtdID0gIlwwSGkiOwogICBFWFBFQ1RfRVEoIlwiXFwwSGlcIiIsIFByaW50QXJy
YXlIZWxwZXIoYSkpOwogfQogCi0vLyBjb25zdCB3Y2hhcl90IGFycmF5IHdpdGhvdXQgdGVybWlu
YXRpbmcgTlVMLgorI2lmZGVmIF9fY3BwX2NoYXI4X3QKKy8vIGNoYXJfdCBhcnJheSB3aXRob3V0
IHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXI4QXJyYXlXaXRoTm9U
ZXJtaW5hdGluZ051bCkgeworICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhlIG1pZGRs
ZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAnLgorICBjb25zdCBjaGFyOF90IGFbXSA9IHt1OCdI
JywgdTgnXDAnLCB1OCdpJ307CisgIEVYUEVDVF9FUSgidThcIkhcXDBpXCIgKG5vIHRlcm1pbmF0
aW5nIE5VTCkiLCBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8gY2hhcjhfdCBhcnJheSB3
aXRoIHRlcm1pbmF0aW5nIE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXI4QXJyYXlXaXRo
VGVybWluYXRpbmdOdWwpIHsKKyAgY29uc3QgY2hhcjhfdCBhW10gPSB1OCJcMOS4lueVjCI7Cisg
IEVYUEVDVF9FUSgKKyAgICAgICJ1OFwiXFwwXFx4RTRcXHhCOFxceDk2XFx4RTdcXHg5NVxceDhD
XCIiLAorICAgICAgUHJpbnRBcnJheUhlbHBlcihhKSk7Cit9CisjZW5kaWYKKworLy8gY29uc3Qg
Y2hhcjE2X3QgYXJyYXkgd2l0aG91dCB0ZXJtaW5hdGluZyBOVUwuCitURVNUKFByaW50QXJyYXlU
ZXN0LCBDaGFyMTZBcnJheVdpdGhOb1Rlcm1pbmF0aW5nTnVsKSB7CisgIC8vIEFycmF5IGEgY29u
dGFpbnMgJ1wwJyBpbiB0aGUgbWlkZGxlIGFuZCBkb2Vzbid0IGVuZCB3aXRoICdcMCcuCisgIGNv
bnN0IGNoYXIxNl90IGFbXSA9IHt1J+OBkycsIHUnXDAnLCB1J+OCkycsIHUn44GrJywgdSfjgaEn
LCB1J+OBryd9OworICBFWFBFQ1RfRVEoInVcIlxceDMwNTNcXDBcXHgzMDkzXFx4MzA2QlxceDMw
NjFcXHgzMDZGXCIgKG5vIHRlcm1pbmF0aW5nIE5VTCkiLAorICAgICAgICAgICAgUHJpbnRBcnJh
eUhlbHBlcihhKSk7Cit9CisKKy8vIGNoYXIxNl90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVM
LgorVEVTVChQcmludEFycmF5VGVzdCwgQ2hhcjE2QXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsK
KyAgY29uc3QgY2hhcjE2X3QgYVtdID0gdSJcMOOBk+OCk+OBq+OBoeOBryI7CisgIEVYUEVDVF9F
USgidVwiXFwwXFx4MzA1M1xceDMwOTNcXHgzMDZCXFx4MzA2MVxceDMwNkZcIiIsIFByaW50QXJy
YXlIZWxwZXIoYSkpOworfQorCisvLyBjaGFyMzJfdCBhcnJheSB3aXRob3V0IHRlcm1pbmF0aW5n
IE5VTC4KK1RFU1QoUHJpbnRBcnJheVRlc3QsIENoYXIzMkFycmF5V2l0aE5vVGVybWluYXRpbmdO
dWwpIHsKKyAgLy8gQXJyYXkgYSBjb250YWlucyAnXDAnIGluIHRoZSBtaWRkbGUgYW5kIGRvZXNu
J3QgZW5kIHdpdGggJ1wwJy4KKyAgY29uc3QgY2hhcjMyX3QgYVtdID0ge1Un8J+RiycsIFUnXDAn
LCBVJ/CfjIwnfTsKKyAgRVhQRUNUX0VRKCJVXCJcXHgxRjQ0QlxcMFxceDFGMzBDXCIgKG5vIHRl
cm1pbmF0aW5nIE5VTCkiLAorICAgICAgICAgICAgUHJpbnRBcnJheUhlbHBlcihhKSk7Cit9CisK
Ky8vIGNoYXIzMl90IGFycmF5IHdpdGggdGVybWluYXRpbmcgTlVMLgorVEVTVChQcmludEFycmF5
VGVzdCwgQ2hhcjMyQXJyYXlXaXRoVGVybWluYXRpbmdOdWwpIHsKKyAgY29uc3QgY2hhcjMyX3Qg
YVtdID0gVSJcMPCfkYvwn4yMIjsKKyAgRVhQRUNUX0VRKCJVXCJcXDBcXHgxRjQ0QlxceDFGMzBD
XCIiLCBQcmludEFycmF5SGVscGVyKGEpKTsKK30KKworLy8gd2NoYXJfdCBhcnJheSB3aXRob3V0
IHRlcm1pbmF0aW5nIE5VTC4KIFRFU1QoUHJpbnRBcnJheVRlc3QsIFdDaGFyQXJyYXlXaXRoTm9U
ZXJtaW5hdGluZ051bCkgewogICAvLyBBcnJheSBhIGNvbnRhaW5zICdcMCcgaW4gdGhlIG1pZGRs
ZSBhbmQgZG9lc24ndCBlbmQgd2l0aCAnXDAnLgotICBjb25zdCB3Y2hhcl90IGFbXSA9IHsgTCdI
JywgTCdcMCcsIEwnaScgfTsKKyAgY29uc3Qgd2NoYXJfdCBhW10gPSB7TCdIJywgTCdcMCcsIEwn
aSd9OwogICBFWFBFQ1RfRVEoIkxcIkhcXDBpXCIgKG5vIHRlcm1pbmF0aW5nIE5VTCkiLCBQcmlu
dEFycmF5SGVscGVyKGEpKTsKIH0KIAogLy8gd2NoYXJfdCBhcnJheSB3aXRoIHRlcm1pbmF0aW5n
IE5VTC4KLVRFU1QoUHJpbnRBcnJheVRlc3QsIFdDb25zdENoYXJBcnJheVdpdGhUZXJtaW5hdGlu
Z051bCkgeworVEVTVChQcmludEFycmF5VGVzdCwgV0NoYXJBcnJheVdpdGhUZXJtaW5hdGluZ051
bCkgewogICBjb25zdCB3Y2hhcl90IGFbXSA9IEwiXDBIaSI7CiAgIEVYUEVDVF9FUSgiTFwiXFww
SGlcIiIsIFByaW50QXJyYXlIZWxwZXIoYSkpOwogfQpAQCAtNjYxLDE2ICs4NjgsNiBAQCBURVNU
KFByaW50QXJyYXlUZXN0LCBCaWdBcnJheSkgewogCiAvLyBUZXN0cyBwcmludGluZyA6OnN0cmlu
ZyBhbmQgOjpzdGQ6OnN0cmluZy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyA6
OnN0cmluZy4KLVRFU1QoUHJpbnRTdHJpbmdUZXN0LCBTdHJpbmdJbkdsb2JhbE5hbWVzcGFjZSkg
ewotICBjb25zdCBjaGFyIHNbXSA9ICInXCI/XFxcYVxiXGZcblwwXHJcdFx2XHg3Rlx4RkYgYSI7
Ci0gIGNvbnN0IDo6c3RyaW5nIHN0cihzLCBzaXplb2YocykpOwotICBFWFBFQ1RfRVEoIlwiJ1xc
XCI/XFxcXFxcYVxcYlxcZlxcblxcMFxcclxcdFxcdlxceDdGXFx4RkYgYVxcMFwiIiwKLSAgICAg
ICAgICAgIFByaW50KHN0cikpOwotfQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1NUUklO
RwotCiAvLyA6OnN0ZDo6c3RyaW5nLgogVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0cmluZ0luU3Rk
TmFtZXNwYWNlKSB7CiAgIGNvbnN0IGNoYXIgc1tdID0gIidcIj9cXFxhXGJcZlxuXDBcclx0XHZc
eDdGXHhGRiBhIjsKQEAgLTY5MywxOSArODkwLDcgQEAgVEVTVChQcmludFN0cmluZ1Rlc3QsIFN0
cmluZ0FtYmlndW91c0hleCkgewogICBFWFBFQ1RfRVEoIlwiIVxceDUtIVwiIiwgUHJpbnQoOjpz
dGQ6OnN0cmluZygiIVx4NS0hIikpKTsKIH0KIAotLy8gVGVzdHMgcHJpbnRpbmcgOjp3c3RyaW5n
IGFuZCA6OnN0ZDo6d3N0cmluZy4KLQotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklORwotLy8g
Ojp3c3RyaW5nLgotVEVTVChQcmludFdpZGVTdHJpbmdUZXN0LCBTdHJpbmdJbkdsb2JhbE5hbWVz
cGFjZSkgewotICBjb25zdCB3Y2hhcl90IHNbXSA9IEwiJ1wiP1xcXGFcYlxmXG5cMFxyXHRcdlx4
RDNceDU3Nlx4OEQzXHhDNzREIGEiOwotICBjb25zdCA6OndzdHJpbmcgc3RyKHMsIHNpemVvZihz
KS9zaXplb2Yod2NoYXJfdCkpOwotICBFWFBFQ1RfRVEoIkxcIidcXFwiP1xcXFxcXGFcXGJcXGZc
XG5cXDBcXHJcXHRcXHYiCi0gICAgICAgICAgICAiXFx4RDNcXHg1NzZcXHg4RDNcXHhDNzREIGFc
XDBcIiIsCi0gICAgICAgICAgICBQcmludChzdHIpKTsKLX0KLSNlbmRpZiAgLy8gR1RFU1RfSEFT
X0dMT0JBTF9XU1RSSU5HCi0KKy8vIFRlc3RzIHByaW50aW5nIDo6c3RkOjp3c3RyaW5nLgogI2lm
IEdURVNUX0hBU19TVERfV1NUUklORwogLy8gOjpzdGQ6OndzdHJpbmcuCiBURVNUKFByaW50V2lk
ZVN0cmluZ1Rlc3QsIFN0cmluZ0luU3RkTmFtZXNwYWNlKSB7CkBAIC03MjcsNiArOTEyLDI2IEBA
IFRFU1QoUHJpbnRXaWRlU3RyaW5nVGVzdCwgU3RyaW5nQW1iaWd1b3VzSGV4KSB7CiB9CiAjZW5k
aWYgIC8vIEdURVNUX0hBU19TVERfV1NUUklORwogCisjaWZkZWYgX19jcHBfY2hhcjhfdAorVEVT
VChQcmludFN0cmluZ1Rlc3QsIFU4U3RyaW5nKSB7CisgIHN0ZDo6dThzdHJpbmcgc3RyID0gdTgi
SGVsbG8sIOS4lueVjCI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBWZXJpZnkgRVhQRUNU
X0VRIGNvbXBpbGVzIHdpdGggdGhpcyB0eXBlLgorICBFWFBFQ1RfRVEoInU4XCJIZWxsbywgXFx4
RTRcXHhCOFxceDk2XFx4RTdcXHg5NVxceDhDXCIiLCBQcmludChzdHIpKTsKK30KKyNlbmRpZgor
CitURVNUKFByaW50U3RyaW5nVGVzdCwgVTE2U3RyaW5nKSB7CisgIHN0ZDo6dTE2c3RyaW5nIHN0
ciA9IHUiSGVsbG8sIOS4lueVjCI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBWZXJpZnkg
RVhQRUNUX0VRIGNvbXBpbGVzIHdpdGggdGhpcyB0eXBlLgorICBFWFBFQ1RfRVEoInVcIkhlbGxv
LCBcXHg0RTE2XFx4NzU0Q1wiIiwgUHJpbnQoc3RyKSk7Cit9CisKK1RFU1QoUHJpbnRTdHJpbmdU
ZXN0LCBVMzJTdHJpbmcpIHsKKyAgc3RkOjp1MzJzdHJpbmcgc3RyID0gVSJIZWxsbywg8J+Xuu+4
jyI7CisgIEVYUEVDVF9FUShzdHIsIHN0cik7ICAvLyBWZXJpZnkgRVhQRUNUX0VRIGNvbXBpbGVz
IHdpdGggdGhpcyB0eXBlCisgIEVYUEVDVF9FUSgiVVwiSGVsbG8sIFxceDFGNUZBXFx4RkUwRlwi
IiwgUHJpbnQoc3RyKSk7Cit9CisKIC8vIFRlc3RzIHByaW50aW5nIHR5cGVzIHRoYXQgc3VwcG9y
dCBnZW5lcmljIHN0cmVhbWluZyAoaS5lLiBzdHJlYW1pbmcKIC8vIHRvIHN0ZDo6YmFzaWNfb3N0
cmVhbTxDaGFyLCBDaGFyVHJhaXRzPiBmb3IgYW55IHZhbGlkIENoYXIgYW5kCiAvLyBDaGFyVHJh
aXRzIHR5cGVzKS4KQEAgLTc4NSwyMiArOTkwLDIyIEBAIFRFU1QoUHJpbnRUeXBlV2l0aEdlbmVy
aWNTdHJlYW1pbmdUZXN0LCBUeXBlSW1wbGljaXRseUNvbnZlcnRpYmxlKSB7CiAgIEVYUEVDVF9F
USgiQWxsb3dzR2VuZXJpY1N0cmVhbWluZ0FuZEltcGxpY2l0Q29udmVyc2lvblRlbXBsYXRlIiwg
UHJpbnQoYSkpOwogfQogCi0jaWYgR1RFU1RfSEFTX0FCU0wKKyNpZiBHVEVTVF9JTlRFUk5BTF9I
QVNfU1RSSU5HX1ZJRVcKIAotLy8gVGVzdHMgcHJpbnRpbmcgOjphYnNsOjpzdHJpbmdfdmlldy4K
Ky8vIFRlc3RzIHByaW50aW5nIGludGVybmFsOjpTdHJpbmdWaWV3LgogCiBURVNUKFByaW50U3Ry
aW5nVmlld1Rlc3QsIFNpbXBsZVN0cmluZ1ZpZXcpIHsKLSAgY29uc3QgOjphYnNsOjpzdHJpbmdf
dmlldyBzcCA9ICJIZWxsbyI7CisgIGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3IHNwID0gIkhl
bGxvIjsKICAgRVhQRUNUX0VRKCJcIkhlbGxvXCIiLCBQcmludChzcCkpOwogfQogCiBURVNUKFBy
aW50U3RyaW5nVmlld1Rlc3QsIFVucHJpbnRhYmxlQ2hhcmFjdGVycykgewogICBjb25zdCBjaGFy
IHN0cltdID0gIk5VTCAoXDApIGFuZCBcclx0IjsKLSAgY29uc3QgOjphYnNsOjpzdHJpbmdfdmll
dyBzcChzdHIsIHNpemVvZihzdHIpIC0gMSk7CisgIGNvbnN0IGludGVybmFsOjpTdHJpbmdWaWV3
IHNwKHN0ciwgc2l6ZW9mKHN0cikgLSAxKTsKICAgRVhQRUNUX0VRKCJcIk5VTCAoXFwwKSBhbmQg
XFxyXFx0XCIiLCBQcmludChzcCkpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19BQlNMCisj
ZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19TVFJJTkdfVklFVwogCiAvLyBUZXN0cyBwcmlu
dGluZyBTVEwgY29udGFpbmVycy4KIApAQCAtODE2LDcgKzEwMjEsNiBAQCBURVNUKFByaW50U3Rs
Q29udGFpbmVyVGVzdCwgTm9uRW1wdHlEZXF1ZSkgewogICBFWFBFQ1RfRVEoInsgMSwgMyB9Iiwg
UHJpbnQobm9uX2VtcHR5KSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfVU5PUkRFUkVEX01BUF8KIAog
VEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIE9uZUVsZW1lbnRIYXNoTWFwKSB7CiAgIDo6c3Rk
Ojp1bm9yZGVyZWRfbWFwPGludCwgY2hhcj4gbWFwMTsKQEAgLTgzNiw5ICsxMDQwLDcgQEAgVEVT
VChQcmludFN0bENvbnRhaW5lclRlc3QsIEhhc2hNdWx0aU1hcCkgewogICAgICAgICAgICAgICAg
ICAgPDwgIiB3aGVyZSBQcmludChtYXAxKSByZXR1cm5zIFwiIiA8PCByZXN1bHQgPDwgIlwiLiI7
CiB9CiAKLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1VOT1JERVJFRF9NQVBfCiAKLSNpZiBHVEVTVF9I
QVNfVU5PUkRFUkVEX1NFVF8KIAogVEVTVChQcmludFN0bENvbnRhaW5lclRlc3QsIEhhc2hTZXQp
IHsKICAgOjpzdGQ6OnVub3JkZXJlZF9zZXQ8aW50PiBzZXQxOwpAQCAtODc1LDcgKzEwNzcsNiBA
QCBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgSGFzaE11bHRpU2V0KSB7CiAgIEVYUEVDVF9U
UlVFKHN0ZDo6ZXF1YWwoYSwgYSArIGtTaXplLCBudW1iZXJzLmJlZ2luKCkpKTsKIH0KIAotI2Vu
ZGlmICAvLyAgR1RFU1RfSEFTX1VOT1JERVJFRF9TRVRfCiAKIFRFU1QoUHJpbnRTdGxDb250YWlu
ZXJUZXN0LCBMaXN0KSB7CiAgIGNvbnN0IHN0ZDo6c3RyaW5nIGFbXSA9IHsiaGVsbG8iLCAid29y
bGQifTsKQEAgLTkxNywxNCArMTExOCwxMiBAQCBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwg
TXVsdGlTZXQpIHsKICAgRVhQRUNUX0VRKCJ7IDEsIDEsIDEsIDIsIDUgfSIsIFByaW50KHNldDEp
KTsKIH0KIAotI2lmIEdURVNUX0hBU19TVERfRk9SV0FSRF9MSVNUXwogCiBURVNUKFByaW50U3Rs
Q29udGFpbmVyVGVzdCwgU2luZ2x5TGlua2VkTGlzdCkgewogICBpbnQgYVtdID0geyA5LCAyLCA4
IH07CiAgIGNvbnN0IHN0ZDo6Zm9yd2FyZF9saXN0PGludD4gaW50cyhhLCBhICsgMyk7CiAgIEVY
UEVDVF9FUSgieyA5LCAyLCA4IH0iLCBQcmludChpbnRzKSk7CiB9Ci0jZW5kaWYgIC8vIEdURVNU
X0hBU19TVERfRk9SV0FSRF9MSVNUXwogCiBURVNUKFByaW50U3RsQ29udGFpbmVyVGVzdCwgUGFp
cikgewogICBwYWlyPGNvbnN0IGJvb2wsIGludD4gcCh0cnVlLCA1KTsKQEAgLTk5MSw2NyArMTE5
MCw2IEBAIFRFU1QoUHJpbnRTdGxDb250YWluZXJUZXN0LCBDb25zdEl0ZXJhdG9yKSB7CiAgIEVY
UEVDVF9FUSgiMS1ieXRlIG9iamVjdCA8MDA+IiwgUHJpbnQoaXQpKTsKIH0KIAotI2lmIEdURVNU
X0hBU19UUjFfVFVQTEUKLS8vIFRlc3RzIHByaW50aW5nIDo6c3RkOjp0cjE6OnR1cGxlcy4KLQot
Ly8gVHVwbGVzIG9mIHZhcmlvdXMgYXJpdGllcy4KLVRFU1QoUHJpbnRUcjFUdXBsZVRlc3QsIFZh
cmlvdXNTaXplcykgewotICA6OnN0ZDo6dHIxOjp0dXBsZTw+IHQwOwotICBFWFBFQ1RfRVEoIigp
IiwgUHJpbnQodDApKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxpbnQ+IHQxKDUpOwotICBFWFBF
Q1RfRVEoIig1KSIsIFByaW50KHQxKSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Y2hhciwgYm9v
bD4gdDIoJ2EnLCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoJ2EnICg5NywgMHg2MSksIHRydWUpIiwg
UHJpbnQodDIpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludD4gdDMoZmFs
c2UsIDIsIDMpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMykiLCBQcmludCh0MykpOwotCi0g
IDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQ+IHQ0KGZhbHNlLCAyLCAzLCA0
KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQpIiwgUHJpbnQodDQpKTsKLQotICA6OnN0
ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sPiB0NShmYWxzZSwgMiwgMywg
NCwgdHJ1ZSk7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0LCB0cnVlKSIsIFByaW50KHQ1
KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwgaW50
PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAz
LCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0KLSAgOjpzdGQ6OnRyMTo6dHVwbGU8Ym9vbCwg
aW50LCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQ+IHQ3KAotICAgICAgZmFsc2UsIDIsIDMsIDQs
IHRydWUsIDYsIDcpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNyki
LCBQcmludCh0NykpOwotCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQs
IGJvb2wsIGludCwgaW50LCBib29sPiB0OCgKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2
LCA3LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRy
dWUpIiwgUHJpbnQodDgpKTsKLQotICA6OnN0ZDo6dHIxOjp0dXBsZTxib29sLCBpbnQsIGludCwg
aW50LCBib29sLCBpbnQsIGludCwgYm9vbCwgaW50PiB0OSgKLSAgICAgIGZhbHNlLCAyLCAzLCA0
LCB0cnVlLCA2LCA3LCB0cnVlLCA5KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRy
dWUsIDYsIDcsIHRydWUsIDkpIiwgUHJpbnQodDkpKTsKLQotICBjb25zdCBjaGFyKiBjb25zdCBz
dHIgPSAiOCI7Ci0gIC8vIFZDKysgMjAxMCdzIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIG9mIEMr
KzB4IGlzIGRlZmljaWVudCwgcmVxdWlyaW5nCi0gIC8vIGFuIGV4cGxpY2l0IHR5cGUgY2FzdCBv
ZiBOVUxMIHRvIGJlIHVzZWQuCi0gIDo6c3RkOjp0cjE6OnR1cGxlPGJvb2wsIGNoYXIsIHNob3J0
LCB0ZXN0aW5nOjppbnRlcm5hbDo6SW50MzIsICAvLyBOT0xJTlQKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdGluZzo6aW50ZXJuYWw6OkludDY0LCBmbG9hdCwgZG91YmxlLCBjb25zdCBjaGFyKiwg
dm9pZCosCi0gICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nPgotICAgICAgdDEwKGZhbHNl
LCAnYScsIHN0YXRpY19jYXN0PHNob3J0PigzKSwgNCwgNSwgMS41RiwgLTIuNSwgc3RyLCAgLy8g
Tk9MSU5UCi0gICAgICAgICAgSW1wbGljaXRDYXN0Xzx2b2lkKj4oTlVMTCksICIxMCIpOwotICBF
WFBFQ1RfRVEoIihmYWxzZSwgJ2EnICg5NywgMHg2MSksIDMsIDQsIDUsIDEuNSwgLTIuNSwgIiAr
IFByaW50UG9pbnRlcihzdHIpICsKLSAgICAgICAgICAgICIgcG9pbnRpbmcgdG8gXCI4XCIsIE5V
TEwsIFwiMTBcIikiLAotICAgICAgICAgICAgUHJpbnQodDEwKSk7Ci19Ci0KLS8vIE5lc3RlZCB0
dXBsZXMuCi1URVNUKFByaW50VHIxVHVwbGVUZXN0LCBOZXN0ZWRUdXBsZSkgewotICA6OnN0ZDo6
dHIxOjp0dXBsZTwgOjpzdGQ6OnRyMTo6dHVwbGU8aW50LCBib29sPiwgY2hhcj4gbmVzdGVkKAot
ICAgICAgOjpzdGQ6OnRyMTo6bWFrZV90dXBsZSg1LCB0cnVlKSwgJ2EnKTsKLSAgRVhQRUNUX0VR
KCIoKDUsIHRydWUpLCAnYScgKDk3LCAweDYxKSkiLCBQcmludChuZXN0ZWQpKTsKLX0KLQotI2Vu
ZGlmICAvLyBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLSNpZiBHVEVTVF9IQVNfU1REX1RVUExFXwog
Ly8gVGVzdHMgcHJpbnRpbmcgOjpzdGQ6OnR1cGxlcy4KIAogLy8gVHVwbGVzIG9mIHZhcmlvdXMg
YXJpdGllcy4KQEAgLTEwNzEsMzIgKzEyMDksMTEgQEAgVEVTVChQcmludFN0ZFR1cGxlVGVzdCwg
VmFyaW91c1NpemVzKSB7CiAgIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50PiB0NChm
YWxzZSwgMiwgMywgNCk7CiAgIEVYUEVDVF9FUSgiKGZhbHNlLCAyLCAzLCA0KSIsIFByaW50KHQ0
KSk7CiAKLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGludCwgaW50LCBpbnQsIGJvb2w+IHQ1KGZhbHNl
LCAyLCAzLCA0LCB0cnVlKTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUpIiwg
UHJpbnQodDUpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwg
aW50PiB0NihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNik7Ci0gIEVYUEVDVF9FUSgiKGZhbHNlLCAy
LCAzLCA0LCB0cnVlLCA2KSIsIFByaW50KHQ2KSk7Ci0KLSAgOjpzdGQ6OnR1cGxlPGJvb2wsIGlu
dCwgaW50LCBpbnQsIGJvb2wsIGludCwgaW50PiB0NygKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0
cnVlLCA2LCA3KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcpIiwg
UHJpbnQodDcpKTsKLQotICA6OnN0ZDo6dHVwbGU8Ym9vbCwgaW50LCBpbnQsIGludCwgYm9vbCwg
aW50LCBpbnQsIGJvb2w+IHQ4KAotICAgICAgZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRy
dWUpOwotICBFWFBFQ1RfRVEoIihmYWxzZSwgMiwgMywgNCwgdHJ1ZSwgNiwgNywgdHJ1ZSkiLCBQ
cmludCh0OCkpOwotCi0gIDo6c3RkOjp0dXBsZTxib29sLCBpbnQsIGludCwgaW50LCBib29sLCBp
bnQsIGludCwgYm9vbCwgaW50PiB0OSgKLSAgICAgIGZhbHNlLCAyLCAzLCA0LCB0cnVlLCA2LCA3
LCB0cnVlLCA5KTsKLSAgRVhQRUNUX0VRKCIoZmFsc2UsIDIsIDMsIDQsIHRydWUsIDYsIDcsIHRy
dWUsIDkpIiwgUHJpbnQodDkpKTsKLQogICBjb25zdCBjaGFyKiBjb25zdCBzdHIgPSAiOCI7Ci0g
IC8vIFZDKysgMjAxMCdzIGltcGxlbWVudGF0aW9uIG9mIHR1cGxlIG9mIEMrKzB4IGlzIGRlZmlj
aWVudCwgcmVxdWlyaW5nCi0gIC8vIGFuIGV4cGxpY2l0IHR5cGUgY2FzdCBvZiBOVUxMIHRvIGJl
IHVzZWQuCi0gIDo6c3RkOjp0dXBsZTxib29sLCBjaGFyLCBzaG9ydCwgdGVzdGluZzo6aW50ZXJu
YWw6OkludDMyLCAgLy8gTk9MSU5UCi0gICAgICAgICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6
SW50NjQsIGZsb2F0LCBkb3VibGUsIGNvbnN0IGNoYXIqLCB2b2lkKiwKLSAgICAgICAgICAgICAg
IHN0ZDo6c3RyaW5nPgorICA6OnN0ZDo6dHVwbGU8Ym9vbCwgY2hhciwgc2hvcnQsIGludDMyX3Qs
IGludDY0X3QsIGZsb2F0LCBkb3VibGUsICAvLyBOT0xJTlQKKyAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqLCB2b2lkKiwgc3RkOjpzdHJpbmc+CiAgICAgICB0MTAoZmFsc2UsICdhJywgc3RhdGlj
X2Nhc3Q8c2hvcnQ+KDMpLCA0LCA1LCAxLjVGLCAtMi41LCBzdHIsICAvLyBOT0xJTlQKLSAgICAg
ICAgICBJbXBsaWNpdENhc3RfPHZvaWQqPihOVUxMKSwgIjEwIik7CisgICAgICAgICAgbnVsbHB0
ciwgIjEwIik7CiAgIEVYUEVDVF9FUSgiKGZhbHNlLCAnYScgKDk3LCAweDYxKSwgMywgNCwgNSwg
MS41LCAtMi41LCAiICsgUHJpbnRQb2ludGVyKHN0cikgKwogICAgICAgICAgICAgIiBwb2ludGlu
ZyB0byBcIjhcIiwgTlVMTCwgXCIxMFwiKSIsCiAgICAgICAgICAgICBQcmludCh0MTApKTsKQEAg
LTExMDksMTMgKzEyMjYsMjcgQEAgVEVTVChQcmludFN0ZFR1cGxlVGVzdCwgTmVzdGVkVHVwbGUp
IHsKICAgRVhQRUNUX0VRKCIoKDUsIHRydWUpLCAnYScgKDk3LCAweDYxKSkiLCBQcmludChuZXN0
ZWQpKTsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0KLSNpZiBHVEVTVF9MQU5H
X0NYWDExCiBURVNUKFByaW50TnVsbHB0clQsIEJhc2ljKSB7CiAgIEVYUEVDVF9FUSgiKG51bGxw
dHIpIiwgUHJpbnQobnVsbHB0cikpOwogfQotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCisK
K1RFU1QoUHJpbnRSZWZlcmVuY2VXcmFwcGVyLCBQcmludGFibGUpIHsKKyAgaW50IHggPSA1Owor
ICBFWFBFQ1RfRVEoIkAiICsgUHJpbnRQb2ludGVyKCZ4KSArICIgNSIsIFByaW50KHN0ZDo6cmVm
KHgpKSk7CisgIEVYUEVDVF9FUSgiQCIgKyBQcmludFBvaW50ZXIoJngpICsgIiA1IiwgUHJpbnQo
c3RkOjpjcmVmKHgpKSk7Cit9CisKK1RFU1QoUHJpbnRSZWZlcmVuY2VXcmFwcGVyLCBVbnByaW50
YWJsZSkgeworICA6OmZvbzo6VW5wcmludGFibGVJbkZvbyB1cDsKKyAgRVhQRUNUX0VRKAorICAg
ICAgIkAiICsgUHJpbnRQb2ludGVyKCZ1cCkgKworICAgICAgICAgICIgMTYtYnl0ZSBvYmplY3Qg
PEVGLTEyIDAwLTAwIDM0LUFCIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwPiIsCisgICAg
ICBQcmludChzdGQ6OnJlZih1cCkpKTsKKyAgRVhQRUNUX0VRKAorICAgICAgIkAiICsgUHJpbnRQ
b2ludGVyKCZ1cCkgKworICAgICAgICAgICIgMTYtYnl0ZSBvYmplY3QgPEVGLTEyIDAwLTAwIDM0
LUFCIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwIDAwLTAwPiIsCisgICAgICBQcmludChzdGQ6OmNy
ZWYodXApKSk7Cit9CiAKIC8vIFRlc3RzIHByaW50aW5nIHVzZXItZGVmaW5lZCB1bnByaW50YWJs
ZSB0eXBlcy4KIApAQCAtMTE2NCw2ICsxMjk1LDIwIEBAIFRFU1QoUHJpbnRTdHJlYW1hYmxlVHlw
ZVRlc3QsIFRlbXBsYXRlVHlwZUluVXNlck5hbWVzcGFjZSkgewogICAgICAgICAgICAgUHJpbnQo
Ojpmb286OlN0cmVhbWFibGVUZW1wbGF0ZUluRm9vPGludD4oKSkpOwogfQogCitURVNUKFByaW50
U3RyZWFtYWJsZVR5cGVUZXN0LCBUeXBlSW5Vc2VyTmFtZXNwYWNlV2l0aFRlbXBsYXRlZFN0cmVh
bU9wZXJhdG9yKSB7CisgIEVYUEVDVF9FUSgiVGVtcGxhdGVkU3RyZWFtYWJsZUluRm9vIiwKKyAg
ICAgICAgICAgIFByaW50KDo6Zm9vOjpUZW1wbGF0ZWRTdHJlYW1hYmxlSW5Gb28oKSkpOworfQor
CitURVNUKFByaW50U3RyZWFtYWJsZVR5cGVUZXN0LCBTdWJjbGFzc1VzZXNTdXBlcmNsYXNzU3Ry
ZWFtT3BlcmF0b3IpIHsKKyAgUGFyZW50Q2xhc3MgcGFyZW50OworICBDaGlsZENsYXNzV2l0aFN0
cmVhbU9wZXJhdG9yIGNoaWxkX3N0cmVhbTsKKyAgQ2hpbGRDbGFzc1dpdGhvdXRTdHJlYW1PcGVy
YXRvciBjaGlsZF9ub19zdHJlYW07CisgIEVYUEVDVF9FUSgiUGFyZW50Q2xhc3MiLCBQcmludChw
YXJlbnQpKTsKKyAgRVhQRUNUX0VRKCJDaGlsZENsYXNzV2l0aFN0cmVhbU9wZXJhdG9yIiwgUHJp
bnQoY2hpbGRfc3RyZWFtKSk7CisgIEVYUEVDVF9FUSgiUGFyZW50Q2xhc3MiLCBQcmludChjaGls
ZF9ub19zdHJlYW0pKTsKK30KKwogLy8gVGVzdHMgcHJpbnRpbmcgYSB1c2VyLWRlZmluZWQgcmVj
dXJzaXZlIGNvbnRhaW5lciB0eXBlIHRoYXQgaGFzIGEgPDwKIC8vIG9wZXJhdG9yLgogVEVTVChQ
cmludFN0cmVhbWFibGVUeXBlVGVzdCwgUGF0aExpa2VJblVzZXJOYW1lc3BhY2UpIHsKQEAgLTEz
MjEsMjEgKzE0NjYsNiBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRl
c3QsIFdvcmtzRm9yV0NoYXJQb2ludGVyVnNQb2ludGVyKSB7CiAvLyBUZXN0cyBmb3JtYXR0aW5n
IGEgY2hhciBwb2ludGVyIHdoZW4gaXQncyBjb21wYXJlZCB0byBhIHN0cmluZyBvYmplY3QuCiAv
LyBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcmludCB0aGUgY2hhciBwb2ludGVyIGFzIGEgQyBz
dHJpbmcuCiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NUUklORwotLy8gY2hhciBwb2ludGVyIHZz
IDo6c3RyaW5nCi1URVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdv
cmtzRm9yQ2hhclBvaW50ZXJWc1N0cmluZykgewotICBjb25zdCBjaGFyKiBzID0gImhlbGxvIFwi
d29ybGQiOwotICBFWFBFQ1RfU1RSRVEoIlwiaGVsbG8gXFxcIndvcmxkXCIiLCAgLy8gVGhlIHN0
cmluZyBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgRm9ybWF0Rm9y
Q29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHMsIDo6c3RyaW5nKCkpLmNfc3RyKCkpOwotCi0gIC8v
IGNoYXIqCi0gIGNoYXIgc3RyW10gPSAiaGlcMSI7Ci0gIGNoYXIqIHAgPSBzdHI7Ci0gIEVYUEVD
VF9TVFJFUSgiXCJoaVxceDFcIiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVz
Y2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uo
cCwgOjpzdHJpbmcoKSkuY19zdHIoKSk7Ci19Ci0jZW5kaWYKLQogLy8gY2hhciBwb2ludGVyIHZz
IHN0ZDo6c3RyaW5nCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3Qs
IFdvcmtzRm9yQ2hhclBvaW50ZXJWc1N0ZFN0cmluZykgewogICBjb25zdCBjaGFyKiBzID0gImhl
bGxvIFwid29ybGQiOwpAQCAtMTM0OSwyMSArMTQ3OSw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyUG9pbnRlclZzU3RkU3RyaW5nKSB7
CiAgICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocCwgOjpz
dGQ6OnN0cmluZygpKS5jX3N0cigpKTsKIH0KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfV1NUUklO
RwotLy8gd2NoYXJfdCBwb2ludGVyIHZzIDo6d3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJp
c29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzV1N0cmluZykgewot
ICBjb25zdCB3Y2hhcl90KiBzID0gTCJoaSBcIndvcmxkIjsKLSAgRVhQRUNUX1NUUkVRKCJMXCJo
aSBcXFwid29ybGRcIiIsICAvLyBUaGUgc3RyaW5nIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQu
Ci0gICAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2UocywgOjp3
c3RyaW5nKCkpLmNfc3RyKCkpOwotCi0gIC8vIHdjaGFyX3QqCi0gIHdjaGFyX3Qgc3RyW10gPSBM
ImhpXDEiOwotICB3Y2hhcl90KiBwID0gc3RyOwotICBFWFBFQ1RfU1RSRVEoIkxcImhpXFx4MVwi
IiwgIC8vIFRoZSBzdHJpbmcgY29udGVudCBzaG91bGQgYmUgZXNjYXBlZC4KLSAgICAgICAgICAg
ICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShwLCA6OndzdHJpbmcoKSkuY19z
dHIoKSk7Ci19Ci0jZW5kaWYKLQogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogLy8gd2NoYXJf
dCBwb2ludGVyIHZzIHN0ZDo6d3N0cmluZwogVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVy
ZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzU3RkV1N0cmluZykgewpAQCAtMTM4
Niw3ICsxNTAxLDcgQEAgVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0
LCBXb3Jrc0ZvcldDaGFyUG9pbnRlclZzU3RkV1N0cmluZykgewogLy8gY2hhciBhcnJheSB2cyBw
b2ludGVyCiBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtz
Rm9yQ2hhckFycmF5VnNQb2ludGVyKSB7CiAgIGNoYXIgc3RyW10gPSAiaGkgXCJ3b3JsZFwiIjsK
LSAgY2hhciogcCA9IE5VTEw7CisgIGNoYXIqIHAgPSBudWxscHRyOwogICBFWFBFQ1RfRVEoUHJp
bnRQb2ludGVyKHN0ciksCiAgICAgICAgICAgICBGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1l
c3NhZ2Uoc3RyLCBwKS5jX3N0cigpKTsKIH0KQEAgLTE0MDEsNyArMTUxNiw3IEBAIFRFU1QoRm9y
bWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JDaGFyQXJyYXlWc0No
YXJBcnJheSkgewogLy8gd2NoYXJfdCBhcnJheSB2cyBwb2ludGVyCiBURVNUKEZvcm1hdEZvckNv
bXBhcmlzb25GYWlsdXJlTWVzc2FnZVRlc3QsIFdvcmtzRm9yV0NoYXJBcnJheVZzUG9pbnRlcikg
ewogICB3Y2hhcl90IHN0cltdID0gTCJoaSBcIndvcmxkXCIiOwotICB3Y2hhcl90KiBwID0gTlVM
TDsKKyAgd2NoYXJfdCogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9FUShQcmludFBvaW50ZXIoc3Ry
KSwKICAgICAgICAgICAgIEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIHAp
LmNfc3RyKCkpOwogfQpAQCAtMTQxNiwxNiArMTUzMSw2IEBAIFRFU1QoRm9ybWF0Rm9yQ29tcGFy
aXNvbkZhaWx1cmVNZXNzYWdlVGVzdCwgV29ya3NGb3JXQ2hhckFycmF5VnNXQ2hhckFycmF5KSB7
CiAvLyBUZXN0cyBmb3JtYXR0aW5nIGEgY2hhciBhcnJheSB3aGVuIGl0J3MgY29tcGFyZWQgd2l0
aCBhIHN0cmluZyBvYmplY3QuCiAvLyBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcmludCB0aGUg
YXJyYXkgYXMgYSBDIHN0cmluZy4KIAotI2lmIEdURVNUX0hBU19HTE9CQUxfU1RSSU5HCi0vLyBj
aGFyIGFycmF5IHZzIHN0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3Nh
Z2VUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVZzU3RyaW5nKSB7Ci0gIGNvbnN0IGNoYXIgc3RyW10g
PSAiaGkgXCJ3XDBybGRcIiI7Ci0gIEVYUEVDVF9TVFJFUSgiXCJoaSBcXFwid1wiIiwgIC8vIFRo
ZSBjb250ZW50IHNob3VsZCBiZSBlc2NhcGVkLgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBFbWJlZGRlZCBOVUwgdGVybWluYXRlcyB0aGUgc3RyaW5nLgotICAgICAgICAgICAg
ICAgRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlKHN0ciwgOjpzdHJpbmcoKSkuY19z
dHIoKSk7Ci19Ci0jZW5kaWYKLQogLy8gY2hhciBhcnJheSB2cyBzdGQ6OnN0cmluZwogVEVTVChG
b3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheVZz
U3RkU3RyaW5nKSB7CiAgIGNvbnN0IGNoYXIgc3RyW10gPSAiaGkgXCJ3b3JsZFwiIjsKQEAgLTE0
MzMsMTUgKzE1MzgsNiBAQCBURVNUKEZvcm1hdEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZVRl
c3QsIFdvcmtzRm9yQ2hhckFycmF5VnNTdGRTdHJpbmcpIHsKICAgICAgICAgICAgICAgIEZvcm1h
dEZvckNvbXBhcmlzb25GYWlsdXJlTWVzc2FnZShzdHIsIDo6c3RkOjpzdHJpbmcoKSkuY19zdHIo
KSk7CiB9CiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLS8vIHdjaGFyX3QgYXJyYXkg
dnMgd3N0cmluZwotVEVTVChGb3JtYXRGb3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2VUZXN0LCBX
b3Jrc0ZvcldDaGFyQXJyYXlWc1dTdHJpbmcpIHsKLSAgY29uc3Qgd2NoYXJfdCBzdHJbXSA9IEwi
aGkgXCJ3b3JsZFwiIjsKLSAgRVhQRUNUX1NUUkVRKCJMXCJoaSBcXFwid29ybGRcXFwiXCIiLCAg
Ly8gVGhlIGNvbnRlbnQgc2hvdWxkIGJlIGVzY2FwZWQuCi0gICAgICAgICAgICAgICBGb3JtYXRG
b3JDb21wYXJpc29uRmFpbHVyZU1lc3NhZ2Uoc3RyLCA6OndzdHJpbmcoKSkuY19zdHIoKSk7Ci19
Ci0jZW5kaWYKLQogI2lmIEdURVNUX0hBU19TVERfV1NUUklORwogLy8gd2NoYXJfdCBhcnJheSB2
cyBzdGQ6OndzdHJpbmcKIFRFU1QoRm9ybWF0Rm9yQ29tcGFyaXNvbkZhaWx1cmVNZXNzYWdlVGVz
dCwgV29ya3NGb3JXQ2hhckFycmF5VnNTdGRXU3RyaW5nKSB7CkBAIC0xNTE2LDYgKzE2MTIsNjEg
QEAgVEVTVChQcmludFRvU3RyaW5nVGVzdCwgV29ya3NGb3JDaGFyQXJyYXlXaXRoRW1iZWRkZWRO
dWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuICAgIEFzIFRleHQ6IFwiRnJvbSDD
pCDigJQg4bqRXCIiKTsKIH0KIAorI2lmIEdURVNUX0hBU19SVFRJCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KK2NsYXNzIFByaW50VG9TdHJpbmdUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewor
IHB1YmxpYzoKKyAgdXNpbmcgVGVzdFR5cGUgPSBUOworfTsKKworc3RydWN0IFByaW50QmFzZSB7
CisgIHZpcnR1YWwgflByaW50QmFzZSgpID0gZGVmYXVsdDsKK307CitzdHJ1Y3QgUHJpbnREZXJp
dmVkIDogUHJpbnRCYXNlIHt9OworCit1c2luZyBQcmludFRvU3RyaW5nVGVzdFR5cGVzID0KKyAg
ICB0ZXN0aW5nOjpUeXBlczx2b2lkLCBpbnQsIGNvbnN0IHZvbGF0aWxlIGludCosIFByaW50QmFz
ZSwgUHJpbnREZXJpdmVkPjsKK1RZUEVEX1RFU1RfU1VJVEUoUHJpbnRUb1N0cmluZ1Rlc3QsIFBy
aW50VG9TdHJpbmdUZXN0VHlwZXMpOworCisvLyBSZXR1cm5zIGB0cnVlYCBpZiBgaGF5c3RhY2tg
IGNvbnRhaW5zIGBuZWVkbGVgLgorLy8KKy8vIEZJWE1FOiBSZXBsYWNlIHdpdGggYEVYUEVDVF9U
SEFUKGhheXN0YWNrLCBIYXNTdWJzdHIobmVlZGxlKSlgIG9uY2UKKy8vIEdvb2dsZVRlc3Qgc3Rh
cnRzIGRlcGVuZGluZyBvbiBHb29nbGVNb2NrLgorYm9vbCBDb250YWluc1N1YnN0cihjb25zdCBz
dGQ6OnN0cmluZyYgaGF5c3RhY2ssIGNvbnN0IHN0ZDo6c3RyaW5nJiBuZWVkbGUpIHsKKyAgcmV0
dXJuIGhheXN0YWNrLmZpbmQobmVlZGxlKSAhPSBzdGQ6OnN0cmluZzo6bnBvczsKK30KKworVFlQ
RURfVEVTVChQcmludFRvU3RyaW5nVGVzdCwgSW5jbHVkZXNOYW1lV2l0aFR5cGVJbmZvQW5kVHlw
ZUluZGV4KSB7CisgIGNvbnN0IDo6c3RkOjp0eXBlX2luZm8mIGluZm8gPSB0eXBlaWQodHlwZW5h
bWUgVGVzdEZpeHR1cmU6OlRlc3RUeXBlKTsKKyAgU0NPUEVEX1RSQUNFKGluZm8ubmFtZSgpKTsK
KyAgRVhQRUNUX1RSVUUoQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmluZyhpbmZvKSwgaW5mby5u
YW1lKCkpKTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICBDb250YWluc1N1YnN0cihQcmludFRvU3Ry
aW5nKDo6c3RkOjp0eXBlX2luZGV4e2luZm99KSwgaW5mby5uYW1lKCkpKTsKK30KKworVEVTVChQ
cmludFRvU3RyaW5nVGVzdCwgSW5jbHVkZXNOYW1lV2l0aFR5cGVJbmZvQW5kVHlwZUluZGV4Vmlh
QmFzZVJlZikgeworICBQcmludERlcml2ZWQgZGVyaXZlZDsKKyAgUHJpbnRCYXNlJiBiYXNlID0g
ZGVyaXZlZDsKKworICB7CisgICAgY29uc3QgOjpzdGQ6OnR5cGVfaW5mbyYgZGVyaXZlZF9pbmZv
ID0gdHlwZWlkKGRlcml2ZWQpOworICAgIFNDT1BFRF9UUkFDRShkZXJpdmVkX2luZm8ubmFtZSgp
KTsKKyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmlu
ZyhkZXJpdmVkX2luZm8pLCBkZXJpdmVkX2luZm8ubmFtZSgpKSk7CisgICAgRVhQRUNUX1RSVUUo
Q29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmluZyg6OnN0ZDo6dHlwZV9pbmRleHtkZXJpdmVkX2lu
Zm99KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJpdmVkX2luZm8ubmFtZSgp
KSk7CisgIH0KKyAgeworICAgIGNvbnN0IDo6c3RkOjp0eXBlX2luZm8mIGJhc2VfcmVmX2luZm8g
PSB0eXBlaWQoYmFzZSk7CisgICAgU0NPUEVEX1RSQUNFKGJhc2VfcmVmX2luZm8ubmFtZSgpKTsK
KyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgQ29udGFpbnNTdWJzdHIoUHJpbnRUb1N0cmluZyhi
YXNlX3JlZl9pbmZvKSwgYmFzZV9yZWZfaW5mby5uYW1lKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShD
b250YWluc1N1YnN0cihQcmludFRvU3RyaW5nKDo6c3RkOjp0eXBlX2luZGV4e2Jhc2VfcmVmX2lu
Zm99KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX3JlZl9pbmZvLm5hbWUo
KSkpOworICB9Cit9CisjZW5kaWYgIC8vIEdURVNUX0hBU19SVFRJCisKIFRFU1QoSXNWYWxpZFVU
RjhUZXN0LCBJbGxGb3JtZWRVVEY4KSB7CiAgIC8vIFRoZSBmb2xsb3dpbmcgdGVzdCBzdHJpbmdz
IGFyZSBpbGwtZm9ybWVkIFVURi04IGFuZCBhcmUgcHJpbnRlZAogICAvLyBhcyBoZXggb25seSAo
b3IgQVNDSUksIGluIGNhc2Ugb2YgQVNDSUkgYnl0ZXMpIGJlY2F1c2UgSXNWYWxpZFVURjgoKSBp
cwpAQCAtMTYwMiw3ICsxNzUzLDcgQEAgVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VGVzdCwgV29y
a3NGb3JDU3RyaW5nKSB7CiAgIFVuaXZlcnNhbFRlcnNlUHJpbnQoczIsICZzczIpOwogICBFWFBF
Q1RfRVEoIlwiYWJjXCIiLCBzczIuc3RyKCkpOwogCi0gIGNvbnN0IGNoYXIqIHMzID0gTlVMTDsK
KyAgY29uc3QgY2hhciogczMgPSBudWxscHRyOwogICA6OnN0ZDo6c3RyaW5nc3RyZWFtIHNzMzsK
ICAgVW5pdmVyc2FsVGVyc2VQcmludChzMywgJnNzMyk7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIHNz
My5zdHIoKSk7CkBAIC0xNjIxLDYgKzE3NzIsMTMgQEAgVEVTVChVbml2ZXJzYWxQcmludFRlc3Qs
IFdvcmtzRm9yUmVmZXJlbmNlKSB7CiAgIEVYUEVDVF9FUSgiMTIzIiwgc3Muc3RyKCkpOwogfQog
CitURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JQYWlyV2l0aENvbnN0KSB7CisgIHN0
ZDo6cGFpcjxjb25zdCBXcmFwcGVyPHN0ZDo6c3RyaW5nPiwgaW50PiBwKFdyYXBwZXI8c3RkOjpz
dHJpbmc+KCJhYmMiKSwgMSk7CisgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgIFVuaXZlcnNh
bFByaW50KHAsICZzcyk7CisgIEVYUEVDVF9FUSgiKFdyYXBwZXIoXCJhYmNcIiksIDEpIiwgc3Mu
c3RyKCkpOworfQorCiBURVNUKFVuaXZlcnNhbFByaW50VGVzdCwgV29ya3NGb3JDU3RyaW5nKSB7
CiAgIGNvbnN0IGNoYXIqIHMxID0gImFiYyI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3MxOwpA
QCAtMTYzMiw3ICsxNzkwLDcgQEAgVEVTVChVbml2ZXJzYWxQcmludFRlc3QsIFdvcmtzRm9yQ1N0
cmluZykgewogICBVbml2ZXJzYWxQcmludChzMiwgJnNzMik7CiAgIEVYUEVDVF9FUShQcmludFBv
aW50ZXIoczIpICsgIiBwb2ludGluZyB0byBcImFiY1wiIiwgc3RkOjpzdHJpbmcoc3MyLnN0cigp
KSk7CiAKLSAgY29uc3QgY2hhciogczMgPSBOVUxMOworICBjb25zdCBjaGFyKiBzMyA9IG51bGxw
dHI7CiAgIDo6c3RkOjpzdHJpbmdzdHJlYW0gc3MzOwogICBVbml2ZXJzYWxQcmludChzMywgJnNz
Myk7CiAgIEVYUEVDVF9FUSgiTlVMTCIsIHNzMy5zdHIoKSk7CkBAIC0xNjUwLDQyICsxODA4LDYz
IEBAIFRFU1QoVW5pdmVyc2FsUHJpbnRUZXN0LCBXb3Jrc0ZvckNoYXJBcnJheSkgewogICBFWFBF
Q1RfRVEoIlwiXFxcIkxpbmVcXDAgMVxcXCJcXG5MaW5lIDJcIiIsIHNzMi5zdHIoKSk7CiB9CiAK
LSNpZiBHVEVTVF9IQVNfVFIxX1RVUExFCi0KLVRFU1QoVW5pdmVyc2FsVGVyc2VQcmludFR1cGxl
RmllbGRzVG9TdHJpbmdzVGVzdFdpdGhUcjEsIFByaW50c0VtcHR5VHVwbGUpIHsKLSAgU3RyaW5n
cyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3MoCi0gICAg
ICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKCkpOwotICBFWFBFQ1RfRVEoMHUsIHJlc3VsdC5zaXpl
KCkpOwotfQotCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rl
c3RXaXRoVHIxLCBQcmludHNPbmVUdXBsZSkgewotICBTdHJpbmdzIHJlc3VsdCA9IFVuaXZlcnNh
bFRlcnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5ncygKLSAgICAgIDo6c3RkOjp0cjE6Om1ha2Vf
dHVwbGUoMSkpOwotICBBU1NFUlRfRVEoMXUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBFQ1RfRVEo
IjEiLCByZXN1bHRbMF0pOwotfQorVEVTVChVbml2ZXJzYWxQcmludFRlc3QsIEluY29tcGxldGVU
eXBlKSB7CisgIHN0cnVjdCBJbmNvbXBsZXRlOworICBjaGFyIHNvbWVfb2JqZWN0ID0gMDsKKyAg
RVhQRUNUX0VRKCIoaW5jb21wbGV0ZSB0eXBlKSIsCisgICAgICAgICAgICBQcmludFRvU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8SW5jb21wbGV0ZSY+KHNvbWVfb2JqZWN0KSkpOworfQorCitURVNU
KFVuaXZlcnNhbFByaW50VGVzdCwgU21hcnRQb2ludGVycykgeworICBFWFBFQ1RfRVEoIihudWxs
cHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPGludD4oKSkpOworICBzdGQ6OnVu
aXF1ZV9wdHI8aW50PiBwKG5ldyBpbnQoMTcpKTsKKyAgRVhQRUNUX0VRKCIocHRyID0gIiArIFBy
aW50UG9pbnRlcihwLmdldCgpKSArICIsIHZhbHVlID0gMTcpIiwKKyAgICAgICAgICAgIFByaW50
VG9TdHJpbmcocCkpOworICBzdGQ6OnVuaXF1ZV9wdHI8aW50W10+IHAyKG5ldyBpbnRbMl0pOwor
ICBFWFBFQ1RfRVEoIigiICsgUHJpbnRQb2ludGVyKHAyLmdldCgpKSArICIpIiwgUHJpbnRUb1N0
cmluZyhwMikpOworCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6
OnNoYXJlZF9wdHI8aW50PigpKSk7CisgIHN0ZDo6c2hhcmVkX3B0cjxpbnQ+IHAzKG5ldyBpbnQo
MTk3OSkpOworICBFWFBFQ1RfRVEoIihwdHIgPSAiICsgUHJpbnRQb2ludGVyKHAzLmdldCgpKSAr
ICIsIHZhbHVlID0gMTk3OSkiLAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhwMykpOworI2lm
IF9fY3BwX2xpYl9zaGFyZWRfcHRyX2FycmF5cyA+PSAyMDE2MTFMCisgIHN0ZDo6c2hhcmVkX3B0
cjxpbnRbXT4gcDQobmV3IGludFsyXSk7CisgIEVYUEVDVF9FUSgiKCIgKyBQcmludFBvaW50ZXIo
cDQuZ2V0KCkpICsgIikiLCBQcmludFRvU3RyaW5nKHA0KSk7CisjZW5kaWYKIAotVEVTVChVbml2
ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFRyMSwgUHJpbnRzVHdv
VHVwbGUpIHsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVs
ZHNUb1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjptYWtlX3R1cGxlKDEsICdhJykpOwotICBB
U1NFUlRfRVEoMnUsIHJlc3VsdC5zaXplKCkpOwotICBFWFBFQ1RfRVEoIjEiLCByZXN1bHRbMF0p
OwotICBFWFBFQ1RfRVEoIidhJyAoOTcsIDB4NjEpIiwgcmVzdWx0WzFdKTsKLX0KKyAgLy8gbW9k
aWZpZXJzCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1
ZV9wdHI8aW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhz
dGQ6OnVuaXF1ZV9wdHI8Y29uc3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwg
UHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUgaW50PigpKSk7CisgIEVYUEVD
VF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8dm9sYXRpbGUg
Y29uc3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhz
dGQ6OnVuaXF1ZV9wdHI8aW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0cikiLCBQcmlu
dFRvU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBpbnRbXT4oKSkpOworICBFWFBFQ1RfRVEo
IihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjp1bmlxdWVfcHRyPHZvbGF0aWxlIGludFtd
PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJp
bmcoc3RkOjp1bmlxdWVfcHRyPHZvbGF0aWxlIGNvbnN0IGludFtdPigpKSk7CisgIEVYUEVDVF9F
USgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8aW50PigpKSk7Cisg
IEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8Y29u
c3QgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6
OnNoYXJlZF9wdHI8dm9sYXRpbGUgaW50PigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwg
UHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRpbGUgY29uc3QgaW50PigpKSk7Cisj
aWYgX19jcHBfbGliX3NoYXJlZF9wdHJfYXJyYXlzID49IDIwMTYxMUwKKyAgRVhQRUNUX0VRKCIo
bnVsbHB0cikiLCBQcmludFRvU3RyaW5nKHN0ZDo6c2hhcmVkX3B0cjxpbnRbXT4oKSkpOworICBF
WFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRfcHRyPGNvbnN0
IGludFtdPigpKSk7CisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6
OnNoYXJlZF9wdHI8dm9sYXRpbGUgaW50W10+KCkpKTsKKyAgRVhQRUNUX0VRKCIobnVsbHB0ciki
LAorICAgICAgICAgICAgUHJpbnRUb1N0cmluZyhzdGQ6OnNoYXJlZF9wdHI8dm9sYXRpbGUgY29u
c3QgaW50W10+KCkpKTsKKyNlbmRpZgogCi1URVNUKFVuaXZlcnNhbFRlcnNlUHJpbnRUdXBsZUZp
ZWxkc1RvU3RyaW5nc1Rlc3RXaXRoVHIxLCBQcmludHNUZXJzZWx5KSB7Ci0gIGNvbnN0IGludCBu
ID0gMTsKLSAgU3RyaW5ncyByZXN1bHQgPSBVbml2ZXJzYWxUZXJzZVByaW50VHVwbGVGaWVsZHNU
b1N0cmluZ3MoCi0gICAgICA6OnN0ZDo6dHIxOjp0dXBsZTxjb25zdCBpbnQmLCBjb25zdCBjaGFy
Kj4obiwgImEiKSk7Ci0gIEFTU0VSVF9FUSgydSwgcmVzdWx0LnNpemUoKSk7Ci0gIEVYUEVDVF9F
USgiMSIsIHJlc3VsdFswXSk7Ci0gIEVYUEVDVF9FUSgiXCJhXCIiLCByZXN1bHRbMV0pOworICAv
LyB2b2lkCisgIEVYUEVDVF9FUSgiKG51bGxwdHIpIiwgUHJpbnRUb1N0cmluZyhzdGQ6OnVuaXF1
ZV9wdHI8dm9pZCwgdm9pZCAoKikodm9pZCopPigKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVsbHB0ciwgbnVsbHB0cikpKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9pbnRlcihw
LmdldCgpKSArICIpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcoCisgICAgICAgICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPHZvaWQsIHZvaWQgKCopKHZvaWQqKT4ocC5nZXQoKSwgW10odm9p
ZCopIHt9KSkpOworICBFWFBFQ1RfRVEoIihudWxscHRyKSIsIFByaW50VG9TdHJpbmcoc3RkOjpz
aGFyZWRfcHRyPHZvaWQ+KCkpKTsKKyAgRVhQRUNUX0VRKCIoIiArIFByaW50UG9pbnRlcihwLmdl
dCgpKSArICIpIiwKKyAgICAgICAgICAgIFByaW50VG9TdHJpbmcoc3RkOjpzaGFyZWRfcHRyPHZv
aWQ+KHAuZ2V0KCksIFtdKHZvaWQqKSB7fSkpKTsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNf
VFIxX1RVUExFCi0KLSNpZiBHVEVTVF9IQVNfU1REX1RVUExFXwotCiBURVNUKFVuaXZlcnNhbFRl
cnNlUHJpbnRUdXBsZUZpZWxkc1RvU3RyaW5nc1Rlc3RXaXRoU3RkLCBQcmludHNFbXB0eVR1cGxl
KSB7CiAgIFN0cmluZ3MgcmVzdWx0ID0gVW5pdmVyc2FsVGVyc2VQcmludFR1cGxlRmllbGRzVG9T
dHJpbmdzKDo6c3RkOjptYWtlX3R1cGxlKCkpOwogICBFWFBFQ1RfRVEoMHUsIHJlc3VsdC5zaXpl
KCkpOwpAQCAtMTcxNSwzNCArMTg5NCwxMjQgQEAgVEVTVChVbml2ZXJzYWxUZXJzZVByaW50VHVw
bGVGaWVsZHNUb1N0cmluZ3NUZXN0V2l0aFN0ZCwgUHJpbnRzVGVyc2VseSkgewogICBFWFBFQ1Rf
RVEoIlwiYVwiIiwgcmVzdWx0WzFdKTsKIH0KIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfU1REX1RV
UExFXworI2lmIEdURVNUX0lOVEVSTkFMX0hBU19BTlkKK2NsYXNzIFByaW50QW55VGVzdCA6IHB1
YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworIHByb3RlY3RlZDoKKyAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBFeHBlY3RlZFR5cGVOYW1lKCkgeworI2lmIEdURVNU
X0hBU19SVFRJCisgICAgcmV0dXJuIGludGVybmFsOjpHZXRUeXBlTmFtZTxUPigpOworI2Vsc2UK
KyAgICByZXR1cm4gIjx1bmtub3duX3R5cGU+IjsKKyNlbmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkK
KyAgfQorfTsKKworVEVTVF9GKFByaW50QW55VGVzdCwgRW1wdHkpIHsKKyAgaW50ZXJuYWw6OkFu
eSBhbnk7CisgIEVYUEVDVF9FUSgibm8gdmFsdWUiLCBQcmludFRvU3RyaW5nKGFueSkpOworfQor
CitURVNUX0YoUHJpbnRBbnlUZXN0LCBOb25FbXB0eSkgeworICBpbnRlcm5hbDo6QW55IGFueTsK
KyAgY29uc3RleHByIGludCB2YWwxID0gMTA7CisgIGNvbnN0IHN0ZDo6c3RyaW5nIHZhbDIgPSAi
Y29udGVudCI7CisKKyAgYW55ID0gdmFsMTsKKyAgRVhQRUNUX0VRKCJ2YWx1ZSBvZiB0eXBlICIg
KyBFeHBlY3RlZFR5cGVOYW1lPGludD4oKSwgUHJpbnRUb1N0cmluZyhhbnkpKTsKIAotI2lmIEdU
RVNUX0hBU19BQlNMCisgIGFueSA9IHZhbDI7CisgIEVYUEVDVF9FUSgidmFsdWUgb2YgdHlwZSAi
ICsgRXhwZWN0ZWRUeXBlTmFtZTxzdGQ6OnN0cmluZz4oKSwKKyAgICAgICAgICAgIFByaW50VG9T
dHJpbmcoYW55KSk7Cit9CisjZW5kaWYgIC8vIEdURVNUX0lOVEVSTkFMX0hBU19BTlkKIAorI2lm
IEdURVNUX0lOVEVSTkFMX0hBU19PUFRJT05BTAogVEVTVChQcmludE9wdGlvbmFsVGVzdCwgQmFz
aWMpIHsKLSAgYWJzbDo6b3B0aW9uYWw8aW50PiB2YWx1ZTsKKyAgaW50ZXJuYWw6Ok9wdGlvbmFs
PGludD4gdmFsdWU7CiAgIEVYUEVDVF9FUSgiKG51bGxvcHQpIiwgUHJpbnRUb1N0cmluZyh2YWx1
ZSkpOwogICB2YWx1ZSA9IHs3fTsKICAgRVhQRUNUX0VRKCIoNykiLCBQcmludFRvU3RyaW5nKHZh
bHVlKSk7Ci0gIEVYUEVDVF9FUSgiKDEuMSkiLCBQcmludFRvU3RyaW5nKGFic2w6Om9wdGlvbmFs
PGRvdWJsZT57MS4xfSkpOwotICBFWFBFQ1RfRVEoIihcIkFcIikiLCBQcmludFRvU3RyaW5nKGFi
c2w6Om9wdGlvbmFsPHN0ZDo6c3RyaW5nPnsiQSJ9KSk7CisgIEVYUEVDVF9FUSgiKDEuMSkiLCBQ
cmludFRvU3RyaW5nKGludGVybmFsOjpPcHRpb25hbDxkb3VibGU+ezEuMX0pKTsKKyAgRVhQRUNU
X0VRKCIoXCJBXCIpIiwgUHJpbnRUb1N0cmluZyhpbnRlcm5hbDo6T3B0aW9uYWw8c3RkOjpzdHJp
bmc+eyJBIn0pKTsKIH0KKyNlbmRpZiAgLy8gR1RFU1RfSU5URVJOQUxfSEFTX09QVElPTkFMCiAK
KyNpZiBHVEVTVF9JTlRFUk5BTF9IQVNfVkFSSUFOVAogc3RydWN0IE5vblByaW50YWJsZSB7CiAg
IHVuc2lnbmVkIGNoYXIgY29udGVudHMgPSAxNzsKIH07CiAKIFRFU1QoUHJpbnRPbmVvZlRlc3Qs
IEJhc2ljKSB7Ci0gIHVzaW5nIFR5cGUgPSBhYnNsOjp2YXJpYW50PGludCwgU3RyZWFtYWJsZUlu
R2xvYmFsLCBOb25QcmludGFibGU+OwotICBFWFBFQ1RfRVEoIignaW50JyB3aXRoIHZhbHVlIDcp
IiwgUHJpbnRUb1N0cmluZyhUeXBlKDcpKSk7Ci0gIEVYUEVDVF9FUSgiKCdTdHJlYW1hYmxlSW5H
bG9iYWwnIHdpdGggdmFsdWUgU3RyZWFtYWJsZUluR2xvYmFsKSIsCisgIHVzaW5nIFR5cGUgPSBp
bnRlcm5hbDo6VmFyaWFudDxpbnQsIFN0cmVhbWFibGVJbkdsb2JhbCwgTm9uUHJpbnRhYmxlPjsK
KyAgRVhQRUNUX0VRKCIoJ2ludChpbmRleCA9IDApJyB3aXRoIHZhbHVlIDcpIiwgUHJpbnRUb1N0
cmluZyhUeXBlKDcpKSk7CisgIEVYUEVDVF9FUSgiKCdTdHJlYW1hYmxlSW5HbG9iYWwoaW5kZXgg
PSAxKScgd2l0aCB2YWx1ZSBTdHJlYW1hYmxlSW5HbG9iYWwpIiwKICAgICAgICAgICAgIFByaW50
VG9TdHJpbmcoVHlwZShTdHJlYW1hYmxlSW5HbG9iYWx7fSkpKTsKICAgRVhQRUNUX0VRKAotICAg
ICAgIigndGVzdGluZzo6Z3Rlc3RfcHJpbnRlcnNfdGVzdDo6Tm9uUHJpbnRhYmxlJyB3aXRoIHZh
bHVlIDEtYnl0ZSBvYmplY3QgIgotICAgICAgIjwxMT4pIiwKKyAgICAgICIoJ3Rlc3Rpbmc6Omd0
ZXN0X3ByaW50ZXJzX3Rlc3Q6Ok5vblByaW50YWJsZShpbmRleCA9IDIpJyB3aXRoIHZhbHVlICIK
KyAgICAgICIxLWJ5dGUgb2JqZWN0IDwxMT4pIiwKICAgICAgIFByaW50VG9TdHJpbmcoVHlwZShO
b25QcmludGFibGV7fSkpKTsKIH0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX0FCU0wKKyNlbmRpZiAg
Ly8gR1RFU1RfSU5URVJOQUxfSEFTX1ZBUklBTlQKK25hbWVzcGFjZSB7CitjbGFzcyBzdHJpbmdf
cmVmOworCisvKioKKyAqIFRoaXMgaXMgYSBzeW50aGV0aWMgcG9pbnRlciB0byBhIGZpeGVkIHNp
emUgc3RyaW5nLgorICovCitjbGFzcyBzdHJpbmdfcHRyIHsKKyBwdWJsaWM6CisgIHN0cmluZ19w
dHIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIDogZGF0YV8oZGF0YSksIHNpemVfKHNp
emUpIHt9CisKKyAgc3RyaW5nX3B0ciYgb3BlcmF0b3IrKygpIG5vZXhjZXB0IHsKKyAgICBkYXRh
XyArPSBzaXplXzsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBzdHJpbmdfcmVmIG9wZXJh
dG9yKigpIGNvbnN0IG5vZXhjZXB0OworCisgcHJpdmF0ZToKKyAgY29uc3QgY2hhciogZGF0YV87
CisgIHNpemVfdCBzaXplXzsKK307CisKKy8qKgorICogVGhpcyBpcyBhIHN5bnRoZXRpYyByZWZl
cmVuY2Ugb2YgYSBmaXhlZCBzaXplIHN0cmluZy4KKyAqLworY2xhc3Mgc3RyaW5nX3JlZiB7Cisg
cHVibGljOgorICBzdHJpbmdfcmVmKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKSA6IGRh
dGFfKGRhdGEpLCBzaXplXyhzaXplKSB7fQorCisgIHN0cmluZ19wdHIgb3BlcmF0b3ImKCkgY29u
c3Qgbm9leGNlcHQgeyByZXR1cm4ge2RhdGFfLCBzaXplX307IH0gIC8vIE5PTElOVAorCisgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBjaGFyKiBzKSBjb25zdCBub2V4Y2VwdCB7CisgICAgaWYgKHNp
emVfID4gMCAmJiBkYXRhX1tzaXplXyAtIDFdICE9IDApIHsKKyAgICAgIHJldHVybiBzdGQ6OnN0
cmluZyhkYXRhXywgc2l6ZV8pID09IHN0ZDo6c3RyaW5nKHMpOworICAgIH0gZWxzZSB7CisgICAg
ICByZXR1cm4gc3RkOjpzdHJpbmcoZGF0YV8pID09IHN0ZDo6c3RyaW5nKHMpOworICAgIH0KKyAg
fQorCisgcHJpdmF0ZToKKyAgY29uc3QgY2hhciogZGF0YV87CisgIHNpemVfdCBzaXplXzsKK307
CisKK3N0cmluZ19yZWYgc3RyaW5nX3B0cjo6b3BlcmF0b3IqKCkgY29uc3Qgbm9leGNlcHQgeyBy
ZXR1cm4ge2RhdGFfLCBzaXplX307IH0KKworVEVTVChzdHJpbmdfcmVmLCBjb21wYXJlKSB7Cisg
IGNvbnN0IGNoYXIqIHMgPSAiYWxleFwwZGF2aWRqb2huXDAiOworICBzdHJpbmdfcHRyIHB0cihz
LCA1KTsKKyAgRVhQRUNUX0VRKCpwdHIsICJhbGV4Iik7CisgIEVYUEVDVF9UUlVFKCpwdHIgPT0g
ImFsZXgiKTsKKyAgKytwdHI7CisgIEVYUEVDVF9FUSgqcHRyLCAiZGF2aWQiKTsKKyAgRVhQRUNU
X1RSVUUoKnB0ciA9PSAiZGF2aWQiKTsKKyAgKytwdHI7CisgIEVYUEVDVF9FUSgqcHRyLCAiam9o
biIpOworfQorCit9ICAvLyBuYW1lc3BhY2UKIAogfSAgLy8gbmFtZXNwYWNlIGd0ZXN0X3ByaW50
ZXJzX3Rlc3QKIH0gIC8vIG5hbWVzcGFjZSB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qtc2V0dXB0ZXN0c3VpdGUtdGVzdC5weSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4MjE2MmZjOTlmOGJiZWNmNGE4Y2FmMmNlMGEyOWJmNjRiM2MyNGEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3Qtc2V0dXB0ZXN0c3VpdGUtdGVzdC5weQpAQCAtMCwwICsxLDU0IEBACisjIS91c3IvYmluL2Vu
diBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTksIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJWZXJpZmllcyB0aGF0IFNldFVwVGVz
dFN1aXRlIGFuZCBUZWFyRG93blRlc3RTdWl0ZSBlcnJvcnMgYXJlIG5vdGljZWQuIiIiCisKK2lt
cG9ydCBndGVzdF90ZXN0X3V0aWxzCisKK0NPTU1BTkQgPSBndGVzdF90ZXN0X3V0aWxzLkdldFRl
c3RFeGVjdXRhYmxlUGF0aCgKKyAgICAnZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xycp
CisKKworY2xhc3MgR1Rlc3RTZXRVcFRlc3RTdWl0ZVRlc3QoZ3Rlc3RfdGVzdF91dGlscy5UZXN0
Q2FzZSk6CisKKyAgZGVmIHRlc3RTZXR1cEVycm9yQW5kVGVhckRvd25FcnJvcihzZWxmKToKKyAg
ICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKENPTU1BTkQpCisgICAgc2VsZi5hc3Nl
cnROb3RFcXVhbChwLmV4aXRfY29kZSwgMCwgbXNnPXAub3V0cHV0KQorCisgICAgc2VsZi5hc3Nl
cnRJbigKKyAgICAgICAgJ1sgIEZBSUxFRCAgXSBTZXR1cEZhaWxUZXN0OiBTZXRVcFRlc3RTdWl0
ZSBvciBUZWFyRG93blRlc3RTdWl0ZVxuJworICAgICAgICAnWyAgRkFJTEVEICBdIFRlYXJEb3du
RmFpbFRlc3Q6IFNldFVwVGVzdFN1aXRlIG9yIFRlYXJEb3duVGVzdFN1aXRlXG4nCisgICAgICAg
ICdcbicKKyAgICAgICAgJyAyIEZBSUxFRCBURVNUIFNVSVRFU1xuJywKKyAgICAgICAgcC5vdXRw
dXQpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFp
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
c2V0dXB0ZXN0c3VpdGUtdGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dv
b2dsZXRlc3Qtc2V0dXB0ZXN0c3VpdGUtdGVzdF8uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRiYzRlZjQ0MWQ5
YmU0ODAyZTJjMDEwZGY4ZjFjM2Q5NmRmYWY0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC1zZXR1cHRlc3RzdWl0ZS10ZXN0Xy5jYwpA
QCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgMjAwOCwgR29vZ2xlIEluYy4KKy8vIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBt
ZXQ6CisvLworLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
Ly8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKworI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisKK2NsYXNzIFNldHVwRmFpbFRlc3Qg
OiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIHN0YXRpYyB2b2lkIFNl
dFVwVGVzdFN1aXRlKCkgeworICAgIEFTU0VSVF9FUSgiIiwgIlNFVF9VUF9GQUlMIik7CisgIH0K
K307CisKK1RFU1RfRihTZXR1cEZhaWxUZXN0LCBOb29wUGFzc2luZ1Rlc3QpIHt9CisKK2NsYXNz
IFRlYXJEb3duRmFpbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKKyBwcm90ZWN0ZWQ6
CisgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIEFTU0VSVF9FUSgiIiwg
IlRFQVJfRE9XTl9GQUlMIik7CisgIH0KK307CisKK1RFU1RfRihUZWFyRG93bkZhaWxUZXN0LCBO
b29wUGFzc2luZ1Rlc3QpIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2dvb2dsZXRlc3Qtc2h1ZmZsZS10ZXN0Xy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjCmluZGV4IDFmZTVmNmFiYTJhNWUwZmZj
YWI5MTVlNDYzOGQyM2Y1OGNmNDhmZjAuLjQ1MDU2NjNhZTQzM2M0ZmQ1MzIwNWMxNjBmYmMyYWIz
ZThlNjZlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC1zaHVmZmxlLXRlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC1zaHVmZmxlLXRlc3RfLmNjCkBAIC00MSw3ICs0MSw2IEBAIHVzaW5nIDo6dGVz
dGluZzo6VGVzdDsKIHVzaW5nIDo6dGVzdGluZzo6VGVzdEV2ZW50TGlzdGVuZXJzOwogdXNpbmcg
Ojp0ZXN0aW5nOjpUZXN0SW5mbzsKIHVzaW5nIDo6dGVzdGluZzo6VW5pdFRlc3Q7Ci11c2luZyA6
OnRlc3Rpbmc6OmludGVybmFsOjpzY29wZWRfcHRyOwogCiAvLyBUaGUgdGVzdCBtZXRob2RzIGFy
ZSBlbXB0eSwgYXMgdGhlIHNvbGUgcHVycG9zZSBvZiB0aGlzIHByb2dyYW0gaXMKIC8vIHRvIHBy
aW50IHRoZSB0ZXN0IG5hbWVzIGJlZm9yZS9hZnRlciBzaHVmZmxpbmcuCkBAIC03NywxMyArNzYs
MTMgQEAgVEVTVChESVNBQkxFRF9ELCBESVNBQkxFRF9CKSB7fQogLy8gaXRlcmF0aW9uIHdpdGgg
YSAiLS0tLSIgbWFya2VyLgogY2xhc3MgVGVzdE5hbWVQcmludGVyIDogcHVibGljIEVtcHR5VGVz
dEV2ZW50TGlzdGVuZXIgewogIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIE9uVGVzdEl0ZXJhdGlv
blN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKiB1bml0X3Rlc3QgKi8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgLyogaXRlcmF0aW9uICovKSB7CisgIHZvaWQgT25UZXN0
SXRlcmF0aW9uU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qIHVuaXRfdGVzdCAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgLyogaXRlcmF0aW9uICovKSBvdmVycmlkZSB7CiAgICAg
cHJpbnRmKCItLS0tXG4iKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RTdGFydChjb25z
dCBUZXN0SW5mbyYgdGVzdF9pbmZvKSB7Ci0gICAgcHJpbnRmKCIlcy4lc1xuIiwgdGVzdF9pbmZv
LnRlc3RfY2FzZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOworICB2b2lkIE9uVGVzdFN0YXJ0
KGNvbnN0IFRlc3RJbmZvJiB0ZXN0X2luZm8pIG92ZXJyaWRlIHsKKyAgICBwcmludGYoIiVzLiVz
XG4iLCB0ZXN0X2luZm8udGVzdF9zdWl0ZV9uYW1lKCksIHRlc3RfaW5mby5uYW1lKCkpOwogICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRl
c3QtdGVzdC1wYXJ0LXRlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2ds
ZXRlc3QtdGVzdC1wYXJ0LXRlc3QuY2MKaW5kZXggY2QyZDZmOWU4NThmNTI3OWJhNWExNmE1ZDFh
NmUzN2FmZmU5MTBhZC4uNDRjZjdjYTA0NGI4NTBkYWRjMGRmODk2MjgyMjVjMDdkZWEyN2M5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRlc3Qt
cGFydC10ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC10ZXN0LXBhcnQtdGVzdC5jYwpAQCAtNDYsOSArNDYsMTAgQEAgY2xhc3MgVGVzdFBhcnRSZXN1
bHRUZXN0IDogcHVibGljIFRlc3QgewogICBUZXN0UGFydFJlc3VsdFRlc3QoKQogICAgICAgOiBy
MV8oVGVzdFBhcnRSZXN1bHQ6OmtTdWNjZXNzLCAiZm9vL2Jhci5jYyIsIDEwLCAiU3VjY2VzcyEi
KSwKICAgICAgICAgcjJfKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLCAiZm9vL2Jh
ci5jYyIsIC0xLCAiRmFpbHVyZSEiKSwKLSAgICAgICAgcjNfKFRlc3RQYXJ0UmVzdWx0OjprRmF0
YWxGYWlsdXJlLCBOVUxMLCAtMSwgIkZhaWx1cmUhIikge30KKyAgICAgICAgcjNfKFRlc3RQYXJ0
UmVzdWx0OjprRmF0YWxGYWlsdXJlLCBudWxscHRyLCAtMSwgIkZhaWx1cmUhIiksCisgICAgICAg
IHI0XyhUZXN0UGFydFJlc3VsdDo6a1NraXAsICJmb28vYmFyLmNjIiwgMiwgIlNraXBwZWQhIikg
e30KIAotICBUZXN0UGFydFJlc3VsdCByMV8sIHIyXywgcjNfOworICBUZXN0UGFydFJlc3VsdCBy
MV8sIHIyXywgcjNfLCByNF87CiB9OwogCiAKQEAgLTc5LDYgKzgwLDcgQEAgVEVTVF9GKFRlc3RQ
YXJ0UmVzdWx0VGVzdCwgUmVzdWx0QWNjZXNzb3JzV29yaykgewogICBFWFBFQ1RfRkFMU0Uoc3Vj
Y2Vzcy5mYWlsZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShzdWNjZXNzLm5vbmZhdGFsbHlfZmFpbGVk
KCkpOwogICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcy5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNU
X0ZBTFNFKHN1Y2Nlc3Muc2tpcHBlZCgpKTsKIAogICBjb25zdCBUZXN0UGFydFJlc3VsdCBub25m
YXRhbF9mYWlsdXJlKFRlc3RQYXJ0UmVzdWx0OjprTm9uRmF0YWxGYWlsdXJlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlLmNjIiwKQEAgLTg4LDYgKzkwLDcg
QEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgUmVzdWx0QWNjZXNzb3JzV29yaykgewogICBF
WFBFQ1RfVFJVRShub25mYXRhbF9mYWlsdXJlLmZhaWxlZCgpKTsKICAgRVhQRUNUX1RSVUUobm9u
ZmF0YWxfZmFpbHVyZS5ub25mYXRhbGx5X2ZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKG5vbmZh
dGFsX2ZhaWx1cmUuZmF0YWxseV9mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShub25mYXRhbF9m
YWlsdXJlLnNraXBwZWQoKSk7CiAKICAgY29uc3QgVGVzdFBhcnRSZXN1bHQgZmF0YWxfZmFpbHVy
ZShUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZmlsZS5jYyIsCkBAIC05Nyw2ICsxMDAsMTQgQEAgVEVTVF9GKFRlc3RQ
YXJ0UmVzdWx0VGVzdCwgUmVzdWx0QWNjZXNzb3JzV29yaykgewogICBFWFBFQ1RfVFJVRShmYXRh
bF9mYWlsdXJlLmZhaWxlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKGZhdGFsX2ZhaWx1cmUubm9uZmF0
YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKGZhdGFsX2ZhaWx1cmUuZmF0YWxseV9mYWls
ZWQoKSk7CisgIEVYUEVDVF9GQUxTRShmYXRhbF9mYWlsdXJlLnNraXBwZWQoKSk7CisKKyAgY29u
c3QgVGVzdFBhcnRSZXN1bHQgc2tpcChUZXN0UGFydFJlc3VsdDo6a1NraXAsICJmaWxlLmNjIiwg
NDIsICJtZXNzYWdlIik7CisgIEVYUEVDVF9GQUxTRShza2lwLnBhc3NlZCgpKTsKKyAgRVhQRUNU
X0ZBTFNFKHNraXAuZmFpbGVkKCkpOworICBFWFBFQ1RfRkFMU0Uoc2tpcC5ub25mYXRhbGx5X2Zh
aWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHNraXAuZmF0YWxseV9mYWlsZWQoKSk7CisgIEVYUEVD
VF9UUlVFKHNraXAuc2tpcHBlZCgpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OnR5
cGUoKS4KQEAgLTEwNCwyMyArMTE1LDI3IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIHR5
cGUpIHsKICAgRVhQRUNUX0VRKFRlc3RQYXJ0UmVzdWx0OjprU3VjY2VzcywgcjFfLnR5cGUoKSk7
CiAgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a05vbkZhdGFsRmFpbHVyZSwgcjJfLnR5cGUo
KSk7CiAgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a0ZhdGFsRmFpbHVyZSwgcjNfLnR5cGUo
KSk7CisgIEVYUEVDVF9FUShUZXN0UGFydFJlc3VsdDo6a1NraXAsIHI0Xy50eXBlKCkpOwogfQog
CiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmlsZV9uYW1lKCkuCiBURVNUX0YoVGVzdFBhcnRS
ZXN1bHRUZXN0LCBmaWxlX25hbWUpIHsKICAgRVhQRUNUX1NUUkVRKCJmb28vYmFyLmNjIiwgcjFf
LmZpbGVfbmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKE5VTEwsIHIzXy5maWxlX25hbWUoKSk7Cisg
IEVYUEVDVF9TVFJFUShudWxscHRyLCByM18uZmlsZV9uYW1lKCkpOworICBFWFBFQ1RfU1RSRVEo
ImZvby9iYXIuY2MiLCByNF8uZmlsZV9uYW1lKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJl
c3VsdDo6bGluZV9udW1iZXIoKS4KIFRFU1RfRihUZXN0UGFydFJlc3VsdFRlc3QsIGxpbmVfbnVt
YmVyKSB7CiAgIEVYUEVDVF9FUSgxMCwgcjFfLmxpbmVfbnVtYmVyKCkpOwogICBFWFBFQ1RfRVEo
LTEsIHIyXy5saW5lX251bWJlcigpKTsKKyAgRVhQRUNUX0VRKDIsIHI0Xy5saW5lX251bWJlcigp
KTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6Om1lc3NhZ2UoKS4KIFRFU1RfRihUZXN0
UGFydFJlc3VsdFRlc3QsIG1lc3NhZ2UpIHsKICAgRVhQRUNUX1NUUkVRKCJTdWNjZXNzISIsIHIx
Xy5tZXNzYWdlKCkpOworICBFWFBFQ1RfU1RSRVEoIlNraXBwZWQhIiwgcjRfLm1lc3NhZ2UoKSk7
CiB9CiAKIC8vIFRlc3RzIFRlc3RQYXJ0UmVzdWx0OjpwYXNzZWQoKS4KQEAgLTEyOCw2ICsxNDMs
NyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBQYXNzZWQpIHsKICAgRVhQRUNUX1RSVUUo
cjFfLnBhc3NlZCgpKTsKICAgRVhQRUNUX0ZBTFNFKHIyXy5wYXNzZWQoKSk7CiAgIEVYUEVDVF9G
QUxTRShyM18ucGFzc2VkKCkpOworICBFWFBFQ1RfRkFMU0UocjRfLnBhc3NlZCgpKTsKIH0KIAog
Ly8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6OmZhaWxlZCgpLgpAQCAtMTM1LDYgKzE1MSwxNSBAQCBU
RVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBGYWlsZWQpIHsKICAgRVhQRUNUX0ZBTFNFKHIxXy5m
YWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKHIyXy5mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVFKHIz
Xy5mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyNF8uZmFpbGVkKCkpOworfQorCisvLyBUZXN0
cyBUZXN0UGFydFJlc3VsdDo6ZmFpbGVkKCkuCitURVNUX0YoVGVzdFBhcnRSZXN1bHRUZXN0LCBT
a2lwcGVkKSB7CisgIEVYUEVDVF9GQUxTRShyMV8uc2tpcHBlZCgpKTsKKyAgRVhQRUNUX0ZBTFNF
KHIyXy5za2lwcGVkKCkpOworICBFWFBFQ1RfRkFMU0UocjNfLnNraXBwZWQoKSk7CisgIEVYUEVD
VF9UUlVFKHI0Xy5za2lwcGVkKCkpOwogfQogCiAvLyBUZXN0cyBUZXN0UGFydFJlc3VsdDo6ZmF0
YWxseV9mYWlsZWQoKS4KQEAgLTE0Miw2ICsxNjcsNyBAQCBURVNUX0YoVGVzdFBhcnRSZXN1bHRU
ZXN0LCBGYXRhbGx5RmFpbGVkKSB7CiAgIEVYUEVDVF9GQUxTRShyMV8uZmF0YWxseV9mYWlsZWQo
KSk7CiAgIEVYUEVDVF9GQUxTRShyMl8uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9UUlVF
KHIzXy5mYXRhbGx5X2ZhaWxlZCgpKTsKKyAgRVhQRUNUX0ZBTFNFKHI0Xy5mYXRhbGx5X2ZhaWxl
ZCgpKTsKIH0KIAogLy8gVGVzdHMgVGVzdFBhcnRSZXN1bHQ6Om5vbmZhdGFsbHlfZmFpbGVkKCku
CkBAIC0xNDksNiArMTc1LDcgQEAgVEVTVF9GKFRlc3RQYXJ0UmVzdWx0VGVzdCwgTm9uZmF0YWxs
eUZhaWxlZCkgewogICBFWFBFQ1RfRkFMU0UocjFfLm5vbmZhdGFsbHlfZmFpbGVkKCkpOwogICBF
WFBFQ1RfVFJVRShyMl8ubm9uZmF0YWxseV9mYWlsZWQoKSk7CiAgIEVYUEVDVF9GQUxTRShyM18u
bm9uZmF0YWxseV9mYWlsZWQoKSk7CisgIEVYUEVDVF9GQUxTRShyNF8ubm9uZmF0YWxseV9mYWls
ZWQoKSk7CiB9CiAKIC8vIFRlc3RzIHRoZSBUZXN0UGFydFJlc3VsdEFycmF5IGNsYXNzLgpAQCAt
MjAwLDYgKzIyNyw0IEBAIFRFU1RfRihUZXN0UGFydFJlc3VsdEFycmF5RGVhdGhUZXN0LCBEaWVz
V2hlbkluZGV4SXNPdXRPZkJvdW5kKSB7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JURUQocmVz
dWx0cy5HZXRUZXN0UGFydFJlc3VsdCgxKSwgIiIpOwogfQogCi0vLyBGSVhNRTogQWRkIGEgdGVz
dCBmb3IgdGhlIGNsYXNzIEhhc05ld0ZhdGFsRmFpbHVyZUhlbHBlci4KLQogfSAgLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2dvb2dsZXRlc3Qt
dGVzdDJfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVzdC10
ZXN0Ml90ZXN0LmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmY5OGRjN2QxYzNl
OTA5NzU4YmE2MDc3MmU5Nzc0OThjZTgxZmYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xldGVz
dC10ZXN0Ml90ZXN0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLy8gQ29weXJp
Z2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0v
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRp
b24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0v
LyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0vLwotLy8gVGVzdHMgZm9yIEdv
b2dsZSBUZXN0IGl0c2VsZi4gIFRoaXMgdmVyaWZpZXMgdGhhdCB0aGUgYmFzaWMgY29uc3RydWN0
cyBvZgotLy8gR29vZ2xlIFRlc3Qgd29yay4KLQotI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCi0j
aW5jbHVkZSAiZ29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuaCIKLQotdXNpbmcgOjp0ZXN0aW5n
OjpWYWx1ZXM7Ci11c2luZyA6OnRlc3Rpbmc6OmludGVybmFsOjpQYXJhbUdlbmVyYXRvcjsKLQot
Ly8gVGVzdHMgdGhhdCBnZW5lcmF0b3JzIGRlZmluZWQgaW4gYSBkaWZmZXJlbnQgdHJhbnNsYXRp
b24gdW5pdAotLy8gYXJlIGZ1bmN0aW9uYWwuIFRoZSB0ZXN0IHVzaW5nIGV4dGVybl9nZW5fMiBp
cyBkZWZpbmVkCi0vLyBpbiBnb29nbGV0ZXN0LXBhcmFtLXRlc3QtdGVzdC5jYy4KLVBhcmFtR2Vu
ZXJhdG9yPGludD4gZXh0ZXJuX2dlbl8yID0gVmFsdWVzKDMzKTsKLQotLy8gVGVzdHMgdGhhdCBh
IHBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBkZWZpbmVkIGluIG9uZSB0cmFuc2xhdGlv
biB1bml0Ci0vLyBhbmQgaW5zdGFudGlhdGVkIGluIGFub3RoZXIuIFRoZSB0ZXN0IGlzIGRlZmlu
ZWQgaW4KLS8vIGdvb2dsZXRlc3QtcGFyYW0tdGVzdC10ZXN0LmNjIGFuZCBFeHRlcm5hbEluc3Rh
bnRpYXRpb25UZXN0IGZpeHR1cmUgY2xhc3MgaXMKLS8vIGRlZmluZWQgaW4gZ3Rlc3QtcGFyYW0t
dGVzdF90ZXN0LmguCi1JTlNUQU5USUFURV9URVNUX0NBU0VfUChNdWx0aXBsZXNPZjMzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJbnN0YW50aWF0aW9uVGVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlcygzMywgNjYpKTsKLQotLy8gVGVzdHMgdGhhdCBhIHBhcmFt
ZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZSBpbnN0YW50aWF0ZWQKLS8vIGluIG11bHRpcGxlIHRy
YW5zbGF0aW9uIHVuaXRzLiBBbm90aGVyIGluc3RhbnRpYXRpb24gaXMgZGVmaW5lZAotLy8gaW4g
Z29vZ2xldGVzdC1wYXJhbS10ZXN0LXRlc3QuY2MgYW5kCi0vLyBJbnN0YW50aWF0aW9uSW5NdWx0
aXBsZVRyYW5zbGFpb25Vbml0c1Rlc3QgZml4dHVyZSBpcyBkZWZpbmVkIGluCi0vLyBndGVzdC1w
YXJhbS10ZXN0X3Rlc3QuaAotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoU2VxdWVuY2UyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zdGFudGlhdGlvbkluTXVsdGlwbGVUcmFuc2xhaW9uVW5p
dHNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzKDQyKjMsIDQyKjQsIDQyKjUp
KTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0
LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3QucHkKaW5kZXggNDZjYjlmNmRhMzFkZWFk
ZmQ3ZWVmZDIzNWU5YjM3ZGYyOWZiM2JhZi4uZWE2MjdjNDc5ZDViMTk4MjRjYTY3Yjk4MDg5Y2Y0
MDBjMzNjMjc5YSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9nb29n
bGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2dvb2dsZXRlc3QtdGhyb3ctb24tZmFpbHVyZS10ZXN0LnB5CkBAIC02OCwxMyAr
NjgsMTIgQEAgZGVmIFNldEVudlZhcihlbnZfdmFyLCB2YWx1ZSk6CiBkZWYgUnVuKGNvbW1hbmQp
OgogICAiIiJSdW5zIGEgY29tbWFuZDsgcmV0dXJucyBUcnVlL0ZhbHNlIGlmIGl0cyBleGl0IGNv
ZGUgaXMvaXNuJ3QgMC4iIiIKIAotICBwcmludCAnUnVubmluZyAiJXMiLiAuIC4nICUgJyAnLmpv
aW4oY29tbWFuZCkKKyAgcHJpbnQoJ1J1bm5pbmcgIiVzIi4gLiAuJyAlICcgJy5qb2luKGNvbW1h
bmQpKQogICBwID0gZ3Rlc3RfdGVzdF91dGlscy5TdWJwcm9jZXNzKGNvbW1hbmQpCiAgIHJldHVy
biBwLmV4aXRlZCBhbmQgcC5leGl0X2NvZGUgPT0gMAogCiAKLSMgVGhlIHRlc3RzLiAgRklYTUU6
IHJlZmFjdG9yIHRoZSBjbGFzcyB0byBzaGFyZSBjb21tb24KLSMgbG9naWMgd2l0aCBjb2RlIGlu
IGdvb2dsZXRlc3QtYnJlYWstb24tZmFpbHVyZS11bml0dGVzdC5weS4KKyMgVGhlIHRlc3RzLgog
Y2xhc3MgVGhyb3dPbkZhaWx1cmVUZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAi
IiJUZXN0cyB0aGUgdGhyb3ctb24tZmFpbHVyZSBtb2RlLiIiIgogCkBAIC04Nyw3ICs4Niw3IEBA
IGNsYXNzIFRocm93T25GYWlsdXJlVGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlOyBOb25lIGlmIHRoZSB2YXJpYWJsZSBzaG91
bGQgYmUgdW5zZXQuCiAgICAgICBmbGFnX3ZhbHVlOiAgICAgICB2YWx1ZSBvZiB0aGUgLS1ndGVz
dF9icmVha19vbl9mYWlsdXJlIGZsYWc7CiAgICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlm
IHRoZSBmbGFnIHNob3VsZCBub3QgYmUgcHJlc2VudC4KLSAgICAgIHNob3VsZF9mYWlsOiAgICAg
IFRydWUgaWZmIHRoZSBwcm9ncmFtIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgICAgICBzaG91bGRf
ZmFpbDogICAgICBUcnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBwcm9ncmFtIGlzIGV4cGVjdGVkIHRv
IGZhaWwuCiAgICAgIiIiCiAKICAgICBTZXRFbnZWYXIoVEhST1dfT05fRkFJTFVSRSwgZW52X3Zh
cl92YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC10aHJvdy1vbi1mYWlsdXJlLXRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MKaW5kZXggZjlhMmM2NDQ4
YTI5Y2EyOTY0OWExMjQ4MDU5YTk4NWE1MWFmODYzNi4uODNiYjkxNGM3ZTQ3NGE4MTJkNTc0NWEz
ZWM1MGI5NWIzOGE2NThlNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9nb29nbGV0ZXN0LXRocm93LW9uLWZhaWx1cmUtdGVzdF8uY2MKQEAg
LTQ1LDcgKzQ1LDcgQEAKIC8vIG9uZXMuCiB2b2lkIFRlcm1pbmF0ZUhhbmRsZXIoKSB7CiAgIGZw
cmludGYoc3RkZXJyLCAiJXNcbiIsICJVbmhhbmRsZWQgQysrIGV4Y2VwdGlvbiB0ZXJtaW5hdGlu
ZyB0aGUgcHJvZ3JhbS4iKTsKLSAgZmZsdXNoKE5VTEwpOworICBmZmx1c2gobnVsbHB0cik7CiAg
IGV4aXQoMSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z29vZ2xldGVzdC10dXBsZS10ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
b29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRk
ODJjMTYwZjE3N2Q2ZjNiYWRkNzcwNjRhYjhjN2U5OGJkMjk3NjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9nb29nbGV0ZXN0LXR1cGxlLXRlc3QuY2MKKysrIC9kZXYvbnVsbApAQCAtMSwzMTkgKzAsMCBA
QAotLy8gQ29weXJpZ2h0IDIwMDcsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0v
LyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
Ly8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSNpbmNs
dWRlICJndGVzdC9pbnRlcm5hbC9ndGVzdC10dXBsZS5oIgotI2luY2x1ZGUgPHV0aWxpdHk+Ci0j
aW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLQotbmFtZXNwYWNlIHsKLQotdXNpbmcgOjpzdGQ6OnRy
MTo6Z2V0OwotdXNpbmcgOjpzdGQ6OnRyMTo6bWFrZV90dXBsZTsKLXVzaW5nIDo6c3RkOjp0cjE6
OnR1cGxlOwotdXNpbmcgOjpzdGQ6OnRyMTo6dHVwbGVfZWxlbWVudDsKLXVzaW5nIDo6c3RkOjp0
cjE6OnR1cGxlX3NpemU7Ci11c2luZyA6OnRlc3Rpbmc6OlN0YXRpY0Fzc2VydFR5cGVFcTsKLQot
Ly8gVGVzdHMgdGhhdCB0dXBsZV9lbGVtZW50PEssIHR1cGxlPFQwLCBUMSwgLi4uLCBUTj4gPjo6
dHlwZSByZXR1cm5zIFRLLgotVEVTVCh0dXBsZV9lbGVtZW50X1Rlc3QsIFJldHVybnNFbGVtZW50
VHlwZSkgewotICBTdGF0aWNBc3NlcnRUeXBlRXE8aW50LCB0dXBsZV9lbGVtZW50PDAsIHR1cGxl
PGludCwgY2hhcj4gPjo6dHlwZT4oKTsKLSAgU3RhdGljQXNzZXJ0VHlwZUVxPGludCYsIHR1cGxl
X2VsZW1lbnQ8MSwgdHVwbGU8ZG91YmxlLCBpbnQmPiA+Ojp0eXBlPigpOwotICBTdGF0aWNBc3Nl
cnRUeXBlRXE8Ym9vbCwgdHVwbGVfZWxlbWVudDwyLCB0dXBsZTxkb3VibGUsIGludCwgYm9vbD4g
Pjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgdGhhdCB0dXBsZV9zaXplPFQ+Ojp2YWx1ZSBnaXZl
cyB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0dXBsZQotLy8gdHlwZSBULgotVEVTVCh0dXBsZV9z
aXplX1Rlc3QsIFJldHVybnNOdW1iZXJPZkZpZWxkcykgewotICBFWFBFQ1RfRVEoMCwgK3R1cGxl
X3NpemU8dHVwbGU8PiA+Ojp2YWx1ZSk7Ci0gIEVYUEVDVF9FUSgxLCArdHVwbGVfc2l6ZTx0dXBs
ZTx2b2lkKj4gPjo6dmFsdWUpOwotICBFWFBFQ1RfRVEoMSwgK3R1cGxlX3NpemU8dHVwbGU8Y2hh
cj4gPjo6dmFsdWUpOwotICBFWFBFQ1RfRVEoMSwgKyh0dXBsZV9zaXplPHR1cGxlPHR1cGxlPGlu
dCwgZG91YmxlPiA+ID46OnZhbHVlKSk7Ci0gIEVYUEVDVF9FUSgyLCArKHR1cGxlX3NpemU8dHVw
bGU8aW50JiwgY29uc3QgY2hhcj4gPjo6dmFsdWUpKTsKLSAgRVhQRUNUX0VRKDMsICsodHVwbGVf
c2l6ZTx0dXBsZTxjaGFyKiwgdm9pZCwgY29uc3QgYm9vbCY+ID46OnZhbHVlKSk7Ci19Ci0KLS8v
IFRlc3RzIGNvbXBhcmluZyBhIHR1cGxlIHdpdGggaXRzZWxmLgotVEVTVChDb21wYXJpc29uVGVz
dCwgQ29tcGFyZXNXaXRoU2VsZikgewotICBjb25zdCB0dXBsZTxpbnQsIGNoYXIsIGJvb2w+IGEo
NSwgJ2EnLCBmYWxzZSk7Ci0KLSAgRVhQRUNUX1RSVUUoYSA9PSBhKTsKLSAgRVhQRUNUX0ZBTFNF
KGEgIT0gYSk7Ci19Ci0KLS8vIFRlc3RzIGNvbXBhcmluZyB0d28gdHVwbGVzIHdpdGggdGhlIHNh
bWUgdmFsdWUuCi1URVNUKENvbXBhcmlzb25UZXN0LCBDb21wYXJlc0VxdWFsVHVwbGVzKSB7Ci0g
IGNvbnN0IHR1cGxlPGludCwgYm9vbD4gYSg1LCB0cnVlKSwgYig1LCB0cnVlKTsKLQotICBFWFBF
Q1RfVFJVRShhID09IGIpOwotICBFWFBFQ1RfRkFMU0UoYSAhPSBiKTsKLX0KLQotLy8gVGVzdHMg
Y29tcGFyaW5nIHR3byBkaWZmZXJlbnQgdHVwbGVzIHRoYXQgaGF2ZSBubyByZWZlcmVuY2UgZmll
bGRzLgotVEVTVChDb21wYXJpc29uVGVzdCwgQ29tcGFyZXNVbmVxdWFsVHVwbGVzV2l0aG91dFJl
ZmVyZW5jZUZpZWxkcykgewotICB0eXBlZGVmIHR1cGxlPGNvbnN0IGludCwgY2hhcj4gRm9vVHVw
bGU7Ci0KLSAgY29uc3QgRm9vVHVwbGUgYSgwLCAneCcpOwotICBjb25zdCBGb29UdXBsZSBiKDEs
ICdhJyk7Ci0KLSAgRVhQRUNUX1RSVUUoYSAhPSBiKTsKLSAgRVhQRUNUX0ZBTFNFKGEgPT0gYik7
Ci0KLSAgY29uc3QgRm9vVHVwbGUgYygxLCAnYicpOwotCi0gIEVYUEVDVF9UUlVFKGIgIT0gYyk7
Ci0gIEVYUEVDVF9GQUxTRShiID09IGMpOwotfQotCi0vLyBUZXN0cyBjb21wYXJpbmcgdHdvIGRp
ZmZlcmVudCB0dXBsZXMgdGhhdCBoYXZlIHJlZmVyZW5jZSBmaWVsZHMuCi1URVNUKENvbXBhcmlz
b25UZXN0LCBDb21wYXJlc1VuZXF1YWxUdXBsZXNXaXRoUmVmZXJlbmNlRmllbGRzKSB7Ci0gIHR5
cGVkZWYgdHVwbGU8aW50JiwgY29uc3QgY2hhciY+IEZvb1R1cGxlOwotCi0gIGludCBpID0gNTsK
LSAgY29uc3QgY2hhciBjaCA9ICdhJzsKLSAgY29uc3QgRm9vVHVwbGUgYShpLCBjaCk7Ci0KLSAg
aW50IGogPSA2OwotICBjb25zdCBGb29UdXBsZSBiKGosIGNoKTsKLQotICBFWFBFQ1RfVFJVRShh
ICE9IGIpOwotICBFWFBFQ1RfRkFMU0UoYSA9PSBiKTsKLQotICBqID0gNTsKLSAgY29uc3QgY2hh
ciBjaDIgPSAnYic7Ci0gIGNvbnN0IEZvb1R1cGxlIGMoaiwgY2gyKTsKLQotICBFWFBFQ1RfVFJV
RShiICE9IGMpOwotICBFWFBFQ1RfRkFMU0UoYiA9PSBjKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBh
IHR1cGxlIGZpZWxkIHdpdGggYSByZWZlcmVuY2UgdHlwZSBpcyBhbiBhbGlhcyBvZiB0aGUKLS8v
IHZhcmlhYmxlIGl0J3Mgc3VwcG9zZWQgdG8gcmVmZXJlbmNlLgotVEVTVChSZWZlcmVuY2VGaWVs
ZFRlc3QsIElzQWxpYXNPZlJlZmVyZW5jZWRWYXJpYWJsZSkgewotICBpbnQgbiA9IDA7Ci0gIHR1
cGxlPGJvb2wsIGludCY+IHQodHJ1ZSwgbik7Ci0KLSAgbiA9IDE7Ci0gIEVYUEVDVF9FUShuLCBn
ZXQ8MT4odCkpCi0gICAgICA8PCAiQ2hhbmdpbmcgYSB1bmRlcmx5aW5nIHZhcmlhYmxlIHNob3Vs
ZCB1cGRhdGUgdGhlIHJlZmVyZW5jZSBmaWVsZC4iOwotCi0gIC8vIE1ha2VzIHN1cmUgdGhhdCB0
aGUgaW1wbGVtZW50YXRpb24gZG9lc24ndCBkbyBhbnl0aGluZyBmdW5ueSB3aXRoCi0gIC8vIHRo
ZSAmIG9wZXJhdG9yIGZvciB0aGUgcmV0dXJuIHR5cGUgb2YgZ2V0PD4oKS4KLSAgRVhQRUNUX0VR
KCZuLCAmKGdldDwxPih0KSkpCi0gICAgICA8PCAiVGhlIGFkZHJlc3Mgb2YgYSByZWZlcmVuY2Ug
ZmllbGQgc2hvdWxkIGVxdWFsIHRoZSBhZGRyZXNzIG9mICIKLSAgICAgIDw8ICJ0aGUgdW5kZXJs
eWluZyB2YXJpYWJsZS4iOwotCi0gIGdldDwxPih0KSA9IDI7Ci0gIEVYUEVDVF9FUSgyLCBuKQot
ICAgICAgPDwgIkNoYW5naW5nIGEgcmVmZXJlbmNlIGZpZWxkIHNob3VsZCB1cGRhdGUgdGhlIHVu
ZGVybHlpbmcgdmFyaWFibGUuIjsKLX0KLQotLy8gVGVzdHMgdGhhdCB0dXBsZSdzIGRlZmF1bHQg
Y29uc3RydWN0b3IgZGVmYXVsdCBpbml0aWFsaXplcyBlYWNoIGZpZWxkLgotLy8gVGhpcyB0ZXN0
IG5lZWRzIHRvIGNvbXBpbGUgd2l0aG91dCBnZW5lcmF0aW5nIHdhcm5pbmdzLgotVEVTVChUdXBs
ZUNvbnN0cnVjdG9yVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yRGVmYXVsdEluaXRpYWxpemVzRWFj
aEZpZWxkKSB7Ci0gIC8vIFRoZSBUUjEgcmVwb3J0IHJlcXVpcmVzIHRoYXQgdHVwbGUncyBkZWZh
dWx0IGNvbnN0cnVjdG9yIGRlZmF1bHQKLSAgLy8gaW5pdGlhbGl6ZXMgZWFjaCBmaWVsZCwgZXZl
biBpZiBpdCdzIGEgcHJpbWl0aXZlIHR5cGUuICBJZiB0aGUKLSAgLy8gaW1wbGVtZW50YXRpb24g
Zm9yZ2V0cyB0byBkbyB0aGlzLCB0aGlzIHRlc3Qgd2lsbCBjYXRjaCBpdCBieQotICAvLyBnZW5l
cmF0aW5nIHdhcm5pbmdzIGFib3V0IHVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIChhc3N1
bWluZwotICAvLyBhIGRlY2VudCBjb21waWxlcikuCi0KLSAgdHVwbGU8PiBlbXB0eTsKLQotICB0
dXBsZTxpbnQ+IGExLCBiMTsKLSAgYjEgPSBhMTsKLSAgRVhQRUNUX0VRKDAsIGdldDwwPihiMSkp
OwotCi0gIHR1cGxlPGludCwgZG91YmxlPiBhMiwgYjI7Ci0gIGIyID0gYTI7Ci0gIEVYUEVDVF9F
USgwLCBnZXQ8MD4oYjIpKTsKLSAgRVhQRUNUX0VRKDAuMCwgZ2V0PDE+KGIyKSk7Ci0KLSAgdHVw
bGU8ZG91YmxlLCBjaGFyLCBib29sKj4gYTMsIGIzOwotICBiMyA9IGEzOwotICBFWFBFQ1RfRVEo
MC4wLCBnZXQ8MD4oYjMpKTsKLSAgRVhQRUNUX0VRKCdcMCcsIGdldDwxPihiMykpOwotICBFWFBF
Q1RfVFJVRShnZXQ8Mj4oYjMpID09IE5VTEwpOwotCi0gIHR1cGxlPGludCwgaW50LCBpbnQsIGlu
dCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludD4gYTEwLCBiMTA7Ci0gIGIxMCA9IGExMDsK
LSAgRVhQRUNUX0VRKDAsIGdldDwwPihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDwxPihiMTAp
KTsKLSAgRVhQRUNUX0VRKDAsIGdldDwyPihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDwzPihi
MTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw0PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw1
PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw2PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdl
dDw3PihiMTApKTsKLSAgRVhQRUNUX0VRKDAsIGdldDw4PihiMTApKTsKLSAgRVhQRUNUX0VRKDAs
IGdldDw5PihiMTApKTsKLX0KLQotLy8gVGVzdHMgY29uc3RydWN0aW5nIGEgdHVwbGUgZnJvbSBp
dHMgZmllbGRzLgotVEVTVChUdXBsZUNvbnN0cnVjdG9yVGVzdCwgQ29uc3RydWN0c0Zyb21GaWVs
ZHMpIHsKLSAgaW50IG4gPSAxOwotICAvLyBSZWZlcmVuY2UgZmllbGQuCi0gIHR1cGxlPGludCY+
IGEobik7Ci0gIEVYUEVDVF9FUSgmbiwgJihnZXQ8MD4oYSkpKTsKLQotICAvLyBOb24tcmVmZXJl
bmNlIGZpZWxkcy4KLSAgdHVwbGU8aW50LCBjaGFyPiBiKDUsICdhJyk7Ci0gIEVYUEVDVF9FUSg1
LCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoJ2EnLCBnZXQ8MT4oYikpOwotCi0gIC8vIENvbnN0
IHJlZmVyZW5jZSBmaWVsZC4KLSAgY29uc3QgaW50IG0gPSAyOwotICB0dXBsZTxib29sLCBjb25z
dCBpbnQmPiBjKHRydWUsIG0pOwotICBFWFBFQ1RfVFJVRShnZXQ8MD4oYykpOwotICBFWFBFQ1Rf
RVEoJm0sICYoZ2V0PDE+KGMpKSk7Ci19Ci0KLS8vIFRlc3RzIHR1cGxlJ3MgY29weSBjb25zdHJ1
Y3Rvci4KLVRFU1QoVHVwbGVDb25zdHJ1Y3RvclRlc3QsIENvcHlDb25zdHJ1Y3RvcikgewotICB0
dXBsZTxkb3VibGUsIGJvb2w+IGEoMC4wLCB0cnVlKTsKLSAgdHVwbGU8ZG91YmxlLCBib29sPiBi
KGEpOwotCi0gIEVYUEVDVF9ET1VCTEVfRVEoMC4wLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfVFJV
RShnZXQ8MT4oYikpOwotfQotCi0vLyBUZXN0cyBjb25zdHJ1Y3RpbmcgYSB0dXBsZSBmcm9tIGFu
b3RoZXIgdHVwbGUgdGhhdCBoYXMgYSBjb21wYXRpYmxlCi0vLyBidXQgZGlmZmVyZW50IHR5cGUu
Ci1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb25zdHJ1Y3RzRnJvbURpZmZlcmVudFR1cGxl
VHlwZSkgewotICB0dXBsZTxpbnQsIGludCwgY2hhcj4gYSgwLCAxLCAnYScpOwotICB0dXBsZTxk
b3VibGUsIGxvbmcsIGludD4gYihhKTsKLQotICBFWFBFQ1RfRE9VQkxFX0VRKDAuMCwgZ2V0PDA+
KGIpKTsKLSAgRVhQRUNUX0VRKDEsIGdldDwxPihiKSk7Ci0gIEVYUEVDVF9FUSgnYScsIGdldDwy
PihiKSk7Ci19Ci0KLS8vIFRlc3RzIGNvbnN0cnVjdGluZyBhIDItdHVwbGUgZnJvbSBhbiBzdGQ6
OnBhaXIuCi1URVNUKFR1cGxlQ29uc3RydWN0b3JUZXN0LCBDb25zdHJ1Y3RzRnJvbVBhaXIpIHsK
LSAgOjpzdGQ6OnBhaXI8aW50LCBjaGFyPiBhKDEsICdhJyk7Ci0gIHR1cGxlPGludCwgY2hhcj4g
YihhKTsKLSAgdHVwbGU8aW50LCBjb25zdCBjaGFyJj4gYyhhKTsKLX0KLQotLy8gVGVzdHMgYXNz
aWduaW5nIGEgdHVwbGUgdG8gYW5vdGhlciB0dXBsZSB3aXRoIHRoZSBzYW1lIHR5cGUuCi1URVNU
KFR1cGxlQXNzaWdubWVudFRlc3QsIEFzc2lnbnNUb1NhbWVUdXBsZVR5cGUpIHsKLSAgY29uc3Qg
dHVwbGU8aW50LCBsb25nPiBhKDUsIDdMKTsKLSAgdHVwbGU8aW50LCBsb25nPiBiOwotICBiID0g
YTsKLSAgRVhQRUNUX0VRKDUsIGdldDwwPihiKSk7Ci0gIEVYUEVDVF9FUSg3TCwgZ2V0PDE+KGIp
KTsKLX0KLQotLy8gVGVzdHMgYXNzaWduaW5nIGEgdHVwbGUgdG8gYW5vdGhlciB0dXBsZSB3aXRo
IGEgZGlmZmVyZW50IGJ1dAotLy8gY29tcGF0aWJsZSB0eXBlLgotVEVTVChUdXBsZUFzc2lnbm1l
bnRUZXN0LCBBc3NpZ25zVG9EaWZmZXJlbnRUdXBsZVR5cGUpIHsKLSAgY29uc3QgdHVwbGU8aW50
LCBsb25nLCBib29sPiBhKDEsIDdMLCB0cnVlKTsKLSAgdHVwbGU8bG9uZywgaW50LCBib29sPiBi
OwotICBiID0gYTsKLSAgRVhQRUNUX0VRKDFMLCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfRVEoNywg
Z2V0PDE+KGIpKTsKLSAgRVhQRUNUX1RSVUUoZ2V0PDI+KGIpKTsKLX0KLQotLy8gVGVzdHMgYXNz
aWduaW5nIGFuIHN0ZDo6cGFpciB0byBhIDItdHVwbGUuCi1URVNUKFR1cGxlQXNzaWdubWVudFRl
c3QsIEFzc2lnbnNGcm9tUGFpcikgewotICBjb25zdCA6OnN0ZDo6cGFpcjxpbnQsIGJvb2w+IGEo
NSwgdHJ1ZSk7Ci0gIHR1cGxlPGludCwgYm9vbD4gYjsKLSAgYiA9IGE7Ci0gIEVYUEVDVF9FUSg1
LCBnZXQ8MD4oYikpOwotICBFWFBFQ1RfVFJVRShnZXQ8MT4oYikpOwotCi0gIHR1cGxlPGxvbmcs
IGJvb2w+IGM7Ci0gIGMgPSBhOwotICBFWFBFQ1RfRVEoNUwsIGdldDwwPihjKSk7Ci0gIEVYUEVD
VF9UUlVFKGdldDwxPihjKSk7Ci19Ci0KLS8vIEEgZml4dHVyZSBmb3IgdGVzdGluZyBiaWcgdHVw
bGVzLgotY2xhc3MgQmlnVHVwbGVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotIHByb3Rl
Y3RlZDoKLSAgdHlwZWRlZiB0dXBsZTxpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCBpbnQ+IEJpZ1R1cGxlOwotCi0gIEJpZ1R1cGxlVGVzdCgpIDoKLSAgICAgIGFf
KDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIpLAotICAgICAgYl8oMSwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMykge30KLQotICBCaWdUdXBsZSBhXywgYl87Ci19OwotCi0vLyBUZXN0cyBj
b25zdHJ1Y3RpbmcgYmlnIHR1cGxlcy4KLVRFU1RfRihCaWdUdXBsZVRlc3QsIENvbnN0cnVjdGlv
bikgewotICBCaWdUdXBsZSBhOwotICBCaWdUdXBsZSBiKGJfKTsKLX0KLQotLy8gVGVzdHMgdGhh
dCBnZXQ8Tj4odCkgcmV0dXJucyB0aGUgTi10aCAoMC1iYXNlZCkgZmllbGQgb2YgdHVwbGUgdC4K
LVRFU1RfRihCaWdUdXBsZVRlc3QsIGdldCkgewotICBFWFBFQ1RfRVEoMSwgZ2V0PDA+KGFfKSk7
Ci0gIEVYUEVDVF9FUSgyLCBnZXQ8OT4oYV8pKTsKLQotICAvLyBUZXN0cyB0aGF0IGdldCgpIHdv
cmtzIG9uIGEgY29uc3QgdHVwbGUgdG9vLgotICBjb25zdCBCaWdUdXBsZSBhKGFfKTsKLSAgRVhQ
RUNUX0VRKDEsIGdldDwwPihhKSk7Ci0gIEVYUEVDVF9FUSgyLCBnZXQ8OT4oYSkpOwotfQotCi0v
LyBUZXN0cyBjb21wYXJpbmcgYmlnIHR1cGxlcy4KLVRFU1RfRihCaWdUdXBsZVRlc3QsIENvbXBh
cmlzb25zKSB7Ci0gIEVYUEVDVF9UUlVFKGFfID09IGFfKTsKLSAgRVhQRUNUX0ZBTFNFKGFfICE9
IGFfKTsKLQotICBFWFBFQ1RfVFJVRShhXyAhPSBiXyk7Ci0gIEVYUEVDVF9GQUxTRShhXyA9PSBi
Xyk7Ci19Ci0KLVRFU1QoTWFrZVR1cGxlVGVzdCwgV29ya3NGb3JTY2FsYXJUeXBlcykgewotICB0
dXBsZTxib29sLCBpbnQ+IGE7Ci0gIGEgPSBtYWtlX3R1cGxlKHRydWUsIDUpOwotICBFWFBFQ1Rf
VFJVRShnZXQ8MD4oYSkpOwotICBFWFBFQ1RfRVEoNSwgZ2V0PDE+KGEpKTsKLQotICB0dXBsZTxj
aGFyLCBpbnQsIGxvbmc+IGI7Ci0gIGIgPSBtYWtlX3R1cGxlKCdhJywgJ2InLCA1KTsKLSAgRVhQ
RUNUX0VRKCdhJywgZ2V0PDA+KGIpKTsKLSAgRVhQRUNUX0VRKCdiJywgZ2V0PDE+KGIpKTsKLSAg
RVhQRUNUX0VRKDUsIGdldDwyPihiKSk7Ci19Ci0KLVRFU1QoTWFrZVR1cGxlVGVzdCwgV29ya3NG
b3JQb2ludGVycykgewotICBpbnQgYVtdID0geyAxLCAyLCAzLCA0IH07Ci0gIGNvbnN0IGNoYXIq
IGNvbnN0IHN0ciA9ICJoaSI7Ci0gIGludCogY29uc3QgcCA9IGE7Ci0KLSAgdHVwbGU8Y29uc3Qg
Y2hhciosIGludCo+IHQ7Ci0gIHQgPSBtYWtlX3R1cGxlKHN0ciwgcCk7Ci0gIEVYUEVDVF9FUShz
dHIsIGdldDwwPih0KSk7Ci0gIEVYUEVDVF9FUShwLCBnZXQ8MT4odCkpOwotfQotCi19ICAvLyBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2dvb2dsZXRlc3QtdW5pbml0aWFsaXplZC10ZXN0LnB5CmluZGV4IDViN2QxZTc0ZjY3ZmNiMDBj
Yjg0ODU1Nzk2N2RlZjRmNmE1NmNjOGYuLjY5NTk1YTBkZGVkZTgwN2FlMzcxMWU5ZWY1ZjdiMGFl
OTIyMDc1NjMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ29vZ2xl
dGVzdC11bmluaXRpYWxpemVkLXRlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9nb29nbGV0ZXN0LXVuaW5pdGlhbGl6ZWQtdGVzdC5weQpAQCAtNDMsOCArNDMsOCBAQCBk
ZWYgQXNzZXJ0KGNvbmRpdGlvbik6CiAKIGRlZiBBc3NlcnRFcShleHBlY3RlZCwgYWN0dWFsKToK
ICAgaWYgZXhwZWN0ZWQgIT0gYWN0dWFsOgotICAgIHByaW50ICdFeHBlY3RlZDogJXMnICUgKGV4
cGVjdGVkLCkKLSAgICBwcmludCAnICBBY3R1YWw6ICVzJyAlIChhY3R1YWwsKQorICAgIHByaW50
KCdFeHBlY3RlZDogJXMnICUgKGV4cGVjdGVkLCkpCisgICAgcHJpbnQoJyAgQWN0dWFsOiAlcycg
JSAoYWN0dWFsLCkpCiAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IKIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3QyX3Rlc3QuY2MKaW5k
ZXggZWQ5NjQyMWM2N2NhOGEyZmIzOGYzZDg4OTYwMjMxZWYyMmJlYTZmYy4uZTgzY2EyZTExYjFi
NjI2ZjMyM2I5Mjg1M2EwMTgyMWI4YTM1MzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0Ml90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYwpAQCAtMzMsMTIgKzMz
LDggQEAKICNpbmNsdWRlICJ0ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVzdC5oIgogI2luY2x1ZGUg
Imd0ZXN0L2d0ZXN0LmgiCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIC8vIFRlc3Rz
IHRoYXQgdGhlIHNhbWUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUKIC8vIGlu
c3RhbnRpYXRlZCBpbiBkaWZmZXJlbnQgdHJhbnNsYXRpb24gdW5pdHMgbGlua2VkIHRvZ2V0aGVy
LgogLy8gKENvbnRhaW5lclRlc3QgaXMgYWxzbyBpbnN0YW50aWF0ZWQgaW4gZ3Rlc3QtdHlwZWQt
dGVzdF90ZXN0LmNjLikKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKFZlY3RvciwgQ29u
dGFpbmVyVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlR5cGVz
PHN0ZDo6dmVjdG9yPGludD4gPik7Ci0KLSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UAorSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKFZlY3RvciwgQ29udGFpbmVyVGVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpUeXBlczxzdGQ6OnZlY3Rv
cjxpbnQ+ID4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dC10eXBlZC10ZXN0X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
LXR5cGVkLXRlc3RfdGVzdC5jYwppbmRleCA0ZTM5ODY5N2Q2ZDgwOWIxMmU4Yzk1ZTY3NDIwYzJj
NTY4ZGRhNmU4Li41ZmM2NzhjYjBkNWQxZDAyNWQ2OTM1NmMyYjFiNmQxMGU0NWVkNjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3RfdGVz
dC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRlc3Rf
dGVzdC5jYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVz
dF90ZXN0LmgiCiAKICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5j
bHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKQEAgLTQxLDIxICs0Miwy
MSBAQCBHVEVTVF9ESVNBQkxFX01TQ19XQVJOSU5HU19QVVNIXyg0MTI3IC8qIGNvbmRpdGlvbmFs
IGV4cHJlc3Npb24gaXMgY29uc3RhbnQgKi8pCiAKIHVzaW5nIHRlc3Rpbmc6OlRlc3Q7CiAKLS8v
IFVzZWQgZm9yIHRlc3RpbmcgdGhhdCBTZXRVcFRlc3RDYXNlKCkvVGVhckRvd25UZXN0Q2FzZSgp
LCBmaXh0dXJlCisvLyBVc2VkIGZvciB0ZXN0aW5nIHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9UZWFy
RG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlCiAvLyBjdG9yL2R0b3IsIGFuZCBTZXRVcCgpL1RlYXJE
b3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlwZWQgdGVzdHMgYW5kCiAvLyB0eXBlLXBhcmFtZXRl
cml6ZWQgdGVzdC4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgQ29tbW9uVGVzdCA6IHB1
YmxpYyBUZXN0IHsKLSAgLy8gRm9yIHNvbWUgdGVjaG5pY2FsIHJlYXNvbiwgU2V0VXBUZXN0Q2Fz
ZSgpIGFuZCBUZWFyRG93blRlc3RDYXNlKCkKKyAgLy8gRm9yIHNvbWUgdGVjaG5pY2FsIHJlYXNv
biwgU2V0VXBUZXN0U3VpdGUoKSBhbmQgVGVhckRvd25UZXN0U3VpdGUoKQogICAvLyBtdXN0IGJl
IHB1YmxpYy4KICBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgIHN0
YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIHNoYXJlZF8gPSBuZXcgVCg1KTsKICAg
fQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFRl
YXJEb3duVGVzdFN1aXRlKCkgewogICAgIGRlbGV0ZSBzaGFyZWRfOwotICAgIHNoYXJlZF8gPSBO
VUxMOworICAgIHNoYXJlZF8gPSBudWxscHRyOwogICB9CiAKICAgLy8gVGhpcyAncHJvdGVjdGVk
OicgaXMgb3B0aW9uYWwuICBUaGVyZSdzIG5vIGhhcm0gaW4gbWFraW5nIGFsbApAQCAtNjgsMTQg
KzY5LDE0IEBAIGNsYXNzIENvbW1vblRlc3QgOiBwdWJsaWMgVGVzdCB7CiAKICAgQ29tbW9uVGVz
dCgpIDogdmFsdWVfKDEpIHt9CiAKLSAgdmlydHVhbCB+Q29tbW9uVGVzdCgpIHsgRVhQRUNUX0VR
KDMsIHZhbHVlXyk7IH0KKyAgfkNvbW1vblRlc3QoKSBvdmVycmlkZSB7IEVYUEVDVF9FUSgzLCB2
YWx1ZV8pOyB9CiAKLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lkIFNldFVwKCkgb3Zl
cnJpZGUgewogICAgIEVYUEVDVF9FUSgxLCB2YWx1ZV8pOwogICAgIHZhbHVlXysrOwogICB9CiAK
LSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUg
ewogICAgIEVYUEVDVF9FUSgyLCB2YWx1ZV8pOwogICAgIHZhbHVlXysrOwogICB9CkBAIC04NSwx
OCArODYsMTUgQEAgY2xhc3MgQ29tbW9uVGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotVCogQ29tbW9uVGVzdDxUPjo6c2hhcmVkXyA9IE5VTEw7Ci0KLS8v
IFRoaXMgI2lmZGVmIGJsb2NrIHRlc3RzIHR5cGVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBF
RF9URVNUCitUKiBDb21tb25UZXN0PFQ+OjpzaGFyZWRfID0gbnVsbHB0cjsKIAogdXNpbmcgdGVz
dGluZzo6VHlwZXM7CiAKLS8vIFRlc3RzIHRoYXQgU2V0VXBUZXN0Q2FzZSgpL1RlYXJEb3duVGVz
dENhc2UoKSwgZml4dHVyZSBjdG9yL2R0b3IsCisvLyBUZXN0cyB0aGF0IFNldFVwVGVzdFN1aXRl
KCkvVGVhckRvd25UZXN0U3VpdGUoKSwgZml4dHVyZSBjdG9yL2R0b3IsCiAvLyBhbmQgU2V0VXAo
KS9UZWFyRG93bigpIHdvcmsgY29ycmVjdGx5IGluIHR5cGVkIHRlc3RzCiAKIHR5cGVkZWYgVHlw
ZXM8Y2hhciwgaW50PiBUd29UeXBlczsKLVRZUEVEX1RFU1RfQ0FTRShDb21tb25UZXN0LCBUd29U
eXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKENvbW1vblRlc3QsIFR3b1R5cGVzKTsKIAogVFlQRURf
VEVTVChDb21tb25UZXN0LCBWYWx1ZXNBcmVDb3JyZWN0KSB7CiAgIC8vIFN0YXRpYyBtZW1iZXJz
IG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBiZSB2aXNpdGVkIHZpYQpAQCAtMTIx
LDMyICsxMTksMzIgQEAgVFlQRURfVEVTVChDb21tb25UZXN0LCBWYWx1ZXNBcmVDb3JyZWN0KSB7
CiBUWVBFRF9URVNUKENvbW1vblRlc3QsIFZhbHVlc0FyZVN0aWxsQ29ycmVjdCkgewogICAvLyBT
dGF0aWMgbWVtYmVycyBvZiB0aGUgZml4dHVyZSBjbGFzcyB0ZW1wbGF0ZSBjYW4gYWxzbyBiZSB2
aXNpdGVkCiAgIC8vIHZpYSAndGhpcycuCi0gIEFTU0VSVF9UUlVFKHRoaXMtPnNoYXJlZF8gIT0g
TlVMTCk7CisgIEFTU0VSVF9UUlVFKHRoaXMtPnNoYXJlZF8gIT0gbnVsbHB0cik7CiAgIEVYUEVD
VF9FUSg1LCAqdGhpcy0+c2hhcmVkXyk7CiAKICAgLy8gVHlwZVBhcmFtIGNhbiBiZSB1c2VkIHRv
IHJlZmVyIHRvIHRoZSB0eXBlIHBhcmFtZXRlci4KICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PFR5
cGVQYXJhbT4oMiksIHRoaXMtPnZhbHVlXyk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgbXVsdGlwbGUg
VFlQRURfVEVTVF9DQVNFJ3MgY2FuIGJlIGRlZmluZWQgaW4gdGhlIHNhbWUKKy8vIFRlc3RzIHRo
YXQgbXVsdGlwbGUgVFlQRURfVEVTVF9TVUlURSdzIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBzYW1l
CiAvLyB0cmFuc2xhdGlvbiB1bml0LgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFR5
cGVkVGVzdDEgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi0vLyBWZXJpZmllcyB0aGF0IHRoZSBzZWNv
bmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9DQVNFIGNhbiBiZSBhCisvLyBWZXJpZmllcyB0aGF0
IHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgVFlQRURfVEVTVF9TVUlURSBjYW4gYmUgYQogLy8gc2lu
Z2xlIHR5cGUuCi1UWVBFRF9URVNUX0NBU0UoVHlwZWRUZXN0MSwgaW50KTsKK1RZUEVEX1RFU1Rf
U1VJVEUoVHlwZWRUZXN0MSwgaW50KTsKIFRZUEVEX1RFU1QoVHlwZWRUZXN0MSwgQSkge30KIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBUeXBlZFRlc3QyIDogcHVibGljIFRlc3Qgewog
fTsKIAotLy8gVmVyaWZpZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFRZUEVEX1RFU1Rf
Q0FTRSBjYW4gYmUgYQorLy8gVmVyaWZpZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFRZ
UEVEX1RFU1RfU1VJVEUgY2FuIGJlIGEKIC8vIFR5cGVzPC4uLj4gdHlwZSBsaXN0LgotVFlQRURf
VEVTVF9DQVNFKFR5cGVkVGVzdDIsIFR5cGVzPGludD4pOworVFlQRURfVEVTVF9TVUlURShUeXBl
ZFRlc3QyLCBUeXBlczxpbnQ+KTsKIAogLy8gVGhpcyBhbHNvIHZlcmlmaWVzIHRoYXQgdGVzdHMg
ZnJvbSBkaWZmZXJlbnQgdHlwZWQgdGVzdCBjYXNlcyBjYW4KIC8vIHNoYXJlIHRoZSBzYW1lIG5h
bWUuCkBAIC0xNjEsNyArMTU5LDcgQEAgY2xhc3MgTnVtZXJpY1Rlc3QgOiBwdWJsaWMgVGVzdCB7
CiB9OwogCiB0eXBlZGVmIFR5cGVzPGludCwgbG9uZz4gTnVtZXJpY1R5cGVzOwotVFlQRURfVEVT
VF9DQVNFKE51bWVyaWNUZXN0LCBOdW1lcmljVHlwZXMpOworVFlQRURfVEVTVF9TVUlURShOdW1l
cmljVGVzdCwgTnVtZXJpY1R5cGVzKTsKIAogVFlQRURfVEVTVChOdW1lcmljVGVzdCwgRGVmYXVs
dElzWmVybykgewogICBFWFBFQ1RfRVEoMCwgVHlwZVBhcmFtKCkpOwpAQCAtMTc3LDEwNSArMTc1
LDEwMCBAQCBjbGFzcyBUeXBlZFRlc3ROYW1lcyB7CiAgcHVibGljOgogICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE5hbWUoaW50IGkpIHsKLSAgICBpZiAo
dGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxULCBjaGFyPjo6dmFsdWUpIHsKKyAgICBpZiAoc3Rk
Ojppc19zYW1lPFQsIGNoYXI+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJj
aGFyIikgKyA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQotICAgIGlmICh0ZXN0
aW5nOjppbnRlcm5hbDo6SXNTYW1lPFQsIGludD46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNf
c2FtZTxULCBpbnQ+Ojp2YWx1ZSkgewogICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCJpbnQiKSAr
IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhpKTsKICAgICB9CiAgIH0KIH07CiAKLVRZUEVEX1RF
U1RfQ0FTRShUeXBlZFRlc3RXaXRoTmFtZXMsIFR3b1R5cGVzLCBUeXBlZFRlc3ROYW1lcyk7CitU
WVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdFdpdGhOYW1lcywgVHdvVHlwZXMsIFR5cGVkVGVzdE5h
bWVzKTsKIAotVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFtZXMsIFRlc3RDYXNlTmFtZSkgewot
ICBpZiAodGVzdGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1ZSkg
eworVFlQRURfVEVTVChUeXBlZFRlc3RXaXRoTmFtZXMsIFRlc3RTdWl0ZU5hbWUpIHsKKyAgaWYg
KHN0ZDo6aXNfc2FtZTxUeXBlUGFyYW0sIGNoYXI+Ojp2YWx1ZSkgewogICAgIEVYUEVDVF9TVFJF
USg6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAg
ICAtPmN1cnJlbnRfdGVzdF9pbmZvKCkKLSAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9jYXNl
X25hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9zdWl0ZV9uYW1lKCksCiAgICAg
ICAgICAgICAgICAgICJUeXBlZFRlc3RXaXRoTmFtZXMvY2hhcjAiKTsKICAgfQotICBpZiAodGVz
dGluZzo6aW50ZXJuYWw6OklzU2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7CisgIGlmIChz
dGQ6OmlzX3NhbWU8VHlwZVBhcmFtLCBpbnQ+Ojp2YWx1ZSkgewogICAgIEVYUEVDVF9TVFJFUSg6
OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAt
PmN1cnJlbnRfdGVzdF9pbmZvKCkKLSAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9jYXNlX25h
bWUoKSwKKyAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9zdWl0ZV9uYW1lKCksCiAgICAgICAg
ICAgICAgICAgICJUeXBlZFRlc3RXaXRoTmFtZXMvaW50MSIpOwogICB9CiB9CiAKLSNlbmRpZiAg
Ly8gR1RFU1RfSEFTX1RZUEVEX1RFU1QKLQotLy8gVGhpcyAjaWZkZWYgYmxvY2sgdGVzdHMgdHlw
ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUX1AKLQogdXNp
bmcgdGVzdGluZzo6VHlwZXM7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6VHlwZWRUZXN0Q2Fz
ZVBTdGF0ZTsKK3VzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpUeXBlZFRlc3RTdWl0ZVBTdGF0ZTsK
IAotLy8gVGVzdHMgVHlwZWRUZXN0Q2FzZVBTdGF0ZS4KKy8vIFRlc3RzIFR5cGVkVGVzdFN1aXRl
UFN0YXRlLgogCi1jbGFzcyBUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCA6IHB1YmxpYyBUZXN0IHsK
K2NsYXNzIFR5cGVkVGVzdFN1aXRlUFN0YXRlVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsK
ICAgICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAsICJGb29UZXN0IiwgIkEiKTsKICAg
ICBzdGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAsICJGb29UZXN0IiwgIkIiKTsKICAgICBz
dGF0ZV8uQWRkVGVzdE5hbWUoImZvby5jYyIsIDAsICJGb29UZXN0IiwgIkMiKTsKICAgfQogCi0g
IFR5cGVkVGVzdENhc2VQU3RhdGUgc3RhdGVfOworICBUeXBlZFRlc3RTdWl0ZVBTdGF0ZSBzdGF0
ZV87CiB9OwogCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBTdGF0ZVRlc3QsIFN1Y2NlZWRzRm9yTWF0
Y2hpbmdMaXN0KSB7CitURVNUX0YoVHlwZWRUZXN0U3VpdGVQU3RhdGVUZXN0LCBTdWNjZWVkc0Zv
ck1hdGNoaW5nTGlzdCkgewogICBjb25zdCBjaGFyKiB0ZXN0cyA9ICJBLCBCLCBDIjsKICAgRVhQ
RUNUX0VRKHRlc3RzLAotICAgICAgICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFt
ZXMoImZvby5jYyIsIDEsIHRlc3RzKSk7CisgICAgICAgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0
ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwgdGVzdHMpKTsKIH0KIAogLy8gTWFr
ZXMgc3VyZSB0aGF0IHRoZSBvcmRlciBvZiB0aGUgdGVzdHMgYW5kIHNwYWNlcyBhcm91bmQgdGhl
IG5hbWVzCiAvLyBkb24ndCBtYXR0ZXIuCi1URVNUX0YoVHlwZWRUZXN0Q2FzZVBTdGF0ZVRlc3Qs
IElnbm9yZXNPcmRlckFuZFNwYWNlcykgeworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlVGVz
dCwgSWdub3Jlc09yZGVyQW5kU3BhY2VzKSB7CiAgIGNvbnN0IGNoYXIqIHRlc3RzID0gIkEsQywg
ICBCIjsKICAgRVhQRUNUX0VRKHRlc3RzLAotICAgICAgICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lz
dGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsIHRlc3RzKSk7CisgICAgICAgICAgICBzdGF0ZV8u
VmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwgdGVzdHMpKTsK
IH0KIAotdHlwZWRlZiBUeXBlZFRlc3RDYXNlUFN0YXRlVGVzdCBUeXBlZFRlc3RDYXNlUFN0YXRl
RGVhdGhUZXN0OwordXNpbmcgVHlwZWRUZXN0U3VpdGVQU3RhdGVEZWF0aFRlc3QgPSBUeXBlZFRl
c3RTdWl0ZVBTdGF0ZVRlc3Q7CiAKLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRlRGVhdGhUZXN0
LCBEZXRlY3RzRHVwbGljYXRlcykgeworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlRGVhdGhU
ZXN0LCBEZXRlY3RzRHVwbGljYXRlcykgewogICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9SVEVEKAot
ICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIsIDEsICJBLCBC
LCBBLCBDIiksCisgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUi
LCAiZm9vLmNjIiwgMSwgIkEsIEIsIEEsIEMiKSwKICAgICAgICJmb29cXC5jYy4xLj86IFRlc3Qg
QSBpcyBsaXN0ZWQgbW9yZSB0aGFuIG9uY2VcXC4iKTsKIH0KIAotVEVTVF9GKFR5cGVkVGVzdENh
c2VQU3RhdGVEZWF0aFRlc3QsIERldGVjdHNFeHRyYVRlc3QpIHsKK1RFU1RfRihUeXBlZFRlc3RT
dWl0ZVBTdGF0ZURlYXRoVGVzdCwgRGV0ZWN0c0V4dHJhVGVzdCkgewogICBFWFBFQ1RfREVBVEhf
SUZfU1VQUE9SVEVEKAotICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZv
by5jYyIsIDEsICJBLCBCLCBDLCBEIiksCi0gICAgICAiZm9vXFwuY2MuMS4/OiBObyB0ZXN0IG5h
bWVkIEQgY2FuIGJlIGZvdW5kIGluIHRoaXMgdGVzdCBjYXNlXFwuIik7CisgICAgICBzdGF0ZV8u
VmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3VpdGUiLCAiZm9vLmNjIiwgMSwgIkEsIEIsIEMs
IEQiKSwKKyAgICAgICJmb29cXC5jYy4xLj86IE5vIHRlc3QgbmFtZWQgRCBjYW4gYmUgZm91bmQg
aW4gdGhpcyB0ZXN0IHN1aXRlXFwuIik7CiB9CiAKLVRFU1RfRihUeXBlZFRlc3RDYXNlUFN0YXRl
RGVhdGhUZXN0LCBEZXRlY3RzTWlzc2VkVGVzdCkgeworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0
YXRlRGVhdGhUZXN0LCBEZXRlY3RzTWlzc2VkVGVzdCkgewogICBFWFBFQ1RfREVBVEhfSUZfU1VQ
UE9SVEVEKAotICAgICAgc3RhdGVfLlZlcmlmeVJlZ2lzdGVyZWRUZXN0TmFtZXMoImZvby5jYyIs
IDEsICJBLCBDIiksCisgICAgICBzdGF0ZV8uVmVyaWZ5UmVnaXN0ZXJlZFRlc3ROYW1lcygiU3Vp
dGUiLCAiZm9vLmNjIiwgMSwgIkEsIEMiKSwKICAgICAgICJmb29cXC5jYy4xLj86IFlvdSBmb3Jn
b3QgdG8gbGlzdCB0ZXN0IEJcXC4iKTsKIH0KIAogLy8gVGVzdHMgdGhhdCBkZWZpbmluZyBhIHRl
c3QgZm9yIGEgcGFyYW1ldGVyaXplZCB0ZXN0IGNhc2UgZ2VuZXJhdGVzCiAvLyBhIHJ1bi10aW1l
IGVycm9yIGlmIHRoZSB0ZXN0IGNhc2UgaGFzIGJlZW4gcmVnaXN0ZXJlZC4KLVRFU1RfRihUeXBl
ZFRlc3RDYXNlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzVGVzdEFmdGVyUmVnaXN0cmF0aW9uKSB7
Ci0gIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJmb28uY2MiLCAxLCAiQSwgQiwg
QyIpOworVEVTVF9GKFR5cGVkVGVzdFN1aXRlUFN0YXRlRGVhdGhUZXN0LCBEZXRlY3RzVGVzdEFm
dGVyUmVnaXN0cmF0aW9uKSB7CisgIHN0YXRlXy5WZXJpZnlSZWdpc3RlcmVkVGVzdE5hbWVzKCJT
dWl0ZSIsICJmb28uY2MiLCAxLCAiQSwgQiwgQyIpOwogICBFWFBFQ1RfREVBVEhfSUZfU1VQUE9S
VEVEKAogICAgICAgc3RhdGVfLkFkZFRlc3ROYW1lKCJmb28uY2MiLCAyLCAiRm9vVGVzdCIsICJE
IiksCi0gICAgICAiZm9vXFwuY2MuMi4/OiBUZXN0IEQgbXVzdCBiZSBkZWZpbmVkIGJlZm9yZSBS
RUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUCIKKyAgICAgICJmb29cXC5jYy4yLj86IFRlc3QgRCBt
dXN0IGJlIGRlZmluZWQgYmVmb3JlIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCIKICAgICAg
ICJcXChGb29UZXN0LCBcXC5cXC5cXC5cXClcXC4iKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBTZXRV
cFRlc3RDYXNlKCkvVGVhckRvd25UZXN0Q2FzZSgpLCBmaXh0dXJlIGN0b3IvZHRvciwKKy8vIFRl
c3RzIHRoYXQgU2V0VXBUZXN0U3VpdGUoKS9UZWFyRG93blRlc3RTdWl0ZSgpLCBmaXh0dXJlIGN0
b3IvZHRvciwKIC8vIGFuZCBTZXRVcCgpL1RlYXJEb3duKCkgd29yayBjb3JyZWN0bHkgaW4gdHlw
ZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIERl
cml2ZWRUZXN0IDogcHVibGljIENvbW1vblRlc3Q8VD4gewogfTsKIAotVFlQRURfVEVTVF9DQVNF
X1AoRGVyaXZlZFRlc3QpOworVFlQRURfVEVTVF9TVUlURV9QKERlcml2ZWRUZXN0KTsKIAogVFlQ
RURfVEVTVF9QKERlcml2ZWRUZXN0LCBWYWx1ZXNBcmVDb3JyZWN0KSB7CiAgIC8vIFN0YXRpYyBt
ZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRlIGNhbiBiZSB2aXNpdGVkIHZpYQpA
QCAtMjkyLDExMCArMjg1LDExMCBAQCBUWVBFRF9URVNUX1AoRGVyaXZlZFRlc3QsIFZhbHVlc0Fy
ZUNvcnJlY3QpIHsKIFRZUEVEX1RFU1RfUChEZXJpdmVkVGVzdCwgVmFsdWVzQXJlU3RpbGxDb3Jy
ZWN0KSB7CiAgIC8vIFN0YXRpYyBtZW1iZXJzIG9mIHRoZSBmaXh0dXJlIGNsYXNzIHRlbXBsYXRl
IGNhbiBhbHNvIGJlIHZpc2l0ZWQKICAgLy8gdmlhICd0aGlzJy4KLSAgQVNTRVJUX1RSVUUodGhp
cy0+c2hhcmVkXyAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUodGhpcy0+c2hhcmVkXyAhPSBudWxs
cHRyKTsKICAgRVhQRUNUX0VRKDUsICp0aGlzLT5zaGFyZWRfKTsKICAgRVhQRUNUX0VRKDIsIHRo
aXMtPnZhbHVlXyk7CiB9CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKERlcml2ZWRUZXN0
LAorUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKERlcml2ZWRUZXN0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVmFsdWVzQXJlQ29ycmVjdCwgVmFsdWVzQXJlU3RpbGxDb3JyZWN0KTsK
IAogdHlwZWRlZiBUeXBlczxzaG9ydCwgbG9uZz4gTXlUd29UeXBlczsKLUlOU1RBTlRJQVRFX1RZ
UEVEX1RFU1RfQ0FTRV9QKE15LCBEZXJpdmVkVGVzdCwgTXlUd29UeXBlcyk7CitJTlNUQU5USUFU
RV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIERlcml2ZWRUZXN0LCBNeVR3b1R5cGVzKTsKIAogLy8g
VGVzdHMgdGhhdCBjdXN0b20gbmFtZXMgd29yayB3aXRoIHR5cGUgcGFyYW1ldHJpemVkIHRlc3Rz
LiBXZSByZXVzZSB0aGUKIC8vIFR3b1R5cGVzIGZyb20gYWJvdmUgaGVyZS4KIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogY2xhc3MgVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFtZXMgOiBwdWJsaWMg
VGVzdCB7fTsKIAotVFlQRURfVEVTVF9DQVNFX1AoVHlwZVBhcmFtZXRyaXplZFRlc3RXaXRoTmFt
ZXMpOworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzKTsK
IAotVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzLCBUZXN0Q2FzZU5h
bWUpIHsKLSAgaWYgKHRlc3Rpbmc6OmludGVybmFsOjpJc1NhbWU8VHlwZVBhcmFtLCBjaGFyPjo6
dmFsdWUpIHsKK1RZUEVEX1RFU1RfUChUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1lcywgVGVz
dFN1aXRlTmFtZSkgeworICBpZiAoc3RkOjppc19zYW1lPFR5cGVQYXJhbSwgY2hhcj46OnZhbHVl
KSB7CiAgICAgRVhQRUNUX1NUUkVRKDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCkK
ICAgICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2luZm8oKQotICAgICAgICAgICAg
ICAgICAgICAgLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgLT50ZXN0
X3N1aXRlX25hbWUoKSwKICAgICAgICAgICAgICAgICAgIkN1c3RvbU5hbWUvVHlwZVBhcmFtZXRy
aXplZFRlc3RXaXRoTmFtZXMvcGFyQ2hhcjAiKTsKICAgfQotICBpZiAodGVzdGluZzo6aW50ZXJu
YWw6OklzU2FtZTxUeXBlUGFyYW0sIGludD46OnZhbHVlKSB7CisgIGlmIChzdGQ6OmlzX3NhbWU8
VHlwZVBhcmFtLCBpbnQ+Ojp2YWx1ZSkgewogICAgIEVYUEVDVF9TVFJFUSg6OnRlc3Rpbmc6OlVu
aXRUZXN0OjpHZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAtPmN1cnJlbnRfdGVz
dF9pbmZvKCkKLSAgICAgICAgICAgICAgICAgICAgIC0+dGVzdF9jYXNlX25hbWUoKSwKKyAgICAg
ICAgICAgICAgICAgICAgIC0+dGVzdF9zdWl0ZV9uYW1lKCksCiAgICAgICAgICAgICAgICAgICJD
dXN0b21OYW1lL1R5cGVQYXJhbWV0cml6ZWRUZXN0V2l0aE5hbWVzL3BhckludDEiKTsKICAgfQog
fQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhO
YW1lcywgVGVzdENhc2VOYW1lKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFy
YW1ldHJpemVkVGVzdFdpdGhOYW1lcywgVGVzdFN1aXRlTmFtZSk7CiAKIGNsYXNzIFR5cGVQYXJh
bWV0cml6ZWRUZXN0TmFtZXMgewogIHB1YmxpYzoKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAg
IHN0YXRpYyBzdGQ6OnN0cmluZyBHZXROYW1lKGludCBpKSB7Ci0gICAgaWYgKHRlc3Rpbmc6Omlu
dGVybmFsOjpJc1NhbWU8VCwgY2hhcj46OnZhbHVlKSB7CisgICAgaWYgKHN0ZDo6aXNfc2FtZTxU
LCBjaGFyPjo6dmFsdWUpIHsKICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygicGFyQ2hhciIpICsg
Ojp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGkpOwogICAgIH0KLSAgICBpZiAodGVzdGluZzo6aW50
ZXJuYWw6OklzU2FtZTxULCBpbnQ+Ojp2YWx1ZSkgeworICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwg
aW50Pjo6dmFsdWUpIHsKICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygicGFySW50IikgKyA6OnRl
c3Rpbmc6OlByaW50VG9TdHJpbmcoaSk7CiAgICAgfQogICB9CiB9OwogCi1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChDdXN0b21OYW1lLCBUeXBlUGFyYW1ldHJpemVkVGVzdFdpdGhOYW1l
cywKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChDdXN0b21OYW1lLCBUeXBlUGFyYW1l
dHJpemVkVGVzdFdpdGhOYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR3b1R5
cGVzLCBUeXBlUGFyYW1ldHJpemVkVGVzdE5hbWVzKTsKIAotLy8gVGVzdHMgdGhhdCBtdWx0aXBs
ZSBUWVBFRF9URVNUX0NBU0VfUCdzIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBzYW1lCisvLyBUZXN0
cyB0aGF0IG11bHRpcGxlIFRZUEVEX1RFU1RfU1VJVEVfUCdzIGNhbiBiZSBkZWZpbmVkIGluIHRo
ZSBzYW1lCiAvLyB0cmFuc2xhdGlvbiB1bml0LgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNs
YXNzIFR5cGVkVGVzdFAxIDogcHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1Ao
VHlwZWRUZXN0UDEpOworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFAxKTsKIAotLy8gRm9y
IHRlc3RpbmcgdGhhdCB0aGUgY29kZSBiZXR3ZWVuIFRZUEVEX1RFU1RfQ0FTRV9QKCkgYW5kCisv
LyBGb3IgdGVzdGluZyB0aGF0IHRoZSBjb2RlIGJldHdlZW4gVFlQRURfVEVTVF9TVUlURV9QKCkg
YW5kCiAvLyBUWVBFRF9URVNUX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCi10
eXBlZGVmIGludCBJbnRBZnRlclR5cGVkVGVzdENhc2VQOwordXNpbmcgSW50QWZ0ZXJUeXBlZFRl
c3RTdWl0ZVAgPSBpbnQ7CiAKIFRZUEVEX1RFU1RfUChUeXBlZFRlc3RQMSwgQSkge30KIFRZUEVE
X1RFU1RfUChUeXBlZFRlc3RQMSwgQikge30KIAogLy8gRm9yIHRlc3RpbmcgdGhhdCB0aGUgY29k
ZSBiZXR3ZWVuIFRZUEVEX1RFU1RfUCgpIGFuZAotLy8gUkVHSVNURVJfVFlQRURfVEVTVF9DQVNF
X1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCi10eXBlZGVmIGludCBJbnRCZWZv
cmVSZWdpc3RlclR5cGVkVGVzdENhc2VQOworLy8gUkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9Q
KCkgaXMgbm90IGVuY2xvc2VkIGluIGEgbmFtZXNwYWNlLgordXNpbmcgSW50QmVmb3JlUmVnaXN0
ZXJUeXBlZFRlc3RTdWl0ZVAgPSBpbnQ7CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5
cGVkVGVzdFAxLCBBLCBCKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQ
MSwgQSwgQik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlwZWRUZXN0UDIgOiBw
dWJsaWMgVGVzdCB7CiB9OwogCi1UWVBFRF9URVNUX0NBU0VfUChUeXBlZFRlc3RQMik7CitUWVBF
RF9URVNUX1NVSVRFX1AoVHlwZWRUZXN0UDIpOwogCiAvLyBUaGlzIGFsc28gdmVyaWZpZXMgdGhh
dCB0ZXN0cyBmcm9tIGRpZmZlcmVudCB0eXBlLXBhcmFtZXRlcml6ZWQKIC8vIHRlc3QgY2FzZXMg
Y2FuIHNoYXJlIHRoZSBzYW1lIG5hbWUuCiBUWVBFRF9URVNUX1AoVHlwZWRUZXN0UDIsIEEpIHt9
CiAKLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVzdFAyLCBBKTsKK1JFR0lTVEVS
X1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlZFRlc3RQMiwgQSk7CiAKLS8vIFZlcmlmaWVzIHRoYXQg
dGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9URVNUX0NBU0VfUCgpIGFuZAotLy8gUkVHSVNURVJfVFlQ
RURfVEVTVF9DQVNFX1AoKSBpcyBub3QgZW5jbG9zZWQgaW4gYSBuYW1lc3BhY2UuCi1JbnRBZnRl
clR5cGVkVGVzdENhc2VQIGFmdGVyID0gMDsKLUludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0Q2Fz
ZVAgYmVmb3JlID0gMDsKKy8vIFZlcmlmaWVzIHRoYXQgdGhlIGNvZGUgYmV0d2VlbiBUWVBFRF9U
RVNUX1NVSVRFX1AoKSBhbmQKKy8vIFJFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUCgpIGlzIG5v
dCBlbmNsb3NlZCBpbiBhIG5hbWVzcGFjZS4KK0ludEFmdGVyVHlwZWRUZXN0U3VpdGVQIGFmdGVy
ID0gMDsKK0ludEJlZm9yZVJlZ2lzdGVyVHlwZWRUZXN0U3VpdGVQIGJlZm9yZSA9IDA7CiAKLS8v
IFZlcmlmaWVzIHRoYXQgdGhlIGxhc3QgYXJndW1lbnQgb2YgSU5TVEFOVElBVEVfVFlQRURfVEVT
VF9DQVNFX1AoKQorLy8gVmVyaWZpZXMgdGhhdCB0aGUgbGFzdCBhcmd1bWVudCBvZiBJTlNUQU5U
SUFURV9UWVBFRF9URVNUX1NVSVRFX1AoKQogLy8gY2FuIGJlIGVpdGhlciBhIHNpbmdsZSB0eXBl
IG9yIGEgVHlwZXM8Li4uPiB0eXBlIGxpc3QuCi1JTlNUQU5USUFURV9UWVBFRF9URVNUX0NBU0Vf
UChJbnQsIFR5cGVkVGVzdFAxLCBpbnQpOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1Ao
SW50LCBUeXBlZFRlc3RQMiwgVHlwZXM8aW50Pik7CitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NV
SVRFX1AoSW50LCBUeXBlZFRlc3RQMSwgaW50KTsKK0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJ
VEVfUChJbnQsIFR5cGVkVGVzdFAyLCBUeXBlczxpbnQ+KTsKIAogLy8gVGVzdHMgdGhhdCB0aGUg
c2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQgdGVzdCBjYXNlIGNhbiBiZQogLy8gaW5zdGFudGlhdGVk
IG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuCi1JTlNUQU5USUFU
RV9UWVBFRF9URVNUX0NBU0VfUChEb3VibGUsIFR5cGVkVGVzdFAyLCBUeXBlczxkb3VibGU+KTsK
K0lOU1RBTlRJQVRFX1RZUEVEX1RFU1RfU1VJVEVfUChEb3VibGUsIFR5cGVkVGVzdFAyLCBUeXBl
czxkb3VibGU+KTsKIAogLy8gVGVzdHMgdGhhdCB0aGUgc2FtZSB0eXBlLXBhcmFtZXRlcml6ZWQg
dGVzdCBjYXNlIGNhbiBiZQogLy8gaW5zdGFudGlhdGVkIGluIGRpZmZlcmVudCB0cmFuc2xhdGlv
biB1bml0cyBsaW5rZWQgdG9nZXRoZXIuCiAvLyAoQ29udGFpbmVyVGVzdCBpcyBhbHNvIGluc3Rh
bnRpYXRlZCBpbiBndGVzdC10eXBlZC10ZXN0X3Rlc3QuY2MuKQogdHlwZWRlZiBUeXBlczxzdGQ6
OnZlY3Rvcjxkb3VibGU+LCBzdGQ6OnNldDxjaGFyPiA+IE15Q29udGFpbmVyczsKLUlOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBDb250YWluZXJUZXN0LCBNeUNvbnRhaW5lcnMpOwor
SU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBDb250YWluZXJUZXN0LCBNeUNvbnRh
aW5lcnMpOwogCiAvLyBUZXN0cyB0aGF0IGEgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBj
YW4gYmUgZGVmaW5lZCBhbmQKIC8vIGluc3RhbnRpYXRlZCBpbiBhIG5hbWVzcGFjZS4KQEAgLTQw
Niw3ICszOTksNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIE51bWVyaWNUZXN0IDog
cHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoTnVtZXJpY1Rlc3QpOworVFlQ
RURfVEVTVF9TVUlURV9QKE51bWVyaWNUZXN0KTsKIAogVFlQRURfVEVTVF9QKE51bWVyaWNUZXN0
LCBEZWZhdWx0SXNaZXJvKSB7CiAgIEVYUEVDVF9FUSgwLCBUeXBlUGFyYW0oKSk7CkBAIC00MTYs
NDYgKzQwOSwyOSBAQCBUWVBFRF9URVNUX1AoTnVtZXJpY1Rlc3QsIFplcm9Jc0xlc3NUaGFuT25l
KSB7CiAgIEVYUEVDVF9MVChUeXBlUGFyYW0oMCksIFR5cGVQYXJhbSgxKSk7CiB9CiAKLVJFR0lT
VEVSX1RZUEVEX1RFU1RfQ0FTRV9QKE51bWVyaWNUZXN0LAorUkVHSVNURVJfVFlQRURfVEVTVF9T
VUlURV9QKE51bWVyaWNUZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdElz
WmVybywgWmVyb0lzTGVzc1RoYW5PbmUpOwogdHlwZWRlZiBUeXBlczxpbnQsIGRvdWJsZT4gTnVt
ZXJpY1R5cGVzOwotSU5TVEFOVElBVEVfVFlQRURfVEVTVF9DQVNFX1AoTXksIE51bWVyaWNUZXN0
LCBOdW1lcmljVHlwZXMpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBOdW1l
cmljVGVzdCwgTnVtZXJpY1R5cGVzKTsKIAogc3RhdGljIGNvbnN0IGNoYXIqIEdldFRlc3ROYW1l
KCkgewogICByZXR1cm4gdGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRf
dGVzdF9pbmZvKCktPm5hbWUoKTsKIH0KIC8vIFRlc3QgdGhlIHN0cmlwcGluZyBvZiBzcGFjZSBm
cm9tIHRlc3QgbmFtZXMKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUcmltbWVkVGVzdCA6
IHB1YmxpYyBUZXN0IHsgfTsKLVRZUEVEX1RFU1RfQ0FTRV9QKFRyaW1tZWRUZXN0KTsKK1RZUEVE
X1RFU1RfU1VJVEVfUChUcmltbWVkVGVzdCk7CiBUWVBFRF9URVNUX1AoVHJpbW1lZFRlc3QsIFRl
c3QxKSB7IEVYUEVDVF9TVFJFUSgiVGVzdDEiLCBHZXRUZXN0TmFtZSgpKTsgfQogVFlQRURfVEVT
VF9QKFRyaW1tZWRUZXN0LCBUZXN0MikgeyBFWFBFQ1RfU1RSRVEoIlRlc3QyIiwgR2V0VGVzdE5h
bWUoKSk7IH0KIFRZUEVEX1RFU1RfUChUcmltbWVkVGVzdCwgVGVzdDMpIHsgRVhQRUNUX1NUUkVR
KCJUZXN0MyIsIEdldFRlc3ROYW1lKCkpOyB9CiBUWVBFRF9URVNUX1AoVHJpbW1lZFRlc3QsIFRl
c3Q0KSB7IEVYUEVDVF9TVFJFUSgiVGVzdDQiLCBHZXRUZXN0TmFtZSgpKTsgfQogVFlQRURfVEVT
VF9QKFRyaW1tZWRUZXN0LCBUZXN0NSkgeyBFWFBFQ1RfU1RSRVEoIlRlc3Q1IiwgR2V0VGVzdE5h
bWUoKSk7IH0KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKAorUkVHSVNURVJfVFlQRURfVEVT
VF9TVUlURV9QKAogICAgIFRyaW1tZWRUZXN0LAogICAgIFRlc3QxLCBUZXN0MixUZXN0MyAsIFRl
c3Q0ICxUZXN0NSApOyAgLy8gTk9MSU5UCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1l
IFQyPiBzdHJ1Y3QgTXlQYWlyIHt9OwogLy8gQmUgc3VyZSB0byB0cnkgYSB0eXBlIHdpdGggYSBj
b21tYSBpbiBpdHMgbmFtZSBqdXN0IGluIGNhc2UgaXQgbWF0dGVycy4KIHR5cGVkZWYgVHlwZXM8
aW50LCBkb3VibGUsIE15UGFpcjxpbnQsIGludD4gPiBUcmltVHlwZXM7Ci1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgVHJpbW1lZFRlc3QsIFRyaW1UeXBlcyk7CitJTlNUQU5USUFU
RV9UWVBFRF9URVNUX1NVSVRFX1AoTXksIFRyaW1tZWRUZXN0LCBUcmltVHlwZXMpOwogCiB9ICAv
LyBuYW1lc3BhY2UgbGlicmFyeTIKIAotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVF9Q
Ci0KLSNpZiAhZGVmaW5lZChHVEVTVF9IQVNfVFlQRURfVEVTVCkgJiYgIWRlZmluZWQoR1RFU1Rf
SEFTX1RZUEVEX1RFU1RfUCkKLQotLy8gR29vZ2xlIFRlc3QgbWF5IG5vdCBzdXBwb3J0IHR5cGUt
cGFyYW1ldGVyaXplZCB0ZXN0cyB3aXRoIHNvbWUKLS8vIGNvbXBpbGVycy4gSWYgd2UgdXNlIGNv
bmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGNvbXBpbGUgb3V0IGFsbAotLy8gY29kZSByZWZlcnJp
bmcgdG8gdGhlIGd0ZXN0X21haW4gbGlicmFyeSwgTVNWQyBsaW5rZXIgd2lsbCBub3QgbGluawot
Ly8gdGhhdCBsaWJyYXJ5IGF0IGFsbCBhbmQgY29uc2VxdWVudGx5IGNvbXBsYWluIGFib3V0IG1p
c3NpbmcgZW50cnkKLS8vIHBvaW50IGRlZmluZWQgaW4gdGhhdCBsaWJyYXJ5IChmYXRhbCBlcnJv
ciBMTksxNTYxOiBlbnRyeSBwb2ludAotLy8gbXVzdCBiZSBkZWZpbmVkKS4gVGhpcyBkdW1teSB0
ZXN0IGtlZXBzIGd0ZXN0X21haW4gbGlua2VkIGluLgotVEVTVChEdW1teVRlc3QsIFR5cGVkVGVz
dHNBcmVOb3RTdXBwb3J0ZWRPblRoaXNQbGF0Zm9ybSkge30KLQotI2lmIF9NU0NfVkVSCi1HVEVT
VF9ESVNBQkxFX01TQ19XQVJOSU5HU19QT1BfKCkgIC8vICA0MTI3Ci0jZW5kaWYgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vICBfTVNDX1ZFUgotCi0jZW5kaWYgIC8vICNpZiAhZGVmaW5l
ZChHVEVTVF9IQVNfVFlQRURfVEVTVCkgJiYgIWRlZmluZWQoR1RFU1RfSEFTX1RZUEVEX1RFU1Rf
UCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQt
dGVzdF90ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0LXR5cGVkLXRl
c3RfdGVzdC5oCmluZGV4IDJjY2U2N2M4MjVhNmNhYmRiOWE1NGI5MTkyOWMwMGM5OTJhMGQ0N2Mu
LjhjZTU1OWM5OWY3MzQxY2ViOGEwYjJiODljNGIxYTk3MDI2ZmE1YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdC10eXBlZC10ZXN0X3Rlc3QuaApAQCAt
MjcsMTQgKzI3LDExIEBACiAvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIC8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQotI2lm
bmRlZiBHVEVTVF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXwotI2RlZmluZSBHVEVTVF9U
RVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXworI2lmbmRlZiBHT09HTEVURVNUX1RFU1RfR1RF
U1RfVFlQRURfVEVTVF9URVNUX0hfCisjZGVmaW5lIEdPT0dMRVRFU1RfVEVTVF9HVEVTVF9UWVBF
RF9URVNUX1RFU1RfSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCiAKLSNpZiBHVEVTVF9I
QVNfVFlQRURfVEVTVF9QCi0KIHVzaW5nIHRlc3Rpbmc6OlRlc3Q7CiAKIC8vIEZvciB0ZXN0aW5n
IHRoYXQgdGhlIHNhbWUgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3QgY2FzZSBjYW4gYmUKQEAgLTQ2
LDcgKzQzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBDb250YWluZXJUZXN0IDog
cHVibGljIFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoQ29udGFpbmVyVGVzdCk7CitU
WVBFRF9URVNUX1NVSVRFX1AoQ29udGFpbmVyVGVzdCk7CiAKIFRZUEVEX1RFU1RfUChDb250YWlu
ZXJUZXN0LCBDYW5CZURlZmF1bHRDb25zdHJ1Y3RlZCkgewogICBUeXBlUGFyYW0gY29udGFpbmVy
OwpAQCAtNTcsOSArNTQsNyBAQCBUWVBFRF9URVNUX1AoQ29udGFpbmVyVGVzdCwgSW5pdGlhbFNp
emVJc1plcm8pIHsKICAgRVhQRUNUX0VRKDBVLCBjb250YWluZXIuc2l6ZSgpKTsKIH0KIAotUkVH
SVNURVJfVFlQRURfVEVTVF9DQVNFX1AoQ29udGFpbmVyVGVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENhbkJlRGVmYXVsdENvbnN0cnVjdGVkLCBJbml0aWFsU2l6ZUlzWmVybyk7Ci0K
LSNlbmRpZiAgLy8gR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAorUkVHSVNURVJfVFlQRURfVEVTVF9T
VUlURV9QKENvbnRhaW5lclRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuQmVE
ZWZhdWx0Q29uc3RydWN0ZWQsIEluaXRpYWxTaXplSXNaZXJvKTsKIAotI2VuZGlmICAvLyBHVEVT
VF9URVNUX0dURVNUX1RZUEVEX1RFU1RfVEVTVF9IXworI2VuZGlmICAvLyBHT09HTEVURVNUX1RF
U1RfR1RFU1RfVFlQRURfVEVTVF9URVNUX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC90ZXN0L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdC11bml0dGVzdC1hcGlfdGVzdC5jYwppbmRleCBmM2VhMDNhNTk2
ZDBmOTlhMzkxMjUyNjMwZGNhMTA2MjI5MzExMmZjLi44ZWY1MDU4MzhjNzBkZmM2ZTMzNTRlODUx
ODlmYzNmYWYwYjBhYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0LXVuaXR0ZXN0LWFwaV90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3QtdW5pdHRlc3QtYXBpX3Rlc3QuY2MKQEAgLTUxLDYxICs1MSw1NiBAQCBzdHJ1
Y3QgTGVzc0J5TmFtZSB7CiAKIGNsYXNzIFVuaXRUZXN0SGVscGVyIHsKICBwdWJsaWM6Ci0gIC8v
IFJldHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0ZXN0IGNhc2VzIHNvcnRlZCBi
eSB0aGUgdGVzdCBjYXNlCisgIC8vIFJldHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFs
bCB0ZXN0IHN1aXRlcyBzb3J0ZWQgYnkgdGhlIHRlc3Qgc3VpdGUKICAgLy8gbmFtZS4gIFRoZSBj
YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheS4KLSAgc3RhdGljIFRl
c3RDYXNlIGNvbnN0KiogR2V0U29ydGVkVGVzdENhc2VzKCkgeworICBzdGF0aWMgVGVzdFN1aXRl
IGNvbnN0KiogR2V0U29ydGVkVGVzdFN1aXRlcygpIHsKICAgICBVbml0VGVzdCYgdW5pdF90ZXN0
ID0gKlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpOwotICAgIFRlc3RDYXNlIGNvbnN0KiogY29uc3Qg
dGVzdF9jYXNlcyA9Ci0gICAgICAgIG5ldyBjb25zdCBUZXN0Q2FzZSpbdW5pdF90ZXN0LnRvdGFs
X3Rlc3RfY2FzZV9jb3VudCgpXTsKKyAgICBhdXRvIGNvbnN0KiogY29uc3QgdGVzdF9zdWl0ZXMg
PSBuZXcgY29uc3QgVGVzdFN1aXRlKltzdGF0aWNfY2FzdDxzaXplX3Q+KAorICAgICAgdW5pdF90
ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKSldOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCB1bml0X3Rlc3QudG90YWxfdGVzdF9jYXNlX2NvdW50KCk7ICsraSkKLSAgICAgIHRlc3RfY2Fz
ZXNbaV0gPSB1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCB1bml0X3Rlc3QudG90YWxfdGVzdF9zdWl0ZV9jb3VudCgpOyArK2kpCisgICAgICB0ZXN0X3N1
aXRlc1tpXSA9IHVuaXRfdGVzdC5HZXRUZXN0U3VpdGUoaSk7CiAKLSAgICBzdGQ6OnNvcnQodGVz
dF9jYXNlcywKLSAgICAgICAgICAgICAgdGVzdF9jYXNlcyArIHVuaXRfdGVzdC50b3RhbF90ZXN0
X2Nhc2VfY291bnQoKSwKLSAgICAgICAgICAgICAgTGVzc0J5TmFtZTxUZXN0Q2FzZT4oKSk7Ci0g
ICAgcmV0dXJuIHRlc3RfY2FzZXM7CisgICAgc3RkOjpzb3J0KHRlc3Rfc3VpdGVzLAorICAgICAg
ICAgICAgICB0ZXN0X3N1aXRlcyArIHVuaXRfdGVzdC50b3RhbF90ZXN0X3N1aXRlX2NvdW50KCks
CisgICAgICAgICAgICAgIExlc3NCeU5hbWU8VGVzdFN1aXRlPigpKTsKKyAgICByZXR1cm4gdGVz
dF9zdWl0ZXM7CiAgIH0KIAotICAvLyBSZXR1cm5zIHRoZSB0ZXN0IGNhc2UgYnkgaXRzIG5hbWUu
ICBUaGUgY2FsbGVyIGRvZXNuJ3Qgb3duIHRoZSByZXR1cm5lZAorICAvLyBSZXR1cm5zIHRoZSB0
ZXN0IHN1aXRlIGJ5IGl0cyBuYW1lLiAgVGhlIGNhbGxlciBkb2Vzbid0IG93biB0aGUgcmV0dXJu
ZWQKICAgLy8gcG9pbnRlci4KLSAgc3RhdGljIGNvbnN0IFRlc3RDYXNlKiBGaW5kVGVzdENhc2Uo
Y29uc3QgY2hhciogbmFtZSkgeworICBzdGF0aWMgY29uc3QgVGVzdFN1aXRlKiBGaW5kVGVzdFN1
aXRlKGNvbnN0IGNoYXIqIG5hbWUpIHsKICAgICBVbml0VGVzdCYgdW5pdF90ZXN0ID0gKlVuaXRU
ZXN0OjpHZXRJbnN0YW5jZSgpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRv
dGFsX3Rlc3RfY2FzZV9jb3VudCgpOyArK2kpIHsKLSAgICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0
X2Nhc2UgPSB1bml0X3Rlc3QuR2V0VGVzdENhc2UoaSk7Ci0gICAgICBpZiAoMCA9PSBzdHJjbXAo
dGVzdF9jYXNlLT5uYW1lKCksIG5hbWUpKQotICAgICAgICByZXR1cm4gdGVzdF9jYXNlOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgdW5pdF90ZXN0LnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsg
KytpKSB7CisgICAgICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSB1bml0X3Rlc3QuR2V0
VGVzdFN1aXRlKGkpOworICAgICAgaWYgKDAgPT0gc3RyY21wKHRlc3Rfc3VpdGUtPm5hbWUoKSwg
bmFtZSkpCisgICAgICAgIHJldHVybiB0ZXN0X3N1aXRlOwogICAgIH0KLSAgICByZXR1cm4gTlVM
TDsKKyAgICByZXR1cm4gbnVsbHB0cjsKICAgfQogCi0gIC8vIFJldHVybnMgdGhlIGFycmF5IG9m
IHBvaW50ZXJzIHRvIGFsbCB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgdGVzdCBjYXNlCisgIC8vIFJl
dHVybnMgdGhlIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFsbCB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIg
dGVzdCBzdWl0ZQogICAvLyBzb3J0ZWQgYnkgdGhlIHRlc3QgbmFtZS4gIFRoZSBjYWxsZXIgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZQogICAvLyBhcnJheS4KLSAgc3RhdGljIFRlc3RJ
bmZvIGNvbnN0KiogR2V0U29ydGVkVGVzdHMoY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSkgewot
ICAgIFRlc3RJbmZvIGNvbnN0KiogY29uc3QgdGVzdHMgPQotICAgICAgICBuZXcgY29uc3QgVGVz
dEluZm8qW3Rlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpXTsKKyAgc3RhdGljIFRlc3RJbmZv
IGNvbnN0KiogR2V0U29ydGVkVGVzdHMoY29uc3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlKSB7Cisg
ICAgVGVzdEluZm8gY29uc3QqKiBjb25zdCB0ZXN0cyA9IG5ldyBjb25zdCBUZXN0SW5mbypbc3Rh
dGljX2Nhc3Q8c2l6ZV90PigKKyAgICAgIHRlc3Rfc3VpdGUtPnRvdGFsX3Rlc3RfY291bnQoKSld
OwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291bnQo
KTsgKytpKQotICAgICAgdGVzdHNbaV0gPSB0ZXN0X2Nhc2UtPkdldFRlc3RJbmZvKGkpOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpOyArK2kp
CisgICAgICB0ZXN0c1tpXSA9IHRlc3Rfc3VpdGUtPkdldFRlc3RJbmZvKGkpOwogCi0gICAgc3Rk
Ojpzb3J0KHRlc3RzLCB0ZXN0cyArIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9jb3VudCgpLAorICAg
IHN0ZDo6c29ydCh0ZXN0cywgdGVzdHMgKyB0ZXN0X3N1aXRlLT50b3RhbF90ZXN0X2NvdW50KCks
CiAgICAgICAgICAgICAgIExlc3NCeU5hbWU8VGVzdEluZm8+KCkpOwogICAgIHJldHVybiB0ZXN0
czsKICAgfQogfTsKIAotI2lmIEdURVNUX0hBU19UWVBFRF9URVNUCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gY2xhc3MgVGVzdENhc2VXaXRoQ29tbWVudFRlc3QgOiBwdWJsaWMgVGVzdCB7fTsKLVRZ
UEVEX1RFU1RfQ0FTRShUZXN0Q2FzZVdpdGhDb21tZW50VGVzdCwgVHlwZXM8aW50Pik7Ci1UWVBF
RF9URVNUKFRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LCBEdW1teSkge30KK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QgOiBwdWJsaWMgVGVzdCB7fTsK
K1RZUEVEX1RFU1RfU1VJVEUoVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LCBUeXBlczxpbnQ+KTsK
K1RZUEVEX1RFU1QoVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LCBEdW1teSkge30KIAotY29uc3Qg
aW50IGtUeXBlZFRlc3RDYXNlcyA9IDE7Citjb25zdCBpbnQga1R5cGVkVGVzdFN1aXRlcyA9IDE7
CiBjb25zdCBpbnQga1R5cGVkVGVzdHMgPSAxOwotI2Vsc2UKLWNvbnN0IGludCBrVHlwZWRUZXN0
Q2FzZXMgPSAwOwotY29uc3QgaW50IGtUeXBlZFRlc3RzID0gMDsKLSNlbmRpZiAgLy8gR1RFU1Rf
SEFTX1RZUEVEX1RFU1QKIAogLy8gV2UgY2FuIG9ubHkgdGVzdCB0aGUgYWNjZXNzb3JzIHRoYXQg
ZG8gbm90IGNoYW5nZSB2YWx1ZSB3aGlsZSB0ZXN0cyBydW4uCiAvLyBTaW5jZSB0ZXN0cyBjYW4g
YmUgcnVuIGluIGFueSBvcmRlciwgdGhlIHZhbHVlcyB0aGUgYWNjZXNzb3JzIHRoYXQgdHJhY2sK
QEAgLTExMywyMSArMTA4LDE5IEBAIGNvbnN0IGludCBrVHlwZWRUZXN0cyA9IDA7CiBURVNUKEFw
aVRlc3QsIFVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29yaykgewogICBVbml0VGVzdCogdW5p
dF90ZXN0ID0gVW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7CiAKLSAgQVNTRVJUX0VRKDIgKyBrVHlw
ZWRUZXN0Q2FzZXMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9jYXNlX2NvdW50KCkpOwotICBFWFBF
Q1RfRVEoMSArIGtUeXBlZFRlc3RDYXNlcywgdW5pdF90ZXN0LT50ZXN0X2Nhc2VfdG9fcnVuX2Nv
dW50KCkpOworICBBU1NFUlRfRVEoMiArIGtUeXBlZFRlc3RTdWl0ZXMsIHVuaXRfdGVzdC0+dG90
YWxfdGVzdF9zdWl0ZV9jb3VudCgpKTsKKyAgRVhQRUNUX0VRKDEgKyBrVHlwZWRUZXN0U3VpdGVz
LCB1bml0X3Rlc3QtPnRlc3Rfc3VpdGVfdG9fcnVuX2NvdW50KCkpOwogICBFWFBFQ1RfRVEoMiwg
dW5pdF90ZXN0LT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwogICBFWFBFQ1RfRVEoNSArIGtUeXBl
ZFRlc3RzLCB1bml0X3Rlc3QtPnRvdGFsX3Rlc3RfY291bnQoKSk7CiAgIEVYUEVDVF9FUSgzICsg
a1R5cGVkVGVzdHMsIHVuaXRfdGVzdC0+dGVzdF90b19ydW5fY291bnQoKSk7CiAKLSAgY29uc3Qg
VGVzdENhc2UqKiBjb25zdCB0ZXN0X2Nhc2VzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRl
c3RDYXNlcygpOworICBjb25zdCBUZXN0U3VpdGUqKiBjb25zdCB0ZXN0X3N1aXRlcyA9IFVuaXRU
ZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0U3VpdGVzKCk7CiAKLSAgRVhQRUNUX1NUUkVRKCJBcGlU
ZXN0IiwgdGVzdF9jYXNlc1swXS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9U
ZXN0IiwgdGVzdF9jYXNlc1sxXS0+bmFtZSgpKTsKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAot
ICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X2Nhc2VzWzJd
LT5uYW1lKCkpOwotI2VuZGlmICAvLyBHVEVTVF9IQVNfVFlQRURfVEVTVAorICBFWFBFQ1RfU1RS
RVEoIkFwaVRlc3QiLCB0ZXN0X3N1aXRlc1swXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJE
SVNBQkxFRF9UZXN0IiwgdGVzdF9zdWl0ZXNbMV0tPm5hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgi
VGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X3N1aXRlc1syXS0+bmFtZSgpKTsKIAot
ICBkZWxldGVbXSB0ZXN0X2Nhc2VzOworICBkZWxldGVbXSB0ZXN0X3N1aXRlczsKIAogICAvLyBU
aGUgZm9sbG93aW5nIGxpbmVzIGluaXRpYXRlIGFjdGlvbnMgdG8gdmVyaWZ5IGNlcnRhaW4gbWV0
aG9kcyBpbgogICAvLyBGaW5hbFN1Y2Nlc3NDaGVja2VyOjpUZWFyRG93bi4KQEAgLTEzNywxNjAg
KzEzMCwxNTcgQEAgVEVTVChBcGlUZXN0LCBVbml0VGVzdEltbXV0YWJsZUFjY2Vzc29yc1dvcmsp
IHsKIH0KIAogQXNzZXJ0aW9uUmVzdWx0IElzTnVsbChjb25zdCBjaGFyKiBzdHIpIHsKLSAgaWYg
KHN0ciAhPSBOVUxMKSB7CisgIGlmIChzdHIgIT0gbnVsbHB0cikgewogICAgIHJldHVybiB0ZXN0
aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgImFyZ3VtZW50IGlzICIgPDwgc3RyOwogICB9CiAg
IHJldHVybiBBc3NlcnRpb25TdWNjZXNzKCk7CiB9CiAKLVRFU1QoQXBpVGVzdCwgVGVzdENhc2VJ
bW11dGFibGVBY2Nlc3NvcnNXb3JrKSB7Ci0gIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2UgPSBV
bml0VGVzdEhlbHBlcjo6RmluZFRlc3RDYXNlKCJBcGlUZXN0Iik7Ci0gIEFTU0VSVF9UUlVFKHRl
c3RfY2FzZSAhPSBOVUxMKTsKK1RFU1QoQXBpVGVzdCwgVGVzdFN1aXRlSW1tdXRhYmxlQWNjZXNz
b3JzV29yaykgeworICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUgPSBVbml0VGVzdEhlbHBl
cjo6RmluZFRlc3RTdWl0ZSgiQXBpVGVzdCIpOworICBBU1NFUlRfVFJVRSh0ZXN0X3N1aXRlICE9
IG51bGxwdHIpOwogCi0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RfY2FzZS0+bmFtZSgp
KTsKLSAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3RfY2FzZS0+dHlwZV9wYXJhbSgpKSk7Ci0gIEVY
UEVDVF9UUlVFKHRlc3RfY2FzZS0+c2hvdWxkX3J1bigpKTsKLSAgRVhQRUNUX0VRKDEsIHRlc3Rf
Y2FzZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKLSAgRVhQRUNUX0VRKDMsIHRlc3RfY2FzZS0+
dGVzdF90b19ydW5fY291bnQoKSk7Ci0gIEFTU0VSVF9FUSg0LCB0ZXN0X2Nhc2UtPnRvdGFsX3Rl
c3RfY291bnQoKSk7CisgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3Rfc3VpdGUtPm5hbWUo
KSk7CisgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X3N1aXRlLT50eXBlX3BhcmFtKCkpKTsKKyAg
RVhQRUNUX1RSVUUodGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigpKTsKKyAgRVhQRUNUX0VRKDEsIHRl
c3Rfc3VpdGUtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgIEVYUEVDVF9FUSgzLCB0ZXN0X3N1
aXRlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKKyAgQVNTRVJUX0VRKDQsIHRlc3Rfc3VpdGUtPnRv
dGFsX3Rlc3RfY291bnQoKSk7CiAKLSAgY29uc3QgVGVzdEluZm8qKiB0ZXN0cyA9IFVuaXRUZXN0
SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICBjb25zdCBUZXN0SW5mbyoqIHRl
c3RzID0gVW5pdFRlc3RIZWxwZXI6OkdldFNvcnRlZFRlc3RzKHRlc3Rfc3VpdGUpOwogCiAgIEVY
UEVDVF9TVFJFUSgiRElTQUJMRURfRHVtbXkxIiwgdGVzdHNbMF0tPm5hbWUoKSk7Ci0gIEVYUEVD
VF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNU
X1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNU
X1RSVUUoSXNOdWxsKHRlc3RzWzBdLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElz
TnVsbCh0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9GQUxTRSh0ZXN0c1swXS0+
c2hvdWxkX3J1bigpKTsKIAotICBFWFBFQ1RfU1RSRVEoIlRlc3RDYXNlRGlzYWJsZWRBY2Nlc3Nv
cnNXb3JrIiwgdGVzdHNbMV0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRl
c3RzWzFdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVEaXNh
YmxlZEFjY2Vzc29yc1dvcmsiLCB0ZXN0c1sxXS0+bmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJB
cGlUZXN0IiwgdGVzdHNbMV0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgRVhQRUNUX1RSVUUoSXNO
dWxsKHRlc3RzWzFdLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0
c1sxXS0+dHlwZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKHRlc3RzWzFdLT5zaG91bGRfcnVu
KCkpOwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VJbW11dGFibGVBY2Nlc3NvcnNXb3JrIiwg
dGVzdHNbMl0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJdLT50
ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVJbW11dGFibGVBY2Nl
c3NvcnNXb3JrIiwgdGVzdHNbMl0tPm5hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIs
IHRlc3RzWzJdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0
c1syXS0+dmFsdWVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMl0tPnR5
cGVfcGFyYW0oKSkpOwogICBFWFBFQ1RfVFJVRSh0ZXN0c1syXS0+c2hvdWxkX3J1bigpKTsKIAog
ICBFWFBFQ1RfU1RSRVEoIlVuaXRUZXN0SW1tdXRhYmxlQWNjZXNzb3JzV29yayIsIHRlc3RzWzNd
LT5uYW1lKCkpOwotICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1szXS0+dGVzdF9jYXNl
X25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzNdLT50ZXN0X3N1aXRl
X25hbWUoKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1szXS0+dmFsdWVfcGFyYW0oKSkp
OwogICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbM10tPnR5cGVfcGFyYW0oKSkpOwogICBFWFBF
Q1RfVFJVRSh0ZXN0c1szXS0+c2hvdWxkX3J1bigpKTsKIAogICBkZWxldGVbXSB0ZXN0czsKLSAg
dGVzdHMgPSBOVUxMOworICB0ZXN0cyA9IG51bGxwdHI7CiAKLSNpZiBHVEVTVF9IQVNfVFlQRURf
VEVTVAotICB0ZXN0X2Nhc2UgPSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RDYXNlKCJUZXN0Q2Fz
ZVdpdGhDb21tZW50VGVzdC8wIik7Ci0gIEFTU0VSVF9UUlVFKHRlc3RfY2FzZSAhPSBOVUxMKTsK
KyAgdGVzdF9zdWl0ZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdFN1aXRlKCJUZXN0U3VpdGVX
aXRoQ29tbWVudFRlc3QvMCIpOworICBBU1NFUlRfVFJVRSh0ZXN0X3N1aXRlICE9IG51bGxwdHIp
OwogCi0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2Fz
ZS0+bmFtZSgpKTsKLSAgRVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPGludD4oKS5jX3N0cigpLCB0
ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSk7Ci0gIEVYUEVDVF9UUlVFKHRlc3RfY2FzZS0+c2hvdWxk
X3J1bigpKTsKLSAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgp
KTsKLSAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZS0+dGVzdF90b19ydW5fY291bnQoKSk7Ci0gIEFT
U0VSVF9FUSgxLCB0ZXN0X2Nhc2UtPnRvdGFsX3Rlc3RfY291bnQoKSk7CisgIEVYUEVDVF9TVFJF
USgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0X3N1aXRlLT5uYW1lKCkpOworICBF
WFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigpLCB0ZXN0X3N1aXRl
LT50eXBlX3BhcmFtKCkpOworICBFWFBFQ1RfVFJVRSh0ZXN0X3N1aXRlLT5zaG91bGRfcnVuKCkp
OworICBFWFBFQ1RfRVEoMCwgdGVzdF9zdWl0ZS0+ZGlzYWJsZWRfdGVzdF9jb3VudCgpKTsKKyAg
RVhQRUNUX0VRKDEsIHRlc3Rfc3VpdGUtPnRlc3RfdG9fcnVuX2NvdW50KCkpOworICBBU1NFUlRf
RVEoMSwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpKTsKIAotICB0ZXN0cyA9IFVuaXRU
ZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICB0ZXN0cyA9IFVuaXRUZXN0
SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsKIAogICBFWFBFQ1RfU1RSRVEoIkR1
bW15IiwgdGVzdHNbMF0tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiVGVzdENhc2VXaXRoQ29t
bWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X2Nhc2VfbmFtZSgpKTsKKyAgRVhQRUNUX1NUUkVR
KCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RzWzBdLT50ZXN0X3N1aXRlX25hbWUo
KSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1swXS0+dmFsdWVfcGFyYW0oKSkpOwotICBF
WFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8aW50PigpLmNfc3RyKCksIHRlc3RzWzBdLT50eXBlX3Bh
cmFtKCkpOworICBFWFBFQ1RfU1RSRVEoR2V0VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigp
LCB0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKTsKICAgRVhQRUNUX1RSVUUodGVzdHNbMF0tPnNob3Vs
ZF9ydW4oKSk7CiAKICAgZGVsZXRlW10gdGVzdHM7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBF
RF9URVNUCiB9CiAKLVRFU1QoQXBpVGVzdCwgVGVzdENhc2VEaXNhYmxlZEFjY2Vzc29yc1dvcmsp
IHsKLSAgY29uc3QgVGVzdENhc2UqIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVz
dENhc2UoIkRJU0FCTEVEX1Rlc3QiKTsKLSAgQVNTRVJUX1RSVUUodGVzdF9jYXNlICE9IE5VTEwp
OworVEVTVChBcGlUZXN0LCBUZXN0U3VpdGVEaXNhYmxlZEFjY2Vzc29yc1dvcmspIHsKKyAgY29u
c3QgVGVzdFN1aXRlKiB0ZXN0X3N1aXRlID0gVW5pdFRlc3RIZWxwZXI6OkZpbmRUZXN0U3VpdGUo
IkRJU0FCTEVEX1Rlc3QiKTsKKyAgQVNTRVJUX1RSVUUodGVzdF9zdWl0ZSAhPSBudWxscHRyKTsK
IAotICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X2Nhc2UtPm5hbWUoKSk7Ci0g
IEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2UtPnR5cGVfcGFyYW0oKSkpOwotICBFWFBFQ1Rf
RkFMU0UodGVzdF9jYXNlLT5zaG91bGRfcnVuKCkpOwotICBFWFBFQ1RfRVEoMSwgdGVzdF9jYXNl
LT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlLT50ZXN0
X3RvX3J1bl9jb3VudCgpKTsKLSAgQVNTRVJUX0VRKDEsIHRlc3RfY2FzZS0+dG90YWxfdGVzdF9j
b3VudCgpKTsKKyAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0IiwgdGVzdF9zdWl0ZS0+bmFt
ZSgpKTsKKyAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rfc3VpdGUtPnR5cGVfcGFyYW0oKSkpOwor
ICBFWFBFQ1RfRkFMU0UodGVzdF9zdWl0ZS0+c2hvdWxkX3J1bigpKTsKKyAgRVhQRUNUX0VRKDEs
IHRlc3Rfc3VpdGUtPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgIEVYUEVDVF9FUSgwLCB0ZXN0
X3N1aXRlLT50ZXN0X3RvX3J1bl9jb3VudCgpKTsKKyAgQVNTRVJUX0VRKDEsIHRlc3Rfc3VpdGUt
PnRvdGFsX3Rlc3RfY291bnQoKSk7CiAKLSAgY29uc3QgVGVzdEluZm8qIGNvbnN0IHRlc3RfaW5m
byA9IHRlc3RfY2FzZS0+R2V0VGVzdEluZm8oMCk7CisgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0
ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT5HZXRUZXN0SW5mbygwKTsKICAgRVhQRUNUX1NUUkVRKCJE
dW1teTIiLCB0ZXN0X2luZm8tPm5hbWUoKSk7Ci0gIEVYUEVDVF9TVFJFUSgiRElTQUJMRURfVGVz
dCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7CisgIEVYUEVDVF9TVFJFUSgiRElTQUJM
RURfVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICBFWFBFQ1RfVFJVRShJ
c051bGwodGVzdF9pbmZvLT52YWx1ZV9wYXJhbSgpKSk7CiAgIEVYUEVDVF9UUlVFKElzTnVsbCh0
ZXN0X2luZm8tPnR5cGVfcGFyYW0oKSkpOwogICBFWFBFQ1RfRkFMU0UodGVzdF9pbmZvLT5zaG91
bGRfcnVuKCkpOwogfQogCiAvLyBUaGVzZSB0d28gdGVzdHMgYXJlIGhlcmUgdG8gcHJvdmlkZSBz
dXBwb3J0IGZvciB0ZXN0aW5nCi0vLyB0ZXN0X2Nhc2VfdG9fcnVuX2NvdW50LCBkaXNhYmxlZF90
ZXN0X2NvdW50LCBhbmQgdGVzdF90b19ydW5fY291bnQuCisvLyB0ZXN0X3N1aXRlX3RvX3J1bl9j
b3VudCwgZGlzYWJsZWRfdGVzdF9jb3VudCwgYW5kIHRlc3RfdG9fcnVuX2NvdW50LgogVEVTVChB
cGlUZXN0LCBESVNBQkxFRF9EdW1teTEpIHt9CiBURVNUKERJU0FCTEVEX1Rlc3QsIER1bW15Mikg
e30KIAogY2xhc3MgRmluYWxTdWNjZXNzQ2hlY2tlciA6IHB1YmxpYyBFbnZpcm9ubWVudCB7CiAg
cHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24o
KSBvdmVycmlkZSB7CiAgICAgVW5pdFRlc3QqIHVuaXRfdGVzdCA9IFVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpOwogCi0gICAgRVhQRUNUX0VRKDEgKyBrVHlwZWRUZXN0Q2FzZXMsIHVuaXRfdGVzdC0+
c3VjY2Vzc2Z1bF90ZXN0X2Nhc2VfY291bnQoKSk7CisgICAgRVhQRUNUX0VRKDEgKyBrVHlwZWRU
ZXN0U3VpdGVzLCB1bml0X3Rlc3QtPnN1Y2Nlc3NmdWxfdGVzdF9zdWl0ZV9jb3VudCgpKTsKICAg
ICBFWFBFQ1RfRVEoMyArIGtUeXBlZFRlc3RzLCB1bml0X3Rlc3QtPnN1Y2Nlc3NmdWxfdGVzdF9j
b3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdW5pdF90ZXN0LT5mYWlsZWRfdGVzdF9jYXNlX2Nv
dW50KCkpOworICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3QtPmZhaWxlZF90ZXN0X3N1aXRlX2Nv
dW50KCkpOwogICAgIEVYUEVDVF9FUSgwLCB1bml0X3Rlc3QtPmZhaWxlZF90ZXN0X2NvdW50KCkp
OwogICAgIEVYUEVDVF9UUlVFKHVuaXRfdGVzdC0+UGFzc2VkKCkpOwogICAgIEVYUEVDVF9GQUxT
RSh1bml0X3Rlc3QtPkZhaWxlZCgpKTsKLSAgICBBU1NFUlRfRVEoMiArIGtUeXBlZFRlc3RDYXNl
cywgdW5pdF90ZXN0LT50b3RhbF90ZXN0X2Nhc2VfY291bnQoKSk7Ci0KLSAgICBjb25zdCBUZXN0
Q2FzZSoqIGNvbnN0IHRlc3RfY2FzZXMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdENh
c2VzKCk7Ci0KLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0X2Nhc2VzWzBdLT5uYW1l
KCkpOwotICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0X2Nhc2VzWzBdLT50eXBlX3BhcmFtKCkp
KTsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0X2Nhc2VzWzBdLT5zaG91bGRfcnVuKCkpOwotICAgIEVY
UEVDVF9FUSgxLCB0ZXN0X2Nhc2VzWzBdLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOwotICAgIEFT
U0VSVF9FUSg0LCB0ZXN0X2Nhc2VzWzBdLT50b3RhbF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVD
VF9FUSgzLCB0ZXN0X2Nhc2VzWzBdLT5zdWNjZXNzZnVsX3Rlc3RfY291bnQoKSk7Ci0gICAgRVhQ
RUNUX0VRKDAsIHRlc3RfY2FzZXNbMF0tPmZhaWxlZF90ZXN0X2NvdW50KCkpOwotICAgIEVYUEVD
VF9UUlVFKHRlc3RfY2FzZXNbMF0tPlBhc3NlZCgpKTsKLSAgICBFWFBFQ1RfRkFMU0UodGVzdF9j
YXNlc1swXS0+RmFpbGVkKCkpOwotCi0gICAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9UZXN0Iiwg
dGVzdF9jYXNlc1sxXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9jYXNl
c1sxXS0+dHlwZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKHRlc3RfY2FzZXNbMV0tPnNo
b3VsZF9ydW4oKSk7Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZXNbMV0tPmRpc2FibGVkX3Rl
c3RfY291bnQoKSk7Ci0gICAgQVNTRVJUX0VRKDEsIHRlc3RfY2FzZXNbMV0tPnRvdGFsX3Rlc3Rf
Y291bnQoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZXNbMV0tPnN1Y2Nlc3NmdWxfdGVz
dF9jb3VudCgpKTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1sxXS0+ZmFpbGVkX3Rlc3Rf
Y291bnQoKSk7Ci0KLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotICAgIEVYUEVDVF9TVFJFUSgi
VGVzdENhc2VXaXRoQ29tbWVudFRlc3QvMCIsIHRlc3RfY2FzZXNbMl0tPm5hbWUoKSk7Ci0gICAg
RVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPGludD4oKS5jX3N0cigpLCB0ZXN0X2Nhc2VzWzJdLT50
eXBlX3BhcmFtKCkpOwotICAgIEVYUEVDVF9UUlVFKHRlc3RfY2FzZXNbMl0tPnNob3VsZF9ydW4o
KSk7Ci0gICAgRVhQRUNUX0VRKDAsIHRlc3RfY2FzZXNbMl0tPmRpc2FibGVkX3Rlc3RfY291bnQo
KSk7Ci0gICAgQVNTRVJUX0VRKDEsIHRlc3RfY2FzZXNbMl0tPnRvdGFsX3Rlc3RfY291bnQoKSk7
Ci0gICAgRVhQRUNUX0VRKDEsIHRlc3RfY2FzZXNbMl0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgp
KTsKLSAgICBFWFBFQ1RfRVEoMCwgdGVzdF9jYXNlc1syXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7
Ci0gICAgRVhQRUNUX1RSVUUodGVzdF9jYXNlc1syXS0+UGFzc2VkKCkpOwotICAgIEVYUEVDVF9G
QUxTRSh0ZXN0X2Nhc2VzWzJdLT5GYWlsZWQoKSk7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBF
RF9URVNUCi0KLSAgICBjb25zdCBUZXN0Q2FzZSogdGVzdF9jYXNlID0gVW5pdFRlc3RIZWxwZXI6
OkZpbmRUZXN0Q2FzZSgiQXBpVGVzdCIpOwotICAgIGNvbnN0IFRlc3RJbmZvKiogdGVzdHMgPSBV
bml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHModGVzdF9jYXNlKTsKKyAgICBBU1NFUlRfRVEo
MiArIGtUeXBlZFRlc3RTdWl0ZXMsIHVuaXRfdGVzdC0+dG90YWxfdGVzdF9zdWl0ZV9jb3VudCgp
KTsKKworICAgIGNvbnN0IFRlc3RTdWl0ZSoqIGNvbnN0IHRlc3Rfc3VpdGVzID0gVW5pdFRlc3RI
ZWxwZXI6OkdldFNvcnRlZFRlc3RTdWl0ZXMoKTsKKworICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVz
dCIsIHRlc3Rfc3VpdGVzWzBdLT5uYW1lKCkpOworICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0
X3N1aXRlc1swXS0+dHlwZV9wYXJhbSgpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNb
MF0tPnNob3VsZF9ydW4oKSk7CisgICAgRVhQRUNUX0VRKDEsIHRlc3Rfc3VpdGVzWzBdLT5kaXNh
YmxlZF90ZXN0X2NvdW50KCkpOworICAgIEFTU0VSVF9FUSg0LCB0ZXN0X3N1aXRlc1swXS0+dG90
YWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMywgdGVzdF9zdWl0ZXNbMF0tPnN1Y2Nl
c3NmdWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdGVzdF9zdWl0ZXNbMF0tPmZh
aWxlZF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVDVF9UUlVFKHRlc3Rfc3VpdGVzWzBdLT5QYXNz
ZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHRlc3Rfc3VpdGVzWzBdLT5GYWlsZWQoKSk7CisKKyAg
ICBFWFBFQ1RfU1RSRVEoIkRJU0FCTEVEX1Rlc3QiLCB0ZXN0X3N1aXRlc1sxXS0+bmFtZSgpKTsK
KyAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdF9zdWl0ZXNbMV0tPnR5cGVfcGFyYW0oKSkpOwor
ICAgIEVYUEVDVF9GQUxTRSh0ZXN0X3N1aXRlc1sxXS0+c2hvdWxkX3J1bigpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgdGVzdF9zdWl0ZXNbMV0tPmRpc2FibGVkX3Rlc3RfY291bnQoKSk7CisgICAgQVNT
RVJUX0VRKDEsIHRlc3Rfc3VpdGVzWzFdLT50b3RhbF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVD
VF9FUSgwLCB0ZXN0X3N1aXRlc1sxXS0+c3VjY2Vzc2Z1bF90ZXN0X2NvdW50KCkpOworICAgIEVY
UEVDVF9FUSgwLCB0ZXN0X3N1aXRlc1sxXS0+ZmFpbGVkX3Rlc3RfY291bnQoKSk7CisKKyAgICBF
WFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZVdpdGhDb21tZW50VGVzdC8wIiwgdGVzdF9zdWl0ZXNbMl0t
Pm5hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPFR5cGVzPGludD4+KCkuY19z
dHIoKSwKKyAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZXNbMl0tPnR5cGVfcGFyYW0oKSk7Cisg
ICAgRVhQRUNUX1RSVUUodGVzdF9zdWl0ZXNbMl0tPnNob3VsZF9ydW4oKSk7CisgICAgRVhQRUNU
X0VRKDAsIHRlc3Rfc3VpdGVzWzJdLT5kaXNhYmxlZF90ZXN0X2NvdW50KCkpOworICAgIEFTU0VS
VF9FUSgxLCB0ZXN0X3N1aXRlc1syXS0+dG90YWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgdGVzdF9zdWl0ZXNbMl0tPnN1Y2Nlc3NmdWxfdGVzdF9jb3VudCgpKTsKKyAgICBFWFBF
Q1RfRVEoMCwgdGVzdF9zdWl0ZXNbMl0tPmZhaWxlZF90ZXN0X2NvdW50KCkpOworICAgIEVYUEVD
VF9UUlVFKHRlc3Rfc3VpdGVzWzJdLT5QYXNzZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHRlc3Rf
c3VpdGVzWzJdLT5GYWlsZWQoKSk7CisKKyAgICBjb25zdCBUZXN0U3VpdGUqIHRlc3Rfc3VpdGUg
PSBVbml0VGVzdEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiQXBpVGVzdCIpOworICAgIGNvbnN0IFRl
c3RJbmZvKiogdGVzdHMgPSBVbml0VGVzdEhlbHBlcjo6R2V0U29ydGVkVGVzdHModGVzdF9zdWl0
ZSk7CiAgICAgRVhQRUNUX1NUUkVRKCJESVNBQkxFRF9EdW1teTEiLCB0ZXN0c1swXS0+bmFtZSgp
KTsKLSAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0c1swXS0+dGVzdF9jYXNlX25hbWUo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMF0tPnRlc3Rfc3VpdGVfbmFt
ZSgpKTsKICAgICBFWFBFQ1RfRkFMU0UodGVzdHNbMF0tPnNob3VsZF9ydW4oKSk7CiAKLSAgICBF
WFBFQ1RfU1RSRVEoIlRlc3RDYXNlRGlzYWJsZWRBY2Nlc3NvcnNXb3JrIiwgdGVzdHNbMV0tPm5h
bWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNbMV0tPnRlc3RfY2FzZV9u
YW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiVGVzdFN1aXRlRGlzYWJsZWRBY2Nlc3NvcnNXb3Jr
IiwgdGVzdHNbMV0tPm5hbWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0IiwgdGVzdHNb
MV0tPnRlc3Rfc3VpdGVfbmFtZSgpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMV0t
PnZhbHVlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRShJc051bGwodGVzdHNbMV0tPnR5cGVf
cGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKHRlc3RzWzFdLT5zaG91bGRfcnVuKCkpOwogICAg
IEVYUEVDVF9UUlVFKHRlc3RzWzFdLT5yZXN1bHQoKS0+UGFzc2VkKCkpOwogICAgIEVYUEVDVF9F
USgwLCB0ZXN0c1sxXS0+cmVzdWx0KCktPnRlc3RfcHJvcGVydHlfY291bnQoKSk7CiAKLSAgICBF
WFBFQ1RfU1RSRVEoIlRlc3RDYXNlSW1tdXRhYmxlQWNjZXNzb3JzV29yayIsIHRlc3RzWzJdLT5u
YW1lKCkpOwotICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVzdCIsIHRlc3RzWzJdLT50ZXN0X2Nhc2Vf
bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlRlc3RTdWl0ZUltbXV0YWJsZUFjY2Vzc29yc1dv
cmsiLCB0ZXN0c1syXS0+bmFtZSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkFwaVRlc3QiLCB0ZXN0
c1syXS0+dGVzdF9zdWl0ZV9uYW1lKCkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1sy
XS0+dmFsdWVfcGFyYW0oKSkpOwogICAgIEVYUEVDVF9UUlVFKElzTnVsbCh0ZXN0c1syXS0+dHlw
ZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdHNbMl0tPnNob3VsZF9ydW4oKSk7CkBA
IC0yOTgsNyArMjg4LDcgQEAgY2xhc3MgRmluYWxTdWNjZXNzQ2hlY2tlciA6IHB1YmxpYyBFbnZp
cm9ubWVudCB7CiAgICAgRVhQRUNUX0VRKDAsIHRlc3RzWzJdLT5yZXN1bHQoKS0+dGVzdF9wcm9w
ZXJ0eV9jb3VudCgpKTsKIAogICAgIEVYUEVDVF9TVFJFUSgiVW5pdFRlc3RJbW11dGFibGVBY2Nl
c3NvcnNXb3JrIiwgdGVzdHNbM10tPm5hbWUoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJBcGlUZXN0
IiwgdGVzdHNbM10tPnRlc3RfY2FzZV9uYW1lKCkpOworICAgIEVYUEVDVF9TVFJFUSgiQXBpVGVz
dCIsIHRlc3RzWzNdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxs
KHRlc3RzWzNdLT52YWx1ZV9wYXJhbSgpKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rz
WzNdLT50eXBlX3BhcmFtKCkpKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1szXS0+c2hvdWxkX3J1
bigpKTsKQEAgLTMxMCwyMSArMzAwLDE5IEBAIGNsYXNzIEZpbmFsU3VjY2Vzc0NoZWNrZXIgOiBw
dWJsaWMgRW52aXJvbm1lbnQgewogCiAgICAgZGVsZXRlW10gdGVzdHM7CiAKLSNpZiBHVEVTVF9I
QVNfVFlQRURfVEVTVAotICAgIHRlc3RfY2FzZSA9IFVuaXRUZXN0SGVscGVyOjpGaW5kVGVzdENh
c2UoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiKTsKLSAgICB0ZXN0cyA9IFVuaXRUZXN0SGVs
cGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X2Nhc2UpOworICAgIHRlc3Rfc3VpdGUgPSBVbml0VGVz
dEhlbHBlcjo6RmluZFRlc3RTdWl0ZSgiVGVzdFN1aXRlV2l0aENvbW1lbnRUZXN0LzAiKTsKKyAg
ICB0ZXN0cyA9IFVuaXRUZXN0SGVscGVyOjpHZXRTb3J0ZWRUZXN0cyh0ZXN0X3N1aXRlKTsKIAog
ICAgIEVYUEVDVF9TVFJFUSgiRHVtbXkiLCB0ZXN0c1swXS0+bmFtZSgpKTsKLSAgICBFWFBFQ1Rf
U1RSRVEoIlRlc3RDYXNlV2l0aENvbW1lbnRUZXN0LzAiLCB0ZXN0c1swXS0+dGVzdF9jYXNlX25h
bWUoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJUZXN0U3VpdGVXaXRoQ29tbWVudFRlc3QvMCIsIHRl
c3RzWzBdLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoSXNOdWxsKHRlc3Rz
WzBdLT52YWx1ZV9wYXJhbSgpKSk7Ci0gICAgRVhQRUNUX1NUUkVRKEdldFR5cGVOYW1lPGludD4o
KS5jX3N0cigpLCB0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoR2V0
VHlwZU5hbWU8VHlwZXM8aW50Pj4oKS5jX3N0cigpLCB0ZXN0c1swXS0+dHlwZV9wYXJhbSgpKTsK
ICAgICBFWFBFQ1RfVFJVRSh0ZXN0c1swXS0+c2hvdWxkX3J1bigpKTsKICAgICBFWFBFQ1RfVFJV
RSh0ZXN0c1swXS0+cmVzdWx0KCktPlBhc3NlZCgpKTsKICAgICBFWFBFQ1RfRVEoMCwgdGVzdHNb
MF0tPnJlc3VsdCgpLT50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOwogCiAgICAgZGVsZXRlW10gdGVz
dHM7Ci0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0gICAgZGVsZXRlW10gdGVzdF9j
YXNlczsKKyAgICBkZWxldGVbXSB0ZXN0X3N1aXRlczsKICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hbGxfdGVzdC5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfYWxsX3Rlc3QuY2MKaW5kZXggZTYxZTM2YjFkZmU4
ZGEwMzAxNmFmNTc4NTViMmM3ODFlZTdkOTFlNi4uNjE1YjI5YjcwNjUxNmIxNWZmYjZkMWFlNTE1
YWU5YTU2NjAwYjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF9hbGxfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0
X2FsbF90ZXN0LmNjCkBAIC0zMywxNCArMzMsMTQgQEAKIC8vIFNvbWV0aW1lcyBpdCdzIGRlc2ly
YWJsZSB0byBidWlsZCBtb3N0IG9mIEdvb2dsZSBUZXN0J3Mgb3duIHRlc3RzCiAvLyBieSBjb21w
aWxpbmcgYSBzaW5nbGUgZmlsZS4gIFRoaXMgZmlsZSBzZXJ2ZXMgdGhpcyBwdXJwb3NlLgogI2lu
Y2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1maWxlcGF0aC10ZXN0LmNjIgotI2luY2x1ZGUgInRlc3Qv
Z29vZ2xldGVzdC1saW5rZWQtcHRyLXRlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0
LW1lc3NhZ2UtdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2dvb2dsZXRlc3Qtb3B0aW9ucy10ZXN0
LmNjIgogI2luY2x1ZGUgInRlc3QvZ29vZ2xldGVzdC1wb3J0LXRlc3QuY2MiCi0jaW5jbHVkZSAi
dGVzdC9ndGVzdF9wcmVkX2ltcGxfdW5pdHRlc3QuY2MiCi0jaW5jbHVkZSAidGVzdC9ndGVzdF9w
cm9kX3Rlc3QuY2MiCiAjaW5jbHVkZSAidGVzdC9nb29nbGV0ZXN0LXRlc3QtcGFydC10ZXN0LmNj
IgotI2luY2x1ZGUgInRlc3QvZ3Rlc3QtdHlwZWQtdGVzdF90ZXN0LmNjIgogI2luY2x1ZGUgInRl
c3QvZ3Rlc3QtdHlwZWQtdGVzdDJfdGVzdC5jYyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0LXR5cGVk
LXRlc3RfdGVzdC5jYyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5j
YyIKKyNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3Byb2RfdGVzdC5jYyIKKyNpbmNsdWRlICJ0ZXN0L2d0
ZXN0X3NraXBfdGVzdC5jYyIKICNpbmNsdWRlICJ0ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjIgogI2lu
Y2x1ZGUgInRlc3QvcHJvZHVjdGlvbi5jYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfYXNzZXJ0X2J5X2V4Y2VwdGlvbl90ZXN0LmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QuY2MKaW5k
ZXggMGVhZTg1NzVmM2ZlZTMwYmFjNjQyYmExNTg5ZmYyMzRkMDdmOTQ1NC4uYWRhNGNiMzBlZjY4
YzU1ZGI4MTM1NjUyOTE4NjgzNGUyNWMxYWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3QuY2MKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9hc3NlcnRfYnlfZXhjZXB0aW9uX3Rlc3Qu
Y2MKQEAgLTgwLDggKzgwLDcgQEAgVEVTVChUZXN0LCBUZXN0KSB7CiAgIHRyeSB7CiAgICAgQXNz
ZXJ0RmFsc2UoKTsKICAgfSBjYXRjaChjb25zdCB0ZXN0aW5nOjpBc3NlcnRpb25FeGNlcHRpb24m
IGUpIHsKLSAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAiRXhwZWN0ZWQgZmFpbHVyZSIpICE9IE5V
TEwpCi0gICAgICB0aHJvdzsKKyAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAiRXhwZWN0ZWQgZmFp
bHVyZSIpICE9IG51bGxwdHIpIHRocm93OwogCiAgICAgcHJpbnRmKCIlcyIsCiAgICAgICAgICAg
ICJBIGZhaWxlZCBhc3NlcnRpb24gZGlkIHRocm93IGFuIGV4Y2VwdGlvbiBvZiB0aGUgcmlnaHQg
dHlwZSwgIgpAQCAtOTcsNyArOTYsNiBAQCBURVNUKFRlc3QsIFRlc3QpIHsKIGludCBrVGVzdEZv
ckNvbnRpbnVpbmdUZXN0ID0gMDsKIAogVEVTVChUZXN0LCBUZXN0MikgewotICAvLyBGSVhNRTog
aG93IHRvIGZvcmNlIFRlc3QyIHRvIGJlIGFmdGVyIFRlc3Q/CiAgIGtUZXN0Rm9yQ29udGludWlu
Z1Rlc3QgPSAxOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X2Vudmlyb25tZW50X3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X2Vudmlyb25tZW50X3Rlc3QuY2MKaW5kZXggYmM5NTI0ZDY2MzczZTcxOTUxY2FjY2Q5
MDZjMDY2ZWY0YWY5NGI0Ni4uMDY0YmZjNTBiOTE4NDUxZTI5MDdiZDU4NTY2NzNkZGNkMjcwMTk0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9lbnZpcm9u
bWVudF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfZW52
aXJvbm1lbnRfdGVzdC5jYwpAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBNeUVudmlyb25tZW50IDog
cHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKICAgLy8gRGVwZW5kaW5nIG9uIHRoZSB2YWx1
ZSBvZiBmYWlsdXJlX2luX3NldF91cF8sIFNldFVwKCkgd2lsbAogICAvLyBnZW5lcmF0ZSBhIG5v
bi1mYXRhbCBmYWlsdXJlLCBnZW5lcmF0ZSBhIGZhdGFsIGZhaWx1cmUsIG9yCiAgIC8vIHN1Y2Nl
ZWQuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsK
ICAgICBzZXRfdXBfd2FzX3J1bl8gPSB0cnVlOwogCiAgICAgc3dpdGNoIChmYWlsdXJlX2luX3Nl
dF91cF8pIHsKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgTXlFbnZpcm9ubWVudCA6IHB1YmxpYyB0
ZXN0aW5nOjpFbnZpcm9ubWVudCB7CiAgIH0KIAogICAvLyBHZW5lcmF0ZXMgYSBub24tZmF0YWwg
ZmFpbHVyZS4KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkg
b3ZlcnJpZGUgewogICAgIHRlYXJfZG93bl93YXNfcnVuXyA9IHRydWU7CiAgICAgQUREX0ZBSUxV
UkUoKSA8PCAiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUgaW4gZ2xvYmFsIHRlYXItZG93bi4i
OwogICB9CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBDaGVjayhib29sIGNvbmRpdGlvbiwgY29u
c3QgY2hhciogbXNnKSB7CiAgIH0KIH0KIAotLy8gUnVucyB0aGUgdGVzdHMuICBSZXR1cm4gdHJ1
ZSBpZmYgc3VjY2Vzc2Z1bC4KKy8vIFJ1bnMgdGhlIHRlc3RzLiAgUmV0dXJuIHRydWUgaWYgYW5k
IG9ubHkgaWYgc3VjY2Vzc2Z1bC4KIC8vCiAvLyBUaGUgJ2ZhaWx1cmUnIHBhcmFtZXRlciBzcGVj
aWZpZXMgdGhlIHR5cGUgb2YgZmFpbHVyZSB0aGF0IHNob3VsZAogLy8gYmUgZ2VuZXJhdGVkIGJ5
IHRoZSBnbG9iYWwgc2V0LXVwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF9oZWxwX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X2hlbHBfdGVzdC5weQppbmRleCA1ODJkMjRjMmRjY2U4OTQ1MzhhYTYzY2NiZDYxMjBiZGQ0
YjM1MGEwLi44ZDk1M2JiZDlkYzRkYjcyMzY3YTk1MDgyMTMyMjRlODgwYmVhMGMzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2hlbHBfdGVzdC5weQpAQCAtNDMs
NiArNDMsNyBAQCBpbXBvcnQgZ3Rlc3RfdGVzdF91dGlscwogCiAKIElTX0xJTlVYID0gb3MubmFt
ZSA9PSAncG9zaXgnIGFuZCBvcy51bmFtZSgpWzBdID09ICdMaW51eCcKK0lTX0dOVUtGUkVFQlNE
ID0gb3MubmFtZSA9PSAncG9zaXgnIGFuZCBvcy51bmFtZSgpWzBdID09ICdHTlUva0ZyZWVCU0Qn
CiBJU19XSU5ET1dTID0gb3MubmFtZSA9PSAnbnQnCiAKIFBST0dSQU1fUEFUSCA9IGd0ZXN0X3Rl
c3RfdXRpbHMuR2V0VGVzdEV4ZWN1dGFibGVQYXRoKCdndGVzdF9oZWxwX3Rlc3RfJykKQEAgLTY4
LDYgKzY5LDcgQEAgSEVMUF9SRUdFWCA9IHJlLmNvbXBpbGUoCiAgICAgRkxBR19QUkVGSVggKyBy
J3NodWZmbGUuKicgKwogICAgIEZMQUdfUFJFRklYICsgcidyYW5kb21fc2VlZD0uKicgKwogICAg
IEZMQUdfUFJFRklYICsgcidjb2xvcj0uKicgKworICAgIEZMQUdfUFJFRklYICsgcidicmllZi4q
JyArCiAgICAgRkxBR19QUkVGSVggKyByJ3ByaW50X3RpbWUuKicgKwogICAgIEZMQUdfUFJFRklY
ICsgcidvdXRwdXQ9LionICsKICAgICBGTEFHX1BSRUZJWCArIHInYnJlYWtfb25fZmFpbHVyZS4q
JyArCkBAIC0xMTAsNyArMTEyLDcgQEAgY2xhc3MgR1Rlc3RIZWxwVGVzdChndGVzdF90ZXN0X3V0
aWxzLlRlc3RDYXNlKToKICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBleGl0X2NvZGUpCiAgICAg
c2VsZi5hc3NlcnRfKEhFTFBfUkVHRVguc2VhcmNoKG91dHB1dCksIG91dHB1dCkKIAotICAgIGlm
IElTX0xJTlVYOgorICAgIGlmIElTX0xJTlVYIG9yIElTX0dOVUtGUkVFQlNEOgogICAgICAgc2Vs
Zi5hc3NlcnRfKFNUUkVBTV9SRVNVTFRfVE9fRkxBRyBpbiBvdXRwdXQsIG91dHB1dCkKICAgICBl
bHNlOgogICAgICAgc2VsZi5hc3NlcnRfKFNUUkVBTV9SRVNVTFRfVE9fRkxBRyBub3QgaW4gb3V0
cHV0LCBvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVz
dC9ndGVzdF9saXN0X291dHB1dF91bml0dGVzdC5weQppbmRleCAzYmJhN2VhMmNmZDM3Y2FkNTUw
OWY0MGY4ZThiMDAyMjcwNmJlNzg0Li5hNDQyZmMxNjljODdmYzBkZWJiNDJkMzUyYjI4YzYzNzFk
ZWYzMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X2xp
c3Rfb3V0cHV0X3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3QucHkKQEAgLTQ2LDE2ICs0Niw0MiBAQCBHVEVTVF9M
SVNUX1RFU1RTX0ZMQUcgPSAnLS1ndGVzdF9saXN0X3Rlc3RzJwogR1RFU1RfT1VUUFVUX0ZMQUcg
PSAnLS1ndGVzdF9vdXRwdXQnCiAKIEVYUEVDVEVEX1hNTCA9ICIiIjxcP3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCJcPz4KLTx0ZXN0c3VpdGVzIHRlc3RzPSIyIiBuYW1lPSJBbGxU
ZXN0cyI+Cis8dGVzdHN1aXRlcyB0ZXN0cz0iMTYiIG5hbWU9IkFsbFRlc3RzIj4KICAgPHRlc3Rz
dWl0ZSBuYW1lPSJGb29UZXN0IiB0ZXN0cz0iMiI+CiAgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Qx
IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNDMiIC8+CiAg
ICAgPHRlc3RjYXNlIG5hbWU9IlRlc3QyIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0
ZXN0Xy5jYyIgbGluZT0iNDUiIC8+CiAgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9
IkZvb1Rlc3RGaXh0dXJlIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3QzIiBm
aWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNDgiIC8+CisgICAg
PHRlc3RjYXNlIG5hbWU9IlRlc3Q0IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0
Xy5jYyIgbGluZT0iNDkiIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlR5
cGVkVGVzdC8wIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q3IiB0eXBlX3Bh
cmFtPSJpbnQiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI2
MCIgLz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDgiIHR5cGVfcGFyYW09ImludCIgZmlsZT0i
LipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYxIiAvPgorICA8L3Rlc3Rz
dWl0ZT4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJUeXBlZFRlc3QvMSIgdGVzdHM9IjIiPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJUZXN0NyIgdHlwZV9wYXJhbT0iYm9vbCIgZmlsZT0iLipndGVzdF9saXN0
X291dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjYwIiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJU
ZXN0OCIgdHlwZV9wYXJhbT0iYm9vbCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVz
dF8uY2MiIGxpbmU9IjYxIiAvPgorICA8L3Rlc3RzdWl0ZT4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJT
aW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIgdGVzdHM9IjIiPgorICAgIDx0ZXN0
Y2FzZSBuYW1lPSJUZXN0OSIgdHlwZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0
cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjYiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Qx
MCIgdHlwZV9wYXJhbT0iaW50IiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5j
YyIgbGluZT0iNjciIC8+CisgIDwvdGVzdHN1aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlNpbmds
ZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8xIiB0ZXN0cz0iMiI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IlRlc3Q5IiB0eXBlX3BhcmFtPSJib29sIiBmaWxlPSIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNjYiIC8+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3QxMCIg
dHlwZV9wYXJhbT0iYm9vbCIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2Mi
IGxpbmU9IjY3IiAvPgorICA8L3Rlc3RzdWl0ZT4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJWYWx1ZVBh
cmFtL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCI+CisgICAgPHRlc3RjYXNlIG5hbWU9IlRlc3Q1
LzAiIHZhbHVlX3BhcmFtPSIzMyIgZmlsZT0iLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8u
Y2MiIGxpbmU9IjUyIiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0NS8xIiB2YWx1ZV9wYXJh
bT0iNDIiIGZpbGU9Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiBsaW5lPSI1MiIg
Lz4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGVzdDYvMCIgdmFsdWVfcGFyYW09IjMzIiBmaWxlPSIu
Kmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIgbGluZT0iNTMiIC8+CisgICAgPHRlc3Rj
YXNlIG5hbWU9IlRlc3Q2LzEiIHZhbHVlX3BhcmFtPSI0MiIgZmlsZT0iLipndGVzdF9saXN0X291
dHB1dF91bml0dGVzdF8uY2MiIGxpbmU9IjUzIiAvPgorICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1
aXRlcz4KICIiIgogCiBFWFBFQ1RFRF9KU09OID0gIiIiewotICAidGVzdHMiOiAyLAorICAidGVz
dHMiOiAxNiwKICAgIm5hbWUiOiAiQWxsVGVzdHMiLAogICAidGVzdHN1aXRlcyI6IFxbCiAgICAg
ewpAQCAtNzMsNiArOTksMTI0IEBAIEVYUEVDVEVEX0pTT04gPSAiIiJ7CiAgICAgICAgICAgImxp
bmUiOiA0NQogICAgICAgICB9CiAgICAgICBcXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiRm9vVGVzdEZpeHR1cmUiLAorICAgICAgInRlc3RzIjogMiwKKyAgICAgICJ0ZXN0c3VpdGUi
OiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDMiLAorICAgICAgICAgICJm
aWxlIjogIi4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGlu
ZSI6IDQ4CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NCIs
CisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAor
ICAgICAgICAgICJsaW5lIjogNDkKKyAgICAgICAgfQorICAgICAgXF0KKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lIjogIlR5cGVkVGVzdFxcXFwvMCIsCisgICAgICAidGVzdHMiOiAyLAorICAg
ICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NyIs
CisgICAgICAgICAgInR5cGVfcGFyYW0iOiAiaW50IiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2MAorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDgiLAorICAgICAgICAg
ICJ0eXBlX3BhcmFtIjogImludCIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291
dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNjEKKyAgICAgICAgfQorICAg
ICAgXF0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlR5cGVkVGVzdFxcXFwvMSIsCisg
ICAgICAidGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAg
ICAgICAibmFtZSI6ICJUZXN0NyIsCisgICAgICAgICAgInR5cGVfcGFyYW0iOiAiYm9vbCIsCisg
ICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAg
ICAgICAgICJsaW5lIjogNjAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1l
IjogIlRlc3Q4IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAgICAgICAgICAi
ZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxp
bmUiOiA2MQorICAgICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiU2luZ2xlXFxcXC9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVxcXFwvMCIsCisgICAgICAi
dGVzdHMiOiAyLAorICAgICAgInRlc3RzdWl0ZSI6IFxbCisgICAgICAgIHsKKyAgICAgICAgICAi
bmFtZSI6ICJUZXN0OSIsCisgICAgICAgICAgInR5cGVfcGFyYW0iOiAiaW50IiwKKyAgICAgICAg
ICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAg
ImxpbmUiOiA2NgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVz
dDEwIiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJpbnQiLAorICAgICAgICAgICJmaWxlIjog
Ii4qZ3Rlc3RfbGlzdF9vdXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDY3
CisgICAgICAgIH0KKyAgICAgIFxdCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJTaW5n
bGVcXFxcL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlXFxcXC8xIiwKKyAgICAgICJ0ZXN0cyI6
IDIsCisgICAgICAidGVzdHN1aXRlIjogXFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjog
IlRlc3Q5IiwKKyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAgICAgICAgICAiZmls
ZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUi
OiA2NgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDEwIiwK
KyAgICAgICAgICAidHlwZV9wYXJhbSI6ICJib29sIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0
ZXN0X2xpc3Rfb3V0cHV0X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA2NworICAg
ICAgICB9CisgICAgICBcXQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVmFsdWVQYXJh
bVxcXFwvVmFsdWVQYXJhbVRlc3QiLAorICAgICAgInRlc3RzIjogNCwKKyAgICAgICJ0ZXN0c3Vp
dGUiOiBcWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDVcXFxcLzAiLAorICAg
ICAgICAgICJ2YWx1ZV9wYXJhbSI6ICIzMyIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9s
aXN0X291dHB1dF91bml0dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNTIKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjogIlRlc3Q1XFxcXC8xIiwKKyAgICAgICAg
ICAidmFsdWVfcGFyYW0iOiAiNDIiLAorICAgICAgICAgICJmaWxlIjogIi4qZ3Rlc3RfbGlzdF9v
dXRwdXRfdW5pdHRlc3RfLmNjIiwKKyAgICAgICAgICAibGluZSI6IDUyCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJUZXN0NlxcXFwvMCIsCisgICAgICAgICAgInZh
bHVlX3BhcmFtIjogIjMzIiwKKyAgICAgICAgICAiZmlsZSI6ICIuKmd0ZXN0X2xpc3Rfb3V0cHV0
X3VuaXR0ZXN0Xy5jYyIsCisgICAgICAgICAgImxpbmUiOiA1MworICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgIm5hbWUiOiAiVGVzdDZcXFxcLzEiLAorICAgICAgICAgICJ2YWx1ZV9w
YXJhbSI6ICI0MiIsCisgICAgICAgICAgImZpbGUiOiAiLipndGVzdF9saXN0X291dHB1dF91bml0
dGVzdF8uY2MiLAorICAgICAgICAgICJsaW5lIjogNTMKKyAgICAgICAgfQorICAgICAgXF0KICAg
ICB9CiAgIFxdCiB9CkBAIC0xMTQsOCArMjU4LDkgQEAgY2xhc3MgR1Rlc3RMaXN0VGVzdHNPdXRw
dXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICBwID0gZ3Rlc3RfdGVz
dF91dGlscy5TdWJwcm9jZXNzKAogICAgICAgICBjb21tYW5kLCBlbnY9ZW52aXJvbl9jb3B5LCB3
b3JraW5nX2Rpcj1ndGVzdF90ZXN0X3V0aWxzLkdldFRlbXBEaXIoKSkKIAotICAgIHNlbGYuYXNz
ZXJ0XyhwLmV4aXRlZCkKLSAgICBzZWxmLmFzc2VydEVxdWFscygwLCBwLmV4aXRfY29kZSkKKyAg
ICBzZWxmLmFzc2VydFRydWUocC5leGl0ZWQpCisgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwLmV4
aXRfY29kZSkKKyAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2ZpbGUoZmlsZV9wYXRoKSkK
ICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoKSBhcyBmOgogICAgICAgcmVzdWx0ID0gZi5yZWFkKCkK
ICAgICByZXR1cm4gcmVzdWx0CkBAIC0xMjgsNyArMjczLDcgQEAgY2xhc3MgR1Rlc3RMaXN0VGVz
dHNPdXRwdXRVbml0VGVzdChndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICBmb3IgYWN0
dWFsX2xpbmUgaW4gYWN0dWFsX2xpbmVzOgogICAgICAgZXhwZWN0ZWRfbGluZSA9IGV4cGVjdGVk
X2xpbmVzW2xpbmVfY291bnRdCiAgICAgICBleHBlY3RlZF9saW5lX3JlID0gcmUuY29tcGlsZShl
eHBlY3RlZF9saW5lLnN0cmlwKCkpCi0gICAgICBzZWxmLmFzc2VydF8oCisgICAgICBzZWxmLmFz
c2VydFRydWUoCiAgICAgICAgICAgZXhwZWN0ZWRfbGluZV9yZS5tYXRjaChhY3R1YWxfbGluZS5z
dHJpcCgpKSwKICAgICAgICAgICAoJ2FjdHVhbCBvdXRwdXQgb2YgIiVzIixcbicKICAgICAgICAg
ICAgJ3doaWNoIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHJlZ2V4IG9mICIlcyJcbicKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfbGlzdF9vdXRwdXRfdW5p
dHRlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1
dF91bml0dGVzdF8uY2MKaW5kZXggYjFjN2I0ZGUzNDYxZmMxNjQ1ZjQxMWI3MWY5ZTM3ZjgyMjRm
ZDhhNi4uOTJiOWQ0ZjI4ZWVjMDNhNWZlYTc1Mzk2NzQyZWQ2ODg0ODI2ZjBmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1dF91bml0dGVz
dF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9saXN0X291dHB1
dF91bml0dGVzdF8uY2MKQEAgLTQ0LDYgKzQ0LDMyIEBAIFRFU1QoRm9vVGVzdCwgVGVzdDEpIHt9
CiAKIFRFU1QoRm9vVGVzdCwgVGVzdDIpIHt9CiAKK2NsYXNzIEZvb1Rlc3RGaXh0dXJlIDogcHVi
bGljIDo6dGVzdGluZzo6VGVzdCB7fTsKK1RFU1RfRihGb29UZXN0Rml4dHVyZSwgVGVzdDMpIHt9
CitURVNUX0YoRm9vVGVzdEZpeHR1cmUsIFRlc3Q0KSB7fQorCitjbGFzcyBWYWx1ZVBhcmFtVGVz
dCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08aW50PiB7fTsKK1RFU1RfUChWYWx1
ZVBhcmFtVGVzdCwgVGVzdDUpIHt9CitURVNUX1AoVmFsdWVQYXJhbVRlc3QsIFRlc3Q2KSB7fQor
SU5TVEFOVElBVEVfVEVTVF9TVUlURV9QKFZhbHVlUGFyYW0sIFZhbHVlUGFyYW1UZXN0LCA6OnRl
c3Rpbmc6OlZhbHVlcygzMywgNDIpKTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBU
eXBlZFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHt9OwordHlwZWRlZiB0ZXN0aW5nOjpU
eXBlczxpbnQsIGJvb2w+IFR5cGVkVGVzdFR5cGVzOworVFlQRURfVEVTVF9TVUlURShUeXBlZFRl
c3QsIFR5cGVkVGVzdFR5cGVzKTsKK1RZUEVEX1RFU1QoVHlwZWRUZXN0LCBUZXN0Nykge30KK1RZ
UEVEX1RFU1QoVHlwZWRUZXN0LCBUZXN0OCkge30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citj
bGFzcyBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3Qg
e307CitUWVBFRF9URVNUX1NVSVRFX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUpOworVFlQ
RURfVEVTVF9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBUZXN0OSkge30KK1RZUEVEX1RF
U1RfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwgVGVzdDEwKSB7fQorUkVHSVNURVJfVFlQ
RURfVEVTVF9TVUlURV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLCBUZXN0OSwgVGVzdDEw
KTsKK3R5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50LCBib29sPiBUeXBlUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZVR5cGVzOyAgLy8gTk9MSU5UCitJTlNUQU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1Ao
U2luZ2xlLCBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVR5cGVzKTsKKwogaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFy
Z2MsIGFyZ3YpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X3ByZWRfaW1wbF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfcHJlZF9pbXBsX3VuaXR0ZXN0LmNjCmluZGV4IGI0NjZjMTUwYWVkYzQzZmRiMTAzNzNi
N2E4MDJjY2JlNzc1NzkwZjguLmJiZWY5OTQ3ZDk5ZGE0M2E2NDU1ZjMwOGNhMTdiN2I2Y2IzMDFi
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfcHJlZF9p
bXBsX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
cHJlZF9pbXBsX3VuaXR0ZXN0LmNjCkBAIC0yNyw3ICsyNyw3IEBACiAvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
IC8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLS8vIFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZIEdFTkVSQVRF
RCBvbiAwMS8wMi8yMDE4IGJ5IGNvbW1hbmQKKy8vIFRoaXMgZmlsZSBpcyBBVVRPTUFUSUNBTExZ
IEdFTkVSQVRFRCBvbiAxMS8wNS8yMDE5IGJ5IGNvbW1hbmQKIC8vICdnZW5fZ3Rlc3RfcHJlZF9p
bXBsLnB5IDUnLiAgRE8gTk9UIEVESVQgQlkgSEFORCEKIAogLy8gUmVncmVzc2lvbiB0ZXN0IGZv
ciBndGVzdF9wcmVkX2ltcGwuaApAQCAtNzgsOSArNzgsOCBAQCBib29sIFByZWRGdW5jdGlvbjEo
VDEgdjEpIHsKICAgcmV0dXJuIHYxID4gMDsKIH0KIAotLy8gVGhlIGZvbGxvd2luZyB0d28gZnVu
Y3Rpb25zIGFyZSBuZWVkZWQgdG8gY2lyY3VtdmVudCBhIGJ1ZyBpbgotLy8gZ2NjIDIuOTUuMywg
d2hpY2ggc29tZXRpbWVzIGhhcyBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIHRlbXBsYXRlCi0vLyBm
dW5jdGlvbi4KKy8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGJlY2F1
c2UgYSBjb21waWxlciBkb2Vzbid0IGhhdmUKKy8vIGEgY29udGV4dCB5ZXQgdG8ga25vdyB3aGlj
aCB0ZW1wbGF0ZSBmdW5jdGlvbiBtdXN0IGJlIGluc3RhbnRpYXRlZC4KIGJvb2wgUHJlZEZ1bmN0
aW9uMUludChpbnQgdjEpIHsKICAgcmV0dXJuIHYxID4gMDsKIH0KQEAgLTEyMiwxMyArMTIxLDEz
IEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3RvcjEgewogCiBjbGFzcyBQcmVkaWNhdGUxVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRV
cCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hf
ID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBmYWxzZTsKICAgICBuMV8gPSAwOwogICB9CiAKLSAg
dmlydHVhbCB2b2lkIFRlYXJEb3duKCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewog
ICAgIC8vIFZlcmlmaWVzIHRoYXQgZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdh
cyBldmFsdWF0ZWQKICAgICAvLyBleGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykg
PDwKQEAgLTE0NCwxMCArMTQzLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTFUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBm
dW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRf
OwogCiAgIHN0YXRpYyBpbnQgbjFfOwpAQCAtNDY1LDkgKzQ2NCw4IEBAIGJvb2wgUHJlZEZ1bmN0
aW9uMihUMSB2MSwgVDIgdjIpIHsKICAgcmV0dXJuIHYxICsgdjIgPiAwOwogfQogCi0vLyBUaGUg
Zm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGlu
Ci0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJv
dmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25z
IGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0
IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVk
LgogYm9vbCBQcmVkRnVuY3Rpb24ySW50KGludCB2MSwgaW50IHYyKSB7CiAgIHJldHVybiB2MSAr
IHYyID4gMDsKIH0KQEAgLTUxNCwxMyArNTEyLDEzIEBAIHN0cnVjdCBQcmVkRm9ybWF0RnVuY3Rv
cjIgewogCiBjbGFzcyBQcmVkaWNhdGUyVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBw
cm90ZWN0ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJy
aWRlIHsKICAgICBleHBlY3RlZF90b19maW5pc2hfID0gdHJ1ZTsKICAgICBmaW5pc2hlZF8gPSBm
YWxzZTsKICAgICBuMV8gPSBuMl8gPSAwOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkgeworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgewogICAgIC8vIFZlcmlmaWVzIHRoYXQg
ZWFjaCBvZiB0aGUgcHJlZGljYXRlJ3MgYXJndW1lbnRzIHdhcyBldmFsdWF0ZWQKICAgICAvLyBl
eGFjdGx5IG9uY2UuCiAgICAgRVhQRUNUX0VRKDEsIG4xXykgPDwKQEAgLTUzOSwxMCArNTM3LDEw
IEBAIGNsYXNzIFByZWRpY2F0ZTJUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0K
ICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1
biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9f
ZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZp
bmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVu
IHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBpbnQgbjFf
OwpAQCAtODk0LDkgKzg5Miw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uMyhUMSB2MSwgVDIgdjIsIFQz
IHYzKSB7CiAgIHJldHVybiB2MSArIHYyICsgdjMgPiAwOwogfQogCi0vLyBUaGUgZm9sbG93aW5n
IHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJjdW12ZW50IGEgYnVnIGluCi0vLyBnY2Mg
Mi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxh
dGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVk
ZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZQorLy8gYSBjb250ZXh0IHlldCB0byBr
bm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3QgYmUgaW5zdGFudGlhdGVkLgogYm9vbCBQ
cmVkRnVuY3Rpb24zSW50KGludCB2MSwgaW50IHYyLCBpbnQgdjMpIHsKICAgcmV0dXJuIHYxICsg
djIgKyB2MyA+IDA7CiB9CkBAIC05NDgsMTMgKzk0NSwxMyBAQCBzdHJ1Y3QgUHJlZEZvcm1hdEZ1
bmN0b3IzIHsKIAogY2xhc3MgUHJlZGljYXRlM1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
CiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBv
dmVycmlkZSB7CiAgICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IHRydWU7CiAgICAgZmluaXNoZWRf
ID0gZmFsc2U7CiAgICAgbjFfID0gbjJfID0gbjNfID0gMDsKICAgfQogCi0gIHZpcnR1YWwgdm9p
ZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICAvLyBWZXJp
ZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFyZ3VtZW50cyB3YXMgZXZhbHVhdGVk
CiAgICAgLy8gZXhhY3RseSBvbmNlLgogICAgIEVYUEVDVF9FUSgxLCBuMV8pIDw8CkBAIC05NzYs
MTAgKzk3MywxMCBAQCBjbGFzcyBQcmVkaWNhdGUzVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKICAgICB9CiAgIH0KIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBpcyBleHBl
Y3RlZCB0byBydW4gdG8gZmluaXNoLgorICAvLyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSB0ZXN0
IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCiAgIHN0YXRpYyBib29sIGV4
cGVjdGVkX3RvX2ZpbmlzaF87CiAKLSAgLy8gdHJ1ZSBpZmYgdGhlIHRlc3QgZnVuY3Rpb24gZGlk
IHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rp
b24gZGlkIHJ1biB0byBmaW5pc2guCiAgIHN0YXRpYyBib29sIGZpbmlzaGVkXzsKIAogICBzdGF0
aWMgaW50IG4xXzsKQEAgLTEzNjUsOSArMTM2Miw4IEBAIGJvb2wgUHJlZEZ1bmN0aW9uNChUMSB2
MSwgVDIgdjIsIFQzIHYzLCBUNCB2NCkgewogICByZXR1cm4gdjEgKyB2MiArIHYzICsgdjQgPiAw
OwogfQogCi0vLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCB0byBjaXJj
dW12ZW50IGEgYnVnIGluCi0vLyBnY2MgMi45NS4zLCB3aGljaCBzb21ldGltZXMgaGFzIHByb2Js
ZW0gd2l0aCB0aGUgYWJvdmUgdGVtcGxhdGUKLS8vIGZ1bmN0aW9uLgorLy8gVGhlIGZvbGxvd2lu
ZyB0d28gZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBhIGNvbXBpbGVyIGRvZXNuJ3QgaGF2
ZQorLy8gYSBjb250ZXh0IHlldCB0byBrbm93IHdoaWNoIHRlbXBsYXRlIGZ1bmN0aW9uIG11c3Qg
YmUgaW5zdGFudGlhdGVkLgogYm9vbCBQcmVkRnVuY3Rpb240SW50KGludCB2MSwgaW50IHYyLCBp
bnQgdjMsIGludCB2NCkgewogICByZXR1cm4gdjEgKyB2MiArIHYzICsgdjQgPiAwOwogfQpAQCAt
MTQyNCwxMyArMTQyMCwxMyBAQCBzdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0b3I0IHsKIAogY2xhc3Mg
UHJlZGljYXRlNFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgotICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAgZXhw
ZWN0ZWRfdG9fZmluaXNoXyA9IHRydWU7CiAgICAgZmluaXNoZWRfID0gZmFsc2U7CiAgICAgbjFf
ID0gbjJfID0gbjNfID0gbjRfID0gMDsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigp
IHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICAvLyBWZXJpZmllcyB0aGF0IGVh
Y2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFyZ3VtZW50cyB3YXMgZXZhbHVhdGVkCiAgICAgLy8gZXhh
Y3RseSBvbmNlLgogICAgIEVYUEVDVF9FUSgxLCBuMV8pIDw8CkBAIC0xNDU1LDEwICsxNDUxLDEw
IEBAIGNsYXNzIFByZWRpY2F0ZTRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogICAgIH0K
ICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJ1
biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHRlc3QgZnVuY3Rpb24g
aXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZXhwZWN0ZWRfdG9f
ZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZp
bmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgdGVzdCBmdW5jdGlvbiBkaWQgcnVu
IHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRfOwogCiAgIHN0YXRpYyBpbnQgbjFf
OwpAQCAtMTg3OCw5ICsxODc0LDggQEAgYm9vbCBQcmVkRnVuY3Rpb241KFQxIHYxLCBUMiB2Miwg
VDMgdjMsIFQ0IHY0LCBUNSB2NSkgewogICByZXR1cm4gdjEgKyB2MiArIHYzICsgdjQgKyB2NSA+
IDA7CiB9CiAKLS8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIHRvIGNp
cmN1bXZlbnQgYSBidWcgaW4KLS8vIGdjYyAyLjk1LjMsIHdoaWNoIHNvbWV0aW1lcyBoYXMgcHJv
YmxlbSB3aXRoIHRoZSBhYm92ZSB0ZW1wbGF0ZQotLy8gZnVuY3Rpb24uCisvLyBUaGUgZm9sbG93
aW5nIHR3byBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGEgY29tcGlsZXIgZG9lc24ndCBo
YXZlCisvLyBhIGNvbnRleHQgeWV0IHRvIGtub3cgd2hpY2ggdGVtcGxhdGUgZnVuY3Rpb24gbXVz
dCBiZSBpbnN0YW50aWF0ZWQuCiBib29sIFByZWRGdW5jdGlvbjVJbnQoaW50IHYxLCBpbnQgdjIs
IGludCB2MywgaW50IHY0LCBpbnQgdjUpIHsKICAgcmV0dXJuIHYxICsgdjIgKyB2MyArIHY0ICsg
djUgPiAwOwogfQpAQCAtMTk0MiwxMyArMTkzNywxMyBAQCBzdHJ1Y3QgUHJlZEZvcm1hdEZ1bmN0
b3I1IHsKIAogY2xhc3MgUHJlZGljYXRlNVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAg
cHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVy
cmlkZSB7CiAgICAgZXhwZWN0ZWRfdG9fZmluaXNoXyA9IHRydWU7CiAgICAgZmluaXNoZWRfID0g
ZmFsc2U7CiAgICAgbjFfID0gbjJfID0gbjNfID0gbjRfID0gbjVfID0gMDsKICAgfQogCi0gIHZp
cnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAg
ICAvLyBWZXJpZmllcyB0aGF0IGVhY2ggb2YgdGhlIHByZWRpY2F0ZSdzIGFyZ3VtZW50cyB3YXMg
ZXZhbHVhdGVkCiAgICAgLy8gZXhhY3RseSBvbmNlLgogICAgIEVYUEVDVF9FUSgxLCBuMV8pIDw8
CkBAIC0xOTc2LDEwICsxOTcxLDEwIEBAIGNsYXNzIFByZWRpY2F0ZTVUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgewogICAgIH0KICAgfQogCi0gIC8vIHRydWUgaWZmIHRoZSB0ZXN0IGZ1bmN0
aW9uIGlzIGV4cGVjdGVkIHRvIHJ1biB0byBmaW5pc2guCisgIC8vIHRydWUgaWYgYW5kIG9ubHkg
aWYgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gcnVuIHRvIGZpbmlzaC4KICAgc3Rh
dGljIGJvb2wgZXhwZWN0ZWRfdG9fZmluaXNoXzsKIAotICAvLyB0cnVlIGlmZiB0aGUgdGVzdCBm
dW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KKyAgLy8gdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
dGVzdCBmdW5jdGlvbiBkaWQgcnVuIHRvIGZpbmlzaC4KICAgc3RhdGljIGJvb2wgZmluaXNoZWRf
OwogCiAgIHN0YXRpYyBpbnQgbjFfOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvdGVzdC9ndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF9wcmVtYXR1cmVfZXhpdF90ZXN0LmNjCmluZGV4IGMxZTkzMDU2ZDhi
NTYyYzU5ZmViYTgyNzhlMjBjMjlkZjEzZTE5MTUuLjFkMTE4N2VmZjAwNmNjODg3NTBlZjk1Nzgy
OWQ1ODBhYzY5MDM1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3Qv
Z3Rlc3RfcHJlbWF0dXJlX2V4aXRfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC90ZXN0L2d0ZXN0X3ByZW1hdHVyZV9leGl0X3Rlc3QuY2MKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFt
ZXNwYWNlIHsKIAogY2xhc3MgUHJlbWF0dXJlRXhpdFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVi
bGljOgotICAvLyBSZXR1cm5zIHRydWUgaWZmIHRoZSBnaXZlbiBmaWxlIGV4aXN0cy4KKyAgLy8g
UmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZlbiBmaWxlIGV4aXN0cy4KICAgc3Rh
dGljIGJvb2wgRmlsZUV4aXN0cyhjb25zdCBjaGFyKiBmaWxlcGF0aCkgewogICAgIFN0YXRTdHJ1
Y3Qgc3RhdDsKICAgICByZXR1cm4gU3RhdChmaWxlcGF0aCwgJnN0YXQpID09IDA7CkBAIC01Niwx
MiArNTYsMTIgQEAgY2xhc3MgUHJlbWF0dXJlRXhpdFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgICAg
cHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9IEdldEVudigiVEVTVF9QUkVNQVRVUkVfRVhJVF9G
SUxFIik7CiAKICAgICAvLyBOb3JtYWxpemUgTlVMTCB0byAiIiBmb3IgZWFzZSBvZiBoYW5kbGlu
Zy4KLSAgICBpZiAocHJlbWF0dXJlX2V4aXRfZmlsZV9wYXRoXyA9PSBOVUxMKSB7CisgICAgaWYg
KHByZW1hdHVyZV9leGl0X2ZpbGVfcGF0aF8gPT0gbnVsbHB0cikgewogICAgICAgcHJlbWF0dXJl
X2V4aXRfZmlsZV9wYXRoXyA9ICIiOwogICAgIH0KICAgfQogCi0gIC8vIFJldHVybnMgdHJ1ZSBp
ZmYgdGhlIHByZW1hdHVyZS1leGl0IGZpbGUgZXhpc3RzLgorICAvLyBSZXR1cm5zIHRydWUgaWYg
YW5kIG9ubHkgaWYgdGhlIHByZW1hdHVyZS1leGl0IGZpbGUgZXhpc3RzLgogICBib29sIFByZW1h
dHVyZUV4aXRGaWxlRXhpc3RzKCkgY29uc3QgewogICAgIHJldHVybiBGaWxlRXhpc3RzKHByZW1h
dHVyZV9leGl0X2ZpbGVfcGF0aF8pOwogICB9CkBAIC0xMTMsNyArMTEzLDcgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIC8vIFRlc3QgdGhhdCB0aGUgcHJlbWF0dXJlLWV4
aXQgZmlsZSBpcyBkZWxldGVkIHVwb24gcmV0dXJuIGZyb20KICAgLy8gUlVOX0FMTF9URVNUUygp
LgogICBjb25zdCBjaGFyKiBjb25zdCBmaWxlcGF0aCA9IEdldEVudigiVEVTVF9QUkVNQVRVUkVf
RVhJVF9GSUxFIik7Ci0gIGlmIChmaWxlcGF0aCAhPSBOVUxMICYmICpmaWxlcGF0aCAhPSAnXDAn
KSB7CisgIGlmIChmaWxlcGF0aCAhPSBudWxscHRyICYmICpmaWxlcGF0aCAhPSAnXDAnKSB7CiAg
ICAgaWYgKFByZW1hdHVyZUV4aXRUZXN0OjpGaWxlRXhpc3RzKGZpbGVwYXRoKSkgewogICAgICAg
cHJpbnRmKAogICAgICAgICAgICJGaWxlICVzIHNob3VsZG4ndCBleGlzdCBhZnRlciB0aGUgdGVz
dCBwcm9ncmFtIGZpbmlzaGVzLCBidXQgZG9lcy4iLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9yZXBlYXRfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfcmVwZWF0X3Rlc3QuY2MKaW5kZXggMWU4ZjQ5OWJiOWRlM2QxNGJj
YjNiYjFhNjQxYzA2ZDdhMTI1MGFkMi4uN2RhNGExNWVhMTQxOTg5Zjg2NDI2YTU3MmJhYzBhNThi
MzNmNzZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9y
ZXBlYXRfdGVzdC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3Jl
cGVhdF90ZXN0LmNjCkBAIC03NCw4ICs3NCw4IEBAIGludCBnX2Vudmlyb25tZW50X3RlYXJfZG93
bl9jb3VudCA9IDA7CiBjbGFzcyBNeUVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmly
b25tZW50IHsKICBwdWJsaWM6CiAgIE15RW52aXJvbm1lbnQoKSB7fQotICB2aXJ0dWFsIHZvaWQg
U2V0VXAoKSB7IGdfZW52aXJvbm1lbnRfc2V0X3VwX2NvdW50Kys7IH0KLSAgdmlydHVhbCB2b2lk
IFRlYXJEb3duKCkgeyBnX2Vudmlyb25tZW50X3RlYXJfZG93bl9jb3VudCsrOyB9CisgIHZvaWQg
U2V0VXAoKSBvdmVycmlkZSB7IGdfZW52aXJvbm1lbnRfc2V0X3VwX2NvdW50Kys7IH0KKyAgdm9p
ZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgZ19lbnZpcm9ubWVudF90ZWFyX2Rvd25fY291bnQrKzsg
fQogfTsKIAogLy8gQSB0ZXN0IHRoYXQgc2hvdWxkIGZhaWwuCkBAIC0xMTcsMTMgKzExNywxMiBA
QCBjb25zdCBpbnQga051bWJlck9mUGFyYW1UZXN0cyA9IDEwOwogY2xhc3MgTXlQYXJhbVRlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxpbnQ+IHt9OwogCiBURVNUX1AoTXlQYXJh
bVRlc3QsIFNob3VsZFBhc3MpIHsKLSAgLy8gRklYTUU6IE1ha2UgcGFyYW1ldGVyIHZhbHVlIGNo
ZWNraW5nIHJvYnVzdCBXUlQgb3JkZXIgb2YgdGVzdHMuCiAgIEdURVNUX0NIRUNLX0lOVF9FUV8o
Z19wYXJhbV90ZXN0X2NvdW50ICUga051bWJlck9mUGFyYW1UZXN0cywgR2V0UGFyYW0oKSk7CiAg
IGdfcGFyYW1fdGVzdF9jb3VudCsrOwogfQotSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoTXlQYXJh
bVNlcXVlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgTXlQYXJhbVRlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpSYW5nZSgwLCBrTnVtYmVyT2ZQYXJhbVRlc3RzKSk7
CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoTXlQYXJhbVNlcXVlbmNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIE15UGFyYW1UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rp
bmc6OlJhbmdlKDAsIGtOdW1iZXJPZlBhcmFtVGVzdHMpKTsKIAogLy8gUmVzZXRzIHRoZSBjb3Vu
dCBmb3IgZWFjaCB0ZXN0Lgogdm9pZCBSZXNldENvdW50cygpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9jaGVja19vdXRwdXRfdGVzdC5weSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9jaGVja19vdXRwdXRfdGVz
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGU2M2FiODk3ZDk2MjhjNjcxYzkzNjRiMWYzMzkxNzAzMjY4NTY5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9z
a2lwX2NoZWNrX291dHB1dF90ZXN0LnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMhL3Vzci9iaW4vZW52
IHB5dGhvbgorIworIyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisiIiJUZXN0cyBHb29nbGUgVGVzdCdzIGd0ZXN0IHNr
aXAgaW4gZW52aXJvbm1lbnQgc2V0dXAgIGJlaGF2aW9yLgorCitUaGlzIHNjcmlwdCBpbnZva2Vz
IGd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdF8gYW5kIHZlcmlmaWVzIGl0cwor
b3V0cHV0LgorIiIiCisKK2ltcG9ydCByZQorCitpbXBvcnQgZ3Rlc3RfdGVzdF91dGlscworCisj
IFBhdGggdG8gdGhlIGd0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdCBiaW5hcnkK
K0VYRV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRUZXN0RXhlY3V0YWJsZVBhdGgoJ2d0ZXN0
X3NraXBfdGVzdCcpCisKK09VVFBVVCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhbRVhF
X1BBVEhdKS5vdXRwdXQKKworCisjIFRlc3QuCitjbGFzcyBTa2lwRW50aXJlRW52aXJvbm1lbnRU
ZXN0KGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgorCisgIGRlZiB0ZXN0U2tpcEVudGlyZUVu
dmlyb25tZW50VGVzdChzZWxmKToKKyAgICBzZWxmLmFzc2VydEluKCdTa2lwcGVkXG5za2lwcGlu
ZyBzaW5nbGUgdGVzdFxuJywgT1VUUFVUKQorICAgIHNraXBfZml4dHVyZSA9ICdTa2lwcGVkXG5z
a2lwcGluZyBhbGwgdGVzdHMgZm9yIHRoaXMgZml4dHVyZVxuJworICAgIHNlbGYuYXNzZXJ0SXNO
b3ROb25lKAorICAgICAgICByZS5zZWFyY2goc2tpcF9maXh0dXJlICsgJy4qJyArIHNraXBfZml4
dHVyZSwgT1VUUFVULCBmbGFncz1yZS5ET1RBTEwpLAorICAgICAgICByZXByKE9VVFBVVCkpCisg
ICAgc2VsZi5hc3NlcnROb3RJbignRkFJTEVEJywgT1VUUFVUKQorCisKK2lmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CisgIGd0ZXN0X3Rlc3RfdXRpbHMuTWFpbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfZW52aXJvbm1lbnRfY2hlY2tfb3V0
cHV0X3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfZW52
aXJvbm1lbnRfY2hlY2tfb3V0cHV0X3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU3OTE1NTZhYTcxZTU2
MjNhMzU3YWY4MjI3MTNiNGRmMjE3NjQwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc2tpcF9lbnZpcm9ubWVudF9jaGVja19vdXRwdXRfdGVz
dC5weQpAQCAtMCwwICsxLDU0IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJp
Z2h0IDIwMTkgR29vZ2xlIExMQy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorIiIiVGVzdHMgR29vZ2xlIFRlc3QncyBndGVzdCBza2lwIGluIGVudmlyb25tZW50IHNl
dHVwICBiZWhhdmlvci4KKworVGhpcyBzY3JpcHQgaW52b2tlcyBndGVzdF9za2lwX2luX2Vudmly
b25tZW50X3NldHVwX3Rlc3RfIGFuZCB2ZXJpZmllcyBpdHMKK291dHB1dC4KKyIiIgorCitpbXBv
cnQgZ3Rlc3RfdGVzdF91dGlscworCisjIFBhdGggdG8gdGhlIGd0ZXN0X3NraXBfaW5fZW52aXJv
bm1lbnRfc2V0dXBfdGVzdCBiaW5hcnkKK0VYRV9QQVRIID0gZ3Rlc3RfdGVzdF91dGlscy5HZXRU
ZXN0RXhlY3V0YWJsZVBhdGgoCisgICAgJ2d0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBf
dGVzdCcpCisKK09VVFBVVCA9IGd0ZXN0X3Rlc3RfdXRpbHMuU3VicHJvY2VzcyhbRVhFX1BBVEhd
KS5vdXRwdXQKKworCisjIFRlc3QuCitjbGFzcyBTa2lwRW50aXJlRW52aXJvbm1lbnRUZXN0KGd0
ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgorCisgIGRlZiB0ZXN0U2tpcEVudGlyZUVudmlyb25t
ZW50VGVzdChzZWxmKToKKyAgICBzZWxmLmFzc2VydEluKCdTa2lwcGluZyB0aGUgZW50aXJlIGVu
dmlyb25tZW50JywgT1VUUFVUKQorICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0ZBSUxFRCcsIE9VVFBV
VCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBndGVzdF90ZXN0X3V0aWxzLk1h
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lw
X2luX2Vudmlyb25tZW50X3NldHVwX3Rlc3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X3NraXBfaW5fZW52aXJvbm1lbnRfc2V0dXBfdGVzdC5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MzcyMzEwNjM4MTZlMDQ3YWNkZDJmYjQxNmRhODBlNDk4NjQzOGJlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX2luX2Vudmlyb25tZW50
X3NldHVwX3Rlc3QuY2MKQEAgLTAsMCArMSw0OSBAQAorLy8gQ29weXJpZ2h0IDIwMTksIEdvb2ds
ZSBMTEMuCisvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBMTEMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorLy8KKy8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHNraXBw
aW5nIGluIHRoZSBlbnZpcm9ubWVudCByZXN1bHRzIGluIHRoZQorLy8gdGVzdGNhc2VzIGJlaW5n
IHNraXBwZWQuCisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlICJndGVzdC9ndGVzdC5o
IgorCitjbGFzcyBTZXR1cEVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50
IHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IEdURVNUX1NLSVAoKSA8PCAi
U2tpcHBpbmcgdGhlIGVudGlyZSBlbnZpcm9ubWVudCI7IH0KK307CisKK1RFU1QoVGVzdCwgQWx3
YXlzRmFpbHMpIHsgRVhQRUNUX0VRKHRydWUsIGZhbHNlKTsgfQorCitpbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqKmFyZ3YpIHsKKyAgdGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3Yp
OworCisgIHRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgU2V0dXBFbnZpcm9u
bWVudCgpKTsKKworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX3Rlc3QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3NraXBfdGVzdC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTIzMDA0
Y2NhMzY4MTRlYzNiZjdlMGMxMjQ0NDRhZDY0NzcwYzU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9za2lwX3Rlc3QuY2MKQEAgLTAsMCArMSw1
NSBAQAorLy8gQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KKy8vIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
Ky8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisvLworLy8g
QXV0aG9yOiBhcnNlbnkuYXByZWxldkBnbWFpbC5jb20gKEFyc2VueSBBcHJlbGV2KQorLy8KKwor
I2luY2x1ZGUgImd0ZXN0L2d0ZXN0LmgiCisKK3VzaW5nIDo6dGVzdGluZzo6VGVzdDsKKworVEVT
VChTa2lwVGVzdCwgRG9lc1NraXApIHsKKyAgR1RFU1RfU0tJUCgpIDw8ICJza2lwcGluZyBzaW5n
bGUgdGVzdCI7CisgIEVYUEVDVF9FUSgwLCAxKTsKK30KKworY2xhc3MgRml4dHVyZSA6IHB1Ymxp
YyBUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgR1RF
U1RfU0tJUCgpIDw8ICJza2lwcGluZyBhbGwgdGVzdHMgZm9yIHRoaXMgZml4dHVyZSI7CisgIH0K
K307CisKK1RFU1RfRihGaXh0dXJlLCBTa2lwc09uZVRlc3QpIHsKKyAgRVhQRUNUX0VRKDUsIDcp
OworfQorCitURVNUX0YoRml4dHVyZSwgU2tpcHNBbm90aGVyVGVzdCkgeworICBFWFBFQ1RfRVEo
OTksIDEwMCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0
ZXN0X3N0cmVzc190ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF9z
dHJlc3NfdGVzdC5jYwppbmRleCA5NWFkYTM5YzMzN2QwZDRlY2U2ZmY1YjMyMzJkZTk2YzNkNTk4
NmJkLi44NDM0ODE5MTBmMDNmNjk4OTc3M2M1ODZiOGUxMWVkZGJkNjAzNGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3N0cmVzc190ZXN0LmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rfc3RyZXNzX3Rlc3QuY2MKQEAgLTQ1
LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIHsKIHVzaW5nIGludGVybmFsOjpOb3RpZmljYXRpb247CiB1
c2luZyBpbnRlcm5hbDo6VGVzdFByb3BlcnR5S2V5SXM7CiB1c2luZyBpbnRlcm5hbDo6VGhyZWFk
V2l0aFBhcmFtOwotdXNpbmcgaW50ZXJuYWw6OnNjb3BlZF9wdHI7CiAKIC8vIEluIG9yZGVyIHRv
IHJ1biB0ZXN0cyBpbiB0aGlzIGZpbGUsIGZvciBwbGF0Zm9ybXMgd2hlcmUgR29vZ2xlIFRlc3Qg
aXMKIC8vIHRocmVhZCBzYWZlLCBpbXBsZW1lbnQgVGhyZWFkV2l0aFBhcmFtLiBTZWUgdGhlIGRl
c2NyaXB0aW9uIG9mIGl0cyBBUEkKQEAgLTExOSw3ICsxMTgsNyBAQCB2b2lkIENoZWNrVGVzdEZh
aWx1cmVDb3VudChpbnQgZXhwZWN0ZWRfZmFpbHVyZXMpIHsKIC8vIGNvbmN1cnJlbnRseS4KIFRF
U1QoU3RyZXNzVGVzdCwgQ2FuVXNlU2NvcGVkVHJhY2VBbmRBc3NlcnRpb25zSW5NYW55VGhyZWFk
cykgewogICB7Ci0gICAgc2NvcGVkX3B0cjxUaHJlYWRXaXRoUGFyYW08aW50PiA+IHRocmVhZHNb
a1RocmVhZENvdW50XTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkV2l0aFBhcmFtPGludD4g
PiB0aHJlYWRzW2tUaHJlYWRDb3VudF07CiAgICAgTm90aWZpY2F0aW9uIHRocmVhZHNfY2FuX3N0
YXJ0OwogICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGtUaHJlYWRDb3VudDsgaSsrKQogICAgICAg
dGhyZWFkc1tpXS5yZXNldChuZXcgVGhyZWFkV2l0aFBhcmFtPGludD4oJk1hbnlBc3NlcnRzLApA
QCAtMTYzLDcgKzE2Miw3IEBAIHZvaWQgRmFpbGluZ1RocmVhZChib29sIGlzX2ZhdGFsKSB7CiB9
CiAKIHZvaWQgR2VuZXJhdGVGYXRhbEZhaWx1cmVJbkFub3RoZXJUaHJlYWQoYm9vbCBpc19mYXRh
bCkgewotICBUaHJlYWRXaXRoUGFyYW08Ym9vbD4gdGhyZWFkKCZGYWlsaW5nVGhyZWFkLCBpc19m
YXRhbCwgTlVMTCk7CisgIFRocmVhZFdpdGhQYXJhbTxib29sPiB0aHJlYWQoJkZhaWxpbmdUaHJl
YWQsIGlzX2ZhdGFsLCBudWxscHRyKTsKICAgdGhyZWFkLkpvaW4oKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90ZXN0X3V0aWxzLnB5IGIvU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF90ZXN0X3V0aWxzLnB5CmluZGV4IDQzY2Jh
OGY0Y2Q2MWRmZmYzYTFhNTIxMDFiZWQzZTczNGE1ZTFiNTQuLmQwYzI0NDY2YTRiN2UzZTYyM2I1
YWY0OTViOGUyNmVhYThhOWM4NjQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfdGVzdF91dGlscy5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90
ZXN0L2d0ZXN0X3Rlc3RfdXRpbHMucHkKQEAgLTM2LDYgKzM2LDcgQEAgaW1wb3J0IHN5cwogCiBJ
U19XSU5ET1dTID0gb3MubmFtZSA9PSAnbnQnCiBJU19DWUdXSU4gPSBvcy5uYW1lID09ICdwb3Np
eCcgYW5kICdDWUdXSU4nIGluIG9zLnVuYW1lKClbMF0KK0lTX09TMiA9IG9zLm5hbWUgPT0gJ29z
MicKIAogaW1wb3J0IGF0ZXhpdAogaW1wb3J0IHNodXRpbApAQCAtMTY0LDcgKzE2NSw3IEBAIGRl
ZiBHZXRUZXN0RXhlY3V0YWJsZVBhdGgoZXhlY3V0YWJsZV9uYW1lLCBidWlsZF9kaXI9Tm9uZSk6
CiAKICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oYnVpbGRfZGlyIG9yIEdl
dEJ1aWxkRGlyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1
dGFibGVfbmFtZSkpCi0gIGlmIChJU19XSU5ET1dTIG9yIElTX0NZR1dJTikgYW5kIG5vdCBwYXRo
LmVuZHN3aXRoKCcuZXhlJyk6CisgIGlmIChJU19XSU5ET1dTIG9yIElTX0NZR1dJTiBvciBJU19P
UzIpIGFuZCBub3QgcGF0aC5lbmRzd2l0aCgnLmV4ZScpOgogICAgIHBhdGggKz0gJy5leGUnCiAK
ICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgpAQCAtMjE0LDEwICsyMTUsMTAgQEAgY2xh
c3MgU3VicHJvY2VzczoKICAgICBSZXR1cm5zOgogICAgICAgQW4gb2JqZWN0IHRoYXQgcmVwcmVz
ZW50cyBvdXRjb21lIG9mIHRoZSBleGVjdXRlZCBwcm9jZXNzLiBJdCBoYXMgdGhlCiAgICAgICBm
b2xsb3dpbmcgYXR0cmlidXRlczoKLSAgICAgICAgdGVybWluYXRlZF9ieV9zaWduYWwgICBUcnVl
IGlmZiB0aGUgY2hpbGQgcHJvY2VzcyBoYXMgYmVlbiB0ZXJtaW5hdGVkCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnkgYSBzaWduYWwuCi0gICAgICAgIHNpZ25hbCAgICAgICAgICAg
ICAgICAgU3lnbmFsIHRoYXQgdGVybWluYXRlZCB0aGUgY2hpbGQgcHJvY2Vzcy4KLSAgICAgICAg
ZXhpdGVkICAgICAgICAgICAgICAgICBUcnVlIGlmZiB0aGUgY2hpbGQgcHJvY2VzcyBleGl0ZWQg
bm9ybWFsbHkuCisgICAgICAgIHRlcm1pbmF0ZWRfYnlfc2lnbmFsICAgVHJ1ZSBpZiBhbmQgb25s
eSBpZiB0aGUgY2hpbGQgcHJvY2VzcyBoYXMgYmVlbgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwuCisgICAgICAgIGV4aXRlZCAgICAgICAgICAg
ICAgICAgVHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgY2hpbGQgcHJvY2VzcyBleGl0ZWQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxseS4KICAgICAgICAgZXhpdF9jb2RlICAg
ICAgICAgICAgICBUaGUgY29kZSB3aXRoIHdoaWNoIHRoZSBjaGlsZCBwcm9jZXNzIGV4aXRlZC4K
ICAgICAgICAgb3V0cHV0ICAgICAgICAgICAgICAgICBDaGlsZCBwcm9jZXNzJ3Mgc3Rkb3V0IGFu
ZCBzdGRlcnIgb3V0cHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZWQg
aW4gYSBzdHJpbmcuCkBAIC0yODcsMTAgKzI4OCw5IEBAIGNsYXNzIFN1YnByb2Nlc3M6CiAgICAg
ICBlbHNlOiAgIyBvcy5XSUZFWElURUQocmV0X2NvZGUpIHNob3VsZCByZXR1cm4gVHJ1ZSBoZXJl
LgogICAgICAgICBzZWxmLl9yZXR1cm5fY29kZSA9IG9zLldFWElUU1RBVFVTKHJldF9jb2RlKQog
Ci0gICAgaWYgc2VsZi5fcmV0dXJuX2NvZGUgPCAwOgorICAgIGlmIGJvb2woc2VsZi5fcmV0dXJu
X2NvZGUgJiAweDgwMDAwMDAwKToKICAgICAgIHNlbGYudGVybWluYXRlZF9ieV9zaWduYWwgPSBU
cnVlCiAgICAgICBzZWxmLmV4aXRlZCA9IEZhbHNlCi0gICAgICBzZWxmLnNpZ25hbCA9IC1zZWxm
Ll9yZXR1cm5fY29kZQogICAgIGVsc2U6CiAgICAgICBzZWxmLnRlcm1pbmF0ZWRfYnlfc2lnbmFs
ID0gRmFsc2UKICAgICAgIHNlbGYuZXhpdGVkID0gVHJ1ZQpAQCAtMzA2LDggKzMwNiw2IEBAIGRl
ZiBNYWluKCk6CiAgIF9QYXJzZUFuZFN0cmlwR1Rlc3RGbGFncyhzeXMuYXJndikKICAgIyBUaGUg
dGVzdGVkIGJpbmFyaWVzIHNob3VsZCBub3QgYmUgd3JpdGluZyBYTUwgb3V0cHV0IGZpbGVzIHVu
bGVzcyB0aGUKICAgIyBzY3JpcHQgZXhwbGljaXRseSBpbnN0cnVjdHMgdGhlbSB0by4KLSAgIyBG
SVhNRTogTW92ZSB0aGlzIGludG8gU3VicHJvY2VzcyB3aGVuIHdlIGltcGxlbWVudAotICAjIHBh
c3NpbmcgZW52aXJvbm1lbnQgaW50byBpdCBhcyBhIHBhcmFtZXRlci4KICAgaWYgR1RFU1RfT1VU
UFVUX1ZBUl9OQU1FIGluIG9zLmVudmlyb246CiAgICAgZGVsIG9zLmVudmlyb25bR1RFU1RfT1VU
UFVUX1ZBUl9OQU1FXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3Rocm93X29uX2ZhaWx1cmVfZXhfdGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjCmluZGV4IDkzZjU5ZDQ5
Y2ZkYjk0NzRkY2E2MjJjMTdhMmM5NjRhYjBiZDU4ZjQuLjFkOTVhZGJmNTM3YmE5MTc4MTYzOTg3
YzBkM2UwYzhhYTAzYWI1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rl
c3QvZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZV9leF90ZXN0LmNjCkBAIC02Myw4
ICs2Myw3IEBAIHZvaWQgVGVzdEZhaWx1cmVUaHJvd3NSdW50aW1lRXJyb3IoKSB7CiAgIHRyeSB7
CiAgICAgRVhQRUNUX0VRKDIsIDMpIDw8ICJFeHBlY3RlZCBmYWlsdXJlIjsKICAgfSBjYXRjaChj
b25zdCBzdGQ6OnJ1bnRpbWVfZXJyb3ImIGUpIHsKLSAgICBpZiAoc3Ryc3RyKGUud2hhdCgpLCAi
RXhwZWN0ZWQgZmFpbHVyZSIpICE9IE5VTEwpCi0gICAgICByZXR1cm47CisgICAgaWYgKHN0cnN0
cihlLndoYXQoKSwgIkV4cGVjdGVkIGZhaWx1cmUiKSAhPSBudWxscHRyKSByZXR1cm47CiAKICAg
ICBwcmludGYoIiVzIiwKICAgICAgICAgICAgIkEgZmFpbGVkIGFzc2VydGlvbiBkaWQgdGhyb3cg
YW4gZXhjZXB0aW9uIG9mIHRoZSByaWdodCB0eXBlLCAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3VuaXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF91bml0dGVzdC5jYwppbmRleCBmNzIxM2ZiZjNlNWU4NzIwODliZmI5
ODU1MWFjM2JhM2UzYTY3YmY1Li4xNzMwZThiOGM5YzliNzQyYjVkY2ZkMWY1MDU1YjJmMjMyZDQ4
M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3VuaXR0
ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfdW5pdHRlc3Qu
Y2MKQEAgLTM3LDIxICszNywyMiBAQAogLy8gY29kZSBvbmNlICJndGVzdC5oIiBoYXMgYmVlbiAj
aW5jbHVkZWQuCiAvLyBEbyBub3QgbW92ZSBpdCBhZnRlciBvdGhlciBndGVzdCAjaW5jbHVkZXMu
CiBURVNUKENvbW1hbmRMaW5lRmxhZ3NUZXN0LCBDYW5CZUFjY2Vzc2VkSW5Db2RlT25jZUdUZXN0
SElzSW5jbHVkZWQpIHsKLSAgYm9vbCBkdW1teSA9IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYWxzb19y
dW5fZGlzYWJsZWRfdGVzdHMpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJyZWFrX29u
X2ZhaWx1cmUpCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMp
Ci0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNvbG9yKSAhPSAidW5rbm93biIKLSAgICAg
IHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcoZmlsdGVyKSAhPSAidW5rbm93biIKLSAgICAgIHx8IHRl
c3Rpbmc6OkdURVNUX0ZMQUcobGlzdF90ZXN0cykKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZM
QUcob3V0cHV0KSAhPSAidW5rbm93biIKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcocHJp
bnRfdGltZSkKLSAgICAgIHx8IHRlc3Rpbmc6OkdURVNUX0ZMQUcocmFuZG9tX3NlZWQpCi0gICAg
ICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHJlcGVhdCkgPiAwCi0gICAgICB8fCB0ZXN0aW5nOjpH
VEVTVF9GTEFHKHNob3dfaW50ZXJuYWxfc3RhY2tfZnJhbWVzKQotICAgICAgfHwgdGVzdGluZzo6
R1RFU1RfRkxBRyhzaHVmZmxlKQotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyhzdGFja190
cmFjZV9kZXB0aCkgPiAwCi0gICAgICB8fCB0ZXN0aW5nOjpHVEVTVF9GTEFHKHN0cmVhbV9yZXN1
bHRfdG8pICE9ICJ1bmtub3duIgotICAgICAgfHwgdGVzdGluZzo6R1RFU1RfRkxBRyh0aHJvd19v
bl9mYWlsdXJlKTsKKyAgYm9vbCBkdW1teSA9IHRlc3Rpbmc6OkdURVNUX0ZMQUcoYWxzb19ydW5f
ZGlzYWJsZWRfdGVzdHMpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGJy
ZWFrX29uX2ZhaWx1cmUpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNh
dGNoX2V4Y2VwdGlvbnMpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKGNv
bG9yKSAhPSAidW5rbm93biIgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNUX0ZMQUco
ZmFpbF9mYXN0KSB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhmaWx0ZXIp
ICE9ICJ1bmtub3duIiB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhsaXN0
X3Rlc3RzKSB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhvdXRwdXQpICE9
ICJ1bmtub3duIiB8fAorICAgICAgICAgICAgICAgdGVzdGluZzo6R1RFU1RfRkxBRyhicmllZikg
fHwgdGVzdGluZzo6R1RFU1RfRkxBRyhwcmludF90aW1lKSB8fAorICAgICAgICAgICAgICAgdGVz
dGluZzo6R1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6
OkdURVNUX0ZMQUcocmVwZWF0KSA+IDAgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6OkdURVNU
X0ZMQUcoc2hvd19pbnRlcm5hbF9zdGFja19mcmFtZXMpIHx8CisgICAgICAgICAgICAgICB0ZXN0
aW5nOjpHVEVTVF9GTEFHKHNodWZmbGUpIHx8CisgICAgICAgICAgICAgICB0ZXN0aW5nOjpHVEVT
VF9GTEFHKHN0YWNrX3RyYWNlX2RlcHRoKSA+IDAgfHwKKyAgICAgICAgICAgICAgIHRlc3Rpbmc6
OkdURVNUX0ZMQUcoc3RyZWFtX3Jlc3VsdF90bykgIT0gInVua25vd24iIHx8CisgICAgICAgICAg
ICAgICB0ZXN0aW5nOjpHVEVTVF9GTEFHKHRocm93X29uX2ZhaWx1cmUpOwogICBFWFBFQ1RfVFJV
RShkdW1teSB8fCAhZHVtbXkpOyAgLy8gU3VwcHJlc3NlcyB3YXJuaW5nIHRoYXQgZHVtbXkgaXMg
dW51c2VkLgogfQogCkBAIC02MCwxMiArNjEsMTMgQEAgVEVTVChDb21tYW5kTGluZUZsYWdzVGVz
dCwgQ2FuQmVBY2Nlc3NlZEluQ29kZU9uY2VHVGVzdEhJc0luY2x1ZGVkKSB7CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CiAjaW5jbHVkZSA8dGltZS5oPgogCisjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNs
dWRlIDxtYXA+Ci0jaW5jbHVkZSA8dmVjdG9yPgogI2luY2x1ZGUgPG9zdHJlYW0+Ci0jaWYgR1RF
U1RfTEFOR19DWFgxMQorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K
ICNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCisj
aW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiZ3Rlc3QvZ3Rlc3Qtc3BpLmgiCiAjaW5jbHVk
ZSAic3JjL2d0ZXN0LWludGVybmFsLWlubC5oIgpAQCAtODAsNyArODIsNyBAQCBjbGFzcyBTdHJl
YW1pbmdMaXN0ZW5lclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIGNsYXNzIEZha2VTb2NrZXRXcml0
ZXIgOiBwdWJsaWMgU3RyZWFtaW5nTGlzdGVuZXI6OkFic3RyYWN0U29ja2V0V3JpdGVyIHsKICAg
IHB1YmxpYzoKICAgICAvLyBTZW5kcyBhIHN0cmluZyB0byB0aGUgc29ja2V0LgotICAgIHZpcnR1
YWwgdm9pZCBTZW5kKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7IG91dHB1dF8gKz0gbWVz
c2FnZTsgfQorICAgIHZvaWQgU2VuZChjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgb3ZlcnJp
ZGUgeyBvdXRwdXRfICs9IG1lc3NhZ2U7IH0KIAogICAgIHN0ZDo6c3RyaW5nIG91dHB1dF87CiAg
IH07CkBAIC04OCw4ICs5MCw4IEBAIGNsYXNzIFN0cmVhbWluZ0xpc3RlbmVyVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKICAgU3RyZWFtaW5nTGlzdGVuZXJUZXN0KCkKICAgICAgIDogZmFrZV9zb2NrX3dy
aXRlcl8obmV3IEZha2VTb2NrZXRXcml0ZXIpLAogICAgICAgICBzdHJlYW1lcl8oZmFrZV9zb2Nr
X3dyaXRlcl8pLAotICAgICAgICB0ZXN0X2luZm9fb2JqXygiRm9vVGVzdCIsICJCYXIiLCBOVUxM
LCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICBDb2RlTG9jYXRpb24oX19GSUxFX18sIF9f
TElORV9fKSwgMCwgTlVMTCkge30KKyAgICAgICAgdGVzdF9pbmZvX29ial8oIkZvb1Rlc3QiLCAi
QmFyIiwgbnVsbHB0ciwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0
aW9uKF9fRklMRV9fLCBfX0xJTkVfXyksIG51bGxwdHIsIG51bGxwdHIpIHt9CiAKICBwcm90ZWN0
ZWQ6CiAgIHN0ZDo6c3RyaW5nKiBvdXRwdXQoKSB7IHJldHVybiAmKGZha2Vfc29ja193cml0ZXJf
LT5vdXRwdXRfKTsgfQpAQCAtMTE0LDEzICsxMTYsMTMgQEAgVEVTVF9GKFN0cmVhbWluZ0xpc3Rl
bmVyVGVzdCwgT25UZXN0SXRlcmF0aW9uRW5kKSB7CiAKIFRFU1RfRihTdHJlYW1pbmdMaXN0ZW5l
clRlc3QsIE9uVGVzdENhc2VTdGFydCkgewogICAqb3V0cHV0KCkgPSAiIjsKLSAgc3RyZWFtZXJf
Lk9uVGVzdENhc2VTdGFydChUZXN0Q2FzZSgiRm9vVGVzdCIsICJCYXIiLCBOVUxMLCBOVUxMKSk7
CisgIHN0cmVhbWVyXy5PblRlc3RDYXNlU3RhcnQoVGVzdENhc2UoIkZvb1Rlc3QiLCAiQmFyIiwg
bnVsbHB0ciwgbnVsbHB0cikpOwogICBFWFBFQ1RfRVEoImV2ZW50PVRlc3RDYXNlU3RhcnQmbmFt
ZT1Gb29UZXN0XG4iLCAqb3V0cHV0KCkpOwogfQogCiBURVNUX0YoU3RyZWFtaW5nTGlzdGVuZXJU
ZXN0LCBPblRlc3RDYXNlRW5kKSB7CiAgICpvdXRwdXQoKSA9ICIiOwotICBzdHJlYW1lcl8uT25U
ZXN0Q2FzZUVuZChUZXN0Q2FzZSgiRm9vVGVzdCIsICJCYXIiLCBOVUxMLCBOVUxMKSk7CisgIHN0
cmVhbWVyXy5PblRlc3RDYXNlRW5kKFRlc3RDYXNlKCJGb29UZXN0IiwgIkJhciIsIG51bGxwdHIs
IG51bGxwdHIpKTsKICAgRVhQRUNUX0VRKCJldmVudD1UZXN0Q2FzZUVuZCZwYXNzZWQ9MSZlbGFw
c2VkX3RpbWU9MG1zXG4iLCAqb3V0cHV0KCkpOwogfQogCkBAIC0yMDIsOSArMjA0LDExIEBAIHVz
aW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcoYnJlYWtfb25fZmFpbHVyZSk7CiB1c2luZyB0ZXN0aW5n
OjpHVEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxB
Ryhjb2xvcik7CiB1c2luZyB0ZXN0aW5nOjpHVEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2Zvcmsp
OwordXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhmYWlsX2Zhc3QpOwogdXNpbmcgdGVzdGluZzo6
R1RFU1RfRkxBRyhmaWx0ZXIpOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhsaXN0X3Rlc3Rz
KTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcob3V0cHV0KTsKK3VzaW5nIHRlc3Rpbmc6OkdU
RVNUX0ZMQUcoYnJpZWYpOwogdXNpbmcgdGVzdGluZzo6R1RFU1RfRkxBRyhwcmludF90aW1lKTsK
IHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUcocmFuZG9tX3NlZWQpOwogdXNpbmcgdGVzdGluZzo6
R1RFU1RfRkxBRyhyZXBlYXQpOwpAQCAtMjE1LDI3ICsyMTksMjYgQEAgdXNpbmcgdGVzdGluZzo6
R1RFU1RfRkxBRyhzdHJlYW1fcmVzdWx0X3RvKTsKIHVzaW5nIHRlc3Rpbmc6OkdURVNUX0ZMQUco
dGhyb3dfb25fZmFpbHVyZSk7CiB1c2luZyB0ZXN0aW5nOjpJc05vdFN1YnN0cmluZzsKIHVzaW5n
IHRlc3Rpbmc6OklzU3Vic3RyaW5nOwordXNpbmcgdGVzdGluZzo6a01heFN0YWNrVHJhY2VEZXB0
aDsKIHVzaW5nIHRlc3Rpbmc6Ok1lc3NhZ2U7CiB1c2luZyB0ZXN0aW5nOjpTY29wZWRGYWtlVGVz
dFBhcnRSZXN1bHRSZXBvcnRlcjsKIHVzaW5nIHRlc3Rpbmc6OlN0YXRpY0Fzc2VydFR5cGVFcTsK
IHVzaW5nIHRlc3Rpbmc6OlRlc3Q7Ci11c2luZyB0ZXN0aW5nOjpUZXN0Q2FzZTsKIHVzaW5nIHRl
c3Rpbmc6OlRlc3RFdmVudExpc3RlbmVyczsKIHVzaW5nIHRlc3Rpbmc6OlRlc3RJbmZvOwogdXNp
bmcgdGVzdGluZzo6VGVzdFBhcnRSZXN1bHQ7CiB1c2luZyB0ZXN0aW5nOjpUZXN0UGFydFJlc3Vs
dEFycmF5OwogdXNpbmcgdGVzdGluZzo6VGVzdFByb3BlcnR5OwogdXNpbmcgdGVzdGluZzo6VGVz
dFJlc3VsdDsKK3VzaW5nIHRlc3Rpbmc6OlRlc3RTdWl0ZTsKIHVzaW5nIHRlc3Rpbmc6OlRpbWVJ
bk1pbGxpczsKIHVzaW5nIHRlc3Rpbmc6OlVuaXRUZXN0OwotdXNpbmcgdGVzdGluZzo6aW50ZXJu
YWw6OkFkZFJlZmVyZW5jZTsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNGYWxzZTsK
IHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpBbHdheXNUcnVlOwogdXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6OkFwcGVuZFVzZXJNZXNzYWdlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFycmF5
QXdhcmVGaW5kOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkFycmF5RXE7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6Q29kZVBvaW50VG9VdGY4OwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
OkNvbXBpbGVBc3NlcnRUeXBlc0VxdWFsOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNvcHlB
cnJheTsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpDb3VudElmOwogdXNpbmcgdGVzdGluZzo6
aW50ZXJuYWw6OkVxRmFpbHVyZTsKQEAgLTI0Myw3ICsyNDYsNiBAQCB1c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6RmxvYXRpbmdQb2ludDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGb3JFYWNo
OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284
NjAxOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkZvcm1hdFRpbWVJbk1pbGxpc0FzU2Vjb25k
czsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHVGVzdEZsYWdTYXZlcjsKIHVzaW5nIHRlc3Rp
bmc6OmludGVybmFsOjpHZXRDdXJyZW50T3NTdGFja1RyYWNlRXhjZXB0VG9wOwogdXNpbmcgdGVz
dGluZzo6aW50ZXJuYWw6OkdldEVsZW1lbnRPcjsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpH
ZXROZXh0UmFuZG9tU2VlZDsKQEAgLTI1MiwyMSArMjU0LDIwIEBAIHVzaW5nIHRlc3Rpbmc6Omlu
dGVybmFsOjpHZXRUZXN0VHlwZUlkOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkdldFRpbWVJ
bk1pbGxpczsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHZXRUeXBlSWQ7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6R2V0VW5pdFRlc3RJbXBsOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6
OkltcGxpY2l0bHlDb252ZXJ0aWJsZTsKLXVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpJbnQzMjsK
K3VzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpHVGVzdEZsYWdTYXZlcjsKK3VzaW5nIHRlc3Rpbmc6
OmludGVybmFsOjpIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc7CiB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6SW50MzJGcm9tRW52T3JEaWU7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6SXNBUHJvdG9jb2xNZXNzYWdlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OklzQ29udGFp
bmVyOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OklzQ29udGFpbmVyVGVzdDsKIHVzaW5nIHRl
c3Rpbmc6OmludGVybmFsOjpJc05vdENvbnRhaW5lcjsKK3VzaW5nIHRlc3Rpbmc6OmludGVybmFs
OjprTWF4UmFuZG9tU2VlZDsKK3VzaW5nIHRlc3Rpbmc6OmludGVybmFsOjprVGVzdFR5cGVJZElu
R29vZ2xlVGVzdDsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpOYXRpdmVBcnJheTsKIHVzaW5n
IHRlc3Rpbmc6OmludGVybmFsOjpPc1N0YWNrVHJhY2VHZXR0ZXI7CiB1c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6T3NTdGFja1RyYWNlR2V0dGVySW50ZXJmYWNlOwogdXNpbmcgdGVzdGluZzo6aW50
ZXJuYWw6OlBhcnNlSW50MzJGbGFnOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlJlbGF0aW9u
VG9Tb3VyY2VDb3B5OwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlJlbGF0aW9uVG9Tb3VyY2VS
ZWZlcmVuY2U7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6UmVtb3ZlQ29uc3Q7Ci11c2luZyB0
ZXN0aW5nOjppbnRlcm5hbDo6UmVtb3ZlUmVmZXJlbmNlOwogdXNpbmcgdGVzdGluZzo6aW50ZXJu
YWw6OlNob3VsZFJ1blRlc3RPblNoYXJkOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlNob3Vs
ZFNoYXJkOwogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlNob3VsZFVzZUNvbG9yOwpAQCAtMjc3
LDE1ICsyNzgsMTEgQEAgdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlN0cmVhbWFibGVUb1N0cmlu
ZzsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpTdHJpbmc7CiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6VGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6VGVzdFJlc3VsdEFjY2Vzc29yOwotdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OlVJbnQzMjsK
IHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdEltcGw7CiB1c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6V2lkZVN0cmluZ1RvVXRmODsKIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjplZGl0
X2Rpc3RhbmNlOjpDYWxjdWxhdGVPcHRpbWFsRWRpdHM7CiB1c2luZyB0ZXN0aW5nOjppbnRlcm5h
bDo6ZWRpdF9kaXN0YW5jZTo6Q3JlYXRlVW5pZmllZERpZmY7CiB1c2luZyB0ZXN0aW5nOjppbnRl
cm5hbDo6ZWRpdF9kaXN0YW5jZTo6RWRpdFR5cGU7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6
a01heFJhbmRvbVNlZWQ7Ci11c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6a1Rlc3RUeXBlSWRJbkdv
b2dsZVRlc3Q7Ci11c2luZyB0ZXN0aW5nOjprTWF4U3RhY2tUcmFjZURlcHRoOwogCiAjaWYgR1RF
U1RfSEFTX1NUUkVBTV9SRURJUkVDVElPTgogdXNpbmcgdGVzdGluZzo6aW50ZXJuYWw6OkNhcHR1
cmVTdGRvdXQ7CkBAIC00NDAsOCArNDM3LDggQEAgY2xhc3MgRm9ybWF0RXBvY2hUaW1lSW5NaWxs
aXNBc0lzbzg2MDFUZXN0IDogcHVibGljIFRlc3QgewogICBzdGF0aWMgY29uc3QgVGltZUluTWls
bGlzIGtNaWxsaXNQZXJTZWMgPSAxMDAwOwogCiAgcHJpdmF0ZToKLSAgdmlydHVhbCB2b2lkIFNl
dFVwKCkgewotICAgIHNhdmVkX3R6XyA9IE5VTEw7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7
CisgICAgc2F2ZWRfdHpfID0gbnVsbHB0cjsKIAogICAgIEdURVNUX0RJU0FCTEVfTVNDX0RFUFJF
Q0FURURfUFVTSF8oLyogZ2V0ZW52LCBzdHJkdXA6IGRlcHJlY2F0ZWQgKi8pCiAgICAgaWYgKGdl
dGVudigiVFoiKSkKQEAgLTQ1NCwxMCArNDUxLDEwIEBAIGNsYXNzIEZvcm1hdEVwb2NoVGltZUlu
TWlsbGlzQXNJc284NjAxVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBTZXRUaW1lWm9uZSgiVVRD
KzAwIik7CiAgIH0KIAotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRv
d24oKSBvdmVycmlkZSB7CiAgICAgU2V0VGltZVpvbmUoc2F2ZWRfdHpfKTsKICAgICBmcmVlKGNv
bnN0X2Nhc3Q8Y2hhcio+KHNhdmVkX3R6XykpOwotICAgIHNhdmVkX3R6XyA9IE5VTEw7CisgICAg
c2F2ZWRfdHpfID0gbnVsbHB0cjsKICAgfQogCiAgIHN0YXRpYyB2b2lkIFNldFRpbWVab25lKGNv
bnN0IGNoYXIqIHRpbWVfem9uZSkgewpAQCAtNDg5LDYxICs0ODYsMTEyIEBAIGNsYXNzIEZvcm1h
dEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCA6IHB1YmxpYyBUZXN0IHsKIGNvbnN0IFRp
bWVJbk1pbGxpcyBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3Q6OmtNaWxsaXNQ
ZXJTZWM7CiAKIFRFU1RfRihGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIFBy
aW50c1R3b0RpZ2l0U2VnbWVudHMpIHsKLSAgRVhQRUNUX0VRKCIyMDExLTEwLTMxVDE4OjUyOjQy
IiwKKyAgRVhQRUNUX0VRKCIyMDExLTEwLTMxVDE4OjUyOjQyLjAwMCIsCiAgICAgICAgICAgICBG
b3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgxMzIwMDg3MTYyICoga01pbGxpc1BlclNl
YykpOwogfQogCi1URVNUX0YoRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBN
aWxsaXNlY29uZHNEb05vdEFmZmVjdFJlc3VsdCkgeworVEVTVF9GKEZvcm1hdEVwb2NoVGltZUlu
TWlsbGlzQXNJc284NjAxVGVzdCwgSW5jbHVkZXNNaWxsaXNlY29uZHNBZnRlckRvdCkgewogICBF
WFBFQ1RfRVEoCi0gICAgICAiMjAxMS0xMC0zMVQxODo1Mjo0MiIsCisgICAgICAiMjAxMS0xMC0z
MVQxODo1Mjo0Mi4yMzQiLAogICAgICAgRm9ybWF0RXBvY2hUaW1lSW5NaWxsaXNBc0lzbzg2MDEo
MTMyMDA4NzE2MiAqIGtNaWxsaXNQZXJTZWMgKyAyMzQpKTsKIH0KIAogVEVTVF9GKEZvcm1hdEVw
b2NoVGltZUluTWlsbGlzQXNJc284NjAxVGVzdCwgUHJpbnRzTGVhZGluZ1plcm9lcykgewotICBF
WFBFQ1RfRVEoIjIwMTEtMDktMDNUMDU6MDc6MDIiLAorICBFWFBFQ1RfRVEoIjIwMTEtMDktMDNU
MDU6MDc6MDIuMDAwIiwKICAgICAgICAgICAgIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284
NjAxKDEzMTUwMjY0MjIgKiBrTWlsbGlzUGVyU2VjKSk7CiB9CiAKIFRFU1RfRihGb3JtYXRFcG9j
aFRpbWVJbk1pbGxpc0FzSXNvODYwMVRlc3QsIFByaW50czI0SG91clRpbWUpIHsKLSAgRVhQRUNU
X0VRKCIyMDExLTA5LTI4VDE3OjA4OjIyIiwKKyAgRVhQRUNUX0VRKCIyMDExLTA5LTI4VDE3OjA4
OjIyLjAwMCIsCiAgICAgICAgICAgICBGb3JtYXRFcG9jaFRpbWVJbk1pbGxpc0FzSXNvODYwMSgx
MzE3MjI5NzAyICoga01pbGxpc1BlclNlYykpOwogfQogCiBURVNUX0YoRm9ybWF0RXBvY2hUaW1l
SW5NaWxsaXNBc0lzbzg2MDFUZXN0LCBQcmludHNFcG9jaFN0YXJ0KSB7Ci0gIEVYUEVDVF9FUSgi
MTk3MC0wMS0wMVQwMDowMDowMCIsIEZvcm1hdEVwb2NoVGltZUluTWlsbGlzQXNJc284NjAxKDAp
KTsKKyAgRVhQRUNUX0VRKCIxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCIsIEZvcm1hdEVwb2NoVGlt
ZUluTWlsbGlzQXNJc284NjAxKDApKTsKIH0KIAotI2lmIEdURVNUX0NBTl9DT01QQVJFX05VTEwK
LQogIyBpZmRlZiBfX0JPUkxBTkRDX18KIC8vIFNpbGVuY2VzIHdhcm5pbmdzOiAiQ29uZGl0aW9u
IGlzIGFsd2F5cyB0cnVlIiwgIlVucmVhY2hhYmxlIGNvZGUiCiAjICBwcmFnbWEgb3B0aW9uIHB1
c2ggLXctY2NjIC13LXJjaAogIyBlbmRpZgogCi0vLyBUZXN0cyB0aGF0IEdURVNUX0lTX05VTExf
TElURVJBTF8oeCkgaXMgdHJ1ZSB3aGVuIHggaXMgYSBudWxsCi0vLyBwb2ludGVyIGxpdGVyYWwu
Ci1URVNUKE51bGxMaXRlcmFsVGVzdCwgSXNUcnVlRm9yTnVsbExpdGVyYWxzKSB7Ci0gIEVYUEVD
VF9UUlVFKEdURVNUX0lTX05VTExfTElURVJBTF8oTlVMTCkpOwotICBFWFBFQ1RfVFJVRShHVEVT
VF9JU19OVUxMX0xJVEVSQUxfKDApKTsKLSAgRVhQRUNUX1RSVUUoR1RFU1RfSVNfTlVMTF9MSVRF
UkFMXygwVSkpOwotICBFWFBFQ1RfVFJVRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDBMKSk7Cisv
LyBUZXN0cyB0aGF0IHRoZSBMSFMgb2YgRVhQRUNUX0VRIG9yIEFTU0VSVF9FUSBjYW4gYmUgdXNl
ZCBhcyBhIG51bGwgbGl0ZXJhbAorLy8gd2hlbiB0aGUgUkhTIGlzIGEgcG9pbnRlciB0eXBlLgor
VEVTVChOdWxsTGl0ZXJhbFRlc3QsIExIU0FsbG93c051bGxMaXRlcmFscykgeworICBFWFBFQ1Rf
RVEoMCwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsgICAgIC8vIE5PTElOVAorICBBU1NF
UlRfRVEoMCwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsgICAgIC8vIE5PTElOVAorICBF
WFBFQ1RfRVEoTlVMTCwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsgIC8vIE5PTElOVAor
ICBBU1NFUlRfRVEoTlVMTCwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsgIC8vIE5PTElO
VAorICBFWFBFQ1RfRVEobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKyAg
QVNTRVJUX0VRKG51bGxwdHIsIHN0YXRpY19jYXN0PHZvaWQqPihudWxscHRyKSk7CisKKyAgY29u
c3QgaW50KiBjb25zdCBwID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VRKDAsIHApOyAgICAgLy8gTk9M
SU5UCisgIEFTU0VSVF9FUSgwLCBwKTsgICAgIC8vIE5PTElOVAorICBFWFBFQ1RfRVEoTlVMTCwg
cCk7ICAvLyBOT0xJTlQKKyAgQVNTRVJUX0VRKE5VTEwsIHApOyAgLy8gTk9MSU5UCisgIEVYUEVD
VF9FUShudWxscHRyLCBwKTsKKyAgQVNTRVJUX0VRKG51bGxwdHIsIHApOworfQorCitzdHJ1Y3Qg
Q29udmVydFRvQWxsIHsKKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgIG9wZXJhdG9yIFQoKSBj
b25zdCB7ICAvLyBOT0xJTlQKKyAgICByZXR1cm4gVCgpOworICB9Cit9OworCitzdHJ1Y3QgQ29u
dmVydFRvUG9pbnRlciB7CisgIHRlbXBsYXRlIDxjbGFzcyBUPgorICBvcGVyYXRvciBUKigpIGNv
bnN0IHsgIC8vIE5PTElOVAorICAgIHJldHVybiBudWxscHRyOworICB9Cit9OworCitzdHJ1Y3Qg
Q29udmVydFRvQWxsQnV0Tm9Qb2ludGVycyB7CisgIHRlbXBsYXRlIDx0eXBlbmFtZSBULAorICAg
ICAgICAgICAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfcG9pbnRlcjxUPjo6dmFs
dWUsIGludD46OnR5cGUgPSAwPgorICBvcGVyYXRvciBUKCkgY29uc3QgeyAgLy8gTk9MSU5UCisg
ICAgcmV0dXJuIFQoKTsKKyAgfQorfTsKKworc3RydWN0IE15VHlwZSB7fTsKK2lubGluZSBib29s
IG9wZXJhdG9yPT0oTXlUeXBlIGNvbnN0JiwgTXlUeXBlIGNvbnN0JikgeyByZXR1cm4gdHJ1ZTsg
fQorCitURVNUKE51bGxMaXRlcmFsVGVzdCwgSW1wbGljaXRDb252ZXJzaW9uKSB7CisgIEVYUEVD
VF9FUShDb252ZXJ0VG9Qb2ludGVye30sIHN0YXRpY19jYXN0PHZvaWQqPihudWxscHRyKSk7Cisj
aWYgIWRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKQorICAvLyBEaXNhYmxl
ZCBkdWUgdG8gR0NDIGJ1ZyBnY2MuZ251Lm9yZy9QUjg5NTgwCisgIEVYUEVDVF9FUShDb252ZXJ0
VG9BbGx7fSwgc3RhdGljX2Nhc3Q8dm9pZCo+KG51bGxwdHIpKTsKKyNlbmRpZgorICBFWFBFQ1Rf
RVEoQ29udmVydFRvQWxse30sIE15VHlwZXt9KTsKKyAgRVhQRUNUX0VRKENvbnZlcnRUb0FsbEJ1
dE5vUG9pbnRlcnN7fSwgTXlUeXBle30pOwogfQogCi0vLyBUZXN0cyB0aGF0IEdURVNUX0lTX05V
TExfTElURVJBTF8oeCkgaXMgZmFsc2Ugd2hlbiB4IGlzIG5vdCBhIG51bGwKLS8vIHBvaW50ZXIg
bGl0ZXJhbC4KLVRFU1QoTnVsbExpdGVyYWxUZXN0LCBJc0ZhbHNlRm9yTm9uTnVsbExpdGVyYWxz
KSB7Ci0gIEVYUEVDVF9GQUxTRShHVEVTVF9JU19OVUxMX0xJVEVSQUxfKDEpKTsKLSAgRVhQRUNU
X0ZBTFNFKEdURVNUX0lTX05VTExfTElURVJBTF8oMC4wKSk7Ci0gIEVYUEVDVF9GQUxTRShHVEVT
VF9JU19OVUxMX0xJVEVSQUxfKCdhJykpOwotICBFWFBFQ1RfRkFMU0UoR1RFU1RfSVNfTlVMTF9M
SVRFUkFMXyhzdGF0aWNfY2FzdDx2b2lkKj4oTlVMTCkpKTsKKyNpZmRlZiBfX2NsYW5nX18KKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjaWYgX19oYXNfd2FybmluZygiLVd6ZXJvLWFz
LW51bGwtcG9pbnRlci1jb25zdGFudCIpCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgZXJyb3Ig
Ii1XemVyby1hcy1udWxsLXBvaW50ZXItY29uc3RhbnQiCisjZW5kaWYKKyNlbmRpZgorCitURVNU
KE51bGxMaXRlcmFsVGVzdCwgTm9Db252ZXJzaW9uTm9XYXJuaW5nKSB7CisgIC8vIFRlc3QgdGhh
dCBndGVzdHMgZGV0ZWN0aW9uIGFuZCBoYW5kbGluZyBvZiBudWxsIHBvaW50ZXIgY29uc3RhbnRz
CisgIC8vIGRvZXNuJ3QgdHJpZ2dlciBhIHdhcm5pbmcgd2hlbiAnMCcgaXNuJ3QgYWN0dWFsbHkg
dXNlZCBhcyBudWxsLgorICBFWFBFQ1RfRVEoMCwgMCk7CisgIEFTU0VSVF9FUSgwLCAwKTsKIH0K
IAorI2lmZGVmIF9fY2xhbmdfXworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorI2VuZGlm
CisKICMgaWZkZWYgX19CT1JMQU5EQ19fCiAvLyBSZXN0b3JlcyB3YXJuaW5ncyBhZnRlciBwcmV2
aW91cyAiI3ByYWdtYSBvcHRpb24gcHVzaCIgc3VwcHJlc3NlZCB0aGVtLgogIyAgcHJhZ21hIG9w
dGlvbiBwb3AKICMgZW5kaWYKIAotI2VuZGlmICAvLyBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMCiAv
LwogLy8gVGVzdHMgQ29kZVBvaW50VG9VdGY4KCkuCiAKQEAgLTU4OCw3ICs2MzYsNyBAQCBURVNU
KENvZGVQb2ludFRvVXRmOFRlc3QsIENhbkVuY29kZTEyVG8xNkJpdHMpIHsKIAogI2lmICFHVEVT
VF9XSURFX1NUUklOR19VU0VTX1VURjE2XwogLy8gVGVzdHMgaW4gdGhpcyBncm91cCByZXF1aXJl
IGEgd2NoYXJfdCB0byBob2xkID4gMTYgYml0cywgYW5kIHRodXMKLS8vIGFyZSBza2lwcGVkIG9u
IFdpbmRvd3MsIEN5Z3dpbiwgYW5kIFN5bWJpYW4sIHdoZXJlIGEgd2NoYXJfdCBpcworLy8gYXJl
IHNraXBwZWQgb24gV2luZG93cywgYW5kIEN5Z3dpbiwgd2hlcmUgYSB3Y2hhcl90IGlzCiAvLyAx
Ni1iaXQgd2lkZS4gVGhpcyBjb2RlIG1heSBub3QgY29tcGlsZSBvbiB0aG9zZSBzeXN0ZW1zLgog
CiAvLyBUZXN0cyB0aGF0IFVuaWNvZGUgY29kZS1wb2ludHMgdGhhdCBoYXZlIDE3IHRvIDIxIGJp
dHMgYXJlIGVuY29kZWQKQEAgLTc0Myw3ICs3OTEsNyBAQCBURVNUKFJhbmRvbURlYXRoVGVzdCwg
R2VuZXJhdGVzQ3Jhc2hlc09uSW52YWxpZFJhbmdlKSB7CiB9CiAKIFRFU1QoUmFuZG9tVGVzdCwg
R2VuZXJhdGVzTnVtYmVyc1dpdGhpblJhbmdlKSB7Ci0gIGNvbnN0IFVJbnQzMiBrUmFuZ2UgPSAx
MDAwMDsKKyAgY29uc3RleHByIHVpbnQzMl90IGtSYW5nZSA9IDEwMDAwOwogICB0ZXN0aW5nOjpp
bnRlcm5hbDo6UmFuZG9tIHJhbmRvbSgxMjM0NSk7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7
IGkrKykgewogICAgIEVYUEVDVF9MVChyYW5kb20uR2VuZXJhdGUoa1JhbmdlKSwga1JhbmdlKSA8
PCAiIGZvciBpdGVyYXRpb24gIiA8PCBpOwpAQCAtNzU2LDEwICs4MDQsMTAgQEAgVEVTVChSYW5k
b21UZXN0LCBHZW5lcmF0ZXNOdW1iZXJzV2l0aGluUmFuZ2UpIHsKIH0KIAogVEVTVChSYW5kb21U
ZXN0LCBSZXBlYXRzV2hlblJlc2VlZGVkKSB7Ci0gIGNvbnN0IGludCBrU2VlZCA9IDEyMzsKLSAg
Y29uc3QgaW50IGtBcnJheVNpemUgPSAxMDsKLSAgY29uc3QgVUludDMyIGtSYW5nZSA9IDEwMDAw
OwotICBVSW50MzIgdmFsdWVzW2tBcnJheVNpemVdOworICBjb25zdGV4cHIgaW50IGtTZWVkID0g
MTIzOworICBjb25zdGV4cHIgaW50IGtBcnJheVNpemUgPSAxMDsKKyAgY29uc3RleHByIHVpbnQz
Ml90IGtSYW5nZSA9IDEwMDAwOworICB1aW50MzJfdCB2YWx1ZXNba0FycmF5U2l6ZV07CiAKICAg
dGVzdGluZzo6aW50ZXJuYWw6OlJhbmRvbSByYW5kb20oa1NlZWQpOwogICBmb3IgKGludCBpID0g
MDsgaSA8IGtBcnJheVNpemU7IGkrKykgewpAQCAtODUxLDIzICs4OTksMjMgQEAgVEVTVChDb250
YWluZXJVdGlsaXR5RGVhdGhUZXN0LCBTaHVmZmxlUmFuZ2UpIHsKIAogY2xhc3MgVmVjdG9yU2h1
ZmZsZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHJvdGVjdGVkOgotICBzdGF0aWMgY29uc3QgaW50
IGtWZWN0b3JTaXplID0gMjA7CisgIHN0YXRpYyBjb25zdCBzaXplX3Qga1ZlY3RvclNpemUgPSAy
MDsKIAogICBWZWN0b3JTaHVmZmxlVGVzdCgpIDogcmFuZG9tXygxKSB7Ci0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBz
dGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JTaXplKTsgaSsrKSB7CiAgICAgICB2ZWN0b3JfLnB1c2hf
YmFjayhpKTsKICAgICB9CiAgIH0KIAogICBzdGF0aWMgYm9vbCBWZWN0b3JJc0NvcnJ1cHQoY29u
c3QgVGVzdGluZ1ZlY3RvciYgdmVjdG9yKSB7Ci0gICAgaWYgKGtWZWN0b3JTaXplICE9IHN0YXRp
Y19jYXN0PGludD4odmVjdG9yLnNpemUoKSkpIHsKKyAgICBpZiAoa1ZlY3RvclNpemUgIT0gdmVj
dG9yLnNpemUoKSkgewogICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgYm9vbCBmb3Vu
ZF9pbl92ZWN0b3Jba1ZlY3RvclNpemVdID0geyBmYWxzZSB9OwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgaSsrKSB7CiAgICAgICBjb25zdCBpbnQgZSA9IHZlY3Rv
cltpXTsKLSAgICAgIGlmIChlIDwgMCB8fCBlID49IGtWZWN0b3JTaXplIHx8IGZvdW5kX2luX3Zl
Y3RvcltlXSkgeworICAgICAgaWYgKGUgPCAwIHx8IGUgPj0gc3RhdGljX2Nhc3Q8aW50PihrVmVj
dG9yU2l6ZSkgfHwgZm91bmRfaW5fdmVjdG9yW2VdKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgfQogICAgICAgZm91bmRfaW5fdmVjdG9yW2VdID0gdHJ1ZTsKQEAgLTg4NCw3ICs5MzIs
NyBAQCBjbGFzcyBWZWN0b3JTaHVmZmxlVGVzdCA6IHB1YmxpYyBUZXN0IHsKIAogICBzdGF0aWMg
Ym9vbCBSYW5nZUlzU2h1ZmZsZWQoY29uc3QgVGVzdGluZ1ZlY3RvciYgdmVjdG9yLCBpbnQgYmVn
aW4sIGludCBlbmQpIHsKICAgICBmb3IgKGludCBpID0gYmVnaW47IGkgPCBlbmQ7IGkrKykgewot
ICAgICAgaWYgKGkgIT0gdmVjdG9yW2ldKSB7CisgICAgICBpZiAoaSAhPSB2ZWN0b3Jbc3RhdGlj
X2Nhc3Q8c2l6ZV90PihpKV0pIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAgICAg
fQpAQCAtOTA4LDcgKzk1Niw3IEBAIGNsYXNzIFZlY3RvclNodWZmbGVUZXN0IDogcHVibGljIFRl
c3QgewogICBUZXN0aW5nVmVjdG9yIHZlY3Rvcl87CiB9OyAgLy8gY2xhc3MgVmVjdG9yU2h1ZmZs
ZVRlc3QKIAotY29uc3QgaW50IFZlY3RvclNodWZmbGVUZXN0OjprVmVjdG9yU2l6ZTsKK2NvbnN0
IHNpemVfdCBWZWN0b3JTaHVmZmxlVGVzdDo6a1ZlY3RvclNpemU7CiAKIFRFU1RfRihWZWN0b3JT
aHVmZmxlVGVzdCwgSGFuZGxlc0VtcHR5UmFuZ2UpIHsKICAgLy8gVGVzdHMgYW4gZW1wdHkgcmFu
Z2UgYXQgdGhlIGJlZ2lubmluZy4uLgpAQCAtOTYwLDcgKzEwMDgsNyBAQCBURVNUX0YoVmVjdG9y
U2h1ZmZsZVRlc3QsIFNodWZmbGVzRW50aXJlVmVjdG9yKSB7CiAgIC8vIFRlc3RzIHRoZSBmaXJz
dCBhbmQgbGFzdCBlbGVtZW50cyBpbiBwYXJ0aWN1bGFyIHRvIGVuc3VyZSB0aGF0CiAgIC8vIHRo
ZXJlIGFyZSBubyBvZmYtYnktb25lIHByb2JsZW1zIGluIG91ciBzaHVmZmxlIGFsZ29yaXRobS4K
ICAgRVhQRUNUX05FKDAsIHZlY3Rvcl9bMF0pOwotICBFWFBFQ1RfTkUoa1ZlY3RvclNpemUgLSAx
LCB2ZWN0b3JfW2tWZWN0b3JTaXplIC0gMV0pOworICBFWFBFQ1RfTkUoc3RhdGljX2Nhc3Q8aW50
PihrVmVjdG9yU2l6ZSAtIDEpLCB2ZWN0b3JfW2tWZWN0b3JTaXplIC0gMV0pOwogfQogCiBURVNU
X0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzU3RhcnRPZlZlY3RvcikgewpAQCAtOTcwLDcg
KzEwMTgsOCBAQCBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzU3RhcnRPZlZlY3Rv
cikgewogCiAgIEFTU0VSVF9QUkVEMShWZWN0b3JJc05vdENvcnJ1cHQsIHZlY3Rvcl8pOwogICBF
WFBFQ1RfUFJFRDMoUmFuZ2VJc1NodWZmbGVkLCB2ZWN0b3JfLCAwLCBrUmFuZ2VTaXplKTsKLSAg
RVhQRUNUX1BSRUQzKFJhbmdlSXNVbnNodWZmbGVkLCB2ZWN0b3JfLCBrUmFuZ2VTaXplLCBrVmVj
dG9yU2l6ZSk7CisgIEVYUEVDVF9QUkVEMyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVjdG9yXywga1Jh
bmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNpemUpKTsK
IH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc0VuZE9mVmVjdG9yKSB7CkBA
IC05NzksMjMgKzEwMjgsMjUgQEAgVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc0Vu
ZE9mVmVjdG9yKSB7CiAKICAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9y
Xyk7CiAgIEVYUEVDVF9QUkVEMyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVjdG9yXywgMCwga1Jhbmdl
U2l6ZSk7Ci0gIEVYUEVDVF9QUkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8sIGtSYW5nZVNp
emUsIGtWZWN0b3JTaXplKTsKKyAgRVhQRUNUX1BSRUQzKFJhbmdlSXNTaHVmZmxlZCwgdmVjdG9y
Xywga1JhbmdlU2l6ZSwKKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oa1ZlY3RvclNp
emUpKTsKIH0KIAogVEVTVF9GKFZlY3RvclNodWZmbGVUZXN0LCBTaHVmZmxlc01pZGRsZU9mVmVj
dG9yKSB7Ci0gIGludCBrUmFuZ2VTaXplID0ga1ZlY3RvclNpemUvMzsKKyAgY29uc3QgaW50IGtS
YW5nZVNpemUgPSBzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0b3JTaXplKSAvIDM7CiAgIFNodWZmbGVS
YW5nZSgmcmFuZG9tXywga1JhbmdlU2l6ZSwgMiprUmFuZ2VTaXplLCAmdmVjdG9yXyk7CiAKICAg
QVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yXyk7CiAgIEVYUEVDVF9QUkVE
MyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVjdG9yXywgMCwga1JhbmdlU2l6ZSk7CiAgIEVYUEVDVF9Q
UkVEMyhSYW5nZUlzU2h1ZmZsZWQsIHZlY3Rvcl8sIGtSYW5nZVNpemUsIDIqa1JhbmdlU2l6ZSk7
Ci0gIEVYUEVDVF9QUkVEMyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVjdG9yXywgMiprUmFuZ2VTaXpl
LCBrVmVjdG9yU2l6ZSk7CisgIEVYUEVDVF9QUkVEMyhSYW5nZUlzVW5zaHVmZmxlZCwgdmVjdG9y
XywgMiAqIGtSYW5nZVNpemUsCisgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGtWZWN0
b3JTaXplKSk7CiB9CiAKIFRFU1RfRihWZWN0b3JTaHVmZmxlVGVzdCwgU2h1ZmZsZXNSZXBlYXRh
Ymx5KSB7CiAgIFRlc3RpbmdWZWN0b3IgdmVjdG9yMjsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBr
VmVjdG9yU2l6ZTsgaSsrKSB7Ci0gICAgdmVjdG9yMi5wdXNoX2JhY2soaSk7CisgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwga1ZlY3RvclNpemU7IGkrKykgeworICAgIHZlY3RvcjIucHVzaF9iYWNr
KHN0YXRpY19jYXN0PGludD4oaSkpOwogICB9CiAKICAgcmFuZG9tXy5SZXNlZWQoMTIzNCk7CkBA
IC0xMDA2LDcgKzEwNTcsNyBAQCBURVNUX0YoVmVjdG9yU2h1ZmZsZVRlc3QsIFNodWZmbGVzUmVw
ZWF0YWJseSkgewogICBBU1NFUlRfUFJFRDEoVmVjdG9ySXNOb3RDb3JydXB0LCB2ZWN0b3JfKTsK
ICAgQVNTRVJUX1BSRUQxKFZlY3RvcklzTm90Q29ycnVwdCwgdmVjdG9yMik7CiAKLSAgZm9yIChp
bnQgaSA9IDA7IGkgPCBrVmVjdG9yU2l6ZTsgaSsrKSB7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwga1ZlY3RvclNpemU7IGkrKykgewogICAgIEVYUEVDVF9FUSh2ZWN0b3JfW2ldLCB2ZWN0b3Iy
W2ldKSA8PCAiIHdoZXJlIGkgaXMgIiA8PCBpOwogICB9CiB9CkBAIC0xMDM0LDExICsxMDg1LDEx
IEBAIFRFU1QoU3RyaW5nVGVzdCwgRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUpIHsKIC8vIEMrK0J1
aWxkZXIncyBwcmVwcm9jZXNzb3IgaXMgYnVnZ3k7IGl0IGZhaWxzIHRvIGV4cGFuZCBtYWNyb3Mg
dGhhdAogLy8gYXBwZWFyIGluIG1hY3JvIHBhcmFtZXRlcnMgYWZ0ZXIgd2lkZSBjaGFyIGxpdGVy
YWxzLiAgUHJvdmlkZSBhbiBhbGlhcwogLy8gZm9yIE5VTEwgYXMgYSB3b3JrYXJvdW5kLgotc3Rh
dGljIGNvbnN0IHdjaGFyX3QqIGNvbnN0IGtOdWxsID0gTlVMTDsKK3N0YXRpYyBjb25zdCB3Y2hh
cl90KiBjb25zdCBrTnVsbCA9IG51bGxwdHI7CiAKIC8vIFRlc3RzIFN0cmluZzo6Q2FzZUluc2Vu
c2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMKIFRFU1QoU3RyaW5nVGVzdCwgQ2FzZUluc2Vuc2l0aXZl
V2lkZUNTdHJpbmdFcXVhbHMpIHsKLSAgRVhQRUNUX1RSVUUoU3RyaW5nOjpDYXNlSW5zZW5zaXRp
dmVXaWRlQ1N0cmluZ0VxdWFscyhOVUxMLCBOVUxMKSk7CisgIEVYUEVDVF9UUlVFKFN0cmluZzo6
Q2FzZUluc2Vuc2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMobnVsbHB0ciwgbnVsbHB0cikpOwogICBF
WFBFQ1RfRkFMU0UoU3RyaW5nOjpDYXNlSW5zZW5zaXRpdmVXaWRlQ1N0cmluZ0VxdWFscyhrTnVs
bCwgTCIiKSk7CiAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OkNhc2VJbnNlbnNpdGl2ZVdpZGVDU3Ry
aW5nRXF1YWxzKEwiIiwga051bGwpKTsKICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6Q2FzZUluc2Vu
c2l0aXZlV2lkZUNTdHJpbmdFcXVhbHMoa051bGwsIEwiZm9vYmFyIikpOwpAQCAtMTE1OSw3ICsx
MjEwLDcgQEAgY2xhc3MgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJXaXRoVGhyZWFk
c1Rlc3QKICAgOiBwdWJsaWMgU2NvcGVkRmFrZVRlc3RQYXJ0UmVzdWx0UmVwb3J0ZXJUZXN0IHsK
ICBwcm90ZWN0ZWQ6CiAgIHN0YXRpYyB2b2lkIEFkZEZhaWx1cmVJbk90aGVyVGhyZWFkKEZhaWx1
cmVNb2RlIGZhaWx1cmUpIHsKLSAgICBUaHJlYWRXaXRoUGFyYW08RmFpbHVyZU1vZGU+IHRocmVh
ZCgmQWRkRmFpbHVyZSwgZmFpbHVyZSwgTlVMTCk7CisgICAgVGhyZWFkV2l0aFBhcmFtPEZhaWx1
cmVNb2RlPiB0aHJlYWQoJkFkZEZhaWx1cmUsIGZhaWx1cmUsIG51bGxwdHIpOwogICAgIHRocmVh
ZC5Kb2luKCk7CiAgIH0KIH07CkBAIC0xMTk1LDEyICsxMjQ2LDYgQEAgVEVTVF9GKEV4cGVjdEZh
dGFsRmFpbHVyZVRlc3QsIENhdGNoZXNGYXRhbEZhbGl1cmUpIHsKICAgRVhQRUNUX0ZBVEFMX0ZB
SUxVUkUoQWRkRmF0YWxGYWlsdXJlKCksICJFeHBlY3RlZCBmYXRhbCBmYWlsdXJlLiIpOwogfQog
Ci0jaWYgR1RFU1RfSEFTX0dMT0JBTF9TVFJJTkcKLVRFU1RfRihFeHBlY3RGYXRhbEZhaWx1cmVU
ZXN0LCBBY2NlcHRzU3RyaW5nT2JqZWN0KSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFkZEZh
dGFsRmFpbHVyZSgpLCA6OnN0cmluZygiRXhwZWN0ZWQgZmF0YWwgZmFpbHVyZS4iKSk7Ci19Ci0j
ZW5kaWYKLQogVEVTVF9GKEV4cGVjdEZhdGFsRmFpbHVyZVRlc3QsIEFjY2VwdHNTdGRTdHJpbmdP
YmplY3QpIHsKICAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQWRkRmF0YWxGYWlsdXJlKCksCiAgICAg
ICAgICAgICAgICAgICAgICAgIDo6c3RkOjpzdHJpbmcoIkV4cGVjdGVkIGZhdGFsIGZhaWx1cmUu
IikpOwpAQCAtMTI4MywxMyArMTMyOCw2IEBAIFRFU1RfRihFeHBlY3ROb25mYXRhbEZhaWx1cmVU
ZXN0LCBDYXRjaGVzTm9uZmF0YWxGYWlsdXJlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJFeHBlY3RlZCBub24tZmF0YWwgZmFpbHVyZS4iKTsKIH0KIAotI2lmIEdURVNUX0hBU19HTE9C
QUxfU1RSSU5HCi1URVNUX0YoRXhwZWN0Tm9uZmF0YWxGYWlsdXJlVGVzdCwgQWNjZXB0c1N0cmlu
Z09iamVjdCkgewotICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShBZGROb25mYXRhbEZhaWx1cmUo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdHJpbmcoIkV4cGVjdGVkIG5vbi1mYXRh
bCBmYWlsdXJlLiIpKTsKLX0KLSNlbmRpZgotCiBURVNUX0YoRXhwZWN0Tm9uZmF0YWxGYWlsdXJl
VGVzdCwgQWNjZXB0c1N0ZFN0cmluZ09iamVjdCkgewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RShBZGROb25mYXRhbEZhaWx1cmUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpzdGQ6
OnN0cmluZygiRXhwZWN0ZWQgbm9uLWZhdGFsIGZhaWx1cmUuIikpOwpAQCAtMTM2Myw3ICsxNDAx
LDcgQEAgY2xhc3MgVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIC8vIC4uLiBhbmQg
MyBUZXN0UmVzdWx0IG9iamVjdHMuCiAgIFRlc3RSZXN1bHQgKiByMCwgKiByMSwgKiByMjsKIAot
ICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAg
Ly8gcHIxIGlzIGZvciBzdWNjZXNzLgogICAgIHByMSA9IG5ldyBUZXN0UGFydFJlc3VsdChUZXN0
UGFydFJlc3VsdDo6a1N1Y2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb28v
YmFyLmNjIiwKQEAgLTE0MDAsNyArMTQzOCw3IEBAIGNsYXNzIFRlc3RSZXN1bHRUZXN0IDogcHVi
bGljIFRlc3QgewogICAgIHJlc3VsdHMyLT5wdXNoX2JhY2soKnByMik7CiAgIH0KIAotICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKSB7CisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CiAgICAg
ZGVsZXRlIHByMTsKICAgICBkZWxldGUgcHIyOwogCkBAIC0xNTU2LDcgKzE1OTQsNyBAQCBjbGFz
cyBHVGVzdEZsYWdTYXZlclRlc3QgOiBwdWJsaWMgVGVzdCB7CiAgIC8vIFNhdmVzIHRoZSBHb29n
bGUgVGVzdCBmbGFncyBzdWNoIHRoYXQgd2UgY2FuIHJlc3RvcmUgdGhlbSBsYXRlciwgYW5kCiAg
IC8vIHRoZW4gc2V0cyB0aGVtIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLiAgVGhpcyB3aWxsIGJl
IGNhbGxlZAogICAvLyBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UgaXMg
cnVuLgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBTZXRV
cFRlc3RTdWl0ZSgpIHsKICAgICBzYXZlcl8gPSBuZXcgR1Rlc3RGbGFnU2F2ZXI7CiAKICAgICBH
VEVTVF9GTEFHKGFsc29fcnVuX2Rpc2FibGVkX3Rlc3RzKSA9IGZhbHNlOwpAQCAtMTU2NCw5ICsx
NjAyLDExIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBH
VEVTVF9GTEFHKGNhdGNoX2V4Y2VwdGlvbnMpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhkZWF0
aF90ZXN0X3VzZV9mb3JrKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcoY29sb3IpID0gImF1dG8i
OworICAgIEdURVNUX0ZMQUcoZmFpbF9mYXN0KSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcoZmls
dGVyKSA9ICIiOwogICAgIEdURVNUX0ZMQUcobGlzdF90ZXN0cykgPSBmYWxzZTsKICAgICBHVEVT
VF9GTEFHKG91dHB1dCkgPSAiIjsKKyAgICBHVEVTVF9GTEFHKGJyaWVmKSA9IGZhbHNlOwogICAg
IEdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSB0cnVlOwogICAgIEdURVNUX0ZMQUcocmFuZG9tX3Nl
ZWQpID0gMDsKICAgICBHVEVTVF9GTEFHKHJlcGVhdCkgPSAxOwpAQCAtMTU3OCw5ICsxNjE4LDkg
QEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDogcHVibGljIFRlc3QgewogCiAgIC8vIFJlc3Rv
cmVzIHRoZSBHb29nbGUgVGVzdCBmbGFncyB0aGF0IHRoZSB0ZXN0cyBoYXZlIG1vZGlmaWVkLiAg
VGhpcyB3aWxsCiAgIC8vIGJlIGNhbGxlZCBhZnRlciB0aGUgbGFzdCB0ZXN0IGluIHRoaXMgdGVz
dCBjYXNlIGlzIHJ1bi4KLSAgc3RhdGljIHZvaWQgVGVhckRvd25UZXN0Q2FzZSgpIHsKKyAgc3Rh
dGljIHZvaWQgVGVhckRvd25UZXN0U3VpdGUoKSB7CiAgICAgZGVsZXRlIHNhdmVyXzsKLSAgICBz
YXZlcl8gPSBOVUxMOworICAgIHNhdmVyXyA9IG51bGxwdHI7CiAgIH0KIAogICAvLyBWZXJpZmll
cyB0aGF0IHRoZSBHb29nbGUgVGVzdCBmbGFncyBoYXZlIHRoZWlyIGRlZmF1bHQgdmFsdWVzLCBh
bmQgdGhlbgpAQCAtMTU5MSw5ICsxNjMxLDExIEBAIGNsYXNzIEdUZXN0RmxhZ1NhdmVyVGVzdCA6
IHB1YmxpYyBUZXN0IHsKICAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhjYXRjaF9leGNlcHRp
b25zKSk7CiAgICAgRVhQRUNUX1NUUkVRKCJhdXRvIiwgR1RFU1RfRkxBRyhjb2xvcikuY19zdHIo
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKEdURVNUX0ZMQUcoZGVhdGhfdGVzdF91c2VfZm9yaykpOwor
ICAgIEVYUEVDVF9GQUxTRShHVEVTVF9GTEFHKGZhaWxfZmFzdCkpOwogICAgIEVYUEVDVF9TVFJF
USgiIiwgR1RFU1RfRkxBRyhmaWx0ZXIpLmNfc3RyKCkpOwogICAgIEVYUEVDVF9GQUxTRShHVEVT
VF9GTEFHKGxpc3RfdGVzdHMpKTsKICAgICBFWFBFQ1RfU1RSRVEoIiIsIEdURVNUX0ZMQUcob3V0
cHV0KS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfRkFMU0UoR1RFU1RfRkxBRyhicmllZikpOwogICAg
IEVYUEVDVF9UUlVFKEdURVNUX0ZMQUcocHJpbnRfdGltZSkpOwogICAgIEVYUEVDVF9FUSgwLCBH
VEVTVF9GTEFHKHJhbmRvbV9zZWVkKSk7CiAgICAgRVhQRUNUX0VRKDEsIEdURVNUX0ZMQUcocmVw
ZWF0KSk7CkBAIC0xNjA3LDkgKzE2NDksMTEgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0IDog
cHVibGljIFRlc3QgewogICAgIEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSB0cnVlOwog
ICAgIEdURVNUX0ZMQUcoY29sb3IpID0gIm5vIjsKICAgICBHVEVTVF9GTEFHKGRlYXRoX3Rlc3Rf
dXNlX2ZvcmspID0gdHJ1ZTsKKyAgICBHVEVTVF9GTEFHKGZhaWxfZmFzdCkgPSB0cnVlOwogICAg
IEdURVNUX0ZMQUcoZmlsdGVyKSA9ICJhYmMiOwogICAgIEdURVNUX0ZMQUcobGlzdF90ZXN0cykg
PSB0cnVlOwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9ICJ4bWw6Zm9vLnhtbCI7CisgICAgR1RF
U1RfRkxBRyhicmllZikgPSB0cnVlOwogICAgIEdURVNUX0ZMQUcocHJpbnRfdGltZSkgPSBmYWxz
ZTsKICAgICBHVEVTVF9GTEFHKHJhbmRvbV9zZWVkKSA9IDE7CiAgICAgR1RFU1RfRkxBRyhyZXBl
YXQpID0gMTAwOwpAQCAtMTYyNCw3ICsxNjY4LDcgQEAgY2xhc3MgR1Rlc3RGbGFnU2F2ZXJUZXN0
IDogcHVibGljIFRlc3QgewogICBzdGF0aWMgR1Rlc3RGbGFnU2F2ZXIqIHNhdmVyXzsKIH07CiAK
LUdUZXN0RmxhZ1NhdmVyKiBHVGVzdEZsYWdTYXZlclRlc3Q6OnNhdmVyXyA9IE5VTEw7CitHVGVz
dEZsYWdTYXZlciogR1Rlc3RGbGFnU2F2ZXJUZXN0OjpzYXZlcl8gPSBudWxscHRyOwogCiAvLyBH
b29nbGUgVGVzdCBkb2Vzbid0IGd1YXJhbnRlZSB0aGUgb3JkZXIgb2YgdGVzdHMuICBUaGUgZm9s
bG93aW5nIHR3bwogLy8gdGVzdHMgYXJlIGRlc2lnbmVkIHRvIHdvcmsgcmVnYXJkbGVzcyBvZiB0
aGVpciBvcmRlci4KQEAgLTE3MzcsNyArMTc4MSw3IEBAIFRFU1QoSW50MzJGcm9tR1Rlc3RFbnZU
ZXN0LCBQYXJzZXNBbmRSZXR1cm5zVmFsaWRWYWx1ZSkgewogLy8gVGVzdHMgdGhhdCBQYXJzZUlu
dDMyRmxhZygpIHJldHVybnMgZmFsc2UgYW5kIGRvZXNuJ3QgY2hhbmdlIHRoZQogLy8gb3V0cHV0
IHZhbHVlIHdoZW4gdGhlIGZsYWcgaGFzIHdyb25nIGZvcm1hdAogVEVTVChQYXJzZUludDMyRmxh
Z1Rlc3QsIFJldHVybnNGYWxzZUZvckludmFsaWRGbGFnKSB7Ci0gIEludDMyIHZhbHVlID0gMTIz
OworICBpbnQzMl90IHZhbHVlID0gMTIzOwogICBFWFBFQ1RfRkFMU0UoUGFyc2VJbnQzMkZsYWco
Ii0tYT0xMDAiLCAiYiIsICZ2YWx1ZSkpOwogICBFWFBFQ1RfRVEoMTIzLCB2YWx1ZSk7CiAKQEAg
LTE3NTAsNyArMTc5NCw3IEBAIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBSZXR1cm5zRmFsc2VG
b3JJbnZhbGlkRmxhZykgewogVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFJldHVybnNEZWZhdWx0
V2hlblZhbHVlT3ZlcmZsb3dzKSB7CiAgIHByaW50ZigiKGV4cGVjdGluZyAyIHdhcm5pbmdzKVxu
Iik7CiAKLSAgSW50MzIgdmFsdWUgPSAxMjM7CisgIGludDMyX3QgdmFsdWUgPSAxMjM7CiAgIEVY
UEVDVF9GQUxTRShQYXJzZUludDMyRmxhZygiLS1hYmM9MTIzNDU2Nzg5ODc2NTQzMjEiLCAiYWJj
IiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9FUSgxMjMsIHZhbHVlKTsKIApAQCAtMTc2NCw3ICsxODA4
LDcgQEAgVEVTVChQYXJzZUludDMyRmxhZ1Rlc3QsIFJldHVybnNEZWZhdWx0V2hlblZhbHVlT3Zl
cmZsb3dzKSB7CiBURVNUKFBhcnNlSW50MzJGbGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFs
dWVJc0ludmFsaWQpIHsKICAgcHJpbnRmKCIoZXhwZWN0aW5nIDIgd2FybmluZ3MpXG4iKTsKIAot
ICBJbnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJfdCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNUX0ZB
TFNFKFBhcnNlSW50MzJGbGFnKCItLWFiYz1BMSIsICJhYmMiLCAmdmFsdWUpKTsKICAgRVhQRUNU
X0VRKDEyMywgdmFsdWUpOwogCkBAIC0xNzc2LDcgKzE4MjAsNyBAQCBURVNUKFBhcnNlSW50MzJG
bGFnVGVzdCwgUmV0dXJuc0RlZmF1bHRXaGVuVmFsdWVJc0ludmFsaWQpIHsKIC8vIHJldHVybnMg
dHJ1ZSB3aGVuIHRoZSBmbGFnIHJlcHJlc2VudHMgYSB2YWxpZCBkZWNpbWFsIGludGVnZXIgaW4K
IC8vIHRoZSByYW5nZSBvZiBhbiBJbnQzMi4KIFRFU1QoUGFyc2VJbnQzMkZsYWdUZXN0LCBQYXJz
ZXNBbmRSZXR1cm5zVmFsaWRWYWx1ZSkgewotICBJbnQzMiB2YWx1ZSA9IDEyMzsKKyAgaW50MzJf
dCB2YWx1ZSA9IDEyMzsKICAgRVhQRUNUX1RSVUUoUGFyc2VJbnQzMkZsYWcoIi0tIiBHVEVTVF9G
TEFHX1BSRUZJWF8gImFiYz00NTYiLCAiYWJjIiwgJnZhbHVlKSk7CiAgIEVYUEVDVF9FUSg0NTYs
IHZhbHVlKTsKIApAQCAtMTc5OSw3ICsxODQzLDcgQEAgVEVTVChJbnQzMkZyb21FbnZPckRpZVRl
c3QsIFBhcnNlc0FuZFJldHVybnNWYWxpZFZhbHVlKSB7CiAjZW5kaWYgIC8vICFHVEVTVF9PU19X
SU5ET1dTX01PQklMRQogCiAvLyBUZXN0cyB0aGF0IEludDMyRnJvbUVudk9yRGllKCkgYWJvcnRz
IHdpdGggYW4gZXJyb3IgbWVzc2FnZQotLy8gaWYgdGhlIHZhcmlhYmxlIGlzIG5vdCBhbiBJbnQz
Mi4KKy8vIGlmIHRoZSB2YXJpYWJsZSBpcyBub3QgYW4gaW50MzJfdC4KIFRFU1QoSW50MzJGcm9t
RW52T3JEaWVEZWF0aFRlc3QsIEFib3J0c09uRmFpbHVyZSkgewogICBTZXRFbnYoR1RFU1RfRkxB
R19QUkVGSVhfVVBQRVJfICJWQVIiLCAieHh4Iik7CiAgIEVYUEVDVF9ERUFUSF9JRl9TVVBQT1JU
RUQoCkBAIC0xODA4LDcgKzE4NTIsNyBAQCBURVNUKEludDMyRnJvbUVudk9yRGllRGVhdGhUZXN0
LCBBYm9ydHNPbkZhaWx1cmUpIHsKIH0KIAogLy8gVGVzdHMgdGhhdCBJbnQzMkZyb21FbnZPckRp
ZSgpIGFib3J0cyB3aXRoIGFuIGVycm9yIG1lc3NhZ2UKLS8vIGlmIHRoZSB2YXJpYWJsZSBjYW5u
b3QgYmUgcmVwcmVzZW50ZWQgYnkgYW4gSW50MzIuCisvLyBpZiB0aGUgdmFyaWFibGUgY2Fubm90
IGJlIHJlcHJlc2VudGVkIGJ5IGFuIGludDMyX3QuCiBURVNUKEludDMyRnJvbUVudk9yRGllRGVh
dGhUZXN0LCBBYm9ydHNPbkludDMyT3ZlcmZsb3cpIHsKICAgU2V0RW52KEdURVNUX0ZMQUdfUFJF
RklYX1VQUEVSXyAiVkFSIiwgIjEyMzQ1Njc4OTEyMzQ1Njc4OTEyMzQiKTsKICAgRVhQRUNUX0RF
QVRIX0lGX1NVUFBPUlRFRCgKQEAgLTE4MjgsMTIgKzE4NzIsMTIgQEAgVEVTVChTaG91bGRSdW5U
ZXN0T25TaGFyZFRlc3QsIElzUGFydGl0aW9uV2hlblRoZXJlSXNPbmVTaGFyZCkgewogCiBjbGFz
cyBTaG91bGRTaGFyZFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiAgcHJvdGVjdGVkOgot
ICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CiAgICAg
aW5kZXhfdmFyXyA9IEdURVNUX0ZMQUdfUFJFRklYX1VQUEVSXyAiSU5ERVgiOwogICAgIHRvdGFs
X3Zhcl8gPSBHVEVTVF9GTEFHX1BSRUZJWF9VUFBFUl8gIlRPVEFMIjsKICAgfQogCi0gIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpIHsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICBT
ZXRFbnYoaW5kZXhfdmFyXywgIiIpOwogICAgIFNldEVudih0b3RhbF92YXJfLCAiIik7CiAgIH0K
QEAgLTE5NDIsMTQgKzE5ODYsMTQgQEAgVEVTVChTaG91bGRSdW5UZXN0T25TaGFyZFRlc3QsIElz
UGFydGl0aW9uV2hlblRoZXJlQXJlRml2ZVNoYXJkcykgewogLy8gVGVzdCBjbGFzcywgdGhlcmUg
YXJlIG5vIHNlcGFyYXRlIHRlc3RzIGZvciB0aGUgZm9sbG93aW5nIGNsYXNzZXMKIC8vIChleGNl
cHQgZm9yIHNvbWUgdHJpdmlhbCBjYXNlcyk6CiAvLwotLy8gICBUZXN0Q2FzZSwgVW5pdFRlc3Qs
IFVuaXRUZXN0UmVzdWx0UHJpbnRlci4KKy8vICAgVGVzdFN1aXRlLCBVbml0VGVzdCwgVW5pdFRl
c3RSZXN1bHRQcmludGVyLgogLy8KIC8vIFNpbWlsYXJseSwgdGhlcmUgYXJlIG5vIHNlcGFyYXRl
IHRlc3RzIGZvciB0aGUgZm9sbG93aW5nIG1hY3JvczoKIC8vCiAvLyAgIFRFU1QsIFRFU1RfRiwg
UlVOX0FMTF9URVNUUwogCiBURVNUKFVuaXRUZXN0VGVzdCwgQ2FuR2V0T3JpZ2luYWxXb3JraW5n
RGlyKSB7Ci0gIEFTU0VSVF9UUlVFKFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93
b3JraW5nX2RpcigpICE9IE5VTEwpOworICBBU1NFUlRfVFJVRShVbml0VGVzdDo6R2V0SW5zdGFu
Y2UoKS0+b3JpZ2luYWxfd29ya2luZ19kaXIoKSAhPSBudWxscHRyKTsKICAgRVhQRUNUX1NUUk5F
KFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5vcmlnaW5hbF93b3JraW5nX2RpcigpLCAiIik7CiB9
CiAKQEAgLTE5NzEsMjAgKzIwMTUsMjEgQEAgdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgKIHZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJl
UmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdCgKICAgICBjb25z
dCBjaGFyKiBrZXkpIHsKICAgY29uc3QgVGVzdEluZm8qIHRlc3RfaW5mbyA9IFVuaXRUZXN0OjpH
ZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRfVFJVRSh0ZXN0X2lu
Zm8gIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKHRlc3RfaW5mbyAhPSBudWxscHRyKTsKICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXkoKnRlc3Rf
aW5mby0+cmVzdWx0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtleSk7CiB9CiAKLXZvaWQgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVj
b3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdENhc2UoCit2b2lkIEV4
cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3Vy
cmVudFRlc3RTdWl0ZSgKICAgICBjb25zdCBjaGFyKiBrZXkpIHsKLSAgY29uc3QgVGVzdENhc2Uq
IHRlc3RfY2FzZSA9IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfY2FzZSgp
OwotICBBU1NFUlRfVFJVRSh0ZXN0X2Nhc2UgIT0gTlVMTCk7CisgIGNvbnN0IHRlc3Rpbmc6OlRl
c3RTdWl0ZSogdGVzdF9zdWl0ZSA9CisgICAgICBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3Vy
cmVudF90ZXN0X3N1aXRlKCk7CisgIEFTU0VSVF9UUlVFKHRlc3Rfc3VpdGUgIT0gbnVsbHB0cik7
CiAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5
KAotICAgICAgdGVzdF9jYXNlLT5hZF9ob2NfdGVzdF9yZXN1bHQoKSwga2V5KTsKKyAgICAgIHRl
c3Rfc3VpdGUtPmFkX2hvY190ZXN0X3Jlc3VsdCgpLCBrZXkpOwogfQogCi12b2lkIEV4cGVjdE5v
bkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVz
dENhc2UoCit2b2lkIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJl
c2VydmVkS2V5T3V0c2lkZU9mVGVzdFN1aXRlKAogICAgIGNvbnN0IGNoYXIqIGtleSkgewogICBF
eHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleSgKICAg
ICAgIFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5hZF9ob2NfdGVzdF9yZXN1bHQoKSwga2V5KTsK
QEAgLTE5OTYsMjkgKzIwNDEsMzIgQEAgdm9pZCBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRp
bmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RDYXNlKAogY2xhc3MgVW5pdFRl
c3RSZWNvcmRQcm9wZXJ0eVRlc3QgOgogICAgIHB1YmxpYyB0ZXN0aW5nOjppbnRlcm5hbDo6VW5p
dFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3RIZWxwZXIgewogIHB1YmxpYzoKLSAgc3RhdGljIHZvaWQg
U2V0VXBUZXN0Q2FzZSgpIHsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9w
ZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKKyAgc3RhdGljIHZvaWQgU2V0
VXBUZXN0U3VpdGUoKSB7CisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVy
dHlXaXRoUmVzZXJ2ZWRLZXlGb3JDdXJyZW50VGVzdFN1aXRlKAogICAgICAgICAiZGlzYWJsZWQi
KTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZl
ZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRp
bmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUoCiAgICAgICAgICJl
cnJvcnMiKTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhS
ZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVS
ZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0U3VpdGUoCiAgICAg
ICAgICJmYWlsdXJlcyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVjdE5vbkZhdGFs
RmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RTdWl0
ZSgKICAgICAgICAgIm5hbWUiKTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNvcmRpbmdQ
cm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0Q2FzZSgKKyAgICBFeHBlY3ROb25G
YXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0
U3VpdGUoCiAgICAgICAgICJ0ZXN0cyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29y
ZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVudFRlc3RDYXNlKAorICAgIEV4cGVj
dE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9yQ3VycmVu
dFRlc3RTdWl0ZSgKICAgICAgICAgInRpbWUiKTsKIAogICAgIFRlc3Q6OlJlY29yZFByb3BlcnR5
KCJ0ZXN0X2Nhc2Vfa2V5XzEiLCAiMSIpOwotICAgIGNvbnN0IFRlc3RDYXNlKiB0ZXN0X2Nhc2Ug
PSBVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+Y3VycmVudF90ZXN0X2Nhc2UoKTsKLSAgICBBU1NF
UlRfVFJVRSh0ZXN0X2Nhc2UgIT0gTlVMTCk7CiAKLSAgICBBU1NFUlRfRVEoMSwgdGVzdF9jYXNl
LT5hZF9ob2NfdGVzdF9yZXN1bHQoKS50ZXN0X3Byb3BlcnR5X2NvdW50KCkpOworICAgIGNvbnN0
IHRlc3Rpbmc6OlRlc3RTdWl0ZSogdGVzdF9zdWl0ZSA9CisgICAgICAgIFVuaXRUZXN0OjpHZXRJ
bnN0YW5jZSgpLT5jdXJyZW50X3Rlc3Rfc3VpdGUoKTsKKworICAgIEFTU0VSVF9UUlVFKHRlc3Rf
c3VpdGUgIT0gbnVsbHB0cik7CisKKyAgICBBU1NFUlRfRVEoMSwgdGVzdF9zdWl0ZS0+YWRfaG9j
X3Rlc3RfcmVzdWx0KCkudGVzdF9wcm9wZXJ0eV9jb3VudCgpKTsKICAgICBFWFBFQ1RfU1RSRVEo
InRlc3RfY2FzZV9rZXlfMSIsCi0gICAgICAgICAgICAgICAgIHRlc3RfY2FzZS0+YWRfaG9jX3Rl
c3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLmtleSgpKTsKKyAgICAgICAgICAgICAgICAg
dGVzdF9zdWl0ZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5KDApLmtleSgp
KTsKICAgICBFWFBFQ1RfU1RSRVEoIjEiLAotICAgICAgICAgICAgICAgICB0ZXN0X2Nhc2UtPmFk
X2hvY190ZXN0X3Jlc3VsdCgpLkdldFRlc3RQcm9wZXJ0eSgwKS52YWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICAgdGVzdF9zdWl0ZS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCkuR2V0VGVzdFByb3BlcnR5
KDApLnZhbHVlKCkpOwogICB9CiB9OwogCkBAIC0yMDcxLDcgKzIxMTksNyBAQCBURVNUX0YoVW5p
dFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsIE92ZXJyaWRlc1ZhbHVlc0ZvckR1cGxpY2F0ZUtleXMp
IHsKIH0KIAogVEVTVF9GKFVuaXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0LAotICAgICAgIEFkZEZh
aWx1cmVJbnNpZGVUZXN0c1doZW5Vc2luZ1Rlc3RDYXNlUmVzZXJ2ZWRLZXlzKSB7CisgICAgICAg
QWRkRmFpbHVyZUluc2lkZVRlc3RzV2hlblVzaW5nVGVzdFN1aXRlUmVzZXJ2ZWRLZXlzKSB7CiAg
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5Rm9y
Q3VycmVudFRlc3QoCiAgICAgICAibmFtZSIpOwogICBFeHBlY3ROb25GYXRhbEZhaWx1cmVSZWNv
cmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleUZvckN1cnJlbnRUZXN0KApAQCAtMjA5NiwyOCAr
MjE0NCwyOCBAQCBURVNUX0YoVW5pdFRlc3RSZWNvcmRQcm9wZXJ0eVRlc3QsCiAKIGNsYXNzIFVu
aXRUZXN0UmVjb3JkUHJvcGVydHlUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgRW52aXJvbm1lbnQg
ewogIHB1YmxpYzoKLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIEV4cGVjdE5vbkZh
dGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENh
c2UoCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgRXhwZWN0Tm9uRmF0YWxGYWls
dXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAg
ICAgICAgICJ0ZXN0cyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3Bl
cnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxG
YWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUo
CiAgICAgICAgICJmYWlsdXJlcyIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGlu
Z1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhwZWN0Tm9u
RmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0
U3VpdGUoCiAgICAgICAgICJkaXNhYmxlZCIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJl
Y29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisgICAgRXhw
ZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlPdXRzaWRl
T2ZUZXN0U3VpdGUoCiAgICAgICAgICJlcnJvcnMiKTsKLSAgICBFeHBlY3ROb25GYXRhbEZhaWx1
cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RDYXNlKAorICAg
IEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0
c2lkZU9mVGVzdFN1aXRlKAogICAgICAgICAibmFtZSIpOwotICAgIEV4cGVjdE5vbkZhdGFsRmFp
bHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVzdENhc2UoCisg
ICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVzZXJ2ZWRLZXlP
dXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJ0aW1lc3RhbXAiKTsKLSAgICBFeHBlY3ROb25G
YXRhbEZhaWx1cmVSZWNvcmRpbmdQcm9wZXJ0eVdpdGhSZXNlcnZlZEtleU91dHNpZGVPZlRlc3RD
YXNlKAorICAgIEV4cGVjdE5vbkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2Vy
dmVkS2V5T3V0c2lkZU9mVGVzdFN1aXRlKAogICAgICAgICAidGltZSIpOwotICAgIEV4cGVjdE5v
bkZhdGFsRmFpbHVyZVJlY29yZGluZ1Byb3BlcnR5V2l0aFJlc2VydmVkS2V5T3V0c2lkZU9mVGVz
dENhc2UoCisgICAgRXhwZWN0Tm9uRmF0YWxGYWlsdXJlUmVjb3JkaW5nUHJvcGVydHlXaXRoUmVz
ZXJ2ZWRLZXlPdXRzaWRlT2ZUZXN0U3VpdGUoCiAgICAgICAgICJyYW5kb21fc2VlZCIpOwogICB9
CiB9OwogCiAvLyBUaGlzIHdpbGwgdGVzdCBwcm9wZXJ0eSByZWNvcmRpbmcgb3V0c2lkZSBvZiBh
bnkgdGVzdCBvciB0ZXN0IGNhc2UuCi1zdGF0aWMgRW52aXJvbm1lbnQqIHJlY29yZF9wcm9wZXJ0
eV9lbnYgPQorc3RhdGljIEVudmlyb25tZW50KiByZWNvcmRfcHJvcGVydHlfZW52IEdURVNUX0FU
VFJJQlVURV9VTlVTRURfID0KICAgICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFVuaXRU
ZXN0UmVjb3JkUHJvcGVydHlUZXN0RW52aXJvbm1lbnQpOwogCiAvLyBUaGlzIGdyb3VwIG9mIHRl
c3RzIGlzIGZvciBwcmVkaWNhdGUgYXNzZXJ0aW9ucyAoQVNTRVJUX1BSRUQqLCBldGMpCkBAIC0y
MTI4LDEyICsyMTc2LDEyIEBAIHN0YXRpYyBFbnZpcm9ubWVudCogcmVjb3JkX3Byb3BlcnR5X2Vu
diA9CiAKIC8vIEZpcnN0LCBzb21lIHByZWRpY2F0ZXMgYW5kIHByZWRpY2F0ZS1mb3JtYXR0ZXJz
IG5lZWRlZCBieSB0aGUgdGVzdHMuCiAKLS8vIFJldHVybnMgdHJ1ZSBpZmYgdGhlIGFyZ3VtZW50
IGlzIGFuIGV2ZW4gbnVtYmVyLgorLy8gUmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBh
cmd1bWVudCBpcyBhbiBldmVuIG51bWJlci4KIGJvb2wgSXNFdmVuKGludCBuKSB7CiAgIHJldHVy
biAobiAlIDIpID09IDA7CiB9CiAKLS8vIEEgZnVuY3RvciB0aGF0IHJldHVybnMgdHJ1ZSBpZmYg
dGhlIGFyZ3VtZW50IGlzIGFuIGV2ZW4gbnVtYmVyLgorLy8gQSBmdW5jdG9yIHRoYXQgcmV0dXJu
cyB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBhcmd1bWVudCBpcyBhbiBldmVuIG51bWJlci4KIHN0
cnVjdCBJc0V2ZW5GdW5jdG9yIHsKICAgYm9vbCBvcGVyYXRvcigpKGludCBuKSB7IHJldHVybiBJ
c0V2ZW4obik7IH0KIH07CkBAIC0yMTc3LDEzICsyMjI1LDEzIEBAIHN0cnVjdCBBc3NlcnRJc0V2
ZW5GdW5jdG9yIHsKICAgfQogfTsKIAotLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgc3VtIG9mIHRo
ZSBhcmd1bWVudHMgaXMgYW4gZXZlbiBudW1iZXIuCisvLyBSZXR1cm5zIHRydWUgaWYgYW5kIG9u
bHkgaWYgdGhlIHN1bSBvZiB0aGUgYXJndW1lbnRzIGlzIGFuIGV2ZW4gbnVtYmVyLgogYm9vbCBT
dW1Jc0V2ZW4yKGludCBuMSwgaW50IG4yKSB7CiAgIHJldHVybiBJc0V2ZW4objEgKyBuMik7CiB9
CiAKLS8vIEEgZnVuY3RvciB0aGF0IHJldHVybnMgdHJ1ZSBpZmYgdGhlIHN1bSBvZiB0aGUgYXJn
dW1lbnRzIGlzIGFuIGV2ZW4KLS8vIG51bWJlci4KKy8vIEEgZnVuY3RvciB0aGF0IHJldHVybnMg
dHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgc3VtIG9mIHRoZSBhcmd1bWVudHMgaXMgYW4KKy8vIGV2
ZW4gbnVtYmVyLgogc3RydWN0IFN1bUlzRXZlbjNGdW5jdG9yIHsKICAgYm9vbCBvcGVyYXRvcigp
KGludCBuMSwgaW50IG4yLCBpbnQgbjMpIHsKICAgICByZXR1cm4gSXNFdmVuKG4xICsgbjIgKyBu
Myk7CkBAIC0yMzYyLDYgKzI0MTAsMTYgQEAgVEVTVChQcmVkVGVzdCwgU2luZ2xlRXZhbHVhdGlv
bk9uRmFpbHVyZSkgewogICBFWFBFQ1RfRVEoMSwgbjQpIDw8ICJBcmd1bWVudCA0IGlzIG5vdCBl
dmFsdWF0ZWQgZXhhY3RseSBvbmNlLiI7CiB9CiAKKy8vIFRlc3QgcHJlZGljYXRlIGFzc2VydGlv
bnMgZm9yIHNldHMKK1RFU1QoUHJlZFRlc3QsIEV4cGVjdFByZWRFdmFsRmFpbHVyZSkgeworICBz
dGQ6OnNldDxpbnQ+IHNldF9hID0gezIsIDEsIDMsIDQsIDV9OworICBzdGQ6OnNldDxpbnQ+IHNl
dF9iID0gezAsIDQsIDh9OworICBjb25zdCBhdXRvIGNvbXBhcmVfc2V0cyA9IFtdIChzdGQ6OnNl
dDxpbnQ+LCBzdGQ6OnNldDxpbnQ+KSB7IHJldHVybiBmYWxzZTsgfTsKKyAgRVhQRUNUX05PTkZB
VEFMX0ZBSUxVUkUoCisgICAgICBFWFBFQ1RfUFJFRDIoY29tcGFyZV9zZXRzLCBzZXRfYSwgc2V0
X2IpLAorICAgICAgImNvbXBhcmVfc2V0cyhzZXRfYSwgc2V0X2IpIGV2YWx1YXRlcyB0byBmYWxz
ZSwgd2hlcmVcbnNldF9hIGV2YWx1YXRlcyAiCisgICAgICAidG8geyAxLCAyLCAzLCA0LCA1IH1c
bnNldF9iIGV2YWx1YXRlcyB0byB7IDAsIDQsIDggfSIpOworfQogCiAvLyBTb21lIGhlbHBlciBm
dW5jdGlvbnMgZm9yIHRlc3RpbmcgdXNpbmcgb3ZlcmxvYWRlZC90ZW1wbGF0ZQogLy8gZnVuY3Rp
b25zIHdpdGggQVNTRVJUX1BSRURuIGFuZCBFWFBFQ1RfUFJFRG4uCkBAIC0yNDU2LDI0ICsyNTE0
LDIyIEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUkVRKSB7CiAKIC8vIFRl
c3RzIEFTU0VSVF9TVFJFUSB3aXRoIE5VTEwgYXJndW1lbnRzLgogVEVTVChTdHJpbmdBc3NlcnRp
b25UZXN0LCBBU1NFUlRfU1RSRVFfTnVsbCkgewotICBBU1NFUlRfU1RSRVEoc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhciAqPihOVUxMKSwgTlVMTCk7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VS
VF9TVFJFUShOVUxMLCAibm9uLW51bGwiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIm5vbi1u
dWxsIik7CisgIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciks
IG51bGxwdHIpOworICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RSRVEobnVsbHB0ciwg
Im5vbi1udWxsIiksICJub24tbnVsbCIpOwogfQogCiAvLyBUZXN0cyBBU1NFUlRfU1RSRVEgd2l0
aCBOVUxMIGFyZ3VtZW50cy4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJUX1NUUkVR
X051bGwyKSB7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUSgibm9uLW51bGwi
LCBOVUxMKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIm5vbi1udWxsIik7CisgIEVYUEVDVF9G
QVRBTF9GQUlMVVJFKEFTU0VSVF9TVFJFUSgibm9uLW51bGwiLCBudWxscHRyKSwgIm5vbi1udWxs
Iik7CiB9CiAKIC8vIFRlc3RzIEFTU0VSVF9TVFJORS4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVz
dCwgQVNTRVJUX1NUUk5FKSB7CiAgIEFTU0VSVF9TVFJORSgiaGkiLCAiSGkiKTsKLSAgQVNTRVJU
X1NUUk5FKCJIaSIsIE5VTEwpOwotICBBU1NFUlRfU1RSTkUoTlVMTCwgIkhpIik7Ci0gIEFTU0VS
VF9TVFJORSgiIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJORShOVUxMLCAiIik7CisgIEFTU0VSVF9T
VFJORSgiSGkiLCBudWxscHRyKTsKKyAgQVNTRVJUX1NUUk5FKG51bGxwdHIsICJIaSIpOworICBB
U1NFUlRfU1RSTkUoIiIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSTkUobnVsbHB0ciwgIiIpOwog
ICBBU1NFUlRfU1RSTkUoIiIsICJIaSIpOwogICBBU1NFUlRfU1RSTkUoIkhpIiwgIiIpOwogICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfU1RSTkUoIkhpIiwgIkhpIiksCkBAIC0yNDgzLDcg
KzI1MzksNyBAQCBURVNUKFN0cmluZ0Fzc2VydGlvblRlc3QsIEFTU0VSVF9TVFJORSkgewogLy8g
VGVzdHMgQVNTRVJUX1NUUkNBU0VFUS4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgQVNTRVJU
X1NUUkNBU0VFUSkgewogICBBU1NFUlRfU1RSQ0FTRUVRKCJoaSIsICJIaSIpOwotICBBU1NFUlRf
U1RSQ0FTRUVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIgKj4oTlVMTCksIE5VTEwpOworICBBU1NF
UlRfU1RSQ0FTRUVRKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihudWxscHRyKSwgbnVsbHB0cik7
CiAKICAgQVNTRVJUX1NUUkNBU0VFUSgiIiwgIiIpOwogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShB
U1NFUlRfU1RSQ0FTRUVRKCJIaSIsICJoaTIiKSwKQEAgLTI0OTMsMTAgKzI1NDksMTAgQEAgVEVT
VChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSQ0FTRUVRKSB7CiAvLyBUZXN0cyBBU1NF
UlRfU1RSQ0FTRU5FLgogVEVTVChTdHJpbmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSQ0FTRU5F
KSB7CiAgIEFTU0VSVF9TVFJDQVNFTkUoImhpMSIsICJIaTIiKTsKLSAgQVNTRVJUX1NUUkNBU0VO
RSgiSGkiLCBOVUxMKTsKLSAgQVNTRVJUX1NUUkNBU0VORShOVUxMLCAiSGkiKTsKLSAgQVNTRVJU
X1NUUkNBU0VORSgiIiwgTlVMTCk7Ci0gIEFTU0VSVF9TVFJDQVNFTkUoTlVMTCwgIiIpOworICBB
U1NFUlRfU1RSQ0FTRU5FKCJIaSIsIG51bGxwdHIpOworICBBU1NFUlRfU1RSQ0FTRU5FKG51bGxw
dHIsICJIaSIpOworICBBU1NFUlRfU1RSQ0FTRU5FKCIiLCBudWxscHRyKTsKKyAgQVNTRVJUX1NU
UkNBU0VORShudWxscHRyLCAiIik7CiAgIEFTU0VSVF9TVFJDQVNFTkUoIiIsICJIaSIpOwogICBB
U1NFUlRfU1RSQ0FTRU5FKCJIaSIsICIiKTsKICAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJU
X1NUUkNBU0VORSgiSGkiLCAiaGkiKSwKQEAgLTI1MDYsMTQgKzI1NjIsMTMgQEAgVEVTVChTdHJp
bmdBc3NlcnRpb25UZXN0LCBBU1NFUlRfU1RSQ0FTRU5FKSB7CiAvLyBUZXN0cyAqX1NUUkVRIG9u
IHdpZGUgc3RyaW5ncy4KIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgU1RSRVFfV2lkZSkgewog
ICAvLyBOVUxMIHN0cmluZ3MuCi0gIEFTU0VSVF9TVFJFUShzdGF0aWNfY2FzdDxjb25zdCB3Y2hh
cl90ICo+KE5VTEwpLCBOVUxMKTsKKyAgQVNTRVJUX1NUUkVRKHN0YXRpY19jYXN0PGNvbnN0IHdj
aGFyX3QqPihudWxscHRyKSwgbnVsbHB0cik7CiAKICAgLy8gRW1wdHkgc3RyaW5ncy4KICAgQVNT
RVJUX1NUUkVRKEwiIiwgTCIiKTsKIAogICAvLyBOb24tbnVsbCB2cyBOVUxMLgotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfU1RSRVEoTCJub24tbnVsbCIsIE5VTEwpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAibm9uLW51bGwiKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxV
UkUoRVhQRUNUX1NUUkVRKEwibm9uLW51bGwiLCBudWxscHRyKSwgIm5vbi1udWxsIik7CiAKICAg
Ly8gRXF1YWwgc3RyaW5ncy4KICAgRVhQRUNUX1NUUkVRKEwiSGkiLCBMIkhpIik7CkBAIC0yNTM1
LDE2ICsyNTkwLDE4IEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVzdCwgU1RSRVFfV2lkZSkgewog
Ly8gVGVzdHMgKl9TVFJORSBvbiB3aWRlIHN0cmluZ3MuCiBURVNUKFN0cmluZ0Fzc2VydGlvblRl
c3QsIFNUUk5FX1dpZGUpIHsKICAgLy8gTlVMTCBzdHJpbmdzLgotICBFWFBFQ1RfTk9ORkFUQUxf
RkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfU1RSTkUoc3RhdGljX2Nhc3Q8Y29uc3Qg
d2NoYXJfdCAqPihOVUxMKSwgTlVMTCk7Ci0gIH0sICIiKTsKKyAgRVhQRUNUX05PTkZBVEFMX0ZB
SUxVUkUoCisgICAgICB7ICAvLyBOT0xJTlQKKyAgICAgICAgRVhQRUNUX1NUUk5FKHN0YXRpY19j
YXN0PGNvbnN0IHdjaGFyX3QqPihudWxscHRyKSwgbnVsbHB0cik7CisgICAgICB9LAorICAgICAg
IiIpOwogCiAgIC8vIEVtcHR5IHN0cmluZ3MuCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVY
UEVDVF9TVFJORShMIiIsIEwiIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXCJcIiIp
OwogCiAgIC8vIE5vbi1udWxsIHZzIE5VTEwuCi0gIEFTU0VSVF9TVFJORShMIm5vbi1udWxsIiwg
TlVMTCk7CisgIEFTU0VSVF9TVFJORShMIm5vbi1udWxsIiwgbnVsbHB0cik7CiAKICAgLy8gRXF1
YWwgc3RyaW5ncy4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1NUUk5FKEwiSGki
LCBMIkhpIiksCkBAIC0yNTY2LDExICsyNjIzLDExIEBAIFRFU1QoU3RyaW5nQXNzZXJ0aW9uVGVz
dCwgU1RSTkVfV2lkZSkgewogLy8gVGVzdHMgdGhhdCBJc1N1YnN0cmluZygpIHJldHVybnMgdGhl
IGNvcnJlY3QgcmVzdWx0IHdoZW4gdGhlIGlucHV0CiAvLyBhcmd1bWVudCB0eXBlIGlzIGNvbnN0
IGNoYXIqLgogVEVTVChJc1N1YnN0cmluZ1Rlc3QsIFJldHVybnNDb3JyZWN0UmVzdWx0Rm9yQ1N0
cmluZykgewotICBFWFBFQ1RfRkFMU0UoSXNTdWJzdHJpbmcoIiIsICIiLCBOVUxMLCAiYSIpKTsK
LSAgRVhQRUNUX0ZBTFNFKElzU3Vic3RyaW5nKCIiLCAiIiwgImIiLCBOVUxMKSk7CisgIEVYUEVD
VF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIG51bGxwdHIsICJhIikpOworICBFWFBFQ1RfRkFM
U0UoSXNTdWJzdHJpbmcoIiIsICIiLCAiYiIsIG51bGxwdHIpKTsKICAgRVhQRUNUX0ZBTFNFKElz
U3Vic3RyaW5nKCIiLCAiIiwgIm5lZWRsZSIsICJoYXlzdGFjayIpKTsKIAotICBFWFBFQ1RfVFJV
RShJc1N1YnN0cmluZygiIiwgIiIsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihOVUxMKSwgTlVM
TCkpOworICBFWFBFQ1RfVFJVRShJc1N1YnN0cmluZygiIiwgIiIsIHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihudWxscHRyKSwgbnVsbHB0cikpOwogICBFWFBFQ1RfVFJVRShJc1N1YnN0cmluZygi
IiwgIiIsICJuZWVkbGUiLCAidHdvIG5lZWRsZXMiKSk7CiB9CiAKQEAgLTI1ODEsNyArMjYzOCw4
IEBAIFRFU1QoSXNTdWJzdHJpbmdUZXN0LCBSZXR1cm5zQ29ycmVjdFJlc3VsdEZvcldpZGVDU3Ry
aW5nKSB7CiAgIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIEwiYiIsIGtOdWxsKSk7
CiAgIEVYUEVDVF9GQUxTRShJc1N1YnN0cmluZygiIiwgIiIsIEwibmVlZGxlIiwgTCJoYXlzdGFj
ayIpKTsKIAotICBFWFBFQ1RfVFJVRShJc1N1YnN0cmluZygiIiwgIiIsIHN0YXRpY19jYXN0PGNv
bnN0IHdjaGFyX3QqPihOVUxMKSwgTlVMTCkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIElzU3Vi
c3RyaW5nKCIiLCAiIiwgc3RhdGljX2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KG51bGxwdHIpLCBudWxs
cHRyKSk7CiAgIEVYUEVDVF9UUlVFKElzU3Vic3RyaW5nKCIiLCAiIiwgTCJuZWVkbGUiLCBMInR3
byBuZWVkbGVzIikpOwogfQogCkBAIC0yNzA5LDggKzI3NjcsOCBAQCBjbGFzcyBGbG9hdGluZ1Bv
aW50VGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgdHlwZWRlZiB0eXBlbmFtZSB0ZXN0aW5nOjppbnRl
cm5hbDo6RmxvYXRpbmdQb2ludDxSYXdUeXBlPiBGbG9hdGluZzsKICAgdHlwZWRlZiB0eXBlbmFt
ZSBGbG9hdGluZzo6Qml0cyBCaXRzOwogCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBj
b25zdCBzaXplX3QgbWF4X3VscHMgPSBGbG9hdGluZzo6a01heFVscHM7CisgIHZvaWQgU2V0VXAo
KSBvdmVycmlkZSB7CisgICAgY29uc3QgdWludDMyX3QgbWF4X3VscHMgPSBGbG9hdGluZzo6a01h
eFVscHM7CiAKICAgICAvLyBUaGUgYml0cyB0aGF0IHJlcHJlc2VudCAwLjAuCiAgICAgY29uc3Qg
Qml0cyB6ZXJvX2JpdHMgPSBGbG9hdGluZygwKS5iaXRzKCk7CkBAIC0yODI0LDggKzI4ODIsNiBA
QCBURVNUX0YoRmxvYXRUZXN0LCBMYXJnZURpZmYpIHsKIFRFU1RfRihGbG9hdFRlc3QsIEluZmlu
aXR5KSB7CiAgIEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmluaXR5LCB2YWx1ZXNfLmNsb3Nl
X3RvX2luZmluaXR5KTsKICAgRVhQRUNUX0ZMT0FUX0VRKC12YWx1ZXNfLmluZmluaXR5LCAtdmFs
dWVzXy5jbG9zZV90b19pbmZpbml0eSk7Ci0jaWYgIUdURVNUX09TX1NZTUJJQU4KLSAgLy8gTm9r
aWEncyBTVExwb3J0IGNyYXNoZXMgaWYgd2UgdHJ5IHRvIG91dHB1dCBpbmZpbml0eSBvciBOYU4u
CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9GTE9BVF9FUSh2YWx1ZXNfLmluZmlu
aXR5LCAtdmFsdWVzXy5pbmZpbml0eSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICItdmFs
dWVzXy5pbmZpbml0eSIpOwogCkBAIC0yODMzLDE0ICsyODg5LDEwIEBAIFRFU1RfRihGbG9hdFRl
c3QsIEluZmluaXR5KSB7CiAgIC8vIGFyZSBvbmx5IDEgRExQIGFwYXJ0LgogICBFWFBFQ1RfTk9O
RkFUQUxfRkFJTFVSRShFWFBFQ1RfRkxPQVRfRVEodmFsdWVzXy5pbmZpbml0eSwgdmFsdWVzXy5u
YW4xKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlc18ubmFuMSIpOwotI2VuZGlm
ICAvLyAhR1RFU1RfT1NfU1lNQklBTgogfQogCiAvLyBUZXN0cyB0aGF0IGNvbXBhcmluZyB3aXRo
IE5BTiBhbHdheXMgcmV0dXJucyBmYWxzZS4KIFRFU1RfRihGbG9hdFRlc3QsIE5hTikgewotI2lm
ICFHVEVTVF9PU19TWU1CSUFOCi0vLyBOb2tpYSdzIFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkg
dG8gb3V0cHV0IGluZmluaXR5IG9yIE5hTi4KLQogICAvLyBJbiBDKytCdWlsZGVyLCBuYW1lcyB3
aXRoaW4gbG9jYWwgY2xhc3NlcyAoc3VjaCBhcyB1c2VkIGJ5CiAgIC8vIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKSBjYW5ub3QgYmUgcmVzb2x2ZWQgYWdhaW5zdCBzdGF0aWMgbWVtYmVycyBvZiB0aGUK
ICAgLy8gc2NvcGluZyBjbGFzcy4gIFVzZSBhIHN0YXRpYyBsb2NhbCBhbGlhcyBhcyBhIHdvcmth
cm91bmQuCkBAIC0yODU4LDcgKzI5MTAsNiBAQCBURVNUX0YoRmxvYXRUZXN0LCBOYU4pIHsKIAog
ICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRkxPQVRfRVEodi5uYW4xLCB2LmluZmluaXR5
KSwKICAgICAgICAgICAgICAgICAgICAgICAgInYuaW5maW5pdHkiKTsKLSNlbmRpZiAgLy8gIUdU
RVNUX09TX1NZTUJJQU4KIH0KIAogLy8gVGVzdHMgdGhhdCAqX0ZMT0FUX0VRIGFyZSByZWZsZXhp
dmUuCkBAIC0yODgyLDIyICsyOTMzLDE4IEBAIFRFU1RfRihGbG9hdFRlc3QsIENvbW11dGF0aXZl
KSB7CiBURVNUX0YoRmxvYXRUZXN0LCBFWFBFQ1RfTkVBUikgewogICBFWFBFQ1RfTkVBUigtMS4w
ZiwgLTEuMWYsIDAuMmYpOwogICBFWFBFQ1RfTkVBUigyLjBmLCAzLjBmLCAxLjBmKTsKLSAgRVhQ
RUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05FQVIoMS4wZiwxLjVmLCAwLjI1ZiksICAvLyBO
T0xJTlQKKyAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05FQVIoMS4wZiwgMS41Ziwg
MC4yNWYpLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIDEuMGYgYW5kIDEuNWYgaXMgMC41LCAiCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3aGljaCBleGNlZWRzIDAuMjVmIik7Ci0gIC8vIFRvIHdvcmsgYXJvdW5kIGEgYnVn
IGluIGdjYyAyLjk1LjAsIHRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8KLSAgLy8gc3BhY2UgYWZ0
ZXIgdGhlIGZpcnN0IGNvbW1hIGluIHRoZSBwcmV2aW91cyBsaW5lLgogfQogCiAvLyBUZXN0cyBB
U1NFUlRfTkVBUi4KIFRFU1RfRihGbG9hdFRlc3QsIEFTU0VSVF9ORUFSKSB7CiAgIEFTU0VSVF9O
RUFSKC0xLjBmLCAtMS4xZiwgMC4yZik7CiAgIEFTU0VSVF9ORUFSKDIuMGYsIDMuMGYsIDEuMGYp
OwotICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTkVBUigxLjBmLDEuNWYsIDAuMjVmKSwg
IC8vIE5PTElOVAorICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTkVBUigxLjBmLCAxLjVm
LCAwLjI1ZiksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gMS4wZiBhbmQgMS41ZiBpcyAwLjUsICIKICAgICAgICAgICAgICAgICAgICAg
ICAgIndoaWNoIGV4Y2VlZHMgMC4yNWYiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcgaW4g
Z2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRlciB0
aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIGxpbmUuCiB9CiAKIC8vIFRlc3RzIHRoZSBj
YXNlcyB3aGVyZSBGbG9hdExFKCkgc2hvdWxkIHN1Y2NlZWQuCkBAIC0yOTIwLDEwICsyOTY3LDYg
QEAgVEVTVF9GKEZsb2F0VGVzdCwgRmxvYXRMRUZhaWxzKSB7CiAgICAgRVhQRUNUX1BSRURfRk9S
TUFUMihGbG9hdExFLCB2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUsIDEuMGYpOwogICB9LCAiKHZh
bHVlc18uZnVydGhlcl9mcm9tX29uZSkgPD0gKDEuMGYpIik7CiAKLSNpZiAhR1RFU1RfT1NfU1lN
QklBTiAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0gIC8vIE5va2lhJ3MgU1RMcG9ydCBjcmFz
aGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgotICAvLyBDKytCdWlsZGVy
IGdpdmVzIGJhZCByZXN1bHRzIGZvciBvcmRlcmVkIGNvbXBhcmlzb25zIGludm9sdmluZyBOYU5z
Ci0gIC8vIGR1ZSB0byBjb21waWxlciBidWdzLgogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRSh7
ICAvLyBOT0xJTlQKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIHZhbHVlc18ubmFu
MSwgdmFsdWVzXy5pbmZpbml0eSk7CiAgIH0sICIodmFsdWVzXy5uYW4xKSA8PSAodmFsdWVzXy5p
bmZpbml0eSkiKTsKQEAgLTI5MzMsNyArMjk3Niw2IEBAIFRFU1RfRihGbG9hdFRlc3QsIEZsb2F0
TEVGYWlscykgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKICAgICBBU1NF
UlRfUFJFRF9GT1JNQVQyKEZsb2F0TEUsIHZhbHVlc18ubmFuMSwgdmFsdWVzXy5uYW4xKTsKICAg
fSwgIih2YWx1ZXNfLm5hbjEpIDw9ICh2YWx1ZXNfLm5hbjEpIik7Ci0jZW5kaWYgIC8vICFHVEVT
VF9PU19TWU1CSUFOICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKIH0KIAogLy8gSW5zdGFudGlh
dGVzIEZsb2F0aW5nUG9pbnRUZXN0IGZvciB0ZXN0aW5nICpfRE9VQkxFX0VRLgpAQCAtMjk5Nyw4
ICszMDM5LDYgQEAgVEVTVF9GKERvdWJsZVRlc3QsIExhcmdlRGlmZikgewogVEVTVF9GKERvdWJs
ZVRlc3QsIEluZmluaXR5KSB7CiAgIEVYUEVDVF9ET1VCTEVfRVEodmFsdWVzXy5pbmZpbml0eSwg
dmFsdWVzXy5jbG9zZV90b19pbmZpbml0eSk7CiAgIEVYUEVDVF9ET1VCTEVfRVEoLXZhbHVlc18u
aW5maW5pdHksIC12YWx1ZXNfLmNsb3NlX3RvX2luZmluaXR5KTsKLSNpZiAhR1RFU1RfT1NfU1lN
QklBTgotICAvLyBOb2tpYSdzIFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0cHV0IGlu
ZmluaXR5IG9yIE5hTi4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RPVUJMRV9F
USh2YWx1ZXNfLmluZmluaXR5LCAtdmFsdWVzXy5pbmZpbml0eSksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItdmFsdWVzXy5pbmZpbml0eSIpOwogCkBAIC0zMDA2LDE4ICszMDQ2LDEwIEBA
IFRFU1RfRihEb3VibGVUZXN0LCBJbmZpbml0eSkgewogICAvLyBhcmUgb25seSAxIERMUCBhcGFy
dC4KICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0RPVUJMRV9FUSh2YWx1ZXNfLmlu
ZmluaXR5LCB2YWx1ZXNfLm5hbjEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVz
Xy5uYW4xIik7Ci0jZW5kaWYgIC8vICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3RzIHRo
YXQgY29tcGFyaW5nIHdpdGggTkFOIGFsd2F5cyByZXR1cm5zIGZhbHNlLgogVEVTVF9GKERvdWJs
ZVRlc3QsIE5hTikgewotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8vIEluIEMrK0J1aWxkZXIs
IG5hbWVzIHdpdGhpbiBsb2NhbCBjbGFzc2VzIChzdWNoIGFzIHVzZWQgYnkKLSAgLy8gRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUpIGNhbm5vdCBiZSByZXNvbHZlZCBhZ2FpbnN0IHN0YXRpYyBtZW1iZXJz
IG9mIHRoZQotICAvLyBzY29waW5nIGNsYXNzLiAgVXNlIGEgc3RhdGljIGxvY2FsIGFsaWFzIGFz
IGEgd29ya2Fyb3VuZC4KLSAgLy8gV2UgdXNlIHRoZSBhc3NpZ25tZW50IHN5bnRheCBzaW5jZSBz
b21lIGNvbXBpbGVycywgbGlrZSBTdW4gU3R1ZGlvLAotICAvLyBkb24ndCBhbGxvdyBpbml0aWFs
aXppbmcgcmVmZXJlbmNlcyB1c2luZyBjb25zdHJ1Y3Rpb24gc3ludGF4Ci0gIC8vIChwYXJlbnRo
ZXNlcykuCiAgIHN0YXRpYyBjb25zdCBEb3VibGVUZXN0OjpUZXN0VmFsdWVzJiB2ID0gdGhpcy0+
dmFsdWVzXzsKIAogICAvLyBOb2tpYSdzIFNUTHBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0
cHV0IGluZmluaXR5IG9yIE5hTi4KQEAgLTMwMjcsMTcgKzMwNTksMTMgQEAgVEVTVF9GKERvdWJs
ZVRlc3QsIE5hTikgewogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRE9VQkxFX0VR
KDEuMCwgdi5uYW4xKSwgInYubmFuMSIpOwogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRf
RE9VQkxFX0VRKHYubmFuMSwgdi5pbmZpbml0eSksCiAgICAgICAgICAgICAgICAgICAgICAgICJ2
LmluZmluaXR5Iik7Ci0jZW5kaWYgIC8vICFHVEVTVF9PU19TWU1CSUFOCiB9CiAKIC8vIFRlc3Rz
IHRoYXQgKl9ET1VCTEVfRVEgYXJlIHJlZmxleGl2ZS4KIFRFU1RfRihEb3VibGVUZXN0LCBSZWZs
ZXhpdmUpIHsKICAgRVhQRUNUX0RPVUJMRV9FUSgwLjAsIDAuMCk7CiAgIEVYUEVDVF9ET1VCTEVf
RVEoMS4wLCAxLjApOwotI2lmICFHVEVTVF9PU19TWU1CSUFOCi0gIC8vIE5va2lhJ3MgU1RMcG9y
dCBjcmFzaGVzIGlmIHdlIHRyeSB0byBvdXRwdXQgaW5maW5pdHkgb3IgTmFOLgogICBBU1NFUlRf
RE9VQkxFX0VRKHZhbHVlc18uaW5maW5pdHksIHZhbHVlc18uaW5maW5pdHkpOwotI2VuZGlmICAv
LyAhR1RFU1RfT1NfU1lNQklBTgogfQogCiAvLyBUZXN0cyB0aGF0ICpfRE9VQkxFX0VRIGFyZSBj
b21tdXRhdGl2ZS4KQEAgLTMwNTcsOCArMzA4NSwxMyBAQCBURVNUX0YoRG91YmxlVGVzdCwgRVhQ
RUNUX05FQVIpIHsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX05FQVIoMS4wLCAx
LjUsIDAuMjUpLCAgLy8gTk9MSU5UCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIDEuMCBhbmQgMS41IGlzIDAuNSwgIgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2hpY2ggZXhjZWVkcyAwLjI1Iik7Ci0gIC8vIFRvIHdvcmsgYXJvdW5kIGEgYnVn
IGluIGdjYyAyLjk1LjAsIHRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8KLSAgLy8gc3BhY2UgYWZ0
ZXIgdGhlIGZpcnN0IGNvbW1hIGluIHRoZSBwcmV2aW91cyBzdGF0ZW1lbnQuCisgIC8vIEF0IHRo
aXMgbWFnbml0dWRlIGFkamFjZW50IGRvdWJsZXMgYXJlIDUxMi4wIGFwYXJ0LCBzbyB0aGlzIHRy
aWdnZXJzIGEKKyAgLy8gc2xpZ2h0bHkgZGlmZmVyZW50IGZhaWx1cmUgcmVwb3J0aW5nIHBhdGgu
CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKAorICAgICAgRVhQRUNUX05FQVIoNC4yOTM0MzEx
NDE2MjM0MTEyZSsxOCwgNC4yOTM0MzExNDE2MjM0MTA3ZSsxOCwgMS4wKSwKKyAgICAgICJUaGUg
YWJzX2Vycm9yIHBhcmFtZXRlciAxLjAgZXZhbHVhdGVzIHRvIDEgd2hpY2ggaXMgc21hbGxlciB0
aGFuIHRoZSAiCisgICAgICAibWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIGRvdWJsZXMgZm9yIG51
bWJlcnMgb2YgdGhpcyBtYWduaXR1ZGUgd2hpY2ggaXMgIgorICAgICAgIjUxMiIpOwogfQogCiAv
LyBUZXN0cyBBU1NFUlRfTkVBUi4KQEAgLTMwNjgsOCArMzEwMSw2IEBAIFRFU1RfRihEb3VibGVU
ZXN0LCBBU1NFUlRfTkVBUikgewogICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTkVBUigx
LjAsIDEuNSwgMC4yNSksICAvLyBOT0xJTlQKICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCAxLjUgaXMgMC41LCAiCiAgICAgICAgICAgICAgICAg
ICAgICAgICJ3aGljaCBleGNlZWRzIDAuMjUiKTsKLSAgLy8gVG8gd29yayBhcm91bmQgYSBidWcg
aW4gZ2NjIDIuOTUuMCwgdGhlcmUgaXMgaW50ZW50aW9uYWxseSBubwotICAvLyBzcGFjZSBhZnRl
ciB0aGUgZmlyc3QgY29tbWEgaW4gdGhlIHByZXZpb3VzIHN0YXRlbWVudC4KIH0KIAogLy8gVGVz
dHMgdGhlIGNhc2VzIHdoZXJlIERvdWJsZUxFKCkgc2hvdWxkIHN1Y2NlZWQuCkBAIC0zMDkyLDEw
ICszMTIzLDYgQEAgVEVTVF9GKERvdWJsZVRlc3QsIERvdWJsZUxFRmFpbHMpIHsKICAgICBFWFBF
Q1RfUFJFRF9GT1JNQVQyKERvdWJsZUxFLCB2YWx1ZXNfLmZ1cnRoZXJfZnJvbV9vbmUsIDEuMCk7
CiAgIH0sICIodmFsdWVzXy5mdXJ0aGVyX2Zyb21fb25lKSA8PSAoMS4wKSIpOwogCi0jaWYgIUdU
RVNUX09TX1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQotICAvLyBOb2tpYSdzIFNU
THBvcnQgY3Jhc2hlcyBpZiB3ZSB0cnkgdG8gb3V0cHV0IGluZmluaXR5IG9yIE5hTi4KLSAgLy8g
QysrQnVpbGRlciBnaXZlcyBiYWQgcmVzdWx0cyBmb3Igb3JkZXJlZCBjb21wYXJpc29ucyBpbnZv
bHZpbmcgTmFOcwotICAvLyBkdWUgdG8gY29tcGlsZXIgYnVncy4KICAgRVhQRUNUX05PTkZBVEFM
X0ZBSUxVUkUoeyAgLy8gTk9MSU5UCiAgICAgRVhQRUNUX1BSRURfRk9STUFUMihEb3VibGVMRSwg
dmFsdWVzXy5uYW4xLCB2YWx1ZXNfLmluZmluaXR5KTsKICAgfSwgIih2YWx1ZXNfLm5hbjEpIDw9
ICh2YWx1ZXNfLmluZmluaXR5KSIpOwpAQCAtMzEwNSw3ICszMTMyLDYgQEAgVEVTVF9GKERvdWJs
ZVRlc3QsIERvdWJsZUxFRmFpbHMpIHsKICAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoeyAgLy8gTk9M
SU5UCiAgICAgQVNTRVJUX1BSRURfRk9STUFUMihEb3VibGVMRSwgdmFsdWVzXy5uYW4xLCB2YWx1
ZXNfLm5hbjEpOwogICB9LCAiKHZhbHVlc18ubmFuMSkgPD0gKHZhbHVlc18ubmFuMSkiKTsKLSNl
bmRpZiAgLy8gIUdURVNUX09TX1NZTUJJQU4gJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQogfQog
CiAKQEAgLTMxMjYsMjggKzMxNTIsMjggQEAgVEVTVChEaXNhYmxlZFRlc3QsIE5vdERJU0FCTEVE
X1Rlc3RTaG91bGRSdW4pIHsKIAogLy8gQSB0ZXN0IGNhc2Ugd2hvc2UgbmFtZSBzdGFydHMgd2l0
aCBESVNBQkxFRF8uCiAvLyBTaG91bGQgbm90IHJ1bi4KLVRFU1QoRElTQUJMRURfVGVzdENhc2Us
IFRlc3RTaG91bGROb3RSdW4pIHsKK1RFU1QoRElTQUJMRURfVGVzdFN1aXRlLCBUZXN0U2hvdWxk
Tm90UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBUZXN0IGluIGRpc2Fi
bGVkIHRlc3QgY2FzZSBzaG91bGQgbm90IGJlIHJ1bi4iOwogfQogCiAvLyBBIHRlc3QgY2FzZSBh
bmQgdGVzdCB3aG9zZSBuYW1lcyBzdGFydCB3aXRoIERJU0FCTEVEXy4KIC8vIFNob3VsZCBub3Qg
cnVuLgotVEVTVChESVNBQkxFRF9UZXN0Q2FzZSwgRElTQUJMRURfVGVzdFNob3VsZE5vdFJ1bikg
eworVEVTVChESVNBQkxFRF9UZXN0U3VpdGUsIERJU0FCTEVEX1Rlc3RTaG91bGROb3RSdW4pIHsK
ICAgRkFJTCgpIDw8ICJVbmV4cGVjdGVkIGZhaWx1cmU6IFRlc3QgaW4gZGlzYWJsZWQgdGVzdCBj
YXNlIHNob3VsZCBub3QgYmUgcnVuLiI7CiB9CiAKLS8vIENoZWNrIHRoYXQgd2hlbiBhbGwgdGVz
dHMgaW4gYSB0ZXN0IGNhc2UgYXJlIGRpc2FibGVkLCBTZXRVcFRlc3RDYXNlKCkgYW5kCi0vLyBU
ZWFyRG93blRlc3RDYXNlKCkgYXJlIG5vdCBjYWxsZWQuCisvLyBDaGVjayB0aGF0IHdoZW4gYWxs
IHRlc3RzIGluIGEgdGVzdCBjYXNlIGFyZSBkaXNhYmxlZCwgU2V0VXBUZXN0U3VpdGUoKSBhbmQK
Ky8vIFRlYXJEb3duVGVzdFN1aXRlKCkgYXJlIG5vdCBjYWxsZWQuCiBjbGFzcyBEaXNhYmxlZFRl
c3RzVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6Ci0gIHN0YXRpYyB2b2lkIFNldFVw
VGVzdENhc2UoKSB7CisgIHN0YXRpYyB2b2lkIFNldFVwVGVzdFN1aXRlKCkgewogICAgIEZBSUwo
KSA8PCAiVW5leHBlY3RlZCBmYWlsdXJlOiBBbGwgdGVzdHMgZGlzYWJsZWQgaW4gdGVzdCBjYXNl
LiAiCi0gICAgICAgICAgICAgICJTZXRVcFRlc3RDYXNlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQu
IjsKKyAgICAgICAgICAgICAgIlNldFVwVGVzdFN1aXRlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQu
IjsKICAgfQogCi0gIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7CisgIHN0YXRpYyB2
b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgewogICAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBmYWls
dXJlOiBBbGwgdGVzdHMgZGlzYWJsZWQgaW4gdGVzdCBjYXNlLiAiCi0gICAgICAgICAgICAgICJU
ZWFyRG93blRlc3RDYXNlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQuIjsKKyAgICAgICAgICAgICAg
IlRlYXJEb3duVGVzdFN1aXRlKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQuIjsKICAgfQogfTsKIApA
QCAtMzE2MSwxNCArMzE4NywxMiBAQCBURVNUX0YoRGlzYWJsZWRUZXN0c1Rlc3QsIERJU0FCTEVE
X1Rlc3RTaG91bGROb3RSdW5fMikgewogCiAvLyBUZXN0cyB0aGF0IGRpc2FibGVkIHR5cGVkIHRl
c3RzIGFyZW4ndCBydW4uCiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAotCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIFR5cGVkVGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKIHR5cGVk
ZWYgdGVzdGluZzo6VHlwZXM8aW50LCBkb3VibGU+IE51bWVyaWNUeXBlczsKLVRZUEVEX1RFU1Rf
Q0FTRShUeXBlZFRlc3QsIE51bWVyaWNUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVz
dCwgTnVtZXJpY1R5cGVzKTsKIAogVFlQRURfVEVTVChUeXBlZFRlc3QsIERJU0FCTEVEX1Nob3Vs
ZE5vdFJ1bikgewogICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogRGlzYWJsZWQgdHlw
ZWQgdGVzdCBzaG91bGQgbm90IHJ1bi4iOwpAQCAtMzE3OCw0OSArMzIwMiw0MyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIERJU0FCTEVEX1R5cGVkVGVzdCA6IHB1YmxpYyBUZXN0IHsK
IH07CiAKLVRZUEVEX1RFU1RfQ0FTRShESVNBQkxFRF9UeXBlZFRlc3QsIE51bWVyaWNUeXBlcyk7
CitUWVBFRF9URVNUX1NVSVRFKERJU0FCTEVEX1R5cGVkVGVzdCwgTnVtZXJpY1R5cGVzKTsKIAog
VFlQRURfVEVTVChESVNBQkxFRF9UeXBlZFRlc3QsIFNob3VsZE5vdFJ1bikgewogICBGQUlMKCkg
PDwgIlVuZXhwZWN0ZWQgZmFpbHVyZTogRGlzYWJsZWQgdHlwZWQgdGVzdCBzaG91bGQgbm90IHJ1
bi4iOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUCi0KIC8vIFRlc3RzIHRo
YXQgZGlzYWJsZWQgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzIGFyZW4ndCBydW4uCiAKLSNpZiBH
VEVTVF9IQVNfVFlQRURfVEVTVF9QCi0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgVHlw
ZWRUZXN0UCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVkVGVz
dFApOworVFlQRURfVEVTVF9TVUlURV9QKFR5cGVkVGVzdFApOwogCiBUWVBFRF9URVNUX1AoVHlw
ZWRUZXN0UCwgRElTQUJMRURfU2hvdWxkTm90UnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBlY3Rl
ZCBmYWlsdXJlOiAiCiAgICAgICAgICA8PCAiRGlzYWJsZWQgdHlwZS1wYXJhbWV0ZXJpemVkIHRl
c3Qgc2hvdWxkIG5vdCBydW4uIjsKIH0KIAotUkVHSVNURVJfVFlQRURfVEVTVF9DQVNFX1AoVHlw
ZWRUZXN0UCwgRElTQUJMRURfU2hvdWxkTm90UnVuKTsKK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJ
VEVfUChUeXBlZFRlc3RQLCBESVNBQkxFRF9TaG91bGROb3RSdW4pOwogCi1JTlNUQU5USUFURV9U
WVBFRF9URVNUX0NBU0VfUChNeSwgVHlwZWRUZXN0UCwgTnVtZXJpY1R5cGVzKTsKK0lOU1RBTlRJ
QVRFX1RZUEVEX1RFU1RfU1VJVEVfUChNeSwgVHlwZWRUZXN0UCwgTnVtZXJpY1R5cGVzKTsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFzcyBESVNBQkxFRF9UeXBlZFRlc3RQIDogcHVibGlj
IFRlc3QgewogfTsKIAotVFlQRURfVEVTVF9DQVNFX1AoRElTQUJMRURfVHlwZWRUZXN0UCk7CitU
WVBFRF9URVNUX1NVSVRFX1AoRElTQUJMRURfVHlwZWRUZXN0UCk7CiAKIFRZUEVEX1RFU1RfUChE
SVNBQkxFRF9UeXBlZFRlc3RQLCBTaG91bGROb3RSdW4pIHsKICAgRkFJTCgpIDw8ICJVbmV4cGVj
dGVkIGZhaWx1cmU6ICIKICAgICAgICAgIDw8ICJEaXNhYmxlZCB0eXBlLXBhcmFtZXRlcml6ZWQg
dGVzdCBzaG91bGQgbm90IHJ1bi4iOwogfQogCi1SRUdJU1RFUl9UWVBFRF9URVNUX0NBU0VfUChE
SVNBQkxFRF9UeXBlZFRlc3RQLCBTaG91bGROb3RSdW4pOwotCi1JTlNUQU5USUFURV9UWVBFRF9U
RVNUX0NBU0VfUChNeSwgRElTQUJMRURfVHlwZWRUZXN0UCwgTnVtZXJpY1R5cGVzKTsKK1JFR0lT
VEVSX1RZUEVEX1RFU1RfU1VJVEVfUChESVNBQkxFRF9UeXBlZFRlc3RQLCBTaG91bGROb3RSdW4p
OwogCi0jZW5kaWYgIC8vIEdURVNUX0hBU19UWVBFRF9URVNUX1AKK0lOU1RBTlRJQVRFX1RZUEVE
X1RFU1RfU1VJVEVfUChNeSwgRElTQUJMRURfVHlwZWRUZXN0UCwgTnVtZXJpY1R5cGVzKTsKIAog
Ly8gVGVzdHMgdGhhdCBhc3NlcnRpb24gbWFjcm9zIGV2YWx1YXRlIHRoZWlyIGFyZ3VtZW50cyBl
eGFjdGx5IG9uY2UuCiAKQEAgLTMzMjcsOSArMzM0NSwyNiBAQCBURVNUX0YoU2luZ2xlRXZhbHVh
dGlvblRlc3QsIE90aGVyQ2FzZXMpIHsKIAogI2lmIEdURVNUX0hBU19FWENFUFRJT05TCiAKKyNp
ZiBHVEVTVF9IQVNfUlRUSQorCisjaWZkZWYgX01TQ19WRVIKKyNkZWZpbmUgRVJST1JfREVTQyAi
Y2xhc3Mgc3RkOjpydW50aW1lX2Vycm9yIgorI2Vsc2UKKyNkZWZpbmUgRVJST1JfREVTQyAic3Rk
OjpydW50aW1lX2Vycm9yIgorI2VuZGlmCisKKyNlbHNlICAvLyBHVEVTVF9IQVNfUlRUSQorCisj
ZGVmaW5lIEVSUk9SX0RFU0MgImFuIHN0ZDo6ZXhjZXB0aW9uLWRlcml2ZWQgZXJyb3IiCisKKyNl
bmRpZiAgLy8gR1RFU1RfSEFTX1JUVEkKKwogdm9pZCBUaHJvd0FuSW50ZWdlcigpIHsKICAgdGhy
b3cgMTsKIH0KK3ZvaWQgVGhyb3dSdW50aW1lRXJyb3IoY29uc3QgY2hhciogd2hhdCkgeworICB0
aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3Iod2hhdCk7Cit9CiAKIC8vIFRlc3RzIHRoYXQgYXNzZXJ0
aW9uIGFyZ3VtZW50cyBhcmUgZXZhbHVhdGVkIGV4YWN0bHkgb25jZS4KIFRFU1RfRihTaW5nbGVF
dmFsdWF0aW9uVGVzdCwgRXhjZXB0aW9uVGVzdHMpIHsKQEAgLTMzNDcsMzEgKzMzODIsMzggQEAg
VEVTVF9GKFNpbmdsZUV2YWx1YXRpb25UZXN0LCBFeGNlcHRpb25UZXN0cykgewogICB9LCBib29s
KSwgInRocm93cyBhIGRpZmZlcmVudCB0eXBlIik7CiAgIEVYUEVDVF9FUSgyLCBhXyk7CiAKKyAg
Ly8gZmFpbGVkIEVYUEVDVF9USFJPVywgdGhyb3dzIHJ1bnRpbWUgZXJyb3IKKyAgRVhQRUNUX05P
TkZBVEFMX0ZBSUxVUkUoRVhQRUNUX1RIUk9XKHsgIC8vIE5PTElOVAorICAgIGFfKys7CisgICAg
VGhyb3dSdW50aW1lRXJyb3IoIkEgZGVzY3JpcHRpb24iKTsKKyAgfSwgYm9vbCksICJ0aHJvd3Mg
IiBFUlJPUl9ERVNDICIgd2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3JpcHRpb25cIiIpOworICBF
WFBFQ1RfRVEoMywgYV8pOworCiAgIC8vIGZhaWxlZCBFWFBFQ1RfVEhST1csIHRocm93cyBub3Ro
aW5nCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhhXysrLCBib29sKSwg
InRocm93cyBub3RoaW5nIik7Ci0gIEVYUEVDVF9FUSgzLCBhXyk7CisgIEVYUEVDVF9FUSg0LCBh
Xyk7CiAKICAgLy8gc3VjY2Vzc2Z1bCBFWFBFQ1RfTk9fVEhST1cKICAgRVhQRUNUX05PX1RIUk9X
KGFfKyspOwotICBFWFBFQ1RfRVEoNCwgYV8pOworICBFWFBFQ1RfRVEoNSwgYV8pOwogCiAgIC8v
IGZhaWxlZCBFWFBFQ1RfTk9fVEhST1cKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNU
X05PX1RIUk9XKHsgIC8vIE5PTElOVAogICAgIGFfKys7CiAgICAgVGhyb3dBbkludGVnZXIoKTsK
ICAgfSksICJpdCB0aHJvd3MiKTsKLSAgRVhQRUNUX0VRKDUsIGFfKTsKKyAgRVhQRUNUX0VRKDYs
IGFfKTsKIAogICAvLyBzdWNjZXNzZnVsIEVYUEVDVF9BTllfVEhST1cKICAgRVhQRUNUX0FOWV9U
SFJPVyh7ICAvLyBOT0xJTlQKICAgICBhXysrOwogICAgIFRocm93QW5JbnRlZ2VyKCk7CiAgIH0p
OwotICBFWFBFQ1RfRVEoNiwgYV8pOworICBFWFBFQ1RfRVEoNywgYV8pOwogCiAgIC8vIGZhaWxl
ZCBFWFBFQ1RfQU5ZX1RIUk9XCiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9BTllf
VEhST1coYV8rKyksICJpdCBkb2Vzbid0Iik7Ci0gIEVYUEVDVF9FUSg3LCBhXyk7CisgIEVYUEVD
VF9FUSg4LCBhXyk7CiB9CiAKICNlbmRpZiAgLy8gR1RFU1RfSEFTX0VYQ0VQVElPTlMKQEAgLTM0
ODEsNyArMzUyMyw3IEBAIHN0ZDo6c3RyaW5nIEVkaXRzVG9TdHJpbmcoY29uc3Qgc3RkOjp2ZWN0
b3I8RWRpdFR5cGU+JiBlZGl0cykgewogc3RkOjp2ZWN0b3I8c2l6ZV90PiBDaGFyc1RvSW5kaWNl
cyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyKSB7CiAgIHN0ZDo6dmVjdG9yPHNpemVfdD4gb3V0Owog
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ci5zaXplKCk7ICsraSkgewotICAgIG91dC5wdXNo
X2JhY2soc3RyW2ldKTsKKyAgICBvdXQucHVzaF9iYWNrKHN0YXRpY19jYXN0PHNpemVfdD4oc3Ry
W2ldKSk7CiAgIH0KICAgcmV0dXJuIG91dDsKIH0KQEAgLTM0OTQsNyArMzUzNiw3IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGFyc1RvTGluZXMoY29uc3Qgc3RkOjpzdHJpbmcmIHN0cikg
ewogICByZXR1cm4gb3V0OwogfQogCi1URVNUKEVkaXREaXN0YW5jZSwgVGVzdENhc2VzKSB7CitU
RVNUKEVkaXREaXN0YW5jZSwgVGVzdFN1aXRlcykgewogICBzdHJ1Y3QgQ2FzZSB7CiAgICAgaW50
IGxpbmU7CiAgICAgY29uc3QgY2hhciogbGVmdDsKQEAgLTM3MTMsMjIgKzM3NTUsMTUgQEAgVEVT
VChBc3NlcnRpb25UZXN0LCBBU1NFUlRfRVEpIHsKIH0KIAogLy8gVGVzdHMgQVNTRVJUX0VRKE5V
TEwsIHBvaW50ZXIpLgotI2lmIEdURVNUX0NBTl9DT01QQVJFX05VTEwKIFRFU1QoQXNzZXJ0aW9u
VGVzdCwgQVNTRVJUX0VRX05VTEwpIHsKICAgLy8gQSBzdWNjZXNzLgotICBjb25zdCBjaGFyKiBw
ID0gTlVMTDsKLSAgLy8gU29tZSBvbGRlciBHQ0MgdmVyc2lvbnMgbWF5IGlzc3VlIGEgc3B1cmlv
dXMgd2FybmluZyBpbiB0aGlzIG9yIHRoZSBuZXh0Ci0gIC8vIGFzc2VydGlvbiBzdGF0ZW1lbnQu
IFRoaXMgd2FybmluZyBzaG91bGQgbm90IGJlIHN1cHByZXNzZWQgd2l0aAotICAvLyBzdGF0aWNf
Y2FzdCBzaW5jZSB0aGUgdGVzdCB2ZXJpZmllcyB0aGUgYWJpbGl0eSB0byB1c2UgYmFyZSBOVUxM
IGFzIHRoZQotICAvLyBleHBlY3RlZCBwYXJhbWV0ZXIgdG8gdGhlIG1hY3JvLgotICBBU1NFUlRf
RVEoTlVMTCwgcCk7CisgIGNvbnN0IGNoYXIqIHAgPSBudWxscHRyOworICBBU1NFUlRfRVEobnVs
bHB0ciwgcCk7CiAKICAgLy8gQSBmYWlsdXJlLgogICBzdGF0aWMgaW50IG4gPSAwOwotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfRVEoTlVMTCwgJm4pLAotICAgICAgICAgICAgICAgICAg
ICAgICAiICAmblxuICAgIFdoaWNoIGlzOiIpOworICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NF
UlRfRVEobnVsbHB0ciwgJm4pLCAiICAmblxuICAgIFdoaWNoIGlzOiIpOwogfQotI2VuZGlmICAv
LyBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMCiAKIC8vIFRlc3RzIEFTU0VSVF9FUSgwLCBub25fcG9p
bnRlcikuICBTaW5jZSB0aGUgbGl0ZXJhbCAwIGNhbiBiZQogLy8gdHJlYXRlZCBhcyBhIG51bGwg
cG9pbnRlciBieSB0aGUgY29tcGlsZXIsIHdlIG5lZWQgdG8gbWFrZSBzdXJlCkBAIC0zNzk4LDYg
KzM4MzMsMTIgQEAgVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfVEhST1cpIHsKICAgICAgIEFT
U0VSVF9USFJPVyhUaHJvd0FuSW50ZWdlcigpLCBib29sKSwKICAgICAgICJFeHBlY3RlZDogVGhy
b3dBbkludGVnZXIoKSB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgYm9vbC5cbiIKICAgICAg
ICIgIEFjdHVhbDogaXQgdGhyb3dzIGEgZGlmZmVyZW50IHR5cGUuIik7CisgIEVYUEVDVF9GQVRB
TF9GQUlMVVJFKAorICAgICAgQVNTRVJUX1RIUk9XKFRocm93UnVudGltZUVycm9yKCJBIGRlc2Ny
aXB0aW9uIiksIHN0ZDo6bG9naWNfZXJyb3IpLAorICAgICAgIkV4cGVjdGVkOiBUaHJvd1J1bnRp
bWVFcnJvcihcIkEgZGVzY3JpcHRpb25cIikgIgorICAgICAgInRocm93cyBhbiBleGNlcHRpb24g
b2YgdHlwZSBzdGQ6OmxvZ2ljX2Vycm9yLlxuICAiCisgICAgICAiQWN0dWFsOiBpdCB0aHJvd3Mg
IiBFUlJPUl9ERVNDICIgIgorICAgICAgIndpdGggZGVzY3JpcHRpb24gXCJBIGRlc2NyaXB0aW9u
XCIuIik7CiAjIGVuZGlmCiAKICAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoCkBAIC0zODEyLDYgKzM4
NTMsMTEgQEAgVEVTVChBc3NlcnRpb25UZXN0LCBBU1NFUlRfTk9fVEhST1cpIHsKICAgRVhQRUNU
X0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX05PX1RIUk9XKFRocm93QW5JbnRlZ2VyKCkpLAogICAgICAg
ICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93QW5JbnRlZ2VyKCkgZG9lc24ndCB0aHJv
dyBhbiBleGNlcHRpb24uIgogICAgICAgICAgICAgICAgICAgICAgICAiXG4gIEFjdHVhbDogaXQg
dGhyb3dzLiIpOworICBFWFBFQ1RfRkFUQUxfRkFJTFVSRShBU1NFUlRfTk9fVEhST1coVGhyb3dS
dW50aW1lRXJyb3IoIkEgZGVzY3JpcHRpb24iKSksCisgICAgICAgICAgICAgICAgICAgICAgICJF
eHBlY3RlZDogVGhyb3dSdW50aW1lRXJyb3IoXCJBIGRlc2NyaXB0aW9uXCIpICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgImRvZXNuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uLlxuICAiCisgICAgICAg
ICAgICAgICAgICAgICAgICJBY3R1YWw6IGl0IHRocm93cyAiIEVSUk9SX0RFU0MgIiAiCisgICAg
ICAgICAgICAgICAgICAgICAgICJ3aXRoIGRlc2NyaXB0aW9uIFwiQSBkZXNjcmlwdGlvblwiLiIp
OwogfQogCiAvLyBUZXN0cyBBU1NFUlRfQU5ZX1RIUk9XLgpAQCAtMzkxOSwxMSArMzk2NSw4IEBA
IFRFU1QoQXNzZXJ0aW9uVGVzdCwgTmFtZWRFbnVtKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlM
VVJFKEVYUEVDVF9FUShrRTEsIGtFMiksICJXaGljaCBpczogMSIpOwogfQogCi0vLyBUaGUgdmVy
c2lvbiBvZiBnY2MgdXNlZCBpbiBYQ29kZSAyLjIgaGFzIGEgYnVnIGFuZCBkb2Vzbid0IGFsbG93
Ci0vLyBhbm9ueW1vdXMgZW51bXMgaW4gYXNzZXJ0aW9ucy4gIFRoZXJlZm9yZSB0aGUgZm9sbG93
aW5nIHRlc3QgaXMgbm90Ci0vLyBkb25lIG9uIE1hYy4KLS8vIFN1biBTdHVkaW8gYW5kIEhQIGFD
QyBhbHNvIHJlamVjdCB0aGlzIGNvZGUuCi0jaWYgIUdURVNUX09TX01BQyAmJiAhZGVmaW5lZChf
X1NVTlBST19DQykgJiYgIWRlZmluZWQoX19IUF9hQ0MpCisvLyBTdW4gU3R1ZGlvIGFuZCBIUCBh
Q0MycmVqZWN0IHRoaXMgY29kZS4KKyNpZiAhZGVmaW5lZChfX1NVTlBST19DQykgJiYgIWRlZmlu
ZWQoX19IUF9hQ0MpCiAKIC8vIFRlc3RzIHVzaW5nIGFzc2VydGlvbnMgd2l0aCBhbm9ueW1vdXMg
ZW51bXMuCiBlbnVtIHsKQEAgLTQwODQsMTEgKzQxMjcsMTMgQEAgVEVTVChIUkVTVUxUQXNzZXJ0
aW9uVGVzdCwgU3RyZWFtaW5nKSB7CiAKICNlbmRpZiAgLy8gR1RFU1RfT1NfV0lORE9XUwogCi0j
aWZkZWYgX19CT1JMQU5EQ19fCi0vLyBTaWxlbmNlcyB3YXJuaW5nczogIkNvbmRpdGlvbiBpcyBh
bHdheXMgdHJ1ZSIsICJVbnJlYWNoYWJsZSBjb2RlIgotIyBwcmFnbWEgb3B0aW9uIHB1c2ggLXct
Y2NjIC13LXJjaAorLy8gVGhlIGZvbGxvd2luZyBjb2RlIGludGVudGlvbmFsbHkgdGVzdHMgYSBz
dWJvcHRpbWFsIHN5bnRheC4KKyNpZmRlZiBfX0dOVUNfXworI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGFuZ2xpbmctZWxzZSIK
KyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbXB0eS1ib2R5IgorI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3ByYWdtYXMiCiAjZW5kaWYKLQogLy8gVGVzdHMgdGhh
dCB0aGUgYXNzZXJ0aW9uIG1hY3JvcyBiZWhhdmUgbGlrZSBzaW5nbGUgc3RhdGVtZW50cy4KIFRF
U1QoQXNzZXJ0aW9uU3ludGF4VGVzdCwgQmFzaWNBc3NlcnRpb25zQmVoYXZlc0xpa2VTaW5nbGVT
dGF0ZW1lbnQpIHsKICAgaWYgKEFsd2F5c0ZhbHNlKCkpCkBAIC00MTA4LDYgKzQxNTMsOSBAQCBU
RVNUKEFzc2VydGlvblN5bnRheFRlc3QsIEJhc2ljQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2luZ2xl
U3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICBFWFBFQ1RfR1QoMywgMikgPDwgIiI7CiB9CisjaWZk
ZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKIAogI2lmIEdU
RVNUX0hBU19FWENFUFRJT05TCiAvLyBUZXN0cyB0aGF0IHRoZSBjb21waWxlciB3aWxsIG5vdCBj
b21wbGFpbiBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIGluIHRoZQpAQCAtNDEyNCw2ICs0MTcyLDE3
IEBAIFRFU1QoRXhwZWN0VGhyb3dUZXN0LCBEb2VzTm90R2VuZXJhdGVVbnJlYWNoYWJsZUNvZGVX
YXJuaW5nKSB7CiAgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9BTllfVEhST1cobisr
KSwgIiIpOwogfQogCitURVNUKEV4cGVjdFRocm93VGVzdCwgRG9lc05vdEdlbmVyYXRlRHVwbGlj
YXRlQ2F0Y2hDbGF1c2VXYXJuaW5nKSB7CisgIEVYUEVDVF9USFJPVyh0aHJvdyBzdGQ6OmV4Y2Vw
dGlvbigpLCBzdGQ6OmV4Y2VwdGlvbik7Cit9CisKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRl
bnRpb25hbGx5IHRlc3RzIGEgc3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RhbmdsaW5nLWVsc2UiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1w
dHktYm9keSIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2Vu
ZGlmCiBURVNUKEFzc2VydGlvblN5bnRheFRlc3QsIEV4Y2VwdGlvbkFzc2VydGlvbnNCZWhhdmVz
TGlrZVNpbmdsZVN0YXRlbWVudCkgewogICBpZiAoQWx3YXlzRmFsc2UoKSkKICAgICBFWFBFQ1Rf
VEhST1coVGhyb3dOb3RoaW5nKCksIGJvb2wpOwpAQCAtNDE0OSw4ICs0MjA4LDE5IEBAIFRFU1Qo
QXNzZXJ0aW9uU3ludGF4VGVzdCwgRXhjZXB0aW9uQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2luZ2xl
U3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICA7ICAvLyBOT0xJTlQKIH0KKyNpZmRlZiBfX0dOVUNf
XworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorCiAjZW5kaWYgIC8vIEdURVNU
X0hBU19FWENFUFRJT05TCiAKKy8vIFRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRpb25hbGx5IHRl
c3RzIGEgc3Vib3B0aW1hbCBzeW50YXguCisjaWZkZWYgX19HTlVDX18KKyNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaAorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RhbmdsaW5n
LWVsc2UiCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW1wdHktYm9keSIKKyNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdwcmFnbWFzIgorI2VuZGlmCiBURVNUKEFz
c2VydGlvblN5bnRheFRlc3QsIE5vRmF0YWxGYWlsdXJlQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2lu
Z2xlU3RhdGVtZW50KSB7CiAgIGlmIChBbHdheXNGYWxzZSgpKQogICAgIEVYUEVDVF9OT19GQVRB
TF9GQUlMVVJFKEZBSUwoKSkgPDwgIlRoaXMgc2hvdWxkIG5ldmVyIGJlIGV4ZWN1dGVkLiAiCkBA
IC00MTczLDYgKzQyNDMsOSBAQCBURVNUKEFzc2VydGlvblN5bnRheFRlc3QsIE5vRmF0YWxGYWls
dXJlQXNzZXJ0aW9uc0JlaGF2ZXNMaWtlU2luZ2xlU3RhdGVtZW50KSB7CiAgIGVsc2UKICAgICBB
U1NFUlRfTk9fRkFUQUxfRkFJTFVSRShTVUNDRUVEKCkpOwogfQorI2lmZGVmIF9fR05VQ19fCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAKIC8vIFRlc3RzIHRoYXQgdGhlIGFz
c2VydGlvbiBtYWNyb3Mgd29yayB3ZWxsIHdpdGggc3dpdGNoIHN0YXRlbWVudHMuCiBURVNUKEFz
c2VydGlvblN5bnRheFRlc3QsIFdvcmtzV2l0aFN3aXRjaCkgewpAQCAtNDMwMiwxMCArNDM3NSw4
IEBAIFRFU1QoQXNzZXJ0aW9uV2l0aE1lc3NhZ2VUZXN0LCBBU1NFUlRfU1RSKSB7CiBURVNUKEFz
c2VydGlvbldpdGhNZXNzYWdlVGVzdCwgQVNTRVJUX0ZMT0FUSU5HKSB7CiAgIEFTU0VSVF9GTE9B
VF9FUSgxLCAxKSA8PCAiVGhpcyBzaG91bGQgc3VjY2VlZC4iOwogICBBU1NFUlRfRE9VQkxFX0VR
KDEsIDEpIDw8ICJUaGlzIHNob3VsZCBzdWNjZWVkLiI7Ci0gIEVYUEVDVF9GQVRBTF9GQUlMVVJF
KEFTU0VSVF9ORUFSKDEsMS4yLCAwLjEpIDw8ICJFeHBlY3QgZmFpbHVyZS4iLCAgLy8gTk9MSU5U
CisgIEVYUEVDVF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9ORUFSKDEsIDEuMiwgMC4xKSA8PCAiRXhw
ZWN0IGZhaWx1cmUuIiwgIC8vIE5PTElOVAogICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0
IGZhaWx1cmUuIik7Ci0gIC8vIFRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIGdjYyAyLjk1LjAsIHRo
ZXJlIGlzIGludGVudGlvbmFsbHkgbm8KLSAgLy8gc3BhY2UgYWZ0ZXIgdGhlIGZpcnN0IGNvbW1h
IGluIHRoZSBwcmV2aW91cyBzdGF0ZW1lbnQuCiB9CiAKIC8vIFRlc3RzIHVzaW5nIEFTU0VSVF9G
QUxTRSB3aXRoIGEgc3RyZWFtZWQgbWVzc2FnZS4KQEAgLTQzMzIsMTAgKzQ0MDMsMTIgQEAgVEVT
VChBc3NlcnRpb25XaXRoTWVzc2FnZVRlc3QsIFNVQ0NFRUQpIHsKIFRFU1QoQXNzZXJ0aW9uV2l0
aE1lc3NhZ2VUZXN0LCBBU1NFUlRfVFJVRSkgewogICBBU1NFUlRfVFJVRSh0cnVlKSA8PCAiVGhp
cyBzaG91bGQgc3VjY2VlZC4iOwogICBBU1NFUlRfVFJVRSh0cnVlKSA8PCB0cnVlOwotICBFWFBF
Q1RfRkFUQUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBBU1NFUlRfVFJVRShmYWxzZSkgPDwg
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhciAqPihOVUxMKQotICAgICAgICAgICAgICAgICAgICAgICA8
PCBzdGF0aWNfY2FzdDxjaGFyICo+KE5VTEwpOwotICB9LCAiKG51bGwpKG51bGwpIik7CisgIEVY
UEVDVF9GQVRBTF9GQUlMVVJFKAorICAgICAgeyAgLy8gTk9MSU5UCisgICAgICAgIEFTU0VSVF9U
UlVFKGZhbHNlKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0cikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKTsKKyAgICAg
IH0sCisgICAgICAiKG51bGwpKG51bGwpIik7CiB9CiAKICNpZiBHVEVTVF9PU19XSU5ET1dTCkBA
IC00NDQwLDIzICs0NTEzLDE2IEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX0VRX0RvdWJsZSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAiNS4xIik7CiB9CiAKLSNpZiBHVEVTVF9DQU5f
Q09NUEFSRV9OVUxMCiAvLyBUZXN0cyBFWFBFQ1RfRVEoTlVMTCwgcG9pbnRlcikuCiBURVNUKEV4
cGVjdFRlc3QsIEVYUEVDVF9FUV9OVUxMKSB7CiAgIC8vIEEgc3VjY2Vzcy4KLSAgY29uc3QgY2hh
ciogcCA9IE5VTEw7Ci0gIC8vIFNvbWUgb2xkZXIgR0NDIHZlcnNpb25zIG1heSBpc3N1ZSBhIHNw
dXJpb3VzIHdhcm5pbmcgaW4gdGhpcyBvciB0aGUgbmV4dAotICAvLyBhc3NlcnRpb24gc3RhdGVt
ZW50LiBUaGlzIHdhcm5pbmcgc2hvdWxkIG5vdCBiZSBzdXBwcmVzc2VkIHdpdGgKLSAgLy8gc3Rh
dGljX2Nhc3Qgc2luY2UgdGhlIHRlc3QgdmVyaWZpZXMgdGhlIGFiaWxpdHkgdG8gdXNlIGJhcmUg
TlVMTCBhcyB0aGUKLSAgLy8gZXhwZWN0ZWQgcGFyYW1ldGVyIHRvIHRoZSBtYWNyby4KLSAgRVhQ
RUNUX0VRKE5VTEwsIHApOworICBjb25zdCBjaGFyKiBwID0gbnVsbHB0cjsKKyAgRVhQRUNUX0VR
KG51bGxwdHIsIHApOwogCiAgIC8vIEEgZmFpbHVyZS4KICAgaW50IG4gPSAwOwotICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEoTlVMTCwgJm4pLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAiICAmblxuICAgIFdoaWNoIGlzOiIpOworICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVS
RShFWFBFQ1RfRVEobnVsbHB0ciwgJm4pLCAiICAmblxuICAgIFdoaWNoIGlzOiIpOwogfQotI2Vu
ZGlmICAvLyBHVEVTVF9DQU5fQ09NUEFSRV9OVUxMCiAKIC8vIFRlc3RzIEVYUEVDVF9FUSgwLCBu
b25fcG9pbnRlcikuICBTaW5jZSB0aGUgbGl0ZXJhbCAwIGNhbiBiZQogLy8gdHJlYXRlZCBhcyBh
IG51bGwgcG9pbnRlciBieSB0aGUgY29tcGlsZXIsIHdlIG5lZWQgdG8gbWFrZSBzdXJlCkBAIC00
NDgyLDcgKzQ1NDgsNyBAQCBURVNUKEV4cGVjdFRlc3QsIEVYUEVDVF9ORSkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYWN0dWFsOiAnYScgKDk3LCAweDYxKSB2cyAnYScgKDk3LCAweDYx
KSIpOwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfTkUoMiwgMiksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIyIik7Ci0gIGNoYXIqIGNvbnN0IHAwID0gTlVMTDsKKyAgY2hh
ciogY29uc3QgcDAgPSBudWxscHRyOwogICBFWFBFQ1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1Rf
TkUocDAsIHAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInAwIik7CiAgIC8vIE9ubHkg
d2F5IHRvIGdldCB0aGUgTm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0aGUgY2FzdApAQCAtNDU0
MSw2ICs0NjA3LDEyIEBAIFRFU1QoRXhwZWN0VGVzdCwgRVhQRUNUX1RIUk9XKSB7CiAgIEVYUEVD
VF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9USFJPVyhUaHJvd0FuSW50ZWdlcigpLCBib29sKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkOiBUaHJvd0FuSW50ZWdlcigpIHRo
cm93cyBhbiBleGNlcHRpb24gb2YgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSBi
b29sLlxuICBBY3R1YWw6IGl0IHRocm93cyBhIGRpZmZlcmVudCB0eXBlLiIpOworICBFWFBFQ1Rf
Tk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfVEhST1coVGhyb3dSdW50aW1lRXJyb3IoIkEgZGVzY3Jp
cHRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bG9n
aWNfZXJyb3IpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQ6IFRocm93UnVu
dGltZUVycm9yKFwiQSBkZXNjcmlwdGlvblwiKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgc3RkOjpsb2dpY19lcnJvci5cbiAgIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsOiBpdCB0aHJvd3MgIiBFUlJPUl9ERVNDICIg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBkZXNjcmlwdGlvbiBcIkEgZGVzY3Jp
cHRpb25cIi4iKTsKICAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoCiAgICAgICBFWFBFQ1RfVEhS
T1coVGhyb3dOb3RoaW5nKCksIGJvb2wpLAogICAgICAgIkV4cGVjdGVkOiBUaHJvd05vdGhpbmco
KSB0aHJvd3MgYW4gZXhjZXB0aW9uIG9mIHR5cGUgYm9vbC5cbiIKQEAgLTQ1NTMsNiArNDYyNSwx
MSBAQCBURVNUKEV4cGVjdFRlc3QsIEVYUEVDVF9OT19USFJPVykgewogICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRShFWFBFQ1RfTk9fVEhST1coVGhyb3dBbkludGVnZXIoKSksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJFeHBlY3RlZDogVGhyb3dBbkludGVnZXIoKSBkb2Vzbid0IHRocm93
IGFuICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbi5cbiAgQWN0dWFsOiBp
dCB0aHJvd3MuIik7CisgIEVYUEVDVF9OT05GQVRBTF9GQUlMVVJFKEVYUEVDVF9OT19USFJPVyhU
aHJvd1J1bnRpbWVFcnJvcigiQSBkZXNjcmlwdGlvbiIpKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkV4cGVjdGVkOiBUaHJvd1J1bnRpbWVFcnJvcihcIkEgZGVzY3JpcHRpb25cIikgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uXG4g
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbDogaXQgdGhyb3dzICIgRVJST1Jf
REVTQyAiICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGggZGVzY3JpcHRpb24gXCJB
IGRlc2NyaXB0aW9uXCIuIik7CiB9CiAKIC8vIFRlc3RzIEVYUEVDVF9BTllfVEhST1cuCkBAIC00
NTkwLDcgKzQ2NjcsNyBAQCBURVNUKFN0cmVhbWFibGVUb1N0cmluZ1Rlc3QsIFBvaW50ZXIpIHsK
IAogLy8gVGVzdHMgdXNpbmcgU3RyZWFtYWJsZVRvU3RyaW5nKCkgb24gYSBOVUxMIG5vbi1jaGFy
IHBvaW50ZXIuCiBURVNUKFN0cmVhbWFibGVUb1N0cmluZ1Rlc3QsIE51bGxQb2ludGVyKSB7Ci0g
IGludCogcCA9IE5VTEw7CisgIGludCogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9TVFJFUSgiKG51
bGwpIiwgU3RyZWFtYWJsZVRvU3RyaW5nKHApLmNfc3RyKCkpOwogfQogCkBAIC00NjAxLDcgKzQ2
NzgsNyBAQCBURVNUKFN0cmVhbWFibGVUb1N0cmluZ1Rlc3QsIENTdHJpbmcpIHsKIAogLy8gVGVz
dHMgdXNpbmcgU3RyZWFtYWJsZVRvU3RyaW5nKCkgb24gYSBOVUxMIEMgc3RyaW5nLgogVEVTVChT
dHJlYW1hYmxlVG9TdHJpbmdUZXN0LCBOdWxsQ1N0cmluZykgewotICBjaGFyKiBwID0gTlVMTDsK
KyAgY2hhciogcCA9IG51bGxwdHI7CiAgIEVYUEVDVF9TVFJFUSgiKG51bGwpIiwgU3RyZWFtYWJs
ZVRvU3RyaW5nKHApLmNfc3RyKCkpOwogfQogCkBAIC00NjQ2LDggKzQ3MjMsNyBAQCBURVNUKFN0
cmVhbWFibGVUZXN0LCBpbnQpIHsKIC8vIGltcGxlbWVudGVkIGEgd29ya2Fyb3VuZCAoc3Vic3Rp
dHV0aW5nICIobnVsbCkiIGZvciBOVUxMKS4gIFRoaXMKIC8vIHRlc3RzIHdoZXRoZXIgdGhlIHdv
cmthcm91bmQgd29ya3MuCiBURVNUKFN0cmVhbWFibGVUZXN0LCBOdWxsQ2hhclB0cikgewotICBF
WFBFQ1RfRkFUQUxfRkFJTFVSRShGQUlMKCkgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KE5V
TEwpLAotICAgICAgICAgICAgICAgICAgICAgICAiKG51bGwpIik7CisgIEVYUEVDVF9GQVRBTF9G
QUlMVVJFKEZBSUwoKSA8PCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0ciksICIobnVs
bCkiKTsKIH0KIAogLy8gVGVzdHMgdGhhdCBiYXNpYyBJTyBtYW5pcHVsYXRvcnMgKGVuZGwsIGVu
ZHMsIGFuZCBmbHVzaCkgY2FuIGJlCkBAIC00Njk4LDYgKzQ3NzQsMTkgQEAgVEVTVChNYWNyb1Rl
c3QsIEZBSUwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkludGVudGlvbmFsIGZhaWx1cmUu
Iik7CiB9CiAKKy8vIFRlc3RzIEdURVNUX0ZBSUxfQVQuCitURVNUKE1hY3JvVGVzdCwgR1RFU1Rf
RkFJTF9BVCkgeworICAvLyBWZXJpZmllcyB0aGF0IEdURVNUX0ZBSUxfQVQgZG9lcyBnZW5lcmF0
ZSBhIGZhdGFsIGZhaWx1cmUgYW5kCisgIC8vIHRoZSBmYWlsdXJlIG1lc3NhZ2UgY29udGFpbnMg
dGhlIHVzZXItc3RyZWFtZWQgcGFydC4KKyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoR1RFU1RfRkFJ
TF9BVCgiZm9vLmNjIiwgNDIpIDw8ICJXcm9uZyEiLCAiV3JvbmchIik7CisKKyAgLy8gVmVyaWZp
ZXMgdGhhdCB0aGUgdXNlci1zdHJlYW1lZCBwYXJ0IGlzIG9wdGlvbmFsLgorICBFWFBFQ1RfRkFU
QUxfRkFJTFVSRShHVEVTVF9GQUlMX0FUKCJmb28uY2MiLCA0MiksICJGYWlsZWQiKTsKKworICAv
LyBTZWUgdGhlIEFERF9GQUlMX0FUIHRlc3QgYWJvdmUgdG8gc2VlIGhvdyB3ZSB0ZXN0IHRoYXQg
dGhlIGZhaWx1cmUgbWVzc2FnZQorICAvLyBjb250YWlucyB0aGUgcmlnaHQgZmlsZW5hbWUgYW5k
IGxpbmUgbnVtYmVyIC0tIHRoZSBzYW1lIGFwcGxpZXMgaGVyZS4KK30KKwogLy8gVGVzdHMgU1VD
Q0VFRAogVEVTVChNYWNyb1Rlc3QsIFNVQ0NFRUQpIHsKICAgU1VDQ0VFRCgpOwpAQCAtNDgzMiw3
NSArNDkyMSw5IEBAIFRFU1QoRXFBc3NlcnRpb25UZXN0LCBTdGRXaWRlU3RyaW5nKSB7CiAKICNl
bmRpZiAgLy8gR1RFU1RfSEFTX1NURF9XU1RSSU5HCiAKLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1NU
UklORwotLy8gVGVzdHMgdXNpbmcgOjpzdHJpbmcgdmFsdWVzIGluIHtFWFBFQ1R8QVNTRVJUfV9F
US4KLVRFU1QoRXFBc3NlcnRpb25UZXN0LCBHbG9iYWxTdHJpbmcpIHsKLSAgLy8gQ29tcGFyZXMg
YSBjb25zdCBjaGFyKiB0byBhIDo6c3RyaW5nIHRoYXQgaGFzIGlkZW50aWNhbCBjb250ZW50Lgot
ICBFWFBFQ1RfRVEoIlRlc3QiLCA6OnN0cmluZygiVGVzdCIpKTsKLQotICAvLyBDb21wYXJlcyB0
d28gaWRlbnRpY2FsIDo6c3RyaW5ncy4KLSAgY29uc3QgOjpzdHJpbmcgc3RyMSgiQSAqIGluIHRo
ZSBtaWRkbGUiKTsKLSAgY29uc3QgOjpzdHJpbmcgc3RyMihzdHIxKTsKLSAgQVNTRVJUX0VRKHN0
cjEsIHN0cjIpOwotCi0gIC8vIENvbXBhcmVzIGEgOjpzdHJpbmcgdG8gYSBjb25zdCBjaGFyKiB0
aGF0IGhhcyBkaWZmZXJlbnQgY29udGVudC4KLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQ
RUNUX0VRKDo6c3RyaW5nKCJUZXN0IiksICJ0ZXN0IiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0ZXN0Iik7Ci0KLSAgLy8gQ29tcGFyZXMgdHdvIDo6c3RyaW5ncyB0aGF0IGhhdmUgZGlm
ZmVyZW50IGNvbnRlbnRzLCBvbmUgb2Ygd2hpY2gKLSAgLy8gaGF2aW5nIGEgTlVMIGNoYXJhY3Rl
ciBpbiB0aGUgbWlkZGxlLgotICA6OnN0cmluZyBzdHIzKHN0cjEpOwotICBzdHIzLmF0KDIpID0g
J1wwJzsKLSAgRVhQRUNUX05PTkZBVEFMX0ZBSUxVUkUoRVhQRUNUX0VRKHN0cjEsIHN0cjMpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyMyIpOwotCi0gIC8vIENvbXBhcmVzIGEgOjpz
dHJpbmcgdG8gYSBjaGFyKiB0aGF0IGhhcyBkaWZmZXJlbnQgY29udGVudC4KLSAgRVhQRUNUX0ZB
VEFMX0ZBSUxVUkUoeyAgLy8gTk9MSU5UCi0gICAgQVNTRVJUX0VRKDo6c3RyaW5nKCJiYXIiKSwg
Y29uc3RfY2FzdDxjaGFyKj4oImZvbyIpKTsKLSAgfSwgIiIpOwotfQotCi0jZW5kaWYgIC8vIEdU
RVNUX0hBU19HTE9CQUxfU1RSSU5HCi0KLSNpZiBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJTkcKLQot
Ly8gVGVzdHMgdXNpbmcgOjp3c3RyaW5nIHZhbHVlcyBpbiB7RVhQRUNUfEFTU0VSVH1fRVEuCi1U
RVNUKEVxQXNzZXJ0aW9uVGVzdCwgR2xvYmFsV2lkZVN0cmluZykgewotICAvLyBDb21wYXJlcyB0
d28gaWRlbnRpY2FsIDo6d3N0cmluZ3MuCi0gIHN0YXRpYyBjb25zdCA6OndzdHJpbmcgd3N0cjEo
TCJBICogaW4gdGhlIG1pZGRsZSIpOwotICBzdGF0aWMgY29uc3QgOjp3c3RyaW5nIHdzdHIyKHdz
dHIxKTsKLSAgRVhQRUNUX0VRKHdzdHIxLCB3c3RyMik7Ci0KLSAgLy8gQ29tcGFyZXMgYSBjb25z
dCB3Y2hhcl90KiB0byBhIDo6d3N0cmluZyB0aGF0IGhhcyBpZGVudGljYWwgY29udGVudC4KLSAg
Y29uc3Qgd2NoYXJfdCBrVGVzdFg4MTE5W10gPSB7ICdUJywgJ2UnLCAncycsICd0JywgMHg4MTE5
LCAnXDAnIH07Ci0gIEFTU0VSVF9FUShrVGVzdFg4MTE5LCA6OndzdHJpbmcoa1Rlc3RYODExOSkp
OwotCi0gIC8vIENvbXBhcmVzIGEgY29uc3Qgd2NoYXJfdCogdG8gYSA6OndzdHJpbmcgdGhhdCBo
YXMgZGlmZmVyZW50Ci0gIC8vIGNvbnRlbnQuCi0gIGNvbnN0IHdjaGFyX3Qga1Rlc3RYODEyMFtd
ID0geyAnVCcsICdlJywgJ3MnLCAndCcsIDB4ODEyMCwgJ1wwJyB9OwotICBFWFBFQ1RfTk9ORkFU
QUxfRkFJTFVSRSh7ICAvLyBOT0xJTlQKLSAgICBFWFBFQ1RfRVEoa1Rlc3RYODEyMCwgOjp3c3Ry
aW5nKGtUZXN0WDgxMTkpKTsKLSAgfSwgIlRlc3RcXHg4MTE5Iik7Ci0KLSAgLy8gQ29tcGFyZXMg
YSB3Y2hhcl90KiB0byBhIDo6d3N0cmluZyB0aGF0IGhhcyBkaWZmZXJlbnQgY29udGVudC4KLSAg
d2NoYXJfdCogY29uc3QgcDEgPSBjb25zdF9jYXN0PHdjaGFyX3QqPihMImZvbyIpOwotICBFWFBF
Q1RfTk9ORkFUQUxfRkFJTFVSRShFWFBFQ1RfRVEocDEsIDo6d3N0cmluZyhMImJhciIpKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgImJhciIpOwotCi0gIC8vIENvbXBhcmVzIHR3byA6Ondz
dHJpbmdzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgY29udGVudHMsIG9uZSBvZiB3aGljaAotICAvLyBo
YXZpbmcgYSBOVUwgY2hhcmFjdGVyIGluIHRoZSBtaWRkbGUuCi0gIHN0YXRpYyA6OndzdHJpbmcg
d3N0cjM7Ci0gIHdzdHIzID0gd3N0cjE7Ci0gIHdzdHIzLmF0KDIpID0gTCdcMCc7Ci0gIEVYUEVD
VF9GQVRBTF9GQUlMVVJFKEFTU0VSVF9FUSh3c3RyMSwgd3N0cjMpLAotICAgICAgICAgICAgICAg
ICAgICAgICAid3N0cjMiKTsKLX0KLQotI2VuZGlmICAvLyBHVEVTVF9IQVNfR0xPQkFMX1dTVFJJ
TkcKLQogLy8gVGVzdHMgdXNpbmcgY2hhciBwb2ludGVycyBpbiB7RVhQRUNUfEFTU0VSVH1fRVEu
CiBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgQ2hhclBvaW50ZXIpIHsKLSAgY2hhciogY29uc3QgcDAg
PSBOVUxMOworICBjaGFyKiBjb25zdCBwMCA9IG51bGxwdHI7CiAgIC8vIE9ubHkgd2F5IHRvIGdl
dCB0aGUgTm9raWEgY29tcGlsZXIgdG8gY29tcGlsZSB0aGUgY2FzdAogICAvLyBpcyB0byBoYXZl
IGEgc2VwYXJhdGUgdm9pZCogdmFyaWFibGUgZmlyc3QuIFB1dHRpbmcKICAgLy8gdGhlIHR3byBj
YXN0cyBvbiB0aGUgc2FtZSBsaW5lIGRvZXNuJ3Qgd29yaywgbmVpdGhlciBkb2VzCkBAIC00OTIy
LDcgKzQ5NDUsNyBAQCBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgQ2hhclBvaW50ZXIpIHsKIAogLy8g
VGVzdHMgdXNpbmcgd2NoYXJfdCBwb2ludGVycyBpbiB7RVhQRUNUfEFTU0VSVH1fRVEuCiBURVNU
KEVxQXNzZXJ0aW9uVGVzdCwgV2lkZUNoYXJQb2ludGVyKSB7Ci0gIHdjaGFyX3QqIGNvbnN0IHAw
ID0gTlVMTDsKKyAgd2NoYXJfdCogY29uc3QgcDAgPSBudWxscHRyOwogICAvLyBPbmx5IHdheSB0
byBnZXQgdGhlIE5va2lhIGNvbXBpbGVyIHRvIGNvbXBpbGUgdGhlIGNhc3QKICAgLy8gaXMgdG8g
aGF2ZSBhIHNlcGFyYXRlIHZvaWQqIHZhcmlhYmxlIGZpcnN0LiBQdXR0aW5nCiAgIC8vIHRoZSB0
d28gY2FzdHMgb24gdGhlIHNhbWUgbGluZSBkb2Vzbid0IHdvcmssIG5laXRoZXIgZG9lcwpAQCAt
NDk0Nyw5ICs0OTcwLDggQEAgVEVTVChFcUFzc2VydGlvblRlc3QsIFdpZGVDaGFyUG9pbnRlcikg
ewogCiAvLyBUZXN0cyB1c2luZyBvdGhlciB0eXBlcyBvZiBwb2ludGVycyBpbiB7RVhQRUNUfEFT
U0VSVH1fRVEuCiBURVNUKEVxQXNzZXJ0aW9uVGVzdCwgT3RoZXJQb2ludGVyKSB7Ci0gIEFTU0VS
VF9FUShzdGF0aWNfY2FzdDxjb25zdCBpbnQqPihOVUxMKSwKLSAgICAgICAgICAgIHN0YXRpY19j
YXN0PGNvbnN0IGludCo+KE5VTEwpKTsKLSAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0VR
KHN0YXRpY19jYXN0PGNvbnN0IGludCo+KE5VTEwpLAorICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8
Y29uc3QgaW50Kj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNvbnN0IGludCo+KG51bGxwdHIpKTsK
KyAgRVhQRUNUX0ZBVEFMX0ZBSUxVUkUoQVNTRVJUX0VRKHN0YXRpY19jYXN0PGNvbnN0IGludCo+
KG51bGxwdHIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBpbnQqPigweDEyMzQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgIjB4MTIz
NCIpOwogfQpAQCAtNTA2NSw3ICs1MDg3LDcgQEAgY2xhc3MgVGVzdExpZmVDeWNsZVRlc3QgOiBw
dWJsaWMgVGVzdCB7CiAKICAgLy8gRGVzdHJ1Y3Rvci4gIERlY3JlbWVudHMgdGhlIG51bWJlciBv
ZiB0ZXN0IG9iamVjdHMgdGhhdCB1c2VzIHRoaXMKICAgLy8gZml4dHVyZS4KLSAgflRlc3RMaWZl
Q3ljbGVUZXN0KCkgeyBjb3VudF8tLTsgfQorICB+VGVzdExpZmVDeWNsZVRlc3QoKSBvdmVycmlk
ZSB7IGNvdW50Xy0tOyB9CiAKICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxpdmUgdGVzdCBv
YmplY3RzIHRoYXQgdXNlcyB0aGlzIGZpeHR1cmUuCiAgIGludCBjb3VudCgpIGNvbnN0IHsgcmV0
dXJuIGNvdW50XzsgfQpAQCAtNTE1Niw4ICs1MTc4LDcgQEAgVEVTVChBc3NlcnRpb25SZXN1bHRU
ZXN0LCBDYW5TdHJlYW1Pc3RyZWFtTWFuaXB1bGF0b3JzKSB7CiAgIEVYUEVDVF9TVFJFUSgiRGF0
YVxuXFwwV2lsbCBiZSB2aXNpYmxlIiwgci5tZXNzYWdlKCkpOwogfQogCi0vLyBUaGUgbmV4dCB0
ZXN0IHVzZXMgZXhwbGljaXQgY29udmVyc2lvbiBvcGVyYXRvcnMgLS0gYSBDKysxMSBmZWF0dXJl
LgotI2lmIEdURVNUX0xBTkdfQ1hYMTEKKy8vIFRoZSBuZXh0IHRlc3QgdXNlcyBleHBsaWNpdCBj
b252ZXJzaW9uIG9wZXJhdG9ycwogCiBURVNUKEFzc2VydGlvblJlc3VsdFRlc3QsIENvbnN0cnVj
dGlibGVGcm9tQ29udGV4dHVhbGx5Q29udmVydGlibGVUb0Jvb2wpIHsKICAgc3RydWN0IEV4cGxp
Y2l0bHlDb252ZXJ0aWJsZVRvQm9vbCB7CkBAIC01MTcwLDggKzUxOTEsNiBAQCBURVNUKEFzc2Vy
dGlvblJlc3VsdFRlc3QsIENvbnN0cnVjdGlibGVGcm9tQ29udGV4dHVhbGx5Q29udmVydGlibGVU
b0Jvb2wpIHsKICAgRVhQRUNUX1RSVUUodjIpOwogfQogCi0jZW5kaWYgIC8vIEdURVNUX0xBTkdf
Q1hYMTEKLQogc3RydWN0IENvbnZlcnRpYmxlVG9Bc3NlcnRpb25SZXN1bHQgewogICBvcGVyYXRv
ciBBc3NlcnRpb25SZXN1bHQoKSBjb25zdCB7IHJldHVybiBBc3NlcnRpb25SZXN1bHQodHJ1ZSk7
IH0KIH07CkBAIC01Mjg1LDEyICs1MzA0LDEyIEBAIFRFU1QoTWVzc2FnZVRlc3QsIENhblN0cmVh
bVVzZXJUeXBlSW5Vc2VyTmFtZVNwYWNlV2l0aFN0cmVhbU9wZXJhdG9ySW5HbG9iYWwpIHsKIC8v
IFRlc3RzIHN0cmVhbWluZyBOVUxMIHBvaW50ZXJzIHRvIHRlc3Rpbmc6Ok1lc3NhZ2UuCiBURVNU
KE1lc3NhZ2VUZXN0LCBOdWxsUG9pbnRlcnMpIHsKICAgTWVzc2FnZSBtc2c7Ci0gIGNoYXIqIGNv
bnN0IHAxID0gTlVMTDsKLSAgdW5zaWduZWQgY2hhciogY29uc3QgcDIgPSBOVUxMOwotICBpbnQq
IHAzID0gTlVMTDsKLSAgZG91YmxlKiBwNCA9IE5VTEw7Ci0gIGJvb2wqIHA1ID0gTlVMTDsKLSAg
TWVzc2FnZSogcDYgPSBOVUxMOworICBjaGFyKiBjb25zdCBwMSA9IG51bGxwdHI7CisgIHVuc2ln
bmVkIGNoYXIqIGNvbnN0IHAyID0gbnVsbHB0cjsKKyAgaW50KiBwMyA9IG51bGxwdHI7CisgIGRv
dWJsZSogcDQgPSBudWxscHRyOworICBib29sKiBwNSA9IG51bGxwdHI7CisgIE1lc3NhZ2UqIHA2
ID0gbnVsbHB0cjsKIAogICBtc2cgPDwgcDEgPDwgcDIgPDwgcDMgPDwgcDQgPDwgcDUgPDwgcDY7
CiAgIEFTU0VSVF9TVFJFUSgiKG51bGwpKG51bGwpKG51bGwpKG51bGwpKG51bGwpKG51bGwpIiwK
QEAgLTUzMDAsMTIgKzUzMTksMTIgQEAgVEVTVChNZXNzYWdlVGVzdCwgTnVsbFBvaW50ZXJzKSB7
CiAvLyBUZXN0cyBzdHJlYW1pbmcgd2lkZSBzdHJpbmdzIHRvIHRlc3Rpbmc6Ok1lc3NhZ2UuCiBU
RVNUKE1lc3NhZ2VUZXN0LCBXaWRlU3RyaW5ncykgewogICAvLyBTdHJlYW1zIGEgTlVMTCBvZiB0
eXBlIGNvbnN0IHdjaGFyX3QqLgotICBjb25zdCB3Y2hhcl90KiBjb25zdF93c3RyID0gTlVMTDsK
KyAgY29uc3Qgd2NoYXJfdCogY29uc3Rfd3N0ciA9IG51bGxwdHI7CiAgIEVYUEVDVF9TVFJFUSgi
KG51bGwpIiwKICAgICAgICAgICAgICAgIChNZXNzYWdlKCkgPDwgY29uc3Rfd3N0cikuR2V0U3Ry
aW5nKCkuY19zdHIoKSk7CiAKICAgLy8gU3RyZWFtcyBhIE5VTEwgb2YgdHlwZSB3Y2hhcl90Ki4K
LSAgd2NoYXJfdCogd3N0ciA9IE5VTEw7CisgIHdjaGFyX3QqIHdzdHIgPSBudWxscHRyOwogICBF
WFBFQ1RfU1RSRVEoIihudWxsKSIsCiAgICAgICAgICAgICAgICAoTWVzc2FnZSgpIDw8IHdzdHIp
LkdldFN0cmluZygpLmNfc3RyKCkpOwogCkBAIC01MzI5LDE1ICs1MzQ4LDE1IEBAIG5hbWVzcGFj
ZSB0ZXN0aW5nIHsKIGNsYXNzIFRlc3RJbmZvVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0
ZWQ6CiAgIHN0YXRpYyBjb25zdCBUZXN0SW5mbyogR2V0VGVzdEluZm8oY29uc3QgY2hhciogdGVz
dF9uYW1lKSB7Ci0gICAgY29uc3QgVGVzdENhc2UqIGNvbnN0IHRlc3RfY2FzZSA9IEdldFVuaXRU
ZXN0SW1wbCgpLT4KLSAgICAgICAgR2V0VGVzdENhc2UoIlRlc3RJbmZvVGVzdCIsICIiLCBOVUxM
LCBOVUxMKTsKKyAgICBjb25zdCBUZXN0U3VpdGUqIGNvbnN0IHRlc3Rfc3VpdGUgPQorICAgICAg
ICBHZXRVbml0VGVzdEltcGwoKS0+R2V0VGVzdFN1aXRlKCJUZXN0SW5mb1Rlc3QiLCAiIiwgbnVs
bHB0ciwgbnVsbHB0cik7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RfY2FzZS0+dG90
YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKLSAgICAgIGNvbnN0IFRlc3RJbmZvKiBjb25zdCB0ZXN0
X2luZm8gPSB0ZXN0X2Nhc2UtPkdldFRlc3RJbmZvKGkpOworICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgdGVzdF9zdWl0ZS0+dG90YWxfdGVzdF9jb3VudCgpOyArK2kpIHsKKyAgICAgIGNvbnN0IFRl
c3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPSB0ZXN0X3N1aXRlLT5HZXRUZXN0SW5mbyhpKTsKICAg
ICAgIGlmIChzdHJjbXAodGVzdF9uYW1lLCB0ZXN0X2luZm8tPm5hbWUoKSkgPT0gMCkKICAgICAg
ICAgcmV0dXJuIHRlc3RfaW5mbzsKICAgICB9Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJu
IG51bGxwdHI7CiAgIH0KIAogICBzdGF0aWMgY29uc3QgVGVzdFJlc3VsdCogR2V0VGVzdFJlc3Vs
dCgKQEAgLTUzNTAsNyArNTM2OSw3IEBAIGNsYXNzIFRlc3RJbmZvVGVzdCA6IHB1YmxpYyBUZXN0
IHsKIFRFU1RfRihUZXN0SW5mb1Rlc3QsIE5hbWVzKSB7CiAgIGNvbnN0IFRlc3RJbmZvKiBjb25z
dCB0ZXN0X2luZm8gPSBHZXRUZXN0SW5mbygiTmFtZXMiKTsKIAotICBBU1NFUlRfU1RSRVEoIlRl
c3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSk7CisgIEFTU0VSVF9TVFJF
USgiVGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0X3N1aXRlX25hbWUoKSk7CiAgIEFTU0VS
VF9TVFJFUSgiTmFtZXMiLCB0ZXN0X2luZm8tPm5hbWUoKSk7CiB9CiAKQEAgLTUzOTAsMTMgKzU0
MDksMTMgQEAgVEVTVF9QKENvZGVMb2NhdGlvbkZvclRFU1RQLCBWZXJpZnkpIHsKICAgVkVSSUZZ
X0NPREVfTE9DQVRJT047CiB9CiAKLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKCwgQ29kZUxvY2F0
aW9uRm9yVEVTVFAsIFZhbHVlcygwKSk7CitJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoLCBDb2Rl
TG9jYXRpb25Gb3JURVNUUCwgVmFsdWVzKDApKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBj
bGFzcyBDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QgOiBwdWJsaWMgVGVzdCB7CiB9OwogCi1UWVBF
RF9URVNUX0NBU0UoQ29kZUxvY2F0aW9uRm9yVFlQRURURVNULCBpbnQpOworVFlQRURfVEVTVF9T
VUlURShDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1QsIGludCk7CiAKIFRZUEVEX1RFU1QoQ29kZUxv
Y2F0aW9uRm9yVFlQRURURVNULCBWZXJpZnkpIHsKICAgVkVSSUZZX0NPREVfTE9DQVRJT047CkBA
IC01NDA2LDIwICs1NDI1LDIxIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgQ29kZUxv
Y2F0aW9uRm9yVFlQRURURVNUUCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKLVRZUEVEX1RFU1RfQ0FT
RV9QKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFApOworVFlQRURfVEVTVF9TVUlURV9QKENvZGVM
b2NhdGlvbkZvclRZUEVEVEVTVFApOwogCiBUWVBFRF9URVNUX1AoQ29kZUxvY2F0aW9uRm9yVFlQ
RURURVNUUCwgVmVyaWZ5KSB7CiAgIFZFUklGWV9DT0RFX0xPQ0FUSU9OOwogfQogCi1SRUdJU1RF
Ul9UWVBFRF9URVNUX0NBU0VfUChDb2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBWZXJpZnkpOwor
UkVHSVNURVJfVFlQRURfVEVTVF9TVUlURV9QKENvZGVMb2NhdGlvbkZvclRZUEVEVEVTVFAsIFZl
cmlmeSk7CiAKLUlOU1RBTlRJQVRFX1RZUEVEX1RFU1RfQ0FTRV9QKE15LCBDb2RlTG9jYXRpb25G
b3JUWVBFRFRFU1RQLCBpbnQpOworSU5TVEFOVElBVEVfVFlQRURfVEVTVF9TVUlURV9QKE15LCBD
b2RlTG9jYXRpb25Gb3JUWVBFRFRFU1RQLCBpbnQpOwogCiAjdW5kZWYgVkVSSUZZX0NPREVfTE9D
QVRJT04KIAogLy8gVGVzdHMgc2V0dGluZyB1cCBhbmQgdGVhcmluZyBkb3duIGEgdGVzdCBjYXNl
LgotCisvLyBMZWdhY3kgQVBJIGlzIGRlcHJlY2F0ZWQgYnV0IHN0aWxsIGF2YWlsYWJsZQorI2lm
bmRlZiBHVEVTVF9SRU1PVkVfTEVHQUNZX1RFU1RfQ0FTRUFQSV8KIGNsYXNzIFNldFVwVGVzdENh
c2VUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoKICAgLy8gVGhpcyB3aWxsIGJlIGNh
bGxlZCBvbmNlIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBpbiB0aGlzIHRlc3QgY2FzZQpAQCAtNTQ1
MSwxMSArNTQ3MSwxMSBAQCBjbGFzcyBTZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsK
ICAgICBFWFBFQ1RfRVEoMCwgY291bnRlcl8pOwogCiAgICAgLy8gQ2xlYW5zIHVwIHRoZSBzaGFy
ZWQgcmVzb3VyY2UuCi0gICAgc2hhcmVkX3Jlc291cmNlXyA9IE5VTEw7CisgICAgc2hhcmVkX3Jl
c291cmNlXyA9IG51bGxwdHI7CiAgIH0KIAogICAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9y
ZSBlYWNoIHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UuCi0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsK
KyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAgICAvLyBTZXRVcFRlc3RDYXNlKCkgc2hvdWxk
IGJlIGNhbGxlZCBvbmx5IG9uY2UsIHNvIGNvdW50ZXJfIHNob3VsZAogICAgIC8vIGFsd2F5cyBi
ZSAxLgogICAgIEVYUEVDVF9FUSgxLCBjb3VudGVyXyk7CkBAIC01NDY5LDM4ICs1NDg5LDEwMSBA
QCBjbGFzcyBTZXRVcFRlc3RDYXNlVGVzdCA6IHB1YmxpYyBUZXN0IHsKIH07CiAKIGludCBTZXRV
cFRlc3RDYXNlVGVzdDo6Y291bnRlcl8gPSAwOwotY29uc3QgY2hhciogU2V0VXBUZXN0Q2FzZVRl
c3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBOVUxMOworY29uc3QgY2hhciogU2V0VXBUZXN0Q2FzZVRl
c3Q6OnNoYXJlZF9yZXNvdXJjZV8gPSBudWxscHRyOwogCiAvLyBBIHRlc3QgdGhhdCB1c2VzIHRo
ZSBzaGFyZWQgcmVzb3VyY2UuCi1URVNUX0YoU2V0VXBUZXN0Q2FzZVRlc3QsIFRlc3QxKSB7Ci0g
IEVYUEVDVF9TVFJORShOVUxMLCBzaGFyZWRfcmVzb3VyY2VfKTsKLX0KK1RFU1RfRihTZXRVcFRl
c3RDYXNlVGVzdCwgVGVzdDEpIHsgRVhQRUNUX1NUUk5FKG51bGxwdHIsIHNoYXJlZF9yZXNvdXJj
ZV8pOyB9CiAKIC8vIEFub3RoZXIgdGVzdCB0aGF0IHVzZXMgdGhlIHNoYXJlZCByZXNvdXJjZS4K
IFRFU1RfRihTZXRVcFRlc3RDYXNlVGVzdCwgVGVzdDIpIHsKICAgRVhQRUNUX1NUUkVRKCIxMjMi
LCBzaGFyZWRfcmVzb3VyY2VfKTsKIH0KKyNlbmRpZiAgLy8gIEdURVNUX1JFTU9WRV9MRUdBQ1lf
VEVTVF9DQVNFQVBJXwogCisvLyBUZXN0cyBTZXR1cFRlc3RTdWl0ZS9UZWFyRG93biBUZXN0U3Vp
dGUKK2NsYXNzIFNldFVwVGVzdFN1aXRlVGVzdCA6IHB1YmxpYyBUZXN0IHsKKyBwcm90ZWN0ZWQ6
CisgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgb25jZSBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgaW4g
dGhpcyB0ZXN0IGNhc2UKKyAgLy8gaXMgcnVuLgorICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RTdWl0
ZSgpIHsKKyAgICBwcmludGYoIlNldHRpbmcgdXAgdGhlIHRlc3Qgc3VpdGUgLiAuIC5cbiIpOwor
CisgICAgLy8gSW5pdGlhbGl6ZXMgc29tZSBzaGFyZWQgcmVzb3VyY2UuICBJbiB0aGlzIHNpbXBs
ZSBleGFtcGxlLCB3ZQorICAgIC8vIGp1c3QgY3JlYXRlIGEgQyBzdHJpbmcuICBNb3JlIGNvbXBs
ZXggc3R1ZmYgY2FuIGJlIGRvbmUgaWYKKyAgICAvLyBkZXNpcmVkLgorICAgIHNoYXJlZF9yZXNv
dXJjZV8gPSAiMTIzIjsKKworICAgIC8vIEluY3JlbWVudHMgdGhlIG51bWJlciBvZiB0ZXN0IGNh
c2VzIHRoYXQgaGF2ZSBiZWVuIHNldCB1cC4KKyAgICBjb3VudGVyXysrOworCisgICAgLy8gU2V0
VXBUZXN0U3VpdGUoKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZS4KKyAgICBFWFBFQ1RfRVEo
MSwgY291bnRlcl8pOworICB9CisKKyAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBvbmNlIGFmdGVy
IHRoZSBsYXN0IHRlc3QgaW4gdGhpcyB0ZXN0IGNhc2UgaXMKKyAgLy8gcnVuLgorICBzdGF0aWMg
dm9pZCBUZWFyRG93blRlc3RTdWl0ZSgpIHsKKyAgICBwcmludGYoIlRlYXJpbmcgZG93biB0aGUg
dGVzdCBzdWl0ZSAuIC4gLlxuIik7CisKKyAgICAvLyBEZWNyZW1lbnRzIHRoZSBudW1iZXIgb2Yg
dGVzdCBzdWl0ZXMgdGhhdCBoYXZlIGJlZW4gc2V0IHVwLgorICAgIGNvdW50ZXJfLS07CisKKyAg
ICAvLyBUZWFyRG93blRlc3RTdWl0ZSgpIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLgorICAg
IEVYUEVDVF9FUSgwLCBjb3VudGVyXyk7CisKKyAgICAvLyBDbGVhbnMgdXAgdGhlIHNoYXJlZCBy
ZXNvdXJjZS4KKyAgICBzaGFyZWRfcmVzb3VyY2VfID0gbnVsbHB0cjsKKyAgfQorCisgIC8vIFRo
aXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGVhY2ggdGVzdCBpbiB0aGlzIHRlc3QgY2FzZS4KKyAg
dm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAvLyBTZXRVcFRlc3RTdWl0ZSgpIHNob3VsZCBi
ZSBjYWxsZWQgb25seSBvbmNlLCBzbyBjb3VudGVyXyBzaG91bGQKKyAgICAvLyBhbHdheXMgYmUg
MS4KKyAgICBFWFBFQ1RfRVEoMSwgY291bnRlcl8pOworICB9CisKKyAgLy8gTnVtYmVyIG9mIHRl
c3Qgc3VpdGVzIHRoYXQgaGF2ZSBiZWVuIHNldCB1cC4KKyAgc3RhdGljIGludCBjb3VudGVyXzsK
KworICAvLyBTb21lIHJlc291cmNlIHRvIGJlIHNoYXJlZCBieSBhbGwgdGVzdHMgaW4gdGhpcyB0
ZXN0IGNhc2UuCisgIHN0YXRpYyBjb25zdCBjaGFyKiBzaGFyZWRfcmVzb3VyY2VfOworfTsKKwor
aW50IFNldFVwVGVzdFN1aXRlVGVzdDo6Y291bnRlcl8gPSAwOworY29uc3QgY2hhciogU2V0VXBU
ZXN0U3VpdGVUZXN0OjpzaGFyZWRfcmVzb3VyY2VfID0gbnVsbHB0cjsKKworLy8gQSB0ZXN0IHRo
YXQgdXNlcyB0aGUgc2hhcmVkIHJlc291cmNlLgorVEVTVF9GKFNldFVwVGVzdFN1aXRlVGVzdCwg
VGVzdFNldHVwVGVzdFN1aXRlMSkgeworICBFWFBFQ1RfU1RSTkUobnVsbHB0ciwgc2hhcmVkX3Jl
c291cmNlXyk7Cit9CisKKy8vIEFub3RoZXIgdGVzdCB0aGF0IHVzZXMgdGhlIHNoYXJlZCByZXNv
dXJjZS4KK1RFU1RfRihTZXRVcFRlc3RTdWl0ZVRlc3QsIFRlc3RTZXR1cFRlc3RTdWl0ZTIpIHsK
KyAgRVhQRUNUX1NUUkVRKCIxMjMiLCBzaGFyZWRfcmVzb3VyY2VfKTsKK30KIAogLy8gVGhlIFBh
cnNlRmxhZ3NUZXN0IHRlc3QgY2FzZSB0ZXN0cyBQYXJzZUdvb2dsZVRlc3RGbGFnc09ubHkuCiAK
IC8vIFRoZSBGbGFncyBzdHJ1Y3Qgc3RvcmVzIGEgY29weSBvZiBhbGwgR29vZ2xlIFRlc3QgZmxh
Z3MuCiBzdHJ1Y3QgRmxhZ3MgewogICAvLyBDb25zdHJ1Y3RzIGEgRmxhZ3Mgc3RydWN0IHdoZXJl
IGVhY2ggZmxhZyBoYXMgaXRzIGRlZmF1bHQgdmFsdWUuCi0gIEZsYWdzKCkgOiBhbHNvX3J1bl9k
aXNhYmxlZF90ZXN0cyhmYWxzZSksCi0gICAgICAgICAgICBicmVha19vbl9mYWlsdXJlKGZhbHNl
KSwKLSAgICAgICAgICAgIGNhdGNoX2V4Y2VwdGlvbnMoZmFsc2UpLAotICAgICAgICAgICAgZGVh
dGhfdGVzdF91c2VfZm9yayhmYWxzZSksCi0gICAgICAgICAgICBmaWx0ZXIoIiIpLAotICAgICAg
ICAgICAgbGlzdF90ZXN0cyhmYWxzZSksCi0gICAgICAgICAgICBvdXRwdXQoIiIpLAotICAgICAg
ICAgICAgcHJpbnRfdGltZSh0cnVlKSwKLSAgICAgICAgICAgIHJhbmRvbV9zZWVkKDApLAotICAg
ICAgICAgICAgcmVwZWF0KDEpLAotICAgICAgICAgICAgc2h1ZmZsZShmYWxzZSksCi0gICAgICAg
ICAgICBzdGFja190cmFjZV9kZXB0aChrTWF4U3RhY2tUcmFjZURlcHRoKSwKLSAgICAgICAgICAg
IHN0cmVhbV9yZXN1bHRfdG8oIiIpLAotICAgICAgICAgICAgdGhyb3dfb25fZmFpbHVyZShmYWxz
ZSkge30KKyAgRmxhZ3MoKQorICAgICAgOiBhbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyhmYWxzZSks
CisgICAgICAgIGJyZWFrX29uX2ZhaWx1cmUoZmFsc2UpLAorICAgICAgICBjYXRjaF9leGNlcHRp
b25zKGZhbHNlKSwKKyAgICAgICAgZGVhdGhfdGVzdF91c2VfZm9yayhmYWxzZSksCisgICAgICAg
IGZhaWxfZmFzdChmYWxzZSksCisgICAgICAgIGZpbHRlcigiIiksCisgICAgICAgIGxpc3RfdGVz
dHMoZmFsc2UpLAorICAgICAgICBvdXRwdXQoIiIpLAorICAgICAgICBicmllZihmYWxzZSksCisg
ICAgICAgIHByaW50X3RpbWUodHJ1ZSksCisgICAgICAgIHJhbmRvbV9zZWVkKDApLAorICAgICAg
ICByZXBlYXQoMSksCisgICAgICAgIHNodWZmbGUoZmFsc2UpLAorICAgICAgICBzdGFja190cmFj
ZV9kZXB0aChrTWF4U3RhY2tUcmFjZURlcHRoKSwKKyAgICAgICAgc3RyZWFtX3Jlc3VsdF90bygi
IiksCisgICAgICAgIHRocm93X29uX2ZhaWx1cmUoZmFsc2UpIHt9CiAKICAgLy8gRmFjdG9yeSBt
ZXRob2RzLgogCkBAIC01NTM2LDYgKzU2MTksMTQgQEAgc3RydWN0IEZsYWdzIHsKICAgICByZXR1
cm4gZmxhZ3M7CiAgIH0KIAorICAvLyBDcmVhdGVzIGEgRmxhZ3Mgc3RydWN0IHdoZXJlIHRoZSBn
dGVzdF9mYWlsX2Zhc3QgZmxhZyBoYXMKKyAgLy8gdGhlIGdpdmVuIHZhbHVlLgorICBzdGF0aWMg
RmxhZ3MgRmFpbEZhc3QoYm9vbCBmYWlsX2Zhc3QpIHsKKyAgICBGbGFncyBmbGFnczsKKyAgICBm
bGFncy5mYWlsX2Zhc3QgPSBmYWlsX2Zhc3Q7CisgICAgcmV0dXJuIGZsYWdzOworICB9CisKICAg
Ly8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfZmlsdGVyIGZsYWcgaGFz
IHRoZSBnaXZlbgogICAvLyB2YWx1ZS4KICAgc3RhdGljIEZsYWdzIEZpbHRlcihjb25zdCBjaGFy
KiBmaWx0ZXIpIHsKQEAgLTU1NjAsNiArNTY1MSwxNCBAQCBzdHJ1Y3QgRmxhZ3MgewogICAgIHJl
dHVybiBmbGFnczsKICAgfQogCisgIC8vIENyZWF0ZXMgYSBGbGFncyBzdHJ1Y3Qgd2hlcmUgdGhl
IGd0ZXN0X2JyaWVmIGZsYWcgaGFzIHRoZSBnaXZlbgorICAvLyB2YWx1ZS4KKyAgc3RhdGljIEZs
YWdzIEJyaWVmKGJvb2wgYnJpZWYpIHsKKyAgICBGbGFncyBmbGFnczsKKyAgICBmbGFncy5icmll
ZiA9IGJyaWVmOworICAgIHJldHVybiBmbGFnczsKKyAgfQorCiAgIC8vIENyZWF0ZXMgYSBGbGFn
cyBzdHJ1Y3Qgd2hlcmUgdGhlIGd0ZXN0X3ByaW50X3RpbWUgZmxhZyBoYXMgdGhlIGdpdmVuCiAg
IC8vIHZhbHVlLgogICBzdGF0aWMgRmxhZ3MgUHJpbnRUaW1lKGJvb2wgcHJpbnRfdGltZSkgewpA
QCAtNTU3MCw3ICs1NjY5LDcgQEAgc3RydWN0IEZsYWdzIHsKIAogICAvLyBDcmVhdGVzIGEgRmxh
Z3Mgc3RydWN0IHdoZXJlIHRoZSBndGVzdF9yYW5kb21fc2VlZCBmbGFnIGhhcyB0aGUgZ2l2ZW4K
ICAgLy8gdmFsdWUuCi0gIHN0YXRpYyBGbGFncyBSYW5kb21TZWVkKEludDMyIHJhbmRvbV9zZWVk
KSB7CisgIHN0YXRpYyBGbGFncyBSYW5kb21TZWVkKGludDMyX3QgcmFuZG9tX3NlZWQpIHsKICAg
ICBGbGFncyBmbGFnczsKICAgICBmbGFncy5yYW5kb21fc2VlZCA9IHJhbmRvbV9zZWVkOwogICAg
IHJldHVybiBmbGFnczsKQEAgLTU1NzgsNyArNTY3Nyw3IEBAIHN0cnVjdCBGbGFncyB7CiAKICAg
Ly8gQ3JlYXRlcyBhIEZsYWdzIHN0cnVjdCB3aGVyZSB0aGUgZ3Rlc3RfcmVwZWF0IGZsYWcgaGFz
IHRoZSBnaXZlbgogICAvLyB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFJlcGVhdChJbnQzMiByZXBl
YXQpIHsKKyAgc3RhdGljIEZsYWdzIFJlcGVhdChpbnQzMl90IHJlcGVhdCkgewogICAgIEZsYWdz
IGZsYWdzOwogICAgIGZsYWdzLnJlcGVhdCA9IHJlcGVhdDsKICAgICByZXR1cm4gZmxhZ3M7CkBA
IC01NTk0LDcgKzU2OTMsNyBAQCBzdHJ1Y3QgRmxhZ3MgewogCiAgIC8vIENyZWF0ZXMgYSBGbGFn
cyBzdHJ1Y3Qgd2hlcmUgdGhlIEdURVNUX0ZMQUcoc3RhY2tfdHJhY2VfZGVwdGgpIGZsYWcgaGFz
CiAgIC8vIHRoZSBnaXZlbiB2YWx1ZS4KLSAgc3RhdGljIEZsYWdzIFN0YWNrVHJhY2VEZXB0aChJ
bnQzMiBzdGFja190cmFjZV9kZXB0aCkgeworICBzdGF0aWMgRmxhZ3MgU3RhY2tUcmFjZURlcHRo
KGludDMyX3Qgc3RhY2tfdHJhY2VfZGVwdGgpIHsKICAgICBGbGFncyBmbGFnczsKICAgICBmbGFn
cy5zdGFja190cmFjZV9kZXB0aCA9IHN0YWNrX3RyYWNlX2RlcHRoOwogICAgIHJldHVybiBmbGFn
czsKQEAgLTU2MjEsMTQgKzU3MjAsMTYgQEAgc3RydWN0IEZsYWdzIHsKICAgYm9vbCBicmVha19v
bl9mYWlsdXJlOwogICBib29sIGNhdGNoX2V4Y2VwdGlvbnM7CiAgIGJvb2wgZGVhdGhfdGVzdF91
c2VfZm9yazsKKyAgYm9vbCBmYWlsX2Zhc3Q7CiAgIGNvbnN0IGNoYXIqIGZpbHRlcjsKICAgYm9v
bCBsaXN0X3Rlc3RzOwogICBjb25zdCBjaGFyKiBvdXRwdXQ7CisgIGJvb2wgYnJpZWY7CiAgIGJv
b2wgcHJpbnRfdGltZTsKLSAgSW50MzIgcmFuZG9tX3NlZWQ7Ci0gIEludDMyIHJlcGVhdDsKKyAg
aW50MzJfdCByYW5kb21fc2VlZDsKKyAgaW50MzJfdCByZXBlYXQ7CiAgIGJvb2wgc2h1ZmZsZTsK
LSAgSW50MzIgc3RhY2tfdHJhY2VfZGVwdGg7CisgIGludDMyX3Qgc3RhY2tfdHJhY2VfZGVwdGg7
CiAgIGNvbnN0IGNoYXIqIHN0cmVhbV9yZXN1bHRfdG87CiAgIGJvb2wgdGhyb3dfb25fZmFpbHVy
ZTsKIH07CkBAIC01NjM3LDE0ICs1NzM4LDE2IEBAIHN0cnVjdCBGbGFncyB7CiBjbGFzcyBQYXJz
ZUZsYWdzVGVzdCA6IHB1YmxpYyBUZXN0IHsKICBwcm90ZWN0ZWQ6CiAgIC8vIENsZWFycyB0aGUg
ZmxhZ3MgYmVmb3JlIGVhY2ggdGVzdC4KLSAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICB2b2lk
IFNldFVwKCkgb3ZlcnJpZGUgewogICAgIEdURVNUX0ZMQUcoYWxzb19ydW5fZGlzYWJsZWRfdGVz
dHMpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSA9IGZhbHNlOwog
ICAgIEdURVNUX0ZMQUcoY2F0Y2hfZXhjZXB0aW9ucykgPSBmYWxzZTsKICAgICBHVEVTVF9GTEFH
KGRlYXRoX3Rlc3RfdXNlX2ZvcmspID0gZmFsc2U7CisgICAgR1RFU1RfRkxBRyhmYWlsX2Zhc3Qp
ID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhmaWx0ZXIpID0gIiI7CiAgICAgR1RFU1RfRkxBRyhs
aXN0X3Rlc3RzKSA9IGZhbHNlOwogICAgIEdURVNUX0ZMQUcob3V0cHV0KSA9ICIiOworICAgIEdU
RVNUX0ZMQUcoYnJpZWYpID0gZmFsc2U7CiAgICAgR1RFU1RfRkxBRyhwcmludF90aW1lKSA9IHRy
dWU7CiAgICAgR1RFU1RfRkxBRyhyYW5kb21fc2VlZCkgPSAwOwogICAgIEdURVNUX0ZMQUcocmVw
ZWF0KSA9IDE7CkBAIC01NjU2LDExICs1NzU5LDExIEBAIGNsYXNzIFBhcnNlRmxhZ3NUZXN0IDog
cHVibGljIFRlc3QgewogCiAgIC8vIEFzc2VydHMgdGhhdCB0d28gbmFycm93IG9yIHdpZGUgc3Ry
aW5nIGFycmF5cyBhcmUgZXF1YWwuCiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAg
c3RhdGljIHZvaWQgQXNzZXJ0U3RyaW5nQXJyYXlFcShzaXplX3Qgc2l6ZTEsIENoYXJUeXBlKiog
YXJyYXkxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplMiwg
Q2hhclR5cGUqKiBhcnJheTIpIHsKKyAgc3RhdGljIHZvaWQgQXNzZXJ0U3RyaW5nQXJyYXlFcShp
bnQgc2l6ZTEsIENoYXJUeXBlKiogYXJyYXkxLCBpbnQgc2l6ZTIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2hhclR5cGUqKiBhcnJheTIpIHsKICAgICBBU1NFUlRfRVEoc2l6
ZTEsIHNpemUyKSA8PCAiIEFycmF5IHNpemVzIGRpZmZlcmVudC4iOwogCi0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgIT0gc2l6ZTE7IGkrKykgeworICAgIGZvciAoaW50IGkgPSAwOyBpICE9IHNp
emUxOyBpKyspIHsKICAgICAgIEFTU0VSVF9TVFJFUShhcnJheTFbaV0sIGFycmF5MltpXSkgPDwg
IiB3aGVyZSBpID09ICIgPDwgaTsKICAgICB9CiAgIH0KQEAgLTU2NzIsOSArNTc3NSwxMSBAQCBj
bGFzcyBQYXJzZUZsYWdzVGVzdCA6IHB1YmxpYyBUZXN0IHsKICAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWQuYnJlYWtfb25fZmFpbHVyZSwgR1RFU1RfRkxBRyhicmVha19vbl9mYWlsdXJlKSk7CiAgICAg
RVhQRUNUX0VRKGV4cGVjdGVkLmNhdGNoX2V4Y2VwdGlvbnMsIEdURVNUX0ZMQUcoY2F0Y2hfZXhj
ZXB0aW9ucykpOwogICAgIEVYUEVDVF9FUShleHBlY3RlZC5kZWF0aF90ZXN0X3VzZV9mb3JrLCBH
VEVTVF9GTEFHKGRlYXRoX3Rlc3RfdXNlX2ZvcmspKTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQu
ZmFpbF9mYXN0LCBHVEVTVF9GTEFHKGZhaWxfZmFzdCkpOwogICAgIEVYUEVDVF9TVFJFUShleHBl
Y3RlZC5maWx0ZXIsIEdURVNUX0ZMQUcoZmlsdGVyKS5jX3N0cigpKTsKICAgICBFWFBFQ1RfRVEo
ZXhwZWN0ZWQubGlzdF90ZXN0cywgR1RFU1RfRkxBRyhsaXN0X3Rlc3RzKSk7CiAgICAgRVhQRUNU
X1NUUkVRKGV4cGVjdGVkLm91dHB1dCwgR1RFU1RfRkxBRyhvdXRwdXQpLmNfc3RyKCkpOworICAg
IEVYUEVDVF9FUShleHBlY3RlZC5icmllZiwgR1RFU1RfRkxBRyhicmllZikpOwogICAgIEVYUEVD
VF9FUShleHBlY3RlZC5wcmludF90aW1lLCBHVEVTVF9GTEFHKHByaW50X3RpbWUpKTsKICAgICBF
WFBFQ1RfRVEoZXhwZWN0ZWQucmFuZG9tX3NlZWQsIEdURVNUX0ZMQUcocmFuZG9tX3NlZWQpKTsK
ICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQucmVwZWF0LCBHVEVTVF9GTEFHKHJlcGVhdCkpOwpAQCAt
NTc0MiwxNDEgKzU4NDcsOTAgQEAgY2xhc3MgUGFyc2VGbGFnc1Rlc3QgOiBwdWJsaWMgVGVzdCB7
CiAKIC8vIFRlc3RzIHBhcnNpbmcgYW4gZW1wdHkgY29tbWFuZCBsaW5lLgogVEVTVF9GKFBhcnNl
RmxhZ3NUZXN0LCBFbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7bnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3Mo
KSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGEgY29tbWFuZCBsaW5lIHRoYXQgaGFz
IG5vIGZsYWcuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIE5vRmxhZykgewotICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJb
XSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdT
Xyhhcmd2LCBhcmd2MiwgRmxhZ3MoKSwgZmFsc2UpOwogfQogCisvLyBUZXN0cyBwYXJzaW5nIC0t
Z3Rlc3RfZmFpbF9mYXN0LgorVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGYWlsRmFzdCkgeworICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9mYWlsX2Zhc3QiLCBudWxs
cHRyfTsKKworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CisK
KyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZhaWxGYXN0
KHRydWUpLCBmYWxzZSk7Cit9CisKIC8vIFRlc3RzIHBhcnNpbmcgYSBiYWQgLS1ndGVzdF9maWx0
ZXIgZmxhZy4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgRmlsdGVyQmFkKSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0
X2ZpbHRlciIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZv
by5leGUiLAotICAgICItLWd0ZXN0X2ZpbHRlciIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBj
aGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyIiwgbnVsbHB0cn07CiAK
ICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigi
IiksIHRydWUpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIGFuIGVtcHR5IC0tZ3Rlc3RfZmlsdGVy
IGZsYWcuCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEZpbHRlckVtcHR5KSB7Ci0gIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPSIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVz
dF9maWx0ZXI9IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28u
ZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2
MiwgRmxhZ3M6OkZpbHRlcigiIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyBhIG5v
bi1lbXB0eSAtLWd0ZXN0X2ZpbHRlciBmbGFnLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBGaWx0
ZXJOb25FbXB0eSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgICItLWd0ZXN0X2ZpbHRlcj1hYmMiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfZmlsdGVyPWFiYyIsIG51bGxwdHJ9OwogCi0g
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsK
KyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpGaWx0ZXIoImFiYyIpLCBm
YWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9icmVha19vbl9mYWlsdXJlLgog
VEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmVha09uRmFpbHVyZVdpdGhvdXRWYWx1ZSkgewotICBj
b25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2JyZWFr
X29uX2ZhaWx1cmUiLAotICAgIE5VTEwKLX07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9v
LmV4ZSIsICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmUiLCBudWxscHRyfTsKIAotICBjb25zdCBj
aGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BB
UlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJlYWtPbkZhaWx1cmUodHJ1ZSksIGZh
bHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9MC4K
IFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJlYWtPbkZhaWx1cmVGYWxzZV8wKSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZT0wIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9v
LmV4ZSIsICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9MCIsIG51bGxwdHJ9OwogCi0gIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZShmYWxzZSks
IGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9
Zi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJlYWtPbkZhaWx1cmVGYWxzZV9mKSB7Ci0gIGNv
bnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtf
b25fZmFpbHVyZT1mIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsi
Zm9vLmV4ZSIsICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9ZiIsIG51bGxwdHJ9OwogCi0gIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RF
U1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZShmYWxz
ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2JyZWFrX29uX2ZhaWx1
cmU9Ri4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJlYWtPbkZhaWx1cmVGYWxzZV9GKSB7Ci0g
IGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJl
YWtfb25fZmFpbHVyZT1GIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9RiIsIG51bGxwdHJ9OwogCi0g
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsK
KyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZShm
YWxzZSksIGZhbHNlKTsKIH0KQEAgLTU4ODQsNDggKzU5MzgsMjcgQEAgVEVTVF9GKFBhcnNlRmxh
Z3NUZXN0LCBCcmVha09uRmFpbHVyZUZhbHNlX0YpIHsKIC8vIFRlc3RzIHBhcnNpbmcgYSAtLWd0
ZXN0X2JyZWFrX29uX2ZhaWx1cmUgZmxhZyB0aGF0IGhhcyBhICJ0cnVlIgogLy8gZGVmaW5pdGlv
bi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQnJlYWtPbkZhaWx1cmVUcnVlKSB7Ci0gIGNvbnN0
IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZT0xIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9v
LmV4ZSIsICItLWd0ZXN0X2JyZWFrX29uX2ZhaWx1cmU9MSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0
IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29u
c3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1Rf
UEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpCcmVha09uRmFpbHVyZSh0cnVlKSwg
ZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9ucy4K
IFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQ2F0Y2hFeGNlcHRpb25zKSB7Ci0gIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfY2F0Y2hfZXhjZXB0aW9u
cyIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAi
LS1ndGVzdF9jYXRjaF9leGNlcHRpb25zIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJn
djJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkNhdGNoRXhjZXB0aW9ucyh0cnVlKSwgZmFsc2UpOwog
fQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfZGVhdGhfdGVzdF91c2VfZm9yay4KIFRFU1Rf
RihQYXJzZUZsYWdzVGVzdCwgRGVhdGhUZXN0VXNlRm9yaykgewotICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2RlYXRoX3Rlc3RfdXNlX2Zvcmsi
LAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfZGVhdGhfdGVzdF91c2VfZm9yayIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19G
TEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpEZWF0aFRlc3RVc2VGb3JrKHRydWUpLCBmYWxzZSk7
CiB9CkBAIC01OTMzLDM2ICs1OTY2LDIxIEBAIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgRGVhdGhU
ZXN0VXNlRm9yaykgewogLy8gVGVzdHMgaGF2aW5nIHRoZSBzYW1lIGZsYWcgdHdpY2Ugd2l0aCBk
aWZmZXJlbnQgdmFsdWVzLiAgVGhlCiAvLyBleHBlY3RlZCBiZWhhdmlvciBpcyB0aGF0IHRoZSBv
bmUgY29taW5nIGxhc3QgdGFrZXMgcHJlY2VkZW5jZS4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
RHVwbGljYXRlZEZsYWdzKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWEiLAotICAgICItLWd0ZXN0X2ZpbHRlcj1iIiwKLSAg
ICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0
X2ZpbHRlcj1hIiwgIi0tZ3Rlc3RfZmlsdGVyPWIiLAorICAgICAgICAgICAgICAgICAgICAgICAg
bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0
cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZp
bHRlcigiYiIpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhhdmluZyBhbiB1bnJlY29nbml6ZWQg
ZmxhZyBvbiB0aGUgY29tbWFuZCBsaW5lLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBVbnJlY29n
bml6ZWRGbGFnKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgIi0tZ3Rlc3RfYnJlYWtfb25fZmFpbHVyZSIsCi0gICAgImJhciIsICAvLyBVbnJlY29nbml6
ZWQgYnkgR29vZ2xlIFRlc3QuCi0gICAgIi0tZ3Rlc3RfZmlsdGVyPWIiLAotICAgIE5VTEwKLSAg
fTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJlYWtfb25f
ZmFpbHVyZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYmFyIiwgIC8vIFVucmVjb2duaXpl
ZCBieSBHb29nbGUgVGVzdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICItLWd0ZXN0X2ZpbHRl
cj1iIiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4
ZSIsCi0gICAgImJhciIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0g
eyJmb28uZXhlIiwgImJhciIsIG51bGxwdHJ9OwogCiAgIEZsYWdzIGZsYWdzOwogICBmbGFncy5i
cmVha19vbl9mYWlsdXJlID0gdHJ1ZTsKQEAgLTU5NzIsMzg4ICs1OTkwLDI1MCBAQCBURVNUX0Yo
UGFyc2VGbGFnc1Rlc3QsIFVucmVjb2duaXplZEZsYWcpIHsKIAogLy8gVGVzdHMgaGF2aW5nIGEg
LS1ndGVzdF9saXN0X3Rlc3RzIGZsYWcKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTGlzdFRlc3Rz
RmxhZykgewotICAgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAg
ICAgICItLWd0ZXN0X2xpc3RfdGVzdHMiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2xpc3RfdGVzdHMiLCBudWxscHRyfTsK
IAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBO
VUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9
OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxp
c3RUZXN0cyh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhh
dmluZyBhIC0tZ3Rlc3RfbGlzdF90ZXN0cyBmbGFnIHdpdGggYSAidHJ1ZSIgdmFsdWUKIFRFU1Rf
RihQYXJzZUZsYWdzVGVzdCwgTGlzdFRlc3RzVHJ1ZSkgewotICAgIGNvbnN0IGNoYXIqIGFyZ3Zb
XSA9IHsKLSAgICAgICJmb28uZXhlIiwKLSAgICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9MSIsCi0g
ICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0t
Z3Rlc3RfbGlzdF90ZXN0cz0xIiwgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHModHJ1ZSksIGZhbHNlKTsKKyAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxpc3RUZXN0cyh0
cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2xpc3RfdGVzdHMg
ZmxhZyB3aXRoIGEgImZhbHNlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBMaXN0VGVz
dHNGYWxzZSkgewotICAgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAgICJmb28uZXhlIiwK
LSAgICAgICItLWd0ZXN0X2xpc3RfdGVzdHM9MCIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29u
c3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlzdF90ZXN0cz0wIiwgbnVs
bHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICAgImZvby5leGUiLAot
ICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBu
dWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZs
YWdzOjpMaXN0VGVzdHMoZmFsc2UpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFH
U18oYXJndiwgYXJndjIsIEZsYWdzOjpMaXN0VGVzdHMoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8v
IFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9saXN0X3Rlc3RzPWYuCiBURVNUX0YoUGFyc2VGbGFnc1Rl
c3QsIExpc3RUZXN0c0ZhbHNlX2YpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJm
b28uZXhlIiwKLSAgICAiLS1ndGVzdF9saXN0X3Rlc3RzPWYiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfbGlzdF90ZXN0cz1mIiwg
bnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0g
ICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0
cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Okxp
c3RUZXN0cyhmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X2xp
c3RfdGVzdHM9Ri4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgTGlzdFRlc3RzRmFsc2VfRikgewot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X2xp
c3RfdGVzdHM9RiIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCAiLS1ndGVzdF9saXN0X3Rlc3RzPUYiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFy
KiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6TGlzdFRlc3RzKGZhbHNlKSwgZmFsc2UpOwog
fQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3Rfb3V0cHV0IChpbnZhbGlkKS4KIFRFU1RfRihQ
YXJzZUZsYWdzVGVzdCwgT3V0cHV0RW1wdHkpIHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewot
ICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVzdF9vdXRwdXQiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfb3V0cHV0IiwgbnVsbHB0
cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0t
Z3Rlc3Rfb3V0cHV0IiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
ImZvby5leGUiLCAiLS1ndGVzdF9vdXRwdXQiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BB
UlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFncygpLCB0cnVlKTsKIH0KIAogLy8gVGVzdHMg
cGFyc2luZyAtLWd0ZXN0X291dHB1dD14bWwKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgT3V0cHV0
WG1sKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0t
Z3Rlc3Rfb3V0cHV0PXhtbCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10g
PSB7ImZvby5leGUiLCAiLS1ndGVzdF9vdXRwdXQ9eG1sIiwgbnVsbHB0cn07CiAKLSAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25z
dCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9Q
QVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6Ok91dHB1dCgieG1sIiksIGZhbHNlKTsK
IH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X291dHB1dD14bWw6ZmlsZQogVEVTVF9GKFBh
cnNlRmxhZ3NUZXN0LCBPdXRwdXRYbWxGaWxlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsK
LSAgICAiZm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3Rfb3V0cHV0PXhtbDpmaWxlIiwKLSAgICBOVUxM
Ci0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X291dHB1
dD14bWw6ZmlsZSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAg
ImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9v
LmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJn
djIsIEZsYWdzOjpPdXRwdXQoInhtbDpmaWxlIiksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFy
c2luZyAtLWd0ZXN0X291dHB1dD14bWw6ZGlyZWN0b3J5L3BhdGgvCiBURVNUX0YoUGFyc2VGbGFn
c1Rlc3QsIE91dHB1dFhtbERpcmVjdG9yeSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0g
ICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X291dHB1dD14bWw6ZGlyZWN0b3J5L3BhdGgvIiwK
LSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X291dHB1dD14bWw6ZGlyZWN0b3J5L3BhdGgvIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxw
dHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRmxhZ3M6Ok91dHB1dCgieG1sOmRpcmVjdG9yeS9wYXRoLyIp
LCBmYWxzZSk7CiB9CiAKKy8vIFRlc3RzIGhhdmluZyBhIC0tZ3Rlc3RfYnJpZWYgZmxhZworVEVT
VF9GKFBhcnNlRmxhZ3NUZXN0LCBCcmllZkZsYWcpIHsKKyAgY29uc3QgY2hhciogYXJndltdID0g
eyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWYiLCBudWxscHRyfTsKKworICBjb25zdCBjaGFyKiBh
cmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CisKKyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZM
QUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyaWVmKHRydWUpLCBmYWxzZSk7Cit9CisKKy8vIFRl
c3RzIGhhdmluZyBhIC0tZ3Rlc3RfYnJpZWYgZmxhZyB3aXRoIGEgInRydWUiIHZhbHVlCitURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIEJyaWVmRmxhZ1RydWUpIHsKKyAgY29uc3QgY2hhciogYXJndltd
ID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYnJpZWY9MSIsIG51bGxwdHJ9OworCisgIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKKworICBHVEVTVF9URVNUX1BBUlNJ
TkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6QnJpZWYodHJ1ZSksIGZhbHNlKTsKK30KKwor
Ly8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9icmllZiBmbGFnIHdpdGggYSAiZmFsc2UiIHZhbHVl
CitURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIEJyaWVmRmxhZ0ZhbHNlKSB7CisgIGNvbnN0IGNoYXIq
IGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X2JyaWVmPTAiLCBudWxscHRyfTsKKworICBj
b25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CisKKyAgR1RFU1RfVEVT
VF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkJyaWVmKGZhbHNlKSwgZmFsc2Up
OworfQorCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X3ByaW50X3RpbWUgZmxhZwogVEVTVF9G
KFBhcnNlRmxhZ3NUZXN0LCBQcmludFRpbWVGbGFnKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltd
ID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfcHJpbnRfdGltZSIsCi0gICAg
ICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rl
c3RfcHJpbnRfdGltZSIsIG51bGxwdHJ9OwogCi0gICAgY29uc3QgY2hhciogYXJndjJbXSA9IHsK
LSAgICAgICJmb28uZXhlIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2
MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKLSAgICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRydWUpLCBmYWxzZSk7CisgIEdURVNU
X1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQcmludFRpbWUodHJ1ZSks
IGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9wcmludF90aW1lIGZsYWcg
d2l0aCBhICJ0cnVlIiB2YWx1ZQogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBQcmludFRpbWVUcnVl
KSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAg
Ii0tZ3Rlc3RfcHJpbnRfdGltZT0xIiwKLSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFy
KiBhcmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9wcmludF90aW1lPTEiLCBudWxscHRyfTsK
IAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBO
VUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9
OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlBy
aW50VGltZSh0cnVlKSwgZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3Ys
IGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKHRydWUpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIGhh
dmluZyBhIC0tZ3Rlc3RfcHJpbnRfdGltZSBmbGFnIHdpdGggYSAiZmFsc2UiIHZhbHVlCiBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIFByaW50VGltZUZhbHNlKSB7Ci0gICAgY29uc3QgY2hhciogYXJn
dltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT0wIiwK
LSAgICAgIE5VTEwKLSAgICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUiLCAi
LS1ndGVzdF9wcmludF90aW1lPTAiLCBudWxscHRyfTsKIAotICAgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBOVUxMCi0gICAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCi0gICAgR1RFU1RfVEVTVF9QQVJT
SU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGltZShmYWxzZSksIGZhbHNlKTsK
KyAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlByaW50VGlt
ZShmYWxzZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3ByaW50X3Rp
bWU9Zi4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgUHJpbnRUaW1lRmFsc2VfZikgewotICBjb25z
dCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3ByaW50X3Rp
bWU9ZiIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZvby5leGUi
LCAiLS1ndGVzdF9wcmludF90aW1lPWYiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2
MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFy
Z3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxB
R1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6UHJpbnRUaW1lKGZhbHNlKSwgZmFsc2UpOwogfQogCiAv
LyBUZXN0cyBwYXJzaW5nIC0tZ3Rlc3RfcHJpbnRfdGltZT1GLgogVEVTVF9GKFBhcnNlRmxhZ3NU
ZXN0LCBQcmludFRpbWVGYWxzZV9GKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAi
Zm9vLmV4ZSIsCi0gICAgIi0tZ3Rlc3RfcHJpbnRfdGltZT1GIiwKLSAgICBOVUxMCi0gIH07Cisg
IGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3ByaW50X3RpbWU9RiIs
IG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxw
dHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpQ
cmludFRpbWUoZmFsc2UpLCBmYWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9y
YW5kb21fc2VlZD1udW1iZXIKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgUmFuZG9tU2VlZCkgewot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3Jh
bmRvbV9zZWVkPTEwMDAiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0g
eyJmb28uZXhlIiwgIi0tZ3Rlc3RfcmFuZG9tX3NlZWQ9MTAwMCIsIG51bGxwdHJ9OwogCi0gIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RF
U1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpSYW5kb21TZWVkKDEwMDApLCBm
YWxzZSk7CiB9CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9yZXBlYXQ9bnVtYmVyCiBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIFJlcGVhdCkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0g
ICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3JlcGVhdD0xMDAwIiwKLSAgICBOVUxMCi0gIH07
CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3JlcGVhdD0xMDAw
IiwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIs
Ci0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVs
bHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6
OlJlcGVhdCgxMDAwKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2Fs
c29fcnVuX2Rpc2FibGVkX3Rlc3RzIGZsYWcKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQWxzb1J1
bkRpc2FibGVkVGVzdHNGbGFnKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAg
ImZvby5leGUiLAotICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHMiLAotICAg
ICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0
ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzIiwgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFy
KiBhcmd2MltdID0gewotICAgICAgImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RF
U1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGbGFnczo6QWxzb1J1bkRpc2FibGVkVGVzdHModHJ1ZSksIGZhbHNlKTsKKyAgR1RFU1Rf
VEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkFsc29SdW5EaXNhYmxlZFRl
c3RzKHRydWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKIH0KIAogLy8g
VGVzdHMgaGF2aW5nIGEgLS1ndGVzdF9hbHNvX3J1bl9kaXNhYmxlZF90ZXN0cyBmbGFnIHdpdGgg
YSAidHJ1ZSIgdmFsdWUKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgQWxzb1J1bkRpc2FibGVkVGVz
dHNUcnVlKSB7Ci0gICAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICAgImZvby5leGUiLAot
ICAgICAgIi0tZ3Rlc3RfYWxzb19ydW5fZGlzYWJsZWRfdGVzdHM9MSIsCi0gICAgICBOVUxMCi0g
ICAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfYWxzb19y
dW5fZGlzYWJsZWRfdGVzdHM9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyfTsK
IAotICAgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgICAiZm9vLmV4ZSIsCi0gICAgICBO
VUxMCi0gICAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9
OwogCi0gICAgR1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyh0cnVlKSwg
ZmFsc2UpOworICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6
QWxzb1J1bkRpc2FibGVkVGVzdHModHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmFsc2UpOwogfQogCiAvLyBUZXN0cyBoYXZpbmcgYSAtLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVk
X3Rlc3RzIGZsYWcgd2l0aCBhICJmYWxzZSIgdmFsdWUKIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwg
QWxzb1J1bkRpc2FibGVkVGVzdHNGYWxzZSkgewotICAgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsK
LSAgICAgICJmb28uZXhlIiwKLSAgICAgICItLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3Rz
PTAiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsICItLWd0ZXN0X2Fsc29fcnVuX2Rpc2FibGVkX3Rlc3RzPTAiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgbnVsbHB0cn07CiAKLSAgICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICAg
ImZvby5leGUiLAotICAgICAgTlVMTAotICAgIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7
ImZvby5leGUiLCBudWxscHRyfTsKIAotICAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJn
diwgYXJndjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnczo6QWxzb1J1bkRp
c2FibGVkVGVzdHMoZmFsc2UpLCBmYWxzZSk7CisgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18o
YXJndiwgYXJndjIsIEZsYWdzOjpBbHNvUnVuRGlzYWJsZWRUZXN0cyhmYWxzZSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogfQogCiAvLyBUZXN0cyBwYXJzaW5nIC0tZ3Rl
c3Rfc2h1ZmZsZS4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgU2h1ZmZsZVdpdGhvdXRWYWx1ZSkg
ewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0
X3NodWZmbGUiLAotICAgIE5VTEwKLX07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9vLmV4
ZSIsICItLWd0ZXN0X3NodWZmbGUiLCBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2Mltd
ID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3Yy
W10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1Nf
KGFyZ3YsIGFyZ3YyLCBGbGFnczo6U2h1ZmZsZSh0cnVlKSwgZmFsc2UpOwogfQogCiAvLyBUZXN0
cyBwYXJzaW5nIC0tZ3Rlc3Rfc2h1ZmZsZT0wLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBTaHVm
ZmxlRmFsc2VfMCkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgICItLWd0ZXN0X3NodWZmbGU9MCIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7ImZvby5leGUiLCAiLS1ndGVzdF9zaHVmZmxlPTAiLCBudWxscHRyfTsKIAotICBj
b25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07Cisg
IGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9U
RVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6U2h1ZmZsZShmYWxzZSksIGZh
bHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyBhIC0tZ3Rlc3Rfc2h1ZmZsZSBmbGFnIHRoYXQg
aGFzIGEgInRydWUiIGRlZmluaXRpb24uCiBURVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFNodWZmbGVU
cnVlKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgIi0t
Z3Rlc3Rfc2h1ZmZsZT0xIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9
IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3NodWZmbGU9MSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNo
YXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3Qg
Y2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFS
U0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTaHVmZmxlKHRydWUpLCBmYWxzZSk7CiB9
CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF9zdGFja190cmFjZV9kZXB0aD1udW1iZXIuCiBU
RVNUX0YoUGFyc2VGbGFnc1Rlc3QsIFN0YWNrVHJhY2VEZXB0aCkgewotICBjb25zdCBjaGFyKiBh
cmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3N0YWNrX3RyYWNlX2RlcHRo
PTUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndltdID0geyJmb28uZXhlIiwg
Ii0tZ3Rlc3Rfc3RhY2tfdHJhY2VfZGVwdGg9NSIsIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RFU1RfUEFSU0lO
R19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpTdGFja1RyYWNlRGVwdGgoNSksIGZhbHNlKTsK
IH0KIAogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBTdHJlYW1SZXN1bHRUbykgewotICBjb25zdCBj
aGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgICItLWd0ZXN0X3N0cmVhbV9yZXN1
bHRfdG89bG9jYWxob3N0OjEyMzQiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJn
dltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3Rfc3RyZWFtX3Jlc3VsdF90bz1sb2NhbGhvc3Q6MTIz
NCIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyfTsKIAotICBjb25zdCBjaGFyKiBh
cmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsKIAogICBHVEVTVF9URVNUX1BBUlNJTkdf
RkxBR1NfKAogICAgICAgYXJndiwgYXJndjIsIEZsYWdzOjpTdHJlYW1SZXN1bHRUbygibG9jYWxo
b3N0OjEyMzQiKSwgZmFsc2UpOwpAQCAtNjM2MSwzMiArNjI0MSwxOCBAQCBURVNUX0YoUGFyc2VG
bGFnc1Rlc3QsIFN0cmVhbVJlc3VsdFRvKSB7CiAKIC8vIFRlc3RzIHBhcnNpbmcgLS1ndGVzdF90
aHJvd19vbl9mYWlsdXJlLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBUaHJvd09uRmFpbHVyZVdp
dGhvdXRWYWx1ZSkgewotICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAot
ICAgICItLWd0ZXN0X3Rocm93X29uX2ZhaWx1cmUiLAotICAgIE5VTEwKLX07CisgIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3Rocm93X29uX2ZhaWx1cmUiLCBudWxs
cHRyfTsKIAotICBjb25zdCBjaGFyKiBhcmd2MltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBO
VUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7ImZvby5leGUiLCBudWxscHRyfTsK
IAogICBHVEVTVF9URVNUX1BBUlNJTkdfRkxBR1NfKGFyZ3YsIGFyZ3YyLCBGbGFnczo6VGhyb3dP
bkZhaWx1cmUodHJ1ZSksIGZhbHNlKTsKIH0KIAogLy8gVGVzdHMgcGFyc2luZyAtLWd0ZXN0X3Ro
cm93X29uX2ZhaWx1cmU9MC4KIFRFU1RfRihQYXJzZUZsYWdzVGVzdCwgVGhyb3dPbkZhaWx1cmVG
YWxzZV8wKSB7Ci0gIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAg
Ii0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0wIiwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNo
YXIqIGFyZ3ZbXSA9IHsiZm9vLmV4ZSIsICItLWd0ZXN0X3Rocm93X29uX2ZhaWx1cmU9MCIsIG51
bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAg
IE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9
OwogCiAgIEdURVNUX1RFU1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzOjpUaHJv
d09uRmFpbHVyZShmYWxzZSksIGZhbHNlKTsKIH0KQEAgLTYzOTQsMTYgKzYyNjAsOSBAQCBURVNU
X0YoUGFyc2VGbGFnc1Rlc3QsIFRocm93T25GYWlsdXJlRmFsc2VfMCkgewogLy8gVGVzdHMgcGFy
c2luZyBhIC0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZSBmbGFnIHRoYXQgaGFzIGEgInRydWUiCiAv
LyBkZWZpbml0aW9uLgogVEVTVF9GKFBhcnNlRmxhZ3NUZXN0LCBUaHJvd09uRmFpbHVyZVRydWUp
IHsKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICAiLS1ndGVz
dF90aHJvd19vbl9mYWlsdXJlPTEiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hhciogYXJn
dltdID0geyJmb28uZXhlIiwgIi0tZ3Rlc3RfdGhyb3dfb25fZmFpbHVyZT0xIiwgbnVsbHB0cn07
CiAKLSAgY29uc3QgY2hhciogYXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAot
ICB9OworICBjb25zdCBjaGFyKiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAg
R1RFU1RfVEVTVF9QQVJTSU5HX0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OlRocm93T25GYWls
dXJlKHRydWUpLCBmYWxzZSk7CiB9CkBAIC02NDM4LDcgKzYyOTcsNyBAQCBURVNUX0YoUGFyc2VG
bGFnc1Rlc3QsIFdpZGVTdHJpbmdzKSB7CiAjaWYgR1RFU1RfVVNFX09XTl9GTEFHRklMRV9GTEFH
XwogY2xhc3MgRmxhZ2ZpbGVUZXN0IDogcHVibGljIFBhcnNlRmxhZ3NUZXN0IHsKICBwdWJsaWM6
Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKICAg
ICBQYXJzZUZsYWdzVGVzdDo6U2V0VXAoKTsKIAogICAgIHRlc3RkYXRhX3BhdGhfLlNldChpbnRl
cm5hbDo6RmlsZVBhdGgoCkBAIC02NDQ4LDcgKzYzMDcsNyBAQCBjbGFzcyBGbGFnZmlsZVRlc3Qg
OiBwdWJsaWMgUGFyc2VGbGFnc1Rlc3QgewogICAgIEVYUEVDVF9UUlVFKHRlc3RkYXRhX3BhdGhf
LkNyZWF0ZUZvbGRlcigpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKKyAg
dm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6cG9zaXg6
OlJtRGlyKHRlc3RkYXRhX3BhdGhfLmNfc3RyKCkpOwogICAgIFBhcnNlRmxhZ3NUZXN0OjpUZWFy
RG93bigpOwogICB9CkBAIC02NDcyLDE2ICs2MzMxLDkgQEAgVEVTVF9GKEZsYWdmaWxlVGVzdCwg
RW1wdHkpIHsKICAgc3RkOjpzdHJpbmcgZmxhZ2ZpbGVfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmlu
ZygiLS0iIEdURVNUX0ZMQUdfUFJFRklYXyAiZmxhZ2ZpbGU9IikgKyBmbGFnZmlsZV9wYXRoLmNf
c3RyKCk7CiAKLSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBm
bGFnZmlsZV9mbGFnLmNfc3RyKCksCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2
W10gPSB7ImZvby5leGUiLCBmbGFnZmlsZV9mbGFnLmNfc3RyKCksIG51bGxwdHJ9OwogCi0gIGNv
bnN0IGNoYXIqIGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAg
Y29uc3QgY2hhciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEdURVNUX1RF
U1RfUEFSU0lOR19GTEFHU18oYXJndiwgYXJndjIsIEZsYWdzKCksIGZhbHNlKTsKIH0KQEAgLTY0
OTMsMTYgKzYzNDUsOSBAQCBURVNUX0YoRmxhZ2ZpbGVUZXN0LCBGaWx0ZXJOb25FbXB0eSkgewog
ICBzdGQ6OnN0cmluZyBmbGFnZmlsZV9mbGFnID0KICAgICAgIHN0ZDo6c3RyaW5nKCItLSIgR1RF
U1RfRkxBR19QUkVGSVhfICJmbGFnZmlsZT0iKSArIGZsYWdmaWxlX3BhdGguY19zdHIoKTsKIAot
ICBjb25zdCBjaGFyKiBhcmd2W10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIGZsYWdmaWxlX2Zs
YWcuY19zdHIoKSwKLSAgICBOVUxMCi0gIH07CisgIGNvbnN0IGNoYXIqIGFyZ3ZbXSA9IHsiZm9v
LmV4ZSIsIGZsYWdmaWxlX2ZsYWcuY19zdHIoKSwgbnVsbHB0cn07CiAKLSAgY29uc3QgY2hhciog
YXJndjJbXSA9IHsKLSAgICAiZm9vLmV4ZSIsCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFy
KiBhcmd2MltdID0geyJmb28uZXhlIiwgbnVsbHB0cn07CiAKICAgR1RFU1RfVEVTVF9QQVJTSU5H
X0ZMQUdTXyhhcmd2LCBhcmd2MiwgRmxhZ3M6OkZpbHRlcigiYWJjIiksIGZhbHNlKTsKIH0KQEAg
LTY1MTYsMTYgKzYzNjEsOSBAQCBURVNUX0YoRmxhZ2ZpbGVUZXN0LCBTZXZlcmFsRmxhZ3MpIHsK
ICAgc3RkOjpzdHJpbmcgZmxhZ2ZpbGVfZmxhZyA9CiAgICAgICBzdGQ6OnN0cmluZygiLS0iIEdU
RVNUX0ZMQUdfUFJFRklYXyAiZmxhZ2ZpbGU9IikgKyBmbGFnZmlsZV9wYXRoLmNfc3RyKCk7CiAK
LSAgY29uc3QgY2hhciogYXJndltdID0gewotICAgICJmb28uZXhlIiwKLSAgICBmbGFnZmlsZV9m
bGFnLmNfc3RyKCksCi0gICAgTlVMTAotICB9OworICBjb25zdCBjaGFyKiBhcmd2W10gPSB7ImZv
by5leGUiLCBmbGFnZmlsZV9mbGFnLmNfc3RyKCksIG51bGxwdHJ9OwogCi0gIGNvbnN0IGNoYXIq
IGFyZ3YyW10gPSB7Ci0gICAgImZvby5leGUiLAotICAgIE5VTEwKLSAgfTsKKyAgY29uc3QgY2hh
ciogYXJndjJbXSA9IHsiZm9vLmV4ZSIsIG51bGxwdHJ9OwogCiAgIEZsYWdzIGV4cGVjdGVkX2Zs
YWdzOwogICBleHBlY3RlZF9mbGFncy5icmVha19vbl9mYWlsdXJlID0gdHJ1ZTsKQEAgLTY1NDEs
MzQgKzYzNzksMzQgQEAgY2xhc3MgQ3VycmVudFRlc3RJbmZvVGVzdCA6IHB1YmxpYyBUZXN0IHsK
ICBwcm90ZWN0ZWQ6CiAgIC8vIFRlc3RzIHRoYXQgY3VycmVudF90ZXN0X2luZm8oKSByZXR1cm5z
IE5VTEwgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGluCiAgIC8vIHRoZSB0ZXN0IGNhc2UgaXMgcnVu
LgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBTZXRVcFRl
c3RTdWl0ZSgpIHsKICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gdGVzdHMgcnVubmluZyBhdCB0
aGlzIHBvaW50LgogICAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgICAgVW5pdFRl
c3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7Ci0gICAgRVhQRUNUX1RSVUUo
dGVzdF9pbmZvID09IE5VTEwpCisgICAgRVhQRUNUX1RSVUUodGVzdF9pbmZvID09IG51bGxwdHIp
CiAgICAgICAgIDw8ICJUaGVyZSBzaG91bGQgYmUgbm8gdGVzdHMgcnVubmluZyBhdCB0aGlzIHBv
aW50LiI7CiAgIH0KIAogICAvLyBUZXN0cyB0aGF0IGN1cnJlbnRfdGVzdF9pbmZvKCkgcmV0dXJu
cyBOVUxMIGFmdGVyIHRoZSBsYXN0IHRlc3QgaW4KICAgLy8gdGhlIHRlc3QgY2FzZSBoYXMgcnVu
LgotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeworICBzdGF0aWMgdm9pZCBUZWFy
RG93blRlc3RTdWl0ZSgpIHsKICAgICBjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvID0KICAgICAg
IFVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICAgIEVYUEVD
VF9UUlVFKHRlc3RfaW5mbyA9PSBOVUxMKQorICAgIEVYUEVDVF9UUlVFKHRlc3RfaW5mbyA9PSBu
dWxscHRyKQogICAgICAgICA8PCAiVGhlcmUgc2hvdWxkIGJlIG5vIHRlc3RzIHJ1bm5pbmcgYXQg
dGhpcyBwb2ludC4iOwogICB9CiB9OwogCiAvLyBUZXN0cyB0aGF0IGN1cnJlbnRfdGVzdF9pbmZv
KCkgcmV0dXJucyBUZXN0SW5mbyBmb3IgY3VycmVudGx5IHJ1bm5pbmcKIC8vIHRlc3QgYnkgY2hl
Y2tpbmcgdGhlIGV4cGVjdGVkIHRlc3QgbmFtZSBhZ2FpbnN0IHRoZSBhY3R1YWwgb25lLgotVEVT
VF9GKEN1cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdENhc2UpIHsK
K1RFU1RfRihDdXJyZW50VGVzdEluZm9UZXN0LCBXb3Jrc0ZvckZpcnN0VGVzdEluQVRlc3RTdWl0
ZSkgewogICBjb25zdCBUZXN0SW5mbyogdGVzdF9pbmZvID0KICAgICBVbml0VGVzdDo6R2V0SW5z
dGFuY2UoKS0+Y3VycmVudF90ZXN0X2luZm8oKTsKLSAgQVNTRVJUX1RSVUUoTlVMTCAhPSB0ZXN0
X2luZm8pCisgIEFTU0VSVF9UUlVFKG51bGxwdHIgIT0gdGVzdF9pbmZvKQogICAgICAgPDwgIlRo
ZXJlIGlzIGEgdGVzdCBydW5uaW5nIHNvIHdlIHNob3VsZCBoYXZlIGEgdmFsaWQgVGVzdEluZm8u
IjsKLSAgRVhQRUNUX1NUUkVRKCJDdXJyZW50VGVzdEluZm9UZXN0IiwgdGVzdF9pbmZvLT50ZXN0
X2Nhc2VfbmFtZSgpKQotICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50
bHkgcnVubmluZyB0ZXN0IGNhc2UuIjsKLSAgRVhQRUNUX1NUUkVRKCJXb3Jrc0ZvckZpcnN0VGVz
dEluQVRlc3RDYXNlIiwgdGVzdF9pbmZvLT5uYW1lKCkpCisgIEVYUEVDVF9TVFJFUSgiQ3VycmVu
dFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpCisgICAgICA8PCAi
RXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3Qgc3VpdGUuIjsK
KyAgRVhQRUNUX1NUUkVRKCJXb3Jrc0ZvckZpcnN0VGVzdEluQVRlc3RTdWl0ZSIsIHRlc3RfaW5m
by0+bmFtZSgpKQogICAgICAgPDwgIkV4cGVjdGVkIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkg
cnVubmluZyB0ZXN0LiI7CiB9CiAKQEAgLTY1NzYsMTQgKzY0MTQsMTQgQEAgVEVTVF9GKEN1cnJl
bnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yRmlyc3RUZXN0SW5BVGVzdENhc2UpIHsKIC8vIHRlc3Qg
YnkgY2hlY2tpbmcgdGhlIGV4cGVjdGVkIHRlc3QgbmFtZSBhZ2FpbnN0IHRoZSBhY3R1YWwgb25l
LiAgV2UKIC8vIHVzZSB0aGlzIHRlc3QgdG8gc2VlIHRoYXQgdGhlIFRlc3RJbmZvIG9iamVjdCBh
Y3R1YWxseSBjaGFuZ2VkIGZyb20KIC8vIHRoZSBwcmV2aW91cyBpbnZvY2F0aW9uLgotVEVTVF9G
KEN1cnJlbnRUZXN0SW5mb1Rlc3QsIFdvcmtzRm9yU2Vjb25kVGVzdEluQVRlc3RDYXNlKSB7CitU
RVNUX0YoQ3VycmVudFRlc3RJbmZvVGVzdCwgV29ya3NGb3JTZWNvbmRUZXN0SW5BVGVzdFN1aXRl
KSB7CiAgIGNvbnN0IFRlc3RJbmZvKiB0ZXN0X2luZm8gPQogICAgIFVuaXRUZXN0OjpHZXRJbnN0
YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOwotICBBU1NFUlRfVFJVRShOVUxMICE9IHRlc3Rf
aW5mbykKKyAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSB0ZXN0X2luZm8pCiAgICAgICA8PCAiVGhl
cmUgaXMgYSB0ZXN0IHJ1bm5pbmcgc28gd2Ugc2hvdWxkIGhhdmUgYSB2YWxpZCBUZXN0SW5mby4i
OwotICBFWFBFQ1RfU1RSRVEoIkN1cnJlbnRUZXN0SW5mb1Rlc3QiLCB0ZXN0X2luZm8tPnRlc3Rf
Y2FzZV9uYW1lKCkpCi0gICAgICA8PCAiRXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRs
eSBydW5uaW5nIHRlc3QgY2FzZS4iOwotICBFWFBFQ1RfU1RSRVEoIldvcmtzRm9yU2Vjb25kVGVz
dEluQVRlc3RDYXNlIiwgdGVzdF9pbmZvLT5uYW1lKCkpCisgIEVYUEVDVF9TVFJFUSgiQ3VycmVu
dFRlc3RJbmZvVGVzdCIsIHRlc3RfaW5mby0+dGVzdF9zdWl0ZV9uYW1lKCkpCisgICAgICA8PCAi
RXhwZWN0ZWQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRlc3Qgc3VpdGUuIjsK
KyAgRVhQRUNUX1NUUkVRKCJXb3Jrc0ZvclNlY29uZFRlc3RJbkFUZXN0U3VpdGUiLCB0ZXN0X2lu
Zm8tPm5hbWUoKSkKICAgICAgIDw8ICJFeHBlY3RlZCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5
IHJ1bm5pbmcgdGVzdC4iOwogfQogCkBAIC02NjI4LDEyICs2NDY2LDggQEAgVEVTVChOZXN0ZWRU
ZXN0aW5nTmFtZXNwYWNlVGVzdCwgRmFpbHVyZSkgewogLy8gc3VjY2Vzc2Z1bGx5LgogY2xhc3Mg
UHJvdGVjdGVkRml4dHVyZU1ldGhvZHNUZXN0IDogcHVibGljIFRlc3QgewogIHByb3RlY3RlZDoK
LSAgdmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIFRlc3Q6OlNldFVwKCk7Ci0gIH0KLSAgdmly
dHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIFRlc3Q6OlRlYXJEb3duKCk7Ci0gIH0KKyAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlIHsgVGVzdDo6U2V0VXAoKTsgfQorICB2b2lkIFRlYXJEb3duKCkg
b3ZlcnJpZGUgeyBUZXN0OjpUZWFyRG93bigpOyB9CiB9OwogCiAvLyBTdHJlYW1pbmdBc3NlcnRp
b25zVGVzdCB0ZXN0cyB0aGUgc3RyZWFtaW5nIHZlcnNpb25zIG9mIGEgcmVwcmVzZW50YXRpdmUK
QEAgLTY4MzEsNyArNjY2NSw3IEBAIFRFU1QoQ29sb3JlZE91dHB1dFRlc3QsIFVzZXNDb2xvcnNX
aGVuU3Rkb3V0SXNUdHkpIHsKIFRFU1QoQ29sb3JlZE91dHB1dFRlc3QsIFVzZXNDb2xvcnNXaGVu
VGVybVN1cHBvcnRzQ29sb3JzKSB7CiAgIEdURVNUX0ZMQUcoY29sb3IpID0gImF1dG8iOwogCi0j
aWYgR1RFU1RfT1NfV0lORE9XUworI2lmIEdURVNUX09TX1dJTkRPV1MgJiYgIUdURVNUX09TX1dJ
TkRPV1NfTUlOR1cKICAgLy8gT24gV2luZG93cywgd2UgaWdub3JlIHRoZSBURVJNIHZhcmlhYmxl
IGFzIGl0J3MgdXN1YWxseSBub3Qgc2V0LgogCiAgIFNldEVudigiVEVSTSIsICJkdW1iIik7CkBA
IC03MDA2LDIwICs2ODQwLDE5IEBAIFRFU1QoSGFzRmFpbHVyZVRlc3QsIFdvcmtzT3V0c2lkZU9m
VGVzdEJvZHkyKSB7CiAKIGNsYXNzIFRlc3RMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVu
dExpc3RlbmVyIHsKICBwdWJsaWM6Ci0gIFRlc3RMaXN0ZW5lcigpIDogb25fc3RhcnRfY291bnRl
cl8oTlVMTCksIGlzX2Rlc3Ryb3llZF8oTlVMTCkge30KKyAgVGVzdExpc3RlbmVyKCkgOiBvbl9z
dGFydF9jb3VudGVyXyhudWxscHRyKSwgaXNfZGVzdHJveWVkXyhudWxscHRyKSB7fQogICBUZXN0
TGlzdGVuZXIoaW50KiBvbl9zdGFydF9jb3VudGVyLCBib29sKiBpc19kZXN0cm95ZWQpCiAgICAg
ICA6IG9uX3N0YXJ0X2NvdW50ZXJfKG9uX3N0YXJ0X2NvdW50ZXIpLAogICAgICAgICBpc19kZXN0
cm95ZWRfKGlzX2Rlc3Ryb3llZCkge30KIAotICB2aXJ0dWFsIH5UZXN0TGlzdGVuZXIoKSB7Cisg
IH5UZXN0TGlzdGVuZXIoKSBvdmVycmlkZSB7CiAgICAgaWYgKGlzX2Rlc3Ryb3llZF8pCiAgICAg
ICAqaXNfZGVzdHJveWVkXyA9IHRydWU7CiAgIH0KIAogIHByb3RlY3RlZDoKLSAgdmlydHVhbCB2
b2lkIE9uVGVzdFByb2dyYW1TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLykgewot
ICAgIGlmIChvbl9zdGFydF9jb3VudGVyXyAhPSBOVUxMKQotICAgICAgKCpvbl9zdGFydF9jb3Vu
dGVyXykrKzsKKyAgdm9pZCBPblRlc3RQcm9ncmFtU3RhcnQoY29uc3QgVW5pdFRlc3QmIC8qdW5p
dF90ZXN0Ki8pIG92ZXJyaWRlIHsKKyAgICBpZiAob25fc3RhcnRfY291bnRlcl8gIT0gbnVsbHB0
cikgKCpvbl9zdGFydF9jb3VudGVyXykrKzsKICAgfQogCiAgcHJpdmF0ZToKQEAgLTcwMzEsOSAr
Njg2NCw5IEBAIGNsYXNzIFRlc3RMaXN0ZW5lciA6IHB1YmxpYyBFbXB0eVRlc3RFdmVudExpc3Rl
bmVyIHsKIFRFU1QoVGVzdEV2ZW50TGlzdGVuZXJzVGVzdCwgQ29uc3RydWN0aW9uV29ya3MpIHsK
ICAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3RlbmVyczsKIAotICBFWFBFQ1RfVFJVRShUZXN0RXZl
bnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6R2V0UmVwZWF0ZXIoJmxpc3RlbmVycykgIT0gTlVMTCk7Ci0g
IEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkgPT0gTlVMTCk7
Ci0gIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0X3htbF9nZW5lcmF0b3IoKSA9PSBOVUxM
KTsKKyAgRVhQRUNUX1RSVUUoVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OkdldFJlcGVhdGVy
KCZsaXN0ZW5lcnMpICE9IG51bGxwdHIpOworICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVs
dF9yZXN1bHRfcHJpbnRlcigpID09IG51bGxwdHIpOworICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMu
ZGVmYXVsdF94bWxfZ2VuZXJhdG9yKCkgPT0gbnVsbHB0cik7CiB9CiAKIC8vIFRlc3RzIHRoYXQg
dGhlIFRlc3RFdmVudExpc3RlbmVycyBkZXN0cnVjdG9yIGRlbGV0ZXMgYWxsIHRoZSBsaXN0ZW5l
cnMgaXQKQEAgLTcwNDIsMTIgKzY4NzUsMTIgQEAgVEVTVChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0
LCBEZXN0cnVjdGlvbldvcmtzKSB7CiAgIGJvb2wgZGVmYXVsdF9yZXN1bHRfcHJpbnRlcl9pc19k
ZXN0cm95ZWQgPSBmYWxzZTsKICAgYm9vbCBkZWZhdWx0X3htbF9wcmludGVyX2lzX2Rlc3Ryb3ll
ZCA9IGZhbHNlOwogICBib29sIGV4dHJhX2xpc3RlbmVyX2lzX2Rlc3Ryb3llZCA9IGZhbHNlOwot
ICBUZXN0TGlzdGVuZXIqIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIgPSBuZXcgVGVzdExpc3RlbmVy
KAotICAgICAgTlVMTCwgJmRlZmF1bHRfcmVzdWx0X3ByaW50ZXJfaXNfZGVzdHJveWVkKTsKLSAg
VGVzdExpc3RlbmVyKiBkZWZhdWx0X3htbF9wcmludGVyID0gbmV3IFRlc3RMaXN0ZW5lcigKLSAg
ICAgIE5VTEwsICZkZWZhdWx0X3htbF9wcmludGVyX2lzX2Rlc3Ryb3llZCk7Ci0gIFRlc3RMaXN0
ZW5lciogZXh0cmFfbGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKAotICAgICAgTlVMTCwgJmV4
dHJhX2xpc3RlbmVyX2lzX2Rlc3Ryb3llZCk7CisgIFRlc3RMaXN0ZW5lciogZGVmYXVsdF9yZXN1
bHRfcHJpbnRlciA9CisgICAgICBuZXcgVGVzdExpc3RlbmVyKG51bGxwdHIsICZkZWZhdWx0X3Jl
c3VsdF9wcmludGVyX2lzX2Rlc3Ryb3llZCk7CisgIFRlc3RMaXN0ZW5lciogZGVmYXVsdF94bWxf
cHJpbnRlciA9CisgICAgICBuZXcgVGVzdExpc3RlbmVyKG51bGxwdHIsICZkZWZhdWx0X3htbF9w
cmludGVyX2lzX2Rlc3Ryb3llZCk7CisgIFRlc3RMaXN0ZW5lciogZXh0cmFfbGlzdGVuZXIgPQor
ICAgICAgbmV3IFRlc3RMaXN0ZW5lcihudWxscHRyLCAmZXh0cmFfbGlzdGVuZXJfaXNfZGVzdHJv
eWVkKTsKIAogICB7CiAgICAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3RlbmVyczsKQEAgLTcwODcs
MjEgKzY5MjAsMjEgQEAgY2xhc3MgU2VxdWVuY2VUZXN0aW5nTGlzdGVuZXIgOiBwdWJsaWMgRW1w
dHlUZXN0RXZlbnRMaXN0ZW5lciB7CiAgICAgICA6IHZlY3Rvcl8odmVjdG9yKSwgaWRfKGlkKSB7
fQogCiAgcHJvdGVjdGVkOgotICB2aXJ0dWFsIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNvbnN0
IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSB7CisgIHZvaWQgT25UZXN0UHJvZ3JhbVN0YXJ0KGNv
bnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVz
aF9iYWNrKEdldEV2ZW50RGVzY3JpcHRpb24oIk9uVGVzdFByb2dyYW1TdGFydCIpKTsKICAgfQog
Ci0gIHZpcnR1YWwgdm9pZCBPblRlc3RQcm9ncmFtRW5kKGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRf
dGVzdCovKSB7CisgIHZvaWQgT25UZXN0UHJvZ3JhbUVuZChjb25zdCBVbml0VGVzdCYgLyp1bml0
X3Rlc3QqLykgb3ZlcnJpZGUgewogICAgIHZlY3Rvcl8tPnB1c2hfYmFjayhHZXRFdmVudERlc2Ny
aXB0aW9uKCJPblRlc3RQcm9ncmFtRW5kIikpOwogICB9CiAKLSAgdmlydHVhbCB2b2lkIE9uVGVz
dEl0ZXJhdGlvblN0YXJ0KGNvbnN0IFVuaXRUZXN0JiAvKnVuaXRfdGVzdCovLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKKyAgdm9pZCBP
blRlc3RJdGVyYXRpb25TdGFydChjb25zdCBVbml0VGVzdCYgLyp1bml0X3Rlc3QqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgLyppdGVyYXRpb24qLykgb3ZlcnJpZGUgewogICAg
IHZlY3Rvcl8tPnB1c2hfYmFjayhHZXRFdmVudERlc2NyaXB0aW9uKCJPblRlc3RJdGVyYXRpb25T
dGFydCIpKTsKICAgfQogCi0gIHZpcnR1YWwgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3Qg
VW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IC8qaXRlcmF0aW9uKi8pIHsKKyAgdm9pZCBPblRlc3RJdGVyYXRpb25FbmQoY29uc3Qg
VW5pdFRlc3QmIC8qdW5pdF90ZXN0Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAv
Kml0ZXJhdGlvbiovKSBvdmVycmlkZSB7CiAgICAgdmVjdG9yXy0+cHVzaF9iYWNrKEdldEV2ZW50
RGVzY3JpcHRpb24oIk9uVGVzdEl0ZXJhdGlvbkVuZCIpKTsKICAgfQogCkBAIC03MTcyLDcgKzcw
MDUsNyBAQCBURVNUKFRlc3RFdmVudExpc3RlbmVyc1Rlc3QsIFJlbGVhc2UpIHsKICAgICBFWFBF
Q1RfRVEobGlzdGVuZXIsIGxpc3RlbmVycy5SZWxlYXNlKGxpc3RlbmVyKSk7CiAgICAgVGVzdEV2
ZW50TGlzdGVuZXJzQWNjZXNzb3I6OkdldFJlcGVhdGVyKCZsaXN0ZW5lcnMpLT5PblRlc3RQcm9n
cmFtU3RhcnQoCiAgICAgICAgICpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKSk7Ci0gICAgRVhQRUNU
X1RSVUUobGlzdGVuZXJzLlJlbGVhc2UobGlzdGVuZXIpID09IE5VTEwpOworICAgIEVYUEVDVF9U
UlVFKGxpc3RlbmVycy5SZWxlYXNlKGxpc3RlbmVyKSA9PSBudWxscHRyKTsKICAgfQogICBFWFBF
Q1RfRVEoMCwgb25fc3RhcnRfY291bnRlcik7CiAgIEVYUEVDVF9GQUxTRShpc19kZXN0cm95ZWQp
OwpAQCAtNzE4Miw3ICs3MDE1LDcgQEAgVEVTVChUZXN0RXZlbnRMaXN0ZW5lcnNUZXN0LCBSZWxl
YXNlKSB7CiAvLyBUZXN0cyB0aGF0IG5vIGV2ZW50cyBhcmUgZm9yd2FyZGVkIHdoZW4gZXZlbnQg
Zm9yd2FyZGluZyBpcyBkaXNhYmxlZC4KIFRFU1QoRXZlbnRMaXN0ZW5lclRlc3QsIFN1cHByZXNz
RXZlbnRGb3J3YXJkaW5nKSB7CiAgIGludCBvbl9zdGFydF9jb3VudGVyID0gMDsKLSAgVGVzdExp
c3RlbmVyKiBsaXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIoJm9uX3N0YXJ0X2NvdW50ZXIsIE5V
TEwpOworICBUZXN0TGlzdGVuZXIqIGxpc3RlbmVyID0gbmV3IFRlc3RMaXN0ZW5lcigmb25fc3Rh
cnRfY291bnRlciwgbnVsbHB0cik7CiAKICAgVGVzdEV2ZW50TGlzdGVuZXJzIGxpc3RlbmVyczsK
ICAgbGlzdGVuZXJzLkFwcGVuZChsaXN0ZW5lcik7CkBAIC03MjIzLDkgKzcwNTYsOSBAQCBURVNU
KEV2ZW50TGlzdGVuZXJUZXN0LCBkZWZhdWx0X3Jlc3VsdF9wcmludGVyKSB7CiAKICAgLy8gUmVw
bGFjaW5nIGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIgd2l0aCBzb21ldGhpbmcgZWxzZSBzaG91bGQg
cmVtb3ZlIGl0CiAgIC8vIGZyb20gdGhlIGxpc3QgYW5kIGRlc3Ryb3kgaXQuCi0gIFRlc3RFdmVu
dExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0UmVzdWx0UHJpbnRlcigmbGlzdGVuZXJzLCBO
VUxMKTsKKyAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRSZXN1bHRQcmlu
dGVyKCZsaXN0ZW5lcnMsIG51bGxwdHIpOwogCi0gIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZh
dWx0X3Jlc3VsdF9wcmludGVyKCkgPT0gTlVMTCk7CisgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5k
ZWZhdWx0X3Jlc3VsdF9wcmludGVyKCkgPT0gbnVsbHB0cik7CiAgIEVYUEVDVF9UUlVFKGlzX2Rl
c3Ryb3llZCk7CiAKICAgLy8gQWZ0ZXIgYnJvYWRjYXN0aW5nIGFuIGV2ZW50IHRoZSBjb3VudGVy
IGlzIHN0aWxsIHRoZSBzYW1lLCBpbmRpY2F0aW5nCkBAIC03MjQ5LDcgKzcwODIsNyBAQCBURVNU
KEV2ZW50TGlzdGVuZXJUZXN0LCBSZW1vdmluZ0RlZmF1bHRSZXN1bHRQcmludGVyV29ya3MpIHsK
ICAgICBUZXN0RXZlbnRMaXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFJlc3VsdFByaW50ZXIo
Jmxpc3RlbmVycywgbGlzdGVuZXIpOwogCiAgICAgRVhQRUNUX0VRKGxpc3RlbmVyLCBsaXN0ZW5l
cnMuUmVsZWFzZShsaXN0ZW5lcikpOwotICAgIEVYUEVDVF9UUlVFKGxpc3RlbmVycy5kZWZhdWx0
X3Jlc3VsdF9wcmludGVyKCkgPT0gTlVMTCk7CisgICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRl
ZmF1bHRfcmVzdWx0X3ByaW50ZXIoKSA9PSBudWxscHRyKTsKICAgICBFWFBFQ1RfRkFMU0UoaXNf
ZGVzdHJveWVkKTsKIAogICAgIC8vIEJyb2FkY2FzdGluZyBldmVudHMgbm93IHNob3VsZCBub3Qg
YWZmZWN0IGRlZmF1bHRfcmVzdWx0X3ByaW50ZXIuCkBAIC03MjgyLDkgKzcxMTUsOSBAQCBURVNU
KEV2ZW50TGlzdGVuZXJUZXN0LCBkZWZhdWx0X3htbF9nZW5lcmF0b3IpIHsKIAogICAvLyBSZXBs
YWNpbmcgZGVmYXVsdF94bWxfZ2VuZXJhdG9yIHdpdGggc29tZXRoaW5nIGVsc2Ugc2hvdWxkIHJl
bW92ZSBpdAogICAvLyBmcm9tIHRoZSBsaXN0IGFuZCBkZXN0cm95IGl0LgotICBUZXN0RXZlbnRM
aXN0ZW5lcnNBY2Nlc3Nvcjo6U2V0RGVmYXVsdFhtbEdlbmVyYXRvcigmbGlzdGVuZXJzLCBOVUxM
KTsKKyAgVGVzdEV2ZW50TGlzdGVuZXJzQWNjZXNzb3I6OlNldERlZmF1bHRYbWxHZW5lcmF0b3Io
Jmxpc3RlbmVycywgbnVsbHB0cik7CiAKLSAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRf
eG1sX2dlbmVyYXRvcigpID09IE5VTEwpOworICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVs
dF94bWxfZ2VuZXJhdG9yKCkgPT0gbnVsbHB0cik7CiAgIEVYUEVDVF9UUlVFKGlzX2Rlc3Ryb3ll
ZCk7CiAKICAgLy8gQWZ0ZXIgYnJvYWRjYXN0aW5nIGFuIGV2ZW50IHRoZSBjb3VudGVyIGlzIHN0
aWxsIHRoZSBzYW1lLCBpbmRpY2F0aW5nCkBAIC03MzA4LDcgKzcxNDEsNyBAQCBURVNUKEV2ZW50
TGlzdGVuZXJUZXN0LCBSZW1vdmluZ0RlZmF1bHRYbWxHZW5lcmF0b3JXb3JrcykgewogICAgIFRl
c3RFdmVudExpc3RlbmVyc0FjY2Vzc29yOjpTZXREZWZhdWx0WG1sR2VuZXJhdG9yKCZsaXN0ZW5l
cnMsIGxpc3RlbmVyKTsKIAogICAgIEVYUEVDVF9FUShsaXN0ZW5lciwgbGlzdGVuZXJzLlJlbGVh
c2UobGlzdGVuZXIpKTsKLSAgICBFWFBFQ1RfVFJVRShsaXN0ZW5lcnMuZGVmYXVsdF94bWxfZ2Vu
ZXJhdG9yKCkgPT0gTlVMTCk7CisgICAgRVhQRUNUX1RSVUUobGlzdGVuZXJzLmRlZmF1bHRfeG1s
X2dlbmVyYXRvcigpID09IG51bGxwdHIpOwogICAgIEVYUEVDVF9GQUxTRShpc19kZXN0cm95ZWQp
OwogCiAgICAgLy8gQnJvYWRjYXN0aW5nIGV2ZW50cyBub3cgc2hvdWxkIG5vdCBhZmZlY3QgZGVm
YXVsdF94bWxfZ2VuZXJhdG9yLgpAQCAtNzM3MSw5NSArNzIwNCw4MyBAQCBHVEVTVF9URVNUKEFs
dGVybmF0aXZlTmFtZVRlc3QsIFdvcmtzKSB7ICAvLyBHVEVTVF9URVNUIGlzIHRoZSBzYW1lIGFz
IFRFU1QuCiAKIC8vIFRlc3RzIGZvciBpbnRlcm5hbCB1dGlsaXRpZXMgbmVjZXNzYXJ5IGZvciBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgdW5pdmVyc2FsCiAvLyBwcmludGluZy4KLS8vIEZJWE1FOiBG
aW5kIGEgYmV0dGVyIGhvbWUgZm9yIHRoZW0uCiAKIGNsYXNzIENvbnZlcnNpb25IZWxwZXJCYXNl
IHt9OwogY2xhc3MgQ29udmVyc2lvbkhlbHBlckRlcml2ZWQgOiBwdWJsaWMgQ29udmVyc2lvbkhl
bHBlckJhc2Uge307CiAKLS8vIFRlc3RzIHRoYXQgSXNBUHJvdG9jb2xNZXNzYWdlPFQ+Ojp2YWx1
ZSBpcyBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4KLVRFU1QoSXNBUHJvdG9jb2xNZXNzYWdlVGVz
dCwgVmFsdWVJc0NvbXBpbGVUaW1lQ29uc3RhbnQpIHsKLSAgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KElzQVByb3RvY29sTWVzc2FnZTxQcm90b2NvbE1lc3NhZ2U+Ojp2YWx1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0X3RydWUpOwotICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oIUlzQVBy
b3RvY29sTWVzc2FnZTxpbnQ+Ojp2YWx1ZSwgY29uc3RfZmFsc2UpOwotfQotCi0vLyBUZXN0cyB0
aGF0IElzQVByb3RvY29sTWVzc2FnZTxUPjo6dmFsdWUgaXMgdHJ1ZSB3aGVuIFQgaXMKLS8vIHBy
b3RvMjo6TWVzc2FnZSBvciBhIHN1Yi1jbGFzcyBvZiBpdC4KLVRFU1QoSXNBUHJvdG9jb2xNZXNz
YWdlVGVzdCwgVmFsdWVJc1RydWVXaGVuVHlwZUlzQVByb3RvY29sTWVzc2FnZSkgewotICBFWFBF
Q1RfVFJVRShJc0FQcm90b2NvbE1lc3NhZ2U8IDo6cHJvdG8yOjpNZXNzYWdlPjo6dmFsdWUpOwot
ICBFWFBFQ1RfVFJVRShJc0FQcm90b2NvbE1lc3NhZ2U8UHJvdG9jb2xNZXNzYWdlPjo6dmFsdWUp
OwotfQotCi0vLyBUZXN0cyB0aGF0IElzQVByb3RvY29sTWVzc2FnZTxUPjo6dmFsdWUgaXMgZmFs
c2Ugd2hlbiBUIGlzIG5laXRoZXIKLS8vIFByb3RvY29sTWVzc2FnZSBub3IgYSBzdWItY2xhc3Mg
b2YgaXQuCi1URVNUKElzQVByb3RvY29sTWVzc2FnZVRlc3QsIFZhbHVlSXNGYWxzZVdoZW5UeXBl
SXNOb3RBUHJvdG9jb2xNZXNzYWdlKSB7Ci0gIEVYUEVDVF9GQUxTRShJc0FQcm90b2NvbE1lc3Nh
Z2U8aW50Pjo6dmFsdWUpOwotICBFWFBFQ1RfRkFMU0UoSXNBUHJvdG9jb2xNZXNzYWdlPGNvbnN0
IENvbnZlcnNpb25IZWxwZXJCYXNlPjo6dmFsdWUpOwotfQotCi0vLyBUZXN0cyB0aGF0IENvbXBp
bGVBc3NlcnRUeXBlc0VxdWFsIGNvbXBpbGVzIHdoZW4gdGhlIHR5cGUgYXJndW1lbnRzIGFyZQot
Ly8gZXF1YWwuCi1URVNUKENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsLCBDb21waWxlc1doZW5UeXBl
c0FyZUVxdWFsKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPHZvaWQsIHZvaWQ+KCk7Ci0g
IENvbXBpbGVBc3NlcnRUeXBlc0VxdWFsPGludCosIGludCo+KCk7Ci19Ci0KLS8vIFRlc3RzIHRo
YXQgUmVtb3ZlUmVmZXJlbmNlIGRvZXMgbm90IGFmZmVjdCBub24tcmVmZXJlbmNlIHR5cGVzLgot
VEVTVChSZW1vdmVSZWZlcmVuY2VUZXN0LCBEb2VzTm90QWZmZWN0Tm9uUmVmZXJlbmNlVHlwZSkg
ewotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQsIFJlbW92ZVJlZmVyZW5jZTxpbnQ+Ojp0
eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyLCBSZW1vdmVSZWZl
cmVuY2U8Y29uc3QgY2hhcj46OnR5cGU+KCk7Ci19Ci0KLS8vIFRlc3RzIHRoYXQgUmVtb3ZlUmVm
ZXJlbmNlIHJlbW92ZXMgcmVmZXJlbmNlIGZyb20gcmVmZXJlbmNlIHR5cGVzLgotVEVTVChSZW1v
dmVSZWZlcmVuY2VUZXN0LCBSZW1vdmVzUmVmZXJlbmNlKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBl
c0VxdWFsPGludCwgUmVtb3ZlUmVmZXJlbmNlPGludCY+Ojp0eXBlPigpOwotICBDb21waWxlQXNz
ZXJ0VHlwZXNFcXVhbDxjb25zdCBjaGFyLCBSZW1vdmVSZWZlcmVuY2U8Y29uc3QgY2hhciY+Ojp0
eXBlPigpOwotfQorc3RydWN0IEhhc0RlYnVnU3RyaW5nTWV0aG9kcyB7CisgIHN0ZDo6c3RyaW5n
IERlYnVnU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KKyAgc3RkOjpzdHJpbmcgU2hvcnRE
ZWJ1Z1N0cmluZygpIGNvbnN0IHsgcmV0dXJuICIiOyB9Cit9OwogCi0vLyBUZXN0cyBHVEVTVF9S
RU1PVkVfUkVGRVJFTkNFXy4KK3N0cnVjdCBJbmhlcml0c0RlYnVnU3RyaW5nTWV0aG9kcyA6IHB1
YmxpYyBIYXNEZWJ1Z1N0cmluZ01ldGhvZHMge307CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDI+Ci12b2lkIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZSgpIHsKLSAgQ29tcGls
ZUFzc2VydFR5cGVzRXF1YWw8VDEsIEdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfKFQyKT4oKTsKLX0K
K3N0cnVjdCBXcm9uZ1R5cGVEZWJ1Z1N0cmluZ01ldGhvZCB7CisgIHN0ZDo6c3RyaW5nIERlYnVn
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIiI7IH0KKyAgaW50IFNob3J0RGVidWdTdHJpbmcoKSBj
b25zdCB7IHJldHVybiAxOyB9Cit9OwogCi1URVNUKFJlbW92ZVJlZmVyZW5jZVRlc3QsIE1hY3Jv
VmVyc2lvbikgewotICBUZXN0R1Rlc3RSZW1vdmVSZWZlcmVuY2U8aW50LCBpbnQ+KCk7Ci0gIFRl
c3RHVGVzdFJlbW92ZVJlZmVyZW5jZTxjb25zdCBjaGFyLCBjb25zdCBjaGFyJj4oKTsKLX0KK3N0
cnVjdCBOb3RDb25zdERlYnVnU3RyaW5nTWV0aG9kIHsKKyAgc3RkOjpzdHJpbmcgRGVidWdTdHJp
bmcoKSB7IHJldHVybiAiIjsgfQorICBzdGQ6OnN0cmluZyBTaG9ydERlYnVnU3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gIiI7IH0KK307CiAKK3N0cnVjdCBNaXNzaW5nRGVidWdTdHJpbmdNZXRob2Qg
eworICBzdGQ6OnN0cmluZyBEZWJ1Z1N0cmluZygpIHsgcmV0dXJuICIiOyB9Cit9OwogCi0vLyBU
ZXN0cyB0aGF0IFJlbW92ZUNvbnN0IGRvZXMgbm90IGFmZmVjdCBub24tY29uc3QgdHlwZXMuCi1U
RVNUKFJlbW92ZUNvbnN0VGVzdCwgRG9lc05vdEFmZmVjdE5vbkNvbnN0VHlwZSkgewotICBDb21w
aWxlQXNzZXJ0VHlwZXNFcXVhbDxpbnQsIFJlbW92ZUNvbnN0PGludD46OnR5cGU+KCk7Ci0gIENv
bXBpbGVBc3NlcnRUeXBlc0VxdWFsPGNoYXImLCBSZW1vdmVDb25zdDxjaGFyJj46OnR5cGU+KCk7
CitzdHJ1Y3QgSW5jb21wbGV0ZVR5cGU7CisKKy8vIFRlc3RzIHRoYXQgSGFzRGVidWdTdHJpbmdB
bmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyBhIGNvbXBpbGUtdGltZQorLy8gY29uc3Rh
bnQuCitURVNUKEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZ1Rlc3QsIFZhbHVlSXND
b21waWxlVGltZUNvbnN0YW50KSB7CisgIEdURVNUX0NPTVBJTEVfQVNTRVJUXygKKyAgICAgIEhh
c0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxIYXNEZWJ1Z1N0cmluZ01ldGhvZHM+Ojp2
YWx1ZSwKKyAgICAgIGNvbnN0X3RydWUpOworICBHVEVTVF9DT01QSUxFX0FTU0VSVF8oCisgICAg
ICBIYXNEZWJ1Z1N0cmluZ0FuZFNob3J0RGVidWdTdHJpbmc8SW5oZXJpdHNEZWJ1Z1N0cmluZ01l
dGhvZHM+Ojp2YWx1ZSwKKyAgICAgIGNvbnN0X3RydWUpOworICBHVEVTVF9DT01QSUxFX0FTU0VS
VF8oSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEluaGVyaXRzRGVidWdTdHJpbmdNZXRob2RzPjo6dmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdF90cnVlKTsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRf
KAorICAgICAgIUhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxXcm9uZ1R5cGVEZWJ1
Z1N0cmluZ01ldGhvZD46OnZhbHVlLAorICAgICAgY29uc3RfZmFsc2UpOworICBHVEVTVF9DT01Q
SUxFX0FTU0VSVF8oCisgICAgICAhSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPE5v
dENvbnN0RGVidWdTdHJpbmdNZXRob2Q+Ojp2YWx1ZSwKKyAgICAgIGNvbnN0X2ZhbHNlKTsKKyAg
R1RFU1RfQ09NUElMRV9BU1NFUlRfKAorICAgICAgIUhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1
Z1N0cmluZzxNaXNzaW5nRGVidWdTdHJpbmdNZXRob2Q+Ojp2YWx1ZSwKKyAgICAgIGNvbnN0X2Zh
bHNlKTsKKyAgR1RFU1RfQ09NUElMRV9BU1NFUlRfKAorICAgICAgIUhhc0RlYnVnU3RyaW5nQW5k
U2hvcnREZWJ1Z1N0cmluZzxJbmNvbXBsZXRlVHlwZT46OnZhbHVlLCBjb25zdF9mYWxzZSk7Cisg
IEdURVNUX0NPTVBJTEVfQVNTRVJUXyghSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5n
PGludD46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfZmFsc2UpOwogfQog
Ci0vLyBUZXN0cyB0aGF0IFJlbW92ZUNvbnN0IHJlbW92ZXMgY29uc3QgZnJvbSBjb25zdCB0eXBl
cy4KLVRFU1QoUmVtb3ZlQ29uc3RUZXN0LCBSZW1vdmVzQ29uc3QpIHsKLSAgQ29tcGlsZUFzc2Vy
dFR5cGVzRXF1YWw8aW50LCBSZW1vdmVDb25zdDxjb25zdCBpbnQ+Ojp0eXBlPigpOwotICBDb21w
aWxlQXNzZXJ0VHlwZXNFcXVhbDxjaGFyWzJdLCBSZW1vdmVDb25zdDxjb25zdCBjaGFyWzJdPjo6
dHlwZT4oKTsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8Y2hhclsyXVszXSwgUmVtb3ZlQ29u
c3Q8Y29uc3QgY2hhclsyXVszXT46OnR5cGU+KCk7CisvLyBUZXN0cyB0aGF0IEhhc0RlYnVnU3Ry
aW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxUPjo6dmFsdWUgaXMgdHJ1ZSB3aGVuIFQgaGFzCisvLyBu
ZWVkZWQgbWV0aG9kcy4KK1RFU1QoSGFzRGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nVGVz
dCwKKyAgICAgVmFsdWVJc1RydWVXaGVuVHlwZUhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1Z1N0
cmluZykgeworICBFWFBFQ1RfVFJVRSgKKyAgICAgIEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1
Z1N0cmluZzxJbmhlcml0c0RlYnVnU3RyaW5nTWV0aG9kcz46OnZhbHVlKTsKIH0KIAotLy8gVGVz
dHMgR1RFU1RfUkVNT1ZFX0NPTlNUXy4KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMj4KLXZvaWQgVGVzdEdUZXN0UmVtb3ZlQ29uc3QoKSB7Ci0gIENvbXBpbGVBc3NlcnRUeXBl
c0VxdWFsPFQxLCBHVEVTVF9SRU1PVkVfQ09OU1RfKFQyKT4oKTsKLX0KLQotVEVTVChSZW1vdmVD
b25zdFRlc3QsIE1hY3JvVmVyc2lvbikgewotICBUZXN0R1Rlc3RSZW1vdmVDb25zdDxpbnQsIGlu
dD4oKTsKLSAgVGVzdEdUZXN0UmVtb3ZlQ29uc3Q8ZG91YmxlJiwgZG91YmxlJj4oKTsKLSAgVGVz
dEdUZXN0UmVtb3ZlQ29uc3Q8Y2hhciwgY29uc3QgY2hhcj4oKTsKKy8vIFRlc3RzIHRoYXQgSGFz
RGVidWdTdHJpbmdBbmRTaG9ydERlYnVnU3RyaW5nPFQ+Ojp2YWx1ZSBpcyBmYWxzZSB3aGVuIFQK
Ky8vIGRvZXNuJ3QgaGF2ZSBuZWVkZWQgbWV0aG9kcy4KK1RFU1QoSGFzRGVidWdTdHJpbmdBbmRT
aG9ydERlYnVnU3RyaW5nVGVzdCwKKyAgICAgVmFsdWVJc0ZhbHNlV2hlblR5cGVJc05vdEFQcm90
b2NvbE1lc3NhZ2UpIHsKKyAgRVhQRUNUX0ZBTFNFKEhhc0RlYnVnU3RyaW5nQW5kU2hvcnREZWJ1
Z1N0cmluZzxpbnQ+Ojp2YWx1ZSk7CisgIEVYUEVDVF9GQUxTRSgKKyAgICAgIEhhc0RlYnVnU3Ry
aW5nQW5kU2hvcnREZWJ1Z1N0cmluZzxjb25zdCBDb252ZXJzaW9uSGVscGVyQmFzZT46OnZhbHVl
KTsKIH0KIAogLy8gVGVzdHMgR1RFU1RfUkVNT1ZFX1JFRkVSRU5DRV9BTkRfQ09OU1RfLgogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgogdm9pZCBUZXN0R1Rlc3RSZW1vdmVS
ZWZlcmVuY2VBbmRDb25zdCgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIEdURVNU
X1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyhUMik+KCk7CisgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19zYW1lPFQxLCBHVEVTVF9SRU1PVkVfUkVGRVJFTkNFX0FORF9DT05TVF8oVDIpPjo6dmFs
dWUsCisgICAgICAgICAgICAgICAgIkdURVNUX1JFTU9WRV9SRUZFUkVOQ0VfQU5EX0NPTlNUXyBm
YWlsZWQuIik7CiB9CiAKIFRFU1QoUmVtb3ZlUmVmZXJlbmNlVG9Db25zdFRlc3QsIFdvcmtzKSB7
CkBAIC03NDcwLDM1ICs3MjkxLDEyIEBAIFRFU1QoUmVtb3ZlUmVmZXJlbmNlVG9Db25zdFRlc3Qs
IFdvcmtzKSB7CiAgIFRlc3RHVGVzdFJlbW92ZVJlZmVyZW5jZUFuZENvbnN0PGNvbnN0IGNoYXIq
LCBjb25zdCBjaGFyKj4oKTsKIH0KIAotLy8gVGVzdHMgdGhhdCBBZGRSZWZlcmVuY2UgZG9lcyBu
b3QgYWZmZWN0IHJlZmVyZW5jZSB0eXBlcy4KLVRFU1QoQWRkUmVmZXJlbmNlVGVzdCwgRG9lc05v
dEFmZmVjdFJlZmVyZW5jZVR5cGUpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8aW50Jiwg
QWRkUmVmZXJlbmNlPGludCY+Ojp0eXBlPigpOwotICBDb21waWxlQXNzZXJ0VHlwZXNFcXVhbDxj
b25zdCBjaGFyJiwgQWRkUmVmZXJlbmNlPGNvbnN0IGNoYXImPjo6dHlwZT4oKTsKLX0KLQotLy8g
VGVzdHMgdGhhdCBBZGRSZWZlcmVuY2UgYWRkcyByZWZlcmVuY2UgdG8gbm9uLXJlZmVyZW5jZSB0
eXBlcy4KLVRFU1QoQWRkUmVmZXJlbmNlVGVzdCwgQWRkc1JlZmVyZW5jZSkgewotICBDb21waWxl
QXNzZXJ0VHlwZXNFcXVhbDxpbnQmLCBBZGRSZWZlcmVuY2U8aW50Pjo6dHlwZT4oKTsKLSAgQ29t
cGlsZUFzc2VydFR5cGVzRXF1YWw8Y29uc3QgY2hhciYsIEFkZFJlZmVyZW5jZTxjb25zdCBjaGFy
Pjo6dHlwZT4oKTsKLX0KLQotLy8gVGVzdHMgR1RFU1RfQUREX1JFRkVSRU5DRV8uCi0KLXRlbXBs
YXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Ci12b2lkIFRlc3RHVGVzdEFkZFJlZmVyZW5j
ZSgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVzRXF1YWw8VDEsIEdURVNUX0FERF9SRUZFUkVOQ0Vf
KFQyKT4oKTsKLX0KLQotVEVTVChBZGRSZWZlcmVuY2VUZXN0LCBNYWNyb1ZlcnNpb24pIHsKLSAg
VGVzdEdUZXN0QWRkUmVmZXJlbmNlPGludCYsIGludD4oKTsKLSAgVGVzdEdUZXN0QWRkUmVmZXJl
bmNlPGNvbnN0IGNoYXImLCBjb25zdCBjaGFyJj4oKTsKLX0KLQogLy8gVGVzdHMgR1RFU1RfUkVG
RVJFTkNFX1RPX0NPTlNUXy4KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4K
IHZvaWQgVGVzdEdUZXN0UmVmZXJlbmNlVG9Db25zdCgpIHsKLSAgQ29tcGlsZUFzc2VydFR5cGVz
RXF1YWw8VDEsIEdURVNUX1JFRkVSRU5DRV9UT19DT05TVF8oVDIpPigpOworICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfc2FtZTxUMSwgR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyhUMik+Ojp2YWx1
ZSwKKyAgICAgICAgICAgICAgICAiR1RFU1RfUkVGRVJFTkNFX1RPX0NPTlNUXyBmYWlsZWQuIik7
CiB9CiAKIFRFU1QoR1Rlc3RSZWZlcmVuY2VUb0NvbnN0VGVzdCwgV29ya3MpIHsKQEAgLTc1MDgs
MzUgKzczMDYsNiBAQCBURVNUKEdUZXN0UmVmZXJlbmNlVG9Db25zdFRlc3QsIFdvcmtzKSB7CiAg
IFRlc3RHVGVzdFJlZmVyZW5jZVRvQ29uc3Q8Y29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCBzdGQ6
OnN0cmluZyY+KCk7CiB9CiAKLS8vIFRlc3RzIHRoYXQgSW1wbGljaXRseUNvbnZlcnRpYmxlPFQx
LCBUMj46OnZhbHVlIGlzIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotVEVTVChJbXBsaWNpdGx5
Q29udmVydGlibGVUZXN0LCBWYWx1ZUlzQ29tcGlsZVRpbWVDb25zdGFudCkgewotICBHVEVTVF9D
T01QSUxFX0FTU0VSVF8oKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxpbnQsIGludD46OnZhbHVlKSwg
Y29uc3RfdHJ1ZSk7Ci0gIEdURVNUX0NPTVBJTEVfQVNTRVJUXygoIUltcGxpY2l0bHlDb252ZXJ0
aWJsZTx2b2lkKiwgaW50Kj46OnZhbHVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
X2ZhbHNlKTsKLX0KLQotLy8gVGVzdHMgdGhhdCBJbXBsaWNpdGx5Q29udmVydGlibGU8VDEsIFQy
Pjo6dmFsdWUgaXMgdHJ1ZSB3aGVuIFQxIGNhbgotLy8gYmUgaW1wbGljaXRseSBjb252ZXJ0ZWQg
dG8gVDIuCi1URVNUKEltcGxpY2l0bHlDb252ZXJ0aWJsZVRlc3QsIFZhbHVlSXNUcnVlV2hlbkNv
bnZlcnRpYmxlKSB7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8aW50LCBk
b3VibGU+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfVFJVRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGRv
dWJsZSwgaW50Pjo6dmFsdWUpKTsKLSAgRVhQRUNUX1RSVUUoKEltcGxpY2l0bHlDb252ZXJ0aWJs
ZTxpbnQqLCB2b2lkKj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVy
dGlibGU8aW50KiwgY29uc3QgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNp
dGx5Q29udmVydGlibGU8Q29udmVyc2lvbkhlbHBlckRlcml2ZWQmLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbnZlcnNpb25IZWxwZXJCYXNlJj46OnZhbHVl
KSk7Ci0gIEVYUEVDVF9UUlVFKChJbXBsaWNpdGx5Q29udmVydGlibGU8Y29uc3QgQ29udmVyc2lv
bkhlbHBlckJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVy
c2lvbkhlbHBlckJhc2U+Ojp2YWx1ZSkpOwotfQotCi0vLyBUZXN0cyB0aGF0IEltcGxpY2l0bHlD
b252ZXJ0aWJsZTxUMSwgVDI+Ojp2YWx1ZSBpcyBmYWxzZSB3aGVuIFQxCi0vLyBjYW5ub3QgYmUg
aW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gVDIuCi1URVNUKEltcGxpY2l0bHlDb252ZXJ0aWJsZVRl
c3QsIFZhbHVlSXNGYWxzZVdoZW5Ob3RDb252ZXJ0aWJsZSkgewotICBFWFBFQ1RfRkFMU0UoKElt
cGxpY2l0bHlDb252ZXJ0aWJsZTxkb3VibGUsIGludCo+Ojp2YWx1ZSkpOwotICBFWFBFQ1RfRkFM
U0UoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTx2b2lkKiwgaW50Kj46OnZhbHVlKSk7Ci0gIEVYUEVD
VF9GQUxTRSgoSW1wbGljaXRseUNvbnZlcnRpYmxlPGNvbnN0IGludCosIGludCo+Ojp2YWx1ZSkp
OwotICBFWFBFQ1RfRkFMU0UoKEltcGxpY2l0bHlDb252ZXJ0aWJsZTxDb252ZXJzaW9uSGVscGVy
QmFzZSYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnNpb25I
ZWxwZXJEZXJpdmVkJj46OnZhbHVlKSk7Ci19CiAKIC8vIFRlc3RzIElzQ29udGFpbmVyVGVzdC4K
IApAQCAtNzU1NSw3ICs3MzI0LDYgQEAgVEVTVChJc0NvbnRhaW5lclRlc3RUZXN0LCBXb3Jrc0Zv
ckNvbnRhaW5lcikgewogICAgICAgICAgICAgc2l6ZW9mKElzQ29udGFpbmVyVGVzdDxzdGQ6Om1h
cDxpbnQsIGRvdWJsZT4gPigwKSkpOwogfQogCi0jaWYgR1RFU1RfTEFOR19DWFgxMQogc3RydWN0
IENvbnN0T25seUNvbnRhaW5lcldpdGhQb2ludGVySXRlcmF0b3IgewogICB1c2luZyBjb25zdF9p
dGVyYXRvciA9IGludCo7CiAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7CkBAIC03NTc3
LDcgKzczNDUsNiBAQCBURVNUKElzQ29udGFpbmVyVGVzdFRlc3QsIENvbnN0T25seUNvbnRhaW5l
cikgewogICBFWFBFQ1RfRVEoc2l6ZW9mKElzQ29udGFpbmVyKSwKICAgICAgICAgICAgIHNpemVv
ZihJc0NvbnRhaW5lclRlc3Q8Q29uc3RPbmx5Q29udGFpbmVyV2l0aENsYXNzSXRlcmF0b3I+KDAp
KSk7CiB9Ci0jZW5kaWYgIC8vIEdURVNUX0xBTkdfQ1hYMTEKIAogLy8gVGVzdHMgSXNIYXNoVGFi
bGUuCiBzdHJ1Y3QgQUhhc2hUYWJsZSB7CkBAIC03NTkwLDEzICs3MzU3LDggQEAgc3RydWN0IE5v
dFJlYWxseUFIYXNoVGFibGUgewogVEVTVChJc0hhc2hUYWJsZSwgQmFzaWMpIHsKICAgRVhQRUNU
X1RSVUUodGVzdGluZzo6aW50ZXJuYWw6OklzSGFzaFRhYmxlPEFIYXNoVGFibGU+Ojp2YWx1ZSk7
CiAgIEVYUEVDVF9GQUxTRSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8Tm90UmVhbGx5
QUhhc2hUYWJsZT46OnZhbHVlKTsKLSNpZiBHVEVTVF9MQU5HX0NYWDExCiAgIEVYUEVDVF9GQUxT
RSh0ZXN0aW5nOjppbnRlcm5hbDo6SXNIYXNoVGFibGU8c3RkOjp2ZWN0b3I8aW50Pj46OnZhbHVl
KTsKICAgRVhQRUNUX1RSVUUodGVzdGluZzo6aW50ZXJuYWw6OklzSGFzaFRhYmxlPHN0ZDo6dW5v
cmRlcmVkX3NldDxpbnQ+Pjo6dmFsdWUpOwotI2VuZGlmICAvLyBHVEVTVF9MQU5HX0NYWDExCi0j
aWYgR1RFU1RfSEFTX0hBU0hfU0VUXwotICBFWFBFQ1RfVFJVRSh0ZXN0aW5nOjppbnRlcm5hbDo6
SXNIYXNoVGFibGU8X19nbnVfY3h4OjpoYXNoX3NldDxpbnQ+Pjo6dmFsdWUpOwotI2VuZGlmICAv
LyBHVEVTVF9IQVNfSEFTSF9TRVRfCiB9CiAKIC8vIFRlc3RzIEFycmF5RXEoKS4KQEAgLTc3NDYs
NiArNzUwOCwyMjEgQEAgVEVTVChOYXRpdmVBcnJheVRlc3QsIFdvcmtzRm9yVHdvRGltZW5zaW9u
YWxBcnJheSkgewogICBFWFBFQ1RfRVEoYSwgbmEuYmVnaW4oKSk7CiB9CiAKKy8vIEluZGV4U2Vx
dWVuY2UKK1RFU1QoSW5kZXhTZXF1ZW5jZSwgTWFrZUluZGV4U2VxdWVuY2UpIHsKKyAgdXNpbmcg
dGVzdGluZzo6aW50ZXJuYWw6OkluZGV4U2VxdWVuY2U7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVy
bmFsOjpNYWtlSW5kZXhTZXF1ZW5jZTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICAoc3RkOjppc19z
YW1lPEluZGV4U2VxdWVuY2U8PiwgTWFrZUluZGV4U2VxdWVuY2U8MD46OnR5cGU+Ojp2YWx1ZSkp
OworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3NhbWU8SW5kZXhTZXF1ZW5jZTwwPiwg
TWFrZUluZGV4U2VxdWVuY2U8MT46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgKKyAg
ICAgIChzdGQ6OmlzX3NhbWU8SW5kZXhTZXF1ZW5jZTwwLCAxPiwgTWFrZUluZGV4U2VxdWVuY2U8
Mj46OnR5cGU+Ojp2YWx1ZSkpOworICBFWFBFQ1RfVFJVRSgoCisgICAgICBzdGQ6OmlzX3NhbWU8
SW5kZXhTZXF1ZW5jZTwwLCAxLCAyPiwgTWFrZUluZGV4U2VxdWVuY2U8Mz46OnR5cGU+Ojp2YWx1
ZSkpOworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX2Jhc2Vfb2Y8SW5kZXhTZXF1ZW5j
ZTwwLCAxLCAyPiwgTWFrZUluZGV4U2VxdWVuY2U8Mz4+Ojp2YWx1ZSkpOworfQorCisvLyBFbGVt
RnJvbUxpc3QKK1RFU1QoRWxlbUZyb21MaXN0LCBCYXNpYykgeworICB1c2luZyB0ZXN0aW5nOjpp
bnRlcm5hbDo6RWxlbUZyb21MaXN0OworICBFWFBFQ1RfVFJVRSgKKyAgICAgIChzdGQ6OmlzX3Nh
bWU8aW50LCBFbGVtRnJvbUxpc3Q8MCwgaW50LCBkb3VibGUsIGNoYXI+Ojp0eXBlPjo6dmFsdWUp
KTsKKyAgRVhQRUNUX1RSVUUoCisgICAgICAoc3RkOjppc19zYW1lPGRvdWJsZSwgRWxlbUZyb21M
aXN0PDEsIGludCwgZG91YmxlLCBjaGFyPjo6dHlwZT46OnZhbHVlKSk7CisgIEVYUEVDVF9UUlVF
KAorICAgICAgKHN0ZDo6aXNfc2FtZTxjaGFyLCBFbGVtRnJvbUxpc3Q8MiwgaW50LCBkb3VibGUs
IGNoYXI+Ojp0eXBlPjo6dmFsdWUpKTsKKyAgRVhQRUNUX1RSVUUoKAorICAgICAgc3RkOjppc19z
YW1lPGNoYXIsIEVsZW1Gcm9tTGlzdDw3LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBp
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIsIGludCwgaW50
LCBpbnQsIGludD46OnR5cGU+Ojp2YWx1ZSkpOworfQorCisvLyBGbGF0VHVwbGUKK1RFU1QoRmxh
dFR1cGxlLCBCYXNpYykgeworICB1c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlOwor
CisgIEZsYXRUdXBsZTxpbnQsIGRvdWJsZSwgY29uc3QgY2hhcio+IHR1cGxlID0ge307CisgIEVY
UEVDVF9FUSgwLCB0dXBsZS5HZXQ8MD4oKSk7CisgIEVYUEVDVF9FUSgwLjAsIHR1cGxlLkdldDwx
PigpKTsKKyAgRVhQRUNUX0VRKG51bGxwdHIsIHR1cGxlLkdldDwyPigpKTsKKworICB0dXBsZSA9
IEZsYXRUdXBsZTxpbnQsIGRvdWJsZSwgY29uc3QgY2hhcio+KAorICAgICAgdGVzdGluZzo6aW50
ZXJuYWw6OkZsYXRUdXBsZUNvbnN0cnVjdFRhZ3t9LCA3LCAzLjIsICJGb28iKTsKKyAgRVhQRUNU
X0VRKDcsIHR1cGxlLkdldDwwPigpKTsKKyAgRVhQRUNUX0VRKDMuMiwgdHVwbGUuR2V0PDE+KCkp
OworICBFWFBFQ1RfRVEoc3RkOjpzdHJpbmcoIkZvbyIpLCB0dXBsZS5HZXQ8Mj4oKSk7CisKKyAg
dHVwbGUuR2V0PDE+KCkgPSA1LjE7CisgIEVYUEVDVF9FUSg1LjEsIHR1cGxlLkdldDwxPigpKTsK
K30KKworbmFtZXNwYWNlIHsKK3N0ZDo6c3RyaW5nIEFkZEludFRvU3RyaW5nKGludCBpLCBjb25z
dCBzdGQ6OnN0cmluZyYgcykgeworICByZXR1cm4gcyArIHN0ZDo6dG9fc3RyaW5nKGkpOworfQor
fSAgLy8gbmFtZXNwYWNlCisKK1RFU1QoRmxhdFR1cGxlLCBBcHBseSkgeworICB1c2luZyB0ZXN0
aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlOworCisgIEZsYXRUdXBsZTxpbnQsIHN0ZDo6c3RyaW5n
PiB0dXBsZXt0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3RydWN0VGFne30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCAiSGVsbG8ifTsKKworICAvLyBMYW1i
ZGEuCisgIEVYUEVDVF9UUlVFKHR1cGxlLkFwcGx5KFtdKGludCBpLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgcykgLT4gYm9vbCB7CisgICAgcmV0dXJuIGkgPT0gc3RhdGljX2Nhc3Q8aW50PihzLnNpemUo
KSk7CisgIH0pKTsKKworICAvLyBGdW5jdGlvbi4KKyAgRVhQRUNUX0VRKHR1cGxlLkFwcGx5KEFk
ZEludFRvU3RyaW5nKSwgIkhlbGxvNSIpOworCisgIC8vIE11dGF0aW5nIG9wZXJhdGlvbnMuCisg
IHR1cGxlLkFwcGx5KFtdKGludCYgaSwgc3RkOjpzdHJpbmcmIHMpIHsKKyAgICArK2k7CisgICAg
cyArPSBzOworICB9KTsKKyAgRVhQRUNUX0VRKHR1cGxlLkdldDwwPigpLCA2KTsKKyAgRVhQRUNU
X0VRKHR1cGxlLkdldDwxPigpLCAiSGVsbG9IZWxsbyIpOworfQorCitzdHJ1Y3QgQ29uc3RydWN0
aW9uQ291bnRpbmcgeworICBDb25zdHJ1Y3Rpb25Db3VudGluZygpIHsgKytkZWZhdWx0X2N0b3Jf
Y2FsbHM7IH0KKyAgfkNvbnN0cnVjdGlvbkNvdW50aW5nKCkgeyArK2R0b3JfY2FsbHM7IH0KKyAg
Q29uc3RydWN0aW9uQ291bnRpbmcoY29uc3QgQ29uc3RydWN0aW9uQ291bnRpbmcmKSB7ICsrY29w
eV9jdG9yX2NhbGxzOyB9CisgIENvbnN0cnVjdGlvbkNvdW50aW5nKENvbnN0cnVjdGlvbkNvdW50
aW5nJiYpIG5vZXhjZXB0IHsgKyttb3ZlX2N0b3JfY2FsbHM7IH0KKyAgQ29uc3RydWN0aW9uQ291
bnRpbmcmIG9wZXJhdG9yPShjb25zdCBDb25zdHJ1Y3Rpb25Db3VudGluZyYpIHsKKyAgICArK2Nv
cHlfYXNzaWdubWVudF9jYWxsczsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKyAgQ29uc3RydWN0
aW9uQ291bnRpbmcmIG9wZXJhdG9yPShDb25zdHJ1Y3Rpb25Db3VudGluZyYmKSBub2V4Y2VwdCB7
CisgICAgKyttb3ZlX2Fzc2lnbm1lbnRfY2FsbHM7CisgICAgcmV0dXJuICp0aGlzOworICB9CisK
KyAgc3RhdGljIHZvaWQgUmVzZXQoKSB7CisgICAgZGVmYXVsdF9jdG9yX2NhbGxzID0gMDsKKyAg
ICBkdG9yX2NhbGxzID0gMDsKKyAgICBjb3B5X2N0b3JfY2FsbHMgPSAwOworICAgIG1vdmVfY3Rv
cl9jYWxscyA9IDA7CisgICAgY29weV9hc3NpZ25tZW50X2NhbGxzID0gMDsKKyAgICBtb3ZlX2Fz
c2lnbm1lbnRfY2FsbHMgPSAwOworICB9CisKKyAgc3RhdGljIGludCBkZWZhdWx0X2N0b3JfY2Fs
bHM7CisgIHN0YXRpYyBpbnQgZHRvcl9jYWxsczsKKyAgc3RhdGljIGludCBjb3B5X2N0b3JfY2Fs
bHM7CisgIHN0YXRpYyBpbnQgbW92ZV9jdG9yX2NhbGxzOworICBzdGF0aWMgaW50IGNvcHlfYXNz
aWdubWVudF9jYWxsczsKKyAgc3RhdGljIGludCBtb3ZlX2Fzc2lnbm1lbnRfY2FsbHM7Cit9Owor
CitpbnQgQ29uc3RydWN0aW9uQ291bnRpbmc6OmRlZmF1bHRfY3Rvcl9jYWxscyA9IDA7CitpbnQg
Q29uc3RydWN0aW9uQ291bnRpbmc6OmR0b3JfY2FsbHMgPSAwOworaW50IENvbnN0cnVjdGlvbkNv
dW50aW5nOjpjb3B5X2N0b3JfY2FsbHMgPSAwOworaW50IENvbnN0cnVjdGlvbkNvdW50aW5nOjpt
b3ZlX2N0b3JfY2FsbHMgPSAwOworaW50IENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2Fzc2ln
bm1lbnRfY2FsbHMgPSAwOworaW50IENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1l
bnRfY2FsbHMgPSAwOworCitURVNUKEZsYXRUdXBsZSwgQ29uc3RydWN0b3JDYWxscykgeworICB1
c2luZyB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlOworCisgIC8vIERlZmF1bHQgY29uc3Ry
dWN0aW9uLgorICBDb25zdHJ1Y3Rpb25Db3VudGluZzo6UmVzZXQoKTsKKyAgeyBGbGF0VHVwbGU8
Q29uc3RydWN0aW9uQ291bnRpbmc+IHR1cGxlOyB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25D
b3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlv
bkNvdW50aW5nOjpkdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50
aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRp
bmc6Om1vdmVfY3Rvcl9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNv
dW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIENvcHkgY29uc3RydWN0
aW9uLgorICBDb25zdHJ1Y3Rpb25Db3VudGluZzo6UmVzZXQoKTsKKyAgeworICAgIENvbnN0cnVj
dGlvbkNvdW50aW5nIGVsZW07CisgICAgRmxhdFR1cGxlPENvbnN0cnVjdGlvbkNvdW50aW5nPiB0
dXBsZXsKKyAgICAgICAgdGVzdGluZzo6aW50ZXJuYWw6OkZsYXRUdXBsZUNvbnN0cnVjdFRhZ3t9
LCBlbGVtfTsKKyAgfQorICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmRlZmF1bHRf
Y3Rvcl9jYWxscywgMSk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZHRvcl9j
YWxscywgMik7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9jdG9yX2Nh
bGxzLCAxKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2N0b3JfY2Fs
bHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6OmNvcHlfYXNzaWdubWVu
dF9jYWxscywgMCk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6bW92ZV9hc3Np
Z25tZW50X2NhbGxzLCAwKTsKKworICAvLyBNb3ZlIGNvbnN0cnVjdGlvbi4KKyAgQ29uc3RydWN0
aW9uQ291bnRpbmc6OlJlc2V0KCk7CisgIHsKKyAgICBGbGF0VHVwbGU8Q29uc3RydWN0aW9uQ291
bnRpbmc+IHR1cGxleworICAgICAgICB0ZXN0aW5nOjppbnRlcm5hbDo6RmxhdFR1cGxlQ29uc3Ry
dWN0VGFne30sIENvbnN0cnVjdGlvbkNvdW50aW5ne319OworICB9CisgIEVYUEVDVF9FUShDb25z
dHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxzLCAxKTsKKyAgRVhQRUNUX0VRKENv
bnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxzLCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVj
dGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0
aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywgMSk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rp
b25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0
cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2FsbHMsIDApOworCisgIC8vIENvcHkg
YXNzaWdubWVudC4KKyAgLy8gVE9ETyhvZmF0cyk6IGl0IHNob3VsZCBiZSB0ZXN0aW5nIGFzc2ln
bm1lbnQgb3BlcmF0b3Igb2YgRmxhdFR1cGxlLCBub3QgaXRzCisgIC8vIGVsZW1lbnRzCisgIENv
bnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworICB7CisgICAgRmxhdFR1cGxlPENvbnN0cnVj
dGlvbkNvdW50aW5nPiB0dXBsZTsKKyAgICBDb25zdHJ1Y3Rpb25Db3VudGluZyBlbGVtOworICAg
IHR1cGxlLkdldDwwPigpID0gZWxlbTsKKyAgfQorICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291
bnRpbmc6OmRlZmF1bHRfY3Rvcl9jYWxscywgMik7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25D
b3VudGluZzo6ZHRvcl9jYWxscywgMik7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGlu
Zzo6Y29weV9jdG9yX2NhbGxzLCAwKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5n
Ojptb3ZlX2N0b3JfY2FsbHMsIDApOworICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6
OmNvcHlfYXNzaWdubWVudF9jYWxscywgMSk7CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3Vu
dGluZzo6bW92ZV9hc3NpZ25tZW50X2NhbGxzLCAwKTsKKworICAvLyBNb3ZlIGFzc2lnbm1lbnQu
CisgIC8vIFRPRE8ob2ZhdHMpOiBpdCBzaG91bGQgYmUgdGVzdGluZyBhc3NpZ25tZW50IG9wZXJh
dG9yIG9mIEZsYXRUdXBsZSwgbm90IGl0cworICAvLyBlbGVtZW50cworICBDb25zdHJ1Y3Rpb25D
b3VudGluZzo6UmVzZXQoKTsKKyAgeworICAgIEZsYXRUdXBsZTxDb25zdHJ1Y3Rpb25Db3VudGlu
Zz4gdHVwbGU7CisgICAgdHVwbGUuR2V0PDA+KCkgPSBDb25zdHJ1Y3Rpb25Db3VudGluZ3t9Owor
ICB9CisgIEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6ZGVmYXVsdF9jdG9yX2NhbGxz
LCAyKTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpkdG9yX2NhbGxzLCAyKTsK
KyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjpjb3B5X2N0b3JfY2FsbHMsIDApOwor
ICBFWFBFQ1RfRVEoQ29uc3RydWN0aW9uQ291bnRpbmc6Om1vdmVfY3Rvcl9jYWxscywgMCk7Cisg
IEVYUEVDVF9FUShDb25zdHJ1Y3Rpb25Db3VudGluZzo6Y29weV9hc3NpZ25tZW50X2NhbGxzLCAw
KTsKKyAgRVhQRUNUX0VRKENvbnN0cnVjdGlvbkNvdW50aW5nOjptb3ZlX2Fzc2lnbm1lbnRfY2Fs
bHMsIDEpOworCisgIENvbnN0cnVjdGlvbkNvdW50aW5nOjpSZXNldCgpOworfQorCitURVNUKEZs
YXRUdXBsZSwgTWFueVR5cGVzKSB7CisgIHVzaW5nIHRlc3Rpbmc6OmludGVybmFsOjpGbGF0VHVw
bGU7CisKKyAgLy8gSW5zdGFudGlhdGUgRmxhdFR1cGxlIHdpdGggMjU3IGludHMuCisgIC8vIFRl
c3RzIHNob3cgdGhhdCB3ZSBjYW4gZG8gaXQgd2l0aCB0aG91c2FuZHMgb2YgZWxlbWVudHMsIGJ1
dCB2ZXJ5IGxvbmcKKyAgLy8gY29tcGlsZSB0aW1lcyBtYWtlcyBpdCB1bnVzdWl0YWJsZSBmb3Ig
dGhpcyB0ZXN0LgorI2RlZmluZSBHVEVTVF9GTEFUX1RVUExFX0lOVDggaW50LCBpbnQsIGludCwg
aW50LCBpbnQsIGludCwgaW50LCBpbnQsCisjZGVmaW5lIEdURVNUX0ZMQVRfVFVQTEVfSU5UMTYg
R1RFU1RfRkxBVF9UVVBMRV9JTlQ4IEdURVNUX0ZMQVRfVFVQTEVfSU5UOAorI2RlZmluZSBHVEVT
VF9GTEFUX1RVUExFX0lOVDMyIEdURVNUX0ZMQVRfVFVQTEVfSU5UMTYgR1RFU1RfRkxBVF9UVVBM
RV9JTlQxNgorI2RlZmluZSBHVEVTVF9GTEFUX1RVUExFX0lOVDY0IEdURVNUX0ZMQVRfVFVQTEVf
SU5UMzIgR1RFU1RfRkxBVF9UVVBMRV9JTlQzMgorI2RlZmluZSBHVEVTVF9GTEFUX1RVUExFX0lO
VDEyOCBHVEVTVF9GTEFUX1RVUExFX0lOVDY0IEdURVNUX0ZMQVRfVFVQTEVfSU5UNjQKKyNkZWZp
bmUgR1RFU1RfRkxBVF9UVVBMRV9JTlQyNTYgR1RFU1RfRkxBVF9UVVBMRV9JTlQxMjggR1RFU1Rf
RkxBVF9UVVBMRV9JTlQxMjgKKworICAvLyBMZXQncyBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gaGF2
ZSBhIHZlcnkgbG9uZyBsaXN0IG9mIHR5cGVzIHdpdGhvdXQgYmxvd2luZworICAvLyB1cCB0aGUg
dGVtcGxhdGUgaW5zdGFudGlhdGlvbiBkZXB0aC4KKyAgRmxhdFR1cGxlPEdURVNUX0ZMQVRfVFVQ
TEVfSU5UMjU2IGludD4gdHVwbGU7CisKKyAgdHVwbGUuR2V0PDA+KCkgPSA3OworICB0dXBsZS5H
ZXQ8OTk+KCkgPSAxNzsKKyAgdHVwbGUuR2V0PDI1Nj4oKSA9IDEwMDA7CisgIEVYUEVDVF9FUSg3
LCB0dXBsZS5HZXQ8MD4oKSk7CisgIEVYUEVDVF9FUSgxNywgdHVwbGUuR2V0PDk5PigpKTsKKyAg
RVhQRUNUX0VRKDEwMDAsIHR1cGxlLkdldDwyNTY+KCkpOworfQorCiAvLyBUZXN0cyBTa2lwUHJl
Zml4KCkuCiAKIFRFU1QoU2tpcFByZWZpeFRlc3QsIFNraXBzV2hlblByZWZpeE1hdGNoZXMpIHsK
QEAgLTc3NzMsMjMgKzc3NTAsMzUgQEAgVEVTVChTa2lwUHJlZml4VGVzdCwgRG9lc05vdFNraXBX
aGVuUHJlZml4RG9lc05vdE1hdGNoKSB7CiB9CiAKIC8vIFRlc3RzIGFkX2hvY190ZXN0X3Jlc3Vs
dCgpLgorVEVTVChBZEhvY1Rlc3RSZXN1bHRUZXN0LCBBZEhvY1Rlc3RSZXN1bHRGb3JVbml0VGVz
dERvZXNOb3RTaG93RmFpbHVyZSkgeworICBjb25zdCB0ZXN0aW5nOjpUZXN0UmVzdWx0JiB0ZXN0
X3Jlc3VsdCA9CisgICAgICB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+YWRfaG9j
X3Rlc3RfcmVzdWx0KCk7CisgIEVYUEVDVF9GQUxTRSh0ZXN0X3Jlc3VsdC5GYWlsZWQoKSk7Cit9
CiAKLWNsYXNzIEFkSG9jVGVzdFJlc3VsdFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci0g
cHJvdGVjdGVkOgotICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgewotICAgIEZBSUwoKSA8
PCAiQSBmYWlsdXJlIGhhcHBlbmVkIGluc2lkZSBTZXRVcFRlc3RDYXNlKCkuIjsKLSAgfQorY2xh
c3MgRHluYW1pY1VuaXRUZXN0Rml4dHVyZSA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHt9OworCitj
bGFzcyBEeW5hbWljVGVzdCA6IHB1YmxpYyBEeW5hbWljVW5pdFRlc3RGaXh0dXJlIHsKKyAgdm9p
ZCBUZXN0Qm9keSgpIG92ZXJyaWRlIHsgRVhQRUNUX1RSVUUodHJ1ZSk7IH0KIH07CiAKLVRFU1Rf
RihBZEhvY1Rlc3RSZXN1bHRUZXN0LCBBZEhvY1Rlc3RSZXN1bHRGb3JUZXN0Q2FzZVNob3dzRmFp
bHVyZSkgewotICBjb25zdCB0ZXN0aW5nOjpUZXN0UmVzdWx0JiB0ZXN0X3Jlc3VsdCA9IHRlc3Rp
bmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0+Y3VycmVudF90ZXN0X2Nhc2UoKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPmFkX2hvY190ZXN0X3Jlc3VsdCgpOwot
ICBFWFBFQ1RfVFJVRSh0ZXN0X3Jlc3VsdC5GYWlsZWQoKSk7Ci19CithdXRvKiBkeW5hbWljX3Rl
c3QgPSB0ZXN0aW5nOjpSZWdpc3RlclRlc3QoCisgICAgIkR5bmFtaWNVbml0VGVzdEZpeHR1cmUi
LCAiRHluYW1pY1Rlc3QiLCAiVFlQRSIsICJWQUxVRSIsIF9fRklMRV9fLAorICAgIF9fTElORV9f
LCBbXSgpIC0+IER5bmFtaWNVbml0VGVzdEZpeHR1cmUqIHsgcmV0dXJuIG5ldyBEeW5hbWljVGVz
dDsgfSk7CisKK1RFU1QoUmVnaXN0ZXJUZXN0LCBXYXNSZWdpc3RlcmVkKSB7CisgIGF1dG8qIHVu
aXR0ZXN0ID0gdGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCk7CisgIGZvciAoaW50IGkg
PSAwOyBpIDwgdW5pdHRlc3QtPnRvdGFsX3Rlc3Rfc3VpdGVfY291bnQoKTsgKytpKSB7CisgICAg
YXV0byogdGVzdHMgPSB1bml0dGVzdC0+R2V0VGVzdFN1aXRlKGkpOworICAgIGlmICh0ZXN0cy0+
bmFtZSgpICE9IHN0ZDo6c3RyaW5nKCJEeW5hbWljVW5pdFRlc3RGaXh0dXJlIikpIGNvbnRpbnVl
OworICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdHMtPnRvdGFsX3Rlc3RfY291bnQoKTsgKytq
KSB7CisgICAgICBpZiAodGVzdHMtPkdldFRlc3RJbmZvKGopLT5uYW1lKCkgIT0gc3RkOjpzdHJp
bmcoIkR5bmFtaWNUZXN0IikpIGNvbnRpbnVlOworICAgICAgLy8gRm91bmQgaXQuCisgICAgICBF
WFBFQ1RfU1RSRVEodGVzdHMtPkdldFRlc3RJbmZvKGopLT52YWx1ZV9wYXJhbSgpLCAiVkFMVUUi
KTsKKyAgICAgIEVYUEVDVF9TVFJFUSh0ZXN0cy0+R2V0VGVzdEluZm8oaiktPnR5cGVfcGFyYW0o
KSwgIlRZUEUiKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIH0KIAotVEVTVF9GKEFkSG9jVGVz
dFJlc3VsdFRlc3QsIEFkSG9jVGVzdFJlc3VsdFRlc3RGb3JVbml0VGVzdERvZXNOb3RTaG93RmFp
bHVyZSkgewotICBjb25zdCB0ZXN0aW5nOjpUZXN0UmVzdWx0JiB0ZXN0X3Jlc3VsdCA9Ci0gICAg
ICB0ZXN0aW5nOjpVbml0VGVzdDo6R2V0SW5zdGFuY2UoKS0+YWRfaG9jX3Rlc3RfcmVzdWx0KCk7
Ci0gIEVYUEVDVF9GQUxTRSh0ZXN0X3Jlc3VsdC5GYWlsZWQoKSk7CisgIEZBSUwoKSA8PCAiRGlk
bid0IGZpbmQgdGhlIHRlc3QhIjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0
ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUxX3Rlc3RfLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MKaW5kZXggYTM4ZWJhYzgzOWY3
YjRmY2Y3MTA5MzUxYzRkM2ZlY2RlMjcxNWIwYS4uMTlhYTI1MmEzMDEwZmQ1NmVhYmUzNzY4MzA4
YTgwZDJkYzZkYmQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3Qv
dGVzdC9ndGVzdF94bWxfb3V0ZmlsZTFfdGVzdF8uY2MKQEAgLTM0LDEyICszNCw4IEBACiAKIGNs
YXNzIFByb3BlcnR5T25lIDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogIHByb3RlY3RlZDoKLSAg
dmlydHVhbCB2b2lkIFNldFVwKCkgewotICAgIFJlY29yZFByb3BlcnR5KCJTZXRVcFByb3AiLCAx
KTsKLSAgfQotICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgUmVjb3JkUHJvcGVydHko
IlRlYXJEb3duUHJvcCIsIDEpOwotICB9CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7IFJlY29y
ZFByb3BlcnR5KCJTZXRVcFByb3AiLCAxKTsgfQorICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUg
eyBSZWNvcmRQcm9wZXJ0eSgiVGVhckRvd25Qcm9wIiwgMSk7IH0KIH07CiAKIFRFU1RfRihQcm9w
ZXJ0eU9uZSwgVGVzdFNvbWVQcm9wZXJ0aWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlMl90ZXN0Xy5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjCmluZGV4IGFmYWYx
NWE1ZGMzMjMxNWQ1MWFjN2EwYTU1NWY4M2NhYjQxZWY3NGYuLmY5YTJhNmU5ODQ2ZGRjZDk1ZGJk
Yjg4ZDhjNzRkMDdjNGJjOWRmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfLmNjCkBAIC0zNCwxMiArMzQsOCBA
QAogCiBjbGFzcyBQcm9wZXJ0eVR3byA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKICBwcm90ZWN0
ZWQ6Ci0gIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBQ
cm9wIiwgMik7Ci0gIH0KLSAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgewotICAgIFJlY29yZFBy
b3BlcnR5KCJUZWFyRG93blByb3AiLCAyKTsKLSAgfQorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUg
eyBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBQcm9wIiwgMik7IH0KKyAgdm9pZCBUZWFyRG93bigpIG92
ZXJyaWRlIHsgUmVjb3JkUHJvcGVydHkoIlRlYXJEb3duUHJvcCIsIDIpOyB9CiB9OwogCiBURVNU
X0YoUHJvcGVydHlUd28sIFRlc3RTb21lUHJvcGVydGllcykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dGZpbGVzX3Rlc3QucHkKaW5kZXgg
MmMwMzFmZjhkYmE1MTJjMmUwNGUyNzA1MzRlMjlmY2ViZTg4NmNmOS4uYWM2NmZlYjY2NzE5ZTYy
Y2ZhMTZjNzlhMTdmNjNkZTk5MGYyNzdjMSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
Z3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0ZmlsZXNfdGVzdC5weQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRmaWxlc190ZXN0LnB5CkBAIC00Miw4ICs0Miw4
IEBAIEdURVNUX09VVFBVVF8yX1RFU1QgPSAiZ3Rlc3RfeG1sX291dGZpbGUyX3Rlc3RfIgogCiBF
WFBFQ1RFRF9YTUxfMSA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
CiA8dGVzdHN1aXRlcyB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9
IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgbmFtZT0iQWxsVGVzdHMiPgotICA8dGVzdHN1aXRl
IG5hbWU9IlByb3BlcnR5T25lIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBl
cnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0U29tZVByb3BlcnRp
ZXMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5T25lIj4KKyAgPHRl
c3RzdWl0ZSBuYW1lPSJQcm9wZXJ0eU9uZSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBza2lwcGVk
PSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAg
IDx0ZXN0Y2FzZSBuYW1lPSJUZXN0U29tZVByb3BlcnRpZXMiIHN0YXR1cz0icnVuIiByZXN1bHQ9
ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5T25l
Ij4KICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICA8cHJvcGVydHkgbmFtZT0iU2V0VXBQcm9w
IiB2YWx1ZT0iMSIvPgogICAgICAgICA8cHJvcGVydHkgbmFtZT0iVGVzdFNvbWVQcm9wZXJ0eSIg
dmFsdWU9IjEiLz4KQEAgLTU2LDggKzU2LDggQEAgRVhQRUNURURfWE1MXzEgPSAiIiI8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogCiBFWFBFQ1RFRF9YTUxfMiA9ICIiIjw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8dGVzdHN1aXRlcyB0ZXN0cz0i
MSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFt
cD0iKiIgbmFtZT0iQWxsVGVzdHMiPgotICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5VHdvIiB0
ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgot
ICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0U29tZVByb3BlcnRpZXMiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlByb3BlcnR5VHdvIj4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJQcm9wZXJ0
eVR3byIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBza2lwcGVkPSIwIiBkaXNhYmxlZD0iMCIgZXJy
b3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJUZXN0
U29tZVByb3BlcnRpZXMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIg
dGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5VHdvIj4KICAgICAgIDxwcm9wZXJ0aWVz
PgogICAgICAgICA8cHJvcGVydHkgbmFtZT0iU2V0VXBQcm9wIiB2YWx1ZT0iMiIvPgogICAgICAg
ICA8cHJvcGVydHkgbmFtZT0iVGVzdFNvbWVQcm9wZXJ0eSIgdmFsdWU9IjIiLz4KQEAgLTExMSwx
MSArMTExLDYgQEAgY2xhc3MgR1Rlc3RYTUxPdXRGaWxlc1Rlc3QoZ3Rlc3RfeG1sX3Rlc3RfdXRp
bHMuR1Rlc3RYTUxUZXN0Q2FzZSk6CiAgICAgc2VsZi5hc3NlcnRfKHAuZXhpdGVkKQogICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKDAsIHAuZXhpdF9jb2RlKQogCi0gICAgIyBGSVhNRTogbGlidG9vbCBj
YXVzZXMgdGhlIGJ1aWx0IHRlc3QgYmluYXJ5IHRvIGJlCi0gICAgIyAgIG5hbWVkIGx0LWd0ZXN0
X3htbF9vdXRmaWxlc190ZXN0XyBpbnN0ZWFkIG9mCi0gICAgIyAgIGd0ZXN0X3htbF9vdXRmaWxl
c190ZXN0Xy4gIFRvIGFjY291bnQgZm9yIHRoaXMgcG9zc2liaWxpdHksIHdlCi0gICAgIyAgIGFs
bG93IGJvdGggbmFtZXMgaW4gdGhlIGZvbGxvd2luZyBjb2RlLiAgV2Ugc2hvdWxkIHJlbW92ZSB0
aGlzCi0gICAgIyAgIHdoZW4gbGlidG9vbCByZXBsYWNlbWVudCB0b29sIGlzIHJlYWR5LgogICAg
IG91dHB1dF9maWxlX25hbWUxID0gdGVzdF9uYW1lICsgIi54bWwiCiAgICAgb3V0cHV0X2ZpbGUx
ID0gb3MucGF0aC5qb2luKHNlbGYub3V0cHV0X2Rpcl8sIG91dHB1dF9maWxlX25hbWUxKQogICAg
IG91dHB1dF9maWxlX25hbWUyID0gJ2x0LScgKyBvdXRwdXRfZmlsZV9uYW1lMQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
LnB5IGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVzdF94bWxfb3V0cHV0X3VuaXR0
ZXN0LnB5CmluZGV4IGZhZWRkNGU2Y2U3MmRhYmVmNzg2YTMxMmVmNGFlY2E1YzVkMjliZmEuLmVh
ZGU3YWFjODhmNTllNmJiNmY1YmEzNDE4MjhiYWU0NmZjZDAwNmYgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdC5weQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3Qu
cHkKQEAgLTY1LDIxICs2NSwyMSBAQCBlbHNlOgogICBzeXMuYXJndi5yZW1vdmUoTk9fU1RBQ0tU
UkFDRV9TVVBQT1JUX0ZMQUcpCiAKIEVYUEVDVEVEX05PTl9FTVBUWV9YTUwgPSAiIiI8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHRlc3RzdWl0ZXMgdGVzdHM9IjIzIiBm
YWlsdXJlcz0iNCIgZGlzYWJsZWQ9IjIiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIq
IiBuYW1lPSJBbGxUZXN0cyIgYWRfaG9jX3Byb3BlcnR5PSI0MiI+Ci0gIDx0ZXN0c3VpdGUgbmFt
ZT0iU3VjY2Vzc2Z1bFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVy
cm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IlN1Y2NlZWRzIiBzdGF0dXM9
InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTdWNjZXNzZnVsVGVzdCIvPgorPHRlc3RzdWl0ZXMg
dGVzdHM9IjI2IiBmYWlsdXJlcz0iNSIgZGlzYWJsZWQ9IjIiIGVycm9ycz0iMCIgdGltZT0iKiIg
dGltZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyIgYWRfaG9jX3Byb3BlcnR5PSI0MiI+CisgIDx0
ZXN0c3VpdGUgbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlz
YWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4K
KyAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBs
ZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+
CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5hbWU9IkZhaWxlZFRlc3QiIHRlc3RzPSIx
IiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJGYWls
ZWRUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJGYWlsZWRUZXN0IiB0ZXN0cz0iMSIgZmFpbHVy
ZXM9IjEiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IkZhaWxzIiBzdGF0dXM9InJ1biIgcmVzdWx0
PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJGYWlsZWRUZXN0
Ij4KICAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNj
OiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6JiN4MEE7ICAxJiN4MEE7
ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKIEV4
cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKICAgMQogICAyJShzdGFjaylzXV0+PC9m
YWlsdXJlPgogICAgIDwvdGVzdGNhc2U+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5h
bWU9Ik1peGVkUmVzdWx0VGVzdCIgdGVzdHM9IjMiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMSIg
ZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1
cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9Ik1peGVkUmVzdWx0VGVzdCIvPgotICAgIDx0ZXN0
Y2FzZSBuYW1lPSJGYWlscyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTWl4ZWRS
ZXN1bHRUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJNaXhlZFJlc3VsdFRlc3QiIHRlc3RzPSIz
IiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjEiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0i
KiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0i
cnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9
Ik1peGVkUmVzdWx0VGVzdCIvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJGYWlscyIgc3RhdHVzPSJy
dW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0i
TWl4ZWRSZXN1bHRUZXN0Ij4KICAgICAgIDxmYWlsdXJlIG1lc3NhZ2U9Imd0ZXN0X3htbF9vdXRw
dXRfdW5pdHRlc3RfLmNjOiomI3gwQTtFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6
JiN4MEE7ICAxJiN4MEE7ICAyIiB0eXBlPSIiPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5p
dHRlc3RfLmNjOioKIEV4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKICAgMQpAQCAt
ODksMTE2ICs4OSwxNDcgQEAgRXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFsdWVzOgogICAy
CiAgIDMlKHN0YWNrKXNdXT48L2ZhaWx1cmU+CiAgICAgPC90ZXN0Y2FzZT4KLSAgICA8dGVzdGNh
c2UgbmFtZT0iRElTQUJMRURfdGVzdCIgc3RhdHVzPSJub3RydW4iIHRpbWU9IioiIGNsYXNzbmFt
ZT0iTWl4ZWRSZXN1bHRUZXN0Ii8+CisgICAgPHRlc3RjYXNlIG5hbWU9IkRJU0FCTEVEX3Rlc3Qi
IHN0YXR1cz0ibm90cnVuIiByZXN1bHQ9InN1cHByZXNzZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiIgY2xhc3NuYW1lPSJNaXhlZFJlc3VsdFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0
c3VpdGUgbmFtZT0iWG1sUXVvdGluZ1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJs
ZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9Ik91dHB1dHND
RGF0YSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iWG1sUXVvdGluZ1Rlc3QiPgor
ICA8dGVzdHN1aXRlIG5hbWU9IlhtbFF1b3RpbmdUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjEi
IGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ik91dHB1dHNDRGF0YSIgc3RhdHVzPSJydW4iIHJlc3Vs
dD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iWG1sUXVvdGlu
Z1Rlc3QiPgogICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVz
dF8uY2M6KiYjeDBBO0ZhaWxlZCYjeDBBO1hNTCBvdXRwdXQ6ICZsdDs/eG1sIGVuY29kaW5nPSZx
dW90O3V0Zi04JnF1b3Q7Jmd0OyZsdDt0b3AmZ3Q7Jmx0OyFbQ0RBVEFbY2RhdGEgdGV4dF1dJmd0
OyZsdDsvdG9wJmd0OyIgdHlwZT0iIj48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0
Xy5jYzoqCiBGYWlsZWQKIFhNTCBvdXRwdXQ6IDw/eG1sIGVuY29kaW5nPSJ1dGYtOCI+PHRvcD48
IVtDREFUQVtjZGF0YSB0ZXh0XV0+XV0mZ3Q7PCFbQ0RBVEFbPC90b3A+JShzdGFjaylzXV0+PC9m
YWlsdXJlPgogICAgIDwvdGVzdGNhc2U+CiAgIDwvdGVzdHN1aXRlPgotICA8dGVzdHN1aXRlIG5h
bWU9IkludmFsaWRDaGFyYWN0ZXJzVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIxIiBkaXNhYmxl
ZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSW52YWxpZENo
YXJhY3RlcnNJbk1lc3NhZ2UiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IkludmFs
aWRDaGFyYWN0ZXJzVGVzdCI+CisgIDx0ZXN0c3VpdGUgbmFtZT0iSW52YWxpZENoYXJhY3RlcnNU
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjEiIGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJv
cnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3RjYXNlIG5hbWU9IkludmFs
aWRDaGFyYWN0ZXJzSW5NZXNzYWdlIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRp
bWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJJbnZhbGlkQ2hhcmFjdGVyc1Rlc3QiPgog
ICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3RfeG1sX291dHB1dF91bml0dGVzdF8uY2M6KiYj
eDBBO0ZhaWxlZCYjeDBBO0ludmFsaWQgY2hhcmFjdGVycyBpbiBicmFja2V0cyBbXSIgdHlwZT0i
Ij48IVtDREFUQVtndGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqCiBGYWlsZWQKIEludmFs
aWQgY2hhcmFjdGVycyBpbiBicmFja2V0cyBbXSUoc3RhY2spc11dPjwvZmFpbHVyZT4KICAgICA8
L3Rlc3RjYXNlPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJEaXNhYmxlZFRl
c3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjEiIGVycm9ycz0iMCIgdGltZT0i
KiI+Ci0gICAgPHRlc3RjYXNlIG5hbWU9IkRJU0FCTEVEX3Rlc3Rfbm90X3J1biIgc3RhdHVzPSJu
b3RydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iRGlzYWJsZWRUZXN0Ii8+CisgIDx0ZXN0c3VpdGUg
bmFtZT0iRGlzYWJsZWRUZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIxIiBz
a2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgPHRlc3Rj
YXNlIG5hbWU9IkRJU0FCTEVEX3Rlc3Rfbm90X3J1biIgc3RhdHVzPSJub3RydW4iIHJlc3VsdD0i
c3VwcHJlc3NlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IkRpc2FibGVkVGVz
dCIvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJQcm9wZXJ0eVJlY29yZGlu
Z1Rlc3QiIHRlc3RzPSI0IiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGlt
ZT0iKiIgU2V0VXBUZXN0Q2FzZT0ieWVzIiBUZWFyRG93blRlc3RDYXNlPSJheWUiPgotICAgIDx0
ZXN0Y2FzZSBuYW1lPSJPbmVQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFt
ZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJTa2lwcGVkVGVz
dCIgdGVzdHM9IjMiIGZhaWx1cmVzPSIxIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMiIgZXJyb3Jz
PSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTa2lwcGVk
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJza2lwcGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iU2tpcHBlZFRlc3QiPgorICAgICAgPHNraXBwZWQgbWVzc2FnZT0iZ3Rlc3RfeG1s
X291dHB1dF91bml0dGVzdF8uY2M6KiYjeDBBOyI+PCFbQ0RBVEFbZ3Rlc3RfeG1sX291dHB1dF91
bml0dGVzdF8uY2M6KgorJShzdGFjaylzXV0+PC9za2lwcGVkPgorICAgIDwvdGVzdGNhc2U+Cisg
ICAgPHRlc3RjYXNlIG5hbWU9IlNraXBwZWRXaXRoTWVzc2FnZSIgc3RhdHVzPSJydW4iIHJlc3Vs
dD0ic2tpcHBlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlNraXBwZWRUZXN0
Ij4KKyAgICAgIDxza2lwcGVkIG1lc3NhZ2U9Imd0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNj
OiomI3gwQTtJdCBpcyBnb29kIHByYWN0aWNlIHRvIHRlbGwgd2h5IHlvdSBza2lwIGEgdGVzdC4i
PjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOioKK0l0IGlzIGdvb2QgcHJh
Y3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiUoc3RhY2spc11dPjwvc2tpcHBlZD4K
KyAgICA8L3Rlc3RjYXNlPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTa2lwcGVkQWZ0ZXJGYWlsdXJl
IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiIg
Y2xhc3NuYW1lPSJTa2lwcGVkVGVzdCI+CisgICAgICA8ZmFpbHVyZSBtZXNzYWdlPSJndGVzdF94
bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYzoqJiN4MEE7RXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2Ug
dmFsdWVzOiYjeDBBOyAgMSYjeDBBOyAgMiIgdHlwZT0iIj48IVtDREFUQVtndGVzdF94bWxfb3V0
cHV0X3VuaXR0ZXN0Xy5jYzoqCitFeHBlY3RlZCBlcXVhbGl0eSBvZiB0aGVzZSB2YWx1ZXM6Cisg
IDEKKyAgMiUoc3RhY2spc11dPjwvZmFpbHVyZT4KKyAgICAgIDxza2lwcGVkIG1lc3NhZ2U9Imd0
ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjOiomI3gwQTtJdCBpcyBnb29kIHByYWN0aWNlIHRv
IHRlbGwgd2h5IHlvdSBza2lwIGEgdGVzdC4iPjwhW0NEQVRBW2d0ZXN0X3htbF9vdXRwdXRfdW5p
dHRlc3RfLmNjOioKK0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0
ZXN0LiUoc3RhY2spc11dPjwvc2tpcHBlZD4KKyAgICA8L3Rlc3RjYXNlPgorCisgIDwvdGVzdHN1
aXRlPgorICA8dGVzdHN1aXRlIG5hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCIgdGVzdHM9IjQi
IGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIq
IiB0aW1lc3RhbXA9IioiIFNldFVwVGVzdFN1aXRlPSJ5ZXMiIFRlYXJEb3duVGVzdFN1aXRlPSJh
eWUiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJPbmVQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHJlc3Vs
dD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlS
ZWNvcmRpbmdUZXN0Ij4KICAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgICA8cHJvcGVydHkgbmFt
ZT0ia2V5XzEiIHZhbHVlPSIxIi8+CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAgPC90ZXN0Y2Fz
ZT4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiB0
aW1lPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVjb3JkaW5nVGVzdCI+CisgICAgPHRlc3RjYXNl
IG5hbWU9IkludFZhbHVlZFByb3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQi
IHRpbWU9IioiIHRpbWVzdGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3Qi
PgogICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfaW50IiB2
YWx1ZT0iMSIvPgogICAgICAgPC9wcm9wZXJ0aWVzPgogICAgIDwvdGVzdGNhc2U+Ci0gICAgPHRl
c3RjYXNlIG5hbWU9IlRocmVlUHJvcGVydGllcyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNz
bmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVGhyZWVQ
cm9wZXJ0aWVzIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiPgogICAgICAgPHByb3Bl
cnRpZXM+CiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfMSIgdmFsdWU9IjEiLz4KICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9ImtleV8yIiB2YWx1ZT0iMiIvPgogICAgICAgICA8cHJvcGVydHkg
bmFtZT0ia2V5XzMiIHZhbHVlPSIzIi8+CiAgICAgICA8L3Byb3BlcnRpZXM+CiAgICAgPC90ZXN0
Y2FzZT4KLSAgICA8dGVzdGNhc2UgbmFtZT0iVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1
ZSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0
Ij4KKyAgICA8dGVzdGNhc2UgbmFtZT0iVHdvVmFsdWVzRm9yT25lS2V5VXNlc0xhc3RWYWx1ZSIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iUHJvcGVydHlSZWNvcmRpbmdUZXN0Ij4KICAgICAgIDxwcm9wZXJ0aWVzPgogICAg
ICAgICA8cHJvcGVydHkgbmFtZT0ia2V5XzEiIHZhbHVlPSIyIi8+CiAgICAgICA8L3Byb3BlcnRp
ZXM+CiAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0i
Tm9GaXh0dXJlVGVzdCIgdGVzdHM9IjMiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3Jz
PSIwIiB0aW1lPSIqIj4KLSAgICAgPHRlc3RjYXNlIG5hbWU9IlJlY29yZFByb3BlcnR5IiBzdGF0
dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KKyAgPHRlc3RzdWl0
ZSBuYW1lPSJOb0ZpeHR1cmVUZXN0IiB0ZXN0cz0iMyIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIw
IiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0iKiI+CisgICAgIDx0
ZXN0Y2FzZSBuYW1lPSJSZWNvcmRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxl
dGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iTm9GaXh0dXJlVGVzdCI+CiAg
ICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5IiB2YWx1ZT0i
MSIvPgogICAgICAgIDwvcHJvcGVydGllcz4KICAgICAgPC90ZXN0Y2FzZT4KLSAgICAgPHRlc3Rj
YXNlIG5hbWU9IkV4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZEludFZhbHVlZFByb3BlcnR5
IiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KKyAgICAg
PHRlc3RjYXNlIG5hbWU9IkV4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZEludFZhbHVlZFBy
b3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFt
cD0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAgICA8cHJvcGVydGllcz4KICAg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfZm9yX3V0aWxpdHlfaW50IiB2YWx1ZT0iMSIvPgog
ICAgICAgIDwvcHJvcGVydGllcz4KICAgICAgPC90ZXN0Y2FzZT4KLSAgICAgPHRlc3RjYXNlIG5h
bWU9IkV4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1ZhbHVlZFByb3BlcnR5IiBz
dGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KKyAgICAgPHRl
c3RjYXNlIG5hbWU9IkV4dGVybmFsVXRpbGl0eVRoYXRDYWxsc1JlY29yZFN0cmluZ1ZhbHVlZFBy
b3BlcnR5IiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVzdGFt
cD0iKiIgY2xhc3NuYW1lPSJOb0ZpeHR1cmVUZXN0Ij4KICAgICAgICA8cHJvcGVydGllcz4KICAg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJrZXlfZm9yX3V0aWxpdHlfc3RyaW5nIiB2YWx1ZT0iMSIv
PgogICAgICAgIDwvcHJvcGVydGllcz4KICAgICAgPC90ZXN0Y2FzZT4KICAgPC90ZXN0c3VpdGU+
Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiB0ZXN0cz0iNCIgZmFp
bHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2Fz
ZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZhbHVlX3BhcmFtPSIzMyIgc3RhdHVz
PSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgotICAg
IDx0ZXN0Y2FzZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEiIHZhbHVlX3BhcmFtPSI0
MiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0
IiAvPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0
cmlidXRlLzAiIHZhbHVlX3BhcmFtPSIzMyIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFt
ZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJBbm90aGVy
VGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEiIHZhbHVlX3BhcmFtPSI0MiIgc3RhdHVz
PSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgorICA8
dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9WYWx1ZVBhcmFtVGVzdCIgdGVzdHM9IjQiIGZhaWx1cmVz
PSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3Rh
bXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZh
bHVlX3BhcmFtPSIzMyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0
aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgorICAgIDx0
ZXN0Y2FzZSBuYW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEiIHZhbHVlX3BhcmFtPSI0MiIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJB
bm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZhbHVlX3BhcmFtPSIzMyIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJB
bm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzEiIHZhbHVlX3BhcmFtPSI0MiIg
c3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNs
YXNzbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRl
c3RzdWl0ZSBuYW1lPSJUeXBlZFRlc3QvMCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxl
ZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBh
cmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3Nu
YW1lPSJUeXBlZFRlc3QvMCIgLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJUeXBlZFRlc3QvMCIgdGVz
dHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0iMCIgZXJyb3JzPSIwIiB0
aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIg
dGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlR5cGVkVGVzdC8wIiAvPgogICA8L3Rl
c3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJUeXBlZFRlc3QvMSIgdGVzdHM9IjEiIGZhaWx1
cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2Ug
bmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0dXM9InJ1biIg
dGltZT0iKiIgY2xhc3NuYW1lPSJUeXBlZFRlc3QvMSIgLz4KKyAgPHRlc3RzdWl0ZSBuYW1lPSJU
eXBlZFRlc3QvMSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBlZD0i
MCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1l
PSJIYXNUeXBlUGFyYW1BdHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiByZXN1
bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlR5cGVkVGVz
dC8xIiAvPgogICA8L3Rlc3RzdWl0ZT4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTaW5nbGUvVHlwZVBh
cmFtZXRlcml6ZWRUZXN0Q2FzZS8wIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIw
IiBlcnJvcnM9IjAiIHRpbWU9IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJIYXNUeXBlUGFyYW1B
dHRyaWJ1dGUiIHR5cGVfcGFyYW09IioiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9
IlNpbmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RDYXNlLzAiIC8+CisgIDx0ZXN0c3VpdGUgbmFt
ZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzAiIHRlc3RzPSIxIiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0
YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmlidXRlIiB0eXBl
X3BhcmFtPSIqIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRpbWVz
dGFtcD0iKiIgY2xhc3NuYW1lPSJTaW5nbGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUvMCIg
Lz4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0
ZXJpemVkVGVzdENhc2UvMSIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJy
b3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iSGFzVHlwZVBhcmFtQXR0cmli
dXRlIiB0eXBlX3BhcmFtPSIqIiBzdGF0dXM9InJ1biIgdGltZT0iKiIgY2xhc3NuYW1lPSJTaW5n
bGUvVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZS8xIiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlNp
bmdsZS9UeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZS8xIiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAi
IGRpc2FibGVkPSIwIiBza2lwcGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9IioiIHRpbWVzdGFtcD0i
KiI+CisgICAgPHRlc3RjYXNlIG5hbWU9Ikhhc1R5cGVQYXJhbUF0dHJpYnV0ZSIgdHlwZV9wYXJh
bT0iKiIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9
IioiIGNsYXNzbmFtZT0iU2luZ2xlL1R5cGVQYXJhbWV0ZXJpemVkVGVzdFN1aXRlLzEiIC8+CiAg
IDwvdGVzdHN1aXRlPgotPC90ZXN0c3VpdGVzPiIiIiAlIHsnc3RhY2snOiBTVEFDS19UUkFDRV9U
RU1QTEFURX0KKzwvdGVzdHN1aXRlcz4iIiIgJSB7CisgICAgJ3N0YWNrJzogU1RBQ0tfVFJBQ0Vf
VEVNUExBVEUKK30KIAogRVhQRUNURURfRklMVEVSRURfVEVTVF9YTUwgPSAiIiI8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVzdHM9IjEiIGZhaWx1
cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIgogICAgICAgICAgICAgdGlt
ZXN0YW1wPSIqIiBuYW1lPSJBbGxUZXN0cyIgYWRfaG9jX3Byb3BlcnR5PSI0MiI+Ci0gIDx0ZXN0
c3VpdGUgbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJs
ZWQ9IjAiCi0gICAgICAgICAgICAgZXJyb3JzPSIwIiB0aW1lPSIqIj4KLSAgICA8dGVzdGNhc2Ug
bmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiB0aW1lPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3Nm
dWxUZXN0Ii8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiIHRlc3RzPSIxIiBm
YWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiCisgICAgICAgICAgICAgZXJyb3Jz
PSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBuYW1lPSJTdWNjZWVk
cyIgc3RhdHVzPSJydW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9Iioi
IGNsYXNzbmFtZT0iU3VjY2Vzc2Z1bFRlc3QiLz4KICAgPC90ZXN0c3VpdGU+CiA8L3Rlc3RzdWl0
ZXM+IiIiCiAKIEVYUEVDVEVEX1NIQVJERURfVEVTVF9YTUwgPSAiIiI8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPHRlc3RzdWl0ZXMgdGVzdHM9IjMiIGZhaWx1cmVzPSIw
IiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIG5hbWU9IkFs
bFRlc3RzIiBhZF9ob2NfcHJvcGVydHk9IjQyIj4KLSAgPHRlc3RzdWl0ZSBuYW1lPSJTdWNjZXNz
ZnVsVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgZXJyb3JzPSIwIiB0
aW1lPSIqIj4KLSAgICA8dGVzdGNhc2UgbmFtZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiB0aW1l
PSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+CisgIDx0ZXN0c3VpdGUgbmFtZT0iU3Vj
Y2Vzc2Z1bFRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9
IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVzdGNhc2UgbmFt
ZT0iU3VjY2VlZHMiIHN0YXR1cz0icnVuIiByZXN1bHQ9ImNvbXBsZXRlZCIgdGltZT0iKiIgdGlt
ZXN0YW1wPSIqIiBjbGFzc25hbWU9IlN1Y2Nlc3NmdWxUZXN0Ii8+CiAgIDwvdGVzdHN1aXRlPgot
ICA8dGVzdHN1aXRlIG5hbWU9Ik5vRml4dHVyZVRlc3QiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMCIg
ZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiI+Ci0gICAgIDx0ZXN0Y2FzZSBuYW1lPSJS
ZWNvcmRQcm9wZXJ0eSIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFtZT0iTm9GaXh0dXJl
VGVzdCI+Ci0gICAgICAgPHByb3BlcnRpZXM+Ci0gICAgICAgICA8cHJvcGVydHkgbmFtZT0ia2V5
IiB2YWx1ZT0iMSIvPgotICAgICAgIDwvcHJvcGVydGllcz4KLSAgICAgPC90ZXN0Y2FzZT4KKyAg
PHRlc3RzdWl0ZSBuYW1lPSJQcm9wZXJ0eVJlY29yZGluZ1Rlc3QiIHRlc3RzPSIxIiBmYWlsdXJl
cz0iMCIgZGlzYWJsZWQ9IjAiIHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0
YW1wPSIqIiBTZXRVcFRlc3RTdWl0ZT0ieWVzIiBUZWFyRG93blRlc3RTdWl0ZT0iYXllIj4KKyAg
ICA8dGVzdGNhc2UgbmFtZT0iSW50VmFsdWVkUHJvcGVydHkiIHN0YXR1cz0icnVuIiByZXN1bHQ9
ImNvbXBsZXRlZCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIiBjbGFzc25hbWU9IlByb3BlcnR5UmVj
b3JkaW5nVGVzdCI+CisgICAgICA8cHJvcGVydGllcz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9
ImtleV9pbnQiIHZhbHVlPSIxIi8+CisgICAgICA8L3Byb3BlcnRpZXM+CisgICAgPC90ZXN0Y2Fz
ZT4KICAgPC90ZXN0c3VpdGU+Ci0gIDx0ZXN0c3VpdGUgbmFtZT0iU2luZ2xlL1ZhbHVlUGFyYW1U
ZXN0IiB0ZXN0cz0iMSIgZmFpbHVyZXM9IjAiIGRpc2FibGVkPSIwIiBlcnJvcnM9IjAiIHRpbWU9
IioiPgotICAgIDx0ZXN0Y2FzZSBuYW1lPSJBbm90aGVyVGVzdFRoYXRIYXNWYWx1ZVBhcmFtQXR0
cmlidXRlLzEiIHZhbHVlX3BhcmFtPSI0MiIgc3RhdHVzPSJydW4iIHRpbWU9IioiIGNsYXNzbmFt
ZT0iU2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgorICA8dGVzdHN1aXRlIG5hbWU9IlNpbmdsZS9W
YWx1ZVBhcmFtVGVzdCIgdGVzdHM9IjEiIGZhaWx1cmVzPSIwIiBkaXNhYmxlZD0iMCIgc2tpcHBl
ZD0iMCIgZXJyb3JzPSIwIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiPgorICAgIDx0ZXN0Y2FzZSBu
YW1lPSJIYXNWYWx1ZVBhcmFtQXR0cmlidXRlLzAiIHZhbHVlX3BhcmFtPSIzMyIgc3RhdHVzPSJy
dW4iIHJlc3VsdD0iY29tcGxldGVkIiB0aW1lPSIqIiB0aW1lc3RhbXA9IioiIGNsYXNzbmFtZT0i
U2luZ2xlL1ZhbHVlUGFyYW1UZXN0IiAvPgogICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4i
IiIKIAotRVhQRUNURURfRU1QVFlfWE1MID0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KK0VYUEVDVEVEX05PX1RFU1RfWE1MID0gIiIiPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KIDx0ZXN0c3VpdGVzIHRlc3RzPSIwIiBmYWlsdXJlcz0iMCIg
ZGlzYWJsZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIKICAgICAgICAgICAgIHRpbWVzdGFtcD0i
KiIgbmFtZT0iQWxsVGVzdHMiPgotPC90ZXN0c3VpdGVzPiIiIgorICA8dGVzdHN1aXRlIG5hbWU9
Ik5vblRlc3RTdWl0ZUZhaWx1cmUiIHRlc3RzPSIxIiBmYWlsdXJlcz0iMSIgZGlzYWJsZWQ9IjAi
IHNraXBwZWQ9IjAiIGVycm9ycz0iMCIgdGltZT0iKiIgdGltZXN0YW1wPSIqIj4KKyAgICA8dGVz
dGNhc2UgbmFtZT0iIiBzdGF0dXM9InJ1biIgcmVzdWx0PSJjb21wbGV0ZWQiIHRpbWU9IioiIHRp
bWVzdGFtcD0iKiIgY2xhc3NuYW1lPSIiPgorICAgICAgPGZhaWx1cmUgbWVzc2FnZT0iZ3Rlc3Rf
bm9fdGVzdF91bml0dGVzdC5jYzoqJiN4MEE7RXhwZWN0ZWQgZXF1YWxpdHkgb2YgdGhlc2UgdmFs
dWVzOiYjeDBBOyAgMSYjeDBBOyAgMiIgdHlwZT0iIj48IVtDREFUQVtndGVzdF9ub190ZXN0X3Vu
aXR0ZXN0LmNjOioKK0V4cGVjdGVkIGVxdWFsaXR5IG9mIHRoZXNlIHZhbHVlczoKKyAgMQorICAy
JShzdGFjaylzXV0+PC9mYWlsdXJlPgorICAgIDwvdGVzdGNhc2U+CisgIDwvdGVzdHN1aXRlPgor
PC90ZXN0c3VpdGVzPiIiIiAlIHsKKyAgICAnc3RhY2snOiBTVEFDS19UUkFDRV9URU1QTEFURQor
fQogCiBHVEVTVF9QUk9HUkFNX1BBVEggPSBndGVzdF90ZXN0X3V0aWxzLkdldFRlc3RFeGVjdXRh
YmxlUGF0aChHVEVTVF9QUk9HUkFNX05BTUUpCiAKQEAgLTIyMSwxNCArMjUyLDE0IEBAIGNsYXNz
IEdUZXN0WE1MT3V0cHV0VW5pdFRlc3QoZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMuR1Rlc3RYTUxUZXN0
Q2FzZSk6CiAgICAgICAiIiIKICAgICAgIHNlbGYuX1Rlc3RYbWxPdXRwdXQoR1RFU1RfUFJPR1JB
TV9OQU1FLCBFWFBFQ1RFRF9OT05fRU1QVFlfWE1MLCAxKQogCi0gIGRlZiB0ZXN0RW1wdHlYbWxP
dXRwdXQoc2VsZik6CisgIGRlZiB0ZXN0Tm9UZXN0WG1sT3V0cHV0KHNlbGYpOgogICAgICIiIlZl
cmlmaWVzIFhNTCBvdXRwdXQgZm9yIGEgR29vZ2xlIFRlc3QgYmluYXJ5IHdpdGhvdXQgYWN0dWFs
IHRlc3RzLgogCi0gICAgUnVucyBhIHRlc3QgcHJvZ3JhbSB0aGF0IGdlbmVyYXRlcyBhbiBlbXB0
eSBYTUwgb3V0cHV0LCBhbmQKLSAgICB0ZXN0cyB0aGF0IHRoZSBYTUwgb3V0cHV0IGlzIGV4cGVj
dGVkLgorICAgIFJ1bnMgYSB0ZXN0IHByb2dyYW0gdGhhdCBnZW5lcmF0ZXMgYW4gWE1MIG91dHB1
dCBmb3IgYSBiaW5hcnkgd2l0aG91dCB0ZXN0cywKKyAgICBhbmQgdGVzdHMgdGhhdCB0aGUgWE1M
IG91dHB1dCBpcyBleHBlY3RlZC4KICAgICAiIiIKIAotICAgIHNlbGYuX1Rlc3RYbWxPdXRwdXQo
J2d0ZXN0X25vX3Rlc3RfdW5pdHRlc3QnLCBFWFBFQ1RFRF9FTVBUWV9YTUwsIDApCisgICAgc2Vs
Zi5fVGVzdFhtbE91dHB1dCgnZ3Rlc3Rfbm9fdGVzdF91bml0dGVzdCcsIEVYUEVDVEVEX05PX1RF
U1RfWE1MLCAwKQogCiAgIGRlZiB0ZXN0VGltZXN0YW1wVmFsdWUoc2VsZik6CiAgICAgIiIiQ2hl
Y2tzIHdoZXRoZXIgdGhlIHRpbWVzdGFtcCBhdHRyaWJ1dGUgaW4gdGhlIFhNTCBvdXRwdXQgaXMg
dmFsaWQuCkBAIC0yNjYsNyArMjk3LDggQEAgY2xhc3MgR1Rlc3RYTUxPdXRwdXRVbml0VGVzdChn
dGVzdF94bWxfdGVzdF91dGlscy5HVGVzdFhNTFRlc3RDYXNlKToKICAgICAgICAgJ2d0ZXN0X25v
X3Rlc3RfdW5pdHRlc3QnKQogICAgIHRyeToKICAgICAgIG9zLnJlbW92ZShvdXRwdXRfZmlsZSkK
LSAgICBleGNlcHQgT1NFcnJvciwgZToKKyAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgIGUgPSBz
eXMuZXhjX2luZm8oKVsxXQogICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9FTlQ6CiAgICAg
ICAgIHJhaXNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rl
c3RfeG1sX291dHB1dF91bml0dGVzdF8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC90ZXN0
L2d0ZXN0X3htbF9vdXRwdXRfdW5pdHRlc3RfLmNjCmluZGV4IDJlZTg4MzgwMDVlZWVjMjM1NzFi
YWUzODljNzkyNjk4YzMwYzRkNTAuLmMwMDM2YWFlZjlkZjI3NjU0YWU2YTZjZTFkZWQwNzY0MmNh
MmQzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1s
X291dHB1dF91bml0dGVzdF8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9n
dGVzdF94bWxfb3V0cHV0X3VuaXR0ZXN0Xy5jYwpAQCAtNjcsNiArNjcsMjIgQEAgVEVTVF9GKERp
c2FibGVkVGVzdCwgRElTQUJMRURfdGVzdF9ub3RfcnVuKSB7CiAgIEZBSUwoKSA8PCAiVW5leHBl
Y3RlZCBmYWlsdXJlOiBEaXNhYmxlZCB0ZXN0IHNob3VsZCBub3QgYmUgcnVuIjsKIH0KIAorY2xh
c3MgU2tpcHBlZFRlc3QgOiBwdWJsaWMgVGVzdCB7Cit9OworCitURVNUX0YoU2tpcHBlZFRlc3Qs
IFNraXBwZWQpIHsKKyAgR1RFU1RfU0tJUCgpOworfQorCitURVNUX0YoU2tpcHBlZFRlc3QsIFNr
aXBwZWRXaXRoTWVzc2FnZSkgeworICBHVEVTVF9TS0lQKCkgPDwgIkl0IGlzIGdvb2QgcHJhY3Rp
Y2UgdG8gdGVsbCB3aHkgeW91IHNraXAgYSB0ZXN0LiI7Cit9CisKK1RFU1RfRihTa2lwcGVkVGVz
dCwgU2tpcHBlZEFmdGVyRmFpbHVyZSkgeworICBFWFBFQ1RfRVEoMSwgMik7CisgIEdURVNUX1NL
SVAoKSA8PCAiSXQgaXMgZ29vZCBwcmFjdGljZSB0byB0ZWxsIHdoeSB5b3Ugc2tpcCBhIHRlc3Qu
IjsKK30KKwogVEVTVChNaXhlZFJlc3VsdFRlc3QsIFN1Y2NlZWRzKSB7CiAgIEVYUEVDVF9FUSgx
LCAxKTsKICAgQVNTRVJUX0VRKDEsIDEpOwpAQCAtOTQsOCArMTEwLDEwIEBAIFRFU1QoSW52YWxp
ZENoYXJhY3RlcnNUZXN0LCBJbnZhbGlkQ2hhcmFjdGVyc0luTWVzc2FnZSkgewogCiBjbGFzcyBQ
cm9wZXJ0eVJlY29yZGluZ1Rlc3QgOiBwdWJsaWMgVGVzdCB7CiAgcHVibGljOgotICBzdGF0aWMg
dm9pZCBTZXRVcFRlc3RDYXNlKCkgeyBSZWNvcmRQcm9wZXJ0eSgiU2V0VXBUZXN0Q2FzZSIsICJ5
ZXMiKTsgfQotICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeyBSZWNvcmRQcm9wZXJ0
eSgiVGVhckRvd25UZXN0Q2FzZSIsICJheWUiKTsgfQorICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RT
dWl0ZSgpIHsgUmVjb3JkUHJvcGVydHkoIlNldFVwVGVzdFN1aXRlIiwgInllcyIpOyB9CisgIHN0
YXRpYyB2b2lkIFRlYXJEb3duVGVzdFN1aXRlKCkgeworICAgIFJlY29yZFByb3BlcnR5KCJUZWFy
RG93blRlc3RTdWl0ZSIsICJheWUiKTsKKyAgfQogfTsKIAogVEVTVF9GKFByb3BlcnR5UmVjb3Jk
aW5nVGVzdCwgT25lUHJvcGVydHkpIHsKQEAgLTE0MywyOSArMTYxLDI1IEBAIFRFU1QoTm9GaXh0
dXJlVGVzdCwgRXh0ZXJuYWxVdGlsaXR5VGhhdENhbGxzUmVjb3JkU3RyaW5nVmFsdWVkUHJvcGVy
dHkpIHsKIGNsYXNzIFZhbHVlUGFyYW1UZXN0IDogcHVibGljIFRlc3RXaXRoUGFyYW08aW50PiB7
fTsKIFRFU1RfUChWYWx1ZVBhcmFtVGVzdCwgSGFzVmFsdWVQYXJhbUF0dHJpYnV0ZSkge30KIFRF
U1RfUChWYWx1ZVBhcmFtVGVzdCwgQW5vdGhlclRlc3RUaGF0SGFzVmFsdWVQYXJhbUF0dHJpYnV0
ZSkge30KLUlOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKFNpbmdsZSwgVmFsdWVQYXJhbVRlc3QsIFZh
bHVlcygzMywgNDIpKTsKK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChTaW5nbGUsIFZhbHVlUGFy
YW1UZXN0LCBWYWx1ZXMoMzMsIDQyKSk7CiAKLSNpZiBHVEVTVF9IQVNfVFlQRURfVEVTVAogLy8g
VmVyaWZpZXMgdGhhdCB0aGUgdHlwZSBwYXJhbWV0ZXIgbmFtZSBpcyBvdXRwdXQgaW4gdGhlICd0
eXBlX3BhcmFtJwogLy8gWE1MIGF0dHJpYnV0ZSBmb3IgdHlwZWQgdGVzdHMuCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgVHlwZWRUZXN0IDogcHVibGljIFRlc3Qge307CiB0eXBlZGVmIHRl
c3Rpbmc6OlR5cGVzPGludCwgbG9uZz4gVHlwZWRUZXN0VHlwZXM7Ci1UWVBFRF9URVNUX0NBU0Uo
VHlwZWRUZXN0LCBUeXBlZFRlc3RUeXBlcyk7CitUWVBFRF9URVNUX1NVSVRFKFR5cGVkVGVzdCwg
VHlwZWRUZXN0VHlwZXMpOwogVFlQRURfVEVTVChUeXBlZFRlc3QsIEhhc1R5cGVQYXJhbUF0dHJp
YnV0ZSkge30KLSNlbmRpZgogCi0jaWYgR1RFU1RfSEFTX1RZUEVEX1RFU1RfUAogLy8gVmVyaWZp
ZXMgdGhhdCB0aGUgdHlwZSBwYXJhbWV0ZXIgbmFtZSBpcyBvdXRwdXQgaW4gdGhlICd0eXBlX3Bh
cmFtJwogLy8gWE1MIGF0dHJpYnV0ZSBmb3IgdHlwZS1wYXJhbWV0ZXJpemVkIHRlc3RzLgotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UgOiBwdWJs
aWMgVGVzdCB7fTsKLVRZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2Up
OwotVFlQRURfVEVTVF9QKFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2UsIEhhc1R5cGVQYXJhbUF0
dHJpYnV0ZSkge30KLVJFR0lTVEVSX1RZUEVEX1RFU1RfQ0FTRV9QKFR5cGVQYXJhbWV0ZXJpemVk
VGVzdENhc2UsIEhhc1R5cGVQYXJhbUF0dHJpYnV0ZSk7Ci10eXBlZGVmIHRlc3Rpbmc6OlR5cGVz
PGludCwgbG9uZz4gVHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZVR5cGVzOwotSU5TVEFOVElBVEVf
VFlQRURfVEVTVF9DQVNFX1AoU2luZ2xlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VHlwZVBhcmFtZXRlcml6ZWRUZXN0Q2FzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFR5cGVQYXJhbWV0ZXJpemVkVGVzdENhc2VUeXBlcyk7Ci0jZW5kaWYKK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPgorY2xhc3MgVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUgOiBwdWJsaWMgVGVzdCB7
fTsKK1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZSk7CitUWVBF
RF9URVNUX1AoVHlwZVBhcmFtZXRlcml6ZWRUZXN0U3VpdGUsIEhhc1R5cGVQYXJhbUF0dHJpYnV0
ZSkge30KK1JFR0lTVEVSX1RZUEVEX1RFU1RfU1VJVEVfUChUeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZSwgSGFzVHlwZVBhcmFtQXR0cmlidXRlKTsKK3R5cGVkZWYgdGVzdGluZzo6VHlwZXM8aW50
LCBsb25nPiBUeXBlUGFyYW1ldGVyaXplZFRlc3RTdWl0ZVR5cGVzOyAgLy8gTk9MSU5UCitJTlNU
QU5USUFURV9UWVBFRF9URVNUX1NVSVRFX1AoU2luZ2xlLCBUeXBlUGFyYW1ldGVyaXplZFRlc3RT
dWl0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlUGFyYW1ldGVyaXplZFRl
c3RTdWl0ZVR5cGVzKTsKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CiAgIElu
aXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L3Rlc3QvZ3Rlc3RfeG1sX3Rlc3RfdXRpbHMucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC90ZXN0L2d0ZXN0X3htbF90ZXN0X3V0aWxzLnB5CmluZGV4IDFlMDM1ODU5MmZiMDA4NGYw
YTg5YzM0MzZmZjc1MTc0ODY4MjdhY2QuLjVkZDBlYjkyNDQzYWQ3MzE1OWZjMzg0NWM1NzlmMzk5
ZThmM2JmODQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3Rlc3QvZ3Rlc3Rf
eG1sX3Rlc3RfdXRpbHMucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9ndGVz
dF94bWxfdGVzdF91dGlscy5weQpAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBHVGVzdFhNTFRlc3RD
YXNlKGd0ZXN0X3Rlc3RfdXRpbHMuVGVzdENhc2UpOgogICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAog
ICAgICAgICBsZW4oZXhwZWN0ZWRfY2hpbGRyZW4pLCBsZW4oYWN0dWFsX2NoaWxkcmVuKSwKICAg
ICAgICAgJ251bWJlciBvZiBjaGlsZCBlbGVtZW50cyBkaWZmZXIgaW4gZWxlbWVudCAnICsgYWN0
dWFsX25vZGUudGFnTmFtZSkKLSAgICBmb3IgY2hpbGRfaWQsIGNoaWxkIGluIGV4cGVjdGVkX2No
aWxkcmVuLml0ZXJpdGVtcygpOgorICAgIGZvciBjaGlsZF9pZCwgY2hpbGQgaW4gZXhwZWN0ZWRf
Y2hpbGRyZW4uaXRlbXMoKToKICAgICAgIHNlbGYuYXNzZXJ0XyhjaGlsZF9pZCBpbiBhY3R1YWxf
Y2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgICAgJzwlcz4gaXMgbm90IGluIDwlcz4gKGluIGVs
ZW1lbnQgJXMpJyAlCiAgICAgICAgICAgICAgICAgICAgKGNoaWxkX2lkLCBhY3R1YWxfY2hpbGRy
ZW4sIGFjdHVhbF9ub2RlLnRhZ05hbWUpKQpAQCAtMTA1LDYgKzEwNSw3IEBAIGNsYXNzIEdUZXN0
WE1MVGVzdENhc2UoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2FzZSk6CiAgICAgICAndGVzdHN1aXRl
JzogJ25hbWUnLAogICAgICAgJ3Rlc3RjYXNlJzogJ25hbWUnLAogICAgICAgJ2ZhaWx1cmUnOiAn
bWVzc2FnZScsCisgICAgICAnc2tpcHBlZCc6ICdtZXNzYWdlJywKICAgICAgICdwcm9wZXJ0eSc6
ICduYW1lJywKICAgfQogCkBAIC0xNjksOSArMTcwLDkgQEAgY2xhc3MgR1Rlc3RYTUxUZXN0Q2Fz
ZShndGVzdF90ZXN0X3V0aWxzLlRlc3RDYXNlKToKICAgICAqICBUaGUgc3RhY2sgdHJhY2VzIGFy
ZSByZW1vdmVkLgogICAgICIiIgogCi0gICAgaWYgZWxlbWVudC50YWdOYW1lID09ICd0ZXN0c3Vp
dGVzJzoKKyAgICBpZiBlbGVtZW50LnRhZ05hbWUgaW4gKCd0ZXN0c3VpdGVzJywgJ3Rlc3RzdWl0
ZScsICd0ZXN0Y2FzZScpOgogICAgICAgdGltZXN0YW1wID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVO
b2RlKCd0aW1lc3RhbXAnKQotICAgICAgdGltZXN0YW1wLnZhbHVlID0gcmUuc3ViKHInXlxkezR9
LVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZCQnLAorICAgICAgdGltZXN0YW1wLnZhbHVlID0gcmUu
c3ViKHInXlxkezR9LVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZFwuXGRcZFxkJCcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyonLCB0aW1lc3RhbXAudmFsdWUpCiAgICAgaWYgZWxl
bWVudC50YWdOYW1lIGluICgndGVzdHN1aXRlcycsICd0ZXN0c3VpdGUnLCAndGVzdGNhc2UnKToK
ICAgICAgIHRpbWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZU5vZGUoJ3RpbWUnKQpAQCAtMTc5LDcg
KzE4MCw3IEBAIGNsYXNzIEdUZXN0WE1MVGVzdENhc2UoZ3Rlc3RfdGVzdF91dGlscy5UZXN0Q2Fz
ZSk6CiAgICAgICB0eXBlX3BhcmFtID0gZWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKCd0eXBlX3Bh
cmFtJykKICAgICAgIGlmIHR5cGVfcGFyYW0gYW5kIHR5cGVfcGFyYW0udmFsdWU6CiAgICAgICAg
IHR5cGVfcGFyYW0udmFsdWUgPSAnKicKLSAgICBlbGlmIGVsZW1lbnQudGFnTmFtZSA9PSAnZmFp
bHVyZSc6CisgICAgZWxpZiBlbGVtZW50LnRhZ05hbWUgPT0gJ2ZhaWx1cmUnIG9yIGVsZW1lbnQu
dGFnTmFtZSA9PSAnc2tpcHBlZCc6CiAgICAgICBzb3VyY2VfbGluZV9wYXQgPSByJ14uKlsvXFxd
KC4qOilcZCtcbicKICAgICAgICMgUmVwbGFjZXMgdGhlIHNvdXJjZSBsaW5lIGluZm9ybWF0aW9u
IHdpdGggYSBub3JtYWxpemVkIGZvcm0uCiAgICAgICBtZXNzYWdlID0gZWxlbWVudC5nZXRBdHRy
aWJ1dGVOb2RlKCdtZXNzYWdlJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
L3Rlc3QvcHJvZHVjdGlvbi5oIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9wcm9kdWN0
aW9uLmgKaW5kZXggNTQyNzIzYjcwODczODdkNGZiNTI5ZmMwN2E2ODhiYzFjOGQ3OGIxZS4uNDFh
NTQ3MjI1NDIzZDgzMzFhNjQ5ZGE5NWYyOGUxZmQzYzVhZTc3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvdGVzdC9wcm9kdWN0aW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QvdGVzdC9wcm9kdWN0aW9uLmgKQEAgLTMwLDggKzMwLDggQEAKIC8vCiAvLyBUaGlz
IGlzIHBhcnQgb2YgdGhlIHVuaXQgdGVzdCBmb3IgZ3Rlc3RfcHJvZC5oLgogCi0jaWZuZGVmIEdU
RVNUX1RFU1RfUFJPRFVDVElPTl9IXwotI2RlZmluZSBHVEVTVF9URVNUX1BST0RVQ1RJT05fSF8K
KyNpZm5kZWYgR09PR0xFVEVTVF9URVNUX1BST0RVQ1RJT05fSF8KKyNkZWZpbmUgR09PR0xFVEVT
VF9URVNUX1BST0RVQ1RJT05fSF8KIAogI2luY2x1ZGUgImd0ZXN0L2d0ZXN0X3Byb2QuaCIKIApA
QCAtNTEsNCArNTEsNCBAQCBjbGFzcyBQcml2YXRlQ29kZSB7CiAgIGludCB4XzsKIH07CiAKLSNl
bmRpZiAgLy8gR1RFU1RfVEVTVF9QUk9EVUNUSU9OX0hfCisjZW5kaWYgIC8vIEdPT0dMRVRFU1Rf
VEVTVF9QUk9EVUNUSU9OX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC94
Y29kZS9SZXNvdXJjZXMvSW5mby5wbGlzdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2Rl
L1Jlc291cmNlcy9JbmZvLnBsaXN0CmluZGV4IDlkZDI4ZWExNDg1YWI1MjdlNjI3NWJmMzk4NTBj
YjBlODRjZGRiMzYuLmI4MTRjNDg4MjhhYTVmMjc5ZDc0MzZhNDNlNTkwMDA4NmNkNGM2M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL1Jlc291cmNlcy9JbmZvLnBs
aXN0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL1Jlc291cmNlcy9JbmZvLnBs
aXN0CkBAIC02LDYgKzYsOCBAQAogCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgogCTxrZXk+Q0ZC
dW5kbGVFeGVjdXRhYmxlPC9rZXk+CiAJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmlu
Zz4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNU
X05BTUV9ICQoQ1VSUkVOVF9QUk9KRUNUX1ZFUlNJT04pLCAke0dURVNUX1ZFUlNJT05JTkZPX0FC
T1VUfTwvc3RyaW5nPgogCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwva2V5PgogCTxzdHJpbmc+PC9z
dHJpbmc+CiAJPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KQEAgLTE0LDE3ICsxNiwxNSBA
QAogCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CiAJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+
CiAJPHN0cmluZz5GTVdLPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmlu
Zzwva2V5PgorCTxzdHJpbmc+JChNQVJLRVRJTkdfVkVSU0lPTik8L3N0cmluZz4KIAk8a2V5PkNG
QnVuZGxlU2lnbmF0dXJlPC9rZXk+CiAJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CiAJPGtleT5DRkJ1
bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPkdURVNUX1ZFUlNJT05JTkZPX0xPTkc8L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz5HVEVT
VF9WRVJTSU9OSU5GT19TSE9SVDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5n
PC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX0gR1RFU1RfVkVSU0lPTklORk9fTE9ORywg
JHtHVEVTVF9WRVJTSU9OSU5GT19BQk9VVH08L3N0cmluZz4KLQk8a2V5Pk5TSHVtYW5SZWFkYWJs
ZUNvcHlyaWdodDwva2V5PgotCTxzdHJpbmc+JHtHVEVTVF9WRVJTSU9OSU5GT19BQk9VVH08L3N0
cmluZz4KKwk8c3RyaW5nPiQoQ1VSUkVOVF9QUk9KRUNUX1ZFUlNJT04pPC9zdHJpbmc+CiAJPGtl
eT5DU1Jlc291cmNlc0ZpbGVNYXBwZWQ8L2tleT4KIAk8dHJ1ZS8+CisJPGtleT5OU0h1bWFuUmVh
ZGFibGVDb3B5cmlnaHQ8L2tleT4KKwk8c3RyaW5nPiR7R1RFU1RfVkVSU0lPTklORk9fQUJPVVR9
PC9zdHJpbmc+CiA8L2RpY3Q+CiA8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvZ3Rlc3QveGNvZGUvU2NyaXB0cy92ZXJzaW9uZ2VuZXJhdGUucHkgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC94Y29kZS9TY3JpcHRzL3ZlcnNpb25nZW5lcmF0ZS5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggYmRkNzU0MWFkNzk3ZmE2NzNmNjVkYTM4MTY4ZTE1ODBmZDdkZGUz
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9ndGVzdC94Y29kZS9TY3JpcHRzL3ZlcnNpb25nZW5lcmF0ZS5weQorKysgL2Rl
di9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IDIwMDgsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0iIiJBIHNjcmlwdCB0byBwcmVwYXJlIHZlcnNpb24gaW5mb3JtYXRpb24g
Zm9yIHVzZSB0aGUgZ3Rlc3QgSW5mby5wbGlzdCBmaWxlLgotCi0gIFRoaXMgc2NyaXB0IGV4dHJh
Y3RzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIGNvbmZpZ3VyZS5hYyBmaWxlIGFu
ZAotICB1c2VzIGl0IHRvIGdlbmVyYXRlIGEgaGVhZGVyIGZpbGUgY29udGFpbmluZyB0aGUgc2Ft
ZSBpbmZvcm1hdGlvbi4gVGhlCi0gICNkZWZpbmVzIGluIHRoaXMgaGVhZGVyIGZpbGUgd2lsbCBi
ZSBpbmNsdWRlZCBpbiBkdXJpbmcgdGhlIGdlbmVyYXRpb24gb2YKLSAgdGhlIEluZm8ucGxpc3Qg
b2YgdGhlIGZyYW1ld29yaywgZ2l2aW5nIHRoZSBjb3JyZWN0IHZhbHVlIHRvIHRoZSB2ZXJzaW9u
Ci0gIHNob3duIGluIHRoZSBGaW5kZXIuCi0KLSAgVGhpcyBzY3JpcHQgbWFrZXMgdGhlIGZvbGxv
d2luZyBhc3N1bXB0aW9ucyAodGhlc2UgYXJlIGZhdWx0cyBvZiB0aGUgc2NyaXB0LAotICBub3Qg
cHJvYmxlbXMgd2l0aCB0aGUgQXV0b2NvbmYpOgotICAgIDEuIFRoZSBBQ19JTklUIG1hY3JvIHdp
bGwgYmUgY29udGFpbmVkIHdpdGhpbiB0aGUgZmlyc3QgMTAyNCBjaGFyYWN0ZXJzCi0gICAgICAg
b2YgY29uZmlndXJlLmFjCi0gICAgMi4gVGhlIHZlcnNpb24gc3RyaW5nIHdpbGwgYmUgMyBpbnRl
Z2VycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyBhbmQgd2lsbCBiZQotICAgICAgIHN1cnJvdW5kZWQg
Ynkgc3F1YXJlIGJyYWNrZXRzLCAiWyIgYW5kICJdIiAoZS5nLiBbMS4wLjFdKS4gVGhlIGZpcnN0
Ci0gICAgICAgc2VnbWVudCByZXByZXNlbnRzIHRoZSBtYWpvciB2ZXJzaW9uLCB0aGUgc2Vjb25k
IHJlcHJlc2VudHMgdGhlIG1pbm9yCi0gICAgICAgdmVyc2lvbiBhbmQgdGhlIHRoaXJkIHJlcHJl
c2VudHMgdGhlIGZpeCB2ZXJzaW9uLgotICAgIDMuIE5vICIpIiBjaGFyYWN0ZXIgZXhpc3RzIGJl
dHdlZW4gdGhlIG9wZW5pbmcgIigiIGFuZCBjbG9zaW5nICIpIiBvZgotICAgICAgIEFDX0lOSVQs
IGluY2x1ZGluZyBpbiBjb21tZW50cyBhbmQgY2hhcmFjdGVyIHN0cmluZ3MuCi0iIiIKLQotaW1w
b3J0IHN5cwotaW1wb3J0IHJlCi0KLSMgUmVhZCB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50ICh0
aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgVmVyc2lvbi5oKQotaWYgKGxlbihzeXMuYXJndikgPCAz
KToKLSAgcHJpbnQgIlVzYWdlOiB2ZXJzaW9uZ2VuZXJhdGUucHkgaW5wdXRfZGlyIG91dHB1dF9k
aXIiCi0gIHN5cy5leGl0KDEpCi1lbHNlOgotICBpbnB1dF9kaXIgPSBzeXMuYXJndlsxXQotICBv
dXRwdXRfZGlyID0gc3lzLmFyZ3ZbMl0KLQotIyBSZWFkIHRoZSBmaXJzdCAxMDI0IGNoYXJhY3Rl
cnMgb2YgdGhlIGNvbmZpZ3VyZS5hYyBmaWxlCi1jb25maWdfZmlsZSA9IG9wZW4oIiVzL2NvbmZp
Z3VyZS5hYyIgJSBpbnB1dF9kaXIsICdyJykKLWJ1ZmZlcl9zaXplID0gMTAyNAotb3BlbmluZ19z
dHJpbmcgPSBjb25maWdfZmlsZS5yZWFkKGJ1ZmZlcl9zaXplKQotY29uZmlnX2ZpbGUuY2xvc2Uo
KQotCi0jIEV4dHJhY3QgdGhlIHZlcnNpb24gc3RyaW5nIGZyb20gdGhlIEFDX0lOSVQgbWFjcm8K
LSMgICBUaGUgZm9sbG93aW5nIGluaXRfZXhwcmVzc2lvbiBtZWFuczoKLSMgICAgIEV4dHJhY3Qg
dGhyZWUgaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMgYW5kIHN1cnJvdW5kZWQgYnkgc3F1
YXJlCi0jICAgICBicmFja2V0cyhlLmcuICJbMS4wLjFdIikgYmV0d2VlbiAiQUNfSU5JVCgiIGFu
ZCAiKSIuIERvIG5vdCBiZSBncmVlZHkKLSMgICAgICgqPyBpcyB0aGUgbm9uLWdyZWVkeSBmbGFn
KSBzaW5jZSB0aGF0IHdvdWxkIHB1bGwgaW4gZXZlcnl0aGluZyBiZXR3ZWVuCi0jICAgICB0aGUg
Zmlyc3QgIigiIGFuZCB0aGUgbGFzdCAiKSIgaW4gdGhlIGZpbGUuCi12ZXJzaW9uX2V4cHJlc3Np
b24gPSByZS5jb21waWxlKHIiQUNfSU5JVFwoLio/XFsoXGQrKVwuKFxkKylcLihcZCspXF0uKj9c
KSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLkRPVEFMTCkKLXZlcnNpb25f
dmFsdWVzID0gdmVyc2lvbl9leHByZXNzaW9uLnNlYXJjaChvcGVuaW5nX3N0cmluZykKLW1ham9y
X3ZlcnNpb24gPSB2ZXJzaW9uX3ZhbHVlcy5ncm91cCgxKQotbWlub3JfdmVyc2lvbiA9IHZlcnNp
b25fdmFsdWVzLmdyb3VwKDIpCi1maXhfdmVyc2lvbiA9IHZlcnNpb25fdmFsdWVzLmdyb3VwKDMp
Ci0KLSMgV3JpdGUgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gdG8gYSBoZWFkZXIgZmlsZSB0byBi
ZSBpbmNsdWRlZCBpbiB0aGUKLSMgSW5mby5wbGlzdCBmaWxlLgotZmlsZV9kYXRhID0gIiIiLy8K
LS8vIERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIChidXQgeW91IGNhbiBkZWxldGUgaXQpCi0vLwot
Ly8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgdGhlIHZlcnNpb25nZW5lcmF0ZS5weSBz
Y3JpcHQuIFRoaXMgc2NyaXB0Ci0vLyBpcyBleGVjdXRlZCBpbiBhICJSdW4gU2NyaXB0IiBidWls
ZCBwaGFzZSB3aGVuIGNyZWF0aW5nIGd0ZXN0LmZyYW1ld29yay4gVGhpcwotLy8gaGVhZGVyIGZp
bGUgaXMgbm90IHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIEMtc291cmNlLiBSYXRoZXIsIGl0
IHNpbXBseQotLy8gZGVmaW5lcyBzb21lIHZlcnNpb24gc3RyaW5ncyBmb3Igc3Vic3RpdHV0aW9u
IGluIHRoZSBJbmZvLnBsaXN0LiBCZWNhdXNlIG9mCi0vLyB0aGlzLCB3ZSBhcmUgbm90IHJlc3Ry
aWN0ZWQgdG8gQy1zeW50YXggbm9yIGFyZSB3ZSB1c2luZyBpbmNsdWRlIGd1YXJkcy4KLS8vCi0K
LSNkZWZpbmUgR1RFU1RfVkVSU0lPTklORk9fU0hPUlQgJXMuJXMKLSNkZWZpbmUgR1RFU1RfVkVS
U0lPTklORk9fTE9ORyAlcy4lcy4lcwotCi0iIiIgJSAobWFqb3JfdmVyc2lvbiwgbWlub3JfdmVy
c2lvbiwgbWFqb3JfdmVyc2lvbiwgbWlub3JfdmVyc2lvbiwgZml4X3ZlcnNpb24pCi12ZXJzaW9u
X2ZpbGUgPSBvcGVuKCIlcy9WZXJzaW9uLmgiICUgb3V0cHV0X2RpciwgJ3cnKQotdmVyc2lvbl9m
aWxlLndyaXRlKGZpbGVfZGF0YSkKLXZlcnNpb25fZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC94Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QveGNvZGUvZ3Rlc3QueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlYTRiZmRjNDI0MmEzZTVlZWI2YzA3MDE2MjFiY2NkMTg5YTdjNTgz
Li5jNWU4Y2E5NTA1ZDNjYjgwOGRmNGJmMmIyNzQ4N2Y3OGVkYTE5YzhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC94Y29kZS9ndGVzdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L3hjb2RlL2d0ZXN0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIyLDE4ICsyMiw2IEBACiAJCQluYW1lID0gQ2hlY2s7CiAJCQlw
cm9kdWN0TmFtZSA9IENoZWNrOwogCQl9OwotCQk0MEM0NEFEQzBFMzc5OEY0MDA4RkNDNTEgLyog
VmVyc2lvbiBJbmZvICovID0gewotCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwotCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDQwQzQ0QUU0MEUzNzk5MDUwMDhGQ0M1MSAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiVmVyc2lvbiBJbmZvIiAq
LzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTQwQzQ0QURCMEUzNzk4RjQwMDhGQ0M1MSAvKiBH
ZW5lcmF0ZSBWZXJzaW9uLmggKi8sCi0JCQkpOwotCQkJY29tbWVudHMgPSAiVGhlIGdlbmVyYXRp
b24gb2YgVmVyc2lvbi5oIG11c3QgYmUgcGVyZm9ybWVkIGluIGl0cyBvd24gdGFyZ2V0LiBTaW5j
ZSB0aGUgSW5mby5wbGlzdCBpcyBwcmVwcm9jZXNzZWQgYmVmb3JlIGFueSBvZiB0aGUgb3RoZXIg
YnVpbGQgcGhhc2VzIGluIGd0ZXN0LCB0aGUgVmVyc2lvbi5oIGZpbGUgd291bGQgbm90IGJlIHJl
YWR5IGlmIGluY2x1ZGVkIGFzIGEgYnVpbGQgcGhhc2Ugb2YgdGhhdCB0YXJnZXQuIjsKLQkJCWRl
cGVuZGVuY2llcyA9ICgKLQkJCSk7Ci0JCQluYW1lID0gIlZlcnNpb24gSW5mbyI7Ci0JCQlwcm9k
dWN0TmFtZSA9IFZlcnNpb24uaDsKLQkJfTsKIC8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwpAQCAtNTIsMTEgKzQw
LDggQEAKIAkJNDA0ODg0QTIwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggaW4g
Q29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwNDg4M0U0MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1pbnRlcm5hbC5oICovOyB9OwogCQk0
MDQ4ODRBMzBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oIGluIENvcHkgSGVhZGVycyBJ
bnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODNFNTBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovOyB9OwogCQk0MDQ4ODRBNDBFMkY3QkU2MDBD
Rjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4M0U2MEUyRjc5OUIwMENGNzY1OCAvKiBn
dGVzdC1zdHJpbmcuaCAqLzsgfTsKLQkJNDA0ODg0QUMwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5H
RVMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwNDg4
NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBDSEFOR0VTICovOyB9OwotCQk0MDQ4ODRBRDBFMkY3Q0Q5
MDBDRjc2NTggLyogQ09OVFJJQlVUT1JTIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDQ4ODRBQTBFMkY3Q0Q5MDBDRjc2NTggLyogQ09OVFJJQlVUT1JT
ICovOyB9OwogCQk0MDQ4ODRBRTBFMkY3Q0Q5MDBDRjc2NTggLyogTElDRU5TRSBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA0ODg0QUIwRTJGN0NEOTAw
Q0Y3NjU4IC8qIExJQ0VOU0UgKi87IH07CiAJCTQwODk5RjNBMEZGQTcwRDQwMDBCMjlBRSAvKiBn
dGVzdC1hbGwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMjRBMTJBMTBFOUVBREE3MDBCRDE3RkQgLyogZ3Rlc3QtYWxsLmNjICovOyB9OwotCQk0MDg5
OUY1MDBGRkE3MjgxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCBpbiBDb3B5IEhlYWRlcnMgSW50
ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA4OTlGNEQwRkZBNzI3
MTAwMEIyOUFFIC8qIGd0ZXN0LXR1cGxlLmggKi87IH07CiAJCTQwODk5RjUzMEZGQTcyQTAwMDBC
MjlBRSAvKiBndGVzdF91bml0dGVzdC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNCMjM4QzEyMEU3RkUxM0MwMDg0NkUxMSAvKiBndGVzdF91bml0dGVz
dC5jYyAqLzsgfTsKIAkJNDA4OUEwNDQwRkZBRDFCRTAwMEIyOUFFIC8qIHNhbXBsZTEuY2MgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyQzBGRkFD
RjdGMDAwQjI5QUUgLyogc2FtcGxlMS5jYyAqLzsgfTsKIAkJNDA4OUEwNDYwRkZBRDFCRTAwMEIy
OUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDg5QTAyRTBGRkFDRjdGMDAwQjI5QUUgLyogc2FtcGxlMV91bml0
dGVzdC5jYyAqLzsgfTsKQEAgLTc1LDEwICs2MCw5IEBACiAJCTQwQzg0OUEyMTAxQTM3MDUwMDgz
NjQyQSAvKiBndGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJhbWV3
b3JrICovOyB9OwogCQk0MEM4NDlBNDEwMUEzNzE1MDA4MzY0MkEgLyogZ3Rlc3QuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzOUM4
RkYwRUMyN0Y2NDAwQTcwRjRDIC8qIGd0ZXN0LmZyYW1ld29yayAqLzsgfTsKIAkJNDUzOUM5MzQw
RUMyODBBRTAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXRlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MzlDOTMzMEVDMjgwQUUwMEE3MEY0QyAvKiBn
dGVzdC1wYXJhbS10ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OwotCQk0NTM5QzkzODBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5o
IGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTM5QzkzNTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5oICovOyB9
OwotCQk0NTM5QzkzOTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0
ZWQuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDUzOUM5MzYwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwtZ2Vu
ZXJhdGVkLmggKi87IH07CiAJCTQ1MzlDOTNBMEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJh
bS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ1MzlDOTM3MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS11dGls
LmggKi87IH07CiAJCTQ1NjdDODE4MTI2NEZGNzEwMDc3NDBCRSAvKiBndGVzdC1wcmludGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDU2N0M4MTcx
MjY0RkY3MTAwNzc0MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQlBM0MxMEJFMDI2MDk1MkM2MDAyMzE1NUQgLyog
Z3Rlc3QtbWF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQzEwQkRGMjYwOTUyQzUwMDIzMTU1RCAvKiBndGVzdC1tYXRjaGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRjY3RDRGM0UxQzdG
NUQ4QjAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQtYXJjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY3RDRGM0QxQzdGNUQ4QjAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oICovOyB9OwogCQlGNjdENEYzRjFDN0Y1REE3MDAxN0M3MjkgLyogZ3Rlc3Qt
cG9ydC1hcmNoLmggaW4gQ29weSBIZWFkZXJzIEludGVybmFsICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFy
Y2guaCAqLzsgfTsKIAkJRjY3RDRGNDQxQzdGNUREMDAwMTdDNzI5IC8qIGd0ZXN0LXBvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0Q0RjQxMUM3
RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wb3J0LmggKi87IH07CkBAIC0xMTAsMTMgKzk0LDYgQEAK
IAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBOwogCQkJ
cmVtb3RlSW5mbyA9ICJndGVzdC1zdGF0aWMiOwogCQl9OwotCQk0MEM0NEFFNTBFMzc5OTIyMDA4
RkNDNTEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFp
bmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFB
QzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gNDBDNDRBREMwRTM3OThGNDAwOEZDQzUxOwotCQkJcmVtb3RlSW5mbyA9
IFZlcnNpb24uaDsKLQkJfTsKIAkJNDBDODQ5N0MxMDFBMzY4NTAwODM2NDJBIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJ
CWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9i
amVjdCAqLzsKQEAgLTE5MiwxMyArMTY5LDEwIEBACiAJCQkJNDA0ODg0QTAwRTJGN0JFNjAwQ0Y3
NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QtaW50ZXJuYWwuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJu
YWwgKi8sCiAJCQkJNDA0ODg0QTEwRTJGN0JFNjAwQ0Y3NjU4IC8qIGd0ZXN0LWZpbGVwYXRoLmgg
aW4gQ29weSBIZWFkZXJzIEludGVybmFsICovLAogCQkJCTQwNDg4NEEyMEUyRjdCRTYwMENGNzY1
OCAvKiBndGVzdC1pbnRlcm5hbC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKLQkJCQk0
NTM5QzkzODBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtbGlua2VkX3B0ci5oIGluIENvcHkgSGVh
ZGVycyBJbnRlcm5hbCAqLywKLQkJCQk0NTM5QzkzOTBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3Qt
cGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCBpbiBDb3B5IEhlYWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkJ
NDUzOUM5M0EwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LXBhcmFtLXV0aWwuaCBpbiBDb3B5IEhl
YWRlcnMgSW50ZXJuYWwgKi8sCiAJCQkJRjY3RDRGM0YxQzdGNURBNzAwMTdDNzI5IC8qIGd0ZXN0
LXBvcnQtYXJjaC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCQk0MDQ4ODRBMzBF
MkY3QkU2MDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAq
LywKIAkJCQk0MDQ4ODRBNDBFMkY3QkU2MDBDRjc2NTggLyogZ3Rlc3Qtc3RyaW5nLmggaW4gQ29w
eSBIZWFkZXJzIEludGVybmFsICovLAotCQkJCTQwODk5RjUwMEZGQTcyODEwMDBCMjlBRSAvKiBn
dGVzdC10dXBsZS5oIGluIENvcHkgSGVhZGVycyBJbnRlcm5hbCAqLywKIAkJCQkzQkY2RjJBMDBF
NzlCNUFEMDAwRjJFRUUgLyogZ3Rlc3QtdHlwZS11dGlsLmggaW4gQ29weSBIZWFkZXJzIEludGVy
bmFsICovLAogCQkJKTsKIAkJCW5hbWUgPSAiQ29weSBIZWFkZXJzIEludGVybmFsIjsKQEAgLTIy
NSw3ICsxOTksNiBAQAogCQkzQjg3RDIxMDBFOTZCOTJFMDAwRDE4NTIgLyogcnVudGVzdHMuc2gg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9IHJ1bnRlc3RzLnNoOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzQkY2RjI5RjBFNzlCNUFEMDAwRjJFRUUgLyogZ3Rlc3QtdHlw
ZS11dGlsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC10eXBlLXV0
aWwuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNCRjZGMkE0MEU3OUI2MTYwMDBG
MkVFRSAvKiBndGVzdC10eXBlZC10ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9ICJndGVzdC10eXBlZC10ZXN0LmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
MDNFRTM3QzBFMzc3ODIyMDA0QkQxRTIgLyogdmVyc2lvbmdlbmVyYXRlLnB5ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gdmVyc2lvbmdlbmVyYXRlLnB5OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MDQ4ODNEQjBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtZGVh
dGgtdGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3QtZGVhdGgt
dGVzdC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDA0ODgzREMwRTJGNzk5QjAw
Q0Y3NjU4IC8qIGd0ZXN0LW1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gImd0ZXN0LW1lc3NhZ2UuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQwNDg4
M0REMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1zcGkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gImd0ZXN0LXNwaS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIzOSwxMSArMjEyLDggQEAKIAkJNDA0ODgzRTYwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LXN0
cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiZ3Rlc3Qtc3RyaW5nLmgi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MDQ4ODNGNjBFMkY3OTlCMDBDRjc2NTgg
LyogUkVBRE1FLm1kICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFJFQURNRS5tZDsgcGF0aCA9IC4u
L1JFQURNRS5tZDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MDQ4ODQwRDBFMkY3
OTlCMDBDRjc2NTggLyogZ3Rlc3RfbWFpbi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IGd0ZXN0X21haW4uY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQw
NDg4NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBDSEFOR0VTICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IENIQU5HRVM7IHBhdGggPSAuLi9DSEFOR0VTOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07
Ci0JCTQwNDg4NEFBMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gQ09OVFJJQlVUT1JTOyBwYXRoID0gLi4vQ09OVFJJQlVUT1JTOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTQwNDg4NEFCMEUyRjdDRDkwMENGNzY1OCAvKiBMSUNF
TlNFICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IExJQ0VOU0U7IHBhdGggPSAuLi9MSUNFTlNFOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTQwODk5RjQzMEZGQTcxODQwMDBCMjlBRSAv
KiBndGVzdF91bml0dGVzdC1mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9ICJndGVzdF91bml0dGVzdC1mcmFtZXdvcmsiOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk0MDg5OUY0RDBGRkE3MjcxMDAwQjI5QUUgLyog
Z3Rlc3QtdHVwbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXR1
cGxlLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MDg5OUZCMzBGRkE3NTY3MDAw
QjI5QUUgLyogU3RhdGljTGlicmFyeVRhcmdldC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNj
b25maWc7IHBhdGggPSBTdGF0aWNMaWJyYXJ5VGFyZ2V0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MDg5QTAxMzBGRkFDRUZDMDAwQjI5QUUgLyogc2FtcGxlMV91bml0
dGVzdC1mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9ICJzYW1wbGUxX3VuaXR0ZXN0LWZyYW1ld29yayI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTQwODlBMDJDMEZGQUNGN0YwMDBCMjlBRSAvKiBzYW1wbGUxLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gc2FtcGxlMS5jYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MSwxMCArMjMxLDkgQEAKIAkJNDRDNDhERkYxNEE0
MDk4RjAwQTJEOUM3IC8qIFByb2R1Y3Rpb25Qcm9qZWN0LnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IFByb2R1Y3Rpb25Qcm9qZWN0LnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NTM5QzhGRjBFQzI3RjY0MDBBNzBGNEMgLyogZ3Rlc3QuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gZ3Rlc3QuZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0NTM5QzkzMzBFQzI4
MEFFMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSAiZ3Rlc3QtcGFyYW0tdGVzdC5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDUzOUM5MzUwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LWxpbmtlZF9wdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LWxpbmtlZF9wdHIuaCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ1MzlDOTM2MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVz
dC1wYXJhbS11dGlsLWdlbmVyYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSAiZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ1MzlDOTM3MEVDMjgwRTIwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS11dGlsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wYXJhbS11dGlsLmgiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTY3QzgxNzEyNjRGRjcxMDA3NzQwQkUgLyogZ3Rl
c3QtcHJpbnRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXBy
aW50ZXJzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBM0MxMEJERjI2MDk1MkM1
MDAyMzE1NUQgLyogZ3Rlc3QtbWF0Y2hlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gImd0ZXN0LW1hdGNoZXJzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NjdENEYzRDFDN0Y1RDhCMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wb3J0LWFyY2guaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY2N0Q0RjQxMUM3RjVERDAwMDE3QzcyOSAvKiBndGVzdC1wb3J0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJndGVzdC1wb3J0LmgiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNjdENEY0MjFDN0Y1REQwMDAxN0M3MjkgLyogZ3Rlc3Qt
cHJpbnRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImd0ZXN0LXByaW50
ZXJzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQwLDggKzMwOSw2IEBACiAJ
CTA4RkI3N0FDRkU4NDE3MDdDMDJBQUMwNyAvKiBTb3VyY2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQwNDg4NEE5MEUyRjdDRDkwMENGNzY1OCAvKiBD
SEFOR0VTICovLAotCQkJCTQwNDg4NEFBMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMg
Ki8sCiAJCQkJNDA0ODgzRDkwRTJGNzk5QjAwQ0Y3NjU4IC8qIGluY2x1ZGUgKi8sCiAJCQkJNDA0
ODg0QUIwRTJGN0NEOTAwQ0Y3NjU4IC8qIExJQ0VOU0UgKi8sCiAJCQkJNDA4OUEwMkYwRkZBQ0Y4
NDAwMEIyOUFFIC8qIHNhbXBsZXMgKi8sCkBAIC0zNjUsNyArMzMyLDYgQEAKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJM0I4N0QyMTAwRTk2QjkyRTAwMEQxODUyIC8q
IHJ1bnRlc3RzLnNoICovLAotCQkJCTQwM0VFMzdDMEUzNzc4MjIwMDRCRDFFMiAvKiB2ZXJzaW9u
Z2VuZXJhdGUucHkgKi8sCiAJCQkpOwogCQkJcGF0aCA9IFNjcmlwdHM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMzg0LDYgKzM1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0
MDQ4ODNFMTBFMkY3OTlCMDBDRjc2NTggLyogaW50ZXJuYWwgKi8sCiAJCQkJNDA0ODgzREIwRTJG
Nzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWRlYXRoLXRlc3QuaCAqLywKKwkJCQlBM0MxMEJERjI2MDk1
MkM1MDAyMzE1NUQgLyogZ3Rlc3QtbWF0Y2hlcnMuaCAqLywKIAkJCQk0MDQ4ODNEQzBFMkY3OTlC
MDBDRjc2NTggLyogZ3Rlc3QtbWVzc2FnZS5oICovLAogCQkJCTQ1MzlDOTMzMEVDMjgwQUUwMEE3
MEY0QyAvKiBndGVzdC1wYXJhbS10ZXN0LmggKi8sCiAJCQkJNDU2N0M4MTcxMjY0RkY3MTAwNzc0
MEJFIC8qIGd0ZXN0LXByaW50ZXJzLmggKi8sCkBAIC00MDQsMTMgKzM3MSwxMCBAQAogCQkJCTQw
NDg4M0UyMEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1kZWF0aC10ZXN0LWludGVybmFsLmggKi8s
CiAJCQkJNDA0ODgzRTMwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWZpbGVwYXRoLmggKi8sCiAJ
CQkJNDA0ODgzRTQwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0LWludGVybmFsLmggKi8sCi0JCQkJ
NDUzOUM5MzUwRUMyODBFMjAwQTcwRjRDIC8qIGd0ZXN0LWxpbmtlZF9wdHIuaCAqLywKLQkJCQk0
NTM5QzkzNjBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC1nZW5lcmF0ZWQuaCAq
LywKIAkJCQk0NTM5QzkzNzBFQzI4MEUyMDBBNzBGNEMgLyogZ3Rlc3QtcGFyYW0tdXRpbC5oICov
LAogCQkJCUY2N0Q0RjNEMUM3RjVEOEIwMDE3QzcyOSAvKiBndGVzdC1wb3J0LWFyY2guaCAqLywK
IAkJCQk0MDQ4ODNFNTBFMkY3OTlCMDBDRjc2NTggLyogZ3Rlc3QtcG9ydC5oICovLAogCQkJCTQw
NDg4M0U2MEUyRjc5OUIwMENGNzY1OCAvKiBndGVzdC1zdHJpbmcuaCAqLywKLQkJCQk0MDg5OUY0
RDBGRkE3MjcxMDAwQjI5QUUgLyogZ3Rlc3QtdHVwbGUuaCAqLywKIAkJCQkzQkY2RjI5RjBFNzlC
NUFEMDAwRjJFRUUgLyogZ3Rlc3QtdHlwZS11dGlsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlu
dGVybmFsOwpAQCAtNDc2LDYgKzQ0MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJNDA0ODg0MzgwRTJGNzk5QjAwQ0Y3NjU4IC8qIGd0ZXN0
LWRlYXRoLXRlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUEzQzEwQkUwMjYwOTUyQzYwMDIzMTU1
RCAvKiBndGVzdC1tYXRjaGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDA0ODg0MzkwRTJGNzk5
QjAwQ0Y3NjU4IC8qIGd0ZXN0LW1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MzlDOTM0
MEVDMjgwQUUwMEE3MEY0QyAvKiBndGVzdC1wYXJhbS10ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNjdENEYzRTFDN0Y1RDhCMDAxN0M3MjkgLyogZ3Rlc3QtcG9ydC1hcmNoLmggaW4gSGVhZGVy
cyAqLywKQEAgLTYwOCw3ICs1NzMsNiBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlk
ZXBlbmRlbmNpZXMgPSAoCi0JCQkJNDBDNDRBRTYwRTM3OTkyMjAwOEZDQzUxIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkJNDA4QkVDMTAxMDQ2Q0ZFOTAwREVGNTIyIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkJNDBDODQ5OUMxMDFBMzZEQzAwODM2NDJBIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkpOwpAQCAtNjQ4LDcgKzYxMiw2IEBACiAJCQkJNDA4OUEwMTIw
RkZBQ0VGQzAwMEIyOUFFIC8qIHNhbXBsZTFfdW5pdHRlc3QtZnJhbWV3b3JrICovLAogCQkJCTQw
Qzg0OTg5MTAxQTM2QTYwMDgzNjQyQSAvKiBzYW1wbGUxX3VuaXR0ZXN0LXN0YXRpYyAqLywKIAkJ
CQkzQjIzOEY1RjBFODI4QjU0MDA4NDZFMTEgLyogQ2hlY2sgKi8sCi0JCQkJNDBDNDRBREMwRTM3
OThGNDAwOEZDQzUxIC8qIFZlcnNpb24gSW5mbyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJY
UHJvamVjdCBzZWN0aW9uICovCkBAIC02NTgsOCArNjIxLDYgQEAKIAkJCWlzYSA9IFBCWFJlc291
cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCi0JCQkJNDA0ODg0QUMwRTJGN0NEOTAwQ0Y3NjU4IC8qIENIQU5HRVMgaW4gUmVzb3Vy
Y2VzICovLAotCQkJCTQwNDg4NEFEMEUyRjdDRDkwMENGNzY1OCAvKiBDT05UUklCVVRPUlMgaW4g
UmVzb3VyY2VzICovLAogCQkJCTQwQzg0OTc4MTAxQTM2NTQwMDgzNjQyQSAvKiBsaWJndGVzdF9t
YWluLmEgaW4gUmVzb3VyY2VzICovLAogCQkJCTQwNDg4NEFFMEUyRjdDRDkwMENGNzY1OCAvKiBM
SUNFTlNFIGluIFJlc291cmNlcyAqLywKIAkJCQk0MDQ4ODQ1MDBFMkY3OTlCMDBDRjc2NTggLyog
UkVBRE1FLm1kIGluIFJlc291cmNlcyAqLywKQEAgLTY4MCwyNCArNjQxLDcgQEAKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9
IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICIjIFJlbWVtYmVyLCB0aGlzIFwiUnVuIFNjcmlw
dFwiIGJ1aWxkIHBoYXNlIHdpbGwgYmUgZXhlY3V0ZWQgZnJvbSAkU1JDUk9PVFxuL2Jpbi9iYXNo
IFNjcmlwdHMvcnVudGVzdHMuc2giOwotCQl9OwotCQk0MEM0NEFEQjBFMzc5OEY0MDA4RkNDNTEg
LyogR2VuZXJhdGUgVmVyc2lvbi5oICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAot
CQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoU1JDUk9PVCkvU2NyaXB0cy92ZXJzaW9u
Z2VuZXJhdGUucHkiLAotCQkJCSIkKFNSQ1JPT1QpLy4uL2NvbmZpZ3VyZS5hYyIsCi0JCQkpOwot
CQkJbmFtZSA9ICJHZW5lcmF0ZSBWZXJzaW9uLmgiOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkJ
IiQoUFJPSkVDVF9URU1QX0RJUikvVmVyc2lvbi5oIiwKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlz
aGVsbFNjcmlwdCA9ICIjIFJlbWVtYmVyLCB0aGlzIFwiUnVuIFNjcmlwdFwiIGJ1aWxkIHBoYXNl
IHdpbGwgYmUgZXhlY3V0ZWQgZnJvbSAkU1JDUk9PVFxuL3Vzci9iaW4vcHl0aG9uIFNjcmlwdHMv
dmVyc2lvbmdlbmVyYXRlLnB5IC4uLyAkUFJPSkVDVF9URU1QX0RJUiI7CisJCQlzaGVsbFNjcmlw
dCA9ICIjIFJlbWVtYmVyLCB0aGlzIFwiUnVuIFNjcmlwdFwiIGJ1aWxkIHBoYXNlIHdpbGwgYmUg
ZXhlY3V0ZWQgZnJvbSAkU1JDUk9PVFxuL2Jpbi9iYXNoIFNjcmlwdHMvcnVudGVzdHMuc2hcbiI7
CiAJCX07CiAvKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIApAQCAt
Nzc4LDExICs3MjIsNiBAQAogCQkJdGFyZ2V0ID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBIC8q
IGd0ZXN0LXN0YXRpYyAqLzsKIAkJCXRhcmdldFByb3h5ID0gNDA4QkVDMEYxMDQ2Q0ZFOTAwREVG
NTIyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKLQkJNDBDNDRBRTYwRTM3OTky
MjAwOEZDQzUxIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJn
ZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNDBDNDRBREMwRTM3OThGNDAwOEZDQzUxIC8qIFZl
cnNpb24gSW5mbyAqLzsKLQkJCXRhcmdldFByb3h5ID0gNDBDNDRBRTUwRTM3OTkyMjAwOEZDQzUx
IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJNDBDODQ5N0IxMDFBMzY4NTAw
ODM2NDJBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXRE
ZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNDBDODQ4RjkxMDFBMjA5QzAwODM2NDJBIC8qIGd0ZXN0
LXN0YXRpYyAqLzsKQEAgLTg3OSwyMiArODE4LDYgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFz
ZTsKIAkJfTsKLQkJNDBDNDRBREYwRTM3OThGNDAwOEZDQzUxIC8qIERlYnVnICovID0gewotCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBS
T0RVQ1RfTkFNRSA9IGd0ZXN0OwotCQkJCVRBUkdFVF9OQU1FID0gZ3Rlc3Q7Ci0JCQl9OwotCQkJ
bmFtZSA9IERlYnVnOwotCQl9OwotCQk0MEM0NEFFMDBFMzc5OEY0MDA4RkNDNTEgLyogUmVsZWFz
ZSAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5n
cyA9IHsKLQkJCQlQUk9EVUNUX05BTUUgPSBndGVzdDsKLQkJCQlUQVJHRVRfTkFNRSA9IGd0ZXN0
OwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwogCQk0MEM4NDhGQjEwMUEyMDlEMDA4
MzY0MkEgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJ
CWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNDA4OTlGQjMwRkZBNzU2NzAwMEIyOUFFIC8q
IFN0YXRpY0xpYnJhcnlUYXJnZXQueGNjb25maWcgKi87CkBAIC05NzAsMTEgKzg5MywxMyBAQAog
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IDQwRDRDREYyMEUzMEUwNzQwMDI5NDgwMSAvKiBGcmFtZXdvcmtUYXJnZXQueGNjb25m
aWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUNVUlJFTlRfUFJPSkVDVF9WRVJTSU9O
ID0gMS4xMC4wOwogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJCQkJRFlM
SUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlJTkZPUExJU1RfRklMRSA9IFJlc291cmNlcy9J
bmZvLnBsaXN0OwotCQkJCUlORk9QTElTVF9QUkVGSVhfSEVBREVSID0gIiQoUFJPSkVDVF9URU1Q
X0RJUikvVmVyc2lvbi5oIjsKKwkJCQlJTkZPUExJU1RfUFJFRklYX0hFQURFUiA9ICIiOwogCQkJ
CUlORk9QTElTVF9QUkVQUk9DRVNTID0gWUVTOworCQkJCU1BUktFVElOR19WRVJTSU9OID0gMS4x
MDsKIAkJCQlQUk9EVUNUX05BTUUgPSBndGVzdDsKIAkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJh
cHBsZS1nZW5lcmljIjsKIAkJCX07CkBAIC0xMDM2LDIzICs5NjEsMTcgQEAKIAkJCX07CiAJCQlu
YW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJNDRDNDhFMEQxNEE0MDlERTAwQTJEOUM3IC8qIFBy
b2R1Y3Rpb24gKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxk
U2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3Q7Ci0JCQkJVEFSR0VUX05BTUUg
PSBndGVzdDsKLQkJCX07Ci0JCQluYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJNEZBREMyNDMw
OEI0MTU2RDAwQUJFNTVFIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDQwRDRDREYyMEUzMEUwNzQw
MDI5NDgwMSAvKiBGcmFtZXdvcmtUYXJnZXQueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUNVUlJFTlRfUFJPSkVDVF9WRVJTSU9OID0gMS4xMC4wOwogCQkJCURZTElCX0NP
TVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsK
IAkJCQlJTkZPUExJU1RfRklMRSA9IFJlc291cmNlcy9JbmZvLnBsaXN0OwotCQkJCUlORk9QTElT
VF9QUkVGSVhfSEVBREVSID0gIiQoUFJPSkVDVF9URU1QX0RJUikvVmVyc2lvbi5oIjsKKwkJCQlJ
TkZPUExJU1RfUFJFRklYX0hFQURFUiA9ICIiOwogCQkJCUlORk9QTElTVF9QUkVQUk9DRVNTID0g
WUVTOworCQkJCU1BUktFVElOR19WRVJTSU9OID0gMS4xMDsKIAkJCQlQUk9EVUNUX05BTUUgPSBn
dGVzdDsKIAkJCQlWRVJTSU9OSU5HX1NZU1RFTSA9ICJhcHBsZS1nZW5lcmljIjsKIAkJCX07CkBA
IC0xMDYyLDExICs5ODEsMTMgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MEQ0Q0RGMjBFMzBFMDc0MDAyOTQ4MDEgLyog
RnJhbWV3b3JrVGFyZ2V0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlD
VVJSRU5UX1BST0pFQ1RfVkVSU0lPTiA9IDEuMTAuMDsKIAkJCQlEWUxJQl9DT01QQVRJQklMSVRZ
X1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRfVkVSU0lPTiA9IDE7CiAJCQkJSU5GT1BM
SVNUX0ZJTEUgPSBSZXNvdXJjZXMvSW5mby5wbGlzdDsKLQkJCQlJTkZPUExJU1RfUFJFRklYX0hF
QURFUiA9ICIkKFBST0pFQ1RfVEVNUF9ESVIpL1ZlcnNpb24uaCI7CisJCQkJSU5GT1BMSVNUX1BS
RUZJWF9IRUFERVIgPSAiIjsKIAkJCQlJTkZPUExJU1RfUFJFUFJPQ0VTUyA9IFlFUzsKKwkJCQlN
QVJLRVRJTkdfVkVSU0lPTiA9IDEuMTA7CiAJCQkJUFJPRFVDVF9OQU1FID0gZ3Rlc3Q7CiAJCQkJ
VkVSU0lPTklOR19TWVNURU0gPSAiYXBwbGUtZ2VuZXJpYyI7CiAJCQl9OwpAQCAtMTExOSwxNiAr
MTA0MCw2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OwotCQk0MEM0NEFFNDBFMzc5
OTA1MDA4RkNDNTEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIlZlcnNpb24gSW5mbyIgKi8gPSB7Ci0JCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk0MEM0NEFERjBFMzc5OEY0MDA4RkND
NTEgLyogRGVidWcgKi8sCi0JCQkJNDBDNDRBRTAwRTM3OThGNDAwOEZDQzUxIC8qIFJlbGVhc2Ug
Ki8sCi0JCQkJNDRDNDhFMEQxNEE0MDlERTAwQTJEOUM3IC8qIFByb2R1Y3Rpb24gKi8sCi0JCQkp
OwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJNDBDODQ5MDIxMDFBMjEyRTAwODM2
NDJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJndGVz
dC1zdGF0aWMiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxk
Q29uZmlndXJhdGlvbnMgPSAoCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>